專利名稱:一種帶有AES和ECC的多通道NANDflash控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多通道NANDflash控制器,尤其涉及一種帶有AES和ECC功能的 多通道NANDflash控制器。
背景技術(shù):
NANDflash在近幾年里得到了突飛猛進的發(fā)展,由1位/單元的SLC技術(shù)發(fā)展到 了 2位/單元甚至3位/單元的MLC技術(shù),同時NANDflash的生產(chǎn)工藝也不斷進步。隨著 技術(shù)的發(fā)展,NANDflash容量不斷增大,單位容量的成本也大幅降低,NANDflash的應用領(lǐng) 域也越來越多。當前市面上NANDflash存儲設(shè)備對帶寬的要求越來越高,NANDflash控制器一般 采用增加通道數(shù)量來提高帶寬。處于成本的考慮,當前2位/單元,3位/單元的NANDflash得到了廣泛應用,但這 類flash的可靠性比較差,往往需要糾錯能力的強大的ECC(Err0rC0rreCt Code,糾錯碼) 電路的協(xié)助才能正常使用。出于保護用戶數(shù)據(jù)的目的,加密解密電路,尤其是支持流加密的AES(AdvanCed Encryption Standard高級加密標準)電路,開始在NANDflash控制器中使用。如圖1所示,為單通道NANDflash控制器的結(jié)構(gòu)框圖。在已有的實現(xiàn)當中ECC電 路被放在錯誤!未找到引用源。處或者錯誤!未找到引用源。處,AES電路設(shè)立在ECC電 路之前。但基于多通道NANDflash的應用,Nandf Iash控制器所需存儲器的容量很大,需采 用部分內(nèi)容外置的形式,如圖2所示。在此種情形下,則需要提出一種新的解決方案,將AES 電路很好地融合到電路的設(shè)計中,在保證數(shù)據(jù)安全性的同時還能保證NANDflash的正常使 用。
發(fā)明內(nèi)容
本發(fā)明目的提供一種帶有AES和ECC的多通道NANDflash控制器,通過采用AES 電路和ECC電路,使得NANDflash控制器具備良好的加密性能和糾錯能力。本發(fā)明所提出 的一種帶有AES和ECC的多通道NANDflash控制器,包含以下內(nèi)容微控制器,用于控制整個多通道NANDflash控制器中各個單元;設(shè)備控制器,用于用于以特定協(xié)議(例如IDE、USB、SATA和PCIE等)和主控端進 行數(shù)據(jù)傳輸;設(shè)備端DMA (Direct Memory Access)控制器,用于控制設(shè)備控制器和存儲器之間 的數(shù)據(jù)傳輸;存儲器,包括片內(nèi)存儲器和片外存儲器,用于暫存主控端和NANDflash間傳輸?shù)?數(shù)據(jù);NANDflash DMA控制器,用于控制NANDflash數(shù)據(jù)緩存區(qū)與存儲器之間的數(shù)據(jù)傳 輸;
AES單元,用于對即將寫入NANDflash的數(shù)據(jù)進行流加密,對從NANDflash讀出的 數(shù)據(jù)進行流解密;
AES輸入緩存單元,用于將NANDflash DMA控制器取回的數(shù)據(jù)拼成128位送給AES 電路;AES輸出緩存單元,用于將AES解密后的128位數(shù)據(jù)拆分供NANDflashDMA控制器 傳輸;ECC編碼器,用于對即將寫入NANDflash的數(shù)據(jù)進行編碼生成校驗位;ECC解碼器,用于對從NANDflash讀出的數(shù)據(jù)進行檢錯和糾錯;數(shù)據(jù)緩存單元,用于緩存從存儲器讀出的且來不及寫入NANDflash的數(shù)據(jù),以及 緩存從NANDflash讀出且來不及寫入存儲器的數(shù)據(jù);NANDflash接口控制邏輯單元,用于控制和NANDflash之間的數(shù)據(jù)傳輸。NANDflash DMA控制器以串行方式訪問數(shù)據(jù)緩存單元。NANDfIash接口控制邏輯 以并行方式訪問數(shù)據(jù)緩存單元。設(shè)備控制器與主控端的接口可以為SATA (Serial Advanced TechnologyAttachment)或 USB 或PCIE(Pedpherd Component Interconnect express)或 PATA(Parallel advanced technology attachment)接口。ECC 編碼器可以采用 RS(Reed-Solomon)編碼或 BCH(Bose,Ray-Chaudhuri, Hocquenghem)編碼。NANDflash接口控制邏輯包含一個或多個通道,每個通道由多個片選信號(CE#)、 多個就緒/忙信號(R/B#)、一組控制信號、一組數(shù)據(jù)信號組成。多個通道可以并行地從 NANDflash讀出數(shù)據(jù)或者并行地向NANDflash寫入數(shù)據(jù)。寫NANDflash時,數(shù)據(jù)從主控端流向NANDflash。主控端將數(shù)據(jù)傳輸?shù)皆O(shè)備控制 器,設(shè)備端DMA控制器將數(shù)據(jù)傳送到存儲器,NANDflash DMA控制器將數(shù)據(jù)從存儲器讀出, 經(jīng)AES電路加密,經(jīng)過ECC編碼電路生成校驗碼后寫入數(shù)據(jù)緩存區(qū)。NANDflash接口控制器 邏輯單元把數(shù)據(jù)從數(shù)據(jù)緩存區(qū)讀出并寫入NANDflash。讀NANDflash時,數(shù)據(jù)從NANDflash流向主控端。NANDflash接口控制邏輯單元將 數(shù)據(jù)從NANDflash讀出并寫入數(shù)據(jù)緩存區(qū),NANDflash DMA控制器將數(shù)據(jù)從數(shù)據(jù)緩存區(qū)讀 出,經(jīng)ECC解碼電路差錯糾錯、AES電路解密后寫入存儲器,設(shè)備控制器DMA將數(shù)據(jù)從存儲 器中讀出并送到設(shè)備控制器,設(shè)備控制器將數(shù)據(jù)送給主控端。本發(fā)明同時采用AES電路和ECC電路,能夠?qū)ANDflash控制器傳輸?shù)臄?shù)據(jù)進行 加密和糾錯,保證了數(shù)據(jù)傳輸?shù)陌踩?,同時又能夠有效地延長NANDflash的使用壽命。
圖1單通道NANDflash控制器結(jié)構(gòu)框2帶片外存儲器的多通道NANDflash控制器結(jié)構(gòu)框3帶AES和ECC的多通道NANDflash控制器結(jié)構(gòu)框4寫操作數(shù)據(jù)通路示意圖
圖5讀操作數(shù)據(jù)通路示意圖
具體實施例方式
以下結(jié)合各附圖對本發(fā)明提供的發(fā)明內(nèi)容進行詳細描述本發(fā)明中的AES單元和ECC單元可被放在圖2中②處,或在錯誤!未找到引用源。 處和錯誤!未找到引用源。處各放一套ECC和AES電路。放在錯誤!未找到引用源。處是 最佳選擇,如圖3中所示。微控制器(190)采用嵌入式處理器實現(xiàn),其上運行固件(firmware)。該固件主 要有兩部分功能,一是將主控端的數(shù)據(jù)傳輸協(xié)議轉(zhuǎn)成對NANDflash(200)的操作;二是實 現(xiàn)NANDflash (200)的FTL (閃存?zhèn)鬏攲?。FTL的功能包括地址映射(Address Mapping)、 垃圾塊回收(GabageCollection)、損耗均衡(Wear-leveling)、壞塊管理(Bad Block Management)等。設(shè)備控制器(110)負責按照特定協(xié)議接收或傳輸數(shù)據(jù),通常設(shè)備控制器中設(shè)計有 緩存,用于處理主控端(000)和設(shè)備端速度不匹配的情況。設(shè)備端DMA控制器(120)負責在設(shè)備控制器(110)的緩存和存儲器(130或131) 之間傳輸數(shù)據(jù)。微控制器(190)配置好設(shè)備端DMA所需要的數(shù)據(jù)地址、數(shù)據(jù)大小等信息后, 向設(shè)備端DMA控制器(120)發(fā)送開始傳輸?shù)闹噶睢TO(shè)備端DMA控制器(120)傳輸完數(shù)據(jù)之 后發(fā)送中斷通知微控制器(190)。存儲器分為片內(nèi)存儲器(130)和片外存儲器(131)。存儲器主要用于緩存數(shù)據(jù)。 存儲器可用于存放地址映射表,也可作為固件的運行空間。存儲器的大小由系統(tǒng)的數(shù)據(jù)帶 寬、寫重傳策略、地址映射策略等因素確定。NANDflash DMA控制器(140)負責在NANDflash數(shù)據(jù)緩存單元(170)和存儲器 (130或者131)之間傳輸數(shù)據(jù)。微控制器(190)配置好DMA(HO)所需要的數(shù)據(jù)地址、數(shù)據(jù)大 小等信息后,向NANDflash DMA控制器(140)發(fā)送開始傳輸?shù)闹噶?。在寫NANDfIash (200) 時,NANDflash DMA控制器(140)將數(shù)據(jù)從存儲器(130或者131)讀出,先經(jīng)過AES單元 (150)加密,再經(jīng)過ECC編碼器(161)生成校驗碼后寫入數(shù)據(jù)緩存區(qū)(170),其數(shù)據(jù)通路如 圖4所示。讀NANDflash (200)時,NANDflash DMA控制器(140)將數(shù)據(jù)從數(shù)據(jù)緩存單元 (170)讀出,先經(jīng)過ECC解碼電路(160)查錯糾錯,再經(jīng)過AES電路(150)解密后寫入存儲 器。設(shè)備端DMA控制器(140)傳輸完數(shù)據(jù)之后置中斷通知微控制器(190),其數(shù)據(jù)通路如圖 5所示。AES單元(150)負責對寫入NANDfIash(200)的數(shù)據(jù)進行加密,對從 NANDflash(200)讀出的數(shù)據(jù)進行解密。AES電路一次加密/解密的數(shù)據(jù)為16字節(jié)。為了擴 大AES單元(150)的數(shù)據(jù)帶寬,本發(fā)明中AES(150)可在一個時鐘周期內(nèi)接收16字節(jié)。AES 電路的密鑰、隨機數(shù)由微控制器(190)在系統(tǒng)上電或系統(tǒng)復位后加以配置。AES輸入緩存單元(151)負責將數(shù)據(jù)拼成16字節(jié),在一個時鐘周期內(nèi)一次性送給 AES單元。在寫NANDflash (200)時,AES輸入緩存單元(151)將從存儲器(130或者131) 取出的數(shù)據(jù)拼成16字節(jié)送給AES單元進行加密。在讀NANDflash (200)時,AES輸入緩存 單元(151)將從數(shù)據(jù)緩存單元(170)取出的數(shù)據(jù)拼成16字節(jié)送給AES單元進行解密。AES輸出緩存單元(152)負責將AES單元(150) —次送出的16字節(jié)數(shù)據(jù)拆分后依 次輸出。在寫NANDflash (200)時,AES輸出緩存單元(152)將AES單元一次送出的16字 節(jié)數(shù)據(jù)拆分后依次送到數(shù)據(jù)緩存單元(170)。在讀NANDflash (200)時,AES輸出緩存單元(152)將AES單元一次送出 的16字節(jié)數(shù)據(jù)拆分后依次送到存儲器(130或者131)。ECC解碼器(160)負責對從NANDflash (200)讀出的數(shù)據(jù)進行糾錯,若有錯且在糾 錯范圍內(nèi),則將數(shù)據(jù)糾錯后送給AES輸入緩存單元(151);若有錯但在糾錯范圍以外,則置 中斷通知微控制器(190)。ECC編碼器(161)負責對寫入NANDf Iash (200)的數(shù)據(jù)進行編碼生成校驗位。數(shù)據(jù) 和數(shù)據(jù)的校驗位依次寫入數(shù)據(jù)緩存單元(170)。數(shù)據(jù)緩存單元(170)用于緩存數(shù)據(jù),寫NANDflash(200)時,NANDflashDMA控制 器(140)串行地將每個通道的數(shù)據(jù)寫入數(shù)據(jù)緩存單元(170),NANDflash接口控制邏輯單 元(180)并行地將各通道的數(shù)據(jù)從數(shù)據(jù)緩存單元(170)讀出并傳送到NANDflash (200)。讀 NANDflash (200)時,NANDflash接口控制邏輯單元(180)并行地將各通道的數(shù)據(jù)寫入數(shù)據(jù) 緩存單元(170),NANDflash DMA控制器(140)串行地將每個通道的數(shù)據(jù)從數(shù)據(jù)緩存單元 (170)讀出并寫入存儲器(130或者131)。NANDflash接口控制邏輯單元(180)負責控制NANDflash(200)的接口時序。 NANDflash接口控制邏輯單元(180)包含一個或多個通道,每個通道由多個片選信號 (CE#)、多個就緒/忙信號(R/B#)、一組控制信號、一組數(shù)據(jù)信號組成。多個通道可以并行地 從NANDflash(200)讀出數(shù)據(jù)或者并行地向NANDfIash(200)寫入數(shù)據(jù)。
權(quán)利要求
1.一種帶有AES和ECC的多通道NANDflash控制器,包含微控制器、設(shè)備控制器、設(shè)備 端DMA控制器、片內(nèi)存儲器、NANDflash DMA控制器、ECC編碼器、ECC解碼器、數(shù)據(jù)緩存單元 和NANDflash接口控制邏輯單元,其特征在于還包含AES單元、AES輸入緩存單元、AES輸 出緩存單元。
2.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述AES單元設(shè)于系統(tǒng)存儲器和NANDflash接口控制器邏輯單元之間。
3.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述設(shè)備控制器與主控端的接口可以為SATA或USB或PCIE或PATA接口。
4.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述NANDflash接口控制邏輯包含一個或多個通道,每個通道由多個片選信號(CE#)、多個 就緒/忙信號(R/B#)、一組控制信號、一組數(shù)據(jù)信號組成。
5.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述NANDflash DMA控制器單元以串行方式訪問數(shù)據(jù)緩存單元。
6.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述NANDflash接口控制器邏輯單元以并行方式訪問數(shù)據(jù)緩存單元。
7.如權(quán)利要求1所述的一種帶有AES和ECC的多通道NANDflash控制器,其特征在于 所述ECC編碼器為RS編碼器或BCH編碼器。
全文摘要
本發(fā)明提供一種帶有AES和ECC的多通道NANDflash控制器,包含微控制器、設(shè)備控制器、設(shè)備端DMA控制器、片內(nèi)存儲器、NANDflash DMA控制器、AES單元、AES輸入緩存單元、AES輸出緩存單元、ECC編碼器、ECC解碼器、數(shù)據(jù)緩存單元和NANDflash接口控制邏輯單元。采用帶有AES電路和ECC電路以及片內(nèi)存儲器的實現(xiàn)方式,使得NANDflash控制器具備良好的加密性能,同時能夠有效延長NANDflash的使用壽命。
文檔編號G06F13/16GK102103559SQ20091020137
公開日2011年6月22日 申請日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者居曉波, 遲志剛 申請人:上海華虹集成電路有限責任公司