彭佳煜,王曉偉,余江南
(航空工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710065)
隨著數(shù)字化技術(shù)的飛速發(fā)展,數(shù)據(jù)存儲系統(tǒng)在數(shù)字通信、圖像處理、人工智能、語音識別以及航空電子等眾多領(lǐng)域中有了廣泛應(yīng)用,隨之對信息系統(tǒng)的容量、存儲速度、數(shù)據(jù)安全性等方面的要求也在不斷提高。
高性能大容量數(shù)據(jù)存儲技術(shù)的發(fā)展由存儲介質(zhì)的發(fā)展所引導(dǎo)。傳統(tǒng)的磁存儲技術(shù)已不再滿足當(dāng)今社會對高速大容量數(shù)據(jù)存儲的需求。近年來,閃存技術(shù)快速發(fā)展,具有顯著優(yōu)勢?;贜AND閃存形成的固態(tài)存儲器具有高集成度、高存儲密度、低功耗、防腐防震等優(yōu)點,可以滿足苛刻條件下的數(shù)據(jù)存儲要求,成為當(dāng)代數(shù)據(jù)存儲系統(tǒng)的主流選擇。
為保護關(guān)鍵數(shù)據(jù)的安全,作為數(shù)據(jù)保護的最后一道防線,數(shù)據(jù)毀鑰技術(shù)應(yīng)運而生[1]。目前,常用的銷毀技術(shù)為軟毀鑰,主要為數(shù)據(jù)覆蓋和軟件擦除技術(shù)。軟毀鑰方式是通過軟件對原有的數(shù)據(jù)進行重寫,不能在短時間內(nèi)完成數(shù)據(jù)銷密,并存在數(shù)據(jù)恢復(fù)的風(fēng)險。為提高存儲系統(tǒng)的可靠性,系統(tǒng)需要在短時間內(nèi)響應(yīng)并完成數(shù)據(jù)存儲載體的銷密。本文提出了一種硬毀鑰的銷密方案,通過控制電路將毀鑰電源接入存儲介質(zhì)芯片,借助毀鑰電源的高電壓、大電流破壞存儲介質(zhì)芯片的內(nèi)部結(jié)構(gòu),并滿足關(guān)鍵時刻在短時間內(nèi)完成核心數(shù)據(jù)的毀鑰要求。
針對以上問題,本文設(shè)計實現(xiàn)了一種帶應(yīng)急燒毀功能的高速大容量存儲模塊,系統(tǒng)以FPGA為控制核心,以NAND Flash為主要存儲介質(zhì),通過硬件毀鑰電路從物理上燒毀存儲核心關(guān)鍵數(shù)據(jù)的存儲芯片,以保障數(shù)據(jù)安全,滿足當(dāng)前對存儲系統(tǒng)大容量、高速率、數(shù)據(jù)安全性的新要求。
大容量存儲模塊的硬件功能如圖1所示。模塊選用標(biāo)準(zhǔn)PCI總線接口作為主處理器,實現(xiàn)存儲處理板的數(shù)據(jù)計算處理等任務(wù)。處理器周圍配置了DDR2 SDRAM、Flash、NvRAM等局部存儲資源,采用34片NAND Flash芯片形成非易性大容量存儲陣列,以FPGA為控制核心,內(nèi)部邏輯主要包含:PCI-E硬核端點邏輯、NAND Flash控制邏輯、局部總線接口轉(zhuǎn)換和控制邏輯??紤]信息安全的要求,本文設(shè)計毀鑰電路,在緊急情況下將存儲重要信息的芯片燒毀。另外,存儲處理板上設(shè)計了以太網(wǎng)、JTAG、RS232等調(diào)試接口。大容量存儲模塊的核心硬件配置由3部分組成:大容量存儲單元、處理器單元、控制單元。
圖1 存儲系統(tǒng)架構(gòu)
處理器單元完成整個存儲系統(tǒng)的數(shù)據(jù)處理功能,通過自帶的PCI接口與控制單元通信,完成數(shù)據(jù)、命令、地址、狀態(tài)的相互傳遞、轉(zhuǎn)換和處理。處理器采用PowerPC的G6代處理器,目前已在國內(nèi)外數(shù)據(jù)處理與信號處理中廣泛運用,主頻最高可達1.5 GHz, 處理器單元配置獨立的DDR2、Flash、NvRAM、溫度監(jiān)控等芯片。Flash用于存儲系統(tǒng)程序及用戶應(yīng)用程序代碼。啟動過程中,處理器將應(yīng)用程序及系統(tǒng)程序的數(shù)據(jù)代碼由FPGA控制將Flash芯片的程序讀入DDR2內(nèi)存后運行。此外,CPU還配置8×PCI Express接口、2個以太網(wǎng)控制器、UART接口、中斷控制器、DMA控制器等資源。
大容量存儲單元采用NAND型Flash芯片作為主要存儲介質(zhì),共選用34片Micron公司的NAND Flash(型號:MT29F64G08AJABAWP-IT:B)實現(xiàn)非易性存儲陣列,單片容量為8 G×8 bit,共包含16 384個數(shù)據(jù)塊,每塊128頁,每頁共(4 096+224)個字節(jié),其中的4 096為數(shù)據(jù)存儲區(qū),224為空閑存儲區(qū)。32片NAND Flash用于存儲普通數(shù)據(jù),形成256 GB的大容量存儲陣列,所述存儲陣列分為4個存儲單元,每個存儲單元包含8片NAND芯片,其中每4片NAND芯片組成1組,每個存儲體單元又分為2組NAND芯片,每組由4片NAND芯片進行32 bit位擴展,每個存儲體內(nèi)有獨立的數(shù)據(jù)線和控制信號。另外,2片NAND芯片組成16 G存儲關(guān)鍵數(shù)據(jù)區(qū),具備硬毀密功能,需要時可被物理燒毀。存儲陣列控制由FPGA邏輯實現(xiàn),主要實現(xiàn)NAND Flash按頁讀寫基本操作和4通道陣列譯碼,內(nèi)部實現(xiàn)4 bit/256 bit的ECC校驗算法[2]。
控制單元采用FPGA作為整個存儲系統(tǒng)的硬件核心,大容量存儲模塊選用Xilinx公司Vertex5系列FPGA來實現(xiàn)PCI-E硬核端點邏輯以及處理器局部總線接口轉(zhuǎn)換邏輯、大容量存儲控制邏輯。CPU局部總線接口轉(zhuǎn)換邏輯和控制邏輯將CPU數(shù)據(jù)地址復(fù)用的局部總線分成單獨的數(shù)據(jù)總線和地址總線,根據(jù)地址完成片選譯碼及讀寫控制,對Flash的所有管腳控制均通過FPGA內(nèi)部轉(zhuǎn)換實現(xiàn)。FPGA一端接PCIe總線,由PCIe核完成數(shù)據(jù)傳送和寄存器讀寫控制,另一端接NAND Flash存儲陣列。PCI接口由FPGA內(nèi)部的PCI IP核實現(xiàn),該接口主要完成Flash控制器緩沖雙口的讀寫訪問、設(shè)備控制寄存器讀寫訪問、PCI-E設(shè)備配置功能。FPGA通過大容量存儲邏輯控制Flash存儲陣列的數(shù)據(jù)、命令、地址、狀態(tài)的傳遞和處理,實現(xiàn)NAND Flash的讀寫操作控制。4個存儲單元各自使用一組寄存器和一個16 KB的數(shù)據(jù)緩存區(qū)來執(zhí)行其對應(yīng)通道的指令、地址、狀態(tài)以及數(shù)據(jù)傳輸與處理,并且每個通道的數(shù)據(jù)線和控制線是完全獨立的。
就單個的NAND閃存芯片而言,其數(shù)據(jù)訪問速率非常緩慢。為滿足存儲系統(tǒng)高帶寬和高速率的需求,需要通過設(shè)計時空并行的方式來提升存儲陣列底層硬件的吞吐[3]。
空間上,采用芯片并行處理技術(shù)提高了存儲帶寬,256 GB 存儲陣列控制器采用四體交叉存儲方式,因此擴展后的塊大小是原來的4 倍,每個塊里有512 頁,塊中編號按照四體輪換方式編制,保證四體并行操作。將4片位寬8 bit的NAND Flash芯片并行擴展為32 bit的芯片組,將存儲帶寬提升為原先的4倍。
時間并行性采用流水線技術(shù)。NAND Flash是數(shù)據(jù)存儲過程,包含3步:首先進行加載操作,即完成命令、地址和數(shù)據(jù)的加載;其次進行頁編程操作,把加載到頁寄存器中的數(shù)據(jù)寫到內(nèi)部存儲單元;最后在頁編程結(jié)束后檢測已寫入的數(shù)據(jù)的正確性。在加載命令階段,通常需要的時間為130 μs,最長的自編程時間為500 μs,檢測操作大致需要0.1 μs,自編程的時長大約為加載操作的4倍。由于模塊采用了4通道并行操作,每個通道內(nèi)CPU將數(shù)據(jù)寫入FPGA內(nèi)部緩沖,發(fā)送自編程命令后就向下一通道的緩沖區(qū)內(nèi)寫入數(shù)據(jù),復(fù)用了Flash頁自編程時間,該方法充分利用閃存芯片組的頁編程間隔,對其他空閑芯片組進行讀寫,從而達到流水式的并行存儲效應(yīng),極大地提升了存取速度。
經(jīng)計算得出,單片NAND Flash的讀取速度約為20 MB/s,寫入速度約為6.3 MB/s。經(jīng)過芯片并行設(shè)計將讀寫速度提高到單片的4倍,分別為80 MB/s和25.2 MB/s。以下是使用4級流水之后的寫入速度的計算結(jié)果:
可得寫入速度為126 MB/s。
為了保障機密存儲數(shù)據(jù)的安全性,當(dāng)意外情況發(fā)生時,需要在短時間內(nèi)徹底損毀存儲芯片,大容量存儲模塊配置應(yīng)急毀鑰電路,使保密數(shù)據(jù)無法被破解及恢復(fù)。外部提供毀密開關(guān)盒,向大容量模塊提供一路28VDC/1A/1S的毀密電源,用于燒毀大容量存儲單元中存儲關(guān)鍵信息的存儲芯片。
毀鑰電路設(shè)計采用限流分時的方法燒毀NAND Flash芯片。毀鑰電路主要包括供電單元、電源切換單元、燒毀控制單元。主控單元主要由單片機實現(xiàn),該單片機的供電來源于毀鑰電源,意外發(fā)生時,毀鑰電源啟動,主控單元開始工作。通過控制單元編程控制通道切換單元,將毀鑰電源與要燒毀的NAND Flash芯片導(dǎo)通,通過燒毀核心電源VCC的方式,可以有效地防止 MOS器件的泄漏電流過大 ,從而影響NAND Flash芯片的I/O信號及控制信號的完整性,有效地解決了NAND Flash芯片出現(xiàn)壞塊的問題。同時考慮到燒毀電流的控制,采用切換自毀通道或者斷開物理自毀電源的方法,解決供電過載問題,無需采用大功率的物理自毀電源。使用獨立通道自毀方式,逐一燒毀NAND Flash芯片,保證每片NAND都能安全燒毀。增加儲能電容,用慢充快放的方式通過儲能電容迅速放電,產(chǎn)生大電流燒毀NAND Flash芯片,并采用多次反復(fù)加電燒毀確保NAND Flash芯片被燒毀,設(shè)置限流電阻保證前端電流不超過1A,防止進行燒毀時對前端電路造成影響。
從試驗結(jié)果統(tǒng)計分析,燒毀后NAND Flash芯片無法讀取數(shù)據(jù),且在燒毀過程中前端1 A保險絲不被燒斷。將燒毀的芯片進行元器件失效分析,NAND Flash芯片均被燒毀,內(nèi)部可見有燒毀損傷,達到數(shù)據(jù)無法恢復(fù)的目的。結(jié)果表明,限流分時銷毀電路的毀密設(shè)計方案可滿足毀鑰需求。
文本介紹了一種以 FPGA為控制核心、基于 NAND閃存的通用高速大容量數(shù)據(jù)存儲系統(tǒng),對該系統(tǒng)的整體結(jié)構(gòu)進行了介紹,并對其中涉及的幾個關(guān)鍵技術(shù)進行了詳細的闡述,例如:并行運算、流水線技術(shù)、硬毀鑰電路設(shè)計等,很大程度地提升了系統(tǒng)的存儲容量、讀取速度以及數(shù)據(jù)安全性。經(jīng)過實際運行,該系統(tǒng)達到了的設(shè)計指標(biāo)。