新闻  |   论坛  |   博客  |   在线研讨会
一种专用高速硬盘存储设备的设计与实现
望星落 | 2008-04-30 14:43:10    阅读:877   发布文章

 

高速数据存储在高速数据采集存储系统中,数据存储是一项关键技术。通常的做法是把数据存入大容量存储器中,采集结束后再进行数据处理和保存。这种方法。持续采集时间受存储器容量的限制,在许多场合可能无法满足要求;而存储器容量的增加,其价格也会成倍增长。因此,从存储容量、读写速度和单位成本等方面综合考虑,采用高速硬盘直接数据存储是很有优势的。 对于硬盘而言,在持续高速数据存储中,关键是它的持续数据传输速率(sustained transfer rate)能否满足要求。目前,15000r/min的小型计算机系统接口SCSI(Small Computer System Interface)硬盘,总线数据传输速率为80~320MB/s,持续数据传输速率大于40MB/s。而PC机普遍配置的IDE硬盘,虽然它的总线数据传输速率可以达到33~100MB/s,但持续数据传输速率只有15MB/s左右,性能低于SCSI硬盘。 本文设计了一种专用高速硬盘存储设备,它脱离微机平台实时将高速数据送入SCSI硬盘,持续存储速率可达35MB/s(使用Seagate公司生产的ST336752LW型硬盘)。 1 SCSI总线及硬盘 SCSI是美国ANSI9.2委员会定义的计算机和外设之间的接口标准,最初是以磁盘存储设备为主,但由于它的灵活性、设备独立等特点,使之不仅在磁带设备、打印设备、光盘驱动设备等外设中得到普遍应用,也在许多I/O设备和计算机网络、计算机工业控制等领域不断发展。随着外设速率的不断提高,SCSI的性能几乎每5年提高一倍,目前Ultra320 SCSI总线数据传输速率可达320MB/s。 SCSI是设备无关的输入输出总线,可以挂接多达8个以上的设备。对于SCSI总线上的设备,如果是任务的触发者,则称为启动设备;如果是任务的执行者,则称为目标设备。通常启动设备先选择一个目标设备,继而由目标设备决定继续控制总线或释放总线,直到完成任务。本文的专用高速硬盘存储设备采用单启动、单目标结构。 SCSI硬盘在标识硬盘扇区时使用了线性的概念,即硬盘只有顺序的第1扇区、第2扇区…第n扇区,不像IDE硬盘的“柱面/磁头/扇区”三维格式。这种线性编排方式访问延时最小,可加快硬盘存取速率,尤其在持续大容量数据存储时,所显现的优势较明显。目前,操作系统内部也使用线性编号的扇区,其目的是加快介质存取速度,加大介质访问容量。 综上所述,该专用高速硬盘存储设备使用SCSI总线不仅数据传输速率高,而且在需要时可以增加设备中的硬盘数量来扩展存储空量,甚至可以把硬盘替换为其它SCSI存储设备。 2 系统结构设计为了实现SCSI协议和硬盘存储,一般需要有微处理器、DMA控制器、SCSI协议控制器、数据缓存器等硬件支持和相应的软件控制模块。 ·微处理器用来控制设备中各部件的工作,实现设备本身的特定功能。该专用高速硬盘存储设备实现数据的持续高速存储,要求处理数据的速度高。通常这些需要传输和处理大量数据的设备均选用数字信号处理器DSP作为微处理器。同时,SCSI协议中许多复杂的控制功能也需要这个微处理器来实现。 ·传送大量数据大多会采用直接存储器访问DMA(Direct Memory Access)方式,因此需要独立的DMA控制器或选用内置DMA控制器的微处理器。出于简化电路和提高速率的考虑,该设备采用复杂可编程逻辑器件CPLD构造了一个独立的DMA控制器。 ·要实现SCSI协议需要有SCSI协议控制器。DSP中通常不会集成SCSI协议控制器,因此一般情况下,需要选择通用的SCSI协议控制器,辅助DSP实现SCSI协议和通信。 ·在设备的输入接口部分,需要有数据缓存单元。普通的存储器在写入的同时不能读取;采用双口随机存储器RAM虽然可以解决并发访问的问题,但它必需的双边地址译码又是不可忽视的问题。对于单纯的数据存储设备,不需要对数据做压缩、信号分析等预处理工作,缓存单元在结构上相当于先进先出(First In First Out,FIFO)队列,先到的数据先被存储。所以采用专用FIFO芯片,可以去掉复杂的缓存器译码电路,大大简化系统设计。而且,采用专用FIFO芯片,整个设备从外部数据接口看来,就是一个写不满的FIFO,也大大简化了对设备数据接口的操作。 专用高速硬盘存储设备的框图如图1所示。图1中各方框表示一个基本模块,括号中文字表示具体实现的器件,虚线左侧部分不属于设备模块。 该高速硬盘存储设备设计中向处理器选用了TI公司生产的TMS320F206,SCSI协议控制器选用了Qlogic公司生产的FAS368M,DMA控制器和其它外围逻辑转换电路选用了ALTERA公司生产的CPLD器件EPM7064。 TMS320C206是TI公司生产的CPLD器件EPM7064。 TMS320C206是TI公司生产的TMS320系列单片数字信号处理器中的一种低价格、高性能的定点DSP芯片。该芯片功耗低,处理能力强,指令周期最短为25ns,运算能力达40MIPS,片内具有32KB的闪烁存储器和4.5KB的RAM,是最早使用闪烁存储器的DSP芯片之一。由于闪烁存储器具有比ROM灵活、比RAM便宜的特点,因此使用TMS320F206不仅降低了成本、减小了体积,同时系统升级也比较方便。 FAS368M是与SCSI-3标准完全兼容的SCSI协议控制器,它支持启动设备与目标设备两种模式,同步数据传输速率为40MB/s。另外,FAS368M支持最大50 MB/s的快速DMA数据传。由于采用分离的微处理器总线和DMA总线结构,因此能以较高速率产生响应而不会造成瓶颈效应。 3 硬件电路及功能描述TMS320F206、FAS368M、EMP7064和IDT7208之间的具体连接线路如图2所示。 3.1 FAS368M的信号及内部寄存器说明 图2中FAS368M的主要信号和控制逻辑如下: ·ACK、ATM、BSY、CD、IO、MSG、REQ、RST、SD0~15、SDP0~1、SEL及其差分信号,都是FAS368M与SCSI总线的接口信号。 ·CS信号是读写FAS368M内部寄存器片选信号。 ·RD、WR是FAS368M内部寄存器的读写信号。 ·FAS368M的TNI端对应TMS320F206的外部中断INT1,当其有效时,表明有错误产生(如校验出错)、一个事件需要服务(如FAS368M作为目标设备被选中)或已结束某服务(如DMA结束)。 ·DREQ,FAS368M使DREQ有效向DMA控制器(EPM7064)发出DMA传输请求。 ·DACK,EPM7064对FAS368M DMA请求信号DREQ的响应。 ·DBWR,DMA数据写信号。当DREQ和DACK信号均有效时,EPM7064控制该信号和缓存器IDT7208的RD信号,实现数据从IDT7208向FAS368M的同步快速传输。 FAS368M在TMS320F206的控制下实现所有的SCSI物理协议,包括仲裁、选择、消息、命令、数据、状态等各阶段规定的信号电平转化等。在设备中TMS320F206对FAS368M的控制是通过对其寄存器的读写来实现的。 ·指令寄存器(Command Register),TMS320F206通过向指令寄存器写入相应指令,实现诸如FAS368M的初始化与复位、SCSI总线分配与复位、SCSI总线各阶段的迁移等所有针对FAS358M和SCSI总线的控制。 ·FIFO寄存器(FIFO Register)是一个16字的FIFO寄存器,硬盘和FAS368M之间的数据都要通过FIFO寄存器。它有两方面的用途:当FAS368M通过SCSI总线向硬盘传送数据和命令时,可以先把要传送的数据和命令放在FIFO寄存器,等SCSI总线空闲,并获得总线控制权以后再开始传送;另一方面,由SCSI总线传送到FAS368M的数据,也可因为TMS320F206或DMA控制器忙而停止,数据先送到FIFO寄存器空出SCSI总线,等TMS320F206或DMA控制器空闲再从FIFO寄存器读取数据。 ·传输计数寄存器(Transfer Count Register)是一个减计数器,它通常用来保存一次DMA命令所要传输数据的字节数。 ·中断寄存器(Interrupt Register),FAS368M所有的信息都以中断的方式通知TMS320F206。TMS320F206通过读取中断寄存器和其他状态寄存储器判断FAS368产生中断的原因,决定下一步操作,从而实现FAS368M对TMS320F206的通信。 3.2 EPM7064内部逻辑和作用 设备中的DMA控制器由CPLD器件EPM7064实现,这主要有下面几方面的考虑: (1)设备接口缓存器采用专用FIFO芯片IDT7208,它的数据总线可以和FAS368M的DMA数据总线直接连接,不需要复杂的缓存器地址译码电路。因此,DMA控制器不需要数据与地址总线,硬件连线可以大大减少。而配合FAS368M DMA数据传输的时序,DMA控制器只需在DMA传输请求信号DREQ有效且IDT7208空信号EF无效时,使DMA传输响应信号DACK有效,随后在时钟信号CLK驱动下连续产生同步的IDT7208读信号RD和DMA写信号DBWR,实现从IDT7208到FAS368M的DMA传输;反之,则使DMA传输响应信号DACK无效,随后停止产生IDT7208读信号RD和DMA写信号DBWR,中断从IDT7208到FAS368M的DMA传输。这些时序逻辑完全可以用一片小的CPLD器件实现,因此选用EPM7064设计了该DMA控制器。 (2)FAS368M支持高达50MB/s的快速DMA传输。一般的专用DMA控制器芯片难以胜任,而且专用DMA控制器与FAS368M的连接需要一定的逻辑转换电路,外围硬件连线也较多。同时,它还必须在TMS320F206的控制下与FAS368M一起协调工作才能实现DMA传输,又增加了软件的复杂程度。 (3)使用EPM7064除了实现DMA控制器的功能外,还可以把整个设备电路中的一些译码、逻辑转换等模块一并设计进去,在很大程序上减小了设备的体积,同时也为设备的改进和升级提供了方便。 在硬件设计的基础上,DSP微处理器还需要一个软件模块负责对相关硬件控制和协调,最终实现SCSI协议、硬盘的控制和DMA传输等。对DSP微处理器的编程,需要完整掌握SCSI-3协议标准和FAS368M的命令集,工作量比较大,同时程序的优劣也关系到系统的存储速度和可靠性。

 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客