一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

PCI-EXPRESS中的预编码机制的制作方法

2021-10-27 20:06:00 来源:中国专利 TAG:预编 专利申请 申请 中国专利局 美国

pci

express中的预编码机制
1.本技术为分案申请,其原申请是于2019年3月15日向中国专利局提交的专利申请,申请号为201910197581.5,发明名称为“pci

express中的预编码机制”。
2.相关申请的交叉引用
3.本技术要求2018年4月16日提交的标题为“precoding mechanisms for devices coupled by a computer bus”的美国临时专利申请no.62/658,218的优先权,由此出于所有目的通过引用的方式将该美国临时专利申请的全部公开内容整体并入本文,其中与本说明书不一致的部分(如果有的话)除外。
技术领域
4.本发明涉及计算领域,并且具体而言,涉及对要(例如)通过外围部件接口

高速(pcie)链路发射至串行接口上的接收器的数据位进行预编码。


背景技术:

5.随着数据率的提高,串行通信链路持续地推动着电路设置的发展。在利用具有较大值的判决反馈均衡器(dfe)设置的接收器中,某些数据模式(例如,交替的1和0)易受到单个位翻转上的错误传播的影响,这种情况并不少见。如果在这种序列的传输期间确实发生了单个位翻转,那么其将表现为连续错误猝发,并且因循环冗余码(crc)混叠而导致潜在的数据崩坏。
附图说明
6.图1是根据各种实施例的通过示例性串行通信链路连接的示例性发射器和示例性接收器的方框图。
7.图2示出了根据各种实施例的从发射器通过示例性串行通信链路发送至接收器并且在示例性接收器中处理的示例性数据位。
8.图3是根据各种实施例的示例性上游部件和示例性下游部件连同其间的两个重定时器(它们全部通过个体pcie链路连接)的方框图。
9.图4示出了根据各种实施例的经修改的pcie数据流末尾(eds)令牌。
10.图5示出了根据各种实施例的用于接收来自下行链路接收器的预编码请求以及响应于所述请求对加扰数据位进行预编码的过程的操作流的概览。
11.图6示出了根据各种实施例的用于对dfe设置进行分析并通过pcie链路向上行链路发射器发送预编码请求的过程的操作流的概览。
12.图7示出了根据各种实施例的适于实践本公开的计算机装置的方框图。
具体实施方式
13.在实施例中,一种用于串行通信的设备包括收发器,收发器通过串行通信链路接收来自下行链路接收器的预编码请求并且还通过串行通信链路向下行链路接收器发射数
据位。在实施例中,设备还包括耦合至收发器的预编码器,预编码器接收要从所耦合的加扰器发射的数据位的子集的加扰数据位,并且响应于来自下行链路接收器的请求而对加扰数据位进行预编码。在实施例中,预编码的加扰数据位被输出至收发器,以便连同未加扰的其它数据位一起通过串行通信链路发射至下行链路接收器。
14.在实施例中,用于计算的电路卡包括通过pcie链路接收来自电路卡外部的下行链路接收器的预编码请求的收发器、以及对将经由pcie链路发射至下行链路接收器的多个数据位的子集进行加扰的加扰器。在实施例中,收发器响应于来自下行链路接收器的请求而进一步对加扰数据位进行预编码,并将预编码的加扰数据位连同未加扰的数据位一起发射至下行链路接收器。
15.在实施例中,一种系统包括具有下行链路接收器的第一电路部件和具有上行链路发射器的第二电路部件,所述下行链路接收器在基于反向信道的发射器均衡期间通过串行通信链路向第二电路部件的上行链路发射器发送预编码请求,所述上行链路发射器通过所述串行通信链路从下行链路接收器接收所述预编码请求并向所述下行链路接收器发射数据位。在实施例中,发射器对所要发射的预定义类型的数据位的子集加扰,并且其中,响应于来自下行链路接收器的所述请求,所述发射器对加扰数据位预编码,并将其连同其它未加扰数据位一起通过所述串行通信链路发射至下行链路接收器。
16.在下文的描述中,将参考构成了其部分的附图,在附图中,始终以类似的附图标记(或者视情况可能是附图标记的最后两个数字)表示类似的部分,并且在附图中通过举例说明的方式示出了可以实践的实施例。应当理解,可以利用其它实施例,并且可以做出结构和逻辑上的改变,而不背离本公开的范围。因此,不应从限定的意义上理解下文的具体实施方式,并且实施例的范围由所附权利要求及其等价方案限定。
17.可以按照对理解所主张保护的主题最有帮助的方式将各种方法的操作依次描述为多个分立的动作或者操作。但是不应将描述的顺序解释为暗示这些操作必然依赖于顺序。具体而言,可以不按照所呈现的顺序执行这些操作。可以按照不同于所描述的实施例的顺序执行所描述的操作。可以执行各种附加操作和/或可以在附加实施例中省略、拆分或者合并所描述的操作。
18.出于本公开的目的,短语“a和/或b”是指(a)、(b)或者(a和b)。出于本公开的目的,短语“a、b和/或c”是指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或者(a、b和c)。
19.所述描述可以使用短语“在实施例中”,其可以指相同或不同实施例中的一个或多个实施例。此外,相对于本公开的实施例所使用的术语“包括”、“包含”、“具有”等是同义的。
20.而且,应当指出,可以将实施例描述为被描绘为流程图、流图、数据流图、结构图或方框图的过程。尽管流程图可以将各项操作描述为顺序的过程,但是很多操作可以是并行、共同或者同时执行的。此外,可以重新安排操作的顺序。过程可以在其操作完成时终止,但是过程也可以具有附图中未包括的附加步骤。过程可以对应于方法、函数、过程、子例程和子程序等。在过程对应于函数时,其终止可以对应于函数向调用函数和/或主函数的返回。此外,过程可以通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。在通过软件、固件、中间件或微码实施时,可以将执行必要任务的程序代码或代码段存储在机器或计算机可读介质中。代码段可以表示过程、函数、子程序、程序、例程、子例程、模块、程序代码、软件包、类、或者指令、数据结构、程序语句的任何组合、等等。
21.如下文(包括权利要求)中所使用的,术语“电路”可以指或者包括以下各项,或是它们的部分:执行一个或多个软件或固件程序的专用集成电路(asic)、电子电路、处理器(共享、专用或组)和/或存储器(共享、专用或组)、组合逻辑电路和/或可以是提供所描述的功能的其它适当硬件部件。在一些实施例中,电路可以实施一个或多个软件或固件模块或者发挥与由一个或多个软件或固件模块实施的电路相关联的作用。
22.如下文(包括权利要求)中所使用的,术语“存储器”可以表示用于存储数据的一个或多个硬件装置,其包括随机存取存储器(ram)、磁ram、核存储器、只读存储器(rom)、磁盘存储介质、光学存储介质、闪存装置和/或用于存储数据的其它机器可读介质。术语“计算机可读介质”可以包括但不限于存储器、便携式或固定存储装置、光学存储装置、无线信道以及能够存储、包含或者携带指令和/或数据的各种其它介质。
23.如下文(包括权利要求)中所使用的,术语“计算平台”可以被视为与以下各项是同义词并且下文可能偶尔会将术语“计算平台”称为以下各项:计算机装置、计算装置、客户端装置或客户端、移动装置、移动单元、移动终端、移动站、移动用户、移动设备、用户设备(ue)、用户终端、机器类型通信(mtc)装置、机器对机器(m2m)装置、m2m设备(m2me)、物联网(iot)装置、订户、用户、接收器等,并且术语“计算平台”可以描述能够顺次且自动地执行算术或逻辑运算的序列、被配备为将数据记录/存储在机器可读介质上、以及从通信网络中的一个或多个其它装置发射或接收数据的任何物理硬件装置。此外,术语“计算平台”可以包括任何类型的电子装置,例如,蜂窝电话或智能电话、平板个人计算机、可穿戴计算装置、自动传感器、个人数字助理(pda)、膝上型电脑、台式个人计算机、视频游戏控制台、数字媒体播放器、车载信息娱乐(ivi)和/或车载娱乐(ice)装置、车载计算系统、导航系统、自动驾驶系统、车辆对车辆(v2v)通信系统、车辆对任何事物(v2x)通信系统、手提消息传送装置、个人数据助理、电子书阅读器、増强现实装置和/或任何其它类似电子装置。
24.如下文(包括权利要求)中所使用的,术语“链路”或“通信链路”可以指用于传送数据或数据流的任何有形或者无形传输介质。此外,术语“链路”可以与“通信信道”、“数据通信信道”、“传输信道”、“数据传输信道”、“接入信道”、“数据接入信道”、“信道”、“数据链路”、“无线电链路”、“载波”、“射频载波”、和/或表示传送数据的通路或介质的任何其它类似术语是同义词和/或与之等价。
25.如下文(包括权利要求)中所使用的,术语“加扰器”、“预编码器”、“解码器”、“解扰器”、“收发器”、“发射器”和/或“接收器”可以指或包括以下各项,或是它们的部分:利用用于执行本文描述的操作的逻辑进行编程的一个或多个专用集成电路(asic)、电子电路、可编程组合逻辑电路(例如,现场可编程门阵列(fpga))、执行借助于执行本文描述的操作的逻辑由多条编程指令生成的一个或多个软件或固件程序的处理器(共享、专用或组)和/或存储器(共享、专用或组)和/或提供所描述的功能的其它适当部件。
26.如下文(包括权利要求)中所使用的,术语“上行链路”、“上游”以及“下行链路”或“下游”是相对术语,其是指通过串行通信链路(例如,pcie链路)连接的实体、部件或装置,其中,“上行链路”装置向“下行链路”装置发射数据。下文描述的通过串行通信链路连接的装置既包括发射器又包括接收器。因而,链路连接两个部件或装置——其为两条单向链路——一条被称为“上行链路”,另一条被称为“下行链路”。
27.例如,给定中央处理单元(cpu)可以连接至存储装置。向存储装置发射数据的cpu
被称为“下行链路”,其中,cpu发射(tx)并且存储装置接收(rx)。因而,cpu的tx和存储装置的rx形成了下行链路。在另一方向中,在(存储装置到cpu)侧,其为不同于cpu到存储装置下行链路的一组导线/引脚,存储装置发射(tx)并且cpu接收(rx),并且在该情况下,存储装置是cpu的“上行链路”。因而,每个装置具有接收器和发射器,接收器和发射器每者针对不同的方向,并且在第一装置正在向第二装置发射数据时,第一装置相对于第二装置可以是“上行链路”,但是当第二装置正在向第一装置发射数据时,第一装置即为第二装置的“下行链路”。
28.在实施例中,如下文所详述的,可以由一个装置上的rx向其对应的另一装置上的tx做出有关是否开启预编码的请求。因而,预编码可以在上行链路中开启,但是在下行链路中不开启,或可以反之,或者可以在两个方向上都开启,或者在两个方向上都关闭。实际上,在实施例中,接收器向其“链路伙伴”发送预编码请求,使得“链路伙伴”的发射器能够开启预编码。
29.此外,由于下文描述的装置既包括发射器又包括接收器,因而它们有时(包括在权利要求中)被称为“收发器”。收发器是装置中的tx rx。因而,在上文提供的示例中,cpu的tx和rx形成了其收发器,并且装置的tx和rx形成了其自身的收发器。还应当理解,在说发射器“接收来自下行链路接收器的请求”时,指的是这种装置的耦合至发射器的接收器元件实际接收来自下行链路接收器的请求并且在该装置内将其内部传送到发射器。在下文中,包括在权利要求中,为了便于描述,往往可以将该组通信称为“发射器接收来自下行链路接收器的预编码请求”,或者发射器“响应于来自下行链路接收器的请求对加扰数据位进行预编码”,或者“接收器向发射器发送预编码请求”,应当理解,在所有这种情况下,发射器实际上经由其自己的装置或部件的接收器接收所述请求。
30.在实施例中,通过串行通信链路连接至下行链路接收器的上行链路发射器仅在基于反向信道的发射器均衡期间基于下行链路接收器的请求对数据位发射的加扰位进行预编码。在实施例中,下行链路(和/或上行链路)接收器可以在均衡期间请求预编码,具体取决于其目的地反馈均衡器(dfe)设置。在实施例中,接收器用来请求(或者不请求)预编码的标准可以是其dfe设置,例如,较高的h1与h0比(即,在先位对当前位具有高影响)。
31.图1是根据各种实施例的通过示例性串行通信链路连接的两个示例性装置的方框图。如接下来所描述的,根据各种实施例,它们都是收发器,并且因而均具有接收器和发射器,并且每个装置上的每个接收器可以单独请求对其链路的预编码。因而,每个接收器不管处于哪一装置上都是另一装置上的发射器的“下行链路”,因而“上行链路”和“下行链路”是相对术语。参考图1,其示出了装置1 101和装置2 110。装置1包括tx(a)120和rx(a)125,tx(a)120还包括预编码器121,rx(a)125还包括解码器126。装置2 110包括rx(b)130和tx(b)135,rx(b)130还包括解码器131,tx(b)135还包括预编码器136。装置1 101和装置2 110通过串行通信链路140连接。事实上,如图1所示的两个连接装置只是为了举例说明。一般而言,在最终上游装置(例如,装置1)和最终下游装置(例如,装置2)之间可能连接有几个中间装置,并且每个装置可以具有经由相应的串行通信链路分别连接至相邻装置的tx和rx的rx和tx。图3示出了这种情况的示例,如下文所述,其中,在上游部件和下游部件之间有两个重定时装置,并且所有四个装置中的每者经由pcie链路连接到至少一个相邻装置(作为中间装置的两个定时器均连接至两个相邻装置)。
32.继续参考图1,tx(a)120通过串行通信链路141连接至rx(b)130,tx(b)135通过串行通信链路143连接至rx(a)120。对于任一tx及其链接的rx之间的数据传输而言,rx可以(在实施例中)请求预编码。
33.在实施例中,预编码仅在需要时实施,与此同时保留向后兼容性以及现有的编码和链路训练流。在实施例中,对于pcie串行通信链路而言,可以继续利用现有的pcie 128b/130b编码。在实施例中,在实施预编码时,仅对加扰数据位预编码。因而,在实施例中,在启用时,在发送装置上的加扰器的输出处执行预编码,并且在对应的接收装置上的解扰器的输入处执行解码。在实施例中,也可以按照与加扰器和解扰器被重置的方式类似的方式利用下行链路rx发送的电气空闲退出有序集(eieos)对预编码进行重置(例如,关闭)。在实施例中,例如,可以在发射器(tx)均衡阶段(例如,对于pcie而言,上游端口/伪端口的phase 2,以及下游端口/伪端口的phase 3)期间由每个接收器(rx)根据其rx dfe设置独立地做出预编码的决定。一些串行通信链路(例如,pcie)允许由多条通道(1、2、4、8或16)形成两个装置之间的链路,具体取决于带宽需求。因而,对于图1的拓扑结构而言,链路141和143中的每者可以包括多条通道,并且就每个通道而言或者就作为整体的链路而言,可以或者可以不开启预编码。
34.图2示出了根据各种实施例的从发射器通过示例性串行链路发送至接收器并且在示例性接收器中处理的示例性数据位。在进一步描述图2中例示的装置及其部件之前,将首先描述根据各种实施例通过预编码解决的问题。作为示例,假设通过串行通信链路从接收器向发射器发射时钟式模式(交替的1和0)。例如,从tx发送的数据位为:发送的数据=“0101 0101111”。进一步假设,串行通信链路上的错误e为e
链路
=“0100 0000 000”,其中,“1”表示有错的位(带下划线的错误位)。因而,在给定使第二位发生翻转的链路上的错误e
链路
的情况下,rx处接收到的数据为:接收的数据=“0001 0101 111”,其为第二位发生了翻转(由下划线指示)的所发送的原始数据。然而,在一些dfe设置中,例如,在那些具有高h1/h0比的dfe设置中,dfe设置可能对该类型的交替位流产生不利影响,其中,dfe之后的数据=“0010 1010 111”(不正确的位带有下划线),其明显不同于发送的数据=“0101 0101 111”以及上文所述的单个位翻转。在该示例性设置中,dfe具有该效应的原因在于其数据依赖行为,其中,在假设时钟式数据模式时,相邻位(错误后)具有不成比例的效应,并且错误猝发持续。因而,由dfe诱发的错误是第2

7位的翻转,或者e
dfe
=“0111 1111 000”。
35.对这些示例值的总结如下:
36.发送的数据:0101 0101 111
37.接收的数据:0001 0101 111(错误位标有下划线)
38.dfe之后的数据:0010 1010 111(错误位标有下划线)
39.e
dfe
=0111 1111 000
40.因而,对于1和0交替的数据位模式而言,dfe诱发了显著的错误。在实施例中,通过在发送数据位之前对数据位进行预编码并且在接收到所述数据位之后对其进行解码而使dfe的该效应最小化。如上文所指出的,在实施例中,仅对加扰数据位进行预编码。因而,在tx中,预编码发生在加扰之后,并且在对应的rx中,解码发生在解扰之前。接下来将结合图2对此予以描述,图2示出了根据各种实施例的通过串行通信链路连接的示例性接收器和发射器。
41.参考图2,其示出了包括加扰器210、预编码器215和tx电路220的发射器201。如所示,对发射器201的输入是传入的一串数据位202。发射器201还在传输过程中向其下行链路接收器260发送开销位203。传入的一串数据位202具有交替的1010101010模式,确切地讲,具有最易受dfe诱发的错误的影响的位模式类型,如上文所述。发射器201通过串行通信链路205连接至接收器260。在加扰器210的输出处有两条可能的数据路径。一条路径通过预编码器215,其通过(例如)向每个位以及刚好处于该位之前的一位施加异或(xor)函数而对数据位进行预编码,并且另一条旁路数据路径211,一旦数据位被加扰,由tx电路220发射数据位而不必首先对数据位进行预编码。应当指出,路径211是逻辑路径,并且在实施例中,可以通过使数据通过预编码器而不发生任何预编码来实现相同的功能,这与实际的旁路数据路径相反。
42.要指出的是,在图2的示例中,接收器260请求发射器201开启预编码,因而传入的数据位202在加扰器210处受到加扰之后在预编码器215处受到编码,以生成预编码的加扰串204,该预编码的加扰串204然后被发射至接收器260。作为示例,并且为了便于比较,发送与上文提供的无预编码示例中描述的相同的数据位221,即“0101 0101 111”。
43.数据位221在串行通信链路205上遇到与上文所述相同的信道错误,并且如上文所述,该错误为e
链路
=“010 0000 000”。因而,接收器260处的所接收数据227为“0001 0101 111”,其第二位发生了翻转。在接收器260处,通过dfe 240对所接收数据227进行处理,如上文所述,dfe 240在该类型的交替位序列中诱发了错误。因而,dfe之后的数据229为“0010 1010 111”,现在其具有七个错误。如所示,dfe错误函数为e
dfe
=“0111 1111 000”,其表明七个错误。然而,由于接收器260请求了预编码,因而在dfe 240所做处理之后,在解码器241中对dfe之后的数据位229进行解码。在实施例中,解码器241向每个所接收位以及刚好在该位之前接收的位施加xor函数。
44.由于例如在来自发射器201的传入数据位还未被预编码时不需要解码器,因而dfe之后的数据229可以绕过解码器241,并且被经由旁路通路245直接输入至解扰器243。如上文针对旁路通路211指出的,路径245是逻辑通路,并且在实施例中,可以简单地通过使数据通过解码器241而不发生任何解码来实现相同的功能。由于开销位203既不被加扰也不被解码,因而它们只是简单地在dfe 240处的均衡之后被输出,如所示。
45.继续参考图2,根据各种实施例,在数据位在均衡之后被解码时,dfe 240诱发的错误显著减少。因而,如图2所示,解码后的错误为e
dfe_w_预编码
=0100 0000 100,现在e
dfe
的七个错误的顺序串(没有预编码)已经被减少到所述顺序串的开头的一个错误(第2位)和其末尾的一个错误(第9位)。在该示例中,从含有初始8个时钟模式位(0101 0101...)的所发送数据位的原始序列开始,通过使用预编码和解码,e
dfe
的7个错误被减少到e
dfe_w_预编码
的2个错误。
46.对这些示例值的总结如下:
47.发送的数据:0101 0101 111
48.e
导线
:0100 0000 000(1指示错误)
49.接收的数据:0001 0101 111(错误位标有下划线)
50.dfe之后的数据:0010 1010 111(有错位标有下划线)
51.e
dfe
=0111 1111 000(1指示错误)
52.e
dfe_w_预编码
=0100 0000 100(1指示错误)
53.在解码器241处的解码之后,在实施例中,现在解码的位被输入至解扰器243,解扰器243输出原始数据位202。在解码之后,所述位通过解扰器243,此后,在实施例中,施加循环冗余校验(crc)以进行错误检测。
54.图3是根据各种实施例的包括上游部件和下游部件连同其间的两个重定时器(它们全部通过个体pcie链路连接)的示例性平台300的方框图。因而,平台300是比图1所示的平台更复杂的平台。参考图3,四个装置中的每者通过pcie链路连接至一个或者两个相邻装置。因而,仅连接到单个下游装置的上游部件310具有一个发射器tx(a)313和一个接收器rx(a)315。在图3的示例性平台中,每个rx包括解码器,并且每个tx包括预编码器。为了方便起见,没有单独标示预编码器和解码器,因为根据具体情况,它们是其各自的tx或rx的部分。在根据各种实施例的替代平台中,在上游部件和下游部件之间可能连接有更多或者更少的中间装置。
55.继续参考图3,重定时器1 320是上游部件310的下一个下行链路装置。重定时器1 320还经由pcie链路连接至另一下行链路装置,即重定时器2330。因而,重定时器1 320具有面向上游部件310的一个rx/tx对(即rx(b)323和tx(b)325)、以及面向重定时器2 330的另一rx/tx对(即tx(c)327和rx(c)329),它们全部通过pcie链路连接。
56.重定时器1 320的下一个下行链路装置是重定时器2 330。重定时器2330具有面向作为其上行链路的重定时器1 320的一个rx/tx对,并且该对包括rx(d)333和tx(d)335。重定时器2 330还具有面向下游部件350的另一rx/tx对,即,tx(e)337和rx(e)339,它们全部通过pcie链路连接。
57.最后,在平台300的下行链路末端处是下游部件350。其仅连接至最后的中间装置,即重定时器2 330,并且下游部件350因而具有面向重定时器2 330的一个rx/tx对,即rx(f)353和tx(f)355。
58.在实施例中,在平台(例如图3所示的平台)上,对于任何两个装置之间的每条pcie链路而言,通道可以或可以不开启预编码,取决于六个接收器rx(a)315到rx(f))353中的每者的rx dfe设置。在实施例中,这样做允许在每通道和子链路的基础上实现最大的灵活性,如可以基于均衡设置由给定rx确定的。然而,在替代实施例中,其它优化设置也是可能的。例如,装置或部件可以决定总是对其所有的接收器设置预编码,甚至是在达到pcie第五代(gen 5)数据率之前。或者,例如,可以对给定平台(例如,图3所示的平台300)加以约束,使得只有上游或下游端口能够请求预编码。因而,参考图3,根据这种规则,只有rx(a)315和rx(f)353将能够从其所连接的发射器tx(b)325和tx(e)337请求预编码。
59.如所指出的,在实施例中,任何未加扰位(例如,同步报头(sync hdr)和大部分有序集合(os))都不被预编码。借助于对加扰位的预编码,pcie链路仅有的其它暴露是跳跃(skp)os和控制skp os,它们具有时钟模式数据,例如,aa_aa_aa_aa_...并且不被加扰。skp os被用于pcie协议中,以补偿链路两端的数据率之间的频率差异。接收器物理层逻辑子块将包括执行该补偿的弹性缓冲器,并且skp os传输之间的间隔是从tx和tx时钟频率差的绝对值导出的。因而在实施例中,可以将这些os改变为不同于当前用于pci gen 5和更高代传输的那些、但是仍未被加扰的事物,同时维持跨越所有有序集针对第1个符号具有4或者更大的汉明距离的特性,以保持三位翻转检测保证。例如,如87_87_87_87...的序列满足这些
约束条件,并且在实施例中可以使用。替代地,例如,也可以使用序列78_78_78_78...。在实施例中,这样做缓解了时钟模式数据在利用一些dfe设置的情况下导致单个位翻转为猝发错误的风险。在实施例中,可以针对任何gen 5数据率实施该改变,以使事情保持简单。
60.要指出的是,只对加扰位预编码的基本原理是这些位经历crc,并且可能导致数据崩坏。因而,在实施例中,pci sync hdr位不被加扰,并且因而不被预编码。尽管这些(两个)位要么是01b,要么是10b(其显然是交替的“时钟类型”位模式),但是它们受到在先的末尾数据流(eds)框架令牌或者起始数据流(sds)有序集(os)的保护。因而,即使在sync hdr抵达之前,给定接收器确切地知道所预期的是什么sync hdr。在pcie中,例如,出于特定理由对未加扰的os这样做。为了保持这些理由以及避免复杂性,在实施例中,不对它们进行预编码。例如,使用电气空闲退出os(eieos)中的低频时钟模式导致从电气空闲退出。如果对os施加预编码,那么将消除该特性。因而,在链路训练期间,pcie系统依赖于多os连续匹配。在结合未加扰os不具有任何时钟模式时,也就是说在使用对skp os的新编码之后(如接下来所述),这样做提供了足够的保护。
61.为了在数据流期间进一步防止整个os发生混叠,在实施例中,如图4所示,关于新定义的位410(包括新定义的字段420和430)对eds令牌加以修改。先前,这些位在当前pcie协议下是“保留”的。要指出的是,存在三种在数据流期间或者仅仅在数据流末尾处接收到的可能os。这些os包括skp os、eieos和电气空闲os(eios)。在实施例中,使用新的7位eds有效载荷420,其受到4位crc eds p或“ep”crc(并且因而“epcrc”)以及1位奇偶校验位(epp)保护,它们被统称为430。在实施例中,epcrc使用与fcrc的等式等同的等式,而epp则为7位有效载荷和4位epcrc的逐位xor。表1定义了示例性7位eds有效载荷编码,应当理解,替代的编码也是可行的。
62.eds有效载荷[6:0]的编码值eds有效载荷[6:0]值0000_01bos之后为skp os(或者控制skp os)0000_10bos之后为eieos0000_11bos之后为eios其余保留以供未来使用
[0063]
表1
[0064]
在实施例中,接收器可以在进入gen 5数据率之前(例如,在pcie总线上的传输正在使用较低数据率时)请求由发射器开启预编码,或者在实施例中,接收器可以在均衡期间(例如,阶段2或阶段3,取决于其为上游还是下游端口或伪端口)做出请求。
[0065]
在实施例中,如果预编码请求是在均衡期间做出的,那么发射器可以作为响应向请求接收器发出预编码已开启的信号。该信号可以使用新的训练集1(ts1)os,所述ts1 os在其第1个符号方面与标准ts1 os不同(例如,d2与1e对比)。或者,例如,在替代实施例中,ts1 os中的位可以用于指示预编码已开启,并且作为结果,请求接收器可以在接收到eieos之后并且在允许合理的时间来施加均衡请求之后寻找预编码的位流。
[0066]
下面的表2示出了在实施例中,接收器可以如何做出示例性预编码请求(经由ts1 os的符号7、位6),以及示例性预编码可以如何被指示为已经被通过对应的发射器施加(经由ts1 os的符号8、位6)。因而,下面的位6、符号7是接收器请求其发射器开启预编码的位置,并且位6、符号8是对来自请求的发射器的请求的确认。
[0067][0068]
表2
[0069]
现在参考图5,呈现了根据各种实施例的用于接收来自下行链路接收器的预编码请求、以及响应于所述请求在发射加扰数据位之前对所述加扰数据位进行预编码的过程500的操作流的概览。可以由通过串行通信链路连接至下行链路装置的接收器的上行链路装置的发射器执行过程500,所述下行链路装置例如是如上文所述的图1的装置1 1110、图2的发射器201。例如,图1的串行通信链路140或者图2的205可以是pcie链路。或者,例如,过程500可以由tx(a)、tx(b)、tx(c)、tx(d)、tx(e)或者tx(f)中任一者或者全部来执行,它们分别是上游部件310、下游部件380或者中间重定时器320和330的发射器部分,它们全部经由pcie链路连接,如图3所示并且如上文所述。过程500可以包括块510到550。在替代实施例中,过程500可以具有更多或者更少的操作,并且所述操作中的一些可以按照不同的顺序执行。
[0070]
过程500开始于块510,其中,通过串行通信链路连接至下行链路接收器的上行链路发射器通过所述链路接收来自下行链路接收器的预编码请求。预编码请求针对要由下行链路接收器发射的数据位。过程500从块510进行至块520,其中,发射器接收要发射的位的子集的加扰数据位。例如,如图2所示,在pcie协议中,只对数据位加扰。不对诸如训练集或者其它通信信令位的开销位加扰。在实施例中,发射器只对加扰数据位预编码。过程500从块520进行至块530,其中,响应于预编码请求,发射器对加扰数据位预编码。例如,发射器对每个位以及刚好处于该位之前的位施加xor函数。
[0071]
过程500从块530进行至块540,其中,发射器将预编码的加扰位连同未加扰数据位发射至下行链路接收器,例如,所述未加扰数据位是信令位,例如,包括skp os和控制skp os的os,如上文所述。过程500从块540移动至查询块545,其中,判断发射器是否已经从接收器接收到作为对停止当时已就绪的预编码的请求的重置信号。例如,重置信号可以是
eieos,如上文所述。如果查询块545返回“是”,并且因而已经接收到重置信号,那么过程500移动至块550,其中,发射器停止在传输前对加扰位进行预编码。另一方面,如果查询块545返回“否”,那么过程500返回至块520,并且在初始预编码请求仍然生效时继续对接收到的加扰位进行预编码。
[0072]
现在参考图6,呈现了根据各种实施例的用于对dfe设置进行分析并通过串行通信链路向上行链路发射器发送预编码请求的过程600的操作流的概览。可以由通过串行通信链路连接至上行链路装置的发射器的下行链路装置的接收器执行过程600,所述上行链路装置例如是图1的装置2 110、图2的接收器260,它们每者如上文所述。例如,串行通信链路可以是pcie链路。或者,例如,过程600可以由rx(a)、rx(b)、rx(c)、rx(d)、rx(e)或者rx(f)中任一者或者全部来执行,它们分别是上游部件310、下游部件380或者中间重定时器320和330的接收器部分,它们全部经由pcie链路连接,如图3所示并且如上文所述。过程600可以包括块610到650。在替代实施例中,过程600可以具有更多或者更少的操作,并且所述操作中的一些可以按照不同的顺序执行。
[0073]
过程600开始于块610,其中,接收器分析其dfe设置。例如,接收器可以获得其dfe使用的h1值,并且可以进一步根据数据率考虑该值。在实施例中,接收器决定在正常的gen 5数据交换发生之前做出预编码请求。因而,在实施例中,接收器必须假设最坏情况:即,存在1和0的长串,并且可能发生位翻转,并且接收器在达到gen 5速率之前(要么在gen 5的均衡阶段期间,要么甚至在开始gen 5之前)这样做。过程600从块610进行至查询块615,其中,接收器判断在给定dfe设置以及其已经考虑的任何其它因素的情况下预编码是否被准许。例如,接收器可以确定,在给定dfe的h1值和数据率的情况下,h1高到足以准许上行链路装置的发射器进行预编码。如果查询块615返回“否”,那么过程600返回至块610,并重复过程600的另一环,因而此时没有必要从上行链路发射器请求预编码。然而,如果在查询块615返回“是”,那么过程600进行至块620,其中,接收器在所述链路的上行链路侧向上行链路发射器发送预编码请求。在实施例中,预编码请求可以是针对连接接收器与上行链路发射器的整条链路,或者(例如)所述请求可以是针对链路的一条或多条特定通道,如上文所述。过程600从块620进行至块630,其中,接收器通过所述链路从上行链路发射器接收传输。传输既包括预编码的加扰数据位,又包括未加扰的未预编码的位,例如训练集或者其它开销数据。如上文所述,预编码的位可以在发射器上的加扰器的输出处被预编码,并且预编码可以用于使每个所发射的数据位与刚好在该位之前发射的另一数据位进行xor。
[0074]
过程600从块630进行至块640,其中,接收器使用解码器对预编码的加扰位进行解码,例如,所述解码器是图1的解码器126或131、图2的241或者如图3中所示为接收器rx(a)、rx(b)、rx(c)、rx(d)、rx(e)或者rx(f)中的每者的部分。在实施例中,解码器执行预编码操作的逆操作,其在xor预编码的情况下还是对每个位与刚好处于该位之前的一位的xor操作。
[0075]
过程600从块640进行至块650,其中,接收器将预编码的加扰位输出至解扰器。
[0076]
现在参考图7,其中示出了根据各种实施例的适于实践本公开的计算机装置700的方框图。计算机装置包括中央处理器702和存储器桥704。中央处理器702经由互连703连接至存储器桥704。计算机装置700还包括用于耦合至互连701的不同部件(例如,处理器、桥、存储器装置等)之间的通信的处理器

存储器互连701。处理器

存储器互连701可以包括发
送仲裁、地址、数据和控制信息的特定互连线(未示出)。在一些实施例中,中央处理器702通过处理器

存储器桥704耦合至处理器

存储器互连701。在其它实施例中,可以存在耦合至处理器

存储器互连701的多个中央处理器(在该图中未示出多个处理器)。
[0077]
处理器

存储器互连701为中央处理器702和其它装置提供对存储器子系统的访问。在一些实施例中,控制对系统存储器706的访问的系统存储器控制器与处理器

存储器桥704位于同一芯片上。在其它实施例中,系统存储器控制器可以与中央处理器702位于同一芯片上。信息、指令和其它数据可以存储在系统存储器106中,以供中央处理器702以及很多其它可能装置使用。在一些实施例中,图形处理器708通过图形互连710(其在一些实施例中是pci x16互连,如所示)耦合至处理器

存储器桥704。因而,在这种实施例中,图形处理器708和存储器桥704中的每者具有在其各自的发射器中提供的预编码器和在其各自的接收器中提供的解码器,如所示。
[0078]
i/o装置714和716耦合至系统i/o互连718和720并且通过i/o桥712和存储器桥704耦合至处理器

存储器互连701。i/o桥712通过存储器桥704和系统i/o互连718和720耦合至处理器

存储器互连701,以提供用于i/o装置的接口以与处理器

存储器互连701上的装置通信。如所示,pcie链路725将i/o桥712连接至存储器桥704,并且因而i/o桥712也在其发射器中提供有预编码器,并且在其接收器中提供有解码器(未示出)。
[0079]
此外,交换机730经由互连733连接至i/o桥712。交换机730是pcie装置,插入卡731通过pcie链路735连接至所述pcie装置。因而,交换机730和插入卡731中的每者在其发射器中提供有预编码器,并且在其接收器中提供有解码器,如所示。
[0080]
下文将提供本文公开的技术的说明性示例。所述技术的实施例可以包括下文描述的示例中的任何一者或多者及其组合。
[0081]
示例
[0082]
示例1是一种用于串行通信的设备,包括:收发器,其通过串行通信链路接收来自下行链路接收器的预编码请求,并且通过所述串行通信链路向所述下行链路接收器发射数据位;以及预编码器,其耦合至所述收发器,以从耦合的加扰器接收要发射的数据位的子集的加扰数据位。所述预编码器进一步响应于来自所述下行链路接收器的所述请求对所述加扰数据位进行预编码,并且将预编码的加扰数据位输出至所述收发器,以用于连同其它未加扰数据位一起通过所述串行通信链路发射至所述下行链路接收器。
[0083]
示例2是根据示例1所述的设备,其中,所述预编码请求是在基于反向信道的发射器均衡期间从下行链路接收器发送的。
[0084]
示例3是根据示例1所述的设备,其中,在接收到所述预编码请求时,所述收发器进一步经由所发射的训练有序集中的位指示预编码已开启。
[0085]
示例4是根据示例1所述的设备,其中,对加扰数据位进行预编码包括使每个所发射的数据位与刚好在所述发射的数据位之前发射的另一数据位进行xor。
[0086]
示例5是根据示例1所述的设备,还包括对要发射的数据位的子集进行加扰以生成加扰数据位的加扰器。
[0087]
示例6是根据示例1所述的设备,其中,所述收发器按照128:2的比例发射预编码的加扰位和其它未加扰位。
[0088]
示例7是根据示例1所述的设备,其中,所述串行通信链路包括连接所述设备和所
述下行链路接收器的多条通道,并且其中,所述预编码器进一步视情况响应于所述收发器接收到还是未接收到来自所述下行链路接收器的针对所述串行通信链路的每条通道的预编码请求而有选择地实施或不实施针对该通道的预编码。
[0089]
示例8是根据示例1所述的设备,其中,一旦请求了针对所述串行通信链路的预编码,所述预编码器就继续针对该串行通信链路对加扰数据位进行预编码,直到所述收发器从所述下行链路接收器接收到重置信号为止。
[0090]
示例9是根据示例8所述的设备,其中,所述重置信号是电气空闲退出有序集(eieos)信号。
[0091]
示例10是根据示例1所述的设备,其中,所述预编码请求指示预编码将在所述收发器进入预定的数据率之前开始。
[0092]
示例11是根据示例1所述的设备,其中,所述串行通信链路是外围部件互连

高速链路。
[0093]
示例12是一种用于计算的电路卡,其包括:收发器,其通过外围部件互连

高速(pcie)链路接收来自所述电路卡外部的下行链路接收器的预编码请求;以及加扰器,其对要通过所述pcie链路发射至所述下行链路接收器的多个数据位的子集进行加扰,其中,所述收发器响应于来自所述下行链路接收器的所述请求而进一步:对所述加扰数据位进行预编码,并将预编码的加扰数据位连同未加扰数据位一起发射至所述下行链路接收器。
[0094]
示例13是根据示例12所述的电路卡,其中,所述预编码请求是在基于反向信道的发射器均衡期间从下行链路接收器发送的。
[0095]
示例14是根据示例12所述的电路卡,其中,所述收发器进一步经由所发射的pcie训练有序集中的位指示预编码已开启。
[0096]
示例15是根据示例12所述的电路卡,其中,对加扰数据位进行预编码包括使每个发射的数据位与刚好在所述发射的数据位之前发射的另一位进行xor。
[0097]
示例16是根据示例12所述的电路卡,其中,所述收发器按照128:2的比例发射预编码的加扰位和其它未加扰位。
[0098]
示例17是根据示例12所述的电路卡,其中,所述pcie链路包括连接所述收发器和所述下行链路接收器的多条通道,并且其中,所述收发器进一步视情况响应于所述收发器接收到还是未接收到来自所述下行链路接收器的针对所述pcie链路的每条通道的预编码请求而有选择地实施或不实施针对该通道的预编码。
[0099]
示例18是根据示例12所述的电路卡,其中,一旦请求了针对所述pcie链路的预编码,所述收发器就继续针对该pcie链路对加扰数据位进行预编码,直到所述收发器从所述下行链路接收器接收到重置信号为止。
[0100]
示例19是根据示例18所述的电路卡,其中,所述重置信号是电气空闲退出有序集(eieos)信号。
[0101]
示例20是根据示例12所述的电路卡,其中,所述预编码请求指示预编码将在所述收发器进入预定的数据率之前开始。
[0102]
示例21是一种系统,包括:第一电路部件,其具有下行链路接收器以在基于反向信道的发射器均衡期间通过串行通信链路向第二电路部件的上行链路发射器发送预编码请求;以及第二电路部件,其具有上行链路发射器以通过所述串行通信链路接收来自所述下
行链路接收器的预编码请求以及向所述下行链路接收器发射数据位,其中,所述发射器对所要发射的数据位的预定义类型的子集进行加扰,并且其中,响应于来自所述下行链路接收器的请求,所述发射器对加扰数据位进行预编码,并将其连同其它未加扰数据位一起通过所述串行通信链路发射至下行链路接收器。
[0103]
示例22是根据示例21所述的系统,其中,所述串行通信链路包括连接所述上行链路发射器和所述下行链路接收器的多条通道,并且其中,所述上行链路发射器进一步视情况响应于所述上行链路发射器接收到还是未接收到来自所述下行链路接收器的针对所述串行通信链路的每条通道的预编码请求而有选择地实施或不实施针对该通道的预编码。
[0104]
示例23是根据示例22所述的系统,其中,所述下行链路接收器至少部分地基于其判决反馈均衡器设置做出对针对通道或者针对整条链路的预编码的请求。
[0105]
示例24是根据示例21所述的系统,其中,对加扰数据位进行预编码包括使每个发射的数据位与刚好在所述发射的数据位之前发射的另一数据位进行xor。
[0106]
示例25是根据示例21所述的系统,其中,所述预编码请求指示所述上行链路发射器将在按照预定数据率进行发射之前开始预编码。
[0107]
示例26是一种用于计算的设备,其包括:发射装置,其通过外围部件互连

高速(pcie)链路接收来自所述电路卡外部的下行链路接收器的预编码请求;以及用于加扰的装置,其对要通过所述pcie链路发射至所述下行链路接收器的多个数据位的子集进行加扰,其中,所述发射装置还包括用于预编码的装置,并且响应于来自所述下行链路接收器的所述请求,用于预编码的装置对所述加扰数据位进行预编码,并且所述发射装置将预编码的加扰数据位连同未加扰数据位一起发射至所述下行链路接收器。
[0108]
示例27是根据示例26所述的用于计算的设备,其中,所述预编码请求是在基于反向信道的发射器均衡期间从下行链路接收器发送的。
[0109]
示例28是根据示例26所述的用于计算的设备,其中,所述发射装置还包括用于指示的装置,其经由发射的pcie训练有序集中的位指示预编码已开启。
[0110]
示例29是根据示例26所述的用于计算的设备,其中,所述用于预编码的装置包括用于使每个发射的数据位与刚好在所述发射的数据位之前发射的另一位进行xor的装置。
[0111]
示例30是根据示例26所述的用于计算的设备,其中,所述发射装置按照128:2的比例发射预编码的加扰位和其它未加扰位。
[0112]
示例31是一种方法,其包括:由发射器通过外围部件互连

高速(pcie)链路接收来自下行链路接收器的预编码请求;对要通过所述pcie链路发射至所述下行链路接收器的多个数据位的子集进行加扰;以及响应于来自所述下行链路接收器的所述请求:对所述加扰数据位进行预编码,并将预编码的加扰数据位连同未加扰数据位一起发射至所述下行链路接收器。
[0113]
示例32是根据示例31所述的方法,其中,所述pcie链路包括连接所述发射器和所述下行链路接收器的多条通道,并且所述方法还包括:视情况响应于所述发射器接收到还是未接收到来自所述下行链路接收器的针对所述pcie链路的每条通道的预编码请求而有选择地实施或不实施针对该通道的预编码。
[0114]
示例33是根据示例31所述的方法,还包括,一旦请求了针对所述pcie链路的预编码,就针对该pcie链路对加扰数据位进行预编码,直到从所述下行链路接收器接收到重置
信号为止。
[0115]
示例34是根据示例33所述的方法,其中,所述重置信号是电气空闲退出有序集(eieos)信号。
[0116]
示例35是根据示例31所述的方法,其中,所述预编码请求指示预编码将在所述发射器进入预定数据率之前开始。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜