CN101506783A - 用于阻隔操作的条件式广播的方法和设备 - Google Patents

用于阻隔操作的条件式广播的方法和设备 Download PDF

Info

Publication number
CN101506783A
CN101506783A CNA2007800318173A CN200780031817A CN101506783A CN 101506783 A CN101506783 A CN 101506783A CN A2007800318173 A CNA2007800318173 A CN A2007800318173A CN 200780031817 A CN200780031817 A CN 200780031817A CN 101506783 A CN101506783 A CN 101506783A
Authority
CN
China
Prior art keywords
data transfer
slave unit
bus transaction
bus
register
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
CNA2007800318173A
Other languages
English (en)
Other versions
CN101506783B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101506783A publication Critical patent/CN101506783A/zh
Application granted granted Critical
Publication of CN101506783B publication Critical patent/CN101506783B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/14Handling requests for interconnection or transfer
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Small-Scale Networks (AREA)

Abstract

一种弱有序处理系统实施执行同步总线事务或“存储器阻隔”总线事务,以强制实施强有序数据转移总线事务。确保全域可观测性的从属装置可“选择退出”存储器阻隔协议。在各种实施例中,选择退出决策可通过每一从属装置断言一信号而动态地做出,可通过轮询所述从属装置并在全域可观测性寄存器中设置对应的位来在开机自我测试(POST)期间在系统范围内设置,或者所述选择退出决策可由系统设计者硬连线,使得只有能够执行无序数据转移操作的从属装置才参与所述存储器阻隔协议。

Description

用于阻隔操作的条件式广播的方法和设备
技术领域
本发明大体上涉及计算机领域,且明确地说,涉及一种用于有条件地广播存储器阻隔总线操作的方法和设备。
背景技术
计算机和其它电子系统和装置在许多应用中执行计算任务。这些系统和装置通常通过整合多种独立的、特定功能电路或模块(例如处理器、数学协处理器、视频与图形引擎、DMA控制器、GPS接收器、专用压缩或加密电路等)而越来越多地整合超出直接计算的功能性。此些装置与存储器之间以及所述装置自身之间的高带宽数据转移对于实现所需等级的性能来说是关键的。数据通信总线是众所周知的结构,其在处理系统中的装置或模块之间提供共享通信链路。
共享总线上的装置的常见逻辑二分包括“主”装置和“从属”装置。主装置起始总线事务,且通常为接入所述总线且在一些系统中为总线带宽的共享而在其自身之间进行仲裁。从属装置响应由主装置起始的数据转移总线事务,从而响应于写入总线事务而从主装置接受数据,并响应于读取总线事务而向主装置提供数据。大多数从属装置以对应的总线事务在共享总线上发生的次序来执行数据转移操作。
在许多情况下,可通过允许数据转移操作(例如,存储器存取)无序执行来优化系统性能。举例来说,可对存储器操作序列重新排序以允许对存储器中同一页的所有操作在打开新页之前被执行。允许对存储器操作重新排序的处理系统通常被称为“弱有序”处理系统。
相反,要求存储器操作看似以与其对应的总线事务相同的次序执行的处理系统被称为“强有序”处理系统。应注意,强有序系统中的从属装置实际上可不按照总线事务次序来执行存储器操作,只要存储器状态在任何时间对处理器来说看似存储器操作已经按序执行。此特性被称为“全域可观测性”。总是以接收的次序执行数据转移操作的简单从属装置本质上是全域可观测的。可无序执行数据转移操作的其它从属装置“窥探”数据转移操作地址,并以总线事务次序向相同地址执行数据转移操作。这些类型的从属装置也是全域可观测的。不考虑总线事务次序而执行数据转移操作的从属装置不是全域可观测的。
在一些情况下,即使在弱有序处理系统中,也必须强制实施数据转移操作次序以确保正确的操作。举例来说,应用可能要求处理器在所述处理器从存储器位置进行读取之前将数据写入到存储器。重新排序这些操作将导致在读取操作中返回不正确的数据。
在弱有序处理系统中,已使用各种常规技术来执行经排序的数据转移操作。一种技术仅仅是延迟特定数据转移总线事务,直到在其之前的所有数据转移操作均被执行为止。在先前实例中,处理器可延迟发出读取请求,直到其接收到保证写入操作数据已被写入到存储器位置的指示为止。强制实施数据转移操作排序的暂停程序执行对性能明显具有负面影响。
用于在弱有序处理系统中执行经排序的数据转移操作的另一种技术是将执行同步总线事务界定为总线协议的一部分,也称为“存储器阻隔”。存储器阻隔是总线事务,其确保在存储器阻隔发出之前由主装置发出的所有数据转移总线事务均在所述存储器阻隔之后由主装置发出的任何数据转移总线事务之前被执行或看似已经被执行。任何存储器阻隔均为不涉及主装置与从属装置之间的任何数据转移的总线事务。存储器阻隔操作可由主装置明确地起始。或者,或另外,存储器阻隔操作可由总线控制器响应于由主装置起始的强有序数据转移操作而产生。在先前实例中,存储器阻隔事务可由处理器在发出读取总线事务之前发出。存储器阻隔将确保写入操作(以及任何其它先前发出的数据转移操作)在读取操作被执行之前执行。2005年10月19日申请的第11/253,307号共同待决美国专利申请案“在弱有序处理系统中强制实施强有序请求(EnforcingStrongly-Ordered Requests In A Weakly-Ordered Processing System)”中描述存储器阻隔,所述专利申请案转让给本申请案的受让人,且以全文引用的方式并入本文中。
存储器阻隔在具有多个从属装置的处理系统中可能是低效的。在此些系统中,为了强制实施排序约束,必须将存储器阻隔事务传播到可由发出强有序数据转移总线事务或存储器阻隔操作的主装置接入的每个从属装置。在强有序数据转移总线事务或存储器阻隔操作之后的总线事务被发出之前,必须从所述从属装置中的每一者接收存储器阻隔的肯定应答。因此,存储器阻隔所强加的延迟由将响应的最缓慢的从属装置确定。这可能不利地影响性能,特别是在较缓慢的从属装置不考虑存储器阻隔而以总线事务次序执行数据转移操作的情况下。
2005年10月20日申请的第11/254,939号共同待决美国专利申请案“在弱有序处理系统中强制实施强有序请求时使存储器阻隔减到最小(Minimizing Memory BarriersWhen Enforcing Strongly-Ordered Requests in a Weakly-Ordered Processing System)”揭示一种动态地使存储器阻隔减到最小的系统和方法,所述专利申请案转让给本申请案的受让人,且以全文引用的方式并入本文中。与每一从属装置相关联的状态寄存器在每主装置基础上指示从属装置当前是否具有来自所述从属装置可从其接收数据转移总线事务的每一主装置的待决(未执行)数据转移操作。如果特定从属装置指示其不具有来自特定主装置的任何待决数据转移操作,那么不需要将来自所述主装置的存储器阻隔传播到所述从属装置。以此方式,仅在有必要强制实施总线事务排序的情况下传播存储器阻隔。即,存储器阻隔仅导向具有来自需要强有序数据转移总线事务或存储器阻隔操作的主装置的待决(先前发出的)数据转移操作的从属装置。
大多数常规系统均包含至少一些固有地提供全域可观测性的从属装置。关于此些从属装置,无需为了确定是否使存储器阻隔事务导向从属装置而动态地监视所述从属装置是否具有来自特定主装置的待决数据转移操作。
发明内容
根据本文所揭示的一个或一个以上实施例,确保全域可观测性的从属装置许多“选择退出”存储器阻隔协议。在各种实施例中,选择退出决策可通过每一从属装置断言一信号而动态地做出,可通过轮询从属装置中的状态寄存器以查实其全域可观测性而在开机自我测试(POST)期间在系统范围内设置,可由软件设置,或者所述选择退出决策可由系统设计者硬连线,使得只有能够执行无序数据转移操作的从属装置才参与所述存储器阻隔协议。此选择退出决策通过仅视需要将存储器阻隔操作传播到从属装置来改进系统性能并降低功率消耗,从而消除了与来自全域可观测的从属装置的存储器阻隔肯定应答相关联的延迟。
一个实施例涉及一种弱有序处理系统。所述系统包含多个从属装置以及两个或两个以上主装置,每一主装置经配置以使数据转移总线事务导向一个或一个以上从属装置。所述系统进一步包含总线互连件,所述总线互连件经配置以在主装置与从属装置之间实施数据转移总线事务,且进一步经配置以响应于来自主装置的强有序数据转移总线事务请求而使执行同步总线事务导向并非全域可观测的一个或一个以上从属装置。
另一实施例涉及一种总线互连件,所述总线互连件操作以使数据转移总线事务从弱有序处理系统的一个或一个以上主装置导向两个或两个以上从属装置。所述总线互连件包含:总线寄存器,其操作以使数据转移总线事务请求排成队列;以及控制器,其操作以控制数据转移总线事务从总线寄存器的发出,并进一步操作以响应于来自主装置的强有序数据转移总线事务请求而向并非全域可观测的一个或一个以上从属装置发出执行同步总线事务。
又一实施例涉及一种在弱有序处理系统中执行强有序数据转移总线事务的方法,所述弱有序处理系统包含一个或一个以上主装置以及两个或两个以上从属装置。维持所述从属装置中的哪些具全域可观测性的指示。响应于来自主装置的强有序数据转移总线事务请求而向并非全域可观测的一个或一个以上从属装置发出执行同步总线事务。
附图说明
图1是弱有序处理系统的功能框图;
图2是弱有序处理系统中的总线互连件的功能框图;
图3是用于弱有序处理系统的总线互连件中的控制器的一个实施例的功能框图;以及
图4是用于弱有序处理系统的总线互连件中的控制器的另一实施例的功能框图。
具体实施方式
下文结合所附图式而陈述的具体实施方式意在作为本发明的各种实施例的描述,且无意表示本发明可在其中实践的仅有实施例。明确地说,出于阐释的目的,相对于包括向两个或两个以上存储器控制器发出存储器存取请求的一个或一个以上处理器以及一总线互连件的处理系统而描述实施例。然而,本发明适用于在共享总线系统中向从属装置发出数据转移总线事务的任何主装置,且不限于处理器和存储器控制器。
图1是弱有序处理系统的功能框图。可在计算机或其它计算系统(包含便携式电子装置、嵌入式系统、分布式系统等)中安置处理系统100。可将处理系统100实施为集成电路、离散组件或其任一组合。图1中仅描绘处理系统100的为阐释本发明的实施例所需的那些部分。所属领域的技术人员将认识到如何针对每一特定应用最好地实施处理系统100。
如图1中所描绘,处理系统100包含经由共享总线106与存储器装置104a到104c通信的处理器102a到102c。任何特定应用所需的处理器和存储器装置的实际数目可视所需的计算能力和总设计约束而有所不同。总线互连件108可用于使用点到点切换连接来管理处理器102a到102c与存储器装置104a到104c之间的总线事务。在总线互连件108的至少一个实施例中,可提供多个直接链路以允许两个或两个以上总线事务同时发生。
处理器102a到102c中的一者或一者以上可经配置以在操作系统或其它软件的控制下执行指令。所述指令可驻存在存储器装置104a到104c的一者或一者以上中。数据也可存储在存储器装置104a到104c中,并由处理器102a到102c检索以执行某些指令。从执行这些指令产生的新数据可回写到存储器装置104a到104c中。每一存储器装置104a到104c可包含存储器控制器(未图示)和存储媒体(未图示),如此项技术中已知。
每一处理器102a到102c可在总线106上具备用于与总线互连件108通信的专用信道106a到106c。类似地,总线互连件108可使用总线上的专用信道106d到106f与每一存储器装置104a到104c通信。作为实例,第一处理器102a可通过经由其在总线106上的专用信道106a发送数据转移总线事务请求来存取目标存储器装置104b。总线互连件108根据数据转移总线事务请求的地址确定目标存储器装置104b,并经由总线106上的适当信道106e向目标存储器装置104b发出数据转移总线事务。数据转移总线事务可以是写入事务、读取事务或任何其它与数据转移有关的总线事务。发端处理器102a到102c可通过将适当的地址与有效负载放置在总线106上并断言写入启用信号来向目标存储器装置104a到104c发出写入事务。发端处理器102a到102c可通过将适当的地址放置在总线106上并断言读取启用信号来向目标存储器装置104a到104c发出读取事务。响应于读取请求,目标存储器装置104a到104c将把有效负载发回到发端处理器102a到102c。发端处理器102a到102c还可发出非数据转移总线事务的总线事务,例如存储器阻隔事务。
在处理系统100的至少一个实施例中,处理器102a到102c可将属性与每一存储器存取请求一起传输。所述属性可以是描述数据转移总线事务的性质的任何参数。所述属性可经由地址信道与地址一起传输。或者,可使用旁带信令或某一其它方法来传输所述属性。所述属性可用以指示数据转移总线事务请求是否为强有序的。“强有序”请求指代不能无序执行的数据转移总线事务请求。
总线互连件108可监视来自处理器102a到102c的每一数据转移总线事务请求的属性。如果属性指示强有序数据转移总线事务请求,那么总线互连件108可对去往接受来自主装置的总线事务且能够无序执行数据转移总线事务的每一从属装置(强有序数据转移总线事务所导向的从属装置除外)的事务强制实施排序约束。作为实例,从第一处理器102a到目标存储器装置104a的数据转移总线事务请求可包含属性。总线互连件108可根据所述属性来确定事务是否为强有序的。如果总线互连件108确定所述事务是强有序的,那么除目标存储器装置104a之外,总线互连件108向第一处理器102a能够存取的且可不按照总线事务次序执行数据转移总线事务的每个存储器装置104b和104c发送存储器阻隔。总线互连件108还在无存储器阻隔的情况下向目标存储器104a发送强有序数据转移总线事务,因为目标存储器装置104a由于与数据转移总线事务相关联的属性的缘故而将隐含地将所述存储器阻隔处理为强有序请求。或者,处理器102a可在发出强有序数据转移总线事务之前发出存储器阻隔总线事务。
图2是说明弱有序处理系统中的总线互连件108的实例的功能框图。实际实施总线互连件的方式将视设计考虑因素而定。所属领域的技术人员将认识到各种设计的可互换性,以及如何针对每一特定应用而最好地实施本文中所描述的功能性。
参看图2,总线寄存器202可用以接收并存储来自总线106的信息。总线寄存器202可以是任何类型的存储装置,例如先入先出(First-In-First-Out,FIFO)存储器或其它合适存储装置。由总线寄存器202接收并存储的信息可以是任何总线相关信息,但更具体地说可包含每一数据转移总线事务请求的地址和属性,且在写入操作的情况下,可包含有效负载。总线寄存器202还可存储非数据转移总线事务(例如由主装置发出的存储器阻隔操作)情况下的属性。还向解码器204提供每一数据转移总线事务请求的地址。解码器204可用以为总线寄存器202中的每一数据转移总线事务请求确定目标存储器装置。此确定用以控制总线开关206。总线开关206用以将每一数据转移总线事务从总线寄存器202多路分用到总线106的适当信道以到达其目标存储器装置。控制器208可用以控制数据转移总线事务从总线寄存器202释放的时序。
图3是用于弱有序处理系统的总线互连件108中的控制器208的一个实施例的功能框图。控制器208基于其从解码器204接收到的信息而对存储器操作强制实施排序约束。所述信息可包含每一总线事务的属性,其可存储在第一输入寄存器302中。所述信息还可包含识别发端处理器能够存取的除目标存储器装置之外的每一存储器装置的数据。可由每一处理器存取的特定存储器装置在设计阶段期间被预先配置,且因此可被编程或硬连线到解码器204中。在任何情况下,第二输入寄存器304可用以存储此信息。第一输入寄存器302和第二输入寄存器304可为分离的寄存器(如图3中所示),或替代地为单个寄存器。在控制器208的一些实施例中,来自解码器204的信息可存储在与其它总线互连功能共享的寄存器中。每一寄存器可以是FIFO或任何其它合适存储媒体。
控制器208通过控制数据转移总线事务从总线寄存器202释放的时序而对数据转移操作强制实施排序约束。首先将结合指示强有序存储器数据转移总线事务准备好从总线寄存器202释放的属性而描述所述过程。在此情况下,从第一输入寄存器302向存储器阻隔产生器306提供所述属性作为启用信号。同时,向存储器阻隔产生器306的输入端提供存储在第二输入寄存器304中的数据。如上文所指示,存储在第二输入寄存器304中的数据包含识别发端处理器能够存取的除目标存储器装置之外的每一存储器装置的数据。当存储器阻隔产生器306由所述属性启用时,此信息用以为所述数据所识别的每一存储器装置产生存储器阻隔。可通过发出导向所识别的存储器装置的存储器阻隔事务来向适当的存储器装置提供每一存储器阻隔,以及识别起始强有序请求的发端处理器的属性。或者,可使用旁带信令或通过其它合适方法向适当的存储器装置提供存储器阻隔。存储器阻隔产生器306还可响应于来自主装置的存储器阻隔总线事务请求而产生存储器阻隔总线事务,其也以与上文所描述的方式类似的方式存储在总线寄存器202中。
根据一个或一个以上实施例,存储器阻隔产生器306可用以抑制不必要的存储器阻隔。举例来说,如果存储器装置固有地是全域可观测的,那么可由发端处理器存取的存储器装置的存储器阻隔是多余的且可被抑制。可以许多方式来识别全域可观测的从属装置。
在控制器208的一个实施例中,逻辑全域可观测性寄存器307针对系统中的每个从属装置包含一个位。全域可观测性寄存器位的状态指示相关联的从属装置是否为全域可观测的,且因此可免于存储器阻隔事务。全域可观测性寄存器307是存储器阻隔产生器306的输入。全域可观测性寄存器307可包括由系统软件在开机自我测试(Power On SelfTest,POST)期间在轮询从属装置以相对于总线事务的全域可观测性而查实所述从属装置的行为和能力(例如通过对相应从属装置内的配置状态寄存器(CSR)进行读取)之后设置的物理寄存器。
在一个实施例(其在ASIC或芯片上系统(System On Chip,SOC)环境中可能特别有利)中,逻辑全域可观测性寄存器307的一个或一个以上位可由设计者硬连线到指示对应从属装置的已知全域可观测性的预定状态。这可降低POST软件的复杂性且减少POST软件的执行时间。
在另一实施例中,逻辑全域可观测性寄存器307的一个或一个以上位可包括来自从属装置的动态二进制信号。这允许所述从属装置指示全域可观测性的周期。举例来说,从属装置可在缓冲器中使数据转移操作排成队列,且不按照总线事务次序来执行所述操作。当待决数据转移操作驻存在所述缓冲器中时,从属装置会指示缺少全域可观测性,因此如果处理器发出强有序数据转移总线事务或存储器阻隔操作,那么要求存储器阻隔总线事务导向所述从属装置。然而,如果缓冲器为空,那么从属装置可保证至少下一个发生的数据转移总线事务的全域可观测性(即,从属装置保证先前向其发出的所有数据转移操作均已被执行)。在此情况下,从属装置可经由二进制信号来指示其不需接收存储器阻隔事务,且只要其缓冲器为空就可维持此指示。
在任何给定实施方案中,逻辑全域可观测性寄存器307可按照特定应用中所要求或需要而包括由系统软件、经硬连线的位或来自从属装置的动态信号设置的一个或一个以上物理寄存器的任何混合。
参看图1到图3,现将提供实例以说明全域可观测性寄存器位可用以抑制存储器阻隔的方式。在此实例中,处理系统可经配置以使得第一处理器102a可存取第一、第二和第三存储器装置104a、104b、104c。当强有序数据转移总线事务由第一处理器102a向第一存储器装置104a发出时(或者替代地当第一处理器102a所发出的存储器阻隔操作位于总线寄存器202的输出端处时),来自第一输入寄存器302的对应属性启用存储器阻隔产生器306。从第二输入寄存器304向存储器阻隔产生器306提供的数据识别第一处理器104a可存取的除目标存储器装置之外的存储器装置。在此情况下,所述数据识别第二存储器装置104b和第三存储器装置104c。存储器阻隔产生器306检查逻辑全域可观测性寄存器307中对应于第二存储器装置104b和第三存储器装置104c的位307b、307c,以确定存储器装置104b、104c中的任一者是否为全域可观测的。在此实例中,位307b指示全域可观测性,且位307c不指示全域可观测性。因此,存储器阻隔总线事务被发出到第三存储器装置104c,且去往第二存储器装置104b的存储器阻隔被抑制。
返回到图3,控制器208中的逻辑308可用以针对存储器阻隔肯定应答而监视来自存储器装置的反馈。“存储器阻隔肯定应答”使来自存储器装置的信号,其指示来自需要强有序数据转移总线事务或发出存储器阻隔操作的处理器的每个数据转移操作(其先于存储器阻隔)均已被执行。逻辑308使用来自第二输入寄存器304的数据和逻辑全域可观测性寄存器307的位来确定应针对存储器阻隔肯定应答监视哪些存储器装置。当逻辑308确定已接收到所有必要的存储器阻隔肯定应答时,逻辑308产生用以使对应的数据转移总线事务从总线寄存器202释放的触发(或如果存储器阻隔操作直接由主装置发出,那么产生下一个待决数据转移总线事务)。更具体地说,向选择多路复用器310的输入端提供来自第一输入寄存器302的属性。多路复用器310用以在所述属性指示数据转移总线事务为强有序的时,将逻辑308所产生的触发耦合到总线寄存器202。从多路复用器310输出的释放信号也耦合到解码器,以使总线开关206(见图2)的时序同步。
一旦数据转移总线事务从总线寄存器释放,所述数据转移总线事务就经过总线开关206(见图2)而路由到目标存储器装置。控制器208中的第二多路复用器312可用以在指示强有序数据转移总线事务或主装置发出的存储器阻隔操作的属性被应用于选择输入时,延迟从第一寄存器302和第二寄存器304释放数据,直到从目标存储器装置接收到数据转移肯定应答为止。如上文所论述,总线事务中所包含的属性对目标存储器装置强制实施排序约束。即,目标存储器装置在执行强有序数据转移操作之前,执行由发端处理器发出的所有未解决的数据转移操作。数据转移肯定应答由目标存储器装置在执行强有序数据转移操作后产生。将数据转移肯定应答反馈到控制器208中的多路复用器312,在多路复用器312处,所述数据转移肯定应答用以产生触发以从第一寄存器302和第二寄存器304释放对应于总线寄存器202中的下一个数据转移总线事务的新数据。如果所述新数据包含指示总线寄存器202中的对应数据转移总线事务为强有序的属性,或包括主装置发出的存储器阻隔操作,那么重复相同的过程。否则,数据转移总线事务可立即从总线寄存器202释放。
控制器208经配置以在第一输入寄存器302中的对应属性指示请求并非强有序的或并非主装置发出的存储器阻隔操作时,立即使数据转移总线事务从总线寄存器202释放。在所述情况下,所述属性停用存储器阻隔产生器306。此外,所述属性迫使多路复用器310进入将内部产生的触发耦合到总线寄存器202以释放数据转移总线事务的状态。数据转移总线事务从总线寄存器202释放,且经过总线开关206(见图2)而耦合到目标存储器装置。对应于下一个数据转移总线事务的数据接着通过从控制器208中的第二多路复用器312输出的内部产生的触发,而从第一寄存器302和第二寄存器304释放。
图4是说明用于弱有序处理系统的总线互连件中的控制器的另一实施例的功能框图。在此实施例中,强有序数据转移总线事务通过控制器208从总线寄存器202释放,同时存储器阻隔被提供到适当的存储器装置。更具体地说,第一输入寄存器302用以向存储器阻隔产生器306提供数据转移总线事务的属性。如果所述属性指示对应的数据转移总线事务是强有序的,那么存储器阻隔产生器306被启用。当存储器阻隔产生器306被启用时,来自第二输入寄存器304的数据用以识别可由发端处理器存取的除目标存储器装置之外的每一存储器装置。对于所识别的每一存储器装置,存储器阻隔产生器306检查逻辑全域可观测性寄存器307的对应位。接着针对除目标存储器装置之外(在那时)不指示其是全域可观测的的每一存储器装置而产生存储器阻隔。
在存储器阻隔产生器306被启用的情况下,控制器208中的逻辑314可用以防止随后的数据转移总线事务从总线寄存器202释放,直到强有序数据转移总线事务由目标存储器装置执行为止。延迟316可用以允许内部产生的触发在所述触发被属性选通切断之前,使强有序数据转移总线事务从总线寄存器202释放。以此方式,可向目标存储器装置提供数据转移总线事务,同时向其余的可由发端处理器存取的非全域可观测的存储器装置提供存储器阻隔。
逻辑318可用以针对来自目标存储器装置的数据转移肯定应答和存储器阻隔肯定应答而监视来自存储器装置的反馈。逻辑318使用来自第二输入寄存器304的数据和逻辑全域可观测性寄存器307的位来确定针对存储器阻隔肯定应答将需要监视哪些存储器装置。当逻辑318确定已接收到各种数据转移和/或存储器阻隔肯定应答时,逻辑318产生触发以从第一输入寄存器302和第二输入寄存器304释放对应于总线寄存器202中的下一个数据转移总线事务的新数据。所述触发通过多路复用器320而耦合,来自第一输入寄存器202的属性迫使多路复用器320进入适当的状态。如果所述新数据包含指示总线寄存器202中的对应的数据转移总线事务是强有序的,那么重复相同的过程。否则,数据转移总线事务可经由逻辑314通过内部产生的触发直接从总线寄存器202释放。内部产生的触发还可通过多路复用器320而耦合,以使数据从第一输入寄存器302和第二输入寄存器304释放,以用于总线寄存器202中的下一个数据转移总线事务。
尽管本文已相对于共享总线系统的总线互连件108内的控制器208而描述了本发明,但所属领域的技术人员将容易认识到本发明并不限于此实施方案。明确地说,用于每一从属装置的全域可观测指示符可传播到每一主装置或可由每一主装置存取,每一主装置可确定是否需要存储器阻隔总线事务,且如果需要的话,那么可确定应导向哪些从属装置。
尽管本文中已相对于本发明的特定特征、方面和实施例而描述了本发明,但将明白,在本发明的宽泛范围内,大量变化、修改和其它实施例是可能的,且因此,所有变化、修改和实施例均将被视为在本发明的范围内。因此本实施例在所有方面均被解释为说明性而非限制性的,且在所附权利要求书的意义和等效范围内的所有改变均意在包含于本实施例中。

Claims (31)

1.一种弱有序处理系统,其包括:
多个从属装置;
至少一个主装置,其经配置以将数据转移总线事务导向一个或一个以上从属装置;以及
总线互连件,其经配置以在主装置与从属装置之间实施数据转移总线事务,且进一步经配置以响应于来自主装置的执行同步总线事务请求而将执行同步总线事务导向并非全域可观测的一个或一个以上从属装置。
2.根据权利要求1所述的系统,其中所述总线互连件包含逻辑全域可观测性寄存器,所述逻辑全域可观测性寄存器包括多个位,每一位对应于一从属装置,并指示所述从属装置是否维持全域可观测性。
3.根据权利要求2所述的系统,其中所述全域可观测性寄存器包括由系统软件在系统初始化期间所设置的一个或一个以上物理寄存器。
4.根据权利要求3所述的系统,其中所述系统软件轮询从属装置中的配置寄存器以查实所述从属装置的全域可观测性。
5.根据权利要求2所述的系统,其中所述逻辑全域可观测性寄存器的一个或一个以上位是经硬连线的。
6.根据权利要求2所述的系统,其中所述逻辑全域可观测性寄存器的一个或一个以上位包括来自从属装置的动态二进制信号。
7.根据权利要求6所述的系统,其中从属装置在执行数据转移操作之前缓冲所述数据转移操作,且其中所述从属装置在其缓冲器为空时经由去往所述逻辑全域可观测性寄存器的动态二进制信号来指示所述从属装置为全域可观测的。
8.根据权利要求1所述的系统,其中来自所述主装置的数据转移总线事务请求包含指示所述数据转移总线事务是否为强有序的属性。
9.根据权利要求1所述的系统,其中接收所述执行同步总线事务的每一从属装置执行所有先前从至少所述发出所述强有序数据转移总线事务的主装置接收到的数据转移操作。
10.根据权利要求1所述的系统,其中所述强有序数据转移总线事务所导向的所述从属装置对于主装置来说,看似在执行所述强有序数据转移总线事务之前,已执行所有先前从至少所述发出所述强有序数据转移总线事务的主装置接收到的数据转移操作。
11.根据权利要求1所述的系统,其中所述总线互连件将所述执行同步总线事务仅导向发出所述强有序数据转移总线事务请求的所述主装置可将数据转移总线事务导向的非全域可观测的从属装置。
12.根据权利要求1所述的系统,其中所述总线互连件进一步经配置以响应于强有序数据转移总线事务请求而将执行同步总线事务导向并非全域可观测的一个或一个以上从属装置。
13.一种总线互连件,其操作以将数据转移总线事务从弱有序处理系统中的一个或一个以上主装置导向两个或两个以上从属装置,所述总线互连件包括:
总线寄存器,其操作以使数据转移总线事务请求排成队列;以及
控制器,其操作以控制数据转移总线事务从所述总线寄存器的发出,且进一步操作以响应于来自主装置的执行同步总线事务请求而将执行同步总线事务导向并非全域可观测的一个或一个以上从属装置。
14.根据权利要求13所述的总线互连件,其中所述控制器包含逻辑全域可观测性寄存器,所述逻辑全域可观测性寄存器指示哪些从属装置是全域可观测的。
15.根据权利要求14所述的总线互连件,其中所述逻辑全域可观测性寄存器包括由系统软件设置的物理寄存器。
16.根据权利要求15所述的总线互连件,其中所述系统软件在设置所述全域可观测性寄存器之前,轮询从属装置中的状态寄存器以查实所述从属装置的全域可观测性。
17.根据权利要求14所述的总线互连件,其中所述逻辑全域可观测性寄存器的一个或一个以上位由系统设计者硬连线。
18.根据权利要求14所述的总线互连件,其中所述逻辑全域可观测性寄存器的一个或一个以上位包括来自从属装置的动态二进制信号。
19.根据权利要求18所述的总线互连件,其中从属装置操作以在执行数据转移操作之前缓冲所述数据转移操作,所述从属装置在所述缓冲器为空时经由动态二进制信号指示全域可观测性。
20.根据权利要求12所述的总线互连件,其进一步包括解码器,所述解码器逻辑上连接到所述控制器,且操作以查实待决数据转移总线事务导向哪一从属装置,且进一步操作以检测强有序数据转移总线事务。
21.根据权利要求14所述的总线互连件,其进一步包括从所述总线寄存器接收数据转移总线事务的总线开关,所述总线开关操作以在所述解码器的控制下将所述数据转移总线事务导向从属装置。
22.根据权利要求13所述的总线互连件,其中所述控制器进一步操作以响应于强有序数据转移总线事务请求而向并非全域可观测的一个或一个以上从属装置发出执行同步总线事务。
23.一种在弱有序处理系统中执行强有序数据转移总线事务的方法,所述弱有序处理系统包含一个或一个以上主装置以及两个或两个以上从属装置,所述方法包括:
维持所述从属装置中的哪些从属装置是全域可观测的的指示;以及
响应于来自主装置的执行同步总线事务请求而向并非全域可观测的一个或一个以上从属装置发出执行同步总线事务。
24.根据权利要求23所述的方法,其进一步包括通过对从主装置接收到的每一数据转移总线事务请求的属性进行解码来检测强有序数据转移总线事务。
25.根据权利要求23所述的方法,其中仅向发出强有序数据转移总线事务请求的所述主装置可将数据转移总线事务导向的非全域可观测的从属装置发出所述执行同步总线事务。
26.根据权利要求23所述的方法,其中维持所述从属装置中的哪些从属装置是全域可观测性的的指示包括维持逻辑全域可观测性状态寄存器,所述逻辑全域可观测性状态寄存器的一个位对应于每一从属装置。
27.根据权利要求26所述的方法,其进一步包括:
在初始化期间轮询从属装置中的状态寄存器以查实每一从属装置的全域可观测性;以及
设置物理全域可观测性状态寄存器。
28.根据权利要求26所述的方法,其中维持所述从属装置中的哪些从属装置是全域可观测的的指示包括从一个或一个以上从属装置接收指示所述从属装置的全域可观测性的动态二进制信号。
29.根据权利要求23所述的方法,其进一步包括,对于接收执行同步总线事务的每一从属装置,执行来自至少所述发出所述强有序数据转移总线事务请求的主装置的所有待决数据转移操作。
30.根据权利要求23所述的方法,其进一步包括,对于接收所述强有序数据转移总线事务的所述从属装置,在执行所述强有序数据转移总线事务之前,执行来自至少所述发出所述强有序数据转移总线事务请求的主装置的所有待决数据转移操作。
31.根据权利要求23所述的方法,其进一步包括:
接收强有序数据转移总线事务请求。
CN2007800318173A 2006-08-31 2007-08-31 用于阻隔操作的条件式广播的方法和设备 Expired - Fee Related CN101506783B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/468,894 US7783817B2 (en) 2006-08-31 2006-08-31 Method and apparatus for conditional broadcast of barrier operations
US11/468,894 2006-08-31
PCT/US2007/077336 WO2008028101A1 (en) 2006-08-31 2007-08-31 Method and apparatus for conditional broadcast of barrier operations

Publications (2)

Publication Number Publication Date
CN101506783A true CN101506783A (zh) 2009-08-12
CN101506783B CN101506783B (zh) 2011-04-20

Family

ID=38943823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800318173A Expired - Fee Related CN101506783B (zh) 2006-08-31 2007-08-31 用于阻隔操作的条件式广播的方法和设备

Country Status (9)

Country Link
US (1) US7783817B2 (zh)
EP (1) EP2062147B1 (zh)
JP (1) JP4891405B2 (zh)
KR (1) KR101056153B1 (zh)
CN (1) CN101506783B (zh)
AT (1) ATE507530T1 (zh)
DE (1) DE602007014226D1 (zh)
TW (1) TW200819989A (zh)
WO (1) WO2008028101A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7917676B2 (en) 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US8352682B2 (en) * 2009-05-26 2013-01-08 Qualcomm Incorporated Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US8285937B2 (en) * 2010-02-24 2012-10-09 Apple Inc. Fused store exclusive/memory barrier operation
US8577986B2 (en) 2010-04-02 2013-11-05 Microsoft Corporation Mapping RDMA semantics to high speed storage
US9350806B2 (en) * 2012-09-07 2016-05-24 International Business Machines Corporation Zero copy data transfers without modifying host side protocol stack parameters
US9304954B2 (en) * 2012-10-24 2016-04-05 Texas Instruments Incorporated Multi processor bridge with mixed Endian mode support

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04190435A (ja) 1990-11-26 1992-07-08 Hitachi Ltd マルチプロセッサシステムのメモリアクセス順序保証方式
US5778438A (en) 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6088771A (en) * 1997-10-24 2000-07-11 Digital Equipment Corporation Mechanism for reducing latency of memory barrier operations on a multiprocessor system
US6370632B1 (en) * 1997-11-18 2002-04-09 Intrinsity, Inc. Method and apparatus that enforces a regional memory model in hierarchical memory systems
US6038646A (en) * 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US6247102B1 (en) * 1998-03-25 2001-06-12 Compaq Computer Corporation Computer system employing memory controller and bridge interface permitting concurrent operation
US6073210A (en) * 1998-03-31 2000-06-06 Intel Corporation Synchronization of weakly ordered write combining operations using a fencing mechanism
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6167492A (en) * 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6275913B1 (en) * 1999-10-15 2001-08-14 Micron Technology, Inc. Method for preserving memory request ordering across multiple memory controllers
US6708269B1 (en) * 1999-12-30 2004-03-16 Intel Corporation Method and apparatus for multi-mode fencing in a microprocessor system
US6609192B1 (en) * 2000-06-06 2003-08-19 International Business Machines Corporation System and method for asynchronously overlapping storage barrier operations with old and new storage operations
US6963967B1 (en) * 2000-06-06 2005-11-08 International Business Machines Corporation System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
US7398376B2 (en) * 2001-03-23 2008-07-08 International Business Machines Corporation Instructions for ordering execution in pipelined processes
US6996812B2 (en) * 2001-06-18 2006-02-07 International Business Machines Corporation Software implementation of synchronous memory barriers
DE60226627D1 (de) * 2001-08-24 2008-06-26 Intel Corp Ehörige verfahren um datenintegrität zu verwalten
US20030131175A1 (en) * 2001-12-24 2003-07-10 Heynemann Tom A. Method and apparatus for ensuring multi-threaded transaction ordering in a strongly ordered computer interconnect
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US7490218B2 (en) * 2004-01-22 2009-02-10 University Of Washington Building a wavecache
WO2005121948A1 (en) * 2004-06-02 2005-12-22 Sun Microsystems, Inc. Method and apparatus for enforcing membar instruction semantics in an execute-ahead processor
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US7725618B2 (en) * 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
US7454570B2 (en) * 2004-12-07 2008-11-18 International Business Machines Corporation Efficient memory update process for on-the-fly instruction translation for well behaved applications executing on a weakly-ordered processor
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
JP2009269935A (ja) 2008-04-30 2009-11-19 Sumitomo Metal Mining Co Ltd 金色系金属光沢を有する銀膜

Also Published As

Publication number Publication date
US7783817B2 (en) 2010-08-24
KR101056153B1 (ko) 2011-08-11
CN101506783B (zh) 2011-04-20
WO2008028101A1 (en) 2008-03-06
EP2062147B1 (en) 2011-04-27
TW200819989A (en) 2008-05-01
JP4891405B2 (ja) 2012-03-07
ATE507530T1 (de) 2011-05-15
JP2010501962A (ja) 2010-01-21
EP2062147A1 (en) 2009-05-27
KR20090051238A (ko) 2009-05-21
US20080059683A1 (en) 2008-03-06
DE602007014226D1 (de) 2011-06-09

Similar Documents

Publication Publication Date Title
CN101506783B (zh) 用于阻隔操作的条件式广播的方法和设备
CN101320360B (zh) 用于并行集成电路结构的消息排队系统和相关操作方法
EP1750202A1 (en) Combining packets for a packetized bus
CN100568187C (zh) 一种用于对调试消息进行掩码的方法和装置
EP2097828B1 (en) Dmac to handle transfers of unknown lengths
US20030074502A1 (en) Communication between two embedded processors
US7809875B2 (en) Method and system for secure communication between processor partitions
JP2006518058A (ja) 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法
WO2020023797A1 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
CN103077147B (zh) 一种基于链表的全功能1553b总线ip核
EP2579164A1 (en) Multiprocessor system, execution control method, execution control program
JP2008310832A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
US7490219B2 (en) Counter counts valid requests based on a judgment in a system having a plurality of pipeline processors
US6941434B2 (en) Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same
US8924784B2 (en) Controller for managing a reset of a subset of threads in a multi-thread system
US7610415B2 (en) System and method for processing data streams
US10095643B2 (en) Direct memory access control device for at least one computing unit having a working memory
US10374981B1 (en) Data transfer circuitry given multiple source elements
EP2521325A1 (en) Communication system, and corresponding integrated circuit and method
KR100357284B1 (ko) 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로
CN116009770A (zh) 读响应电路、方法、数据传输系统及相关设备
CN113050976B (zh) 基于PCIe总线的FPGA并行升级方法、装置、介质及电子设备
US7035908B1 (en) Method for multiprocessor communication within a shared memory architecture
CN114327882A (zh) 一种数据转发方法、装置及系统
US7363412B1 (en) Interrupting a microprocessor after a data transmission is complete

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: 20110420

Termination date: 20210831

CF01 Termination of patent right due to non-payment of annual fee