利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開涉及利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法和系統(tǒng)。提供了利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法、系統(tǒng)和計算機程序產(chǎn)品。在存儲器體系架構(gòu)中的位置接收存儲器訪問請求,其中處理存儲器訪問請求在到達持有所請求數(shù)據(jù)的存儲器設(shè)備之前必須使用末級高速緩存。利用存儲器控制器使得存儲器訪問請求等待,并省略向被接受以利用末級高速緩存進行處理的現(xiàn)有存儲器訪問請求的隊列添加存儲器訪問請求。利用末級高速緩存處理隊列中的所有現(xiàn)有存儲器訪問請求。把末級高速緩存清除到存儲器設(shè)備。利用避免末級高速緩存的到存儲器設(shè)備的備選路徑處理存儲器訪問請求。使用作為末級高速緩存的高速緩存設(shè)備斷電。
【專利說明】利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般而言涉及用于管理數(shù)據(jù)處理環(huán)境中的電力使用的方法、系統(tǒng)和計算機 程序產(chǎn)品。更具體地,本發(fā)明涉及用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法、 系統(tǒng)和計算機程序產(chǎn)品。
【背景技術(shù)】
[0002] 在數(shù)據(jù)處理系統(tǒng)中的存儲器包括一個或多個固態(tài)存儲器設(shè)備,諸如雙列直插存儲 器模塊(DIMM)。不僅處理器或處理器核,而且數(shù)據(jù)處理系統(tǒng)中的許多其它組件和子系統(tǒng)也 需要對存儲器進行訪問。
[0003] 在大多數(shù)情況下,對存儲器以直接的方式進行訪問比可接受的要慢。高速緩存存 儲器(cache)是更快且更小的存儲器設(shè)備,其用于加速對存儲器中最多使用的或最近使用 的數(shù)據(jù)的訪問。
[0004] 目前有各種類型的高速緩存在使用。取決于對特定類型的高速緩存所期望的使用 屬性來以某種方式配置和定位該高速緩存。例如,諸如被稱為CPU-高速緩存的級-I (LI)、 級-2 (L2)和級-3 (L3)高速緩存的某種高速緩存被處理器使用來在指令執(zhí)行期間讀和寫數(shù) 據(jù)。LI、L2和L3高速緩存是快且小的存儲器設(shè)備,通常與處理器核形成在同一芯片上以便 靠近處理器進行快速操作。
[0005] 其它級別的高速緩存不只是專門被處理器使用。例如,級_4(L4)高速緩存是數(shù)據(jù) 處理系統(tǒng)中的任何子系統(tǒng)都可以訪問的高速緩存,并且任何子系統(tǒng)都可以經(jīng)L4高速緩存 讀或?qū)懘鎯ζ?。如同其它高速緩存,與存儲器相比,L4高速緩存包括較快的設(shè)備但是較小 的容量,并且加快對存儲器中最近使用的或頻繁使用的數(shù)據(jù)的訪問。作為例子,例如包括網(wǎng) 絡(luò)適配器的網(wǎng)絡(luò)子系統(tǒng),或例如包括I/O控制器的輸入/輸出(I/O)子系統(tǒng),或例如在多分 區(qū)數(shù)據(jù)處理系統(tǒng)中的分區(qū)管理子系統(tǒng),其每個都可以經(jīng)L4高速緩存以給定的配置訪問存 儲器。
[0006] 電子元件,包括用于主存儲器或高速緩存存儲器的存儲器設(shè)備,消耗電力。在系統(tǒng) 范圍內(nèi)的節(jié)省電力狀態(tài)是指示數(shù)據(jù)處理系統(tǒng)的電力消耗作為整體必須被降低的狀態(tài)。
【發(fā)明內(nèi)容】
[0007] 說明性實施例提供了用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法、系 統(tǒng)和計算機程序產(chǎn)品。實施例在數(shù)據(jù)處理系統(tǒng)的存儲器體系架構(gòu)中的位置處接收存儲器訪 問請求,其中處理存儲器訪問請求在到達持有所請求數(shù)據(jù)的存儲器設(shè)備之前必須使用末級 高速緩存(last level cache)。該實施例利用存儲器控制器使得該存儲器訪問請求等待并 且省略向被接受以利用末級高速緩存進行處理的現(xiàn)有存儲器訪問請求隊列添加存儲器訪 問請求。該實施例利用末級高速緩存處理隊列中的所有現(xiàn)有存儲器訪問請求。該實施例將 末級高速緩存清除(purge)到存儲器設(shè)備。該實施例利用避免末級高速緩存的到存儲器設(shè) 備的備選路徑來處理存儲器訪問請求。該實施例使用作為末級高速緩存的高速緩存設(shè)備斷 電。
【專利附圖】
【附圖說明】
[0008] 被認為是本申請的特性的新穎特征在所附權(quán)利要求中加以闡述。但是,本發(fā)明自 身以及優(yōu)選的使用模式、其另外的目的和優(yōu)點將在結(jié)合附圖閱讀時通過參考說明性實施例 的以下詳細描述得到更好理解,其中:
[0009] 圖1描繪了其中可以實現(xiàn)說明性實施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的框圖;
[0010] 圖2描繪了根據(jù)說明性實施例的利用末級高速緩存的示例存儲器訪問配置的框 圖;
[0011] 圖3描繪了根據(jù)說明性實施例的利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的 存儲器訪問的示例性配置;
[0012] 圖4描繪了根據(jù)說明性實施例的利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的 示例性過程的流程圖;及
[0013] 圖5描繪了根據(jù)說明性實施例的使斷電的末級高速緩存返回服務(wù)的示例性過程 的流程圖。
【具體實施方式】
[0014] 在本公開內(nèi)容的范圍內(nèi),末級高速緩存是緊接在存儲器之前的高速緩存。換句話 說,在需要存儲器訪問的子系統(tǒng)和末級高速緩存之間的數(shù)據(jù)路徑中可以存在任何數(shù)量的高 速緩存,但是在末級高速緩存和存儲器之間不存在其它高速緩存。
[0015] 如同其它高速緩存,根據(jù)說明性實施例的末級高速緩存包括比在存儲器中使用的 設(shè)備更快的設(shè)備。通常,但是不一定,末級高速緩存的容量小于存儲器的容量。
[0016] 在并不暗示對其限制的情況下,在目前可用的數(shù)據(jù)處理系統(tǒng)中,在主存儲器之前 的L4高速緩存是末級高速緩存的例子。隨著較新的或不同的存儲器體系架構(gòu)的問世,其它 的或不同的高速緩存級別將變得可能。因此,末級高速緩存可被進一步從子系統(tǒng)中移除, 諸如到對于在到達存儲器之前的末級高速緩存可能可行的第五、第六或更后的高速緩存級 別。
[0017] 說明性實施例認識到不同的組件以不同的方式消耗電力。例如,當處理器利用率 高時,比如高于利用率的閾值水平時,處理器消耗比閾值量多的電力,并且當處理器處于空 閑狀態(tài)時,比如當處理器利用率低于利用率的閾值水平時,處理器消耗較少的電力。因此, 當處理器利用率高時,CPU高速緩存使用比閾值量多的電力,并且當處理器利用率低時,使 用較少的電力。
[0018] 說明性實施例認識到某些組件的電力消耗不以這樣直接的方式綁定到處理器利 用率。例如,即使當處理器處于低于閾值利用率的空閑狀態(tài)時,諸如當前可用數(shù)據(jù)處理系統(tǒng) 中的L4高速緩存的末級高速緩存,也會進行高電力消耗。例如,在某種情形下,數(shù)據(jù)處理系 統(tǒng)中的一個或所有的處理器核可能處于空閑狀態(tài),但是該數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)子系統(tǒng)可 能會推送相當大量的數(shù)據(jù),從而導致顯著的L4高速緩存活動,因此在末級高速緩存中導致 高于閾值的電力消耗。
[0019] 說明性實施例認識到通常的電力節(jié)省技術(shù)不適于在任何省電模型中引入末級高 速緩存。例如,通常地,可以使組件斷電以消除或降低組件的電力消耗并從而節(jié)省電力。但 是,通過使組件斷電,由數(shù)據(jù)處理系統(tǒng)中的組件提供的功能性也丟失了。在除末級高速緩存 之外的組件的情況下,功能性的丟失不是個問題,這是因為組件無論如何并沒有被使用。
[0020] 說明性實施例認識到由于末級高速緩存所占據(jù)的位置,簡單地使末級高速緩存斷 電以節(jié)省電力中斷了數(shù)據(jù)處理系統(tǒng)中許多(如果不是全部的話)子系統(tǒng)對存儲器的訪問。 如果該數(shù)據(jù)處理系統(tǒng)即使在減少電力消耗狀態(tài)下也必須保持操作的話,則這種處理器中斷 將是不可接受的。
[0021] 用來描述本發(fā)明的說明性實施例總體上討論并解決了關(guān)于在數(shù)據(jù)處理系統(tǒng)中節(jié) 省電力的上述問題及其它問題。說明性實施例提供了用于利用存儲器高速緩存在系統(tǒng)范圍 內(nèi)節(jié)省電力的方法、系統(tǒng)和計算機程序產(chǎn)品。
[0022] 說明性實施例認識到無論組件或整個系統(tǒng)的利用率如何,都會產(chǎn)生在系統(tǒng)范圍內(nèi) 減少電力的需求。例如,如果多個供電單元中的一個或多個故障,那么在使用來自剩余供電 單元的減少的電量的同時,必須減少數(shù)據(jù)處理系統(tǒng)的電力消耗以維護數(shù)據(jù)處理系統(tǒng)的穩(wěn)定 性。
[0023] 作為另一個例子,規(guī)范或標準可能要求數(shù)據(jù)處理系統(tǒng)的電力消耗在操作的某個相 應(yīng)狀態(tài)中在總體上不超過某個閾值。為了使系統(tǒng)符合規(guī)范或標準,無論諸如處理器的任何 特定子系統(tǒng)的利用率如何,該系統(tǒng)的電力消耗都可能必須要減少。
[0024] 說明性實施例認識到在系統(tǒng)范圍內(nèi)減少電力的情況下用于減少電力消耗的可選 項是有限的,并且在不使組件斷電并遭受相應(yīng)的功能性損失的情況下,這通常不能被實現(xiàn)。 示例性實施例認識到末級高速緩存可以以這里所描述的不中斷功能性的方式斷電,即,在 減少系統(tǒng)的總電力足跡(footprint)的同時訪問存儲器。
[0025] 說明性實施例僅僅作為例子對于某些狀態(tài)、數(shù)據(jù)處理系統(tǒng)、環(huán)境、組件和應(yīng)用進行 描述。這種制造品的任何具體表述不是要限制本發(fā)明。在說明性實施例的范圍內(nèi),可以選 擇條件、數(shù)據(jù)處理系統(tǒng)、環(huán)境、組件和應(yīng)用的任何合適的表述形式。
[0026] 而且,對于任何類型的數(shù)據(jù)、數(shù)據(jù)源或在數(shù)據(jù)網(wǎng)絡(luò)上對數(shù)據(jù)源的訪問,可以實現(xiàn)說 明性實施例。在本發(fā)明的范圍內(nèi),任何類型的數(shù)據(jù)存儲設(shè)備都可以向本發(fā)明的實施例提供 數(shù)據(jù),或者在數(shù)據(jù)處理系統(tǒng)本地或者通過數(shù)據(jù)網(wǎng)絡(luò)提供。
[0027] 說明性實施例利用具體的代碼、設(shè)計、體系架構(gòu)、協(xié)議、布局、語義和工具進行描述 只是作為例子并不是限制說明性實施例。而且,說明性實施例在一些實例中利用特定的軟 件、工具、和數(shù)據(jù)處理環(huán)境進行描述只是作為例子以使描述清晰。說明性實施例可以與其它 可比較的或類似意圖的結(jié)構(gòu)、系統(tǒng)、應(yīng)用或體系架構(gòu)聯(lián)合使用。說明性實施例可以用硬件、 軟件或其組合來實現(xiàn)。
[0028] 使用本公開內(nèi)容中的例子只是為了清晰描述起見并不是要限制說明性實施例。根 據(jù)本公開內(nèi)容可以想象其它的數(shù)據(jù)、操作、動作、任務(wù)、活動和操縱,并且這些可以在說明性 實施例的范圍內(nèi)構(gòu)想。
[0029] 本文所列出的任何優(yōu)點都只是例子并不是要限制說明性實施例??梢岳镁唧w的 說明性實施例實現(xiàn)附加的或不同的優(yōu)點。而且,特定的說明性實施例可以具有以上所列出 的優(yōu)點中的一些、全部或者沒有。
[0030] 參考附圖并且尤其參考圖1和2,這些附圖是說明性實施例可以在其中實現(xiàn)的數(shù) 據(jù)處理環(huán)境的示例圖。圖1和2只是例子并不是要斷言或暗示對于不同實施例可以在其中 實現(xiàn)的環(huán)境的任何限制。特定的實現(xiàn)可以基于以下描述對所描繪的環(huán)境進行許多修改。
[0031] 參考圖1,該圖描繪了其中可以實現(xiàn)說明性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù) 據(jù)處理系統(tǒng)100可以是包括多個連接到系統(tǒng)總線106的處理器101、102、103和104的對 稱多處理器(SMP)系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)100可以是在網(wǎng)絡(luò)中實現(xiàn)為服務(wù)器的IBM Power System?。(IBM和Power Systems是國際商用機器公司在美國和其它國家的商 標)??商鎿Q地,可以采用單處理器系統(tǒng)并且處理器101、102、103和104可以是單個處理器 芯片中的核??商鎿Q地,數(shù)據(jù)處理系統(tǒng)100可包括以處理器和核的任意組合的處理器101、 102、103 和 104。
[0032] 同樣連接到系統(tǒng)總線106的是存儲器控制器/高速緩存108,其提供到多個本地存 儲器160-163的接口。I/O總線橋110連接到系統(tǒng)總線106并且提供到I/O總線112的接 口。存儲器控制器/高速緩存108和I/O總線橋110可以如所描述的那樣集成。末級高速 緩存108A實現(xiàn)在存儲器控制器/高速緩存108中或與其結(jié)合實現(xiàn)。存儲器160-163構(gòu)成 通過末級高速緩存108A訪問的存儲器。
[0033] 數(shù)據(jù)處理系統(tǒng)100是邏輯上分區(qū)的數(shù)據(jù)處理系統(tǒng)。因此,數(shù)據(jù)處理系統(tǒng)100可以 具有多個同時運行的異構(gòu)操作系統(tǒng)(或單個操作系統(tǒng)的多個實例)。這些多個操作系統(tǒng)中 的每一個都可以具有在其中執(zhí)行的任意數(shù)量的軟件程序。數(shù)據(jù)處理系統(tǒng)100是邏輯上分區(qū) 的,使得不同的PCI I/O適配器120-121,128-129和136、圖形適配器148、及硬盤適配器 149可被分配到不同的邏輯分區(qū)。在此情況下,圖形適配器148連接到顯示設(shè)備(未示出), 而硬盤適配器149連接到并且控制硬盤150。
[0034] 因此,例如,假設(shè)數(shù)據(jù)處理系統(tǒng)100被分成三個邏輯分區(qū):P1、P2和P3。PCI I/O 適配器120-121,128-129,136中的每一個、圖形適配器148、硬盤適配器149、主機處理器 101-104中的每一個、及來自本地處理器160-163的處理器被分配到這三個分區(qū)中的其中 一個。在這些例子中,存儲器160-163可以采用雙列直插存儲器模塊(DIMM)的形式。DIMM 通常不基于每個DMM分配到分區(qū)。相反,分區(qū)將得到由平臺所看到的全部存儲器的一部 分。例如,處理器101、來自本地存儲器160-163的存儲器的一些部分、及I/O適配器120, 128和129可分配到邏輯分區(qū)Pl ;處理器102-103、來自本地存儲器160-163的存儲器的一 些部分、及PCI I/O適配器121和136可分配到分區(qū)P2 ;并且處理器104、來自本地存儲器 160-163的存儲器的一些部分、圖形適配器148和硬盤適配器149可分配到邏輯分區(qū)P3。
[0035] 在數(shù)據(jù)處理系統(tǒng)100中執(zhí)行的每個操作系統(tǒng)被分配到不同的邏輯分區(qū)。因此,在 數(shù)據(jù)處理系統(tǒng)100中執(zhí)行的每個操作系統(tǒng)只可訪問在其邏輯分區(qū)中的那些I/O單元。因 此,例如,高級交互執(zhí)行(Advanced Interactive Executive) (AIX?)操作系統(tǒng)的一個 實例可以在分區(qū)Pl中執(zhí)行,AIX操作系統(tǒng)的第二實例(映象)可以在分區(qū)P2中執(zhí)行,并且 Linux'?或ΙΒΜ_--操作系統(tǒng)可以在邏輯分區(qū)P3中運行。(AIX和iBM-i是國際商用機器 公司在美國和其它國家的商標。Linux是Linus Torvalds在美國和其它國家的商標)。
[0036] 連接到I/O總線112的外圍組件互連(PCI)主橋114提供了到PCI本地總線115 的接口。多個PCI輸入/輸出適配器120-121通過PCI至PCI橋116、PCI總線118、PCI總 線119、1/0槽170和I/O槽171連接到PCI本地總線115。PCI至PCI橋116提供了到PCI 總線118和PCI總線119的接口。PCI I/O適配器120和121被分別放置到I/O槽170和 171中。典型的PCI總線實現(xiàn)支持四個和八個之間的I/O適配器(S卩,用于插件(add-in) 連接器的擴展槽)。每個PCI I/O適配器120-121提供了數(shù)據(jù)處理系統(tǒng)100與輸入/輸出 設(shè)備--諸如,例如作為數(shù)據(jù)處理系統(tǒng)100的客戶端的其它網(wǎng)絡(luò)計算機--之間的接口。
[0037] 附加的PCI主橋122為附加的PCI本地總線123提供了接口。PCI本地總線123 連接到多個PCI I/O適配器128-129。PCI I/O適配器128-129通過PCI至PCI橋124、PCI 總線126、PCI總線127、I/O槽172和I/O槽173連接到PCI本地總線123。PCI至PCI橋 124提供了到PCI總線126和PCI總線127的接口。PCI I/O適配器128和129被分別放 置在I/O槽172和173中。以這種方式,諸如像調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器的附加 I/O設(shè)備 可以通過PCI I/O適配器128-129中的每一個得到支持。因此,數(shù)據(jù)處理系統(tǒng)100允許連 接到多個網(wǎng)絡(luò)計算機。
[0038] 存儲器映射的圖形適配器148被插入到I/O槽174中并通過PCI總線144、PCI至 PCI橋142、PCI本地總線141和PCI主橋140連接到I/O總線112。硬盤適配器149可放置 在I/O槽175中,其連接到PCI總線145。反過來,PCI總線145連接到PCI至PCI橋142, 其通過PCI本地總線141連接到PCI主橋140。
[0039] PCI主橋130為PCI本地總線131提供了用于連接到I/O總線112的接口。PCI I/O適配器136連接到I/O槽176,其通過PCI總線133連接到PCI至PCI橋132。PCI至 PCI橋132連接到PCI本地總線131。PCI本地總線131還把PCI主橋130連接到服務(wù)處理 器郵箱接口和ISA總線訪問傳遞(pass-through)邏輯194及PCI至PCI橋132。
[0040] 服務(wù)處理器郵箱接口和ISA總線訪問傳遞邏輯194轉(zhuǎn)發(fā)前往PCI/ISA橋193的 PCI訪問。NVRAM存儲裝置192連接到ISA總線196。服務(wù)處理器135通過其本地PCI總 線195連接到服務(wù)處理器郵箱接口和ISA總線訪問傳遞邏輯194。服務(wù)處理器135還經(jīng)多 個JTAG/I2C總線134連接到處理器101-104。JTAG/I2C總線134是JTAG/掃描總線(參 見 IEEE 1149.1)和 Phillips I2C 總線的組合。
[0041] 但是,可替換地,JTAG/I2C總線134可替換成僅僅Phi 11 ipsI2C總線或僅僅JTAG/ 掃描總線。主機處理器101、102、103和104的所有SP-ATTN信號一起連接到服務(wù)處理器135 的中斷輸入信號。服務(wù)處理器135具有其自己的本地存儲器191并且具有對硬件OP-面板 190的訪問。
[0042] 當數(shù)據(jù)處理系統(tǒng)100初始加電時,服務(wù)處理器135使用JTAG/I2C總線134來詢問 系統(tǒng)(主機)處理器101-104、存儲器控制器/高速緩存108和I/O橋110。在這步完成 時,服務(wù)處理器135具有對數(shù)據(jù)處理系統(tǒng)100的存貨(inventory)及拓撲結(jié)構(gòu)的了解。服 務(wù)處理器135還在通過詢問主機處理器101-104、存儲器控制器/高速緩存108和I/O橋 110找到的所有元件上執(zhí)行機內(nèi)自檢(Build-In-Self-Test,BIST)、基本保證測試(Basic Assurance Test,BAT)及存儲器測試。服務(wù)處理器135針對在BIST、BAT和存儲器測試過 程中檢測到的故障,收集和報告任何錯誤信息。
[0043] 如果在取出在BIST、BAT和存儲器測試過程中發(fā)現(xiàn)的有故障的元件之后仍然可能 進行系統(tǒng)資源的有意義/有效的配置,則數(shù)據(jù)處理系統(tǒng)100被允許繼續(xù)把可執(zhí)行代碼加載 到本地(主機)存儲器160-163。然后服務(wù)處理器135釋放主機處理器101-104,用于執(zhí) 行加載到本地存儲器160-163中的代碼。當主機處理器101-104執(zhí)行來自數(shù)據(jù)處理系統(tǒng) 100中的各個操作系統(tǒng)中的代碼時,服務(wù)處理器135進入監(jiān)視和報告錯誤模式。服務(wù)處理 器135監(jiān)視各種項目,包括例如,冷卻風扇的速度和運行、熱傳感器、供電調(diào)節(jié)器、及由處理 器101-104、本地存儲器160-163和I/O橋110報告的可恢復的和不可恢復的錯誤。
[0044] 服務(wù)處理器135保存并報告關(guān)于數(shù)據(jù)處理系統(tǒng)100中所有被監(jiān)視項目的錯誤信 息。服務(wù)處理器135還根據(jù)錯誤的類型和定義的閾值采取行動。例如,服務(wù)處理器135可 以記錄處理器高速緩存存儲器上過多的可恢復錯誤并且確定這是硬故障的預兆。基于這個 決定,服務(wù)處理器135可標記該資源以便在當前運行的會話和將來的初始程序加載(IPL) 過程中解除配置。IPL有時也稱為"引導(boot)"或"引導程序(bootstrap)"。
[0045] 數(shù)據(jù)處理系統(tǒng)100可以利用各種商用的計算機系統(tǒng)來實現(xiàn)。例如,數(shù)據(jù)處理系統(tǒng) 100可利用從國際商用機器公司得到的IBM Power系統(tǒng)來實現(xiàn)。這種系統(tǒng)可以利用AIX操 作系統(tǒng)支持邏輯分區(qū),其中AIX操作系統(tǒng)也可從國際商用機器公司得到。
[0046] 諸如存儲器191、NVRAM 192、本地存儲器160,161,162和163、或閃存存儲器(未 示出)的存儲器是計算機可用存儲設(shè)備的一些例子。硬盤150、CD-R0M(未示出)和其它類 似的可用設(shè)備是包括計算機可用存儲介質(zhì)的計算機可用存儲設(shè)備的一些例子。
[0047] 那些本領(lǐng)域普通技術(shù)人員將理解,在圖1中描繪的硬件可以變化。例如,諸如光盤 驅(qū)動器等的其它外圍設(shè)備也可以用來作為附加或替代所描繪的硬件。作為另一個例子,諸 如適配器的一些物理資源可被虛擬化成相應(yīng)的虛擬資源(未示出),然后該虛擬資源可分 配給各種分區(qū)。作為另一個例子,在圖1中描繪的硬件可配置成使用一個或多個虛擬1/0 服務(wù)器(VIOS)(未示出)。VIOS允許在所支持的邏輯分區(qū)之間共享物理資源,諸如適配器、 磁盤、控制器、處理器、存儲器等。除了其它功能之外,共享的VIOS有助于減少分區(qū)之間所 需要的大量布線,并執(zhí)行實時遷移。所描繪的例子不是要暗示對于示例性實施例進行體系 架構(gòu)的限制。
[0048] 參考圖2,該圖描繪了根據(jù)說明性實施例的利用末級高速緩存的示例存儲器訪問 配置的框圖。存儲器控制器202是圖1中存儲器控制器108的改進實施例。系統(tǒng)200的存 儲控制器202使用內(nèi)部或外部實現(xiàn)的應(yīng)用204,其實現(xiàn)本文所描述的實施例。末級高速緩存 206是圖1中末級高速緩存108A的例子。
[0049] 系統(tǒng)200包括若干個子系統(tǒng)。例如,子系統(tǒng)-A 208包括一個或多個處理器核。作 為另一個例子,子系統(tǒng)-B 210包括聯(lián)網(wǎng)組件。作為另一個例子,子系統(tǒng)-C 212包括1/0組 件。在給定的數(shù)據(jù)處理系統(tǒng)中可以類似地存在任何數(shù)量和類型的子系統(tǒng)而沒有限制。
[0050] 系統(tǒng)200的子系統(tǒng),諸如子系統(tǒng)208、210和212,利用存儲器控制器202經(jīng)末級高 速緩存206訪問存儲器214??梢源嬖谶B接到其它末級高速緩存和在給定系統(tǒng)中連接到它 們的DIMM的附加的存儲器控制器和應(yīng)用。該示例性實施例僅作為例子反映只有單個存儲 器控制器,沒有暗示對其的限制。在說明性實施例的范圍內(nèi)可以采用任何數(shù)量的存儲器控 制器。在沒有暗示對其限制的情況下,在目前可用的數(shù)據(jù)處理系統(tǒng)中的主存儲器是存儲器 214的例子。存儲器214包括一個或多個存儲器設(shè)備。作為例子,在一個示例性配置中,末 級高速緩存206包括八個增強的動態(tài)隨機存取存儲器(eDRAM)設(shè)備,每個具有16MB的容 量。eDRAM比DIMM快得多,并且通常在各種高速緩存級別的高速緩存配置中使用。
[0051] 末級高速緩存206中的一個單元或設(shè)備對應(yīng)于或映射到存儲器214中的八個 DIMM,其每個的大小為I GB或更多。示例性配置不是要對說明性實施例進行限制。在說明 性實施例的范圍內(nèi),在任何合適容量或類型的末級高速緩存206和存儲器214中的任何數(shù) 量的存儲器設(shè)備都可以用在用于特定實現(xiàn)的任何合適的映射配置中。
[0052] 電力調(diào)節(jié)器216向末級高速緩存206提供電力。電源218包括一個或多個供電單 元向系統(tǒng)200供電。存儲器控制器202控制電力調(diào)節(jié)器216的操作,用于末級高速緩存206 所期望的操作狀態(tài)。在一個實施例中,電力調(diào)節(jié)器216以下述方式向末級高速緩存206提 供電力,即,當末級高速緩存206斷電時使電力調(diào)節(jié)器216斷電不影響向系統(tǒng)200中的其它 組件供電。
[0053] 參考圖3,該圖描繪了根據(jù)說明性實施例的用于利用存儲器高速緩存在系統(tǒng)范圍 內(nèi)節(jié)省電力的存儲器訪問的示例性配置。存儲器控制器302是圖2中的存儲器控制器202 的例子。應(yīng)用304是圖2中的應(yīng)用204的例子并且實現(xiàn)本文所描述的另一種實施例。末級 高速緩存306是圖2中的末級高速緩存206的例子。存儲器314是圖2中的存儲器214的 例子。
[0054] 在一種實施例中,應(yīng)用304用固件實現(xiàn)。在另一種實施例中,應(yīng)用304用軟件實現(xiàn)。 在還有的另一種實施例中,應(yīng)用304是硬件狀態(tài)機。
[0055] 系統(tǒng)范圍內(nèi)的狀態(tài)322是指示在系統(tǒng)范圍內(nèi)對于減少電力消耗的需要的狀態(tài)。狀 態(tài)322可被廣播到數(shù)據(jù)處理系統(tǒng)中的組件或子系統(tǒng),或者可以由組件或子系統(tǒng)來檢測。在 一種實施例中,存儲器控制器檢測狀態(tài)322作為用以減少電力消耗的指示324。在另一種實 施例中,存儲器控制器302以消息的形式從數(shù)據(jù)處理系統(tǒng)中的另一個組件接收減少存儲器 配置的電力消耗的指示324。
[0056] 響應(yīng)指示324,存儲器控制器302根據(jù)實施例使末級高速緩存306斷電。存儲器控 制器302關(guān)閉用于經(jīng)末級高速緩存306處理存儲器請求的路徑326。根據(jù)實施例,存儲器控 制器302利用備選路徑328處理對存儲器314的請求。以這種方式操作,存儲器請求繼續(xù) 被處理而不用中斷,只有一些對于存儲器訪問的請求在被服務(wù)時經(jīng)歷臨時的延遲,這是由 于使末級高速緩存安全斷電所需要的時間,如在本公開內(nèi)容的其它地方所描述的。在一個 示例性實現(xiàn)中,觀察到這種延遲是幾毫秒的級別,例如,小于10毫秒。
[0057] 參考圖4,該圖描繪了根據(jù)說明性實施例的利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié) 省電力的示例性過程的流程圖。過程400僅作為例子而沒有暗示對這種實現(xiàn)的任何限制, 相對于圖3的應(yīng)用304中的實現(xiàn)進行描述。在說明性實施例的范圍內(nèi),過程400可類似地 用圖3的存儲器控制器302、應(yīng)用304、或其組合來實現(xiàn)。
[0058] 諸如圖3中的應(yīng)用304的應(yīng)用通過檢測需要在系統(tǒng)范圍內(nèi)減少電力消耗開始過程 400(塊402)。該應(yīng)用確定在塊402的檢測是否授權(quán)使末級高速緩存斷電,諸如在圖3中的 末級1?速緩存306 (塊404)。例如,在一種實施例中,需要減少電力消耗的不同指不可以是 彼此間可區(qū)分的,并且可能只響應(yīng)一些這種指示才需要使末級高速緩存斷電。作為另一個 例子,在某些情況下,末級高速緩存可能已經(jīng)響應(yīng)檢測到以前的指示而被斷電,并且可能在 塊402檢測到另一個指示。如果末級高速緩存不能或不應(yīng)該被斷電(塊404的"否"路徑), 則該應(yīng)用使過程400結(jié)束。
[0059] 如果末級高速緩存必須斷電(塊404的"是"路徑),則應(yīng)用停止在末級高速緩存上 運行的高速緩存清理(cleaning)服務(wù),該服務(wù)諸如優(yōu)化末級高速緩存、刪除未使用的數(shù)據(jù) 并使得高速緩存的相應(yīng)部分可用,并執(zhí)行其它類似的功能(塊406)。可選地或根據(jù)需要,應(yīng) 用也可以停止奇偶錯誤檢測服務(wù),諸如通過清除與末級高速緩存相關(guān)聯(lián)的某些位標志(塊 408)。
[0060] 應(yīng)用強迫對于存儲器訪問的新請求等待,諸如通過使新到達的請求在一定時間段 之后重試(塊410)。在一種實施例中,如果存儲器訪問請求還不在在步驟404時要利用末 級高速緩存進行處理的請求的隊列中,則該請求被認為是新的。在一種實施例中,諸如在圖 3中的存儲器控制器302的存儲器控制器維護一個或多個這樣的隊列。
[0061] 該應(yīng)用使得對已經(jīng)在這種隊列中的請求的服務(wù)完成,諸如通過指示存儲器控制器 處理已排隊的請求(塊412)。該應(yīng)用檢查持有存儲器訪問請求的所有隊列是否已被清空, 艮P,沒有仍然未完成的排隊請求(塊414)。如果一個或多個請求正在一個或多個隊列上等 待服務(wù)(塊414的"否"路徑),則應(yīng)用返回到塊412。
[0062] 如果持有存儲器訪問請求的所有隊列都被清空,并且在這些隊列中沒有待處理的 請求(塊414的"是"路徑),則應(yīng)用使末級高速緩存被清除到存儲器中,諸如通過指示存儲 器控制器把末級高速緩存清除到存儲器中(塊416)。該應(yīng)用使末級高速緩存被禁用,諸如 通過指示存儲器控制器來禁止末級高速緩存的進一步使用(塊418)。
[0063] 應(yīng)用指示存儲器控制器繼續(xù)新請求的處理,無論新請求是剛到達的還是處于等待 的或者作為塊410的結(jié)果重試的(塊420)。存儲器控制器通過利用到存儲器的備選路徑來 繼續(xù)處理,備選路徑諸如圖3中的路徑328。
[0064] 隨著末級高速緩存適當?shù)負踝×巳魏涡麓鎯ζ髟L問請求的任何參與,并且未中斷 任何以前的存儲器訪問請求,末級高速緩存現(xiàn)在可以以非中斷的方式斷電以節(jié)省系統(tǒng)中的 電力。因此,該應(yīng)用使末級高速緩存斷電,諸如通過指示存儲器控制器使在末級高速緩存中 使用的一個、一些或所有的設(shè)備斷電(塊422)。
[0065] 在一種實施例中,應(yīng)用在這之后使過程400結(jié)束。在另一種實施例中,應(yīng)用還確定 向末級高速緩存供電的電力調(diào)節(jié)器是否也可以斷電用于節(jié)省額外的電力(塊424)。如果電 力調(diào)節(jié)器不能被斷電,諸如當電力調(diào)節(jié)器正在向另一個活動的組件供電時(塊424的"否" 路徑),則應(yīng)用使過程400結(jié)束。
[0066] 如果電力調(diào)節(jié)器可以被斷電,諸如當電力調(diào)節(jié)器原來只向已被斷電的末級高速緩 存供電時(塊424的"是"路徑),則應(yīng)用同樣使電力調(diào)節(jié)器斷電,諸如通過指示存儲器控制 器使電力調(diào)節(jié)器斷電(塊426)。之后,應(yīng)用使過程400結(jié)束。
[0067] 參考圖5,該圖描繪了根據(jù)說明性實施例的使斷電的末級高速緩存回到服務(wù)中的 示例性過程的流程圖。過程500僅作為例子而沒有暗示對這種實現(xiàn)的任何限制,相對于圖3 的應(yīng)用304中的實現(xiàn)進行描述。在說明性實施例的范圍內(nèi),過程500可類似地用圖3中的 存儲器控制器302、應(yīng)用304、或其組合中來實現(xiàn)。
[0068] 諸如圖3中的應(yīng)用304的應(yīng)用通過檢測到不存在需要在系統(tǒng)范圍內(nèi)減少電力消耗 開始過程500 (塊502)。該應(yīng)用確定諸如圖3中的末級高速緩存306的末級高速緩存是否 目前處于斷電模式(塊504)。如果末級高速緩存還沒被斷電(塊504的"否"路徑),則應(yīng) 用使過程500結(jié)束。
[0069] 如果末級高速緩存已被斷電(塊504的"是"路徑),則應(yīng)用使在末級高速緩存中 使用的一個、一些或所有的設(shè)備加電(塊506)。該應(yīng)用確定是否所有在末級高速緩存中使 用的設(shè)備都就緒(塊508)。例如,目前用作為高速緩存設(shè)備的一些設(shè)備在它們準備好使用 之前使用充電泵機構(gòu)。在這種例子的情況下,塊508確保充電泵操作已完成。如果設(shè)備沒 有準備好(塊508的"否"路徑),則應(yīng)用返回到塊506。
[0070] 如果設(shè)備已準備好(塊508的"是"路徑),則應(yīng)用強迫對于存儲器訪問的新請求 等待,諸如通過使新到達的請求在一定的時間段后重試(塊510)。在一種實施例中,如果存 儲器訪問請求還不在要利用備選路徑而不是利用在步驟504時的末級高速緩存處理的請 求的隊列中,則該請求被認為是新的。在一種實施例中,諸如圖3中存儲器控制器302的存 儲器控制器維護一個或多個這樣的隊列。
[0071] 該應(yīng)用使得對已經(jīng)在這種隊列中的請求的服務(wù)完成,諸如通過指示存儲器控制器 處理已排隊的請求(塊512)。該應(yīng)用檢查持有存儲器訪問請求的所有隊列是否已被清空, 艮P,沒有仍然未完成的排隊請求(塊514)。如果一個或多個請求正在一個或多個隊列上等 待服務(wù)(塊514的"否"路徑),則應(yīng)用返回到塊512。
[0072] 如果持有存儲器訪問請求的所有隊列都被清空,并且在這些隊列中沒有待處理的 請求(塊514的"是"路徑),則應(yīng)用使末級高速緩存設(shè)備配置成用作為末級高速緩存(塊 516)。該應(yīng)用,諸如通過指示存儲器控制器來這樣做,使已知的高速緩存行(cache line) 刪除從保存的高速緩存錯誤歷史記錄中恢復(方框518)。
[0073] 高速緩存錯誤的歷史記錄是末級高速緩存設(shè)備在先前操作的時間段中遇到的錯 誤集合,先前操作的時間段諸如直到當末級高速緩存設(shè)備被斷電時的時間點的時間段。例 如,如果宇宙射線爆發(fā)引起在末級高速緩存設(shè)備中的特定存儲器部分的位翻轉(zhuǎn),從而導致 錯誤狀態(tài),則該錯誤及相應(yīng)的部分被記在歷史記錄中。該部分被稱為高速緩存行。在一些 配置中,諸如在高可靠性的環(huán)境中,其中錯誤在某時已被及時發(fā)現(xiàn)的高速緩存行被標記為 不被使用(標記為刪除),并記錄在歷史記錄中。當存儲器設(shè)備被故意斷電或偶然遭受停電 時,設(shè)備被加電并且基于該歷史記錄,已知的容易出錯的高速緩存行被重新標記為刪除,如 在塊518中。
[0074] 該應(yīng)用啟用末級高速緩存以供使用,諸如通過指示存儲器控制器允許啟用到配置 為用作為末級高速緩存的設(shè)備的存儲器訪問路徑(塊520)。應(yīng)用指示存儲器控制器利用 重新建立的經(jīng)過末級高速緩存的存儲器訪問路徑繼續(xù)新請求的處理,無論新請求是剛到達 的,還是等待的或者作為塊510的結(jié)果重試的(方框522)。存儲器控制器通過利用經(jīng)末級 高速緩存到存儲器的路徑,諸如圖3中的路徑326,繼續(xù)處理。
[0075] 該應(yīng)用還使對于末級高速緩存的其它操作或服務(wù)啟動,例如通過指示存儲器控制 器開始奇偶錯誤檢測和高速緩存清理服務(wù)(塊524)。在這之后,應(yīng)用使過程500結(jié)束。
[0076] 附圖中的流程圖和框圖說明了根據(jù)本發(fā)明的各種實施例的系統(tǒng)、方法和計算機程 序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以 代表模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于 實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在一些可替換實現(xiàn)中,方框中所標注的功 能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行 地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖 和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功 能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實 現(xiàn)。
[0077] 因此,在用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的說明性實施例中提供 了計算機實現(xiàn)的方法、系統(tǒng)和計算機程序產(chǎn)品。實施例提供了用于動態(tài)地使末級高速緩存 離線和在線的方法,包括使末級高速緩存斷電或加電,而不用中斷數(shù)據(jù)處理系統(tǒng)中的存儲 器訪問操作。實施例還允許電力調(diào)節(jié)器與末級高速緩存的斷電或加電一起進行斷電或加電 以更多地節(jié)省電力。
[0078] 此外,在末級高速緩存用于到存儲器的路徑中之前,實施例可以動態(tài)地重新初始 化末級高速緩存,并且完全恢復由于以前的可糾正或不可糾正錯誤而發(fā)生的以前的高速緩 存行刪除。盡管實施例描述了與任何組件或系統(tǒng)利用率無關(guān)的省電方式,但是實施例可以 與改變系統(tǒng)的利用率結(jié)合使用。當檢測到整個系統(tǒng)進入其中核仍然活動并在利用末級高速 緩存的接近空閑狀態(tài)(低于閾值利用率)時,實施例可用來使末級高速緩存斷電。同樣,當 利用率增加到閾值之上并且系統(tǒng)退出接近空閑狀態(tài)時,實施例可用來使末級高速緩存返回 在線。
[0079] 實施例還可用來管理系統(tǒng)中的電力故障。例如,當檢測到系統(tǒng)中的電力故障時,實 施例可用來使高速緩存斷電并且當電力故障被解決時,使高速緩存返回在線。
[0080] 實施例還可用來管理系統(tǒng)的存儲器配置中的熱狀態(tài)。例如,當檢測到末級高速緩 存內(nèi)部可能損壞設(shè)備的高于閾值的溫度時,實施例可用來使高速緩存斷電。當溫度下降到 閾值之下時,實施例可用來使末級高速緩存返回在線。
[0081] 如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機 程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完 全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式, 這里可以統(tǒng)稱為"電路"、"模塊"或"系統(tǒng)"。此外,本發(fā)明的各個方面可以實現(xiàn)為在一個或 多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀存 儲設(shè)備或計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0082] 可以采用一個或多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)的任意組合。計算機 可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲設(shè)備可以 是例如但不限于電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者上述的任意合 適的組合。計算機可讀存儲設(shè)備的更具體的例子(非窮舉的列表)包括以下:具有一個或 多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可 擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲 器件、磁存儲器件、或者上述的任意合適的組合。在本文的背景下,計算機可讀存儲設(shè)備可 以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或 者與其結(jié)合使用。
[0083] 計算機可讀存儲設(shè)備或計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕?質(zhì)傳輸,包括--但不限于--無線、有線、光纜、RF等等,或者上述的任意合適的組合。 [0084] 可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明各方面操 作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、 Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如"C"語言或類似的程序設(shè)計 語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨 立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機 或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一 包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例 如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0085] 本文參考根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和 /或框圖描述了本發(fā)明的各方面。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/ 或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給 一個或多個通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的一個或多個處理器,從 而生產(chǎn)出一種機器,使得這些指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的一個或多個 處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的 裝直。
[0086] 也可以把這些計算機程序指令存儲在一個或多個計算機可讀存儲設(shè)備或計算機 可讀介質(zhì)中,這些指令使得一個或多個計算機、一個或多個其它可編程數(shù)據(jù)處理裝置、或一 個或多個其它設(shè)備以特定的方式工作,從而存儲在一個或多個計算機可讀存儲設(shè)備或計算 機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的 功能/動作的指令的制造品(article of manufacture)。
[0087] 也可以把這些計算機程序指令加載到一個或多個計算機、一個或多個其它可編程 數(shù)據(jù)處理裝置或者一個或多個其它設(shè)備上,使得一系列操作步驟在一個或多個計算機、一 個或多個其它可編程數(shù)據(jù)處理裝置或者一個或多個其它設(shè)備上執(zhí)行,以產(chǎn)生一種計算機實 現(xiàn)的過程,使得在所述一個或多個計算機、一個或多個其它可編程數(shù)據(jù)處理裝置或一個或 多個其它設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在所述流程圖和/或框圖中的一個或多個方框 中所規(guī)定的功能/動作的過程。
[0088] 本文所使用的術(shù)語僅僅是為了描述特定的實施例而不是要限制本發(fā)明。如本文所 使用的,除非上下文明確地另外指出,否則單數(shù)形式"一個"和"這個"是要也包括復數(shù)形式。 還應(yīng)當理解,當在本說明書中使用時,術(shù)語"包括"和/或"包含"規(guī)定所述特征、整數(shù)、步驟、 操作、元素和/或組件的存在,但是并不排除一個或多個其它特征、整數(shù)、步驟、操作、元素、 組件和/或其組的存在或添加。
[0089] 以下權(quán)利要求中所有方式或步驟加功能元素的對應(yīng)結(jié)構(gòu)、材料、動作及等價物都 是要包括用于結(jié)合具體所述的其它所述元素執(zhí)行所述功能的任何結(jié)構(gòu)、材料或行為。已經(jīng) 為了說明和描述的目的給出了本發(fā)明的描述,但這不是詳盡的或者要把本發(fā)明限定到所公 開的形式。在不背離本發(fā)明范圍與主旨的情況下,許多修改和變化對本領(lǐng)域普通技術(shù)人員 都將是顯而易見的。實施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實踐應(yīng)用,并 使本領(lǐng)域其他普通技術(shù)人員能夠理解本發(fā)明具有適于預期特定使用的各種修改的各種實 施例。
【權(quán)利要求】
1. 一種用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的方法,所述方法包括: 在數(shù)據(jù)處理系統(tǒng)的存儲器體系架構(gòu)中的位置接收存儲器訪問請求,其中處理存儲器訪 問請求在到達持有所請求數(shù)據(jù)的存儲器設(shè)備之前必須使用末級高速緩存; 利用存儲器控制器使得存儲器訪問請求等待,并且省略向被接受W利用末級高速緩存 進行處理的現(xiàn)有存儲器訪問請求的隊列添加存儲器訪問請求; 利用末級高速緩存處理隊列中的所有現(xiàn)有存儲器訪問請求; 把末級高速緩存清除到存儲器設(shè)備; 利用避免末級高速緩存的到存儲器設(shè)備的備選路徑處理存儲器訪問請求;及 使用作為末級高速緩存的高速緩存設(shè)備斷電。
2. 如權(quán)利要求1所述的方法,還包括: 檢測數(shù)據(jù)處理系統(tǒng)中的狀態(tài),其中所述狀態(tài)指示在系統(tǒng)范圍內(nèi)減少數(shù)據(jù)處理系統(tǒng)的電 力消耗的需求,并且其中所述使得存儲器訪問請求等待是響應(yīng)于所述檢測進行的。
3. 如權(quán)利要求1所述的方法,還包括: 停止在末級高速緩存上操作的高速緩存清理服務(wù);及 停止在末級高速緩存中的奇偶錯誤檢測。
4. 如權(quán)利要求1所述的方法,其中所述使得存儲器訪問請求等待導致存儲器訪問請求 的重試。
5. 如權(quán)利要求1所述的方法,其中所有現(xiàn)有的存儲器訪問請求和所述存儲器訪問請求 被處理而不用中斷數(shù)據(jù)處理系統(tǒng)中的操作并且與數(shù)據(jù)處理系統(tǒng)的組件的利用率無關(guān)。
6. 如權(quán)利要求1所述的方法,還包括: 使向用作為末級高速緩存的高速緩存設(shè)備提供電力的調(diào)節(jié)器斷電。
7. 如權(quán)利要求1所述的方法,還包括: 在數(shù)據(jù)處理系統(tǒng)的存儲器體系架構(gòu)中的所述位置接收新的存儲器訪問請求,其中處 理存儲器訪問請求在到達持有另一個所請求數(shù)據(jù)的存儲器設(shè)備之前必須使用末級高速緩 存; 使得新的存儲器訪問請求等待,并且省略向被接受W利用備選路徑進行處理的現(xiàn)有存 儲器訪問請求的隊列添加所述存儲器訪問請求; 利用備選路徑處理隊列中的所有現(xiàn)有存儲器訪問請求; 給高速緩存設(shè)備加電; 配置、形成所配置的高速緩存設(shè)備,所述高速緩存設(shè)備操作為末級高速緩存;及 利用末級高速緩存處理新的存儲器訪問請求。
8. 如權(quán)利要求1所述的方法,還包括: 標記已配置的高速緩存設(shè)備的一部分,使得所述部分不能用來在已配置的高速緩存設(shè) 備中存儲數(shù)據(jù)。
9. 如權(quán)利要求8所述的方法,還包括: 從歷史信息中讀取記錄,其中記錄指示在接收新的存儲器訪問請求之前的時間在所述 部分中的錯誤。
10. -種用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的系統(tǒng),所述系統(tǒng)包括用于 執(zhí)行權(quán)利要求1-9所述的任一方法的每個步驟的裝置。
11. 一種用于利用存儲器高速緩存在系統(tǒng)范圍內(nèi)節(jié)省電力的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù) 處理系統(tǒng)包括: 包括存儲介質(zhì)的存儲設(shè)備,其中存儲設(shè)備存儲計算機可用程序代碼;及 處理器,其中處理器執(zhí)行計算機可用程序代碼,并且其中計算機可用程序代碼包括: 用于在數(shù)據(jù)處理系統(tǒng)的存儲器體系架構(gòu)中的位置接收存儲器訪問請求的計算機可用 代碼,其中處理存儲器訪問請求在到達持有所請求數(shù)據(jù)的存儲器設(shè)備之前必須使用末級高 速緩存; 用于利用存儲器控制器使得存儲器訪問請求等待,并且省略向被接受W利用末級高速 緩存進行處理的現(xiàn)有存儲器訪問請求的隊列添加存儲器訪問請求的計算機可用代碼; 用于利用末級高速緩存處理隊列中的所有現(xiàn)有存儲器訪問請求的計算機可用代碼; 用于把末級高速緩存清除到存儲器設(shè)備的計算機可用代碼; 用于利用避免末級高速緩存的到存儲器設(shè)備的備選路徑處理存儲器訪問請求的計算 機可用代碼;及 用于使用作為末級高速緩存的高速緩存設(shè)備斷電的計算機可用代碼。
【文檔編號】G06F1/32GK104460938SQ201410491467
【公開日】2015年3月25日 申請日期:2014年9月24日 優(yōu)先權(quán)日:2013年9月25日
【發(fā)明者】M·S·艾倫-瓦雷, J·S·多德森, J·R·凱尤塞曼, K·拉賈馬尼, S·拉馬尼, T·J·羅塞達爾, G·S·斯蒂爾, K·L·賴特 申請人:國際商業(yè)機器公司