亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多端口和交錯的超高速緩沖存儲器的制作方法

文檔序號:6412539閱讀:251來源:國知局
專利名稱:多端口和交錯的超高速緩沖存儲器的制作方法
技術領域
本發(fā)明涉及一種可同時容納對計算機輸出的多個即至少兩個例如裝入操作的存儲器存取的超高速緩沖存儲器。更具體地說,本發(fā)明涉及多端口的和交錯的超高速緩沖存儲器。并且,該多端口和交錯存取的超高速緩沖存儲器特別適用于能夠在一個周期內進行多次同時的存儲器存取的超長指令字(“VLIW”)計算機。
例如N路超標量、VLIW和DATAFLOW處理機的高度并行計算機體系結構在每個周期中同時進行多個裝入操作和/或存儲操作,從而需要很高頻帶的超高速緩沖存儲器??紤]VLIW體系結構作為范例,它為了在每個周期內進行多次裝入操作和/或存儲操作利用細粒并行性。
計算機系統(tǒng)的傳統(tǒng)并行機制涉及多個處理機。這些處理機通過通信網(wǎng)絡連接并被控制,從而在同一時刻多于一個的處理機是現(xiàn)用的。為了把傳統(tǒng)的并行處理機運用于一個特定的應用中,程序員或復雜的編譯程序必須把問題分解成各部分并建立適當?shù)耐ㄐ藕涂刂?。通常,這種方法最宜應用于那些天生地可分解成彼此很少需要通信的許多部分的問題。但是,許多應用不能按這種方式構造。從而,除了用于“科學”數(shù)值方法和其它高度結構化的問題外,傳統(tǒng)的并行處理不是非常有效的。
在幾個方面上細粒并行性是指令級并行性的擴充。編譯程序發(fā)現(xiàn)程序中可以同時執(zhí)行的機器指令。這些獨立的指令一起放入到一條復合指令中,即“超長指令字”(VLIW)中。VLIW指令的各個部分控制計算機硬件的一個獨立部分,例如運算邏輯部件、至主存儲器的通路或至寄存器的通路。在一個VLIW機器周期內,可以獨立地使用VLIW計算機內所有的這些獨立資源,從而可以同時執(zhí)行幾條基本機器指令。這可具有能夠比傳統(tǒng)單元處理機的處理機下在較少的機器周期內完成任務的優(yōu)點。
VLIW技術改進了單處理機性能。因此,可把它看成為開發(fā)的計算機內并行性,它也稱為細粒并行性。相反,傳統(tǒng)的或者粗粒的并行性可以看成為計算機間的并行性。當然,通過把幾個VLIW計算機連接為一個計算單元有可能利用計算機內和計算機間并行性。


圖1是一個框圖,說明包括相關存儲器分層的現(xiàn)有技術的VLIW的體系結構。寄存器堆110和功能部件102-108連接。更具體地說,裝入/存儲部件102、浮點加法部件104、整數(shù)ALU106和轉移部件108中的每個部件具有兩條從寄存器堆110提供數(shù)據(jù)的裝入線和一條從功能部件向寄存器堆110存儲數(shù)據(jù)的存儲線。寄存器堆110稱為LO存儲器層。
圖1還包括L1存儲器層,或超高速緩沖存儲器,112,它雙向地和寄存器堆110及L2存儲器層114連接。L2存儲器層114雙向地和L3存儲器層116連接。L3存儲器層116還雙向地和L4存儲器層118連接。圖1中所示的存儲器分層體系的一般原理是周知的。
在歷史上,兩個因素影響計算機的運行速度,第一個因素是例如其最慢的功能部件處理機對現(xiàn)已得到的數(shù)據(jù)的操作速度。第二個因素是功能部件所需數(shù)據(jù)可獲得的速度。在歷史上,改進第二個因素要比第一個因素更難。
VLIW概念認識到,對于給定的存儲器存取時間,如果在同一時間處理更多條的數(shù)據(jù)可以提高有效操作速度。例如,八個功能部件在一個周期內將操作最多達十六條的數(shù)據(jù)。相反,在任一周期內只能使用其一種功能部件的計算機在每個周期兩條數(shù)據(jù)的速率下操作十六條數(shù)據(jù)需要八個周期。在該例子中,VLIW計算機盡管具有相同的存儲器存取時間都比傳統(tǒng)的計算機快八倍。
然而只有當存在著可以同時分別向八個功能部件提供十六條數(shù)據(jù)的超高速緩沖存儲器時VLIW計算機才達到這種改進。從可接線性、性能、功率強度以及在例如低于1納秒的存取時間的高速下的噪聲容限的角度來看,真正的八個或更多的端口的超高速緩沖存儲器陣列被認為是不現(xiàn)實的。真正的八端口或更多端口的高速緩沖存儲器陣列是極為復雜的。它具有本質上的性能問題,因為,例如,N個端口趨于向電流源性能和單元(cell)輸出器件的容量施加大的負載。通過電路的布置,任何端口必須能驅動任何流水線/總線。
相反,把超高速緩沖存儲器構造成獨立操作的部件或模塊,即交錯存取的,只要求每個中間層驅動一個流水線。通過利用交錯存取伸展超高速緩沖存儲器,可接線性得到改進,從而提高性能。因為僅需要驅動一個或二個輸出端口,每個單元可做得更小。
本發(fā)明的一個目的是提供一種超高速緩沖存儲器,它能同時接納多個存儲器存取,例如對VLIW計算機的裝入操作。
本發(fā)明的一個目的是提供一種運行上等同于真正8端口的和交錯存取的超高速緩沖存儲器但又不真正是8端口的裝置,即一種可同時接納8個存儲器存取的偽8端口的和交錯存取的超高速緩沖存儲器。
本發(fā)明的一個目的是提供一種可同時接納16個或更多的存儲器存取的偽16端口或更多端口的和交錯存取的超高速緩沖存儲器。
本發(fā)明的一個目的是提供用于生成在8端口、16端口或更多端口的和交錯存取的超高速緩沖存儲器中存儲數(shù)據(jù)的有效地址的方法和裝置。
本發(fā)明的一個目的是提供一種編譯程序方法,用以優(yōu)化使用8端口、16端口或更多端口的和交錯存取的超高速緩沖存儲器。
本發(fā)明提供一種可同時接納例如VLIW計算機請求約多個裝入操作這樣多個存儲器存取的超高速緩沖存儲器。
本發(fā)明提供一種可同時接納多個存儲器存取的超高速緩沖存儲器,由于用邏輯構件組成偽多端超高速緩沖存儲器,它在可接線性、性能、功率強度和噪聲容限上不承受實多端口超高速緩沖存儲器的這些方面的成本。從而,偽多端口超高速緩沖存儲器具有實多端口超高速緩沖存儲器的功能性但不具有其技術和/或制造復雜性。
實多端口存儲器的問題例如可接線性和功率強度得到解決,即本發(fā)明提供用邏輯構個組成的不具有這些問題的偽8端口、16端口或更多端口的和交錯存取的存儲器。在一種實施方式中,邏輯構件具有單個寫端口、單個讀端口和專用行地址總線。在第二實施方式中,邏輯構件具有操作上和一條專用讀地址總線連接的第一組的一個寫端口和一個讀端口以及操作上和另一條專用讀地址總線連接的第二組的一個寫端口和一個讀端口。
本發(fā)明的各種目的還通過提供容納多個數(shù)據(jù)單元的一個偽多端口和交錯存取超高速緩沖存儲器來達到。該存儲器劃分成第一邏輯部分和第二邏輯部分。每個邏輯部分容納多個數(shù)據(jù)單元。每個邏輯部分交錯成M個區(qū)(bank),M≥2。每個區(qū)包括至少一個第一寫/控制端口;以及至少一個第一讀端口。每個區(qū)對每對寫端口和讀端口設有一條專用行地址總線。每個邏輯部分的第一寫/控制端口在運行上和第一寫/控制總線連接,而每個邏輯部分的第二寫/控制端口在運行上和第二寫/控制總線連接,從而第一寫/控制總線的寫操作獨立于第二寫/控制總線的寫操作。
從下面給出的詳細說明本發(fā)明的可應用的其它范圍將變得明了。但是,應該理解,用于表示本發(fā)明的最佳實施方式的詳細說明以及具體的例子僅是按示意的方式給出的,因為從該詳細說明熟練的技術人員將會清楚在本發(fā)明的精神和范圍之內的各種改變和修改。
從下面給出的僅出于示意方式的和不限定本發(fā)明的詳細說明及其附圖將更全面地理解本發(fā)明,附圖是圖1是現(xiàn)有技術的超長指令字(VLIW)計算機和其相關存儲器分層結構的框圖;圖2是本發(fā)明的超高速緩沖存儲器的第一和最佳實施方式的框圖;圖3是和本發(fā)明的超高速緩沖存儲器結合使用的尋址模式中所涉及的硬件的框圖;圖4是本發(fā)明的超高速緩沖存儲器的第二實施方式的圖示;圖5是第一實施方式的可選附加方式的框圖;圖6是第一實施方式的可選附加的和最佳的緩沖方式的框圖;圖7是圖6的緩沖方式的更詳細的框圖;以及圖8表示使使用本發(fā)明的超高速緩沖存儲器的緩沖方式的處理機發(fā)出的存儲指令的結構。
由于物理的或者真正的8端口或端口更多的超高速緩沖存儲器陣列在當今是不現(xiàn)實的,本發(fā)明的各實施方式實現(xiàn)一種構件方法,在該方法中使用多個實際的物理構件(最好是最大的物理構件)在邏輯上組成偽8端口、16端口或更多端口的和交錯存取的超高速緩沖存儲器。
圖2描述本發(fā)明的第一和最佳的超高速緩沖存儲器實施方式的框圖。圖2的超高速緩沖存儲器200最好是一個純數(shù)據(jù)超高速緩存,但可以是一個混合式指令/數(shù)據(jù)超高速緩存,并用于替代圖1的L1超高速緩存112。L1超高速緩沖存儲器200包括第一邏輯部分A,標記為項202;第二邏輯部分,標記為項204;8×8縱橫接線器A206以及8×8縱橫接線器B208。
每個邏輯部分202和204劃分成,例如,8個區(qū)或構件,標記為區(qū)0至區(qū)7。每個區(qū)j,包括一個寫端口WPj和一個讀端口RPj。寫端口WPj和一條8字節(jié)寬的寫入線WLj連接。
每個縱橫接線器206和208具有8個輸入端口IP0和IP7和8個輸出端口OP0和OP7??v橫接線器206的每個輸出端口分別和讀出線RLA0至RLA7連接。類似地,縱橫制接線器208的每個輸出端口分別和讀出線RLB0至RLB7連接。每個地址線RLA0至RLA7和RLB0至RLB7和圖1的寄存器堆110連接。
縱橫接線器206的輸入端口和邏輯部分202的讀端口連接。類似地,縱橫制接線器208的輸入端口和邏輯部分204的讀端口連接。
每個寫入線WL0至WL7、連接邏輯部分的一個讀端口和一個縱橫接線器輸入端口以及讀出線RLA0至RLA7和RLB0至RLB7各條總線為,例如,8字節(jié)寬,這里8字節(jié)數(shù)據(jù)代表一個雙字。
圖3是一個框圖,描述為生成有效地址以在本發(fā)明的8端口、16端口或更多端口的和交錯存取的超高速緩沖存儲器里存儲數(shù)據(jù)的方法而實施的最佳結構?;芳拇嫫?02和加法器306的一個輸入端連接。指令寄存器304的位移域和加法器306的陣個輸入端連接。加法器306的輸出端和一個3-8譯碼器308連接。譯碼器308的輸出線充當區(qū)選擇線BS0至BS7。
圖4描述本發(fā)明的超高速緩沖存儲器的第二實施方式,它是圖2的最佳實施方式的一種替代方案。存儲設備400表示為具有8個區(qū),區(qū)0至區(qū)7。每個區(qū)是一個具有二個邏輯部分A和B的2端口的邏輯構件。區(qū)j的端口A具有寫端口A-WPj和讀端口A-RPj,并具有專用讀地址總線RA(Aj)。類似地,區(qū)j的端口B具有寫端口B-WPj和讀端口B-RPj,以及專用讀地址總線RA(Bj)。每對寫端口A-WPj和B-WPj一起連接到寫入線WLj。換言之,對于每個區(qū)0-7分別存在寫入線WL0至WL7。
如圖2中那樣,存在著8×8縱橫接線器206和8×8縱橫接線器208,縱橫接線器206的輸入端和存儲結構400的邏輯部分A的讀端口組連接,縱橫接線器208的輸入端和邏輯部分B的讀端口組連接。
并且,如圖2中所示,寫入線WL0至WL7、讀出線RLA0至RLA7和RLB0至RLB7、以及把存儲結構400的讀端口連接到縱橫接線器206和208的線都為8字節(jié)寬。
圖5表示圖1所示的第一實施方式的可選附加方式的框圖。如圖2中,有兩個各具有區(qū)0-區(qū)7的存儲裝置200和204。每個區(qū)又劃分為4個象限Q0至Q3。每個象限和來自圖1的L2存儲器層114的8字節(jié)寬的數(shù)據(jù)線連接。例如,在區(qū)0中,象限Q0和L2再裝入線L2R0連接,我和L2R1連接,Q2和L2R2連接,以及Q3和L2R3連接。類似地,例如,在區(qū)7中,Q0和L2再裝入線L2R28連接,Q1和L2R29連接,Q2和L2R30連接,以及Q3和L2R31連接。
和圖2中邏輯部分A和B的對應端口的寫入線組連接在一起相一致,圖4的L2再裝入線組連接在一起,從而,例如,在數(shù)據(jù)結構204的區(qū)0中,Q0還和L2R0連接,Q1還和L2R1連接,Q2還和L2R2連接,以及Q3還和L2R3連接。為使圖5簡明,圖5中略去L2再裝入線和其它區(qū)/象限之間的連接。
每個區(qū)中的四個象限各還和一個“或”門連接,例如,“或”站500和存儲結構200的區(qū)0的象限0-3連接?!盎颉遍T502和存儲結構200的區(qū)7的象限Q0-Q3每一個連接?!盎颉遍T504和數(shù)據(jù)結構204的區(qū)0的各個象限Q0-Q3連接,而“或”門506和區(qū)7的各個象限Q0-Q3連接。各個“或”門500和圖1的寄存器堆110連接。類似于L2再裝入線,把象限和“或”門連接起來的每條線為8字節(jié)寬。L2再裝入線0-31代替圖1的L2存儲器層114和圖2有寫入線WL0至WL7之間的連接。又,為保留圖5的簡明性,在圖5中未示出所有的“或”門。
圖6描述在第一實施方式的可選附加的和最佳的緩沖方式中所涉及的結構的框圖。在圖6中,為保留圖的簡明性,僅示出一個邏輯部分的一部分,即部分A的區(qū)j。以下更全面討論的周期挪用邏輯600從讀地址線RA(A)j上接收地址信號。
三個存儲指令(“存儲操作”)緩沖器串行地和區(qū)j連接,即,寫入線Wj示為饋給存儲操作緩沖器606。存儲操作緩沖器606饋入給存儲操作緩沖器604。存儲操作緩沖器604饋給存儲操作緩沖器602,并且存儲操作緩沖器602饋給區(qū)j的寫端口Wpj。
經(jīng)信號線608,周期挪用邏輯600向各個存儲操作緩沖器602、604和606發(fā)送控制信號。并且,還示出地址比較功能邏輯610,它在讀地址線RA(A)j上接收讀地址信號,并且分別經(jīng)信號線612-612從各個存儲操作緩沖器602-606接收已被緩沖的存儲指令作為目標的存儲單元的地址。以下要更全面說明的地址比較操作邏輯610經(jīng)信號線618輸出取出/裝入拖延控制信號。
圖7是本發(fā)明的超高速緩沖存儲器的緩沖方式的更詳細框圖。圖7表示超高速緩沖存儲器200或400的一個示范性區(qū)702,稱為“區(qū)j”。類似地,和該區(qū)j,即項702,相關的三個示范性存儲操作緩沖器為項704A、704B和704C。
在圖7中,通過16字節(jié)的雙向寄存器一寄存器數(shù)據(jù)總線906,定點處理機902和浮點處理機904連接。通過32字節(jié)寬的寫總線932,浮點處理機904和存儲操作緩沖器704C連接。
圖7的區(qū)j可以存儲多個8字節(jié)的雙字。另外,它有一個經(jīng)線920j、選擇器918并分別經(jīng)線922和924把區(qū)j和定點處理機902及浮點處理機904連接起來的讀端口。選擇器918例如可以分別是在圖2和圖4中的縱橫接線器206和208中的一個。
經(jīng)32字節(jié)寬的寫地址總線932,圖7的浮點處理機904和存儲操作緩沖器704C連接。通過32字節(jié)寬的總線705C,存儲操作緩沖器704C和存儲操作緩沖器704B連接。存儲操作緩沖器704B通過32字節(jié)寬的總線705B和存儲操作緩沖器704A連接。存儲操作緩沖器704A通過32字節(jié)寬的總線705A和區(qū)j702連接。
圖7的存儲操作緩沖器704C還直接通過緩沖器旁路總線720和區(qū)j702連接。類似地,存儲操作緩沖器704B還通過緩沖器旁路總線722直接和區(qū)j702連接。
圖7也包括周期挪用邏輯706,它通過雙向總線710和定點處理機902連接并通過雙向總線712和浮點處理機904連接。周期挪用邏輯706還分別通過信號線714、716和718向各個存儲操作緩沖器704A、704B和704C發(fā)送控制信號。
圖7還包括地址比較邏輯708,它從以下接收地址信號經(jīng)總線710從定點處理機902;經(jīng)總線712從浮點處理機904;經(jīng)信號線728從存儲操作緩沖器704A;經(jīng)信號線726從存儲操作緩沖器704B;以及經(jīng)信號線724從存儲操作緩沖器704C。地址比較邏輯708分別沿信號線725、727和729向存儲操作緩沖器704A、704B和704C發(fā)送控制信號。地址比較邏輯708還通過信號線730向定點處理機902并通過信號線732向浮點處理機904發(fā)送控制信號。
作為對緩沖器旁路總線720和722的一種替代,圖7中未出區(qū)旁路總線734、736和738(虛線)。區(qū)旁路總線734直接把存儲操作緩沖器704C和定點處理機902以及浮點處理機904連接起來。區(qū)旁路總線736直接把存儲操作緩沖器704B和定點處理機902以及浮點處理機904連接起來。類似地,區(qū)旁路總線738把存儲操作緩沖器704A直接和處理機902以及904連接起來。
圖8表示由處理機902和904中的任一個發(fā)出的存儲指令800的各字段。存儲指令800包括指令字段802;實地址字段804;有效位806;排斥位808;以及操作數(shù)字段810。
現(xiàn)說明圖2的最佳實施方式的操作。因為邏輯部分A(即存儲裝置202)的各區(qū)的寫端口分別和邏輯部分B(即存儲裝置204)的對應區(qū)的寫端口連接,圖2的超高速緩沖存儲器200可以同時進行八個8字節(jié)的存儲操作。與此相對比,超高速緩沖存儲器200具有16個獨立的讀端口,即邏輯部分A(項202)的讀端口RP0至RP7以及邏輯部分B(項204)的讀端口RP0至RP7,從而它可以同時進行16個8字節(jié)的讀操作。
用于邏輯部分A的縱橫制接線器(即項206)使任一寫端口RP0能夠和寫入線RLA0至RLA7的任一條連接。例如,能夠把項202的寫端口連接到項206的讀出線RLA2和把讀端口RP1連接到讀出線RLA7。其余的讀端口RP2至RP7可類似地按任意方式和其余的讀出線RLA0至RLA1及RLA3至RLA6。在一個存儲器訪問周期之內可以完成所有的這種任意的交叉連接。
超高速緩沖存儲器200劃分為或交錯為兩個邏輯部分A和B。編譯程序把用戶寫出的程序經(jīng)利用細粒并行性轉換成由例如VLIW計算機的并行計算機執(zhí)行的程序。依賴于編譯程序限制對相同區(qū)的并發(fā)隨機裝入,即非順序的裝入或非相關的裝入,不得多于二個。通過設置二個邏輯部分,由于一個裝入操作可以在邏輯部分A的區(qū)j中發(fā)生而另一個裝入操作可以在邏輯部分B的區(qū)j中發(fā)生,解決了在一個周期內對相同的區(qū)二次裝入的問題。例如,允許從第一邏輯端口裝入VLIW的偶數(shù)部分并同時從第二邏輯端口裝入奇數(shù)部分。
本發(fā)明認識到依賴編譯程序來限制對相同區(qū)的同周期內的多次裝入約束了可使用的尋址類型。圖3描述反映著這種認識的實施方式。大多數(shù)超標量處理機至少支持兩種類型的尋址(1)X類型或X形式尋址;以及(2)基址加位移量或D形式尋址。在X類型尋址下,地址是通過相加兩個寄存器的內容形成的。然而這種編譯程序是有問題的。
編譯程序不能確定寄存器的內容,因為在編譯時這是一個未知的變量。相反,使用基址加位移量類型尋址時,位移是已知的,因為位移作為一個操作數(shù)包含在正由編譯程序并行化的程序中的指令內。基址寄存器的內容在技術上仍然是一個未確定的變量。
在圖3中描述其地址生成器的本發(fā)明還反映了這種認識,即基址寄存器的內容對于該寄存器的某些位,例如58-63,其值為0的可能性很高。例如,對于商用精簡指令集計算代碼,大部分最公用的基準目標(referenccd objects)即存儲器塊,通常沿32字節(jié)或更大的邊界是高度一致的。高度一致的目標從確定的邊界例如超高速緩存頁面或超高速緩存線的起點上開始。編譯程序可以通過把一給定值和基址寄存器里的地址相加而強制寄存器一致來加強這種情況,對于這種情況后續(xù)的補償采取從位移寄存器的后續(xù)值中減去該給定的值的形式。
圖3的地址生成器根據(jù)基址寄存器的58-63位為零的假設生成位移量型或D形式的地址。這使得編譯程序能夠把對同一區(qū)的同一周期內的隨機裝入的個數(shù)限制在不多于二次。在每個區(qū)每周期內不必處理多于兩個隨機裝入的前提下,可以僅從兩個邏輯部分形成循環(huán)存儲器而且在功能上部等同于多端口存儲器。
通過把和本發(fā)明的超高速緩沖存儲器相關的處理機限制為基址加位移量類型尋址,并且通過識別出基址寄存器的58-63位幾乎總是為0,在編譯時編譯程序可以非常高的確定性確定任何對超高速緩沖存儲器的存儲指令的地址。換言之,位移寄存器的10-12位成為超高速緩沖存儲區(qū)里作為存儲指令源的那個區(qū)的非常準確的預測器。
圖3的加法器306對基址寄存器中其值總為0的概率很高的58-63位和依賴位移寄存器的10-12位進行操作。出于有效地址的生成目的,只需要加法器306產(chǎn)生的64位和中的58-60位。從而,圖3的3-8譯碼器僅對加法器306輸出的和中的58-60位操作。譯碼器308的八條輸出線用作為區(qū)選擇線BS0至BS7。
和圖4的雙端口構件相比圖2的單端口構件的相對優(yōu)點如下。對于小的超高速緩存陣列,自然地實現(xiàn)成一個數(shù)據(jù)寫入線進入單元和一條數(shù)據(jù)讀出線從單元出來,這是因為單元具有分離的讀節(jié)點和寫結點。單端口單元需要額外的開關電路用以把數(shù)據(jù)總線和讀節(jié)點或寫節(jié)點中的一個相連接。但是,在陣列級,對一個單元有一條線進入和有一條線出來與單條線及其相關的開關電路相比較僅略微占用了更多的空間,但是兩條線略微要快些,因為在讀和寫之間切換時它不需要改變配置。
如上述所討論,采用八個區(qū)是示范性的。例如,四個區(qū)或十六個區(qū)或更多的區(qū)都可采用。如果采用16個區(qū),則加法器應對4個位而不是對來自位移寄存器304的3個位操作。類似地,譯碼器308應是一個對加法器306產(chǎn)生的和中選定的4個位而不是3個位操作的3-16譯碼器。
如存儲器分層技術中所周知,圖1的L2存儲器114可以在一次存儲器存取內同時寫L1超高速緩沖存儲器的一條完整的線(亦稱為一個塊)。這種能力反映在把超高速緩沖存儲器200的各個邏輯部分A和B的寫端口WP0至WP7和圖1的L2存儲器層114連接起來。
現(xiàn)在討論圖4的超高速緩沖存儲器的第二實施方式的操作。邏輯部分A和B組合到由一組雙端口構件或區(qū)形成的一個存儲裝置402中。交錯的區(qū)0-7具有一個邏輯部分A和一個邏輯部分B,每個邏輯部分分別具有一個讀端口和一個寫端口以及和其連接的一條專用讀地址總線及一條專用寫地址總線。除了對邏輯部分A和邏輯部分B的對應部分的存取造成對相同物理構件的存取而不是如圖2中的兩個獨立的構件的存取之外,其操作非常類似于圖2的實施方式。
現(xiàn)說明如圖5中所描述的第一實施方式的附加可選方式的操作;這些附加的方面可相同地應用于第二實施方式。L2再裝入線L2R0-L2R31(和各區(qū)的各象限連接)可使圖1的L2存儲器層114在一個存儲器存取時間周期內同時再裝入整個超高速緩沖存儲器,即存儲設備202和204兩者。這大大擴大了L1超高速緩存和L2存儲器層之間的帶寬。作為重申,L2存儲器層114可以同時向L1超高速緩沖存儲器200發(fā)送256個字節(jié)。
和各個區(qū)j相關的“或”門500用于代替和每個象限Q0至Q3連接的四路選擇器。因為在一給定時刻只讀一個子層或一個象限,只需要把象限的輸出和“或”門相組合。這具有比在別的情況下采用四路開關要更快的優(yōu)點。
現(xiàn)說明圖6中所描述的實施方式的可選附加方式的操作;這些附加的方式可等同地運用到圖4所描述的實施方式中。
對于16個或更多的交錯,為了達到實際結果必須對存儲指令進行緩沖。此外,對于需要使存儲指令按原始程序所說明的相同次序執(zhí)行的操作系統(tǒng)來說,存儲指令的緩沖是非常重要的。
存在著這樣的情況,即在一個存儲器存取周期內對本發(fā)明的超高速緩沖存儲器的邏輯部分如圖2或4中的A和B中的一個或兩者進行8個裝入操作。在這種情況下,如果還有一個或多個存儲指令也安排到該周期,則會發(fā)生沖突。沖突的存儲指令暫時在緩沖器中保存。
裝入操作優(yōu)先于存儲操作給出。通常,裝入指令按2∶1的比率在數(shù)量上超過存儲指令。圖6的可選附加方式使得超高速緩沖存儲器,例如圖2的實施方式200,能在存儲指令瞄準的區(qū)沒有被裝入操作訪問的周期到來之前緩沖存儲指令。
圖6的每個存儲操作緩沖器602、604和606保存一條存儲指令,其中包括存儲操作所指向的區(qū)中的單元的標識和要存儲的有關數(shù)據(jù)。
圖6的周期挪用邏輯600確定何時在下周期中一個或多個區(qū)將不由裝入操作訪問。周期挪用邏輯600中的比較器(未示出)例如從讀地址線RA(A)j上的實地址的三個區(qū)交錯位上判定在下一周期內是否在該區(qū)上有裝入操作。如果在下一周期中不進行裝入操作,則周期挪用邏輯600使存儲操作緩沖器的內容對該區(qū)釋放,從而在下一周期中可發(fā)生該存儲指令。同時,周期挪用邏輯600還向存儲操作緩沖器604和606發(fā)送控制信號,從而若存在則把存儲操作緩沖器604和606的內容分別傳送到存儲操作存儲器602和604,以為后讀執(zhí)行周期進行準備。
圖6中公開例如三個存儲操作緩沖器,它們對在常規(guī)基準下累積的存儲指令的數(shù)量是足夠的。根據(jù)具體的應用可以增加或減少存儲操作緩沖器的數(shù)量,或者如圖2和4中所示全部取消掉。
在本發(fā)明的超高速緩沖存儲器中對每個區(qū)設置一個周期挪用邏輯600和三個緩沖器602、604和606組成的一組。
圖6還示出地址比較功能邏輯610。在緩沖存儲指令時,會出現(xiàn)一條裝入指令試圖訪問由于正緩沖在一個存儲操作緩沖器中而尚未寫入到區(qū)中的數(shù)據(jù)的可能性。為了檢測這種情況,地址比較功能邏輯610中的比較器(未示出)在每個周期中把所有存儲操作緩沖器中用于所有各區(qū)的完整目標地址和每個裝入操作朝向的地址進行比較。如果當前一個存儲操作緩沖器是空的,則邏輯610禁止對該存儲操作緩沖器的地址比較,以防止虛假的結果。
如果存在匹配,即,如果一條裝入指令所指向的地址和一個緩沖器中的一條存儲指令所指向的地址是相同的,則地址比較功能邏輯610拖延該裝入操作的執(zhí)行直至對應的存儲操作已從存儲操作緩沖器隊列中排出。所有比較的輸出被組合,例如,借助一個“或”門(未示出)產(chǎn)生原始拖延信號。換言之,在渡過足夠的執(zhí)行周期從而匹配的存儲指令已從緩沖器中傳出并已在區(qū)上執(zhí)行之前,拖延或阻止該裝入操作的執(zhí)行。
參照圖7現(xiàn)更詳細地討論緩沖操作。同樣,圖7表示一個示范性的區(qū),區(qū)j702,以及相關的示范性的存儲操作緩沖器704A-704C,它可對應于,例如,圖2的202或204邏輯部分A或B中任一個的區(qū)0-區(qū)7中的任一個區(qū)。為了把圖7的示范性實施方式應用到圖4的示范性實施方式上所需的改變是在熟練的技術人員的一般能力之內的事。
例如在圖8中描述的一條存儲指令由圖7的定點處理機902或浮點處理機904發(fā)出并沿寫總線932傳送到第三存儲操作緩沖器704C。如果第二存儲操作緩沖器704B中沒有保存存儲指令,緩沖器704C中的存儲指令被傳送到緩沖器704B。類似地,若在第一存儲操作緩沖器704A中沒有保存存儲指令,從第二緩沖器704B向第一緩沖器704A傳送存儲指令。
圖7的周期挪用邏輯706監(jiān)視由處理機902和904發(fā)出的裝入/取出指令。周期挪用邏輯706的比較器(未示出)例如從線710和712上的讀地址的兩個區(qū)交錯位判定在下一周期內是否在區(qū)702上有裝入操作。如果,在下一機器周期內處理機902和904都不訪問區(qū)j702,則周期挪用邏輯沿通信線714向第一緩沖器704A發(fā)送控制信號,從而可以在下一指令周期期間通過一次寫操作完成保存在緩沖器中的存儲指令。比較器的輸出例如通過一個“或”門(未示出)被組合,以形成構成發(fā)送到緩沖器的控制信號的一部分的原始信號。來自周期挪用邏輯706的控制信號中包含著一個在給定周期內輸出的用于給定存儲指令地址的區(qū)寫入時鐘允許信號。
周期挪用邏輯706還向緩沖器704B和704C發(fā)送控制信號,從而任何保存的存儲指令可下送到下一個存儲緩沖器中,即緩沖器704C中的存儲指令傳送到緩沖器704B,而緩沖器704B中的存儲指令傳送到緩沖器704A。
最佳實施方式反映這種假定,在任何給定時刻多半不會積累多于三個的存儲指令,從而只示出三個存儲操作緩沖器。存儲指令緩沖器的適當數(shù)量將根據(jù)具體應用而變化,并且這種改變是在熟練的技術人員的一般能力之中的事。例如,如果處理機是一個浮點處理機,則可以預料大量的存儲發(fā)生和大量的裝入發(fā)生;相應地應增加存儲操作緩沖器的數(shù)量。
一次常規(guī)的管道拖延,例如,一次超高速緩存失漏可以造成5或10個周期的延遲。這是另一個使存儲操作緩沖器在超高速緩存控制器(未示出)的控制下排放到超高速緩存區(qū)中的時機。
層L1超高速緩沖存儲器200或400和處理機902及904的最佳組織反映這種假定,即對于每個處理機902和904只需要一個地址生成器,從而在每一次每個處理機只能對一個區(qū)進行一次數(shù)據(jù)裝入/取出。數(shù)據(jù)裝入地址生成器的數(shù)量隨具體應用變化,而其數(shù)量的改變在熟練的技術人員的一般能力之內。
通常,不僅進入?yún)^(qū)內的存儲指令的次序得到保護,而且區(qū)間的存儲指令的次序也得到保護。擁有一條排斥超高速緩存線使得能夠忽視區(qū)之間的次序。超高速緩存地址中的一個排斥位由超高速緩存目錄(未示出)使用。如果設定該位,則表示和該超高速緩存相關的處理機是擁有該超高速緩存線的唯一處理機。通常存儲指令是按程序設定的次序完成的,這是因為存在著該超高速緩存線的別的復制。具有排斥超高速緩存線允許以任意次序對該超高速緩存排放存儲指令。例如,如果三個存儲操作緩沖器已是滿的但又發(fā)出另一條存儲指令,該最近的存儲指令可被控制以繞過已在存儲操作緩沖器內的那些存儲指令。
除了對排斥超高速緩存線的存儲操作之外,編譯程序和超高速緩存硬件還識別出對已知非共享存儲部件(即,棧、堆等)的存儲指令也可能不按次序執(zhí)行。在該情況下需要一個額外的操作碼位。
可能發(fā)生這樣的情況,即處理機902和904中的一個發(fā)出一條指向區(qū)j702中一個單元的裝入/取出指令,而該單元先前應該由一條存儲指令在其上寫數(shù)據(jù),但是這條存儲指令目前保存在一個存儲操作緩沖器704A-704C中。地址比較邏輯708中的比較器(未示出)把每條裝入/取出指令的地址和緩沖器704A-704C中的存儲指令的完整指向地址進行比較。
如果出現(xiàn)匹配,即,如果裝入/取出指令指向的單元和被緩沖的存儲指令所指向的單元相同,則地址比較邏輯708將拖延處理機對裝入/取出指令的執(zhí)行直至完成對區(qū)j702的存儲指令的執(zhí)行。地址比較邏輯708的比較器的輸出例如通過一個“或”門(未示出)被組合以生成原始拖延信號。如果當前一個存儲操作緩沖器是空的,則不允許邏輯708對該存儲操作緩沖器的地址比較,以避免虛假結果。為了反復進行,地址比較邏輯708對所有的存儲操作緩沖器進行這種比較并對其控制。
有三種方式可使地址比較邏輯708讓存儲指令排出/穿過緩沖器704A-704C。
排出/穿過的最佳方法,即緩沖器旁路,是在速度和可布線性之間的折衷。例如,若在緩沖器704C內發(fā)現(xiàn)和裝入指令匹配的存儲指令,則地址比較邏輯708使得該存儲指令直接經(jīng)緩沖器旁路總線720傳送到區(qū)j702,而不是非直接地依次經(jīng)過緩沖器704B和704A。類似地,若在緩沖器704B中發(fā)現(xiàn)匹配的存儲指令,地址比較邏輯708使該存儲指令直接經(jīng)緩沖器旁路總線722而不是非直接地經(jīng)過緩沖器704A傳送到區(qū)j702。
作為這種緩沖器旁路方法的一種替代方法,地址比較邏輯708簡單地使匹配的存儲指令之前的所有存儲指令被執(zhí)行,即由區(qū)j702存儲。但是,這種方法相對于在緩沖器704C中發(fā)現(xiàn)匹配的存儲指令并且旁路緩沖器704A和704B里的存儲指令的情況,將使拖延的裝入操作增加拖延的時間,增加的時間等于執(zhí)行緩沖器704A和704B中的存儲指令所需的時間。
比緩沖器旁路更快的一種替代方法,盡管從可布線性考慮上是較困難的技術,可以稱之為區(qū)旁路技術。這種技術在圖3中用虛線的區(qū)旁路總線734、736和738表示,它們用來代替緩沖器旁路總線720和722,雖然區(qū)旁路總線和緩沖器旁路總線不必是相互排斥的,即它們可以一起使用。例如,若在第三緩沖器704C中發(fā)現(xiàn)匹配的存儲指令,則地址比較邏輯指示發(fā)出裝入指令的處理機分別直接經(jīng)區(qū)旁路總線736或738從緩沖器704B或704A直接裝入數(shù)據(jù)。
在地址比較邏輯708對緩沖器704A-704C中的存儲指令的地址和裝入指令(組)進行比較時,通過圖8的有效位806是否置為邏輯1,它識別緩沖器中存儲指令的存在。當存儲指令例如從緩沖器704C傳送到緩沖器704B時,緩沖器704C的有效位單元806復位為邏輯0以表示未保存存儲指令。
另一種備擇的實施方式允許由另一個處理機探查的可能性。當一個處理機查看另一個處理機的數(shù)據(jù)超高速緩存(“Dcache)目標時出現(xiàn)探聽。進行探聽的處理機可能尋找要由被緩沖的存儲指令更新的數(shù)據(jù)?;蛘咧性黾恿硗庖唤M地址比較邏輯來辯別所探聽的數(shù)據(jù)正被緩沖,或者更簡單地一旦進行探聽可自動排出緩沖器。后一方法是更佳的,因為探查的頻率和造成的緩沖器排出成本上可能不會超過附加一組地址比較邏輯的成本。
從對圖7的操作的說明應該明白,根據(jù)各區(qū)不由裝入/取出指令存取的情況的頻率,相對于存儲指令被發(fā)出的次序,在不同的區(qū)內不同步地執(zhí)行存儲指令。類似地,緩沖器旁路技術和區(qū)旁路技術使得用于特定區(qū)的各存儲指令可不同步于發(fā)出它們的次序而被執(zhí)行。
如果發(fā)生超高速緩存失漏,并且如果每個區(qū)至少存在一個存儲操作緩沖器,則地址比較邏輯將拖延由存儲器系統(tǒng)的其它部分例如L2層執(zhí)行的一個超高速緩存再裝入,直到所有的存儲指令從存儲操作緩沖器排出為止。這種排出將涉及到依次執(zhí)行每條存儲指令直至排出所有的存儲指令。這最多需要三個周期,因為在用一周期內可并行地完成來自不同區(qū)的存儲指令。
本超高速緩沖存儲器可以進行超高速緩沖存儲器的已知常規(guī)功能,例如,它具有利用一個重寫標志位以指示L2存儲器層存在著改變的數(shù)據(jù)從而在L2存儲器層對L1超高速緩存的線/塊再裝入之前進行一次回寫操作的能力。
再提一次,本發(fā)明的超高速緩沖存儲器可以是純數(shù)據(jù)超高速緩存或且混合式指令/數(shù)據(jù)超高速緩存中的一種。若它是混合式指令/數(shù)據(jù)超高速緩存,則處理機將從中裝入指令,即進行I-取出。這種取出在長度上是可變的,例如,從一個區(qū)或從所有的8個區(qū)裝入。從而,超高速緩沖存儲器將把I-取出作為只是另一次或多次裝入對待。將監(jiān)視挪用周期的機會,將緩沖存儲指令,等等。
這樣對本發(fā)明進行了說明,很明顯上述說明可按許多方式變化。這些改變并不認為是對本發(fā)明的精神和范圍的背離,對于熟練的技術人員很明顯這些改變應包括在下述權利說明書的范圍之內。
權利要求
1.一種存儲多個數(shù)據(jù)單元的多端口和交錯存取的超高速緩沖存儲器,該存儲器包括一個劃分成第一邏輯部分和第二邏輯部分的存儲器,每個邏輯部分存儲多個數(shù)據(jù)單元,每個邏輯部分交錯成M個區(qū),M≥2;每個區(qū)包括至少一個第一寫/控制端口;以及至少一個第一讀端口;以及每個區(qū)具有每對寫端口和讀端口一條專用行地址總線;以及M個區(qū)寫入總線,第一邏輯部分里的一個區(qū)上的一個寫端口和第二邏輯部分的對應區(qū)上的一個寫端口這樣的每一對連接到M條區(qū)寫入總線中的一條上,從而同時寫到對應區(qū)中的寫端口;每個讀端口獨立于其它讀端口。
2.如權利要求1中的多端口存儲器,其特征在于每個區(qū)具有組成第二對的一個第二寫端口和一個第二讀端口;第一邏輯部分對應于各區(qū)的第一寫端口和第一讀端口,第二邏輯部分對應于各區(qū)的第二寫端口和第二讀端口,從而第一邏輯部分和第二邏輯部分共享各區(qū);以及每個區(qū)具有一條與第一寫端口和第一讀端口對關聯(lián)的專用行地址總線以及一條與第二寫端口和第二讀端口對關聯(lián)的專用行地址總線;每個區(qū)代表一個雙端口化邏輯構件。
3.如權利要求2中的多端口存儲器,其特征在于進而包括按每個讀端口一條區(qū)讀出總線比率的多條區(qū)讀出總線,使得每個區(qū)具有第一和第二區(qū)讀出總線;以及一個N路縱橫接線器,它在運行上和區(qū)讀出總線連接并具有N個,輸出端口N≥2,其中N等于區(qū)讀出數(shù)據(jù)總線的數(shù)量。
4.如權利要求2的多端口存儲器,其特征在于,該多端口存儲器具有16個端口并且M=8;從而每個邏輯部分具有8個寫端口和8個讀端口。
5.如權利要求2的多端口存儲器,其特征在于,該多端口存儲器具有8個端口并且M=4;從而每個邏輯部分具有4個寫端口和4個讀端口。
6.如權利要求1的多端口存儲器,其特征在于,一個數(shù)據(jù)單元長度為8字節(jié)并且數(shù)據(jù)單元代表一個雙字。
7.如權利要求1的多端口存儲器,其特征在于,每個區(qū)只具有一個寫端口、一個讀端口第一條專用行地址總線,從而每個區(qū)代表一個單端口邏輯構件并且第一和第二邏輯區(qū)不共享任何區(qū)。
8.如權利要求7的多端口存儲器,其特征在于,該多端口存儲器具有16個端口并且M=8,從而每個邏輯部分具有8個寫端口和8個讀端口。
9.如權利要求7的多端口存儲器,其特征在于,該多端口存儲器具有8個端口并且M=4,從而每個邏輯部分具有4個寫端口和4個讀端口。
10.如權利要求7的多端口存儲器,其特征在于,按每個區(qū)一條區(qū)讀出總線比率的多條區(qū)讀出總線;第一N路縱橫制接線器,它在運行上和第一邏輯部分的每條區(qū)讀出總線連接,該第一N路縱橫制接線器具有N個輸出端口,其中N等于用于第一邏輯部分的區(qū)讀出數(shù)據(jù)總線的數(shù)目;以及第二N路縱橫制接線器,它在運行上和第二邏輯部分的每條區(qū)讀出總線連接,該第二N路縱橫制接線器具有N個輸出端口,其中N等于用于第二邏輯部分的區(qū)讀出數(shù)據(jù)總線的數(shù)目。
11.如權利要求7的多端口存儲器,其特征在于,該多端口存儲器持有64K字節(jié)。
12.如權利要求1的多端口存儲器,其特征在于,該多端口存儲器的存取時間小于1納秒。
13.如權利要求1的多端口存儲器,其特征在于在運行上第一寫/控制總線和第二寫/控制總線分別和較慢的下一層存儲器連接;第一寫/控制總線和第二寫/控制總線在規(guī)格上是足夠的,從而較慢的下一層存儲器可以同時再裝入該超高速緩沖器的整行。
14.如權利要求13的多端口存儲器,其特征在于,每個區(qū)劃分為四個象限,每個象限在規(guī)格上和數(shù)據(jù)單元相同;以及對每個區(qū),該多端口存儲器還包括用于每個象限來自較慢的下一層存儲器的專用象限寫入總線,其規(guī)格是足夠的從而較慢的下一層存儲器可以同時再裝入整個該多端口存儲器。
15.如權利要求14的多端口存儲器,其特征在于,該多端口存儲器對于每個區(qū)還包括一條規(guī)格和數(shù)據(jù)單元相等的區(qū)輸出總線;以及一個41的接線器,用于選擇性地把四條象限總線中的一條和區(qū)輸出總線連接。
16.如權利要求1的多端口超高速緩沖存儲器,其特征在于,該多端口存儲器對每個區(qū)的每個邏輯部分還包括至少一個第一存儲操作緩沖器,它在運行上和寫端口及第一寫/控制總線連接并存儲到該區(qū)的第一存儲指令;以及一個下一周期使用判定電路,用于判定將在下一周期中在該區(qū)上執(zhí)行裝入操作的第一狀態(tài)的出現(xiàn);一個周期挪用電路,用于若該狀態(tài)出現(xiàn)使得在下一周期在該區(qū)上能夠執(zhí)行第一存儲操作緩沖器中的存儲指令。
17.如權利要求16的多端口超高速緩沖存儲器,其特征在于還包括一個地址比較電路,用于判定第二狀態(tài)的出現(xiàn),該第二狀態(tài)是由任何區(qū)中的緩沖器里的存儲指令定址的單元和下一周期中要在該多端口超高速緩沖存儲器上執(zhí)行的一條裝入指令的地址相同;匹配拖延電路,用于若出現(xiàn)第二狀態(tài)時拖延匹配的裝入指令直至匹配的存儲指令可在相應的區(qū)上執(zhí)行。
18.如權利要求16的多端口超高速緩沖存儲器,其特征在于還包括第二存儲操作緩沖器,在運行上連接于第一存儲操作緩沖器和第一寫/控制總線之間,并把第二存儲指令存儲到該區(qū);第三存儲操作緩沖器,在運行上連接于第二存儲操作緩沖器和第一寫/控制總線之間,并把第三存儲指令存儲到該區(qū);其中周期挪用電路還產(chǎn)生穿過信號,以控制第二和第三存儲操作緩沖器,從而把它們中的內容分別傳送到第一和第二存儲操作緩沖器。
19.如權利要求1的多端口超高速緩沖存儲器,其特征在于,該多端口超高速緩沖存儲器是純數(shù)據(jù)超高速緩存器。
20.一種用于生成有效地址的有效地址生成裝置,利用基址加位移量尋址在多端口超高速緩沖存儲器的該地址上存儲數(shù)據(jù),該超高速緩沖存儲器交錯為M個區(qū),M≥2,并包含多個數(shù)據(jù)單元,該有效地址生成裝置包括一個位移寄存器;一個預設定電路,用于把基地址寄存器的內容預設定成邏輯零;以及一個UV譯碼器,它接收預定的位移寄存器的一個U位的組,U≥2,并輸出V位的數(shù),該輸出的數(shù)具有足夠的位數(shù)以便標識M個區(qū)中的一個,作為該數(shù)據(jù)在該交錯存取的多端口超高速緩沖存儲器中的有效地址。
21.一種生成有效地址的方法,采用基址加位移量尋址把數(shù)據(jù)存儲到多端口超高速緩沖存儲器里的該地址上,該超高速緩沖存儲器交錯為M個區(qū),M≥2,并包含多個數(shù)據(jù)單元,該方法包括預光假定基址寄存器的內容將為邏輯零;讀位移寄存器的內容;基于預定的位移寄存器的U個位的組,U≥2,對M個區(qū)中的一個區(qū)的標識信息解碼;以及輸出該標識信息作為數(shù)據(jù)在該交錯多端口超高速緩沖存儲器中的有效地址。
22.權利要求21的方法,其特征在于進而包括驗證基址寄存器的內容為零。
23.一種編譯程序以優(yōu)化使用多端口超高速緩沖存儲器的方法,該超高速緩沖存儲器交錯成多個區(qū)并包括多個數(shù)據(jù)單元,該方法包括僅允許超高速緩沖存儲器的基址加位移量類型的尋址;對基址寄存器判定該基址寄存器的一個或多個預定位組是否不等于邏輯零值的狀態(tài);以及若滿足該狀態(tài),重新調整該基址寄存器的內容并且相應地調整位移寄存器的內容。
全文摘要
一種高速的8端口、16端口或更多端口的超高速緩沖存儲器,以及相關的有效地址生成方式。根據(jù)交錯的雙端口構件或雙倍的單端口構件,該超高速緩沖存儲器構形成在功能上等同于真正的8端口、16端口或更多端口的交錯存取的超高速緩沖存儲器。
文檔編號G06F12/08GK1188277SQ97122689
公開日1998年7月22日 申請日期1997年11月13日 優(yōu)先權日1996年12月16日
發(fā)明者戴維德·阿諾爾德·魯克 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1