專利名稱:用于將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器壓縮磁盤上的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及壓縮存儲(chǔ)器和壓縮磁盤系統(tǒng),更具體而言,涉及到一種方法,該方法用于在存儲(chǔ)器和磁盤適配器之間來(lái)回傳送壓縮數(shù)據(jù),以及用于將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到磁盤上,由此在存儲(chǔ)器和磁盤之間傳送數(shù)據(jù)時(shí)就不需要解壓數(shù)據(jù)和重新壓縮數(shù)據(jù),這樣就節(jié)省了系統(tǒng)時(shí)間和帶寬。
背景技術(shù):
主存儲(chǔ)器壓縮在計(jì)算機(jī)組織上的新興研發(fā)是將數(shù)據(jù)壓縮應(yīng)用到計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器上,其中在主存儲(chǔ)器中的數(shù)據(jù)以壓縮格式存儲(chǔ)。例如,圖1展示實(shí)現(xiàn)壓縮主存儲(chǔ)器110的示范性計(jì)算機(jī)系統(tǒng)100的總體結(jié)構(gòu)。
在圖1中,中央處理單元(CPU)102將數(shù)據(jù)讀到高速緩存器104中并從高速緩存器104寫數(shù)據(jù)。高速緩存器的“未命中”和“存儲(chǔ)”導(dǎo)致通過(guò)壓縮控制器106讀取和寫入壓縮主存儲(chǔ)器110。
即,典型地,CPU將從高速緩存器104中獲取數(shù)據(jù)(例如,假設(shè)高速緩存器“命中”),然而當(dāng)高速緩存器“未命中”時(shí),CPU將通過(guò)壓縮控制器106從主存儲(chǔ)器110獲取數(shù)據(jù)。這樣的數(shù)據(jù)會(huì)被檢索到CPU,然后該數(shù)據(jù)可能會(huì)被存儲(chǔ)到高速緩存器104中(例如,通常所謂的“存儲(chǔ)一貫穿”高速緩存器,這是一種最常用的高速緩存技術(shù))。
通常將壓縮主存儲(chǔ)器110劃分為大量邏輯上大小固定的段(例如,跨越連續(xù)的存儲(chǔ)器地址范圍的段)。這些邏輯段是壓縮的單位,被稱為“存儲(chǔ)器行”。存儲(chǔ)器行在物理上以壓縮格式存儲(chǔ),因此占用數(shù)目可變的物理存儲(chǔ)單元。已經(jīng)提出的幾種計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)方案,其中主存儲(chǔ)器的內(nèi)容被壓縮,包括美國(guó)專利No.5,761,536,標(biāo)題為“System andMethod for Reducing Memory Fragmentation by Assigning Remaindersto Share Memory Blocks on a Best Fit Basis”(“用于通過(guò)以最佳適應(yīng)為基準(zhǔn)來(lái)分配剩余以便共享存儲(chǔ)器塊來(lái)減少存儲(chǔ)器碎片的系統(tǒng)和方法”)以及Franaszek等人的“Design and Analysis of InternalOrganizations for Compressed Random Access Memories”(“對(duì)壓縮的隨機(jī)存取存儲(chǔ)器的內(nèi)部組織的設(shè)計(jì)和分析”),IBM ResearchReport RC 21146,IBM Watson Research Center,1998年3月30日(修訂時(shí)間1998年10月9日)。
在頁(yè)式存儲(chǔ)器系統(tǒng)中,存儲(chǔ)器管理的單位是“頁(yè)”,通常由具有連續(xù)實(shí)際地址的4096個(gè)字節(jié)組成,以4096個(gè)字節(jié)為邊界對(duì)齊。壓縮的單位可以是任何大小,在有些系統(tǒng)中,壓縮的單位是頁(yè)。
為了簡(jiǎn)化壓縮存儲(chǔ)器系統(tǒng)的管理,更好地是選擇壓縮單位的大小(稱為“行”)使得未壓縮的頁(yè)的大小是未壓縮的行的大小的倍數(shù)。然后將頁(yè)劃分為固定數(shù)量的行,并且一起對(duì)行的字節(jié)進(jìn)行壓縮和解壓。以下,假設(shè)未壓縮行的長(zhǎng)度是1024字節(jié)。
對(duì)行進(jìn)行壓縮產(chǎn)生了大小可變的壓縮行(例如,不同行將壓縮到不同數(shù)目的字節(jié))。壓縮的行大小是一個(gè)重要的參數(shù),它對(duì)于物理存儲(chǔ)器的管理是必需的。如果將沒(méi)有壓縮到小于其原始大小的行保留為不被壓縮,則人們需要(1+log(n))個(gè)比特來(lái)描述所壓縮的行的大小,其中n是原始大小的字節(jié)數(shù),該對(duì)數(shù)的底是2。
為了簡(jiǎn)化管理,將所壓縮的行的大小可限制成是固定數(shù)目字節(jié)的倍數(shù),例如通過(guò)使用零來(lái)“填充”(padding)所壓縮的行。術(shù)語(yǔ)“區(qū)組”(granule)被用來(lái)指示所壓縮數(shù)據(jù)的原子大小。區(qū)組大小應(yīng)該是行的大小的除數(shù)。
圖2更詳細(xì)地展示壓縮主存儲(chǔ)器系統(tǒng)210的體系結(jié)構(gòu)200。體系結(jié)構(gòu)200包括包含高速緩存行241和高速緩存目錄242的高速緩存器240,包含壓縮器261和解壓器262的壓縮控制器260,以及壓縮主存儲(chǔ)器210。壓縮主存儲(chǔ)器210包括目錄220和大量大小固定的塊230,也稱為“存儲(chǔ)器扇區(qū)”。上面示范性的格式和組織就是所指的“主存儲(chǔ)器的壓縮數(shù)據(jù)”。
如圖2所示,對(duì)于從壓縮存儲(chǔ)器到高速緩存器的讀取,解壓器262被應(yīng)用,反之當(dāng)從高速緩存器寫到壓縮主存儲(chǔ)器時(shí),必須經(jīng)由壓縮器261對(duì)行進(jìn)行壓縮。眾所周知的是,在高速緩存器中的行類似地被保持在主存儲(chǔ)器中。對(duì)于這些行,如果必須要從高速緩存器去除一個(gè)行(例如,該高速緩存器的容量被用盡),那么如果被修改的話,則正被去除的高速緩存器行就經(jīng)由壓縮器261被寫回到壓縮主存儲(chǔ)器210。
如果在高速緩存器240中沒(méi)有查找到與地址A相關(guān)聯(lián)的高速緩存行,則該地址A 270就被用來(lái)編制到目錄D 220中作為索引。這一點(diǎn)不同于常規(guī)計(jì)算機(jī)系統(tǒng),在常規(guī)計(jì)算機(jī)系統(tǒng)中,地址被用來(lái)直接定位存儲(chǔ)器M 210中的存儲(chǔ)單元。
每個(gè)目錄條目包含允許所關(guān)聯(lián)的高速緩存行被檢索的信息。由D220中的目錄條目所指的壓縮數(shù)據(jù)的單位可以對(duì)應(yīng)于高速緩存行241,或者壓縮的單位可以大于一個(gè)高速緩存行,在該高速緩存行的例子中,多個(gè)高速緩存行可以被壓縮在一起成為一個(gè)壓縮單位。
與地址A1 271相關(guān)聯(lián)的行1的目錄條目221適用于已經(jīng)被壓縮到一定程度的行,按照該程度所壓縮的行可被完全地存儲(chǔ)到該目錄條目中。圖2中的行A2 272、A3 273、以及A4 274沒(méi)有壓縮到足以被存儲(chǔ)到一個(gè)目錄條目中,因此它們被存儲(chǔ)到整數(shù)數(shù)目的存儲(chǔ)器扇區(qū)中。
與地址A2 272相關(guān)聯(lián)的行2的目錄條目222適用于使用第一個(gè)滿的存儲(chǔ)器扇區(qū)231和第二個(gè)部分填充的存儲(chǔ)器扇區(qū)232以壓縮格式被存儲(chǔ)的行。
最后,與地址A3 273和A4 274相關(guān)聯(lián)的行3和行4的目錄條目223和224適用于使用大量滿的存儲(chǔ)器扇區(qū)(對(duì)于行3是2個(gè)扇區(qū)233和234,并且對(duì)于行4沒(méi)有扇區(qū))以壓縮格式被存儲(chǔ)的行,并且其中這兩個(gè)壓縮行的剩余已經(jīng)被組合在塊235中。
由在一個(gè)頁(yè)之內(nèi)(或者跨多個(gè)頁(yè))的不同行所共享的存儲(chǔ)器-扇區(qū)被用來(lái)減少碎片,并且在這一情形中,將共享存儲(chǔ)器扇區(qū)的行稱為共居者。
圖3展示了目錄(220)條目格式的一些例子,它們可用在圖2的主存儲(chǔ)器系統(tǒng)210的目錄220中。對(duì)于此例來(lái)說(shuō),假設(shè)圖2的存儲(chǔ)器扇區(qū)230的大小是256字節(jié),并假設(shè)圖2的高速緩存行241的大小是1024字節(jié)。這樣,行就能夠使用四個(gè)存儲(chǔ)器扇區(qū)以未壓縮的格式被存儲(chǔ)。
對(duì)于這一例子,使用了大小為16字節(jié)的目錄條目,其中第一字節(jié)包括大量的標(biāo)志。第一字節(jié)301的內(nèi)容確定目錄條目的剩余的格式。
標(biāo)志位302指明該行以壓縮格式還是以未壓縮格式被存儲(chǔ)。如果以未壓縮格式被存儲(chǔ),則目錄條目的剩余被解釋為用于行1306,其中四個(gè)30比特的地址給出包含該行的四個(gè)存儲(chǔ)器扇區(qū)的存儲(chǔ)器中的地址。
如果以壓縮格式被存儲(chǔ),則標(biāo)志位303指示該壓縮行是否完全被存儲(chǔ)到該目錄條目中。如果確實(shí)如此,則該目錄條目的格式就與用于行3308的格式一樣,其中存儲(chǔ)可達(dá)120比特的壓縮數(shù)據(jù)。否則,對(duì)于長(zhǎng)度大于120比特的壓縮行,可以使用用于行1306或者行2307所展示的格式。
在行1306格式的情形下,附加標(biāo)志位304指定用來(lái)存儲(chǔ)該壓縮行的塊數(shù),從1-4的30比特的地址指定該扇區(qū)的位置,最后,在最后的存儲(chǔ)器扇區(qū)(以32字節(jié)為單位)中存儲(chǔ)的該壓縮行的剩余或者碎片的大小,與指示該碎片被存儲(chǔ)在該存儲(chǔ)器扇區(qū)的開始處還是結(jié)尾處的位一起,由四個(gè)碎片信息位305給出。
目錄條目格式307說(shuō)明一種候選格式,在該格式中,將該壓縮行的一部分存儲(chǔ)到目錄條目中(以便減小解壓等待時(shí)間)。在這一情形下,只將用來(lái)存儲(chǔ)該壓縮行的剩余部分的第一扇區(qū)和最后扇區(qū)的地址存儲(chǔ)在該目錄條目中,以及其中使用鏈表技術(shù)來(lái)查找中間扇區(qū)(如果有的話)。即,如果要求的話,用來(lái)存儲(chǔ)該壓縮行的每個(gè)扇區(qū),可具有包含用來(lái)存儲(chǔ)該給定壓縮行的下一個(gè)存儲(chǔ)器扇區(qū)的地址的指針字段。
因此,根據(jù)數(shù)據(jù)的解壓/壓縮,許多不同的格式可被用在壓縮主存儲(chǔ)器的目錄220中。
磁盤壓縮出現(xiàn)在磁盤系統(tǒng)中的另一個(gè)問(wèn)題在于從磁盤到系統(tǒng)主存儲(chǔ)器的過(guò)程,以及在試圖單獨(dú)訪問(wèn)在磁盤上的壓縮頁(yè)的過(guò)程,與訪問(wèn)在主存儲(chǔ)器中壓縮數(shù)據(jù)的過(guò)程相反。實(shí)際上,典型的是,磁盤和主存儲(chǔ)器采用具有不同格式的兩種不同的壓縮系統(tǒng)。因此,來(lái)自主存儲(chǔ)器中的壓縮數(shù)據(jù)必須被解壓,然后被發(fā)送到磁盤系統(tǒng),在磁盤系統(tǒng)中,它再次被重新壓縮,反之亦然。這樣,一直都沒(méi)有措施來(lái)從磁盤上取壓縮數(shù)據(jù)并直接將它放置到主存儲(chǔ)器中,此處,該壓縮數(shù)據(jù)然后如上所述被作為壓縮主存儲(chǔ)器數(shù)據(jù)來(lái)加以引用。
在有些磁盤系統(tǒng)中,諸如IBM AS/400 DASD適配器,頁(yè)以壓縮形式被存儲(chǔ)以便改進(jìn)性價(jià)比。典型地,個(gè)別頁(yè)(或者頁(yè)組)被壓縮成數(shù)目可變的長(zhǎng)度固定的塊,稱為“磁盤扇區(qū)”。
圖4展示了I/O處理器(IOP)400的結(jié)構(gòu)以及它是如何與系統(tǒng)的其余部分相連接的,更具體而言,該圖是輸入/輸出適配器(IOA)405和輸入/輸出處理器400的高層表示。
總體而言,它展示了一側(cè)向后連接到系統(tǒng),而另一側(cè)將被連接到磁盤系統(tǒng),并且IOP400一般具有它自己的壓縮器/解壓器403。即,正被存儲(chǔ)到磁盤上的數(shù)據(jù)將在IOP中被壓縮,因?yàn)閬?lái)自主存儲(chǔ)器的信息確實(shí)還沒(méi)有由主存儲(chǔ)器壓縮。
IOP400的操作由IOP處理器組合體402控制,該處理器組合體通過(guò)系統(tǒng)總線到IOA總線適配器401經(jīng)由系統(tǒng)總線406與主系統(tǒng)進(jìn)行通信。IOP400具有本地存儲(chǔ)器404。如果IOP在硬件上支持壓縮,則它就包含壓縮器/解壓器子系統(tǒng)403。IOP控制一個(gè)或多個(gè)IOA適配器405,該適配器通過(guò)DASD總線407提供了與直接存取存儲(chǔ)磁盤(DASD)之間的接口。
在壓縮磁盤中,壓縮單位通常是頁(yè)(例如4096個(gè)字節(jié)),它也是I/O的原子單位。磁盤上的物理空間以稱為扇區(qū)的原子單位來(lái)加以管理。磁盤扇區(qū)通常包含512字節(jié)的數(shù)據(jù),并且能夠包含附加信息,諸如循環(huán)冗余校驗(yàn)碼(CRC)字節(jié)和系統(tǒng)標(biāo)題(system headers)。
當(dāng)向壓縮磁盤寫入頁(yè)時(shí),頁(yè)首先被壓縮,然后將作為結(jié)果的壓縮頁(yè)存儲(chǔ)在整數(shù)數(shù)目的磁盤扇區(qū)中。有幾種管理和組織壓縮磁盤的方法是可行的,它們依賴不同的目錄數(shù)據(jù)結(jié)構(gòu)。
從常規(guī)技術(shù)的描述來(lái)看,顯而易見(jiàn)的是,壓縮磁盤的組織和壓縮存儲(chǔ)器的組織通常是很不相同的。這種例子,例如是,當(dāng)磁盤子系統(tǒng)與計(jì)算單元(像諸如SHARK或者EMC磁盤服務(wù)器這樣的企業(yè)存儲(chǔ)服務(wù)器)相互獨(dú)立時(shí),或者當(dāng)這兩種技術(shù)相互獨(dú)立地被開發(fā)(這是用于支持存儲(chǔ)器壓縮并使用當(dāng)前磁盤適配器的AS/400機(jī)的例子)時(shí)。
因?yàn)橐呀?jīng)建立用來(lái)支持存儲(chǔ)器壓縮和磁盤壓縮的結(jié)構(gòu)是十分不同的,所以當(dāng)支持存儲(chǔ)器壓縮的系統(tǒng)與壓縮磁盤一起工作時(shí)會(huì)出現(xiàn)低效率。
例如,當(dāng)數(shù)據(jù)被從存儲(chǔ)器傳送到磁盤以及從磁盤傳送到存儲(chǔ)器時(shí),如上面所提及的,數(shù)據(jù)必須首先被解壓,然后被傳送,接著被重新壓縮。
從原理上講,數(shù)據(jù)可以以壓縮的形式被傳送到磁盤上以及從磁盤上被傳送。這樣就不僅僅避免了執(zhí)行附加的壓縮和解壓的必要,還有效地增加了鏈路的帶寬。
此外,如果數(shù)據(jù)以壓縮格式被從存儲(chǔ)器傳送到磁盤適配器,則磁盤適配器會(huì)預(yù)先知道該數(shù)據(jù)的大小,并且能夠作出更好的存儲(chǔ)管理決策。相對(duì)比而言,在當(dāng)前壓縮磁盤系統(tǒng)中,磁盤適配器根據(jù)它期望如何壓縮數(shù)據(jù)來(lái)分配存儲(chǔ)器。
不過(guò),直接將這種壓縮數(shù)據(jù)傳送到磁盤上而沒(méi)有附加的和高代價(jià)的解壓和重新壓縮的步驟就要求改變I/O的操作以及系統(tǒng)結(jié)構(gòu)。這些改變就是本發(fā)明的主題。
發(fā)明內(nèi)容
鑒于前面的問(wèn)題和其它問(wèn)題、缺點(diǎn)、以及常規(guī)方法和結(jié)構(gòu)的劣勢(shì),本發(fā)明的目的是提供一種在I/O操作上實(shí)現(xiàn)減小的等待時(shí)間的方法和結(jié)構(gòu)。
另一個(gè)目的是提供一種方法和系統(tǒng),其中數(shù)據(jù)在等待著壓縮/解壓的同時(shí)能夠被傳送到磁盤和能夠從磁盤傳送而不必被緩沖。
另一個(gè)目的是提供一種方法和系統(tǒng),其中,在主存儲(chǔ)器和磁盤之間,增加的帶寬被提供了等于主存儲(chǔ)器中的壓縮率的系數(shù)。
又一個(gè)目的是提供一種方法和系統(tǒng),其中壓縮磁盤能夠被用作壓縮存儲(chǔ)器系統(tǒng)的分頁(yè)系統(tǒng)。
再一個(gè)目的是提供一種方法和系統(tǒng),該方法和系統(tǒng)不依賴壓縮磁盤組織的專用特征,并且能夠與任何現(xiàn)有的壓縮磁盤模式一起使用。
在本發(fā)明的第一方面,一種存儲(chǔ)信息的方法(和系統(tǒng)),包括將主存儲(chǔ)器壓縮信息存儲(chǔ)到存儲(chǔ)器壓縮磁盤上,其中頁(yè)是個(gè)別地被存儲(chǔ)和檢索的,而不用對(duì)主存儲(chǔ)器壓縮信息進(jìn)行解壓。
在本發(fā)明的第二方面,一種用在被連接到支持壓縮的存儲(chǔ)系統(tǒng)且支持主存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中的方法(和系統(tǒng)),包括將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到壓縮磁盤上,并且從磁盤上檢索存儲(chǔ)器壓縮數(shù)據(jù)。要注意的是,“數(shù)據(jù)”是指存儲(chǔ)器的一般內(nèi)容,并且包括程序代碼。
根據(jù)本發(fā)明的獨(dú)一無(wú)二且非顯而易見(jiàn)的方面,提供了一種方法(和系統(tǒng))以便將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到磁盤上。
此外,本方面使得在I/O操作上減小了等待時(shí)間。實(shí)際上,數(shù)據(jù)在等待著壓縮/解壓的同時(shí)能夠被傳送到磁盤上并且被從磁盤上傳送而不必被緩沖。
再者,在磁盤適配器上出現(xiàn)了降低的資源消耗。即,數(shù)據(jù)在等待著壓縮/解壓的同時(shí)不必被緩沖,并且不必管理等待著被壓縮/解壓的頁(yè)的隊(duì)列等。
還有,將在主存儲(chǔ)器和磁盤之間的帶寬增加等于在主存儲(chǔ)器中的壓縮率的系數(shù)是可能的。
而且,為將數(shù)據(jù)放置到磁盤上提供了更好的算法。即,因?yàn)閴嚎s數(shù)據(jù)的大小是已知的,所以能夠作出關(guān)于如何將壓縮數(shù)據(jù)放置到磁盤上的更好的存儲(chǔ)決策。
此外,依照本發(fā)明,壓縮磁盤能夠被用作壓縮存儲(chǔ)器系統(tǒng)的分頁(yè)系統(tǒng)。即,在不用壓縮的二次存儲(chǔ)的壓縮存儲(chǔ)器系統(tǒng)中,由操作系統(tǒng)交換到磁盤上的頁(yè)被解壓,同時(shí)I/O操作被執(zhí)行。
此外,本發(fā)明不依賴壓縮磁盤組織的專門特征,并且能夠與任何現(xiàn)有的壓縮磁盤模式一起使用。實(shí)際上,本發(fā)明能夠被現(xiàn)有的硬件系統(tǒng)(例如,圖1和圖4的示范性硬件系統(tǒng))使用,并且不要求對(duì)現(xiàn)有的硬件作出任何實(shí)質(zhì)性的修改。
參考如下附圖根據(jù)本發(fā)明的優(yōu)選實(shí)施例的如下的詳細(xì)描述,將對(duì)前面的目的和其它目的、方面和優(yōu)點(diǎn)會(huì)有更好的理解,在附圖中圖1說(shuō)明使用壓縮主存儲(chǔ)器110的計(jì)算機(jī)系統(tǒng)100的結(jié)構(gòu);圖2說(shuō)明壓縮主存儲(chǔ)器系統(tǒng)組織200;圖3說(shuō)明壓縮主存儲(chǔ)器220的目錄條目格式;圖4說(shuō)明I/O處理器(IOP)400和I/O適配器(IOA)405;圖5說(shuō)明根據(jù)本發(fā)明的用于在寫磁盤期間在IOP(例如,400)和操作系統(tǒng)(OS)之間的通信協(xié)議的方法500,以及用于支持從和至壓縮存儲(chǔ)器的直接存儲(chǔ)器存取(DMA)傳送的系統(tǒng)的流程圖;圖6說(shuō)明根據(jù)本發(fā)明的用于將數(shù)據(jù)從磁盤上的整數(shù)數(shù)目的存儲(chǔ)器扇區(qū)存儲(chǔ)到每個(gè)磁盤扇區(qū)中的示范性存儲(chǔ)格式600;以及圖7說(shuō)明用于存儲(chǔ)根據(jù)本發(fā)明的方法的程序步驟的信號(hào)承載介質(zhì)700(例如,存儲(chǔ)介質(zhì))。
具體實(shí)施例方式
現(xiàn)在參考附圖,更具體而言參考圖1-7,它們展示了根據(jù)本發(fā)明的方法和結(jié)構(gòu)的優(yōu)選實(shí)施例。
優(yōu)選實(shí)施例在優(yōu)選實(shí)施例中,假設(shè)高速緩存行和存儲(chǔ)器行具有相同的大小(例如,1024字節(jié)),存儲(chǔ)器區(qū)組的長(zhǎng)度是64字節(jié),以及存儲(chǔ)器扇區(qū)的長(zhǎng)度是256字節(jié),并且是以256字節(jié)邊界對(duì)齊。
很明顯,將本發(fā)明當(dāng)作一個(gè)整體對(duì)于本領(lǐng)域技術(shù)人員而言是很清楚的,本發(fā)明并不限制在方法的這一特定選擇。
本發(fā)明具有幾個(gè)主要部分,包括如何將存儲(chǔ)器壓縮數(shù)據(jù)從處理器傳送到IOP,以及如何在IOP和磁盤之間傳送,以及如何將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到磁盤上。這些部分將在下面依次加以論述。
將存儲(chǔ)器壓縮數(shù)據(jù)傳送到和從I/O處理器/I/O適配器(IOP/IOA)傳送數(shù)據(jù)在處理器和IOA/IOP之間以及在IOA/IOP和磁盤之間的傳送依賴于計(jì)算系統(tǒng)的體系結(jié)構(gòu)。
在優(yōu)選實(shí)施例,計(jì)算機(jī)的體系結(jié)構(gòu)支持處理器間的通信協(xié)議,該通信協(xié)議允許數(shù)據(jù)以壓縮格式在不同的節(jié)點(diǎn)之間被傳送。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器提供對(duì)NUMA(非均衡存儲(chǔ)器訪問(wèn))的支持。
在另一個(gè)實(shí)施例中,存儲(chǔ)器控制器支持在各處理器或者各處理器簇之間的消息傳遞。在這兩種實(shí)施例中,數(shù)據(jù)以壓縮格式被傳送。傳送的原子單位是壓縮的原子單位或者它的倍數(shù),并且在壓縮數(shù)據(jù)之前,對(duì)于解壓該數(shù)據(jù)所要求的信息被傳送。這一信息例如包括圖3的標(biāo)志301。
在這些優(yōu)選實(shí)施例中,在該計(jì)算機(jī)中的操作系統(tǒng)驅(qū)動(dòng)器以及在該I/O處理器或者IOP中的代碼,會(huì)傳送同樣的信息(例如,目錄信息和壓縮存儲(chǔ)器扇區(qū)),如上所述,該同樣的信息在處理器它們自己之間傳送數(shù)據(jù)時(shí)被傳送。
在另一個(gè)優(yōu)選實(shí)施例中,該體系結(jié)構(gòu)允許對(duì)壓縮存儲(chǔ)器的直接存儲(chǔ)器存取(DMA)。
圖5繪制的是說(shuō)明利用本發(fā)明進(jìn)行磁盤寫操作的方法500的流程圖。要再次注意的是,本發(fā)明能夠被應(yīng)用到現(xiàn)有的硬件上,以使得該硬件更加有效。
在步驟501,操作系統(tǒng)向I/O處理器發(fā)送與要被寫入的頁(yè)相關(guān)聯(lián)的整個(gè)目錄內(nèi)容(所有行)。IOP對(duì)于在該頁(yè)中所包含的每個(gè)行進(jìn)行迭代(步驟502),直到不再有行為止(步驟510),在此時(shí)該過(guò)程結(jié)束。要再次注意的是,“行”是指無(wú)論如何都被壓縮的行(例如,無(wú)論采用什么單位來(lái)進(jìn)行壓縮)。
對(duì)于每個(gè)行,在步驟503,IOP解析目錄標(biāo)志(例如,在圖3中所展示的標(biāo)志301,包括“已壓縮/未壓縮”、“已存儲(chǔ)在目錄中”,等等),并且試圖去理解(確定)該數(shù)據(jù)是怎樣被存儲(chǔ)的(例如,格式是什么樣的),并且在步驟504檢查該壓縮行是否包含在該目錄中。
在發(fā)明的方法中,總體上假設(shè)行的大小大于壓縮單位,并且將磁盤看做是以頁(yè)為基準(zhǔn)的。這樣,將確定哪些行在該頁(yè)中,然后獲取那些目錄。接著,系統(tǒng)必須確定該行是否被存儲(chǔ)在該目錄中,然后系統(tǒng)要么將在該目錄中查找該數(shù)據(jù),要么從該存儲(chǔ)器扇區(qū)中檢索出該數(shù)據(jù)。在任一事件中,當(dāng)完成時(shí),該系統(tǒng)將具有每個(gè)行的數(shù)據(jù)。
因此,返回到圖5的流程圖,如果該壓縮行整個(gè)都被存儲(chǔ)在(壓縮到)該目錄,則在步驟505,IOP從該目錄條目將它抽取出來(lái),并且在步驟502,訪問(wèn)下一行。
否則(例如,如果在步驟504,該行沒(méi)有壓縮到該目錄;在步驟504是“否”),則在步驟506,IOP將對(duì)包含該壓縮行的存儲(chǔ)器扇區(qū)進(jìn)行迭代。在步驟507,IOP從該目錄條目中抽取每個(gè)扇區(qū)的地址,并且在步驟508,通過(guò)從DMA操作來(lái)從存儲(chǔ)器中讀取該扇區(qū)。
接著,如果還有存儲(chǔ)器扇區(qū),則該過(guò)程就循環(huán)返回到步驟506。這種過(guò)程迭代到對(duì)于一特定行,所有的數(shù)據(jù)都已經(jīng)被從存儲(chǔ)器扇區(qū)中檢索出為止。
如果最后的扇區(qū)在不同的存儲(chǔ)器行之間被共享(例如,在“共居”的例子中,信息的最后一部分處于被共享的最后扇區(qū)中),則在步驟509,IOP從該最后的扇區(qū)中抽取數(shù)據(jù)。
要注意的是,在這樣的例子中,確定該數(shù)據(jù)在最后的扇區(qū)中被定位的位置(例如,在扇區(qū)的開始處或是在該區(qū)的結(jié)尾處)是有好處的。這樣的位置最好由圖3所展示的目錄標(biāo)志305來(lái)加以指示。
在一個(gè)不同的實(shí)施例中,不執(zhí)行步驟509,并且該共享的扇區(qū)不被分開。在這兩個(gè)實(shí)施例中,共享的扇區(qū)僅僅從存儲(chǔ)器中被讀取一次。當(dāng)該最后的行已經(jīng)被從存儲(chǔ)器中讀取時(shí),在步驟510,該傳送協(xié)議就終止了。
這樣,本發(fā)明提供一種將已經(jīng)在存儲(chǔ)器中被壓縮的數(shù)據(jù)存儲(chǔ)到磁盤上的高效的方式。
關(guān)于從磁盤的讀取操作,如果所使用的數(shù)據(jù)壓縮/存儲(chǔ)格式與在存儲(chǔ)器中的相同(例如,以下所述圖6中的格式),則上面的操作可以是相似的。相似地,如果該數(shù)據(jù)是以不同方式被壓縮的,則上面的操作會(huì)稍有不同,因?yàn)樵摂?shù)據(jù)會(huì)被以不同方式壓縮。
即,在讀取期間,操作系統(tǒng)驅(qū)動(dòng)器將未用的段的地址n傳送到IOP,此處n是存儲(chǔ)該數(shù)據(jù)所要求的最大的段的數(shù)目(例如,在這一例子中,每頁(yè)16段)。這些段還被從空閑段列表中刪除。
IOA從該磁盤中讀取數(shù)據(jù)并將該段寫入到指示的存儲(chǔ)單元,同時(shí)根據(jù)該磁盤的內(nèi)容和該段的物理地址來(lái)重組該目錄信息。
當(dāng)該傳送完成時(shí),該目錄信息就被傳送到操作系統(tǒng)驅(qū)動(dòng)器,該操作系統(tǒng)驅(qū)動(dòng)器更新該壓縮存儲(chǔ)器目錄。因?yàn)榇鎯?chǔ)該段所需要的段的數(shù)目可以小于n,所以任何未用的段就被返回到空閑列表。
將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到壓縮磁盤上圖6說(shuō)明了將數(shù)據(jù)存儲(chǔ)到磁盤上磁盤扇區(qū)601、602、603的方法。
在典型計(jì)算機(jī)系統(tǒng)中的I/O單位是磁盤扇區(qū)或者是頁(yè)。在AS/400壓縮的DASD中,I/O單位是頁(yè)。Windows NT和Windows 2000也按頁(yè)來(lái)讀取和寫入數(shù)據(jù)。
壓縮DASD的IOP將4K的數(shù)據(jù)壓縮成數(shù)目可變的字節(jié),并且將它們存儲(chǔ)到確定數(shù)目的扇區(qū)中。在優(yōu)選實(shí)施例中,該實(shí)施例例如使用AS/400壓縮的DASD,頁(yè)被存儲(chǔ)在數(shù)目可變的磁盤扇區(qū)上,并且兩個(gè)不同的頁(yè)不能夠共享一個(gè)磁盤扇區(qū)。壓縮頁(yè)還被存儲(chǔ)到連續(xù)的磁盤扇區(qū)上。沒(méi)有壓縮到原始大小的預(yù)定量的(例如,7/8或者更低)頁(yè),包括與數(shù)據(jù)存儲(chǔ)在一起的一些標(biāo)題信息,未被壓縮地存儲(chǔ)到9個(gè)磁盤扇區(qū)上8個(gè)扇區(qū)用于數(shù)據(jù),而1個(gè)扇區(qū)用于該系統(tǒng)標(biāo)題。
一般來(lái)講,磁盤上的和存儲(chǔ)器上的壓縮單位可以是不相同的。因此,可以使用圖6的示范性模式。在該示范性模式中,每個(gè)磁盤扇區(qū)能夠保持512字節(jié),因此能夠存儲(chǔ)兩個(gè)256字節(jié)的存儲(chǔ)器區(qū)。
在這一發(fā)明中,提出了兩種方法來(lái)將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到數(shù)目可變的磁盤扇區(qū)中。
第一種方法第一種方法包括將壓縮的系統(tǒng)標(biāo)題、壓縮的數(shù)據(jù)控制和填充(Compressed Data Control and Pads)(如果需要的話,與在AS/400DASD中的例子一樣)與目錄信息一起存儲(chǔ)在256B的存儲(chǔ)器扇區(qū)中,并且將這一存儲(chǔ)器扇區(qū)與壓縮行的存儲(chǔ)器扇區(qū)一起存儲(chǔ)成磁盤扇區(qū)的數(shù)據(jù)部分。
在該優(yōu)選實(shí)施例中,因?yàn)橐粋€(gè)磁盤扇區(qū)包含512字節(jié),因而在每個(gè)磁盤扇區(qū)中能夠存儲(chǔ)兩個(gè)(2)存儲(chǔ)器扇區(qū)。在將存儲(chǔ)器段存儲(chǔ)到磁盤段中的次序遵循常規(guī)方式,從而使得IOA知道共享的存儲(chǔ)器扇區(qū)被存儲(chǔ)在磁盤的哪個(gè)位置。
在圖6所說(shuō)明的例子中,磁盤扇區(qū)被繪制成粗線長(zhǎng)方形,而存儲(chǔ)器扇區(qū)被繪制成細(xì)線長(zhǎng)方形。
磁盤扇區(qū)601存儲(chǔ)存儲(chǔ)器扇區(qū)610,該存儲(chǔ)器扇區(qū)包含壓縮的系統(tǒng)標(biāo)題、壓縮的數(shù)據(jù)控制和填充、以及在頁(yè)中的行的目錄信息,以及第一存儲(chǔ)器扇區(qū)611,該存儲(chǔ)器扇區(qū)包含屬于所存儲(chǔ)的頁(yè)的行1的壓縮數(shù)據(jù)。在這一例子中,存儲(chǔ)器行1壓縮到兩個(gè)存儲(chǔ)器扇區(qū),第二個(gè)存儲(chǔ)器扇區(qū)(612)被存儲(chǔ)在磁盤扇區(qū)602的啟始處。磁盤扇區(qū)602的第二部分包含行2(613)所使用的第一存儲(chǔ)器扇區(qū)。用來(lái)存儲(chǔ)所壓縮的頁(yè)的最后的磁盤扇區(qū)603包含最后的存儲(chǔ)器扇區(qū)(圖6中的614)。
上述技術(shù)方案的優(yōu)點(diǎn)在于它的簡(jiǎn)單性。即,存儲(chǔ)器段保持不被修改,并且以與在主存儲(chǔ)器中所使用的正好相同的格式來(lái)讀取和寫入。
缺點(diǎn)在于由于三個(gè)因素而導(dǎo)致增加了碎片。例如,如果行不是共居者,則它們最后的存儲(chǔ)器段就被部分地填充。此外,包含目錄信息和系統(tǒng)標(biāo)題的附加存儲(chǔ)器段大部分都是空的。
最后,如在圖6中所繪制的(扇區(qū)603),如果由頁(yè)和標(biāo)題、控制、以及目錄信息所使用的存儲(chǔ)器扇區(qū)的數(shù)目是奇數(shù),則其中一個(gè)磁盤扇區(qū)只被利用了一半。
第二種方法第二種方法包括按如下所述來(lái)組織數(shù)據(jù)壓縮的系統(tǒng)標(biāo)題、壓縮的數(shù)據(jù)控制、填充、用來(lái)描述由所有壓縮行使用的區(qū)組(granule)的數(shù)目的(page_size/line_size)*log2(line_size/granule_size)比特、以及計(jì)數(shù)器一起被存儲(chǔ)在數(shù)目可變的區(qū)組中。這些區(qū)組的術(shù)語(yǔ)叫做“標(biāo)題區(qū)組”(header granules)。計(jì)數(shù)器包含標(biāo)題區(qū)組的數(shù)目。該格式使得IOA能夠容易地恢復(fù)數(shù)據(jù)。組成每個(gè)壓縮行的區(qū)組由IOA從該存儲(chǔ)器段中抽取,被順序地連接到標(biāo)題區(qū)組,并且被存儲(chǔ)到整數(shù)數(shù)目的磁盤扇區(qū)中。
當(dāng)從磁盤讀取時(shí),該IOA根據(jù)存儲(chǔ)器壓縮格式將區(qū)組重組成存儲(chǔ)器段。
這一技術(shù)方案的優(yōu)點(diǎn)是改善了碎片,(在把該數(shù)據(jù)組織成數(shù)目固定的段之前)該碎片現(xiàn)在平均等于一個(gè)區(qū)組大小的2.5倍。第二個(gè)潛在的優(yōu)點(diǎn)是由于在從磁盤讀取數(shù)據(jù)時(shí)有可能更好地組織共居者而產(chǎn)生的。
缺點(diǎn)是稍微增加了在IOA的代碼的復(fù)雜性。
除了上述的環(huán)境之外,本發(fā)明的不同方面包括一種用于執(zhí)行上述方法的計(jì)算機(jī)實(shí)現(xiàn)方法。作為一個(gè)例子,這一方法可以在上面論述的特定環(huán)境中加以實(shí)現(xiàn)。
這種方法可以例如通過(guò)操作計(jì)算機(jī)來(lái)加以實(shí)現(xiàn),通過(guò)數(shù)字?jǐn)?shù)據(jù)處理裝置來(lái)具體化,以執(zhí)行機(jī)器可讀指令的序列。這些指令可以駐留在各種類型的信號(hào)承載介質(zhì)中。
因此,本方面的這一方面針對(duì)一種程序產(chǎn)品,包括信號(hào)承載介質(zhì),該信號(hào)承載介質(zhì)具體包括可由并入上述CPU和硬件的數(shù)字?jǐn)?shù)據(jù)處理器執(zhí)行的機(jī)器可讀指令的程序,用于執(zhí)行本發(fā)明的方法。
這一信號(hào)承載介質(zhì)可以包括例如包含在CPU之中的,例如由快速存取存儲(chǔ)器所代表的RAM?;蛘撸@些指令可以包含在另一種信號(hào)承載介質(zhì)中,諸如可由CPU直接或者間接地訪問(wèn)的磁數(shù)據(jù)存儲(chǔ)軟盤700(圖7)。
不論被包含在軟盤700、計(jì)算機(jī)/CPU或者別的什么地方,這些指令都可以被存儲(chǔ)在各種機(jī)器可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上,諸如DASD存儲(chǔ)器(例如,常規(guī)的“硬盤驅(qū)動(dòng)器”或者RAID陣列)、磁帶、電只讀存儲(chǔ)器(例如,ROM、EPROM、或者EEPROM)、光存儲(chǔ)設(shè)備(例如CD-ROM、WORM、DVD、數(shù)字光帶等等)、紙“穿孔”卡、或者其它適合的信號(hào)承載介質(zhì),包括通信介質(zhì),諸如數(shù)字和模擬和通信鏈路以及無(wú)線。在本發(fā)明的說(shuō)明性實(shí)施例中,機(jī)器可讀指令可以包括經(jīng)由諸如“C”等等這樣的語(yǔ)言編譯過(guò)的軟件目標(biāo)代碼。
因此,依照本發(fā)明,提供了各種優(yōu)點(diǎn),包括更低要求的帶寬、更少的磁盤空間、在磁盤高速緩存器中要求更少的空間、以及更好地利用存儲(chǔ)器壓縮器/解壓器(不被要求來(lái)從磁盤中存儲(chǔ)/檢索頁(yè))。
盡管本發(fā)明已經(jīng)在幾個(gè)優(yōu)選實(shí)施例方面進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到本發(fā)明能夠在所附的權(quán)利要求的精神和范圍之內(nèi)通過(guò)修改就能夠加以實(shí)踐。
此外,要注意的是,申請(qǐng)人意向是包括所有權(quán)利要求元素的等價(jià)內(nèi)容,甚至以后在申請(qǐng)期間被修改的權(quán)利要求元素。
權(quán)利要求
1.一種存儲(chǔ)信息的方法,包括分別存儲(chǔ)和檢索主存儲(chǔ)器壓縮信息到存儲(chǔ)器壓縮磁盤上和分別從存儲(chǔ)器壓縮磁盤上存儲(chǔ)和檢索主存儲(chǔ)器壓縮信息,其中頁(yè)是被單個(gè)地存儲(chǔ)和檢索的,而不用解壓所述主存儲(chǔ)器壓縮信息。
2.權(quán)利要求1的方法,進(jìn)一步包括將壓縮存儲(chǔ)器的目錄信息發(fā)送到所述磁盤。
3.權(quán)利要求2的方法,進(jìn)一步包括解釋所述壓縮存儲(chǔ)器目錄信息,以便獲取由數(shù)據(jù)所使用的存儲(chǔ)器扇區(qū)的物理存儲(chǔ)單元。
4.權(quán)利要求1的方法,進(jìn)一步包括將所述存儲(chǔ)器扇區(qū)的內(nèi)容拷貝到所述磁盤。
5.權(quán)利要求1的方法,其特征在于主存儲(chǔ)器的壓縮格式和磁盤的壓縮格式不相同。
6.一種將壓縮數(shù)據(jù)從主存儲(chǔ)器傳送到輸入/輸出適配器(IOA)/輸入/輸出處理器(IOP)的方法,所述方法包括將壓縮存儲(chǔ)器的目錄信息發(fā)送到IOA/IOP;在IOA/IOP解釋該壓縮存儲(chǔ)器的目錄信息,以便獲取在所述主存儲(chǔ)器中由所需要的數(shù)據(jù)使用的存儲(chǔ)器扇區(qū)的物理存儲(chǔ)單元;以及使用直接存儲(chǔ)器存取(DMA)的操作將所述存儲(chǔ)器扇區(qū)的內(nèi)容拷貝到IOA/IOP,而不用解壓該數(shù)據(jù)。
7.權(quán)利要求6的方法,其特征在于所述主存儲(chǔ)器和所述磁盤被并入到支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中,并且其中數(shù)據(jù)以與在所述主存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)的格式不相同的壓縮格式被存儲(chǔ)到所述磁盤上,以及其中IOA(輸入/輸出適配器)/IOP(輸入/輸出處理器)通過(guò)所述DMA操作有選擇地從主存儲(chǔ)器中讀取和寫入主存儲(chǔ)器。
8.權(quán)利要求6的方法,進(jìn)一步包括在將所要求的數(shù)據(jù)發(fā)送到IOA/IOP之前,鎖定所要求的數(shù)據(jù)的目錄條目;以及在所有對(duì)應(yīng)的存儲(chǔ)器區(qū)都已經(jīng)被拷貝到IOA/IOP之后,解除對(duì)所要求的數(shù)據(jù)的目錄條目的鎖定。
9.權(quán)利要求6的方法,其特征在于數(shù)據(jù)以未壓縮的格式被存儲(chǔ)到主存儲(chǔ)器中。
10.權(quán)利要求6的方法,其特征在于該存儲(chǔ)器的壓縮數(shù)據(jù)的至少一部分被存儲(chǔ)到存儲(chǔ)器的壓縮目錄中。
11.在支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中,其中數(shù)據(jù)以不同的壓縮格式被存儲(chǔ)到磁盤上,并且其中IOA(輸入/輸出適配器)/IOP(輸入/輸出處理器)通過(guò)直接存儲(chǔ)器存取(DMA)操作有選擇地從主存儲(chǔ)器進(jìn)行讀取并寫入主存儲(chǔ)器,一種將壓縮數(shù)據(jù)從IOA/IOP傳送到所述主存儲(chǔ)器中的方法,所述方法包括保留一組空閑存儲(chǔ)器扇區(qū)來(lái)包含在所述主存儲(chǔ)器中的數(shù)據(jù);向IOA/IOP發(fā)送所述存儲(chǔ)器扇區(qū)的地址;使用所述DMA操作將數(shù)據(jù)從IOA/IOP拷貝到所述存儲(chǔ)器扇區(qū);在IOA/IOP構(gòu)造限定如何將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器中以及將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器的哪個(gè)位置的壓縮存儲(chǔ)器的目錄信息;將該存儲(chǔ)器目錄信息發(fā)送到存儲(chǔ)器控制器;以及將該存儲(chǔ)器目錄信息存儲(chǔ)到壓縮存儲(chǔ)器的目錄結(jié)構(gòu)中。
12.權(quán)利要求11的方法,進(jìn)一步包括將數(shù)據(jù)從所述磁盤上讀到IOA/IOP上。
13.權(quán)利要求12的方法,其特征在于所述讀取包括從該磁盤讀取包含所需要的數(shù)據(jù)的磁盤扇區(qū);解除每個(gè)所述磁盤扇區(qū)的內(nèi)容的組成為D/S數(shù)據(jù)項(xiàng);以及從第一數(shù)據(jù)項(xiàng)中抽取存儲(chǔ)器目錄信息、系統(tǒng)標(biāo)題、壓縮數(shù)據(jù)控制和填充。
14.權(quán)利要求11的方法,其特征在于將數(shù)據(jù)從壓縮存儲(chǔ)器傳送到IOA/IOP。
15.權(quán)利要求11的方法,其特征在于使用處理器間的通信協(xié)議將數(shù)據(jù)從壓縮存儲(chǔ)器傳送到IOA/IOP。
16.在支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中,其中存儲(chǔ)器壓縮數(shù)據(jù)以大小為S的存儲(chǔ)器扇區(qū)單位加以管理,其中數(shù)據(jù)被以不同的壓縮格式存儲(chǔ)到磁盤上,并且其中在所述磁盤上的數(shù)據(jù)以大小為D的磁盤扇區(qū)單位加以管理,一種用于將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到壓縮磁盤上的方法,所述方法包括將至少一個(gè)壓縮存儲(chǔ)器的目錄信息、系統(tǒng)標(biāo)題、壓縮數(shù)據(jù)控制、以及填充組合成與存儲(chǔ)器扇區(qū)具有相同大小的S的數(shù)據(jù)結(jié)構(gòu);將所述數(shù)據(jù)結(jié)構(gòu)和在所需要的存儲(chǔ)器扇區(qū)中包含的數(shù)據(jù)分成為D/S項(xiàng)的組;以及將每個(gè)所述組存儲(chǔ)到相互獨(dú)立的磁盤扇區(qū)中。
17.權(quán)利要求16的方法,進(jìn)一步包括確定來(lái)自壓縮存儲(chǔ)器的目錄信息的數(shù)據(jù)的大小;以及在數(shù)據(jù)正被從所述主存儲(chǔ)器傳送的同時(shí),分配對(duì)應(yīng)數(shù)目的磁盤扇區(qū)以便存儲(chǔ)該數(shù)據(jù)。
18.在支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中,其中存儲(chǔ)器壓縮數(shù)據(jù)以大小為G的存儲(chǔ)器區(qū)組為單位加以管理,其中數(shù)據(jù)被以不同的壓縮格式存儲(chǔ)到磁盤上,并且其中在所述磁盤上的數(shù)據(jù)以大小為D的磁盤扇區(qū)單位加以管理,一種用于將存儲(chǔ)器壓縮數(shù)據(jù)存儲(chǔ)到壓縮磁盤上的方法,所述方法包括將壓縮存儲(chǔ)器的目錄信息、系統(tǒng)標(biāo)題、壓縮數(shù)據(jù)控制和填充組成固定數(shù)目為N的區(qū)組;將所述區(qū)組和所需要的數(shù)據(jù)的區(qū)組連接起來(lái);將所述連接的區(qū)組劃分成D/G區(qū)組的組;以及將每個(gè)所述組存儲(chǔ)到相獨(dú)立的磁盤扇區(qū)中。
19.權(quán)利要求18的方法,進(jìn)一步包括將數(shù)據(jù)從磁盤讀取到IOA(輸入/輸出適配器)/IOP(輸入/輸出處理器)上。
20.權(quán)利要求19的方法,其特征在于所述讀取包括從該磁盤讀取包含所需要的數(shù)據(jù)的磁盤扇區(qū);將每個(gè)所述磁盤扇區(qū)的內(nèi)容劃分成D/G區(qū)組;組合第一N個(gè)區(qū)組;以及從所述組合的第一N個(gè)區(qū)組中抽取存儲(chǔ)器目錄信息、系統(tǒng)標(biāo)題、壓縮數(shù)據(jù)控制和填充。
21.權(quán)利要求18的方法,其特征在于數(shù)據(jù)被從IOA(輸入/輸出適配器)/IOP(輸入/輸出處理器)傳送到壓縮存儲(chǔ)器。
22.權(quán)利要求21的方法,其特征在于使用處理器間的協(xié)議將數(shù)據(jù)從IOA/IOP傳送到壓縮存儲(chǔ)器。
23.權(quán)利要求18的方法,其特征在于該壓縮磁盤包括log-結(jié)構(gòu)型的陣列。
24.一種用于將壓縮數(shù)據(jù)從主存儲(chǔ)器傳送到輸入/輸出適配器(IOA)/輸入/輸出處理器(IOP)的系統(tǒng),所述系統(tǒng)包括用于將壓縮存儲(chǔ)器的目錄信息發(fā)送到IOA/IOP的裝置;用于在IOA/IOP解釋壓縮存儲(chǔ)器的目錄信息,以便獲取由所需要的數(shù)據(jù)使用的存儲(chǔ)器扇區(qū)的物理存儲(chǔ)單元的裝置;以及用于使用直接存儲(chǔ)器存取(DMA)操作將所述存儲(chǔ)器扇區(qū)的內(nèi)容拷貝到IOA/IOP而不解壓該數(shù)據(jù)的裝置。
25.權(quán)利要求24系統(tǒng),其特征在于所述主存儲(chǔ)器和所述磁盤被并入到支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng)中,其中數(shù)據(jù)以不同于在所述主存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)的格式的壓縮格式存儲(chǔ)到所述磁盤上,以及其中IOA/IOP通過(guò)所述DMA操作有選擇地從主存儲(chǔ)器讀取并寫入主存儲(chǔ)器。
26.一種支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng),包括主存儲(chǔ)器;磁盤系統(tǒng),其中數(shù)據(jù)以不同于所述主存儲(chǔ)器的壓縮格式存儲(chǔ)在所述磁盤系統(tǒng);以及IOA(輸入/輸出適配器)/IOP(輸入/輸出處理器),通過(guò)直接存儲(chǔ)器存取(DMA)操作有選擇地從所述主存儲(chǔ)器讀取并寫入所述主存儲(chǔ)器,壓縮數(shù)據(jù)被傳送到所述主存儲(chǔ)器;用于保留一組空閑存儲(chǔ)器扇區(qū)來(lái)包含在所述主存儲(chǔ)器中的數(shù)據(jù)的裝置;用于向IOA/IOP發(fā)送所述存儲(chǔ)器扇區(qū)的地址的裝置;用于使用所述DMA操作將數(shù)據(jù)從IOA/IOP拷貝到所述存儲(chǔ)器扇區(qū)的裝置;在IOA/IOP構(gòu)造限定如何將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器中以及將該數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器的哪個(gè)位置的壓縮存儲(chǔ)器的目錄信息;將該存儲(chǔ)器的目錄信息發(fā)送到存儲(chǔ)器控制器;以及將該存儲(chǔ)器的目錄信息存儲(chǔ)到該壓縮存儲(chǔ)器的目錄結(jié)構(gòu)中。
27.一種支持存儲(chǔ)器壓縮的計(jì)算機(jī)系統(tǒng),其中存儲(chǔ)器壓縮數(shù)據(jù)以大小為S的存儲(chǔ)器扇區(qū)單位加以管理,其中數(shù)據(jù)被以不同的壓縮格式存儲(chǔ)到磁盤上,并且其中磁盤上的數(shù)據(jù)以大小為D的磁盤扇區(qū)單位加以管理,并且存儲(chǔ)器壓縮數(shù)據(jù)被存儲(chǔ)到壓縮磁盤上,所述系統(tǒng)包括用于將壓縮存儲(chǔ)器的目錄信息、系統(tǒng)標(biāo)題、壓縮數(shù)據(jù)控制、以及填充組合成與存儲(chǔ)器扇區(qū)具有相同大小S的數(shù)據(jù)結(jié)構(gòu)的裝置;用于將所述數(shù)據(jù)結(jié)構(gòu)和在所需要的存儲(chǔ)器扇區(qū)中包含的數(shù)據(jù)分成D/S項(xiàng)的組的裝置;以及用于將每個(gè)所述組存儲(chǔ)到相互獨(dú)立的磁盤扇區(qū)的裝置。
28.一種信號(hào)承載介質(zhì),具體包括可由數(shù)字處理裝置執(zhí)行的機(jī)器可讀指令的程序,用于執(zhí)行存儲(chǔ)信息的方法的方法,所述方法包括將主存儲(chǔ)器壓縮信息存儲(chǔ)到存儲(chǔ)器壓縮磁盤上,而不用解壓所述主存儲(chǔ)器壓縮信息。
29.一種信號(hào)承載介質(zhì),具體包括可由數(shù)字處理裝置執(zhí)行的機(jī)器可讀指令的程序,用于執(zhí)行將壓縮數(shù)據(jù)從主存儲(chǔ)器傳送到輸入/輸出適配器(IOA)/輸入/輸出處理器(IOP)的方法,所述方法包括將壓縮存儲(chǔ)器的目錄信息發(fā)送到IOA/IOP;在IOA/IOP解釋壓縮存儲(chǔ)器的目錄信息,以便獲取在所述主存儲(chǔ)器中由所需要的數(shù)據(jù)使用的存儲(chǔ)器扇區(qū)的物理存儲(chǔ)單元;以及使用直接存儲(chǔ)器存取(DMA)操作將所述存儲(chǔ)器扇區(qū)的內(nèi)容拷貝到IOA/IOP,而不用解壓該數(shù)據(jù)。
全文摘要
一種存儲(chǔ)信息的方法(和系統(tǒng)),包括將主存儲(chǔ)器壓縮信息存儲(chǔ)到存儲(chǔ)器壓縮磁盤上,其中頁(yè)被單個(gè)地存儲(chǔ)和檢索,而不用解壓該主存儲(chǔ)器的壓縮信息。
文檔編號(hào)G06F13/28GK1484151SQ0312745
公開日2004年3月24日 申請(qǐng)日期2003年8月7日 優(yōu)先權(quán)日2002年8月8日
發(fā)明者C·本維尼斯特, V·卡斯特里, P·A·弗拉納斯?jié)煽? C 本維尼斯特, 固乩, 弗拉納斯?jié)煽?申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司