TWI408601B - 管線操作處理器及控制系統 - Google Patents
管線操作處理器及控制系統 Download PDFInfo
- Publication number
- TWI408601B TWI408601B TW098118219A TW98118219A TWI408601B TW I408601 B TWI408601 B TW I408601B TW 098118219 A TW098118219 A TW 098118219A TW 98118219 A TW98118219 A TW 98118219A TW I408601 B TWI408601 B TW I408601B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- memory
- control information
- unit
- pipeline
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 177
- 238000012545 processing Methods 0.000 claims abstract description 91
- 238000003780 insertion Methods 0.000 claims abstract description 33
- 230000037431 insertion Effects 0.000 claims abstract description 33
- 239000000872 buffer Substances 0.000 claims description 42
- 238000000605 extraction Methods 0.000 claims description 12
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本發明關於具有管線處理功能之管線操作處理器,及關於包含儲存將由管線操作處理器執行之程式及操作資料的共用記憶體之控制系統。更具體地,本發明關於在分享共用記憶體的另一處理器存取共用記憶體下降低處理效率惡化之管線操作處理器,及關於包含該管線操作處理器之控制系統。
近年來,已採用具有管線處理功能之管線操作處理器以滿足控制系統的高速處理需求。
習知上,具有圖11中所示組態之系統被用於工廠等之控制系統中。該控制系統包括管線操作處理器12,其以高速處理來自例如程序感應器或致動器之外部輸入輸出(I/O)裝置的資料;通用處理器11a及11b,其管理管線操作處理器12或執行不同處理;外部輸入輸出(I/O)記憶體13,其做為移轉外部I/O裝置之輸入及輸出資料的介面;及操作記憶體14,其儲存將由管線操作處理器12執行之控制程式14a並由管線操作處理器12和通用處理器11a及11b共用。
管線處理單元12b包括指令提取單元12b1、指令解碼單元12b2、指令執行及位址產生單元12b3、記憶體存取單元12b4及12b5和寫入單元12b6。管線處理單元12b進一步包括旁路控制電路(未顯示),其控制該些單元之間的資料路徑;外部I/O記憶體存取單元12b8;操作記憶體存取單元12b9;及管線匯流排12b7,其連接管線處理單元12b的該些單元。
管線處理單元12b將指令分為6個基本階段分別相應於指令提取單元(IF)12b1、指令解碼單元(ID)12b2、指令執行單元(MAR)12b3、記憶體存取單元(MADR,MDR)12b4及12b5、和寫入單元(WR)12b6。因而,指令係並行地處理以促進處理量。當排定的階段之操作發生改變時,階段的執行便中途暫停,從頭重新開始,或指令序列需加以改變。
載入指令所造成的資料危險為該等改變之因素的一個例子。預測載入指令之位址以避免資料危險所造成之管線暫停的方法係於例如日本專利No. 3435267中揭露。
管線處理之原理及解決管線處理之執行中各式危險之技術係於例如日經商業出版有限公司(Nikkei business Publications Inc.)於1996年6月26日出版由John L. Hennessy及David A. Patterson所著之"電腦架構及設計(Computer Architecture and Design,Vol. 2)"第6章23至70頁中揭露。
圖12A及12B顯示由工廠等控制系統之管線處理的典型操作,其使用圖11中所示習知管線操作處理器。
例如,每一指令A至F係於圖12A中所示的6個階段中處理,且每一階段之操作係與時脈信號同步。各指令之執行係隨一階段而移位。
習知上,當通用處理器11a經由記憶體存取單元12a而存取共用記憶體時,例如,若指令B係於寫入單元WR之階段中處理,如圖12B中所示,記憶體存取單元12a便發送信號而停止管線處理單元12b之所有階段的操作,並於該停止期間內經由操作記憶體存取單元12b9存取操作記憶體14。
在此狀況下,該停止期間便中斷了操作中之指令B至F的記憶體週期處理;因此,同步記憶體之操作相位改變成圖12B中由虛線圍繞之各階段的操作相位,且不會正常執行。
因此,如圖12B中所示,在停止管線處理被取消後,需再次執行指令B至F。因而,管線操作處理器12的處理效率大幅降低。
即,當排定的操作中發生改變時,使用習知管線操作處理器之處理的性能可能因為執行中管線處理的階段從頭重新開始之缺點而惡化。
本發明的一個目標是提供一種管線操作處理器及包含該管線操作處理器之控制系統,其可持續管線處理同時避免當存取共用記憶體時因指令之間資料路徑的同步位移而發生危險,降低了管線操作處理器之處理效率的惡化,並可高速執行控制程式。
依據本發明之實施例,控制系統包含:一或多個通用處理器;一管線操作處理器,其具有管線處理功能並連接至該一或多個通用處理器之匯流排;一第一記憶體,用以儲存由該管線操作處理器執行之控制程式及操作資料,該控制程式及該操作資料係由該一或多個通用處理器及該管線操作處理器共用;及一第二記憶體,用以供該管線操作處理器存取並做為移轉該管線操作處理器輸入或輸出之外部資料的介面,該管線操作處理器包含:管線處理單元,包含做為各階段之指令提取單元、指令解碼單元、指令執行及位址產生單元、記憶體存取單元、並行地分裂指令及執行指令之寫入單元、用以連接該些階段之管線匯流排及指令存取單元;及指令插入控制器,用以當該一或多個通用處理器要求存取該第一記憶體時將指令插入該管線處理單元,及用以修正該些階段之控制資訊的相對位移而控制該些階段之間的資料路徑,若該指令提取單元從該第一記憶體提取指令且該控制程式正在執行,當接收來自該一或多個通用處理器之要求存取該第一記憶體的存取要求指令時,則該指令插入控制器將來自該指令解碼單元之無操作指令插入,取代該控制程式之排定的後續指令以使得該管線處理單元不執行操作,或由該指令解碼單元檢測嵌入該控制程式之無操作指令以使得該管線處理單元不執行操作,及該管線處理單元執行該後續指令並持續管線處理之執行而不中斷該管線操作處理器之處理。
依據本發明之另一實施例,管線操作處理器包含:管線處理單元,其具有並行地處理控制程式之管線處理功能,並包含做為各階段之指令提取單元、指令解碼單元、指令執行及位址產生單元、記憶體存取單元、並行地分裂指令及執行指令之寫入單元、及用以連接該些階段之管線匯流排;及指令插入控制器,用以當通用處理器要求存取第一記憶體時將指令插入該管線處理單元,及用以修正該些階段之控制資訊的相對位移而控制該些階段之間的資料路徑,及若該指令提取單元從該第一記憶體提取指令且該控制程式正在執行,當接收來自該通用處理器之要求存取該第一記憶體的存取要求指令時,則該指令插入控制器將來自該指令解碼單元之無操作指令插入,取代該控制程式之排定的後續指令以使得該管線處理單元不執行操作,或由該指令解碼單元檢測嵌入該控制程式之無操作指令以使得該管線處理單元不執行操作,及該管線處理單元執行該後續指令並持續管線處理之執行而不中斷該管線操作處理器之處理。
下列描述中將提出本發明之其餘目標及優點,且部分經由該描述係顯而易見的,或可經由本發明之實踐而予理解。經由以下所特別指出之方法及組合,可體現及獲得本發明之目標及優點。
以下將參照附圖描述本發明之實施例。
以下將參照圖1至6描述包含本發明第一實施例的管線操作處理器之控制系統。本發明之組態及典型操作將參照圖1及3A而予描述。
包含管線操作處理器之控制系統包括通用處理器1a及1b;管線操作處理器2,其經由匯流排1c而連接至通用處理器1a及1b;外部輸入輸出(I/O)記憶體3,其儲存控制目標程序之輸入輸出(I/O)裝置的輸入及輸出資料;及操作記憶體4,其儲存將由管線操作處理器2執行之控制程式4a及其操作資料。
管線操作處理器2包括管線處理單元2b,其執行管線處理;及指令插入控制器2a,其將指令插入包括複數階段之管線處理單元2b,並參照各階段之控制資訊修正控制資訊之位移以控制階段之間的資料路徑。
指令插入控制器2a包括記憶體存取單元2a1,其控制來自通用處理器1a或1b之對於操作記憶體4的存取要求;及指令插件2a2,其於接收來自通用處理器1a或1b之對於操作記憶體4的存取要求時將無操作(NOP)指令插入指令解碼單元2b2(之後將描述)。
指令插入控制器2a包括修正的控制資訊緩衝器2a3及多工器2a4。當指令插件2a2通知修正的控制資訊緩衝器2a3 NOP指令插入時,或當指令解碼單元2b2經由指令插件2a2通知修正的控制資訊緩衝器2a3先前嵌入控制程式中之NOP指令插入時,修正的控制資訊緩衝器2a3便於插入時儲存管線處理單元2b之該些階段的控制資訊,於NOP指令之後續指令執行時修正所儲存的控制資訊與該些階段之控制資訊之間的相對位移,並輸出修正的控制資訊。當產生NOP指令時,多工器2a4將管線處理單元2b之控制資訊改變為修正的控制資訊緩衝器2a3之輸出並重組態該資訊。
執行管線處理之管線處理單元2b包括做為各階段之指令提取單元2b1、指令解碼單元2b2、指令執行及位址產生單元2b3、記憶體位址存取單元2b4、記憶體資料存取單元2b5及寫入單元2b6,以將指令分裂為各階段且並行地執行指令。管線處理單元2b進一步包括輸入輸出(I/O)記憶體存取單元2b8,其控制對於I/O記憶體3之存取;操作記憶體存取單元2b9,其控制對於操作記憶體4之存取;及管線匯流排2b7,其連接管線處理單元2b之各部件。
此外,管線處理單元2b包括預先組建的控制資訊設定單元(未顯示),其旁路控制各階段之間之資料路徑;及其控制線路。
在本實施例中,管線處理單元2b包括與指令的6個階段相應之從資訊提取單元2b1至寫入單元2b6的6個單元。然而,管線處理單元2b之組態可相應於5階段或8階段。管線處理單元2b僅需具有管線處理功能。階段的數量不限於6。
I/O記憶體3做為用以移轉與管線操作處理器2之操作相關之輸入及輸出資料的介面。輸出資料係以管線匯流排2b7的預設基本匯流排週期而從記憶體位址存取單元2b4經由管線匯流排2b7及I/O記憶體存取單元2b8寫入至I/O記憶體3。
相反地,輸入資料係自I/O記憶體3讀取並經由I/O記憶體存取單元2b8發送至記憶體資料存取單元2b5。
操作記憶體4包括同步記憶體,且資料係自記憶體位址存取單元2b4經由操作記憶體存取單元2b9寫入至操作記憶體4。
相反地,資料係與管線匯流排2b7之時脈信號同步地自操作記憶體4讀取,並經由操作記憶體存取單元2b9發送至記憶體資料存取單元2b5。
其次,將針對執行中典型管線處理之狀況描述上述裝配之控制系統的典型控制操作。如圖1中虛線箭頭所表示,管線操作處理器2所執行之控制程式4a使得指令提取單元2b1經由管線匯流排2b7而做出指令要求,操作記憶體存取單元2b9存取操作記憶體4,且將執行之指令被發送至指令解碼單元2b2。
圖3A中符號IF至WR分別代表管線處理之各階段,各相應於每一階段(包括指令提取單元2b1至寫入單元2b6)。例如,讀取指令A至F係並行地處理,每一指令係於6階段中處理,指令之執行係隨一階段而移位。
其次,將參照圖2及3B說明在管線操作處理器2執行典型控制操作下當通用處理器1a或1b要求存取操作記憶體4時之操作。
如圖2中虛線所表示,當通用處理器1a經由記憶體存取單元2a1要求存取操作記憶體4時,指令插件2a2便將NOP指令插入指令解碼單元2b2,取代如圖3B中所示排定的執行之指令E,且該些階段之單元於NOP指令期間均不執行任何處理。
如圖2中鏈線所表示,指令插件2a2於NOP指令期間內經由操作記憶體存取單元2b9自操作記憶體4讀取要求資料或將要求資料寫入至操作記憶體4。
圖3B下部顯示在通用處理器1a要求存取操作記憶體4下當NOP指令於指令D與E之間被插入時管線操作處理器2之操作。為予比較,圖3B上部顯示停止處理的所有階段之習知操作。
如圖所示,當一NOP指令被插入且管線處理進行時,相較於所有階段停止之習知狀況,已執行中的指令B至F不需完全停止及重新開始,且處理之延遲係侷限於插入NOP指令所引發的一階段。因此,確保管線處理之持續性並降低因針對共用記憶體之存取要求的處理效率惡化。
此外,針對操作記憶體4之存取可嵌入控制程式中,且管線操作處理器2可執行該存取。在此狀況下,當通知從指令插件2a插入NOP指令時,指令解碼單元2b2便檢測預先嵌入控制程式中之NOP指令,並通知指令插件2a2。指令插件2a2通知修正的控制資訊緩衝器2a3產生NOP指令。
在NOP指令的通知進行之後,修正的控制資訊緩衝器2a3便類似通用處理器1a做出針對操作記憶體4之存取要求的狀況而操作。
其次,參照圖2及圖4至6,將詳細描述指令插入控制器2a之組態及操作。
當指令插件2a2從ID解碼單元2b2插入NOP指令取代排定的執行之指令E時,如圖5B中所示,插入NOP指令之前指令的各階段與插入之後指令的各階段之間的相對位置改變,即控制各階段之間相依關係之控制資訊的相位關係改變。
因此,當指令插入時,控制各階段之間資料路徑之控制資訊的相位需加以修正。修正的控制資訊緩衝器2a3修正控制資訊之位移。將參照圖4描述修正的控制資訊緩衝器2a3之細節。
修正的控制資訊緩衝器2a3包括記憶體記憶庫選擇器2a31,其選擇每當指令插件2a2將NOP指令插入指令解碼單元2b2時儲存控制資訊之記憶庫;控制資訊記憶體2a32,其包括具有儲存控制資訊之複數緩衝暫存器的記憶庫;及修正的控制資訊選擇器2a33,其於執行NOP指令之後續指令時修正插入NOP指令所造成各階段之間控制資訊的相對位移,並選擇相應記憶庫以輸出修正的資訊。
記憶體記憶庫選擇器2a31包括輸入選擇環緩衝器單元2a311及閘極電路2a312。輸入選擇環緩衝器單元2a311包括3個緩衝器,其儲存來自指令插件2a2之指令插入存在或不存在,與管線之時脈信號Ck同步旋轉,並於來自指令插件2a2之輸出存在期間停止,該高位準輸出被視為"真"。當輸入選擇環緩衝器單元2a311輸出真時,閘極電路2a312便接收管線處理單元2b之各階段的輸入控制資訊,並將來自任一為真之環緩衝器的輸出傳輸予相應記憶庫。
修正的控制資訊選擇器2a33包括輸出選擇環緩衝器單元2a331及多工器2a332。輸出選擇環緩衝器單元2a331控制控制資訊記憶體2a32以延遲輸出儲存於控制資訊記憶體2a32之記憶庫的控制資訊達相應於所插入指令數量之期間,即達相應於停止階段之期間。多工器2a332輸入儲存於控制資訊記憶體2a32之三個記憶庫(L,M,N)之一中的控制資訊,並將依據來自輸出選擇環緩衝器單元2a331之輸出所選擇的控制資訊輸出。
輸入選擇環緩衝器單元2a311之緩衝器數量、輸出選擇環緩衝器單元2a331之緩衝器數量、及控制資訊記憶體2a32之記憶庫係依據存取共用操作記憶體4之處理器數量及管線處理的一指令中每階段之存取次數而預先決定。因而所配置之同步主記憶體允許與管線處理之時脈信號同步地以高速修正控制資訊。
其次,將描述如上配置之修正的控制資訊緩衝器2a3的控制操作。
例如,當記憶體資料存取(MDR)單元2b5之階段的操作結果被用於指令解碼(ID)單元2b2之階段中時,便可以指令解碼(ID)單元2b2之階段係參照依據指令A之記憶體資料存取(MDR)單元2b5的控制資訊之方式操作典型管線處理。然而,在產生存取操作記憶體4之要求下,當MDR階段(st1)之控制資訊被用於插入NOP指令之後的ID階段(st3)中時,適當的控制資訊便由後續執行的指令更新而造成危險,且適當的控制資訊無法使用。
因而,修正的控制資訊緩衝器2a3暫時儲存適當的控制資訊使得該控制資訊可用於ID階段中。
即,為相繼儲存管線處理操作中一連串階段的控制資訊,並使該控制資訊可予使用,修正的控制資訊緩衝器2a3如上述地包括具有相對於控制資訊之輸入而並列配置的記憶庫之控制資訊記憶體2a32,及包括記憶體記憶庫選擇器2a31及修正的控制資訊選擇器2a33,其依據任一並列記憶庫之選擇及與時脈信號Ck同步旋轉之選擇狀況,而選擇及控制控制資訊之輸入狀況或輸出狀況。修正的控制資訊緩衝器2a3於與時脈信號同步之指令插入時修正控制資訊之相位位移,並使修正的控制資訊可於管線的階段中使用;因此,即使當產生複數指令的存取要求時,控制資訊亦可正常使用。
例如,如圖6中所示,在指令B係記憶符號為CMP之比較指令、指令F係表示為JMP之狀況分支指令且指令F使用指令B所產生之控制資訊下,當NOP指令於指令D與E之間被插入且3個NOP指令於指令E與F之間被相繼插入時,源於MDR之階段的ID之階段的控制資訊便如箭頭所表示地適當設定於每一階段st3及階段st6至st9中,即相應於NOP指令未插入之狀況的適當相位之控制資訊被設定且處理正常操作。
以下,將參照圖7及8描述包含依據本發明第二實施例的管線操作處理器之控制系統。
與第一實施例相同部分將以相同編號表示且詳細描述將予省略。
在第二實施例中,管線處理被簡化為相對於每一指令執行針對操作記憶體4的記憶體存取一次。
通常,當存取記憶體映像上位址時,掌握特定固定長度資料之處理器符合相應於偶數位元組之整數倍的校準。處理器符合4位元組校準而掌握32位元資料,及符合2位元組校準而掌握16位元資料。此外,無法符合意即校準錯誤。
在此狀況下,如圖7中所示,4位元組之校準資料可於每一記憶體存取加以寫入或讀取。然而,若資料導致需要記憶體存取兩次之校準錯誤,便需儲存相同的指令插入及控制資訊以便可複數次記憶體存取,並能正常的管線處理不因複數次記憶體存取而造成控制資訊危險。
因此,如圖8中所示,在指令解碼單元2b2中,ID電路2b12汲取指令以存取操作記憶體4及記憶體位址,及該指令之資料尺寸,且校準檢測電路2b13檢測校準錯誤並將最終檢測信號傳輸予指令插件2a2。因而,經由指令插入控制器2a,類似於第一實施例,管線操作處理器2可適當地於一指令執行記憶體存取兩次。
於是,不需經由編譯控制程式而避免對於導致校準錯誤之資料的記憶體存取,但可由管線操作處理器執行。甚至對於可變長度資料之記憶體存取亦變成可由管線操作處理器執行而執行固定長度指令;因此,經由管線操作處理器之處理變得更快。
以下,將參照圖8至10描述包含依據本發明第三實施例的管線操作處理器之控制系統。
與第一實施例相同部分將以相同編號表示且詳細描述將予省略。
在第三實施例中,可經由一指令達成針對複數指令而從管線操作處理器2存取I/O記憶體3,以促進操作效率。
指令解碼單元2b2包括圖8中所示之存取指令檢測電路2b14。存取指令檢測電路2b14檢測設定於ID電路2b12中之指令,以複數次存取管線操作處理器2之I/O記憶體3。在檢測存取要求之指令時,存取指令檢測電路2b14通知指令插件2a2該指令,指令插件2a2通知ID電路2b12該指令之執行,及經由I/O記憶體存取單元2b8執行相應於複數次指令插入之記憶體存取直至記憶體存取完成為止。
例如,在圖9中,指令D係記憶符號為MEM WR之寫入存取指令,及複數指令於指令D執行與記憶體存取完成之間被插入。
在指令D直接移轉至MADR階段之前由執行指令A至C而產生寫入資料的準備中,於執行指令D後續執行複數指令之插入直至記憶體存取完成為止。因此,階段之間寫入資料的直接移轉未產生資料危險並可執行操作記憶體4之記憶體存取。
在圖10中,指令D係記憶符號為MEM RD之讀取存取指令,及複數指令於指令C之執行後續與展開指令D執行時被插入。記憶體存取完成造成執行指令D,即MEM RD。
在指令D後之執行指令E至H使用直接從MDR階段移轉之讀取資料的準備中,複數指令從指令D之執行開始被插入直至記憶體存取完成之前為止且接著執行指令D。因此,階段之間讀取資料的直接移轉未產生資料危險並可執行記憶體存取。
依據第三實施例,從通用處理器執行記憶體存取可使管線操作處理器之管線控制的影響最小,並可促進管線操作處理器之操作性能。
本發明不限於上述實施例。指令插入控制器僅需將NOP指令插入共用操作記憶體,及修正插入時產生之控制資訊的位移(危險的產生)。在不偏離本發明之精神下,管線處理單元之階段組態及操作記憶體之電路組態可進行各式修改。
對於熟悉本技藝之人士而言可輕易發現其他優點及修改。因此,廣義而言本發明不限於文中所示之具體細節及代表實施例。於是,在不偏離申請專利範圍及其等效論述所定義之整體發明觀念的精神及範圍下,可進行各式修改。
1a、1b、11a、11b...通用處理器
1c...匯流排
2、12...管線操作處理器
2a...指令插入控制器
2a1、12a、12b4、12b5...記憶體存取單元
2a2...指令插件
2a3...修正的控制資訊緩衝器
2a31...記憶體記憶庫選擇器
2a311...輸入選擇環緩衝器單元
2a312...閘極電路
2a32...控制資訊記憶體
2a33...修正的控制資訊選擇器
2a331...輸出選擇環緩衝器單元
2a332、2a4...多工器
2b、12b...管線處理單元
2b1、12b1...指令提取單元
2b12...指令解碼電路
2b13...校準檢測電路
2b14...存取指令檢測電路
2b2、12b2...指令解碼單元
2b3、12b3...指令執行及位址產生單元
2b4、12b4...記憶體位址存取單元
2b5、12b5...記憶體資料存取單元
2b6、12b6...寫入單元
2b7、12b7...管線匯流排
2b8、12b8...外部輸入輸出記憶體存取單元
2b9、12b9...操作記憶體存取單元
3、13...外部輸入輸出記憶體
4、14...操作記憶體
4a、14a‧‧‧控制程式
Ck‧‧‧時脈信號
st1、st3、st6至st9‧‧‧階段
倂入並構成本說明書之一部的附圖描繪本發明之實施例,連同上列一般描述及下列實施例之詳述用以說明本發明之原理,其中:
圖1顯示依據本發明一實施例之包含管線操作處理器的控制系統之組態;
圖2顯示依據本發明一實施例之管線操作處理器之組態;
圖3A及3B描繪當存取操作記憶體(共用記憶體)時管線控制操作範例;
圖4顯示依據本發明一實施例之修正的控制資訊緩衝器之組態;
圖5A及5B描繪修正的控制資訊緩衝器之管線控制操作範例;
圖6描繪修正的控制資訊緩衝器之另一管線控制操作範例;
圖7描繪校準錯誤;
圖8描繪校準錯誤之檢測及指令插入控制器之操作;
圖9描繪當一指令致使複數指令執行時指令插入控制器之操作範例;
圖10描繪當一指令致使複數指令執行時另一指令插入控制器之操作範例;
圖11顯示包含習知管線操作處理器的控制系統之組態;及
圖12A及12B描繪存取包含習知管線操作處理器之控制系統的共用記憶體之操作。
1a、1b...通用處理器
1c...匯流排
2...管線操作處理器
2a...指令插入控制器
2a1...記憶體存取單元
2a2...指令插件
2a3...修正的控制資訊緩衝器
2a4...多工器
2b...管線處理單元
2b1...IF(指令提取)
2b2...ID(指令解碼)
2b3...MAR(指令執行/位址產生)
2b4...MADR(記憶體位址存取)
2b5...MDR(記憶體資料存取)
2b6...WR(寫入)
2b7...管線匯流排
2b8...外部輸入輸出記憶體存取
2b9...操作記憶體存取
3...外部輸入輸出記憶體
4...操作記憶體(同步記憶體)
4a...控制程式
Claims (8)
- 一種控制系統,包含:一或多個通用處理器;一管線操作處理器,其具有管線處理功能並連接至該一或多個通用處理器之匯流排;一操作記憶體,用以儲存由該管線操作處理器執行之控制程式及操作資料,並用以供經由該管線操作處理器而存取自該一或多個通用處理器;及一外部輸入輸出(I/O)記憶體,用以供該管線操作處理器存取並做為移轉該管線操作處理器輸入或輸出之外部資料的介面,該管線操作處理器包含:管線處理單元,具有做為各階段之指令提取單元、指令解碼單元、指令執行及位址產生單元、記憶體存取單元、分裂指令及並行地執行指令之寫入單元,操作記憶體存取單元,用以控制輸入輸出(I/O)記憶體存取單元並存取該操作記憶體,該輸入輸出(I/O)記憶體存取單元係控制對該輸入輸出(I/O)記憶體之存取,管線匯流排,用以連接該些階段、指令存取單元及該操作記憶體存取單元;及指令插入控制器,包括:指令存取單元,用以接收來自該一或多個通用處理器之存取要求指令並傳輸該存取要求指令; 指令插件,用以當接收來自該指令存取單元的該存取要求指令時將無操作指令插入該指令解碼單元;修正的控制資訊緩衝器,用以於插入該無操作指令時儲存該管線處理單元之該些階段的控制資訊、於執行該無操作指令之後續指令時修正儲存於該修正的控制資訊緩衝器中之控制資訊與該些階段之控制資訊之間的相對位移、及於該指令插件通知該無操作指令之插入時或於該指令解碼單元經由該指令插件通知嵌入於該控制程式之該無操作指令時輸出該修正的控制資訊;及第一多工器,用以於該無操作指令產生時將該管線處理單元之該控制資訊改變為該修正的控制資訊緩衝器之輸出,並重組態該控制資訊,若該指令提取單元從該操作記憶體提取指令且該控制程式正在執行,當接收來自該一或多個通用處理器之要求存取該操作記憶體的存取要求指令時,則該指令插入控制器將來自該指令解碼單元之無操作指令插入,取代該控制程式之排定的後續指令以使得該管線處理單元不執行操作,該管線處理單元執行該後續指令並持續管線處理之執行而不中斷該管線操作處理器之處理。
- 如申請專利範圍第1項之控制系統,其中該修正的控制資訊緩衝器包括:控制資訊記憶體,其具有用以儲存該控制資訊之記憶庫; 記憶體記憶庫選擇器,每當該無操作指令插入時選擇用以儲存該控制資訊之該記憶庫之一;修正的控制資訊選擇器,用以修正經由插入該無操作指令所造成該些階段之間儲存於每一該些記憶庫中之該控制資訊的相對位移、於執行該無操作指令後續之指令時重組態修正的控制資訊、及從相應記憶庫選擇及輸出該修正的控制資訊;及第二多工器,用以於插入該無操作指令之前選擇來自該修正的控制資訊選擇器之輸出與該控制資訊之一。
- 如申請專利範圍第1項之控制系統,其中該指令解碼單元包含:指令解碼單元(ID)電路,用以儲存該指令提取單元所提取該指令的指令碼及該指令的位址;及校準錯誤檢測電路,用以依據儲存於該ID電路中之該指令碼及該位址檢測校準錯誤存在與否,當該校準錯誤檢測電路檢測該校準錯誤時,便通知該指令插件該校準錯誤存在或不存在,及該指令插件通知該ID電路有關相應於該校準錯誤存在或不存在之該指令碼的插入,以依據該校準錯誤存在或不存在而執行對於該操作記憶體之存取。
- 如申請專利範圍第1項之控制系統,其中該指令解碼單元包括:指令解碼單元(ID)電路,用以儲存該指令提取單元所提取之該指令的指令碼;及 存取指令檢測電路,用以檢測依據儲存於該ID電路中之該指令碼而複數次存取該外部輸入輸出(I/O)記憶體之要求指令,當該存取指令檢測電路檢測複數次存取之該要求指令時,便通知該指令插件有關多次存取,及該指令插件通知該ID電路有關相應於該多次之該指令碼的插入,以執行該複數次存取該外部輸入輸出(I/O)記憶體。
- 一種管線操作處理器,包含:管線處理單元,其具有並行地處理控制程式之管線處理功能,並具有做為各階段之指令提取單元、指令解碼單元、指令執行及位址產生單元、記憶體存取單元、分裂指令及並行地執行指令之寫入單元;操作記憶體存取單元,用以控制輸入輸出(I/O)記憶體存取單元並存取該操作記憶體,該輸入輸出(I/O)記憶體存取單元係控制對該輸入輸出(I/O)記憶體之存取;管線匯流排,用以連接該些階段、該指令存取單元及該操作記憶體存取單元;及指令插入控制器,包括:指令存取單元,用以接收來自一或多個通用處理器之存取要求指令並傳輸該存取要求指令;指令插件,用以當接收來自該指令存取單元的該存取要求指令時將無操作指令插入該指令解碼單元; 修正的控制資訊緩衝器,用以於插入該無操作指令時儲存該管線處理單元之該些階段的控制資訊、於執行該無操作指令之後續指令時修正儲存於該修正的控制資訊緩衝器中之控制資訊與該些階段之控制資訊之間的相對位移、及於該指令插件通知該無操作指令之插入時或於該指令解碼單元經由該指令插件通知嵌入於該控制程式之該無操作指令時輸出該修正的控制資訊;及第一多工器,用以於該無操作指令產生時將該管線處理單元之該控制資訊改變為該修正的控制資訊緩衝器之輸出,並重組態該控制資訊,若該指令提取單元從該操作記憶體提取指令且該控制程式正在執行,當接收來自該些通用處理器之要求存取該操作記憶體的存取要求指令時,則該指令插入控制器將來自該指令解碼單元之無操作指令插入,取代該控制程式之排定的後續指令以使得該管線處理單元不執行操作,該管線處理單元執行該後續指令並持續管線處理之執行而不中斷該管線操作處理器之處理。
- 如申請專利範圍第5項之管線操作處理器,其中該修正的控制資訊緩衝器包括:控制資訊記憶體,其具有用以儲存該控制資訊之記憶庫;記憶體記憶庫選擇器,每當該無操作指令插入時選擇用以儲存該控制資訊之該記憶庫之一;修正的控制資訊選擇器,用以於執行後續指令時修正 經由插入該無操作指令所造成該些階段之間儲存於每一該些記憶庫中之該控制資訊的相對位移,以從相應記憶庫選擇及輸出修正的控制資訊;及第二多工器,用以於插入該無操作指令之前選擇來自該修正的控制資訊選擇器之輸出與該控制資訊之一。
- 如申請專利範圍第5項之管線操作處理器,其中該指令解碼單元包括:指令解碼單元(ID)電路,用以儲存該指令提取單元所提取該指令的指令碼及該指令的位址;及校準錯誤檢測電路,用以依據儲存於該ID電路中之該指令碼及該位址檢測校準錯誤存在與否,當該校準錯誤檢測電路檢測該校準錯誤時,便通知該指令插件有關該校準錯誤存在或不存在,及該指令插件通知該ID電路有關相應於該校準錯誤存在或不存在之該指令碼的插入,以依據該校準錯誤存在或不存在而執行對於該操作記憶體之存取。
- 如申請專利範圍第5項之管線操作處理器,其中該指令解碼單元包括:指令解碼單元(ID)電路,用以儲存該指令提取單元所提取之該指令的指令碼;及存取指令檢測電路,用以檢測依據儲存於該ID電路中之該指令碼而複數次存取外部輸入輸出(I/O)記憶體之要求指令,當該存取指令檢測電路檢測複數次存取之該要求指令 時,便通知該指令插件有關多次存取,及該指令插件通知該ID電路有關相應於該多次之該指令碼的插入,以執行該複數次存取該外部輸入輸出(I/O)記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008213351A JP5395383B2 (ja) | 2008-08-21 | 2008-08-21 | パイプライン演算プロセッサを備える制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201011644A TW201011644A (en) | 2010-03-16 |
TWI408601B true TWI408601B (zh) | 2013-09-11 |
Family
ID=41566931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098118219A TWI408601B (zh) | 2008-08-21 | 2009-06-02 | 管線操作處理器及控制系統 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8200950B2 (zh) |
JP (1) | JP5395383B2 (zh) |
KR (1) | KR101092955B1 (zh) |
CN (1) | CN101655784B (zh) |
DE (1) | DE102009024012A1 (zh) |
TW (1) | TWI408601B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826052B (zh) * | 2010-05-04 | 2012-07-04 | 中国人民解放军国防科学技术大学 | Nual执行语义微处理器中保持延时一致性的断点实现方法 |
CN101866281B (zh) * | 2010-06-13 | 2013-05-22 | 清华大学 | 一种多周期指令执行方法和装置 |
US8522076B2 (en) * | 2010-06-23 | 2013-08-27 | International Business Machines Corporation | Error detection and recovery in a shared pipeline |
US9529596B2 (en) * | 2011-07-01 | 2016-12-27 | Intel Corporation | Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits |
US8635501B2 (en) | 2011-07-25 | 2014-01-21 | Microsoft Corporation | Detecting memory hazards in parallel computing |
CN102830953B (zh) * | 2012-08-02 | 2017-08-25 | 中兴通讯股份有限公司 | 指令处理方法及网络处理器指令处理装置 |
US9268597B2 (en) * | 2014-04-01 | 2016-02-23 | Google Inc. | Incremental parallel processing of data |
WO2019021344A1 (ja) * | 2017-07-24 | 2019-01-31 | オリンパス株式会社 | 画像処理装置および撮像装置 |
CN111857831B (zh) * | 2020-06-11 | 2021-07-20 | 成都海光微电子技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN111930426A (zh) * | 2020-08-14 | 2020-11-13 | 西安邮电大学 | 一种可重构计算的双模指令集架构及其应用方法 |
US12111913B2 (en) | 2021-09-26 | 2024-10-08 | Ceremorphic, Inc. | Core processor and redundant branch processor with control flow attack detection |
DE112022004589T5 (de) * | 2021-09-26 | 2024-10-24 | Ceremorphic, Inc. | Kernprozessor und redundanter zweigprozessor mit detektion von kontrollflussattacken |
US11921843B2 (en) | 2021-09-26 | 2024-03-05 | Ceremorphic, Inc. | Multi-threaded secure processor with control flow attack detection |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000070483A2 (en) * | 1999-05-13 | 2000-11-23 | Arc International U.S. Holdings Inc. | Method and apparatus for processor pipeline segmentation and re-assembly |
TW200301438A (en) * | 2001-12-07 | 2003-07-01 | Sun Microsystems Inc | Method and apparatus to reduce memory latency |
TW200405170A (en) * | 2002-05-08 | 2004-04-01 | Intel Corp | Method and system for optimally sharing memory between a host processor and graphics processor |
TWI240163B (en) * | 2001-10-22 | 2005-09-21 | Sun Microsystems Inc | Multi core multi thread processor and method and apparatus utilizing a multi core multi thread processor |
US20060149943A1 (en) * | 2004-12-02 | 2006-07-06 | International Business Machines Corporation | System and method for simulating hardware interrupts |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05100844A (ja) * | 1991-10-08 | 1993-04-23 | Nec Corp | マイクロ・プロセツサのプログラムウエイト制御回路 |
JPH06161778A (ja) * | 1992-11-26 | 1994-06-10 | Fujitsu Ltd | マルチフロー命令制御方法及び命令処理装置 |
JP3435267B2 (ja) | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
JP3014682B2 (ja) * | 1997-11-21 | 2000-02-28 | 松下電器産業株式会社 | プログラム制御方法及び装置 |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
JP2000298652A (ja) * | 1999-04-14 | 2000-10-24 | Mitsubishi Electric Corp | マルチプロセッサ |
WO2001095101A2 (en) | 2000-06-02 | 2001-12-13 | Sun Microsystems, Inc. | Synchronizing partially pipelined instructions in vliw processors |
JP4412905B2 (ja) * | 2003-01-28 | 2010-02-10 | パナソニック株式会社 | 低電力動作制御装置、およびプログラム最適化装置 |
US7373536B2 (en) | 2004-08-04 | 2008-05-13 | Kabushiki Kaisha Toshiba | Fine granularity halt instruction |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
US7814487B2 (en) | 2005-04-26 | 2010-10-12 | Qualcomm Incorporated | System and method of executing program threads in a multi-threaded processor |
-
2008
- 2008-08-21 JP JP2008213351A patent/JP5395383B2/ja active Active
-
2009
- 2009-06-02 TW TW098118219A patent/TWI408601B/zh active
- 2009-06-04 US US12/478,227 patent/US8200950B2/en active Active
- 2009-06-04 KR KR1020090049577A patent/KR101092955B1/ko active IP Right Grant
- 2009-06-05 DE DE102009024012A patent/DE102009024012A1/de not_active Ceased
- 2009-06-05 CN CN2009101426621A patent/CN101655784B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000070483A2 (en) * | 1999-05-13 | 2000-11-23 | Arc International U.S. Holdings Inc. | Method and apparatus for processor pipeline segmentation and re-assembly |
TWI240163B (en) * | 2001-10-22 | 2005-09-21 | Sun Microsystems Inc | Multi core multi thread processor and method and apparatus utilizing a multi core multi thread processor |
TW200301438A (en) * | 2001-12-07 | 2003-07-01 | Sun Microsystems Inc | Method and apparatus to reduce memory latency |
TW200405170A (en) * | 2002-05-08 | 2004-04-01 | Intel Corp | Method and system for optimally sharing memory between a host processor and graphics processor |
US20060149943A1 (en) * | 2004-12-02 | 2006-07-06 | International Business Machines Corporation | System and method for simulating hardware interrupts |
Also Published As
Publication number | Publication date |
---|---|
JP5395383B2 (ja) | 2014-01-22 |
US8200950B2 (en) | 2012-06-12 |
US20100050026A1 (en) | 2010-02-25 |
DE102009024012A1 (de) | 2010-02-25 |
KR20100023731A (ko) | 2010-03-04 |
JP2010049500A (ja) | 2010-03-04 |
CN101655784B (zh) | 2013-03-06 |
KR101092955B1 (ko) | 2011-12-12 |
CN101655784A (zh) | 2010-02-24 |
TW201011644A (en) | 2010-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI408601B (zh) | 管線操作處理器及控制系統 | |
US8234463B2 (en) | Data processing apparatus, memory controller, and access control method of memory controller | |
JP2000330789A (ja) | コンピュータシステムおよびその命令実行方法 | |
JP2009037302A (ja) | 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム | |
JPS6015746A (ja) | デ−タ処理装置 | |
JP2006260289A (ja) | ソフトエラー訂正方法、メモリ制御装置及びメモリシステム | |
JPH0540627A (ja) | 並列演算処理装置 | |
JPS6324428A (ja) | キヤツシユメモリ | |
JP2016035626A (ja) | 半導体装置 | |
JPH1021074A (ja) | 割り込み制御方式、プロセッサ及び計算機システム | |
US20110154000A1 (en) | Adaptive optimized compare-exchange operation | |
US8112595B1 (en) | Command cancellation channel for read—modify—write operation in a memory | |
WO2011099048A1 (ja) | 伝送制御装置、メモリ制御装置、及び前記伝送制御装置を備えたplc | |
JP2007206933A (ja) | 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法 | |
US20150293766A1 (en) | Processor and method | |
US20180373582A1 (en) | Data access device and access error notification method | |
JP7312127B2 (ja) | 制御装置 | |
US12056083B2 (en) | Issuing instructions on a vector processor | |
WO2023022035A1 (ja) | プロセッサ | |
US7941638B2 (en) | Facilitating fast scanning for control transfer instructions in an instruction fetch unit | |
US20180101357A1 (en) | Data input/output unit, electronic apparatus, and control methods thereof | |
JP2008250936A (ja) | 二重化制御装置、及びそのトラッキング方法 | |
JP3476314B2 (ja) | マイクロプロセッサ | |
JP5679263B2 (ja) | 情報処理装置及びマイクロ命令処理方法 | |
JP3971780B2 (ja) | 命令制御方法 |