錢軍琪,穆春林,相 毅
(航空工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710065)
隨著機(jī)載航電系統(tǒng)信息化和集成度的不斷提高,產(chǎn)生的重要數(shù)據(jù)也與日俱增,這對存儲部件的容量、速度和可靠性提出了更高的要求。同時,國際形勢復(fù)雜多變,自主可控是信息安全的前提,堅持自主可控和全國產(chǎn)化設(shè)計在信息安全方面意義重大。本文針對高可靠應(yīng)用場景,提出了一種支持PCIE接口的全國產(chǎn)化高速大容量存儲解決方案。該方案支持NVMe協(xié)議,具備掉電保護(hù)功能。
NVMe存儲模塊主要由PCIe主控制器芯片、Nand Flash陣列、電源轉(zhuǎn)換電路以及毀鑰電路組成[2]。主控芯片除了完成與Host NVMe協(xié)議規(guī)范傳輸數(shù)據(jù),還要由FTL完成Flash的管理、讀干擾處理、數(shù)據(jù)保持、處理磨損平衡及垃圾回收其他算法;電源完成二次轉(zhuǎn)換,有1.8 V(控制器I/O)、0.9 V(控制器內(nèi)核)、1.2 V(DDR供電)、2.5 V(DDR供電)和3.3 V(Nand Flash Core)供電;毀鑰電路用于硬件燒毀Nand Flash。NVME存儲模塊原理如圖1所示。
圖1 NVME存儲模塊原理
NVME存儲模塊主要由PCIe控制器、Flash存儲陣列、板上DRAM以及HOST接口組成,設(shè)計遵循更高的可靠性,元器件100%國產(chǎn)化的設(shè)計原則,主要包含NVME控制器電路、存儲電路、電源管理電路和時鐘復(fù)位電路,存儲模塊硬件方案如圖2所示。
圖2 NVME存儲模塊硬件方案
PCIe控制器采用28 nm工藝的PCIe控制器(SC6912022),該控制器具有兩個ARM Cortex R4 CPU核,主頻可達(dá)600 MHz;支持PCIe Gen3 x4和NVMe 1.3c協(xié)議標(biāo)準(zhǔn),有8個Flash通道,每通道支持8CE;支持ONFI和Toggle接口Flash;最大讀速度可達(dá)3.5 GB/s,最大寫速度可達(dá)3.4 GB/s;FTL支持壞塊管理、磨損均衡、ECC糾錯、Trim、垃圾回收、SMART等功能;工作溫度范圍-55~+90 ℃。主控制器接口如圖3所示。
圖3 主控制器芯片原理
存儲器電路主要包含系統(tǒng)DDR4存儲器和數(shù)據(jù)存儲NAND FLASH存儲器。存儲模塊的DDR提供了FTL映射表緩存、數(shù)據(jù)緩存的功能,供主控制器高速地完成邏輯地址與Flash頁地址、塊地址、CE、通道之間的轉(zhuǎn)譯工作,從而實(shí)現(xiàn)高速數(shù)據(jù)讀寫。此外,DDR中還會緩存高速讀寫的有效數(shù)據(jù),以緩解主機(jī)IO與盤之間的時序壓力。模塊采用兩顆大容量的DDR4 DRAM芯片,滿足高性能、大數(shù)據(jù)吞吐的需求[3-4]。
存儲模塊共使用16片Nand Flash,器件選用國產(chǎn)大容量、高性能、高可靠性的NAND Flash存儲器產(chǎn)品。該存儲器采用3D NAND Flash工藝,兼容ONFI 4.0 標(biāo)準(zhǔn),支持SDR、NV-DDR2、NV-DDR3接口標(biāo)準(zhǔn),通過復(fù)用的8bit數(shù)據(jù)總線進(jìn)行命令、地址和數(shù)據(jù)的傳輸,其最大數(shù)據(jù)傳輸速率可達(dá)800 MB/s。NAND Flash中的每個Die 包含一個邏輯單元塊LUN,其中1個Page包含了16 KBytes數(shù)據(jù)存儲區(qū)和2 048 Bytes冗余存儲區(qū),冗余存儲區(qū)通常用來存放糾錯數(shù)據(jù)。1個Block包含了384Pages,1個Plane包含1 006 Blocks,而一個LUN包含2個Planes,每個Plane都包含了各自的Page和Cache寄存器,在執(zhí)行Cache編程操作的時候,數(shù)據(jù)先被寫入Cache 寄存器,然后復(fù)制到Page寄存器。當(dāng)數(shù)據(jù)被復(fù)制到Page 寄存器,則開始向存儲陣列編程,此時Cache寄存器變回空狀態(tài),用戶可以寫入新的Page數(shù)據(jù)到Cache寄存器中,從而加速編程時間。
存儲器可通過操作命令DAh切換到SLC模式,在SLC模式下工作溫度可滿足-55~+125 ℃,質(zhì)量等級可滿足GJB7400的N1級要求。
電源管理電路包括掉電保護(hù)電路和電源存儲電路。存儲模塊采用5V DC供電,模塊需要電源種類分別為3.3 V,2.5 V,1.8 V,1.2 V,0.9 V,設(shè)計采用兩片XC9884QNC、兩片HCE4622和一片HCE4632實(shí)現(xiàn),功耗預(yù)計8.9 W。
2.3.1 掉電保護(hù)電路
掉電設(shè)計依照兩個原則,一是電子盤控制器選用掉電監(jiān)測芯片用以監(jiān)測電源波動,實(shí)時進(jìn)行數(shù)據(jù)存儲。二是增加掉電儲能電路,在斷電瞬間進(jìn)行數(shù)據(jù)保存,在保證滿足需求的情況下,盡量減少外圍器件以提高系統(tǒng)可靠性[5]。
儲能電路采用株洲宏達(dá)的XC6164掉電保護(hù)芯片。XC6164是一款用于端口掉電保持的專用芯片。芯片可以控制能量在系統(tǒng)端和儲能端之間雙向傳輸。此芯片具有過壓、過流、限流和熱關(guān)斷等功能。芯片內(nèi)TVS管對過壓進(jìn)行泄放,避免高壓引入對設(shè)備造成危害。XC6164芯片在瞬態(tài)過壓時具有嵌位但不關(guān)斷作用,不影響后級負(fù)載的運(yùn)行。儲能工作原理:電子盤上電后,儲能端將輸入的電壓抬高到12 V,儲存在儲能電容中。當(dāng)斷電后,芯片通過電容放電對后級設(shè)備供電,并向控制器發(fā)出掉電中斷信號,控制器關(guān)閉文件并進(jìn)行數(shù)據(jù)保存。
2.3.2 電源轉(zhuǎn)換電路
電源轉(zhuǎn)換電路通過5V輸入,實(shí)現(xiàn)所需電壓的輸出,主要有NVMe內(nèi)核電壓(0.9 V)、NVMe控制器電壓(1.2 V)、NVMe控制器IO電壓(1.8 V)、DDR4 DDR_VPP電壓(2.5 V)、Nand Flash IO電壓(1.8 V)、Nand Flash 內(nèi)核電壓(3.3 V)和DDR4核電壓(1.2 V)。源拓?fù)浣Y(jié)構(gòu)如圖4所示。
HCE4622 ML是一款完整的雙通道2.5 A輸出DC/DC變換器,采用LGA/BGA封裝。封裝中內(nèi)置了開關(guān)控制器、功率FET、電感器和所有的支撐元件。HCE4622 ML的輸入電壓范圍為3.6~20 V,每路可輸出0.6~ 5.5 V電壓(由單個外部電阻器來設(shè)定)。該器件的高效率設(shè)計使每個通道能夠提供持續(xù)2.5 A、峰值3 A的輸出電流。外部僅需在輸入和輸出外接大容量電容器。
HCE4632 ML/MB是一款超薄的三路輸出降壓型電源模塊穩(wěn)壓器。HCE4632 ML/MB的輸入電壓范圍為3.6~15 V,雙路輸出VDDQ和VTT的輸出電流±3 A,和1路10 mA低噪聲基準(zhǔn)VTTR輸出。VTT和VTTR皆跟蹤并等于VDDQ/2 輸出。HCE4632 ML/MB內(nèi)置了開關(guān)穩(wěn)壓器、功率FET、電感器和支持組件。此外,該電源模塊也可配置為兩相單路±6 A VTT輸出。僅需在輸入和輸出外接少量的陶瓷電容器即可完成整體的設(shè)計。
圖4 存儲模塊電源拓?fù)浣Y(jié)構(gòu)
存儲模塊具備在緊急情況下銷毀數(shù)據(jù)功能,模塊的硬銷毀電路采用高壓大電流直接燒毀存儲介質(zhì)的晶圓,使數(shù)據(jù)銷毀無法恢復(fù),器件不能再次使用。模塊支持硬銷毀,能夠?qū)崿F(xiàn)毀鑰電壓16~32 V、總電流0.5 A/1 s的瞬間硬銷毀,實(shí)現(xiàn)全部NAND Flash芯片物理銷毀,保證銷毀后數(shù)據(jù)無法恢復(fù),銷毀時間不超過1 s;外部提供的16~32 V、0.5 A的獨(dú)立電源供電,一邊用于給單片機(jī)提供3.3 V電源,另一邊為物理燒毀NAND Flash提供大電流電源,銷毀原理如圖5所示。
圖5 硬銷毀設(shè)計
通過在Flash的核心電源引腳加載高壓,擊穿Flash的方式進(jìn)行物理銷毀。盤片上有多片F(xiàn)lash,防止因單片擊穿短路,其他Flash無法銷毀的情況發(fā)生,每片F(xiàn)lash的核心電源通過MOS開關(guān)分開供電,以便銷毀時逐片銷毀。銷毀控制由MCU完成。
復(fù)位電路設(shè)計采用RC組合復(fù)位電路,由47 μF電容和1 k歐姆電阻組成RC復(fù)位電路。主控芯片需要外部提供一個25 M時鐘,模塊設(shè)計采用高精度晶體實(shí)現(xiàn)。
存儲模塊初始化是指當(dāng)存儲模塊通過PCIE連接到其他設(shè)備時,在PCIE設(shè)備被應(yīng)用系統(tǒng)正確加載后,存儲模塊完成對自身硬件設(shè)備的初始化并將設(shè)備狀態(tài)轉(zhuǎn)為工作就緒狀態(tài)的功能。初始化完成后,可以獲取到存儲模塊的設(shè)備ID,主機(jī)可根據(jù)不同的設(shè)備ID加載相應(yīng)的驅(qū)動程序,從而實(shí)現(xiàn)不同廠家設(shè)備之間的兼容。存儲模塊初始化功能包括PCIE內(nèi)部存儲空間分配及管理、存儲主控芯片初始化、存儲模塊加載等功能。
當(dāng)存儲模塊通過PCIE接口初始化完成,可以在系統(tǒng)中看到與存儲相對應(yīng)的設(shè)備文件,在存儲模塊初始化時,會將存儲模塊對應(yīng)的讀寫接口進(jìn)行注冊,在通過文件系統(tǒng)或其他接口進(jìn)行存儲空間讀寫時,驅(qū)動層軟件調(diào)用已注冊的讀寫接口完成對存儲模塊Flash的讀寫。存儲模塊讀寫流程如圖6所示。
圖6 存儲模塊讀寫數(shù)據(jù)流程
本文基于主控器+存儲陣列的設(shè)計架構(gòu),設(shè)計了一種全國產(chǎn)化的高可靠存儲設(shè)計方案,在滿足高速大容量存儲功能的基礎(chǔ)上,兼顧了性能、體積和功耗的平衡。方案對外接口標(biāo)準(zhǔn)統(tǒng)一,適配性強(qiáng);對外可根據(jù)不同需求,裁剪NAND Flash容量和毀鑰電路,滿足定制化需求和加固性需要。該方案適用于不同場景的不同需求,具備靈活性和兼容性。