專利名稱:在流水線數(shù)據(jù)處理系統(tǒng)中對被陷微地址重新排隊的方法和裝置的制作方法
本發(fā)明總的來說涉及數(shù)據(jù)處理系統(tǒng),特別是涉及用于實現(xiàn)流水線和微編程數(shù)據(jù)處理系統(tǒng)的裝置和方法。該裝置和方法使當前執(zhí)行的微指令序列中斷并去執(zhí)行一個具有較高優(yōu)先權(quán)的程序,然后,返回到該中斷時正在執(zhí)行的程序序列。
參看圖1,圖中示出了一種典型的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)包括至少一個中央處理機或子系統(tǒng)10(或11)、至少一個輸入/輸出裝置或子系統(tǒng)13(或14)、主存貯器或子系統(tǒng)15和用于連接多個裝置或子系統(tǒng)的系統(tǒng)總線19。根據(jù)存貯在軟件或固件中的程序指令序列,中央處理機處理成徂的邏輯信號。邏輯信號組一般存貯在存貯器中,程序本身通常也存貯在存貯器中。輸入/輸出裝置在該數(shù)據(jù)處理系統(tǒng)和需要連接到該數(shù)據(jù)處理系統(tǒng)的終端設(shè)備、大容量存貯器、通訊設(shè)備以及其它裝置之間提供接口。為了使數(shù)據(jù)處理系統(tǒng)初始化、控制測試和診斷程序並在該系統(tǒng)運行之后用作一個終端設(shè)備,可以把一個操作臺裝置連接到中央處理機。通過在數(shù)據(jù)處理系統(tǒng)的子系統(tǒng)之間進行連接所提供的系統(tǒng)總線提供了一種用于改變該數(shù)據(jù)處理系統(tǒng)配置以適應(yīng)各種處理需要的方便的技術(shù)手段。
在如圖1中所示的數(shù)據(jù)處理系統(tǒng)中,對數(shù)據(jù)信號徂的實際處理是在通常稱為一個程序的一徂相關(guān)指令的控制下發(fā)生的。這些指令是按順序被執(zhí)行的。下面參看圖2a,圖中示出了根據(jù)相關(guān)技術(shù)對一系列指令的執(zhí)行情況。在第一個時間間隔T0期間,由中央處理機子系統(tǒng)執(zhí)行指令1。在第一個指令執(zhí)行以后,在該序列中的下一指令2由中央處理機子系統(tǒng)在第二個時間間隔T0期間執(zhí)行。指令2一完成,數(shù)據(jù)處理機就在時間間隔T0期間處理指令3。為了保持順序地執(zhí)行指令,用于由該數(shù)據(jù)處理機執(zhí)行任何指令的間隔需要有一個予定的時間周期。如果用于一個指令的執(zhí)行時間可以具有可變的長度,那末在中央處理機中必需包括復雜的裝置,以便配合在中央處理機和該數(shù)據(jù)處理系統(tǒng)的其它子系統(tǒng)之間的數(shù)據(jù)信號徂的交換。因此,用于執(zhí)行三個指令的周期一般為基準時間周期的三倍。可以清楚地看出,基準時間間隔必須具有足夠的持續(xù)時間,以便能夠執(zhí)行指令系統(tǒng)中最長的指令。
為了使數(shù)據(jù)處理系統(tǒng)能更快地運行,已經(jīng)發(fā)明了一種技術(shù)用于把對一個指令的執(zhí)行分成對多個指令段的執(zhí)行,通過以適當方式配置執(zhí)行這些段的裝置,可以以一種重疊方式實現(xiàn)對指令的執(zhí)行。這種技術(shù)稱為指令系統(tǒng)的“流水線”執(zhí)行。盡管執(zhí)行每一個流水線指令所占用的時間周期長于執(zhí)行一個非流水線指令的時間周期,但由于具有把一個指令分成指令段所需要的附加裝置,所以,一個指令流還是能以比未分段指令所可能的更快的速度被執(zhí)行。在圖2b中示出了把一個指令分成多個段的情況??梢岳斫饷總€段都涉及在中央處理機中一個分隔的和單獨操作的成分組。根據(jù)在數(shù)據(jù)處理系統(tǒng)設(shè)計中眾所周知的方法,寄存器和門電路把執(zhí)行一個特定段的成分組的操作分隔開。用于每個段的子間隔t0心需具有足夠的時間周期,以便能夠執(zhí)行每個裝置組中的所有可能的段。
下面參看圖2c,圖中示出了可以通過利用流水線技術(shù)對一個序列的指令執(zhí)行中最后得到的速度上的提高?,F(xiàn)在,指令1在等于n個時間t0的新的(可能較長的)時間周期T0′中完成了。其中,t0是用于執(zhí)行每個指令段所需要的子間隔,n是用于執(zhí)行每個指令所需的指令段的數(shù)量。在該序列中的下一指令-指令2從指令1開始后的一個間隔t0開始。在該序列中的第2個指令-指令3再從其后的一個間隔開始。每一個指令都可能占用一個用于執(zhí)行該指令的時間增量。但是,一旦用于完成第一個指令的那個最初間隔過去,則每個間隔t0之后都完成一個指令。因此,對于一個指令序列來說,即使執(zhí)行單個指令占用的時間可能增加,但執(zhí)行該序列卻可以加速。
下面參看圖3,圖中示出了用于對一個指令序列實現(xiàn)流水線執(zhí)行的中央處理機的配置。該中央處理機分成指令子單元31、相關(guān)的控制器32、執(zhí)行子單元33和隱含(或機內(nèi))存貯器子單元34。隱含存貯器子單元34連接到系統(tǒng)總線19上,並且在控制器32的控制下通過系統(tǒng)總線與數(shù)據(jù)處理系統(tǒng)的其它子系統(tǒng)交換邏輯信號組。執(zhí)行子單元再在控制器32的控制下實現(xiàn)對由正被執(zhí)行的指令所確定的數(shù)據(jù)信號組的處理。指令子單元31接收要執(zhí)行的指令,並以一種可以用來控制中央處理機10的操作的方式對指令重排格式。該重排格式的指令或至少是其中的區(qū)段加到控制器32上,從而構(gòu)成數(shù)據(jù)處理機10的邏輯單元的配置,以便執(zhí)行由該指令確定的操作。
上面敘述的結(jié)構(gòu)保證了使用微指令去執(zhí)行微指令。根據(jù)復雜程度、中央處理機裝置的性能和相似的參數(shù),微指令可以由一個單一的微指令或由多個微指令執(zhí)行。如圖2b所示,這是一種被分成微指令段的指令。
參看圖3中數(shù)據(jù)處理機的簡化區(qū)分。為了說明本發(fā)明,為完成指令執(zhí)行的一個區(qū)段而用于中央處理機每個單元的時間長度將采用相等的時間長度。因此,對要由數(shù)據(jù)處理機執(zhí)行的指令來說,圖2c中示出了對指令組的執(zhí)行情況。在第一個間隔t0期間,由指令單元處理第一個指令。在第二個間隔t0期間,數(shù)據(jù)處理機的執(zhí)行子單元33處理第一個指令,而該中央處理機的指令子單元31同時處理第二個指令。在第三個間隔t0期間,隱含存貯器單元處理指令1,執(zhí)行單元同時處理指令2,而指令單元還同時處理指令3。只要指令進入指令單元,這種三級流水線就連續(xù)操作。
可以清楚地看出把數(shù)據(jù)處理機分成已經(jīng)簡單說明的功能單元通常還不足以構(gòu)成實用的流水線配量。每個上述的功能單元都可能需要多個子操作去完成每個必要的操作,從而去完成對每個指令的執(zhí)行。為了說明,一個包括四個段而不是如圖3敘述的包括3個段的流水線將用來敘述本發(fā)明。
因此,認為需要能在流水線式指令序列中的該序列的中斷點處連續(xù)執(zhí)行指令序列的裝置和方法。
本發(fā)明的一個目的是提供一種改進的數(shù)據(jù)處理系統(tǒng)。
本發(fā)明的一個進一步的目的是提供一種用于在中斷以后,在該序列產(chǎn)生中斷之處繼續(xù)執(zhí)行指令序列的技術(shù)。
根據(jù)本發(fā)明,通過下述方案可以實現(xiàn)上述的和其它的目的。提供一個存貯單元,用于存貯微指令的地址以及和來自導致一個微指令產(chǎn)生的譯碼器單元的每個地址相關(guān)的標記字段信號,這些存貯操作在中斷程序開始執(zhí)行時也處于執(zhí)行之中。通過在標記信號不在存貯器中時利用存貯器中的地址和通過使指令序列和對應(yīng)于存貯單元中標記字段內(nèi)的標記信號并來自譯碼器單元的地址相互同步,使得原始的微指令序列得以重新建立。
在閱讀下面的說明和附圖之后就能理介本發(fā)明上述和其它特征。
圖1是能夠利用本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。
圖2是把指令分成段的示意圖。
圖3是可以用于控制使用分段指令的中央處理機的控制器的方框圖。
圖4是正在執(zhí)行中的指令序列示意圖,該執(zhí)行通過識別陷阱條件而中斷。
圖5是根據(jù)本發(fā)明用于對被陷的微地址重新排除的電路的方框圖。
圖6是存貯譯碼標記信號的裝置的方框圖。
圖7是表示譯碼標記信號如何提供譯碼器選擇信號的裝置的方框圖。
圖8是表示產(chǎn)生微陷阱返回狀態(tài)信號的方框圖。
圖1、圖2和圖3在敘述相關(guān)技術(shù)時已經(jīng)說明了。
參看圖4,圖中示出了對微地址重新排除的要求。在執(zhí)行指令4010期間識別出陷阱條件。在圖示實例中,該陷阱是在第四段時識別的,因此指令4011,4012和4013已經(jīng)開始執(zhí)行,而緊跟在后的指令4014由于設(shè)置了陷阱條件而未被執(zhí)行。在跟著識別出陷阱條件的那個段后面的下個段的始端,執(zhí)行包括指令5000至5020的陷阱例行程序。陷阱例行程序的最后一個指令5020是終止該陷阱例行程序的陷阱返回指令。因為微指令4011、4012、4013和4014已經(jīng)完全失效,所以為了恢復執(zhí)行原始程序,必須使這些指令重新進入微指令序列。
下面參看圖5,圖中示出了涉及使用本發(fā)明的裝置的方框圖??煽亻T電路或多路轉(zhuǎn)換器51選擇一組最終加到控制存貯器56的地址信號。被選擇信號可以是帶有譯碼器選擇信號的微編碼下一地址,可以是來自微地址貯倉57的信號,也可以是來自微棧55的信號。微編碼下一地址是用于正常微程序序列的地址信號。用于控制多路轉(zhuǎn)換器54的譯碼器選擇信號也用作一個標記,並被存貯在該貯倉的標記字段中。來自微棧55的信號是調(diào)用地址序列的子程序,該子程序在一個微子程序的執(zhí)行完成之后就能返回到調(diào)用微程序。微地址貯倉57保存在陷阱例行程序之后對正在執(zhí)行的程序重新排除所需的信號。由可控門電路或多路轉(zhuǎn)換器51選出的信號通過微地址源選擇邏輯58確定。
從多路轉(zhuǎn)換器51輸出的信號加到微轉(zhuǎn)移邏輯單元52。微轉(zhuǎn)移邏輯單元52還接收微轉(zhuǎn)移條件信號,根據(jù)予先制定的算法在微轉(zhuǎn)移邏輯單元中對這些信號組進行處理。微轉(zhuǎn)移邏輯單元52的輸出信號加到可控門電路或多路轉(zhuǎn)換器53和微地址貯倉57。通過上述的微指令產(chǎn)生的轉(zhuǎn)移條件能夠形成圖4中的從4011至4014的任何地址。因為在整個的陷阱例行程序的執(zhí)行期間這些條件沒有保存和恢復,所以,所有得到的從4011至4014的地址都必需保存和重新排隊,而不是讓微轉(zhuǎn)移邏輯去重新產(chǎn)生它們。多路轉(zhuǎn)換器53還接收微陷阱向量信號,由多路轉(zhuǎn)換器53選出並在其輸出端形成的信號組由是否存在全局微陷阱信號(當識別出陷阱條件時所產(chǎn)生的信號)確定。
多路轉(zhuǎn)換器53的輸出信號加到微棧55和可控門電路或多路轉(zhuǎn)換器54。多路轉(zhuǎn)換器54還接收譯碼器微地址信號,在多路轉(zhuǎn)換器54輸出端上的被選信號是通過譯碼器選擇信號的確立來決定的。從多路轉(zhuǎn)換器54輸出的信號作為地址加到控制存貯器56。從控制存貯器56輸出的信號用于控制中央處理機的狀態(tài)。
下面參看圖6,圖中示出了微地址貯倉57的內(nèi)容。由識別出陷阱條件時正在執(zhí)行的微指令的數(shù)量確定該貯倉的大小。參看圖4,在微指令4010的第4段中識別出陷阱條件時,指令4011、4012和4013還在執(zhí)行,跟著要執(zhí)行4014,因此,需要一個4層深度的貯倉(具有存貯單元601、602、603和604)。被陷阱例行程序5000置換的指令4014的地址就保存在貯倉中緊跟在指令4011的地址(在存貯單元601中),指令4012的地址(在存貯單元602中)和指令4013的地址(在存貯單元603中)之后的存貯單元604中。貯倉57中每個存貯單元的內(nèi)容包括微地址字段和(單一位單元的)標記字段。圖6還表示了本發(fā)明的一個特征,即標記字段與取代了譯碼器曾用地址的那個地址相關(guān)聯(lián)。
下面參看圖7,多路轉(zhuǎn)換器或可控門電路71在一個輸入端接收譯碼器標記信號,在第二個輸入端接收譯碼器下一信號。在陷阱返回信號出現(xiàn)的持續(xù)時間中,一個伴隨陷阱返回指令產(chǎn)生的信號選擇譯碼器標記信號。在陷阱返回信號消失之后,門電路71從控制存貯器56中選出譯碼器下一信號。經(jīng)過一些處理之后,多路轉(zhuǎn)換器71的輸出信號成為譯碼器選擇信號。該信號加到多路轉(zhuǎn)換器54的控制端,並用作微地址貯倉57的輸入信號被存貯作為標記信號。
下面參考圖8,圖中示出了貯倉中用于選擇或不選擇地址的裝置。貯倉57中一個存貯單元的標記字段信號加到邏輯“與”門81的一個反相輸入端,而當微陷阱返回指令出現(xiàn)時,則把一個信號加到邏輯“與”門81的第二個輸入端。邏輯“與”門81的輸出端連到延遲網(wǎng)絡(luò)82的輸入端和狀態(tài)裝置84的“置位”端。延遲網(wǎng)絡(luò)82的輸出端連到邏輯“或”門83的第一個輸入端,而邏輯“或”門83的第二個輸入端接收標記字段信號。邏輯“或”門83的輸出端連到狀態(tài)裝置84的“復位”端。當出現(xiàn)微陷阱返回信號和標記字段信號時,在狀態(tài)裝置84的輸出端上信號未確立,並阻止貯倉57把地址加到控制存貯器56。當出現(xiàn)微陷阱返回信號而未出現(xiàn)標記字段信號時,狀態(tài)裝置被置位,其結(jié)果是把貯倉57中的地址字段用于對控制存貯器56的尋址。狀態(tài)裝置84將在網(wǎng)絡(luò)82的延遲時間內(nèi)被置位。該延遲時間由貯倉的深度確定。在本實例中,延遲為三個時鐘周期,並連同一個周期長的陷阱返回信號一起,可以用于對保存在貯倉中的四個微地址重新排隊。在這個周期中,如果在貯倉的任何存貯單元中發(fā)現(xiàn)標記信號被確立,那末,狀態(tài)裝置84通過邏輯“或”門83復位,因此,阻止了其后的重新排隊。
參照圖5可以理解本發(fā)明的工作??刂拼尜A器56提供用于在指令序列執(zhí)行時控制有關(guān)裝置的信號。在執(zhí)行期間,如果產(chǎn)生需要執(zhí)行一個特定指令序列的任何原因,則當前執(zhí)行的序列必須被中斷,對該特定的序列給予優(yōu)先,並且該特定的序列一完成就可以恢復原始的序列。當通稱為陷阱條件的那種條件在數(shù)據(jù)處理機中被識別出時,則產(chǎn)生全局微陷阱信號。全局微陷阱信號使多路轉(zhuǎn)換器53把適合于該陷阱條件的微陷阱向量信號加到控制存貯器單元56,並借此配制中央處理機以便執(zhí)行該陷阱程序。此外,全局微陷阱信號還使微地址貯倉57的內(nèi)容在該陷阱程序執(zhí)行的持續(xù)時間內(nèi)凍結(jié)。
在沒有全局微陷阱信號的情況下,控制存貯器的地址由多路轉(zhuǎn)換器電路53和多路轉(zhuǎn)換器電路54確定。在一個指令序列正常執(zhí)行期間,加到控制存貯器單元56的地址由微轉(zhuǎn)移條件、微編碼下一地址、譯碼器選擇信號和調(diào)用存貯在微棧101中地址的子程序確定。在從陷阱程序返回時,繼續(xù)執(zhí)行被中斷的微程序序列的微地址來自微地址貯倉57。在中央處理機的正常運行期間,加到控制存貯器單元的地址連同其標記信號一起存貯在貯倉57中,並可用于恢復在識別陷阱條件時中央處理機原有的狀態(tài)。
由本發(fā)明執(zhí)行的對存貯的微地址進行重新排隊具有下述的優(yōu)先權(quán)。第一優(yōu)先權(quán)是用譯碼器標記信號同步指令序列。需要這種同步的理由解釋如下。譯碼器選擇信號使多路轉(zhuǎn)換器或可控門電路54選擇從對當時的或后面的微指令進行譯碼而產(chǎn)生的譯碼器處理過的微地址。一旦在譯碼器的微地址開始的程序被執(zhí)行,存貯在貯倉中的地址就不需要了,並且甚至是錯誤的。由譯碼器選擇信號導出並存貯在貯倉57的標記字段區(qū)段中的譯碼器標記信號在對來自貯倉57的微地址進行重新排隊時可以獲得,並在此時判定譯碼器的微地址是否應(yīng)比來自貯倉57的地址優(yōu)先被選擇。這種判定是用圖7中所示的選擇裝置進行的。因此,在貯倉中出現(xiàn)譯碼器標記信號使指令序列用微指令序列同步。換句話說,當標記信號在貯倉57的第一個位置601中,並且該信號被加到圖7中的選擇裝置時,該指令序列看來好象在前的指令(中斷返回指令)已經(jīng)請求來自譯碼器的下一微指令地址。如果譯碼器標記信號出現(xiàn)在微地址貯倉的標記字段中的除第一個位置以外的其它位置中(即602,603,或604中),該標記信號僅用于阻止使用存貯在貯倉中剩余的地址。產(chǎn)生譯碼器下一信號的對應(yīng)的在前指令在重新排除時正常地導致對譯碼器微地址的選擇,就象它在陷阱時的操作一樣。當在貯倉中沒有標記信號時,產(chǎn)生對所有存貯在微地址貯倉57中的地址重新排除的優(yōu)先狀態(tài)。其結(jié)果是在中斷之后可以正確地恢復原始的指令序列。
上述說明用于解釋最佳實施方案的工作,但並不意味著限定本發(fā)明的保護范圍。本發(fā)明的保護范圍僅由權(quán)利要求
限定。從上面說明明顯地看出對本專業(yè)的那些技術(shù)人員來說可以進行許多由本發(fā)明的精神和保護范圍所包含的改變。
權(quán)利要求
1.在微編程中央處理機中執(zhí)行陷阱例行程序之后,對執(zhí)行微指令的地址重新排隊的方法包括的步驟是當識別陷阱條件時存貯上述正在執(zhí)行的微指令的地址,由于譯碼器選擇信號的結(jié)果,每當來自譯碼器的一個微地址被使用時都伴隨每個上述存貯的地址產(chǎn)生一個標記信號,和當上述標記信號與第一個存貯的指令相關(guān)聯(lián)時,伴隨陷阱返回微指令產(chǎn)生譯碼器選擇信號。
2.根據(jù)權(quán)利要求
1的對微指令重新排隊的方法進一步包括當上述標記信號不與上述第一個存貯的地址相關(guān)聯(lián)時把上述存貯的地址加到微編程控制器的步驟
3.根據(jù)權(quán)利要求
2的對微指令重新排隊的方法進一步包括忽略與上述存貯的標記信號相關(guān)聯(lián)并在上述存貯的標記信號之后的存貯地址的步驟。
4.用于在微指令序列中,對跟在所有中斷之后的微指令重新排除的裝置包括當識別上述中斷時,用于存貯正在執(zhí)行的微指令的微地址的存貯裝置,當譯碼器地址加到微程序控制器時,用于存貯加到地址選擇邏輯的起動信號的標記裝置,和用于利用上述存貯的起動信號控制加到上述控制存貯器的地址的門電路裝置。
5.根據(jù)權(quán)利要求
4的重新排除裝置進一步包括當上述起動信號是伴隨要被重新排除的第一個指令一起存貯時,用于在中斷指令序列的最后一個指令期間發(fā)出上述起動信號的裝置。
6.根據(jù)權(quán)利要求
5的重新排除裝置進一步包括用于在上述中斷指令序列完成之后把上述存貯的地址傳送到控制器的裝置和用于在識別存貯在上述存貯裝置中的一個起動信號之后阻止上述傳送的裝置。
7.用于在被陷阱例行程序中斷之后對微指令序例重新排隊的裝置包括用于存貯被上述陷阱例行程序中斷的微指令的地址的存貯裝置,在上述陷阱例行程序的執(zhí)行之后,上述存貯裝置順序傳送上述存貯的地址。在存貯裝置中,一個譯碼器信號與其后微指令的一個地址一起存貯,用于利用譯碼器信號使上述被重新排除的指令序列同步的同步裝置。
8.根據(jù)權(quán)利要求
7的重新排除的裝置進一步包括當上述存貯的譯碼器信號在第一個存貯的微指令中時,用于產(chǎn)生上述譯碼器信號的裝置。
專利摘要
微編程中央處理子系統(tǒng),通過識別和響應(yīng)陷阱條件中斷,執(zhí)行微指令序列,用于對微指令序列重新排隊的裝置和方法,包括一個微指令地址貯倉。與每個地址相關(guān)聯(lián)有一個標記字段。當從譯碼器中選出一個微指令地址時,邏輯信號位被確定在標記字段位置。當完成陷阱例行程序執(zhí)行陷阱返回微指令,并且貯倉中第一個標記位是確定時,裝置就產(chǎn)生譯碼器下一信號,這個信號是由陷阱返回微指令產(chǎn)生的,不使用存貯在貯倉中的微指令地址。如果貯倉中的第一個存貯單元沒有確定的標記位,則對貯倉的內(nèi)容重新排隊以便恢復原始的微程序序列。
文檔編號G06F9/26GK87102174SQ87102174
公開日1987年9月9日 申請日期1987年1月29日
發(fā)明者道格拉斯·W·克拉克, 薩丁德拉·N·米什拉 申請人:數(shù)字設(shè)備公司導出引文BiBTeX, EndNote, RefMan