專(zhuān)利名稱(chēng):快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種儀器領(lǐng)域信息存貯中的貯存裝置的管理、資料連接結(jié)構(gòu)與演算法,特別是涉及一種建立邏輯區(qū)塊位址與實(shí)際存取位址的映射關(guān)系,以確保資料連接的完整性,并設(shè)有斷電的保護(hù)措施,更進(jìn)一步保護(hù)資料連結(jié)結(jié)構(gòu),提高快閃記憶體在使用上的穩(wěn)定性的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法。
快閃記憶體(flash memory)是一種半導(dǎo)體式的儲(chǔ)存裝置,其具有單位密度記憶容量高、讀寫(xiě)速度快及方便攜帶等特性,使其非常適用于強(qiáng)調(diào)輕薄短小的通訊器材中,且無(wú)須電池就可以保存資料,所以使得快閃記憶體卡在應(yīng)用上、市場(chǎng)上均迅速的成長(zhǎng)擴(kuò)大。但是快閃記憶體亦有其缺點(diǎn),即是抹除/寫(xiě)入(Erase/Program)的次數(shù)受到限制。依據(jù)快閃記憶體的規(guī)格書(shū)中提到區(qū)塊(Block,8192位元組,為快閃記憶體抹除動(dòng)作的最小單位)的抹除次數(shù)超過(guò)一百萬(wàn)次時(shí),則無(wú)法擔(dān)保該區(qū)塊依舊可以正常操作。
因此針對(duì)快閃記憶體抹除次數(shù)的限制,如何設(shè)計(jì)一良好的演算法與連結(jié)結(jié)構(gòu),將抹除/寫(xiě)錄次數(shù)平均分配給每個(gè)區(qū)塊,且不影響資料的存取時(shí)間及運(yùn)算速度,最重要是確保資料存取的完整性,而如何同時(shí)達(dá)到上述的多個(gè)目標(biāo),一直是快閃記憶體的韌體設(shè)計(jì)者們所面臨的瓶頸制約問(wèn)題。由此可見(jiàn),上述現(xiàn)有的快閃記憶體仍存在有缺陷,而丞待加以改進(jìn)。
有鑒于上述現(xiàn)有的快閃記憶體存在的缺陷,本發(fā)明人基于在實(shí)驗(yàn)室長(zhǎng)時(shí)間致力于上述問(wèn)題的研究與設(shè)計(jì)的豐富實(shí)務(wù)經(jīng)驗(yàn)及專(zhuān)業(yè)知識(shí),積極加以研究創(chuàng)新,經(jīng)過(guò)不斷的研究、設(shè)計(jì),并經(jīng)無(wú)數(shù)次的測(cè)試樣品及演算法的改良、資料連結(jié)結(jié)構(gòu)的精簡(jiǎn),最終終于創(chuàng)設(shè)發(fā)展出本發(fā)明。
本發(fā)明的主要目的在于,克服現(xiàn)有的快閃記憶體存在的缺陷,而提供一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,使其可有效率地使用快閃記憶體,將資料連結(jié)結(jié)構(gòu)和演算法設(shè)計(jì)為一體,主要包括有快閃記憶體的規(guī)劃、資料連結(jié)結(jié)構(gòu)的建立、備用區(qū)塊管理和分頁(yè)(page)寫(xiě)入快閃記憶體流程,使得在搜尋資料、寫(xiě)入資料的時(shí)間能有效的縮短,并且可達(dá)到增長(zhǎng)快閃記憶體的使用壽命的功效。
本發(fā)明的目的是由以下技術(shù)方案實(shí)現(xiàn)的。依據(jù)本發(fā)明提出的一種快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其主要是將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,其包括有一般資料區(qū)塊,可由主機(jī)直接存取資料;一備用區(qū)塊,是作為一般資料區(qū)塊的備份,在主機(jī)所定址到的一般資料區(qū)塊發(fā)生重復(fù)寫(xiě)入的情況時(shí),用以來(lái)存放欲寫(xiě)入的主機(jī)資料;一連結(jié)表區(qū)塊,是存放一般資料區(qū)塊內(nèi)的實(shí)際位址與主機(jī)定址的邏輯位置的對(duì)照表,以有效的進(jìn)行邏輯位置與實(shí)際位置的互換,確保資料的正確性。
本發(fā)明的目的還可以通過(guò)以下技術(shù)措施來(lái)進(jìn)一步實(shí)現(xiàn)。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其更包括有一新區(qū)塊,是作為前述各種區(qū)塊的延伸,一旦并入前述的一區(qū)塊后,即無(wú)法恢復(fù)成新區(qū)塊;一毀損區(qū)塊,前述各區(qū)塊毀損,均會(huì)被標(biāo)示成毀損區(qū)塊,且永遠(yuǎn)無(wú)法使用。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的資料區(qū)塊是屬于主機(jī)端可以利用邏輯定址方式直接存取的顯性區(qū)塊。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊是屬于主機(jī)端無(wú)法以邏輯定址方式存取的隱性區(qū)塊,為了因應(yīng)資料連結(jié)結(jié)構(gòu)的需要,存放韌體所需的資料。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的備用區(qū)塊的管理方式是建立于備用區(qū)塊堆疊區(qū)、堆疊開(kāi)頭指位器及堆疊結(jié)尾指位器的架構(gòu)上;該堆疊開(kāi)頭指位器是指向備用區(qū)塊堆疊區(qū)的第一個(gè)備用區(qū)塊以等待被使用;該堆疊結(jié)尾指位器是指向所有備用區(qū)塊之后的第一個(gè)空位置,以準(zhǔn)備存放新進(jìn)的備用區(qū)塊。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的資料區(qū)塊的資料寫(xiě)入流程包括有a、自連結(jié)表中找出由主機(jī)端指定邏輯區(qū)塊、對(duì)照連結(jié)表發(fā)現(xiàn)可存放資料的實(shí)際區(qū)塊的原區(qū)塊;b、再由備用區(qū)塊堆疊區(qū)所提出將準(zhǔn)備代替原區(qū)塊的備用區(qū)塊堆疊中找出替代區(qū)塊;c、代替原區(qū)塊儲(chǔ)存主機(jī)端傳送過(guò)來(lái)的資料;d、所有主機(jī)端的資料都寫(xiě)入替代區(qū)塊后,再將原區(qū)塊內(nèi)剩余沒(méi)進(jìn)行更新的分頁(yè)資料搬移到替代區(qū)塊內(nèi);
e、更新連結(jié)表內(nèi)容,使主機(jī)端在下次的存取,能獲得完整的資料;f、將原區(qū)塊抹除置入備用區(qū)塊堆疊內(nèi),使其能供下次使用。
本發(fā)明的目的是由以下技術(shù)方案實(shí)現(xiàn)的。依據(jù)本發(fā)明提出的一種資料的連結(jié)結(jié)構(gòu),其特征在于其包括有連結(jié)區(qū)塊,是記錄所有的連結(jié)表區(qū)塊位址;連結(jié)表,是儲(chǔ)存于連結(jié)表區(qū)塊內(nèi),在快閃記憶體記錄邏輯位址與實(shí)際位址的連結(jié)關(guān)系;連結(jié)分頁(yè),是記錄連結(jié)表位于連結(jié)表區(qū)塊中的分頁(yè)位置,經(jīng)由它們,可以確切定義連結(jié)表在快閃記憶體中的位置;經(jīng)由此三表結(jié)構(gòu)的建立,可快速的完成資料搜尋工作,且可同時(shí)達(dá)到資料讀取的完整性。
本發(fā)明的目的還可以通過(guò)以下技術(shù)措施來(lái)進(jìn)一步實(shí)現(xiàn)。
前述的資料連接結(jié)構(gòu),其中所述的連結(jié)分頁(yè)其更新連結(jié)分頁(yè)的方法包括更新備用區(qū)塊堆疊區(qū)堆疊開(kāi)頭指位器以及堆疊結(jié)尾指位器。
前述的資料連接結(jié)構(gòu),其中所述的連結(jié)表其結(jié)構(gòu)是利用連結(jié)表的實(shí)際位址為邏輯位址,儲(chǔ)存在該實(shí)際位址內(nèi)的資料為主機(jī)所定址到的實(shí)際位址。
本發(fā)明的目的是由以下技術(shù)方案實(shí)現(xiàn)的。一種備用區(qū)塊管理演算法,其特征在于其包括有下列步驟a、從堆疊區(qū)取出由堆疊開(kāi)頭指位器所指定的備用區(qū)塊;b、堆疊開(kāi)頭指位器的值加“1”,指向下一個(gè)等待被取出的備用區(qū)塊;c、抹除欲取代的區(qū)塊后,置入堆疊結(jié)尾指位器所指的位置;d、將堆疊指位器的值加“1”,指向下一個(gè)空的位置,準(zhǔn)備存放新的備用區(qū)塊;借前述的步驟,可有效的做好備用區(qū)塊的管理,并可達(dá)到平均各一般資料區(qū)塊的使用次數(shù)。
本發(fā)明的目的是由以下技術(shù)方案實(shí)現(xiàn)的。一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是將檔案配置表與一般資料分開(kāi)處理及設(shè)有一連結(jié)結(jié)構(gòu);該連結(jié)結(jié)構(gòu)設(shè)有檔案配置表連結(jié)表的單一表格,該檔案配置表連結(jié)表負(fù)責(zé)記錄每個(gè)邏輯區(qū)塊對(duì)應(yīng)的實(shí)際區(qū)塊,在系統(tǒng)開(kāi)機(jī)時(shí)依據(jù)每個(gè)區(qū)塊中備用區(qū)域所存放的識(shí)別碼,以建立檔案配置表連結(jié)表。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中新的資料寫(xiě)入?yún)^(qū)塊后,還包括有原區(qū)塊剩余資料的搬移工作。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中搬移索引是根據(jù)搬移索引決定原區(qū)塊中將搬移至替代區(qū)塊內(nèi)的分頁(yè);其具有復(fù)數(shù)個(gè)位元長(zhǎng)度,每個(gè)位元對(duì)應(yīng)一個(gè)分頁(yè),根據(jù)位元的值來(lái)決定該位元所對(duì)應(yīng)的分頁(yè)是否搬移。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中所述的搬移索引反相后求得寫(xiě)入索引。
本發(fā)明的目的是由以下技術(shù)方案實(shí)現(xiàn)的。一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是有效的建立起資料存起連結(jié)表功能及更新備用區(qū)塊的管理架構(gòu),其包括有a判定主機(jī)寫(xiě)入的資料是否和前一筆資料同屬于一個(gè)區(qū)塊,同屬于一區(qū)塊即無(wú)需重新建立搬移索引;否則進(jìn)入i;b判別欲寫(xiě)入的資料數(shù)是否等于“0”;不等于“0”則進(jìn)入g;c判別是否有資料要從原區(qū)塊搬移至替代區(qū)塊;無(wú)資料則執(zhí)行e;d將搬移索引指定的分頁(yè)搬移到替代區(qū)塊內(nèi);e判別寫(xiě)入的資料是否為檔案配置表;是則結(jié)束分頁(yè)寫(xiě)入動(dòng)作;否則進(jìn)入f。
f更新資料連結(jié)表后結(jié)束;g寫(xiě)入資料于指定的分頁(yè)內(nèi),并將等待寫(xiě)入的資料個(gè)數(shù)減一;h判別等待寫(xiě)入的資料個(gè)數(shù)是否為“0”;完成資料寫(xiě)入則進(jìn)入c;否則重回g;i依據(jù)主機(jī)端的參數(shù),求出欲寫(xiě)入該區(qū)塊的分頁(yè)數(shù)目、分頁(yè)起始位置及欲搬移的分頁(yè);j從備用區(qū)塊堆疊中,取出堆疊開(kāi)頭指位器所指向的替代區(qū)塊,準(zhǔn)備寫(xiě)入主機(jī)端的資料及搬移原區(qū)塊的資料于該區(qū)塊中;k判別欲寫(xiě)入的邏輯位址,是否為存放檔案配置表的位址;是則進(jìn)入l;否則進(jìn)入m;l更新檔案配置表連結(jié)表的內(nèi)容,以維持資料連結(jié)的完整性,重回b;m判別該邏輯區(qū)塊所屬的連結(jié)表是否存在緩沖器中;存在則進(jìn)入0;n將該邏輯區(qū)塊所屬的連結(jié)表讀入緩沖器中;o更新存在于緩沖器中的連結(jié)表內(nèi)容,同時(shí)亦要更新連結(jié)分頁(yè)和連結(jié)區(qū)塊的內(nèi)容;重回步驟b;如果存放連結(jié)表的區(qū)塊已滿,則找尋一個(gè)備用區(qū)塊,將連結(jié)表填入及搬移到該區(qū)塊中,且需更新連結(jié)區(qū)塊和連結(jié)分頁(yè)。
本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點(diǎn)和積極效果。由以上技術(shù)方案可知,本發(fā)明是有關(guān)一種專(zhuān)屬于快閃記憶體的管理方法與連接結(jié)構(gòu),主要是將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊一般資料區(qū)塊、備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊,再配合上簡(jiǎn)潔的資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,其可有效率地使用快閃記憶體,將資料連結(jié)結(jié)構(gòu)和演算法設(shè)計(jì)為一體,主要包括快閃記憶體的規(guī)劃、資料連結(jié)結(jié)構(gòu)的建立、備用區(qū)塊管理和分頁(yè)寫(xiě)入快閃記憶體流程,使得在搜尋資料、寫(xiě)入資料的時(shí)間可以有效的縮短,并且可以達(dá)到增長(zhǎng)快閃記憶體的使用壽命的功效。
綜上所述,本發(fā)明提出的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,再配合設(shè)有簡(jiǎn)潔的資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,使得在搜尋資料、寫(xiě)入資料的時(shí)間能有效的縮短,并且可達(dá)到增長(zhǎng)快閃記憶體的使用壽命的功效。其不論在結(jié)構(gòu)上或功能上皆有較大的改進(jìn),且在技術(shù)上有較大的進(jìn)步,并產(chǎn)生了好用及實(shí)用的效果,而確實(shí)具有增進(jìn)的功效,從而更加適于實(shí)用,誠(chéng)為一新穎進(jìn)步、實(shí)用的新設(shè)計(jì)。
本發(fā)明的具體結(jié)構(gòu)由以下實(shí)施例及其附圖詳細(xì)給出。
圖1是本發(fā)明對(duì)快閃記憶體出廠前予設(shè)規(guī)劃的區(qū)塊示意圖。
圖2是空的備用區(qū)塊堆疊的示意圖。
圖3是以一未使用的4MB快閃記憶體為例,在開(kāi)機(jī)后經(jīng)韌體判別所得到的備用區(qū)塊堆疊示意圖。
圖4是備用區(qū)塊管理演算法的流程圖。
圖5是本發(fā)明的基本區(qū)塊的結(jié)構(gòu)示意圖。
圖6是本發(fā)明的資料寫(xiě)入流程圖。
圖7是本發(fā)明以四個(gè)8MB的快閃記憶體元件為實(shí)施例說(shuō)明的結(jié)構(gòu)示意圖。
圖8是本發(fā)明以兩個(gè)4MB的快閃記憶體元件為實(shí)施例說(shuō)明連結(jié)區(qū)塊、連結(jié)分頁(yè)及連結(jié)表之間的使用方法示意圖。
圖9是本發(fā)明連結(jié)表內(nèi)部資料的更新示意圖。
圖10是連結(jié)表資料更新后,連結(jié)表區(qū)塊、連結(jié)區(qū)塊、連結(jié)分頁(yè)及備用區(qū)塊堆疊的更新示意圖。
圖11是系統(tǒng)尚未被使用前,啟動(dòng)后由韌體所建立的檔案配置表連結(jié)表。
圖12是圖11寫(xiě)入流程示意圖。
圖13是圖12資料寫(xiě)入替代區(qū)塊后所進(jìn)行的原區(qū)塊剩余資料搬移工作示意圖。
圖14是搬移索引的值示意圖。
圖15是寫(xiě)入索引的值示意圖。
圖16是求得寫(xiě)入索引的概念圖。
圖17是依據(jù)圖16的概念所建立的資料表。
圖18是圖17經(jīng)互斥運(yùn)所所得的結(jié)果值。
圖19是本發(fā)明寫(xiě)入一個(gè)分頁(yè)的完整流程圖。
以下結(jié)合附圖及其較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提出的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法其具體結(jié)構(gòu)、方法、特征及其功效,詳細(xì)說(shuō)明如后。
請(qǐng)參閱圖1所示,是本發(fā)明所在快閃記憶體出廠前所自訂的區(qū)塊予設(shè)規(guī)劃圖;在快閃記憶體的管理上,本發(fā)明將快閃記憶體中可使用的區(qū)塊分成四種資料區(qū)塊(Data Block)、連結(jié)表區(qū)塊(Link-Table Block)、備用區(qū)塊(Spare Bock)和新區(qū)塊(New Block)。這四種區(qū)塊可分成顯性和隱性兩大類(lèi),資料區(qū)塊屬于顯性區(qū)塊,而備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊則屬于隱性區(qū)塊。所謂的顯性區(qū)塊是指主機(jī)端可以利用邏輯定址方式直接存取的區(qū)塊;反之,主機(jī)端無(wú)法以邏輯定址方式存取的區(qū)塊則是隱性區(qū)塊。
從顯隱性區(qū)塊的定義,可看出資料區(qū)塊的功能是存放主機(jī)端傳送給快閃記憶體的資料,而新區(qū)塊、連結(jié)表區(qū)塊和備用區(qū)塊,則是為了因應(yīng)資料連結(jié)結(jié)構(gòu)的需要,存放韌體所需的資料。
除了圖1所示的區(qū)塊種類(lèi),尚存在有一種區(qū)塊,是永遠(yuǎn)無(wú)法使用,稱(chēng)之為毀損區(qū)塊(Defect Block),只要快閃記憶體中的區(qū)塊毀損,四種區(qū)塊中的任何一類(lèi),都會(huì)被本發(fā)明中的毀損區(qū)塊演算法標(biāo)示成毀損區(qū)塊,且永遠(yuǎn)無(wú)法使用。
除了新區(qū)塊之外,其余的三種區(qū)塊,在快閃記憶體被使用后,區(qū)塊的位置配置就不再如圖1所示,而是呈現(xiàn)零亂的分布;也就是說(shuō),區(qū)塊所在位置不局限于圖1的規(guī)劃范圍。如資料區(qū)塊會(huì)散布在位址-490~510(予設(shè)規(guī)劃時(shí),此區(qū)域是屬于備用區(qū)塊和連結(jié)表區(qū)塊的范圍),連結(jié)表區(qū)塊和備用區(qū)塊亦有如此的現(xiàn)象,不過(guò)各類(lèi)區(qū)塊的總數(shù)并不會(huì)改變。唯獨(dú)新區(qū)塊的數(shù)目則會(huì)隨著毀損區(qū)塊的增多,而逐漸減少,且只要新區(qū)塊一旦成為資料區(qū)塊、備用區(qū)塊或連結(jié)表區(qū)塊之后,就再也無(wú)法恢復(fù)成新區(qū)塊。
備用區(qū)塊的管理方式是建立在備用區(qū)塊堆疊區(qū)(Spare Block Stack)、堆疊開(kāi)頭指位器(Head Pointer)及堆疊結(jié)尾指位器(Tail Pointer)這三個(gè)結(jié)構(gòu)之上。備用區(qū)塊堆疊區(qū)共有16位元組(words)空間,存放一顆快閃記憶體中的所有備用區(qū)塊位址。堆疊開(kāi)頭指位器和堆疊結(jié)尾指位器則存放于8位元(bit)的堆疊指位器(Stack Pointer)內(nèi),各占有4位元,堆疊開(kāi)頭指位器是指向備用區(qū)塊堆疊區(qū)的第一個(gè)備用區(qū)塊,該區(qū)塊是等待被使用的備用區(qū)塊;堆疊結(jié)尾指位器指向一個(gè)空的位置,該位置位于備用區(qū)塊堆疊區(qū)中所有備用區(qū)塊之后的第一個(gè)空位置,以準(zhǔn)備存放新進(jìn)的備用區(qū)塊。
空的備用區(qū)塊堆疊是如圖2所示,其中的16字元組沒(méi)有存放任何的資料,且堆疊開(kāi)頭指位器和堆疊結(jié)尾指位器都指向字元組“0”的位置。
圖3為一顆未使用的4MB快閃記憶體,在開(kāi)機(jī)后經(jīng)韌體判別所得到的備用區(qū)塊堆疊,備用區(qū)塊的位址分別為“496”、“497”、“498”、“499”、“500”、“501”、“502”,堆疊開(kāi)頭指位器指向堆疊區(qū)位置“0”,堆疊結(jié)尾指位器指向堆疊位址“7”(結(jié)合參閱圖4所示)。
如圖4所示主要是說(shuō)明備用區(qū)塊管理演算法,以欲找一個(gè)備用區(qū)塊以取代區(qū)塊-200(-200,表示其位址在200)為例作說(shuō)明,其步驟如下步驟1、從堆疊區(qū)取出由堆疊開(kāi)頭指位器所指定的備用區(qū)塊(所取出的備用區(qū)塊為區(qū)塊-496)。
步驟2、堆疊開(kāi)頭指位器的值加“1”,指向下一個(gè)等待被取出的備用區(qū)塊。
步驟3、抹除欲取代的區(qū)塊(-200)后,置入堆疊結(jié)尾指位器所指的位置。
步驟4、將堆疊指位器的值加“1”,指向下一個(gè)空的位置,準(zhǔn)備存放新的備用區(qū)塊。
當(dāng)發(fā)現(xiàn)某個(gè)區(qū)塊有毀損時(shí),則進(jìn)入毀損區(qū)塊管理。先取出第一個(gè)新區(qū)塊來(lái)代替該區(qū)塊,再將該區(qū)塊標(biāo)示成毀損區(qū)塊,從此不再使用,如此就完成毀損區(qū)塊的管理。
圖5是本發(fā)明一基本區(qū)塊的結(jié)構(gòu)示意圖。一個(gè)區(qū)塊共有16個(gè)分頁(yè),每個(gè)分頁(yè)有512+16位元組,其中左邊的512位元組是資料區(qū)域(Data Region),右邊的16位元組是備用區(qū)域(Spare Region),資料區(qū)域所存放的資料有一般使用者的檔案資料、檔案配置表(File Allocated Table,簡(jiǎn)稱(chēng)FAT)和連結(jié)表(Link Table),使用者資料和檔案配置表都是主機(jī)端寫(xiě)入快閃記憶體的資料,存放在資料區(qū)塊內(nèi);連結(jié)表則存放在連結(jié)表區(qū)塊內(nèi),用來(lái)記錄邏輯區(qū)塊和實(shí)際區(qū)塊連結(jié)關(guān)系。備用區(qū)域存放錯(cuò)誤控制碼(Error Control Coding)和識(shí)別碼;錯(cuò)誤控制碼可提高資料的安全性,識(shí)別碼的功用是為了使韌體能辨別該區(qū)塊是屬于四種區(qū)塊中的哪一種。
本發(fā)明依據(jù)資料存取的關(guān)系,定義有原區(qū)塊(Original Block)和替代區(qū)塊(Substituted Block)兩個(gè)區(qū)塊名稱(chēng)。該原區(qū)塊(Original Block)是由主機(jī)端指定邏輯區(qū)塊、對(duì)照連結(jié)表發(fā)現(xiàn)可存放資料的實(shí)際區(qū)塊;替代區(qū)塊(Substituted Block)是從備用區(qū)塊堆疊區(qū)所提出的區(qū)塊,將準(zhǔn)備代替原區(qū)塊。
本發(fā)明的資料寫(xiě)入流程如圖6所示,首先從連結(jié)表中找出原區(qū)塊(步驟61),再由備用區(qū)塊堆疊中找出替代區(qū)塊(步驟62),以代替原區(qū)塊儲(chǔ)存主機(jī)端傳送過(guò)來(lái)的資料(步驟63);等所有主機(jī)端的資料都寫(xiě)入替代區(qū)塊后,再將原區(qū)塊內(nèi)剩余沒(méi)進(jìn)行更新的分頁(yè)資料搬移到替代區(qū)塊內(nèi)(步驟64);因?yàn)檫壿媴^(qū)塊實(shí)際對(duì)應(yīng)的區(qū)塊已經(jīng)成為替代區(qū)塊,故必須更新連結(jié)表內(nèi)容(步驟65),使主機(jī)端在下次的存取能獲得完整的資料。更新連結(jié)表的內(nèi)容之后,便將原區(qū)塊抹除置入備用區(qū)塊堆疊內(nèi),使其能供下次使用(步驟66)。
本發(fā)明將主機(jī)端的資料形態(tài)分成檔案配置表和一般資料兩類(lèi),該兩種資料的連結(jié)結(jié)構(gòu)不同,但其結(jié)構(gòu)的基礎(chǔ)概念是相同的。
一般資料的連結(jié)結(jié)構(gòu)是確保資料完整性最重要的一環(huán),本發(fā)明的特征在于將該結(jié)構(gòu)精簡(jiǎn)的同時(shí)依然維持資料的完整性,再配合資料寫(xiě)入演算法使其可以能確實(shí)做到平均分配寫(xiě)入/抹除次數(shù)于每個(gè)區(qū)塊。資料連結(jié)結(jié)構(gòu)是由連結(jié)區(qū)塊(Link Block)、連結(jié)分頁(yè)(Link Page)及連結(jié)表(Link Table)三者組成,經(jīng)由該三表的結(jié)構(gòu)建立,將可快速的完成資料搜尋工作,且可同時(shí)達(dá)到資料讀取的完整性。
連結(jié)表是儲(chǔ)存于連結(jié)表區(qū)塊內(nèi),所以在快閃記憶體中實(shí)際存有連結(jié)表,其功用是記錄邏輯位址與實(shí)際位址的連結(jié)關(guān)系;連結(jié)區(qū)塊及連結(jié)分頁(yè)在開(kāi)機(jī)時(shí),由韌體根據(jù)所有連結(jié)表所在的實(shí)際位址(就是連結(jié)表區(qū)塊的位址)建立連結(jié)區(qū)塊和連結(jié)分頁(yè)這兩個(gè)表,而后儲(chǔ)存于微控器所附設(shè)的記憶體中。
連結(jié)區(qū)塊記錄所有的連結(jié)表區(qū)塊位址。
連結(jié)分頁(yè)則記錄連結(jié)表位于連結(jié)表區(qū)塊中的分頁(yè)位置,經(jīng)由它們,可以確切定義連結(jié)表在快閃記憶體中的位置。
請(qǐng)參閱圖7所示,以下以如圖所示的四顆尚未使用的8MB快閃記憶體元件為例子進(jìn)行說(shuō)明圖7的(a)、(b)、(c)、(d)為四顆8MB的快閃記憶體元件,每個(gè)元件內(nèi)各有1024個(gè)區(qū)塊;圖7(e)為連結(jié)區(qū)塊,因四顆快閃記憶體元件共有四個(gè)連結(jié)表區(qū)塊,故需以四個(gè)字元組記錄;圖7(f)為連結(jié)分頁(yè),因單顆元件有1024個(gè)區(qū)塊,而每個(gè)分頁(yè)僅有512位元組,故每顆快閃記憶體元件需四個(gè)分頁(yè)記錄1024個(gè)實(shí)際位址與邏輯位址的連結(jié)關(guān)系;圖7(g)為連結(jié)表,其記錄的方式是采用記憶體位址和該位址上的內(nèi)容的對(duì)應(yīng)概念,記憶體位址代表邏輯位址,內(nèi)容代表實(shí)際位址,以圖7(g)為例,邏輯位址-0的實(shí)際存取位置為區(qū)塊-0。因圖7為尚未使用的快閃記憶體,故連結(jié)表區(qū)塊的位址皆為1007,連結(jié)分頁(yè)為0、1、2、3,而邏輯位址亦等于實(shí)際位址,其連結(jié)表即如圖7(g)所示。
請(qǐng)參閱圖8所示,是以兩顆4MB的快閃記憶體元件說(shuō)明連結(jié)區(qū)塊、連結(jié)分頁(yè)及連結(jié)表之間的使用方法。假設(shè)主機(jī)端欲存取邏輯位址-100,經(jīng)演算法運(yùn)算后,發(fā)現(xiàn)該位址落于元件0,分頁(yè)位址位于連結(jié)分頁(yè)中的位置0;對(duì)照?qǐng)D7(a)得到連結(jié)表區(qū)塊位于區(qū)塊-503,由圖8(b)元件0的位置1的內(nèi)容是指向分頁(yè)-0。因此,由連結(jié)區(qū)塊和連結(jié)表分頁(yè),可定義區(qū)塊-100所屬的連結(jié)表位于區(qū)塊-503的分頁(yè)-0,如圖8(c)所示。對(duì)照?qǐng)D8(d)得到邏輯位址-100的資料儲(chǔ)存于區(qū)塊-100。
圖9為連結(jié)表內(nèi)部資料的更新示意圖。圖9(a)是原來(lái)的連結(jié)表,當(dāng)主機(jī)端欲讀取邏輯位址-100的資料時(shí),對(duì)照連結(jié)表得到資料儲(chǔ)存于區(qū)塊-100即可到該區(qū)塊讀取資料;若主機(jī)端欲寫(xiě)入資料于邏輯位址-100時(shí),則先由備用區(qū)塊堆疊中取出堆疊開(kāi)頭指位器所指的區(qū)塊-496(如圖9(b)所示)。再將區(qū)塊-496代替區(qū)塊-100,將496填入連結(jié)表中邏輯位址-100(如圖9(c)所示)。最后,再將區(qū)塊-100置入備用區(qū)塊堆疊內(nèi)(如圖9(d)所示)。
圖10為當(dāng)連結(jié)表資料更新后,連結(jié)表區(qū)塊、連結(jié)區(qū)塊、連結(jié)分頁(yè)及備用區(qū)塊堆疊的更新示意圖。以單顆4MB為例,在予設(shè)規(guī)劃中,在區(qū)塊-503擁有兩個(gè)資料連結(jié)表,分別在分頁(yè)-0和分頁(yè)-1。假設(shè),分頁(yè)-1的連結(jié)表已更新,則新的連結(jié)表會(huì)儲(chǔ)存于分頁(yè)-3,該連結(jié)表經(jīng)過(guò)7次的更新后,區(qū)塊-503中的資料分布如圖10(c)所示。若再一次更新該連結(jié)表,則會(huì)從備用區(qū)塊堆疊區(qū)取出一個(gè)區(qū)塊代替區(qū)塊-503,并將更新后的連結(jié)表寫(xiě)入該區(qū)塊及將區(qū)塊-503沒(méi)有更新的資料搬移到區(qū)塊-496,如圖10(g)所示。
有鑒于檔案配置表采用和一般資料相同的連結(jié)結(jié)構(gòu)(連結(jié)表、連結(jié)區(qū)塊和連結(jié)分頁(yè)),則檔案配置表的高更新頻率,將造成快閃記憶體元件壽命的縮短。于是本發(fā)明將檔案配置表與一般資料分開(kāi)處理,并且另設(shè)計(jì)一更簡(jiǎn)易的連結(jié)結(jié)構(gòu),使其適用于檔案配置表的特性。
該更簡(jiǎn)易的連結(jié)結(jié)構(gòu)僅有單一表格-檔案配置表連結(jié)表(FAT LinkTable)。檔案配置表連結(jié)表負(fù)責(zé)記錄邏輯區(qū)塊-0至邏輯區(qū)塊-15的每個(gè)對(duì)應(yīng)的實(shí)際區(qū)塊。該表格的建立同連結(jié)區(qū)塊和連結(jié)分頁(yè),則在系統(tǒng)開(kāi)機(jī)時(shí)依據(jù)每個(gè)區(qū)塊中備用區(qū)域所存放的識(shí)別碼,以建立檔案配置表連結(jié)表。
圖11是系統(tǒng)尚未被使用前,啟動(dòng)后由韌體所建立的檔案配置表連結(jié)表。假設(shè)主機(jī)端欲更新邏輯位址-10,由圖11對(duì)照其資料儲(chǔ)存于區(qū)塊-10。
請(qǐng)參閱圖12所示,圖12(a)為目前備用區(qū)塊堆疊的狀況,所以由備用區(qū)塊堆疊中取出區(qū)塊-496當(dāng)替代區(qū)塊來(lái)取代區(qū)塊-10,并在區(qū)塊-496的備用區(qū)域中填入識(shí)別碼,將資料都寫(xiě)入?yún)^(qū)塊-496后,更新檔案配置表連結(jié)表(如圖12(b)所示),再將區(qū)塊-10置入備用區(qū)塊堆疊內(nèi),最后備用區(qū)塊堆疊即如圖12(c)所示。
在上述的資料寫(xiě)入流程的介紹中,了解到區(qū)塊的寫(xiě)入完成,必須處理主機(jī)端的資料及原區(qū)塊內(nèi)沒(méi)被更新的分頁(yè)。所以,原區(qū)塊和替代區(qū)塊之間的替換,存在有一個(gè)潛在的問(wèn)題就是原區(qū)塊中沒(méi)有被更新的分頁(yè),必須在原區(qū)塊被抹除之前寫(xiě)入替代區(qū)塊內(nèi),因此新的資料寫(xiě)入替代區(qū)塊后,還要進(jìn)行原區(qū)塊剩余資料的搬移工作(如圖13所示)。
本發(fā)明的演算法會(huì)建立搬移索引(Move Index),根據(jù)搬移索引決定原區(qū)塊中將搬移至替代區(qū)塊內(nèi)的分頁(yè)。搬移索引的長(zhǎng)度為一個(gè)16位元,每個(gè)位元對(duì)應(yīng)一個(gè)分頁(yè),根據(jù)位元的值來(lái)決定該位元所對(duì)應(yīng)的分頁(yè)是否搬移,其中“1”代表搬移,“0”代表不搬移。假設(shè)已知所欲搬移的分頁(yè)為0~5和14~15這8個(gè)分頁(yè),則搬移索引的值如圖14所示。
搬移索引的求法的基本概念,是利用主機(jī)端的資料(起始位址及資料量),求得欲寫(xiě)入的所有分頁(yè)位置,則其余的分頁(yè)位置就是需搬移的分頁(yè)。本發(fā)明稱(chēng)之為寫(xiě)入索引(Write Index),其定義方式相同于搬移索引,“1”表示將欲寫(xiě)入的分頁(yè)的對(duì)應(yīng)位元,反之為“0”。假設(shè)已知寫(xiě)入的分頁(yè)有(6-13),則寫(xiě)入索引為圖15所示,再將寫(xiě)入索引反相即可得到搬移索引(圖15的反相就是圖14),圖16是求得寫(xiě)入索引的概念圖。
請(qǐng)參閱圖17所示,是依據(jù)圖16的概念所建立的資料表,圖17(a)和圖17(b)分別對(duì)應(yīng)圖16(a)和圖16(b)。
圖17的建立方式,是根據(jù)主機(jī)端給定的資料(起始位置、分頁(yè)數(shù)目)再加上圖16的概念建立而成。
假設(shè)寫(xiě)入資料的起始位置為6,分頁(yè)個(gè)數(shù)等于8,可求得終止位置等于13,對(duì)照?qǐng)D17可以得到0×003F和0×0FFF,再將這兩個(gè)值做互斥(XOR)運(yùn)算,得到(0×003FXOR 0×0FFF)=0×3FAO,如圖18所示,可發(fā)現(xiàn)和圖15相同,再將之反向可得0×A03F,就是圖14。
又,如果所欲傳送的資料數(shù)超過(guò)16個(gè)分頁(yè),則表示所欲寫(xiě)入資料的位置是從起始位置到最后一個(gè)分頁(yè),故寫(xiě)入索引為對(duì)照?qǐng)D17后所求得的值的反相。假設(shè),寫(xiě)入資料的起始位置為6,資料比數(shù)為16,則對(duì)照?qǐng)D17(a),得到寫(xiě)入索引為0×FFAO,反相后得到搬移索引為0×003F。
圖19是本發(fā)明寫(xiě)入一個(gè)分頁(yè)的完整流程,其包括有下列步驟步驟a當(dāng)主機(jī)欲寫(xiě)入一筆資料,會(huì)判定該筆資料是否和前一筆資料同屬于一個(gè)區(qū)塊,同屬于一區(qū)塊即無(wú)需重新建立搬移索引;否則進(jìn)入步驟i。
步驟b判別欲寫(xiě)入的資料數(shù)是否等于“0”。不等于“0”則進(jìn)入步驟g。
步驟c因主機(jī)端欲寫(xiě)入該區(qū)塊的資料已完畢,所以要判別是否有資料要從原區(qū)塊搬移至替代區(qū)塊。無(wú)資料則執(zhí)行步驟e。
步驟d將搬移索引指定的分頁(yè)搬移到替代區(qū)塊內(nèi)。
步驟e判別寫(xiě)入的資料是否為檔案配置表。是則結(jié)束分頁(yè)寫(xiě)入動(dòng)作;否則進(jìn)入步驟f。
步驟f更新資料連結(jié)表后結(jié)束。
步驟g寫(xiě)入資料于指定的分頁(yè)內(nèi),并將等待寫(xiě)入的資料個(gè)數(shù)減一。
步驟h判別等待寫(xiě)入的資料個(gè)數(shù)是否為“0”。完成資料寫(xiě)入則進(jìn)入步驟c;否則重回步驟g。
步驟i因欲寫(xiě)入的區(qū)塊是一個(gè)新指定的區(qū)塊,故必須先依據(jù)主機(jī)端的參數(shù),求出欲寫(xiě)入該區(qū)塊的分頁(yè)數(shù)目、分頁(yè)起始位置及欲搬移的分頁(yè)。
步驟j從備用區(qū)塊堆疊中,取出堆疊開(kāi)頭指位器所指向的替代區(qū)塊,準(zhǔn)備寫(xiě)入主機(jī)端的資料及搬移原區(qū)塊的資料于該區(qū)塊中。
步驟k判別欲寫(xiě)入的邏輯位址,是否為存放檔案配置表的位址。是則進(jìn)入步驟l;否則進(jìn)入步驟m。
步驟l更新檔案配置表連結(jié)表的內(nèi)容,以維持資料連結(jié)的完整性,重回步驟b。
步驟m因欲寫(xiě)入的區(qū)塊,屬于一般區(qū)塊,故需搭配一般資料連結(jié)結(jié)構(gòu)(連結(jié)表、連結(jié)區(qū)塊和連結(jié)分頁(yè))。
該步驟是判別該邏輯區(qū)塊所屬的連結(jié)表是否存在緩沖器中。存在則進(jìn)入步驟0。
步驟n將該邏輯區(qū)塊所屬的連結(jié)表讀入緩沖器中。
步驟o更新存在于緩沖器中的連結(jié)表內(nèi)容,同時(shí)要更新連結(jié)分頁(yè)和連結(jié)區(qū)塊的內(nèi)容,重回步驟b。如果存放連結(jié)表的區(qū)塊已滿,則找尋一個(gè)備用區(qū)塊,將連結(jié)表填入及搬移到該區(qū)塊中,且需更新連結(jié)區(qū)塊和連結(jié)分頁(yè)。
由以上可知,本發(fā)明所提出的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,再配合設(shè)有簡(jiǎn)潔的資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,使得在搜尋資料、寫(xiě)入資料的時(shí)間能有效的縮短,并且具有增長(zhǎng)快閃記憶體使用壽命的功效。
以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對(duì)本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例的技術(shù)結(jié)構(gòu)、程式或控制等方法所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1.一種快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其主要是將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,其包括有一般資料區(qū)塊,可由主機(jī)直接存取資料;一備用區(qū)塊,是作為一般資料區(qū)塊的備份,在主機(jī)所定址到的一般資料區(qū)塊發(fā)生重復(fù)寫(xiě)入的情況時(shí),用以來(lái)存放欲寫(xiě)入的主機(jī)資料;一連結(jié)表區(qū)塊,是存放一般資料區(qū)塊內(nèi)的實(shí)際位址與主機(jī)定址的邏輯位置的對(duì)照表,以有效的進(jìn)行邏輯位置與實(shí)際位置的互換,確保資料的正確性。
2.根據(jù)權(quán)利要求1所述的快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其更包括有一新區(qū)塊,是作為前述各種區(qū)塊的延伸,一旦并入前述的一區(qū)塊后,即無(wú)法恢復(fù)成新區(qū)塊;一毀損區(qū)塊,前述各區(qū)塊毀損,均會(huì)被標(biāo)示成毀損區(qū)塊,且永遠(yuǎn)無(wú)法使用。
3.根據(jù)權(quán)利要求1中所述的快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于所述的資料區(qū)塊是屬于主機(jī)端可以利用邏輯定址方式直接存取的顯性區(qū)塊。
4.根據(jù)權(quán)利要求2所述的快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其中所述的備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊是屬于主機(jī)端無(wú)法以邏輯定址方式存取的隱性區(qū)塊,為了因應(yīng)資料連結(jié)結(jié)構(gòu)的需要,存放韌體所需的資料。
5.根據(jù)權(quán)利要求1所述的快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其中所述的備用區(qū)塊的管理方式是建立于備用區(qū)塊堆疊區(qū)、堆疊開(kāi)頭指位器及堆疊結(jié)尾指位器的架構(gòu)上;該堆疊開(kāi)頭指位器是指向備用區(qū)塊堆疊區(qū)的第一個(gè)備用區(qū)塊以等待被使用;該堆疊結(jié)尾指位器是指向所有備用區(qū)塊之后的第一個(gè)空位置,以準(zhǔn)備存放新進(jìn)的備用區(qū)塊。
6.根據(jù)權(quán)利要求1所述的快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其中所述的資料區(qū)塊的資料寫(xiě)入流程包括有a、自連結(jié)表中找出由主機(jī)端指定邏輯區(qū)塊、對(duì)照連結(jié)表發(fā)現(xiàn)可存放資料的實(shí)際區(qū)塊的原區(qū)塊;b、再由備用區(qū)塊堆疊區(qū)所提出將準(zhǔn)備代替原區(qū)塊的備用區(qū)塊堆疊中找出替代區(qū)塊;c、代替原區(qū)塊儲(chǔ)存主機(jī)端傳送過(guò)來(lái)的資料;d、所有主機(jī)端的資料都寫(xiě)入替代區(qū)塊后,再將原區(qū)塊內(nèi)剩余沒(méi)進(jìn)行更新的分頁(yè)資料搬移到替代區(qū)塊內(nèi);e、更新連結(jié)表內(nèi)容,使主機(jī)端在下次的存取,能獲得完整的資料;f、將原區(qū)塊抹除置入備用區(qū)塊堆疊內(nèi),使其能供下次使用。
7.一種資料的連結(jié)結(jié)構(gòu),其特征在于其包括有連結(jié)區(qū)塊,是記錄所有的連結(jié)表區(qū)塊位址;連結(jié)表,是儲(chǔ)存于連結(jié)表區(qū)塊內(nèi),在快閃記憶體記錄邏輯位址與實(shí)際位址的連結(jié)關(guān)系;連結(jié)分頁(yè),是記錄連結(jié)表位于連結(jié)表區(qū)塊中的分頁(yè)位置,經(jīng)由它們,可以確切定義連結(jié)表在快閃記憶體中的位置;經(jīng)由此三表結(jié)構(gòu)的建立,可快速的完成資料搜尋工作,且可同時(shí)達(dá)到資料讀取的完整性。
8.根據(jù)權(quán)利要求7所述的資料連接結(jié)構(gòu),其特征在于其中所述的連結(jié)分頁(yè)其更新連結(jié)分頁(yè)包括更新備用區(qū)塊堆疊區(qū)堆疊開(kāi)頭指位器以及堆疊結(jié)尾指位器。
9.根據(jù)權(quán)利要求7所述的資料連接結(jié)構(gòu),其特征在于其中所述的連結(jié)表其結(jié)構(gòu)是利用連結(jié)表的實(shí)際位址為邏輯位址,儲(chǔ)存在該實(shí)際位址內(nèi)的資料為主機(jī)所定址到的實(shí)際位址。
10.一種備用區(qū)塊管理演算法,其特征在于其包括有下列步驟a、從堆疊區(qū)取出由堆疊開(kāi)頭指位器所指定的備用區(qū)塊;b、堆疊開(kāi)頭指位器的值加“1”,指向下一個(gè)等待被取出的備用區(qū)塊;c、抹除欲取代的區(qū)塊后,置入堆疊結(jié)尾指位器所指的位置;d、將堆疊指位器的值加“1”,指向下一個(gè)空的位置,準(zhǔn)備存放新的備用區(qū)塊;借前述的步驟,可有效的做好備用區(qū)塊的管理,并可達(dá)到平均各一般資料區(qū)塊的使用次數(shù)。
11.一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是將檔案配置表與一般資料分開(kāi)處理及設(shè)有一連結(jié)結(jié)構(gòu);該連結(jié)結(jié)構(gòu)設(shè)有檔案配置表連結(jié)表的單一表格,該檔案配置表連結(jié)表負(fù)責(zé)記錄每個(gè)邏輯區(qū)塊對(duì)應(yīng)的實(shí)際區(qū)塊,在系統(tǒng)開(kāi)機(jī)時(shí)依據(jù)每個(gè)區(qū)塊中備用區(qū)域所存放的識(shí)別碼,以建立檔案配置表連結(jié)表。
12.根據(jù)權(quán)利要求11所述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其中新的資料寫(xiě)入?yún)^(qū)塊后,還包括有原區(qū)塊剩余資料的搬移工作。
13.根據(jù)權(quán)利要求11所述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其中搬移索引是根據(jù)搬移索引決定原區(qū)塊中將搬移至替代區(qū)塊內(nèi)的分頁(yè);其具有復(fù)數(shù)個(gè)位元長(zhǎng)度,每個(gè)位元對(duì)應(yīng)一個(gè)分頁(yè),根據(jù)位元的值來(lái)決定該位元所對(duì)應(yīng)的分頁(yè)是否搬移。
14.根據(jù)權(quán)利要求11所述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其中所述的搬移索引反相后求得寫(xiě)入索引。
15.一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是有效的建立起資料存起連結(jié)表功能及更新備用區(qū)塊的管理架構(gòu),其包括有a判定主機(jī)寫(xiě)入的資料是否和前一筆資料同屬于一個(gè)區(qū)塊,同屬于一區(qū)塊即無(wú)需重新建立搬移索引;否則進(jìn)入i;b判別欲寫(xiě)入的資料數(shù)是否等于“0”;不等于“0”則進(jìn)入g;c判別是否有資料要從原區(qū)塊搬移至替代區(qū)塊;無(wú)資料則執(zhí)行e;d將搬移索引指定的分頁(yè)搬移到替代區(qū)塊內(nèi);e判別寫(xiě)入的資料是否為檔案配置表;是則結(jié)束分頁(yè)寫(xiě)入動(dòng)作;否則進(jìn)入f。f更新資料連結(jié)表后結(jié)束;g寫(xiě)入資料于指定的分頁(yè)內(nèi),并將等待寫(xiě)入的資料個(gè)數(shù)減一;h判別等待寫(xiě)入的資料個(gè)數(shù)是否為“0”;完成資料寫(xiě)入則進(jìn)入c;否則重回g;i依據(jù)主機(jī)端的參數(shù),求出欲寫(xiě)入該區(qū)塊的分頁(yè)數(shù)目、分頁(yè)起始位置及欲搬移的分頁(yè);j從備用區(qū)塊堆疊中,取出堆疊開(kāi)頭指位器所指向的替代區(qū)塊,準(zhǔn)備寫(xiě)入主機(jī)端的資料及搬移原區(qū)塊的資料于該區(qū)塊中;k判別欲寫(xiě)入的邏輯位址,是否為存放檔案配置表的位址;是則進(jìn)入l;否則進(jìn)入m;l更新檔案配置表連結(jié)表的內(nèi)容,以維持資料連結(jié)的完整性,重回b;m判別該邏輯區(qū)塊所屬的連結(jié)表是否存在緩沖器中;存在則進(jìn)入0;n將該邏輯區(qū)塊所屬的連結(jié)表讀入緩沖器中;o更新存在于緩沖器中的連結(jié)表內(nèi)容,同時(shí)亦要更新連結(jié)分頁(yè)和連結(jié)區(qū)塊的內(nèi)容;重回步驟b;如果存放連結(jié)表的區(qū)塊已滿,則找尋一個(gè)備用區(qū)塊,將連結(jié)表填入及搬移到該區(qū)塊中,且需更新連結(jié)區(qū)塊和連結(jié)分頁(yè)。
全文摘要
一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其將快閃記憶體內(nèi)規(guī)劃成不同功能的資料存取區(qū)塊,包括一般資料區(qū)塊、備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊;一般資料區(qū)塊由主機(jī)存取資料;備用區(qū)塊為一般資料區(qū)塊備份,在主機(jī)定址到的一般資料區(qū)塊發(fā)生重復(fù)寫(xiě)入情況時(shí)存放欲寫(xiě)入的主機(jī)資料;連結(jié)表區(qū)塊是存放一般資料區(qū)塊內(nèi)的實(shí)際位址與主機(jī)定址的邏輯位置的對(duì)照表,可進(jìn)行邏輯位置與實(shí)際位置的互換;再配合資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,可使搜尋、寫(xiě)入資料時(shí)間縮短,并可增長(zhǎng)快閃記憶體使用壽命。
文檔編號(hào)G11C5/00GK1285592SQ99111659
公開(kāi)日2001年2月28日 申請(qǐng)日期1999年8月20日 優(yōu)先權(quán)日1999年8月20日
發(fā)明者簡(jiǎn)丞志, 李欽誠(chéng), 楊俊勇, 潘建成, 黃樹(shù)群 申請(qǐng)人:慧亞科技股份有限公司