• 
    

    
    

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

      基于FPGA 控制的高速Nandflash 陣列存儲模塊設(shè)計

      2020-06-04 09:58:14葛進
      科學(xué)技術(shù)創(chuàng)新 2020年13期
      關(guān)鍵詞:存儲模塊編程芯片

      葛進

      (上海都森電子信息科技有限公司,上海201102)

      1 項目概況

      該型高速Nandflash 陣列存儲模塊是為雷達遙感設(shè)備配套的科研項目,項目總體設(shè)計要求該存儲模塊設(shè)計達到:a. 滿足高速存儲和大容量存儲要求。在目前新型的雷達遙感系統(tǒng)中,由于多通道的高頻采樣,將實時生成大量的數(shù)據(jù),為防止寶貴的數(shù)據(jù)因吞吐率不足而丟失,存儲器必須以較高速率傳輸數(shù)據(jù)和進行存儲,供后續(xù)算法分析或回放顯示使用;b. 滿足存儲設(shè)備體積限制和抗沖擊震動要求。雷達一次觀測采集數(shù)據(jù)可能持續(xù)較長時間,這就需要盡可能應(yīng)用體積小密度高且抗沖擊震動的存儲介質(zhì),以保證在有限的設(shè)備空間內(nèi)能存放較多的數(shù)據(jù)和具備一定的抗沖擊震動性能;c. 適應(yīng)試驗過程中便于修改和連接其它測試設(shè)備多的要求,控制試制成本。

      Nandflash 作為一種非易失性存儲器,它以半導(dǎo)體為記憶載體,具有讀寫速度快、存儲容量大、能承受一定的溫度變化、抗機械震動和沖擊的可靠性較高、易于實現(xiàn)低功耗和小型化等特點,同時考慮到數(shù)據(jù)存儲文件在使用中需經(jīng)常擦寫或搬運,要求存儲介質(zhì)具備較高的穩(wěn)定性和可靠性,因此選用可擦寫次數(shù)較多,bit 誤碼率較少且穩(wěn)定耐用的MLCNandflash 芯片作為存儲介質(zhì)。由于單片的Nandflash 容量有限,需通過構(gòu)建Nandflash 陣列系統(tǒng)來滿足存儲容量大的使用要求[1]。

      在Nandflash 的控制器的選擇上,通過比較FPGA 與cpu,認(rèn)為FPGA 具備較強的并行數(shù)據(jù)處理能力和豐富自定義的接口資源,因此為快速開發(fā)Nandflash 控制器,首選是使用FPGA,并輔以cpu 模式下的文件系統(tǒng),達到完成對整個存儲系統(tǒng)的控制的目的。FPGA 可反復(fù)編程和擦除,適宜設(shè)計不同的片內(nèi)邏輯來實現(xiàn)不同的使用功能。由于FPGA 開發(fā)過程投資小,設(shè)計靈活,發(fā)現(xiàn)錯誤可直接更改設(shè)計,減少了投片的風(fēng)險,節(jié)省費用[2]。

      為了適應(yīng)試驗中便于調(diào)整和修改的需要,在過渡設(shè)計中采用分置主控、接口FPGA 不同功能的雙FPGA 結(jié)構(gòu),其中的主控FPGA 集成了微處理器,作為維護系統(tǒng)文件之用;而接口FPGA靈活配置為多種高速接口與多種數(shù)據(jù)源相連接。這種雙FPGA結(jié)構(gòu)大大方便了研發(fā)過程中的調(diào)整和修改。

      圖1 存儲模塊系統(tǒng)結(jié)構(gòu)圖

      2 Nandflash 陣列存儲模塊的硬件設(shè)計

      存儲模塊包括數(shù)據(jù)采集和存儲兩大部分,系統(tǒng)的速度由這兩部分的速度共同決定。硬件結(jié)構(gòu)按照數(shù)據(jù)采集- 數(shù)據(jù)緩存-數(shù)據(jù)存儲- 數(shù)據(jù)下傳的流程進行設(shè)計,整個過程由FPGA 硬件邏輯實現(xiàn)。

      2.1 單片F(xiàn)PGA 的結(jié)構(gòu)形式

      該型存儲模塊的硬件組成為單片F(xiàn)PGA+Nandflash 芯片陣列。FPGA 選用xilinx 公司的XC7V585T-2,Nandflash 芯片使用的是鎂光公司的MT29F256G08C。

      FPGA 通過專用高速模塊和外部多路光纖相連,這是整個存儲模塊對外的數(shù)據(jù)接口;FPGA 通過硬件編程,實現(xiàn)原生態(tài)的ONFI 的接口與Nandflash 陣列相連,本設(shè)計中一共實現(xiàn)了16 路8bit 的接口。FPGA 內(nèi)有一個microblaze 的cpu 核作為最高層文件系統(tǒng)和壞塊管理控制使用,通過以太網(wǎng)接收上位機的用戶命令[3]。存儲模塊的硬件結(jié)構(gòu)如圖1 所示。

      Nandflash 陣列,每行為8 個芯片,共有8 列,總共使用了64個芯片,每個芯片的接口位寬是16bit,為2 個通道,總?cè)萘?TByte。每個芯片上使用兩個CE 片選使能,分別控制2 個DQ[7:0] 的數(shù)據(jù)通道接口。除了片選使能CE 以外,其他的控制信號ALE,WR,以及數(shù)據(jù)采樣信號DQS,DQ[7:0]都是每行8 個芯片共享的,這樣既可以精確的控制每個通道8bit 的DQ 讀寫,又能大幅減少管腳數(shù)量,減少布線難度,提高通訊信號質(zhì)量[4]。Flash 陣列控制示意如圖2 所示。

      圖2 Nandflash 陣列控制示意圖

      圖3 雙FPGA 結(jié)構(gòu)示意圖

      2.2 過渡設(shè)計采用的主控FPGA+接口FPGA 的結(jié)構(gòu)形式

      為方便試驗而采取的過渡設(shè)計中,曾采用主控FPGA+接口FPGA 的結(jié)構(gòu)形式,具體是將單片F(xiàn)PGA 功能分解為兩片F(xiàn)PGA的不同功能,即一個為主控FPGA、另一個為接口FPGA。結(jié)構(gòu)示意見圖3。

      主控FPGA、接口FPGA 集成在一塊PCB 板上,數(shù)據(jù)源通過高速接口與接口FPGA 連接,接口FPGA 通過原生的簡易高速接口與主控FPGA 相連,主控FPGA 通過DDR 模式的閃存接口與Nandflash 陣列連接。主控FPGA 集成了微處理器、閃存陣列控制器等,可以專注完成核心記錄數(shù)據(jù)的功能,對復(fù)雜的控制命令操作以及對數(shù)據(jù)處理的步驟可以適當(dāng)簡化;接口FPGA 發(fā)揮并行優(yōu)勢,做成多種接口的交換中心模式,靈活的與外部數(shù)據(jù)源相連接,從而不會因為接口的變化導(dǎo)致重新布局設(shè)計制版。

      3 FPGA 陣列控制器傳輸流水節(jié)拍控制的設(shè)計

      為了實現(xiàn)高速的數(shù)據(jù)讀寫,必須要求盡可能的并發(fā)數(shù)據(jù)處理[5],Nandflash 陣列共有16 個通道共128bitDQ 要同時讀寫。先讀寫第一列8 個芯片的第N 個page,然后讀寫第二列8 個芯片的第N 個page…以此類推,直到讀寫到第8 列的8 個芯片的第N 個page,然后再從第一列讀寫8 個芯片的第N+1 個page。

      讀寫的接口I/O 時序方式是采用DQS 同步雙沿采集DQ[6]。DQS 時鐘頻率高達50MHz,雙沿數(shù)據(jù)采樣率高達100MT/sec。這樣陣列總的理論接口速率是128bitnet*100MHz=12800Mbit/sec=1.6GByte/sec。

      文件系統(tǒng)的設(shè)計是以適應(yīng)高速數(shù)據(jù)吞吐的大文件節(jié)點系統(tǒng)來考慮的,對整個陣列的所有通道進行一次block 操作,作為一個文件節(jié)點的操作。由于本設(shè)計采用多個Nandflash 芯片共同工作的方式,而每個芯片的最小擦除單位是block,所以因此每個文件節(jié)點容量計算方式如下:64 個芯片,每個芯片中2 個通道,每個通道最小擦除單位1 個block, 每個block 分為512 個page,每個 page 可以存儲16384byte 數(shù)據(jù) , 故64*2*1*512*16384byte=1Gbyte。

      查看Nandflash 芯片手冊,可以知道對于每個page 的讀時間為75us, 對于每個page 的編程時間為1300us, 而使用同步100MT/s 的DQS 采樣,傳輸一個page16384byte 需要的I/O 時間是16K/100M=160us。Nandflash 芯片在使用160us 時間收集數(shù)據(jù)到cacheregister 后,需要花大量的時間去編程Nandflashcell,由于在編程的過程中,對外顯示busy,此時接口不能使用DQS 收集新的數(shù)據(jù),所以編程所需時間就成為影響寫數(shù)據(jù)速率的瓶頸。為了解決這個問題,每行設(shè)計使用8 個Nandflash 芯片,使用I/O 接口先傳輸?shù)谝粋€芯片數(shù)據(jù)耗時160us, 然后第一個芯片編程開始編程,把數(shù)據(jù)從內(nèi)部cacheregister 轉(zhuǎn)移到Nandflashcell,隨后I/O 接口依次傳輸后面7 個芯片的數(shù)據(jù),這樣一行8 個芯片傳輸總耗時約為160us*8=1280us。這時再回到第一個芯片,而這時距離第一個芯片的編程開始時間已經(jīng)過去了160*7=1120us,只要經(jīng)短暫等待就會結(jié)束上一次編程時間,使第一個芯片又可以傳輸下一個page 的數(shù)據(jù)。這樣I/O 接口的DQS,DQ 信號除了短暫的等待外,一直處于跳變工作狀態(tài),使每個芯片都處于編程的流水控制過程中,從而達到較高的傳輸效率。NandflashI/O接口寫時間與編程寫時間的流水節(jié)拍控制調(diào)度示意如圖4 所示。

      圖4 nandflashI/O 接口寫時間與編程寫時間的調(diào)度示意

      4 Nandflash 數(shù)據(jù)正確性處理

      FPGA 內(nèi)部可以產(chǎn)生100MHz 的時鐘,并且進行2 分頻成為50MHzDQS,數(shù)據(jù)可以很準(zhǔn)確的發(fā)往Nandflash 并被存儲下來,但是在讀取Nandflash 數(shù)據(jù)的時候,由于線路延遲或者其他原因,Nandflash 芯片發(fā)出DQS 和DQ 在到達FPGA 時有時候不滿足建立時間和保持時間條件,容易采樣到誤碼。因此借鑒DDR 采樣的方式,設(shè)計一種自動循環(huán)的延遲、采樣、比對機制,來確保數(shù)據(jù)進入FPGA 被正確讀取。先發(fā)送讀ID 命令給Nandflash 芯片,Nandflash 芯片就會通過DQS 和DQ 將ID 返回給FPGA。使用FPGA 中的元語idelay,iddr 以某個延遲把DQS 和DQ 在時間軸上錯開,用DQS 將DQ 采樣下來。由于正確的NandflashID 是手冊可以查到的,所以進行比對,看看讀回來的ID 是否正確,如果不正確,就步進延遲,然后再采樣比對,直到比對正確為止。

      除了采樣錯誤需要糾正以外,Nandflash 芯片由于工藝的限制,會有一定的bit 翻轉(zhuǎn)誤碼,所以還要采用bch 或RS 糾錯碼進行ECC(錯誤校驗碼)校驗。

      5 壞塊管理

      使用的Nandflash 芯片中,包含4 個LUN(邏輯單元),而每個LUN 還包含1024 個block(塊),由于工藝限制,并不是每個塊都是好的,而且有些好的塊經(jīng)過了反復(fù)的擦寫以后,也可能變?yōu)閎adblock(壞塊)[7]。因此使用了5 個步驟來甄別壞塊,減少壞塊。首先,讀取特定位置的出廠數(shù)據(jù)信息,標(biāo)定出廠時就已經(jīng)有的壞塊;第二,進行初始化擦除,清空Nandflash,如果有壞塊存在會返回異常,就在物理壞塊表里做標(biāo)記;第三,寫某個page 時,如果出現(xiàn)寫失敗,也在物理壞塊表里做標(biāo)記;第四,如果在做ECC 時候,返回?zé)o法糾錯,也在物理壞塊表里做標(biāo)記;第五,在文件系統(tǒng)節(jié)點分配的時候,做空閑節(jié)點的隊列循環(huán)使用。如果最近某個文件被擦除,節(jié)點被回收成為空閑節(jié)點,會放在隊列最后,隊列的最前面總是指向最早空閑的節(jié)點。這樣保證了不同的block 被擦寫的次數(shù)相對平均,防止過量編程導(dǎo)致好塊變?yōu)閴膲K。

      6 Nandflash 的斷電保護

      為了使Nandflash 在斷電再上電后仍能繼續(xù)之前的操作,地址緩存在每次Nandflash 讀寫操作后都會更新當(dāng)前地址,并將更新的地址存入Nandflash 的地址存儲空間,在Nandflash 下一次讀寫操作開始前,把存入地址存儲空間的地址讀出并作為本次工作的操作地址。這樣,就能使Nandflash 在斷電再上電后,仍可以從地址存儲空間讀出操作地址,從而繼續(xù)之前的操作[8]。

      結(jié)束語

      本文介紹了基于FPGA 控制高速Nandflash 陣列存儲模塊的硬件和FPGA 設(shè)計,該型存儲模塊針對雷達遙感系統(tǒng)采樣頻率高、采樣通道多而產(chǎn)生數(shù)據(jù)量大的特點,給出了一種定制化程度高、實時快速數(shù)據(jù)存儲模塊的設(shè)計,其核心是通過FPGA 對Nandflash 芯片陣列進行讀寫調(diào)度和控制,不僅能使數(shù)據(jù)傳輸量增大,而且也能很好的保證數(shù)據(jù)的安全性。

      該型存儲模塊成功實現(xiàn)了在FPGA 控制下的各種功能接口,順暢完成了從數(shù)據(jù)采集、緩存,到實時傳輸存儲Nandflash 陣列的整個工作流程,產(chǎn)品數(shù)據(jù)存儲容量、數(shù)據(jù)讀寫速率、體積控制和抗沖擊震動等性能均滿足了用戶的要求。今后,隨著FPGA技術(shù)和元器件制造水平的不斷提高,高速大存儲量的控制技術(shù)將會得到更快發(fā)展,各種新型存儲器也將不斷涌現(xiàn)并將獲得更廣闊的應(yīng)用前景。

      猜你喜歡
      存儲模塊編程芯片
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      基于MinI0分布式存儲的微服務(wù)模塊開發(fā)應(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
      MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
      芯片測試
      數(shù)據(jù)采集系統(tǒng)在環(huán)保工程中的應(yīng)用研究
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      滨海县| 海林市| 神木县| 闽清县| 汉川市| 彭山县| 梅河口市| 兴国县| 盐源县| 读书| 平乐县| 波密县| 达日县| 仪陇县| 武平县| 大姚县| 宁武县| 溧水县| 浦江县| 恩施市| 横山县| 绥阳县| 三都| 日喀则市| 阿拉善左旗| 定襄县| 韩城市| 富民县| 菏泽市| 丹东市| 广元市| 高邮市| 尖扎县| 九龙县| 峡江县| 大厂| 田东县| 靖西县| 玉溪市| 德保县| 凭祥市|