專利名稱:高速緩存和體系結(jié)構(gòu)特定功能分層的方法
技術(shù)領域:
本發(fā)明總體上涉及數(shù)據(jù)處理系統(tǒng)中的高速緩存控制器,并且尤其涉及數(shù)據(jù)處理系統(tǒng)中用于高速緩存的高速緩存控制器。更進一步,本發(fā)明涉及,在用于數(shù)據(jù)處理系統(tǒng)中的高速緩存的控制器內(nèi),對高速緩存和體系結(jié)構(gòu)特定功能進行分層,以便于類屬接口的定義,此接口可以轉(zhuǎn)換為特定總線體系結(jié)構(gòu)。
使用二級(L2)高速緩存的數(shù)據(jù)處理系統(tǒng)典型地包括用于管理影響高速緩存事物處理的高速緩存控制器。這樣的高速緩存控制器通常在功能級上實現(xiàn),如圖5所示。比如,高速緩存控制器502可以包括管理高速緩存目錄的邏輯504、實現(xiàn)最近最少使用(LRU)替換原則的邏輯506、管理重載緩沖區(qū)508的邏輯、以及管理存回緩沖區(qū)510的邏輯。在傳統(tǒng)的實現(xiàn)方案中,高速緩存對這些和其它體系結(jié)構(gòu)功能,即高速緩存控制器所需的典型功能,總體上說是相當可見的。因此,高速緩存控制器設計對專門的處理器,如PowerPCTM、AlphaTM或X86族系列處理器是特定的。
除了是處理器特定的,高速緩存控制器一般說來也是總線特定的。即高速緩存控制器的實現(xiàn)對支配處理器與高速緩存控制器之間總線上事物處理的協(xié)議是典型特定的。實際上,高速緩存控制器內(nèi)的動作是由總線操作啟動的。這樣,不論在設計上還是在操作上,高速緩存控制器與連接到高速緩存控制器的特定總線是嚴格匹配的。
用于所討論的數(shù)據(jù)處理系統(tǒng)的處理器一般支持很大數(shù)量的高速緩存管理指令,如刷新命令、數(shù)據(jù)高速緩存塊存儲等。對這些指令的支持典型地在高速緩存邏輯上實現(xiàn),通過對不同指令使用特別的情形,使高速緩存控制器設計的需求大大復雜化。
使用現(xiàn)有技術(shù)實現(xiàn)高速緩存控制器的一個問題是在高速緩存控制器邏輯和到總線的總線接口單元之間定義類屬接口的實際不可能性。這樣的一個類屬接口將是有用的,因為當為不同的處理器或總線體系結(jié)構(gòu)的操作,對整體高速緩存控制器設計重新改進時,其將允許再次使用高速緩存控制器邏輯。
因此,實現(xiàn)高速緩存控制器邏輯是所期望的,其允許對高速緩存控制器邏輯和高速緩存控制器的總線接口單元之間的類屬接口進行定義。如果高速緩存控制器設計同時便于高速緩存控制器邏輯的重復使用,這也是一種優(yōu)勢。最后,這對于高速緩存控制器設計允許類屬接口的實現(xiàn)也是有利的,根據(jù)個別總線操作的特點,接口可以定制。
因此,本發(fā)明的一個目的在于為數(shù)據(jù)處理系統(tǒng)提供一個改進的高速緩存控制器。
本發(fā)明的另一個目的在于提供一個改進的高速緩存控制器,其具有分層的高速緩存和體系結(jié)構(gòu)特定功能。
本發(fā)明還有一個目的在于在高速緩存控制器內(nèi),高速緩存控制器邏輯和總線接口單元之間提供類屬接口。
如現(xiàn)在所描述的,上述目的已經(jīng)實現(xiàn)。高速緩存和高速緩存控制器內(nèi)的體系結(jié)構(gòu)功能被分層,并裝備了類屬接口。對高速緩存和體系結(jié)構(gòu)操作分層允許控制器內(nèi)控制器邏輯和總線接口單元之間類屬接口的定義。通過吸取所支持操作的要素,并加入到類屬協(xié)議,來定義類屬接口。依據(jù)操作的特點,接口本身可以是脈沖或保持接口。因為控制器邏輯隔離于處理器或總線體系結(jié)構(gòu)所需的特定協(xié)議,通過適當?shù)匦薷目偩€接口單元,設計可以直接應用于不同協(xié)議或處理器的新控制器上。
通過下列詳細的書面描述,本發(fā)明的上述和其它的目的、特色和優(yōu)勢將顯而易見。
被認為能代表本發(fā)明的特征新特性在附加的權(quán)利要求書中列出。就本發(fā)明本身而言,同最佳使用模式及其進一步的目的和優(yōu)點一樣,通過參考下面對示范性實施例的詳細描述,并連同附圖,將可以很好地理解。其中
圖1描述了一個數(shù)據(jù)處理系統(tǒng),利用它可實現(xiàn)本發(fā)明的最佳實施例,圖2是根據(jù)本發(fā)明最佳實施例的、在數(shù)據(jù)處理系統(tǒng)中的控制器框圖;以及圖3描述了根據(jù)本發(fā)明的最佳實施例,控制器中類屬接口變量的時序框圖;圖4是表示根據(jù)本發(fā)明的最佳實施例,在高速緩存和體系結(jié)構(gòu)特定功能分層的控制器內(nèi),使用類屬接口過程的高級流程圖;以及圖5描述現(xiàn)有技術(shù)下的高速緩存控制器的框圖。
現(xiàn)在參考附圖,并且尤其參考圖1,描述了可在其中實現(xiàn)本發(fā)明最佳實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100可以包括僅僅一個處理器或包括幾個處理器的對稱多處理機(SMP)系統(tǒng)。在所描述的例子中表示了單個處理器系統(tǒng)。處理器102可以是超標量精簡指令集(RISC)處理器,在處理器內(nèi),包括分離的一級指令以及數(shù)據(jù)高速緩存104和106。PowerTM處理器可用作處理器102。
處理器102連接到聯(lián)合的二級(L2)高速緩存108上。L2高速緩存108與用于數(shù)據(jù)處理系統(tǒng)100的系統(tǒng)總線110連接。如I/O總線橋114一樣,本機內(nèi)存112也連接到系統(tǒng)總線110上。其它設備,如內(nèi)存映射圖形適配器116也可以連接到系統(tǒng)總線110上。I/O總線橋114還連接到I/O總線118上,此總線可以連接多種其它設備,如局域網(wǎng)(LAN)適配器120和硬盤驅(qū)動器122。
對此技術(shù)一般熟練的人員,可以理解圖1中描述的硬件是可以更改的。比如,還可以加入其它外設,如光盤驅(qū)動器和類似產(chǎn)品,或用其取代所描述的硬件。所描述的例子并不意味著要對本發(fā)明體系結(jié)構(gòu)進行仿效。
尤其是,數(shù)據(jù)處理系統(tǒng)可不必如例子中所表示的,僅局限于單處理器,以從本發(fā)明受益。比如,通過使用各帶相應的L2高速緩存的兩個處理器,本發(fā)明可以用來提高數(shù)據(jù)處理系統(tǒng)的性能。
參考圖2,根據(jù)本發(fā)明的最佳實施例,描述了在數(shù)據(jù)處理系統(tǒng)中的控制器框圖??刂破?02在圖1中描述的高速緩存108內(nèi)實現(xiàn)??刂破?02包括連接到上層總線206的總線接口單元204,以用于處理器或更高一級高速緩存;以及連接下層總線210的總線接口單元208,此總線可以是系統(tǒng)總線或連接到另一個高速緩存的總線。上層總線206與下層總線210可以不同;比如,上層總線可以是60X,而下層總線可以是另一種總線。
控制器202中的高速緩存和體系結(jié)構(gòu)的特定功能被分層。這樣,控制器202包括高速緩存控制器212及體系結(jié)構(gòu)控制器214。操作被區(qū)別為“高速緩存”或“體系結(jié)構(gòu)”操作。高速緩存控制器212僅處理高速緩存操作,并且只有高速緩存控制器212對高速緩存216操作。體系結(jié)構(gòu)控制器214處理體系結(jié)構(gòu)的操作,并且其操作被高速緩存212看作系統(tǒng)方面的操作。
第三單元,非高速緩存控制器218,也包括在高速緩存控制器202中。非高速緩存控制器218實際上是高速緩存控制器212的副本,其它僅僅處理高速緩存操作。然而,高速緩存控制器212處理指向高速緩存內(nèi)存單元的高速緩存操作,非高速緩存控制器218處理的高速緩存操作指向沒有映射到高速緩存216的高速緩存內(nèi)存單元。由于那些對此技術(shù)熟練的人員所了解的原因,把系統(tǒng)內(nèi)存的一部分當成不可高速緩存的是有利的。比如,這樣的內(nèi)存可以被內(nèi)存映射器件所使用。高速緩存控制器212對整個高速緩存塊操作,而非高速緩存控制器218對較小的內(nèi)存段操作,往往小于8-16個字節(jié)。而且,非高速緩存控制器218不存貯數(shù)據(jù),而高速緩存控制器212保存在高速緩存216中處理的數(shù)據(jù)副本。
高速緩存操作是那些典型的操作,即讀或?qū)憙?nèi)存單元的數(shù)值,并因此可以修改或檢索內(nèi)存單元的數(shù)據(jù)值。其余操作被定義為體系結(jié)構(gòu)操作。與高速緩存操作不同,體系結(jié)構(gòu)操作通常不改變內(nèi)存單元的數(shù)值。體系結(jié)構(gòu)操作可在高速緩存層次中,把數(shù)據(jù)移到不同的單元,改變個別內(nèi)存單元中的數(shù)據(jù)狀態(tài),或執(zhí)行其它這樣的功能。然而,體系結(jié)構(gòu)操作通常不直接改變內(nèi)存單元的數(shù)值。
由高速緩存控制器212支持的高速緩存操作,包括了影響系統(tǒng)高速緩存的大多數(shù)操作。在由給定處理器支持的完整操作集里,高速緩存操作可以不從被頻繁地執(zhí)行并/或消耗絕大部分處理器周期的一部分指令集中導出。然而,忽略指向處理器內(nèi)部其它功能單元如浮點、定點、或分支單元的指令,高速緩存操作經(jīng)常集中使用,并使用大部分時間。
影響系統(tǒng)高速緩存的其余操作--那些用于高速緩存管理、操作系統(tǒng)管理、頁面管理和同步化,等--被結(jié)構(gòu)體系控制器214分層和支持。事實上,所有的處理器體系結(jié)構(gòu)支持如此的操作,其在實時操作中的使用遠少于高速緩存操作。另外,在體系結(jié)構(gòu)操作中的單個操作通常對于不同的被感興趣的處理器,如果不是用完全不同的方式,用區(qū)別很大的方式來實現(xiàn)。處理器方面的體系結(jié)構(gòu)操作通過體系結(jié)構(gòu)控制器214到系統(tǒng)總線210上,并作為透明的系統(tǒng)方面的體系結(jié)構(gòu)操作,影響高速緩存控制器212。
不同的設計可以有不同的由高速緩存控制器支持的操作集,并且,在缺省模式下,其余操作被分層以被體系結(jié)構(gòu)控制器支持。然而,由高速緩存控制器支持的增加操作數(shù)目功能增加了所需邏輯的復雜性。另外,所選的被高速緩存控制器支持的指令并不被所有被感興趣的處理器支持,高速緩存控制器設計不具備到新控制器設計的直接可轉(zhuǎn)換性。
一些操作僅僅從控制器202內(nèi)部的一條路徑傳下--即通過體系結(jié)構(gòu)控制器214或高速緩存控制器212--其它操作被分解并從兩條路徑傳下。高速緩存控制器212使用“轉(zhuǎn)發(fā)”設計,其中在接口220啟動的操作在接口222產(chǎn)生響應,而在接口222啟動的操作在接口220產(chǎn)生響應。
由于高速緩存和體系結(jié)構(gòu)操作在控制器202內(nèi)被分層,總線事物處理和協(xié)議也可以被分層。即可以為控制器212,體系結(jié)構(gòu)控制器214,和非高速緩存控制器218定義類屬接口。這樣,接口220-230包括對總線接口單元204和208的類屬協(xié)議接口,它們在可能的程度上,并非是體系結(jié)構(gòu)特定的。這使得高速緩存控制器212的設計從總線206和總線210的特定協(xié)議中解耦,以允許高速緩存控制器212的設計可以重復使用。但是,如果不對高速緩存和體系結(jié)構(gòu)特定功能分層,以分離復雜性而設計類屬協(xié)議接口事實上是不可能的。
與傳統(tǒng)高速緩存控制器對比,高速緩存控制器212可以以獨立于總線206和210的方式實現(xiàn),僅對高速緩存操作反應。盡管這樣的高速緩存操作由總線206或210的事物處理啟動,但僅僅某些總線事物處理將在高速緩存控制器212中引起反應。在最佳實施例中,高速緩存控制器212僅對在總線206上取指令操作(IFETCH)、LOAD操作和WRITE操作,以及在總線210上的READ操作、WRITE操作以及傳統(tǒng)的SNOOPS作出反應。這使得了對高速緩存控制器212的設計需求大大簡化。這通過避免覆蓋極不規(guī)則(語義上的和臨時性的)體系結(jié)構(gòu)操作和高速緩存操作的常規(guī)行動來完成。對體系結(jié)構(gòu)操作和高速緩存操作作出反應的負擔從高速緩存控制器212的設計中解脫出來,并被置入體系結(jié)構(gòu)控制器214中。
每一臺被感興趣的商業(yè)處理器,以本質(zhì)上相同的形式,支持由高速緩存控制器212處理的高速緩存操作。在本發(fā)明中的高速緩存控制器212被類屬接口220和222從特定實現(xiàn)解耦出來,在特定實現(xiàn)中僅僅小小的不同便可以把各種被感興趣處理器中的可比較指令區(qū)別開來。
通過對所選的高速緩存和體系結(jié)構(gòu)功能進行分層,并實現(xiàn)到總線接口單元204和208的類屬接口,控制器202總體設計的大部分可直接轉(zhuǎn)換到新的實現(xiàn)方案。不必大量修改高速緩存操作,可以重新使用高速緩存控制器邏輯??偩€接口單元邏輯新部分可以容易地實現(xiàn),用以處理新的總線協(xié)議,以及把高速緩存、體系結(jié)構(gòu)、非高速緩存控制器212、214和218的類屬協(xié)議接口220-230轉(zhuǎn)換成總線206和總線210的接口。實現(xiàn)支持不同處理器設計的主要工作是體系結(jié)構(gòu)控制器所需要的。由于處理器體系結(jié)構(gòu)差別較大,需要對支持體系結(jié)構(gòu)操作邏輯進行單獨設計。總之,不論怎樣,既然僅僅由體系結(jié)構(gòu)控制器214處理的操作語義將會改變,對于不同處理器所作的設計上的努力可以大大節(jié)省。
通過對高速緩存和體系結(jié)構(gòu)功能進行分層,使高速緩存控制器212僅對少量基本操作起反應,控制器邏輯在很大程度上被流線型化和簡單化。此外,因為通過分離操作的兩種類別,不同類別操作間交互關(guān)系的問題被消除,所以體系結(jié)構(gòu)控制器的邏輯也被簡化。高速緩存和體系結(jié)構(gòu)控制器可設計成獨立的單元。
總線接口單元204和208負責管理事物處理到總線206和系統(tǒng)總線210的協(xié)議。如果為接口220-230定義了類屬接口,控制器212、214和218的設計可以脫離于特定總線體系結(jié)構(gòu)??偩€接口單元204和208把特定總線事物處理轉(zhuǎn)換成類屬接口220-230的協(xié)議。控制器212、214和218于是成為獨立的,與總線協(xié)議或處理器上的變化無關(guān)。
在定義類屬接口時,從給定總線接口單元204或208到控制器212、214和218中任何每一個的接口與到其中另一個的接口將有區(qū)別,特別是總線206不同于210時。類似地,任何特定控制器212、214或218到總線接口單元204的接口和到208的接口將不同。這樣,接口220-230的每一組將會不同。接口是類屬的,因為通過把操作轉(zhuǎn)換成類屬協(xié)議,它們被設計成處理BIU以外的任何操作。總線操作的本質(zhì)是從總線協(xié)議提取出,并通過類屬接口由BIU與控制器通訊。
為定義類屬接口220-230,類屬協(xié)議必須從傳遞到接口的操作中提取出。忽略總線或處理器體系結(jié)構(gòu)的差別,在等價操作中,可以確認公共線程。比如,READ和WRITE常常以本質(zhì)相同的方式工作,但是可能有時序或持續(xù)時間的不同,其被BIU掩蓋或在單個類屬協(xié)議的詳細內(nèi)容中管理。
現(xiàn)在參考圖3,根據(jù)本發(fā)明的最佳實施例,描述在控制器中類屬接口變量的時序框圖。對于“脈沖”接口,總線接口單元負責收集所有與操作有關(guān)的信息,并將信息包裝成信息包??偩€接口單元于是傳輸準備信號(RDY),并用信息包發(fā)送操作信息。激發(fā)脈沖接口對于其中在相當短的時間內(nèi),能獲取所有相關(guān)信息的操作非常合適。收集好的信息可以有效地傳輸,常常以單個周期。因為處理器將迅速產(chǎn)生操作所需的所有信息,非高速緩存的STORE是適合于脈沖接口操作的一個例子。
“保持”接口典型地涉及請求信號(REQ),其能保留一段時間。與所請求的操作相關(guān)的信息--如地址或域碼的限定信息--已經(jīng)事先由源匯編。其它各種信號在源與目標之間交換,以控制數(shù)據(jù)傳送。結(jié)束信號終結(jié)交換。保持接口適合于具有無限制屬性的操作,比如那些需要長時間并且潛在地時間有變化的操作。READ操作就是一個例子,它占用的時間是隨機不能控制的。
那些對此技術(shù)熟練的人員將認識到除了所描述的脈沖和保持接口以外,其它接口也將適合在高速緩存和體系結(jié)構(gòu)特定功能分層的控制器內(nèi)實現(xiàn)類屬接口,包括對上述接口的變動。比如,在其它控制信號隱含的信息可以取代顯式的DONE信號。用于實現(xiàn)接口操作的特征將驅(qū)動最適合的接口。
重新參考圖2,接口220-230中的每一個實際上是一組接口。比如,接口集220對于在BIU204和高速緩存控制器212之間傳送的每一個操作至少有一個明確的接口。由于性能方面的原因,一個特定操作接口的多個相同版本可以包括在專門接口集里。特定操作的接口將在操作類型和上述的脈沖、保持、或其它接口適合性的基礎上實現(xiàn)參考圖4,根據(jù)本發(fā)明的最佳實施例,表示在高速緩存和體系結(jié)構(gòu)特定功能分層的控制器內(nèi),使用類屬接口過程的高級流程圖。在高速緩存和體系結(jié)構(gòu)特定操作分層并且包括高速緩存和體系結(jié)構(gòu)控制器類屬接口的控制器內(nèi),過程被執(zhí)行。
過程開始于402步,其描述在處理器總線探測操作。過程接著到404步,其說明使用一個類屬接口,把操作轉(zhuǎn)換成類屬協(xié)議,到步406,其描述判斷指令是高速緩存操作還是體系結(jié)構(gòu)操作。盡管是分別描述的,但404和406步可以重疊,由于為對合適的接口進行操作轉(zhuǎn)換,必須決定操作性質(zhì)。
如果操作是高速緩存操作,過程進行到408步,其表示在高速緩存控制器內(nèi)執(zhí)行操作。過程進行到416步,其描述過程處于空閑狀態(tài),直到探測到另一個操作。重新參考406步,如果操作不是高速緩存操作,過程進行到410步,此步描述了把操作分解成高速緩存操作,并接著進行到412步,其描述把高速緩存操作轉(zhuǎn)換成系統(tǒng)總線協(xié)議。410和412步可重疊。
接下來,過程進行到414步,其表示把高速緩存操作傳輸?shù)较到y(tǒng)總線。接著,過程進行到416步,其描述過程處于空閑狀態(tài),直到探測到另一個操作。
所述過程涉及在控制器中處理器方面的總線接口單元操作。類似過程也出現(xiàn)在控制器系統(tǒng)總線方面,但是其僅僅要求402、404和406步。
通過允許類屬接口與分層的高速緩存和體系結(jié)構(gòu)操作聯(lián)合使用,本發(fā)明提供了使控制器邏輯設計不受協(xié)議和/或處理器變化影響能力。這是用現(xiàn)有技術(shù)途徑是不能實現(xiàn)的,其采用相對簡單的高速緩存操作覆蓋語義上的和臨時性的體系結(jié)構(gòu)操作。體系結(jié)構(gòu)操作呈現(xiàn)出不規(guī)則的、臨時性的行為,同樣的操作在不同的場合需要的時間不同。體系結(jié)構(gòu)操作同樣需要對特殊事件的支持。體系結(jié)構(gòu)和高速緩存操作相互聯(lián)系越多,就越難定義類屬接口并獲得伴隨的利益。
另外,本發(fā)明在控制器合適的段之間,對復雜性進行分割,把它們移到合適的位置。這樣,控制器的每一段在已定義好的接口中具有已定義好的工作項目。這種分割-占領法把設計的努力分層成更易管理、相對獨立的單元。
當參考最佳實施例,特別說明和描述本發(fā)明時,對此技術(shù)熟練的人員將理解只要不脫離本發(fā)明的精神和范圍,可以在其中的方式和細節(jié)上作各種修改。
權(quán)利要求
1.一種在高速緩存控制器中,使用類屬接口的方法,包括以特定協(xié)議,接收總線操作;把所述總線操作轉(zhuǎn)換成多個控制器單元中的一個控制器邏輯單元的類屬接口所使用的協(xié)議,在所述的多個控制器單元中的每一個控制器邏輯單元處理不同類別的操作;以及傳輸所述轉(zhuǎn)換過的總線操作到所述控制器邏輯單元,其中,類屬體系結(jié)構(gòu)的獨立接口可以用于控制器邏輯單元,對高速緩存控制器內(nèi)的操作類別進行分層。
2.一個高速緩存控制器,包括一個總線接口單元;多個控制器邏輯單元,在所述的多個控制器單元中的每一個控制器邏輯單元處理不同類別的操作;以及在其中所述多個控制器邏輯單元的一個控制器邏輯單元和所述總線接口單元之間,至少有一個類屬接口,其中在高速緩存控制器中,對所述操作類別分層的控制器邏輯單元裝備了體系結(jié)構(gòu)獨立的接口。
全文摘要
在高速緩存控制器內(nèi)的高速緩存和體系結(jié)構(gòu)特定功能被分層,并裝備了類屬接口。高速緩存和體系結(jié)構(gòu)操作的分層,允許對控制器內(nèi)控制器邏輯和總線接口單元之間的類屬接口進行定義。通過吸取被支持操作的本質(zhì),加入到類屬協(xié)議,以定義類屬接口。接口本身可以是脈沖或保持接口,這根據(jù)操作性質(zhì)而定。通過適當修改總線接口單元,設計可直接應用于不同協(xié)議或處理器的、新的控制器上。
文檔編號G06F12/08GK1202655SQ9810568
公開日1998年12月23日 申請日期1998年3月23日 優(yōu)先權(quán)日1997年4月14日
發(fā)明者拉維·K·阿里米利, 約漢·S·多德森, 杰里·D·路易斯, 德雷克·E·威廉 申請人:國際商業(yè)機器公司