CN1942858A - 用于高效多任务化的方法和装置 - Google Patents
用于高效多任务化的方法和装置 Download PDFInfo
- Publication number
- CN1942858A CN1942858A CNA2004800338493A CN200480033849A CN1942858A CN 1942858 A CN1942858 A CN 1942858A CN A2004800338493 A CNA2004800338493 A CN A2004800338493A CN 200480033849 A CN200480033849 A CN 200480033849A CN 1942858 A CN1942858 A CN 1942858A
- Authority
- CN
- China
- Prior art keywords
- data
- shared storage
- memory interface
- operationally
- reservation
- 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.)
- Pending
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
- G06F9/46—Multiprogramming arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/522—Barrier synchronisation
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
一种系统包括:共享存储器;存储器接口单元,耦接到共享存储器,并且可操作地用于在所请求的地址从共享存储器检索数据,并且在所请求的地址将数据写入到共享存储器;以及多个处理单元,与存储器接口通信,并且可操作地用于(i)指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作,以及(ii)指示存储器接口单元在指定地址将数据存储在共享存储器中,其中至少一个处理单元包括具有一个或多个位的状态寄存器,该一个或多个位表示保留是否丢失:是否修改了位于共享存储器中的指定地址的数据。
Description
技术领域
本发明涉及用于使用计算机处理器的多处理器体系结构的高效数据处理,特别是用于采用一个或多个共享存储器的宽带处理环境中的高效多任务化的方法和装置。
背景技术
实时多媒体应用程序变得日益重要。这些应用程序要求非常快的处理速度,例如每秒数千兆位数据。虽然单个处理单元能够具有快处理速度,但是它们一般不能匹配多处理器体系结构的处理速度。实际上,在多处理器系统中,多个处理器可以并行(或至少协作)操作,以便实现期望的处理结果。
可以采用多处理技术的计算机和计算设备的类型是广泛的。除个人计算机(PC)和服务器之外,这些计算设备还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视等等。
多处理器系统中的设计关注是如何管理在多个处理单元之间的共享存储器的使用。实际上,可能需要处理器的同步,以便实现期望的处理结果,其可能要求多独占操作。例如,可以利用所谓的原子读序列、原子修改序列、和/或原子写序列来实现正确的同步。
这样的多处理器系统中的另一关注是特别当在诸如手持式设备等的小封装中利用多个处理器时,管理由该多个处理器产生的热量。虽然可以采用机械热管理技术,但是它们不是完全令人满意的,这是因为它们向最终产品增加了再生材料和劳务成本。机械热管理方法还可能不提供足够的冷却。
多处理器系统中的另一关注是特别当多个处理器用于诸如膝上型计算机、手持式设备等的便携式设备时,高效地使用可用的电池功率。实际上,在给定系统中采用的处理器越多,从电源吸收的功率就越多。一般地,由给定处理器吸收的功率量是由处理器执行的指令的数目以及处理器操作的时钟频率的函数。
因此,在本技术领域内需要用于实现高效多处理的新方法和装置,其减少由处理器产生的热量以及由此吸收的能量。
发明内容
还开发了一种新的计算机体系结构,以便克服至少一些上述问题。
根据该新的计算机体系结构,由公共计算模块(或单元区(cell))构造多处理器计算机系统的所有处理器。该公共计算模块具有一致的结构,并且优选地采用相同的指令集体系结构。多处理器计算机系统可以由一个或多个客户端、服务器、PC、移动计算机、游戏机、PDA、机顶盒、器具、数字电视以及使用计算机处理器的其它设备形成。
需要时,多个计算机系统可以是网络的成员。一致的模块结构允许由多处理器计算机系统高效、高速地处理应用程序和数据,并且如果采用网络,则允许在网络上快速地传送应用程序和数据。该结构还简化了各种大小和处理能力的网络成员的构建,以及用于由这些成员处理的应用程序的准备。
基本处理模块是处理器元件(PE)。PE优选地包括在公共的内部地址和数据总线上耦接的处理单元(PU)、直接存储器存取控制器(DMAC)、以及多个附连的处理单元(APU)如四个APU。PU和APU与共享的动态随机存取存储器(DRAM)交互,该共享的动态随机存取存储器可以具有横杆体系结构。PU调度和安排由APU处理数据和应用程序。APU以并行和独立方式执行该处理。DMAC控制由APU存取存储在共享DRAM中的数据和应用程序。
根据该模块结构,由特定的计算机系统采用的PE的数目基于由该系统要求的处理能力。例如,服务器可以采用四个PE,工作站可以采用两个PE,并且PDA可以采用一个PE。被分配用于处理特定的软件单元区的PE的APU的数目取决于该单元区内的程序和数据的复杂度和大小。
多个PE可以与共享的DRAM相关联,并且可以将DRAM分离成多个区域,这些区域中的每个被分离成多个存储体。可以由存储体控制器控制DRAM的每个区域,PE的每个DMAC可以存取每个存储体控制器。在该配置中,每个PE的DMAC可以存取共享的DRAM的任何部分。
该新的计算机体系结构还采用新的程序设计模型,其提供了在网络上传送数据和应用程序,以及在网络的成员之间处理数据和应用程序。该程序设计模型采用在网络上传送以便由任何网络成员处理的软件单元区。每个软件单元区具有相同的结构,并且可以包含应用程序和数据两者。由于由模块化计算机体系结构提供的高速处理和传送速度,可以快速地处理这些单元区。应用程序的代码优选地基于相同的公共指令集和ISA。每个软件单元区优选地包含全局标识(全局ID),以及描述单元区的处理所需的计算资源量的信息。由于所有计算资源具有相同的基本结构,并且采用相同的ISA,因此执行该处理的特定资源可以位于网络上的任何地方,并且被动态地分配。
根据本发明的一个或多个方面,一种方法包括:a)发出以保留方式装载(load with reservation)指令,其包括可以定位数据的、到共享存储器的所请求地址;以及b)从共享存储器接收数据,使得可以对该数据执行任何操作。该方法还优选地包括c)以下的至少一个:(i)进入低功耗模式和(ii)启动另一处理任务;以及d)接收保留丢失的通知,当修改了位于共享存储器中的该地址的数据时,保留丢失。
优选地,保留丢失的通知用作进行(i)低功耗模式中断;以及(ii)其它处理任务中断中的至少一个的中断。优选地,当该通知表示保留丢失时,重复该方法的步骤a)到d)。
该方法还可以包括,当从共享存储器存取数据时,将与发出以保留方式装载指令的处理器相关联的标识号码写入到与共享存储器中的所寻址位置相关联的状态位置中。
另外,该方法可以包括通过监视是否修改了位于共享存储器中的该地址的数据,监视保留是否丢失。优选地,该方法还包括,在响应于存储指令而将数据存储在共享存储器中之前,当对位于共享存储器中的该地址的数据作出修改时,使处理器的状态寄存器中的保留丢失位表示保留丢失。确定保留是否丢失的步骤可以包括轮询状态寄存器,并且当保留丢失位这样表示时,确定保留丢失。
根据本发明的一个或多个其它方面,一种系统可以包括:共享存储器;存储器接口单元,可操作地耦接到共享存储器;以及多个处理单元,与存储器接口通信。优选地,处理单元中的至少一个可操作地用于执行上面关于本发明的方法所述的一个或多个步骤。
根据本发明的一个或多个其它方面,一种系统可以包括:共享存储器;存储器接口单元,耦接到共享存储器并且可操作地用于在所请求地址从共享存储器检索数据,并且在所请求地址将数据写入到共享存储器;以及多个处理单元,与存储器接口通信。
优选地,处理单元可操作地用于(i)指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作,以及(ii)指示存储器接口单元在指定地址将数据存储在共享存储器中。处理单元中的至少一个优选地包括状态寄存器,其具有表示保留是否丢失的一个或多个位,当由另一处理单元对位于共享存储器中的指定地址的数据作出修改时,保留丢失。
优选地,该至少一个处理单元可操作地用于,当数据不是预定值时,进入低功耗模式。优选地,该至少一个处理单元还可操作地用于响应于允许中断低功耗模式的事件而退出低功耗模式。优选地,该至少一个处理单元还可操作地用于轮询状态寄存器的该一个或多个位,以便确定是否发生了该事件。
优选地,该至少一个处理单元还可操作地用于,当状态寄存器的该一个或多个位表示保留丢失时,重新指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作。
允许中断低功耗模式的事件可以是保留丢失。可选地或附加地,允许中断低功耗模式的事件可以是数据被存储在共享存储器中的指定地址的确认。
优选地,存储器接口单元可操作地用于,当从共享存储器存取数据时,将与发出以保留方式装载指令的该至少一个处理单元相关联的标识号码写入到与共享存储器的指定地址相关联的状态位置中。优选地,存储器接口单元还可操作地用于通过监视是否修改了位于共享存储器中的指定地址的数据,监视保留是否丢失。
优选地,存储器接口单元还可操作地用于,当修改位于共享存储器中的指定地址的数据时,使该至少一个处理单元的状态寄存器的一个或多个位表示保留丢失。
根据本发明的一个或多个其它方面,一种系统可以包括:共享存储器;存储器接口单元,耦接到共享存储器并且可操作地用于在所请求地址从共享存储器检索数据并且在所请求地址将数据写入到共享存储器;以及多个处理单元,与存储器接口通信。优选地,处理单元可操作地用于(i)指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作,以及(ii)进入到低功耗模式。
优选地,该至少一个处理单元还可操作地用于响应于允许中断低功耗模式的事件而退出低功耗模式。允许中断低功耗模式的事件可以是保留丢失。可选地或附加地,允许中断低功耗模式的事件可以是数据被存储在共享存储器中的指定地址的确认。
优选地,该至少一个处理单元包括具有一个或多个位的状态寄存器,该位表示保留是否丢失,例如,位于共享存储器中的指定地址的数据是否被修改。
优选地,存储器接口单元可操作地用于,当修改位于共享存储器中的指定地址的数据时,使该至少一个处理单元的状态寄存器的一个或多个位表示保留丢失。
优选地,该至少一个处理单元还可操作地用于轮询状态寄存器的一个或多个位,以确定保留是否丢失。优选地,该至少一个处理单元还可操作地用于,当状态寄存器的一个或多个位表示保留丢失时,重新指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作。
优选地,存储器接口单元可操作地用于,当从共享存储器存取数据时,将与发出以保留方式装载指令的该至少一个处理单元相关联的标识号码写入到与共享存储器的指定地址相关联的状态位置中。优选地,存储器接口单元还可操作地用于监视是否修改了位于共享存储器中的指定地址的数据。
根据这里结合附图的描述,本发明的其它方面、特征和优点对于本领域的技术人员将会变得清楚。
为说明起见,存在目前优选的、在附图中示出的形式,然而,应当理解,本发明不限于所示的确切布置和手段。
附图说明
图1是示出根据本发明的处理器元件(PE)的示例性结构的图;
图2是示出根据本发明的示例性宽带引擎(BE)的结构的图;
图3是示出根据本发明的示例性附连处理单元(APU)的结构的图;
图4是适于实现根据本发明的一个或多个方面的多处理器系统的可选配置;
图5是示出根据本发明的处理例程的一个或多个方面的流程图;
图6是示出根据本发明的处理例程的一个或多个其它方面的流程图;
图7是示出根据本发明的处理例程的一个或多个其它方面的流程图;
图8是示出根据本发明的处理例程的一个或多个其它方面的流程图;以及
图9示出了根据本发明的示例性计算机网络的总体体系结构。
具体实施方式
现在参考附图,其中相同的标号表示相同的元件,图1示出了根据本发明的一个或多个方面的基本处理模块或处理器元件(PE)的方框图。如该图所示,PE 201包括I/O接口202、处理单元(PU)203、直接存储器存取控制器(DMAC)205、以及多个附连的处理单元(APU),即,APU 207、APU 209、APU211和APU 213。本地(或内部)PE总线223在PU 203、这些APU、DMAC 205和存储器接口215之间传送数据和应用程序。例如,本地PE总线223可以具有传统的体系结构,或者可以被实现成分组交换网络。作为分组交换网络的实现,虽然需要更多的硬件,但是增加了可用带宽。
可以使用各种用于实现数字逻辑电路的方法来构造PE 201。然而,优选地,将PE 201构造成硅衬底上的、采用互补金属氧化物半导体(CMOS)的单个集成电路。用于衬底的可选材料包括砷化镓、砷化镓铝以及其它采用多种掺杂物的所谓III-B化合物。还可以使用超导材料,例如,快速单磁通量子(RSFQ)逻辑电路来实现PE 201。
PE 201通过高带宽存储器连接227紧密地与动态随机存取存储器(DRAM)225相关联。DRAM 225用作PE 201的主存储器。虽然DRAM 225优选地是动态随机存取存储器,但是可以使用其它装置实现DRAM 225,例如,将其实现为静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器或全息存储器。DMAC 205和存储器接口215帮助DRAM 225与PE201的APU和PU 203之间的数据传输。
注意,可以将DMAC 205和/或存储器一体化地布置在一个或多个APU和PU 203之内。注意,可以通过担当主处理单元角色的APU中的一个来实现PU 203,其中主处理单元调度和/或安排由APU处理数据和应用程序。
例如,PU 203可以是能够独立处理数据和应用程序的标准处理器。在操作中,PU 203调度和安排由APU处理数据和应用程序。APU优选地是单指令多数据(SIMD)处理器。在PU 203的控制下,APU以并行和独立的方式执行这些数据和应用程序的处理。DMAC 205控制由PU 203和APU存取存储在共享DRAM 225中的数据和应用程序。
可以将多个诸如PE 201的PE加入或封装到一起,以提供增强的处理能力。例如,如图2所示,例如,可以将两个或多个PE封装或加入到一个或多个芯片封装之内,以形成单处理器系统。该配置被称作宽带引擎(BE)。如图2所示,BE 301包含两个PE,即,PE 201A和PE 201B。在BE总线311上进行这些PE之间的通信。宽带宽存储器连接227提供共享DRAM 225和这些PE之间的通信。代替BE总线311,可以通过DRAM 225和该存储器连接来发生BE 301的PE之间的通信。
一个或多个输入/输出(I/O)接口202A和202B以及外部总线(未示出)提供宽带引擎301和其它外部设备之间的通信。类似于由PE的APU执行的应用程序和数据的并行和独立处理,BE 301的每个PE 201A和201B以并行和独立的方式执行数据和应用程序的处理。
图3示出了APU 400的结构和功能。APU 400包括本地存储器406、寄存器410、一个或多个浮点单元412以及一个或多个整数单元414。此外,然而,取决于所要求的处理能力,可以采用更多或更少数目的浮点单元412和整数单元414。在优选实施例中,本地存储器406包含256千字节的存储量,并且寄存器410的容量是128×128位。浮点单元412优选地以每秒320亿次浮点操作(32GFLOPS)的速度操作,并且整数单元414优选地以每秒320亿次操作(32GOPS)的速度操作。
本地存储器406优选地不是高速缓冲存储器。对于APU的高速缓存一致性(cache coherency)支持是不必要的。作为替代,优选地将本地存储器406构造成静态随机存取存储器(SRAM)。PU 203可以要求支持由PU 203启动的直接存储器存取的高速缓存一致性。然而,对于由APU 400启动的直接存储器存取,或者对于从和向外部设备的存取,不要求高速缓存一致性支持。
APU 400还包括总线404,用于向APU 400和从APU 400传送应用程序和数据。在优选实施例中,总线404是1,024位宽。APU 400还包括内部总线408、420和418。在优选实施例中,总线408具有256位的宽度,并且提供本地存储器406和寄存器410之间的通信。总线420和418分别提供寄存器410和浮点单元412、以及寄存器410和整数单元414之间的通信。在优选实施例中,从寄存器410到浮点或整数单元的总线418和420的宽度是384位,并且从浮点或整数单元412、414到寄存器410的总线418和420的宽度是128位。从寄存器410到浮点或整数单元412、414的这些总线的宽度大于从这些单元到寄存器410的总线的宽度在处理期间容纳从寄存器410的更大数据流。每个计算需要最大三个字。然而,每个计算的结果通常仅仅是一个字。
APU 400的寄存器410优选地包括事件状态寄存器410A、事件状态屏蔽寄存器410B、以及事件结束状态确认寄存器410C。如下将讨论的那样,这些寄存器410A-C可以用来帮助更高效的处理。事件状态寄存器410A包含多个位,例如32位。每个位(或相应的位组)代表诸如外部事件的事件状态。事件状态寄存器410A优选地包括一个或多个位,其包含锁定线保留丢失事件的状态。当由APU 400发出特定的命令(例如,获得锁定线并保留命令),并且保留由于某个实体修改DRAM 225的相同锁定线中的数据而被重置时,触发锁定线保留丢失事件。后面将在本描述中更详细地讨论该事件的意义。
除该锁定线保留丢失事件之外,事件还可以包括信号通知事件、递减器事件、SPU邮箱被PU写入事件、DMA队列空闲事件、DMA标签命令停顿和通知事件、DMA标签状态更新事件等。
当接收到目标为APU 400的信号通知寄存器(未示出)的命令时,触发信号通知事件。当另一处理器(或外部设备)向APU 400发送信号时,发生信号通知。通过写入到APU 400的信号通知地址来发送信号。使用该通知,以便另一处理器可以向APU 400通知需要由APU 400采取某个操作。可以通过软件将信号位分配给特定单元,使得可以通过APU 400的软件一起接收并且正确识别多个信号。
通过APU 400的递减器计数从逻辑0到逻辑1的转变来触发递减器事件。当PU 203将消息写入到APU 400的邮箱(未示出),使得邮箱数据可以从APU400的邮箱信道获得时,触发APU邮箱事件。
通过DMA命令队列从满到非满状态的转变来触发DMA队列空闲事件。DMA队列空闲事件由APU 400用来确定什么时候DMA队列中的空间可用于接收更多命令。不需要总是使用DMA队列空闲事件;作为替代,当向DMAC205发送命令的先前尝试失败时使用它。
当由存储器接口215和/或DMAC 205接收到一个或多个DMA命令(具有设置了停顿和通知标志的列表元素)的DMA命令时,发生DMA标签命令停顿和通知事件。当此发生时,完成了这些列表元素,并且暂停列表的剩余部分的处理,直至由运行在APU 400上的程序确认了停顿为止。DMA标签命令停顿和通知事件由APU 400用来确定什么时侯完成了DMA列表中的特定命令元素。这可以用于同步移动数据的程序,或者它可用于暂停DMA列表的处理,使得APU 400可以修改DMA列表中的剩余元素。
当将标签状态更新请求写入到APU 400内的特定信道中(这请求标签状态更新)时,发生DMA标签状态更新事件。当由DMAC 205完成了特定DMA命令集时,一旦由APU 400请求被中断(被通知),就可以使用DMA标签状态事件。这用来支持与程序执行并发地进行DMA传输,以提供高效的资源利用。
如在数据处理期间可能需要的那样,APU 400可以轮询事件状态寄存器410A,以确定这些或其它事件中的一个或多个的状态。优选地,一个或多个事件在APU 400之外并且/或者在特定的PE 201之外。优选地利用事件状态屏蔽410B来屏蔽事件状态寄存器410A的某些位,使得仅仅特定一个或多个位是有效的。优选地,保持由事件状态屏蔽寄存器410B提供的数据,直至它被后续的写操作改变为止。这样,不需要为每个(外部)事件状态查询或等待事件重新指定数据。因此,在被屏蔽时发生的事件将不在事件状态中表示。然而,屏蔽事件将保持未决(pending),直至不被屏蔽,或直至通过写入到事件结束状态确认寄存器410C而被确认。对于未决但被屏蔽的事件,写入事件结束状态确认寄存器410C将导致清除该事件。实际上,由于优选地被屏蔽事件保持未决直至不被屏蔽,因此确认没有在事件状态寄存器410A中报告的屏蔽事件将导致清除该事件。
注意,虽然优选地使用图2的BE 301实施本发明,但是也可以采用可选的多处理器系统。例如,图4的多处理器系统450可以用来实施本发明的一个或多个方面。多处理器系统450包括多个处理器452A-C(可以使用任意数目)、其在总线45B上耦接到存储器接口454。存储器接口454在另一总线460上与诸如DRAM的共享存储器456通信。存储器接口454可以分布在处理器452A-C之间(如同图2的存储器接口215A-B),并且需要时也可以与DMAC协力工作。优选地利用图3的相同或类似结构来实现处理器452A-C。
当讨论用于同步和/或互斥的原子更新原语的论述时,特别是与锁定线保留丢失事件有关的事件状态寄存器410A-C(图3)的意义将会变得更清楚。为了更全面理解本发明的重要和有利方面,首先将讨论对传统的多处理器同步和/或互斥操作的理解。由PE 201提供同步和互斥操作,使得运行在APU 400上的软件具有同步对共享存储器DRAM 225中的数据的存取、以及同步多个APU 400的执行的能力。为此,提供原子序列,其包括读序列、修改序列和写序列。这些序列典型地采取下列形式:比较和交换指令、取出和无操作(no-op)指令、取出和存储指令、取出和“与”指令、取出和递增/加法指令、以及测试和设置指令。在PU 203上,这些序列实际上不是指令,而是利用与原子更新原语结合的软件来实现,例如,以保留方式装载和有条件存储。举例来说,测试和设置原语以及比较和交换原语的目前软件实现利用下面的伪代码:
loop:以保留方式装载
与预期值相比较
不等于分支到loop
有条件地存储新值
如果保留丢失,则分支返回到loop
exit:继续
上面的伪代码序列和其它类似的同步序列要求在锁定线上“旋转(spinning)”,直至数据等于预期值。由于该旋转可能在相当长的时间段内发生,因此产生浪费的CPU循环和存储器循环。这样,给定的APU 400消耗过多的功率量,并且还耗散过多的热量。
根据本发明的一个或多个方面,使用事件状态寄存器410A的一个或多个事件如锁定线保留丢失事件来向APU 400通知原子更新保留丢失。通过利用特定的数据装载命令(例如,获得锁定线并保留)来获得原子更新保留。一般而言,当发生位于共享存储器DRAM 225中的保留地址(锁定线)的数据的修改,特别是外部修改时,保留丢失。通过利用该技术,例如通过下面的伪代码,可以重写测试和设置原语以及比较和交换原语的软件实现:
loop:以保留方式装载
与预期值相比较
如果相等,则分支至continue
从外部事件信道读取
停止并等待外部事件
如果事件是“保留丢失”,
则分支到loop,
否则分支到其它任务
continue:有条件地存储新值
如果保留丢失,则分支返回到loop
上面的与事件状态寄存器410A结合的伪代码提供了由APU 400消耗的功率的显著减少,因此提供了由APU 400耗散的功率的显著减少。具体地说,APU 400可以进入“暂停模式”或低功耗模式,直至特定的外部事件中断该模式。举例来说,可以通过停止APU 400的系统时钟而进入低功耗模式。这样,当特定的APU 400正在等待获取共享存储器DRAM 225中的特定数据片段时,或者当在同步屏障(barrier)值上等待时,它可以进入低功耗模式,并且等待外部事件来中断低功耗状态。使用保留丢失事件(如在事件状态寄存器410A中表示的那样)作为允许中断APU 400的低功耗模式的外部事件是对原子更新保留系统的独特且有力的扩展,并且有利地允许更高效的多处理。
为了更全面地描述使用保留丢失事件来允许APU 400参与原子更新,现在参考图3和5。图5是示出优选地由一个或多个PE 201(图2)执行的特定操作的流程图。作为该处理的开始,特定的APU 400向DMAC和/或存储器接口215发出装载指令(操作500)。注意,DMAC 205和存储器接口215一起工作以从DRAM 225读取和向DRAM 225写入数据。虽然这些元件被显示为单独的元件,但是可以将它们实现为单个单元。另外,DMAC 205的功能和/或存储器接口215的功能可以被认为是由“存储器接口”或“存储器管理”单元执行。
装载指令优选地是以保留方式装载数据,在上文中将其称为获得锁定线并保留命令。本质上,这是对位于共享存储器DRAM 225的特定有效地址的数据的请求。在操作502,存储器接口(DMAC 205和/或存储器接口215)优选地确定装载指令是标准装载指令还是获得锁定线并保留指令。如果装载指令是标准指令,则处理流程优选地分支到操作504,其中利用标准处理技术来满足装载指令。
另一方面,如果装载指令是获得锁定线并保留指令,则处理流程优选地分支到操作506。在此,存储器接口优选地将由特定APU 400发出的有效地址转换成共享存储器DRAM 225的物理地址。在操作508,存储器接口存取存储在DRAM 225的该物理地址的数据,以便传输到APU 400。优选地,当从位于DRAM 225的该物理地址的一个或多个线存取数据时,存储器接口将APU 400的标识号码写入到与该物理地址相关联的状态位置中。在操作512,存储器接口215优选地重置APU 400的事件状态寄存器410A的保留丢失状态位(一个或多个)。这锁定位于该物理地址的一个或多个存储器线。存储器接口优选地监视DRAM 225的该一个或多个保留线。如果另一处理器如在特定PE 201之外的处理器从DRAM 225的一个或多个保留线修改数据(操作516),则存储器接口优选地设置保留该一个或多个线的APU 400的事件状态寄存器410A的保留丢失状态字节(操作518)。
参考图6,当存储器接口监视DRAM 225的一个或多个保留线(操作514)时,APU 400优选地从共享存储器DRAM 225接收所请求的数据(以保留方式)(操作520)。如果数据需要被处理(操作522),则APU 400执行如由运行在APU 400上的软件程序指示的、任何必要的操作(操作524)。在操作526,APU400进入低功耗模式(休眠模式)。举例来说,只有当数据不是预定值时,APU400才可以进入低功耗模式。这在期望屏障同步时具有特别的用途(下面将对此进行更详细的讨论)。APU 400保持在该低功耗模式中,直至发生合乎条件的外部事件(操作528)。
举例来说,外部事件可以是保留丢失(例如,外部处理器从DRAM 225的一个或多个保留线修改数据)。在操作530,APU 400优选地轮询事件状态寄存器410A,并且确定是否设置了一个或多个保留状态位(操作532)。如果保留没有丢失(例如,没有设置保留状态位),则APU 400自由地执行其它任务(操作534)。然而,如果APU 400确定了保留丢失(例如,设置了保留状态位),则该处理优选地循环回到开始(图5),其中重复该处理直至APU 400执行其数据操纵任务而没有丢失保留。
如上所述,可以与根据屏障同步技术执行多处理相结合地利用本发明。例如,当多处理系统(例如,图4的系统450)中的多个处理器之一在所谓的同步屏障值上等待时,它可以进入低功耗模式,或者启动另一处理任务的执行,直至发生诸如保留丢失事件的外部事件。当期望防止多个处理器启动下一处理任务,直至多处理系统中的所有处理器完成了当前处理任务时,利用屏障同步技术。
现在将参考图4和7-8更详细地讨论有关与屏障同步技术相结合使用本发明的更多细节。根据屏障同步技术,将共享变量s存储在共享DRAM 456中,并且利用它来防止或准许处理器452A-C执行下一处理任务,直至所有这样的处理器完成当前处理任务。更具体地说,并且参考图7,给定处理器452执行要与其它处理器的处理任务同步的多个处理任务之一(例如,当前处理任务)(操作600)。当完成当前任务时,处理器452向存储器接口452发出以保留方式装载指令,以获得作为局部变量w存储的、共享变量s的值(操作602)。为讨论起见,假定将共享变量s的值初始化为0,应当理解,初始值可以是任何适当的值。在操作604,处理器452朝向值N递增或递减局部变量w的值,其中N代表参与屏障同步处理的处理器452的数目。假定参与屏障同步处理的处理器的数目是3,则N的适当值为3。与该示例一致,在操作604,处理器452递增局部变量w的值。
在操作606,处理器452发出有条件存储指令,以帮助将局部变量w的值存储到共享DRAM 456内与共享变量s相关联的存储器位置中。假定在步骤602装载的共享变量s的值是初始值0,则在操作606有条件地存储的值将是1。在操作608,确定保留是否丢失。如果保留丢失,则处理流程循环回到操作602,并且重复操作602、604和606。如果保留没有丢失,则处理流程前进到操作610(图8)。注意,共享变量s中的值1的成功存储表示三个处理器中的一个完成了当前处理任务。
在操作610,确定局部变量w的值是否等于N。如果该确定是肯定的,则处理流程前进到操作612,其中将目标值作为共享变量s存储在共享DRAM456中。此后,处理流程前进到操作614,其也是当操作610的确定是否定的时处理流程前进之处。在操作614,处理器452向存储器接口454发出以保留方式装载指令,以便从共享DRAM 456获得共享变量s的值,并且将其存储到局部变量w中。
在操作616,确定局部变量w的值是否等于目标值。举例来说,目标可以是0或某个其它数。如果该确定是肯定的,则处理流程优选地前进到操作618,其中执行多个处理任务的下一个任务。换句话说,当共享变量s的值被设为目标值时,则准许处理器452启动下一处理任务。如果操作616的确定是否定的,则处理流程优选地前进到操作620,其中处理器452进入低功耗状态或者启动不与屏障同步处理相关联的另一处理任务。
在操作622,确定保留是否丢失(即,操作614的以保留方式装载)。如果否,则处理器452保持在操作620的状态中。然而,当保留丢失时,在操作624,中断低功耗状态(或者暂停或终止其它处理任务),并且处理循环回到操作614。重复操作614、616、620、622和624,直至操作616的确定是肯定的,由此处理流程前进到操作618,并且启动多个处理任务的下一个任务。一旦处理器452完成下一处理任务,处理流程就循环回到操作602,其中重复整个处理。
有利地,屏障同步技术中的原子更新原理的使用允许参与屏障同步处理的处理器452进入低功耗状态或启动另一处理任务(操作620),这减少了功率消耗和耗散,并且改善了整个多处理功能的效率。
根据本发明的一个或多个其它方面,PE 201和/或BE 301可以用来实现用于如图9所示的计算机系统101的总体分布式体系结构。系统101包括网络104,多个计算机和计算设备连接到其上。网络104可以是LAN、诸如因特网的全球网络、或者任何其它计算机网络。
连接到网络104的计算机和计算设备(网络的“成员”)例如包括客户端计算机106、服务器计算机108、个人数字助理(PDA)110、数字电视(DTV)112以及其它有线或无线的计算机和计算设备。网络104的成员所采用的处理器由PE 201和/或BE 301构造。
由于系统101的服务器108执行比客户端106更多的数据和应用程序的处理,因此服务器108包含比客户端106更多的计算模块。另一方面,在本示例中,PDA 110执行最少量的处理。因此,PDA 110包含最少数目的计算模块。DTV 112执行在客户端106和服务器108之间的级别的处理。因此,DTV 112包含在客户端106和服务器108之间若干的计算模块。
系统101的这一同构配置有助于适应性、处理速度和处理效率。因为系统101的每个成员使用一个或多个(或某个部分)相同计算模块(PE 201)执行处理,所以执行数据和应用程序的实际处理的特定计算机或计算设备是不重要的。而且,可以在网络的成员之间分担特定应用程序和数据的处理。通过贯穿系统101唯一地识别包括由该系统101处理的数据和应用程序的单元区,可以将处理结果传送到请求该处理的计算机或计算设备,而不考虑该处理发生在何处。因为执行该处理的模块具有公共的结构,并且采用公共的ISA,所以避免了用于实现处理器之间的兼容性的附加软件层的计算负担。该体系结构和程序设计模型有助于执行例如实时多媒体应用程序所需的处理速度。
为了进一步利用由系统101帮助的处理速度和效率,将由该系统处理的数据和应用程序封装到唯一识别的、统一格式化的软件单元区102中。每个软件单元区102包含或可以包含应用程序和数据。每个软件单元区还包含用于贯穿网络104和系统101全局识别单元区的ID。软件单元区的结构的这一统一性、以及贯穿网络的软件单元区唯一标识有助于在网络的任何计算机或计算设备上处理应用程序和数据。例如,客户端106可以创制软件单元区102,但是由于客户端106的有限处理能力,将该软件单元区传送到服务器108,以便处理。因此,基于网络104上的处理资源的可用性,软件单元区102可以贯穿网络104迁移,以便处理。
系统101的处理器和软件单元区102的同构结构还避免了现今的异构网络的许多问题。例如,避免了低效的程序设计模型,其设法允许使用任何指令集在任何ISA上处理应用程序,例如,诸如Java虚拟机的虚拟机。因此,系统101可以比传统的网络远远有效且高效地实现宽带处理。
优选地,计算网络的一个或多个成员利用保留丢失事件作为触发器,以便允许中断特定APU 400的低功耗模式。此外,如果保留丢失,则APU 400优选地重复其数据操纵任务直至完成它,而不丢失共享存储器DRAM 225中的保留。这是对原子更新保留系统的独特且有力的扩展,并且允许更高效的多处理。
虽然这里参考具体实施例描述了本发明,但是应当理解,这些实施例仅仅说明本发明的原理和应用。因此,应当理解,可以对这些说明性实施例进行众多修改,并且可以设计其它布置,而不背离如由所附权利要求限定的本发明的精神和范围。
Claims (29)
1.一种方法,包括:
a)发出以保留方式装载指令,其包括可以定位数据的、到共享存储器的所请求地址;
b)从共享存储器接收数据,使得可以对该数据执行任何操作;
c)以下的至少一个:(i)进入低功耗模式,和(ii)启动另一处理任务;以及
d)接收保留丢失的通知,当修改了位于共享存储器中的该地址的数据时,保留丢失。
2.如权利要求1所述的方法,其中保留丢失的通知用作进行(i)低功耗模式中断;以及(ii)其它处理任务中断中的至少一个的中断。
3.如权利要求1所述的方法,其中只有当数据不是预定值时,才执行进入低功耗模式的步骤或者启动另一处理任务的步骤。
4.如权利要求3所述的方法,还包括当该通知表示保留丢失时,重复步骤a)到d)。
5.如权利要求1所述的方法,还包括:当从共享存储器存取数据时,将与发出以保留方式装载指令的处理器相关联的标识号码写入到与共享存储器中的所寻址位置相关联的状态位置中。
6.如权利要求1所述的方法,还包括:当修改了位于共享存储器中的该地址的数据时,使处理器的状态寄存器中的保留丢失位表示保留丢失。
7.如权利要求6所述的方法,其中确定保留是否丢失的步骤包括轮询状态寄存器,并且当保留丢失位这样表示时,确定保留丢失。
8.一种系统,包括:
共享存储器;
存储器接口单元,可操作地耦接到共享存储器;以及
多个处理单元,与存储器接口通信,至少一个处理单元可操作地用于:
a)向存储器接口单元发出以保留方式装载指令,该以保留方式装载指令包括可以定位数据的、到共享存储器的所请求地址;
b)从存储器接口单元接收数据,使得可以对该数据执行任何操作;
c)以下的至少一个:(i)进入低功耗模式,和(ii)启动另一处理任务;以及
d)接收保留丢失的通知,当修改了位于共享存储器中的该地址的数据时,保留丢失。
9.如权利要求8所述的系统,其中保留丢失的通知用作进行(i)低功耗模式中断;以及(ii)其它处理任务中断中的至少一个的中断。
10.如权利要求8所述的系统,其中该至少一个处理单元可操作地用于,只有当数据不是预定值时,才进入低功耗模式或者启动其它处理任务。
11.如权利要求10所述的系统,其中该至少一个处理器还可操作地用于当该通知表示保留丢失时,重复步骤a)到d)。
12.一种系统,包括:
共享存储器;
存储器接口单元,耦接到共享存储器,并且可操作地用于在所请求的地址从共享存储器检索数据,以及在所请求的地址将数据写入到共享存储器;以及
多个处理单元,与存储器接口通信,并且可操作地用于指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作,
其中至少一个处理单元包括状态寄存器,其具有表示保留是否丢失的一个或多个位,当由另外一个或更多个处理单元修改位于共享存储器中的指定地址的数据时,保留丢失。
13.如权利要求12所述的系统,其中该至少一个处理单元可操作地用于,如果数据不是预定值,则进入低功耗模式。
14.如权利要求13所述的系统,其中该至少一个处理单元还可操作地用于响应于允许中断低功耗模式的事件而退出低功耗模式。
15.如权利要求14所述的系统,其中该至少一个处理单元还可操作地用于轮询状态寄存器的一个或多个位,以确定保留是否丢失。
16.如权利要求15所述的系统,其中该至少一个处理单元还可操作地用于(i)重新指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作。
17.如权利要求14所述的系统,其中允许中断低功耗模式的事件是保留丢失。
18.如权利要求11所述的系统,其中存储器接口单元可操作地用于,当从共享存储器存取数据时,将与发出以保留方式装载指令的该至少一个处理部件相关联的标识号码写入到与共享存储器的指定地址相关联的状态位置中。
19.如权利要求12所述的系统,其中存储器接口单元可操作地用于通过监视是否由另一处理单元修改了位于共享存储器中的指定地址的数据,监视保留是否丢失。
20.如权利要求19所述的系统,其中存储器接口单元可操作地用于使该至少一个处理单元的状态寄存器的一个或多个位表示保留丢失。
21.一种系统,包括:
共享存储器;
存储器接口单元,耦接到共享存储器,并且可操作地用于在所请求的地址从共享存储器检索数据,以及在所请求的地址将数据写入到共享存储器;以及
多个处理单元,与存储器接口通信,并且可操作地用于(i)指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作,
其中至少一个处理单元可操作地用于下列操作中的至少一个:(i)在发出以指定地址将数据存储在共享存储器中的指令之后,进入低功耗模式;以及(ii)启动另一处理任务。
22.如权利要求21所述的系统,其中该至少一个处理单元可操作地用于,只有当数据不是预定值时,才进入低功耗模式或者启动其它处理任务。
23.如权利要求21所述的系统,其中该至少一个处理单元还可操作地用于响应于保留丢失的表示而执行下列操作中的至少一个:(i)退出低功耗模式,以及(ii)暂停其它处理任务。
24.如权利要求21所述的系统,其中该至少一个处理单元包括状态寄存器,其具有表示保留是否丢失的一个或多个位,当修改了位于共享存储器中的指定地址的数据时,保留丢失。
25.如权利要求24所述的系统,其中存储器接口单元可操作地用于使该至少一个处理单元的状态寄存器的一个或多个位表示保留是否丢失。
26.如权利要求24所述的系统,其中该至少一个处理单元还可操作地用于轮询状态寄存器的一个或多个位,以确定保留是否丢失。
27.如权利要求25所述的系统,其中该至少一个处理单元还可操作地用于(i)重新指示存储器接口单元在指定地址从共享存储器以保留方式装载数据,使得可以对该数据执行任何操作。
28.如权利要求21所述的系统,其中存储器接口单元可操作地用于,当从共享存储器存取数据时,将与发出以保留方式装载指令的该至少一个处理部件相关联的标识号码写入到与共享存储器的指定地址相关联的状态位置中。
29.一种系统,包括:
共享存储器;
存储器接口单元,可操作地耦接到共享存储器;以及
复数N个处理单元,与存储器接口通信,这些处理单元可操作地用于通过以下操作使用屏障同步而并行执行多个任务:
a)执行该多个任务中的一个;
b)初始化局部变量w;
c)向存储器接口单元发出以保留方式装载指令,以将共享变量s从共享存储器装载到局部变量w中;
d)朝向N值递增或递减局部变量w;
e)向存储器接口单元发出有条件存储指令,以帮助将局部变量w的值作为共享变量s存储在共享存储器中;
f)如果保留丢失,则重复步骤a)-e),当修改了位于共享存储器中的该地址的共享变量时,保留丢失。
g)当局部变量的值达到N时,向存储器接口单元发出存储指令,以帮助将目标值作为共享变量s存储在共享存储器中;
h)向存储器接口单元发出以保留方式装载指令,以将共享变量s从共享存储器装载到局部变量w中;
i)当局部变量的值不是目标值时,进入低功耗模式,或启动另一处理任务,否则跳到步骤k);
j)一旦接收到保留丢失的通知,就退出低功耗模式,或暂停其它处理任务,并且重复步骤h)-i),当由另一处理器发出对共享存储器中的共享变量的请求时,保留丢失;以及
k)执行该多个任务的下一个任务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/725,129 US20050120185A1 (en) | 2003-12-01 | 2003-12-01 | Methods and apparatus for efficient multi-tasking |
US10/725,129 | 2003-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1942858A true CN1942858A (zh) | 2007-04-04 |
Family
ID=34620232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800338493A Pending CN1942858A (zh) | 2003-12-01 | 2004-11-25 | 用于高效多任务化的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050120185A1 (zh) |
EP (1) | EP1702264A1 (zh) |
JP (1) | JP2005166056A (zh) |
KR (1) | KR100841864B1 (zh) |
CN (1) | CN1942858A (zh) |
TW (1) | TW200532471A (zh) |
WO (1) | WO2005055057A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541248A (zh) * | 2012-07-27 | 2015-04-22 | 华为技术有限公司 | 计算系统对屏障命令的处理 |
CN110121699A (zh) * | 2017-10-20 | 2019-08-13 | 图核有限公司 | 多瓦片、多芯片处理布置中的同步 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050561A1 (en) * | 2005-08-23 | 2007-03-01 | Advanced Micro Devices, Inc. | Method for creating critical section code using a software wrapper for proactive synchronization within a computer system |
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
US7398368B2 (en) | 2005-12-01 | 2008-07-08 | Sony Computer Entertainment Inc. | Atomic operation involving processors with different memory transfer operation sizes |
US20070174411A1 (en) * | 2006-01-26 | 2007-07-26 | Brokenshire Daniel A | Apparatus and method for efficient communication of producer/consumer buffer status |
US8219763B2 (en) * | 2006-03-16 | 2012-07-10 | International Business Machines Corporation | Structure for performing cacheline polling utilizing a store and reserve instruction |
US9983874B2 (en) * | 2006-03-16 | 2018-05-29 | International Business Machines Corporation | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling |
US9390015B2 (en) * | 2006-03-16 | 2016-07-12 | International Business Machines Corporation | Method for performing cacheline polling utilizing a store and reserve instruction |
US8117389B2 (en) * | 2006-03-16 | 2012-02-14 | International Business Machines Corporation | Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions |
US8024521B2 (en) * | 2007-03-13 | 2011-09-20 | Sony Computer Entertainment Inc. | Atomic operation on non-standard sized data using external cache |
KR100895298B1 (ko) | 2007-04-30 | 2009-05-07 | 한국전자통신연구원 | 멀티미디어 데이터의 효율적인 병렬 처리를 위한 장치,방법, 데이터 처리 엘리먼트 |
US9032128B2 (en) | 2008-04-28 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared memory multi-processor systems |
US8108696B2 (en) * | 2008-07-24 | 2012-01-31 | International Business Machines Corporation | Optimizing non-preemptible read-copy update for low-power usage by avoiding unnecessary wakeups |
US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8347037B2 (en) * | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
JP5304194B2 (ja) * | 2008-11-19 | 2013-10-02 | 富士通株式会社 | バリア同期装置、バリア同期システム及びバリア同期装置の制御方法 |
US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8489819B2 (en) * | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
KR101553648B1 (ko) * | 2009-02-13 | 2015-09-17 | 삼성전자 주식회사 | 재구성 가능한 구조의 프로세서 |
US8949540B2 (en) * | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8095733B2 (en) * | 2009-04-07 | 2012-01-10 | International Business Machines Corporation | Virtual barrier synchronization cache castout election |
US8131935B2 (en) * | 2009-04-07 | 2012-03-06 | International Business Machines Corporation | Virtual barrier synchronization cache |
US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US8850166B2 (en) * | 2010-02-18 | 2014-09-30 | International Business Machines Corporation | Load pair disjoint facility and instruction therefore |
US8966323B2 (en) * | 2010-12-23 | 2015-02-24 | Arm Limited | Monitoring multiple data transfers |
US20140146067A1 (en) * | 2011-12-29 | 2014-05-29 | Daveen Doddapuneni | Accessing Configuration and Status Registers for a Configuration Space |
US9285865B2 (en) * | 2012-06-29 | 2016-03-15 | Oracle International Corporation | Dynamic link scaling based on bandwidth utilization |
US20140032854A1 (en) * | 2012-07-30 | 2014-01-30 | Futurewei Technologies, Inc. | Coherence Management Using a Coherent Domain Table |
EP2937783B1 (en) * | 2014-04-24 | 2018-08-15 | Fujitsu Limited | A synchronisation method |
GB2528115B (en) * | 2014-07-11 | 2021-05-19 | Advanced Risc Mach Ltd | Dynamic saving of registers in transactions |
GB2575292B (en) | 2018-07-04 | 2020-07-08 | Graphcore Ltd | Code Compilation for Scaling Accelerators |
CN111124696B (zh) * | 2019-12-30 | 2023-06-23 | 北京三快在线科技有限公司 | 单元组创建、数据同步方法、装置、单元和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68925615T2 (de) * | 1988-11-10 | 1996-09-12 | Motorola Inc | Digitalrechnersystem mit Niederstromverbrauchmodus |
JP2500101B2 (ja) * | 1992-12-18 | 1996-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共用変数の値を更新する方法 |
JP2550897B2 (ja) * | 1993-11-29 | 1996-11-06 | 日本電気株式会社 | マルチプロセッサシステムのバリア同期装置 |
US5566321A (en) * | 1993-12-13 | 1996-10-15 | Cray Research, Inc. | Method of managing distributed memory within a massively parallel processing system |
US5774731A (en) * | 1995-03-22 | 1998-06-30 | Hitachi, Ltd. | Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an event flag into a shared main storage |
US5983326A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode |
US5953536A (en) * | 1996-09-30 | 1999-09-14 | Intel Corporation | Software-implemented tool for monitoring power management in a computer system |
JP2001508214A (ja) * | 1997-10-29 | 2001-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ブロック編制データ転送同期化方法及びシステム |
US6275907B1 (en) * | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
JP2002041489A (ja) * | 2000-07-25 | 2002-02-08 | Mitsubishi Electric Corp | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 |
JP3426223B2 (ja) * | 2000-09-27 | 2003-07-14 | 株式会社ソニー・コンピュータエンタテインメント | マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム |
WO2003040948A1 (fr) * | 2001-11-08 | 2003-05-15 | Fujitsu Limited | Ordinateur et procede de commande |
JP3884990B2 (ja) * | 2002-04-26 | 2007-02-21 | 富士通株式会社 | マルチプロセッサ装置 |
-
2003
- 2003-12-01 US US10/725,129 patent/US20050120185A1/en not_active Abandoned
-
2004
- 2004-11-25 KR KR1020067013264A patent/KR100841864B1/ko not_active IP Right Cessation
- 2004-11-25 EP EP04799900A patent/EP1702264A1/en not_active Withdrawn
- 2004-11-25 WO PCT/JP2004/017903 patent/WO2005055057A1/en active Application Filing
- 2004-11-25 CN CNA2004800338493A patent/CN1942858A/zh active Pending
- 2004-11-30 TW TW093136944A patent/TW200532471A/zh unknown
- 2004-12-01 JP JP2004349195A patent/JP2005166056A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541248A (zh) * | 2012-07-27 | 2015-04-22 | 华为技术有限公司 | 计算系统对屏障命令的处理 |
CN104541248B (zh) * | 2012-07-27 | 2017-12-22 | 华为技术有限公司 | 计算系统对屏障命令的处理 |
CN110121699A (zh) * | 2017-10-20 | 2019-08-13 | 图核有限公司 | 多瓦片、多芯片处理布置中的同步 |
CN110121699B (zh) * | 2017-10-20 | 2023-07-07 | 图核有限公司 | 多瓦片、多芯片处理布置中的同步 |
Also Published As
Publication number | Publication date |
---|---|
TW200532471A (en) | 2005-10-01 |
EP1702264A1 (en) | 2006-09-20 |
JP2005166056A (ja) | 2005-06-23 |
US20050120185A1 (en) | 2005-06-02 |
KR20060121266A (ko) | 2006-11-28 |
KR100841864B1 (ko) | 2008-06-27 |
WO2005055057A1 (en) | 2005-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1942858A (zh) | 用于高效多任务化的方法和装置 | |
CN112465129B (zh) | 片内异构人工智能处理器 | |
JP4526412B2 (ja) | マルチプロセッサシステムにおけるタスク管理方法および装置 | |
CN100487660C (zh) | 一种多线程处理器动态内存管理系统及方法 | |
US8893145B2 (en) | Method to reduce queue synchronization of multiple work items in a system with high memory latency between processing nodes | |
US9058164B2 (en) | Power consumption reduction in a multiprocessor system | |
US7734877B2 (en) | Method and data processing system for processor-to-processor communication in a clustered multi-processor system | |
US8209690B2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
US7493417B2 (en) | Method and data processing system for microprocessor communication using a processor interconnect in a multi-processor system | |
US7698373B2 (en) | Method, processing unit and data processing system for microprocessor communication in a multi-processor system | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
EP2824569A1 (en) | Method and device for scheduling multiprocessor of system on chip (soc) | |
JP2005235229A (ja) | マルチプロセッサシステムにおけるプロセッサタスクの移動方法および装置 | |
CN1867891A (zh) | 用于实时多线程处理的方法和装置 | |
TW201413456A (zh) | 處理巢狀串流事件的方法和系統 | |
CN1759379A (zh) | 用于在网络处理器中动态排序的系统和方法 | |
CN1806231A (zh) | 提供软件实现的高速缓冲存储器的方法与装置 | |
CN104536937A (zh) | 基于cpu-gpu异构集群的大数据一体机实现方法 | |
JP2006221642A (ja) | ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム | |
US7818364B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor system | |
JP2006323824A (ja) | プロセッサシステム内においてスタックを分離して管理する方法および装置 | |
CN107180010A (zh) | 异构计算系统和方法 | |
CN1928811A (zh) | 处理操作管理系统和方法 | |
CN114490123A (zh) | 一种任务处理方法、装置及电子设备和存储介质 | |
US7818507B2 (en) | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070404 |