- 相關推薦
基于閃存的星載大容量存儲器的研究和實現
摘要:就閃存應用于星載大容量存儲器時的寫入速度慢、存在無效塊等關鍵問題探討了可行性解決方案,并在方案討論的基礎上論述了一個基于閃存的大容量存儲器的演示樣機的實現。空間飛行器的數據記錄設備是衛星上的關鍵設備之一。自20世紀90年代初起,各航天大國開始研制固態記錄器(Solid State Recorder,簡稱SSR)。由于SSR使用半導體存儲芯片作為存儲介質,所以其存儲密度高、無轉動部件、可靠性高、體積小、重量輕,因而逐漸成為空間飛行器的數據記錄器的主流方案。閃速存儲器(簡稱閃存)作為一種新興的半導體存儲器件,以其獨有的特點得到了迅猛的發展,其主要特點有:(1)具有非易失性,掉電時數據不丟失,可靠性高;(2)功耗小,不加電的情況下可長期保持數據信息;(3)壽命長,可以在在線工作情況下進行寫入和擦除,標準擦寫次數可達十萬次;(4)密度大、成本低,存儲單元由一個晶體管構成,具有很高的容量密度,且價格也在不斷降低;(5)適應惡劣的空間環境,具有抗震動、抗沖擊、溫度適應范圍寬等特點。由于閃存的這些特點,使它受到了航天領域研究人員的關注。20世紀90年代中期,Firechild公司就曾為F-16偵察星成功設計了SSR?2?,使用的主要存儲芯片就是閃存;國內的FY-2衛星也曾采用閃存作為該星的固態存儲器的存儲介質。雖然有這些成功的應用案例,但是閃存也存在一些明顯的缺點,如寫入速度較慢、使用過程中會出現無效塊等。本文將探討如何解決和突破這些缺點,并依此給出一個具體的系統實現方案。
1 閃存構成星載大容量存儲器的關鍵問題
1.1 寫入速度問題
目前閃存有多種技術架構,其中以NOR技術和NAND技術為主流技術?3?。NOR型閃存是隨機存取的設備,適用于代碼存儲;NAND型閃存是線性存取的設備,適用于大容量數據存儲?4?。NAND型閃存有一定的工業標準,具有一些統一的特點,現以三星公司的K9K1G08U0M型芯片為例進行介紹。該芯片容量為1Gbit,由8192個塊組成,每塊又由32個頁組成,一頁有(512+16)×8bit,該片的8位I/O總線是命令、地址、數據復用的。讀寫操作均以頁為單位,擦除操作則以塊為單位,寫入每頁的典型時間為200μs?4?,平均每寫一個字節約需400ns,即約20Mb/s。這樣的寫入(編程)速度對于要求高速的應用場合來講是難以滿足的,因此必須采取一定的技術措施。
1.1.1 并行總線技術
并行總線技術亦稱寬帶總線技術,即通過拓寬數據總線的帶寬實現數據宏觀上的并行操作。比如,由四片K9K1G08U0M型閃存芯片組成一個32位寬的閃存子模塊,它們共用相同的控制信號,包括片選信號、讀寫信號、芯片內部地址等。子模塊總是被看做一個整體而進行相同的操作,只是數據加載的時候是不同的數據。這樣,數據量將是使用單獨一塊芯片時的4倍,所以理論上速度也將是非并行時的4倍。
1.1.2 流水線技術
借鑒現今高性能計算機中的流水線操作原理,可在時間片上實現微觀并行。針對閃存的寫入速度慢的問題,可以對其進行流水處理。K9K1G08U0M型閃存的寫入操作可分為三個步驟:(1)加載操作,即完成命令、地址和數據的載入工作;(2)自動編程操作,即由閃存芯片自動完成編程操作,將載入到頁寄存器的數據寫到內部存儲單元的;(3)檢測操作,即在自動編程結束后檢測寫入的數據是否正確。如果不正確,需要重新編程;如果正確,繼續下一步的操作。寫流水原理圖如圖1所示。由圖1可以看到,流水線運行起來后,在任一時間片上總有若干小操作在同時進行,即在時間片上實現了復用,因此從整體上看速度將會提高。
1.2 無效塊的管理
三星閃存芯片在使用過程中會出現無效塊。無效塊是指一個塊中存在一個或多個無效位,其可靠性不能得到保證,必須加以標識和旁路(當然無效塊不會影響到其它塊的有效性)?4?并進行數據備份。為了對無效塊實現管理,可以建立一張無效塊到冗余區有效塊的映射表。映射表結構如圖2所示。映射原理如下: 開始是一張初始無效塊映射表,這張表可以根據三星公司技術手冊給出的算法建立起來。按照圖示的映射數據結構對整個存儲區進行編號,并根據這個編號對映射表進行排序。進行寫操作時,按照上述的映射結構將寫地址與映射表進行比較,比較到塊級即可。如果是無效塊,將待寫入的數據寫到被映射到的塊;如果不是,則直接寫入該塊。如果在寫某塊的某頁時出現編程錯誤,則將該塊添加進無效塊映射表(當編程出錯時就表明出錯頁對應的塊無效),同時從該出錯頁開始,將該塊后面的頁數據都寫入到對應的映射塊。這樣,在數據讀出時,可將讀地址與映射表比較,并且需要比較到頁級以確定每一頁的確切存放位置。如果該頁編程正確,則直接讀出;如果錯誤,則到被映射的塊的對應頁讀數據,并且該頁之后的頁也從被映射塊中讀數據。根據三星的技術資料,對無效塊進行讀操作是允許的,即對于編程出錯頁前面的那些編程正確的頁是可以正確讀出的,而對無效塊進行編程和擦除的操作是不推薦的,因為有時這些操作會使鄰近的塊也失效?4?。所以讀操作要查找到每一頁的對應存放位置,而寫操作只要查找到塊就行。查找時采用二分查找算法。擦除完后,將擦除出錯的塊也添加進無效塊映射表。無效塊映射表需要不斷維護和更新。
2 閃存構成星載大容量存儲器的系統實現方案
2.1 系統的組成
該實現方案將上述關鍵問題的解決方法融合進來,系統由存儲區模塊、接口模塊、數據緩沖模塊及主控模塊四部分組成,系統原理圖如圖3所示。
【基于閃存的星載大容量存儲器的研究和實現】相關文章:
閃存存儲器的浮柵耦合電位研究03-07
閃存在大容量數據采集系統中的應用03-07
基于主機的3D網絡應用的研究和實現03-03
基于單片機和大容量存儲器組合的特定消諧式電動車用變壓變頻系統03-20
基于SIP的多媒體終端的研究與實現03-07
基于ASP網絡銷售系統的實現與研究03-23
基于IDE硬盤的大容量語音記錄儀03-20
基于FPGA實現FIR濾波器的研究03-18