執(zhí)行機(jī)構(gòu)間的切換控制的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。更具體地,本發(fā)明涉及具有用于執(zhí)行程序指令的多個(gè)執(zhí)行機(jī)構(gòu)的數(shù)據(jù)處理系統(tǒng)的領(lǐng)域,其中可以在這些執(zhí)行機(jī)構(gòu)中選擇在給定時(shí)間執(zhí)行程序指令流的有效執(zhí)彳丁機(jī)構(gòu)。
【背景技術(shù)】
[0002]已知提供了數(shù)據(jù)處理系統(tǒng),比如利用英國劍橋的ARM有限公司設(shè)計(jì)的big.LITTLE處理器的技術(shù)的數(shù)據(jù)處理系統(tǒng)(big.LITTLE處理器具有多個(gè)執(zhí)行機(jī)構(gòu),并且可以從這些執(zhí)行機(jī)構(gòu)中選擇有效的執(zhí)行機(jī)構(gòu))。這些處理器通常包括低性能且低功率的處理器內(nèi)核、和高性能且高功率的處理器內(nèi)核。當(dāng)處理工作量不需要高性能時(shí),處理被切換到由更節(jié)能的低功率處理器內(nèi)核執(zhí)行。相反,當(dāng)處理工作量需要高性能時(shí),工作量被切換到高性能處理器內(nèi)核。在這類系統(tǒng)中執(zhí)行切換的粒度很大,因?yàn)樗鼤?huì)花費(fèi)成千上萬的處理周期來在小的低功率處理器內(nèi)核和大的高性能處理器內(nèi)核之間改變處理器狀態(tài)。
[0003]盡管可以有利地使用上述系統(tǒng),但是已經(jīng)注意到在許多實(shí)際生活處理中加載了高功率對低功率的需求之間的變化,該變化出現(xiàn)在比以下系統(tǒng)中的處理更精細(xì)的粒度等級中,其中當(dāng)該系統(tǒng)中的內(nèi)核之一被關(guān)斷時(shí),整個(gè)處理器狀態(tài)被轉(zhuǎn)移到另一個(gè)處理器內(nèi)核,然后另一個(gè)處理器內(nèi)核啟動(dòng)。這就限制了可實(shí)現(xiàn)的優(yōu)勢。
【發(fā)明內(nèi)容】
[0004]從一個(gè)方面看,本技術(shù)提供了一種用于數(shù)據(jù)處理的裝置,包括:被配置為執(zhí)行程序指令的第一執(zhí)行電路;被配置為執(zhí)行程序指令的第二執(zhí)行電路;切換控制電路,被耦合到所述第一執(zhí)行電路和所述第二執(zhí)行電路,并且被配置為控制由所述第一執(zhí)行電路執(zhí)行程序指令的第一狀態(tài)與由所述第二執(zhí)行電路執(zhí)行程序指令的第二狀態(tài)之間的切換操作,所述切換操作包括從所述第一執(zhí)行電路向所述第二執(zhí)行電路轉(zhuǎn)移至少一些架構(gòu)狀態(tài)數(shù)據(jù),其中,所述切換控制電路被配置為:從所述第一執(zhí)行電路接收取決于所述第一執(zhí)行電路的當(dāng)前狀態(tài)的第一延遲指示信號(hào);以及根據(jù)所述第一延遲指示信號(hào)控制從所述第一狀態(tài)到所述第二狀態(tài)的切換,所述第一延遲指示信號(hào)指示與從所述第一狀態(tài)到所述第二狀態(tài)的切換相關(guān)聯(lián)的第一延遲。
[0005]本技術(shù)認(rèn)識(shí)到,當(dāng)在第一執(zhí)行電路和第二執(zhí)行電路之間執(zhí)行切換以執(zhí)行程序指令時(shí),期望考慮執(zhí)行機(jī)構(gòu)之間的切換涉及的延遲。例如,如果涉及的延遲太長,則不期望發(fā)起執(zhí)行機(jī)構(gòu)之間的切換,因?yàn)榈鹊角袚Q達(dá)成時(shí),處理需求很可能已經(jīng)改變,因而進(jìn)行切換的原因就不復(fù)存在了。
[0006]在一些實(shí)施例中,第一和第二執(zhí)行電路的性能特性可以不同。
[0007]應(yīng)該理解的是,不僅要考慮從第一執(zhí)行電路向第二執(zhí)行電路切換時(shí)的延遲,在一些實(shí)施例中還期望考慮反向切換時(shí)的延遲。此外,本技術(shù)不限于只采用兩種形式的執(zhí)行電路的實(shí)施例,并且在實(shí)踐中可用于包括三種或更多種不同形式的執(zhí)行電路的實(shí)施例。
[0008]不同形式的執(zhí)行電路可以具有導(dǎo)致不同性能特性的異構(gòu)微架構(gòu)(heterogeneousmicroarchitecture),這些性能特性比如是某處理工作量的執(zhí)行速度、能量消耗、泄露、熱性能、或許多其它不同類型的性能特性。
[0009]應(yīng)該理解的是,在切換時(shí)在第一執(zhí)行電路和第二執(zhí)行電路之間轉(zhuǎn)移的架構(gòu)狀態(tài)數(shù)據(jù)可采用各種不同的形式。取決于特定的實(shí)施方式,不同的處理電路可自然地共享一些狀態(tài)數(shù)據(jù)(比如,存儲(chǔ)器管理單元數(shù)據(jù)、轉(zhuǎn)譯后備緩沖器數(shù)據(jù)、高速緩存存儲(chǔ)器數(shù)據(jù)等)。然而,其它狀態(tài)數(shù)據(jù)只能在處理電路的特定實(shí)例中被特殊保留并且需要轉(zhuǎn)移(比如,寄存器文件電路的內(nèi)容)。
[0010]寄存器文件電路包含存儲(chǔ)在任意給定時(shí)間由執(zhí)行電路的實(shí)例操控的數(shù)據(jù)值的寄存器,并且當(dāng)處理操作從第一執(zhí)行電路迀移至第二執(zhí)行電路時(shí),必須轉(zhuǎn)移寄存器文件電路的當(dāng)前內(nèi)容,從而使得處理可以在新的有效處理電路中利用與以前有效的處理電路先前保存的相同的架構(gòu)寄存器內(nèi)容繼續(xù)進(jìn)行。
[0011 ] 在一些實(shí)施例中,第一延遲指示信號(hào)可以指示對第一寄存器文件電路內(nèi)的各寄存器的未決寫入操作。在這種設(shè)置中,切換操作可以被設(shè)置為在第一執(zhí)行電路結(jié)束程序指令的執(zhí)行之前,將來自第一寄存器文件電路中的沒有未決寫入操作的寄存器的寄存器狀態(tài)數(shù)據(jù)轉(zhuǎn)移至第二寄存器文件電路。因此,可以提前轉(zhuǎn)移寄存器狀態(tài)數(shù)據(jù),從而使得其在先前有效的處理電路完全用盡之前在新的有效處理電路上可用。這種設(shè)置能夠使新的有效處理電路更早地開始程序指令的執(zhí)行,并且因此減少與切換操作相關(guān)聯(lián)的延遲。
[0012]一些示例實(shí)施例可以用不同的方式來追蹤這種未決寫入操作(比如,使用來自寄存器分配表電路和/或執(zhí)行電路內(nèi)的重排序緩沖器電路或其它控制數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù))。
[0013]當(dāng)在切換操作開始時(shí)最初處于未決狀態(tài)的寫入操作完成時(shí),切換可以轉(zhuǎn)移來自那些寄存器的寄存器狀態(tài)(因?yàn)槠洮F(xiàn)在可用)。
[0014]應(yīng)該理解的是,在一些實(shí)施例中,第一執(zhí)行電路可以包括存儲(chǔ)寄存器分配數(shù)據(jù)的寄存器分配表電路,該寄存器分配數(shù)據(jù)指示寄存器文件電路中的哪個(gè)物理寄存器被映射至多個(gè)架構(gòu)寄存器標(biāo)識(shí)符中的哪個(gè)架構(gòu)寄存器標(biāo)識(shí)符。這種寄存器分配表通常被提供在亂序處理器中,在亂序處理器中存儲(chǔ)數(shù)據(jù)值的物理寄存器和該數(shù)據(jù)值所屬的架構(gòu)寄存器標(biāo)識(shí)符之間不存在固定映射。在具有寄存器分配表的這種實(shí)施例中,執(zhí)行寄存器狀態(tài)數(shù)據(jù)轉(zhuǎn)移的硬件驅(qū)動(dòng)操作可讀取寄存器分配數(shù)據(jù),并可利用這些數(shù)據(jù)確定哪些物理寄存器包含需要被轉(zhuǎn)移且已經(jīng)準(zhǔn)備好被轉(zhuǎn)移至新的處理電路的寄存器狀態(tài)數(shù)據(jù)。在實(shí)踐中,硬件驅(qū)動(dòng)操作可很容易地實(shí)現(xiàn)對寄存器分配電路的使用,因?yàn)樵谇袚Q操作之前新的程序指令被發(fā)送至第一執(zhí)行電路,所以寄存器分配表電路將停止被訪問,因此寄存器分配表電路的讀取端口將可用于向從事寄存器數(shù)據(jù)轉(zhuǎn)移的硬件驅(qū)動(dòng)操作提供數(shù)據(jù)。
[0015]與切換操作相關(guān)聯(lián)的延遲開銷在一些實(shí)施例中可以被減少,在這些實(shí)施例中切換控制電路用于在第一執(zhí)行電路結(jié)束執(zhí)行程序指令之前,基于至少一些寄存器狀態(tài)數(shù)據(jù)的部分轉(zhuǎn)移而開始推測地執(zhí)行程序指令。這種程序指令的推測執(zhí)行可不包括程序指令的提交直到它們的前任指令被提交為止,但是它們的處理可以開始,因此它們的結(jié)果可以更早地得至IJ,從而使得與切換操作相關(guān)聯(lián)的延遲被減小。
[0016]應(yīng)該理解的是,取決于哪些架構(gòu)數(shù)據(jù)已經(jīng)準(zhǔn)備好或者沒有準(zhǔn)備好被不同的執(zhí)行機(jī)構(gòu)所共享,為了開始推測執(zhí)行所必需的至少一些架構(gòu)狀態(tài)數(shù)據(jù)可采用各種不同的形式。在一些實(shí)施例中,這種在推測執(zhí)行可以開始之前需要被轉(zhuǎn)移的至少一些架構(gòu)狀態(tài)數(shù)據(jù)可以包括來自沒有未決寫入操作的寄存器的狀態(tài)數(shù)據(jù),其中這些狀態(tài)數(shù)據(jù)形成將被推測執(zhí)行的程序指令的輸入操作數(shù)。
[0017]在一些實(shí)施例中,切換控制電路可操作來識(shí)別程序指令序列內(nèi)的潛在切換點(diǎn),用于從第一執(zhí)行電路有效的第一狀態(tài)向第二執(zhí)行電路有效的第二狀態(tài)切換。
[0018]如果第一延遲指示信號(hào)指示超過閾值延遲的延遲,則為了執(zhí)行切換,切換控制電路可從抑制第一狀態(tài)向第二狀態(tài)切換的意義來控制切換。
[0019]延遲指示信號(hào)可以用多種不同的方式指示延遲。延遲可直接或間接地被指示。在一些實(shí)施例中,延遲指示信號(hào)可以用第一執(zhí)行電路中的重排序緩沖器電路的占用信號(hào)的形式指示延遲。這種重排序緩沖器電路用于存儲(chǔ)未提交程序指令的數(shù)據(jù),并且當(dāng)進(jìn)行切換時(shí),這種未提交程序