專利名稱:獨立處理多個指令流、軟式控制各指令流的處理功能的多程序流程同時處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及根據(jù)并行發(fā)出的來自多個指令流的指令、高效地使用多個運算單元的信息處理器。
背景技術(shù):
現(xiàn)有技術(shù)有在一個處理器內(nèi)同時處理多個指令流的多程序流程同時處理器。在“A Multithreaded Processor Architecture with SimultaneousInstruction Is suing”(In Proc.of ISS 91Intemational Symposium onSupercomputing.Fukuoka. Japan,pp.87~96,November 1991)中詳細(xì)地說明了多程序流程同時處理器。
圖1是表示現(xiàn)有技術(shù)的多程序流程同時處理器的構(gòu)成框圖。圖中,多程序流程同時處理器配有指令超高速緩沖存儲器500、3個指令提取單元501、3個指令解碼單元502、12個備用站503、4個指令調(diào)度單元504、4個功能單元505、和寄存器組506,構(gòu)成為能同時獨立地執(zhí)行與圖中指令提取單元和指令解碼單元組相應(yīng)的3個指令流。其中,指令流相應(yīng)于指令提取單元和指令解碼單元組所構(gòu)成的處理流。
圖中,指令提取單元501從指令超高速緩沖存儲器500中讀出各個不同的指令流指令。
指令解碼單元502對各個指令流的指令解碼,在可處理的功能單元中連接該指令,在與可處理該指令的功能單元505連接的備用站503中裝入指令解碼結(jié)果(以下簡單稱為指令)。
指令調(diào)度單元504選取來自備用站503的適當(dāng)指令,傳給空著的功能單元505。在與1個功能單元對應(yīng)的不同指令流的指令解碼結(jié)果裝在備用站503的情況下,按固定的序號選取指令。因而實現(xiàn)了指令流之間的公平。
功能元件505為執(zhí)行各個指令的運算器,使用寄存器組506執(zhí)行來自備用站503的指令。各功能元件最好是相同的單元,在多數(shù)情況下配備比如寄存器/存儲器單元、整數(shù)運算單元、浮動小數(shù)點運算單元、乘除運算單元等類別的運算器。
下面,簡單地說明如上述構(gòu)成的多程序流程同時處理器的工作。
圖中的多程序流程同時處理器中,由于裝有3組指令提取單元501和指令解碼單元502,所以能夠并行地對3個指令流進行提取·解碼。3個指令流和指令超高速緩沖存儲器500(或是圖外的主存儲器)所對應(yīng)的程序中,有1個程序?qū)?yīng)1個指令流的情況(從3個程序中產(chǎn)生3個指令流的情況),和1個程序?qū)?yīng)多個指令流的情況(從1個程序中產(chǎn)生3個指令流的情況)。后者比如為對于不同的圖象數(shù)據(jù)同時執(zhí)行多個指令流的1個圖象處理程序的情況。
解碼單元502通過備用站503、指令調(diào)度單元504,向接收該指令的功能單元發(fā)出解碼指令。各功能單元也按照來自相應(yīng)指令流的指令執(zhí)行已發(fā)出的指令。
這樣,多程序流程同時處理器的特征在于具有可同時執(zhí)行多個指令流的共有運算器。
還有,多程序流程同時處理器是在1個處理器內(nèi)部處理多個指令流,因此可把執(zhí)行1個指令流的單元稱為邏輯處理器。
邏輯處理器有處理各個獨立的指令流的解碼單元、指令順序控制機構(gòu)和寄存器組等。由多個邏輯處理器使用的功能單元和超高速緩沖存儲器等在邏輯處理期間是共有的。
另一方面,可把對應(yīng)邏輯處理器的整個處理器稱為物理處理器。
還有,如果把多程序流程同時處理器與現(xiàn)有的超計數(shù)方式的處理器比較,由于超計數(shù)處理器僅進行了功能單元的多重化(重復(fù)化),所以同時可處理的指令流為1個,因指令之間的依存關(guān)系流水線聯(lián)鎖頻繁發(fā)生,其結(jié)果不能提高功能單元的使用效率,因而難以提高性能。而上述多程序流程同時處理器因能并行地執(zhí)行多個命令流的命令,所以可提高各功能單元的使用效率,實現(xiàn)性能的提高。
但是,上述多程序流程同時處理器構(gòu)成有下述問題。
第1,由于多個邏輯處理器具有共有的功能單元,所以有從多個指令流所發(fā)出的指令爭用功能單元的問題,因此,一定期間內(nèi),在特定邏輯處理器發(fā)出的指令與其他的邏輯處理器發(fā)出的指令相比不是很少的情況下,有降低該特定邏輯處理器性能的問題。而且,在邏輯處理器之間負(fù)荷差別大的情況下,即使有在邏輯處理器中分配相同處理內(nèi)容的指令流(由上述程序生成),但由于只是特定的指令流的處理遲緩,所以就會造成處理的結(jié)束時間有偏差、不能提高整體速度的情況。
第2,即使在邏輯處理器中可以分配各個不同的指令流而可使特定邏輯處理器較早執(zhí)行,因而相對地提高了特定邏輯處理器的處理速度的情況下,但由于不能占有指令超高速緩沖存儲器等共有資源,所以整體性能仍較低。例如,難以承擔(dān)有發(fā)生需要緊急中斷處理等情況。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明的目的在于提供可軟式調(diào)整多個指令流之間各指令流的處理性能,并能提高整體處理效率的多程序流程同時處理器。
實現(xiàn)上述目的的執(zhí)行多個指令流的多程序流程同時處理器,包括·多個功能單元執(zhí)行指令;·多個指令解碼器與各指令流對應(yīng)地設(shè)置,解碼各個指令,完成作為執(zhí)行該指令的功能單元要求將解碼指令發(fā)給該功能單元的指令發(fā)出要求;·優(yōu)先權(quán)存儲器存儲各指令流的優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·自停止數(shù)據(jù)存儲器在各指令流中存儲指令流處于執(zhí)行狀態(tài)還是處于停止?fàn)顟B(tài)的自停止數(shù)據(jù);·調(diào)解器接收來自多個指令解碼部分通知的指令發(fā)出要求,2個以上的指令發(fā)出要求同時指定一個功能單元的情況下,根據(jù)優(yōu)先權(quán)存儲器中存儲的優(yōu)先權(quán),確定向該功能單元要發(fā)出的解碼指令;
·停止器根據(jù)所述自停止數(shù)據(jù),停止與正處于停止?fàn)顟B(tài)的指令流相應(yīng)的指令解碼部分向調(diào)解器的指令發(fā)出要求的通知;功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在優(yōu)權(quán)存儲器中存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán);功能單元的1個接收指示指令流停止的指令,變更在自停止數(shù)據(jù)存儲器中存儲的自停止數(shù)據(jù),以使只有該指令所屬的指令流停止。
根據(jù)這種構(gòu)成,由于根據(jù)所述優(yōu)先權(quán)決定各功能單元中要發(fā)出的指令(指令解碼結(jié)果),所以可按優(yōu)先權(quán)軟式調(diào)整多個指令流之間負(fù)荷的分布,適當(dāng)實現(xiàn)各指令流必要的處理性能,并能達到提高整體處理效率的效果。
其中,所述存儲器還存儲可依據(jù)指令設(shè)定、表示停止還是執(zhí)行各指令流的指令流的標(biāo)記群;所述控制器也可配備執(zhí)行所述決定的調(diào)解器;和在設(shè)定表示停止的標(biāo)志的情況下,排除與該標(biāo)志對應(yīng)的指令流的指令發(fā)出要求,根據(jù)進行的所述決定,停止該指令流的停止器。
依據(jù)這種構(gòu)成,在指令流處于其執(zhí)行過程中的怠速狀態(tài)和等待狀態(tài)的情況下,也能使指令流處于停止?fàn)顟B(tài)。其結(jié)果,由于可以優(yōu)先執(zhí)行其他指令流,所以還能提高整體處理性能。
其中,所述控制器還可配有禁止器,在其中一個指令流發(fā)生需要緊急處理的情況下,暫時禁止向功能單元發(fā)出所述控制器決定要發(fā)出的屬于該指令流指令的指令。
依據(jù)這種構(gòu)成,對某些指令流(邏輯處理器)發(fā)生需要緊急處理的情況下,利用禁止器暫時禁止該邏輯處理器發(fā)出指令。即在需要的緊急處理移動完了前暫時禁止僅幾個周期的指令發(fā)出。因此,中斷處理的移動可高速化。而且,由于在由調(diào)解器決定要發(fā)出的指令后,禁止器能禁止該指令的發(fā)出,所以在由調(diào)解器決定需要緊急處理的發(fā)生時限后,禁止器也可有效地禁止。例如,雖然有需要緊急處理的發(fā)生時限,但在機器周期期間的慢點內(nèi)也能達到所謂的有效禁止效果。
其中的一個功能單元可構(gòu)成為能接收指示優(yōu)先權(quán)變更的專用指令,在存儲器所存儲的優(yōu)先權(quán)中,可變更該專用指令所屬的指令流的優(yōu)先權(quán)。
這里,所述專用指令由指示提高或降低優(yōu)先權(quán)的操作碼組成。
所述功能單元中的1個也可構(gòu)成為能在專用指令的解碼結(jié)果發(fā)出的情況下,判別發(fā)出該專用指令的指令解碼器,提高或降低與判別的指令解碼器對應(yīng)的指令流的優(yōu)先權(quán)。
按照這種構(gòu)成,在上述專用指令中,由于沒有必要表示用于指定指令流的ID和指令流的比特位置的操作碼,所以無論對于哪個指令流都可用上述指令簡單地變更自身指令流的優(yōu)先權(quán)。
此外,由于由所述1個功能單元變更該指令所屬的指令流的優(yōu)先權(quán),所以不會誤寫為不同指令流的優(yōu)先權(quán),可防止誤操作。例如,在RGB彩色圖象的不同顏色圖象數(shù)據(jù)中進行上述圖象處理的場合,即在3個指令流獨立并同時執(zhí)行圖象處理的1個程序的場合,可使信息隱蔽(程序沒有必要區(qū)別是RGB中的哪一個),并能保證指令流的獨立性,其結(jié)果提高了OS和系統(tǒng)整體的可靠度。
其中所述存儲器包括有讀出專用的第1字段的控制寄存器;所述功能單元的一個還可以構(gòu)成為,在發(fā)出讀出寄存器的讀出指令的解碼結(jié)果的情況下,判別發(fā)出該讀出指令的指令解碼器,將與該指令解碼器對應(yīng)的指令流的ID作為第1字段讀出數(shù)據(jù)在內(nèi)部總線上輸出。
按照此構(gòu)成,在3個指令流獨立并同時執(zhí)行上述那樣的1個程序的情況下,實際上可把1個程序假設(shè)為3個程序并行執(zhí)行的情況。分別假設(shè)的程序(或指令流)因分別在第1字段讀出,所以可容易地知道指令流自身的ID。
其中所述存儲器有控制寄存器;所述控制寄存器還用于存儲指令流固有數(shù)據(jù)的各指令流的個別字段和讀出專用的第2字段;所述功能單元的1個還可構(gòu)成為,在所述控制寄存器的讀出指令執(zhí)行期間,讀出各指令流的個別字段,同時,將與發(fā)出該讀出指令的指令解碼器對應(yīng)的指令流的固有數(shù)據(jù)作為第2字段讀出數(shù)據(jù)在內(nèi)部總線上輸出。
按照這種構(gòu)成,上述假設(shè)的程序(或指令流)因在第2字段讀出,所以可容易地知道自身的優(yōu)先權(quán)。
其中所述存儲器有存儲各指令流優(yōu)先權(quán)的優(yōu)先權(quán)字段;所述優(yōu)先權(quán)字段由表示指令流執(zhí)行模式的其他優(yōu)先權(quán)的小字段組成;所述功能單元的1個還可構(gòu)成為,在專用指令解碼結(jié)果發(fā)出的情況下,判別發(fā)出該專用指令的指令解碼器,提高或降低與判別的指令解碼器對應(yīng)的指令流優(yōu)先權(quán)字段內(nèi)當(dāng)前執(zhí)行模式的小字段的優(yōu)先權(quán)。
依據(jù)此構(gòu)成,執(zhí)行模式,比如用戶程序模式和特定觀察程序模式中可設(shè)定獨立的優(yōu)先權(quán),在向其他模式移動復(fù)歸的情況下可按原樣存儲原來的優(yōu)先權(quán)。
其中,多程序流程同時處理器還可包括功能單元中的1個開始執(zhí)行特定指令時,檢測是哪個指令解碼器發(fā)出了該特定指令的解碼結(jié)果的特定指令檢測器;和在檢測特定指令開始執(zhí)行之時,在預(yù)先確定的優(yōu)先權(quán)期間暫時地變更與發(fā)出該特定指令的指令解碼器對應(yīng)的指令流優(yōu)先權(quán),使其指令流的優(yōu)先權(quán)變得比其他指令流的優(yōu)先權(quán)高的暫時變更器。
按此構(gòu)成,由于暫時變更器暫時變更優(yōu)先權(quán),可保證指令流中的特定指令作為先頭的指令列,并保證在連續(xù)周期內(nèi)執(zhí)行。
其中,多程序流程同時處理器還包括存儲表示各指令流中的其他指令流是否處于要排他的停止?fàn)顟B(tài)的排他停止數(shù)據(jù)的排他停止數(shù)據(jù)存儲器;所述停止器還可構(gòu)成為,利用所述排他停止數(shù)據(jù),停止與正處于停止?fàn)顟B(tài)的指令流對應(yīng)的指令解碼部分向調(diào)解器的指令發(fā)出要求的通知。
依據(jù)此構(gòu)成,可強制停止把某些指令流作為其他指令流的處理。因此,可在大范圍內(nèi)進行指令流之間的處理性能的調(diào)整。
此外,實現(xiàn)上述目的的多程序流程同時處理器為同時并獨立并行地執(zhí)行多程序流程同時處理器,它包括暫時存儲所述多個指令流的指令超高速緩沖存儲器;與所述多個指令流對應(yīng)地設(shè)置,提取來自指令超高速緩沖存儲器的指令流指令的多個指令提取器;指定所述多個指令流的各優(yōu)先權(quán)的優(yōu)先權(quán)指定器;在出現(xiàn)來自2個以上的指令超高速緩沖存儲器有同時指令提取要求的情況下,根據(jù)所述優(yōu)先權(quán)控制電路的優(yōu)先權(quán),調(diào)解指令提取要求的指令提取控制器。
依據(jù)此構(gòu)成,由于對指令超高速緩沖存儲器中來自多個指令提取器的指令提取要求有爭用的情況下按優(yōu)先權(quán)進行調(diào)解,所以多程序流程同時處理器的上游處理中,可達到動態(tài)調(diào)整各指令流處理性能的效果。
此外,實現(xiàn)上述目的的多程序流程同時處理器具有執(zhí)行指令的多個功能單元;從指令超高速緩沖存儲器提取并解碼指令,指定要執(zhí)行該指令的功能單元,輸出指令發(fā)出要求的多個指令解碼部分;有與指令解碼部分?jǐn)?shù)量相同的寄存器組;是同時且獨立地執(zhí)行與指令解碼部分?jǐn)?shù)量相同的多個指令流的多程序流程同時處理器,它包括存儲依據(jù)指令流中的指令在各指令流中設(shè)定的指令流優(yōu)先權(quán)的存儲器;對于多個指令流的共有資源,在兩個以上的指令流同時爭用的情況下,根據(jù)所述優(yōu)先權(quán)調(diào)解的控制器;對所述共有資源的爭用為對一個功能單元有來自兩個以上的指令解碼部分的指令發(fā)出要求的爭用、對指令超高速緩沖存儲器有來自兩個以上的指令解碼部分的指令提取要求的爭用、對一個寄存器組有來自兩個以上的功能單元的處理要求的爭用的其中之一。
依據(jù)此構(gòu)成,對指令流的共有資源有來自多個指令流處理要求的爭用情況下,由于按優(yōu)先權(quán)進行調(diào)解,所以可以達到軟式調(diào)整各指令流處理性能的效果。
從本發(fā)明的實施例及其附圖中,可進一步說明本發(fā)明的這些和其他目的、優(yōu)點和特征。其中
圖1是表示現(xiàn)有的多程序流程同時處理器的構(gòu)成框圖。
圖2是表示本發(fā)明實施例的多程序流程同時處理器的構(gòu)成框圖。
圖3是表示本發(fā)明實施例中指令流控制器的優(yōu)先順序指定寄存器的說明圖。
圖4是表示上述實施例中指令流控制器的優(yōu)先順序指定寄存器的低位2比特的說明圖。
圖5是表示上述實施例中指令流控制器的優(yōu)先順序指定寄存器的高位1比特的說明圖。
圖6是表示上述實施例中指令流控制器的內(nèi)部中斷寄存器的構(gòu)成圖。
圖7是表示上述實施例中指令流控制器的隔斷停止寄存器的構(gòu)成圖。
圖8是表示上述實施例中指令發(fā)出判斷部分的詳細(xì)構(gòu)成例的框圖。
圖9是表示上述實施例中指令發(fā)出調(diào)解部分的詳細(xì)構(gòu)成例的框圖。
圖10A~圖10C是表示上述實施例中優(yōu)先判定部分的控制邏輯的說明框圖。
圖11是表示上述實施例中指令發(fā)出禁止部分的詳細(xì)構(gòu)成例的框圖。
圖12是表示功能單元專用指令及控制寄存器的讀出指令的執(zhí)行內(nèi)容的說明圖。
圖13是表示優(yōu)先順序控制部分的詳細(xì)構(gòu)成框圖。
圖14是表示連續(xù)循環(huán)優(yōu)先部分內(nèi)的選擇器中輸入的選擇信號與輸出值關(guān)系的說明圖。
圖15是表示本發(fā)明其他實施例的多程序流程同時處理器的框圖。
具體實施例方式
圖2是表示本發(fā)明實施例的多程序流程同時處理器的主要部分的構(gòu)成框圖。
本多程序流程同時處理器具有指令解碼部分1~3、功能單元A20、功能單元B21、功能單元C22、功能單元D23、指令發(fā)出判斷部分30、指令發(fā)出調(diào)解部分40、指令發(fā)出禁止部分50、優(yōu)先順序控制部分60和指令選擇部分70,被構(gòu)成為能相應(yīng)于邏輯處理器的執(zhí)行狀態(tài)和指令流的優(yōu)先權(quán)及外部因素調(diào)解向各功能單元發(fā)出的指令。
并且,本多程序流程同時處理器雖然配有圖1所示的指令超高速緩沖存儲器、指令提取單元、寄存器文件等,但在圖2中省略了與現(xiàn)有技術(shù)例相同的部分。此外,為方便說明在本實施例中,各指令解碼部分對每1指令流解碼1指令,并且1次只發(fā)出1個指令。
圖2中,指令解碼部分1~3解碼各個的指令流的指令,根據(jù)解碼結(jié)果,向指令發(fā)出解碼部分30輸出指令發(fā)出要求,向指令選擇部分70輸出指令內(nèi)容(執(zhí)行等)。其中,指令發(fā)出要求包括要求有指令發(fā)出的標(biāo)記(以下稱為標(biāo)記),和包含顯示執(zhí)行該指令的功能單元的種類(以下稱為功能序號)的信息。由于獨立解碼指令流,所以指令解碼部分1~3與上述各個的邏輯處理器相對應(yīng)。本實施例中,由于1個物理處理程序中內(nèi)裝3個邏輯處理器,所以設(shè)有3個指令解碼部分。以后,為相區(qū)別,把與指令解碼部分1~3對應(yīng)的邏輯處理器稱為邏輯處理器1~3。相應(yīng)地,與邏輯處理器1~3相應(yīng)的指令流被稱為指令流1~3。
功能單元A20、B21、C22、D23(以下稱為功能單元A、B、C、D)通過指令選擇部分70接收從指令解碼部分1~3發(fā)出的指令(解碼結(jié)果),并執(zhí)行該指令,即進行數(shù)據(jù)存取處理和運算處理等。為容易理解,例示了各功能單元的功能完全相同的處理內(nèi)容。
也就是說,功能單元A是處理存儲器存取指令的寄存存儲單元,功能單元B是處理整數(shù)運算的整數(shù)運算單元,功能單元C是進行浮動小數(shù)點的加減運算和整數(shù)與浮動小數(shù)點之間的變換的浮動小數(shù)點單元,功能單元D是進行浮動小數(shù)點的乘除運算的浮動小數(shù)點單元。并且,本實施例中,作為整數(shù)運算的一個處理內(nèi)容,功能單元B有處理與優(yōu)先權(quán)設(shè)定有關(guān)的指令的功能。這些功能單元與為邏輯處理器1~3的構(gòu)成部分的邏輯處理器一一對應(yīng),并且也可共用邏輯處理器1~3。此外,按照是否在指令處理過程中,各功能單元把能接收指令的狀態(tài)(以下簡單稱為ready)或不能接收的狀態(tài)(以下簡單稱為not ready)通知給指令發(fā)出判斷部分30。
指令發(fā)出判斷部分30接收來自指令解碼部分1~3的指令發(fā)出要求(上述要求標(biāo)記和功能單元序號),判斷先發(fā)出指令的功能單元,并且接收表示各功能單元是否ready的通知,和接收來自優(yōu)先順序控制部分60的表示各邏輯處理器是處于停止?fàn)顟B(tài)還是處于執(zhí)行狀態(tài)的通知,判斷是否可對各功能單元A~D發(fā)出指令。
在判斷可對1個功能單元發(fā)出時存在有多個指令發(fā)出要求的爭用的情況下,指令發(fā)出調(diào)解部分40按照優(yōu)先順序控制部分60中指定的各邏輯處理器的優(yōu)先權(quán),調(diào)解多個指令發(fā)出要求,決定一個要發(fā)出的指令。
按照指令發(fā)出調(diào)解部分40的調(diào)解結(jié)果,指令發(fā)出禁止部分50最終判斷是否發(fā)出該指令,判斷的結(jié)果在指令選擇部分70中指示要發(fā)出的指令。具體地說,在需要在各邏輯處理器中進行緊急處理的情況下,對于該邏輯處理器的指令流的指令暫時禁止發(fā)出,不在這樣的情況下,就按指令選擇部分70中指示發(fā)出指令。由于指令發(fā)出禁止部分50暫時禁止著指令的發(fā)出,在發(fā)生由指令發(fā)出判斷部分30及指令發(fā)出調(diào)解部分40處理后需要上述緊急處理的情況下,這就是把它作為最優(yōu)先的緣故。指令發(fā)出禁止部分50設(shè)置在指令調(diào)解部分40之后,把從外部中斷的發(fā)生時間至禁止指令發(fā)出時的延遲時間抑制到最小。
優(yōu)先順序控制部分60進行各邏輯處理器的優(yōu)先權(quán)管理,以及指示各邏輯處理器處于執(zhí)行狀態(tài)還是停止?fàn)顟B(tài)的信息管理,向指令發(fā)出調(diào)解部分40通知上述優(yōu)先權(quán),向指令發(fā)出判斷部分30通知是否處于上述執(zhí)行狀態(tài)。而且,在特定的指令執(zhí)行時,優(yōu)先順序控制部分60具有在預(yù)定數(shù)的連續(xù)循環(huán)期間優(yōu)先進行該邏輯處理器的功能(以下稱為連續(xù)循環(huán)優(yōu)先功能)。作為上述優(yōu)先權(quán)及是否示出執(zhí)行狀態(tài)的管理,優(yōu)先順序控制部分60配有3個控制寄存器即優(yōu)先順序指定寄存器、內(nèi)部中斷寄存器、排他寄存器。這些寄存器依據(jù)指令流中的指令設(shè)定其值。
指令選擇部分70根據(jù)來自指令禁止部分50的發(fā)出源的指令解碼部分及指示先發(fā)出的功能單元的指令發(fā)出指示,向功能單元A~D發(fā)出指令解碼部分1~3的解碼指令(操作等)。
<優(yōu)先順序控制部分60優(yōu)先順序指定寄存器>
圖3是表示裝在優(yōu)先順序控制部分60中的優(yōu)先順序指定寄存器(以下稱為PRI寄存器)的比特構(gòu)成的說明圖。
圖中,PRI寄存器有MYID、PR13、PR12、PR11、MYPRI的各字段,存儲著指示各邏輯處理器的優(yōu)先順序及是否處于停止?fàn)顟B(tài)的信息。
MYID字段為在邏輯處理器中執(zhí)行本PRI寄存器的讀出指令時指示執(zhí)行該讀出指令的邏輯處理器的ID字段。例如,在邏輯處理器3中執(zhí)行該讀出指令的情況下,就讀出指示邏輯處理器3的ID(比如100)。
PR13字段為邏輯處理器3的優(yōu)先順序及指示是否處于停止?fàn)顟B(tài)的字段。
PR12、PR11字段為各個邏輯處理器2、1中與PR13相同的字段。
MYPRI字段為邏輯處理器中執(zhí)行本PRI寄存器的讀出指令時指示執(zhí)行該讀出指令的邏輯處理器優(yōu)先順序的字段。例如,在邏輯處理器1中執(zhí)行該讀出指令的情況下,在MYPRI字段中復(fù)制并讀出PR11字段的內(nèi)容。
圖4是表示PRI寄存器中PR13~PR11字段各個的低位2比特分配的說明圖。圖中把PR13~1簡略為PRIx,在[ ]內(nèi)附記著字段內(nèi)的比特位置。但是,x表示邏輯處理器序號(或線序號)。
圖中PRIx[10]表示低(lowest)、中(middle)、高(highest)3個級別的優(yōu)先順序。由于用2比特表示3個級別的優(yōu)先順序,所以就可能分別把PRIx[1]設(shè)定為監(jiān)督程序方式,把PRIx
設(shè)定為用戶程序方式。這種優(yōu)先順序的設(shè)定根據(jù)下面表示的專用指令(存儲表示)由功能單元B進行。
〖inc pri〗此指令提高優(yōu)先順序,即在監(jiān)督程序方式中把PRIx[1]設(shè)定為1、在用戶程序方式中把PRIx
設(shè)定為1。
〖dec pri〗此指令降低優(yōu)先順序,即在監(jiān)督程序方式中把PRIx[1]設(shè)定為0、在用戶程序方式中把PRIx
設(shè)定為0。
這些指令與通常寄存器之間的數(shù)據(jù)傳送指令不同,不需要操作數(shù),由于僅為操作碼的指令,所以無論對哪一個指令流都可作為可采用的相同指令。例如,存在從1個程序中生成多個指令流、對各指令流承擔(dān)不同的數(shù)據(jù)進行并行處理的情況。
例如,按照這些指令及圖中的比特分配,即使在由用戶程序方式向監(jiān)督程序方式移動后變更優(yōu)先順序的情況下,仍存儲用戶程序方式時恢復(fù)以前的優(yōu)先權(quán)。例如,在用戶程序方式中發(fā)生中斷,即使暫時向監(jiān)督程序方式移動,從中斷處理返回用戶程序方式前,通過向源返回PRIx[1],存儲用戶程序方式中的優(yōu)先順序。
圖5是表示優(yōu)先順序的PRI寄存器中的PR13~1字段各個高位1比特分配的說明圖。
圖中PRIx[2]表示邏輯處理器是處于執(zhí)行狀態(tài)或處于停止?fàn)顟B(tài)。從執(zhí)行狀態(tài)變?yōu)橥V範(fàn)顟B(tài)的設(shè)定根據(jù)下面表示的專用指令(存儲表示)由功能單元B進行。
〖halt〗此指令使發(fā)出源的邏輯處理器進入停止?fàn)顟B(tài)。也就是把該邏輯處理器的PRIx[2]設(shè)定為1。并且,把此指令的停止?fàn)顟B(tài)與由其他指令的停止?fàn)顟B(tài)進行區(qū)別時就稱為自停止?fàn)顟B(tài)。
自停止?fàn)顟B(tài)的解除(恢復(fù)執(zhí)行狀態(tài))不依據(jù)指令,而是依據(jù)對該邏輯處理器的中斷輸入。即在多程序流程同時處理器中由于中斷處理是在個別邏輯處理器中發(fā)生的,所以對自停止?fàn)顟B(tài)中某些邏輯處理器的中斷(外部中斷、內(nèi)部中斷等)可在發(fā)生時解除。
<優(yōu)先順序控制部分60內(nèi)部中斷寄存器>
圖6是表示內(nèi)裝在優(yōu)先順序控制部分60的內(nèi)部中斷寄存器(以下稱為IR寄存器)的比特構(gòu)成說明圖。其中,所謂的內(nèi)部中斷是邏輯處理器之間的中斷,也稱為從一個邏輯處理器向其他邏輯處理器的中斷。由于進行內(nèi)部中斷的邏輯處理器在自停止?fàn)顟B(tài)情況下可解除自停止?fàn)顟B(tài),所以可使用在比如邏輯處理器之間的同步處理和同步通信的情況。
圖中所示的IR寄存器有MYID字段和IR3~IR1比特、是用于對其他邏輯處理器要求內(nèi)部中斷的寄存器。
由于MYID字段與上述圖5所述相同,所以不再說明。
IR3~IR1比特是對邏輯處理器3要求其他邏輯處理器內(nèi)部中斷的比特。此比特如果為ON,那么按照接收該中斷要求的指令解碼部分3的控制,在把PR3[2]設(shè)定為0的同時,IR3返回OFF。其中,利用把PR3[2]設(shè)定為0,可解除邏輯處理器3的自停止?fàn)顟B(tài)。
IR2、IR1比特是對各個邏輯處理器2、1要求中斷的比特,與IR3比特相同。
IR3~IR1比特的設(shè)定根據(jù)通常的寄存器傳送指令進行。在通常的寄存器傳送指令中由于有在IR3~IR1比特位置上直接中斷的需要,所以對各指令流有必要區(qū)別是自身的邏輯處理器ID還是中斷前的邏輯處理器ID,通過讀出上述的MYID字段,對各指令流就能夠進行邏輯處理器ID的操作。
<優(yōu)先順序控制部分60排他停止寄存器>
圖7是表示內(nèi)裝在優(yōu)先順序控制部分60中的排他停止寄存器(以下稱為EXCL寄存器)的比特構(gòu)成說明圖。其中,把除某1個處理程序之外的邏輯處理器停止稱為排他停止。但是,2個以上的邏輯處理器不能作為同時的排他停止?fàn)顟B(tài)。
圖中所示的EXCL寄存器是有MYID字段和EXCL3~EXCL1的各比特、僅使1個邏輯處理器處于執(zhí)行狀態(tài)、對其他邏輯處理器要求停止?fàn)顟B(tài)的寄存器。
由于MYID字段與上述圖3和圖6相同,所以不再說明。
EXCL3比特表示該比特ON時邏輯處理器3執(zhí)行排他停止。這種情況下,僅邏輯處理器3執(zhí)行,使邏輯處理器2和邏輯處理器1變?yōu)橥V範(fàn)顟B(tài)。
EXCL2、EXCL1的各比特也是同樣的。這些EXCL3~EXCL1的各比特根據(jù)下面表示的專用指令(存儲表示)由功能單元B進行設(shè)定和解除。
〖excsv〗該指令是對發(fā)出源的邏輯處理器中的排他停止的設(shè)定即是停止發(fā)出源以外的所有邏輯處理器的指令。例如,邏輯處理器1執(zhí)行該指令的情況下,把EXCL1設(shè)定為ON,把EXCL2和EXCL3設(shè)定為OFF。此外,即便假設(shè)多個邏輯處理器同時發(fā)出此指令,也不會停止所有邏輯處理器的操作。其原因是,因僅在功能單元B中執(zhí)行該指令,所以用執(zhí)行時間限定1個。
〖retex〗此指令是對發(fā)出源的邏輯處理器的排他停止的解除、即按源狀態(tài)恢復(fù)其他所有邏輯處理器的指令。例如,邏輯處理器1執(zhí)行該指令的情況下,把EXCL1設(shè)定為OFF。
此指令也和上述incpr指令、decpr指令一樣不需要操作數(shù),無論對于哪一個指令流都可使用相同的指令。
上述PRI寄存器、IR寄存器、EXCL寄存器的3個控制寄存器分別是1個物理的實體,由于各寄存器的MYID字段和PRI寄存器的MYPRI字段是顯示自邏輯處理器自身的值,所以可看到由各邏輯處理器中與邏輯處理器不同的寄存器的存在。此外,由于這樣的控制寄存器的尋址都與邏輯處理器相同,即使執(zhí)行相同的指令,也能看到各個的自邏輯處理器自身的ID和優(yōu)先順序。
<指令發(fā)出判斷部分30>
圖8是表示圖2的指令發(fā)出部分30的詳細(xì)構(gòu)成例的框圖。該指令發(fā)出判斷部分30配有停止判斷部分310、分配部分320、發(fā)出判斷部分330。
停止判斷部分310配有與指令解碼部分1~3分別對應(yīng)的3組NOR電路和AND電路。各組NOR電路和AND電路從指令解碼部分接收上述指令發(fā)出要求(要求標(biāo)記和功能單元序號),在各邏輯處理器中變?yōu)樽酝V範(fàn)顟B(tài)(PRI寄存器的PRIx[2]為ON)或變?yōu)榘磁潘V沟耐V範(fàn)顟B(tài)(EXCLx比特為ON)的情況下,把要求的標(biāo)記信號(以下稱為要求有無信號)強制OFF,并且在執(zhí)行狀態(tài)中利用排他停止未停止的情況下,照樣輸出要求的有無信號。
分配部分320配有與指令解碼部分1~3分別對應(yīng)的3個信號分離器。各信號分離器通過停止判斷部分310把輸入的要求有無信號、根據(jù)功能單元序號的該指令分配給執(zhí)行該指令的功能單元。結(jié)果,輸出各功能單元中來自各指令解碼部分的要求有無信號。
發(fā)出判斷部分330配有與功能單元A~D分別對應(yīng)的4組AND電路群。各AND電路群將分配部分320分配的要求有無信號、在上述功能單元為ready狀態(tài)的情況下,照樣輸出,在not ready狀態(tài)的情況下,進行OFF輸出。其中,在顯示有ready狀態(tài)的ready~n信號(n為A、B、C或D)表示對應(yīng)功能單元接收指令狀態(tài)為來自與邏輯處理器1~3對應(yīng)的功能單元x的輸出信號。例如,對于來自指令發(fā)出判斷部分330的輸出信號(1A~3A、1B~3B、1C~3C、1D~3D),無論哪一個邏輯“1”時就有效(能夠發(fā)出指令),例如,輸出信號1A表示在指令解碼部分1先發(fā)出的發(fā)出源是功能單元A,輸出信號3B表示在指令解碼部分3中先發(fā)出的發(fā)出源是功能單元B。
<指令發(fā)出調(diào)解部分40>
圖9是表示圖2的指令發(fā)出調(diào)解部分40的詳細(xì)構(gòu)成例的框圖。該指令發(fā)出調(diào)解部分40配有分別對應(yīng)功能單元A~D的調(diào)解部分40A~40D。由于各調(diào)解部分進行同樣的工作,所以僅以調(diào)解部分40A為代表進行說明。調(diào)解部分40A配有優(yōu)先順序判定部分41A和判定輔助部分42A。
優(yōu)先順序判定部分41A接收由發(fā)出判斷部分330輸出的信號1A、2A、3A,和各邏輯處理器的優(yōu)先順序PRI1[10]、PRI2[10]、PRI3[10],將有效的要求有無信號中優(yōu)先順序最高的輸出。圖10A~圖10C示出優(yōu)先順序判定部分41A中為實現(xiàn)這種功能的控制原理圖。
圖10A中,表示在PRI寄存器中的PRI1、PRI2、PRI3字段指定邏輯處理器1~3的優(yōu)先順序為PRI1>PRI2>PRI3的情況,即表示優(yōu)先等級中(PRI1、PRI2、PRI3)=(高、中、低)的情況的輸入1A、2A、3A,輸出1A’、2A’、3A’。此外,圖中雖未示出,但即使在優(yōu)先順序為PR1>PR3>PR2的情況下、PR2>PR1>PR3的情況下、PR2>PR3>PR1的情況下、PR3>PR1>PR2的情況下,還是PR3>PR2>PR1的情況下,由于僅讀出更換其中的信號名就變?yōu)橥耆嗤目刂圃恚允÷哉f明。
圖10B中,表示優(yōu)先順序為PRI1=PRI2>PRI3的情況,即表示優(yōu)先等級中(PRI1、PRI2、PRI3)=(高、高、中)、(高、高、低)或(中、中、低)的情況。圖中雖未示出,但即使在優(yōu)先順序為PR1=PR3>PR2的情況下、PR2=PR1>PR3的情況下、PR2=PR3>PR1的情況下、PR3=PR1>PR2的情況下,還是PR3=PR2>PR1的情況下,由于僅讀出更換其中的信號名就變?yōu)橥耆嗤目刂圃恚允÷哉f明。此外,象圖中所加的波浪線的輸出信號、輸入信號中的優(yōu)先順序最高,并且在有效信號為2個以上的情況下,優(yōu)先順序判定部分41A以“1”作為其輸出。
圖10C中,表示優(yōu)先順序為PRI1>PRI2=PRI3的情況,即(PRI1、PRI2、PRI3)=(高、中、中)、(高、低、低)或(中、低、低)的情況。此外,圖中雖未示出,但即使在優(yōu)先順序為PR1>PR3=PR2的情況下、PR2>PR1=PR3的情況下、PR2>PR3=PR1的情況下、PR3>PR1=PR2的情況下,還是PR3>PR2=PR1的情況下,由于僅讀出更換其中的信號名就變?yōu)橥耆嗤目刂圃恚允÷哉f明。
此外,優(yōu)先順序判定部分41A在優(yōu)先順序為PRI1=PRI2=PRI3的情況、有效信號為2個以上的情況下,以“1”作為其輸出的有效信號。
判定輔助部分42A在把PRI寄存器中的優(yōu)先順序設(shè)定為相同邏輯處理程序的同時輸出指令發(fā)出要求的情況下,即優(yōu)先順序判定部分41A的輸出(1A’、2A’、3A’)中“1”為2個以上的情況下,為了無偏向地調(diào)整邏輯處理器之間的指令發(fā)出,所以其中有“1”就判定。例如,判定輔助部分42A進行(1)用各循環(huán)(1次循環(huán)或數(shù)次循環(huán))改變?yōu)?的邏輯處理器;(2)以前能發(fā)出指令的邏輯處理器優(yōu)先;(3)確定固定其中一個。此外,能把這些進行替換更好。
<指令發(fā)出禁止部分50>
圖11是表示圖2的指令發(fā)出禁止部分50的詳細(xì)構(gòu)成例的框圖。該指令發(fā)出禁止部分50配有分別與功能單元A~D對應(yīng)的禁止部分50A~50D、和發(fā)出通知部分55。由于各禁止部分進行相同的操作,所以這里以禁止部分50A為代表進行說明。
禁止部分50A,作為要求的緊急處理,包括在外部中斷要求、內(nèi)部中斷要求、超高速緩沖存儲器錯誤和存儲器存取誤差等的存取例外、收集指令等發(fā)生的情況下,檢測其發(fā)生源的邏輯處理器ID和控制該邏輯處理器1循環(huán)期間禁止指令發(fā)出的禁止控制部分51A;依據(jù)禁止控制部分51A的指示選通調(diào)解部分40A的輸出信號(1AA~3AA)按指令選擇部分70的結(jié)果輸出指令發(fā)出指示(1AAA~3AAA)的3個AND電路;和通知對應(yīng)功能單元A的指令發(fā)出的OR電路。
發(fā)出通知部分55由對應(yīng)指令解碼部分1~3的3個OR電路組成,各自輸出來自禁止部分51A~51D的各邏輯處理器的指令發(fā)出指示,輸出發(fā)出通知,通知可發(fā)出對應(yīng)指令解碼部分中發(fā)出的一個指令。
<功能單元B>
功能單元B構(gòu)成為除執(zhí)行整數(shù)運算指令外,還執(zhí)行上述各種專用指令和讀出PRI寄存器、EXCL寄存器、IR寄存器的指令。
再有,對于上述專用指令,本實施例中雖由功能單元B執(zhí)行,但也可由構(gòu)成的其他功能單元執(zhí)行。
圖12是表示用功能單元B執(zhí)行上述專用指令和讀出指令的執(zhí)行內(nèi)容的說明圖。圖中,[x]表示該指令的發(fā)出源的邏輯處理器序號,[y]表示該指令的發(fā)出源以外的邏輯處理器ID。這個邏輯處理器序號由來自禁止部分50B的輸出信號(圖11的1BBB~3BBB)通知功能單元B。
如圖所示的功能單元B,對于指令〖inc pri〗,在監(jiān)督程序方式中把PRI寄存器的PRIx[1]比特設(shè)定為1,在用戶程序方式中把PRIx
比特設(shè)定為1。
對于指令〖dec pri〗,在監(jiān)督程序方式中把PRIx[1]比特設(shè)定為0,在用戶程序方式中把PRIx
比特設(shè)定為0。
對于指令〖halt〗,把該邏輯處理器的PRI寄存器的PRIx[2]比特設(shè)定為1。
對于指令〖excsv〗,把EXCL寄存器的EXCLx比特設(shè)定為1,把EXCLy設(shè)定為0。例如,邏輯處理器2在本指令的發(fā)出源的情況下,功能單元B把EXCL2比特設(shè)定為1,把EXCL3比特和EXCL1比特設(shè)定為0。
對于指令〖retex〗,把EXCLx比特設(shè)定為0。
這樣的上述專用指令還有相同的指令,根據(jù)該指令發(fā)出源的邏輯處理器進行寄存器中不同的比特的操作。
此外,對于圖12所示的各mov指令,功能單元B按下述執(zhí)行。
〖mov PRI,RO〗指令為把PRI寄存器內(nèi)容向RO寄存器傳送的指令。對該指令功能單元B按下面的指令執(zhí)行。
對PRI寄存器中的MYID字段(=PRI[3129]),將該指令的發(fā)出源的邏輯處理器ID寫入RO[3129]的各比特。
對于PRI寄存器中的PRI[119](=PRI3,PRI2,PRI1字段)的各比特,讀出該數(shù)據(jù)后傳送給RO寄存器中的[113]。
對于PRI[20](=MYPI字段),將與PRI3、PRI2、PRI1字段中該指令發(fā)出源的邏輯處理器ID對應(yīng)的PRIx寫入RO[3129]的各比特。
〖mov IR,RO〗指令為向RO寄存器傳送IR寄存器內(nèi)容的指令。對于該指令,功能單元B依據(jù)IR寄存器中的MYPRI字段(=IR[3129])在RO[3129]的各比特中寫入該指令發(fā)出源的邏輯處理器ID。對于IR[20](=IR3,IR2,IR1比特)的各比特,讀出其值后寫入RO[20]的各比特中。
〖mov EXCL,RO〗指令為向RO寄存器傳送的EXCL寄存器內(nèi)容的指令。按照此指令的功能單元B的執(zhí)行內(nèi)容,與上述〖mov IR,RO〗指令相比,除傳送源為IR寄存器外均相同。
通過執(zhí)行上述的讀出指令,各邏輯處理器可獲得由讀出的MYID字段的自身邏輯處理器ID的值、其他邏輯處理器的狀態(tài)(優(yōu)先狀態(tài)、自停止?fàn)顟B(tài)、排他停止?fàn)顟B(tài)等)。
<優(yōu)先順序控制部分60的詳細(xì)構(gòu)成>
圖13是表示優(yōu)先順序控制部分60的詳細(xì)構(gòu)成的框圖。
優(yōu)先順序控制部分60配有PRI寄存器61、IR寄存器62、EXCL寄存器63、選擇器64、連續(xù)循環(huán)優(yōu)先部分69。
由于在圖3、圖6、圖7中概要說明了PRI寄存器61、IR寄存器62、EXCL寄存器63的比特構(gòu)成,所以這里說明其硬件構(gòu)成。
這些寄存器61~63與本多程序流程同時處理器的內(nèi)部總線連接,通過內(nèi)部總線在功能單元B中進行讀出和寫入。
這些寄存器的高位3比特(MYID字段)沒有存儲數(shù)據(jù)的功能,寄存器的讀出指令執(zhí)行時,向直通的內(nèi)部總線輸出邏輯處理器ID。這時的邏輯處理器ID值由來自禁止部分5013的輸出信號(圖11的1BBB~3BBB)通知。
此外,PRI寄存器62的低位3比特在PRI寄存器的讀出指令執(zhí)行時向直通的內(nèi)部總線輸出選擇器64的輸出。
選擇器64在PRI寄存器的讀出指令執(zhí)行時,在PRI寄存器62中的PRI3,PRI2,PRI1的字段內(nèi),選擇與其指令發(fā)出源的邏輯處理器ID對應(yīng)的ID后,經(jīng)IR寄存器62中的[MYPRI]字段輸出給內(nèi)部總線。
連續(xù)循環(huán)優(yōu)先部分69在特定的指令列執(zhí)行期間具有使其優(yōu)先權(quán)暫時變高的功能。其中,比如說執(zhí)行與其他邏輯處理器共享資源的讀出和寫入等情況下,特定的指令列是指有必要用連續(xù)循環(huán)執(zhí)行的指令列。
下面,舉一個特定指令列的實例。但是,指令是用助記憶符號顯示的。并且,下面是表示指令內(nèi)容的注釋。
LOOP級別aldstMEM[100].RO也稱為原子裝載啟動(Atomic LoaD STart)。向RO傳送存儲器(100號地址)的數(shù)據(jù)testRO若RO=0則把0特征位設(shè)定為1beqLOOP若零標(biāo)記為1則向級別LOOP分支store R1.MEM[100]向存儲器100號地址傳送寄存器R1的數(shù)據(jù)上述特定指令標(biāo)記讀出存儲器100號地址,如果讀出的數(shù)據(jù)為0,那么向存儲器100號地址寫入寄存器R1的數(shù)據(jù)。如果讀出的數(shù)據(jù)不為0,那么直到變?yōu)?后顯示重復(fù)讀出循環(huán)處理。該特定指令列有用連續(xù)循環(huán)執(zhí)行的必要,比如存在著把存儲器100號地址作為多個邏輯處理器的共享資源使用的情況。也就是說,其他邏輯處理器不必寫入更換存儲器100號地址。
為保證這樣的特定指令列用連續(xù)循環(huán)執(zhí)行,連續(xù)循環(huán)優(yōu)先部分69在用1個功能單元檢測上述特定指令列的先頭指令的執(zhí)行開始時,由該指令的執(zhí)行循環(huán)連續(xù)預(yù)定數(shù)的循環(huán)期間,因其指令發(fā)出源的邏輯處理器(指令流)的優(yōu)先順序也比其他邏輯處理器高,所以要暫時變更優(yōu)先順序控制部分60的優(yōu)先順序。
<連續(xù)循環(huán)優(yōu)先部分69>
連續(xù)循環(huán)優(yōu)先部分69配有圖13所示的特定指令檢測部分65、計數(shù)器66、比較器67、選擇器68。
圖中特定指令檢測部分65對特定指令列的先頭指令(以下稱為特定指令)執(zhí)行的開始進行檢測。上述特定指令列的實例中,可檢測作為特定指令的aldst指令。更具體地說,特定指令檢測部分65接收來自指令解碼部分1~3的特定指令解碼后的通知,接收特定指令的指令發(fā)出禁止部分50向其1個功能單元發(fā)出的通知,以共同接收兩通知作為特定指令執(zhí)行開始的檢測。
檢測特定指令執(zhí)行開始時,計數(shù)器66計數(shù)特定指令列的執(zhí)行中要求的循環(huán)數(shù)。上述實例中,由于對與aldst指令連接的3指令的執(zhí)行中要求的3次循環(huán)進行計數(shù),所以輸入檢測特定指令執(zhí)行開始時的初始值為3,直至降到0計數(shù)。因此,上述store R1,MEM[100]的執(zhí)行循環(huán)變?yōu)?。此外,在上述特定指令列進行循環(huán)處理的情況下,計數(shù)器66把每次檢測aldst指令從初始值3進行計數(shù)。
選擇器67判定計數(shù)器66的計數(shù)值是否與0一致。即判定是否處于特定指令列的連續(xù)循環(huán)中。
比較器68為6比特長的4輸入1輸出的比較器,用于連續(xù)循環(huán)期間暫時變更優(yōu)先順序。
圖14是表示選擇器68中輸入的選擇信號與輸出值關(guān)系的說明圖。比較器68的輸入值在圖中雖省略了,但卻為圖13所示的〖PRI[113](=PRI3[10]、PRI2[10]、PRI1[10]〗、〖110000〗、〖001100〗、〖000011〗的4個。
按圖,通常即未在連續(xù)循環(huán)期間的情況下(與計數(shù)值=0一致時),選擇器68是輸出PRI寄存器中PRI[13](=PRI3,2,1字段)內(nèi)指定的優(yōu)先順序。
在連續(xù)循環(huán)期間的情況下(與計數(shù)值=0不一致時),此時的特定指令的發(fā)出源在邏輯處理器3中若為[110000],在邏輯處理器2中若為
,在邏輯處理器1中若為
,那么選擇器68就輸出PRI[113](=PRI3’[10],PRI2’[10],PRI1’[10])。
因此連續(xù)循環(huán)期間中,特定指令的發(fā)出源在邏輯處理器的優(yōu)先順序變得暫時最高。
下面,說明對象上述那樣構(gòu)成的本實施例的多程序流程同時處理器的操作。
<優(yōu)先順序、自停止?fàn)顟B(tài)、排他狀態(tài)的設(shè)定操作>
本實施例的多程序流程同時處理器中,儲備有稱為專用指令的用于各指令流(邏輯處理器)優(yōu)先順序的設(shè)定·變更incpr指令和decpr指令、自停止halt指令、排他停止excsv指令和retex指令。這些專用指令在指令流的源程序中有必要預(yù)先適當(dāng)設(shè)定。
比如,提高程序中的優(yōu)先順序的各處理部分中,最好在該程序部分之前設(shè)定incpr指令、在該程序部分之后設(shè)定decpr指令為好。這樣設(shè)定的incpr指令和decpr指令利用功能單元B按下面那樣執(zhí)行。也就是說,依據(jù)邏輯處理器1~3的其中之一有發(fā)出源,功能單元B把與PRI寄存器對應(yīng)的PRx字段中在用戶程序方式時以PRIx
比特為對象設(shè)定為1或0,在監(jiān)督程序方式時以PRIx
為對象設(shè)定為1或0。因此,必須依據(jù)各邏輯處理器中的優(yōu)先順序,就可動態(tài)地變更。
此外,停止其他邏輯處理器僅進行自身的邏輯處理器的操作應(yīng)處理的程序部分中,變?yōu)樵谠摮绦虿糠智霸O(shè)定excsv指令,在該程序部分后設(shè)定retex指令。這些指令也利用功能單元B象上述那樣執(zhí)行。
相反地,優(yōu)先其他邏輯處理器停止自身的邏輯處理器的情況下,就變?yōu)樵O(shè)定halt指令。這個指令也用功能單元B執(zhí)行。但是,由于依據(jù)對該邏輯處理器中斷要求解除停止?fàn)顟B(tài),所以停止?fàn)顟B(tài)的邏輯處理器就有必要適當(dāng)輸入中斷要求。例如,邏輯處理器之間的內(nèi)部中斷依據(jù)IR寄存器。也就是說,發(fā)生中斷的邏輯處理器按事先通常的寄存器傳送指令讀取IR寄存器、PIR寄存器或EXCL寄存器后,讀取自身的MYID,并且因決定中斷前與邏輯處理器對應(yīng)的IRx比特,所以可由通常的傳送指令在IR寄存器中設(shè)定內(nèi)部中斷要求。
<整體操作>
例如,在輸出指令解碼部分1的解碼結(jié)果和對功能單元B的指令發(fā)出要求(要求標(biāo)記和功能單元B的序號)的情況下,在邏輯處理器1處于自停止?fàn)顟B(tài)或利用其他邏輯處理器的排他停止的停止?fàn)顟B(tài)的情況下,使根據(jù)指令發(fā)出判斷部分30內(nèi)的停止判斷部分310的要求標(biāo)記本身未變?yōu)闊o效的輸出。因此,其他邏輯處理器2和3可使用功能單元。
邏輯處理器1即使不處于自停止?fàn)顟B(tài),其他邏輯處理器也不處于排他停止的停止?fàn)顟B(tài)的情況下,指令發(fā)出判斷部分30內(nèi)的分配部分320就對功能單元B進行分配,并且如果功能單元B對邏輯處理器1處于ready狀態(tài),那么利用指令判斷部分330判斷為可發(fā)出;如果處于not ready狀態(tài)就判斷為不可發(fā)出。
接著,指令發(fā)出調(diào)解部分40接收來自指令發(fā)出判斷部分30的各功能單元的指令發(fā)出要求,采用來自優(yōu)先順序控制部分60的各邏輯處理器的優(yōu)先順序,確定功能單元中可發(fā)出的邏輯處理器。例如,對于功能單元B僅有來自指令解碼部分1的指令發(fā)出要求的輸出的情況下(圖9中1B~3B內(nèi)僅1B有效的情況),指令發(fā)出調(diào)解部分40使其指令發(fā)出要求有效(圖9中1BB~3BB內(nèi)僅1BB有效)。
例如,指令解碼部分1解碼對功能單元A的指令,指令解碼部分2解碼對功能單元B的指令,指令解碼部分3解碼對功能單元C的指令,并且,在所有功能單元處于ready狀態(tài)的情況下,對于指令發(fā)出調(diào)解部分40的3個指令發(fā)出要求均有效。
另一方面,指令解碼部分1對功能單元A的指令解碼,指令解碼部分2也對功能單元A的指令解碼的情況下(圖9中1A和2A同時有效的情況),由于不知哪一個指令不能發(fā)出,所以優(yōu)先順序判定部分41A由優(yōu)先順序控制部分60內(nèi)的寄存器判斷優(yōu)先順序,發(fā)出優(yōu)先順序較高的指令。假設(shè)出現(xiàn)邏輯處理器1和邏輯處理器2的優(yōu)先順序相同的情況,那么就依據(jù)判定輔助部分42A僅使其中一個指令發(fā)出要求有效。
還有,指令發(fā)出禁止部分50對于由指令發(fā)出調(diào)解部分40決定發(fā)出的指令,在出現(xiàn)邏輯處理器的其中之一需要緊急處理的情況下,禁止該邏輯處理器的指令發(fā)出。
指令發(fā)出判斷部分30和指令發(fā)出禁止部分50具有對任一指令發(fā)出要求由指令發(fā)出候補避開的功能,按下述理由分擔(dān)功能。
也就是說,對于明確快階段中指令不能接收的明確因素,在指令發(fā)出判斷部分30中,不發(fā)出和判斷不能接收的邏輯處理器的指令,用指令發(fā)出的候補避開,假如對于慢階段仍不明確的因素,在指令發(fā)出判斷部分30中,用指令發(fā)出的候補避開的話,則使能否發(fā)出指令的最終判斷緩慢,對邏輯處理器的頻率提高有影響。
例如,在按1循環(huán)進行從指令發(fā)出判斷至指令發(fā)出禁止的情況下,如果在循環(huán)的最后將不能發(fā)出指令的因素通知給指令發(fā)出判斷部分30,從那時起就有避開指令發(fā)出候補的必要。這種情況中必須使循環(huán)長度選取得很長,從而成為阻礙時鐘頻率提高的主要因素。其中,對于緩慢階段中仍不明確的指令發(fā)出禁止的因素,指令發(fā)出禁止部分50就禁止發(fā)出。當(dāng)然,在指令發(fā)出禁止部分50中某些邏輯處理器的指令發(fā)出被禁止的情況下,即使其以外的邏輯處理器的指令能夠發(fā)出,但不能代替該指令的發(fā)出。對已有的各功能單元A~D的所有發(fā)出指令進行1次擠入后的情況。
然后,指令選擇部分70,把指令解碼部分1~3中解碼的指令內(nèi)容和操作根據(jù)來自指令發(fā)出禁止部分50的指令發(fā)出指示(圖11中1AAA~3AAA、1BBB~3BBB、1CCC~3CCC、1DDD~3DDD),向功能單元A~D發(fā)出。
再有,本實施例中說明了邏輯處理器為3個、功能單元為4個的情況,當(dāng)然可以把這些數(shù)進行任意地變更。
此外,最好采用多個寄存器分擔(dān)PRI寄存器的內(nèi)容。例如,自停止用的各PRIx[2]比特和優(yōu)先順序用的各PRIx[10]字段最好用個別的寄存器。反過來,最好使PRI寄存器和RI寄存器及EXCL寄存器為這樣全部組合或部分組合為一體的寄存器。
還有,特定指令檢測部分65也可檢測特定指令的執(zhí)行開始,開始其指令的執(zhí)行,接收來自功能單元的通知。
本實施例中,展示在多個邏輯處理器對功能單元中指令發(fā)出有爭用的情況下采用本發(fā)明的實例,即使在功能單元以外,多個邏輯處理器若有共有資源也能采用。下面,說明其他實施例。
<其他實施例>
本實施例中,在其有共有多個邏輯處理器資源情況的調(diào)解中也能夠采用邏輯處理器之間的優(yōu)先順序,下面舉一實例。
圖15是表示本發(fā)明其他實施例的多程序流程同時處理器的構(gòu)成框圖。
本多程序流程同時處理器配有超高速緩沖存儲器100、指令解碼部分111~113、寄存器群131~133、指令提取控制部分140、指令發(fā)出控制部分150、優(yōu)先順序控制部分60、功能單元A20~D23、和寄存器控制部分170。與圖2相同序號的構(gòu)成要素因相同而不再說明,以不同點為中心進行說明。
圖15中,超高速緩沖存儲器100是生成指令流的源程序的超高速緩沖存儲器。
指令解碼部分111~113分別與圖2的指令解碼部分1~3相同,但接收指令提取部分140的控制點不同。
寄存器群131~133有分別由多個寄存器組成的寄存器字段,與指令解碼部分111~113一一對應(yīng)。因此,邏輯處理器1~3也一一對應(yīng)。
指令提取控制部分140與圖2所示的指令發(fā)出調(diào)解部分40和指令發(fā)出禁止部分50對應(yīng),除調(diào)解和禁止沒有指令發(fā)出要求的指令要求的爭用點不同外有相同的功能。也就是說,輸入來自優(yōu)先順序控制部分60的各邏輯處理器的優(yōu)先順序的指定等,在對應(yīng)超高速緩沖存儲器100的多個指令解碼部分出現(xiàn)同時指令提取要求的情況下,確定依據(jù)優(yōu)先順序的提取順序,此外,在停止特定的邏輯處理器執(zhí)行的情況下,停止來自其邏輯處理器指令解碼部分的指令提取。
指令發(fā)出控制部分150把圖2所示的指令發(fā)出判斷部分30、指令發(fā)出調(diào)解部分40、指令發(fā)出禁止部分50和指令選擇部分70作為1個構(gòu)成部件記述,因其有相同的功能而不再說明。
寄存器控制部分170相應(yīng)于圖2所示的指令發(fā)出判斷部分30和指令發(fā)出調(diào)解部分40,在沒有指令發(fā)出要求時除停止和調(diào)解寄存器處理要求的爭用方面不同外具有相同的功能。也就是說,輸入來自優(yōu)先順序控制部分60的各邏輯處理器的優(yōu)先順序的指定等,對上述寄存器組同時寫入多個功能單元的數(shù)據(jù)要求輸出的情況下,為依據(jù)優(yōu)先順序確定寫入順序的指令發(fā)出控制部分。
對于上述構(gòu)成的功能單元,無論是在邏輯處理器的爭用、對超高速緩沖存儲器的指令提取要求的爭用、還是對寄存器群的數(shù)據(jù)處理要求的爭用情況下,都能按優(yōu)先順序?qū)嵤┱{(diào)解和停止。
再有,上述實施例中,雖然多個指令流和邏輯處理器為3個,功能單元為4個,但并不在意該數(shù)的大小。
還有,優(yōu)先順序的級別雖是2比特3級別的,實際上幾個都行。此外,控制寄存器寬為32位,但不限于該比特寬度。
并且,多個邏輯處理器中同時發(fā)生分支的情況下,也可共有地址計算用的資源和超高速緩沖存儲器等,與其他實施例一樣能夠按優(yōu)先順序調(diào)解。
再有,上述實施例中,PRI寄存器中雖構(gòu)成有由專門指定的專用指令變更優(yōu)先順序,但在專用指令以外由硬件設(shè)定·變更也行。這種情況下,也可以利用預(yù)定各指令流的優(yōu)先順序的時限,或利用監(jiān)視指令流狀態(tài)的狀態(tài),通過觸發(fā)硬件的外部因素和內(nèi)部因素變更優(yōu)先順序。
此外,上述實施例中對于圖9所示的優(yōu)先順序判定部分41A內(nèi)2個或3個優(yōu)先順序相同的情況下,雖可使其首先全部有效后輸出,但也可以使其中的一個有效后就輸出。那種情況下,就可去除判定輔助部分42A。
而且,圖9的判定輔助部分42A設(shè)置在優(yōu)先順序判定部分41A的后邊,而把它設(shè)置在優(yōu)先順序控制部分60和優(yōu)先順序判定部分41A之間,在相同的優(yōu)先順序為多個的情況下,還可構(gòu)成動態(tài)變更優(yōu)先順序。
再有,上述實施例中PRI寄存器中的MYPRI字段輸出PRI寄存器讀出指令發(fā)出源的優(yōu)先順序,但與其同樣,比如設(shè)置MYDATA字段,也可以輸出表示各邏輯處理器狀態(tài)的數(shù)據(jù)(狀態(tài)數(shù)據(jù)、誤差信息等)。
需要禁止部分50A檢測的緊急處理除外部中斷要求、內(nèi)部中斷要求、超高速緩沖存儲器錯誤和存儲器處理誤差等處理例以及收集指令等外,還可以有超高速緩沖存儲器誤差等的各種事件處理。
盡管已利用本發(fā)明的實施例并參照附圖充分說明了本發(fā)明,但需指出,對本領(lǐng)域的技術(shù)人員來說,本發(fā)明顯然還有各種變化和變型。因此,只要這些變化和變型不脫離本發(fā)明的范圍,那么就應(yīng)包括在本發(fā)明中。
權(quán)利要求
1.一種執(zhí)行多個指令流的多程序流程同時處理器,包括·多個功能單元執(zhí)行指令;·多個指令解碼器與各指令流對應(yīng)地設(shè)置,解碼各個指令,完成作為執(zhí)行該指令的功能單元要求將解碼指令發(fā)給該功能單元的指令發(fā)出要求;·優(yōu)先權(quán)存儲器存儲各指令流的優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·自停止數(shù)據(jù)存儲器在各指令流中存儲指令流處于執(zhí)行狀態(tài)還是處于停止?fàn)顟B(tài)的自停止數(shù)據(jù);·調(diào)解器接收來自多個指令解碼部分通知的指令發(fā)出要求,2個以上的指令發(fā)出要求同時指定一個功能單元的情況下,根據(jù)優(yōu)先權(quán)存儲器中存儲的優(yōu)先權(quán),確定向該功能單元要發(fā)出的解碼指令;·停止器根據(jù)所述自停止數(shù)據(jù),停止與正處于停止?fàn)顟B(tài)的指令流相應(yīng)的指令解碼部分向調(diào)解器的指令發(fā)出要求的通知;功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在優(yōu)先權(quán)存儲器中存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán);功能單元的1個接收指示指令流停止的指令,變更在自停止數(shù)據(jù)存儲器中存儲的自停止數(shù)據(jù),以使只有該指令所屬的指令流停止。
2.如權(quán)利要求1的多程序流程同時處理器,其特征在于還包括·排他停止數(shù)據(jù)存儲器存儲排他停止數(shù)據(jù),該數(shù)據(jù)表示各指令流中的其他指令流是否處于排他的停止?fàn)顟B(tài);所述停止器還利用所述排他停止數(shù)據(jù),停止與正處于停止?fàn)顟B(tài)的指令流對應(yīng)的指令解碼部分向調(diào)解器的指令發(fā)出要求的通知。
3.如權(quán)利要求1的多程序流程同時處理器,其特征在于,所述專用指令僅由指示提高或降低優(yōu)先權(quán)的操作碼組成;在專用指令解碼結(jié)果發(fā)出的情況下,所述功能單元的1個判別發(fā)出該專用指令的指令解碼器,提高或降低與判別的指令解碼器對應(yīng)的指令流的優(yōu)先權(quán)。
4.如權(quán)利要求3的多程序流程同時處理器,其特征在于,所述存儲器包含有讀出專用第1字段的控制寄存器;所述功能單元的1個在控制寄存器讀出指令的解碼結(jié)果發(fā)出的情況下,判別發(fā)出該讀出指令的指令解碼器,將與該指令解碼器對應(yīng)的指令流的ID,作為第1字段讀出數(shù)據(jù)在內(nèi)部總線上輸出。
5.如權(quán)利要求4的多程序流程同時處理器,其特征在于,所述控制寄存器還有用于存儲所述優(yōu)先權(quán)的各指令流的優(yōu)先權(quán)字段;在控制寄存器讀出指令的解碼結(jié)果發(fā)出的情況下,所述功能單元的1個讀出各優(yōu)先權(quán)字段。
6.如權(quán)利要求1的多程序流程同時處理器,其特征在于,所述存儲器有控制寄存器;所述控制寄存器還有用于存儲指令流固有優(yōu)先權(quán)的各指令流的個別字段和讀出專用的第2字段;在所述控制寄存器執(zhí)行讀出指令期間,所述功能單元的1個讀出各指令流的個別字段,同時,將與發(fā)出該讀出指令的指令解碼器對應(yīng)的指令流的固有優(yōu)先權(quán)作為第2字段讀出數(shù)據(jù)在內(nèi)部總線上輸出。
7.如權(quán)利要求3的多程序流程同時處理器,其特征在于,所述存儲器有存儲各指令流優(yōu)先權(quán)的優(yōu)先權(quán)字段;所述優(yōu)先權(quán)字段由表示指令流執(zhí)行模式的其他優(yōu)先權(quán)的小字段組成;在專用指令解碼結(jié)果發(fā)出的情況下,所述功能單元的1個判別發(fā)出該專用指令的指令解碼器,提高或降低與判別指令解碼器對應(yīng)的指令流優(yōu)先權(quán)字段內(nèi)當(dāng)前執(zhí)行模式的小字段的優(yōu)先權(quán)。
8.如權(quán)利要求1的多程序流程同時處理器,其特征在于還包括·特定指令檢測器在功能單元中的1個開始執(zhí)行特定指令時,檢測是哪個指令解碼器發(fā)出了該特定指令的解碼結(jié)果;·暫時變更器在檢測特定指令開始執(zhí)行時,在預(yù)定期間暫時地變更與發(fā)出其特定指令的指令解碼器對應(yīng)的指令流的優(yōu)先權(quán),使該指令流的優(yōu)先權(quán)變得比其他指令流的優(yōu)先權(quán)高。
9.同時且獨立并行地執(zhí)行多個指令流的多程序流程同時處理器,包括·多個功能單元分別同時并獨立地執(zhí)行指令;·多個指令解碼器按與所述多個指令流對應(yīng)地設(shè)置,提取并解碼各個指令流的指令,決定所述功能單元內(nèi)要先發(fā)出的功能單元;·優(yōu)先權(quán)指定器指定所述多個指令流的各優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·指令發(fā)出調(diào)解器在對一個功能單元可發(fā)出進行判斷2個以上的指令的情況下,根據(jù)由所述優(yōu)先權(quán)指定器中指定的優(yōu)先權(quán)調(diào)解該2個以上的指令,確定該一個功能單元中要發(fā)出的指令;所述功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在優(yōu)先權(quán)指定器存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán)。
10.如權(quán)利要求9的多程序流程同時處理器,其特征在于還包括·指令發(fā)出禁止器在發(fā)生對應(yīng)于其中一個指令流的需要緊急處理的情況下,依據(jù)對屬于該指令流指令的所述控制器要發(fā)出和確定的指令,暫時禁止向功能單元的指令發(fā)出。
11.如權(quán)利要求10的多程序流程同時處理器,其特征在于,所述需要的緊急處理是當(dāng)已知超高速緩沖存儲器發(fā)生錯誤事件時產(chǎn)生中斷要求。
12.如權(quán)利要求10的多程序流程同時處理器,其特征在于,所述優(yōu)先權(quán)指定器為·控制寄存器存儲各指令流中指令流的優(yōu)先權(quán);其中,優(yōu)先權(quán)根據(jù)指令流中的指令設(shè)定。
13.如權(quán)利要求12的多程序流程同時處理器,其特征在于,所述指令發(fā)出調(diào)解器還對一個功能單元能否發(fā)出2個以上的指令進行判斷,并且,在該2個以上的指令所屬的指令流為同順序的優(yōu)先權(quán)情況下,按預(yù)定次序決定發(fā)出給該功能單元的指令。
14.如權(quán)利要求13的多程序流程同時處理器,其特征在于,所述指令發(fā)出調(diào)解器為·輔助判定器作為所述預(yù)定的次序、根據(jù)決定周期不同的指令流優(yōu)先的次序、決定與指令流執(zhí)行的履歷的前次不同的指令流的指令次序、和決定固定其中任一個指令流的指令次序,決定要發(fā)出的指令。
15.如權(quán)利要求12的多程序流程同時處理器,其特征在于,所述控制寄存器有與各指令流中執(zhí)行模式不同的優(yōu)先權(quán)字段;所述指令發(fā)出調(diào)解器參照與指令流的執(zhí)行模式相應(yīng)的優(yōu)先權(quán)字段進行所述調(diào)解。
16.如權(quán)利要求10的多程序流程同時處理器,其特征在于,所述優(yōu)先權(quán)指定器配有控制寄存器,該控制寄存器有根據(jù)指令流中的專用指令、與各指令執(zhí)行模式不同的可設(shè)定優(yōu)先權(quán)的字段;功能單元的1個檢測與所述專用指令的發(fā)出源的指令解碼器對應(yīng)的指令流和其執(zhí)行模式,根據(jù)與檢測的指令流和執(zhí)行模式相應(yīng)的優(yōu)先權(quán)字段中的專用指令設(shè)定優(yōu)先權(quán)。
17.如權(quán)利要求16的多程序流程同時處理器,其特征在于,所述專用指令僅由操作碼組成,指示提高或下降優(yōu)先權(quán)。
18.同時且獨立并行地執(zhí)行多個指令流的多程序流程同時處理器,包括·多個功能單元分別同時并獨立地執(zhí)行指令;·多個指令解碼器按與所述多個指令流對應(yīng)地設(shè)置,提取并解碼指令流的指令,解碼所述功能單元內(nèi)要先發(fā)出的功能單元;·優(yōu)先權(quán)指定器指定所述多個指令流的各優(yōu)先權(quán),決定各指令流處于執(zhí)行狀態(tài)還是停止?fàn)顟B(tài),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·指令發(fā)出判斷器依據(jù)表示是否接收指令的各功能單元的狀態(tài),判斷能否對所述要先發(fā)出的功能單元發(fā)出解碼的指令;·指令發(fā)出調(diào)解器在對一個功能單元可發(fā)出2個以上的指令的情況下,根據(jù)由所述優(yōu)先權(quán)指定器指定的優(yōu)先權(quán)調(diào)解該2個以上的指令,確定要發(fā)給該一個功能單元的指令;功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在存儲器中存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán)。
19.如權(quán)利要求18的多程序流程同時處理器,其特征在于,所述優(yōu)先權(quán)指定器,包括·第1寄存器存儲依據(jù)第1指令可設(shè)定的各指令流的優(yōu)先權(quán);·第2寄存器存儲依據(jù)第2指令可設(shè)定的、表示指令流為執(zhí)行狀態(tài)還是停止?fàn)顟B(tài)的各指令流的狀態(tài)標(biāo)志;·第3寄存器存儲依據(jù)第3指令設(shè)定的、表示停止其他所有指令流的各指令流的排他停止標(biāo)志;所述指令發(fā)出判斷器判斷能否根據(jù)所述狀態(tài)標(biāo)志和排他停止寄存器發(fā)出停止中的指令流的指令。
20.如權(quán)利要求19的多程序流程同時處理器,其特征在于,所述第1指令為僅由指示提高或降低優(yōu)先權(quán)的操作碼組成的指令;所述第2指令為僅由指示進入停止?fàn)顟B(tài)的操作碼組成的指令;所述第3指令為僅由指示停止其他指令流的操作碼組成的指令;在發(fā)出第1、第2或第3指令時,所述功能單元的1個檢測與該指令的發(fā)出源的指令解碼器對應(yīng)的指令流,變更與檢測的指令流相應(yīng)的優(yōu)先權(quán)、狀態(tài)標(biāo)記或排他停止標(biāo)記。
21.同時且獨立并行地執(zhí)行多個指令流的多程序流程同時處理器,包括·指令超高速緩沖存儲器暫時存儲所述多個指令流;·多個指令提取器提取與所述多個指令流對應(yīng)的、來自指令超高速緩沖存儲器的指令流指令;·優(yōu)先權(quán)指定器指定所述多個指令流的各優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·指令提取控制器在出現(xiàn)來自2個以上的指令超高速緩沖存儲器的有同時指令提取要求的情況下,根據(jù)所述優(yōu)先權(quán)控制電路的優(yōu)先權(quán),調(diào)解指令提取要求;所述功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在優(yōu)先權(quán)指定器存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán)。
22.同時且獨立地執(zhí)行多個指令流的多程序流程同時處理器,它具有執(zhí)行指令的多個功能單元;從指令超高速緩沖存儲器提取解碼指令并解碼,指定要執(zhí)行該指令的功能單元,輸出指令發(fā)出要求的多個指令解碼部分;與指令解碼部分相同數(shù)量的寄存器組;該多個指令流的數(shù)量與指令解碼部分的數(shù)量相同,它還包括·存儲器存儲依據(jù)指令流中的指令在各指令流中設(shè)定的指令流的優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·控制器對由多個指令流共有的資源,在兩個以上的指令流同時爭用的情況下,根據(jù)所述優(yōu)先權(quán)進行調(diào)解;對所述共有資源的爭用為對一個功能單元有來自兩個以上的指令解碼部分的指令發(fā)出要求的爭用、對指令超高速緩沖存儲器有來自兩個以上的指令解碼部分的指令提取要求的爭用、和對一個寄存器組有來自兩個以上的功能單元的處理要求的爭用的其中之一;功能單元的1個接收指示優(yōu)先權(quán)變更的專用指令,在存儲器中存儲的優(yōu)先權(quán)內(nèi),只變更該專用指令所屬的指令流的優(yōu)先權(quán)。
23.如權(quán)利要求22的多程序流程同時處理器,其特征在于,所述專用指令是指示提高或降低優(yōu)先權(quán)的指令。
24.執(zhí)行多個指令流的多程序流程同時處理器,包括·多個功能單元分別執(zhí)行指令;·多個指令解碼器與各指令流對應(yīng)地設(shè)置,分別解碼各個指令,指定應(yīng)執(zhí)行該指令的功能單元,并且作成要求將解碼了的指令要發(fā)給該功能單元的指令發(fā)出要求;·存儲器對各指令流,存儲各指令流的優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;·控制器在兩個以上的指令發(fā)出要求同時指定一個功能單元時,按照存儲在存儲器的優(yōu)先權(quán),決定應(yīng)發(fā)出到該功能單元的已譯碼指令;·改寫器按照指示倨先權(quán)的變更的專用指令,在存儲于存儲器的優(yōu)先權(quán)內(nèi),只改寫該專用指令所屬的指令流的優(yōu)先權(quán)。
25.如權(quán)利要求24的多程序流程同時處理器,其特征在于,所述控制器對一個功能單元能否發(fā)出2個以上的指令進行判斷,并且,在該2個以上的指令所屬的指令流為同順序的優(yōu)先權(quán)情況下,按預(yù)定次序決定發(fā)出給該功能單元的指令。
26.如權(quán)利要求25的多程序流程同時處理器,其特征在于上述控制器作為上述預(yù)定次序,按照使不同的指令流周期地優(yōu)先的決定次序,由指令流的執(zhí)行履歷,決定應(yīng)要發(fā)出與上次不同的指令流的指令的決定次序,和固定地決定任何一個指令流的指令的決定次序之中的任何一個,決定應(yīng)要發(fā)出的指令。
全文摘要
一種執(zhí)行多個指令流的多程序流程同時處理器,包括多個功能單元,執(zhí)行指令;多個指令解碼器,與各指令流對應(yīng)地設(shè)置,解碼各個指令,完成作為執(zhí)行該指令的功能單元要求將解碼指令發(fā)給該功能單元的指令發(fā)出要求;優(yōu)先權(quán)存儲器,存儲各指令流的優(yōu)先權(quán),各優(yōu)先權(quán)與其他指令流的優(yōu)先權(quán)獨立,并通過專用指令變更;自停止數(shù)據(jù)存儲器,在各指令流中存儲指令流處于執(zhí)行狀態(tài)還是處于停止?fàn)顟B(tài)的自停止數(shù)據(jù);調(diào)解器,接收來自多個指令解碼部分通知的指令發(fā)出要求,2個以上的指令發(fā)出要求同時指定一個功能單元的情況下,根據(jù)優(yōu)先權(quán)存儲器中存儲的優(yōu)先權(quán),確定向該功能單元要發(fā)出的解碼指令;停止器,根據(jù)所述自停止數(shù)據(jù),停止與正處于停止?fàn)顟B(tài)的指令流相應(yīng)的指令解碼部分向調(diào)解器的指令發(fā)出要求的通知。
文檔編號G06F9/38GK1495605SQ03154888
公開日2004年5月12日 申請日期1997年8月27日 優(yōu)先權(quán)日1996年8月27日
發(fā)明者木村浩三, 清原督三, 吉岡康介, 三, 介 申請人:松下電器產(chǎn)業(yè)株式會社