CN101819562A - 集线器链路读取返回流动 - Google Patents
集线器链路读取返回流动 Download PDFInfo
- Publication number
- CN101819562A CN101819562A CN201010154774A CN201010154774A CN101819562A CN 101819562 A CN101819562 A CN 101819562A CN 201010154774 A CN201010154774 A CN 201010154774A CN 201010154774 A CN201010154774 A CN 201010154774A CN 101819562 A CN101819562 A CN 101819562A
- Authority
- CN
- China
- Prior art keywords
- grouping
- data
- packet
- request
- mobile
- 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
- 230000002093 peripheral effect Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 27
- 238000005194 fractionation Methods 0.000 claims description 10
- 238000013467 fragmentation Methods 0.000 claims description 9
- 238000006062 fragmentation reaction Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 15
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Slot Machines And Peripheral Devices (AREA)
- Storage Of Web-Like Or Filamentary Materials (AREA)
- Adornments (AREA)
- Multi Processors (AREA)
- Communication Control (AREA)
Abstract
提出了一种包含第一集线器的设备。总线连接到第一集线器。第二集线器连接到总线。第一集线器形成并传送包含头部的流动分组。存储器连接到处理器。第一集线器连接到处理器。第二集线器连接到第一集线器。许多外围部件连接到第二集线器。第一集线器形成并传送包含一个分组头部的流动分组。
Description
本申请是2003年1月30日提交的、发明名称为“集线器链路读取返回流动”的专利申请NO.03804203.7的分案申请。
技术领域
本发明涉及计算机系统领域,更具体地说,涉及计算机系统中的设备之间的通信的领域。
背景技术
现代计算机系统包括多个部件,例如互连到系统存储器的中央处理单元、主桥(host bridge)、外围部件(例如,键盘、盘驱动器、鼠标)、外部总线(例如,外围部件互连(PCI)总线)等。诸如集线器链路(hub link)的接口在计算机系统内部的独立集线器之间传送数据。集线器链路是用于经由窄带宽和高带宽接口连接核心逻辑的多个构件块的接口。在集线器链路上使用分组在集线器之间传送数据。使用更新的技术,例如PCI-X(PCI局域总线规范3.0版本),需要改进在集线器之间通过集线器链路的分组传送。使用更高带宽的技术,需要改进等待时间和开销。
附图说明
在附图中以示例而非限制的方式举例说明了本发明,附图中类似的标记指示类似的元素。应当注意,本公开中引用的“实施例”或“一个实施例”未必指同一实施例,这样的引用指的是至少一个实施例。
图1图示了包含集线器链路的系统。
图2图示了通过集线器链路的拆分事务(split-transaction)的示例。
图3图示了集线器链路的框图。
图4图示了含有32位寻址模式的请求分组的头部格式。
图5图示了含有64位寻址模式的请求分组的头部。
图6图示了含有隐式寻址模式的请求分组的头部600。
图7图示了完成分组的头部。
图8图示了完成状态和编码表。
图9图示了读取请求和读取返回分组通信。
图10图示了在集线器链路上构造了读取返回数据流动的本发明的实施例。
图11图示了本发明实施例的时序图。
图12图示了本发明一些实施例的时序图。
图13图示了包括动态拆分数据分组的本发明的实施例。
图14图示了本发明的实施例的方法的框图。
具体实施方式
本发明一般地涉及用于降低集线器链路上的数据传输的等待时间并改进带宽的方法和装置。说明书中引用的“实施例”、“一个实施例”、“一些实施例”或“其他实施例”指的是结合实施例所描述的具体特征、结构或特性被包括在至少一些实施例中,但不必是在本发明的所有实施例中。各处出现的“实施例”、“一个实施例”或“一些实施例”未必都指相同的实施例。如果说明书表述了“可以”、“可能”或“能够”包括一个部件、特征、结构或特性,则不要求一定包括该特定部件、特征、结构或特性。如果说明书或权利要求提到“一个”元素,则并不意味着只有一个该元素。如果说明书或权利要求提到“额外的”元素,则并不排除有多于一个的额外元素。
得益于本公开的本领域技术人员将意识到,在本发明的范围内,可以对已叙述的说明和附图作出多种其他变化。因此,是所附权利要求,包括对其的任何修改,限定了本发明的范围。参考附图,现在将详细描述本发明的示例性实施例。示例性实施例被提供用来举例说明本发明,而不应当被理解为限制本发明的范围。
图1图示了系统100。系统100包括集线器链路102、存储器控制器集线器(MCH)104、输入/输出(I/O)控制器集线器(ICH)106、中央处理单元(CPU)108、存储器110、外围部件互连(PCI)总线112、PCI代理114、键盘118、鼠标120、扫描仪122和盘驱动器124。集线器链路102向独立的部件提供点对点接口。但是,应当注意,集线器链路102可以在三个或更多个部件之间提供接口。如图1所示,集线器链路102用于互连芯片组内部的两个单独部件(即,集线器代理)。集线器代理提供两个或更多个单独的总线和/或其他类型通信链路之间的中心连接。ICH 106提供系统100内部的各种外围部件(例如,键盘118、盘驱动器124、扫描仪122和/或鼠标120)之间的互连。此外,通过与ICH 106互连而不是直接与MCH104互连,外部总线和它们的代理(例如,PCI总线112和PCI代理114)经由集线器链路102与存储器110和CPU 108直接互连。
通过使用集线器链路来互连MCH 104和ICH 106,在I/O部件和CPU/存储器子系统之间提供访问。使用基于分组的拆分事务协议通过集线器链路102传输事务。例如,请求分组被用于开始事务,而如果需要的话,单独的完成分组可以随后用来终止事务。
图2图示了通过集线器链路102的拆分事务的示例。如图2所示,集线器代理最初通过仲裁202获得集线器链路102的所有权。在仲裁之后,有个请求阶段204。如果需要的话(例如,在为读取事务返回数据的情况下),完成阶段208将跟在该请求阶段之后。但是,在完成阶段之前,响应的集线器代理将首先仲裁206集线器链路的所有权。
如下面所详细讨论的,在通过集线器链路102传输请求分组和对应的完成分组之间的时间,可以按照预定的顺序规则通过该集线器链路传输单独的无关的分组。例如,在从外设到存储器的读取请求的情况中,为了准备好要被返回的数据并包括完成分组,提供所请求的数据可能需要多个时钟周期。在为获得所请求的数据而花费的时间中,在MCH 104的队列/管道中等待的单独的无关的完成和/或请求分组可以被传送到ICH 106。
此外,如图2所示,每个请求或完成被作为分组传送通过接口。对于写入类型的事务,数据与请求相关联。对于读取类型的事务,将有与完成相关联的数据。在某些情况下,在完成分组被断开,有效地拆分成多个完成分组的情况下,对于一个请求将有多于一个的完成。
集线器链路102使用事务描述符来写集线器链路流通量,以及标识事务的属性。例如,描述符可以用来将事务定义为同步的或异步的,作为结果,随后可以按照预定义的协议处理该事务。
集线器链路102使用基于分组的协议,该协议具有两种类型的分组:请求和完成。请求分组被用于每个集线器链路事务。完成分组被用在例如需要返回读取数据或者需要知道某种类型写入事务(例如,具有被请求的完成的存储器写入和I/O写入)完成的地方。通过按顺序的事务描述符,完成分组与它们对应的请求分组相关联。
集线器链路接口使用仲裁协议,该协议是对称的并且是分布式的。例如,每个集线器代理驱动请求信号,该请求信号被连接到相同接口的其他代理所观察。不使用许可信号,并且代理独立确定接口的所有权。当“拥有”接口(例如,在传送数据过程中)的集线器链路代理通过对请求信号去除断言(de-assert)而释放它对接口的控制的时候,发生分组传送的结束。此外,通过使用“停止”信号来重试或断开分组也完成了流控制。
使用基于分组的协议完成通过集线器链路102的信息传输。请求分组通常用于开始事务,完成分组用于终止事务。集线器链路协议还提供事务描述机制以提供确定的服务质量。该机制提供用于集线器链路流通量的写入以及标识事务属性的信息,例如,通过将事务定义为同步或异步。
图3图示了耦合MCH 104和ICH 106的集线器链路102的框图。集线器链路102包含双向数据路径151、一个或多个数据选通152、流控制信号153、仲裁信号组154、系统复位信号155、时钟信号156、电压参考信号157和可选先占(preemption,PMPT)信号158。集线器A包含数据路径I/O单元135,集线器B包含数据路径I/O单元165。数据路径I/O单元135和165都接口到数据路径151。通常,集线器链路102是用于经由相对窄和相对高带宽的数据路径151连接例如系统100的计算机系统的核心逻辑的主要构件块的机制。计算机系统中的独立部件之间,例如集线器A和集线器B之间,以点对点的方式实现连接。
图4图示了含有32位寻址模式的请求分组头部格式400。请求分组头部格式400的基础部分长度是一个双字(一个字等于16位)。对于64位寻址模式,需要额外的双字(示出在图5中)。数据以“小端(little endian)”顺序被传输通过接口,即,对于8位宽的数据路径151首先是最低有效字节,或者对于16位宽的数据路径151是字。下面描述分组头部400的各种字段。
在第一双字的位31的请求/完成字段(rq/cp)指示分组是请求分组还是完成分组。优选地,“0”指示请求分组,“1”指示完成分组。因为分组头部400是请求分组头部,所以该字段应当被设定为“0”。
在第一双字的位30的读取/写入字段(r/w)指示分组是读取事务还是写入事务。读取/写入字段还与请求/完成字段一起指示数据是否将被包含在分组中。例如,如果分组是请求,并且如果指示了写入,则数据将被包含在分组中。此外,如果分组是完成分组,并且如果指示了读取,则数据将被包含在分组中。指示请求分组并指示读取,表明将没有数据被包括在分组中。类似地,指示完成分组和写入,表明将没有数据被包括在分组中。读取事务一般由“0”指示,写入事务一般由“1”指示。
在请求分组400的第一双字的位29的需要完成字段(cr)指示分组的发起者是否需要对请求分组的响应。需要完成一般由“1”指示,不需要完成一般由“0”指示。当分组的发起者要求关于请求已完成的肯定确认时,发出需要完成位被设定的写入请求分组头部。优选地直到写入已经到达它的最终目的地时才返回写入的完成。存储器、I/O和配置读取请求优选地应当总是设定需要完成位。需要完成位优选地应当被所有请求的目标所考虑,包括特殊周期,例如空操作(NOP)、关机、刷新(Flush)、暂停、同步(Sync)、刷新确认、停止许可确认等。
位于第一双字的位28的地址格式(af)字段指示寻址格式是隐式的还是显式的(32位或64位寻址)。对于头部400,af位应当被设定为“1”以指示显式寻址。对于隐式寻址,af位应当被设定为“0”。
位于第一双字的位27的锁定(lf)字段指示当前分组是否是被锁定的序列的一部分。被锁定的序列中的所有请求和完成应当将该位设定为“1”。不理会锁定的代理应当忽略该字段,并且应当总是用“0”填充该字段。
位于第一双字的位26~21的事务描述符路由字段是用于分组路由的6位字段。其他字段宽度也是可能的。三个位用于集线器标识(ID),它标识了含有事务的发起主控制的代理。路由字段的其余三个位用于标识集线器链路代理内的内部“管道”。该第二个三位子字段被称为管道ID。集线器ID子字段用于支持在多集线器链路系统中(即,在包括多于两个集线器链路代理的系统中)的路由。来自(被增强的,具有不同的集线器ID的)不同集线器链路代理的事务优选地没有相对于彼此的排序要求。对于不支持多于两个集线器链路部件的基于集线器链路的系统,以及对于没有被设计成能够在较大结构中使用的集线器链路构件块的具体集线器链路部件来说,集线器ID的使用是可选的。
只有事务相对于彼此没有排序要求的时候,管道ID子字段才可以用于区分事务。换句话说,它们源自承载无序流通量的不同内部管道。位20和19被保留。位于第一双字的位18~16的事务描述符属性字段(T.D.Attr.)优选为3位的值,它规定当目标集线器链路代理接收事务之后,该事务将怎样被处理,例如,该事务是被异步处理还是被同步处理。属性字段支持高要求的应用工作负荷,这些工作负荷依赖具有特定服务质量要求或其他区别特性的数据的移动和处理。此外,IEEE 1394(IEEE 1394标准(用于高性能串行总线-火线(fireware)1995的1394-1995IEEE标准))和USB(通用串行总线)使能了设备之间的数据同步移动。
位于第一双字的位15和14的空间字段指示是否分组具有作为目的地的存储器空间(“00”)、I/O(“01”)、配置空间(“10”)或者特殊周期(“11”)。
位于位13~8的数据长度字段指示该分组之后的数据长度(如果有的话)。该数据长度优选地以双字给出,它被编码使得所表示的双字数量等于1加上该数值。因此,“000000”表示一个双字。
位于第一双字的位7~4的最后双字字节使能字段(最后DW BE)指示任何读取或写入请求的数据的最后双字的字节使能。字节使能是低(“0”)有效的。如果对于请求,只有一个双字的数据,则该字段必须是无效的(“1111”)。字节使能可以是不连续的(例如,“0101”)。字节使能对特殊周期来说没有意义,因此最后DW BE字段与特殊周期编码字段重叠。
位于第一双字的位3~0的第一双字字节使能字段(1stDW BE)指示向存储器、I/O或配置空间的任何读取或写入请求的数据的第一双字的字节使能。字节使能是低(“0”)有效的。如果对于请求,只有一个双字的数据,则优选地应当使用该字段。字节使能可以是不连续的(例如,“0101”)。字节使能对特殊周期来说没有意义,因此第一和最后DW BE字段与特殊周期编码字段重叠。
位于第一双字的位7~0的特殊周期编码字段编码特殊周期类型。该字段与第一和最后双字字节使能字段重叠。
位于第二双字的位31~2的地址[31:2]字段指示32位显式寻址模式的整个地址,并提供64位显式寻址模式的地址的较低部分。
位于第二双字的位0的扩展地址字段(ea)指示是32位寻址(“0”)还是64位寻址(“1”)。该字段只对存储器或特殊周期请求有效。该字段与配置类型(ct)字段相重叠。
位于第二双字的位0的ct字段只对配置周期有效。如果被设定为“0”,则该字段指示类型“0”配置周期,如果被设定为“1”,则该字段指示类型“1”配置周期。这些配置周期类型优选地对应于PCI配置周期类型。
图5图示了含有64位寻址模式的请求分组头部500。分组头部500的字段等同于图4所示的字段外加地址[63:32]字段。地址[63:42]字段含有64位寻址模式的较高地址位。对于该模式,ea字段被设定为“1”,仅对于64位寻址模式才包括地址[63:32]字段。
图6图示了含有隐式寻址模式的请求分组头部600。除了缺少第二双字外,分组头部600的字段等同于图5所示的字段。隐式寻址模式优选地应用于不包含地址的特殊周期。隐式寻址模式还可以用于地址可由上下文辨别的情形。当使用隐式模式时,对于请求分组,不发送地址。对于隐式寻址模式,af字段被设定为“0”。
图7图示了完成分组头部700。除了缺少需要完成字段、地址格式字段和空间字段外,各个字段与结合图6所示出的字段等同。字节使能字段和特殊周期字段被替换成完成状态字段。完成状态字段优选地用来自图8所示的编码表和完成状态的值加载。
图9图示了现有技术读取请求与读取返回分组通信是如何工作的。如在图9中可以看到的,一旦请求头部910被发送到集线器代理,则在发出读取返回之前有至少一个时钟周期的周转(turn-around)时间。读取返回分组包括64字节分组中数据和读取返回头部920。每个请求分组910包含起始地址和所请求的数据量以及其他信息。对于大于64字节数据的请求,读取返回被分成具有每个分组不大于64字节数据的多个分组,每个分组都被附加一个单独的返回头部920。64字节数据930包括四个16字节区段,其中一个区段表示一个时钟周期。现有技术的读取请求的传输、读取返回和分组的初始发送产生以下开销,即用于读取请求的一个基础时钟和用于周转的一个基础时钟,以及由与每个分组相关联的读取返回头部引起的每个读取返回分组的一个基础时钟。由于在目的地处理读取请求的等待时间,在读取请求和开始读取返回之间还可能有延迟。例如,如果分组大小为64字节,则诸如512字节的大读取返回将具有至少三个额外的时钟开销,这是由于与分组相关联的每个返回头部的缘故。因此,总的可能带宽被每个读取返回分组(每个具有读取返回头部)所造成的开销所降低。
由于周转开销对读取来说不可避免,所以如果最大读取请求大小增加的话,则开销降低但等待时间增加。如果使用较小的请求分组,则等待时间降低,但是由于每个读取返回头部,开销增加了。应当注意,带宽是读取请求大小和数据返回分组大小的函数。在本发明的一个实施例中,数据分组在没有被缓冲的情况下(除非不能获得集线器链路许可)从源流动到集线器链路。本发明的该实施例的一个复杂因素在于当发起请求时可能不是所有的数据都是可用的。如果在发起应答之前所有被请求的数据被累积,则等待时间增加。为了避免等待时间,分组被形成为当数据一变得可用就可以被传输。在这种情况下,等待时间可以降低,但是开销增加,从而降低了最大带宽。
在本发明的一个实施例中,数据路径I/O单元135和数据路径I/O单元165包含用于数据流动的机制,该机制构造了在集线器链路上的读取返回数据的流动。应当注意,数据路径I/O单元135和数据路径I/O单元165可以被包括在一个芯片组中,或者可以被包括在单独的电路器件中。图10图示了构造在集线器链路上的读取返回数据的流动的本发明的实施例。在本发明的这个实施例中,通过逐个连续地(串接)流动数据分组1040,而不对每个数据块附加返回头部,降低了返回头部的开销,这与向每个分组附加读取返回头部的现有技术方法相反。
与固定读取返回头部大小(例如,64字节分组)不同,本发明的实施例允许可变长度分组。如果前一数据分组的末端在集线器链路上被发送出之前,同一流的下一个数据到达了,则本发明的一个实施例继续前一分组,而不中断,即没有头部。因此,不需要任何缓冲来获得更多的数据。由于每个返回头部使用一个基础时钟的开销,所以数据可以以最小数量的大分组形式被返回,从而最小化了完成头部的数量。
在很多情况下,整个读取返回可以在只有一个完成头部的单个分组中被传输。数据流动还消除了为了形成足够大的集线器链路分组以令人满意地抵消完成头部开销,与目标缓冲读取返回数据相关联的等待时间的增加。例如,可能花费三个额外的基础时钟来收集三个额外的64字节缓冲线,以形成最大尺寸256字节的读取返回分组。
然而,数据流动可能存在数据耗尽的问题。由于目标可能,并且事实上被促使,在所有数据例如从存储器到达集线器链路单元之前,发起读取返回分组。在这种情况下,下一个返回数据可能不能在为了跟在刚传送到集线器链路上的前一数据尾部之后的“刚好及时”的截止时间之前到达。
在本发明的一些实施例中,数据路径I/O单元135和数据路径I/O单元165包含用于在集线器链路上分组拆分的装置。在本发明的这些实施例中,分组拆分解决了数据耗尽的问题。在本发明的这些实施例中,在数据耗尽发生之后,在违犯了数据输送的截止时间的点上,数据分组被提早终止。在其他数据到达之后,形成另一个分组(“后继”分组),以继续在拆分点的原始的传输。这种相同的分组拆分技术还可以用于在读取返回分组中间先占读取返回。
如果在发送如分组头部中的请求长度所指示的那个分组的最后基础时钟之前,分组的发送器对它的请求去除断言,或者如果发生关于那个分组的流控制事件,则分组被拆分。分组拆分可以因下述原因而发生。第一个原因是数据耗尽。在这种情况下,发送器没有对分组即时可用的其他数据。第二个原因是先占。在这种情况下,在发送器自愿撤回它的请求时,接收代理发信号通知发送器它想要先占。可以通过抽取所断言的先占信号(PMPT)来先占发送器,或者如果不支持PMPT机制,则通过“绅士协定”来先占发送器,所述“绅士协定”即当发送器抽取所断言的对方代理的请求时,发送器自愿撤回它的请求。后一机制是可选的并且由用户决定。第三,如果在数据传输期间断言了“停止”,则发送器可选地可以拆分该分组。通常发送器维护它的请求,并且重传“已停止的”数据,而不形成新的分组,但是,发送器可以选择释放它的请求,并且在另一个时间重新仲裁发送器将在哪个点上用“已停止的”数据的剩余部分形成新的分组。因此,当发出“停止”命令时,可以维护读取请求。在本发明的一个实施例中,当去除断言读取请求时,发生分组拆分。
在本发明的一些实施例中,在分组拆分的情况下,头部将保持原始分组余下的将被传输的数据量。应当注意,在本发明的另一个实施例中,动态地发生数据拆分。因此,在数据分组可能不被拆分的情况下,大的数据分组伴随有单个头部。在数据分组被动态拆分的情况下,在恢复数据分组传送之后,根据已经被传送了内容,与被恢复的数据分组相关联的头部保持记录剩下的要被传输的数据量。因此,在原始分组中,将要被返回的数据的总量被包括在头部中。
图11图示了本发明的一些实施例的信号图的示例。头部1110(H1)是第一请求(请求1)的头部。头部1120(H1c)是后续分组1的头部。REQ是被断言/去除断言的请求信号。CLK 1140是用于信号1100的各种时钟。如图11所示,信号图是具有由于数据耗尽引起的分组拆分的读取流动的示例。可以看到,第一请求的读取返回(pckt 1)在时钟X-2处耗尽数据。在数据耗尽之后,代理对它的REQ信号去除断言。在时钟X-1处(或者大于X-1的任何时钟处),代理已收集了足够的数据来恢复流动并且断言它的REQ信号。在该示例中,代理在时钟X处获得接口的控制,并且在时钟X+1处恢复发送对于第一读取请求的返回数据。头部H1c含有数据Dn+1的地址,以及在发生数据耗尽的时候(X-2)读取返回中的余下数据的长度。
图12图示了对于在数据耗尽之后的“停止”流控制命令后的流动的继续,本发明的一些实施例的信号图。表示出选项1210、1220和1230,用于进一步理解一些实施例的对于读取返回流动的实现方式。在信号图1200中,由于数据耗尽,目标对它的REQ信号去除断言。两个时钟之后,目标发送新的完成头部,以恢复发送它的读取返回分组,并且在随后的时钟里断言停止信号。
在时钟X处,目标驱动对于后续读取返回分组的头部H1c。在时钟X+1处,目标断言停止信号,指示请求器抛弃数据Dn。随后的选项涉及目标可以如何响应所述停止。在实施例实现方式选项11210中,在时钟X+2处,可以发生具有头部H1*和数据载荷Dn、Dn+1和Dn+2......的重新开始。头部H1*是具有增加为长度Dn的大小,并且地址被修改为在Dn的地址处开始的头部H1c。在本实施例中,读取返回流动被维护。
在实施例实现方式选项21220中,可以在X+2处发生具有头部H1*和载荷数据Dn的重新开始。头部H1*是具有修改为长度Dn的大小,并且将地址修改为开始于Dn处的头部H1。紧跟在Dn之后,以头部H1c恢复流动,就像目标在时钟X处尝试做的那样。在本实施例中,直到头部H1c之后才恢复流动。
在实施例实现方式选项31230中,可以在X+2处发生带有头部H1*和载荷数据Dn的重新开始。在本实施例中,头部H1*是具有修改为长度Dn的大小,并且将地址修改为开始于Dn的地址处的头部H1。在空闲了两个时钟周期后(对应于在时钟X处释放数据流动和重获数据流动之间的两个时钟),以头部H1c恢复,就像目标在时钟X处尝试做的那样。从而,读取返回数据从X+4到X+6没有流动,并且直到头部H1c之后才恢复。本实施例允许简单的实现方式,因为不需要在X+4和X+5处记录所断言的停止信号是无关的。
图13图示了包括动态拆分数据分组的本发明的实施例。如图13所示,返回头部1310之后跟随示例性64字节大小的数据分组。读取返回头部1310包含将要返回的数据的大小(本例中为1千字节)。在本发明的一些实施例中,关于将要返回的数据大小,读取返回头部1310被允许“说谎”。在本发明的这些实施例中,在返回头部中指定的大小是将要返回的数据量,但是实际上,分组可能含有少于指定大小的数据量。在本发明的这些实施例中,在流动分组已完成传送之前,目标对请求信号去除断言(在图11中示出)。代理然后在后续的分组中发送所请求数据的余下部分。在代理已接收了所有被请求的数据之前,代理可以发送应答分组。通过不必等待代理在发送应答之前累积所有所请求的数据,这样允许等待时间被降低。
框1330图示了空闲时间的一个开销时钟区段。返回头部1340包含余下将要被传送的数据量。在图13图示的示例中,该数据量将等于返回头部1310中包含的量减去跟随在返回头部1310之后的数据,其被表示为1320(本例中为64字节)。应当注意,跟随在返回头部1340之后的数据分组可以是大分组大小,这有益于数据流动。
图14图示了本发明的实施例的框图。过程1400开始于框1405,其向读取目标发送读取请求。在框1440,读取目标接收该读取请求。过程1400继续到框1445,其在发起读取返回之前获得最小量的数据。框1450对集线器链路进行仲裁。框1455形成分组。框1460传送头部。框1465传送所请求的数据。
框1470确定是否满足了读取请求。如果满足了读取请求,则读取目标的过程完成。然而,如果没有满足读取请求,则过程1400继续到框1475。框1475确定是否下一个所请求的数据量可用于传送。如果框1475确定出下一个所请求的数据量确实可用于传送,则过程1400继续到框1465。如果框1475确定出下一个所请求的数据量不可用于传送,则在框1485中过程1400对请求信号去除断言,并且继续到框1445。
读取发起者在框1410接收从框1460发送的头部。过程1400继续到框1415,其中读取发起者准备接收在先前接收的头部中所指定的数据量。框1420接收数据分组。框1425确定是否已经接收了在分组头部中所指定的所有数据。如果框1425确定出已经接收了在分组头部中所指定的所有数据,则过程1400继续到框1426。如果发起者已经接收了所请求的所有数据,则过程1400终止于框1427。如果发起者没有接收所请求的所有数据,则过程1400继续到框1490。如果框1425确定出还没有接收到在分组头部中所指定的所有数据,则框1400继续到框1430。
框1430确定在所指定的数据大小的末端之前,请求信号是否已经被去除断言。如果框1430确定出在所指定的数据大小的末端之前,请求信号已经被去除断言,则过程1400继续到框1490。如果框1430确定出在所指定的数据大小的末端之前,请求信号没有被去除断言,则过程1400继续到框1420。
在本发明的一些实施例中,过程1400包括动态分组拆分。在本发明的这些实施例中,如果在完全接收了流动的分组之前,目标的请求信号被去除断言,则形成的包含头部和数据部分的新分组。该头部含有原始流动分组余下的将要被传输的数据大小。在一些情况下,拆分分组可以含有固定长度的数据部分(例如,64字节)。在其他情况下,拆分分组可以是数据部分含有将要传输的余下数据的流动分组。
除了被结合在芯片组中,例如被包含在数据路径I/O单元135和数据路径I/O单元165中,上述实施例还可以被存储在设备或机器可读介质中,并且可以被执行指令的机器读取。机器可读介质包含以机器(例如,计算机)可读的形式提供(即,存储和/或传送)信息的任何机构。例如,机器可读介质包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)。设备或机器可读介质可以包括固态存储器设备和/或旋转磁盘或光盘。当指令的多个部分例如通过计算机的互连被分散到不同的机器中时,设备或机器可读介质可以是分布式的。
尽管已经描述并在附图中示出了某些示例性实施例,但是应当理解,这些实施例仅是示例性的,而不是对宽广的本发明的限制,并且因为本领域普通技术人员可以想到各种其他修改,所以本发明不限于所示出和描述的具体构造和安排。
Claims (30)
1.一种装置,包括:
第一集线器;
耦合到所述第一集线器的总线;和
耦合到所述总线的第二集线器,
其中所述第一集线器形成并传送包含一个分组头部的流动分组。
2.如权利要求1所述的装置,其中所述总线是集线器链路。
3.如权利要求1所述的装置,其中所述流动分组是由串接的数据分组组成的,其中所述串接的数据分组被耦合到所述一个分组头部。
4.如权利要求1所述的装置,其中所述流动分组具有可变长度。
5.如权利要求1所述的装置,其中所述流动分组被拆分,其中拆分的分组包括头部部分和数据部分。
6.如权利要求5所述的装置,其中流动分组的拆分是动态的。
7.如权利要求5所述的装置,其中所述头部部分包含要被传送的余下的数据的剩余大小,其中耦合到所述头部部分的数据分组的大小可以不同于在所述头部部分中所指示的大小。
8.一种系统,包括:
处理器;
耦合到所述处理器的存储器;
耦合到所述处理器的第一集线器;
耦合到所述第一集线器的第二集线器;
耦合到所述第二集线器的多个外围部件;
其中所述第一集线器形成并传送包含一个分组头部的流动分组。
9.如权利要求8所述的系统,其中总线是集线器链路。
10.如权利要求8所述的系统,其中所述流动分组是由串接的数据分组组成的。
11.如权利要求8所述的系统,其中所述流动分组具有可变长度。
12.如权利要求8所述的系统,其中所述流动分组被拆分成多个分组,
其中每个拆分的分组包括头部部分和数据部分。
13.如权利要求12所述的系统,其中流动分组的拆分是动态的。
14.如权利要求12所述的系统,其中所述头部部分包含从原始分组余下的要被传送的数据的剩余大小,其中耦合到所述头部部分的数据分组的大小可以不同于在所述头部部分中所指示的大小。
15.一种方法,包括:
发送第一请求;
接收所述第一请求;
形成流动分组;
发送所述流动分组;
接收所述流动分组,
其中所述流动分组包含一个分组头部。
16.如权利要求15所述的方法,还包括:
如果请求被去除断言,则将流动分组拆分成较小的分组。
17.如权利要求16所述的方法,其中每个拆分的流动分组包括头部部分和数据部分。
18.如权利要求17所述的方法,其中流动分组的拆分是动态的。
19.如权利要求17所述的方法,其中所述头部部分包含从原始分组余下的要被传送的数据的剩余大小。
20.如权利要求15所述的方法,其中所述流动分组是由串接的数据分组组成的。
21.如权利要求15所述的方法,其中所述流动分组具有可变长度。
22.如权利要求15所述的方法,还包括:
在全部所请求的数据被接收之前,去除读取请求信号;
在所述请求信号被去除之后,发送后续分组,所述后续分组包含剩余的所请求的数据;以及
在所述全部所请求的数据被接收之前,发送应答分组。
23.一种包括机器可读介质的装置,所述机器可读介质含有指令,所述指令当被机器执行时,引起所述机器进行操作,所述操作包括:
发送第一请求;
接收所述第一请求;
形成流动分组;
发送所述流动分组;
接收所述流动分组,
其中所述流动分组包含一个分组头部。
24.如权利要求23所述的装置,还含有当被机器执行时引起所述机器进行操作的指令,所述操作包括:
如果请求被去除断言,则将流动分组拆分成较小的分组。
25.如权利要求24所述的装置,其中每个拆分的流动分组包括头部部分和数据部分。
26.如权利要求24所述的装置,其中流动分组的拆分是动态的。
27.如权利要求24所述的装置,其中所述头部部分包含从原始分组余下的要被传送的数据的剩余大小。
28.如权利要求23所述的装置,其中所述流动分组是由串接的数据分组组成的。
29.如权利要求23所述的装置,其中所述流动分组具有可变长度。
30.如权利要求23所述的装置,还含有当被机器执行时引起所述机器进行操作的指令,所述操作包括:
在全部所请求的数据被接收之前,去除读取请求信号;
在所述请求信号被去除之后,发送后续分组,所述后续分组包括剩余的所请求的数据;以及
在所述全部所请求的数据被接收之前,发送应答分组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/080,175 | 2002-02-19 | ||
US10/080,175 US7006533B2 (en) | 2002-02-19 | 2002-02-19 | Method and apparatus for hublink read return streaming |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03804203.7A Division CN1636198B (zh) | 2002-02-19 | 2003-01-30 | 用于传送流动分组的装置、系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819562A true CN101819562A (zh) | 2010-09-01 |
CN101819562B CN101819562B (zh) | 2013-08-21 |
Family
ID=27733161
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010154774.1A Expired - Fee Related CN101819562B (zh) | 2002-02-19 | 2003-01-30 | 通信方法及装置 |
CN03804203.7A Expired - Fee Related CN1636198B (zh) | 2002-02-19 | 2003-01-30 | 用于传送流动分组的装置、系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03804203.7A Expired - Fee Related CN1636198B (zh) | 2002-02-19 | 2003-01-30 | 用于传送流动分组的装置、系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7006533B2 (zh) |
EP (1) | EP1476817B1 (zh) |
CN (2) | CN101819562B (zh) |
AT (1) | ATE315252T1 (zh) |
AU (1) | AU2003205389A1 (zh) |
DE (1) | DE60303119T2 (zh) |
TW (1) | TWI292989B (zh) |
WO (1) | WO2003071434A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7215662B1 (en) * | 2002-03-22 | 2007-05-08 | Juniper Networks, Inc. | Logical separation and accessing of descriptor memories |
US7283528B1 (en) | 2002-03-22 | 2007-10-16 | Raymond Marcelino Manese Lim | On the fly header checksum processing using dedicated logic |
US7212530B1 (en) | 2002-03-22 | 2007-05-01 | Juniper Networks, Inc. | Optimized buffer loading for packet header processing |
US7236501B1 (en) * | 2002-03-22 | 2007-06-26 | Juniper Networks, Inc. | Systems and methods for handling packet fragmentation |
US7133991B2 (en) * | 2003-08-20 | 2006-11-07 | Micron Technology, Inc. | Method and system for capturing and bypassing memory transactions in a hub-based memory system |
US7136958B2 (en) | 2003-08-28 | 2006-11-14 | Micron Technology, Inc. | Multiple processor system and method including multiple memory hub modules |
US7120743B2 (en) * | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
JP3736641B2 (ja) * | 2004-01-22 | 2006-01-18 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US7788451B2 (en) | 2004-02-05 | 2010-08-31 | Micron Technology, Inc. | Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system |
US7412574B2 (en) * | 2004-02-05 | 2008-08-12 | Micron Technology, Inc. | System and method for arbitration of memory responses in a hub-based memory system |
US7257683B2 (en) | 2004-03-24 | 2007-08-14 | Micron Technology, Inc. | Memory arbitration system and method having an arbitration packet protocol |
US6980042B2 (en) | 2004-04-05 | 2005-12-27 | Micron Technology, Inc. | Delay line synchronizer apparatus and method |
US7363419B2 (en) | 2004-05-28 | 2008-04-22 | Micron Technology, Inc. | Method and system for terminating write commands in a hub-based memory system |
US7508839B2 (en) * | 2004-07-09 | 2009-03-24 | Nokia Corporation | Encapsulator and an associated method and computer program product for encapsulating data packets |
JP4905395B2 (ja) * | 2008-03-21 | 2012-03-28 | 富士通株式会社 | 通信監視装置、通信監視プログラム、および通信監視方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4698804A (en) * | 1985-01-22 | 1987-10-06 | Telephone And Telegraph Company, At&T Bell Labs | Shared data transmission system |
EP0855820A3 (en) | 1996-12-13 | 2003-04-16 | International Business Machines Corporation | A method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment |
US5991304A (en) * | 1998-02-13 | 1999-11-23 | Intel Corporation | Method and apparatus for minimizing asynchronous transmit FIFO under-run and receive FIFO over-run conditions |
US6298409B1 (en) * | 1998-03-26 | 2001-10-02 | Micron Technology, Inc. | System for data and interrupt posting for computer devices |
US6272563B1 (en) * | 1998-11-03 | 2001-08-07 | Intel Corporation | Method and apparatus for communicating routing and attribute information for a transaction between hubs in a computer system |
US6145039A (en) * | 1998-11-03 | 2000-11-07 | Intel Corporation | Method and apparatus for an improved interface between computer components |
US6438123B1 (en) * | 1998-11-10 | 2002-08-20 | Cisco Technology, Inc. | Method and apparatus for supporting header suppression and multiple microflows in a network |
US6748442B1 (en) * | 1998-12-21 | 2004-06-08 | Advanced Micro Devices, Inc. | Method and apparatus for using a control signal on a packet based communication link |
US6389038B1 (en) * | 1999-01-26 | 2002-05-14 | Net 2 Phone | Voice IP bandwidth utilization |
GB2349554B (en) * | 1999-04-29 | 2004-01-14 | Ibm | A method for encoding data |
US6496895B1 (en) * | 1999-11-01 | 2002-12-17 | Intel Corporation | Method and apparatus for intializing a hub interface |
US6516375B1 (en) * | 1999-11-03 | 2003-02-04 | Intel Corporation | Peripheral component interconnect (PCI) configuration emulation for hub interface |
US6594722B1 (en) * | 2000-06-29 | 2003-07-15 | Intel Corporation | Mechanism for managing multiple out-of-order packet streams in a PCI host bridge |
US20030002497A1 (en) * | 2001-06-29 | 2003-01-02 | Anil Vasudevan | Method and apparatus to reduce packet traffic across an I/O bus |
-
2002
- 2002-02-19 US US10/080,175 patent/US7006533B2/en not_active Expired - Fee Related
-
2003
- 2003-01-30 DE DE60303119T patent/DE60303119T2/de not_active Expired - Fee Related
- 2003-01-30 CN CN201010154774.1A patent/CN101819562B/zh not_active Expired - Fee Related
- 2003-01-30 AU AU2003205389A patent/AU2003205389A1/en not_active Abandoned
- 2003-01-30 EP EP03704079A patent/EP1476817B1/en not_active Expired - Lifetime
- 2003-01-30 WO PCT/US2003/002827 patent/WO2003071434A2/en not_active Application Discontinuation
- 2003-01-30 AT AT03704079T patent/ATE315252T1/de not_active IP Right Cessation
- 2003-01-30 CN CN03804203.7A patent/CN1636198B/zh not_active Expired - Fee Related
- 2003-02-18 TW TW092103298A patent/TWI292989B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN1636198A (zh) | 2005-07-06 |
TW200401538A (en) | 2004-01-16 |
EP1476817B1 (en) | 2006-01-04 |
ATE315252T1 (de) | 2006-02-15 |
DE60303119D1 (de) | 2006-03-30 |
US20030156581A1 (en) | 2003-08-21 |
EP1476817A2 (en) | 2004-11-17 |
CN1636198B (zh) | 2010-11-24 |
US7006533B2 (en) | 2006-02-28 |
DE60303119T2 (de) | 2006-08-31 |
AU2003205389A8 (en) | 2003-09-09 |
WO2003071434A3 (en) | 2004-02-05 |
WO2003071434A2 (en) | 2003-08-28 |
AU2003205389A1 (en) | 2003-09-09 |
CN101819562B (zh) | 2013-08-21 |
TWI292989B (en) | 2008-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1069426C (zh) | 信息处理系统 | |
CN1636198B (zh) | 用于传送流动分组的装置、系统和方法 | |
US6145039A (en) | Method and apparatus for an improved interface between computer components | |
JP5897524B2 (ja) | PCIExpressでのIDベースストリームを可能にする方法及び装置 | |
TW528955B (en) | A port manager controller for connecting various function modules | |
US20040024948A1 (en) | Response reordering mechanism | |
US8244950B2 (en) | Buffering non-posted read commands and responses | |
US20080155163A1 (en) | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging | |
JP2002530744A (ja) | 多重レベル接続識別を備えた通信のシステムおよび方法 | |
US7181561B2 (en) | Ordering rule controlled command storage | |
EP1226504B1 (en) | Method and apparatus for supporting multi-clock propagation in a computer system having a point to point half duplex interconnect | |
JP2003296267A (ja) | バスシステム及びバスシステムを含む情報処理システム | |
US7096290B2 (en) | On-chip high speed data interface | |
US6822976B1 (en) | Method and apparatus for high throughput multiplexing of data | |
US6615306B1 (en) | Method and apparatus for reducing flow control and minimizing interface acquisition latency in a hub interface | |
US20030110317A1 (en) | Method and apparatus for an improved interface between a memory control hub and an input/output control hub | |
US7039047B1 (en) | Virtual wire signaling | |
US6493779B1 (en) | Method and system for interrupt handling using device pipelined packet transfers | |
JP2003085125A (ja) | メモリ制御器及びメモリ制御方法 | |
TW200819991A (en) | Data processing systems | |
JP2004318755A (ja) | メモリインタフェースおよびこれを有する装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130821 Termination date: 20180130 |