CN100501716C - 利用pci桥中的缓冲区支持多功能pci设备的方法与装置 - Google Patents
利用pci桥中的缓冲区支持多功能pci设备的方法与装置 Download PDFInfo
- Publication number
- CN100501716C CN100501716C CNB2005800051816A CN200580005181A CN100501716C CN 100501716 C CN100501716 C CN 100501716C CN B2005800051816 A CNB2005800051816 A CN B2005800051816A CN 200580005181 A CN200580005181 A CN 200580005181A CN 100501716 C CN100501716 C CN 100501716C
- Authority
- CN
- China
- Prior art keywords
- buffer zone
- peripheral component
- component interconnect
- filled
- looking ahead
- 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.)
- Active
Links
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Abstract
用于支持PCI桥中的多功能PCI设备的方法与装置。响应于由多功能PCI设备发出的分别的初始数据传送请求,分配分别的预取缓冲区。为每个预取缓冲区设立可编程缓冲区填充水印。在相应于数据传送请求的部分数据填充预取缓冲区的同时,每个缓冲区的填充程度被监控以确定它是否达到或超过它的缓冲区填充水印。响应于这样的条件,多功能PCI设备被连接到PCI桥并且虚拟缓冲区被映射到预取缓冲区。然后预取缓冲区被清空。在后续数据传送期间,每个预取缓冲区变为被充满,PCI设备被连接,并且虚拟缓冲区被映射到被充满的缓冲区。过程继续,直到相应于原始数据传送请求的所有数据被多功能PCI设备接收。
Description
发明领域
发明领域一般地涉及计算机系统,并且更具体地但不排它地涉及用于支持PCI桥中的多功能PCI(外设部件互连)设备的方法与装置。
背景信息
自1981年个人计算机(PC)体系结构的引入以及1984年普遍存在的PC-AT(先进技术)体系结构的引入以来,基于PC的计算机系统一直在不断地发展。同样地,处理器与操作系统也同时已经得到了发展。虽然在这些领域的每一个中已做出巨大的进步,但是由于传统的规定(legacy provision),发展进程已在某种程度上被限制。传统的规定部分由PC的广泛普及而产生,PC代表全世界所使用的计算机的绝大多数。估计每年有1亿台以上的PC被售出。
为了更好地理解传统的规定的原因,考虑PC-AT体系结构为开放的体系结构,允许差不多上万个外设部件与软件应用在基于PC-AT的平台上被使用。现在考虑附加(add-on)外设的方面。PC-AT体系结构曾引入工业标准体系结构(ISA)总线以及相应的ISA扩展插槽(slot)。扩展插槽体系结构已发展到包括例如EISA(增强ISA)、微通道(MC)、ISA即插即用以及当前实际的标准PCI(外设部件互连)的变体。
原始PCI体系结构曾经被设计来解决几个问题。PCI设计的直接目的曾是提供将简化芯片组与主板设计的标准化体系结构。它还曾经被设计来改进数据传送速率。此外,它曾提供使能(enable)传统组件(component)的透明支持的抽象机制。事实上,PCI更多地是作为互连(因此得名)标准,而不是扩展总线标准。
PCI设计的关键用途是处理器独立;即,它的电路与信号不依赖于具体微处理器或系列的要求。设计使用桥来提供各种相异的总线类型之间的互连。桥还可以用于耦合一对PCI总线。对于用户来说,桥一般为两个总线系统之间的不可见的接口。PCI体系结构还从从属总线解耦合处理器存储子系统,该操作使处理器与桥能够并行操作。
为了增加一条或多条PCI总线的效率,桥通常采用缓冲来帮助长数据传送(数据流)。为了支持这种能力,体系结构在PCI桥中提供智能读与写缓冲区。读缓冲区通常被称为预取缓冲区,所述缓冲区还被称为延迟事务缓冲区。
虽然这种突发访问能力可以被用来大大地增加传送速率,但是原始设计曾经把单通道数据流的传送作为目标。结果是,最近被引入的支持多通道数据流的多功能PCI设备在它们的传送速率上受限制。事实上,在许多实例中,用于多功能PCI设备的所有通道的合计传送速率(aggregate transfer rate)实际上小于用于同一设备的单通道速率。
附图简要说明
当连同附图参考下面的详细描述时,以上各方面以及许多本发明已列举的优点将更容易被认识,相同的表述将变得更容易理解,其中,除非另外特别指出,否则在各个视图中相同的参考数字指示相同的部分:
图1为具有包括多个PCI桥的示例性总线配置的计算平台的示意图;
图2为典型的主机到PCI桥的示意图;
图3为图2的主机到PCI桥还包括被连接到PCI总线的双通道PCI SCSI设备的示意图;
图3a为图示被实现以从系统存储器并发地传送数据到双通道PCI SCSI设备的组件的示意图;
图4为图示使用一对延迟事务执行图3a的数据传送的操作的示意流程图,所述延迟事务使用以常规PCI桥实现的技术。
图5为图示使用一对延迟事务执行图3a的数据传送的操作的示意流程图,所述延迟事务由根据本发明的一个实施方案配置的PCI桥执行。
图6为根据本发明的一个实施方案图示在图3a的数据传送期间所执行的操作的进一步细节的流程框图;以及
图7为根据本发明的一个实施方案图示储存缓冲区填充水印的示例性配置寄存器的示意图。
优选实施方式详细描述
本文描述用于支持PCI桥中的多功能PCI设备的方法与装置的实施方案。在以下描述中,阐述了很多具体的细节,以提供对本发明的完整理解。然而,相关领域的技术人员将会发现,无需使用这些具体的细节中的一个或更多个,或者用其他方法、组件、材料等可以实现本发明。此外,公知结构、材料或操作没有详细示出或描述,以免模糊本发明的方面。
在整个说明书中提及“一个实施方案”或“实施方案”意味着结合该实施方案描述的特定特征、结构或特性被包括在本发明的至少一个实施方案中。因此,短语“在一个实施方案中”或“在实施方案中”在说明书中不同地方的出现不一定全是指同一实施方案。并且,在一个或更多个实施方案中特定特征、结构或特性可以以任何适当的方式结合。
作为综述,注意力指向图1,图1示出基于PCI的平台体系结构100的示例性配置。一般情况下,平台体系结构100为可以在诸如主板101等各种类型的计算平台上采用的PCI配置的图示说明。在体系结构的顶部为处理器/系统存储子系统102。这包括平台的主处理组件与存储组件,所述组件包括一个或更多个处理器104、外部缓存(cache)106与系统存储器108(例如,系统RAM(随机访问存储器))。这些组件的每一个被耦合到主机总线110。例如,主机总线代表在特定主板等设备上的处理器104、外部缓存106以及系统存储器108之间的地址和数据线。
PCI设计支持层级体系结构,所述层级体系结构通过桥耦合各种相似和相异的总线。在层级的顶部为主机总线110。体系结构100的下一级为PCI总线0。在PCI设计下,PCI总线与被连接到总线的PCI代理(agent)在计算机系统的初始化的预引导阶段中被列举。所遇到的第一条PCI总线被列举为PCI总线0。该PCI总线还被称为根PCI总线。到主机CPU的局部总线(在本例中为主机总线110),或者到位于更接近主机CPU的位置的PCI桥的局部总线被称为主总线(北桥)。根PCI总线被称为从总线(secondary bus)。主机总线与PCI根总线通过主机到PCI桥112互连。
一般情况下,更多组件的第零个可以被连接到给定平台上的每一条总线。对PCI总线来说,这些组件被称为PCI代理(也被称为PCI单元)。例如,体系结构100的PCI代理包括SCSI(小型计算机系统接口)主机适配器114,以及输入/输出(I/O)单元116、网络接口卡(NIC)118、音频单元120、图形卡122,以及运动视频单元124。
除了基于组件的PCI代理(例如以上所描述的那些)之外,PCI代理还可以包括PCI桥。在原始PCI设计下,多至十个的PCI代理可以被连接到给定PCI总线。通过PCI到PCI桥的使用,可以在同一平台内部支持附加的PCI总线。例如,在图1中示出一对示例性的PCI总线1与2,以及相应的PCI到PCI桥1与2。
如以上所讨论,原始PCI标准的开发者的主要努力曾经是减轻芯片组与主板的设计者的设计工作。这两个设计团队的原则考虑因素中的一个曾经是对传统设备的支持。例如,曾经需要用于支持例如ISA总线126的传统总线的机制。典型地,传统总线包括多个扩展插槽,例如由ISA插槽128A和128B描绘的扩展插槽。这些扩展插槽使被插入插槽内的外设附加卡(例如ISA卡130描绘的外设附加卡)能被平台访问。
如果要通过平台芯片组对一条或更多条传统总线有直接支持,则对于给定系统中所包括的每一种传统总线类型来说将需要各自的数据与地址信号集。这将产生混乱,因为每种传统总线类型要求不同的信号集,所述信号集具有与其他传统总线类型不同的独有的时序(timing)特性。并且,对于单个扩展总线来说,总线信号路由已经足够复杂。
为了提供对传统总线的支持,PCI体系结构使能对例如PCI到传统设备桥(PCI-to-legacy bridge)132描绘的PCI到传统设备桥的使用。实际上,PCI到传统设备桥提供两种相异的总线系统之间的抽象化的逻辑互连,其中在总线之间没有物理连接,相反数据通路是通过各种控制和时序度量以逻辑的方式连接的。这使到传统总线126的各种传统组件连接能够在基于PCI的平台中与非传统组件共存,所述传统组件连接例如传统设备兼容资源134以及被连接到传统扩展总线插槽128A和128B的外设卡。
PCI总线和它的总线周期使用其中线(line)被交替地用作地址和数据线的复用方案。这节省所要求的信号线的数量,但是增加用于每次数据传送的时钟周期的数量。例如,在数据传送期间,地址在第一个周期中被传送,写数据在第二个周期中被传送,并且读数据在第三个周期中被传送。为了对此做出补偿,PCI总线还包括突发模式,在所述突发模式中地址只被传送一次,其后跟着随每个时钟周期的可变长度数据传送序列。这有效地加倍非突发方案的数据传送速率。
由PCI桥提供的可配置硬件使能数据突发方案。例如,图2图示PCI桥200的典型布置图(layout),在该实例中所述PCI桥包括主机到PCI桥。PCI桥被耦合在主机总线202与PCI总线204之间。一般情况下,PCI桥200为包括主机到PCI桥、PCI到PCI桥以及PCI到传统设备桥的各种类型的PCI桥的图示说明。同样地,顶层(上游)总线将相应于主总线,而下层(下游)总线将相应于从总线。一般情况下,主总线与从总线可以具有相异总线类型(例如,主机到PCI,PCI到传统设备)或相同总线类型(PCI到PCI)。
因此,PCI桥200包括主总线单元206与从总线单元208。这些总线单元的每一个包括物理接口以与它们相应的总线耦合。例如,在图2中所示的示例性配置中,从总线单元208将被配置为与具有由PCI总线规范定义的配置的PCI总线接口,而主总线单元206将被配置为与由平台的处理器体系结构(一般情况下)定义的主机总线接口。
为了支持数据突发以及异步数据传送,主总线单元206与从总线单元208的每一个包括预取缓冲区(也被称为延迟事务缓冲区(delayed transaction buffer))与记入缓冲区(posting buffer)。虽然这些缓冲区的每一种的数量可能多于一个,但是一般情况下,主总线单元将包括单个预取缓冲区210P和单个记入缓冲区212P。如预取缓冲区210S1-J与记入缓冲区212S1-K所描绘的,从总线单元将典型地具有1-J个预取缓冲区与1-K个记入缓冲区。在一些实现中预取与记入缓冲区的数量将会相同,而在其他实现中数量将会不相等。
结合预取与记入缓冲区的使用,排队机制(mechanism)被提供来仲裁数据请求。排队机制的操作由请求队列216P与216S来表示。
如以上所讨论的,PCI总线一般可重配置。要被实现的特定配置由被包括在配置寄存器214中的值来定义。在图2中还示出被耦合到PCI总线204的PCI代理1-N的示例性集合(set)。从PCI桥200操作的角度来看,无论是例如SCSI或图形卡的外设部件还是PCI桥,每个PCI代理看来是一样的。
为了支持对被耦合到共同总线的各个PCI代理的并发访问,PCI体系结构提供包括上面所讨论的数据突发方案的各种数据传送机制。这些方案以防止不利情况(例如丢失数据或死锁)的方式利用时序和事务排序。在所述方案之中包括有用于支持延迟事务的机制。
不能在PCI规范的要求内完成初始数据阶段的目标设备使用延迟事务。一般有两种类型的设备将使用延迟事务:I/O控制器与桥。典型地,I/O控制器将每次只处理单个延迟事务,而PCI桥可以选择处理多个延迟事务以改进系统性能。
延迟事务的一个优势在于,当完成对低速设备的访问时,总线不会被保持在等待状态中。在始发主控(originating master)为总线重仲裁(rearbitrate)的同时,其他总线主控被允许使用总线带宽,所述总线带宽通常情况下将被浪费在将始发主控保持在等待状态。另一优势在于,请求被接受前所有被记入的(posted)(存储器写)数据不需要被传送。
在始发总线上完成之前必须在目的总线上完成的所有总线命令可以作为延迟事务被完成。这些命令包括中断确认、I/O读、I/O写、配置读、配置写、存储器读、存储器读线以及存储器多重读命令。存储器写与无效命令可以在目的总线上完成之前在始发总线上完成(即可以被记入)。每个不是使用延迟事务终止来完成的命令被记入或者用重试(retry)来终止。对于I/O控制器来说,术语目的总线指内部总线,事务寻址的资源驻留在所述内部总线上。对于PCI桥来说,目的总线意味着不充当始发请求(original request)的目标设备的接口。例如,当事务在桥的主总线上始发并且以(寻址)被附接到桥的从总线的设备为目标时,桥的从总线为目的总线。但是,在相反方向上移动的事务将以主总线为目的总线。
延迟事务通过三个步骤进展至完成:(1)由主控请求;(2)由目标设备完成请求;以及(3)由主控完成事务。在第一个步骤期间,主控在总线上生成事务,目标设备解码访问,锁存完成访问所需要的信息,并且用重试终止请求。被锁存的请求信息被称为延迟的请求(delayed request)。用重试终止的请求的主控不能区别正使用延迟事务终止来完成事务的目标设备与在当前时刻简单地不能完成事务的目标设备。因为主控不能识别差异,所以必须重发已用重试终止的任何请求,直至请求完成。
在第二个步骤期间,目标使用来自延迟的请求的被锁存信息独立地完成目的总线上的请求。如果延迟的请求为读,则目标设备获得所请求的数据和完成状态。如果延迟的请求为写,则目标设备传递写数据并获得完成状态。完成目的总线上的延迟的请求的结果是产生延迟的完成(delayed completion),所述延迟的完成由延迟的请求的被锁存信息和完成状态(如果为读请求,还有数据)组成。目标设备储存延迟的完成,直至主控重复初始请求。
在第三个步骤期间,主控成功地为总线重仲裁并重发始发请求。目标设备解码请求并授予主控完成状态(如果为读请求,还有数据)。在这个时间点,延迟的完成退出并且事务被完成。被返回到主控的状态与目标设备在它执行(完成)延迟的请求时获得的状态完全相同。
常规延迟事务方案为诸如图形卡、单通道盘控制器、单端口网络卡等单功能设备提供良好到极好的带宽使用。但是,对于很多的多功能PCI设备来说并非是相同的情况。这部分是由于原始PCI规范不提供用于支持多功能PCI设备的具体技术与接口。
一般情况下,多功能PCI设备将被实施为根据PCI规范(当前版本2.2)或者PCI-X规范(当前修订版本1.0)配置的外设扩展卡。多功能PCI设备还可以包括被集成在平台上的PCI设备。这样的设备被称为多功能是因为它在同一卡或内置组件上有效地提供多个PCI设备功能。例如,诸如双通道SCSI主机适配器(例如,扩展卡)的双通道盘控制器以类似于两个单独的单通道主机适配器的方式操作。多功能PCI设备的其他普通实施例包括多通道USB卡、多端口网络卡、组合USB与FirewireTM(IEEE 1394)卡等。
图3中示出包括双通道PCI SCSI控制器302的示例性PCI配置300。为了清晰,可以被耦合到PCI总线204的其他PCI代理未被示出。双通道PCI SCSI控制器302提供两个SCSI通道3041与3042。SCSI通道3041用于访问多个SCSI盘驱动器3061-N,而SCSI通道3042用于访问多个SCSI盘驱动器3081-M。
图3a示出由PCI配置300执行的一对示例性的写事务。具体地说,每项操作包括从系统存储器108传送数据(例如,文件)到由双通道PCI SCSI主机设备302控制的盘驱动器。更详细地说,第一项操作包括将占据系统存储器地址空间312的数据310拷贝到为SCSI盘驱动器3061选择的逻辑块地址范围314。同时,第二项操作包括将系统存储器地址空间312中的数据316拷贝到为SCSI盘驱动器3081选择的逻辑块地址范围318。
参照图3a和4,用于执行并发写事务的常规技术如下进行。出于图示说明的目的,所示的示例性操作两者都包括由PCI总线上的SCSI控制器生成的延迟的读事务。注意到图4与5中描绘的时间刻度与均匀间隔的事件不相关。此外,虽然为了便利与清晰的目的在图4与5中用于第一与第二通道数据请求序列的每一个的事件序列被示为公共序列,但是它们被分开考虑。
在每项操作的初始部分期间,数据传送请求被提供到要服务所述请求的PCI代理(即,双通道PCI SCSI控制器302)。作为响应,PCI代理通过生成到PCI桥200的PCI读事务来尝试取得(retrieve)合适的数据。一旦请求被PCI桥200确认,操作在PCI桥200的主侧被执行,以将数据传递到记入缓冲区212P。这些操作一般与由PCI桥200的从侧执行的操作异步。这些操作还与其他正在进行的传送操作(未示出)竞争,其中PCI桥200仲裁各个传送。
在同一时间帧期间,PCI代理尝试开始取得数据。该取得过程以到从总线单元208的读请求开始,所述读请求相应于数据310的取得。典型地,读请求指定起始地址。PCI桥200可以通过监控仲裁信号来识别请求PCI设备(双通道PCI SCSI控制器)。但是,在例如双通道PCI SCSI控制器的多功能PCI设备的情况下,对于PCI桥200来说不可能识别发起请求的具体通道。为了清晰,与被连接到通道1的盘驱动器上的储存数据相应的所有读请求在图4中被描绘为通道1读请求。
响应于读请求,PCI桥200将为延迟的读事务分配预取缓冲区3201。为了便利,在图3a中这个预取缓冲区被标注为“预取缓冲区通道1”。如以上所讨论的,在实践中PCI桥实际上不会将缓冲区与通道相关联,而是将它与特定的传送请求相关联。
双通道PCI设备被使能以支持来自两个通道的数据请求。具体地说,相比于单个请求,典型地这些数据请求将更多地显示为请求流。
例如,图4示出响应于第二延迟读事务而被调用的第二读请求,所述第二延迟的读事务要将数据316拷贝到盘驱动器3081。因此,在图4中这个读请求被标注为通道2读请求。如以上通道1读请求的情况,PCI桥200分配相应于这个第二延迟读事务的预取缓冲区3202。
一般情况下,PCI设备将在PCI总线上不断地重试给定读请求直至相应于请求的数据出现在被分配给初始请求的预取缓冲区中。在图4中这种请求重试被描绘为“重试1”循环与“重试2”循环。一旦数据出现在预取缓冲区中,PCI设备被连接到PCI桥。在这此环境(context)中,术语“被连接”意味着数据可以在请求数据的PCI设备与PCI桥之间流动;当然,PCI设备一直以物理方式连接到它的PCI总线,所述PCI总线又以物理方式连接到PCI桥。
一旦连接被建立,预取缓冲区中的数据被传送到请求PCI代理。在图4中这被描绘为从预取缓冲区3201时间实例402到通道1请求虚拟储存区(store)404的数据传送400。实际上,通道1请求虚拟储存区404与通道2请求储存区408(在下面被讨论)物理上并不存在,但是为了图示说明的目的在这里被使用。实际上,数据被双通道PCI SCSI设备302接收并且在合适通道上被转发,以被储存在由始发请求识别的盘驱动器上。这些传送操作处于PCI SCSI设备和/或SCSI盘驱动器的内部,但是在本发明的范围之外。
一般情况下,来自预取缓冲区的给定数据传送可以持续直至断开事件(例如空缓冲区)发生。典型地,进入预取缓冲区内的填充速率与离开同一缓冲区的传送速率将不会相同。对于这些传送来说最常见的是有点异步,尽管对于传送的部分来说它们可能重迭。结果,在下一部分数据从PCI桥的主侧被提供给缓冲区之前,预取缓冲区通常被清空。作为策略,当相应的预取缓冲区变为空时,连接被断开。
只要到多功能PCI设备的连接被建立,该设备的出现就会产生问题。这个问题由可能有多个(在本实施例中为两个)预取缓冲区被分配给同一物理PCI设备而产生。为了确保PCI规范的使用者-提供者模型下的数据完整性,采用虚拟预取缓冲区。在图4与5中用虚轮廓线框来描绘该虚拟预取缓冲区。在一个实施方案中,虚拟预取缓冲区被在PCI桥运行的软件(即,固件)和/或被编程的逻辑控制。虚拟预取缓冲区被用于将各个物理预取缓冲区映射到相应的请求。结果,请求的PCI设备每次只能“看见”一个预取缓冲区,即当前相应于虚拟预取缓冲区的物理缓冲区。在数据传送400的情况中,在连接存在时的时间点双通道PCI SCSI设备302只察觉到预取缓冲区3201的存在。
PCI桥提供来自预取缓冲区3201的数据,直至预取缓冲区用完数据或者请求的PCI设备(双通道PCI SCSI设备)断开数据传送。一旦事务被断开,PCI桥可以重试由通道2产生的读请求,直至PCI桥有数据来启动传送。最后,如预取缓冲区3202时间实例406所描绘的,数据出现在被分配给通道2请求的预取缓冲区中。当预取缓冲区3202中数据的出现被检测到时,双通道PCI SCSI设备302被重连接,其中预取缓冲区3202成为虚拟预取缓冲区。然后,如数据传送410所描绘的,预取缓冲区3202中的数据被传送到通道2请求虚拟储存区408,直至缓冲区被清空。
从PCI桥200的主侧的角度看,与通道1的第一读请求相应的数据请求还没有被满足。因此,如缓冲区实例412所描绘的,当其他PCI代理正在从侧被服务时,相应于数据310的部分数据继续被提供给记入缓冲区212P,所述记入缓冲区又继续填充预取缓冲区3201。但是,当PCI桥开始提供数据给由双通道PCI SCSI设备302生成的读请求以满足由通道2始发的请求时数据最终被冲刷(flush)(或者被无效)。如图4的剩余部分中所示,响应于每个新的读请求,发生针对预取缓冲区3201与3202的每一个的相似的缓冲区冲刷操作。
在与图4的图表一致的时间上继续,一旦在通道1请求虚拟缓冲器404处接收到数据,双通道PCI SCSI设备302确定它的始发请求(所述请求曾经相应于数据310的全部)还未被满足。因此,它必须做出对数据310的剩余部分的另一(后续的)请求。该请求对应于第二通道1读请求(CH.1.读请求2)。
如在图4的下半部分中所图示的,对于通道1与2的每一个,重复如下循环(cycle),即读请求,缓冲区冲刷,数据出现,通道连接,虚拟预取缓冲区分派,数据传送直至缓冲区为空,以及通道断开。如针对通道1的数据传送414与416,以及针对通道2的数据传送418与420所描绘的,每个请求导致另一长条的数据被添加到相应通道的虚拟储存区。这个过程被重复直至原始数据请求的整个部分被接收。
图4中图示的常规方案具有几个问题。如以上所讨论的,响应于每个新的读请求,已被预取到预取缓冲区的数据被冲刷。这给PCI桥的主侧造成低效,因为部分相同数据(即所丢弃的数据)必须会被取得多于一次。但是,更重要的问题涉及随每次请求所传送的少量数据。可以容易地观察到,对于每周期有相当的开销(overhead)。这相应于事实上被浪费的总线周期。结果与数据传送相关的周期中的大部分没有移动任何数据,大大地降低数据传送速率。事实上,实验室观察已经测得随每个读请求周期传送的数据大小为小到8个或更少个数据相(data phase)。这产生实际上小于关于单通道设备所观察到的速率的合计多通道数据传送速率。
根据本发明的各方面,显著改进由图4的常规方案所产生的多通道数据传送速率的延迟的事务(DT)机制现在被公开。所述机制通过实现可编程预取缓冲区水印(watermark,WM)来消除小数据传送,在数据可以从缓冲区被传送之前必须达到所述水印。DT机制可以与多功能设备中任意数量的功能或通道一起被使用。此外,DT机制可以用于支持被连接到同一PCI总线的多个多通道设备。
图5中示出根据一个实施方案的机制的操作。一般情况下,图4与5的每一个中相同标注的对象执行类似的功能。如图4的情况,图5中的时间刻度不是均匀间隔的,并且通道1与2的操作为异步的。
过程以与针对图4的常规方案所讨论方式的相同的方式开始。响应于到双通道PCISCSI设备302的各自的数据传送请求,做出第一通道1与通道2读请求并分配相应的预取缓冲区。协同预取缓冲区的分配,配置寄存器(在下面被更详细地定义)被编程以定义缓冲区水印5001和5002。所述水印用于定义在任何数据可以从缓冲区被传送之前预取缓冲区中必须出现的数据的最小量。
如之前所描述的,相应于第一读请求的重试尝试被放置在PCI总线上。与常规方案形成对比,重试请求将不会在任何数据存在时都产生连接。相反,只有在预取缓冲区中的数据量已经达到或超过水印之后才可能建立连接。例如,相应于预取缓冲区3201时间实例502与504的读请求将被重试,而在时间实例506期间的重试将产生连接。如数据传送508所描绘的,在针对通道1的第一个连接期间,数量为缓冲区水印5001或更大的数据被传送到通道1请求虚拟储存区404。在许多实例中,数据量将大于阈值,因为在传送过程中数据可以继续流入缓冲区内。数据传送继续直至缓冲区被清空。
虽然在第一通道1连接(未示出)期间预取缓冲区3202可以被填充到它的水印5002,但是在此时间点来自预取缓冲区3202的数据将不会被传送。如预取缓冲区3202时间实例510所描绘的,这还可能造成预取缓冲区中的数据量超过水印5002的状况。
在给定连接被断开之后,PCI桥可以开始服务其他读请求,如果在所述读请求相应的预取缓冲区中有足够数据的话。因此,如果在针对另一通道的连接正在发生的同时用于给定通道的预取缓冲区超过它的水印,那么在所述另一通道被断开之后,在第一个读请求重试的时候所述给定通道将被连接。这种状况在图5中针对通道2的第一数据传送512被描绘。在该实例中,假设请求的设备(双通道PCI SCSI控制器302)因为一些其它原因没有断开,所传送的数据量将至少等于当传送被发起(即在连接的开头)的时刻出现在缓冲区中的数据量。
返回到通道1操作,在数据通过数据事务508被传送到通道1请求虚拟储存区404之后不久,双通道PCI SCSI控制器302确定不是相应于第一通道1读请求的所有数据已被返回。然后它发出包括还要被接收的部分数据310的第二通道1读请求(即,后续读请求)。如第一通道1读请求的情况,读请求被重试直至预取缓冲区3201中的数据量达到或超过水印5001。如数据传送514所描绘的,在这个时间点第二通道1连接发生,并且第二部分数据被传送到通道1请求虚拟储存区404。
对于给定通道以相似的方式重复循环直至原始事务被完成,所述循环即读请求,数据达到或超过水印,通道连接,虚拟预取缓冲区分派,数据传送直至缓冲区为空或请求者断开。在最后的传送期间,在请求的PCI代理(例如,PCI SCSI控制器302)处可能接收数据的“额外”部分。这是由PCI传送体系结构本身产成的固有结果。该额外部分的数据被PCI代理简单地丢弃。
例如,响应于通道2上的第二读请求(CH.2读请求2),剩余以满足始发请求的数据量少于缓冲区水印5002。但是,被传送到预取缓冲区3202(如时间实例516所示)的数据量将包括剩余大小518加上到达水印5002所需的额外部分的数据519。在通道2连接期间,数量至少等于剩余大小(并且可能包括额外部分的一些或全部)的数据被传送。一般情况下,一旦请求PCI代理接收到剩余大小它将断开。但是,在接收到剩余大小后PCI代理没有断开的状况中,被传送到它的任何额外部分被简单地丢弃。
图6根据一个实施方案示出流程框图,所述流程框图图示在图5的过程中执行的操作与逻辑的更多细节。在框600中确定存储器请求(Ri)的初始大小。在一个实施方案中,该初始大小被上舍入或下舍入,从而所取的实际数量自然地与预定边界对齐。例如,边界可以包括但不限于64字节(byte)、128字节、256字节等。
在一个实施方案中,期望在128字节线上对齐。在该实施方案下,如果初始地址进入128字节线小于64字节,那么Ri值被下舍入(即,8条64字节线将变为7条64字节线+剩余部分)。如果初始地址进入128字节线大于64字节,那么Ri值被上舍入(即,8条64字节线将变为9条64字节线+剩余部分)。例如,假设地址起始于进入128字节线为32字节的位置,并且取长度为4条64字节线(256字节)。所取的数量将为256-32=224字节(56个双字节(dWord))。与此相比,假设地址起始于进入128字节线为96字节的位置,并且取长度为4条64字节线(256字节)。所取的数量将为256+(128-96)=288字节(72个双字节)。
在确定初始读请求大小之后,在框602中发出初始读请求。在该点(point),一连串循环被执行直至所有数据已被传送以完成数据事务。首先,在框606中检查缓冲区(B)中的数据量。然后在判决框608中确定数据量是否达到或超过水印WM。如果没有,预取缓冲区不够满以导致连接发起,并且在框610中重试读请求。框606、608与610的操作以相似的方式继续直至对判决框608的回答为“YES(是)”,指示预取缓冲区中的数据量达到或超过水印WM。
响应于“是”确定,逻辑前进到框612,在框612中多功能PCI设备被连接并且预取缓冲区中的数据被传送出直至缓冲区为空或者请求者断开传送。在数据传送之后,在判决框614中确定附加数据是否需要被传送。如果不需要,如结束框616所指示,PCI设备接下来生成相应于不同数据流的PCI读请求,事务完成。
如果更多数据需要被取得,则逻辑前进到框618,其中后续(即,下一个)读请求的大小(Rs)被确定。这种确定类似于框600中所做出的确定。在一个实施例中,接收相应于所述第一读请求的后续读请求;确定所述后续读请求的大小是否小于所述第一缓冲区填充水印;以及响应于此,将所述第二缓冲区填充水印设置为等于所述后续读请求的大小。然后在框620中提出相应后续读请求。
在该点,一连串循环被执行直至所有的数据已被传送以完成数据事务。在每个循环期间,预取缓冲区被填充以达到或超过水印WM,并且PCI代理被连接。然后在框612中数据以上面所描述的方式从缓冲区被传送到请求的代理。最后,事务被完成。
在一个实施方案中,各个预取缓冲区参数被储存在配置逻辑214中。在一个实施方案中,预分派的寄存器700用于储存水印WM值。一般情况下,寄存器可以被系统BIOS编程。在另一实施方案中,共享寄存器的部分(即,共享寄存器的字段)被用于储存水印值(未示出)。在一个实施方案中,水印值包括3比特寄存器或字段。在一个实施方案中,基于针对与特定平台配置结合的特定多功能PCI设备的数据传送的观察来确定水印值。
本发明的实施方案示出与现有技术中已知的常规方案相比在传送速率上的显著改进。例如,实验室带宽测量已经证明了从常规方案下的每秒30兆位(MB/sec)到针对其上实现本发明的实施方案的双通道PCI SCSI控制器卡的140-160MB/sec的改进。
以上对本发明的图示实施方案的描述,包括在摘要中所描述的,并不想要穷举或者将本发明限制为所公开的精确形式。虽然为了说明的目的在这里描述了本发明的具体实施方案和针对本发明的实施例,如本领域中技术人员将认识到的,在本发明的范围内各种等同的修改是可能的。
按照以上详细的描述可以对本发明做出这些修改。在所附权利要求书中所使用的术语不应该被解释为将本发明限制为在说明书与权利要求书中公开的具体实施方案。相反,本发明的范围完全由所附的权利要求书确定,所述权利要求书应当根据已经确立的权利要求解释的法律原则来解读。
Claims (26)
1.一种用于执行延迟事务的方法,包括:
(a)从被耦合到外设部件互连桥的外设部件互连代理接收读请求,以从系统存储器传送数据到所述外设部件互连代理,所述读请求以所述数据位于的初始起始地址为基准;
为所述延迟事务分配预取缓冲区;
(b)为所述预取缓冲区设置缓冲区填充水印为初始值;
(c)在所述外设部件互连桥处接收所述数据的当前部分;
(d)在监控所述预取缓冲区的填充程度的同时传送至少部分所述数据的所述当前部分到所述预取缓冲区内;
(e)响应于确定所述预取缓冲区的所述填充程度达到或超过所述缓冲区填充水印,连接所述外设部件互连代理到所述外设部件互连桥;
(f)一旦所述预取缓冲区的所述填充程度达到或超过所述缓冲区填充水印,使数据能从所述预取缓冲区被传送到所述外设部件互连代理,直至所述预取缓冲区被清空或者所述外设部件互连代理断开;
(g)接收来自所述外设部件互连代理的一个或更多个后续读请求,每个后续读请求具有相应于还未被所述外设部件互连代理接收的所述数据的剩余部分的起始地址;以及
(h)重复操作(c)-(g)直至所述数据事务被完成。
2.如权利要求1所述的方法,还包括编程所述外设部件互连桥上的配置寄存器以设置所述缓冲区填充水印。
3.如权利要求1所述的方法,还包括当使用不同水印时通过观察所述外设部件互连代理的数据传送速率确定缓冲区填充水印值。
4.如权利要求3所述的方法,还包括动态设置所述缓冲区填充水印值。
5.如权利要求1所述的方法,其中所述外设部件互连代理包括多通道外设部件互连设备,并且针对每个通道执行各自的操作(a)-(h)的集合以执行多个并发延迟事务。
6.如权利要求5所述的方法,其中所述多通道外设部件互连设备包括双通道大容量储存设备控制器。
7.一种方法,包括:
接收来自多通道外设部件互连设备的第一与第二数据传送请求,所述第一数据传送请求相应于第一通道,所述第二数据传送请求相应于第二通道;
在外设部件互连桥发起分别相应于所述第一与第二数据传送请求的第一与第二延迟事务;
设立相应于所述第一延迟事务的第一预取缓冲区,所述第一预取缓冲区具有第一缓冲区填充水印;
设立相应于所述第二延迟事务的第二预取缓冲区,所述第二预取缓冲区具有第二缓冲区填充水印;
监控所述第一与第二预取缓冲区的每一个以确定缓冲区的填充程度是否达到或超过它的缓冲区填充水印,该达到或超过其缓冲区填充水印的预取缓冲区为第一个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述外设部件互连桥;
映射虚拟缓冲区到所述第一个被充满的缓冲区;
从所述第一个被充满的缓冲区传送数据到多通道外设部件互连设备直至所述第一个被充满的缓冲区为空;以及
从所述外设部件互连桥断开所述多通道外设部件互连设备。
8.如权利要求7所述的方法,还包括:
确定除所述第一个被充满的缓冲区外的预取缓冲区已被填充到达到或超过它的缓冲区填充水印,所述除所述第一个被充满的缓冲区外被填充到达到或超过其缓冲区填充水印的预取缓冲区为第二个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述外设部件互连桥;以及
映射所述虚拟缓冲区到所述第二个被充满的缓冲区;
从所述第二个被充满的缓冲区传送数据到所述多通道外设部件互连设备直至所述第二个被充满的缓冲区为空;以及
从所述外设部件互连桥断开所述多通道外设部件互连设备。
9.如权利要求7所述的方法,其中所述多通道外设部件互连设备包括大容量储存器控制器。
10.如权利要求9所述的方法,其中所述多通道外设部件互连设备包括双通道外设部件互连小型计算机系统接口控制器。
11.如权利要求7所述的方法,其中所述第一与第二数据传送的每一个包括储存在存储器中的数据到所述多通道外设部件互连设备的传送。
12.如权利要求7所述的方法,其中所述外设部件互连桥包括主机到外设部件互连的桥。
13.如权利要求7所述的方法,其中所述外设部件互连桥包括外设部件互连到外设部件互连的桥。
14.一种装置,包括:
包括用于实现外设部件互连桥的电路的集成电路,所述集成电路包括:
主总线单元,所述主总线单元包括主总线接口;
从总线单元,所述从总线单元包括从总线接口;以及
已编程逻辑模块以执行操作,所述操作包括:
接收来自被耦合到所述从总线接口的多通道外设部件互连设备的第一与第二读数据请求,所述第一读数据请求相应于第一通道并且具有初始大小,所述第二读数据请求相应于第二通道并且具有初始大小;
发起分别相应于所述第一与第二读数据请求的第一与第二延迟事务;
设立相应于所述第一延迟事务的第一预取缓冲区,所述第一预取缓冲区具有第一缓冲区填充水印;
设立相应于所述第二延迟事务的第二预取缓冲区,所述第二预取缓冲区具有第二缓冲区填充水印;
监控所述第一与第二预取缓冲区的每一个以确定缓冲区的填充程度是否达到或超过它的缓冲区填充水印,该达到或超过其缓冲区填充水印的预取缓冲区为第一个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述从总线单元;以及
映射虚拟缓冲区到所述第一个被充满的缓冲区;
从所述第一个被充满的缓冲区传送数据到多通道外设部件互连设备直至所述第一个被充满的缓冲区为空;以及
从所述从总线单元断开所述多通道外设部件互连设备。
15.如权利要求14所述的装置,还包括已编程逻辑模块以执行操作:
确定除所述第一个被充满的缓冲区外的预取缓冲区已被填充以达到或超过它的缓冲区填充水印,所述除所述第一个被充满的缓冲区外被填充到达到或超过其缓冲区填充水印的预取缓冲区为第二个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述从总线单元;
映射所述虚拟缓冲区到所述第二个被充满的缓冲区;
从所述第二个被充满的缓冲区传送数据到所述多通道外设部件互连设备直至所述第二个被充满的缓冲区为空;以及
从所述从总线单元断开所述多通道外设部件互连设备。
16.如权利要求14所述的装置,还包括已编程逻辑模块以执行操作:
接收相应于所述第一读请求的后续读请求;
确定所述后续读请求的大小是否小于所述第一缓冲区填充水印;以及
响应于此,
将所述第二缓冲区填充水印设置为等于所述后续读请求的大小。
17.如权利要求16所述的装置,还包括:
多个配置寄存器,每个所述配置寄存器包括定义按照后续读请求的大小设置的缓冲区填充水印大小的字段。
18.如权利要求14所述的装置,其中所述主总线接口包括到主机总线的接口,并且所述从总线接口包括到外设部件互连根总线的接口。
19.如权利要求14所述的装置,其中所述主总线接口和从总线接口的每一个包括到外设部件互连总线的接口。
20.如权利要求14所述的装置,还包括配置寄存器以储存缓冲区填充水印值。
21.一种计算平台,包括:
主板,所述主板包括主机总线与外设部件互连总线;
处理器,所述处理器可操作地耦合到所述主机总线;
存储器,所述存储器可操作地耦合到所述主机总线;以及
主机到外设部件互连的桥,所述主机到外设部件互连的桥包括具有被耦合到所述主机总线的接口的主总线单元,以及具有被耦合到所述外设部件互连总线的接口的从总线单元,所述主机到外设部件互连的桥还包括已编程逻辑模块以执行操作,所述操作包括:
接收来自被耦合到所述外设部件互连总线的多通道外设部件互连设备的第一与第二读数据请求,所述第一读数据请求相应于第一通道并且具有初始大小,所述第二读数据请求相应于第二通道并且具有初始大小;
发起分别相应于所述第一与第二读数据请求的第一与第二延迟事务;
设立相应于所述第一延迟事务的第一预取缓冲区,所述第一预取缓冲区具有第一缓冲区填充水印;
设立相应于所述第二延迟事务的第二预取缓冲区,所述第二预取缓冲区具有第二缓冲区填充水印;
监控所述第一与第二预取缓冲区的每一个以确定缓冲区的填充程度是否达到或超过它的缓冲区填充水印,该达到或超过其缓冲区填充水印的预取缓冲区为第一个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述从总线单元;
映射虚拟缓冲区到所述第一个被充满的缓冲区;
从所述第一个被充满的缓冲区传送数据到多通道外设部件互连设备直至所述第一个被充满的缓冲区为空;以及
从所述从总线单元断开所述多通道外设部件互连设备。
22.如权利要求21所述的计算平台,其中所述主机到外设部件互连的桥还包括已编程逻辑模块以执行操作:
确定除所述第一个被充满的缓冲区外的预取缓冲区已被填充以达到或超过它的缓冲区填充水印,所述除所述第一个被充满的缓冲区外被填充到达到或超过其缓冲区填充水印的预取缓冲区为第二个被充满的缓冲区;
并且响应于此,
连接所述多通道外设部件互连设备到所述从总线单元;
映射所述虚拟缓冲区到所述第二个被充满的缓冲区;
从所述第二个被充满的缓冲区传送数据到所述多通道外设部件互连设备直至所述第二个被充满的缓冲区为空;以及
从所述从总线单元断开所述多通道外设部件互连设备。
23.如权利要求21所述的计算平台,其中所述主机到外设部件互连的桥还包括配置逻辑模块以储存缓冲区填充水印值。
24.如权利要求21所述的计算平台,还包括被耦合到所述外设部件互连总线的集成多通道外设部件互连设备。
25.如权利要求24所述的计算平台,其中所述集成多通道外设部件互连设备包括双通道小型计算机系统接口控制器。
26.如权利要求21所述的计算平台,其中所述主机到外设部件互连的桥被集成在平台芯片组上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/780,372 US7213094B2 (en) | 2004-02-17 | 2004-02-17 | Method and apparatus for managing buffers in PCI bridges |
US10/780,372 | 2004-02-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1922598A CN1922598A (zh) | 2007-02-28 |
CN100501716C true CN100501716C (zh) | 2009-06-17 |
Family
ID=34838577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800051816A Active CN100501716C (zh) | 2004-02-17 | 2005-01-21 | 利用pci桥中的缓冲区支持多功能pci设备的方法与装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7213094B2 (zh) |
EP (2) | EP1909187B1 (zh) |
CN (1) | CN100501716C (zh) |
AT (2) | ATE467184T1 (zh) |
DE (2) | DE602005015195D1 (zh) |
HK (1) | HK1091287A1 (zh) |
TW (1) | TWI303366B (zh) |
WO (1) | WO2005083578A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213094B2 (en) | 2004-02-17 | 2007-05-01 | Intel Corporation | Method and apparatus for managing buffers in PCI bridges |
US7308535B1 (en) * | 2004-05-25 | 2007-12-11 | Qlogic, Corporation | Self-triggering outgoing buffers |
US7512721B1 (en) | 2004-05-25 | 2009-03-31 | Qlogic, Corporation | Method and apparatus for efficient determination of status from DMA lists |
US7895390B1 (en) | 2004-05-25 | 2011-02-22 | Qlogic, Corporation | Ensuring buffer availability |
US7657690B1 (en) * | 2005-06-14 | 2010-02-02 | Globalfoundries Inc. | Control of PCI memory read behavior using memory read alias and memory command reissue bits |
US20070240018A1 (en) * | 2005-12-29 | 2007-10-11 | Intel Corporation | Functional level reset on a per device/function basis |
US7912994B2 (en) * | 2006-01-27 | 2011-03-22 | Apple Inc. | Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host |
US7711888B2 (en) * | 2006-12-31 | 2010-05-04 | Texas Instruments Incorporated | Systems and methods for improving data transfer between devices |
US7673091B2 (en) * | 2007-04-24 | 2010-03-02 | Texas Instruments Incorporated | Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system |
US20090089475A1 (en) * | 2007-09-28 | 2009-04-02 | Nagabhushan Chitlur | Low latency interface between device driver and network interface card |
US20090228733A1 (en) * | 2008-03-06 | 2009-09-10 | Integrated Device Technology, Inc. | Power Management On sRIO Endpoint |
US8312241B2 (en) * | 2008-03-06 | 2012-11-13 | Integrated Device Technology, Inc. | Serial buffer to support request packets with out of order response packets |
US8312190B2 (en) * | 2008-03-06 | 2012-11-13 | Integrated Device Technology, Inc. | Protocol translation in a serial buffer |
US20090225775A1 (en) * | 2008-03-06 | 2009-09-10 | Integrated Device Technology, Inc. | Serial Buffer To Support Reliable Connection Between Rapid I/O End-Point And FPGA Lite-Weight Protocols |
US8625621B2 (en) * | 2008-03-06 | 2014-01-07 | Integrated Device Technology, Inc. | Method to support flexible data transport on serial protocols |
US8213448B2 (en) * | 2008-03-06 | 2012-07-03 | Integrated Device Technology, Inc. | Method to support lossless real time data sampling and processing on rapid I/O end-point |
US8006006B2 (en) * | 2008-06-19 | 2011-08-23 | International Business Machines Corporation | System and method for aggregating transmit completion interrupts |
US20110040762A1 (en) * | 2009-08-12 | 2011-02-17 | Globalspec, Inc. | Segmenting postings list reader |
WO2011067409A1 (en) * | 2009-12-04 | 2011-06-09 | Napatech A/S | An assembly and a method of receiving and storing data while saving bandwidth by controlling updating of fill levels of queues |
JP6007667B2 (ja) * | 2012-08-17 | 2016-10-12 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
CN103077148B (zh) * | 2013-01-04 | 2015-09-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于pcie的主机通讯方法和主机 |
US9779050B2 (en) | 2015-04-27 | 2017-10-03 | Red Hat Israel, Ltd. | Allocating virtual resources to root PCI bus |
KR20180074197A (ko) * | 2016-12-23 | 2018-07-03 | 삼성전자주식회사 | 버스 트래픽 컨트롤 장치 및 이를 갖는 버스 시스템 |
US20180181186A1 (en) * | 2016-12-27 | 2018-06-28 | Paul S. Diefenbaugh | Buffering data from high-speed i/o to enable longer reduced power consumption state residency |
CN116909639B (zh) * | 2023-09-13 | 2023-12-12 | 珠海星云智联科技有限公司 | 一种挂载系统、方法、集群以及存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241630A (en) * | 1990-11-13 | 1993-08-31 | Compaq Computer Corp. | Device controller with a separate command path between a host and the device and a separate data path including a first in, first out memory between the host and the device |
US5941964A (en) * | 1992-05-21 | 1999-08-24 | Intel Corporation | Bridge buffer management by bridge interception of synchronization events |
JP3264465B2 (ja) * | 1993-06-30 | 2002-03-11 | 株式会社日立製作所 | 記憶システム |
US6260096B1 (en) * | 1999-01-08 | 2001-07-10 | Intel Corporation | Read latency across a bridge |
US6021483A (en) * | 1997-03-17 | 2000-02-01 | International Business Machines Corporation | PCI-to-PCI bridges with a timer register for storing a delayed transaction latency |
US6298407B1 (en) * | 1998-03-04 | 2001-10-02 | Intel Corporation | Trigger points for performance optimization in bus-to-bus bridges |
US6167477A (en) * | 1998-06-15 | 2000-12-26 | Sun Microsystems, Inc. | Computer system bridge employing a resource control mechanism with programmable registers to control resource allocation |
US6240473B1 (en) * | 1998-11-30 | 2001-05-29 | Micron Technology, Inc. | Providing device status during bus retry operations |
US6230228B1 (en) * | 1999-04-01 | 2001-05-08 | Intel Corporation | Efficient bridge architecture for handling multiple write transactions simultaneously |
US6421745B1 (en) * | 1999-04-12 | 2002-07-16 | Sony Corporation | Asynchronous connections with scattering page tables for transmitting data from a producer device to a consumer device over an IEEE 1394 serial data bus |
US6473826B1 (en) * | 1999-04-20 | 2002-10-29 | Adaptec, Inc. | PCI delayed transaction time out counter and associated methods |
TW514788B (en) * | 1999-04-23 | 2002-12-21 | Via Tech Inc | Method of delayed transaction in bus system and device using the method |
US6625683B1 (en) * | 1999-08-23 | 2003-09-23 | Advanced Micro Devices, Inc. | Automatic early PCI transaction retry |
US6728821B1 (en) * | 1999-11-29 | 2004-04-27 | Sony Corporation | Method and system for adjusting isochronous bandwidths on a bus |
US6877044B2 (en) * | 2000-02-10 | 2005-04-05 | Vicom Systems, Inc. | Distributed storage management platform architecture |
US6708240B1 (en) * | 2000-03-31 | 2004-03-16 | Intel Corporation | Managing resources in a bus bridge |
US6801970B2 (en) * | 2001-09-30 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Priority transaction support on the PCI-X bus |
US6810466B2 (en) * | 2001-10-23 | 2004-10-26 | Ip-First, Llc | Microprocessor and method for performing selective prefetch based on bus activity level |
US7213094B2 (en) | 2004-02-17 | 2007-05-01 | Intel Corporation | Method and apparatus for managing buffers in PCI bridges |
-
2004
- 2004-02-17 US US10/780,372 patent/US7213094B2/en active Active
-
2005
- 2005-01-21 EP EP08000467A patent/EP1909187B1/en active Active
- 2005-01-21 WO PCT/US2005/002045 patent/WO2005083578A1/en not_active Application Discontinuation
- 2005-01-21 AT AT08000467T patent/ATE467184T1/de not_active IP Right Cessation
- 2005-01-21 EP EP05711831A patent/EP1723535B1/en active Active
- 2005-01-21 DE DE602005015195T patent/DE602005015195D1/de active Active
- 2005-01-21 DE DE602005021166T patent/DE602005021166D1/de active Active
- 2005-01-21 AT AT05711831T patent/ATE435458T1/de not_active IP Right Cessation
- 2005-01-21 CN CNB2005800051816A patent/CN100501716C/zh active Active
- 2005-01-27 TW TW094102497A patent/TWI303366B/zh active
-
2006
- 2006-11-27 HK HK06112958.9A patent/HK1091287A1/xx unknown
Also Published As
Publication number | Publication date |
---|---|
EP1909187B1 (en) | 2010-05-05 |
WO2005083578A1 (en) | 2005-09-09 |
HK1091287A1 (en) | 2007-01-12 |
US20050182886A1 (en) | 2005-08-18 |
TWI303366B (en) | 2008-11-21 |
TW200535613A (en) | 2005-11-01 |
EP1909187A1 (en) | 2008-04-09 |
US7213094B2 (en) | 2007-05-01 |
EP1723535B1 (en) | 2009-07-01 |
ATE467184T1 (de) | 2010-05-15 |
CN1922598A (zh) | 2007-02-28 |
ATE435458T1 (de) | 2009-07-15 |
DE602005015195D1 (de) | 2009-08-13 |
EP1723535A1 (en) | 2006-11-22 |
DE602005021166D1 (de) | 2010-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100501716C (zh) | 利用pci桥中的缓冲区支持多功能pci设备的方法与装置 | |
US5867675A (en) | Apparatus and method for combining data streams with programmable wait states | |
CA2186598C (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
US6145039A (en) | Method and apparatus for an improved interface between computer components | |
US5978866A (en) | Distributed pre-fetch buffer for multiple DMA channel device | |
AU637428B2 (en) | Apparatus for conditioning priority arbitration | |
EP1226506B1 (en) | Apparatus for initializing a computer interface | |
US7290075B2 (en) | Performing arbitration in a data processing apparatus | |
US6070209A (en) | Delivering transactions between data buses in a computer system | |
US6330630B1 (en) | Computer system having improved data transfer across a bus bridge | |
US6754737B2 (en) | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect | |
US6286074B1 (en) | Method and system for reading prefetched data across a bridge system | |
US6460108B1 (en) | Low cost data streaming mechanism | |
US6134625A (en) | Method and apparatus for providing arbitration between multiple data streams | |
CN1098527A (zh) | 外部件互联为基础的计算机系统的直接存储器存取逻辑支持 | |
US6347351B1 (en) | Method and apparatus for supporting multi-clock propagation in a computer system having a point to point half duplex interconnect | |
US6425023B1 (en) | Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests | |
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 | |
KR100432701B1 (ko) | 컴퓨터 구성요소 간의 개선된 인터페이스를 위한 방법 및장치 | |
US6240474B1 (en) | Pipelined read transfers | |
US7039047B1 (en) | Virtual wire signaling | |
Duncan et al. | High performance I/O design in the AlphaServer 4100 symmetric multiprocessing system | |
Bainbridge et al. | System Level Interconnect Principles |
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 |