專利名稱:帶有指令標(biāo)識(shí)裝置的數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),特別是具有執(zhí)行一個(gè)單獨(dú)順序指令的多處理單元的數(shù)據(jù)處理系統(tǒng)。
在現(xiàn)代Von Neuman體系結(jié)構(gòu)中遇到的一個(gè)共同問(wèn)題是從相同的存儲(chǔ)器中存取指令和數(shù)據(jù)。在現(xiàn)代數(shù)據(jù)處理系統(tǒng)中,訪問(wèn)存儲(chǔ)器與在處理單元中執(zhí)行指令相比是非常費(fèi)時(shí)間的。訪問(wèn)存儲(chǔ)器帶來(lái)的費(fèi)時(shí)問(wèn)題由于采用高速緩沖存儲(chǔ)器而在一定程度上緩和了,這是一種速度非??斓拇鎯?chǔ)器,與數(shù)據(jù)處理系統(tǒng)相連,保持頻繁使用的信息。然而,如果在高速緩沖存儲(chǔ)器中得不到要訪問(wèn)的信息,那么就需要另外的時(shí)間去訪問(wèn)主存儲(chǔ)器。在傳統(tǒng)的流水線數(shù)據(jù)處理系統(tǒng)中,指令是按順序、但是是以一種偽并行方式執(zhí)行的。每條指令被分成幾個(gè)階段執(zhí)行,當(dāng)執(zhí)行一個(gè)指令階段時(shí),其它指令的其它階段也被并行執(zhí)行。作為流水線處理的結(jié)果,指令按順序并發(fā)執(zhí)行,而指令的順序關(guān)系保持不變。然而,通常當(dāng)一條指令需要從存儲(chǔ)器中提取數(shù)據(jù)時(shí),數(shù)據(jù)從存儲(chǔ)器中提取時(shí)流水線是停止的,這樣,在流水線處理中并發(fā)式并行執(zhí)行指令的許多優(yōu)點(diǎn)就不存在了。本發(fā)明的目的就是為了減小由訪問(wèn)存儲(chǔ)器而造成的損失。
過(guò)去采用的解決這個(gè)問(wèn)題的方法是對(duì)一個(gè)寄存器進(jìn)行標(biāo)識(shí),該寄存器是裝入操作的目標(biāo)(即,寄存器接收從存儲(chǔ)器來(lái)的數(shù)據(jù))。這一技術(shù)在1988年12月16日遞交的共同未決再申請(qǐng)07/285.827號(hào)中討論過(guò),該申請(qǐng)?jiān)从谧畛跏?984年5月31日遞交的美國(guó)專利4,630,195號(hào)。根據(jù)該專利申請(qǐng)中闡述的原理,處理機(jī)的每個(gè)寄存器包括一個(gè)標(biāo)識(shí)符存儲(chǔ)裝置。當(dāng)指令被執(zhí)行而不需要從被標(biāo)識(shí)的寄存器中取數(shù)據(jù)時(shí),指令被允許繼續(xù)執(zhí)行。然而,如果執(zhí)行指令的過(guò)程取決于存儲(chǔ)在被標(biāo)識(shí)的寄存器中的數(shù)據(jù),并且寄存器并沒(méi)有收到被標(biāo)識(shí)符指出的數(shù)據(jù),指令就不能被執(zhí)行。
本發(fā)明的目的是為包括多個(gè)處理機(jī)的數(shù)據(jù)處理系統(tǒng)提供一個(gè)標(biāo)識(shí)裝置,其中在第一處理機(jī)中執(zhí)行指令,而由第二處理機(jī)為指令提取所需的數(shù)據(jù)。本發(fā)明通過(guò)允許順序執(zhí)行流水線指令,從而提供順序執(zhí)行指令的能力,同時(shí)能夠從存貯器中提取數(shù)據(jù)。
根據(jù)本發(fā)明,有一個(gè)數(shù)據(jù)處理系統(tǒng),它包括一個(gè)指令執(zhí)行電路,用于執(zhí)行第一型指令。取出電路用來(lái)從存儲(chǔ)器中取出指令,并且根據(jù)第二型指令,從存儲(chǔ)器中取出數(shù)據(jù)。還包括一個(gè)指令解碼器,它對(duì)取出的指令解碼,并將第一型指令送給指令排隊(duì)電路,將第二型指令送給取出電路。當(dāng)執(zhí)行這些指令所需的數(shù)據(jù)還未被取出時(shí),指令排隊(duì)電路存儲(chǔ)被解碼的第一型指令,并標(biāo)識(shí)這些第一型指令。當(dāng)執(zhí)行指令所需的數(shù)據(jù)已經(jīng)取出時(shí),清除這些指令的標(biāo)識(shí)符。指令排隊(duì)電路將去掉標(biāo)識(shí)的指令逐次送給指令執(zhí)行電路執(zhí)行。
在最佳實(shí)施例中,有一個(gè)多處理系統(tǒng),其中存儲(chǔ)器存有指令和數(shù)據(jù)。在這個(gè)最佳實(shí)施例中,有兩個(gè)處理機(jī),用于執(zhí)行從指令控制單元來(lái)的指令。在這個(gè)最佳實(shí)施例中,第一型指令是浮點(diǎn)指令,它僅僅可以由一個(gè)浮點(diǎn)處理機(jī)執(zhí)行。第二型指令是裝入指令,用于向浮點(diǎn)處理機(jī)寄存器提供浮點(diǎn)數(shù)據(jù),并且由定點(diǎn)處理機(jī)執(zhí)行。定點(diǎn)處理機(jī)實(shí)際上計(jì)算放在與存儲(chǔ)器相連的總線上的地址,以便存取浮點(diǎn)數(shù)據(jù)。此外,在最佳實(shí)施例中,第一隊(duì)列用來(lái)存儲(chǔ)寄存器至寄存器指令和寄存器至存儲(chǔ)器指令,而第二隊(duì)列用來(lái)存儲(chǔ)存儲(chǔ)器至寄存器指令。最佳實(shí)施例中的指令解碼裝置具有對(duì)多條并行指令解碼的能力。裝入指令存儲(chǔ)在一個(gè)指令隊(duì)列中(存儲(chǔ)器至寄存器隊(duì)列),與另外的存儲(chǔ)在另外隊(duì)列中的浮點(diǎn)算術(shù)指令分開(kāi)。當(dāng)浮點(diǎn)算術(shù)指令需要數(shù)據(jù)、而該數(shù)據(jù)作為裝入指令的結(jié)果正在被裝入時(shí),浮點(diǎn)算術(shù)指令在其指令隊(duì)列中被標(biāo)識(shí)。當(dāng)一條指令沒(méi)有標(biāo)識(shí)符,它便提供給浮點(diǎn)處理機(jī)執(zhí)行。
通過(guò)參照附圖對(duì)體現(xiàn)本發(fā)明的最佳方式的詳細(xì)描述,可以更好地理解本發(fā)明的上述內(nèi)容以及其它目的、方面和優(yōu)點(diǎn)。其中
圖1是數(shù)據(jù)處理系統(tǒng)的框圖;
圖2是表示位于浮點(diǎn)單元中的指令隊(duì)列的框圖;
圖3是表示與浮點(diǎn)單元16中的指令隊(duì)列互連的指令解碼邏輯電路的框圖;
圖4是表示標(biāo)識(shí)過(guò)程的流程圖;
圖5是表示通過(guò)標(biāo)識(shí)過(guò)程的指令流的狀態(tài)圖;
圖6A是指令的第一序列;
圖6B表示圖6A中指令序列的流水線執(zhí)行過(guò)程的時(shí)序圖;
圖7A是第二指令序列;
圖7B表示圖7A中指令序列的流水線執(zhí)行過(guò)程的時(shí)序圖;
圖8A是第三指令序列;
圖8B表示圖8A中指令序列的流水線執(zhí)行過(guò)程的時(shí)序圖。
圖1表示數(shù)據(jù)處理系統(tǒng)的框圖,該系統(tǒng)包括一個(gè)與指令單元12相連的存儲(chǔ)器10。指令單元12的輸出是兩種指令,它們被供給定點(diǎn)處理單元14或浮點(diǎn)處理單元16。定點(diǎn)處理單元包括一個(gè)指令隊(duì)列27,稱作“順序指令執(zhí)行隊(duì)列”。浮點(diǎn)處理單元16包括一個(gè)指令隊(duì)列34,它是由定點(diǎn)處理單元14在第二隊(duì)列30中執(zhí)行的同步指令,指令隊(duì)列30包括稱作“異步指令”的指令。除了“同步指令”之外,浮點(diǎn)處理單元16的指令執(zhí)行過(guò)程與定點(diǎn)處理單元14的指令執(zhí)行過(guò)程無(wú)關(guān)?!巴街噶睢卑ㄑb入數(shù)據(jù)指令,它們將存儲(chǔ)器20的數(shù)據(jù)提供給浮點(diǎn)處理單元16的寄存器。定點(diǎn)處理單元14完成對(duì)這些裝入指令的地址計(jì)算,比如一條索引裝入指令的定點(diǎn)計(jì)算。定點(diǎn)處理單元14從存儲(chǔ)器10中取出數(shù)據(jù)。然后數(shù)據(jù)經(jīng)數(shù)據(jù)高速緩沖存儲(chǔ)器18送至浮點(diǎn)處理單元16中的寄存器。浮點(diǎn)處理單元16的裝入數(shù)據(jù)指令被包含在隊(duì)列34和27中。裝入指令存儲(chǔ)的協(xié)調(diào)通過(guò)線29完成。
圖2表示一個(gè)框圖及一個(gè)浮點(diǎn)處理單元16。指令由預(yù)取緩沖控制器20進(jìn)行檢查,確定這些指令是否有效。如果一條指令是一條有效指令,就將其存儲(chǔ)在浮點(diǎn)指令隊(duì)列22中。然后,這些指令在解碼邏輯電路24的控制下,二條指令同時(shí)在解碼器26和28中被解碼。被解碼的指令然后送至指令隊(duì)列30和34,并被放入第一個(gè)適用的緩沖器中。除裝入數(shù)據(jù)指令以外的浮點(diǎn)處理單元指令被存儲(chǔ)在指令隊(duì)列30中。這包括所有的浮點(diǎn)處理單元寄存器至寄存器以及寄存器至存儲(chǔ)器的操作。浮點(diǎn)處理單元16存儲(chǔ)器至寄存器的操作(裝入數(shù)據(jù)指令)存儲(chǔ)在指令隊(duì)列34中。執(zhí)行控制單元32在適當(dāng)?shù)臅r(shí)候調(diào)度隊(duì)列30和34中的指令。
在操作過(guò)程中,指令隊(duì)列30中的指令可能要求數(shù)據(jù)存于浮點(diǎn)處理單元寄存器中。該數(shù)據(jù)必須在這些指令可以被調(diào)度執(zhí)行之前存儲(chǔ)。本發(fā)明的標(biāo)識(shí)裝置為這些指令的適當(dāng)管理提供了保證,保證當(dāng)指令調(diào)度時(shí),為這些指令所需的數(shù)據(jù)已經(jīng)適當(dāng)?shù)卮嬗诩拇嫫髦小?br>
圖3表示本發(fā)明的標(biāo)識(shí)機(jī)構(gòu)。該發(fā)明由浮點(diǎn)單元16中的電路組成。在浮點(diǎn)單元16中,解碼器0的寄存器26和解碼器1的寄存器28存儲(chǔ)被解碼的指令。在解碼過(guò)程中,利用比較器40、42、44、46和48進(jìn)行比較,確定正在被解碼的任何指令是否依賴于存儲(chǔ)在裝入指令隊(duì)列34中(圖3中表示為隊(duì)列存儲(chǔ)單元70和72)的裝入指令的執(zhí)行。隊(duì)列存儲(chǔ)單元70和72都包括一個(gè)六位“T”描述符,它是浮點(diǎn)執(zhí)行單元16中的寄存器地址,正在被裝入指令裝入。這些寄存器地址被輸入比較器40、42、44、46和48,與由解碼電路26和28中的指令指定的寄存器進(jìn)行比較。應(yīng)該懂得,在最佳實(shí)施例中,一個(gè)浮點(diǎn)指令最多包括三個(gè)源寄存器和一個(gè)目的寄存器。源寄存器以“A”、“B”和“C”表示。目的寄存器或目標(biāo)寄存器以“T”表示。在最佳實(shí)施例中,浮點(diǎn)執(zhí)行單元16提供的指令執(zhí)行乘法和加法即“A*B+C”。根據(jù)該格式,乘法/加法運(yùn)算的結(jié)果放入一個(gè)目標(biāo)寄存器“T”中。
如果對(duì)任何正在被解碼的指令中帶有寄存器指示符的寄存器進(jìn)行正比較,那么當(dāng)在指令緩沖器62中存儲(chǔ)指令時(shí),設(shè)置合適的標(biāo)識(shí)符。標(biāo)識(shí)符在標(biāo)識(shí)符控制電路68的控制下存儲(chǔ)在一個(gè)兩位緩沖器64中。緩沖器50、54、58和62對(duì)應(yīng)于圖2中的指令隊(duì)列30。當(dāng)每條指令被解碼,它就存儲(chǔ)在第一個(gè)可適用的緩沖器中(從用于裝入指令的緩沖器72和用于所有其它浮點(diǎn)指令的緩沖器62開(kāi)始)。因此,所有異步指令(這些指令在浮點(diǎn)執(zhí)行單元16中執(zhí)行,不依賴于定點(diǎn)單元14中的指令執(zhí)行情況)首先存儲(chǔ)在緩沖器50中。此外,就存儲(chǔ)在緩沖器50、54、58和62中的指令而言,它們各自的標(biāo)識(shí)符分別傳送至標(biāo)識(shí)符存儲(chǔ)器52、56、60和64。當(dāng)指令被調(diào)度,它便被送至執(zhí)行電路66。連接標(biāo)識(shí)符控制邏輯電路68,從存儲(chǔ)器總線8接收數(shù)據(jù)準(zhǔn)備就緒信號(hào)。當(dāng)接收到數(shù)據(jù)準(zhǔn)備就緒信號(hào)時(shí),相應(yīng)的標(biāo)識(shí)符便變?yōu)榱恪2⑶?,?dāng)緩沖器存儲(chǔ)單元64中的兩個(gè)標(biāo)識(shí)符位都為零時(shí),標(biāo)識(shí)符控制邏輯電路將調(diào)度緩沖器存儲(chǔ)單元62中的指令。用這樣的方法,本發(fā)明管理指令隊(duì)列中指令的順序,保證執(zhí)行指令要用到的數(shù)據(jù)在要執(zhí)行的指令真正被調(diào)度之前,已經(jīng)正確地取出,并且是有效的。
圖4以流程圖形式表示標(biāo)識(shí)過(guò)程。在步驟100確定解碼電路中是否存在一條有效指令。如果不是的話,則控制成一回路狀,直到存在一條有效指令為止。接下來(lái),在步驟102確定在裝入隊(duì)列1中是否存在一條有效指令。如果在裝入隊(duì)列1中不存在一條有效指令,那么控制回路返回步驟102的開(kāi)始處。如果在隊(duì)列1中存在一條有效指令,那么控制進(jìn)行到步驟106,確定正在取出的操作數(shù)對(duì)正在解碼的指令來(lái)說(shuō)是否是合適的操作數(shù)。如果是的話,則控制進(jìn)行到步驟110,設(shè)置指令標(biāo)識(shí)符位1等于1。如果不是的話,則控制進(jìn)行到步驟112,設(shè)置指令標(biāo)識(shí)符位1等于0。以并行的方式,在步驟104,控制確定裝入隊(duì)列0中是否存在一條有效指令。如果不是的話,則控制回路返回步驟104的開(kāi)始處。如果有一條有效的裝入指令存在,則控制進(jìn)行到步驟108,確定正在取出的操作數(shù)對(duì)正在解碼的指令來(lái)說(shuō)是否是合適的操作數(shù)。如果是的話,在步驟114,指令標(biāo)識(shí)符位0設(shè)置為1。否則,在步驟116,指令標(biāo)識(shí)符位0設(shè)置為0。
參照?qǐng)D3應(yīng)該懂得,對(duì)于存儲(chǔ)在四個(gè)指令緩沖器50、54、58或62其中之一的指令,可能需要操作數(shù)已經(jīng)被裝入,而這些操作數(shù)作為存儲(chǔ)在緩沖器72和70中的兩條裝入指令的結(jié)果正在被裝入。在這種情況下,對(duì)于其各自的指令緩沖器50、54、58或62來(lái)說(shuō),位存儲(chǔ)緩沖器52、56、60或64中的兩位將包括一個(gè)1。當(dāng)緩沖器72中的裝入操作移到執(zhí)行單元74時(shí),緩沖器70中的操作向下移到緩沖器72,并且標(biāo)識(shí)符緩沖器52、56、60或64的最左邊的位移到最右邊的位置。因此,如果兩個(gè)位位置都是1,那么這表明存儲(chǔ)在指令緩沖器70和72中的兩條裝入指令請(qǐng)求數(shù)據(jù)。同樣,如果兩個(gè)位位置都是0,那么這表明不需要任何正在裝入的數(shù)據(jù),并且指令可以進(jìn)行調(diào)度以便執(zhí)行。
圖5表示標(biāo)識(shí)順序以及中止的指令執(zhí)行的狀態(tài)圖。在第一狀態(tài)120,當(dāng)一條指令依賴于在裝入緩沖器70中執(zhí)行的裝入指令時(shí),標(biāo)識(shí)符設(shè)置為1X,其中“X”表示“不理會(huì)”。執(zhí)行狀態(tài)置于0,表示指令不能進(jìn)行調(diào)度以便執(zhí)行。只要那個(gè)操作數(shù)的數(shù)據(jù)準(zhǔn)備就緒信號(hào)是0,過(guò)程就保持這一狀態(tài)。一旦那個(gè)操作數(shù)的數(shù)據(jù)準(zhǔn)備就緒信號(hào)收到了,過(guò)程進(jìn)行到狀態(tài)122。這表明裝入指令從圖3中的裝入指令緩沖器70傳送到裝入指令緩沖器72。過(guò)程再一次保持122狀態(tài),直至收到下一個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào),這時(shí),過(guò)程進(jìn)行到狀態(tài)124,其中標(biāo)識(shí)符設(shè)置為00,執(zhí)行狀態(tài)變?yōu)?,表明指令已經(jīng)被調(diào)度以便執(zhí)行。
圖6A表示一個(gè)指令序列。在通常的按順序執(zhí)行的流水線處理系統(tǒng)的操作中,第一條指令LD0(表示裝入寄存器0)將首先被調(diào)度以便執(zhí)行。所有下面的指令都將等待這一條裝入寄存器0的指令完成。接下來(lái),乘法指令表示將寄存器2中的內(nèi)容與寄存器3中的內(nèi)容相乘,并將結(jié)果存于寄存器2中。乘法指令之后是一條裝入指令,表示裝入寄存器1。最后是一條加法指令,表示將寄存器0中的內(nèi)容與寄存器1中的內(nèi)容相加,并將結(jié)果存于寄存器4中。
為了這一實(shí)例的目的,我們假定奇存器2和3預(yù)先已經(jīng)裝入數(shù)據(jù)。參照?qǐng)D3,在周期0(圖6B)裝入寄存器0的指令寄存在解碼器0寄存器26中,乘法指令寄存在解碼器1寄存器28中。在周期2中,由于不依賴于數(shù)據(jù),裝入寄存器0的指令傳送至未完成的裝入隊(duì)列1的寄存器72,并且乘法指令經(jīng)異步指令緩沖器50、54、58和62傳送至執(zhí)行單元66,以便執(zhí)行。
在周期1中,裝入寄存器1的指令放在解碼器0的寄存器26中,并且加法指令放在解碼器1的寄存器28中。在周期1,裝入寄存器0的指令依然保持在未完成的裝入指令隊(duì)列1的寄存器72中,并且裝入寄存器1的指令放在未完成的裝入指令隊(duì)列0的寄存器70中。加法指令放在緩沖器0的寄存器62中,并且標(biāo)識(shí)符寄存器64設(shè)置為11,表明加法指令依賴于存儲(chǔ)在寄存器70和72中的指令的完成。在周期3,由數(shù)據(jù)準(zhǔn)備就緒線150指示收到了數(shù)據(jù)準(zhǔn)備就緒信號(hào)。這表明數(shù)據(jù)送給浮點(diǎn)執(zhí)行單元16,以便存儲(chǔ)在合適的寄存器中。裝入指令依然存儲(chǔ)在它們合適的未完成的裝入指令隊(duì)列中寄存器70和72中,并且加法指令依然存儲(chǔ)在寄存器62中,同時(shí)它的標(biāo)識(shí)符存在標(biāo)識(shí)符存儲(chǔ)器60中。在周期4,裝入寄存器0的指令從寄存器72中移出,因?yàn)樗呀?jīng)完成并被從寄存器70來(lái)的裝入寄存器1的指令代替。當(dāng)加法指令在寄存器62中保持時(shí),寄存器64中的標(biāo)識(shí)符復(fù)位為01,表明一個(gè)裝入指令已經(jīng)完成,該指令所依賴的未完成的裝入現(xiàn)在存儲(chǔ)在寄存器72中。在周期5,線150上收到第二個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào)。在周期6,由于浮點(diǎn)執(zhí)行單元16收到了第二條數(shù)據(jù),所以加法標(biāo)識(shí)符置于00,并且加法指令調(diào)度給執(zhí)行單元66。
圖7A是與圖6A類似的第二指令序列。然而,圖7A中的指令序列包括一條與乘法指令相反的除法指令。除法指令意味著要比乘法指令占用多得多的周期來(lái)完成。在圖6B中,乘法指令用一個(gè)周期就完成了。而在圖7B表示的實(shí)例中,除法指令要用七個(gè)周期完成。
在周期0,裝入指令和除法指令和以前一樣放在解碼寄存器26和28中(圖6A和6B)。在周期1,從解碼寄存器28來(lái)的除法指令直接存放在執(zhí)行單元66中。裝入寄存器0的指令放在未完成的裝入指令隊(duì)列1的寄存器72中。同樣,裝入寄存器1的指令放在解碼器0的寄存器26中,并且加法指令放在解碼器1的寄存器28中。在周期2,裝入寄存器1的指令存放在未完成的裝入指令隊(duì)列0的寄存器70中,并且加法指令放在緩沖器0的寄存器62中。此時(shí),標(biāo)識(shí)符控制邏輯電路在寄存器70和72中的裝入指令完成時(shí)設(shè)置標(biāo)識(shí)符,在周期3,線152指出,收到一個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào)。
在周期4,裝入寄存器0的指令已經(jīng)無(wú)用了,因?yàn)樗呀?jīng)完成,并且數(shù)據(jù)已經(jīng)存放在適合的浮點(diǎn)處理單元寄存器中。然后裝入寄存器1的指令從寄存器70移至寄存器72。然后標(biāo)識(shí)符控制邏輯電路68將在標(biāo)識(shí)符存儲(chǔ)器64中的標(biāo)識(shí)符復(fù)位成01,表明數(shù)據(jù)僅依賴于一條單獨(dú)的裝入指令,并且該裝入指令存儲(chǔ)在寄存器72中。在周期5,收到第二個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào)。在周期6,在寄存器72中裝入1的指令已經(jīng)無(wú)用了,因?yàn)樗呀?jīng)完成,并且數(shù)據(jù)已經(jīng)存放在適合的浮點(diǎn)處理單元中。標(biāo)識(shí)符控制邏輯電路68將暫時(shí)存儲(chǔ)在標(biāo)識(shí)符存儲(chǔ)器64中的標(biāo)識(shí)符復(fù)位成00,表明存儲(chǔ)在寄存器58中的加法指令不依賴于數(shù)據(jù)。然而,除法指令繼續(xù)執(zhí)行。在周期7,除法指令仍舊繼續(xù)執(zhí)行,因此,緩沖器1的寄存器62中的加法指令不能被調(diào)度到執(zhí)行單元66。在周期8,除法指令終于完成,并且加法指令被調(diào)度,在純粹的順序執(zhí)行中保留總共3個(gè)周期。
圖8A包括第三指令序列,其中兩條裝入指令被解碼,其后是加法指令和乘法指令。這個(gè)指令序列的目的是說(shuō)明不依賴數(shù)據(jù)的指令(不依賴于未完成的裝入的完成)能夠被調(diào)度至執(zhí)行單元。在圖8B中,裝入寄存器0的指令和裝入寄存器1的指令分別調(diào)度至解碼器0的寄存器26和解碼器1的寄存器28中。在周期1,裝入寄存器0的指令放在未完成的裝入指令隊(duì)列0的寄存器72中。裝入寄存器1的指令放在未完成的裝入指令隊(duì)列0的寄存器70中。加法和乘法指令分別放在解碼器0的寄存器26和解碼器1的寄存器28中。注意加法和乘法指令依賴于裝入寄存器0的數(shù)據(jù)。為了說(shuō)明該實(shí)例的目的,假定已經(jīng)提供了為這些指令所需要的其它數(shù)據(jù)(在寄存器5和7中)。在周期2,裝入寄存器1的指令和裝入寄存器0的指令分別保持在寄存器70和72中,而乘法指令放在緩沖器1的寄存器58中,并且加法指令放在緩沖器0的寄存器62中。由于加法和乘法指令都依賴于寄存器72中正在完成的裝入指令,所以二者的標(biāo)識(shí)符都設(shè)置為01。這些相應(yīng)指令的標(biāo)識(shí)符存儲(chǔ)在寄存器60和64中。在周期3,線154上收到一個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào)。在周期4,加法指令的標(biāo)識(shí)符在暫時(shí)存儲(chǔ)的存儲(chǔ)器64中復(fù)位成00,并且加法指令被調(diào)度至指令執(zhí)行單元66。同時(shí),乘法指令移至緩沖器0的寄存器62,并且其標(biāo)識(shí)符跟著從標(biāo)識(shí)符存儲(chǔ)器60移至標(biāo)識(shí)符存儲(chǔ)器64。如同加法指令一樣,乘法指令的標(biāo)識(shí)符復(fù)位成00,表明不依賴數(shù)據(jù)。同樣,在周期4,已經(jīng)完成的裝入0指令無(wú)用了。裝入寄存器1的指令傳送至未完成的裝入指令隊(duì)列1的寄存器72。在周期5,乘法指令調(diào)度至執(zhí)行單元66,而裝入寄存器1的指令等待完成。最后,在周期8,線154上收到一個(gè)數(shù)據(jù)準(zhǔn)備就緒信號(hào),表明裝入寄存器1的指令已經(jīng)完成。
雖然根據(jù)最佳實(shí)施例對(duì)本發(fā)明進(jìn)行了具體的展示和描述,但是本領(lǐng)域的技術(shù)人員應(yīng)該懂得,在不偏離本發(fā)明的范圍和精神的前提下,可以在形式和細(xì)節(jié)上做各種修改。
權(quán)利要求
1.一個(gè)數(shù)據(jù)處理系統(tǒng),其特征在于包括用于執(zhí)行第一指令的指令執(zhí)行裝置;取出裝置,該裝置用于從一個(gè)存儲(chǔ)器中取出指令和根據(jù)第二指令從該存儲(chǔ)器中取出數(shù)據(jù);指令解碼裝置,用于對(duì)取出的指令解碼,將所說(shuō)的第一指令分配給一個(gè)指令排隊(duì)裝置,并且將所說(shuō)的第二指令分配給所說(shuō)的取出裝置;以及所說(shuō)的指令排隊(duì)裝置,用于存儲(chǔ)被解碼的第一指令,當(dāng)為執(zhí)行所需要的數(shù)據(jù)還沒(méi)有被取出時(shí),標(biāo)識(shí)被存儲(chǔ)的第一指令,當(dāng)為執(zhí)行所需要的數(shù)據(jù)被取出時(shí),清除所說(shuō)的第一指令的標(biāo)識(shí)符,并且逐次將去掉標(biāo)識(shí)的第一指令提供給指令執(zhí)行裝置。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的指令排隊(duì)裝置包括一個(gè)第一排隊(duì)裝置,用于存儲(chǔ)寄存器至寄存器的指令和寄存器至存儲(chǔ)器的指令,還包括一個(gè)第二排隊(duì)裝置,用于存儲(chǔ)存儲(chǔ)器至寄存器的指令。
3.根據(jù)權(quán)利要求2的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的指令解碼裝置包括第一和第二指令解碼電路裝置,用于同時(shí)對(duì)兩條指令解碼。
4.根據(jù)權(quán)利要求3的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的取出裝置包括一個(gè)第二指令隊(duì)列,用于當(dāng)根據(jù)第二指令從存儲(chǔ)器中取出數(shù)據(jù)時(shí),存儲(chǔ)所說(shuō)的第二指令,并且所說(shuō)的指令排隊(duì)裝置包括這樣的裝置,它用于存儲(chǔ)存儲(chǔ)在所說(shuō)的第二指令隊(duì)列中的第二指令,與第一指令的存儲(chǔ)分開(kāi)。
5.根據(jù)權(quán)利要求4的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的取出裝置包括這樣的裝置,它把根據(jù)第二指令取出的數(shù)據(jù)提供給指令執(zhí)行裝置。
6.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其特征在于當(dāng)為第一指令所需要的數(shù)據(jù)已經(jīng)由取出裝置存儲(chǔ)在指令執(zhí)行裝置中時(shí),所說(shuō)的指令排隊(duì)裝置清除存儲(chǔ)的第一指令的標(biāo)識(shí)符。
7.根據(jù)權(quán)利要求6的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的指令解碼裝置包括比較裝置,在執(zhí)行每條被解碼的第一指令時(shí),用于確定是否需要來(lái)自于存儲(chǔ)在指令排隊(duì)裝置中的第二指令的數(shù)據(jù)。
8.根據(jù)權(quán)利要求7的數(shù)據(jù)處理系統(tǒng),其特征在于所說(shuō)的指令排隊(duì)裝置包括多個(gè)有序的第一指令存儲(chǔ)鎖存器,這些鎖存器包括第一指令標(biāo)識(shí)符鎖存器,用于以一個(gè)有序的序列存儲(chǔ)第一指令連同各自的標(biāo)識(shí)符,并且所說(shuō)的指令排隊(duì)裝置還包括這樣的裝置,它根據(jù)第二指令的執(zhí)行情況,改變所說(shuō)存儲(chǔ)的第一指令和相應(yīng)標(biāo)識(shí)符的次序。
全文摘要
本數(shù)據(jù)處理系統(tǒng)包括執(zhí)行第一型指令的指令執(zhí)行電路,根據(jù)第二型指令從存儲(chǔ)器中取指令和數(shù)據(jù)的取出電路,一個(gè)指令解碼器用于對(duì)取出的指令解碼,并將第一型指令分配給指令排隊(duì)電路,將第二型指令分配給取出電路。當(dāng)執(zhí)行第一型指令所需的數(shù)據(jù)未被取出時(shí),指令排隊(duì)電路能夠存儲(chǔ)被解碼的第一型指令,同時(shí)將這些指令標(biāo)識(shí);當(dāng)數(shù)據(jù)取出時(shí),該電路清除這些指令的標(biāo)識(shí)符,指令排隊(duì)電路逐次將去掉標(biāo)識(shí)的第一型指令提供給指令執(zhí)行電路。
文檔編號(hào)G06F15/16GK1052740SQ90109188
公開(kāi)日1991年7月3日 申請(qǐng)日期1990年11月17日 優(yōu)先權(quán)日1989年12月20日
發(fā)明者特羅伊·奈爾·??怂? 麥鴻·尼古元福 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司