CN100432972C - 输入/输出集线器、输入/输出***和使用它们的计算机*** - Google Patents

输入/输出集线器、输入/输出***和使用它们的计算机*** Download PDF

Info

Publication number
CN100432972C
CN100432972C CNB028208919A CN02820891A CN100432972C CN 100432972 C CN100432972 C CN 100432972C CN B028208919 A CNB028208919 A CN B028208919A CN 02820891 A CN02820891 A CN 02820891A CN 100432972 C CN100432972 C CN 100432972C
Authority
CN
China
Prior art keywords
processing transactions
ioq
input
inbound
write
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.)
Expired - Fee Related
Application number
CNB028208919A
Other languages
English (en)
Other versions
CN1575459A (zh
Inventor
肯尼思·克雷塔
布拉德福德·康登
迪帕克·拉马钱德兰
托尼·兰德
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 CN1575459A publication Critical patent/CN1575459A/zh
Application granted granted Critical
Publication of CN100432972C publication Critical patent/CN100432972C/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/40Bus structure
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Display Devices Of Pinball Game Machines (AREA)

Abstract

一个输入/输出集线器包括一个接收入站处理事务的入站排序队列(IOQ)。所有读写处理事务都具有一个处理事务完成。在该IOQ中的所有先有写入完成之前,不允许对等事务到达目的地。对等事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行。提供一个IOQ读出分流缓冲器来接收从该IOQ推出的读出处理事务以便允许显出的写入以及读出/写入完成通过该IOQ进行。一个出站排序队列(OOQ)存储出站处理事务以及这些入站处理事务的完成。该OOQ也为所显出的写入发布写入完成。提供一个OOQ读出分流缓冲器来接收从该OOQ推出的读出处理事务以便允许显出的写入以及读出/写入完成通过该OOQ进行。该输入/输出集线器内的一个无序域接收由无序协议发送的入站处理事务。

Description

输入/输出集线器、输入/输出***和使用它们的计算机***
发明领域
一般而言,本发明涉及一个输入/输出(I/O)集线器。更具体地讲,本发明涉及一个I/O集线器,适合于在多处理器计算机***结构体系下本质无序的接口上实施生产商-用户(P/C)的排序规则。
背景技术
多处理器计算机***被设计得用来适应经由一个公共***总线或开关连接到存储器以及若干外部输入/输出装置的多个中央处理器(CPU)。提供多个中央处理器的目的是通过在这些处理器之间共享任务来提高运行性能。举例来说,这样一种结构允许该计算机支持多个不同的应用程序,而且同时支持在一个网络上通信的I/O部件以及在所连接的显示器设备上显示图像。多处理器计算机***通常被用于企业与网络服务器***。
可以提供一个输入/输出集线器来作为各种输入/输出桥接部件之间的一个连接点,输入/输出部件都被连接到到该连接点,并最终被连接到这些中央处理器。许多输入/输出部件都是***部件互连(PCI)(“PCI局部总线规范”,修订版本2.1,1995年6月1日,PCI专业组(PCI-SIG))装置及软件驱动器,们服从该PCI生产商-用户(P/C)模型以及它的排序规则及要求。(“PCI局部总线规范”,修订版本2.1,附录E,“***处理事务排序”。)举例来说,这些排序规则允许写入按照较高性能加以显出,并同时保证“正确性”。“显出”就意味着该处理事务由一个中间代理(譬如从一条总线到另一条总线的桥接器)进行捕获,所以该处理事务先在该来源地完成,然后在该预定目的地实际完成。显出允许该来源地进行下一项操作,而同时该处理事务仍然继续经过该***到达它的最终目的地。换句话说,一个PCI装置中的写入显出意味着并不期望所发布的写入返回一个“完成”响应。就是说,当显出的写入被发布时,并不返回表示该写入已经完成的确认。术语“正确性”意味着,一个旗标或信号标志可以被用来保护一对生产商-用户之间的数据缓冲器。
连接该I/O集线器并最终连接这些处理器的连贯接口是本质无序的。所以,在P/C模型下的排序规则比用于一个连贯接口的规则严格得多,一个连贯接口也许根本就没有排序规则。连贯接口(譬如一条前侧总线或一个Intel可扩展接口)是本质有序的,因为对其设计连贯接口的处理器是复杂装置。这些处理器具有区分何时需要排序、而何时不需要排序的智能。所以一般来说,连贯接口不需要(任何方向的)请求就能处理完成。但是,PCI装置通常不是这么复杂,它们更多地考虑降低成本,故而依赖于***排序规则来避免死锁。可是,PCI排序规则在放宽特定处理事务的排序要求时确实也允许一些复杂性。
保留使用PCI装置及保留使用服从该P/C排序模型的装置是特别有用的,因为它们通常是按照低成本原则设计的。故而,所需要的是一个成本效果明显的、优化的芯片组实现,譬如与多个处理器单元连接的一个连贯接口,不需要任何附加软件与硬件的介入就能桥接一个有序域(需要PCI排序并服从该PC排序模型的域)与一个无序域。因为一个PCI装置通常是按照低成本原则设计的,而且也许不在PCI排序规则中放宽要求,所以就需要这样一个***,该***能够通过利用这些装置自身的所有排序放宽能力、并同时避免任何死锁弱点及性能恶化来充分利用该PCI排序规则所允许的性能优化。
发明内容
根据本发明的一个方面,提供了一种输入/输出集线器,包括:
接收入站处理事务的入站排序队列(IOQ),其中所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入被完成之前,不允许对等处理事务到达目的地,而且对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行;
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入以及读出/写入完成通过该IOQ进行;
出站排序队列(OOQ),存储出站处理事务以及这些入站处理事务的完成,并为显出的写入发布一个写入完成;
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入以及读出/写入完成通过该OOQ进行;以及
无序域,接收由该IOQ发送的入站处理事务,并接收由无序协议发送的出站处理事务。
根据本发明的另一个方面,提供了一种输入/输出集线器,包括:
有序域,该有序域包括:
接收并发送入站处理事务的入站排序队列(IOQ),其中不允许入站读写处理事务来分流入站写入数据,所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列(OOQ),存储出站处理事务及这些入站处理事务的完成,并为显出的写入发布一个写入完成,以及
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便
允许这些显出的写入及读出/写入完成通过该OOQ进行;以及与无序协议通信的无序域,该无序域包括:
入站多路转接器,接收从该有序域到该无序协议的入站处理事务,以及
出站多路分解器,接收从该无序协议到该有序域的出站处理事务。
根据本发明的另一个方面,提供了一种输入/输出***,包括:
有序域,该有序域包括:
接收并发送入站处理事务的入站排序队列(IOQ),其中不允许入站读写处理事务来分流入站写入数据,所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入被完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列(OOQ),存储出站处理事务及这些入站处理事务的完成,并为显出的写入发布一个写入完成,以及
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;
与无序协议通信的无序域,该无序域包括:
入站多路转接器,接收从该有序域到该无序协议的入站处理事务,以及
出站多路分解器,接收从该无序协议到该有序域的出站处理事务;
与该有序域通信的生产商-用户有序接口;
与该生产商-用户有序接口相连的输入/输出装置;以及
该无序协议内与该无序域通信的连贯接口。
根据本发明的另一个方面,提供了一种输入/输出***,包括:
有序域,具有第一功能块以及第二功能块,其中该第一功能块与第二功能块各包括:
接收入站处理事务的入站排序队列(IOQ),其中不允许入站读写处理事务来分流入站写入数据,所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列(OOQ),存储出站处理事务以及这些入站处理事务的完成,并为显出的写入发布一个写入完成,
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;
与无序协议通信的无序域,该无序域包括:
入站多路转接器,接收从该有序域到该无序协议的入站处理事务,以及
出站多路分解器,接收从该无序协议到该有序域的出站处理事务;
与该第一功能块通信的第一生产商-用户有序接口;
与该第一生产商-用户有序接口相连的第一输入/输出装置;
与该第二功能块通信的第二生产商-用户有序接口;
与该第二生产商-用户有序接口相连的第二输入/输出装置;以及
该无序协议内与该无序域通信的连贯接口。
根据本发明的另一个方面,提供了一种计算机***,包括:
多个能访问高速缓存器的处理器单元;
主存储器;
连贯接口,维持这些处理器单元与它们的高速缓存器之间的连贯性;
可扩展节点控制器,使这些处理器单元、该主存储器以及该连贯接口互相连接以便控制它们之间的接口;以及
与该连贯接口通信的输入/输出集线器,该集线器包括:
接收入站处理事务的入站排序队列(IOQ),其中所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列(OOQ),存储出站处理事务以及这些入站处理事务的完成,并为显出的写入发布一个写入完成,
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;以及
无序域,接收由该IOQ发送的入站处理事务并接收来自该连贯接口的出站处理事务。
根据本发明的这些方面,可以提供一个成本效果明显的、优化的芯片组实现,譬如与多个处理器单元连接的一个连贯接口,不需要任何附加软件与硬件的介入就能桥接一个有序域与一个无序域。并且可以提供一个***,该***能够通过利用这些装置自身的所有排序放宽能力、并同时避免任何死锁弱点及性能恶化来充分利用该PCI排序规则所允许的性能优化。
附图说明
图1说明按照本发明实施例的一个输入/输出集线器;
图2A表示经由按照本发明实施例的入站排序队列(IOQ)的一个入站处理事务;
图2B表示经由按照本发明实施例的出站排序队列(OOQ)的一个出站处理事务;
图3表示按照本发明实施例的一个输入/输出***结构体系。
详细说明
图1表示按照本发明实施例的一个输入/输出集线器。I/O集线器100包括一个有序域以及一个无序域。在该有序域内,一个或多个功能块102、104帮助进行I/O部件160、170与无序协议110之间的入站及出站处理事务。每个功能块102、104都包括一个入站排序队列(IOQ)120、一个IOQ读出分流缓冲器(RBB)125、一个出站排序队列(OOQ)130以及一个OOQ读出分流缓冲器(RBB)135。
在该无序域内,一个入站多路转接器180从该有序域的功能块102、104(更具体地说,是从IOQ 120及IOQ RBB 125)接收数据与信号。该无序域内的一个出站多路分离器190从无序协议110(譬如像该可扩展端口这样的一个连贯接口)接收数据与信号,以便发送到该有序域(更具体地说,是发送到功能块102、104的OOQ130)。
至少提供一个P/C有序输入/输出接口140、150来与输入/输出装置或部件160、170(譬如PCI装置)连接。可是,P/C有序接口140、150通常不直接与I/O装置或部件160、170相连。通常,有一个中间装置连接到与I/O装置或部件160、170相连的P/C有序接口140、150,这个中间装置是某种类似集线器的装置或输入/输出桥接器,譬如一个Intel P64H2集线器接口至PCI的桥接器,或者一个VXB InfiniBand桥接器(“InfiniBand体系结构规范”,修订版本1.0,2001年6月19日,InfiniBand贸易协会)。举例来说,每个P64H2桥接器具有I/O装置或部件160、170可以与之相连的两个PCI-X片(“PCI-X规范”,修订版本1.0a,2000年8月29日,PCI-SIG)。PCI-X是PCI局部总线的一种高性能扩展,具有更高的带宽与总线性能。
按照本发明实施例的I/O集线器100“切入”两个域:一个有序域与一个无序域。该有序域服从PCI规范所描述的生产商-用户排序规则,而且可以采用许多不同方式进行设计。该无序域没有排序规则。通过实施按照本发明的分层方法的I/O集线器100,可以在无序接口上保持生产商-用户的排序。
入站排序队列(IOQ)120负责排列以主存储器或对等I/O部件为目标的入站读写处理事务/请求。IOQ 120最好按照先入先出(FIFO)方式组态,该方式迫使入站读写处理事务/请求不能分流入站写入(即写入数据)。此外,出站读写完成(为以I/O部件为目标的读出而返回的数据)也与所有其他出站专门循环一道在IOQ 120中排列。采用这种结构,可以保证生产商-用户“正确性”。
在该PCI排序规则下,显出的写入是被允许的。但是,在该无序域中,显出的写入则不被允许。所以,读写处理事务都需要一个处理事务完成。所以,IOQ 120中的写入被发布到该无序域,但在该无序接口(向OOQ 130)返回一个完成之前并不对它们重新分配地址。
当一个对等处理事务被发布时,在IOQ 120中的所有先有写入完成之前,不允许该对等处理事务到达(这同一个I/O集线器或另一个I/O集线器上的)目的地接口。在该数据与信号标志被定位于不同目的地时,譬如该第一次写入是到该主存储器的数据、而该对等写入是针对对等I/O部件上的一个信号标志时,这个限制能够保证正确的排序。
对于在两个I/O集线器之间流动的对等写入处理事务,有时该显出的写入在到达该目的地I/O集线器的有序域之前流经无序光纤。所以,该写入(尽管它是对等的,而且以该有序域为目标)必须不允许随后的访问进行,直到该对等写入被确保进入该目的地的有序域为止。这种要求能保证所显出的写入的“完成”。
所实施的IOQ 120数量取决于I/O集线器对其进行优化的独立数据流数目。至少讲,每个端口有一个队列可以提供正确的运行,但是每个独立流有一个队列将会放宽那个端口的独立数据流之间的排序限制。
出站排序队列(OOQ)130与OOQ读出分流缓冲器(RBB)135一道通过支持出站处理事务(譬如读写请求)以及入站处理事务的完成来保持生产商-用户排序。如前所述,根据本发明的实施例,该无序域即使对写入处理事务也需要完成。I/O集线器100为在该有序域内获得最优性能而负责显出这些出站写入,通过仅当该写入到达OOQ 130之后(从OOQ 130)为该写入发布一个完成响应来实现这一点。一旦到达OOQ 130就发布这个完成,所以反应时间较快,因为与它到达P/C有序接口140、150之后再予以返回相比,这个完成返回得更早。类似地,从理论上讲,读出也可能填充OOQ 130。为了防止这种因流入无序域而产生的“反向压力”(这可以防止写入的前向进行),读出处理事务被推入RBB 135,然后当允许时在该有序域分界线上重试。
IOQ 120与OOQ 130都各自具有至少一个相应的读出分流缓冲器(RBB)125、135。读出分流缓冲器125、135允许显出的写入与读出/写入完成继续进行以前为等待它们的完成返回而停止的读出请求。它们同时适用于入站与出站通信。就是说,当一个显出的写入或读出/写入完成需要通过IOQ 120或OOQ 130进行时,IOQ 120或OOQ 130内(被停止的)读出处理事务/请求就被向一旁“推入”各自的RBB 125、135,以便允许该显出的写入或读出/写入完成能够通过IOQ 120或OOQ 130进行。然后,当引起该停止的阻塞条件不再存在时就尝试执行RBB 125、135的队列中第一个被“推入到一旁”的任务。然后,再对RBB 125、135中的读出处理事务以及IOQ 120与OOQ 130中随后的处理事务进行仲裁以便完成这些处理事务。读出分流缓冲器125、135保证该有序域中的无死锁运行。
根据本发明的一个实施例,每个P/C有序接口140、150具有一个功能块102、104(它们具有一个IOQ 120以及一个OOQ 130)。尽管图1所示的实施例画出了两个功能块102、104,对每个功能块102、104画出了一个相应的P/C有序接口140、150,但是可以使用任何适当结构及数量的功能块以及P/C有序接口。
图2A表示经由按照本发明实施例的入站排序队列(IOQ)的一个入站处理事务。P/C有序接口140、150(按照I/O部件160、170的方向)向I/O集线器100的IOQ 120发布一个读出或写入处理事务/请求或完成(202)。该读出/写入处理事务或完成被排列到IOQ 120中(204)。当IOQ 120已满时,IOQ 120中的读出处理事务被向一边推入IOQ读出分流缓冲器125(206),以便允许入站写入处理事务或读出/写入完成通过IOQ 120进行,并到达无序协议110。当这些读出被推到一边时,就在有序接口140、150上重试随后的读出处理事务。否则,IOQ 120中排列的读出或写入处理事务或完成就最好以先入先出(FIFO)的方式被转送到无序协议110(208)。对写入处理事务,们在允许随后的处理事务进行之前必须等待来自该无序协议110的完成(210)。这种方案被用来维持该***内的秩序。
图2B表示经由按照本发明实施例的出站排序队列(OOQ)的一个出站处理事务。从无序协议110(譬如像可扩展端口那样的一个连贯接口)向I/O集线器100的OOQ 130发布一个读出或写入处理事务/请求以及一个读出完成两者之中的至少一项。这读出或写入处理事务以及读出完成两者之中的至少一项在OOQ 130中进行排队(222)。对一个出站写入,一旦它进入OOQ 130就向无序接口110发布一个完成(224)。当OOQ 130已满时,OOQ 130中的读出处理事务就被向一边推入OOQ读出分流缓冲器135(226),以便允许入站写入处理事务或读出/写入完成经过OOQ 130进行并到达P/C有序接口140、150。当这些读出被推到一边时,就可以在无序接口110重试随后的读出处理事务。否则,0OQ 130中排列的读出或写入处理事务或完成就被转送到P/C有序接口140、150(228),并最终到达I/O部件160、170。
图3表示按照本发明实施例的一个输入/输出***体系结构。如前所述,I/O集线器100可以包括连接到中间装置的P/C有序接口,譬如某种类似集线器的装置或输入/输出桥接器(如一个PCI-X桥接器360或一个InfiniBand桥接器370)。然后,将(图1所示的)I/O部件或装置160、170连接到中间装置360、370。I/O集线器100还可以包括连接到继承输入/输出桥接器350的一个I/O接口来处理与继承I/O部件或装置的连接。
I/O集线器100适合于连接到连贯接口,譬如一个可扩展端口340,这是一个与高速缓存连贯的接口,该接口对能维持所有处理器以及它们的高速缓存器之间的连贯性的***已经进行了优化。可扩展端口340反过来又可以连接到至少一个可扩展节点控制器320,控制处理器310、主存储器330(譬如动态随机存取存储器,即DRAM)以及可扩展端口340之间的接口。
总而言之,按照本发明的I/O集线器100允许保留使用通常按照低成本原则而设计的PCI装置以及服从P/C排序模型的装置。I/O集线器100提供一个成本效率明显的、优化的芯片组(譬如Intel 870芯片组)实现方案,不需要任何附加软件或硬件的介入就能桥接有序域(一个需要PCI排序并服从该P/C模型的域)与一个无序域(譬如一个连贯接口)。因为一个PCI装置通常是按照低成本原则设计的、而且不在该PCI排序规则中放宽要求,所以本发明的I/O集线器100要通过利用这些装置本身的所有排序放宽能力、并同时避免任何死锁弱点及性能恶化来充分利用PCI排序规则所允许的性能优化。
尽管上面的说明参考了本发明的特定实施例,但应当理解,可以进行许多修改而不偏离本发明的精神。所附的权利要求旨在覆盖这些将会属于本发明的准确范围及精神之内的修改。所以,目前公布的实施例在各个方面来讲应被认为属于演示性质而非限制,由所附的权利要求、而非由前面的说明来表示的本发明的范围以及在与这些权利要求等效的含义与范围内的所有改变都预期被包括在这些权利要求之中。

Claims (25)

1、一个输入/输出集线器,包括:
接收入站处理事务的入站排序队列IOQ,其中所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入被完成之前,不允许对等处理事务到达目的地,而且对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行;
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入以及读出/写入完成通过该IOQ进行;
出站排序队列OOQ,存储出站处理事务以及这些入站处理事务的完成,并为显出的写入发布一个写入完成;
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入以及读出/写入完成通过该OOQ进行;以及
无序域,包括入站多路转接器来接收由该IOQ发送的入站处理事务,并包括出站多路分解器来接收由无序协议发送的出站处理事务。
2、如权利要求1的输入/输出集线器,其中该IOQ不允许该入站读写处理事务来分流入站写入数据。
3、如权利要求1的输入/输出集线器,其中该无序协议是一个连贯接口。
4、如权利要求3的输入/输出集线器,其中该连贯接口是一个可扩展端口。
5、一个输入/输出集线器,包括:
有序域,该有序域包括:
接收并发送入站处理事务的入站排序队列IOQ,其中不允许入站读写处理事务来分流入站写入数据,所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列OOQ,存储出站处理事务及这些入站处理事务的完成,并为显出的写入发布一个写入完成,以及
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;以及
与无序协议通信的无序域,该无序域包括:
入站多路转接器,接收从该有序域到该无序协议的入站处理事务,以及
出站多路分解器,接收从该无序协议到该有序域的出站处理事务。
6、如权利要求5的输入/输出集线器,还包括至少一个与该有序域通信的生产商-用户有序接口。
7、如权利要求6的输入/输出集线器,还包括一个与该生产商-用户有序接口连接的输入/输出装置。
8、如权利要求7的输入/输出集线器,还包括一个使该生产商-用户有序接口与输入/输出装置互相连接的中间装置。
9、如权利要求7的输入/输出集线器,其中该输入/输出装置是一个***部件互连PCI装置。
10、如权利要求5的输入/输出集线器,其中该无序协议是一个连贯接口。
11、如权利要求10的输入/输出集线器,其中该连贯接口是一个可扩展端口。
12、一个输入/输出***,包括:
有序域,该有序域包括:
接收并发送入站处理事务的入站排序队列IOQ,其中不允许入站读写处理事务来分流入站写入数据,所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入被完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列OOQ,存储出站处理事务及这些入站处理事务的完成,并为显出的写入发布一个写入完成,以及
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;
与无序协议通信的无序域,该无序域包括:
入站多路转接器,接收从该有序域到该无序协议的入站处理事务,以及
出站多路分解器,接收从该无序协议到该有序域的出站处理事务;
与该有序域通信的生产商-用户有序接口;
与该生产商-用户有序接口相连的输入/输出装置;以及
该无序协议内与该无序域通信的连贯接口。
13、如权利要求12的输入/输出***,其中该连贯接口是一个可扩展端口。
14、如权利要求12的输入/输出***,其中该输入/输出装置是一个***部件互连PCI装置。
15、如权利要求12的输入/输出***,还包括一个使该生产商-用户有序接口与该输入/输出装置互相连接的中间装置。
16、如权利要求12所述的输入/输出***,其中,
所述有序域包括第一功能块以及第二功能块,其中该第一功能块与第二功能块各包括:所述入站排序队列IOQ,所述IOQ读出分流缓冲器,所述出站排序队列OOQ,所述OOQ读出分流缓冲器;
所述生产商-用户有序接口包括与该第一功能块通信的第一生产商-用户有序接口和与该第二功能块通信的第二生产商-用户有序接口;
所述输入/输出装置包括与该第一生产商-用户有序接口相连的第一输入/输出装置和与该第二生产商-用户有序接口相连的第二输入/输出装置
17、如权利要求16的输入/输出***,其中该连贯接口是一个可扩展端口。
18、如权利要求16的输入/输出***,其中该第一输入/输出装置是一个***部件互连PCI装置。
19、如权利要求16的输入/输出***,其中该第二输入/输出装置是一个***部件互连PCI装置。
20、如权利要求16的输入/输出***,还包括一个使该第一生产商-用户有序接口与该第一输入/输出装置互相连接的第一中间装置。
21、如权利要求16的输入/输出***,还包括一个使该第二生产商-用户有序接口与该第二输入/输出装置互相连接的第二中间装置。
22、一个计算机***,包括:
多个能访问高速缓存器的处理器单元;
主存储器;
连贯接口,维持这些处理器单元与它们的高速缓存器之间的连贯性;
可扩展节点控制器,使这些处理器单元、该主存储器以及该连贯接口互相连接以便控制它们之间的接口;以及
与该连贯接口通信的输入/输出集线器,该集线器包括:
接收入站处理事务的入站排序队列IOQ,其中所有读写处理事务都具有一个处理事务完成,在该IOQ中的所有先有写入完成之前,不允许对等处理事务到达目的地,而且,对等处理事务中的一次写入在保证该写入进入该目的地的有序域之前不允许随后的访问进行,
IOQ读出分流缓冲器,接收从该IOQ推出的读出处理事务以便允许显出的写入及读出/写入完成通过该IOQ进行,
出站排序队列OOQ,存储出站处理事务以及这些入站处理事务的完成,并为显出的写入发布一个写入完成,
OOQ读出分流缓冲器,接收从该OOQ推出的读出处理事务以便允许这些显出的写入及读出/写入完成通过该OOQ进行;以及
无序域,接收由该IOQ发送的入站处理事务并接收来自该连贯接口的出站处理事务。
23、如权利要求22的计算机***,其中该IOQ不允许该入站读写处理事务来分流入站写入数据。
24、如权利要求22的计算机***,其中该连贯接口是一个无序协议。
25、如权利要求22的计算机***,其中该连贯接口是一个可扩展端口。
CNB028208919A 2001-08-27 2002-08-01 输入/输出集线器、输入/输出***和使用它们的计算机*** Expired - Fee Related CN100432972C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/940,292 2001-08-27
US09/940,292 US6801976B2 (en) 2001-08-27 2001-08-27 Mechanism for preserving producer-consumer ordering across an unordered interface

Publications (2)

Publication Number Publication Date
CN1575459A CN1575459A (zh) 2005-02-02
CN100432972C true CN100432972C (zh) 2008-11-12

Family

ID=25474578

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028208919A Expired - Fee Related CN100432972C (zh) 2001-08-27 2002-08-01 输入/输出集线器、输入/输出***和使用它们的计算机***

Country Status (8)

Country Link
US (1) US6801976B2 (zh)
EP (1) EP1421503B1 (zh)
KR (1) KR100545952B1 (zh)
CN (1) CN100432972C (zh)
AT (1) ATE349735T1 (zh)
DE (1) DE60217132T2 (zh)
TW (1) TW571223B (zh)
WO (1) WO2003019398A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754734B2 (en) * 2001-12-18 2004-06-22 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
DE10234933A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten
US6941407B2 (en) * 2002-09-27 2005-09-06 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US7000060B2 (en) * 2002-09-27 2006-02-14 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US6976142B1 (en) * 2003-05-07 2005-12-13 Agilent Technologies, Inc. Method and system to provide simultaneous access by multiple pipelines to a table
US7117287B2 (en) * 2003-05-30 2006-10-03 Sun Microsystems, Inc. History FIFO with bypass wherein an order through queue is maintained irrespective of retrieval of data
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US7346713B2 (en) * 2004-11-12 2008-03-18 International Business Machines Corporation Methods and apparatus for servicing commands through a memory controller port
GB0622408D0 (en) * 2006-11-10 2006-12-20 Ibm Device and method for detection and processing of stalled data request
US8689237B2 (en) 2011-09-22 2014-04-01 Oracle International Corporation Multi-lane concurrent bag for facilitating inter-thread communication
US8607249B2 (en) * 2011-09-22 2013-12-10 Oracle International Corporation System and method for efficient concurrent queue implementation
US8782356B2 (en) * 2011-12-09 2014-07-15 Qualcomm Incorporated Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions
WO2013105967A1 (en) 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
US9477622B2 (en) * 2012-02-07 2016-10-25 Intel Corporation Deterministic method to support multiple producers with multiple consumers in peer or hierarchical systems
CN103532875B (zh) * 2013-10-12 2017-11-03 丁贤根 一种用于pcie应用层接口的重排序方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747831A2 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5925099A (en) 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US5828865A (en) 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US6219737B1 (en) 1998-12-10 2001-04-17 International Business Machines Corporation Read request performance of a multiple set buffer pool bus bridge

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747831A2 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe

Also Published As

Publication number Publication date
DE60217132T2 (de) 2007-10-25
EP1421503A1 (en) 2004-05-26
EP1421503B1 (en) 2006-12-27
WO2003019398A1 (en) 2003-03-06
US20030041185A1 (en) 2003-02-27
KR20040029448A (ko) 2004-04-06
DE60217132D1 (de) 2007-02-08
TW571223B (en) 2004-01-11
KR100545952B1 (ko) 2006-01-26
US6801976B2 (en) 2004-10-05
CN1575459A (zh) 2005-02-02
ATE349735T1 (de) 2007-01-15

Similar Documents

Publication Publication Date Title
CN100432972C (zh) 输入/输出集线器、输入/输出***和使用它们的计算机***
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
US6247100B1 (en) Method and system for transmitting address commands in a multiprocessor system
US9465741B2 (en) Multi processor multi domain conversion bridge with out of order return buffering
EP3267322B1 (en) Scalable direct inter-node communication over peripheral component interconnect-express (pcie)
KR101661259B1 (ko) 저전력 부분 폭 고속 링크 상태에서 나갈 때의 고속 디스큐
JP3476174B2 (ja) ピア・ツー・ピア・サポートを有する2重ホスト・ブリッジ
EP1591908A1 (en) Separating transactions into different virtual channels
CN107995129A (zh) 一种nfv报文转发方法和装置
TWI662416B (zh) 系統晶片(SoC)結構中有效率的點對點通訊支援
CN103257933A (zh) 无序处理器中的事务存储器执行的方法、设备和***
CN102110072A (zh) 一种多处理器完全互访的方法及***
CN101901205A (zh) 在PCIExpress上启用基于ID的流的方法和装置
EP3032373A1 (en) Device power management state transition latency advertisement for faster boot time
US8341360B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US10339064B2 (en) Hot cache line arbitration
Markussen et al. Flexible device compositions and dynamic resource sharing in PCIe interconnected clusters using Device Lending
US10846126B2 (en) Method, apparatus and system for handling non-posted memory write transactions in a fabric
US6449678B1 (en) Method and system for multiple read/write transactions across a bridge system
US20090177821A1 (en) Cache Intervention on a Separate Data Bus When On-Chip Bus Has Separate Read and Write Data Busses
US6480917B1 (en) Device arbitration including peer-to-peer access arbitration
JPH0212361A (ja) 階層化バスによる並列計算機システム
CN117806833B (zh) 一种数据处理***、方法及介质
US9304926B2 (en) Coherency control message flow
US11954359B2 (en) Circular buffer architecture using local memories with limited resources

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

Granted publication date: 20081112

Termination date: 20140801

EXPY Termination of patent right or utility model