通过用于点到点链路的非数据符号处理的缓冲器管理的制作方法

文档序号:6501699阅读:139来源:国知局
专利名称:通过用于点到点链路的非数据符号处理的缓冲器管理的制作方法
技术领域
本发明的一个实施例一般涉及适合电子系统的通信耦合元件的串联、点到点互连技术,尤其涉及具有依照PCI Express Base Specification快速基本规范1.0a(2003年10月7日的勘误表)(“PCI Express”)。也可描述其它实施例。
背景技术
电子系统由被设计成在系统的输入/输出(I/O)互连上彼此通信的若干元件组成。例如,现代计算机系统可包括以下元件处理器、主存储器、和系统接口(也称为系统芯片组)。元件可包括一个或多个集成电路(IC)设备。例如,系统芯片组可具有使处理器能与系统存储器和图形元件通信的存储器控制器集线器(MCH)设备。此外,可提供通过MCH将处理器和存储器连接到计算机系统的其它元件,诸如大容量存储设备和外围设备的I/O控制器集线器(ICH)设备。在该情形中,诸如由PCI Express限定的单独、点到点链路可用来允许一对设备之间的双向通信,例如处理器和MCH、MCH和图形元件、ICH和大容量存储设备。
PCI Express点到点链路可具有能同时运行的一条到多条通道。每条通道都具有可同时运行的双重单向路径。每条路径可具有单组发送器和接收器对(例如设备A端口的发送器、设备B端口的接收器)。在该情形中,发送器和接收器可驱动并感测传输介质,诸如印刷电路板中可穿过板与板接头的一对金属迹线。或者,可提供诸如光纤的其它传输介质。
点到点链路用来在设备之间传送各类信息。然而在所谓“较高层”上,两个设备(也称为请求者和完成者)中对等体之间的通信可使用事务(transaction)来引导。有将数据往返传送到存储器映射位置的存储事务。根据PCI Express,有传送各种消息并可用于像中断信令、出错信令、和功率管理的功能的消息事务。
“建立”一事务可有三个抽象层。第一层可以是事务层,它开始将来自设备内核的请求或完成数据转换成用于事务的数据分组的过程。第二个构架建立层称为数据链路层;它确保在链路上往返的分组被适当地接收(通过诸如差错控制编码的技术)。第三层称为物理层。该层负责分组在链路上的实际传送和接收。给定设备中的物理层与一侧的其数据链路层(同一设备)交互,并与另一侧的作为链路一部分的金属迹线、光纤或其它传输介质交互。物理层可包含用于发送器和接收器、并行到串行和串行到并行转换器、频率和相位控制电路、以及阻抗匹配电路的电路。还包含用于其初始化和维护所需的逻辑功能的电路。通过例如允许重新使用基本相同的事务和数据链路层、同时升级物理层(例如增大收发时钟频率),分层架构可允许较简便的升级。
现在给出物理层的一动作示例。一旦通电,设备A和设备B上的物理层就负责初始化链路,并使其对各种事务作好准备。该初始化过程可包括确定应对该链路使用多少通道,并且链路应在什么数据速率上运行。在适当初始化链路之后的某时,在设备A上发出存储器读取请求。最终,包括该读取请求的分组到达设备A的物理层,包括由更高层添加的报头、误差控制信号和序列号。然后物理层取得该数据分组,并将其转换成串行数据流(可能在向其添加成帧数据之后),并使用具有预定义定时规则的例如电差分信号来传送该流。
一旦设备B的物理层看到信号在其接收器输入端出现,它就采样该信号以恢复该数据流,并将该流重建成数据分组(例如在去除帧信号之后)。然后分组被往上传送给设备B的数据链路层,该层剥去报头并检错;如果没有差错,则该分组被往上传送给传输层,在该层上存储器读取请求被提取并发送给适当的逻辑功能,以访问在请求中指定的位置。


本发明的各个实施例通过示例、而并非通过附图中的限制来进行说明,在附图中类似标号表示相似元件。应注意,对本发明“一”实施例的引用并非必然是同一实施例,并且它们表示至少一个。
图1示出通过串联点到点链路彼此耦合的一对集成电路设备。
图2示出用来在集成电路设备中实现串联的点到点链路的部分链路接口电路的框图。
图3A和3B示出可用来实现点到点链路的物理层中的缓冲器管理。
图4示出在图3的缓冲器管理电路中非数据符号检测标志可如何对齐的时序图。
图5是示出指针比较运算示例的示例时序图。
图6示出用于管理缓冲器以防止上溢的示例时序图。
图7A示出用于管理缓冲器以防止上溢的示例时序图。
图7B-7C示出缓冲器的示例启动情形的时序图。
图8标识多媒体台式个人计算机的各个元件,其中一部分通过PCI Express虚拟信道(VC)彼此通信耦合。
图9示出企业网络的框图。
具体实施例方式
本发明的一个实施例涉及通过非数据符号处理用于点到点链路的缓冲器管理。图1示出通过串联点到点链路彼此耦合的一对集成电路设备。IC设备104(设备A)和108(设备B)可以是包含处理器112和主存储器114的计算机系统的一部分。在该示例中,串行点到点链路120被用来使设备B的内核与设备A的内核通信耦合。该链路120具有双重单向路径122,其中链路接口124用来与每一相应设备A和B的设备内核交接。
在该实施例中,设备B被称为计算机系统的根联合体(root complex),并向例如设备A中的图形元件提供具有I/O访问的处理器112。该根联合体可被分成图形和存储器控制器集线器(GMCH)、以及I/O控制器集线器(ICH)。ICH将用作GMCH和系统的其它I/O设备,包括非易失性大容量存储设备、诸如跟踪板或鼠标的定位设备、以及网络接口控制器(未示出)之间的另一个接口。点到点链路120可被复制,以使设备B与处理器112和主存储器114通信耦合。其它表征点到点链路120的其它平台架构也是可能的。
图1的接口124可被视为实现用于串行点到点链路的多层架构(如以上背景技术中所述)。接口124的部分细节在图2中示出。接口124支持传输介质122和其相应设备104、108的数据链路层之间的独立收发路径。在传送路径中,数据分组形式的信息从数据链路层到达,并被分成由编码块208编码的符号。块208编码的目的是要嵌入时钟信号,从而独立的时钟信号无需被传送到传输介质122中。该编码可以是众所周知的8B-10B,其中8比特数量被转换成10比特数量;其它编码方案也是可能的。在某些情形中,诸如独立选通或时钟信号在介质122中传送的情形,并不需要这种编码。
在框208中编码之后,数据单元(在此称为符号)由模拟前端(AFE)传送块214的并行-串行块212处理,以产生比特流。注意,在此使用的“比特”可表示两种以上不同状态,例如二进制比特、三进制比特等。术语“比特”在此仅为方便起见而使用,并非旨在受限于二进制比特。然后比特流被导入传输介质122。如上在背景技术中所述,该传输介质可以是在印刷线路板上形成的一对金属迹线。也可使用其它形式的传输介质122,诸如光纤。
框208-214序列可用作点到点链路120(图1)的单通道。一般而言,在点到点链路120中可有一条以上通道,使从数据链路层接收的分组可在多个传输通道上剥除。
现在参看图2所示接口124的接收侧,每条通道具有其相关联AFE接收块224,用来例如通过采样传输介质122中的信号来从传输介质122中接收信息流。AFE接收块224在传输介质122的信令和IC设备104的信令(例如芯片上、互补金属氧化物半导体、CMOS、逻辑信令)之间转换。如以下将要描述的,信息流表示已由设备B在串联点到点链路120(参见图1)上传送的M比特符号(其中M是大于1的整数)序列。
由AFE接收块224提供的比特流被馈入用来对齐或锁定已接收符号的符号对齐逻辑228。换言之,并如以下所述,符号对齐逻辑228将划分所接收比特流内的准确符号边界,由设备104中物理层的后续部分使用。
然后符号对齐的比特流可被馈入解码块232,该解码块232解除由编码块208执行的编码(例如,10B-8B解码、以产生由8个二进制比特组成的信息符号)。
然后解码后的符号被馈入弹性缓冲器EB 234。EB 234用来补偿符号用设备B和设备A的本地时钟信号(local_clk)传送的速率容差中的任何差异。local_clk用来从EB 234中卸载符号,并且在一些情形中如下所述地运行通道到通道偏斜消除电路238的各个部分(在链路120由一个以上通道组成的情形中)。应注意,解码块232(如果提供)可置于更下游,例如在EB 234的输出处或偏斜消除电路238的输出处。
一部分EB 234的示例框图在图3A和3B中示出。在该示例中,EB 234具有通过解码块232(参见图2)从对齐逻辑228接收8位符号的输入(图3A的左边)。以下将描述的可选方案是远端环回模式(FELB),其中符号因为已绕过解码块232而为10比特宽。或者其它符号宽度是可能的。
符号可以是表示源自数据链路层、事务层、或诸如设备内核的一些其它更高层的一些有效载荷的“数据”符号。或者,符号可以是“非数据”符号,例如由物理、数据链路、或传输层之一产生的特定符号,以实现对在串行点到点链路上传输的信息上的一些类型控制。这些非数据符号的若干示例将如下给出为PCI Express特定符号。
PCI Express定义被添加到所传送分组的众多特定符号。例如,可添加特定符号以标记分组的开始和结束。这通过让接收设备知道一个分组在哪里开始并在哪里结束来实现。不同的特定符号被添加到源自事务层而非数据链路层的分组中。此外,有要由物理层用于补偿两个通信端口的运行数据速率中的较小差异的称为“SKP”(跳跃符)的特定符号。还有要用于物理层的通道和链路初始化的称为“COM”(逗号)的特定符号。
到达EB 234的输入处的符号要根据由载入指针逻辑308提供的载入指针EbLdPtr顺序载入缓冲器304(可具有先入先出架构,也称为队列)的一系列条目。由卸载指针逻辑312提供的卸载指针EbUldPtr用来从缓冲器304顺序卸载符号。如图3A所示,有通过缓冲器304的竖直虚线。这表示由EB 234在接收时钟grxclk和本地时钟lgclk之间执行的时钟跨越。符号根据grxclk载入,并且它们根据lgclk卸载。尽管这两个时钟域可被设计成在频率方面彼此尽可能地接近,但每个时钟域被允许有频率上的一些容差或极小变化,常常指定为百万分之几。grxclk可从(已传送符号的)另一IC设备的传送时钟导出,其中该传送时钟可被嵌入由其它设备传送的信息流中,或者在诸如源同步情形中它可在独立的时钟或选通信号中提供。根据PCI Express,grxclk可具有+/-300ppm的容差。相同容差可被分配给设备A的本地时钟lgclk。
为了说明EB 234、特别是缓冲器304的上溢和下溢问题,假设在启动时缓冲器304的载入和卸载指针被分开约缓冲器的一半深度。取决于grxclk和lgclk的频率之间的实际差异,这些指针可开始彼此漂离或者可开始彼此漂近,从而随着时间的流逝指针会碰撞,即上溢或下溢。EB 234的理想情形是载入和卸载指针总是被分开缓冲器304的一半深度。如下所述,通过将卸载指针调节或控制为a)检测符号的特定或非数据符号序列以及b)缓冲器的濒临上溢或下溢情形的功能,而不调节更新载入指针的缺省方式,可实现该理想情形。
EB 234的卸载指针可被受控(使用例如图3B中的卸载指针逻辑312和指针控制逻辑314)为使用已由设备B(参见图1)插入数据序列的符号的预定义、特定或非数据序列,避免上溢和下溢情形。简言之,为了防止缓冲器的下溢,卸载指针可响应于检测到非数据序列在包含非数据符号的缓冲器的入口处停止。这在根据改变卸载指针卸载数据序列时实现。这使载入指针离开卸载指针,从而防止下溢。
另一方面,为了防止缓冲器的上溢,卸载指针可被改变一个以上条目,从而跳过非数据序列的非数据符号(因为它目前载入到缓冲器中),同时从缓冲器中卸载符号。再一次,这响应于检测非数据序列来实现。这使卸载指针离开载入指针,再一次避免碰撞。用于实现上溢和下溢避免能力的示例技术的细节给出如下。
现在参看图3A和3B,EB 234的缓冲器304可被设计成在每个条目中不仅存储一个符号(诸如8比特或10比特字符),还存储该符号的一个控制位,该控制位表示符号是数据符号还是非数据符号(8b10b_eb_kchar_f),以及预定义的非数据序列指示符(EbSkpDet)。kchar_f控制比特可由解码块232产生,同时EbSkpDet可由如图所示的EB 234产生。后一指示符用于PCI Express实施例的特定示例,其中所使用的特定非数据序列为SKP有序组。或者,可使用另一预定义的非数据序列。EbSkpDet非数据序列指示符可如下所述由EB 234用于卸载指针的管理。
为了适当地调整EB 234的卸载和载入指针,在有序组的PCI Express COM情形中SKP有序组检测标志用所接收的非数据符号在缓冲器的输入处产生并对齐。在有序组中COM符号在一个或多个SKP符号之前。指示符通过EB 234传送,从而可在lgclk域中相对于有序组采取校正动作(图3A中所示竖直线的右边)。如在图4的时序图中所示,有序组指示符可以是当非数据符号COM后面是非数据符号SKP时对grxclk的一个周期赋值的信号。在图4中,波形8b10b_eb_data[7:0]表示所接收的符号(在该情形中包括插入表示为Dx.x序列的数据序列的SKP有序组)。所接收符号和有序组指示符EbSkpDet在存储到缓冲器304的条目中之前下跳。注意,COM符号和EbSkpDetin的赋值在同一grxclk的周期中进行。换言之,检测标志EbSkpDet以及在该情形中的8比特符号EbDataIn[7:0]被赋值并载入到缓冲器中(作为EbSkpDetin)。
参看图3B,比较逻辑316能采样卸载和载入指针相对于彼此的位置,从而指针的适当调节可在检测到非数据序列时实现。这表示,在本实施例中指针之一可能需要跨过时钟域,以确定两个指针在队列内的位置。在本实施例中,在grxclk域内的载入指针将跨越到lgclk域上。注意,使用灰度来表示指针可提供比简单二进制更准确和有效的实现。
在lgclk域内,有生成以表示缓冲器304情形,即比1/2满多或比1/2满少的两个指示符。或者,可定义仍然可使EB 234避免上溢和下溢情形的其它情形(诸如比预定阈值多或比预定阈值少)。在该示例中,比1/2满多的指示符是EbMrHlfFull,并表示grxclk域比lgclk域“更快”。当赋值该指示符时,并且当已接收到非数据序列时,应从有序组中去除非数据符号(在该情形中为SKP),以尝试将缓冲器带回其理想的1/2满的情形。
另一方面,比1/2满少的指示符EbLsHlfFull表示相反,即lgclk域比grxclk域快。在该情形中,当已接收SKP有序组时应添加SKP,以将指针带回其理想的1/2满的情形。当然,当两个指示符都未赋值时缓冲器可以为1/2满,从而无需对载入和卸载指针采取任何动作。在本发明一实施例中,SKP实例的添加和去除通过指针控制逻辑314(图3B)在卸载指针EbUldPtr(而非载入指针EbLdPtr)上动作来实现。其运算可通过图6和7的示例时序图说明,如下所述。
图5是根据指针在不同时钟域可如何比较指针的示例时序图。图5示出在该示例中grxclk更快的grxclk和lgclk波形。在此,载入指针EbLdPtr跨入lgclk域,在载入指针的实际位置和同步位置EbLdPtrSync之间有1~2个周期的滞后。为了补偿与跨越载入指针相关联的该时间延迟,还可通过将当前值减去2(在该实例中)产生EbUldPtrAdj来调节卸载指针的值。然后可在EbLdPtrSync和EbUldPtrAdj之间作比较,从而在该情形中如在lgclk的周期4所示缓冲器比1/2满多。注意,在该示例中缓冲器304的深度被假定为10个条目,尽管其它深度也可工作。
仍然参看图5的时序图,注意在lgclk的前4个周期中,同步载入指针EbLdPtrSync与经调节的卸载指针EbUldPtrAdj相差约缓冲器深度的一半,在本情形中即为5个条目。相应地,撤消对EbMrHlfFull和EbLsHlfFull的赋值。然而,在周期3中,同步载入指针往前跳一条目(从条目8到条目0),并且因为两个指针之间的差异大于缓冲器深度的一半,EB 234被视为多于1/2满,因而接近上溢。本领域普通技术人员之一基于本说明书将理解对下溢情形可画出相似的时序图。
对于指针比较逻辑316(图3),用于确定指针位置的算法可如下。如果经调节的卸载指针大于同步载入指针,则经调节的卸载指针和同步载入指针之间的差异为队列内空闲的条目数量。另一方面,如果同步载入指针大于经调节的卸载指针,则同步载入指针和经调节的卸载指针之间的差异为队列内的条目数量。当然,当同步载入指针等于经调节的卸载指针时指针碰撞,即EB 234上溢或下溢。指针碰撞可由于例如缺少所接收的非数据序列,或者grxclk和lgclk频率之间的差值太高并在设计规范之外。在该情形中,将向后续符号处理块或设备A的上层发送指针碰撞的指示,从而开始给定链路的所有通道(参见图2)中的指针2被移回其初始或重置值的复原状态。
现在参看图6和7,示出非数据序列可如何处理以避免上溢和下溢情形的示例时序图。回想如上所述,当已接收到SKP有序组时,一标志在缓冲器304的入口处产生,并连同有序组的符号通过缓冲器传送。在所述示例中,应用以管理缓冲器的调节在缓冲器的出口处,即在lgclk域内发生。特别地,卸载指针取决于缓冲器的状态(例如1/2满、比1/2满多、或比1/2满少)进行调节。图6示出在缓冲器比1/2满多的情形中调节或控制卸载指针的过程的时序图。注意在该示例中grxclk比lgclk快,从而可能导致上溢情形。在该情形中,包括COM加上单一SKP的SKP有序组在EB 234的入口处接收。然后在周期1向缓冲器加载与COM对齐的SKP检测标志(EbSkpDetin),进入缓冲器的条目9。
注意在lgclk域内,直到周期3指针都分开5个条目。在周期3,同步载入指针从条目8移到条目0,表示载入指针已超过卸载指针一个周期。在周期7中,从缓冲器(条目9)中卸载与SKP有序组相关联的SKP检测标志(EbSkpDetOut)。由于缓冲器现在比1/2满多,卸载指针EbUldPtr将把一额外条目往前移,即不移向条目0而是移向条目1。由于经调节的卸载指针EbUldPtrAdj反映卸载指针的移动,EbUldPtrAdj和EbUldPtrSync之间的差异回到5个条目,且因为未发出比1/2满指示符在周期9更新缓冲器状态。因而,将卸载指针改变一个以上条目导致载入缓冲器的非数据符号(在该情形中为SKP)被跳过,同时符号如EbDataOut[7:0]所反映地被卸载。
现在参看图7A,示出用于在缓冲器比1/2满少时管理EB 234以避免下溢的过程的示例时序图。在该情形中grxclk域比lgclk域慢,从而使缓冲器的排空比填充快。在示图顶部,有插入如EbDataIn所示的到达EB 234入口处的数据序列的非数据序列。
COM符号以及SKP检测标志将在条目9中存储,如grxclk的周期1所示。然后参看lgclk域,缓冲器直到周期3都为1/2满,其中同步载入指针停留在条目9达两个周期,而经调节的卸载指针继续递增。这是因为grxclk和lgclk之间的不匹配或容差差异,如以上在图5的时序图中所示。相应地,在周期4中,赋值比1/2满少指示符。在周期6中,SKP检测标志在赋值EbLsHlfFull时从缓冲器中卸载,且卸载指针EbUldPtr在赋值HldUldPtr时于周期7停止。这使得卸载指针在周期7时保留在条目0上(该条目包含SKP)。因而,另一个SKP被插入该序列,如在EbDataOut[7:0]的周期7中所见。
然后,当从周期7转换到周期8比较同步载入指针和经调节卸载指针时,指针再次变回分开5个条目,使EB 234的指针返回到其理想情形。
以下提供在以上示例中载入和卸载指针如何运行的另一种描述。对于载入指针,只要EB 234活动或启用,该指针就可一直(根据grxlk)递增1。然而,对于卸载指针,仅当EB 234当前未正在处理缓冲器比1/2满多时的非数据序列,且非数据序列在缓冲器比1/2满少时未在最后一个循环接收非数据序列时,卸载指针(在初始化后)递增1(根据lgclk)。此外,当处理非数据序列且缓冲器比1/2满多时卸载指针可递增2。最后,当非数据序列已在最后一个周期接收并且缓冲器比1/2满少时,卸载指针未增加,即停止。
用于管理弹性缓冲器的上述方法和装置的一个优点是它是不管收发时钟所允许的容差如何都能保持为串行点到点链路接收的稳定符号流的相对鲁棒的技术。注意,不仅在通电后使链路运行前的初始训练期间,而且在由IC设备接收每个分组期间(其中假设每个分组常常都将包括特定、非数据序列的一个或多个实例,以便于使该过程在给定通道的正常运行期间重复),都可执行该过程。在本发明的另一个实施例中,设备A(参见图1)可用远端环回模式(FELB)运行。使用FELB,在设备A中接收的一系列符号在序列(由EB 234,参见图2)已缓冲之后环回到设备B。相应地,用FELB,经缓冲序列的符号内容可在设备A之外监视,以确定(如由设备B传送的)原始序列如何由设备A的EB 234更改。
弹性缓冲器指针的启动本发明的另一实施例为一种启动机制,该启动机制自动调节在EB 234中遭遇的异步、时钟跨越延迟,并有助于减少缓冲器304所要求的大小。在这种实施例中,EB 234的载入和卸载指针的启动可基于两种不同准则。Qual_EbActive项可被定义为在lgclk域(卸载指针域)内产生、然后时钟跨越到grxclk域(载入指针域)。该条件在赋值时释放载入指针。Qual_EbActive项可包括以下条件1)链路接口124的链路初始化单元(未示出)表示该EB 234的通道可用(例如gi_gp_laneup赋值-lgclk域);2)接口124的接收时钟被启用(gi_gp_piclken被赋值-lgclk域);3)EB 234指针未重置(因为指针碰撞未赋值gi_gp_ebptrrst-lgclk域);4)符号对齐逻辑228(参见图2)已获得符号锁(gp_gi_kalignlck-lgclk域);以及5)载入指针已重置。该项可添加于有PCI Express LOs进入/退出情形(sync_loadrest_done-lgclk域)的实施例。
一旦载入指针已释放,它就被时钟跨越到lgclk域。在该时钟域内,载入指针已在连续时钟内改变的事实是现在可释放卸载指针的指示。卸载指针将继续增加,直到任一以上5个条件在卸载指针可重置,并且在某时间之后载入指针也将重置(时钟跨越)的情形中变成假。
作为示例,卸载指针可被重置成值“000”。相反,载入指针可被初始化为值“001”。其原因是从缓冲器半满情形开始,但在该示例中导致两个时钟的时钟跨越惩罚(使载入指针时钟跨越并离开卸载指针),还导致实际上产生Ebactive_unload项的下跳阶段。这表示载入指针可从值“001”开始。注意,卸载指针可仍被减少2用于作出检查缓冲器空间的比较。该技术可总是以相同的EbMrHlfFull情形开始开始。但是,这并不具有到达EB 234的非数据符号SKP的第一实例将使缓冲器304(在此为队列)再次半满的意义。
在图7B的实例时序图中,内核时钟域的活动指示符(qual_EbActive)在内核时钟域(lgclk)的周期1中被赋值。然后活动指示符发送到grxclk域,以产生然后在周期3赋值的sync_EbActive_load信号。随着sync_EbActive_load信号的赋值,载入指针(ldptr)从其重置值中释放,并且将开始移动。同时,阻止内核时钟域lgclk中的卸载指针(unldptr)移动直到sync_ldptr开始移动。到周期6,在卸载指针和经调节卸载指针开始移动之前,同步载入指针已开始移动。这导致赋值比1/2满多信号(EbMrHlfFull)。注意,在该实例中启动机制总是导致MrHlfFull在开始时赋值,然后到达的SKP第一实例将使队列达HlfFull条件。因此,MrHlfFull的启动条件可被称为瞬变条件。
应注意,当EB 234的卸载指针在保持其重置状态之后已开始运行时,队列出口处的数据直到卸载指针到达队列的重置载入指针处的条目(即队列的第一条目)时才有效。为了防止非有效数据破坏后续的符号处理阶段(例如图2偏斜消除电路238),来自队列出口处的SKP检测标记和K字符(非数据符号呈现)比特可用称为EbOutVld的有效指示符或标志门控。如图7C的示例时序图所示,当阻止卸载指针移动(且认为EB 234不活动)时,该指示符可保持未赋值,并且直到卸载指针移到载入指针的重置值(在图7C中正好为ENT0)时才被赋值。以下规则可用来定义该EbOutVld的操作1)EbOutVld在EB 234活动(赋值qual_EbActive)且卸载指针已移到载入指针的重置状态时被赋值;以及2)EbOutVld在EB 234停用(非赋值qual_EbActive)时不被赋值。如上所述,EB 234的出口处的有效标志可防止SKP检测标志EbSkpDetOut和K字符检测标志EbKcharDetOut错误地从存储在队列中的无效符号中被赋值。
上述链路接口电路和方法还可用设计成通过提供多媒体等时支持的串行、点到点互连技术通信的IC设备来实现。等时支持是使用确定性和时间相关方法传送数据的特定类型QoS(服务质量)保证。基于平台的等时支持依赖于一种备有证明文档系统的设计方法,使需要对系统资源的恒定或专用级别访问的应用程序能在给定时段内获得所需带宽。
一个示例是如图8所示在写报告的同时在桌面上观看源自公司CEO的员工广播。数据从内联网路由到桌面主存储器中,其中应用程序通过内插卡使用数据来创建发送给用户耳机的音频流、并通过图形控制器创建发送给显示器的视频流。如果同步操作在桌面个人计算机(PC)内发生,诸如盘读取、从因特网下载数据、字处理、电子邮件等,则无法确保音频和视频流将真正地无干扰。数据仅根据“最佳尝试”方法传送。用户可经历当多个应用程序为同一资源竞争时的跳过或停止。PCI Express中的等时通过建立确保时间敏感的应用程序能保护充足的系统资源的机制来解决该问题。例如,在图8中,视频时间敏感数据将确保充足的带宽以防止以诸如电子邮件的不重要数据为代价的跳过。
上述链路接口电路和方法还可用被设计成通过在从嵌入式应用程序到基于底板的交换系统的通信设备中使用的串行点到点链路技术通信的IC设备来实现。在高级交换中,提供通过交换机构发送对等分组的机制。这些机制也受益于PCIExpress可用的基于服务器类硬件的误差检测。在通信设备内有两类主要使用类型控制面处理和数据面处理。控制面指系统的控制和配置。串行链路可用作配置和控制大量系统内处理器和卡的接口。基于底板建立的交换机通常具有可插入和使用的各种卡。基于底板的交换机可提供现场可升级能力。大多数交换系统提供开始时仅占据一半底板,当需求或用户数量增加时向卡添加附加端口或更快速连接的能力。串行连接技术可用作控制面互连,以配置和监视在系统内安装的不同类型卡。PCIExpress内的枚举和已建配置协议例如适用于配置卡和服务的低引脚计数、高带宽接口。
数据面指数据流动的实际路径。在数据面中,高级交换扩展可定义通过交换机构在对等链路上封装和发送PCI Express数据分组。
PCI Express内核架构提供用于符合新互连需求的坚实基础。高级交换(AS)架构覆盖在该内核上,并通过使用插在事务层上PCI Express数据分组之前的特定AS报头建立有效的、可升级的和可扩展的交换机构。AS交换机仅检查提供路由信息(向哪里发送分组)、报务类ID(服务信息的质量)、拥挤避免(用于防止报务阻塞)、分组大小和协议封装的报头内容。通过分离路由信息,交换机设计更为简单和成本有效。另外,对分组添加额外的报头能使交换机构封装任何数目的现有协议。
上述链路接口电路和方法还可用设计成通过提供用于网络连接(代替例如吉比特以太网)的串行点到点互连技术通信的IC设备来实现。网络连接可由公司移动和桌面计算机用来共享文件、发送电子邮件、以及浏览因特网。服务器以及通信设备可期望来实现这种网络连接。企业网络内的这种网络连接示例如图9所示。
尽管以上示例可在组合和时序逻辑电路的环境中描述本发明各实施例,但本发明的其它实施例可通过软件来实现。例如,一些实施例可被提供为计算机程序产品或软件,它可包括具有存储其上的可用来将计算机(或其它电子设备)编程为根据本发明一实施例执行一过程的指令的机器或计算机可读介质。在其它实施例中,操作可通过包含微码、硬接线逻辑、或通过经编程计算机组件和定制硬件组件的任何组合的特定硬件组件来执行。
此外,设计可经过各个阶段,从创建到模拟到制造。表示设计的数据可用多种方式来表示设计。首先,如在模拟中有用的,硬件可使用硬件描述语言或另一功能描述语言来表示。此外,带有逻辑和/或晶体管栅极的电路级模型可在设计过程的某些阶段上产生。此外,大多数设计在某阶段达到了表示各个设备在硬件模型中的物理放置的数据级别。在使用常规半导体制造技术的情形中,表示硬件模型的数据可以是指定不同掩模层上用来产生集成电路的掩模的各种特征的呈现或缺失的数据。在设计的任何表示中,数据可存储在任何形式的机器可读介质中。经调制或以其它方式生成以传送这种信息的光波或电波、存储器、或诸如盘的磁性或光学存储可以是机器可读介质。任一这些介质可“携带”或“指示”设计或软件信息。当表示或携带代码或设计的电子载波被传送到执行电子信号的复制、缓存、重新传送的程度时,制成新的副本。因而,通信供应商或网络供应商可复制表征本发明一实施例的物品(载波)的副本。
总而言之,已描述了用于管理串行点到点连接的弹性缓冲器的方法和装置的各个实施例。在前面说明书中,本发明已参照其特定示例性实施例进行了描述。然而,可作各种更改和改变而不背离如所附权利要求所述的更广泛精神和范围是显而易见的。例如,尽管已描述将串行点到点链路用作诸如台式、服务器、或笔记本计算机中的印刷线路板上两个器件之间的芯片到芯片连接的系统实施例,但也可使用具有串行点到点链路的缓冲器管理技术,该串行点到点链路是用于将计算机连接到诸如键盘、监视器、外部大容量存储设备、或照相机的外围的外部总线的一部分。点到点链路可不仅用于计算机系统,而且可用于诸如手机单元、远程通信交换机、和数据网络路由器等的通信产品。因此,说明书和附图在此被视为说明性的,而不是限制性的。
权利要求
1.一种方法包括a)在第一集成电路(IC)设备中接收众多符号,所述符号已由第二IC设备传送并经串行点到点链路接收,其中多个符号包括由所述第二IC设备根据预定方法插入数据序列的非数据序列;b)根据载入指针将所述多个符号载入缓冲器;c)根据改变指向缓冲器中不同条目的卸载指针从缓冲器中卸载数据序列和部分非数据序列,其中所述卸载指针在每卸载一个符号时改变一个条目;以及d)为了防止缓冲器的上溢并响应于(i)在缓冲器的入口处检测非数据序列并(ii)通过缓冲器传送指向这种检测的指示符,将卸载指针改变一个以上条目,从而在载入缓冲器时非数据序列的非数据符号在c)中卸载时被跳过。
2.如权利要求1所述的方法,其特征在于,通过检测第一非数据符号后跟所述非数据序列中第二、不同非数据符号的组合,来检测所述非数据序列。
3.如权利要求2所述的方法,其特征在于,传送所述指示符包括响应于检测所述非数据序列的第一和第二非数据符号来产生一标志,并在b)中将标志与所述非数据序列一起载入所述缓冲器时,使所述标志与所述第一非数据符号对齐。
4.如权利要求3所述的方法,其特征在于,响应于在缓冲器的出口处检测标志,在d)中改变卸载指针从而跳过载入缓冲器的第二非数据符号。
5.如权利要求1所述的方法,其特征在于,所述非数据序列是包括非数据符号COM后跟非数据符号SKP的PCI Express序列。
6.一种方法包括a)在第一集成电路(IC)设备中接收众多符号,所述符号已由第二IC设备传送并经耦合所述第一和第二IC设备的串行点到点链路接收,其中多个符号包括由所述第二IC设备插入数据序列的非数据序列;b)根据载入指针将所述多个符号载入缓冲器;c)根据改变卸载指针从缓冲器中卸载数据序列和部分非数据序列,其中所述卸载指针在每卸载一个符号时改变缓冲器的一个条目;以及d)为了防止缓冲器的下溢并响应于(i)在缓冲器的入口处检测非数据序列并(ii)通过缓冲器传送指向这种检测的指示符,在c)中卸载时在包含非数据符号的缓冲器条目上停止卸载指针。
7.如权利要求6所述的方法,其特征在于,通过检测第一非数据符号后跟所述非数据序列中第二、不同非数据符号的组合,来检测所述非数据序列。
8.如权利要求7所述的方法,其特征在于,传送所述指示符包括响应于检测所述非数据序列的第一和第二非数据符号来产生一标志,并在b)中将所述非数据序列载入所述缓冲器时,使所述标志与所述第一非数据符号对齐。
9.如权利要求8所述的方法,其特征在于,响应于在缓冲器的出口处检测标志,在包含非数据序列的第二非数据符号的缓冲器条目上停止卸载指针。
10.如权利要求6所述的方法,其特征在于,所述非数据序列是包括非数据符号COM后跟非数据符号SKP的PCI Express序列。
11.一种集成电路(IC)设备包括缓冲器,具有接收由另一IC设备经串行点到点链路传送的多个符号的输入,所述缓冲器具有多个条目;检测逻辑,具有接收所述多个符号的输入,以及向缓冲器的输入馈入非数据符号序列标识符的输出;第一指针逻辑,提供分别将多个符号依次载入所述缓冲器的多个条目的第一指针;第二指针逻辑,提供分别将多个符号从所述缓冲器的多个条目中依次卸载的第二指针;比较逻辑,比较第一和第二指针;以及指针控制逻辑,具有与所述第二指针逻辑耦合的输出,其中所述指针控制逻辑是响应于a)所述标识符在缓冲器的输出处显现,以及b)所述比较逻辑指示缓冲器不如预定阈值满,在包含非数据符号的条目上停止所述第二指针。
12.如权利要求11所述的IC设备,其特征在于,所述多个符号要根据第一时钟信号接收,所述第一时钟信号根据所述另一IC设备的传送时钟导出。
13.如权利要求12所述的IC设备,其特征在于,所述第一时钟信号从内嵌于包含要由另一个IC设备传送的多个符号的信息流中的传送时钟导出。
14.如权利要求12所述的IC设备,其特征在于,所述第二指针逻辑根据所述IC设备的本地时钟导出的第二时钟信号来推进第二指针,且其中所述第一指针逻辑根据所述第一时钟信号来推进所述第一指针。
15.一种系统,包括处理器;主存储器;以及集成电路(IC)设备,与所述处理器和主存储器通信耦合,并向所述处理器提供I/O访问,所述IC设备具有支持串行、点到点链路的链路接口电路,所述电路包括缓冲器,具有接收在链路上传送的多个符号的输入,所述缓冲器具有多个条目;检测逻辑,具有接收所述多个符号的输入,以及向缓冲器的输入馈入非数据符号序列标识符的输出;第一指针逻辑,提供分别将多个符号依次载入所述缓冲器的多个条目的第一指针;第二指针逻辑,提供分别将多个符号从所述缓冲器的多个条目中依次卸载的第二指针;比较逻辑,比较第一和第二指针;以及指针控制逻辑,具有与所述第二指针逻辑耦合的输出,其中所述指针控制逻辑是响应于a)所述标识符在缓冲器的输出处显现,以及b)所述比较逻辑表示缓冲器不如预定阈值满,在包含非数据符号的条目上停止所述第二指针。
16.如权利要求15所述的系统,其特征在于,所述多个符号要根据第一时钟信号接收,所述第一时钟信号由所述IC设备从所述另一设备的传送时钟导出。
17.如权利要求16所述的系统,其特征在于,所述第一时钟信号从内嵌于包含要由所述另一个设备传送的多个符号的信息流中的传送时钟导出。
18.如权利要求16所述的系统,其特征在于,所述第二指针逻辑根据从根联合体的本地时钟导出的第二时钟信号来推进第二指针,且其中所述第一指针逻辑根据所述第一时钟信号来推进所述第一指针。
19.如权利要求15所述的系统,还包括图形元件;以及其中所述IC设备是将所述处理器通信耦合到主存储器和图形元件的存储器控制器集线器(MCH)。
20.如权利要求15所述的系统,其特征在于,所述IC设备是将所述处理器通信耦合到外围设备的I/O控制器集线器(ICH)。
21.一种用于缓冲器管理的方法,包括在弹性缓冲器的入口处检测预定义的非数据符号序列;传送表示通过所述弹性缓冲器对所述序列检测的标识符;以及在所述弹性缓冲器的出口处处理所述标识符,以在弹性缓冲器中避免上溢和下溢情形之一。
22.如权利要求21所述的方法,其特征在于,所述序列是PCI Express SKP有序组。
23.如权利要求21所述的方法,其特征在于,所述处理被设计成将所述弹性缓冲器保持为半满状态。
24.一种集成电路(IC)设备,包括缓冲器,具有接收由另一IC设备经串行点到点链路传送的多个符号的输入,所述缓冲器具有多个条目;检测逻辑,具有接收所述多个符号的输入,以及向缓冲器的输入馈入非数据符号序列标识符的输出;第一指针逻辑,提供分别将多个符号依次载入所述缓冲器的多个条目的第一指针;第二指针逻辑,提供分别将多个符号从所述缓冲器的多个条目中依次卸载的第二指针;比较逻辑,比较第一和第二指针;以及指针控制逻辑,具有与所述第二指针逻辑耦合的输出,其中所述指针控制逻辑是响应于a)所述标识符在缓冲器的输出处显现,以及b)所述比较逻辑指示缓冲器比预定阈值满,在包含非数据符号的条目上推进所述第二指针。
25.如权利要求24所述的IC设备,其特征在于,所述多个符号要根据第一时钟信号接收,所述第一时钟信号从所述另一IC设备的传送时钟导出。
26.如权利要求25所述的IC设备,其特征在于,所述第一时钟信号从内嵌于包含要由另一个IC设备传送的多个符号的信息流中的传送时钟导出。
27.如权利要求25所述的IC设备,其特征在于,所述第二指针逻辑根据所述IC设备的本地时钟导出的第二时钟信号来推进第二指针,且其中所述第一指针逻辑根据所述第一时钟信号来推进所述第一指针。
28.一种系统包括处理器;主存储器;以及集成电路(IC)设备,与所述处理器和主存储器通信耦合,并向所述处理器提供I/O访问,所述IC设备具有支持串行、点到点链路的链路接口电路,所述电路包括缓冲器,具有接收经所述链路传送的多个符号的输入,所述缓冲器具有多个条目;检测逻辑,具有接收所述多个符号的输入,以及向缓冲器的输入馈入非数据符号序列标识符的输出;第一指针逻辑,提供分别将多个符号依次载入所述缓冲器的多个条目的第一指针;第二指针逻辑,提供分别将多个符号从所述缓冲器的多个条目中依次卸载的第二指针;比较逻辑,比较第一和第二指针;以及指针控制逻辑,具有与所述第二指针逻辑耦合的输出,其中所述指针控制逻辑是响应于a)所述标识符在缓冲器的输出处显现,以及b)所述比较逻辑指示缓冲器比预定阈值满,使所述第二指针推进一个以上条目从而跳过包含非数据符号的条目。
29.如权利要求28所述的系统,其特征在于,所述多个符号要根据第一时钟信号接收,所述第一时钟信号要由所述IC设备从所述另一设备的传送时钟中导出。
30.如权利要求29的系统,其特征在于,所述第一时钟信号从内嵌于包含要由所述另一个设备传送的多个符号的信息流中的传送时钟导出。
31.如权利要求29所述的系统,其特征在于,所述第二指针逻辑根据从根联合体的本地时钟导出的第二时钟信号来推进第二指针,且其中所述第一指针逻辑根据所述第一时钟信号来推进所述第一指针。
32.如权利要求28所述的系统,还包括图形元件;以及其中所述IC设备是将所述处理器通信耦合到主存储器和图形元件的存储器控制器集线器(MCH)。
33.如权利要求28所述的系统,其特征在于,所述IC设备是将所述处理器通信耦合到外围设备的I/O控制器集线器(ICH)。
全文摘要
在第一集成电路(IC)设备中接收多个符号,其中这些符号已由第二IC设备传送并经串行点到点链路接收。这些符号包括已由第二设备插入数据序列的非数据序列。这些符号被载入缓冲器。数据序列和部分非数据序列根据改变着的卸载指针从缓冲器中卸载。为了防止缓冲器的上溢并响应于检测非数据序列,卸载指针改变一个以上条目,从而载入缓冲器的非数据序列的非数据符号在从缓冲器卸载时被跳过。在另一实施例中,为了防止缓冲器的下溢,卸载指针在卸载时在包含非数据符号的缓冲器条目上停止。还描述和声明了其它实施例。
文档编号G06F5/14GK1890627SQ200480036121
公开日2007年1月3日 申请日期2004年12月23日 优先权日2003年12月31日
发明者D·J·施密特, D·M·普夫, S·科塔姆雷迪, L·雷诺 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1