張賢玉,周昌義,安軍社
(1.中國科學(xué)院國家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實驗室,北京 100190; 2.中國科學(xué)院大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100190)
星載存儲系統(tǒng)是空間科學(xué)研究中的關(guān)鍵設(shè)備,用來存儲及傳輸寶貴的空間科學(xué)實驗數(shù)據(jù)[1]。由于探測任務(wù)的種類不斷豐富,實驗產(chǎn)生的數(shù)據(jù)量越來越龐大,需要對星載存儲系統(tǒng)的容量及吞吐率進(jìn)行提升。從90年代初到現(xiàn)在,星載存儲系統(tǒng)的容量由Mb提升至現(xiàn)在的Tb級別,盡管吞吐率也由最初的Mbps提升至現(xiàn)在的Gbps級別[2],但顯然吞吐率的提升速度遠(yuǎn)遠(yuǎn)不及容量的提升速度,為了滿足海量空間科學(xué)數(shù)據(jù)對及時有效存儲的需求,需進(jìn)一步提升星載存儲系統(tǒng)的吞吐率。
隨著半導(dǎo)體技術(shù)的進(jìn)步,開始有研究者在一些場景中使用支持更高工作頻率的同步NAND FLASH提升存儲系統(tǒng)的吞吐率[3,4],目前在嫦娥二號、暗物質(zhì)粒子探測衛(wèi)星、實踐10號、創(chuàng)新3A等衛(wèi)星系統(tǒng)中仍采用的是僅支持異步數(shù)據(jù)接口的NAND FLASH[2,5],系統(tǒng)存儲速率受限。因此本文將支持同步數(shù)據(jù)接口的SLC型NAND FLASH應(yīng)用于星載存儲系統(tǒng),通過對星載存儲系統(tǒng)吞吐率影響因素的分析,進(jìn)一步提出了在存儲陣列中引入八級流水及并行擴(kuò)展技術(shù)的方案,并結(jié)合星載任務(wù)的特點(diǎn)對該高速同步NAND FLASH存儲控制器的軟硬件進(jìn)行了功能模塊化、接口標(biāo)準(zhǔn)化的設(shè)計,同時考慮了系統(tǒng)的靈活性及高速設(shè)計的可靠性問題。
設(shè)f為NAND FLASH數(shù)據(jù)總線上的傳輸頻率,W為可同時操作的NAND FLASH數(shù)據(jù)總線的位寬,那么該星載固態(tài)存儲系統(tǒng)的理論吞吐率R可表示為
R=f×W
(1)
顯然星載存儲系統(tǒng)的吞吐率將受到f及W的制約。
由NAND FLASH芯片的存儲結(jié)構(gòu)[6]及存儲原理可知,在存儲操作中存在一些等待時間,這將導(dǎo)致存儲的效率不能達(dá)到100%,即實際的系統(tǒng)吞吐率并不能達(dá)到理論值,因此星載固態(tài)存儲系統(tǒng)的吞吐率還將受到存儲操作等待時間的制約。
針對以上星載存儲系統(tǒng)吞吐率的影響因素,本設(shè)計將從提高NAND FLASH數(shù)據(jù)總線上的傳輸頻率、增加可同時操作的NAND FLASH數(shù)據(jù)總線位寬、充分利用操作等待時間3個方面對星載存儲系統(tǒng)的吞吐率進(jìn)行提升。
1.2.1 同步數(shù)據(jù)接口
傳統(tǒng)星載存儲系統(tǒng)使用的NAND FLASH僅支持異步數(shù)據(jù)接口時序模式[5],最高工作頻率50 MHz,考慮可靠性和降額等因素,實際頻率一般設(shè)計為32 MHz,此時NAND FLASH數(shù)據(jù)總線上的傳輸頻率為32 MHz,數(shù)據(jù)總線位寬為8 bits時的理論吞吐率為256 Mbps。
本設(shè)計采用Micron公司SLC型NAND FLASH存儲芯片MT29F256G08AUCABH3-10ITZ,該芯片既支持異步數(shù)據(jù)接口模式,也支持同步數(shù)據(jù)接口模式,同步數(shù)據(jù)接口時序模式5工作頻率可達(dá)100 MHz[7],考慮可靠性和降額,將實際頻率設(shè)計為64 MHz,又由于數(shù)據(jù)在時鐘雙沿傳輸,NAND FLASH數(shù)據(jù)總線上的傳輸頻率可達(dá)128 MHz,數(shù)據(jù)總線位寬為8 bits時的理論吞吐率可達(dá)1 Gbps,為傳統(tǒng)星載存儲的4倍。
1.2.2 并行擴(kuò)展
在單板上對多片NAND FLASH的數(shù)據(jù)總線進(jìn)行并行擴(kuò)展,能夠增加可同時操作的數(shù)據(jù)總線位寬,使系統(tǒng)吞吐率得到成倍的提升。在本設(shè)計中,將N片數(shù)據(jù)總線位寬為8 bits的NAND FLASH控制總線、狀態(tài)總線互聯(lián),數(shù)據(jù)總線并行擴(kuò)展為N×8 bits后,理論吞吐率可達(dá)N×1 Gbps。
由于FPGA引腳資源及PCB板面積有限,單板上的I/O并行位數(shù)不可能無限擴(kuò)展,且一經(jīng)制板不方便再進(jìn)行容量及吞吐率的提升;同時由于傳統(tǒng)存儲架構(gòu)中合路復(fù)接模塊與載荷之間耦合程度較高,而不同任務(wù)的載荷接口種類及數(shù)量不同,需求更改時常常導(dǎo)致大量重復(fù)性工作,浪費(fèi)人力物力。
因此可將與載荷直接交互的合路復(fù)接模塊從存儲板中獨(dú)立出來,并將存儲板的接口和功能進(jìn)行標(biāo)準(zhǔn)化設(shè)計,形成一種通用的存儲單板。在未來單機(jī)內(nèi)部,結(jié)合背板及總線即插即用相關(guān)技術(shù)[8,9],根據(jù)不同任務(wù)需求,可進(jìn)行多存儲板間的I/O總線并行擴(kuò)展,進(jìn)一步提升系統(tǒng)吞吐率,同時還將有利于系統(tǒng)容量的靈活擴(kuò)展,其架構(gòu)如圖1所示。
圖1 多板并行擴(kuò)展存儲系統(tǒng)架構(gòu)
1.2.3 八級流水
由于擦除操作可在無存儲任務(wù)時進(jìn)行,所以本節(jié)將通過計算分析同步NAND FLASH讀、寫過程中等待時間對吞吐率的影響,并尋找解決方法。
圖2為采用同步數(shù)據(jù)接口的NAND FLASH讀操作時序,圖中各時序參數(shù)見表1,讀一頁n(Byte)的數(shù)據(jù)所需時間約為
圖2 同步NAND FLASH讀操作時序
tread=tr_load+tr_wait
(2)
tr_load為讀操作中命令、地址及數(shù)據(jù)的加載時間
tr_load=tr_command+tr_address+tWRCK+tDQSCK+tr_data
(3)
tr_wait為讀操作中的等待時間
tr_wait=tWB+tR
(4)
讀操作的效率約為
(5)
圖3為采用同步數(shù)據(jù)接口的NAND FLASH寫操作時序,圖中各時序參數(shù)見表1,寫入一頁n(Byte)數(shù)據(jù),需要的總時間為
表1 同步NAND FLASH讀、寫操作時序參數(shù)
圖3 同步NAND FLASH寫操作時序
twrite=tw_load+tw_wait+tw_check
(6)
tw_load為寫操作的命令、地址及數(shù)據(jù)的加載時間
tw_load=tw_command+tw_address+tw_data+tADL+tDQSS
(7)
tw_wait為內(nèi)部編程等待時間
tw_wait=tWB+tprog
(8)
tw_check為編程結(jié)果檢查時間
tw_check=tCAD+tWHR
(9)
寫操作效率最高約為
(10)
在工作頻率為64 MHz時,由式(2)~式(5)可得:讀一頁數(shù)據(jù)(8K Bytes)的總時間約為99.32 μs,其中等待時間約為35.10 μs,加載時間約為64.22 μs,此時讀操作效率約為64.44%,在讀操作中等待時間小于加載時間;由式(6)~式(10)可得:寫入一頁數(shù)據(jù)(8K Bytes)的總時間約為420 μs~640 μs,其中內(nèi)部編程等待時間約為350 μs~560 μs,加載時間約為64.27 μs,此時寫操作效率最高僅約為15.24%,在寫操作中等待時間遠(yuǎn)遠(yuǎn)大于加載時間。
NAND FLASH在等待狀態(tài)時不響應(yīng)任何指令,此時其與FPGA之間的數(shù)據(jù)總線空閑,若等待時間大于加載時間,可通過軟硬件的協(xié)同合作,利用該等待時間對另外的NAND FLASH進(jìn)行加載操作,即對存儲陣列進(jìn)行流水操作。
因此,可以在寫操作中引入流水操作,又由于寫操作中等待時間約為加載時間的6~8倍,那么將流水級數(shù)設(shè)計為八級,即可充分利用總線空閑時間,使存儲系統(tǒng)整體吞吐率接近理論值。
本設(shè)計中主控芯片選擇了Microsemi公司的SmartFusion2 M2S150TS-1FCG1152,該SOC型FPGA集成了Flash工藝的FPGA及Cortex-M3 ARM硬核,特點(diǎn)是無需外部配置芯片、安全、可靠、低功耗。使用VHDL語言在開發(fā)軟件Libero SOC中完成對該存儲控制器FPGA邏輯功能代碼的設(shè)計,F(xiàn)PGA邏輯架構(gòu)如圖4所示,對功能進(jìn)行了模塊化的設(shè)計,主要包括數(shù)據(jù)接口模塊、高速緩存模塊、CPU接口模塊、存儲控制模塊。
圖4 FPGA邏輯架構(gòu)
數(shù)據(jù)接口模塊主要實現(xiàn)輸入數(shù)據(jù)的緩存、糾錯編碼及輸出數(shù)據(jù)的譯碼、緩存。為了增加系統(tǒng)的可靠性,本設(shè)計采用RS編碼來防止空間單粒子效應(yīng)可能對存儲數(shù)據(jù)產(chǎn)生的影響[10],將來自載荷的數(shù)據(jù)經(jīng)過RS(256,252)編碼后再送入高速緩存SDRAM,從NAND FLASH讀出的數(shù)據(jù)先進(jìn)行RS譯碼再送出,其中每252字節(jié)可糾正2個字節(jié)錯誤。
高速緩存模塊主要功能是為采用了八級流水及并行擴(kuò)展的存儲陣列提供不間斷的數(shù)據(jù)流,保證數(shù)據(jù)加載的連續(xù)與高速。在并行擴(kuò)展后,每級寫操作的單位由一頁擴(kuò)展為N頁,記為一“簇”,為了保證寫操作的效率,需要提前準(zhǔn)備好8簇數(shù)據(jù),本設(shè)計采用SDRAM作為高速緩存[11],該模塊完成SDRAM的初始化、預(yù)充電、讀寫、刷新等操作。
CPU接口模塊主要完成FPGA與CPU之間的通信,負(fù)責(zé)提供CPU與FPGA的信號接口、命令寄存及譯碼、中斷狀態(tài)返回、硬件工作狀態(tài)查詢等工作。根據(jù)任務(wù)需要,由CPU向FPGA發(fā)送命令字,該模塊進(jìn)行指令譯碼提取出指令信息,啟動硬件相應(yīng)操作,在執(zhí)行過程中對中斷信號及硬件狀態(tài)進(jìn)行組織并返回給CPU,方便對存儲過程的管理。
存儲控制模塊是直接與NAND FLASH存儲陣列進(jìn)行交互的模塊,主要功能是提供FPGA與NAND FLASH之間的信號接口,實現(xiàn)同步存儲控制時序邏輯,并按照優(yōu)先級順序完成各存儲操作任務(wù),內(nèi)部又包括初始化、寫入、讀取、擦除4個子模塊,存儲控制模塊的接口及內(nèi)部結(jié)構(gòu)如圖5所示。
圖5 存儲控制模塊結(jié)構(gòu)
存儲控制模塊的操作流程如圖6所示,系統(tǒng)上電后首先需要進(jìn)行“復(fù)位”操作,然后通過“Set Feature”操作對NAND FLASH的數(shù)據(jù)接口及時序模式進(jìn)行配置,配置完成后讀取空余區(qū)信息,組織成塊分配表(block allocation table,BAT),方便后續(xù)對存儲區(qū)的管理;初始化完畢,系統(tǒng)將進(jìn)入存儲控制任務(wù)調(diào)度主循環(huán),根據(jù)CPU指令及硬件工作狀態(tài),在NAND FLASH存儲區(qū)為空閑狀態(tài)時,按照優(yōu)先級順序依次判斷是否進(jìn)行數(shù)據(jù)寫入、數(shù)據(jù)讀取、數(shù)據(jù)擦除任務(wù),并啟動對應(yīng)的狀態(tài)機(jī)執(zhí)行相應(yīng)的操作。
圖6 存儲控制模塊操作流程
2.4.1 NAND FLASH模式配置
本設(shè)計采用的NAND FLASH在上電后默認(rèn)工作在異步數(shù)據(jù)接口時序模式0,工作頻率僅為10 MHz,因此若要實現(xiàn)高速存儲,需通過“Set Feature”操作對NAND FLASH的工作模式進(jìn)行配置。本設(shè)計中使用同步數(shù)據(jù)接口時序模式5,該模式支持的最大工作頻率為100 MHz,考慮可靠性和降額,實際工作頻率設(shè)計為64 MHz。如圖7所示為“Set Feature”操作的時序。
圖7 “Set Feature”操作時序
“Set Feature”操作的具體步驟為:
(1)發(fā)送命令“EFh”;
(2)發(fā)送特性地址(FA):“01h”,啟動數(shù)據(jù)接口及時序模式配置的操作;
(3)發(fā)送4個周期的特性參數(shù)(P1-P2):“15h-00h-00h-00h”,將數(shù)據(jù)接口設(shè)置為同步數(shù)據(jù)接口時序模式5的工作模式;
(4)在時間tWB后NAND FLASH的R/B信號將拉低,待再次檢測到R/B信號拉高,設(shè)置完成。
2.4.2 同步時序邏輯設(shè)計
同步NAND FLASH的存儲控制邏輯與傳統(tǒng)異步NAND FLASH存在區(qū)別:異步接口模式下,命令、地址、寫入數(shù)據(jù)由WE_n信號鎖存,讀出數(shù)據(jù)由RE_n信號鎖存,數(shù)據(jù)在時鐘單沿傳輸;同步接口模式下,命令、地址由CLK信號鎖存,寫入數(shù)據(jù)和讀出數(shù)據(jù)由DQS信號鎖存,數(shù)據(jù)在時鐘雙沿傳輸。在同步時序控制邏輯中,如何實現(xiàn)數(shù)據(jù)的雙沿傳輸與讀取是設(shè)計的關(guān)鍵。
圖8給出了同步寫操作中實現(xiàn)在CLK雙沿發(fā)送數(shù)據(jù)并保證DQS信號邊沿與數(shù)據(jù)中心對齊的邏輯電路及波形變換過程。NAND FLASH數(shù)據(jù)線DQ位寬為8 bits,數(shù)據(jù)在CLK雙沿傳輸,也即一個CLK周期內(nèi)需要在DQ信號線上傳輸2組8 bits的數(shù)據(jù)。為減少跨時鐘域的操作,在64 MHz系統(tǒng)時鐘下,將16 bits的待寫入數(shù)據(jù)Data先由2個寄存器轉(zhuǎn)換為2組8 bits的數(shù)據(jù),再通過多路選擇器分別在CLK為1和CLK為0時將Data的高8位和低8位送給DQ,實現(xiàn)數(shù)據(jù)在時鐘雙沿的傳送。同時為保證發(fā)送給NAND FLASH的DQS邊沿與數(shù)據(jù)中心對齊,設(shè)計中加入發(fā)送門控信號dqs_out_en,在dqs_out_en有效時,令DQS等于由CLK移相90度產(chǎn)生的信號。
圖8 實現(xiàn)雙沿送數(shù)的邏輯電路及波形變換
圖9給出了在同步讀操作中根據(jù)DQS信號讀取輸入數(shù)據(jù)的邏輯電路及波形變換過程。由于來自NAND FLASH的DQS信號是與數(shù)據(jù)邊沿對齊的,因此直接使用DQS作為采樣信號得到的數(shù)據(jù)并不準(zhǔn)確。本設(shè)計通過DCM對CLK信號進(jìn)行2倍頻,并令DQS信號通過一個以該信號(2×CLK)上升沿作為觸發(fā)邊沿的寄存器,將產(chǎn)生的新信號作為數(shù)據(jù)采樣信號dq_judge,在dq_judge的上升沿和下降沿對DQ信號采樣,并將采到的數(shù)據(jù)分別送給寄存器Data_reg 的高8位和低8位,最終組成16 bits的回放數(shù)據(jù)Data。
圖9 實現(xiàn)數(shù)據(jù)讀取的邏輯電路及波形變換
2.4.3 八級流水操作
為充分利用操作等待時間,本設(shè)計將按照八級流水的方式將數(shù)據(jù)加載至存儲區(qū);同時考慮到讀回數(shù)據(jù)的連續(xù)性,讀操作將按照寫入時的流水順序及地址將數(shù)據(jù)讀出;為解決地址管理及磨損均衡問題,擦除操作也將按照寫入時的流水順序及地址進(jìn)行,按照先記錄先擦除、后記錄后擦除的原則循環(huán)使用存儲塊。限于篇幅,這里僅給出寫操作設(shè)計過程。
引入八級流水后的寫操作狀態(tài)機(jī)如圖10所示。
圖10 采用八級流水的寫操作狀態(tài)機(jī)
s0狀態(tài):監(jiān)控rdy_to_write信號,若高有效則開啟狀態(tài)機(jī),否則保持s0;
在大數(shù)據(jù)環(huán)境下,高校應(yīng)提高社會主義核心價值觀培養(yǎng)策略的科學(xué)性和針對性,即利用數(shù)據(jù)資源建立評價指數(shù)模型,結(jié)合愛國、敬業(yè)、誠信、友善4個指標(biāo)來衡量大學(xué)生的自身價值程度,并借鑒統(tǒng)計學(xué)知識,完善評價體系,建立動態(tài)分析,為學(xué)校和大學(xué)生提供更準(zhǔn)確的認(rèn)識和分析數(shù)據(jù),提高教育培養(yǎng)策略的實踐效果。
sStart0狀態(tài):判斷當(dāng)前寫入地址是否為本塊第一頁,若是則鎖存該塊地址并發(fā)送“地址申請”信號給CPU,以保證在本塊寫滿前硬件可以收到下一塊的地址,保持系統(tǒng)工作的連續(xù)高速;
sCmd_start狀態(tài):發(fā)送寫命令“80h”;
sAdr_c0~sAdr_r2狀態(tài):根據(jù)是正常寫操作還是標(biāo)記出錯塊操作,向NAND FLASH發(fā)送相應(yīng)5個周期的待寫入頁地址;
sWait_tDQSS狀態(tài):判斷若為正常寫操作則轉(zhuǎn)到sMain_ld,若是標(biāo)記出錯塊操作則轉(zhuǎn)到sStamp;
sMain_ld狀態(tài):向NAND FLASH加載待寫入數(shù)據(jù);
sStamp狀態(tài):往空余區(qū)寫入標(biāo)記信息;
sCmd_end狀態(tài):發(fā)送命令“10h”,若為正常寫操作則判斷八級流水是否全部加載完畢,未加載完畢將回到sStart0繼續(xù)下級流水的加載,若為標(biāo)記出錯塊操作或全部加載完畢將轉(zhuǎn)到sWait_ld;
sWait_stamp~sReplace狀態(tài):判斷標(biāo)記是否完成,向CPU申請“替代塊地址”并回到sStart1進(jìn)行出錯頁數(shù)據(jù)的重加載;
sJudge0狀態(tài):判斷若有未加載完畢的則回到sStarta0繼續(xù)加載,若有加載完畢需要檢測編程狀態(tài)的則執(zhí)行sJudge1~sCheck,若全部加載且檢測完畢則回到s0;
sJudge1~sCheck狀態(tài):檢測NAND FLASH內(nèi)部編程完成情況,若正常寫入則轉(zhuǎn)至sJudge0,若寫入失敗則轉(zhuǎn)至sStart1開啟標(biāo)記出錯塊操作。
通過采用流水操作令多片NAND FLASH分時復(fù)用與FPGA之間數(shù)據(jù)總線的方法,不僅可在宏觀上達(dá)到存儲效率最大化,使系統(tǒng)吞吐率接近理論值,還可節(jié)約FPGA引腳,節(jié)省PCB布線空間。
對星載高速同步存儲控制器的硬件進(jìn)行了功能模塊化及接口標(biāo)準(zhǔn)化的設(shè)計。
硬件結(jié)構(gòu)按照功能可分為電源模塊、主控模塊、存儲模塊、總線模塊幾部分。5 V電壓由外部提供,其它電壓由電源轉(zhuǎn)換芯片轉(zhuǎn)換得到;主控芯片使用Microsemi的SmartFusion2 FPGA,其外圍電路包括時鐘、復(fù)位、JTAG接口等;存儲芯片使用Micron支持同步數(shù)據(jù)接口的NAND FLASH,SDRAM用于外部高速數(shù)據(jù)緩存,預(yù)留NOR FLASH可用于程序存儲,也可用于不經(jīng)常改寫的數(shù)據(jù)存儲;RS422及RS485接口為系統(tǒng)提供內(nèi)部低速管控串行總線,CAN接口為系統(tǒng)提供外部低速管控總線,SpaceWire及SpaceFibre接口為系統(tǒng)提供高速數(shù)據(jù)總線;單板采用CPCIe 3U標(biāo)準(zhǔn)板卡尺寸。
考慮到通用化、可擴(kuò)展的需求,硬件設(shè)計時預(yù)留了多種總線,根據(jù)不同需求連接至外部連接器或背板連接器,通過將與外部的信號接口進(jìn)行標(biāo)準(zhǔn)化定義,方便實現(xiàn)星載存儲系統(tǒng)在容量及速率上進(jìn)一步的靈活擴(kuò)展。
隨著工作頻率的提高,在PCB設(shè)計時需要考慮信號完整性問題。布局時重要電路如主控FPGA、存儲芯片優(yōu)先,然后根據(jù)信號流向布局其它器件,保證關(guān)鍵信號線盡可能短,高低頻器件分開;布線時遵循關(guān)鍵信號優(yōu)先、高速差分信號優(yōu)先、時鐘信號優(yōu)先的原則,將高速差分信號做就近、等長、對稱、屏蔽等處理并進(jìn)行阻抗匹配,為避免線延時的影響,存儲陣列并行的信號線也做了等長處理。
Modelsim是針對FPGA設(shè)計的仿真軟件,集成了波形比較、代碼覆蓋、斷點(diǎn)調(diào)試等功能,可支持跨平臺、跨版本的仿真,編譯仿真速度快。本實驗使用Modelsim軟件,通過編寫Testbench產(chǎn)生待測設(shè)計所需的激勵信號,對設(shè)計的時序邏輯及功能進(jìn)行了仿真驗證。
實現(xiàn)雙沿送數(shù)的邏輯電路仿真波形如圖11(a)所示,首先向NAND FLASH加載寫命令“80h”,然后加載5個周期的待寫入頁地址,地址加載完畢將進(jìn)行數(shù)據(jù)的加載,flash_dqs_io信號此時由FPGA產(chǎn)生,邊沿與數(shù)據(jù)中心對齊,數(shù)據(jù)加載完畢發(fā)送命令“10h”,隨后flash_rb_i信號拉低,NAND FLASH進(jìn)入內(nèi)部編程狀態(tài)。經(jīng)過并行擴(kuò)展及引入八級流水后的寫操作仿真波形如圖11(b)所示,F(xiàn)lashld_SDRAM_dout_i為64 bits位寬的待寫入數(shù)據(jù),在寫入時通過雙沿送數(shù)邏輯電路轉(zhuǎn)換為在CLK雙沿傳輸?shù)?組32 bits位寬的flash_d_io信號,flash_pipe_o信號指示當(dāng)前流水級,按照順序依次完成了八級流水的命令、地址及數(shù)據(jù)的加載。
圖11 寫操作仿真波形
實現(xiàn)數(shù)據(jù)讀取的邏輯電路仿真波形如圖12(a)所示,首先向NAND FLASH發(fā)送讀命令“00h”,然后發(fā)送5個周期的待讀取頁地址,再發(fā)送命令“30h”,隨后等待數(shù)據(jù)讀出,此時flash_dqs_io由NAND FLASH產(chǎn)生,邊沿與數(shù)據(jù)邊沿對齊;如圖12(b)所示為按照寫入時的八級流水順序及地址將數(shù)據(jù)讀出時的仿真波形,flash_pipe_o信號指示當(dāng)前流水級,通過讀取邏輯電路將與flash_dqs_io信號邊沿對齊的2組32 bits位寬的輸入數(shù)據(jù)flash_d_io轉(zhuǎn)換為64 bits 位寬的回放信號replay_data_o。
圖12 讀操作仿真波形
圖13為按照寫入時的八級流水順序及地址進(jìn)行塊擦除操作的仿真波形,同樣flash_pipe_o信號指示當(dāng)前流水級,擦除操作首先向NAND FLASH發(fā)送命令“60h”,然后發(fā)送3個周期的待擦除塊地址,地址加載完畢發(fā)送命令“D0h”,隨后該級NAND FLASH進(jìn)入擦除狀態(tài),繼續(xù)進(jìn)行下一級擦除命令及地址的加載,檢測到有rb信號拉高,檢查該級擦除操作完成情況。
圖13 擦除操作仿真波形
以上結(jié)果表明,星載高速同步NAND FLASH存儲控制器的功能基本實現(xiàn)。將本設(shè)計中的高速同步星載存儲系統(tǒng)與傳統(tǒng)星載存儲系統(tǒng)[5]進(jìn)行比較,結(jié)果見表2,可見在相同并行擴(kuò)展位寬的情況下,本設(shè)計的高速同步星載存儲系統(tǒng)吞吐率可達(dá)到傳統(tǒng)星載存儲系統(tǒng)的4倍,且本設(shè)計可以通過結(jié)合背板總線進(jìn)行多板并行擴(kuò)展,能夠進(jìn)一步靈活的提升系統(tǒng)容量及吞吐率。
表2 兩種星載存儲系統(tǒng)性能對比
本文通過對影響星載存儲系統(tǒng)吞吐率的因素進(jìn)行分析,從提高NAND FLASH數(shù)據(jù)總線上的傳輸頻率、增加可同時操作的NAND FLASH數(shù)據(jù)總線位寬、充分利用寫操作等待時間3個方面入手,通過將支持同步數(shù)據(jù)接口的SLC型NAND FLASH應(yīng)用于星載存儲系統(tǒng)、擴(kuò)展并行操作位寬、引入八級流水充分利用操作中的等待時間等方式,設(shè)計了一種高速同步星載NAND FLASH存儲控制器。相比于傳統(tǒng)星載存儲系統(tǒng),該方案可將吞吐率提升至原來的4倍,同時提出的可擴(kuò)展架構(gòu)有利于系統(tǒng)容量及吞吐率的進(jìn)一步提升,為高速、靈活、小型化星載海量存儲系統(tǒng)的研究提供思路,具有一定的實用價值。