陳凱,陳天喜,劉黎明
高速大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)關(guān)鍵與應(yīng)用
陳凱,陳天喜,劉黎明
(株洲中車時(shí)代電氣股份有限公司,湖南株洲,412001)
存儲(chǔ)系統(tǒng)對(duì)容量、速度、穩(wěn)定性、連續(xù)性以及使用環(huán)境等都提出了更高的要求。由于閃存能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行快速、高效、可靠、安全地讀寫操作,應(yīng)用日益廣泛。主要闡述了系統(tǒng)存儲(chǔ)的具體技術(shù),針對(duì)高速大容量的存儲(chǔ)系統(tǒng)提出了相應(yīng)的改進(jìn)方案,并介紹了軟件設(shè)計(jì)與驗(yàn)證的相關(guān)操作。希望能夠?yàn)楦咚俅笕萘看鎯?chǔ)系統(tǒng)應(yīng)用技術(shù)應(yīng)用提供參考。
高速大容量;存儲(chǔ)系統(tǒng);應(yīng)用設(shè)計(jì)
存儲(chǔ)技術(shù)的更新?lián)Q代越來(lái)越快,存儲(chǔ)系統(tǒng)的穩(wěn)定性與安全性等特征也得到了進(jìn)一步提升,手機(jī)的海量存儲(chǔ)問(wèn)題已經(jīng)得到解決,高速大容量存儲(chǔ)系統(tǒng)憑借著其高速的存儲(chǔ)速度、低廉的成本、便利性等得到了企業(yè)用戶的青睞。但是隨著圖片乃至視頻存儲(chǔ)等數(shù)據(jù)量的逐漸增大,其對(duì)內(nèi)存容量大小也提出了更高的要求。
由于閃存技術(shù)的控制程序較為復(fù)雜,且其對(duì)于序列的排序具有一定要求;同時(shí)所產(chǎn)生的無(wú)效塊也在很大程度影響了存儲(chǔ)系統(tǒng)的管理等。面對(duì)這類問(wèn)題,存儲(chǔ)系統(tǒng)還是需要有控制器協(xié)調(diào)處理。
本文探討了并行總線操作、無(wú)效塊管理、流水線操作以及數(shù)據(jù)校驗(yàn)等關(guān)鍵技術(shù)。
存儲(chǔ)系統(tǒng)主要利用一種LVDS(即Low Voltage Differential Signaling)低壓差分信號(hào)技術(shù)接口,來(lái)獲取相關(guān)的圖像與文字?jǐn)?shù)據(jù)信息。利用RS232串口獲取相應(yīng)的附加數(shù)據(jù),例如時(shí)間、焦距等相關(guān)的數(shù)據(jù)信息,并將其處理成BMP格式的文件。然后,根據(jù)數(shù)據(jù)信息頻率的大小進(jìn)行一定程度的篩選,并按照時(shí)間前后進(jìn)行一定順序的排列儲(chǔ)存;最后,通過(guò)相關(guān)的接口對(duì)外輸出圖像以及相關(guān)的附加數(shù)據(jù),并通過(guò)控制器和屏幕進(jìn)行相應(yīng)顯示。系統(tǒng)硬件外觀如圖1所示。
圖1 系統(tǒng)硬件外觀
根據(jù)時(shí)間順序排列對(duì)其進(jìn)行相關(guān)的存儲(chǔ)、格式化以及讀寫等操作,并對(duì)鑒別出來(lái)的存儲(chǔ)失效塊進(jìn)行標(biāo)志管理或修理恢復(fù),以提升數(shù)據(jù)存儲(chǔ)的可靠性與安全性[1]。
接口板的PCI地址映射如表1所示。
表1 接口板的PCI地址映射
采用LVDS輸出接口傳輸數(shù)據(jù)可以使實(shí)現(xiàn)數(shù)據(jù)的高速率、低噪聲、遠(yuǎn)距離、高準(zhǔn)確度的傳輸。如在液晶顯示器驅(qū)動(dòng)板輸出的數(shù)字信號(hào)中,除了包括RGB數(shù)據(jù)信號(hào)外,還包括行同步、場(chǎng)同步、像素時(shí)鐘等信號(hào),其中像素時(shí)鐘信號(hào)的最高頻率可超過(guò)28 MHz。
2.1并行總線操作
并行總線操作主要是利用數(shù)據(jù)線的寬帶來(lái)達(dá)到并行操作的目的,并行操作需要將存儲(chǔ)系統(tǒng)內(nèi)部的多個(gè)閃存芯片的數(shù)據(jù)線共同連接,使其能夠被同時(shí)操作與讀寫,以提升數(shù)據(jù)讀寫的效率與速度,在并行操作中,可以將連接起來(lái)的多個(gè)芯片系統(tǒng)看作一個(gè)模塊,然后將其作為整個(gè)存儲(chǔ)系統(tǒng)的基本讀寫單位,所有的操作都可以在上面進(jìn)行,例如,一片具有8塊閃存芯片的存儲(chǔ)卡就會(huì)有64位的基本模塊,其通過(guò)相同的操作進(jìn)行控制,其不僅包括片選信號(hào),還包括讀寫信號(hào)等,芯片的地址一般是通過(guò)FPGA進(jìn)行提供的,因此,8塊閃存芯片組成的存儲(chǔ)系統(tǒng),其能夠儲(chǔ)存的數(shù)據(jù)容量是一塊芯片的8倍,且其并行速度也是沒(méi)有并行時(shí)的8倍,因此,存儲(chǔ)系統(tǒng)并行總線操作能夠在很大程度提升數(shù)據(jù)存儲(chǔ)的速度,提升工作效率。
2.2無(wú)效塊管理
閃存存儲(chǔ)芯片在被制造時(shí)就已經(jīng)產(chǎn)生部分的無(wú)效塊了,且在后續(xù)的使用過(guò)程中,由于使用不當(dāng),也會(huì)造成存儲(chǔ)模塊的損壞,產(chǎn)生一定的無(wú)效塊,因此,在對(duì)存儲(chǔ)卡片進(jìn)行操作之前,就應(yīng)該清楚無(wú)效塊的分布與具體情況,避免對(duì)無(wú)效塊進(jìn)行操作,保證所有的操作都能夠?qū)?yīng)正確的數(shù)據(jù),提升工作效率,保證工作質(zhì)量。為了不對(duì)無(wú)效塊進(jìn)行操作,相關(guān)的工作人員采取了一定的解決措施,例如建立必要的無(wú)效塊屏蔽系統(tǒng)以及FAT文件系統(tǒng)的無(wú)效塊處理方法等,但是該類解決措施總是各有利弊[2]。但是,在本文提到的方法中,其可以直接對(duì)FPGA內(nèi)部開(kāi)辟相關(guān)的存儲(chǔ)模塊以用于存儲(chǔ)無(wú)效塊具體位置的信息,在進(jìn)行相關(guān)操作之前,應(yīng)該進(jìn)行必要的無(wú)效塊讀取,將無(wú)效塊的具體位置儲(chǔ)存入相關(guān)的存儲(chǔ)模塊中,在進(jìn)行每次的操作之前,可以避開(kāi)對(duì)無(wú)效塊的操作,實(shí)現(xiàn)對(duì)無(wú)效塊的高效管理。需要特別注意的是,在進(jìn)行無(wú)效塊的存儲(chǔ)時(shí),由于其位置的相關(guān)信息是儲(chǔ)存在FPGA內(nèi)部的,因此,一旦斷電之后,其相關(guān)的數(shù)據(jù)都會(huì)被抹掉,因此,每次接電后,都應(yīng)該對(duì)存儲(chǔ)卡的無(wú)效塊進(jìn)行一定的管理與操作,總而言之,無(wú)效塊的管理主要是通過(guò)制造時(shí)對(duì)無(wú)效塊進(jìn)行屏蔽,回避對(duì)其的操作,實(shí)現(xiàn)無(wú)效塊的高效管理。
2.3流水線操作
流水線操作能夠在很大程度上提升存儲(chǔ)卡的儲(chǔ)存效率,例如,對(duì)一張存儲(chǔ)卡進(jìn)行相關(guān)的讀寫操作時(shí),其輸入的時(shí)間頻率為30 MHz,若需要編寫一頁(yè)的編程,則相關(guān)數(shù)據(jù)的下載時(shí)間平均為133 μs,但是,閃存存儲(chǔ)卡的所用時(shí)間則需要800 μs,每當(dāng)抹掉一個(gè)模塊的數(shù)據(jù)信息時(shí),其所需要的時(shí)間高達(dá)1 500 μs,遠(yuǎn)遠(yuǎn)高于其相關(guān)數(shù)據(jù)的加載時(shí)間,因此,顯而易見(jiàn),編程花費(fèi)了大量的操作時(shí)間,大大影響了存儲(chǔ)卡的存儲(chǔ)效率。目前,我國(guó)使用的流水線操作,在一定程度上解決了編程的效率問(wèn)題,實(shí)現(xiàn)了其在時(shí)間上的相對(duì)平等,當(dāng)流水線開(kāi)始正常運(yùn)轉(zhuǎn)的時(shí)候,相關(guān)的操作甚至可以累加進(jìn)行,實(shí)現(xiàn)了最大程度的時(shí)間利用,其總體效率明顯提升。
2.4據(jù)校驗(yàn)
由于操作時(shí)間排序的錯(cuò)誤以及電力不穩(wěn)定等問(wèn)題,一般情況下是不會(huì)造成閃存的整個(gè)模塊出現(xiàn)錯(cuò)誤的,一般只會(huì)造成較小的“位”出現(xiàn)差錯(cuò),為了校驗(yàn)并改正這類差錯(cuò),數(shù)據(jù)校驗(yàn)一直被采用。其主要包括糾正單比特錯(cuò)誤與檢測(cè)雙比特錯(cuò)誤兩大功能,并且其處理的速度較快,效率較高,一般情況下,當(dāng)閃存芯片開(kāi)始讀取數(shù)據(jù)時(shí),每512個(gè)字節(jié)即可生成相關(guān)的校驗(yàn)碼,隨后的數(shù)據(jù)讀取依此類推,于是不斷產(chǎn)生新的校驗(yàn)碼。當(dāng)進(jìn)行相關(guān)的數(shù)據(jù)校驗(yàn)時(shí),原來(lái)的校驗(yàn)碼與新產(chǎn)生的校驗(yàn)碼會(huì)進(jìn)行對(duì)應(yīng)的配對(duì)與對(duì)比。若不存在差錯(cuò),則結(jié)果為0;反之,則產(chǎn)生了相關(guān)的錯(cuò)誤,就需要對(duì)其進(jìn)行一定的糾正。
軟件設(shè)計(jì)與驗(yàn)證以三星存儲(chǔ)芯片為例,其外觀結(jié)構(gòu)如圖2所示。
圖2 三星存儲(chǔ)芯片外觀結(jié)構(gòu)
3.1檢查無(wú)效塊操作
無(wú)效塊數(shù)據(jù)都記錄在每個(gè)存儲(chǔ)模塊的最后一個(gè)字節(jié),當(dāng)數(shù)據(jù)讀出的是FFh時(shí),則表示其為有效塊;反之,則為無(wú)效塊。在無(wú)效塊的檢驗(yàn)操作中,由于對(duì)8塊存儲(chǔ)芯片進(jìn)行并行操作,因此其能夠讀出64位的數(shù)據(jù)信息,只要其中一位信息顯示為非F,則表示該模塊為無(wú)效塊,需要將無(wú)效塊的相關(guān)位置信息存儲(chǔ)到FPGA內(nèi)部的存儲(chǔ)單位中。對(duì)8塊芯片進(jìn)行并行操作時(shí),一旦發(fā)現(xiàn)一塊芯片存在無(wú)效塊,則往往也認(rèn)為其他7塊芯片的相同位置也是無(wú)效塊,其就導(dǎo)致了資源的浪費(fèi)。在一般情況下,2.5 T的存儲(chǔ)卡若每一塊芯片浪費(fèi)18 GB,則8塊芯片就浪費(fèi)144 GB,其對(duì)于存儲(chǔ)卡的相對(duì)空間而言,不算大,屬于可接受的范圍。
3.2寫編程操作
當(dāng)讀取完相應(yīng)的命令與具體位置之后,閃存芯片便會(huì)進(jìn)入自動(dòng)的編程操作,編程的一般時(shí)間為800 μs,但是其他芯片的編程時(shí)間則長(zhǎng)達(dá)3 ms,并且在高速大容量存儲(chǔ)系統(tǒng)中一般是使用8塊芯片的并行操作以及流水線的操作,因此,在編寫操作時(shí)所需要的時(shí)間一般為8塊芯片自動(dòng)編程所需的最大時(shí)間值,由于每塊芯片自動(dòng)編程所需要的時(shí)間不同[2]。因此,在進(jìn)行流水線操作時(shí),流水線的層數(shù)應(yīng)該在最大程度拓展,若流水線層數(shù)偏少,則就會(huì)產(chǎn)生命令結(jié)束流水線進(jìn)行操作,可是外界還在不停地輸入數(shù)據(jù),在該種情況下就會(huì)導(dǎo)致數(shù)據(jù)的丟失。
3.3擦除操作
一般情況下,由于閃存芯片的擦除操作所需要的時(shí)間偏大,因此,為了在最大程度提升擦除操作的效率,則對(duì)擦除操作進(jìn)行流水線的進(jìn)程安排,例如,當(dāng)?shù)谝唤M的閃存芯片進(jìn)行編程操作時(shí),第二組的芯片就會(huì)進(jìn)行自動(dòng)的擦除操作,以在最大程度減少操作時(shí)間,達(dá)到高效的目的。但是必須注意的一點(diǎn)是,閃存芯片在擦除數(shù)據(jù)時(shí),會(huì)將其無(wú)效塊的位置數(shù)據(jù)一起刪除,因此,在開(kāi)展擦除操作之前,必須對(duì)無(wú)效塊的位置信息進(jìn)行讀取與存儲(chǔ),以保證在擦除數(shù)據(jù)時(shí)能夠避開(kāi)對(duì)無(wú)效塊的操作,提升操作效率。
3.4讀操作
讀操作的進(jìn)行最重要的是其數(shù)據(jù)的連續(xù)性,一般情況下,為了保證讀取的數(shù)據(jù)與存儲(chǔ)的數(shù)據(jù)的相同性,則需要按照編寫數(shù)據(jù)的順序依次讀取數(shù)據(jù),以達(dá)到保證數(shù)據(jù)連續(xù)性的要求。例如,通過(guò)ChipScope軟件對(duì)閃存芯片的原始數(shù)據(jù)進(jìn)行讀取時(shí),因?yàn)樾酒谥谱鲿r(shí),其內(nèi)部的全部數(shù)據(jù)都被設(shè)置為了1,因此,通過(guò)讀取的數(shù)據(jù)也能夠?qū)ζ溥M(jìn)行檢驗(yàn)。并且,若在數(shù)據(jù)讀取的過(guò)程中,其正確率能夠達(dá)到百分百,則說(shuō)明芯片的原始設(shè)置中已經(jīng)對(duì)無(wú)效塊的處理進(jìn)行了信息的屏蔽,例如,當(dāng)對(duì)一塊儲(chǔ)存卡上的信息進(jìn)行讀取時(shí),由于目前存儲(chǔ)卡一般采取的是8塊閃存芯片共同操作的并行結(jié)構(gòu),則數(shù)據(jù)的位數(shù)一般為64位,每位數(shù)據(jù)的加載都能得到一路信號(hào),只要保證讀取的數(shù)據(jù)與存儲(chǔ)的數(shù)據(jù)的相同性,則數(shù)據(jù)就能進(jìn)行精確的加載與存數(shù),同時(shí)也能被完整地讀取[3]。
高速大容量存儲(chǔ)系統(tǒng)在最高程度上其速度能夠高達(dá)每秒320 MHz,即使考慮無(wú)效塊的干擾,其容量也可高達(dá)2.5 TB。本文針對(duì)該系統(tǒng)硬件結(jié)構(gòu)進(jìn)行了介紹,并對(duì)其系統(tǒng)存儲(chǔ)的關(guān)鍵技術(shù)進(jìn)行了闡述。希望在未來(lái)的技術(shù)發(fā)展中,存儲(chǔ)系統(tǒng)的發(fā)展能夠支持更大容量、更高速度的數(shù)據(jù)存儲(chǔ),且希望其能夠具有一定通用性,能為其他領(lǐng)域的數(shù)據(jù)存儲(chǔ)應(yīng)用創(chuàng)造價(jià)值、發(fā)揮積極作用。
[1]李華, 王文英. 高速大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)[J]. 電子元器件應(yīng)用, 2009(5): 58-59.
[2]楊劍, 張?jiān)? 宿紹瑩, 等. 高分辨寬帶雷達(dá)高速數(shù)據(jù)大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2010, 46(16): 23-26.
[3]李金猛, 周勇軍. 高速大容量數(shù)據(jù)存儲(chǔ)技術(shù)的研究綜述[J]. 測(cè)控技術(shù), 2016, 35(2): 1-4.
Key of Design and Application on High Speed Large Capacity Storage System
CHEN Kai, CHEN Tian-xi, LIU Li-ming
(Zhuzhou Zhongche Times Electric Limited by Share Ltd., Zhuzhou, Hunan, 412001, China)
The storage system has higher requirements on the capacity, speed, stability, continuity and environment. Flash memory can read and write a large number of data fast, efficiently and reliably, so it is widely used. The specific technology of storage system is expounded and corresponding improvement scheme for the high speed and large capacity storage system is put forward Further, the related operation of software design and verification is introduced. It is expected to provide reference for the application of high speed and large capacity storage system.
High Speed and Large Capacity; Storage System; Application Design
TP338.6
A
2095-8412 (2016) 05-989-03工業(yè)技術(shù)創(chuàng)新 URL: http://www.china-iti.com
10.14103/j.issn.2095-8412.2016.05.044
陳凱(1984-),工程師。研究方向:軌道交通信息系統(tǒng)。E-mail: chenkai@teg.cn
陳天喜(1981-),工程師。研究方向:軌道交通信息系統(tǒng)。E-mail: chentx@teg.cn
劉黎明(1979-),工程師。研究方向:軌道交通信息系統(tǒng)。E-mail: liulm@teg.cn