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

一種降低固態(tài)硬盤響應(yīng)延遲的方法與流程

文檔序號:12122624閱讀:6610來源:國知局
一種降低固態(tài)硬盤響應(yīng)延遲的方法與流程

本發(fā)明涉及固態(tài)硬盤控制技術(shù),特別涉及一種降低固態(tài)硬盤響應(yīng)延遲的方法。



背景技術(shù):

SSD固態(tài)硬盤已經(jīng)被廣泛應(yīng)用于各種場合,在不同場景下,對其指標(biāo)要求有較大差別。消費(fèi)類產(chǎn)品以平均性能為主要目標(biāo);而在企業(yè)級應(yīng)用場景下,則對性能一致性要求很高。

以讀性能為例,企業(yè)級產(chǎn)品可能要求比例高達(dá)99%的命令的隨機(jī)讀響應(yīng)延遲小于500us,一個(gè)主機(jī)獲取命令的過程包含了主機(jī)與SSD之間的數(shù)據(jù)傳輸;SSD內(nèi)的數(shù)據(jù)加載。主機(jī)與SSD之間的數(shù)據(jù)傳輸?shù)臅r(shí)間是基本固定的,SSD內(nèi)的數(shù)據(jù)加載的時(shí)間與NAND種類、NAND狀態(tài)有關(guān)。

在正常情況下,也就說NAND內(nèi)的數(shù)據(jù)單次讀出就成功且正確或只需要普通的ECC糾錯(cuò)就可完成,則SSD內(nèi)單筆數(shù)據(jù)加載可以控制在150us內(nèi),可滿足需求。但是如果有異常發(fā)生,導(dǎo)致NAND無法通過ECC糾錯(cuò),而需要進(jìn)入其它糾錯(cuò)狀態(tài)Read Retry或多次糾錯(cuò)才可能恢復(fù)該數(shù)據(jù),則其消耗的時(shí)間將是毫秒級別,超過企業(yè)級對訪問響應(yīng)延遲的要求。



技術(shù)實(shí)現(xiàn)要素:

針對以上缺陷,本發(fā)明目的如何降低固態(tài)硬盤響應(yīng)延遲,特別是降低在主機(jī)訪問NAND時(shí)發(fā)生異常需要進(jìn)行多次糾錯(cuò)的概率,進(jìn)而實(shí)現(xiàn)整體上降低固態(tài)硬盤響應(yīng)延遲。

為了解決以上問題本發(fā)明提出了,一種降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于在固態(tài)硬盤控制器中增加數(shù)據(jù)監(jiān)控線程和異常數(shù)據(jù)刷新線程,所述數(shù)據(jù)監(jiān)控線程在固態(tài)硬盤控制器空閑時(shí)自動(dòng)掃描固態(tài)硬盤中存儲的有效數(shù)據(jù)塊,掃描完成對該有效數(shù)據(jù)塊的數(shù)據(jù)讀取并校驗(yàn)該數(shù)據(jù)塊數(shù)據(jù)是否正確,如果存在錯(cuò)誤怎判定為數(shù)據(jù)異常,則將存在數(shù)據(jù)異常的數(shù)據(jù)塊信息進(jìn)行記錄;所述異常數(shù)據(jù)刷新線程在固態(tài)硬盤控制器空閑時(shí)根據(jù)數(shù)據(jù)監(jiān)控線程記錄的存在數(shù)據(jù)異常的數(shù)據(jù)塊進(jìn)行數(shù)據(jù)糾錯(cuò),并將糾錯(cuò)后的數(shù)據(jù)刷新到固態(tài)硬盤的其它空閑存儲塊中。

所述的降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于同時(shí)各個(gè)數(shù)據(jù)塊中增加時(shí)間戳記錄器,在固態(tài)硬盤控制向各個(gè)數(shù)據(jù)塊中寫入數(shù)據(jù)時(shí),更新時(shí)間戳記錄器;各個(gè)數(shù)據(jù)塊還增加擦除次數(shù)計(jì)數(shù)器,擦除次數(shù)計(jì)數(shù)器所在的數(shù)據(jù)塊被擦除一次則擦除次數(shù)計(jì)數(shù)器數(shù)據(jù)加1,所述數(shù)據(jù)監(jiān)控線程先讀取各個(gè)有效數(shù)據(jù)塊時(shí)間戳記錄器和擦除次數(shù)計(jì)數(shù)器,只有當(dāng)時(shí)間戳記錄器超過預(yù)先設(shè)定的時(shí)間或擦除次數(shù)計(jì)數(shù)器超過預(yù)先設(shè)定的掃描擦除閥值才對該有效數(shù)據(jù)塊數(shù)據(jù)進(jìn)行掃描。

所述的降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于所述的異常數(shù)據(jù)刷新線程還包括壞塊標(biāo)識模塊,所述壞塊標(biāo)識模塊監(jiān)控各個(gè)數(shù)據(jù)塊擦除次數(shù)計(jì)數(shù)器,當(dāng)數(shù)據(jù)塊中的擦除次數(shù)計(jì)數(shù)器超過擦除壽命閥值時(shí),將該數(shù)據(jù)塊中的數(shù)據(jù)刷新到固態(tài)硬盤的其它空閑存儲塊中,并在壞塊表中將該數(shù)據(jù)塊標(biāo)識為壞塊。

所述的降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于所述異常數(shù)據(jù)刷新線程在完成將糾錯(cuò)后的數(shù)據(jù)刷新到固態(tài)硬盤的其它空閑存儲塊中后,將該存在數(shù)據(jù)異常的數(shù)據(jù)塊進(jìn)行擦除操作,并寫入測試數(shù)據(jù),然后讀取該數(shù)據(jù)塊的測試數(shù)據(jù),判斷數(shù)據(jù)是否存在異常,如果數(shù)據(jù)存在異常,則在壞塊表中將該數(shù)據(jù)塊標(biāo)識為壞塊;如果數(shù)據(jù)正常則對該數(shù)據(jù)塊進(jìn)行擦除操作,完成對該數(shù)據(jù)塊回收。

所述的降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于所述的校驗(yàn)該數(shù)據(jù)塊數(shù)據(jù)是否正確為根據(jù)固態(tài)硬盤所采用的存儲芯片可支持的可糾錯(cuò)的比特閥值來確定,當(dāng)讀取的數(shù)據(jù)塊數(shù)據(jù)中各個(gè)數(shù)據(jù)頁的數(shù)據(jù),只要其中一個(gè)數(shù)據(jù)頁的數(shù)據(jù)發(fā)生數(shù)據(jù)位反轉(zhuǎn)的位數(shù)超過比特閥值時(shí),判定該數(shù)據(jù)塊數(shù)據(jù)不正確存在異常。

所述的降低固態(tài)硬盤響應(yīng)延遲的方法,其特征在于根據(jù)固態(tài)硬盤支持的最大并發(fā)操作存儲空間的通道數(shù),為每個(gè)通道分別創(chuàng)建各自獨(dú)立工作的數(shù)據(jù)監(jiān)控線程和異常數(shù)據(jù)刷新線程。

本發(fā)明通過在固態(tài)硬盤空閑時(shí)增加數(shù)據(jù)異常檢查機(jī)制,利用空閑時(shí)完成數(shù)據(jù)的恢復(fù)和遷移,大大降低主機(jī)正常數(shù)據(jù)訪問時(shí)發(fā)生異常的概率,整體上降低固態(tài)硬盤響應(yīng)延遲,提高主機(jī)數(shù)據(jù)訪問的速度。

附圖說明

圖1是Nand Flash存儲結(jié)構(gòu)示意圖;

圖2是Nand Flash讀取存在異常時(shí)的操作流程示意圖;

圖3是數(shù)據(jù)監(jiān)控線程操作流程示意圖;

圖4是將異常數(shù)據(jù)刷新到新的空閑數(shù)據(jù)塊的示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

圖1是Nand Flash存儲結(jié)構(gòu)示意圖;固態(tài)硬盤一般都支持并發(fā)操作,也就是支持多通道DIE同時(shí)操作物理存儲空間,每個(gè)通道DIE由若干數(shù)據(jù)塊Block組成,每個(gè)Block又由若干數(shù)據(jù)頁P(yáng)age組成;不同的Flash工藝和技術(shù)支持的數(shù)目不同,本實(shí)施例以一個(gè)DIE由1024個(gè)Block組成,一個(gè)Block由256個(gè)Page組成,Block是Flash的最小擦除操作單位,Page是Flash的最小寫入單位,每重新寫入一個(gè)Page的數(shù)據(jù)時(shí),都需要重新計(jì)算該P(yáng)age的ECC校驗(yàn)數(shù)據(jù),并寫入校驗(yàn)數(shù)據(jù)區(qū)。

圖2是Nand Flash讀取存在異常時(shí)的操作流程示意圖,當(dāng)NAND控制器向NAND發(fā)送讀命令,NAND內(nèi)部數(shù)據(jù)加載后將數(shù)據(jù)返回給NAND控制器,數(shù)據(jù)中包括寫入時(shí)的寫入的ECC數(shù)據(jù),NAND控制器根據(jù)讀出的有效數(shù)據(jù)和ECC數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn),判斷讀出的數(shù)據(jù)是否正確。對于不同的工藝和技術(shù)的Nand Flash所支持的ECC糾錯(cuò)bit數(shù)不同,目前存在支持1~128bit/1KB的ECC算法,未來還可能支持更多bit的ECC算法,支持幾bit的ECC就是允許每1KB的數(shù)據(jù)中出現(xiàn)位反轉(zhuǎn)的最大bit數(shù),也就是閥值TH,只要該P(yáng)age中各個(gè)1KB數(shù)據(jù)單元都只是發(fā)生不超過該bit數(shù)的位反轉(zhuǎn),都可以通過ECC算法完成數(shù)據(jù)糾錯(cuò)和恢復(fù)。當(dāng)數(shù)據(jù)發(fā)生異常無法通過一次糾錯(cuò)時(shí),NAND FLASH內(nèi)部還存在通過調(diào)整讀取的電氣配置參數(shù),如調(diào)整閥值電壓等方式來重新讀取該P(yáng)age數(shù)據(jù)時(shí),并重新進(jìn)行校驗(yàn),通過不斷嘗試直到讀出正確的數(shù)據(jù),或直到各種嘗試都無法讀出正確的數(shù)據(jù),返回前端主機(jī)接口,明確標(biāo)識該數(shù)據(jù)異常。因此當(dāng)數(shù)據(jù)存在異常時(shí),整個(gè)讀取數(shù)據(jù)的響應(yīng)延遲非常大,嚴(yán)重影響主機(jī)的響應(yīng)時(shí)間。

圖3是數(shù)據(jù)監(jiān)控線程操作流程示意圖;本發(fā)明就是為了盡可能的降低前端主機(jī)在訪問數(shù)據(jù)是遇到數(shù)據(jù)異常的概率,通過在固態(tài)硬盤控制器中增加增加數(shù)據(jù)監(jiān)控線程和異常數(shù)據(jù)刷新線程。由于硬盤都支持并發(fā)操作,優(yōu)選根據(jù)通道DIE的數(shù)目分別單獨(dú)增加數(shù)據(jù)監(jiān)控線程和異常數(shù)據(jù)刷新線程,各個(gè)通道DIE分別進(jìn)行掃描和刷新;數(shù)據(jù)監(jiān)控線程在固態(tài)硬盤控制器空閑時(shí),也就是前端主機(jī)沒有訪問時(shí)自動(dòng)掃描固態(tài)硬盤中存儲的有效數(shù)據(jù)塊,掃描完成對該有效數(shù)據(jù)塊的數(shù)據(jù)讀取并校驗(yàn)該數(shù)據(jù)塊數(shù)據(jù)是否正確,如果存在錯(cuò)誤且數(shù)據(jù)無法糾錯(cuò),怎判定為數(shù)據(jù)異常,則將存在數(shù)據(jù)異常的數(shù)據(jù)塊信息進(jìn)行記錄;選定要掃描的Block,逐個(gè)讀取各個(gè)Page的數(shù)據(jù),啟動(dòng)ECC糾錯(cuò)模塊,當(dāng)數(shù)據(jù)發(fā)生反轉(zhuǎn)的bit數(shù)大于該FLASH的閥值TH時(shí),判定該數(shù)據(jù)存在異常,將該Block標(biāo)識為異常;當(dāng)數(shù)據(jù)發(fā)生反轉(zhuǎn)的bit數(shù)不大于該FLASH的閥值TH時(shí),進(jìn)行數(shù)據(jù)糾錯(cuò),返回正確的數(shù)據(jù)。

圖4是將異常數(shù)據(jù)刷新到新的空閑數(shù)據(jù)塊的示意圖,異常數(shù)據(jù)刷新線程在固態(tài)硬盤控制器空閑時(shí)根據(jù)數(shù)據(jù)監(jiān)控線程記錄的存在數(shù)據(jù)異常的數(shù)據(jù)塊Block進(jìn)行數(shù)據(jù)重讀和糾錯(cuò),并將糾錯(cuò)后的數(shù)據(jù)刷新到固態(tài)硬盤的其它空閑存儲塊中。同一個(gè)通道DIE的異常數(shù)據(jù)一般都優(yōu)先刷新到該通道DIE的其它空閑Block中。

根據(jù)NAND FLASH的物理特性,同一個(gè)Block的可編程次數(shù)是有一定壽命限制的,被編程次數(shù)越多,該Block出現(xiàn)數(shù)據(jù)異常的概率越高,因此數(shù)據(jù)監(jiān)控線程進(jìn)行掃描時(shí)可根據(jù)Block被編程次數(shù)的大小,優(yōu)先掃描被編程次數(shù)多的Block,而Block被編程次數(shù)可通過該Block的擦除操作次數(shù)來體現(xiàn),通過記錄Block的擦除操作次數(shù)就可實(shí)現(xiàn)編程次數(shù)的監(jiān)控。

同樣NAND FLASH中的存儲單元都是通過電荷的多少來區(qū)分識別數(shù)據(jù),因此數(shù)據(jù)存儲時(shí)間越長,則該位數(shù)據(jù)上的電荷存在泄漏的概率也就越高,也就是存在數(shù)據(jù)異常的概率也越高,因此還可以增加記錄Block被編程的時(shí)間,因此數(shù)據(jù)監(jiān)控線程進(jìn)行掃描時(shí)可根據(jù)Block被編程的時(shí)間,優(yōu)先掃描被編程次時(shí)間久的Block。

以上所揭露的僅為本發(fā)明一種實(shí)施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
绥化市| 曲靖市| 嘉禾县| 广昌县| 祁东县| 时尚| 淄博市| 蒲城县| 姜堰市| 莒南县| 绿春县| 哈密市| 辉南县| 离岛区| 道孚县| 汶上县| 新密市| 长寿区| 买车| 洞头县| 琼海市| 新乐市| 邵阳县| 云和县| 海林市| 霍邱县| 海丰县| 沐川县| 昌宁县| 海城市| 龙岩市| 通州区| 襄汾县| 靖江市| 平凉市| 湖北省| 兰西县| 民勤县| 高要市| 万源市| 沛县|