CN1259702A - 用于编织排序的设备和方法 - Google Patents

用于编织排序的设备和方法 Download PDF

Info

Publication number
CN1259702A
CN1259702A CN99124767A CN99124767A CN1259702A CN 1259702 A CN1259702 A CN 1259702A CN 99124767 A CN99124767 A CN 99124767A CN 99124767 A CN99124767 A CN 99124767A CN 1259702 A CN1259702 A CN 1259702A
Authority
CN
China
Prior art keywords
affairs
follow
dma
ordering
walk around
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
CN99124767A
Other languages
English (en)
Other versions
CN1135479C (zh
Inventor
D·M·尼尔
S·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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1259702A publication Critical patent/CN1259702A/zh
Application granted granted Critical
Publication of CN1135479C publication Critical patent/CN1135479C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention

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)
  • Small-Scale Networks (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)
  • Computer And Data Communications (AREA)

Abstract

实现一种在数据处理***中越过编织器传递事务序列的设备和方法。编织器桥依据预定的协议将前面事务与后继事务排序。利用协议确定是否后继事务可被允许绕过前面事务,必须被允许绕过前面事务,或必须不允许绕过前面事务。事务包括加载/存贮(L/S)***存贮器和对输入/输出(I/O)设备的L/S,以及对***存贮器的直接存贮器存取(DMA)和DMA对等关系事务。

Description

用于编织排序的设备和方法
本发明一般而言涉及数据处理***,尤其是,涉及在多处理器节点数据处理***结构中事务处理的排序。
现代数据处理***编入许多处理节点。每个节点本身包括一个或多个中央处理单元(“CPU”),***存贮器,其本身可包括高速缓存存贮器,***设备,以及连接***总线至***总线的***主桥(“PHB”)。
此外,具有多处理器的现代数据处理***可以实现一种共享存贮器环境。在这样的环境中,在一个节点中的一个处理器或多个处理器可以存取其它节点中的存贮器。实现多节点上共享存贮器的典型环境是非均匀存贮器存取(NUMA)环境和只高速缓存存贮器存取(COMA)环境。另外,在这些***中希望通过每个节点中的设备实现既到本地存贮器也到远距离存贮器的直接存贮器存取(DMA)。
在这样一种NUMA或COMA***中的节点通过一种称为“编织器”的设备连接,这种设备传递在其间的事务。越过编织器的节点对节点的事务可以包括对I/O设备的加载/存贮(L/S)操作和DMA对等关系的事务,除非编织器包括一种事务排序的机构,否则这些事务可能引起相干性损失。相干性抑制可以由每个节点中CPU的结构强加上的,也可以由每个节点中总线的结构强加上的。此外,事务排序必须被强加上以避免死锁及保证在I/O中断后***相干域中的数据。因此,在技术上需要一种设备与方法,用于在一种共享存贮器环境中连接多重节点的编织器上实现事务排序规则。
本发明解决了上面提到的需要。因此,在此以第一形式提供包括编织器桥的一种数据处理***。该编织器桥用于在数据处理***中的节点之间传递事务,编织器控制节点间事务的顺序,其中,编织桥确定前面事务和后继事务的排序。该排序是后继事务可以绕过前面的事务,必须绕过前面的事务,和不允许绕过前面的事务之中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载/存贮(L/S),和直接存贮器存取(DMA)对等关系事务。
在此也以第二形式提供一种数据处理***中节点之间传递事务的方法。此方法包括步骤:通过确定前面事务和后继事务的排序来控制节点间事务顺序,该排序是后继事务可以绕过前面的事务,必须绕过前面的事务,和不允许绕过前面的事务之中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载存贮(L/S),和直接存贮器存取(DMA)对等关系事务。
此外,在此以第三形式提供一种可操作的计算机程序产品,用于在程序存贮媒介上存贮,此程序产品可用于在数据处理***中节点之间的事务传递。该程序产品包括通过确定前面事务与后继事务的排序来控制节点之间事务的顺序的编程,该排序是后继事务可以绕过前面事务,必须绕过前面事务,和必须不绕过前面事务之中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载/存贮(L/S),和直接存贮器存取(DMA)对等关系的事务。
以上已经相当广泛扼要地叙述了本发明的特征和技术优点,以便更好地理解后续的发明详述。以下将描述本发明另外的特征和优点,这些构成本发明的权利要求的主题。
为了更全面地理解本发明,及其优点,在此参考结合附图所做的下列描述,其中:
图1用作说明依据本发明的一个实施方案的一种共享存贮器数据处理***;
图2A以方框图的形式,用作说明依据本发明的一个实施方案的一种编织器桥;
图2B以方框图的形式,用作说明依据本发明的一种替代的实施方案的一种编织器桥;
图3以流程图的形式,用作说明依据本发明的一种实施方案的一种事务排序方法;和
图4以表格形式,说明由图3中的方法实现的排序规则。
本发明提供一种机构,用于在一个共享资源数据处理***环境中通过连接多重节点的一个编织器对L/S到I/O,DMA对等关系事务,L/S到***存贮器和DMA到***存贮器排序。越过编织器的L/S和DMA事务由对事务排序的一个状态机构控制。此状态机构确定依据预先规定的规则组一个后继的事务是否可以绕过一个前面的事务。在总线桥中的事务排序已经公开在共同指定的美国专利No.5,694,556 to Neal,etal中,引入于此作为参考,本发明提供一种在NUMA或COMA环境中事务排序的机构。
在以下的描述中,为了对本发明的透彻理解,阐明了许多专门的细节。然而,对本领域的技术人员来说是显然的,即没有这样一些专门的细节本发明也可被实现,另外,大家熟知的电路用方框图形式示出,以便不让本发明在不必要的细节中弄得含糊不清,对于大多数部分来说,与定时考虑有关的细节以及对于本发明的充分理解是不必要的并且在有关技术领域的专业人员的技能范围内的细节均被略去。
现参看附图,其中所描述的部件并不必要按比例示出,并且相同或类似的部件在几个图中用相同的参考数字标记。
现参看图1,用作说明依据本发明的原理的一种多重节点数据处理***100,每个节点102包括许多,N个,连接到***总线106的CPU 104,***存贮器部分,存贮器108也包括在每个节点中,并被连到***总线106上。
***设备位于***总线110上,并通过***主桥(PHB)112接合到***总线。另外,***设备,譬如设备114,可以位于一个或多个子总线116上,而这些子总线通过***对***(在图1上标记为PtP)桥连到***总线110,这样一种实施方案可被采用是为了满足关于***总线110的扇出技术指标。例如,在本发明的实施方案中,***总线110可以是一种***部件互联(PCI)总线,其中这种类型的每个总线支持在总线上十个负载。然而,熟悉常规技术的技术人员将理解,本发明可被提供在共享存贮器数据处理***的其它实施方案中而并不限于***总线110是PCI总线的***。
节点102通过编织器120连接,编织器120包括编织器桥122和多重节点编织器互联126。在第一节点102内的设备,如CPU104或***设备114之一可以参与另一个节点102中的另一个设备或存贮器的事务,这些事务由编织器桥122传递,编织器桥122和多重节点编织器互联126,例如,在本发明的一个实施方案中可以是一个可比相干接口(SCI),或,替换为一个电子切换编织器。在本发明的一个实施方案中,编织桥122可以传递到I/O的加载/存贮事务。另外,事务可包括DMA对等关系事务,虽然在图1中的***100已被说明为具有四个节点102,熟悉常规技术的技术人员将理解,依据本发明的原理,一个多重节点数据处理***100可以包括任何预先规定的节点数102,这样一种实施方案将在本发明的精神与范围内。
现参看图2,用作更详细地说明编织器桥122。桥122通过多重节点编织器互联126连到每个节点,在节点和桥之间传送数据和控制信号,控制信号通知互联事务已被执行,在事务中要传递的数据可被安置在缓冲器202中,例如,对于一个用DMA操作方式对***存贮器的延时读请求来说,在第一节点102中的请求设备114可以试图对物理上位于第二节点102中的存贮器108为目标进行读请求,此读请求被缓存在编织器桥122中。然后编织器桥122将此请求传交给第二节点102中的存贮器108,从第二,目的地,节点102中的存贮器108接收到的数据可以存贮在缓冲器202中并被转交给请求的PHB112,然后当请求设备114再次试图其请求时提供给请求设备114。
在***总线106上PHB 112执行指定给另一个节点102的事务请求由请求节点102中的编织器桥112接受。然后这些事务在缓冲器202中缓存,由控制和路由逻辑204接收,状态机构206执行控制各个节点间的事务的操作,在图2B中所示的编织器桥122的一种替代实施方案中,CPU205依据存贮在存贮器207中指令程序作为排序规则状态机构起作用。在节点102上来自或去***的事务在节点接口208上出或入编织器桥,同样地,来自或去其它节点102的事务在编织器连接接口210上出或入编织器桥。
在节点102之间的事务在图1中的编织器120上被连续地传递。为了保持数据连贯性和遵守可由CPU104和***总线110加上的适当的排序限制,状态机构206或,替换为在存贮器207中的指令控制下的CPU205,必须执行事务排序规则,由此后继事务的执行受前面事务的制约,换句话说,状态机构206或,替换为CPU205由一套排序规则确定何时可以允许后续事务在前面事务前执行,如果已有临时性失速的话,必须允许在前面事务以前执行,或者必须按次序执行,也就是说不允许在前面事务以前执行,状态机构206或CPU205依据在图3中以流程图形式示出的方法300确定排序。
现参看图3,以流程图形式示出的一种对图1的编织器122中的事务排序的方法300,支持对I/O设备的L/S操作,对等关系DMA事务,和对***存贮器的L/S以及对***存贮器的DMA。此外,CPU 104可以执行对总线事务强制排序的指令,例如,Power PC结构(“Power PC”是IBM公司的一个商标)执行Sync和eieio(强制按次序执行I/O)指令。执行Sync指令保证在Sync指令以前的所有Load和store指令在程序执行经过Sync指令以前的总线上被完成,eieio指令的执行使所有在执行eieio指令以前的Load和store指令,在任何执行eieio指令以后可被发出的写操作以前,为在总线上执行作记号。方法300在步骤302中开始,并在步骤304中确定是否允许对I/O事务L/S。如果在步骤304中允许对I/O作L/S,那末在步骤306中,确定是否前面的事务是DMA操作或者对***存贮器的L/S或者eieio或Sync事务。如果不是,方法300在步骤308中确定,是否前面的事务是L/S对I/O或者来自I/O的加载。如果不是,方法300在步骤310中继续确定是否允许DMA对等关系事务。
然而,如果在步骤308中,前面的事务是L/S对I/O或来自I/O的加载,在步骤312中确定是否后继的事务是对***存贮器的L/S或来自***存贮器的加载完成。如果是的,那末在步骤314中后续的事务被允许绕过前面的事务,方法300在步骤399结束。可是,若在步骤312中后继的事务不是对***存贮器的L/S,或者来自***存贮器的加载完成,那末在步骤316中,确定是否后继事务是eieio或Sync事务。如果在步骤316中,后继事务是eieio或Sync,那末在步骤318中方法300确定后继事务不允许绕过前面的对I/O的L/S或来自I/O的加载完成。然而,如果在步骤316中,后继事务不是eieio或sync事务,那末方法300在步骤320中确定是否后继事务是对***存贮器的DMA读。如果是的,那末在步骤314中确定后继事务可以绕过前面的事务,否则在步骤321中确定,是否后继事务是对***存贮器的DMA写,如果是的,在步骤324中,此事务必须被允许绕过,否则,在步骤322中确定是否后继事务是来自***存贮器的DMA读完成并且前面的事务不是加载完成。如果是的,在步骤324中确定必须允许绕过。如果,在步骤322中后继事务不是DMA读完成或前面的事务不是加载完成,那末,在步骤326中确定是否对等关系传送被允许。如不是,在步骤328中辨识后继事务或者是加载或者是存贮到I/O,否则,在步骤326中,如果对等关系的事务被允许,确定是否后继事务是加载或存贮到I/O。如果是的,或者,如果在步骤326中,已确定不允许对等关系的事务,和因此后继事务必须或者是加载或者是存贮到I/O,在步骤332中确定是否前面的L/S到I/O或来自I/O的加载完成以及后继的L/S到I/O是到相同的目的地地址。如果是的,在步骤318中确定不允许绕过。可是,如果目的地地址与步骤332中的不相同,在步骤314中确定可以允许绕过。
如果在步骤326中对等关系被允许,并且在步骤330中,后继的事务不是L/S到I/O,那末,在步骤334中确定是否后继事务是对I/O的DMA写或对***存贮器的DMA写。如果是的,确定在步骤324中必须允许绕过。可是,如果在步骤334中后继事务不是对I/O的DMA写或对***存贮器的DMA写,确定在步骤336中是否后继事务是对I/O的读请求。如果是的,对I/O的后继读请求可以绕过前面的对I/O的L/S或来自I/O的加载完成,步骤314。可是如果后继事务不是对I/O的读,方法300确定在步骤338中是否后继事务是来自I/O的DMA读完成和前面的事务,在步骤308中是来自I/O的加载完成,如果不是,在步骤340中确定,是否后继事务是对I/O的DMA读,然而若在步骤338中,后继事务是来自I/O的DMA读完成,在步骤308中前面事务是来自I/O的加载完成,那末在步骤314中可以允许绕过,如果,在步骤340中确定后继事务是对I/O的DMA读和在步骤342中,事务是到相同的目的地,那末前面的来自I/O的加载完成被后继的来自I/O的读完成绕过必须被允许,步骤324。否则,在步骤314中此事务被允许绕过。
回到步骤306,如果确定,前面的事务是对***存贮器的DMA操作或L/S,或者eieio或者sync,那末在步骤344中确定,是否后继事务是对***存贮器的DMA操作或加载或存贮。如果后继事务是对***存贮器的DMA操作或L/S,那末方法300,在步骤346中,按对***存贮器L/S和DMA事务排序的方法对事务排序,后述的方法描述在共同未决,共同指定的美国专利申请中,标题是“Apparatus and Method for FafricOrdering of Load/Store and Direct Memory Access Transactions,”引入于此作为参考。可是如果在步骤344中,后继事务不是对***存贮器的DMA操作或L/S操作,那末,在步骤346中确定,是否来自步骤306的前面事务是对***存贮器的L/S或来自***存贮器的加载完成。如果是的,在步骤348中确定是否对等关系的事务被允许。如果不是,那末方法300确定,在步骤350中是否后继事务或者是对I/O的加载或存贮,或者是来自I/O的加载完成,如果是的,在步骤314中确定前面的事务被后继的L/S或加载完成绕过可以被允许。如果不是,方法300回到步骤399。
否则,如果在步骤348中对等关系的事务被允许,在步骤352中确定,是否后继事务是对I/O的DMA写或对***存贮器的DMA写,如果是的,在步骤234中后继的对I/O或***存贮器的DMA写必须被允许绕过来自步骤346的前面的对***存贮器的L/S或来自***存贮器的加载完成。
然而,如果在步骤352中后继的事务不是对I/O或***存贮器的DMA写,那末在步骤354中确定,是否后继事务是对I/O的L/S或来自I/O的加载完成。如果是的,那末在步骤346,314中后继事务可被允许绕过前面的对***存贮器的L/S或来自***存贮器的加载完成。然而,如在步骤354中,后继的事务不是对I/O的L/S或来自I/O的加载完成,那末,在步骤356中确定是否后继的事务是对I/O的DMA读或来自I/O的DMA读完成,如果是的,后继的DMA读在步骤356中可被允许绕过,在步骤314中,前面的在步骤346中被确定的对***存贮器的L/S或来自***存贮器的加载完成。否则,方法300走到步骤399。
回到步骤346,如果确定前面的事务不是对***存贮器的L/S或来自***存贮器的加载完成,在步骤358中确定是否前面的事务是eieio或sync。如果是的,在步骤360中确定是否后继事务是对I/O的加载或存贮。如果是的,后继的对I/O的加载或存贮,在步骤318中不允许绕过前面的eieio或sync。否则,方法300在步骤362中辨识,后继事务是来自I/O的加载完成,并且在步骤314中前面的eieio或sync,来自步骤358,可允许被后继的来自步骤362的来自I/O的读完成绕过。
回到步骤358。如果前面的事务不是eieio或sync,那末在步骤364中,方法300辨识前面的事务是DMA***存贮器操作,并且在步骤366中确定是否后继的事务是来自I/O的读完成和前面的事务不是对***存贮器的DMA写,或者是否后继的事务是对I/O的L/S。如果是的,那末在步骤314中后继事务可被允许绕过前面的DMA***存贮器操作。否则,在步骤368中确定是否DMA对等关系的事务被允许。如果不是,在步骤370中,方法300辨识,后继事务是来自I/O的加载完成和前面事务是对***存贮器的DMA写,后继的来自I/O的加载完成不允许绕过前面的对***存贮器的DMA写,后继的来自I/O的加载完成不允许绕过前面的DMA写。这是因为前面的对***存贮器的DMA写在完成后继事务,即来自I/O的加载完成以前必须是完全地连贯的。
然而,如果在步骤368中DMA对等关系事务被允许,那末在步骤372中确定,是否前面的事务是对***存贮器的DMA读或来自***存贮器的DMA读完成并且后继事务或者是对I/O的DMA读或来自I/O的DMA读完成或者前面事务是对***存贮器的DMA写以及后继事务或者是对I/O的DMA读或写或来自I/O的DMA读完成。如果前面的和后继的事务满足这些条件组之一,那末在步骤314中,后继事务可被允许绕过前面的事务。如果在步骤372中,前面的和后继的事务被确定不满足这些条件组之一,那末在步骤374中方法300确定,是否后继事务是对***存贮器的DMA写或者来自I/O的加载完成,前面的事务是对***存贮器的DMA写。
如果后继的和前面的事务满足此条件,那末,在步骤318中,后继事务,或者是对***存贮器的DMA写或来自I/O的加载完成不允许绕过前面的对***存贮器的DMA写。否则,在步骤376中,方法300确定是否后继事务或者是对***存贮器的DMA写或者对I/O的DMA写并且在前面事务中的DMA或者是对***存贮器的DMA读请求或者是来自***存贮器的DMA读完成。如果是的,在步骤324中确定后继的事务或者是对***存贮器的DMA写或者是对I/O的DMA写必须允许绕过前面的DMA读请求或读完成,否则,方法300走到步骤399。
再次回到步骤306,如果前面的事务既不是DMA操作也不是对***存贮器的L/S或者eieio或sync,那末在步骤308中确定,是否前面事务是对I/O的L/S或者来自I/O的加载完成。来自步骤308的“是”通路在以上已描述过了。如果在步骤308中确定是否前面事务不是对I/O的L/S或者来自I/O的加载完成,那末方法300回到步骤310,并确定是否DMA对等关系事务被允许,如果不是,那末方法300对事务排序采用L/S和DMA对***存贮器的排序协议,描述在共同拥有,共同未决的美国专利申请中,标题是“Appratns and Method for Fafric Orderingfor Load/Store and Direct Memory Accecc Transactions”,引入于此作为参考。
然而,如果在步骤310中,DMA对等关系事务被允许,在步骤378中方法300辨识前面的事务是DMA对等关系的操作,其中,所有其它的可能性已在前面考虑过了。在步骤379中确定是否前面的事务是对I/O的DMA读或写。如果是的,在步骤381中确定,是否后继事务是来自***存贮器的DMA读完成。如果是的,在步骤324中,后继事务必须被允许绕过,否则方法走到步骤399,如果在步骤379中,无通路可取,则本方法进行到步骤380。然后在步骤380中确定,是否后继事务是对I/O或***存贮器的L/S,或者来自I/O或***存贮器的加载完成或eieio或sync事务,如果是的,在步骤382中进一步确定,是否后继事务是对***存贮器的加载,如果不是,在步骤314中前面的事务被后继的事务绕过被允许,后继的事务可以是对I/O的加载或存贮,或对***存贮器存贮,或者来自I/O或***存贮器的加载完成,或者eieio或sync,来自步骤380,然而,如果后继事务是对***存贮器的加载,那末进一步在步骤385中确定,是否前面和后继的事务是到不同的节点或目标I/O设备,如果是的,在步骤314中,对***存贮器的后继加载,在步骤382中,可被允许绕过前面的事务,否则,如果在步骤385中,后继的对***存贮器的加载是到与前面的事务相同的节点,那末在步骤318中,对***存贮器的后继的加载不允许绕过前面的事务,因为前面的事务必须在后继事务以前完成。
回到步骤380,如果后继事务不是对I/O或***存贮器的L/S,或来自I/O或***存贮器的加载完成,或者eieio或sync,那末在步骤384中确定是否前面的事务是对I/O的DMA读或来自I/O的DMA读完成。如果是的,在步骤386中确定是否后继事务是对***存贮器的DMA写,或者对I/O的DMA写。如果是的,那末在步骤324中确定后继事务必须被允许绕过前面的对I/O的DMA读,或者来自I/O的DMA读完成。如果在步骤386中,确定后继事务不是对***存贮器的DMA写,或来自***存贮器的DMA读完成,或对I/O的DMA写,在步骤387中确定是否前面的事务是来自I/O的DMA读完成。如果不是,方法300进行到步骤399。否则,在步骤383确定是否后继事务是来自***存贮器的DMA读完成。如果是的,前面的事务可以被绕过,步骤314。否则方法300在步骤399中结束。
如果在步骤384中前面的事务不是对I/O的DMA读或者来自I/O的DMA读完成,在步骤388中确定是否后继事务是来自I/O的DMA读完成。如果是的,在步骤389中,方法300确定是否前面的事务是对I/O的DMA写或对I/O的DMA读,如果是的,在步骤324中确定后继的来自I/O的DMA读完成,步骤389,必须被允许绕过前面的步骤389中的DMA事务。然而如果在步骤389中前面事务不是对I/O的DMA写或对I/O的DMA读,方法300辨认,在步骤390中,前面的事务是来自I/O的DMA读完成,并且在步骤314中确定,后继的来自I/O的DMA读完成,步骤388,可以被允许绕过前面的来自I/O的DMA读完成。
然而,如果在步骤388中确定,后继的事务不是来自I/O的DMA读完成,在步骤391中确定,是否前面的事务是对I/O的DMA写,如果不是,在步骤392中,方法300辨认前面的事务必须是对I/O的DMA读或来自I/O的DMA读完成,通过步骤386到达步骤392,后继事务必须是对I/O的DMA读或对***存贮器的DMA读。然后,在步骤314中,后继的对I/O的DMA读或对***存贮器的DMA读可被允许绕过前面的对I/O的DMA读或来自I/O的DMA读完成。
可是若在步骤391中前面的事务是对I/O的DMA写,那末在步骤393中确定是否后继事务是对I/O的DMA读或写,如果不是,那末辨认后继事务是对***存贮器的读或写,步骤394,和在步骤314中后继的对***存贮器的DMA读或写可以被允许绕过前面的对I/O的DMA写。
可是如在步骤393中确定后继事务是对I/O的读或写,在步骤395中进一步确定是否后继事务是对I/O的DMA写。如果是的,后继的对I/O的DMA写不允许绕过前面的对I/O的DMA写,步骤318。然而,如果在步骤395中后继事务不是对I/O的DMA写。那末,在步骤396中辨认后继事务必须是对I/O的DMA读。那末,在步骤385中确定是否后继的对I/O的DMA读和前面的对I/O的DMA写,来自步骤391,是到不同的节点或目标I/O设备。如果是的,那末在步骤314中,后继的DMA读可被允许绕过前面的DMA写。然而,如果在步骤385中,后继的DMA读是与前面的DMA写到相同的节点或目标I/O设备,那末后继的DMA读必须不绕过前面的DMA写,步骤318,那末方法300在步骤399中结束。
可将方法300实施的排序协议扼要叙述在图4的表中。在图4中的表规定了事务对的组,这些组按表中相应的入口指明的顺序排序,其中“A”指明前面的/后继的事务,其中后继事务可被允许绕过前面的事务,“Y”指明后继事务必须被允许绕过前面的事务,和“N”指明后继事务一定不允许绕过前面的前务。
本发明提供一种机构,用于在多节点,NUMA/COMA数据处理环境中编织器桥。在包括在编织器桥中的状态机构的控制下,通过桥交换的节点之间的事务可依据由状态机构执行的方法排序。桥对由桥传递的事务排序,使得连接性要求被保持,死锁被避免。

Claims (30)

1.一种数据处理***包括:
一个编织器桥,用于在所述的数据处理***中的节点之间传递事务,所述的编织器桥用于控制所述的节点之间事务的顺序,其中所述的编织器桥确定前面事务与后继事务的排序,所述的排序就是所述的后继事务可被允许绕过,必须允许绕过,和必须不允许绕过所述的前面事务之中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载/存贮(L/S),和直接存贮器存取(DMA)对等关系的事务。
2.根据权利要求1的数据处理***,其中所述的排序是当所述的第一和第二事务分别处于第一,第二和第三预先规定的事务对组时,所述的后继事务可被允许绕过,所述的后继事务必须被允许绕过,和所述的后继事务必须不允许绕过。
3.根据权利要求1的数据处理***,其中所述的编织桥依据预定的协议确定所述的事务排序。
4.根据权利要求2的数据处理***,其中所述的第一、第二和第三组是依据预定的协议确定的。
5.根据权利要求1的数据处理***,其中所述的编织器桥进一步包括:
控制电路,用于控制所述节点之间事务的顺序,所述的控制电路确定所述的前面事务和所述的后继事务的排序。
6.根据权利要求5的数据处理***,其中所述的控制电路包括一个状态机构,所述的状态机构依据一种预定的协议确定所述的前面事务和所述的后继事务的排序。
7.根据权利要求5的数据处理***进一步包括至少一个缓冲器,用于存贮事务信息,所述的缓冲器对来自所述的控制电路的信号作出响应传送事务信息。
8.根据权利要求1的数据处理***,其中所述的事务序列进一步包括对***存贮器的直接存贮器存取(DMA)和对***存贮器的加载/存贮。
9.根据权利要求8的数据处理***,其中所述的事务序列还包括eieio和sync事务。
10.根据权利要求1的数据处理***还包括中央处理单元(CPU),连接到所述编织器桥,每个CPU用于产生所述的事务序列的一个或多个事务。
11.一种在数据处理***中的节点之间传递事务的方法包括以下步骤:
通过确定前面事务和后继事务的排序控制所述节点之间事务的顺序,所述的排序是所述的后继事务可被允许绕过所述的前面事务,必须被允许绕过所述的前面事务,和必须不允许绕过前面事务中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载/存贮(L/S),和直接存贮器存取(DMA)对等关系的事务。
12.根据权利要求11的方法,其中所述的排序是当所述的第一和第二事务分别处于第一、第二和第三预定的事务对组时,所述的后继事务可被允许绕过,所述的后继事务必须被允许绕过,和所述的后继事务必须不允许绕过前面的事务。
13.根据权利要求11的方法,其中所述的事务排序是依据预定的协议确定的。
14.根据权利要求12的方法,其中所述的第一,第二和第三组是依据预定的协议确定的。
15.根据权利要求11的方法,其中控制所述的事务顺序的步骤包括提供控制电路,用于控制所述的节点之间的事务顺序,所述的控制电路确定所述的前面事务和所述的后继事务的排序。
16.根据权利要求15的方法,其中所述的控制电路包括一个状态机构,所述的状态机构依据预定的协议确定所述的前面事务和所述的后继事务的排序。
17.根据权利要求15的方法,其中控制所述的事务顺序的步骤进一步包括:
提供至少一个缓冲器,用于存贮事务信息,和对来自所述的控制电路的信号作出响应,通过所述的缓冲器传递事务信息。
18.根据权利要求11的方法,其中所述的事务序列进一步包括对***存贮器的直接存贮器存取(DMA)和对***存贮器的加载/存贮。
19.根据权利要求18的方法,其中所述的事务序列还包括eieio和sync指令。
20.根据权利要求11的方法,其中所述的事务序列包括进一步或多个中央处理单元(CPU)产生的事务。
21.一种计算机程序产品,用于在程序存贮媒介上存贮,程序产品用于在数据处理***中的节点之间传递事务,程序产品包括:
通过确定前面事务和后继事务的排序,编程控制所述的节点之间事务的顺序,所述的排序是所述的后继事务可被允许绕过前面事务,必须被允许绕过和必须不允许绕过前面事务中的一种,其中所述的事务序列包括对输入/输出(I/O)设备的加载/存贮(L/S),和直接存贮器(DMA)对等关系事务。
22.根据权利要求21的程序产品,其中所述的排序是当所述的第一和第二事务分别是第一、第二和第三预定的事务对组之一时,所述的后继事务可被允许绕过,所述的后继事务必须被允许绕过,和所述的后继事务必须不允许被绕过,所述的前面事务。
23.根据权利要求21的程序产品,其中所述的事务排序依据预定协议确定。
24.根据权利要求22的程序产品,其中所述的第一,第二和第三组是依据预定协议确定的。
25.根据权利要求21的程序产品,其中所述的用于控制所述的事务顺序的编程包括对控制所述的节点之间的事务顺序的控制电路编程,所述的控制电路对所述的编程作出响应确定所述的前面事务和所述的后继事务的排序。
26.根据权利要求25的程序产品,其中所述的控制电路包括状态机构,所述的状态机构对所述的编程作出响应,依据预定的协议确定所述的前面事务和所述的后继事务的排序。
27.根据权利要求25的程序产品,其中对所述的控制事务顺序的编程进一步包括:
对控制至少一个用于存贮事务信息的缓冲器的编程;和
对来自所述的控制电路的信号作出响应通过所述的缓冲器传递事务信息编程。
28.根据权利要求21的程序产品,其中所述的事务序列进一步包括对***存贮器的直接存贮器存取(DMA)和对***存贮器的加载/存贮。
29.根据权利要求28的程序产品,其中所述的事务序列还包括eieio和sync指令。
30.根据权利要求21的程序产品,其中所述的事务序列包括由一个或多个中央处理单元(CPU)产生的事务。
CNB991247671A 1998-12-28 1999-12-09 用于编织排序的设备和方法 Expired - Lifetime CN1135479C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/221,936 1998-12-28
US09/221936 1998-12-28
US09/221,936 US6347349B1 (en) 1998-12-28 1998-12-28 System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction

Publications (2)

Publication Number Publication Date
CN1259702A true CN1259702A (zh) 2000-07-12
CN1135479C CN1135479C (zh) 2004-01-21

Family

ID=22830047

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991247671A Expired - Lifetime CN1135479C (zh) 1998-12-28 1999-12-09 用于编织排序的设备和方法

Country Status (6)

Country Link
US (1) US6347349B1 (zh)
CN (1) CN1135479C (zh)
HK (1) HK1028831A1 (zh)
MY (1) MY124338A (zh)
SG (1) SG87866A1 (zh)
TW (1) TW460787B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375038C (zh) * 2004-12-21 2008-03-12 国际商业机器公司 重定序两阶段提交中的资源的最后代理优化方法和***
CN101916236A (zh) * 2008-09-30 2010-12-15 英特尔公司 为邮递性中断事务提供留存机构
CN101341474B (zh) * 2005-12-22 2012-02-08 Arm有限公司 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法
CN101652761B (zh) * 2007-04-11 2012-12-12 微软公司 使用缓存写和强制串行化次序的事务存储器

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US7077838B2 (en) 2002-05-30 2006-07-18 Visx, Incorporated Variable repetition rate firing scheme for refractive laser systems
US7529875B2 (en) * 2003-08-20 2009-05-05 International Business Machines Corporation Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system
US7725618B2 (en) * 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
US7386642B2 (en) 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US8832403B2 (en) * 2009-11-13 2014-09-09 International Business Machines Corporation Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses
US11030102B2 (en) * 2018-09-07 2021-06-08 Apple Inc. Reducing memory cache control command hops on a fabric

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5664223A (en) 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5805924A (en) 1994-11-08 1998-09-08 Stoevhase; Bent Method and apparatus for configuring fabrics within a fibre channel system
US5694556A (en) 1995-06-07 1997-12-02 International Business Machines Corporation Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US5610745A (en) 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5887138A (en) 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375038C (zh) * 2004-12-21 2008-03-12 国际商业机器公司 重定序两阶段提交中的资源的最后代理优化方法和***
CN101341474B (zh) * 2005-12-22 2012-02-08 Arm有限公司 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法
CN101652761B (zh) * 2007-04-11 2012-12-12 微软公司 使用缓存写和强制串行化次序的事务存储器
CN101916236A (zh) * 2008-09-30 2010-12-15 英特尔公司 为邮递性中断事务提供留存机构
CN101916236B (zh) * 2008-09-30 2013-06-26 英特尔公司 为邮递性中断事务提供留存机构的方法、装置和***

Also Published As

Publication number Publication date
SG87866A1 (en) 2002-04-16
HK1028831A1 (en) 2001-03-02
US6347349B1 (en) 2002-02-12
MY124338A (en) 2006-06-30
CN1135479C (zh) 2004-01-21
TW460787B (en) 2001-10-21

Similar Documents

Publication Publication Date Title
CN1135479C (zh) 用于编织排序的设备和方法
US5043873A (en) Method of parallel processing for avoiding competition control problems and data up dating problems common in shared memory systems
US4707784A (en) Prioritized secondary use of a cache with simultaneous access
AU628529B2 (en) Method and means for arbitrating communication requests using a system control unit in a multi-processor system
US6351784B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US5301279A (en) Apparatus for conditioning priority arbitration
US4080651A (en) Memory control processor
CN1047245C (zh) 采用独立存取中间存储器的超标量处理器***中加强指令调度的方法和***
CN1045024C (zh) 在超标量处理机***中提高指令调度效率的方法
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
KR100925572B1 (ko) 상이한 길이의 캐시 위치 내의 캐시 코히어런시를 위한시스템, 방법, 프로세스 및 장치
CN1048459A (zh) 数字数据处理***高速缓冲存储器内容的失效标记
US4080652A (en) Data processing system
US4126893A (en) Interrupt request controller for data processing system
JP2501419B2 (ja) 多重プロセッサメモリシステム及びメモリ参照競合解決方法
CN1271540C (zh) 用于在对称多处理器***中发送分组的方法和装置
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US6243762B1 (en) Methods and apparatus for data access and program generation on a multiprocessing computer
CN1171144C (zh) 可以跟踪不按序操作期间异常的数据处理***及方法
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
US5465369A (en) Network structure for parallel software processing
US5848411A (en) Method for distributedly processing a plurality of jobs in a data processing system
EP0587370A1 (en) Method and apparatus for software sharing between multiple controllers
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
CN100538665C (zh) 多处理器***、***板和高速缓存替换请求处理方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20040121