CN1703027A - 传递调试信息 - Google Patents
传递调试信息 Download PDFInfo
- Publication number
- CN1703027A CN1703027A CNA2005100746319A CN200510074631A CN1703027A CN 1703027 A CN1703027 A CN 1703027A CN A2005100746319 A CNA2005100746319 A CN A2005100746319A CN 200510074631 A CN200510074631 A CN 200510074631A CN 1703027 A CN1703027 A CN 1703027A
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- link
- tune
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
一种采用串行化器(300)和解串器(400)的数据通信体系结构(200),它减小数据通信等待时间。在一个说明性实现中,数据通信体系结构(200)通过通信链路传递数据。该体系结构维护各种机构(305,405),以便提高数据通信速度以及避免通信链路故障时间。这些机构执行若干功能,其中包括但不限于产生处理调试信息、处理链路标识信息、在通信链路上插入错误以及执行检错。
Description
交叉引用及通过引用的结合
本申请完全或部分地涉及以下美国专利申请:10/756441(代理人档案号:200313774-1/192667),10/756439(代理人档案号:20031780-1/192668),10/756685(代理人档案号:20031378-1/192669),10/756435(代理人档案号:20031784-1/192670),10/756530(代理人档案号:200313948-1/192671),10/756529(代理人档案号:200313969-1/192673),10/756667(代理人档案号:200313971-2/192674),10/756600(代理人档案号:200313932-1/192678),11/XXXXXX(代理人档案号:200313833-2/204284),11/XXXXXX(代理人档案号:200313783-1/204283),以及11/XXXXXX(代理人档案号:200313781-1/204282),交叉引用这些申请并通过引用将其完整地结合于本文中。
技术领域
本发明涉及用于计算机处理器的数据通信体系结构,更具体来说,涉及采用串行化器和解串器的计算机处理器的通信体系结构。
背景技术
高效地工作并且可快速处理数据的计算体系结构一般优于其对应物。这些计算体系结构处理数据的速度可能受到许多因素的限制,包括体系结构的设计、工作条件、所用组件的质量以及计算机体系结构在处理数据时所采用的协议、逻辑和方法。由数据通信体系结构以及计算体系结构的协议中产生的、通过组件的数据的传递中的等待时间也可能影响可处理数据的速度。
许多数据通信体系结构目前用于在计算机体系结构的合作组件(例如计算环境的处理单元内的计算机处理器或者在计算机处理器与诸如数据存储装置等外部组件之间)之间传递数据。例如,IDE/ATA(集成驱动电子电路/高技术配件)和SCSI(小型计算机系统接口)都是与硬盘驱动器(以及其它一些装置,如CD-ROM和DVD驱动器)的常用接口,并且每个都存在若干形式。其它数据通信体系结构包括PCI(外围部件互连)、AGP(图形加速端口)、USB(通用串行总线)、串行数据通信端口和并行数据通信端口。
虽然以上数据通信体系结构的每一个在合作组件之间传送数据时都有效,但这些体系结构的每一种都具有缺点、性能限制,并且可能不是可靠的。明确地说,这类数据通信体系结构不是为处理以高时钟频率(例如数千兆赫兹)传递的大量数据通信而设计的。另外,PCI、IDE和SCSI数据通信体系结构一般要求在传递数据时处理计算的开销,这影响整体数据通信速度。换言之,除了被传递的预期数据之外,还必须传递处理数据的附加开销。因此,在每个时钟周期处理较少的整体数据。
响应对于更高带宽数据通信体系结构的需求,开发了SERDES(串行化器/解串器)数据通信体系结构。SERDES用于根据预定义的方案(例如八位/十位-8b10b编码)对数据编码及解码。编码数据通过一个或多个通信信道从串行化器传递到相应的解串器进行解码。SERDES数据通信体系结构已经表明可提高合作组件之间的数据通信带宽。在此上下文中,SERDES数据通信体系结构设置成用于在合作组件之间传送数据的数据总线。
发明内容
提供一种采用串行化器和解串器的数据通信体系结构,用于在计算环境的计算机处理组件之间传递数据,以便减少等待时间。在说明性实现中,数据通信体系结构包括数据接口、串行化器和解串器。在操作中,来自计算机处理组件的数据由串行化器接收。与数据接口合作的串行化器根据所选编码协议对数据编码,以便传递给解串器。在操作上,串行化器和解串器(SERDES)合作以形成通信链路或通信信道。数据接口还允许数据集合从链路的各端通过链路被传送,提供链路管理和控制信息,对差错保护编码,以及提供用于在通信信道上处理数据的逻辑。
作为示范实现的补充,说明性数据通信体系结构还包括数据缓冲器、训练模块、调试模块、错误插入模块和检错模块。这些监测器和/或模块包括串行化器和解串器的一部分。在工作中,这些监测器和/或模块与数据接口以及串行化器和解串器中包含的指令集合作,以实现若干功能,包括但不限于处理调试信息、处理链路标识信息、在通信链路上插入错误以及执行检错。
本发明的其它特征在下面进一步描述。
附图说明
参照附图进一步描述数据通信体系结构及使用方法,附图中:
图1是根据本文所述系统及方法的一个实现的示范计算环境的框图;
图2是框图,表示示范数据通信体系结构的示范组件的合作;
图3是根据数据通信体系结构的一个示范实现的发送核心的框图;
图4是根据数据通信体系结构的一个示范实现的接收核心的框图;
图5是流程图,表示传递数据时示范数据通信体系结构所执行的处理;
图6是流程图,表示处理调试信息时示范数据通信体系结构所执行的处理;
图7是流程图,表示处理标识信息时示范数据通信体系结构所执行的处理;
图8是流程图,表示作为链路测试的一部分插入错误时示范数据通信体系结构所执行的处理;以及
图9是流程图,表示处理检错时示范数据通信体系结构所执行的处理。
具体实施方式
概述:
为了提供计算环境所需的基础带宽,实现已经转为利用在高频工作的串行化器/解串器(SERDES)点到点数据通信体系结构。在将SERDES数据通信体系结构应用于计算环境的内部数据通信基础设施时,出现许多限制。一般来说,数据通信中的不必要的等待时间源于低效的数据通信体系结构管理。SERDES数据通信体系结构的管理可由数据接口执行,其中,数据接口还收集用于沿SERDES通信链路传递的数据,并提供用于错误数据的检错及处理指令。
本发明提供一种数据接口,供支持数据通信体系结构组件之间双向进行的操作的SERDES链路信道使用。在一个说明性实现中,提供一种机制来收集要从链路的各端通过SERDES链路传送的数据。另外,该机制可用于提供重叠链路管理信息,以便对检错编码,以及将数据编码为适当格式。本文所述的说明性实现的数据接口还维护指导SERDES组件收集、产生、嵌入和/或在SERDES链路组件之间传递特定类型的数据(例如检错信息、链路标识信息、错误信息和调试信息)以便于可靠性测试和/或表征、调试、链路训练以及检查这种数据是否被正确收集和传递的逻辑。
说明性SERDES数据通信体系结构还可采用数据缓冲器来存储数据。在工作中,数据缓冲器可用来存储数据,直到正确的接收通过来自SERDES通信链路的接收端的响应确认为止。在这种情况下,确认可作为SERDES数据通信体系结构的合作组件之间传递的数据的一部分被嵌入。当SERDES组件检测到错误时,数据缓冲器可用来重新发送数据,以便校正错误。
此外,说明性实现可协调多个并行SERDES通信信道的使用。SERDES通信信道可包括在SERDES组件(例如串行化器和解串器)之间的物理链路(例如线路)上工作的逻辑通信链路。当执行检错及其它操作时,说明性SERDES数据通信体系结构可采用备用信道。另外,这种备用信道即使在信道之一出现硬故障时,也可用来保持通信可用性。
说明性计算环境
图1说明根据本文所述的系统及方法的示范计算系统100。计算系统100能够运行各种各样的计算应用180。示范计算系统100主要由可作为软件形式的计算机可读指令来控制,无论这种软件所存储或存取的位置和方式是怎样的。这种软件可在中央处理器(CPU)110中运行,从而使数据处理系统100进行工作。在许多已知的计算机服务器、工作站和个人计算机中,中央处理器110由称作微处理器的微电子芯片CPU来实现。协处理器115是不同于主CPU 110的可选处理器,它执行附加功能或者辅助CPU 110。CPU 110可通过互连112连接到协处理器115。一种常用的协处理器类型是浮点协处理器,又称作数值或数学协处理器,它设计成比通用CPU 110更快更好地执行数值计算。
大家知道,虽然说明性计算环境表示为包括单CPU 110,但这种描述只是说明性的,因为计算环境100可包括多个CPU 110。另外,计算环境100可通过通信网络160或其它一些数据通信方式(未示出)来利用远程CPU(未示出)的资源。
在工作中,CPU 110对指令进行提取、解码及运行,并经由计算机的主数据传输路径、即系统总线105与其它资源之间传递信息。这种系统总线连接计算系统100中的组件,并定义数据交换的媒体。系统总线105通常包括:发送数据的数据线,发送地址的地址线,以及发送中断以及操作系统总线的控制线。这种系统总线的一个实例是PCI(外围部件互连)总线。当今的一些高级总线提供称作总线仲裁的功能,它通过扩展卡、控制器和CPU 110来调节对总线的访问。附加到这些总线并进行仲裁以接管总线的装置称作总线主控器。总线主控器支持还使总线的多处理器配置可以通过添加包含处理器及其支持芯片的总线主控器适配器来创建。
耦合到系统总线105的存储装置包括随机存取存储器(RAM)125和只读存储器(ROM)130。这些存储器包括允许信息被存储和检索的电路。ROM 130一般包含不能被修改的存储数据。RAM 125中存储的数据可由CPU 110或其它硬件装置来读取或改变。对RAM 125和/或ROM 130的存取可由存储控制器120控制。存储控制器120可提供地址转换功能,它在指令运行时把虚拟地址转换为物理地址。存储控制器120还可提供存储器保护功能,它隔离系统内的进程以及隔离系统进程与用户进程。因此,以用户模式运行的程序通常只可存取由其本身的进程虚拟地址空间映射的存储器;它不能存取另一个进程的虚拟地址空间中的存储器,除非已经建立了进程之间的存储器共享。
另外,计算系统100可包含外设控制器135,它负责把指令从CPU110传递到诸如打印机140、键盘145、鼠标150和数据存储装置155之类的外设。
由显示控制器163控制的显示器165用来显示计算系统100所产生的可视输出。这种可视输出可包括文本、图形、动画图形和视频。显示器165可采用基于CRT的视频显示器、基于LCD的平板显示器、基于气体等离子体的平板显示器、触摸屏或其它显示形式来实现。显示控制器163包括产生发送到显示器165的视频信号所需的电子组件。
此外,计算系统100可包含网络适配器170,它可用于把计算系统100连接到外部通信网络160。通信网络160可为计算机用户提供以电子方式传递和传输软件及信息的方式。另外,通信网络160可提供分布式处理,它涉及若干计算机以及在执行任务时工作量分担或者协作努力。大家知道,所示的网络连接是示范性的,并且可采用建立计算机之间的通信链路的其它方式。
大家知道,示范计算机系统100只是本文所述的系统及方法可工作在其中的计算环境的说明,而不是限制本文所述系统及方法在具有不同组件和配置的计算环境中的实现,因为本文所述的创造性概念可在具有各种组件和配置的各种计算环境中实现。
数据通信体系结构:
图2-4描述用于示范计算环境中的说明性数据通信体系结构的框图。说明性数据通信体系结构可实现为计算环境的组件,并且可采用SERDES组件。明确地说,图2表示说明性数据通信体系结构200的框图。如图2所示,数据通信体系结构200包括通过物理链路220协同传递数据230的数据通信接口模块205和210。数据接口通信模块205和210包括至少一个发送核心和至少一个接收核心。物理链路220通过物理连接器225连接到数据通信接口模块205和210。
在工作中,示范计算环境(未示出)与数据通信接口模块205和210合作,在数据通信接口模块205和210之间传递数据。在说明性实现中,数据通信接口模块可驻留在示范计算环境(未示出)内的完全不同的地理位置中,或者可作为示范计算环境(未示出)的印刷电路板(PCB)之一的一部分而驻留。如图所示,数据可在数据通信接口205和210的发送核心与接收核心之间按照所选方向或双向传递,如物理链路220上的箭头232和234以及数据230所示。另外,大家知道,物理链路220还被描绘为具有不同的线宽度,以便表明不同的物理链路220媒体。
此外,如图所示,虚线框215表示示范数据通信底板的组件。在所提供的实现中,底板215表示为具有用于传递数据的一对发送-接收核心。明确地说,数据由数据通信接口205的发送核心235来处理,以便通过物理连接器225和物理链路220传递到数据通信接口210的接收核心245。同样,数据可经过处理,以便由数据通信接口210的发送核心250传递到数据通信接口205的接收核心240。此外,发送-接收核心对235、240和245、250可合作以形成通信信道。作为通信信道,发送-接收核心对可经过校准和训练,从而根据所选编码协议、如八位-十位(8b10b)编码来处理数据。
此外,如图2所示,数据230可包含多个数据包。明确地说,数据230可包含首标部分和数据包部分。数据包部分还可包含小数据包。大家知道,在所提供的说明性实现中,小数据包可视作大小比正常的完整大小的数据包更小的数据包。在工作中,各种数据、控制、训练和信道管理信息可作为数据230通过示范数据通信体系结构200传递。
图3表示示范发送核心环境300的框图,描绘它的组件及其合作。如图3所示,示范发送核心环境300包括范围从发送核心300-1到发送核心300-n的多个发送核心。发送核心300-1表示为包括逻辑块、分别为从串行化器1到串行化器n、驱动器1到驱动器m的多个串行化器和驱动器。另外,发送核心300-1与外部数据通信组件(未示出)合作以获得时钟信号CLK。另外,如图所示,发送核心300-1还包括逻辑,它保持指令集,以便指示发送核心300-1的组件(如串行化器1)执行符合数据通信操作的功能。发送核心300-1的逻辑还可用于维护在数据传递操作过程中使用的一个或多个模块和机构,其中包括但不限于数据缓冲器(未示出)、调试模块305、训练模块310、错误插入模块315和检错模块320。
在工作中,数据作为输入提供给发送核心300-1的串行化器之一。数据根据所选编码协议(例如8位-10位编码)来编码,并准备用于由发送核心的输出信道之一处的发送核心的驱动器之一传递给合作的数据通信组件。编码协议可采用CLK信号在CLK信号的所选周期内对多个位编码。例如,数据A可由发送核心300-1的串行化器1根据所选编码协议来编码,并由驱动器1准备用于传递,以便按照发送核心300-1的逻辑所提供的指令在信道A输出产生编码数据。同样,数据B可由发送核心300-1的串行化器2根据所选编码协议来编码,并由驱动器2准备用于传递,以便在信道B产生编码数据。这种编码过程和数据通信准备在发送核心300-1的其余串行化器和驱动器以及发送核心环境300的其它发送核心上执行。
图4表示示范接收核心环境400的框图,说明它的组件及其合作。如图4所示,示范接收核心400包括范围从接收核心400-1到接收核心400-n的多个接收核心。接收核心400-1表示为包括逻辑块、分别为从解串器1到解串器n、从驱动器1到驱动器m的多个解串器和驱动器。另外,接收核心400-1与外部数据通信组件(未示出)合作以获得时钟信号CLK。另外,如图所示,接收核心400-1还包括逻辑,它保持指令集,以便指示接收核心400-1的组件(如解串器1)执行符合数据通信操作的功能。接收核心400-1的逻辑还可用于维护在数据通信操作过程中使用的一个或多个模块及机构,其中包括但不限于数据缓冲器(未示出)、调试模块405、训练模块410、错误插入模块415和检错模块420。
在工作中,编码数据作为输入提供给接收核心400-1的解串器之一。数据根据所选解码协议(例如10位-8位)来解码,并由接收核心的驱动器之一准备用于传递给接收核心的解串器的输出之一处的合作数据通信组件。解码协议可采用CLK信号在CLK信号的所选周期中对多个位解码。例如,编码数据A可由接收核心400-1的解串器1根据所选解码协议来解码,并由驱动器1准备用于传递,以便按照接收核心400-1的逻辑所提供的指令产生数据A。同样,编码数据B可由接收核心400-1的解串器2根据所选解码协议来解码,并由驱动器2准备用于传递,以便产生数据B。这种解码过程和数据通信准备在接收核心400-1的其余解串器和驱动器以及发送核心环境400的其它接收核心上执行。
结合图3和图4描述示范通信信道环境,使得数据经编码用于由一个或多个发送核心进行传递,以便由一个或多个接收核心进行解码及后续处理。虽然描述为独立组件,但大家知道,发送核心和接收核心可驻留在单个通信组件中(参见图2的数据通信接口205)。此外,发送核心和接收核心可成对工作,从而形成一个或多个双向数据通信信道。
通过通信链路传递数据:
图5表示在建立通信信道时示范数据通信体系结构200所执行的处理。如图所示,处理在框500开始,并进入框505,在其中,通信组件被加电以便工作。由此,处理进入框510,在其中,通信链路在数据通信体系结构组件之间被建立。然后,通信链路在框515经过训练,以便形成通信信道。训练数据则在框520通过通信信道发送,以便测试通信信道。然后,在框525执行检查,以便确定通信信道测试是否成功。如果是成功的,则处理进入框540,在其中,进行检查以确定是否存在要通过成功测试的通信信道传递的数据流。如果在框540确定没有要传递的数据,则处理返回到框540的输入。但是,如果存在要通过成功测试及训练的通信信道传递的数据流,则处理进行到框545,在其中,数据流由串行化器来编码。然后,编码数据流在框550通过通信信道传递到合作解串器。然后,在框555,数据流由解串器来解码。在框560,进行检查以确定数据流的每个小数据包是否成功传递。如果小数据包被成功传送,则处理返回到框540,并由此继续进行。但是,如果小数据包没有成功传递,则处理返回到框530,在其中,通信信道被重新训练,并由此继续进行。
但是,如果在框525确定通信信道测试不成功,则处理进入框530,在其中,通信链路被重新训练。由此,处理进入框535,在其中,控制信息在通信链路组件之间传递。由此,处理返回到框520,并由此继续进行。
在工作中,说明性实现规定,训练序列由通信链路的解串器来管理。明确地说,初始训练在识别解串器中的所选软件类型寄存器的写入的指示时被认为完成。这时,数据由通信信道的串行化器驱动到链路上。在解串器操作的上下文中,解串器保持一个或多个指令集,它们指导解串器检测链路上的活动,以便发信号通知合作的串行化器开始初始化。通信信道的解串器和串行化器保持至少一个指令集,以便指导信道加电。在成功加电时,每个信道自测试被执行,从中得到的结果被收集和比较。然后,指令集指导串行化器和解串器传递解串器预期的所选数据模式,它允许解串器确定位单元分组,供串行化器和解串器所用的编码和解码协议使用。
另外,第二可识别数据模式被传递给解串器,解串器将它归结为小分组数据通信。通过设置小分组数据通信,解串器可用于使小数据包一起匹配在符合最初传递小数据包的方式的分组中。一旦第二数据模式被成功传递及处理,控制信号则从解串器发送到通信链路的串行化器,表明该训练已经完成。在这时,数据包可通过已训练信道传递。
此外,说明性实现规定,如果通信链路上出现错误,则链路可执行重新训练过程。链路重新训练与前面对通信信道组件加电的外部的上述链路训练相似。重新训练可通过许多事件来触发,其中包括但不限于通信链路上的错误的识别,或者通过接收由通信链路的接收端所产生的链路上的错误信号来触发。
调试操作:
图2的示范数据通信体系结构200还能够传递调试数据以便处理和分析。在SERDES数据通信体系结构的上下文中,对示范数据通信体系结构的内部设计的更大可视性可转换为SERDES数据通信体系结构设计和实现的更有效调试和验证。在调试操作期间,在SERDES数据通信体系结构中,通过体系结构的各种组件对调试数据进行路由,以便处理和分析。调试信息的适当分级和卸载在调试数据通过体系结构成功传播时发生。
在所提供的实现中,调试数据可从包括发送核心(图3的300)或接收核心(图4的400)的任一个的一部分的内部调试数据硬件组件发出。按照一个或多个指令集来处理调试数据,以便在示范通信体系结构的合作组件之间传播调试数据。在所提供的实现中,示范体系结构可接收具有第一所选数量的位的调试数据,并将这种调试数据组对,以便创建具有第二所选数量的位的修改后调试数据(例如调试数据包)。成对的调试数据则可被缓冲以使它与通信链路频率匹配,然后再通过通信链路传递。在接收端,成对的调试数据可被捕捉,并被分解为具有第一所选数量的位的数据包。
包含在调试操作中的可以是由示范通信体系结构的示范通信链路的接收端收集链路的常规非调试事务并向内部调试逻辑提供全部或部分非调试事务供以后传递(例如在示范通信体系结构的不同示范输出链路上重复的事务数据)的能力。这样,调试逻辑有助于通过示范数据通信体系结构对数据的更有效处理和传递。
另外,说明性实现规定,通信链路的发送端可将内部调试数据硬件组件的交替周期配对为调试数据包,或者可利用与调试数据一起发送的有效指示来匹配从合作数据通信体系结构组件(例如链路端口)转发的调试数据。此外,说明性实现规定,示范数据通信体系结构可通过链路重新训练的发起来进入调试操作。在链路训练序列完成时,调试操作开始进行。
图6表示在处理调试数据时示范数据通信体系结构200所执行的处理。如图所示,处理在框600开始,并进入框610,在其中,具有最初选取数量的位(例如76位)的调试数据配成对,从而产生具有第二所选数量的位(例如152位)的调试数据包。由此,在框615,调试数据包被缓冲以使它与通信链路频率匹配。然后,在框620,调试数据包通过通信链路传递。由此,在框625,调试数据包在通信链路的接收端被捕捉及处理。
然后,在框640进行检查,以便确定是否存在链路故障。如果框640的检查指明链路故障,则处理进入框645,在其中,故障被报告以便采取进一步行动。然后,处理进入框660,在其中,通信链路被重新训练。由此,处理返回到框610,并从那里继续进行。
但是,如果在框640确定没有链路故障,则处理进入框635,在其中,将调试数据包分解成调试数据具有其原始数量的所选位的形式。由此,处理进入框650,以便继续进行数据事务。然后,处理在框655结束。
链路标识信息:
示范数据通信体系结构200还能够传递链路标识信息。说明性实现用于允许通过链路标识信息的使用对示范通信数据体系结构200的物理通信链路的确认、验证和映射。
在SERDES数据通信体系结构的上下文中,若干链路共同用于示范数据通信体系结构内的每个点到点连接。在说明性实现中,SERDES数据通信体系结构的通信节点可连接到有助于通过SERDES数据通信体系结构的数据传递的交叉硬件组件。这些物理连接指导及指示示范数据通信体系结构的操作。为了确保这些连接是正确的,和/或构建连接的映射,需要关于连接的知识。
说明性实现规定,示范数据通信体系结构的通信链路可在使用之前被训练。在训练期间,示范数据通信体系结构其中还标识数据通信体系结构的各种合作组件的时钟的布置。利用时钟位置信息,数据包可从通信链路的发送端到接收端对准,确保结合性的数据通信。
说明性实现还规定,在工作中,位置标识符被产生,并从示范通信链路的发送端传递到通信链路的接收端,从而提供与通信链路的发送端有关的位置(例如映射和连接)信息。在说明性实现中,位置标识符可按照某种所选间隔或训练步长、但在链路被释放用于正常操作之前被嵌入训练序列中。在训练序列过程中,所嵌入的位置标识符由接收端按照接收端的逻辑(例如指令集和命令)来捕捉,将位置标识信号放入存储组件用于后续处理。在此上下文中,示范数据通信体系结构可利用一个或多个指令集来处理位置标识信息(例如通过内部或外部软件的使用),以便产生数据通信体系结构连接和连接关系的拓扑。
明确地说,通过通信链路的发送端传递的数据模式(例如位置标识符)可通过硬件逻辑进行硬连线,和/或经由指令集(例如软件)可编程,或者可由外部源、如合作硬件组件来提供。说明性实现规定,通过从可由一个或多个现场可编程门阵列(FPGA)(未示出)驱动的外部输入通信端口移入数据模式(如位置标识符),位置标识符数据字段可属于加载到接收端中的可编程种类。在属于可编程类型时,数据模式可包括与位置以外的物理连接有关的附加信息,其中包括但不限于硬件类型(例如芯片类型)、链路频率和链路状态。在状态信息的上下文中,这种信息可包括但不限于重置进度、端口状态、配置信息或错误状态。
图7表示在传递链路标识信息时示范数据通信体系结构200所执行的处理。如图所示,处理在框700开始,并进入框705,在其中,数据通信体系结构发起对通信链路的训练。由此,处理进入框710,在其中,得到位置标识符,它标识示范通信链路的发送端对于接收端的相对位置。在框715,位置标识符作为通信链路的训练序列的一部分被嵌入。然后,处理进入框720,在其中,位置标识符由通信链路的接收端来捕捉及处理。在框725,由通信链路的接收端将位置标识符值与预期值进行比较。
然后,在框830进行检查,以便确定在位置标识符的传输中是否存在任何错误。如果在框830确定没有错误,则处理进入框735,在其中,完成训练,以及在框745执行数据事务。
但是,如果在框730确定存在错误,则处理进入框750,在其中报告错误。然后,在框755解析错误。由此,处理进入框705,并由此继续进行。
错误插入:
图2的示范数据通信体系结构200还能够插入所选错误,作为通信链路测试的一部分。在SERDES数据通信体系结构的上下文中,说明性实现验证接受评估(例如通信链路的测试)的系统中的错误情况功能性。
SERDES数据通信体系结构提供对于在通信链路的接收端所接收的数据的若干不同的正确性检查。根据错误的性质预计不同的行动,以及可在通信链路的接收端预期不同的信息。说明性实现指定由来自设置于通信链路的发送端的调试逻辑(例如图3的315)的信号所触发的各种插入错误事件。例如,这类错误事件可包括但不限于简单单一位错误、省略或添加小数据包、以及断开通信链路信道。
另外,说明性实现提供要插入的一个以上错误,作为测试序列的一部分。在此上下文中,后续错误可被插入,使得它与第一错误同时出现或者在出现第二触发时出现。采用这种功能,多个错误事件能够被测试。另外,说明性实现可允许指定每个错误类型的持续时间。这可以是从一到数周期或者永久(例如直到该状况从通信链路上清除)。因此,说明性实现能够处理零星的以及持续类型的故障。此外,说明性实现在错误触发出现时可捕捉通信链路的发送端的缓冲器(例如图3的300)中已损坏的小数据包。这样,可在链路的接收端创建一个参考,与所捕捉的错误记录比较,从而确认预期的通信链路表现。
图8表示在插入错误作为通信链路测试的一部分时图2的示范数据通信体系结构200所执行的处理。如图所示,处理在框800开始,并进入框805,在其中建立通信链路。由此,处理进入框810,在其中产生一个或多个错误(例如失速、时滞、不正确的小数据包等等),用于插入到要从通信链路的发送端传递到接收端的数据中。然后,处理进入框815,在其中,已产生的错误被插入数据。然后,在框820,已修改数据通过通信链路传递。然后在框825,错误在通信链路的接收端被捕捉。在框830,所捕捉的错误则经过分析,从而与原始插入错误进行比较。根据比较结果,在框835检验通信链路操作。然后,在框840进行检查,以便确定链路是否按照预计的那样起作用。如果框840的检查表明通信链路按照预计的那样起作用,则处理在框850终止。
但是,如果在框840确定链路不正确地工作,则处理进入框845,在其中分析通信链路故障。由此,处理在框850结束。
检错:
图2的示范数据通信体系结构200还能够有效地检测数据通信事务中的错误,而没有将等待时间引入通信链路。在SERDES数据通信体系结构的上下文中,说明性实现能够重试没有精确地通过SERDES通信链路的数据传输。
在SERDES数据通信体系结构中,数据包可被跟踪和监测,从而确定成功的传输。在此上下文中,通过链路的所选小数据包的标记被监测,从而确定从通信链路的发送端到通信链路的接收端的成功传输。在成功传输时,确认消息可从通信链路的接收端发送到通信链路的发送端,以表明成功的传输。如前面所述,事务可通过通信链路作为小数据包的序列来发送:一个首标小数据包,其中具有路由选择和事务及事务类型信息,之后跟随完成数据传输所需的小数据包的许多附加序列。在说明性实现中,首标可包含当前小数据包标记。
在工作中,链路的接收端检查首标包中包含的标记,并在没有发现预期标记时标记链路错误。这样,因丢弃或重复的小数据包而产生的错误将在预计为首标的下一个小数据包没有正确标记时被发现。但是可能导致低效,因为错误可能一直到整个事务完成后才被检测到。
说明性实现提供将暗示标记的位包含在用于防止小数据包的位错误的奇偶性字段中的功能。在工作中,标记的位包含在经计算以检测位错误的奇偶校验位中的不同的一个中。这样,丢失或重复的小数据包将在通信链路的接收端产生奇偶性计算错误。在检测到奇偶性错误时,说明性实现可请求重传小数据包,并且还可防止已损坏数据从通信链路的接收端转发。
图9表示在检测数据通信事务中的错误时、图2的示范数据通信体系结构200所执行的处理。如图所示,处理在框900开始,并进入框905,在其中建立通信链路。由此,处理进入框910,在其中产生数据暗示标记的标记位。然后,在框915,所产生的标记位在通信链路的发送端被编码(例如,计算携带数据的信道之中的八个奇偶校验位,其中,每个奇偶校验位基于在通信链路上发送的数据的8位的第1、2、3、...、8位)为奇偶校验位计算。由此,处理进入框920,在其中,具有作为奇偶校验位的组成部分的编码标记位的数据通过通信链路传递。数据在通信链路的接收端被接收,以及在框925,数据的奇偶性由接收端来计算。然后,在框930进行检查,以便确定在所传送的奇偶性计算和所接收的奇偶性计算中是否存在任何错误。如果在框930确定没有错误,则处理进入框940,在其中,数据通信事务继续进行。然后,处理在框945结束。
但是,如果在框930确定存在错误,则处理进入框940,在其中,重传数据的请求由通信链路的接收端发送给通信链路的发送端。然后,处理返回到框910,并由此继续进行。
总之,本文所述的设备及方法提供一种数据通信体系结构,用作计算环境通信结构,它减小数据等待时间。但是要理解,本发明可允许各种修改以及备选构造。不是要将本发明限制于本文所述的特定构造。相反,本发明意在涵盖落入本发明的范围和精神之内的所有修改、备选构造及等效物。
还应当注意,本发明可在各种计算机环境(包括非无线和无线计算机环境)、部分计算环境以及现实环境中实现。本文所述的各种技术可通过硬件或软件或者两者的组合来实现。这些技术最好是在维护包括处理器、处理器可读存储媒体(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置的可编程计算机的计算环境中实现。与各种指令集配合的计算硬件逻辑应用于数据,以便执行上述功能以及产生输出信息。输出信息应用于一个或多个输出装置。示范计算硬件所使用的程序最好可通过各种编程语言来实现,包括高级程序或面向对象的编程语言,以便与计算机系统通信。本文说明性所述的设备及方法可根据需要通过汇编或机器语言来实现。在任何情况下,语言可以是编译或解释语言。每个这种计算机程序最好存储在通用或专用可编程计算机可读的存储媒体或装置(例如ROM或磁盘)中,用于在存储媒体或装置由计算机读取时配置和操作计算机,以便执行上述程序。设备也可考虑被实现为配置了计算机程序的计算机可读存储媒体,其中,存储媒体经过配置,使计算机以特定及预定方式工作。
以上虽然已经详细说明了本发明的示范实现,但本领域的技术人员会知道,其它许多修改在示范实施例中是可行的,而没有在实质上背离本发明的新颖理论及优点。因此,这些及所有这类修改均处于本发明的范围之内。本发明可由以下示范权利要求来更好地定义。
Claims (10)
1.一种用于通过数据通信体系结构(200)传递调试信息的系统,包括:
调试模块(305,405),可用于处理调试数据(230),以便在所述数据通信体系结构(200)的合作组件之间传递;以及
数据缓冲器(300,400),与所述调试模块(305,405)合作以接收和存储调试数据,使得所述数据的频率与所述通信体系结构(200)的频率同步。
2.如权利要求1所述的系统,其特征在于还包括通信链路(215)。
3.如权利要求2所述的系统,其特征在于还包括串行化器(300)。
4.如权利要求3所述的系统,其特征在于还包括解串器(400)。
5.如权利要求4所述的系统,其特征在于,所述调试模块(305,405)包括所述串行化器(300)和所述解串器(400)的一部分。
6.如权利要求5所述的系统,其特征在于还包括一个或多个指令集,这些指令集对所述调试模块处理调试数据提供指导。
7.如权利要求6所述的系统,其特征在于,所述一个或多个指令集包含一些指令,用于使具有第一数量的位的调试数据(230)组成对,从而产生具有第二数量的位的调试数据包。
8.如权利要求7所述的系统,其特征在于,所述调试模块与所述数据缓冲器合作以存储和检索调试数据(230)。
9.如权利要求8所述的系统,其特征在于,具有所述第二数量的位的所述调试数据从所述通信信道(215)的发送端传递到所述通信信道(215)的接收端。
10.如权利要求9所述的系统,其特征在于,与所述调试模块(305,405)合作的所述通信链路(215)的所述接收端接收具有所述第二数量的位的调试数据(230),并将它转换为具有所述第一数量的位的调试数据包。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57438504P | 2004-05-25 | 2004-05-25 | |
US60/574385 | 2004-05-25 | ||
US11/056505 | 2005-02-11 | ||
US11/056,505 US7721159B2 (en) | 2005-02-11 | 2005-02-11 | Passing debug information |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703027A true CN1703027A (zh) | 2005-11-30 |
CN1703027B CN1703027B (zh) | 2012-03-14 |
Family
ID=35632550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100746319A Active CN1703027B (zh) | 2004-05-25 | 2005-05-24 | 传递调试信息 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1703027B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103444085A (zh) * | 2011-02-17 | 2013-12-11 | 高通股份有限公司 | 根据检测到的误码率的串化解串器功率节流 |
CN101542912B (zh) * | 2007-08-02 | 2014-01-29 | 快捷韩国半导体有限公司 | 用于多应用的串行化器 |
CN105703883A (zh) * | 2014-12-16 | 2016-06-22 | 英特尔公司 | 在统一协议通信中交换错误信息的装置、方法和系统 |
CN107113084A (zh) * | 2014-11-25 | 2017-08-29 | 英特尔公司 | 首标奇偶错误处理 |
CN111737155A (zh) * | 2020-08-04 | 2020-10-02 | 北京燧原智能科技有限公司 | 一种芯片调试系统、方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3602293B2 (ja) * | 1997-04-22 | 2004-12-15 | 株式会社ソニー・コンピュータエンタテインメント | データ転送方法及び装置 |
JP2002304310A (ja) * | 2001-04-06 | 2002-10-18 | Fujitsu Ltd | 半導体集積回路 |
-
2005
- 2005-05-24 CN CN2005100746319A patent/CN1703027B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542912B (zh) * | 2007-08-02 | 2014-01-29 | 快捷韩国半导体有限公司 | 用于多应用的串行化器 |
CN103444085A (zh) * | 2011-02-17 | 2013-12-11 | 高通股份有限公司 | 根据检测到的误码率的串化解串器功率节流 |
CN103444085B (zh) * | 2011-02-17 | 2016-07-27 | 高通股份有限公司 | 根据检测到的误码率的串化解串器功率节流 |
CN107113084A (zh) * | 2014-11-25 | 2017-08-29 | 英特尔公司 | 首标奇偶错误处理 |
CN105703883A (zh) * | 2014-12-16 | 2016-06-22 | 英特尔公司 | 在统一协议通信中交换错误信息的装置、方法和系统 |
CN105703883B (zh) * | 2014-12-16 | 2020-04-10 | 英特尔公司 | 在统一协议通信中交换错误信息的装置、方法和系统 |
CN111737155A (zh) * | 2020-08-04 | 2020-10-02 | 北京燧原智能科技有限公司 | 一种芯片调试系统、方法、装置、设备及存储介质 |
CN111737155B (zh) * | 2020-08-04 | 2020-12-08 | 北京燧原智能科技有限公司 | 一种芯片调试系统、方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1703027B (zh) | 2012-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7461321B2 (en) | Error detection | |
US7721159B2 (en) | Passing debug information | |
CN102567276B (zh) | 基于多通道的数据传输方法、接收节点及跨节点互联系统 | |
JP3996928B2 (ja) | 破損データを処理する方法 | |
US20070179733A1 (en) | Methods and apparatus for testing a link between chips | |
CN1703027B (zh) | 传递调试信息 | |
CN113986624A (zh) | 通过错误注入和测量进行互连的系统内验证 | |
US7436777B2 (en) | Failed link training | |
CN102291408B (zh) | 对iSCSI协议报文的处理方法及装置 | |
CN117389790B (zh) | 可恢复故障的固件检测系统、方法、存储介质及服务器 | |
CN1290013C (zh) | 图形控制器中校验指令完整性的方法与电路 | |
US20060184707A1 (en) | Error injection | |
CN110377484A (zh) | 判断硬盘状态的方法及系统 | |
US7606253B2 (en) | Successful transactions | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
US7672222B2 (en) | Link failures | |
KR101086599B1 (ko) | 데이터 통신의 갭을 처리하는 방법 | |
TWI383294B (zh) | 用以識別資料通訊架構之構件的系統 | |
CN102955727A (zh) | 一种802.11n无线网卡中固件仿真模型的处理方法 | |
EP4135231A1 (en) | Synchronizing a high-speed signaling interconnect | |
US7310762B2 (en) | Detection of errors | |
CN100397351C (zh) | 计算机系统的除错装置及方法 | |
US7624213B2 (en) | Passing identification information | |
US20060268724A1 (en) | Using Open Vera Assertions to verify designs | |
US20050154968A1 (en) | Detection of errors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170119 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |