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