摘要:本文阐述了测控领域高速数据存储/读取的基本概念和方式,从存储介质、总线架构方面介绍了流盘技术,其中涉及到了最新的流盘系列产品,便于用户了解流盘领域的最新进展。
关键词:流盘;存储介质;总线;PXIe
前言
在测控领域,从多通道低采样率到多通道高采样率的数据采集,只要存储/读取速度超过20MB/s,总量超过2GB,工程师们都需要花费较多的精力或财力以解决数据存储/读取的问题,
传统仪器如示波器的存储能力是有限的,采集周期由仪器上缓存大小决定,采样结束以后,需要通过网络、GPIB或者是USB总线将数据传送到计算机中进行存储。举例来讲,如果采样率为100MS/s,采样通道缓存为256MB,那么当数据填满缓存时采集过程只持续了2.56s,缓存中的数据通过GPIB总线传输到计算机(传输速率1MB/s),传递过程需费时256s,即4分多钟内系统只连续采集了256M的数据;而使用最新的采集和流盘设备,如NI的PXIe设备,使用相同采样率、相同大小的板上缓存,采集存储过程可以一直持续下去,直到存储的硬盘被填满(最高2TB即2000GB)。采集的数据还可被直接从硬盘上通过相关设备完全回放出来,整个文件完全是Windows系统文件。
本文的目的就是介绍高速数据传输的关键限制因素,进而说明数据流盘的原理及其应用,最后介绍最新的数据流盘产品。
所谓流盘即持续从或者向存储器(Memory)中传输数据。存储器可以是设备的板上缓存(Onboard Memory)、控制器上的RAM或者是控制器上的硬盘。数据向这些存储器上传输的速率受到多种因素的限制,包括系统的带宽和存储器介质的读写速度等。本文介绍了流盘中使用到的总线种类和存储介质类型,以提供关于流盘的应用信息,便于应用于不同总线不同存储器的流盘应用,涉及了最新的数据流盘产品。
存储介质
IDE
IDE集成驱动电子设备是由Western Digital、ATA和APTI在1986年联合开发的较早的应用于硬盘和其它存储介质的一种接口规范。1990年11月,美国国家标准机构采用了IDE接口标准。将IDE命名为ATA(高级技术附加装置)。随着技术的发展,存储介质的容量越来越大,原先的规范已不适应更大容量的存储介质,于是EIDE(Enhanced IDE)被开发出来,它可以支持的磁盘容量达到8.4GB,同时该协议也发展成为可支持其它类型的存储介质,如CD、DVD-ROMS、磁带存储器和大容量软盘。随着磁盘容量的进一步增大,ATA标准也不断的修改,以支持137GB进而160GB的容量,现在是128PiB(或者144PetaBytes)的硬盘容量。在串行ATA(SATA) 标准出现之前,IDE、EIDE和ATA都是同义词,并且与并行ATA接口(PATA)具有互换性。
SATA
SATA在2003年被开发出来以代替旧的PATA规范,SATA采用串行连接方式,以连续串行的方式传送数据,采用类似于以太网、光纤和PCI总线的形式以8B/10B的方式对数据进行编码,能对传输数据进行纠错检查。SATA接口针脚数目更少,仅用四支针脚完成所有工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时该架构还能降低系统能耗和减小系统复杂性。传输信号采用LVDS形式(低电压差分信号,更稳定、速度更快)。SATA 1.0定义的数据传输率可达150MB/s,比最快的PATA(即ATA/133)所能达到133MB/s的数据传输率更高,SATA 2.0的数据传输率达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。
SATA还具有热插拔的功能。在连接形式上,每个SATA硬盘独占一个传输通道,所以不存在像并行ATA那样的主/从控制的问题。
RAID系统
RAID廉价磁盘的冗余阵列,主要架构就是将多块磁盘通过软件或者硬件形成一个逻辑上的存储单元,目前RAID根据工作方式可以分为很多类型,以下主要介绍RAID0~5。
·RAID0:磁盘没有奇偶数目的要求,数据被平均分割存储到多个磁盘上,总的读写速度就是磁盘数量乘以单个磁盘的读写速度,缺点在于一块磁盘损坏,则整个磁盘阵列即坏,数据无法被修复。
·RAID1:磁盘数目必须为偶数,数据被平均分割存储到多个磁盘上,但是每个磁盘又配置一个镜像磁盘,用于备份数据,因此RAID1型的数据读取速度比写速度要快,而且RAID1型当一个磁盘忙或者损坏时,可以从其镜像磁盘中读取/写入数据,提高了数据的可靠性。
·RAID2:在位(bit)的层面上将数据分割存储到各个磁盘上,RAID2使用称为“加重平均纠错码”的编码技术来提供错误检查及恢复。除了平均分割数据并存储到多个磁盘上外,还需要磁盘存放校验码,RAID2技术实施复杂。因此,在商业环境中很少使用。
·RAID3和RAID4:平均分割存储数据,类似于RAID0,但是需要一块磁盘作为奇偶校验盘,写盘速度主要受奇偶校验盘的影响,该阵列在任何一块磁盘损坏时,仍然可以恢复数据。商业上很少使用该类型磁盘阵列。
·RAID5:类似于RAID3和RAID4,但是奇偶校验不是制定某一个盘,而是所有磁盘轮流存储数据和校验信息,当某一块磁盘损坏时仍然可以重建数据。性能比RAID0稍低,但是可靠性高。
总线结构
PCI总线
PCI是将外部设备互连到一块主板上的接口标准,由英特尔公司1991年推出。此标准允许在计算机内安装多达10个遵从PCI标准的扩展卡。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz * 32bit/s),基本上满足了当时处理器的发展需要。1993年又提出了64bit的PCI总线,后来又提出把PCI 总线的频率提升到66MHz。目前广泛采用的是32bit、33MHz的PCI 总线,64bit的PCI插槽更多是应用于服务器产品。
PXI总线
PCI eXtensions for Instrumentation (PXI)标准由NI公司在1997年率先提出,PXI基于CPCI标准,增加了时钟和同步触发总线,特别适合于测控领域的应用,但是其核心仍然是PCI总线。最高传输速度为133MB/s。
PCIe
PCI Express (PCIe)总线在2003年由Intel提出,用于替代PCI总线标准,新的PCIe标准不再向下兼容PCI。二者之间的主要差别在于PCIe总线是串行总线,采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,x1(单线)传输可以达到250MB/s,如果使用x16线连接,传输速率可以达到8GB/s的理论带宽。2007年1月,PCIe 2.0标准发布,除了向下兼容PCIe 1.0之外,将单线速度提高到了500MB/s,x16的带宽则达到了16GB/s。
PXIe
PXIe该标准是2005年8月根据PCIe的出台而发布的,不像PCI和PCIe的不向下兼容性,在一个PXIe混合插槽里即可以安装PXI板卡,又可以兼容PXIe板卡。
流盘架构
要实现高效率的数据流盘,并不是采用高速的总线加高速读取的磁盘就可以实现的,还需要采用合理的流盘架构。下面介绍不同的流盘架构及特点。
使用普通PCI架构
PCI总线是一种并行总线,最高带宽132MB/s,持续带宽110MB/s,所有的设备共享该带宽,存储顺序是数据先传到设备缓存,再经PCI总线传输到控制器,经过I/O总线,到内存RAM、CPU、最后存储到硬盘上,由于各个设备共享带宽,而且数据需要经过CPU处理最后存储到硬盘上,普通的IDE硬盘读写速度也不快,因此,采用该架构数据的存储速度一般不会超过20MB/s。如图1所示,一般的PXI设备工作原理与次类似。
图1 PCI总线数据存储/读取
使用普通PCIe架构
PCIe总线是一种串行总线,单线传输(x1)可以达到250MB/s,16线(x16)时传输速率可达4GB/s,各设备专用各自总线,因此传输速率较高,如图2所示,数据先存储到设备缓存上,再直接传递到I/O总线,经过RAM、CPU、传递到硬盘上,此时的瓶颈主要存在于读写硬盘的速度。一般存储/读取的速度均在100MB/s以上。
图2 PCIe数据存储/读取
使用直接读/写盘结构
以上结构,数据都要经过I/O总线、内存和CPU,在一定程度上该过程限制了存储/读取的速度,而且CPU的多线程性又增加了丢失数据的可能性和系统的不稳定性,所以出现了直接读/写盘结构。该结构原理如图3所示,数据从设备的缓存中读出后直接写入磁盘,或者从磁盘中读取后直接输出。
图3 直接读/写盘结构
该结构有两种典型应用,一种是NI的PXI系统配合Express Card接口卡、RAID磁盘阵列,数据从设备缓存读取后经PCI总线不经过系统内存和CPU直接经过Express Card接口卡存入RAID磁盘阵列,持续存储速度可达100MB/s(见图4所示)。
图4 PXI总线直接读/写硬盘
另一种典型结构是NI的PXIe总线结构,该结构通过PXIe总线上的一款专门的数据流盘卡,对RAID磁盘阵列进行数据的写入/读取。持续写入/读取速度可以达到300MB/s、600MB/s甚至更高(见图5所示)。
图5 PXIe流盘系统(NI的600MB/s流盘设备)
结语
流盘即持续从或者向存储器中传输数据,要达到较高的流盘速度和效率,需要综合考虑存储器、总线和系统架构等因素,如果选择成熟的产品进行测控方面的应用,NI的产品是个不错的选择。 |