亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有執(zhí)行送數(shù)指令執(zhí)行部件的數(shù)據(jù)處理器及其操作方法

文檔序號:6409101閱讀:122來源:國知局
專利名稱:具有執(zhí)行送數(shù)指令執(zhí)行部件的數(shù)據(jù)處理器及其操作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字計算系統(tǒng),具體涉及送數(shù)指令和存儲指令。
所有的數(shù)據(jù)處理器都要執(zhí)行它們內(nèi)部計算的結(jié)果傳送到其數(shù)據(jù)處理系統(tǒng)部分的其余部分(或反之亦然)的某個指令。這些計算結(jié)果可以傳送到一個外部存儲系統(tǒng)以便存儲待日后使用;傳送到一個CRT以對使用者進(jìn)行顯示;或者傳送到一個網(wǎng)絡(luò)以便再傳輸給另一個數(shù)據(jù)處理系統(tǒng)。這些指令經(jīng)常稱為“存儲”指令或“寫”指令。反之,數(shù)據(jù)可從一個外部存儲系統(tǒng)或者從一個輸入/輸出(I/O)設(shè)備如鍵盤傳送到該數(shù)據(jù)處理系統(tǒng),以進(jìn)行數(shù)據(jù)處理。這些指令通常稱為“送數(shù)”指令或“讀”指令。
甚至在一個特定的計算機(jī)結(jié)構(gòu)中也有很多各種各樣的送數(shù)/存儲指令。各種送數(shù)/存儲指令減輕了軟件程序的負(fù)擔(dān)。這些種指令在傳送數(shù)據(jù)的數(shù)量、數(shù)據(jù)源及地址或目的地的計算、數(shù)據(jù)格式等方面互相不同。一種類型的送數(shù)/存儲指令是“送數(shù)多重”(loadmultiple)或“存儲多重”指令。在幾個處理器時鐘周期期間,這兩個指令將一系列順序存儲單元的內(nèi)容裝載入一系列順序內(nèi)部寄存器或反之亦然。存儲器的存儲單元的數(shù)量,存儲器地址的起始地址和該內(nèi)部寄存器的起始地址是由該指令格式及其操作數(shù)確定的。
送數(shù)/存儲多重指令是在流水線式數(shù)據(jù)處理器中是待實(shí)施的一個困難的指令。某些數(shù)據(jù)處理器,特別是減少的指令集的計算機(jī)(“RISC”)和一些復(fù)雜指令集的計算機(jī)(“CISC”),重疊指令處理以提高性能。這個策略經(jīng)常被送數(shù)/存儲多重指令打破。例如,單個送數(shù)多重指令可更新每個內(nèi)部寄存器。在該指令流中所有順序指令必須延遲直到相關(guān)數(shù)據(jù)可用為止。相反地,單個存儲多重指令可每個內(nèi)部寄存器輸出。這時指令必須延遲直到該數(shù)據(jù)可用為止。同時,該存儲多重指令必須以某類型內(nèi)部隊列緩沖。因此這個策略防止其它指令使用這些資源。
根據(jù)本發(fā)明,這里公開了一種具有執(zhí)行送數(shù)指令的執(zhí)行部件的數(shù)據(jù)處理器及操作方法,它基本上消除了已知數(shù)據(jù)處理器和方案的缺點(diǎn)。
所公開的數(shù)據(jù)處理器具有互相連接的多個結(jié)構(gòu)寄存器、一個再命名緩沖器、一個送數(shù)部件和一個順序器部件。再命名緩沖器有多個入口用于緩沖多個指令的不同指令的多個結(jié)果的不同結(jié)果。對于派送(dispatch)給它的每個送數(shù)指令標(biāo)記時,送數(shù)部件請求以從存儲系統(tǒng)來的地址索引的數(shù)據(jù)。該送數(shù)部件也在送數(shù)指令標(biāo)記對內(nèi)該標(biāo)記規(guī)定的多個再命令緩沖器的多個入口之一中緩沖該數(shù)據(jù)。該序列器單元接收要求N×M字節(jié)的送數(shù)多重指令,這里N和W是整數(shù),N大于1,而且多個結(jié)構(gòu)寄存器的每一個的容量為W字節(jié)。然后序列器部件發(fā)送N送數(shù)指令標(biāo)記對到該送數(shù)單元。
所公開的方法具有以下步驟在第一時間期間,在序列器部件中接收送數(shù)多重指令,和在N個順序時間期間,派送N個送數(shù)指令標(biāo)記對到一個送數(shù)部件和將再命名緩沖器的多個入口的不同入口存儲到多個結(jié)構(gòu)寄存器的不同結(jié)構(gòu)寄存器。該送數(shù)多重指令請求N×M字節(jié)的數(shù)據(jù),這里N和M是整數(shù),N大于1而且多個結(jié)構(gòu)寄存器的每一個的容量為W字節(jié)。對于傳送給它的每個送數(shù)指令標(biāo)記對,該送數(shù)部件請求以存儲系統(tǒng)的地址索引的W字節(jié)數(shù)據(jù)。該送數(shù)部件還在多個再命名緩沖器入口之一中緩沖W字節(jié)數(shù)據(jù)。送數(shù)指令標(biāo)記識別特定的索引入口。
下面結(jié)合附圖詳細(xì)敘述本發(fā)明,這將會對其特性和優(yōu)點(diǎn)有更清楚的理解,各圖中相同的標(biāo)號表示相同和相應(yīng)部分,其中

圖1示出按照本發(fā)明構(gòu)成的數(shù)據(jù)處理器的方框圖;圖2示出圖1所示的數(shù)據(jù)處理器所執(zhí)行的指令的定時圖;圖3示出圖1所示的送數(shù)/存儲部件28的方框圖;圖4示出可能狀態(tài)的狀態(tài)瞬變圖,其中可能示出圖3的存儲隊列的每個入口。
圖1示出按照本發(fā)明構(gòu)成的數(shù)據(jù)處理器10的方框圖。數(shù)據(jù)處理器10實(shí)施Power PC Architecture(增強(qiáng)能力的PC結(jié)構(gòu))指令集。Power PC Architecture指令集包括送數(shù)/存儲多重和送數(shù)/存儲串指令。當(dāng)數(shù)據(jù)處理器10執(zhí)行一個指令流時它確定這些指令的存在和“不滾動”或分解這些指令為一序列的單個送數(shù)或單個存儲指令。第一例子,如果數(shù)據(jù)處理器10遇到一個存儲多重指令,且把十六個順序的內(nèi)部存儲器內(nèi)容輸出到十六個順序存儲單元,則數(shù)據(jù)處理器10調(diào)派十六個單個的寄存器存儲指令。這個策略允許數(shù)據(jù)處理器10使用其送數(shù)/存儲多重指令的再命名方法。而且,數(shù)據(jù)處理器10可以派送送數(shù)/存儲多重指令以外的其它指令。
繼續(xù)參照圖1,一個總線接口單元(以下稱BIU)12控制在數(shù)據(jù)處理器10與數(shù)據(jù)處理系統(tǒng)其余部分(未示出)之間的數(shù)據(jù)流。BIU12與一個指令高速緩沖存儲器14和一個數(shù)據(jù)高速緩沖存儲器16相連接。指令高速緩沖存儲器14給序列器單元18提供一個指令流。序列器單元18把各個指令傳送到一個合適的執(zhí)行單元。數(shù)據(jù)處理器10具有一個分支單元20、一個固定點(diǎn)執(zhí)行部件A22、一個固定點(diǎn)執(zhí)行部件B24、一個復(fù)合固定點(diǎn)執(zhí)行部件26、一個送數(shù)/存儲執(zhí)行部件28和一個浮點(diǎn)執(zhí)行部件30。固定點(diǎn)執(zhí)行部件A22、固定點(diǎn)執(zhí)行部件B24、復(fù)合固定點(diǎn)執(zhí)行部件26和送數(shù)/存儲執(zhí)行部件28讀出并把它們的結(jié)果寫入到通用結(jié)構(gòu)寄存器文件32(標(biāo)記GPR并在以下面稱GPR文件)和第一再命名緩沖器34。第一再命名緩沖器34將在下文結(jié)合圖3和4再詳述。浮點(diǎn)執(zhí)行部件26和送數(shù)/存儲執(zhí)行單元28讀出它們的結(jié)果并寫入到一個浮點(diǎn)結(jié)構(gòu)寄存器文件36(被標(biāo)記的FPR和下文的FPR文件)和第二再命名緩沖器38。
不具有所公開的發(fā)明的數(shù)據(jù)處理器10的操作是本領(lǐng)域公知的。通常,分支單元20在給定一些數(shù)據(jù)寄存器和指令本身的內(nèi)容的情況下確定什么樣的編程指令序列是合適的。指令高速緩沖存儲器14把這個編程指示的序列提供給序列器18。如果指令高速緩沖存儲器14不包含所要求的指令,則它從數(shù)據(jù)處理器10外部的主存儲系統(tǒng)(未示出)取出它們。
序列器單元18把編程指令序列的各個指令派送到各個執(zhí)行部件20、22、24、26、28和30。序列器單元18還在再命名緩沖器34或38中保留一個入口,在其中暫時存儲每個指令的結(jié)果,如果有的話。這兩個再命名緩沖器都是先進(jìn)先出(“FIFO”)隊列的。
每個執(zhí)行部件執(zhí)行一定等級指令中的一個或多個指令。每個執(zhí)行部件的特定等級指令由執(zhí)行部件的名字來指明。例如,固定點(diǎn)執(zhí)行部件A和B對于以固定點(diǎn)表示式表示的操作數(shù)執(zhí)行簡單的算術(shù)運(yùn)算,例如加、減、與、或和異或運(yùn)算。復(fù)合固定點(diǎn)執(zhí)行部件26對以固定點(diǎn)表示式表示的操作數(shù)執(zhí)行更復(fù)雜的算術(shù)運(yùn)算,例如乘和除。浮點(diǎn)執(zhí)行部件30對于以浮點(diǎn)表示式表示的操作數(shù)執(zhí)行算術(shù)運(yùn)算,例如乘和除。
固定點(diǎn)執(zhí)行部件A與B及復(fù)合固定點(diǎn)單元26把它們操作的結(jié)果返回到第一再命名緩沖器34中的指定入口。當(dāng)產(chǎn)生該結(jié)果的該指令前面的所有指令已更新它們GPR文件入口時,第一再命名緩沖器34周期地更新具有第一再命令緩沖器34來的一個入口的GPR文件32的入口。序列器單元18保持再定序緩沖器39以協(xié)調(diào)這個更新。再定序緩沖器39是一個FIFO隊列的,從其原始順序存儲該編程指令流的一部分。序列器單元18等待直到再定序緩沖器39中的最舊指令已完成為止。然后,序列器單元18按照分配給該指令的再命名緩沖器入口中存儲的結(jié)果來更新該結(jié)構(gòu)寄存器。序列器單元18還使再定序緩沖器39中的該指令入口無效,以便給后面的指令留出空間。第一再命名緩沖器34和GPR文件32二者可把操作數(shù)提供給固定點(diǎn)執(zhí)行部件A與B及復(fù)合固定點(diǎn)單元26。
浮點(diǎn)執(zhí)行部件30把其操作的結(jié)果返回到第二再命名緩沖器38中指定的入口。當(dāng)產(chǎn)生該結(jié)果的該指令前的所有指令已更新它們的FPR文件入口時,第二再命令緩沖器38周期地更新具有第二再命名緩沖器38中的入口的FPR文件36的一個入口。序列器單元18還協(xié)調(diào)這個更新。第二再命令緩沖器38和FPR文件36二者把操作數(shù)提供給浮點(diǎn)執(zhí)行部件30。
送數(shù)/存儲部件28在完成時刻讀出存儲在GPR文件32中或FPR文件36中的數(shù)據(jù)并且把所選的數(shù)據(jù)寫到數(shù)據(jù)高速緩沖存儲器16。這個數(shù)據(jù)還可寫入一個外部存儲系統(tǒng)(未畫出),這取決于與所公開的發(fā)明無關(guān)的數(shù)據(jù)處理器10的操作特性。反之,送數(shù)/存儲部件28讀出存儲在數(shù)據(jù)高速緩沖存儲器16中的數(shù)據(jù),并把該讀出數(shù)據(jù)寫到第一再命名緩沖器34或第二再命名緩沖器38。如果數(shù)據(jù)高速緩沖存儲器16不含有所要求的數(shù)據(jù),則它經(jīng)過BIU12從數(shù)據(jù)處理器10外部的主存儲系統(tǒng)取出所要求的數(shù)據(jù)。送數(shù)/存儲部件28將在下文結(jié)合圖3至14進(jìn)行敘述。
所公開的發(fā)明的數(shù)據(jù)處理器10的操作在下文結(jié)合圖2至4進(jìn)行敘述。通常,數(shù)據(jù)處理器10是一個減少的指令集計算機(jī)(“RISC”)。數(shù)據(jù)處理器10通過把每個指令分解為一個較小步驟的序列(其每個步驟在時間上可與其它指令的步驟重疊)來實(shí)現(xiàn)其高的性能。這個性能策略稱為“流水線技術(shù)”。
圖2示出由圖1所示的數(shù)據(jù)處理器10執(zhí)行的指令的定時圖。在所示例的實(shí)施例中,每個指令被分解為五個分離的步驟取數(shù)、解碼、派送、執(zhí)行和完成。
在取數(shù)階段,令高速緩沖存儲器14中的存儲器管理電路(未示出)檢索在前一時鐘周期中由序列器單元18或由分支單元20識別的存儲器地址處開始的一個或多個指令。
在解碼階段,指令由序列器單元18解碼為多個控制信號,以便在隨后的階段使用。在這個階段期間,序列器單元18確定送數(shù)/存儲多重指令的存在。
在派送階段,在確定沒有不容許的數(shù)據(jù)或資源相關(guān)之后和在為該指令的結(jié)果保留一個再命名緩沖器入口之后,序列器單元18把每個指令傳送到該合適的執(zhí)行部件。派送階段也負(fù)責(zé)為被傳送的指示提供操作數(shù)信息,或者如果一個或幾個操作數(shù)還不可用,用于提供識別該操作數(shù)據(jù)寫入的再命名緩沖器入口的標(biāo)記。每個執(zhí)行部件在一個保留站中存儲其特定指令直到它收到執(zhí)行該指令的所有必須的操作數(shù)信息。序列器單元18把單個送數(shù)/存儲多重指令分解為一系列簡單的送數(shù)/存儲指令。序列器單元18為每個簡單的送數(shù)指令保留一個再命名緩沖器入口。每個簡單送數(shù)指令開始把其數(shù)據(jù)寫到這個規(guī)定的入口。之后,序列器單元18把這個數(shù)據(jù)拷貝到相應(yīng)的結(jié)構(gòu)寄存器。隨后指令要求一個結(jié)構(gòu)寄存器的內(nèi)容,接收規(guī)定將緩沖該數(shù)據(jù)的再命名緩沖器入口的該標(biāo)記。這個策略加速隨后指令的派送。類似地,序列器單元18轉(zhuǎn)發(fā)一個再命名緩沖器標(biāo)記與每個簡單的存儲指令。這個標(biāo)記識別可在何處先被找到該存儲數(shù)據(jù)。
在執(zhí)行階段,每個特定的執(zhí)行部件接收所有的(或一些)必要的操作數(shù)信息,因而能夠開始執(zhí)行其編程指令。如果有任何結(jié)果的話,將結(jié)果分別返回到用于整數(shù)和浮點(diǎn)結(jié)果的第一再命名緩沖器34或第二再命名緩沖器38。送數(shù)/存儲部件28按照送數(shù)/存儲指令的操作數(shù)及其格式計算目的地存儲單元的有效地址。送數(shù)/存儲部件28可移動該指令進(jìn)入送數(shù)或存儲隊列(圖3)中。數(shù)據(jù)高速緩沖存儲器16還開始翻譯所計算的有效地址為一個實(shí)際地址。數(shù)據(jù)處理器10使用一個有效地址內(nèi)部地索引每個可能的存儲單元和使用一個實(shí)時地址外部地索引每個可能的存儲單元。數(shù)據(jù)處理器10保持一個地址翻譯表(未示出)以便從一個格式變換為另一個格式。
一個存儲指令可要求一個或多個附加的執(zhí)行階段。如果該存儲指令不能立即存取數(shù)據(jù)高速緩沖存儲器16,則該存儲指令仍然在該存儲緩沖器中,如下所述。
在完成階段,在該特定指令前面的每個指令已經(jīng)更新該結(jié)構(gòu)寄存器文件之后,序列器單元18以存儲在再命名緩沖器中存儲的特定指令的結(jié)果更新該結(jié)構(gòu)寄存器。當(dāng)滿足這個標(biāo)準(zhǔn)時,指令是在再定序緩沖器39中的最舊的指令。在該特定指令前面的每個指令已更新該結(jié)構(gòu)狀態(tài)之后,完成階段還更新該機(jī)器中的所有其它結(jié)構(gòu)狀態(tài)。當(dāng)它們前面的所有指令已完成時,存儲指令提供給數(shù)據(jù)高速緩沖存儲器16。
通常,每個指令階段需用一個機(jī)器時鐘周期。但是,一些指令如復(fù)合固定點(diǎn)指令要求一個以上時鐘周期執(zhí)行。因此,由于前面指令執(zhí)行可能需用的時間范圍,特定指令的執(zhí)行和完成階段之間可能有一個延遲。
圖3示出了圖1中所示的送數(shù)/存儲部件28的方框圖。送數(shù)/存儲部件28有一個保留站40,它存儲有關(guān)每個送數(shù)/存儲指令的各個信息。保留站40從序列器單元18接收存儲指令或送數(shù)指令、兩個操作數(shù)A與B、和一個再命名標(biāo)記。再命名標(biāo)記識別在該裝入數(shù)據(jù)的再命名緩沖器之一中的目的地(如果有的話)。復(fù)用器(MUX)41輸出兩個輸入之一到保留站40作為操作數(shù)A。復(fù)用器43輸出兩個輸入之一到保留站40作為操作數(shù)13。復(fù)用器41和43的每一個從接到GPR文件32和第一再命名緩沖器34的結(jié)果總線接收一個輸入。保留站40分別地把這兩個操作數(shù)和該指令轉(zhuǎn)發(fā)到一個加法器42和一個鎖存器44。通過算術(shù)“加”這兩個操作數(shù),加法器42計算每個送數(shù)/存儲指令的源/目的地的有效地址。加法器42的輸出由一個鎖存器46鎖存并且轉(zhuǎn)發(fā)到數(shù)據(jù)高速緩沖存儲器16和復(fù)用器41的第二輸入。鎖存器44和46由一個全局周期時鐘信號(未示出)鎖定。復(fù)用器43的第二輸入接收“一對四”發(fā)生器45的輸出?!耙粚λ摹卑l(fā)生器45從序列器單元18接收控制信息,該控制信息標(biāo)記了“控制”,用它來選擇哪個輸入復(fù)用器41與43的輸出送到保留站40。
指令和由鎖存器44及46鎖存的有效地址被轉(zhuǎn)發(fā)到一個存儲隊列48和一個裝入隊列50。控制邏輯單元52根據(jù)指令的等級選擇這兩個隊列的哪一個隊列鎖存該數(shù)據(jù)??刂七壿媶卧?2從保留站40接收該指令操作碼以便于這個發(fā)送??刂七壿媶卧?2還從數(shù)據(jù)高速緩沖存儲器16和從序列器單元18接收各種控制信號??刂七壿媶卧?2控制復(fù)用器54其三個輸入的哪個輸入輸出到數(shù)據(jù)高速緩沖存儲器16。復(fù)用器54從鎖存器46、從存儲隊列48和從裝入隊列50接收一個地址??刂七壿媶卧?2的工作在下面敘述。
下面以兩部分對裝入和存儲操作敘述數(shù)據(jù)處理器10的工作。通常這兩部分將該送數(shù)或存儲指令流流過數(shù)據(jù)處理器10。首先,敘述送數(shù)/存儲多重指令的“不滾動”入一系列簡單的送數(shù)/存儲指令。其次,敘述在裝入隊列50或存儲隊列48中每個簡單送數(shù)/存儲指令的緩存。
送數(shù)/存儲多重指令不滾動數(shù)據(jù)處理器10是功率PC結(jié)構(gòu)的一個實(shí)施。功率PC結(jié)構(gòu)指令集規(guī)定送數(shù)和存儲指令的三類復(fù)合形式(1)多字,(2)串字立即和(3)串字索引。
送數(shù)多字“1MW RT.D(RA)”送數(shù)多字指令將N個連續(xù)字(每字32比特)的內(nèi)容裝入GPR文件32的N個連續(xù)寄存器,這里的N是等于(32-RT)的一個整數(shù)。按照慣例,GPR文件32的三十二個寄存器編號為零至三十一。GPR文件32的每個寄存器是四字節(jié)或一字寬。由該送數(shù)多重指令讀出的數(shù)據(jù)在由寄存器RA(操作數(shù)A)和字段D(操作數(shù)B)之和規(guī)定的存儲地址開始。該數(shù)據(jù)從由RT規(guī)定的寄存器開始被送入寄存器序列。
序列器單元18解碼送數(shù)多字指令和派送(32-RT)單個送數(shù)指令到送數(shù)/存儲部件28。對每個隨后的送數(shù)指令,序列器單元18將裝入數(shù)據(jù)的目的地寄存器數(shù)(RT)遞增1。這個目的地存儲在再命名緩沖器34中,便于隨后發(fā)送該數(shù)據(jù)到合適的結(jié)構(gòu)寄存器。序列器單元18指定一個不同的再命名緩沖器入口和一個不同的再定序緩沖器入口給每個(32-RT)指令。
序列器單元18認(rèn)為到“一對四”發(fā)生器45的控制信號表明特定的派送指令是一個送數(shù)多字指令。在開始,“一對四”發(fā)生器45使復(fù)用器41和43將連接到結(jié)果總線的輸入輸出。在每個隨后的(31-N)送數(shù)指令,四中之一發(fā)生器45使復(fù)用器41和43將連接到加法器42和接到“一對四”發(fā)生器45的輸入輸出。發(fā)生器45還輸出數(shù)字4到復(fù)用器43。在功能上,數(shù)字4的輸出加在前面的有效地址使送數(shù)/存儲部件28從數(shù)據(jù)高速緩沖存儲器16或從外部存儲系統(tǒng)請求下一個定位字。
控制邏輯單元52將每個送數(shù)指令寫回到序列器單元18規(guī)定的不同再命名緩沖器入口。這個策略允許在更新送數(shù)指令的結(jié)構(gòu)寄存器之前隨后的指令存取用于它們的計算的數(shù)據(jù),“數(shù)據(jù)轉(zhuǎn)發(fā)”。一旦它被派送,就允許每個送數(shù)指令“推測地”存取數(shù)據(jù)高速緩沖存儲器16。如果需要的話,當(dāng)其再定序緩沖器36入口是最舊的入口時,允許每個送數(shù)指令“非推測地”接入該外部存儲系統(tǒng)。
存儲多字“stmw RS.D(RA)”該存儲多字指令將GPR文件32的N個連續(xù)寄存器的內(nèi)容存入N個連續(xù)存儲器字的內(nèi)容中,這里的N是等于(32-RS)的一個整數(shù)。該存儲多字指令從寄存器RA(操作數(shù)A)和字段D(操作數(shù)B)之和規(guī)定的存儲地址開始。該數(shù)據(jù)裝入由RS規(guī)定的寄存器開始的寄存器序列中。
序列器單元18對存儲多字指令解碼并派送(32-RS)單個存儲指令到送數(shù)/存儲部件28。對每個順序存儲指令序列器單元18使該存儲數(shù)據(jù)的源寄存器數(shù)(RS)遞增1。當(dāng)該存儲指令是數(shù)據(jù)處理器10中的最舊指令時,序列器單元18從這些寄存器提供該數(shù)據(jù)(初始地RS)給送數(shù)/存儲部件。(見下面的敘述)序列器單元18給“一對四”發(fā)生器45確定一個控制信號,表明特定的傳送指令是一個存儲多字指令。初始地,發(fā)生器45使復(fù)用器41和43將連接到結(jié)果總線的輸入輸出。在每個順序(31-N)存儲指令,發(fā)生器45使復(fù)用器41和43將接到加法器42和發(fā)生器45的輸入輸出。發(fā)生器45還輸出數(shù)4到復(fù)用器45。在功能上,加在前面的有效地址的數(shù)4的輸出使送數(shù)/存儲部件28索引在數(shù)據(jù)高速緩沖存儲器16或在外部存儲系統(tǒng)中的下一個字。
當(dāng)其再定序器緩沖器39入口是最舊的入口時,只允許每個存儲指令“非推測地”存取數(shù)據(jù)高速緩沖存儲器16和外部存儲系統(tǒng)。
送數(shù)串字立即“Iswi RT,.RA,NB”送數(shù)串字立即指令將NB連續(xù)存儲字節(jié)的內(nèi)容裝入GPR文件32的(NB/4,進(jìn)到下一個整數(shù))連續(xù)寄存器。送數(shù)串字立即指令從寄存器RA的內(nèi)容規(guī)定的存儲字節(jié)地址和RT規(guī)定的寄存器開始。在這個指令中沒有“B有效地址操作數(shù)”。
序列器單元18對送數(shù)串字立即指令解碼和派送(NB/4,進(jìn)到下一個整數(shù))單個送數(shù)指令到送數(shù)/存儲部件28。對于每個隨后的送數(shù)指令,序列器單元18使裝入數(shù)據(jù)的目的地寄存器遞增1。根據(jù)NB和RT的值該目的地寄存器可從寄存器31“卷繞”(wrap around)到寄存器0。同樣地,這里的序列器單元18的操作類似于其在送數(shù)多字指令中的操作。
序列器單元18給發(fā)生器45確定一個控制信號,表明特定的傳送指令是一個送數(shù)串字立即指令。在開始,發(fā)生器45使復(fù)用器41和43將接到結(jié)果總線的輸入輸出。每個送數(shù)串字立即指令或者是定位的或者失去定位的。在定位的送數(shù)串字立即指令中的第一字節(jié)兩個最低有效位是0。在失去定位的送數(shù)串字立即指令中第一字節(jié)的兩個最低有效位不都是0。對于定位的和失去定位的裝入串字立即指令,送數(shù)/存儲部件28作用不同。
在定位的送數(shù)串字立即指令中,控制邏輯單元52進(jìn)行(NB/4,進(jìn)到下一個整數(shù))存取數(shù)據(jù)高速緩沖存儲器16。這個操作類似于上述的送數(shù)多字指令。
在失去定位的送數(shù)串字立即指令中,送數(shù)/存儲部件28進(jìn)行(NB/4+1,進(jìn)到下一個整數(shù))存儲數(shù)據(jù)高速緩沖存儲器16。這個策略保證對于每個修改的寄存器有到再命名緩沖器34的一個寫回操作。同樣地,兩個高速緩沖存儲器存取可要求更新三個結(jié)構(gòu)寄存器。在開始,控制邏輯單元52確定送數(shù)串字立即指令是失去定位的。發(fā)生器45使復(fù)用器41和43將連接到結(jié)果總線的輸入輸出。在每個隨后的送數(shù)指令,發(fā)生器45使得復(fù)用器41和43將連接到加法器42和接到發(fā)生器45的輸入輸出。在第二送數(shù)指令期間,發(fā)生器45輸出數(shù)1至4中之一到復(fù)用器43,它將索引緊接著由RA規(guī)定的字節(jié)的定位字。在完成二個送數(shù)指令之后,送數(shù)/存儲部件28可寫第一寄存器的新數(shù)據(jù)到再命名緩沖器34的合適入口。直到四個連續(xù)字節(jié)為止不傳送緩沖器失去定位數(shù)據(jù)的電路可被裝入再命名緩沖器34的單個入口。此后,發(fā)生器輸出數(shù)4。送數(shù)/存儲部件28在每個隨后的送數(shù)指令之后可寫一個隨后的寄存器新數(shù)據(jù)到再命名緩沖器34的合適的入口。最后,最后的兩個送數(shù)命令由控制邏輯單元52進(jìn)行修改。最后送數(shù)指令的第二個只要求一個字節(jié)。最后送數(shù)指令要求完成送數(shù)串字立即指令所需的剩余字節(jié)(多達(dá)3)。同樣地,在這里序列器單元18的操作類似于送數(shù)多字指令中的操作。
存儲串字立即“stswi RS.RA.NB”該存儲串字立即指令將GPR文件32的(NB/4,進(jìn)到下一個整數(shù))連續(xù)寄存器內(nèi)容存儲入NB連續(xù)存儲字節(jié)的內(nèi)容中。該存儲串字立即指令從由寄存器RA的內(nèi)容規(guī)定的存儲地址和由RS規(guī)定的寄存器開始。在這個指令中沒有“B有效地址操作數(shù)”。
序列器單元18解碼存儲串字立即指令和傳送(NB/4,進(jìn)到下一個整數(shù))單個存儲指令給送數(shù)/存儲部件28。對于每個隨后的存儲指令,序列器單元18將該存儲數(shù)據(jù)的源寄存器遞增1。當(dāng)該存儲指令是數(shù)據(jù)處理器10中的最舊指令時,序列器單元18從這些寄存器提供該數(shù)據(jù)(開時是RS)給送數(shù)/存儲單元28(見下面的敘述)。同樣地,在這里序列器單元18的操作類似于它在存儲多字指令中的操作。
序列器單元18給發(fā)生器45確定一個控制信號,表明特定的傳送指令是一個存儲串字立即指令。每個存儲串字立即指令或者是定位的或者是失去定位的。定位的存儲串字立即指令中第一字節(jié)的兩個最低有效位是0。在失去定位的存儲串字立即指令中第一字節(jié)的兩個最低有效位不都是0。對于定位的和失去定位的存儲串字立即指令,送數(shù)/存儲部件28的作用不同。
在定位的存儲串字立即指令中,送數(shù)/存儲部件28進(jìn)行(NB/4,進(jìn)到下一個整數(shù))存取數(shù)據(jù)高速緩沖存儲器16。這個操作類似于上面的存儲多字指令。
在失去定位的存儲串字立即指令中,送數(shù)/存儲部件28進(jìn)行(2×NB/4+1,進(jìn)到下一個整數(shù))存取數(shù)據(jù)高速緩沖存儲器16。對于最后一個之外的所有傳送給它的存儲指令,送數(shù)/存儲部件28產(chǎn)生對數(shù)據(jù)高速緩沖存儲器的一對存取,而對該最后的存儲指令產(chǎn)生單個存取。在開始,發(fā)生器45使復(fù)用器41和43將接到結(jié)果總線的輸入輸出。送數(shù)/存儲部件28只寫入由該指令編程的字節(jié)到數(shù)據(jù)高速緩沖存儲器16。控制邏輯單元52重復(fù)相同的存儲指令來完成字定位的存取。發(fā)生器45遞增第二指令的地址到下一個定位的字。在這里,當(dāng)與前面的存儲數(shù)據(jù)高速緩沖存儲器16組合時,送數(shù)/存儲部件28只寫所需的字節(jié)數(shù)為總數(shù)4。發(fā)生器45和控制邏輯單元52繼續(xù)將每個失去定位的字存取分為二半的這個過程,直到該最后指令為止。然后,控制邏輯單元52只需進(jìn)行單個存儲數(shù)據(jù)高速緩沖存儲器16。
送數(shù)串字索引“l(fā)swx RT.RA.RB”
該送數(shù)串字索引指令將M連續(xù)存儲字節(jié)的內(nèi)容裝入GPR文件32的(M/4,進(jìn)到下一個整數(shù))連續(xù)存儲器。M是特別目的寄存器的一個文件(未示出)。該裝入串字索引指令從由寄存器RA與寄存器RB的內(nèi)容之和規(guī)定的存儲字節(jié)地址和由RT規(guī)定的寄存器開始。同樣地,該送數(shù)串字索引指令類似于該送數(shù)串字立即指令。
存儲串字索引“stswx RS,RA.RB”該存儲串字索引指令將GPR文件32的(M/4,進(jìn)到下一個整數(shù))連續(xù)寄存器的內(nèi)容存儲入M連續(xù)存儲字節(jié)的內(nèi)容。M是特別目的寄存器中的一個字段。該存儲串字索引指令從由寄存器RA與寄存器RB內(nèi)容之和規(guī)定的存儲地址和由RS規(guī)定的寄存器開始。同樣地,該存儲串字索引指令類似于該存儲串字立即指令。
簡單的送數(shù)/存儲指令緩沖在指令的傳送階段期間,序列器單元18轉(zhuǎn)發(fā)一個送數(shù)或存儲指令到送數(shù)/存儲部件28。保留站40鎖存該指令和以下之一(a)操作數(shù)A或者在某個執(zhí)行單元完成它時識別在再命名緩沖器34或操作數(shù)A的再命名緩沖器38中的目的地的一個標(biāo)記,和(b)操作數(shù)B或者在某個執(zhí)行單元完成它時識別在再命名緩沖器34或操作數(shù)B的再命名緩沖器38中的目的地的一個標(biāo)記。保留站40等待直到這兩個操作數(shù)都可用為止。
該送數(shù)/存儲指令的執(zhí)行階段在這兩個操作數(shù)可用時開始。加法器42計算該源/目的地的有效地址。鎖存器44與46鎖存該指令和指令的地址,使保留站40能接收另一個指令。
當(dāng)它已完成該送數(shù)或 存儲指令前的所有指令時,序列器單元18給控制邏輯單元52確定一個控制信號。根據(jù)數(shù)據(jù)高速緩沖存儲器16的、存儲隊列48的和送數(shù)隊列50的內(nèi)容,這個動作可使或可不使該指令立即完成。當(dāng)它不能再產(chǎn)生例外時指令被完成。這個預(yù)定策消除了如果某作前面的指令產(chǎn)生一個例外時必須“取消”(undo)一個送數(shù)或存儲指令的可能性。如果該指令是一個存儲指令,在這時序列器單元18還提供由該指令存儲的數(shù)據(jù)給存儲隊列48。
數(shù)據(jù)處理器10的其它部分執(zhí)行與該送數(shù)/存儲指令相關(guān)的功能。數(shù)據(jù)高速緩沖存儲器16翻譯由加法器42產(chǎn)生的有效地址為一個實(shí)際的地址并且確定它是否包含與該送數(shù)或存儲指令相關(guān)的數(shù)據(jù)。如果數(shù)據(jù)高速緩沖存儲器16能夠翻譯該有效地址,則它返回該實(shí)際地址到送數(shù)/存儲部件28。如果數(shù)據(jù)高速緩沖存儲器16不能翻譯該有效地址,則它存取在存儲系統(tǒng)中的專門的地址翻譯表(未示出)。稍后,當(dāng)這個存取完成和它能提供該翻譯時,數(shù)據(jù)高速緩沖存儲器16將產(chǎn)生一個中斷信號。然后控制邏輯單元52在與未翻譯的送數(shù)或存儲指令相關(guān)的入口中存儲所翻譯的地址。數(shù)據(jù)高速緩沖存儲器16同時確定它是否包含由該實(shí)示地址索引的數(shù)據(jù)。如果數(shù)據(jù)高速緩沖存儲器16包含送數(shù)指令要求的數(shù)據(jù),則在下一個時鐘周期期間數(shù)據(jù)高速緩沖存儲器16返回該數(shù)據(jù)給送數(shù)/存儲部件28。直到序列器單元18表明該存儲指令是數(shù)據(jù)處理器10中的最舊指令為止,數(shù)據(jù)高速緩沖存儲器16不修改其存儲器。如果數(shù)據(jù)高速緩沖存儲器16不包含由該實(shí)際地址索引的數(shù)據(jù),則在控制邏輯單元52表明要求該數(shù)據(jù)的指令是數(shù)據(jù)處理器10中的最舊指令之后,它經(jīng)過BIU12從該存儲系統(tǒng)要求該數(shù)據(jù)。
控制邏輯單元52經(jīng)過復(fù)用器54從存儲隊列48和送數(shù)隊列50轉(zhuǎn)發(fā)選擇指令給數(shù)據(jù)高速緩沖存儲器16。這兩隊列都是先進(jìn)先出(“FIFO”)隊列??刂七壿媶卧?2保持各種指示符,以便識別每個隊列中的哪個入口應(yīng)接收下一指令和哪個入口可提供給數(shù)據(jù)高速緩沖存儲器16。如上所述,如果送數(shù)和存儲指令二者同時都是合格的,控制邏輯單元52提供一個送數(shù)指令地址給數(shù)據(jù)高速緩沖存儲器16。控制邏輯單元52在下一時鐘周期就可“提供”存儲指令給數(shù)據(jù)高速緩沖存儲器16(或者以該指令數(shù)據(jù)更新該存儲系統(tǒng)),在該時鐘周期中在一些環(huán)境下存儲隊列48鎖存該指令(1)如果各個指示符表明該指令是被提供的下一個指令,(2)如果在前一時鐘周期數(shù)據(jù)高速緩沖存儲器16能夠翻譯該指令地址,和(3)如果數(shù)據(jù)高速緩沖存儲器16確定它包含該索引數(shù)據(jù)。同樣地,控制邏輯單元52將提供給數(shù)據(jù)高速緩沖存儲器16的存儲指令延遲至少一個附加時鐘周期。在這兩個情況下,控制邏輯單元52在存儲隊列48的下一個可用入口中緩存該指令。一旦加法器42計算該指令的有效地址,控制邏輯單元52就提供送數(shù)指令給數(shù)據(jù)高速緩沖存儲器16。如果數(shù)據(jù)高速緩沖存儲器16能夠翻譯該指令的地址,和如果數(shù)據(jù)高速緩沖存儲器16包含該索引數(shù)據(jù),則認(rèn)為該送數(shù)指令完全執(zhí)行。同樣的,控制邏輯單元52在裝入隊列50的下一個可用入口中緩存該送數(shù)指令。
繼續(xù)圖3,控制邏輯單元52在存儲隊列48中緩存存儲指令。存儲隊列48是一個方入口靜態(tài)隨機(jī)存取存儲器(“SRAM”)結(jié)構(gòu)。方入口的每個入口包含一百三十八位七十位存儲一部分存儲指令的操作碼和數(shù)據(jù)屬性,六十七位存儲該存儲指令的實(shí)際地址,和一個有效位指示一個有效實(shí)際地址字段??刂七壿媶卧?2保持存儲隊列48的四個指示符一個最舊丟失指示符,一個下一個存取指示符,一個結(jié)束指示符和一個傳送指示符。從下面的敘述中將更清楚,最舊丟失指示符總是在后面或等于該下一個存取指示符,該下一個存取指示符總是在后面或等于該結(jié)束指示符,和該結(jié)束指示符總是在后面或等于該傳送指示符。在開始,所有四個指示符表明存儲隊列48中的相同入口。
控制邏輯單元52在由該傳送指示符索引的入口中緩存每個新的存儲指令。控制邏輯單元52在數(shù)據(jù)高速緩沖存儲器16提供它時在該相同的入口實(shí)際地址字段中存儲該指令的翻譯地址。當(dāng)它收到實(shí)際地址時,控制邏輯單元52還使該傳送指示符遞增或前進(jìn)1。
如上所述,序列器單元18確定一個控制信號和提供該存儲數(shù)據(jù),表明送數(shù)/存儲部件28可完成存儲指令。控制邏輯單元52在由該結(jié)束指示符規(guī)定的入口的數(shù)據(jù)字段中緩沖該存儲數(shù)據(jù)。當(dāng)它接收該存儲數(shù)據(jù)時控制邏輯單元52還使結(jié)束指示符遞增1。
當(dāng)控制邏輯單元52沒有較高優(yōu)先級送數(shù)指令時,轉(zhuǎn)發(fā)由該下一個存取指示符索引的指令的實(shí)際地址和存儲數(shù)據(jù)到數(shù)據(jù)高速緩沖存儲器16??刂七壿媶卧?2使該下一個存取指示符遞增1。如果該存取是成功的,則數(shù)據(jù)高速緩沖存儲器16修改適當(dāng)存儲單元的內(nèi)容和控制邏輯單元52無效該入口的有效位。如果該存取不成功,則送數(shù)/存儲部件28必須等待數(shù)據(jù)高速緩沖存儲器16和BIU12從外部存儲系統(tǒng)檢索該數(shù)據(jù)。當(dāng)它從外部存儲系統(tǒng)收到有效數(shù)據(jù)時,數(shù)據(jù)高速緩沖存儲器16確定一個控制信號。然后控制邏輯單元52提供由該最舊丟失指示符索引的地址給數(shù)據(jù)高速緩沖存儲器16。應(yīng)該注意,在丟失之后控制邏輯單元52繼續(xù)提供由該下一個存取指示符索引的存儲指令給數(shù)據(jù)高速緩沖存儲器16。這些隨后的表示在數(shù)據(jù)高速緩沖存儲器16中可能或不可能“擊中”(hit)。
最后,如果在由當(dāng)前入口目前索引的入口變得無效時沒有其它有效的入口,控制邏輯單元52遞增該最舊丟失指示符到下一個有效入口或到該傳送指示符。
控制邏輯單元52在送數(shù)隊列50中緩存送數(shù)指令。送數(shù)隊列50是一個四入口SRAM結(jié)構(gòu)。四入口的每個入口包含六十五位三十二位存儲一部分送數(shù)指令的操作碼和數(shù)據(jù)屬性,三十二位存儲該送數(shù)指令的實(shí)際地址和一個有效位指示一個有效的實(shí)際地址字段??刂七壿媶卧?2保持裝入隊列50的兩個指示符一個首部指示符和一個尾部指示符。從下面的敘述中更清楚了,首部指示符總是在后面或等于尾部指示符。在開始,這兩個指示符指示送數(shù)隊列50中相同的入口。
在加法器42產(chǎn)生該送數(shù)指令的有效地址之后,送數(shù)/存儲部件28直接地轉(zhuǎn)送每個送數(shù)指令到數(shù)據(jù)高速緩沖存儲器16。這個時間表反映送數(shù)指令相對于存儲指令的優(yōu)先性。如果數(shù)據(jù)高速緩沖存儲器16能夠翻譯該有效地址為一個實(shí)際地址和如果數(shù)據(jù)高速緩沖存儲器16包含所要求的數(shù)據(jù),則數(shù)據(jù)高速緩沖存儲器16轉(zhuǎn)發(fā)該數(shù)據(jù)到再命名緩沖器34或38。如數(shù)據(jù)高速緩沖存儲器16不能翻譯該地址,則該送數(shù)指示在鎖存器44和46中等待直到數(shù)據(jù)高速緩沖存儲器16可這樣翻譯該地址為止。如果數(shù)據(jù)高速緩沖存儲器16不包含該數(shù)據(jù),則控制邏輯單元52在由該尾部指示符索引的入口存儲該送數(shù)指令。在所述的實(shí)施例中,數(shù)據(jù)高速緩沖存儲器16不從外部存儲系統(tǒng)請求該送數(shù)指令數(shù)據(jù),直到序列器單元18指示該送數(shù)指令之前的所有指令已寫回它們的結(jié)果到數(shù)據(jù)處理器10的各個結(jié)構(gòu)寄存器為止。這個策略避免對外部存儲系統(tǒng)的推測數(shù)據(jù)裝入操作。當(dāng)它接收該實(shí)際地址時,控制邏輯單元52使尾部指示符遞增1??刂七壿媶卧?2還設(shè)定該入口的有效位,指示有效的實(shí)際地址字段。
如上所述,序列器單元18確定一個控制信號,指示送數(shù)/存儲部件28可完成送數(shù)指令。控制邏輯單元52轉(zhuǎn)發(fā)由該首部指示符索引的送數(shù)指令的實(shí)際地址到數(shù)據(jù)高速緩沖存儲器16。如果數(shù)據(jù)高速緩沖存儲器16能夠提供所要求的數(shù)據(jù),則數(shù)據(jù)高速緩沖存儲器16經(jīng)過送數(shù)/存儲部件28轉(zhuǎn)發(fā)該數(shù)據(jù)到結(jié)果總線,控制邏輯單元52使該首部指示符遞增1和控制邏輯單元52清除指令的有效位。如果數(shù)據(jù)高速緩沖存儲器16不能提供所要求的數(shù)據(jù),則送數(shù)/存儲部件28必須等待數(shù)據(jù)高速緩沖存儲器16和BIU12從外部存儲系統(tǒng)檢索該數(shù)據(jù)。數(shù)據(jù)高速緩沖存儲器16經(jīng)過送數(shù)/存儲部件28直接地轉(zhuǎn)發(fā)所接收的數(shù)據(jù)到該適當(dāng)?shù)慕Y(jié)果總線并且給控制邏輯單元52確定一個控制信號。然后控制邏輯單元52遞增該首部指示符。
圖4表示可能狀態(tài)的狀態(tài)瞬變圖,圖中可能是圖3所示的存儲隊列40的每個入口。在存儲隊列48中的六個入口的每個入口可能是五個所示狀態(tài)“無效”、“完成”、“結(jié)束”、“嘗試”、“在丟失后擊中”(HIT-UNDER-Niss)其中的一個和唯一的一個。四個存儲指示符(Pointer)的特定值是“最舊的丟失”、“下一個存取”、“結(jié)束”和“派送”,每個入口有效位和數(shù)據(jù)處理器10的操作確定該入口處于哪個狀態(tài)。
存儲隊列48中六個入口的每個入口的每個入口在開始時處于無效狀態(tài)。該“最舊丟失”指示符(Pointer)直到和包括該“派送”指示符之間的每個入口處于“無效”狀態(tài)。最后,序列器單元18派送足夠的存儲指令到送數(shù)/存儲部件28使該傳送指示符索引該特定入口。然后控制邏輯單元52緩存?zhèn)魉徒o該入口中送數(shù)/存儲部件28的下一個存儲指令。數(shù)據(jù)高速緩沖存儲器16翻譯特定入口的有效地址為一個實(shí)際地址并且轉(zhuǎn)發(fā)這個地址到送數(shù)/存儲部件28。當(dāng)收到所翻譯的地址時,控制邏輯單元52設(shè)定該特定入口的有效位。然后這個特定入口的狀態(tài)從“無效狀態(tài)”瞬變?yōu)椤巴瓿伞睜顟B(tài)。該特定入口保持在這個狀態(tài)直到序列器單元18指示存儲在該入口中的存儲指令是數(shù)據(jù)處理器10中的最舊指令。在“派送”指示符直到和包括“結(jié)束”指示符之間的每個入口處于“完成”狀態(tài)。
最終,序列器單元18發(fā)信號通知控制邏輯單元52,存儲在由結(jié)束指示符指示的入口中的存儲指令是數(shù)據(jù)處理器10中的最舊指令。這時,在該程序順序中在該存儲指令前面的每個指令已更新該適當(dāng)?shù)慕Y(jié)構(gòu)寄存器,或者如果沒有要求更新,已達(dá)到其操作中的一點(diǎn),在此之后它不可能產(chǎn)生例外。這時把數(shù)據(jù)寫到外部存儲系統(tǒng)是安全的,而無需必須“取消”該存儲指令的處理。這個特定入口的狀態(tài)從該“完成”狀態(tài)瞬變到“結(jié)束”狀態(tài)?!敖Y(jié)束”指示符直到和包括該“下一個存儲”指示符之間的每個入口是處于“結(jié)束”狀態(tài)。
當(dāng)該“下一個存取”指示符索引含有該存儲地址數(shù)據(jù)對而且沒有較高優(yōu)先級操作的入口時,控制邏輯單元52提供一個存儲地址數(shù)據(jù)對給數(shù)據(jù)高速緩沖存儲器16。這時,該特定入口轉(zhuǎn)變?yōu)椤皣L試”狀態(tài)。如果數(shù)據(jù)高速緩沖存儲器16確定該控制信號“重試”,該入口狀態(tài)可返回到“結(jié)束”狀態(tài)。當(dāng)例如因?yàn)閿?shù)據(jù)高速緩沖存儲器16從BIU12接收數(shù)據(jù),數(shù)據(jù)高速緩沖存儲器16存取專門的地址翻譯表等它不能服務(wù)存儲指令時,數(shù)據(jù)高速緩沖存儲器16確定該控制信號“重試”。該下“一個存取”指示符直到和包括“最舊丟失”指示符之間其有效被置位的每個入口是處于“嘗試”狀態(tài)。
在控制邏輯單元52提供一個存儲地址數(shù)據(jù)對給數(shù)據(jù)高速緩沖存儲器16之后有兩個可能的結(jié)果。數(shù)據(jù)高速緩沖存儲器16或者包含該數(shù)據(jù)“擊中”(hit)或者不包含該數(shù)據(jù)“丟失”。
在該數(shù)據(jù)高速緩沖存儲器擊中情況下,該入口瞬變?yōu)椤霸趤G失后擊中”狀態(tài)或者“無效”狀態(tài)。如果“最舊丟失”指示符沒有把它識別為最舊有效存儲指令,該入口瞬變?yōu)椤霸趤G失后擊中”狀態(tài)。相反地,如果該“最舊丟失”指示符將它識別為最舊有效存儲指令,該入口瞬變?yōu)椤盁o效”狀態(tài)。在這兩種情況下,控制邏輯單元52清除該入口的有效位。該“結(jié)束”指示符直到該“最舊丟失”指示符之間其有效位被清除的每個入口處于“在丟失后擊中”狀態(tài)。
在該數(shù)據(jù)高速緩沖存儲器丟失情況下,包含所提供的存儲地址數(shù)據(jù)對的特定入口仍然處于“嘗試”狀態(tài)。
只要“最舊丟失”指示不把它識別為最舊有效存儲指令,特定的入口仍然處于“在丟失后擊中”狀態(tài)。當(dāng)“最舊丟失”指示符將它識別為最舊有效存儲指令,該入口轉(zhuǎn)變?yōu)椤盁o效”狀態(tài)。
雖然已對照具體實(shí)施例描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員可做進(jìn)一步的修改和改進(jìn)。例如,所公開的發(fā)明可以組合入傳統(tǒng)地分類為復(fù)合指令集計算機(jī)或CISC機(jī)的數(shù)據(jù)處理器中。而且,一些功能單元在一些實(shí)施例中可省去或者重新放置在數(shù)據(jù)處理器10的其它區(qū)域。鑒此應(yīng)該懂得,本發(fā)明包括不脫離所附權(quán)利要求書中規(guī)定的本發(fā)明的精神和范圍的所有這些修改。
權(quán)利要求
1.一種具有執(zhí)行送數(shù)指令的執(zhí)行單元的數(shù)據(jù)處理器,其特征在于該數(shù)據(jù)處理器包括多個結(jié)構(gòu)寄存器;一個再命名緩沖器,連接到該多個結(jié)構(gòu)寄存器,該再命名緩沖器包括多個入口,該多個入口的每個入口緩存多個指令的不同指令的多個結(jié)果的不同結(jié)果;一個送數(shù)部件,連接該再命名緩沖器,用于派送給它的每個送數(shù)指令標(biāo)記對,該送數(shù)部件從存儲系統(tǒng)請求由一個地址索引的數(shù)據(jù),并且在由一個標(biāo)記索引的再命名緩沖器的多個入口之一中緩沖該數(shù)據(jù),該送數(shù)指令標(biāo)記對包括識別該再命名緩沖器多個入口之一的標(biāo)記;和一個序列器單元,連接到該送數(shù)部件,該序列器單元接收送數(shù)多重指令,該送數(shù)多重指令要求N×W字節(jié),這里N和W是整數(shù),N大于1和多個結(jié)構(gòu)寄存器的每一個的容量為W字節(jié),該序列器單元傳送N個送數(shù)指令標(biāo)記對到該送數(shù)部件。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)處理器,其特征在于,該序列器單元傳送一個地址到該送數(shù)部件,和其中該送數(shù)部件進(jìn)一步的特征在于地址計算裝置產(chǎn)生N個送數(shù)指令標(biāo)記對的(N-1)對的(N-1)個地址。
3.根據(jù)權(quán)利要求2的數(shù)據(jù)處理器,其特征在于,該地址計算裝置包括一個加法器,用于將一個第一復(fù)用器的輸出與一個第二復(fù)用器的輸出相加;該第一復(fù)用器,交替地輸出N個送數(shù)指令標(biāo)記對的每對的第一字段或數(shù)W;該第二復(fù)用器,交替地輸出N個送數(shù)指令標(biāo)記對的每對的第二字段或該加法器的輸出;和控制電路,用于選擇第一和第二復(fù)用器的輸入。
4.根據(jù)權(quán)利要求3的數(shù)據(jù)處理器,其特征在于,該序列器單元包括一個再定序緩沖器,存儲一個序列的傳送指令,和其中該序列器單元響應(yīng)該序列將再命名緩沖器的多個輸入之一復(fù)制到多個結(jié)構(gòu)寄存器之一。
5.根據(jù)權(quán)利要求4的數(shù)據(jù)處理器,其特征在于,對于派送到該送數(shù)部件的每個存儲指令,該送數(shù)部件存儲由該地址索引的數(shù)據(jù)到該存儲系統(tǒng),和其中該序列器單元接收一個存儲多重指令,該存儲多重指令存儲M×N字節(jié),這里M是大于1的一個整數(shù),該序列器單元傳送M個存儲指令給該送數(shù)部件。
6.一種操作具有執(zhí)行送數(shù)指令的執(zhí)行單元的數(shù)據(jù)處理器的方法,其特征在于,該方法包括以下步驟在第一時間期間,接收在序列器單元中的送數(shù)多重指令,該送數(shù)多重指令要求N×W字節(jié)的數(shù)據(jù),這里N和W是整數(shù),N大于1,和多個結(jié)構(gòu)寄存器的每一個的容量為W字節(jié);在N個隨后的時間期間,第一派送N個送數(shù)指令標(biāo)記對到一個送數(shù)部件,N個送數(shù)指令標(biāo)記對包括識別一個再命名緩沖器的多個入口之一的一個標(biāo)記,對于派送給它的每個送數(shù)指令標(biāo)記對,該送數(shù)部件從存儲單元請求由一個地址索引的W字節(jié)的數(shù)據(jù)和在由該送數(shù)指令標(biāo)記對的標(biāo)記索引的該再命名緩沖器多個入口之一中緩存該W字節(jié)數(shù)據(jù);和將該再命名緩沖器的多個入口的不同入口存儲在多個結(jié)構(gòu)寄存器的不同寄存器。
7.根據(jù)權(quán)利要求6的方法,其特征在于,包括以下步驟在第二時間期間,接收在該序列器單元中的存儲多重指令,該送數(shù)多重指令存儲M×N字節(jié)數(shù)據(jù),這里M是大于1的一個整數(shù);和在M個隨后時間期間,第二派送M存儲指令給該送數(shù)部件,對于派送給它的每個存儲指令,該送數(shù)部件將由一個地址索引的W字節(jié)數(shù)據(jù)存儲到該存儲系統(tǒng)。
8.根據(jù)權(quán)利要求7的方法,其特征在于,包括以下步驟在N個隨后時間的第二至第N個時間期間,在該送數(shù)部件中計算該地址。
9.根據(jù)權(quán)利要求8的方法,其特征在于,該存儲步驟包括響應(yīng)存儲在一個再定序緩沖器中的一序列指令將該再命名緩沖器的多個入口的不同入口存儲到多個結(jié)構(gòu)寄存器的不同寄存器的步驟。
10.根據(jù)權(quán)利要求9的方法,其特征在于,第一派送的步驟包括派送N個送數(shù)指令標(biāo)記對到該送數(shù)部件的步驟,該送數(shù)部件從制作在與該數(shù)據(jù)處理器相同的半導(dǎo)體基片上的存儲系統(tǒng)請求由該地址索引的數(shù)據(jù)。
全文摘要
所公開的數(shù)據(jù)處理器(10)派送送數(shù)/存儲多重和送數(shù)/存儲串指令到一個送數(shù)/存儲部件(28)作為一序列的簡單送數(shù)或存儲指令。該序列器單元(18)指定再命名緩沖器(34)的一個入口,該送數(shù)/存儲部件寫回每個簡單送數(shù)指令的數(shù)據(jù)到該入口。這個策略便于對隨后指令的較早數(shù)據(jù)轉(zhuǎn)發(fā)。相反地,如果它不能提供簡單存儲指令的操作數(shù),該序列器單元提供再命名緩沖器標(biāo)記給該送數(shù)/存儲部件。
文檔編號G06F9/312GK1144934SQ95106550
公開日1997年3月12日 申請日期1995年6月2日 優(yōu)先權(quán)日1994年6月3日
發(fā)明者大衛(wèi)P·伯吉斯, 馬文A·登曼, 小米爾頓M·胡德, 馬克A·克尼, 拉文亞·克林, 格雷厄姆R·墨菲, 瑟昂優(yōu)恩·彼得·桑 申請人:摩托羅拉公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1