陈凯,陈天喜,刘黎明
高速大容量存储系统设计关键与应用
陈凯,陈天喜,刘黎明
(株洲中车时代电气股份有限公司,湖南株洲,412001)
存储系统对容量、速度、稳定性、连续性以及使用环境等都提出了更高的要求。由于闪存能够对大量数据进行快速、高效、可靠、安全地读写操作,应用日益广泛。主要阐述了系统存储的具体技术,针对高速大容量的存储系统提出了相应的改进方案,并介绍了软件设计与验证的相关操作。希望能够为高速大容量存储系统应用技术应用提供参考。
高速大容量;存储系统;应用设计
存储技术的更新换代越来越快,存储系统的稳定性与安全性等特征也得到了进一步提升,手机的海量存储问题已经得到解决,高速大容量存储系统凭借着其高速的存储速度、低廉的成本、便利性等得到了企业用户的青睐。但是随着图片乃至视频存储等数据量的逐渐增大,其对内存容量大小也提出了更高的要求。
由于闪存技术的控制程序较为复杂,且其对于序列的排序具有一定要求;同时所产生的无效块也在很大程度影响了存储系统的管理等。面对这类问题,存储系统还是需要有控制器协调处理。
本文探讨了并行总线操作、无效块管理、流水线操作以及数据校验等关键技术。
存储系统主要利用一种LVDS(即Low Voltage Differential Signaling)低压差分信号技术接口,来获取相关的图像与文字数据信息。利用RS232串口获取相应的附加数据,例如时间、焦距等相关的数据信息,并将其处理成BMP格式的文件。然后,根据数据信息频率的大小进行一定程度的筛选,并按照时间前后进行一定顺序的排列储存;最后,通过相关的接口对外输出图像以及相关的附加数据,并通过控制器和屏幕进行相应显示。系统硬件外观如图1所示。
图1 系统硬件外观
根据时间顺序排列对其进行相关的存储、格式化以及读写等操作,并对鉴别出来的存储失效块进行标志管理或修理恢复,以提升数据存储的可靠性与安全性[1]。
接口板的PCI地址映射如表1所示。
表1 接口板的PCI地址映射
采用LVDS输出接口传输数据可以使实现数据的高速率、低噪声、远距离、高准确度的传输。如在液晶显示器驱动板输出的数字信号中,除了包括RGB数据信号外,还包括行同步、场同步、像素时钟等信号,其中像素时钟信号的最高频率可超过28 MHz。
2.1并行总线操作
并行总线操作主要是利用数据线的宽带来达到并行操作的目的,并行操作需要将存储系统内部的多个闪存芯片的数据线共同连接,使其能够被同时操作与读写,以提升数据读写的效率与速度,在并行操作中,可以将连接起来的多个芯片系统看作一个模块,然后将其作为整个存储系统的基本读写单位,所有的操作都可以在上面进行,例如,一片具有8块闪存芯片的存储卡就会有64位的基本模块,其通过相同的操作进行控制,其不仅包括片选信号,还包括读写信号等,芯片的地址一般是通过FPGA进行提供的,因此,8块闪存芯片组成的存储系统,其能够储存的数据容量是一块芯片的8倍,且其并行速度也是没有并行时的8倍,因此,存储系统并行总线操作能够在很大程度提升数据存储的速度,提升工作效率。
2.2无效块管理
闪存存储芯片在被制造时就已经产生部分的无效块了,且在后续的使用过程中,由于使用不当,也会造成存储模块的损坏,产生一定的无效块,因此,在对存储卡片进行操作之前,就应该清楚无效块的分布与具体情况,避免对无效块进行操作,保证所有的操作都能够对应正确的数据,提升工作效率,保证工作质量。为了不对无效块进行操作,相关的工作人员采取了一定的解决措施,例如建立必要的无效块屏蔽系统以及FAT文件系统的无效块处理方法等,但是该类解决措施总是各有利弊[2]。但是,在本文提到的方法中,其可以直接对FPGA内部开辟相关的存储模块以用于存储无效块具体位置的信息,在进行相关操作之前,应该进行必要的无效块读取,将无效块的具体位置储存入相关的存储模块中,在进行每次的操作之前,可以避开对无效块的操作,实现对无效块的高效管理。需要特别注意的是,在进行无效块的存储时,由于其位置的相关信息是储存在FPGA内部的,因此,一旦断电之后,其相关的数据都会被抹掉,因此,每次接电后,都应该对存储卡的无效块进行一定的管理与操作,总而言之,无效块的管理主要是通过制造时对无效块进行屏蔽,回避对其的操作,实现无效块的高效管理。
2.3流水线操作
流水线操作能够在很大程度上提升存储卡的储存效率,例如,对一张存储卡进行相关的读写操作时,其输入的时间频率为30 MHz,若需要编写一页的编程,则相关数据的下载时间平均为133 μs,但是,闪存存储卡的所用时间则需要800 μs,每当抹掉一个模块的数据信息时,其所需要的时间高达1 500 μs,远远高于其相关数据的加载时间,因此,显而易见,编程花费了大量的操作时间,大大影响了存储卡的存储效率。目前,我国使用的流水线操作,在一定程度上解决了编程的效率问题,实现了其在时间上的相对平等,当流水线开始正常运转的时候,相关的操作甚至可以累加进行,实现了最大程度的时间利用,其总体效率明显提升。
2.4据校验
由于操作时间排序的错误以及电力不稳定等问题,一般情况下是不会造成闪存的整个模块出现错误的,一般只会造成较小的“位”出现差错,为了校验并改正这类差错,数据校验一直被采用。其主要包括纠正单比特错误与检测双比特错误两大功能,并且其处理的速度较快,效率较高,一般情况下,当闪存芯片开始读取数据时,每512个字节即可生成相关的校验码,随后的数据读取依此类推,于是不断产生新的校验码。当进行相关的数据校验时,原来的校验码与新产生的校验码会进行对应的配对与对比。若不存在差错,则结果为0;反之,则产生了相关的错误,就需要对其进行一定的纠正。
软件设计与验证以三星存储芯片为例,其外观结构如图2所示。
图2 三星存储芯片外观结构
3.1检查无效块操作
无效块数据都记录在每个存储模块的最后一个字节,当数据读出的是FFh时,则表示其为有效块;反之,则为无效块。在无效块的检验操作中,由于对8块存储芯片进行并行操作,因此其能够读出64位的数据信息,只要其中一位信息显示为非F,则表示该模块为无效块,需要将无效块的相关位置信息存储到FPGA内部的存储单位中。对8块芯片进行并行操作时,一旦发现一块芯片存在无效块,则往往也认为其他7块芯片的相同位置也是无效块,其就导致了资源的浪费。在一般情况下,2.5 T的存储卡若每一块芯片浪费18 GB,则8块芯片就浪费144 GB,其对于存储卡的相对空间而言,不算大,属于可接受的范围。
3.2写编程操作
当读取完相应的命令与具体位置之后,闪存芯片便会进入自动的编程操作,编程的一般时间为800 μs,但是其他芯片的编程时间则长达3 ms,并且在高速大容量存储系统中一般是使用8块芯片的并行操作以及流水线的操作,因此,在编写操作时所需要的时间一般为8块芯片自动编程所需的最大时间值,由于每块芯片自动编程所需要的时间不同[2]。因此,在进行流水线操作时,流水线的层数应该在最大程度拓展,若流水线层数偏少,则就会产生命令结束流水线进行操作,可是外界还在不停地输入数据,在该种情况下就会导致数据的丢失。
3.3擦除操作
一般情况下,由于闪存芯片的擦除操作所需要的时间偏大,因此,为了在最大程度提升擦除操作的效率,则对擦除操作进行流水线的进程安排,例如,当第一组的闪存芯片进行编程操作时,第二组的芯片就会进行自动的擦除操作,以在最大程度减少操作时间,达到高效的目的。但是必须注意的一点是,闪存芯片在擦除数据时,会将其无效块的位置数据一起删除,因此,在开展擦除操作之前,必须对无效块的位置信息进行读取与存储,以保证在擦除数据时能够避开对无效块的操作,提升操作效率。
3.4读操作
读操作的进行最重要的是其数据的连续性,一般情况下,为了保证读取的数据与存储的数据的相同性,则需要按照编写数据的顺序依次读取数据,以达到保证数据连续性的要求。例如,通过ChipScope软件对闪存芯片的原始数据进行读取时,因为芯片在制作时,其内部的全部数据都被设置为了1,因此,通过读取的数据也能够对其进行检验。并且,若在数据读取的过程中,其正确率能够达到百分百,则说明芯片的原始设置中已经对无效块的处理进行了信息的屏蔽,例如,当对一块储存卡上的信息进行读取时,由于目前存储卡一般采取的是8块闪存芯片共同操作的并行结构,则数据的位数一般为64位,每位数据的加载都能得到一路信号,只要保证读取的数据与存储的数据的相同性,则数据就能进行精确的加载与存数,同时也能被完整地读取[3]。
高速大容量存储系统在最高程度上其速度能够高达每秒320 MHz,即使考虑无效块的干扰,其容量也可高达2.5 TB。本文针对该系统硬件结构进行了介绍,并对其系统存储的关键技术进行了阐述。希望在未来的技术发展中,存储系统的发展能够支持更大容量、更高速度的数据存储,且希望其能够具有一定通用性,能为其他领域的数据存储应用创造价值、发挥积极作用。
[1]李华, 王文英. 高速大容量存储系统设计[J]. 电子元器件应用, 2009(5): 58-59.
[2]杨剑, 张月, 宿绍莹, 等. 高分辨宽带雷达高速数据大容量存储系统设计[J]. 计算机工程与应用, 2010, 46(16): 23-26.
[3]李金猛, 周勇军. 高速大容量数据存储技术的研究综述[J]. 测控技术, 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工业技术创新 URL: http://www.china-iti.com
10.14103/j.issn.2095-8412.2016.05.044
陈凯(1984-),工程师。研究方向:轨道交通信息系统。E-mail: chenkai@teg.cn
陈天喜(1981-),工程师。研究方向:轨道交通信息系统。E-mail: chentx@teg.cn
刘黎明(1979-),工程师。研究方向:轨道交通信息系统。E-mail: liulm@teg.cn