用于集成电路之间的点对点通信的物理接口内的检错的制作方法

文档序号:7650475阅读:251来源:国知局
专利名称:用于集成电路之间的点对点通信的物理接口内的检错的制作方法
技术领域
本发明一般涉及用于在电子设备之间提供可靠数据通信的装置和方法,尤其涉及被配置成在电子设备之间经由物理介质的数据比特点对点传输期间在物理接口处有效地检错的物理接口。在一个实施例中,数据比特的点对点传输采用沿着串行数据链路的低幅、信号传输。
背景技术
诸如集成电路(”IC”)等电子设备之间的点对点通信一般被认为是可靠的,尤其是在使用专用同步时钟线来同步数据传输的情况下。更具体地,许多系统设计人员期望IC之间的通信遵守在IC之间交换的数据比特是相同的数据比特的这一普遍假设。例如,最为常规的处理器IC被设计为不论发送至存储器IC到地址比特是否被正确接收,也不论由处理器IC接收到数据是否与存储器IC发送的数据相同,都对从存储器IC中取出的数据执行动作。但是对于以更快的数据速率和下降的幅度(即,下降的传输功率)发送数据比特的传统物理接口而言,背景噪声对于数据信号的强度的影响会导致信噪比下降,而这表明会阻碍可靠点对点通信的差错的增加。此外,许多系统设计人员使用其中时钟被嵌入在已编码的串行化数据的异步定时技术来实现经由串行数据链路而串行地传送数据的物理接口。具有串行数据链路的高速串行通信技术的示例包括串行ATA(“SATA”)、转换最小化的差分信号传输(“TMDS”)、PCI Express、InfiniBand等等。虽然提供串行数据通信的常规物理接口同时降低了噪声和功率,但是至少一个缺点是常规的串行数据链路易于在传输期间发生数据讹误。
在计算机网络领域,开放系统互连(“OSI”)模型描述了在两个站(或计算设备)之间进行检错和纠错的常用方法。根据该方法,数据链路层基于所发送比特的一帧计算检错码(例如,循环冗余码,“CRC”)。随后,它将检错码作为邻接比特追加至该帧,再将检错码和应用数据比特一并送至物理接口用于线编码(或译码)。线编码的一个示例将8个应用数据比特翻译成10个已编码比特。这种线编码技术通常被称为8B/10B。在执行该线编码之后,串行物理接口将已编码比特经由通信介质驱动至恢复时钟并将比特解码的另一串行物理接口。接收机处的数据链路层随后使用检错码的邻接比特来应用检错和纠错技术。
虽然起作用,但是数据链路层在物理接口之外执行这些检错和纠错过程,由此就会延迟差错的检测和/或解决。同样地,常规的物理接口一般无法很好地适应标准化的检错和纠错。例如,传统的物理接口被优化成提供集成电路之间的同步和并行数据通信。同样地,它们无法容易地适用于提供经由诸如串行数据链路的用于异步和串行数据通信的及时且可靠的数据传送。此外,常规物理接口一般无法有助于以下的至少一种(1)不要求应用参与专用差错处理技术的透明差错检测和恢复技术,以及(2)用于提高经由串行数据链路传送检错码的速率的检错码的有效传输。
考虑到上述情况,期望提供一种能够将上述缺点降至最小并且至少提供检错以及可任选的差错恢复的物理接口、装置和方法。
发明概述公开了一种用于在集成电路(“IC”)的数据通信的发送和/或接收期间在物理接口中进行检错的装置、系统和方法。根据本发明的各个实施例,一种物理接口能够促进经由串行或并行链路的通信,或者它可被配置成使用嵌入式异步时钟或外部同步时钟。
在一个实施例中,一种装置被配置作为接收物理接口来操作,或在接收物理接口内操作。该装置包括被配置成将已编码数据比特的子集解码以产生已解码数据比特的解码器。它还包括被配置成从已解码数据比特中提取物理接口(“PI”)检错比特的物理接口检错比特提取器。由此,该装置使用该物理接口检错比特来确定已编码数据比特是否包括作为差错的至少一个有错误的数据比特。在某些实施例中,该装置包括被配置成在物理层内操作的检错器。在至少一个实施例中,该装置在例如NB/(N+1)B线编码器内有效地发送检错码。已编码数据比特可以基本被直流(“DC”)平衡。此外,已编码数据比特可以被配置为形成发射辐射的频谱特性。同样,这些已编码数据比特还可以包括可用于在接收设备处恢复时钟的嵌入式异步时钟。在某些情况中,该装置包括被配置成在物理层内操作以检测错误的检错器。该检错器在数据链路层或者在开放系统互连(”OSI”)七层参考模型中任何一较高层之前执行检错。在某些情况下,物理接口检错比特是奇偶校验码,而在其它情况下,物理接口检错比特是检错码的一部分。例如,检错码可以是循环冗余校验(“CRC”)校验和。在此情况下的检错器被配置成累积该物理接口检错比特以及来自已编码数据比特的其它子集(即,其它码字)的其它物理接口检错比特以重构检错码。注意,检错器能够被配置成从该物理接口检错比特以及其它的物理接口检错比特中生成CRC校验和。随后,检错器能够将该CRC校验和与检错码进行比较以确定是否发生差错。
在各个实施例中,该物理接口检错比特与已编码数据比特的子集同时在该装置处被接收,并且其它物理接口检错比特中的每一比特也与已编码数据比特的其它子集中的每一子集同时在该装置处被接收,由此减少了装置接收否则会被追加以跟随该已编码数据比特的检错码的时间。在至少一个实施例中,该装置还包括被配置成纠正错误的纠错器。纠错器可以被配置成请求重发该已编码数据比特的子集,或者用信号通知应用专用模块已有差错被检测到以使得该应用专用模块能够解决这一差错。或者,纠错器可以采取默认措施,诸如重新初始化一个或多个IC。注意,已编码数据比特的子集之一可以包括N+m个数据比特,这些数据比特可以被解码以获取N个应用数据比特作为已解码数据比特。同样注意,该装置可以被配置成接收已编码数据比特作为N+2个数据比特并提供N个应用数据比特作为输出。例如,当N为8时,该装置被配置为8B/10B解码器,它提供9个已解码数据比特即8个应用数据比特和一个用于检错的物理接口检错比特。
在本发明的另一实施例中,公开了一种在用于集成电路(“IC”)之间传输数据的物理接口内生成检错码的装置。在一个实施例中,该装置被配置成作为发送物理接口来操作,或在发送物理接口内操作。该装置可包括N比特到N+2(“N比特/N+2”)比特物理层(“PHY”)编码器。该编码器被配置成将物理接口检错比特插入到N个应用数据比特以形成N+1个未编码数据比特,并且将该未编码数据比特编码以产生N+2个已编码数据比特。该装置还包括被配置成生成构成包括该物理接口检错比特在内的检错码的多个比特的检错码生成器。该装置在某些情况下可包括被配置成串行化N+2个已编码数据比特以形成串行的N+2个已编码数据比特,由此将单个检错数据比特与串行的N+2个已编码数据比特交错的串行化器。在至少一个实施例中,该装置包括用于存储包括N个数据比特在内的一组数据比特的存储。检错码生成器被配置成检查该组数据比特以生成检错码。在一具体实施例中,该装置包括发射机(“TX”)纠错器,它被配置成在该发射机纠错器接收到重发请求时重发该组数据比特中到一个或多个子集。
在本发明的又一实施例中,一种物理接口作为集成电路(“IC”)形成于第一衬底上,以检测与形成于第二衬底上的核心IC交换的数据内的传输差错。核心IC是含有用于实现诸如存储器芯片的存储功能之类的应用专用功能的逻辑的另一IC。物理接口包括多个输入端口和输出端口,包括被配置成接收入站(in-bound)的已编码数据比特的第一输入端口子集以及被配置成将入站的已解码数据比特发送至核心IC的第一输出端口子集。该物理接口还包括被耦合在多个输入端口和输出端口之间的一个或多个差错恢复模块。至少一个差错恢复模块被耦合在至少一个第一输入端口子集和至少一个第一输出端口子集之间。该差错恢复模块可任选地包括被配置成检测入站的已编码数据比特内的差错并启动纠正该差错的动作的物理层(“PHY”)解码器。
在本发明的再一实施例中,公开了一种在至少两个集成电路(“IC”)之间的高速串行通信链路。该链路包括用于传送数据的物理介质、耦合至该物理介质的第一端的发射机设备、以及耦合至该物理介质的第二端的接收机设备。它还包括被配置成使用物理接口检错比特来确定差错的检错器。注意,发射机设备包括生成其中编码了物理接口检错比特中的已编码数据比特的N比特/N+2比特编码器,而接收机设备包括将该已编码数据比特解码的N+2比特/N比特解码器、以及使用该物理接口检错比特来确定差错的检错器。注意,发射机和接收机设备可以是以下任何设备中的一种或多种转换最小化的差分信号传输(“TMDS”)设备、高清多媒体接口(“HDMI”)设备、多千兆比特以太网设备(例如,10Gbps以太网,或“10GbE”设备)和/或串行高级技术附件(“SATA”)设备。还注意,发射机和接收机设备可以实现数字可视化接口(“DVI”)和/或低压差分信号传输(“LVDS”)以及任何其它等效的技术方案。
附图简述参考附图连同以下详细描述就能更完整地了解本发明,在附图中

图1A是示出根据本发明至少一个具体实施例的包括差错恢复模块以检测差错的物理接口的框图;图1B示出了根据本发明一个或多个实施例的被实现来提供物理层而非数据链路层处的检错的差错恢复模块。
图2A是根据本发明一个实施例的使用嵌入式时钟和时钟恢复来实现提供物理接口处的可靠数据传送的差错恢复模块的电路的框图;
图2B是根据本发明一个实施例的使用外部时钟来实现提供物理接口处的可靠数据传送的差错恢复模块的图2A所示电路的另一框图;图3是示出根据本发明一个具体实施例的被配置成检测并可任选地用于纠正差错的物理接口的框图;图4是示出根据本发明一个实施例的带有错误检测比特插入和提取的线编码和线解码的功能性框图;图5描绘了根据本发明一个实施例的用于将一组数据比特作为一单元来线编码的示例性流程;图6是示出根据本发明至少一个具体实施例的通过至少重发数据比特来提供检错和纠错的物理接口的框图;图7示出根据本发明至少一个具体实施例的用于实现检错和纠错且不带线编码的替换接收机。
图8描绘了根据本发明一个实施例的纠错器的框图。
相同的标号在附图的各图中指代相应的部分。注意,大多数标号包括一般标识首先引入该标号的附图的最左一位或两位。
示例性实施例的详细描述图1A是示出根据本发明至少一个具体实施例的包括差错恢复模块以检测与线编码/解码相关联的差错的物理接口的框图100。物理接口102和122提供设备101和121之间的物理连接,设备101和121中的每一个都可以是诸如存储器芯片等集成电路或者诸如以太网线卡或网络计算机等电子设备。物理接口102和122分别包括便于数据比特经由物理介质110的发送和接收的线编码器(“LE”)106和线解码器(“LD”)126。在一个实施例中,线编码器(“LE”)106执行线编码(也可称之为“线译码”),它将以二进制表示的数字信息(即,数据比特)翻译成特定码(或码字)以优化该已编码数据比特经由诸如铜导线、光纤、无线电波等特定类型的介质的传输。线解码是从特定码翻译成数据比特的反向过程。线编码器和线解码器都可以被调谐以最优地用特定类型的介质来操作。正如在某些实施例中所使用的,术语编码指的是从数据比特到代码字的翻译以及数据比特对代码字的插入。
物理接口102还包括发射机(“TX”)差错恢复模块104,而物理接口122则还包括接收机(“RX”)差错恢复模块124。这两个差错恢复模块104和124都可用于检测与线编码或解码相关联或一起发生的差错,并能可任选地纠正这些差错。虽然图1A示出了单向通信,但是本领域普通技术人员应该理解,TX差错恢复模块104和RX差错恢复模块124的结构和/或功能可以被组合以形成收发机(“TX/RX”)差错恢复模块(未示出)以支持经由物理介质110的双向通信期间的检错和纠错。在至少一个实施例中,物理介质110提供串行数据链路。无论数据链路是串行数据链路还是并行数据链路,线编码器106和线解码器126都实现线编码/解码以进行以下的一种或多种(1)确保数据流内有适当数目的转换以恢复在数据流中嵌入的时钟;(2)维持d-c平衡;以及(3)提供数据链路的频谱成形以降低电磁辐射。
在一个具体实施例中,差错恢复模块104和124便于在数据比特到达接收机(例如,IC或电子设备)之后立即进行早期的检错,从而能够在例如线解码之前、期间和之后的任意时刻执行检错。由此,物理接口124内的检错能防止设备121对不正确或被破坏的数据比特执行不必要的下游处理直到能够应用检错和纠错技术。有利的是,根据本发明的各个实施例,差错恢复模块104和124能够保存否则将处理破坏的数据比特的计算资源,并且还能够通过减少检测和/或纠正差错所需的时间来加快设备101和121之间的通信。本发明的各个特征还能减少检测差错所需的时间。例如,检错比特能够以与应用数据比特交错的方式而不是像惯例那样在发送的一组数据比特的末端来传送。在至少一个实施例中,线编码器106使用NB/(N+2)B线编码来对用于串行数据链路的数据流编码。此外,线编码器106能够用于在该已编码数据流内嵌入物理接口(“PI”)纠错比特而不影响经由物理介质110传递应用数据比特的速率。有利的是,物理接口102和122能够在物理层(或“PHY”)处完整地或部分地实现低级检错和/或纠错而无需设备101和121解决这些差错。由此,PI纠错信息可以连同应用数据比特一并发送以便对设备101和121的操作是透明的。当然,用于设备101和121的检错和/或纠错可以由其他差错恢复技术在物理接口102和122之外的电路和/或层处补充。由此,应用数据比特可以包括用于较高层(“UL”)差错恢复机制的较高层检错比特。因为检错和/或纠错是在物理层处执行的,所以检错能够有利地以比在物理接口102和122之外执行的情况下更快的速度来执行。
图1B示出根据本发明一个或多个实施例的被实现来提供物理层而非数据链路层处的检错的图1A所示的差错恢复模块104和124。国际标准化组织(“ISO”)的开放系统互连参考模型(“OSI模型”)描述了以下的功能物理层(例如,低级层162)以及包括数据链路层176在内的其它较高层160。图1B示出了用于设备101的OSI模型150和用于设备121的OSI模型152。更具体地,OSI模型150和152中的每一个都包括应用层170、表示层172、网络层174、数据链路层176和物理层178中的一层或多层,所有这些层都有公知的功能,因而无需在此详细讨论。根据OSI模型150,发送IC或设备101(即,“发射机”)的数据链路层176一般在由低级层162中的线编码器编码之前生成高级检错码,而接收IC或设备121(即,“接收机”)的数据链路层176通常在由低级层162中的线解码器解码了经线编码的比特之后检测并纠正差错。更具体地,接收数据链路层176通常将已解码数据比特的比特流组装成帧并在随后基于该帧的内容计算高级检错码,诸如CRC校验和。在一个示例中,成帧器(“FR”)193将邻接的各组比特组装成帧。更具体地,成帧器193在该帧的一字段中建立帧校验序列(“FCS”)码。FCS用于使用例如循环冗余校验(“CRC”)校验和来检测差错。FCS通常与CRC进行比较以确定是否有差错存在。为了说明,考虑以太网帧包括首部比特以及多达1500字节的有效负载,并将CRC校验和作为32个邻接的比特追加到该有效负载的末尾。通常,CRC校验和在物理层178之上的一个或多个较高层160中追加。如图所示,物理层178包括在至少某些实施例中允许低级层能够在不考虑较高层160中所采用的任何高级差错恢复机制的情况下完整地执行低级检错和/或纠错(“差错恢复”)的低级差错恢复功能(“Err Rec”)190和192。在至少一个实施例中,低级差错恢复功能(“Err Rec”)190和192在应用数据比特被临时存入缓冲器(例如,FIFO缓冲器)之前或同时操作以完整地或部分地确定是否有差错出现。如果没有差错存在,则应用数据比特可以被释放至较高层以组装成比特子集。比特子集能够表示以太网帧、用于存储器设备的地址等等。在一具体实施例中,物理层178和数据链路层176之间的分界是应用数据比特退出缓冲器至较高层以便组装的点。
无论是哪一层实现了常规的检错和纠错,传统的高级检错码通常以类似于有效负载的方式来发送。但是根据本发明的各个实施例,低级检错码和有效负载可以被不同地,诸如并行地线解码。如在此使用的,术语有效负载指的是表示由应用层使用的程序指令和/或程序数据的比特(即,应用数据比特)的集合。应用数据比特组成应用数据,并且因此不含有用于控制数据比特传送的控制码。相反,检错码是控制码,因为它们用于控制数据比特传输的可靠性。所以,根据各个实施例,应用数据比特和检错比特两者的部分被同时或几乎同时线解码(和线编码)(尤其是在应用数据比特和检错比特两者的部分被一起编码以形成码字的情况下)。在一个实施例中,线解码器用于翻译码字以形成能够同时包括应用数据比特和物理接口(“PI”)检错比特两者的已解码数据比特。注意,传统的高级检错码按邻接比特组(例如,用于以太网帧的CRC校验和比特)发送并且通常以类似应用数据比特的方式通过线解码器至较高层。因此,常规的高级检错技术通常消耗计算资源以对用于较高层处的差错恢复的控制码进行线解码,而根据本发明的至少一个具体实施例,低级检错码无需同物理层外的其他地方进行通信。
图2A是根据本发明一个实施例的使用嵌入的时钟和时钟恢复来实现提供物理接口处的可靠数据传送的差错恢复模块的电路的框图。在所示的示例中,电子设备200包括分别由RX差错恢复模块(“ERM”)212和RX差错恢复模块(“ERM”)232组成的物理接口210和230。注意,虽然图2A省略了包括TX差错恢复模块的物理接口,但是本领域普通技术人员应该认识到,也能够实现这一TX差错恢复模块,但带有相反的功能。在某些情况下,物理接口210和230在例如输入/输出(“I/O”)环202中形成为电路。I/O环202包括用于将诸如接合线等导线耦合至诸如将信号发送给核心电路204的集成电路之类的外部信号源(未示出)的输入和输出端201。RX差错恢复模块212和RX差错恢复模块232各自耦合至核心电路204以向其传递信号。如某些实施例中所使用的,术语核心电路指的是执行一种或多种核心功能并能被配置成经由物理接口210和230接收输入或发送输出的任何种类的电路。在某些实施例中,核心电路204可由知识产权(“IP”)核心形成,该知识产权(“IP”)核心用硬件描述语言(“HDL”)码(例如,VHDL或Verilog)来表示,或者被表示为网表(netlist)文件。因此,核心电路204是便携的,并且能被容易地插入到大多数从由物理接口210和230提供的低级层检错和纠错中获益的设计中。作为一个示例,考虑核心电路204是任何电路,诸如动态随机存取存储器(“DRAM”)、微控制器或处理器电路、或者可以从物理接口处的检错和纠错的实现中获益的任何种类的电路。有利的是,低级检错和纠错以对核心电路204透明的方式操作(即,物理接口差错恢复无需核心电路204的资源来执行检错和/或纠错)。
物理接口210是被配置成串行地将N+m个已编码比特接收到线解码器检错器(“LD/ED”)214的串行物理接口,该线解码器检错器被配置成对N+m个已编码比特的部分或全部进行解码以形成N个已解码应用数据比特。值“m”表示已编码数据比特的位数与应用数据比特的位数之间的位数差。例如,8B/10B线编码器的m是作为差值的2。线解码器检错器214用于对已编码比特进行线解码,并在有差错可测的情况下检测差错。如果线解码器检错器214检测到差错,则它指示纠错器(“EC”)216采取恰当的差错恢复措施。在一个实施例中,纠错器218被配置成将差错指示信号218发送至一外部IC或设备以警告该外部IC或设备使其能够诸如通过向物理接口210重发该N+m个已编码比特来解决该差错。有利的是,物理接口210和230提供用于核心电路204的检错和纠错而无需修改核心电路204,由此保存了将检错或纠错集成到核心204中所需的工程资源。在另一个实施例中,纠错器218被配置成将差错指示信号220发送到核心电路204中以使其能够纠正该差错。在此情况下,核心电路204包括用于纠正任何所检测到差错的应用专用逻辑244。有利的是,核心电路204中(或其他地方)的应用专用逻辑244的差错处理因而能够启用检错和纠错而无需发送IC或设备(未示出)帮助纠正差错。这就使电子设备200需要的信号导线和/或管脚数最小,尤其是在它被密封在半导体封装中的情况下。在又一实施例中,物理接口210的纠错器216能够纠正差错而无需发送差错指示信号218或220。例如,纠错器能够实现自动纠正差错的前向纠错技术。
接着,考虑外部IC例如是DRAM控制器(未示出)而核心电路204是DRAM存储器的情况。随后,物理接口230可以提供一芯片对芯片接口,该接口在DRAM控制器和DRAM存储器(即,核心电路204)之间交换经纠错的地址和数据而无需(在功能上或结构上)对其进行修改以实现检错和纠错。在某些实施例中,物理接口210和230形成于含有输入-输出(“I/O”)环202的第一衬底上。核心电路204形成于第二衬底上。如果第一和第二衬底是分开的,则物理接口210和230可与核心电路204分开封装。但如果它们形成于同一衬底上,则它们就能作为片上系统(“SOC”)的一部分形成并且能够用单个封装密封在一起。在另一实施例中,物理接口230是被配置成将N+m个已编码比特接收到RX差错恢复模块232中并在随后将该N+m个已编码比特的部分或全部解码以形成N个已解码应用数据比特的并行物理接口。图2A省略了用于RX差错恢复模块232的线解码器检错器和纠错器的细节以简化讨论。注意,虽然图2A描绘了在入站方向287上提供入站数据比特(即,朝向核心204的入站)的物理接口210和230,但是这些相同的物理接口也能够在出站方向289上提供来自核心204的出站数据比特传输(未示出)。注意,在图2A内示出的串行物理接口210和并行物理接口230都被配置成对入站数据比特进行以恢复嵌入其中的时钟等等。在其它实施例中,串行物理接口210或并行物理接口230或这两个接口都能被配置成接收外部时钟而不是嵌入的时钟。
图2B是根据本发明一个实施例的使用外部时钟来实现提供物理接口处的可靠数据传送的差错恢复模块的图2A所示电路的另一框图。不同于图2A中的串行物理接口210或并行物理接口230,图2B的电子设备200包括被配置成接收外部时钟(“Ext.CLK”)274的串行物理接口250。电子设备200还包括被配置成接收外部时钟(“Ext.CLK”)254的并行物理接口270。因为物理接口250和270都能够接收外部时钟信号,所以这些接口由于无需使用嵌入的计时技术而不需要包括时钟恢复电路。由此,在线解码器或线解码过程之后无需布置差错恢复模块252和272。注意,图2B中的元件都能够具有与图2A中类似标号的元件等效的功能和/或结构。
图3是示出根据本发明一个具体实施例的配置成检测并可任选地纠正差错的物理接口的框图。物理接口300包括物理层(“PHY”)线解码器302以及差错恢复模块310,后者由检错比特提取器312、检错器314和纠错器316组成。检错比特提取器312至少在功能上与PHY线解码器302的线解码过程协作,并且由此它在图3中被示为位于PHY线解码器302内。在此示例中,PHY线解码器302至少被配置成接收比特流的N+m个已编码比特(即,码元或码字)并对这些比特的全部或部分进行解码以形成N个已解码应用数据比特。例如,PHY线解码器302能够用于接收10、14、20、66或130个已编码应用数据比特(或“N+2”个比特),随后能够分别对这些比特解码以形成8、12、18、64或128个已解码应用数据比特(或“N”个比特)。这两个比特传统上用于至少时钟恢复和DC平衡。在各个实施例中,PHY线解码器302能够用于接收任何数目的已编码数据比特并在随后将这些比特解码成任何其他数目的应用数据比特。例如,PHY线解码器302能够将已编码数据的80个比特解码以形成64个已解码应用数据比特。
在一具体实施例中,PHY线解码器302将作为N+m个比特的一个子集的N+m-1个已编码比特解码,以产生N个已解码应用数据比特和E个检错比特。随后,检错比特提取器312出于低级检错的目的提取一个或多个物理接口检错比特。例如,检错比特提取器312能够从N+m的数量(例如,10比个特)中提取单个比特以产生N+m-1比特(例如,9比特)的已解码比特,该已解码比特包括N个已解码应用数据比特和E个已解码检错比特。由此,PHY线解码器302被配置成接收N+m个比特并执行产生N个应用数据比特和至少一个检错比特的线解码。有利的是,PHY线解码器302能够被实现为补充或代替常规的10B/8B解码器,该解码器对已解码比特使用常用的10比特码元大小,并且已解码应用比特具有8比特的比特大小。在本发明的各个实施例中,PHY线解码器302检查第九个比特(即,在10以已编码比特和8个已解码应用数据比特之间的两个差值比特之一)来检测差错。合适的PHY线解码器302可以是如在题为“Method and Apparatus forEncoding or Decoding Data in accordance with an NB/(N+1)B Block Code and Methodfor Determining such a Block Code”的美国专利第6,747,580号中描述的N+1比特/N比特解码器,该专利全文出于全部目的合并在此作为参考。注意,虽然图3描绘了PHY线解码器302,但是本领域普通技术人员应该理解,可以构造将N个应用数据比特和E个检错比特编码成N+m个已编码比特的PHY线编码器(即,N比特/N+m比特编码器)来以与图3和别处所述的相反的方式操作。
在提取之后,检错比特提取器312随后将物理接口(“PI”)检错比特(“EDB”)发送给检错器314,后者使用该比特来确定此N+m个已编码数据比特是否包括一个或多个错误的数据比特。检错器314被配置成根据任何数量的检错技术和代码来检测差错。在一个实施例中,检错器314被配置为偶数或奇数奇偶校验器,其中物理接口检错比特是奇偶校验比特(即,偶数或奇数奇偶校验比特)。有利的是,物理接口检错比特在PHY线解码器302处与正被解码的各应用数据比特的子集同时接收。这与将检错码追加至一组已编码数据比特的末端(其中该组可具有远大于N+m个比特的比特大小)的常规检错技术相比,减小了PHY线解码器302接收检错码所需的时间量。在另一个实施例中,物理接口检错比特是CRC校验和的一部分(例如,1比特)。在此情况下,在发送物理接口(未示出)内的检错码生成器被配置成生成物理接口检错比特作为CRC校验和的一部分。如下在图6中讨论的那样,检错码生成器(或其等效方案)能够将CRC校验和的比特提供给PHY线编码器(未示出),该PHY线编码器将物理接口检错比特插入到N个未编码应用数据比特中以产生N+2个已编码数据比特。因此,检错器314用于累积或收集来自已解码的N+m个数据比特的每一子集的物理接口检错比特以重构CRC校验和作为检错码。例如,考虑对于由PHY线解码器302解码的每组10个已编码比特而言,提供CRC校验和的一个比特作为用于每组8个已解码应用数据比特的物理接口检错比特。如果实现了16比特的CRC校验和,则对于每16组的8个已解码应用数据比特(即,对于每128个比特),检错器314CRC能够重构该16比特CRC校验和。随后,检错器314从该128个比特中生成CRC校验和并将该CRC校验和与重构的检错码进行比较以确定是否已出现差错。检错器314能够实现其他检错技术,诸如前向纠错。前向纠错技术的示例包括Reed-Solomon码、汉明码和Bose-Chaudhuri-Hocquenghem(“BCH”)码。
一旦检错器314确定在数据比特传输期间已有差错出现,它就用信号通知纠错器316这一差错已出现。在某些情况下,校错器316用于请求重发已对其检测到差错的已解码应用数据比特。继续前一示例,如果16比特的CRC校验和比较指示在128个已解码应用数据比特中有差错存在,则纠错器316就请求发送物理接口重发这128个比特。在其它情况下,纠错器316能够激活应用专用电路来执行用户定义的差错处理。在至少一个情况中,纠错器316能够进行某种类别的默认纠错动作,诸如重新初始化相关联的IC,诸如上述的核心电路。
图4是示出根据本发明一个实施例的带有检错比特插入和提取的发射机中的线编码和接收机中的线解码的功能性框图。如图400所示,发射机物理接口(“TX”)410包括PHY线编码器412、检错码生成器416、差错比特插入器418、以及用于在例如检错码生成期间维持应用数据比特的可任选缓冲器421。在此示例中,检错码生成器416基于缓冲器421中诸如16比特CRC校验和等应用数据比特来生成检错码。接着,差错比特插入器418从该16比特CRC校验和中选择至少一个检错比特(“EDB”)414并随后将其插入来自缓冲器421的传出的N个应用数据比特的组以形成9个比特。随后,PHY线编码器412将这9个比特编码成10个已编码比特(或码元)。在某些实施例中,PHY线编码器412以将异步时钟嵌入到10个已编码比特中并对这些相同的已编码比特维持零DC偏移和/或最优频谱特性的方式来对检错比特414编码。在一具体实施例中,PHY线编码器412根据在美国专利6,747,580中阐明的编码技术来操作,由此PHY线编码器412把N比特的应用数据编码成N+1个已编码比特。例如,考虑N是数字9。由此,PHY线编码器412能够将8个应用数据比特和1个差错比特(即,9个比特)编码成10个已编码比特而不会影响与8B/10B编码方案相关联的数据速率。注意,在图4中,N可以表示任何非负整数。
发射机物理接口410随后经由物理介质420将已编码比特发送至接收物理接口(“RX”)440的差错比特提取器422。接收物理接口(“RX”)440包括PHY线解码器428、差错比特提取器422、检错码重构器426、检错器430、比较器434以及能够维持已解码应用数据比特对未检测到差错的待决确认的缓冲器431。PHY线解码器428将10个已编码数据比特解码成包括8个已解码应用数据比特和1个已解码检错比特(“EDB”)424在内的9个已解码比特。在各实施例中,PHY线解码器428包括用已编码应用数据比特来恢复经由物理介质420发送的嵌入的时钟的时钟数据恢复电路(未示出)。差错比特提取器422从9个已解码比特中提取检错比特424并将其提供给累积检错比特以及其他物理接口检错比特的检错码重构器426。接着,检错码重构器426重构最初由检错码生成器416生成的检错码。接着,检错器430基于缓冲器431内的一组N个已解码应用数据比特来生成CRC校验和432。随后,比较器434可用于比较CRC校验和432是否与检错码426匹配。如果匹配,就没有差错;如果不匹配,就有差错存在。
图5描绘了根据本发明一个实施例的用于将一组数据比特作为一单元来线编码的流程的一个示例。在某些实现中,发送物理接口能够如流程550所示发送数据,由此数据比特组560就能够被称为一单元(或者一帧等等)。单元560例如可以包括任何数目的控制比特561(例如,x个比特)以及各自为64比特的两个应用数据字563。位于物理层PHY中线编码器之上的较高层设备(未示出)能够被配置成将单元560分为离散的未编码(即,预编码或未编码)比特组562以供PHY线编码器使用。每组562都具有N个比特(例如,8个比特)。检错码生成器(未示出)基于单元560生成检错码570以形成检错码作为例如12比特CRC。PHY线编码器随后能够将物理接口检错比特(“EDB”)572插入到位于组562内或附近的未编码比特流中以形成N+E个比特的组574(例如,N可以是8个比特,而E可以是1个比特)。PHY线编码器随后能够将每个N+E个比特的组574翻译成10比特码字580(例如,已编码数据比特)用于经由诸如串行数据链路等数据链路传输。虽然未示出,但是在接收物理接口处的PHY线解码器能够以类似但相反的方式操作。
图6是示出根据本发明至少一个具体实施例的通过至少重发数据比特来提供检错和纠错的物理接口的框图600。物理接口602和652通过高速串行通信链路650来提供物理连接。物理接口602包括诸如先进先出缓冲器(“FIFO”)604之类的用于存储待发送数据比特的存储。FIFO 604维持所存储的数据以便例如经由一组数据比特来计算检错码。在某些情况下,FIFO 604存储用于在差错出现时重发的数据比特。物理接口602还包括PHY线编码器(“PHY编码器”)610、用于串行化并行数据比特的串行化器(“SER”)612、检错码生成器616、以及发射机(“TX”)纠错器618。基于特定时刻FIFO 604内的数据比特组的内容,检错码生成器616生成检错码,诸如CRC校验和。检错码插入器614分解该CRC校验和并将至少一个比特(例如,一个E比特)作为物理接口检错比特(“EDB”)插入到N个未编码比特606。在操作中,PHY线编码器610对N+E个比特进行编码以形成N+2个已编码数据比特608。串行化器612随后在经由链路650传输N+2个数据比特608之前对其进行串行化。接收物理接口652包括将N+2个数据比特608转换成并行数据比特的解串行化器654。PHY线解码器(“PHY解码器”)656对该已编码比特流进行解码并将已解码数据比特存储在FIFO 658内。检错比特(“EDB”)提取器660提取至少一个比特作为物理接口检错比特(“EDB”)662并将其发送至检错器666。当差错码重构完成时,检错器666就用于确定是否已有差错发生。如果检错器666没有检测到差错,则它指示FIFO 658释放已解码数据比特以供进一步处理。但如果检错器666检测到差错,则它向接收机(“RX”)纠错器668指示差错的存在。在一实例中,RX纠错器668发送请求669以指示TX纠错器618经由链路650重发该内容或其一部分。在另一实例中,RX纠错器668发送请求671给应用专用电路(未示出)来处理该差错。在又一实例中,接收机纠错器668可以使用前向纠错技术或类似的技术来纠正错误。
图7示出根据本发明至少一个具体实施例的用于在没有线解码的情况下实现检错和差错的另一接收机。在接收机(“RX”)700中,发送物理接口(未示出)经由链路702发送数据比特。差错比特提取器704从该数据比特中提取检错数据比特(“EDB”)并收集它们来重构检错码708。与图4中框图400不同,接收机700不像接收机440那样使用PHY线解码器。由此,接收机700无需从嵌入的时钟中恢复时钟信号。如图所示,接收机700被配置成从例如发送设备(未示出)接收外部时钟701。发送设备在经由链路702发送应用数据比特之前将检错比特追加至该应用数据比特。接收机700包括用于基于FIFO 720内的一组应用数据比特来计算检错码,或在此情况下的CRC校验和722的检错器780。(例如,检错器720中的)比较器724随后确定是否已出现传输差错。如果存在差错,则纠错器780就能通过例如请求发送设备重发该数据比特或用信号通知应用专用逻辑它要纠正该错误来采取纠正性动作。
图8描绘了根据本发明一个实施例的纠错器的框图。纠错器800在此示例中包括纠错器控制器822,它控制能够解决差错的一种或多种功能,其中特定功能由用户为特定应用编程。例如,视频存储器应用内象素数据的丢失不像其他应用中的数据丢失那样关键。由此,纠错器控制器822可以选择以下模块中的任一个来实现纠错。重发请求模块824生成送至发送物理接口的请求,以在检测到差错时重发数据比特。应用专用恢复模块814用信号通知应用专用电路发信号启动其由设计人员规定的自定义差错处理例程。但是纠错器控制器822能够选择一默认的差错恢复方案,诸如在检测到差错时重新初始化一IC。这会引起两个物理接口都重新初始化到已知的状态。在各个另选实施例中,纠错器800能够包括频率选择器830、幅度选择器840和编码选择器850。如果物理接口之间的通信链路上的信号摇晃(falter),则频率选择器830能够调整经由链路的数据传输速率以减低差错率。或者,幅度选择器840能够调整信号幅度直到差错率被削减。编码选择器850可用于改变线编码,例如从18B/20B变为8B/10B来减少检测差错的时间。例如,考虑为差错恢复实现32比特的CRC且一次发送CRC的一个比特。则对于18B/20B而言,需要576个应用数据比特(8比特)来形成32比特的CRC(即,8*32=576比特),而对于8B/10B则需要256个应用数据比特。由此,编码选择器850能够提高经由通信信道发送差错码(例如,CRC)的速率。纠错器控制器822能够独立地或组合地选择这些选择器。
以上描述出于解释的目的使用了专门的术语来提供对本发明的全面理解。然而本领域普通技术人员显而易见的是,无需这些具体细节也能实践本发明。实际上,这一描述不应被理解为将本发明的任何特征或方面限于任何实施例;而是一个实施例中的特征和方面可被容易地与其他实施例互换。例如,虽然各实施例的以上描述涉及物理层线解码器,但是该讨论也适用于物理层线编码器以及所有类型的通信链路,以及诸如千兆比特以太网、HDMI、TMDS、DVI和SATA之类的许多类型的通信协议。同样,各实施例也适用于电子电子设备之间的点对点通信以及一对多广播。虽然上述讨论中的一部分涉及串行数据通信,但是本发明的各实施例也能够应用于并行数据通信。
于是,本发明的具体实施例的以上描述仅出于说明和描述的目的。不应该将本发明穷尽或限制在公开的精确形式上;显然,根据以上教示,许多修改和变化都是可能的。对各实施例的选择和描述是为了最好地解释本发明的原理及其实际应用并且由此使得本领域普通技术人员能够如对所构想的特定用途合适地来最好地利用带各种修改的本发明和各实施例。值得注意的是,并非在此描述的每一益处都必须由本发明的每一个实施例来实现;而是任何具体实施例能够提供上述的一个或多个优点。所附权利要求书及其等效技术方案旨在定义本发明的范围。
权利要求
1.一种用于在促进集成电路(“IC”)之间的数据通信的物理接口内检测差错的装置,所述装置包括被配置成将已编码数据比特的一子集解码以产生已解码数据比特的解码器;以及被配置成从所述已解码数据比特中提取物理接口(“PI”)检错比特的物理接口检错比特提取器,所述物理接口检错比特被用于确定所述已编码数据比特是否包括至少一个错误的数据比特作为一差错。
2.如权利要求1所述的装置,其特征在于,还包括被配置成在物理层内操作以检测所述差错的检错器,其中所述已编码数据比特的所述子集包括嵌入的时钟。
3.如权利要求2所述的装置,其特征在于,所述检错器在数据链路层或开放系统互连(“OSI”)七层参考模型中所述物理层之上的任何一较高层之前执行检错。
4.如权利要求2所述的装置,其特征在于,所述物理接口检错比特是奇偶校验比特,所述检错器被配置成校验所述已编码数据比特的奇偶性并且在所述奇偶性不符合的情况下检测到一差错。
5.如权利要求2所述的装置,其特征在于,所述物理接口检错比特是检错码的一部分并且所述检错码是循环冗余校验(“CRC”)校验和,所述检错器被配置成累积所述物理接口检错比特以及来自所述已编码数据比特的其他子集的其它物理接口检错比特以重构所述检错码。
6.如权利要求1所述的装置,其特征在于,还包括N比特至N+2(“N比特/N+2”)比特物理层(“PHY”)编码器,所述编码器被配置成(1)将一物理接口检错比特插入N个应用数据比特以形成N+1个未编码数据比特,并且(2)对所述N+1个未编码数据比特进行编码以产生N+2个已编码数据比特,其中N表示任何整数的数据比特数;以及被配置成生成构成包括所述物理接口检错比特在内的检错码的多个比特的检错码生成器。
7.一种系统,包括通过物理介质耦合至第二集成电路(IC)的第一IC,所述第一IC包括在第一IC的第一衬底部分上形成物理接口以检测与在第二衬底部分上形成的第二IC交换的数据内的传输差错,所述系统还包括被配置成将已编码数据比特的一子集解码以产生已解码数据比特的解码器;以及被配置成从所述已解码数据比特中提取物理接口检错比特的物理接口检错比特提取器,所述物理接口检错比特被用于确定所述已编码数据比特是否包括至少一个错误的数据比特作为一差错。
8.如权利要求7所述的系统,其特征在于,所述物理接口包括多个输入端口和输出端口,包括被配置成接收入站的已编码数据比特的第一输入端口子集以及被配置成将入站的已解码数据比特发送至所述另一IC的第一输出端口子集;以及被耦合在所述多个输入端口和输出端口之间的一个或多个差错恢复模块,其中所述一个或多个差错恢复模块的第一差错恢复模块被耦合在所述第一输入端口子集的至少一个端口和所述第一输出端口子集的至少一个端口之间。
9.如权利要求8所述的系统,其特征在于,所述第一差错恢复模块包括被配置成检测所述入站的已编码数据比特内的差错并启动一纠正所述差错的动作的物理层(“PHY”)解码器。
10.如权利要求9所述的系统,其特征在于,所述多个输入端口和输出端口包括被配置成接收来自所述另一IC的出站的未编码数据比特的第二输入端口子集,以及被配置成发送出站的已编码数据比特的第二输出端口子集,其中所述一个或多个差错恢复模块的第二差错恢复模块被耦合在所述第二输入端口子集的至少一个端口和所述第二输出端口子集的至少一个端口之间,所述第二差错恢复模块包括被配置成生成用于所述出站的已编码数据比特的检错码的PHY编码器。
11.如权利要求7所述的系统,其特征在于,还包括耦合至所述物理介质的第一端的发射机设备,所述发射机设备包括生成其中编码有物理接口检错比特的已编码数据比特的N比特/N+2比特编码器;以及耦合至所述物理介质的第二端的接收机设备,所述接收机设备包括对所述已编码数据比特进行解码的N+2比特/N比特解码器,以及被配置成使用所述物理接口检错比特来确定差错的检错器。
12.如权利要求11所述的系统,其特征在于,所述发射机设备是转换最小化的差分信号传输(“TMDS”)发射机和高清多媒体接口(“HDMI”)发射机而所述接收机设备是TMDS接收机和HDMI接收机。
13.一种用于在物理接口处对数据比特解码以至少检测差错的方法,所述方法包括对具有嵌入的异步时钟的已编码数据比特的一子集解码以产生已解码数据比特;从所述已解码数据比特中提取物理接口检错比特;至少基于所述物理接口检错比特来确定所述已编码比特流包括不正确的比特;以及在所述物理接口处纠正所述差错。
14.如权利要求13所述的方法,其特征在于,确定所述已编码比特流的所述子集包括所述不正确的比特还包括用所述物理接口检错比特来确定所述已编码比特流的子集的奇偶性;如果所述奇偶性不符合预定的奇偶性,则指示存在所述差错。
15.如权利要求13所述的方法,其特征在于,确定所述比特流的所述子集包括不正确的比特包括将所述物理接口检错比特与其他物理接口检错比特组合以形成第一检错码;基于来自所述已解码数据比特的应用数据比特以及来自从所述比特流的其他子集中解码的其他已解码数据比特的其他应用数据比特来生成第二检错码;将所述第一检错码与所述第二检错码进行比较;以及如果所述第二检错码与所述第一检错码不匹配,则指示存在所述差错。
16.一种在用于集成电路(“IC”)之间的数据通信的传输的物理接口内生成检错码的装置,所述装置包括N比特至N+2(“N比特/N+2”)比特物理层(“PHY”)编码器,所述编码器被配置成将一物理接口检错比特插入N个应用数据比特以形成N+1个未编码数据比特,并且对所述N+1个未编码数据比特进行编码以产生N+2个已编码数据比特;以及被配置成生成构成包括所述物理接口检错比特在内的检错码的多个比特的检错码生成器,其中N表示任何整数的数据比特数。
17.一种物理接口,在第一衬底部分上形成为集成电路(“IC”)以检测与形成于第二衬底部分上的另一IC交换的数据中的传输差错,所述物理接口包括多个输入端口和输出端口,包括被配置成接收入站的已编码数据比特的第一输入端口子集以及被配置成将入站的已解码数据比特发送至所述另一IC的第一输出端口子集;以及被耦合在所述多个输入端口和输出端口之间的一个或多个差错恢复模块,其中所述一个或多个差错恢复模块的第一差错恢复模块被耦合在所述第一输入端口子集的至少一个端口和所述第一输出端口子集的至少一个端口之间。
18.一种在至少两个集成电路(“IC”)之间的高速串行通信链路,所述链路包括用于传送通信数据的物理介质;耦合至所述物理介质的第一端的发射机设备,所述发射机设备包括一生成其中编码有物理接口检错比特的已编码数据比特的N比特/N+2比特编码器;以及耦合至所述物理介质的第二端的接收机设备,所述接收机设备包括对所述已编码数据比特进行解码的N+2比特/N比特解码器,以及使用所述物理接口检错比特来确定差错的检错器。
19.一种用于在经由并行数据链路的点对点通信期间在物理层处检测传输差错的物理接口,所述物理接口包括用于经由所述并行数据链路接收并行通信数据的并行端口,所述并行通信数据的一子集包括物理接口检错比特;被配置成接收外部时钟以同步所述并行通信数据的接收的外部时钟输入;以及被配置成使用所述物理接口检错比特来确定所述并行通信数据是否包括不正确的比特作为一差错的物理接口检错器;以及被配置成在所述物理接口处纠正所述差错的纠错器。
全文摘要
公开了一种用于在集成电路(“IC”)之间的数据通信的发送和/或接收期间在物理接口内检测差错的的装置、系统和方法。在一个实施例中,一种装置被配置成作为接收物理接口来操作,或者在接收物理接口内操作。该装置包括被配置成对已编码数据比特的一子集解码以产生已解码数据比特的解码器。它还包括被配置成从已解码数据比特中提取物理接口(“PI”)检错比特的物理接口检错比特提取器。由此,该装置使用该物理接口检错比特来确定已编码数据比特是否包括至少一个错误的数据比特作为差错。在某些实施例中,该装置包括被配置成在物理层内操作的检错器。在至少一个实施例中,该装置在例如NB/(N+1)B线编码器内有效地发送检错码。
文档编号H04L1/00GK101035141SQ200710087760
公开日2007年9月12日 申请日期2007年3月8日 优先权日2006年3月9日
发明者B·K·舒米特, L·L·布彻 申请人:晶像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1