专利名称:信息传输协议的制作方法
技术领域:
本发明涉及信息传输的系统和方法。
背景技术:
很多数字装置已成为消费品。数字电话、数码相机、数字音乐重放机、个人数字助理(PDA)以及个人电脑只是流行的数字科技的实例。随着这种技术的的发展,需要在装置之间传输数字信息。就便携式数字装置而言,特别需要这种信息传输。
便携式数字装置经常省略很多方便设施以便尽可能轻便。例如,便携式数字装置可能没有全尺寸的用户接口、在数据库介质上存储数据的能力以及对功率要求很高的部件(例如,高级数字处理部件)。因此,任何便携式数字装置的期望的特性是在便携式数字装置和具有理想特性的主数字装置之间传输数字信息的能力。
可以直接进行信息传输,或者,可利用信息存储介质进行信息传输。一种特别重要的信息存储介质是固态存储器件。这种存储器件可被组装在可拆装存储卡中。便携式数字装置可在所述存储器件上存储信息。然后也许在从便携式数字装置被取下之后,所述存储器件可被连接到主数字装置上。然后主数字装置可从所述存储器件检索存储信息。当然信息传输可以是双向的,这样主数字装置可在存储器件中存储数据而便携式数字装置可从存储器件中检索数据。
目前,存储卡的数据存储容量范围大约在2兆(MB)到十亿字节(GB)之间,在不久的将来存储容量会更大。虽然很多存储卡提供了大量存储器,可是从存储器检索文件的数据传输速率经常很低,例如差不多是10到20MB/秒。按照所述速率,主数字装置将用大约1-2分钟来从存储卡检索1GB。因此需要能提供更高的传输速度而基本上不增加存储装置复杂性的信息传输协议。
发明内容
因此,这里公开一种信息传输系统和方法。在一个实施例中,所述系统可包括主装置和通过至少一条总线连接到主装置的从装置。所述总线可以是高速差动串行总线,其中时钟信息被嵌入在数据流中。可采用各种流控制技术来弥补主装置和从装置所支持的传输速率上的差异。可采用两种同步字段来建立和维持时钟捕获。
在一个实施例中,系统包括主装置和通过至少一条总线连接到主装置的从装置。主装置采用后面是第一数据包的第一类同步字段将信息传输到从装置,而如果在接收另一个数据包之前不需要额外的时间则从装置用第二种不同的后面是状态就绪字段的同步字段响应各数据包。可以通过配置成传输命令的串行或并行总线把主装置连接到从装置。
为了详细说明本发明的各实施例,现参照附图,其中图1示出数字系统的实例,其中可采用各种不同的信息传输协议实施例;图2a-2b示出数字装置和存储装置之间的另一种总线配置;图3a-3f示出根据不同信息传输协议实施例可采用的包和字段;图4a-4b示出可用于根据一定的信息传输协议实施例实现读序列的实例流程图;图5a-5b示出可用于根据一定的信息传输协议实施例实现写序列的实例流程图;图6a-6d示出根据一个信息传输协议实施例的通信序列的实例;图7a-7d示出根据另一个信息传输协议实施例的通信序列的实例;图8a-8d示出根据另一个信息传输协议实施例的通信序列的实例;以及图9a-9c示出根据另一个信息传输协议实施例的通信序列的实例。
具体实施例方式
符号和术语文中采用了一些术语来指特定的系统组件。本领域的技术人员将认识到,公司会用不同名称指一个组件。本文不会区分名称不同而不是功能不同的组件。在下面的讨论和权利要求书中,术语“包括”和“包含”用于可扩展的方式中,因此应被解释为“包括,但不限于……”。而且,术语“连接”将意味着间接或直接的电子连接。因此,如果第一装置连接到第二装置,所述连接可通过直接电子连接,或通过采用其他装置和连接的间接电子连接。
详细说明附图和以下讨论用于不同系统和方法实施例。虽然这些实施例中的一个或多个可能是最优的,但是所公开的实施例不应被解释为或用于限制本发明,包括权利要求书的范围。本领域的技术人员将理解,以下说明的应用面很宽,并且任何实施例的讨论只意味着那个实施例的实例,而不是意图说明本发明的范围(包括权利要求书的范围)被限制在那个实施例上。
存储装置可连接到数字装置以便进行信息存储和检索。图1示出计算机系统(一个可采用存储装置的实例)。
图1的计算机系统包括中央处理单元(CPU)10,它通过桥接器与系统存储器14和显示器连接。CUP10还通过桥接器12与扩展总线18连接。存储装置20和输入/输出接口22也与扩展总线18连接。可通过输入/输出接口22将键盘24连接到计算机。
CPU10可根据存储在存储器14和/或存储装置20中的软件工作。在软件的指示下,CPU10可通过键盘24或一些替代的输入装置接受来自操作员的命令,并且可以通过显示器16或一些替代的输出装置向操作员显示所需信息。CPU10可控制其他系统组件的操作以检索、传输或存储数据。
桥接器12协调组件之间的数据流。桥接器12可为CPU10、存储器14和显示器16提供专用的、高带宽的、点到点的总线。
存储器14可存储软件和用于快速存取的数据。存储器14可包括集成存储模块,其中的一个或多个是易失性的。
显示器16可提供数据供操作员使用。显示器16还可提供图形并可包括先进的图形处理能力。
扩展总线18可支持桥接器12和多个其他计算机组件之间的通信。总线18可用桥接器12连接到可拆装模块组件和/或集成到电路板上的组件(例如,声卡、网络接口、数据捕获模块、调制解调器等)。
存储装置20可存储软件和用于长期保存的数据。存储装置20可以是便携的、或者可以接受可拆装介质,或者可以是已安装组件,或者可以是电路板上的集成组件。存储装置20可以是诸如存储卡的可拆装存储装置。或者,存储装置20可以是非易失性的集成存储器、磁介质存储装置、光介质存储装置或一些其他形式的长期信息存储器。
输入/输出接口22可支持与不要求高带宽连接的传统的组件和装置进行通信。输入/输出接口22还可包括实时时钟并且可支持与扫描链通信用于系统的低层测试。
键盘24可响应操作员的操作向接口22提供数据。其他输入装置(例如,定点设备、按钮、传感器等)也可连接到输入/输出接口22以便响应操作员的操作提供数据。输出装置(例如并行端口、串行端口、打印机、扬声器、灯等等)也可连接到输入/输出接口22向操作员传送信息。
适配器26可连接到扩展总线18以便将扩展总线连接到诸如存储卡的可拆装存储装置。或者,可以把适配器26制作成与便携式数字装置连接,以便在计算机系统与便携式数字装置之间的信息传输。
除了上述计算机系统,很多其他通用的和定制的数字装置和系统可有利地配置成用于在它们和诸如存储卡的存储装置之间进行信息传输。
图2a示出通过总线106与存储装置104连接的数字装置102。在一个实施例中,总线106是采用差动信号的高速、半双工串行连接。或者,总线106可采用非差动信号,可以以全双工方式工作,和/或可以是并行连接。可以对通过总线106发送的数据进行编码以便将时钟信息嵌入数据流中。
数据装置102可以包括将来自总线106的信号转换为数据接收数据的收发器108。收发器108还可将数字发送信号转换为用于在总线106上传输的信号。数据装置102可包括缓冲器110以帮助避免下溢/溢出的情况和/或提供时钟域之间的转变。
数字装置102还可包括功能“核心”112,所述功能“核心”与缓冲器110连接以提供发送数据和接受接收数据。核心112还可协调总线106的操作,或者可以把这种功能包括在收发器108中。或者,收发器108和112可共同协调总线106的操作。
存储装置104可包括收发器114、缓冲器116和功能核心118。与收发器108的情况一样,收发器114可将来自总线106的信号转换为提供给缓冲器116的数字接收数据。传输器114还可将来自缓冲器116的数字发送数据转换为用于在总线106上传输的信号。缓冲器116可用于避免下溢/溢出的情况和/或协助时钟域之间的数据传输。功能核心118可从缓冲器116接受接收数据并向缓冲器116提供发送数据。功能核心118和/或收发器114可与数字装置102共同协调总线操作。在预期的实施例中,功能核心118包括信息存储介质,数据可流向其中并可从中检索数据。
应当指出,数字装置102和存储装置104可支持不同数据传输速率。例如,数字装置102可支持200MB/s的发送数据速率,而可能因为功能核心118的限制的缘故,存储装置104的存储速率仅为平均150MB/s。也可能出现相反情况,而且也可能对于给定装置所支持的发送和接收速率不同。因此,可采用数据流控制技术来避免缓冲器110、116中的下溢或溢出错误。
序列号为No.10/295,651的相关的美国专利申请更详细地描述了可适当地采用这里所述的信息传输协议的不同硬件实施例。如相关申请所述并且如图2b所示,装置102和104除了通过总线106还可通过第二总线120连接。总线120可与总线106物理上分开。或者,总线120和总线106可共享物理导线但是以某种时间或频率多路复用方式或者以提供实际上独立操作的某种其他方式工作。在一个预期的实施例中,总线120是安全数字总线或多媒体存储卡系统总线,而总线106是与总线120共享物理导线的差动高速串行总线。可以通过总线120传送配置和启动命令,而通过总线106传达数据和流控制信息。
如下文将进一步讨论的那样,总线106可包括专用控制线。使用术语“专用”不应意味着如果所述线物理上被第二总线共享,控制线不能用于其他用途。相反,所述术语的意思只是总线106可采用所述线传输控制信息而且总线106不用所述线传输数据。
图3a-3f示出可用总线106传输的协议单元的实例。图3a是数据包202的实例,数据包202可包括起始字符204、用户数据字符块206、循环冗余校验码(CRC)校验和208以及结束字符210。块206可包括固定个数的数据字符,例如512个。块206中的每个数据字符可以是8位数据值的10位表示,例如可采用直流平衡的、游程长度受限的8b/10b代码确定,例如在颁发给Franaszek和Widmer的美国专利No.4,486,739中所公开的。由这种代码提供的游程长度限制确保数据流为接收端的时钟恢复提供足够的转换。
起始字符204可以是游程长度受限的8b/10b代码的唯一10位值,它不对应于8位数据值的有效表示。同样,结束字符210可以是(不同的)游程长度受限的8b/10b代码的唯一10位值,它不对应于8位数据值的有效表示。校验和208可以是通过将上述8b/10b代码应用到16位CRC校验和而确定的两个10位字符。可以替代地使用不同的其他校验和长度。或者,可采用纠错码(ECC)提供冗余信息块。例如,可以用通过将上述8b/16b代码应用到16字节的冗余块所确定的16个10位字符代替校验和208。可以采用例如Reed-Solomon纠错码从数据块确定冗余块。
在接收方,校验和208可用于证实没有数据传输错误。如果采用冗余块,可使用解码过程检测和/或纠正数据传输错误。CRC校验和或ECC冗余块的使用,以及其长度,是基于期望出错率和期望数据流量之间的折衷确定的。
图3b是长同步字段212的实例,它可包括固定数量(例如5)的同步字符214。同步字符214可以是带有最大数量的转换的10位值以帮助时钟同步。同步字符214也可以是游程长度受限的8b/10b代码的唯一10位值,它可对应于或可不对应于8位数据值的有效表示。例如,各同步字符214可以是“1010101010”。图3c是短同步字段216的实例,同样它可包括固定数量的同步字符214。短同步字段的同步字符数可以是两个,并且在任何情况下,少于长同步字段212中的同步字符数。
图3d是状态字218的实例,它可包括起始字符219和状态字符220。如上所述,字符可以是10位值。起始字符219可以和起始字符204相同,或者,起始字符219可以是另一个唯一10位值以表示状态字段开始。状态字符220可以是多个唯一10位值中的一个,所述多个唯一10位值不是8位值的有效表示。每个不同的状态字符可以表示不同存储装置状态。存储装置状态的实例可包括1)准备好发送下一个数据包;2)未准备好发送下一个数据包;3)传输发送的上一个数据包;4)准备好接收下一个数据包;5)计算CRC且未准备好接收下一个数据包;6)CRC正确但是未准备好接收下一个数据包;7)检测到错误并准备好转换到错误处理;以及8)检测到错误且未准备好转换到错误处理。
图3e是命令包222的实例,它可包括开始命令字符224、命令数据字符块226、CRC校验和228以及结束字符230。开始命令字符224可以是用来表示命令包开始的唯一10位值,并且可与起始字符204不同。在8b/10b编码体系下,开始命令字符224可能不是8位值的有效表示。命令字符块226最好包括固定数量的10位字符,例如64。可通过将上述8b/10b编码体系应用到64字节命令数据块来确定10位字符。校验和228可包括由两个CRC校验和字节的8b/10b编码确定的两个10位字符。如上所述,可采用替代的校验和长度,并且在另一个替代方案中,可以用通过向命令数据块应用Reed-Solomon纠错吗而确定的ECC冗余块代替校验和。结束字符230可与结束字符210相同。
图3f是响应包234的实例,它可包括开始响应字符234、响应数据字符块236、校验和(或ECC冗余块)238以及结束字符240。开始响应字符234可与开始命令字符224相同,或者,可以是不同的唯一10位字符。块236可包括固定数量的10位字符,例如64个10位字符。如上所述,可以通过向对应长度的数据字节块应用8b/10b代码来确定所述10位字符。校验和238可以是如上述确定的两个字符校验和,而结束字符240可以与结束字符210和230相同。
在预期的实施例中,用少于大约1到2毫微秒的位单元时间发送上述字段和包。应当指出,不是所有这些包和字段被用于下述所有实施例。
接下来的流程图可示出数据读取和数据写入方法和机构的可能的实现方案的结构、功能和操作。在这点上,每个方框可表示软件(或固件)代码的模块、段或一部分,它包含用于实现特定的逻辑功能(或多个逻辑功能)的一个或多个可执行指令。然而,更可能的是,这些流程图可在硬件中实现以支持期望的数据速率。硬件实现可采用硬件状态机的形式。应当指出,在一些替代的实现方案中,方框中注明的功能可能不按注明的顺序发生。例如,图4a中接连示出的两个方框302和304实际上可能是基本同时被执行或者有时可按相反的次序被执行,依赖于包括的功能,如以下将进一步清晰地描述的那样。
图4a示出数字装置可用于实现一个或多个所公开的信息传输协议的实施例的流程图的示例。数字装置可采用所述流程图从存储装置中检索数据。以方框302开始,数字装置102可确定多个待通过总线106接收的数据块并且可以将块计数器初始化以跟踪剩余块的数量。在方框304中,数字装置102可以启动数据检索过程。在一个实施例中,所述启动可包括通过总线106向存储装置104发送命令包(例如,如下参照图9a所述)。或者,可通过一些其他诸如第二总线120的装置向存储装置104传送读指令。
在存储装置104接收到读指令后,它可用数字装置102在块306中检测到的长同步字段回答。数字装置102可采用长同步字段同步字符将本地时钟与存储装置104所用的发送时钟同步。这种同步可采用锁相回路(PLL)实现。当实现同步后,在方框308中,数字装置102开始监视总线106,等待数据块起始字符。在接收到起始字符后,在方框310中,数字装置接收数据块和对应的校验和。
在方框310之后,流程图分叉表示当前的操作。在方框312中,数字装置102监视总线中的状态“忙”字段。同时,在方框314中,数字装置102检验校验和的值以确定是否发生传输错误。如果检测到错误,则在方框330中,数字装置102终止读操作。否则,在方框318中,数字装置102接受数据块并减少块计数值。同时,在方框316中,数字装置确定是否忙字段序列后是状态“就绪”字段或状态“最后”字段。如果不是,则控制转到方框330。否则,方框316和318后是会合的操作。在执行会合操作之后的任何操作之前必须完成遍历所有连接会合操作的并发路径的操作。因此,一旦数据块已经被接受并且已经接收到合适的状态字段,那么在方框320中,数字装置确定是否状态字段是状态“最后”字段并且块计数是零。如果是,那么在块322,数字装置成功地终止读操作(例如,所有数据块已被无错误地接收)。否则,在块324中,数字装置102确定是否状态“最后”字段在块计数达到零之前被接收。如果是,则控制转到方框330。否则,在块325中,数字装置102确定是否块计数达到零而没有状态“最后”字段被接收。如果是,则控制转到方框330。否则,在方框328中,数字装置102确定是否状态字段后是数据块起始字符。如果不是,则控制转到方框330。否则,控制返回方框310。
图4b示出存储装置可用于实现一个或多个所公开的信息传输协议的实施例的流程图的实例。存储装置104可以采用所述流程图来向数字装置发送数据。
当存储装置104接收到来自数字装置102的读指令时,在方框340中,它将块计数器设置为指示要被发送的剩余数据块的数量。在方框342中,存储装置104开始从存储介质(例如存储器阵列)向缓冲器传输数据。存储装置104在方框344中等待直到第一数据块准备好被发送。在方框346中,存储装置104确定是否发生了检索错误。如果是,则在方框348中存储装置104发送长同步字段,并且在方框350中它发送状态“错误”字段。在方框352中,存储装置104将读操作作为不成功操作中断。
回到方框346,如果未检测到错误,那么在方框354中存储装置104响应读操作的启动。在一个实施例中,所述响应可以在第二总线120上发出。在方框356中,存储装置104发送长同步字段。方框356之后是分叉,表示方框358和360当前的操作。在方框358中,存储装置104向数字装置102发送数据块(和校验和)。在方框360中,存储装置104减少块计数。
在方框362中,存储装置104确定是否块计数为零。如果是,则流程路径到达会合操作。否则,在方框364中,存储装置104开始检索下一个数据块。在方框366中,存储装置104确定检索期间是否发生错误。如果是,则控制转向方框350。否则,在方框368中存储装置104等待直到在回到方框360之前状态“就绪”字段已被发送。
在方框358中数据块被发送之后,存储装置104在方框370中检测以确定是否块计数为零。如果不是,那么在方框372中,存储装置104确定是否下一个数据块准备好被发送。在方框374中,存储装置104重复发送状态“忙”字段直到下一个数据块准备好。在方框376中,存储装置104发送状态“就绪”字段并且控制返回方框358。
在方框370中,如果块计数为零,那么控制转向会合操作。会合之后,在方框378中,存储装置104发送状态“最后”字段,并在方框380中成功终止读操作。
图4a和4b示出读过程实施例。图5a和5b示出写过程实施例。更一般地说,图5a示出数字装置用来实现所公开的信息传输协议的实施例的流程图的实例。
以方框402开始,数字装置102设置块计数器以跟踪要发送的数据包的数量。在方框404中,数字装置102启动向存储装置404的数据存储过程。所述启动可以通过用总线106向存储装置104发送命令包完成(例如,如图9a所示)。或者,可通过一些其他机构诸如第二总线向存储装置104传送写指令。所述启动使存储装置准备好通过总线106接受写数据。
在方框406中,数字装置102通过总线106发送长同步字段。在方框408中,数字装置102向存储装置104发送数据包(包括数据块和对应的校验和)。在方框410中,数字装置102切换到接收方式并聆听短同步字段。如果有一个没收到,那么在方框412中数字装置因出错终止写操作。否则,数字装置102在方框414中等待直到接收到不是状态“忙”字段的字段。在方框416中,数字装置102确定是否状态“忙”字段已被接收。如果没有,那么控制转向方框412。否则,在方框418中数字装置减少块计数。
在方框420中,数字装置102确定是否块计数器为零。如果是,则在方框422中,数字装置102成功终止写操作。否则,在方框424中,数字装置102切换到发送方式并发送短同步字段。然后控制转到方框408。
图5b示出可被存储装置104用于实现所公开的信息传输协议的实施例的流程图的实例。当存储装置通过总线106作为命令包或通过一些其他机构接收到写指令,它在方框430中设置计数器以跟踪要接收的包数量。在方框432中,存储装置104接收同步字段。在方框434中,存储装置104确定是否同步字段后是起始字符,如果不是,则控制转向方框432。否则,在方框436中,存储装置104将数据块和相应的校验和接收到缓冲器中。
在方框438中,存储装置104切换到发送方式并发送状态“忙”字段。在方框440中,存储装置104确定是否发生接收错误,如果是,则控制转向方框456。否则,在方框442中,存储装置减少块计数。在方框444中,存储装置104启动存储过程,将数据从缓冲器转移到存储介质。在方框446中,存储装置104确定是否块计数为零。如果不是,那么在方框448中存储装置104确定是否缓冲器中有足够的空间用于另一个数据包。如果不是,那么在方面450中,存储装置发送另一个状态“忙”字段,并返回方框448。
否则,在方框452中,存储装置104确定向存储介质进行的数据传输是否发生了内部错误。如果不是,那么在方框454中,存储装置104发送状态“忙”字段并且控制返回方框432。否则,在方框456中,存储装置104发送状态“错误”字段,并在方框458中由于出错终止写过程。
回到方框446,如果块计数已经达到零,那么在方框460中,存储装置确定是否向存储介质的传输还在进行。如果是,那么在方框462中,存储装置104发送状态“忙”字段并返回方框460。否则,在方框464中存储装置104确定是否在向存储器传输期间发生了错误。如果是,那么控制转向方框456,如果不是,在方框466中存储装置104发送状态“就绪”消息并在方框468中成功终止写过程。
图4a、4b、5a和5b说明了在不同情况下状态“忙”和状态“就绪”字段的使用。应当指出,各种替代的实施例是预期的(如下所述),所述替代的实施例不使用这些字段而采用控制线,可以确证(assert)所述控制线以表示“忙”状态并且否定所述确证以表示“就绪”状态。本领域的普通技术人员将容易认识到用最少的改变,上述流程图还可用于实现这些替代的实施例。
图6a-6d示出可由所公开的信息传输协议的一个实施例产生的通信序列的实例。图6a示出无错的读序列的实例,它包括开始段502、多个序列段506、506和结束段508,它们分别被存储装置104发送到数字装置102。(应当指出,如果只有一个数据块将被发送,段504和506将被省略。)开始段502包括长同步字段510和第一数据包512。后续段506,506分别包括零个或更多状态“忙”字段514,后面是状态“就绪”字段516,后面是数据包518。结束段可以只是状态“最后”字段以表示上一个数据包已经被发送。
图6b示出包括错误的读序列的实例。存储装置104发送开始段502、后续段504和错误段520。存储装置104可在检测到内部错误或通过第二总线从数字装置102接收到终止命令后开始发送错误段520。错误段520可包括零个或多个状态“忙”字段514和一个或多个指出错误状态的状态“错误”字段522。状态“错误”字段可继续重复直到数字装置102开始终止读过程,例如通过在第二总线120上发送状态请求。
图6c示出无错的写序列的实例。数字装置102发送上层532所示的字段和包而存储装置104发送下层534所示的字段。无错写序列包括开始段528并且可包括零个或多个后续段530。开始段528包括长同步字段510和通过总线106从数字装置102发送的第一数据包512。数据包512后面可以是填充536以允许电子从发射转换到接收,反之亦然。填充时间可大约是两个位单元时间,或在1-2毫微秒之间。
存储装置104用短同步字符540、零个或多个状态忙字段514以及状态就绪字段516作出响应。后续段530具有相似结构,区别是它以短同步字段540而不是长同步字段开始。可以预期,可以发送关于所述最后的段的至少一个状态忙字段,以使数据能够从接收缓冲器中被去除。
图6d示出发生错误或异常中断的写序列的实例。在第一段528之后,数字装置102开始后续的带有短同步字段540和数据包544的段,如果是中止的传输,数据包544可包括无效字符或可很早用中止字符中断。在暂停536后,存储装置104可发送短同步字段540、零个或多个状态忙字段514、一个或多个状态错误字段522以及状态就绪字段516。存储装置104可等待发送状态就绪字段516直到数字装置102已通过第二总线120发送状态请求命令。
图7a-7d示出可由所公开的信息传输协议的另一个实施例产生的通信序列实例。在此实施例中,总线106可包括由存储装置104控制的错误/保留信号线(又可称为“控制线”)。图7a示出无错读序列的实例,其中存储装置104发送开始段602,后面可以是一个或多个后续段604、606。开始段602包括长同步字段和数据包。存储装置104使开始段后面是具有一个或多个短同步字段和数据包的后续段604。存储装置104确证每一个数据包之后的错误/保留信号608并且一旦后续数据包的发送已经准备好就否定对所述信号的确证。一旦否定对所述错误/保留的确证之后完整的短同步已被发送,后续数据包被发送。
图7b示出检测到错误的读序列的实例。内部错误可导致存储装置104提供一系列的短同步字段616和错误/保留信号确证618,它们都可以被维持直到数字装置102通过第二总线120发送状态查询。
图7c示出无错写序列的实例,其中数字装置102发送初始段620、后续段622和623以及结束段624。存储装置104继续控制错误/保留信号608。初始段620包括长同步字段,后面是数据包。存储装置104在每个数据包被接收后确证错误/保留信号608,并否定对所述信号确证以表示何时准备好接收另一个数据包。当确证了错误保留,数字装置发送完整的短同步字段。后续段622包括一个或多个前面是数据包的短同步字段。结束段可包括长同步字段。
图7d示出写序列的实例,其中在后续段622被发送期间或之后不久发生错误。存储装置提供错误信号确证634(在错误/保留线),错误信号确证634可继续直到数字装置102通过第二总线120发送状态查询。后续的确证634可导致数字装置102继续发送短同步字段的序列632直到它确定需要状态查询。
图8a-8d示出可由所公开的信息传输协议的另一个实施例产生的通信序列的实例。在此实施例中,数字装置102和存储装置104可协商确定总线操作速率。所述总线速率对于读操作和写操作可以不同。每种情况下总线速率可以是数字装置和存储装置所支持的速率中较小的速率的最佳估计。
图8a示出无错读序列的实例,其中存储装置104发送第一段702,后面是后续段704、706。第一段可包括后面是数据包的长同步字段。后续段可分别包括前面是零个或多个短同步字段的数据包。存储装置104可发送短同步字段并且当存储装置未准备好发送后续数据包时提供错误/保留信号708的确证710。如果协定的速率高于存储装置支持的速率,会出现这种情况。在理想的情况下,如果选择了适当的速率,短同步字段和错误/保留信号的确证可以被省略。
图8b示出发生错误的读序列的实例。一旦检测到错误,存储装置104提供一个或多个短同步字段的系列712和错误/保留信号706的确证714[图中似乎有两个不同的706,为了清晰起见图中所述参考符号应为708]。所述系列和确证可继续直到数字装置102通过第二总线120发送状态查询。
图8c示出无错写序列的实例,其中数字装置102发送后面是后续段718、702和结束段722的初始段716。错误/保留信号708的控制由存储装置104维持。存储装置104可确证信号708以表出错误或即将来临的溢出。没有任何错误并采取了正确的总线速率,信号708可保留在否定所述确证的状态。
初始段716可包括后面是初始数据包的长同步字段。后续段可分别包括前面是零个或多个短同步字段的后续数据包。结束段722可只包括长同步字段。
图8d示出写序列的实例,其中存储装置104提供信号708的确证726以表出还没有为后续数据包准备好。可使所述确证在后续段720结束之前。一旦检测到确证726,数字装置102暂停数据传输且只发送一个或多个短同步字段的系列724直到信号708被否定确证。一旦通过第二总线120从数据装置102收到状态查询,存储装置104可否定对信号708的确证。
图9a-9c示出可被另一个所公开的信息传输协议的实施例产生的通信序列的实例。在此实施例中,数字装置102和存储装置104通过总线106交换命令和响应包。图9a示出命令-响应交换802的实例,其中在上层804的部分由数字装置102发送而在下层806的部分由存储装置104发送。交换802以数字装置102发送后面是命令包810的长同步808开始。命令包810可表示读命令、写命令或状态查询命令。也可表示其他命令。后面的命令包810是暂停812,在它后面存储装置104发送一个或多个短同步字段814、状态就绪字段818和响应包820。响应包820可表示对命令的确认,并且可表示状态信息和/或对解析命令中成功或失败的指示。
图9b示出无错读序列的实例,它包括命令响应交换802,后面紧跟着连续的一个或多个后续段504、506和结束段508。这些段可如上述图6a所述。
图9c示出无错写序列的实例,它包括命令响应交换802,后面是后续数据准备交换503。数据准备交换530可如上述图6c所述。
也可采用命令-响应交换执行错误处理。例如,存储装置104可通过发送状态“错误”字段指出错误。后面是填充时段,其后数据装置102可如图9a所示启动命令-响应交换以确定错误的性质并作出相应处理。
以上讨论意图说明各种原理和实施例。一旦充分领会上述说明,对于本领域的技术人员很明显可有无数变化和修改。例如,数字装置的作用可由宿主装置或主装置完成,包括计算机系统、数码相机、数字音乐重放机等。存储装置只是一个可从使用所公开的信息传输协议实施例获益的从装置的实例,并且其他例如网络接口、数据捕获卡、扫描器等的外围装置可同样有益。以下权利要求书将被解释为包含所有这种改变和修改。
权利要求
1.一种系统,它包括主装置(102);以及由至少一条总线(106)与所述主装置连接的从装置(104),其特征在于所述主装置(102)采用后面是第一数据包的第一种同步字段向所述从装置传输信息,并且如果在接收另一个数据包之前不需要额外时间,所述从装置(104)用第二种不同类型的后面是状态就绪字段的同步字段响应每一个数据包。
2.如权利要求1所述的系统,其特征在于所述总线(106)是配置成用嵌入时钟信息运送数据流的差动串行数据总线。
3.如权利要求2所述的系统,其特征在于所述从装置(104)还通过配置成以并行格式传输数据的第二总线与所述主装置(102)连接。
4.如权利要求3所述的系统,其特征在于所述差动串行数据总线和所述第二总线共享公共物理导线。
5.如权利要求1所述的系统,其特征在于所述从装置(104)在第一数据包之前采用所述第一种同步字段向所述主装置(102)传输信息。
6.如权利要求5所述的系统,其特征在于所述从装置(104)在发送每个数据包之后发送至少一个状态字段。
7.一种从主装置(102)向从装置(104)传输信息的方法,所述方法包括所述主装置(102)发送第一种同步字段;所述主装置(102)发送数据包;所述从装置(104)用第二种不同的同步字段作出响应;以及如果在接收另一个数据包之前不需要额外时间所述从装置(104)就发送状态就绪字段。
8.如权利要求7所述的方法,其特征在于还包括所述主装置(102)在接收所述状态就绪字段后发送所述第二种同步字段;以及所述主装置(102)发送后续数据包。
9.一种系统,它包括主装置(102);以及由差动串行总线(106)与所述主装置(102)连接的从装置(104),其中,所述从装置(104)采用后面是一个或多个数据字段和表示上一个数据包已被发送的状态字段的同步字段向所述主装置传输信息。
10.如权利要求9所述的系统,其特征在于为了向所述主装置(102)传输信息,所述从装置(104)还采用在除了第一数据包的每个数据包之前发送的状态“就绪”字段以表示后面是后续数据包;以及其中,在向所述主装置(102)传输信息时,所述从装置(104)还根据需要采用状态“忙”字段来表示在发送数据包之前需要额外时间。
全文摘要
公开了信息传输的系统和方法。在一个实施例中,所述系统可包括主装置(102)和从装置(104),它们用总线(106)连接,其中时钟信息嵌入在数据流中。可采用各种流控制技术来补偿主装置和从装置(102、104)所支持的传输速率的差异。可采用两种同步字段来建立和维持时钟捕获。主装置(102)可采用后面是第一数据包的第一种同步字段向从装置(104)传输信息,如果在接收另一个数据包之前不需要额外时间,则从装置(104)可用第二种不同类型的、后面是状态就绪字段的同步字段响应每一个数据包。
文档编号G06F13/42GK1540913SQ20041000337
公开日2004年10月27日 申请日期2004年1月29日 优先权日2003年4月25日
发明者A·M·斯彭塞尔, R·G·梅吉亚, A M 斯彭塞尔, 梅吉亚 申请人:惠普开发有限公司