• 
    

    
    

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

      ?

      基于FPGA 的Nandflash 存儲模塊設(shè)計

      2021-05-16 10:32:50唐超
      科學(xué)技術(shù)創(chuàng)新 2021年13期
      關(guān)鍵詞:存儲模塊校驗串口

      唐超

      (深圳市匯頂科技股份有限公司,四川 成都610041)

      1 概述

      該基于FPGA 的Nandflash 存儲模塊的設(shè)計是隸屬于隨鉆測井系統(tǒng)的科研子項目,總體上要求該模塊達到以下指標:a.數(shù)據(jù)出錯概率不大于0.1%。存儲模塊作為隨鉆測井系統(tǒng)中保存原始數(shù)據(jù)的唯一單元,其可靠性和安全性就是儀器的生命線,保證數(shù)據(jù)安全可靠將是本設(shè)計的重中之重。b. 存儲容量不小于32Gb,電路面積盡可能小。隨鉆測井系統(tǒng)一次工作會生成大量的數(shù)據(jù),一般最大可達30Gb,為保證測井數(shù)據(jù)不丟失,存儲模塊必須有足夠的空間容納數(shù)據(jù),同時要留出一定裕量空間。另外儀器上的空間資源是非常珍貴的,要求在設(shè)計存儲模塊時在保證存儲容量的前提下應(yīng)盡量減小電路面積。c.數(shù)據(jù)下載速率不小于5Mbps。

      Nandflash 屬于閃存的一種,是一種非易失性存儲器,相較于Norflash 具有單片容量大、讀寫速度快、功耗低、溫度性能好等優(yōu)點[1],但其控制器設(shè)計相對也更加復(fù)雜。目前常見的隨鉆密度測井系統(tǒng)的存儲介質(zhì)一般都是Norflash,主要是因為Norflash控制簡單、操作方便,但由于Norflash 單片容量較小,常見的有512Mb/1Gb/2Gb[2],一般使用Norflash 的隨鉆測井系統(tǒng)的存儲容量都較小,因為要想實現(xiàn)較大的存儲容量將會占隨鉆測井儀器上很大的物理空間,這在實際應(yīng)用中是不被允許的。因此本設(shè)計使用Nandflash 作為存儲介質(zhì),犧牲控制器的復(fù)雜度換取存儲大容量、小面積的特性。

      對于Nandflash 控制器的選擇,本設(shè)計在全面比較FPGA 和MCU 的基礎(chǔ)上,決定采用并行處理能力更強的FPGA 作為控制器,同時由于FPGA 的設(shè)計更為靈活,發(fā)現(xiàn)問題可直接更改設(shè)計,減少了投片的風(fēng)險,節(jié)省開支[3]。

      2 硬件設(shè)計

      Nandflash 存儲模塊包括數(shù)據(jù)采集、實時存儲以及數(shù)據(jù)下載三個單元。采集單元由FPGA 控制高速ADC 實現(xiàn);實時存儲單元由FPGA 控制Nandflash 實現(xiàn),同時使用RAM緩存數(shù)據(jù);數(shù)據(jù)下載單元由FPGA 控制UART 收發(fā)器實現(xiàn)。按照數(shù)據(jù)采集- >緩存- >存儲- >下載流程,硬件設(shè)計考慮如下。

      2.1 數(shù)據(jù)采集

      構(gòu)建“FPGA+ADC”的數(shù)據(jù)采集架構(gòu),通過FPGA 控制高速ADC 采樣、量化函數(shù)信號發(fā)生器輸出的穩(wěn)定模擬信號,將采樣數(shù)據(jù)作為存儲模塊的輸入數(shù)據(jù)存入存儲器中。

      2.2 數(shù)據(jù)緩存

      構(gòu)建“FPGA+雙RAM”數(shù)據(jù)緩存架構(gòu),采用乒乓切換技術(shù)[4],一片RAM用于實時緩存ADC 采集到的數(shù)據(jù),另一片RAM 用于將緩存的數(shù)據(jù)存入Nandflash,以保證數(shù)據(jù)連續(xù)采集。在數(shù)據(jù)下載階段,一片RAM用于接收緩存從Nandflash 中讀取的數(shù)據(jù),另一片RAM用于將已緩存好的數(shù)據(jù)上傳到PC 端,可實現(xiàn)數(shù)據(jù)的連續(xù)不間斷下載。

      2.3 數(shù)據(jù)實時存儲

      以Nandflash 為存儲介質(zhì),FPGA 為控制器, 構(gòu)建“FPGA+Nandflash”數(shù)據(jù)實時存儲架構(gòu),由FPGA 控制Nandflash實現(xiàn)數(shù)據(jù)的實時存儲。

      2.4 數(shù)據(jù)下載

      采用UART 串口總線為數(shù)據(jù)下載總線,以FPGA 為串口控制器,構(gòu)建“FPGA+ UART 收發(fā)器”數(shù)據(jù)下載架構(gòu),同時使用乒乓切換技術(shù),實現(xiàn)數(shù)據(jù)連續(xù)不間斷下載。

      基于以上考慮,設(shè)計的基于FPGA 的Nandflash 存儲模塊結(jié)構(gòu)框圖如圖1 所示。FPGA 通過標準的O NFI 接口與Nandflash通信,實現(xiàn)數(shù)據(jù)的寫入與讀出;使用兩塊乒乓RAM 緩存數(shù)據(jù);通過UART 串口將數(shù)據(jù)傳輸下載搭配PC 端。

      圖1 基于FPGA 的Nandflash 存儲模塊硬件框圖

      3 軟件設(shè)計

      軟件設(shè)計的主要任務(wù)是在FPGA 內(nèi)設(shè)計實現(xiàn)各種功能接口,保證各功能單元正常運行,下面逐一介紹各功能接口。

      3.1 數(shù)據(jù)采集

      在FPGA 內(nèi)實現(xiàn)一個ADC 接口控制器單元,控制高速ADC定時連續(xù)采集量化信號發(fā)生器輸出的信號,并將采樣得到的數(shù)據(jù)作為存儲模塊的輸入數(shù)據(jù)。

      3.2 數(shù)據(jù)緩存

      在FPGA 內(nèi)實現(xiàn)RAM接口控制單元,該接口控制單元可由FPGA 廠商提供的IP 核生成。數(shù)據(jù)緩存采用的是乒乓切換技術(shù)將數(shù)據(jù)依次緩存于在兩塊RAM中,在RAM接口單元內(nèi),ADC端的輸入數(shù)據(jù)將被轉(zhuǎn)換為RAM地址,然后在對應(yīng)的地址上執(zhí)行加一操作,完成數(shù)據(jù)記錄。上電初始,系統(tǒng)默認設(shè)置RAM1 為用于緩存數(shù)據(jù)的RAM,RAM2 為空閑態(tài);正常工作期間,當接收到切換RAM命令時,RAM接口控制單元首先檢測當前RAM是否正在被占用,如果有程序正在對RAM進行操作,那么RAM接口控制單元就會等到RAM空閑的時候再切換RAM,否則立即切換。

      3.3 數(shù)據(jù)存儲

      在FPGA 內(nèi)實現(xiàn)Nandflash 控制器模塊。設(shè)計的重點是壞塊管理和ECC 校驗的實現(xiàn),本設(shè)計中使用的是基于塊替換的壞塊管理辦法,基于漢明碼的ECC 校驗方法??刂破髂K邏輯結(jié)構(gòu)圖2 所示,分為底層邏輯和上層邏輯,其中底層邏輯是對Nandflash 的基本操作,上層邏輯是將基本的Flash 操作進行封裝以實現(xiàn)實際功能需求。

      3.3.1 壞塊管理

      壞塊是指Nandflash 中不能保證數(shù)據(jù)可靠的block 塊,壞塊一般有兩種來源:一個是出廠壞塊,廠商會進行標記,另一個是用戶壞塊,是用戶在使用過程中產(chǎn)生的[5],所謂壞塊管理就是正確識別、標識壞塊并采用一定的辦法保證壞塊的存在不影響Nandflash 的使用。設(shè)計中使用了三種方法來認定壞塊:第一,第一次上電時讀取特定位置的出廠信息,找到出廠壞塊;第二,當擦除某個block 失敗時,將該塊標識為壞塊;第三,當發(fā)生編程失敗時,直接將當前block 標識為壞塊。本設(shè)計采用的是基于塊替換的壞塊管理辦法,基本思路是將Nandflash 存儲空間劃分為劃分為工作區(qū)和保留區(qū),保留區(qū)占比一般為2%左右[6],工作區(qū)是數(shù)據(jù)存儲區(qū);當工作區(qū)出現(xiàn)壞塊時,從保留區(qū)找出一塊空閑的好塊,更新邏輯地址- 物理地址映射表,將壞塊對應(yīng)的邏輯地址映射到保留區(qū)的好塊上,從而達到規(guī)避壞塊的目的?;趬K替換的壞塊管理辦法可使邏輯地址始終保持聯(lián)系,對上層用戶來說是感覺不到壞塊有壞塊存在的。

      3.3.2 ECC 校驗

      圖2 Nandflash 控制器邏框圖

      Nandflash 由于其物理特性和制造工藝的限制,存在bit 翻轉(zhuǎn)誤碼現(xiàn)象,需要進行糾錯處理。因此使用了基于漢明碼(hanmming code)的ECC 校驗方法,該方法能夠糾正1-bit 錯誤,發(fā)現(xiàn)2-bit 錯誤[7]。ECC 校驗方法的基本思路是當往Nandflash中寫入數(shù)據(jù)時,把每256 字節(jié)的原始數(shù)據(jù)按照一定的規(guī)則進行異或運算生成3 字節(jié)的ECC 校驗碼,然后將ECC 校驗碼寫入OOB 區(qū)(out-of-band);當從Nnandflash 中讀取數(shù)據(jù)時,把每256字節(jié)的讀出數(shù)據(jù)再按相同的規(guī)則進行異或運算生成3 字節(jié)的ECC 校驗碼,最后將寫入時生成的ECC 校驗碼和讀出是生成的ECC 校驗碼按位異或,若結(jié)果為全0,則表示無錯誤(或出現(xiàn)了ECC 無法糾正的錯誤),若結(jié)果中有11 個bit 為1,則表示存在一個錯誤且可以糾正,若結(jié)果中自存在1 個bit 為1,則表示OOB 去發(fā)生錯誤,其余情況表示出現(xiàn)了無法糾正的錯誤。

      3.4 數(shù)據(jù)下載

      在FPGA 內(nèi)實現(xiàn)UART 串口控制單元。串口控制單元的核心是UART 收發(fā)串口,再輔以命令解析、執(zhí)行模塊,當收到下載數(shù)據(jù)的命令后,自動完成數(shù)據(jù)下載。

      4 測試結(jié)果

      實驗條件如下:

      4.1 FPGA 芯 片 為 Xilinx 的 XA3S500E-4PQ G208;Nandflash 存儲器為青島智騰的LDMF4GA;ADC 為TI 的ADS7883;SRAM 為CYPRESS 的CY7C1049CV 33;UART 串 口芯片為HO LT 公司的HI-4853。

      4.2 測試環(huán)境:Nandflash 控制模塊、上位機PC。使用FPGA內(nèi)部生成的模擬數(shù)據(jù)測試,通過寫入1Gb 數(shù)據(jù)后再讀出,觀察數(shù)據(jù)是否與預(yù)期一致,表1 列出了數(shù)據(jù)可靠性測試結(jié)果,共進行了4 組測試。

      表1 模塊讀寫可靠性測試

      使用 FPGA 內(nèi)部生產(chǎn)的模擬數(shù)據(jù), 分批寫入1Gbit.2Gbit,3Gbit,… … ,30Gbit, 31Gbit, 32Gbit,測試模塊的數(shù)據(jù)下載速率。圖3 為下載速率測試結(jié)果,其中值為100 次實驗平均值。

      圖3 下載速率測試曲線

      結(jié)果分析,基于FPGA 的Nandflash 存儲模塊相較于常規(guī)的以Norflash 為存儲介質(zhì)的存儲模塊在容量上有了很大的提高,同時電路面積也減小了很多,數(shù)據(jù)錯誤概率約為0.029%,數(shù)據(jù)下載的平均速率約5Mbps,以上指標均滿足設(shè)計要求。此外,所有的控制接口單元均在FPGA 內(nèi)部以硬件電路的形式實現(xiàn),降低了對操作系統(tǒng)的依賴。

      5 結(jié)論

      本文介紹了基于FPGA 的Nandflash 存儲模塊的性能指標要求、軟硬件設(shè)計,該型存儲模塊針對隨鉆測井系統(tǒng)對數(shù)據(jù)可靠性要求高、數(shù)據(jù)量大的特點,定制化的給出了基于“FPGA+Nandflash”架構(gòu)的設(shè)計方案,其核心就是通過FPGA 對Nandflash 進行讀寫調(diào)度和差錯控制,輔以數(shù)據(jù)采集和下載功能。本設(shè)計的重點難點是Nandflash 控制核心的設(shè)計,其中尤以壞塊管理和ECC 校驗的實現(xiàn)最為重要,這是保證數(shù)據(jù)可靠性的關(guān)鍵。

      當前,該型存儲模塊已成功實現(xiàn)商用,各項性能指標均滿足用戶需求。下一步考慮從數(shù)據(jù)的實時壓縮和Nandflash 磨損均衡的實現(xiàn)這兩方面入手,以期大幅提升模塊的存儲容量、數(shù)據(jù)的可靠性以及延長Nandflash 的使用壽命。

      猜你喜歡
      存儲模塊校驗串口
      基于MinI0分布式存儲的微服務(wù)模塊開發(fā)應(yīng)用
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      Burden of Cirrhosis and Other Chronic Liver Diseases Caused by Specific Etiologies in China, 1990?2016:Findings from the Global Burden of Disease Study 2016
      爐溫均勻性校驗在鑄鍛企業(yè)的應(yīng)用
      MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
      數(shù)據(jù)采集系統(tǒng)在環(huán)保工程中的應(yīng)用研究
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      大型電動機高阻抗差動保護穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      大邑县| 昔阳县| 遂昌县| 佛学| 英德市| 金平| 江门市| 永定县| 镇安县| 台山市| 特克斯县| 保山市| 华安县| 林芝县| 分宜县| 南充市| 秦皇岛市| 金门县| 大埔县| 巴青县| 兴安盟| 乳山市| 罗江县| 江城| 蒙阴县| 湘阴县| 丹江口市| 长子县| 左权县| 双流县| 集安市| 新河县| 磴口县| 积石山| 二连浩特市| 博罗县| 浦东新区| 松原市| 刚察县| 康马县| 通海县|