CN101395574A - 存储器屏障总线命令的有效执行 - Google Patents

存储器屏障总线命令的有效执行 Download PDF

Info

Publication number
CN101395574A
CN101395574A CNA2007800080201A CN200780008020A CN101395574A CN 101395574 A CN101395574 A CN 101395574A CN A2007800080201 A CNA2007800080201 A CN A2007800080201A CN 200780008020 A CN200780008020 A CN 200780008020A CN 101395574 A CN101395574 A CN 101395574A
Authority
CN
China
Prior art keywords
main device
slave unit
memory
processing system
storer
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
CNA2007800080201A
Other languages
English (en)
Other versions
CN101395574B (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 CN101395574A publication Critical patent/CN101395574A/zh
Application granted granted Critical
Publication of CN101395574B publication Critical patent/CN101395574B/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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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, look ahead
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Abstract

本发明针对弱有序处理系统和在弱有序处理系统中执行存储器屏障的方法。所述处理系统包含存储器和经配置以向所述存储器发出包含存储器屏障的存储器存取请求的主装置。所述处理系统还包含经配置以向所述主装置提供对所述存储器的存取的从属装置,所述从属装置进一步经配置以产生指示将强制执行由所述主装置发出的存储器屏障所强加的排序约束的信号,所述信号是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前产生的。

Description

存储器屏障总线命令的有效执行
相关申请交叉参考案
本专利申请案主张2006年3月10日提出申请的名称为“存储器屏障总线命令的有效执行(Efficient Execution of Memory Barrier Bus Commands)”的第60/781,091号临时申请案的优先权,且所述临时申请案已让与给其受让人并以引用方式明确地并入本文中。
技术领域
本发明通常涉及处理系统,且更特定而言,涉及在处理系统中有效地处理存储器屏障总线命令的技术。
背景技术
计算机及其它现代处理系统已通过仅敲击几下小键盘便能够执行复杂的任务而使电子工业发生革命性变化。这些复杂的任务通常涉及若干个装置,所述装置使用总线以快速且有效的方式彼此进行通信。所述总线在处理系统中的各装置之间提供共享通信链路。
视具体的应用而定,连接到处理系统中总线的装置类型可有所不同。通常,总线经配置以支持多个处理器、存储器装置和外围装置。在这些系统中,处理器常常通过允许乱序地执行存储器操作来实现性能益处。例如,处理系统可通过重新排序存储器操作的序列以允许在打开存储器中的新一页之前执行对同一页的所有操作来实现性能益处。被允许重新排序存储器操作的处理系统通常称为“弱有序”处理系统。
在某些情况下,存储器操作的重新排序可能会不可预测地影响程序行为。例如,一个应用程序可需要处理器在从存储器读取之前,所述处理器将数据写入到存储器。在弱有序处理系统中,无法保证此一定会发生。由此造成的结果会让人无法接受。
人们使用各种技术以在弱有序处理系统中执行有序的存储器操作。一种技术是简单地延迟某些存储器操作,直到此前的所有存储器操作均执行完毕为止。在先前实例中,处理器可延迟发出读取请求,直到其接收到保证所述数据已写入到所述存储器的指示为止。
现代处理器架构中的常见技术是当需要有序的存储器操作时使用称为“存储器屏障”的总线命令。可使用“存储器屏障”来确保处理器在存储器屏障之前发出的全部存储器存取请求都在所述处理器在存储器屏障之后发出的全部存储器存取请求之前执行。此外,在先前实例中,处理器可在发出读取请求之前将存储器屏障发送到存储器。此可确保处理器在其从存储器读取之前,对存储器进行写入操作。
存储器屏障是将排序约束强加于弱有序处理系统中的存储器操作的有效方法,但从系统性能方面来说是效率低下的。在具有多个存储器装置的处理系统中,所述存储器屏障可能是效率尤其低下的。在这些处理系统中,处理器将需要向其可存取的每一个存储器装置发出存储器屏障以对存储器操作强制执行排序约束。因此,在存储器屏障之后的下一存储器操作被延迟直到可由处理器存取的每一存储器装置完成所有未完成的存储器操作为止。因此,持续需要在弱有序处理系统中执行存储器屏障操作的更有效方法。
发明内容
本发明揭示弱有序处理系统的一个方面。所述处理系统包含存储器和经配置以向所述存储器发出存储器存取请求(包含存储器屏障)的主装置。所述处理系统还包含经配置以向所述主装置提供对所述存储器的存取的从属装置,所述从属装置进一步经配置以产生指示将强制执行由所述主装置发出的存储器屏障所强加的排序约束的信号,所述信号是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前产生的。
本发明揭示弱有序处理系统的另一个方面。所述处理系统包含存储器和经配置以向所述存储器发出存储器存取请求(包含存储器屏障)的主装置。所述处理系统还包含经配置以向所述主装置提供对所述存储器的存取的从属装置,所述从属装置进一步经配置以确认由所述主装置发出的存储器屏障,所述存储器屏障是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前确认。
本发明揭示一种在弱有序处理系统中执行存储器屏障的方法。所述处理系统包含主装置、从属装置和存储器。所述方法包含从所述主装置向所述存储器发出存储器屏障,且在所述从属装置处产生指示将强制执行由所述存储器屏障强加的排序约束的信号,所述信号是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前产生的。
应理解,根据下文中仅以举例说明方式显示及描述本发明的各种实施例的详细说明,所属技术领域的技术人员将明了本发明的其它实施例。应了解,本发明能够具有其它和不同的实施例且其若干细节能够在各种其它方面进行修改,而所有这些皆不背离本发明的精神和范围。因此,本质上,将图式和详细说明视为举例说明性而非限制性。
附图说明
附图中举例来说而非限定方式图解说明本发明的各种方面,其中:
图1是图解说明弱有序处理系统的实例的概念性方框图;
图2是图解说明弱有序处理系统中系统总线互连的一个实例的功能方框图;及
图3是图解说明可较早地确认存储器屏障的从属装置的操作实例的流程图。
具体实施方式
下文结合附图所阐述的详细说明旨在作为本发明的各种实施例的说明,而非计划用来表示可实践本发明的仅有实施例。所述详细说明包含用于提供对本发明的透彻了解目的的具体细节。然而,所属技术领域的技术人员将明了无需所述具体细节也可实践本发明。在某些实例中,为避免模糊本发明的概念,以方框图形式显示众所周知的结构和组件。
图1是图解说明弱有序处理系统的一个实例的概念性方框图。处理系统100可以是计算机、驻存在计算机中、或能够处理、检索和存储信息的任何其它系统。处理系统100可以是独立系统,或另一选择为,嵌入在如下装置中:例如,无线或有线电话、个人数字助理(PDA)、台式计算机、膝上型计算机、游戏控制台、寻呼机、调制解调器、照相机、汽车设备、工业设备、视频设备、音频设备或需要处理能力的任何其它适合装置。处理系统100可实施为集成电路、集成电路的一部分或跨越多个集成电路分布。另一选择是,处理系统100可与离散组件或离散电路与集成电路的任一组合一起实施。所属技术领域的技术人员应认识到,如何最佳地针对每一具体应用实施处理系统100。
与总线架构一起显示处理系统100,所述总线架构将多个主装置连接到多个从属装置。“主装置”是可发出总线请求的任何装置,且“从属装置”是响应于总线请求的任何装置。在图1中所示的处理系统100中,主装置包括两个处理器102a、102b。每一处理器102a、102b可以是任一类型的处理实体,包含(举例来说)微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(EPGA)或其它可编程逻辑、离散门或晶体管逻辑、或离散硬件组件。
处理器102a、102b通过高速总线(通常称为系统总线104)连接到多个从属装置。所述从属装置包含两个存储器控制器106a、106b,每一者分别提供对独立存储器108a、108b的存取。在处理系统的此实施例中,每一存储器108a、108b可以是用来存储通常由处理器102a、102b需要的应用程序和数据的小的、高速、易失性存储器。通常用RAM、DRAM、或SDRAM来实施存储器108a、108b,但实际上可用任何适合的存储媒体来实施。通常,将存储器108a、108b共同称为系统存储器。
连接到系统总线104的另一从属装置是桥接器110。桥接器110用来将高速系统总线104连接到较慢、低级总线112。处理器102a、102b可使用低级总线112来存取外围装置(未显示)和额外的存储器108c、108d。所述存储器108c、108d可以是用来存储处理器102a、102b不经常需要的应用程序和数据的大的、便宜存储媒体,例如硬盘驱动器、快闪存储器、可装卸磁盘或类似存储媒体。在某些架构中,一个或两个存储器可以是非易失性存储器,例如ROM、PROM、EPROM、EEPROM存储器、CD-ROM、或任何其它适合的固定存储媒体。
桥接器110(其是系统总线104上的从属装置)是低级总线112上多个从属装置的主装置。低级总线112上的从属装置包含用于存储器108c的存储器控制器106c和第二桥接器114。第二桥接器114用来将低级总线112连接到第二低级总线116,所述第二低级总线116通过存储器控制器106d提供对存储器108d的存取。在第二低级总线116上,第二桥接器114是主装置且存储器控制器106d是从属装置。
在图1的处理系统100中,处理器102a、102b可经配置以在操作系统及/或其它软件的控制下执行指令。所述指令可驻存在各种存储器108a-108d中。也可将数据存储在所述存储器装置108a-108d中,且处理器102a、102b可检索所述数据以执行某些指令。可将从执行这些指令而获得的新数据写回到所述存储器装置108a-108d中。
在所示处理系统100的实施例中,任何处理器102a、102b可存取第一存储器108a,但仅第二处理器102b可存取第二存储器108b。另外,每一存储器102a、102b可存取低级总线112、116上的存储器108c、108d。处理器可通过发出“存储器存取请求”来存取存储器。“存储器存取请求”可以是写入请求、读取请求或任何其它与总线相关的请求。处理器可通过将适当地址、控制信息和有效负载放置在系统总线104的传输通道上来向目标存储器发出写入请求。在读取请求的情况下,处理器可将地址和控制信息放置在传输通道上。响应于读取请求,目标存储器将有效负载发送回到系统总线104的接收通道上的处理器。
系统总线互连118将接收由处理器发出的写入请求。系统总线互连118解码地址以确定将有效负载和控制信息路由到何处。在针对存储器108a或108b(即,系统存储器)的写入请求的情况下,将有效负载及控制信息加载到用于目标存储器的存储器控制器中的缓冲器(未显示)中。在图1的弱有序处理系统100中,在可实现性能益处时,存储器控制器可将其缓冲器中的内容乱序地写入目标存储器中。举例来说,存储器控制器可重新排序目标存储器中的存储器存取请求序列以在打开存储器中的新一页之前执行对同一页的所有请求。
对低级总线112、116上的存储器108c、108d的写入请求可以类似方式执行,除了路由选择是不同的以外。响应于对所述存储器108c、108d的写入请求,系统总线互连118将有效负载连同控制信息路由到桥接器110。桥接器110将有效负载和控制信息传送到低级总线112以用于投递到低级总线互连120。低级总线互连120管理处理器102a、102b与处理系统100内的其它总线主装置(未显示)之间对存储器108c、108d的存取。低级总线互连120将有效负载和控制信息最终投递到存储器控制器106c或106d中的一者。每一存储器控制器106c和106d也可包含缓冲器(未显示)以在可实现性能益处时允许乱序地执行写入操作。
如以上所指示,处理器可通过将地址和控制信息放置在系统总线104的传输通道上来发出读取请求。系统总线互连118使用所述地址以确定将控制信息路由到何处。对存储器108a或108b(即,系统存储器)的读取请求会导致系统总线互连118将控制信息投递到将其加载到缓冲器(未显示)中的对应存储器控制器。对其它存储器108c、108d的读取请求会导致系统总线互连118将控制信息投递到将其传送到低级总线112的桥接器110。从那里,低级总线互连120将控制信息投递到存储器控制器106c或106d中的一者的缓冲器(未显示)。用于目标存储器的存储器控制器可使用控制信息来将有效负载投递回到发出读取请求的处理器。在可实现性能益处的意义上来说,用于目标存储器的存储器控制器可乱序地执行其缓冲器中的存储器存取请求。
在处理系统的某些实施例中,一个或一个以上处理器可需要按照读取请求发出的次序来接收所述读取请求的有效负载。例如,为减少复杂性而放松对处理系统的性能要求的情况就是这样。另一选择是,可将处理器动态地切换到需要按针对某些应用程序发出有效负载的次序来接收所述有效负载的模式和切换出所述模式。为维持此灵活性,协议可包含“乱序读取属性”作为由处理器针对每一读取请求传输的控制信息的一部分。可断言所述乱序读取属性以指示可以任何次序来执行对应读取请求。相反,可在其它未决读取请求之前、之后或与其它未决读取请求交错来针对必须按次序执行的一系列读取请求中的每一者去断言乱序读取属性。具有去断言乱序读取属性的读取请求在本文中称为“按次序需要的”读取请求。
除了读取和写入请求以外,处理器可发出存储器屏障。存储器屏障由系统总线互连118接收并以传输通道的方式或通过边带发信号来将其路由到处理系统100中可由发出所述存储器屏障的处理器存取的每一存储器。例如,由第一处理器102a发出的存储器屏障将被系统总线互连118路由到系统存储器中的第一存储器108a以及低级总线112、116上的存储器108c、108d两者。另一方面,由第二处理器102b发出的存储器屏障将被系统总线互连118路由到图1的处理系统中所示的每个存储器108a-108d。一旦处理器发出存储器屏障,处理器就会在发出另一存储器存取请求之前等待直到其接收到“存储器屏障确认”为止。“存储器屏障确认”是来自从属装置指示可强制执行由存储器屏障施加的排序约束的信号。在所描述的实施例中,经由接收通道将存储器屏障确认从从属装置发送到发出处理器,然而,如所属技术领域的技术人员将容易地理解,可使用边带发信号来发送存储器屏障确认。
图2是图解说明系统总线连接118的实例的功能方框图。实际实施系统总线互连118的方式将取决于具体应用和强加到处理系统的总设计约束。所属技术领域的技术人员将认识到各种设计的可互换性,和如何最佳地针对每一具体应用来实施本文中所述的功能性。
系统总线互连118可用来接收来自处理器的存储器存取请求。如以上所论述,读取或写入操作的存储器存取请求包含目标存储器的地址。存储器存取请求包含地址、控制信息,且在写入请求的情况下,将有效负载加载到总线寄存器202中。还将地址和控制信息提供给解码器204。解码器204用来确定总线寄存器202中的每一读取和写入请求的目标存储器。解码器204的输出用来控制传输总线开关206。传输总线开关206用来将总线寄存器202中的每一存储器存取请求引导到目标从属装置。接收总线开关208用来将来自各个存储器的有效负载引导到发出读取请求的处理器。
控制信息还包含可由解码器204检测的乱序读取属性。如果去断言乱序读取属性,那么解码器204会警告控制器210。控制器210确定是否存在任何由同一处理器较早地发出的针对除目标存储器以外的存储器的未决按次序读取请求。如果存在,那么控制器210延迟从总线寄存器202中释放所述读取请求直到系统总线互连118接收到来自所述未决读取请求的有效负载为止。如果控制器210确定不存在由同一处理器较早地发出的未决按次序读取请求,或确定由同一处理器较早地发出的所有未决按次序读取请求均是针对目标存储器的,那么总线寄存器202可立即释放读取请求并通过总线开关206将其引导到目标存储器。在后面的情况中,目标存储器的存储器控制器可确保所有未决按次序读取请求都按适当的次序执行。在替代实施例中,控制器210可从总线寄存器202中立即释放所有按次序需要的读取请求,且控制将从多个存储器接收的有效负载投递到所述处理器的次序。
如以上所论述,存储器存取请求也可以是总线命令,例如存储器屏障。存储器屏障被加载到总线寄存器202中并提供给解码器204。解码器204提示控制器210使用总线开关206将总线寄存器202中的存储器屏障发送到可由发出处理器存取的每一存储器。可由每一处理器存取的存储器可预备在控制器210中。
返回图1,控制针对一存储器的所有存储器存取请求序列的从属装置可向发出存储器屏障的处理器发送存储器屏障确认。举例来说,存储器控制器106a、106b控制针对其相应存储器108a、108b的所有存储器存取请求的序列。所述存储器控制器106a、106b中的每一者可经配置以当在执行在一存储器屏障之后接收的任何存储器存取请求之前接收所述存储器屏障时通过执行其缓冲器中的所有存储器存取请求而响应于存储器屏障。如果以此方式配置存储器控制器106a、106b,那么所述存储器控制器的每一者可向系统总线互连118发回确认而不必等待执行其缓冲器中的所有未完成存储器存取请求。
在处理系统的某些实施例中,其中接收通道用于将存储器屏障确认发送到处理器,协议可能需要计及一个或一个以上处理器可能不能在接收所有未决按次序需要的读取请求的有效负载之前处理确认的可能性。一个可能的解决方案是与存储器屏障一起传输“乱序启用”属性。不受接收存储器屏障确认的次序约束的处理器可断言与存储器屏障一起传输的乱序启用属性。如果断言乱序启用属性,那么接收存储器屏障的每一存储器控制器106a、106b可在其一接收到存储器屏障时就将确认发送回到发出处理器。另一方面,不能够在接收所有按次序需要的读取请求的有效负载之前处理存储器屏障确认的处理器可去断言与存储器屏障一起传输的乱序启用属性。去断言的乱序启用属性将需要接收存储器屏障的每一存储器控制器106a、106b在将确认发送回到发出处理器之前发送在存储器屏障之前发出的所有按次序需要的读取请求的有效负载。无论哪一者,处理器都将能够发出随后存储器存取请求而不必等待执行完所有先前存储器存取请求。因此,可减少系统总线104利用不足的可能性,由此提高性能。
与存储器控制器106a、106b形成对比,系统总线104与低级总线112之间的桥接器110不能提供对由处理器发出的存储器屏障的确认,因为其不能保证由存储器屏障强加的排序约束。更具体来说,桥接器110不能保证将在处理器发出存储器屏障之后由所述处理器发出的存储器存取请求之前执行在存储器屏障之前从处理系统100中的另一总线主设备(未显示)发出的且由低级总线互连120接收的所有存储器存取请求。因此,桥接器110不能确认指定给存储器108c、108d的一者或两者的存储器屏障。
低级总线112上的存储器控制器106c可确认由处理器发出的存储器屏障。与系统存储器中的存储器控制器106a、106b很类似,存储器控制器106c负责控制针对存储器108c的所有存储器存取请求的序列。因此,存储器控制器106c可经配置以当在执行在一存储器屏障之后接收的任何存储器存取请求之前接收所述存储器屏障时通过执行其缓冲器中的所有存储器存取请求而响应于所述存储器屏障。如果以此方式配置存储器控制器106c,那么其也可将确认较早地发送回到发出处理器。确认的确切定时将取决于乱序启用属性的状态。
第二低级总线116上的桥接器114也可经配置以确认由处理器发出的存储器屏障。与将系统总线104连接到低级总线112的桥接器110不同,两个低级总线112、116之间的桥接器114可经配置以保证由存储器屏障强加的排序约束。因此,桥接器114可将确认较早地发送回到发出处理器。同样,确认的定时将取决于乱序启用属性的状态。
图3是图解说明可在所有未决存储器存取请求执行完之前确认存储器屏障的从属装置的操作实例的流程图。在此实例中,所述从属装置使用接收通道来确认存储器屏障且经配置以支持允许一个或一个以上处理器发出按次序要求的读取请求的协议。所述从属装置执行其缓冲器中在存储器屏障之前的所有未决存储器存取请求,但可较早地确认存储器屏障,如图3中更全面地图解说明。
在步骤302中,从属装置接收存储器屏障。在步骤304中,所述从属装置确定是断言还是去断言乱序启用属性。如果断言乱序启用属性,那么在步骤310中从属装置可通过下一总线交易的接收通道发送存储器屏障确认。另一方面,如果去断言乱序启用属性,那么在步骤306中从属装置确定在其缓冲器中是否存在任何未决按次序要求的读取请求。如果存在未决的按次序要求的读取请求,那么在步骤310中从属装置可经由下一总线交易的接收通道发送存储器屏障确认。否则,从属装置必须在步骤310中确认存储器屏障之前在步骤308中将按次序读取请求的有效负载发送到发出处理器。
提供上述说明以使所属技术领域的任何技术人员能够实践本文所述的各种实施例。所述所属技术领域的技术人员易知对所述实施例的各种修改,且本文所界定的一般原理可应用于其它实施例。因此,并不打算将权利要求书限定于本文所示实施例,而是赋予其与权利要求书语言相一致的全部范围,其中除非明确指明,否则以单数形式提及一元件并不打算表示“一个且仅一个”,而是“一个或一个以上”之意。所有为所属技术领域的技术人员所已知或此后将已知的贯穿此揭示内容所述各实施例的元件的结构和功能等效物皆明确地以引用方式并入本文中并打算涵盖于权利要求书中。而且,无论是否在权利要求书中明确地引用此揭示内容,本文所揭示的内容并不打算奉献给公众。各权利要求要素均不依据35U.S.C.§112第六段的规定加以解释,除非使用短语“用于的装置”明确描述所述要素,或在方法项中使用短语“用于的步骤”描述所述要素。

Claims (25)

1、一种弱有序处理系统,其包括:
存储器;
主装置,其经配置以向所述存储器发出包含存储器屏障的存储器存取请求;及
从属装置,其经配置以向所述主装置提供对所述存储器的存取,所述从属装置进一步经配置以产生指示将强制执行由所述主装置发出的存储器屏障所强加的排序约束的信号,所述信号是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前产生的。
2、如权利要求1所述的弱有序处理系统,其中所述从属装置进一步经配置以在执行在所述存储器屏障之前发出的对所述存储器的所有所述存储器存取请求之前向所述主装置提供所述信号。
3、如权利要求2所述的弱有序处理系统,其中由所述主装置发出的所述存储器存取请求包含读取请求,所述弱有序处理系统进一步包括将所述主装置连接到所述从属装置的一个或一个以上总线,所述一个或一个以上总线具有接收通道,且其中所述从属装置进一步经配置以向所述接收通道上的所述主装置提供响应于所述读取请求的有效负载和所述信号两者。
4、如权利要求3所述的弱有序处理系统,其中所述读取请求中的每一者包含乱序读取属性,且所述存储器屏障包含乱序启用属性,所述从属装置进一步经配置以当去断言所述乱序启用属性时在于所述存储器屏障之前发出的具有去断言乱序读取属性的所述读取请求的每一者的所述有效负载之后向所述主装置提供所述信号。
5、如权利要求1所述的弱有序处理系统,其进一步包括一个或一个以上总线,所述主装置和所述从属装置在同一总线上。
6、如权利要求1所述的弱有序处理系统,其进一步包括一个或一个以上总线,所述主装置和所述从属装置在不同总线上。
7、如权利要求1所述的弱有序处理系统,其中所述从属装置包括用于所述存储器的存储器控制器。
8、如权利要求1所述的弱有序处理系统,其中所述从属装置包括桥接器。
9、一种弱有序处理系统,其包括:
存储器;
主装置,其经配置以向所述存储器发出包含存储器屏障的存储器存取请求;及
从属装置,其经配置以向所述主装置提供对所述存储器的存取,所述从属装置进一步经配置以确认由所述主装置发出的存储器屏障,所述存储器屏障是在执行由所述主装置在所述存储器屏障之前向所述存储器发出的所有存储器存取请求之前确认的。
10、如权利要求9所述的弱有序处理系统,其中所述从属装置进一步经配置以在执行在所述存储器屏障之前发出的对所述存储器的所有所述存储器存取请求之前向所述主装置提供所述存储器屏障确认。
11、如权利要求10所述的弱有序处理系统,其中由所述主装置发出的所述存储器存取请求包含读取请求,所述弱有序处理系统进一步包括将所述主装置连接到所述从属装置的一个或一个以上总线,所述一个或一个以上总线具有接收通道,且其中所述从属装置进一步经配置以向所述接收通道上的所述主装置提供响应于所述读取请求的有效负载和所述存储器屏障确认两者。
12、如权利要求11所述的弱有序处理系统,其中所述读取请求中的每一者均包含乱序读取属性,且所述存储器屏障包含乱序启用属性,所述从属装置进一步经配置以在去断言所述乱序启用属性时,在于所述存储器屏障之前发出的具有去断言乱序读取属性的所述读取请求的每一者的所述有效负载之后向所述主装置提供所述存储器屏障确认。
13、如权利要求9所述的弱有序处理系统,其中所述从属装置和所述存储器耦合在一起以使得向所述从属装置提供对所述存储器的所有存储器存取请求,而无论所述存储器存取请求是从所述主装置还是从其它地方接收的。
14、如权利要求9所述的弱有序处理系统,其进一步包括一个或一个以上总线,所述主装置和所述从属装置在同一总线上。
15、如权利要求9所述的弱有序处理系统,其进一步包括一个或一个以上总线,所述主装置和所述从属装置在不同的总线上。
16、如权利要求9所述的弱有序处理系统,其中所述从属装置包括用于所述存储器的存储器控制器。
17、如权利要求9所述的弱有序处理系统,其中所述从属装置包括桥接器。
18、一种在具有主装置、从属装置和存储器的弱有序处理系统中执行存储器屏障的方法,其包括:
向所述存储器发出来自所述主装置的存储器屏障;
在所述从属装置处产生指示将强制执行由所述存储器屏障所强加的排序约束的信号,所述信号是在执行由所述主装置在所述存储器屏障之前发出的对所述存储器的所有存储器存取请求之前产生的。
19、如权利要求18所述的方法,其进一步包括在执行在所述存储器屏障之前发出的对所述存储器的所有所述存储器存取请求之前向所述主装置提供所述信号。
20、如权利要求19所述的方法,其中所述弱有序处理系统进一步包括将所述主装置连接到所述从属装置的一个或一个以上总线,所述一个或一个以上总线具有接收通道,且其中所述主装置在所述存储器屏障之前发出的所述存储器存取请求包含读取请求,所述从属装置向所述接收通道上的所述主装置提供响应于所述读取请求的有效负载和所述信号两者。
21、如权利要求20所述的方法,其进一步包括针对所述主装置在所述存储器屏障之前发出的所述读取请求中的一者或一者以上去断言乱序读取属性,针对所述存储器屏障去断言乱序启用属性,且在响应于所述去断言的乱序启用属性向所述主装置提供所述信号之前向所述主装置提供所述一个或一个以上读取请求的所述有效负载。
22、如权利要求18所述的方法,其中所述弱有序处理系统进一步包括一个或一个以上总线,且其中所述主装置经由所述一个或一个以上总线中的一者向所述从属装置发出所述存储器屏障。
23、如权利要求18所述的方法,其中弱有序处理系统进一步包括一个或一个以上总线,且其中所述主装置在所述总线的第一者上向所述总线的第二者上的所述从属装置发出所述存储器屏障。
24、如权利要求18所述的方法,其中所述从属装置包括用于所述存储器的存储器控制器。
25、如权利要求18所述的方法,其中所述从属装置包括桥接器。
CN2007800080201A 2006-03-10 2007-03-07 弱有序处理系统及在其中执行存储器屏障的方法 Active CN101395574B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78109106P 2006-03-10 2006-03-10
US60/781,091 2006-03-10
US11/397,287 US7917676B2 (en) 2006-03-10 2006-04-04 Efficient execution of memory barrier bus commands with order constrained memory accesses
US11/397,287 2006-04-04
PCT/US2007/063510 WO2007106698A2 (en) 2006-03-10 2007-03-07 Efficient execution of memory barrier bus commands

Publications (2)

Publication Number Publication Date
CN101395574A true CN101395574A (zh) 2009-03-25
CN101395574B CN101395574B (zh) 2013-01-16

Family

ID=38237497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800080201A Active CN101395574B (zh) 2006-03-10 2007-03-07 弱有序处理系统及在其中执行存储器屏障的方法

Country Status (6)

Country Link
US (2) US7917676B2 (zh)
EP (2) EP1999577B1 (zh)
JP (1) JP5043925B2 (zh)
KR (1) KR100987210B1 (zh)
CN (1) CN101395574B (zh)
WO (1) WO2007106698A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810082A (zh) * 2011-06-01 2012-12-05 阿尔特拉公司 带有动态端口的优先级分配能力的存储器控制器
TWI454906B (zh) * 2009-09-24 2014-10-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
CN106796561A (zh) * 2014-09-12 2017-05-31 高通股份有限公司 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体

Families Citing this family (21)

* 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
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
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) * 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
JP5239769B2 (ja) * 2008-11-14 2013-07-17 富士通株式会社 リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8489791B2 (en) 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge security feature for network processors or the like
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
GB2488680B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
GB2478795B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路
US9281036B2 (en) 2013-01-08 2016-03-08 Qualcomm Incorporated Memory device having an adaptable number of open rows
US9946492B2 (en) * 2015-10-30 2018-04-17 Arm Limited Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US20180327255A1 (en) * 2017-05-15 2018-11-15 Honeywell International Inc. Systems and methods for multi-sensor integrated sensor devices

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US750045A (en) * 1904-01-19 Vania
JPH04190435A (ja) 1990-11-26 1992-07-08 Hitachi Ltd マルチプロセッサシステムのメモリアクセス順序保証方式
US5664124A (en) 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
RU2157000C2 (ru) 1995-06-15 2000-09-27 Интел Корпорейшн Архитектура процессора ввода-вывода, который объединяет мост межсоединения первичных компонент
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
JPH09269935A (ja) * 1996-01-31 1997-10-14 Toshiba Corp メモリ制御装置、及びメモリ制御方法
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
US5893185A (en) * 1996-12-16 1999-04-13 Okrepkie; Joseph Multipurpose electricians hand tool
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
JPH11167557A (ja) * 1997-12-02 1999-06-22 Hitachi Ltd 共有メモリアクセス順序保証方法及びマルチプロセッサシステム
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
JP2000181891A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 共有メモリアクセス順序保証方式
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
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
FR2816593B1 (fr) 2000-11-16 2003-07-25 Catherine Dumouchel Palette de transport
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
JP2005500240A (ja) * 2001-08-20 2005-01-06 アドバンスド ミネラルズ コーポレイション 改良された発泡ガラス製品
EP1421501B1 (en) 2001-08-24 2006-08-02 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
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
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
US7783817B2 (en) 2006-08-31 2010-08-24 Qualcomm Incorporated Method and apparatus for conditional broadcast of barrier operations
JP2009269935A (ja) 2008-04-30 2009-11-19 Sumitomo Metal Mining Co Ltd 金色系金属光沢を有する銀膜

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI454906B (zh) * 2009-09-24 2014-10-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
CN102810082A (zh) * 2011-06-01 2012-12-05 阿尔特拉公司 带有动态端口的优先级分配能力的存储器控制器
CN102810082B (zh) * 2011-06-01 2017-06-27 阿尔特拉公司 带有动态端口的优先级分配能力的存储器控制器
CN106796561A (zh) * 2014-09-12 2017-05-31 高通股份有限公司 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体
CN106796561B (zh) * 2014-09-12 2018-08-28 高通股份有限公司 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体

Also Published As

Publication number Publication date
US20100005208A1 (en) 2010-01-07
EP1999577B1 (en) 2012-06-13
US20070214298A1 (en) 2007-09-13
KR20080104364A (ko) 2008-12-02
EP2290528A2 (en) 2011-03-02
JP2009529748A (ja) 2009-08-20
CN101395574B (zh) 2013-01-16
WO2007106698A3 (en) 2008-03-06
WO2007106698A2 (en) 2007-09-20
EP2290528B1 (en) 2013-07-24
KR100987210B1 (ko) 2010-10-12
US7917676B2 (en) 2011-03-29
EP1999577A2 (en) 2008-12-10
JP5043925B2 (ja) 2012-10-10
US7921249B2 (en) 2011-04-05
EP2290528A3 (en) 2011-03-23

Similar Documents

Publication Publication Date Title
CN101395574B (zh) 弱有序处理系统及在其中执行存储器屏障的方法
CN101176083B (zh) 总线互连,弱有序处理系统及在弱有序处理系统中强制执行强有序请求的方法
CN101194240B (zh) 一种弱有序处理系统
CN101300556B (zh) 支持内存系统中不定的读出数据等待时间的方法和系统
CN101048762B (zh) 用于在总线上发送存储器预取命令的方法和设备
US7650448B2 (en) I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US6513077B2 (en) I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US7171526B2 (en) Memory controller useable in a data processing system
US8244950B2 (en) Buffering non-posted read commands and responses
CN104321758A (zh) 经由共享存储器结构的仲裁存储器访问
EP2444903A1 (en) A transaction reordering arrangement
JP5951844B2 (ja) 複数のメモリ領域にわたる強順序付けされたデバイス、および排他的トランザクションの自動順序付け
EP2442231A1 (en) Reordering arrangement
US20060225060A1 (en) Code swapping in embedded DSP systems
US20050144338A1 (en) Data transfer apparatus
EP1356383A2 (en) Intermediate buffer control for improving throughput of split transaction interconnect
JP2010244580A (ja) 外部デバイスアクセス装置
US20060095637A1 (en) Bus control device, arbitration device, integrated circuit device, bus control method, and arbitration method
US20130117533A1 (en) Coprocessor having task sequence control
US6735677B1 (en) Parameterizable queued memory access system
JP2001022686A (ja) 情報処理システム
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
WO2007039933A1 (ja) 演算処理装置
CN101303676A (zh) 具直接存储器存取的电子系统及其方法
WO2007004374A1 (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
C14 Grant of patent or utility model
GR01 Patent grant