• 
    

    
    

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

      ?

      BENAND Flash的編程實(shí)現(xiàn)及優(yōu)化

      2016-03-20 09:14:49傅啟國
      關(guān)鍵詞:源文件字節(jié)時序

      傅啟國

      (南京西爾特電子有限公司,南京211111)

      BENAND Flash的編程實(shí)現(xiàn)及優(yōu)化

      傅啟國

      (南京西爾特電子有限公司,南京211111)

      介紹了BENAND Flash的基本結(jié)構(gòu)和信號,詳細(xì)討論了其擦除及讀寫數(shù)據(jù)的時序,設(shè)計(jì)了一套對其編程的系統(tǒng)。針對其內(nèi)嵌ECC等特點(diǎn)分析了BENAND Flash在工廠編程里的具體步驟,并在編程和校驗(yàn)環(huán)節(jié)進(jìn)行優(yōu)化,有力地提升了工廠編程行業(yè)內(nèi)BENAND Flash的編程效率。

      BENAND Flash;內(nèi)嵌ECC;編程;校驗(yàn)

      引 言

      BENAND Flash是東芝公司新發(fā)明的一種NAND Flash,它基于SLC NAND閃存,內(nèi)嵌ECC(Error Correction Code,糾錯碼),并且具有與通用的SLC NAND閃存兼容的封裝和引腳定義,這一點(diǎn)保證其在現(xiàn)有產(chǎn)品中可以輕松地與SLC NAND實(shí)現(xiàn)替換。BENAND在減輕主機(jī)處理器處理ECC負(fù)擔(dān)的同時,最大程度地避免了協(xié)議更改,并且允許主機(jī)處理器支持最先進(jìn)工藝的NAND閃存,以上優(yōu)點(diǎn)使得BENAND Flash逐漸被廣泛使用。

      1 BENAND Flash的基本結(jié)構(gòu)

      目前東芝推出的BENAND Flash,其容量主要有1 Gb、2 Gb、4 Gb和8 Gb四種,封裝形式有TSOP48、FBGA63和FBGA67三種。以1 Gb容量的BENAND Flash為例,它由1024個區(qū)塊組成,每個區(qū)塊包含64個頁,每一頁都包含一個2 048字節(jié)的數(shù)據(jù)區(qū)和64字節(jié)的備用區(qū),總共包含2 112字節(jié),所以1 Gb容量的BENAND Flash實(shí)際共包含(2 048+64)×64×1024字節(jié),其結(jié)構(gòu)示意圖如圖1所示。

      圖1 1Gb容量BENAND Flash結(jié)構(gòu)圖

      BENAND Flash以頁為基本單元進(jìn)行存儲,以塊為基本單元進(jìn)行擦除,以頁為基本單元進(jìn)行寫入和讀出,具有很快的寫入和擦除速度。除了電源、地和8個I/O口,主要由7個控制信號構(gòu)成:

      ①芯片使能(CE#):如果沒有檢測到該信號, BENAND Flash就保持待機(jī)模式,不對任何控制信號作出響應(yīng)。

      ②寫使能(WE#):WE#負(fù)責(zé)將地址、命令或數(shù)據(jù)寫入到BENAND Flash中。

      ③讀使能(RE#):RE#允許數(shù)據(jù)輸出。

      ④指令鎖存使能(CLE):當(dāng)CLE為高時,在WE#信號的上升沿,命令被鎖存到BENAND Flash的指令寄存器中。

      ⑤地址鎖存使能(ALE):當(dāng)ALE為高時,在WE#信號的上升沿,地址被鎖存到BENAND Flash的地址寄存器中。

      ⑥就緒/忙(RY/BY#):如果BENAND Flash處于忙狀態(tài),該信號為低,否則為高。

      ⑦寫保護(hù)(WP#):如果WP#為低,則BENAND Flash處于保護(hù)狀態(tài),無法被擦除或?qū)懭霐?shù)據(jù)。

      2 BENAND Flash的編程實(shí)現(xiàn)

      2.1 BENAND Flash編程系統(tǒng)

      本文以CPU和FPGA為主要控制芯片,以PC機(jī)為上位機(jī),設(shè)計(jì)了一個可以對不同封裝、不同容量的BENAND Flash進(jìn)行編程的系統(tǒng),系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2所示。

      圖2 系統(tǒng)硬件結(jié)構(gòu)框圖

      PC機(jī)負(fù)責(zé)發(fā)送命令、顯示及傳輸數(shù)據(jù);CPU負(fù)責(zé)接收命令并進(jìn)一步對FPGA發(fā)出具體操作指令,并發(fā)送及接收具體數(shù)據(jù);FPGA負(fù)責(zé)寫入數(shù)據(jù)和讀取數(shù)據(jù)等邏輯實(shí)現(xiàn),并連接不同封裝芯片的引腳到其內(nèi)部控制信號。

      2.2 BENAND Flash擦除操作

      與普通的NAND Flash相似,BENAND Flash也存在原始壞塊,其出廠允許的壞塊數(shù)為總數(shù)的2%以內(nèi),所以1 Gb容量的BENAND Flash允許的最大壞塊數(shù)為20個。

      由于壞塊本身不允許被擦除,在擦除之前,必須要先檢測出原始壞塊。從第一個Block開始,從頭到尾全部掃描一遍。掃描方法是,直接讀取當(dāng)前Block的任意一頁的任意一個字節(jié),如果為0x00則為壞塊,如果為0x FF則為好塊,其流程如圖3所示。

      判斷任意一頁的任意一個字節(jié)的方法也是BENAND Flash所特有的,一般的NAND Flash需要判斷特定頁的特定位置,如第一頁備用區(qū)的第一個字節(jié)。

      擦除時序包括:發(fā)出0x60命令輸出地址,發(fā)出0x D0命令啟動擦除,等待完成和狀態(tài)反饋,最后的狀態(tài)反饋通過發(fā)出0x70命令來讀I/O的最低位的狀態(tài)來實(shí)現(xiàn),如果為0,則表示擦除成功,否則表示擦除失敗,其時序如圖4所示。

      一般Block擦除的典型時間tBERASE為2.5 ms,所以一般2~3 s即可對1 Gb容量的BENAND Flash擦除完畢。

      圖3 壞塊掃描流程圖

      2.3 BENAND Flash寫操作與讀操作

      寫操作時序包括:發(fā)出0x80命令輸出地址,把整頁待燒錄數(shù)據(jù)打入BENAND Flash內(nèi)部的Data Cache,發(fā)出0x10命令執(zhí)行寫入操作,等待完成和狀態(tài)反饋,與擦除操作一樣,最后的狀態(tài)反饋通過讀I/O的最低位的狀態(tài)來實(shí)現(xiàn),如果為0則表示寫入成功,否則表示寫入失敗,其時序如圖5所示。

      由圖5可以看出,寫操作的tPROG時間在整個寫時序中時間最長,一般需要300μs以上,對1 Gb容量的BENAND Flash來說,共包含65 536頁,所以全片寫數(shù)據(jù)至少要在20 s以上。

      讀取一頁數(shù)據(jù)的讀操作時序與寫操作類似,只是在具體命令上不同,0x80~0x10命令換成了0x00~0x30命令,不再贅述。

      3 BENAND Flash的編程優(yōu)化

      與普通的NAND Flash相似,一般BENAND Flash的工廠編程步驟分為三步:擦除、編程和校驗(yàn)。雖然BENAND Flash自帶ECC,但在批量燒錄中也無法保證所有芯片發(fā)生的比特反轉(zhuǎn)在BENAND Flash內(nèi)嵌ECC的可糾錯范圍之內(nèi),難免會有少量芯片出現(xiàn)較多位反轉(zhuǎn)的情況。所以在工廠編程中,除了要按特定的壞塊管理方案將數(shù)據(jù)燒錄進(jìn)芯片,還要將芯片里的數(shù)據(jù)讀出來進(jìn)行校驗(yàn),以確認(rèn)所燒錄的數(shù)據(jù)完全正確。

      擦除本身時間很短,對于追求生產(chǎn)效率的工廠來說,盡可能地縮短編程及校驗(yàn)時間就顯得尤為重要。

      在編程這一步,實(shí)際上就是對BENAND Flash順序地進(jìn)行頁寫入操作,實(shí)現(xiàn)把每一頁的數(shù)據(jù)都寫入到BENAND Flash對應(yīng)的頁中。從上述寫操作的時序可以看出,頁編程時間tPROG是比較長的,從芯片手冊上可以得知,最長需要700μs,可以充分利用這一段較長的等待時間。即在FPGA中設(shè)計(jì)FIFO,在RY/BY#為低時,將待燒錄數(shù)據(jù)先寫入FIFO,從而節(jié)省了部分?jǐn)?shù)據(jù)傳輸?shù)臅r間。另外,考慮到BENAND Flash的燒錄源文件與普通NANDFlash類似,燒錄源文件一般不可能是滿數(shù)據(jù),而是會存在大量0x FF的空數(shù)據(jù)。所以,在真正燒錄數(shù)據(jù)之前,可以在PC機(jī)端直接對燒錄源文件進(jìn)行掃描分析,如果發(fā)現(xiàn)對應(yīng)BENAND Flash的整頁數(shù)據(jù)都是0x FF,則將該頁的位置記錄下來,在真正燒錄到該頁時,直接跳過該頁的燒錄,也可以節(jié)省一定的時間,當(dāng)然,能節(jié)約的具體時間取決于燒錄源文件的具體數(shù)據(jù)情況。

      圖4 擦除時序圖

      圖5 寫操作時序圖

      在校驗(yàn)這一步,傳統(tǒng)的NAND Flash芯片校驗(yàn)只能按照頁讀出數(shù)據(jù)時序的讀出數(shù)據(jù)和源文件比較,BENAND Flash可以采用此方法,但速度較慢。由于BENAND Flash自帶ECC糾錯能力,并且也提供了相應(yīng)的命令來讀取每一頁是否發(fā)些了比特反轉(zhuǎn)及發(fā)生了幾位比特反轉(zhuǎn)的具體信息,所以為了提高效率,可以不必把每一頁的所有數(shù)據(jù)都讀取出來與源文件比較,而是把每頁劃分為4個Sector,每個Sector包含512字節(jié)主數(shù)據(jù)區(qū)和16字節(jié)備用區(qū),用BENAND Flash提供的0x7A命令直接讀取ECC的狀態(tài)來判斷是否發(fā)生了超過自身糾錯能力的位反轉(zhuǎn),讀時序如圖6所示。

      圖6 讀ECC狀態(tài)時序圖

      由圖6可以看出,只需先發(fā)送0x7A命令,隨后就可讀出每個Sector的ECC狀態(tài),再對照ECC狀態(tài)表即可知道該Sector的比特反轉(zhuǎn)及糾錯情況,具體的ECC狀態(tài)表如表1所列。

      表1 ECC狀態(tài)表

      如果某Sector的狀態(tài)輸出值在0~8之間,則表示沒有位反轉(zhuǎn)或發(fā)生了可糾錯的比特反轉(zhuǎn)數(shù),校驗(yàn)通過;如果狀態(tài)輸出值為0x F,則意味著該Sector發(fā)生了超過芯片糾錯能力的比特反轉(zhuǎn)數(shù),芯片校驗(yàn)不能通過,應(yīng)當(dāng)重新燒錄或棄片。該種方法與傳統(tǒng)的只能靠逐個字節(jié)讀出芯片整頁數(shù)據(jù)比較的方法完全不同,把原先需要讀出2 112個字節(jié)的時間,縮短為只需讀取4個ECC Status的時間,校驗(yàn)效率提升極其明顯。

      結(jié) 語

      東芝公司的BENAND Flash由于兼容性好、內(nèi)嵌ECC、可靠性高等優(yōu)點(diǎn)逐漸被廣泛使用,本文對其擦除、寫數(shù)據(jù)、讀數(shù)據(jù)等時序進(jìn)行了較為詳細(xì)的討論,并針對其特點(diǎn)對工廠編程的整個過程進(jìn)行分析,提出在編程中采用FIFO設(shè)計(jì)、預(yù)先對源文件掃描的方法節(jié)省燒寫時間。采用直接讀取ECC Status進(jìn)行校驗(yàn)的方法提高了校驗(yàn)效率,對工廠編程行業(yè)內(nèi)BENAND Flash的編程效率提升有較高的參考價值。

      [1]李澤明,楊燕嬌,張會新.一種Nand Flash ECC校驗(yàn)設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].電視技術(shù),2013,37(17):7375.

      [2]馬豐璽,楊斌,衛(wèi)洪春.非易失存儲器NAND Flash及其在嵌入式系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(1): 203205.

      [3]魏國.一種NAND Flash控制器驗(yàn)證平臺的設(shè)計(jì)[J].電子科技,2013(7):142143.

      傅啟國(工程師),研究方向?yàn)殡娏ψ詣踊c嵌入式開發(fā)。

      Programming Realization and Optimization of BENAND Flash

      Fu Qiguo
      (Nanjing Xeltek Electronic Co.,Ltd.,Nanjing 211111,China)

      In the paper,basic structure and signal of BENAND Flash is introduced.Erase,write and read timing are discussed in detail, and a BENAND Flash programming system is designed.According to the characteristics of built-in ECC,the steps of programming and verification of BENAND Flash are analyzed,which effectively increases the programming efficiency in BENAND Flash factory programming industry.

      BENAND Flash;built-in ECC;programming;verification

      TP29

      :A

      薛士然

      2016-07-28)

      猜你喜歡
      源文件字節(jié)時序
      基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
      基于Sentinel-2時序NDVI的麥冬識別研究
      No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
      網(wǎng)絡(luò)社區(qū)劃分在軟件質(zhì)量問題分析中的應(yīng)用
      No.10 “字節(jié)跳動手機(jī)”要來了?
      基于源文件可疑度的軟件缺陷定位方法研究
      簡談MC7字節(jié)碼
      一種毫米波放大器時序直流電源的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:08
      LKJ基礎(chǔ)數(shù)據(jù)源文件自動編制系統(tǒng)的研究
      誤寫C源文件擴(kuò)展名為CPP的危害
      将乐县| 永宁县| 吉水县| 奉贤区| 常山县| 大庆市| 霍州市| 苏尼特左旗| 五寨县| 永城市| 深泽县| 静安区| 广西| 嘉定区| 镶黄旗| 佛坪县| 旬邑县| 遂昌县| 嘉祥县| 聂荣县| 武山县| 贺兰县| 徐闻县| 鸡西市| 阜康市| 漯河市| 太白县| 清徐县| 分宜县| 绥中县| 韶关市| 尼玛县| 淳化县| 定安县| 五寨县| 阜康市| 武隆县| 永春县| 南投县| 时尚| 通许县|