基于閃存的大容量存儲陣列
由于NAND Flash特殊的基本結(jié)構(gòu),在進(jìn)行讀寫操作的時候,外部控制器不能通過普通總線的形式對其內(nèi)部某一位進(jìn)行操作,而是以頁為最小操作單位,在擦除操作時以塊為最小操作單位。
對NAND Flash芯片內(nèi)部的某一頁進(jìn)行操作時,要先將操作命令字和地址信息寫入,芯片才會根據(jù)操作命令字對給定地址的存儲單元進(jìn)行相應(yīng)的操作。芯片的主要操作命令字可以查閱芯片手冊。
K9KAG08UOM的頁編程寫入時序圖如圖2所示,其中寫周期tWC最小為25 ns;地址到數(shù)據(jù)加載的延遲時間tADL最小為75 ns;編程命令到編程開始的延遲時間tWH最大為100 ns;編程時間tPROG的典型值為200μs。本文引用地址:http://www.ex-cimer.com/article/149176.htm
設(shè)Flash芯片一頁的容量為4 224 Byte,按典型時間計算,完成一頁編程寫入所需時間約為
6×25 ns+75 ns+4 224×25 ns+100 ns+300μs=405.95μs
其中,編程命令和數(shù)據(jù)傳送的總時間為105.95 s,編程時間為300 s。單片K9KAG08UOM最高數(shù)據(jù)存儲速率為
4 224/405.95μs=10.405 B·μs-1=10.405 MB·s-1
上述時間是按照最高速度計算的,實際使用時單片存儲器的數(shù)據(jù)存儲速率會小于它。如果留有足夠的裕度,單片數(shù)據(jù)存儲速率按照5 MB·s-1考慮,則對于200MB·s-1的要求,需要40片存儲器并行工作,才能滿足實時存儲的要求。
2 FPGA芯片的選型
存儲器陣列控制單元利用高性能FPGA實現(xiàn),它對器件速度的要求不高,主要是必須提供足夠的IO引腳,具體要求如下:(1)輸入LVDS通道數(shù)為16+2,其中接收8個,發(fā)送8個,高速時鐘2個通道。(2)輸入讀寫速度:>200 MHz。(3)輸出LVTTL電平的IO數(shù)為(80+24)x 4,其中數(shù)據(jù)80位,控制信號12位。(4)命令地址等其它低速信號線為14線。(5)輸出讀寫速度>20 MHz。(6)引腳需求數(shù):(16+2)×2+104×4+4+10=466。
擬采用Xilinx公司的Virtex-4系列FPGA可以滿足設(shè)計要求,如XC4VLX80。其相關(guān)技術(shù)參數(shù):(1)18 kBRAM模塊:200個,3 600 kB。(2)內(nèi)部存儲器讀寫速度>500 MHz。(3)LVDS通道數(shù)為384。(4)用戶可利用的IO引腳數(shù)為768。
3 FPGA控制邏輯設(shè)計
3.1 并行的NAND接口的設(shè)計
并行操作可以按照需要將多片閃存芯片的數(shù)據(jù)線結(jié)合起來共同使用,以此提高系統(tǒng)讀寫帶寬和讀寫效率。在并行系統(tǒng)中,引進(jìn)模塊化的思想,即將多片閃存芯片當(dāng)作一個模塊,把這個模塊作為整個系統(tǒng)最小的數(shù)據(jù)存儲單元,任何操作都是面向這些模塊來進(jìn)行。也就是說,多片閃存芯片作為一個整體,對外輸出8×n位的數(shù)據(jù)。同時,并行操作也大大提高了系統(tǒng)的操作速度。以下以寫4 kByte的數(shù)據(jù)進(jìn)入一個由5片閃存芯片組成的的模塊為例:當(dāng)只對一片閃存芯片操作時,典型的寫入時間為200μs。但當(dāng)閃存芯片模塊進(jìn)行操作時,由于是對模塊內(nèi)的5片芯片進(jìn)行同時寫入,因此系統(tǒng)的整體操作速度提高了4倍。
并行操作的實現(xiàn)依賴于并行的NAND接口的設(shè)計。板卡中采用的K9WBG08U1M的IO位寬為8 bit。由上節(jié)的分析可知,對于200 MB·s-1的要求,需要40片存儲器并行工作,才能滿足實時存儲的要求。板上共載有40片NAND,分為4組,每組10片存儲芯片,則單板容量為40×單片存儲容量4 GB。為滿足信號驅(qū)動特性的要求,每5片F(xiàn)lash存儲芯片由FPGA單獨驅(qū)動。
評論