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

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

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

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


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