專利名稱:用于dma、任務(wù)終止和同步操作的緩存一致保持的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲器緩存控制結(jié)構(gòu)及執(zhí)行其一致操作的方法。
技術(shù)背景在例如數(shù)據(jù)處理系統(tǒng)、消費(fèi)電子、計算機(jī)、汽車等的許多應(yīng)用中 使用數(shù)字?jǐn)?shù)據(jù)處理系統(tǒng)。例如,個人計算機(jī)(PC)使用復(fù)雜的數(shù)字處 理功能來提供廣泛用戶應(yīng)用的平臺。數(shù)字?jǐn)?shù)據(jù)處理系統(tǒng)典型地包括輸入/輸出功能、指令和數(shù)據(jù)存儲器 以及一個或多個數(shù)據(jù)處理器,例如微控制器、微處理器或數(shù)字信號處 理器。處理系統(tǒng)的性能的一個重要參數(shù)是存儲器性能。對于最佳性能, 期望存儲器是大的、快速的并優(yōu)選是廉價的。很遺憾,這些特性趨于 是沖突的需求,并且當(dāng)設(shè)計數(shù)字系統(tǒng)時需要適宜的折中。為了改進(jìn)處理系統(tǒng)的存儲器性能,已經(jīng)開發(fā)了尋求開發(fā)不同類型 的存儲器的單個優(yōu)點(diǎn)的復(fù)雜的存儲器結(jié)構(gòu)。具體,普遍與較大的、較 慢的并且較廉價的主存儲器結(jié)合使用快速緩存存儲器。例如,在PC中,以包括典型不同大小和速度的存儲器的存儲器層 次來組織存儲器。因此PC可以典型地包括大的、廉價但是慢的主處理 器,并此外具有一個或更多的緩存存儲器級,包括相對小并且昂貴但 是快速的存儲器。在操作期間,來自主存儲器的數(shù)據(jù)被動態(tài)地復(fù)制到 緩存存儲器中以允許快速讀取周期。相似地,數(shù)據(jù)可以被寫入緩存存儲器中而不是主存儲器中,由此允許快速的寫入周期。因此,緩存存儲器動態(tài)地與主存儲器的不同存儲器位置相關(guān)聯(lián), 并且很清楚主存儲器和緩存存儲器之間的接口和交互對于可接受的性 能來說是至關(guān)重要的。因此,進(jìn)行了關(guān)于緩存操作的重要研究,并開 發(fā)了當(dāng)數(shù)據(jù)寫入緩存存儲器而不是主存儲器或從緩存存儲器讀取時, 以及當(dāng)在緩存存儲器和主存儲器之間交換數(shù)據(jù)時進(jìn)行控制的各種方法 和算法。典型地,無論何時處理器執(zhí)行讀取操作,緩存存儲器系統(tǒng)首先檢 査相應(yīng)的主存儲器地址是否當(dāng)前與緩存相關(guān)聯(lián)。如果緩存存儲器包含 對于主存儲器地址的有效數(shù)據(jù)值,則該數(shù)據(jù)值被緩存放置在系統(tǒng)的數(shù) 據(jù)總線上,并且讀取周期執(zhí)行而沒有任何等待周期。然而,如果緩存 存儲器不包含主存儲器地址的有效數(shù)據(jù)值,則執(zhí)行主存儲器讀取周期, 并從主存儲器取回數(shù)據(jù)。典型地,主存儲器讀取周期包括一個或多個 等待周期,由此減緩了處理。處理器可以從緩存存儲器收到數(shù)據(jù)的存儲器操作典型地被稱為緩 存命中,而處理器不能從緩存存儲器接收數(shù)據(jù)的存儲器操作典型地稱 為緩存缺失。典型地,緩存缺失不僅僅導(dǎo)致處理器從主存儲器取回數(shù) 據(jù),而且還導(dǎo)致主存儲器和緩存之間的大量數(shù)據(jù)傳輸。例如,如果訪 問給定的地址導(dǎo)致緩存缺失,可將隨后的存儲器位置傳輸?shù)骄彺娲鎯?器。由于處理器頻繁地訪問連續(xù)的存儲器位置,緩存存儲器包括期望 的數(shù)據(jù)的概率因此通常增加。緩存存儲器系統(tǒng)典型地分為緩存線,其對應(yīng)于緩存存儲器的解析度。在已知為組關(guān)聯(lián)(set associative)緩存系統(tǒng)的緩存系統(tǒng)中,多個緩 存線分組為不同的組,其中每一個組對應(yīng)于到主存儲器地址的較低數(shù) 據(jù)位的固定映射。每一個緩存線形成組的極端例子稱為直接映射緩存, 并導(dǎo)致每個主存儲器地址映射到一個特定緩存線。所有緩存線屬于單 個組的另一極端例子稱為完全聯(lián)合緩存,并且這允許每一緩存線映射到任意主存儲器位置。為了保持追蹤每一緩存線與哪個主存儲器地址相關(guān)聯(lián)(如果有的 話),緩存存儲器系統(tǒng)典型地包括數(shù)據(jù)陣列,其對于每一緩存線保持 指示該線和主存儲器之間的當(dāng)前映射的數(shù)據(jù)。具體,數(shù)據(jù)陣列典型地 包括相關(guān)聯(lián)的主存儲器地址的更高數(shù)據(jù)位。該信息典型地稱為標(biāo)記符 (tag),以及該數(shù)據(jù)陣列稱為標(biāo)記陣列。很明顯,緩存存儲器的控制是非常重要的,特別是對于管理主存 儲器和緩存存儲器之間的對應(yīng)來說至關(guān)重要。例如,如果在主存儲器 中修改數(shù)據(jù)而緩存存儲器的相應(yīng)數(shù)據(jù)沒有被更新或指定為無效數(shù)據(jù), 那么將發(fā)生災(zāi)難性的后果。相似地,如果已經(jīng)寫入緩存存儲器的數(shù)據(jù) 在它在緩存存儲器中被覆蓋之前或者在直接訪問主存儲器的相應(yīng)位置 之前沒有被傳輸?shù)街鞔鎯ζ?,那么?shù)據(jù)差異可導(dǎo)致錯誤。因此處理系 統(tǒng)的可靠性很大地依賴于緩存的控制。因此,在適宜的時機(jī)執(zhí)行一致 操作,以消除或減小緩存存儲器和主存儲器之間的差異不導(dǎo)致不期望 的影響的概率。例如,直接存儲器訪問(DMA)模塊能夠訪問直接訪問主存儲器。 DMA可以例如是部分硬盤接口,并用于在硬盤寫入操作期間將數(shù)據(jù)從 主存儲器傳輸?shù)接脖P。在可以執(zhí)行DMA操作之前,寫入緩存存儲器的 所有數(shù)據(jù)都被傳輸?shù)街鞔鎯ζ魇侵匾摹R虼?,在硬盤寫操作之前, 處理器系統(tǒng)優(yōu)選地執(zhí)行一致操作,其中將已經(jīng)寫入緩存存儲器但是沒 有寫入主存儲器的所有數(shù)據(jù)傳輸?shù)街鞔鎯ζ?。使用盡可能小的復(fù)雜性 和時間消耗來執(zhí)行一致操作,以使得系統(tǒng)用于正常操作,并減小系統(tǒng) 的計算負(fù)擔(dān)。然而,通常這種一致操作是復(fù)雜的、耗時的、耗功率的和/或需要 復(fù)雜的硬件,由此增加了成本。例如,如果將主存儲器的給定地址塊 傳輸?shù)接脖P,那么傳統(tǒng)方法包括逐步經(jīng)過主存儲器的每一個位置,并檢查緩存是否包括該位置的更新的值。由于主存儲器地址塊可以是非 常大的,這是一個很麻煩的過程,其典型地對與軟件實(shí)現(xiàn)來說非常耗 時,并對硬件實(shí)現(xiàn)有高的復(fù)雜性要求。通常有兩種實(shí)現(xiàn)一致功能的方法硬件和軟件一致機(jī)制。硬件方 法包括增加調(diào)查(snoop)機(jī)制,用于每個基于緩存的系統(tǒng)。調(diào)査機(jī)制 追蹤由其他主設(shè)備(例如DMA處理器)對主存儲器進(jìn)行的所有訪問。當(dāng)調(diào)査機(jī)制檢測到對緩存中的有效數(shù)據(jù)的訪問時,它通知主存儲器。 對于對主存儲器的寫入,緩存數(shù)據(jù)可以自動被無效,以及對于讀取, 數(shù)據(jù)可以通過緩存而不是主存儲器被饋送到請求者。軟件一致方法基于通過軟件使用戶清除(flush)、無效和同步緩存。這是通過增加控制器完成的,該控制器通過軟件結(jié)構(gòu)執(zhí)行這些操作。硬件一致機(jī)制的 主要優(yōu)點(diǎn)是它是自動完成的,即,用戶不需要管理操作。硬件一致機(jī) 制的主要缺點(diǎn)是它實(shí)現(xiàn)起來非常復(fù)雜、它具有高功耗以及用盡半導(dǎo)體的其他區(qū)域。在低成本低功率系統(tǒng)例如數(shù)字信號處理器(DSP)中,硬 件方案不是適宜的。在歐洲專利協(xié)定申請EP 1182566A1中描述了緩存一致操作的例 子。該文獻(xiàn)描述了基于限定主存儲塊的開始和結(jié)束地址并隨后遍歷由 緩存線的解析度的范圍內(nèi)的所有地址的緩存保持操作。對于每一個步 驟,主存儲器地址與存儲在緩存存儲器標(biāo)記陣列中的所有值相比較, 并且如果檢測到匹配,則執(zhí)行一致操作。然而,這導(dǎo)致非常耗時的處 理。此外,盡管可以通過引入主存儲器地址和標(biāo)記陣列之間的并行硬 件比較來減少處理時間,但是這增加了硬件復(fù)雜性并因此增加成本。此外, 一致操作的持續(xù)時間取決于所處理的存儲器塊的大小。因 此,隨著存儲器范圍的大小增加,必須遍歷增加的地址數(shù)目,由此增 加了持續(xù)時間。這是顯著的缺點(diǎn),特別是對于實(shí)時系統(tǒng),其中處理持 續(xù)時間的不確定性顯著地使得不同處理的實(shí)時管理變得復(fù)雜。US2002 065980描述了具有多個處理器的數(shù)字系統(tǒng),包括與每個 處理器相關(guān)聯(lián)的私有一級緩存,以及具有每條目多個段的共享二級緩 存,以及三級物理存儲器。US2002 065980公開了使用兩個限定器 (qualifier)來限定緩存線上的"匹配"的機(jī)制。EP1030243描述了虛擬索引,虛擬標(biāo)記緩存,其使用可中斷的硬 件清除功能來在環(huán)境切換期間清除緩存中的"臟的條目"。MAX計數(shù) 器和MIN寄存器限定了臟的緩存位置范圍。在硬件清除功能期間, MAX計數(shù)器向下計數(shù),而如果條目被標(biāo)記為臟的,將在由MAX計數(shù) 器給出的地址的緩存條目寫入主存儲器。特別地,如果發(fā)生中斷,MAX 計數(shù)器被禁用,直到在服務(wù)了該中斷之后發(fā)出隨后的清除請求。因此,改進(jìn)的存儲器緩存控制結(jié)構(gòu)、處理系統(tǒng)和在存儲器緩存上 執(zhí)行一致操作的方法將是有利的,具體地,允許增加的靈活性、減小 的復(fù)雜性、減小的耗時、減小的成本、增加的可靠性和/或改進(jìn)的性能 的系統(tǒng)將是有利的。發(fā)明內(nèi)容本發(fā)明提供如所附的權(quán)利要求所述的存儲器緩存控制結(jié)構(gòu)、存儲 器緩存系統(tǒng)、處理系統(tǒng)合存儲介質(zhì)。因此,本發(fā)明尋求有益地減輕、減少或消除上述的一個或多個缺 點(diǎn),單獨(dú)地或者以任何組合。
現(xiàn)在將參照附圖描述本發(fā)明的例子實(shí)施例,在附圖中 圖1是根據(jù)本發(fā)明的實(shí)施例的包括緩存存儲器系統(tǒng)的處理器系統(tǒng) 的說明;圖2是緩存存儲器的結(jié)構(gòu)的說明;圖3說明根據(jù)本發(fā)明的實(shí)施例的緩存存儲器系統(tǒng);圖4說明根據(jù)本發(fā)明的實(shí)施例的用于緩存存儲器系統(tǒng)的標(biāo)記陣列 的例子;以及圖5說明根據(jù)本發(fā)明的實(shí)施例的執(zhí)行緩存存儲器一致操作的方法的流程圖。
具體實(shí)施方式
圖1是根據(jù)本發(fā)明的實(shí)施例的包括緩存存儲器系統(tǒng)的處理器系統(tǒng) 的說明。處理系統(tǒng)100包括處理器101和主存儲器103,該主存儲器103 存儲在運(yùn)行的應(yīng)用程序中由處理器101使用的指令和數(shù)據(jù)。處理器101 可以例如是微處理器或數(shù)字信號處理器,并且主存儲器在本實(shí)施例中 是動態(tài)RAM(隨機(jī)存取存儲器)。主存儲器103相對大,并可以在1 G 字節(jié)的數(shù)量級上。處理器101和主存儲器103連接到緩存存儲器系統(tǒng) 105,其連同主存儲器103形成處理系統(tǒng)100的分級存儲器結(jié)構(gòu)。緩存存儲器系統(tǒng)105包括緩存存儲器107和緩存控制器109。緩存 存儲器107在本實(shí)施例中是靜態(tài)RAM,它比主存儲器103所使用的動 態(tài)RAM顯著地更快。然而,緩存存儲器107比主存儲器103顯著地更 小,并可以例如在256 K字節(jié)的數(shù)量級上。緩存控制器109控制分級 存儲器系統(tǒng)的操作,并具體控制緩存存儲器系統(tǒng)105的操作以及對主 存儲器103的訪問。在操作中,由處理器101運(yùn)行的任務(wù)通過尋址主存儲器103的地 址空間中的存儲器位置來訪問存儲器。這些存儲器訪問可以由緩存存 儲器系統(tǒng)105來服務(wù),或者可導(dǎo)致對主存儲器103的存儲器訪問。具 體,對于讀取操作,緩存控制器109確定緩存存儲器107是否包括該 特定主存儲器地址的有效數(shù)據(jù),并且如果是的話,取回該值并將該值 饋送到處理器101。具體,如果檢測到緩存匹配,則緩存存儲器系統(tǒng) 105將適宜的數(shù)據(jù)放置在數(shù)據(jù)總線上。如果緩存控制器109確定緩存存儲器107不包括該特定主存儲器地址的有效數(shù)據(jù),那么它從主存儲器103取回適宜的數(shù)據(jù)。具體,緩存控制器109可以使得主存儲器103將 適宜的數(shù)據(jù)放置在數(shù)據(jù)總線上。當(dāng)發(fā)生緩存缺失時,緩存控制器109進(jìn)一步將從主存儲器103取 回的數(shù)據(jù)加載到緩存存儲器107,由于相同的主存儲器地址在先前的訪 問之后經(jīng)常再次被訪問。由于主存儲器103的緩慢的相應(yīng)時間,典型 地斷言等待信號,由此在讀取過程中引入額外的等待狀態(tài)。因此,緩存命中將比緩存缺失導(dǎo)致更快的存儲器訪問。此外,由于在當(dāng)前存儲 器位置附近的存儲器位置被訪問的概率增加,緩存控制器109典型地 將從相鄰于該存儲器位置的存儲器位置傳輸數(shù)據(jù)。應(yīng)理解,盡管參照緩存控制器109作為單個隔離的功能模塊而描 述了本實(shí)施例,這僅僅是為了說明的簡明和簡潔,緩存控制器109可 以以任何適宜的方式來實(shí)現(xiàn)。具體,可以以硬件、軟件、固件或其組 合來實(shí)現(xiàn)緩存控制器109。此外,緩存控制器109可以例如與緩存存儲 器107、處理器101集成,或者是單獨(dú)的模塊。具體,緩存控制器109 的全部或者部分可以完全或部分地以在處理器101上運(yùn)行的軟件,或 以單獨(dú)的處理器或存儲管理單元來實(shí)現(xiàn)。圖2是緩存存儲器107的結(jié)構(gòu)的說明。在該例子中,緩存存儲器 107是直接映射的緩存存儲器,包括2k緩存線。在該例子中,每個緩 存線包括4數(shù)據(jù)字節(jié),以及主存儲尋址的解析度是1字節(jié)。在該例子 中說明k-3并且因此緩存包括32字節(jié)。應(yīng)理解,實(shí)際的緩存典型地更 加大。例如,當(dāng)前用于PC的緩存存儲器典型地包括每一緩存線中包括 16至32字節(jié),并且例如8192個緩存線(即k-13)的緩存。為了清楚起見,在特定例子中認(rèn)為主存儲器103包括lk字節(jié),對 應(yīng)于10位地址空間。應(yīng)理解,實(shí)際的主存儲器典型地更加大并具有顯 著加長的地址。在例子中,由處理器101放置在地址總線上的主存儲器地址可以由下面的二進(jìn)制值表示b9, b8, b7, b6, b5, b4, b3, b2, b|, b0在例子中,通過地址位和緩存存儲器位置之間的固定映射獲得到 緩存存儲器位置的映射。因此,在例子中,bl5 b。確定緩存線中的字節(jié)位置,并且b4, b3, b2確定緩存線地址,也稱為索引。因此,具有b,, bQ=l ,0以及b4,b3, b2=l, 0, 1的地址將映射到緩存線101b=5的存儲器位置 10b。在直接映射緩存的例子中,具有bi,b(Tl, 0以及b4,b3,bfl, 0,1的所有主數(shù)據(jù)地址將映射到該緩存位置。緩存存儲器105持續(xù)地追蹤給定的緩存線當(dāng)前與哪個存儲器位置 相關(guān)聯(lián),以及在緩存線中保持的數(shù)據(jù)狀態(tài)。特別地,緩存控制器109 存儲主存儲器地址的較高地址位的值,緩存線當(dāng)前與該地址關(guān)聯(lián)。較 高地址位在這種情況下稱為標(biāo)記,并且緩存控制器109保持標(biāo)記陣列。 標(biāo)記陣列包括對于每一緩存線的條目,每個條目通過用于選擇緩存線 的k個數(shù)據(jù)位(索引)來尋址。當(dāng)緩存線與新的主存儲器地址相關(guān)聯(lián) 時,先前的標(biāo)記條目被新的主存儲器地址的較高地址位,即被該特定 示例中的數(shù)據(jù)位b9, b8, b7, b6, b5所覆蓋。因此,只要處理器101執(zhí)行讀取操作,則緩存存儲器系統(tǒng)105通過使用索引(b4, b3, b2)訪問標(biāo)記陣列并比較所存儲標(biāo)記和當(dāng)前地址(b9,b8,b7,b6,b5)的較高地址位,確定在緩存存儲器中是否存在相應(yīng)值。如 果標(biāo)記匹配地址并且標(biāo)志指示所存儲的緩存數(shù)據(jù)有效,則將來自緩存 存儲器的數(shù)據(jù)值放置在數(shù)據(jù)總線上導(dǎo)致低等待時間讀取操作。直接映射緩存的缺點(diǎn)是每個主存儲器地址只能與單個緩存線相關(guān) 聯(lián),導(dǎo)致在不同的主存儲器地址之間沖突的可能性增加,并且即使對 于非常輕負(fù)載的緩存來說也是顯著的。例如,即使僅大的緩存存儲器 的單個緩存線與給定的主存儲器地址相關(guān)聯(lián),與不能將第二主存儲器地址與該緩存相關(guān)聯(lián),如果這發(fā)生,導(dǎo)致與已經(jīng)關(guān)聯(lián)的主存儲器地址 的相同索引。通過允許每一緩存線與任意主存儲器地址相關(guān)聯(lián),完全關(guān)聯(lián)的緩 存提供顯著地更大靈活性。具體地,對于包括零位的索引和包括沒有 用于尋址緩存線中的位置的全部地址位的標(biāo)記來說,這被認(rèn)為是等同 的。可以將組關(guān)聯(lián)緩存看作直接映射緩存和完全關(guān)聯(lián)緩存之間的中間 物。在組關(guān)聯(lián)緩存中,緩存存儲器的塊與關(guān)于直接映射存儲器緩存的 特定較低地址位相關(guān)聯(lián)。然而,與直接映射緩存相比,多個緩存塊映 射到相同地址。例如,在上述例中,組關(guān)聯(lián)緩存可能僅僅使用兩個位 b3,b2的索引,而不是具有三個位b4,b3,b2的索引。因此緩存存儲器現(xiàn) 在包括兩個4個緩存線的塊,而不是具有8個緩存線的單個塊。因此, 每個主存儲器可以與兩個不同的緩存線相關(guān)聯(lián)。因此,緩存存儲器系統(tǒng)105保持對于給定索引具有多個條目的標(biāo)記陣列。因此,當(dāng)例如發(fā)生讀取操作時,需要檢查標(biāo)記陣列中的多個 條目,而不是對于直接映射緩存的僅僅一個條目。然而,必須被檢査 的條目的數(shù)目仍然相對小,并且可以通過并行處理便利操作。因此為了緩存存儲器系統(tǒng)105確定存儲器訪問是涉及緩存存儲器 107還是涉及主存儲器103,其保持?jǐn)?shù)據(jù)陣列(標(biāo)記陣列),該數(shù)據(jù)陣 列對于每一緩存線包括指示與主存儲器103的關(guān)聯(lián)的數(shù)據(jù)的。此外, 緩存存儲器系統(tǒng)105保持追蹤緩存線的數(shù)據(jù)的狀態(tài)。具體,緩存存儲 器系統(tǒng)105保持狀態(tài)指示,其指示是否已經(jīng)將新的數(shù)據(jù)寫入給定的緩 存線而不是寫入主存儲器。如果是的話,在緩存存儲器107和主存儲 器103的數(shù)據(jù)之間有差異,并且緩存存儲器107的數(shù)據(jù)在從緩存丟失 該數(shù)據(jù)或者直接訪問主存儲器103之前必須被寫入主存儲器103。該指 示稱為臟位指示。相似地,對于讀取操作,使用有效指示來指示緩存線是否包括從 主存儲器103取回的有效數(shù)據(jù)。應(yīng)理解,狀態(tài)指示在某些實(shí)施例中可涉及整個緩存線或者可以例 如保持用于緩存線中的每個位置的單個狀態(tài)指示。應(yīng)理解,為了管理分級存儲器系統(tǒng),需要一致(保持)操作。這種一致操作包括保持緩存存儲器107和主存儲器103之間的一致的操 作,包括保持寫入操作、讀取操作、同步操作等。圖3更將詳細(xì)地說明根據(jù)本發(fā)明的實(shí)施例的緩存存儲器系統(tǒng)105。 該說明和描述是為了簡明和清楚目的,主要精力放在描述實(shí)施例所需 的功能上。具體,說明主要集中在當(dāng)執(zhí)行對于直接映射緩存的一致操 作時,緩存存儲器系統(tǒng)105的操作上。在實(shí)施例中,緩存存儲器系統(tǒng)105包括接收處理器301,其從處理 器101接收指令。接收處理器301連接到控制單元303,其控制緩存存 儲器系統(tǒng)105的一致操作??刂茊卧?03進(jìn)一步連接到標(biāo)記陣列305 以及緩存存儲器107和主存儲器103。根據(jù)本發(fā)明的實(shí)施例,由接收處理器301啟動一致操作,該接收 處理器從處理器101接收地址組指示。地址組指示標(biāo)示主存儲器103 中的存儲器位置的組。在所說明的實(shí)施例中,該組存在于存儲器位置 的連續(xù)塊,在開始地址開始,并在結(jié)束地址結(jié)束。然而,應(yīng)理解,在 其他實(shí)施例和其他應(yīng)用中,地址組可對應(yīng)于其他組地址,包括主存儲 器103的不連續(xù)的地址區(qū)域。在所說明的實(shí)施例中,接收處理器301因此接收地址組指示,其 存在于開始地址和結(jié)束地址。接收處理器301進(jìn)一步接收將在特定地址范圍上執(zhí)行特定一致操作的指示。例如,地址組可對應(yīng)于給定的應(yīng) 用,并且由于應(yīng)用終止可以促成一致操作。作為另一例子,可以建立DMA操作以直接訪問主存儲器103的特定地址范圍,并促成一致操作 來確保對于該地址范圍被寫入緩存的全部數(shù)據(jù)在DMA操作之前被傳 輸?shù)街鞔鎯ζ?03。接收處理器301將開始地址和結(jié)束地址饋送到存儲這些值的控制 單元303。然后控制單元303進(jìn)行執(zhí)行一致過程。然而,與傳統(tǒng)方法相 反,控制單元303不遍歷該地址范圍的主存儲器地址來確定對于該頻 率范圍的每個地址是否存在緩存條目。而是,在當(dāng)前實(shí)施例中,控制 單元303通過遍歷標(biāo)記陣列305并對于每一個條目根據(jù)適宜的匹配標(biāo) 準(zhǔn)確定緩存線是否與主存儲器地址范圍相關(guān)聯(lián),順序地處理每一緩存 線。如果發(fā)現(xiàn)緩存線與主存儲器地址范圍相關(guān)聯(lián),則控制單元303在 緩存線上執(zhí)行所需要的一致操作。例如,控制單元303首先取回對于零索引存儲的標(biāo)記。通過組合 標(biāo)記和索引來確定相應(yīng)的主存儲器地址,并且所得地址與開始和結(jié)束 地址相比較。如果該地址在該范圍內(nèi),則在緩存線上執(zhí)行一致操作。 例如,如果一致操作包括與清除該地址范圍相關(guān)聯(lián)的緩存的單元,則 控制單元303導(dǎo)致緩存線的數(shù)據(jù)寫入主存儲器103。然后控制單元303 繼續(xù)取回對于下一索引所存儲的標(biāo)記,例如對于索引1,然后重復(fù)對于 該緩存線的操作。因此,控制單元每次一個緩存線地遍歷緩存標(biāo)記陣列305,并且如 果緩存線與特定存儲器范圍相關(guān)聯(lián),則對于每一緩存線在緩存存儲器107上執(zhí)行所需要的一致操作。所述的方法相比于現(xiàn)有技術(shù)提供了多個優(yōu)點(diǎn),并便利或使得靈活 的緩存存儲器系統(tǒng)具有低復(fù)雜度、低成本和高可靠性。特別地,由于主存儲器地址范圍典型地比緩存大小要大得多,因 而需要考慮很少的比較周期。換句話說,評價匹配標(biāo)準(zhǔn)和有條件地執(zhí) 行一致操作的循環(huán)的重復(fù)的次數(shù)顯著地被減小。這將典型地顯著減小 一致過程的持續(xù)周期,由此減小計算負(fù)載并使得系統(tǒng)可以進(jìn)行其他活 動。此外, 一致操作的持續(xù)周期取決于緩存的大小而不是地址范圍的 大小。這不僅僅趨于減小一致過程需要的時間,還導(dǎo)致其被限制并與 地址范圍無關(guān)。這在實(shí)時處理系統(tǒng)中特別是優(yōu)點(diǎn),并使得在這種系統(tǒng) 中的時間管理變得便利。因此,該方法相對簡單并可以通過低復(fù)雜性的硬件、軟件、固件 或其組合來實(shí)現(xiàn)。特別地,可以將控制單元303的功能至少部分地實(shí) 現(xiàn)為處理器101的固件程序。應(yīng)理解,上述為了清楚的說明沒有考慮緩存線的數(shù)據(jù)的狀態(tài)的評價。然而,優(yōu)選地,控制單元303確定緩存線的數(shù)據(jù)的狀態(tài)。因此匹 配標(biāo)準(zhǔn)優(yōu)選地包括緩存線數(shù)據(jù)的狀態(tài)的考慮和/或響應(yīng)于緩存線數(shù)據(jù)狀 態(tài)執(zhí)行一致操作。例如,如果該狀態(tài)指示對應(yīng)于臟位狀態(tài),則僅將數(shù) 據(jù)寫入主存儲器103。還應(yīng)理解,盡管說明特別地考慮了緩存線評價,但是該處理還可 在緩存線的不同單元之間獨(dú)立。例如,開始和/或結(jié)束地址不需要與緩 存線劃分相符,但是可以對應(yīng)于緩存線內(nèi)的數(shù)據(jù)單元。另外,數(shù)據(jù)的 狀態(tài)可以涉及單個單元,并且一致操作可以考慮每一個單個單元。例 如,狀態(tài)指示可以涉及緩存線中的單個數(shù)據(jù)字節(jié),并僅將對于其設(shè)置 臟比特指示的數(shù)據(jù)字節(jié)寫入主存儲器103。還應(yīng)理解,盡管控制單元303優(yōu)選地每次一個緩存線地遍歷整個 緩存存儲器107,但在某些實(shí)施例中僅僅遍歷緩存線的子集中是有益的,該子集可以是例如預(yù)設(shè)的或者動態(tài)確定的。一致處理和操作可以是任何適宜的一致處理和操作。特別地, 一致操作可以是無效操作。無效操作優(yōu)選地?zé)o效與特定 地址范圍相關(guān)聯(lián)的所有緩存線。因此,控制單元303可以遍歷緩存并 對于對應(yīng)于該地址范圍的所有緩存線將狀態(tài)指示設(shè)置為無效。該操作在其中在主存儲器103中(通過DMA)更新數(shù)據(jù)的情況下或者其中緩 存在緩存存儲器107中保持臨時變量的情況下例如可以是有益的,該 臨時變量在任務(wù)結(jié)束時可以被無效,因?yàn)椴辉傩枰鼈兞?。替換地或額外地, 一致操作可以是同步操作。同步操作可以同步 與特定地址范圍相關(guān)的全部緩存線。因此,控制單元303可以遍歷緩 存并向主存儲器103寫入臟部分,并取消藏指示同時對于對應(yīng)于該地 址范圍的全部緩存線保持有效指示。該操作對于其中將由DMA從主存儲器103讀取存儲器部分,同 時為了未來使用保持緩存存儲器107中的數(shù)據(jù)的有效性的情況下,可 以例如是有益的。同步操作的另一用途是利用空閑周期來減小緩存存 儲器107中的臟部分的數(shù)目。替換地或者額外地, 一致操作可以是清除操作。清除操作可以清 除與特定地址范圍相關(guān)聯(lián)的全部緩存線。因此,控制單元303可以遍 歷緩存,并將對應(yīng)于該地址范圍并具有臟位指示的全部緩存線的數(shù)據(jù) 寫入主存儲器103,然后無效緩存線。該操作對于其中將在主存儲器 103而不包括緩存存儲器系統(tǒng)105上直接執(zhí)行存儲器操作,并且當(dāng)處理 器101將不使用該數(shù)據(jù)時的情況可以例如是有益的。在下面,將說明應(yīng)用到組關(guān)聯(lián)存儲器的本發(fā)明的實(shí)施例。在該實(shí) 施例中,將緩存存儲器107組織為四個組。主存儲器地址可以與任何一個組相關(guān)聯(lián),因此對于每一個主存儲器位置有四個可能的緩存線。 該實(shí)施例與在圖2中所示的緩存存儲器系統(tǒng)105相兼容,并將參照其 說明。
在該實(shí)施例中,由處理器的尋址采用虛擬存儲器尋址。具體地, 在處理器101上運(yùn)行的每個任務(wù)使用標(biāo)準(zhǔn)地址空間,該標(biāo)準(zhǔn)地址空間
可以由存儲器管理單元映射到主存儲器103中的給定物理存儲器區(qū)域。 每個運(yùn)行的任務(wù)被分配一任務(wù)標(biāo)識,當(dāng)映射到主存儲器103時,該任 務(wù)標(biāo)識由存儲器管理單元使用。例如,第一任務(wù)的指令可以尋址在范 圍[O, FFFFh]中的存儲器。存儲器管理單元可以為該任務(wù)分配任務(wù)標(biāo)識 1,并將該范圍映射到[10000h, 10FFFFh]的物理存儲器范圍。第二任務(wù) 的指令也可以尋址在范圍[O, FFFFh]內(nèi)的存儲器。存儲器管理單元可以 為該任務(wù)分配任務(wù)標(biāo)識2,并將該范圍映射到
內(nèi)的物 理存儲器范圍。
圖4說明根據(jù)該實(shí)施例的對于緩存存儲器系統(tǒng)105的標(biāo)記陣列400 的例子。標(biāo)記陣列包括四個單獨(dú)的數(shù)據(jù)結(jié)構(gòu)401, 403, 405, 407,每 個結(jié)構(gòu)對應(yīng)于四組組關(guān)聯(lián)緩存的一個。因此對于每一緩存線在標(biāo)記陣 列中存在條目。在該實(shí)施例中,每個條目包括對應(yīng)于由處理器101使 用的虛擬地址的較高位的標(biāo)記。此外,每個條目包括任務(wù)標(biāo)識,其指 示該緩存線與哪個任務(wù)相關(guān)聯(lián)。因此,標(biāo)記陣列中的條目指示與緩存 線相關(guān)聯(lián)的物理主存儲器地址。
圖5說明根據(jù)本發(fā)明的該實(shí)施例的執(zhí)行緩存存儲器一致操作的方 法的流程圖。在所說明的實(shí)施例中,由支持一個或多個應(yīng)用的處理器 例如微控制器、中央處理器(CPU)或數(shù)字信號處理器(DSP)來執(zhí)行 該方法。在處理用于應(yīng)用的后臺執(zhí)行圖5的方法。
在步驟501開始該方法,其中使用限定執(zhí)行一致操作的地址范圍 的開始地址和結(jié)束地址啟動控制單元303。開始地址和結(jié)束地址指定為由給定任務(wù)使用的虛擬地址。例如,對于其中第一任務(wù)尋址范圍[O,
FFFFh]內(nèi)的存儲器的情況,開始和結(jié)束地址在該范圍內(nèi)。為了關(guān)聯(lián)虛擬 地址和物理主存儲器103地址范圍,進(jìn)一步使用任務(wù)標(biāo)識(任務(wù)ID) 啟動控制單元303。在特定例子中, 一致操作可以涉及第一任務(wù)的虛擬 存儲器間隔[1000h, 17FFh]。因此,在步驟501中通過將開始地址設(shè)置 為1000h、將結(jié)束地址設(shè)置為17FFh以及將任務(wù)ID設(shè)置為1來啟動控 制單元303。
在步驟503中繼續(xù)該方法,其中將緩存線指針設(shè)置為對應(yīng)于標(biāo)識 陣列400中第一組的第一條目401的第一緩存線。
在步驟503之后是步驟505,其中從標(biāo)記陣列400取回標(biāo)記和任務(wù) 標(biāo)識。因此從標(biāo)記陣列400取回當(dāng)前標(biāo)記(0, 0)和任務(wù)ID (0, 0)。
在步驟503之后是步驟507,其中控制單元303確定對應(yīng)于第一條 目401的緩存線是否與對于其執(zhí)行一致操作的地址相關(guān)聯(lián)。特別地, 控制單元303通過組合所取回的標(biāo)記和該標(biāo)記的索引而生成地址。因 此,對于第一條目401,通過組合來自標(biāo)記的地址位和索引的地址位生 成完全虛擬地址。
所生成的地址與開始和結(jié)束地址相比較,并且控制單元303確定 所取回的任務(wù)ID是否匹配特定任務(wù)ID。因此,確定任務(wù)ID l是否存 儲在任務(wù)ID (0, 0)中。如果所生成的地址在特定地址范圍內(nèi)并且任 務(wù)ID匹配,那么指定匹配,并且因此期望在相應(yīng)緩存線上執(zhí)行一致操 作。在這種情況下,在步驟509中繼續(xù)該方法,否則在步驟513中繼 續(xù)該方法。
在步驟509中,確定執(zhí)行一致操作當(dāng)前是否可行。具體地,控制 單元303確定在一致操作和另一存儲器操作之間是否存在沖突??刂?單元303例如確定在一致操作和其他存儲器操作之間共享的資源是否由其他存儲器操作當(dāng)前使用。例如,如果緩存存儲器107訪問在通常 緩存操作(緩存線重分配)和一致操作之間共享的資源,那么當(dāng)在兩 者之間存在沖突時,可以將更高優(yōu)先級給與通常緩存操作。
如果在步驟509確定存在沖突,則當(dāng)前實(shí)施例中的控制單元303 繼續(xù)來抑制一致操作。具體,控制單元303可以通過延遲一致操作直 到終止其他存儲器操作,來抑制一致操作。這可以通過在步驟519中 持續(xù)地確定是否由并發(fā)線操作代替該線來實(shí)現(xiàn)。如果在步驟519中線 已經(jīng)被替換,則該方法運(yùn)行到步驟5B。如果在步驟519中線沒有被替 換,則處理返回步驟509來確定當(dāng)前是否實(shí)際來執(zhí)行一致操作。
因此,掃描(sweep)分段取消標(biāo)準(zhǔn)(在步驟519)標(biāo)識與掃描分 段相關(guān)聯(lián)的緩存線是否已經(jīng)被替換,由于在步驟507中已經(jīng)先前檢查 了匹配標(biāo)準(zhǔn)。
當(dāng)在步驟509確定沒有沖突時,方法進(jìn)行到步驟511,其中控制單 元303在相應(yīng)緩存線上執(zhí)行期望的一致操作。如上所述, 一致操作可 以例如是清除、無效或同步操作。
步驟511之后是步驟513,其中控制單元303確定其是否已經(jīng)遍歷 整個緩存。如果是的話,在步驟515繼續(xù)該方法,其中處理終止。否 則在步驟517中繼續(xù)該方法,其中更新指針以指向下一緩存線。然后 該方法通過處理下一緩存線,在步驟505中繼續(xù)。下一緩存線被確定 為在該組中的隨后緩存線。當(dāng)已經(jīng)達(dá)到組的最后緩存線時,將下一緩 存線確定為下一組的第一緩存線。當(dāng)已經(jīng)達(dá)到最后的組的最后的緩存 線時,這在步驟513中檢測,導(dǎo)致該方法終止。
因此,該方法導(dǎo)致順序地遍歷每一單個組的緩存線,并且還順序 地遍歷單個組。因此,在該實(shí)施例中,順序處理緩存的所有緩存線, 并且對于每一緩存線,確定一致操作是否合適,以及如果是的話,則執(zhí)行操作。
具體地,通過首先評價第一條目409,然后組0的下一條目411 等等,來遍歷圖4的標(biāo)記陣列400,直到達(dá)到組O的最后條目413。然 后該方法通過指向組1的第一條目415來步進(jìn)到組1。相似地,組1的 最后條目417之后是組2的第一條目419,以及組2的最后條目421之 后是組3的第一條目423。當(dāng)已經(jīng)達(dá)到組3的最后條目425時,已經(jīng)執(zhí) 行了一致過程。
應(yīng)理解,盡管所述實(shí)施例說明了一種實(shí)現(xiàn)方式,其中以所述順序 依次執(zhí)行各個步驟,但是可以等同地應(yīng)用步驟的并行操作和/或不同順 序。具體,步驟505、 507、 509、 513、 517可以并行于步驟511來執(zhí) 行。因此,當(dāng)對于緩存線執(zhí)行一致操作時,控制器可以評價下一緩存 線或多個緩存線。
優(yōu)選地,當(dāng)處理在步驟515終止時,控制單元303設(shè)置終止指示。 特別地,控制單元303可以使得設(shè)置中斷指示,這導(dǎo)致在處理器的中 斷序列。中斷指示可以是軟件中斷指示或可以是硬件中斷指示,例如 在處理器101的中斷信號輸出設(shè)置信號。這會使得不同任務(wù)的管理容 易,特別地,使得實(shí)時處理系統(tǒng)中的任務(wù)時間管理容易。
上述實(shí)施例集中在基于特定地址范圍,響應(yīng)于單個匹配標(biāo)準(zhǔn)確定 匹配。然而,在其他實(shí)施例中,可以使用其他標(biāo)準(zhǔn)和/或可以使用多個 標(biāo)準(zhǔn)。例如,地址組指示可存在于任務(wù)標(biāo)識,并且匹配標(biāo)準(zhǔn)可以僅僅 確定每一緩存線是否匹配該任務(wù)標(biāo)識。因此,可以通過指定相應(yīng)的任
務(wù)標(biāo)識,對于給定的任務(wù)執(zhí)行一致操作。
優(yōu)選地,控制單元303操作為在多個匹配標(biāo)準(zhǔn)之間選擇,特別地, 其可以操作為響應(yīng)于從處理器101接收的數(shù)據(jù),在不同的匹配標(biāo)準(zhǔn)之 間選擇。例如,如果控制單元303接收與一致處理激發(fā)命令有關(guān)的開始地 址、結(jié)束地址和任務(wù)標(biāo)識,那么它可以通過使用評價標(biāo)記陣列中的條 目是否包括匹配所有三個要求的數(shù)據(jù)的匹配標(biāo)準(zhǔn)來繼續(xù)操作。然而, 如果僅僅接收與激發(fā)命令相關(guān)的開始地址和結(jié)束地址,那么匹配標(biāo)準(zhǔn) 僅僅考慮所存儲的地址標(biāo)記。這將允許給定存儲器區(qū)上的簡單的一致
操作,而不管哪一個任務(wù)使用特定區(qū)域。此外,如果控制單元303僅
僅接收具有激發(fā)命令的任務(wù)標(biāo)識,那么匹配標(biāo)準(zhǔn)僅僅確定任務(wù)標(biāo)識是 否匹配。這允許對于特定任務(wù)的簡單一致操作。最后,如果沒有接收
到與激發(fā)命令相關(guān)的特定數(shù)據(jù),那么控制單元303可以在整個緩存存 儲器107上執(zhí)行一致操作,而不管緩存存儲器107和主存儲器103之 間的聯(lián)系。
應(yīng)理解,盡管上述說明特別地適用于數(shù)據(jù)存儲器緩存,本發(fā)明還 可以應(yīng)用到例如指令存儲器緩存。
因此,本發(fā)明的優(yōu)選實(shí)施例描述了一種處理并發(fā)CPU和緩存掃描 處理的機(jī)制。任何掃描或清除操作包括多個部分。應(yīng)注意,每個部分 在特定緩存線上執(zhí)行操作。
在本發(fā)明的優(yōu)選實(shí)施例中,掃描片斷延遲或取消的管理由基于一 個片斷接一個片斷的內(nèi)部機(jī)制來處理。這允許無縫的并行CPU和緩存 掃描操作。這在允許CPU盡可能地有效(未停滯或者處于等待模式) 中提供了顯而易見的優(yōu)勢。因此,CPU可以是有效的,同時緩存掃描 操作是有效的并且內(nèi)部管理由該并行操作所導(dǎo)致的任何沖突。
應(yīng)理解,本發(fā)明不限制于每個循環(huán)僅僅執(zhí)行一次比較,而是,可 以例如并行地執(zhí)行多個比較。
盡管上文中已經(jīng)描述了本發(fā)明的實(shí)施例的優(yōu)選實(shí)現(xiàn),但本領(lǐng)域技術(shù)人員可以容易地應(yīng)用這種發(fā)明性概念的變形和改進(jìn)。
具體,應(yīng)理解,參照處理系統(tǒng)的不同功能單元,為了清楚起見描 述了上面的說明。然而,很清楚可以使用不同功能單元之間的功能的 任何適宜區(qū)分,而不背離本發(fā)明。因此,參照特定功能單元僅僅視為 參照用于提供所說明功能的適宜裝置,而不是指示嚴(yán)格的邏輯或物理 結(jié)構(gòu)、組成或劃分。例如,可以集成緩存控制器并與處理器互相作用 或者是其的一部分。
可以以包括硬件、軟件、固件或其任何組合的任何適宜形式實(shí)現(xiàn) 本發(fā)明。然而,優(yōu)選地,本發(fā)明實(shí)現(xiàn)為在一個或多個數(shù)據(jù)處理器上運(yùn) 行的計算機(jī)軟件。
權(quán)利要求
1.一種用于在存儲器緩存(105)上執(zhí)行一致操作的存儲器緩存控制結(jié)構(gòu),包括用于接收(301)用于地址組的地址組指示的裝置,該地址組包括與主存儲器(103)相關(guān)聯(lián)的多個地址;其特征在于處理裝置(303),用于順序地處理緩存線組的每一緩存線;該處理裝置(303)包括匹配裝置,用于通過評價匹配標(biāo)準(zhǔn)確定緩存線是否與地址組的地址相關(guān)聯(lián);一致裝置,用于如果滿足匹配標(biāo)準(zhǔn),則在緩存線上執(zhí)行一致操作;以及用于確定在一致操作和另一存儲器操作之間是否存在沖突的裝置,其中一致裝置操作為如果存在沖突則抑制一致操作。
2. 如權(quán)利要求1的所述存儲器緩存控制結(jié)構(gòu),其中所述沖突涉及 在一致操作和其他存儲器操作之間共享的資源。
3. 如權(quán)利要求1或權(quán)利要求2的所述存儲器緩存控制結(jié)構(gòu),其中 用于確定沖突是否存在的裝置操作為如果一致操作和其他存儲器操作 導(dǎo)致對相同緩存資源的基本上同時的訪問,則確定存在沖突。
4. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中一致裝 置操作為通過延遲一致操作和其他存儲器操作的一個,抑制一致操作。
5. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中匹配標(biāo) 準(zhǔn)包括評價與緩存線相關(guān)的主存儲器地址是否屬于該地址組。
6. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中地址組指示包括主存儲器的存儲器塊的開始地址和結(jié)束地址,并且匹配標(biāo)準(zhǔn) 包括確定主存儲器地址是否屬于該存儲器塊。
7. 如權(quán)利要求6的所述存儲器緩存控制結(jié)構(gòu),其中開始地址和結(jié) 束地址是虛擬存儲器地址。
8. 如上述權(quán)利要求5至7的任何一項(xiàng)的所述存儲器緩存控制結(jié)構(gòu), 其中匹配裝置操作為響應(yīng)于緩存線標(biāo)記和緩存線索引,確定主存儲器 地址。
9. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中存儲器 緩存(105)是組關(guān)聯(lián)存儲器緩存,并且緩存線的組包括不同組關(guān)聯(lián)存 儲器組的緩存線。
10. 如權(quán)利要求9的所述存儲器緩存控制結(jié)構(gòu),其中處理裝置 (303)操作為順序地處理組關(guān)聯(lián)存儲器緩存的組。
11. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中地址 組指示包括至少一個任務(wù)標(biāo)識的指示,并且匹配標(biāo)準(zhǔn)包括評價與第一 緩存線相關(guān)聯(lián)的任務(wù)標(biāo)識是否與至少一個任務(wù)標(biāo)識匹配。
12. 如權(quán)利要求ll的所述存儲器緩存控制結(jié)構(gòu),其中地址組指示 存在于任務(wù)標(biāo)識中。
13. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中緩存 線的組包括存儲器緩存的所有緩存線。
14. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中一致 操作是無效操作。
15. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中一致 操作是同步操作。
16. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中一致 操作是清除操作。
17. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中處理 裝置(303)包括用于響應(yīng)于確定已經(jīng)處理了緩存線組的全部緩存線而 設(shè)定終止指示的裝置。
18. 如權(quán)利要求17的所述存儲器緩存控制結(jié)構(gòu),其中終止指示是 中斷指示。
19. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中存儲 器緩存是指令緩存。
20. 如上述任一權(quán)利要求的所述存儲器緩存控制結(jié)構(gòu),其中存儲 器緩存是數(shù)據(jù)緩存。
21. —種存儲器緩存系統(tǒng),包括上述任一權(quán)利要求的所述存儲器 緩存控制結(jié)構(gòu)。
22. —種處理系統(tǒng),包括-處理器;主存儲器;緩存存儲器,連接到處理器和主存儲器;以及如上述權(quán)利要求1至20的任意一個的所述存儲器緩存控制結(jié)構(gòu)。
23. —種在存儲器緩存上執(zhí)行一致操作的方法,包括以下步驟 接收用于地址組的地址組指示,該地址組包括與主存儲器(103)相關(guān)聯(lián)的多個地址;其特征在于,包括下面的步驟順序處理緩存線組的每一線;該處理包括對于緩存線組的每一緩 存線執(zhí)行下面的步驟通過評價匹配標(biāo)準(zhǔn),確定第一緩存線是否與地址組的地址相關(guān)聯(lián);如果滿足匹配標(biāo)準(zhǔn),則在第一緩存線上執(zhí)行一致操作;以及 確定在一致操作和另一存儲器操作之間是否存在沖突,并且 其中如果存在沖突, 一致裝置操作為抑制一致操作。
24. 如權(quán)利要求23的在存儲器緩存上執(zhí)行一致操作的所述方法, 還特征在于,該沖突涉及在一致操作和其他存儲器操作之間共享的資 源。
25. 如權(quán)利要求23或權(quán)利要求24的在存儲器緩存上執(zhí)行一致操作的所述方法,還特征在于,確定是否存在沖突的步驟包括如果一致 操作和其他存儲器操作導(dǎo)致對相同緩存資源的基本上相同的訪問,則確定沖突存在。
26. 如上述權(quán)利要求23至25的任何一項(xiàng)的在存儲器緩存上執(zhí)行 一致操作的所述方法,還包括以下步驟通過延遲一致操作和其他存儲器操作的一個,由一致裝置來抑制 一致操作。
27. —種存儲介質(zhì),存儲處理器可實(shí)現(xiàn)的指令,該指令用于控制 處理器執(zhí)行根據(jù)權(quán)利要求23的方法。
全文摘要
用于在存儲器緩存(105)上執(zhí)行一致操作存儲器緩存控制結(jié)構(gòu),包括接收處理器,用于接收(301)包括與主存儲器(103)相關(guān)的多個地址的地址組的地址組指示。地址組指示可包括任務(wù)標(biāo)識以及對應(yīng)于主存儲器(103)的存儲器塊的地址范圍。控制單元(303)順序地處理緩存線組的每一線。具體地,通過評價匹配標(biāo)準(zhǔn),確定每一緩存線是否與地址組的地址相關(guān)聯(lián)。如果滿足匹配標(biāo)準(zhǔn),則在緩存線上執(zhí)行一致操作。如果在一致操作和其他存儲器操作之間存在沖突,則一致裝置抑制一致操作。本發(fā)明允許緩存一致操作的減小的持續(xù)時間。該持續(xù)時間還與一致操作所包括的主存儲器空間的大小無關(guān)。
文檔編號G06F12/00GK101617298SQ200580018879
公開日2009年12月30日 申請日期2005年5月31日 優(yōu)先權(quán)日2004年6月8日
發(fā)明者伊塔伊·佩萊德, 摩西·安舍爾, 阿隆·埃爾達(dá)爾, 雅各布·埃弗拉特 申請人:飛思卡爾半導(dǎo)體公司