CN101044459A - 在具有混合体系结构的系统中使用原子操作来修改信息单元的方法和装置 - Google Patents
在具有混合体系结构的系统中使用原子操作来修改信息单元的方法和装置 Download PDFInfo
- Publication number
- CN101044459A CN101044459A CNA2005800354700A CN200580035470A CN101044459A CN 101044459 A CN101044459 A CN 101044459A CN A2005800354700 A CNA2005800354700 A CN A2005800354700A CN 200580035470 A CN200580035470 A CN 200580035470A CN 101044459 A CN101044459 A CN 101044459A
- Authority
- CN
- China
- Prior art keywords
- atomic
- atomic operation
- bus
- locking
- typed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
一种用于修改信息单元的系统和方法,所述方法包括以下阶段:(i)通过第一总线接收启动与位于存储模块的第一地址的至少一个信息单元关联的监听型原子操作的请求;(ii)通过第一总线提供该信息单元;(iii)尝试完成对已更新的信息单元的监听型原子操作;以及(iv)如果在接收、提供和尝试中的至少一个阶段期间,该第一地址由于锁定型原子操作而被锁定,则将该原子操作定义为失败的原子操作。
Description
技术领域
本发明涉及用于修改信息单元的方法和装置,其使用原子操作,具体是在便于不同类型的原子操作(atomic operation)的环境中。
背景技术
成功的原子操作包括不间断的操作序列。如果未完成该序列,则把原子操作看作是失败的原子操作。典型的原子操作包括“读取-修改-写入”操作。
很多现代设备包括多个半导体部件,例如微处理器、直接存储访问单元、微控制器等。为了降低这些日趋复杂的设备的成本,多个部件共享相同的系统资源。共享资源典型地是存储体、总线、外围设备等。
为了避免冲突,共享资源在此时仅可以由一个主要部件来控制。典型的控制方案包括在尝试控制从属部件之前确定共享资源的可用性。Moriarty等人的题为“Self-modifying synchronization memory addressspace and protocol for communication between multiple bus masters of acomputer system”的美国专利6,446,149描述了一种用于管理共享资源的方法,在此通过引用将其包括在本文中。
共享资源的可用性通常由信号量(semaphore)表示。信号量是可以被各个部件访问的标志或状态指示符。它通常驻留于预定的存储地址处,并且其值反映了共享资源是否可用。
使用“读取-修改-写入”原子操作来更新信号量是一般惯例。存在两种用于更新信号量的普通方法。第一种方法涉及锁定存储信号量的存储模块直到完成信号量更新过程。在一些现有技术系统中,存储模块以及可选择的一个或多个总线在信号量更新过程期间是被锁定的。锁定型信号量更新过程通常包括:(i)锁定存储模块以及可选择的一个或多个总线;(ii)由请求部件读取信号量;(iii)响应于信号量的值,确定共享资源是否可用;(iv)如果信号量值指示共享资源可用,则改变该信号量以指示共享资源被预定由请求部件来使用,否则确定共享实体不可用,以及(v)解锁先前锁定的存储器以及一个或多个总线。该方法导致总线和存储性能的显著降低。
第二种方法包括地址监听(address snooping)。在该方法中,存储模块以及任选的一个或多个总线在整个过程期间并未锁定。请求部件并不阻止其它部件访问存储模块,但却监控该存储模块以确定是否在读取和期望的修改阶段之间修改了信号量。如果发生了这样的修改,则将原子操作标记为失败的原子操作,并且请求部件可以判定是否重复该原子操作。
监听型原子操作比锁定型原子操作更为带宽有效,但却更为复杂。Eiffert等人的题为“Method and apparatus for performing atomic accessesin a data processing system”的美国专利5727172描述了一种地址监听方法,在此通过引用将其包括在本文中。其要求监听逻辑来支持多个总线主控器。
由于很多现代半导体部件的以及尤其是微处理器的复杂性,大多数半导体器件的设计基于以前开发的部件。在一些情况下,共享资源的各种半导体组件应用不同类型的原子操作。
Krein的题为“Method for semaphore communication betweenincompatible bus locking architectures”的美国专利5548780描述了一种多总线体系结构,其包括用于在不同总线之间传播原子操作的多个总线桥,本专利在此通过引用包括入本文中。该方法要求信号量具有将指示共享资源的可用性的某个预定值。
Morrison等人的题为“Mechanism for implementing bus lockingwith a mixed architecture”的美国专利6381663描述了一种用于在支持原子操作的总线与不支持原子操作的另一总线之间桥接的装置和方法,在此通过引用将其包括在本文中。该解决方案就性能来说代价非常的高。
需要提供一种能够有效处理不同类型的原子事务的装置和方法。
发明内容
一种用于修改信息单元的方法,该方法包括:(i)通过第一总线接收启动监听型原子操作的请求,该监听型原子操作与位于存储模块的第一地址处的至少一个信息单元相关联;(ii)通过第一总线提供该信息单元;(iii)尝试完成与已更新的信息单元关联的监听型原子操作;以及(iv)如果在接收、提供和尝试中的至少一个阶段期间,所述第一地址由于锁定型原子操作而被锁定,则将该原子操作定义为失败的原子操作。
一种用于修改信息单元的方法,该方法包括:(i)通过第一总线接收对位于存储模块的第一地址处的信息单元进行原子读操作的请求;(ii)通过第一总线提供该信息单元;以及(iii)如果在接收和提供中的至少一个阶段期间,所述第一地址并未由于锁定型原子操作而被锁定,则尝试对已更新的信息单元进行监听型原子写操作。
一种用于修改信息单元的方法,该方法包括:(i)通过第一总线接收对位于存储模块的第一地址处的信息单元进行监听型原子读操作的请求;(ii)通过第一总线提供该信息单元;(iii)尝试对已更新的信息单元进行监听型原子写操作;以及(iv)如果在接收、提供和尝试中的至少一个阶段期间,所述第一地址由于锁定型原子操作而被锁定,则将包括该原子写操作的原子操作定义为失败的原子操作。
本发明提供了一种用于修改信息单元的装置,该装置包括:(i)存储模块,其适于将信息单元存储在第一地址处;以及(ii)控制器,其连接到第一和第二总线并且连接到存储模块;该控制器适于:(a)通过第一总线接收对信息单元进行原子读操作的请求;(ii)便于通过第一总线提供该信息单元;以及(iii)便于如果在接收和提供阶段期间,所述第一地址并未由于锁定型原子操作而被锁定,则尝试对已更新的信息单元进行监听型原子写操作。
本发明提供了一种用于修改信息单元的装置,该装置包括:第一请求部件(例如但不限于处理器、控制器等),其适于通过第一总线发送对位于存储模块的第一地址处的信息单元进行原子读操作的请求;控制器,其被配置以便于通过第一总线提供该信息单元;而如果在接收和提供中的至少一个阶段期间,所述第一地址并未由于锁定型原子操作而被锁定,则第一请求部件进一步适用于尝试对已更新的信息单元进行监听型原子写操作。
附图说明
根据以下结合附图所进行的详细描述将更加充分地理解和领会本发明,其中:
图1是根据本发明的实施例的对包括两个处理器以及共享存储模块的装置的示意性说明;
图2是对包括共享存储模块和第一处理器的子系统的示意性说明;
图3是根据本发明的实施例的对在原子操作期间交换的各种信号的示意性说明;
图4是根据本发明的实施例的说明了用于修改信息单元的方法的流程图;
图5是根据本发明实施例的、成功的监听型原子操作的时序图;以及
图6-7是根据本发明实施例的、由控制器执行的两个过程的流程图。
具体实施方式
以下详细描述包括本发明的各种实施例的非限制性例子。详细描述以及附图中所采用的特定术语和表达以及所公开的特定结构和操作细节仅仅是出于说明的目的,并不打算以任何方式限制如所附权利要求所描述的本发明的范围。
该方法和系统解决了与使用预定信号量值相关联的问题。
图1说明了根据本发明的实施例的装置10。装置10包括子系统100,而该子系统100依次包括诸如第一处理器110的第一请求部件,并且还包括共享存储模块(图2中标记为370)。装置10进一步包括系统总线60,其连接到:(i)诸如第二处理器20的第二请求实体,(ii)高级存储模块50,(iii)子系统100,(iv)外围设备70,以及(v)外部系统I/F 80。
高级存储模块50通常是装置10的主存储模块。它通常为各种处理器存储程序和数据。它还可以是支持芯片外存储器的二级高速缓存模块,但却不是必需这样。
系统总线60经由垫圈(也称为接口)380连接到子系统100。接口380连接到包括数据通道(图2中标记为130)和指令通道(图2中标记为340)的子系统100内的各个部件。接口380进行总线协议转换并且具有在数据传送与指令传送之间仲裁的仲裁能力。
装置10还包括DMA系统总线90,其通过DMA接口382连接到DMA控制器30、多个外围设备40以及共享存储模块370。DMA系统总线90可以由诸如处理器20的外部组件使用来访问共享存储模块370。
一方面,共享存储模块370连接到适合便于锁定型原子操作的DMA系统总线90。另一方面,共享存储模块370连接到便于监听型原子操作的两个数据总线XA 122和XB 124。
图2说明了根据本发明的实施例的装置10的子系统100。子系统100包括处理器110、数据通道130、存储器管理单元(MMU)300、指令通道340、共享存储模块370以及接口单元380。共享存储模块370可以是一级RAM存储模块,但却不是必需如此。
处理器110和指令通道340连接到单个程序总线120。
处理器110具有第一数据端口116和第二数据端口118。第一数据端口116通过第一数据总线(XA)122连接到数据通道130的第一端口132、连接到MMU 300以及共享存储模块370。第二数据端口118通过第二数据总线(XB)124连接到数据通道130的第二端口134、连接到MMU 300以及共享存储模块370。
数据通道130通过数据取总线(data fetch bus)126连接到接口380,而接口380又连接到诸如高级存储模块50的一个或多个附加存储器。
将共享存储模块370方便地划分成两组存储体,每组包括多个存储体以及控制器。
共享存储模块370接收各种控制信号,其包括状态信息并且特别是有关原子操作的信息。图3对这些信号中的一些进行了说明。
处理器110将与第一数据总线XA 122关联的三种控制信号发送给共享存储模块370。这些信号是ATOMIC_A信号500、READ_A信号502和WRITE_A信号504。处理器110从共享存储模块370接收ATOMIC_RESULT_A信号506,其指示由处理器110通过第一数据总线XA 122启动的监听型原子操作是失败的还是成功的。假设处理器110一旦通过第一数据总线XA 122启动原子操作就声明(assert)ATOMIC_A信号500,并且一旦原子操作结束就否定该信号。处理器110在通过第一数据总线XA 122的读操作期间声明READ_A信号502,并且在通过第一数据总线XA 122的写操作期间声明WRITE_A信号504。
处理器110将与第二数据总线XB 124关联的三种控制信号发送给共享存储模块370。这些信号是ATOMIC_B信号510、READ_B信号512和WRITE_B信号514。处理器110从共享存储模块370接收ATOMIC_RESULT_B信号516,其指示由处理器110通过第二数据总线XB 124启动的监听型原子操作是失败的还是成功的。假设处理器110一旦通过第二数据总线XB 124启动原子操作就声明ATOMIC_B信号510,并且一旦原子操作结束就否定该信号。处理器110在通过第二数据总线XB 124的读操作期间声明READ_B信号512,并且在通过第二数据总线XB 124的写操作期间声明WRITE_B信号514。
处理器20向共享存储模块370发送LOCK信号520、READ/WRITE信号528和TRANSACTION_REQUEST信号524。其从共享存储模块370接收REQUEST_ACK信号526。处理器20声明TRANSACTION_REQUEST信号524以请求通过DMA总线384的事务(例如读或写操作),以及响应于已声明的REQUEST_ACK信号526而发生的事务。在整个锁定型原子操作期间声明LOCK信号520,并且READ/WRITE信号528被声明以指示读操作以及被否定以指示写操作。
共享存储模块370存储信号量371,该信号量371可以指示诸如外围设备40(1)的某个外围设备是否可以由处理器20或处理器110控制。通常,共享存储模块370存储多个信号量,其反映了多个外围设备的可用性,但出于解释的简明性仅说明了单个信号量。
图4是说明了根据本发明的实施例用于修改信息单元的方法600的流程图。信息单元可以包括表示数据、地址、状态等的多个信号。方便起见,信息单元是信号量。
方法600开始于阶段610,其通过第一总线接收启动与位于存储模块的第一地址处的至少一个信息单元相关联的监听型原子操作的请求。该请求方便地是对开始监听型原子读操作的请求。参照图3中所陈述的例子,并且假设监听型原子操作与第一数据总线XA 122关联,那么处理器110声明ATOMIC_A信号500并且声明READ_A信号502。
根据本发明的实施例,处理器110还可以启动与第二数据总线XB124关联的监听型原子操作,并且共享存储器370控制器的每个可以在这些请求之间进行仲裁。根据本发明的另一实施例,处理器110能够一次启动一个原子操作(要么通过总线XA 122要么通过总线XB 124)并且不需要这样的仲裁。
阶段610之后是阶段620,其通过第一总线提供信息单元。参照图3中所陈述的例子,并且进一步假设信息单元位于第一组存储体内,则第一组控制器允许通过第一数据总线XA 122将所请求的数据单元发送给处理器110。
阶段620之后是阶段630,其读取信息单元并且确定是否应当修改信息单元来提供已修改的信息单元。如果答案是肯定的,则阶段630之后是阶段640,以及如果答案是否定的,则阶段630之后是结束原子事务的阶段660。参照图3中所陈述的例子,假设信息单元是反映外围设备40(1)的可用性的信号量371。如果信号量371指示外围设备40(1)不可用,那么处理器110可以判定不更新信号量371并且终止该原子操作。如果信号量371指示外围设备40(1)可用,那么处理器110可以尝试更新信号量371以指示处理器110将要控制外围设备40(1)。
阶段640包括尝试完成监听型原子操作。该完成可以包括对先前所修改的信息单元的原子写操作。参照图3中所陈述的例子,如果处理器110判定这样的更新是合适的,则通过第一数据总线XA 122发送已更新的信号量371。
阶段650包括:如果在接收、提供和尝试中的至少一个阶段期间,第一地址由于锁定型原子操作而被锁定,则将监听型原子操作定义为失败的原子操作。参照图3中所陈述的例子,如果在阶段620-640中的一个或多个阶段期间,共享存储模块370参与了与信号量371关联的锁定型原子操作,则结束由处理器110所启动的监听型原子操作。
处理器110可以尝试执行监听型原子操作直到其成功控制外围设备40(1),但却并不必需如此。例如,处理器110可以重复该会话达到预定量的迭代。
图5是根据本发明实施例的、成功的监听型原子操作的时序图。该时序图说明了时钟信号CLK 555、与第一数据总线XA 122关联的24位地址总线524、READ_A信号502、WRITE_A信号504、ATOMIC_A信号500以及ATOMIC_RESULT_A信号506。
在时钟的第一周期(T1),处理器110通过第一数据总线XA 122发送信号量371的24位地址(SEM_ADD),并且声明READ_A信号502以及ATOMIC_A信号500。在一个时钟周期之后否定READ_A。
假设在第二时钟周期(T2)将信号量371通过第一数据总线XA 122发送给处理器110。
在下一时钟周期(T3)期间,处理器110更新信号量371并且即将尝试将已更新的信号量写到共享存储模块370。
在下一时钟周期(T4),处理器110声明WRITE_A信号504并且还通过第一数据总线XA 122发送信号量371的24位地址。
在下一时钟周期(T5),处理器否定WRITE_A信号504以及ATOMIC_A信号500。假设处理器110成功写入已修改的信号量371,那么第一组处理器374声明ATOMIC_RESULT_A信号506。
根据本发明的实施例,图6说明了由控制器执行的第一过程700并且图9说明了同样由控制器执行的另一过程800,其中控制器可以是例如但不限于第一组处理器374。
第一过程700涉及监控支持总线(例如但不限于DMA总线384)的锁定型原子操作,而另一过程800涉及监控支持总线(例如第一和第二数据总线XA 122和XB 124)的监听型原子操作。出于解释的简明性,仅举例说明了对第一数据总线XA 122的监控。过程800的结果取决于过程700的结果。
过程700开始于阶段710,其监控支持锁定型原子操作的第一总线,直到检测到诸如原子读操作的原子操作。该监控可以包括接收并检查各种控制信号,例如LOCK信号520,但却不是必需如此。
一旦检测到这样的原子操作,阶段710之后就接着是阶段720,其存储原子操作所访问的存储地址。该地址在锁定型原子操作期间是锁定的。
阶段720之后是阶段730,其监控第一总线以检测原子操作结束(例如结束原子操作的原子写操作已经结束)。一旦原子操作结束,阶段730之后就接着是阶段740,阶段740清除先前存储的地址或者用别的方式指示其未被锁定。阶段740之后是阶段710。
过程800开始于阶段810,其监控支持监听型原子操作的第二总线,直到检测到诸如原子读操作的原子操作。可以通过监控各个控制信号(例如ATOMIC_A信号500)来检测这样的操作,但却不是必需如此。
一旦检测到这样的原子操作,阶段810之后就接着是阶段820,其确定原子操作是否与被锁地址关联。该被锁地址通常是被过程700锁定的地址。
如果该地址是锁定的,则在阶段830期间将原子操作标记为失败的。失败的原子操作可以结束,但通常即使原子操作失败,该过程也前进到阶段850。
如果地址并未锁定,则在阶段840期间将原子操作标记为成功的原子操作。
阶段840之后是阶段850,其监听第二总线以确定该地址是否是在监听型原子操作结束之前被锁定。如果答案是肯定的,那么在阶段860期间将原子操作标记为失败的,否则跟着是阶段870,其将原子操作标记为成功的原子操作。注意到,如果操作在阶段830期间被标记为失败的,则其在阶段870期间不会被标记为成功的原子操作。阶段870和阶段860之后是阶段810。
在不偏离如权利要求所述的本发明的精神和范围的情况下,本领域的普通工作人员可以想到文中所描述的内容的变化、修改和其它实现。因此,本发明并不是由前面的说明性描述来限定的,而是由以下权利要求的精神和范围来限定的。
Claims (28)
1.一种用于使用原子操作修改信息单元的方法,所述方法包括以下阶段:
通过第一总线接收启动与位于存储模块的第一地址处的至少一个信息单元相关联的监听型原子操作的请求;
通过所述第一总线提供所述信息单元;
尝试完成与已更新的信息单元相关联的监听型原子操作;以及
如果在所述接收阶段、提供和尝试期间,所述第一地址由于锁定型原子操作而被锁定,则将所述监听型原子操作定义为失败的原子操作。
2.根据权利要求1的所述方法,其中所述接收阶段包括:接收执行监听型原子读操作的请求。
3.根据权利要求1的所述方法,其中所述尝试完成阶段包括:尝试对已更新的信息单元执行监听型原子写操作。
4.根据权利要求1的所述方法,其中通过第二总线提供启动所述锁定型原子操作的请求。
5.根据权利要求1的所述方法,其中所述信息单元包括信号量。
6.根据权利要求1的所述方法,其中所述尝试阶段包括:通过所述第一总线提供已更新的信息单元。
7.根据权利要求1的所述方法,其进一步包括:重复所述接收、提供和尝试阶段,直到完成成功的监听型原子操作。
8.根据权利要求1的所述方法,其中所述锁定型原子操作是锁定型原子读操作。
9.根据权利要求1的所述方法,其中所述锁定型原子操作是锁定型原子写操作。
10.根据权利要求1的所述方法,其进一步包括如下阶段:接收启动对位于所述第一地址处的信息单元的监听型原子操作的另一请求,以及在所述监听型原子操作之间进行仲裁。
11.一种用于修改信息单元的方法,所述方法包括以下阶段:
通过第一总线接收对位于存储模块的第一地址处的信息单元执行原子读操作的请求;
通过所述第一总线提供所述信息单元;
如果在所述接收和提供中的至少一个阶段期间,所述第一地址并未由于锁定型原子操作而被锁定,则尝试对已更新的信息单元进行监听型原子写操作。
12.根据权利要求11的所述方法,其中通过第二总线提供启动所述锁定型原子操作的请求。
13.根据权利要求11的所述方法,其中所述信息单元包括信号量。
14.根据权利要求11的所述方法,其中所述尝试阶段包括:通过所述第一总线提供已更新的信息单元。
15.根据权利要求11的所述方法,其进一步包括:重复所述接收、提供和尝试阶段,直到完成成功的监听型原子操作。
16.根据权利要求11的所述方法,其中所述锁定型原子操作是锁定型原子读操作。
17.根据权利要求11的所述方法,其进一步包括如下阶段:接收对位于所述第一地址处的信息单元执行监听型原子读操作的另一请求,以及在所述监听型原子读操作之间进行仲裁。
18.一种用于使用原子操作修改信息单元的装置,所述装置包括:
存储模块,其适于将信息单元存储在第一地址;
控制器,其耦合到第一总线和所述存储模块;
所述控制器适于:接收启动与位于存储模块的第一地址处的至少一个信息单元相关联的监听型原子操作的请求;通过所述第一总线提供所述信息单元;尝试完成对已更新的信息单元的监听型原子操作;以及如果在所述接收、提供和尝试中的至少一个阶段期间,所述第一地址由于锁定型原子操作而被锁定,则将所述原子操作定义为失败的原子操作。
19.根据权利要求18的所述装置,其中通过第二总线提供启动所述锁定型原子操作的请求。
20.根据权利要求18的所述装置,其中所述信息单元包括信号量。
21.根据权利要求18的所述装置,其中所述控制器进一步适于通过所述第一总线发送失败的原子操作。
22.根据权利要求18的所述装置,其中所述锁定型原子操作是锁定型原子读操作。
23.根据权利要求18的所述装置,其进一步包括耦合到所述第一总线的第一处理器以及耦合到所述第二总线的第二处理器。
24.一种用于修改信息单元的装置,所述装置包括:
第一请求部件,其适于通过第一总线发送对位于存储模块的第一地址处的信息单元执行原子读操作的请求;
控制器,其被配置以便于通过所述第一总线提供所述信息单元;
而所述第一请求部件进一步适于:如果在接收和提供中的至少一个阶段期间,所述第一地址并未由于锁定型原子操作而被锁定,则尝试对已更新的信息单元执行监听型原子写操作。
25.根据权利要求24的所述装置,其中所述控制器进一步适于通过所述第一总线发送失败的原子操作。
26.根据权利要求24的所述装置,其中所述锁定型原子操作是锁定型原子读操作。
27.根据权利要求24的所述装置,其进一步包括第二请求部件,所述第二请求部件适于启动所述锁定型原子操作。
28.根据权利要求24的所述装置,其中所述第一请求实体是处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/933,191 | 2004-09-02 | ||
US10/933,191 US8281080B2 (en) | 2004-09-02 | 2004-09-02 | Method and apparatus for modifying an information unit using an atomic operation |
PCT/IB2005/052732 WO2006024985A2 (en) | 2004-09-02 | 2005-08-19 | Method and apparatus for modifying an information unit using an atomic operation in a system with a mixed architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101044459A true CN101044459A (zh) | 2007-09-26 |
CN101044459B CN101044459B (zh) | 2011-08-03 |
Family
ID=35944821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800354700A Expired - Fee Related CN101044459B (zh) | 2004-09-02 | 2005-08-19 | 在具有混合体系结构的系统中使用原子操作来修改信息单元的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8281080B2 (zh) |
EP (1) | EP1789876B1 (zh) |
JP (1) | JP2008511890A (zh) |
KR (1) | KR20070062537A (zh) |
CN (1) | CN101044459B (zh) |
AT (1) | ATE541258T1 (zh) |
TW (1) | TW200620104A (zh) |
WO (1) | WO2006024985A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886504A (zh) * | 2017-04-05 | 2017-06-23 | 上海矽奥微电子有限公司 | 基于ahb总线的多核soc中实现原子操作系统及方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473681B2 (en) * | 2009-02-17 | 2013-06-25 | Rambus Inc. | Atomic-operation coalescing technique in multi-chip systems |
US10929174B2 (en) * | 2016-12-15 | 2021-02-23 | Ecole Polytechnique Federale De Lausanne (Epfl) | Atomic object reads for in-memory rack-scale computing |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276847A (en) | 1990-02-14 | 1994-01-04 | Intel Corporation | Method for locking and unlocking a computer address |
US5428761A (en) | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5548780A (en) | 1994-07-21 | 1996-08-20 | Apple Computer, Inc. | Method for semaphore communication between incompatible bus locking architectures |
US5761731A (en) | 1995-01-13 | 1998-06-02 | Digital Equipment Corporation | Method and apparatus for performing atomic transactions in a shared memory multi processor system |
US5727172A (en) | 1995-05-01 | 1998-03-10 | Motorola, Inc. | Method and apparatus for performing atomic accesses in a data processing system |
US6529933B1 (en) * | 1995-06-07 | 2003-03-04 | International Business Machines Corporation | Method and apparatus for locking and unlocking a semaphore |
US5664092A (en) | 1995-09-20 | 1997-09-02 | National Instruments Corporation | System and method for performing locked test and set operations in an instrumentation system |
US6446149B1 (en) | 1998-03-03 | 2002-09-03 | Compaq Information Technologies Group, L.P. | Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system |
US6377581B1 (en) | 1998-05-14 | 2002-04-23 | Vlsi Technology, Inc. | Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks |
US6260098B1 (en) | 1998-12-17 | 2001-07-10 | International Business Machines Corporation | Shared peripheral controller |
US6381663B1 (en) | 1999-03-26 | 2002-04-30 | Hewlett-Packard Company | Mechanism for implementing bus locking with a mixed architecture |
US6490642B1 (en) * | 1999-08-12 | 2002-12-03 | Mips Technologies, Inc. | Locked read/write on separate address/data bus using write barrier |
US6487622B1 (en) | 1999-10-28 | 2002-11-26 | Ncr Corporation | Quorum arbitrator for a high availability system |
EP1299801B1 (en) * | 2000-06-12 | 2010-12-29 | MIPS Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6839816B2 (en) * | 2002-02-26 | 2005-01-04 | International Business Machines Corporation | Shared cache line update mechanism |
US7103528B2 (en) * | 2002-09-19 | 2006-09-05 | Lsi Logic Corporation | Emulated atomic instruction sequences in a multiprocessor system |
-
2004
- 2004-09-02 US US10/933,191 patent/US8281080B2/en not_active Expired - Lifetime
-
2005
- 2005-08-19 CN CN2005800354700A patent/CN101044459B/zh not_active Expired - Fee Related
- 2005-08-19 KR KR1020077007602A patent/KR20070062537A/ko not_active Application Discontinuation
- 2005-08-19 EP EP05790236A patent/EP1789876B1/en active Active
- 2005-08-19 WO PCT/IB2005/052732 patent/WO2006024985A2/en active Application Filing
- 2005-08-19 JP JP2007529074A patent/JP2008511890A/ja active Pending
- 2005-08-19 AT AT05790236T patent/ATE541258T1/de active
- 2005-08-24 TW TW094128943A patent/TW200620104A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886504A (zh) * | 2017-04-05 | 2017-06-23 | 上海矽奥微电子有限公司 | 基于ahb总线的多核soc中实现原子操作系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2008511890A (ja) | 2008-04-17 |
EP1789876B1 (en) | 2012-01-11 |
WO2006024985A2 (en) | 2006-03-09 |
WO2006024985A3 (en) | 2006-07-20 |
KR20070062537A (ko) | 2007-06-15 |
TW200620104A (en) | 2006-06-16 |
US20060047917A1 (en) | 2006-03-02 |
EP1789876A2 (en) | 2007-05-30 |
US8281080B2 (en) | 2012-10-02 |
CN101044459B (zh) | 2011-08-03 |
ATE541258T1 (de) | 2012-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1207670C (zh) | 具有重叠读写操作和可伸缩地址流水线化的数据传送系统 | |
US5191649A (en) | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions | |
CN1222890C (zh) | 多处理器系统中存储器访问的动态串行化 | |
CN1111799C (zh) | 用于多处理器系统的改进的信号发送协议方法和信号发送协议电路 | |
JP3832833B2 (ja) | 情報処理方法および装置 | |
CN1716186A (zh) | 使用睡眠-唤醒机制的比较和交换操作 | |
KR101775569B1 (ko) | 가상 재시도 큐 | |
EP0344216A1 (en) | METHOD AND ARRANGEMENT FOR IMPLEMENTING MULTI-LOCKING INDICATORS IN A MULTIPROCESSOR DATA PROCESSING SYSTEM. | |
US5271020A (en) | Bus stretching protocol for handling invalid data | |
CN1037982A (zh) | 在有仲裁的80386/82385微机系统运行中80386对系统总线的抢用 | |
EP3788495B1 (en) | High-performance streaming of ordered write stashes to enable optimized data sharing between i/o masters and cpus | |
WO2013090297A1 (en) | Providing common caching agent for core and integrated input/output (io) module | |
KR980010805A (ko) | 범용 컴퓨터 구조용 프로세서 서브시스템 | |
CN1670668A (zh) | 具有进行本征时钟控制的硬件机构的半导体器件 | |
US20100318713A1 (en) | Flow Control Mechanisms for Avoidance of Retries and/or Deadlocks in an Interconnect | |
CN1932792A (zh) | 用于数据处理的方法和设备 | |
US5659708A (en) | Cache coherency in a multiprocessing system | |
JP6129976B2 (ja) | 高効率アトミック演算を使用した方法および装置 | |
CN1280732C (zh) | 异构代理高速缓存一致性和限制数据传输的方法和装置 | |
US5822765A (en) | System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system | |
EP0358690A1 (en) | METHOD AND APPARATUS FOR STARTING TRANSACTIONS IN A MULTIPROCESSOR COMPUTER SYSTEM USING MULTIPLE LOCKING INDICATIONS. | |
CN101676887B (zh) | 一种基于ahb总线结构的总线监听方法及装置 | |
US8230117B2 (en) | Techniques for write-after-write ordering in a coherency managed processor system that employs a command pipeline | |
CN101044459A (zh) | 在具有混合体系结构的系统中使用原子操作来修改信息单元的方法和装置 | |
CN1294488C (zh) | 多处理器计算机系统的开机切换方法 |
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: 20110803 Termination date: 20150819 |
|
EXPY | Termination of patent right or utility model |