專利名稱:數(shù)字電腦中的控制方法
本發(fā)明與數(shù)字電腦系統(tǒng)有關(guān),嚴(yán)極的說,是論及這類電腦系統(tǒng)CPU內(nèi)部的控制元件的。
電腦系統(tǒng)改進(jìn)的目標(biāo)之一是增加系統(tǒng)處理資料的量。為求如此,在需要較高速的工作情形時,以儲存資料為目的的操作已使用了高速緩沖存儲器,也就是說,由主存取出并經(jīng)CPU計算,修改后的資料只存在高速緩存(cache)內(nèi),變動后的資料除了在特殊情形下,基本上不送回主存。從在審理中的申請案件內(nèi)也可注意到,電腦系統(tǒng)可有2個以上的CPU在操作時共同使用一個主存,在這樣一個系統(tǒng)里,最新的資料項可能只存在某一CPU的高速緩存中,并且在先有技術(shù)中已可讓某一個CPU內(nèi)的高速緩存內(nèi)的資料,在系統(tǒng)另一CPU的要求下直接存取。
但在增強(qiáng)電腦系統(tǒng)處理資料量的要求下,系統(tǒng)必須以流水線(pipe line)的方式來工作,也就是說,在電腦工作周期的各時間段(cycle time slots)內(nèi),可將一系列指令順序送往系統(tǒng)輸入端,而不必等前一個指令完成。因此,在有5個時間段的流水線結(jié)構(gòu)中,可同時允許5個不同的指令在連續(xù)的不同階段下完成工作。
在前述一同待審的申請案中說明的系統(tǒng),每當(dāng)資料移入高速緩存或由其內(nèi)移出時,是以一整個信息組(block)的方式傳送,在所舉的具體作法中,每一信息組是由8個字(word)的資料組成,然而CPU是以單元組工作甚或被定址到的字小至一個位組(byte),整個信息組含被定址的字均被送入CPU內(nèi)的高速緩存儲存。資料由CPU移入高速緩存比從由主存移入可減少相當(dāng)?shù)臅r間,此法需能控制資料的流量(flow)以確保變動后的資料可以正確的與主存取出的信息組的其馀資料合并。
基本上,本發(fā)明的目的在提供一改進(jìn)的電腦系統(tǒng)以增強(qiáng)其資料的處理量。
本發(fā)明的另一個目的在提供一改良的電腦系統(tǒng),說明在一流水線式電腦結(jié)構(gòu)下如何管理資料流量的方法。
本發(fā)明的進(jìn)一個目的在所示的電腦系統(tǒng)中提供一控制高速緩存交換資料的方法,此法可讓流水線式電腦系統(tǒng)內(nèi)的數(shù)個處理器取同樣的資料。
在完成全部的目的時,依據(jù)本發(fā)明已可提供一指南單元,在處理每一項資料的開始與結(jié)束期間,可儲存與數(shù)筆高速緩存資料交換有關(guān)的位址及控制資料,此指南單元有能力把依序處理的相關(guān)重要資料和存于其內(nèi)的相對應(yīng)資料作一比較,以決定程序上是否有沖突存在,如果有沖突,則產(chǎn)生一些控制訊號去消除這項沖突,此外,存在指南單元內(nèi)的位址及控制資料可被取用來把CPU的全部工作資料存入高速緩存的適當(dāng)位置內(nèi)。
附圖簡述在閱讀時從以下的詳細(xì)說明及所附的圖可以更了解本發(fā)明,附圖中包括
圖1是內(nèi)含本發(fā)明具體作法這種類型電腦系統(tǒng)的方塊圖。
圖2是適用于圖1所示電腦系統(tǒng)中這類型CPU的方塊圖。
圖3是圖2所示結(jié)構(gòu)中端口(port)單元的方塊圖。
圖4是使本發(fā)明具體化的存儲指南,其方塊說明圖。
圖5和圖6的方塊圖詳細(xì)描述了圖4所示的存儲指南的某些功能。
發(fā)明詳述現(xiàn)更仔細(xì)的參考這些附圖,在圖1所示電腦系統(tǒng)內(nèi)具有一個處理器(CPU)2和第2個CPU4,還有一個中央接口單元(central interface unit)(CIU)6和第2個中央接口單元(CIU)8,第1個CPU2有辦法與第1個CIU6和第2個CIU8交換資料,第2個CPU4可與第1個CIU6和第2個CIU8交換資料。同樣的,一個以上的輸入/輸出單元(Input/output units)(I/OU)分別可供使用,這些單元基本上在系統(tǒng)的CIU6和8及I/O周邊單元之間是以多工操作(Multi plexed)方式連接。第1個主存單元14與第1個CIU6相連接,同樣的,第2個主存單元16與第2個CIU8相連接,在這樣一個系統(tǒng)中,中央處理器2和4與往常一樣執(zhí)行資料的計算及處理。
資料被送往輸入/輸出單元10或自其處接收資料,中央接口單元6和8具有的功能之一可在中央處理器和輸入/輸出單元及其所屬主存間管理資訊的通信量(traffic)。
主存單元14和16提供一儲存的位置以存放原始資料及已被CPU處理過的資料,在此后所說明的系統(tǒng)里,會見到每一個中央接口單元6和8可與兩個中央處理器2和4之一交換資料,這兩個中央接口單元均與輸入/輸出單元10和12交換資料。此外,在本發(fā)明所舉之具體作法中,這兩個CIU之一有能力與系統(tǒng)另一半所屬的主存交換資料,因此,可以了解在所示的這兩半個系統(tǒng)間有能力作資料的相互交換。
因為有相互交換料的能力,系統(tǒng)的一些單元有必要彼此完全同步,為求如此,控制中心18可供使用,實際上,控制中心18相當(dāng)一個更深一層的CPU,此CPU的功能在設(shè)定系統(tǒng)的基本控制動作,包括工作單元間的同步。
圖1所示的結(jié)構(gòu)說明了本系的工作環(huán)境。
圖2顯示出CPU內(nèi)的主要單元或分系統(tǒng),諸如圖1所示的CPU2和另一個有相同結(jié)構(gòu)的CPU4,CPU2一樣也具有高速緩存,在所舉的具體作法中如圖2所示,高速緩存分成兩個部份或單元加以說明。一個部份是指令緩存20,此后其標(biāo)示為I-cache,高速緩存的另一部份被視為運(yùn)算(operand)緩存22此后標(biāo)示為O-cache,在前述Shelly和Tlubisky先生共同申請的待審案中有更詳盡的說明,一個具有流水線結(jié)構(gòu)(CUPS)的中央單元(central unit)24控制了整個處理器2的動作,指令拾取(fetch)器26可提供或傳送指令字的位址到指令緩存20或運(yùn)算緩存22,在指令緩存由指令拾取器26處收到存放指令的位址后,相反應(yīng)是把此雙字(Double word)的指令由高速緩存20或22送往指令拾取器26。指令拾取器26依序把一系列的指令存入或收集到指令堆棧(stack)中,此堆棧為指令拾取器26中的一部分。
具流水棧結(jié)構(gòu)(CUPS)的中央單元24依程式的順序由指令拾取器26的指令堆棧中取得指令。此CUPS單元24具有5段的流水線結(jié)構(gòu),此結(jié)構(gòu)在前述共同申請的待審案以及Wilhite和Shelly先生一同申請的待審案,S/N 434,196中有更詳盡的說明,CUPS處理由指令拾取器26得到的指令,并執(zhí)運(yùn)算碼的解碼和運(yùn)算位址的組合。
此后,會更詳細(xì)的說明,如果所需的資料存在高速緩存中,這樣的資料將透過分配器(distributor)28,由其取出后送往幾個執(zhí)行(execution)單元中較適當(dāng)?shù)囊粋€去執(zhí)行。
此處所舉例的具體電腦系統(tǒng)中,在數(shù)個執(zhí)行單元中的第1個為一中央執(zhí)行單元(central excution)30,此單元的結(jié)構(gòu)特別適合執(zhí)行電腦的基本運(yùn)算,例如簡單的傳送(Moves)、加、減等,此中央執(zhí)行單元(CEU)30的進(jìn)一步特性是它可以在擬一接收(AS-received)的基礎(chǔ)上執(zhí)行運(yùn)算,第2個執(zhí)行元件被標(biāo)示為一虛擬及安管理器(Virtual and security manager)(VMSM)32,此單元執(zhí)行與虛擬存儲(virtual memory),資料安全性有關(guān)的指令和執(zhí)行特別與作業(yè)系統(tǒng)安全有關(guān)的特殊指令。第3個執(zhí)行單元被標(biāo)示為二進(jìn)制算術(shù)運(yùn)算器(BINAU)34,此單元的結(jié)構(gòu)特別傾向于執(zhí)行諸如乘、除和浮點運(yùn)算指令的二進(jìn)制算術(shù)指令,第4個執(zhí)行元件,在本說明的作法中被標(biāo)示為一數(shù)字/文字執(zhí)行單元(DECCU)36,此單元特別適合執(zhí)行與數(shù)字運(yùn)算,文一數(shù)字及位字串有關(guān)的指令。
執(zhí)行單元32,34,36中的每一個均具有一個輸入堆棧,分別為各執(zhí)行單元收集,及依序確認(rèn)輸入的指令和資料,同樣的,執(zhí)行單元30,32,34,36中的每一個單元均有一存放結(jié)果(result)的堆棧,分別為各執(zhí)行單元收集及依序確認(rèn)執(zhí)行的結(jié)果。指令執(zhí)行隊列(queue)38,在流水線結(jié)構(gòu)的中心單元24控制下依程式的順序把隊列(queue)的執(zhí)行字存起來。收集控制器(collector control unit)40,使用指令執(zhí)行隊列的字去控制最終資料的讀取順序,這些資料存在于執(zhí)行單元30,32,34和36的每一單元的結(jié)果堆棧中,這些執(zhí)行的結(jié)果可透過一個選擇開關(guān)46的配置在這樣的控制狀況下存入主安全存儲器42或存儲堆棧44中。指令執(zhí)行隊列38,收集控制器40,主安全存儲器42,存儲堆棧44和選擇開關(guān)46都是一標(biāo)示為收集器(collector)48的次組件。
以上全部說明的前提是在高速緩存20或22中找尋所需要的資料。假如所需要的資料并不在高速緩存中,則主存14即會透過CIU6被拾取以得到所需的資料,然后,CIU再透過端口單元(ports)50,被高速緩存單元20或22拾取,當(dāng)如此取得的資料已存入高速緩存時,CPU的動作即如前述方式進(jìn)行。當(dāng)所選擇到的資料已經(jīng)被1個或1個以上的執(zhí)行單元處理過時,資料將會由存儲堆棧44中存回到高速緩存的結(jié)構(gòu)中。
圖3把在圖2所引用的端口(ports)單元50的功能方塊圖顯示出來,端口單元50的主要功能是在CPU與CIU之間提供界面的控制。端口單元有兩個主要的程序(sequences)完成前述的控制。其中第1個與CPU流水線的動作狀態(tài)及其內(nèi)的高速緩存有關(guān),第2,端口單元將高速緩存的指南(directory)加以復(fù)制并保存起來,此后引用為復(fù)制指南。
要完成這些控制功能,端口單元具有一些分項組件,這些分項組件的第1項是一個流水線動態(tài)控制器52,第2個這樣的分項組件是一個復(fù)制指南動態(tài)控制單元54,此外,還有一復(fù)制指南56,和一個指令堆棧(I-stack)保護(hù)單元58,一個端口存儲指南60和一個區(qū)域(zones)控制器62,每一分項組件均可看到有一些引線在這些元件上進(jìn)出,這些線是代表這類型的訊號而非指定實際的導(dǎo)線,訊號被送往或來自這些組件,同時,在CIU和CPU上分別標(biāo)示了多條虛線,這些線指出電腦系統(tǒng)中的主要組件并未包括在端口單元50之內(nèi),而端口單元的組件可與前述組件交換資料。
流水線動態(tài)控制器52是一個邏輯電路可在端口單元50和CPU之間提供作為主要的控制界面。流水線執(zhí)行動態(tài)控制器52由運(yùn)算緩存(O-cache)處收到命令訊號。因為CPU的工作有時會用到運(yùn)算緩存(O-cache)和指令緩存(I-cache),所以流水線動態(tài)控制器52必須能對涉及指令緩存(I-cache)的命令訊號有所反應(yīng),只要用到指令緩存(I-cache)就會同時用到運(yùn)算緩存(O-cache),指令緩存(I-cache)來的命令會與由運(yùn)算緩存(O-cache)來的命令相同,但是運(yùn)算緩存(O-cache)來的命令訊號中有一個訊號可表示其只涉及到運(yùn)算緩存(O-cache-only)資料的檢索或可對兩個存儲器檢索資料。自高速緩存處也可收到一個訊號指出檢索高速緩存的結(jié)果亦即以“同”(HIT)或“不同”(MISS)表示此訊號。流水線動態(tài)控制單元52使CPU來的這些命令和“檢索結(jié)果”(SEARCH RESULTS)訊號與其他單元來的資料有相互的關(guān)系,此后會有更詳細(xì)的說明,控制單元52還提供命令和控制訊號給端口單元50的其他組件去并把控制命令訊號送往所屬的CIU。
此外,流水線動態(tài)控制器52會把控制訊號送往所屬的CPU,例如,一個“存入”(STORE)或“寫入”(WRITE)的命令,控制器52會送出一個“存入”控制(STORE)訊號到收集器48作為檢索高速緩存的結(jié)果,控制器52還提供了一(BREAK)“中斷”控制訊號到高速緩存并/或提供一“暫?!?HOLD)控制訊號到CUPS單元24,后面這兩個訊號指出在流水線的動作過程中,繼續(xù)執(zhí)行被呼叫的程序會令后面的處理產(chǎn)生錯誤的結(jié)果,亦即,“中斷”(BREAK)和“暫?!?HOLD)訊號控制CPU暫時停止CUPS單元和高速緩存的工作以在干擾作用消除后能再繼續(xù)嘗試執(zhí)行所示程序。
流水線動態(tài)控制器52也接受由CUPS單元來的“清除”(CANCEL)訊號,此訊號指出在CUPS單元內(nèi)部發(fā)生了一不正常的狀況使得在某一特定周期后的所有流水線中的訊號應(yīng)被清除掉,當(dāng)然,CUPS單元元件將會重新起動流水線的工作。
復(fù)制指南動態(tài)控制單元54會在檢索復(fù)制指南56時產(chǎn)生一些控制訊號。在CPU內(nèi)部,每一個高速緩存20和22均以資料陣列(data array)或指南陣列(directory array)的格式存在,一般,指南陣列記錄資料的位址,資料則存在所屬的資料陣列內(nèi)。當(dāng)高速緩存被檢索時,要找的資料的位址要在指南中檢索,在圖3所示的端口單元件里,復(fù)制指南實際上是CPU內(nèi)2個高速緩存的指南陣列的復(fù)本,端口單元內(nèi)指南的復(fù)制可允許在檢索資料時作更快速的存取,因為復(fù)制指南與高速緩存內(nèi)的指南可獨立的檢索,亦即可同時檢索。復(fù)制指南自流水線動態(tài)控制器52處接收一個命令訊號,此命令控制CPU之相關(guān)動作,復(fù)制指南56也可由CIU處接收與資料交換有關(guān)的“命令”(COMMAND)及“位址”(ADDRESS)訊號,這些資料可來自所屬CPU以外的地方,例如,圖1中所示的兩個CPU的另外一個。
一如1983年6月7日建檔,序列號碼511,616一同申請的待審案中所說明者,這兩個CPU是在共用主存的基礎(chǔ)下工作,同時,兩者可對相同的資料塊工作,CIU提供一定的控制方式可令資料在CPU與主存間傳送時維持一定的順序,后面還可更詳細(xì)的看到,復(fù)制指南56也接收由端口存儲指南60來的位址資料,當(dāng)復(fù)制指南已收到了一個由流水線動態(tài)控制器或由CIU來的命令后,表示引發(fā)了一定的控制與位址訊號,用來檢索復(fù)制指南內(nèi)的記錄以決定被定址的資料塊是否存在于所屬的高速緩存中。
復(fù)制指南56于是產(chǎn)生“中”(HIT)或“不中”(MISS)訊號作為檢索結(jié)果(search result)而與一命令訊號一同被送往復(fù)制指南動態(tài)控制單元54,這些訊號指出了起動檢索所需命令訊號的來源和性質(zhì)。此復(fù)制指南動態(tài)控制單元54,于是用由復(fù)制指南56來的(COMMAD)“命令”,及(SEARCH RESULT)“檢索結(jié)果”訊號,由端口存儲指南60來的(SEARCH RESULT)“檢索結(jié)果”訊號和一些由流水線動態(tài)控制器52來的其他訊號諸如(INTERFERENCE)“干擾”及(ALLOCATE SWAP REQUESTED)“換位調(diào)整需求”訊號的相互關(guān)系,來決定所示的資料交換是否順利進(jìn)行,或是已發(fā)生問題。由于復(fù)制指南56主要是在CIU的一定方式要求下,檢索高速緩存的內(nèi)容,復(fù)制指南動態(tài)控制單元54將提供一既定的反應(yīng)訊號回到CIU,此反應(yīng)訊號為一(REQUEST DONE)“請求結(jié)束”。另一方面,假使資料要被由所屬的高速緩存移出(swapped out)時,單元54會產(chǎn)生一“換位”(SWAP)訊號給CPU以起動一個換位(swap)的程式,同時單元54還會送出一個標(biāo)示為(SWAP BUFFER ADDRESS)“換位緩沖器位址”的訊號給CIU,一如前述待審的共同申請案,編號511616中所述。CIU內(nèi)有一移位用緩沖器(SWAP buffer)在移位動作時作為暫時儲存之用。當(dāng)一項移位動作已在進(jìn)行時,復(fù)制記錄器動態(tài)控制元件54會提供一(SWAP EXECUTING)“換位執(zhí)行”訊號送往流水水線執(zhí)行動態(tài)控制器52。
有時正常的資料交換可能會需要把一段新的資料存入高速緩存所分配的位址中,而原已存在此位址的資料還是有用的,因為,依正常高速緩存放資料方式,唯一有效的一段復(fù)制資料即存在于高速緩存中,這段資料必須在新的資料存入之前先移回到主存中,這樣的需求須要讓流水線動態(tài)控制器52自運(yùn)算緩存(O-cache)處取得一個命令。然后再由流水線動態(tài)控制器產(chǎn)生一“換位配置需求”(ALLOCATE SWAP REQUIRED)訊號送往復(fù)制指南動態(tài)控制單元54,然后復(fù)制指南56將會起動一個移位程式把資料由CPU移往CIU而流水線動態(tài)控制器52在程序中會用產(chǎn)一中止訊號到高速緩存,使移位的動作先被完成,流水線動態(tài)控制器52和復(fù)制指南動態(tài)控制單元54彼此會相互通知是否有干擾已被對方發(fā)現(xiàn),這些干擾會阻礙所示控制的正確執(zhí)行。同樣的,CIU會把它發(fā)現(xiàn)的任何資料或程序上的錯誤通知復(fù)制指南動態(tài)控制單元54,然后控制器54必須把進(jìn)行中的程序中斷下來,如果復(fù)制指南動態(tài)控制單元54已收到了“錯誤”(ERRORS)或“干擾”(INTERFERENCE)這類的指示,單元54將會通知復(fù)制指南56重覆執(zhí)行檢索(search)的命令。在重新檢索時,干擾的情形應(yīng)已可消除。
在圖2中的指令拾取單元(I-fetch)26中,有一指令堆棧其內(nèi)存有預(yù)先由高速緩存20及22取出的指令。在由高速緩存預(yù)取出指令并放入指令堆棧的時間之間,CPU也正在用這些指令,而需求的資料可能已被改變造成CPU動作上的干擾,另一方面,由高速緩存取出的指令,其所用的相關(guān)資料可能已在流水線的程序中,任一種情形都可能在連續(xù)處理這些被存在指令堆棧的指令時,使電腦系統(tǒng)造成錯誤的資料處理。
為了避免這種情形發(fā)生,指令堆棧(I-stack)具有一保護(hù)單元58,在指令堆棧保護(hù)單元58中,指令堆棧(I-stack)的每一個位置均有一暫存器(register)與之對應(yīng),指令拾取器(I-fetch)來的高速緩存位址和將要被了解的端口存儲指南60所討論的位址相比較,以決定是否會有干擾的情形存在,對于有問題的指令這種情形會使提出的動作變成無效,如果像這樣的干擾狀況被發(fā)現(xiàn)以后,指令堆棧保護(hù)單元58將會依據(jù)干擾狀況的性質(zhì)傳送一個清除(cancel)訊號到指令拾取(I-fetch)器,以消除指令拾取器已選定的記錄。換句話說,如果高速緩存已收到一“寫入”(WRITE)命令,要把資料寫入到高速緩存所設(shè)定的位址內(nèi),這個位址也會被送到指令堆棧(I-stack)保護(hù)單元,好與指令堆棧(I-stack)的內(nèi)容相比較。如果是“同”(HIT)這個訊號,指令堆棧保護(hù)單元58會把一個“指令堆棧清除”(FLUSH I-stack)訊號傳送到指令拾取(I-fetch)器以消除(HIT)“中”這個訊號以后的所有指令,此“指令堆棧清除”(FLUSH I-STACK)訊號也被送到流水線動態(tài)控制器52去,再由其送出一暫停(HOLD)訊號到CUPS單元,暫時停止工作直到指令堆棧被清除為止。
端口存儲指南60將在下面作更詳細(xì)的討論,其內(nèi)主要有一存放位址資料的暫存器,這個暫存器所存放的是在流水線結(jié)構(gòu)中處理而尚未處理完的每一項資料的位址。此端口存儲指南60接收由高速緩存來的位址資料并由流水線控制器52處接收一命令訊號,在此命令訊號控制下,端口存儲指南把位址資料存在端口存儲指南內(nèi)的適當(dāng)位址中,在所示的具體作法里,端口存儲指南的暫存器是由一個4×4的記錄陣列(array)所組成,也就是說,有4層記錄(entry),每層有4組。在所示具體作法里的每一項記錄是由一個40位(bit)長的字組成,其內(nèi)包含了一個16位的實際存儲的位址,一個11位的高速緩存的位址,和1個位的高速緩存識別碼(以區(qū)分是運(yùn)算緩存O-cache還是指令緩存(I-cache)的位址)。一個2個位元的高速緩存層次訊號(指示高速緩存的位址是何種層次),一個2個位元的換位辨識訊號(在需要換位時,指出換位緩沖器中的位址)以及8個工作旗號(Flag),以指出被要求與前述位址相結(jié)合的是何種工作,端口存儲指南內(nèi)暫存的16項記錄應(yīng)能隨流水線結(jié)構(gòu)安排(scheduled)下完成的所有工作自行調(diào)整。
每當(dāng)一個運(yùn)作的記錄送入流水線的CUPS元件24(圖2)時,其所屬的位址會被送入端口存儲指南60,而由流水線動態(tài)控制器52來的命令指出,端口存儲指南60的暫存器應(yīng)被檢索一下以決定流水線結(jié)構(gòu)中是否有另一個尚未完成的動作也使用到同樣的位址。經(jīng)過了這樣的比較后,如果在端口存儲指南中并無相同的位址,則新記錄的位址會被放入端口存儲指南的陣列中。相反的,如果在端口存儲指南中發(fā)現(xiàn)有另一項記錄與議論中者同指一個位址時,則(HIT)“同”那個訊號會被拿來判斷,以決定此項新的記錄與原先的記錄相容還是互斥,如果不會造成互斥,則新的記錄將被視為一分類為“不中”(MISS)的記錄,相反的,如果造成了互斥,則會有一控制訊號送往CPU提供必要的修正動作以排除互斥現(xiàn)象,互斥會使錯誤的資料被送入電腦系統(tǒng)里。
還記得由指令拾取(I-fetch)器26取得的位址資料應(yīng)被送往指令堆棧保護(hù)單元58的輸入端。同樣的位址資料會被送往端口存儲指南60的輸入端,此位址將與先前存入端口存儲指南60的高速緩存位址資料相比較,如果在端口存儲指南中并未找到相同的位址,此端口存儲指南會送出作為檢索結(jié)果(search result)的一個“不同”(MISS)訊號到指令堆棧保護(hù)單元58去。如果,相反的,找到的是相同的位址,則會有一“同”(HIT)訊號可資判斷以決定訊號“同”(HIT)是否會造成沖突并在電腦系統(tǒng)中產(chǎn)生錯誤結(jié)果。如果確有沖突存在,則有一“檢索結(jié)果”(Search RESULT)訊號會被送到指令堆棧保護(hù)單元58以指出這種現(xiàn)象,而再由指令堆棧保護(hù)單元58送出一個“指令堆棧清除”(FLUSH I-stack)訊號。
同樣的,當(dāng)訊號由CIU透過一定的結(jié)構(gòu)被復(fù)制指南56接收時,表示由CIU處送來了一個命令和位址,此位址會和已存在復(fù)制指南的一些位址比較,以決定這塊資料是否已存在高速緩存內(nèi)。隨后,復(fù)制指南56送一個位址到端口存儲指南去,以決定此位址是否與流水線結(jié)構(gòu)內(nèi)目前尚未執(zhí)行完的位址相同,此位址比對的結(jié)果經(jīng)由端口存儲指南60被送到復(fù)制指南動態(tài)控制單元54。如果端口存儲指南內(nèi)并沒有這個位址,則送出的檢索結(jié)果會是一個“不同”(MISS)訊號,如果結(jié)果為一個“同”(HIT)訊號,則可用此“同”(HIT)訊號來判斷以決定是否接下去的處理會產(chǎn)生沖突無用的結(jié)果。如果是這樣,復(fù)制指南動態(tài)控制單元54會產(chǎn)生一適當(dāng)指令,在沖突消失后令復(fù)制指南56再送出請求訊號,或是把一個“干擾”(INTERFENCE)訊號送到流水線動態(tài)控制器52,以令CPU或CIU視需要進(jìn)行修正動作。
端口存儲指南60的另一項功能是當(dāng)CPU正在處理一項選定的資料時,把CPU動作有關(guān)的位址和控制資料儲存起來。當(dāng)CPU完成了資料處理后,處理的結(jié)果會被存到CPU的收集器48去。當(dāng)收集器48內(nèi)的資料要被送回到高速緩存儲存時,會對端口存儲指南60產(chǎn)生一個命令,再由存儲指南60產(chǎn)生高速緩存的位址及選擇訊號,使得由收集器來的資料可被存到高速緩存中。在由收集器來的資料被存到高速緩存的同時,端口存儲指南60也把資料的位址送到復(fù)制指南56去。因此復(fù)制指南保存的位址記錄可與存放資料的高速緩存完全相同。當(dāng)送往端口存儲指南60的命令中有一個對高速緩存的“寫入入”(WRITE)訊號時,高速緩存的位址也會被送到指令堆棧保護(hù)單元58去,指令堆棧保護(hù)單元58再將它與其內(nèi)部所存的資料比較,以決定在指令堆棧中是否有一指令與目前的“寫入”(WRITE)指令相沖突。如果有這樣的沖突,則指令堆棧保護(hù)單元會對流水線動態(tài)控制器和指令拾取器產(chǎn)生一些控制訊號,以進(jìn)行必要之修正動作。
在所示的具體作法中,資料是以每段8個字的方式由主存送往高速緩存去,高速緩存每一個位址的位置(location)具有2個字或是占每段8個字中的2個。因此,存在端口存儲指南60內(nèi)的每一位址均為2個字。CPU的動作實質(zhì)上可能不需用到整個雙字,實際上可能少到雙字中的一個字的一個或多個位組。在多種場合中,此8個字段的內(nèi)含位址可能來自主存或由另一個CPU內(nèi)的高速緩存送來,在此電腦系統(tǒng)中的CPU特性是CPU不必等整段8個字的資料完全移到高速緩存即可處理其現(xiàn)有的資料。
因為由主存取資料的步驟相當(dāng)慢,CPU處理過的資料有可能在主存的資料被存入高速緩存之前已先行存入高速緩存。如果是這樣,則被CPU存入高速緩存的處理過的資料將會被由主存來的舊資料蓋過去,使得此處理后的新資料被破壞掉,要避免這種情形,區(qū)域控制器62在端口存儲指南60內(nèi)對每一筆記錄存了一組區(qū)域控制訊號,在端口存儲指南內(nèi)的每一個位址對應(yīng)到高速緩存的一筆雙字的記錄,每個字系由4個位組(Byte)或區(qū)域組成。因此,每一個雙字內(nèi)將包含8個區(qū)域或位組。每一個雙字的區(qū)域,用一個存在區(qū)域控制器內(nèi)的位,依其所在的位置關(guān)系來表示。
如圖3所示,此區(qū)域控制器收到CPU送來的一個儲存的命令,表示CPU被指示要對高速緩存的某一項位址進(jìn)行存入的動作。區(qū)域控制器62接受由CPU收集器48或直接由CPU的DECCU單元36來特定區(qū)域訊號。區(qū)域控制訊號指出雙字的那一塊區(qū)域或位組被CPU保留作為資料處理用。這些訊號組成一個禁止(inhibit)訊號供資料記錄來自其他資料源(source)的區(qū)域使用。當(dāng)已完成資料交換后,區(qū)域控制器會自CIU處收到一個“命令結(jié)束”(COMMAND COMPLETE)訊號而把其堆棧中的記錄洗掉,此同一訊號會產(chǎn)生另一“記錄重置”(ENTRY RESET)訊號而被送往端口存儲指南60,此“記錄重置”訊號的作用在把存于端口存儲指南內(nèi)與某一資料記錄有關(guān)的旗號(FLAG)于以重新設(shè)定。
圖4所示系以更詳細(xì)的方式描述端口存儲指南系統(tǒng)60的方塊圖。此端口存儲指南包含了一組記憶體陣列(array)64。在所例舉的具體作法中,記憶體陣列的安排有4個層次依照圖4的設(shè)計分別為層次0,層次1,層次2和層次3。每一層次內(nèi)具有4組記錄,構(gòu)成一個有16組記錄的記憶體陣列元件。在端口存儲指南記憶體陣列64(port store directory memory array)中的每一筆記錄包括有一個高速緩存的位址(實際位址的次位元(least significant)部份),一個實際的頁數(shù)(實際位址的主位元(Most significant)部份),一個高速緩存鑒別碼(分辨所屬高速緩存是指令緩存還是運(yùn)算緩存),一個高速緩存層次碼,一個換位(SWAP)緩沖器位址,和幾個定義記錄目的旗號(Flag)。由CPU來的位址資料被視為輸入訊號經(jīng)由圖4中標(biāo)示為“初始位址”的(PRIMARY ADDRESS)輸入端加到選擇器(selector)66的輸入上,同樣的,由CIU來的位址訊號被當(dāng)作輸入訊號加到標(biāo)示為“主存系統(tǒng)位址”(MEMORY SYSTEM ADDRESS)的端點上并作為選擇器66的第2個輸入,此處的位址訊號是指由主存或由至CPU以外的CPU送來的位址訊號。
陣列64中有一“寫入”(WRITE)邏輯68系受一寫入/清除輸入控制器70(write/clear entry control unit)的控制。寫入/清除輸入控制器70的輸入訊號內(nèi)有一個“儲存標(biāo)記”(STORE TAG)訊號,此訊號被加到端口存儲指南去作為外加命令訊號的一部份?!皟Υ鏄?biāo)記”訊號是一個4位的訊號用來區(qū)別陣列54里每一筆記錄的層次(LEVEL)和組別(SET)。寫入/清除記錄控制器70的其他輸入訊號內(nèi)有從所屬CPU來的存取控制訊號,這些訊號被標(biāo)示為“高速主緩存存取控制”(PRIMARY CACHE ACCESS CONTROL)。元件70還有一個標(biāo)示為“主存系統(tǒng)界面控制”(MEMORY SYSTEM INTERFACE CONTROL)的輸入訊號,此訊號代表由CIU來的控制訊號,作為由主存或第2個CPU來的控制資料。寫入/清除記錄控制器70對陣列64提供輸出訊號以控制作為被存入的資料源的選擇,此資料來自高速主緩存(primary cache)或來自主存系統(tǒng),輸入的位置和時序則系來自選擇器66。
如前所述,在工作時,會用到流水線動態(tài)控制器(表示所屬CPU的內(nèi)部工作狀態(tài)),復(fù)制指南(表示由CIU或主存系統(tǒng)來的動作情形),或是指令拾取器(其任務(wù)是把一項新的資料送入CPU的工作程序去處理),而位址及其他相關(guān)性資料則參照端口存儲指南所提供者,“讀入”(READ)邏輯71的輸入訊號中,一部分的位址訊號來自指令拾取器,初始位址,主存系統(tǒng)位址和“儲存標(biāo)記”訊號,這些訊號可被選擇加到邏輯71上,以對記憶陣列64的特定位址作選擇性的讀取。新資料的位址會和端口存儲指南60內(nèi)記憶陣列64讀出的位址以組(set)為單位加以比較,此位址的比較是由一個位址比較邏輯器72來執(zhí)行,在圖5中會有更仔細(xì)的說明。
如果新資料的位址并不在陣列64中,則新資料會經(jīng)由選擇器66并在寫入/清除記錄控制器70的控制下進(jìn)入陣列中,如果,相反的是,在記憶陣列64中有相同的位址,則所屬的旗號會被用來判斷以決定原定指令的執(zhí)行是否會造成不正確或沖突現(xiàn)象,如果不會有這種不正確及沖突產(chǎn)生,則程序可繼續(xù)執(zhí)行而不被中斷,如果,相反的,程序的繼續(xù)執(zhí)行會造成沖突或不正確現(xiàn)象,則會有一“中斷”(BREAK)訊號會被送往適當(dāng)?shù)挠崋柶?interrogating unit)去。
組合/起動存取控制器74(combine/enable accesscontrol unit)會由陣列64中選取適當(dāng)?shù)钠焯?,此元件在圖6中有詳細(xì)的說明,位址的“同”(HIT)或“不同”(MISS)訊號可被選擇后加到主存系統(tǒng)中斷邏輯器(memory system break logic)76,流水線結(jié)構(gòu)中斷邏輯(pipeline break logic)78,或指令拾取中斷邏輯(I-fetch break logic)80的輸入端,中斷邏輯是由檢索加到位址比較邏輯器72的輸入位址訊號和加到組合/起動存取控制器74的輸入控制訊號的動作來作適當(dāng)?shù)倪x擇。由元件76,78或80來的“中斷”或“不中斷”(BREAK or NO-BREAK)訊號被加到對應(yīng)的元件上把新的需求延后,直到任何的這種沖突被排除后再開始。
如前所述,“儲存標(biāo)記”(STORE TAG)訊號確認(rèn)陣列64內(nèi)每一項記錄的位址,并送往寫入/清除記錄控制器70的輸入端以執(zhí)行如是的控制。經(jīng)過有效的記錄控制后,“儲存標(biāo)記”訊號會被存到“儲存標(biāo)記器”82,當(dāng)收集器48(圖2)準(zhǔn)備好將來自CPU已處理過的資料再存回高速緩存時,對應(yīng)到此資料項的“儲存標(biāo)記”訊號會被由儲存標(biāo)記儲存器(store tag storage)82取出,并加到陣列64的“讀取(READ)輸入端71上以從陣列64中取出資料的位址,送往高速緩存去。陣列64每一層次來的位址會被送給選擇器(selector)84。“儲存標(biāo)記”訊號也被送往選擇器84,以決定選取那一層次的訊號可透過高速緩存的資料寫入緩沖器(CACHE write information buffer)86送往高速緩存去,使收集器的資料可存進(jìn)高速記憶系統(tǒng)的適當(dāng)位址內(nèi)。
圖5中對端口存儲指南列陣64及其相關(guān)的位址比較邏輯72會有更詳盡的說明。所示的陣列64中具有4個層次的資料儲位,在圖中標(biāo)示為層次0,層次1,層次2和層次3。每一個層次具有4組資料分別標(biāo)示為組別0,組別1,組別2和組別3。圖中可見到,每一層次附有3個輸出選擇器。例如,層次0有第1個選擇器88,第2個選擇器90和第3個選擇器92附屬它,88,90和92每一個選擇器的輸入分別與層次0內(nèi)的4組獨立資料作個別的連接,選擇器88與指令拾取器的輸入控制及位址訊號相接,選擇器90與“流水線結(jié)構(gòu)位址”(pipeline ADDRESS)訊號相接并受其控制,此訊號為CPU內(nèi)端口存儲指南所屬的相對應(yīng)訊號。選擇器92系與“主存系統(tǒng)位址”(MEMORY SYSTEM ADDRESS)訊號相接,此訊號為CIU來的位址訊號。
同樣的,陣列64層次1的部分也有3個附屬的選擇器分別與層次0所屬的選擇器88,90和92相對應(yīng),并受到相同的控制,其次,陣列64的層次2和3分別有3個附屬的選擇器,這些選擇器也受到與選擇器88,90和92相同的控制方式。
前述的12個選擇器分別有12個比較器組94與之對應(yīng),每一選擇器均與其所屬的一個比較器的輸入端相接。選擇器88的輸出與比較器組94第1個比較器的輸入端之一相接,使所選到的輸出訊號可與指令拾取器相對應(yīng)的位址訊號比較,如果與指令拾取器來的位址相同,而且此位址存放于陣列64層次0的某一組中則比較器組94的第1比較器的輸出將產(chǎn)生一個“同”的(HIT)訊號。
選擇器90的幾個輸入系來自陣列64層次0的各組記憶體,并會對流水線結(jié)構(gòu)位址訊號有所反應(yīng),選擇器90的輸出被送到比較器組94的第2個比較器的輸入端之一,而與所屬CPU來的高速緩存位址訊號相比較,如果高速緩存位址訊號與一組由選擇器90來的位址訊號相同,第2個比較器94將產(chǎn)生一個(HIT)的訊號。第3個選擇器92的輸出被送到比較器94的第3個比較器的輸入端之一,而與由CIU來的“主存系統(tǒng)位址”訊號相比較,此處,也是一樣,如果CIU來的位址訊號和一組選擇器92來的位址訊號相同,則比較器會產(chǎn)生一個“同”(HIT)的訊號。對1,2和3每一層次都可見到有3個比較器與所對應(yīng)選擇器的輸出加以比較,而每一層次也都有所屬的“指令拾取位址”訊號,“流水線結(jié)構(gòu)位址”訊號,和“主存位址”訊號。
如圖5所示,與層次0,1,2,3各別所屬的第1個比較器的輸出分別送往圖4所示的指令拾取中斷邏輯器80作為其輸入訊號,同樣的,與層次0,1,2,3各別所屬的第2個比較器的輸出分別送至圖4所示的流水線結(jié)構(gòu)中斷邏輯器78作為其輸入訊號。接著,與層次0,1,2,3各別所屬的第3個比較器的輸出分別送至圖4所示的主存系統(tǒng)中斷邏輯器76作為其輸入訊號。指令拾取器位址,流水線結(jié)構(gòu)位址,和主存系統(tǒng)位址被送到選擇器88,90,92和比較器94作為輸入控制訊號,在所示之具體作法中,這些位址訊號有2個位用來在這幾個層次中選擇是那一組位址可被送往比較器94,而前述位址的其馀部份再與此選定層次及組別的位址在比較器組94處比較。
前面已提過,在圖6中會以更詳盡的角度說明組合/起動存取控制邏輯74,所示的陣列同樣有4個儲存資料的層次,在圖上分別標(biāo)明為層次0,層次1,層次2和層次3,每一層次又具有4組資料,其標(biāo)示為組別0,組別1,組別2和組別3,如圖5所示,此處也一樣,陣列64的每一層次均有3個所屬的選擇器。4個層次的每一個層次分別有所屬的第1個選擇器96,各層次所屬4組資料的一組作為選擇器的輸入訊號之一,選擇器96受加于其上的指令拾取組別選擇(I-fetch set select)訊號的控制,第2組的4個選擇器98分別屬于層次0-3的各層次,并受加于其上的流水線結(jié)構(gòu)組別選擇(pipeline set select)訊號的控制,第3組的4個選擇器100分別屬于層次0-3的各層次,并受加于其上的主存系統(tǒng)選擇訊號(Memory system select)的控制,12個選擇器96,98,和100的各個輸入,對每一層次均相同,以此方式,96,98,100的各選擇器用所屬層次的4組資料作為輸入訊號而形成旗號資料(Flag information)。4個選擇器96的輸出被接到指令拾取中斷邏輯器80(見圖4)處,使旗號資料可送過去,4個選擇器98的輸出被接到流水線結(jié)構(gòu)中斷邏輯器78處,使旗號可送過去,而4個選擇器100的輸出被接到主存系統(tǒng)邏輯器76處,使旗號可送過去。
如圖4所示,有幾個輸出訊號是由圖5所示位址比較結(jié)構(gòu)和圖6所示結(jié)構(gòu)的輸出旗號所產(chǎn)生,這些訊號在圖4的中斷邏輯電路76,78,80中組合,以決定由圖5輸出的位址“同”(HIT)的訊號實際上是否會造成CPU動作上的沖突現(xiàn)象,如果會的話,端口存儲指南會送出一個對應(yīng)的“中斷”(BREAK)訊號到CPU或CIU的適當(dāng)單元去,以產(chǎn)生必須的中斷使沖突現(xiàn)象可被消除。值得注意的是,如果在位址比較邏輯72中產(chǎn)生位址“同”(HIT)的訊號結(jié)果,而如果在圖6電路的輸出處并沒有相對應(yīng)的旗號被設(shè)定,則陣列64中的位址將是個無效的位址,而會得到一個“不同”(MISS)的訊號結(jié)果,這是因為在把位址資料送入端口存儲指南陣列的目的完成后,會重新設(shè)定相關(guān)的旗號,實際上,亦即把陣列64的這一部分清除掉。
作業(yè)上,每遇有涉及所屬或CPU自身高速緩存定址的指令時,含有被定址資料的高速緩存位址及實際頁數(shù)會被送往陣列64存起來,前面已提過,在陣列64里某一項記錄所存的資料還有應(yīng)含有高速緩存的識別訊號,高速緩存的前引(lead)號碼,換位緩沖位址,和多個設(shè)定輸入功能或目的的旗號,在本發(fā)明所示的具體作法中,有8個單位的旗號,依安排的位置選定工作的方式或找尋資料的工作方式。位址資料的一部份用來分辯在陣列所示層次中,是那一組位址被定址到。
當(dāng)指令可被CPU用來處理時,則所涉及的資料位址就會被載入陣列64的適當(dāng)位址中。此位址會一直保留在那里,直到所示的工作或幾件工作被完成為止。
當(dāng)新的指令來的時候,由CPU或CIU來的相關(guān)資料的位址會和存在于陣列64中的位址相比較,如果在陣列64中有相同的位址,則會有一個“同”(HIT)的訊號結(jié)果指出涉及此新指令的資料已存在于流水線的示構(gòu)中受CPU的處理。此一“同”(HIT)訊號被送至適當(dāng)?shù)囊粋€中斷訊號元件(BREAK signal unit)76,78或80,由這些元件來處理存在記憶體的位址旗號資料,以決定如果有新指令要被執(zhí)行時,是否會產(chǎn)生沖突。例如,有些指令可能會對高速緩存中正被CPU修改的資料加以讀取,則后一指令的結(jié)果會有一條件使其無效。某些資料的處理在執(zhí)行時不會有問題,但是像上面所述的一些其他的處理,最后會把錯誤或無效的資料存到高速緩存中,當(dāng)然,這會令電腦也輸出錯誤的資料。如果中斷邏輯(BREAK Logic)電路發(fā)現(xiàn)有這種沖突存在,則中斷邏輯元件會產(chǎn)生一“中斷”(BREAK)訊號到電腦系統(tǒng)里的適當(dāng)單元去,以中斷被干擾指令的執(zhí)行,并在沖突消除后重新執(zhí)行該指令,以完成流水線結(jié)構(gòu)中該項資料的處理。
如果中斷邏輯元件并沒有發(fā)現(xiàn)有沖突發(fā)生,則可允許進(jìn)行新的處理,同時適當(dāng)?shù)钠焯枙辉O(shè)定后存在陣列中。
相反的,如果新指令的位址與陣列中所存位址比較的結(jié)果是一個“不同”(MISS)的訊號,則與比新指令有關(guān)的位址及控制資料會存入陣列64內(nèi)所示的位址中,并一直存于其中直到所示指令的工作被完成為止。在CPU處理資料的這段時間里,與處理有關(guān)的幾個暫存器并不隨儲存最后資料的高速緩存的位址而調(diào)整,因此,當(dāng)資料處理完后,資料的結(jié)果會置于收集器內(nèi)并準(zhǔn)備存進(jìn)高速緩存,此時,元件82的“儲存標(biāo)記”訊號會對陣列64的讀入控制邏輯71加以定址,以讀出一個高速緩存的位址,好把收集器的資料存到高速緩存中,此取出的高速緩存位址被送往高速緩存,使得收集器的資料可被存進(jìn)此位址中。
因此,依據(jù)本發(fā)明,已可提出一套高速緩存的存入(store-into-cache)格式供電腦系統(tǒng)使用,此電腦系統(tǒng)所用的CPU系依流水線的程式工作,其控制資料流程的方法系透過流水線的程序以免在系統(tǒng)處理資料時造成問題,并供資料處理應(yīng)用時適時保留高速緩存的位址。
權(quán)利要求
1.在有中央處理器(central processor unit)和主存的電腦系統(tǒng)中,前述的中央處理器內(nèi)部擁有一個以儲存為基本工作的高速緩存,同時,在這樣一個系統(tǒng)中,前述的中央處理器是以流水線(pipeline)的格式和一些控制資料流程的控制方法工作,以避免在流水線的設(shè)計中發(fā)生指令相沖突的結(jié)果,所說方法的特征為記憶體儲存資料的方法,記憶體陣列中有多個可定址的位置,在前述陣列被設(shè)定位址的位置中可儲存資料,這些資料是和現(xiàn)存于前述流水線結(jié)構(gòu)中的各個指令有關(guān)的位址及功能旗號,比較位址資料的方法,和每一個新指令有關(guān)的位址資料系存在于前述陣列中,此法可檢知在前幾個依舊執(zhí)行中的指令與前述新指令使用相同資料的情形,在位址一致的狀況下,會產(chǎn)生一個“同”(HIT)訊號,判斷功能旗號資料的方法,此資料對應(yīng)到前述陣列中發(fā)生相同狀況的位址,以決定執(zhí)行前述的新指令是否會造成沖突,前述的判斷方法尚包括一產(chǎn)生“中斷”(BREAK)訊號的方法,使得在發(fā)生沖突時,能對前述的電腦系統(tǒng)提供指示。
2.在權(quán)利要求
1中所述的電腦系統(tǒng)的控制方法中,所說記憶體陣列具有16個可設(shè)定位址的位置可供應(yīng)高達(dá)16項的記憶。
3.在權(quán)利要求
1所述的電腦系統(tǒng)的控制方法中,所說記憶體陣列有可設(shè)定位址的位置,其設(shè)定的位址和所選定的資料有關(guān),此資料為存于記憶體中前述位址資料中的一項。
4.在權(quán)利要求
1所述的電腦系統(tǒng)的控制方法中,有一個可接收前述位址資料的方法,此位址資料和前述的新指令有關(guān),均來自中央處理器或前述的主存系統(tǒng)。
5.在權(quán)利要求
4所述的電腦系統(tǒng)的控制方法中,前述的陣列具有數(shù)層,每層可有多組記錄。
6.在權(quán)利要求
5所述的電腦系統(tǒng)的控制方法中,前述的陣列有4層,每層可有4組記錄,前述的各層和前述的各組均可獨立的定址。
7.在權(quán)利要求
6所述的電腦系統(tǒng)的控制方法中,前述的比較方法內(nèi)有一輸出選擇器法,此法中的選擇器分別與前述各層相結(jié)合,以完成一項受控制的選擇,選取與各組記錄有關(guān)的位址資料。
8.在權(quán)利要求
7所述的電腦系統(tǒng)的控制方法中,前述的比較法還有一比較的方法,此法中的比較器被連接的方式使其可以比較由前述陣列中選出之輸出位址資料和由前述新指令來的位址資料。
9.在權(quán)利要求
8所述的電腦系統(tǒng)的控制方法中,與前述各層有關(guān)的輸出選擇器方法內(nèi),有數(shù)組選擇器,前述數(shù)組選擇器的每一個元件均被分別接到不同的定址來源,依其送來的定址訊號令選擇器工作。
10.在權(quán)利要求
9所述的電腦系統(tǒng)的控制方法中,在前述的中央處理器里還有一指令拾取器,而在前述的數(shù)個選擇器內(nèi)有一個選擇器與前述指令拾取器送來的位址訊號相接,第2個選擇器與前述高速緩存來的流水線結(jié)構(gòu)的位址資料相接,而第3個選擇器則與前述主存系統(tǒng)來的位址資料相接,以提供適當(dāng)?shù)姆磻?yīng)。
11.在權(quán)利要求
10所述的電腦系統(tǒng)的控制方法中,在前述的判斷法內(nèi)還有一輸出選擇器法分別與前述的各層相接,以完成一項受控制的選擇,選取功能旗號資料。
12.在權(quán)利要求
11所述的電腦系統(tǒng)的控制方法中,分別與前述各層相關(guān)連的前述輸出選擇器方法中的第1個選擇器,與前述指令拾取器來的功能旗號控制訊號相接,第2個選擇器與前述高速緩存來的功能旗號控制訊號相接,第3個選擇器與前述主存系統(tǒng)來的功能旗號相接,以提供適當(dāng)?shù)姆磻?yīng)。
13.在權(quán)利要求
12所述的電腦系統(tǒng)的控制方法中,前述的判斷法還有一中斷訊號邏輯方法,此邏輯與前述所選定的功能旗號資料和“同”(HIT)訊號相接,并產(chǎn)生必要之反應(yīng)。
14.在權(quán)利要求
13所述的電腦系統(tǒng)的控制方法中,前述中斷訊號控制法內(nèi)的第1個中斷訊號邏輯元件,與由前述指令拾取器來的前述“同”(HIT)訊號和前述選定了的功能旗號資料訊號相接,第2個中斷訊號邏輯元件與由高速緩存來的前述“同”(HIT)訊號和前述選定了的功能旗號資料訊號相接,而第3個中斷訊號邏輯元件與由主存系統(tǒng)來的前述“同”(HIT)訊號和前述功能旗號資料訊號相接。以提供適當(dāng)?shù)姆磻?yīng)。
15.在權(quán)利要求
1所述的電腦系統(tǒng)的控制方法,被一加入的方法所定性,此法受一個由前述中央處理器來的控制訊號所控制,此控制訊號指出被前述中央處理器處理后的資料已準(zhǔn)備好可存入前述的高速緩存中,資料所屬位址的選擇是由存于前述陣列的位址資料中選出,而此法把所選定了的位址送到前述的高速緩存去以把前述的資料存入前述指定的位址中。
16.在有中央處理器和主存系統(tǒng)的電腦系統(tǒng)中,前述的中央處理器內(nèi)擁有一個以儲存為基本工作的高速緩存,同時,在這樣一個系統(tǒng)中,前述的中央處理器是以流水線的格式和一些控制資料流程的控制方法工作,以避免在流水線的設(shè)計中發(fā)生指令相沖突的結(jié)果,前述方法計有把正在前述流水線結(jié)構(gòu)中的每一個指令,其相關(guān)位址及功能旗號資料存入記憶體陣列可選擇的位置中;把每一個新指令所屬的位址資料和存于前述陣列中的位址資料相比較,以檢知前幾個指令和前述的新指令均使用同一個資料的狀況,如果有一致的位址時,即產(chǎn)生一“同”訊號,再判斷被前述“同”(HIT)訊號所確認(rèn)的功能旗號資料以決定執(zhí)行前述指令是否會產(chǎn)生沖突,如果會有沖突即產(chǎn)生一“中斷”訊號給前述的電腦系統(tǒng)作為指示用。
專利摘要
在處理每一項資料的開始與結(jié)束期間,一個指南單元(directory unit)的結(jié)構(gòu)可儲存與數(shù)筆高速緩存(cache)資料交換有關(guān)的位址及控制資料,此指南單元有能力把依序處理的相關(guān)重要資料與存于其內(nèi)的相對應(yīng)資料作一比較,以決定程序上是否有沖突存在。如果有沖突,則產(chǎn)生一些控制訊號去消除這項沖突,此外,存在指南單元內(nèi)的位址及控制資料可被取用來把CPU的全部工作資料存入高速緩存的適當(dāng)位置內(nèi)。
文檔編號G06F9/00GK85105460SQ85105460
公開日1987年1月21日 申請日期1985年7月18日
發(fā)明者麥卡蒂, 埃金頓 申請人:霍尼韋爾資料系統(tǒng)有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan