CN101194240B - 一种弱有序处理系统 - Google Patents

一种弱有序处理系统 Download PDF

Info

Publication number
CN101194240B
CN101194240B CN2006800170218A CN200680017021A CN101194240B CN 101194240 B CN101194240 B CN 101194240B CN 2006800170218 A CN2006800170218 A CN 2006800170218A CN 200680017021 A CN200680017021 A CN 200680017021A CN 101194240 B CN101194240 B CN 101194240B
Authority
CN
China
Prior art keywords
memory
processor
access requests
memory access
storage arrangement
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
Application number
CN2006800170218A
Other languages
English (en)
Other versions
CN101194240A (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 CN101194240A publication Critical patent/CN101194240A/zh
Application granted granted Critical
Publication of CN101194240B publication Critical patent/CN101194240B/zh
Active 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/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
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Telephonic Communication Services (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Communication Control (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)

Abstract

本发明涉及一种弱有序处理系统及用于在弱有序处理系统中强制执行强有序存储器存取请求的方法。所述处理系统包括多个存储器装置及多个处理器。总线互连经配置以使所述处理器介接到所述存储器装置。所述总线互连进一步经配置以通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束:除那些所述总线互连可证实不具有来自所述始发处理器的未执行的存储器存取请求的存储器装置以外,向所述始发处理器可存取的所述其它存储器装置的每一者发送存储器屏障。

Description

一种弱有序处理系统
相关申请案交叉参考
本专利申请案主张优先于2005年3月25日提出申请且标题为“Method andApparatus for Supressing Unnecessary Memory Barrier Bus Operations”的第60/665,000号临时申请案,所述临时申请案转让给本发明的受让人并以引用方式明确并入本文中。
技术领域
本发明涉及处理系统,且更具体而言,涉及用于当在弱有序处理系统中强制执行强有序请求时使存储器屏障最小化的方法及设备。
背景技术
计算机及其它现代处理系统已使电子工业发生了革命性变化,仅需敲击几下键盘便可执行复杂的任务。这些复杂任务通常涉及若干个装置,所述装置可使用总线以快速有效的方式彼此进行通信。所述总线在处理系统中的各装置之间提供共享通信链路。
取决于具体的应用,连接至处理系统中总线的装置类型可有所不同。通常,所述总线上的发送装置可为处理器,且所述总线上的接收装置可为存储器装置或存储器映射装置。在这些系统中,处理器常常通过允许以不按次序的方式来实施存储器操作从而实现性能上的益处。例如,可重新排序存储器操作序列以使存储器同一页面内的全部操作能够在打开新的页面之前执行。能够重新排序存储器操作的处理系统通常被称为“弱有序”处理系统。
在某些情况下,存储器操作的重新排序可能会不可预测地影响程序行为。例如,一个应用程序可要求处理器在从存储器读取之前,所述处理器应将数据写到那个存储器位置。在弱有序处理系统中,无法保证此一定会发生。由此造成的结果会让人无法接受。
人们使用各种技术以在弱有序处理系统中执行有序存储器操作。一种技术是简单地延迟某些存储器操作,直到此前的全部存储器操作均执行完毕。在所述先前实例中,所述处理器可延迟发出读取请求,直到其接收到确保所述数据已写入至所述存储器位置的指示。另一种技术是,在需要有序存储器操作时使用称为存储器屏障的总线命令。可使用“存储器屏障”来确保处理器在存储器屏障之前发出的全部存储器存取请求都在处理器在存储器屏障之后发出的全部存储器存取请求之前执行完。此外,在所述先前实例中,处理器可在发出读取请求之前将存储器屏障发送至存储器。此可确保处理器在读取存储器之前,所述处理器已对同一存储器位置进行了写入。
两种技术均为有效,但其从系统性能的角度来看就不再有效了。在具有多个存储器装置的处理系统中,所述存储器屏障的效率尤其低下。在这些处理系统中,处理器将需要向其可存取的每一个存储器装置发出存储器屏障以对存储器操作强制执行排序约束。因此,一直需要更为有效的方法以便在弱有序处理系统中实施有序存储器操作。
发明内容
以下揭示弱有序处理系统的一个方面。所述处理系统包括多个存储器装置及多个处理器,所述处理器的每一者均经配置以向一个或多个存储器装置产生存储器存取请求,及总线互连,所述总线互连经配置以使所述处理器介接到所述存储器装置。所述总线互连进一步经配置以通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束:除那些总线互连可证实不具有任何来自始发处理器的未执行存储器存取请求的存储器装置之外,向所述始发处理器可存取的每一其它存储器装置发送存储器屏障。
以下揭示弱有序处理系统的另一个方面。所述弱有序系统包括多个存储器装置、多个处理器及总线互连,所述处理器的每一者均经配置以向一个或多个存储器装置产生存储器存取请求。所述总线互连包括:用于使所述处理器介接到所述存储器装置的装置;及用于通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束的装置:除那些总线互连可证实不具有任何来自始发处理器的未执行存储器存取请求的存储器装置之外,向所述处理器可存取的每一其它存储器装置发送存储器屏障。
如下揭示总线互连的一个方面。所述总线互连包括:总线开关,其经配置以在弱有序处理系统中使多个处理器介接到多个存储器装置,所述处理器的每一者均经配置以向一个或多个存储器装置产生存储器存取请求;及控制器,其经配置以通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束:除那些控制器可证实不具有任何来自始发处理器的未执行存储器存取请求的存储器装置之外,向所述始发处理器可存取的每一其它存储器装置发送存储器屏障。
以下揭示用于在弱有序处理系统中强制执行强有序存储器存取请求的方法的一个方面。所述方法包括:从多个处理器接收针对多个存储器装置的存储器存取请求,从始发处理器到目标存储器装置的其中一个存储器存取请求是强有序请求;及通过如下方式对强有序存储器存取请求强制执行排序约束:除那些总线互连可证实其中不存在任何来自始发处理器的未执行存储器存取请求的存储器装置之外,向所述始发处理器可存取的每一其它存储器装置发送存储器屏障。
应理解,根据下文中仅以举例说明方式显示及阐述本发明各种实施例的详细说明,所属技术领域的技术人员将明了本发明的其它实施例。应认识到,本发明可具有其它不同的实施例,且可对其数个细节作出各种其它方面的修改,此并不脱离本发明的精神及范围。因此,应将所述图式及详细说明视为说明性而非限制性。
附图说明
附图以举例方式而非限定方式图解说明本发明的各种态样,其中:
图1是图解说明弱有序处理系统实例的概念性方块图;
图2为功能性方块,其图解说明弱有序处理系统中的总线互连的一个实例;
图3为功能性方块图,其图解说明弱有序处理系统的总线互连中控制器的一个实例;且
图4为功能性方块图,其图解说明弱有序处理系统的总线互连中控制器的另一实例。
具体实施方式
下文结合附图所阐述的详细说明旨在作为对本发明各种实施例的说明,而非意欲代表本发明仅可实施为这些实施例。所述详细说明包含具体细节,以实现提供对本发明彻底了解的目的。然而,所属技术领域的技术人员应明白无需这些具体细节也可实施本发明。在某些示例中,为避免掩盖本发明概念,以方块图形式来显示众所周知的结构及组件。
图1是图解说明弱有序处理系统的一个实例的概念性方块图。处理系统100可为计算机、驻存在计算机中,或为任一能够处理、检索并存储信息的其它系统。处理系统100可为独立式系统,或者,嵌入在如下装置中:例如,无线或有线电话、个人数字助理(PDA)、台式计算机、膝上型计算机、游戏控制台、呼叫器、调制解调器、照相机、自动驱动设备、工业设备、视频设备、音频设备或任一其它适合的需要处理能力的装置。处理系统100可构建成集成电路、集成电路的一部分或分布在多个集成电路上。作为另一选择,处理系统100可与离散组件或任一离散电路与集成电路的组合构建在一起。所属技术领域的技术人员应认识到,如何最佳地为每一具体应用构建所述处理系统100。
图中显示处理系统100具有多个通过总线106与多个存储器装置104a-104c通信的处理器102a-102c。取决于所需要的计算功率及总体的设计约束,任一具体的应用所需要处理器及存储器装置的实际数量可有所不同。可使用总线互连108以使用点对点的交换连接来管理处理器102a-102c与存储器装置104a-104c之间的总线交易。在总线互连108的至少一个实施例中,可提供多个直接的链路以使数个总线交易能够同时发生。
每一处理器102a-102c可构建成任一类型的总线主控装置,其中包括(以举例的方式):通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可程序化门阵列(FPGA)或其它可程序化逻辑、离散门或晶体管逻辑、离散硬件组件、或任一其它处理实体或布局。处理器102a-102c中的一个或多个可经配置以在操作系统或其它软件的控制下执行指令。所述指令可驻存在一个或多个存储器装置104a-104c中。也可将数据存储在存储器装置104a-104c中,且处理器102a-102c可检索所述数据以执行某些指令。可将由执行这些指令而获得的新数据写回到存储器装置104a-104c中。每一存储器装置104a-104c可包括存储器控制器(未显示)及存储媒体(未显示)。所述储存媒体可包括:RAM存储器、DRAM存储器、SDRAM存储器、闪存、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、CD-ROM、DVD、寄存器、硬盘驱动器、可抽换式磁盘或任一其它适合的储存媒体。
可为每一处理器102a-102c提供以总线106上的专用信道106a-106c以便与总线互连108通信。类似地,总线互连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。
在处理系统100的至少一个实施例中,处理器102a-102c可使“存储器属性”与每一存储器存取请求一同传输。所述“存储器属性”可为任一描述存储器存取请求的性质的参数。所述存储器属性可与地址信道上的地址一同传输。作为另一选择,可使用边带信号发送或某一其它方法来传输所述存储器属性。可使用存储器属性来指示存储器存取请求是否为强有序。“强有序”的请求是指不能打乱次序来进行执行的存储器存取请求。
可使用总线互连108监视来自处理器102a-102c的每一存储器存取请求的存储器属性。如果存储器属性是指示强有序存储器存取请求,则总线互连108可对所述请求强制执行排序约束。例如,从第一处理器102a至目标存储器装置104a的存储器存取请求可包括存储器属性。总线互连108可根据所述存储器属性来确定所述请求是否为强有序。如果总线互连108确定所述请求为强有序,则除目标存储器装置104a以外,其会第一处理器102a可存取的每一存储器装置104b及104c发送存储器屏障。此外,总线互连108还会在没有存储器屏障的情况下向目标存储器104a发送所述存储器存取请求;由于与所述存储器存取请求相关联的存储器属性,所以目标存储器装置104a会隐含地将其作为强有序请求来处置。
图2为功能性方块,其图解说明弱有序处理系统中的总线互连的一个实例。所述总线互连所实际构建的方式将取决于具体的应用及施加于整个系统的设计约束。所属技术领域的技术人员应知道,各种设计是可互换的,及如何最佳地针对每一具体应用来构建本文所述的功能性。
参照图2,可使用总线寄存器202接收并存储来自总线106的信息。总线寄存器202可为任一类型的存储装置(例如,先入先出(FIFO)存储器或其它适合的存储装置)。总线寄存器202所接收及存储的信息可为任何与总线有关的信息,但通常包括每一存储器存取请求的地址及存储器属性,且在写入请求的情况下,还包括有效载荷。每一存储器存取请求的地址也被提供至解码器204。可使用解码器204来确定总线寄存器202中每一存储器存取请求的目标存储器装置。这个确定用来控制总线开关206。总线开关206用来将总线寄存器202中的每一存储器存取请求多路分用至总线106中供其目标存储器装置使用的适合信道。可使用控制器208来控制从总线寄存器202释放的存储器存取请求的定时。
图3为功能性方块图,其图解说明弱有序处理系统的总线互连中的控制器的一个实例。控制器208基于其从解码器204接收来的信息对存储器操作强制执行排序约束。所述信息可每一存储器存取请求的存储器属性,可将其存储在第一输入寄存器302中。所述信息:还包括除目标存储器装置之外,识别始发处理器可存取的每一存储器装置的数据。每一处理器可存取的具体存储器装置在设计阶段期间经预先配置,且因此,可将其程序化或硬连线到解码器中。在任何情况下,都可使用第二寄存器304来存储所述数据。如图2中所示,第一及第二寄存器302、304可为分离的寄存器,或者为单个寄存器。在控制器208的某些实施例中,可将来自解码器204的信息存储在与其它总线互连功能所共享的寄存器内。每一寄存器可为FIFO或任一其它适合的储存媒体。
控制器208通过控制从总线寄存器202所释放的存储器存取请求的定时,对存储器的操作强制执行排序约束。下文将先结合指示强有序存储器存取请求准备从总线寄存器202释放出来的存储器属性来阐述所述过程。在所述情况下,第一寄存器302将存储器属性提供至存储器屏障产生器306作为启用信号。同时,将存储在第二寄存器304中的数据提供至存储器屏障产生器306的输入端。如上所指示,第二寄存器304中所存储的数据包括除目标存储器装置以外,识别所述始发处理器可存取的每一存储器装置的数据。当存储器属性启用存储器屏障产生器306时,可使用所述信息来产生由所述数据所识别的每一存储器装置的存储器屏障。可通过发出总线命令将每一存储器屏障提供至适合的存储器装置,所述总线命令具有识别起始所述强有序请求的始发处理器的属性。作为另一选择,可使用单边信号传送或通过其它适合手段将存储器屏障提供至适合的存储器装置。
可使用存储器屏障产生器306来抑制不必要的存储器屏障。例如,如果始发处理器可存取的存储器装置不具有来自始发处理器的待执行的未完成请求,则可抑制所述存储器装置的存储器屏障。这可通过各种方式来实现。在控制器208的一个实施例中,可指派单独的状态寄存器来监视每一存储器装置的活动。在所述实施例中,第一状态寄存器307a监视第一存储器装置104a的活动,第二状态寄存器307b监视第二存储器装置104b的活动,且第三状态寄存器307c监视第三存储器装置104c的活动(参见图1)。每一状态寄存器307a-307c均包括若于个状态信号。在所述控制器的一个实施例中,所述状态信号构成若干个状态位,一个状态位对应于每一可存取指派至特定状态位的存储器装置的处理器。所述状态位用来指示其对应的处理器是否发出尚未由指派至存储这个位的寄存器的存储器装置执行的存储器存取请求。
参照图1-3,现在将提供用以说明所述状态位可用来抑制存储器屏障的方式的一个实例。在这个实例中,所述处理系统可经配置以使第一处理器102a可存取第一及第三存储器装置104a、104c。由于这种配置,控制器208中的第一及第三状态寄存器307a、307c各自包括用于第一处理器102a的状态位。当由第一处理器102a发出至第一存储器装置104a的强有序请求位于总线寄存器202的输出端处时,来自第一输入寄存器302的对应存储器属性会启用存储器屏障产生器306。从第二输入寄存器304提供至存储器屏障产生器306的数据,识别第一处理器104a可存取的存储器装置(目标存储器装置除外)。在这个情况下,所述数据识别第三存储器装置104c。存储器屏障产生器306对第三状态寄存器307c中的用于第一处理器102a的状态位进行检查,以确定第三存储器装置104c是否具有来自第一处理器102a的未执行的存储器存取请求。如果有,则存储器屏障产生器306向第三存储器装置104c发送存储器屏障。否则,抑制针对第三存储器装置104c的存储器屏障。
返回至图3,可使用控制器208中的逻辑308来监视来自存储器装置的关于存储器屏障确认的反馈。“存储器屏障确认”是一个来自存储器装置的信号,其指示由所述存储器装置从发出强有序请求(其在存储器屏障之前)的始发处理器接收而来的每一存储器存取请求均已执行完毕。逻辑308使用来自第二输入寄存器304的数据及来自状态寄存器307a-307c的状态位来确定针对存储器屏障确认需要监视那些存储器装置。当逻辑308确定已接收到全部的存储器屏障确认时,其会产生触发以从总线寄存器202释放对应的存储器存取请求。更具体而言,将来自第一输入寄存器302的存储器属性提供至多路复用器310的选择输入端。多路复用器310用于当存储器属性指示存储器存取请求为强有序时将逻辑308所产生的触发耦合至总线寄存器202。从多路复用器310输出的触发还耦合到解码器,以使总线开关206(参见图2)的定时同步。
一旦从总线寄存器释放存储器存取请求,则经由总线开关206(参见图2)将其路由至目标存储器装置。当将指示强有序请求的存储器属性施加至所述选择输入端时,可使用控制器208中的第二多路复用器312来延迟释放来自第一及第二寄存器302、304的数据,直到从目标存储器装置接收到存储器存取确认。如早先所论述,所述存储器存取请求中所包含的存储器属性对目标存储器装置强制执行排序约束。即,所述目标存储器装置在执行强有序存储器存取请求之前执行由始发处理器所发出的所有未完成的存储器存取请求。在执行所述强有序请求之后,目标存储器装置产生存储器存取确认。将所述存储器存取确认反馈到控制器208中的多路复用器312,其中使用所述存储器存取确认来产生触发以释放来自第一及第二寄存器302、304的对应于总线寄存器202中下一个存储器存取请求的新数据。如果新数据包括指示总线寄存器202中的对应存储器存取请求为强有序的存储器属性,则重复相同的过程。否则,可立即从总线寄存器202释放存储器存取请求。
控制器208经配置以在第一输入寄存器302中的对应存储器属性指示所述请求为弱有序时立即从总线寄存器202释放存储器存取请求。在所述情况下,使用所述存储器属性来禁用存储器屏障产生器306。另外,所述存储器属性强迫多路复用器210进入一个状态,所述状态将内部产生的触发耦合至总线寄存器202以释放存储器存取请求。从总线寄存器202释放存储器存取请求并经由总线开关206(参见图2)将其耦合至目标存储器装置。然后,通过从控制器208内的第二多路复用器312输出的内部产生触发,从第一及第二寄存器302、304释放对应于下一个存储器存取请求的数据。
图4为功能性方块图,其图解说明弱有序处理系统的总线互连中的控制器的另一实例。在这个实例中,控制器208从总线寄存器202释放强有序存储器存取请求,同时将存储器屏障提供至适合的存储器装置。更具体而言,使用第一输入寄存器302将存储器存取请求的存储器属性提供至存储器屏障产生器306。如果所述存储器属性指示对应的存储器存取请求为强有序,则启用存储器屏障产生器306。当存储器屏障产生器306启用时,则使用来自第二输入寄存器304的数据,以除目标存储器装置以外识别始发处理器可存取的每一存储器装置。对于被识别的每一存储器装置,存储器屏障产生器306对状态寄存器307a-307c中的用于始发处理器的状态位进行检查。然后,除目标存储器装置以外,针对每一可能具有来自始发处理器的未执行存储器存取请求的存储器装置产生存储器屏障。
由于启用了存储器屏障产生器306,所以可使用控制器208中的逻辑314来防止随后的存储器存取请求从总线寄存器202释放出,直到所述强有序请求由目标存储器装置执行为止。可使用延迟316以在由存储器属性将触发选通去除之前,让所述内部产生的触发从总线寄存器202释放强有序存储器请求。以此方式,可将所述存储器存取请求与始发处理器可存取的其它存储器装置的存储器屏障同时提供至目标存储器装置。
可使用逻辑318监视来自存储器装置的如下反馈:来自目标存储器装置的存储器存取确认及存储器屏障确认。逻辑318使用来自第二输入寄存器304的数据及来自状态寄存器307a-307c的状态位来确定针对存储器屏障确认需要监视哪些存储器装置。当逻辑318确定已接收到各种确认时,其会产生触发以从第一及第二寄存器302、304释放对应于总线寄存器202中下一个存储器存取请求的新数据。将所述触发耦合穿过多路复用器320,来自第一寄存器202的存储器属性会强迫所述多路复用器进入一个适合的状态。如果新数据包括指示总线寄存器202中对应的存储器存取为强有序的存储器属性,则重复相同的过程。否则,可经由逻辑314使用内部产生的触发从总线寄存器202立即释放存储器存取请求。也可将内部产生的触发耦合穿过多路复用器320以从第一及第二寄存器302、304释放供总线寄存器202中下一个存储器存取请求使用的数据。
取决于具体的应用及施加于处理系统的总体设计约束条件,对所述状态位进行设定的方式可有所不同。例如,当从所述总线寄存器释放由始发处理器发出且目的地为第一目标存储器装置的存储器存取请求时,可清除始发处理器及第一目标存储器装置的状态位。一旦所述状态位被清除,由始发处理器发出至第二目标存储器装置的后续强有序请求将导致存储器屏障发送至第一目标存储器装置。所述状态位将保持处于清除状态,直到第一目标存储器装置的存储器存取请求执行完毕。可使用来自第一目标存储器装置的反馈来断定所述状态位。一旦所述状态位经断定,则由始发处理器发出至第三目标存储器装置的后续强有序请求将导致存储器屏障产生器对原本发送至第一目标存储器装置的存储器屏障进行抑制。
前一个段落中的实例是假设第一目标存储器装置可在存储器存取请求执行之后产生反馈。然而,在某些处理系统中,存储器装置可能不会为弱有序请求提供反馈。在其它处理系统中,所述反馈可只指示所述存储器存取请求已被写入至目标存储器装置内的缓冲器中。在后一种情况下,无法使用来自目标存储器装置的反馈来断定对应的状态位,因为直到一段时间之后才实际上执行所述存储器存取请求。在这些处理系统中,需要另一种方法来设定所述状态位。
在所述处理系统的一个实施例中,可使用所述存储器屏障来设定所述状态位。在这个实施例中,可使用由存储器屏障产生器针对强有序请求所产生的存储器屏障来断定对应的状态位。当从总线寄存器中释放请求时,还可断定强有序请求的状态位。每一状态位将保持处于断定状态,直至随后从总线寄存器中释放对应的弱有序请求。
参照图1-4,现在将提供一个实例来举例说明该后一个实施例的功能性。在这个实例中,可对处理系统进行配置,以使第一处理器102a可存取第一及第三存储器装置104a、104c。当第一处理器102a发出至第一存储器装置104a的强有序请求在总线寄存器202的输出端处时,存储器屏障产生器306会产生第三存储器装置104c的存储器屏障,假设第一处理器102在第三状态寄存器307c中的状态位被清除。当从总线寄存器202中释放强有序请求时,断定第一处理器104a在第一状态寄存器307a中的状态位。可使用来自解码器204的信号(未显示)来断定所述状态位。另外,当将存储器屏障发送至第三解存储器装置104c时,断定第一处理器102a在第三状态寄存器307c中的状态位。
一旦强有序请求完成,则可从总线寄存器202释放下一个请求。在这个实例中,下一个请求是由第一处理器102a针对第三存储器装置104c发出的强有序请求。存储器屏障产生器306使用来自第二输入寄存器304的数据,以除目标存储器装置以外识别第一处理器102a可存取的存储器装置(即,第一存储器装置104a)。存储器屏障产生器306可使用第一处理器102a在第一状态寄存器307a中的状态位来抑制通至第一存储器装置104的存储器屏障。然后,可从总线寄存器202释放由第一处理器102发出至第三存储器装置104c的强有序请求。第一处理器102a在第一及第三状态寄存器307a、307c中的状态位保持处于断定状态。
在这个实例中,总线寄存器202中的下一个请求是第一处理器102a发出至第一存储器装置104a的弱有序请求。可立即从总线寄存器202将所述请求释放至第一存储器装置104a。可使用解码器204来控制位于总线寄存器202输出端处的总线开关206,且同时将信号提供至控制器208以清除第一处理器102a在第一状态寄存器307中的状态位。
在这个实例中,总线寄存器202中的下一个请求是由第一处理器102a发出至第三存储器装置104c的强有序请求。存储器屏障产生器306使用来自第二输入寄存器304的数据,以除目标存储器装置以外识别第一处理器102可存取的存储器装置(即,第一存储器装置104a)。第一处理器102a在第一状态寄存器307a的状态位被清除,且因此可产生针对第一存储器装置104a的存储器屏障。当将存储器屏障发送至第三存储器装置104c时,重新断定第一处理器104a在第一状态寄存器307a中的状态位。当从总线寄存器202释放强有序请求时,第一处理器102a在第三状态寄存器307c中的状态位保持处于断定状态。
提供上述说明旨在使所属技术领域的技术人员能够实践本文所述的各种实施例。所属技术领域的技术人员将易于得出对所述实施例的各种修改,且本文所界定的一般原理可应用于其它实施例。因此,权利要求书并非意欲限定于本文所示的实施例,而是意欲赋予其与权利要求书语言相一致的完整范畴,其中除非明确指明,否则以单数形式提及一个元件并非意欲表示「一个及仅一个」,而是意为「一个或多个」。本发明通篇所述的为所属技术领域的技术人员已知或随后已知的各种实施例的全部等效结构及功能均以引用方式明确地并入本文中,且意欲由权利要求书所囊括。此外,无论在权利要求书中是否明确阐述,本文揭示内容都不打算贡献于公众。除非使用措辞「用于…的装置」明确地阐述权利要求要素,或在方法权利要求的情况下,使用措辞「用于…的步骤」来阐述权利要求要素,否则不应根据35 U.S.C.§112第六段的规定来解释任何权利要求要素。

Claims (21)

1.一种弱有序处理系统,其包括:
多个存储器装置;
多个处理器,所述处理器的每一者均向所述存储器装置中的一者或多者产生存储器存取请求;及
总线互连,其使所述处理器介接到所述存储器装置,所述总线互连进一步通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束:除了那些不具有来自所述始发处理器的未执行的存储器存取请求的存储器装置以外,向非所述目标存储器装置且所述始发处理器可存取的存储器装置的每一者发送存储器屏障,所述总线互连进一步从非所述目标存储器中的每一者接收存储器屏障确认,并且在从非所述目标存储器的存储器装置中的每一者接收所述存储器屏障确认后,发送所述强有序存储器存取请求到所述目标存储器装置。
2.如权利要求1所述的弱有序处理系统,其中非所述目标存储器且接收存储器屏障的存储器的每一者执行任何来自所述始发处理器的未执行的存储器存取请求。
3.如权利要求1所述的弱有序处理系统,其中所述总线互连进一步控制非所述目标存储器且所述处理器可存取的存储装置中的每一者的信号,并证实哪些装置不具有来自其各自信号的未执行的存储器存取请求。
4.如权利要求3所述的弱有序处理系统,其中所述总线互连进一步响应于所述始发处理器的存储器屏障被所述总线互连发送至所述存储器装置的一者,强迫非所述目标存储器且所述处理器可存取的所述存储器装置的一者的所述信号进入第一状态;所述总线互连进一步在所述信号被强迫进入所述第一状态时证实所述存储器装置的所述一者不具有任何未执行的存储器存取请求。
5.如权利要求4所述的弱有序处理系统,其中所述总线互连进一步响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
6.如权利要求3所述的弱有序处理系统,其中所述总线互连进一步响应于来自所述存储器装置的一者的不存在从所述始发处理器到所述存储器装置的所述一者的未执行的存储器存取请求的反馈,强迫非所述目标存储器且所述处理器可存取的所述存储装置中的所述一者的所述信号进入第一状态;所述总线互连进一步在所述信号被强迫进入所述第一状态时证实所述其它存储器装置的所述一者不具有任何未执行的存储器存取请求。
7.如权利要求6所述的弱有序处理系统,其中所述总线互连进一步响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
8.如权利要求1所述的弱有序处理系统,其中所述总线互连进一步通过如下方式对从始发处理器到所述目标存储器装置的强有序存储器存取请求强制执行排序约束:将所述强有序存储器存取请求与存储器属性一同发送至所述目标存储器装置,所述存储器属性指示所述存储器存取请求为强有序。
9.一种弱有序处理系统,其包括:
多个存储器装置;
多个处理器,所述处理器的每一者均向所述存储器装置中的一者或多者产生存储器存取请求;及
总线互连,其具有:
用于使所述处理器介接到所述存储器装置的装置;及
用于对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束的装置,所述用于强制执行的装置包括:
除那些不具有来自所述始发处理器的未执行存储器存取请求的存储器装置以外,用于向非所述目标存储器且所述处理器可存取的存储装置中的每一者发送存储器屏障的装置,以及
用于从非所述目标存储器且所述处理器可存取的存储装置中的每一者接收存储屏障确认的装置,并且
在从所述非所述目标存储器中的每一者接收所述存储屏障确认后,用于发送所述强有序存储器存取请求到所述目标存储器装置的装置。
10.一种总线互连,其包括:
总线开关,其将弱有序处理系统中的多个处理器介接到多个存储器装置,其中所述处理器的每一者向所述存储器装置中的一者或多者产生存储器存取请求;及
控制器,其通过如下方式对从始发处理器到目标存储器装置的强有序存储器存取请求强制执行排序约束:除了那些不具有来自所述始发处理器的未执行的存储器存取请求的存储器装置以外,向非所述目标存储器且所述处理器可存取的存储装置的每一者发送存储器屏障,所述控制器进一步从所述非所述目标存储器中的每一者接收存储器屏障确认,并且在从所述非所述目标存储器中的每一者接收所述存储器屏障确认后,发送所述强有序存储器存取请求到所述目标存储器装置。
11.如权利要求10所述的总线互连,其中所述控制器进一步控制非所述目标存储器且所述处理器可存取的存储装置中的每一者的信号,并证实那些存储器装置中哪些装置不具有任何来自其各自信号的未执行的存储器存取请求。
12.如权利要求11所述的总线互连,其中所述控制器进一步响应于所述始发处理器的存储器屏障被所述总线互连发送至所述存储器装置的一者,强迫非所述目标存储器且所述处理器可存取的存储装置中的所述一者的所述信号进入第一状态;所述控制器进一步在所述信号被强迫进入所述第一状态时证实所述存储器装置的所述一者不具有任何未执行的存储器存取请求。
13.如权利要求12所述的总线互连,其中所述控制器进一步响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
14.如权利要求11所述的总线互连,其中所述控制器进一步响应于来自所述存储器装置的一者的不存在从所述始发处理器到所述存储器装置的所述一者的未执行的存储器存取请求的反馈,强迫非所述目标存储器且所述处理器可存取的存储装置中的所述一者的所述信号进入第一状态;所述控制器进一步在所述信号被强迫进入所述第一状态时证实所述存储器装置的所述一者不具有任何未执行的存储器存取请求。
15.如权利要求14所述的总线互连,其中所述控制器进一步响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
16.一种在弱有序处理系统中强制执行强有序存储器存取请求的方法,其包括:
从多个处理器接收对多个存储器装置的存储器存取请求,从始发处理器到目标存储器装置的所述存储器存取请求中的一者是强有序存储器存取请求;及
除了那些没有来自所述始发处理器的未执行的存储器存取请求的存储器装置以外,向非所述目标存储器装置且所述处理器可存取的存储装置的每一者发送存储器屏障;
从非所述目标存储器装置的存储器装置中的每一者接收存储器屏障确认;及
在从非所述目标存储器的存储器装置的每一者接收所述存储器屏障确认后,发送所述强有序存储器存取请求到所述目标存储器装置,以对所述强有序存储器存取请求强制执行排序约束。
17.如权利要求16所述的方法,通过如下方式来强制执行所述强有序请求:控制非所述目标存储器装置且所述处理器可存取的存储装置中的每一者的信号,并证实那些存储器装置中哪些装置不具有任何来自其各自信号的未执行的存储器存取请求。
18.如权利要求17所述的方法,其中通过如下方式来强制执行所述强有序请求:响应于所述始发处理器的存储器屏障被所述总线互连发送至所述存储器装置的一者,强迫非所述目标存储器且所述处理器可存取的存储装置中的所述一者的所述信号进入第一状态,所述存储器装置中的所述一者不具有任何未执行的存储器存取请求的证实是基于所述信号被强迫进入所述第一状态。
19.如权利要求18所述的方法,其中通过如下方式来强制执行所述强有序请求:响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
20.如权利要求17所述的方法,其中通过如下方式来强制执行所述强有序请求:响应于来自所述存储器装置的一者的不存在从所述始发处理器到所述存储器装置的所述一者的未执行的存储器存取请求的反馈,强迫非所述目标存储器且所述处理器可存取的存储装置中的所述一者的所述信号进入第一状态,非所述目标存储器的存储器装置中的所述一者不具有任何未执行的存储器存取请求的证实是基于所述信号被强迫进入所述第一状态。
21.如权利要求20所述的方法,其中通过如下方式来强制执行所述强有序请求:响应于从所述始发处理器到所述存储器装置的所述一者的弱有序存储器存取请求,强迫所述信号进入第二状态。
CN2006800170218A 2005-03-23 2006-03-23 一种弱有序处理系统 Active CN101194240B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US66500005P 2005-03-23 2005-03-23
US60/665,000 2005-03-23
US11/254,939 2005-10-20
US11/254,939 US7500045B2 (en) 2005-03-23 2005-10-20 Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
PCT/US2006/010953 WO2006102636A1 (en) 2005-03-23 2006-03-23 Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system

Publications (2)

Publication Number Publication Date
CN101194240A CN101194240A (zh) 2008-06-04
CN101194240B true CN101194240B (zh) 2010-04-14

Family

ID=36758623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800170218A Active CN101194240B (zh) 2005-03-23 2006-03-23 一种弱有序处理系统

Country Status (11)

Country Link
US (1) US7500045B2 (zh)
EP (1) EP1869561B1 (zh)
JP (1) JP4505534B2 (zh)
KR (1) KR100963464B1 (zh)
CN (1) CN101194240B (zh)
AT (1) ATE507529T1 (zh)
DE (1) DE602006021559D1 (zh)
HK (1) HK1114919A1 (zh)
IL (1) IL186053A0 (zh)
MX (1) MX2007011722A (zh)
WO (1) WO2006102636A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7783817B2 (en) 2006-08-31 2010-08-24 Qualcomm Incorporated Method and apparatus for conditional broadcast of barrier operations
US7984202B2 (en) 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
JP5439808B2 (ja) * 2008-12-25 2014-03-12 富士通セミコンダクター株式会社 複数バスを有するシステムlsi
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
BR112013006329B1 (pt) * 2010-09-16 2020-12-01 Apple Inc. controlador de memória compreendendo uma pluralidade de portas, circuito integrado e método
KR101699781B1 (ko) * 2010-10-19 2017-01-26 삼성전자주식회사 시스템 온 칩 및 그것의 데이터 중재 방법
US8782356B2 (en) 2011-12-09 2014-07-15 Qualcomm Incorporated Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions
CN102591819A (zh) * 2011-12-23 2012-07-18 西安奇维科技股份有限公司 一种利用总线开关控制多处理器实现高速并行加载的方法
US9594713B2 (en) * 2014-09-12 2017-03-14 Qualcomm Incorporated Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US11795753B1 (en) * 2018-04-25 2023-10-24 Gmi Holdings, Inc. Remote monitoring and control of garage door opener incorporating jackshaft door operator drive assembly
US11321262B2 (en) * 2020-09-08 2022-05-03 Intel Corporation Interconnected systems fence mechanism

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6275913B1 (en) * 1999-10-15 2001-08-14 Micron Technology, Inc. Method for preserving memory request ordering across multiple memory controllers

Family Cites Families (15)

* 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 マルチプロセッサシステムのメモリアクセス順序保証方式
JPH09269935A (ja) * 1996-01-31 1997-10-14 Toshiba Corp メモリ制御装置、及びメモリ制御方法
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
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
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
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
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
US6996812B2 (en) * 2001-06-18 2006-02-07 International Business Machines Corporation Software implementation of synchronous memory barriers
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
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
US7783817B2 (en) * 2006-08-31 2010-08-24 Qualcomm Incorporated Method and apparatus for conditional broadcast of barrier operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6275913B1 (en) * 1999-10-15 2001-08-14 Micron Technology, Inc. Method for preserving memory request ordering across multiple memory controllers

Also Published As

Publication number Publication date
EP1869561A1 (en) 2007-12-26
KR100963464B1 (ko) 2010-06-17
EP1869561B1 (en) 2011-04-27
DE602006021559D1 (de) 2011-06-09
MX2007011722A (es) 2007-11-20
ATE507529T1 (de) 2011-05-15
KR20070114399A (ko) 2007-12-03
CN101194240A (zh) 2008-06-04
HK1114919A1 (en) 2008-11-14
WO2006102636A1 (en) 2006-09-28
IL186053A0 (en) 2008-02-09
JP4505534B2 (ja) 2010-07-21
US7500045B2 (en) 2009-03-03
US20060218335A1 (en) 2006-09-28
JP2008535064A (ja) 2008-08-28

Similar Documents

Publication Publication Date Title
CN101194240B (zh) 一种弱有序处理系统
CN101176083B (zh) 总线互连,弱有序处理系统及在弱有序处理系统中强制执行强有序请求的方法
CN101395574B (zh) 弱有序处理系统及在其中执行存储器屏障的方法
CN101300556B (zh) 支持内存系统中不定的读出数据等待时间的方法和系统
US7558895B2 (en) Interconnect logic for a data processing apparatus
KR101709385B1 (ko) 메모리 응답을 정렬하는 메모리 장치, 컴퓨터 시스템 및 방법
CN101506783B (zh) 用于阻隔操作的条件式广播的方法和设备
KR20140048186A (ko) 메모리 콘트롤러와 이 메모리 콘트롤러의 작동방법
KR20110097447A (ko) 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법
US20070288676A1 (en) Methods and apparatus for servicing commands
EP1895425A1 (en) External device access device
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US20130117533A1 (en) Coprocessor having task sequence control
US7508836B2 (en) Data processing apparatus and method for handling transactions
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
US6735677B1 (en) Parameterizable queued memory access system
US7350015B2 (en) Data transmission device
WO2007039933A1 (ja) 演算処理装置
US7167939B2 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
US7353297B2 (en) Handling of write transactions in a data processing apparatus
CN100499770C (zh) 存储器接口装置和方法
EP0803824B1 (en) Data processing system and method therefor
US20070288706A1 (en) Data processing apparatus and memory controller chip
CN1981271A (zh) 主机、存储装置以及对存储装置的访问方法
JP2001142777A (ja) 情報処理システム、情報処理装置、ネットワーク制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1114919

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1114919

Country of ref document: HK