国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      存儲(chǔ)設(shè)備的制作方法

      文檔序號(hào):6762636閱讀:245來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):存儲(chǔ)設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本申請(qǐng)涉及存儲(chǔ)設(shè)備,比如硬盤(pán)驅(qū)動(dòng)器裝置或者閃存卡,尤其涉及有效應(yīng)用于將存儲(chǔ)介質(zhì)比如非易失性存儲(chǔ)器的存儲(chǔ)信息預(yù)讀到緩沖存儲(chǔ)器中的技術(shù)的發(fā)明。
      背景技術(shù)
      在包括控制器、緩沖存儲(chǔ)器和存儲(chǔ)介質(zhì)等的存儲(chǔ)設(shè)備中,當(dāng)來(lái)自主設(shè)備的讀請(qǐng)求到達(dá)時(shí),控制器在讀請(qǐng)求到達(dá)前從存儲(chǔ)介質(zhì)讀取希望稍后使用的數(shù)據(jù),將其存儲(chǔ)到緩沖存儲(chǔ)器中。這種技術(shù)稱(chēng)為預(yù)讀技術(shù)。例如,在專(zhuān)利公開(kāi)說(shuō)明書(shū)1中描述的硬盤(pán)驅(qū)動(dòng)器(HDD)裝置具有磁盤(pán)高速緩存,預(yù)先將所要的數(shù)據(jù)緩存到所述磁盤(pán)高速緩存中,以盡量減小對(duì)磁盤(pán)的訪問(wèn)緩慢的問(wèn)題。硬盤(pán)控制器預(yù)讀存儲(chǔ)在磁盤(pán)中的部分?jǐn)?shù)據(jù),并將其存儲(chǔ)到磁盤(pán)高速緩存中。
      專(zhuān)利公開(kāi)說(shuō)明書(shū)1日本待審專(zhuān)利公開(kāi)說(shuō)明書(shū)No.2001-125829(第24到27段)。

      發(fā)明內(nèi)容
      從存儲(chǔ)介質(zhì)比如磁盤(pán)和閃存讀出的數(shù)據(jù)容量不能沿著高速主機(jī)接口。因此,有必要在來(lái)自主設(shè)備的讀請(qǐng)求期間減少?gòu)拇鎯?chǔ)介質(zhì)的讀操作。為此,預(yù)先從存儲(chǔ)介質(zhì)預(yù)讀數(shù)據(jù)以將其存儲(chǔ)到緩沖存儲(chǔ)器中是有效的辦法。但是,要預(yù)讀的數(shù)據(jù)是由存儲(chǔ)設(shè)備的控制器決定的,用戶(hù)不能夠使用預(yù)讀功能。簡(jiǎn)言之,如果控制器根據(jù)預(yù)定的算法決定要預(yù)讀的數(shù)據(jù),就不容易將預(yù)計(jì)要頻繁使用的數(shù)據(jù)預(yù)先預(yù)讀到緩沖存儲(chǔ)器中,從而難以最大化通過(guò)預(yù)讀達(dá)到的縮短訪問(wèn)時(shí)間的效果。
      本發(fā)明的一個(gè)目的是提供一種存儲(chǔ)設(shè)備,其能夠靈活地決定要預(yù)讀的數(shù)據(jù)。
      本發(fā)明的另一個(gè)目的是提供一種存儲(chǔ)設(shè)備,其能夠容易地最大化通過(guò)預(yù)讀縮短訪問(wèn)時(shí)間的效果。
      前述目的以及其它目的和本發(fā)明的新特征將通過(guò)閱讀下面的說(shuō)明和附圖而更為清楚。
      下面簡(jiǎn)要描述在本專(zhuān)利申請(qǐng)中公開(kāi)的發(fā)明的代表性實(shí)施例所獲得的效果[1]本發(fā)明的存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器(2);比非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器(4);以及控制電路(5)。所述控制電路建立一個(gè)預(yù)讀數(shù)據(jù)管理表(Ti),該表將外部輸入的預(yù)讀命令指定的預(yù)讀數(shù)據(jù)的邏輯地址與存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)。另外,控制電路從非易失性存儲(chǔ)器讀出所述命令指定的數(shù)據(jù),并將其作為預(yù)讀數(shù)據(jù)存儲(chǔ)到所述緩沖存儲(chǔ)器中。當(dāng)外部輸入的讀命令指定的邏輯地址與所述預(yù)讀數(shù)據(jù)管理表所關(guān)聯(lián)的邏輯地址匹配時(shí),控制電路就從所述緩沖存儲(chǔ)器輸出相應(yīng)的預(yù)讀數(shù)據(jù)。
      根據(jù)上述手段,可以從存儲(chǔ)設(shè)備的外部由預(yù)讀命令指定預(yù)讀數(shù)據(jù)。因此,可以靈活地決定要預(yù)讀的數(shù)據(jù),以將通過(guò)預(yù)讀縮短訪問(wèn)時(shí)間的效果最大化。存儲(chǔ)設(shè)備的讀出性能取決于作為存儲(chǔ)介質(zhì)的非易失性存儲(chǔ)器本身的讀出性能。因此,收到來(lái)自外部的讀取請(qǐng)求時(shí),通過(guò)增加來(lái)自緩沖存儲(chǔ)器的預(yù)讀數(shù)據(jù)的輸出,而不是從存儲(chǔ)介質(zhì)讀出,可以提高系統(tǒng)性能。只要緩沖存儲(chǔ)器的容量允許,可以用多個(gè)預(yù)讀命令指定多塊預(yù)讀數(shù)據(jù)。
      作為本發(fā)明的一個(gè)實(shí)施例,預(yù)讀命令用邏輯地址指定預(yù)讀數(shù)據(jù)。以主引導(dǎo)記錄或者FAT(文件分配表)為例,由于存在用戶(hù)容易跟蹤邏輯地址的情況,用邏輯地址指定的好處是可以直接指定預(yù)讀數(shù)據(jù)。
      預(yù)讀命令可以用文件名指定預(yù)讀數(shù)據(jù)。通常,存在這樣的情況存儲(chǔ)設(shè)備的用戶(hù)無(wú)法跟蹤OS(操作系統(tǒng))管理的閃存2的邏輯地址。用戶(hù)能夠方便地用文件名跟蹤數(shù)據(jù),從而能夠獲得對(duì)數(shù)據(jù)預(yù)讀的令人滿(mǎn)意的可操作性。
      控制電路可以在執(zhí)行預(yù)讀命令期間傳輸預(yù)讀數(shù)據(jù)。同樣,在預(yù)先建立預(yù)讀數(shù)據(jù)管理表后,可以將預(yù)讀數(shù)據(jù)以預(yù)定的定時(shí)傳輸?shù)骄彌_存儲(chǔ)器。借此,控制電路能夠在預(yù)讀命令的執(zhí)行結(jié)束后的命令等待狀態(tài)將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器。預(yù)讀數(shù)據(jù)傳輸處理防止發(fā)生這樣的情況,比如讀取訪問(wèn)延遲,以及由于預(yù)讀數(shù)據(jù)傳輸處理而造成的其它操作。
      作為本發(fā)明的一個(gè)實(shí)施例,預(yù)讀數(shù)據(jù)管理表可以包括用于保持預(yù)讀數(shù)據(jù)(30)的起始邏輯地址、存儲(chǔ)預(yù)讀數(shù)據(jù)的區(qū)域的起始存儲(chǔ)器地址(31)以及預(yù)讀數(shù)據(jù)的數(shù)據(jù)計(jì)數(shù)器(data count)(32)的區(qū)域。
      預(yù)讀數(shù)據(jù)管理表可以包括一個(gè)指示相應(yīng)的預(yù)讀數(shù)據(jù)的有效性的標(biāo)記(33)。
      預(yù)讀數(shù)據(jù)管理表可以包括一個(gè)用于保存包含預(yù)讀數(shù)據(jù)的文件名的區(qū)域(35)。例如,在FAT文件系統(tǒng)中,當(dāng)一個(gè)文件被碎片化時(shí),由于一片文件數(shù)據(jù)由多個(gè)割裂的預(yù)讀數(shù)據(jù)管理表管理,用于保存文件名的區(qū)域?qū)τ谑褂弥付ǖ奈募M(jìn)行訪問(wèn)的響應(yīng)處理是有用的。也就是說(shuō),相應(yīng)的預(yù)讀數(shù)據(jù)管理表能夠用文件名進(jìn)行搜索,從而進(jìn)一步提高對(duì)緩沖存儲(chǔ)器上的所要的預(yù)讀數(shù)據(jù)的訪問(wèn)速度。
      所述預(yù)讀數(shù)據(jù)管理表可以包括一個(gè)用于保存預(yù)讀數(shù)據(jù)訪問(wèn)計(jì)數(shù)器(access count)的區(qū)域(34)。當(dāng)在緩沖存儲(chǔ)器中沒(méi)有未使用的用于存儲(chǔ)預(yù)讀數(shù)據(jù)的區(qū)域時(shí),卡控制器5基于保存在所述預(yù)讀數(shù)據(jù)管理表中的訪問(wèn)計(jì)數(shù)值搜索不被頻繁訪問(wèn)的緩沖存儲(chǔ)器地址,并能夠?qū)⒈欢ㄎ坏降木彌_存儲(chǔ)器地址的一個(gè)區(qū)域分配到一個(gè)保存預(yù)讀數(shù)據(jù)的新區(qū)域。這確保了被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的有效使用。
      控制電路可以將預(yù)讀數(shù)據(jù)管理表按照預(yù)定的定時(shí)保存到所述非易失性存儲(chǔ)器的一個(gè)預(yù)讀數(shù)據(jù)管理表保存區(qū)。當(dāng)預(yù)讀數(shù)據(jù)管理表正在緩沖存儲(chǔ)器或者控制電路內(nèi)的存儲(chǔ)器上使用時(shí),由于操作預(yù)讀數(shù)據(jù)的預(yù)讀數(shù)據(jù)管理表被保存了,即使由于斷電或者類(lèi)似事故導(dǎo)致丟失的緩沖存儲(chǔ)器上的預(yù)讀數(shù)據(jù)也能在以后恢復(fù)。例如,響應(yīng)于電源的接通,控制電路從非易失性存儲(chǔ)器讀出一個(gè)預(yù)讀數(shù)據(jù)管理表,并從所述非易失性存儲(chǔ)器將所述預(yù)讀數(shù)據(jù)管理表所定位的預(yù)讀數(shù)據(jù)傳輸給所述緩沖存儲(chǔ)器。
      根據(jù)本發(fā)明的另一方面,一種存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路。響應(yīng)于從外部輸入的讀命令,控制電路查閱將預(yù)讀數(shù)據(jù)的邏輯地址與用于存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)的可重寫(xiě)預(yù)讀數(shù)據(jù)管理表。然后,控制電路判斷緩沖存儲(chǔ)器是否保存有該命令所指定的數(shù)據(jù),如果緩沖存儲(chǔ)器保存有所述數(shù)據(jù),就將從緩沖存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部;否則將從非易失性存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部。
      根據(jù)上述手段,通過(guò)使用可重寫(xiě)預(yù)讀數(shù)據(jù)管理表,可以靈活地決定要預(yù)讀的數(shù)據(jù),以最大化通過(guò)預(yù)讀縮短訪問(wèn)時(shí)間的效果。響應(yīng)于讀命令,增加從緩沖存儲(chǔ)器輸出的預(yù)讀數(shù)據(jù),而不是從非易失性存儲(chǔ)器讀出,這樣改善了系統(tǒng)的性能。
      作為本發(fā)明的一個(gè)實(shí)施例,所述控制電路響應(yīng)于電源的接通而從非易失性存儲(chǔ)器讀出預(yù)讀數(shù)據(jù)管理表,并從非易失性存儲(chǔ)器將該預(yù)讀數(shù)據(jù)管理表定位的預(yù)讀數(shù)據(jù)傳輸給緩沖存儲(chǔ)器。借此,在電源斷開(kāi)之前已經(jīng)被操作的預(yù)讀數(shù)據(jù)容易在后來(lái)在緩沖存儲(chǔ)器上恢復(fù)。
      根據(jù)本發(fā)明的另一方面,一種存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路。響應(yīng)于從外部輸入的預(yù)讀命令,控制電路建立將該命令指定的預(yù)讀數(shù)據(jù)的邏輯地址與用于存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)的預(yù)讀數(shù)據(jù)管理表。另外,控制電路從非易失性存儲(chǔ)器讀出該命令指定的數(shù)據(jù),將其存儲(chǔ)到所述緩沖存儲(chǔ)器中作為預(yù)讀數(shù)據(jù),從而存儲(chǔ)在該緩沖存儲(chǔ)器中的預(yù)讀數(shù)據(jù)能夠被輸出到外部。這樣,可以用預(yù)讀命令從存儲(chǔ)設(shè)備外部指定預(yù)讀數(shù)據(jù)。相應(yīng)地,能夠靈活地決定要被預(yù)讀的數(shù)據(jù),從而能夠最大化通過(guò)預(yù)讀而縮短訪問(wèn)時(shí)間的效果。
      作為本發(fā)明的一個(gè)實(shí)施例,當(dāng)緩沖存儲(chǔ)器中沒(méi)有用于存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用區(qū)域時(shí),所述控制電路執(zhí)行如下處理。也就是,控制電路允許在下面兩種情況之間作出選擇允許和禁止蓋寫(xiě)已經(jīng)保存了預(yù)讀數(shù)據(jù)的區(qū)域。選擇前者便于動(dòng)態(tài)交換預(yù)讀數(shù)據(jù)。選擇后者使得易于確保被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的有效使用。當(dāng)選擇后者時(shí),當(dāng)沒(méi)有未使用的區(qū)域時(shí),會(huì)向預(yù)讀命令發(fā)出者返回一個(gè)出錯(cuò)響應(yīng),以警告用戶(hù)。前述的允許蓋寫(xiě)的情況可以是允許完全蓋寫(xiě)已經(jīng)保存了預(yù)讀數(shù)據(jù)的區(qū)域,或者是允許部分蓋寫(xiě)訪問(wèn)不頻繁的區(qū)域。允許部分蓋寫(xiě)便于同時(shí)滿(mǎn)足預(yù)讀數(shù)據(jù)的動(dòng)態(tài)互換性和被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的有效使用性。
      響應(yīng)于從外部輸入的讀命令,控制電路查閱所述預(yù)讀數(shù)據(jù)管理表以判斷所述緩沖存儲(chǔ)器是否保存有該命令指定的數(shù)據(jù)。如果緩沖存儲(chǔ)器保存有該數(shù)據(jù),控制電路就將從緩沖存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部;否則,它將從非易失性存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部。
      響應(yīng)于從外部輸入的寫(xiě)命令,控制電路查閱所述預(yù)讀數(shù)據(jù)管理表,以判斷緩沖存儲(chǔ)器是否保存有該命令指定的寫(xiě)地址的數(shù)據(jù)。如果緩沖存儲(chǔ)器保存有該數(shù)據(jù),控制電路就用寫(xiě)數(shù)據(jù)連同所述非易失性存儲(chǔ)器的數(shù)據(jù)更新緩沖存儲(chǔ)器的數(shù)據(jù);否則其用寫(xiě)數(shù)據(jù)更新非易失性存儲(chǔ)器的數(shù)據(jù)。


      圖1的方框圖示出了一種閃存卡,是本發(fā)明的存儲(chǔ)設(shè)備的一個(gè)例子;圖2的示意示了緩沖存儲(chǔ)器的地址映射的細(xì)節(jié);圖3的示意示了閃存的存儲(chǔ)區(qū)的結(jié)構(gòu)和預(yù)讀數(shù)據(jù)管理表的細(xì)節(jié);圖4的示意示了預(yù)讀命令的主要指定;圖5的流程示了預(yù)讀命令響應(yīng)處理的控制流程;圖6的流程示了主機(jī)指定地址獲取處理(S2)的具體例子;
      圖7的示意示了在緩沖存儲(chǔ)器中沒(méi)有用于存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用區(qū)域時(shí)的處理模式(預(yù)讀數(shù)據(jù)更新模式);圖8的流程示了讀命令響應(yīng)處理的控制流程;圖9的流程示了寫(xiě)命令響應(yīng)處理的控制流程。
      具體實(shí)施例方式
      &lt;閃存卡&gt;
      圖1圖示了一種閃存卡,是本發(fā)明的存儲(chǔ)設(shè)備的一個(gè)例子。圖示的閃存卡1包括裝在安裝板上的下列部件可電擦除和可編程快閃存儲(chǔ)器2(是非易失性存儲(chǔ)器),包括DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)、SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器)或者類(lèi)似存儲(chǔ)器的緩沖存儲(chǔ)器4,以及執(zhí)行存儲(chǔ)器控制和外部接口控制的卡控制器(控制電路)5。該閃存卡1由主計(jì)算機(jī)6作為一個(gè)文件存儲(chǔ)設(shè)備而加以控制。也就是說(shuō),當(dāng)訪問(wèn)文件時(shí),主計(jì)算機(jī)6查閱形成在閃存卡1中的FAT(文件分配表),獲取構(gòu)成該文件的扇區(qū)的邏輯地址,使用這些邏輯地址向閃存卡1發(fā)出訪問(wèn)命令。響應(yīng)于該訪問(wèn)命令,閃存卡1控制對(duì)快閃存儲(chǔ)器2和緩沖存儲(chǔ)器4的訪問(wèn)。
      卡控制器5根據(jù)主計(jì)算機(jī)給出的讀命令、寫(xiě)命令、預(yù)讀命令或者類(lèi)似命令控制對(duì)緩沖存儲(chǔ)器4和快閃存儲(chǔ)器2的訪問(wèn)。讀命令指定讀扇區(qū)的起始邏輯地址以及要讀取數(shù)據(jù)的扇區(qū)的數(shù)量。寫(xiě)命令指定寫(xiě)扇區(qū)的起始邏輯地址以及要寫(xiě)入數(shù)據(jù)的扇區(qū)的數(shù)量。預(yù)讀命令創(chuàng)建一個(gè)將要預(yù)讀的數(shù)據(jù)的邏輯地址與存儲(chǔ)要預(yù)讀的數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)的預(yù)讀數(shù)據(jù)管理表,并從快閃存儲(chǔ)器2讀取要預(yù)讀的數(shù)據(jù),將其存儲(chǔ)到緩沖存儲(chǔ)器4中作為預(yù)讀數(shù)據(jù)。后面將詳細(xì)描述各命令的處理。
      緩沖存儲(chǔ)器4的一個(gè)存儲(chǔ)區(qū)包括一個(gè)臨時(shí)保存主計(jì)算機(jī)6提供的寫(xiě)數(shù)據(jù)的區(qū)域(寫(xiě)數(shù)據(jù)保存區(qū)10)、一個(gè)臨時(shí)保存從快閃存儲(chǔ)器2讀出并輸出到主計(jì)算機(jī)6的數(shù)據(jù)的區(qū)域(讀數(shù)據(jù)保存區(qū)11)、一個(gè)工作區(qū)12以及一個(gè)響應(yīng)于預(yù)讀命令將從快閃存儲(chǔ)器2讀出的數(shù)據(jù)保存為預(yù)讀數(shù)據(jù)的區(qū)域(預(yù)讀數(shù)據(jù)保存區(qū)13)。圖2圖示了緩沖存儲(chǔ)器4的地址映射的細(xì)節(jié)。預(yù)讀數(shù)據(jù)總是置于緩沖存儲(chǔ)器中,占據(jù)該緩沖存儲(chǔ)器的一個(gè)存儲(chǔ)區(qū)。因此,從通常用于寫(xiě)和讀的緩沖區(qū)10和11單獨(dú)管理緩沖存儲(chǔ)器。
      快閃存儲(chǔ)器2的存儲(chǔ)區(qū)包括一個(gè)數(shù)據(jù)部分14、一個(gè)內(nèi)部信息存儲(chǔ)部分15和一個(gè)預(yù)讀數(shù)據(jù)管理表存儲(chǔ)部分,這些部分中的每一個(gè)都有一個(gè)管理部分。內(nèi)部信息存儲(chǔ)部分15存儲(chǔ)可由主計(jì)算機(jī)6的OS(操作系統(tǒng))訪問(wèn)的存儲(chǔ)卡1的ID、RD(根目錄)、FAT(文件分配表)等。預(yù)讀數(shù)據(jù)管理表存儲(chǔ)部分16存儲(chǔ)響應(yīng)于預(yù)讀命令創(chuàng)建的預(yù)讀數(shù)據(jù)管理表。
      快閃存儲(chǔ)器2具有一個(gè)存儲(chǔ)器陣列ARY(圖中未示出),其中以矩陣形式排布了大量可電擦除的、可編程的非易失性存儲(chǔ)單元晶體管。存儲(chǔ)單元晶體管(也稱(chēng)為快閃存儲(chǔ)單元)未被圖示,具有多層?xùn)艠O結(jié)構(gòu),多層?xùn)艠O結(jié)構(gòu)包括形成在半導(dǎo)體板或者阱上的源極和漏極,通過(guò)溝道氧化物膜形成在源極和漏極之間的溝道區(qū)中的浮動(dòng)?xùn)?,以及通過(guò)層間絕緣膜疊在該浮動(dòng)?xùn)派系目刂茤艠O??刂茤艠O連接到相應(yīng)的字線(xiàn),漏極連接到相應(yīng)的位線(xiàn)、源極連接到源極線(xiàn)。當(dāng)電子注入到浮動(dòng)?xùn)胖袝r(shí),存儲(chǔ)單元晶體管的閾電壓升高。另一方面,當(dāng)電子從浮動(dòng)?xùn)胖谐殡x時(shí),閾電壓降低。存儲(chǔ)單元晶體管根據(jù)閾電壓相對(duì)于用于讀取數(shù)據(jù)的字線(xiàn)電壓(控制柵極被施加的電壓)的升降來(lái)存儲(chǔ)信息。盡管沒(méi)有特別的限制,本說(shuō)明書(shū)將存儲(chǔ)單元晶體管的閾電壓低的狀態(tài)稱(chēng)為擦除狀態(tài),將閾電壓高的狀態(tài)稱(chēng)為寫(xiě)狀態(tài)。
      在圖1中,卡控制器5包括一個(gè)主機(jī)接口電路20、一個(gè)作為操作控制裝置的微處理器(MPU)21、一個(gè)閃存控制器22和一個(gè)緩存控制器23。閃存控制器22包括一個(gè)ECC電路(圖中未示出)。
      所述MPU21包括一個(gè)CPU(中央處理器)25、一個(gè)程序存儲(chǔ)器(PGM)26和一個(gè)工作RAM(WRAM)27等,控制整個(gè)卡控制器5。所述程序存儲(chǔ)器26保存CPU25的操作程序等。
      主機(jī)接口電路20根據(jù)預(yù)定的程序建立與主計(jì)算機(jī)6比如個(gè)人計(jì)算機(jī)或者工作站的接口,比如ATA(ATAttachment,高級(jí)技術(shù)配件)接口、IDE(集成電路設(shè)備)接口、SCSI(小型計(jì)算機(jī)系統(tǒng)接口)接口、MMC(MultiMediaCard,注冊(cè)商標(biāo))接口以及PCMCIA(個(gè)人計(jì)算機(jī)存儲(chǔ)器卡國(guó)際聯(lián)合會(huì))接口。
      緩存控制器23根據(jù)MPU21給出的訪問(wèn)命令控制對(duì)緩沖存儲(chǔ)器4的訪問(wèn)。
      閃存控制器22根據(jù)MPU21給出的訪問(wèn)命令控制在快閃存儲(chǔ)器上進(jìn)行的讀操作、擦除操作以及寫(xiě)操作。ECC電路(圖中未示出)根據(jù)MPU21給出的命令為要寫(xiě)到快閃存儲(chǔ)器2上的數(shù)據(jù)產(chǎn)生糾錯(cuò)碼,并將其添加到寫(xiě)數(shù)據(jù)上。ECC電路還利用添加到讀數(shù)據(jù)上的糾錯(cuò)碼對(duì)從快閃存儲(chǔ)器2讀出的數(shù)據(jù)進(jìn)行檢錯(cuò)、糾錯(cuò)處理,在糾錯(cuò)能力范圍內(nèi)糾正錯(cuò)誤,如果有錯(cuò)誤的話(huà)。
      圖3圖示了快閃存儲(chǔ)器2的存儲(chǔ)區(qū)的結(jié)構(gòu)以及預(yù)讀管理表的細(xì)節(jié)。如圖所示,快閃存儲(chǔ)器2的存儲(chǔ)區(qū)(存儲(chǔ)器陣列)具有編號(hào)為0到4n+3的存儲(chǔ)扇區(qū),以及構(gòu)成管理部分的從M0到Mn的n塊。每一個(gè)存儲(chǔ)扇區(qū)和每一個(gè)管理部分各具有一個(gè)物理地址,每個(gè)存儲(chǔ)扇區(qū)被分配一個(gè)邏輯地址。邏輯地址例如是一個(gè)文件的扇區(qū)號(hào)(文件扇區(qū)號(hào))。在下面的說(shuō)明中,存儲(chǔ)扇區(qū)地址將被簡(jiǎn)單地稱(chēng)為物理地址或者物理扇區(qū)地址。需要注意,邏輯地址是從外部指定的地址,物理地址是用于通過(guò)邏輯地址訪問(wèn)內(nèi)部的地址。存儲(chǔ)扇區(qū)對(duì)應(yīng)于作為諸如HDD(硬盤(pán)驅(qū)動(dòng)器)之類(lèi)的存儲(chǔ)設(shè)備的一個(gè)重寫(xiě)單元的512B(字節(jié))存儲(chǔ)扇區(qū)。塊的有效標(biāo)記(valid flag)、代換標(biāo)記(substitution flag)等存儲(chǔ)在所述管理區(qū)中。為每一個(gè)存儲(chǔ)扇區(qū)提供ECC碼。一個(gè)字線(xiàn)或者一類(lèi)字線(xiàn)選擇信號(hào)選擇構(gòu)成一個(gè)塊的非易失性存儲(chǔ)單元。這樣,擦除處理和寫(xiě)處理以存儲(chǔ)單元為單位進(jìn)行。例如,以字線(xiàn)為單位施加擦除處理和寫(xiě)處理所需的高電壓。
      存儲(chǔ)扇區(qū)4n到4n+3構(gòu)成前述預(yù)讀數(shù)據(jù)管理表存儲(chǔ)部分16。該預(yù)讀數(shù)據(jù)管理表存儲(chǔ)部分16的每一個(gè)存儲(chǔ)扇區(qū)存儲(chǔ)多個(gè)預(yù)讀數(shù)據(jù)管理表Ti(T0、T1、T2……)以及ECC碼。由于在針對(duì)一個(gè)預(yù)讀命令執(zhí)行響應(yīng)處理時(shí)就添加一個(gè)預(yù)讀數(shù)據(jù)管理表,因此可能存在多個(gè)預(yù)讀數(shù)據(jù)管理表。
      一個(gè)預(yù)讀數(shù)據(jù)管理表Ti包括一個(gè)起始邏輯地址區(qū)30、一個(gè)起始存儲(chǔ)器地址區(qū)31、一個(gè)扇區(qū)號(hào)區(qū)32、一個(gè)有效標(biāo)記區(qū)33、一個(gè)訪問(wèn)計(jì)數(shù)區(qū)34以及一個(gè)文件名區(qū)35。起始邏輯地址區(qū)30存儲(chǔ)預(yù)讀數(shù)據(jù)的起始邏輯地址(邏輯扇區(qū)地址)。起始存儲(chǔ)器地址區(qū)31存儲(chǔ)在緩沖存儲(chǔ)器上保存預(yù)讀數(shù)據(jù)的區(qū)的起始存儲(chǔ)器地址。扇區(qū)號(hào)區(qū)32存儲(chǔ)預(yù)讀數(shù)據(jù)的扇區(qū)號(hào)。有效標(biāo)記區(qū)33存儲(chǔ)指示預(yù)讀數(shù)據(jù)管理表是否有效的標(biāo)記。訪問(wèn)計(jì)數(shù)區(qū)34存儲(chǔ)由主計(jì)算機(jī)6對(duì)寫(xiě)管理表管理的預(yù)讀數(shù)據(jù)訪問(wèn)的次數(shù)。文件名區(qū)35保存預(yù)讀數(shù)據(jù)所屬的文件名。
      預(yù)讀數(shù)據(jù)管理表可以在快閃存儲(chǔ)器2或者在緩沖存儲(chǔ)器4上進(jìn)行管理。在在快閃存儲(chǔ)器2上管理的情況下,每一次創(chuàng)建或者刪除預(yù)讀數(shù)據(jù)管理表時(shí),就執(zhí)行對(duì)預(yù)讀數(shù)據(jù)管理表16的擦除操作和寫(xiě)操作。結(jié)果,處理變得緩慢。在在緩沖存儲(chǔ)器4上管理的情況下,它們被快速地創(chuàng)建或者刪除。但是,在斷電時(shí),預(yù)讀數(shù)據(jù)管理表必須被保存到快閃存儲(chǔ)器2中。希望在接通電源時(shí),從快閃存儲(chǔ)器2讀出預(yù)讀數(shù)據(jù)管理表,并從快閃存儲(chǔ)器將被讀出的預(yù)讀數(shù)據(jù)管理表定位的預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器4。
      &lt;預(yù)讀命令響應(yīng)處理&gt;
      圖4示出了預(yù)讀命令的主要指定。必須通過(guò)指定一個(gè)地址或者文件名來(lái)指定預(yù)讀數(shù)據(jù)。當(dāng)用地址指定預(yù)讀數(shù)據(jù)時(shí),存儲(chǔ)卡1的用戶(hù)用邏輯地址指定一個(gè)預(yù)讀數(shù)據(jù)區(qū)。當(dāng)用文件名指定預(yù)讀數(shù)據(jù)時(shí),用戶(hù)指定存儲(chǔ)預(yù)讀數(shù)據(jù)的文件名。如果文件名被規(guī)定為包含指示文件位置的絕對(duì)路徑名,則容易指定相同的文件名,便于文件搜索。
      通常,存儲(chǔ)設(shè)備的用戶(hù)可能不能跟蹤OS管理的閃存卡上的邏輯地址。對(duì)于用戶(hù)來(lái)說(shuō),方便的是利用文件名跟蹤數(shù)據(jù)。因此,通過(guò)指定文件名,可以實(shí)現(xiàn)對(duì)預(yù)讀數(shù)據(jù)的令人滿(mǎn)意的可操作性。可能有這樣的情況OS不能管理快閃存儲(chǔ)器的邏輯地址。即使在這樣的情況下,也能用文件名指定預(yù)讀數(shù)據(jù)。
      當(dāng)發(fā)出預(yù)讀命令時(shí),或者在命令等待狀態(tài)下的后臺(tái)方式中已經(jīng)預(yù)先創(chuàng)建了預(yù)讀數(shù)據(jù)管理表之后,從快閃存儲(chǔ)器2將預(yù)讀數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)器4中。在命令等待狀態(tài)下存儲(chǔ)預(yù)讀數(shù)據(jù)可以防止發(fā)生下述情況由于預(yù)讀數(shù)據(jù)從快閃存儲(chǔ)器2到緩沖存儲(chǔ)器4的傳輸,讀取訪問(wèn)或者別的操作被延遲。
      圖5圖示了預(yù)讀命令響應(yīng)處理的控制過(guò)程。收到主計(jì)算機(jī)6發(fā)出的預(yù)讀命令(S1)后,卡控制器獲得由命令以邏輯地址或者文件名指定的預(yù)讀數(shù)據(jù)物理地址(S2)。基于預(yù)讀命令指定的預(yù)讀數(shù)據(jù)邏輯地址和對(duì)應(yīng)于邏輯地址的物理地址等,創(chuàng)建預(yù)讀數(shù)據(jù)管理表(S3)。例如在緩沖存儲(chǔ)器4的工作區(qū)12中創(chuàng)建所述預(yù)讀數(shù)據(jù)管理表。判斷所創(chuàng)建的預(yù)讀數(shù)據(jù)管理表中所限定的預(yù)讀數(shù)據(jù)是否能被實(shí)際讀取(S4)。這樣做是為了檢測(cè)不存在指定的文件的情況,或者指定的邏輯地址沒(méi)有與快閃存儲(chǔ)器的塊相關(guān)聯(lián)的情況。如果不能讀取預(yù)讀數(shù)據(jù),則向主計(jì)算機(jī)6返回一個(gè)錯(cuò)誤代碼。如果能夠讀取預(yù)讀數(shù)據(jù),則判斷能否接到下一個(gè)命令。否則,也就是,如果沒(méi)有別的訪問(wèn)命令從主計(jì)算機(jī)6發(fā)出,則從快閃存儲(chǔ)器2讀出預(yù)讀數(shù)據(jù),并寫(xiě)到緩沖存儲(chǔ)器4中(S6),在相應(yīng)預(yù)讀數(shù)據(jù)管理表的有效標(biāo)記區(qū)33中置有效標(biāo)記(S7)。如果預(yù)讀數(shù)據(jù)的扇區(qū)數(shù)是兩個(gè)或者更多,則控制過(guò)程返回步驟S6和S7,對(duì)隨后的扇區(qū)重復(fù)同樣的處理(S8)。通過(guò)微處理器11的地址計(jì)算,可以相繼獲得預(yù)讀隨后的扇區(qū)數(shù)據(jù)所需的快閃存儲(chǔ)器預(yù)讀地址以及緩沖存儲(chǔ)器的預(yù)讀數(shù)據(jù)寫(xiě)地址。當(dāng)已經(jīng)預(yù)讀了在步驟S3創(chuàng)建的預(yù)讀數(shù)據(jù)管理表所限定的所有扇區(qū)數(shù)據(jù)時(shí),由于接受當(dāng)前的預(yù)讀命令而導(dǎo)致的繁忙狀態(tài)被釋放(S9),從而能夠接收和執(zhí)行下一個(gè)命令。
      不用說(shuō),步驟S5中的判斷處理可以取消,以采用一個(gè)在步驟S6之后自動(dòng)繼續(xù)處理的處理過(guò)程。作為該情況(判斷是否執(zhí)行步驟S5的處理)下的處理切換的方法,卡控制器5本身可以具有一個(gè)設(shè)置切換功能,或者可以為預(yù)讀命令提供用于進(jìn)行切換的控制信息。
      當(dāng)從主計(jì)算機(jī)提供了訪問(wèn)命令時(shí),檢查預(yù)讀數(shù)據(jù)管理表的有效標(biāo)記33。結(jié)果,僅搜索設(shè)置了有效標(biāo)記33的預(yù)讀數(shù)據(jù)管理表,以獲得要使用的預(yù)讀數(shù)據(jù)的位置。
      圖6圖示了前述主機(jī)指定的地址獲取處理(S2)的一個(gè)實(shí)施例。圖中所示的處理是在下述情況下的響應(yīng)處理預(yù)讀數(shù)據(jù)是由主計(jì)算機(jī)6提供的預(yù)讀命令用文件名指定的。從預(yù)讀命令獲得保存預(yù)讀數(shù)據(jù)的文件名(S21)。下一步,讀快閃存儲(chǔ)器2的主引導(dǎo)記錄區(qū)(MBR)的分區(qū)ID,以識(shí)別要使用的文件系統(tǒng)(S22)。判斷是否能識(shí)別要使用的文件系統(tǒng)(S23)。如果能夠識(shí)別,則用快閃存儲(chǔ)器2上的FAT等分析文件系統(tǒng),獲得保存文件的邏輯地址。即使文件是碎片化的,也以同樣的方式獲取保存文件的邏輯地址。在確認(rèn)相關(guān)數(shù)據(jù)存在于文件系統(tǒng)上之后(S25的“是”),計(jì)算快閃存儲(chǔ)器的存儲(chǔ)地址。在快閃存儲(chǔ)器2的邏輯地址和物理地址之間的關(guān)聯(lián)可變的系統(tǒng)中,通過(guò)訪問(wèn)地址轉(zhuǎn)換表來(lái)計(jì)算快閃存儲(chǔ)器2的物理地址,該地址轉(zhuǎn)換表定義邏輯地址和物理地址之間的關(guān)系,被保存在快閃存儲(chǔ)器2的預(yù)定區(qū)域中。
      用戶(hù)不能在文件系統(tǒng)上管理邏輯地址。因此,用文件名指定使得用戶(hù)能夠管理預(yù)讀數(shù)據(jù)。
      當(dāng)文件碎片化時(shí),由于預(yù)讀數(shù)據(jù)管理表具有圖3所示的結(jié)構(gòu),需要為每一個(gè)碎片部分創(chuàng)建一個(gè)預(yù)讀數(shù)據(jù)管理表,在碎片部分中,邏輯地址是鄰接的。即使同一個(gè)數(shù)據(jù)文件存在多個(gè)預(yù)讀數(shù)據(jù)管理表,在響應(yīng)訪問(wèn)命令的過(guò)程中也不會(huì)導(dǎo)致對(duì)搜索處理的干擾,因?yàn)槊恳粋€(gè)預(yù)讀數(shù)據(jù)管理表在其文件名區(qū)35中具有一個(gè)文件名。
      由于可能在快閃存儲(chǔ)器2上存在多個(gè)相同的文件名,要保存在預(yù)讀數(shù)據(jù)管理表中的文件名最好也包含絕對(duì)路徑名?;蛘撸捎谠谖募到y(tǒng)中即使相同的文件名也具有不同的邏輯地址,要保存在預(yù)讀數(shù)據(jù)管理表中的文件名可以包含一個(gè)邏輯地址。
      圖7圖示了緩沖存儲(chǔ)器4沒(méi)有存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用區(qū)域時(shí)的處理模式(預(yù)讀數(shù)據(jù)更新模式)。
      緩沖存儲(chǔ)器4沒(méi)有存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用區(qū)域時(shí)的處理模式包括允許蓋寫(xiě)已經(jīng)保存有預(yù)讀數(shù)據(jù)的區(qū)域,禁止蓋寫(xiě)已經(jīng)保存有預(yù)讀數(shù)據(jù)的區(qū)域。
      采用蓋寫(xiě)禁止模式可以確保被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的有效使用。當(dāng)采用蓋寫(xiě)禁止模式時(shí),如果沒(méi)有未使用區(qū)域,則向預(yù)讀命令發(fā)出者返回一個(gè)出錯(cuò)響應(yīng),以警告用戶(hù)。蓋寫(xiě)允許模式的采用可以允許動(dòng)態(tài)交換預(yù)讀數(shù)據(jù)。
      蓋寫(xiě)允許模式包括完全允許蓋寫(xiě)已保存有預(yù)讀數(shù)據(jù)的區(qū)域,或者部分允許蓋寫(xiě)被訪問(wèn)得不頻繁的區(qū)域。在完全允許蓋寫(xiě)的情況下,卡控制器5允許按照FIFO(先進(jìn)先出)的順序相繼蓋寫(xiě)預(yù)讀數(shù)據(jù)保存區(qū)13中的預(yù)讀數(shù)據(jù)較舊的數(shù)據(jù)較早被蓋寫(xiě)。
      在基于訪問(wèn)頻率部分允許蓋寫(xiě)的情況下,可以基于預(yù)讀數(shù)據(jù)管理表的訪問(wèn)計(jì)數(shù)區(qū)34的值判斷一個(gè)給定區(qū)域是否是不被頻繁訪問(wèn)的區(qū)域。例如,如果將訪問(wèn)計(jì)數(shù)值1作為判斷標(biāo)準(zhǔn),則搜索訪問(wèn)計(jì)數(shù)值為1的預(yù)讀數(shù)據(jù)管理表,如果被找到,則可以使用在該預(yù)讀數(shù)據(jù)管理表中使用的緩沖存儲(chǔ)器地址。同樣,可以使用搜索任意數(shù)據(jù)的預(yù)讀數(shù)據(jù)管理表得到的具有最小訪問(wèn)計(jì)數(shù)值的預(yù)讀數(shù)據(jù)管理表中管理的緩沖存儲(chǔ)器地址。
      前述部分允許方便地滿(mǎn)足了預(yù)讀數(shù)據(jù)的動(dòng)態(tài)互換性以及被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的可用性。
      可以以控制數(shù)據(jù)或者模式信號(hào)的形式在卡控制器5中設(shè)置前述預(yù)讀數(shù)據(jù)更新模式?;蛘?,在每一次,一個(gè)預(yù)讀命令可以指定一種預(yù)讀數(shù)據(jù)更新模式。
      &lt;讀命令響應(yīng)處理&gt;
      圖8圖示了讀命令響應(yīng)處理的控制流程。收到主計(jì)算機(jī)6發(fā)出的讀命令后(S30),卡控制器5判斷該讀命令中指定的邏輯地址相對(duì)應(yīng)的預(yù)讀數(shù)據(jù)管理表是否存在(S31)。如果對(duì)于所有指定的邏輯地址都不存在預(yù)讀數(shù)據(jù)管理表,卡控制器就計(jì)算對(duì)應(yīng)于一個(gè)用于讀出的邏輯地址的快閃存儲(chǔ)器物理扇區(qū)地址(S32)。然后,卡控制器5從該物理扇區(qū)地址讀出數(shù)據(jù),將其傳送到緩沖存儲(chǔ)器的讀出數(shù)據(jù)保存區(qū)(S33),并將傳送到該讀出數(shù)據(jù)保存區(qū)的數(shù)據(jù)輸出到主計(jì)算機(jī)6(S34)。
      在步驟S31,當(dāng)判斷出對(duì)于指定的邏輯地址存在預(yù)讀數(shù)據(jù)管理表時(shí),判斷是否所有的數(shù)據(jù)都已被預(yù)讀(S35)。簡(jiǎn)言之,判斷在該讀命令中指定的所有邏輯地址是否與預(yù)讀數(shù)據(jù)管理表所關(guān)聯(lián)的邏輯地址匹配。如果判斷出部分預(yù)讀數(shù)據(jù)不存在,則計(jì)算不存在預(yù)讀數(shù)據(jù)的邏輯地址對(duì)應(yīng)的快閃存儲(chǔ)器物理扇區(qū)地址(S36),從所述物理扇區(qū)地址讀出數(shù)據(jù)并傳送到緩沖存儲(chǔ)器4的讀出數(shù)據(jù)保存區(qū)(S33)。對(duì)于存在部分預(yù)讀數(shù)據(jù)的邏輯地址,將相應(yīng)預(yù)讀數(shù)據(jù)管理表的訪問(wèn)計(jì)數(shù)值增一(S37)。在步驟S33中傳送到讀出數(shù)據(jù)保存區(qū)的數(shù)據(jù)和預(yù)讀數(shù)據(jù)保存區(qū)13中剩余的預(yù)讀數(shù)據(jù)被輸出到主計(jì)算機(jī)6(S34)。如果所有的邏輯地址都存在預(yù)讀數(shù)據(jù),則將對(duì)應(yīng)于邏輯地址的預(yù)讀數(shù)據(jù)管理表的訪問(wèn)計(jì)數(shù)值增一(S37),并將預(yù)讀數(shù)據(jù)保存區(qū)13中相應(yīng)的預(yù)讀數(shù)據(jù)輸出到主計(jì)算機(jī)6(S34)。
      在圖8的處理中,當(dāng)預(yù)讀數(shù)據(jù)未完成時(shí),在被傳輸?shù)街饔?jì)算機(jī)6之前,缺少的數(shù)據(jù)被從快閃存儲(chǔ)器2傳輸?shù)骄彌_存儲(chǔ)器4。在從快閃存儲(chǔ)器2將缺少的數(shù)據(jù)讀到緩沖存儲(chǔ)器4之前,可以將預(yù)讀數(shù)據(jù)傳送到主計(jì)算機(jī)6。
      &lt;寫(xiě)命令響應(yīng)處理&gt;
      圖9圖示了寫(xiě)命令響應(yīng)處理的控制流程。收到從主計(jì)算機(jī)6發(fā)出的寫(xiě)命令后(S40),卡控制器5將主計(jì)算機(jī)6提供的寫(xiě)數(shù)據(jù)臨時(shí)存儲(chǔ)到寫(xiě)數(shù)據(jù)保存區(qū)10中(S41)。卡存儲(chǔ)器5計(jì)算寫(xiě)命令中指定的邏輯地址對(duì)應(yīng)的快閃存儲(chǔ)器2物理扇區(qū)地址(S42)。然后,它向快閃存儲(chǔ)器2發(fā)出寫(xiě)命令,指導(dǎo)向快閃存儲(chǔ)器2的寫(xiě)動(dòng)作(S43)。與快閃存儲(chǔ)器2上的寫(xiě)操作同時(shí),卡控制器5判斷是否存在關(guān)于寫(xiě)數(shù)據(jù)的預(yù)讀數(shù)據(jù)管理表(S44)。如果寫(xiě)數(shù)據(jù)中涉及的有效預(yù)讀數(shù)據(jù)存在,則由寫(xiě)數(shù)據(jù)在緩沖存儲(chǔ)器4上更新預(yù)讀數(shù)據(jù)(S47),更新預(yù)讀數(shù)據(jù)管理表的內(nèi)容(S48)。例如,將訪問(wèn)計(jì)數(shù)值增一。在步驟S48的處理結(jié)束后,或者如果步驟S44的處理的結(jié)果是沒(méi)有相應(yīng)的預(yù)讀數(shù)據(jù),則卡控制器5等待向快閃存儲(chǔ)器的寫(xiě)動(dòng)作結(jié)束。然后,其釋放由所述寫(xiě)命令設(shè)置的繁忙標(biāo)記(S46)。這樣,處理結(jié)束。
      當(dāng)更新預(yù)讀數(shù)據(jù)時(shí),緩沖存儲(chǔ)器上預(yù)讀數(shù)據(jù)保存區(qū)中的數(shù)據(jù)必須與快閃存儲(chǔ)器上的數(shù)據(jù)同時(shí)更新。因此,盡管無(wú)論何時(shí)都需要在寫(xiě)請(qǐng)求期間監(jiān)視地址,性能也不會(huì)受大的影響,因?yàn)閷?duì)緩沖存儲(chǔ)器4的更新比向快閃存儲(chǔ)器進(jìn)行存儲(chǔ)要快得多。
      &lt;保存預(yù)讀數(shù)據(jù)管理表&gt;
      當(dāng)正在非易失性存儲(chǔ)器比如緩沖存儲(chǔ)器4上的工作區(qū)12上使用預(yù)讀數(shù)據(jù)管理表時(shí),卡存儲(chǔ)器5將預(yù)讀數(shù)據(jù)管理表按照預(yù)定的定時(shí)保存到快閃存儲(chǔ)器2的數(shù)據(jù)管理表保存區(qū)。所述預(yù)定定時(shí)指斷電時(shí)間或者在預(yù)定時(shí)間段后的命令等待狀態(tài)。通過(guò)保存操作預(yù)讀數(shù)據(jù)的預(yù)讀數(shù)據(jù)管理表,即使由于斷電或者類(lèi)似事故導(dǎo)致緩沖存儲(chǔ)器4上的預(yù)讀數(shù)據(jù)丟失,數(shù)據(jù)隨后也能恢復(fù)。響應(yīng)于電源的接通,卡控制器5從快閃存儲(chǔ)器2讀預(yù)讀數(shù)據(jù)管理表,從快閃存儲(chǔ)器2將預(yù)讀數(shù)據(jù)管理表定位的預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器4。
      從上面的描述可以看到,通過(guò)閃存卡1可以獲得下述效果[1]主計(jì)算機(jī)6能夠通過(guò)預(yù)讀命令為閃存卡1指定預(yù)讀數(shù)據(jù)。因此,可以靈活地確定要預(yù)讀的數(shù)據(jù),從而最大化通過(guò)預(yù)讀縮短訪問(wèn)時(shí)間的效果。閃存卡1的讀取性能取決于作為存儲(chǔ)介質(zhì)的快閃存儲(chǔ)器2本身的讀取性能。這樣,收到來(lái)自主計(jì)算機(jī)6的讀請(qǐng)求時(shí),通過(guò)增加來(lái)自緩沖存儲(chǔ)器4的預(yù)讀數(shù)據(jù)的輸出而不是從快閃存儲(chǔ)器2讀取,可以改善系統(tǒng)性能。
      預(yù)讀命令可以用任何邏輯地址和文件名指定預(yù)讀數(shù)據(jù)。例如,預(yù)讀命令有一個(gè)邏輯地址指定字段和文件名指定字段。以主引導(dǎo)記錄或者FAT(文件分配表)為代表,由于存在用戶(hù)容易跟蹤邏輯地址的情況,用邏輯地址指定比較好,因?yàn)榭梢灾苯又付A(yù)讀數(shù)據(jù)。
      存在閃存卡的用戶(hù)不能跟蹤OS管理的快閃存儲(chǔ)器2上的邏輯地址的情況。用戶(hù)可以方便地利用文件名跟蹤數(shù)據(jù),從而獲得令人滿(mǎn)意的對(duì)預(yù)讀的數(shù)據(jù)的可操作性。
      卡控制器5不僅在執(zhí)行預(yù)讀命令期間,而且在預(yù)先創(chuàng)建預(yù)讀數(shù)據(jù)管理表之后的預(yù)定時(shí)刻,將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器4。從而,卡控制器5能夠在預(yù)讀命令的執(zhí)行終止后的命令等待狀態(tài)將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器4。預(yù)讀處理防止由于預(yù)讀處理而使讀取訪問(wèn)和其他操作延遲,從而導(dǎo)致數(shù)據(jù)處理效率下降。
      預(yù)讀數(shù)據(jù)管理表具有用于保存含預(yù)讀數(shù)據(jù)的文件名的區(qū)域,以及用于保存預(yù)讀數(shù)據(jù)的起始邏輯地址、存儲(chǔ)預(yù)讀數(shù)據(jù)的區(qū)域的起始存儲(chǔ)器地址以及預(yù)讀數(shù)據(jù)的數(shù)據(jù)計(jì)數(shù)器的區(qū)域。由于預(yù)讀數(shù)據(jù)管理表的這種結(jié)構(gòu),在文件系統(tǒng)中,當(dāng)一個(gè)文件碎片化時(shí),一片文件數(shù)據(jù)由多個(gè)分離的預(yù)讀數(shù)據(jù)管理表管理。因此,在讀取訪問(wèn)等的響應(yīng)處理中,可以用文件名搜索相應(yīng)的預(yù)讀數(shù)據(jù)管理表,從而進(jìn)一步提高緩沖存儲(chǔ)器上對(duì)所需的預(yù)讀數(shù)據(jù)的訪問(wèn)速度。
      預(yù)讀數(shù)據(jù)管理表具有用于保存主計(jì)算機(jī)6對(duì)預(yù)讀數(shù)據(jù)的訪問(wèn)次數(shù)的區(qū)域34。因此,當(dāng)緩沖存儲(chǔ)器4中沒(méi)有用于存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用的區(qū)域時(shí),卡控制器5基于保存在預(yù)讀數(shù)據(jù)管理表中的訪問(wèn)計(jì)數(shù)值搜索不被頻繁訪問(wèn)的緩沖存儲(chǔ)器地址,能夠?qū)⒍ㄎ坏降木彌_存儲(chǔ)器地址的一個(gè)區(qū)域分配到一個(gè)新的用于保存預(yù)讀數(shù)據(jù)的區(qū)域。這確保了被頻繁訪問(wèn)的預(yù)讀數(shù)據(jù)的有效使用。
      卡控制器5按照預(yù)定的定時(shí)將預(yù)讀數(shù)據(jù)管理表保存到快閃存儲(chǔ)器2的預(yù)讀數(shù)據(jù)管理表保存區(qū)。從而,當(dāng)預(yù)讀數(shù)據(jù)管理表正在緩沖存儲(chǔ)器4或者工作RAM26上被使用時(shí),由于保存了操作預(yù)讀數(shù)據(jù)的預(yù)讀數(shù)據(jù)管理表,即使由于斷電等事故而丟失的緩沖存儲(chǔ)器上的預(yù)讀數(shù)據(jù)也能在以后恢復(fù)。
      盡管上面結(jié)合優(yōu)選實(shí)施例詳細(xì)描述了本發(fā)明,本發(fā)明不限于這些實(shí)施例。不用說(shuō),本發(fā)明可以以各種方式加以修改,而不脫離其實(shí)質(zhì)和范圍。
      例如,文件系統(tǒng)可以是NTFS或者其他文件系統(tǒng),盡管在上面的描述中使用的是FAT系統(tǒng)。盡管在上面的說(shuō)明中使用非易失性存儲(chǔ)器作為快閃存儲(chǔ)器,但也可以使用其他半導(dǎo)體存儲(chǔ)器,比如鐵電存儲(chǔ)器。另外,非易失性存儲(chǔ)器可以是記錄盤(pán)比如硬盤(pán),而不限于半導(dǎo)體存儲(chǔ)器。本發(fā)明可應(yīng)用于硬盤(pán)驅(qū)動(dòng)器而不限于存儲(chǔ)卡比如閃存卡。在這種情況下,存儲(chǔ)設(shè)備可以固定地置于一個(gè)安裝系統(tǒng)中,而不限于可移除的設(shè)備。
      快閃存儲(chǔ)器不限于多層?xùn)艠O結(jié)構(gòu),可應(yīng)用分離柵極(split gate)結(jié)構(gòu),其中,串聯(lián)形成一個(gè)選擇MOS晶體管和一個(gè)存儲(chǔ)MOS晶體管,其間不設(shè)置擴(kuò)散層。同樣,類(lèi)似于氮化硅膜,可以應(yīng)用這樣的存儲(chǔ)單元結(jié)構(gòu)其中電荷被局部保存在阱區(qū)(trap area)中。半導(dǎo)體非易失性存儲(chǔ)器可以在一個(gè)存儲(chǔ)單元中存儲(chǔ)2個(gè)比特或者更多的信息,也可以在一個(gè)存儲(chǔ)單元中存儲(chǔ)1比特信息。
      本發(fā)明也應(yīng)用于具有控制電路比如卡控制器的存儲(chǔ)卡,該卡控制器不包括主接口電路比如IDE,但是是標(biāo)準(zhǔn)化的,將其功能留給主計(jì)算機(jī)。
      取決于文件系統(tǒng)的配置,在預(yù)讀命令中指定的預(yù)讀數(shù)據(jù)邏輯地址可以基本上與非易失性存儲(chǔ)器的物理地址匹配。
      下面簡(jiǎn)要說(shuō)明在本申請(qǐng)中公開(kāi)的本發(fā)明的代表實(shí)施例的效果。
      可以從存儲(chǔ)設(shè)備的外部用預(yù)讀命令指定預(yù)讀數(shù)據(jù)。因此,能夠靈活地決定要預(yù)讀的數(shù)據(jù),以最大化通過(guò)預(yù)讀縮短訪問(wèn)時(shí)間的效果。在來(lái)自外部的讀請(qǐng)求期間,從緩沖存儲(chǔ)器輸出要預(yù)讀的數(shù)據(jù)比從存儲(chǔ)設(shè)備讀出數(shù)據(jù)更為頻繁。結(jié)果,可以提高使用該存儲(chǔ)設(shè)備的系統(tǒng)的數(shù)據(jù)處理性能。
      權(quán)利要求
      1.一種存儲(chǔ)設(shè)備,包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路(5),其中,所述控制電路建立一個(gè)預(yù)讀數(shù)據(jù)管理表,該表將外部輸入的預(yù)讀命令指定的預(yù)讀數(shù)據(jù)的邏輯地址與存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái),該控制電路從非易失性存儲(chǔ)器讀出所述命令指定的數(shù)據(jù),并將其作為預(yù)讀數(shù)據(jù)存儲(chǔ)到所述緩沖存儲(chǔ)器中,當(dāng)外部輸入的讀命令指定的邏輯地址與所述預(yù)讀數(shù)據(jù)管理表所關(guān)聯(lián)的邏輯地址匹配時(shí),控制電路從所述緩沖存儲(chǔ)器輸出相應(yīng)的預(yù)讀數(shù)據(jù)。
      2.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀命令用邏輯地址指定預(yù)讀數(shù)據(jù)。
      3.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀命令用文件名指定預(yù)讀數(shù)據(jù)。
      4.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述控制電路在執(zhí)行預(yù)讀命令期間將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器。
      5.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述控制電路在將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器之前創(chuàng)建預(yù)讀數(shù)據(jù)管理表。
      6.如權(quán)利要求5所述的存儲(chǔ)設(shè)備,其中,在預(yù)讀命令的執(zhí)行終止后的命令等待狀態(tài)中,所述控制電路將預(yù)讀數(shù)據(jù)傳輸?shù)骄彌_存儲(chǔ)器。
      7.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀數(shù)據(jù)管理表包括用于存儲(chǔ)預(yù)讀數(shù)據(jù)起始邏輯地址、存儲(chǔ)預(yù)讀數(shù)據(jù)的區(qū)域的起始存儲(chǔ)器地址以及預(yù)讀數(shù)據(jù)的數(shù)據(jù)計(jì)數(shù)值的區(qū)域。
      8.如權(quán)利要求6所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀數(shù)據(jù)管理表包括一個(gè)用于保存指示相應(yīng)預(yù)讀數(shù)據(jù)有效性的標(biāo)記的區(qū)域。
      9.如權(quán)利要求3所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀數(shù)據(jù)管理表包括一個(gè)用于保存含預(yù)讀數(shù)據(jù)的文件名的區(qū)域。
      10.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述預(yù)讀數(shù)據(jù)管理表包括一個(gè)用于保存預(yù)讀數(shù)據(jù)的訪問(wèn)計(jì)數(shù)值的區(qū)域。
      11.如權(quán)利要求10所述的存儲(chǔ)設(shè)備,其中,當(dāng)緩沖存儲(chǔ)器中不存在用于存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用的區(qū)域時(shí),所述控制電路基于保存在所述預(yù)讀數(shù)據(jù)管理表中的訪問(wèn)計(jì)數(shù)值搜索一個(gè)不被頻繁訪問(wèn)的緩沖存儲(chǔ)器,并將所定位到的緩沖存儲(chǔ)器地址的一個(gè)區(qū)域分配到一個(gè)用于存儲(chǔ)預(yù)讀數(shù)據(jù)的新區(qū)域。
      12.如權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中,所述控制電路按照預(yù)定的定時(shí)將預(yù)讀數(shù)據(jù)管理表保存到所述非易失性存儲(chǔ)器的預(yù)讀數(shù)據(jù)管理表保存區(qū)中。
      13.如權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中,響應(yīng)于電源的接通,所述控制電路從所述非易失性存儲(chǔ)器讀出一個(gè)預(yù)讀數(shù)據(jù)管理表,并將該預(yù)讀數(shù)據(jù)管理表所定位的預(yù)讀數(shù)據(jù)從所述非易失性存儲(chǔ)器傳輸?shù)剿鼍彌_存儲(chǔ)器。
      14.一種存儲(chǔ)設(shè)備,包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路,其中,響應(yīng)于從外部輸入的讀命令,所述控制電路查閱將預(yù)讀數(shù)據(jù)的邏輯地址與用于存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)的可重寫(xiě)預(yù)讀數(shù)據(jù)管理表,判斷緩沖存儲(chǔ)器是否保存有該命令所指定的數(shù)據(jù),如果緩沖存儲(chǔ)器保存有所述數(shù)據(jù),就將從緩沖存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部,否則將從非易失性存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部。
      15.如權(quán)利要求14所述的存儲(chǔ)設(shè)備,其中,所述控制電路響應(yīng)于電源的接通而從非易失性存儲(chǔ)器讀出預(yù)讀數(shù)據(jù)管理表,并從非易失性存儲(chǔ)器將該預(yù)讀數(shù)據(jù)管理表定位的預(yù)讀數(shù)據(jù)傳輸給緩沖存儲(chǔ)器。
      16.一種存儲(chǔ)設(shè)備,包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路,其中,響應(yīng)于從外部輸入的預(yù)讀命令,該控制電路建立將該命令指定的預(yù)讀數(shù)據(jù)的邏輯地址與用于存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái)的預(yù)讀數(shù)據(jù)管理表,從非易失性存儲(chǔ)器讀出該命令指定的數(shù)據(jù),將其存儲(chǔ)到所述緩沖存儲(chǔ)器中作為預(yù)讀數(shù)據(jù),從而存儲(chǔ)在該緩沖存儲(chǔ)器中的預(yù)讀數(shù)據(jù)能夠被輸出到外部。
      17.如權(quán)利要求16所述的存儲(chǔ)設(shè)備,其中當(dāng)緩沖存儲(chǔ)器中沒(méi)有用于存儲(chǔ)預(yù)讀數(shù)據(jù)的未使用區(qū)域時(shí),所述控制電路允許在下面兩種情況之間作出選擇允許和禁止蓋寫(xiě)已經(jīng)保存了預(yù)讀數(shù)據(jù)的區(qū)域。
      18.如權(quán)利要求17所述的存儲(chǔ)設(shè)備,其中,前述的允許蓋寫(xiě)是完全允許蓋寫(xiě)已經(jīng)保存了預(yù)讀數(shù)據(jù)的區(qū)域,或者是部分允許蓋寫(xiě)不被頻繁訪問(wèn)的區(qū)域。
      19.如權(quán)利要求16所述的存儲(chǔ)設(shè)備,其中,響應(yīng)于從外部輸入的讀命令,所述控制電路查閱所述預(yù)讀數(shù)據(jù)管理表以判斷所述緩沖存儲(chǔ)器是否保存有該命令指定的數(shù)據(jù),如果緩沖存儲(chǔ)器保存有該數(shù)據(jù),控制電路就將從緩沖存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部,否則控制電路將從非易失性存儲(chǔ)器讀出的數(shù)據(jù)輸出到外部。
      20.如權(quán)利要求16或19所述的存儲(chǔ)設(shè)備,其中,響應(yīng)于從外部輸入的寫(xiě)命令,控制電路查閱所述預(yù)讀數(shù)據(jù)管理表,以判斷緩沖存儲(chǔ)器是否保存有該命令指定的寫(xiě)地址的數(shù)據(jù),如果緩沖存儲(chǔ)器保存有該數(shù)據(jù),控制電路就用寫(xiě)數(shù)據(jù)連同所述非易失性存儲(chǔ)器的數(shù)據(jù)更新緩沖存儲(chǔ)器的數(shù)據(jù),否則其用寫(xiě)數(shù)據(jù)更新非易失性存儲(chǔ)器的數(shù)據(jù)。
      全文摘要
      本申請(qǐng)公開(kāi)了一種存儲(chǔ)設(shè)備,其能夠靈活地確定要預(yù)讀的數(shù)據(jù)。該存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器;比該非易失性存儲(chǔ)器具有更高的訪問(wèn)速度的緩沖存儲(chǔ)器;以及控制電路。所述控制電路建立一個(gè)預(yù)讀數(shù)據(jù)管理表,該表將外部輸入的預(yù)讀命令指定的預(yù)讀數(shù)據(jù)的邏輯地址與存儲(chǔ)預(yù)讀數(shù)據(jù)的緩沖存儲(chǔ)器地址關(guān)聯(lián)起來(lái),該控制電路從非易失性存儲(chǔ)器讀出所述命令指定的數(shù)據(jù),并將其作為預(yù)讀數(shù)據(jù)存儲(chǔ)到所述緩沖存儲(chǔ)器中。當(dāng)外部輸入的讀命令指定的邏輯地址與所述預(yù)讀數(shù)據(jù)管理表所關(guān)聯(lián)的邏輯地址匹配時(shí),控制電路從所述緩沖存儲(chǔ)器輸出相應(yīng)的預(yù)讀數(shù)據(jù)。
      文檔編號(hào)G11B20/14GK1538284SQ20041003482
      公開(kāi)日2004年10月20日 申請(qǐng)日期2004年4月14日 優(yōu)先權(quán)日2003年4月14日
      發(fā)明者原郁夫, 鹽田茂雅, 后藤啟之, 澀谷洋文, 之, 文, 雅 申請(qǐng)人:株式會(huì)社瑞薩科技
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1