專利名稱:在邏輯層、物理層和存儲(chǔ)設(shè)備之間傳輸數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
這個(gè)發(fā)明涉及在邏輯層、物理層和存儲(chǔ)設(shè)備之間傳輸數(shù)據(jù)的的方法、系統(tǒng)和過程。
背景技術(shù):
在一個(gè)存儲(chǔ)環(huán)境中,數(shù)據(jù)可能會(huì)在不同種類的存儲(chǔ)設(shè)備之間傳輸,例如順序訪問設(shè)備(如,磁帶驅(qū)動(dòng)器,光盤驅(qū)動(dòng)器等)或者隨機(jī)訪問存儲(chǔ)設(shè)備(如,硬盤驅(qū)動(dòng)器,電子存儲(chǔ)器,F(xiàn)lash存儲(chǔ)器等)。連接到存儲(chǔ)設(shè)備的系統(tǒng)可能有一個(gè)表示了大塊數(shù)據(jù)的邏輯視圖的邏輯層,也稱為邏輯塊,其可能包括在存儲(chǔ)設(shè)備的物理塊中或者跨越物理塊。邏輯層通過調(diào)用物理層去訪問存儲(chǔ)設(shè)備。在邏輯層和物理層中都可給應(yīng)用數(shù)據(jù)加上一個(gè)頭信息,在這個(gè)頭信息中包含被用來管理數(shù)據(jù)和錯(cuò)誤校驗(yàn)碼的數(shù)據(jù)。物理頭可表示塊中要寫到存儲(chǔ)設(shè)備的數(shù)據(jù)的大小和邏輯塊的標(biāo)識(shí)符。
邏輯層可在存儲(chǔ)器中分配一個(gè)緩沖區(qū),用來包括傳送到存儲(chǔ)設(shè)備的數(shù)據(jù)。邏輯層執(zhí)行一個(gè)存儲(chǔ)器拷貝的操作,將邏輯層緩沖區(qū)中的數(shù)據(jù)傳輸?shù)轿锢韺虞斎?輸出(I/O)緩沖區(qū)中,其中在數(shù)據(jù)被傳輸?shù)酱鎯?chǔ)設(shè)備前,物理層給數(shù)據(jù)加上物理頭信息。例如,邏輯層用應(yīng)用數(shù)據(jù)和邏輯頭填充邏輯緩沖區(qū)。隨后,物理層加物理頭到I/O緩沖區(qū)中,并且在加到I/O緩沖區(qū)中的物理頭之后將邏輯層使用的緩沖區(qū)中的數(shù)據(jù)拷貝到I/O緩沖區(qū)。
在讀操作中,邏輯層維持使在該處存儲(chǔ)邏輯對(duì)象的物理位置與邏輯塊標(biāo)識(shí)符相關(guān)聯(lián)的信息。一個(gè)邏輯對(duì)象可能跨越多個(gè)邏輯和物理塊,或者多個(gè)邏輯對(duì)象被包含在一個(gè)塊中。為了檢索對(duì)象,邏輯層請(qǐng)求物理層在和這個(gè)對(duì)象相關(guān)聯(lián)的物理位置讀取該塊。物理曾確定在緩沖區(qū)中跳過該物理頭的包括該物理位置的偏移,其中邏輯層不知道物理頭。然后物理層執(zhí)行兩個(gè)操作,一個(gè)是將包含有邏輯塊和物理頭的整個(gè)一個(gè)物理塊讀到I/O緩沖區(qū)中,另一個(gè)是從I/O緩沖區(qū)中跳過物理頭的偏移開始進(jìn)行存儲(chǔ)器拷貝,這個(gè)存儲(chǔ)器拷貝操作將在I/O緩沖區(qū)中的邏輯頭和應(yīng)用數(shù)據(jù)拷貝到分配給邏輯層的緩沖區(qū)中。
發(fā)明內(nèi)容
本發(fā)明提供了在邏輯層、物理層和存儲(chǔ)設(shè)備之間傳輸數(shù)據(jù)的方法、系統(tǒng)和過程。邏輯層分配了一個(gè)用來寫數(shù)據(jù)到存儲(chǔ)設(shè)備(storagedevice)的緩沖區(qū)(buffer),物理層管理對(duì)存儲(chǔ)設(shè)備的訪問。邏輯層基于由物理層寫入的物理頭(physical header)的長度確定在緩沖區(qū)中的偏移(offset),并且從確定的偏移開始將輸入寫入緩沖區(qū)。物理層寫入物理頭信息,其中物理頭信息不超過緩沖區(qū)中的偏移。物理層將內(nèi)容從緩沖區(qū)傳輸?shù)酱鎯?chǔ)設(shè)備
圖1描述了存儲(chǔ)計(jì)算環(huán)境的實(shí)現(xiàn)。
圖2描述了緩沖區(qū)格式的實(shí)現(xiàn)。
圖3描述了保持的使物理位置和邏輯塊相關(guān)聯(lián)的信息。
圖4、5和6描述了在邏輯層、物理層和存儲(chǔ)設(shè)備之間傳輸數(shù)據(jù)的操作的實(shí)現(xiàn)。
具體實(shí)施例方式
在下面的描述中,將參考構(gòu)成本發(fā)明一部分并實(shí)例化本發(fā)明的若干實(shí)施例的附圖。應(yīng)當(dāng)理解,在沒有偏離本說明的范圍的前提下,可以采用其他的實(shí)例或者作出結(jié)構(gòu)和操作上的變化。
圖1描述了一個(gè)計(jì)算環(huán)境,在該環(huán)境中有一個(gè)包含有處理器4和存儲(chǔ)器(memory)6的系統(tǒng)2。在存儲(chǔ)器6中加載了一個(gè)操作系統(tǒng)26和存儲(chǔ)管理器8應(yīng)用。在存儲(chǔ)管理器8中包含一個(gè)邏輯層10和一個(gè)物理層12。邏輯層10向應(yīng)用20提供存儲(chǔ)在存儲(chǔ)設(shè)備14中的數(shù)據(jù)的信息。邏輯層10提供存儲(chǔ)設(shè)備14中數(shù)據(jù)的視圖(view),作為邏輯塊,并且可提供文件系統(tǒng)視圖。邏輯層知道數(shù)據(jù)的布局,但和存儲(chǔ)設(shè)備沒有直接的接觸。邏輯層10和物理層18之間進(jìn)行通信,該物理層與設(shè)備驅(qū)動(dòng)器(沒有顯示)和其他能直接訪問在存儲(chǔ)設(shè)備14中數(shù)據(jù)15的物理塊的組件進(jìn)行交互。物理層12與存儲(chǔ)設(shè)備直接進(jìn)行聯(lián)系,但不了解被存儲(chǔ)的數(shù)據(jù)。邏輯層10將對(duì)存儲(chǔ)設(shè)備14中的數(shù)據(jù)的I/O請(qǐng)求傳遞到物理層12來處理。邏輯層10可將存儲(chǔ)設(shè)備14中的數(shù)據(jù)看作邏輯塊,其中邏輯層可能跨越在存儲(chǔ)設(shè)備14中組織的數(shù)據(jù)16的物理塊。此外,一個(gè)物理塊16可能包含多個(gè)邏輯塊。邏輯層10維持一個(gè)對(duì)象數(shù)據(jù)庫18,這個(gè)數(shù)據(jù)庫提供了關(guān)于每一個(gè)寫到存儲(chǔ)設(shè)備14的對(duì)象的信息,包括對(duì)象存儲(chǔ)的開始在存儲(chǔ)設(shè)備14中的物理位置。向前面討論的一樣,一個(gè)對(duì)象可跨越一個(gè)或多個(gè)物理塊。
在存儲(chǔ)器6或一些外部設(shè)備中執(zhí)行的應(yīng)用20向邏輯層10傳遞邏輯塊數(shù)據(jù)的讀/寫請(qǐng)求,邏輯層10向應(yīng)用20提供了數(shù)據(jù)的邏輯視圖。應(yīng)用20可以傳輸應(yīng)用20產(chǎn)生和保持的數(shù)據(jù)。另外,應(yīng)用20也在存儲(chǔ)設(shè)備14和其他的存儲(chǔ)設(shè)備(沒有顯示)之間傳輸數(shù)據(jù),在其中數(shù)據(jù)可在不同種類的存儲(chǔ)設(shè)備之間傳輸。例如,應(yīng)用20可包含一個(gè)備份程序用來在一個(gè)或多個(gè)硬盤驅(qū)動(dòng)器和磁帶或其他順序訪問設(shè)備之間備份和存儲(chǔ)數(shù)據(jù)。
邏輯層10在緩沖區(qū)池24中分配緩沖區(qū)22來存儲(chǔ)數(shù)據(jù)塊。在這里描述的實(shí)施例中,邏輯層10和物理層12共享緩沖區(qū)22。
存儲(chǔ)器14可以包括本領(lǐng)域中已知的任何適當(dāng)?shù)姆且资源鎯?chǔ)設(shè)備,例如順序存儲(chǔ)設(shè)備,如磁帶,光盤等,或者隨機(jī)訪問存儲(chǔ)設(shè)備,如硬盤驅(qū)動(dòng)器或非易失性電子存儲(chǔ)器(如flash存儲(chǔ)器)。系統(tǒng)2可包括本領(lǐng)域中已知的能對(duì)存儲(chǔ)設(shè)備14執(zhí)行I/O訪問的計(jì)算機(jī)系統(tǒng),如工作站,服務(wù)器,大型機(jī)、桌上電腦、膝上型電腦、手持計(jì)算機(jī)、電話等。系統(tǒng)2和存儲(chǔ)設(shè)備14之間可通過網(wǎng)絡(luò)連接,如局域網(wǎng)(LAN)、存儲(chǔ)域網(wǎng)(SAN)、無線網(wǎng)絡(luò)、因特網(wǎng)、企業(yè)內(nèi)部網(wǎng)等。在一個(gè)可選的實(shí)施例中,系統(tǒng)2和存儲(chǔ)設(shè)備14之間可通過電纜或總線接口相連,如PCI總線、SCSI總線等。存儲(chǔ)設(shè)備14可包括和系統(tǒng)2連接的外部存儲(chǔ)設(shè)備,或者和系統(tǒng)2主板連接的內(nèi)部存儲(chǔ)設(shè)備。
圖2描述了由邏輯層10和物理層12為每塊數(shù)據(jù)添加到緩沖區(qū)22的信息,包括由物理層12寫入的物理頭50,包括物理層12用來標(biāo)識(shí)和校驗(yàn)數(shù)據(jù)的信息,如物理塊的標(biāo)識(shí)符和用來校驗(yàn)數(shù)據(jù)的錯(cuò)誤校驗(yàn)碼;由邏輯層10寫入的邏輯頭52,包括邏輯層10用來標(biāo)識(shí)和校驗(yàn)數(shù)據(jù)的信息,如邏輯塊的標(biāo)識(shí)符和錯(cuò)誤校驗(yàn)碼;以及由邏輯層寫入的應(yīng)用數(shù)據(jù)54。對(duì)于描述的實(shí)施例,邏輯層10和物理層12彼此傳遞數(shù)據(jù),以通過將指針傳遞給緩沖區(qū)來讀取或?qū)懭氪鎯?chǔ)設(shè)備14。這樣,緩沖區(qū)22是被邏輯層10和物理層12共享的。邏輯層10和物理層12可在同一塊共享的緩沖區(qū)22中處理數(shù)據(jù)和添加頭信息和其它的信息,避免了相對(duì)于分立的緩沖區(qū)進(jìn)行數(shù)據(jù)的存儲(chǔ)器拷貝操作。
圖3描述了對(duì)象數(shù)據(jù)庫18的條目70,包括對(duì)象標(biāo)識(shí)符(ID)72和表示存儲(chǔ)設(shè)備14中對(duì)象72開始的物理位置的物理位置74。對(duì)象72可能被包括在一個(gè)物理塊16中或跨越多個(gè)物理塊16。在一個(gè)實(shí)施例中,邏輯塊和物理塊的長度是一樣的。在存儲(chǔ)設(shè)備包括順序存儲(chǔ)設(shè)備(如磁帶)的實(shí)施例中,塊16可包括在順序存儲(chǔ)介質(zhì)上的順序塊。
圖4描述了一個(gè)由邏輯層10和物理層12從應(yīng)用20傳輸數(shù)據(jù)到存儲(chǔ)設(shè)備14的操作的實(shí)施例,其可能從另外一個(gè)存儲(chǔ)設(shè)備(如不同種類的存儲(chǔ)設(shè)備)傳輸數(shù)據(jù)到存儲(chǔ)設(shè)備。為了初始化一個(gè)寫操作,邏輯層10在存儲(chǔ)器設(shè)備中請(qǐng)求安裝(mount)一個(gè)卷(volume)(在塊100)。在存儲(chǔ)設(shè)備14包括順序訪問設(shè)備的實(shí)施例中,所述卷可包括物理層12將使之插入磁帶驅(qū)動(dòng)器以進(jìn)行訪問的磁帶或盤式磁帶(cartridge)。所述卷包括含有邏輯塊的物理塊?;蛘?,存儲(chǔ)設(shè)備14可包括隨機(jī)訪問存儲(chǔ)設(shè)備,如硬盤驅(qū)動(dòng)器、flash存儲(chǔ)器等。響應(yīng)于所述安裝請(qǐng)求,物理層12發(fā)出命令,以安裝包括所請(qǐng)求的卷的存儲(chǔ)介質(zhì),并且向邏輯層10返回一個(gè)安裝完成的信息(塊102)。當(dāng)一個(gè)磁帶被安裝以進(jìn)行寫入時(shí),假設(shè)該卷尋道(seek)到末尾。物理層12還向邏輯層報(bào)告消息,指出物理頭50(圖2)的長度和在存儲(chǔ)設(shè)備中的塊16的大小。響應(yīng)于接收安裝完成和關(guān)于物理頭50(圖2)長度和存儲(chǔ)設(shè)備塊16的大小的信息(塊106),邏輯層10向物理層12請(qǐng)求順序訪問設(shè)備14的寫入對(duì)象的當(dāng)前存儲(chǔ)位置(塊108)。在一個(gè)實(shí)施例中,當(dāng)前存儲(chǔ)位置可包括在順序訪問設(shè)備中定位存儲(chǔ)設(shè)備14的讀/寫頭以寫入對(duì)象的一個(gè)物理位置。
作為當(dāng)前位置的請(qǐng)求的響應(yīng),物理層12確定在順序訪問設(shè)備中的當(dāng)前訪問位置,并將該確定的當(dāng)前位置發(fā)送到邏輯層10(塊110)。在邏輯塊數(shù)據(jù)庫18中,邏輯層10將對(duì)象寫入到的當(dāng)前位置與被寫入的對(duì)象(即,具有對(duì)象標(biāo)識(shí)符72(圖3))關(guān)聯(lián)起來。邏輯層10還分配一個(gè)用來寫對(duì)象到存儲(chǔ)設(shè)備14的緩沖區(qū)22,其大小和設(shè)備塊的大小一樣(塊114)。邏輯層10基于物理層12寫入的物理頭50的長度,確定在緩沖區(qū)22中的偏移,所述長度是在塊104從物理層報(bào)告的長度。然后邏輯層10從確定的偏移開始寫入邏輯頭52,后跟對(duì)象。從偏移開始寫將在緩沖區(qū)22的頂部為物理頭50留出空間(圖2)。
在填充了緩沖區(qū)22后,邏輯層10通知物理層12去處理包含寫入對(duì)象的緩沖區(qū)22。作為響應(yīng),物理層12在緩沖區(qū)22的起始位置寫入物理頭50,其中物理頭50信息不超過在其中寫入邏輯頭52的確定的偏移(塊122)。物理層12將對(duì)象從緩沖區(qū)22傳輸?shù)酱鎯?chǔ)設(shè)備14(塊124)。
在圖4描述的實(shí)施例中,邏輯層10和物理層12共享相同的緩沖區(qū)22,以填充應(yīng)用數(shù)據(jù)(對(duì)象)54和頭50、52,以便物理層12將數(shù)據(jù)直接從共享的緩沖區(qū)22寫入到存儲(chǔ)設(shè)備14。
圖5描述了由邏輯層10和物理層12從存儲(chǔ)設(shè)備14檢索數(shù)據(jù)的實(shí)施例??刂剖菑牟襟E150開始,在這里邏輯層10向物理層12發(fā)出一個(gè)在存儲(chǔ)設(shè)備14中安裝卷的請(qǐng)求。作為響應(yīng),物理層12安裝包含由被請(qǐng)求卷的存儲(chǔ)設(shè)備14,即順序訪問設(shè)備;并向邏輯層返回安裝完成的信息(塊152)。然后邏輯層10請(qǐng)求物理層12從與對(duì)象相關(guān)聯(lián)的物理位置開始讀取,以便從物理位置的第一偏移處讀取,這里第一偏移可以是0或多個(gè)字節(jié)。邏輯層10請(qǐng)求的物理位置可能在物理塊16的中間某個(gè)位置,但它代表對(duì)象的起始位置。如果邏輯層10想要從對(duì)象中的一個(gè)位置開始讀,則第一偏移可能大于0。和將要檢索的對(duì)象相關(guān)的物理位置可包括和保存在對(duì)象數(shù)據(jù)庫18中的對(duì)象的標(biāo)識(shí)符72相關(guān)的物理位置。這樣,當(dāng)寫入邏輯塊時(shí),邏輯層10從物理層12獲得的當(dāng)前位置隨后被展現(xiàn)給物理層12,用來檢索對(duì)象或?qū)ο笾械钠?。這個(gè)請(qǐng)求可進(jìn)一步表明邏輯層為被請(qǐng)求的數(shù)據(jù)所分配的緩沖區(qū)22。
物理層12確定包含有被請(qǐng)求的物理位置和第一偏移的物理塊,并且進(jìn)一步確定定位在確定的物理塊的物理頭之后確定的物理塊的第二偏移。物理層12發(fā)出一個(gè)命令,使得將物理塊16傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的緩沖區(qū)22。被傳輸?shù)奈锢韷K16可包含除被請(qǐng)求的對(duì)象外的數(shù)據(jù),如另外的對(duì)象或僅是被請(qǐng)求對(duì)象的一部分(塊156)。物理層12還向邏輯層提供第二偏移(塊158)。邏輯層10利用第二偏移在緩沖區(qū)中從此第二偏移開始訪問對(duì)象(塊160)。在第二偏移訪問的對(duì)象可包括邏輯頭52和應(yīng)用數(shù)據(jù)54(圖2)。如果整個(gè)被請(qǐng)求的對(duì)象都在緩沖區(qū)22中,則控制結(jié)束(塊162)。否則,如果不是整個(gè)被請(qǐng)求的對(duì)象在緩沖區(qū)22中,則邏輯層10請(qǐng)求下一物理塊16(塊164)。這個(gè)請(qǐng)求可包括其中物理層將傳輸被請(qǐng)求的數(shù)據(jù)的下一緩沖區(qū)22。在這種實(shí)施例中,在邏輯層10在一個(gè)緩沖區(qū)22中讀取被請(qǐng)求對(duì)象的一部分?jǐn)?shù)據(jù)時(shí),可將對(duì)象的下一部分讀入下一緩沖區(qū)22中。
在一個(gè)實(shí)施例中,如果邏輯層10從一個(gè)物理位置的開始和偏移(第一偏移)請(qǐng)求若干字節(jié),則物理層12可確定對(duì)象的開始以及被請(qǐng)求的對(duì)象是否跨入了下一物理塊,例如,被請(qǐng)求對(duì)象的長度加上從物理位置的偏移的和沒有超過緩沖區(qū)的末尾,則所有被請(qǐng)求的對(duì)象都在當(dāng)前緩沖區(qū)中。如果對(duì)象跨入了下一個(gè)物理緩沖區(qū),則物理層12訪問下一個(gè)物理層,并將檢索數(shù)據(jù)的偏移通知邏輯層,以繞過(bypass)物理頭。
作為對(duì)請(qǐng)求的響應(yīng),物理層12確定下一物理塊和物理塊中的下一偏移,其中下一偏移在下一物理塊中物理頭的后面,指向數(shù)據(jù)54(塊168)。下一偏移被提供給邏輯層10(塊170),邏輯層10使用下一偏移,在下一緩沖區(qū)22中從下一偏移開始訪問被請(qǐng)求對(duì)象的剩余部分。
圖6進(jìn)一步描述了一個(gè)由邏輯層10和物理層12從存儲(chǔ)設(shè)備14檢索數(shù)據(jù)的實(shí)施例。邏輯層10請(qǐng)求物理層12在存儲(chǔ)設(shè)備中從下一個(gè)物理位置的偏移處檢索下一個(gè)對(duì)象(塊200)。這個(gè)請(qǐng)求可能是來自于應(yīng)用20的一系列順序訪問請(qǐng)求中的一個(gè)。作為響應(yīng),物理層12查看(review)緩沖區(qū)22中的物理頭50,以確定被請(qǐng)求的下一個(gè)物理位置是否在緩沖區(qū)22中(塊202)。當(dāng)向物理層12請(qǐng)求下一個(gè)對(duì)象/物理位置時(shí),邏輯層10可將一個(gè)指針與請(qǐng)求一起傳回緩沖區(qū)22,所述指針指向上個(gè)對(duì)象被訪問的位置。如果被請(qǐng)求的物理位置不在緩沖區(qū)22中(塊202),控制將進(jìn)入圖5中的步驟156(塊204),以檢索下一塊物理塊,并將它傳輸?shù)骄彌_區(qū)22中。如果被請(qǐng)求的塊已經(jīng)在緩沖區(qū)22中(塊202),則物理層22向邏輯層10返回在緩沖區(qū)22中被請(qǐng)求的下一塊的下一偏移(塊206)。邏輯層10利用所述下一偏移,在緩沖區(qū)中從所述下一偏移開始訪問對(duì)象(即,邏輯頭52和應(yīng)用數(shù)據(jù)54)(塊208)。在圖6所示的操作中,如果被請(qǐng)求的邏輯塊的全部或部分已經(jīng)在緩沖區(qū)22中,則可將數(shù)據(jù)返回到邏輯層10,而不必從存儲(chǔ)設(shè)備14傳輸數(shù)據(jù)。
在另外的實(shí)施例中,某些頭可能不被寫入。例如,如果數(shù)據(jù)是從磁盤存儲(chǔ)設(shè)備傳到順序訪問設(shè)備(如磁帶),可以在帶有空的物理頭50的情況下將數(shù)據(jù)寫入磁盤,所述物理頭50的長度等于磁帶設(shè)備物理頭50。當(dāng)數(shù)據(jù)從磁盤傳向磁帶時(shí),這將給順序訪問設(shè)備(磁帶)的物理層添加物理頭50留有余地。此外,如果數(shù)據(jù)是在不同種類的設(shè)備之間進(jìn)行傳輸,包括不同的磁帶設(shè)備,邏輯層10可以總是保留物理頭50,使得每個(gè)塊的創(chuàng)建都有足夠的長度,以適應(yīng)在設(shè)備中使用的最大物理頭50。用存儲(chǔ)在磁盤中的數(shù)據(jù)為物理頭保留空間將允許在不同種類的存儲(chǔ)設(shè)備之間進(jìn)行直接的I/O傳輸。每個(gè)受到支持的設(shè)備可以有單獨(dú)的物理層。
在所描述的實(shí)施例中,邏輯層10和物理層12共享緩沖區(qū),從這同一個(gè)緩沖區(qū)中訪問數(shù)據(jù),向這同一緩沖區(qū)中寫入頭信息,并彼此傳遞到緩沖區(qū)的指針以傳輸數(shù)據(jù)。
附加實(shí)施例描述可以使用標(biāo)準(zhǔn)的編程和/或工程技術(shù),將所描述的操作實(shí)現(xiàn)為方法、設(shè)備或制造產(chǎn)品,以制造軟件、固件、硬件或它們的組合。這里所說的“制造產(chǎn)品”是指在硬件邏輯中實(shí)現(xiàn)的代碼或邏輯(例如,一個(gè)集成電路芯片,可編程門陣列(PGA),專用集成電路(ASIC)等)或計(jì)算機(jī)可讀介質(zhì),例如磁存儲(chǔ)器介質(zhì)(例如,硬盤驅(qū)動(dòng)器,軟盤,磁帶等),光存儲(chǔ)器(CD-ROM,光盤等),易失性和非易失性存儲(chǔ)器(例如,EEPROM,ROM,PROM,RAM,DRAM,SRAM,固件,可編程邏輯等)。在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的代碼是由處理器訪問并執(zhí)行的。在其中實(shí)現(xiàn)優(yōu)選實(shí)施例的代碼還可以通過傳輸介質(zhì)或經(jīng)由網(wǎng)絡(luò)從文件服務(wù)器訪問。在這些例子中,用來實(shí)現(xiàn)代碼的制造產(chǎn)品可包括傳輸介質(zhì)(如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、通過空間傳播的信號(hào)、無線電波、紅外信號(hào)等)。因此,“制造產(chǎn)品”可包含在其中實(shí)現(xiàn)代碼的介質(zhì)。另外,“制造產(chǎn)品”可包括在其中實(shí)現(xiàn)、處理和執(zhí)行代碼的硬件和軟件的組合。當(dāng)然,本領(lǐng)域技術(shù)人員能夠理解,可以在不偏離本發(fā)明范圍的前提下對(duì)這些組合配置進(jìn)行修改,并且所述制造產(chǎn)品可以包括本領(lǐng)域中已知的任何信息承載介質(zhì)。
在一個(gè)實(shí)施例中,邏輯層相對(duì)于存儲(chǔ)設(shè)備14傳輸對(duì)象。在另外的實(shí)施例中,可以將數(shù)據(jù)單元或除對(duì)象外的其他結(jié)構(gòu)作為傳輸操作的主體。
在圖4-6顯示按特定的順序續(xù)執(zhí)行的特定事件。在另外的實(shí)施例中,特定的操作可能按不同的順序執(zhí)行、被修改或被刪除。此外,可以在以上描述的邏輯中添加步驟而仍然遵從所描述的實(shí)施例。此外,在這里描述的操作可以按順序發(fā)生,或者某些操作可以并行執(zhí)行。而且,可以由單個(gè)處理單元或分布式處理單元執(zhí)行所述操作。
在前面的描述中,出于例示和描述本發(fā)明的目的講述了本發(fā)明的不同的實(shí)施例。其意圖并非窮舉的或?qū)⒈景l(fā)明限制為公開的精確形式。在上述教導(dǎo)下,可以對(duì)本發(fā)明作多種修改和變化。本發(fā)明的范圍不受這里的詳細(xì)描述的限制,而是由附屬的權(quán)利要求來限定。前述說明書、例子和數(shù)據(jù)為制造和使用本發(fā)明提供了詳細(xì)的說明。由于可以在不背離本發(fā)明的精神和范圍的前提下,對(duì)本發(fā)明的實(shí)施例進(jìn)行多種變形,因此本發(fā)明僅由隨附的權(quán)利要求所限定。
權(quán)利要求
1.一種方法,包括由邏輯層分配一緩沖區(qū),用來將數(shù)據(jù)寫入到存儲(chǔ)設(shè)備中,其中物理層管理對(duì)存儲(chǔ)設(shè)備的訪問;由邏輯層基于由物理層寫入的物理頭的長度確定在緩沖區(qū)中的偏移;由邏輯層從確定的偏移開始將數(shù)據(jù)寫入緩沖區(qū);由物理層寫入物理頭信息,其中物理頭信息不超過緩沖區(qū)中的偏移;以及由物理層將內(nèi)容從緩沖區(qū)傳輸?shù)酱鎯?chǔ)設(shè)備。
2.權(quán)利要求1中的方法,包括由邏輯層從物理層接收信息,表明物理頭長度和存儲(chǔ)設(shè)備的塊大小,其中被分配的緩沖區(qū)的大小是存儲(chǔ)設(shè)備的塊大小,并且其中偏移基于從物理層接收的物理頭長度信息。
3.權(quán)利要求1中的方法,其中物理層從緩沖區(qū)的起始處寫入物理頭信息。
4.權(quán)利要求1中的方法,其中由邏輯層從偏移開始寫入的數(shù)據(jù)包括邏輯頭和跟在后面的應(yīng)用數(shù)據(jù)。
5.權(quán)利要求1中的方法,其中要寫入到存儲(chǔ)設(shè)備的數(shù)據(jù)包括對(duì)象,其中存儲(chǔ)設(shè)備包括順序訪問設(shè)備,進(jìn)一步包括由邏輯層從物理層請(qǐng)求向其寫入對(duì)象的順序訪問設(shè)備中的當(dāng)前位置;由邏輯層將所請(qǐng)求的順序訪問設(shè)備的當(dāng)前位置與將要寫入的對(duì)象關(guān)聯(lián)起來;當(dāng)隨后從物理層請(qǐng)求對(duì)象時(shí),由邏輯層使用與寫入的對(duì)象相關(guān)聯(lián)的當(dāng)前位置。
6.權(quán)利要求1中的方法,其中存儲(chǔ)設(shè)備能夠包括硬盤驅(qū)動(dòng)器和順序訪問設(shè)備,其中如果存儲(chǔ)設(shè)備包括順序訪問設(shè)備,則物理層寫入物理頭信息,如果存儲(chǔ)設(shè)備包括隨機(jī)訪問設(shè)備,則物理層不向緩沖區(qū)寫入物理頭信息。
7.一種方法,包括由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中一物理位置開始的第一偏移處檢索數(shù)據(jù)塊,其中第一偏移可包括0或多個(gè)字節(jié);由物理層確定包括從物理位置開始的所請(qǐng)求的第一偏移的物理塊;由物理層確定在確定的物理塊中的第二偏移,其指向在從物理位置開始的第一偏移處的數(shù)據(jù)塊的起始處;由物理層將物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的緩沖區(qū);由物理層將第二偏移提供給邏輯層;以及由邏輯層使用第二偏移在緩沖區(qū)中從第二偏移訪問數(shù)據(jù)塊。
8.權(quán)利要求7中的方法,其中每個(gè)物理塊包括一物理頭,進(jìn)一步包括響應(yīng)于確定緩沖區(qū)中不包括所有要檢索的數(shù)據(jù)塊,由邏輯層請(qǐng)求下一物理塊;由物理層確定下一物理塊和在物理塊中的下一偏移,其中下一偏移跟在下一物理塊中的物理頭之后;由物理層將下一物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的下一緩沖區(qū);由物理層將下一偏移提供給邏輯層;以及由邏輯層使用所述下一偏移,以在下一緩沖區(qū)中從下一偏移開始訪問所請(qǐng)求數(shù)據(jù)塊的剩余部分。
9.權(quán)利要求7中的方法,其中存儲(chǔ)設(shè)備包括磁帶設(shè)備,進(jìn)一步包括由邏輯層為每個(gè)寫入到磁帶設(shè)備的對(duì)象保持在磁帶設(shè)備中的當(dāng)前位置,其中所請(qǐng)求的物理位置包括用于要檢索對(duì)象的所保持的當(dāng)前位置,并且第二偏移繞過由物理層寫入的當(dāng)前位置處的物理頭。
10.權(quán)利要求7中的方法,其中存儲(chǔ)在存儲(chǔ)設(shè)備中的每個(gè)數(shù)據(jù)塊均包括由物理層添加的物理頭,后跟由邏輯層添加的邏輯頭,其中第二偏移指向要在傳輸給緩沖區(qū)的物理塊中檢索的數(shù)據(jù)塊的邏輯頭。
11.權(quán)利要求7中的方法,其中傳輸?shù)骄彌_區(qū)的物理塊包括多個(gè)對(duì)象,進(jìn)一步包括由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中下一物理位置開始檢索下一對(duì)象;由物理層查看緩沖區(qū)中塊的物理頭,以確定所請(qǐng)求的下一物理位置處的下一對(duì)象是否在緩沖區(qū)中;響應(yīng)于確定所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中,由物理層向邏輯層返回緩沖區(qū)中所請(qǐng)求的下一數(shù)據(jù)塊的第三偏移,其中所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中對(duì)邏輯層可用,而無需從存儲(chǔ)設(shè)備傳輸數(shù)據(jù)。
12.一個(gè)系統(tǒng),包括存儲(chǔ)設(shè)備;具有可由處理器訪問的緩沖區(qū)的存儲(chǔ)器;計(jì)算機(jī)可讀介質(zhì),包含用來實(shí)施邏輯層和物理層的代碼,其中由處理器執(zhí)行代碼來實(shí)現(xiàn)如下操作(i)由邏輯層分配存儲(chǔ)器中的一緩沖區(qū),用來將數(shù)據(jù)寫入到存儲(chǔ)設(shè)備中,其中物理層管理對(duì)存儲(chǔ)設(shè)備的訪問;(ii)由邏輯層基于由物理層寫入的物理頭的長度確定在緩沖區(qū)中的偏移;(iii)由邏輯層從確定的偏移開始將數(shù)據(jù)寫入緩沖區(qū);(iv)由物理層寫入物理頭信息,其中物理頭信息不超過緩沖區(qū)中的偏移;以及由物理層將內(nèi)容從緩沖區(qū)傳輸?shù)酱鎯?chǔ)設(shè)備。
13.權(quán)利要求12中的系統(tǒng),其中操作進(jìn)一步包括由邏輯層從物理層接收信息,表明物理頭長度和存儲(chǔ)設(shè)備的塊大小,其中被分配的緩沖區(qū)的大小是存儲(chǔ)設(shè)備的塊大小,并且其中偏移基于從物理層接收的物理頭長度信息。
14.權(quán)利要求12中的系統(tǒng),其中物理層從緩沖區(qū)的起始處寫入物理頭信息。
15.權(quán)利要求12中的系統(tǒng),其中由邏輯層從偏移開始寫入的數(shù)據(jù)包括邏輯頭和跟在后面的應(yīng)用數(shù)據(jù)。
16.權(quán)利要求12中的系統(tǒng),其中要寫入到存儲(chǔ)設(shè)備的數(shù)據(jù)包括對(duì)象,其中存儲(chǔ)設(shè)備包括順序訪問設(shè)備,其中操作進(jìn)一步包括由邏輯層從物理層請(qǐng)求向其寫入對(duì)象的順序訪問設(shè)備中的當(dāng)前位置;由邏輯層將所請(qǐng)求的順序訪問設(shè)備的當(dāng)前位置與將要寫入的對(duì)象關(guān)聯(lián)起來;當(dāng)隨后從物理層請(qǐng)求對(duì)象時(shí),由邏輯層使用與寫入的對(duì)象相關(guān)聯(lián)的當(dāng)前位置。
17.權(quán)利要求12中的方法,其中存儲(chǔ)設(shè)備能夠包括硬盤驅(qū)動(dòng)器和順序訪問設(shè)備,其中如果存儲(chǔ)設(shè)備包括順序訪問設(shè)備,則物理層寫入物理頭信息,如果存儲(chǔ)設(shè)備包括隨機(jī)訪問設(shè)備,則物理層不向緩沖區(qū)寫入物理頭信息。
18.一個(gè)系統(tǒng),包括存儲(chǔ)設(shè)備;具有可由處理器訪問的緩沖區(qū)的存儲(chǔ)器;計(jì)算機(jī)可讀介質(zhì),包含用來實(shí)施邏輯層和物理層的代碼,其中由處理器執(zhí)行代碼來實(shí)現(xiàn)如下操作(i)由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中一物理位置開始的第一偏移處檢索數(shù)據(jù)塊,其中第一偏移可包括0或多個(gè)字節(jié);(ii)由物理層確定包括從物理位置開始的所請(qǐng)求的第一偏移的物理塊;(iii)由物理層確定在確定的物理塊中的第二偏移,其指向在從物理位置開始的第一偏移處的數(shù)據(jù)塊的起始處;(iv)由物理層將物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的緩沖區(qū);(v)由物理層將第二偏移提供給邏輯層;以及(vi)由邏輯層使用第二偏移在緩沖區(qū)中從第二偏移訪問數(shù)據(jù)塊。
19.權(quán)利要求18中的系統(tǒng),其中每個(gè)物理塊包括一物理頭,其中操作進(jìn)一步包括響應(yīng)于確定緩沖區(qū)中不包括所有要檢索的數(shù)據(jù)塊,由邏輯層請(qǐng)求下一物理塊;由物理層確定下一物理塊和在物理塊中的下一偏移,其中下一偏移跟在下一物理塊中的物理頭之后;由物理層將下一物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的下一緩沖區(qū);由物理層將下一偏移提供給邏輯層;以及由邏輯層使用所述下一偏移,在下一緩沖區(qū)中從下一偏移開始訪問所請(qǐng)求數(shù)據(jù)塊的剩余部分。
20.權(quán)利要求18中的系統(tǒng),其中存儲(chǔ)設(shè)備包括磁帶設(shè)備,其中操作進(jìn)一步包括由邏輯層為每個(gè)寫入到磁帶設(shè)備的對(duì)象保持在磁帶設(shè)備中的當(dāng)前位置,其中所請(qǐng)求的物理位置包括用于要檢索對(duì)象的所保持的當(dāng)前位置,并且第二偏移繞過由物理層寫入的當(dāng)前位置處的物理頭。
21.權(quán)利要求18中的系統(tǒng),其中存儲(chǔ)在存儲(chǔ)設(shè)備中的每個(gè)數(shù)據(jù)塊均包括由物理層添加的物理頭,后跟由邏輯層添加的邏輯頭,其中第二偏移指向要在傳輸給緩沖區(qū)的物理塊中檢索的數(shù)據(jù)塊的邏輯頭。
22.權(quán)利要求18中的系統(tǒng),其中傳輸?shù)骄彌_區(qū)的物理塊包括多個(gè)對(duì)象,其中操作進(jìn)一步包括由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中下一物理位置開始檢索下一對(duì)象;由物理層查看緩沖區(qū)中塊的物理頭,以確定所請(qǐng)求的下一物理位置處的下一對(duì)象是否在緩沖區(qū)中;響應(yīng)于確定所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中,由物理層向邏輯層返回緩沖區(qū)中所請(qǐng)求的下一數(shù)據(jù)塊的第三偏移,其中所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中對(duì)邏輯層可用,而無需從存儲(chǔ)設(shè)備傳輸數(shù)據(jù)。
23.制造產(chǎn)品,包括用來實(shí)現(xiàn)邏輯層和物理層以便與存儲(chǔ)設(shè)備通信的代碼,其中所述代碼能夠使得執(zhí)行如下操作由邏輯層分配一緩沖區(qū),用來將數(shù)據(jù)寫入到存儲(chǔ)設(shè)備中,其中物理層管理對(duì)存儲(chǔ)設(shè)備的訪問;由邏輯層基于由物理層寫入的物理頭的長度確定在緩沖區(qū)中的偏移;由邏輯層從確定的偏移開始將數(shù)據(jù)寫入緩沖區(qū);由物理層寫入物理頭信息,其中物理頭信息不超過緩沖區(qū)中的偏移;以及由物理層將內(nèi)容從緩沖區(qū)傳輸?shù)酱鎯?chǔ)設(shè)備。
24.權(quán)利要求23中的制造產(chǎn)品,由邏輯層從物理層接收信息,表明物理頭長度和存儲(chǔ)設(shè)備的塊大小,其中被分配的緩沖區(qū)的大小是存儲(chǔ)設(shè)備的塊大小,并且其中偏移基于從物理層接收的物理頭長度信息。
25.權(quán)利要求23中的制造產(chǎn)品,其中物理層從緩沖區(qū)的起始處寫入物理頭信息。
26.權(quán)利要求23中的制造產(chǎn)品,其中由邏輯層從偏移開始寫入的數(shù)據(jù)包括邏輯頭和跟在后面的應(yīng)用數(shù)據(jù)。
27.權(quán)利要求23中的制造產(chǎn)品,其中要寫入到存儲(chǔ)設(shè)備的數(shù)據(jù)包括對(duì)象,其中存儲(chǔ)設(shè)備包括順序訪問設(shè)備,進(jìn)一步包括由邏輯層從物理層請(qǐng)求向其寫入對(duì)象的順序訪問設(shè)備中的當(dāng)前位置;由邏輯層將所請(qǐng)求的順序訪問設(shè)備的當(dāng)前位置與將要寫入的對(duì)象關(guān)聯(lián)起來;當(dāng)隨后從物理層請(qǐng)求對(duì)象時(shí),由邏輯層使用與寫入的對(duì)象相關(guān)聯(lián)的當(dāng)前位置。
28.權(quán)利要求23中的制造產(chǎn)品,其中存儲(chǔ)設(shè)備能夠包括硬盤驅(qū)動(dòng)器和順序訪問設(shè)備,其中如果存儲(chǔ)設(shè)備包括順序訪問設(shè)備,則物理層寫入物理頭信息,如果存儲(chǔ)設(shè)備包括隨機(jī)訪問設(shè)備,則物理層不向緩沖區(qū)寫入物理頭信息。
29.制造產(chǎn)品,包括用來實(shí)現(xiàn)邏輯層和物理層以便與存儲(chǔ)設(shè)備通信的代碼,其中所述代碼能夠使得執(zhí)行如下操作由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中一物理位置開始的第一偏移處檢索數(shù)據(jù)塊,其中第一偏移可包括0或多個(gè)字節(jié);由物理層確定包括從物理位置開始的所請(qǐng)求的第一偏移的物理塊;由物理層確定在確定的物理塊中的第二偏移,其指向在從物理位置開始的第一偏移處的數(shù)據(jù)塊的起始處;由物理層將物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的緩沖區(qū);由物理層將第二偏移提供給邏輯層;以及由邏輯層使用第二偏移在緩沖區(qū)中從第二偏移訪問數(shù)據(jù)塊。
30.權(quán)利要求29中的制造產(chǎn)品,其中每個(gè)物理塊包括一物理頭,進(jìn)一步包括響應(yīng)于確定緩沖區(qū)中不包括所有要檢索的數(shù)據(jù)塊,由邏輯層請(qǐng)求下一物理塊;由物理層確定下一物理塊和在物理塊中的下一偏移,其中下一偏移跟在下一物理塊中的物理頭之后;由物理層將下一物理塊傳輸?shù)轿锢韺雍瓦壿媽泳稍L問的下一緩沖區(qū);由物理層將下一偏移提供給邏輯層;以及由邏輯層使用所述下一偏移,在下一緩沖區(qū)中從下一偏移開始訪問所請(qǐng)求數(shù)據(jù)塊的剩余部分。
31.權(quán)利要求29中的制造產(chǎn)品,其中存儲(chǔ)設(shè)備包括磁帶設(shè)備,進(jìn)一步包括由邏輯層為每個(gè)寫入到磁帶設(shè)備的對(duì)象保持在磁帶設(shè)備中的當(dāng)前位置,其中所請(qǐng)求的物理位置包括用于要檢索對(duì)象的所保持的當(dāng)前位置,并且第二偏移繞過由物理層寫入的當(dāng)前位置處的物理頭。
32.權(quán)利要求29中的制造產(chǎn)品,其中存儲(chǔ)在存儲(chǔ)設(shè)備中的每個(gè)數(shù)據(jù)塊均包括由物理層添加的物理頭,后跟由邏輯層添加的邏輯頭,其中第二偏移指向要在傳輸給緩沖區(qū)的物理塊中檢索的數(shù)據(jù)塊的邏輯頭。
33.權(quán)利要求29中的制造產(chǎn)品,其中傳輸?shù)骄彌_區(qū)的物理塊包括多個(gè)對(duì)象,其中操作進(jìn)一步包括由邏輯層請(qǐng)求物理層從存儲(chǔ)設(shè)備中下一物理位置開始檢索下一對(duì)象;由物理層查看緩沖區(qū)中塊的物理頭,以確定所請(qǐng)求的下一物理位置處的下一對(duì)象是否在緩沖區(qū)中;以及響應(yīng)于確定所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中,由物理層向邏輯層返回緩沖區(qū)中所請(qǐng)求的下一數(shù)據(jù)塊的第三偏移,其中所請(qǐng)求的下一數(shù)據(jù)塊在緩沖區(qū)中對(duì)邏輯層可用,而無需從存儲(chǔ)設(shè)備傳輸數(shù)據(jù)。
全文摘要
本發(fā)明提供了在邏輯層、物理層和存儲(chǔ)設(shè)備之間傳輸數(shù)據(jù)的方法、系統(tǒng)和過程。邏輯層分配了一個(gè)用來寫數(shù)據(jù)到存儲(chǔ)設(shè)備的緩沖區(qū),物理層管理對(duì)存儲(chǔ)設(shè)備的訪問。邏輯層基于由物理層寫入的物理頭的長度確定在緩沖區(qū)中的偏移,并且從確定的偏移開始將輸入寫入緩沖區(qū)。物理層寫入物理頭信息,其中物理頭信息不超過緩沖區(qū)中的偏移。物理層將內(nèi)容從緩沖區(qū)傳輸?shù)酱鎯?chǔ)設(shè)備。
文檔編號(hào)G06F12/00GK1786893SQ200510099009
公開日2006年6月14日 申請(qǐng)日期2005年8月31日 優(yōu)先權(quán)日2004年12月10日
發(fā)明者馬修·約瑟夫·安格林, 凱·A.·G.·艾舍, 戴維·麥克斯韋·坎農(nóng), 埃里克·克里斯蒂安·克賽爾 申請(qǐng)人:國際商業(yè)機(jī)器公司