同步dma传输协议的制作方法

文档序号:6410996阅读:236来源:国知局
专利名称:同步dma传输协议的制作方法
技术领域
本发明涉及通过总线在主设备和外围驱动设备之间进行的数据传输。具体来说,本发明涉及一种执行同步直接存储器存取(DMA),以提高的数据传输率传送数据的方法。
在个人计算机(PC)系统中,主设备和外围驱动设备之间的数据传输率受连接设备的总线结构的限制。一种通常用于将外围驱动设备连接到PC的系统总线上的总线是ATA总线,该ATA总线是一种原本为IBM PC/AT机的ISA总线设计的磁盘驱动接口。开始时,ATA总线先被配置为使用LS-TTL(低功耗肖特基晶体管—晶体管逻辑)门电路来驱动一条18英寸长的电缆。LS-TTL门电路平缓的边沿和较短的电缆长度适合于在当时的系统中工作。然而,当PC系统变得更快并且更加复杂时,ATA总线的定义被扩充为要包括实现更快数据传输率的操作方式,而且,硬件设计者经常将ATA电缆的长度延长到远大于18英寸。例如,PIO(程控输入/输出)现在包括PIO方式0-4。方式0、1和2与ATA接口的初始定义相对应,而PIO方式3定义了一个11.1MB/S的最大传输率,PIO方式4定义了一个16.7MB/S的最大传输率。同样地对新的DMA方式进行定义。多字DMA方式0对应于原来的接口,而DMA方式1和2提供了更快的数据传输率。多字DMA方式2与新PIO方式4有相同的最大传输速率。
这些新的操作方式需要ATA总线有更高的性能,其结果就是要通过减少周期时间来努力提高数据传输率。减少周期时间的努力是依靠提高边沿速率来实现的。而增加的边沿速率与ATA电缆长度会在初始ATA电缆配置中带来缺点。这些缺点影响电缆上所传信号的完整性。特别关心的问题是信号间过量的振鸣和串音,及能够导致系统错误与/或数据丢失的时序/传输延迟。增加的边沿速率和过长的电缆长度带来了这些问题。所以,有效的可用数据的传输率由于ATA总线结构内在的局限而受限制。
增加的边沿速率和过量的电缆长度对ATA总线来说是有问题的,因为它是一种差的终端匹配的总线结构设计。标准18英寸ATA总线电缆一般被设计为一条带有大约110欧姆特征阻抗和60%c(c—光速)传播速度的单端传输线路。根据传输线路理论,当终端阻抗与电缆的特征阻抗不匹配时,就会产生振鸣。振鸣幅度随着阻抗不匹配的增大而增加。在ATA总线的信号和数据线上,足够的振鸣会产生误触发和过量的稳定延迟,这会导致系统错误与/或数据丢失。
由于数字信息是在传输线路上传送,振鸣的产生尤其会给PC系统中ATA总线上的数据传输带来问题。根据传输线理论的另一条,在传输线上传送的信息是作为波形输入的。由于传输线的特性阻抗和长度,传输线路的输出波形会有一定的失真。在输入波形通常为正弦波的模拟传输中,输出波形典型地出现相对易于修正的相移失真。但是,在数字传输中,输入波形通常是某种方波,由于传送的信息是1和0的形式,对边沿变换的识别非常重要。这些方波的失真会在波形中导致不能清晰识别边沿变换,显然就成为振鸣。这样,如上所述的误触发机会可能会发生,并且是数字传输的一种表征。
近来,增多的振鸣已经成为越来越普遍的问题,因为现代PC的总线结构为适应增长的处理器和驱动器速度已经发生了变化。由于处理器总线速度已从8MHz增加到33MHz,并且磁盘驱动器的速度也有所增加,必须更新ATA标准以便允许更快的数据传输率。为了减少传播延迟,一些制造商已经增加了主机的输出驱动以便在电缆的电容性负载下更快地转换输出信号。这是通过采用快速CMOS(互补金属氧化物半导体)处理替代原来在ATA总线上使用的低速TTL设备而实现的。这样做的结果就降低了输出阻抗,与TTL设备5到6纳秒的边沿速率相对,ATA总线上的边沿速率减少到了1至2纳秒或更少。这些没有足够终端匹配的快速边沿加重了总线上的振鸣,使得许多系统/驱动组合无法工作。
当一条信号线上的切换在相邻或附近的线路上产生感应信号时,就出现了串音。一个信号通过两种机制耦合到相邻线路中去耦合电容与互感。当一个切换信号的波前沿一条电缆传播时,它将能量耦合到相邻线路中去。一旦能量在第二条线中,它以两个方向传播向接收端和向发源端。耦合信号的幅度与在主线路中信号的变化率成比例。此外,耦合信号的幅度与耦合电容和互感的总量成比例,因此与电缆的长度成比例。这些串音特性使得控制新ATA总线驱动器的转换速率和电缆长度变得很重要,因为快速的边沿速率和在数据线上造成的振鸣会由串音耦合到相邻控制线路上去,而电缆长度超过18英寸会增加串音产生的可能性。
另一个与ATA总线设计上的差的终端匹配和电缆长度有关的关心的问题是传播延迟,违反电缆长度的限制会使它更加恶化。如上面所讨论的,ATA总线原来被定义为最大长度18英寸。但是,今天,系统设计者被严格要求设计一个主设备与外围驱动设备可以在18英寸之内连接的系统。而且,某些系统带有双ATA接口端口来共享两条ATA电缆。这些端口不是完全相互独立的,双端口使ATA电缆的有效长度为36英寸。这种加长的电缆长度带来了主机与外围驱动设备间来回传递控制与数据信号的传播延迟。这种传播延迟最终影响总线的数据传输率和整体性能。
还有一个与ATA总线数据传输率相关的关心的问题是数据完整性。总线所传数据的有效性是很重要的,因此就期望提供一种可靠且易行的错误检测能力。因为由数据位组成的字在ATA总线上传送,面向位的错误检测方法就比面向符号的错误检测方法更实用。然而,传统的面向位错误检测对ATA总线上发生的数据传输是不实际的,因为传统的面向位错误检测是一种位串行方法。传统的位错误检测过程使用多项式生成器来逻辑地控制输入数据位流以产生一个循环冗余代码(CRC)值G(X)=X16+X12+X5+1数据流的每一位都被位时钟以位元定时速率进行操作,顺序转移到CRC逻辑编码/解码器中。由于ATA总线上的数据传输是16位数据字的传输,每个字在一个相当于位时钟16倍的时钟周期内传送。所以,采用现有的由位时钟操作的位串行方式就需要时钟频率为位时钟或16倍字时钟的频率。位串行方式还有一个问题是,由于数据以字为单元进行传送,在ATA接口电路结构的这部分没有可用的位时钟。因此,现存的面向位错误检测过程在对ATA总线上的数据传输提供数据完整性方面是不实用的。
前面讨论的ATA总线设计上的局限把主设备和外围驱动设备间的数据传输能力限制在上述速度上。随着更快的处理器和外围设备的出现,人们期望得到主机和外围驱动设备间更快速而准确的数据传输率。这样,就存在一个目前尚未解决的需求,需要一个改进的、简单而花费不多的方法,来实现主设备和外围驱动设备间通过带有某种操作限制的总线接口进行的数据传输,这种传输以提高的数据传输率进行而不违反总线接口的操作限制。
本发明的方法可以满足这些要求。
本发明给出了一种方法,用于在一个计算机系统中实现同步DMA短脉冲串传输(burst),该计算机系统中包括一个通过总线与至少一个外围驱动设备相连的主设备,其中总线有一个相关的控制信号传输选通频率并用来根据主设备的读或写指令进行外围驱动设备与主设备间的数据传输。每条指令的数据传输通过总线上的一系列同步DMA短脉冲串来实现。
针对一条主设备读指令,外围驱动设备发出一个DMA请求信号来初始化同步DMA短脉冲串传输,当主设备准备开始同步DMA短脉冲串传输时,主设备会发出一个DMA确认信号来响应DMA请求信号。在主设备发出DMA确认信号后的某个预定时间周期内,外围驱动设备把第一个数据字放到总线上,然后,从数据字放到总线上起经过第二个预定时间周期后,外围驱动设备把选通信号从高状态触发到低状态以将第一个数据字锁存到主设备中。在本发明的方法中,外围驱动设备一直控制着同步DMA短脉冲串的初始化,而发送数据的设备既控制数据信号也控制把数据锁存到数据接收设备上的选通信号。由一个设备控制数据和选通信号两者使得与同步DMA短脉冲串传输相关的传播延迟、电缆稳定和准备时间的影响最小化并因此提高数据能够在总线上传输的速率。
通过外围驱动设备把附加字送到总线上,可以在DMA短脉冲串传输中传送一个附加字;接着,在经过第二个预定时间周期之后,外围驱动设备将选通信号从低状态触发为高状态以把附加字锁存到主设备中去。将附加字放到总线上并将选通信号从一个状态触发到另一个状态的这些步骤可以重复进行,直到外围驱动设备完成了所有要传送的数据字的发送。当外围驱动设备完成所有数据的发送时,外围驱动设备取消其DMA请求信号来终止同步DMA短脉冲串传输。如果在外围驱动设备完成发送数据之后,选通信号不在高状态,则外围驱动设备会将它返回到高状态。
另外,本方法可以包括执行面向并行位错误检测,来确保在同步DMA短脉冲串传输中传送的数据是有效的。在数据传输中,外围驱动设备和主设备两者都计算出一个16位的CRC值。在外围驱动设备已经发出一个完整的DMA短脉冲串后,主设备向外围驱动设备发出它计算出的CRC值,外围驱动设备把接收到的CRC值与它自己计算出的CRC值进行比较,来检查是否有任何错误。
当主设备指令为写指令时,同步DMA短脉冲串传输仍通过外围驱动设备发出DMA请求信号来进行初始化。当主设备准备开始短脉冲串传输时,主设备发出一个DMA确认信号并将第一个数据字放到总线上。响应于DMA确认信号,外围驱动设备在DMA确认信号发出后的预定时间周期内发出一个准备好信号。主设备在外围驱动设备发出准备好信号后的预定时间周期内将选通信号从高状态触发变为低状态。选通信号的触发将数据字锁存到外围驱动设备上。主设备将附加数据字放到总线上并触发选通信号,以将数据字锁存到外围驱动设备上,对附加数据字进行传送。在写指令同步DMA短脉冲串传输中执行面向并行位错误检测的步骤与读指令同步DMA短脉冲串传输中执行的步骤相同。
最好是在控制信号传输选通速率约为8.3MHz的ATA总线上进行同步DMA短脉冲串传输,数据传输速率可以提高到大约33.3MB/S。
本发明的方法比以前的传输协议有很多优点。具体来说,同步DMA短脉冲串传输协议提供了在主设备和外围驱动设备间显著地提高的数据传输率,并且可在现有总线系统结构中进行操作。因此本方法是一种花费不多的提高主设备和外围驱动设备间数据传输率的方法。而且,本方法提供了提高的数据传输率和改进的数据完整性,而没有增加总线上的控制信号传输选通速率,因此消除了与提高控制信号传输频率有关的系统完整性问题。本方法还有一个优点是它提供了对现有传输协议的向下兼容能力,这使得本方法在含有其它使用现有选通传输协议的外围驱动设备的系统中,可以避免进行大量的硬件修改而进行操作。
本发明的这些及其它特性、特点和优点通过下面的叙述、所附的权利要求书和附图,将会得到更好的理解

图1a显示了一个可以在其中实施本发明的PC结构的方框图;图1b显示了现有ATA电缆的部分示意电路;图2显示了已有技术数据传输协议的一个简化元件和时序图;图3显示了根据本发明一种形式的同步DMA短脉冲串传输的一个简化元件和时序图;图4a显示了一个详细的时序图,它描绘了在根据本发明的特点实现的读指令同步DMA短脉冲串传输驱动初始化中交换的数据和控制信号;图4b显示了一个详细的时序图,它描绘了在根据本发明的进一步特点实现的写指令同步DMA短脉冲串传输驱动初始化中交换的数据和控制信号;图5显示了一个详细的时序图,它描绘了在根据本发明进一步特点的持续同步DMA短脉冲串传输中交换的数据和信号;图6a显示了一个详细的时序图,它描绘了在根据本发明的进一步特点实现的读指令同步DMA短脉冲串传输驱动器端交换的数据和控制信号;图6b显示了一个详细的时序图,它描绘了在根据本发明的进一步特点实现的写指令同步DMA短脉冲串传输的驱动器端交换的数据和控制信号;图7a显示了一个详细的时序图,它描绘了在根据本发明的进一步特点实现的读指令同步DMA短脉冲串传输主机端交换的数据和控制信号;图7b显示了一个详细的时序图,它描绘了在根据本发明的进一步特点实现的写指令同步DMA短脉冲串传输的主机端交换的数据和控制信号;图8a显示一个依据本发明的实施方案实现错误检测的简化逻辑电路;图8b显示了图8a所示逻辑电路更详细的示意图;及图9显示了描绘本发明一种形式的简化流程图。
图1显示了一个传统PC结构,其中可以应用体现本发明特征的方法。PC系统10典型地包含一个CPU12,通过处理器总线18与RAM14和ROM16相连。总线接口20把处理器总线18连接到可以包括多个板卡插槽24的ISA总线22上。另外一个局部总线接口26将处理器总线18连接到也可以包括多个局部总线板卡插槽30的局部总线28上。一个外围驱动设备32通过ATA总线34和ATA接口36与局部总线28相连。
图1b显示了传统ATA总线34电缆的一个信号路径的部分示意电路图。ATA总线34的线路33有一个源或输入阻抗Zin,一个是输入阻抗Zin的函数的目的终端或输出阻抗Zout,ATA总线路33的特性阻抗Zchar,及ATA总线中33的距离d。如上面背景部分所讨论的,ATA总线34是没有设计终端匹配的。因此在ATA总线34定义中,每条信号线的这些阻抗值为Zin<Zchar,而Zchar<Zout,这导致了振鸣问题。
为简单起见,下面的讨论描述一个通过ATA总线连接到主机上的磁盘驱动器。然而,那些精通技术的人员可以认识到,本发明能够应用在ATA总线上带有其它外围设备的系统之中。此外,主设备一词通常是指ATA总线的主机端,熟悉技术的人可以认识到,它包括例如CPU12和ATA桥/接口36。本发明还能在还能在ATA总线上连有多个驱动设备(图中未表示)的系统中实现。
参照图2,已有技术的DMA传输协议是一个选通的、异步传输协议,其中ATA主机35一直负责管理事件何时发生。图2表现了主机35方面的选通信号和磁盘驱动器32方面的数据。当ATA主机35要从附属磁盘驱动器32读取数据时,它在t0时刻向磁盘驱动器32发出一个选通脉冲。磁盘驱动器32在看到选通脉冲的下降沿之后,才知道它何时必须传输数据。在接收选通信号之前,磁盘驱动器32只是等待“最后一分钟”的通知,通知它需要准备好数据向主机35传送。选通脉冲从主机35传到磁盘驱动器32需要花费时间,所以磁盘驱动器32接收请求的时刻晚于主机35要求数据的时刻。磁盘驱动器32最后在某个晚一些的时刻t1看到选通脉冲,然后,在某个处理延迟之后,磁盘驱动器32在时刻t2将数据输出到总线上,准备送回主机35。另一个传送延迟与送回至主机35的数据相关,所以数据直至某个晚些的时刻t3才到达主机35。另一个处理延迟与接收数据相关,所以主机最后在时刻t4锁存数据。主机必须在选通间隔中锁存数据,由于存在某个能够达到的最大速度,选通间隔必须足够长以确保数据对主机是可用的。因此,在已有技术异步传输协议中,选通间隔必须考虑与主机35到磁盘驱动器32的传送时间和磁盘驱动器32到主机35的传送时间两者有关的传送延迟,以及与主机35和磁盘驱动器32两者有关的处理延迟。考虑这些延迟的必要性,就将数据传输率限制于目前得到的DMA方式2和PIO方式4的数据传输率。
本发明通过消除磁盘驱动器32等待它应作数据传输的“最后一分钟”通知的情况,克服了已有技术传输协议中强加的数据传输限制。取而代之的是,在本发明中,发送数据的设备(不管是主机35还是驱动器32)负责管理控制选通信号。图3从磁盘驱动器32方面表现了本发明一种形式的简化时序图,其中磁盘驱动器32负责管理对一个读DMA短脉冲串传输的数据传输选通信号。一旦主机35给出一条要读取数据指令并执行初始化DMA短脉冲串传输的初步信号交换时,磁盘驱动器32即负责管理并决定数据被传送的时间。如图3所示,当磁盘驱动器32准备好发送数据时,它在时刻t0将数据放到总线上,磁盘驱动器32将等待,直至它知道数据已经被安置在电缆上,磁盘驱动器32将在时刻t1触发选通信号。选通信号的触发向主机35显示数据是可用的,当t1时刻生成的选通脉冲到达主机时,数据被锁存到主机35中。
磁盘驱动器32放数据到总线上的时刻和它触发选通信号的时刻之间的延迟是必须的,因为当数据被放到ATA总线上时,会由于总线差的终端匹配而有一个相关的振鸣,所以必须让数据信号在被锁存到主机35中之前稳定下来。但是,从磁盘驱动器32到主机35的飞行或传播时间实质上对数据信号和选通信号两者来说都是一样的,而转换速率(一个信号从“1”到“0”或从“0”到“ 1”变化的时间)实质上对数据信号和选通信号两者来说也都是一样的。根据本发明,只需要考虑数据信号的稳定时间,因为数据和选通信号是由一个设备发送的,而这些信号的转换速率和传播延迟是相似的。如果在电缆主机端的加载操作改变数据信号的转换速率,则选通信号的转换速率将会有相似数量的变化,信号的相对时序也类似。这就对已有技术传输协议(其中主机35负责选通信号,而磁盘驱动器32负责数据信号)提供了有效的时间改进。在已有技术状态下,在向磁盘驱动器32发选通脉冲时失去了时间,在向主机35发数据时失去了时间,而且失去的时间再也无法恢复。
根据本发明的各方面,由于双方向的传播延迟和转换速率不必考虑,能够设定的选通间隔非常短。为了保证数据传输,本发明的同步DMA传输只要求在选通信号能够到达主机35之前稳定数据所需的等待时间。这样,本发明的同步DMA短脉冲串传输方法提供了一个可提高达33.3MB/S的数据传输率,它是目前已有的最快PIO方式和多字DMA方式的两倍。
现在将参照图4a和4b详细讨论根据本发明的一个实施方案的同步DMA传输的初始化。参照图4a,在主机35发出请求数据的读指令及磁盘驱动器32准备好开始数据传输后的某一时刻,磁盘驱动器32将通过向主机35发出DMA请求信号DMARQ(表示为事件1)来初始化一个同步DMA短脉冲串传输。响应于DMARQ的发出,当主机35可以接收请求的数据时,主机35发出一个DMA确认信号-DMACK来显示它准备好了(表示为事件2),并且必须保持-DMACK,直至短脉冲串传输的结尾。磁盘驱动器32能够在从发出-DMACK起的最短时间延迟Tza后驱动或将数据放到ATA总线34上以允许打开输出驱动器。通常打开输出驱动器所需的最短时间Tza约为20纳秒。在磁盘驱动器32能够触发将数据锁存到主机35上的选通信号之前,磁盘驱动器也必须等候主机35在发出-DMACK后取消一个停止信号STOP并发出一个准备信号-DMARDY。STOP的取消和-DMARDY的发出(表示为事件3)在一个从发出-DMACK起所有控制信号转换的标准时间框中进行。这个时间框最好在大概20到70纳秒范围之间。
在主机35取消STOP并发出-DMARDY后,磁盘驱动器32能够发出第一个选通信号并且必须在看到STOP和-DMARDY信号后的限定时间周期Tli中进行,此限定时间周期Tli最好在约0至150纳秒范围内。另外,磁盘驱动器32必须在它能够发送第一个选通信号之前等候一个最小预定设置时间周期Tdvs,此Tdvs从磁盘驱动器32把数据放到ATA总线34上算起。这个时间周期是数据在ATA总线34上成为有效时所用的时间。最小设置时间Tdvs最好是在约38到75纳秒的时间范围之内,这决定于所选速度。
磁盘驱动器32通过将选通信号从高状态触发变为低状态(表示为事件4)来向主机35发出第一选通信号。从高状态向低状态触发选通信号定义了选通信号的第一边沿,它被主机35作为有效数据在ATA总线34上可用的标志而识别出来。当主机35看到边沿时,它把ATA总线34上的数据取走。这样,选通信号的触发就被用于在读短脉冲串传输中将数据锁存到主机35中。
现在参照图4b,根据本发明的原理叙述写指令同步DMA短脉冲串传输的初始化。象读指令的情况一样,当磁盘驱动器32准备好开始同步DMA短脉冲串传输时,发出DMARQ,初始化同步DMA短脉冲串传输(事件1)。响应DMARQ的发出,当主机35准备写数据时,主机35发出-DMACK来表示它准备好了(表示为事件2)并在-DMACK的标准时间框内取消STOP(表示为事件3)。另外,主机35把数据送到ATA总线34上。然后,主机35等待磁盘驱动器32发出-DMARDY,这表示磁盘驱动器32已准备好从主机35接收数据。磁盘驱动器32必须在看到发出-DMACK和取消STOP后限制的时间周期Tli之内发出-DMARDY(表示为事件4)。由于现在主机35在发送数据,它也负责管理选通信号,但在主机35能够触发选通信号之前,它必须等侯磁盘驱动器32如上所述发出-DMARDY。
一旦磁盘32发出-DMARDY,主机35可以在看到-DMARDY之后的任何时刻触发第一选通信号(表示为事件5)。然而,主机35在能够发出第一选通信号之前,必须等待最短预定设置时间周期Tdvs,以使数据成为有效,Tdvs从主机35将数据字放到ATA总线34上时开始计算。与读取的情况相似,当磁盘驱动器32看到选通信号的第一边沿时,它知道要把有效数据从ATA总线34上取走。这样,选通信号的触发就被用于在写短脉冲串传输中将数据锁存在磁盘驱动器32中。
当同步DMA短脉冲串传输被初始化及第一数据字在读指令情况下被锁存到主机35上或在写指令情况下被锁存到磁盘驱动器32上之后,附加数据字能够在同步DMA短脉冲串传输中被传送。图5显示了在持续传输多个数据字的同步DMA短脉冲串传输中控制和数据信号的时序图。该图概括地描述传输发送端和接收端,而不是传输主机和磁盘驱动器看到的数据总线,它既可用于读短脉冲串传输,也可用于写短脉冲串传输。如上所述,在某一早些时刻t1(未显示)被送到ATA总线34上的第一数据字通过将选通信号从高状态触发为低状态而被锁存到接收端中(事件1)。在稍后的第二个时刻t2,下一个数据字被送到ATA总线34上。通过将选通信号从低状态触发到高状态,这个数据字被锁存到接收端(事件2)。选通信号从低状态到高状态的触发定义了选通信号的第二边沿。后面的附加字可以被发送端送到ATA总线34上,并通过选通信号在高状态和低状态之间的来回触发而被锁存到接收端。从接收端的观点来看,不论何时只要看到选通信号的边沿,接收端就会知道从ATA总线34上取走数据。这样,选通信号的两个边沿都被用来在同步DMA短脉冲串传输中传送数据。
如图5所示及前面所述,在同步DMA短脉冲串传输中,发送端向ATA总线34送数据,并且,在考虑电缆稳定和设置时间的最短预定设置时间周期Tdvs之后,发送端将触发选通信号。以上述方式使用选通信号的两个边沿启用选通信号的频率以与数据频率相匹配。在ATA总线上,电缆上的最高基本控制信号频率应该不大于约8.33MHz,以便维持信号的完整性。
进而,在发送端和接收端所表现的数据不一样,来强调电缆的稳定时间使得数据在发送端被发出一段时间以后才可以被认为在接收端是稳定的。数据在发送端成为有效所需的最短预定设置时间Tdvs和在发送端触发选通信号后数据可以成为有效的最短时间Tdvh构成了一个比对接收端保证的数据设置时间Tds和数据保持时间Tdh更宽的窗口。
现在参考图6a、6b、7a和7b讨论同步DMA短脉冲串传输的终止。在选通信号第一次被触发后,发送端和接收端两者都能够采取行动来终止短脉冲串传输。在同步DMA短脉冲串传输终止之前,首先必须满足某些条件。当接收端希望终止短脉冲串传输时,它必须先保证挂起的传输被完全暂停。同样地,当发送端希望终止短脉冲串传输时,在它发出停止信号或取消DMARQ来终止挂起的传输之前,它必须在触发选通信号后等待一个最短时间周期Tss。最短时间周期Tss最好约为50纳秒。
图6a显示了当磁盘驱动器32在读指令过程中终止同步DMA短脉冲串传输时交换的控制和数据信号。磁盘驱动器32通过取消DMARQ信号表示其终止短脉冲串传输的愿望(事件1),及主机35在限定时间周期Tli内发出STOP并取消-DMARDY(事件2)以确认其取消。一旦磁盘驱动器32看到主机35发出STOP,如果选通信号还没有处于高状态的话,则磁盘驱动器32就必须将其返回到高状态(事件3)。必须在看到STOP信号之后的限定时间周期Tli之内使选通信号返回高状态。主机35看到DMARQ被取消、STOP被发出、-DMARDY被取消且选通信号为高状态之后,主机35能够取消-DMACK(事件4),并且必须在所列条件满足后的一个最短限定预定时间周期Tmil内执行。最短限定预定时间周期Tmil最好在大约20到150纳秒的范围内。另外,磁盘驱动器32在从主机35取消-DMACK起计算的一个上拉(pull-up)时间Tirdyz后使选通信号变为三态,以使控制信号达到高阻抗。通常上拉时间Tirdyz约为20纳秒。
对于同步DMA短脉冲串传输的终止,选通信号需要返回高状态以便选通信号可以准备进行下一个同步DMA短脉冲串传输。这种“选通清除”是必需的,因为在任何同步DMA短脉冲串传输中的第一选通信号必须被从高状态向低状态触发以把第一数据字锁存到接收端中。选通清除也是有优越性的,因为它允许本同步DMA短脉冲串传输方法与现有的也在初始高状态下使用选通信号的主机-外设数据传输协议向下兼容。
图6b表示在写指令过程中当磁盘驱动器32终止同步DMA短脉冲串传输时,交换的控制和数据信号。如同磁盘驱动器32终止一个读短脉冲串传输的情况一样,磁盘驱动器32通过取消DMARQ信号来表示它终止短脉冲串传输的愿望(事件1)。主机35在限定时间周期Tli内发出STOP(事件2)并在限定时间周期Tli内将选通信号返回高状态(事件3)来确认DMARQ的取消。一旦发生了上述事件,主机35就可以在最短限定预定时间Tmli内取消-DMACK(事件4)。最后,磁盘驱动器32在从-DMACK被主机35取消后起的上拉时间Tirdyz之后将-DMARDY变为三态(事件5)。
图7a表示在读指令过程中,当主机35终止同步DMA短脉冲串传输时控制和数据信号的交换。这里主机35通过发出STOP信号表示其终止短脉冲串传输的希望(事件1),磁盘驱动器32通过在看到STOP后的限定预定时间周期Tli内取消DMARQ(事件2)并将选通信号返回高状态(事件3)来确认该请求。随后,如同磁盘驱动器32终止同步DMA短脉冲串传输的情况一样,主机35在上述事件发生后的最短限定预定时间周期Tmli内取消-DMACK(事件4)。最后,磁盘驱动器32在上拉时间Tirdyz后将选通信号置为三态。
图7b表示在写指令过程中,当主机35终止同步DMA短脉冲串传输时交换的控制和数据信号。如同主机终止读短脉冲串传输的情况一样,主机35通过发出STOP信号表示其终止短脉冲串传输的愿望(事件1)。磁盘驱动器32通过在看到STOP后的限定预定时间周期Tli内取消DMARQ和取消-DMARDY(事件2)来确认该请求。主机35必须在看到DMARQ取消后的限定预定时间周期Tli内将选通信号返回到高状态(事件3)。一旦选通信号被返回到高状态,主机35也必须在选通信号返回高状态后的最短限定预定时间周期Tmli内取消-DMACK(事件4)。接着,磁盘驱动器32在一个上拉时间Tirdyz后将-DMARDY变为三态。
本发明的方法还包括执行对ATA总线34上所传的数据完整性的错误检测的步骤。在最佳实施方案中,由于同步DMA短脉冲串传输在ATA总线34上传送数据,采用了一个位错误检测代码,并且面向位的错误检测方法比面向符号的错误检测方法更实用。然而,如上面背景部分所讨论的,传统的面向位错误检测方法因为是一种位串行方法,所以是不实用的。
在图8a和图8b中显示了一种新颖的使用并行CRC逻辑编码/解码器40的16位并行CRC方法。并行CRC逻辑编码/解码器40使用与传统位串行方法相同的多项式生成器,但使用一个字时钟44来代替位时钟。当每个数据字通过ATA总线34传送时,一个16位CRC值由主机35和磁盘驱动器32两者循环地计算出来。在数据传输结束时,主设备35将它生成的16位CRC值通过ATA总线34送到磁盘驱动器32,而磁盘驱动器32将接收到的16位CRC值与其计算出的16位CRC值进行异或计算来检查错误。如果检测到一个错误,则磁盘驱动器32设置错误寄存器的一个错误位以在指令末端向主机35报告错误。
在本发明的一种最佳形式中,CRC值以下面的方式进行计算。图8a显示了本发明一种形式中执行错误检测的CRC逻辑编码/解码器40的简化逻辑电路。主机35和磁盘驱动器32两者都包括CRC逻辑编码/解码器40的电路。在每个同步DMA短脉冲串传输的开头,CRC逻辑编码/解码器40被置为一个预定值。该值最好为516dh。一组16位数据字流进入CRC逻辑编码/解码器40,CRC逻辑编码/解码器40对输入的数据位进行逻辑操作。如果“d”代表进入CRC逻辑编码/解码器40的数据字流,则整个数据位流表示如下d150,d140,d130,…d10,d00第一个字d151,d141,d131,…d11,d01第二个字d15i,d14i,d13i,…d1i,d0i第i个字其中d15是数据字的最高有效位,d0是数据字的最低有效位。被传送的第i个数据字的16个数据位d0i-d15i42用一个来自字时钟44的时钟信号WCLK被移入CRC逻辑编码/解码器40中,进行CRC计算,并将计算出的16位CRC值作为X0(q)-X15(q)46输出。
参照图8b,它显示了一个更详细的CRC逻辑编码/解码器40的示意图。CRC逻辑编码/解码器40包括16个1位寄存器X0-X1548a-48p,用作被计算的16位CRC值的位置标志符,还包括16个相应的组合逻辑元件Y0-Y15 50a-50p,在数据位上进行逻辑操作。如图8b所示,组合逻辑元件Y0-Y15 50a-50p包括从其相应寄存器X0-X15 48a-48p来的输入。组合逻辑元件Y0-Y15 50a-50p包括从CRC逻辑编码/解码器40各个元件来的附加输入。然而,为了简单明了,这些与其它元件的操作连接没有在图中显示。组合逻辑元件50a-50p的输出被反馈到寄存器X0-X15 48a-48p作为其输入。把CRC逻辑编码/解码器寄存器的输入表示为(d),并把寄存器的输出表示为(q),CRC值可以用下面的等式循环地计算X0(d)=f16; X8(d)=f8 xor f13;X1(d)=f15; X9(d)=f7 xor f12;X2(d)=f14; X10(d)=f6 xor f11;X3(d)=f13; X11(d)=f5 xor f10;X4(d)=f12; X12(d)=f4 xor f9 xor f16;X5(d)=f11 xor f16; X13(d)=f3 xor f8 xor f15;X6(d)=f10 xor f15; X14(d)=f2 xor f7 xor f14;X7(d)=f9 xor f14; X15(d)=f1 xor f6 xor f13;其中f1=doixor X15(q);f9=d8ixor X7(q) xor f5;f2=d1ixor X14(q);f10=d9ixor X6(q) xor f6;f3=d2ixor X13(q);f11=d10ixor X5(q) xor f7;f4=d3ixor X12(q);f12=d11ixor X4(q) xor f1 xorf8;f5=d4ixor X11(q)xor f1; f13=d12ixor X3(q)xor f2 xorf9;f6=d5ixor X10(q)xor f2; f14=d13ixor X2(q)xor f3 xorf10;f7=d6ixor X9(q)xor f3; f15=d14ixor X1(q)xor f4 xorf11;f8=d7ixor X8(q)xorf4;f16=d15ixor X0(q)xor f5 xorf12。
在写指令的同步DMA短脉冲串传输中,当主机35发出每个数据字时,它也以上述方式计算其16位CRC值。同样地,当磁盘驱动器32接收到每个数据字时,它计算其16位CRC值。当主机在同步DMA短脉冲串传输的末端结束数据字传输时,主机35通过ATA总线34发送它计算的CRC值。接收到主机的CRC值后,磁盘驱动器32对所接收的CRC值和它自己计算的CRC值进行异或运算,并检查是否结果为0。如果得到结果为0,则不报错。但如果有非0结果出现,表示有错,则在盘驱动器32的错误寄存器中设置一个错误位以向主机报错。
在读指令的同步短脉冲串传输中进行类似过程。当磁盘驱动器32通过ATA总线向主机35发送每个数据字时,磁盘驱动器32计算其CRC值。同样,当主机35接收每个数据字时,它也计算其CRC值。然而,在同步DMA短脉冲串传输的末端,当磁盘驱动器32完成传输数据字时,它并不向主机35发送所计算的CRC值。取而代之的是,象在写指令时的情况一样,主机35通过ATA总线34把计算出的CRC值发到磁盘驱动器32上,后者进行如上所述的异或和0校验。
在同步DMA短脉冲串传输中执行的并行CRC校验对现有ATA系统外围驱动设备的驱动软件最好是透明的。当用并行CRC方法检出一个同步DMA短脉冲串传输位错误时,当前ATA错误寄存器的数据位2和7被设置。位7当前是ATA错误寄存器的一个保留数据位,并且被重定义为在本同步DMA短脉冲串传输协议下的接口错误位。位2是一个异常终止指令位,将它设置可以使当前ATA驱动软件检测这个“新”错误并对其作出响应。因此,在本发明的同步DMA短脉冲串传输协议中进行的并行CRC校验与现有的驱动软件向下兼容。
熟悉技术的人员可以认识到,其它错误检测方法也可以用一个16位寄存器以相似的方式在此应用。例如,如果希望检测面向符号的短脉冲串传输错误,可以用已知的方法计算出一个16位符号Reed-Solomon ECC(纠错码)。另一种检验数据完整性的方法是,在每个同步DMA短脉冲串传输结束时实行一个奇偶校验。
图9表示执行同步DMA短脉冲串传输的一个简化流程图,现在参照图9讨论本发明同步DMA短脉冲串传输方法的一个实施方案的操作。流程图9中所示的每个步骤都是按照本方法各个步骤的详细时序限制进行的。磁盘驱动器接收并对一条主机读或写指令901解码,并由此初始化一个同步DMA短脉冲串传输。当准备好开始短脉冲串传输时,磁盘驱动器始终通过发出DMARQ 902以初始化同步DMA短脉冲串传输。主机在短脉冲串传输能够进行之前必须准备好执行同步DMA短脉冲串传输,所以要进行判断,判断主机是否处于准备状态903。如果主机还未准备好,则不开始短脉冲串传输,磁盘驱动器必须继续检查主机是否准备好。如果如-DMACK的发出所示,主机准备好了,则本方法根据解码出来的是主机读指令还是写指令沿A或B两条路径进行。对一条写指令,主机取消STOP 905来表示传输可以进行。响应主机对STOP的取消,磁盘驱动器发出-DMARDY 907来向主机表示它已准备接收数据。主机看到-DMARDY后,它将一个数据字放到总线上,并计算出一个16位CRC值909。接着主机在把数据字放到总线上并看到磁盘驱动器准备好后,触发选通信号911。数据通过选通信号触发被锁存以后,磁盘驱动器计算其16位CRC值913,然后确定短脉冲串传输是否应终止915,如还有更多数据需要传输,则该方法循环回至下列步骤主机放数据并计算CRC值909,主机将选通信号触发911,盘驱动器计算其CRC值913;然后确定短脉冲串传输是否应终止915。这个循环重复进行,直至它确定短脉冲串传输终止了。终止以上述参照图6a、6b、7a和7b的方式进行。一旦测到终止,主机以上述方式把它计算的CRC值916传送到磁盘驱动器上,磁盘驱动器比较接收到的CRC值和它计算的CRC值917。CRC比较的完成表示同步DMA短脉冲串传输的终止918。
回到判断框,当判断主机已准备好903继续进行同步DMA短脉冲串传输,如果主机指令是读指令,则沿路径B进行。主机取消STOP 904来表示将进行传输,并发出-DMARDY 906来表示它已准备接收数据。磁盘驱动器看到来自主机的STOP和-DMARDY后,把数据字放到总线上,并计算一个16位CRC值。然后,磁盘驱动器触发选通信号910。选通信号的触发将数据字锁存到主机中之后,主机计算它的16位CRC值。主机计算出16位CRC值之后,本方法以与写指令类似的方式进行,其中判断短脉冲串传输是否应结束914,磁盘驱动器继续发送数据,计算CRC值908,并触发选通信号910,主机计算其CRC值,直到检测出传输终止为止。一旦终止被测出,即执行与所述写指令终止相同的步骤。即,主机将其计算的CRC值送到磁盘驱动器916,磁盘驱动器执行CRC比较917,CRC比较的完成表示同步DMA短脉冲串传输的结束918。
上面已经参照用于传送一个或多个数据字的单一同步DMA短脉冲串传输叙述了本发明的这种形式。但是,由于一条主机读或写指令可以要求执行一系列同步DMA短脉冲串传输,熟悉技术的人员可以认识到,上述执行同步DMA短脉冲串传输的方法可以重复进行,直到完成主机读或写指令。如上所述,磁盘驱动器32必须对第二/附加同步DMA短脉冲串传输进行初始化,主机35必须表示它已准备好开始短脉冲串传输,等等。
上述本发明的方法易于应用到现有的带有ATA接口的系统中,无需附加的信号线或对ATA总线进行电路改变。利用目前的信号线并重新定义一些ATA信号线以提供新的功能同步DMA短脉冲串传输能够在现有系统中实现。具体来说,在已有技术传输协议中用于PIO流控制的IORDY信号和用于读指令的-DIOR被重新定义。对写短脉冲串传输,在同步DMA协议中,-DIOR用作STROBE(选通)信号及IORDY用作-DMARDY信号。对读短脉冲串传输,在同步DMA协议中,-DIOR用作-DMARDY信号,IORDY用作STROBE信号。最后,已有技术传输协议的-DIOW信号在本方法中被重定义为STOP信号。另外,DMARQ和-DMACK信号保持不变以保证与现有传输协议向下兼容。
而且,为确保本发明同步DMA短脉冲串传输协议的实施,现有ATA总线配置适当的终端匹配需要很少的硬件元件。通常ATA总线的磁盘驱动器端应当以大约47到100欧姆的串联电阻来匹配终端。最好是使用82欧姆左右的串联电阻。此外,在这些线路上,可以在接地端加上小于约10pF的电容。对任何双向线路和数据驱动线路来说,通常包括大约22到47欧姆之间的串联电阻。类似地,在ATA电缆的主机端包括一个范围在约47到100欧姆之间的串联电阻,主机所驱动的线路通常以一个介于约22到47欧姆之间的串联电阻匹配终端。对电缆的磁盘驱动器端和主机端两者来说,电阻最好置于尽可能接近ATA连接器的位置。另外,终端最好选择使通过终端电路所接收的电容量小于大约25pF,且使信号线上升和下降时间约为5纳秒或更长。这些数值与目前对今天的ATA系统推荐的数值是一致的。
此外,所述16位并行CRC错误检测逻辑所需的硬件也易于用传统的电路来实现。用于在计算时保持CRC值的16个1位寄存器最好用16个传统的并联操作触发器来实现。而且,CRC逻辑编码/解码器40的组合逻辑元件或模块能够用如上所述执行异或操作的传统的逻辑门电路来构成。
本发明的同步DMA短脉冲串传输方法较已有技术的传输方法提供了几个优点。本方法提供了一种花费不多的方法来解决ATA目前总线34固有的不合适的电缆结构和不合理的终端匹配,从而获得一个提高的数据传输率,约为33.3MB/S。本方法能够用小数目的附加门电路在现有的ATA总线34结构中实现。另外,同步DMA短脉冲串传输方法利用现有的ATA总线34信号线并重定义现有的信号线来实现,使得本方法与现有的传输协议向下兼容。本方法进一步的优点是,同步DMA短脉冲串传输协议提供了一个提高的数据传输率,而没有增加ATA总线34的控制信号传输选通速率,以便保持信号的完整性。本发明还有一个优点是,它包括一个对并行位检测的过程,该过程对现有ATA系统的驱动软件是透明的,所以本发明对现有的驱动软件向下兼容,但却有更高的数据完整性。
参考某个最佳实施方案相当详细地叙述了本发明之后,可以认为其它实施方案也是可能的。熟悉技术的人可以理解到,他们可以对本发明的构造、电路和应用进行多种变化而不离开本发明的实质和范围。因此,所附权利要求书中的实质和范围不应受所含的最佳实施方案描述的限制。
权利要求
1.在一个包括一个通过总线与至少一个外围驱动设备相连的主机的计算机系统中,总线用于响应主设备的读和写指令通过一系列同步DMA短脉冲串传输在外围驱动设备和主设备之间传送数据,总线具有相关控制信号传输选通频率,一种用于对读指令进行同步DMA短脉冲串传输的方法包括以下步骤(a)外围驱动设备发出一个DMA请求信号来初始化同步DMA短脉冲串传输;(b)当主设备准备开始同步DMA短脉冲串传输时,主设备响应DMA请求信号而发出一个DMA确认信号;(c)在DMA确认信号被主设备发出后的第一预定时间周期,外围驱动设备把第一数据字放到总线上;及(d)外围驱动设备在将第一数据字放到总线上后的第二预定时间周期,将选通信号从高状态触发变为低状态,把第一数据字锁存到主设备中去,选通信号从高状态向低状态的触发定义了选通信号的第一边沿。这样外围驱动设备控制着同步DMA短脉冲串传输的初始化,以及这样,外围驱动设备既控制数据又控制选通信号,使与DMA短脉冲串传输有关的传播延迟、电缆稳定和设置时间的影响最小化,并且增加了总线的数据传输率。
2.权利要求1的方法还包括下面步骤(e)外围驱动设备将一个附加数据字放到总线上;以及(f)外围驱动设备在经过第二预定时间周期之后,将选通信号从低状态触发为高状态以把附加数据字锁存到主设备中,选通信号从低状态向高状态的触发定义了选通信号的第二边沿,这样用选通信号的第一和第二边沿锁存数据,使得在提高数据传输率的时候保持总线的控制信号传输选通频率不变。
3.权利要求1的方法还包括下面步骤(e)外围驱动设备发出一个停止信号来终止同步DMA短脉冲串传输; 以及(f)外围驱动设备在完成传送数据时,将选通信号返回高状态。
4.权利要求3的方法,其中该方法与现有的选通传输协议向下兼容。
5.权利要求1的方法,其中同步DMA短脉冲串传输在一条具有约8.3MHz控制信号传输选通频率的ATA总线上进行,总线的数据传输率提高到约33.3MB/S。
6.权利要求1的方法还包括并行位错误检测,包含以下步骤(c)(1)外围驱动设备对放到总线上的数据字计算一个16位CRC值;在数据字被锁存到主设备中之后(e)主设备对从总线接收的数据字计算一个16位CRC值;在外围驱动设备完成传送数据之后(f)主设备向外围驱动设备发送它计算出的16位CRC值;以及(g)外围驱动设备对接收到的16位CRC值和它计算的16位CRC值进行比较,这样就验证了总线上所传数据的有效性。
7.权利要求6的方法,其中并行位错误检测对现有的ATA驱动软件是透明的,在改进数据完整性的同时提供与现有ATA驱动软件的向下兼容性。
8.权利要求6的方法,其中外围驱动设备和主设备计算16位CRC值的步骤以数据字时钟频率进行。
9.在一个包括一个通过总线与至少一个外围驱动设备相连的主机的计算机系统中,总线用于响应主设备的读和写指令通过一系列同步DMA短脉冲串传输在主设备和外围驱动设备之间传送数据,总线具有相关控制信号传输选通频率,主设备和外围驱动设备根据指令类型分别指定为发送端或接收端,一种进行同步DMA短脉冲串传输的方法包括以下步骤(a)外围驱动设备发出一个DMA请求信号来初始化同步DMA短脉冲串传输;(b)主设备响应DMA请求信号发出一个DMA确认信号来表示主设备准备开始同步DMA短脉冲串传输;(c)发送端将第一数据字放到总线上;(d)发送端对放在总线上的第一数据字计算16位CRC值;(e)接收端响应DMA确认信号,发出一个准备好信号来说明接收端准备接收数据;(f)发送端在接收端发出准备好信号后的第一预定时间周期之内将选通信号从高状态触发变为低状态,并且在从第一数据字放到总线上起经过第二预定时间周期之后将选通信号触发来锁存第一数据字到接收端中,选通信号从高状态触发到低状态定义选通信号的第一边沿,选通信号从低状态触发到高状态定义选通信号的第二边沿及(g)接收端对从总线上收到的第一数据字计算16位CRC值,这样位错误能够用计算出的16位CRC值检测出来以提供数据完整性,以及这样外围驱动设备控制同步DMA短脉冲串传输的初始化,以及这样选通信号的第一和第二边沿两者都可以用来锁存数据字到接收端,以及这样,发送端既控制数据又控制选通信号,使与DMA短脉冲串传输有关的传播延迟、电缆稳定和设置时间的影响最小化,从而在总线上实现了提高的数据传输率。
10.权利要求9的方法还包括下面步骤(h)发送端把第二数据字放到总线上,并对第二数据字计算16位CRC值;(i)发送端在第二数据字被放到总线上后经过第二预定时间周期之后,将选通信号从低状态触发变为高状态,把第二数据字锁存到接收端中去;(j)接收端对从总线上接收的第二数据字计算16位CRC值;(k)发送端重复将数据字放到总线上,对数据字计算16位CRC值并在数据字被放到总线上后的第二预定时间周期后触发选通信号的步骤,直到发送端结束发送数据;(l)接收端对每个从总线接收的数据字计算16位CRC值;(m)发送端发出一个停止DMA信号来表示发送端已经完成发送数据并终止同步DMA短脉冲串传输;(n)发送端在完成发送数据后将选通信号返回到高状态;(o)主设备在选通信号被返回高状态后向外围驱动设备发出它计算的16位CRC值;以及(p)外围驱动设备对接收的16位CRC值和它计算的16位CRC值进行比较。这样就验证了总线上所传数据的有效性,以及这使得该方法与现有的选通传输协议向下兼容。
11.权利要求9的方法,其中数据是在一条具有约为8.3MHz的控制信号传输选通频率的ATA总线上传输的,其中使用选通信号的第一和第二边沿两者来锁存数据到接收端上,这提高了数据传输率而无需增加ATA总线的控制信号传输选通频率,从而使ATA总线上的信号失真最小化。
12.权利要求9的方法,其中数据传输率约为33.3MB/S。
13.权利要求9的方法还包括并行位错误检测,包含如下步骤发送端完成发送数据之后(h)主设备向外围驱动设备发送它计算的16位CRC值;以及(g)外围驱动设备对接收的16位CRC值和它计算的16位CRC值进行比较,这样就验证了总线上所传数据的有效性。
14.权利要求13的方法,其中并行位错误检测对现有的ATA驱动软件是透明的,从而在改进数据完整性时提供与现有ATA驱动软件的向下兼容性。
15.权利要求9的方法,其中外围驱动设备和主设备计算16位CRC值的步骤以一个数据字时钟速率进行。
16.在一个包括一个通过总线与至少一个外围驱动设备相连的主机的计算机系统中,总线用于响应主设备的读和写指令通过一系列同步DMA短脉冲串传输在外围驱动设备和主设备之间传送数据,总线具有相关控制信号传输选通频率,一种对写指令进行同步DMA短脉冲串传输的方法包括以下步骤(a)外围驱动设备发出一个DMA请求信号来初始化同步DMA短脉冲串传输;(b)当主设备准备开始同步DMA短脉冲串传输时,主设备响应DMA请求信号发出一个DMA确认信号并把第一数据字放到总线上;(c)在DMA确认信号被主设备发出后的一个预定时间周期之内,外围驱动设备发出准备好信号;及(d)主设备在外围驱动设备发出准备好信号后的预定时间周期之内将选通信号从高状态触发变为低状态以把第一数据字锁存到外围驱动设备中去,选通信号从高状态向低状态的触发定义了选通信号的第一边沿,而选通信号从低状态向高状态的触发定义了选通信号的第二边沿这样,外围驱动设备始终控制着同步DMA短脉冲串传输的初始化。这样,主设备既控制数据又控制选通信号,使与DMA短脉冲串传输有关的传播延迟、电缆稳定和设置时间的影响最小化,以及这样,选通信号的第一和第二边沿两者都用于锁存数据字到外围驱动设备上,从面提高了总线上的数据传输率而没有增加总线的控制信号传输选通频率。
17.权利要求16的方法还包括下面步骤(e)主设备将一个附加数据字放到总线上;以及(f)主设备在附加数据字放到总线上后的第二预定时间周期之后,将选通信号从低状态触发为高状态以把附加数据字锁存到外围驱动设备中,这样附加数据字通过总线传输并用选通信号的第一和第二边沿两者锁存到外围驱动设备中。
18.权利要求16的方法还包括下面步骤(e)主设备在完成传送数据时,将选通信号返回高状态。
19.权利要求18的方法,其中该方法与现有的选通传输协议向下兼容。
20.权利要求16的方法,其中同步DMA短脉冲串传输在一条具有约8.3MHz控制信号传输选通频率的ATA总线上进行,总线的数据传输率提高到约33.3MB/S。
21.权利要求16的方法还包括并行位错误检测,包含以下步骤(b)(1)主设备对放到总线上的数据字计算一个16位CRC值;在数据字被锁存到外围驱动设备中之后(e)外围驱动设备对从总线接收的数据字计算一个16位CRC值;在主设备完成传送数据之后(f)主设备向外围驱动设备发送它计算出的16位CRC值;以及(g)外围驱动设备将接收到的16位CRC值和它计算的16位CRC值进行比较,这样总线上所传数据的有效性就得到了验证。
22.权利要求21的方法,其中并行位错误检测对现有的ATA驱动软件是透明的,在改进数据完整性的同时提供与现有ATA驱动软件的向下兼容性。
23.权利要求21的方法,其中外围驱动设备和主设备计算16位CRC值的步骤以数据字时钟频率进行。
全文摘要
一种同步DMA短脉冲串传输方法用来在由ATA总线连接的一个主设备和一个外围驱动设备之间进行数据传输。该方法通过使一个设备既负责管理选通信号又负责管理数据信号来提供在异步系统中的同步数据传输能力。当一条主机读或写指令被发送到外围驱动设备上时,外围设备决定何时开始同步DMA短脉冲串传输。对一个读指令,外围设备请求同步DMA短脉冲串传输,并在主机确认其可以开始短脉冲串传输之后,将数据字送到ATA总线上去。在允许数据信号稳定的时刻之后,外围设备将选通信号从高状态触发变为低状态。主机看到选通信号的边沿,就在此时将数据字锁定在总线上。附加数据字可以被送到总线上并且选通信号可以被再触发以将附加数据字锁存到主机中。当所有数据字都被传输之后,选通信号返回高状态,准备供另一条主机指令使用。通过使发送数据的设备负责管理选通信号和数据信号两者,该方法减少了时间延迟由ATA总线连接的一个主设备和一个外围驱动设备之间进行数据并可以提供高达33MB/S的数据传输速率。本方法易于在现有系统中实施并与现有的传输协议向下兼容。
文档编号G06F13/20GK1169193SQ96191541
公开日1997年12月31日 申请日期1996年11月12日 优先权日1995年11月21日
发明者杰弗里·H·阿普尔鲍姆, 约翰·W·布鲁克斯, 詹姆斯·P·麦克拉斯, 亨格·C·尼盖恩 申请人:昆腾公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1