當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:為了解決目前記錄系統(tǒng)容量小、存儲(chǔ)速度低的問題,采用性能優(yōu)良的固態(tài)NAND型FLASH為存儲(chǔ)介質(zhì),大規(guī)模集成電路FPGA為控制核心,通過使用并行處理技術(shù)和流水線技術(shù)實(shí)現(xiàn)了多片低速FLASH時(shí)高速數(shù)據(jù)的存儲(chǔ),提高了整

摘要:為了解決目前記錄系統(tǒng)容量小、存儲(chǔ)速度低的問題,采用性能優(yōu)良的固態(tài)NANDFLASH為存儲(chǔ)介質(zhì),大規(guī)模集成電路FPGA為控制核心,通過使用并行處理技術(shù)和流水線技術(shù)實(shí)現(xiàn)了多片低速FLASH時(shí)高速數(shù)據(jù)的存儲(chǔ),提高了整個(gè)系統(tǒng)的存儲(chǔ)容量和存儲(chǔ)速度。針對FLASH內(nèi)部存在壞塊的自身缺陷,建立一套查詢、更新和屏蔽壞塊的處理機(jī)制,有效的提高了數(shù)據(jù)存儲(chǔ)的可靠性。
關(guān)鍵詞:高速;流水線;FLASH;FPGA

0 引言
    在數(shù)據(jù)采集存儲(chǔ)系統(tǒng)中,往往需要對采集后的數(shù)據(jù)進(jìn)行存儲(chǔ)以方便后續(xù)分析處理。隨著我國航空電子技術(shù)和雷達(dá)成像技術(shù)的快速發(fā)展,分辨率和采樣率大幅提升,由此便帶來了高速大容量數(shù)據(jù)的存儲(chǔ)問題。同時(shí)存儲(chǔ)系統(tǒng)又要求掉電存儲(chǔ)數(shù)據(jù)并具有良好的抗振動(dòng)能力,因此存儲(chǔ)電路通常采用非易失的電路芯片構(gòu)成,而傳統(tǒng)的DOC,E2PROM等存儲(chǔ)技術(shù)由于容量小、速度低等缺點(diǎn)已經(jīng)不適用高速大容量數(shù)據(jù)的存儲(chǔ)。快速發(fā)展的閃速存儲(chǔ)器(FLASH MEMORY)因其具有體積小、成本低、功耗小、壽命長、抗振動(dòng)和寬溫度適應(yīng)范圍等特點(diǎn),逐漸成為高速大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)的主流方案。

1 FLASH的控制邏輯
    目前FLASH芯片主要分為NOR型和NAND型。NOR型具有可靠性高,隨機(jī)讀取速度快等優(yōu)點(diǎn),適用于程序代碼的存儲(chǔ)。NAND型是一種線性存儲(chǔ)設(shè)備,適用于大容量數(shù)據(jù)和文件的存儲(chǔ)。 K9WBG08U1M是三星公司推出的一款NAND型FLASH芯片,存儲(chǔ)容量達(dá)到4 GB,它內(nèi)部由兩片2 GB的FLASH構(gòu)成,通過片選信號(hào)CE1/CE2進(jìn)行選擇控制,每片F(xiàn)LASH由8 192個(gè)塊組成,每塊有64頁,每頁能存儲(chǔ)(4 096+128)個(gè)字節(jié)的數(shù)據(jù)。因此,訪問芯片需要5個(gè)地址周期,其中3個(gè)周期的行地址用來確定某一頁,2個(gè)周期的列地址用來確定每頁的某個(gè)字節(jié)。對FLASH進(jìn)行的操作主要有:存儲(chǔ)、讀取和擦除。由于指令、地址和數(shù)據(jù)復(fù)用芯片的8個(gè)I/O口,因此需要2個(gè)控制信號(hào)CLE和ALE分別鎖存指令和地址。
    存儲(chǔ)操作一般使用基于頁的連續(xù)存儲(chǔ)模式,所有的命令字、地址、數(shù)據(jù)都是在的上升沿寫入。首先輸入命令字80H,隨后緊跟輸入5個(gè)周期的地址,并且在的上升沿將串行輸入數(shù)據(jù)加載進(jìn)芯片內(nèi)部的數(shù)據(jù)存儲(chǔ)器中,最后輸入頁編程確認(rèn)命令10H便可啟動(dòng)存儲(chǔ)操作,數(shù)據(jù)將自動(dòng)的從片內(nèi)寄存器寫入存儲(chǔ)體中,隨后可通過輸入讀狀態(tài)命令70H來判斷I/O端口輸出是否為O來檢測此次編程操作的成功性。
    讀取操作通常也以頁為單位進(jìn)行。輸入起始命令字00H、5個(gè)周期的地址和結(jié)束命令字30H后,對應(yīng)地址的一頁4 096個(gè)字節(jié)數(shù)據(jù)便傳輸給數(shù)據(jù)寄存器,隨后在的下降沿將數(shù)據(jù)驅(qū)動(dòng)到I/O總線輸出。
    擦除操作與存儲(chǔ)、讀取操作略有不同,它是以塊為單位進(jìn)行的,因此只需要3個(gè)周期的地址即可。在輸入擦除命令后,芯片便自動(dòng)進(jìn)行擦除操作,將存儲(chǔ)體內(nèi)的數(shù)據(jù)全部恢復(fù)為“FF"狀態(tài),隨后也可通過輸入讀狀態(tài)命令字70H判斷端口輸出是否為0來檢測此次擦除操作的成功性。

2 系統(tǒng)存儲(chǔ)關(guān)鍵技術(shù)
    K9WBG08U1M一頁的存儲(chǔ)容量是4KB,最短25ns時(shí)間寫入一個(gè)字節(jié)。因此,芯片接口的寫入速度最高為40MB/s。芯片的存儲(chǔ)時(shí)間分為加載時(shí)間和編程時(shí)間兩部分,寫滿一頁所需的命令、地址和數(shù)據(jù)的加載時(shí)間總共為102.5μs,編程時(shí)間的典型值為200μs,最大編程時(shí)間為700μ-s。為了減小數(shù)據(jù)在存儲(chǔ)過程中出錯(cuò)的概率,設(shè)計(jì)中使用最大的編程時(shí)間進(jìn)行計(jì)算,因此對單片F(xiàn)LASH而言,存儲(chǔ)速度最高可達(dá)5.1MB/s。
2.1 并行總線處理技術(shù)
    按照操作FLASH的傳統(tǒng)方法,存儲(chǔ)完一片F(xiàn)LASH后,再進(jìn)行下一片F(xiàn)LASH的操作,這樣最高存儲(chǔ)速度也只是單片F(xiàn)LASH的存儲(chǔ)速度即5.1 MB/s,顯然無法適用于高速數(shù)據(jù)傳輸存儲(chǔ)的場合。通過并行處理技術(shù)可以很直觀的提高存儲(chǔ)速度,具體實(shí)現(xiàn)方法是:將N片低速FLASH芯片并聯(lián)起來,使用相同的控制線、片選線和讀寫信號(hào)線,構(gòu)成一個(gè)多位寬的FLASH組。這樣N片F(xiàn)LASH并行工作,進(jìn)行相同的操作,存儲(chǔ)量可達(dá)到單片F(xiàn)LASH的N倍,所以理論上存儲(chǔ)速度也是單片F(xiàn)LASH的N倍。
2.2 流水線技術(shù)
    流水線技術(shù)在計(jì)算機(jī)領(lǐng)域得到廣泛運(yùn)用,它是在程序執(zhí)行時(shí)多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)。借鑒這種技術(shù)在進(jìn)行FLASH存儲(chǔ)時(shí)可以大大節(jié)省存儲(chǔ)時(shí)間,提高存儲(chǔ)速度。FLASH每頁數(shù)據(jù)的加載時(shí)間和編程時(shí)間是器件本身所決定的,當(dāng)加載完一頁數(shù)據(jù)后,F(xiàn)LASH就進(jìn)入忙狀態(tài),此時(shí)需要等待加載的數(shù)據(jù)自動(dòng)編程,即將數(shù)據(jù)從寄存器中寫入存儲(chǔ)單元內(nèi),這期間不能進(jìn)行其余的操作,當(dāng)編程結(jié)束后,F(xiàn)LASH才恢復(fù)空閑狀態(tài),此后才能進(jìn)行下一頁數(shù)據(jù)的加載,然后再進(jìn)行編程。因此如果可以善加利用編程時(shí)間,使FLASH在進(jìn)行本頁數(shù)據(jù)編程的同時(shí)去執(zhí)行下一頁數(shù)據(jù)的加載,這樣便可節(jié)省存儲(chǔ)時(shí)間,提高速度。加載完一頁數(shù)據(jù)的時(shí)間約為102.5μs,最大編程時(shí)間為700μs,這樣在每頁的編程時(shí)間內(nèi)可以完成7次的FLASH加載操作(700/102.5≈7),由此畫出8級(jí)流水操作的時(shí)序圖如圖1所示。


    圖1中每片F(xiàn)LASH都分為加載時(shí)間和編程時(shí)間,當(dāng)?shù)谝黄現(xiàn)LASH完成第一頁的數(shù)據(jù)加載后進(jìn)入數(shù)據(jù)編程階段。此時(shí)第二片F(xiàn)LASH開始進(jìn)行第一頁數(shù)據(jù)加載,加載完成后也進(jìn)入數(shù)據(jù)編程階段。然后依次對第三片到第八片F(xiàn)LASH進(jìn)行相同的操作,當(dāng)?shù)诎似現(xiàn)LASH也完成了第一頁數(shù)據(jù)的加載后,此時(shí)系統(tǒng)耗費(fèi)的總時(shí)間約為7×102.5=717.5μs,大于單片F(xiàn)LASH的最大編程時(shí)間700μs即第一片F(xiàn)LASH已經(jīng)完成了數(shù)據(jù)編程,可以接著進(jìn)行第二頁的數(shù)據(jù)加載。當(dāng)?shù)诙摂?shù)據(jù)加載完成后,第三片F(xiàn)LASH便完成了第一頁的數(shù)據(jù)編程,可以接著進(jìn)行隨后操作。這種循環(huán)流水操作,使FLASH在高速存儲(chǔ)過程中不必去考慮頁編程是否完成,節(jié)省了頁編程時(shí)間,從而使存儲(chǔ)速度近似達(dá)到芯片接口寫入速度即40 MB/s。由此可見,運(yùn)用流水操作技術(shù)的存儲(chǔ)速度將是單片F(xiàn)LASH存儲(chǔ)速度的8倍,實(shí)現(xiàn)了FLASH的快速高效無丟失存儲(chǔ)。
2.3 壞塊處理技術(shù)
    NAND型FLASH芯片在出廠時(shí)內(nèi)部會(huì)隨機(jī)分布有壞塊,壞塊是指一個(gè)塊內(nèi)含有一位或更多位的數(shù)據(jù)單元無法進(jìn)行操作,并且在芯片的長期使用過程中不可避免地還會(huì)增加新的壞塊。不允許對壞塊進(jìn)行擦除和編程操作,這樣會(huì)導(dǎo)致數(shù)據(jù)的存儲(chǔ)錯(cuò)誤。因此在操作FLASH的過程中,需要建立一個(gè)壞塊管理列表,將芯片內(nèi)部的所有壞塊信息寫入列表中,并且在出現(xiàn)新的壞快時(shí)能夠及時(shí)的更新壞塊管理列表。
    FLASH內(nèi)部的壞塊有兩種,一種是芯片出廠時(shí)本身含有的初始?jí)膲K,此類壞塊廠家已經(jīng)標(biāo)明,通過讀取芯片每塊第一頁和第二頁的第4 096個(gè)字節(jié)來進(jìn)行判斷,如果均是“FFH”,則認(rèn)為此塊是有效塊,否則便為壞塊。另一種則是在使用過程中新增加的壞塊,可以通過讀狀態(tài)寄存器來進(jìn)行判斷。
    壞塊管理列表的建立和更新可以使用將其內(nèi)部地址空間和FLASH內(nèi)部塊地址一一對應(yīng)的映射方法,當(dāng)發(fā)現(xiàn)是壞塊時(shí),只需將列表中對應(yīng)此塊地址的單元寫入1比特“0”信息即可,而其余的地址單元仍是1比特“1”信息代表有效塊。在對FLASH的每一塊進(jìn)行操作之前,需要先讀取壞塊管理列表中對應(yīng)此塊地址單元的信息,如果發(fā)現(xiàn)是壞塊就跳過此塊不進(jìn)行操作,然后再進(jìn)行下一塊的判斷,直至找到有效塊時(shí)再進(jìn)行操作。壞塊管理列表的建立和更新分別如圖2、圖3所示。



3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)硬件結(jié)構(gòu)組成
    本文所設(shè)計(jì)的高速大容量存儲(chǔ)系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。系統(tǒng)中FLASH芯片選用三星公司的K9WBG08U1M,存儲(chǔ)陣列分為8組,采用流水線操作,每組由8片F(xiàn)LASH并聯(lián)共用控制線,各組對應(yīng)行的FLASH共用數(shù)據(jù)線。系統(tǒng)存儲(chǔ)容量達(dá)到4×8×8=256 GB,存儲(chǔ)速度理論值為40MB/   s×8=320 MB/s。FPGA是整個(gè)系統(tǒng)的控制核心,它將產(chǎn)生各種復(fù)雜的邏輯時(shí)序來控制外圍芯片協(xié)調(diào)有序地工作,選用Altera公司StratixⅡ系列的EP2S60F484I4芯片,該芯片有48 352個(gè)邏輯單元,內(nèi)置存儲(chǔ)RAM容量達(dá)2.5 MB,滿足緩存數(shù)據(jù)的要求。USB接口電路選用CYPRESS公司的CY7C68013A,該芯片集成了一個(gè)8.5 KB片上RAM的8051核、4 KB的FIFO以及USB 2.0收發(fā)器,滿足USB2.0通信協(xié)議,是進(jìn)行USB2.0開發(fā)的常用芯片。壞塊信息存儲(chǔ)電路用于存儲(chǔ)和更新FLASH存儲(chǔ)陣列隨機(jī)出現(xiàn)的壞塊位置,它必須是非易失零出錯(cuò)的存儲(chǔ)介質(zhì),因此選用AMD公司的Am29LV800B NOR型FLASH,存儲(chǔ)容量為8 Mb,保證無壞塊。


3.2 系統(tǒng)具體實(shí)現(xiàn)
    FPGA是整個(gè)硬件系統(tǒng)的核心,它完成電路的復(fù)雜時(shí)序控制,使系統(tǒng)有條不紊地運(yùn)行。FPGA上電后進(jìn)行初始化和加載配置信息,完成后進(jìn)入工作狀態(tài)。首先根據(jù)USB接口電壓判斷是進(jìn)入數(shù)據(jù)記錄狀態(tài)還是數(shù)據(jù)下載狀態(tài),然后分別按照各自流程進(jìn)行工作。FPGA內(nèi)部邏輯設(shè)計(jì)如圖5所示。


    由于FLASH存儲(chǔ)陣列是8片并聯(lián)一起操作,因此數(shù)據(jù)總線寬度便為64位,同時(shí)由于USB的接口數(shù)據(jù)寬度為16位,因此系統(tǒng)中使用了2個(gè)FIFO分別進(jìn)行緩存。在系統(tǒng)記錄狀態(tài)下,前端接收到高速串行數(shù)據(jù)后首先進(jìn)行串/并轉(zhuǎn)換,然后為其添加一個(gè)64位的標(biāo)志頭一并存入FIFO緩存,標(biāo)識(shí)頭是用來標(biāo)記每次的加電情況,方便FLASH數(shù)據(jù)的分段下載。同時(shí)將外部NORFLASH內(nèi)所存儲(chǔ)的壞塊信息讀入FPGA內(nèi)部建立的RAM中,在總接口控制下,屏蔽FLASH存儲(chǔ)陣列內(nèi)部的壞塊,并按一定順序?qū)?shù)據(jù)寫入FLASH芯片。由于數(shù)據(jù)在存儲(chǔ)過程中會(huì)產(chǎn)生新的壞塊,因此在每頁寫操作結(jié)束后需判斷此頁編程是否成功,若編程失敗,則對照此壞塊地址更新RAM中的壞塊信息,等待FLASH的存儲(chǔ)操作結(jié)束后,再將更新后的RAM數(shù)據(jù)寫入外部NOR FLASH進(jìn)行保存。
    在系統(tǒng)下載狀態(tài)時(shí),首先對FLASH內(nèi)部的存儲(chǔ)數(shù)據(jù)進(jìn)行搜索,找到標(biāo)識(shí)頭所在存儲(chǔ)陣列中的位置并將此位置信息寫入FPGA內(nèi)部的RAM中,這樣便可知道每次加電后存儲(chǔ)數(shù)據(jù)在FLASH陣列中的起始?jí)K位置和所占?jí)K的容量。然后通過上位機(jī)軟件輸入起始位置,塊容量和下載命令后,F(xiàn)PGA內(nèi)部的總接口控制便可根據(jù)這些命令信息,同時(shí)屏蔽壞塊后將FLASH存儲(chǔ)陣列中相應(yīng)的數(shù)據(jù)寫入16位FIFO緩存中,隨后便可通過USB接口下載至計(jì)算機(jī)進(jìn)行數(shù)據(jù)分析。

4 結(jié)語
    隨著基于NAND技術(shù)的FLASH固態(tài)存儲(chǔ)器的快速發(fā)展,其存儲(chǔ)密度也越來越大,而體積、功耗和成本卻在減小,這使得NAND型FLASH在大容量高速存儲(chǔ)設(shè)備的研制中得到廣泛應(yīng)用。本文針對單片F(xiàn)LASH存儲(chǔ)速度慢的缺點(diǎn),將多片低速FLASH芯片并行起來工作,同時(shí)又運(yùn)用流水線操作節(jié)省了FLASH的自身編程時(shí)間,從而使得整個(gè)存儲(chǔ)系統(tǒng)的存儲(chǔ)速度大大提高。針對NAND FLASH內(nèi)部存在壞塊的問題,建立了一套完善的壞塊處理機(jī)制,使得系統(tǒng)能夠準(zhǔn)確的存儲(chǔ)數(shù)據(jù),保證數(shù)據(jù)的可靠性。使用FPGA對FLASH存儲(chǔ)陣列及USB下載電路進(jìn)行控制,充分發(fā)揮了FPGA處理復(fù)雜邏輯的特點(diǎn),簡化了系統(tǒng)的硬件結(jié)構(gòu)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉