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