亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法的制作方法

文檔序號:6748696閱讀:181來源:國知局
專利名稱:快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種儀器領(lǐng)域信息存貯中的貯存裝置的管理、資料連接結(jié)構(gòu)與演算法,特別是涉及一種建立邏輯區(qū)塊位址與實際存取位址的映射關(guān)系,以確保資料連接的完整性,并設(shè)有斷電的保護措施,更進一步保護資料連結(jié)結(jié)構(gòu),提高快閃記憶體在使用上的穩(wěn)定性的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法。
快閃記憶體(flash memory)是一種半導(dǎo)體式的儲存裝置,其具有單位密度記憶容量高、讀寫速度快及方便攜帶等特性,使其非常適用于強調(diào)輕薄短小的通訊器材中,且無須電池就可以保存資料,所以使得快閃記憶體卡在應(yīng)用上、市場上均迅速的成長擴大。但是快閃記憶體亦有其缺點,即是抹除/寫入(Erase/Program)的次數(shù)受到限制。依據(jù)快閃記憶體的規(guī)格書中提到區(qū)塊(Block,8192位元組,為快閃記憶體抹除動作的最小單位)的抹除次數(shù)超過一百萬次時,則無法擔(dān)保該區(qū)塊依舊可以正常操作。
因此針對快閃記憶體抹除次數(shù)的限制,如何設(shè)計一良好的演算法與連結(jié)結(jié)構(gòu),將抹除/寫錄次數(shù)平均分配給每個區(qū)塊,且不影響資料的存取時間及運算速度,最重要是確保資料存取的完整性,而如何同時達到上述的多個目標(biāo),一直是快閃記憶體的韌體設(shè)計者們所面臨的瓶頸制約問題。由此可見,上述現(xiàn)有的快閃記憶體仍存在有缺陷,而丞待加以改進。
有鑒于上述現(xiàn)有的快閃記憶體存在的缺陷,本發(fā)明人基于在實驗室長時間致力于上述問題的研究與設(shè)計的豐富實務(wù)經(jīng)驗及專業(yè)知識,積極加以研究創(chuàng)新,經(jīng)過不斷的研究、設(shè)計,并經(jīng)無數(shù)次的測試樣品及演算法的改良、資料連結(jié)結(jié)構(gòu)的精簡,最終終于創(chuàng)設(shè)發(fā)展出本發(fā)明。
本發(fā)明的主要目的在于,克服現(xiàn)有的快閃記憶體存在的缺陷,而提供一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,使其可有效率地使用快閃記憶體,將資料連結(jié)結(jié)構(gòu)和演算法設(shè)計為一體,主要包括有快閃記憶體的規(guī)劃、資料連結(jié)結(jié)構(gòu)的建立、備用區(qū)塊管理和分頁(page)寫入快閃記憶體流程,使得在搜尋資料、寫入資料的時間能有效的縮短,并且可達到增長快閃記憶體的使用壽命的功效。
本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。依據(jù)本發(fā)明提出的一種快閃記憶體的管理、資料連接結(jié)構(gòu),其特征在于其主要是將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,其包括有一般資料區(qū)塊,可由主機直接存取資料;一備用區(qū)塊,是作為一般資料區(qū)塊的備份,在主機所定址到的一般資料區(qū)塊發(fā)生重復(fù)寫入的情況時,用以來存放欲寫入的主機資料;一連結(jié)表區(qū)塊,是存放一般資料區(qū)塊內(nèi)的實際位址與主機定址的邏輯位置的對照表,以有效的進行邏輯位置與實際位置的互換,確保資料的正確性。
本發(fā)明的目的還可以通過以下技術(shù)措施來進一步實現(xiàn)。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其更包括有一新區(qū)塊,是作為前述各種區(qū)塊的延伸,一旦并入前述的一區(qū)塊后,即無法恢復(fù)成新區(qū)塊;一毀損區(qū)塊,前述各區(qū)塊毀損,均會被標(biāo)示成毀損區(qū)塊,且永遠無法使用。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的資料區(qū)塊是屬于主機端可以利用邏輯定址方式直接存取的顯性區(qū)塊。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊是屬于主機端無法以邏輯定址方式存取的隱性區(qū)塊,為了因應(yīng)資料連結(jié)結(jié)構(gòu)的需要,存放韌體所需的資料。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的備用區(qū)塊的管理方式是建立于備用區(qū)塊堆疊區(qū)、堆疊開頭指位器及堆疊結(jié)尾指位器的架構(gòu)上;該堆疊開頭指位器是指向備用區(qū)塊堆疊區(qū)的第一個備用區(qū)塊以等待被使用;該堆疊結(jié)尾指位器是指向所有備用區(qū)塊之后的第一個空位置,以準(zhǔn)備存放新進的備用區(qū)塊。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu),其中所述的資料區(qū)塊的資料寫入流程包括有a、自連結(jié)表中找出由主機端指定邏輯區(qū)塊、對照連結(jié)表發(fā)現(xiàn)可存放資料的實際區(qū)塊的原區(qū)塊;b、再由備用區(qū)塊堆疊區(qū)所提出將準(zhǔn)備代替原區(qū)塊的備用區(qū)塊堆疊中找出替代區(qū)塊;c、代替原區(qū)塊儲存主機端傳送過來的資料;d、所有主機端的資料都寫入替代區(qū)塊后,再將原區(qū)塊內(nèi)剩余沒進行更新的分頁資料搬移到替代區(qū)塊內(nèi);
e、更新連結(jié)表內(nèi)容,使主機端在下次的存取,能獲得完整的資料;f、將原區(qū)塊抹除置入備用區(qū)塊堆疊內(nèi),使其能供下次使用。
本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。依據(jù)本發(fā)明提出的一種資料的連結(jié)結(jié)構(gòu),其特征在于其包括有連結(jié)區(qū)塊,是記錄所有的連結(jié)表區(qū)塊位址;連結(jié)表,是儲存于連結(jié)表區(qū)塊內(nèi),在快閃記憶體記錄邏輯位址與實際位址的連結(jié)關(guān)系;連結(jié)分頁,是記錄連結(jié)表位于連結(jié)表區(qū)塊中的分頁位置,經(jīng)由它們,可以確切定義連結(jié)表在快閃記憶體中的位置;經(jīng)由此三表結(jié)構(gòu)的建立,可快速的完成資料搜尋工作,且可同時達到資料讀取的完整性。
本發(fā)明的目的還可以通過以下技術(shù)措施來進一步實現(xiàn)。
前述的資料連接結(jié)構(gòu),其中所述的連結(jié)分頁其更新連結(jié)分頁的方法包括更新備用區(qū)塊堆疊區(qū)堆疊開頭指位器以及堆疊結(jié)尾指位器。
前述的資料連接結(jié)構(gòu),其中所述的連結(jié)表其結(jié)構(gòu)是利用連結(jié)表的實際位址為邏輯位址,儲存在該實際位址內(nèi)的資料為主機所定址到的實際位址。
本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。一種備用區(qū)塊管理演算法,其特征在于其包括有下列步驟a、從堆疊區(qū)取出由堆疊開頭指位器所指定的備用區(qū)塊;b、堆疊開頭指位器的值加“1”,指向下一個等待被取出的備用區(qū)塊;c、抹除欲取代的區(qū)塊后,置入堆疊結(jié)尾指位器所指的位置;d、將堆疊指位器的值加“1”,指向下一個空的位置,準(zhǔn)備存放新的備用區(qū)塊;借前述的步驟,可有效的做好備用區(qū)塊的管理,并可達到平均各一般資料區(qū)塊的使用次數(shù)。
本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是將檔案配置表與一般資料分開處理及設(shè)有一連結(jié)結(jié)構(gòu);該連結(jié)結(jié)構(gòu)設(shè)有檔案配置表連結(jié)表的單一表格,該檔案配置表連結(jié)表負(fù)責(zé)記錄每個邏輯區(qū)塊對應(yīng)的實際區(qū)塊,在系統(tǒng)開機時依據(jù)每個區(qū)塊中備用區(qū)域所存放的識別碼,以建立檔案配置表連結(jié)表。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中新的資料寫入?yún)^(qū)塊后,還包括有原區(qū)塊剩余資料的搬移工作。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中搬移索引是根據(jù)搬移索引決定原區(qū)塊中將搬移至替代區(qū)塊內(nèi)的分頁;其具有復(fù)數(shù)個位元長度,每個位元對應(yīng)一個分頁,根據(jù)位元的值來決定該位元所對應(yīng)的分頁是否搬移。
前述的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其中所述的搬移索引反相后求得寫入索引。
本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。一種快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,其特征在于其主要是有效的建立起資料存起連結(jié)表功能及更新備用區(qū)塊的管理架構(gòu),其包括有a判定主機寫入的資料是否和前一筆資料同屬于一個區(qū)塊,同屬于一區(qū)塊即無需重新建立搬移索引;否則進入i;b判別欲寫入的資料數(shù)是否等于“0”;不等于“0”則進入g;c判別是否有資料要從原區(qū)塊搬移至替代區(qū)塊;無資料則執(zhí)行e;d將搬移索引指定的分頁搬移到替代區(qū)塊內(nèi);e判別寫入的資料是否為檔案配置表;是則結(jié)束分頁寫入動作;否則進入f。
f更新資料連結(jié)表后結(jié)束;g寫入資料于指定的分頁內(nèi),并將等待寫入的資料個數(shù)減一;h判別等待寫入的資料個數(shù)是否為“0”;完成資料寫入則進入c;否則重回g;i依據(jù)主機端的參數(shù),求出欲寫入該區(qū)塊的分頁數(shù)目、分頁起始位置及欲搬移的分頁;j從備用區(qū)塊堆疊中,取出堆疊開頭指位器所指向的替代區(qū)塊,準(zhǔn)備寫入主機端的資料及搬移原區(qū)塊的資料于該區(qū)塊中;k判別欲寫入的邏輯位址,是否為存放檔案配置表的位址;是則進入l;否則進入m;l更新檔案配置表連結(jié)表的內(nèi)容,以維持資料連結(jié)的完整性,重回b;m判別該邏輯區(qū)塊所屬的連結(jié)表是否存在緩沖器中;存在則進入0;n將該邏輯區(qū)塊所屬的連結(jié)表讀入緩沖器中;o更新存在于緩沖器中的連結(jié)表內(nèi)容,同時亦要更新連結(jié)分頁和連結(jié)區(qū)塊的內(nèi)容;重回步驟b;如果存放連結(jié)表的區(qū)塊已滿,則找尋一個備用區(qū)塊,將連結(jié)表填入及搬移到該區(qū)塊中,且需更新連結(jié)區(qū)塊和連結(jié)分頁。
本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點和積極效果。由以上技術(shù)方案可知,本發(fā)明是有關(guān)一種專屬于快閃記憶體的管理方法與連接結(jié)構(gòu),主要是將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊一般資料區(qū)塊、備用區(qū)塊、連結(jié)表區(qū)塊和新區(qū)塊,再配合上簡潔的資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,其可有效率地使用快閃記憶體,將資料連結(jié)結(jié)構(gòu)和演算法設(shè)計為一體,主要包括快閃記憶體的規(guī)劃、資料連結(jié)結(jié)構(gòu)的建立、備用區(qū)塊管理和分頁寫入快閃記憶體流程,使得在搜尋資料、寫入資料的時間可以有效的縮短,并且可以達到增長快閃記憶體的使用壽命的功效。
綜上所述,本發(fā)明提出的快閃記憶體的管理、資料連接結(jié)構(gòu)與演算法,將快閃記憶體內(nèi)規(guī)劃成數(shù)種具有不同功能的資料存取區(qū)塊,再配合設(shè)有簡潔的資料連結(jié)結(jié)構(gòu)與備用區(qū)塊管理演算法,使得在搜尋資料、寫入資料的時間能有效的縮短,并且可達到增長快閃記憶體的使用壽命的功效。其不論在結(jié)構(gòu)上或功能上皆有較大的改進,且在技術(shù)上有較大的進步,并產(chǎn)生了好用及實用的效果,而確實具有增進的功效,從而更加適于實用,誠為一新穎進步、實用的新設(shè)計。
本發(fā)明的具體結(jié)構(gòu)由以下實施例及其附圖詳細(xì)給出。


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