馬崇鶴,趙鳳軍,馮 杰
(中國(guó)科學(xué)院電子學(xué)研究所,北京100190)
雷達(dá)系統(tǒng)高速大容量Flash存儲(chǔ)器平臺(tái)管理的設(shè)計(jì)和應(yīng)用
馬崇鶴,趙鳳軍*,馮 杰
(中國(guó)科學(xué)院電子學(xué)研究所,北京100190)
針對(duì)雷達(dá)系統(tǒng)對(duì)記錄設(shè)備通信帶寬、容量及性能不斷增長(zhǎng)的需求,提出了一種基于Flash固態(tài)存儲(chǔ)器設(shè)計(jì)的模塊化平臺(tái)管理架構(gòu)。在分析地址管理和狀態(tài)管理的基礎(chǔ)上,通過設(shè)計(jì)一種緩存策略和有效流水記錄方式實(shí)現(xiàn)高訪存帶寬,對(duì)比壞塊處理信息形式選擇合理處理方式,根據(jù)系統(tǒng)文件特點(diǎn)提出兩種損耗均衡方法,并實(shí)現(xiàn)了單板256 Gbyte、訪存帶寬600 Mbyte/s的記錄器產(chǎn)品。實(shí)驗(yàn)證明,設(shè)計(jì)實(shí)現(xiàn)的模塊化平臺(tái)管理架構(gòu)對(duì)Flash存儲(chǔ)器管理的有效性和可靠性有很大提升。
Flash固態(tài)存儲(chǔ)器;平臺(tái)管理;訪存帶寬;壞塊處理;損耗均衡
合成孔徑雷達(dá)系統(tǒng)在很多民用與軍用領(lǐng)域發(fā)揮重要作用,如地形測(cè)繪、目標(biāo)偵查等,隨著系統(tǒng)性能的不斷提高,對(duì)處理實(shí)時(shí)性、存儲(chǔ)容量以及通信速率有著越來越高的要求,尤其對(duì)星載/機(jī)載SAR系統(tǒng)而言,實(shí)時(shí)可靠的高速大容量存儲(chǔ)設(shè)備已經(jīng)成為了系統(tǒng)的基本配置。
基于磁盤陣列的記錄系統(tǒng)[1],具有非易失性和并行陣列設(shè)計(jì)提升性能的特性,但由于其機(jī)械運(yùn)作原理,抗震性較差,體積也較大,導(dǎo)致實(shí)用性大大受限。而固態(tài)存儲(chǔ)器無論在讀寫速度、體積還是抗震性都有很大的優(yōu)勢(shì),而且具有重量輕、高性能和低功耗的優(yōu)點(diǎn)[2-3],目前被廣泛應(yīng)用的是基于Flash和DRAM的存儲(chǔ)器。國(guó)外固態(tài)存儲(chǔ)器發(fā)展比較成熟,有較多生產(chǎn)公司如Odetics、SEAKR、CALCULEX和歐空局等,產(chǎn)品也比較成熟和多樣化,例如SEAKR公司GEN系列產(chǎn)品,其參數(shù)見圖1(a);國(guó)內(nèi)開展星載固態(tài)存儲(chǔ)技術(shù)的研究工作起步較晚,始于九十年代中期,研制單位多為科研院所,如航天804,中科院光電研究院和北理工雷達(dá)所等,目前國(guó)內(nèi)在軌衛(wèi)星中使用的存儲(chǔ)器件多數(shù)采用DRAM器件如嫦娥1號(hào)衛(wèi)星,使用Flash器件的如HJ-1C雷達(dá)衛(wèi)星。
Flash邏輯設(shè)計(jì)較為復(fù)雜,但具有斷電非易失性,并且在價(jià)格、訪問延遲、傳輸帶寬、密度和能耗方面彌補(bǔ)了DRAM和磁盤的性能差異[4]。根據(jù)Flash的讀寫特性,如何通過Flash設(shè)計(jì)提高存儲(chǔ)容量和訪存帶寬,使其適用不同場(chǎng)合并提高文件管理有效性成了大家關(guān)注的問題。提高存儲(chǔ)器通信帶寬的方式同時(shí)也在發(fā)生變化,采用內(nèi)部互連并行方式如PCI總線可以實(shí)現(xiàn)[5],但已不能滿足現(xiàn)在一些高存儲(chǔ)速率和高可靠性的要求;高速串行傳輸技術(shù)[6]正在成為主流被廣泛應(yīng)用,目前如Xilinx的很多系列的芯片都集成了能實(shí)現(xiàn)高速串行數(shù)據(jù)率的RocketIO模塊[7],極大地減小線路噪聲、信號(hào)衰減和時(shí)鐘失真對(duì)接收性能的影響,接收串行數(shù)據(jù)速率可達(dá)10 Gbit/s以上。
本文針對(duì)某輕小型合成孔徑雷達(dá)系統(tǒng)項(xiàng)目,實(shí)現(xiàn)了兩路基于Virtex-5系列FPGA和三星NAND Flash的固態(tài)記錄器的設(shè)計(jì),根據(jù)系統(tǒng)要求及系統(tǒng)特點(diǎn)設(shè)計(jì)了模塊化平臺(tái)管理方式,記錄板實(shí)現(xiàn)效果和參數(shù)如圖1(b)。本記錄器采用Rock?etIO接口與外部通信,并改進(jìn)與記錄器對(duì)應(yīng)的回放設(shè)備,整個(gè)采集記錄回放總系統(tǒng)如圖2所示。以上論述為導(dǎo)論,正文內(nèi)容安排如下:第1章介紹存儲(chǔ)器的模塊管理體系結(jié)構(gòu)和地址管理及狀態(tài)流程設(shè)計(jì);第2章重點(diǎn)講解訪存設(shè)計(jì)、壞塊管理和損耗均衡模塊的邏輯設(shè)計(jì)和改進(jìn)方法;第3章為系統(tǒng)實(shí)現(xiàn)及實(shí)驗(yàn)結(jié)果;第4章總結(jié)本文并提出改進(jìn)計(jì)劃。
圖1 SEAKR公司GEN系列產(chǎn)品和本設(shè)計(jì)產(chǎn)品對(duì)比圖
圖2 記錄器總系統(tǒng)框圖
1.1 管理模塊架構(gòu)
Flash存儲(chǔ)器的記錄和回放功能作為雷達(dá)系統(tǒng)中數(shù)據(jù)采集轉(zhuǎn)發(fā)的樞紐,其設(shè)計(jì)需要考慮4個(gè)方面的問題:一是滿足上下行的通信速率要求,與此同時(shí)訪存帶寬要與通信帶寬相匹配,否則會(huì)造成數(shù)據(jù)傳輸過程中的瓶頸[8];二是降低數(shù)據(jù)誤碼率,包括鏈路誤碼和存儲(chǔ)誤碼;三是文件系統(tǒng)管理,可以很方便的讀出和寫入文件信息;四是存儲(chǔ)器使用管理,包括不同存取模式的切換以及芯片使用狀態(tài)信息。綜合考慮上述問題,并同時(shí)滿足SAR系統(tǒng)的指標(biāo)要求,本文提出并設(shè)計(jì)了如圖3所示的驅(qū)動(dòng)管理方式。以地址管理和數(shù)據(jù)管理為核心,以狀態(tài)管理為主控制,輔助以壞塊管理和損耗均衡管理,通過Flash控制器驅(qū)動(dòng)存儲(chǔ)芯片,通過RocketIO模塊和VPX、光纖接口與外界通信。
圖3 FPGA存儲(chǔ)器管理平臺(tái)規(guī)劃設(shè)計(jì)
1.2 管理模塊設(shè)計(jì)
1.2.1 文件和地址管理
本設(shè)計(jì)利用32片F(xiàn)lash并行組成存儲(chǔ)模塊,并可以靈活的分成多組存儲(chǔ)。由于廠商協(xié)議的TSOP或BGA的通用封裝,每片F(xiàn)lash容量可選范圍普遍為2 Gbyte~64 Gbyte;那么一路存儲(chǔ)板可拓展容量為64 Gbyte~2 Tbyte;以三星K9NCG08U5M-8GB為例,其容量計(jì)算如式,每個(gè)芯片包含4個(gè)plane,相當(dāng)于4小片疊加,每個(gè)小片包含8 192個(gè)塊,各有讀寫控制線和狀態(tài)指示,但共享一組8 bit數(shù)據(jù)/地址總線。
地址總線設(shè)計(jì)與Flash的并行設(shè)計(jì)有關(guān),本文地址編碼基于訪存帶寬和壞塊處理方式設(shè)計(jì)考慮,將32片按照plane分成4組,邏輯地址編碼為0x000000~0x1FFFFF,page占6 bit,block占13 bit,plane占2 bit,由地址管理中心統(tǒng)一管理;由物理地址到邏輯地址的轉(zhuǎn)化映射如圖4所示。
圖4 邏輯地址映射圖
每個(gè)芯片的第1個(gè)block由于芯片廠家保證的高穩(wěn)定性被普遍用來存儲(chǔ)重要信息,本文利用0x000000+0x40、0x080000+40、0x100000+0x40和0x180000+0x40來存儲(chǔ)以下重要信息:芯片信息,包括芯片編號(hào)、真實(shí)容量(去除壞塊編碼計(jì)算所得)和剩余容量;壞塊信息,存儲(chǔ)壞塊地址編碼;文件系統(tǒng),包括文件編號(hào)、記錄時(shí)間和文件大小,文件地址形式為起始地址+占用塊數(shù)。
1.2.2 狀態(tài)管理
本文為了適用不同的記錄要求,設(shè)計(jì)了兩種記錄模式:記錄模式、邊寫邊讀模式。其中記錄模式為最常用、最普通模式;邊寫邊讀模式以記錄為優(yōu)先,DDR緩存數(shù)據(jù),在暫存數(shù)據(jù)期間及時(shí)下傳數(shù)據(jù)。本文設(shè)計(jì)了以記錄模式為核心的狀態(tài)機(jī),根據(jù)命令和芯片工作狀態(tài)不斷的切換Flash讀寫狀態(tài),來存儲(chǔ)和回放不同類型的數(shù)據(jù),這些轉(zhuǎn)化和控制的簡(jiǎn)化流程如圖5所示。
圖5 狀態(tài)切換設(shè)計(jì)
2.1 訪存帶寬策略設(shè)計(jì)
記錄器與數(shù)據(jù)采集系統(tǒng)通過應(yīng)用Aurora協(xié)議的RocketIO硬件模塊及VPX接口通信,與數(shù)傳系統(tǒng)通過RocketIO模塊及光纖接口通信。Virtex-5支持RocketIO接口速度為100 Mbit/s~6.25 Gbit/s,支持多通道綁定提高通信速率[9],應(yīng)系統(tǒng)要求,存儲(chǔ)器通信接口帶寬為3.125 Gbit/s。為了防止數(shù)據(jù)丟失或影響通信速率,訪問Flash存儲(chǔ)器的速率需要大于通信速率,并最好留有足夠的裕量。如果Flash的驅(qū)動(dòng)方式采用最常見的異步Page-Program方式,提高訪存帶寬的方法有兩種[10-11]:芯片并行拓展和分組間流水線,這主要考慮到Flash的寫操作分兩個(gè)階段,一是寫指令數(shù)據(jù),二是自動(dòng)編程寫入,由于后者自動(dòng)完成不用控制,也不占用總線,便在一組自動(dòng)編程階段,對(duì)另一組寫指令數(shù)據(jù),依次類推。
2.1.1 緩存結(jié)構(gòu)設(shè)計(jì)
本文應(yīng)用32片K9NCG08U5M-8GB并行作為存儲(chǔ)設(shè)備,可以根據(jù)不同的使用情況自由地分成多組存儲(chǔ),以平衡速率與資源及性能的關(guān)系。本文根據(jù)驅(qū)動(dòng)方式和硬件結(jié)構(gòu),設(shè)計(jì)了一套緩存結(jié)構(gòu),實(shí)現(xiàn)了Flash的數(shù)據(jù)存儲(chǔ)前準(zhǔn)備,并幫助篩選提高訪存速率、減低資源消耗和提升性能的優(yōu)先存儲(chǔ)方式。簡(jiǎn)化結(jié)構(gòu)圖如圖6所示,分成前段和后端。前段是通信數(shù)據(jù)的緩存,Rocket IO通信接口速率為3.125 Gbit/s,應(yīng)用8b/10b編碼,最后輸出速率為125 M的16 bit數(shù)據(jù),經(jīng)過buf0緩沖為32 bit,buf0容量比較小,不承擔(dān)任何數(shù)據(jù)控制問題,一有數(shù)據(jù)就傳遞給buf1;后端如圖6所示是存儲(chǔ)前的數(shù)據(jù)準(zhǔn)備,buf1充當(dāng)了Flash數(shù)據(jù)庫(kù),接收前段62.5 Mbyte的32 bit數(shù)據(jù),buf1的容量和傳遞時(shí)鐘與Flash存儲(chǔ)方式及Flash使用效率有關(guān)。
2.1.2 存儲(chǔ)方式設(shè)計(jì)
首先以一組即32片單plane存儲(chǔ)分析buf1的使用。一組即為256 bit總線,在Flash允許接收時(shí)buf1傳遞256 bit數(shù)據(jù)給32片F(xiàn)lash,總的來說,為了保證數(shù)據(jù)正常傳輸,buf1的傳遞時(shí)鐘應(yīng)該高于62.5 MHz÷8=7.812 5 MHz,并應(yīng)留有一定裕量。寫Flash分寫指令數(shù)據(jù)和自動(dòng)編程時(shí)間,K9NCG08U5M芯片的寫時(shí)鐘不低于45 ns,寫時(shí)鐘范圍10 MHz~20 MHz,以10 MHz時(shí)鐘為例,每次數(shù)據(jù)傳輸單位為一頁(yè)共4 224 byte,F(xiàn)lash指令數(shù)據(jù)階段中命令和數(shù)據(jù)加地址約為4 500個(gè)寫時(shí)鐘,那么Flash第一階段用時(shí)為4 500×100 ns=450μs,F(xiàn)lash自動(dòng)編程典型時(shí)間為200μs,最大700μs,經(jīng)接收狀態(tài)統(tǒng)計(jì)和測(cè)試不多于500μs,那么寫一頁(yè)Flash花費(fèi)950μs。Flash前期讀出數(shù)據(jù)要一次性讀取4 224 byte,buf1的輸入和傳遞同時(shí)進(jìn)行,那32片則要求讀取時(shí)buf1已有至少(1-7.812 5 M/10 M)× 4 224×8≈7 392個(gè)32 bit數(shù)據(jù);同時(shí)為了一次完整的寫Flash過程中buf1不丟失數(shù)據(jù),buf1至少有950μs×62.5 MHz-4 224×8=25 583個(gè)32 bit數(shù)據(jù)的存儲(chǔ)空間;所以設(shè)置buf1容量>25 583×32 bits,傳遞時(shí)鐘為與Flash寫時(shí)鐘同相同源的10 MHz,并設(shè)置7 392×32 bits大小為寫Flash數(shù)據(jù)命令使能之一,在Flash數(shù)據(jù)記錄過程,芯片的使用率是25%。利用以上參數(shù)可以計(jì)算出在10 MHz寫時(shí)鐘下一組存儲(chǔ)的訪存速率為 4 224×32/950μs=142.2 Mbyte/s,沒有滿足大于該通信帶寬的要求,數(shù)據(jù)會(huì)丟失。利用上述分析過程將1組、2組和4組流水過程在10 MHz寫時(shí)鐘和20 MHz寫時(shí)鐘下的分析結(jié)果作比較,如圖7所示。
圖6 訪存緩存結(jié)構(gòu)圖
圖7 不同存儲(chǔ)方式對(duì)比(K9NCG08U5M)
由圖7可以看出,選取32片K9NCG08U5M作為存儲(chǔ)芯片,通過此緩存結(jié)構(gòu)策略和芯片讀寫編程特性分析,共有4個(gè)存儲(chǔ)方式滿足大于250 Mbyte/s通信帶寬,其中在10 MHz寫時(shí)鐘下,分兩組和分4組對(duì)buf1容量要求較低,在20 MHz寫時(shí)鐘下,分2組和分4組可以實(shí)現(xiàn)更高的訪存速率。此方法對(duì)使用其他芯片的存儲(chǔ)架構(gòu)亦有幫助分析和借鑒的價(jià)值。
2.2 壞塊管理分析
壞塊問題是Flash存儲(chǔ)器不可回避的問題之一,由于工藝水平,芯片出廠時(shí)便存在一些無效塊,在以后寫和擦除操作中,又會(huì)因?yàn)榇鎯?chǔ)單元出錯(cuò)或地址線出錯(cuò)等原因,以小于2%的概率變成壞塊。壞塊處理從本質(zhì)上可以分為3步:掃描壞塊、存儲(chǔ)壞塊信息[12]、讀出壞塊信息并跳過壞塊[13]。掃描壞塊是通過對(duì)塊執(zhí)行寫或擦除命令,根據(jù)其返回狀態(tài)來判斷塊的好壞。將壞塊信息存儲(chǔ)在Flash的首塊中,避免重復(fù)掃描,并如圖5所示,在上電起始將壞塊信息讀入RAM,經(jīng)過解碼電路,供地址管理解碼使用。
使用的壞塊信息方式,常用的是以1 bit來代表一個(gè)塊的好與壞;還有在此編碼基礎(chǔ)上實(shí)現(xiàn)的優(yōu)化設(shè)計(jì)[14],思想是3 bit表示4個(gè)塊狀態(tài),再利用壞塊重構(gòu)技術(shù)解決同位置壞塊問題,隨著并行數(shù)增加,這種處理方法就變得比較復(fù)雜,本文不做討論;直接存儲(chǔ)壞塊的地址編碼是本文的另一個(gè)思路,塊地址編碼為以2 byte表示。
以地址編碼0x000000~0x07FFFF為例,對(duì)于跳過壞塊的處理方式首先想到有兩種:一種是32片組成一個(gè)256 bit數(shù)據(jù)總線的芯片,只有一個(gè)壞塊表,一個(gè)芯片的壞塊位置對(duì)應(yīng)的地址編碼,代表整體編碼的壞塊位置,也就是損失了其他芯片該位置的有效塊;二是每個(gè)芯片都有一個(gè)壞塊表,意味著每個(gè)芯片的底層地址編碼是獨(dú)立的,所有芯片中最小的容量成了這一路總?cè)萘?,由此可以想到,?2分組,其效果是基于兩者之間的,并按分組數(shù)多少規(guī)律遞變。最后FPGA存儲(chǔ)壞塊方式以RAM方式優(yōu)先。
綜上分析,存儲(chǔ)壞塊的兩種方式:1 bit和地址編碼,以及選取并行處理的兩種極端選擇:一組和32組,共可以組合成4種方式,每種方式都是隨著壞塊的多少,在不同程度上影響著資源消耗,程序復(fù)雜度以及損失的有效塊數(shù)量,這4種方式的影響對(duì)比如圖8所示。
1個(gè)壞塊生成的概率大約為2%,并且1個(gè)4 096塊NAND Flash Die(LUN),普遍保證NVB(Mini?mum Number of Valid Blocks)不少于3 996塊。根據(jù)壞塊的量級(jí)以及FPGA的資源富裕程度、有用塊的損失對(duì)總?cè)萘坑绊懙娜萑潭群途幊痰膹?fù)雜度,配合存儲(chǔ)分組方式和地址編碼,來選擇合適的壞塊處理方式。
圖8 不同壞塊表處理方式隨壞塊變化的影響
2.3 損耗均衡管理
損耗均衡問題是因?yàn)镕lash存在擦數(shù)次數(shù)的限制,為了保證整體壽命,要求各個(gè)有效塊的擦數(shù)次數(shù)差距近可能小。因?yàn)槔走_(dá)系統(tǒng)記錄的特點(diǎn),普遍文件比較大而且連續(xù)記錄,本設(shè)計(jì)的文件系統(tǒng)信息是以塊為存儲(chǔ)地址單位的,最可能出現(xiàn)的問題是剩余容量不足造成的反復(fù)擦寫前面塊的次數(shù)要比后面的次數(shù)多,解決這個(gè)問題的方法就是更新起始地址,標(biāo)記下每次因?yàn)槿萘坎粔虿脸龝r(shí)寫到最后的塊地址,下次此地址作為地址編碼的起始地址開始記錄。
另外一種情況下,項(xiàng)目中將該記錄器作為更為普通的應(yīng)用,需要保留住部分文件,將它前面的文件回放,然后反復(fù)記錄回放造成多次擦寫,則需要更有效的處理策略。針對(duì)損耗問題,已有人提出修改文件簇信息并建立映射表的方法思想[15];基于計(jì)數(shù)方式及隨機(jī)方式的均衡使用策略[16];根據(jù)位置指針?biāo)肝锢韷K的相對(duì)擦除次數(shù)差來決定損耗均衡是否需要啟動(dòng)和損耗均衡需要的物理塊地址[17]等。根據(jù)記錄文件的特性,本文提出了三階段方法簡(jiǎn)約處理該系統(tǒng)環(huán)境下的損耗問題,不以每個(gè)塊為單位,而是以文件為單位,有效文件和空閑文件,每次無需記錄每個(gè)塊的擦除信息,只記錄空閑文件的位置和擦除次數(shù),不影響邏輯地址的映射關(guān)系,只是不斷更新記錄地址,同時(shí)設(shè)定觸發(fā)界限bMAX。
Step 2 按地址從小到大,有效文件替換空閑文件。如圖9所示,用空閑文件后面的有效文件替換,兩者之間的大小關(guān)系并不影響,反復(fù)幾次,最后空閑文件聚在最后位置成了一個(gè)大文件,記為F,在Flash的最后地址上,容量記為M,反復(fù)擦寫達(dá)到bMAX后進(jìn)入Step3。
Step 3 按地址從大到小,F(xiàn)前移。將F前面的文件拆成兩部分,后部分的容量為M,用該文件的后M大小替換F,該文件的地址就被拆成兩部分,空閑塊前移,每次觸發(fā)bMAX就按此規(guī)律按地址從大到小移動(dòng)F,循環(huán)下去,直到Flash全局擦除時(shí),將此時(shí)F所在位置的首塊地址作為新一輪的起始地址,進(jìn)入Step 1。
圖9 三階段均衡方法示意圖
3.1 硬件實(shí)現(xiàn)
Flash存儲(chǔ)器實(shí)現(xiàn)的單板參數(shù)如圖1(b)所示,具體實(shí)現(xiàn)參數(shù)見表1。存儲(chǔ)器記錄數(shù)據(jù)采集板采集的I、Q兩路信號(hào),在應(yīng)用中是雙板應(yīng)用,如圖10所示,有的系統(tǒng)存儲(chǔ)的是完全分開的I、Q兩路信號(hào),大多系統(tǒng)存儲(chǔ)的是IQ兩路混合信號(hào),避免一路信號(hào)信噪比太差而影響解碼。
表1 記錄器單板具體參數(shù)
圖10 應(yīng)用系統(tǒng)中的記錄器
3.2 測(cè)試結(jié)果
3.2.1 訪存帶寬實(shí)現(xiàn)
本設(shè)計(jì)根據(jù)記錄器的通信帶寬和系統(tǒng)的要求,最終采取了以訪存速率為優(yōu)先的存儲(chǔ)方式,為以后的通信綁定升級(jí)帶寬做準(zhǔn)備,并統(tǒng)一化程序,所以本文應(yīng)用緩存結(jié)構(gòu)的存儲(chǔ)方式最終實(shí)現(xiàn)如表2所示。
表2 速率實(shí)現(xiàn)
3.2.2 壞塊處理結(jié)果
壞塊數(shù)是作為系統(tǒng)信息存儲(chǔ)在Flash首塊中,經(jīng)過長(zhǎng)達(dá)約4個(gè)月的測(cè)試和應(yīng)用,統(tǒng)計(jì)壞塊數(shù)的變化,32片總壞塊數(shù)從275到280,設(shè)計(jì)4組地址編碼每組共用一個(gè)壞塊表,采用存儲(chǔ)壞塊地址編碼的方式,共4組壞塊信息,如表3所示。在不同plane組寫操作時(shí),地址管理根據(jù)此plane組的壞塊地址編碼跳過壞塊,跳過和不跳過壞塊對(duì)比實(shí)例如圖11所示,可以看出壞塊存儲(chǔ)的數(shù)據(jù)均為00。
表3 4組壞塊信息
圖11 壞塊實(shí)例
3.2.3 損耗均衡結(jié)果
本設(shè)計(jì)損耗均衡程序是按照第1種情況寫的,記錄第0x0、0x400、0x800…共31個(gè)塊的擦除次數(shù),結(jié)果如圖12(a)所示,為了顯示效果,全部數(shù)據(jù)減去基數(shù)100;第2種情況是Matlab仿真的結(jié)果,文件模型的大小隨機(jī),先仿真整個(gè)數(shù)據(jù)記錄和數(shù)據(jù)轉(zhuǎn)移過程,在其過程中每一次的數(shù)據(jù)刪除將相應(yīng)位置塊的擦除次數(shù)加1,統(tǒng)計(jì)疊加,結(jié)果如圖12(b)所示,為了顯示效果,全部數(shù)據(jù)減去基數(shù)700。從圖中得出方式1的擦除次數(shù)最大差8,方式2擦除差距最大差19。
圖12 塊擦除次數(shù)實(shí)測(cè)和仿真
本文于滿足雷達(dá)系統(tǒng)對(duì)于記錄器速率和容量要求的基礎(chǔ)上,在FPGA上實(shí)現(xiàn)了Flash存儲(chǔ)器的平臺(tái)化有效管理,對(duì)地址管理、狀態(tài)管理、訪存帶寬策略、壞塊處理和損耗均衡提出了不同程度的分析和改進(jìn)設(shè)計(jì),并應(yīng)用在實(shí)際的存儲(chǔ)系統(tǒng)中。雖然在實(shí)現(xiàn)上并沒有FAT文件系統(tǒng)的隨機(jī)讀寫性能高,但這種靈活的配置,拓展的可操作性,可大幅提高速率等性能的方式卻可以很好的滿足對(duì)要求記錄和回放大文件和多文件的雷達(dá)項(xiàng)目系統(tǒng)的諸多要求。接下來,我們會(huì)在大容量芯片的糾錯(cuò)設(shè)計(jì)上做深入研究。
[1]Pu H.Study on Ultra-High Speed SAR Raw Data Recorder Based on Disk Array[J].Journal of Electronics&Information Technology,2009,31(3):749-751.
[2]吳昊.高速大容量固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)[D].西安:西安電子科技大學(xué),2010.
[3]李晴.高速大容量NAND FLASH存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京理工大學(xué),2015.
[4]鄭文靜,李明強(qiáng),舒繼武.Flash存儲(chǔ)技術(shù)[J].計(jì)算機(jī)研究與發(fā)展,2010,47(4):716-726.
[5]李申,張萍,趙磊,等.基于PCIE光纖接口卡的雷達(dá)目標(biāo)分類系統(tǒng)[J].電子技術(shù)與軟件工程,2014,10:97-98.
[6]Rong-wei W,Tao S,Zhong-ying L.Application of Rocket IO in High-speed Data Communication[J].Communications Technology,2010,11:6.
[7]席鵬飛,范曉星,冉焱.基于RocketIO的FPGA互連研究及應(yīng)用[J].電子科技,2015,28(1):118-121.
[8]張科,郝智泉,王貞松.一種基于新體系結(jié)構(gòu)的空間固態(tài)記錄器原型系統(tǒng)[J].電子學(xué)報(bào),2008,36(2):285-290.
[9]Conpration X.Xilinx UG196 Virtex-5 RocketIO GTP Transceiver user guide[Z].2007.
[10]Guojie Q,Min X,Guoman L,et al.An Ultra-High Speed SAR Raw Data Recording and Playback System Based on NAND Flash[J].Radar Conference 2013,IET International,2013:1-4.
[11]宮永生,王強(qiáng),蘇建.基于FLASH星載存儲(chǔ)器的高效管理研究[J].微計(jì)算機(jī)信息,2010,26(5):151-152+163.
[12]張?chǎng)?,崔建杰,張?一種多通道NAND Flash陣列的壞塊管理方案[J].電子器件,2014,37(5):816-821.
[13]舒文麗,吳云峰,趙啟義,等.NAND Flash存儲(chǔ)的壞塊管理方法[J].電子器件,2011,34(5):580-583.
[14]賈源泉,肖儂,賴明澈,等.基于NAND FLASH的多路并行存儲(chǔ)系統(tǒng)中壞塊策略的研究[J].計(jì)算機(jī)研究與發(fā)展,2012,49(z1):68-72.
[15]謝琦,胡俊,王磊.FAT文件系統(tǒng)在NAND FLASH上的磨損均衡研究[J].微電子學(xué)與計(jì)算機(jī),2011,28(7):34-37.
[16]趙偉,熊建林,胡劍平.基于NAND Flash的星載記錄器均衡使用設(shè)計(jì)[J].遙測(cè)遙控,2010,31(3):34-38.
[17]王偉能,羅志坤,彭瀟,等.一種有效減小最大擦除次數(shù)差的損耗均衡設(shè)計(jì)[J].電子學(xué)報(bào),2015,43(7):1344-1348.
馬崇鶴(1990-),男,漢族,籍貫山東菏澤,中國(guó)科學(xué)院電子學(xué)研究所碩士,主要研究領(lǐng)域?yàn)闊o線通信和數(shù)據(jù)記錄技術(shù),machonghe13@mails.ucas.ac.cn;
趙鳳軍(1963-),男,漢族,博導(dǎo),中國(guó)科學(xué)院電子學(xué)研究所研究員,長(zhǎng)期從事雷達(dá)系統(tǒng)和射頻微波技術(shù)的研究,fjzhao@ mail.ie.ac.cn;
馮 杰(1972-),男,漢族,中國(guó)科學(xué)院電子學(xué)研究所副研究員,長(zhǎng)期從事雷達(dá)數(shù)據(jù)記錄的研究。
Design and Application of Platform Management for Flash Storage in Radar System
MA Chonghe,ZHAO Fengjun*,F(xiàn)ENG Jie
(Institute of Electronics,Chinese Academy of Sciences,Beijing 100190,China)
In order to meet the growing demand of recording storage devices on communication bandwidth,capacity and performance for radar system,a module-based manageable platform architecture for Flash solid-state memory is presented.After the analysis of address management and recording flow,designing of the cached strategy and the effective pipeline-recording mode to increase high memory access bandwidth is proposed.Then impacts of different methods of processing bad blocks’information are compared to select an efficient treatment.And measures to balance wear leveling in both cases measurements are made.Finally the recording board with capacity of 256 Gbyte is implemented with memory bandwidth approaching 600 Mbyte/s.The effectiveness and reliability of flash memory management are improved by the design and implementation of the management platform architecture.
flash solid-state memory;management platform;memory access bandwidth;bad blocks management;wear leveling
TP333
A
1005-9490(2016)06-1407-09
6320
10.3969/j.issn.1005-9490.2016.06.025
件塊變成空閑塊。文件N被刪除后,相應(yīng)文件信息表中文件標(biāo)志符改成文件-空閑狀態(tài),這時(shí)候依然當(dāng)作文件處理,不寫數(shù)據(jù),只有寫滿Flash時(shí),標(biāo)識(shí)符改成空閑狀態(tài),稱為空閑文件,才開始按地址順序擦寫此部分,當(dāng)擦除次數(shù)差達(dá)到bMAX時(shí)進(jìn)入Step2。
2015-11-24 修改日期:2016-01-11