在雷达系统中对高数据率、大批量的数据进行存储,具有非常大的应用价值。这样做,一方面由于雷达系统外场实验的成本较高,同时一些特定场景实验数据又具有不可重复性,能够及时保存珍贵的实验数据对于雷达系统调试与性能分析都有着十分重要的意义。另一方面,当系统的实时处理能力不足时,可以将数据存储下来以便进行非实时的处理。比如某星载SAR在某系统参数下的成像处理,一段时间的数据率达到了256 MB/s,在如此高的数据率下实时保存现场数据就显得尤为重要。本文设计一种基于SCSI技术的数据存储系统,并在实际工程中得到了很好的应用。
1 基于总线的数据存储技术简介
1.1 常用计算机系统总线介绍
计算机总线是计算机部件间传递信息的通道,总线技术在整个计算机系统中占有十分重要的位置。随着计算机技术的不断发展,各种标准的、非标准的总线技术层出不穷。最典型的传统总线是ISA(IndustrialStandard Architecture)总线,又称AT总线。它是IBM公司1984年为推出PC/AT机而建立的系统总线标准,它在80286至80486时代应用非常广泛。随着CPU与微机性能的不断发展,原有总线的数据传输率已经无法满足系统的需要。为解决该问题,Intel公司于1991年提出了外围器件互连(Peripheral ComponentInterconnect)总线,即PCI总线。由于其优越的性能,PCI总线标准一经推出就得到了计算机业界的普遍青睐,现已成为当前最流行的总线之一。目前,PCI总线的峰值数据传输率可到528 MB/s,很好地解决了计算机总线遇到的瓶颈问题。CPCI(Compact PCI)总线是PCI总线的增强和扩展,在电气上完全与PCI兼容,具有抗振和利于散热等优点,更适合于工业测控的应用。本文所介绍的高速数据存储系统就是采用CPCI作为系统的基本总线。
1.2 数据存储总线的选择
目前高速、超高速A/D芯片已不再难以得到,各种处理器的处理速度也越来越快,如何实现数据采集速度与数据存储间带宽的匹配问题是当前数采系统发展的瓶颈之一。
SCSI(Small Computer Systems Interface)意为小型计算机系统接口。它已成为小型计算机I/O总线接口的标准。SCSI技术从1979年推出至今,经过了SCSI-1,SCSI-2,SCSI-3,Ultra2 SCSI,Ultra3 SCSI,Ultra160 SCSI和Ultra320 SCSI等多个版本,其接口带宽从最初的4 MB/s发展到目前的320 MB/s。FC(Fiber Channel,光纤通道)是一种高速度、高可靠、低延迟、高吞吐量的串行数据传输接口,它可广泛应用于高性能存储、大规模数据库、网络存储系统等领域。从实际应用的效果来看,光纤通道的带宽要比SCSI带宽高出许多,甚至数倍于SCSI技术。
尽管光纤通道的优势明显,但其高昂的成本限制它的应用范围。同时Ultra320 SCSI总线带宽达到了320 MB/s,这个带宽基本满足目前嵌入式数据采集存储设备的需要。出于对系统性能分析及性价比的考虑,本系统选择Ultra 320 SCSI作为系统存储的数据总线。
2 高速数据存储系统设计方案
2.1 概述
对于实时信号处理系统,为保证实时性,它要求系统必须具有处理大数据量的能力,这样就对于数据的实时存储提出了更高的要求。目前,解决高速的数据存储主要有这样几种方法:
(1)利用FIFO缓存器缓存高速数据流,以达到和低速存储介质间的速度匹配的目的。但这种方法实现起来比较复杂,将大大增加系统的工作量;
(2)采用IDE硬盘,利用多线程并行读写硬盘的方式来解决数据传输率的问题。目前虽然IDE接口硬盘的瞬时传输速率超过了133 MB/s,但其持续传输速率不超过15 MB/s,无法满足高速数据存储的要求。采用多线程读写硬盘,可以使CPU的性能得到充分发挥,有效地提高硬盘的读写速率。但这种方法势必会占用大量的CPU资源,在进行数据存储的同时无法进行其他操作;
(3)利用SCSI接口硬盘。目前,320 MB/s的SCSI硬盘在实际应用中可以达到60~70 MB/s的持续传输速率,160 MB/s的SCSI硬盘性能略低,大约为50 MB/s。随着SCSI硬盘成本的不断降低,SCSI硬盘已成为高速、大容量数据存储的一种较好的选择。此外,廉价冗余磁盘阵列(RAID)也是提高数据存储速率的一种有效手段。它采用并行原理,将多台的磁盘驱动器组合成磁盘阵列,进行并发读/写操作,并以多个硬盘的数据传输速率来匹配系统带宽,同时提供容错功能。
2.2 系统方案设计
目前基于PC系统的高速数据存储方案主要有2种:
第一种是采用硬件解决的方案,即数据不经系统内存,由数据采集卡通过DMA方式,经由PCI总线直接存储到SCSI硬盘。这种方式没有利用系统内存,节省系统总线带宽,因而可应用于高速的数据存储系统。但这种方案设计实现起来比较复杂,时间和经济成本通常很高。图1是这种方案的结构图。
第二种方法是采用软件解决的方案。它采用标准PC结构,数据先经PCI总线进入到系统内存,再经PCI存储到SCSI硬盘,如图2所示。在这种方式下,数据流在存储过程中要2次占用PCI总线带宽,所以其数据存储速度不及第一种方式。这种结构下数据存储速率的瓶颈是从PC机内存到硬盘的这个过程。
本系统采取的是第二种设计方案,为了解决存储瓶颈,系统采用特殊的数据存储方式,跳过Windows文件系统,直接对SCSI硬盘进行读写。同时,通过合理的选择SCSI磁盘阵的磁盘数量,提高系统存储带宽,使SCSI磁盘的速度优势得到最大限度的发挥。
2.3 SCSI硬盘实际带宽测试
在许多存储系统中,随着数据量的增加,会导致系统带宽下降,发生数据丢失现象。为此,就要找出系统发生数据溢出的节点,保证在系统带宽与高速输入数据流间的匹配。针对这种情况,专门对基于Ultra 320SCSI硬盘的存储系统进行了测试,测试中使用希捷公司146 GB和300 GB两种容量的硬盘。通过Windows系统连续向SCSI磁盘中写入数据,每次写入事件返回后立刻再次写入,直至磁盘写满为止。由主机分别取得写入前与写入后的系统时间,2次相减就是1次写入时间。通过测试结果发现,随着数据量的增大,2种硬盘的存储速度都成阶梯性下降,但146 GB硬盘速度曲线下降的速度几乎是300 GB硬盘的两倍,这主要是因为在磁道相同部位时,二者的转速一样,但是300 GB的盘片数目正好是146 GB的2倍,这说明对于高速大容量的存储系统300 GB硬盘是一个更好的选择。在文献[8]中提到320 MB/s的SCSI硬盘持续存储速率大约为60~70 MB/s,实际测试结果与文献基本相符,如图3所示。
随着硬盘数的增多,系统的存储带宽不断变宽。当SCSI适配器上挂2块300 GB的320 MB/s的SCSI硬盘时,系统最大带宽可以达到140 MB/s,大部分时间存储速度能维持在100 MB/s以上。4块硬盘时存储速度最快能达到210 MB/s,在200 GB以前存储速度能维持在200 MB/s以上。当存储硬盘增加到8块时,系统平均存储速度大幅度提升,最低仍能维持在185 MB/s以上。但是,随着硬盘数目的增多,系统对各个硬盘的同步性有所下降,导致各个硬盘等待写入时间不同,速度曲线出现了毛刺现象(见图4)。
|