專(zhuān)利名稱(chēng):用于在超標(biāo)量處理機(jī)系統(tǒng)中索引中間存儲(chǔ)器緩沖的指定的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總地來(lái)說(shuō)涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),特別是用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的方法和系統(tǒng)。更具體地說(shuō),本發(fā)明涉及用于在超標(biāo)量處理機(jī)系統(tǒng)中索引中間存儲(chǔ)器緩沖區(qū)的指定的方法和系統(tǒng)。
現(xiàn)代先有技術(shù)處理系統(tǒng)的設(shè)計(jì)者一直在試圖提高這類(lèi)系統(tǒng)的各種性能。用于提高數(shù)據(jù)處理效率的一種技術(shù)方案是實(shí)現(xiàn)短的周期時(shí)間和低的周期/指令率(CPI)。將這些技術(shù)應(yīng)用于提高效率的數(shù)據(jù)處理系統(tǒng)的一個(gè)良好實(shí)例是國(guó)際商業(yè)機(jī)器公司RISC系統(tǒng)/600(RS/6000)計(jì)算機(jī)。RS/6000系統(tǒng)是設(shè)計(jì)用于在數(shù)字密集和工程和科學(xué)應(yīng)用中以及在多用戶(hù)的商業(yè)場(chǎng)合能夠良好地運(yùn)行。RS/6000處理機(jī)使用了一種超標(biāo)量執(zhí)行過(guò)程,這就意味著同時(shí)發(fā)出和執(zhí)行多條指令。
多條指令的同時(shí)發(fā)出和執(zhí)行需要能夠用高的指令帶寬同時(shí)執(zhí)行的獨(dú)立功能部件。通過(guò)采用分離轉(zhuǎn)移處理部件、定點(diǎn)處理部件和浮點(diǎn)處理部件,這些部件實(shí)質(zhì)上是流水線式的,RS/6000系統(tǒng)實(shí)現(xiàn)了上述的要求。鑒于這種系統(tǒng)中處理機(jī)的流水線式的性質(zhì),必須注意確保在調(diào)度后繼指令之前,就要從對(duì)執(zhí)行后續(xù)指令所必要的特定指令中得到一個(gè)結(jié)果。確保這種所謂“數(shù)據(jù)相關(guān)性危險(xiǎn)”不會(huì)發(fā)生的一種技術(shù)方案是直到所有先前指令都已經(jīng)被調(diào)度的時(shí)間為止,對(duì)特定指令調(diào)度進(jìn)行限制。雖然這種技術(shù)能夠確保不會(huì)發(fā)生數(shù)據(jù)相關(guān)性危險(xiǎn),但是采用這種技術(shù)導(dǎo)致的性能損失也是顯著的。
因此,現(xiàn)代超標(biāo)量數(shù)據(jù)處理系統(tǒng)通常采用所謂“數(shù)據(jù)相關(guān)性互鎖電路”。這種電路包括與指令調(diào)度電路一齊操作的邏輯電路,以便確保直到從對(duì)正確執(zhí)行某條指令所必要的先前指令的已經(jīng)得到結(jié)果的時(shí)間之前,不調(diào)度該指令。實(shí)現(xiàn)數(shù)據(jù)相關(guān)性互鎖電路所需的邏輯電路的數(shù)量與每條指令中源操作數(shù)的數(shù)量成正比。源操作數(shù)是指令中的一個(gè)字段,它被用來(lái)在寄存器堆中存取操作數(shù),以便在該指令的執(zhí)行中使用。
雖然數(shù)據(jù)相關(guān)性互鎖電路能使數(shù)據(jù)相關(guān)性危險(xiǎn)得以避免,并且不會(huì)導(dǎo)致上述顯著的性能損失,但是對(duì)于包含較大量源操作數(shù)和目的操作數(shù)的指令,設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)相關(guān)性互鎖電路變得非常復(fù)雜。相關(guān)性互鎖禁止相關(guān)指令的調(diào)度,這些相關(guān)指令阻止其后的指令輸入調(diào)度器,進(jìn)行調(diào)度和執(zhí)行,而其后的指令可能是無(wú)關(guān)的和可執(zhí)行的。
通過(guò)采用稱(chēng)為“寄存器重新命名”(registerrenaming)的方法,也已經(jīng)論述了在單一的處理器周期中同時(shí)執(zhí)行多條指令發(fā)生的數(shù)據(jù)相關(guān)性危險(xiǎn)問(wèn)題。寄存器重新命名是一種技術(shù)方案,用于在來(lái)自指令的最終結(jié)果被置放在寄存器堆中之前,暫時(shí)將特定指令的結(jié)果置放到寄存器中,以便可能由在后的指令使用。寄存器重新命名一般通過(guò)提供具有附加存儲(chǔ)單元的寄存器堆陣列和指針裝置來(lái)實(shí)現(xiàn),該指針裝置用于標(biāo)識(shí)已經(jīng)被指定給邏輯寄存器的特定物理寄存器。選擇的現(xiàn)有技術(shù)方法也采用多個(gè)寄存器堆陣列,以便對(duì)數(shù)據(jù)提供許多“讀出”端口,或者在例外的情況下提供備份,用于保存先前的結(jié)果。雖然這種技術(shù)為在其他情況下可能必須串行執(zhí)行的指令提供了同時(shí)調(diào)度和執(zhí)行多條指令的能力,但是采用這種技術(shù)隨著將指令調(diào)度到執(zhí)行部件仍然存在問(wèn)題。因?yàn)檎{(diào)度部件或執(zhí)行部件一般必須通過(guò)查尋表或指針系統(tǒng)完成復(fù)雜的讀操作,以便確定什么時(shí)候暫存寄存器包含執(zhí)行某條指令所需的數(shù)據(jù),所以該指令為了執(zhí)行而使用特定數(shù)據(jù)或操作數(shù)的要求,一般已經(jīng)使得在一個(gè)單一處理器周期中不可能將指令和相關(guān)的數(shù)據(jù)調(diào)度到執(zhí)行部件。
此外,某些系統(tǒng)可以在單一處理器周期中多于一次地重新命名寄存器。因此在那些為了寄存器重新命名而使用查找表的系統(tǒng)中,必須有大容量的查尋表,以便能夠確定為特定寄存器最新指定的重新命名緩沖器。
因此將能明顯地看出,通過(guò)允許數(shù)據(jù)或操作數(shù)與指令一起迅速地被調(diào)度,存在著對(duì)一種方法和系統(tǒng)的需要,它允許在超標(biāo)量處理機(jī)系統(tǒng)中在單一處理機(jī)周期內(nèi)進(jìn)行指令調(diào)度。
本發(fā)明的一個(gè)目的是提供一種改進(jìn)的數(shù)據(jù)處理系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供一種用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的改進(jìn)的方法和系統(tǒng)。
本發(fā)明還有另一個(gè)目的是提供一種用于在超標(biāo)量處理機(jī)系統(tǒng)中索引中間存儲(chǔ)器緩沖區(qū)的指定的方法和系統(tǒng)。
下面將說(shuō)明上述目的是如何實(shí)現(xiàn)的。為了在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率,提供了一種方法和系統(tǒng),該超標(biāo)量處理機(jī)系統(tǒng)具有多個(gè)中間存儲(chǔ)器緩沖區(qū)、多個(gè)通用寄存器和存儲(chǔ)器緩沖區(qū)索引。多條標(biāo)量指令可以同時(shí)從調(diào)度緩沖區(qū)調(diào)度到多個(gè)執(zhí)行部件。多條標(biāo)量指令中每要指令一般包含至少一個(gè)源操作數(shù)和一個(gè)目的操作數(shù)。對(duì)多條標(biāo)量指令中選定的一條指令中的目的操作數(shù)指定多個(gè)中間存儲(chǔ)器緩沖區(qū)中一個(gè)特定的緩沖區(qū)。在應(yīng)用程序順序中,當(dāng)已經(jīng)被調(diào)度的指令由另一指令放置在調(diào)度器時(shí),將多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的緩沖區(qū)與多個(gè)通用寄存器中指定的寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中。當(dāng)執(zhí)行選定的指令時(shí),從多條標(biāo)量指令中所選定指令的執(zhí)行結(jié)果被存儲(chǔ)在特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)中。存儲(chǔ)器緩沖區(qū)索引用于確定哪些存儲(chǔ)器緩沖區(qū)用作那些指令的源操作數(shù),那些指令在已經(jīng)為指定的通用寄存器指定了存儲(chǔ)器緩沖區(qū)與執(zhí)行結(jié)果從該存儲(chǔ)器緩沖區(qū)轉(zhuǎn)移到該通用寄存器的時(shí)間之間被調(diào)度的指令。
通過(guò)下面的詳細(xì)說(shuō)明,將能夠明顯地看出本發(fā)明的上述以及附加的目的、特征和優(yōu)點(diǎn)。
被認(rèn)為是本發(fā)明特征的那些新的技術(shù)特征記載在與本說(shuō)明書(shū)一起提交的權(quán)利要求書(shū)中。通過(guò)結(jié)合附圖閱讀下面對(duì)圖示實(shí)施例的詳細(xì)說(shuō)明,將能夠更好地理解本發(fā)明,以及其優(yōu)選的使用方式、其他目的和優(yōu)點(diǎn)。
圖1是可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)的超標(biāo)量處理機(jī)系統(tǒng)的高級(jí)方框圖。
圖2是圖1所示超標(biāo)量處理機(jī)系統(tǒng)的指令調(diào)度電路的更詳細(xì)框圖,該系統(tǒng)可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。
圖3是高級(jí)框圖,圖中示出了根據(jù)本發(fā)明的方法和系統(tǒng)在圖1所示超標(biāo)量處理機(jī)系統(tǒng)中采用的中間存儲(chǔ)器緩沖區(qū)。
圖4表示了圖3所示超標(biāo)量處理機(jī)系統(tǒng)中的存儲(chǔ)器緩沖區(qū)索引,該系統(tǒng)可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。
圖5表示了圖3所示超標(biāo)量處理機(jī)系統(tǒng)中的另一種存儲(chǔ)器緩沖區(qū)索引,該系統(tǒng)可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。
下面將對(duì)附圖,特別是參見(jiàn)附圖1進(jìn)行說(shuō)明,該圖中示出了可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)的超標(biāo)量數(shù)字處理系統(tǒng)10的高級(jí)框圖。如圖所示,數(shù)據(jù)處理系統(tǒng)10包括用于存儲(chǔ)數(shù)據(jù)、指令等的存儲(chǔ)器18。以對(duì)本領(lǐng)域技術(shù)人員所共知的方式,優(yōu)選地采用超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20對(duì)存儲(chǔ)在存儲(chǔ)器18中的數(shù)據(jù)或指令進(jìn)行存取。超高速緩沖存儲(chǔ)器系統(tǒng)的大小和使用是數(shù)據(jù)處理領(lǐng)域中的公知普通專(zhuān)業(yè)知識(shí),因此就不在本申請(qǐng)進(jìn)行論述了。然而本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,通過(guò)采用現(xiàn)有相關(guān)的超高速緩沖存儲(chǔ)器技術(shù),用超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20中暫存的數(shù)據(jù),就可以實(shí)現(xiàn)相當(dāng)大百分比的存儲(chǔ)器存取操作。
來(lái)自超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20的指令一般被裝入指令調(diào)度器22中,該指令調(diào)度器較好地包括多個(gè)隊(duì)列位置。在超標(biāo)量數(shù)據(jù)處理系統(tǒng)的典型實(shí)施例中,指令調(diào)度器中的每個(gè)位置可以包括2至8條指令,因此在一個(gè)給定的周期中,根據(jù)有多少有效的指令由超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20傳送,以及在指令調(diào)度器22中有多少可用的空間,多達(dá)8條指令可以被裝入指令調(diào)度器22。
如在這種超標(biāo)量數(shù)據(jù)處理系統(tǒng)中通常的情況,指令調(diào)度器22將指令調(diào)度到執(zhí)行部件24。如在圖1中所示,數(shù)據(jù)處理系統(tǒng)10可以包括一個(gè)或多個(gè)浮點(diǎn)部件、定點(diǎn)處理器部件、裝入/存儲(chǔ)部件和轉(zhuǎn)移處理機(jī)部件,這些只是根據(jù)設(shè)計(jì)而選擇的問(wèn)題。因此指令調(diào)度器22可在單一周期中調(diào)度多條指令,并將一條指令調(diào)度到每個(gè)執(zhí)行部件。執(zhí)行部件可以包括多個(gè)保留站,這些保留站允許在單一周期中向單個(gè)執(zhí)行部件調(diào)度一條以上的指令,這也只是根據(jù)設(shè)計(jì)而選擇的問(wèn)題。這樣超標(biāo)量處理機(jī)的多個(gè)執(zhí)行部件中每個(gè)執(zhí)行部件都可以在單一周期中接收多條指令。此外,在多處理機(jī)系統(tǒng)中還可以將指令調(diào)度到與多個(gè)處理機(jī)相關(guān)的多個(gè)執(zhí)行部件24。
下面對(duì)圖2進(jìn)行說(shuō)明,該圖示出了圖1所示超標(biāo)量數(shù)據(jù)處理系統(tǒng)的指令調(diào)度電路的更詳細(xì)框圖,該系統(tǒng)可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。如圖所示,來(lái)自超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20的指令一般按應(yīng)用指定的順序次序成組地裝入指令調(diào)度器22。這樣作為設(shè)計(jì)上的選擇,一組為2條、4條或8條指令從超高速緩沖存儲(chǔ)器/存儲(chǔ)器接口20裝入指令調(diào)度器22,用于在機(jī)會(huì)的基礎(chǔ)上調(diào)度到執(zhí)行部件24的一個(gè)或多個(gè)執(zhí)行部件。如圖2所示的實(shí)施例中,這些執(zhí)行部件可以包括浮點(diǎn)執(zhí)行部件26、多個(gè)裝入/存儲(chǔ)部件28和30、多個(gè)定點(diǎn)執(zhí)行部件32和34、以及轉(zhuǎn)移執(zhí)行部件36。當(dāng)然如上所述,在數(shù)據(jù)處理系統(tǒng)10中可以包括較多數(shù)量或較少數(shù)量的不同類(lèi)型執(zhí)行部件,這只是設(shè)計(jì)選擇的問(wèn)題。
例如圖中所示那種超標(biāo)量數(shù)據(jù)處理系統(tǒng)中通常的情況,還提供有多個(gè)通用寄存器。在圖2所示的實(shí)施例中,有兩組通用寄存器。浮點(diǎn)通用寄存器44和定點(diǎn)通用寄存器46。因此圖2所示的執(zhí)行部件中多條指令的執(zhí)行結(jié)果一般被存儲(chǔ)在選定的通用目的寄存器中,以備進(jìn)一步使用。根據(jù)本發(fā)明的一個(gè)重要特征,還提供了多個(gè)中間存儲(chǔ)器緩沖區(qū),即浮點(diǎn)中間存儲(chǔ)器緩沖區(qū)40和定點(diǎn)中間存儲(chǔ)器緩沖區(qū)42。如圖中更詳細(xì)地描述的那樣,通過(guò)獨(dú)立總線,每個(gè)執(zhí)行部件都被連接到每個(gè)中間存儲(chǔ)器緩沖區(qū)。因此執(zhí)行部件所需的數(shù)據(jù),或者在執(zhí)行部件中指令執(zhí)行產(chǎn)生的數(shù)據(jù)可以被置入獨(dú)立總線上,并且被存儲(chǔ)在指定的中間存儲(chǔ)器緩沖區(qū)中,以便由其他執(zhí)行部件使用,或者以便進(jìn)一步傳送給一個(gè)通用寄存器。
采用這種方式,無(wú)需保留復(fù)雜的查尋表及相關(guān)的寄存器重新命名方案,而且中間存儲(chǔ)器緩沖區(qū)可以被有效地指定立即被用作目的操作數(shù)的存儲(chǔ)單元,允許在單一處理機(jī)周期中調(diào)度該指令,因?yàn)闊o(wú)需在重新命名的寄存器堆中確定數(shù)據(jù)單元。此外還可以允許以無(wú)順序的方式執(zhí)行指令,通過(guò)將那些指令的輸出暫時(shí)存儲(chǔ)在中間存儲(chǔ)器緩沖區(qū)中,以便將來(lái)在通用寄存器中以應(yīng)用指定的順序次序進(jìn)行匯編。
如圖所示,定點(diǎn)執(zhí)行部件每個(gè)都通過(guò)獨(dú)立總線與定點(diǎn)中間存儲(chǔ)器緩沖區(qū)42相連,而浮點(diǎn)執(zhí)行部件通過(guò)獨(dú)立總線與每個(gè)浮點(diǎn)中間存儲(chǔ)器緩沖區(qū)40相連。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)能理解,裝入/存儲(chǔ)部件28和30必須與浮點(diǎn)中間存儲(chǔ)器緩沖區(qū)40和定點(diǎn)中間存儲(chǔ)器緩沖區(qū)42相連,因?yàn)檫@些部件將要裝入和存儲(chǔ)定點(diǎn)數(shù)據(jù)和浮點(diǎn)數(shù)據(jù)。
根據(jù)本發(fā)明的另一個(gè)重要特征,還具有完成緩沖器48。完成緩沖器48用于跟蹤在執(zhí)行部件24中正在被執(zhí)行的多條標(biāo)量指令的完成。如上所述,這些指令執(zhí)行的結(jié)果都暫時(shí)存儲(chǔ)在相關(guān)的中間存儲(chǔ)器緩沖區(qū)中,并且根據(jù)一條指令或一組指令已經(jīng)被成功地完成的指示且以應(yīng)用規(guī)定的順序次序,完成緩沖器48可以用于將那些完成的指令數(shù)據(jù)的結(jié)果初始地傳送到相關(guān)的通用寄存器。此外在例外情況發(fā)生的事件中,完成緩沖器48可以用于啟動(dòng)存儲(chǔ)在異常情況之前完成的任何指令執(zhí)行的結(jié)果,并且控制指令調(diào)度器22在例外情況發(fā)生點(diǎn)重新開(kāi)始處理,允許以有產(chǎn)的方式通過(guò)有效的輸出置換有誤的或無(wú)效的數(shù)據(jù),或者通過(guò)對(duì)特定類(lèi)型的例外所指定的應(yīng)用專(zhuān)用程序來(lái)啟動(dòng)新的指令序列。
下面對(duì)圖3進(jìn)行說(shuō)明,圖中示出了根據(jù)本發(fā)明的方法和系統(tǒng),在圖1所示超標(biāo)量處理機(jī)系統(tǒng)中使用中間存儲(chǔ)器緩沖區(qū)的高級(jí)框圖。提供了由指令調(diào)度器22存取的存儲(chǔ)器緩沖區(qū)索引58。這里將更詳細(xì)地進(jìn)行說(shuō)明,存儲(chǔ)器緩沖區(qū)索引58用于存儲(chǔ)和維護(hù)在多個(gè)中間存儲(chǔ)器緩沖區(qū)60中的每個(gè)中間存儲(chǔ)器緩沖區(qū)與指定的通用寄存器62之間關(guān)系的指示,用于在執(zhí)行隨后的指令期間使用。
多個(gè)中間存儲(chǔ)器緩沖區(qū)60優(yōu)選地連接到多條獨(dú)立總線64。在優(yōu)選的實(shí)施例中,獨(dú)立總線64的數(shù)量等于中間存儲(chǔ)器緩沖區(qū)60的數(shù)量,每個(gè)中間存儲(chǔ)器緩沖區(qū)連接到一條總線。每個(gè)中間存儲(chǔ)器緩沖區(qū)60都可以從相應(yīng)的獨(dú)立總線64讀出,也可以寫(xiě)入到相應(yīng)的獨(dú)立總線64。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)能認(rèn)識(shí)到,使用的總線數(shù)據(jù)可以變化,這只是個(gè)設(shè)計(jì)選擇的問(wèn)題。
多個(gè)執(zhí)行部件24a、24b和24c連接到多條獨(dú)立總線64中的每條總線上。在優(yōu)選的實(shí)施例中,執(zhí)行部件24a、24b和24c可以包括浮點(diǎn)執(zhí)行部件、從個(gè)裝入/存儲(chǔ)部件、多個(gè)定點(diǎn)執(zhí)行部件和轉(zhuǎn)移執(zhí)行部件。然而本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)能理解執(zhí)行部件的數(shù)量和類(lèi)型可以變化,這也只是設(shè)計(jì)選擇的問(wèn)題。
多個(gè)執(zhí)行部件24a、24b和24c中每個(gè)執(zhí)行部件也可以從每條獨(dú)立總線64讀出,以及寫(xiě)入到每條獨(dú)立總線64。因此,多個(gè)執(zhí)行部件24a、24b和24c中每個(gè)執(zhí)行部件都通過(guò)多條獨(dú)立總線64連接到多個(gè)中間存儲(chǔ)器緩沖區(qū)60中每個(gè)中間存儲(chǔ)器緩沖區(qū)上。這樣當(dāng)在執(zhí)行部件中通過(guò)執(zhí)行指令產(chǎn)生數(shù)據(jù)時(shí),該執(zhí)行部件可以將那個(gè)數(shù)據(jù)置放在與已經(jīng)被規(guī)定作為那個(gè)數(shù)據(jù)的目的的指定中間存儲(chǔ)器緩沖區(qū)相對(duì)應(yīng)的總線上,在那里可以暫時(shí)存儲(chǔ)該數(shù)據(jù)。與此同時(shí)通過(guò)將“有效”位設(shè)定成適當(dāng)?shù)臓顟B(tài),執(zhí)行部件表明總線上的該數(shù)據(jù)是有效的。采用這種方式,當(dāng)數(shù)據(jù)在總線上時(shí),以及數(shù)據(jù)被存儲(chǔ)到指定的中間存儲(chǔ)器緩沖區(qū)之前或者同時(shí),任何其他需要該數(shù)據(jù)的執(zhí)行部件都可以從總線上檢索該數(shù)據(jù)。因此設(shè)有獨(dú)立總線的一個(gè)優(yōu)點(diǎn)是消除了數(shù)據(jù)存儲(chǔ)器緩沖器中、然后才能從緩沖器訪問(wèn)該數(shù)據(jù)的需要。直接從總線檢索數(shù)據(jù)的能力顯著地提高了處理機(jī)系統(tǒng)的操作速度。
仍舊參見(jiàn)圖3,從圖中可以看出多條獨(dú)立總線64中每條總線都連接到通用寄存器62。當(dāng)一條指令要被調(diào)度到執(zhí)行部件時(shí),指定的中間存儲(chǔ)器緩沖區(qū)與選定的通用寄存器之間的關(guān)系優(yōu)選地存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引58中。當(dāng)另一個(gè)執(zhí)行部件需要執(zhí)行的結(jié)果時(shí),可以利用存儲(chǔ)器緩沖區(qū)索引58中的信息完成那些結(jié)果的傳送。這里將更詳細(xì)地說(shuō)明,存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引58中的信息可以是用通寄存器標(biāo)識(shí)存取的指定的中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符,或者是用指定的中間存儲(chǔ)器緩沖區(qū)標(biāo)識(shí)存取的通用寄存器的標(biāo)識(shí)符。
采用這種方式,因?yàn)橹虚g存儲(chǔ)器緩沖區(qū)可以被立即指定為對(duì)要被調(diào)度的指令中每個(gè)目的操作數(shù)的存儲(chǔ)單元,無(wú)需對(duì)通用寄存器重新命名,所以就無(wú)需保留與寄存器重新命名方案有關(guān)的復(fù)雜的查尋表。此外,因?yàn)槊織l指令執(zhí)行的結(jié)果被暫時(shí)地存儲(chǔ)在中間存儲(chǔ)器緩沖區(qū)60中,并且通過(guò)利用存儲(chǔ)器緩沖區(qū)索引58中的信息和完成緩沖器48的內(nèi)容,且這些執(zhí)行結(jié)果可以接著由隨后的指令使用,所以存儲(chǔ)器緩沖區(qū)索引58允許以非順序的方式執(zhí)行指令(參見(jiàn)圖2)。
圖4用圖表示了圖3所示超標(biāo)量處理機(jī)系統(tǒng)中的存儲(chǔ)器緩沖區(qū)索引,該系統(tǒng)可以被用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。存儲(chǔ)器緩沖區(qū)索引58包括若干個(gè)標(biāo)號(hào)為0-r的項(xiàng)目。r等于超標(biāo)量處理機(jī)系統(tǒng)中通用寄存器的數(shù)量。如上所述,當(dāng)先前已被調(diào)度到執(zhí)行部件的指令在調(diào)度器中被后繼應(yīng)用程序指定的指令置換時(shí),在被調(diào)度的指令中目的操作數(shù)與指定的中間存儲(chǔ)器緩沖區(qū)之間的關(guān)系被存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引58中。在該實(shí)施例中,對(duì)指定的中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符被存儲(chǔ)在與選定通用寄存器相對(duì)應(yīng)的項(xiàng)目中。
例如在與通用寄存器0相對(duì)應(yīng)的項(xiàng)目位置0中,已經(jīng)存儲(chǔ)了中間存儲(chǔ)器緩沖區(qū)3的標(biāo)識(shí)符。另外在與通用寄存器r相對(duì)應(yīng)的項(xiàng)目位置r中,已經(jīng)存儲(chǔ)了中間存儲(chǔ)器緩沖區(qū)2的標(biāo)識(shí)符。這樣當(dāng)執(zhí)行的結(jié)果要從中間存儲(chǔ)器緩沖區(qū)3傳送到另一個(gè)執(zhí)行部件時(shí),就通過(guò)利用存儲(chǔ)器緩沖區(qū)索引58中的項(xiàng)目0完成傳送。
圖5圖示了圖3所示超標(biāo)量處理機(jī)系統(tǒng)中的另一種存儲(chǔ)器緩沖區(qū)索引,該系統(tǒng)可以用于實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。存儲(chǔ)器緩沖區(qū)索引58包括若干個(gè)標(biāo)號(hào)為0-n的項(xiàng)目。n等于超標(biāo)量處理機(jī)系統(tǒng)中中間存儲(chǔ)器緩沖區(qū)的數(shù)量。當(dāng)指令被調(diào)度到執(zhí)行部件時(shí),選定通用寄存器的標(biāo)識(shí)符被存儲(chǔ)在與執(zhí)行結(jié)果要被存儲(chǔ)的指定中間存儲(chǔ)器緩沖區(qū)相對(duì)應(yīng)的項(xiàng)目中。
例如在與中間存儲(chǔ)器緩沖區(qū)0相對(duì)應(yīng)的項(xiàng)目位置0中,已經(jīng)存儲(chǔ)了通用寄存器25的標(biāo)識(shí)符。另外在與中間存儲(chǔ)器緩沖區(qū)2相對(duì)應(yīng)的項(xiàng)目位置2中,已經(jīng)存儲(chǔ)了通用寄存器2的標(biāo)識(shí)符。這樣當(dāng)執(zhí)行的結(jié)果要從中間存儲(chǔ)器緩沖區(qū)0傳送到另一個(gè)執(zhí)行部件時(shí),就通過(guò)利用存儲(chǔ)器緩沖區(qū)索引58中的項(xiàng)目0協(xié)調(diào)傳送。
根據(jù)上述的說(shuō)明,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)能理解,申請(qǐng)人已經(jīng)提供了一種用于在超標(biāo)量處理機(jī)系統(tǒng)中索引中間存儲(chǔ)器緩沖區(qū)的指定的方法和系統(tǒng)。因?yàn)橹钡綀?zhí)行的結(jié)果以應(yīng)用指定的次序存儲(chǔ)在通用寄存器中之前,執(zhí)行的結(jié)果被暫時(shí)地存儲(chǔ)在中間存儲(chǔ)器緩沖區(qū)中,所以消除了對(duì)大量的相關(guān)查尋表的需要。
雖然參照優(yōu)選的實(shí)施例已經(jīng)詳細(xì)地指出并說(shuō)明了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)能理解,無(wú)需脫離本發(fā)明的構(gòu)思和保護(hù)范圍,就可以進(jìn)行形式上和細(xì)節(jié)上的各種改變。
權(quán)利要求
1.用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的方法,該方法能夠同時(shí)將多條標(biāo)量指令從調(diào)度緩沖器調(diào)度到多個(gè)執(zhí)行部件中,所述多條標(biāo)量指令中每條標(biāo)量指令都包含至少一個(gè)源操作數(shù)和一個(gè)目的操作數(shù),其中所述多條標(biāo)量指令的執(zhí)行結(jié)果被存儲(chǔ)在多個(gè)通用寄存器中,所述方法的特征在于包括以下步驟對(duì)所述多條標(biāo)量指令中選定的一條標(biāo)量指令中的目的操作數(shù),指定多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū);將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與所述多個(gè)通用寄存器中指定的一個(gè)通用寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中;將所述多條標(biāo)量指令中所述選定的一條標(biāo)量指令的執(zhí)行結(jié)果存儲(chǔ)在所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)中;以及將來(lái)自所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的所述執(zhí)行結(jié)果傳送到所述多個(gè)執(zhí)行部件中另一個(gè)執(zhí)行部件,以便利用所述存儲(chǔ)器緩沖區(qū)索引用于執(zhí)行所述多條標(biāo)量指令中的另一條標(biāo)量指令。
2.根據(jù)權(quán)利要求1所述的用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的方法,其特征在于將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與多個(gè)通用處理寄存器中指定的一個(gè)通用處理寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中的所述步驟包括將用于所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符存儲(chǔ)在所述存儲(chǔ)器緩沖區(qū)索引中,以及利用用于多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的標(biāo)識(shí)符,從所述存儲(chǔ)器緩沖區(qū)索引中存取用于所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的所述標(biāo)識(shí)符。
3.根據(jù)權(quán)利要求1所述的用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的方法,其特征在于將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與多個(gè)通用處理寄存器中指定的一個(gè)通用處理寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中的所述步驟包括將用于所述多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的標(biāo)識(shí)符存儲(chǔ)在所述存儲(chǔ)器緩沖區(qū)索引中,以及利用用于所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符,從所述存儲(chǔ)器緩沖區(qū)索引中存取用于所述多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的所述標(biāo)識(shí)符。
4.用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的系統(tǒng),該系統(tǒng)能夠同時(shí)將多條標(biāo)量指令從調(diào)度緩沖器調(diào)度到多個(gè)執(zhí)行部件,所述多條標(biāo)量指令中每條標(biāo)量指令都包含至少一個(gè)源操作數(shù)和一個(gè)目的操作數(shù),其中所述多條標(biāo)量指令的執(zhí)行結(jié)果被存儲(chǔ)在多個(gè)通用寄存器中,所述系統(tǒng)的特征包括指定裝置,用于對(duì)所述多條標(biāo)量指令中選定的一條標(biāo)量指令中的目的操作數(shù),指定多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū);存儲(chǔ)裝置,用于將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與所述多個(gè)通用寄存器中指定的一個(gè)通用寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中;存儲(chǔ)裝置,用于將所述多條標(biāo)量指令中所述選定的一條標(biāo)量指令的執(zhí)行結(jié)果存儲(chǔ)在所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)中;以及傳送裝置,用于將來(lái)自所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的所述執(zhí)行結(jié)果傳送到所述多個(gè)執(zhí)行部件中另一個(gè)執(zhí)行部件,以便利用所述存儲(chǔ)器緩沖區(qū)索引來(lái)執(zhí)行所述多條標(biāo)量指令中的另一條標(biāo)量指令。
5.根據(jù)權(quán)利要求4所述的用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的系統(tǒng),其特征在于將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與多個(gè)通用處理寄存器中指定的一個(gè)通用處理寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中的所述裝置包括存儲(chǔ)裝置,用于將用于所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符存儲(chǔ)在所述存儲(chǔ)緩沖器索引中;以及存取裝置,利用用于多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的標(biāo)識(shí)符,用于從所述存儲(chǔ)器緩沖區(qū)索引中存取用于所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的所述標(biāo)識(shí)符。
6.根據(jù)權(quán)利要求4所述的用于在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的系統(tǒng),其特征在于將所述多個(gè)中間存儲(chǔ)器緩沖區(qū)中特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)與多個(gè)通用處理寄存器中指定的一個(gè)通用處理寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)器緩沖區(qū)索引中的所述裝置包括存儲(chǔ)裝置,用于將用于所述多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的標(biāo)識(shí)符存儲(chǔ)在所述存儲(chǔ)器緩沖區(qū)索引中;以及存取裝置,利用用于所述多個(gè)中間存儲(chǔ)緩沖器中所述特定的一個(gè)中間存儲(chǔ)器緩沖區(qū)的標(biāo)識(shí)符,用于從所述存儲(chǔ)器緩沖區(qū)索引中存取用于所述多個(gè)通用處理寄存器中所述指定的一個(gè)通用處理寄存器的所述標(biāo)識(shí)符。
全文摘要
在超標(biāo)量處理機(jī)系統(tǒng)中提高指令調(diào)度效率的方法和系統(tǒng),該系統(tǒng)具有多個(gè)中間存儲(chǔ)器緩沖區(qū)、多個(gè)通用寄存器和一個(gè)存儲(chǔ)器緩沖區(qū)索引。多條標(biāo)量指令可同時(shí)從調(diào)度緩沖器調(diào)度到多個(gè)執(zhí)行部件中。其中每條標(biāo)量指令一般包含至少一個(gè)源操作數(shù)和一個(gè)目的操作數(shù)。對(duì)多條標(biāo)量指令中選定的一條標(biāo)量指令中的目的操作數(shù)指定特定的一個(gè)中間存儲(chǔ)器緩沖區(qū),并將其與指定的一個(gè)通用寄存器之間的關(guān)系存儲(chǔ)在存儲(chǔ)緩沖器索引中。
文檔編號(hào)G06F9/38GK1092189SQ94100120
公開(kāi)日1994年9月14日 申請(qǐng)日期1994年1月8日 優(yōu)先權(quán)日1993年1月8日
發(fā)明者高新程, 奧布里·D·奧格登, 唐納德·E·沃爾德克爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司