您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁体中文

基于SCSI总线的高速数据存储系统软件设计

赵涛,元原,李秀友,关键(1.海军航空工程学院402教研室山东烟台264001;2.中国人民解放军第二炮兵装备部北京100085)在雷达系统中对高数据率、大批量的数据进行存储,具有非常大的应用价值。这样做,一方面由于雷达系统外场实验的成本较高,同时一些特定场景实验数据又具有不可重复性,能够及时保存珍贵的实验数据对于雷达系统调试与性能分析都有着十分重要的意义。另一方面,当系统的实时处理能力不足时,可以将数据存储下来以

赵涛,元原,李秀友,关键

(1.海军航空工程学院402教研室 山东烟台264001;2.中国人民解放军第二炮兵装备部 北京100085)

在雷达系统中对高数据率、大批量的数据进行存储,具有非常大的应用价值。这样做,一方面由于雷达系统外场实验的成本较高,同时一些特定场景实验数据又具有不可重复性,能够及时保存珍贵的实验数据对于雷达系统调试与性能分析都有着十分重要的意义。另一方面,当系统的实时处理能力不足时,可以将数据存储下来以便进行非实时的处理。比如某星载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)。


本系统是某雷达数据采集系统的一部分,要求存储带宽不低于100 MB/s,同时数据记录时间不得小于一个小时。通过计算可以得到系统数据存储总量约为352 GB。通过前面的分析,发现在系统中使用2块300 GB的Ultra 320 SCSI硬盘完全可以满足要求。

3系统的软件设计

撰写各种SCSI适配器的驱动程序是一项十分烦琐的工作,本系统选择当前在PC平台上开发SCSI应用程序比较流行的方法——ASPI(The AdvancedSCSI Programming Interface)。它是由Adaptec公司开发的,已经成为了小型机和PC机上SCSI编程的一个标准。通过ASPI函数能够方便地控制各种SCSI外围设备,执行各种SCSI的输入输出指令。图5显示的是利用ASPI驱动SCSI设备的原理图。


在Windows下利用ASPI实现SCSI协议一般包括4个步骤:构造SCSI命令;把命令传给ASPI管理器;等待命令的完成;处理返回的错误信息。以下是程序中利用ASPI控制SCSI硬盘存储的部分内容:



为提高SCSI硬盘的存储速度,方便对存储数据进行管理,在本系统中设计了一个简易的文件系统,以便减少硬盘的寻道时间,同时利用ASPI函数并行存入数据,消除了原有文件系统处理资料写入的额外负担。将每次存储的数据作为一个数据文件,指定硬盘的前100个扇区作为目录区,记录每次数据存储的基本信息。每次存储形成一个目录信息,保存在一个扇区中,其格式定义如图6所示。



以下是系统中关于磁盘数据文件格式的具体定义:



4系统运行结果

本系统是一种基于PC机的高速数据存储平台,使用2块希捷公司的ST3146707LC Ultra320 SCSI系列硬盘作为存储介质,SCSI接口卡选用Adaptec公司的7901SCSI控制卡。按照设计的文件结构,编程实现简易文件系统,实现数据在磁盘中的线性存储,提高了数据存储速率,同时便于对文件的后续管理。实际工作中每块磁盘的存储速度能够达到50 MB/s以上,用2块SCSI磁盘组成RAID0阵,可以达到100 MB/s以上的存储速率。图7是系统实际工作中的上位机界面截图,开发环境为C++Builder6.0。图中显示系统实时存储状态,及每次存储所形成的文件信息。从图7中显示状态可以看出,存储过程中平均速率及瞬时速率均超过100 MB/s,达到了预期的系统带宽设计要求。


5结语

本系统充分利用PC机的软硬件资源,发挥SCSI总线的速度优势,实际测试结果表明、系统运行状态良好、各项工作指标正常、实现了预期的设计目标。系统通过PCI/CPCI总线与数据采集系统联合使用,可广泛应用于雷达、通信等多种领域,应用前景广阔。


  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj