一种专用高速硬盘存储设备的设计和实现 内存与硬盘

一种专用高速硬盘存储设备的设计和实现

一种专用高速硬盘存储设备的设计和实现 在高速数据采集存储系统中,数据存储是一项关键技术。通常的做法是把 数据存入大容量存储器中,采集结束后再进行数据处理和保存。这种方法。持续 采集时间受存储器容量的限制,在许多场合可能无法满足要求;而存储器容量的增 加,其价格也会成倍增长。因此,从存储容量、读写速度和单位成本等方面综合考 虑,采用高速硬盘直接数据存储是很有优势的。

对于硬盘而言,在持续高速数据存储中,关键是它的持续数据传输速率 (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虽然可以解决并发访问的问题,但它必需的 双边地址译码又是不可忽视的问题。对于单纯的数据存储设备,不需要对数据做 压缩、信号分析等预处 专用高速硬盘存储设备的框图如图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的命令集,工作量比较大,同时程序的优劣 也关系到系统的存储速度和可靠性。由于篇幅限制,软件设计本文不再多述。