CN1279788A - 在总线系统中提供和嵌入控制信息的方法和装置 - Google Patents

在总线系统中提供和嵌入控制信息的方法和装置 Download PDF

Info

Publication number
CN1279788A
CN1279788A CN98811408A CN98811408A CN1279788A CN 1279788 A CN1279788 A CN 1279788A CN 98811408 A CN98811408 A CN 98811408A CN 98811408 A CN98811408 A CN 98811408A CN 1279788 A CN1279788 A CN 1279788A
Authority
CN
China
Prior art keywords
equipment
data
request
bus
territory
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
CN98811408A
Other languages
English (en)
Other versions
CN1113298C (zh
Inventor
D·M·贝尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1279788A publication Critical patent/CN1279788A/zh
Application granted granted Critical
Publication of CN1113298C publication Critical patent/CN1113298C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一个在一个总线事务中用于发送设备特定的数据的系统和方法。在一个由该发送设备(215)传送给一个接收设备(220)的数据包中预分配一个设备可配置域。该发送设备(215)可以配置在该设备可配置域中存储的数据。在收到该数据包时,该接收设备(220)产生一个响应数据包,其中将该设备可配域中的内容简单地拷贝到该响应数据包中的相应的域中。

Description

在总线系统中提供和嵌入控制信息的方法和装置
发明领域
本发明涉及一个同步总线系统和方法。
背景技术
总线经常用于在设备之间传送数据。总的说来,使用两类总线,同步总线和异步总线。在一个同步系统中,连接到总线的设备彼此之间同步操作。而且,用于数据传输的时间开销,即从传输设备输出数据的时间到接收设备采样该数据的时间是一个时钟周期。随着计算机系统的复杂性的增加,在物理上将设备连接得足够近,以使得跨越连接的时间加上接收设备建立和保持的时间不超过该时序开销越来越困难。
在一个异步系统中,接收和发送设备的时钟不需要彼此同步。然而,接收设备必须具有一个逻辑,以在读出所捕获的数据以及采样该所捕获的数据之前,等待几个时钟周期以保证该数据是稳定的。
发明概述
本发明的系统和方法通过在总线事务中预分配一个设备可配置域提供特定于发送设备的数据,该设备可配置域的内容可由发送一个请求的设备配置。在收到该请求时,接收设备响应该请求,并且产生一个回复。该回复包括一个域,接收设备简单地拷贝该设备可配置域中的内容到该回复的一个相应的域中。因此该回复将该相应域中的同样的信息传送回,因此使得该发送设备可以使用该域用于多种目的。
附图的简要描述
参照下面的详细描述本领域的普通技术人员将明白本发明的目标,特征和优点。其中:
图1是使用本发明的总线系统的系统的例子。
图2a,2b,2c,2d和2e示出了本发明的总线系统的一个实施例的信令结构。
图3是示出了2个时钟周期定时开销的选通启动定时细节的时序图。
图4示出通过总线接收传输的数据包的基本结构。
图5是示出该数据传输细节的时序图。
图6是一个示出用于同步该接收设备和发送设备电路的复位过程的一个实施例的流程图。
图7的流图示出了根据本发明的教导的数据包传输过程。
图8是一个简化的框图,示出该本发明的流控制机制的一个实施例。
图9a和9b是示出用于根据本发明的教导传输数据的过程的一个
实施例的流程图。
图10a、10b和10c示出了在本发明的系统的一个实施例中使用的请求和完成格式。
图11是一个根据本发明的教导使用一个设备可配置域的一个过程的一个实施例的简化流图。
详细描述
在图1中,示出一个包括本发明的教导的示例系统。很显然,本发明可以应用于多个系统和系统配置。图1示意了本发明的该总线系统可以提供的带宽。参见图1,所示出的同步总线系统100在控制器115和总线扩展器桥117,120和125之间提供连接,该控制器115起着微处理器总线110或存储器总线(未示出)之间的桥的作用,一个或多个微处理设备连接到该微处理器总线110上,一个或多个存储器设备连接到该存储器总线上。如在一个实施例中所示出的,桥117和120扩展和格式化通过总线100接收的数据,向一个64位的外围部件接口(PCI)总线121或两个32位PCI总线122,123提供输出,PCI兼容设备(未示出)连接到该PCI总线上。而且,还示出总线100向连接到一个图形总线和所连接的设备(未示出)的一个桥提供数据。
在图2a、2b、2c、2d和2e中示出了本发明的总线系统的信令拓扑。参见图2a,同步总线200将控制器215连接到扩展器桥220,该扩展器桥例如是用于桥接到PCI总线(未示出)的PCI扩展器桥。在本实施例中,所示出的控制器通过总线连接到一个总线扩展器。然而,很显然,该总线可以连接到多个类型的设备和子系统。图2b、2c、2d和2e的表描述了用于本实施例中的不同的信号。
在一个实施例中,该总线是一个16位宽的数据总线,用于传送命令,地址,数据和事务ID信息。两个另外的位传送数据域的屏蔽和其他信息。在一个实施例中,该两个另外的位的功能随着时钟周期而变化。例如,提供字节使能(屏蔽信息)的该域可用于标识该字节由有效的信息构成,以及可以交替地传送一个命令类型或奇偶校验。
该总线是一个位于发送和接收设备之间的双向总线。在本实施例中,该总线事务是全分裂事务(full split transaction),由请求数据包和完成数据包构成。该请求数据包启动一个事务。该完成数据包用于返回数据,用于指示该事务已经在目的设备上完成,以及在该源设备和目的设备之间重新分配缓冲器资源。所有事务可以分类为读取请求或者写请求。该读取请求包含用于非可提取读取的命令地址位使能,路由信息和所要求的数据的长度。该读取完成数据包包含该请求的状态,响应该读取请求所提取的数据,以及识别该相应请求的路由和事务信息。一个写请求在其数据包中包括该写入数据。该写完成数据包不包含数据,但是指示该写入是否成功完成。每个总线周期(XCLK)等价于该系统主时钟周期。然而,每个总线周期包含一个“P”半周期和“N”半周期。该“P”半周期例如只在XCLK时钟为高时出现。该“N”半周期只在该XCLK时钟为低时出现,从而通过在每个半周期传输数据包而将吞吐量加倍。
一个信息数据包包含多个32位的字。在每个XCLK周期,在该总线上传送与一个字有关的字节使能。每个字在该时钟周期的正和负相位之间分发,位[31:16]在正相位上建立,位[15:0]在负相位上建立。很显然,该总线不限于这一数据包结构,可以使用多种实现。
本发明的该高速同步总线的一个关键特征在于该复位信号(XRST#)使能连接到该总线的所有设备的同步。一旦进行了同步,传输和接收设备就根据预定的时序协议进行同步操作,在设备之间以多个时钟周期同步传输数据包。
如图2a所示出的,为了保持同步操作,该复位信号(XRST#)和时钟信号(XCLK)同时到达每个所连接的部件。在本实施例中,该XCLK和XRST#信号由一个部件215发出,传输到第二部件220,并且通过线路217,219传输回第一个部件215,线路217和219在长度上大约等于连接在第一和第二部件215,220之间的线路221和223。这将保证了部件215,220同时接收到信号,并且保持同步操作。线路217,223的长度最好尽可能地相一致,因为该时钟时序是关键的。线路219和221长度的一致性可以差一些。
在图3中示出了一个示意性的用于以2个时钟周期的时序开销的复位过程的时序图。连接到该总线的每个设备可观察到在同一个发生XCLK时钟信号上所撤销的XRST#。在观察到一个XRST#撤销后,经过一个预定数目的时钟周期(例如3个时钟周期),每个部件启动其同步选通信号。尽管在本实施例中规定了3个时钟周期,只要所有设备在同一个周期启动它们的同步选通信号,该周期的预定数目可以变化。参照图3,每个设备在时钟T3的上升边缘获取该XRST#撤销。因此,在时钟T6的上升边缘之后每个部件启动其选通信号发生器。因此该源同步信号获取电路可以同步其采样时钟,因为它知道该XRST#的撤销和该第一数据选通之间的时序关系。
可以以多种方式定义该系统和时序关系。然而,在本实施例中,采样该XRST#撤销的上升时钟边缘涉及到奇数周期,该第一数据选通从一个偶数时钟边缘开始。启动该选通信号的该最早的偶时钟边缘是在采样该XRST#撤销之后的第二个偶时钟边缘。在本实施例中,其实现两时钟周期的时序开销、用于接收数据的采样总是选择包含在两个时钟周期之前发出的数据的获取单元(例如触发器)。例如,在一个三时钟周期模式中,该选择总是选择在三个时钟周期之前发出的单元。在XRST#撤销时该多路转换器识别该奇时钟。因为该第一选通被定义在总是在一个偶时钟发送,该获取触发器和取样多路转换器保持同步。
如前所述,因为该时序开销已经被扩展跨越多个时钟周期,所以设备之间的距离比通常的同步总线系统长。更进一步,通过在偶数和奇数时钟周期都发送数据,可以部分地使用较少的管脚获得更大的数据吞吐量。在图4中示出了在接收机处的该捕获机制,该捕获机制允许这一功能以及扩展时序开销。通过两个捕获触发器405或410之一接收数据。该触发器使能由第三个触发器415控制,该触发器415使得在该正数据选通信号(P_STB#)的驱动下使该所使能的触发器在捕获触发器405和410之间切换。从而在一个偶时钟发出的数据由该偶捕获触发器410捕获。在一个奇时钟发出的数据总是由该奇捕获触发器405捕获。图4所示出的当前电路显示了用于该信号的正数据相位的捕获电路。因此,也可以包括一个负数据相位捕获电路,其由一个负选通信号(N_STB#)驱动。在这一电路中,该内核时钟—至—取样触发器也被反相。
再次参照图4,该采样多路转换器420在启动(即发出)数据传输之后两个时钟周期从该捕获触发器采样该数据。该多路转换器420由该复位信号XRST#和该电路430同步,该电路430由该复位信号驱动。因此,由于该采样多路转换器420被同步到在偶时钟初始采样,该数据首先在偶时钟到达,如在选通启动时序细节中所示出的,从而该多路转换器420在发出之后两个周期正确地采样该偶和奇时钟数据。
一旦通过该采样多路转换器处理该数据,该数据被输入到该组合逻辑和一个采样触发器440。其随后被输出到该设备的其他电路。应该注意的是,该电路430显示了多个触发器,它们产生充分的延迟以提供适当初始化用于有效采样数据。该延迟路径将该采样多路转换器420同步到该所发出的数据。该延迟可以根据所实现的配置而改变。最好是,如图2所示,XCLKout(时钟信号)和XRSTout#(复位信号)由一个共同的源产生。在本实施例中,两者由该控制器产生,并且由使两者经过一个外部时钟驱动器传送以及保持如图2所示的近似相同的传送信号线长度而将两者保持同步。最好是,该总线的长度受到下列因素的限制:XCLK,XCLK至P_STB#+TOF(设备之间的信号传输时间)+P_STB#至捕获数据有效+P数据采样的建立时间小于或等于所分配的时钟周期数目(在本例中为2个时钟周期)。因此,在本实施例中,经过该采样触发器和采样多路转换器之间的组合逻辑435的延迟必须被包括在该建立时间中。最好是,在XCLK至P_STB+TOF大于或等于一个时钟周期时,从接收到发送的回转时间必须从一个XCLK周期增加到两个XCLK周期。这是为防止发送数据与该跟随的负数据相位接收数据相冲突。
图5示出的时序电路表示了所示例的数据包传输的时序。现在参见图5,在T5之前的某一时刻XRST#已经撤消了。该选通(P_STB#,N_STB#)已经在运行,并且该取样电路被同步。在左边被括起来的并被标以“send”的信号表示在发送端所观察到的信号定时,“Receive”信号表示在接收端所观察到的同一个信号。其之间的差就是在发送设备和接收设备之间该信号的传输时间所产生的时间位移。
在T37时刻,该发送设备确立HRTS#以表示它请求发送,在T37时刻,没有观察到XRTS#(未示出)被确立,从而该发送设备知道它已经赢得总线的裁决。发送方在时刻T38确立XADS#,以构成数据包信息,如1P,1N,2P,2N所指示的。
在接收端,该接收设备在时刻T38观察到(捕获)所确立的HRTS#。这是在时刻T37所确立的经过了时间位移的信号HRTS#。该接收设备知道在下一个时钟期间预计出现XADS#。当前实施例利用一个分布式仲裁器。从而,如果在这一例子中的发送方没有较高的优先级,就会在HRTS#两个时钟之后而不是一个时钟之后发送XADS#。每个设备知道其自己的优先级。根据约定,高优先级的设备比低优先级的设备早一个时钟发送数据(假设该低优先级的设备没有事先请求)。因此,在低优先级的设备确立其请求时,它必须等待另外一个时钟周期,以保证该高优先级的设备观察到该请求。在时钟T39,接收设备才从捕获该HRTS#的捕获触发器采样该HRTS#。然后在时刻T39开始从各个触发器采样数据。
在简化的流程图图6和7中示出了复位该系统的过程,使其以同步方式操作传输数据。参照图6概括描述执行该复位的过程。在步骤605,传送复位信号,使得它被所有的设备同时收到。进一步,该复位信号(XRST#)被通过驱动器输出,并且被反馈到起源设备,使得该线的长度是一致的,并且该复位信号被所有设备同时收到。该复位信号由一个PLL时钟同步送出,该PLL时钟通常不与该控制器设备(例如图2的设备215)的内核时钟同相。然而,该同样长度的反馈线保证了该时钟(以及与其同步的复位信号)在该信号到达该线的末端的时刻与该内核时钟同相。在步骤610设备(例如图2的215,220)观察到该复位信号的撤消。在步骤616,将采样该复位信号的第一个上升的时钟边缘标识为奇时钟周期,将下一个边缘标识为偶时钟周期。将第一个数据选通指示为在该复位信号撤消之后的第二个(偶)时钟边缘。在步骤620,在该复位信号撤消时,选择每一个设备的接收电路中的多路转换器的一个触发器识别该奇时钟周期,以将采样电路同步到发出该数据选通和数据的发送电路。
在步骤630,在一个偶时钟周期的时钟边缘启动数据传输,这与在该偶时钟周期发出数据选通相一致。最好是,在启动数据传输之前该系统等待一个预定的时钟周期数目,诸如64个时钟周期,使得给予电路的启动初始化提供充分的时间。
现在参考图7描述该传输过程。在步骤700,该传输设备向该接收设备同时发出一个选通和数据。在步骤70l,接收设备接收到该选通和数据。在步骤702,如果该选通是在一个偶时钟传送的,则该数据由偶触发器捕获。如果该选通是在一个奇时钟传送的,则该数据由奇触发器捕获。在步骤703,该数据在从该发送设备发出后两个时钟之后在该接收器被采样。从而如果该数据是在偶时钟周期发出的,则由该偶触发器采样该数据,如果该数据是在奇时钟周期发出的,则由该奇触发器采样该数据。如上所述,一旦在两个设备中的电路被同步,该接收器电路简单地在偶触发器和奇触发器之间切换。因此,我们描述了在多个时钟周期上操作同步总线进行传输的过程,其中该发送设备和接收设备以同样的频率接收时钟信号。
尽管没有要求上面描述的高速同步系统的操作,但是使用下面描述的嵌入的流控制方法和装置进一步增加了该系统的效率。
特别是,通过将流控制分布到连接到该总线的设备以及将流控制数据嵌入到数据包中减少总线开销。每个设备具有至少一个跟踪数据流和进入和出去总线的总线请求的跟踪设备或者电路。在初始化时,向每个跟踪设备提供关于其他所连接的设备的缓冲器容量的信息。在数据包的传输过程期间,该跟踪设备访问每个分组的预定的位数以确定该队列的状态(即多满/空),并且控制数据包在设备之间的流动。从而将流控制嵌入该数据包协议中。
在当前的实施例中,描述了两个设备之间的流控制。然而,可以考虑通过复制跟踪设备将该结构扩充到支持多对设备之间的流控制。在图8中示出了该系统的流控制部分的简化的框图。参见图8,将存储器控制器805连接到存储器802和一个处理器803。或者将该存储器控制器连接到一个处理器总线,一个或者多个处理器803连接到该总线上。该存储器控制器805通过一条总线815进一步连接到一个总线桥810。在一个实施例中,该总线桥810连接到一个PCI总线820。该总线桥810提供到PCI总线820的一个总线连接(例如一个64位的连接)。然而,可考虑使该总线桥支持多个总线连接(例如两个32位的连接)。在一个多总线连接装置中,该跟踪电路跟踪该双队列的状态,一个队列一个连接。另外,这里将设备805描述为一个存储器控制器。然而,很明显,该设备805可以是连接到总线815的多种设备类型。类似地,可以将设备810作为多种设备实现,并不限于总线桥。
该存储器控制器805包括请求队列跟踪设备逻辑电路822,数据队列跟踪设备逻辑电路832,外出请求队列824,外出数据缓冲器826,进入请求队列828和进入数据队列830。同样示出了接口/控制逻辑电路834,该逻辑电路提供用于与存储器802和处理器803连接,执行存储器802和处理器803的存储器操作,以及提供请求数据包和确认数据包(下面将进行描述)的支持逻辑电路。
为了说明简化的目的,所示出的在存储器802,处理器803和存储器控制器805之间的进行通讯的数据是通过该接口/控制逻辑电路834进行传输的。然而,可考虑在该队列和存储器802和处理器803之间直接进行数据传输。该请求队列跟踪逻辑电路822和数据队列跟踪逻辑电路832分别跟踪各个队列824,852和826,856各自有多满,使得一旦队列已满,该跟踪设备防止产生一个数据包和将其放入队列824,826。在当前实施例,跟踪设备822,832作为一个计数器工作,以保持可用的队列空间的计数。该接口/控制逻辑电路834与该跟踪设备822,832一起操作,以向处理器803和存储器802发出相应的控制信号/数据,允许/防止产生外出的数据包和将其放入相应的队列。进入请求队列828和进入数据队列830分别从总线桥810接收进入请求和确认数据包(和相关的数据)。在一个实施例中,分别对该写数据和读数据进行队列存储和跟踪。在一个实施例中,该请求队列维持读和写请求,但是该跟踪设备只允许一个预定最大数目的读请求和一个预定数目的写请求,而不管在该队列中可使用的数据项的数目。
在一个实施例中,该跟踪逻辑822被配置成在一个深度为8的队列中只允许两个读请求和6个写请求。这是理想的,从而在请求的数目超过一个队列的大小时一种类型的请求(例如写请求)不会阻止读请求的队列存储。从而在当前的实施例中,如果当前队列存储6个写请求,并且该设备希望存储第7个写请求,该跟踪设备将不允许这种情况,即使该队列具有接收另外两个请求的容量(它们是对于每个读请求预先分配的)。如果该队列当前有6个写请求,并且该设备想发出一个读请求,该跟踪设备将允许队列存储该读请求。
该总线桥810类似地被配置成具有一个请求队列跟踪设备850,数据队列跟踪设备860,外出请求队列852,进入请求队列854,外出数据队列856,进入数据队列858和接口/控制逻辑电路882。执行类似于上述的队列跟踪功能。跟踪设备850,860分别维持存储在队列854,828或858,830中存储的信息的计数,并且在其中一个队列满时防止产生数据包。这里没有详细描述的接口/控制逻辑电路882代表用于与该总线820通讯的逻辑电路,并且产生下面将描述的该请求和确认数据包。
图9a和9b是简化了的流程图,它们分别表示用于请求和数据的流控制过程。尽管分别描述了这两个过程,并且可以使用其中之一或者两个过程启动该流控制,最好是同时使用这两个过程以控制该流控制,如图9c所示。在该当前的实施例中,该跟踪设备保持一个表示存储在接收缓冲器中的数据的计数。例如,跟踪设备824维持在队列852中存储的请求的计数。在该计数超过一个预定的最大值时,该跟踪设备控制该设备,比如处理器803,以禁止产生该数据包,以及使该设备继续重试发出该请求,直到在该队列中有空间可以利用。在当前的实施例中,如果该跟踪设备指示该接收队列是满的,就不产生一个数据包;可以考虑在另一个实施例中,该跟踪设备可以使用另一机制防止一个请求进入一个满的队列。
现在转回当前的实施例,如果从总线820尝试一个进入PCI(写)请求,将重试该请求直到该进入跟踪设备850指示在设备805中的进入队列具有用于该写请求的空间。对于外出事务发生同样的情况。如果一个进入请求队列要接受一个事务,而在该接收进入队列中没有空间,就会发生死锁,即使没有发送数据包,直到在该接受队列中有空闲空间时为止。
参见图9a,在步骤900,初始化由该跟踪设备维持的请求缓冲器计数。例如,该计数可以被初始化为零。然而该实际值可以是另一其他值,使得在该计数到达对应于该相应缓冲器的大小的预定的最大值时,发生一个寄存器溢出。或者是将该计数初始化为对应于该预定的最大值的一个值,在要发送每个请求时该跟踪设备递减该计数。从而在该计数到达零时,达到该缓冲器的最大值。可以将该缓冲器的最大规模进行硬编码或者从一个配置寄存器中读出或者填充。最好是,检查相应的缓冲器对,例如724,752,的容量,以确定具有该较小的容量的缓冲器,在这种情况下,该最大规模对应于具有该较小容量的缓冲器的大小。进一步,出于多种原因,可以考虑,该预定的最大值不一定必须正好等于该缓冲器的容量,可以是小于实际缓冲器容量的一个值。例如,在当前实施例中,即使该缓冲器容量是8,该写请求的预定的最大值是6。也可以考虑其它实施例。
在步骤905,如果收到一个完整的数据包,请求跟踪设备递减该请求缓冲器计数,在步骤910,接收到一个完成数据包,其表示该请求已被处理并且不再在缓冲器中。在步骤915,如果是要传送一个请求数据包,在步骤920,递增该请求缓冲器计数,并且判断该计数是否超过该预定的最大值(步骤925)。如果该计数不超过该预定的最大值,则在该设备中的接收缓冲器具有接收该请求的容量,并且准备该请求分组用于传输,以及随后通过总线传送(步骤940)。如果该计数超过该预定的最大值,则该缓冲器的可用的容量不能接受该请求数据包,并且该请求数据包跟踪设备防止产生该请求数据包或者进入队列,并且重试在该启动总线的传输过程,步骤935。
应当注意,图9a是参照自第一设备(例如图8的设备805)传输请求数据包描述的。然而,由于该数据包缓存在该同一个缓冲器(例如图8的进入请求缓冲器852),在该同一个设备要发送一个完成数据包时,执行该同样的过程。另外,如果以一个双端口设备(诸如上述总线桥)执行该同一个过程,该笫一设备就继续传送(最好传送到替代缓冲器),直到两个缓冲器的容量全部为满。
对于在数据包中包含的数据执行一个非常类似的过程,以控制流控制。一个请求数据包的大小是确定的,其适应预定量的空间。然而,该数据量是可变的。因此,对于数据缓冲器,访问该数据包的一个长度字段以确定所需的缓冲器的空间量。然后执行一个类似的过程,确定何时存储在队列中的数据要超过该数据队列的容量。该跟踪设备将不允许超过该数据缓冲器的容量。例如,如果在总线820上的设备想写16个DWORDS(16*4个字节),但是跟踪设备指示只有8个空间,该控制逻辑882将只接受8个DWORDS。该总线820上的设备(未示出)必须对其余的DWORDS重试写入,直到该跟踪设备指示有用于它们的空间。也可以将控制逻辑882配置成该控制逻辑不允许产生数据包,直到所有的数据可以放在该队列中。
参见图9b,初始化该数据缓冲器,步骤950。如果收到一个完成数据包(步骤955),在步骤960将该数据缓冲器计数递减一个存储在该完成数据包中的长度(LEN)值。通过使用LEN值,可以准确地执行与该缓冲器容量有关的的缓冲器跟踪。应该注意,该LEN值与在该引出信息中发现的长度值相同。在步骤965,如果要发送一个请求,就确定该LEN值,并且将数据缓冲器计数递增一个对应于该LEN的量。在步骤970,如果该数据包的数据量加上该缓冲器中的当前数据量超过该缓冲器的容量,就禁止该设备产生该数据包以及放入该缓冲器中。该设备随后重试(990),直到该缓冲器的容量可以接受该数据包的数据量。较佳的是,请求设备可以指示要发送的是适合该剩余缓冲器空间的数据的一部分(例如通过向该跟踪设备发布一个命令)。该请求设备随后对该数据的剩余部分发布请求,并且在需要的时候进行重试。如果不超过该缓冲器计数,则在步骤995由该请求设备形成该数据包,并且被放入该缓冲器中。
如前面所说明的,较佳的是该流控制过程要考虑可用的请求缓冲器的空间和可用的数据缓冲器空间。如果每一个缓冲器都是满的,不能接收数据,就不能处理该请求。这个过程在图9c的流程图中示出。在步骤996,判定是否接收到一个完成数据包,如果接收到一个完成数据包,则在步骤997将该请求缓冲器计数递减一个数量,该数量对应于一个请求,将该数据缓冲器计数递减一个数量,该数量对应于该LEN值。在步骤998,如果接收到一个请求,就判定在该请求缓冲器和数据缓冲器中是否有可用的缓冲器空间。由于数据量可以变化,有可能一个缓冲器是满的而另一个缓冲器仍然有空间。如果每一个缓冲器都不能用于接收一个请求,就不处理该请求,在步骤1000向发送设备发布一个重试信号,指示以后重试该请求。否则,在步骤1001,向该请求缓冲器输出该请求,向该数据缓冲器输出该对应的数据。
从而,将该流控制嵌入在该数据包协议中。在图10a,10b和10c中示出了示意性的数据包。所描述的流控制机制指类型编码(TP[1:0]),请求命令编码(RCOM[4:0]),完成命令编码(CCOM[4:0])和长度(LEN[7:0])域,这些可以在请求数据包(图10a)和完成数据包(图10b)中找到。最好是由该跟踪设备分别控制写入和读取,使得可以使用不同的最大计数值用于写请求和读请求。
例如,当将一个读请求推入该存储器控制器外出事务队列时,TP[1:0]是00,表示一个不带数据的请求,RCOM[4:0]为0,表示该请求使用一个读队列项(read queue slot)。形成该数据包并且将之放入该队列中,并且因此将该外出读队列跟踪设备递减1。在PXB将对应于该读请求的完成数据包发送回时,IP[1:0]是[1:x],其中如果该数据返回,则x是1,如果没有数据返回,则x是0。CCOM[4:0]是0,表示这是一个用于一个读请求的完成。该外出读队列跟踪设备因此将该计数递增1。接下来是,当从该存储器控制器进入事务队列弹出一个读完成时,就将该外出读队列跟踪设备递增1。对于该总线桥发生类似的操作。
在要执行一个写入操作时,将该请求推入该设备的外出事务队列。TP[1:0]是01,表示一个带有数据的请求,RCOM[4:0]为1,表示该请求正在使用一个写队列项。将该输出写请求队列跟踪设备递增1。在将对应于该写请求的完成数据包发送回时,TP[1:0]是10,表示一个不带数据的完成。CCOM[4:0]是1,表示这是一个用于一个写请求的完成数据包。当从该设备的进入事务队列弹出一个写完成时,就将该外出写队列跟踪设备递增l。如上面所指出的,在一个事务队列跟踪设备递减到0时,该类型的事务就不再被推入到该事务队列中。最好是,该请求设备重试该类型的任何另外的动作。
在本实施例中,对数据缓冲器管理的处理有些不同;然而,可考虑以与请求相同的方式处理数据缓冲器管理。由该数据缓冲器跟踪设备使用在该请求数据包头标中的TP[1:0],RCOM[4:0]和LEN[7:0]域以分配数据缓冲器。由该数据缓冲器跟踪设备使用在该完成数据包头标中的IP[1:0],CCOM[4:0]和LEN[7:0]域以释放数据缓冲器。
例如,在由比如该处理器将一个读取请求推入该存储器控制器外出事务队列时,TP[1:0]为00,表示一个不带数据的请求,RCOM[0]为0,表示该请求正在使用一个读队列项,将该外出读数据缓冲器跟踪设备递减LEN,其中该LEN指示数据的大小,在本实施例中,是所请求的DWORDS的数目。
在由该总线桥将该读取的完成数据包发送回时,TP[1:0]为[1:x],其中如果数据被返回则x为1,如果没有数据返回,则x为0。CCOM[4:0]为0,表示该数据包是一个用于一次读取的完成数据包。在将一个读取完成从该存储器控制器进入事务队列弹出时,将该外出读取数据缓冲器递增LEN。
在由比如该所连接的处理器将一个写数据包推入该存储器控制器外出事务队列时,TP[1:0]为01,表示一个带有数据的请求,RCOM[4:0]为1,表示该请求正在使用一个写队列项。将该外出写数据缓冲器跟踪设备递减LEN,其中LEN表示被写入的DWORDS的数目。即使该写入在另一总线上没有成功,在该写请求数据包和该相关的完成数据包的LEN域中的值总是相同的。
在由该PXB将该写入的完成数据包发送回时,IP[1:0]为10,表示一个不带数据的完成,CCOM[0]为1,表示该数据包是一个用于一个写请求的完成数据包。在该外出写数据缓冲器跟踪设备接收该写完成时,将该计数递增LEN。请求和完成以和它们输入相同的顺序离开一个事务队列。对于保留适当的事务顺序,即在一条总线上出现的次序与在该接收总线上的次序相同,这是必须的。然而,一个写完成不包含数据,因此,不要求顺序。因此,最好是将该完成数据包直接发送到该跟踪设备。
在一个数据缓冲器跟踪设备递减到0或者对于一个特定的请求其数据缓冲器不足时,该请求不能被推入该事务队列。该数据缓冲器跟踪设备的总线接口因此将重试该类型的任何其它事务。使用类似的逻辑支持由该总线桥发布的写数据包。
下面示出了该嵌入的流控制过程的简化的例子。为了讨论的目的,该例子被简化了,没有考虑诸如与预提取有关的其它配置参数。另外,下面的例子和讨论在一个设备的上下文中探讨该流控制机制,诸如通过该本发明的高速总线连接到一个PCI总线桥扩展器的存储器控制器,该PCI总线桥扩展器将数据传输到两个32位PCI总线或者一个64位的PCI总线。
数据缓冲器跟踪设备(事务的单独的跟踪设备)
请求 写数据跟踪设备计数 写事务项 读数据缓冲器计数 读事务项 动作
任一读     ×     ×     0     × 重试
总线桥(BB)读     ×     ×     8    >0 多达8个DWORDS的请求
多个BB读     ×     ×     8     >0 请求多达8个DWORDS
部分存储器读(1个DWORD)     ×     ×     1     >0 请求1个DWORD
部分存储器读     ×     ×     ×     0 重试
部分存储器读(2个DWORDS)     ×     ×     1    >0 读一个DWORD
任一写     0     ×     ×     × 重试
部分存储器写(1个DWORD)    >1    >1     ×     × 写1个DWORD
部分存储器写(2个DWORDS)     1     1     ×     × 写1个DWORD;第2个DWORD必须重试
BB写     8    >0     ×     × 数据串发送直到8个DWORDS
BB MWI(1行=8个DWORDS)    <8     ×     ×     × 重试(缓冲器必须有8个DWORDS)
部分存储器写(1个DWORD)     ×     0     ×     ×
某些事务需要传输固定数量的DWORDS。例如,一个行写命令(PCIMWI)必须传输一整行。如果一行由8个DWORDS组成,可以利用的缓冲器少于8个DWORDS,则必须重试该事务。然而,对于一个正常的写数据串,可能只能接收该数目的DWORDS的一部分,而其余部分要重试。例如,除非可以使用对应于一整行的DWORDS的缓冲器空间,否则要重试存储器读行(MRL)事务。
如上所指出的,最好将该总线桥配置成发送用于双32位的操作模式和单64位的操作模式的数据包。在双32位模式中,‘a’和‘b’事务队列在它们各自的总线上独立操作。只在该高速总线接口出现交互,在该接口中一组或者另一组队列在该高速总线上在该总线桥和该存储器控制器之间发送或者接收。
在单64位模式中,该外出事务队列被配对以作为单个外出队列出现,将该进入事务队列配对以作为单个进入事务队列出现。实际上,该64位PCI总线接口的队列深度是该双32位PCI接口的每一个的两倍。因此队列跟踪是可配置的,以跟踪一队进入/外出队列以及一单个组队列。
将该外出事务队列以与该进入事务队列类似的方式进行对待。如果来自该高速总线接口的一个外出事务进入该‘a’外出队列(OutQa),下一个外出事务将进入该‘b’外出队列(OutQb),等等。在该总线桥接口,逻辑(比如一个状态机)在OutQa和OutQb之间切换。在0utQa开始,在连接到该总线桥的总线(比如一个PCI总线)上尝试第一个外出事务。如果该事务完成了,它就从OutQa弹出,并且将该完成数据包推入该队列指针正在指向的进入队列。接下来,尝试在OutQb顶部的事务。如果在第一次尝试时完成每个外出事务,该外出队列指针对每个所完成的事务进行切换。
如果重试在该外出队列顶部的一个读事务,就将其移入该相应的读请求队列RRQ(a或b),外出队列指针切换到另一个队列。如果重试该外出队列顶部的一个写事务,最好该队列指针不切换。在该外出队列指针将切换到另一个队列之间,一个重试的写入必须成功。然而,在尝试完成在该当前队列的顶部的写之间,也可以尝试在任一RRQ中的任一读取。一旦该当前外出写成功,就将其从该队列弹出,并且将一个完成数据包插入该当前进入队列。即使一个未完成的读取仍然保留在该RRQ中,该外出队列指针将切换到该另一个队列。
概括而言,一旦一个事务从该当前队列弹出,该外出队列指针就切换到另一个队列。一个被重试的写入只有在其成功后才被弹出。将一个被重试的读取从该外出队列弹出并且推入该RRQ。可以在任何时候尝试在一个RRQ中的读取,因为在其从该外出队列弹出的时候满足其顺序要求。(注意:在一个64位PCI模式中,在一个RRQ中的外出读取可以经过在另一RRQ中的外出读取)
在32位模式,根据该数据包的目的地标识(目的地ID),将一个外出事务从该高速总线传送到外出队列‘a’或‘b’之一。如在前一节所讨论的,多路转换器选择该下一个外出请求或者先前所退役的读取。对于64位的PCI模式,最好使用一个单独的多路转换器。在该总线桥启动64位模式的PCI事务时,一个多路转换器从外出队列‘a’或外出队列‘b’之一选择该命令和地址位。
进入事务可以寻址超过32位,从而两个进入队列可以支持在32位和64位模式中的双地址周期(DAC)译码。对于地址的高和低32位,该进入请求队列具有单独的锁存使能。在32位模式,低位地址分别锁存在PCI总线‘a’或‘b’的地址锁存器‘a’或地址锁存器‘b’中。在下一个PCI时钟之前该进入请求队列锁存该低位地址以准备一个DAC的高位地址的到达。如果该进入事务是一个单地址周期事务,必须将0加载进该进入请求队列的高位地址域中。
在64位模式,由32位PCI主或者64位PCI主启动该进入事务。32位PCI和64位PCI主(比如存储器控制器)要求在C/B[3:0]对数据包确立DAC以寻址超过4GB,因为PCI主在这时不知道该目标设备是否是64位。对于低于4GB的地址,不要求64位的PCI主将高位地址驱动为0。如果以FRAME#确立REQ64#,并且在该第一个地址周期PXB在C/B[3:0]上译码DAC,它可以立即译码该整个地址。如果C/B[3:0]不指示DAC,该PXB必须在译码该地址之前迫使该高位地址全部为0。
如先前所说明的,该数据缓冲器最好作为与该事务或者请求队列独立的结构存在。将该PCI事务的数据存储在与该事务队列独立的队列结构中。将这一数据队列结构称之为数据缓冲器或者数据队列。对于数据,需要独立的队列,因为在事务队列中的事务和完成不是总是以它们进入该事务队列的相同顺序退役的。例如,写事务可以以同样的方向经过读事务。同样,PCI延迟的写以PCI主返回它们的数据的顺序退役,不必以接收读请求或者读数据的同样的顺序。
在双32位PCI模式中,在一个进入PCI写事务进入InQa时,在PCI总线上接着该地址和命令的数据将进入该PW Data 1进入数据队列。在经过该F16总线发送该相关的写数据包时,包含该写命令和地址的数据包头标将从InQa事务队列中拉出,写数据将从PW Data1/DRPLY Data 1进入数据队列中拉出。类似地,PCI总线‘b’上的一个进入PCI写将该命令和地址推入InQb,在该PCI总线上随后的相关数据被推入PW Data 2进入数据队列。
在双32位的PCI模式中,一个对PCI总线‘a’的外出32位PCI读取在PCI总线上成功时,就从OutQa或RRQa拉出对该PCI总线‘a’的该外出32位PCI读取,以及将一个读完成推入该InQa进入事务队列。该相关的读数据进入该PW Data 1/DRPLY Data 1进入数据队列。在通过F16总线发送该完成数据包时,将从该InQa事务队列拉出包含该读取完成标识符的数据包头标,以及从该PW Data 1/DRPLY Data1进入数据队列拉出该读取数据。
每个32位的PCI端口具有两个未完成的进入PCI读取。如果在该PXB进入队列中有一项用于读取以及在该PXB和MIOC中有可用的进入读数据缓冲器,则将一个在PCI端口的进入PCI读取推入InQa。此时,以该进入读取的命令和地址域加载该进入延迟的读取完成跟踪设备,从而可以识别请求该读取的PCI主。也将对于这一进入事务唯一的一个事务标识符加载进该进入延迟的读取完成跟踪设备,从而在其到达该OutQa时,可以标识该读完成。在该进入读取在该P6总线上完成时,一个延迟的读完成(DRC)数据包(其包含该读数据)将通过该高速总线到达该总线桥。包含该进入读取标识符的DRC翻译头标将被推入OutQa。根据哪一个DRC数据队列被分配给这一进入读取,将随着该数据包的读取数据推入DRC Data 1数据队列或者DRC 2数据队列。在该PCI主返回其数据时(其将连续地被退役,直到该数据到达),如果该相关的进入读取完成已经从该OutQa事务队列的顶部弹出以及在进入延迟的读取完成跟踪设备中将该进入读取标记为完成,则该PCI主将从DRC Data 1或DRC Data 2数据队列接收该数据。
在64位PCI模式中,类似于在64位PCI模式中的事务队列,将该两组数据缓冲器队列配对。一个进入写入将使得数据被交替推入PWData 1和PW Data 2数据队列。该数据队列为32位宽(DWord)。如果一次从一个64位PCI总线主接收64位的数据,以及该数据队列指针正在指向PW Data 1队列,该第一个DWord被推入PW Data 1数据队列,以及下一个DWord将被推入PW Data 2数据队列。另外的DWORDS在两个进入数据队列之间交替。
该DRC数据队列和写数据队列被配对,并以类似的方式交错。
上述的改进的数据包格式除了嵌入流控制信息外,还提供了这里称之为事务标识(TID)域的至少一个域,可以以多种方式使用该域。根据该应用该域最好是可以配置的。其优点是发送设备(即分发一个请求数据包的设备)可在这一域存储预定的数据,例如一个事务标识符或其它标识符。在处理该请求和准备该完成数据包后,该接收设备的控制逻辑简单地将该域的内容拷贝到该完成数据包,以传送回最初的发送设备。因此,其配置可以是这样的,由于该接收设备简单地拷贝该内容并且将其发送回时,使得该域的内容只对该发送设备有意义。而且,由于该数据包不限于特定的数据,该域可以用于多种目的。进一步,由于该接收设备简单地将该内容拷贝到该完成数据包,因此该内容保持不受干扰。
参考图11概括描述这一过程。在步骤1105,发送设备形成一个请求数据包。该请求数据包包括该事务ID域,该事务ID域用于存储请求设备数据。在步骤1110,发布该请求数据包,在步骤1115,该接收设备接收该数据包,并且形成一个回复数据包(1120)。该接收设备简单将该TID域拷贝到回复数据包,用于发送设备的随后访问。由于对此只要求简单的拷贝操作,因此该TID的内容不要求由接收设备解释。在步骤1125,将包括该TID域的所拷贝的内容的回复数据包发送回该请求设备。
在本实施例中,该域用于一次延缓的外出读取(处理器到PCI)事务。一个延缓的事务是一个分裂的事务,其中该读取被分裂成该最初的读请求,以及后来的一个延缓的回复。该所请求的数据由该延缓的回复返回。因此将该读请求者的设备和事务ID放入该TID域。在发送带有该读取数据的完成数据包时,将该TID从该请求数据包拷贝到该完成数据包。在该完成数据包到达该进入请求队列的顶部时,将一个延缓的回复发送到该请求处理器。该延缓的回复拷贝该完成TID到该延缓的回复,用于寻址发起该最初的读取的处理器。
已经结合本较佳实施例描述了本发明。很显然,对于本领域的普通技术人员来说,可以对所描述的内容进行多种替换,修改,变化和使用。

Claims (10)

1.一种在一个总线事务中动态发送设备数据的方法,包括步骤:
一个第一设备产生一个请求,该请求包括多个域,该多个域包括一个设备可配置域,该设备可配置域包括设备可配置数据;
所述第一设备向一个第二设备发布该请求;
所述第二设备产生包括多个域的一个回复;
所述第二设备将在该设备可配置域中接收的数据拷贝到
该回复的多个域中的一个指定的域中;
所述第二设备向该第一设备发布该回复。
2、根据权利要求1的方法,其特征在于该指定的域位于该回复中对应于该请求的该设备可配置域的域位置的一个位置。
3、根据权利要求1的方法,其特征在于该第一设备使用该设备可配置域来存储由该第一设备发布的事务的一个事务标识。
4、根据权利要求3的方法,其特征在于还包括步骤:该第一设备读取该指定的域以确定该回复所对应的请求的标识。
5、一个总线系统,包括:
一条总线;
连接到该总线的一个第一设备,所述第一设备配置成发布一个请求,该请求包括一个设备可配置域,该设备可配置域包括设备可配置数据;
一个第二设备,其连接到该总线并且配置成接收该请求和拷贝该设备可配置数据到一个回复的一个指定的域以及发布该回复至该第一设备。
6、根据权利要求5的总线系统,其特征在于该指定的域位于该回复中对应于该请求的该设备可配置域的域位置的一个位置。
7、根据权利要求5的总线系统,其特征在于该第一设备使用该设备可配置域来存储由该第一设备发布的事务的一个事务标识。
8、根据权利要求7的总线系统,其特征在于还包括步骤:该第一设备读取该指定的域以确定该回复所对应的请求的标识。
9、一条总线,包括多个总线线路,该多个总线线路配置成在传输一个请求期间从一个第一设备向一个第二设备传送设备可配置数据,并且进一步配置成在传输该请求的回复期间从该第二设备向该第一设备传送该设备可配置数据。
10、根据权利要求9的总线。其特征在于该设备可配置数据包括一个事务标识。
CN98811408A 1997-09-22 1998-09-17 在总线系统中提供和嵌入控制信息的方法和装置 Expired - Fee Related CN1113298C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/934,968 1997-09-22
US08/934,968 US7107371B1 (en) 1997-09-22 1997-09-22 Method and apparatus for providing and embedding control information in a bus system

Publications (2)

Publication Number Publication Date
CN1279788A true CN1279788A (zh) 2001-01-10
CN1113298C CN1113298C (zh) 2003-07-02

Family

ID=25466361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98811408A Expired - Fee Related CN1113298C (zh) 1997-09-22 1998-09-17 在总线系统中提供和嵌入控制信息的方法和装置

Country Status (7)

Country Link
US (1) US7107371B1 (zh)
EP (1) EP1086428B1 (zh)
CN (1) CN1113298C (zh)
AU (1) AU9319698A (zh)
DE (1) DE69825636T2 (zh)
HK (1) HK1033017A1 (zh)
WO (1) WO1999015980A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416673A (zh) * 2016-07-13 2019-03-01 高通股份有限公司 存储器请求仲裁
CN113986817A (zh) * 2021-12-30 2022-01-28 中科声龙科技发展(北京)有限公司 运算芯片访问片内存储区域的方法和运算芯片

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311285B1 (en) * 1999-04-27 2001-10-30 Intel Corporation Method and apparatus for source synchronous transfers at frequencies including an odd fraction of a core frequency
US7804890B2 (en) * 2005-06-23 2010-09-28 Intel Corporation Method and system for response determinism by synchronization
US7660933B2 (en) * 2007-10-11 2010-02-09 Broadcom Corporation Memory and I/O bridge
US8356119B2 (en) * 2010-04-26 2013-01-15 Arm Limited Performance by reducing transaction request ordering requirements
US10324865B2 (en) 2016-09-06 2019-06-18 Apple Inc. Maintaining ordering requirements while converting protocols in a communications fabric
US10255218B1 (en) 2018-06-25 2019-04-09 Apple Inc. Systems and methods for maintaining specific ordering in bus traffic

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764920A (en) 1972-06-15 1973-10-09 Honeywell Inf Systems Apparatus for sampling an asynchronous signal by a synchronous signal
US4503499A (en) 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4719621A (en) 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4941089A (en) 1986-12-12 1990-07-10 Datapoint Corporation Input/output network for computer system
US4922486A (en) 1988-03-31 1990-05-01 American Telephone And Telegraph Company User to network interface protocol for packet communications networks
US5193090A (en) 1988-07-15 1993-03-09 Janusz Filipiak Access protection and priority control in distributed queueing
US5101347A (en) 1988-11-16 1992-03-31 National Semiconductor Corporation System for reducing skew in the parallel transmission of multi-bit data slices
GB9012970D0 (en) * 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
US5210858A (en) 1989-10-17 1993-05-11 Jensen Jan E B Clock division chip for computer system which interfaces a slower cache memory controller to be used with a faster processor
GB2251099B (en) 1990-12-19 1994-08-03 Motorola Inc Bus system
US5367643A (en) 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5257258A (en) 1991-02-15 1993-10-26 International Business Machines Corporation "Least time to reach bound" service policy for buffer systems
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
SE470002B (sv) 1992-03-13 1993-10-18 Ellemtel Utvecklings Ab Förfarande för att förhindra att det på någon av ett antal kanaler på en gemensam överföringsledning sänds datapaket med högre intensitet än ett för kanalen förutbestämt värde samt anordning för utövande av sättet
US5404171A (en) 1992-06-19 1995-04-04 Intel Corporation Method and apparatus for synchronizing digital packets of information to an arbitrary rate
US5471587A (en) 1992-09-30 1995-11-28 Intel Corporation Fractional speed bus coupling
US5448708A (en) * 1992-10-30 1995-09-05 Ward; James P. System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
US5668971A (en) 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
US5467464A (en) 1993-03-09 1995-11-14 Apple Computer, Inc. Adaptive clock skew and duty cycle compensation for a serial data bus
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
US5657457A (en) 1994-01-31 1997-08-12 Dell Usa, L.P. Method and apparatus for eliminating bus contention among multiple drivers without performance degradation
US5548733A (en) 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5784579A (en) 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
US5659718A (en) 1994-08-19 1997-08-19 Xlnt Designs, Inc. Synchronous bus and bus interface device
US5671441A (en) * 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
US5541919A (en) 1994-12-19 1996-07-30 Motorola, Inc. Multimedia multiplexing device and method using dynamic packet segmentation
US5625779A (en) 1994-12-30 1997-04-29 Intel Corporation Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US5771356A (en) 1995-01-04 1998-06-23 Cirrus Logic, Inc. Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds
US5802278A (en) 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5715438A (en) 1995-07-19 1998-02-03 International Business Machines Corporation System and method for providing time base adjustment
US5894567A (en) 1995-09-29 1999-04-13 Intel Corporation Mechanism for enabling multi-bit counter values to reliably cross between clocking domains
US5768550A (en) 1995-11-21 1998-06-16 International Business Machines Corporation Bus interface logic system
US5751969A (en) 1995-12-04 1998-05-12 Motorola, Inc. Apparatus and methods for predicting and managing congestion in a network
KR0157924B1 (ko) 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
US5905766A (en) 1996-03-29 1999-05-18 Fore Systems, Inc. Synchronizer, method and system for transferring data
US5764961A (en) 1996-04-03 1998-06-09 Ncr Corporation Predictable diverse data delivery enablement method and apparatus for ATM based computer system
US5758166A (en) 1996-05-20 1998-05-26 Intel Corporation Method and apparatus for selectively receiving write data within a write buffer of a host bridge
US5768545A (en) 1996-06-11 1998-06-16 Intel Corporation Collect all transfers buffering mechanism utilizing passive release for a multiple bus environment
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5862338A (en) 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
US6044474A (en) 1997-04-08 2000-03-28 Klein; Dean A. Memory controller with buffered CAS/RAS external synchronization capability for reducing the effects of clock-to-signal skew
JP3420018B2 (ja) 1997-04-25 2003-06-23 株式会社東芝 データレシーバ
US6347351B1 (en) 1999-11-03 2002-02-12 Intel Corporation Method and apparatus for supporting multi-clock propagation in a computer system having a point to point half duplex interconnect

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416673A (zh) * 2016-07-13 2019-03-01 高通股份有限公司 存储器请求仲裁
CN113986817A (zh) * 2021-12-30 2022-01-28 中科声龙科技发展(北京)有限公司 运算芯片访问片内存储区域的方法和运算芯片

Also Published As

Publication number Publication date
AU9319698A (en) 1999-04-12
EP1086428A4 (en) 2001-11-21
DE69825636D1 (de) 2004-09-16
US7107371B1 (en) 2006-09-12
EP1086428A1 (en) 2001-03-28
CN1113298C (zh) 2003-07-02
EP1086428B1 (en) 2004-08-11
WO1999015980A1 (en) 1999-04-01
DE69825636T2 (de) 2005-09-15
HK1033017A1 (en) 2001-08-10

Similar Documents

Publication Publication Date Title
CN1118029C (zh) 用于高速总线的流控制的系统和方法
CN1279790A (zh) 快速16位分离事务i/o总线
JP4083987B2 (ja) 多重レベル接続識別を備えた通信システム
US5434976A (en) Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
CN1205562C (zh) 总线系统的分隔事务协议
JP5036120B2 (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
CN1179283C (zh) 数据通信的方法和数据通信的集线器
KR20210033996A (ko) 전용 저 레이턴시 링크를 사용한 다수의 하드웨어 가속기에 대한 통합된 어드레스 공간
EP3776231A1 (en) Arbitrating portions of transactions over virtual channels associated with an interconnect
CN1113298C (zh) 在总线系统中提供和嵌入控制信息的方法和装置
US20070156980A1 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
US9804959B2 (en) In-flight packet processing
JP4104939B2 (ja) マルチプロセッサシステム
CN115114215A (zh) 高速外围组件互连接口装置及其操作方法
CN113434441A (zh) 一种dma传输方法、装置、控制器及可读存储介质
US9548947B2 (en) PPI de-allocate CPP bus command
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法
US9699107B2 (en) Packet engine that uses PPI addressing
US9559988B2 (en) PPI allocation request and response for accessing a memory system
Desbarbieux et al. NOE: A Programmable Network Controller
JPH08242252A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030702

Termination date: 20100917