国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用分層中斷管理壓縮存儲(chǔ)器的制作方法

      文檔序號(hào):6362328閱讀:306來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):使用分層中斷管理壓縮存儲(chǔ)器的制作方法
      技術(shù)領(lǐng)域
      本公開(kāi)一般地涉及計(jì)算機(jī)存儲(chǔ)器架構(gòu),并且特別涉及管理壓縮存儲(chǔ)器的系統(tǒng)和方法。
      背景技術(shù)
      存儲(chǔ)器壓縮可以通過(guò)使用經(jīng)編碼的數(shù)據(jù)來(lái)優(yōu)化可用存儲(chǔ)器。經(jīng)編碼的數(shù)據(jù)可以被表示為符號(hào)(symbol),從而占用較少空間。對(duì)于某些應(yīng)用,存儲(chǔ)器壓縮有效地?cái)U(kuò)大存儲(chǔ)器容量而不增加實(shí)際物理存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)和相關(guān)開(kāi)銷(xiāo)。這樣做,使得壓縮存儲(chǔ)器系統(tǒng)可以向操作系統(tǒng)和/或管理程序(hypervisor)呈現(xiàn)比實(shí)際可用更大的實(shí)地址空間。結(jié)果,實(shí)地址空間(例如,報(bào)告到OS和/或管理程序的可用物理存儲(chǔ)器的量)可以被過(guò)量使用。此外,壓縮比可能減小,并需要更多物理存儲(chǔ)器。操作系統(tǒng)或管理程序可以通過(guò)將實(shí)頁(yè)面失效(invalidate)而釋放物理存儲(chǔ)器空間來(lái)作出響應(yīng)。被失效的實(shí)頁(yè)面可以被復(fù)制到光盤(pán)并騰空,從而為壓縮數(shù)據(jù)制造空間。有時(shí),不能及時(shí)獲得物理存儲(chǔ)器空間來(lái)防止存儲(chǔ)器耗盡和相關(guān)數(shù)據(jù)丟失。例如,可能在系統(tǒng)繼續(xù)消耗附加存儲(chǔ)器的同時(shí)延遲騰空存儲(chǔ)器的處理。此外,不受操作系統(tǒng)或管理程序影響的處理可以繼續(xù)使用可用的存儲(chǔ)器。因此,存儲(chǔ)器消耗可能超過(guò)使空間成為可用的速率。試圖保留大量空閑物理存儲(chǔ)器的預(yù)防措施可能導(dǎo)致不充分利用的存儲(chǔ)器。

      發(fā)明內(nèi)容

      在具體實(shí)施例中,一種管理存儲(chǔ)器的方法包括啟動(dòng)(initiate)存儲(chǔ)器壓縮操作。所述方法還包括響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)第一中斷,所述第一中斷被配置為影響在處理器上執(zhí)行的第一處理。第二啟動(dòng)的中斷可以被配置為響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平影響在所述處理器上執(zhí)行的所述第一處理,并且可以響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)第三中斷,以影響在所述處理器上執(zhí)行的所述第一處理。所述第一、第二和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。在另一個(gè)實(shí)施例中,公開(kāi)了一種設(shè)備,其包括存儲(chǔ)器和處理器,所述處理器被配置為執(zhí)行訪問(wèn)所述存儲(chǔ)器的第一處理。所述處理器還被配置為啟動(dòng)存儲(chǔ)器壓縮操作,響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響第一處理的執(zhí)行的第一中斷,響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第二中斷,以及響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第三中斷。所述第一、第二、和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。在另一個(gè)實(shí)施例中,一種程序產(chǎn)品包括程序代碼,所述程序代碼用以啟動(dòng)存儲(chǔ)器壓縮操作,其可以響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平導(dǎo)致被配置為影響第一處理的執(zhí)行的第一中斷,也可以響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平導(dǎo)致被配置為影響所述第一處理的執(zhí)行的第二中斷,還可以響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平導(dǎo)致被配置為影響所述第一處理的執(zhí)行的第三中斷。有形計(jì)算機(jī)可讀介質(zhì)可以承載該程序代碼。所述第一、第二、和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。實(shí)施例可以有效地向管理程序或操作系統(tǒng)傳遞物理存儲(chǔ)器正被耗盡的信息,同時(shí)最小化由于不必要的中斷對(duì)性能的影響。中斷的分層(tiered)層級(jí)體系(hierarchy)可以有效地利用可用存儲(chǔ)器容量的全范圍。機(jī)器檢驗(yàn)中斷可以響應(yīng)于中斷請(qǐng)求而最小化空閑物理存儲(chǔ)器空間的量,其否則可能為了對(duì)抗可能的延遲而被保留。層級(jí)體系結(jié)構(gòu)和機(jī)器檢驗(yàn)特征可以導(dǎo)致更少的中斷和更多可用的物理存儲(chǔ)器空間。與最高優(yōu)先級(jí)的存儲(chǔ)器容量相關(guān)聯(lián)的機(jī)器檢驗(yàn)中斷的使用可以用于保證空閑存儲(chǔ)器并且最小化數(shù)據(jù)丟失。額外的可用物理存儲(chǔ)器空間可以導(dǎo)致改善的系統(tǒng)性能。在所附權(quán)利要求中闡述了表征實(shí)施例的特性,并且所述特性形成這里的另一部分。然而,為了更好地理解實(shí)施例、以及通過(guò)其使用而實(shí)現(xiàn)的優(yōu)點(diǎn)和目標(biāo),應(yīng)該參考附圖和伴隨的描述內(nèi)容。


      圖1是被配置為使用與可用存儲(chǔ)器的不同水平相關(guān)聯(lián)的中斷的分層層級(jí)體系來(lái)管理壓縮存儲(chǔ)器的計(jì)算系統(tǒng)的實(shí)施例的框圖;圖2是更詳細(xì)地示出用于實(shí)施與圖1的計(jì)算系統(tǒng)一致的邏輯分區(qū)環(huán)境的主要軟件組件和資源的框圖;圖3是存儲(chǔ)器壓縮計(jì)算系統(tǒng)的實(shí)施例的框圖,所述存儲(chǔ)器壓縮計(jì)算系統(tǒng)使用基于扇區(qū)使用閾值寄存器(sectors used threshold register)的閾值而啟動(dòng)的中斷來(lái)管理在連接到壓縮存儲(chǔ)器的處理器上執(zhí)行的處理;以及圖4是管理壓縮存儲(chǔ)器的方法的實(shí)施例的流程圖,所述方法包括使用與可用存儲(chǔ)器的不同水平相關(guān)聯(lián)的中斷的分層層級(jí)體系來(lái)逐漸地影響存儲(chǔ)器相關(guān)的處理。
      具體實(shí)施例方式壓縮存儲(chǔ)器計(jì)算系統(tǒng)的具體實(shí)施例可以使用基于檢測(cè)的可用存儲(chǔ)器水平逐漸更嚴(yán)重地影響系統(tǒng)操作的中斷分層層級(jí)體系。機(jī)器檢驗(yàn)中斷可以被配置為暫時(shí)中止(halt)計(jì)算系統(tǒng)的所有處理器的所有核上的所有線程。線程可以被立即中止并且可以在機(jī)器檢驗(yàn)處理程序(handler)的控制之下。如果校正動(dòng)作成功,則機(jī)器檢驗(yàn)中斷可以允許線程恢復(fù)和工作負(fù)載恢復(fù)。機(jī)器檢驗(yàn)處理程序可以發(fā)信號(hào)使管理程序或操作系統(tǒng)使用現(xiàn)有分頁(yè)機(jī)制來(lái)創(chuàng)建額外的空閑物理存儲(chǔ)器空間,以保持?jǐn)U大的壓縮數(shù)據(jù)??梢?xún)H當(dāng)在存儲(chǔ)器耗盡之前未提供一個(gè)或多個(gè)其它中斷時(shí)使用機(jī)器檢驗(yàn)中斷。由于機(jī)器檢驗(yàn)中斷可以停止來(lái)自執(zhí)行工作負(fù)載的所有線程,所以機(jī)器檢驗(yàn)中斷比其它中斷對(duì)性能有相對(duì)更大的影響,所述其它中斷可以被配置為僅影響單個(gè)線程、插槽(socket)、或在處理器上執(zhí)行的其它處理。機(jī)器檢驗(yàn)中斷的使用可以用于保證在數(shù)據(jù)被丟棄之前將有空閑空間可用。因此可以在生成中斷之前保留較小量的空閑存儲(chǔ)器或不保留空閑存儲(chǔ)器。因而機(jī)器檢驗(yàn)中斷可以有助于產(chǎn)生更少的中斷和更大的可用存儲(chǔ)器空間,從而允許更高的系統(tǒng)性能。存儲(chǔ)器控制器的實(shí)施例可以包括扇區(qū)使用寄存器,其包括當(dāng)前使用的物理存儲(chǔ)器的運(yùn)行計(jì)數(shù)??梢栽谏葏^(qū)使用閾值寄存器內(nèi)保持兩個(gè)或更多個(gè)可配置的存儲(chǔ)器使用閾值。每個(gè)扇區(qū)使用閾值寄存器可以是可配置為啟動(dòng)幾個(gè)中斷類(lèi)型之一的軟件。示例性中斷類(lèi)型可以包括可屏蔽中斷、不可屏蔽中斷、以及機(jī)器檢驗(yàn)中斷。取決于中斷類(lèi)型和寄存器配置,每個(gè)中斷可以被傳送到計(jì)算機(jī)系統(tǒng)中的一個(gè)或多個(gè)處理器??善帘沃袛嗫梢员慌渲脼閷?dǎo)致線程、插槽、或處理器核保存其執(zhí)行狀態(tài)并且導(dǎo)致中斷處理程序使存儲(chǔ)器成為可用存儲(chǔ)器。然而,中斷處理程序編碼可以取決于系統(tǒng)配置和并行處理需求而屏蔽或延遲可屏蔽中斷的處理。不可屏蔽中斷可以是不可屏蔽的,并且可以保證軟件接收到不可屏蔽中斷。與上述較不嚴(yán)重的中斷結(jié)合地,可以使用機(jī)器檢驗(yàn)中斷來(lái)停止所有處理器插槽、核、和/或線程。因而,可屏蔽、不可屏蔽、以及機(jī)器檢驗(yàn)中斷可以包含中斷的分層層級(jí)體系,其基于可用存儲(chǔ)器的檢測(cè)水平或存儲(chǔ)器容量逐漸更嚴(yán)重地影響系統(tǒng)操作。可以響應(yīng)于存儲(chǔ)器壓縮操作而增大或減小存儲(chǔ)器容量。為了本說(shuō)明書(shū)的目的,存儲(chǔ)器壓縮操作可以包括數(shù)據(jù)壓縮或數(shù)據(jù)解壓縮過(guò)程。當(dāng)可用存儲(chǔ)器容量正接近第一非關(guān)鍵水平時(shí),存儲(chǔ)器控制器可以引起可屏蔽中斷。如果管理程序或操作系統(tǒng)中的中斷處理程序接收到可屏蔽中斷,則中斷處理程序可以試圖創(chuàng)建可用的物理存儲(chǔ)器。然而,不保證可屏蔽中斷將不被屏蔽或者將被及時(shí)處理以維持可用存儲(chǔ)器。在可屏蔽中斷被屏蔽、未被處理、或未被中斷處理程序接收時(shí),存儲(chǔ)器不足可能變得更關(guān)鍵。

      響應(yīng)于檢測(cè)到可用存儲(chǔ)器的第二較關(guān)鍵水平,存儲(chǔ)器控制器可以引起不可屏蔽中斷。不可屏蔽中斷可以保證被中斷處理程序接收。然而,中斷處理程序可能不正確地處理不可屏蔽中斷。例如,中斷處理程序、管理程序、或操作系統(tǒng)的軟件中的缺陷或錯(cuò)誤可以導(dǎo)致創(chuàng)建可用存儲(chǔ)器的失敗。當(dāng)輸入/輸出(I/o)設(shè)備正流入存儲(chǔ)器時(shí)也可能允許存儲(chǔ)器變成耗盡的。此外,數(shù)據(jù)模式可以繼續(xù)改變并消耗更多的物理存儲(chǔ)器,導(dǎo)致系統(tǒng)繼續(xù)耗盡存儲(chǔ)器。在系統(tǒng)包括多個(gè)處理器插槽、每個(gè)處理器上的多個(gè)核、以及每個(gè)處理器核上的多個(gè)線程時(shí),在接收中斷的一個(gè)線程之外,所有插槽、核、和/或線程都可以繼續(xù)使用更多的存儲(chǔ)器。例如,在被中斷的線程釋放更多空間之前,其它線程可能消耗剩余存儲(chǔ)器,從而導(dǎo)致數(shù)據(jù)丟失。當(dāng)可屏蔽中斷未成功使得更多存儲(chǔ)器可用、并且存儲(chǔ)器接近第三關(guān)鍵水平時(shí),機(jī)器檢驗(yàn)中斷可以作為最高優(yōu)先級(jí)中斷而發(fā)生。機(jī)器檢驗(yàn)中斷可以中止所有活動(dòng)(例如,包括I/o操作)。機(jī)器檢驗(yàn)處理程序可以通過(guò)將很少使用的存儲(chǔ)器頁(yè)面失效并將很少使用的存儲(chǔ)器頁(yè)面移除到磁盤(pán)而試圖創(chuàng)建空閑物理存儲(chǔ)器。替代地或附加地,機(jī)器檢驗(yàn)處理程序可以將存儲(chǔ)器內(nèi)容寫(xiě)入到第二層(tier)存儲(chǔ)器,諸如閃存或固態(tài)硬盤(pán)(SSD)存儲(chǔ)器,從而創(chuàng)建額外空閑存儲(chǔ)器。當(dāng)機(jī)器檢驗(yàn)處理程序試圖在存儲(chǔ)器中創(chuàng)建空閑空間時(shí),可能不接受直接存儲(chǔ)器訪問(wèn)寫(xiě)入。第二層存儲(chǔ)器可以包括來(lái)自過(guò)量使用的存儲(chǔ)器的溢出(overflow)。從物理存儲(chǔ)器空間移除的數(shù)據(jù)(例如,頁(yè)面)可以被移動(dòng)到第二層存儲(chǔ)器中,而不是盤(pán)儲(chǔ)存器(diskstorage)中。當(dāng)數(shù)據(jù)壓縮比提高并且空閑物理存儲(chǔ)器空間變?yōu)榭捎脮r(shí),來(lái)自第二層的數(shù)據(jù)可以被移回物理存儲(chǔ)器。與將數(shù)據(jù)向盤(pán)儲(chǔ)存器來(lái)回移動(dòng)相比,以這種方式使用第二層存儲(chǔ)器可以實(shí)現(xiàn)更高的性能。用于釋放物理存儲(chǔ)器空間的軟件代碼(例如,機(jī)器檢驗(yàn)處理程序)可以被映射到未壓縮且非過(guò)量使用的存儲(chǔ)器。因而軟件代碼的檢索本身可能不增加物理存儲(chǔ)器使用,并且導(dǎo)致用以保持用于執(zhí)行的未壓縮代碼的物理存儲(chǔ)器的耗盡。扇區(qū)使用閾值寄存器可以被用于響應(yīng)于可用存儲(chǔ)器增加到期望的閾值而向管理程序或操作系統(tǒng)啟動(dòng)可屏蔽中斷。這種期望的閾值可以對(duì)應(yīng)于其中數(shù)據(jù)可以被交換回物理存儲(chǔ)器中的存儲(chǔ)器容量。多個(gè)扇區(qū)使用閾值寄存器閾值可以用于分層級(jí)地發(fā)信號(hào)到管理程序或操作系統(tǒng),以傳遞存在充足的可用存儲(chǔ)器空間的信息?;蛘?,管理程序或操作系統(tǒng)可以輪詢(xún)(poll)扇區(qū)使用閾值寄存器來(lái)評(píng)估(evaluate)空閑空間量,以得知何時(shí)可以將更多數(shù)據(jù)從盤(pán)移動(dòng)到物理存儲(chǔ)器。除扇區(qū)使用寄存器之外,存儲(chǔ)器控制器還可以包括軟件可配置扇區(qū)使用閾值寄存器。扇區(qū)使用閾值寄存器的閾值可以由管理員設(shè)置。在具體實(shí)施例中,存儲(chǔ)器控制器可以包括可以用作閾值水平的四個(gè)扇區(qū)使用閾值寄存器。在另一個(gè)實(shí)施例中,可以包括更多或更少扇區(qū)使用閾值寄存器。扇區(qū)使用閾值寄存器可以用于確定當(dāng)越過(guò)(C1OSS)閾值時(shí),何時(shí)會(huì)造成以及造成哪種類(lèi)型的異常。每個(gè)扇區(qū)使用閾值寄存器可以由寫(xiě)入到其的軟件配置。閾值和異常類(lèi)型可以由軟件寫(xiě)入到每個(gè)扇區(qū)使用閾值寄存器。當(dāng)扇區(qū)使用寄存器值越過(guò)一扇區(qū)使用閾值寄存器值(閾值)時(shí),存儲(chǔ)器控制器可以引起異常。例如,當(dāng)扇區(qū)使用寄存器值小于或等于第一扇區(qū)使用閾值寄存器,且接著該扇區(qū)使用寄存器值大于第一扇區(qū)使用閾值寄存器時(shí),存儲(chǔ)器控制器引起異常。在相反方向上越過(guò)第二扇區(qū)使用閾值寄存器值可以類(lèi)似地引起與中斷相關(guān)聯(lián)的異常??梢曰诋惓5膬?yōu)先級(jí)而設(shè)置中斷類(lèi)型和閾值。每個(gè)扇區(qū)使用閾值寄存器可以引起系統(tǒng)上可用的不同類(lèi)型的異常。例如,軟件可以將第一扇區(qū)使用閾值寄存器配置為引起常規(guī)設(shè)備中斷或可屏蔽中斷。扇區(qū)使用閾值寄存器可以包括低閾值。管理員可以將第二扇區(qū)使用閾值寄存器配置為引起不可屏蔽中斷并包括更高的閾值。第三扇區(qū)使用閾值寄存器可以引起機(jī)器檢驗(yàn)中斷并且可以與最高閾值相關(guān)聯(lián)。當(dāng)閾值水平增加(接近存儲(chǔ)器溢出)時(shí),中斷的優(yōu)先級(jí)可以按比例更高。當(dāng)扇區(qū)使用寄存器在減小的同時(shí)越過(guò)扇區(qū)使用閾值寄存器值時(shí),可以適用相反情況。管理過(guò)量使用的存儲(chǔ)器的機(jī)器檢驗(yàn)處理程序和操作系統(tǒng)分頁(yè)(paging)軟件可以在存儲(chǔ)器的非過(guò)量使用的區(qū)域中運(yùn)行。非過(guò)量使用的存儲(chǔ)器可以包括不經(jīng)受物理存儲(chǔ)器耗盡的存儲(chǔ)器空間。系統(tǒng)可以通過(guò)在上電(pow`er up)期間靜態(tài)地初始化存儲(chǔ)器配置寄存器來(lái)創(chuàng)建和維持非過(guò)量使用的存儲(chǔ)器,以分別限定非過(guò)量使用和過(guò)量使用的地址空間范圍。替代地或附加地,所選擇的實(shí)存儲(chǔ)器范圍可以在運(yùn)行時(shí)間期間從過(guò)量使用的區(qū)域切換到非過(guò)量使用的區(qū)域,以及相反。附接到處理器插槽的本地存儲(chǔ)器可以被指定為不經(jīng)受(subjectto)過(guò)量使用。存儲(chǔ)器可以通過(guò)將存儲(chǔ)器配置為包括永久不壓縮的地址范圍來(lái)創(chuàng)建非過(guò)量使用的存儲(chǔ)器。從非過(guò)量使用的存儲(chǔ)器中執(zhí)行管理程序和操作系統(tǒng)代碼可以最小化檢索代碼對(duì)關(guān)鍵存儲(chǔ)器的影響。更具體地轉(zhuǎn)向附圖,圖1示出數(shù)據(jù)處理裝置100,其被配置為執(zhí)行基于檢測(cè)的可用存儲(chǔ)器水平使用中斷的分層層級(jí)體系管理壓縮存儲(chǔ)器的實(shí)施例的方法,所述中斷的分層層級(jí)體系逐漸更嚴(yán)重地影響系統(tǒng)操作。機(jī)器檢驗(yàn)中斷可以被配置為暫時(shí)中止裝置100的所有處理器102-104的所有核上的所有線程。裝置100可以一般地表示多個(gè)多用戶(hù)計(jì)算機(jī)系統(tǒng)中的任意一個(gè),諸如網(wǎng)絡(luò)服務(wù)器、中型計(jì)算機(jī)(midrange computer)、以及大型計(jì)算機(jī)(mainframe computer)等。然而,實(shí)施例可以在另一數(shù)據(jù)處理裝置中實(shí)施,例如,在諸如工作站、臺(tái)式計(jì)算機(jī)、便攜式計(jì)算機(jī)等的單機(jī)(stand-alone)或單用戶(hù)計(jì)算機(jī)系統(tǒng)中,或者在諸如嵌入式控制器的其它計(jì)算設(shè)備中實(shí)施。裝置100的一種實(shí)施方式可以是多用戶(hù)計(jì)算機(jī),諸如來(lái)自國(guó)際商業(yè)機(jī)器公司(IBM)的Power Systems計(jì)算機(jī)。裝置100可以包括具有壓縮數(shù)據(jù)的存儲(chǔ)器(例如,存儲(chǔ)器114、117_119、121)。存儲(chǔ)壓縮數(shù)據(jù)的存儲(chǔ)器可以對(duì)處理器102-104和I/O設(shè)備呈現(xiàn)比物理存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)更大的實(shí)地址空間。實(shí)地址空間可以被過(guò)量使用(例如,四倍)。偶爾,數(shù)據(jù)可能由于未壓縮好的模式而改變。如果數(shù)據(jù)模式改變使得物理存儲(chǔ)器變得接近于被完全消耗,則管理程序或操作系統(tǒng)可以試圖停止系統(tǒng)耗盡物理存儲(chǔ)器。例如,可以最近使用的頁(yè)面識(shí)別為要移除到盤(pán)的候選者。一個(gè)實(shí)施例可以使存儲(chǔ)器壓縮邏輯能夠?qū)⑽锢泶鎯?chǔ)器正耗盡的信息用信號(hào)發(fā)送到管理程序或操作系統(tǒng),同時(shí)最小化由于不必要的中斷對(duì)性能的影響。不必要的中斷可能沒(méi)有考慮額外存儲(chǔ)器成為可用,并且可能浪費(fèi)CPU周期。一個(gè)實(shí)施例可以在必須用信號(hào)通知操作系統(tǒng)關(guān)于低空閑存儲(chǔ)器情況之前,通過(guò)限制空閑物理存儲(chǔ)器空間的量而使能更多的可用物理存儲(chǔ)器。即,當(dāng)由于中斷(包括機(jī)器檢驗(yàn)中斷)的分層層級(jí)體系可以使裝置更好響應(yīng)于精確追蹤的存儲(chǔ)器閾值而剩余大量可用物理存儲(chǔ)器時(shí),處理可以不被中止。該特征可以最大化存儲(chǔ)器使用。額外的可用物理存儲(chǔ)器空間導(dǎo)致額外的系統(tǒng)性能。物理處理器102-104可以被連接到輸入/輸出(I/O)集線器116。一個(gè)或多個(gè)處理器102-104的插槽可以直接且分別附接到存儲(chǔ)器117-119,例如雙列直插式存儲(chǔ)器模塊(DIMM)的陣列。物理存儲(chǔ)器·102-104可以是多線程的。多線程使物理存儲(chǔ)器102-104能夠同時(shí)執(zhí)行程序代碼的不同部分。處理器102、103可以與連接到附加存儲(chǔ)器114的存儲(chǔ)器控制器113進(jìn)行通信。緩沖器115和附加存儲(chǔ)器121可以連接到處理器104。I/O集線器116還可以經(jīng)由系統(tǒng)總線118和多個(gè)接口設(shè)備連接到多種類(lèi)型的外部I/o設(shè)備。示例性的I/O設(shè)備包括總線附接接口 120、工作站控制器112、以及儲(chǔ)存器控制器124。這種I/O設(shè)備可以分別提供外部訪問(wèn)到一個(gè)或多個(gè)外部網(wǎng)絡(luò)126、一個(gè)或多個(gè)工作站128、和/或諸如直接存取存儲(chǔ)設(shè)備(DASD) 129的一個(gè)或多個(gè)存儲(chǔ)設(shè)備。圖2更詳細(xì)地示出用于實(shí)施與圖1的裝置100 —致的邏輯分區(qū)環(huán)境的主要軟件組件和資源。圖2—般地示出計(jì)算架構(gòu),其表征為由IBM開(kāi)發(fā)的虛擬機(jī)設(shè)計(jì)。系統(tǒng)200包括在多個(gè)處理中共享公共處理資源的多個(gè)分區(qū)201-203。這種架構(gòu)可以依賴(lài)具有一個(gè)或多個(gè)中央處理單元(CPU)205、206的單一計(jì)算機(jī)器。CPU205、206可以執(zhí)行被配置為模擬多個(gè)虛擬處理器(VP) 207-212的軟件。分區(qū)201-203可以在邏輯上包括系統(tǒng)的物理CPU205、206、DASD268、以及由管理員所分配的其它資源的部分。每個(gè)分區(qū)201-203典型地主持(host)包括虛擬處理器207-212的操作系統(tǒng)215-217。每個(gè)分區(qū)201-203可以如同其為獨(dú)立計(jì)算機(jī)一樣操作。如圖2中所示,包括每個(gè)分區(qū)201-203的產(chǎn)品環(huán)境也可以包括諸如圖2中所示的應(yīng)用程序220-222的程序代碼。被稱(chēng)為管理程序246的底層程序或分區(qū)管理器可以將物理資源分配給每個(gè)分區(qū)201-203。在虛擬化技術(shù)中,管理程序246可以管理單一計(jì)算機(jī)系統(tǒng)上的操作系統(tǒng)215-217(或同一操作系統(tǒng)的多個(gè)實(shí)例)。管理程序246可以管理系統(tǒng)的處理器、存儲(chǔ)器、以及其它資源,以將資源分配給每個(gè)操作系統(tǒng)215-217。例如,管理程序246可以攔截來(lái)自操作系統(tǒng)215-217的對(duì)資源的請(qǐng)求,以全局地共享和分配資源。如果分區(qū)201-203正在共享處理器,則管理程序246可以在共享CPU205、206中的一個(gè)或多個(gè)的分區(qū)201-203的虛擬處理器207-212之間分配物理處理器周期。管理程序246可以包括非過(guò)量使用的存儲(chǔ)器232。非過(guò)量使用的存儲(chǔ)器232可以包括永久不壓縮的地址范圍。從非過(guò)量使用的存儲(chǔ)器232中執(zhí)行管理程序代碼可以最小化檢索代碼對(duì)關(guān)鍵存儲(chǔ)器的影響。中斷處理程序233可以包括在非過(guò)量使用的存儲(chǔ)器232中。中斷處理程序233可以包括回調(diào)子程序(subixmtine),該子程序的執(zhí)行由中斷的接收而觸發(fā)。例如,示例性的子程序可以中止線程、插槽、或核的處理,并且可以創(chuàng)建額外的可用存儲(chǔ)器。機(jī)器檢驗(yàn)(MCK)處理程序代碼234可以被附加地包括在非過(guò)量使用的存儲(chǔ)器232中。響應(yīng)于接收機(jī)器檢驗(yàn)中斷238,機(jī)器檢驗(yàn)處理程序234可以采取校正動(dòng)作,并且如果校正動(dòng)作成功,則恢復(fù)工作負(fù)載的執(zhí)行。例如,機(jī)器檢驗(yàn)處理程序234可以發(fā)送信號(hào)到管理程序246或操作系統(tǒng)215-217,以使用現(xiàn)有分頁(yè)機(jī)制創(chuàng)建額外的空閑物理存儲(chǔ)器空間來(lái)保持?jǐn)U大的壓縮數(shù)據(jù)。可以?xún)H當(dāng)在存儲(chǔ)器耗盡之前未提供一個(gè)或多個(gè)其它中斷時(shí)才使用機(jī)器檢驗(yàn)中斷238。由于機(jī)器檢驗(yàn)中斷238可以停止來(lái)自執(zhí)行工作負(fù)載的所有線程,所以機(jī)器檢驗(yàn)中斷238對(duì)性能的影響比可屏蔽中斷(INTR)236和不可屏蔽中斷(匪1)237大,可屏蔽中斷(INTR) 236和不可屏蔽中斷(匪I) 237可以被配置為僅影響單個(gè)線程、插槽、或處理器。機(jī)器檢驗(yàn)處理程序234可以試圖通過(guò)將很少使用的存儲(chǔ)器頁(yè)面失效并將其移除到盤(pán)來(lái)創(chuàng)建空閑物理存儲(chǔ)器。替代地或附加地,機(jī)器檢驗(yàn)處理程序234可以將存儲(chǔ)器內(nèi)容寫(xiě)入到第二層存儲(chǔ)器。在另一個(gè)實(shí)施例中,非過(guò)量使用的存儲(chǔ)器232、中斷處理程序233、以及機(jī)器檢驗(yàn)處理程序234中的任一或全部可以被包括在操作系統(tǒng)中。管理程序246可以包括存儲(chǔ)器鏡像算法238,其被配置為從未壓縮的主要存儲(chǔ)器(諸如可以存儲(chǔ)在DIMM248處)轉(zhuǎn)變到壓縮的鏡像存儲(chǔ)器(例如,在DIMM249處)。存儲(chǔ)器鏡像算法238可以在主要存儲(chǔ)器中檢測(cè)到失敗時(shí)將CPU訪問(wèn)轉(zhuǎn)變到鏡像存儲(chǔ)器。在另一個(gè)實(shí)施例中,存儲(chǔ)器鏡像程序可以被包括在操作系統(tǒng)中。
      每個(gè)操作系統(tǒng)215-217可以以與未分區(qū)計(jì)算機(jī)的操作系統(tǒng)相同的方式來(lái)控制其各個(gè)邏輯分區(qū)201-203的主要操作。每個(gè)邏輯分區(qū)201-203可以在由虛擬存儲(chǔ)器250-252表示的獨(dú)立存儲(chǔ)器空間中執(zhí)行。此外,每個(gè)邏輯分區(qū)201-203可以靜態(tài)地和/或動(dòng)態(tài)地在系統(tǒng)200中分配可用資源的部分。例如,每個(gè)邏輯分區(qū)201-203可以共享CPU205、206中的一個(gè)或多個(gè)、以及為了在虛擬存儲(chǔ)器250-252中使用的可用存儲(chǔ)器空間的部分。以這種方式,給定的CPU205、206可以被超過(guò)一個(gè)邏輯分區(qū)201-203所利用。管理程序246可以包括調(diào)度程序251,其在調(diào)度列表或就緒隊(duì)列247上管理虛擬處理器207-212到CPU205、206的調(diào)度。就緒隊(duì)列247包含存儲(chǔ)器,該存儲(chǔ)器包括具有等待被調(diào)度在CPU205、206上的工作的虛擬處理器207-212的列表。圖2中所示的管理程序246也控制CPU205、206,并且可以附加地控制存儲(chǔ)器控制器254和DIMM248、249。管理程序246的處理器控制塊249包括存儲(chǔ)器,該存儲(chǔ)器包括等待在CPU205、206上訪問(wèn)的虛擬處理器207-212的列表。附加的資源(例如,大容量?jī)?chǔ)存器、后備儲(chǔ)存器、用戶(hù)輸入、網(wǎng)絡(luò)連接等)典型地被以本領(lǐng)域公知的方式分配到一個(gè)或多個(gè)邏輯分區(qū)??梢砸远喾N方式分配資源,例如,在逐總線(bus-by-bus)的基礎(chǔ)上,或者在逐資源(resource by resource)的基礎(chǔ)上,通過(guò)多個(gè)邏輯分區(qū)在同一總線上共享資源。某些資源可以一次被分配到多個(gè)邏輯分區(qū)201-203。例如圖2示出三條邏輯總線262、264和266,總線262上具有多個(gè)資源,所述資源包括分配到分區(qū)的直接存取存儲(chǔ)設(shè)備(DASD) 268、控制面板270、磁帶驅(qū)動(dòng)器272和光盤(pán)驅(qū)動(dòng)器274??偩€264可以具有在逐資源的基礎(chǔ)上分配的資源,例如局域網(wǎng)(LAN)適配器276、光盤(pán)驅(qū)動(dòng)器278和DASD280分配到邏輯分區(qū)202,以及LAN適配器282、284分配到邏輯分區(qū)203??偩€266例如可以表示特別分配到邏輯分區(qū)203的總線,使得總線266上的所有資源(例如,DASD286、288)都被分配到同一邏輯分區(qū)203。圖2中所示硬件可選地包括一個(gè)或多個(gè)高速緩存(cache) 265。圖3示出存儲(chǔ)器壓縮計(jì)算系統(tǒng)300的實(shí)施例,其包括兩個(gè)處理器302、312,每個(gè)處理器具有直接附接的存儲(chǔ)器304、308、314和318。處理器可以經(jīng)由處理器總線305連接到另一個(gè)處理器。系統(tǒng)300可以被配置為使用中斷的分層層級(jí)體系在包括壓縮存儲(chǔ)器的環(huán)境內(nèi)管理存儲(chǔ)器。更具體地,系統(tǒng)300包括未壓縮的主要存儲(chǔ)器306、316、322中的數(shù)據(jù),該主要存儲(chǔ)器306、316、322可以在壓縮的鏡像存儲(chǔ)器310、320中鏡像。處理器302、312可以類(lèi)似于圖1的處理器101-103以及圖2的CPU205、206。存儲(chǔ)器304,308,314和318可以類(lèi)似于圖1的存儲(chǔ)器117-119以及圖2的DIMM248、249。系統(tǒng)300還包括存儲(chǔ)器控制器303和緩沖器313、317。存儲(chǔ)器控制器303可以類(lèi)似于圖1的存儲(chǔ)器控制器113,并且緩沖器313、317的每個(gè)可以類(lèi)似于圖1的緩沖器115。圖3的存儲(chǔ)器控制器303的硬件可以包括扇區(qū)使用寄存器(SUR)330。扇區(qū)使用寄存器330可以保持物理存儲(chǔ)器使用的運(yùn)行計(jì)數(shù)。存儲(chǔ)器控制器303還可以包括可以用作閾值水平的多個(gè)軟件可配置扇區(qū)使用閾值寄存器(SUTR) 331-334。扇區(qū)使用閾值寄存器331-334的閾值可以由管理員設(shè)置。在另一個(gè)實(shí)施例中,可以包括更多或更少的扇區(qū)使用閾值寄存器。扇區(qū)使用閾值寄存器331-334可以被用于確定當(dāng)越過(guò)閾值時(shí),何時(shí)會(huì)造成以及造成哪種類(lèi)型的異常。每個(gè) 扇區(qū)使用閾值寄存器331-334可以是軟件可配置的。例如,閾值和中斷類(lèi)型可以被寫(xiě)入到每個(gè)扇區(qū)使用閾值寄存器331-334。當(dāng)扇區(qū)使用寄存器值越過(guò)扇區(qū)使用閾值寄存器值時(shí),存儲(chǔ)器控制器303可以引起異常。例如,當(dāng)扇區(qū)使用寄存器值小于或等于第一扇區(qū)使用閾值寄存器值,且接著扇區(qū)使用寄存器值大于第一扇區(qū)使用閾值寄存器值時(shí),存儲(chǔ)器控制器303可以引起異常。在相反方向上越過(guò)第二扇區(qū)使用閾值寄存器331-334可以類(lèi)似地引起與另一中斷相關(guān)聯(lián)的異常??梢曰诋惓5膬?yōu)先級(jí)而設(shè)置中斷類(lèi)型和閾值。每個(gè)扇區(qū)使用閾值寄存器331-334可以引起在系統(tǒng)300上可用的不同類(lèi)型的異常。例如,軟件可以將第一扇區(qū)使用閾值寄存器331配置為引起常規(guī)設(shè)備中斷或可屏蔽中斷。扇區(qū)使用閾值寄存器331可以包括相對(duì)較低的閾值。管理員可以將第二扇區(qū)使用閾值寄存器332配置為引起不可屏蔽中斷并包括更高的閾值。第三扇區(qū)使用閾值寄存器333可以引起機(jī)器檢驗(yàn)中斷并且可以與最高閾值相關(guān)聯(lián)。當(dāng)閾值水平增加(接近存儲(chǔ)器溢出)時(shí),中斷的優(yōu)先級(jí)可以是按比例地更高。當(dāng)扇區(qū)使用寄存器330在減小的同時(shí)越過(guò)扇區(qū)使用閾值寄存器值時(shí),可以使用相反情況。根據(jù)具體實(shí)施例,扇區(qū)使用閾值寄存器331可以被用于響應(yīng)于可用存儲(chǔ)器增加到預(yù)設(shè)閾值而啟動(dòng)將可屏蔽中斷發(fā)送到管理程序或操作系統(tǒng)。這種閾值可以對(duì)應(yīng)于其中數(shù)據(jù)可以被交換回物理存儲(chǔ)器中的存儲(chǔ)器容量。扇區(qū)使用閾值寄存器閾值可以用于分層級(jí)地發(fā)信號(hào)到管理程序或操作系統(tǒng),以傳遞存在充足的可用存儲(chǔ)器空間的信息。或者,管理程序或操作系統(tǒng)可以輪詢(xún)扇區(qū)使用閾值寄存器331-334來(lái)評(píng)估空閑空間量,以得知何時(shí)可以將更多數(shù)據(jù)從盤(pán)移動(dòng)到物理存儲(chǔ)器。存儲(chǔ)器控制器303可以額外地包括第一處理器302外部的數(shù)字電路,其被配置為管理處理器302、312、緩沖器313、317、以及存儲(chǔ)器304、308、314、318中的至少兩個(gè)之間的數(shù)據(jù)流。緩沖器313、317可以被配置為與處理器302、312的一個(gè)或多個(gè)結(jié)合地工作,以在數(shù)據(jù)在處理器302、312、緩沖器313、317、以及存儲(chǔ)器304、308、314、318中的至少兩個(gè)之間移動(dòng)時(shí)暫時(shí)保持?jǐn)?shù)據(jù)。處理器控制器303可以連接在第一處理器302和包括第一 DIMM鏡像存儲(chǔ)器310的第二存儲(chǔ)器308之間。雖然存儲(chǔ)器控制器303的扇區(qū)使用閾值寄存器330和扇區(qū)使用閾值寄存器331-334可以為整個(gè)系統(tǒng)300管理存儲(chǔ)器,但圖3的實(shí)施例將第二處理器312顯示為包括其自己的扇區(qū)使用閾值寄存器335和扇區(qū)使用閾值寄存器336-339來(lái)管理存儲(chǔ)器。緩沖器 313可以連接在第二處理器312和第三存儲(chǔ)器314之間,第三存儲(chǔ)器314包括DIMM主要存儲(chǔ)器316的第二陣列。第三緩沖器317可以連接在第二處理器312和第四存儲(chǔ)器318之間,第四存儲(chǔ)器318包括DIMM鏡像存儲(chǔ)器320的陣列和DIMM主要存儲(chǔ)器322的第三陣列。在圖3的實(shí)施例中,第一 DIMM鏡像存儲(chǔ)器310可以鏡像DIMM主要存儲(chǔ)器316的第二陣列,如箭頭324所示。第一 DIMM鏡像存儲(chǔ)器310可以包括壓縮數(shù)據(jù)。例如,第一 DIMM鏡像存儲(chǔ)器310可以包括DIMM主要存儲(chǔ)器316的第二陣列中的數(shù)據(jù)的壓縮版本。DIMM鏡像存儲(chǔ)器320的陣列可以鏡像DIMM主要存儲(chǔ)器306的第一陣列,如箭頭326所示。DIMM鏡像存儲(chǔ)器320的陣列可以包括壓縮數(shù)據(jù)。例如,DIMM鏡像存儲(chǔ)器320的陣列可以包括DIMM主要存儲(chǔ)器306的第一陣列中的數(shù)據(jù)的壓縮版本。DIMM鏡像存儲(chǔ)器320的陣列中的壓縮數(shù)據(jù)與DIMM主要存儲(chǔ)器306的第一陣列中的未壓縮數(shù)據(jù)相比較的壓縮比可以約為四比一,正如第一 DIMM鏡像存儲(chǔ)器310。如箭頭328所示,DIMM鏡像存儲(chǔ)器320的陣列可以鏡像DIMM主要存儲(chǔ)器316的第二陣列。例如,處理器302、312、存儲(chǔ)器控制器303、以及緩沖器313、317中的一個(gè)或多個(gè)可以復(fù)制和壓縮DIMM主要存儲(chǔ)器316的第二陣列的數(shù)據(jù),以存儲(chǔ)在DIMM鏡像存儲(chǔ)器320的陣列中。當(dāng)數(shù)據(jù)存儲(chǔ)在第一 DIMM鏡像存儲(chǔ)器310和DIMM鏡像存儲(chǔ)器320的陣列中時(shí),第一處理器302、第二處理器312、存儲(chǔ)器控制器303、緩沖器313、以及緩沖器317中的一個(gè)或多個(gè)可以包括用于壓縮數(shù)據(jù)的壓縮邏輯。管理程序和操作系統(tǒng)(諸如圖2的管理程序246和操作系統(tǒng)215)中的至少一個(gè)可以被配置為控制從訪問(wèn)DIMM主要存儲(chǔ)器316的第二陣列轉(zhuǎn)變?yōu)樵L問(wèn)第一 DIMM鏡像存儲(chǔ)器310。圖4示出基于檢測(cè)的可用存儲(chǔ)器水平而使用影響系統(tǒng)操作的中斷的分層層級(jí)體系來(lái)管理壓縮存儲(chǔ)器的方法400的實(shí)施例。例如,隨著存儲(chǔ)器容量變得更有限,可以逐漸更嚴(yán)重地影響處理。反之,隨著存儲(chǔ)器容量恢復(fù),中斷可以逐漸地啟動(dòng)處理。方法400可以使用配置為暫時(shí)中止計(jì)算機(jī)系統(tǒng)的所有處理器的所有核上的所有線程的機(jī)器檢驗(yàn)中斷。方法400可以由圖1-3的系統(tǒng)100、200、和300中的一個(gè)所執(zhí)行。更具體地轉(zhuǎn)向流程圖,在402,系統(tǒng)可以進(jìn)行正常的存儲(chǔ)器壓縮管理處理。例如,系統(tǒng)可以在正常的存儲(chǔ)器壓縮操作過(guò)程中訪問(wèn)和使用物理存儲(chǔ)器。在404,系統(tǒng)可以確定扇區(qū)使用寄存器的值大于第一扇區(qū)使用閾值寄存器的閾值。例如,圖3的存儲(chǔ)器控制器303可以檢測(cè)到扇區(qū)使用寄存器330的值大于扇區(qū)使用閾值寄存器331的閾值。在另一個(gè)實(shí)施例中,管理程序或操作系統(tǒng)可以輪詢(xún)扇區(qū)使用閾值寄存器來(lái)評(píng)估空閑空間量。替代地,當(dāng)確定扇區(qū)使用寄存器的值大于第一扇區(qū)使用閾值寄存器的閾值時(shí),可以在406啟動(dòng)第一中斷。例如,可以由存儲(chǔ)器控制器254啟動(dòng)圖2的可屏蔽中斷236。可屏蔽中斷236可以被發(fā)送到管理程序246的中斷處理程序233。中斷處理程序233可以試圖通過(guò)創(chuàng)建額外的存儲(chǔ)器來(lái)響應(yīng)可屏蔽中斷236。在408,系統(tǒng)可以確定扇區(qū)使用寄存器的值小于第一扇區(qū)使用閾值寄存器的閾值。例如,圖3的存儲(chǔ)器控制器303可以檢測(cè)到扇區(qū)使用閾值寄存器330的值小于扇區(qū)使用閾值寄存器331的閾值。當(dāng)扇區(qū)使用寄存器的值被確定為小于扇區(qū)使用閾值寄存器的閾值時(shí),可以在410將存儲(chǔ)器頁(yè)面從盤(pán)移動(dòng)到物理存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)。替代地,當(dāng)確定扇區(qū)使用寄存器的值大于第一扇區(qū)使用閾值寄存器的閾值時(shí),系統(tǒng)可以在412確定扇區(qū)使用寄存器的值大于第二扇區(qū)使用閾值寄存器的閾值。例如,圖3的存儲(chǔ)器控制器303可以檢測(cè)到扇區(qū)使用寄存器330的值大于扇區(qū)使用閾值寄存器332的閾值。當(dāng)扇區(qū)使用寄存器的值大于第二扇區(qū)使用閾值寄存器的閾值時(shí),可以在414啟動(dòng)第二中斷。例如,可以由圖2的存儲(chǔ)器控制器254啟動(dòng)不可屏蔽中斷237。不可屏蔽中斷237可以被發(fā)送到管理程序246的中斷處理程序233。中斷處理程序233可以試圖通過(guò)創(chuàng)建額外的存儲(chǔ)器來(lái)響應(yīng)不可屏蔽中斷237。替代地,當(dāng)扇區(qū)使用寄存器的值小于第二扇區(qū)使用閾值寄存器的閾值時(shí),系統(tǒng)可以在408確定扇區(qū)使用寄存器的值是否小于第一扇區(qū)使用閾值寄存器閾值。系統(tǒng)可以在416確定扇區(qū)使用寄存器的值小于第一扇區(qū)使用閾值寄存器的閾值。例如,圖3的存儲(chǔ)器控制器303可以檢測(cè)到扇區(qū)使用寄存器330的值小于扇區(qū)使用閾值寄存器331的閾值。當(dāng)確定扇區(qū)使用寄存器的值小于扇區(qū)使用閾值寄存器的閾值時(shí),可以在410將存儲(chǔ)器頁(yè)面從盤(pán)移動(dòng)到物理存儲(chǔ)器。替代地,當(dāng)確定扇區(qū)使用寄存器的值大于第一扇區(qū)使用閾值寄存器的閾值時(shí),系統(tǒng)可以在418確定扇區(qū)使用寄存器的值大于第三扇區(qū)使用閾值寄存器的閾值。例如,圖3的存儲(chǔ)器控制器303可以檢測(cè)到扇區(qū)使用寄存器330的值大于扇區(qū)使用閾值寄存器333的閾值。當(dāng)扇區(qū)使用寄存器的值大于第三扇區(qū)使用閾值寄存器的閾值時(shí),可以在420啟動(dòng)機(jī)器檢驗(yàn)中斷。例如,可以由存儲(chǔ)器控制器254啟動(dòng)圖2的機(jī)器檢驗(yàn)中斷238。機(jī)器檢驗(yàn)中斷238可以被發(fā)送到管理程序246的機(jī)器檢驗(yàn)處理程序234。機(jī)器檢驗(yàn)處理程序234可以試圖通過(guò)立即中止所有線程并所有線程置于機(jī)器檢驗(yàn)處理程序234的控制下來(lái)響應(yīng)機(jī)器檢驗(yàn)中斷238。如果校正動(dòng)作成功,則機(jī)器檢驗(yàn)中斷238可以允許線程處理的恢復(fù)。換言之,機(jī)器檢驗(yàn)處理程序234可以進(jìn)行校正動(dòng)作,并在校正動(dòng)作成功的情況下恢復(fù)工作負(fù)載執(zhí)行。替代地,當(dāng)扇區(qū)使用寄存器的值小于第三扇區(qū)使用閾值寄存器的閾值時(shí),系統(tǒng)可以在418確定扇區(qū)使 用寄存器的值是否大于第一扇區(qū)使用閾值寄存器的閾值。因而,圖4示出包括基于檢測(cè)的可用存儲(chǔ)器水平使用逐漸更嚴(yán)重地影響系統(tǒng)操作的中斷的分層層級(jí)體系來(lái)管理壓縮存儲(chǔ)器的方法400的實(shí)施例的流程圖。方法400可以使用機(jī)器檢驗(yàn)中斷,其被配置為暫時(shí)中止計(jì)算機(jī)系統(tǒng)的所有處理器的所有核上的所有線程。扇區(qū)使用閾值寄存器可以向管理程序或操作系統(tǒng)傳遞物理存儲(chǔ)器正耗盡的信息,同時(shí)最小化由于不必要的中斷對(duì)性能的影響。這里描述的具體實(shí)施例可以采取完全硬件實(shí)施例、完全軟件實(shí)施例、或包含硬件和軟件元素二者的實(shí)施例的形式。在具體實(shí)施例中,公開(kāi)的方法在被嵌入到處理器可讀存儲(chǔ)介質(zhì)、并且由處理器執(zhí)行的軟件中實(shí)施,該軟件包括但不限于固件、常駐軟件、微代碼等。此外,本公開(kāi)的實(shí)施例(諸如一個(gè)或多個(gè)實(shí)施例)可以采取可以從提供由計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的、或者結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的程序代碼的計(jì)算機(jī)可用或計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品。為了本說(shuō)明書(shū)的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是能夠有形地實(shí)現(xiàn)計(jì)算機(jī)程序并且能夠包含、存儲(chǔ)、通信、傳播、或傳輸該程序用于由指令執(zhí)行系統(tǒng)、裝置、或設(shè)備使用,或者結(jié)合指令執(zhí)行系統(tǒng)、裝置、或設(shè)備使用的任意裝置。在各種實(shí)施例中,介質(zhì)可以包括電、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或者傳播介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移除計(jì)算機(jī)磁盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤(pán)和光盤(pán)。光盤(pán)的當(dāng)前示例包括緊湊盤(pán)-只讀存儲(chǔ)器(⑶-ROM)、緊湊盤(pán)-讀/寫(xiě)(⑶-R/W)和數(shù)字通用盤(pán)(DVD)。適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括通過(guò)系統(tǒng)總線直接或間接地連接到存儲(chǔ)器元件的至少一個(gè)處理器。存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間所采用的本地存儲(chǔ)器、大容量?jī)?chǔ)存器、以及提供至少某些程序代碼的臨時(shí)存儲(chǔ)以便減小在執(zhí)行期間必需從大容量存儲(chǔ)器檢索代碼的次數(shù)的高速緩沖存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤(pán)、顯示器、指點(diǎn)(pointing)設(shè)備等)可以直接地或者通過(guò)居間(intervening) I/O控制器連接到數(shù)據(jù)處理系統(tǒng)。網(wǎng)絡(luò)適配器也可以連接到數(shù)據(jù)處理系統(tǒng), 從而使數(shù)據(jù)處理系統(tǒng)能夠通過(guò)居間專(zhuān)用或公共網(wǎng)絡(luò)而連接到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器、和以太網(wǎng)卡僅是當(dāng)前可用的網(wǎng)絡(luò)適配器類(lèi)型的一小部分。提供了公開(kāi)的實(shí)施例的先前描述,以使本領(lǐng)域的任何技術(shù)人員可以做出或使用所公開(kāi)的實(shí)施例。這些實(shí)施例的各種修改對(duì)于本領(lǐng)域技術(shù)人員是顯而易見(jiàn)的,并且這里定義的通用原則可以被應(yīng)用到其它實(shí)施例而不偏離本公開(kāi)的范圍。例如,雖然某些上述實(shí)施例可能關(guān)于硬件中斷,但中斷的其它實(shí)施例可以包括基于可用的物理存儲(chǔ)器的量的“如果則(if then)”或“分支條件(branch conditional)”軟件指令。這種條件軟件中斷可以類(lèi)似于硬件中斷運(yùn)作,其中,可以停止對(duì)當(dāng)前處理的執(zhí)行,并且存儲(chǔ)器處理代碼可以開(kāi)始執(zhí)行。硬件中斷可以與代碼操作異步并且可以在代碼中的任一點(diǎn)到來(lái),而程序?qū)嵤┓绞娇赡鼙仨殞?zhuān)門(mén)使用軟件代碼指令來(lái)檢驗(yàn)可用存儲(chǔ)器。因此,本公開(kāi)不意圖限于此處示出的實(shí)施例,而是符合與由所附權(quán)利要求所限定的原則和特性一致的最寬可能范圍。
      權(quán)利要求
      1.一種管理存儲(chǔ)器的方法,所述方法包括: 啟動(dòng)存儲(chǔ)器壓縮操作; 響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)第一中斷,所述第一中斷被配置為影響在處理器上執(zhí)行的第一處理; 響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平啟動(dòng)第二中斷,所述第二中斷被配置為影響在所述處理器上執(zhí)行的所述第一處理;以及 響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)第三中斷,所述第三中斷被配置為影響在所述處理器上執(zhí)行的所述第一處理,其中所述第一、第二和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。
      2.如權(quán)利要求1所述的方法,還包括響應(yīng)于接收到所述第三中斷而中止在多個(gè)處理器上執(zhí)行的多個(gè)處理。
      3.如權(quán)利要求2所述的方法,還包括自動(dòng)恢復(fù)在所述多個(gè)處理器上執(zhí)行的所述多個(gè)處理。
      4.如權(quán)利要求1所述的方法,還包括將所述第二中斷配置為比所述第一中斷具有對(duì)所述第一處理的更嚴(yán)重的影響。
      5.如權(quán)利要求1所述的方法,還包括將所述第二中斷配置為比所述第一中斷具有影響所述第一處理的更大可能性。
      6.如權(quán)利要求5所述的方法,還包括將所述第三中斷配置為比所述第二中斷具有影響所述第一處理的更大可能性。
      7.如權(quán)利要求1所述的方法,還包括將所述第二中斷配置為比所述第一中斷具有對(duì)所述第一處理的更不嚴(yán)重的影響。
      8.如權(quán)利要求1所述的方法,還包括檢測(cè)所述第一中斷、第二中斷、和第三中斷中的至少一個(gè)。
      9.如權(quán)利要求1所述的方法,還包括使用閾值檢測(cè)所述第一中斷、第二中斷、和第三中斷中的至少一個(gè)。
      10.如權(quán)利要求1所述的方法,其中所述第一檢測(cè)的存儲(chǔ)器水平大于所述第二檢測(cè)的存儲(chǔ)器水平,并且所述第二檢測(cè)的存儲(chǔ)器水平大于所述第三檢測(cè)的存儲(chǔ)器水平。
      11.如權(quán)利要求1所述的方法,還包括將所述第一中斷發(fā)送到被配置為啟動(dòng)增加所述第一檢測(cè)的存儲(chǔ)器水平的中斷處理程序。
      12.如權(quán)利要求1所述的方法,還包括將所述第一中斷配置為可屏蔽中斷,并將所述第二中斷配置為不可屏蔽中斷。
      13.如權(quán)利要求1所述的方法,還包括配置扇區(qū)使用閾值寄存器的閾值,其中所述閾值與所述第一檢測(cè)的存儲(chǔ)器水平相關(guān)聯(lián)。
      14.如權(quán)利要求1所述的方法,還包括在閃存設(shè)備中存儲(chǔ)溢出數(shù)據(jù),以創(chuàng)建空閑存儲(chǔ)器。
      15.如權(quán)利要求1所述的方法,還包括訪問(wèn)扇區(qū)使用寄存器,以確定所述第一檢測(cè)的存儲(chǔ)器水平。
      16.—種設(shè)備包括: 存儲(chǔ)器;以及處理器,其被配置為執(zhí)行訪問(wèn)所述存儲(chǔ)器的第一處理,其中所述處理器還被配置為啟動(dòng)存儲(chǔ)器壓縮操作,響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響第一處理的執(zhí)行的第一中斷,響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第二中斷,以及響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第三中斷,其中所述第一、第二、和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。
      17.如權(quán)利要求16所述的裝置,還包括執(zhí)行多個(gè)處理的多個(gè)處理器,其中所述第一中斷、第二中斷、和第三中斷中的至少一個(gè)是機(jī)器檢驗(yàn)中斷,其被配置為中止在所述多個(gè)處理器上執(zhí)行的多個(gè)處理。
      18.如權(quán)利要求16所述的裝置,還包括可由所述處理器執(zhí)行來(lái)生成所述第一中斷的程序代碼,其中所述程序代碼存儲(chǔ)在獨(dú)立存儲(chǔ)器中。
      19.如權(quán)利要求16所述的裝置,其中所述第二中斷被配置為比所述第一中斷更影響所述第一處理,并且所述第三中斷被配置為比所述第二中斷更影響所述第一處理。
      20.一種程序產(chǎn)品,包括: 程序代碼,用以啟動(dòng)存儲(chǔ)器壓縮操作,響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響第一處理的執(zhí)行的第一中 斷,響應(yīng)于第二檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第二中斷,以及響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)生成被配置為影響所述第一處理的執(zhí)行的第三中斷,其中所述第一、第二、和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響;以及 承載所述程序代碼的有形計(jì)算機(jī)可讀介質(zhì)。
      全文摘要
      本發(fā)明提供了管理存儲(chǔ)器的系統(tǒng)和方法。具體方法可以包括啟動(dòng)存儲(chǔ)器壓縮操作。所述方法還可以包括響應(yīng)于第一檢測(cè)的存儲(chǔ)器水平啟動(dòng)被配置為影響在處理器上執(zhí)行的第一處理的第一中斷。可以響應(yīng)于第二檢測(cè)存儲(chǔ)器水平配置第二啟動(dòng)的中斷,以影響在所述處理器上執(zhí)行的所述第一處理,并且可以響應(yīng)于第三檢測(cè)的存儲(chǔ)器水平啟動(dòng)第三中斷,以影響在所述處理器上執(zhí)行的所述第一處理。所述第一、第二和第三檢測(cè)的存儲(chǔ)器水平中的至少一個(gè)被所述存儲(chǔ)器壓縮操作所影響。
      文檔編號(hào)G06F12/08GK103229149SQ201180056232
      公開(kāi)日2013年7月31日 申請(qǐng)日期2011年9月23日 優(yōu)先權(quán)日2010年11月24日
      發(fā)明者J.M.博肯哈根, B.阿巴利, D.波夫 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1