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

时间:2022-02-11 11:37:37

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

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

对于硬盘而言,在持续高速数据存储中,关键是它的持续数据传输速率(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端对应tms

320f206的外部中断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的命令集,工作量比较大,同时程序的优劣也关系到系统的存储速度和可靠性。由于篇幅限制,软件设计本文不再多述。

上一篇:名实辨析:一种写作的基本功 下一篇:强化权力运行监督,扎实推进林业系统反腐倡廉...