• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      FLASH寫溢出功能測(cè)試與問(wèn)題分析

      2018-08-18 08:23:26寧?kù)o劉國(guó)斌祝周榮劉偉陳云

      寧?kù)o 劉國(guó)斌 祝周榮 劉偉 陳云

      摘要:當(dāng)使用FLASH來(lái)存儲(chǔ)數(shù)據(jù)時(shí),相同的地址不能重復(fù)寫入數(shù)據(jù)。在沒(méi)有擦除的情況下,重復(fù)對(duì)同一個(gè)地址進(jìn)行寫操作,會(huì)使得存儲(chǔ)的數(shù)據(jù)內(nèi)容出錯(cuò),從而導(dǎo)致從FLASH中讀出的數(shù)據(jù)出錯(cuò)。因此,需要對(duì)FLASH的寫溢出功能進(jìn)行測(cè)試。當(dāng)FLASH中的所有好塊被占用,F(xiàn)PGA應(yīng)能自動(dòng)停止寫入數(shù)據(jù),等待下一輪的寫操作。

      關(guān)鍵詞:FLASH;自動(dòng)寫停;擦除操作;FPGA

      中圖分類號(hào):TP333 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)04-0212-02

      FLASH存儲(chǔ)器由于其容量較大,體積較小,掉電數(shù)據(jù)不丟失,讀寫速度快等優(yōu)點(diǎn),適用于大數(shù)據(jù)的存儲(chǔ)[1]?;贔LASH本身的固有特性,F(xiàn)LASH存儲(chǔ)器在寫入數(shù)據(jù)前應(yīng)進(jìn)行擦除操作,并且不能對(duì)同一地址進(jìn)行多次的寫操作,否則會(huì)導(dǎo)致存儲(chǔ)的數(shù)據(jù)變?yōu)閬y碼。因此無(wú)論設(shè)計(jì)方的需求中是否明確提出需求,都需要對(duì)FLASH進(jìn)行寫溢出功能測(cè)試。

      1 FPGA對(duì)FLASH的控制流程

      對(duì)FLASH的擦除/讀/寫操作是通過(guò)FPGA(現(xiàn)場(chǎng)可編程邏輯門陣列)發(fā)送指令來(lái)控制的,常用的指令包括復(fù)位指令、擦除指令、寫操作指令、讀操作指令等。

      由于生產(chǎn)工藝的原因,F(xiàn)LASH在出廠前就存在壞塊,記錄該壞塊信息的稱為初始?jí)膲K表。在對(duì)FLASH擦除/讀/寫操作過(guò)程中,也有可能產(chǎn)生壞塊[2]。因此,F(xiàn)PGA需不斷更新壞塊表來(lái)標(biāo)記FLASH中的壞塊位置。這就要求設(shè)計(jì)與驗(yàn)證時(shí)需要充分考慮壞塊在整個(gè)基片中的分布情況以確保FLASH能正常工作。

      FPGA對(duì)FLASH控制主流程主要有擦除流程、寫流程、讀流程、壞塊管理流程等。若當(dāng)前狀態(tài)為擦除狀態(tài)且擦除結(jié)束標(biāo)志有效時(shí),則執(zhí)行壞塊管理流程;若當(dāng)前狀態(tài)為頁(yè)寫狀態(tài)且非寫溢出時(shí)執(zhí)行寫流程;若當(dāng)前狀態(tài)為頁(yè)讀狀態(tài)且非讀溢出時(shí)執(zhí)行讀流程。

      2 測(cè)試平臺(tái)的搭建

      仿真測(cè)試是在Linux操作系統(tǒng)下VCS2010環(huán)境下進(jìn)行的。構(gòu)建激勵(lì)模型,編寫執(zhí)行腳本Makefile文件,觀察結(jié)果輸出,檢查被測(cè)模塊的功能實(shí)現(xiàn)。激勵(lì)模型框圖如1所示。

      該FPGA產(chǎn)品的主要功能是接收文件控制FPGA的遙控指令,接收各路載荷數(shù)據(jù)并對(duì)接收的數(shù)據(jù)進(jìn)行復(fù)接處理后存儲(chǔ)到FLASH中,或者從FLASH存儲(chǔ)陣列中讀出數(shù)據(jù),發(fā)送給各功能模塊。管理FLASH中的壞塊表,完成壞塊表的更新和重構(gòu)。在搭建激勵(lì)模型時(shí),需要模擬不同壞塊分布情況下的FLASH模型。

      根據(jù)激勵(lì)模型圖,主要需構(gòu)建以下幾組測(cè)試模塊,如表1所示。

      3 FLASH寫溢出功能測(cè)試

      FPGA接收寫指令后,查詢?cè)搲K是否為好塊,若為好塊,查詢FLASH是否寫溢出,寫溢出則結(jié)束這一輪的寫操作,否則往FLASH中存儲(chǔ)數(shù)據(jù)。

      我們需要測(cè)試不同壞塊分布情況的,F(xiàn)LASH自動(dòng)寫停功能是否正常。因此,需要在FLASH的模型中設(shè)置不同的壞塊分布情況。

      (1)設(shè)置最后一塊為好塊,且相鄰塊為好塊:

      FLASH模型設(shè)置最后一塊為好塊且相鄰塊為好塊時(shí),當(dāng)寫指針wr_addr達(dá)到最后一塊時(shí),該FLASH被寫滿,寫溢出標(biāo)志wr_over置高,F(xiàn)PGA停止往FLASH中寫入數(shù)據(jù),寫溢出功能正常。

      (2)設(shè)置最后一塊為好塊,且相鄰塊為壞塊:

      FLASH模型設(shè)置最后一塊為好塊且相鄰塊為壞塊時(shí),當(dāng)寫指針wr_addr達(dá)到最后一塊時(shí),該FLASH被寫滿,寫溢出標(biāo)志wr_over置高,F(xiàn)PGA停止往FLASH中寫入數(shù)據(jù),寫溢出功能正常。

      (3)設(shè)置最后一塊為壞塊,且相鄰塊為好塊:

      FLASH模型設(shè)置最后一塊為壞塊且相鄰塊為好塊時(shí),該FLASH被寫滿后,無(wú)法自動(dòng)停止寫入數(shù)據(jù),從而導(dǎo)致寫指針回頭,繼續(xù)對(duì)已存儲(chǔ)過(guò)數(shù)據(jù)的好塊中執(zhí)行FLASH寫操作。相同的塊被兩次寫入后,會(huì)使得存儲(chǔ)的數(shù)據(jù)內(nèi)容出錯(cuò),從而導(dǎo)致從FLASH中讀出的數(shù)據(jù)錯(cuò)誤。寫溢出功能錯(cuò)誤。

      (4)設(shè)置最后一塊為壞塊,且相鄰塊為壞塊:

      FLASH模型設(shè)置最后一塊為壞塊且相鄰塊為壞塊時(shí),該FLASH被寫滿后,無(wú)法自動(dòng)停止寫入數(shù)據(jù),寫溢出功能錯(cuò)誤。

      4 FLASH寫溢出問(wèn)題分析及糾正措施

      寫溢出功能的判斷條件如圖2所示。

      從圖2中可以看出,當(dāng)寫到最后一塊的最后一頁(yè)時(shí),判定為寫溢出,F(xiàn)PGA應(yīng)停止寫入數(shù)據(jù)。由于設(shè)計(jì)時(shí),并未考慮最后一塊為壞塊的情況。FLASH寫操作前,會(huì)預(yù)先判斷該塊為好塊還是壞塊,當(dāng)最后一塊為壞塊時(shí),則不會(huì)往該壞塊中寫入數(shù)據(jù),寫指針可能的最大值為(”11”&”fffe”),使得寫地址wr_addr永遠(yuǎn)無(wú)法滿足預(yù)定的寫溢出條件,wr_over始終為0,最終導(dǎo)致flash寫操作無(wú)法自動(dòng)停止。

      針對(duì)以上寫溢出問(wèn)題,當(dāng)寫地址wr_addr達(dá)到最后一塊時(shí),無(wú)論最后一塊是好塊還是壞塊,均判定為寫溢出,停止寫入數(shù)據(jù)。修改后的代碼如圖3所示。

      5 結(jié)語(yǔ)

      FLASH寫溢出問(wèn)題會(huì)導(dǎo)致在沒(méi)有擦除的情況下,對(duì)同一個(gè)地址重復(fù)進(jìn)行寫操作,從而導(dǎo)致存儲(chǔ)在FLASH中的數(shù)據(jù)錯(cuò)亂。需要充分考慮最后一塊及相鄰塊分別為好塊/壞塊情況下的寫溢出功能是否正常,提高FPGA對(duì)FLASH控制的可靠性。

      參考文獻(xiàn)

      [1]李文博.flash陣列存儲(chǔ)技術(shù)研究.哈爾濱工業(yè)大學(xué)碩士研究生學(xué)位論文,2010:10-11.

      [2]林剛.NAND Flash 壞塊管理算法及邏輯驅(qū)動(dòng)層設(shè)計(jì).西安電子科技大學(xué)碩士研究生學(xué)位論文,2009:1-6.

      亳州市| 正镶白旗| 西贡区| 襄樊市| 辽宁省| 石家庄市| 新兴县| 沈阳市| 宜州市| 平山县| 南川市| 石棉县| 乌审旗| 蕉岭县| 铜陵市| 仪陇县| 香港 | 隆德县| 谢通门县| 苏尼特左旗| 萨嘎县| 灵丘县| 涪陵区| 喀什市| 阿荣旗| 溆浦县| 诏安县| 梁平县| 黑水县| 萨嘎县| 科技| 大埔县| 永胜县| 南溪县| 新源县| 元江| 贵南县| 白朗县| 沁源县| 和龙市| 陕西省|