專利名稱:用于管理將數據轉移入和轉移出磁盤驅動器中緩沖器的緩沖器管理系統的制作方法
技術領域:
該申請一般涉及磁盤驅動器高速緩存技術,尤其涉及用于控制主計算機與磁盤驅動器的磁盤之間數據轉移的緩沖器管理系統。
背景技術:
在磁盤驅動器中,數據被存儲在覆蓋有磁化介質的一個或多個磁盤上。數據由換能器陣列寫到磁盤,這些換能器通常被稱作“讀/寫磁頭”,它們被安裝在徑向致動器上,使磁頭相對于磁盤移動。信息存儲在磁盤上的多個同心的圓形磁道上,直到讀/寫磁頭從磁盤讀取數據。每個同心磁道一般都被分成多個可分開尋址的數據扇區。磁頭用于在理想的磁道與外部環境之間轉移數據,外部環境包括一臺主計算機等許多部件。在讀操作期間,磁頭感知以前被寫在磁盤磁道上的數據,并將信息轉移到外部環境。在寫操作期間,數據被寫到磁盤磁道上。一旦數據被寫到磁盤,每個扇區就保存一塊數據,該數據是在一次寫操作期間可以被寫到磁盤的絕對最小量。鄰近的塊(通常被稱作“塊”或“簇”)通常在一次寫操作(被稱作“一個命令”)期間被寫到磁盤。對這些讀取和寫入操作都至關重要的是準確地將磁頭定位在理想磁道的中心上。
通常,致動器音圈馬達將磁頭相對于磁盤表面定位。該音圈馬達負責使致動器主體圍繞樞軸旋轉,從而使磁頭橫跨磁盤表面移動。這樣,致動器允許磁頭在磁盤的內半徑與外半徑之間準確地來回移動。致動器臂由饋送到致動器臂末端處音圈馬達的控制信號驅動。伺服控制系統通過利用從磁盤驅動器的磁盤表面讀取的伺服信號來感知致動器的位置并控制磁頭在磁盤上的移動。伺服控制系統依靠存儲在磁盤上的伺服信息。來自該信息的信號通常指出磁頭相對于磁盤的目前位置(即當前的磁道位置)。伺服控制系統使用感知信息來維持磁頭位置或確定如何最佳地將磁頭移到理想磁道上居中的新位置。然后,伺服控制系統將一個控制信號傳遞到音控馬達,以便將磁頭定位在理想的新磁道上或維持理想的當前磁道上的位置。
用特征是雙層轉移方案的多層設置來控制文件在主計算機與磁盤之間的轉移。在宏觀層次,選擇磁道扇區來包含文件被分割成的數據扇區。尤其是,從微觀上來說,沿磁道的單元被磁化,以對應于文件的位結構,用于隨后的讀取。磁盤驅動器通常包括一個緩沖器,以執行這個雙層轉移方案。該緩沖器的用途是在數據在主計算機與磁盤之間轉移的期間接受各個數據扇區,然后將數據轉移到合適的部件一主計算機或磁盤。
通常,系統微處理器所包含的編程被設計成將扇區定位在讀取或寫入數據的磁道上。微處理器也被編程為控制扇區處的文件轉移或被編程為宏觀層次。用逐個字符的方式來實現到/來自緩沖器的數據轉移。在逐個字符環境中實現轉移的傳統方法是通過使用各種狀態機,例如緩沖控制器、主機接口控制器和磁盤接口控制器。
如在第5,276,662號美國專利中所述,文件在主機與磁盤之間的轉移是在系統微處理器的總控制下和狀態機控制器更精確的控制下執行的。例如,當文件將被寫到磁盤時,主計算機用通用信息提示系統微處理器,該信息允許微處理器定義寫入文件的磁道的各個扇區。然后,微處理器通過執行導致扇區層次處轉移的各項操作來啟動轉移。這類操作包括命令伺服控制系統將磁頭定位在將要接收文件的所選磁道上;識別用于轉移的緩沖器的一個片段。微處理器命令主機接口控制器開始將數據轉移到該緩沖器片段中。按照慣例,結合緩沖控制器和主計算機一起工作的主機接口控制器在文件字符轉移到緩沖器片段的扇區塊的過程中精確地控制緩沖器。一旦讀/寫磁頭被定位在將接收文件的磁道上,磁盤接口控制器就按照系統微處理器發出的命令來控制各數據塊從緩沖器片段到磁盤上合適扇區的轉移。然后,被連接到讀/寫磁頭的讀/寫電路沿數據磁道磁化單元。
按照慣例,計數器和中斷信號與緩沖器結合使用,來“監視”到緩沖器的數據轉移。通常位于主機和磁盤接口控制器內的計數器計算發生在主機與緩沖器之間以及磁盤與緩沖器之間的轉移次數。根據該計算,在發生了所選次數的到緩沖器的轉移之后,中斷發生器立即將一個中斷信號提供給微處理器。使用計數器和中斷是為了查明當將要發生轉移時,緩沖器是否被充滿。
磁盤驅動器的最大缺點是啟動讀或寫操作的時間與機械地完成該操作的時間之間有相對較長的延遲。該延遲包括尋道等待時間、讀/寫磁頭被移到理想磁道的時間、旋轉等待時間、在理想磁道扇區位于讀/寫磁頭下面之前磁盤旋轉的時間,以及對應于從磁盤表面讀取數據塊或將數據塊寫到磁盤表面上的時間的額外延遲。由于前述延遲,磁盤驅動器的操作速度通常比計算機系統的其他部件的操作速度慢。這種情況下,對于總的系統性能,對于轉移希望寫入緩沖器的數據的主機系統是有利的,于是允許驅動器之后將該數據提交給磁盤,這有利于驅動器執行將數據放在介質上的(機械)任務。這個概念(通常稱作“寫高速緩存”)常用于數據存儲設備。
用于減少與幾乎任何軟件應用程序關聯的磁盤存取次數的眾所周知的方法涉及使用一個單一公用高速緩存存儲器。該高速緩存存儲器(通常是易失性隨機存取存儲器(VRAM)設備)存儲從磁盤讀取的各數據塊或將要寫入磁盤的各數據塊。一旦系統發出一項磁盤讀取操作,高速緩沖存儲器就首先被檢查,以發現是否已具備所要求的數據塊,從而避免了典型的物理磁盤讀取。如果不具備數據塊,則系統指示讀/寫磁頭執行磁盤讀取,數據從該磁盤被轉移到高速緩沖存儲器。
如在第5,765,193號美國專利中所述,從磁盤要求數據通常具體到有關的數據(例如,數據文件)。數據文件將被寫到并存儲在磁道鄰近扇區中的磁盤上。相應地,計算機程序設計員通常知道的參考原理說明“當數據被存儲或將被存儲在一個位置時,被存儲或將被存儲在物理上鄰近位置的數據很可能將同時被存取或在前后不久被存取。”為了實現這個原理,將寫到磁盤的數據通常在記錄到磁盤上之前轉移到寫高速緩沖存儲器。這個程序具有兩個方面的優點。首先,它允許主機迅速存取數據,而無須對磁盤執行實際的讀取操作。為了直接從寫高速緩沖存儲器進行讀取,系統必須了解哪些數據塊正被保存在高速緩沖存儲器中,而不是磁盤中。其次,它為讀/寫磁頭提供時間來趕上計算機的其他部件。
一旦高速緩沖存儲器被充滿,系統微處理器就啟動寫操作,將高速緩沖存儲器中的數據塊轉移到磁盤驅動器。如第5,765,193號美國專利中進一步所述,有幾種方法用于管理數據從寫高速緩沖存儲器到磁盤的“有序”轉移。用于管理寫高速緩沖存儲器的一項普通技術是用指令補充磁盤寫操作,以便在寫高速緩沖存儲器中搜索鄰近的數據塊。至少要存在兩個鄰近的數據塊,才能定義一個簇,系統將完全按照磁盤寫操作來轉移該簇。通過減少磁盤存取次數,該技術減少了耗時的尋道操作的總數。第二項已知技術涉及保持“最近使用”(LRU)隊列,該隊列包括按序使用的一列數據塊。該技術使用一個虛擬塊數字,即分配給數據塊與其在磁盤上的預期存儲位置有關的數字,以便按系統的最近使用順序來為數據塊分類。根據“與較早使用的數據塊相比,越是最近使用的數據塊越有可能被再次使用”這個理論,系統將較早使用的數據塊轉移到磁盤,同時將最近使用的數據塊保留在寫高速緩沖存儲器中,用于由中央處理器迅速存取。第三項更過時的技術只是在先進先出的基礎上從高速緩沖存儲器移走塊。
雖然與數據從緩沖器到磁盤轉移有關的所有這三項技術提供了執行存儲和檢索數據文件的有效方法,但伴隨數據從有限數據空間的緩沖器轉移到磁盤也產生了一些問題。特別是,如果來自緩沖器的數據不按先進先出的方式被轉移到磁盤,那么直到比轉移數據的緩沖器扇區更低級的緩沖器扇區實際上被清空,該清空的緩沖器扇區才能被重新使用。例如,在一個有100個扇區的緩沖器中,如果扇區45~50被寫到磁盤,則直到緩沖器扇區1~44已被清空,該特定的緩沖器空間才能由主機重新使用。當處理有限數量的緩沖器數據空間的磁盤驅動器時,“順序的”緩沖器存取方法相對于寫高速緩存對主計算機而言是一個重大的缺點。
發明概述在此背景下開發了本發明。本發明是重新安排緩沖器扇區,以便可以更有效地使用緩沖器數據空間的裝置。特別是,根據本發明,定向緩沖器管理系統(下文稱作“VBM”)提供了一種重新安排緩沖器空間,以便可以按任意或隨意方式將數據轉移入和轉移出緩沖器的裝置。本質上,VBM允許按非順序的方式將數據寫入和讀出緩沖器扇區。VBM包含三個部件運算部件、硬件部件和軟件部件。
運算部件將數據緩沖器的模型(稱作“VBM表格”)定義為按邏輯組織的單獨鏈接的一列扇區。VBM表格中的每個條目代表緩沖器的一個單一扇區。緩沖器的每個扇區存儲一個具有邏輯塊地址(LBA)的數據塊,該邏輯塊地址代表磁盤驅動器中磁盤上的一個扇區。當前安置硬件部件的緩沖器扇區被稱作“索引扇區”。每個索引扇區的值是“下一”扇區,即表示當數據轉移入或轉移出當前索引扇區結束時供參考的硬件部件的“下一”扇區的物理緩沖器扇區號。
硬件部件負責將數據物理轉移入和轉移出緩沖器。在磁盤寫操作期間,硬件部件將“VBM”表格用作管理數據轉移的基礎。這通過設置一個主機地址指示器(HAP)和磁盤地址指示器(DAP)來實現,主機地址指示器負責把數據提交給緩沖器,磁盤地址指示器負責將數據從緩沖器轉移到磁盤。這些指示器的初始值由軟件部件任意地選擇。HAP和DAP都分別耦合到主機下一指示器(HNP)和磁盤下一指示器(DNP)。這些下一指示器的功能是從索引扇區讀取下一扇區值,以便使地址指示器指向下一扇區。硬件還提供了獨立于管理緩沖器分配任務的自動遍歷功能,以便即使當CPU正在執行另一項任務時,該功能也仍然能夠遍歷大量的表格條目。
通過確保新主機寫命令在任何給定時間都可獲得可能的最大數量的緩沖器扇區,并且通過使完成主機請求所需的磁盤操作的次數最小,軟件部件使寫高速緩存的優點最大化。更特別的是,軟件提供創建和維持VBM表格的機制,硬件用該VBM表格指導數據轉移入和轉移出數據緩沖器。軟件部件還負責管理對硬件部件的控制。通過創建一列空閑緩沖器扇區,軟件部件還使VBM能夠將高速緩存數據與空閑空間分開、在有益時將緩沖器表格的各緩沖器片段合并成單一的磁盤操作、重新使用保存殘余數據的任何緩沖器扇區,并將緩沖器扇區按任何順序返回到該空閑列表。
通過以下詳細的描述并觀察有關的附圖,將明白這些和其他各種特點以及構成本發明特征的各個優點。
附圖簡述
圖1是并入本發明一個較佳實施例的磁盤驅動器的平面視圖,示出基本內部部件。
圖2是功能框圖,通常示出用于控制圖1中磁盤驅動器的主要功能部件。
圖3是磁盤的平面視圖,通常示出磁盤表面的各個主要部件。
圖4是根據本發明一個較佳實施例的緩沖器管理系統的功能框圖。
圖5是緩沖器管理系統的功能框圖,尤其針對圖4中的應用程序和控制模塊。
圖6是圖4中的應用程序模塊的各部件的示意圖。
圖7是流程圖,示出響應主計算機寫指令的控制模塊的操作。
圖8是流程圖,示出將空閑_列表的扇區安排到一個或多個片段中。
圖9是流程圖,示出修補過程。
圖10是流程圖,示出當給出將數據從緩沖器提交給磁盤的指令時控制模塊的操作。
圖11是流程圖,示出合并過程。
圖12是流程圖,通常示出本發明的操作。
圖13是圖4中應用程序模塊的遍歷部件的示意圖。
詳細描述圖1示出根據本發明的一個較佳實施例來構建的磁盤驅動器100。磁盤驅動器100包括一個基底102,磁盤驅動器100的各部件被安裝到該基底上。頂蓋104(被示出局部被切除)與基底102一起按傳統方式為磁盤驅動器100形成一個內部的封閉環境。這些部件包括一個主軸馬達106,它使一個或多個磁盤108以恒定的高速度旋轉。通過使用致動器組件110,將信息寫到磁盤108上的磁道160(圖3)并從那里讀取信息,致動器組件110圍繞磁盤108附近的軸承桿組件112旋轉。致動器組件110包括朝磁盤108延伸的多個致動器臂114,一個或多個彎曲部分116從每個致動器臂114延伸。磁頭118安裝在每個彎曲部分116的末端,磁頭包括一個空氣軸承滑動器,該空氣軸承滑動器使磁頭118能夠緊貼有關磁盤108的對應表面飛行。
當磁盤驅動器100在擴展時期內不被使用時,主軸馬達116通常被斷電。當驅動馬達被斷電時,磁頭118移到磁盤108的內直徑附近的停放區120。通過使用致動器閂鎖配置,磁頭118被固定在停放區120上,這防止了停放磁頭118時致動器組件110因疏忽而發生旋轉。
通過使用音圈馬達(VCM)124來控制磁頭118的徑向位置,該音圈馬達通常包括附著于致動器組件110的線圈126,以及建立包圍線圈126的磁場的一個或多個永久磁鐵128。向線圈126有控制地施加電流會導致永久磁鐵128與線圈126之間發生磁性的相互作用,以便線圈126可根據眾所周知的洛倫茲定律進行移動。當線圈126移動時,致動器組件110圍繞軸承桿組件112旋轉,使磁頭118橫跨磁盤108表面移動。
彎曲組件130為致動器組件110提供必要的電連接路徑,同時允許致動器組件110在操作期間進行圍繞樞軸的移動。彎曲組件包括一個印刷電路板132,磁頭電線(未示出)連接到該印刷電路板;磁頭電線沿致動器臂114和彎曲部分116通向磁頭118。印刷電路板132通常包括電路,該電路用于控制寫操作期間被施加到磁頭118的寫電流,并用于放大讀操作期間由磁頭118生成的讀信號。彎曲組件在彎曲托架134處終止,用于通過基臺102與安裝到磁盤驅動器100底側的磁盤驅動器印刷電路板(未示出)進行通信。
現在參考圖2,其中示出圖1中磁盤驅動器100的功能框圖,通常表現了駐留在磁盤驅動器印刷電路板上并被用來控制磁盤驅動器100的操作的主要功能電路。圖2示出磁盤驅動器100,它切實可行地被連接到主計算機140,磁盤驅動器100按傳統的方式被安裝在該主計算機140中。在主計算機140與磁盤驅動器微處理器142之間提供各條控制通信路徑,微處理器142通常結合存儲在微處理器存儲器(MEM)143中的微處理器142編程,來提供高級通信和對磁盤驅動器100的控制。MEM 143可以包括隨機存取存儲器(RAM)、只讀存儲器(ROM)和微處理器142的其他資源駐留存儲器。主軸控制電路148以恒定的高速度來旋轉磁盤108。通過將電流施加到致動器組件110的線圈,來控制磁頭118的徑向位置。伺服控制電路150提供這種控制。
利用磁盤驅動器接口144在主計算機140與磁盤驅動器100之間轉移數據,該磁盤驅動器接口144包括便于主計算機140與磁盤驅動器100之間的高速數據轉移的緩沖器145。這樣,將被寫入磁盤驅動器100的數據從主計算機140被傳送到緩沖器145,然后到讀/寫通道146,該讀/寫通道將數據編碼并使其串行化,并且將必要的寫電流信號提供給磁頭118。為了檢索以前存儲在磁盤驅動器100中的數據,讀信號由磁頭118生成并被提供給讀/寫通道146。接口144執行讀信號解碼、錯誤檢測和糾錯操作。然后,接口144將檢索到的數據輸出到緩沖器145,供隨后轉移到主計算機140。磁盤驅動器100的這類操作在該技術領域中眾所周知,并在如Shaver等人于1994年1月4日發行的第5,276,662號美國專利中有所討論。
現在參考圖3,其中示出磁盤108的平面視圖,通常表現了磁盤108表面的各主要部件。磁盤108被環向地分成多個同心的圓形磁道160。每個磁盤108的磁道160數目將隨每個特定制造的磁盤108而改變。圍繞每個磁道160的一次旋轉(INDEX)162通常由沿磁盤108半徑延伸的標記指出。
磁盤108被徑向地分成多個伺服片段164。伺服片段164在磁盤108的中心166處開始,在磁盤108的外部邊緣168處終止。與每個磁盤108的磁道160數目一樣,每個磁盤108的伺服片段164的數目隨每個特定制造的磁盤108而改變。每個磁道160由間隔的伺服片段164組成,數據扇區在各個伺服片段164之間。
一般而言,圖12在操作399~417中示出根據本發明緩沖器145的緩沖器管理系統的總操作400的較佳實施例。在操作402中,通過將緩沖器145表現為被分成多個大小相等的緩沖器扇區208(圖4),來保存緩沖器表格206(圖4)。在操作404中,緩沖器扇區206被安排成循環鏈接列表,它們被稱作“緩沖器片段”210(圖4)。在操作406中,控制模塊202任意地選擇特定緩沖器片段210,來存儲數據文件。在操作408中,將實際上作為文件從主機140(圖4)轉移到緩沖器145的數據表現為被轉移到緩沖器片段210。在操作410中,數據文件在一段不確定的時期內被存儲在緩沖器145中。將數據文件表現為被存儲在緩沖器片段中,直到在操作412中從緩沖器145中移走數據并重新定位到磁盤108,從而完成從主機140到磁盤108的轉移。在操作414中,確定是否過早地執行了“查找”,即轉移或移走。如果沒有,則結束該過程。但是,如果查找過早,那么,如果查找是轉移,則操作416重新啟動操作408中的轉移。如果查找是移走和替換,則操作416重新啟動操作412中的移走。
現在參考圖4,示出用于管理數據轉移入和轉移出緩沖器145的緩沖器管理系統200的功能框圖。緩沖器管理系統200通過執行三個主要部件控制模塊202、應用程序模塊204和緩沖器表格206,來管理數據在主計算機140與磁盤108之間的轉移。緩沖器表格206被分成n個相等的緩沖器扇區208,每個緩沖器扇區具有可存儲512個字節的容量。每個緩沖器扇區208進一步合并成循環鏈接列表或緩沖器片段210。緩沖器表格206可以被分成n個緩沖器片段210,或者可以只由具有n個緩沖器扇區208的一個緩沖器片段210構成。以下的表格1描繪了緩沖器表格206,該緩沖器表格包含n=9個緩沖器扇區208和兩個循環鏈接的緩沖器片段210。
表格1為了簡易起見,表格1可被分成2個獨立的緩沖器片段210,如表格2和3中所示
表格2
表格3相對于緩沖器表格206,每個緩沖器扇區208都包含對緩沖器管理系統200的操作很重要的兩個指令偏移值214(“偏移量”)和下一扇區指令值212(“下一扇區指令”)。這兩個指令對于緩沖器管理系統200的操作至關重要,總體上說,偏移量214和下一扇區指令212定義緩沖器片段210的循環方面。例如,參考表格3,左列中的各個值被稱作“偏移值”214,右列中的各個值被稱作“下一扇區指令值”212。當應用程序模塊204位于當前的緩沖器扇區208“4”處時,應用程序模塊204讀取下一扇區指令212并移到下一緩沖器扇區208“7”。一旦位于當前緩沖器扇區208“7”,應用程序模塊204就讀取下一扇區指令212并移到下一緩沖器扇區208“5”。這個程序被重復,直到應用程序模塊204回到具有偏移值214為“4”的緩沖器扇區208,從而裝入循環鏈接片段210。根據該較佳實施例,緩沖器表格206的保存和緩沖器表格206上應用程序模塊204的操作都由控制模塊202來管理。下文討論有關應用程序模塊204和控制模塊202的更詳細細節。
現在參考圖5,示出圖4中的系統200的更具體的功能框圖。特別是,描繪了應用程序模塊204各部件的功能框圖。應用程序模塊204是緩沖器管理系統200的硬件部件。應用程序模塊204被分成兩個主要子模塊耦合到主機下一指示器(HNP)222的主機地址指示器(HAP)220和耦合到磁盤下一指示器(DNP)226的磁盤地址指示器(DAP)224。應用程序模塊204按逐段方式來漫游緩沖器表格206。主機下一指示器222和磁盤下一指示器226分別有效地控制主機地址指示器220和磁盤地址指示器224的下一緩沖器扇區208位置的定位。如上所述,應用程序模塊204的操作通過控制模塊202加以控制。
主機地址指示器220負責將數據塊提交給緩沖器145。在該較佳實施例中,通過參考緩沖器表格206來實現將數據提交給緩沖器145。在其操作中,主機下一指示器222向主機地址指示器220傳達主機地址指示器220正在操作的特定緩沖器片段210的“下一”扇區208值。主機下一指示器222從下一扇區指令212接收緩沖器片段210中“下一”扇區208的偏移值214。主機地址指示器220響應主機下一指示器222讀取的下一扇區指令212而漫游特定的緩沖器片段210。在主機地址指示器220將數據提交給當前緩沖器扇區208之后,如主機下一指示器222所傳達的,它立即跳轉到下一緩沖器扇區208。最終,最后的緩沖器扇區208的下一扇區指令值212將等于緩沖器片段210中主機地址指示器220所參考的初始緩沖器扇區208的偏移值214。這是循環片段盤繞的點。主機地址指示器220繼續漫游片段210,按需要進行盤繞,直到已經轉移當前命令的所有數據。
當數據將從緩沖器145被轉移到磁盤108時,應用程序模塊204一般按與數據從磁盤108轉移到緩沖器145時相同的方式進行操作。磁盤地址指示器224負責將數據從緩沖器145提交給磁盤108。在較佳實施例中,通過參考緩沖器表格206來實現將數據提交給磁盤108。在其操作中,磁盤下一指示器226向磁盤地址指示器224傳達磁盤地址指示器226正在操作的特定緩沖器片段210的“下一”緩沖器扇區208的位置。磁盤下一指示器226從下一扇區指令212接收緩沖器片段210中“下一”緩沖器扇區208的偏移值214。磁盤地址指示器224響應磁盤下一指示器226讀取的下一扇區指令212而漫游特定緩沖器片段210。在磁盤地址指示器224將數據從緩沖器扇區208提交給磁盤108之后,如磁盤下一指示器226所規定的,它立即跳轉到下一緩沖器扇區208。最終,最后的緩沖器扇區208的下一扇區指令值212將等于緩沖器片段210中的磁盤地址指示器224所參考的初始緩沖器扇區208的偏移值214。這是循環片段盤繞的點。磁盤地址指示器224繼續漫游片段210,按需要進行盤繞,直到已經轉移當前命令的所有數據。
相對于磁盤地址指示器224的操作,按逐個扇區的方式從緩沖器145轉移數據。一旦數據已從特定的緩沖器扇區208被提取,它就根據定位文件的特定伺服片段164和磁道160而被轉移到磁盤108。
現在參考圖6,示出操作緩沖器145的應用程序模塊204的示意圖。磁盤當前地址計數器244和磁盤當前頁寄存器246構成磁盤地址指示器224。同樣,主機當前地址計數器252和主機當前頁寄存器250構成主機地址指示器220。磁盤下一頁寄存器240和主機下一頁寄存器242分別用作磁盤下一指示器226和主機下一指示器222。重映射基地址寄存器248根據緩沖器145中的VBM表格206來設置磁盤重映射地址247和主機重映射地址249。相應地,在一個較佳實施例中,重映射基地址寄存器248的輸出根據啟用哪條應答控制線(241或243)來使用磁盤重映射地址247或主機重映射地址249對緩沖器145進行尋址。如果磁盤接口控制器要求從緩沖器145讀取數據,則啟用磁盤重映射應答線241并使用磁盤重映射地址247來存取緩沖器145。如果主機接口控制器要求將數據寫到緩沖器145,則啟用主機重映射應答線243并使用主機重映射地址249來對緩沖器145進行尋址。
磁盤下一頁寄存器240用將要從緩沖器表格145讀取的下一扇區208的下一扇區指令值212來裝載磁盤當前頁寄存器246。只要啟用起源于磁盤當前地址計數器244輸出端的磁盤數據地址線245,就可從當前扇區208讀取數據。磁盤當前地址計數器244的輸出端與扇區比較器256連接。磁盤當前地址計數器244的值被輸入到扇區比較器256的輸入B。比較器256的輸入A是緩沖器扇區208尺寸(通常是512個字節)的恒定值。當磁盤當前地址計數器244的值等于輸入A時,信號從比較器256的輸出端傳送到要求切換到下一緩沖器扇區208的磁盤當前頁寄存器246,它有一個由磁盤下一頁寄存器240裝載到磁盤當前頁寄存器246的值。下一緩沖器扇區208值由下一扇區指令值212定義,下一扇區指令值212從緩沖器145裝載入磁盤下一頁寄存器240。
主機下一頁寄存器242裝載主機當前頁寄存器250,后者具有將要被寫入緩沖器145的下一扇區208的下一扇區指令值212。只要啟用起源于主機當前地址計數器252輸出端的主機數據地址線251,就可從當前扇區208讀取數據。主機當前地址計數器252的輸出端與扇區比較器258連接。主機當前地址計數器252的值被輸入到扇區比較器258的輸入A。比較器258的輸入B是緩沖器扇區208尺寸(通常是512個字節)的恒定值。當主機當前地址計數器252的值等于輸入B時,信號從比較器258的輸出端傳送到要求切換到下一緩沖器扇區208的主機當前頁寄存器250,它有一個由主機下一頁寄存器242裝載到主機當前頁寄存器250中的值。下一緩沖器扇區值是下一扇區指令值212,下一扇區指令值212從緩沖器145裝載入主機下一頁寄存器242。
現在參考圖13,示出應用程序模塊204的遍歷部件的示意圖。遍歷部件260包括遍歷狀態機262、遍歷降值計數器264和下一遍歷地址寄存器266。遍歷狀態機262裝載有偏移基地址的值214。偏移值214被鎖存入下一遍歷地址寄存器266,作為遍歷部件260的下一扇區208位置。一旦遍歷狀態機262初始化遍歷降值計數器264,遍歷部件260就遍歷緩沖器片段210上的應用程序模塊204。遍歷部件260從下一遍歷地址寄存器266接收遍歷地址,并且連續執行應用程序模塊204的遍歷,直到遍歷降值計數器264完成計數。遍歷降值計數器264的計數由微處理器142裝載,從而允許應用程序模塊204反復躍過特定緩沖器片段210預定的次數。下一扇區指令值212指示下一扇區208遍歷,并且,該值通過下一遍歷地址寄存器266被傳達給遍歷部件260。在偏移基地址的值214最初被傳送到遍歷狀態機262之后,下一扇區指令值212是控制遍歷隨后扇區208的唯一的控制參數,直到遍歷降值計數器264完成計數,那時遍歷部件260被初始化,以等候偏移基地址的下一值214。
如上所述,緩沖器表格206的保存和應用程序模塊204的操作都由控制模塊202管理。控制模塊202是緩沖器管理系統200的軟件部件。通過確保對于任何給定時間的寫命令主機都具備最大可能數量的緩沖器145扇區208,控制模塊202使寫高速緩存的方法最佳化。簡而言之,控制模塊202提供了用于保存緩沖器表格206的機構,緩沖器表格206被應用程序模塊204用來經由主機220和磁盤226地址指示器指導將數據轉移入和轉移出數據緩沖器145。
參考圖7,在操作299~317中一般描述的流程圖示出控制模塊202用于將數據從主機140轉移到緩沖器145時的操作。在操作300中,控制模塊202將緩沖器145的各個扇區208組織成空閑_列表,以便對于任何給定時間的寫命令主機140所具備扇區208的可能數目最大。空閑_列表被初始化成寫緩沖器145中所有空閑扇區208的循環鏈接片段164。表格4是空閑_列表的示例,它被初始化為
表格4一旦控制模塊202完成將扇區208組織成空閑_列表,就開始數據從主機140到緩沖器145的物理轉換。正是在這個過程中,控制模塊202將緩沖器表格206分成一個或多個緩沖器片段210。在操作308中,控制模塊202任意地選擇一個緩沖器扇區208(在較佳實施例中,被稱作“第一索引扇區208”;在空閑_列表中,被稱作“空閑_空間_啟動”),控制模塊202將緩沖器扇區208選作數據轉移到緩沖器145的開始扇區208。控制模塊202控制應用程序模塊204,以便主機地址指示器220被安置到標有“空閑_空間_啟動”的第一索引扇區208。在操作302中,控制模塊202接收將被高速緩存的輸入數據。在操作310中,控制模塊202指導主機地址指示器220將文件的第一塊轉移到被識別為“空閑_空間_啟動”的扇區。在操作312中,控制模塊202確定文件的轉移是否完成。如果所有數據塊都已被轉移,則控制模塊跳轉到操作316。但是,如果轉移不完全,那么在操作314中,控制模塊202按照前面索引扇區208的下一扇區指令212將主機地址指示器220安置到下一“索引”扇區208(主機地址指示器220的每個當前位置較佳地被稱作“索引”扇區)。當主機下一指示器222參考下一索引扇區208時,主機地址指示器220轉移數據塊。在操作316中,一旦控制模塊202確定文件的轉移已完成,它就將標記“空閑_空間_啟動”分配給空閑_列表中的扇區208,空閑_列表直接出現在當前緩沖器片段210中最后緩沖器扇區208之后。圖8和表格5更加詳細地描述了對緩沖器片段210尺寸的確定,以及緩沖器表格206中空閑_列表被分成緩沖器片段210的情況。
參考圖8,在操作329~339中一般描述的流程圖示出將空閑_列表的扇區108安排到一個或多個片段210中。一旦主機140將長度“L”緩沖器扇區108的命令發送到緩沖器管理系統200,控制模塊202有效地將空閑_列表安排到一個或多個循環鏈接列表片段210中。在操作330(與圖7中的操作310相同)中,控制模塊202指導主機地址指示器220將文件的第一塊轉移到第一索引扇區208,在較佳實施例中被標為“空閑_空間_啟動”。通過用遍歷部件260遍歷在空閑_空間_啟動處開始的單獨鏈接的空閑_列表,并通過沿緩沖器表格206運行“L-1”扇區,操作332為該特殊命令定位數據的最后緩沖器扇區208,即該特殊緩沖器片段210的最后扇區208。操作334將對應于沿表格的“L-1”個步驟的緩沖器扇區208下一扇區指令212的值指定為“空閑_空間_啟動”。由于這個緩沖器扇區208現在并入下一扇區指令212“空閑_空間_啟動”,因此裝入循環鏈接列表,以示出特定緩沖器片段210是來自空閑_列表的獨立列表。
操作336遍歷空閑_列表中其余的緩沖器扇區208,以便展示其余的循環鏈接列表。在操作338中,將空閑_列表中最后扇區208的下一扇區指令212指定為“空閑_空間_啟動”,這裝入了獨立循環鏈接列表中緩沖器表格206的其余扇區208。這樣,最后的結果示出一旦主機140將數據轉移到緩沖器145,空閑_列表如何被分成一個或多個緩沖器片段210。表格5更好地示出通過將L=3的指令應用于表格4中的初始化空閑_列表,將緩沖器扇區208安排到緩沖器片段210中。
表格5扇區0~2代表控制模塊202當前指示主機地址指示器220用數據填充的緩沖器片段210,而扇區3~“n-1”代表空閑_列表中其余的緩沖器扇區208。在這個例子中,扇區“3”是下一“空閑_空間_啟動”位置,下次當主機140執行數據轉移時,控制模塊202將根據該位置指導主機地址指示器220。因此,在這個例子中,緩沖器表格206的空閑_列表被分成兩個分開的緩沖器片段210,長度3的一個和長度“n-3”的一個。可以實行類似的操縱,以便進一步再分各種緩沖器片段210或將各個片段210合并回單一的回路中。
現在參考圖9,示出一幅流程圖,展示了在發出寫命令的任何時候啟動的控制模塊202中的被編程的修補過程。雖然圖9中的修補過程實際上是一個與圖8中所定義過程分開的過程,但是這兩個過程彼此協作,修補過程最后終止于操作300。在操作320中,當主機140發送控制模塊202接收的新的寫命令時,開始修補過程。在操作322中,一旦一個新的寫命令被控制模塊202接收,控制模塊202就首先進行檢查,以確定來自新命令的數據邏輯塊地址(LBA)是否與來自之前命令的、被高速緩存入緩沖器扇區208的任何數據LBA相重疊。如果沒有發現重疊,則啟動操作300,并根據圖8的流程圖將數據轉移到緩沖器145。
如果發現LBA重疊,則在操作324中,控制模塊采用對應于老的寫命令的緩沖器扇區208,并將它們加到空閑_列表的末端。通過用老的寫扇區208代替空閑_列表末端處緩沖器扇區208的下一扇區指令值212,來實現這一點。來自這些緩沖器扇區208的數據被認為是“多余的”數據;這樣,緩沖器扇區208被修改成空閑_列表。一旦這兩個緩沖器扇區208被修改,則在操作324中,啟動操作300,根據圖8的流程圖將數據轉移到緩沖器145。表格6示出緩沖器表格206經歷圖8中所描繪的修補過程。
表格6在這個例子中,已將一列L=3修補到一列L=4,以便建立一個新的列L=7。相對于緩沖器扇區208(0、1、2)中所包含數據塊的LBA,以及有關新的寫命令的數據塊的LBA,曾發現重疊。因此,修補過程通過用扇區0的偏移值214代替扇區3的下一扇區指令212,將“剩余”緩沖器片段210的第一索引扇區208(扇區0)加到原來空閑_列表(扇區3、4、5和6)的末端。由于3是結束單獨鏈接列表的一個完整循環的緩沖器扇區208,因此扇區3表示空閑_列表的末端。然后,控制模塊202通過將主機地址指示器222安置在扇區0處來管理寫命令,扇區0將是特定緩沖器片段210的第一索引扇區208。
參考圖10,在操作349~359中一般描述的流程圖展示了控制模塊202被用來將數據從緩沖器145轉移到磁盤108時的操作。在操作350中,存儲將被轉移的文件第一數據塊的緩沖器扇區208被指定為“索引”扇區108。在操作352中,索引扇區208被加到空閑_列表的末端。在操作354中,控制模塊202指導磁盤地址指示器224將索引扇區208中的數據塊轉移到磁盤108。這樣,當來自緩沖器扇區208的數據被提交給磁盤108時,該特定緩沖器扇區208立即被釋放,供下一主機140寫命令使用。
在操作356中,控制模塊202確定將被轉移的、文件內的所有數據塊是否已被提交給磁盤。如果沒有,則在操作358中,如前一索引扇區208的下一扇區指令212所指示的,控制模塊202將磁盤地址指示器224定位在下一個“索引”扇區208上。在將磁盤地址指示器224定位在下一索引扇區208上之后,控制模塊202跳轉到操作352并從那兒重復該程序。一旦磁盤地址指示器224已經完全轉移存儲文件的特定緩沖器片段210(如操作356中所確定的),就完成了任務,并且控制模塊202初始化磁盤地址指示器210,以等候后來轉移的指令。
如果一個新的寫命令來到在LBA空間中是連續的控制模塊202,因此就直接跟隨在磁盤108上,緩沖器扇區208被提交給磁盤108,那么把將要被寫到磁盤108的緩沖器扇區208加到空閑_列表的末端的過程非常有利。這個優點在于不必為新的寫命令操縱緩沖器表格206,因為控制模塊202將在與它把舊數據提交給磁盤108相同的操作期間將新的數據寫到磁盤108。表格7對該過程的說明作了最好的分析
表格7在這個例子中,由于扇區3對應于空閑_空間_啟動,因此與新的寫命令有關的數據將具有第一索引扇區108“3”。如果新的寫命令大于(更多的扇區)片段210(在此情況下是扇區3、4、5和6),則控制模塊202將空閑_列表用作循環回路。由于存儲正被提交給磁盤108的數據的緩沖器扇區208已經被加到空閑_列表的末端,因此這類扇區208成為循環空閑_列表的一部分。控制模塊202指導磁盤地址指示器224跟隨主機地址指示器220(在第一索引扇區208處被啟動),而當來自緩沖器扇區208的數據被提交給磁盤108時,它又跟隨磁盤地址指示器224。因此,控制模塊202通過使用磁盤224和主機地址220指示器來執行實時的循環回路。
緩沖器管理系統200的另一個優點是控制模塊202能夠將兩個或多個被高速緩存的命令合并入一個緩沖器片段210。將一個緩沖器片段210合并入另一個緩沖器片段是有利的,因為這種過程允許在一次操作中將數據從緩沖器145寫到磁盤108。如果兩個或多個緩沖器片段210包含將要被寫到磁盤108上鄰近伺服片段164上的數據文件,則控制模塊202將把緩沖器表格206的這些緩沖器片段210“合并”入一個緩沖器片段210。
參考圖11,在操作379~385中一般描述的流程圖展示了控制模塊202的合并過程。在操作380中,對緩沖器片段210中所包含的被高速緩存的寫入進行比較,以確定數據文件將被提交給鄰近的還是連續的伺服片段164上的磁盤108。在操作382中,如果這類數據沒有被提交給鄰近的伺服片段164,那么操作381進行檢查,以發現表格206中的所有緩沖器片段210是否都已經相互比較過。如果沒有,則重復操作380的比較程序。如果所有緩沖器片段210都已經被比較過,則該過程結束,不合并任何緩沖器片段210。
如果來自緩沖器片段210的數據將在磁盤108上的連續位置中被提交,則實際的合并過程將在操作384中開始。在操作384中,任何緩沖器片段210的最后緩沖器扇區208的下一扇區指令值212被另一緩沖器片段210的第一索引扇區208的偏移值214代替。因此,這兩個片段210被合并入一個循環鏈接列表。一旦合并完成,就再次用操作380來啟動該過程,直到所有緩沖器片段210都相互比較,如操作381所確定的。本質上,這是由高速緩存到緩沖器145的寫入頻率引起的一個正在進行的過程。表格8和9進一步展示了合并過程操作384
表格8
表格9在這個例子中,表格8示出合并之前的緩沖器表格206。表格8包含3個分開的緩沖器片段210片段01、片段45和片段236。在此說明中,片段01中包含的數據塊將被放置在鄰近伺服片段210中的磁盤108上。所以,由于片段01和45在磁盤108上是連續的,因此,控制模塊202將合并這兩個緩沖器片段210,從而產生表格9。如所示的內容,表格9只包含兩個緩沖器片段210片段0145和片段236。
總之,本發明可以被視作一種緩沖器管理系統(例如,200),用于管理數據從主計算機(例如140)轉移到磁盤驅動器(例如100)中的可記錄的磁盤(例如108)。磁盤驅動器(例如100)操作主計算機(例如140)。可記錄的磁盤(例如108)被徑向地分成一個或多個相等的伺服片段(例如164)并環向地被分成一個或多個旋轉磁道(例如160)。這樣,磁道(例如160)由伺服片段(例如164)劃分。
在一種磁盤驅動器(例如100)中,通過將組成文件的所選數量的數據塊從主計算機(例如140)或磁盤(例如108)轉移到緩沖器(例如145)供臨時存儲文件,來實現主計算機(例如140)與磁盤(例如108)之間的數據轉移。在臨時存儲之后,文件被轉移到主計算機(例如140)或磁盤(例如108)。根據本發明,緩沖器的管理由緩沖器管理系統(例如200)來實現,緩沖器管理系統包括一個緩沖器表格(例如206)、一個應用程序模塊(例如204)和一個控制模塊(例如202)。
緩沖器管理系統(例如200)包括一個緩沖器表格(例如206),它被分成一個或多個尺寸相等的緩沖器扇區(例如208)。每個緩沖器扇區(例如208)是緩沖器片段(例如210)中的一個扇區。緩沖器片段(例如210)被定義為緩沖器表格(例如206)內的一個循環鏈接列表。緩沖器管理系統(例如200)還包括漫游每個特定緩沖器片段(例如210)的應用程序模塊(例如204)。緩沖器表格(例如206)被分成至少一個緩沖器片段(例如210)。但是,緩沖器表格(例如206)只能被分成與緩沖器表格(例如206)所具有的緩沖器扇區(例如208)一樣多的緩沖器片段(例如210)。
緩沖器管理系統(例如200)進一步包括一個控制模塊(例如202),它創建并保存緩沖器表格(例如206)。控制模塊(例如202)與應用程序模塊(例如204)耦合,以便管理應用程序模塊(例如204)漫游緩沖器表格(例如206)。應用程序模塊(例如204)響應應用程序模塊(例如204)當前所在索引扇區(例如208)中的下一扇區指令(例如212)而漫游緩沖器表格(例如206)。在數據被過早地提交給磁盤(例如108)或緩沖器(例如145)的情況下,控制模塊(例如202)包括一個查找程序(例如在操作414中),該查找程序重新啟動應用程序模塊(例如204),以執行隨后的數據查找。
應用程序模塊(例如204)較佳地包括用于將數據提交給緩沖器(例如145)的主機地址指示器(例如220)。主機地址指示器(例如220)被較佳地耦合到主機下一指示器(例如222),它將索引扇區(例如208)的下一扇區指令(例如212)傳達給主機地址指示器(例如220)。因此,下一扇區指令(例如212)控制特定緩沖器片段(例如210)內主機地址指示器(例如220)的定位。
應用程序模塊(例如204)也較佳地包括用于將數據從緩沖器(例如145)提交給磁盤(例如208)的磁盤地址指示器。磁盤地址指示器(例如224)被較佳地耦合到磁盤下一指示器(例如226),它將索引扇區(例如208)的下一扇區指令(例如212)傳達給磁盤地址指示器(例如224)。因此,下一扇區指令(例如212)控制特定緩沖器片段(例如210)內磁盤地址指示器(例如224)的定位。
在一個較佳實施例中,緩沖器表格(例如206)包括系統可獲得的、用于臨時存儲的空閑扇區列表。當一個現存數據塊從索引扇區(例如208)被寫到磁盤(例如108)時,控制模塊(例如202)將索引扇區(例如208)修補入空閑扇區列表,以便索引扇區(例如208)被提交給磁盤(例如108)時系統(例如200)可以利用它。控制模塊(例如202)從空閑列表中任意地選擇特定緩沖器片段(例如210),并且當主機(例如140)發出寫指令時,它將主機地址指示器(例如220)任意地安置在特定緩沖器片段(例如210)的第一索引扇區(例如208)上。空閑列表較佳地包括含有被寫到磁盤108或被認為是多余的數據的任何緩沖器片段(例如210)。
控制模塊(例如202)也包括一個合并程序(例如在操作380~384中)。合并程序(例如在操作380~384中)結合將被寫到鄰近伺服片段(例如164)的一個或多個緩沖器片段(例如210)。合并程序(例如在操作380~384中)將多個緩沖器片段(例如210)轉換成可以在一次寫過程中提交給磁盤(例如108)的集合緩沖器片段(例如210)。
本發明也可以被視作一種方法(例如在操作400中),用于管理將數據從主計算機(例如140)轉移到磁盤驅動器(例如100)中的可記錄磁盤(例如108)。該方法(例如在操作400中)包括保存(例如在操作402中)緩沖器表格(例如206),該緩沖器表格被分成一個或多個尺寸相等的緩沖器扇區(例如208);將每個緩沖器扇區(例如208)安排(例如在操作404中)到至少一個緩沖器片段(例如210)中。緩沖器表格(例如206)(是單獨鏈接列表)被分成一個或多個緩沖器片段(例如210)(是循環鏈接列表)。該方法(例如在操作400中)還包括選擇(例如在操作406中)一個特定的緩沖器片段(例如210),來臨時存儲將從主計算機(例如140)轉移到緩沖器(例如145)的文件;通過響應索引扇區(例如208)中包含的下一扇區指令(例如212)漫游特定緩沖器片段(例如210),來將文件從主計算機(例如140)轉移(例如在操作408中)到緩沖器(例如145)。索引扇區是正從其轉移數據的緩沖器扇區(例如208)。
該方法(例如在操作400中)還包括將文件臨時存儲(例如在操作410中)在特定緩沖器片段(例如210)中達一段時期;最后通過響應索引扇區(例如208)中包含的下一扇區指令(例如212)漫游特定緩沖器片段(例如210),來將文件從緩沖器(例如145)中移走(例如在操作412中)并將文件重新定位到可記錄的磁盤(例如108)。
在一個較佳實施例中,保存緩沖器表格(例如在操作402中)的方法(例如在操作400中)包括該步驟創建(例如在操作300中)空閑扇區列表,以易于接受新的數據塊。選擇步驟(例如在操作406中)中的方法較佳地包括一旦主計算機(例如140)發送將文件寫到緩沖器(例如145)的命令,就任意地將第一索引扇區(例如208)選為將用于存儲數據(例如操作410)的特定緩沖器片段(例如210)的開始。安排步驟(例如操作404)中的方法(例如在操作400中)較佳地包括通過在任意選擇的第一索引扇區(例如208)處開始,并且遍歷比文件中所選數目數據塊少一個的緩沖器扇區,從而從空閑扇區列表中生成一個緩沖器片段(例如210)。最后,在該較佳實施例中,該方法(例如在操作400中)接受(例如在操作302中)將被高速緩存的輸入數據文件,并將該輸入數據文件放入索引扇區(例如208)處的緩沖器片段(例如210)。
如所述的內容,該方法(例如在操作400中)可以通過將各個扇區(例如208)組織成一個或多個緩沖器片段(例如210)來安排(例如在操作404中)緩沖器表格。但是,緩沖器表格(例如206)只可以被分成等于緩沖器表格(例如206)中扇區(208)數量的最大數量的緩沖器片段(例如210)。該方法(例如在操作400中)也可以把將被提交給磁盤(例如108)的每個扇區(例如208)修補入(例如在操作354-358中)空閑扇區列表中,以便每個扇區(例如208)被提交給磁盤(例如108)時系統可以利用它。
在一個較佳實施例中,該方法(例如在操作400中)比較(例如在操作322中)將被存儲在緩沖器(例如145)中的數據塊和所有緩沖器片段(例如210)中的每個現存數據塊。如果該比較(例如在操作322中)揭示出現存數據塊與將被存儲在緩沖器(例如145)中的數據塊之間的冗余度,則存儲現存數據塊的緩沖器片段(例如210)被修補(例如在操作354-358中)入空閑列表。該方法(例如在操作354-358中)最好還將含有將被寫入鄰近伺服片段(例如208)的數據文件的一個或多個緩沖器片段(例如210)合并在一起(例如在操作384中),從而只允許為那些片段164執行一次寫操作。
在該較佳實施例中,該方法(例如在操作400中)包括通過漫游具有耦合到主機下一指示器(例如222)的主機地址指示器(例如220)的特定緩沖器片段(例如210),來將數據轉移(例如在操作408中)到緩沖器(例如145)。主機下一指示器(例如222)向主機地址指示器(例如220)傳達下一扇區指令(例如212)。本質上,下一扇區指令(例如212)控制特定緩沖器片段(例如210)內主機地址指示器(例如220)的定位。此外,該方法(例如在操作400中)較佳地包括通過漫游具有耦合到磁盤下一指示器(例如226)的磁盤地址指示器(例如224)的特定緩沖器片段(例如210),從緩沖器中移走數據并對其重新定位(例如在操作412中)。磁盤下一指示器(例如226)向磁盤地址指示器(例如224)傳達下一扇區指令(例如212)。本質上,下一扇區指令(例如212)控制特定緩沖器片段(例如210)內磁盤地址指示器(例如224)的定位。萬一過早地轉移(例如在操作408中)數據或過早地移走并替換(例如在操作412中)數據,則可根據該方法(例如在操作400中)來重新啟動(例如在操作414、416中)兩種操作中的任何一種操作。
將顯而易見,本發明很適合達到所述的各種目標和優點及其中固有的目標和優點。已出于揭示目的描述了本較佳實施例,但可以在本發明的范圍內進行各種變化和修改。例如,VBM可能對使用緩沖器來執行數據轉移的其他類型的數據存儲設備(例如,磁帶驅動器、光驅和網絡)有用。同樣,可以把控制模塊設計成使用集成電路或邏輯電路(與軟件對立,或與軟件結合)。此外,應用程序模塊可以將地址指示器和下一指示器組合在一個單一部件中。另外,可以用不脫離本發明的各種其他的方法來解釋緩沖器表格的保存。例如,VBM的各種技術可用于文件分配表格。VBM表格本身也可被編制成雙重鏈接列表(具有下一指示器和前一指示器),硬件可以被構建成在保存這種表格中協助軟件。也可以將整個系統建立成處理大于或小于標準512個字節的數據選集。可以進行許多其他的改變,精通該技術領域的人將會了解這些改變,并且這些改變被包含在所揭示的本發明的精神之內并在所附權利要求書中被加以定義。
權利要求
1.一種用于管理將數據從主計算機轉移到磁盤驅動器中的可記錄磁盤的緩沖器管理系統,在主計算機上操作磁盤驅動器,可記錄磁盤被徑向地分成多個相等的伺服片段并被環向地分成多個旋轉磁道,其中,磁盤驅動器的類型是可以通過將被定義為選定數量數據塊的文件轉移到緩沖器供臨時存儲,來實行主計算機與磁盤之間的數據轉移,其特征在于該系統包括一個被分成多個相等緩沖器扇區的緩沖器表格,其中多個緩沖器扇區中的每個緩沖器扇區都是緩沖器片段中的一個扇區,該緩沖器片段被定義為劃分緩沖器表格的多個循環鏈接列表中的一個;一個應用程序模塊,它可漫游特定緩沖器片段,其中當漫游緩沖器片段時,數據被轉移;以及,一個控制模塊,用于創建和保存緩沖器表格,控制模塊與應用程序模塊耦合,以便控制模塊響應應用程序模塊當前所在索引扇區中的下一扇區指令來管理應用程序模塊的漫游。
2.如權利要求1所述的系統,其特征在于,應用程序模塊還包括用于將數據提交給緩沖器的主機地址指示器,主機地址指示器包括用于將索引扇區的下一扇區指令傳達給主機地址指示器的主機下一指示器,以便下一扇區指令控制特定緩沖器片段內主機地址指示器的定位;用于將數據從緩沖器提交給磁盤的磁盤地址指示器,該磁盤地址指示器包括用于將索引扇區的下一扇區指令傳達給磁盤地址指示器的磁盤下一指示器,以便下一扇區指令控制特定緩沖器片段內磁盤地址指示器的定位。
3.如權利要求2所述的系統,其特征在于,緩沖器表格包括系統可用的、用于臨時存儲的空閑扇區列表;其中控制模塊把將要被寫到磁盤的索引扇區修補入空閑列表,以便索引扇區被提交給磁盤時,系統可利用它。
4.如權利要求3所述的系統,其特征在于,控制模塊按任意的方式從空閑列表中選擇特定的緩沖器片段,以便主機地址指示器被控制模塊任意地安置在特定緩沖器片段的第一索引扇區上。
5.如權利要求3所述的系統,其特征在于,扇區被修補入空閑扇區列表,因為當與一個新命令的數據塊比較時,索引扇區的數據塊是多余的。
6.如權利要求2所述的系統,其特征在于,控制模塊包括一個查找程序,其中在過早提交數據的情況下,查找程序重新啟動應用程序模塊。
7.如權利要求1所述的系統,其特征在于,緩沖器表格至少包括一個緩沖器片段;其中緩沖器表格被分成等于緩沖器表格中緩沖器扇區數量的最大數量的緩沖器片段。
8.如權利要求1所述的系統,其特征在于,控制模塊還包括一個合并程序,其中合并程序組合將被寫到多個鄰近伺服片段的緩沖器表格中的多個緩沖器片段,以便合并程序將多個緩沖器片段轉換成可以在一次寫過程中被提交給磁盤的集合緩沖器片段。
9.一種用于管理將數據從主計算機轉移到磁盤驅動器中的可記錄磁盤的方法,磁盤驅動器操作主計算機,可記錄磁盤被徑向地分成多個相等的伺服片段并被環向地分成多個旋轉磁道,其中磁盤驅動器的類型可以通過將被定義為所選數量數據塊的文件轉移到緩沖器供臨時存儲文件,來實行主計算機與磁盤之間的數據轉移,其特征在于該方法包括以下步驟(a)保存被分成多個尺寸相等的緩沖器扇區的緩沖器表格;(b)將多個緩沖器扇區中的每個緩沖器扇區安排到至少一個緩沖器片段中,該緩沖器片段被定義為劃分緩沖器表格的循環鏈接列表;(c)選擇一個特定的緩沖器片段,來臨時存儲將從主計算機轉移到緩沖器的文件;(d)通過響應索引扇區中包含的下一扇區指令而漫游特定的緩沖器片段,來將文件從主計算機轉移到緩沖器,該索引扇區被定義為正從其轉移數據的緩沖器扇區;(e)將文件臨時存儲在特定緩沖器片段達一段時期;以及(f)通過響應索引扇區中包含的下一扇區指令而漫游特定的緩沖器片段,從緩沖器移走文件并將文件重新定位到可記錄磁盤。
10.如權利要求9所述的方法,其特征在于,保存步驟(a)包括創建易于接受新的數據塊的空閑扇區列表。
11.如權利要求10所述的方法,其特征在于,選擇步驟(c)包括將第一索引扇區任意地選為將在存儲步驟(e)中使用的特定緩沖器片段的開始。
12.如權利要求11所述的方法,其特征在于,安排步驟(b)包括通過在任意選擇的第一索引扇區處開始并遍歷比文件中所選數量數據塊少一的緩沖器扇區,來從空閑扇區列表中生成緩沖器片段。
13.如權利要求12所述的方法,其特征在于,轉移步驟(d)還包括(i)接受將被高速緩存的輸入數據文件;以及(ii)將輸入數據文件放入索引扇區處的緩沖器片段。
14.如權利要求9所述的方法,其特征在于,安排步驟(b)包括將各個扇區組織成多個緩沖器片段,緩沖器片段的最大數量等于緩沖器表格中扇區的數量。
15.如權利要求10所述的方法,其特征在于還包括(g)把將要被寫到磁盤的索引扇區修補入空閑扇區列表,以便索引扇區被提交給磁盤時,系統可用利用它。
16.如權利要求15所述的方法,其特征在于還包括(h)比較將被存儲在緩沖器中的數據塊和每個緩沖器片段中每個現存的數據塊,以便如果比較步驟(h)揭示了現存數據塊與將被存儲在緩沖器中的數據塊之間的冗余度,則存儲現存數據塊的緩沖器片段被修補入空閑列表。
17.如權利要求9所述的方法,其特征在于還包括(g)把包含將被寫到多個鄰近伺服片段的數據文件的多個特定緩沖器片段合并起來,以便可以在一次操作中執行多個特定緩沖器片段的寫操作。
18.如權利要求9所述的方法,其特征在于,轉移步驟(d)包括漫游具有耦合到下一指示器的地址指示器的特定緩沖器片段,其中下一指示器將下一扇區指令傳達給地址指示器,以便下一扇區指令控制特定緩沖器片段內地址指示器的定位。
19.如權利要求9所述的方法,其特征在于還包括(g)在過早地執行轉移步驟(d)和移動與替換步驟(f)中任何一個步驟的情況下,重新啟動這些步驟。
20.一種用于數據存儲設備的緩沖器管理系統,其特征在于包括一個應用程序模塊,用于將數據轉移入和轉移出數據存儲設備中的緩沖器;以及用于操作應用程序模塊的控制裝置,以便應用程序模塊在該控制裝置的管理下漫游緩沖器表格。
全文摘要
本發明揭示了用于管理將數據轉移入和轉移出磁盤驅動器中的緩沖器的方法和系統。定向緩沖器管理(VBM)系統的操作由基于軟件的控制模塊來管理。控制模塊通過將緩沖器表格分成各緩沖器扇區來創建和保存緩沖器表格。緩沖器扇區被進一步安排到緩沖器片段或劃分緩沖器表格的循環鏈接列表。控制模塊通過使應用程序模塊穿越緩沖器表格,來執行轉移。一旦應用程序模塊被控制模塊任意地安置在索引扇區處,那么當應用程序模塊漫游由索引扇區識別的特定緩沖器片段時,就可實現數據轉移。通過主機與磁盤地址指示器來管理對應用程序模塊穿越緩沖器片段的特殊控制,主機與磁盤地址指示器分別耦合到主機與磁盤下一指示器。
文檔編號G11B20/10GK1434936SQ00819122
公開日2003年8月6日 申請日期2000年10月26日 優先權日1999年12月22日
發明者S·S·威廉姆斯, B·A·庫克, G·P·莫勒, J·W·海因斯 申請人:西加特技術有限責任公司