包封交付系统和方法

文档序号:7620512阅读:180来源:国知局
专利名称:包封交付系统和方法
技术领域
本发明主要涉及包封交付,具体来说,涉及减少包封重发的次数。
背景技术
在许多联网技术中,采用了不同形式的分组接收验证和恢复系统。一些联网技术应当具有很高的带宽和很低的延迟,例如在图形系统、例如计算机游戏中所看的。一种这样的联网协议是Infiniband。
但是,传统的联网协议存在一些缺陷。例如,使用的开销可能很大,随着越来越多的数据流被相应地专用于开销,带宽会减小。此外,因为数据重传所花费的时间增加,延迟会高得难以接受。还有,纠错算法,例如纠错码(ECC)可能要求在消息头中传送太多的信息,或者要求在数据或命令主体中加入或附加太多的信息。
因此,需要一种传送信息的方法,该方法能够解决传统数据传送方法中的至少一部分问题。

发明内容
本发明针对包封发送和包封应答提出。发射机被配置为发送包封。接收机连接到发射机,其中接收机被配置为接收包封并产生应答包封。发送缓冲器连接到发射机。接收缓冲器连接到接收机。重试定时器连接到发射机,其中重试定时器被配置为在接收到与发送包封关联的应答包封时重置。发射机被配置为,如果发射机在重试定时器所确定的选定时间段中没有接收到相应的应答包封,则发射机重发该包封。


为了更完整地理解本发明及其优点,现在参考结合附图给出的下面的详细描述,在附图中图1示意性示出一个系统,在该系统中包封从发射机传送给接收机;图2说明了从发射机到接收机的包封流图;图3A和3B说明了物理层包封组的比特序列;图4说明了同步系统中PLG命令的一种形式;图5A说明了“A”类型数据组的一种形式;图5B1和5B2说明了“B”类型数据组的一种形式;图6A说明了采用包封的第一环境;图6B说明了采用包封的第二环境;图7说明了发送包封的一种方法。
具体实施例方式
下面的讨论中,给出了多种特定细节以辅助对本发明的全面理解。但是,本领域的技术人员会理解,不需要这些特定的细节也可以实现本发明。在其他例子中,以概图或框图的形式示出众所周知的部件,以避免不必要的细节使本发明变得难以理解。此外,在大多数情况下,忽略了与网络通信、电磁信令技术等相关的细节,因为这些细节对完整理解本发明而言并不是必需的,并且在相关领域的普通技术人员的理解范围内。
在本说明书的后续部分中,处理单元(PU)可以是设备中唯一的计算处理器。在这种情况下,PU一般是指MPU(主处理单元)。该处理单元也可以是多个处理单元之一,这些处理单元按照针对给定计算设备开发的某种方法或者算法分担计算负载。在本说明书的后续部分中,除非特别指出,否则处理器的所有标识都采用术语MPU,不管MPU是设备中唯一的计算部件,还是MPU与其它MPU共享计算部件。
还需要注意,除非特别指出,否则这里描述的所有功能都可以在硬件或软件中实现,或者在两者的综合体中实现。但是,在一种优选实施方式中,除非特别指出,否则这些功能由处理器—例如计算机或者电子数据处理器根据代码实现,例如通过编码实现这些功能的计算机程序代码、软件和/或集成电路。
参看图1,公开了一种包封生成和接收系统100。本系统100一般通过减少生成的确认的数量,来减少数据传送中的开销量。接收机一例如收发信机B120只在接收机B120正确地接收到分组“包封”时才予以确认。一般而言,包封是通常包含命令、数据和协议控制(例如序列号、数据流信用量等等)的信息分组。术语包封通常用于指“包封分组”,一般是分组成已知分组大小的信息集合,以纠错算法封装,并且与两个设备之间的可靠交付方式相关联。CRC也嵌入在包封信息中,确保信息能够通过网络正确交付。
如果在接收机120外发生了差错情况,接收机就不会生成确认。相反,接收机只是简单地暂停,而不再进一步处理数据。与此同时,发送方在等待包封的成功接收确认。如果在给定时间段之后没有出现确认,重新发送没有被确认的第一包封。确认本身可以包含另一信息包封。
在系统100中,收发信机A110通过高速链路130以数十吉字节每秒的速度连接到收发信机B120。收发信机A110生成“包封”,发送到收发信机B120。在系统100中,每个包封包含四个物理层组(PLG)。一般而言,PLG可以定义成满足某个预定标准的特定信息分组,下面会予以描述。但是,包封的其他实施方式可以有不同数量的PLG或者其他信息。多个PLG彼此相连,生成一个“包封”。
每个包封中有一个“包封序列号”(ESN)。ESN一般可以定义成在包封最初从发射机A110发送时,分配给包封的序列号。第一包封的ESN可以为0,第二包封的ESN为1,以此类推。此外,每个包封在从收发信机A110发送时,发送缓冲器115中都存储包含该ESN的包封拷贝。
之后,该包封一般通过数据链路130传送给收发信机B120,该包封被放置于接收缓冲器125之内。收发信机B随后通过CRC校验器122进行数据的CRC校验。如果该包封通过了CRC校验,则收发信机B校验包封中的ESN域,当该ESN与成功接收的上一包封中下一序列的ESN匹配时,则该分组被保留在接收缓冲器125中。否则,丢弃该分组,接收机返回到前一状态,就像该包封没有到来一样。如果这两种校验都成功,则发送一个“应答包封”,将接收包封的ESN返回给发送方,确认该包封已被接收。例如,如果ESN为3的包封通过了CRC和ESN校验,则收发信机B120会发回一个返回ESN(RESN)号码为3的包封给收发信机A,表示该包封被成功接收。应答包封自身也可以包含待发送给收发信机A110的其它信息,这样的应答包封自身也需要被确认。
在一些实施方式中,该包封包含收发信机B120要发送给收发信机A的其它信息。这样,四个PLG中的至少一个会是数据类型、指令类型或者其他类型。但是,当除了该包封通过了CRC和ESN校验之外,在收发信机B120没有什么信息要发送给收发信机A110的情况下,则一个其中有RESN和表明该RESN值的RESN比特的空包封是合法的,但分组里没有其它内容。
在另一实施方式中,收发信机B120在返回包封中接合RESN。这种情况如下。因为各种实现的变化,例如与发送带宽130相比,返回带宽140较小,则路径140可能无法支持每个包封都返回一个RESN包封。这样,包含新RESN的返回包封可能无法发送,直至已接收了若干包封。为了支持这种情况,收发信机B120可以总是返回正确接收的最后一个包封的ESN(也就是说,它具有良好的CRC,是下一个按顺序的ESN,并且接收缓冲器还有空间)。
如果收发信机B120在形成返回包封之前正好接收了若干个包封,则所发回并被收发信机A110接收的RESN不会是收发信机A110所看到的上一RESN的序列号增加1。而是会跳过对收发信机A110发送给收发信机B120的若干包封的确认。在这种情况下,收发信机A110会将接收到的RESN看成是对从前面接收的RESN到包括最新接收的RESN的所有发送包封的确认。例如,收发信机A110可能成功地发送了ESN为3、4、5和6的包封,而如果链路130的带宽大于链路140的带宽的4倍,则收发信机B120生成一个返回包封。收发信机B120会返回RESN=6,尽管它之前返回的前一个RESN=2。在看到RESN=6时,收发信机A110会认为ESN为3、4、5和6的包封都被正确发送了,尽管它没有明确接收到RESN 3、4和5。这种机制称为“接合”。
在收发信机A110发送包封时,该包封的一个拷贝被放置在发送缓冲器115中。收发信机A110随后发送下一个包封,并将下一个包封放置在发送缓冲器115中。每个包封都有它自己的标识序号ESN。任何情况下,收发信机A110利用定时器117确认是否在特定的时间段内接收了给定分组的相应RESN。如果收发信机A110在给定的时间段内接收到了发送的ESN的相应RESN,则该包封被认为已被收发信机B120接收,并从发送缓冲器中删除该包封的拷贝。但是,如果在给定的时间段内没有接收到相应RESN,则收发信机A110重发收发信机B120没有确认的包封,然后再重发发送缓冲器115中该包封之后的所有包封。
这种方法的一个优点是,将收发信机A110和收发信机B120之间传送的确认数量减为最小,因为只生成了成功传送的确认。在系统100中,如果生成了空包封,则不需要另一包封来确认。只有包含至少一个非空PLG的包封才会有自己的RESN。例如,从收发信机B120发送给收发信机A110的包封承载了RESN和至少一个非空PLG,那么它同时是一个新包封,收发信机B120具有自己的ESN,收发信机B120充当发射机,而收发信机A110充当接收机。
通常,在系统100中,在包封序列号(ESN)的整个范围内(0到127)以升序给新的非空包封分配包封序列号(ESN),除了ESN在用了最大值127之后,通常绕回到0。空包封的ESN应当为0或者发送的上一ESN的值,因为空包封并不保存以备重发。
在一种实施方式中,收发信机A110不发送其ESN值与发送缓冲器中的第一包封相差了多于64个包封的新包封。这是为了避免在接收机中区分多个ESN时产生混淆,这些ESN是差错发生之后序列的继续或者超时后重传的开始。这样,具有ESN值“C”的新包封只能在以下条件之一满足时(以下表达式不使用模算法)[只适用于ESN和RESN范围为0-127]发送C>上一RESN并且C<(上一RESN+65)或者C<上一RESN并且C<(上一RESN-63)[绕回情况]在发送包封时,除了RESN、RESN_valid、循环冗余校验(CRC)和ENV_Retry比特之外,每个非空包封被放置于FIFO包封重试缓冲器——例如发送缓冲器115中,用于在出错时进行重传。该包封中的包封开始标识比特和保留比特可选地放置于包封重试缓冲器中。
为了进行纠错,可编程的RESN定时器117可以在收发信机A110发送非空包封,并且该定时器没有运行时启动。只要当RESN定时器117重启时,就首先装入它的与实施方式相关的初始值。该方法和定时值的范围与实施方式相关,但应当足够大,以覆盖链路从ESN到RESN的最大往返路程的时间。
RESN被定义为设定RESN有效比特时,次序正确的RESN,该RESN值比收到的上一次序正确的RESN的次序要靠后,并且该包含RESN的包封具有正确的CRC。当收发信机A110接收到次序正确的RESN时,RESN定时器117被重置,则认为一直到其ESN等于接收的RESN值的包封(包含该包封)已被确认,并将它们从包封重试缓冲器——例如发送缓冲器115中删除。该处理被称为引退(Retire)。如果包封重试缓冲器中还剩余包封,则重启RESN定时器117。否则,停止RESN定时器,直至发送了一个新的非空包封。在系统100中,如果ENV_Retry比特等于1,则应用下面的重发序列。
如果RESN定时器117超时,且收发信机A110没有在Retry_Full序列中,则收发信机A110完成对当前包封的传输。这是为了避免对于部分传送的包封存在过多的差错比特,导致CRC校验可能无法检测到错误。收发信机A110增加重试计数器中的值。如果重试计数器超过了与实施方式相关的阈值,则停止链路,并通知软件或固件。通知方法取决于具体的实施方式。在另一种实施方式中,链路能够被重启。如果成功,可以继续正常操作。重试计数器可以由软件定期重置,以便给出差错率(也就是随时间变化的差错数量)。
如果重试计数器没有超过该阈值,则收发信机继续如下处理。收发信机A110通过发送最小72个空闲字符来清除网络。72个空闲字符的值取决于特定实施方式,其中包封的大小是固定的72字节。要求发送的空闲字符的数目大于或等于可以发送的最大包封。总共发送至少72个空闲字符,而不是每个物理链路发送72个空闲字符。在任一8比特物理链路上发送空闲字符时,空闲字符还应当在同一数据链路所用的任何其他8比特物理链路上同时发送。如果包封(4周期x18字节)在较窄的物理链路上通过多个周期(也就是24周期x3字节)传送,则空闲包封的大小在重传第一包封之前发送,从而清除接收机中的重排序逻辑。比特差错可能已导致重排序逻辑错误地检测出包封的开始,这样就采用与包封同样大,或者更大的空闲字符流将出错的包封清除出接收机逻辑,这样接收机逻辑就能够正确检测出第一重传包封的开始。收发信机A110按照与以前发送的相同的次序开始重传包封重试缓冲器115中的包封,并重新启动RESN定时器117。这种处理被称为重试。
在重试或Retry_Full序列期间,如果在重试情况下发送空闲字符时,接收到次序正确的RESN,则收发信机A110能够停止发送空闲字符,并开始发送新的包封,就像重试没有发生一样。如果在重试情况下重发包封时,收发信机A110接收到次序正确的RESN,则收发信机A110会删除相应的包封,并继续重发包封重试缓冲器——例如发送缓冲器115中剩下的包封。
如果收发信机A110在重发包封时接收到RESN,则有两种选择。收发信机A110可以继续重发发送缓冲器中的所有包封,或者在发送当前包封结束时,继续发送序列在接收的RESN之后的包封。如果包封重试缓冲器115中有这些包封的空间,则后续的新包封也会被发送。有关纠错的规定仍然适用;可编程RESN定时器117在发送非空包封时启动。
如果收发信机看到ENV_Retry比特为开,则意味着接收机因为没有空间存放PLG净荷而丢失了包封,这与在传送过程中看到比特差错不同。将这种情况与损坏的包封相区分可以减小重传延迟,因为可以跳过重试传输之前的链路空闲。当收发信机接收到具有正确CRC,并且ENV_Retry比特等于1的包封时,它会进入到所谓的Retry_Full序列。收发信机A110会完成当前包封的传输。收发信机A110随后是会等待RESN定时器117超时,还是在Retry_Full序列开始时停止RESN定时器,这取决于具体的实施方式。收发信机A110随后是否通过发送至少72个空闲字符来清除网络,这也取决于具体的实施方式。收发信机A110从这样的包封开始重传,该包封具有重试指示设置的包封的RESN域中接收到的值的序列中的下一ESN。重试计数器不会因为重传而数量增加,因为物理链路错误没有发生。
在包封重试缓冲器115中的最后一个包封被重传之后,如果RESN定时器117停止了,则重装并重启RESN定时器117。如果RESN是次序正确的RESN,并且在接收到次序正确的RESN时,重置RESN定时器117,认为一直到其ESN等于接收的RESN值的包封(包含该包封)已被确认,并将它们从重试/发送缓冲器115中删除。
在Retry_Full序列中,接收具有次序正确的RESN的包封会导致另一次重传,或者可能阻止包封重试缓冲器115中Retry_Full序列开始时的某个包封被重传。如果在Retry_Full序列中,接收到具有正确CRC并且ENV_Retry比特等于‘1’的包封会导致Retry_Full序列重启,那么上述情况就会发生。
紧接着初始化之后,充当接收机的收发信机B120会立即将它发送的包封中的RESN有效比特设置为‘0’,直至它接收到一个具有正确CRC并且ESN等于0的非空包封。以下规则只在接收到这样的包封之后适用。
充当接收机的收发信机B120追踪一个称为“最后的良好ESN”的值,它对应于接收缓冲器125中有包封的存储空间时接收的最后的良好非空包封。除了空包封之外,下一包封的预期ESN等于(((最后的良好ESN)+1)模128)。收发信机B120检查接收到的每个包封的CRC。
如果包封CRC不正确,则出现以下结果包封被丢弃。该包封没有RESN返回给发射机。最后的良好ESN不变。
如果接收的包封具有正确的CRC,并且是空包封,则出现以下结果认为包封是好的,但需要丢弃,除了RESN域、RESN_valid比特、ENV_Retry比特按照传送规则的要求正常处理。该包封没有RESN返回给发射机。最后的良好ESN不变。
如果接收的包封具有正确的CRC和预期的ESN,并且该包封不是空包封,但是因为接收缓冲器125满了,而接收机120无法处理包封内的所有净荷,则出现以下结果丢弃包封,除了RESN域、RESN_valid比特、ENV_Retry比特按照传送规则的要求正常处理;发送给发射机110的下一个包封的PLG 3中的ENV_Retry比特被设置为‘1’,该包封中放置的RESN具有最后的良好ESN的值。如果没有发出的包封,则空包封用于返回最后的良好ESN和ENV_Retry比特。这是ENV_Retry比特被设置为‘1’时的唯一事件。换句话说,在接收缓冲器满时,在ESN与预期ESN不匹配的情况下,其它包封中的ENV_Retry比特不设置为‘1’。最后,最后的良好ESN不变。
如果CRC和ESN都正确,包封不是空包封,并且接收缓冲器125中有接收数据的空间,则出现以下结果认为包封是好的,将包封的内容转发给它的传输层。最后,最后的良好ESN的量增加(并从127返回0)。
现在参看图2,标号200一般指从收发信机A110(“发射机”)到收发信机B120(“接收机”)的流图。在流210中,ESN为0的包封被发送给接收机。此外,发射机设置接收RESN的定时器。接收机接收ESN分组,将RESN为0发送回发射机。但是,传输需要不连续的时间。同时,发射机在流220中向接收机发送ESN为1的包封。之后,在流220和230之间,接收ESN为0的RESN,这样为ESN 1重启定时器。在流230中,发射机发送包封2。但是,这没有被接收机接收。在流230和240之间,接收包封1的RESN,所以定时器再次被重启。
在流240中,发射机发送ESN为3的包封。但是,这被忽略,因为接收的最后良好包封ESN的号码——ESN 1——并没有紧邻接收的下一良好分组,后者ESN为3。因此,接收机忽略ESN 3的分组,不管根据CRC校验确定它是否为损坏包封。类似地,在流250中,发射机继续发送ESN 4。
但是,在流250之后,ESN 2的RESN定时器超时。一旦该定时器超时,发射机就处于空闲260,直至各个缓冲器被清空。在系统100中,这是72个空闲字符。如果因为接收机没有正确检测到包封的开始(因为包封开始指示符的差错)而发生了传输错误,那么接收机就可能会与包封边界失去同步。72个空闲字符可能会导致接收机清掉所有差错包封,以确保在重试包封到达接收机时,它在包封边界之外。
之后,在流270中,发射机重发另一数据包封2给接收机。接收机随后发送一个确认。在数据流280中,发射机发送包封3给接收机,该发送被确认。同时,在流280之后,发射机接收2的确认RESN。这样,从发送缓冲器115中取出ESN 2。在流290中,发射机向接收机发送ESN 4。同时,发射机接收RESN 3,这样可以从发送缓冲器115中删除ESN 3。
现在参看图3A-图3B,说明了信息包封的一种实施方式。该包封具有四个不同的物理层组(PLG)。PLG具有各种部件。例如,在第一PLG中(PLG组0),有比特0:2和4:6,它们标明了该包封的7比特ESN中的较低6比特(高位在前的表示,比特0是最重要的比特)。
在PLG组0中,比特9-11中,标记了PLG类型。该类型可以是空PLG、命令PLG、数据类型A、数据类型B或者保留。在比特12-143中,是包封的实际数据内容。
比特3和7-8是开始比特,用于确定包封的开始。即使在出现单个比特差错时,也采用三个不同的比特(在本实施方式中位于不同的比特通道)来进行包封检测。当三个开始比特中的两个是1时,接收机检测出包封的开始。
在一些实施方式中,包封可以以不同于图3A-3B所描述的格式(也就是4周期x18字节、8周期x9字节、12周期x6字节等等)在链路上传送。在这样做时,数据传输差错(也就是丢失数据)可能会导致发射机和接收机失去同步。这种情况下,利用开始比特重新同步发射机和接收机。
在包封的PLG组1中,提供了ESN的最重要比特。PLG 1的比特1-7包含RESN号。这与图2所讨论RESN号相同。比特8是RESN_valid域。如果RESN有效域没有被设置,则接收机应当忽略图1的比特1-7中的RESN值。
在链路的初始化过程中,发射机在接收到包封之前,可能必须发送包封。这种情况下,没有‘最后的良好ESN’,所以发射机发送只带有ESN的包封,RESN有效域不激活。在PLG组2(图3B)中,比特1-8承载了该包封的CRC码的较高8比特。
在PLG 3(图3B)中,比特1-8承载了该包封的CRC码的较低8比特。PLG 3还将ENV_Retry比特设置为比特0。
现在参看图4,说明了一种形式的PLG命令的一个实施方式。这是PLG 0、PLG 1、PLG 2等等的数据区域中可以使用的数据的一个例子,它来自每个组的12:143比特。但是,本领域中的技术人员理解,其它命令格式也在本发明的范围内。
该命令涉及到同步多处理环境中所用的命令,因此有窥探标识符(snoop identifier)、窥探响应(snoop response)、传送信息指示。但是,还有另一个感兴趣的值。这是PLG数据中比特0:3的“Ccredit”值。
信用量,例如标记为“Ccredit”或命令信用量,可以一般地定义为发射机允许发送的附加的命令数量。一般采用不同的命令和数据信用量。发射机保持接收机所支持的命令(和/或数据)数量的本地计数。当发送命令(和/或数据)时,本地计数的量减少,当接收到包含附加信用量的包封时,本地计数的量增加。接收机所支持的命令和/或数据的本地计数可以在开机重启(POR)时初始化,或者由接收机以信用量形式发送。在任一种情况下,本地计数通常小于或等于接收机能够接收的命令和/或数据的数量。为了得到最优的性能,接收机必须支持足够多的命令和数据信用量,使得发射机能够送回命令和/或数据分组。信用量的数量跟链路的带宽和延时相关。随着链路的带宽和延时增加,接收机中缓冲数量也在增加。在大多数情况下,保持接收机缓冲器的大部分是空的。利用包封重试比特,接收机能够指示支持的命令和/或数据量多于可用缓冲。这称为推测信用量(Speculative Credit)。在这种情况下,发射机中的本地信用量计数器可以大于接收机所支持的命令和/或数据的数量。
现在参看图5A,描述了类型A数据PLG。类型A数据有两部分;一个消息头和n个数据PLG。消息头定义了数据传送,例如大小、标记等等。消息头包含了类型A数据传送的Dtag、Dcredit和Dsize。下面的n个PLG包含传送的数据以及差错指示符。传送的数量(或n)由消息头中的Dsize域定义。可以要求多个包封传送完整的类型A数据分组。Dcredit域包含了现在可以接收的数据分组的附加数量。Dcredit类似于前一段中定义的Ccredit。
现在参看图5B1和图5B2,示出类型B数据PLG。在一种实施方式中,类型B数据分组类似于类型A数据,不同之处在于大小固定为8个数据PLG以及头信息分布在PLG之间。类型B数据分组需要至少两个包封来传送。如果分组没有在包封的第一PLG中开始,那么需要三个包封。在另一实施方式中,类型B数据传送实际上要求多达8个包封,因为没有限制8个PLG需要顺序发送。命令或其他非数据PLG可以交织在数据PLG中。唯一的限制是,一旦数据传送开始,另一数据传送要直到前一数据传送的所有PLG都被发送之后才会开始。
现在参看图6A,说明了可以使用信息包封的一种环境600。图6A说明了一个处理器620,它连接到相关设备610和非相关设备640。宽带处理器620具有存储器630和635。将处理器620连接到设备610和640的链路使用了本申请所提出的包封结构。链路611采用了命令和数据传送的相关实施方式,而链路641采用了命令和数据传送的非相关实施方式。
现在参看图6B,说明的是可以使用信息包封的另一环境650。图6B给出了一个宽带处理器680,关联连接到另一宽带处理器670。宽带处理器670具有存储器660和665,宽带处理器680具有存储器673和676。宽带处理器680连接到非相关设备690。这是可以应用本发明的两种不同的环境。
现在参看图7,参考数字700一般指示发送包封的方法。在步骤702中,生成包封序列号。在步骤704中,发送具有该包封序列号的包封。在步骤706中,将包封的拷贝放入发送队列。在步骤708中,接收包封。在步骤710中,接收机确定是否出现了差错情况。在步骤712中,生成了应答包封。步骤712中生成的应答包封指示了接收机中是否出现了差错情况,它还包含应答包封序列号,该应答包封序列号与接收的包封序列号相关联。
在步骤714中,确定是否在选定的时间段内接收了应答包封。如果在选定的时间段内接收了应答包封,那么步骤716中,从发送队列中删除包封的拷贝。如果选定的时间段内没有接收到应答包封,那么在步骤718中,发送包封的拷贝。通过增加包封序列号并且重新发送包封,该方法可以在步骤720中继续。通过增加每个发送的包封的包封序列号,该方法还可以在步骤722中继续。
需要理解,本发明可以采用多种形式和实施方式。因此,在不偏离本发明的精神和范围的前提下,可以作出若干变化。这里给出的能力支持多种编程模型的可能性。这种公开不应理解为优选哪种特定的编程模型,而是针对可以构造这些编程模型的根本机制。
前面参考某些优选实施方式描述了本发明,需要注意到,公开的实施方式本身是说明性的,而不是限制性的,从前述公开内容中可以预想到很宽范围内的很多变化、改进、修改和替换,在某些情况下,可以采用本发明的一些特征而不需要相应使用其它特征。基于前面针对优选实施方式的描述,本领域技术人员会认为许多这种变化和改进是有益的。因此,应当理解,后附权利要求应当被广义解释,其解释方式应当与本发明的范围一致。
权利要求
1.一种发送包封并对所述包封应答的系统,包括被配置为发送所述包封的发射机;连接到所述发射机的接收机,其中所述接收机被配置为接收所述包封并产生应答包封;连接到所述发射机的发送缓冲器;连接到所述发射机的重试机制,其中配置所述定时器使之在接收到与所述发送包封相关联的应答包封时重置;并且其中配置所述发射机使之当所述发射机在所述重试定时器所确定的选定时间段中没有接收到对应的应答包封时重发包封。
2.根据权利要求1的系统,其中所述重试机制包括定时器。
3.根据权利要求1的系统,其中所述发送包封包括循环冗余校验(CRC)。
4.根据权利要求1的系统,其中所述发送包封包括包封序列号。
5.根据权利要求1的系统,其中所述应答包封包括应答包封序列号。
6.根据权利要求1的系统,其中所述包封包括四个物理层组(PLG)。
7.根据权利要求6的系统,其中所述四个物理组之一包括数据PLG。
8.根据权利要求6的系统,其中所述四个物理组之一包括空PLG。
9.根据权利要求6的系统,其中所述四个物理组之一包括命令PLG。
10.根据权利要求1的系统,其中所述应答包封包括所有的空PLG。
11.根据权利要求2的系统,其中配置所述发射机使之在所述发射机在选定时间段中没有接收到对应的应答包封时重发包封。
12.根据权利要求1的系统,其中配置所述接收机发送应答包封,该应答包封指示接收缓冲区溢出的情况。
13.根据权利要求1的系统,其中所述发送环路中的所述带宽不同于所述应答环路中的所述带宽。
14.根据权利要求1的系统,还包括连接到所述接收机的接收缓冲器。
15.根据权利要求1的系统,其中采用信用量来控制所述发出的命令的数量。
16.根据权利要求15的系统,其中所述信用量还用于避免重试的阈值级别。
17.根据权利要求16的系统,其中信用量在所述接收机中超额分配,多于所述物理缓冲限制,使得保持了实质上的全带宽。
18.根据权利要求17的系统,还包括至少一个指示比特,指示是否丢弃包封。
19.根据权利要求18的系统,其中所述指示比特还指示由于所述接收机中缺少缓冲空间,从而丢弃包封。
20.一种发送包封的方法,包括产生包封指示号;发送具有所述包封指示号的包封;将所述包封的拷贝放入发送队列;接收所述包封;在接收机中确定是否出现了差错情况;产生应答包封,指示所述接收机中是否出现了差错情况,并且其中所述应答包封还包括应答包封指示号,所述应答包封指示号与所述接收的包封指示号相关联;以及当在选定的时间段内接收到所述应答包封时,则从所述发送队列中删除所述包封的拷贝。
21.根据权利要求20的方法,还包括,当在选定的时间段内没有接收到所述应答包封时,发送所述包封的所述拷贝。
22.根据权利要求20的方法,还包括重发这样的包封,该包封具有的指示号是比所述已重发包封的包封指示号大的下一个值。
23.根据权利要求20的方法,还包括增加每个发送的包封的所述包封号码。
24.一种发送包封的计算机程序产品,该计算机程序产品具有包含计算机程序的介质,该计算机程序包括产生包封指示号的计算机代码;发送具有所述包封指示号的包封的计算机代码;将所述包封的拷贝放入发送队列的计算机代码;接收所述包封的计算机代码;确定接收机中是否出现了差错情况的计算机代码;产生应答包封的计算机代码,指示所述接收机中是否出现了差错情况,并且其中所述应答包封还包括应答包封指示号,所述应答包封指示号与所述接收的包封指示号相关联;以及当在选定的时间段内接收到所述应答包封时,则从所述发送队列中删除所述包封的拷贝的计算机代码。
25.一种发送包封的处理器,该处理器包含的计算机程序包括产生包封指示号的计算机代码;发送具有所述包封指示号的包封的计算机代码;将所述包封的拷贝放入发送队列的计算机代码;接收所述包封的计算机代码;确定接收机中是否出现了差错情况的计算机代码;产生应答包封的计算机代码,指示所述接收机中是否出现了差错情况,并且其中所述应答包封还包括应答包封指示号,所述应答包封指示号与所述接收的包封指示号相关联;以及当在选定的时间段内接收到所述应答包封时,则从所述发送队列中删除所述包封的拷贝的计算机代码。
全文摘要
本发明针对包封发送和包封应答提出。发射机被配置为发送包封。接收机连接到发射机,其中接收机被配置为接收包封并产生应答包封。发送缓冲器连接到发射机。接收缓冲器连接到接收机。重试定时器连接到发射机,其中重试定时器被配置为在接收到与发送包封相关联的应答包封时重置。发射机被配置为,如果发射机在重试定时器所确定的选定时间段中没有接收到相应的应答包封,则发射机重发该包封。这样,能够减少从发射机和接收机发送的包封的总量。
文档编号H04L1/08GK1750449SQ20051008307
公开日2006年3月22日 申请日期2005年7月8日 优先权日2004年9月16日
发明者迈克尔·约瑟夫·卡内韦尔, 斯科特·道格拉斯·克拉克, 戴维·韦恩·希尔, 查尔斯·雷·约翰斯, 托马斯·K·波克兰特, 杰弗里·约瑟夫·鲁迪格, 多萝西·玛丽·西伦 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1