專利名稱:用于多通道高速緩存的更新處理機的制作方法
技術領域:
本發(fā)明的示例性且非限制性實施方式一般地涉及數(shù)據(jù)存儲系統(tǒng)、裝置、設備、方法和計算機程序,并且尤其涉及高速緩存存儲器系統(tǒng)、裝置、設備、方法和計算機程序。
背景技術:
本節(jié)意在提供權利要求中所敘述的本發(fā)明的內(nèi)容的背景或環(huán)境。這里的描述可以包括能夠被實現(xiàn)的概念,但這些概念并不一定是此前構想、實施或描述過的概念。因此,除非另外指出,本節(jié)所描述的內(nèi)容并不是本申請的說明書和權利要求的現(xiàn)有技術,而且也不因被包括在本節(jié)中而被承認為現(xiàn)有技術。說明書和/或附圖中可能出現(xiàn)的以下縮寫形式定義如下BO字節(jié)偏移CMH (多通道)高速緩存未命中處理機CPU中央處理器DRAM 動態(tài)隨機存取存儲器HW硬件LSB最低有效位 MC多通道MC_Cache多通道高速緩存MCMC 多通道存儲器控制器MMU存儲器管理單元PE處理元件SIMD 單指令多數(shù)據(jù)流Sff 軟件TLB 旁路轉(zhuǎn)換緩沖器VPU 向量處理單元μ P 微處理器處理設備典型的包括一個或多個處理單元和存儲器。在一些情況中,到存儲器的存取可能比期望的要慢一些。這可能是由于例如并行存取之間的競爭和/或因為所使用的記憶存儲(memory storage)對其存取速度有基本的限制。為了緩解這個問題,可在處理單元和存儲器之間插入高速緩存存儲器。高速緩存存儲器一般小于所述存儲器,并可以使用具有較快的存取速度的記憶存儲??梢越o多個處理單元安排每個處理單元都可用的高速緩存。每個存儲單元可以具有其自己專用的高速緩存??商鎿Q地,共享高速緩存存儲器單元可以包括分離的高速緩存,其中在處理單元之間對高速緩存的分配由集成crossbar確定
發(fā)明內(nèi)容
根據(jù)本發(fā)明的示例性實施方式,前述問題以及其它問題都被克服,并且實現(xiàn)了其它優(yōu)勢。在本發(fā)明的示例性實施方式的第一方面,提供了一種方法,包括確定至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)這兩種情況之一更新多通道高速緩存存儲器的需要;以及操作多通道高速緩存未命中處理機以從主存儲器更新所述多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。在本發(fā)明的示例性實施方式的另一方面,提供了一種設備,包括多通道高速緩存存儲器,該多通道高速緩存存儲器包括多個高速緩存通道存儲器。所述設備進一步包括多通道高速緩存未命中處理機,其被配置為至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)這兩種情況之一,響應更新所述多通道高速緩存存儲器的需要以從主存儲器更新所述多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。
當結合附圖閱讀以下具體實施方式
時,本發(fā)明的示例性實施方式的上述以及其它 方面會變得更加明顯,其中圖1-6示出了在共同所有的PCT/EP2009/062076中描述的發(fā)明的示例性實施方式中的實施方式,其有助于增強對本發(fā)明的示例性實施方式的理解,其中圖I示意性地圖示了涉及使用存儲器的多高速緩存通道的方法;圖2A示出了針對存儲器接入請求的高速緩存分配取決于包括在存儲器接入中的存儲器地址;圖2B示出了針對存儲器接入請求的高速緩存分配獨立于關于其作出所述存儲器接入請求的處理單元的身份;圖3示意性地圖示了適于執(zhí)行圖I中的方法的系統(tǒng)的功能性組件;圖4示意性地圖示了多通道高速緩存存儲器單元;圖5示意性地圖示了所述系統(tǒng)的物理實施的一個示例;圖6A示出了包括一個或多個標識參考的存儲器接入請求的示例;以及圖6B示出了跟隨在讀訪問之后的典型響應的示例。圖7-11示出了本發(fā)明的示例性實施方式中的實施方式,其中圖7示出了根據(jù)本發(fā)明的示例性實施方式的具有多通道高速緩存和多通道高速緩存未命中處理機的示例性系統(tǒng)架構;圖8更詳細地示出了圖7的多通道高速緩存;圖9A、9B和9C對地址分配和相應的高速緩存通道編號和索引的各種非限制性示例進行了描述;圖10AU0B和IOC描述了具有分布式高速緩存未命中處理機(圖10AU0C)和集中式高速緩存未命中處理機(圖10B)的多通道高速緩存的示例性實施方式;以及圖11是在描述根據(jù)示例性實施方式的方法以及計算機程序指令的執(zhí)行結果時有用的邏輯流程圖。
具體實施方式
本發(fā)明的示例性實施方式涉及存儲器分級體系中的高速緩存存儲器,并且提供一種用于至少當高速緩存未命中發(fā)生時或當存在從主存儲器預先獲取數(shù)據(jù)給所述多通道的需要時更新多通道高速緩存中的數(shù)據(jù)的技術。也就是說,在沒有高速緩存未命中發(fā)生時也可使用示例性實施方式來從存儲器分級體系的下一級別預先獲取數(shù)據(jù)給多通道高速緩存??紤]到多通道存儲器分級體系的獨特能力,示例性實施方式提供在多通道高速緩存中更新數(shù)據(jù)。示例性實施方式使得高速緩存行更新能夠在多通道高速緩存存儲器的環(huán)境中被有效執(zhí)行。在詳細描述本發(fā)明的示例性實施方式之前,參考圖1-6回顧在2009年9月17日遞交的共同擁有的PCT/EP2009/062076中描述的多通道高速緩存存儲器是有用的。圖I示意性地圖示了涉及使用多通道高速緩存存儲器作為存儲器的方法I。存儲器具有典型地大于多通道高速緩存存儲器的容量的地址空間。使用存儲器接入請求來訪問存儲器,其中每個存儲器接入請求都包括存儲器地址。
圖2A示意性地圖示了如何將存儲器的地址空間分成多個定義部分10AU0B和IOC0在這一特定的示例中,部分10AU0B和IOC是不重疊的部分。這些部分10A、10B、IOC中的每一個部分可稱為唯一地址空間10,這是因為這些部分中的每一個部分在任何特定的時刻都是存儲器的地址空間的唯一可用部分,其中存儲器的地址空間包括沒有為在該特定時刻使用而被包括在任何其它定義部分中的一個或多個地址?;氐綀DI中的塊2,唯一地址空間10中的每一個與不同的高速緩存通道11A、11B、Iic相關聯(lián)。在圖2A中通過圖表對該關聯(lián)進行了圖示,其中每個唯一地址空間10A、10BU0C只與高速緩存通道11A、1 IBUlC中的一個相關聯(lián)。在合適的存儲中對所述關聯(lián)進行了記錄,以供以后使用。所述關聯(lián)可以是直接的,例如,用于高速緩存通道的高速緩存塊20 (圖4)可以被明確地標識。所述關聯(lián)可以是間接的,例如,只服務特定高速緩存塊的輸出接口可以被明確地標識。在圖I的塊4中,處理每一個存儲器接入請求。來自所接收的存儲器接入請求的存儲器地址被用來標識包括該地址的唯一地址空間10。
進而,參考圖2A,如果所接收的存儲器接入請求包括存儲器地址11,則包括存儲器地址11的定義的唯一地址空間IOB被標識。根據(jù)所述關聯(lián),與被標識的唯一地址空間部分IOB相關聯(lián)的特定的高速緩存通道IIB被標識并被分配進行使用。隨后將存儲器接入請求發(fā)送到關聯(lián)的高速緩存通道11B。從圖2A應該注意到,定義的唯一地址空間10并不需要覆蓋全部存儲器地址空間。還應注意到,雖然在圖2A中唯一地址空間10被描述為包括存儲器的地址空間中的連續(xù)地址序列,但這并不是必須的??梢允褂萌魏芜m當?shù)姆绞綄ξㄒ坏刂房臻g進行定義,只要唯一地址空間保持唯一即可。例如,可以使用存儲器地址中的任何N個比特(相鄰或非相鄰)來定義2Nf (其中N是大于或等于I的整數(shù))不重疊的唯一地址空間。在一些實施方式中,存儲器接入請求可以涉及單個處理單元。在其它實施方式中,存儲器接入請求可以涉及多個處理單元。圖2B示出了高速緩存通道11到存儲器接入請求的分配與關于其做出存儲器接入請求的處理單元的身份無關,而圖2A則示出了高速緩存通道11到存儲器接入請求的分配取決于包括在存儲器接入請求中的存儲器地址和所定義的唯一地址空間10。
在一些實施方式中,存儲器接入請求可以源自其所涉及的處理單元,而在其它實施方式中,存儲器接入請求可以源自不同于其所涉及的處理單元的電路。對存儲器接入請求的響應返回到存儲器接入請求所針對的處理單元。圖3示意性地圖示了適于執(zhí)行圖I中的方法的系統(tǒng)18的功能性組件。系統(tǒng)18包括多個高速緩存通道11A、IlBUlC ;仲裁電路24 ;和多個處理單元22A、22B。雖然示出了特定數(shù)量的高速緩存通道11,但這只是示例,可以存在M (M>1)個高速緩存通道。雖然示出了特定數(shù)量的處理單元22,但這只是示例,可以存在P(P ^ I)個處
理單元。在該實施方式中,第一處理單元22A被配置成向仲裁電路24提供第一存儲器接入 請求23A。第二處理單元22B被配置成向仲裁電路24提供第二存儲器接入請求23B。每個處理單元22可以經(jīng)由仲裁電路24向所有高速緩存通道11A、11B、11C提供存儲器接入請求。每個存儲器接入請求(箭頭23所示)包括存儲器地址。存儲器接入請求23可被描述為對應于與存儲器地址相關聯(lián)的一定量的存儲器數(shù)據(jù),該地址可位于系統(tǒng)的主存儲器中的任何地方。仲裁電路24基于包括在請求中的存儲器地址將所接收的存儲器接入請求23引導至合適的高速緩存通道,作為被引導的存儲器接入請求25。每個高速緩存通道11只接收包括位于與高速緩存通道11相關聯(lián)的唯一地址空間10內(nèi)的存儲器地址的(被引導的)存儲器接入請求25。高速緩存通道11A、IlBUlC中的每一個服務不同的唯一地址空間10A、10B、10C。
高速緩存通道11只接收包括落入與該高速緩存通道相關聯(lián)的唯一地址空間10內(nèi)的存儲器地址的那些存儲器接入請求。(涉及不同的唯一地址空間的)存儲器接入請求被不同的高速緩存通道并行(即,例如在同一時鐘周期期間)接收并處理。然而,由于單個高速緩存通道11可以從多個不同的處理單元同時接收存儲器接入請求,高速緩存通道優(yōu)選地包括用于緩沖存儲器接入請求的電路。所有高速緩存通道11A、1 IBUlC可以實現(xiàn)在單個多通道單元中,或?qū)崿F(xiàn)在僅單通道單元、或僅多通道單元、或單通道單元和多通道單元兩者的任何組合中。單元可分布在整個系統(tǒng)18中,并且不必位于同一位置。在該示例中,仲裁電路24包括輸入接口 28、控制電路30和輸出接口 29。在該特定非限制性示例中,仲裁電路24包括本地數(shù)據(jù)存儲27。在其它實現(xiàn)中,存儲27可以在另一組件中。數(shù)據(jù)存儲27是任何本地的或遠程的合適存儲設施,并用于存儲數(shù)據(jù)結構,在該示例中,所述數(shù)據(jù)結構將多個定義的唯一地址空間10中的每一個與多個不同的輸出接口 29中的特定的一個輸出接口相關聯(lián)。在其它實現(xiàn)中,多個定義的唯一地址空間10中的每一個與高速緩存通道之間的關聯(lián)可以以其它的方式實現(xiàn)。輸入接口 28被配置成接收存儲器接入請求23。在該示例中,存在兩個輸入接口28A、28B。第一輸入接口 28A接收對第一處理單元22A的存儲器接入請求23A。第二輸入接口 28B接收對第二處理單元22B的存儲器接入請求23B。輸出接口 29中的每一個只連接到相應的單個高速緩存通道11。每個高速緩存通道11只連接到相應的單個輸出接口 29。也就是說,在輸出接口 29與高速緩存通道11之間
存在一對一映射??刂齐娐?0被配置成將所接收的存儲器接入請求23路由到適當?shù)妮敵鼋涌?29。控制電路30被配置成將包括在所接收的存儲器接入請求中的存儲器地址標識為目標地址??刂齐娐?0被配置成使用數(shù)據(jù)存儲27來將包括目標地址的唯一地址空間10標識為目標唯一地址空間??刂齐娐?0被配置成訪問數(shù)據(jù)存儲27并選擇與數(shù)據(jù)存儲27中的目標唯一地址空間相關聯(lián)的輸出接口 29??刂扑x擇的輸出接口 29以將存儲器接入請求25發(fā)送到一個高速緩存通道11,并且不發(fā)送到其它高速緩存通道11。在該非限制性示例中,所選擇的接入請求可以是針對多個處理單元中的任何一個處理單元的,并且對輸出接口 29的選擇獨立于存儲器接入請求所涉及的處理單元的身份。
在該非限制性示例中,控制電路30被配置成并行處理多個存儲器接入請求23并分別并行選擇不同的輸出接口 29。仲裁電路24可以包括每個輸出接口 29的緩沖器。于是緩沖器將為特定輸出接口 /高速緩存通道緩沖存儲器接入請求25。仲裁電路24的操作可以被描述為從多個處理單元22接收存儲器接入請求23 ;如果第一存儲器地址來自存儲器的地址空間中定義的第一部分10A,則只向第一高速緩存通道IlA發(fā)送包括第一存儲器地址的所接收的第一存儲器接入請求23A,但如果第一存儲器地址來自不同于存儲器的地址空間中定義的第一部分IOA的存儲器的地址空間中的部分IOB或IOC則不是這樣;以及如果第一存儲器地址來自存儲器的地址空間中定義的第二部分10B,則只向第二高速緩存通道IlB發(fā)送第一存儲器接入請求23A,但如果第一存儲器地址來自不同于存儲器的地址空間中定義的第二部分IOB的存儲器的地址空間中的部分IOA或IOC則不是這樣;如果第二存儲器地址來自存儲器的地址空間中定義的第一部分10A,則只向第一高速緩存通道IlA發(fā)送包括第二存儲器地址的所接收的第二存儲器接入請求23B,但如果第二存儲器地址來自不同于存儲器的地址空間中定義的第一部分IOA的存儲器的地址空間中的部分IOB或IOC則不是這樣;以及如果第二存儲器地址來自存儲器中定義的第二部分10B,則只向第二高速緩存通道IlB發(fā)送第二存儲器接入請求23B,但如果第二存儲器地址來自不同于存儲器的地址空間中定義的第二部分IOB的存儲器的地址空間中的部分IOA或IOC則不是這樣。仲裁電路24以及(尤其是)控制電路30可以只在硬件中實現(xiàn),或者其可具有僅在包括固件的軟件中實現(xiàn)的某些方面,或者其可以是硬件和軟件(包括固件)的組合。仲裁電路24以及(尤其是)控制電路30的實施可以使用允許硬件功能性的指令來實現(xiàn),例如,通過在通用或?qū)S锰幚砥髦惺褂每蓤?zhí)行的計算機程序指令來實現(xiàn),所述可執(zhí)行的計算機程序可存儲在計算機可讀存儲介質(zhì)(磁盤、半導體存儲器等)上以由這種處理器執(zhí)行?!獋€或多個存儲器存儲單元可用于為高速緩存通道提供高速緩存塊。在一些實施中,每個高速緩存通道11可以具有用于服務發(fā)送到該高速緩存通道的存儲器接入請求的其自己的高速緩存塊。所述高速緩存塊可以與其它高速緩存塊邏輯地或物理地分離。如果高速緩存塊是邏輯地定義的,則可以通過在塊之間移動邏輯邊界來重配置高速緩存塊。圖4示意性地圖示了多通道高速緩存存儲器單元40的許多可能實施中的一個。在該示例中,多通道高速緩存存儲器單元40包括(但不限于)多個并聯(lián)的輸入端口 44A、44B、44C、44D (統(tǒng)稱為并聯(lián)輸入端口 44)和多個高速緩存塊20A、20B、20C、20D (統(tǒng)稱為高速緩存塊 20)。如圍繞每個高速緩存塊20的虛線所指示的一樣,高速緩存塊20A、20B、20C和20D被認為是彼此隔離的?!案綦x”可以是例如“一致性隔離”,其中,高速緩存不為了數(shù)據(jù)一致性的目的與其它高速緩存通信?!案綦x”可以是例如“完全隔離”,其中高速緩存不為任何目的與其它高速緩存通信。隔離配置多個高速緩存中的每個高速緩存以服務存儲器中的指定的地址空間。由于多個高速緩存未被配置為服務存儲器的任何共享地址空間,因此不需要用于維持高速緩存塊之間的一致性的一致性電路,而且該一致性電路不存在。多個并聯(lián)輸入端口 44A、44B、44C和44D被配置成并行接收相應的存儲器接入請求25A、25B、25C和25D。每個并聯(lián)輸入端口 44只接收對單個唯一地址空間10的存儲器接入請求。 在該示例中,多個并聯(lián)輸入端口 44中的每一個被處理單元22 (但不被高速緩存塊20)共享,并被配置成接收對所有處理單元22的存儲器接入請求。并行排列多個高速緩存塊20中的每一個,并且它們作為組合被配置成并行處理來自多個不同處理單元的多個存儲器接入請求。多個高速緩存塊20中的每一個包括多個條目49。通常,每個條目包括用于標識關聯(lián)的數(shù)據(jù)字及其有效性的部件。在示出的示例中,每個條目49包括標記字段45和至少一個數(shù)據(jù)字46。在這一示例中,每個條目還包括有效性位字段47。每個條目49被查找索引48引用。應該理解的是,這只是一個示例性的實施。在可以找到的教科書里面對單獨的高速緩存塊20的操作進行了很好的記載,這里不再詳細討論。然而,為了完整性,將會給出關于高速緩存塊20如何處理存儲器(讀取)接入請求的簡要概述。需要注意的是,對單獨的高速緩存塊20的這一操作的討論不應被解釋為指示在根據(jù)發(fā)明的示例性方面的多通道高速緩存存儲器的上下文中提供多個這種高速緩存塊20是已知的。使用包括在所接收的存儲器接入請求25中的存儲器地址的索引部分訪問由該索引引用的條目49。所接收的存儲器地址中的標記部分被用于驗證所訪問的條目49的標記字段45。成功的驗證導致“高速緩存命中”,并且命中響應的生成包括來自所訪問的條目49的字46。不成功的驗證導致“未命中”、對存儲器的讀取訪問以及對高速緩存的更新。在示出的示例中,每個高速緩存塊20具有關聯(lián)的專用緩沖器42,專用緩沖器42對所接收的但尚未處理的對高速緩存通道的存儲器接入請求進行緩沖。這些緩沖器是可選的,盡管它們的存在至少在解決爭用情況時是優(yōu)選的,其中在兩個或更多PU嘗試同時訪問同一高速緩存通道時會發(fā)生這種爭用情況。可以例如以模塊的形式來提供多通道高速緩存存儲器單元40。在這里使用的“模塊”可以指排除由終端制造商或用戶添加的某些部件/組件的單元或設備。圖5示意性地圖示了之前參照圖3描述的系統(tǒng)18的物理實施的一個示例。在該示例中,多個處理單元22A、22B、22C是加速器50 (比如,例如圖像加速器)的一部分。加速器被優(yōu)化以進行有效處理。在這一示例中,仲裁電路24是加速器50的不可或缺的一部分。加速器50在仲裁電路24和多通道高速緩存之間具有大量并聯(lián)的互連52。每個互連連接仲裁電路24的單個輸出接口 29與單個高速緩存輸入端口 44。本例中的處理單元22包括通用處理單元(CPU) 22A、專用處理元件(PE) 22B和矢量處理單元(VPU) 22C。CPU 22A和PE 22B生成它們自己的存儲器接入請求。VPU 22C是SIMD類型的處理元件,并且在本例中需要四個并行的數(shù)據(jù)字。每個處理單元執(zhí)行其自己的任務并獨立地訪問存儲器56。雖然圖5將仲裁電路24示為加速器50的一部分,但應該理解的是,在一些實施方式中,仲裁電路可以是多通道高速緩存單元40的一部分。在其它實施方式中,仲裁電路24可以是處理單元的一部分或加速器的一部分。在另外的實施方式中,仲裁電路可以分布在兩個或更多之前提到的位置。在這一實施方式中以及在之前描述的實施方式中,系統(tǒng)18可以執(zhí)行許多功能。例如,仲裁電路24可以重新定義唯一地址空間并改變存儲27中記錄的關聯(lián)。結果,每個高速緩存塊20可以變成與不同的唯一地址空間10相關聯(lián)。 結果,仲裁電路24的控制電路30被配置成訪問數(shù)據(jù)存儲27以重新定義唯一地址空間,并被配置成生成用于高速緩存塊20的至少一個控制信號。在通過多個處理單元22檢測到對存儲器的特定預定訪問模式之后,仲裁電路24可以重新定義唯一地址空間。例如,仲裁電路24可以通過多個處理單元22標識對存儲器的預定接入模式,然后基于所述標識重新定義唯一地址空間10。對唯一地址空間的重新定義可以通過增加命中的百分比使得能夠?qū)Ω咚倬彺嫱ǖ肋M行更有效的使用。例如,所述重新定義可以增加在每一周期所有高速緩存通道都被成功接入的幾率。MCC存儲器單元40被配置成通過將多通道高速緩存存儲器單元40中的所有有效性位字段47設定成無效來響應控制信號。所有高速緩存塊20可使用單個全局控制信號,或每個高速緩存塊20可使用單獨的控制信號。在一些實施方式中,只有唯一地址空間10的一部分可被重新定義,并且可使用單獨的控制信號選擇性的將MCC存儲器單元40中的有效位設置成無效。參照圖6A,其中示出了存儲器接入請求23的實施的非限制性示例。存儲器接入請求23包括標識訪問是否是用于讀取或用于寫入的讀/寫位60、包括存儲器地址的地址字段62、以及一個或多個標識編號(reference)。在示出的示例中,存儲器訪問是針對特定存儲單元22的,第一標識編號64標識該處理單元,第二標識編號66排序?qū)λ鶚俗R的處理單元的存儲器接入請求。當高速緩存塊20接收存儲器接入請求25并緊接在高速緩存查找之后生成響應70時,響應包括在存儲器接入請求中接收的一個或多個標識編號。圖6B示出了緊接在成功讀取訪問之后的典型響應70的示例。響應70包括所訪問的字46,還包括第一標識編號64和第二標識編號66。第一標識編號64可以使得能夠?qū)㈨憫?0路由到由第一標識編號64所標識的特定處理單元22。第二標識編號66可以使得能夠排序或重排序?qū)μ幚韱卧捻憫?0。在對共有的PCT/EP2009/062076中描述的發(fā)明的示例性實施方式進行描述之后,現(xiàn)在參照圖7-11描述本發(fā)明的示例性實施方式。首先注意的是,為了增強處理性能,可以期望增加采用多核處理、多通道高速緩存和多通道DRAM的形式的增加的HW并行性。本發(fā)明的示例性實施方式提供了用于諸如上述MC_Cache 40的多通道高速緩存的未命中處理機(圖7中示出的高速緩存未命中處理機或CMH 102),并提供了用于并行存儲器主處理器(master)(例如多核)有效開發(fā)MC_Cache 40的部件。注意到,不失一般性,CMH 102還可被稱作多通道高速緩存更新處理機。圖7在更寬的系統(tǒng)環(huán)境中示出了圖5中的加速器結構50。在示例性的系統(tǒng)環(huán)境中,可以存在至少一個具有相關聯(lián)的MMU 112的CPU 110,MMU 112與連接到系統(tǒng)互連52 (從而同樣連接到主存儲器56)的常規(guī)高速緩存114耦合。在這一示例中,主存儲器56是使用多通道(MC)DRAM實現(xiàn)的,并經(jīng)由MCMC 54耦合到系統(tǒng)互連52。閃存(非易失性存儲器)118也經(jīng)由閃存控制器116耦合到系統(tǒng)互連52??梢源嬖跇蚪与娐?20,以用于將系統(tǒng)互連52連接到服務一些外圍組件124AU24B的外圍互連122??墒褂酶郊拥臉蚪与娐?26將外圍互連122耦合到外部互連128,以使得能夠與外部電路/網(wǎng)絡連接。在這一非限制性示例中,CMH 102與MC_Cache 40位于同一位置。圖7中示出的系統(tǒng)可以是包括個人電腦(臺式電腦或筆記本電腦)、工作站、服務器、路由器或便攜式用戶裝置(諸如包含個人數(shù)字助理、游戲裝置或控制臺、以及便攜式移動通信裝置(比如蜂窩電話)中的一個或多個的一個便攜式用戶裝置)作為多個非限制性示例的任意類型的系統(tǒng)。 通常,在某些情況中(例如當發(fā)生高速緩存未命中時或當執(zhí)行高速緩存預取時),需要對高速緩存存儲器內(nèi)容進行更新。也就是說,高速緩存內(nèi)容是從/向存儲器分級體系的下一級(比如DRAM 56或閃存118)加載/存儲的。然而,在具有若干存儲器主處理器、多通道存儲器和多通道高速緩存的環(huán)境中,傳統(tǒng)的高速緩存更新策略或者將是不能被操作的,或者將導致低性能。與傳統(tǒng)的高速緩存相比,多通道高速緩存(MC_Cache) 40提供增強的功能。然而,用于處理高速緩存未命中的傳統(tǒng)技巧可能是不夠的。關于MC_Cache 40的一個具體問題是從存儲器分級體系的下一級存取了什么數(shù)據(jù)。關于MC_Cache 40可能出現(xiàn)的另一問題是,在若干單獨的事務處理中,若干通道可以訪問同一地址或連續(xù)的地址,這可以減少帶寬?,F(xiàn)代的高速緩存利用所述訪問的空間局域性。這指的是,當一些數(shù)據(jù)元素被訪問時,假定位于該數(shù)據(jù)元素附近的一些數(shù)據(jù)將很有可能不久就會被訪問。因此,當高速緩存中發(fā)生未命中(即,所請求的數(shù)據(jù)元素沒有位于所述高速緩存中)時,不僅在高速緩存中對所需要的數(shù)據(jù)進行更新,而且在所需要的地址周圍的數(shù)據(jù)也被存取到所述高速緩存。所存取的數(shù)據(jù)量可被稱作“高速緩存行”或“高速緩存塊”。圖7中示出的多通道高速緩存未命中處理機(CMH) 102管理對存儲器分級體系的下一級(例如對多通道主存儲器56)的MC_Cache40操作。圖8描述了具有多通道高速緩存未命中處理機(CMH) 102的MC_Cache 40架構。當發(fā)生高速緩存未命中時,CMH 102的示例性實施方式具有許多從存儲器分級體系的下一級更新MC_Cache 40的高速緩存更新方法(下文中詳細描述)。此外,在可能時CMH_102操作以合并來自若干高速緩存通道的訪問。CMH 102可以將數(shù)據(jù)接入到其他通道,而不僅僅是產(chǎn)生未命中的通道,并且還可以合并初始化于若干高速緩存通道的訪問?,F(xiàn)在更詳細地描述高速緩存更新方法,存儲器地址釋義(包括通道分配)可以說明如下。假設如圖8所示的32-比特地址空間和4-通道(Ch)MC_Cache 40。在圖8中,符號$’指示高速緩存通道存儲器。當假定32-比特數(shù)據(jù)字的非限制性情況時,地址的兩個LSB定義字節(jié)偏移(B0)。地址比特4:3可被解釋為標識所述通道(Ch)。十個比特可以表示索引(例如比特[13:5]以及[2])。18個最高有效位[31:14]可以表示標志。以下示例關于從存儲器分級體系的下一級的高速緩存數(shù)據(jù)更新方法。除非另外指示,這些非限制性示例假定對MC_Cache 40的每次接入都發(fā)生未命中。在常規(guī)(非多通道)高速緩存中,高速緩存行是直接定義的。例如,具有32-比特字和16字節(jié)的高速緩存行長度,地址O. . . 15構成單條線,地址16. . . 31構成第二線,等等。從而,高速緩存行被對齊為彼此相鄰。在這種情況中,當處理器訪問來自地址12的一個字(并且發(fā)生高速緩存未命中)時,整條線都更新到高速緩存。在這一情況中,從主存儲器訪問來自地址0-15的數(shù)據(jù),并將這些數(shù)據(jù)存儲在高速緩存中。作為MC_Cache 40的示例,假定使用四個通道(ChO、Chi、Ch2、Ch3)并且假定地址如圖9A中示出的那樣分配,其中使用與圖8中相同的地址釋義。如果來自地址12的一個字被訪問并且高速緩存行長度是16字節(jié),產(chǎn)生的問題是當發(fā)生高速緩存未命中時從存儲器分級體系中的下一級更新什么數(shù)據(jù)。存在四種可能(如下標為1、2、3和4) I)第一種可能是,只訪問引起所述高速緩存未命中發(fā)生的數(shù)據(jù)(即在這一情況中的來自地址12的字)。2)第二種可能是,只訪問發(fā)生未命中的通道中的高速緩存行長度的數(shù)據(jù)。地址12位于索引I (Inl)中的通道I (Chl),因此,通道I中的索引InO、Inl、In2、In3被更新。在這一示例中,這意味著地址8-15和40-47。3)第三種可能是,訪問地址0-15,意味著兩個高速緩存通道(ChO和Chl)被更新,盡管只在一個通道中發(fā)生未命中。這基于期望的高速緩存行大小是16字節(jié)的假定??蛇x地,從兩個通道(ChO和Chl)中訪問數(shù)量為高速緩存行數(shù)量的數(shù)據(jù)。在這一情況中,地址0-15和32-47被訪問。4)第四種可能是,訪問所有高速緩存通道中的同一索引。因此,由于在地址12(通道I中的索引I)處發(fā)生了未命中;數(shù)據(jù)被更新到所有通道中的索引1(地址4、12、20和28)。在這一情況中,從主存儲器56向MC_Cache 40的所有通道加載相同數(shù)量的數(shù)據(jù)。在每個通道都具有可選的最小高速緩存行間隔尺寸(granularity)的情況下,接入地址從O到63,導致總共64個字節(jié)被更新。MC_Cache 40的另一示例關于分配給分離通道的存儲器空間相對較大的情況。作為一個具有兩個通道的示例,地址O. . . 4K-1屬于通道O (K=1024),地址4Κ. . . 8Κ-1屬于通道1,地址8Κ. . . 12Κ-1屬于通道0,等等。這一情況示于圖9Β中?,F(xiàn)在,當?shù)刂?2發(fā)生未命中且高速緩存行長度是16字節(jié)時,更新進程按如下方法進行(使用上述四種可能)Α)地址 12··· 15 被更新;B)地址O... 15被更新(通道O中的索引InO. .. Ιη3);C)地址O··· 15被更新;或D)更新地址12和4Κ+12 (通道O和I中的索引Ιη3)這樣,由于該示例中存在兩個通道,因此在情況D)中只有8個字節(jié)被訪問??蛇x的,被訪問的地址是O. . . 15和4k. . . 4k+15。該例中總共32個字節(jié)被訪問。為了概括高速緩存更新方法,考慮如下內(nèi)容。多通道高速緩存未命中處理機102具有當高速緩存未命中發(fā)生時使用若干從存儲器分級體系的下一級(或從存儲器分級體系的任意隨后的級)更新MC_Cache 40的高速緩存更新方法進行操作的可能性。多通道高速緩存未命中處理機102能夠從使用一種特定的更新方法轉(zhuǎn)換到使用另一種更新方法,比如通過從MMU 100進行可編程的控制。高速緩存更新方法被指定為下文中的A、B、C和D,分別對應于上文中討論的可能性I、2、3和4。高速緩存更新方法A):只更新引起高速緩存未命中發(fā)生的數(shù)據(jù)。然而,由于例如DRAM對存儲器56的讀取操作的實施,這一方法可能效率不高。高速緩存更新方法B):為單個高速緩存通道存儲器更新高速緩存行數(shù)量(worth)的數(shù)據(jù)。因此,只對未命中發(fā)生的高速緩存通道更新數(shù)據(jù)。高速緩存更新方法C):更新來自隨后的地址的高速緩存行數(shù)量的數(shù)據(jù)。在這一情況中,可以對若干高速緩存通道更新數(shù)據(jù)。高速緩存更新方法D):更新所有通道中的同一索引。在這一情況中,對所有通道更新數(shù)據(jù),并對所有通道產(chǎn)生相同的帶寬。
可選地,方法C和D可用于單個通道具有最小間隔尺寸的高速緩存行的情況中。在這一情況中,對齊的(aligned)高速緩存行是對于單個通道來講最小被接入的數(shù)據(jù)量。與傳統(tǒng)系統(tǒng)相比,可以更加自由的選擇高速緩存行的大小。典型的高速緩存行是32或64字節(jié)。由于一些上述方法使用通道的數(shù)量來倍增需要的更新動作(即多通道高速緩存更新)的數(shù)量,因此限制高速緩存行的大小可能是期望的。最小的有效率高速緩存行大小基本上由存儲器技術所決定(主要由讀脈沖(burst)的大小所決定)。為了有效率的使用,對下一級存儲器分級體系(例如多通道主存儲器)的配置優(yōu)選地考慮上述方法和多通道高速緩存配置?,F(xiàn)在討論矢量接入以及接入的合并。圖9C示出了具有兩個通道的另一分配示例。舉例來講,當圖5和7中示出的VPU22C訪問MC_Cache40時,它可以同時訪問若干數(shù)據(jù)元素。作為非限制性示例,VPU 22C可以從地址4訪問跨距為8的兩個字。因此,它訪問地址4和12。這些地址位于不同的通道(Chl和ChO),意味著這些字可被并行訪問。然而,在這一示例中假定由于MC_Cache 40中不存在這些字,發(fā)生兩次未命中。結果,所影響的兩個高速緩存通道從存儲器分級體系的下一級更新數(shù)量為高速緩存行數(shù)量的數(shù)據(jù)。根據(jù)上述方法B、C和D,所接入的地址如下所示(假定高速緩存行長度=16字節(jié),并且這一示例中未示出方法A)I)由于地址4中的未命中,地址0、4、16、20被訪問(通道0,索引InO、Inl、In2和In3 )。由于地址12中的未命中,地址8、12、24、28被訪問(通道I,索引InO、In I、In2和In3 )。2)由于地址4中的未命中,地址0、4、8、12被訪問。由于地址12中的未命中,地址0、4、8、12被訪問。3)由于地址4中的未命中,地址4和12被訪問(通道O和I,索引Inl)。由于地址12中的未命中,地址4和12被訪問(通道O和I,索引Ini)。在這些方法中,可按如下方法對接入進行合并。I)合并成單個接入作為單個長事務處理接入地址O至28。與使用兩個單獨的接入相比,這將典型地產(chǎn)生更好的性能,這是因為現(xiàn)代的總線、DRAM和閃存的特性傾向于在較長接入脈沖時比短接入脈沖時能夠更有效率的進行操作。2)存在兩個相似的接入。將接入合并成單個接入(訪問地址0-12)。
3)存在兩個相似的接入。將接入合并成單個接入(訪問地址4和12)。為了總結對接入的合并,當可能時,多通道高速緩存未命中處理機102對來自若干高速緩存通道的接入進行合并。通常來講,避免了對相同地址的重復接入,并且在可能時形成較長訪問事務。一種用來實施MC_Cache 40的方法是使用傳統(tǒng)的高速緩存存儲和單獨的高速緩存未命中處理機102作為構件。圖IOA示出了具有分離的未命中處理機102的MC_Cache40的示例性實施方式。在圖IOA (以及圖10B)中,$’指示高速緩存通道存儲器。四個通道耦合到加速器結構(AF) 50 (CH0_AF, . . .,CH3_AF),并且兩個通道耦合到系統(tǒng)互連(SI) 52(CH0_SI和CH1_SI)。一對多路復用器103A、103B被用于將一對CMH中的一個CMH 102選擇性地連接到系統(tǒng)互連52。未命中處理機102中的每一個都獨立于其它未命中處理機。圖IOA中示出的實施方式支持高速緩存更新方法A和B。然而,并不能使用該示例性實施方式來容易地執(zhí)行接入合并操作。
圖IOB示出了使用共享高速緩存未命中處理機102的另一示例性實施方式。圖IOB中示出的實施方式支持高速緩存更新方法A、B、C和D,并同樣支持接入合并。另一用于實施MC_Cache 40的方法使用通用高速緩存未命中處理機102的更加分布式的版本,其示于圖IOC中。該實施方式與IOA中的實施方式相似,但在CMH 102之間具有充分的通信(示為CMH間通信總線103B)以使得每個CMH 102能夠基于其它CMH 102的操作執(zhí)行必要的更新。該方法具有CMH 102可以“懶惰地”進行操作的附加益處,即首先執(zhí)行它們自己的通道操作,然后當還有時間時執(zhí)行由其它CMH 102委托的更新操作。從而將在每個CMH 102中提供用于來自其它CMH的更新命令的緩沖器以及用于防止緩沖溢出(例如將更新操作重新排序到更高的優(yōu)先級)的方法??梢宰⒁獾剑瑘DIOC中的實施方式能夠為高速緩存更新方法A、B、C和D中的每一個提供支持,并且還可以為接入合并實施方式提供支持。通過使用本發(fā)明的示例性實施方式可以實現(xiàn)多種技術優(yōu)勢和技術效果。例如,關于上述四種高速緩存更新方法A-D,存在由于(a)從若干高速緩存通道對相同地址的接入被合并以及(b)對隨后的地址的接入被合并以形成單個較長接入事務導致的對存儲器分級體系的增強的可用帶寬。由于DRAM和閃存特性以及由于常規(guī)互連,這是相對速度較快的。當與長接入脈沖一起使用時,通常DRAM和閃存以及互連會更有效率。關于更新方法B,該方法使用標準高速緩存單元實施會更簡單,并允許增強的并行實現(xiàn)。關于更新方法C,從應用的角度來看,與使用傳統(tǒng)高速緩存一樣來利用空間局域性。關于更新方法D,一個優(yōu)勢是,在所有高速緩存通道中所使用的吞吐量相等?;谏鲜鰞?nèi)容,顯然本發(fā)明的示例性實施方式提供了方法、設備以及計算機程序,以提供用于與多通道高速緩存存儲器一起使用的未命中處理機。根據(jù)示例性實施方式,高速緩存未命中處理機102 (在不失一般性的情況下其也可被稱作多通道高速緩存更新處理機)被配置成至少基于多通道高速緩存未命中條件的發(fā)生以及基于因任何原因需要預取數(shù)據(jù)給多通道高速緩存40的情況的發(fā)生按上文所述進行操作。圖11是根據(jù)本發(fā)明的示例性實施方式的邏輯流程圖,其中示出了對方法的操作以及執(zhí)行計算機程序指令的結果。根據(jù)這些示例性實施方式,在方塊IlA處,方法執(zhí)行以下步驟確定至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)之一而更新多通道高速緩存存儲器的需要。在方塊11B,存在以下步驟操作多通道高速緩存未命中處理機以從主存儲器更新多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。進一步根據(jù)圖11中所示的方法,多通道高速緩存未命中處理機只更新引起所述未命中發(fā)生的單個高速緩存通道存儲器的數(shù)據(jù)。進一步根據(jù)上文中所述的方法,其中多通道高速緩存未命中處理機更新單個高速緩存通道存儲器的高速緩存行,其中所更新的高速緩存行包括引起所述高速緩存未命中發(fā)生的數(shù)據(jù)。進一步根據(jù)上文中所述的方法,其中多通道高速緩存未命中處理機更新引起所述高速緩存未命中發(fā)生的地址隨后的地址的高速緩存行。進一步根據(jù)前段中所述的方法,其中所述更新引起所述高速緩存未命中發(fā)生的地 址隨后的地址的高速緩存行為多個高速緩存通道存儲器更新數(shù)據(jù)。進一步根據(jù)上文中所述的方法,其中多通道高速緩存未命中處理機更新與每個高速緩存通道存儲器中同一索引關聯(lián)的數(shù)據(jù)。進一步根據(jù)上文中所述的方法,其中在多通道高速緩存存儲器的單個通道具有最小間隔尺寸的單個高速緩存行的情況下發(fā)生更新。進一步根據(jù)上文中所述的方法,其中當更新多個高速緩存通道存儲器時,多通道高速緩存未命中處理機進行操作以合并多個高速緩存存儲到主存儲器的接入。進一步根據(jù)上文中所述的方法,其中每個單獨的高速緩存通道存儲器由關聯(lián)的高速緩存未命中處理機進行服務,其中多個所述高速緩存未命中處理機一起構成分布式的多通道高速緩存未命中處理機。進一步根據(jù)上文中一些段落所述的方法,其中每個單獨的高速緩存通道存儲器由單個集中式多通道高速緩存未命中處理機進行服務。進一步根據(jù)上文中所述的方法,其中多通道高速緩存存儲器包括多個并聯(lián)的輸入端口,其中每個輸入端口對應于通道中的一個,并被配置成并行接收存儲器接入請求,每個并聯(lián)的輸入端口被配置成接收對多個處理單元中的任意一個的存儲器接入請求,并且其中所述多通道高速緩存存儲器還包括多個高速緩存塊,其中每個高速緩存塊被配置成從多個輸入端口中的唯一一個接收存儲器接入請求,從而存在多個并聯(lián)輸入端口和多個高速緩存塊之間的一對一映射,其中多個高速緩存塊中的每一個被配置成服務存儲器的地址空間中的唯一部分。本發(fā)明的示例性實施方式還涵蓋存儲計算機軟件指令的有形存儲器介質(zhì),對計算機軟件指令的執(zhí)行的結果是執(zhí)行上文中的任一段落中的方法。示例性實施方式還涵蓋一種設備,該設備包括多通道高速緩存存儲器,該多通道高速緩存存儲器包括多個高速緩存通道存儲器;多通道高速緩存未命中處理機,其被配置成對至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)之一而更新多通道高速緩存存儲器的需要進行響應,從主存儲器更新多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。一般來講,各種示例性實施方式可以在硬件或?qū)S秒娐贰④浖?、邏輯或其任意組合中實施。例如,一些方面可以在硬件中實施,而其他方面可以在可由控制器、微處理器或其他計算裝置執(zhí)行的軟件或固件中實施,雖然本發(fā)明并不限于此。雖然本發(fā)明的示例性實施方式的各個方面可被圖示和描述為框圖、流程圖、或使用其他圖形表示進行描述,能夠理解的是,此處描述的這些方塊、設備、系統(tǒng)、技術或方法可作為非限制性示例在硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或其他計算裝置、或其一些組合中實施。從而,應該理解的是本發(fā)明的示例性實施方式的至少一些方面可在諸如集成電路芯片和模塊的各種組件中實行,并且本發(fā)明的示例性實施方式可在被實施為集成電路的設備中實現(xiàn)。集成電路可以包括用于體現(xiàn)至少以下各項中的一個或多個的電路(也可能是固件)可被配置以便根據(jù)本發(fā)明的示例性實施方式進行操作的基帶電路和射頻電路、一個或多個數(shù)據(jù)處理器、一個或多個數(shù)字信號處理器。在結合附圖閱讀了上述描述之后,對本發(fā)明的上述示例性實施方式進行各種修改和改寫對相關領域技術人員將變得顯而易見。然而,任何以及所有修改都應落入本發(fā)明的非限制性和示例性的實施方式的范圍內(nèi)。 應該注意到,術語“連接”、“耦合”或任何其它變形指的是兩個或更多個元件之間任意的連接或耦合(直接或間接),并可以涵蓋“連接”或“耦合”在一起的兩個元件之間存在一個或多個中間元件的情況。元件之間的耦合或連接可以是物理的、邏輯的或它們的組合。在這里使用時,作為若干非限制性和非窮舉的示例,可以認為兩個元件通過使用一個或多個電線、電纜和/或印刷電連接,以及通過使用電磁能,比如具有射頻區(qū)域、微波區(qū)域和光學(包括可見的和不可見的)區(qū)域波長的電磁能而被“連接”或“耦合”在一起。本發(fā)明的示例性實施方式不應被認為只限于使用上述地址比特數(shù)目(32),特定的實施中可以存在更多或更少的地址比特。此外,MC_Cache40可以具有任何期望數(shù)目(大于或等于2)的通道。在這一情況中,存儲器地址中的比特(比特數(shù)不等于2)可被解碼以標識多通道高速緩存的特定通道編號。例如,如果MC_Cache 40被認為包括8個并聯(lián)的輸入端口,則3個地址比特可被解碼以標識并聯(lián)輸入端口(通道)之一。標志和索引字段的比特數(shù)也可以與上文中討論的及附圖中示出的值不同。對本領域技術人員來講,還可以出現(xiàn)對上述教導的其它修改,但是,這種修改應落入本發(fā)明的示例性實施方式的范圍內(nèi)。此外,本發(fā)明的各種非限制性且示例性的實施方式中的一些特征可在不使用其它特征的情況下使用,以突出優(yōu)勢。如此,上述描述將被認為僅是對本發(fā)明的原理、教導和示例性實施方式的描述,而不對其進行限制。
權利要求
1.一種方法,包括 確定至少由于高速緩存未命中的發(fā)生或需要數(shù)據(jù)預取之一更新多通道高速緩存存儲器的需要;以及 操作多通道高速緩存未命中處理機以從主存儲器更新所述多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。
2.根據(jù)權利要求I的方法,其中所述多通道高速緩存未命中處理機只更新引起所述未命中發(fā)生的單個高速緩存通道存儲器的數(shù)據(jù)。
3.根據(jù)權利要求I和2中的任意一項的方法,其中所述多通道高速緩存未命中處理機更新單個高速緩存通道存儲器的高速緩存行,其中所更新的高速緩存行包括引起所述高速緩存未命中發(fā)生的所述數(shù)據(jù)。
4.根據(jù)權利要求1-3中的任意一項的方法,其中所述多通道高速緩存未命中處理機更新引起所述高速緩存未命中發(fā)生的地址隨后的地址的高速緩存行。
5.根據(jù)權利要求4的方法,其中更新引起所述高速緩存未命中發(fā)生的地址隨后的地址的高速緩存行為多個高速緩存通道存儲器更新數(shù)據(jù)。
6.根據(jù)權利要求2-5中的任意一項的方法,其中所述多通道高速緩存未命中處理機更新與每個高速緩存通道存儲器中的同一索引關聯(lián)的數(shù)據(jù)。
7.根據(jù)權利要求4-6中的任意一項的方法,其中所述更新在所述多通道高速緩存存儲器的單個通道具有最小間隔尺寸的單個高速緩存行時發(fā)生。
8.根據(jù)權利要求1-7中的任意一項的方法,其中在更新多個高速緩存通道存儲器時,所述多通道高速緩存未命中處理機進行操作以合并所述多個高速緩存存儲到主存儲器的接入。
9.根據(jù)權利要求1-8中的任意一項的方法,其中每個單獨的高速緩存通道存儲器由關聯(lián)的高速緩存未命中處理機服務,其中多個所述高速緩存未命中處理機一起構成分布式的多通道高速緩存未命中處理機。
10.根據(jù)權利要求1-8中的任意一項的方法,其中每個單獨的高速緩存通道存儲器由單個集中式多通道高速緩存未命中處理機服務。
11.根據(jù)權利要求1-10中的任意一項的方法,其中所述多通道高速緩存存儲器包括多個并聯(lián)的輸入端口,其中每個輸入端口對應于所述通道中的一個,并被配置成并行接收存儲器接入請求,每個并聯(lián)的輸入端口被配置成接收對多個處理單元中的任意一個的存儲器接入請求,并且其中所述多通道高速緩存存儲器進一步包括多個高速緩存塊,其中每個高速緩存塊被配置成從所述多個輸入端口中的唯一一個接收存儲器接入請求,從而存在所述多個并聯(lián)的輸入端口和所述多個高速緩存塊之間的一對一映射,其中所述多個高速緩存塊中的每一個被配置成服務所述存儲器的地址空間中的唯一部分。
12.—種存儲計算機軟件指令的有形存儲器介質(zhì),其中對所述計算機軟件指令的執(zhí)行的結果是執(zhí)行權利要求1-11中的任意一項所述的方法。
13.—種設備,包括 多通道高速緩存存儲器,其包括多個高速緩存通道存儲器;以及 多通道高速緩存未命中處理機,其被配置成對至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)之一更新所述多通道高速緩存存儲器的需要進行響應,以從主存儲器更新所述多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。
14.根據(jù)權利要求13的設備,其中所述多通道高速緩存未命中處理機只更新引起所述未命中發(fā)生的單個高速緩存通道存儲器的數(shù)據(jù)。
15.根據(jù)權利要求13和14中的任意一項的設備,其中所述多通道高速緩存未命中處理機更新單個高速緩存通道存儲器的高速緩存行,其中所更新的高速緩存行包括引起所述高速緩存未命中發(fā)生的所述數(shù)據(jù)。
16.根據(jù)權利要求13-15中的任意一項的設備,其中所述多通道高速緩存未命中處理機更新引起所述高速緩存未命中發(fā)生的地址隨后的地址的高速緩存行。
17.根據(jù)權利要求16的設備,其中更新引起所述高速緩存未命中發(fā)生的地址隨后的地址的高速緩存行為多個高速緩存通道存儲器更新數(shù)據(jù)。
18.根據(jù)權利要求13-17中的任意一項的設備,其中所述多通道高速緩存未命中處理機更新與每個高速緩存通道存儲器中同一索引關聯(lián)的數(shù)據(jù)。
19.根據(jù)權利要求16-18中的任意一項的設備,其中所述更新在所述多通道高速緩存存儲器的單個通道具有最小間隔尺寸的單個高速緩存行時發(fā)生。
20.根據(jù)權利要求13-19中的任意一項的設備,其中在更新多個高速緩存通道存儲器時,所述多通道高速緩存未命中處理機進行操作以合并所述多個高速緩存存儲對主存儲的接入。
21.根據(jù)權利要求13-20中的任意一項的設備,其中每個單獨的高速緩存通道存儲器由關聯(lián)的高速緩存未命中處理機服務,其中多個所述高速緩存未命中處理機一起構成分布式的多通道高速緩存未命中處理機。
22.根據(jù)權利要求13-20中的任意一項的設備,其中每個單獨的高速緩存通道存儲器由單個集中式多通道高速緩存未命中處理機服務。
23.根據(jù)權利要求13-22中的任意一項的設備,其中所述多通道高速緩存存儲器包括多個并聯(lián)的輸入端口,其中每個輸入端口對應于所述通道中的一個,并被配置成并行接收存儲器接入請求,每個并聯(lián)的輸入端口被配置成接收對多個處理單元中的任意一個的存儲器接入請求,并且其中所述多通道高速緩存存儲器進一步包括多個高速緩存塊,其中每個高速緩存塊被配置成從所述多個輸入端口中的唯一一個接收存儲器接入請求,從而存在所述多個并聯(lián)的輸入端口和所述多個高速緩存塊之間的一對一映射,其中所述多個高速緩存塊中的每一個被配置成服務所述存儲器的地址空間中的唯一部分。
24.根據(jù)權利要求13-23中的任意一項的設備,至少部分地實現(xiàn)在集成電路中。
全文摘要
這里公開了用于多通道高速緩存存儲器的未命中處理機以及一種方法,所述方法包括確定至少由于高速緩存未命中的發(fā)生或需要預取數(shù)據(jù)之一更新多通道高速緩存存儲器的需要。所述方法還包括操作多通道高速緩存未命中處理機,以從主存儲器更新所述多通道高速緩存存儲器中的至少一個高速緩存通道存儲器。
文檔編號G06F12/10GK102834813SQ201180017610
公開日2012年12月19日 申請日期2011年1月25日 優(yōu)先權日2010年2月5日
發(fā)明者E·阿霍, J·尼卡拉, K·庫西林納 申請人:諾基亞公司