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

      單一ecc電路并行處理多組數(shù)據(jù)的方法

      文檔序號:6759815閱讀:116來源:國知局
      專利名稱:單一ecc電路并行處理多組數(shù)據(jù)的方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于閃存記憶體存儲領(lǐng)域,特別適用于系統(tǒng)數(shù)據(jù)總線寬度是以8的倍數(shù)進行擴展的閃存存儲領(lǐng)域。在存取閃存記憶體時通過一組ECC電路對多組數(shù)據(jù)進行編碼、偵錯以及修正的方法。
      背景技術(shù)
      閃存記憶體和機械式硬盤是目前市場上兩個主流的資料存儲媒介,其中閃存記憶體最主要的好處在于省電以及具有較小的體積。目前市場上的USB存儲盤、MP3播放器、PMP個人多媒體播放器以及SD/MMC/MS等存儲卡絕大部分都是以閃存記憶體作為存儲的媒介。
      閃存記憶體本身有一些先天性的缺陷,例如價格高并且在長時間使用之后,無法保證寫入資料的正確性等等。因此,要改善以上的缺點就需要閃存記憶體的使用壽命、增加生產(chǎn)時的良率、降低成本且加入ECC電路來使閃存記憶體具有高可靠性。并可以利用一套數(shù)學的算法(例如Reed-Solomon),搭配存儲的資料和ECC(Error Correction Code)編碼/譯碼硬件電路,及時對資料進行保護。目前閃存記憶體的種類分為SLC(Single Level Cell)與MLC(Multiple LevelCell)。其中MLC的規(guī)格書上要求,存取一個512位字節(jié)的區(qū)塊時需要可以修正4位字節(jié)錯誤的ECC編碼/譯碼硬件電路。
      目前市面上的ECC硬件處理機制,對于每一個字節(jié)都需要一組ECC硬件電路來處理,如圖9所示,M代表目前有多少顆閃存記憶體,N表示開始傳輸后經(jīng)過了多少個脈沖,而C000代表目前此傳輸會存在緩存區(qū)的位置。舉例來說,在一個32位寬的數(shù)據(jù)總線上就需要四組ECC編碼/譯碼硬件電路。此一作法除了會增加硬件電路之外,對于16位和8位寬數(shù)據(jù)總線的應(yīng)用來說就需要兩個不同硬件版本的控制器,因為需要不同的ECC硬件電路數(shù)目,所以也會對控制器的生產(chǎn)和庫存造成負擔。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于利用一組ECC(Error Correction Code)編碼/譯碼電路,對16/32/64位寬的數(shù)據(jù)流進行編碼、偵測以及修正以保護資料的正確性,且可以在正常一個ECC數(shù)據(jù)流時間內(nèi)處理數(shù)個不同字節(jié)的資料。透過本發(fā)明可以減少當數(shù)據(jù)總線寬度為8的倍數(shù)時所需要ECC的數(shù)目,達到降低成本的目的。
      當資料被寫入到閃存記憶體時,此電路可即時產(chǎn)生錯誤修正碼,且當數(shù)據(jù)總線上的資料傳輸?shù)侥骋粩?shù)量時,此ECC電路會自動的將資料保護寫入到存儲的閃存記憶體上。此優(yōu)點可以降低ECC電路的使用數(shù)目,以達到降低成本的目的。
      本發(fā)明是利用將ECC工作頻率倍頻的方式,然后將ECC的時序切割,每個時序依次處理數(shù)據(jù)總線上的一個特定的字節(jié),所以在不影響控制器數(shù)據(jù)總線的基本時序及架構(gòu)的前提下,可以利用一組ECC完成資料錯誤的檢查以及編碼的動作。
      本發(fā)明可以被應(yīng)用在任何使用閃存記憶體的存儲裝置上,以降低控制器的成本。


      圖1系統(tǒng)架構(gòu)2系統(tǒng)組件3系統(tǒng)編碼示意4系統(tǒng)譯碼示意5在32位數(shù)據(jù)總線寬度時,ECC工作頻率圖6在16位數(shù)據(jù)總線寬度時,ECC工作頻率圖7在8位數(shù)據(jù)總線寬度時,ECC工作頻率圖8在64位數(shù)據(jù)總線寬度時,ECC工作頻率圖9目前市場上ECC實際操作方式圖10ECC編碼流程11ECC解碼流程圖主要組件符號說明A10閃存記憶體存儲媒介數(shù)據(jù)存儲的媒介。
      A20閃存記憶體控制器啟動DMA將資料由緩存區(qū)搬移到閃存中,讀取時,根據(jù)譯碼的結(jié)果決定是否需要執(zhí)行修正的動作。
      A30微處理控制器系統(tǒng)的主要控制者,當其開始對閃存記憶體控制送出寫入或是讀出的命令時,便開始系統(tǒng)ECC相關(guān)的動作。
      A40ECC硬件電路不論編碼或是譯碼,此電路會對數(shù)據(jù)總線上所經(jīng)過的每一個數(shù)據(jù),利用錯誤偵錯理論的數(shù)學算法,實時的算出編碼或是偵錯后的結(jié)果。
      A50傳送緩存區(qū)當數(shù)據(jù)由閃存記憶體中讀出時,不直接將數(shù)據(jù)傳送到遠程,先將數(shù)據(jù)放在此傳送緩存區(qū)內(nèi)。
      A55接收緩存區(qū)當收到由遠程所要寫入的數(shù)據(jù)時,會先將數(shù)據(jù)放在此緩存區(qū)中,并不會馬上將數(shù)據(jù)寫入到閃存記憶體中。直到緩存區(qū)中的數(shù)據(jù)長度為512字節(jié)時,才啟動ECC機制,將數(shù)據(jù)寫入到閃存記憶體中。
      A60Host Interface此為和外面溝通的接口,例如USB或是SD等等。利用此接口便可以和其它電子設(shè)備交換數(shù)據(jù)。
      A70ECC緩存器ECC硬件中,編碼、偵測或是修正時所需要用到的緩存器。例如在Reed-Solomon算法中,此ECC緩存器便是Parity以及Syndrome緩存器。
      A80偵測電路此一電路用在檢查在讀取的過程中,是否有錯誤發(fā)生。如果沒有錯誤發(fā)生,通知Host Interface將傳送緩存區(qū)內(nèi)的數(shù)據(jù)送出。
      A90修正電路當偵錯電路發(fā)現(xiàn)錯誤時,便呼叫此電路。利用ECC暫存器,便可以對傳送緩沖存區(qū)內(nèi)資料作修正的動作。當所有的錯誤都修正之后,通知Host Interface傳送緩存區(qū)內(nèi)的數(shù)據(jù)送出。
      A95編碼電路當數(shù)據(jù)由傳送緩沖區(qū)寫入閃存記憶體并完成時,編碼電路會自動啟動,將ECC緩存器的值寫入到閃存中ECC修正碼所存放的位置。
      B10NAND Flash Pool,放置閃存記憶體的位置。在32位寬的數(shù)據(jù)總線上需要放置兩顆x16的閃存記憶體,或是四顆x8的閃存記憶體。
      B20閃存記憶體控制器,接收來自核心處理器要由閃存記憶體讀入或是寫出的命令,此一命令會啟動DMA搬移數(shù)據(jù)。
      B30DMA控制器,負責快速搬移數(shù)據(jù)。
      B40在ECC硬件和閃存記憶體之間的數(shù)據(jù)總線,此數(shù)據(jù)總線的寬度是可以經(jīng)由閃存記憶體控制器所設(shè)定的。
      B50ECC緩存器ECC硬件中,編碼、偵測或是修正時所需要用到的緩存器。例如在Reed-Solomon算法中,此ECC緩存器便是Parity以及Syndrome緩存器。
      B60ECC硬件電路,此硬件電路不會修改數(shù)據(jù)總線上的數(shù)據(jù),其會將數(shù)據(jù)切割成數(shù)個8位的數(shù)據(jù),送到傳輸緩存區(qū)上?;蚴菍⒔邮站彺鎱^(qū)上的數(shù)據(jù),以倍頻的方式以8位的方式存取,然后組合成B40數(shù)據(jù)總線寬度的數(shù)據(jù)。
      B70傳送緩存區(qū)當數(shù)據(jù)由閃存記憶體中讀出時,不直接將數(shù)據(jù)傳送到遠程,先將數(shù)據(jù)放在此傳送緩存區(qū)內(nèi)。
      B80接收緩存區(qū)當收到由遠程所要寫入的數(shù)據(jù)時,會先將數(shù)據(jù)放在此緩存區(qū)中,并不會馬上將數(shù)據(jù)寫入到閃存記憶體中。直到緩存區(qū)中的數(shù)據(jù)長度為512字節(jié)時,才啟動ECC機制,將數(shù)據(jù)寫入到閃存記憶體中。
      B90閃存記憶體控制器會依據(jù)目前B40數(shù)據(jù)總線的寬度,自動設(shè)定倍頻的倍數(shù)。
      具體實施例方式
      基本上,本發(fā)明所使用的方法是將ECC的執(zhí)行速度以倍頻的方式進行,不同寬度的數(shù)據(jù)總線的倍頻方式如圖5、圖6、圖7和圖8所示。ECC的一個基本處理單元是8位,故將ECC的執(zhí)行頻率乘上數(shù)據(jù)總線的寬度除以8的倍數(shù)。舉例來說倘若目前數(shù)據(jù)總線的工作頻率為30MHz,系統(tǒng)數(shù)據(jù)總線的寬度為32位,則系統(tǒng)會自動的將ECC電路的工作頻率設(shè)定在120MHz。且ECC電路會自動的將頻率分割成數(shù)份,于第一個脈沖會處理數(shù)據(jù)總線上第0位到第7位的數(shù)據(jù),下一個脈沖會處理第8位到第15位的數(shù)據(jù),然后依此類推。
      使用者可以設(shè)定目前數(shù)據(jù)總線的寬度以及數(shù)據(jù)總線的工作頻率,ECC電路必須可以自動的設(shè)定正確的工作頻率。
      為使審查人員可以更進一步的了解本發(fā)明的流程以及所使用的方法,將本方法的過程以及使用的方法,利用下方面的流程圖加以說明。
      在讀取數(shù)據(jù)時,如圖3所示,閃存記憶體控制器(100)首先啟動DMA將數(shù)據(jù)由閃存記憶體經(jīng)由ECC搬移到傳送緩存區(qū)(103)。ECC電路會自動根據(jù)目前所設(shè)定的數(shù)據(jù)總線寬度進行倍頻(101),第一個脈沖會處理最低的8位數(shù)據(jù)(107),下一個脈沖處理次低的8個數(shù)據(jù)(107),并依此往下類推。數(shù)據(jù)經(jīng)過ECC電路并不會馬上的傳送到遠程,會先暫存在一個傳送緩存區(qū)中(103),此緩存區(qū)大小為512字節(jié)。當一個基本的訊息(528字節(jié))處理完成時,ECC的檢查電路(104)會自動檢查ECC電路上的狀態(tài),并確認是否有錯誤發(fā)生。如果此時沒有發(fā)現(xiàn)錯誤,系統(tǒng)會將傳送緩沖區(qū)的數(shù)據(jù)送到遠程。如果發(fā)現(xiàn)數(shù)據(jù)有錯誤時,修正電路會自動的捉取ECC上修正錯誤時必要的信息,進行修正錯誤的動作(105)。當修正動作結(jié)束時,將數(shù)據(jù)送到遠程(106)。詳細的流程圖請參閱圖11。
      在寫入數(shù)據(jù)時,如圖4所示,閃存記憶體控制器(200)首先啟動DMA將數(shù)據(jù)由接收緩存區(qū)經(jīng)由ECC(203)搬移到傳送閃存記憶體中,ECC電路會依據(jù)數(shù)據(jù)總線寬度自動作倍頻(201)的動作,在第一個脈沖時間將第1個字節(jié)數(shù)據(jù)寫入到第一顆閃存記憶體(206),下一個脈沖時,將下一個字節(jié)數(shù)據(jù)寫入到第二顆閃存記憶體(207),依此類推。當數(shù)據(jù)傳送到第512位時,編碼電路會自動啟動,讀取ECC緩存器(202),并且將這些數(shù)據(jù)依照下面的原則寫入不同的閃存記憶體中,緩存器的第1個字節(jié)寫到第一顆閃存記憶體,第2個字節(jié)寫到第二顆閃存記憶體,第N個字節(jié)寫到第N%(閃存記憶體數(shù)目)顆閃存記憶體。詳細的流程圖請參閱圖10。
      權(quán)利要求
      1.一種利用單一ECC編碼/譯碼硬件電路并行處理多組數(shù)據(jù)的方法,以便于對8/16/32/64等8的倍數(shù)位寬的閃存記憶體數(shù)據(jù)總線上的數(shù)據(jù)流進行處理并產(chǎn)生一組錯誤修正碼以保證數(shù)據(jù)的正確性。該方法包含根據(jù)閃存記憶體數(shù)據(jù)總線寬度自動將ECC工作頻率倍頻,然后將ECC的時序切割,在每一個時序分別處理數(shù)據(jù)總線上的一個特定的位元組,這樣就可以在不影響控制器數(shù)據(jù)流的基本時序和架構(gòu)下利用一組ECC完成資料錯誤的檢查以及編碼的動作。
      2.如權(quán)利要求1所述的單一ECC編碼/譯碼硬件電路,其特征在于ECC電路的工作頻率可依閃存記憶體總線寬度自行倍頻,倍頻數(shù)為閃存記憶體數(shù)據(jù)寬度除以基本ECC處理的位元組(即8位)。
      3.如權(quán)利要求1所述的對8/16/32/64等8的倍數(shù)位寬的閃存記憶體數(shù)據(jù)總線上的數(shù)據(jù)流進行的處理過程包含在讀取閃存記憶體數(shù)據(jù)時的處理和將數(shù)據(jù)寫入閃存記憶體時的處理。
      4.如權(quán)利要求3所述的讀取閃存記憶體數(shù)據(jù)時的處理,其特征在于在讀取閃存記憶體數(shù)據(jù)時,如同權(quán)利要求2所述將ECC工作頻率依閃存記憶體數(shù)據(jù)總線寬度倍頻之后,會在其倍頻后的第一個脈沖讀取最低的字節(jié)(bit0~7)的閃存,第二個脈沖讀取次低的字節(jié)(bit8~15)的閃存,以下如此類推。在讀取完整個總線寬度的數(shù)據(jù)后,將此數(shù)據(jù)存儲到緩沖區(qū)。當讀出整個數(shù)據(jù)寬度的數(shù)據(jù)后,會重新從第一顆閃存讀取數(shù)據(jù),循環(huán)直至讀完所有的數(shù)據(jù)為止。
      5.如權(quán)利要求3所述的將數(shù)據(jù)寫入閃存記憶體時的處理,其特征在于在要將數(shù)據(jù)寫入閃存記憶體時,如同權(quán)利要求2所述將ECC工作頻率以閃存記憶體數(shù)據(jù)總線寬度倍頻之后,會在其倍頻后的第一個脈沖將數(shù)據(jù)的最低字節(jié)(bit0~7)寫入到第一顆閃存,第二個脈沖會寫入次低字節(jié)(bit8~15)的資料,以下如此類推,直至寫完512位元組。
      6.在完成權(quán)利要求5所述的處理后,系統(tǒng)會將ECC緩存器中的數(shù)據(jù)依如下原則寫入閃存記憶體中,第一個字節(jié)的數(shù)據(jù)寫入第一顆閃存,第二個字節(jié)的數(shù)據(jù)寫入第二顆閃存,第M的字節(jié)的數(shù)據(jù)寫入到第M%(總線寬度/8)+1顆閃存中,直至所有的緩存器寫完為止。
      7.如權(quán)利要求1至6所述的以單一ECC編碼/譯碼硬件電路并行處理多組數(shù)據(jù)的技術(shù),其中以其倍頻數(shù)目會依目前的總線寬度自動調(diào)整工作頻率的技術(shù)適用于任何的閃存記憶體存儲裝置,例如U盤(包含但不限于USB Pendriver1.1/2.0)、PMP Player、存儲卡和MP3 Player等。
      全文摘要
      本發(fā)明公開了一種利用一組ECC(Error Correction Code)編碼/譯碼電路,對各種寬度(8/16/32/64等位寬)的閃存記憶體數(shù)據(jù)總線上的數(shù)據(jù)流產(chǎn)生一組錯誤修正碼來保護數(shù)據(jù)的正確性的方法。所述的方法如下根據(jù)閃存記憶體數(shù)據(jù)寬度自動將ECC工作頻率倍頻,然后將ECC的時序切割,在每一個時序分別處理數(shù)據(jù)總線上的一個特定的位組,這樣就可以在不影響控制器數(shù)據(jù)流的基本時序和架構(gòu)下利用一組ECC完成資料錯誤的檢查以及編碼的動作。采用本發(fā)明的方法,可以減少ECC電路的使用數(shù)目,以達到降低成本的目的,有廣闊的應(yīng)用前景。
      文檔編號G11C29/44GK1996496SQ20061006206
      公開日2007年7月11日 申請日期2006年8月11日 優(yōu)先權(quán)日2006年8月11日
      發(fā)明者林清益 申請人:福昭科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1