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