CN101681277A - 用以减缓crc负担之命令封包包装 - Google Patents

用以减缓crc负担之命令封包包装 Download PDF

Info

Publication number
CN101681277A
CN101681277A CN200780046317A CN200780046317A CN101681277A CN 101681277 A CN101681277 A CN 101681277A CN 200780046317 A CN200780046317 A CN 200780046317A CN 200780046317 A CN200780046317 A CN 200780046317A CN 101681277 A CN101681277 A CN 101681277A
Authority
CN
China
Prior art keywords
package
cell
error detection
link
data
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
Application number
CN200780046317A
Other languages
English (en)
Other versions
CN101681277B (zh
Inventor
W·A·休斯
C·杨
G·D·唐利
M·K·费尔蒂希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries US Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN101681277A publication Critical patent/CN101681277A/zh
Application granted granted Critical
Publication of CN101681277B publication Critical patent/CN101681277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/0011Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding applied to payload information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems

Abstract

本发明之实施例中的节点包括配置以调度待传送封包于链路上的封包调度器和连接到该封包调度器并配置以传送该等封包于所述链路上之接口电路。所述接口电路配置以产生包含该等封包的错误侦测数据,其中,所述错误侦测数据传送于所述链路上的封包间。接口电路配置用错误侦测数据之一个传输包含达N个封包,其中N为>=2的整数。用错误侦测数据之一个传输包含的封包的数目由所述接口电路依于可利用来传送的封包而决定。于另一个实施例中,接口电路一个传输以根据被耗用于所述链路上之带宽数量而动态地改变于所述链路上所述错误侦测数据之传输的频率。

Description

用以减缓CRC负担之命令封包包装
技术领域
本发明系关于用于譬如计算机系统之电子系统之互连接(interconnect)之领域。
背景技术
系统(譬如集成电路和其它的电性装置)中之电子组件经由界定的接口(譬如组件之间之链路)而彼此通讯。数据通常系依据时脉讯号而传送于链路上。也就是说,数据系反应于时脉讯号而在链路上被驱动和取样。最近,已经定义双倍数据率链路,其中,根据时脉讯号之上升和下降波缘而驱动/取样数据。
关联于链路之时脉之频率,连同其宽度(于传输数据之位)界定于链路之带宽(每单位时间传输之数据量)。增加带宽(对于较大之传输,并亦减少等待时间(latency))之一种方法为增加时脉频率。然而,当频率增加时,因为譬如噪音、时脉不确定性、歪斜(skew)、上升和下降时间、等等之因素在较短时脉周期会变成较大因素,所以,错误率亦增加。于另一观点,数据出现于链路上经过较短时间周期,而对于错误之裕度(margin)较小。于某一点,错误率增加至影响可靠度之水准。
欲减轻增加的错误率,可于链路上执行错误侦测(及可能的更正)。例如,于链路上通常可执行循环冗余校验(cyclical redundancy check,CRC)。对于CRC,于链路上各数据传输之后系接着从该数据产生之CRC码。接收器能够产生相同的CRC码,并比较所产生之CRC码与所接收之码以侦测错误。接收器能报告错误至传送器,所述传送器能再传送数据或采取其它的更正动作。
对于相对大的数据传输,附加于所述传送之尾端之CRC码不会对带宽造成很大的影响(因为附加的码相较于所传送之数据为很小)。然而,该CRC码的确影响等待时间,这是因为该接收器通常必须储存由CRC所包含之整个数据直到CRC被接收为止。若该CRC确认数据系正确的,则传送该数据。于许多情况下,于传输中之第一个数据为最关键数据(例如,于快取系统(caching system)中,现正需求之数据被首先传送,其后接着是用来储存之快取块的剩余数据)。于此等情况,增加等待时间代表效能之减少。
再者,于相干系统(coherent system)中,组件之间之许多的传输系相当小之讯息(例如,探索搜寻最近复制之数据、探索反应、对于来源和目标之完成指示、等等)。CRC于这些小讯息之影响是明显的,增加讯息之大小达100%(对于与CRC码相同大小之讯息)。增加50%或30%大小也很常见。于相干系统中,于链路上之大数量之传输为该等小的讯息,因此附加上CRC耗用增加的带宽是很明显的。
发明内容
于一个实施例中,配置节点以连接链路。所述节点包括配置以传送封包于所述链路上之传送电路,各封包包括一个或更多个信元(cell)。所述节点复包括连接到所述传送电路并配置以调度待由所述传送电路所传送之信元之信元调度器。所述信元调度器配置以调度至少一个待传送的错误侦测信元,所述错误侦测信元包含前面的封包,以及若第二封包为可用于调度,则所述信元调度器配置以调度代替所述错误侦测信元之第二封包的信元。当后续调度时,错误侦测信元包含前面的封包和所述第二封包。
于另一个实施例中,配置节点以连接链路,所述节点包括配置以调度待传送封包于链路上的封包调度器;以及连接到该封包调度器之接口电路。所述接口电路配置以传送封包于链路上,并产生包含封包的错误侦测数据。所述错误侦测数据传送于链路上封包间,以及配置接口电路用一个传输错误侦测数据包含达N个封包(此处N为大于或等于2的整数)。用一个传输错误侦测数据包含的封包数藉由所述接口电路依于可利用来传送的封包而决定。
于另一个实施例中,配置节点以连接链路,所述节点包括配置以调度待传送封包于链路上的封包调度器。连接到封包调度器并配置以传送封包于所述链路上,接口电路被配置以产生包含该等封包的错误侦测数据。所述接口电路配置以监视链路上所耗用之带宽量,并根据该带宽量而动态地变更于链路上错误侦测数据之传输频率。
附图说明
以上之详细说明参照所附图式,现将简短说明该等图式。
图1为计算机系统之一个实施例之方块图。
图2为图1中所示二个节点之更详细说明之一个实施例之方块图。
图3为显示用于控制缓存器之控制栏之一个实施例之方块图。
图4为显示图2中用来调度命令信元之信元调度器的一个实施例之操作的流程图。
图5为显示图2中用来调度数据信元之信元调度器之一个实施例之操作之流程图。
图6为显示图2中用来动态地改变CRC操作之信元调度器之一个实施例之操作之流程图。
图7为显示接收器之一个实施例之操作之流程图。
图8为显示控制于相互连接的编码之一个实施例之表。
图9为显示图8中所示编码之范例之方块图。
图10为显示控制于相互连接的编码之另一个实施例之表。
虽然本发明可容易作各种之修饰和替代形式,但是在此系由图式中之范例显示及详细说明本发明之特定实施例。然而,应暸解到此处特定实施例之图式及详细说明并不欲用来限制本发明为所揭示之特定形式,反之,本发明将涵盖所有落于如所附申请专利范围内所界定之本发明之精神和范围内之修饰、等效和替代内容。
【主要组件符号说明】
10接收器电路、接收器、接收电路
12传送电路      14信元调度器
16CRC产生器     18信元队列
20忙线计数器    22缓存器、控制缓存器
24封包调度器    26历史缓冲器
28处理器核心    30确认通知(Ack)计数器
32CRC校验电路   34信元队列
36接收电路      38传送电路(传送器)
40封包调度器            42数据缓冲器
44命令缓冲器            50容量位
52封装致能位            54插入致能位
56插入控制栏            58动态封装致能位
60动态插入致能位        62、64临限栏
70、72、74、...、84方块
90、92、...、100方块    110、112、...、122方块
130、132、...、150方块  160、162、...、170命令封包
300计算机系统           312A至312D处理节点
314A至314D存储器        316A至316D存储器控制器
318A、318B、...、318L接口电路
320A至320D输入/输出(I/O)装置(雏菊链配置之装置)
324、324A、324B、...、324H链路
具体实施方式
下列之说明相关于在其链路上执行错误侦测之计算机系统。然而,于组件之间的链路上通讯数据之任何电子系统都能够执行此处之说明。一般而言,链路可以包括从一个组件至另一个组件之通讯路径。于不同的实施例中,链路可以是双向或单向的。链路可以具有任何的宽度,并可以具有一个或更多个关联其时脉数据在链路上之时脉周期。而且,CRC将用作为错误侦测数据之例子。一般而言,CRC产生为由CRC所包含之数据位之结合,依照由传送器和接收器所使用之预先定义之公式。然而,可以使用任何的错误侦测数据。一般而言,错误侦测数据包括允许侦测(和选择性地更正)于传输数据中之错误之冗余数据。举例而言,错误侦测数据可以是基于同位的(parity),或者可以是相似于用于存储器系统中之各种错误侦测/更正码(ECC),而使得彼等更正单一位错误和侦测双位错误。亦可使用更正和侦测大量错误之ECC。错误侦测数据例如可基于汉明码(Hamming Code)或里德-索洛蒙码(Reed-Solomon Code),或定义以侦测和/或更正错误之任何其它的码。错误侦测数据之例子可称之为“包含(covering)”一组数据。若于数据中之错误使用所述错误侦测数据为可侦测的,则所述错误侦测数据包含该数据(虽然错误侦测数据有限制,因此于数据中足够大之错误也许不被侦测到,即使错误侦测数据包含所述错误的数据)。
兹翻到图1,显示计算机系统300之实施例。于图1之实施例中,计算机系统300包含几个处理节点312A、312B、312C、和312D。各处理节点经由包含于各个别处理节点312A至312D内之存储器控制器316A至316D而连接至个别的存储器314A至314D。此外,处理节点312A至312D包含接口电路于处理节点312A至312D之间通讯。例如,处理节点312A包含接口电路318A用来与处理节点312B通讯、接口电路318B用来与处理节点312C通讯、和接口电路318C用来与又另一处理节点(未显示)通讯。同样情况,处理节点312B包含接口电路318D、318E、和318F;处理节点312C包含接口电路318G、318H、和318I;而处理节点312D包含接口电路318J、318K、和318L。处理节点312D连接以经由接口电路318L而与复数个输入/输出装置(例如,以雏菊链配置之装置320A至320D)通讯。
处理节点312A至312D执行用于处理节点间通讯之基于封包的接口。于本实施例中,接口执行为数组单方向链路(例如,链路324A用来传送来自处理节点312A的封包至处理节点312B,而链路324B用来传送来自处理节点312B的封包至处理节点312A)。其它组之链路324C至324H用来传送其它处理节点之间的封包,如图1中所示。一般而言,各组链路324可包含一个或更多个数据线路、一个或更多个对应于数据线路之时脉线路、和一个或更多个表示被输送封包的类型之控制线路。链路可以快取一致方式操作,以用于处理节点间之通讯,或以非一致方式,以用于处理节点和I/O装置(或总线桥接器至譬如外围组件互连接(Peripheral Component Interconnect;PCI)总线或工业标准架构(Industry Standard Architecture;ISA)总线之习知结构之I/O总线)之间之通讯。再者,链路可以使用如所示I/O装置之间雏菊链接构之非一致方式操作。应注意的是,待传送从一个处理节点至另一个处理节点的封包可以通过一个或更多个中间节点。举例而言,由处理节点312A传送至处理节点312D的封包可通过处理节点312B或处理节点312C之其中任一者,如图1中所示。可使用任何适用的路径算法(routingalgorithm)。计算机系统300之其它实施例可包含较图1所示之实施例更多或更少之处理节点。
一般而言,封包可于节点之间链路324上传输为一个或更多个位时间。给定的位时间可参考于对应时脉线路上时脉讯号之上升或下降波缘。也就是说,上升和下降波缘二者可用来传输数据,而使得数据率为时脉频率之二倍(二倍数据率(double data rate),或DDR)。封包可包含用来初始化异动(transaction)之请求封包(request packet)、用来维持快取一致性之探索封包(probe packet)、和用来反应探索和请求(及用来表示由异动之来源/目标之完成)之反应封包(response packet)。一些封包可指示数据移动,而正被移动之数据可包含于数据移动封包(datamovement packet)中。例如,写入请求包含数据。具有坏数据(dirty data)之探索反应以及读取反应二者包含数据。因此,一般而言,封包可包含定义封包的命令部分、其来源和目的地、等等。封包可在命令部分后选择性地包含数据部分。为了可一致快取操作,数据可以是快取数据块大小,或者可以更小(例如,非可快取之读取/写入)。
除了存储器控制器和接口逻辑之外,处理节点312A至312D可包含一个或更多个处理器。广言之,处理节点包括至少一个处理器和可选择地包含存储器控制器用来与存储器和需要之其它逻辑通讯。一个或更多个处理器可包括芯片多重处理(chip multiprocessing;CMP)或芯片多绪(chip multithreaded;CMT)集成电路于处理节点中或形成处理节点,或者处理节点可具有任何其它所希望之内部结构。任何程度之积体化或任何数目之分离组件可形成节点。其它类型的节点可包含任何所希望之电路和用来于链路上通讯之电路。例如,于一个实施例中,I/O装置320A至320B可以是I/O节点。
存储器314A至314D可包括任何适当的存储器装置。例如,存储器314A至314D可以包括一个或更多个RAMBUS DRAM(RDRAM)、同步DRAM(SDRAM)、DDR SDRAM、静态RAM、等等。计算机系统300之地址空间被划分于存储器314A至314D之中。各处理节点312A至312D可包含存储器映图用来判定哪些地址被映对至哪个存储器314A至314D,并因此判定特定地址之存储器请求将路由至哪个处理节点312A至312D。于一个实施例中,对于计算机系统300内地址之相一致点为连接至储存对应于该地址之字节之存储器之存储器控制器316A至316D。换言之,存储器控制器316A至316D负责确保对应的存储器314A至314D之各存储器存取系快取一致方式发生。存储器控制器316A至316D可以包括用来介接存储器314A至314D之控制电路。此外,存储器控制器316A至316D可包含用来队列存储器请求之请求队列。
一般而言,接口电路318A至318L可以包括各种的缓冲器用来接收来自链路的封包,并用来缓冲待传送于链路上的封包。计算机系统300可使用任何适当的用来传送封包的流程控制机制。举例而言,于一个实施例中,各接口电路318储存计数数量之在链路之另一端接收器内之各类型缓冲器,接口逻辑系连接至所述链路。接口逻辑不传送封包,除非该接收接口逻辑具有空闲的缓冲器以储存该封包。当藉由向前路由传送封包而清空接收缓冲器时,接收接口逻辑传送讯息至传送接口逻辑以指示缓冲器已空闲。此种机构可称之为“联票式(coupon-based)”系统。
I/O装置320A至320B可以是任何适当的I/O装置。举例而言,I/O装置320A至320B可以包含用来与另一计算机系统通讯之装置,而该等装置可以连接至该另一计算机系统(例如,网络适配卡或调制解调器)。再者,I/O装置320A至320B可以包含视讯加速器、声卡、硬盘或软盘机或驱动控制器、SCSI(小计算机系统接口)转接器和电话卡、声音卡、和譬如GPIB或场总线适配卡之各种数据获得卡。再者,任何实施为卡之I/O装置亦可施行为于系统300之主电路板上之电路和/或执行于处理节点之软件。应注意的是,术语“I/O装置”和术语“外围装置”于此处系表示同义。
再者,一个或更多个处理器可执行于更传统的个人计算机(PC)结构中,该更传统的个人计算机结构包含一个或更多个处理器之接口,以桥接至一个或更多个I/O互连接和/或存储器。
于一个实施例中,链路324A至324H可与由HyperTransportTM(HT)国际公司所公布之HT规格,尤其是第3版兼容。于此链路上之协议从HT规格修定,以支持于链路上之一致性,如上说明。然而,其它的实施例可执行任何的链路和于所述链路上的任何协议。再者,此处所说明之CRC技术亦可使用于非一致性链路。
兹翻到图2,显示处理节点312A至312B的一个实施例之方块图,例示节点之一个实施例之额外的详细说明。于例示的实施例中,处理节点312A包括如图1中所示之接口电路318A以及封包调度器24、历史缓冲器26、和处理器核心28。尤其是,接口电路318A包含接收器电路10、传送电路12、信元调度器14(包含CRC产生器16)、信元队列18、忙线计数器20、和一个或更多个缓存器22。接收器10连接至链路324B以接收来自处理节点312B的封包,并连接至封包调度器24。控制缓存器22和忙线计数器20连接至信元调度器14,信元调度器14连接至传送电路12和信元队列18。信元队列18连接至传送电路12和封包调度器24。传送电路12连接至链路324A,以传送封包至处理节点312B。封包调度器24复连接至历史缓冲器26、处理器核心28、和各种其它的封包来源。
处理节点312B包括接口电路318D(如图1中所示)、以及封包调度器40、数据缓冲器42、和命令缓冲器44。接口电路318D包括确认通知(Ack)计数器30、CRC校验电路32、信元队列34、接收电路36、和传送电路38。接收电路36连接至链路324A、信元队列34、和CRC校验电路32。CRC校验电路32连接至Ack计数器30(Ack计数器30复连接至传送器38)和信元队列34(信元队列34复连接至封包调度器40、数据缓冲器42、和命令缓冲器44)。传送电路38连接至链路324B。
链路324A更详细显示于图2中,并包含CAD[n:0]、CTL[m:0]、和CLK[m:0]。CAD线路可载送封包位时间,而CLK线路可包括一个或更多个位时间所参考之时脉线路。CTL线路可指示载送于给定位时间之数据之类型,如于下文中之更详细说明。有n条CAD线路,其中n是2的整数羃次先以乘8再减去1。也就是说,n可以是7、15、31、等等。因此,每位时间可传送2的羃次个字节于CAD线路。有m条CLK和CTL线路,其中m系等于n+1除以8。也就是说,每CAD之字节有一条CLK线路和一条CTL线路。CLK线路为对应于8CAD线路之时脉参考。
虽然各种实施例可有不同的宽度,但是于链路上传输之最小单位可定义为信元(cell)。也就是说,于链路上没有封包是小于一个信元大小,并且封包是信元长度的整倍数。于不同的实施例中信元能够是任何的大小,但是于一个实施例中为32位(4字节)。若链路窄于一个信元,则一旦信元传输开始,所述信元之剩余部分将连续地传送。因此,举例而言,可执行32位信元和16位链路,而各信元于CAD线路上传送为二个连续的位时间。
封包调度器24可调度封包用于链路324A上传输,并且可传输封包的信元至信元队列18(或者可引致封包的信元被传送到信元队列18,若他们不储存在封包调度器24中)。信元调度器14可调度来自信元队列18之信元用于传输经过传送电路12。一般而言,于连续位时间期间可调度封包的信元,虽然于一个实施例中一些非数据移动封包可在前面数据移动封包的数据中被调度。若信元被调度,则信元调度器14引致信元队列18输出信元至传送电路12,传送电路12传送信元于链路324A(用适当的CTL线路编码)。若信元未被调度,则信元调度器14可调度非操作(noop)命令用于传输。于一个实施例中,noop命令可包含缓冲器释放栏以指示于节点312A中为可取得缓冲器以接收来自节点312B的封包。于各种实施例中,可藉由接口电路318A而维持缓冲器释放计数,或可藉由封包调度器24而提供缓冲器释放计数。
配置信元调度器14以产生用于各封包的CRC(使用CRC产生器16)。藉由隐含值(default),信元调度器14可附加用于封包的CRC至该封包的尾端,提供每封包于链路上之错误侦测。于一个实施例中,CRC包括一个信元之数据,虽然其它的实施例中可执行多个信元之CRC。接着于调度封包的最后一个信元后,信元调度器14可调度CRC信元。
于一个实施例中,可配置接口电路318A(以及尤其是信元调度器14)以封装(pack)二个或更多个封包在一起并用一个CRC包含他们。也就是说,并非先传送第一封包和其CRC,然后第二封包具有其各自之CRC,信元调度器14可传送所述第一封包,接着是所述第二封包,再接着传输一个包含了该二封包的CRC。可配置某些实施例以封装多于二个封包(例如,达N个封包,此处N是大于或等于2的整数)。藉由封装多个封包在一起用于一个CRC传输,相较于纯粹对每封包的CRC,可减少于互联机上CRC传输之经常负担(overhead)。尤其对于小的封包,CRC负担之减少可明显减少于链路上耗用之带宽。于一个实施例中,若封包可用于传输(例如,于信元队列18)位于或接近前面封包的最后一个信元之传输端末,则该等封包可予封装。尤其是,于一个实施例中,信元调度器14可调度封包的最后一个信元并根据另一封包的信元或诸信元是否在信元队列18中而决定是否将调度CRC或另一个封包。
于一个特定实施例中,可配置信元调度器14以封装各包含命令但是没有数据的封包(例如,无数据封包,或者仅有命令的封包)。因为于相干链路上经常有不包含数据之通讯以维持一致性,因此于相干链路上此等封包的发生率(incidence)也许高(虽然封装亦可施行于非相干链路上)。于相干链路上,仅有命令的封包可以包含例如探索请求、一些探索反应、读取请求、和已完成反应。于一个实施例中,取决于系统中命令和地址大小,仅有命令的封包可包括1至3个信元。以一个信元CRC和二个1信元命令,仅封装二个封包在一起用于CRC传输可造成减少25%带宽消耗(从4个信元至3个信元)。
于一个实施例中,可配置信元调度器14插入一个或更多个部分CRC传输于封包内。各部分CRC可包含在该插入前之部分的封包(积聚于封包的开始,即使已做了其它的部分之CRC插入)。举例而言,命令和数据封包可以是长的,以及传送传输之第一数据也许对于效能是重要的。藉由在将被传送之第一数据之后插入部分之CRC,所述第一数据可用部分之CRC而于该接收器被确认,并且可以传送。若于稍后CRC侦测到错误,则传送数据仍已知为有效且可以使用。因此,于一些实施例中,藉由允许提早传送数据而可改进效能。
各种实施例如需要时可执行CRC封装和部分CRC插入,或仅一种。
CRC封装和部分CRC插入于控制缓存器中也许可以规划。详言之,也许使能够封装和/或插入。若也许封装超过一个封包,则封装之最大量的封包亦可以规划。若在封包内支持多个部分CRC插入点,则该等使用的插入点也许可以规划。
于一个实施例中,可以动态方式控制封装和部分CRC插入。一般而言,信元调度器14可以监视于链路324A上之带宽耗用量,并且可以根据带宽来调整CRC传输。于一个实施例中,于链路上信元被传输各位时间。若没有信元传送,则可传送noop命令。因此,信元调度器14可以监视noop命令作为不耗用的带宽而其它的信元作为耗用的带宽(封包信元、CRC信元、等等)。若带宽耗用高(例如,超过临限值),则可实施CRC封装(如果致能),以减少CRC带宽耗用。此外,可暂时停止部分CRC插入(或减少,若执行多重CRC插入)。如果希望的话,可以分离的方式测量用于CRC封装和用于部分CRC插入控制之带宽。
于例示实施例中,可使用忙线计数器20来追踪带宽。计数器例如可以是饱和计数器(saturating counter),其对每一非noop信元增值而对每一noop信元减值。因此,该忙线计数器为最近带宽耗用之约略值。根据忙线计数器值,可以动态地改变CRC封装和部分CRC插入。
接收电路36可以接收来自链路324A之信元。根据CTL线路的编码和在信元内可能的译码,接收电路36可以决定所述信元是封包中之命令或数据(或插入命令、封装命令、或部分的CRC)。接收电路36可以储存接收之信元(和任何译码/控制数据)于信元队列34中,并亦可递送信元至CRC校验电路32。最后,CRC信元被接收并可与由CRC校验电路32所产生之CRC相比较,以侦测错误或确认接收之信元。若没有错误,则CRC校验电路32可发讯信元队列34以传送该确认之信元。此外,若封包已接收完全而没有错误,则CRC校验电路32可以增值Ack计数器30。可传送Ack计数器30之值(藉由传送电路38,作为于链路324B上之Ack封包)至处理节点312A,以确认通知成功地接收封包。处理节点312A可以保持传送的封包(例如,藉由历史缓冲器26)直到知道他们于处理节点312B被正确接收为止。当接收到确认通知封包时(并由接收器10提供至封包调度器24),可以删除该对应的封包。
一般而言,接口电路318D可以传送确认的封包数据至目标。该目标可以是内部(例如,节点312B内之处理器或其它电路)或外部。于传送至目标之第一步骤可以是写入信元于命令缓冲器44或数据缓冲器42中(依于信元是否为命令或数据而定)。接口电路318D亦可以提供关于封包的信息于封包调度器40,封包调度器40可后续地调度用于输送至内部目标的封包或经由另一接口电路(图2中未显示)传送。
若CRC校验电路32的确侦得错误,则传送电路38传送Ack封包,该Ack封包发讯所述错误并提供表示最后已知好的封包的Ack计数。封包调度器24可以删除来自历史缓冲器26之正确接收的封包,并加载剩余的封包回到封包调度器24中待再传送。详言之,封包调度器24可以耗尽(drain),接口电路318A可以重设所述链路,而封包调度器24可以开始再传送于历史缓冲器26中所指明的封包。在其它实施例中,错误处理可以其它方式实施,而不自动地再传送错误接收的封包。
此外,可配置传送电路38以传送缓冲释放命令,接收电路10可传送该缓冲释放命令至封包调度器24。传送电路38可复传送由封包调度器40调度的封包(接收自不同的来源譬如内部来源或于节点312B中之另一接口电路其中一者),相似于说明用于封包调度器24和接口电路318A之操作。事实上,节点312A至312B可以是对称的,说明于各节点之操作和电路亦可包含于另一节点中。为了简化目的,并非所有的细节皆已经显示于该二个节点中。而且,其它的接口电路318B至318C和318E至318L可以是与接口电路318A和318D对称的。
一般而言,封包调度器24可以接收来自各种内部来源(例如,图2中所示之处理器核心28、图1中所示之存储器控制器316A、等等),以及经过各种接口电路318A至318C接收来自外部来源的封包。封包调度器24可以直接储存封包,或者可以储存封包的指针(indicator)。实际的封包可储存于节点312A中分布的命令和数据缓冲器中(例如,相似于处理节点312B中之命令和数据缓冲器42和44),以及当封包被调度时,封包数据可从其所储存之命令和数据缓冲器中提供。
兹转至图3,显示于控制缓存器22中字段之一个实施例之方块图。其它的实施例可包含图3中所示者之额外的和/或替代的数据。一些栏说明为位,但是于其它的实施例中可以是多位栏。
图3中之栏包含容量位50、封装致能位52、插入致能位54、插入控制栏56、动态封装致能位58、和动态插入致能位60,或可选择包含一个或更多个临限栏(例如,临限栏62或64)。
容量位50可以是只读位报告,该只读位报告是否节点能够执行CRC封装或部分CRC插入。软件可以检核容量位50,以确保致能功能之前节点能够执行操作(分别使用封装致能位52和插入致能位54)。于其它实施例中,对于各类型之操作可以提供个别的能力位。
可编码插入控制栏56以控制于封包中哪些插入点具有部分CRC插入。于一个实施例中,封包的数据部分可划分成N个相等大小之部分(或节(beat)),其中N为大于或等于2的整数。举例而言,于一个实施例中N可以是4。部分CRC插入也许有效于各组之节之间、以及命令部分和第一节之间。详言之,于一个实施例中,由于插入下列各项之间而可支持编码:(1)第一和第二节;(2)第一和第二节之间以及命令和第一节之间;(3)第一和第二节之间、命令和第一节之间、以及第二和第三节之间;或者(4)第一和第二节之间、命令和第一节之间、第二和第三节之间、以及第三和第四节之间。可提供插入控制栏56之另一种编码以表示没有插入,以及可消除插入致能位54。于另一个实施例中,对于各可能插入点可以使用一位有效方式编码(one-hot encoding)以允许插入之任何组合,或者支持其它的插入组合,又于另一个实施例中,可支持仅插入于第一和第二节之间,以及可提供插入致能位54而没有额外的控制栏。
若超过二个封包可封装为一个CRC传输,则也许有封装控制栏以控制最大数目之待封装封包。
动态封装致能位58和动态插入致能位60可以依照带宽耗用分别致能CRC封装和部分CRC插入之动态变化。于一些实施例中,可使用一个或更多个临限栏62和64而规划引起变化之临限值。举例而言,可支持不同的临限值用于CRC封装和部分CRC插入。可使用不同的临限值以控制不同量之CRC封装和/或部分CRC插入。举例而言,当超越了临限值,在封包中可造成越来越少的部分CRC插入,开始以稍后插入于封包中并行进传送,最后移去第一和第二节之间插入(在移去命令部分和第一节之间插入之后)。于其它实施例中,可固定临限值。
兹转至图4,显示信元调度器14反应于调度命令信元之一个实施例之操作的流程图(也就是说,信元为封包的命令部分之部分)。详言之,于此实施例中,命令信元为无数据封包的部分,虽然其它的实施例可支持CRC封装用于包含数据以及命令部分的封包。为了容易了解,各方块以特殊的次序显示。然而,可以使用其它的次序。再者,可藉由于信元调度器14中之组合逻辑电路而并行实施诸方块。诸方块、结合之方块、或整个的流程可在多个时脉周期上以管线方式实施。
若调度之命令信元不为封包中之最后一个命令信元(决定方块70,“否”支路),则信元调度器14可调度于命令中之次一个信元(方块72)。若调度之命令信元是封包中之最后一个命令信元(决定方块70,“是”支路),并且CRC封装不经由致能位52致能(决定方块74,“否”支路)、最大数的封包已被封装(决定方块76,“是”支路),或者动态控制被致能并指示另一个命令将不被封装(决定方块78,“否”支路)其中任一情况,则信元调度器14可调度CRC信元(方块80)。此外,若没有可取得另一命令(Cmd2)待调度(决定方块82,“否”支路),则信元调度器14可调度CRC信元(方块80)。当调度并传送CRC信元,则可再初始化由CRC产生器16所维持之累加CRC,以开始累加CRC用于次一个封包。
若可取得另一命令(决定方块82,“是”支路),则可调度次一个命令(Cmd2)之第一信元(方块84)。也就是说,在此实施例中,决定是否封装命令是在已调度现用命令之最后一个信元时作成。信元调度器14可不等待另一命令,取而代之的是,信元调度器14可附加CRC而不封装,若所述第二命令为不可取得以待封装。其它实施例可决定是否在或接近现用封包的最后一个信元之调度时间封装,或者在如所希望之任何其它的时间封装。
于一个实施例中,若传送noop命令(未与任何前面的命令封装)以及藉由封包调度器24调度命令,则即使封装未被致能(或者现正动态地禁能),信元调度器14可封装该命令与noop命令。于此情况,可藉由封装该命令与noop命令而非藉由在新近调度命令之前传输用于noop命令之分离的CRC而实现减少用于该命令之等待时间。
虽然上述说明相关信元调度器14之操作,但是接口电路318A之操作整体看来可以相似,即使接口电路318A之内部结构不同于图2之实施例。举例而言,可接收封包用于传输、可根据另一封包传输之有效性而决定封装、根据带宽耗用而控制可以是动态的、等等。
兹转至图5,显示说明反应于调度数据信元(亦即,封包的数据部分之部分的信元)的信元调度器14之一个实施例之操作的流程图。为了容易了解,各方块以特殊的次序显示。然而,可以使用其它的次序。再者,可藉由于信元调度器14中之组合逻辑电路而并行实施诸方块。诸方块、结合之方块、或整个的流程可在多个时脉周期上以管线实施。
若调度之数据信元是封包中之最后一个数据信元(决定方块90,“是”支路),则信元调度器14可以调度CRC信元用于传输(方块92)。于此情况,CRC信元是包含整个封包的CRC,当在前面循环中累加遍及封包的信元。于此情况,CRC亦可被再初始化,以准备次一个封包。若调度之数据信元不是封包中之最后一个信元(决定方块90,“否”支路),并且CRC插入不经由致能位54致能(决定方块94,“否”支路)、该封包不在插入点(决定方块96,“否”支路),或者动态控制被致能并指示于此点CRC插入将不被执行(决定方块98,“否”支路)其中任一情况,则信元调度器14可调度次一个数据信元(方块100)。否则,信元调度器14可调度CRC信元(方块92)。于此情况,CRC信元为包含封包达现用点之部分CRC插入。于此情况CRC未再初始化。若各节(beat)包含多于一个信元以及现有信元不为节之端末,或者若现有插入点不经由插入控制栏56致能,则数据封包可不在插入点,如由决定方块96所表示。
虽然上述说明相关信元调度器14之操作,但是接口电路318A之操作整体来看可以相似,即使接口电路318A之内部结构不同于图2之实施例。举例而言,可接收封包用于传输、若被致能的话可以执行CRC插入、根据带宽耗用而控制可以是动态的、等等。
兹转至图6,显示例示信元调度器14之一个实施例之操作以监视带宽和动态地改变CRC封装和/或部分CRC插入的流程图。为了容易了解,各方块以特殊的次序显示。然而,可以使用其它的次序。再者,可藉由于信元调度器14中之组合逻辑电路而并行实施诸方块。诸方块、结合之方块、或整个的流程可在多个时脉周期上以管线实施。
若信元调度器14调度新的信元用于传输(决定方块110,“是”支路),则信元调度器14可增值忙线计数器20(方块112)。若信元调度器14调度noop封包(NOP封包--决定方块114,“是”支路),则信元调度器14可减值忙线计数器20(方块116)。如前面所提及,忙线计数器20可以是饱和计数器。也就是说,对计数器增值可将计数器20中之全部二进制1饱和(而其后增值不会改变该值直到发生减值并减少其值为止),以及对计数器减值可将计数器20之全部二进制0饱和(而其后减值不会改变该值直到发生增值并增加其值为止)。该值可处理为未加符号整数。于一个实施例中,可定义noop封包为未包含任何缓冲器释放计数之noop封包,因为此种noop封包可以是用来传输计数之仅有机制。应注意的是,方块110至116为独立于剩余的流程图,并可表示监视对此实施例之耗用带宽。
若该忙线计数器超过临限值(决定方块118,“是”支路),则认为带宽耗用是高的。因此,可以禁能部分CRC插入,并可致能CRC封装,以保留带宽。另一方面,若该忙碌计数器并未超过临限值(决定方块118,“否”支路),则认为带宽耗用是低的。能够致能CRC插入,以允许较早的传输数据,并且可禁能CRC封装,以改进封包传输等待时间,于此种情况,因为可取得带宽且因此能使用于额外的CRC传输而不会影响效能(方块122)。
方块118至122可代表分别于图4及图5中部分的决定方块78和90。也就是说,若致能动态控制,则方块118至122可决定动态控制是否指示CRC封装或部分CRC插入是可允许的。方块120可对应于决定方块78,“是”支路,以及对应决定方块90,“否”支路。方块122可对应决定方块78,“否”支路,以及对应决定方块90,“是”支路。
如前面所提及的,于一些实施例中,可支持超过一个临限值。例如,可以有临限值对应于部分CRC插入之各可能组合。当带宽消耗增加时,可以减少部分CRC插入之数目,以加上至少全部值开始(例如,那些较接近数据封包端末之值、随后是插入于命令部分和数据部分之间之值、和最后插入于第一和第二数据节之间之值)。同样情况,若超过二个封包可封装用于CRC,则各种临限值可用于增值(当超过临限值时)封装CRC封包的数目。
虽然上述说明相关信元调度器14之操作,但是接口电路318A之操作整体看来可以相似,即使接口电路318A之内部结构不同于图2之实施例。举例而言,可监视带宽耗用而动态控制可根据侦测之带宽耗用。
图6之实施例亦显示依据所耗用带宽之量而用于改变CRC传输之频率之一般机构。当带宽耗用增加时,CRC传输之频率降低(例如,藉由增加CRC封装和/或藉由减少部分CRC插入)。当带宽耗用减少时,CRC传输之频率增加(例如,藉由禁止CRC封装和/或藉由增加部分CRC插入)。
兹转至图7,显示例示接口电路318D(尤其是接收器电路36和CRC校验电路32用于例示实施例,虽然其它的实施例可以使用不同的结构)之一个实施例之操作之流程图,用来操控封装CRC和部分CRC插入。为了容易了解,各方块以特殊的次序显示。然而,可以使用其它的次序。再者,可藉由于接口电路318D和/或接收器电路36/CRC校验电路32中之组合逻辑电路而并行实施诸方块。诸方块、结合之方块、或整个的流程可在多个时脉周期上以管线实施。
接收器电路36可译码来自控制线路CTL[n:0]之控制数据(若经过数个位时间接收信元则可能经历数个位时间),以决定接收哪种类型之信元(方块130)。若信元为封包的命令信元或数据信元(决定方块132,“是”支路),则信元可放置在信元队列34中用于CRC确认(方块134)。命令信元可被部分译码,例如,识别关联于封包的虚拟信道。CRC校验电路32可以累加来自接收信元之CRC(方块136)。或者,信元可放置在信元队列34,而CTL数据于处于队列等待后可被译码。
若信元非为命令或数据信元,则所述信元为CRC信元(决定方块132,“否”支路)。CRC校验电路32可比较CRC信元与累加之CRC,以决定是否已侦测到错误(方块138)。CRC可以是部分CRC或全部CRC。若未侦测到错误(决定方块140,“否”支路),则由CRC所包含之命令/数据信元可从信元队列34传送(方块142)。若所述传送为部分传送,由于在部分CRC没有侦测之错误,则接口电路318D可以纪录哪个数据已被传送(方块144)。若稍后于封包中侦测得错误,则可使用该信息,而使得当封包被再传送时,前面传送的数据不会被再传送。若所述传送为封包的端末,则可更新Ack计数器30(方块146),而由CRC校验电路32累加之CRC可被再初始化用于次一个封包。
若侦测到错误(决定方块140,“是”支路),则CRC校验电路32可更新Ack计数器30,以表示最后成功接收封包(方块148),而传送电路38可用Ack计数发讯通知错误至节点312A,用于错误处理(方块150)。
各种实施例可以不同的方式编码用于信元之CTL线路。举例而言,图8为编码该CTL线路用于32个位信元之一个实施例(因此于此实施例中对每个信元具有四条CTL线路)。此外,此实施例封装达二个无数据封包用于CRC涵盖范围。
除非在表中做了其它的指示,否则CTL线路被编码b′1111′用于命令信元,和b′0000′用于数据信元。用于无数据封包(仅命令封包)之CRC为b′0011′。b′1100′之CTL线路编码具有二个意义。它可以表示正提供数据CRC(不是部分CRC插入,而是附加到封包的末端的最后CRC),或者它可以表示用于封装命令之第一个命令之最后一个信元。因此,若在此CTL编码前面有命令信元,则所述信元是第一命令之最后一个信元,而若在此CTL编码前面有数据信元,则所述信元是数据CRC。再者,用于数据CRC和命令CRC的编码不同。
b′0111′之CTL线路编码亦具有二个意义。它为插入于另一个封包的数据部分之命令封包的所述第一个信元,或者它为一对封装命令之第二命令之第一个信元。因此,可根据前面的编码是否为b′1100′而分辨此编码之意义。此外,封装命令之第一个信元的编码系不同于其它命令信元的编码,如此可辅助识别所述第一个信元。此外,所述第一个命令之最后一个信元的编码系不同于其它的命令编码。
b′1001′之CTL编码可用于在部分CRC插入之前但在封包的命令部分之后的命令信元。或者,编码b′1010′可用于封包的数据节之间之部分CRC插入。于是,表示次一个信元为CRC的编码当与插入数据节之间相比较,可以与用于插入命令和数据部分之间不同。最后,b′1011′之CTL码可以表示部分CRC信元。因此,部分CRC信元的编码可以不同于命令CRC和数据CRC的编码,也可不同于其它的数据信元。
选择表示于图8之表中之CTL编码以减少于CTL线路上错误发生率,该CTL线路能够引致于接收封包中之错误。也就是说,若错误发生于CTL线路,则接收电路36可以具有较高侦测CTL编码之无效序列可能性,并因此可以侦测对于封包传输之错误。
图9为一组范例封包和用于各信元之对应CTL编码,用于图8中所示编码。各信元被标以卷标,而在此范例中,CTL编码系位于信元之前。一般而言,命令之信元被标以“Cmd”后面接着数字(命令之所有信元接的数字皆相同),再接着小写字母以区别相同命令之不同信元。该等数据信元被标以“Data”后面接着数字(相同数据之所有信元相同之数字皆相同,并且与对应命令相同),后面接着小写字母以区别相同数据之不同信元。
具有二个信元之单一(未封装)无数据命令封包(Cmd0a和Cmd0b)和对应CRC(CRC0)以参考号码160显示。参考号码162为具有二个命令信元(Cmd0a和Cmd0b)和二个数据信元(Data0a和Data0b)的封包的例子。对应CRC接着于数据信元(CRC0)之后。
一对封装命令封包以参考号码164显示,各命令封包具有二个信元。用于第一封包的命令讯包(Cmd0a和Cmd0b)后接着用于第二封包的命令讯包(Cmd1a和Cmd1b)和包含二个封包(CRC0+1)之CRC。用于Cmd0b之CTL编码因此是b′1100′表示第一命令之最后一个信元,而用于Cmd1b之CTL编码是b′0111′表示第二命令之第一个信元。其它的命令信元具有一般的命令信元编码b′1111′。CRC信元亦被编码b′0011′,以表示命令CRC。参考号码166为一对封装之单一讯包命令之例子,并因此无讯包具有一般的命令信元编码。
参考号码168说明具有插入于封包的数据部分之二个仅命令封包(Cmd1和其CRC信元CRC1、和Cmd2和其CRC信元CRC2)之命令和数据封包(Cmd0和Data0)。如所例示,b′0111′之CTL编码系用于各命令Cmd1和Cmd2之第一信元,以表示插入于数据中。于各情况,b′0111′编码之前面并不是b′1100′编码,并因此当于封包的数据部分中插入、且无封装命令时可侦测命令。
最后,参考号码170为具有部分CRC插入(CRC0a、CRC0b、和CRC0c)的封包的例子,显示发讯次一个讯包为部分CRC,除了最后一个CRC(CRC 0)。
图10为用于32位信元和对每信元四条CTL线路之CTL线路编码之另一个实施例。于此实施例中,对应于信元之CTL线路之各位位置(位0至3)指定不同的意义。用于位位置0和2之LCTL和HCTL编码可以与定义于HT规格的编码相同。这些位决定信元是否为命令信元或数据。可定义位位置1用于将为~封装位(~Pack bit)之命令信元。也就是说,若该位是0,则次一个传送之信元将是另一个命令信元。若该位是1,则次一个传送之信元将是用于该命令之CRC。可定义位位置1用于将是插入位(Insert bit)之数据封包。若该位是0,则次一个信元是另一个数据信元(或插入之命令信元)。若该位是1,则次一个信元是部分CRC插入信元。位位置3被保留。
熟悉此项技术者一旦完全了解上述揭示后,则许多的变化和修饰将变得很明显。下列之申请专利范围被解释为包含所有的此等变化和修饰。
产业利用性
本发明可一般应用于微处理器。

Claims (20)

1.一种节点,配置为连接到链路,所述节点包括:
传送电路,配置以传送封包于所述链路上,各封包包括一个或更多个信元;以及
信元调度器,连接到所述传送电路并配置以调度待由所述传送电路传送的信元,其中,所述信元调度器配置以调度至少一个待传送的错误侦测信元,所述错误侦测信元包含前面的封包,并且其中,若第二封包可用于调度,则所述信元调度器配置以调度所述第二封包的信元,以代替所述错误侦测信元,并且其中,当后续调度时,所述错误侦测信元包含所述前面的封包和所述第二封包。
2.如权利要求1所述的节点,其中,若一个或更多个额外的封包为可用于调度,则所述信元调度器配置以调度所述一个或更多个额外的封包,并且其中,当接续着调度时,所述错误侦测信元还包含所述一个或更多个额外的封包。
3.如权利要求1所述的节点,其中,所述链路包括载送所述封包数据的线路和一条或更多条控制线路,并且其中,所述传送电路配置以编码在所述控制线路上的数据,以识别给定的信元,并且其中,用于错误侦测信元的所述编码不同于用于所述第二封包的所述第一信元的所述编码。
4.如权利要求3所述的节点,其中,用于命令信元的所述编码不同于用于所述第二封包的所述第一信元的编码,而且不同于用于所述错误侦测信元的所述编码。
5.如权利要求1所述的节点,其中,所述错误侦测信元包括循环冗余校验(CRC)数据。
6.如权利要求1所述的节点,其中,所述信元调度器配置以依据在所述链路上耗用的带宽数量而动态地决定调度所述第二封包或所述错误侦测信元。
7.如权利要求6所述的节点,其中,若所述耗用的带宽数量是临限值之上,则调度所述第二封包,并且其中,若所述耗用的带宽数量在临限值之下,则调度所述错误侦测信元。
8.如权利要求1所述的节点,其中,所述前面的封包和所述第二封包各包括命令和排除数据。
9.如权利要求1所述的节点,其中,如果被调度,所述错误侦测信元为包含所述前面的封包、和所述第二封包的多个错误侦测信元的其中之一。
10.一种节点,配置为连接到链路,所述节点包括:
封包调度器,配置以调度待传送于所述链路上的封包;以及
接口电路,连接到所述封包调度器并配置以传送所述封包于所述链路上,其中,所述接口电路配置以产生包含所述封包的错误侦测数据,其中,所述错误侦测数据传送于所述链路上的封包之间,其中,所述接口电路配置为用错误侦测数据的一个传输包含高达N个封包,此处N为大于或等于2的整数,并且其中,用错误侦测数据的一个传输所包含的封包的数目由所述接口电路依据用来传送的封包的可用性而决定。
11.如权利要求10所述的节点,其中,所述接口电路配置以依据于所述链路上耗用的带宽数量而动态地改变用错误侦测数据的一个传输所包含的封包的数目。
12.如权利要求11所述的节点,其中,若所述耗用的带宽数量少于临限值,则封包的数目较少,并且其中,若所述耗用的带宽数量大于临限值,则封包的数目较大。
13.如权利要求10所述的节点,其中,所述封装后的封包包括命令和排除数据。
14.一种方法,包括:
调度待传送于链路上的封包;
产生包含所述封包的错误侦测数据;以及
传送所述封包和在所述链路上的封包间传送所述错误侦测数据,其中,在所述链路上的所述错误侦测数据的一个传输包含高达N个前面的封包,此处N为大于或等于2的整数,并且其中,用错误侦测数据的一个传输所包含的封包的数目依据用来传送的封包的可用性而决定。
15.如权利要求14所述的方法,还包括依据所述链路上耗用的频带数量而动态地改变用错误侦测数据的一个传输所包含的封包的数目。
16.如权利要求17所述的方法,其中,若所述耗用的频带数量少于临限值,则由错误侦测数据的一个传输所包含的封包的数目较少,并且其中,若所述耗用的频带数量大于临限值,则由错误侦测数据的一个传输所包含的封包的数目较大。
17.如权利要求14所述的方法,其中,所述封装的封包包括命令和排除数据。
18.如权利要求14所述的方法,其中,所述错误侦测数据包括循环冗余校验(CRC)数据。
19.一种节点,配置为连接到链路,所述节点包括:
封包调度器,配置以调度待传送于链路上的封包;以及
接口电路,连接到所述封包调度器并配置以传送所述封包于所述链路上,其中,所述接口电路配置以产生包含所述封包的错误侦测数据,并且其中,所述接口电路配置以监视于所述链路上所耗用的频带的数量,并且根据所述频带的数量而动态地改变在所述链路上所述错误侦测数据的传输的频率。
20.如权利要求19所述的节点,其中,若所述耗用的频带数量少于临限值,则所述传输的频率较高,并且其中,若所述耗用的频带数量大于临限值,则所述传输的频率较低。
CN2007800463177A 2006-12-13 2007-12-13 用以减缓crc负担之命令封包包装 Active CN101681277B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/610,191 US7881303B2 (en) 2006-12-13 2006-12-13 Command packet packing to mitigate CRC overhead
US11/610,191 2006-12-13
PCT/US2007/025499 WO2008073494A1 (en) 2006-12-13 2007-12-13 Command packet packing to mitigate crc overhead

Publications (2)

Publication Number Publication Date
CN101681277A true CN101681277A (zh) 2010-03-24
CN101681277B CN101681277B (zh) 2013-02-20

Family

ID=39186182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800463177A Active CN101681277B (zh) 2006-12-13 2007-12-13 用以减缓crc负担之命令封包包装

Country Status (8)

Country Link
US (2) US7881303B2 (zh)
JP (1) JP2010514264A (zh)
KR (1) KR20090099558A (zh)
CN (1) CN101681277B (zh)
DE (1) DE112007003086B8 (zh)
GB (1) GB2457618A (zh)
TW (1) TWI461899B (zh)
WO (1) WO2008073494A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值
CN112585593A (zh) * 2018-08-20 2021-03-30 超威半导体公司 链路层数据打包和封包流控制方案
CN115396344A (zh) * 2021-05-08 2022-11-25 华为技术有限公司 链路检测的方法、装置和设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881303B2 (en) * 2006-12-13 2011-02-01 GlobalFoundries, Inc. Command packet packing to mitigate CRC overhead
US7840873B2 (en) * 2006-12-13 2010-11-23 Globalfoundries Inc. Partial CRC insertion in data packets for early forwarding
US8205140B2 (en) * 2007-05-10 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for the use of network coding in a wireless communication network
US8543756B2 (en) 2009-02-02 2013-09-24 Marvell World Trade Ltd. Solid-state drive command grouping
US8943236B1 (en) * 2011-06-21 2015-01-27 Netlogic Microsystems, Inc. Packet scheduling using a programmable weighted fair queuing scheduler that employs deficit round robin
CN102231687A (zh) * 2011-06-29 2011-11-02 华为技术有限公司 一种链路故障探测方法及装置
DE102012013592B4 (de) * 2012-07-10 2017-08-03 Krohne Messtechnik Gmbh Verfahren zum Übertragen von Datenpaketen und entsprechendes System mit Datenquelle und Datensenke
JP2016093296A (ja) * 2014-11-13 2016-05-26 日本光電工業株式会社 生体信号記録システム
US9565032B2 (en) * 2014-12-03 2017-02-07 Qualcomm Incorporated Monitoring and controlling bus ring performance
WO2016122463A1 (en) * 2015-01-27 2016-08-04 Hewlett Packard Enterprise Development Lp Correcting errors of a variable data payload
US11567831B2 (en) 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11494264B2 (en) * 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
US11200112B1 (en) 2020-08-24 2021-12-14 International Business Machines Corporation Method and apparatus to reduce bandwidth overhead of CRC protection on a memory channel

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239616A (zh) * 1997-08-01 1999-12-22 Ntt移动通信网株式会社 数据序列发生器、发射机、信息数据解码器、接收机、发送-接收机、数据序列产生方法、信息数据解码方法、以及记录介质
CN1361886A (zh) * 1999-05-18 2002-07-31 (美国)捷迅公司 带外前向纠错
US6539503B1 (en) * 1999-11-23 2003-03-25 Hewlett-Packard Company Method and apparatus for testing error detection

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0294533B1 (en) 1987-06-12 1994-01-19 International Business Machines Corporation Method for protecting coded signal integrity
US4937828A (en) 1988-11-04 1990-06-26 Westinghouse Electric Corp. High speed parallel CRC device for concatenated data frames
US5430738A (en) * 1991-01-31 1995-07-04 Pioneer Electronic Corporation Information transmission system for transmitting a digital information signal divided into packets with an information signal error diagnosis and correction function
JPH05115010A (ja) * 1991-10-22 1993-05-07 Canon Inc 画像復号化装置
AU7055594A (en) * 1993-06-07 1995-01-03 Tangible Domain Inc. Network link controller
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US5745837A (en) * 1995-08-25 1998-04-28 Terayon Corporation Apparatus and method for digital data transmission over a CATV system using an ATM transport protocol and SCDMA
JP3340618B2 (ja) 1996-04-19 2002-11-05 松下電器産業株式会社 誤り検出方法
US6161207A (en) 1996-11-15 2000-12-12 Motorola, Inc. Communications unit and method of communicating having efficient packet acknowledgement
US5951707A (en) * 1997-06-27 1999-09-14 International Business Machines Corporation Method of partitioning CRC calculation for a low-cost ATM adapter
US6085253A (en) * 1997-08-01 2000-07-04 United Video Properties, Inc. System and method for transmitting and receiving data
US6148422A (en) * 1997-10-07 2000-11-14 Nortel Networks Limited Telecommunication network utilizing an error control protocol
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6111924A (en) * 1998-02-03 2000-08-29 Videoserver, Inc. Error-correction-code synchronization in a videoconferencing gateway
US6173431B1 (en) 1998-07-01 2001-01-09 Motorola, Inc. Method and apparatus for transmitting and receiving information packets using multi-layer error detection
FI108200B (fi) * 1998-09-14 2001-11-30 Nokia Mobile Phones Ltd Yhteyden vaihto matkaviestinverkkojen välillä
US6182267B1 (en) 1998-11-20 2001-01-30 Cisco Technology, Inc. Ensuring accurate data checksum
US6519259B1 (en) * 1999-02-18 2003-02-11 Avaya Technology Corp. Methods and apparatus for improved transmission of voice information in packet-based communication systems
US6633564B1 (en) * 1999-09-22 2003-10-14 Nortel Networks Limited Method and apparatus for inserting packets into a data stream
JP4588201B2 (ja) * 1999-11-29 2010-11-24 パナソニック株式会社 無線通信システム
US6856628B1 (en) * 2000-10-26 2005-02-15 Motorola, Inc. Method and apparatus for tunneling packets in a packet data system
KR100612058B1 (ko) 2001-02-24 2006-08-14 인터내셔널 비지네스 머신즈 코포레이션 오버헤드가 없는 링크 레벨의 crc를 통한 결함 분리
US6950977B2 (en) 2001-03-15 2005-09-27 3G.Com, Inc. Mechanism for turbo decoding when CRC for partial blocks is provided
US7889742B2 (en) * 2001-09-29 2011-02-15 Qualcomm, Incorporated Method and system for improving data throughput
US8089940B2 (en) * 2001-10-05 2012-01-03 Qualcomm Incorporated Method and system for efficient and reliable data packet transmission
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
WO2003034240A1 (en) * 2001-10-15 2003-04-24 Advanced Micro Devices, Inc. A peripheral interface circuit for an i/o node of a computer system
KR100460970B1 (ko) * 2002-01-10 2004-12-09 삼성전자주식회사 데이터 송수신 시스템 및 방법
US20040153935A1 (en) * 2002-07-19 2004-08-05 Niesen Joseph W. Reduced overhead CRC functionality for packets and link layer superframes
US7379467B1 (en) * 2003-05-08 2008-05-27 Cypress Semiconductor Corporation Scheduling store-forwarding of back-to-back multi-channel packet fragments
GB2416056B (en) * 2003-05-13 2006-08-23 Advanced Micro Devices Inc A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7219294B2 (en) 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7000048B2 (en) * 2003-12-18 2006-02-14 Intel Corporation Apparatus and method for parallel processing of network data on a single processing thread
US7324541B2 (en) * 2003-12-22 2008-01-29 Intel Corporation Switching device utilizing internal priority assignments
TW200529605A (en) * 2004-02-20 2005-09-01 Airgo Networks Inc Adaptive packet detection for detecting packets in a wireless medium
KR101058729B1 (ko) * 2004-05-19 2011-08-22 삼성전자주식회사 패킷 망을 이용하여 음성 서비스를 제공하는이동통신시스템에서 음성 패킷 데이터를 효율적으로처리하는 장치 및 방법
US7380169B2 (en) * 2004-09-24 2008-05-27 Intel Corporation Converting merge buffer system-kill errors to process-kill errors
US7801168B2 (en) * 2006-06-21 2010-09-21 Intel Corporation Systems and methods for multi-slotted power saving multiple polling in wireless communications
US7881303B2 (en) * 2006-12-13 2011-02-01 GlobalFoundries, Inc. Command packet packing to mitigate CRC overhead
US7840873B2 (en) * 2006-12-13 2010-11-23 Globalfoundries Inc. Partial CRC insertion in data packets for early forwarding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239616A (zh) * 1997-08-01 1999-12-22 Ntt移动通信网株式会社 数据序列发生器、发射机、信息数据解码器、接收机、发送-接收机、数据序列产生方法、信息数据解码方法、以及记录介质
CN1361886A (zh) * 1999-05-18 2002-07-31 (美国)捷迅公司 带外前向纠错
US6539503B1 (en) * 1999-11-23 2003-03-25 Hewlett-Packard Company Method and apparatus for testing error detection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值
CN112585593A (zh) * 2018-08-20 2021-03-30 超威半导体公司 链路层数据打包和封包流控制方案
CN115396344A (zh) * 2021-05-08 2022-11-25 华为技术有限公司 链路检测的方法、装置和设备

Also Published As

Publication number Publication date
USRE44487E1 (en) 2013-09-10
CN101681277B (zh) 2013-02-20
GB2457618A (en) 2009-08-26
DE112007003086T5 (de) 2009-10-08
US7881303B2 (en) 2011-02-01
GB0910329D0 (en) 2009-07-29
US20080148131A1 (en) 2008-06-19
TW200841168A (en) 2008-10-16
DE112007003086B4 (de) 2021-04-15
JP2010514264A (ja) 2010-04-30
KR20090099558A (ko) 2009-09-22
DE112007003086B8 (de) 2021-07-29
WO2008073494A1 (en) 2008-06-19
TWI461899B (zh) 2014-11-21

Similar Documents

Publication Publication Date Title
CN101681277B (zh) 用以减缓crc负担之命令封包包装
EP3702927B1 (en) Flit-based parallel-forward error correction and parity
US7840873B2 (en) Partial CRC insertion in data packets for early forwarding
KR101600131B1 (ko) 가변 기입 명령 스케쥴링을 포함하는 메모리 시스템
US11429553B2 (en) Flit-based packetization
CN102866971B (zh) 传输数据的装置、系统及方法
US20080195914A1 (en) Memory system and command handling method
CN102073603A (zh) 多通道存储装置与访问多通道存储装置的方法
CN1983424B (zh) 错误校正装置及校正方法
KR20110003328A (ko) 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도
US10860518B2 (en) Integrated circuit system
US9135168B2 (en) Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
CN111221746B (zh) 数据储存系统与其相关方法
TWI704453B (zh) 具有通訊機制的計算系統及其操作方法
CN102436430A (zh) 存储设备、主机控制器和存储系统
JP4786941B2 (ja) ハブ、メモリモジュール、及びメモリシステムとこれを通じた読み込み方法及び書き込み方法
CN113179216A (zh) 一种寄存器的远程配置方法、计算机设备及存储介质
CN100547569C (zh) 用于经由总线传送打包字的电子数据处理电路以及处理数据的方法
US20110055522A1 (en) Request control device, request control method and associated processors
KR20170100416A (ko) 집적 회로 시스템
CN113726755B (zh) 一种slip协议数据的处理方法
CN117524290A (zh) 一种片上存储纠错系统
CN102377660B (zh) 信元传输方法及装置
JP2004326685A (ja) Icカード接続装置
JPH06175947A (ja) Dma機能を備えたデータ処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: GLOBALFOUNDRIES COMPANY

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES INC.

Effective date: 20100715

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA STATE, THE USA TO: GRAND CAYMAN, CAYMAN ISLANDS(BRITISH OVERSEAS TERRITORY)

TA01 Transfer of patent application right

Effective date of registration: 20100715

Address after: Grand Cayman, Cayman Islands

Applicant after: Globalfoundries Semiconductor Inc.

Address before: American California

Applicant before: Advanced Micro Devices Inc.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210308

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right