固態(tài)硬盤的讀取方法
【技術領域】
[0001]本發(fā)明有關一種固態(tài)硬盤的讀取方法,尤其關于固態(tài)硬盤讀取數(shù)據(jù)時,調整造成阻塞的讀取需求的讀取順序的方法。
【背景技術】
[0002]固態(tài)硬盤(Solid State Drive,簡稱SSD) —般由數(shù)個非易失性存儲單元(Non-Volatile Memory,簡稱NVM)整合成為單一儲存裝置。由于固態(tài)硬盤傳輸數(shù)據(jù)的速度非??焖伲殉蔀楝F(xiàn)代計算機系統(tǒng)等主機主要的數(shù)據(jù)儲存裝置。
[0003]計算機系統(tǒng)通常利用處理器發(fā)送數(shù)據(jù)的讀取需求,再由固態(tài)硬盤中的存儲器控制器接收讀取需求,并分送讀取需求至數(shù)據(jù)儲存的各非易失性存儲單元。由各非易失性存儲單元根據(jù)分送的讀取需求的先后,登記在讀取需求隊列中。再依各非易失性存儲單元隊列中讀取需求的順序,按照先進先出(First In First Out,簡稱FIFO)的原則,讀取非易失性存儲單元儲存的數(shù)據(jù),由各非易失性存儲單元各自的先進先出管道經(jīng)存儲器控制器整理后,傳輸至計算機系統(tǒng)。接著由處理器控制將讀取的數(shù)據(jù)儲存在計算機系統(tǒng)的動態(tài)隨機存儲器(DRAM)中備用。因此,固態(tài)硬盤利用非易失性存儲單元各自的先進先出管道傳輸數(shù)據(jù),以多渠道讀取數(shù)據(jù),達到提高數(shù)據(jù)讀取的速度。
[0004]然而,各非易失性存儲單元的存儲緩沖空間限制,一旦讀取需求的隊列一滿,就不再接收讀取需求,常造成分送讀取需求失敗。如圖1所示,為先前技術固態(tài)硬盤的讀取方法。當固態(tài)硬盤中的存儲器控制器將接收的讀取需求,分送至各非易失性存儲單元(步驟PD,并檢查讀取需求是否被接受(步驟P2),假如分送至一讀取需求隊列已滿的非易失性存儲單元,該非易失性存儲單元將拒絕接收分送的讀取需求,導致讀取需求分送失敗,存儲器控制器必需一再嘗試分送該失敗的讀取需求(步驟P3),直到該非易失性存儲單元執(zhí)行隊列中的讀取需求,讓出隊列空間重新接收分送的讀取需求以執(zhí)行讀取數(shù)據(jù)(步驟P4),存儲器控制器才能繼續(xù)分送下一個讀取需求至其它非易失性存儲單元(步驟P5),或者等待接收計算機系統(tǒng)下一個讀取需求(步驟P6)。
[0005]由于固態(tài)硬盤一再嘗試分送失敗的讀取需求,必需耗費時間等待阻塞的非易失性存儲單元讓出讀取需求隊列空間,因而阻塞后續(xù)固態(tài)硬盤中其它非易失性存儲單元數(shù)據(jù)讀取作業(yè),導致固態(tài)硬盤的讀取速度降低,影響整體的效能。因此,固態(tài)硬盤在數(shù)據(jù)的讀取方法,仍有問題亟待解決。
【發(fā)明內容】
[0006]本發(fā)明的目的在于提供一種固態(tài)硬盤的讀取方法,通過預先檢查非易失性存儲單元,將會阻塞的分送讀取需求先儲存在需求暫存區(qū),并繼續(xù)分送下一讀取需求,以避免讀取阻塞。
[0007]本發(fā)明另一目的在于提供一種固態(tài)硬盤的讀取方法,利用定時檢查需求暫存區(qū)中讀取需求的阻塞狀態(tài),重新分送不阻塞的讀取需求,以提高讀取的速度。
[0008]為了達到前述發(fā)明的目的,本發(fā)明固態(tài)硬盤的讀取方法,首先接收讀取需求,預先檢查非易失性存儲單元的讀取需求隊列阻塞狀態(tài),判斷不會造成阻塞,則將讀取需求登記在讀取需求隊列,判斷會造成讀取阻塞,則暫存讀取需求,繼續(xù)分送下一個讀取需求,并定時檢查及重新分送暫存的讀取需求,以提高讀取速度。
[0009]本發(fā)明固態(tài)硬盤的讀取方法,由固態(tài)硬盤的存儲器控制器接收主機的讀取需求,準備分送讀取需求至固態(tài)硬盤的非易失性存儲單元。并在分送讀取需求前,預先檢查該非易失性存儲單元的讀取需求隊列阻塞狀態(tài)。判斷會造成讀取阻塞,則將讀取需求暫存在固態(tài)硬盤的需求暫存區(qū),計時固定時間,以定時檢查儲存在需求暫存區(qū)的讀取需求。固定時間最佳設定至少一倍執(zhí)行讀取需求平均時間,以確??粘鲎x取需求隊列。
【附圖說明】
[0010]圖1為先前技術固態(tài)硬盤的讀取方法的流程圖。
[0011]圖2為本發(fā)明固態(tài)硬盤的系統(tǒng)結構圖。
[0012]圖3為本發(fā)明固態(tài)硬盤讀取過程的示意圖。
[0013]圖4為本發(fā)明固態(tài)硬盤的讀取方法的流程圖。
[0014][標號說明]
[0015]10主機11處理器
[0016]12動態(tài)隨機存儲器 20固態(tài)硬盤
[0017]21存儲器控制器22緩沖區(qū)
[0018]23需求暫存區(qū)24先進先出管道
[0019]25非易失性存儲單元
【具體實施方式】
[0020]有關本發(fā)明為達成上述目的,所采用的技術手段及其功效,茲舉較佳實施例,并配合圖式加以說明如下。
[0021]請同時參閱圖2及圖3,圖2為本發(fā)明固態(tài)硬盤20的系統(tǒng)結構,圖3為本發(fā)明固態(tài)硬盤20讀取過程的示意圖。圖2中,主機10設置處理器11發(fā)送主機需要數(shù)據(jù)的讀取需求,且具有動態(tài)隨機存儲器12暫時儲存讀取的數(shù)據(jù)備用。本發(fā)明的固態(tài)硬盤20連接在主機10,固態(tài)硬盤20內設存儲器控制器21配合緩沖區(qū)22及需求暫存區(qū)23,控制由數(shù)個先進先出管道24 —對一對應連接的數(shù)個非易失性存儲單元25,整合成為單一儲存裝置,作為主機的數(shù)據(jù)主要儲存裝置。本實施例雖以固態(tài)硬盤20包含8個第O至7個非易失性存儲單元25為例說明,但固態(tài)硬盤20包含且不限于8個非易失性存儲單元25。另外,需求暫存區(qū)23也可由緩沖區(qū)22中劃設,而不需另外設置需求暫存區(qū)23。
[0022]主機10利用處理器11發(fā)送數(shù)據(jù)的讀取需求,由固態(tài)硬盤20中的存儲器控制器21依據(jù)讀取需求的序列接收讀取需求。再由存儲器控制器21依序分送讀取需求至數(shù)據(jù)儲存的非易失性存儲單元25。非易失性存儲單元25根據(jù)接收分送讀取需求的先后,登記在讀取需求的隊列。再根據(jù)各非易失性存儲單元25隊列中讀取需求的順序,按照先進先出的原貝U,讀取非易失性存儲單元25儲存的數(shù)據(jù),由非易失性存儲單元25各自的先進先出管道送出至緩沖區(qū)22。經(jīng)存儲器控制器21整理后,將數(shù)據(jù)傳輸至主機10,由處理器11控制讀取的數(shù)據(jù)儲存在動態(tài)隨機存儲器12中備用。
[0023]為避免非易失性存儲單元25已滿的讀取需求隊列,不接收分送讀取需求而造成的數(shù)據(jù)讀取阻塞。本發(fā)明利用存儲器控制器21針對分送讀取需求的非易失性存儲單元25,預先檢查讀取需求隊列,判斷是否會造成數(shù)據(jù)讀取阻塞?對于不會造成阻塞的分送讀取需求,直接登記在非易失性存儲單元25的讀取需求隊列。而對于會造成阻塞的分送讀取需求,則先儲存在需求暫存區(qū)23,以便繼續(xù)分送下一個讀取需求至其它非易失性存儲單元25,除可避免分送的讀取需求漏失,且可避免阻塞后續(xù)數(shù)據(jù)的讀取。另對于儲存在需求暫存區(qū)23的讀取需求,存儲器控制器21利用計時固定時間定時檢查分送的非易失性存儲單元25讀取需求隊列狀態(tài)。判斷會造成阻塞時,繼續(xù)暫存讀取需求,但判斷不會造成阻塞時,則再重新分送暫存的讀取需求,登記在讀取需求隊列以讀取數(shù)據(jù)。其中檢查需求暫存區(qū)23的定時,根據(jù)測試執(zhí)行讀取需求平均時間,設定至少一倍執(zhí)行讀取需求平均時間,確??粘鲎x取需求隊列,以避免密集檢討暫存的讀取需求,影響數(shù)據(jù)的讀取及后續(xù)讀取需求的分送。
[0024]舉一實例說明本發(fā)明固態(tài)硬盤20的讀取過程。圖3中,主機10發(fā)送讀取需求的序列A為0-1-