欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于在主存儲器和存儲裝置之間傳送數(shù)據(jù)的方法和設備的制作方法

文檔序號:6484978閱讀:262來源:國知局
專利名稱:用于在主存儲器和存儲裝置之間傳送數(shù)據(jù)的方法和設備的制作方法
技術領域
本發(fā)明涉及一種用于在主存儲器和存儲裝置之間傳送數(shù)據(jù)的方法和相應的設備。
典型情況下,存儲裝置是可以讀取并寫入數(shù)據(jù)塊的任何存儲裝置。這種存儲裝置通常是基于塊或扇區(qū)的,即是當只需要塊、扇區(qū)等的一部分時,仍然必須完全地讀取所述塊、扇區(qū),并且當只有塊、扇區(qū)等的一部分被更新/寫入時,其必須首先被完全地讀取,然后被修改并最后完全地寫入。
在大部分基于計算機的系統(tǒng)中,數(shù)據(jù)緩沖器的存儲器可能是“分散的”而不是連續(xù)的。即,緩沖器的不同“片段”在物理上可以位于不同的存儲單元。當例如把“分散”的緩沖器數(shù)據(jù)從主計算機的主存儲器傳送到輔助存儲裝置時,有必要“集中”所述緩沖器的不同片段,以便可以優(yōu)選地以更連續(xù)的方式來把它們傳送到輔助存儲裝置。為此通常已知使用稱作分散集中式列表(Scatter-Gather ListSGL)的數(shù)據(jù)結構。分散集中式列表的每個元素指向或引用不同的緩沖器片段,并且所述列表高效地將所述片段“集中”在一起,以便用于所要求的傳送。然后諸如直接存取存儲器(DMA)之類的存儲器控制器按照在分散集中式列表的每個連續(xù)元素中所規(guī)定的來執(zhí)行所述傳送。
在傳統(tǒng)的文件/存儲系統(tǒng)中,緩沖存儲器典型情況下可用于在沒有扇區(qū)對準約束的情況下,允許訪問在所述文件/存儲系統(tǒng)中所存儲的數(shù)據(jù)。然而,傳統(tǒng)的文件/存儲系統(tǒng)典型情況下不允許存儲分散的數(shù)據(jù)。一個例外是UNIX之類的文件系統(tǒng)上的‘vwrite’和‘vread’命令。
由于性能原因,實時文件/存儲系統(tǒng)(RTFS)通常沒有高速緩沖存儲器,并且任何扇區(qū)未對準的寫入通常被實現(xiàn)為整個扇區(qū)的讀取-修改-寫入過程。扇區(qū)對準的事實在于你只能向或從存儲裝置讀取或?qū)懭胝麄€扇區(qū)而不是分別的每個字節(jié)。如所提及,SGL典型情況下用于描述分散于主存儲器空間的數(shù)據(jù)單元,例如結合由具有DMA能力的裝置向或從磁盤或主存儲單元進行數(shù)據(jù)傳送。
在一個RTFS中,部分塊/扇區(qū)寫入在典型情況下由對數(shù)據(jù)持久性的要求而產(chǎn)生,例如時間限制和/或在電源故障期間所丟失數(shù)據(jù)量的限制。結合數(shù)據(jù)流并且特別是非常稀少的數(shù)據(jù)流,例如CPI(特征點信息)或其它種類的元數(shù)據(jù),這可以導致部分塊更新。部分寫入的另一個源可以源自把數(shù)據(jù)添加到現(xiàn)有數(shù)據(jù),所述現(xiàn)有數(shù)據(jù)例如記錄在基于磁盤儲存裝置的個人錄像機(PVR)應用中。部分讀取例如在使用PVR應用的特技播放方案中非常通用。數(shù)據(jù)流在典型情況下是連續(xù)的數(shù)據(jù)流動。一旦開始,不需要來自中間件的控制。數(shù)據(jù)傳送將由使用它的組件來調(diào)整。通常存在一種用于在流中的源和匯點之間提供‘橡皮條技術(robber banding)’的緩沖器機制。緩沖器的處理是在使用數(shù)據(jù)流的組件之間的主要接口。
先前已知的進行部分扇區(qū)更新的方式是執(zhí)行用于讀取完整塊的命令,并且在已經(jīng)讀取了整個塊之前一直等待。
然后利用新數(shù)據(jù)來修改/組合所讀取的數(shù)據(jù),并且最后執(zhí)行用于寫入所更新塊的命令。這三個步驟通常是同一上下文,即線程、進程、任務等的一部分,借此由于所要求的上下文切換使CPU利用率低效,并且使存儲裝置利用率低效。與CPU相比較磁盤I/O較為緩慢,借此典型情況下CPU將在處理下一步驟之前等待磁盤完成每個步驟。在此等待狀態(tài)中等待的CPU可以由另一線程、進程、任務等中斷,借此導致上下文切換。此外,如果在CPU中只有單個線程、進程、任務等可用,那么CPU對較慢磁盤I/O的等待可以很好地限制每秒鐘扇區(qū)寫入的數(shù)目。由于相同塊的讀取和寫入命令在裝置看來是原子的,借此所述裝置的吞吐量受低效CPU利用率的影響,或者所述讀取和寫入命令并不是原子的,借此可以插入其它磁盤請求,上述這兩個原因都會導致低效的存儲裝置利用率。在它們不是原子時,往返于此相同的磁盤塊單元會導致額外的定位開銷。
有時對吞吐量的影響還取決于等待時間,其中較大的等待時間導致對吞吐量的較大影響。較大的等待時間存在于聯(lián)網(wǎng)的存儲裝置中,例如經(jīng)由IEEE 1394的SBP-2或基于以太網(wǎng)的網(wǎng)絡。
本發(fā)明的目的是提供一種解決上述問題的數(shù)據(jù)傳送方法(及相應的設備)。進一步的目的是依照簡單且高效的方式來提供這些。另一目的是能夠從/向存儲裝置的磁盤讀取/寫入分散的數(shù)據(jù)。又一目的是向傳統(tǒng)的ATA(先進技術附件)/IDE(集成驅(qū)動電子電路)讀取和/或?qū)懭朊钐峁﹤溥x接口。
這是由一種用于表示在存儲系統(tǒng)中的主存儲器和存儲裝置之間數(shù)據(jù)傳送的方法(和相應的設備)來實現(xiàn)的,所述存儲系統(tǒng)包括第一分散集中式列表數(shù)據(jù)結構,被配置成包括引用磁盤單元的零個或多個分散集中式列表元素,所述磁盤單元是所要傳送數(shù)據(jù)的源或目的地,第二分散集中式列表數(shù)據(jù)結構,被配置成包括引用主存儲器一部分的零個或多個分散集中式列表元素,所述主存儲器的一部分是所要傳送數(shù)據(jù)的源或目的地,和用于第一分散集中式列表數(shù)據(jù)結構的每個分散集中式列表元素或第二分散集中式列表數(shù)據(jù)結構的每個分散集中式列表元素的方向指示符,其中所述方向指示符用于指定磁盤單元是源而主存儲器的一部分是目的地,還是磁盤單元是目的地而主存儲器的一部分是源,所述方法包括產(chǎn)生第一分散集中式列表數(shù)據(jù)結構和第二分散集中式列表數(shù)據(jù)結構的步驟。
采用這種方法,提供了一種用于處理讀取/寫入操作的簡單且高效的方法。特別是對于實時存儲系統(tǒng)。此外,由于在SGL之間只拷貝數(shù)據(jù)的引用,即元組,所以在CPU處理期間并不移動實際數(shù)據(jù),這大大地降低了存儲和帶寬要求。
在從屬權利要求中定義了依照本發(fā)明方法的有益實施例,本發(fā)明還涉及一種對應于依照本發(fā)明方法的設備。
更具體的是,本發(fā)明涉及一種用于表示在存儲系統(tǒng)中的主存儲器和存儲裝置之間數(shù)據(jù)傳送的設備,所述存儲系統(tǒng)包括第一分散集中式列表數(shù)據(jù)結構,被配置成包括引用磁盤單元的零個或多個分散集中式列表元素,所述磁盤單元是所要傳送數(shù)據(jù)的源或目的地,第二分散集中式列表數(shù)據(jù)結構,被配置成包括引用主存儲器一部分的零個或多個分散集中式列表元素,所述主存儲器的一部分是所要傳送數(shù)據(jù)的源或目的地,和用于第一分散集中式列表數(shù)據(jù)結構的每個分散集中式列表元素或第二分散集中式列表數(shù)據(jù)結構的每個分散集中式列表元素的方向指示符,其中所述方向指示符用于指定磁盤單元是源而主存儲器的一部分是目的地,還是磁盤單元是目的地而主存儲器的一部分是源。
在從屬權利要求中定義了依照本發(fā)明設備的有益實施例。
此外,本發(fā)明還涉及其上存儲有指令的計算機可讀介質(zhì),所述指令用于使一個或多個處理單元執(zhí)行依照本發(fā)明的方法。
在下面,第一分散集中式列表數(shù)據(jù)結構被表示為磁盤輸入SGL(201)/SGL1,第二分散集中式列表數(shù)據(jù)結構被表示為存儲器輸入SGL(202)/SGL2,第三分散集中式列表數(shù)據(jù)結構被表示為輸出存儲器SGL(230)/SGL7,第四分散集中式列表數(shù)據(jù)結構被表示為輸出磁盤SGL(231)/SGL8,第五分散集中式列表數(shù)據(jù)結構被表示為磁盤輸入SGL(208)/SGL5,第六分散集中式列表數(shù)據(jù)結構被表示為存儲器輸入SGL(209)/SGL6,第七分散集中式列表數(shù)據(jù)結構被表示為磁盤輸出SGL(232)/SGL4,第八分散集中式列表數(shù)據(jù)結構被表示為存儲器輸出SGL(233)/SGL3。


圖1示意地舉例說明了分散集中式列表(SGL);圖2依照本發(fā)明舉例說明了SGL被用作傳送的一部分;圖3a和3b依照本發(fā)明結合部分塊讀取/寫入舉例說明了SGL被用作傳送的一部分;圖3a舉例說明了在已經(jīng)執(zhí)行依照本發(fā)明的扇區(qū)對準之前的SGL;圖3b舉例說明了在已經(jīng)執(zhí)行依照本發(fā)明的扇區(qū)對準之后的SGL;圖4示意地舉例說明了依照本發(fā)明實施例的接口層;圖5示意地舉例說明了依照本發(fā)明實施例設備的一個例子。
圖1示意地舉例說明了分散集中式列表(SGL)。SGL(101)用來描述如箭頭(102)所表明的數(shù)據(jù)的邏輯序列。數(shù)據(jù)序列可以分散于主存儲器(103),或依照本發(fā)明,分散于存儲裝置的磁盤(103)。由SGL(101)所描述的數(shù)據(jù)可以位于不同或相同大小的數(shù)據(jù)區(qū)域。存儲器/磁盤地址次序由箭頭(104)表明。
在此圖中的特定SGL示例(101)具有固定數(shù)目的分散集中式單元(105,105’),被指定為‘A’、‘B’、‘C’、‘D’和‘E’,并且描述了依照該特定次序存儲在存儲器/磁盤單元(103)Mem3、Mem2、Mem4和Mem1中數(shù)據(jù)的邏輯序列。SGL示例(101)并未被完全填充,因為可以添加一個附加的連續(xù)數(shù)據(jù)區(qū)域,即在SG單元‘E’(105’)中。注意,邏輯數(shù)據(jù)(‘A’,‘B’,‘C’,‘D’)的次序(102)不必與存儲器/磁盤地址次序(104)相同。此外注意,所示出的單元‘A’到‘E’在SGL(101)內(nèi)。
依照本發(fā)明,SGL被實現(xiàn)為包括SG單元(105;105’)的FIFO(先進先出)隊列,其中每個單元是連續(xù)的存儲器段并且具有存儲器/磁盤單元開始地址的引用(例如通過使用指針,地址偏移等),并且指定在特定存儲器/磁盤單元所存儲的數(shù)據(jù)大小或長度等,所述存儲器/磁盤單元通常按照字節(jié)表示。SG單元是簡單的元組(a,1),其中‘a(chǎn)’指定開始地址而‘1’指定長度。對于SGL的地址和/或長度沒有對準約束。
存儲器/磁盤單元沒有實際數(shù)據(jù)被存儲在SGL中或在SGL之間傳送。只有元組被存儲或傳送,這大大降低了存儲和帶寬要求。
簡言之,SGL是用于引用在存儲器中存儲的數(shù)據(jù),或者依照本發(fā)明,引用在磁盤上存儲的數(shù)據(jù)的有效方法,即便所述數(shù)據(jù)是分散/不連續(xù)的。
在下面,小寫字母用于與主存儲器有關的元組,而大寫字母用于與磁盤/存儲器有關的元組,即分別為(ai,li)和(Aj,Lj)。
依照本發(fā)明,必須指定方向指示符(未示出),其用來指定磁盤單元是源以及主存儲器的一部分是目的地,或是相反。優(yōu)選地是,在磁盤的SGL中的每個元組包括方向指示符(未示出),用于指定由特定元組所描述的傳送方向,如下面將要詳細解釋。優(yōu)選地是,由單個位來實現(xiàn)方向指示符。優(yōu)選地是,可以使用64位磁盤地址中的位之一,這是因為所述位未被使用,例如在ATA6中LBA的大小是48位,而扇區(qū)是512字節(jié)。這剩下64-48-9=7位,它們其中之一可以被用作磁盤SGL給定元組的方向指示符。作為選擇,例如對于其它文件控制器(像SCSI等)可以使用另一未用位。作為另一選擇,方向指示符還可以依照另一方式被存儲,例如作為獨立的SGL被存儲在主存儲器SGL等的每個元組中。
圖2依照本發(fā)明舉例說明了SGL被用作傳送的一部分。所示出的是存儲器輸入SGL(202)(對應于圖4中的SGL2)和磁盤輸入SGL(201)(對應于圖4中的SGL1)。存儲器輸入SGL(202)包含元組(a1,11)和(a2,12),并且借此引用(分散)數(shù)據(jù)區(qū)域到(207),以便在具有長度11的地址a1和具有長度12的地址a2的主存儲器(204)中存入數(shù)據(jù)(如果從磁盤讀取),或從中讀取數(shù)據(jù)(如果寫入磁盤)。
磁盤輸入SGL(201)包含元組(A1,L1)并且借此引用存儲裝置(203)的數(shù)據(jù)區(qū)域(206),其中由存儲器輸入SGL(202)所引用的數(shù)據(jù)(207)將被存儲(如果寫入磁盤),或其中數(shù)據(jù)被定位并存儲在由存儲器輸入SGL(202)所引用的數(shù)據(jù)區(qū)域中(如果從磁盤中讀取)。在此例子中磁盤輸入SGL(201)的數(shù)據(jù)是連續(xù)的,但是依照本發(fā)明一方面可以是分散的。依照本發(fā)明,對于在磁盤輸入SGL(201)中存儲的每個元組,磁盤輸入SGL(201)還包括‘方向指示符’(205),即在此例子是一個。優(yōu)選地是,如上所述由單個位來實現(xiàn)此方向指示符(205)。方向指示符(205)指定由磁盤SGL的給定元組所引用的數(shù)據(jù)是否將被從存儲裝置(203)傳送到主存儲器(204),或相反。采用這種方法,只使用每個元組現(xiàn)有的剩余位并且啟用高效的扇區(qū)對準,來獲得傳送方向的簡單且小的指示符,如下面將要解釋。
結合存儲裝置(203)還表明的是扇區(qū)邊界(S.B.)的表示。在此特定的簡單例子中,被用于讀取或?qū)懭?由方向指示符(205)給出)的存儲裝置(203)的數(shù)據(jù)區(qū)域(206)在扇區(qū)邊界開始并結束,即任何部分塊讀取/寫入都是不必要的。
在操作期間,只是簡單地通過排隊磁盤輸入SGL(201)和存儲器輸入SGL(202)的元組并且為磁盤輸入SGL(201)中的每個元組設置方向指示符(205),以便指定哪個是源以及哪個是主存儲器和磁盤的目的地,就可以處理讀取、寫入和修改(其是讀取和寫入的組合)命令。
在存儲器和磁盤SGL中‘足夠’之后,實際傳送(即物理數(shù)據(jù)傳送)可以在存儲控制層和/或像IDE、ATA等接口的控制下異步地進行。SGL(201,202)的元組需要被轉(zhuǎn)換為標準ATA/IDE命令。優(yōu)選地是,‘足夠’取決于至少一個預定準則,例如自從最后的實際傳送以來所逝去的給定時間周期和/或由SGL所表示的數(shù)據(jù)總量的給定大小等。依照本發(fā)明SGL的利用率在一定程度上描述了在主存儲器和存儲裝置的磁盤之間的‘虛擬’傳送,并且當存在‘足夠’數(shù)據(jù)時,進行實際物理傳送。
在此簡單的例子中,用于把主存儲器數(shù)據(jù)區(qū)域(207)的內(nèi)容(由a1,11和a2,12給出)傳送到所指定的存儲裝置的數(shù)據(jù)區(qū)域(206)(起始于A1并且具有長度L1)的傳送命令,即傳統(tǒng)意義上的寫入命令,可能會使兩個元組(a1,11)和(a2,12)被裝入存儲器輸入SGL,使元組(A1,L1)被裝入磁盤輸入SGL,而例如如上所述的,簡單地通過設置(或作為替換,通過清除)位,磁盤輸入SGL的元組(A1,L1)的方向指示符(205)被設置為用于指定方向是從主存儲器到存儲裝置。在此例子中L1等于11+12。
當進行實際傳送時,例如在其它寫入、讀取和/或修改命令已經(jīng)使更多元組添加到SGL之后,主存儲器中數(shù)據(jù)區(qū)域(207)的具體內(nèi)容被存儲在存儲裝置的數(shù)據(jù)區(qū)域(206)中。依照本發(fā)明SGL的固有FIFO結構確保依照正確的次序來處理各種命令。
對于指定從相反方向(即從存儲裝置到主存儲器)來傳送相應內(nèi)容的傳送命令(傳統(tǒng)意義上的讀取命令),只改變元組(A1,L1)的方向指示符(205)的值。相同的元組應當被裝入所述SGL。
簡言之,通過指定存儲裝置的數(shù)據(jù)區(qū)域(206)(優(yōu)選使用磁盤輸入SGL中的一個或多個元組)并且指定主存儲器的數(shù)據(jù)區(qū)域(207)(使用存儲器輸入SGL中的一個或多個元組)和優(yōu)選為在磁盤輸入SGL中的每個元組所存儲的方向指示符(205)的值,來處理讀取或?qū)懭脒^程,其中方向指示符(205)的具體值對于磁盤輸入SGL(201)的特定的一個或多個元組和存儲器輸入SGL(202)的一個或多個對應元組,指定了是讀取過程(即從存儲裝置傳送到主存儲器)還是寫入過程(即從主存儲器傳送到存儲裝置)。
采用這種方法,在存儲系統(tǒng)中可以以非常簡單且高效的方法進行讀取/寫入操作。即使所述操作是基于部分塊/扇區(qū)的,將如結合圖3a和3b進行解釋。
圖3a和3b依照本發(fā)明結合部分塊讀取/寫入舉例說明了SGL被用作傳送的一部分。
圖3a舉例說明了在執(zhí)行依照本發(fā)明的扇區(qū)對準之前的SGL。但對于另一示例性情況,所示出的是存儲器輸入SGL(202)(對應于圖2中的存儲器輸入SGL)和磁盤輸入SGL(201)(對應于圖2中的磁盤輸入SGL)。此示例性的情況舉例說明了部分塊讀取/寫入操作。在此具體例子中,按照方向指示符(205)所指定的傳送方向是從主存儲器(204)到磁盤/存儲裝置(203),即寫入操作。所述寫入涉及跟有兩個完整塊(211,212)的部分塊(210),所述完整塊(211,212)后面是另一部分塊(213),其中所有塊(210-213)在存儲裝置上是連續(xù)的,并且在地址A1開始并具有由磁盤輸入SGL(201)中的元組(A1,L1)所給出的總長度L1。源主存儲單元是分散的并且由如存儲器輸入SGL(202)中的元組(a1,11)、(a2,12)和(a3,13)所給出的三個單元(214,215,216)組成。陰影部分從而由輸入SGL(201,202)來描述,并且不與扇區(qū)邊界對準。由于源和目的地的長度必須相同以便訪問存儲裝置,所以在此例子中L1等于11、12和13的和。輸入SGL(201,202)可以如較早所描述一樣包含更多數(shù)據(jù),但是為了簡化例子并沒有示出或論述該數(shù)據(jù)。
如所提及,SGL基本上被實現(xiàn)為這種元組的隊列,還提供了附加的操作和優(yōu)化。
A1指向在兩個扇區(qū)邊界(S.B.)之間的扇區(qū)中的某處,其中該扇區(qū)的第一部分將不被改動,而第二部分(210)將被修改,如陰影部分所表明。如先前所提及,從磁盤的讀取(和寫入)只能在整數(shù)個扇區(qū)中進行。如果此存儲器可由進行傳送的硬件和/或軟件訪問的話,地址a1、a2和a3可以指向主存儲器中的任何地方。
此外,結合圖3b解釋了扇區(qū)對準過程。
圖3b舉例說明了在已經(jīng)執(zhí)行依照本發(fā)明的扇區(qū)對準之后的SGL。所示出的分別是在已經(jīng)執(zhí)行扇區(qū)對準并且磁盤存儲器(203)不再包含任何部分塊訪問之后,存儲器輸入SGL(209)(對應于圖4中的SGL6)和磁盤輸入SGL(208)(對應于圖4中的SGL 5)及其相關聯(lián)的存儲器(203,204)。在此圖中的磁盤輸入SGL(208)和存儲器輸入SGL(209)是由依照本發(fā)明的扇區(qū)對準層/應用根據(jù)圖3a中的磁盤輸入SGL(圖3a中的201)和存儲器輸入SGL(圖3a中的202)來產(chǎn)生的。如結合圖3a所表明,在此例子中主存儲器的數(shù)據(jù)內(nèi)容將被傳送到磁盤。部分塊讀取處理更為簡單得多,并且稍后將要解釋。
還示出的是暫時存儲塊(217,218),其是主存儲器的一部分并且用于扇區(qū)對準過程。暫時存儲塊(217,218)至少具有和存儲裝置塊/扇區(qū)相同的大小,并且用于部分塊的‘首部’和‘尾部’,如下面所解釋。
扇區(qū)對準產(chǎn)生附加的扇區(qū)部分(219,220),所述附加扇區(qū)部分分別在傳送的開始和結束時被添加,借此給出完整的塊/扇區(qū)。
依照下面,磁盤輸入SGL(208)和存儲器輸入SGL(209)根據(jù)磁盤輸入SGL(圖3a中的201)和存儲器輸入SGL(圖3a中的202)來產(chǎn)生,以便執(zhí)行扇區(qū)對準首先,在進行任何寫入之前預取/讀取磁盤的首部扇區(qū),這是因為它包含沒有被寫入/修改步驟所改動的數(shù)據(jù)(219)(如果要傳送的數(shù)據(jù)不在扇區(qū)邊界開始的話)。這通過排隊存儲器輸入SGL(209)中的元組(a1’,11’)并且排隊磁盤輸入SGL(208)中的元組(A2,L2),以及在(A2,L2)的方向指示符中指定將要讀取(即對于由(A2,L2)/(a1’,11’)所引用的數(shù)據(jù)來說,磁盤是源而主存儲器是目的地)。元組(a1’,11’)引用暫時存儲塊(217)中的數(shù)據(jù)。
那么在此實施例中,還在進行任何寫入之前預取/讀取所述磁盤的尾部扇區(qū)(如果要傳送的數(shù)據(jù)不在扇區(qū)邊界開始的話),這是因為它還包含未被改動的數(shù)據(jù)(220)。
這通過排隊存儲器輸入SGL(209)中的元組(a2’,12’)并且排隊磁盤輸入SGL(208)中的元組(A3,L3)以及在(A3,L3)的方向指示符中指定將要讀取(即對于由(A3,L3)/(a2’,12’)所引用的數(shù)據(jù)來說,磁盤是源而主存儲器是目的地)。元組(a2’,12’)引用暫時存儲塊(217)中的數(shù)據(jù)。
通常,只是在把數(shù)據(jù)寫入尾部扇區(qū)之前才必須讀取尾部扇區(qū)。只要在排隊了用于定義向尾部扇區(qū)寫入的任何元組之前排隊元組(a 2’,12’)和(A3,L3),那么在元組(a1′,11′)和(A2,L2)之前還是之后排隊元組(a2′,12′)和(A3,L3)是無關緊要的,這確保未被提及的首部數(shù)據(jù)(219)和尾部數(shù)據(jù)(220)在寫入之后保持不變。
此后,寫入首部扇區(qū)(219)的首部,即沒有由未對準寫入所改動的首部扇區(qū)的部分。
這通過排隊存儲器輸入SGL(209)中的元組(a3’,13’)來完成,其中a3’等于a1’,而13’<11’。更具體地說,13’等于扇區(qū)的長度減去在首部扇區(qū)中要寫入的數(shù)據(jù)(210)的長度。作為選擇,13’可以被確定為A1(來自圖3a中的磁盤輸入SGL)減去A2。
此后,寫入新的/修改的數(shù)據(jù)(214,215,216)。
這是通過排隊在存儲器輸入SGL(209)中來自圖3a的存儲器輸入SGL(202)的元組(a1,11)、(a2,12)和(a3,13)來完成的。
并且在最后,寫入尾部扇區(qū)(220)的尾部,即沒有由未對準寫入所改動的尾部扇區(qū)的部分。
這通過排隊存儲器輸入SGL(209)中的(a4’,14’)來完成,其中14’等于扇區(qū)的長度減去尾部扇區(qū)中要寫入的數(shù)據(jù)(213)的長度。a4’等于a2’+要寫入的尾部扇區(qū)數(shù)據(jù)的長度。請注意,a2’+12’等于a4’+14’,即它們都在尾部扇區(qū)的末端結束。
通過排隊元組(A4,L4)來修改磁盤輸入SGL(圖3a中的201)的元組(A1,L1)以使元組(a3’,13’)、(a1,11)、(a2,12)、(a3,13)和(a4’,14’)與磁盤相關,其中A4等于A2,而L4等于13’+11+12+13+14’,即要寫入/修改的數(shù)據(jù)(214,215,216)的長度與未被提及的首部部分(219)以及未改動的尾部部分(220)的和。(A4,L4)的方向指示符被設置為指定為寫入。
此后,與磁盤有關的元組引用/定義對準扇區(qū)的數(shù)據(jù)區(qū)域,其準備被傳送到塊/扇區(qū)存儲裝置。然后SGL(208,209)可以被用作用為適當轉(zhuǎn)換機制的輸入,以便把它們的內(nèi)容轉(zhuǎn)換為存儲裝置接口的命令,所述接口例如IDE接口。
為了讀取部分塊,附加的部分扇區(qū)(219,220)當正被取出時被簡單地丟棄。對于(使用相同數(shù)據(jù)區(qū)域的)部分塊讀取,SGL中的元組可能會是(A4,L4)和(a3’,13’)、(a1,11)、(a2,12)、(a3,13)和(a4’,14’)。然而對此不需要預取/讀取首部和尾部。首部扇區(qū)(219)的首部數(shù)據(jù)和尾部扇區(qū)(220)的尾部數(shù)據(jù)在被讀取之后被簡單地丟棄。換句話說即是,從存儲裝置(506)(依照任何適當?shù)拇涡?讀取每個扇區(qū)(219+210,211,212,213+220),如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么丟棄不包括任何所要傳送數(shù)據(jù)的首部扇區(qū)(219+210)的部分(219),并且如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么丟棄不包括任何所要傳送的數(shù)據(jù)的尾部扇區(qū)(213+220)的部分(220),其中由輸入磁盤輸入SGL(208)和存儲器輸入SGL(209)中的分散集中式列表元素(105)來表示所述讀取。
如果要傳送的數(shù)據(jù)在扇區(qū)邊界開始,那么忽略/不產(chǎn)生(A2;L2)和(a1’,11’)和(a3’,13’),并且A4=A1。
如果要傳送的數(shù)據(jù)在扇區(qū)邊界結束,那么忽略/不產(chǎn)生(A3;L3)、(a2’,12’)和(a4’,14’),并且A4+L4=A1+L1,即它們在同一地點結束。
所描述的扇區(qū)對準過程與先前所描述的現(xiàn)有技術過程的情況一樣,并不阻塞CPU,這是因為同現(xiàn)有技術的三個步驟(其中在每個步驟之后需要磁盤I/O)相對,CPU的任務從相對緩慢得多的磁盤I/O分離出來。
此外,由于在SGL之間只拷貝數(shù)據(jù)的引用,即元組,所以并不拷貝實際數(shù)據(jù),這大大地降低了存儲和帶寬要求。
在依照本發(fā)明的扇區(qū)對準中,因為主存儲器現(xiàn)在是讀取以及寫入命令的一部分,所以“修改”部分現(xiàn)在“自動”發(fā)生?,F(xiàn)在唯一的約束在于寫入只可以在讀取已經(jīng)在所請求的存儲單元中產(chǎn)生所請求的數(shù)據(jù)之后進行。如同所知,這種約束很容易由存儲裝置上的磁盤調(diào)度程序處理?,F(xiàn)在該調(diào)度程序還可以容易地優(yōu)化存儲裝置的吞吐量。
在由磁盤輸入SGL(圖3a中的201)中的元組所引用的整個數(shù)據(jù)區(qū)域位于單個扇區(qū)內(nèi)的情況中,由于此扇區(qū)既在首部又在尾部,所以如同上述那樣只需要預取一次而不是兩次。在此情況中,必須在任何寫入之前完成所述預取。然后扇區(qū)對準過程例如可以從存儲裝置(506)讀取單個扇區(qū)并把它存儲在暫時扇區(qū)(217;218)中,并且在讀取單個扇區(qū)之后,如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么寫入單個扇區(qū)的首部,并且如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么寫入單個扇區(qū)的尾部。
在下表中概括了各種元組的功能
圖4示意地舉例說明了依照本發(fā)明實施例的接口層。所示出的是存儲系統(tǒng)層/文件管理層、扇區(qū)對準層、磁盤接口/IDE層和DMA引擎等。此外所示出的是對應于圖2和3a中的磁盤輸入SGL/SGL1(201)、對應于圖2和3a中示出的存儲器輸入SGL/SGL2(202)、對應于圖3b中示出的另一磁盤輸入SGL(208)/SGL5、對應于圖3b中示出的另一存儲器輸入SGL(209)/SGL6。
在優(yōu)選實施例中,附加的輸出存儲器SGL(230)用來描述已經(jīng)是實際傳送的一部分的主存儲器,即如果需要的話在任何扇區(qū)對準之后。每個傳送把存儲器從輸入存儲器SGL(209)‘移動’到輸出存儲器SGL/SGL 7(230)。數(shù)據(jù)本身并不移動,而只有它的描述、即相關元組移動。此外是附加的輸出磁盤SGL/SGL8(圖4的231),用于描述已經(jīng)以類似方式作為實際傳送一部分的磁盤單元。
換句話說,在進行部分傳送之后,該部分從輸入SGL(208,209)移動到相應的輸出SGL(231,230),即如圖4所示的從SGL 5到8,以及從SGL 6到7。這允許容易且簡單地監(jiān)視已經(jīng)進行的傳送過程,其可以用于各種應用、其它過程等。
在進一步的實施例中,扇區(qū)對準層還包括在輸出SGL 7(230)和8(231)上進行的反向處理,以便重復利用暫時首部和尾部扇區(qū)(圖3b中的217和218)的暫時存儲器,并且使其輸出SGL 3(233)和4(232)與原始的輸入SGL 2(202)和1(201)一致。這允許以非常簡單的方式來容易地重新使用所用過的存儲器。
64位磁盤地址中的某些位未被使用,這是因為在ATA6中,LBA的大小是48位,而扇區(qū)是512字節(jié)。這剩下64-48-9=7位,其中所述位之一可以被用作方向指示符,如先前所解釋。未對準的寫入訪問被轉(zhuǎn)換成(對準的)讀取訪問(首部和尾部扇區(qū)),后面跟有對準的寫入訪問,如結合圖3a和3b所描述的那樣。為了保持簡單,這種轉(zhuǎn)換的結果同樣是單個的SGL,但是在一個實施例中,讀取請求具有未用的位設置(借此用于表示寫入的清除位)。作為選擇,清除位可以表示讀取請求。IDE/磁盤層確保讀取請求在寫入只是讀到磁盤的數(shù)據(jù)之前已經(jīng)完成。只要SGL 5(208)和/或SGL 6(209)的方向指示符改變,那么每當訪問相同的存儲單元時應當確保在寫入之前完成讀取。這對網(wǎng)絡存儲裝置來說尤為重要。
由于硬件要求而可能存在的任何半字對準請求依照普通方式來處理。
圖5示意地舉例說明了依照本發(fā)明實施例設備的一個例子。所示出的是依照本發(fā)明一個實施例的設備(500),所述設備(500)包括經(jīng)由內(nèi)部數(shù)據(jù)/地址總線(504)等與主存儲器(502)和至少一個存儲裝置(506)相連接的一個或多個微處理器(501)。另外,設備(500)還可以連接到或包括顯示器(507)和/或通信裝置(501),所述通信裝置(501)用于經(jīng)由網(wǎng)絡與一個或多個遠程系統(tǒng)通信。存儲器(502)和/或存儲裝置(506)用來存儲并獲取相關數(shù)據(jù)以及用于提供依照本發(fā)明功能的可執(zhí)行計算機代碼。微處理器(501)負責產(chǎn)生、操作、處理等依照本發(fā)明的SGL。
存儲裝置(506)包括能夠讀取并可以寫入數(shù)據(jù)塊的一個或多個存儲裝置,例如DVD、CD、光盤、PVR等播放器/記錄器和/或硬盤(IDE,ATA等)、軟盤、智能卡、PCMCIA卡等。所述存儲裝置還可以是網(wǎng)絡磁盤。
在權利要求中,不應當將置于括號內(nèi)的任何參考符號看作是對權利要求的限制。詞“包括”并不排除那些沒有記載在權利要求中的元件或步驟。位于元件之前的詞“一個”或“一種”并不排除存在多個這樣元件。
本發(fā)明可以借助于包括若干不同元件的硬件來實現(xiàn),也可以借助于適當編程的計算機來實現(xiàn)。在產(chǎn)品權利要求所列舉的一些裝置中,這些裝置中的幾個可以被具體化為同一個硬件項。唯一的事實在于在彼此不同的從屬權利要求中所提到的某些方法,實際上并不意味著把這些方法結合是無益的。
權利要求
1.一種用于表示在存儲系統(tǒng)中的主存儲器(502)和存儲裝置(506)之間數(shù)據(jù)傳送的方法,所述存儲系統(tǒng)包括-第一分散集中式列表數(shù)據(jù)結構(201;SGL1),被配置成包括引用磁盤單元(203)的零個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,-第二分散集中式列表數(shù)據(jù)結構(202;SGL2),被配置成包括引用主存儲器(204)一部分的零個或多個分散集中式列表元素(105),所述主存儲器(204)的一部分是所要傳送數(shù)據(jù)的源或目的地,和-用于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)的每個分散集中式列表元素(105)或第二分散集中式列表數(shù)據(jù)結構(202;SGL2)的每個分散集中式列表元素的方向指示符(205),其中所述方向指示符(205)用于指定磁盤單元(203)是源而主存儲器(204)的一部分是目的地,還是磁盤單元(203)是目的地而主存儲器(204)的一部分是源,所述方法包括產(chǎn)生第一分散集中式列表數(shù)據(jù)結構(201;SGL1)和第二分散集中式列表數(shù)據(jù)結構(202;SGL2)的步驟。
2.如權利要求1所述的方法,其特征在于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)包括方向指示符(205)或第二分散集中式列表數(shù)據(jù)結構(202;SGL2)包括方向指示符(205)。
3.如權利要求1所述的方法,其特征在于所述方法還包括當執(zhí)行讀取或?qū)懭氩僮鲿r-接收目的地數(shù)據(jù)區(qū)域、源數(shù)據(jù)區(qū)域和方向,-在第一分散集中式列表數(shù)據(jù)結構(201;SGL1)中排隊至少一個分散集中式列表元素(105),其包括取決于方向的目的地數(shù)據(jù)區(qū)域,-在第二分散集中式列表數(shù)據(jù)結構(202;SGL2)中排隊至少一個分散集中式列表元素(105),其包括取決于方向的源數(shù)據(jù)區(qū)域,并且-設置方向指示符(205)以便指定主存儲器和存儲裝置中的哪個是源和目的地。
4.如權利要求1所述的方法,其特征在于所述存儲系統(tǒng)還包括-第五分散集中式列表數(shù)據(jù)結構(208;SGL5)-第六分散集中式列表數(shù)據(jù)結構(209;SGL6),并且其中所述方法還包括在未對準寫入存儲裝置(506)之前執(zhí)行所要傳送數(shù)據(jù)(214,215,216)的扇區(qū)對準的步驟,所述步驟包括-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么從存儲裝置(506)讀取首部扇區(qū)(219+210),并且把它存儲在暫時首部扇區(qū)(217)中,-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么從存儲裝置(506)讀取尾部扇區(qū)(213+220),并且把它存儲在暫時尾部扇區(qū)(218)中,并且在讀取首部和尾部扇區(qū)(219+210;213+220)之后-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么寫入首部扇區(qū)(219+210)的首部(219),-寫入所要傳送的數(shù)據(jù)(214,215,216),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么寫入尾部扇區(qū)(213+220)的尾部(220),其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
5.如權利要求1所述的方法,其特征在于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)包括用于引用要在磁盤單元(203)的單個扇區(qū)內(nèi)傳送的數(shù)據(jù)的一個分散集中式列表元素(105),并且所述存儲系統(tǒng)包括-第五分散集中式列表數(shù)據(jù)結構(208;SGL5)-第六分散集中式列表數(shù)據(jù)結構(209;SGL6),并且其中所述方法還包括在未對準寫入存儲裝置(506)之前執(zhí)行所要傳送數(shù)據(jù)(214,215,216)的扇區(qū)對準的步驟,所述步驟包括-從存儲裝置(506)讀取單個扇區(qū)并且把它存儲在暫時扇區(qū)(217;218)中,并且在讀取單個扇區(qū)之后-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么寫入單個扇區(qū)的首部,-寫入要傳送的數(shù)據(jù),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么寫入單個扇區(qū)的尾部,其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
6.如權利要求1所述的方法,其特征在于所述存儲系統(tǒng)還包括-第五分散集中式列表數(shù)據(jù)結構(208;SGL5),-第六分散集中式列表數(shù)據(jù)結構(209;SGL6),并且其中所述方法還包括對要從存儲裝置(506)傳送的數(shù)據(jù)(210,211,212,213)執(zhí)行未對準讀取的步驟,所述步驟包括-從存儲裝置(506)讀取每個扇區(qū)(219+210,211,212,213+220),-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么丟棄不包含任何所要傳送數(shù)據(jù)的首部扇區(qū)(219+210)的部分(219),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么丟棄不包含任何所要傳送數(shù)據(jù)的尾部扇區(qū)(213+220)的部分(220),其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
7.如權利要求1所述的方法,其特征在于所述存儲系統(tǒng)還包括-第三分散集中式列表數(shù)據(jù)結構(230;SGL7),包括引用主存儲器(204)一部分的一個或多個分散集中式列表元素(105),所述主存儲器(204)是所要傳送數(shù)據(jù)的源或目的地,-第四分散集中式列表數(shù)據(jù)結構(231;SGL8),包括引用磁盤單元(203)的一個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,并且其中所述方法還包括步驟-當已經(jīng)進行傳送的一部分時,那么把該部分數(shù)據(jù)的引用從第六數(shù)據(jù)結構(201)傳送到第三數(shù)據(jù)結構(233),并且把該部分數(shù)據(jù)從第五數(shù)據(jù)結構(202)傳送到第四數(shù)據(jù)結構(232)。
8.如權利要求7所述的方法,其特征在于所述存儲系統(tǒng)還包括-第七分散集中式列表數(shù)據(jù)結構(233;SGL3),包括引用主存儲器(204)一部分的一個或多個分散集中式列表元素(105),所述主存儲器(204)的一部分是所要傳送數(shù)據(jù)的源或目的地,-第八分散集中式列表數(shù)據(jù)結構(232;SGL4),包括引用磁盤單元(203)的一個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,并且其中所述方法還包括步驟-對第三分散集中式列表數(shù)據(jù)結構(230;SGL7)和第四分散集中式列表數(shù)據(jù)結構(231;SGL8)執(zhí)行反向處理,以便重復利用暫時首部扇區(qū)(217)和/或暫時尾部扇區(qū)(218)的暫時存儲器,-根據(jù)所述反向處理產(chǎn)生第七分散集中式列表數(shù)據(jù)結構(233;SGL3)以便使其與第二分散集中式列表數(shù)據(jù)結構(202;SGL2)一致,并且-根據(jù)所述反向處理產(chǎn)生第八分散集中式列表數(shù)據(jù)結構(232;SGL4)以便使其與第一分散集中式列表數(shù)據(jù)結構(201;SGL1)一致。
9.如權利要求1所述的方法,其特征在于所述方向表示(105)依照ATA6被實現(xiàn)為在磁盤地址的計算機表示位之間的單個剩余位。
10.如權利要求1所述的方法,其特征在于所述存儲系統(tǒng)是實時存儲系統(tǒng)。
11.一種用于表示在存儲系統(tǒng)中的主存儲器和存儲裝置之間數(shù)據(jù)傳送的設備,所述存儲系統(tǒng)包括-第一分散集中式列表數(shù)據(jù)結構(201;SGL1),被配置成包括引用磁盤單元(203)的零個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,-第二分散集中式列表數(shù)據(jù)結構(202;SGL2),被配置成包括引用主存儲器(204)一部分的零個或多個分散集中式列表元素(105),所述主存儲器(204)的一部分是所要傳送數(shù)據(jù)的源或目的地,和-用于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)的每個分散集中式列表元素(105)或第二分散集中式列表數(shù)據(jù)結構(202;SGL2)的每個分散集中式列表元素的方向指示符(205),其中所述方向指示符(205)用于指定磁盤單元(203)是源而主存儲器(204)的一部分是目的地,還是磁盤單元(203)是目的地而主存儲器(204)的一部分是源。
12.根據(jù)權利要求11所述的設備,其特征在于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)包括方向指示符(205)或第二分散集中式列表數(shù)據(jù)結構(202;SGL2)包括方向指示符(205)。
13.如權利要求11所述的設備,其特征在于所述設備適于當執(zhí)行讀取或?qū)懭氩僮鲿r-接收目的地數(shù)據(jù)區(qū)域、源數(shù)據(jù)區(qū)域和方向,-在第一分散集中式列表數(shù)據(jù)結構(201;SGL1)中排隊至少一個分散集中式列表元素(105),其包括取決于方向的目的地數(shù)據(jù)區(qū)域,-在第二分散集中式列表數(shù)據(jù)結構(202;SGL2)中排隊至少一個分散集中式列表元素(105),其包括取決于方向的源數(shù)據(jù)區(qū)域,并且-設置方向指示符(205)以便指定主存儲器和存儲裝置中的哪個是源和目的地。
14.如權利要求11所述的設備,其特征在于所述存儲系統(tǒng)還包括-第五分散集中式列表數(shù)據(jù)結構(208;SGL5)-第六分散集中式列表數(shù)據(jù)結構(209;SGL6),并且其中所述設備還適于在未對準寫入存儲裝置(506)之前執(zhí)行所要傳送數(shù)據(jù)(214,215,216)的扇區(qū)對準的步驟,所述步驟包括-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么從存儲裝置(506)讀取首部扇區(qū)(219+210),并且把它存儲在暫時首部扇區(qū)(217)中,-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么從存儲裝置(506)讀取尾部扇區(qū)(213+220),并且把它存儲在暫時尾部扇區(qū)(218)中,并且在讀取首部和尾部扇區(qū)(219+210;213+220)之后-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么寫入首部扇區(qū)(219+210)的首部(219),-寫入所要傳送的數(shù)據(jù)(214,215,216),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么寫入尾部扇區(qū)(213+220)的尾部(220),其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
15.如權利要求11所述的設備,其特征在于第一分散集中式列表數(shù)據(jù)結構(201;SGL1)包括用于引用要在磁盤單元(203)的單個扇區(qū)內(nèi)傳送的數(shù)據(jù)的一個分散集中式列表元素(105),并且所述存儲系統(tǒng)包括-第五分散集中式列表數(shù)據(jù)結構(208;SGL5)-第六分散集中式列表數(shù)據(jù)結構(209;SGL6)并且其中所述設備還適于在未對準寫入存儲裝置(506)之前執(zhí)行所要傳送數(shù)據(jù)(214,215,216)的扇區(qū)對準的步驟,所述步驟包括-從存儲裝置(506)讀取單個扇區(qū)并且把它存儲在暫時扇區(qū)(217;218)中,并且在讀取單個扇區(qū)之后-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么寫入單個扇區(qū)的首部,-寫入所要傳送的數(shù)據(jù),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么寫入單個扇區(qū)的尾部,其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
16.如權利要求11所述的設備,其特征在于所述設備還適于對要從存儲裝置(506)傳送的數(shù)據(jù)(210,211,212,214)執(zhí)行未對準讀取的步驟,所述步驟包括-從存儲裝置(506)讀取每個扇區(qū)(219+210,211,211,213+220),-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)開始,那么丟棄不包含任何所要傳送數(shù)據(jù)的首部扇區(qū)(219+210)的部分(219),并且-如果所要傳送的數(shù)據(jù)不是在扇區(qū)邊界(S.B.)結束,那么丟棄不包含任何所要傳送數(shù)據(jù)的尾部扇區(qū)(213+220)的部分(220),其中讀取和寫入由第五(208;SGL5)和第六(209;SGL6)數(shù)據(jù)結構中的分散集中式列表元素(105)表示。
17.如權利要求11所述的設備,其特征在于所述存儲系統(tǒng)還包括-第三分散集中式列表數(shù)據(jù)結構(230;SGL7),包括引用主存儲器(204)一部分的一個或多個分散集中式列表元素(105),所述主存儲器(204)的一部分是所要傳送數(shù)據(jù)的源或目的地,-第四分散集中式列表數(shù)據(jù)結構(231;SGL8),包括引用磁盤單元(203)的一個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,并且其中所述設備還適于-當已經(jīng)進行傳送的一部分時,那么把該部分數(shù)據(jù)的引用從第一數(shù)據(jù)結構(201)傳送到第三數(shù)據(jù)結構(233),并且把該部分的數(shù)據(jù)從第二數(shù)據(jù)結構(202)傳送到第四數(shù)據(jù)結構(232)。
18.如權利要求17所述的設備,其特征在于所述存儲系統(tǒng)還包括-第七分散集中式列表數(shù)據(jù)結構(233;SGL3),包括引用主存儲器(204)一部分的一個或多個分散集中式列表元素(105),所述主存儲器(204)的一部分是所要傳送數(shù)據(jù)的源或目的地,-第八分散集中式列表數(shù)據(jù)結構(232;SGL4),包括引用磁盤單元(203)的一個或多個分散集中式列表元素(105),所述磁盤單元(203)是所要傳送數(shù)據(jù)的源或目的地,并且其中所述設備還適于-對第三分散集中式列表數(shù)據(jù)結構(230;SGL7)和第四分散集中式列表數(shù)據(jù)結構(231;SGL8)執(zhí)行反向處理,以便重復利用暫時首部扇區(qū)(217)和/或暫時尾部扇區(qū)(218)的暫時存儲器,-根據(jù)所述反向處理產(chǎn)生第七分散集中式列表數(shù)據(jù)結構(233;SGL3)以便使其與第二分散集中式列表數(shù)據(jù)結構(202;SGL2)一致,并且-根據(jù)所述反向處理產(chǎn)生第八分散集中式列表數(shù)據(jù)結構(232;SGL4)以便使其與第一分散集中式列表數(shù)據(jù)結構(201;SGL1)一致。
19.如權利要求11所述的設備,其特征在于所述方向表示(105)依照ATA6被實現(xiàn)為在磁盤地址的計算機表示位之間的單個剩余位。
20.如權利要求11所述的設備,其特征在于所述存儲系統(tǒng)是實時存儲系統(tǒng)。
21.一種計算機可讀介質(zhì),其上存儲有用于使一個或多個處理單元執(zhí)行如權利要求1-10中任何一個所述方法的指令。
全文摘要
本發(fā)明涉及一種用于表示在存儲系統(tǒng)中的主存儲器和存儲裝置之間數(shù)據(jù)傳送的設備和方法。本發(fā)明使用分散集中式列表來描述與數(shù)據(jù)傳送相關的主存儲器和存儲裝置的數(shù)據(jù)區(qū)域。此外,方向指示符用于指定磁盤單元是源而主存儲器的一部分是目的地或相反。優(yōu)選地是,先前剩余的未使用位被用作方向指示符。采用這種方法,能夠得到一種處理讀取、寫入和/或修改過程的高效方法。此外,由于在SGL之間只拷貝數(shù)據(jù)的引用,即元組,所以在CPU處理期間并不移動實際數(shù)據(jù),這大大地降低了存儲和帶寬要求。此外,本發(fā)明還涉及一種使用分散集中式列表來執(zhí)行扇區(qū)對準的高效方法,其中借此把CPU的相關性從慢得多的磁盤/存儲器輸入/輸出中分離出來。
文檔編號G06F13/28GK1795442SQ200480014359
公開日2006年6月28日 申請日期2004年5月17日 優(yōu)先權日2003年5月26日
發(fā)明者P·A·W·范尼克 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
井陉县| 南溪县| 调兵山市| 宁陵县| 湘潭县| 探索| 万山特区| 荔波县| 娱乐| 呼图壁县| 河西区| 榕江县| 博罗县| 仪征市| 八宿县| 金坛市| 北宁市| 邛崃市| 定远县| 曲阜市| 兰溪市| 蓬莱市| 项城市| 开阳县| 井冈山市| 南部县| 封丘县| 晋城| 微博| 黄浦区| 盐津县| 南京市| 兴隆县| 塔河县| 大厂| 门头沟区| 镇宁| 河源市| 陵川县| 阜南县| 仁布县|