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

      Spi閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法及數(shù)據(jù)讀寫管理裝置制造方法

      文檔序號(hào):6640162閱讀:438來源:國知局
      Spi閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法及數(shù)據(jù)讀寫管理裝置制造方法
      【專利摘要】本發(fā)明提供一種SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法以及數(shù)據(jù)讀寫管理裝置,SPI閃速存儲(chǔ)器具有封裝體,封裝體內(nèi)封裝有控制器以及NANDFlash存儲(chǔ)器,控制器的通信接口及電源接口與封裝體的引腳連接,該方法包括控制器將接收的SPI閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成NANDFlash存儲(chǔ)器的物理地址;控制器將接收的數(shù)據(jù)寫入到物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。該裝置包括地址映射模塊,將控制器接收的SPI閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成NANDFlash存儲(chǔ)器的物理地址,還設(shè)有數(shù)據(jù)讀寫模塊,將控制器接收的數(shù)據(jù)寫入到物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。本發(fā)明可提高SPI存儲(chǔ)器的通用性,并延長其使用壽命。
      【專利說明】SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法及數(shù)據(jù)讀寫管理裝置

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,是SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法以及數(shù)據(jù)讀寫管理裝置。

      【背景技術(shù)】
      [0002]現(xiàn)在的便攜式電子設(shè)備,諸如MP3音樂播放器、手機(jī)、平板電腦等大量使用嵌入式芯片,嵌入式芯片可以視為一個(gè)嵌入式系統(tǒng),其包括一個(gè)嵌入式的微控制器(MCU)以及非易失性存儲(chǔ)器,非易失性存儲(chǔ)器通常是閃速存儲(chǔ)器(Flash)?,F(xiàn)有的SPI閃速存儲(chǔ)器是一種小容量、封裝簡單、使用方便、可重復(fù)燒錄的非易失性存儲(chǔ)器件,其存儲(chǔ)容量由IMB到16MB不等,但生產(chǎn)成本隨著容量的增大而迅速升高。
      [0003]現(xiàn)有的SPI閃速存儲(chǔ)器需要迅速地響應(yīng)嵌入式控制的讀寫請(qǐng)求,通常其存儲(chǔ)結(jié)構(gòu)為NOR Flash,也稱作SPI NOR Flash存儲(chǔ)器。嵌入式芯片啟動(dòng)的時(shí)候,嵌入式微控制器將存儲(chǔ)在SPI NOR Flash存儲(chǔ)器中的程序讀取到微控制器中,并在隨機(jī)存儲(chǔ)器(RAM)中運(yùn)行。隨著嵌入式芯片的功能越來越強(qiáng)大,需要存放在SPI NOR Flash存儲(chǔ)器的數(shù)據(jù)除了越來越龐大的程序文件外,還包括越來越多的音頻和視頻數(shù)據(jù),因此,現(xiàn)有的SPI NOR Flash存儲(chǔ)器的容量越來越難滿足現(xiàn)在的電子產(chǎn)品的要求。
      [0004]NAND Flash存儲(chǔ)器是一種大容量、低成本、可重復(fù)燒錄的非易失性存儲(chǔ)器件,但是NAND Flash存儲(chǔ)器訪問方式復(fù)雜,輸入輸出端口較多,工作時(shí)需要強(qiáng)大的糾錯(cuò)能力,且數(shù)據(jù)存儲(chǔ)管理難度大,存儲(chǔ)方式復(fù)雜。為了滿足巨大的程序和數(shù)據(jù)容量需求,現(xiàn)有的一些嵌入式芯片采用NAND Flash存儲(chǔ)器替換現(xiàn)有的SPI NOR Flash存儲(chǔ)器作為嵌入式芯片的非易失性存儲(chǔ)器件,但嵌入芯片的生產(chǎn)成本因此而大幅增加,嵌入式芯片的開發(fā)難度也越來越大。
      [0005]為了解決存儲(chǔ)容量和成本的矛盾,人們研發(fā)了一種稱為SPI NAND Flash存儲(chǔ)器的SPI閃速存儲(chǔ)器,將NAND Flash存儲(chǔ)器和微控制器封裝在一起,并應(yīng)用到嵌入式芯片中。進(jìn)行數(shù)據(jù)讀寫時(shí),現(xiàn)有SPI NAND Flash存儲(chǔ)器通常只會(huì)簡單地將SPI的地址轉(zhuǎn)換成NANDFlash存儲(chǔ)器的存儲(chǔ)地址并進(jìn)行訪問。
      [0006]然而,這種SPI NAND Flash存儲(chǔ)器只解決了 SPI NOR Flash存儲(chǔ)器的存儲(chǔ)容量問題,但是并不能有效地對(duì)SPI閃速存儲(chǔ)器的地址進(jìn)行有效管理,影響SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫速度。
      [0007]另外,NAND Flash存儲(chǔ)器具有的壞塊特性,即不宜長時(shí)間對(duì)同一固定區(qū)域進(jìn)行擦寫的特性,且NAND Flash存儲(chǔ)器還具有類型多樣的特性,即存儲(chǔ)頁容量、塊容量多樣化的特性,等導(dǎo)致了嵌入式系統(tǒng)的難以實(shí)現(xiàn)像SPI NOR Flash存儲(chǔ)器一樣的通用化管理SPI NANDFlash存儲(chǔ)器,從而限制了 SPI NAND Flash存儲(chǔ)器的應(yīng)用范圍。


      【發(fā)明內(nèi)容】

      [0008]本發(fā)明的主要目的是提供一種對(duì)數(shù)據(jù)讀寫管理規(guī)范且易于實(shí)現(xiàn)的SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法。
      [0009]本發(fā)明的另一目的是提供一種便于閃速存儲(chǔ)器被訪問的SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置。
      [0010]為了實(shí)現(xiàn)上述的主要目的,本發(fā)明提供的SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法中,SPI閃速存儲(chǔ)器具有封裝體,封裝體內(nèi)封裝有控制器以及與控制器電連接的NAND Flash存儲(chǔ)器,控制器的通信接口及電源接口與封裝體的引腳連接,其中,該方法包括:控制器將接收的SPI閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器的物理地址;控制器將接收的數(shù)據(jù)寫入到物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。
      [0011]由上述方案可見,通過對(duì)SPI閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器的物理地址,并根據(jù)物理地址對(duì)NAND Flash存儲(chǔ)器的數(shù)據(jù)進(jìn)行讀寫操作,可以有效地建立邏輯地址與物理地址的對(duì)應(yīng)關(guān)系,規(guī)范SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫,提高SPI閃速存儲(chǔ)器的讀寫速度。
      [0012]進(jìn)一步的方案是,控制器記錄NAND Flash存儲(chǔ)器每一存儲(chǔ)區(qū)域的擦寫次數(shù),向物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)后,控制器更新該物理地址的存儲(chǔ)區(qū)域的擦寫次數(shù);向NAND Flash存儲(chǔ)器寫入數(shù)據(jù)時(shí),控制器挑選擦寫次數(shù)最少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      [0013]由此可見,通過選擇擦寫次數(shù)最少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù),可以避免SPI閃速存儲(chǔ)器對(duì)同一存儲(chǔ)區(qū)域過多的擦寫,避免部分存儲(chǔ)區(qū)域因擦寫次數(shù)過多而導(dǎo)致整個(gè)NAND Flash存儲(chǔ)器無法使用的問題,從而提高SPI閃速存儲(chǔ)器通用性,同時(shí)延長SPI閃速存儲(chǔ)器的使用壽命。
      [0014]進(jìn)一步的方案是,控制器挑選擦寫次數(shù)最少的存儲(chǔ)區(qū)域的步驟包括:向物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)前,控制器判斷該存儲(chǔ)區(qū)域的擦寫次數(shù)是否高于閾值,如是,查找擦寫次數(shù)最少的存儲(chǔ)區(qū)域的新的物理地址;向新的物理地址寫入數(shù)據(jù)后,更新物理地址與邏輯地址的映射關(guān)系。
      [0015]由此可見,只有判斷某一存儲(chǔ)區(qū)域的擦寫次數(shù)高于特定的閾值時(shí)才選擇擦寫次數(shù)最少的存儲(chǔ)區(qū)域存儲(chǔ)待寫入的數(shù)據(jù),避免每一次寫入數(shù)據(jù)的時(shí)候進(jìn)行選擇,從而提高數(shù)據(jù)的寫入速度。
      [0016]更進(jìn)一步的方案是,NAND Flash存儲(chǔ)器具有映射表存儲(chǔ)區(qū)域,控制器向映射表存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)前,判斷映射表存儲(chǔ)區(qū)域的某一存儲(chǔ)區(qū)域的擦寫次數(shù)高于閾值時(shí),查找擦寫次數(shù)最少的映射表存儲(chǔ)區(qū)域內(nèi)新的物理地址并向新的物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      [0017]可見,對(duì)NAND Flash存儲(chǔ)器的映射表存儲(chǔ)區(qū)域也采用選擇擦寫次數(shù)最少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù),可以避免映射表存儲(chǔ)區(qū)域出現(xiàn)過早損壞的情況,延長SPI存儲(chǔ)器的使用壽命。
      [0018]更進(jìn)一步的方案是,SPI閃速存儲(chǔ)器首次上電后,控制器對(duì)NAND Flash存儲(chǔ)器的所有存儲(chǔ)區(qū)域進(jìn)行掃描,屏蔽已損壞的存儲(chǔ)區(qū)域,建立可用存儲(chǔ)區(qū)域的物理地址與SPI閃速存儲(chǔ)器的邏輯地址的映射關(guān)系。
      [0019]由于SPI閃速存儲(chǔ)器首次上電后即屏蔽已經(jīng)損壞的區(qū)域,避免數(shù)據(jù)寫入到已經(jīng)損壞的存儲(chǔ)區(qū)域內(nèi),可以有效避免寫入到SPI存儲(chǔ)器的數(shù)據(jù)的損壞。
      [0020]為實(shí)現(xiàn)上述的另一目的,本發(fā)明提供的SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫裝置中,SPI閃速存儲(chǔ)器具有封裝體,封裝體內(nèi)封裝有控制器以及與控制器電連接的NAND Flash存儲(chǔ)器,控制器的通信接口及電源接口與封裝體的引腳連接;其中,該裝置包括地址映射模塊,將控制器接收的SPI閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器的物理地址,還設(shè)有數(shù)據(jù)讀寫模塊,將控制器接收的數(shù)據(jù)寫入到物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。
      [0021]由上述方案可見,SPI閃速存儲(chǔ)器數(shù)據(jù)讀寫時(shí),將SPI邏輯地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器的物理地址,再根據(jù)物理地址對(duì)數(shù)據(jù)進(jìn)行讀寫操作,可以有效地實(shí)現(xiàn)對(duì)邏輯地址與物理地址之間的管理,提高SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫速度。

      【專利附圖】

      【附圖說明】
      [0022]圖1是應(yīng)用本發(fā)明實(shí)施例的SPI閃速存儲(chǔ)器的結(jié)構(gòu)框圖。
      [0023]圖2是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫裝置實(shí)施例的結(jié)構(gòu)框圖。
      [0024]圖3是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中SPI閃速存儲(chǔ)器上電時(shí)的工作流程圖。
      [0025]圖4是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中邏輯地址與物理地址對(duì)應(yīng)關(guān)系圖。
      [0026]圖5是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中擦寫記錄表的示意圖。
      [0027]圖6是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中讀寫步驟的流程圖。
      [0028]圖7是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中數(shù)據(jù)編碼與數(shù)據(jù)解碼的示意圖。
      [0029]圖8是本發(fā)明SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫方法實(shí)施例中數(shù)據(jù)解碼的流程圖。
      [0030]以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。

      【具體實(shí)施方式】
      [0031]本發(fā)明的SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法是一種用于對(duì)SPI閃速存儲(chǔ)器所存儲(chǔ)的數(shù)據(jù)進(jìn)行讀寫操作的管理方法,包括對(duì)數(shù)據(jù)存儲(chǔ)地址的轉(zhuǎn)換、數(shù)據(jù)編碼與數(shù)據(jù)解碼等流程,SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置是應(yīng)用上述方法對(duì)數(shù)據(jù)的讀寫進(jìn)行管理的軟件程序。
      [0032]如圖1所示,SPI閃速存儲(chǔ)器10具有一個(gè)封裝體11,在封裝體11內(nèi)設(shè)有控制器12以及NAND Flash存儲(chǔ)器20,控制器12為微控制器(MCU)或者專用的邏輯電路、可編程控制器等,NAND Flash存儲(chǔ)器20與控制器12電連接,并且可以被控制器12訪問,也就是控制器12可以讀取存儲(chǔ)在NAND Flash存儲(chǔ)器20內(nèi)的數(shù)據(jù),也可以向NAND Flash存儲(chǔ)器20寫入數(shù)據(jù)。
      [0033]封裝體11設(shè)有多個(gè)引腳,包括時(shí)鐘引腳CLK、電源引腳VDD、接地引腳GND、與SD卡連接的數(shù)據(jù)引腳SD0、SD1等??刂破?2內(nèi)設(shè)有通信接口 16以及電源接口 17,通信接口 16與電源接口 17分別與封裝體11的多個(gè)引腳連接,接收封裝體的引腳提供的電源以及數(shù)據(jù)。
      [0034]控制器12內(nèi)設(shè)有數(shù)據(jù)緩沖器18,用于臨時(shí)存儲(chǔ)接收的數(shù)據(jù),控制器12接收的數(shù)據(jù)可以是來自SPI閃速存儲(chǔ)器10外部的數(shù)據(jù),這些數(shù)據(jù)是待寫入到NAND Flash存儲(chǔ)器20的數(shù)據(jù),也可以是來自NAND Flash存儲(chǔ)器20的數(shù)據(jù),這些數(shù)據(jù)是待發(fā)送至SPI閃速存儲(chǔ)器10外部的數(shù)據(jù)??刂破?2還設(shè)有控制接口 13,用于向NAND Flash存儲(chǔ)器20發(fā)出控制信號(hào),由此控制NAND Flash存儲(chǔ)器20的工作。
      [0035]為了實(shí)現(xiàn)數(shù)據(jù)在NAND Flash存儲(chǔ)器20內(nèi)的存儲(chǔ),控制器12需要將接收的數(shù)據(jù)的存儲(chǔ)地址為SPI邏輯地址轉(zhuǎn)換為NAND Flash存儲(chǔ)器20的物理地址,這就需要建立SPI邏輯地址與NAND Flash存儲(chǔ)器20的物理地址之間的映射關(guān)系,例如將NAND Flash存儲(chǔ)器20的存儲(chǔ)區(qū)域劃分為多個(gè)存儲(chǔ)區(qū)域,每一個(gè)存儲(chǔ)區(qū)域有一個(gè)對(duì)應(yīng)的物理地址,并且建立一個(gè)映射表,將SPI邏輯地址映射到一個(gè)物理地址上。因此,SPI邏輯地址與NAND Flash存儲(chǔ)器20的物理地址之間存在一個(gè)映射關(guān)系,該映射關(guān)系形成一個(gè)表格,該表格就是映射表。映射表需要存儲(chǔ)在控制器12以及NAND Flash存儲(chǔ)器20內(nèi),因此,控制器12內(nèi)設(shè)有映射表存儲(chǔ)區(qū)域14,NAND Flash存儲(chǔ)器20內(nèi)也設(shè)有映射表存儲(chǔ)區(qū)域21,均存儲(chǔ)SPI邏輯地址與物理地址之間的映射關(guān)系。
      [0036]此外,控制器12內(nèi)設(shè)有映射緩沖器15,在對(duì)數(shù)據(jù)進(jìn)行讀寫操作時(shí),控制器12需要將映射表存儲(chǔ)區(qū)域14內(nèi)的數(shù)據(jù)臨時(shí)讀取到映射表緩沖器15內(nèi)。
      [0037]NAND Flash存儲(chǔ)器20內(nèi)除了設(shè)有映射表存儲(chǔ)區(qū)域21,還設(shè)有數(shù)據(jù)存儲(chǔ)區(qū)域22,用于存儲(chǔ)寫入到NAND Flash存儲(chǔ)器20的數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)區(qū)域22被劃分為多個(gè)存儲(chǔ)區(qū)域,每一個(gè)存儲(chǔ)區(qū)域均有自己的物理地址,每一個(gè)存儲(chǔ)區(qū)域的物理地址對(duì)應(yīng)有SPI邏輯地址。
      [0038]如圖2所示,SPI閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置是運(yùn)行在控制器12上的軟件程序,其包括地址映射模塊31、讀寫控制模塊32、損壞均衡模塊33、屏蔽模塊34、編碼模塊35以及解碼模塊36。地址映射模塊31用于將SPI地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器20的物理地址,即在向NAND Flash存儲(chǔ)器20寫入數(shù)據(jù)前或者從NAND Flash存儲(chǔ)器20讀取數(shù)據(jù)時(shí),根據(jù)映射表存儲(chǔ)區(qū)域內(nèi)的數(shù)據(jù),通過查表的方式查找出SPI邏輯地址對(duì)應(yīng)的NAND Flash存儲(chǔ)器20的物理地址。讀寫控制模塊32用于控制數(shù)據(jù)的讀寫操作,包括向NAND Flash存儲(chǔ)器20發(fā)出讀取數(shù)據(jù)的命令或者發(fā)出擦寫數(shù)據(jù)的命令。
      [0039]為了避免NAND Flash存儲(chǔ)器20內(nèi)某一個(gè)存儲(chǔ)區(qū)域擦寫操作過多而容易損壞,控制器12需要均衡多個(gè)存儲(chǔ)區(qū)域的擦寫次數(shù)。損壞均衡模塊33存儲(chǔ)有NAND Flash存儲(chǔ)器20每一個(gè)存儲(chǔ)區(qū)域的擦寫次數(shù),且在發(fā)現(xiàn)待寫入的數(shù)據(jù)寫入的存儲(chǔ)區(qū)域的擦寫次數(shù)過高時(shí),選擇一個(gè)擦寫次數(shù)較少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      [0040]此外,為了避免控制器12將數(shù)據(jù)寫入到NAND Flash存儲(chǔ)器20已損壞的存儲(chǔ)區(qū)域內(nèi),控制器12通過屏蔽模塊34將NAND Flash存儲(chǔ)器20內(nèi)已損壞的存儲(chǔ)區(qū)域屏蔽。編碼模塊35用于對(duì)待寫入NAND Flash存儲(chǔ)器20的數(shù)據(jù)進(jìn)行編碼,而解碼模塊36用于對(duì)從NANDFlash存儲(chǔ)器20讀取的數(shù)據(jù)進(jìn)行解碼操作。
      [0041]參見圖3,SPI閃速存儲(chǔ)器首次上電后,控制器12執(zhí)行步驟SI,掃描NAND Flash存儲(chǔ)器20的所有存儲(chǔ)區(qū)域,屏蔽模塊34將已經(jīng)損壞的存儲(chǔ)區(qū)域屏蔽,以避免將數(shù)據(jù)寫入到已損壞的存儲(chǔ)區(qū)域內(nèi)。接著,控制器12對(duì)NAND Flash存儲(chǔ)器20內(nèi)未損壞的存儲(chǔ)區(qū)域分配SPI邏輯地址,將物理地址與SPI邏輯地址的映射關(guān)系存儲(chǔ)在映射表存儲(chǔ)區(qū)域14、21內(nèi),即執(zhí)行步驟S2。SPI邏輯地址與NAND Flash存儲(chǔ)器20的物理地址之間的映射關(guān)系如圖4所示。例如,SPI閃速存儲(chǔ)器10要對(duì)邏輯地址為{BlockO,PageO }的數(shù)據(jù)進(jìn)行擦除或編程,經(jīng)過地址映射后,擦除或編程的位置實(shí)際位于NAND Flash存儲(chǔ)器20的物理地址為{BlockX,PageO}對(duì)應(yīng)的存儲(chǔ)區(qū)域。
      [0042]當(dāng)需要向NAND Flash存儲(chǔ)器20寫入數(shù)據(jù)或者從NAND Flash存儲(chǔ)器20讀取數(shù)據(jù)時(shí),控制器12接收SPI邏輯地址,地址映射模塊31執(zhí)行步驟S3,將映射表存儲(chǔ)區(qū)域14內(nèi)的數(shù)據(jù)讀入到映射表緩沖器15內(nèi),并執(zhí)行步驟S4,通過查表的方式將SPI邏輯地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器20的物理地址。
      [0043]接著,控制器12執(zhí)行步驟S5,判斷映射表是否需要更新,也就是判斷SPI邏輯地址與物理地址之間的對(duì)應(yīng)關(guān)系是否已經(jīng)發(fā)生改變,如果已經(jīng)發(fā)生改變,則執(zhí)行步驟S6,更新映射表緩沖器以及映射表存儲(chǔ)區(qū)域所存儲(chǔ)的數(shù)據(jù),也就是更新映射表的數(shù)據(jù)。
      [0044]由于損壞均衡模塊33需要均衡每一個(gè)存儲(chǔ)區(qū)域的擦寫次數(shù),因此損壞均衡模塊33內(nèi)設(shè)有一個(gè)表格,如圖5所示,該表格記錄NAND Flash存儲(chǔ)器20每一個(gè)存儲(chǔ)區(qū)域的物理地址、對(duì)應(yīng)的SPI邏輯地址以及相應(yīng)存儲(chǔ)區(qū)域的擦寫次數(shù)。損壞均衡模塊33發(fā)現(xiàn)某一存儲(chǔ)區(qū)域擦寫次數(shù)過高時(shí),需要更改待寫入數(shù)據(jù)的存儲(chǔ)區(qū)域。這樣,控制器12往往需要更改SPI邏輯地址與物理地址之間的對(duì)應(yīng)關(guān)系,而更改對(duì)應(yīng)關(guān)系時(shí)往往需要向映射表緩沖器15寫入新的映射關(guān)系的數(shù)據(jù),因此步驟S5中,控制器12對(duì)比映射表存儲(chǔ)區(qū)域14與映射表緩沖器15所存儲(chǔ)的數(shù)據(jù)是否不一致,不一致時(shí)則需要進(jìn)行映射表的更新操作。
      [0045]參見圖6,SPI閃速存儲(chǔ)器10接收到外部發(fā)送的數(shù)據(jù)后,首先執(zhí)行步驟S11,將接收的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩沖器18中,然后執(zhí)行步驟S12,編碼模塊35對(duì)接收的并存儲(chǔ)在數(shù)據(jù)緩沖器18內(nèi)的數(shù)據(jù)進(jìn)行編碼。
      [0046]由于嵌入式系統(tǒng)所存儲(chǔ)的數(shù)據(jù)很可能出現(xiàn)大量數(shù)值類似的情況,例如一段聲音偏小的錄音數(shù)據(jù),數(shù)據(jù)的高位基本上都是二進(jìn)制數(shù)據(jù)“O”。如果存儲(chǔ)到NAND Flash存儲(chǔ)器20之前不做編碼處理,NAND Flash存儲(chǔ)器20里存儲(chǔ)的大部分?jǐn)?shù)據(jù)都是“O”。相反,在大部分?jǐn)?shù)據(jù)為二進(jìn)制數(shù)據(jù)“I”的情況也類似。這樣,NAND Flash存儲(chǔ)器20的使用壽命會(huì)大大縮短。
      [0047]另外,由于NAND Flash存儲(chǔ)器20的物理存儲(chǔ)區(qū)域的訪問協(xié)議是公開并且通用的,敏感數(shù)據(jù)如果在存儲(chǔ)到NAND Flash存儲(chǔ)器20之前不做特殊處理,就可能被惡意竊取,造成損失。因此,有必要對(duì)存儲(chǔ)到NAND Flash存儲(chǔ)器20的數(shù)據(jù)進(jìn)行編碼處理。如圖7所示,編碼模塊35將SPI原始數(shù)據(jù)流經(jīng)過編碼后生成NAND Flash存儲(chǔ)器20的數(shù)據(jù)流,這些數(shù)據(jù)流暫存在數(shù)據(jù)緩沖器18內(nèi)。
      [0048]對(duì)數(shù)據(jù)進(jìn)行編碼時(shí),設(shè)置一個(gè)解碼密鑰,編碼模塊35根據(jù)該解碼密鑰對(duì)數(shù)據(jù)緩沖器18內(nèi)的數(shù)據(jù)進(jìn)行編碼,編碼方法可以采用CRC或者LFSR等簡單通用的算法。
      [0049]對(duì)數(shù)據(jù)進(jìn)行編碼后,控制器12執(zhí)行步驟S13,請(qǐng)求擦寫NAND Flash存儲(chǔ)器20的數(shù)據(jù),并分配存儲(chǔ)區(qū)域。在控制器12分配待寫入數(shù)據(jù)的存儲(chǔ)區(qū)域后,損壞均衡模塊33執(zhí)行步驟S14,根據(jù)所存儲(chǔ)的每一個(gè)存儲(chǔ)區(qū)域的擦寫次數(shù)判斷該存儲(chǔ)區(qū)域的擦寫次數(shù)是否過高。本實(shí)施例中,損壞均衡模塊33通過判斷該存儲(chǔ)區(qū)域的擦除次數(shù)是否高于某個(gè)閾值來判斷擦寫次數(shù)是否過高,優(yōu)選地,該閾值是NAND Flash存儲(chǔ)器20的所有存儲(chǔ)區(qū)域的擦寫次數(shù)的平均值。
      [0050]如果判斷該存儲(chǔ)區(qū)域的擦除次數(shù)過高,則執(zhí)行步驟S15,否則執(zhí)行步驟S19,將待寫入的數(shù)據(jù)寫入到該存儲(chǔ)區(qū)域,損壞均衡模塊33執(zhí)行步驟S20,將寫入數(shù)據(jù)的存儲(chǔ)區(qū)域的擦寫次數(shù)加1,即更新圖5所示的表格。
      [0051]步驟S15中,損壞均衡模塊33查找NAND Flash存儲(chǔ)器20中擦除次數(shù)最少的一個(gè)存儲(chǔ)區(qū)域,讀寫控制模塊22將編碼后的數(shù)據(jù)寫入到該存儲(chǔ)區(qū)域,損壞均衡模塊33執(zhí)行步驟S16,將寫入數(shù)據(jù)的存儲(chǔ)區(qū)域的擦寫次數(shù)加I。
      [0052]最后,控制器12擦除并清空原先分配的NAND Flash存儲(chǔ)器20的存儲(chǔ)區(qū)域內(nèi)所存儲(chǔ)的數(shù)據(jù),即執(zhí)行步驟S17,并執(zhí)行步驟S18,更新映射表的SPI邏輯地址與物理地址之間的映射關(guān)系,也就是對(duì)映射表存儲(chǔ)區(qū)域14、21內(nèi)所存儲(chǔ)的數(shù)據(jù)進(jìn)行更新。
      [0053]由于映射表存儲(chǔ)區(qū)域21也是NAND Flash存儲(chǔ)器20的一個(gè)存儲(chǔ)區(qū)域,也存在由于該存儲(chǔ)區(qū)域的擦寫次數(shù)過多而影響使用壽命的問題,因此損壞均衡模塊33同樣記錄映射表存儲(chǔ)區(qū)域21中各個(gè)存儲(chǔ)區(qū)域的擦寫次數(shù),并且對(duì)映射表存儲(chǔ)區(qū)域21的存儲(chǔ)區(qū)域進(jìn)行擦寫操作時(shí),發(fā)現(xiàn)該存儲(chǔ)區(qū)域的擦寫次數(shù)過高的情況下,選擇擦寫次數(shù)最少的區(qū)域?qū)懭霐?shù)據(jù)。
      [0054]控制器12從NAND Flash存儲(chǔ)器20讀取數(shù)據(jù)時(shí),接收需要讀取的數(shù)據(jù)的SPI邏輯地址,然后地址映射模塊31將SPI邏輯地址轉(zhuǎn)換成物理地址后,根據(jù)該物理地址讀取數(shù)據(jù)。讀取數(shù)據(jù)后,執(zhí)行圖8所示的流程,首先執(zhí)行步驟S21,將NAND Flash存儲(chǔ)器20的數(shù)據(jù)讀入數(shù)據(jù)緩沖器18,然后執(zhí)行步驟S22,對(duì)讀取的數(shù)據(jù)進(jìn)行解碼。由于向NAND Flash存儲(chǔ)器20寫入數(shù)據(jù)的時(shí)候,對(duì)寫入的數(shù)據(jù)進(jìn)行編碼,讀取數(shù)據(jù)后,解碼模塊36根據(jù)解碼密鑰,將數(shù)據(jù)緩沖器18的數(shù)據(jù)進(jìn)行解碼。解碼前后的數(shù)據(jù)如圖7所示。最后,控制器12將解碼后的數(shù)據(jù)通過通信接口 16發(fā)送出去,即執(zhí)行步驟S23。
      [0055]由于本發(fā)明對(duì)接收的SPI地址轉(zhuǎn)換成NAND Flash存儲(chǔ)器20的物理地址,再將數(shù)據(jù)寫入到NAND Flash存儲(chǔ)器20,通過簡單的查表方式即可以時(shí)間,提高數(shù)據(jù)寫入的效率。此夕卜,由于SPI閃速存儲(chǔ)器首次上電后即屏蔽已經(jīng)損壞的存儲(chǔ)區(qū)域,避免數(shù)據(jù)寫入到已損壞的存儲(chǔ)區(qū)域內(nèi),從而避免數(shù)據(jù)的丟失。另外,由于控制器將控制不同存儲(chǔ)區(qū)域的擦除次數(shù),避免同一存儲(chǔ)區(qū)域的擦寫次數(shù)過高,有效延長SPI閃速存儲(chǔ)器的使用壽命。
      [0056]當(dāng)然,上述實(shí)施例僅是本發(fā)明優(yōu)選的實(shí)施方式,實(shí)際應(yīng)用時(shí)還可以有更多的變化,例如損壞均衡模塊可以設(shè)定存儲(chǔ)區(qū)域的擦寫次數(shù)的閾值為固定值,而不是所有存儲(chǔ)區(qū)域的平均值,這樣的改變并不影響本發(fā)明的實(shí)施。
      [0057]最后需要強(qiáng)調(diào)的是,本發(fā)明不限于上述實(shí)施方式,如NAND Flash存儲(chǔ)器劃分的存儲(chǔ)區(qū)域的數(shù)量與大小的改變、編碼與解密方法的改變等變化也應(yīng)該包括在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
      【權(quán)利要求】
      1.8?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,所述3?1閃速存儲(chǔ)器具有封裝體,所述封裝體內(nèi)封裝有控制器以及與所述控制器電連接的^^0 存儲(chǔ)器,所述控制器的通信接口及電源接口與所述封裝體的引腳連接; 其特征在于,該方法包括: 所述控制器將接收的所述3?1閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成所述^\冊存儲(chǔ)器的物理地址; 所述控制器將接收的數(shù)據(jù)寫入到所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,其特征在于: 所述控制器記錄所述^\冊存儲(chǔ)器每一存儲(chǔ)區(qū)域的擦寫次數(shù),向所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)后,所述控制器更新該物理地址的存儲(chǔ)區(qū)域的擦寫次數(shù); 向所述^^0 存儲(chǔ)器寫入數(shù)據(jù)時(shí),所述控制器挑選擦寫次數(shù)最少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      3.根據(jù)權(quán)利要求2所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,其特征在于: 所述控制器挑選擦寫次數(shù)最少的存儲(chǔ)區(qū)域的步驟包括:向所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)前,所述控制器判斷該存儲(chǔ)區(qū)域的擦寫次數(shù)是否高于閾值,如是,查找擦寫次數(shù)最少的存儲(chǔ)區(qū)域的新的物理地址; 向新的物理地址寫入數(shù)據(jù)后,更新所述物理地址與所述邏輯地址的映射關(guān)系。
      4.根據(jù)權(quán)利要求2或3所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,其特征在于: 所述^^0 存儲(chǔ)器具有映射表存儲(chǔ)區(qū)域,所述控制器向所述映射表存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)前,判斷所述映射表存儲(chǔ)區(qū)域的某一存儲(chǔ)區(qū)域的擦寫次數(shù)高于閾值時(shí),查找擦寫次數(shù)最少的所述映射表存儲(chǔ)區(qū)域內(nèi)新的物理地址并向新的物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,其特征在于: 所述3?1閃速存儲(chǔ)器首次上電后,所述控制器對(duì)所述^\冊存儲(chǔ)器的所有存儲(chǔ)區(qū)域進(jìn)行掃描,屏蔽已損壞的存儲(chǔ)區(qū)域,建立可用存儲(chǔ)區(qū)域的物理地址與3?1閃速存儲(chǔ)器的邏輯地址的映射關(guān)系。
      6.根據(jù)權(quán)利要求1至3任一項(xiàng)所所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理方法,其特征在于: 所述控制器向所述^^0 存儲(chǔ)器寫入數(shù)據(jù)前,對(duì)待寫入的數(shù)據(jù)進(jìn)行編碼; 所述控制器讀取所述^^0 存儲(chǔ)器的數(shù)據(jù)后,對(duì)所讀取的數(shù)據(jù)進(jìn)行解碼。
      7.8?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置,所述3?1閃速存儲(chǔ)器具有封裝體,所述封裝體內(nèi)封裝有控制器以及與所述控制器電連接的^^0 存儲(chǔ)器,所述控制器的通信接口及電源接口與所述封裝體的引腳連接; 其特征在于,該裝置包括: 地址映射模塊,將所述控制器接收的所述3?1閃速存儲(chǔ)器的邏輯地址轉(zhuǎn)換成所述^八冊 存儲(chǔ)器的物理地址; 數(shù)據(jù)讀寫模塊,將所述控制器接收的數(shù)據(jù)寫入到所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域或者從所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域讀取數(shù)據(jù)。
      8.根據(jù)權(quán)利要求7所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置,其特征在于: 還包括損耗均衡模塊,記錄所述^\冊存儲(chǔ)器每一存儲(chǔ)區(qū)域的擦寫次數(shù),向所述物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)后,更新該物理地址的存儲(chǔ)區(qū)域的擦寫次數(shù),并在所述^^0 存儲(chǔ)器寫入數(shù)據(jù)時(shí),挑選擦寫次數(shù)最少的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      9.根據(jù)權(quán)利要求8所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置,其特征在于: 所述損耗均衡模塊還用于判斷所述^^0存儲(chǔ)器的映射表存儲(chǔ)區(qū)域的某一存儲(chǔ)區(qū)域的擦寫次數(shù)高于閾值時(shí),查找擦寫次數(shù)最少的所述映射表存儲(chǔ)區(qū)域內(nèi)新的物理地址并向新的物理地址對(duì)應(yīng)的存儲(chǔ)區(qū)域?qū)懭霐?shù)據(jù)。
      10.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的3?1閃速存儲(chǔ)器的數(shù)據(jù)讀寫管理裝置,其特征在于: 還包括屏蔽模塊,在所述3?1閃速存儲(chǔ)器首次上電后,對(duì)所述^\冊存儲(chǔ)器的所有存儲(chǔ)區(qū)域進(jìn)行掃描,屏蔽已損壞的存儲(chǔ)區(qū)域,建立可用存儲(chǔ)區(qū)域的物理地址與3?1閃速存儲(chǔ)器的邏輯地址的映射關(guān)系。
      【文檔編號(hào)】G06F3/06GK104461401SQ201410826825
      【公開日】2015年3月25日 申請(qǐng)日期:2014年12月25日 優(yōu)先權(quán)日:2014年12月25日
      【發(fā)明者】龔成 申請(qǐng)人:珠?;蜆s集成電路科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1