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