国产精品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>

      閃存的區(qū)塊管理方法

      文檔序號:6573625閱讀:246來源:國知局
      專利名稱:閃存的區(qū)塊管理方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及半導(dǎo)體存儲領(lǐng)域,更具體的來講,涉及一種能使閃存區(qū)塊的損耗均衡化的閃存區(qū)塊管理方法。。
      背景技術(shù)
      閃存因?yàn)槠渚哂懈呙芏?、大容量、較低的讀寫操作耗時(shí),非易失性等特點(diǎn)而越來越廣的被用于各種領(lǐng)域;同時(shí),閃存芯片自身存在的一些缺陷限制了這類存儲器的應(yīng)用。其一,由于閃存芯片特殊的寫和塊擦除特征,導(dǎo)致了存儲器的一些特殊操作,一般閃存的寫操作過程是需要先將本次操作的目的塊里的舊數(shù)據(jù)讀出來,放進(jìn)RAM(隨機(jī)存取存儲器)里面,然后,對目的塊做擦除操作,由于閃存芯片區(qū)塊是按照頁面順序?qū)懭耄?,要先把在區(qū)塊中頁面順序在前排列的舊數(shù)據(jù)寫入擦除后的目的區(qū)塊,然后把新的操作數(shù)據(jù)寫入,其次再把排列順序在后的目的塊舊數(shù)據(jù)寫入,最后更新區(qū)塊管理信息;在這樣一個(gè)復(fù)雜的操作過程中有可能出現(xiàn)不可恢復(fù)的錯(cuò)誤,例如,在目的塊擦除過程中系統(tǒng)掉電,而操作目的塊的數(shù)據(jù)沒能及時(shí)寫回,映射表信息也沒有更新,原來的舊數(shù)據(jù)變成了無效數(shù)據(jù)。另一方面,一般的閃存都有一個(gè)使用的壽命,這是由閃存單元自身的存儲原理所決定的,閃存單元的操作方式通常是,首先將存儲單元的浮置柵極放電也就是常說的擦除,到一個(gè)通用的狀態(tài),然后在寫數(shù)據(jù)過程中,再將浮置柵極充電也就是常說的編程,使它們達(dá)到存儲數(shù)據(jù)的需要狀態(tài),在重復(fù)的擦除和編程過程中,浮置柵極由于隧道效應(yīng)捕獲的電子逐漸增多,當(dāng)達(dá)到一定程度之后,如果再想對浮置柵極充電,就需要更大的電壓,這時(shí),也就是我們說的這個(gè)閃存芯片結(jié)束了它的使用周期。對于NOR型閃存被擦除或者重新編程次數(shù)一般為十萬次左右,NAND型閃存擦除或者重新編程次數(shù)一般是百萬次左右。
      上述只是一個(gè)理論上的平均值,在閃存芯片的實(shí)際應(yīng)用中,閃存設(shè)備的實(shí)際壽命遠(yuǎn)遠(yuǎn)低于這樣的理論值。其主要原因是閃存芯片區(qū)塊被操作的頻率是不同的,有一些閃存區(qū)塊被擦除或者重新編程的頻率的比較高,導(dǎo)致很快就被操作壞了,當(dāng)壞塊達(dá)到一定的積累之后,閃存芯片就不能夠再使用了,那么這個(gè)閃存設(shè)備結(jié)束了它的壽命,而有一些區(qū)塊卻不經(jīng)常被操作到,甚至直到存儲設(shè)備被用壞了,也沒有操作幾次,這樣就會造成很大的浪費(fèi)。目前,一般的閃存生產(chǎn)廠商都會采用在閃存芯片中,預(yù)留一部分空間用來替換這些壞塊,但是這種做法也只能適當(dāng)?shù)难娱L閃存壽命,而不能夠充分的使用這些閃存區(qū)塊,浪費(fèi)了許多閃存資源。中國發(fā)明專利申請《閃存介質(zhì)數(shù)據(jù)保護(hù)方法》(申請?zhí)?3137423)公開了一種閃存介質(zhì)寫數(shù)據(jù)方法,其技術(shù)方案包含將本次寫操作目的區(qū)塊的數(shù)據(jù)搬遷至一個(gè)空白區(qū)塊,并在其執(zhí)行數(shù)據(jù)操作的頁加注標(biāo)注信息,而操作過程中通過地址對照表可對原塊和新塊進(jìn)行尋址。該發(fā)明目的在于通過這種管理方法,在寫數(shù)據(jù)的同時(shí)保護(hù)在非法斷電前已寫入到閃存介質(zhì)中的數(shù)據(jù)文件。

      發(fā)明內(nèi)容
      本發(fā)明所解決的技術(shù)問題在于,提出一種閃存的區(qū)塊管理方法,能使閃存損耗更加均衡以有效延長其使用壽命,并可進(jìn)一步提高閃存操作速度及數(shù)據(jù)安全性。
      為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種閃存的區(qū)塊管理方法,所述閃存包括若干個(gè)區(qū)塊,每塊由多個(gè)頁構(gòu)成,每頁分為數(shù)據(jù)存儲區(qū)和冗余區(qū),其特征在于在所述區(qū)塊中劃定一塊或多塊作為地址映射表保留區(qū),以頁為單位保存閃存區(qū)塊的邏輯地址與物理地址的映射表;初始選定一個(gè)空白區(qū)塊作為交換塊,在所述映射表保存頁的冗余區(qū)建立該交換塊的地址映射表項(xiàng);當(dāng)進(jìn)行寫操作時(shí),根據(jù)地址映射表信息,將新數(shù)據(jù)和/或被操作的目標(biāo)區(qū)塊的舊數(shù)據(jù)對應(yīng)地寫入所述交換塊,擦除目標(biāo)區(qū)塊,然后將映射表頁中交換塊邏輯地址對應(yīng)的物理地址與目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換。
      進(jìn)一步地,每次操作更新的映射表信息保存到所述保留區(qū)的一頁中,并隨操作次數(shù)的增加按預(yù)定的規(guī)律在所述保留區(qū)的各頁面中循環(huán)地保存。
      優(yōu)選地,更新過的映射表信息保存到所述保留區(qū)的下一頁中,并隨操作次數(shù)的增加從所述保留區(qū)的第一頁到最后一頁中循環(huán)地保存。
      優(yōu)選地,其中的寫操作包括如下步驟1)讀取保留區(qū)中的地址映射表信息;2)根據(jù)映射表與映射表冗余區(qū)記載的信息,判斷上次操作是否正常結(jié)束;3)如果為非正常結(jié)束,則進(jìn)入異常處理程序;如果為正常結(jié)束,則進(jìn)入寫數(shù)據(jù)步驟;4)寫數(shù)據(jù)時(shí),先將目的塊中頁面位置在前的舊數(shù)據(jù)寫入交換塊,其次將本次操作的新數(shù)據(jù)寫入交換塊,再將剩余舊數(shù)據(jù)寫入交換塊;5)將目標(biāo)區(qū)塊擦除;6)將映射表中交換塊邏輯地址對應(yīng)的物理地址與目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換;7)將更新后的地址映射表和交換塊地址映射表項(xiàng),分別存入保留區(qū)下一頁的映射表區(qū)及映射表冗余區(qū)。
      優(yōu)選地,在所述步驟4)之前還包括判斷是否寫入新數(shù)據(jù)的步驟,若無新數(shù)據(jù)寫入,則依頁面順序?qū)⑴f數(shù)據(jù)寫入交換塊后進(jìn)入步驟5),若有新數(shù)據(jù),則進(jìn)入步驟4)。
      所述異常處理程序可包括,判斷是否在向交換塊寫數(shù)據(jù)的過程中掉電,如果是則將寫入了部分內(nèi)容的交換塊擦除。
      所述異常處理程序還可包括,判斷是否在目標(biāo)區(qū)塊擦除過程中掉電,如果是則將目標(biāo)區(qū)塊擦除,然后將交換塊的數(shù)據(jù)拷貝到目標(biāo)區(qū)塊,最后將交換塊擦除。
      所述異常處理程序還可包括,判斷是否在映射表更新過程中掉電,如果是則根據(jù)映射表與映射表冗余區(qū)的信息,找到上次操作的目標(biāo)區(qū)塊和交換塊,然后將交換塊的數(shù)據(jù)拷貝到目標(biāo)塊,并擦除交換塊。
      進(jìn)一步地,建立一個(gè)參數(shù)seed,其值與所述映射表保存頁面保存位置的循環(huán)次數(shù)相關(guān),并與設(shè)定的閃存區(qū)塊的邏輯地址相對應(yīng),當(dāng)seed值變化時(shí),根據(jù)地址映射表信息,將其值相應(yīng)邏輯地址對應(yīng)的閃存區(qū)塊的數(shù)據(jù)寫入所述交換塊,再將映射表中交換塊邏輯地址對應(yīng)的物理地址與seed值相應(yīng)邏輯地址對應(yīng)的物理地址互換。
      優(yōu)選地,更新映射表的時(shí)候?qū)eed值保存到映射表冗余區(qū)。
      優(yōu)選地,設(shè)置一個(gè)循環(huán)參數(shù)N,每經(jīng)歷N次所述映射表保存頁面保存位置的循環(huán)時(shí),seed的值加1。
      優(yōu)選地,所述映射表的保存位置每次回到所述保留區(qū)的第一頁時(shí)計(jì)為一次循環(huán)。
      所述seed值還可用于判斷閃存的損耗程度。
      所述閃存為一顆閃存芯片或包含多顆閃存芯片的閃存陣列。
      本發(fā)明有益的技術(shù)效果在于本發(fā)明的閃存區(qū)塊管理方法,通過在閃存區(qū)塊中劃定地址映射表保留區(qū),保存閃存區(qū)塊的邏輯地址與物理地址映射表,并在映射表保存頁的冗余區(qū)建立交換塊的地址映射表項(xiàng),在進(jìn)行寫操作時(shí),根據(jù)地址映射表信息,將數(shù)據(jù)對應(yīng)地寫入交換塊中,擦除目標(biāo)區(qū)塊,然后將映射表頁中交換塊邏輯地址對應(yīng)的物理地址與寫操作目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換。這種區(qū)塊管理方法相當(dāng)于將物理地址分散地對應(yīng)到閃存區(qū)塊邏輯地址中,雖然主機(jī)的文件系統(tǒng)在操作過程中對閃存邏輯地址的調(diào)用是不均衡的,但是從邏輯地址到物理地址的映射被打亂了,這種地址映射是一種動(dòng)態(tài)的變化的對應(yīng)關(guān)系,能夠?qū)崿F(xiàn)把操作均衡地分配給參與到管理中來的實(shí)際的物理閃存區(qū)塊,因此可有效地延長閃存的使用壽命。
      進(jìn)一步地,可通過建立個(gè)參數(shù)seed,強(qiáng)制性地把seed值大小相應(yīng)的閃存邏輯塊推入到上述實(shí)現(xiàn)地址均衡調(diào)用的管理過程中,隨著seed值的增加,逐次推動(dòng)所有的塊加入損耗均衡的操作,有效地避免了不參與損耗均衡的死塊的出現(xiàn)。
      本發(fā)明在一個(gè)閃存芯片中只動(dòng)態(tài)地保持一個(gè)交換塊,同時(shí),交換塊有獨(dú)立的交換塊映射地址保存區(qū),這種把交換塊信息獨(dú)立出來的方法可以有效地減少閃存芯片查找交換塊的時(shí)間,同時(shí)不需要在數(shù)據(jù)區(qū)花費(fèi)更多的冗余區(qū)記錄交換塊信息,因此,可以有效地節(jié)省操作時(shí)間和節(jié)約空間。
      本發(fā)明在數(shù)據(jù)的寫操作過程中,先把目標(biāo)區(qū)塊的部分舊數(shù)據(jù)寫入交換塊,其次把新數(shù)據(jù)寫入交換塊,接著,把剩余舊數(shù)據(jù)寫入交換塊,然后,把目標(biāo)區(qū)塊擦除,在這樣一個(gè)過程中,擦除操作是在整個(gè)操作的最后完成,即使有異常情況發(fā)生,也能夠保留有效的數(shù)據(jù)和提供線索,實(shí)現(xiàn)正常數(shù)據(jù)的恢復(fù)。


      圖1是閃存存儲裝置的結(jié)構(gòu)示意圖。
      圖2是本發(fā)明中閃存芯片的分區(qū)劃分示意圖。
      圖3是圖2中的頁面3放大了的示意圖。
      圖4是本發(fā)明區(qū)塊管理方法實(shí)施例中的動(dòng)態(tài)均衡示意圖。
      圖5是本發(fā)明區(qū)塊管理方法實(shí)施例中的靜態(tài)均衡示意圖。
      圖6是本發(fā)明區(qū)塊管理方法的實(shí)施例流程圖。
      具體實(shí)施例方式
      以下利用附圖并結(jié)合具體實(shí)施方式
      對本發(fā)明作進(jìn)一步詳細(xì)的描述。
      閃存存儲裝置一般結(jié)構(gòu)如圖1所示,主要包括接口、接口控制器、閃存控制器以及閃存芯片陣列;其中,接口控制器一般包含微控制器(MCU)以及固件(Firmware)。閃存存儲裝置通過接口接收到主機(jī)應(yīng)用程序發(fā)來的操作命令,然后接口把命令傳給接口控制器,由接口控制器中的Firmware以及微控制器把主機(jī)命令解析成底層的操作命令,然后發(fā)給閃存控制器,最后閃存控制器把命令解析成閃存控制信號,來控制閃存陣列的操作。其中Firmware把主機(jī)指令解析成底層操作命令,就包含了它對閃存芯片區(qū)塊的管理方法。
      在對閃存芯片進(jìn)行管理以前,首先要對它進(jìn)行區(qū)域的劃分。一般的閃存陣列包含有數(shù)行數(shù)列個(gè)閃存芯片,每個(gè)芯片的讀寫一般以頁面(Page)為單位進(jìn)行,每個(gè)頁面包括2048Byte的有效數(shù)據(jù)區(qū)和64Byte的冗余信息區(qū),每64個(gè)頁面組成一個(gè)區(qū)塊(Block),每顆閃存芯片區(qū)塊的數(shù)目取決于芯片記憶空間的大小,本說明主要以單顆閃存芯片存儲空間在64MByte以內(nèi),當(dāng)存儲空間在64MByte以上時(shí),每64MByte擁有一個(gè)地址映射表保留區(qū),操作方法跟單顆64MByte以內(nèi)類似。
      本發(fā)明區(qū)塊管理的方法在于實(shí)現(xiàn)以下三個(gè)方面其一是盡量少的做閃存擦除或者重新編程操作,這樣可以減少閃存芯片的損耗次數(shù);其二是盡可能的把擦除或者重新編程操作平均的分配到所有閃存區(qū)塊,也就是說讓閃存區(qū)塊擁有相同的操作幾率;第三還要提供一種安全的區(qū)塊管理方法和系統(tǒng)策略,能夠確保閃存數(shù)據(jù)的安全性。本發(fā)明兼顧了以上三個(gè)方面,在實(shí)施過程中主要包括動(dòng)態(tài)均衡和靜態(tài)均衡兩種處理方法。本發(fā)明實(shí)施例的流程圖如圖6所示,其中包含了本發(fā)明區(qū)塊管理的動(dòng)態(tài)均衡和靜態(tài)均衡。下面結(jié)合兩個(gè)具體實(shí)施方式
      來說明具體實(shí)施方式
      一本發(fā)明實(shí)施過程中首先對每顆閃存芯片建立一個(gè)地址映射表,用來維護(hù)閃存區(qū)塊在文件系統(tǒng)中的邏輯地址與在閃存芯片中的實(shí)際物理地址的映射關(guān)系;其次,在每個(gè)閃存芯片中,專門劃分一塊區(qū)域用來保存這個(gè)地址映射表,區(qū)域的大小跟閃存芯片的數(shù)據(jù)區(qū)設(shè)計(jì)的壽命有關(guān),更新的映射表每次保存在一個(gè)頁面中;接下來,初始化這個(gè)映射關(guān)系,然后,在數(shù)據(jù)塊中選定一個(gè)空白塊作交換塊,同時(shí),單獨(dú)建立一個(gè)交換塊的地址映射表項(xiàng),保存在映射區(qū)中每次保存數(shù)據(jù)區(qū)塊地址映射表頁面的冗余位置。
      如圖2所示,圖中1所示的是一顆閃存芯片,它被分成若干個(gè)區(qū)塊,根據(jù)需要選定幾個(gè)區(qū)塊作為映射表區(qū)保留塊,區(qū)塊的塊數(shù)由設(shè)計(jì)的存儲設(shè)備的壽命決定的,一定要保證映射區(qū)的壽命比數(shù)據(jù)區(qū)的壽命長。圖中2所示是映射表保留區(qū)塊的劃分,其中圖中例子劃分了2個(gè)區(qū)塊給保留區(qū)用,每個(gè)區(qū)塊包括64個(gè)頁面,每次操作之后的映射表就會被保存在一個(gè)頁面之中,映射表中主要記錄了本顆粒中邏輯塊地址(LBA)跟物理塊地址(PBA)之間的對應(yīng)關(guān)系,如圖3所示。圖2中3所示為當(dāng)前映射表保留區(qū)操作頁面,圖3是這個(gè)頁面的放大圖,是映射表的主要記錄信息,4所示為閃存芯片中任意一個(gè)區(qū)塊的邏輯地址與物理地址的映射關(guān)系,5所示為閃存芯片中的冗余區(qū)交換塊地址映射表。
      本發(fā)明實(shí)施例所述的動(dòng)態(tài)均衡包括以下步驟首先,在閃存芯片進(jìn)行寫操作時(shí),先把本次操作目的塊中頁面位置在前的舊數(shù)據(jù)寫入交換塊,其次把本次操作數(shù)據(jù)寫入交換塊,再把剩余舊數(shù)據(jù)寫入交換塊,之后把本次寫操作的目的區(qū)塊擦除;緊接著,把目的區(qū)塊的邏輯地址對應(yīng)的物理地址,跟交換塊邏輯地址對應(yīng)的物理地址進(jìn)行交換;最后把更新后的數(shù)據(jù)區(qū)塊地址映射表和交換塊地址映射表,分別存入閃存芯片預(yù)留的映射表區(qū)及映射表冗余區(qū)。
      實(shí)現(xiàn)閃存損耗均衡的動(dòng)態(tài)均衡管理方法如圖4所示,圖中6表示的是當(dāng)前操作中,保存映射表信息的頁面,圖中8所示的是當(dāng)前映射表冗余區(qū)中的交換塊的邏輯地址跟物理地址的對應(yīng)關(guān)系,圖中7表示的是當(dāng)前操作目標(biāo)區(qū)塊的邏輯地址與物理地址的對應(yīng)關(guān)系。圖中9和10分別是當(dāng)前操作目標(biāo)區(qū)塊和交換塊的物理地址在閃存芯片中的實(shí)際位置。當(dāng)進(jìn)行寫操作時(shí),F(xiàn)irmware先把閃存保留區(qū)中記錄的映射表信息以及交換塊信息讀出來,按照映射表記錄的邏輯地址與物理地址之間的對應(yīng)關(guān)系,根據(jù)區(qū)塊中數(shù)據(jù)頁面的順序,先把操作目的塊順序在前的舊數(shù)據(jù)寫入交換塊中對應(yīng)位置,再把操作數(shù)據(jù)寫入交換塊對應(yīng)的位置,接著,把剩余舊數(shù)據(jù)寫入交換塊,然后,再把本次操作目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理區(qū)塊作擦除操作,接著,把交換塊邏輯地址對應(yīng)的物理地址跟本次操作目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址作交換,最后,在所有操作完成之后,把更新的映射表項(xiàng)在掉電以前保存到保留區(qū)下一個(gè)物理頁面中。在動(dòng)態(tài)均衡過程中,為了保證存儲地址映射表的保留區(qū)不至于因?yàn)榉磸?fù)操作,而導(dǎo)致過早損壞,一般給其分配多個(gè)區(qū)塊,來依照物理地址的次序,循環(huán)保存。通過動(dòng)態(tài)均衡,基本可以保證區(qū)塊能夠被平均的操作。
      本發(fā)明在數(shù)據(jù)寫操作過程中,擦除操作是在整個(gè)操作的最后完成,即使有異常情況發(fā)生也能夠保留有效的數(shù)據(jù)和提供線索,實(shí)現(xiàn)正常數(shù)據(jù)的恢復(fù)。
      異常情況一如果當(dāng)數(shù)據(jù)在向交換塊寫的過程中設(shè)備非法掉電;由于操作沒有完成,映射表沒有更新,在存儲設(shè)備操作正常后,通過映射表仍然可以讀到原來的數(shù)據(jù),只需要把映射表中的交換塊做一次擦除操作,這樣,就可以恢復(fù)到操作前的狀態(tài)。
      異常情況二如果在所有數(shù)據(jù)已經(jīng)寫到交換塊,但是在目標(biāo)區(qū)塊擦除過程中設(shè)備非法掉電;由于映射表沒有更新,讀取映射表發(fā)現(xiàn)舊數(shù)據(jù)由于上次異常操作而被部分刪除,而交換塊由于上次數(shù)據(jù)寫操作完成所以是非空的,F(xiàn)irmware只需要根據(jù)這些判斷條件,然后把目標(biāo)區(qū)塊擦除,然后把交換塊的數(shù)據(jù)拷貝到目標(biāo)區(qū)塊,這樣目標(biāo)區(qū)塊被寫入了新數(shù)據(jù),最后再把交換塊擦除就可以了。
      異常情況三如果在映射表更新過程中設(shè)備非法掉電;可以根據(jù)上次映射表的記錄與映射表冗余區(qū)記載的交換塊的信息,找到上次操作的目標(biāo)區(qū)塊和交換塊,這種情況下目標(biāo)區(qū)塊是空白塊,而交換塊是正常非空數(shù)據(jù)塊,F(xiàn)irmware只需要根據(jù)這些判斷條件,然后把交換塊的數(shù)據(jù)拷貝到目標(biāo)塊,并擦除交換塊,最后將更新的映射表寫入保留區(qū)。
      具體實(shí)施方式
      二雖然通過動(dòng)態(tài)均衡方法能使大部分閃存區(qū)塊擁有相同的幾率被操作到,但是,還會有一些從來沒操作到的死塊。所謂死塊是指從來沒有被操作過,沒有參與到損耗均衡操作的閃存區(qū)塊,是上述動(dòng)態(tài)均衡不能解決的問題,因此又提出了一個(gè)靜態(tài)均衡的方法。本發(fā)明的映射表保留區(qū)中,地址映射表是以頁面為單位在閃存區(qū)塊內(nèi)依次保存,當(dāng)一個(gè)區(qū)塊被寫過一遍之后,就會按照物理地址的順序?qū)懭胂乱粋€(gè)區(qū)塊,直到循環(huán)完整個(gè)的映射表區(qū),然后,又重新回到映射表保留區(qū)開始位置。一般情況下,映射表保留區(qū)循環(huán)使用一次需要執(zhí)行映射表保留區(qū)塊數(shù)的64倍次寫操作。在靜態(tài)均衡過程中,首先建立一個(gè)參數(shù),將其命名為種子(Seed),并以如下方式維護(hù)該種子的值每次執(zhí)行一次映射表區(qū)的循環(huán)都要求把種子的值加1,或者設(shè)定一個(gè)循環(huán)次數(shù)的參數(shù)N,當(dāng)循環(huán)N次之后,種子值加1;然后,在每次更新映射表的時(shí)候把種子的值保存到映射表冗余區(qū)。當(dāng)種子值發(fā)生變化時(shí),強(qiáng)制把種子值大小相應(yīng)的閃存邏輯地址對應(yīng)物理塊的數(shù)據(jù)拷貝到交換塊,對交換塊和種子值對應(yīng)的閃存邏輯塊進(jìn)行一次動(dòng)態(tài)均衡,然后,擦除、保存。靜態(tài)均衡每次都會推動(dòng)一個(gè)邏輯塊,強(qiáng)制性地參與動(dòng)態(tài)均衡,當(dāng)閃存中存在死塊時(shí),會隨著種子的逐漸增加推動(dòng)死塊加入到這種損耗均衡的管理中來,一旦加入進(jìn)來,就會被均衡的分配操作。
      本實(shí)施例中,除了包含實(shí)施例一中的動(dòng)態(tài)均衡管理方法和異常操作處理方法,還包括上述的閃存區(qū)塊靜態(tài)均衡管理方法。如圖5所示,圖中11所示為閃存芯片映射表保留塊,本實(shí)施方式中預(yù)先選定了2個(gè)區(qū)塊作保留塊。圖中12表示的是剩余的區(qū)塊,本例中把它劃為數(shù)據(jù)區(qū)。圖中13表示的是當(dāng)前操作過程中,映射表項(xiàng)保存的物理頁面位置,當(dāng)本次操作進(jìn)行完之后,按照一般操作方法Firmware會把它的物理地址加1,然后再保存到保留塊,但是在本例中如果按照這樣的做法,會把映射表保存頁面寫到數(shù)據(jù)區(qū)所示的位置15,因此在本例中Firmware會把映射表保存頁面重新循環(huán)到初始位置,如圖中14所示。同時(shí),每做這樣一個(gè)循環(huán)操作時(shí),或者設(shè)定一個(gè)循環(huán)參數(shù)N,當(dāng)進(jìn)行了N次這樣的循環(huán)時(shí),F(xiàn)irmware維護(hù)的種子Seed就會加1,來記錄循環(huán)次數(shù)或者循環(huán)參數(shù)N,每當(dāng)Seed值加1時(shí),F(xiàn)irmware會強(qiáng)行啟動(dòng)一次操作,把Seed值大小的邏輯地址對應(yīng)物理地址的數(shù)據(jù)寫到交換塊中,同時(shí),把Seed值對應(yīng)的目標(biāo)區(qū)塊做擦除操作,然后,把交換塊的物理地址跟Seed值大小邏輯地址對應(yīng)塊的物理地址交換,把Seed值對應(yīng)的塊作交換塊,最后,把數(shù)據(jù)區(qū)塊地址映射表項(xiàng)保存到下一個(gè)物理的頁面中,把交換塊地址映射表保存到這個(gè)頁面的冗余區(qū)。這樣做,會強(qiáng)行的逐次推動(dòng)所有的塊加入損耗均衡的操作中來,這樣做能夠有效地避免不參與損耗均衡的死塊的出現(xiàn)。
      以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定的專利保護(hù)范圍。
      權(quán)利要求
      1.一種閃存的區(qū)塊管理方法,所述閃存包括若干個(gè)區(qū)塊,每塊由多個(gè)頁構(gòu)成,每頁分為數(shù)據(jù)存儲區(qū)和冗余區(qū),其特征在于在所述區(qū)塊中劃定一塊或多塊作為地址映射表保留區(qū),以頁為單位保存閃存區(qū)塊的邏輯地址與物理地址的映射表;初始選定一個(gè)空白區(qū)塊作為交換塊,在所述映射表保存頁的冗余區(qū)建立該交換塊的地址映射表項(xiàng);當(dāng)進(jìn)行寫操作時(shí),根據(jù)地址映射表信息,將新數(shù)據(jù)和/或被操作的目標(biāo)區(qū)塊的舊數(shù)據(jù)對應(yīng)地寫入所述交換塊,擦除目標(biāo)區(qū)塊,然后將映射表頁中交換塊邏輯地址對應(yīng)的物理地址與目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換。
      2.如權(quán)利要求1所述的閃存的區(qū)塊管理方法,其特征在于,每次操作更新的映射表信息保存到所述保留區(qū)的一頁中,并隨操作次數(shù)的增加按預(yù)定的規(guī)律在所述保留區(qū)的各頁面中循環(huán)地保存。
      3.如權(quán)利要求2所述的閃存的區(qū)塊管理方法,其特征在于,所述規(guī)律為,更新過的映射表信息保存到所述保留區(qū)的下一頁中,并隨操作次數(shù)的增加從所述保留區(qū)的第一頁到最后一頁中循環(huán)地保存。
      4.如權(quán)利要求1或2或3所述的閃存的區(qū)塊管理方法,其特征在于,其中的寫操作包括如下步驟1)讀取保留區(qū)中的地址映射表信息;2)根據(jù)映射表與映射表冗余區(qū)記載的信息,判斷上次操作是否正常結(jié)束;3)如果為非正常結(jié)束,則進(jìn)入異常處理程序;如果為正常結(jié)束,則進(jìn)入寫數(shù)據(jù)步驟;4)寫數(shù)據(jù)時(shí),先將目的塊中頁面位置在前的舊數(shù)據(jù)寫入交換塊,其次將本次操作的新數(shù)據(jù)寫入交換塊,再將剩余舊數(shù)據(jù)寫入交換塊;5)將目標(biāo)區(qū)塊擦除;6)將映射表中交換塊邏輯地址對應(yīng)的物理地址與目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換;7)將更新后的地址映射表和交換塊地址映射表項(xiàng),分別存入保留區(qū)下一頁的映射表區(qū)及映射表冗余區(qū)。
      5.如權(quán)利要求4所述的閃存的區(qū)塊管理方法,其特征在于,在所述步驟4)之前還包括判斷是否寫入新數(shù)據(jù)的步驟,若無新數(shù)據(jù)寫入,則依頁面順序?qū)⑴f數(shù)據(jù)寫入交換塊后進(jìn)入步驟5),若有新數(shù)據(jù),則進(jìn)入步驟4)。
      6.如權(quán)利要求4所述的閃存的區(qū)塊管理方法,其特征在于,所述異常處理程序包括判斷是否在向交換塊寫數(shù)據(jù)的過程中掉電,如果是則將寫入了部分內(nèi)容的交換塊擦除。
      7.如權(quán)利要求4所述的閃存的區(qū)塊管理方法,其特征在于,所述異常處理程序包括判斷是否在目標(biāo)區(qū)塊擦除過程中掉電,如果是則將目標(biāo)區(qū)塊擦除,然后將交換塊的數(shù)據(jù)拷貝到目標(biāo)區(qū)塊,最后將交換塊擦除。
      8.如權(quán)利要求4所述的閃存的區(qū)塊管理方法,其特征在于,所述異常處理程序包括判斷是否在映射表更新過程中掉電,如果是則根據(jù)映射表與映射表冗余區(qū)的信息,找到上次操作的目標(biāo)區(qū)塊和交換塊,然后將交換塊的數(shù)據(jù)拷貝到目標(biāo)塊,并擦除交換塊。
      9.如權(quán)利要求2或3所述的閃存的區(qū)塊管理方法,其特征在于,建立一個(gè)參數(shù)seed,其值與所述映射表保存頁面保存位置的循環(huán)次數(shù)相關(guān),并與設(shè)定的閃存區(qū)塊的邏輯地址相對應(yīng),當(dāng)seed值變化時(shí),根據(jù)地址映射表信息,將其值相應(yīng)邏輯地址對應(yīng)的閃存區(qū)塊的數(shù)據(jù)寫入所述交換塊,再將映射表中交換塊邏輯地址對應(yīng)的物理地址與seed值相應(yīng)邏輯地址對應(yīng)的物理地址互換。
      10.如權(quán)利要求9所述的閃存的區(qū)塊管理方法,其特征在于,更新映射表的時(shí)候?qū)eed值保存到映射表冗余區(qū)。
      11.如權(quán)利要求9所述的閃存的區(qū)塊管理方法,其特征在于,設(shè)置一個(gè)循環(huán)參數(shù)N,每經(jīng)歷N次所述映射表保存頁面保存位置的循環(huán)時(shí),seed的值加1。
      12.如權(quán)利要求11所述的閃存的區(qū)塊管理方法,其特征在于,所述映射表的保存位置每次回到所述保留區(qū)的第一頁時(shí)計(jì)為一次循環(huán)。
      13.如權(quán)利要求9所述的閃存的區(qū)塊管理方法,其特征在于,所述seed值可用于判斷閃存的損耗程度。
      14.如權(quán)利要求1或2或3所述的閃存的區(qū)塊管理方法,其特征在于,所述閃存為一顆閃存芯片或包含多顆閃存芯片的閃存陣列。
      全文摘要
      本發(fā)明公開了一種閃存的區(qū)塊管理方法,所述閃存包括若干個(gè)區(qū)塊,每塊由多個(gè)頁構(gòu)成,每頁分為數(shù)據(jù)存儲區(qū)和冗余區(qū),在所述區(qū)塊中劃定一塊或多塊作為地址映射表保留區(qū),以頁為單位保存閃存區(qū)塊的邏輯地址與物理地址的映射表;選定一個(gè)空白塊作為交換塊,在所述映射表保存頁的冗余區(qū)建立該交換塊的地址映射表項(xiàng);當(dāng)進(jìn)行寫操作時(shí),根據(jù)地址映射表信息,將新數(shù)據(jù)和/或被操作的目標(biāo)區(qū)塊的舊數(shù)據(jù)對應(yīng)地寫入所述交換塊,擦除目標(biāo)區(qū)塊,然后將映射表頁中交換塊邏輯地址對應(yīng)的物理地址與目標(biāo)區(qū)塊邏輯地址對應(yīng)的物理地址互換。本發(fā)明可在保證操作速度的同時(shí)有效延長閃存使用壽命,并提高閃存數(shù)據(jù)的安全性。
      文檔編號G06F12/02GK101030167SQ200710072980
      公開日2007年9月5日 申請日期2007年1月17日 優(yōu)先權(quán)日2007年1月17日
      發(fā)明者黃河 申請人:憶正存儲技術(shù)(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1