欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于重命名表重建基于重新排序緩沖區(qū)的動(dòng)態(tài)檢查點(diǎn)設(shè)置的制作方法

文檔序號(hào):6540731閱讀:186來源:國知局
用于重命名表重建基于重新排序緩沖區(qū)的動(dòng)態(tài)檢查點(diǎn)設(shè)置的制作方法【專利摘要】一種減少由于使流水線停止以重建重命名表而導(dǎo)致的時(shí)間懲罰的亂序CPU、設(shè)備和方法。微處理器可以包括具有解碼器、分派器以及至少一個(gè)執(zhí)行單元的流水線。重命名表存儲(chǔ)重命名數(shù)據(jù),并且檢查點(diǎn)表(CPT)存儲(chǔ)從分派器接收到的重命名數(shù)據(jù)。重新排序緩沖區(qū)(ROB)存儲(chǔ)ROB數(shù)據(jù),并且具有與CPT的動(dòng)態(tài)映射關(guān)系。如果諸如由于誤預(yù)測而清除了重命名表,則至少部分地通過并發(fā)復(fù)制存儲(chǔ)在CPT中的重命名數(shù)據(jù),協(xié)同在ROB上步移,來重建重命名表?!緦@f明】用于重命名表重建基于重新排序緩沖區(qū)的動(dòng)態(tài)檢查點(diǎn)設(shè)置【
技術(shù)領(lǐng)域
】[0001]本公開涉及半導(dǎo)體設(shè)備,并且更具體地涉及控制電子設(shè)備的操作的微處理器,以及使用這樣的微處理器的電子設(shè)備?!?br>背景技術(shù)
】[0002]微處理器,也被稱為中央處理單元(CPU),通過執(zhí)行指令而工作。一些指令導(dǎo)致分支點(diǎn),在分支點(diǎn)處,可以選擇一條執(zhí)行路徑而非另一條。如果微處理器做出關(guān)于將選擇哪條路徑的正確推測性預(yù)測,并且預(yù)先執(zhí)行沿該路徑的指令,則微處理器可以具有增加的速度。這樣的CPU被稱為亂序CPU。然而,當(dāng)存在誤預(yù)測(misprediction)時(shí),速度優(yōu)勢減少,并且需要恢復(fù)。[0003]亂序CPU的挑戰(zhàn)在于諸如寫后寫(WriteAfterWrite,WAW)和讀后寫(WriteAfterRead,WAR)的風(fēng)險(xiǎn)。通過寄存器重命名可以避免這些風(fēng)險(xiǎn),寄存器重命名在跟蹤重命名的源和目的地寄存器的重命名表的幫助下實(shí)現(xiàn)。[0004]然而,剩下的問題在于任何時(shí)候都存在誤預(yù)測的分支指令,因此不得不全部清除(flush)重命名表。因?yàn)橛捎诜种Э梢员粊y序執(zhí)行,因此可能存在比誤預(yù)測的分支指令早的等待引退(retire)的指令,所以清除是個(gè)問題。這些較早指令的重命名信息必須重建到重命名表中。[0005]因此,該問題本身表現(xiàn)為延遲。在重建過程期間,重命名邏輯必須使流水線的前端停止(stall)發(fā)送用于重命名的新的指令。這種停止導(dǎo)致延遲,其等價(jià)于對分支誤預(yù)測的懲罰。所述懲罰不僅取決于重建等待時(shí)間,還取決于重定向等待時(shí)間以及流水線的前端的深度。[0006]為了減少這種停止,已經(jīng)提出了設(shè)置檢查點(diǎn)(check-pointing)方案,其先于分派級(jí),作為重命名流水線的一部分。在這些方案中,傳統(tǒng)上每個(gè)分支指令開啟新的檢查點(diǎn)窗口。該方法非常浪費(fèi)空間,因?yàn)槠湫枰c機(jī)器中允許的運(yùn)行中的分支一樣多的檢查點(diǎn)?!?br/>發(fā)明內(nèi)容】[0007]本描述給出微處理器、集成了微處理器的設(shè)備以及克服現(xiàn)有技術(shù)的問題的實(shí)例。[0008]在一個(gè)實(shí)施例中,微處理器包括具有解碼器、分派器以及至少一個(gè)執(zhí)行單元的流水線。重命名表存儲(chǔ)重命名數(shù)據(jù),并且檢查點(diǎn)表(CPT)存儲(chǔ)從分派器接收到的重命名數(shù)據(jù)。重新排序緩沖區(qū)(ROB)存儲(chǔ)ROB數(shù)據(jù),并且具有與CPT的動(dòng)態(tài)映射關(guān)系。如果諸如由于誤預(yù)測而清除了重命名表,則至少部分地通過并發(fā)地復(fù)制存儲(chǔ)在CPT中的重命名數(shù)據(jù),協(xié)同在ROB上步移(walkingtheROB),來重建該重命名表。[0009]相對于現(xiàn)有技術(shù)的優(yōu)點(diǎn)在于減少由于使流水線停止以重建重命名表而導(dǎo)致的時(shí)間懲罰。另一優(yōu)點(diǎn)產(chǎn)生于這樣的事實(shí),即,CPT處于分派器之后,其大幅減少成功重建重命名表所需的檢查點(diǎn)數(shù)目。本發(fā)明導(dǎo)致在空間、功率和時(shí)序方面比預(yù)分派設(shè)置檢查點(diǎn)方案更高效的實(shí)施例。[0010]根據(jù)下列參考附圖進(jìn)行的詳細(xì)描述,本說明書的這些及其他特征和優(yōu)點(diǎn)將變得更加顯而易見,在附圖中:【專利附圖】【附圖說明】[0011]圖1是根據(jù)示例實(shí)施例做出的微處理器的組件的圖。[0012]圖2A和圖2B是用于圖示根據(jù)實(shí)施例的動(dòng)態(tài)關(guān)系的、示出圖1中的組件的不同操作場景的圖。[0013]圖3A是示出根據(jù)示例實(shí)施例做出的微處理器正常操作時(shí)的框圖。[0014]圖3B是示出在正常操作之后重命名表被清除的圖3A的微處理器的圖,所述清除是檢測到執(zhí)行指令的誤預(yù)測的結(jié)果。[0015]圖3C是示出重命名表在被清除之后被重建的圖3B的微處理器的圖。[0016]圖4是示出根據(jù)實(shí)施例的用于重建諸如圖3C的重命名表的重命名表的相對時(shí)序脈沖的時(shí)序圖。[0017]圖5是本發(fā)明沒有產(chǎn)生益處的第一范例場景的圖3C的組件的圖。[0018]圖6是本發(fā)明產(chǎn)生益處的第二范例場景的圖3C的組件的圖。[0019]圖7是本發(fā)明產(chǎn)生最大益處的第三范例場景的圖3C的組件的圖。[0020]圖8是用于圖示根據(jù)示例實(shí)施例的包括微處理器的系統(tǒng)的框圖。[0021]圖9是用于圖示根據(jù)示例實(shí)施例的方法的流程圖?!揪唧w實(shí)施方式】[0022]如已經(jīng)提到的,本描述關(guān)于微處理器、設(shè)備和方法。現(xiàn)在更詳細(xì)地描述實(shí)施例。[0023]圖1是根據(jù)示例實(shí)施例做出的微處理器110的組件的圖。微處理器110包括用于接收指令,并用于將這些指令解碼為微型操作的解碼器120,微型操作也被稱為微操作(micro-op)。[0024]微處理器110還包括用于執(zhí)行微操作的一個(gè)或多個(gè)執(zhí)行單元。圖1中,示出三個(gè)執(zhí)行單元,即執(zhí)行單元-A151、執(zhí)行單元-B152和執(zhí)行單元-C153,但是單元的數(shù)量作為示例而作為限制示出。[0025]解碼器120和單元151、152、153是所謂的流水線的部分,所述流水線包括額外的組件。一個(gè)這樣的組件是分派器140,其被提供用于將微操作最終分派到執(zhí)行單元。在圖1的示例中,首先分派到三個(gè)調(diào)度器中的一個(gè),即調(diào)度器-A141、調(diào)度器-B142和調(diào)度器-C143。調(diào)度器向執(zhí)行單元151、152、153傳送微操作。這些執(zhí)行單元從物理寄存器文件(PhysicalRegisterFile,PRF)讀取源(source),并且隨后執(zhí)行微操作。本領(lǐng)域技術(shù)人員將理解上面僅是流水線的該部分的一個(gè)范例架構(gòu),并且不同架構(gòu)是可能的。[0026]微處理器110額外地包括從解碼器120接收微操作的重命名器130。重命名器130根據(jù)微操作生成重命名數(shù)據(jù)。[0027]此外,微處理器110包括重命名表136。重命名表136存儲(chǔ)根據(jù)箭頭135從重命名器130接收的重命名數(shù)據(jù)。[0028]微處理器110還包括重新排序緩沖區(qū)(“R0B”)160。ROB160具有圖1中未單獨(dú)示出的ROB條目。如稍后將更詳細(xì)地看到的,R0B160包括引退指針(RetirePointer)和清除指針(FlushPointer),所述指針中的每一個(gè)指向ROB條目中的可變條目。R0B160可以是循環(huán)的或非循環(huán)的。ROB條目用于存儲(chǔ)從微操作生成的ROB數(shù)據(jù)162。在一些實(shí)施例中,每個(gè)ROB條目存儲(chǔ)一個(gè)微操作,雖然在單個(gè)ROB條目中可以存儲(chǔ)更多的微操作。ROB數(shù)據(jù)162包括重建重命名數(shù)據(jù)182,重建重命名數(shù)據(jù)182優(yōu)選地與存儲(chǔ)在重命名表136中的重命名數(shù)據(jù)對應(yīng)。在圖1的實(shí)施例中,從分派器140接收ROB數(shù)據(jù)162。[0029]微處理器110還包括至少一個(gè)檢查點(diǎn)表(check-pointtable,CPT)170。CPT170與重命名表136—樣寬。CPT170具有圖1中未單獨(dú)示出的CPT條目。CPT條目與重命名表136中的條目一樣多,這意味著CPT與重命名表136—樣深。CPT條目的數(shù)目定義CPT深度。CPT條目用于存儲(chǔ)在重命名表136中存儲(chǔ)的重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本(check-pointedversion)180。重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本180可以是能夠產(chǎn)生重命名數(shù)據(jù)的任何版本,或者其可以與重命名數(shù)據(jù)完全相同,因?yàn)槠浯鎯?chǔ)在檢查點(diǎn)表170中,所以在該情況下其被稱為被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)180。在圖1的實(shí)施例中,從分派器140接收重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本180。[0030]如下文將更詳細(xì)地描述的,ROB檢查點(diǎn)窗口根據(jù)動(dòng)態(tài)關(guān)系187映射到CPT,其中基于弓I退指針指向的ROB條目定義ROB檢查點(diǎn)窗口。因?yàn)橐酥羔樤诓煌瑫r(shí)間指向通常不同的ROB條目,因此關(guān)系187是可變的。因此,當(dāng)ROB條目被分配了新的微操作時(shí),如果該微操作具有目的地,則選擇的CPT條目也利用該微操作的目的地重命名信息來更新。[0031]如前所述,可以清除重命名表136,其更確切地指可以清除存儲(chǔ)在重命名表中的重命名數(shù)據(jù)。在圖1的實(shí)施例中,微處理器Iio還包括分支執(zhí)行邏輯157。邏輯157可以如上所述在執(zhí)行微操作時(shí)檢測誤預(yù)測,誤預(yù)測由標(biāo)記190示出。可以響應(yīng)于檢測到誤預(yù)測190而清除重命名表136。[0032]如果清除了重命名表136,則可以將其重建。為了重建,微處理器110還可以包括可以存儲(chǔ)引退被設(shè)置檢查點(diǎn)的數(shù)據(jù)的引退表138。作為重建的初始部分,可以根據(jù)箭頭139將引退被設(shè)置檢查點(diǎn)的數(shù)據(jù)復(fù)制到重命名表136。[0033]此外,為了重建,除了從引退表的初始復(fù)制之外,已清除的重命名數(shù)據(jù)可以從兩個(gè)數(shù)據(jù)源恢復(fù)到重命名表136。首先,重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本180可以作為大規(guī)模導(dǎo)入(massimportation)根據(jù)箭頭175從CPT170復(fù)制到重命名表136。如在此文件中稍后解釋的,如果動(dòng)態(tài)關(guān)系187的方面允許,則通過并發(fā)復(fù)制實(shí)現(xiàn)所述大規(guī)模導(dǎo)入。其次,ROB數(shù)據(jù)162內(nèi)的重建重命名數(shù)據(jù)182的至少部分可以根據(jù)箭頭165從R0B160復(fù)制到重命名表136,其是另外稱為“在ROB上步移(walkingROB)”的過程。[0034]現(xiàn)在提供實(shí)現(xiàn)方式細(xì)節(jié)。圖2A和2B示出在圖1的微處理器110中可以替換的R0B260和CPT270。將理解,可以以贊成經(jīng)由箭頭175的并發(fā)復(fù)制而非箭頭165的復(fù)制從而節(jié)省處理器時(shí)間的觀點(diǎn),做出對R0B260和CPT270的大小及其之間的功能關(guān)系的選擇。[0035]在該示例中,R0B260具有96個(gè)ROB條目,命名為從O到95。R0B260可以具有任何數(shù)目的ROB條目。此外,ROB檢查點(diǎn)窗口被定義為具有一組ROB條目。所述組可以是可以被最優(yōu)化的任何數(shù)目。在48個(gè)ROB條目的情況下,對于所述組來說,效果很好的數(shù)目是大約ROB的深度的大小的一半。如從下文將理解的,比最佳大小大得多的ROB檢查點(diǎn)窗口不能調(diào)用CPT足夠時(shí)間以產(chǎn)生非常好的效果,而如果ROB檢查點(diǎn)窗口比最佳大小小得多,則其能夠調(diào)用CPT足夠時(shí)間,但卻沒有足夠的重命名數(shù)據(jù)。如將在下文中看到的,在兩種情況下,如果所述組大小偏離最佳大小太遠(yuǎn),則其將導(dǎo)致在ROB上步移花費(fèi)的時(shí)間比所需的時(shí)間多。[0036]在圖2A和2B中,在其間已清除重命名表的不同場景示出R0B260和CPT270。當(dāng)然,每次ROB檢查點(diǎn)窗口將跨越不同組的48個(gè)ROB條目。并且,當(dāng)在不同時(shí)間由清除重命名表的不同事件定義時(shí),ROB重建窗口每次將通常具有不同數(shù)目的ROB條目。[0037]更具體地,在圖2A中,ROB檢查點(diǎn)窗口被定義為從ROB條目20處的引退指針開始,并且直到ROB條目67。并且,因?yàn)闂l目56之后的一個(gè)條目是由清除指針指向的條目57,所以定義包含37個(gè)ROB條目的ROB重建窗口263A,即ROB條目20-56。這些37個(gè)ROB條目存儲(chǔ)包括重建重命名數(shù)據(jù)282A在內(nèi)的ROB數(shù)據(jù)262A。CPT270存儲(chǔ)被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)280A。[0038]此外,在圖2B中,ROB檢查點(diǎn)窗口被定義為從ROB條目40處的引退指針開始,并且直到ROB條目87。并且,定義僅包含27個(gè)ROB條目的ROB重建窗口263B,即ROB條目40-66。這些27個(gè)ROB條目存儲(chǔ)包括重建重命名數(shù)據(jù)282B在內(nèi)的ROB數(shù)據(jù)262B。CPT270存儲(chǔ)被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)280B。[0039]動(dòng)態(tài)關(guān)系287是R0B,并且更具體來說是ROB檢查點(diǎn)窗口,如何映射到CPT的方式。所述映射有時(shí)稱為關(guān)聯(lián)。由于ROB檢查點(diǎn)窗口是基于引退指針指向的ROB條目來定義的,所以關(guān)系287是變化的,因此關(guān)系287被稱為動(dòng)態(tài)的。事實(shí)上,圖2A和2B中,在不同位置處定義ROB檢查點(diǎn)窗口。[0040]為了重建,存在這樣的選擇,S卩,特定元素將被存儲(chǔ)該特定元素的ROB條目或存儲(chǔ)該特定元素的CPT270恢復(fù)到重命名表。如果允許從CPT復(fù)制,則該重建將更快。[0041]動(dòng)態(tài)關(guān)系287部分地掌控除了從R0B260重建之外,是否將從CPT270重建或從CPT270重建到什么程度。事實(shí)上,如果關(guān)系287的方面另外允許,則發(fā)生從CPT270的復(fù)制。稍后在此文件中描述何時(shí)允許的示例。[0042]現(xiàn)在連續(xù)使用圖3A、3B、3C以描述根據(jù)實(shí)施例做出的范例微處理器310的范例事件序列。微處理器310包括解碼器320、重命名器330、重命名表336、引退表338、分派器340、調(diào)度器341、342、343、PRF350、執(zhí)行單元351、352、353、分支執(zhí)行邏輯357和R0B360,其全部可以如上文參考圖1中的類似組件所述的那樣。R0B360存儲(chǔ)與ROB數(shù)據(jù)162類似的ROB數(shù)據(jù)362。ROB數(shù)據(jù)362包括與重建重命名數(shù)據(jù)182類似的重建重命名數(shù)據(jù)382。[0043]此外,微處理器310包括具有與R0B360的動(dòng)態(tài)關(guān)系的CPT370。CPT370和R0B360可以具有與圖1、2A、2B的關(guān)系187相同的動(dòng)態(tài)關(guān)系。CPT370根據(jù)動(dòng)態(tài)關(guān)系存儲(chǔ)被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)380。[0044]圖3A中,微處理器310正常操作。指令通過流水線在解碼器320中接收,并在執(zhí)行單元351、352、353處執(zhí)行。[0045]圖3B中,如由標(biāo)記390指示的,檢測到誤預(yù)測。作為結(jié)果,如由注釋392指示的清除重命名表336。[0046]圖3C中,如由注釋393指示的,重建重命名表336。作為結(jié)果,如由注釋391指示的,在流水線的前端存在停止。[0047]重建如下所述地發(fā)生:首先,根據(jù)箭頭339從引退表338復(fù)制引退檢查點(diǎn)。然后,通過通常來自兩個(gè)不同源的數(shù)據(jù)來重建。如果可應(yīng)用的動(dòng)態(tài)關(guān)系的方面允許,則根據(jù)箭頭375復(fù)制檢查點(diǎn)重命名數(shù)據(jù)380。并且,根據(jù)箭頭365通過在R0B360上步移來復(fù)制重建重命名數(shù)據(jù)382。然而,在一些特定情況下,如在下文的范例場景中將看到的,這兩個(gè)源中的一個(gè)可能不起作用。[0048]微處理器310通常還包括未示出的時(shí)鐘。所述時(shí)鐘輸出定義時(shí)鐘周期的脈沖。時(shí)鐘周期是用于衡量本發(fā)明的優(yōu)點(diǎn)的良好方式?,F(xiàn)在描述示例。[0049]圖4是示出用于重建諸如圖3C中的重命名表的相對時(shí)序脈沖的時(shí)序圖。時(shí)鐘周期412包括N個(gè)周期的組415,在此示出為單個(gè)脈沖。稍后將更詳細(xì)地描述數(shù)字N。[0050]圖4圖示檢測到誤預(yù)測的發(fā)生,以及隨后的懲罰。脈沖492與根據(jù)注釋392的清除重命名表336對應(yīng)。延長的停止脈沖(stallingpulse)491與根據(jù)注釋391的流水線被停止的時(shí)間對應(yīng);脈沖491的持續(xù)時(shí)間與對誤預(yù)測的時(shí)間懲罰以及隨后的微處理器性能下降有關(guān)。在脈沖491以及周期組415兩者中,如果N大,則懲罰較大。脈沖493A和脈沖493B指示與注釋393對應(yīng)的重建的開始和結(jié)束。[0051]一般來說,重命名周期436包括a)用于根據(jù)操作339復(fù)制引退檢查點(diǎn)的周期439,b)用于根據(jù)箭頭375從CPT并發(fā)復(fù)制的周期475,以及c)用于根據(jù)箭頭365在ROB上步移多達(dá)N個(gè)周期的組465。與周期組415類似,周期465被示出為單個(gè)周期,而事實(shí)上兩者都取值N。在圖4中在會(huì)增強(qiáng)讀者的聯(lián)想的地方重復(fù)箭頭339、375和365的圖標(biāo)。[0052]然而,具體地,不是每次都包括這些重命名周期436中的一些。包括哪些和不包括哪些的問題取決于在檢測到誤預(yù)測并且因此清除重命名表的時(shí)刻定義的場景?,F(xiàn)在在此文件中參考圖4呈現(xiàn)具體操作場景。[0053]首先,為了理解場景,應(yīng)認(rèn)識(shí)到,ROB重建窗口在清除重命名表時(shí)被定義。如上文在圖2A和圖2B中已經(jīng)看到的,ROB重建窗口具有從引退指針開始并且在清除指針的前一條目結(jié)束的ROB條目。ROB重建窗口內(nèi)的ROB條目定義哪些數(shù)據(jù)需要恢復(fù)到重命名表,通過從CPT的并發(fā)復(fù)制,還是通過在ROB上步移。在任一情況下,重建重命名數(shù)據(jù)的從ROB復(fù)制到重命名表的部分都在ROB重建窗口內(nèi)。[0054]場景的不同之處在于:每次清除重命名表時(shí),ROB重建窗口將通常涵蓋ROB條目的不同集合。因此,不同場景探索相對于先前提到的ROB檢查點(diǎn)窗口的深度,ROB重建窗口如何具有不同大小。下列范例場景中的該方面還將確定是否允許CPT表被并發(fā)復(fù)制到重命名表,或替換地將通過在ROB上步移來復(fù)制相同內(nèi)容。[0055]現(xiàn)在探索各種這樣的場景的示例。為了這些場景,與圖2A、2B中示出的類似,假設(shè)使用R0B360和CPT370。此外,由對于ROB檢查點(diǎn)(CP)窗口和CPT370示出的括號(hào)指示的,還應(yīng)用與關(guān)系287類似的動(dòng)態(tài)關(guān)系587。[0056]圖5是針對未從本發(fā)明受益的第一范例場景的圖3C的組件的圖。R0B360中,檢查點(diǎn)窗口從由引退指針指向的ROB條目20開始并且在ROB條目67結(jié)束。此外,由箭頭指示的,ROB重建窗口563從由引退指針指向的ROB條目20開始并且在比由清除指針指向的ROB條目57小一的ROB條目56結(jié)束。ROB重建窗口563內(nèi)的ROB數(shù)據(jù)562包括重建重命名數(shù)據(jù)582,其將通過從CPT370的并發(fā)復(fù)制或者直接通過在R0B360步移而被恢復(fù)到重命名表336。[0057]在該示例中,ROB重建窗口563比ROB檢查點(diǎn)窗口小。因此,將清除ROB條目57_67的內(nèi)容,并且因此存儲(chǔ)在CPT370中的被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)580將不作為重建過程的部分被復(fù)制到重命名表中,這是因?yàn)楸仨殞⒄麄€(gè)CPT370復(fù)制到重命名表336。這就是為什么被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)580被示出為被劃掉。因此,根據(jù)注釋567,全部ROB條目20-56中的重建重命名數(shù)據(jù)582將根據(jù)箭頭565被恢復(fù),即,通過在R0B360上步移。[0058]換句話說,圖5的CPT不能用于重建,并且因此在圖5的場景中本發(fā)明沒有提供優(yōu)點(diǎn)。對于圖5的場景簡要參考圖4,重命名周期475將被包括,并且數(shù)值N取值高達(dá)m,其中m是在這樣的場景下可以在R0B360上移動(dòng)的步子的最大數(shù)目。停止脈沖491的持續(xù)時(shí)間相對于在沒有本發(fā)明的情況下的持續(xù)時(shí)間未減少。對于剩余示例場景,情況不是這樣。[0059]圖6是針對第二范例場景的圖3C的組件的圖。R0B360中,檢查點(diǎn)窗口從由引退指針指向的ROB條目20開始并且在ROB條目67結(jié)束。此外,R0B360內(nèi)的ROB重建窗口663跨越ROB條目20-76。在該示例中,ROB重建窗口663大于ROB檢查點(diǎn)窗口。在ROB重建窗口663內(nèi),ROB數(shù)據(jù)662包括要恢復(fù)到重命名表336的重建重命名數(shù)據(jù)部分682A和682B。將理解由ROB檢查點(diǎn)窗口的邊界引起R0B360內(nèi)重建重命名數(shù)據(jù)被分成部分682A和682B。事實(shí)上,ROB條目20-67映射到存儲(chǔ)在CPT370中的被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)部分680,而ROB條目68-76根本不映射到CPT370。[0060]被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)部分680是可用的,并且根據(jù)注釋677,將根據(jù)箭頭675將其恢復(fù)。因此,將不需要重建重命名數(shù)據(jù)部分682A,并且將其示出為被劃掉。然而,部分682B不能經(jīng)由CPT來高效復(fù)制,并且根據(jù)注釋667,通過在R0B360上步移,將根據(jù)箭頭665恢復(fù)ROB條目68-76中的重建重命名數(shù)據(jù)部分682B。參考圖4,根據(jù)箭頭675的恢復(fù)可以在單個(gè)時(shí)鐘脈沖475中發(fā)生。N將仍大于0,但小于m,并且由于本發(fā)明,將減少停止脈沖491的持續(xù)時(shí)間。將觀察到圖6的場景中的重建比圖5的場景中的重建需要復(fù)制更多數(shù)據(jù),但是由于本發(fā)明,需要較少時(shí)間。[0061]圖7是針對第三范例場景的圖3C的組件的圖。R0B360中,檢查點(diǎn)窗口從由引退指針指向的ROB條目20開始并且在ROB條目67結(jié)束。此外,ROB重建窗口763跨越ROB條目20-67。在該示例中,ROB重建窗口763與ROB檢查點(diǎn)窗口完全相同。這是在統(tǒng)計(jì)上以某個(gè)頻率確實(shí)會(huì)發(fā)生的特殊情況。ROB數(shù)據(jù)762包括重建重命名數(shù)據(jù)782。[0062]被設(shè)置檢查點(diǎn)的重命名數(shù)據(jù)780是可用的,并且根據(jù)注釋777,將根據(jù)箭頭775將其恢復(fù)。此外,根據(jù)注釋767,在該場景中不會(huì)在R0B360上步移;沒有重建重命名數(shù)據(jù)將被從R0B360復(fù)制到重命名表336。因此,將不需要重建重命名數(shù)據(jù)782,并且將其示出為劃掉。參考圖4,根據(jù)箭頭775的恢復(fù)可以在單個(gè)時(shí)鐘脈沖475中發(fā)生。N將等于0,并且將不存在脈沖415、465的組。由于本發(fā)明,停止脈沖491的持續(xù)時(shí)間將被最小化。[0063]參考圖8,電子設(shè)備包括與根據(jù)不例實(shí)施例的半導(dǎo)體設(shè)備一起工作的系統(tǒng)800。系統(tǒng)800可以用在個(gè)人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)、移動(dòng)計(jì)算機(jī)、web平板、無線電話、蜂窩電話、數(shù)字音樂播放器、有線或無線電子設(shè)備、或至少包括其中兩者的復(fù)雜電子設(shè)備中。系統(tǒng)800可以包括通過總線850彼此通信的控制器810、諸如小鍵盤、鍵盤、顯示器的輸入/輸出設(shè)備820、存儲(chǔ)器830和接口840??刂破?10可以包括例如根據(jù)實(shí)施例做成的至少一個(gè)微處理器、數(shù)字信號(hào)處理器或微控制器等。存儲(chǔ)器830可以被配置為存儲(chǔ)要由控制器810使用的指令和/或可經(jīng)由I/O設(shè)備訪問的用戶數(shù)據(jù)。電子設(shè)備800可以使用被配置為向通信網(wǎng)絡(luò)傳送數(shù)據(jù)或從通信網(wǎng)絡(luò)接收數(shù)據(jù)的接口840。所述傳送可以經(jīng)由電線,例如經(jīng)由電纜,或USB接口??商鎿Q地,通信網(wǎng)絡(luò)可以是無線的,并且接口840可以是無線的,并且包括例如天線和無線收發(fā)器等。電子系統(tǒng)800可以在通信系統(tǒng)的通信接口協(xié)議中使用,所述通信系統(tǒng)諸如CDMA、GSM、NADC,E-TDMA,WCDMA,CDMA2000、W1-F1、MuniW1-F1、藍(lán)牙、DECT、無線USB、Flash-OFDM、IEEE802.20、GPRS、iBurst、WiBro,WiMAX、高級(jí)WiMAX、UMTS-TDD,HSPA,EVDO、高級(jí)LTE和MMDS等。[0064]圖9示出用于描述根據(jù)實(shí)施例的方法的流程圖900。流程圖900的方法還可以通過上文描述的例如微處理器和電子設(shè)備的實(shí)施例來實(shí)現(xiàn)。[0065]根據(jù)操作910,指令被解碼為微操作。根據(jù)下一操作920,根據(jù)微操作生成重命名數(shù)據(jù)。根據(jù)下一操作930,重命名數(shù)據(jù)被存儲(chǔ)在重命名表中。[0066]根據(jù)下一操作940,重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本存儲(chǔ)在CPT中。根據(jù)另一操作950,已從微操作生成的ROB數(shù)據(jù)被存儲(chǔ)在ROB中。如果需要,則ROB數(shù)據(jù)包括可以用于最終重建重命名表的重建重命名數(shù)據(jù)。ROB維持與CPT的動(dòng)態(tài)關(guān)系。根據(jù)操作960,執(zhí)行微操作。[0067]根據(jù)下一操作970,確定是否已清除重命名表;換句話說,是否已從重命名表清除重命名數(shù)據(jù)。如果否,執(zhí)行從上文的操作910重新開始。在一些實(shí)施例中,如上所述響應(yīng)于檢測到誤預(yù)測而清除重命名表。[0068]如果已清除重命名表,則根據(jù)下一操作980,重命名數(shù)據(jù)被恢復(fù)到重命名表;換句話說,重建重命名表。操作980包括操作982和984中的一個(gè)或兩者。對于操作980,當(dāng)清除重命名表時(shí),ROB條目的ROB重建窗口可以變?yōu)橐讯x的;通過操作982,或通過操作984,將被恢復(fù)到重命名表的正是ROB重建窗口內(nèi)的這些ROB條目的重建重命名數(shù)據(jù)。[0069]根據(jù)操作982,如果操作950的關(guān)系允許,則將重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從CPT復(fù)制到重命名表。在一些實(shí)施例中,在單個(gè)時(shí)鐘周期中如此復(fù)制重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本。[0070]根據(jù)操作984,將重建重命名數(shù)據(jù)從ROB復(fù)制到重命名表。優(yōu)選地,針對操作982未覆蓋的任何剩余物進(jìn)行這樣的復(fù)制,并且通過在ROB上步移來進(jìn)行。[0071]上文中,操作的順序不限于示出的內(nèi)容,并且根據(jù)不同實(shí)施例不同順序是可能的。此外,在某些實(shí)施例中,可以添加新的操作,或者可以修改或刪除個(gè)別操作。[0072]本領(lǐng)域技術(shù)人員鑒于將作為整體來理解的本描述將能夠?qū)崿F(xiàn)本發(fā)明。包括了細(xì)節(jié)以提供全面理解。在其他實(shí)例中,未描述公知的方面,以便不會(huì)不必要地模糊了本發(fā)明。[0073]本描述包括一個(gè)或多個(gè)示例,但其不限制可以如何實(shí)現(xiàn)本發(fā)明。事實(shí)上,本發(fā)明的示例或?qū)嵤├梢愿鶕?jù)描述的內(nèi)容實(shí)現(xiàn),或可以不同地實(shí)現(xiàn),并且還可以與其他現(xiàn)有或未來技術(shù)結(jié)合地實(shí)現(xiàn)。[0074]所附權(quán)利要求定義被視為新穎的和非顯而易見的元素、特征和步驟或操作的某些組合和子組合??梢栽诖宋募蛳嚓P(guān)文件中呈現(xiàn)其他這樣的組合和子組合的額外的權(quán)利要求?!緳?quán)利要求】1.一種微處理器,包括:重命名表,其用于存儲(chǔ)重命名數(shù)據(jù);分派器;以及檢查點(diǎn)表(CPT),其用于存儲(chǔ)從所述分派器接收到的重命名數(shù)據(jù),其中如果清除了所述重命名表,則使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建重命名表。2.如權(quán)利要求1所述的微處理器,其中,僅使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建所述重命名表。3.如權(quán)利要求1所述的微處理器,還包括:分支執(zhí)行邏輯,其用于檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測,清除所述重命名表。4.如權(quán)利要求1所述的微處理器,還包括:時(shí)鐘,其用于輸出定義時(shí)鐘周期的脈沖,以及其中在所述時(shí)鐘周期中的單個(gè)時(shí)鐘周期中重建所述重命名表。5.如權(quán)利要求1所述的微處理器,還包括,重新排序緩沖區(qū)(ROB),其具有ROB條目和指向ROB條目中的可變條目的引退指針,并且其中ROB條目的組被定義為ROB檢查點(diǎn)窗口,所述ROB檢查點(diǎn)窗口根據(jù)動(dòng)態(tài)關(guān)系映射到所述CPT,其中基于所述引退指針指向的ROB條目來定義所述ROB檢查點(diǎn)窗口,以及如果所述動(dòng)態(tài)關(guān)系的方面允許,僅使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建所述重命名表。6.一種用于微處理器的方法,包括:根據(jù)微操作生成重命名數(shù)據(jù);在重命名表中存儲(chǔ)所述重命名數(shù)據(jù);分派器向執(zhí)行單元分派所述微操作中的一個(gè);所述分派器向檢查點(diǎn)表(CPT)傳送所述重命名數(shù)據(jù)用于存儲(chǔ);以及如果清除了所述重命名表,則通過將存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)從所述CPT復(fù)制到所述重命名表來重建所述重命名表。7.如權(quán)利要求6所述的方法,還包括:檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測,清除重命名表。8.一種微處理器,包括:解碼器,其用于將指令解碼為微操作;執(zhí)行單元,其用于執(zhí)行所述微操作;重命名器,其用于根據(jù)所述微操作生成所述重命名數(shù)據(jù);重命名表,其用于以所述重命名數(shù)據(jù)能夠從所述重命名表被清除的方式來存儲(chǔ)所述重命名數(shù)據(jù);檢查點(diǎn)表(CPT),其用于存儲(chǔ)所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本;重新排序緩沖區(qū)(ROB),其具有用于存儲(chǔ)從所述微操作生成的ROB數(shù)據(jù)的ROB條目和指向所述ROB條目中的可變條目的引退指針,所述ROB數(shù)據(jù)包括重建重命名數(shù)據(jù),所述ROB條目的組被定義為ROB檢查點(diǎn)窗口,所述ROB檢查點(diǎn)窗口根據(jù)動(dòng)態(tài)關(guān)系映射到所述CPT,其中基于所述引退指針指向的ROB條目來定義所述ROB檢查點(diǎn)窗口,以及其中如果從所述重命名表清除了存儲(chǔ)在所述重命名表中的重命名數(shù)據(jù),則所述清除的重命名數(shù)據(jù)通過下列操作能夠被恢復(fù)到所述重命名表:如果動(dòng)態(tài)關(guān)系的方面允許,則將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述CPT復(fù)制到所述重命名表,并且將ROB重建窗口中的重建重命名數(shù)據(jù)的至少部分從所述ROB復(fù)制到所述重命名表。9.如權(quán)利要求8所述的微處理器,還包括:分派器,其用于向所述執(zhí)行單元分派所述微操作,以及其中所述CPT從所述分派器接收所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本。10.如權(quán)利要求8所述的微處理器,還包括:分支執(zhí)行邏輯,其用于在執(zhí)行所述微操作時(shí)檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測,從所述重命名表清除所述重命名數(shù)據(jù)。11.如權(quán)利要求8所述的微處理器,還包括:時(shí)鐘,其用于輸出定義時(shí)鐘周期的脈沖,以及其中在所述時(shí)鐘周期中的單個(gè)時(shí)鐘周期中將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述檢查點(diǎn)表復(fù)制到所述重命名表。12.一種用于微處理器的方法,包括:將指令解碼為微操作;執(zhí)行所述微操作;根據(jù)所述微操作生成所述重命名數(shù)據(jù);以所述重命名數(shù)據(jù)能夠從所述重命名表被清除的方式將所述重命名數(shù)據(jù)存儲(chǔ)在重命名表中;在具有深度的檢查點(diǎn)表(CPT)中存儲(chǔ)所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本;以及在重新排序緩沖區(qū)(ROB)的ROB條目中存儲(chǔ)從所述微操作生成的ROB數(shù)據(jù),所述ROB數(shù)據(jù)包括重建重命名數(shù)據(jù),ROB的引退指針指向所述ROB條目中的可變條目,所述ROB條目的組被定義為ROB檢查點(diǎn)窗口,所述ROB檢查點(diǎn)窗口根據(jù)動(dòng)態(tài)關(guān)系映射到所述CPT,其中基于所述引退指針指向的ROB條目來定義所述ROB檢查點(diǎn)窗口,以及如果從所述重命名表清除了存儲(chǔ)在所述重命名表中的重命名數(shù)據(jù),則所述清除的重命名數(shù)據(jù)通過下列操作被恢復(fù)到所述重命名表:如果動(dòng)態(tài)關(guān)系的方面允許,則將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述CPT復(fù)制到所述重命名表,并且將重建重命名數(shù)據(jù)的至少部分從所述ROB復(fù)制到所述重命名表。13.如權(quán)利要求12所述的方法,其中從所述解碼器經(jīng)由分派器接收所述微操作用于執(zhí)行,以及所述CPT從所述分派器接收所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本。14.如權(quán)利要求12所述的方法,還包括:在執(zhí)行所述微操作時(shí)檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測,從所述重命名表清除所述重命名數(shù)據(jù)。15.如權(quán)利要求12所述方法,其中脈沖是定義時(shí)鐘周期的輸出,以及在所述時(shí)鐘周期中的單個(gè)所述時(shí)鐘周期中將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述檢查點(diǎn)表復(fù)制到所述重命名表。16.—種微處理器,包括:重命名器,其用于根據(jù)微操作生成重命名數(shù)據(jù);重命名表,其用于存儲(chǔ)所述重命名數(shù)據(jù);重新排序緩沖區(qū)(ROB),其用于存儲(chǔ)從所述微操作生成的ROB數(shù)據(jù),所述ROB數(shù)據(jù)包括重建重命名數(shù)據(jù);以及正好一個(gè)檢查點(diǎn)表(CPT),其用于存儲(chǔ)所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本,以及其中如果從所述重命名表清除了存儲(chǔ)在所述重命名表中的重命名數(shù)據(jù),則通過下列操作恢復(fù)所述清除的重命名數(shù)據(jù):將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述CPT復(fù)制到所述重命名表,而不將所述重建重命名數(shù)據(jù)的任何部分從所述ROB復(fù)制到所述重命名表。17.如權(quán)利要求16所述的微處理器,還包括:分派器,其用于向所述執(zhí)行單元分派所述微操作,以及其中所述CPT從所述分派器接收所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本。18.如權(quán)利要求16所述的微處理器,還包括:分支執(zhí)行邏輯,其用于在所述微操作的執(zhí)行中檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測而重建所述重命名表。19.如權(quán)利要求16所述的微處理器,還包括:時(shí)鐘,其用于輸出定義時(shí)鐘周期的脈沖,以及在所述時(shí)鐘周期中的單個(gè)時(shí)鐘周期中將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述檢查點(diǎn)表復(fù)制到所述重命名表。20.一種用于微處理器的方法,包括:根據(jù)微操作生成重命名數(shù)據(jù);在重命名表中存儲(chǔ)所述重命名數(shù)據(jù);在重新排序緩沖區(qū)(ROB)中存儲(chǔ)從所述微操作生成的ROB數(shù)據(jù);在正好一個(gè)檢查點(diǎn)表(CPT)中存儲(chǔ)所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本,所述ROB數(shù)據(jù)包括重建重命名數(shù)據(jù);以及如果從所述重命名表清除了存儲(chǔ)在所述重命名表中的重命名數(shù)據(jù),則通過下列操作恢復(fù)所述清除的重命名數(shù)據(jù):將所述重命名數(shù)據(jù)的被設(shè)置檢查點(diǎn)的版本從所述CPT復(fù)制到所述重命名表,而不將任何重建重命名數(shù)據(jù)從所述ROB復(fù)制到所述重命名表。21.如權(quán)利要求20所述的方法,還包括:在執(zhí)行所述微操作時(shí)檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測而從重命名表清除重命名數(shù)據(jù)。22.—種電子設(shè)備,包括:總線;接口,其被配置為向連接到所述總線的通信網(wǎng)絡(luò)傳送數(shù)據(jù)或者從所述通信網(wǎng)絡(luò)接收數(shù)據(jù);I/O設(shè)備,其連接到所述總線;存儲(chǔ)器,其連接到所述總線,并且被配置為存儲(chǔ)經(jīng)由所述I/O設(shè)備可訪問的用戶數(shù)據(jù)或指令;以及控制器,其連接到所述總線,并且被配置為使用所述指令,所述控制器包括至少一個(gè)微處理器,所述微處理器包括:重命名表,其用于存儲(chǔ)重命名數(shù)據(jù);分派器;以及檢查點(diǎn)表(CPT),其用于存儲(chǔ)從所述分派器接收到的重命名數(shù)據(jù),其中如果清除了所述重命名表,則使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建重命名表。23.如權(quán)利要求22所述的設(shè)備,其中所述接口是無線的,并且所述通信網(wǎng)絡(luò)是無線的。24.如權(quán)利要求22所述的設(shè)備,其中僅使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建所述重命名表。25.如權(quán)利要求22所述的設(shè)備,還包括,分支執(zhí)行邏輯,其用于檢測誤預(yù)測,以及其中響應(yīng)于檢測到誤預(yù)測,清除所述重命名表。26.如權(quán)利要求22所述的設(shè)備,還包括:時(shí)鐘,其用于輸出定義時(shí)鐘周期的脈沖,以及其中在所述時(shí)鐘周期中的單個(gè)時(shí)鐘周期中重建所述重命名表。27.如權(quán)利要求22所述的設(shè)備,還包括:重新排序緩沖區(qū)(ROB),其具有ROB條目和指向ROB條目中的可變條目的引退指針,并且其中ROB條目的組被定義為ROB檢查點(diǎn)窗口,所述ROB檢查點(diǎn)窗口根據(jù)動(dòng)態(tài)關(guān)系映射到所述CPT,其中基于所述引退指針指向的ROB條目來定義所述ROB檢查點(diǎn)窗口,以及如果所述動(dòng)態(tài)關(guān)系的方面允許,則僅使用存儲(chǔ)在所述CPT中的重命名數(shù)據(jù)來重建所述重命名表?!疚臋n編號(hào)】G06F13/10GK104050027SQ201410097569【公開日】2014年9月17日申請日期:2014年3月14日優(yōu)先權(quán)日:2013年3月14日【發(fā)明者】R.伊恩加,P.桑薩納克里什南申請人:三星電子株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿城市| 绥芬河市| 白朗县| 崇信县| 莒南县| 阜南县| 年辖:市辖区| 岗巴县| 凤庆县| 青铜峡市| 平果县| 大埔县| 三江| 韶关市| 东台市| 隆林| 阿拉善右旗| 宜春市| 滦南县| 云梦县| 黄骅市| 海宁市| 安福县| 永泰县| 宝鸡市| 沂源县| 萍乡市| 都昌县| 搜索| 固阳县| 晴隆县| 长沙县| 上犹县| 通化县| 邯郸县| 黔南| 雷波县| 祁门县| 顺昌县| 弥渡县| 离岛区|