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