新四季網

高速緩存鎖定設備及其方法

2023-09-12 01:27:15 1

專利名稱:高速緩存鎖定設備及其方法
技術領域:
本公開內容涉及處理設備,更具體地涉及用於處理設備的高速緩存。
背景技術:
處理設備有時採用一個或更多個高速緩存來為處理器提供暫時的、快速的訪問存 儲位置。響應於正在處理器中執行的存儲指令,高速緩存確定該高速緩存的高速緩存行 (cache line)是否已經與存儲地址相關聯。在高速緩存命中的情況下,該高速緩存將數據 存儲在與該存儲地址相關聯的高速緩存行中。如果不存在與包含有效數據的存儲地址相關 聯的高速緩存行,則發生高速緩存未中。如果發生高速緩存未中,則該高速緩存通過識別該 高速緩存最近最少使用的(LRU)高速緩存行來確定高速緩存行以存儲要存儲的數據。將存 儲在LRU高速緩存行中的數據替換為正被存儲的數據,並且該高速緩存行的標記與該存儲 地址相關聯。為了保留用於關鍵數據的高速緩存行,處理器中的軟體程序或例程可以指示 該高速緩存鎖定高速緩存行,從而迫使該高速緩存行與特定的存儲器地址相關聯,以便保 證在高速緩存中被鎖定的高速緩存行不會被替換為與另一個存儲器地址相關聯的數據。
除存儲數據之外,高速緩存可以存儲每個高速緩存行的一致性(coherency)狀態 信息,以便保持該高速緩存中的數據與處理系統的外部存儲器和其它高速緩存的一致性。 例如,可以響應於接收如下指示而使與高速緩存行相關聯的有效位無效,該指示為已經在 高速緩存外部的存儲位置處請求訪問與高速緩存行相關聯的存儲器地址。響應於對與高速 緩存行相關聯的存儲器地址的外部存儲器訪問,當前處理設備將自動地將高速緩存行置於 未鎖定狀態,從而允許分配高速緩存行來存儲來自任何地址的數據。因此,為了保持被無效 的高速緩存行的鎖定狀態,軟體程序或例程必須監視鎖定的高速緩存行並且當它被無效時 重新鎖定該高速緩存行。這增加了軟體程序的大小並且降低了它的效率。因此,需要一種 新的處理設備。


圖1是處理設備100的具體實施例的框圖; 圖2是處理設備100的一部分的具體實施例的框圖; 圖3是圖1的高速緩存的具體實施例的框圖; 圖4是圖1的高速緩存的可能狀態的具體實施例的框圖; 圖5是示出了在圖1的高速緩存的高速緩存行的可能狀態之間的變化的具體實施 例的圖;以及 圖6是在高速緩存中加載和存儲數據的方法的具體實施例的流程圖。
具體實施例方式
公開了一種用於鎖定高速緩存的高速緩存行的方法和設備。該方法包括響應於 接收如下的指示,自動地將高速緩存行的狀態從有效的鎖定狀態變為無效的鎖定狀態,該指示為該高速緩存外部的並且對應於該高速緩存行的存儲位置與處理器或其它數據訪問 模塊的訪問請求相關聯。因而,即使在使鎖定的高速緩存行中的數據無效之後,也保持高速 緩存行的鎖定狀態。通過保持該無效的鎖定狀態,高速緩存行不可用於高速緩存的再分配。 這使得變為無效的鎖定的高速緩存行能夠保持鎖定,而沒有用於周期性確定該鎖定是否已 經由於高速緩存行的無效而失去的額外軟體開銷。 參考圖l,示出了設備100的具體實施例。設備100包括處理器102、高速緩存104、 一致性控制模塊110、前端高速緩存112、處理器120、存儲器控制器130、1/0控制器132和 存儲器134。設備100還包括總線103、前端總線105和I/O總線107。處理器102通過總 線103訪問高速緩存104。處理器102、一致性控制模塊IIO和處理器120通過前端總線105 彼此連接。 一致性控制模塊110、存儲器控制器130和I/O控制器132通過I/O總線107彼 此連接。存儲器控制器130連接到存儲器134。將理解,圖1所示的模塊的其它配置是可能 的。例如,在具體實施例中,所有模塊連接到公共總線或交叉開關。 處理器102可以是諸如微處理器、微控制器等的處理器。類似地,處理器120可以 是諸如微處理器、控制器、微控制器等的處理器。 高速緩存104可以是數據高速緩存、指令高速緩存、統一的(unitary)高速緩存等 等。在具體實施例中,高速緩存104是8路組關聯的高速緩存。經由總線103訪問高速緩 存104,該高速緩存104存儲與處理器102中執行的指令相關聯的數據。
高速緩存104包括大量高速緩存行,每個有效高速緩存行與存儲器地址相關聯。 此外,高速緩存104保存每個高速緩存行的狀態信息,包括一致性狀態信息。例如,對於每 個高速緩存行,高速緩存104指示存儲在高速緩存行中的數據是否有效,它是否是共享數 據,該數據是否已由處理器102修改,等等。狀態信息還指示每個高速緩存行的鎖定狀況 (status),以便指示高速緩存行是否可以與不同的存儲器地址相關聯。在具體實施例中,高 速緩存104是回寫式高速緩存。在另一個具體實施例中,高速緩存104是直寫式高速緩存。
存儲器控制器130經由I/O總線接收存儲器訪問請求,並且基於那些存儲器請求 而訪問包括存儲器134、前端高速緩存112的存儲器,或者經由I/O控制器132訪問外部存 儲器。在具體實施例中,將存儲器控制器130訪問的存儲器134與圖1所示的其它元件集 成在公共襯底(諸如封裝襯底或公共集成電路襯底)上。存儲器134可以是易失性或非易 失性的存儲器。 將I/0控制器132配置為便於設備100的模塊與外部外圍設備(未示出)之間的 通信。例如,1/0控制器132可以允許存儲器控制器130訪問外圍存儲器設備。因此,I/O 控制器管理外圍設備(包括存儲器)與設備100的模塊之間的信息的通信。
前端高速緩存112可以是數據高速緩存、指令高速緩存、統一的高速緩存等等。對 於可以訪問前端總線105的設備100的模塊(諸如處理器102和處理器120),前端高速緩 存112是可訪問的。 —致性控制模塊IIO從前端總線105和1/0總線107接收一致性信息,並且基於所 接收的一致性信息將一致性控制信息提供給設備100的模塊,以便確保保持數據一致性。
在操作期間,處理器102和處理器120都可以訪問存儲器134和高速緩存112。例 如,處理器102可以通過將存儲器地址發送到存儲器控制器130來讀取存儲器134的位置。 作為響應,存儲器控制器130從存儲器134中檢索與該存儲器地址相關聯的數據。在具體器130檢索足夠的數據以填充高速緩存104的高速緩存行並且將數 據提供給處理器102。處理器102接收所檢索的數據並且將它存儲在高速緩存104的高速 緩存行中。此外,高速緩存104存儲與存儲器地址相關聯的標記信息,該標記信息指示檢索 的高速緩存行與從其中檢索該數據的存儲器134的存儲器地址相關聯。處理器120和處理 器102可以類似地訪問存儲器134並且將所檢索的數據存儲在前端高速緩存112中。
—致性控制模塊110接收與訪問存儲器134、前端高速緩存112、高速緩存104和 設備100的任何其它存儲器有關的信息,並且將一致性信息提供給前端高速緩存112、高速 緩存104和其它存儲器以保持數據一致性。例如,如果外部處理器或其它設備在存儲器134 中訪問與高速緩存104的高速緩存行相關聯的存儲器地址,則一致性控制模塊110向高速 緩存104通知該存儲器訪問。 為了向高速緩存104通知與存儲器地址相關聯的存儲器訪問, 一致性模塊110可 以經由處理器102將一致性控制信息提供給高速緩存104。基於此信息,可以保持與存儲器 地址相關聯的高速緩存104的高速緩存行的一致性信息的狀態。例如,響應於指示已經請 求訪問存儲器地址的一致性控制信息,高速緩存104可以改變與存儲器地址相關聯的高速 緩存行的一致性狀態信息,以便指示存儲在該高速緩存行中的數據是無效的。
處理器102可以通過執行指令來控制高速緩存行的鎖定狀態,以便基於程序或操 作系統的用戶指令來設置每個高速緩存行的鎖定狀態。例如,軟體可以發出指令來明確地 鎖定或解鎖高速緩存104的特定高速緩存行。處於鎖定狀態的高速緩存行不可用於被高速 緩存104響應於處理器102中的存儲器訪問而再分配。因此,只要鎖定的高速緩存行處於 鎖定狀態,它就仍然被分配給特定地址。 —旦被鎖定,高速緩存104的高速緩存行的鎖定狀態不會響應於由一致性控制模 塊110引起的高速緩存行一致性狀況的變化而變化。取而代之,在高速緩存104中維持鎖 定狀態,直到處理器102中的指令明確地改變它。因此,在由於存儲器134中的存儲器訪問 而導致鎖定的高速緩存行的一致性狀況從有效狀態變為無效狀態的情況下,高速緩存行仍 然是鎖定的。由於不需要軟體幹預來保持鎖定,因此自動將高速緩存行保持鎖定與現有技 術相比具有優勢。 參考圖2,示出了處理器202(對應於圖1的處理器102)、總線203(對應於圖1的 總線103)、高速緩存204 (對應於圖1的高速緩存104)和高速緩存一致性模塊210 (對應於 圖1的高速緩存一致性模塊110)的具體實施例的框圖。處理器202和高速緩存204每個 都連接到總線203。高速緩存一致性模塊210和處理器202連接到與圖1的前端總線105 對應的前端總線205。 總線203包括地址總線280、數據總線281、控制總線282 ("CTRL")和命中/未中 總線283 ( "H/M")。地址總線280在處理器202和高速緩存204之間傳遞地址信息,而數 據總線281傳遞要被加載或存儲的數據。控制總線282傳遞控制信息,並且命中/未中總 線283在處理器202和高速緩存204之間傳遞高速緩存命中信息。 處理器202包括加載/存儲控制模塊220、存儲器子系統(MSS) 222和總線接口單 元(BIU) 224。加載/存儲控制模塊220連接到存儲器子系統222,存儲器子系統222為處 理器202的模塊提供到總線203的接口,而總線接口單元224為處理器202的模塊提供到 總線205的接口。
6
加載/存儲控制模塊220與存儲器子系統222通信來控制處理器202的加載和存 儲操作。存儲器子系統222在需要時通過將控制信息提供給CTRL總線282和總線205來執 行加載和存儲操作。存儲器子系統222經由總線接口單元224向高速緩存一致性模塊210 提供一致性控制信息並且從高速緩存一致性模塊210接收一致性控制信息。
高速緩存204包括陣列控制模塊230、數據陣列232、最近最少使用的(LRU)陣列 234和標記/狀況陣列236。數據陣列232包括高速緩存204的高速緩存行。高速緩存行 被存儲為多個高速緩存行組,每個高速緩存行組與被稱為索引的存儲器地址的特定部分相 關聯。LRU陣列234存儲如下的信息,該信息指示高速緩存行組內的哪個高速緩存行是最近 最少使用的。在具體實施例中,LRU陣列234被實現為偽LRU。 標記/狀況陣列236存儲每個高速緩存行的標記信息和一致性信息。陣列控制模 塊230經由CTRL總線282接收加載和存儲控制信息。基於該加載和存儲控制信息,陣列控 制模塊訪問標記/狀況陣列236、 LRU陣列234和數據陣列232以執行加載和存儲操作。
在操作期間,存儲器子系統222經由控制總線282提供高速緩存204的高速緩存 行的狀況控制信息。狀況控制信息可以基於從高速緩存一致性模塊210接收到的一致性信 息,或者基於正由加載/存儲模塊220處理的指令,諸如加載/存儲指令和明確指示高速緩 存204的位置應當被鎖定的指令。基於該控制信息,陣列控制模塊230改變標記/狀況陣 列236中的相關聯高速緩存行的狀況信息。 加載/存儲控制模塊220與存儲器子系統222接口連接,以便執行由正在處理器 202中運行的軟體程序或例程提供的加載和存儲指令。為了執行加載指令,存儲器子系統 222經由地址總線280將地址提供給高速緩存204。響應於接收該地址,陣列控制模塊230 基於該地址將索引值提供給標記/狀況陣列236,標記/狀況陣列236提供與如下高速緩 存行組的高速緩存行相關聯的一組標記值和狀況信息,該高速緩存行組對應於該索引。基 於所接收的標記和狀況值,陣列控制模塊230確定高速緩存行是否已經被分配給該地址, 以及該高速緩存行是否存儲有效數據。如果已將存儲有效數據的高速緩存行分配給該地址 (即,高速緩存命中),則陣列控制模塊230在命中/未中總線283上指示命中並且從數據 陣列232中檢索所請求的數據。經由數據總線281將所檢索的數據提供給處理器202。
如果標記/狀況陣列236指示在數據陣列232中不存在與提供的地址相關聯的高 速緩存行,或者如果在數據陣列232中存在具有無效數據的與提供的地址相關聯的高速緩 存行,則相對於該加載指令發生了高速緩存未中。如果發生高速緩存未中,則陣列控制模塊 230在命中/未中總線283上指示未中,向存儲器子系統222通知應當從存儲器檢索所請求 的數據。響應於高速緩存未中,存儲器子系統222從其它地方檢索所請求的數據,並且當接 收到數據時通過執行存儲操作將它存儲在高速緩存204中。 為了執行存儲操作,在發生高速緩存未中的情況下檢索數據之後或者響應於加載 /存儲控制模塊220中的存儲指令,存儲器子系統經由地址總線280將與要被存儲的數據相 關聯的地址提供給高速緩存204。經由數據總線281提供要被存儲的數據。為了存儲數據, 陣列控制模塊230訪問標記/狀況陣列以確定數據陣列232中的有效或鎖定的高速緩存行 是否已經被分配給該接收的地址。如果是這樣的話,陣列控制模塊230將該訪問處理為引 起高速緩存命中,並且將接收的數據存儲在由標記/狀況陣列236指示的數據陣列232中 的高速緩存行中。如果在數據陣列232中不存在已經與該地址相關聯的高速緩存行,則陣
7列控制模塊230存儲LRU陣列234,以便確定數據陣列232中的用來存儲該數據的高速緩存 器線。 響應於明確鎖定存儲器地址的指令的執行,加載/存儲控制模塊220可以向存儲 器子系統222指示應當鎖定與存儲器地址相關聯的高速緩存行。為了鎖定高速緩存行,存 儲器子系統222經由CTRL總線282發送控制信息並且經由地址總線280發送存儲器地址。 響應於接收存儲器地址,陣列控制模塊230確定數據陣列232的高速緩存行是否與存儲器 地址相關聯。如果是這樣的話,陣列控制模塊設置存儲在標記/狀況陣列236中的與高速 緩存行相關聯的狀況信息的狀態,以便指示高速緩存行被鎖定。鎖定狀況指示符(諸如圖 4討論的專用鎖定位)可以指示標記/狀況陣列236中的高速緩存行的鎖定狀態。
如果高速緩存行不與要被鎖定的存儲器地址相關聯,則陣列控制模塊230向存儲 器子系統222發送請求,以便從除了高速緩存204之外的其它位置檢索與該存儲器地址相 關聯的數據。在數據已被檢索並且存儲在數據陣列232的高速緩存行中之後,陣列控制模 塊230設置與高速緩存行相關聯的狀況信息的狀態,從而指示高速緩存行被鎖定。
在存儲操作期間,鎖定的高速緩存位置不能夠被LRU陣列234識別出以用於與其 它存儲位置相關聯。此外,即使標記/狀況陣列236指示高速緩存位置處的數據是無效的, 在標記/狀況陣列236中也維持該高速緩存位置的鎖定狀態。因此,鎖定的高速緩存行保 持鎖定,直到由加載/存儲控制模塊220中的指令明確地將它解鎖。 參考圖3,示出了對應於圖2的高速緩存204的具體實現形式的高速緩存304的 具體實施例的框圖。高速緩存304包括陣列控制模塊330、數據陣列332、最近最少使用的 (LRU)陣列334以及標記/狀況陣列336。陣列控制模塊330包括路計算模塊340、標記比 較模塊342和索引生成模塊344。路計算模塊340包括連接到命中/未中(H/M)總線383 的輸入、連接到總線396 (T)的輸入、連接到總線382 (CTRL)的輸入、連接到總線398 (WAY_T) 的輸入以及連接到總線393(LRU)的輸入。路計算模塊340還包括連接到總線394(WAY)的 輸出。 標記比較模塊342包括連接到總線395 (TAG)的輸入和連接到總線392 (STATUS/ TAGX8)的輸入。標記比較模塊342還包括連接到H/M總線383的輸出、連接到T總線396 的輸出和連接到WAY_T總線398的輸出。索引生成模塊344包括連接到總線380 (ADDRESS) 的輸入和連接到總線382 (CTRL)的輸入。索引生成模塊344還包括連接到總線391 (INDEX) 的輸出和連接到TAG總線395的輸出。 數據陣列332包括連接到WAY總線394的輸入和連接到INDEX總線391的輸入。 數據陣列332還包括連接到總線381 (DATA)的輸入/輸出。LRU陣列334包括連接到INDEX 總線391的輸入和連接到LRU總線393的輸出。 標記/狀況陣列336包括連接到INDEX總線391的輸入、連接到CTRL總線382的 輸入和連接到STATUS/TAGX8總線392的輸出。標記/狀況陣列336存儲標記/狀況信息, 諸如表示特定高速緩存行的標記信息和狀況信息的標記/狀況信息350。標記/狀況信息 350包括標記信息352、有效性信息354、修改信息356、共享信息358和鎖定信息360。
標記/狀況陣列336中的狀況信息可以由CTRL總線382上提供的控制信息基於 一致性信息或基於處理器中執行的指令而改變。例如,一致性控制模塊210(圖2)可以經 由CTRL總線382指示應當將有效信息354的狀況設置為指示與標記信息350相關聯的高速緩存行是無效的。類似地,加載/存儲控制模塊220(圖2)中執行的指令可以經由CTRL 總線382明確地設置鎖定信息360的狀況。 索引生成模塊344解碼ADDRESS總線380上提供的地址。基於該地址,索引生成模 塊344在TAG總線395上提供標記並且在INDEX總線391上提供索引。索引生成模塊344 還經由CTRL總線382接收控制信息,包括指示接收的地址是否與加載或存儲操作相關聯的 信息。索引生成模塊可以經由TAG總線395提供此控制信息。 標記/狀況陣列336經由INDEX總線391接收索引信息。基於該索引信息,標記/ 狀況陣列336經由STATUS/TAGX8總線392提供與索引信息相關聯的每個高速緩存行的標 記信息和狀況信息。在具體實施例中,高速緩存304是8路關聯高速緩存,因此經由STATUS/ TAGX8總線392提供8組標記和狀況信息。 標記比較模塊342將經由TAG總線395接收的標記信息與經由STATUS/TAGX8總 線392接收的標記信息進行比較,以便確定是存在高速緩存命中還是高速緩存未中。標記 比較模塊342經由H/M總線383指示高速緩存命中或高速緩存未中。此外,如果發生高速 緩存命中,則標記比較模塊342經由WAY_T總線398提供指示與該命中標記相關聯的高速 緩存行的信息。此外,標記比較模塊342基於接收的與該命中標記相關聯的狀況信息來確 定與高速緩存命中相關聯的高速緩存行是否為無效和鎖定的高速緩存行,並且經由T總線 396提供指示高速緩存行的無效和鎖定狀況的信息。 LRU陣列334接收經由INDEX總線391提供的索引。基於接收的索引,LRU陣列 334確定與該索引相關聯的最近最少使用的高速緩存行,並且經由LRU總線393指示高速緩 存行。在具體實施例中,LRU陣列334使用偽LRU程序來確定最近最少使用的高速緩存行。
路計算模塊340在CTRL總線382上接收指示是否正在執行加載或存儲操作的信 息,並且在H/M總線383上接收指示該加載或存儲操作是否已經導致高速緩存命中或高速 緩存未中的信息。如果發生高速緩存命中,則路計算模塊340訪問經由WAY_T總線398接 收的高速緩存行信息,以便確定應當加載或存儲哪個高速緩存行。如果對於存儲操作發生 高速緩存未中,則路計算模塊340訪問經由LRU總線393提供的信息,以便確定應當存儲哪 個高速緩存行。路計算模塊340基於由H/M總線383提供的命中/未中信息、由CTRL總線 382提供的加載/存儲信息以及由T總線396提供的有效-鎖定信息,來選擇高速緩存行。
例如,如果接收的信息指示加載操作和高速緩存命中,則路計算模塊340選擇經 由WAY_T總線398提供的高速緩存行信息。如果接收的信息指示加載操作和高速緩存未中, 則路計算模塊340不選擇高速緩存行信息,因為請求的數據沒有存儲在高速緩存中並且必 須從存儲器中檢索。 如果接收的信息指示存儲操作和高速緩存未中,並且T總線396指示沒有無效且 鎖定的高速緩存行與接收的地址相關聯,則路計算模塊選擇經由LRU總線393提供的高速 緩存行信息。如果接收的信息指示存儲操作和高速緩存未中,並且T總線396指示無效且 鎖定的路與接收的地址相關聯,則路計算模塊342選擇經由WAY_T總線398提供的高速緩 存行信息。如果接收的信息指示高速緩存命中,則路計算模塊342選擇經由WAY_T總線398 提供的高速緩存行信息。 數據陣列332經由WAY總線394接收高速緩存行信息以及指示正在執行加載操作 還是存儲操作的信息。如果發生加載操作,則數據陣列332在DATA總線381上提供在指示
9的高速緩存行中存儲的數據。如果發生存儲操作,數據陣列332將在DATA總線381上提供 的數據存儲在指示的高速緩存行中。 將理解,高速緩存行的狀況位可以用於確定陣列控制模塊330將如何處理高速緩 存行。例如,參考圖4,在表400的列401-404中列出了用於有效(V)、修改(M)、共享(S) 和鎖定(L)的高速緩存狀況位。如圖所示,將理解,一組狀況位值可以對應於多於一個的狀 態項,如這裡所使用的。例如,具有表400的行410中所示的狀況位值的高速緩存行可以被 認為是處於有效狀態、修改狀態、共享狀態和未鎖定狀態以及它們的組合。類似地,具有表 400的行412中所示的狀況位值的高速緩存行可以被認為是處於無效狀態、未修改狀態、排 它狀態和鎖定狀態。因此,將理解,基於特定的一組狀況位狀態,可以認為高速緩存行處於 有效且未鎖定(有效/未鎖定)狀態(如列405所示)、有效且鎖定(有效/鎖定)狀態 (如列406所示)、無效且未鎖定(無效/未鎖定)狀態(如列407所示)、或者無效且鎖定 (無效/鎖定)狀態(如列408所示)。將理解,不是該表中闡述的所有狀態對於所有的一 致性方案都可以是有效的。 高速緩存行的狀況可以用於確定高速緩存如何處理高速緩存行。例如,如果高速 緩存行的狀況是無效且鎖定的(如列408所示),則高速緩存可以防止該高速緩存行被與不 同的存儲器地址相關聯的數據替代,從而保持該高速緩存行的鎖定狀況。
參考圖5,示出了描述高速緩存中的高速緩存行的可能狀態的具體實施例的狀態 圖500。狀態圖500示出了高速緩存行的四個特定狀態未分配狀態502、有效/未鎖定狀 態504、無效/鎖定狀態506和有效/鎖定狀態508。如圖所示,高速緩存行可以開始於未 分配狀態502(諸如在重置操作之後),其指示還沒有為高速緩存行分配存儲器地址。未分 配狀態還可以對應於高速緩存行處於無效/未鎖定狀態中的狀態。 如果在未分配狀態502下通過加載或存儲操作來為高速緩存行分配存儲器地址, 則高速緩存行的狀態移到有效/未鎖定狀態504,例如,高速緩存行的有效位(V)被斷言 (assert)並且高速緩存行的鎖定位被求反(negate)。如果在未分配狀態502下接收到軟 件鎖定指令,則為高速緩存行分配存儲器地址,從除了該高速緩存之外的存儲器中檢索與 該存儲器地址相關聯的數據並且將其存儲在高速緩存行中,並且將該高速緩存行的狀態設 置為有效/鎖定狀態508,例如,高速緩存行的有效位(V)和鎖定位(L)兩個都被斷言。在 可替代實施例(未示出)中,響應於軟體鎖定不檢索數據,並且將高速緩存行的狀態設置為 無效/鎖定狀態506,例如,高速緩存行的有效位(V)被求反並且高速緩存行的鎖定位(L) 被斷言。 在有效/未鎖定狀態504下,如果接收到無效指示(諸如由於外部模塊對與該存 儲器地址相關聯的數據的訪問或者由於使其無效的軟體指令),則將高速緩存行的狀態設 置為無效/未鎖定狀態502,例如,高速緩存行的有效位(V)被求反。如果在有效/未鎖定 狀態504下接收到軟體鎖定指令,則高速緩存行的狀態被設置為有效/鎖定狀態508,例如, 高速緩存行的鎖定位(L)被斷言。 如果在有效/鎖定狀態508下接收到解鎖存儲器地址的軟體指令,則將高速緩存 行的狀態設置為有效/未鎖定狀態504,例如,高速緩存行的鎖定位(L)被求反。如果在有 效/鎖定狀態508下指示有使其無效的事件(諸如由外部模塊對與該存儲器地址相關聯 的數據的訪問)或使其無效的軟體指令,則將高速緩存行的狀態設置為無效且鎖定的狀態506,例如,高速緩存行的有效位(V)被求反。 如果在無效/鎖定狀態506下接收到加載/存儲操作,則將高速緩存行的狀態設 置為有效/鎖定狀態,例如,高速緩存行的有效位(V)被斷言。如果在無效/鎖定狀態506下 接收到解鎖高速緩存行的軟體指令,則將高速緩存行的狀態設置為無效/未鎖定狀態502, 例如,高速緩存行的鎖定位(L)被求反。 參考圖6,示出了處理高速緩存訪問的方法的具體實施例的流程圖。在塊602處, 確定高速緩存訪問是加載操作還是存儲操作。如果發生加載操作,則該方法流移到塊604, 並且確定該加載操作是導致高速緩存命中還是高速緩存未中。如果發生高速緩存命中,則 該方法流前進到塊606並且從發生高速緩存命中的高速緩存行中提供數據,並且該方法流 前進到塊624並且所示的方法結束。 如果在塊604中確定了高速緩存未中,則該方法流移到塊608並且從除了該高速 緩存之外的存儲器中檢索數據。 一旦檢索到數據,則該方法流前進到塊610,使得檢索的數 據可以被存儲在高速緩存中。 回到塊602,如果確定了高速緩存訪問是存儲操作,則該方法流移到塊610,並且 確定與該存儲操作相關聯的地址是導致高速緩存命中、高速緩存未中還是高速緩存過期 (stale)命中。高速緩存過期命中指的是存在對應於與該存儲操作相關聯的地址的、鎖定的 高速緩存行,但是該鎖定的高速緩存行存儲無效的數據。 如果發生高速緩存命中,則該方法流移到塊620並且確定與該高速緩存命中相關 聯的高速緩存行。該方法流移到塊622並且將與該存儲相關聯的數據存儲到該高速緩存 行。該方法流前進到塊624並且該方法結束。 回到塊610,如果高速緩存訪問導致過期命中,則該方法流移到塊618並且確定與 該地址相關聯的無效/鎖定高速緩存行。該方法流前進到塊622,其中將數據存儲在該高速 緩存行中。 如果在塊610中確定了高速緩存未中,則該方法流移到塊612,並且基於一組高速 緩存行中的哪一個高速緩存行是最近最少使用的(LRU)來確定高速緩存行。在塊622中, 將與該高速緩存訪問相關聯的數據存儲在確定的高速緩存行中。 因而,所示的方法允許即使當與高速緩存行相關聯的數據是無效的時也保持該高 速緩存行的鎖定狀況。這減少了當數據被無效時軟體再鎖定先前鎖定的高速緩存行的需 要,從而提高了軟體效率。 在本文件中,諸如"第一"和"第二"等的關係術語可以被單獨使用以將一個實體 或動作與另一個實體或動作區分開來,而不一定要求或暗示在這樣的實體或動作之間存在 任何實際的這樣的關係或順序。術語"包括"、"包含"或其任何其它變體意圖覆蓋非排它的 包含,使得包括一列要素的過程、方法、物品或裝置不僅包括那些元素,而且可以包括沒有 明確列出的或者為這種過程、方法、物品或裝置所固有的其它要素。"包括"之後的要素毫無 更多約束地不排除在包括該要素的過程、方法、物品或裝置中附加的等效要素的存在。術語 "或"意圖覆蓋包括性的"或",使得如果有條件的"或"的兩個條件都滿足的話,則該條件滿 足。術語"範圍"可以包括僅僅包括單個值的範圍。 這裡使用的術語"另一個"被定義為至少第二個或更多個。這裡使用的術語"包 括"、"具有"或其任何變體被定義為包括。這裡參考電光技術使用的術語"耦接"被定義為
11連接,但是不一定是直接連接而且不一定是機械連接。 使用術語"斷言"或"設置"和"求反"(或"解除斷言"或"清除")來指代分別將 信號、狀況位或類似的裝置變為它的邏輯真或邏輯假狀態。如果邏輯真狀態為邏輯電平一, 則邏輯假狀態為邏輯電平零。並且如果邏輯真狀態為邏輯電平零,則邏輯假狀態為邏輯電平一。 這裡使用的術語"總線"用來指代可以用來傳送一個或更多個各種類型的信息 (諸如數據、地址、控制或狀況)的多個信號或導體。這裡討論的導體可以被示出或描述為 單個導體、多個導體、單向導體或雙嚮導體。但是,不同的實施例可以改變導體的實現方式。 例如,可以使用分開的單向導體而不是雙嚮導體,反之亦然。此外,多個導體可以被替換為 串聯或以時分復用方式傳送多個信號的單個導體。同樣地,傳送多個信號的單個導體可以 被分成傳送這些信號的子集的各個不同的導體。因此,對於傳送信號而言存在許多種選擇。
考慮這裡公開的內容的說明和實踐,該公開內容的其它實施例、用途和優點對本 領域技術人員而言將是清楚的。例如,儘管高速緩存中的存儲操作已被描述為將數據直接 寫到高速緩存行中,但是其它高速緩存可以通過從高速緩存中讀取高速緩存行、利用要被 存儲的數據修改高速緩存行、並且將修改的高速緩存行寫到高速緩存中來執行存儲操作。 因此,該說明書和附圖應當被認為僅僅是示範性的,因此該發明的範圍意圖僅僅由以下權 利要求及其等同物來限定。
權利要求
一種方法,包括以下步驟當高速緩存中的高速緩存行處於第一狀態時,接收第一指示,所述第一指示是所述高速緩存外部的對應於所述高速緩存行的存儲位置與訪問請求相關聯,所述第一狀態表明所述高速緩存行是有效且鎖定的;以及響應於接收所述第一指示,自動地將所述高速緩存行的狀態從所述第一狀態變為第二狀態,所述第二狀態表明所述高速緩存行中的數據為無效且鎖定的。
2. 如權利要求1所述的方法,還包括以下步驟響應於第一指令在第一處理器中的執 行,將所述高速緩存行的狀態從第三狀態變為所述第二狀態,所述第三狀態表明所述高速 緩存行中的數據是有效且未鎖定的。
3. 如權利要求2所述的方法,其中響應於第二指令在第二處理器中的執行來接收所述 第一指示。
4. 如權利要求1所述的方法,其中所述第一狀態還表明所述高速緩存外部的數據已被 修改。
5. 如權利要求1所述的方法,其中響應於第一指令在第一處理器中的執行來接收所述 第一指示。
6. 如權利要求1所述的方法,其中所述第二狀態還表明所述數據被共享。
7. 如權利要求1所述的方法,其中所述第二狀態還表明所述數據已被修改。
8. 如權利要求1所述的方法,還包括以下步驟響應於第二指令在所述第一處理器中 的執行,自動地將所述高速緩存行的狀態從第三狀態改變回到所述第二狀態。
9. 如權利要求8所述的方法,其中所述第二指令是存儲指令。
10. 如權利要求1所述的方法,其中自動地將高速緩存行的狀態從第二狀態變為第三狀態的步驟還包括基於模式位的狀態改變高速緩存行的狀態。
11. 如權利要求l所述的方法,還包括以下步驟響應於第二指令在所述第一處理器中 的執行,自動地將所述高速緩存行的狀態從第三狀態變為第四狀態,所述第四狀態表明所 述高速緩存行是無效且未鎖定的。
12. 如權利要求11所述的方法,還包括以下步驟響應於第三指令在所述第一處理器 中的執行,自動地將所述高速緩存行的狀態從所述第四狀態變為所述第二狀態。
13. 如權利要求11所述的方法,還包括以下步驟響應於第三指令在所述第一處理器 中的執行,自動地將所述高速緩存行的狀態從所述第四狀態變為所述第三狀態。
14. 如權利要求l所述的方法,還包括以下步驟 接收與所述高速緩存中的存儲訪問相關聯的地址; 接收與所述存儲訪問相關聯的數據;以及響應於確定所述高速緩存行處於第二狀態且所述高速緩存行與所述地址相關聯,將所 述數據存儲在所述第一高速緩存行中。
15. 如權利要求14所述的方法,還包括以下步驟響應於確定所述高速緩存不包括與 所述地址相關聯的任何高速緩存行,確定可用的高速緩存行並且將所述數據存儲在所述可 用的高速緩存行中。
16. 如權利要求15所述的方法,其中確定可用的高速緩存行的步驟包括響應於確定 所述高速緩存行處於所述第二狀態,確定所述高速緩存行不可用。
17. —種設備,包括 處理器;高速緩存,耦接到所述處理器,所述高速緩存包括 數據陣列,被配置為存儲高速緩存行;狀況模塊,被配置為存儲與所述高速緩存行相關聯的狀態信息;陣列控制模塊,耦接到所述狀況模塊,所述陣列控制模塊被配置為響應於鎖定指令在 所述處理器中的執行,將所述狀態信息變為第一狀態,所述第一狀態表明所述高速緩存行 為有效且鎖定的,並且所述陣列控制模塊被配置為響應於接收所述高速緩存外部的並且對 應於所述高速緩存行的數據位置與訪問請求相關聯的指示,自動地將所述狀態信息從所述 第一狀態變為第二狀態,所述第二狀態表明所述高速緩存行中的數據是無效且鎖定的。
18. 如權利要求17所述的設備,其中所述陣列控制模塊被配置為響應於第二指令在所 述處理器中的執行,自動地將所述狀態信息從所述第二狀態變為所述第一狀態。
19. 如權利要求17所述的設備,其中所述陣列控制模塊被配置為響應於第二指令在所 述處理器中的執行,自動地將所述狀態信息從所述第二狀態變為第三狀態,所述第三狀態 表明所述高速緩存行是無效且未鎖定的。
20. 如權利要求18所述的設備,其中所述高速緩存是回寫式高速緩存。
全文摘要
公開了一種用於鎖定高速緩存的高速緩存行的方法和設備。該方法包括響應於接收指示而自動地將高速緩存行的狀態從有效且鎖定狀態變為無效且鎖定狀態(508),該指示是該高速緩存(104)外部的並且對應於該高速緩存行的存儲位置(134)與處理器(120)或其它數據訪問模塊的訪問請求相關聯。因而,即使在鎖定的高速緩存行中的數據被無效之後,也保持高速緩存行的鎖定狀態。通過保持該無效且鎖定的狀態,高速緩存行不可用於高速緩存的再分配。這允許變為無效的鎖定的高速緩存行保持鎖定,而沒有用於周期性地確定該鎖定是否已經由於高速緩存行的無效而丟失的額外軟體開銷。
文檔編號G06F12/00GK101772759SQ200880101685
公開日2010年7月7日 申請日期2008年6月17日 優先權日2007年8月2日
發明者D·F·格林伯格, G·L·維森亨特, K·C·斯達瑟爾, K·M·布魯斯, M·B·斯米特勒, M·D·斯尼德爾, S·R·拉曼 申請人:飛思卡爾半導體公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀