欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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


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