專利名稱:緊配合的多處理器指令同步的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),更具體地說,涉及包括多個(gè)獨(dú)立處理單元的數(shù)據(jù)處理。
傳統(tǒng)的數(shù)據(jù)處理系統(tǒng)一個(gè)一個(gè)地執(zhí)行一個(gè)序列的指令。在包括多個(gè)處理單元的處理系統(tǒng)中,通常對(duì)指令的譯碼是集中地進(jìn)行的,以保證每個(gè)指令按其在序列中的位置進(jìn)行譯碼。
1982年8月出版的第25卷,編號(hào)為3B的IBM技術(shù)公開報(bào)告的1637-1638上,刊登過一篇題為“多處理器同步設(shè)計(jì)方法”(MultiprocessorSynchronigationDesignMethocl”)的文章,該文公開了一種進(jìn)程,從而可以同時(shí)確定許多處理器之中任何處理器是否是在一個(gè)指定的狀態(tài)。在進(jìn)程結(jié)束時(shí),所有處理器已就其當(dāng)前的相互間的狀況達(dá)成協(xié)議。
題為“用于高度平行多處理器系統(tǒng)的同步處理部件”(IBM技術(shù)公開報(bào)告,30卷,第7號(hào),1987,12,第98-99頁)公開了一種利用一個(gè)同步處理部件增強(qiáng)多處理計(jì)算機(jī)的體系結(jié)構(gòu)而使在一個(gè)高平行多處理計(jì)算機(jī)系統(tǒng)中同步開銷最小的技術(shù)。
題為“用于分布式處理同步和地址計(jì)算的運(yùn)行一時(shí)間算法”(“Run-TimeAlgorithmforDistributedProcessingSynchromizntionandAddressCalculations”,見IBM技術(shù)公開報(bào)告,29卷,NO.110,1987,3,4658-4687頁)介紹第用第一度在一個(gè)分布式處理體系結(jié)構(gòu)的每個(gè)分布處理部件中所用的算法。這些算法以與在一個(gè)網(wǎng)絡(luò)中的其它分布處理部件協(xié)調(diào)的方式為每個(gè)分布處理部件安排地址計(jì)算。
本發(fā)明的目的是為了提供這樣一種多處理系統(tǒng)即使系統(tǒng)中的各個(gè)處理器實(shí)際上可能并非順序地執(zhí)行各個(gè)指令,而此多處理系統(tǒng)卻似乎在順序地執(zhí)行一個(gè)序列的指令。
本發(fā)明的數(shù)據(jù)處理系統(tǒng)包括一個(gè)用于貯存要求由二個(gè)處理器操作的一序列指令的指令存貯電路;至少要有二個(gè)處理器,每個(gè)用來執(zhí)行來自上述指令存貯電路的指令;一個(gè)指令分布電路用來將每個(gè)指令分派給至少其中一個(gè)處理器;至少其中一個(gè)處理器包括一個(gè)用于在由另一個(gè)處理器執(zhí)行在指令序列中的上述的指令之前執(zhí)行所分派的指令的電路。
在本發(fā)明的最佳實(shí)施例中的數(shù)據(jù)處理系統(tǒng)中,包括用于貯存指令緩沖器。在該序列中至少一個(gè)指令要求至少由兩個(gè)分開的處理器進(jìn)行操作。指令貯存電路與兩個(gè)處理器相連。每個(gè)處理器執(zhí)行來自存貯電路的指令。另外還包括一個(gè)用來將每個(gè)指令分派給至少其中一個(gè)處理器的指令分派電路。至少一個(gè)處理器在另一處理器執(zhí)行指令序列中的上述指令前具有執(zhí)行所分派的指令的能力。
在該最佳實(shí)施例中,第一個(gè)處理器是定點(diǎn)運(yùn)算處理器。第二個(gè)處理器是一個(gè)浮點(diǎn)運(yùn)算處理器。指令序列包括由定點(diǎn)處理器本身執(zhí)行的和由浮點(diǎn)處理器本身執(zhí)行的指令。然而,在本最佳實(shí)施例中,指令序列也包括為定點(diǎn)處理器和浮點(diǎn)處理器的操作兩者均所需的浮點(diǎn)裝入和貯存指令。具體地說,定點(diǎn)處理器實(shí)行地址計(jì)算,以便完成浮點(diǎn)指令的裝入和貯存操作。
在該實(shí)施例中,具有在由其它的處理器執(zhí)行上述的指令前執(zhí)行所分配的指令的能力的一個(gè)處理器還具有這樣一種能力當(dāng)指令序列的首指令的執(zhí)行需要由另一個(gè)處理器完成一個(gè)操作時(shí),則延遲對(duì)其指令的執(zhí)行。在該例中,如果浮點(diǎn)指令要求定點(diǎn)操作處理器,則浮點(diǎn)處理器將不完成浮點(diǎn)指令。
此外,在本實(shí)施例中,一個(gè)處理器除了具有在由另一個(gè)處理器執(zhí)行上述指令前執(zhí)行所分配的指令的能力外,還具有延遲執(zhí)行一條可中斷指令(即一種可給處理器產(chǎn)生一個(gè)中斷條件的指令),直至在執(zhí)行其它指令的適當(dāng)序列位置上執(zhí)行該可中斷指令的這樣的能力。
本發(fā)明的具有新穎性的特征在權(quán)利要求書中作了描述。然而,在結(jié)合附圖閱讀了下面對(duì)本發(fā)明的最佳實(shí)施例的介紹之后,讀者將會(huì)對(duì)本發(fā)明本身以及其它的特征和特點(diǎn)有更好的理解。
圖1為與一個(gè)公用指令緩沖存儲(chǔ)器和一個(gè)公用存儲(chǔ)器相連的兩個(gè)處理單元的方框圖;
圖2為說明用于浮點(diǎn)處理器的控制功能的流程圖;
圖3為說明用于定點(diǎn)處理器的控制功能的流程圖;
圖4為不產(chǎn)生中斷的浮點(diǎn)和定點(diǎn)指令表;
圖5為用來執(zhí)行圖4的指令序列的定時(shí)圖;
圖6為包括單個(gè)可中斷的指令的指令序列表;
圖7為用來說明執(zhí)行圖6中的指令序列的定時(shí)圖;
圖8為包括一條實(shí)際上不產(chǎn)生中斷的可中斷指令的一個(gè)指令序列;及圖9為用來說明執(zhí)行圖8中的指令序列的的定時(shí)圖。
本發(fā)明要解決多處理器的同步問題。具體說來,在所示的本發(fā)明的最佳實(shí)施例中,要解決在一個(gè)定點(diǎn)處理器和一個(gè)浮點(diǎn)處理器之間實(shí)現(xiàn)同步的問題。這是因?yàn)槎c(diǎn)處理器必須為在浮點(diǎn)處理器中執(zhí)行浮點(diǎn)裝入和存貯操作而進(jìn)行地址計(jì)算。要執(zhí)行同步的另一因素則是由于浮點(diǎn)處理器要有能在定點(diǎn)處理器前頭執(zhí)行可中斷指令的能力。
圖1示出了通過一條代表多控制信號(hào)的控制線29與一個(gè)浮點(diǎn)處理器8相連的一個(gè)定點(diǎn)處理器6。定點(diǎn)處理器6和浮點(diǎn)處理器8又與一個(gè)公用指令緩沖存儲(chǔ)器10和單個(gè)存儲(chǔ)器80相連。定點(diǎn)處理器6包括一個(gè)與指令緩沖存儲(chǔ)器10相連的指令預(yù)取緩沖器20。指令預(yù)取緩沖器20接收來自指令緩沖存貯器10的指令序列。來自指令預(yù)取緩沖器20的指令在譯碼電路22中被譯碼,以便向寄存器存儲(chǔ)器22和控制電路30提供信息。在該實(shí)施例中,定點(diǎn)處理器6的寄存器存儲(chǔ)器24包括32個(gè)可單獨(dú)編址的寄存器。寄存器存儲(chǔ)器24的輸出送至算術(shù)邏輯單元26(ALU)。ALU24輸出又被送回寄存器存儲(chǔ)器24。定點(diǎn)處理器6還包括一個(gè)與寄存器存儲(chǔ)器24和控制電路30相連的輸入/輸出電路(I/O)28I/O電路28與外部存儲(chǔ)器80相連。定點(diǎn)處理器6的控制電路30控制定點(diǎn)處理器6的內(nèi)部操作,控制由I/O電路28對(duì)外部存儲(chǔ)器80的存取及控制與浮點(diǎn)處理器8的同步。
浮點(diǎn)處理器8包括一個(gè)與指令緩沖存儲(chǔ)器10相連的指令預(yù)取緩沖器40。譯碼電路42對(duì)來自指令預(yù)取緩沖器40的指令進(jìn)行譯碼。譯碼電路42給浮點(diǎn)處理器控制電路52和寄存器存儲(chǔ)器44提供輸入信號(hào)。寄存器存儲(chǔ)器44將其輸出信號(hào)送至指數(shù)加法器電路50和乘法電路48。乘法電路48的輸出信號(hào)送至加法器54,加法器54隨后又將其輸出送至舎入電路56??刂齐娐?2還將控制信號(hào)輸入到指數(shù)加法器50、乘法器48、加法器54和舍入電路56。在本實(shí)施中,指數(shù)加法器為浮點(diǎn)計(jì)算實(shí)行指數(shù)運(yùn)算,并為乘法器48提供移位控制。乘法器48是一個(gè)采用保留進(jìn)位加法器結(jié)構(gòu)的華萊士樹狀乘法器。指數(shù)加法電路50是一個(gè)用來作指數(shù)相加或相減的加法電路,進(jìn)行相乘運(yùn)算。該指數(shù)信息用來補(bǔ)償加法操作,使加法中引入乘法算子。
舍入電路56遞進(jìn)加法器54的運(yùn)算結(jié)果,從而向寄存器存儲(chǔ)器44提供一個(gè)經(jīng)舎入后的結(jié)果。浮點(diǎn)處理器8也包括一個(gè)與外存儲(chǔ)器80相連的輸入/輸出電路(I/O)46。I/O電路46還與控制電路52相連。如同在定點(diǎn)處理器6一樣,控制電路52提供在浮點(diǎn)處理器8中實(shí)行的浮點(diǎn)運(yùn)算的內(nèi)部控制。此外,浮點(diǎn)控制器52通過線29與定點(diǎn)處理器控制器30相連以便接收來自定點(diǎn)處理器6的諸同步信號(hào)。
在本實(shí)施例中,如果需要的話,存儲(chǔ)器80可用作在定點(diǎn)處理器6和浮點(diǎn)處理器8之間進(jìn)行數(shù)據(jù)通信的裝置。此外,指令緩沖存儲(chǔ)器10為定點(diǎn)處理器6和浮點(diǎn)處理器8兩者貯存指令序列。在本實(shí)施中指令序列均送至定點(diǎn)處理器6的指令預(yù)取緩沖器20和浮點(diǎn)處理器8的指令預(yù)取緩沖器40。換言之,兩個(gè)預(yù)取緩沖器20和40均接收同樣的指令。
在本實(shí)施例中,定點(diǎn)處理器6是一個(gè)32位寬的處理單元,而浮點(diǎn)處理器8則是64位寬的處理單元。
圖2示出了在浮點(diǎn)處理器的控制單元52中的流程圖。具體地說該控制流程表示了在定點(diǎn)處理器6和浮點(diǎn)處理器8之間的同步功能的控制。首先,在圖2的步驟100中,將來自指令預(yù)取緩沖器40的一條指令轉(zhuǎn)移到譯碼電路42中。在步驟102中,該指令被譯碼。在步驟104中,對(duì)譯出的指令就是否為一條可中斷的指令進(jìn)行判斷。為了解釋的目的,只認(rèn)為用于浮點(diǎn)處理器8的裝入和貯存的指令是可中斷的。如果已譯出的指令不是可中斷的,則在步驟106中,對(duì)該指令就是否為一條浮點(diǎn)指令作出判斷。如果不是,控制功能回到步驟100(如果正在翻譯的指令實(shí)際上是一條定點(diǎn)算法指令,就會(huì)發(fā)生這種情形),回到步驟106,如果被翻譯的指令是一條浮點(diǎn)指令的話,則該指令在步驟108被執(zhí)行,并在該指令執(zhí)行完畢后控制功能回到步驟100。
再回來說步驟104。如果譯出的指令為一個(gè)可中斷性指令,則控制電路52進(jìn)到步驟110以監(jiān)視清除和同步信號(hào)。所述清除和同步信號(hào)在圖1中用連接定點(diǎn)處理器6的控制電路30和浮點(diǎn)處理器8的控制電路52的線29予以表示。在步驟112中,對(duì)是否收到清除信號(hào)進(jìn)行判斷,如果是,則所有在指令預(yù)取緩沖器40中的指令在步驟116被擦去,而控制流程回到步驟100。如果清除信號(hào)還未收到,則在步驟114中對(duì)同步信號(hào)是否已經(jīng)出現(xiàn)作出判斷。如果同步信號(hào)還未出現(xiàn),則控制流程返回步驟110,去再次監(jiān)視這兩個(gè)信號(hào)。如果收到了同步信號(hào),則步驟114將控制流程進(jìn)到步驟106,由步驟106確定要執(zhí)行的指令是否為浮點(diǎn)指令。以這種方式,浮點(diǎn)處理器8從定點(diǎn)處理器6中接收同步信號(hào)。然而應(yīng)該理解到,如果一個(gè)指令是不可中斷的,則浮點(diǎn)處理器不需要來自定點(diǎn)處理器中的同步信號(hào)。因此按照本發(fā)明,可使浮點(diǎn)處理器8在來自由定點(diǎn)處理器6執(zhí)行的指令的序列前執(zhí)行諸指令。
在圖3中,示出了用于定點(diǎn)處理器6的控制流程。在步驟200中,來自指令預(yù)取緩沖器20的下條指令被轉(zhuǎn)移到譯碼電路22。該指令在步驟202中被譯碼。在步驟204中,對(duì)該指令是一條定點(diǎn)單元指令還是一條浮點(diǎn)單元指令作出判斷,如果該指令不是一條定點(diǎn)單元指令,則控制流程進(jìn)到步驟200。然而,如果該指令系一條定點(diǎn)單元指令,則控制流程進(jìn)到步驟206。應(yīng)該認(rèn)識(shí)到,一條浮點(diǎn)裝入和一條浮點(diǎn)貯存指令均被定點(diǎn)處理器6考慮成為定點(diǎn)指令,這是因?yàn)?,它們均需要由定點(diǎn)處理器6作定點(diǎn)地址計(jì)數(shù)。因此,任何不需要在定點(diǎn)處理器6中進(jìn)行操作的浮點(diǎn)指令將返回到控制流程的步驟200。另一方面,任何要求定點(diǎn)處理器6進(jìn)行操作的定點(diǎn)單元指令,或者一條浮點(diǎn)裝入或貯存指令將使控制流程進(jìn)到步驟206去執(zhí)行該指令。在步驟208中,對(duì)該指令是否執(zhí)行完畢作出判斷,如果尚未完畢,則在步驟206中繼續(xù)執(zhí)行。一旦指令執(zhí)行完畢,則流程進(jìn)到步驟210去確定是否該指令事實(shí)上是可中斷的。如果該指令是不可中斷的,則控制流程返回到步驟200。然而,如果該指令是可中斷的,則在步驟212中就一個(gè)指令中斷實(shí)際已否發(fā)生作與判斷。如果中斷尚未發(fā)生,則控制流程進(jìn)到步驟214,由此(見圖1)將線29上的同步信號(hào)送至浮點(diǎn)處理器8的控制電路52,然后控制流程返回到步驟200。
如果指令中斷已經(jīng)發(fā)生,則控制流程進(jìn)到步驟216,由步驟216,將圖1中線29上的清除信號(hào)送至浮點(diǎn)處理器8的控制電路52,并清除指令預(yù)取緩沖器20。一旦完成步驟216,控制流程返回步驟200。
應(yīng)該認(rèn)識(shí)到,一個(gè)中斷之所以造成清除指令緩沖器20和40是因?yàn)橹袛嗵幚碥浖⒈粓?zhí)行,因此留在指令預(yù)取緩沖器中的、在該中斷發(fā)生前就存在的指令將不再被執(zhí)行。通過清除指令預(yù)取緩沖器20和40,指令緩沖存儲(chǔ)器10然后就可重新裝入在中斷過后要執(zhí)行的合適的指令。
說到圖3還要注意的一點(diǎn)是,如果指令是可中斷的,則將在步驟216中產(chǎn)生一個(gè)清除信號(hào)或在步驟214中產(chǎn)生一個(gè)同步信號(hào)?;貞浺幌聢D2,如果一個(gè)指令是不可中斷的話,則浮點(diǎn)單元將不等待接收任何來自定點(diǎn)處理器6中的同步信號(hào)。在圖4和5中,示出了兩個(gè)處理器6和8的操作。圖4中示出了一列指令,及其要求執(zhí)行所列指令的周期號(hào)和這些指令是否為可中斷的。在圖4所列的例子中,沒有一個(gè)指令是可中斷的。然而,其中一個(gè)指令(FXU-MUL3)要用4個(gè)周期執(zhí)行。圖中FPU代表為一條浮點(diǎn)單元指令,而FXU則代表一條定點(diǎn)單元指令。因此,浮點(diǎn)單元指令將在浮點(diǎn)處理器8中被執(zhí)行,而定點(diǎn)單元指令則將在定點(diǎn)處理器6中被執(zhí)行。
圖5為用以說明幾個(gè)周期(1至10)的定點(diǎn)單元處理器6(FXU)和浮點(diǎn)處理器(FPU)的流水線操作的定時(shí)圖。流水線操作包括轉(zhuǎn)移,譯碼和執(zhí)行。同步和清除兩項(xiàng)用以說明是否出現(xiàn)同步或清除信號(hào)。
參閱圖5,在周期1,由定點(diǎn)單元和浮點(diǎn)單元指令預(yù)取緩沖器220和40分別都接收指令A(yù)DD1。在周期2中,ADD1被譯碼,而ADD2被轉(zhuǎn)移到預(yù)取緩沖器20和40。在周期3中,多指令(MUL3)被轉(zhuǎn)移到緩沖器20和40。ADD2指令都由處理器6和8譯碼。然而,ADD1指令僅被浮點(diǎn)處理器8執(zhí)行,因該指令是一個(gè)浮點(diǎn)指令。在周期4中,ADD4指令被轉(zhuǎn)移,MUL3指令被譯碼,而ADD2指令則由定點(diǎn)處理器6執(zhí)行,因?yàn)樗且粋€(gè)定點(diǎn)指令。在周期5中,ADD5指令被轉(zhuǎn)移到緩沖器20和40中。處理器6和8均對(duì)ADD4指令進(jìn)行譯碼,而MUL3指令則在定點(diǎn)處理器6中被執(zhí)行。在周期6,ADD5指令保留在緩沖器20中而ADD6指令則被裝入到浮點(diǎn)處理器8的緩沖器40中。在定點(diǎn)處理器6中的ADD5指令如其在浮點(diǎn)處理器8中一樣被譯碼。多指令(MUL3)繼續(xù)在定點(diǎn)處理器6中被執(zhí)行。應(yīng)該注意到,雖然浮點(diǎn)指令A(yù)DD4為序列之首,該ADD4指令仍要有浮點(diǎn)處理器8來執(zhí)行。在周期7中,在ADD6指令正在浮點(diǎn)處理器8中被譯碼的同時(shí),MUL3指令繼續(xù)在被執(zhí)行。在周期8,MUL3指令繼續(xù)在定點(diǎn)處理器6中被執(zhí)行,而ADD6指令則在浮點(diǎn)處理器8中被執(zhí)行。在周期9中,雖然ADD6指令已經(jīng)被浮點(diǎn)處理器執(zhí)行過,它在定點(diǎn)處理器6中的定點(diǎn)單元中還要被譯碼。此外,ADD5指令還要在定點(diǎn)處理器6中執(zhí)行。在周期10中,因?yàn)锳DD6指令是一條浮點(diǎn)指令,而該指令實(shí)際上是在ADD5指令之前被執(zhí)行的,因而無論哪個(gè)處理器將不再會(huì)執(zhí)行任何流水線操作。
圖6和圖7再次示出了一個(gè)用于定點(diǎn)處理器6和浮點(diǎn)處理器8的指令流的例子。然而,在該例子,有一條浮點(diǎn)裝入指令要執(zhí)行。圖7示出了以類似于圖5中的方式所實(shí)行的流水線式操作。因此,對(duì)浮點(diǎn)裝入操作以前所實(shí)行那些流水線操作將不再介紹,因?yàn)槟切┎僮魍瑘D5中的是一樣的。在周期5中,將浮點(diǎn)裝入指令裝入指令裝入到緩沖器20和40。在周期6中,該指令被譯碼。然而,請(qǐng)注意,此時(shí)定點(diǎn)處理器6正在執(zhí)行一條需要三個(gè)周期的多指令MUL3。因此,在周期7中,雖然該裝入指令已在浮點(diǎn)處理器中被譯出,該指令仍等待在定點(diǎn)處理器6中被執(zhí)行,因而在該周期中,該裝入指令由于要等待在定點(diǎn)處理器6中作地址計(jì)算而不能在浮點(diǎn)處理器8中被執(zhí)行。然而,繼該裝入指令到達(dá)的一條ADD6指令在周期7中被不譯碼。在周期8中,一旦在定點(diǎn)處理器6中完成裝入操作,定點(diǎn)處理器6即給出一個(gè)同步信號(hào)。一經(jīng)出現(xiàn)同步信號(hào),浮點(diǎn)處理器8即為裝入指令而執(zhí)行其操作。最后,在周期9,浮點(diǎn)處理器執(zhí)行ADD6指令。
圖8和9又給出了一個(gè)指令序列的例子。該指令序列類似于圖6,不同之處是,在圖6中的只是可中斷的一條浮點(diǎn)裝入指令,而在圖8中現(xiàn)在則是一條可產(chǎn)生中斷的定點(diǎn)裝入指令。圖9又示出了圖8指令列的定時(shí)圖。圖9和圖7的不同處是在周期8。請(qǐng)注意,在該周期中,定點(diǎn)處理器6發(fā)出了一條清除指令,因?yàn)榇藭r(shí)那條定點(diǎn)裝入指令已發(fā)生了中斷。一旦接收到清除信號(hào),浮點(diǎn)處理器8即清除指令預(yù)取緩沖器40中的內(nèi)容。同時(shí),一旦產(chǎn)生清除信號(hào),定點(diǎn)處理器6將清除其指令預(yù)取緩沖器20中的內(nèi)容。
在本實(shí)施例中,如果發(fā)生一個(gè)頁面錯(cuò)誤(即不在存儲(chǔ)器中),則就會(huì)發(fā)生對(duì)于裝入和貯存指令的中斷。換言之,就需要有一個(gè)數(shù)據(jù)緩沖存儲(chǔ)器,并且如果待裝入的一條指令不在數(shù)據(jù)緩沖存儲(chǔ)器或存儲(chǔ)器中,則就需實(shí)行從一個(gè)外部存儲(chǔ)器中拿取該數(shù)據(jù)的操作。從外存取數(shù)的操作要占用許多周期,而用于此取數(shù)操作的指令序列放置在中斷處理程序內(nèi)。因此,一旦發(fā)生中斷,指令緩沖存儲(chǔ)器10將包含用來完成取數(shù)的中斷處理程序操作。
雖然本發(fā)明已參照上述實(shí)施例作了介紹,但這不應(yīng)被解釋為是對(duì)本發(fā)明的限制。顯而易見,熟悉本技術(shù)領(lǐng)域的人們還可參考本發(fā)明的上述描述,對(duì)所公開的實(shí)施例作各種修改,因此,毋容置疑,這種修改型或?qū)嵤├诒景l(fā)明的權(quán)利要求所載明的確定范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),其特征在于包括一個(gè)指令存貯裝置,用來貯存至少要求由兩個(gè)處理器裝置實(shí)行的指令序列;多個(gè)處理器裝置,用來執(zhí)行來自所述指令存貯器裝置的指令;指令分配裝置,用來向至少一個(gè)上述處理器裝置分配指令;至少其中一個(gè)上述處理器裝置包括一種用來在由另一個(gè)處理器裝置執(zhí)行指令序列中的一個(gè)上述指令前可執(zhí)行所分配的指令的裝置。
2.一個(gè)根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中所述用于在執(zhí)行上述指令前執(zhí)行所分配的指令的裝置還包括用于當(dāng)所述指令要求由另一處理器裝置操作時(shí)延遲執(zhí)行序列的首指令的裝置。
3.一個(gè)根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中所述用于在執(zhí)行上述指令前執(zhí)行所分配的指令的裝置還包括用于延遲執(zhí)行一條可給所述處理裝置產(chǎn)生一個(gè)中斷條件的可中斷指令,直到在順序執(zhí)行其它指令的過程中該可中斷指令按序被執(zhí)行為止。
4.一個(gè)根據(jù)權(quán)利要求3的系統(tǒng),其中上述指令分配裝置包括用于檢測發(fā)生中斷、并根據(jù)此檢測以在中斷發(fā)生前所分配的次序分配指令序列的裝置。
5.根據(jù)權(quán)利要求4的一個(gè)數(shù)據(jù)處理系統(tǒng),其中所述用于在執(zhí)行上述指令前執(zhí)行所分配的指令的裝置還包括用于當(dāng)所述指令需要由另一處理器裝置進(jìn)行操作時(shí)延遲首指令的裝置。
6.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其中所述指令存儲(chǔ)裝置貯存有用于至少兩個(gè)處理器裝置的指令序列,而指令分配裝置則將每個(gè)指令分配給至少兩個(gè)處理器裝置。
7.根據(jù)權(quán)利要求6的數(shù)據(jù)處理系統(tǒng),其中所述的指令序列包括至少一條要求由兩個(gè)處理器進(jìn)行操作的指令。
全文摘要
數(shù)據(jù)系統(tǒng)包括一貯存至少需由兩個(gè)處理器操作的指令存儲(chǔ)緩沖器。二個(gè)處理器執(zhí)行緩沖器中的指令。指令分配電路向處理器分配指令。至少一個(gè)處理器具有在由另一個(gè)處理器執(zhí)行指令序列中的上述指令前執(zhí)行所分配的指令的能力。至少一個(gè)處理器具有延遲執(zhí)行一條可中斷指令直到該指令在序列中的適當(dāng)序列號(hào)中能被執(zhí)行時(shí)為止的能力。一旦出現(xiàn)中斷,處理器能立即清除緩沖器以存儲(chǔ)要執(zhí)行的中斷軟件指令。
文檔編號(hào)G06F9/48GK1044177SQ8910916
公開日1990年7月25日 申請(qǐng)日期1989年12月9日 優(yōu)先權(quán)日1989年1月13日
發(fā)明者格里高里·弗雷德里克·格羅霍斯基, 杰姆斯·阿蘭·卡爾, 邁洪·恩古巖浮, 大衛(wèi)·斯科特·雷 申請(qǐng)人:國際商業(yè)機(jī)器公司