專利名稱:存儲器緩存架構(gòu)中的cpu的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及存儲器緩存架構(gòu)中的CPU,更具體地,涉及存儲器交叉式緩存架構(gòu)中的CPU。
背景技術(shù):
在微處理器(術(shù)語“微處理器”在本文中也被等同地稱為“處理器”、“核”和中央處理單元“CPU”)中,使用在具有8層或更多層的金屬互連的管芯(die)(術(shù)語“管芯”和“芯片(chip)”在本文中等同地使用)上連接在一起的互補金屬氧化物半導(dǎo)體(CMOS)晶體管來實現(xiàn)傳統(tǒng)(legacy)計算機(jī)架構(gòu)。另一方面,存儲器典型地被制造在具有三層或更多層的金屬互連的管芯上。緩存是物理地位于計算機(jī)的主存儲器與中央處理單元(CPU)之間的快速存儲結(jié)構(gòu)。因為實現(xiàn)傳統(tǒng)緩存系統(tǒng)需要大量晶體管,所以傳統(tǒng)緩存系統(tǒng)(在下文中稱為“傳統(tǒng)緩存”)消耗大量功率。緩存的目的在于縮短用于數(shù)據(jù)存取和指令執(zhí)行的有效的存儲器存取時間。在涉及競爭更新和數(shù)據(jù)獲取和指令執(zhí)行的極高交易量環(huán)境中,經(jīng)驗表明經(jīng)常被存取的指令和數(shù)據(jù)傾向于物理定位于靠近存儲器中其它經(jīng)常被存取的指令和數(shù)據(jù),并且最近被存取的指令和數(shù)據(jù)通常被重復(fù)地存取。緩存通過在物理靠近于CPU的存儲器中維持可能被存取的指令和數(shù)據(jù)的冗余副本來利用這種空間和時間的局域性。傳統(tǒng)緩存通常將“數(shù)據(jù)緩存”定義成不同于“指令緩存”。這些緩存攔截CPU存儲器請求,確定緩存中是否 存在目標(biāo)數(shù)據(jù)或指令,并且以緩存讀取或?qū)懭胱鞒鲰憫?yīng)。緩存讀取或?qū)懭霑汝P(guān)于外部存儲器(即,諸如外部DRAM、SRAM、閃存和/或磁帶或磁盤上的存儲裝置,在下文中共同稱為“外部存儲器”)讀取或?qū)懭肟旌芏啾丁H绻埱蟮臄?shù)據(jù)或指令沒有存在于緩存中,則發(fā)生緩存“缺失(miss)”,導(dǎo)致將所需的數(shù)據(jù)或指令從外部存儲器轉(zhuǎn)移至緩存。單級緩存的有效存儲器存取時間是“緩存存取時間” X “緩存命中率”+ “緩存缺失代價”X “緩存缺失率”。有時,多級緩存被用于更多地減少有效存儲器存取時間。每個更高級的緩存的尺寸逐漸變大并且與逐漸更大的緩存“缺失”代價關(guān)聯(lián)。典型的傳統(tǒng)微處理器可具有1-3CPU時鐘周期的I級緩存存取時間、8-20時鐘周期的2級存取時間和80-200時鐘周期的芯片外存取時間。傳統(tǒng)指令緩存的加速機(jī)制是基于對空間和時間局域性(S卩,緩存回路的存儲器并且重復(fù)地調(diào)用類似系統(tǒng)日期、登錄/登出等的函數(shù))?;芈穬?nèi)的指令從外部存儲器被一次提取并被存儲在指令緩存中。通過回路的第一執(zhí)行因為首先從外部存儲器提取回路指令的代價而成為最慢的。然而,隨后經(jīng)過回路的每個執(zhí)行直接從緩存提取指令,這會快得多。傳統(tǒng)緩存邏輯將存儲器地址翻譯為緩存地址。每個外部存儲器地址必須與列出已保持在緩存中的存儲器位置的行的表進(jìn)行比較。此比較邏輯通常被實現(xiàn)為內(nèi)容可尋址存儲器(CAM)。不同于用戶提供存儲器地址并且RAM返回存儲在該地址處的數(shù)據(jù)字的標(biāo)準(zhǔn)計算機(jī)隨機(jī)存取存儲器(即,“RAM”、“DRAM”、SRAM、SDRAM等,在本文中共同被等同地稱為“RAM”或“DRAM”或“外部存儲器”或“存儲器”),CAM被設(shè)計成使得用戶提供數(shù)據(jù)字,并且CAM搜尋其整個存儲器以查看該數(shù)據(jù)字是否被存儲于其中的任何位置。如果找到該數(shù)據(jù)字,則CAM返回一個或多個發(fā)現(xiàn)該字的存儲器地址的列表(在一些架構(gòu)中,其還返回數(shù)據(jù)字本身、或者其它關(guān)聯(lián)的數(shù)據(jù)片)。因此,CAM是在軟件術(shù)語被稱為“關(guān)聯(lián)陣列”的硬件等同。比較邏輯是復(fù)雜且緩慢的,并且隨著緩存的尺寸的增加而復(fù)雜度增加且速度降低。這些“關(guān)聯(lián)緩存”在復(fù)雜度和速度之間權(quán)衡以得到改進(jìn)的緩存命中率。傳統(tǒng)操作系統(tǒng)(OS)實現(xiàn)虛擬存儲器(VM)管理以使得少量的物理存儲器對于程序/用戶表現(xiàn)為大得多的存儲器。VM邏輯使用間接尋址以將用于非常大量的存儲器的VM地址翻譯為物理存儲器位置的小得多的子集的地址。間接提供了在指令、例程和對象的物理位置恒定變化時存取指令、例程和對象的方式。初始例程指向某一存儲器地址,并且該存儲器地址使用硬件和/或軟件指向某一其它存儲器地址??纱嬖诙嗉夐g接。例如,指向A,A指向B,B指向C。物理存儲器位置由稱為“頁框”或簡單地稱為“框”的連續(xù)存儲器的大小固定的塊組成。當(dāng)選擇供執(zhí)行的程序時,VM管理器將程序帶入虛擬存儲器中,將其劃分至固定塊大小(即,例如4千字節(jié)“4K”)的頁中,然后將這些頁轉(zhuǎn)移至主存儲器用于執(zhí)行。對于編程者/用戶,整個程序和數(shù)據(jù)看起來一直占據(jù)主存儲器中的連續(xù)空間。然而,實際上,并非程序或數(shù)據(jù)的所有頁必須同時在主存儲器中,并且在任意特定時間點處于主存儲器中的頁未必占據(jù)連續(xù)的空間。因此,在虛擬存儲器外執(zhí)行/存取的程序和數(shù)據(jù)塊在如下執(zhí)行/存取之前、之中或之后,按需要通過VM管理器在實際與輔助存儲器之間往復(fù)移動:(a)主存儲器的塊是框;(b)虛擬存儲器的塊是頁;(C)輔助存儲器的塊是槽(slot)。頁、框和槽全部為相同大小?;钴S的虛擬存儲器頁駐留在各自的主存儲器框中。變得不活躍的虛擬存儲頁移到輔助存儲槽(有時被稱為分頁數(shù)據(jù)集)。VM頁充當(dāng)從整個VM地址空間可能存取的頁的高級緩存。當(dāng)VM管理器將舊的、較不經(jīng)常使用的頁發(fā)送至外部輔助存儲器時,可編址的存儲器頁框填充頁槽。傳統(tǒng)VM管理通過承擔(dān)管理主存儲器和外部存儲裝置的大部分職責(zé)來簡化計算機(jī)編程。傳統(tǒng)VM管理通常需要使用翻譯表進(jìn)行VM地址與物理地址之間的比較。必須搜尋翻譯表以查找每個存儲器存取和被翻譯為物理地址的虛擬地址。翻譯后備緩沖器(TLB)是可加速虛擬地址與物理地址之間的比較的最近VM存取的小緩存。TLB通常被實現(xiàn)為CAM,并且搜尋TLB比順序搜尋頁表快成千上萬倍。每個指令執(zhí)行必然導(dǎo)致查找每個VM地址的開銷。由于緩存構(gòu)成傳統(tǒng)計算機(jī)的晶體管和功耗的大部分,所以調(diào)諧它們對于大多數(shù)組織的整體信息技術(shù)預(yù)算而言是極其重要的。“調(diào)諧”可來自改進(jìn)的硬件、或軟件、或兩者?!败浖{(diào)諧”典型地表現(xiàn)為將經(jīng)常存取的程序、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)放置在由如DB2、Oracle、Microsoft SQL服務(wù)器和MS/Access的數(shù)據(jù)庫管理系統(tǒng)(DBMS)軟件限定的緩存中。DBMS實現(xiàn)的緩存對象通過存儲如索引的重要數(shù)據(jù)結(jié)構(gòu)和如結(jié)構(gòu)化查詢語言(SQL)例程的經(jīng)常執(zhí)行指令來增強應(yīng)用程序執(zhí)行性能和數(shù)據(jù)庫吞吐量,其中結(jié)構(gòu)化查詢語言(SQL)例程執(zhí)行共同系統(tǒng)或數(shù)據(jù)庫函數(shù)(即,“日期”或“登錄/登出”)。
對于通用的處理器,使用多核處理器的大部分動機(jī)來自于處理器性能因增加操作頻率(即,每秒的時鐘周期)而明顯減少的潛在增益。這是由于三個主要因數(shù):1.存儲器墻:處理器與存儲器速度之間不斷增加的差距。這個效應(yīng)推動緩存大小變大以遮掩存儲器的延遲。其僅有助于達(dá)到存儲器帶寬不是性能的瓶頸的程度。2.指令級并行(ILP)墻:在單指令流中找到足夠的并行性以保持高性能單核處理器繁忙的不斷增加的困難。3.功率墻:不斷增加的功率與操作頻率的增加之間的線性關(guān)系。這種增加可通過為同一邏輯使用更小的追蹤使處理器“收縮”而減緩。功率墻帶來了在面對因存儲器墻和ILP墻而導(dǎo)致性能的增益減少時還未被證明是合理的制造、系統(tǒng)、設(shè)計和部署的問題。為了繼續(xù)輸送用于通用處理器的定期性能改進(jìn),諸如Intel和AMD的制造商轉(zhuǎn)向多核設(shè)計,犧牲了低制造成本而在一些應(yīng)用和系統(tǒng)中換取更高性能。正在開發(fā)多核架構(gòu)及替代物。例如,對于已建立市場,特別強勁的競爭者是將外圍功能進(jìn)一步集成到芯片中。同一管芯上多個CPU核的鄰近允許緩存相干電路以比信號必須傳播至芯片外的可能時鐘速率高得多的時鐘速率進(jìn)行操作。在單個管芯上組合等同的CPU明顯地改進(jìn)了緩存和總線監(jiān)聽操作的性能。由于不同的CPU之間的信號行進(jìn)較短的距離,所以這些信號劣化較小。因為單獨的信號可能更短并且不需經(jīng)常重復(fù),這些“較高質(zhì)量的”信號允許在給定時間段中更多的數(shù)據(jù)被更可靠地發(fā)送。性能上最大的提高出現(xiàn)在CPU密集型過程中,如抗病毒掃描、翻錄/燃燒媒質(zhì)(需要文件轉(zhuǎn)換)或者搜尋文件夾。例如,如果在觀看電影的同時自動地進(jìn)行抗病毒掃描,則運行電影的應(yīng)用不太可能缺乏處理器功率,因為抗病毒程序被分配到與運行電影的處理器不同的處理器核。多核處理器對DBMS和OS是理想的,因為它們允許許多用戶同時連接至站點并具有獨立的處理器執(zhí)行。因此,網(wǎng)絡(luò)服務(wù)器和應(yīng)用服務(wù)器可實現(xiàn)更好的吞吐量。傳統(tǒng)計算機(jī)具有將指令和數(shù)據(jù)在緩存與CPU之間往復(fù)路由的芯片上緩存和總線。這些總線通常為單端具有軌對軌電壓擺動。一些傳統(tǒng)計算機(jī)使用差分信號(DS)以增加速度。例如,RAMBUS公司使用低電壓匯流來增加速度,RAMBUS公司是引入全差分高速存儲器存取以用于CPU與存儲器芯片之間通信的一家加利福尼亞公司。RAMBUS裝備的存儲器芯片非???,但是與類似SRAM或SDRAM的雙數(shù)據(jù)速率(DDR)的存儲器相比較,消耗更多的功率。作為另一示例,射極耦合邏輯(ECL)通過使用單端、低電壓信號實現(xiàn)了高速匯流。當(dāng)行業(yè)的其余總線以5伏或高于5伏操作時,ECL總線以0.8伏進(jìn)行操作。然而,類似于RAMBUS和大多數(shù)其他低電壓信號系統(tǒng),ECL的缺陷在于消耗太多的功率,甚至在其沒有接通時也是如此。傳統(tǒng)緩存系統(tǒng)的另一問題是為了在最小的管芯上封裝最大數(shù)量的存儲器位,存儲器位線間距被保持為非常小?!霸O(shè)計規(guī)則”是定義在管芯上制造的裝置的各種元件的物理參數(shù)。存儲器制造商為管芯的不同區(qū)域定義不同的規(guī)則。例如,存儲器的大小最關(guān)鍵區(qū)域是存儲器單元。用于存儲器單元的設(shè)計規(guī)則可被稱為“核心規(guī)則”。下一最關(guān)鍵區(qū)域通常包括諸如位線感測放大器(BLSA,在下文中稱為“感測放大器”)的元件。對于該區(qū)域的設(shè)計規(guī)則可被稱為“陣列規(guī)則”。存儲器管芯上的所有其余部件,包括解碼器、驅(qū)動器和1/0,由可被稱為“外圍規(guī)則”的規(guī)則管理。核心規(guī)則是最密集的,陣列規(guī)則是次密集的,外圍規(guī)則的最不密集的。例如,實現(xiàn)核心規(guī)則所需的最小物理幾何空間可以為llOnm,而用于外圍規(guī)則的最小幾何空間可能需要180nm。線間距由核心規(guī)則確定。被用于在存儲器處理器中實現(xiàn)CPU的大多數(shù)邏輯由外圍規(guī)則確定。因此,存在非常有限的空間可用于緩存位和邏輯。感測放大器非常小且非???,但是它們也沒有很多的驅(qū)動能力。傳統(tǒng)緩存系統(tǒng)的另一問題是與直接使用感測放大器作為緩存關(guān)聯(lián)的處理開銷,因為感測放大器內(nèi)容通過刷新操作而改變。雖然這在一些存儲器上可行,但是在DRAM (動態(tài)隨機(jī)存取存儲器)的情況下存在問題。DRAM需要在每個時間段內(nèi)將其存儲器陣列的每個位讀取和重新寫入一次,以刷新位存儲電容器上的電荷。如果直接使用感測放大器作為緩存,在每個刷新時間中,感測放大器的緩存內(nèi)容必須被寫回至其正緩存的DRAM行。然后待被刷新的DRAM行必須被讀取和寫回。最后,之前被保持的DRAM行必須被讀回至感測放大器緩存中。
發(fā)明內(nèi)容
克服現(xiàn)有技術(shù)中的前述限制和缺陷需要的是一種存儲器緩存架構(gòu)中的新的CPU,其解決在存儲器處理器中的單核(下文中“CM”)和多核(下文中“CMM”)CPU上實現(xiàn)VM管理的許多挑戰(zhàn)。更具體地,公開了用于計算機(jī)系統(tǒng)的緩存架構(gòu),該計算機(jī)系統(tǒng)具有至少一個處理器和制造在單片存儲器管芯上的合并的主存儲器,該緩存機(jī)構(gòu)包括用于每個處理器的復(fù)用器、解復(fù)用器和本地緩存,所述本地緩存包括專用于至少一個DMA通道的DMA緩存、專用于指令地址寄存器的I緩存、專用于源地址寄存器的X緩存和專用于目標(biāo)地址寄存器的Y緩存,其中,每個所述處理器存取至少一個包含一個RAM行的芯片上內(nèi)部總線,該RAM行的大小可以與關(guān)聯(lián)的本地緩存相同;其中,所述本地緩存可操作為在一個行地址選通(RAS)周期中被填充或清除,并且所述RAM行的全部感測放大器能夠由所述復(fù)用器選擇,而由所述解復(fù)用器取消選擇至可用于RAM刷新的關(guān)聯(lián)的所述本地緩存的復(fù)制相應(yīng)位。該新的緩存架構(gòu)采用用于優(yōu)化CM芯片上的緩存位邏輯可用的非常有限的物理空間的新方法。通過緩存分割成多個單獨的雖然小但每個可同時被存取和更新的緩存而增加緩存位邏輯可用的存儲器。本發(fā)明的另一方面采用用于使用類比最不經(jīng)常使用的(LFU)檢測器經(jīng)由緩存頁“缺失”來管理VM。在另一方面,VM管理器可將緩存頁“缺失”與其他CPU操作并行。在另一方面,低電壓差分信號急劇地減少長總線的功耗。在又一方面,提供了與指令緩存配對的新的啟動只讀存儲器(R0M),該啟動只讀存儲器在OS的“初始程序加載”的過程中簡化本地緩存的初始化。在又一方面,本發(fā)明包括用于通過CM或CIMM VM管理器對本地存儲器、虛擬存儲器和芯片外外部存儲器進(jìn)行解碼的方法。在一個方面,本發(fā)明包括一種用于具有至少一個處理器的計算機(jī)系統(tǒng)的緩存架構(gòu),所述緩存架構(gòu)包括用于每個所述處理器的解復(fù)用器和至少兩個本地緩存,所述本地緩存包括專用于指令地址寄存器的I緩存和專用于源地址寄存器的X緩存;其中,每個所述處理器存取至少一個包含用于關(guān)聯(lián)的所述本地緩存的RAM行的芯片上內(nèi)部總線;其中,所述本地緩存可操作為在一個RAS周期中被填充或清除,并且所述RAM行的全部感測放大器能夠由所述解復(fù)用器取消選擇至關(guān)聯(lián)的所述本地緩存的復(fù)制相應(yīng)位。在另一方面,本發(fā)明的本地緩存還包括專用于至少一個DMA通道的DMA緩存,在多個其它的實施方式中,這些本地緩存還可包括專用于堆棧工作寄存器的S緩存,該S緩存與可能的專用于目標(biāo)寄存器的Y緩存和專用于堆棧工作寄存器的S緩存以各種可能的方式結(jié)人
口 O在另一方面,本發(fā)明還可包括用于每個所述處理器的至少一個LFU檢測器,至少一個LFU檢測器包括芯片上電容器和運算放大器,運算放大器被設(shè)置為一列積分器和比較器,比較器實現(xiàn)布爾邏輯以通過讀取與最不經(jīng)常使用的緩存頁關(guān)聯(lián)的LFU的IO地址來連續(xù)地識別所述最不經(jīng)常使用的緩存頁。在另一方面,本發(fā)明還可包括與每個所述本地緩存配對的啟動ROM以在重新啟動操作的過程中簡化CIM緩存初始化。在另一方面,本發(fā)明還可包括用于每個所述處理器的復(fù)用器以選擇所述RAM行的感測放大器。在另一方面,本發(fā)明還可包括使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線的每個所述處理器。在另一方面,本發(fā)明包括一種連接單片存儲芯片的RAM內(nèi)的處理器的方法,該方法包括允許將所述RAM的任意位選擇至在多個緩存中維持的復(fù)制位的必需步驟,所述步驟包括:(a)將存儲器位邏輯地分組成四個組;(b)將所有四個位線從所述RAM發(fā)送至復(fù)用器輸入;(C)通過接通由地址線的四種可能狀態(tài)所控制的四個開關(guān)中的一個,將所述四個位線之一選擇至復(fù)用器輸出;(d)通過使用由指令解碼邏輯提供的解復(fù)用器開關(guān),將所述多個緩存之一連接至所述復(fù)用器輸出。在另一方面,本發(fā)明包括一種通過緩存頁缺失來管理CPU的VM的方法,該方法包括以下步驟:(a)在CPU處理至少一個專用緩存地址寄存器的情況下,所述CPU檢查所述寄存器的高階位的內(nèi)容;以及(b)當(dāng)所述位的內(nèi)容改變時,如果在與所述CPU關(guān)聯(lián)的CAMTLB中沒有找到所述寄存器的頁地址內(nèi)容,則所述CPU將缺頁中斷返回至VM管理器,以用與所述寄存器的所述頁地址內(nèi)容對應(yīng)的VM的新頁替換所述緩存頁的內(nèi)容;否則(c)所述CPU使用所述CAM TLB確定實地址。在另一方面,本發(fā)明的用于管理VM的方法還包括以下步驟:(d)如果在與所述CPU關(guān)聯(lián)的CAM TLB中沒有找到所述寄存器的頁地址內(nèi)容,則確定當(dāng)前在所述CAM TLB中的最不經(jīng)常被緩存的頁以接收VM的所述新頁的內(nèi)容。在另一方面,本發(fā)明的用于管理VM的方法還包括以下步驟:(e)記錄LFU檢測器中的頁存取;所述確定的步驟還包括使用所述LFU檢測器確定在CAM TLB中的當(dāng)前最不經(jīng)常被緩存的頁。在另一方面,本發(fā)明包括一種使緩存缺失與其他CPU操作并行的方法,該方法包括以下步驟:(a)如果在存取第二緩存的情況下沒有發(fā)生緩存缺失,則對至少所述第二緩存的內(nèi)容進(jìn)行處理,直至對于第一緩存的緩存缺失處理被解決;以及(b)處理所述第一緩存的內(nèi)容。
在另一方面,本發(fā)明包括一種減少單片芯片上數(shù)字總線中的功耗的方法,該方法包括以下步驟:(a)均衡化和預(yù)充電所述數(shù)字總線的至少一個總線驅(qū)動器上的一組差分位;(b)均衡化接收器;(C)在所述至少一個總線驅(qū)動器上維持所述位長達(dá)至少所述數(shù)字總線的最慢裝置傳播延遲時間;(d)關(guān)閉所述至少一個總線驅(qū)動器;(e)打開所述接收器;以及(f)通過所述接收器讀取所述位。在另一方面,本發(fā)明包括一種降低緩存總線所消耗的功率的方法,包括以下步驟:(a)均衡化差分信號對并將所述信號預(yù)充電至Vcc ;(b)預(yù)充電和均衡化差分接收器;(C)將發(fā)送器連接至至少一個交叉耦合的逆變的至少一個差分信號線,并將發(fā)送器放電達(dá)超過所述交叉耦合反相器裝置傳播延遲時間的時間段;(d)將所述差分接收器連接至所述至少一個差分信號線;以及(e)使所述差分接收器允許所述至少一個交叉耦合反相器達(dá)到全Vcc擺動,同時被所述至少一個差分線偏置。在另一方面,本發(fā)明包括一種使用啟動加載線性ROM啟動存儲器架構(gòu)中的CPU的方法,該方法包括以下步驟;(a)通過所述啟動加載ROM檢測功率有效狀態(tài);(b)在執(zhí)行停止的情況下,將全部CPU保持在重置狀態(tài);(c)將所述啟動加載ROM內(nèi)容轉(zhuǎn)移到第一 CPU的至少一個緩存;(d)將專用于所述第一 CPU的所述至少一個緩存的寄存器設(shè)置為二進(jìn)制零;以及Ce)使所述第一 CPU的系統(tǒng)時鐘能夠從所述至少一個緩存開始執(zhí)行。在另一方面,本發(fā)明包括一種通過CM VM管理器對本地存儲器、虛擬存儲器和芯片外外部存儲器進(jìn)行解碼的方法,該方法包括以下步驟:(a)當(dāng)CPU處理至少一個所述專用的緩存地址寄存器時,如果CPU確定寄存器的至少一個高階位改變;則(b)當(dāng)所述至少一個高階位的內(nèi)容為非零時,所述VM管理器使用外部存儲器總線將由所述寄存器所編址的頁從所述外部存儲器轉(zhuǎn)移至所述緩存;否則( c )所述VM管理器將所述頁從所述本地存儲器轉(zhuǎn)移至所述緩存。在另一方面,本發(fā)明用于通過CM VM管理器對本地存儲器解碼的方法還包括:所述寄存器的所述至少一個高階位僅在對至任何地址寄存器的ST0RACC指令、算前減量指令和算后增量指令的處理期間改變,所述CPU確定的步驟還包括通過指令類型進(jìn)行確定。在另一方面,本發(fā)明包括一種通過CIMM VM管理器對本地存儲器、虛擬存儲器和芯片外外部存儲器進(jìn)行解碼的方法,該方法包括以下步驟:(a)當(dāng)CPU處理至少一個所述專用的緩存地址寄存器時,如果CPU確定寄存器的至少一個高階位改變;則(b)當(dāng)所述至少一個高階位的內(nèi)容為非零時,所述VM管理器使用外部存儲器總線和處理器間,將由所述寄存器所編址的頁從所述外部存儲器轉(zhuǎn)移至所述緩存;否則(c)如果所述CPU檢測到所述寄存器與所述緩存不相關(guān)聯(lián),所述VM管理器使用所述處理器間總線將所述頁從遠(yuǎn)程存儲器組轉(zhuǎn)移至所述緩存;否則( c )所述VM管理器將所述頁從所述本地存儲器轉(zhuǎn)移至所述緩存。在另一方面,本發(fā)明的用于通過CMM VM管理器對本地存儲器解碼的方法還包括:所述寄存器的所述至少一個高階位僅在對至任何地址寄存器的ST0RACC指令、算前減量指令和算后增量指令的處理期間改變,所述CPU確定的步驟還包括通過指令類型進(jìn)行確定。
圖1描繪了示例性現(xiàn)有技術(shù)的傳統(tǒng)緩存架構(gòu);圖2示出了具有兩個Cl麗CPU的示例性現(xiàn)有技術(shù)的Cl麗管芯;圖3展示了現(xiàn)有技術(shù)的傳統(tǒng)數(shù)據(jù)和指令緩存;圖4示出了現(xiàn)有技術(shù)的緩存與尋址寄存器的配對;圖5A-5D展示了基本CIM緩存架構(gòu)的實施方式;圖5E-5H展示了改進(jìn)的CIM緩存架構(gòu)的實施方式;圖6A-6D展示了基本Cl麗緩存架構(gòu)的實施方式;圖6E-6H展示了改進(jìn)的CIMM緩存架構(gòu)的實施方式;圖7A示出了根據(jù)一個實施方式如何選擇多個緩存;圖7B示出了被集成到64兆位的DRAM中的4個Cl麗CPU的存儲器映射;圖7C示出了當(dāng)請求CPU和響應(yīng)存儲體在處理器間總線上通信時用于管理它們的示例性存儲器邏輯;圖7D示出了根據(jù)一個實施方式如何對三種類型的存儲器進(jìn)行解碼;圖8A示出了在CMM緩存的一個實施方式中LFU檢測器(100)物理存在之處;圖SB描繪了通過使用“LFU IO端口 ”的緩存頁“缺失”進(jìn)行的VM管理;圖8C描繪了 LFU檢測器100的物理構(gòu)造;圖8D示出了示例性LFU判斷邏輯;圖8E示出了示例性LFU真值表;圖9描述了與其他CPU操作并行的緩存頁“缺失”;圖1OA是示出使用差分信號的CMM緩存功率節(jié)約的電路圖;圖1OB是示出通過產(chǎn)生Vdiff來使用差分信號的CMM緩存功率節(jié)約的電路圖;圖1OC描繪了一個實施方式的不例性CIMM緩存低電壓差分信號;圖1lA描繪了一個實施方式的示例性CMM緩存啟動ROM配置;以及圖1lB示出了一個預(yù)期的示例性CIMM緩存啟動加載器操作。
具體實施方式
圖1描繪了示例性傳統(tǒng)緩存架構(gòu),圖3對傳統(tǒng)數(shù)據(jù)緩存與傳統(tǒng)指令緩存進(jìn)行了區(qū)分。諸如在圖2所描繪的現(xiàn)有技術(shù)CIMM通常通過將CPU放置成與硅管芯上的主存儲器物理相鄰而減輕了傳統(tǒng)計算機(jī)架構(gòu)的存儲器總線和功率耗散問題。CPU靠近于主存儲器提供了使CIMM緩存與在DRAM、SRAM和閃存裝置中發(fā)現(xiàn)的主存儲器位線緊密關(guān)聯(lián)的機(jī)會。緩存與存儲器位線之間的交叉(interdigitation)的優(yōu)勢包括:1.用于在緩存與存儲器之間路由的很短物理空間,從而減少了存取時間和功耗;2.明顯地簡化了緩存架構(gòu)和相關(guān)的控制邏輯;以及3.在單個RAS周期中裝載整個緩存的能力。CIMM緩存加速直線碼CIMM緩存架構(gòu)相應(yīng)地可加速裝配在其緩存內(nèi)的回路,但是與傳統(tǒng)的指令緩存系統(tǒng)不同,CIMM緩存通過在單個RAS周期中并行的緩存裝載,使甚至單次使用的直線碼加速。一個預(yù)期的CIMM緩存實施方式包括在25時鐘周期中填充512個指令緩存的能力。由于從緩存提取每個指令需要單個周期,所以即使在執(zhí)行直線碼時,有效的緩存讀取時間也為:1周期+25周期/512=1.05周期。CIMM緩存的一個實施方式包括在存儲器管芯上將主存儲器和多個緩存放置成彼此物理相鄰并通過很寬的總線相連,從而使得:1.至少一個緩存與每個CPU地址寄存器配對;2.通過緩存頁管理VM;以及3.使緩存“缺失”恢復(fù)與其它CPU操作并行。使緩存與地址寄存器配對使緩存與地址寄存器配對不是新的。圖4示出了一個現(xiàn)有技術(shù)的實施例,其包括四個地址寄存器:X、Y、S (堆棧工作寄存器)和PC (與指令寄存器相同)。圖4中的每個地址寄存器與512字節(jié)緩存關(guān)聯(lián)。如同在傳統(tǒng)緩存架構(gòu)中,CIMM緩存僅通過多個專用地址寄存器存取存儲器,其中每個地址寄存器與不同的緩存關(guān)聯(lián)。通過將存儲器存取與地址寄存器關(guān)聯(lián),緩存管理、VM管理和CPU存儲器存取邏輯被明顯地簡化。然而,與傳統(tǒng)緩存架構(gòu)不同,每個CIMM緩存的位與RAM (諸如動態(tài)RAM或DRAM)的位線對齊,產(chǎn)生了交叉式緩存。用于每個緩存的內(nèi)容的地址是關(guān)聯(lián)的地址寄存器的最低有效的(即,按位計數(shù)的最右邊的)9位。緩存位線與存儲器之間的這種交叉的一個優(yōu)勢在于確定緩存“缺失”的速度和簡單。與傳統(tǒng)緩存架構(gòu)不同,CIMM緩存僅在地址寄存器的最高有效位改變時才評估“缺失”,而且地址寄存器僅可以以下兩種方式之一進(jìn)行改變:1.ST0REACC 至地址寄存器。例如:ST0REACC,X,2.從地址寄存器的9個最低有效位進(jìn)位/借位。例如:ST0REACC,(X+)對于大多數(shù)指令流,CIMM緩存達(dá)到了超過99%的命中率。這意味著在進(jìn)行“缺失”評估的同時,100個指令中少于I個指令經(jīng)歷延遲。CIMM緩存顯著地簡化緩存邏輯CIMM緩存可被認(rèn)為是非常長的單線緩存。整個緩存可在單個DRAM RAS周期內(nèi)載入,因而與需要在窄的32位或64位總線上載入緩存的傳統(tǒng)緩存系統(tǒng)相比,顯著地減少了緩存“缺失”代價。這種短緩存線的“缺失”率高得難以接受。使用長的單個緩存線,CIMM緩存僅需要單個地址比較。傳統(tǒng)緩存系統(tǒng)不使用長的單個緩存線,因為與使用其緩存架構(gòu)所需的常規(guī)短的緩存線相比,將會使緩存“缺失”代價增加許多倍。對于窄位線間距的Cl麗緩存解決方案一個預(yù)期的CIMM緩存實施方式解決由CPU與緩存之間的CIMM窄位線間距所呈現(xiàn)的許多問題。圖6H示出了 CMM緩存實施方式的4位以及之前描述的設(shè)計規(guī)則的3個級的相互作用。圖6H的左側(cè)包括附接至存儲器單元的位線。這些位線是使用核心規(guī)則實現(xiàn)的。向右移動,之后的部分包括被指定為DMA緩存、X緩存、Y緩存、S緩存和I緩存的5個緩存。這些緩存是使用陣列規(guī)則實現(xiàn)的。該圖的右側(cè)包括鎖存器、總線驅(qū)動器、地址解碼器和熔合器(fuse)。這些是使用外圍規(guī)則實現(xiàn)的。CIMM緩存解決了現(xiàn)有技術(shù)的緩存架構(gòu)中的下列問題:1.由刷新改變的感測放大器內(nèi)容圖6H示出了由DMA緩存、X緩存、Y緩存、S緩存和I緩存鏡像的DRAM感測放大器。以此方式,緩存與DRAM刷新隔離并增強了 CPU性能。2.緩存位的有限空間感測放大器實際上為鎖存裝置。在圖6H中,CMM緩存被示出為復(fù)制用于DMA緩存、X緩存、Y緩存、S緩存和I緩存的感測放大器邏輯和設(shè)計規(guī)則。結(jié)果,一個緩存位可容納在存儲器的位線間距中。5個緩存中的每個的一個位被安置在與4個感測放大器相同的空間中。四個傳輸晶體管將4個感測放大器位中的任意一個選擇至公共但是。4個額外的傳輸晶體管將但是位選擇至5個緩存中的任意一個。以此方式,任意存儲器位可被存儲到圖6H所示的5個交叉式的緩存中的任意一個。使用復(fù)用/解復(fù)用將緩存匹配至DRAM諸如在圖2中描繪的現(xiàn)有技術(shù)的CMM將DRAM組位匹配至關(guān)聯(lián)的CPU中的緩存位。該設(shè)置的優(yōu)勢是相比于采用不同芯片上的CPU和存儲器的其它傳統(tǒng)架構(gòu),速度明顯增加而功耗減少。然而,該設(shè)置的缺陷是DRAM位線的物理空間必須增加以容納CPU緩存位。由于設(shè)計規(guī)則約束,緩存位必須比DRAM位大得多。因此與不采用本發(fā)明的CIM交叉式緩存的DRAM相比,連接至CM緩存的DRAM的物理尺寸必須增加多達(dá)4倍。圖6H展示了在Cl麗中將CPU連接至DRAM的更緊湊的方法。將DRAM的任意位選擇至多個緩存的一個位所必需的步驟如下:1.如地址線A[10:9]所指示的,將存儲器位邏輯地分組成4個組;2.將所有4個位線從DRAM發(fā)送至復(fù)用器輸入;3.通過接通由地址線A[10:9]的4種可能狀態(tài)控制的4個開關(guān)之一,將4個位線之一選擇到復(fù)用器輸出;4.通過使用解復(fù)用器開關(guān)將多個緩存之一連接至復(fù)用器輸出。這些開關(guān)在圖6H中被描繪為κχ、KY、KS、KI和KDMA。這些開關(guān)和控制信號由指令解碼邏輯提供。CIMM緩存的交叉式緩存實施方式相對于現(xiàn)有技術(shù)的主要優(yōu)勢在于,多個緩存可連接至幾乎任意現(xiàn)有的商業(yè)型DRAM陣列,而無需修改該陣列且無需增加該DRAM陣列的物理尺寸。3.有限的感測放大器驅(qū)動圖7A示出了雙向鎖存器和總線驅(qū)動器的物理上更大且更有力的實施方式。該邏輯使用由外圍規(guī)則形成的較大晶體管實現(xiàn),并且覆蓋4位線的間距。這些較大的晶體管具有驅(qū)動沿存儲器陣列的邊緣延伸的長數(shù)據(jù)總線的強度。雙向鎖存器通過連接至指令解碼的傳輸晶體管之一而連接至4個緩存位之一。例如,如果指令指示X緩存待被讀取,則選擇X線使傳輸晶體管將X緩存連接至雙向鎖存器。圖7A示出了在許多存儲器中發(fā)現(xiàn)的解碼和修復(fù)熔合塊如何仍與本發(fā)明一起使用。管理多處理器緩存和存儲器圖7B示出了 CMM緩存的一個預(yù)期實施方式的存儲器映射,在其中4個CMM CPU被集成到64M位的DRAM中。64M位被進(jìn)一步劃分成四個2M字節(jié)組。每個CIMM CPU被放置成物理地鄰近于四個2M字節(jié)DRAM組中的每個。數(shù)據(jù)在處理器間總線上通過CPU與存儲器組之間。處理器間總線控制器根據(jù)請求/允許邏輯仲裁,使得一個請求CPU和一個響應(yīng)存儲器組同時在處理器間總線上通信。圖7C示出了當(dāng)每個CIMM處理器查看相同的總體存儲器映射時的示例性存儲器邏輯。存儲器層次包括:本地存儲器-2M字節(jié),物理上鄰近于各個Cl麗CPU ;遠(yuǎn)程存儲器-不是本地存儲器的所有單片存儲器(通過處理器間總線存取);以及外部存儲器-不是單片存儲器的所有存儲器(通過外部存儲器總線存取)。圖7B中的每個CMM處理器通過多個緩存和關(guān)聯(lián)的地址寄存器存取存儲器。從地址寄存器或從VM管理器器直接獲得的物理地址被解碼以確定需要哪種類型的存儲器存取:本地、遠(yuǎn)程或外部。圖7B中的CPUO將其本地存儲器編址為0-2M字節(jié)。地址2-8M字節(jié)在處理器間總線上被存取。大于8M字節(jié)的地址在外部存儲器總線上被存取。CPUl將其本地存儲器編址為2-4M字節(jié)。地址0-2M字節(jié)和4-8M字節(jié)在處理器間總線上被存取。大于8M字節(jié)的地址在外部存儲器總線上被存取。CPU2將其本地存儲器編址為4-6M字節(jié)。地址
0-4M字節(jié)和6-8M字節(jié)在處理器間總線上被存取。大于8M字節(jié)的地址在外部存儲器總線上被存取。CPU3將其本地存儲器編址為6-8M字節(jié)。地址0-6M字節(jié)在處理器間總線上被存取。大于8M字節(jié)的地址在外部存儲器總線上被存取。不同于傳統(tǒng)多核緩存,當(dāng)?shù)刂芳拇嫫鬟壿嫏z測到必要性時,CIMM緩存透明地執(zhí)行處理器間總線轉(zhuǎn)移。圖7D示出了如何執(zhí)行該解碼。在該實施例中,當(dāng)CPUl的X寄存器明確地通過ST0REACC指令或者隱含地通過算前減量或算后增量指令而改變時,發(fā)生以下步驟:1.如果在位A[31_23]中沒有改變,不進(jìn)行任何操作;否則,2.如果位A[31_23]不為零,則使用外部存儲器總線和處理器間總線將512個字節(jié)從外部存儲器轉(zhuǎn)移至X緩存;3.如果位A[31:23]為零,則將位A[22:21]與指示如圖7D所示的CPU1,01的數(shù)字相比較。如果匹配,則將512個字節(jié)從本地存儲器轉(zhuǎn)移至X緩存。如果不匹配,則使用處理器間總線將512個字節(jié)從由A[22:21]指示的遠(yuǎn)程存儲器組轉(zhuǎn)移至X緩存。所描述的方法是容易編程的,因為任意CPU可透明地存取本地、遠(yuǎn)程或外部存儲器。通過緩存頁“缺失”進(jìn)行的VM管理器與傳統(tǒng)的VM管理器不同,CMM緩存僅在地址寄存器的最高有效位改變時才需要查找虛擬地址。因此,與傳統(tǒng)方法相比,通過CIMM緩存實現(xiàn)的VM管理將明顯更有效和簡化。圖6A詳述了 CMM VM管理器的一個實施方式。32項CAM用作TLB。在該實施方式中,20位虛擬地址被翻譯為CIMM DRAM行的11位物理地址。最不經(jīng)常使用(LTU)的檢測器的結(jié)構(gòu)和操作圖8A描繪了實現(xiàn)VM邏輯的VM控制器,VM控制器由一個CMM緩存實施方式的術(shù)語“VM控制器”標(biāo)識,該CMM緩存實施方式將地址的4K-64K頁從大的虛構(gòu)的“虛擬地址空間”翻譯為非常小的現(xiàn)存的“物理地址空間”。虛擬地址至物理地址轉(zhuǎn)換列表通常由常被實現(xiàn)為CAM (參見圖6B)的轉(zhuǎn)換表的緩存加速。由于CAM的大小是固定的,所以VM管理器邏輯必須連續(xù)地決定最不可能需要哪一個虛擬地址至物理地址轉(zhuǎn)換,因而使VM管理器邏輯可將這些轉(zhuǎn)換用新的地址映射來替代。經(jīng)常地,最不可能需要的地址映射與本發(fā)明的圖8A-圖SE中示出的LFU檢測器實施方式實現(xiàn)的“最不經(jīng)常使用的”地址映射相同。圖SC的LFU檢測器實施方式示出了待被計數(shù)的若干“活動事件脈沖”。對于LFU檢測器,事件輸入被連接至存儲器讀取和存儲器寫入信號的組合以存取特定的虛擬存儲器頁。每次頁被存取時,附接至圖8C中的特定積分器的關(guān)聯(lián)的“活動事件脈沖”稍微增加積分器的電壓。全部積分器不斷地接收防止積分器飽和的“回歸脈沖”。圖SB中的CAM的每個項具有積分器和事件邏輯以對虛擬頁讀取和寫入計數(shù)。具有最低累積電壓的積分器是接收到最少的事件脈沖并因而與最不經(jīng)常使用的虛擬存儲器頁關(guān)聯(lián)的積分器。最不經(jīng)常使用的頁的編號LDB[4:0]可被CPU讀取作為IO地址。圖SB示出了連接至CPU地址總線A[31:12]的VM管理器的操作。虛擬地址被CAM轉(zhuǎn)換為物理地址A[22:12]。CAM中的項被CPU編址為IO端口。如果在CAM中沒有發(fā)現(xiàn)虛擬地址,則生成缺頁中斷。中斷例程通過讀取LFU檢測器的IO地址確定保持最不經(jīng)常使用頁LDB[4:0]的CAM地址。然后,例程通常通過磁盤或閃存裝置將所需的虛擬存儲器頁定位,并將其讀入物理存儲器中。CPU將新頁的虛擬至物理的映射寫入至之前由LFU檢測器讀取的CAM IO地址,然后與CAM地址關(guān)聯(lián)的積分器通過長回歸脈沖而被放電至零。圖8B的TLB包含32個基于最近的存儲器存取而最可能被存取的存儲器頁。當(dāng)VM邏輯確定可能存取除了當(dāng)前在LTB中的32個頁之外的新的頁時,TLB項之一必須被標(biāo)記以用于移除和由新頁替換。存在兩個用于確定必須被移除的頁的常用策略:最近最少使用(LRU)和最不經(jīng)常使用(LFU)。LRU比LFU更易于實現(xiàn)并且通常更快。LRU在傳統(tǒng)計算機(jī)中更常見。然而,LFU通常是比LRU更好的預(yù)測器。Cl麗緩存LFU方法在圖8B的32項的LTB的下方可見。其指示了 CIMM LFU檢測器的類比實施方式的子集。子集示意圖示出了 4個積分器。具有32項TLB的系統(tǒng)包含32個積分器,每個積分器與每個TLB項關(guān)聯(lián)。在操作中,至LTB項的每個存儲器存取事件向其關(guān)聯(lián)的積分器貢獻(xiàn)“向上”脈沖。以固定的間隔,所有積分器接收“向下”脈沖以阻止積分器隨時間固定于它們的最大值。得到的系統(tǒng)包括具有與其相應(yīng)的LTB項的相應(yīng)存取數(shù)對應(yīng)的輸出電壓的多個積分器。這些電壓被傳遞至一組比較器,該組比較器計算在圖8C-8E中被示出為Outl、0ut2和0ut3的多個輸出。圖8D在ROM中或通過組合邏輯實現(xiàn)真值表。在4個TLB項的子集實施例中,需要2位指示LFU TLB項。在32項TLB中,需要5位。圖8E示出了用于三個輸出和用于相應(yīng)的LTB項的LFU輸出的子集真值表。差分信號與現(xiàn)有技術(shù)的系統(tǒng)不同,一個CIMM緩存實施方式使用低電壓差分信號(DS)數(shù)據(jù)總線以通過采用它們的低電壓擺動來減少功耗。如圖10A-10B所示,計算機(jī)總線是至地面網(wǎng)絡(luò)的分布式電阻器和電容器的電氣等同物??偩€以其分布式電容器中的充電和放電的方式消耗功率。功耗由下式表示:頻率X電容X電壓平方。當(dāng)頻率增加時,消耗更多的功率,同樣地,當(dāng)電容增加時,也消耗更多的功率。然而最重要的是與電壓的關(guān)系。消耗的功率隨電壓的平方而增加。這意味著如果總線上的電壓擺動減少10,則總線消耗的功率減少100。CMM緩存低電壓DS實現(xiàn)了差分模式的高性能以及由低電壓信號可實現(xiàn)的低功耗。圖1OC示出了如何實現(xiàn)這種高性能和低功耗。操作包括以下三步:1.差分總線被預(yù)充電至已知水平并被均衡化;2.信號生成器電路產(chǎn)生脈沖,該脈沖將差分總線充電至高得足夠由差分接收器可靠讀取的某一電壓。由于信號生成器電路與其控制的總線構(gòu)建在相同基板上,所以脈沖持續(xù)時間將追蹤構(gòu)建有信號生成器電路的基板的溫度和過程。如果溫度增加,則接收器晶體管減速,但是信號生成器晶體管也減速。因此,脈沖長度會因增加的溫度而增加。當(dāng)脈沖關(guān)閉時,總線電容器會相對于數(shù)據(jù)率長時間保持差分充電;以及3.在脈沖關(guān)閉一段時間之后,時鐘啟用交叉耦合的差分接收器。為了可靠地讀取數(shù)據(jù),差分電壓僅需要高于差分接收器晶體管的電壓的失配電壓。并行化緩存與其他CPU操作一個CMM緩存實施方式包括5個獨立的緩存:X、Y、S、I (指令或PC)以及DMA。這些緩存中的每個與其他緩存獨立地并且并行地操作。例如,X緩存可從DRAM加載,而其他緩存可供使用。如圖9所示,智能編譯器可通過開始從DRAM加載X緩存并同時繼續(xù)使用Y緩存中的操作數(shù)來利用這種并行。當(dāng)消耗Y緩存數(shù)據(jù)時,編譯器可開始從DRAM加載下一個Y緩存數(shù)據(jù)項并繼續(xù)在最新加載的X緩存中現(xiàn)存的數(shù)據(jù)上進(jìn)行操作。通過以此方式采用重疊的多個獨立的CIMM緩存,編譯器可避免緩存“缺失”代價。啟動加載器另一預(yù)期的CIMM緩存實施方式使用小的啟動加載器以包含從諸如閃存的永久存儲器或其他外部存儲裝置加載程序的指令。一些現(xiàn)有技術(shù)的設(shè)計使用了芯片外ROM以保持啟動加載器。這需要添加僅在起動時使用而在其余時間被閑置的數(shù)據(jù)線和地址線。其他現(xiàn)有技術(shù)將常規(guī)ROM放置在具有CPU的管芯上。使ROM嵌在CPU管芯上的缺陷在于ROM與芯片上CPU或DRAM的平面圖均不大兼容。圖1lA示出了預(yù)期的啟動ROM配置,圖1lB描繪了關(guān)聯(lián)的CIMM緩存啟動加載器操作。與CIMM單線指令的間距和尺寸匹配的ROM被放置為鄰近指令緩存(即,圖1lB中的I緩存)。重置之后,該ROM的內(nèi)容被轉(zhuǎn)移至單周期中的指令緩存。因此,從ROM內(nèi)容開始執(zhí)行。該方法使用了現(xiàn)有的指令緩存解碼和指令讀取邏輯,因而需要比之前的被嵌入的ROM少得多的空間。本發(fā)明之前描述的實施方式具有如所公開的許多優(yōu)勢。雖然本發(fā)明的各個方面已非常詳細(xì)地參照某些優(yōu)選實施方式進(jìn)行了描述,但是許多替換的實施方式也是可能的。因此,權(quán)利要求的精神和范圍應(yīng)該不限于優(yōu)選實施方式的描述,也不限于本文所展示的替換實施方式。由申請人的新的CIMM緩存架構(gòu)(例如LFU檢測器)預(yù)期的許多方面例如可由傳統(tǒng)OS和DBMS在傳統(tǒng)緩存中、或者在非CMM芯片上實現(xiàn),因此能夠通過在對用戶的軟件調(diào)諧效果本身明顯的硬件上的改進(jìn)來改進(jìn)OS存儲器管理、數(shù)據(jù)庫和應(yīng)用程序吞吐量以及整體計算機(jī)執(zhí)行性能。
權(quán)利要求
1.一種用于具有至少一個處理器的計算機(jī)系統(tǒng)的緩存架構(gòu),所述緩存架構(gòu)包括用于每個所述處理器的至少兩個本地緩存和解復(fù)用器,所述本地緩存包括專用于指令地址寄存器的I緩存和專用于源地址寄存器的X緩存;其中,每個所述處理器存取至少一個芯片上內(nèi)部總線,所述至少一個芯片上內(nèi)部總線包含用于關(guān)聯(lián)的所述本地緩存的一個RAM行;其中,所述本地緩存可操作為在一個RAS周期中被填充或清除,并且所述RAM行的全部感測放大器能夠由所述解復(fù)用器取消選擇至關(guān)聯(lián)的所述本地緩存的復(fù)制相應(yīng)位。
2.根據(jù)權(quán)利要求1所述的緩存架構(gòu),所述本地緩存還包括專用于至少一個DMA通道的DMA緩存。
3.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),所述本地緩存還包括專用于堆棧工作寄存器的S緩存。
4.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),所述本地緩存還包括專用于目標(biāo)地址寄存器的Y緩存。
5.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),所述本地緩存還包括專用于堆棧工作寄存器的S緩存和專用于目標(biāo)地址寄存器的Y緩存。
6.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),還包括用于每個所述處理器的至少一個LFU檢測器,所述LFU檢測器包括芯片上電容器和運算放大器,所述運算放大器被配置為一系列積分器和比較器,所述比較器實現(xiàn)布爾邏輯以通過讀取與最不經(jīng)常使用的緩存頁關(guān)聯(lián)的LFU的IO地址來連續(xù)地識別所述最不經(jīng)常使用的緩存頁。
7.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),還包括啟動ROM,該啟動ROM與每個所述本地緩存配對以在重新啟動操作的過程中簡化CM緩存初始化。
8.根據(jù)權(quán)利要求1或2所述的緩 存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
9.根據(jù)權(quán)利要求3所述的緩存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
10.根據(jù)權(quán)利要求4所述的緩存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
11.根據(jù)權(quán)利要求5所述的緩存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
12.根據(jù)權(quán)利要求6所述的緩存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
13.根據(jù)權(quán)利要求7所述的緩存架構(gòu),還包括用于每個所述處理器的復(fù)用器,以選擇所述RAM行的感測放大器。
14.根據(jù)權(quán)利要求1或2所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
15.根據(jù)權(quán)利要求3所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
16.根據(jù)權(quán)利要求4所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
17.根據(jù)權(quán)利要求5所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
18.根據(jù)權(quán)利要求6所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
19.根據(jù)權(quán)利要求7所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
20.根據(jù)權(quán)利要求8所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
21.根據(jù)權(quán)利要求9所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
22.根據(jù)權(quán)利要求10所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
23.根據(jù)權(quán)利要求11所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
24.根據(jù)權(quán)利要求12所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
25.根據(jù)權(quán)利要求13所述的緩存架構(gòu),其中,每個所述處理器使用低電壓差分信號存取所述至少一個芯片上內(nèi)部總線。
26.—種連接單片存儲器芯片的RAM內(nèi)的處理器的方法,包括允許將所述RAM的任意位選擇至在多個緩存中維持的復(fù)制位的必需步驟,所述步驟包括: (a)將存儲器位邏輯地分組成四個組; (b)將所有四個位線從所述RAM發(fā)送至復(fù)用器輸入; (c)通過接通由地址線的四種可能狀態(tài)所控制的四個開關(guān)中的一個,將所述四個位線之一選擇至復(fù)用器輸出; (d)通過使用由指令解碼邏輯提供的解復(fù)用器開關(guān),將所述多個緩存之一連接至所述復(fù)用器輸出。
27.一種通過緩存頁缺失管理CPU的虛擬存儲器(VM)的方法,包括以下步驟: (a)在所述CPU處理至少一個專用緩存地址寄存器的情況下,所述CPU檢查所述寄存器的高階位的內(nèi)容;以及 (b)當(dāng)所述位的內(nèi)容改變時,如果在與所述CPU關(guān)聯(lián)的CAMTLB中沒有找到所述寄存器的頁地址內(nèi)容,則所述CPU將缺頁中斷返回至VM管理器,以用與所述寄存器的頁地址內(nèi)容對應(yīng)的VM的新頁替換所述緩存頁的內(nèi)容;否則 (c)所述CPU使用所述CAMTLB確定實地址。
28.根據(jù)權(quán)利要求27所述的方法,還包括以下步驟: (d)如果在與所述CPU關(guān)聯(lián)的CAMTLB中沒有找到所述寄存器的頁地址內(nèi)容,則確定所述CAM TLB中的當(dāng)前最不經(jīng)常被緩存的頁以接收VM的所述新頁的內(nèi)容。
29.根據(jù)權(quán)利要求28所述的方法,還包括以下步驟: (e)記錄LFU檢測器中的頁存??;所述確定的步驟還包括使用所述LFU檢測器確定CAMTLB中的當(dāng)前最不經(jīng)常被緩存的頁。
30.一種并行化緩存缺失與其他CPU操作的方法,包括以下步驟:(a)如果在存取第二緩存時沒有發(fā)生緩存缺失,則處理至少所述第二緩存的內(nèi)容,直至第一緩存的緩存缺失處理被解決;以及 (b)處理所述第一緩存的內(nèi)容。
31.一種減少單片芯片上數(shù)字總線中的功耗的方法,包括以下步驟: Ca)對所述數(shù)字總線的至少一個總線驅(qū)動器上的一組差分位進(jìn)行均衡化和預(yù)充電; (b)均衡化接收器; (C)在所述至少一個總線驅(qū)動器上維持所述位長達(dá)至少所述數(shù)字總線的最慢裝置傳播延遲時間; Cd)關(guān)閉所述至少一個總線驅(qū)動器; (e)打開所述接收器;以及 Cf)通過所述接收器讀取所述位。
32.—種降低緩存總線所消耗的功率的方法,包括以下步驟: Ca)均衡化差分信號對并將所述信號預(yù)充電至Vcc ; (b)預(yù)充電和均衡化差分接收器; (C)將發(fā)送器連接至至少一個交叉耦合的逆變的至少一個差分信號線,并將所述發(fā)送器放電長達(dá)超過所述交叉耦合反相器裝置傳播延遲時間的時間段; (d)將所述差分接收器連接至所述至少一個差分信號線;以及 (e)使所述差分接收器能夠允許所述至少一個交叉耦合反相器在被所述至少一個差分線偏置的同時達(dá)到完全Vcc擺動。
33.一種使用啟動加載線性ROM啟動存儲器架構(gòu)中的CPU的方法,包括以下步驟; Ca)通過所述啟動加載ROM檢測功率有效狀態(tài); (b)在執(zhí)行停止的情況下,將全部CPU保持在重置狀態(tài); (c)將所述啟動加載ROM內(nèi)容轉(zhuǎn)移至第一CPU的至少一個緩存; Cd)將專用于所述第一 CPU的所述至少一個緩存的寄存器設(shè)置為二進(jìn)制零;以及 Ce)使所述第一 CPU的系統(tǒng)時鐘能夠從所述至少一個緩存開始執(zhí)行。
34.根據(jù)權(quán)利要求33所述的方法,其中,所述至少一個緩存為指令緩存。
35.根據(jù)權(quán)利要求34所述的方法,其中,所述寄存器為指令寄存器。
36.一種通過CM VM管理器對本地存儲器、虛擬存儲器和芯片外外部存儲器進(jìn)行解碼的方法,包括以下步驟: (a)當(dāng)CPU處理至少一個專用的緩存地址寄存器時,如果所述CPU確定所述寄存器的至少一個高階位改變;則 (b)當(dāng)所述至少一個高階位的內(nèi)容為非零時,所述VM管理器使用外部存儲器總線將由所述寄存器所編址的頁從所述外部存儲器轉(zhuǎn)移至所述緩存;否則 (c)所述VM管理器將所述頁從所述本地存儲器轉(zhuǎn)移至所述緩存。
37.根據(jù)權(quán)利要求36所述的方法,其中,所述寄存器的所述至少一個高階位僅在對至任何地址寄存器的ST0RACC指令、算前減量指令和算后增量指令的處理期間改變,所述CPU確定的步驟還包括通過指令類型進(jìn)行確定。
38.一種通過CIMM VM管理器對本地存儲器、虛擬存儲器和芯片外外部存儲器進(jìn)行解碼的方法,包括以下步驟:(a)當(dāng)CPU處理至少一個專用的緩存地址寄存器時,如果所述CPU確定所述寄存器的至少一個高階位改變;則 (b)當(dāng)所述至少一個高階位的內(nèi)容為非零時,所述VM管理器使用外部存儲器總線和處理器間,將由所述寄存器所編址的頁從所述外部存儲器轉(zhuǎn)移至所述緩存;否則 (c)如果所述CPU檢測到所述寄存器與所述緩存不相關(guān)聯(lián),所述VM管理器使用所述處理器間總線將所述頁從遠(yuǎn)程存儲器組轉(zhuǎn)移至所述緩存;否則 (c)所述VM管理器將所述頁從所述本地存儲器轉(zhuǎn)移至所述緩存。
39.根據(jù)權(quán)利要求39所述的方法,其中,所述寄存器的所述至少一個高階位僅在對至任何地址寄存器的STORACC指令、算前減量指令和算后增量指令的處理期間改變,所述CPU確定的步驟還包括通過指令類型進(jìn)行確定。
全文摘要
存儲器緩存架構(gòu)實施方式中的一個示例性CPU包括用于每個處理器的多個被分割的緩存和解復(fù)用器,所述緩存包括專用于指令地址寄存器的I緩存和專用于源地址寄存器的X緩存;其中,每個處理器存取芯片上總線,該芯片上總線包含用于關(guān)聯(lián)的緩存的RAM行;其中,全部緩存可操作為在一個RAS周期中被填充或清除,并且RAM行的全部感測放大器能夠由解復(fù)用器取消選擇至關(guān)聯(lián)的所述本地緩存的復(fù)制相應(yīng)位。還公開了由各種實施方式演變而來并且有助于增強各種實施方式的若干方法。應(yīng)該強調(diào),該摘要使搜尋者很快確定技術(shù)公開的主題,并且提交該摘要應(yīng)理解為將不用于解釋或限制權(quán)利要求的范圍或含義。
文檔編號G06F12/08GK103221929SQ201180056389
公開日2013年7月24日 申請日期2011年12月4日 優(yōu)先權(quán)日2010年12月12日
發(fā)明者拉塞爾·漢米爾頓·菲什 申請人:拉塞爾·漢米爾頓·菲什