專利名稱:用于從磁盤驅動器推測性地流出數據的方法
技術領域:
本發(fā)明總體上涉及數字數據存儲,具體地說涉及推測數據讀出。更具體地說,本發(fā)明涉及一種用于從磁盤驅動器推測性地讀出數據的方法,該數據是由讀/寫磁頭的位置和以前請求的數據的性質確定的。
背景技術:
數字計算機執(zhí)行兩種主要內部功能。其存儲軟件(即,指令和數據存儲在寄存器、緩沖器、高速緩沖存儲器、主存儲器和輔助存儲器中)并操縱該軟件(即計算機執(zhí)行算術運算、試探運算、數據轉換和在諸如加法器、移位器等的適當執(zhí)行單元中的其它過程等)。雖然計算機的處理速度多半是基于中央處理器和內部總線速度,限制計算機速度的一個主要因素是將指令和數據提供給執(zhí)行單元的時間長度。該時間長度在部分上是包含所需指令/數據的存儲器的分層結構位置和實際速度的函數。
存儲器的分層結構位置是指該存儲器在邏輯上與執(zhí)行單元的靠近程度。數據/指令不能跳過分層結構的層,而是必須從一層通過下一層,直到其到達該執(zhí)行單元。
存儲器的實際速度是存儲器的物理結構的函數。半導體中的存儲器是受電路速度限制的,而輔助存儲器中的存儲器速度卻是主要受磁盤和/或讀/寫磁頭的機械運動限制的。
圖1示出了典型的存儲器分層結構。在存儲器分層結構中越高的存儲器(離中央處理單元-CPU越近)傾向于越快、越昂貴并且容量越小,而在存儲器分層結構中的越低的存儲器傾向于越慢、越便宜并且容量越大。例如,在計算機100中,CPU102包括處理器核心104,該處理器核心104通常具有板上第1層(L1)高速緩沖存儲器108。L1高速緩沖存儲器108通常由非??焖俚撵o態(tài)隨機存儲器(SRAM)組成。(計算機核心104還具有板上隊列106,板上隊列106是極快的寄存器/鎖存器,其將指令/數據傳到處理器核心104中的執(zhí)行單元。但是,雖然隊列、寄存器和鎖存器主要存儲指令和數據,但它們通常并不與存儲器分層結構相關。)另外,第2層(L2)高速緩沖存儲器110在CPU102中,但不在處理器核心104中。第3層(L3)高速緩沖存儲器112不在CPU102的板上。L2高速緩沖存儲器110和L3高速緩沖存儲器112,象L1高速緩沖存儲器108一樣,通常是SRAM的。L3高速緩沖存儲器112通過系統(tǒng)總線111連接到系統(tǒng)存儲器113,系統(tǒng)存儲器113通常是動態(tài)隨機存儲器(DRAM),其比SRAM稍慢。系統(tǒng)存儲器113通過輸入/輸出(I/O)總線114連接到輔助存儲器116,輔助存儲器116可以是軟盤驅動器、壓縮光盤-只讀存儲器(CD-ROM)驅動器、數字視盤(DVD)驅動器、Zip驅動器、或硬盤驅動器存儲設備。
輔助存儲器比存儲器分層結構中的其它存儲器慢得多。這主要是因為輔助存儲器有機械部件,而其它存儲器沒有。也就是說,其它存儲器主要受組成該存儲器的晶體管導通和截止所用的時間的限制,而輔助存儲器需要讀寫磁頭、光學傳感器、或其它機械設備的物理運動來從旋轉存儲介質(硬盤、CD-ROM、軟盤、DVD等)讀出數據。
通常,數據以代表數據的邏輯組的單位從輔助存儲器設備中檢索出。例如,通過首先規(guī)定第一數據塊的邏輯塊地址(LBA),以及記錄中的塊數,數據從磁盤驅動器中檢索出。信息然后從磁盤驅動器流到磁盤控制器,直到最后一個邏輯塊發(fā)送出。磁盤然后等待下一個讀命令,該讀命令具有其LBA和要傳送的塊數。該方法和系統(tǒng)主要通過存儲設備的機械特性限制數據傳送的速度。這樣,在磁盤驅動器中,當驅動器等待下一個需要的LBA的時候,浪費了大量時間。
因此,需要一種方法,該方法通過避免等待下一個數據傳送命令的“停機時間”來增加輔助存儲器設備的存取速度。
發(fā)明內容
鑒于以上所述,本發(fā)明提供了一種支持磁盤驅動器中的推測性數據傳送的方法和程序產品。所請求的第一數據從磁盤讀出。在第一數據讀出之前,確定是否有未請求的第二數據也很可能在隨后的時間里作為數據流的一部分而被請求。如果是這樣,則確定第二數據和第一數據是否存儲在磁盤上的物理/邏輯靠近的位置。如果第二數據靠近第一數據,則第二數據被推測性地讀出并存儲在本地磁盤高速緩沖存儲器中。如果接下來的請求來到磁盤驅動器以獲取第二數據,則第二數據被從磁盤高速緩沖存儲器中快速產生出來,而不是從磁盤緩慢讀出。
本發(fā)明的上述及其它目的、特征和優(yōu)點在下面的詳細說明中將會變得明顯。
被認為是本發(fā)明特征的新穎性特征在所附的權利要求書中闡述。但是,參照以下對示例性實施例的詳細說明并結合附圖一起閱讀,本發(fā)明自身以及優(yōu)選使用方式、其進一步的目的和優(yōu)點將會得到最好的理解,其中圖1示出了典型的現有技術存儲器分層結構;圖2示出了本發(fā)明中所用的典型數據處理系統(tǒng);圖3是包含本發(fā)明的磁盤驅動器存儲設備的優(yōu)選實施例的框圖;圖4a示出了磁盤表面的磁道的一部分,該部分存儲了間插的來自不同讀請求的數據段;圖4b示出了磁盤表面,在該磁盤表面上來自不同數據讀請求的不同數據段位于不同的磁盤磁道上;以及圖5是示出了在本發(fā)明中所用的優(yōu)選步驟的流程圖。
具體實施例方式
現在參照圖2,數據處理系統(tǒng)200示出了本發(fā)明中所用的典型數據處理系統(tǒng),它包括中央處理單元(CPU)202,中央處理單元(CPU)202連接到系統(tǒng)總線208。在典型實施例中,數據處理系統(tǒng)200包括也連接到系統(tǒng)總線208的圖形適配器204,用來提供用戶接口信息到顯示器206。
系統(tǒng)存儲器210和輸入/輸出(I/O)總線橋212也連接到系統(tǒng)總線208。I/O總線橋212將I/O總線214耦合到系統(tǒng)總線208,從一條總線向另一條總線中繼和/或變換數據事務。諸如可能是硬盤驅動器的非易失性存儲器216的外圍設備,以及可能包括傳統(tǒng)鼠標、軌跡球等的輸入設備218,連接到I/O總線214。連接到I/O總線214上的還有網絡接口卡(NIC)226,網絡接口卡(NIC)226使得能夠在數據處理系統(tǒng)200和網絡220之間進行網絡通信。
圖2所示的典型實施例僅是為了解釋本發(fā)明而提供,本領域技術人員將認識到許多變化是可能的,無論是形式上的還是功能上的。例如,數據處理系統(tǒng)200還可包括壓縮光盤只讀存儲器(CD-ROM)或數字視盤(DVD)驅動器、聲卡和揚聲器、以及許多其它任選部件。所有這些變化都被認為是落在本發(fā)明的精神和范圍內。
圖3是包含本發(fā)明的典型磁盤驅動器存儲設備304的優(yōu)選實施例的框圖。存儲器設備304具有作為數據記錄介質的硬磁盤328,以及用于從/向磁盤328讀/寫數據的磁頭322。存儲器設備304還具有用于移動將磁頭322運送到磁盤328表面上的特定位置的滑塊的致動器機構325、用于使得致動器機構325的存取臂擺動的音圈馬達(VCM)324,以及VCM驅動器322,該VCM驅動器3221)控制用于使得磁盤328旋轉的主軸馬達以及2)驅動VCM324。VCM驅動器322包括9位數模轉換器(DAC),9位數模轉換器(DAC)將來自MPU329的數字控制信號轉換為模擬控制信號并將其發(fā)送到VCM324。
存儲器設備304還具有用于控制數據讀/寫操作的讀/寫電路326,讀/寫電路326包括模塊,該模塊包括用于檢測信號的放大器電路、波形整形器、模數轉換器(ADC)、數模轉換器(DAC)。存儲器設備304還具有用于控制從/向磁盤328的數據讀/寫操作的硬盤控制器(HDC)337,用于控制連同HDC337在內的整個HDD的操作的微處理器單元(MPU)329,用于存儲微程序和數據以操作MPU329的ROM320,用于暫時存儲將要響應當前讀/寫請求讀/寫到磁盤328上的數據的隨機存儲器(RAM)331,以及通過雙向線路連接到主機系統(tǒng)302的接口(I/F)335。
HDC337、RAM331和MPU329通過數據總線(未示)相互連接。此外,HDC337還通過控制總線(未示)連接到MPU329,并通過I/F335連接到主機系統(tǒng)302。
磁盤328可以是嵌入的伺服(即扇區(qū)伺服)類型,其中磁盤表面具有同心的和環(huán)形的磁道,每個磁道包含數據區(qū)域和伺服區(qū)域,在數據區(qū)域記錄數據,在伺服區(qū)域事先記錄伺服數據,磁盤328或者可以是伺服表面伺服類型,其中磁盤的一個磁盤表面僅供伺服使用,而僅在另一個磁盤表面上記錄數據。
磁盤328具有多個同心的和環(huán)形的數據磁道,每個磁道包括n個LBA(邏輯塊地址),其中n表示任意正整數。磁盤328優(yōu)選被格式化以包括具有預定數目的第一順序LBA的第一磁道,緊跟著第一順序LBA、具有預定數目的第二順序LBA的第二磁道,以及在第一磁道和第二磁道之間安置的至少一個磁道。HDC337、RAM331、MPU329、ROM320和I/F335作為一個整體構成了控制器339,該控制器339通過執(zhí)行控制程序(微程序)以控制從主機系統(tǒng)302的讀/寫請求來控制整個磁盤驅動器存儲器設備304的操作。
HDC337還包括高速緩沖存儲器332和存取流控制器330。存取流控制器330包括有關在存取特定的LBA或LBA組后可能需要的記錄的預測信息。高速緩沖存儲器332高速緩沖存儲基于存儲在存取流控制器330中的信息預測的推測性讀出。有關這些推測性讀出的更多細節(jié)和其基礎在下面參照圖4a、4b和5討論。
雖然存儲器設備304被描述為硬盤驅動器,應當理解,在本發(fā)明的優(yōu)選實施例中,存儲器設備304可以是任何輔助存儲器設備,包括軟盤驅動器、讀/寫壓縮光盤只讀存儲器(RW-CDROM)、Zip驅動器等等。
現在參照圖4a,示出了磁盤表面的磁道402的一部分。該示出的部分在LBA A1-A8,B1-B5和A9-A11中包括數據。如果讀命令從LBAA1-A11中請求數據,本發(fā)明確定接下來會作出從LBA B1-B5中請求數據的讀命令的可能性是多大。如果該將來的對于LBA B1-B5的讀請求是非??赡馨l(fā)生的,并且由于讀磁頭無論如何必須經過LBA B1-B5才能從LBA A8到LBA A9,則存取流控制器330控制HDC337以讀出LBA B1-B5,并將該數據存儲在高速緩沖存儲器332中。
在LBA B1-B5中的數據在將來被請求的可能性系數由存儲在存取流控制器330中的信息來確定,該信息例如歷史數據、邏輯關系和其它預測數據。
例如,歷史數據可以告知存取流控制器330是否在過去對于LBAA1-A11的數據讀請求有規(guī)律地在對于LBA B1-B5的數據讀請求之前或之后(緊接著或有很小的時間間隔)。如果是這樣,則認為有可能在當前對于LBA A1-A11的數據讀請求后跟著對于LBA B1-B5的讀請求。可能性確定可以被調整,以使得如果過去的讀出發(fā)生在LBAA1-A11讀出之后的任何選定的次數百分比期間的話作出LBA B1-B5的推測性讀出。也就是說,如果在過去LBA B1-B5的讀出在LBAA1-A11數據讀出之后總是(100%)、頻繁(例如80-99%)、經常(例如50-79%)、有時(例如20-49%)或極少(例如5-19%)作出的話,可選擇性地作出LBA B1-B5的推測性讀出。
推測性地讀出在LBA B1-B5中的數據的選擇可按照在LBAA1-A11和LBA B1-B5中的數據之間的邏輯關系進行。例如,如果兩組數據都是ASCII(美國信息交換標準碼)字符,則可以確定兩組數據很可能是同一文檔的部分,這樣就調用LBA B1-B5中的數據的推測性讀出。
其它邏輯關系也可被用來調用該推測性讀出。例如,該邏輯關系可以是數據所存儲在的磁盤上的物理位置。這樣,如果LBA B1-B5靠近LBA A1-A11,或在LBA A1-A11中,可確定非??赡軄碜訪BAB1-B5的數據在會在請求LBA A1-A11中的數據之后接下來被請求。
現在參照圖4b,LBA Ax和LBA Bx可位于不同磁道,如圖所示。即,LBA A1-A8可位于內磁道404,LBA A9-A11可位于外磁道408,LBA B1-B5可位于之間磁道406。當對于來自LBA A1-A11的數據的讀請求來到時,確定關于讀/寫磁頭的物理位置,在內磁道404和外磁道408之間運動(反之亦然)是設計好的軌跡。由于讀/寫磁頭必須得跨過中間磁道406,如果確定出非??赡軄碜訪BA B1-B5的數據接下來要被請求,則該數據被如上所述推測性地讀出。
在從LBA A1-A8讀出數據之后但在從LBA A9-A11讀出數據之前從LBA B1-B5推測性讀出數據假定從LBA B1-B5推測性讀出數據不會產生失速或其它問題。也就是說,如果由于定時或其它臨界問題LBA A9-A11必須在讀出LBA A1-A8之后立即讀出,則推測性讀出LBA B1-B5,如果真要進行的話,在讀出LBA A9-A11之后進行。
參照圖5,示出了說明本發(fā)明的優(yōu)選實施例的流程圖。從塊502開始,在輔助驅動器接收到對于數據A的請求,數據A具有兩部分A1和A2,分別存儲在第一組(優(yōu)選連續(xù))LBA和第二組(優(yōu)選連續(xù))LBA中。在接收到該請求后,但優(yōu)選在執(zhí)行完該讀出前,對數據A所存儲在的LBA執(zhí)行分析(塊504)。該分析可以是歷史表格檢查(確定是否通常在對于數據A的請求之后請求其它LBA中的其它數據)、邏輯檢查等等,如上面所述的。
如果確定出有可能將來會請求數據B的讀出(查詢塊506),則確定(查詢塊508)關于是否數據B存儲在物理上和邏輯上靠近數據A的位置,以使得讀出數據B的(時間)成本低于預定的量。例如,該確定可以按照數據B是如圖4a和4b所示物理上存儲在數據A的子段之間,還是數據B位于靠近數據A的第一讀出段處來進行。如果數據B是靠近的,則讀出數據A和數據B的全部(塊510),并將數據A輸出到請求主機計算機(塊512),而將數據B在圖3所示的高速緩沖存儲器332中高速緩沖存儲。
接著,確定關于除了對于數據B的推測性讀出之外是否進行其它推測性讀出(查詢塊516)。也就是說,可以基于對于數據A的讀出請求為其它LBA上的其它數據進行同一類型的分析,象上面對于數據B所描述的那樣。這樣,對于數據A的讀出請求可產生對于數據B和在不同組的LBA位置中其它數據(“數據X”)和/或其它不同數據組的推測性數據讀出。如果其它推測性讀出被作出,其也被高速緩沖存儲。如果接下來的推測性讀出造成高速緩沖存儲器可能的溢出(查詢塊518),則數據B被清倉(塊520),假定其從來未被請求。
如果數據B仍然在高速緩沖存儲器中并且接下來接收到對于數據B的讀出請求(查詢塊522),則不是從磁盤讀出數據B,而是高速緩沖存儲器輸出數據B到請求方(塊524),該過程結束。
因此本發(fā)明提供了一種用于基于以下概率從磁盤推測性地讀出數據的新穎的和有用的方法1)第二數據組將在第一數據組被從磁盤上請求之后被請求,以及2)在第一數據組或其一部分要被讀出時基于讀/寫磁頭的物理位置讀第二數據組是節(jié)省時間/成本的。通過減少對于存儲在磁盤上的數據的存取時間,則由磁盤數據的較長的存取時間所引起的失速可以得到避免。
雖然本發(fā)明是以第一數據組和第二數據組是位于同一磁盤上的考慮來說明讀/寫磁頭的物理位置的,但應當理解本發(fā)明當第一和第二數據組位于同一磁盤驅動器的不同磁盤(盤片)上時也是有用的。也就是說,如果第一數據組位于具有第一讀/寫磁頭的第一盤片上,第二數據組位于具有第二讀/寫磁頭的第二盤片上,但第一和第二盤片的讀/寫磁頭被定位以使第一和第二讀/寫磁頭同時靠近其各自的盤片上的各自的第一和第二數據存儲位置,則同一算法(即如圖5的查詢塊508中所述的)適用。同樣,如果第一和第二讀/寫磁頭和其各自的第一和第二數據組位于同一磁盤(盤片)的相反兩面,該同一算法也適用。
應當理解,本發(fā)明的至少一些方面可換一種方法以程序產品來執(zhí)行。限定本發(fā)明的功能的程序可被通過各種信號承載介質輸送到數據存儲器系統(tǒng)或計算機系統(tǒng),該信號承載介質包括但不限于不可寫存儲介質(例如CD-ROM)、可寫存儲介質(例如軟盤、硬盤驅動器、讀/寫CD ROM、光介質)、諸如包括以太網的計算機和電話網絡的通信介質。因此,應當理解,在該信號承載介質中,當該介質承載或編碼控制本發(fā)明的方法功能的計算機可讀指令時,這代表了本發(fā)明的另一種實施例。另外,應當理解,本發(fā)明可由具有硬件、軟件或軟件及硬件的組合的形式的裝置的系統(tǒng)來實現,如在此說明的或其等同替換。
雖然參照優(yōu)選實施例具體示出了和說明了本發(fā)明,本領域技術人員應當理解各種形式和細節(jié)的變化可以在不脫離本發(fā)明的精神和范圍的前提下在此作出。
權利要求
1.一種用于從輔助存儲器設備推測性地讀出數據的方法,該方法包括從輔助存儲器設備讀出第一數據,該輔助存儲器設備能夠在存儲介質上存儲數據;確定輔助存儲器設備接收到對于存儲在存儲介質上的第二數據的讀出請求的概率,該第二數據邏輯上與該第一數據相關;如果該概率高于預定概率值,則確定推測性讀出第二數據的成本,該成本基于當讀/寫磁頭讀出第一數據時讀/寫磁頭相對于固定介質上的第二數據的物理位置的位置;如果推測性讀出第二數據的成本低于預定成本值,則在沒有從輔助存儲器設備外部接收到對于第二數據的請求的情況下讀出第二數據;在輔助存儲器設備高速緩沖存儲器中存儲第二數據;以及如果輔助存儲器設備接收到對于第二數據的后來的請求,則從輔助存儲器設備高速緩沖存儲器產生第二數據。
2.根據權利要求1的方法,其中該輔助存儲器設備是硬盤驅動器。
3.根據權利要求2的方法,其中該存儲介質是磁盤。
4.根據權利要求1的方法,其中該存儲介質是光盤。
5.根據權利要求1的方法,其中輔助存儲器設備接收到對于第二數據的請求的概率由第二數據當第一數據被請求時而被請求的歷史來確定。
6.根據權利要求1的方法,其中輔助存儲器設備接收到對于第二數據的請求的概率由在存儲介質上第一和第二數據的物理鄰近來確定。
7.根據權利要求1的方法,其中推測性讀出第二數據的成本由位于存儲介質上的同一磁道上的第一和第二數據來確定。
8.根據權利要求1的方法,其中輔助存儲器設備接收到對于第二數據的請求的概率由同一格式的第一和第二數據來確定。
9.根據權利要求1的方法,其中第一和第二數據位于分別與第一讀/寫磁頭和第二讀/寫磁頭相關的不同磁盤表面上,以及其中推測性讀出第二數據的成本由當第一讀/寫磁頭位于第一數據的物理位置附近時位于第二數據的物理位置附近的第二讀/寫磁頭來確定。
10.一種計算機程序產品,位于計算機可讀介質上,用于從輔助存儲器設備推測性地讀出數據,該計算機程序產品包括用于從輔助存儲器設備讀出第一數據的程序代碼,該輔助存儲器設備能夠在存儲介質上存儲數據;用于確定輔助存儲器設備接收到對于存儲在存儲介質上的第二數據的讀出請求的概率的程序代碼,該第二數據邏輯上與該第一數據相關;用于如果該概率高于預定概率值則確定推測性讀出第二數據的成本的程序代碼,該成本基于當讀/寫磁頭讀出第一數據時讀/寫磁頭相對于固定介質上的第二數據的物理位置的位置;用于如果推測性讀出第二數據的成本低于預定成本值,則在沒有從輔助存儲器設備外部接收到對于第二數據的請求的情況下讀出第二數據的程序代碼;用于在輔助存儲器設備高速緩沖存儲器中存儲第二數據的程序代碼;以及用于如果輔助存儲器設備接收到對于第二數據的后來的請求,則從輔助存儲器設備高速緩沖存儲器產生第二數據的程序代碼。
11.根據權利要求10的計算機程序產品,其中該輔助存儲器設備是硬盤驅動器。
12.根據權利要求10的計算機程序產品,其中該存儲介質是磁盤。
13.根據權利要求10的計算機程序產品,其中該存儲介質是光盤。
14.根據權利要求10的計算機程序產品,其中輔助存儲器設備接收到對于第二數據的請求的概率由第二數據當第一數據被請求時而被請求的歷史來確定。
15.根據權利要求10的計算機程序產品,其中輔助存儲器設備接收到對于第二數據的請求的概率由在存儲介質上第一和第二數據的物理鄰近來確定。
16.根據權利要求10的計算機程序產品,其中推測性讀出第二數據的成本由位于存儲介質上的同一磁道上的第一和第二數據來確定。
17.根據權利要求10的計算機程序產品,其中推測性讀出第二數據的成本由位于存儲介質上的同一磁道上的第一和第二數據來確定。
18.根據權利要求10的計算機程序產品,其中第一和第二數據位于分別與第一讀/寫磁頭和第二讀/寫磁頭相關的不同磁盤表面上,以及其中推測性讀出第二數據的成本由當第一讀/寫磁頭位于第一數據的物理位置附近時位于第二數據的物理位置附近的第二讀/寫磁頭來確定。
全文摘要
一種支持在磁盤驅動器中推測性的數據傳送的方法和程序產品。從磁盤讀出被請求的第一數據。在第一數據被讀出前,確定關于是否有未被請求的第二數據傾向于在稍后作為數據流的一部分而被請求。如果是這樣,則確定關于是否第二數據和第一數據存儲在磁盤上的物理上/邏輯上鄰近的位置處。如果第二數據靠近第一數據,則第二數據被推測性地讀出并存儲在本地磁盤高速緩沖存儲器。如果接下來的對于第二數據的請求來到磁盤驅動器,則從磁盤高速緩沖存儲器中快速產生第二數據,而不是緩慢從磁盤讀出。
文檔編號G06F3/06GK1591361SQ20041005795
公開日2005年3月9日 申請日期2004年8月27日 優(yōu)先權日2003年8月29日
發(fā)明者拉里·L·威廉斯 申請人:日立環(huán)球儲存科技荷蘭有限公司