基于FPGA的存儲解決方案——閃存
不像SRAM,閃存不能通過(guò)簡(jiǎn)單的寫(xiě)入操作進(jìn)行更新。對閃存設備的每一次寫(xiě)入操作都需要一個(gè)寫(xiě)指令,包含一組固定的讀寫(xiě)操作序列。閃存在寫(xiě)入前需要先進(jìn)行擦除。所有的閃存設備都被劃分為一定數量的可擦模塊,或扇區,二者的差異是可擦區域的大小,依據閃存廠(chǎng)商和設備大小而定。
優(yōu)點(diǎn)
閃存存儲器的主要的優(yōu)點(diǎn)是非易失性?,F代嵌入系統廣泛使用閃存來(lái)存儲啟動(dòng)代碼和設置值,以及較大的數據模塊如音頻或視頻流等。很多嵌入系統使用閃存作為硬盤(pán)驅動(dòng)的低能耗、高穩定性的替代品。
相對與其它非易失性存儲器,閃存由于下面四種原因更加常用:
健壯性
可擦性
可重復擦寫(xiě)
成本低
閃存存儲器可以與共享其它閃存設備共享總線(xiàn),甚至與其它種類(lèi)的外部存儲器,如外部SRAM或SDRAM。
缺點(diǎn)
閃存的主要缺點(diǎn)是它的寫(xiě)入速度。由于你只能通過(guò)專(zhuān)用的命令寫(xiě)入閃存設備,每次閃存寫(xiě)入都需要多個(gè)總線(xiàn)轉換操作。更進(jìn)一步說(shuō),一旦送出寫(xiě)入命令,實(shí)際的寫(xiě)入時(shí)間可能達到幾微秒。依據時(shí)鐘速度,實(shí)際寫(xiě)入時(shí)間可達幾百個(gè)時(shí)鐘周期。由于扇區擦除受到約束,如果你需要改變閃存中的一個(gè)字數據,你必須完成下面步驟:
1. 復制整個(gè)扇區的內容到暫時(shí)的緩沖區
2. 擦除整個(gè)扇區
3. 改變在緩沖區中的單個(gè)字數據
4. 緩沖區內容寫(xiě)回到閃存
這個(gè)流程導致閃存存儲器設備的寫(xiě)入速度較慢。由于其糟糕的寫(xiě)入速度,閃存通常只用于存儲必須斷電后保持的數據。
最佳應用場(chǎng)合
閃存存儲器適用于儲存任何你希望在斷電后保持的數據。常見(jiàn)的閃存應用與存儲下面項目:
微處理器的啟動(dòng)代碼
微處理器在系統開(kāi)始時(shí)復制到RAM中的應用程序代碼
恒定的系統設置,例如:網(wǎng)卡MAC地址、校準數據、用戶(hù)信息
FPGA參數圖像
多媒體(音頻、視頻)
不適于應用場(chǎng)合
由于閃存存儲器是寫(xiě)入速度較慢,不應使用閃存存儲不需要斷電后保持的數據。如果可以使用易失性存儲器時(shí)可以選用SRAM。使用閃存存儲器的系統通常也會(huì )同時(shí)使用SRAM。
一個(gè)很不適于閃存的應用場(chǎng)合是在微處理器的應用程序代碼的直接執行。如果這些代碼的可寫(xiě)部分被部署在閃存中,這些軟件根本不會(huì )工作,因為閃存不使用專(zhuān)用的寫(xiě)入命令便不能夠寫(xiě)入。將應用程序代碼儲存在閃存中的系統通常會(huì )在執行之前先將這些應用程序復制到SRAM中。
閃存的種類(lèi)
閃存設備有多種,最常用的種類(lèi)如下:
CFI閃存 – 這是最常用的閃存存儲器種類(lèi)。它使用并行接口。CFI代表常見(jiàn)閃存接口,這是所有CFI閃存設備都固有的一種標準。SOPC Builder和Nios II processor都有對CFI閃存的內置支持。
串行閃存 – 這種閃存使用串行接口以節省Pin腳和板上空間。由于很多串行閃存設備都有自己專(zhuān)用的接口協(xié)議,最好是先通讀串行閃存設備的數據表然后進(jìn)行選擇。Altera ECOS配置設備便是一種串行閃存。
NAND閃存 – NAND閃存是最近才興起的一種新型的閃存存儲器。NAND閃存可以達到很高的數據容量,單個(gè)設備可高達數GB。相對于CFI閃存,NAND閃存的接口稍有變復雜。它需要一個(gè)專(zhuān)用的控制器或是智能的低級驅動(dòng)軟件。你可以在A(yíng)ltera FPGA中使用NAND閃存,但是Altera不會(huì )提供任何內置的支持。
編輯:博子
評論