專利名稱:用于控制計(jì)算機(jī)可讀存儲(chǔ)器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)器管理,并且更具體地,涉及基于公知 的存儲(chǔ)器位置延遲來(lái)存儲(chǔ)數(shù)據(jù)單元的計(jì)算機(jī)體系結(jié)構(gòu)。
背景技術(shù):
實(shí)際上,所有計(jì)算機(jī)電路都采用某種數(shù)字存儲(chǔ)器來(lái)存儲(chǔ)數(shù)據(jù)。這樣 的存儲(chǔ)器可以包括不同類型存儲(chǔ)器設(shè)備的組合,包括以下中的一個(gè)或者多個(gè)片上存儲(chǔ)器(諸如寄存器陣列)、板上存儲(chǔ)器(諸如,高速緩存 器)、主存儲(chǔ)器(諸如,與處理器位于不同電路板上的DRAM存儲(chǔ)器 芯片)、閃速存儲(chǔ)器(諸如,可以插入專用讀取器或者USB端口的存 儲(chǔ)器設(shè)備)以及磁盤存儲(chǔ)器(諸如,硬盤驅(qū)動(dòng)器)。駐留于存儲(chǔ)器空間中的某些數(shù)據(jù)單元(可以包括任何對(duì)數(shù)據(jù)進(jìn)行分 組的方法)與存儲(chǔ)在相同存儲(chǔ)器空間中的其他數(shù)據(jù)單元相比而言較少使 用。但是,計(jì)算機(jī)存儲(chǔ)器空間的不同部分顯示出了不同的存儲(chǔ)器延遲(將 數(shù)據(jù)從存儲(chǔ)器位置傳輸?shù)秸?qǐng)求該數(shù)據(jù)的實(shí)體處所需的時(shí)間量)。例如, 與較遠(yuǎn)離存儲(chǔ)器緩沖區(qū)的存儲(chǔ)器芯片相比,最接近存儲(chǔ)器緩沖區(qū)的存儲(chǔ) 器芯片可能具有較小延遲。大部分存儲(chǔ)器設(shè)備都可以根據(jù)相對(duì)速度進(jìn)行分類。例如,片上存儲(chǔ) 器通常比板上存儲(chǔ)器速度快,而片上存儲(chǔ)器和板上存儲(chǔ)器通常要比磁盤 存儲(chǔ)器速度快很多。但是,有時(shí),相對(duì)較慢速存儲(chǔ)器設(shè)備的某些部分與 相對(duì)較快速存儲(chǔ)器設(shè)備的部分相比實(shí)際上可能具有更小的延遲。因此, 將頻繁使用的數(shù)據(jù)單元放置在較快速存儲(chǔ)器設(shè)備的較慢速部分而不是 放置在較慢速存儲(chǔ)器設(shè)備的較快速部分中,會(huì)導(dǎo)致存儲(chǔ)器空間的低效使 用。在多個(gè)存儲(chǔ)器應(yīng)用中,動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM)芯片在陣列中處于相似等級(jí)的位置,從而創(chuàng)建了平坦存儲(chǔ)器結(jié)構(gòu)。在該結(jié)構(gòu)中,對(duì)于數(shù) 據(jù)讀出和寫入,都可以平等地從存儲(chǔ)器控制器來(lái)訪問所有的存儲(chǔ)器。但是,在目前諸如全緩沖雙列內(nèi)存模組(FBDIMM)的工業(yè)標(biāo)準(zhǔn)方案中,通過(guò)存儲(chǔ) 器芯片上的緩沖區(qū)到每層存儲(chǔ)器的訪問時(shí)間并不統(tǒng)一。支持目前但是卻不會(huì)有意地將頻繁使用的數(shù)據(jù)映射到較接近存儲(chǔ)器控制器,或者 將較不頻繁使用的數(shù)據(jù)映射到較遠(yuǎn)離該控制器。當(dāng)前的存儲(chǔ)器設(shè)備包括高速緩存(用于處理器),高速緩存通常將數(shù) 據(jù)放置到分類的級(jí)別中(L1/L2/L3),但這要求在主存儲(chǔ)器中或在諸如硬盤 驅(qū)動(dòng)器的直接訪問存儲(chǔ)設(shè)備(DASD)中維持用于原始數(shù)據(jù)副本(或者占 位符)的空間。就增加的存儲(chǔ)器使用和增加的開銷這兩者而言,保持?jǐn)?shù) 據(jù)的占位符和確保數(shù)據(jù)是當(dāng)前數(shù)據(jù)是對(duì)存儲(chǔ)器的低效使用。物理存儲(chǔ)器位置的延遲可以隨著時(shí)間而改變。這可以歸因于各種因 素。例如,環(huán)境條件可以引起存儲(chǔ)器延遲的改變。同樣,使用模式也可 以改變存儲(chǔ)器延遲。例如,當(dāng)幾個(gè)相連的存儲(chǔ)器位置用于死循環(huán)計(jì)算時(shí), 由于服務(wù)于存儲(chǔ)器位置的存儲(chǔ)器總線上的本地業(yè)務(wù),其他附近存儲(chǔ)器位 置可能會(huì)經(jīng)歷延遲增大。因此,需要這樣的存儲(chǔ)器管理系統(tǒng),其動(dòng)態(tài)地測(cè)量存儲(chǔ)器延遲,并基 于數(shù)據(jù)單元相對(duì)使用頻率和存儲(chǔ)位置的延遲來(lái)確定存儲(chǔ)數(shù)據(jù)單元的位置。還需要這樣的存儲(chǔ)器管理系統(tǒng),其將數(shù)據(jù)單元?jiǎng)討B(tài)地存儲(chǔ)在分等級(jí) 的存儲(chǔ)器空間中,這些存儲(chǔ)器空間根據(jù)當(dāng)前的延遲值而分離。發(fā)明內(nèi)容本發(fā)明克服了現(xiàn)有技術(shù)的缺點(diǎn),在一方面,本發(fā)明是一種控制包括 多個(gè)存儲(chǔ)器位置的計(jì)算機(jī)可讀存儲(chǔ)器的方法,其中確定第 一存儲(chǔ)器位置 中存儲(chǔ)的數(shù)據(jù)單元的使用頻率。數(shù)據(jù)單元移動(dòng)到不同于第一存儲(chǔ)器位置 的第二存儲(chǔ)器位置,該第二存儲(chǔ)器位置是基于已知的第二存儲(chǔ)器位置延 遲和數(shù)據(jù)單元使用頻率之間的對(duì)應(yīng)來(lái)選擇的,其中該第二存儲(chǔ)器位置是 該數(shù)據(jù)單元的初級(jí)數(shù)據(jù)存儲(chǔ)位置。在另一方面,本發(fā)明是一種管理多個(gè)存儲(chǔ)器位置的方法,其中該多 個(gè)存儲(chǔ)器位置的每一個(gè)存儲(chǔ)用于計(jì)算電路的相應(yīng)數(shù)據(jù)單元。為每個(gè)存儲(chǔ) 器位置確定延遲,以及為每個(gè)數(shù)據(jù)單元確定使用頻率。具有高使用頻率 的至少一個(gè)數(shù)據(jù)單元存儲(chǔ)在具有低延遲的初級(jí)存儲(chǔ)器位置中,并且具有 低使用頻率的至少一個(gè)數(shù)據(jù)單元存儲(chǔ)在具有高延遲的初級(jí)存儲(chǔ)器位置 中。在另 一方面,本發(fā)明是一種用于管理存儲(chǔ)在多個(gè)存儲(chǔ)器位置中的數(shù) 據(jù)單元的裝置。每個(gè)存儲(chǔ)器位置具有已知的延遲,并且該延遲被分類到 多個(gè)延遲類中的一個(gè)。使用頻率指示器與每個(gè)存儲(chǔ)器位置相關(guān)聯(lián)。在預(yù) 定數(shù)量的周期內(nèi)每次訪問存儲(chǔ)在相應(yīng)存儲(chǔ)器位置的數(shù)據(jù)單元時(shí),增量器 使得每個(gè)使用頻率指示器遞增。存儲(chǔ)器控制器將每個(gè)數(shù)據(jù)單元存儲(chǔ)在初 級(jí)存儲(chǔ)器位置中,該初級(jí)存儲(chǔ)器位置是對(duì)應(yīng)于數(shù)據(jù)使用頻率的延遲類的 一個(gè)成員。在另 一方面,本發(fā)明是一種控制包括多個(gè)存儲(chǔ)器位置的計(jì)算機(jī)可讀 存儲(chǔ)器的方法,其中確定多個(gè)數(shù)據(jù)單元的使用頻率。基于預(yù)定事件的每 次發(fā)生,確定該多個(gè)存儲(chǔ)器位置中每一個(gè)的存儲(chǔ)器延遲。在該預(yù)定事件 之后,將具有高使用頻率的數(shù)據(jù)單元存儲(chǔ)在具有低延遲的存儲(chǔ)器位置中。在另一方面,本發(fā)明是一種用于控制計(jì)算機(jī)可讀存儲(chǔ)器的系統(tǒng),其 中該計(jì)算機(jī)可讀存儲(chǔ)器包括多個(gè)存儲(chǔ)器位置。存儲(chǔ)器延遲確定電路基于 預(yù)定事件的每次發(fā)生來(lái)為多個(gè)存儲(chǔ)器位置中每一個(gè)確定存儲(chǔ)器延遲。使 用頻率存儲(chǔ)器存儲(chǔ)多個(gè)數(shù)據(jù)單元中每一個(gè)的使用頻率。在預(yù)定事件之后, 存儲(chǔ)器調(diào)度器基于該預(yù)定事件之后確定的存儲(chǔ)器延遲,將每個(gè)數(shù)據(jù)單元 分配到不同的存儲(chǔ)器位置,使得具有高使用頻率的每個(gè)數(shù)據(jù)單元被存儲(chǔ) 在具有低延遲的存儲(chǔ)器位置。在又一方面,本發(fā)明是一種存儲(chǔ)器調(diào)度系統(tǒng),其包括存儲(chǔ)器延遲檢 測(cè)電路、動(dòng)態(tài)存儲(chǔ)器映射和存儲(chǔ)器調(diào)度器。存儲(chǔ)器延遲檢測(cè)電路當(dāng)每次 發(fā)生預(yù)定事件時(shí)檢測(cè)多個(gè)存儲(chǔ)器位置中每一個(gè)存儲(chǔ)器位置的延遲。 動(dòng)態(tài)存儲(chǔ)器映射將多個(gè)虛擬存儲(chǔ)器位置映射到相應(yīng)的多個(gè)物理存儲(chǔ)器位 置?;谖锢泶鎯?chǔ)器位置的延遲,將每個(gè)物理存儲(chǔ)器位置分配到虛擬存儲(chǔ)器位置。存儲(chǔ)器調(diào)度器基于每個(gè)數(shù)據(jù)單元使用的使用頻率,將多個(gè)數(shù) 據(jù)單元的每一 個(gè)分配到不同的虛擬存儲(chǔ)器位置,使得具有高使用頻率的 數(shù)據(jù)單元被分配到低延遲虛擬存儲(chǔ)器位置。通過(guò)結(jié)合下述附圖對(duì)優(yōu)選實(shí)施方式的描述,本發(fā)明的這些和其他方 面將會(huì)變得明顯。對(duì)于本領(lǐng)域技術(shù)人員而言顯而易見的是,在不脫離本 公開的新穎理念的精神和范圍的前提下,可以實(shí)現(xiàn)本發(fā)明的各種變體和 修改。
圖1示出普通存儲(chǔ)器分類方案的框圖。圖2示出采用不同類型存儲(chǔ)器設(shè)備的存儲(chǔ)器分類方案的框圖。圖3A-圖3D示出基于延遲的存儲(chǔ)器管理的代表性示例的表格。圖4示出存儲(chǔ)器管理方法的流程圖。圖5示出動(dòng)態(tài)存儲(chǔ)器分配方法的流程圖。圖6示出事件驅(qū)動(dòng)的動(dòng)態(tài)存儲(chǔ)器映射方法的流程圖。圖7示出一種動(dòng)態(tài)的基于延遲的存儲(chǔ)器管理方法的表格。
具體實(shí)施方式
現(xiàn)在具體描述本發(fā)明的優(yōu)選實(shí)施方式。參照附圖,在所有視圖中類 似附圖標(biāo)記表示類似部分。當(dāng)在此描述中和整個(gè)權(quán)利要求中使用時(shí),除 非上下文明確表示其他含義,以下術(shù)語(yǔ)采用與這里明確相關(guān)的含義 "一"、"一個(gè)"、"該"的含義包括復(fù)數(shù)引用,"在......中"的含義包括"在......中,,和"在......上"。而且,當(dāng)在此使用時(shí),"初級(jí)存儲(chǔ)器位置,,和"初級(jí)位置"表示存儲(chǔ)數(shù)據(jù)單元初級(jí)副本的存儲(chǔ)器位置,而"次級(jí)存儲(chǔ)器位置,,或 "次級(jí)位置,,的意思是其中存儲(chǔ)已經(jīng)存儲(chǔ)在初級(jí)位置的數(shù)據(jù)單元副本的 存儲(chǔ)器位置。例如,初級(jí)位置通常可以包括主存儲(chǔ)器,而次級(jí)位置通常 包括高速緩存器。在某些應(yīng)用中,已知的是在所有存儲(chǔ)器訪問中,有96-99%都是對(duì) 存儲(chǔ)器地址中占25%的相同地址的訪問??梢允褂眠@樣的存儲(chǔ)器存儲(chǔ)體系結(jié)構(gòu)來(lái)增強(qiáng)性能,該體系結(jié)構(gòu)允許較少使用的數(shù)據(jù)駐留在具有相對(duì)高延遲的存儲(chǔ)器位置(即,諸如較遠(yuǎn)離存儲(chǔ)器控制器的DRAM芯片)中, 而使用較頻繁的數(shù)據(jù)單元存儲(chǔ)在具有較低延遲的存儲(chǔ)器位置(即,諸如 較接近存儲(chǔ)器控制器的DRAM芯片)中。這樣的體系結(jié)構(gòu)可以應(yīng)用到 許多存儲(chǔ)器標(biāo)準(zhǔn),包括DRAM、靜態(tài)隨機(jī)訪問存儲(chǔ)器(SRAM) 、 FBDIMM 存儲(chǔ)器、緩沖和重新驅(qū)動(dòng)(redriving) DRAM、閃速存儲(chǔ)器或者串行布置 的DASD存儲(chǔ)設(shè)備。當(dāng)前的高速緩存器方案將頻繁使用的數(shù)據(jù)單元存儲(chǔ)在快速次級(jí)存儲(chǔ) 器位置(諸如板上高速緩存芯片),并在初級(jí)存儲(chǔ)位置(諸如主存儲(chǔ)器) 中維持存儲(chǔ)在次級(jí)位置中的每個(gè)數(shù)據(jù)單元的原始數(shù)據(jù)副本(或者占位符), 與當(dāng)前的高速緩存器方案不同,本發(fā)明的一個(gè)實(shí)施方式區(qū)分了初級(jí)位置 之間的延遲。這樣,本發(fā)明將整個(gè)存儲(chǔ)器空間(或者其子集)作為一組 初級(jí)存儲(chǔ)器位置對(duì)待,并將更頻繁訪問的數(shù)據(jù)單元移動(dòng)到較低延遲初級(jí) 存儲(chǔ)器位置,同時(shí)將較不頻繁訪問的數(shù)據(jù)單元移動(dòng)到較高延遲初級(jí)存儲(chǔ) 器位置。如圖1所示,存儲(chǔ)器管理系統(tǒng)100的 一個(gè)示例包括存儲(chǔ)器控制器110, 其控制存儲(chǔ)在存儲(chǔ)空間120中的數(shù)據(jù)并將數(shù)據(jù)提供給處理器112或者其 他邏輯電路。在一個(gè)實(shí)施方式中,存儲(chǔ)空間120可以包括主存儲(chǔ)器芯片 陣列。在另一實(shí)施方式中,存儲(chǔ)空間120可以包括幾種不同的存儲(chǔ)器設(shè)備, 其包括以下的組合片上存儲(chǔ)器、板上存儲(chǔ)器和主存儲(chǔ)器等。存儲(chǔ)器空 間120可以根據(jù)不同的物理存儲(chǔ)器單元進(jìn)行分組。(所示物理單元命名 為M11到M44,其中通過(guò)一種使物理單元顯現(xiàn)的方式,第一個(gè)數(shù)字指 示行,第二個(gè)數(shù)字指示列。)例如,物理單元可以與不同的存儲(chǔ)器芯片 相對(duì)應(yīng),或者與存儲(chǔ)設(shè)備中不同的存儲(chǔ)器位置相對(duì)應(yīng)。應(yīng)當(dāng)注意,為了 便于理解,圖1中所示表征被大大簡(jiǎn)化了,許多商業(yè)實(shí)施方式可能相當(dāng) 復(fù)雜。每個(gè)存儲(chǔ)器位置的延遲通過(guò)直接測(cè)量或者仿真來(lái)確定,并且各物 理存儲(chǔ)器位置的每一個(gè)都根據(jù)其延遲被分組到多個(gè)延遲類中的一個(gè)。例 如,存儲(chǔ)器單元M12、 M13、 M22和M23被分組到快速延遲組122。 這可能是因?yàn)?,例如它們物理上靠近存?chǔ)器控制器110,或者因?yàn)樗鼈兪褂昧吮绕渌鎯?chǔ)器位置更快速的技術(shù),或者兩者兼而有之。中速延遲組124包括存儲(chǔ)器位置Mll、 M21、 M32、 M33、 M24和M14。慢速延 遲組126包括存儲(chǔ)器位置M31、 M41、 M42、 M43、 M44和M34。存儲(chǔ)器控制器110基于每個(gè)數(shù)據(jù)單元的使用水平來(lái)將數(shù)據(jù)單元(數(shù)配到初級(jí)存儲(chǔ)器位置。這樣,具有相對(duì)較高使用頻率的數(shù)據(jù)單元將存儲(chǔ) 在快速延遲組122的存儲(chǔ)器位置中,具有相對(duì)中等使用頻率的數(shù)據(jù)單元 將存儲(chǔ)在中速延遲組124的存儲(chǔ)器位置中,具有相對(duì)較低使用頻率的數(shù) 據(jù)單元將存儲(chǔ)在慢速延遲組126的存儲(chǔ)器位置中。在一個(gè)實(shí)施方式中,可以應(yīng)用本發(fā)明來(lái)改善僅一種類型存儲(chǔ)器的性 能,諸如主存儲(chǔ)器的性能,而在其他實(shí)施方式中,本發(fā)明可以應(yīng)用于^爭(zhēng) 越幾種不同存儲(chǔ)器設(shè)備的存儲(chǔ)器空間。如圖2所示,多設(shè)備存儲(chǔ)空間200 尤其可以包括下述存儲(chǔ)器設(shè)備片上存儲(chǔ)器210、板上存儲(chǔ)器212、主存 儲(chǔ)器214、閃速存儲(chǔ)器216和磁盤存儲(chǔ)器218。取決于應(yīng)用,存儲(chǔ)器位置 可分為如期望的那么多的不同延遲類。所示示例包括最快速組220 (僅 包括片上存儲(chǔ)器210 )、次最快速組222 (包括片上存儲(chǔ)器210的較慢速 部分、板上存儲(chǔ)器212的所有部分和主存儲(chǔ)器214的低延遲部分)、中的較快速部分)、中慢速延遲組228 (包括主存儲(chǔ)器214的較慢速部分 和閃速存儲(chǔ)器228的大部分)、慢速延遲組226 (包括主存儲(chǔ)器214的 最慢速部分、閃速存儲(chǔ)器216的最慢速部分和磁盤存儲(chǔ)器218的最快速 部分)以及最慢速延遲組230 (包括磁盤存儲(chǔ)器218的大部分)。在此 情況中,數(shù)據(jù)單元可以根據(jù)六種不同使用頻率來(lái)進(jìn)行分類并存儲(chǔ)在相應(yīng) 的延遲組中。圖3A到圖3D示出了一種方案,該方案涉及產(chǎn)生用于根據(jù)使用頻率 和存儲(chǔ)器位置延遲來(lái)管理數(shù)據(jù)的存儲(chǔ)器映射300。在此方案中,所有的 存儲(chǔ)器地址均被分配給以下三個(gè)延遲類之一"S"(慢速)、"M"(中速) 或者"F,,(快速)。在一個(gè)實(shí)施方式中,存儲(chǔ)器映射300可以是頁(yè)表的一 部分。在大部分應(yīng)用中,此分配可以是靜態(tài)的。如圖3A所示,最初為數(shù)據(jù)單元的每一個(gè)分配使用頻率"000"。每個(gè)數(shù)據(jù)單元可以存儲(chǔ)在任何存儲(chǔ) 器位置。在某些實(shí)施方式中,可以基于對(duì)使用頻率的預(yù)測(cè)將所有數(shù)據(jù)單 元或者某些數(shù)據(jù)單元預(yù)先分配到存儲(chǔ)器位置。 一旦存儲(chǔ)器操作開始,當(dāng) 存儲(chǔ)于其中的數(shù)據(jù)單元被訪問時(shí),與該存儲(chǔ)器位置相關(guān)聯(lián)的使用頻率就 會(huì)增加。在預(yù)定數(shù)量的周期后,如圖3B所示,與每個(gè)存儲(chǔ)器位置相關(guān)的 使用頻率字段反映了每個(gè)數(shù)據(jù)單元在該預(yù)定數(shù)量的周期中被訪問的次 數(shù)。如圖3C所示,最少訪問的數(shù)據(jù)單元被移動(dòng)到指示為"S"的存儲(chǔ)器位 置(例如,在該時(shí)段期間未訪問的數(shù)據(jù)單元"EXXXXXX"從圖3B中的地 址"0F384,,移動(dòng)到圖3C中的地址"0F380"),適度訪問的數(shù)據(jù)單元被移動(dòng) 到指示為"M,,的存儲(chǔ)器位置(例如,在該時(shí)段期間被訪問四次的數(shù)據(jù)單 元"AXXXXXX"從圖3B中的地址"0F380,,移動(dòng)到圖3C中的地址 "0F385"),以及頻繁訪問的數(shù)據(jù)單元被移動(dòng)到指示為"F,的存儲(chǔ)器位置 (例如,在該時(shí)段期間被訪問七次的數(shù)據(jù)單元"CXXXXXX"從圖3B中的 地址"0F382"移動(dòng)到圖3C中的地址"0F386")。 一旦數(shù)據(jù)單元被分配到適 當(dāng)?shù)拇鎯?chǔ)器位置,如圖3D所示,使用頻率計(jì)數(shù)器會(huì)被復(fù)位為"000",并 且該處理再次開始。一種管理存儲(chǔ)器的方式的流程圖如圖4所示。最初,在步驟400, 每個(gè)使用頻率都被設(shè)置成零,并且在步驟402,存儲(chǔ)器周期計(jì)數(shù)器被設(shè) 置成零。在步驟404,測(cè)試確定預(yù)定量的時(shí)間是否已經(jīng)結(jié)束。如果預(yù)定 量的時(shí)間并未結(jié)束,則在步驟406中增加存儲(chǔ)器周期計(jì)數(shù)器,并且在步 驟408中系統(tǒng)針對(duì)每個(gè)存儲(chǔ)器地址確定該地址在當(dāng)前周期期間是否被 訪問。如果該存儲(chǔ)器#_訪問,則在步驟410中增加對(duì)應(yīng)于該地址的1"吏用 頻率,并且系統(tǒng)返回步驟404。如果存儲(chǔ)器沒有被訪問,則系統(tǒng)直接返 回步驟404。 一旦預(yù)定量的時(shí)間結(jié)束,則在步驟420處系統(tǒng)針對(duì)每個(gè)地 址確定使用頻率是否大于"上移(moveup)"閾值。如果該使用頻率大于 "上移,,閾值,則相應(yīng)數(shù)據(jù)單元被移動(dòng)到更快速延遲類中的地址。如果該 使用頻率不大于"上移"閾值,則在步驟424中系統(tǒng)確定該使用頻率是否 小于"下移"閾值。如果該使用頻率小于"下移"閾值,則相應(yīng)數(shù)據(jù)單元被 移動(dòng)到更慢速延遲類中的地址。否則,數(shù)據(jù)單元保持在原位置,并且系統(tǒng)返回步驟400?;诿總€(gè)使用頻率組中的預(yù)測(cè)數(shù)據(jù)單元數(shù)量,"上移" 閾值或者"下移,,閾值可以是靜態(tài)的;或者"上移,,閾值或者"下移"閾值也 可以是動(dòng)態(tài)的,這樣將允許頻率使用組保持恒定數(shù)量的條目,但是成員 資格標(biāo)準(zhǔn)會(huì)改變。本發(fā)明可以應(yīng)用到現(xiàn)有存儲(chǔ)器管理方案并且可以應(yīng)用到具有很少改 動(dòng)或者未改動(dòng)的現(xiàn)有硬件。例如,可以修改使用高速緩存器、主存儲(chǔ)器 和磁盤存儲(chǔ)器的現(xiàn)有方案,使得存儲(chǔ)器位置映射可以根據(jù)現(xiàn)有存儲(chǔ)器單 元各自的延遲來(lái)對(duì)現(xiàn)有存儲(chǔ)器單元進(jìn)行分組,而不是根據(jù)現(xiàn)有存儲(chǔ)器單 元所駐留的存儲(chǔ)器設(shè)備來(lái)進(jìn)行分組。與諸如高速緩存器方案的其他存儲(chǔ) 方案相比,本發(fā)明的一個(gè)優(yōu)勢(shì)在于本發(fā)明不需要既在初級(jí)存儲(chǔ)器位置 中又在次級(jí)存儲(chǔ)器位置中維護(hù)數(shù)據(jù)的重復(fù)副本(或者相應(yīng)的占位符)。在一個(gè)實(shí)施方式中,用于確定存儲(chǔ)器使用的方法可以與當(dāng)前用于磁盤 和主存儲(chǔ)器(諸如DRAM)之間的頁(yè)面存儲(chǔ)器的那些方法相同或者相似。 下面的權(quán)利要求范圍意在覆蓋將存儲(chǔ)器頁(yè)面調(diào)入或調(diào)出磁盤存儲(chǔ)器或 者其他類型存儲(chǔ)器的所有現(xiàn)有技術(shù)。在一個(gè)實(shí)施方式中,本發(fā)明可以具 體化為存儲(chǔ)器延遲映射的軟件管理的擴(kuò)展。降低開銷的一種方式可以是 保持與存儲(chǔ)器頁(yè)面(而不是單個(gè)存儲(chǔ)器位置)相關(guān)的計(jì)數(shù)器,從而降低了與跟蹤每次訪問相關(guān)聯(lián)的開銷。在某些實(shí)施方式中,數(shù)據(jù)單元訪問計(jì)數(shù)器方案可以導(dǎo)致開銷增大。 而且,在這樣的方案下,如果數(shù)據(jù)單元在短時(shí)段內(nèi)被訪問多次而后從未 被再次訪問,則其訪問計(jì)數(shù)器將使會(huì)引起該數(shù)據(jù)單元長(zhǎng)時(shí)間保持在低延 遲存儲(chǔ)器中。另一種用于完成數(shù)據(jù)單元分配的機(jī)制可以使用與當(dāng)前高速 緩存線替換類似的方案。通過(guò)使用存儲(chǔ)器管理系統(tǒng)設(shè)計(jì)領(lǐng)域中通常公知 的最近最少使用(LRU)的方案,頻繁訪問的數(shù)據(jù)單元可以保持在低延 遲存儲(chǔ)器中。在LRU方案中,根據(jù)數(shù)據(jù)單元的最近訪問對(duì)數(shù)據(jù)單元進(jìn) 行分級(jí)。當(dāng)?shù)竭_(dá)將數(shù)據(jù)單元移動(dòng)到較慢速存儲(chǔ)器延遲類的時(shí)間時(shí),首先 移動(dòng)最近最不經(jīng)常使用的數(shù)據(jù)單元。存儲(chǔ)器延遲層次結(jié)構(gòu)可以傳送給存儲(chǔ)器管理控制軟件,該軟件對(duì)頁(yè) 面存儲(chǔ)在存儲(chǔ)器延遲層次結(jié)構(gòu)中何處進(jìn)行管理??赡艽嬖谶@樣的情況,其中軟件跟蹤將總是被高頻率使用的存儲(chǔ)器頁(yè)面。在這種情況下,應(yīng)該 諸如通過(guò)用于事務(wù)處理的日志文件將這樣的存儲(chǔ)器頁(yè)面(或者其他數(shù)據(jù) 單元)置于最低延遲存儲(chǔ)器位置,其中該事務(wù)處理使用針對(duì)特定數(shù)據(jù)單 元的鎖(例如,任務(wù)分配鎖),從而確保數(shù)據(jù)單元總是被分配到預(yù)定延 遲類中的存儲(chǔ)器。應(yīng)當(dāng)注意的是,本發(fā)明可以應(yīng)用到計(jì)算機(jī)的整個(gè)存儲(chǔ) 器空間,或者僅僅應(yīng)用到整個(gè)存儲(chǔ)器空間的子集。權(quán)利要求的范圍旨在 延伸到所有這樣的場(chǎng)景。在一個(gè)實(shí)施方式中,如圖5所示,存儲(chǔ)器延遲是動(dòng)態(tài)確定的。這樣 彌補(bǔ)了這樣的事實(shí),即存儲(chǔ)器延遲可以由于各種因素而在運(yùn)行時(shí)間期間改變。在這樣的實(shí)施方式中,系統(tǒng)在步驟510進(jìn)行初始化,并且在步驟 512確定每個(gè)存儲(chǔ)器位置的延遲并將該延遲映射到表格中?;跈z測(cè)到 的存儲(chǔ)器延遲,在步驟514,系統(tǒng)基于數(shù)據(jù)單元使用頻率和存儲(chǔ)器延遲 將數(shù)據(jù)單元分配到被尋址的存儲(chǔ)器具有高使用頻率的數(shù)據(jù)單元被分配 到低延遲存儲(chǔ)器位置,具有低使用頻率的數(shù)據(jù)單元被分配到相對(duì)高延遲 的存儲(chǔ)器位置。當(dāng)預(yù)定事件在步驟516發(fā)生時(shí),控制返回到步驟512,在 該步驟中確定存儲(chǔ)器延遲。當(dāng)在引導(dǎo)時(shí)間時(shí)測(cè)量系統(tǒng)延遲時(shí),存儲(chǔ)器延遲可以由固件進(jìn)行映射 以確定系統(tǒng)拓樸。此映射可以用于最初映射系統(tǒng),并且可以用于在地址 已經(jīng)改變物理位置的情況下映射系統(tǒng)。這是一種保持跟蹤物理位置延遲 的更容易的方式。所讀取的command-to-data-return是用于確定延遲的關(guān) 鍵統(tǒng)計(jì)量,所以對(duì)于實(shí)時(shí)測(cè)量,command-to-data-return是可以用于映射延 遲的度量。圖6示出此實(shí)施方式的操作。在步驟610,在系統(tǒng)正常操作期間, 存儲(chǔ)器調(diào)度系統(tǒng)搜索預(yù)定事件(或者幾個(gè)事件之一)。例如,該事件可 以是芯片獵殺(chip-kill)(步驟614)、新軟件應(yīng)用的運(yùn)行(步驟616) 或者時(shí)段計(jì)時(shí)器的期滿(步驟618)。在芯片獵殺的情況下,系統(tǒng)檢測(cè) 出給定芯片(諸如存儲(chǔ)器芯片)發(fā)生故障,并將數(shù)據(jù)移動(dòng)到其他芯片來(lái) 避免故障。在計(jì)時(shí)器的情況下,系統(tǒng)通過(guò)使用計(jì)時(shí)器來(lái)周期性地測(cè)試存 儲(chǔ)器空間的延遲。 一旦事件發(fā)生,系統(tǒng)在步驟620確定每個(gè)存儲(chǔ)器位置的延遲,并根據(jù)新檢測(cè)到的每個(gè)存儲(chǔ)器位置的延遲來(lái)將各個(gè)數(shù)據(jù)單元映射到存儲(chǔ)器空間。然后,在步驟612系統(tǒng)回到正常操作。圖7中示出了基于動(dòng)態(tài)延遲的存儲(chǔ)器分配的示例,其中表格700將 多個(gè)虛擬存儲(chǔ)器地址714與相應(yīng)的多個(gè)延遲類712相關(guān)聯(lián)。(在所示示 例中,延遲類包括慢速(S)、中速(M)和快速(F);但是本領(lǐng)域技 術(shù)人員容易理解,可以使用更少的或者更多的延遲類,而不脫離以下片又利要求的范圍。)在對(duì)物理存儲(chǔ)器位置進(jìn)行基準(zhǔn)確定后,存儲(chǔ)器表格702 將多個(gè)物理存儲(chǔ)器單位710與相應(yīng)延遲類712相關(guān)聯(lián)。存儲(chǔ)器映射704 使多個(gè)虛擬存儲(chǔ)器地址714與物理存儲(chǔ)器位置710的每一個(gè)相關(guān),并且 存儲(chǔ)器調(diào)度器基于每個(gè)數(shù)據(jù)單元的使用頻率和與每個(gè)虛擬存儲(chǔ)器地址 相關(guān)的延遲類來(lái)將數(shù)據(jù)單元716分配給虛擬存儲(chǔ)器地址714。(例如,過(guò)諸如在運(yùn)行時(shí)間期間檢測(cè)高速緩存命中頻率的方法來(lái)確定。)最初, 在所示示例中,已經(jīng)確定數(shù)據(jù)單元AX...X到CX...X是低使用頻率數(shù)據(jù) 單元,并且該數(shù)據(jù)單元被分配到慢速延遲虛擬地址(00001-00003),已 經(jīng)確定數(shù)據(jù)單元DX...X到FX...X是中等使用頻率數(shù)據(jù)單元,并且該數(shù)據(jù) 單元被分配到中速延遲虛擬地址(00004-00006),并且已經(jīng)確定數(shù)據(jù)單 元GX...X到JX...X是高使用頻率數(shù)據(jù)單元,并且該數(shù)據(jù)單元被分配到快 速延遲虛擬地址(00007-00009)。在預(yù)先選定事件發(fā)生時(shí),重新測(cè)試物理存儲(chǔ)器位置的延遲,從而產(chǎn) 生修訂的存儲(chǔ)器表格706,該表格706使物理地址710與延遲類712相關(guān)。 在所示示例中,物理存儲(chǔ)器位置0F383在原始存儲(chǔ)器表格702中被分類 為慢速,但是在修訂的存儲(chǔ)表格706中被重新分類為中速。如在此示例 中可見,若干其他存儲(chǔ)器位置也被重新分類。在該事件后,在修訂的存儲(chǔ)器映射708中,物理存儲(chǔ)器位置710與 虛擬存儲(chǔ)器地址714重新關(guān)聯(lián),并且存儲(chǔ)器調(diào)度器使數(shù)據(jù)單元被寫入與 分配給它們的虛擬地址714相對(duì)應(yīng)的物理存儲(chǔ)器地址710中。正如本領(lǐng)域技術(shù)人員容易理解的,存在多種不同的方式來(lái)確定物理 存儲(chǔ)器位置的延遲。在一個(gè)示例中,啟動(dòng)數(shù)據(jù)計(jì)時(shí)器,并且將第一數(shù)據(jù)單元(諸如測(cè)試數(shù)據(jù)單元)寫入所選擇的存儲(chǔ)器位置。隨后從存儲(chǔ)器位 置中讀取該數(shù)據(jù)單元,并且當(dāng)從存儲(chǔ)器位置讀取的值與寫入存儲(chǔ)器位置 的值相同時(shí),則停止計(jì)時(shí)器,并且該計(jì)時(shí)器中存儲(chǔ)的值就是該存儲(chǔ)器位 置的存儲(chǔ)器延遲。延遲值可以存儲(chǔ)在表格中,該表格將物理存儲(chǔ)器位置 與延遲相關(guān)聯(lián),或者延遲值可以被分配給寫入表格的延遲類。在另一個(gè) 示例中,啟動(dòng)計(jì)時(shí)器,并且將數(shù)據(jù)單元寫入存儲(chǔ)器位置。當(dāng)從存儲(chǔ)器位 置讀取的信號(hào)值穩(wěn)定時(shí)(即,其信號(hào)值在預(yù)定量的時(shí)間內(nèi)未發(fā)生變化), 停止該計(jì)時(shí)器。盡管上述描述的實(shí)施方式包括了優(yōu)選實(shí)施方式和在申請(qǐng)時(shí)本發(fā)明人 所知的本發(fā)明最佳模式,但是僅僅是出于示例的目的而給出的。容易理 解,從本說(shuō)明書中的特定實(shí)施方式可以做出許多變體,而不脫離本發(fā)明 的精神和范圍。因此,本發(fā)明的范圍將由以下權(quán)利要求來(lái)確定,而不是 由以上具體描述的實(shí)施方式來(lái)限制。
權(quán)利要求
1.一種用于控制包括多個(gè)存儲(chǔ)器位置的計(jì)算機(jī)可讀存儲(chǔ)器的方法,該方法包括以下動(dòng)作a.確定多個(gè)數(shù)據(jù)單元的使用頻率;b.當(dāng)每次發(fā)生預(yù)定事件時(shí),確定針對(duì)該多個(gè)存儲(chǔ)器位置中的每一個(gè)的存儲(chǔ)器延遲;以及c.在該預(yù)定事件之后,將具有高使用頻率的數(shù)據(jù)單元存儲(chǔ)在具有低延遲的存儲(chǔ)器位置中。
2. 根據(jù)權(quán)利要求1的方法,進(jìn)一步包括將具有低使用頻率的數(shù) 據(jù)單元存儲(chǔ)在具有高延遲的存儲(chǔ)器位置中的動(dòng)作。
3. 根據(jù)權(quán)利要求1的方法,其中該預(yù)定事件包括芯片獵殺事件。
4. 根據(jù)權(quán)利要求1的方法,其中該預(yù)定事件包括軟件改變事件。
5. 根據(jù)權(quán)利要求l的方法,其中該預(yù)定事件包括周期性事件。
6. 根據(jù)權(quán)利要求5的方法,進(jìn)一步包括以下步驟a. 啟動(dòng)時(shí)段計(jì)時(shí)器;以及b. 當(dāng)該時(shí)段計(jì)時(shí)器指示從啟動(dòng)該時(shí)段計(jì)時(shí)器起已經(jīng)過(guò)去預(yù)先選 擇量的時(shí)間時(shí),斷定該周期性事件。
7. 根據(jù)權(quán)利要求1的方法,其中該確定存儲(chǔ)器延遲動(dòng)作包括以 下動(dòng)作a. 啟動(dòng)數(shù)據(jù)計(jì)時(shí)器;b. 將第一數(shù)據(jù)單元存儲(chǔ)在選擇的存儲(chǔ)器位置中;c. 從選擇的存儲(chǔ)器位置讀取存儲(chǔ)的數(shù)據(jù)單元;d. 當(dāng)存儲(chǔ)的數(shù)據(jù)單元滿足預(yù)先選擇的標(biāo)準(zhǔn)時(shí),停止該數(shù)據(jù)計(jì)時(shí) 器,該數(shù)據(jù)計(jì)時(shí)器保持與所選擇存儲(chǔ)器位置對(duì)應(yīng)的存儲(chǔ)器延遲值; 以及e. 將該存儲(chǔ)器延遲值寫入與選擇的存儲(chǔ)器位置對(duì)應(yīng)的存儲(chǔ)器表 格中選擇的位置。
8. 根據(jù)權(quán)利要求7的方法,其中該第一數(shù)據(jù)單元包括測(cè)試數(shù)據(jù) 單元,并且進(jìn) 一 步包括確定當(dāng)該存儲(chǔ)的數(shù)據(jù)單元與該測(cè)試數(shù)據(jù)單元 相對(duì)應(yīng)時(shí)已經(jīng)滿足該預(yù)先選擇的標(biāo)準(zhǔn)的動(dòng)作。
9. 根據(jù)權(quán)利要求7的方法,進(jìn)一步包括確定當(dāng)該存儲(chǔ)的數(shù)據(jù)單 元具有穩(wěn)定信號(hào)值時(shí)已經(jīng)滿足該預(yù)先選擇的標(biāo)準(zhǔn)的動(dòng)作。
10. —種用于控制包括多個(gè)存儲(chǔ)器位置的計(jì)算機(jī)可讀存儲(chǔ)器的 系統(tǒng),包括a. 存儲(chǔ)器延遲確定電路,其當(dāng)每次發(fā)生預(yù)定事件時(shí)確定針對(duì)多 個(gè)存儲(chǔ)器位置中的每一個(gè)的存儲(chǔ)器延遲;b. 使用頻率存儲(chǔ)器,其存儲(chǔ)多個(gè)數(shù)據(jù)單元中的每一個(gè)的使用頻 率;以及c. 存儲(chǔ)器調(diào)度器,其在該預(yù)定事件后,基于該預(yù)定事件之后確 定的存儲(chǔ)器延遲,將每個(gè)數(shù)據(jù)單元分配到不同的存儲(chǔ)器位置,使得 具有高使用頻率的每個(gè)類置。
11. 根據(jù)權(quán)利要求10的系統(tǒng),其中該存儲(chǔ)器調(diào)度器將具有低使 用頻率的數(shù)據(jù)單元分配到具有高延遲的存儲(chǔ)器位置。
12. 根據(jù)權(quán)利要求10的系統(tǒng),其中該預(yù)定事件包括芯片獵殺事件。
13. 根據(jù)權(quán)利要求10的系統(tǒng),其中該預(yù)定事件包括軟件改變事件。
14. 根據(jù)權(quán)利要求10的系統(tǒng),其中該預(yù)定事件包括周期性事件。
15. 根據(jù)權(quán)利要求14的系統(tǒng),進(jìn)一步包括a. 時(shí)段計(jì)時(shí)器;以及b. 當(dāng)該時(shí)段計(jì)時(shí)器指示從啟動(dòng)該時(shí)段計(jì)時(shí)器起已經(jīng)過(guò)去預(yù)先選 擇量的時(shí)間時(shí)斷定該周期性事件的電路。
16. 根據(jù)權(quán)利要求10的系統(tǒng),其中該存儲(chǔ)器延遲確定電路包括a. 數(shù)據(jù)計(jì)時(shí)器;b. 將第 一數(shù)據(jù)單元存儲(chǔ)在選擇的存儲(chǔ)器位置中并啟動(dòng)該數(shù)據(jù)計(jì)時(shí)器的電路;c. 從選擇的存儲(chǔ)器位置讀取存儲(chǔ)的數(shù)據(jù)單元的電路;d. 當(dāng)存儲(chǔ)的數(shù)據(jù)單元滿足預(yù)先選擇的標(biāo)準(zhǔn)時(shí)停止該數(shù)據(jù)計(jì)時(shí)器 的電路,該數(shù)據(jù)計(jì)時(shí)器保持與所選擇存儲(chǔ)器位置對(duì)應(yīng)的存儲(chǔ)器延遲 值;以及e. 將該存儲(chǔ)器延遲值寫入與選擇的存儲(chǔ)器位置對(duì)應(yīng)的存儲(chǔ)表格 中選擇的位置的電路。
17. 根據(jù)權(quán)利要求16的系統(tǒng),其中該第一數(shù)據(jù)單元包括測(cè)試數(shù) 據(jù)單元,并且進(jìn) 一 步包括確定當(dāng)該存儲(chǔ)的數(shù)據(jù)單元與該測(cè)試數(shù)據(jù)單 元相對(duì)應(yīng)時(shí)已經(jīng)滿足該預(yù)先選擇標(biāo)準(zhǔn)的電i 各。
18. 根據(jù)權(quán)利要求16的系統(tǒng),進(jìn)一步包括確定當(dāng)該存儲(chǔ)的數(shù)據(jù) 單元具有穩(wěn)定信號(hào)值時(shí)已經(jīng)滿足該預(yù)先選擇的標(biāo)準(zhǔn)的電路。
19. 一種存儲(chǔ)器調(diào)度系統(tǒng),包括a. 存儲(chǔ)器延遲檢測(cè)電路,其當(dāng)每次發(fā)生預(yù)定事件時(shí)檢測(cè)多個(gè)存 儲(chǔ)器位置的每一個(gè)存儲(chǔ)器位置的延遲;b. 動(dòng)態(tài)存儲(chǔ)器映射,其將多個(gè)虛擬存儲(chǔ)器位置映射到相應(yīng)的多 個(gè)物理存儲(chǔ)器位置,基于該物理存儲(chǔ)器位置的延遲將每個(gè)物理存儲(chǔ) 器位置分配到虛擬存儲(chǔ)器位置;以及c. 存儲(chǔ)器調(diào)度器,其基于每個(gè)數(shù)據(jù)單元使用的使用頻率,將多 個(gè)數(shù)據(jù)單元的每一個(gè)分配到不同的虛擬存儲(chǔ)器位置,使得具有高使 用頻率的數(shù)據(jù)單元被分配到低延遲虛擬存儲(chǔ)器位置。
20. 根據(jù)權(quán)利要求19的存儲(chǔ)器調(diào)度系統(tǒng),其中該存儲(chǔ)器延遲檢 測(cè)電路包括一 個(gè)電路,該電路被配置為測(cè)量當(dāng)數(shù)據(jù)單元被寫入數(shù)據(jù) 位置時(shí)與當(dāng)該數(shù)據(jù)單元在該存儲(chǔ)器位置上有效時(shí)之間的時(shí)間量。
全文摘要
在控制包括多個(gè)存儲(chǔ)器位置的計(jì)算機(jī)可讀存儲(chǔ)器的方法中,確定多個(gè)數(shù)據(jù)單元的使用頻率。當(dāng)每次發(fā)生預(yù)定事件時(shí),確定針對(duì)該多個(gè)存儲(chǔ)器位置中每一個(gè)的存儲(chǔ)器延遲。在該預(yù)定事件之后,將具有高使用頻率的數(shù)據(jù)單元存儲(chǔ)在具有低延遲的存儲(chǔ)器位置中。
文檔編號(hào)G06F12/02GK101221534SQ20081000175
公開日2008年7月16日 申請(qǐng)日期2008年1月8日 優(yōu)先權(quán)日2007年1月9日
發(fā)明者G·K·巴特利, J·M·博肯哈根, P·R·杰曼, W·P·霍維斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司