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

分區(qū)的發(fā)送隊(duì)列和分配策略的制作方法

文檔序號(hào):6562590閱讀:208來(lái)源:國(guó)知局
專利名稱:分區(qū)的發(fā)送隊(duì)列和分配策略的制作方法
技術(shù)領(lǐng)域
本發(fā)明在總體上涉及微處理器領(lǐng)域,具體地說,本發(fā)明涉及包括一分區(qū)的發(fā)送隊(duì)列的微處理器以及將指令分配給所述隊(duì)列的方法。
背景技術(shù)
在微處理器結(jié)構(gòu)領(lǐng)域中,發(fā)送隊(duì)列通常提供這樣一種工具,它用于存將等待執(zhí)行的指令存儲(chǔ)在與發(fā)送相關(guān)的一個(gè)或多個(gè)執(zhí)行單元中。執(zhí)行單元一般包括用于更新寄存器文件的工具,在寄存器文件中存儲(chǔ)有指令的操作數(shù)以便將等待執(zhí)行,并且,在執(zhí)行之后將操作結(jié)果存儲(chǔ)在寄存器文件中。如果將一執(zhí)行單元的多個(gè)實(shí)例包括在微處理器結(jié)構(gòu)內(nèi),則每個(gè)執(zhí)行單元均包括其自己的寄存器文件。當(dāng)在特定的執(zhí)行單元中執(zhí)行指令時(shí),就在其它執(zhí)行單元之一中的指令需要結(jié)果以執(zhí)行給定操作的情況下,通常將結(jié)果郵送(post)與各執(zhí)行單元相關(guān)的寄存器文件中。
因此,在指令結(jié)束之后,更新執(zhí)行上述操作的執(zhí)行單元本地的寄存器文件,并且還更新與其它執(zhí)行單元有關(guān)的一個(gè)或多個(gè)其它寄存器文件。一般地說,執(zhí)行指令的執(zhí)行單元本地的寄存器文件在物理上比其它執(zhí)行單元的寄存器文件更近。本地寄存器文件與遠(yuǎn)程寄存器文件之間的距離差會(huì)導(dǎo)致處理器中的時(shí)間不對(duì)稱。換句話說,在遠(yuǎn)程文件中更新所執(zhí)行的指令的結(jié)果之前,在本地寄存器文件中更新該結(jié)果,因?yàn)椋趫?zhí)行單元與遠(yuǎn)程文件之間存在有較大的互連延遲路徑。
微處理器布局中的不對(duì)稱在傳統(tǒng)上是不太加以考慮的,因?yàn)?,處理器的循環(huán)周期足以允許有最壞情況的延遲路徑。但是,在處理器循環(huán)周期下降至1毫微秒以下時(shí),延遲路徑的不對(duì)稱性會(huì)導(dǎo)致這樣的情況,其中,執(zhí)行給定指令序列所需的時(shí)間(處理器循環(huán)的次數(shù))會(huì)受不對(duì)稱的布局因素的影響。如果一對(duì)指令包括了指令的相關(guān)性,則相關(guān)指令必須等待直至第一指令的的結(jié)果郵送已向其發(fā)送了相關(guān)指令的執(zhí)行單元的寄存器文件。如果相關(guān)指令而不是第一指令被發(fā)送給了一不同的執(zhí)行單元,則與遠(yuǎn)程寄存器文件相關(guān)的互連延遲會(huì)對(duì)效率產(chǎn)生負(fù)面影響。所以,非常希望能實(shí)現(xiàn)一種這樣的微處理器,它包括發(fā)送隊(duì)列,該隊(duì)列能有選擇地將指令發(fā)送給其相關(guān)的執(zhí)行單元,以使整個(gè)執(zhí)行時(shí)間最少。此外,還希望所實(shí)現(xiàn)的方案不會(huì)明顯地增加成本或微處理器結(jié)構(gòu)的復(fù)雜性并且對(duì)微處理器的用戶(程序員)是透明的。
發(fā)明概述一種處理指令的微處理器和方法,它可解決功能單元之間的時(shí)間不對(duì)稱性。接收包括第一指令和第二指令在內(nèi)的指令序列。相關(guān)性邏輯判斷第一與第二指令之間是否有任何的相關(guān)性。然后,相關(guān)性邏輯根據(jù)相關(guān)性判斷,選擇存儲(chǔ)等待發(fā)送的第一和第二指令的第一與第二發(fā)送隊(duì)列分區(qū),其中,第一發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第一執(zhí)行單元,第二發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第二執(zhí)行單元。第一和第二發(fā)送隊(duì)列分區(qū)相對(duì)其中存儲(chǔ)有指令結(jié)果的第一寄存器文件是不對(duì)稱的。然后,將第一和第二指令存儲(chǔ)在選定的分區(qū)內(nèi)。在第一與第二發(fā)送隊(duì)列分區(qū)之間進(jìn)行選擇可包括如果在第一與第二指令之間存在相關(guān)性,則選擇一用于第一和第二指令的共用發(fā)送隊(duì)列分區(qū);以及,如果第一和第二指令沒有相關(guān)性,則根據(jù)公平算法在第一與第二發(fā)送隊(duì)列分區(qū)之間進(jìn)行選擇。


通過閱讀下述詳細(xì)說明并參照附圖,可以看出本發(fā)明的其它目的和優(yōu)點(diǎn),在附圖中圖1是數(shù)據(jù)處理系統(tǒng)的框圖;圖2是適用于圖1中的數(shù)據(jù)處理系統(tǒng)的處理器的框圖;圖3是本發(fā)明一個(gè)實(shí)施例的分區(qū)的發(fā)送隊(duì)列的框圖;以及圖4是說明圖3的分區(qū)的發(fā)送隊(duì)列的操作的流程圖。
盡管本發(fā)明有多種改進(jìn)形式和交替形式,但在附圖中以舉例的方式示出了本發(fā)明的具體實(shí)施例,并且,本文將詳細(xì)說明這些具體實(shí)施例。但是,應(yīng)該認(rèn)識(shí)到,本文所提供的附圖和詳細(xì)說明并不是要將本發(fā)明限制于所公開的特定實(shí)施例,相反,其目的是要涵蓋后附權(quán)利要求所限定的本發(fā)明精神和范圍內(nèi)的所有的改進(jìn)形式、等價(jià)形式以及交替形式。
發(fā)明詳述參照?qǐng)D1說明本發(fā)明的數(shù)據(jù)處理系統(tǒng)100的實(shí)施例。系統(tǒng)100具有一個(gè)或多個(gè)中央處理單元(處理器)101a、101b、101c等(在整體上或通常稱為處理器101)。在一個(gè)實(shí)施例中,每個(gè)處理器101均包括一精簡(jiǎn)指令集計(jì)算機(jī)(RISC)微處理器??梢栽贑.May等人編輯的《PowerPC結(jié)構(gòu)對(duì)RISC處理器新家族的說明》(Morgan Kaufmann,1994,第二版)中獲得在整體上與RISC處理器有關(guān)的額外信息。處理器101通過系統(tǒng)總線113與系統(tǒng)存儲(chǔ)器250和多種其它組件相連。
只讀存儲(chǔ)器(ROM)102與系統(tǒng)總線113相連并且可包括一基本輸出/輸出系統(tǒng)(BIOS),它控制著系統(tǒng)100的某些基本功能。圖1還說明了I/O適配器107和網(wǎng)絡(luò)適配器106,它們連接于系統(tǒng)總線113。I/O適配器107可以是小型計(jì)算機(jī)系統(tǒng)接口(SCSI)適配器,它與硬盤103和/或磁帶存儲(chǔ)器105相通訊。I/O適配器107、硬盤103和磁帶存儲(chǔ)設(shè)備105在總體上稱為海量存儲(chǔ)器104。
網(wǎng)絡(luò)適配器106將總線113與外部網(wǎng)絡(luò)互連起來(lái),以使得數(shù)據(jù)處理系統(tǒng)100能與其它這類系統(tǒng)相通訊。顯示監(jiān)視器136通過顯示器適配器112與系統(tǒng)總線113相連,顯示器適配器112可包括圖形適配器,以提高圖形增強(qiáng)應(yīng)用程序和視頻控制器的效率。在一個(gè)實(shí)施例中,適配器107、106和112可與一個(gè)或多個(gè)I/O總線相連,所述I/O總線通過中間總線橋(未示出)與系統(tǒng)總線113。
用于連接諸如硬盤控制器、網(wǎng)絡(luò)適配器和圖形適配器之類的外圍設(shè)備的適當(dāng)I/O總線包括符合PCI局部總線規(guī)格Rev.2.2的外圍組件接件(PCI)總線,所述規(guī)格書可從PCI專門小組Hillsboro OR獲得,本文引用了該規(guī)格書。顯示出附加輸入/輸出設(shè)備通過用戶接口適配器108和顯示器適配器112連接于系統(tǒng)總線113。鍵盤109、鼠標(biāo)110和揚(yáng)聲器111均通過用戶接口適配器108與總線113互連,用戶接口適配器108可例如包括超級(jí)I/O芯片,它將多個(gè)設(shè)備適配器集成進(jìn)單個(gè)的集成電路。就與這種芯片有關(guān)的其它信息而言,讀者可參照PC87338/PC97338ACPI1.0以及PC98/99兼容超級(jí)I/O數(shù)據(jù)說明書,它們?cè)趙ww.nation.com來(lái)自國(guó)家半導(dǎo)體公司(1998年11月)。
因此,如圖1所示,系統(tǒng)100包括處理器101形式的處理裝置;包括系統(tǒng)存儲(chǔ)器250和海量存儲(chǔ)器104的存儲(chǔ)裝置;諸如鍵盤109和鼠標(biāo)110之類的輸入裝置;以及包括揚(yáng)聲器111和顯示器136的輸出裝置。在一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器250和海量存儲(chǔ)器104的一部分共同存儲(chǔ)有諸如IBM公司的AIX操作系統(tǒng)之類的操作系統(tǒng),以便協(xié)調(diào)圖1所示的多個(gè)組件的功能。與AIX操作系統(tǒng)有關(guān)的其它細(xì)節(jié)可在www.ibm.com從來(lái)自IBM公司的《AIX4.3版技術(shù)參考基本操作系統(tǒng)和擴(kuò)展,第一和第二卷》(序列號(hào)SC23-4159和SC23-4160)、《AIX4.3版系統(tǒng)用戶指南通訊和網(wǎng)絡(luò)》(序列號(hào)SC23-4122)以及《AIX4.3版系統(tǒng)用戶指南操作系統(tǒng)和設(shè)備》(序列號(hào)SC23-4121)中獲得,本文引用了上述文件。
參照?qǐng)D2,示出了適用于系統(tǒng)100的處理器101的實(shí)施例的簡(jiǎn)化框圖。在所示的實(shí)施例中,處理器101包括集成電路超標(biāo)量體系結(jié)構(gòu)微處理器,在單塊集成電路半導(dǎo)體襯底上形成。處理器101包括如下詳細(xì)說明的多個(gè)執(zhí)行單元、寄存器、緩存器、存儲(chǔ)器和其它功能單元。如圖2所示,處理器101通過總線接口單元(BIU)212和處理器總線213與系統(tǒng)總線113相連,處理器總線213與系統(tǒng)總線113相似包括地址、數(shù)據(jù)和控制總線。BIU212控制信息在處理器101與諸如系統(tǒng)存儲(chǔ)器250和海量存儲(chǔ)器104之類的連接于系統(tǒng)總線113的其它設(shè)備之間的傳遞。應(yīng)該注意,處理器101可包括與系統(tǒng)總線113相連的其它設(shè)備,這些設(shè)備對(duì)理解下述說明不是必需的,因此為簡(jiǎn)化的緣故省略了這些設(shè)備。
BIU212與處理器101中的指令高速緩存器和存儲(chǔ)器管理單元214、數(shù)據(jù)高速緩存器和存儲(chǔ)器管理單元216相連。諸如指令高速緩存器214和數(shù)據(jù)高速緩存器216內(nèi)的那些高速緩存器之類的高速緩存器能使處理器101有對(duì)先前傳自系統(tǒng)存儲(chǔ)器250的數(shù)據(jù)或指令的子集的較快存取時(shí)間,從而提高數(shù)據(jù)處理系統(tǒng)100的操作速度。分別存儲(chǔ)在數(shù)據(jù)高速緩存器216和指令高速緩存器214中的數(shù)據(jù)和指令由地址標(biāo)記來(lái)加以標(biāo)識(shí)和存取,每個(gè)地址標(biāo)記均包括其中駐留有數(shù)據(jù)和指令的系統(tǒng)存儲(chǔ)器物理地址的選定多個(gè)位(一般為高階位)。順序提取單元217在每個(gè)時(shí)鐘周期期間均從指令高速緩存214器中檢索出用于執(zhí)行的指令。在一個(gè)實(shí)施例中,如果順序提取單元217從指令高速緩存器214中檢索出分支指令,則將該分支指令傳給分支處理單元(BPU)218以便執(zhí)行。
順序提取單元217將非分支指令傳給指令隊(duì)列219,所述指令暫時(shí)存儲(chǔ)在其中,直到由處理器101的其它功能單元執(zhí)行。分派單元220負(fù)責(zé)從隊(duì)列219中檢索出所存儲(chǔ)的指令并將這些指令轉(zhuǎn)發(fā)給發(fā)送單元(ISU)221。分派單元220部分地根據(jù)接收自完成單元240的指令完成信息來(lái)分派達(dá)到發(fā)送單元221的指令。所示的ISU221的實(shí)施例包括一個(gè)或多個(gè)發(fā)送隊(duì)列222a、222b、222c等(在總體上或一般稱為發(fā)送隊(duì)列222)。ISU221負(fù)責(zé)通過在可能的情況下將每個(gè)周期內(nèi)的新指令發(fā)送給執(zhí)行單元而保持完全加載了的流水線。在一個(gè)實(shí)施例中,從ISU221中無(wú)次序地發(fā)送出指令。
在所示的實(shí)施例中,處理器101的執(zhí)行電路除BPU218以外還包括多個(gè)執(zhí)行單元,包括一通用定點(diǎn)執(zhí)行單元(FXU)223、一加載/存儲(chǔ)單元(LSU)228和浮點(diǎn)執(zhí)行單元(FPU)230。FXU223可以表示專用的定點(diǎn)運(yùn)算和邏輯單元,它能用接收自指定通用寄存器(GPR)232的源操作數(shù)進(jìn)行定點(diǎn)加、減、與、或和異或運(yùn)算。在其它實(shí)施例中,執(zhí)行單元223可包括加載/存儲(chǔ)單元以及運(yùn)算/邏輯單元。在執(zhí)行了定點(diǎn)指令之后,定點(diǎn)執(zhí)行單元223將指令的結(jié)果輸出給GPR緩存器232,該緩存器為在結(jié)果總線262上接收到的結(jié)果提供存儲(chǔ)空間。
FPU230能對(duì)接收自浮點(diǎn)寄存器(FPR)236的源操作數(shù)執(zhí)行諸如浮點(diǎn)乘和除之類的單精度和雙精度浮點(diǎn)運(yùn)算和邏輯操作。FPU230將源于執(zhí)行了浮點(diǎn)指令的數(shù)據(jù)輸出給選定的FPR緩存器236以便進(jìn)行存儲(chǔ)。LSU228一般執(zhí)行浮點(diǎn)和定點(diǎn)加載指令,加載指令將來(lái)自數(shù)據(jù)高速緩存器216、低層次高速緩存存儲(chǔ)器(未示出)或系統(tǒng)存儲(chǔ)器250的數(shù)據(jù)加載進(jìn)選定的GPR232或FPR236或和浮點(diǎn)和定點(diǎn)存儲(chǔ)指令,這些指令將來(lái)自GPR232或FPR236中選定的一個(gè)的數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)高速緩存器216并最終存儲(chǔ)至系統(tǒng)存儲(chǔ)器250。
在上述最佳實(shí)施例中,處理器101進(jìn)行無(wú)序的指令執(zhí)行,以便進(jìn)一步提高超標(biāo)量體系結(jié)構(gòu)的效率。因此,只要觀察到數(shù)據(jù)的相關(guān)性,就按隨指令原始程序順序而變的次序由FXU223、LSU228和FPU230來(lái)執(zhí)行指令。如前所述,按流水線階段的順序由各FXU223、LSU228和FPU230來(lái)對(duì)指令進(jìn)行處理。在一個(gè)實(shí)施例中,處理器101包括五個(gè)不同的流水線階段即提取、解碼/分派、執(zhí)行、結(jié)束和完成。
在提取階段過程中,順序提取單元217從指令高速緩存器214中檢索出一個(gè)或多個(gè)非分支指令并將所提取出來(lái)的指令存儲(chǔ)到指令隊(duì)列219內(nèi)。相反,順序提取單元217將來(lái)自指令流的任何分支指令都傳給BPU218以便執(zhí)行。BPU218包括分支預(yù)測(cè)裝置,它在一個(gè)實(shí)施例中包括一諸如分支歷史表之類的動(dòng)態(tài)預(yù)測(cè)裝置,所述分支歷史表通過預(yù)測(cè)是否出現(xiàn)分支而使BPU218試探性地執(zhí)行未定條件分支指令。
在解碼/分派階段過程中,分派單元220和ISU221對(duì)來(lái)自發(fā)送隊(duì)列222的一個(gè)或多個(gè)指令進(jìn)行解碼并一般按程序順序?qū)⑵浒l(fā)送給執(zhí)行單元223、228和230。ISU221分配GPR更名緩存器233或FPR更名緩存器237內(nèi)的一個(gè)或多個(gè)更名緩存器,以便在將結(jié)果(或多個(gè)結(jié)果)提交給GPR232和FPR237之前暫時(shí)存儲(chǔ)指令的結(jié)果或多個(gè)結(jié)果。此外,指令(或表示指令的指令標(biāo)識(shí)或標(biāo)記)可存儲(chǔ)在完成單元240的多槽完成緩存器(完成表)內(nèi)作為跟蹤已完成了哪些指令的裝置。
在執(zhí)行階段過程中,執(zhí)行單元223、228和230執(zhí)行在所指明的操作的操作數(shù)和執(zhí)行資源是可用的時(shí)自ISU220發(fā)送的指令。執(zhí)行單元223、228和230可包括存儲(chǔ)有調(diào)度給該執(zhí)行單元的指令的保留站,直至操作數(shù)或執(zhí)行資源是可用的。在指令的執(zhí)行業(yè)已終止之后,執(zhí)行單元223、228和230在有數(shù)據(jù)結(jié)果的情況下,根據(jù)指令類型的不同將數(shù)據(jù)結(jié)果存儲(chǔ)在GPR或FPR內(nèi)。在所示的實(shí)施例中,執(zhí)行單元223、228和230將哪些指令已結(jié)束執(zhí)行通知給完成單元240。最后,按來(lái)自完成單元240的完成表的程序順序完成指令。通過將指令的數(shù)據(jù)結(jié)果從GPR更名緩存器233和FPR更名緩存器237分別傳給GPR和FPR236而完成FXU223和FPU230所執(zhí)行的指令。
處理器101最好支持無(wú)序的試探性的指令執(zhí)行。根據(jù)預(yù)測(cè)的分支或在會(huì)導(dǎo)致中斷條件的指令范圍以外試探性地執(zhí)行指令。在錯(cuò)誤預(yù)測(cè)了分支或有中斷的情況下,硬件會(huì)自動(dòng)地從流水線中清除不應(yīng)有的指令并廢棄不應(yīng)有的結(jié)果。在一個(gè)時(shí)鐘周期內(nèi)有選擇地清除不正確的試探性結(jié)果,指令的發(fā)送可重新繼續(xù)下一個(gè)時(shí)鐘周期。
在發(fā)送指令時(shí),ISU221按能很容易確定任何兩個(gè)指令之間的相對(duì)時(shí)限的方式來(lái)標(biāo)記所說的指令。在一個(gè)實(shí)施例中,用整數(shù)值(ITAG)來(lái)標(biāo)記順序指令。在另一個(gè)實(shí)施例中,可將多個(gè)指令為跟蹤的目的分組到一起并賦給一共用的標(biāo)識(shí)符,本文稱之為組標(biāo)記(GTAG)。除提供用于確定所發(fā)送的指令的次序和相對(duì)時(shí)限的機(jī)制以外,ITAG和GTAG還提供它們相應(yīng)指令的簡(jiǎn)略表示。指令的標(biāo)記值與其駐留的隊(duì)列入口和流水線階段有關(guān)。使用標(biāo)記有助于指令清除機(jī)制(響應(yīng)處理器生成的清除指令),其中,在與清除指令有關(guān)的ITAG或GTAG和與特定隊(duì)列入口或執(zhí)行單元階段有關(guān)的ITAG或GTAG之間作數(shù)量比較,如果比較的結(jié)果是指令與被清除的指令一樣年輕或比被清除的指令更年輕(即與被清除的指令同步或在被清除的指令之后),則所述入口是無(wú)效的。從機(jī)器中“清除掉”清除指令的所有其余部分(以及所有的后續(xù)指令),并且,將提取單元重定向到始于“清除”指令的地址處的提取操作。
參照?qǐng)D3,提供了說明本發(fā)明一個(gè)實(shí)施例的處理器101的包括發(fā)送單元221、發(fā)送隊(duì)列222以及執(zhí)行單元223在內(nèi)的執(zhí)行流水線的一部分的圖。在這一實(shí)施例中,執(zhí)行單元223包括一第一側(cè)面304-1和一第二側(cè)面304-2(一般或在總體上為側(cè)面304)。在所示的實(shí)施例中,每個(gè)側(cè)面304本身都是一個(gè)功能單元,它包括寄存器文件306和第一功能單元310。因此,第一側(cè)面304-1包括寄存器文件306-1和功能單元310-1,而第二側(cè)面304-2則包括寄存器文件306-2和功能單元310-2。每個(gè)第一功能單元310作為實(shí)例均可包括一定點(diǎn)加法器/比較器或定點(diǎn)加載/存儲(chǔ)單元。在另一個(gè)實(shí)施例中,執(zhí)行單元223的每個(gè)側(cè)面304均包括第一功能單元310和第二功能單元312,它們共享一共用寄存器文件。在這一實(shí)施例中,第一功能單元310可包括定點(diǎn)加法器/比較器,且第二功能單元312可包括加載/存儲(chǔ)單元。
在發(fā)送單元221將指令從發(fā)送隊(duì)列222發(fā)送給執(zhí)行單元223時(shí),就將該指令分配給執(zhí)行單元223的一側(cè)304,并將指令操作數(shù)存儲(chǔ)在相應(yīng)的寄存器文件306內(nèi)。然后,相應(yīng)的功能單元310(或312)在執(zhí)行指令時(shí)通過讀取端口308從寄存器文件306中檢索出操作數(shù)、執(zhí)行所需的操作并在需要將結(jié)果作為用于后續(xù)指令的操作數(shù)的情況下將結(jié)果返回給寄存器文件306。在一個(gè)實(shí)施例中,功能單元310所產(chǎn)生的結(jié)果還存儲(chǔ)在執(zhí)行單元223的另一側(cè)304的寄存器文件306中,因?yàn)?,需要第一指令所產(chǎn)生的結(jié)果的后續(xù)指令可被分配給執(zhí)行單元223的第二側(cè)304。因此,如果將指令分配給執(zhí)行單元223的第一側(cè)304,則將功能單元310-1所產(chǎn)生的結(jié)果返回給第一側(cè)304-1的寄存器文件306-1和第二側(cè)304-2的寄存器文件306-2。
在歷史上,與處理器周期時(shí)間相比,用于使結(jié)果經(jīng)過從功能單元310開始到寄存器文件306的互連部分所需的時(shí)間差是不明顯的。在這種情況下,從第一功能單元310-1到第一和第二寄存器文件306-1和306-2的距離差所導(dǎo)致的時(shí)間不對(duì)稱一般并不是關(guān)鍵的而是可在很大程度上加以忽略。但是,當(dāng)處理器速度業(yè)已增加超過千兆赫閾值時(shí),互連延遲就會(huì)在結(jié)構(gòu)設(shè)計(jì)中變成一顯著的考慮因素。在假定第一功能單元310-1在物理上比靠近第二寄存器文件306-2更加靠近第一寄存器文件306-1的情況下,結(jié)果會(huì)在到達(dá)第二寄存器文件306-2之前到達(dá)第一寄存器文件306-1。
在最壞的情況下,物理布局中與不對(duì)稱性有關(guān)的時(shí)間差會(huì)導(dǎo)致一個(gè)或多個(gè)不必要的額外處理器周期以便在指令之間有相關(guān)性時(shí)完成指令序列。所示的本發(fā)明實(shí)施例可通過實(shí)現(xiàn)帶有為執(zhí)行單元223的第一側(cè)304-1所專用的第一分區(qū)302-1和為第二側(cè)304-2所專用的第二分區(qū)302-2的發(fā)送隊(duì)列222而解決這方面的問題。此外,所示的發(fā)送單元221的實(shí)施例包括相關(guān)性邏輯301,它可根據(jù)操作之間的相關(guān)性來(lái)確定將指令分配給發(fā)送隊(duì)列分區(qū)302-1和302-2。
最好能使相關(guān)性邏輯301接收指令序列并評(píng)價(jià)指令的源和目標(biāo)操作數(shù)以便確定指令間的相關(guān)性。如果指令B需要由指令A(yù)產(chǎn)生的結(jié)果,則說指令B真正依賴指令A(yù)。如果在時(shí)間上緊挨著執(zhí)行指令A(yù)和指令B,則停止指令B以等待來(lái)自指令A(yù)的結(jié)果。如果在執(zhí)行單元223的一側(cè)304-1上執(zhí)行不相關(guān)的指令并在另一側(cè)304-2上執(zhí)行依賴性指令,則導(dǎo)致停止的指令相關(guān)性的可能性會(huì)增加,因?yàn)?,需要較長(zhǎng)的時(shí)間使不相關(guān)的指令的結(jié)果進(jìn)入可供依賴性指令使用的寄存器文件306-2。
在一個(gè)實(shí)施例中,使相關(guān)性邏輯302通過將相關(guān)性鏈(即一指令以及直接或間接取決于該指令結(jié)果的指令)中的指令分配給執(zhí)行單元223的共用側(cè)面304而減少指令相關(guān)性和布局不對(duì)稱性的效率沖突。在指令序列中的指令彼此沒有相關(guān)性的情況下,相關(guān)性邏輯301可根據(jù)預(yù)定的公平算法諸如通過在兩個(gè)發(fā)送隊(duì)列分區(qū)302之間交替地分配不相關(guān)的指令或者通過將不相關(guān)的指令分配給具有最多可用入口的發(fā)送隊(duì)列而自由地將指令分配給發(fā)送隊(duì)列分區(qū)302-1和302-2。在相關(guān)性邏輯301檢測(cè)到指令相關(guān)性時(shí),最好將來(lái)自共用相關(guān)性鏈的指令分配給發(fā)送隊(duì)到222的同一分區(qū)302。相關(guān)性邏輯301可通過記錄當(dāng)前在發(fā)送隊(duì)列222中等待執(zhí)行的各執(zhí)行的源和目的操作數(shù)而確定指令的相關(guān)性。在新指令到達(dá)時(shí),將它們的操作數(shù)與未決指令的操作數(shù)相比較,以便判斷新指令是否需要另一未決指令的操作數(shù)。
在所示的實(shí)施例中,將指令分配給一共用分區(qū)302能確保在執(zhí)行單元223的共用側(cè)304中執(zhí)行指令,因?yàn)?,各分區(qū)硬連線于執(zhí)行單元223的相應(yīng)側(cè)304。因此,將分配給第一分區(qū)302-1的指令發(fā)送給執(zhí)行單元223的第一側(cè)304-1并在其中加以執(zhí)行,同時(shí),將分配給發(fā)送隊(duì)列222的第二分區(qū)302-2的指令發(fā)送給執(zhí)行單元223的第二側(cè)304-2并在其中加以執(zhí)行。所示的本發(fā)明實(shí)施例可通過在將指令發(fā)送和分配給發(fā)送隊(duì)列分區(qū)之前根據(jù)所確定的相關(guān)性判斷指令相關(guān)性而提高效率。然后,在沒有與判斷選擇哪個(gè)執(zhí)行單元有關(guān)的任何延遲的情況下將指令直接發(fā)送給執(zhí)行單元223的相應(yīng)側(cè)304。
參照?qǐng)D4,說明了本發(fā)明一個(gè)實(shí)施例的發(fā)送單元221和相關(guān)性邏輯302的操作。在所述說明中,發(fā)送單元221和相關(guān)性邏輯301接收包括指令A(yù)至F的指令序列。在所示的實(shí)例中,指令A(yù)、C和D構(gòu)成了第一相關(guān)性鏈,因?yàn)?,指令C取決于指令A(yù)的結(jié)果,指令D取決于指令C的結(jié)果。與此相似,指令B、E和F構(gòu)成了第二相關(guān)性鏈,因?yàn)椋噶頔取決于指令B,指令F取決于指令E。盡管隨機(jī)分配方案可根據(jù)隊(duì)列中可用入口的數(shù)量或依照其它公平方案將這些輸入指令分配給發(fā)送隊(duì)列222的分區(qū)302,但相關(guān)性邏輯302可檢測(cè)到限定第一和第二相關(guān)性的相關(guān)性、越過缺省的發(fā)送隊(duì)列配置機(jī)制并根據(jù)指令的相關(guān)性鏈將指令傳給發(fā)送隊(duì)列分區(qū)。具體地說,由于指令A(yù)、C和D構(gòu)成了相關(guān)性鏈,所以,它們均被分配給了一共用的發(fā)送隊(duì)列分區(qū)302。與此相似,由于指令B、E和F構(gòu)成了相關(guān)性鏈,所以,它們均被分配給了發(fā)送隊(duì)列222的共用分區(qū)302。由于相關(guān)指令接收父指令A(yù)和C的結(jié)果所需的延遲是其中執(zhí)行父指令的功能單元與其中執(zhí)行相關(guān)指令的執(zhí)行單元的寄存器文件之間互連長(zhǎng)度的函數(shù),故本發(fā)明可通過構(gòu)成共用相關(guān)性鏈的指向偏向執(zhí)行單元223的同一側(cè)304而提高效率。通過這種方式,相關(guān)性鏈中的各指令均會(huì)接收來(lái)自指令在短的可能時(shí)間中所依賴的那些指令的結(jié)果。
本技術(shù)中受益于本公開內(nèi)容的專家可以看出,本發(fā)明試圖通過至少部分地根據(jù)指令相關(guān)性將指令分配給發(fā)送及列分區(qū),以便解決執(zhí)行單元中時(shí)間不對(duì)稱的問題。應(yīng)該認(rèn)識(shí)到,上述詳細(xì)說明和附圖中所示和所說明的本發(fā)明形式僅應(yīng)看作是當(dāng)前最佳實(shí)施例。以下權(quán)利要求應(yīng)在廣義上加以解釋,以便包括所公開的最佳實(shí)施例的所有變化形式。
權(quán)利要求
1.一種在微處理器中處理指令的方法,包括接收包括至少第一指令和第二指令在內(nèi)的指令序列;判斷第二指令是否與第一指令相關(guān);根據(jù)上述根據(jù)相關(guān)性判斷在第一與第二發(fā)送隊(duì)列分區(qū)中作出選擇,其中,第一發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第一執(zhí)行單元,第二發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第二執(zhí)行單元;以及將上述第一和第二指令存儲(chǔ)在選定分區(qū)內(nèi)等待執(zhí)行。
2.如權(quán)利要求1的方法,其中,如果第一與第二指令之間有相關(guān)性,則在第一與第二發(fā)送隊(duì)列分區(qū)中作出選擇包括選定用于上述第一和第二指令的共用發(fā)送隊(duì)列分區(qū)。
3.如權(quán)利要求1的方法,其中,判斷第一與第二指令之間相關(guān)性包括判斷第二指令是否需要第一指令的結(jié)果。
4.如權(quán)利要求1的方法,其中,如果第一與第二指令是不相關(guān)的,則在第一與第二發(fā)送隊(duì)列分區(qū)中作出選擇是以公平算法為基礎(chǔ)的。
5.如權(quán)利要求1的方法,其中,所述第一和第二執(zhí)行單元相對(duì)其中存儲(chǔ)有指令結(jié)果的第一寄存器文件是不對(duì)稱的。
6.如權(quán)利要求1的方法,還包括判斷第三指令是否與第一和第二指令構(gòu)成了一相關(guān)性鏈,如果是,則將所述第一、第二和第三指令發(fā)送給共用發(fā)送隊(duì)列分區(qū)。
7.在一種微處理器中,一個(gè)執(zhí)行流水線包括第一和第二執(zhí)行單元,第一執(zhí)行單元包括第一寄存器文件,它能接收來(lái)自第一和第二執(zhí)行單元的結(jié)果;一發(fā)送隊(duì)列,它包括第一和第二發(fā)送隊(duì)列分區(qū),其中,第一發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第一執(zhí)行單元,第二發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第二執(zhí)行單元;以及相關(guān)性邏輯,它配置成能接收包括第一和第二指令在內(nèi)的指令序列并能判斷第一與第二指令之間的相關(guān)性,而且還能根據(jù)相關(guān)性判斷在第一與第二分區(qū)之間作出選擇用于存儲(chǔ)第一和第二指令。
8.如權(quán)利要求7的微處理器,其中,如果第一與第二指令之間存在相關(guān)性,則所述相關(guān)性指令能選擇用于第一和第二指令的共用發(fā)送隊(duì)列分區(qū)。
9.如權(quán)利要求7的微處理器,其中,如果第二指令需要第一指令的結(jié)果,則所述相關(guān)性邏輯就會(huì)檢測(cè)到相關(guān)性。
10.如權(quán)利要求7的微處理器,其中,所述第一和第二發(fā)送隊(duì)列分區(qū)相對(duì)其中在執(zhí)行之后存儲(chǔ)有指令結(jié)果的第一寄存器文件是不對(duì)稱的。
11.如權(quán)利要求7的微處理器,其中,所述第一和第二執(zhí)行單元均包括一功能單元以及一相應(yīng)的寄存器文件。
12.如權(quán)利要求7的微處理器,其中,所述第一功能單元包括定點(diǎn)加法器和加載/存儲(chǔ)單元中的一個(gè)。
13.如權(quán)利要求7的微處理器,其中,所述第一執(zhí)行單元包括一定點(diǎn)加法器和加載/存儲(chǔ)單元。
14.一種數(shù)據(jù)處理系統(tǒng),它包括微處理器、存儲(chǔ)器、輸入裝置以及顯示器,其中,所述微處理器包括一執(zhí)行流水線,包括第一和第二執(zhí)行單元,第一執(zhí)行單元包括第一寄存器文件,它能接收來(lái)自第一和第二執(zhí)行單元數(shù)據(jù)庫(kù)結(jié)果;一發(fā)送隊(duì)列,它包括第一和第二發(fā)送隊(duì)列分區(qū),其中,第一分區(qū)將指令發(fā)送給第一執(zhí)行單元,第二分區(qū)將指令發(fā)送給第二執(zhí)行單元;以及相關(guān)性邏輯,它配置成能接收包括第一和第二指令在內(nèi)的指令序列并能判斷第一與第二指令之間的相關(guān)性,而且還能根據(jù)相關(guān)性判斷在用于存儲(chǔ)第一和第二指令的第一與第二分區(qū)之間作出選擇。
15.如權(quán)利要求14的系統(tǒng),其中,如果第一和第二指令之間存在有相關(guān)性,則所述相關(guān)性邏輯能選擇用于第一和第二指令的共用發(fā)送隊(duì)列分區(qū)。
16.如權(quán)利要求14的系統(tǒng),其中,如果第二指令需要第一指令的結(jié)果,則所述相關(guān)性邏輯就會(huì)檢測(cè)到相關(guān)性。
17.如權(quán)利要求14的系統(tǒng),其中,所述第一和第二發(fā)送隊(duì)列分區(qū)相對(duì)其中在執(zhí)行之后存儲(chǔ)有指令結(jié)果的第一寄存器文件是不對(duì)稱的。
18.如權(quán)利要求14的系統(tǒng),其中,所述第一和第二執(zhí)行單元均包括一功能單元以及一相應(yīng)的寄存器文件。
19.如權(quán)利要求14的系統(tǒng),其中,所述第一功能單元包括定點(diǎn)加法器和加載/存儲(chǔ)單元中的一個(gè)。
20.如權(quán)利要求14的系統(tǒng),其中,所述第一執(zhí)行單元包括一定點(diǎn)加法器和加載/存儲(chǔ)單元。
全文摘要
處理指令以便解決時(shí)間不對(duì)稱的微處理器和方法。接收包括第一指令和第二指令在內(nèi)的指令序列。相關(guān)性邏輯判斷第一與第二指令之間是否有任何的相關(guān)性。相關(guān)性邏輯根據(jù)相關(guān)性判斷在用于存儲(chǔ)第一和第二指令的第一與第二發(fā)送隊(duì)列分區(qū)中作出選擇,以便掛起發(fā)送操作,第一發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第一執(zhí)行單元,第二發(fā)送隊(duì)列分區(qū)將指令發(fā)送給第二執(zhí)行單元。第一和第二發(fā)送隊(duì)列分區(qū)相對(duì)其中存儲(chǔ)有指令結(jié)果的第一寄存器文件是不對(duì)稱的。將第一和第二指令存儲(chǔ)在選定分區(qū)內(nèi)。如果在第一與第二指令之間存在相關(guān)性,則選擇一用于第一和第二指令的共用發(fā)送隊(duì)列分區(qū);以及,如果第一和第二指令沒有相關(guān)性,則根據(jù)公平算法在第一與第二發(fā)送隊(duì)列分區(qū)之間進(jìn)行選擇。
文檔編號(hào)G06F9/30GK1340760SQ01125890
公開日2002年3月20日 申請(qǐng)日期2001年8月30日 優(yōu)先權(quán)日2000年8月31日
發(fā)明者J·A·卡爾, C·R·穆爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
玉门市| 巴青县| 西丰县| 额济纳旗| 资源县| 镇坪县| 黄梅县| 应城市| 乌什县| 桃源县| 简阳市| 离岛区| 岳普湖县| 新沂市| 张家口市| 安福县| 西充县| 苏尼特右旗| 旬邑县| 临夏市| 大英县| 和林格尔县| 河曲县| 镇赉县| 大丰市| 新和县| 鲁甸县| 花莲县| 银川市| 嵩明县| 张掖市| 宿松县| 高州市| 荣成市| 襄城县| 甘德县| 塔城市| 石景山区| 自治县| 高清| 依安县|