串行接口大容量存储装置的数据传送速率调节的制作方法

文档序号:6468620阅读:119来源:国知局
专利名称:串行接口大容量存储装置的数据传送速率调节的制作方法
技术领域
本发明的--个或一个以上方面通常涉及使用串行ATA(SATA)协议的串行数据传送,且更明确地说,涉及调节数据传送速率以将保持基元针对流动控制的使用降到最低。
背景技术
串行ATA磁盘存取协议用于在系统存储器与一个或一个以上磁盘之间传送数据。与系统存储器带宽相比,多数串行ATA存储装置具有非常有限的数据传送吞吐量。对于基于磁带的驱动器,持续写入吞吐量可低至100MB/sec。因此,当耦合到可持续300MB/sec的传送速率(如串行ATA规格所描述)的快速主机处理器时,这些串行ATA存储装置可能会成为性能瓶颈。
所述串行ATA协议规定了流动控制机制以调节数据传送速率。明确地说,可调节从主机处理器到串行ATA存储装置的数据传送,使得接收数据先进先出(先进先出)不会溢流。当达到存储传入数据的数据先进先出中的高水印时,串行ATA存储装置输出保持基元。当主机处理器接收到保持基元时,其输出保持A基元且停止向串行ATA存储装置发送数据,确认已接收到保持基元。串行ATA存储装置可在接收到保持A基元之后且在数据先进先出中的空间可用于存储传入数据(即,当达到低水印时)时重新开始接受数据。串行ATA存储装置通过输出RJP基元而非保持基元来传递其将接受数据的信息。当主机处理器接收到RJP基元时,其开始发送数据而非保持A基元。
在规定时间之外,有效传送速率是串行ATA存储装置的持续数据传送速率减去RJP到保持到保持A到R—IP序列的流动控制开销。流动控制引入低效率,这是因为串行ATA存储装置与主机装置之间的每一传送由于跨越串行ATA接口的往返信号交换而招致数个延时循环(被限制到规定的最大值)。简单地增加数据先进先出的大小来存储更多传入数据可用来延迟流动控制序列的首次发生,但一旦在第一时间已填充数据先进先出,便不会改善有效传输速率。
因此,期望改善串行ATA存储装置的有效数据传送速率。还期望不通过增加数据先进先出的大小而将电路小片面积降到最低。

发明内容
本发明涉及用于改善串行ATA存储装置的有效数据传送速率的系统及方法。通过在发送数据时插入对准基元来降低有效数据传送速率。接收装置仅废弃所述对准基元。因此,接收数据先进先出不快速填充且流动控制需要较少的RJP到保持到保持A到RJP序列。所述对准基元的优点在于不会招致往返信号交换延时而停用且随后启用数据传送。
本发明的各种实施例包括一种用于使用数据传送速率调节在串行ATA连接上执行数据传送的系统。所述系统包括发送装置,所述发送装置经配置以在数据可用于在串行ATA连接上输出到接收装置时转换成发送数据状态。所述发送装置经配置以确定应输出对准基元而非数据来减少所述串行ATA连接上的数据传送速率且将所述对准基元输出到接收装置。所述接收装置经以存储从所述发送装置接收的数据且废弃所述对准基元。
本发明的各种实施例包括一种使用数据传送速率调节来执行串行ATA连接的数据传送的方法,所述方法包括在数据可用于在发送装置与接收装置之间的串行ATA连接上输出时进入发送数据状态;确定应输出对准基元而非数据以减小所述串行ATA连接上的数据传送速率;及在所述串行ATA连接上将对准基元从所述发送装置输出到所述接收装置。


可参照实施例获得对上述经简要归纳的本发明的更特定说明,从而能够更详细地了解上文引用的本发明特征的方式,其中某些实施例图解说明于附图中。然而,应注意,附图所示仅图解说明本发明的典型实施例,且因此不得视为限定本发明的范围,因为本发明可容许其它等效的实施例。
图1A是根据本发明的一个或一个以上方面的包括CPU及串行ATA装置的相应计算机系统的实例性实施例的框图。
图IB是根据本发明的一个或一个以上方面的图1A的串行ATA装置的框图。
图2是根据本发明的一个或一个以上方面的在发送数据状态中执行数据传送速率调节的方法的实例性实施例。
图3是根据本发明的一个或一个以上方面的在接收数据状态中执行数据传送速率调节的方法的实例性实施例。
具体实施例方式
在以下说明中,阐述了大量特定细节以提供对本发明的更彻底理解。然而,所属领域的技术人员应了解,无需这些特定细节中的一者或一者以上也可实践本发明。在其它实例中,为避免遮掩本发明,本文未描述众所周知的特征。
5本发明涉及用于改善串行ATA存储装置的有效数据传送速率的新系统及方法。
通过在发送数据时插入对准基元来减少有效数据传送速率。接收装置仅废弃所述对准
基元。因此,所述接收数据先进先出不快速填充且流动控制需要较少的R_IP到保持到保持A到R—IP序列。所述对准基元的优点在于不会招致往返信号交换延时而停用且随后启用数据传送。相反,常规主机控制器不产生中断,而是一旦串行ATA总线可用便在没有软件干涉的情况下重复发出命令。
图1是根据本发明的一个或一个以上方面的相应计算机系统(系统100)的实例性实施例的框图,系统100包括CPU 120;媒体及通信处理器130;串行ATA倍增器170与串行ATA装置150、 155、 160及165。在本发明的一些实施例中,串行ATA装置150、 155、 160及165是大容量存储装置,例如,硬磁盘驱动器。串行ATA装置150、 155、 160及165符合串行ATA标准且因此,可经配置以除常规流动控制信令外还使用数据传送速率调节。系统100包括系统存储器110,其用于存储CPU120使用的程序及数据,所述数据包括可从硬串行ATA装置150、 155、 160及165读取或写入到硬串行ATA装置150、 155、 160及165的数据。
系统100可以是桌上型计算机、服务器、膝上型计算机、掌上型计算机(palm-sizedcomputer)、台式计算机、游戏控制台、便携式无线终端(例如,个人数字助理(PDA)或蜂窝式电话)、基于计算机的模拟器等等。CPU120可包括直接介接到系统存储器IIO的系统存储器控制器。在本发明的替代实施例中,CPU120可通过系统接口 (例如,1/0(输入/输出)接口或桥接器装置)与系统存储器110通信。
装置驱动器112存储于系统存储器110中。装置驱动器112由系统100的系统设计者及/或制造者提供且经配置以介接于在CPU 120上运行的操作系统(未显示)与媒体及通信处理器130之间。媒体及通信处理器130耦合于CPU 120与一个或一个以上硬磁盘驱动器(例如,硬磁盘驱动器150及155)之间。媒体及通信处理器130通过高带宽前侧总线125耦合到CPU120。在本发明的一些实施例中,媒体及通信处理器130使用外围组件接口(PCI)HyperTransportTM协议在前侧总线125上与CPU 120介接。
媒体及通信处理器130促进系统存储器110与一个或一个以上硬磁盘驱动器之间的数据传送且包括串行ATA主机控制器140,所述串行ATA主机控制器140经由串行ATA链路175耦合到串行ATA倍增器170且经由串行ATA链路145耦合到一个或一个以上串行ATA装置150、 155、 160及165。串行ATA倍增器170与串行ATA装置150、 155、 160及165经配置以支持数据传送速率调节。串行ATA装置150、155、 160及165的每一者包括驱动器电子器件,所述驱动器电器器件控制对个别磁盘内的数据的存储及读取,包括缓冲从串行ATA主机控制器140接收的数据及缓冲用于输出到串行ATA主机控制器140的数据。类似地,串行ATA倍增器170包括一个或一个以上数据先进先出(先进先出)存储器,其用于存储从串行ATA主机控制器140接收的数据以用于输出到串行ATA装置160或串行ATA装置165。串行ATA倍增器170还包括一个或一个以上数据先进先出,其用于存储串行ATA装置160及165输出到串行ATA主机控制器140的数据。
在本发明的其它实施例中,媒体及通信处理器130可包括额外的端口,例如,通用串行总线(USB)、加速图形端口(AGP)等等。可替换或移除每一串行ATA装置150、155、 160及165,以便在任何特定时间,系统IOO可包括更少或更多串行ATA装置。
表1显示常规流动控制交换及数据传送速率调节以图解说明数据传送速率调节的经改善效率。发送器(串行ATA主机控制器140或串行ATA装置150、 155、 160及165中的一者)在前4个传送循环中输出数据N、 N+l、 N+2及N+3。当使用常规流动控制时,接收器(串行ATA装置150、 155、 160及165中的一者或串行ATA主机控制器140)输出保持基元(指示接收数据先进先出已达到高水印)以用信号通知发送器不应再发送数据。当使用数据传送速率调节时,接收器不需要发送保持基元,因为发送器己输出对准基元来减小数据传送速率。因此,接收数据先进先出未达到高水印。
在此实例中,发送器在接收器输出保持基元之后的四个传送循环接收到所述保持基元。发送器通过向接收器发送保持A(保持确认)基元而非数据对保持基元做出响应。接收器继续输出保持基元直到保持A被接收(4个传送循环之后)且接着由于接收数据先进先出己排放到低水印水平,因此接收器输出R—IP基元以指示可接收数据。发送器继续输出保持A基元直到接收到R一IP基元(4个传送循环之后)且接着,发送器重新开始向接收器输出数据。
相反地,当使用数据传送速率调节时,8个传送循环的往返延时不会影响数据传送速率。在许多常规系统中,往返延时大于8个传送循环,因此当使用常规流动控制时甚至可进一步减小数据传送速率。遗憾的是,串行ATA规格将往返延时限定为最大32个传送循环。然而,如表1中所示,可通过使用数据传送速率调节来避免使数据接收先进先出溢流而非使用常规流动控制来改善有效数据传送速率。具体来说,在表1中所示的13个传送循环期间,将使用常规流动控制传送数据5个循环与使用数据传送速率调节的9个数据传送循环相比。
表1数据传送
常规流动控制 数据传送速率调节
发送器输出接收器输出发送器输出接收器输出
数据N保持对准
数据N+l保持对准
数据N+2保持对准
数据N+3保持对准
保持A保持数据N
保持A保持数据N+l保持A保持数据N+2
保持A保持数据N+3
保持AR—IP数据N+4
保持AR一IP数据N+5
保持AR—IP数据N+6
保持AR—IP数据N+7
数据N+4R_IP数据N+8
串行ATA规格出于时钟恢复目的而要求每隔256个数据传送发送两个对准基元。然而,不存在防止输出额外对准基元的限制。对准基元由链路及运输层状态机忽略且由物理层吸收。因此,对准基元可用于减小数据传送速率且将对使用常规流动控制机制(R一IP到保持到保持A到R_IP序列)的需要降到最低。当在致使发送装置的数据传送速率匹配接收装置的数据传送速率的速率下插入对准基元时,即将常规流动控制降到最低且实现最高的可能有效数据传送速率。
注意,虽然与串行ATA装置150、 155、 160及165相比,CPU120通常具有较高的数据传送速率,但可在串行ATA主机控制器140是发送装置时或在串行ATA装置150、 155、 160及165均是发送装置时,使用数据传送调节技术来减小数据传送速率。重要的是,符合串行ATA规格的装置能够在不经任何修改的情况下起到接收装置的作用。发送装置经配置以插入对准基元(如结合图1B及2所描述)以对数据传送速率进行调节。
图1B是根据本发明的一个或一个以上方面的图1A的串行ATA装置150的框图。在串行ATA装置150上下文中所描述的所有或一部分元件还可用于在串行ATA主机控制器140、串行ATA倍增器170、串行ATA装置155、 160及165内执行数据传送速率调节。串行ATA装置150包括存储装置195、有限状态机190、接收(数据)先进先出185、发送(数据)先进先出185及调节值180。有限状态机190实施串行ATA协议,包括结合图2及3所描述的发送数据状态及接收(Rcv)数据状态。接收先进先出185存储经由串行ATA链路145接收的数据,缓冲所述数据供存储于存储装置195中。发送先进先出187存储用于经由串行ATA链路145输出的数据,从而缓冲从存储装置195读取的所述数据。在一些装置(例如,串行ATA倍增器170及串行ATA主机控制器140)中,存储装置195因所述装置执行串行ATA通信的路由功能而被省略。
调节值180是寄存器,其存储用于在串行ATA装置150输出的数据流中插入对准基元的信息。所述调节值可包括待插入的对准基元的数目以及用来与有限状态机190维持的数据计数相比较的数据计数阈值。所述调节值可以是固定的或可由装置驱动器112编程。为使系统100中的每一串行ATA装置的有效数据传送速率最大化,可针对每一接收装置编程调节值。图2是根据本发明的一个或一个以上方面的在发送数据状态中执行数据传送速 率调节的方法的实例性实施例。图2的方法图解说明可由串行ATA主机控制器140、 串行ATA倍增器170与串行ATA装置150、 155、 160及165执行的协议的实施例。 在步骤200中,有限状态机190因数据可用于经由串行ATA链路145输出而进入发 送数据状态。在步骤205中,有限状态机190确定是否已传送所有帧数据,如果情况 是如此,那么在步骤210中,有限状态机190进入发送CRC状态。串行ATA规格中 描述了发送CRC状态。
如果在步骤205中,有限状态机190确定尚未传送所有帧数据,那么在步骤215 中,有限状态机190确定是否从物理(Phy)层接收到SYNC,且如果情况是如此, 那么在步骤220中,有限状态机190进入空闲状态,如串行ATA规格所规定。否贝U, 有限状态机190确定物理层是否未准备好进入状态225。如果在步骤225中,有限状 态机190确定物理层尚未准备好,那么在步骤230中,有限状态机190进入NoCommErr 状态230,如串行ATA规格所规定。否则,在步骤235中,有限状态机190确定是 否接收到退出当前帧传送。如果接收到退出当前帧传送,那么在步骤240中,有限状 态机190进入Sync退出状态,如串行ATA规格所规定。否则,在步骤245中,有限 状态机190确定是否接收到保持基元,且如果情况是如此,那么在步骤250中,有限 状态机190进入接收保持状态,如串行ATA规格所规定。
如果在步骤245中,有限状态机190确定未接收到保持基元,那么在步骤255 中,有限状态机190确定发送数据先进先出是否是空的。如果发送数据先进先出是空 的,那么在步骤260中,有限状态机190进入发送保持状态,如串行ATA规格所规 定。否则,在步骤265中,有限状态机190确定是否应插入对准基元以减小到接收器 的数据传送速率。
有限状态机190维持对对准基元之间已发生的数据传送循环数目的数据计数。数 据传送循环是传送循环,例如,数据输出到接收器期间的时钟循环或固定数目的时钟 循环。在本发明的一些实施例中,在两个数据传送循环之间插入单个对准基元且在本 发明的其它实施例中,在两个数据传送循环之间插入多个对准基元。插入的对准基元 的数目可由调节值180规定。对准基元之间的数据传送循环的数目也由调节值180规 定。
如果在步骤265中,有限状态机190确定不应插入对准基元,那么在步骤280 中,有限状态机190将从发送先进先出187输出(弹出)的数据经由串行ATA链路 145传输到接收器。在步骤285中,有限状态机190递增数据计数。如果在步骤265 中,有限状态机190确定应插入对准基元,那么在步骤270中,有限状态机190重设 数据计数。在步骤275中,有限状态机190基于调节值180输出一个或一个以上对准 基元。在本发明的一些实施例中,将新状态"插入对准"包括在串行ATA链路传输 状态图中。有限状态机190进入插入对准状态以完成步骤270及275,且接着返回到 发送数据状态。图3是根据本发明的一个或一个以上方面的在接收(Rcv)数据状态中执行数据传 送速率调节的方法的实例性实施例。图3的方法图解说明可由串行ATA主机控制器 140、串行ATA倍增器170与串行ATA装置150、 155、 160及165执行的协议的实 施例。在步骤300中,有限状态机190因经由串行ATA链路145接收到数据或基元 而进入接收数据状态。在步骤305中,有限状态机190确定是否接收到帧结束(EOF), 且如果情况是如此,那么在步骤303中,有限状态机190进入接收帧结束状态。串行 ATA规格中描述了接收帧结束状态。
如果在步骤301中,有限状态机190确定未接收到帧结束,那么在步骤215中, 有限状态机190确定是否从物理层接收到WTRM。如果接收到WTRM,那么在步骤 310中,有限状态机190进入不良结束(BadEnd)状态,如串行ATA规格所规定。 否则,在步骤315中,有限状态机190确定是否从物理层接收到SYNC,且如果情况 是如此,那么在步骤320中,有限状态机190进入空闲状态,如串行ATA规格所规 定。否则,有限状态机190确定物理层是否未准备好进入状态325。如果在步骤325 中,有限状态机190确定物理层尚未准备好,那么在步骤330中,有限状态机190进 入NoCommErr状态,如串行ATA规格所规定。否则,在步骤335中,有限状态机 190确定是否接收到退出当前帧传送。如果接收到退出当前帧传送,那么在步骤340 中,有限状态机190进入Sync退出(SyncEscape)状态,如串行ATA规格所规定。 否则,在步骤345中,有限状态机190确定是否接收到保持基元,且如果情况是如此, 那么在步骤350中,有限状态机190进入接收保持(RcvHold)状态,如串行ATA规 格所规定。
如果在步骤345中,有限状态机190确定未接收到保持基元,那么在步骤355 中,有限状态机190确定接收先进先出185是否已达到高水印(HWM)。如果接收先进 先出185己达到高水印,那么在步骤360中,有限状态机190进入保持状态,如串行 ATA规格所规定。否则,在步骤365中,有限状态机190确定是否接收到对准基元, 且如果情况是如此,那么在步骤370中,有限状态机190废弃对准基元,g卩,不将对 准基元推到接收先进先出185中。如果在步骤365中,有限状态机190确定未接收到 对准基元,那么接收数据,且在步骤375中,有限状态机190将数据存储(推)到接收 先进先出185中。
所属领域的技术人员将了解,经配置以执行图2或3的方法步骤或其等效形式的 任一系统属于本发明的范围内。当以高于接收器的数据传送速率从发送器发送数据 时,通过插入对准基元来减小数据传送速率。接收装置仅废弃对准基元。因此,接收 数据先进先出不快速填充且避免使接收数据先进先出溢流需要较少的常规高延时流 动控制序列。减小常规流动控制序列的数目改善有效数据传送速率同时在串行ATA 规格内操作。
尽管上文是针对本发明的实施例,但在不背离本发明基本范围的条件下,还可构 想出本发明的其它及进一步实施例,而本发明的范围由上述权利要求书确定。因此,
10将以上说明及图式视为具有说明性意义而非限制性意义。方法权利要求中步骤的列举 并非暗指以任一特定顺序来执行所述步骤,除非权利要求书中有明确说明。 所有商标均是其所有者的相应财产。
权利要求
1、一种使用数据传送速率调节来执行串行ATA连接的数据传送的方法,其包含当数据可用于在发送装置与接收装置之间的串行ATA连接上输出时,进入发送数据状态;确定应输出对准基元而非数据以减小所述串行ATA连接上的所述数据传送速率;及在所述串行ATA连接上将所述对准基元从所述发送装置输出到所述接收装置。
2、 如权利要求l所述的方法,其进一步包含输出额外对准基元以进一步减小所 述串行ATA连接上的所述数据传送速率。
3、 如权利要求2所述的方法,其中当所述接收装置的数据传送速率小于所述发 送装置的数据传送速率时,所述额外对准基元的数量基于所述接收装置的所述数据传 送速率。
4、 如权利要求l所述的方法,其中当所述接收装置的数据传送速率小于所述发 送装置的数据传送速率时,所述确定步骤基于所述接收装置的所述数据传送速率。
5、 如权利要求1所述的方法,其进一步包含在输出所述对准基元时重设数据计 数,其中所述数据计数追踪对准基元之间已发生的数据传送循环的数量。
6、 如权利要求5所述的方法,其进一步包含 确定不应将对准基元从所述发送装置输出到所述接收装置; 将所述数据输出到所述接收装置;及 递增所述数据计数。
7、 如权利要求l所述的方法,其中所述接收装置废弃所述对准基元。
8、 如权利要求1所述的方法,其中所述发送装置是串行ATA主机控制器且所 述接收装置是串行ATA存储装置。
9、 如权利要求1所述的方法,其中所述发送装置是串行ATA存储装置且所述 接收装置是串行ATA主机控制器。
10、 一种包含程序的计算机可读媒体,当所述程序由计算装置执行时,其配置串 行ATA装置以执行数据传送速率调节,所述过程包含当数据可用于在发送装置与接收装置之间的串行ATA连接上输出时,进入发送 数据状态;确定应输出对准基元而非数据以减小所述串行ATA连接上的所述数据传送速 率;及在所述串行ATA连接上将所述对准基元从所述发送装置输出到所述接收装置。
11、 一种用于使用数据传送速率调节在串行ATA连接上执行数据传送的系统,所述系统包含发送装置,其经配置以当数据可用于在所述串行ATA连接上输出时进入发送数据状态; 确定应输出对准基元而非数据以减小所述串行ATA连接上的所述数据传送速 率;及将所述对准基元输出到接收装置;且所述接收装置经配置以存储从所述发送装置接收的数据且废弃所述对准基元。
12、 如权利要求11所述的系统,其中所述发送装置进一步经配置以存储用于确 定是否应输出对准基元的调节值。
13、 如权利要求12所述的系统,其中所述调节值规定在连续数据传送循环中输 出的对准基元的数量。
14、 如权利要求12所述的系统,其中所述调节值规定在不输出对准基元以调节 所述串行ATA连接上的所述数据传送速率的情况下可输出数据的连续数据传送循环 的最大数目。
15、 如权利要求11所述的系统,其中所述发送装置进一步经配置以维持指示在 最近输出的对准基元之后已发生的数据传送循环数目的数据计数。
16、 如权利要求15所述的系统,其中所述发送装置进一步经配置以在输出对准 基元时重设所述数据计数且针对输出数据的每一数据传送循环递增所述数据计数。
17、 如权利要求11所述的系统,其中所述发送装置是串行ATA主机控制器且 所述接收装置是串行ATA存储装置,其中所述串行ATA存储装置的数据传送速率小 于所述串行ATA主机控制器的数据传送速率。
18、 如权利要求11所述的系统,其中所述发送装置是串行ATA存储装置且所 述接收装置是串行ATA主机控制器,其中所述串行ATA主机控制器的数据传送速率 小于所述串行ATA存储装置的数据传送速率。
19、 如权利要求11所述的系统,其中所述发送装置是串行ATA倍增器且所述 接收装置是串行ATA存储装置。
20、 如权利要求11所述的系统,其中所述发送装置是串行ATA主机控制器且 所述接收装置是串行ATA倍增器。
全文摘要
本发明揭示用于执行数据传送速率调节以改善串行ATA存储装置的有效数据传送速率的系统及方法。通过在发送数据时插入对准(ALIGN)基元来减小所述数据传送速率。接收装置仅废弃所述对准基元。因此,所述接收数据先进先出(FIFO)不会快速填充且流动控制需要较少的流动控制序列来防止所述接收数据先进先出发生溢流。使用所述对准基元来替代常规流动控制的优点在于不会招致往返信号交换延时而停用且随后启用数据传送。
文档编号G06F3/06GK101464780SQ20081018407
公开日2009年6月24日 申请日期2008年12月15日 优先权日2007年12月20日
发明者安布杰·库马尔, 马克·A·奥弗比 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1