專利名稱:低功率組關聯(lián)緩存的制作方法
微處理器的體系結(jié)構(gòu)通常包括至少一個靜態(tài)隨機存取存儲器(SRAM)作為內(nèi)部緩存,以提供高速數(shù)據(jù)訪問,因該緩存最靠近寄存器堆,通常被稱作一級(L1)緩存。在計算機系統(tǒng)中的記憶緩存(memorycaching)是有效的,因為大多數(shù)程序表現(xiàn)出其數(shù)據(jù)和指令均有空間上和時間上的局部性。通過在高速SRAM L1緩存中保存盡可能多的這種信息,微處理器可以避免訪問低速的外部存儲器。內(nèi)部緩存可以被劃分為較小的“小存儲體(bank)”,設計各種方法來斷言(assert)較少字線或啟動較少的感應放大器,以減少功耗。然而,需要比通常裝載和存儲發(fā)生時更廣的訪問的有些操作如線占用和逐出,會被這樣的緩存結(jié)構(gòu)所阻礙。
計算機系統(tǒng)也可以使用虛擬地址緩存和關聯(lián)(associative)機制來減少功耗,但仍遇到高速處理器的內(nèi)存需要。例如,N路組關聯(lián)緩存可以使用緩存命中信號(cache-hit signal)控制多路復用器,該復用器傳播從所選擇的路中讀出的數(shù)據(jù)。雖然這種技術為緩存命中提供了低的等待時間,但功率可能被浪費在感應放大器中,因為對于所選擇的組數(shù)據(jù)陣列的所有路都要被讀取。作為替代方案,標記在一個周期中被讀取,在下一個周期中被用于選擇合適的路以讀取數(shù)據(jù)。這項技術可以減少功耗,但所增加的等待時間可能在一個低級別的緩存中不被接受。因此,這種機制被用于二級和三級緩存。
因此,仍然需要減少等待時間,降低微處理器的功耗,而不干擾寬訪問,如線逐出和線填充的緩存結(jié)構(gòu)。
圖的簡要說明本發(fā)明的主題部分在本說明書的結(jié)論部分特別指出,并清楚聲明。然而,該發(fā)明的結(jié)構(gòu)和操作方法,以及對象、特征和優(yōu)點,可以通過參考下面的詳細說明閱讀相應的附圖,得到更好的理解,其中
圖1說明具有N路組關聯(lián)緩存的計算機系統(tǒng);圖2是圖1中說明的緩存的框圖4是依照本發(fā)明給出的圖1中所介紹的緩存存儲器的物理排列圖。
為了說明的簡單清晰,圖中說明的元素沒必要按比例畫。例如,為了清晰起見有些元素的尺寸相對于其它元素而言被夸大。另外,在認為合適的地方,參照數(shù)字被重復,以表示相應的或相似的元素。
詳細描述在下面的詳細描述中給出了大量具體的細節(jié),以提供對本發(fā)明的完整理解。然而,對于那些本領域的技術人員來說,這一點應理解為,本發(fā)明可以不需要這些具體細節(jié)就可實施。在另外的場合中,眾所周知的方法、過程、構(gòu)件和電路未被詳細說明,以便使本發(fā)明不至于模糊不清。
本發(fā)明實施例可被用于廣泛的應用中。這里所公開的電路可以被用在微控制器、多用途微處理器、數(shù)字信號處理器(DSP)、精簡指令集計算(RISC)、復雜指令集計算(CISC),以及其它電子構(gòu)件。然而,應當知道本發(fā)明的范圍不限于這些例子。雖然本發(fā)明不限于這個方面,許多操作系統(tǒng)(OS)如來自華盛頓州雷蒙德(Redmond)市的微軟公司的Windows 95TM、Windows 98 TM和Windows NT TM,或者貝爾實驗室的UNIX,可以管理控制器或處理器上的物理存儲器。
本發(fā)明還可以被包含或被嵌入在集成電路中,一般地,本實施例可以組合內(nèi)部緩存和外部主存儲器,可以被合并到下一代智能電話、發(fā)報機(communicatior)和個人數(shù)字助理(PDA)、基帶和應用處理器、基于OS平臺的設備、數(shù)碼相機、音像解碼、汽車信息娛樂、機頂盒及其它產(chǎn)品。
在下面的描述和權利要求中,術語“耦合的”和“連通的”以及它們的派生詞會被用到。應知道這些術語并不是被打算用作彼此的同義語。相反,在特定的實施例中,“連通的”可以用來指示兩個或多個元素是彼此直接物理連接或電氣接觸的?!榜詈系摹北硎緝蓚€或多個元素是直接物理接觸或電氣接觸。然而,“耦合的”還可表示兩個或多個元素不是彼此直接接觸,但仍彼此協(xié)作或相互影響。
圖1說明具有操作系統(tǒng)(OS)的計算機系統(tǒng)10,該操作系統(tǒng)可管理計算機上的有限物理存儲器,在同時運行的多個進程中劃分物理存儲器,以及為每個進程分配合適的內(nèi)存份額。運行在微處理器12上的操作系統(tǒng)可依賴來自存儲器管理單元(MMU)14的硬件支持來管理存儲器和導出功能,以便其它子系統(tǒng)和應用程序可以使用這些功能與存儲器相互作用。L1緩存18可以具有虛擬存儲地址空間,地址空間的大小由字節(jié)的數(shù)量以及每個字節(jié)中的比特數(shù)確定。
通常期望微處理器12的內(nèi)存訪問多數(shù)來自L1緩存,因為L1緩存工作在處理器頻率上。因而,計算機系統(tǒng)10中的存儲器緩存利用了一個L1內(nèi)部緩存18來減少微處理器12訪問L2“離線(off-chip)”或外部主存儲器20的次數(shù)。缺少L1緩存可能導致處理器12轉(zhuǎn)到L2存儲器或主存儲器20,當處理器在等待許多指令時間完成從存儲器讀數(shù)時,潛在地停滯了處理器。在微處理器12的算術邏輯部件16中執(zhí)行邏輯運算的數(shù)據(jù)可以存儲在緩存18和/或存儲器20。
一般地,L1內(nèi)部緩存18可以是高速靜態(tài)隨機讀取存儲器(SRAM),而L2存儲器和主存儲器20可以是較慢的動態(tài)隨機讀取存儲器(DRAM),然而存儲器的類型不是所聲明的主題的限制。內(nèi)部緩存18可以虛擬索引,并且是N路組關聯(lián)緩存,盡管區(qū)分虛擬緩存和物理緩存與本發(fā)明的結(jié)構(gòu)和特征是不相關的。
圖2說明依照本發(fā)明的L1硬件緩存18。與緩存18關聯(lián)的N路組允許訪問至多N個不同的存儲器區(qū)域,這些區(qū)域重迭在相同的緩存存儲器中而不覆蓋先前緩存的數(shù)據(jù)。同樣地,緩存18包括路0如第22列,路1如第24列,路2如第26列,…,以及路N如第28列,用來存儲地址的標記部分。感應放大器32、34、36、…、以及38可感應到分別存儲在第22、24、26、…、和28列中的虛擬標記信息。應當注意,緩存18中路數(shù)和列的大小均不應被看做是對本發(fā)明的范圍的限制。
一般地,提供給緩存18的地址可以被標記序號,如從0比特到31比特,這里0表示最低有效位(或低位比特),31表示最高有效位(高位比特)。通過這樣結(jié)構(gòu),地址可以具有“索引”部分、“組”部分和“標記”部分。作為示例,低位的5比特可以作為“索引”部分,[12:5]的8比特可作為“組”部分,[31:13]的19比特可作為“標記”部分。雖然這個例子提供了32比特的地址,以及地址劃分標記[31:13]、組[12:5]、索引[4:0],應當指出的是,可以在地址中使用不同的劃分,甚至使用不同的比特數(shù)目。因而,這意味著比特分組或比特數(shù)均不對本權利要求的范圍構(gòu)成限制。
在一個實施例中,提供給L1內(nèi)部緩存18的地址[31:0]可使用例如該地址的比特位[12:5],來從每個路陣列的256條緩存線中選擇一條緩存線。注意到該地址可以是“虛擬的”,可以是“物理的”,即,已經(jīng)由微處理器MMU 14所解釋。存儲在路0、路1、路2、…、路N中所選緩存線上的標記信息可分別由感應放大器32、34、36、…、38所感應。比較電路42、44、46和48接收所感應的標記,提供與該地址的比特[31:13]的比較。如果比較電路指示匹配,即緩存命中,則來自適當路的數(shù)據(jù)信息,與來自合適的數(shù)據(jù)陣列感應放大器的激活時序信號結(jié)合在一起,只啟動相符合的路的對應的感應放大器52、54、56和58。這樣,對于所選擇的路,只有M感應放大器(其中M是數(shù)據(jù)寬度)消耗功率??商鎿Q地,應當注意到,多米諾式的CMOS門或者按照或方式線連接的輸出路徑(wire-or’ed output path)可以自動地選擇數(shù)據(jù)。如果緩存18中沒有標記匹配地址的標記部分,則存在數(shù)據(jù)緩存缺失。應當注意,在這種情況下,L1緩存感應放大器和數(shù)據(jù)傳遞路徑不消耗功率。
選擇器60包括緩存感應放大器52、54、56和58的組,它們從對應的路陣列中接收標記,但是根據(jù)本發(fā)明,只有一組緩存感應放大器被激活傳輸數(shù)據(jù)到輸出。作為示例,存儲在路0中一條被選擇的緩存線上的標記由感應放大器32感應,由比較電路42與地址的標記部分進行比較,如果比較電路42指示緩存命中,則緩存數(shù)據(jù)由數(shù)據(jù)感應放大器52的組傳輸?shù)綌?shù)據(jù)輸出。再次注意到緩存18可以通過使用比較電路來只激活數(shù)據(jù)感應放大器的一個路,而不用激活其余數(shù)據(jù)放大器組,從而將其操作功率降低。
圖3是描述依照本發(fā)明的緩存18的時序圖。地址生成可發(fā)生在時鐘的下降沿,即時間t0。在時間t1到t2期間,存儲在路陣列中被選擇的緩存線上的標記被感應,由比較電路將其與地址的標記部分進行比較。如果比較電路指示某個路緩存命中,該緩存命中信號在時間t1跟隨時鐘的上升沿被提供給緩存感應放大器。選擇器60中的適當?shù)木彺娓袘糯笃鞅患せ?,在隨后的時間t3數(shù)據(jù)被提供給數(shù)據(jù)輸出。
圖4說明緩存存儲器的結(jié)構(gòu)以減少最低級別緩存和下一個高級別緩存之間的等待時間。計算機系統(tǒng)10(圖1)的性能與用來在緩存的不同級別之間傳遞數(shù)據(jù)的周期數(shù)有關。任何周期數(shù)的減少可以降低停滯。L1緩存和微處理器核心之間的存取典型情況為一到兩個字,而在不同緩存級別之間的通信更偏好較大的分組,如4到16個字(被稱作“線”)。在本實施例中,路的結(jié)構(gòu)和緩沖存儲器中字的物理排列可以改進系統(tǒng)性能,這是通過允許單一信號周期線大小寫(a single cycle line sizewrite)和單一信號周期線大小讀(a single cycle line size read)(逐出)而不需要過多的感應放大器實現(xiàn)的。注意到減少讀出感應放大器的數(shù)目減少了袖珍式計算機(handheld)及其它低功耗應用的空閑電流元件。
這個實施例顯示了4路組關聯(lián)緩存,但是緩存的大小和路的數(shù)目不應作為本發(fā)明的限制。如所示,緩存可以被劃分為70-84塊,每個塊具有4個路,即路0、路1、路2和路3。4個路中的每一個路可以包含4字節(jié)(一個字節(jié)表示8比特)以存儲一個32比特的字。每個塊中的路0、路1、路2和路3可以被劃分為一個較低部分以存儲較低的兩字節(jié),和一個較高部分以存儲較高的兩字節(jié)。作為示例,第70塊中的路0可以存儲較低的兩字節(jié)(表示為字節(jié)
,即比特0:15),另一個路0可以存儲較高的兩字節(jié)(表示為字節(jié)[2:3],即16:31)。
同樣地,在緩存中,字可以被物理排列為字0(第70塊)、字2(第72塊)、字1(第74塊)、字3(第76塊)、字4(第78塊)、字6(第80塊),字5(第82塊)和字7(第84塊)。進一步注意到64位感應放大器可以位于字0和字2之間,64位感應放大器可以位于字1和字3之間,64位感應放大器可以位于字4和字6之間,64位感應放大器可以位于字5和字7之間。
在本實施例中,一半的字可以被排列為具有連續(xù)排序的路,而另一半中,路的對排序可以相反。換句話說,字0、字1、字4和字5可以物理排序為路0、路1、路2和路3,以存儲低位的兩字節(jié),相同的序號存儲高位的兩字節(jié)。然而,字2、字3、字6和字7可以被排列為具有不同順序的路。在這些字中,對排序可以相反地具有物理排序路1、路0、路3和路2,以存儲低位的兩字節(jié),相同的排序以存儲高位的兩字節(jié)。這種緩存存儲器排列允許路0與路1共享感應放大器,路2與路3共享感應放大器。例如,對于第70塊的路0,低位的兩字節(jié)(字節(jié)
)和高位的兩字節(jié)(字節(jié)[2:3])可以被排列為與對應的第72塊的路1的低位的兩字節(jié)和高位的兩字節(jié)共享感應放大器。類似地,第70塊的路1的低位的兩字節(jié)(字節(jié)
)和高位的兩字節(jié)(字節(jié)[2:3])可以被排列為與對應的第72塊的路0的低位的兩字節(jié)和高位的兩字節(jié)共享感應放大器。同樣地,第70塊的路2的低位的兩字節(jié)(字節(jié)
)和高位的兩字節(jié)(字節(jié)[2:3])可以被排列為與對應的第72塊的路3的低位的兩字節(jié)和高位的兩字節(jié)共享感應放大器,第70塊的路3的低位的兩字節(jié)(字節(jié)
)和高位的兩字節(jié)(字節(jié)[2:3])可以被排列為與對應的第72塊的路2的低位的兩字節(jié)和高位的兩字節(jié)共享感應放大器。
感應放大器可以被用來感應每個存儲位的值。在讀一個32比特的字的正常操作期間,一個感應放大器的使能信號被斷言,以允許與每個I/O比特片關聯(lián)的4個感應放大器之一活動地感應信息。但在逐出期間,需要斷言兩個感應放大器使能信號,允許4個感應放大器組中的兩個被激活。在這種情況下,舉例來說,字0的比特0和字2的比特0可以被讀取給相同的路。通過不將字在相同的緩存塊中分組,當前的結(jié)構(gòu)允許一個周期的逐出,激活256個感應放大器,允許8個字同時被讀出。并且,這種緩存結(jié)構(gòu)允許在一個逐出或填充期間,在整個緩存陣列中均勻地分配功率。注意,感應放大器可以被存儲在一個路的標記中的緩存命中信號選通,因此,沒有“后路(late way)”選擇電路存在。
盡管這里描述并說明了本發(fā)明的某些特征,對于那些本領域技術人員來說,他們的頭腦中將會閃現(xiàn)許多修改、代替、改變和等價的東西。因此,附加的權利要求應被理解為涵蓋所有這些落入本發(fā)明的本義的修改和改變。
權利要求
1.一種存儲器,包括由第一緩存命中信號激活的感應放大器部分和由第二緩存命中信號激活的第二部分。
2.權利要求1中的存儲器,其是一個N路組關聯(lián)緩存,具有如下次序在第一字中,第二路跟隨在第一路后面;在第二字中,第一路跟隨在第二路后面。
3.權利要求1中的存儲器,還包括比較電路,將存儲在存儲器中的標記信息與提供給存儲器的地址進行比較。
4.權利要求3中的存儲器,其中比較電路在標記信息與地址匹配時產(chǎn)生第一緩存命中信號。
5.一種緩存存儲器,包括第一和第二路;第一和第二比較電路被耦合以接收地址,第一比較電路進一步被耦合以接收存儲在第一路中的數(shù)據(jù)并且產(chǎn)生第一緩存命中信號;第二比較電路被耦合以接收存儲在第二路中的數(shù)據(jù)并且產(chǎn)生第二緩存命中信號;第一和第二感應放大器,它們將分別存儲在第一和第二路中的數(shù)據(jù)傳輸?shù)捷敵觯渲械谝桓袘糯笃饔傻谝痪彺婷行盘柤せ?,第二感應放大器由第二緩存命中信號激活?br>
6.權利要求5中的緩存存儲器,其中,該緩存存儲器具有如下結(jié)構(gòu)在第一塊中,第二路跟隨在第一路后面,在第二塊中,第一路跟隨在第二路后面。
7.權利要求5中的緩存存儲器,其中,該緩存存儲器通過使用虛擬地址進行尋址。
8.權利要求5中的緩存存儲器,其中,該緩存存儲器通過使用物理地址進行尋址。
9.一種至少具有第一和第二路的緩存,該緩存包括第一和第二感應放大器被激活以傳遞分別存儲在第一和第二路中的數(shù)據(jù)到輸出,其中第一緩存命中信號激活第一感應放大器,第二緩存命中信號激活第二感應放大器。
10.權利要求9中的緩存,其中,該緩存具有如下結(jié)構(gòu)在第一塊中,第二路跟隨在第一路后面;在第二塊中,第一路跟隨在第二路后面。
11.權利要求9中的緩存還包括第一比較電路被耦合以接收地址信號和存儲在第一路中的數(shù)據(jù),生成第一緩存命中信號。
12.權利要求11中的緩存還包括第二比較電路被耦合以接收地址信號和存儲在第二路中的數(shù)據(jù),生成第二緩存命中信號。
13.一種設備,包括緩存中的第一和第二路,在第一塊中,第二路跟隨在第一路后面,在第二塊中,第一路跟隨在第二路后面;第一和第二感應放大器傳輸分別存儲在第一和第二路中的數(shù)據(jù)到輸出,其中,第一緩存命中信號激活第一感應放大器,第二緩存命中信號激活第二感應放大器。
14.權利要求13中的設備,還包括第三和第四路,其次序為在第一塊中,第四路跟隨在第三路后面,在第二塊中,第四路跟隨第三路。
15.權利要求13中的設備,還包括第一和第二比較電路,它們被耦合以接收地址,第一比較電路進一步被耦合以接收存儲在第一路中的數(shù)據(jù),生成第一緩存命中信號;第二比較電路被耦合以接收存儲在第二路中的數(shù)據(jù),生成第二緩存命中信號。
16.權利要求13中的設備,還包括與緩存耦合的存儲器管理單元;與緩存耦合的另一存儲器。
17.一種方法,包括用第一緩存命中信號激活第一感應放大器,用第二緩存命中信號激活第二感應放大器。
18.權利要求17中的方法,還包括將地址與存儲在第一路中的數(shù)據(jù)進行比較,生成第一緩存命中信號;將地址與存儲在第二路中的數(shù)據(jù)進行比較,生成第二緩存命中信號。
19.權利要求18中的方法,還包括在第一字中,排列第二路跟隨在第一路后面,在第二字中反過來,第二路跟隨第一路。
20.一種方法,包括在一個周期逐出中,從緩存的第一路讀取多個字。
21.權利要求20中的方法,還包括安排第一字中的第一路跟隨第二路,在第二字中第一路和第二路順序相反。
22.一種方法,包括斷言多個路的命中信號以從緩存中讀取多個數(shù)據(jù)字。
23.權利要求22中的方法還包括在逐出期間,斷言多個路命中信號,激活感應放大器。
24.權利要求23中的方法,還包括耦合感應放大器到至少兩個路。
25.在權利要求24中的方法,其中耦合感應放大器到至少兩個路還包括至少在兩個路上復用一個感應放大器。
26.權利要求23中的方法,還包括根據(jù)緩存的操作,選擇一個路傳輸數(shù)據(jù)到一個感應放大器。
全文摘要
具有L1緩存存儲器的處理器可以使用比較電路來確定所存儲的標記信息與地址是否匹配,并用緩存命中信號來接通緩存存儲器的感應放大器。
文檔編號G06F12/08GK1662887SQ03814430
公開日2005年8月31日 申請日期2003年6月12日 優(yōu)先權日2002年6月18日
發(fā)明者L·克拉克, J·米勒 申請人:英特爾公司