CN101061462B - 多处理器系统以及其中的排他控制方法 - Google Patents
多处理器系统以及其中的排他控制方法 Download PDFInfo
- Publication number
- CN101061462B CN101061462B CN2005800400253A CN200580040025A CN101061462B CN 101061462 B CN101061462 B CN 101061462B CN 2005800400253 A CN2005800400253 A CN 2005800400253A CN 200580040025 A CN200580040025 A CN 200580040025A CN 101061462 B CN101061462 B CN 101061462B
- Authority
- CN
- China
- Prior art keywords
- lock
- mentioned
- variable
- read
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明提供一种能够用简单的结构实现与具有锁变量的原子读出修改写入功能的高成本的系统同样的功能的多处理器系统。如果某一CPU断言读出信号READ,则从锁寄存器18读出锁变量LOCK,并且将锁定状态“1”的锁变量LOCK写入到锁寄存器18。在所读出的锁变量LOCK是非锁定状态“0”的情况下,该CPU能够获得锁。由于读出锁变量LOCK并且写入锁定状态“1”的主锁变量LOCK,所以此后即使另一CPU断言读出信号READ,也会因为从锁寄存器18读出锁定状态“1”的锁变量LOCK,而使该另一CPU不能获得锁。
Description
技术领域
本发明涉及多处理器系统以及其中的排他控制方法,更具体地,涉及在执行排他控制之前获得锁并在执行排他控制之后释放锁的多处理器系统以及其中的排他控制方法。
背景技术
以往,作为多线程程序设计的执行环境,需要MESI(ModifiedExclusive Shared Invalid,修改、排他、共享、无效)那样的高速缓存一致性协议和支持不可分(原子)传送的总线。但是,安装有它们的CPU(Central Processing Unit,中央处理单元)以及总线将是高成本的。
目前,作为低成本的CPU,也根据Linux支持的必要性而具有TLB(Translation Look-aside Buffer,转换后援缓冲器)。在使用了这种CPU的情况下,只要安装支持原子传送的总线,就能够构筑多处理器系统。在这种情况下,即使没有总线窥探(スヌ一プ)的硬件支持,如果利用与NUMA(Non-Uniform Memory Access:非均匀存储器访问)相同的OS(Operating System:操作系统),则也可以使用TLB的支持来维持高速缓存一致性。
在此,之所以需要支持原子传送的总线,是为了可以进行CPU之间的排他控制。例如为了排他地改写各CPU的TLB,需要对锁变量原子地进行读出修改写入。但是,准备单处理器而设计的、低成本的嵌入式处理器及其总线规则,并不支持原子读出修改写入。
下面,参照图5说明原子读出修改写入的必要性。其中,将锁变量lock分配到了存储器上。
首先,CPU从存储器读出锁变量lock(S1),判断是否lock=1(S2)。只要lock=1,即锁变量成为锁定状态(在S2为是),CPU就反复读出锁变量lock(S1)。另一方面,在lock=0、即锁变量为非锁定状态的情况下(在S2为否),CPU改写为lock=1,由此获得排他控制所需要的锁(S3)。在获得锁之后,CPU执行规定的排他控制(S4)。在完成排他控制之后,CPU改写为lock=0,由此释放锁(S5)。
但是,在从读出lock=0到改写为lock=1的期间,如果其他的CPU读出lock=0,则有可能误认为能够获得锁。为了防止这种情况,必须原子地执行上述的锁变量的读出操作S1和写入操作S3。
此外,用于使CPU执行上述的原子读出修改写入的程序,由于使用在原子传送中所需要的专用命令,所以不用C那样的高级语言,而必须用汇编语言来描述。
美国专利第5175829号说明书(以下记作专利文献1)公开了将原子传送组装到CPU以及局部总线内的装置。这种多处理器系统,为了消减总线带宽,而通过采用共享总线方式并使用MESI协议而使得不能获得锁的CPU不重复无用的读访问。
美国专利第5175829号说明书(以下记作专利文献2)公开了将用于管理锁的交换寄存器内置于CPU内的装置。该装置用存储在存储器中的锁变量时刻对存储在交换寄存器中的锁变量进行交换更新,并对该交换寄存器进行用于获得锁的读访问。该装置也是以高成本并且复杂的原子读出修改写入功能的存在为前提。
美国专利第5666515号说明书(以下记作专利文献3)公开了通过发送重试信号而加锁、减轻了总线带宽的饱和的装置。该装置也是以高成本并且复杂的原子读出修改写入功能的存在为前提。
专利文献1:美国专利第5175829号说明书
专利文献2:美国专利第5535365号说明书
专利文献3:美国专利第5666515号说明书
发明内容
本发明的目的在于提供一种能够用简单的构成实现与具有锁变量的原子读出修改写入功能的高成本的系统同样的功能的多处理器系统以及其中的排他控制方法。
本发明的多处理器系统具备多个处理器和锁寄存器。处理器的各个在执行排他控制之前,为了获得锁而断言读出信号,并且在执行排他控制之后,为了释放锁而断言写入信号。锁寄存器与多个处理器连接。锁寄存器包括保存单元、锁变量输出单元和锁变量输入单元。保存单元保存锁定状态或者非锁定状态的第1锁变量。锁变量输出单元在处理器的1个断言读出信号时,输出此前保存在保存单元中的第1锁变量。锁变量输入单元在处理器的1个断言读出信号时,将锁定状态的第1锁变量设定到保存单元,并且在处理器的1个断言写入信号时,将非锁定状态的第1锁变量设定到保存单元。
在上述多处理器系统中,在某一处理器断言读出信号时,从锁寄存器读出第1锁变量,并且将锁定状态的第1锁变量写入到锁寄存器。在所读出的第1锁变量为非锁定状态的情况下,该处理器能够获得锁。由于读出第1锁变量并且写入锁定状态的第1锁变量,所以此后即使另一处理器断言读出信号,也会因为从锁寄存器读出锁定状态的第1锁变量,而使该另一处理器不能获得锁。这样,本发明的多处理器系统仅设置锁寄存器,就能够实现与具有锁变量的原子读出修改写入功能的高成本的系统相同的功能。
优选地,锁寄存器进一步包括总线重试单元。总线重试单元在第1锁变量被设定为锁定状态的期间,在处理器的1个断言读出信号时,生成用于提供给处理器的总线重试信号。
在此情况下,由于处理器接收总线重试信号并且由此认识到不可能获得锁,所以能够使其不会随便地断言读出信号。
优选地,多处理器系统进一步具备第1总线、存储器、第2总线。第1总线与多个处理器共同连接。存储器与第1总线连接。第2总线与多个处理器共同连接。锁寄存器连接到第2总线。
在此情况下,在由于某一处理器已获得了锁而另一处理器等待其释放锁时,该另一处理器经由第2总线断言读出信号而从锁寄存器读出第1锁变量,另一方面,获得了锁的处理器经由第1总线访问存储器。因而,不会妨碍从获得了锁的处理器对存储器的访问。
进而优选地,存储器存储1个、或者2个或2个以上的第2锁变量。处理器的各个断言读出信号而从锁寄存器读出第1锁变量,且在所读出的第1锁变量为非锁定状态的情况下,从存储器读出第2锁变量,在所读出的第2锁变量为非锁定状态的情况下,将第2锁变量改写为锁定状态。
在此情况下,处理器首先从锁寄存器读出第1锁变量而获得锁,接着从存储器读出第2锁变量而获得锁。这样,因为分阶段地获得锁,所以能够设定多个锁变量。
此外,本发明的排他控制方法,是具备多个处理器和与多个处理器连接的、保存锁定状态或者非锁定状态的第1锁变量的锁寄存器的多处理器中的排他控制方法,包括:在处理器的1个为了获得锁而断言读出信号时,从锁寄存器读出第1锁变量并且将锁定状态的第1锁变量写入到锁寄存器的步骤;在所读出的第1锁变量为非锁定状态的情况下,由该1个处理器执行排他控制的排他控制步骤;以及在执行排他控制之后,在该1个处理器为了释放锁而断言写入信号时,将非锁定状态的第1锁变量写入到锁寄存器的步骤。
在上述排他控制方法中,如果某一处理器断言读出信号,则从锁寄存器读出第1锁变量,并且将锁定状态的第1锁变量写入到锁寄存器。在所读出的第1锁变量为非锁定状态的情况下,该处理器能够获得锁。由于读出第1锁变量并且写入锁定状态的第1锁变量,所以此后即使另一处理器断言读出信号,也会从锁寄存器读出锁定状态的第1锁变量。因而,该另一处理器不能获得锁。这样,本发明的排他控制方法仅设置锁寄存器,就能够实现与具有锁变量的原子读出修改写入功能的高成本的系统相同的功能。
优选地,排他控制方法进一步包括:在第1锁变量为锁定状态的期间,在处理器的1个断言读出信号时,生成用于提供给处理器的总线重试信号的步骤。
在此情况下,由于处理器接收总线重试信号并由此认识到不可能获得锁,所以能够使其不会随便地断言读出信号。
优选地,多处理器系统进一步具备存储1个、或者2个或2个以上的第2锁变量的存储器。上述排他控制步骤包括:在所读出的第1锁变量为非锁定状态的情况下,从存储器读出第2锁变量的步骤;在所读出的第2锁变量为非锁定状态的情况下,将第2锁变量改写为锁定状态的步骤;以及在将第2锁变量改写为锁定状态之后,执行排他控制的步骤。
在此情况下,处理器首先从锁寄存器读出第1锁变量而获得锁,接着从存储器读出第2锁变量而获得锁。这样,因为分阶段地获得锁,所以能够设定多个锁变量。
具体实施方式
以下,参照附图详细地说明本发明的实施方式。图中,对于相同或者相当的部分标注相同符号而不重复其说明。
参照图1,本实施方式的多处理器系统10具备CPU11以及12;总线主控器13以及14;交叉总线15以及16;系统存储器17;锁寄存器18。
CPU11以及12、总线主控器13以及14共同连接到交叉总线15。CPU11以及12、总线主控器13以及14还共同连接到另一个交叉总线16。系统存储器17连接到交叉总线15,锁寄存器18连接到交叉总线16。CPU11或者12经由交叉总线15可以访问系统存储器17,经由交叉总线16还可以访问锁寄存器18。总线主控器13或者14经由交叉总线15可以访问系统存储器17,经由交叉总线16还可以访问锁寄存器18。
锁寄存器18是用于管理在排他控制中所需要的锁的寄存器。CPU11或者12在执行排他控制之前断言读出信号而从锁寄存器18获得锁,在执行排他控制之后断言写入信号而释放该锁。锁寄存器18虽然被映射到存储器上,但可以被分配与系统存储器17所不同的地址。
参照图2,锁寄存器18从CPU11或者12接收读出信号READ以及写入信号WRITE,输出读出数据总线信号READ databus以及总线重试信号BUS Retry。锁寄存器18具备延迟触发器(DFF)19以及20;OR电路21;AND电路22以及23;多路复用器24。OR电路21接收读出信号READ和DFF19的输出信号。AND电路22接收OR电路21的输出信号、写入信号WRITE的逻辑反相信号以及复位信号RESET的逻辑反相信号。DFF19与时钟信号CLK同步地锁存AND电路22的输出信号。在读出信号READ是H(逻辑高)电平“1”的情况下,多路复用器24选择输出DFF19的输出信号的输出信号。另一方面,在读出信号READ是L(逻辑低)电平“0”的情况下,多路复用器24选择输出DFF20的输出信号。DFF20与时钟信号CLK同步地锁存多路复用器24的输出信号,作为读出数据总线信号READ databus输出。AND电路23接收读出信号READ以及DFF19的输出信号,生成总线重试信号BUS Retry。
DFF19具有保存锁定状态“1”或者非锁定状态“0”的主锁变量LOCK的功能。OR电路21以及AND电路22具有在CPU11或者12断言读出信号READ时将锁定状态“1”的主锁变量LOCK设定到DFF19中,在CPU11或者12断言写入信号WRITE时将非锁定状态“0”的主锁变量LOCK设定到DFF19中的功能。多路复用器24以及DFF20具有在CPU11或者12断言读出信号READ时,输出此前保存在DFF19中的主锁变量LOCK的功能。AND电路23具有在主锁变量LOCK被设定为锁定状态“1”的期间、在CPU11或者12断言读出信号READ时,生成用于提供给CPU11以及12的总线重试信号BUS Retry的功能。
此外,在系统存储器17中,存储有1个、或者2个或2个以上的子锁变量lock。由于CPU11或者12不具有窥探高速缓存,所以将用于分配子锁变量lock的存储区域设定在非高速缓存区域。
以下,参照图3说明锁寄存器18的动作。
如果复位信号RESET被断言为H电平,则在时钟信号CLK上升的时刻t1,进行锁寄存器18的初始化。具体地,AND电路22与读出信号READ以及写入信号WRITE没有关系,输出L电平的信号,DFF19将之锁存。即,DFF19保存非锁定状态“0”的主锁变量LOCK。
接着,在为了确认1个CPU11或者12是否可以获得锁而将读出信号READ断言为H电平时,AND电路22的输出信号变成H电平。DFF19在时钟信号CLK上升的时刻t2,锁存并输出其H电平的信号。由于DFF19的输出信号被提供给OR电路21,所以在读出信号READ恢复为L电平之后,DFF19还继续锁存H电平的信号,由此保存锁存状态“1”的主锁变量LOCK。
在读出信号READ恢复为L电平时,多路复用器24选择DFF20的输出信号,由于DFF20继续锁存L电平的信号,所以读出数据总线信号READdatabus维持L电平不变。因而,认识到该CPU11或者12可以获得锁。
在认识到可以获得锁之后,即使为了确认其他的CPU12或者11是否能够获得锁而将读出信号READ断言为H电平,由于DFF19的输出信号已变成H电平,AND电路23也将总线重试信号BUS Rrery断言为H电平。因而,认识到该其他的CPU不能获得锁。此外,由于读出信号READ被断言为H电平并且多路复用器24选择DFF19的输出信号,所以在时钟信号CLK上升的时刻t3,DFF20锁存H电平的信号,由此将读出数据总线信号READ databus断言为H电平。
接着,在该CPU11或者12为了释放锁而将写入信号WRITE断言为H电平时,AND电路22的输出信号变成L电平。DFF19在时钟信号CLK上升的时刻t4锁存并输出其L电平信号。由此,主锁变量LOCK被清除为非锁定状态“0”。
其后,在为了再次确认CPU11或者12是否可以获得锁而将读出信号READ断言为H电平时,在时钟信号CLK上升的时刻t5,DFF19与前一次同样地锁存并输出H电平的信号。此时,由于多路复用器24选择L电平的信号,所以DFF20将之锁存并输出。因而,读出数据总线信号READdatabus恢复为L电平,从而认识到CPU11或者12可以获得锁。
以下,参照图4说明使用了该锁寄存器18的多处理器系统10全体的动作。
CPU11或者12从锁寄存器18读出主锁变量LOCK(S11),判断是否LOCK=1,即主锁变量LOCK是否为锁定状态“1”(S12)。在非锁定状态“0”的情况下(在S12为否),CPU11或者12从系统存储器17读出子锁变量lock(S13),判断是否lock=1,即子锁变量lock是否为锁定状态“1”(S14)。在非锁定状态“0”的情况下(在S14为否),CPU11或者12将“1”写入到子锁变量lock,由此获得锁(S15)。在锁的获得之后,CPU11或者12执行规定的排他控制(S16)。排他控制结束后,CPU11或者12将“0”写入到子锁变量lock,由此释放锁(S17)。
如上所述,如果采用本发明的实施方式,则在CPU11或者12断言读出信号READ时,由于从锁寄存器18读出主锁变量LOCK并且立即将锁定状态“1”的主锁变量LOCK写入到锁寄存器18,所以其后,即使另一CPU12或者11断言读出信号LOCK,也会从锁寄存器18读出锁定状态“1”的主锁变量LOCK。因此,另一CPU12或者11不能获得锁。因而,通过仅设置锁寄存器18就能够实现与具有锁变量的原子读出修改写入功能的高成本的多处理器系统相同的功能。
此外,在主锁变量LOCK被设定为锁定状态“1”的期间,如果CPU11或者12断言读出信号READ,则由于总线重试信号BUS Retry生成并且CPU11以及12接收该总线重试信号BUS Retry而认识到不可能获得锁,所以能够使其不会随便地断言读出信号READ。
此外,由于经由专用的交叉总线16进行用于获得或者释放锁的从CPU11或者12对锁寄存器18的访问,所以在由于CPU11或者12获得了锁而另一CPU12或者11等待其释放锁时,另一CPU12或者11经由交叉总线16断言读出信号READ而从锁寄存器18读出主锁变量LOCK,另一方面,获得了锁的CPU11或者12经由交叉总线15访问系统存储器17。因而,不会妨碍从获得了锁的CPU11或者12对系统存储器17的访问。
此外,由于以预先将1个、或者2个或2个以上的子锁变量lock存储在系统存储器17中、CPU11或者12首先从锁寄存器18读出主锁变量LOCK而获得锁、接着从系统存储器17读出子锁变量lock而获得锁的方式分阶段地获得锁,所以能够设定多个锁变量lock。
以上,说明了本发明的实施方式,但上述的实施方式只不过是用于实现本发明的示例。因而,本发明并不限于上述的实施方式,而是可以在不脱离其主旨的范围内适宜对上述的实施方式进行变形。
附图说明
图1是表示本发明的实施方式的多处理器系统的整体结构的功能方框图;
图2是表示图1中的锁寄存器的结构的电路图;
图3是表示图2所示的锁寄存器的动作的时序图;
图4是表示图1所示的多处理器系统的锁获得动作的流程图;以及
图5是表示以往的多处理器的锁获得动作的流程图。
符号说明
10:多处理器系统
11、12:CPU
15、16:交叉总线
17:系统存储器
18:锁寄存器
LOCK:主锁变量
lock:子锁变量
READ:读出信号
WRITE:写入信号
BUS Retry:总线重试信号
READ databus:读出数据总线信号
Claims (7)
1.一种多处理器系统,其特征在于,具备:
多个处理器,其各个在执行排他控制之前,为了获得锁而断言读出信号,并且在执行排他控制之后,为了释放锁而断言写入信号;以及
锁寄存器,其与上述多个处理器连接;
其中,上述锁寄存器包括:
保存单元,其保存锁定状态或者非锁定状态的第1锁变量;
锁变量输出单元,其在上述处理器中的1个断言读出信号时,输出此前保存在上述保存单元中的第1锁变量;以及
锁变量输入单元,其在上述处理器中的1个断言读出信号时,通过对该读出信号的逻辑电平与上述保存单元中保存的、表示第1锁变量的锁定状态或者非锁定状态的逻辑电平进行逻辑运算,将锁定状态的第1锁变量设定到上述保存单元,并且在上述处理器中的1个断言写入信号时,通过对该写入信号的逻辑电平与上述保存单元中保存的、表示上述第1锁变量的锁定状态或者非锁定状态的逻辑电平进行逻辑运算,将非锁定状态的第1锁变量设定到上述保存单元。
2.如权利要求1所述的多处理器系统,其特征在于,上述锁寄存器进一步包括:
总线重试单元,其在上述第1锁变量被设定为锁定状态的期间,在上述处理器中的1个断言读出信号时,生成用于提供给上述处理器的总线重试信号。
3.如权利要求1所述的多处理器系统,其特征在于,进一步具备:
与上述多个处理器共同连接的第1总线;
与上述第1总线连接的存储器;以及
与上述多个处理器共同连接的第2总线;
其中,上述锁寄存器连接到上述第2总线。
4.如权利要求1所述的多处理器系统,其特征在于,进一步具备:
存储1个、或者2个或2个以上的第2锁变量的存储器;
上述处理器中的各个断言读出信号而从上述锁寄存器读出第1锁变量,且在所读出的第1锁变量为非锁定状态的情况下,从上述存储器读出第2锁变量,在所读出的第2锁变量为非锁定状态的情况下,将第2锁变量改写为锁定状态。
5.一种多处理器系统中的用于实现排他控制的方法,是具备多个处理器和与上述多个处理器连接的、保存锁定状态或者非锁定状态的第1锁变量的锁寄存器的多处理器系统中的用于实现排他控制的方法,其特征在于,包括:
在上述处理器中的1个为了获得锁而断言读出信号时,通过使上述锁寄存器对该读出信号的逻辑电平与该锁寄存器中保存的、表示第1锁变量的锁定状态或者非锁定状态的逻辑电平进行逻辑运算,将锁定状态的第1锁变量写入到该锁寄存器的步骤;
在所读出的第1锁变量为非锁定状态的情况下,由该1个处理器执行排他控制的排他控制步骤;以及
在执行排他控制之后,在该1个处理器为了释放锁而断言写入信号时,通过使上述锁寄存器对该写入信号的逻辑电平与该锁寄存器中保存的、表示上述第1锁变量的锁定状态或者非锁定状态的逻辑电平进行逻辑运算,将非锁定状态的第1锁变量写入到该锁寄存器的步骤。
6.如权利要求5所述的多处理器系统中的用于实现排他控制的方法,其特征在于,进一步包括:
在上述第1锁变量为锁定状态的期间,在上述处理器中的1个断言读出信号时,生成用于提供给上述处理器的总线重试信号的步骤。
7.如权利要求5所述的多处理器系统中的用于实现排他控制的方法,其特征在于:
上述多处理器系统进一步具备存储1个、或者2个或2个以上的第2锁变量的存储器;
上述排他控制步骤包括:
在所读出的第1锁变量为非锁定状态的情况下,从上述存储器读出第2锁变量的步骤;
在所读出的第2锁变量为非锁定状态的情况下,将第2锁变量改写为锁定状态的步骤;以及
在将第2锁变量改写为锁定状态之后,执行排他控制的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP341466/2004 | 2004-11-26 | ||
JP2004341466 | 2004-11-26 | ||
PCT/JP2005/021336 WO2006057208A1 (ja) | 2004-11-26 | 2005-11-21 | マルチプロセッサシステム及びそれにおける排他制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101061462A CN101061462A (zh) | 2007-10-24 |
CN101061462B true CN101061462B (zh) | 2010-10-06 |
Family
ID=36497945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800400253A Expired - Fee Related CN101061462B (zh) | 2004-11-26 | 2005-11-21 | 多处理器系统以及其中的排他控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080270723A1 (zh) |
EP (1) | EP1832980B1 (zh) |
JP (1) | JP4852427B2 (zh) |
CN (1) | CN101061462B (zh) |
AT (1) | ATE555437T1 (zh) |
WO (1) | WO2006057208A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980544A (zh) * | 2017-03-31 | 2017-07-25 | 北京奇艺世纪科技有限公司 | 一种线程同步方法及线程同步系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080133858A1 (en) * | 2004-11-04 | 2008-06-05 | Board Of Trustees Of Michigan State University | Secure Bit |
JP4874165B2 (ja) * | 2006-07-07 | 2012-02-15 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
CN104508645B (zh) * | 2012-07-31 | 2017-08-18 | 慧与发展有限责任合伙企业 | 用于使用多个子锁来控制对具有读取器‑写入器锁的共享数据结构的访问的系统和方法 |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
CN104268105B (zh) * | 2014-09-23 | 2017-06-30 | 天津国芯科技有限公司 | 处理器局部总线互斥存取的扩展结构及操作方法 |
CN114036091B (zh) * | 2021-10-30 | 2023-06-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多处理器外设复用电路及其复用方法 |
US12039339B1 (en) * | 2022-06-28 | 2024-07-16 | Amazon Technologies, Inc. | System configuration control through locking of control registers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287503A (en) * | 1991-09-27 | 1994-02-15 | Sun Microsystems, Inc. | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
US6226717B1 (en) * | 1999-02-04 | 2001-05-01 | Compaq Computer Corporation | System and method for exclusive access to shared storage |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01286070A (ja) * | 1988-05-13 | 1989-11-17 | Nec Corp | データ処理システム |
US5175829A (en) * | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
JPH0680497B2 (ja) * | 1989-12-15 | 1994-10-12 | 富士通株式会社 | 排他記憶域制御方式 |
JPH07191944A (ja) * | 1991-09-11 | 1995-07-28 | Internatl Business Mach Corp <Ibm> | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 |
JPH07113909B2 (ja) * | 1992-11-27 | 1995-12-06 | 工業技術院長 | 並列計算機 |
US5666515A (en) * | 1993-02-18 | 1997-09-09 | Unisys Corporation | Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address |
JP3255759B2 (ja) * | 1993-06-11 | 2002-02-12 | 富士通株式会社 | マルチプロセッサシステム |
US5535365A (en) * | 1993-10-22 | 1996-07-09 | Cray Research, Inc. | Method and apparatus for locking shared memory locations in multiprocessing systems |
JP3963372B2 (ja) * | 2001-02-24 | 2007-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システム |
US6986005B2 (en) * | 2001-12-31 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Low latency lock for multiprocessor computer system |
JP6080497B2 (ja) * | 2012-10-31 | 2017-02-15 | ルネサスエレクトロニクス株式会社 | 抵抗補正回路、抵抗補正方法、及び半導体装置 |
JP7113909B2 (ja) * | 2018-11-15 | 2022-08-05 | 株式会社Fuji | プラズマ照射装置 |
-
2005
- 2005-11-21 JP JP2006547760A patent/JP4852427B2/ja not_active Expired - Fee Related
- 2005-11-21 WO PCT/JP2005/021336 patent/WO2006057208A1/ja active Application Filing
- 2005-11-21 CN CN2005800400253A patent/CN101061462B/zh not_active Expired - Fee Related
- 2005-11-21 AT AT05809751T patent/ATE555437T1/de active
- 2005-11-21 US US11/720,204 patent/US20080270723A1/en not_active Abandoned
- 2005-11-21 EP EP05809751A patent/EP1832980B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
US5287503A (en) * | 1991-09-27 | 1994-02-15 | Sun Microsystems, Inc. | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
US6226717B1 (en) * | 1999-02-04 | 2001-05-01 | Compaq Computer Corporation | System and method for exclusive access to shared storage |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
Non-Patent Citations (3)
Title |
---|
JP特公平6-80497B2 1994.10.12 |
JP特公平7-113909B2 1995.12.06 |
US 2004/0003021 A1,全文. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980544A (zh) * | 2017-03-31 | 2017-07-25 | 北京奇艺世纪科技有限公司 | 一种线程同步方法及线程同步系统 |
CN106980544B (zh) * | 2017-03-31 | 2020-03-03 | 北京奇艺世纪科技有限公司 | 一种线程同步方法及线程同步系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1832980B1 (en) | 2012-04-25 |
EP1832980A1 (en) | 2007-09-12 |
CN101061462A (zh) | 2007-10-24 |
ATE555437T1 (de) | 2012-05-15 |
EP1832980A4 (en) | 2011-02-23 |
JP4852427B2 (ja) | 2012-01-11 |
WO2006057208A1 (ja) | 2006-06-01 |
JPWO2006057208A1 (ja) | 2008-08-07 |
US20080270723A1 (en) | 2008-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101061462B (zh) | 多处理器系统以及其中的排他控制方法 | |
TWI434214B (zh) | 用以延伸快取一致性以保持緩衝資料之裝置,處理器,系統及方法 | |
CN101097544B (zh) | 虚拟化事务存储器的全局溢出方法 | |
CN101313285B (zh) | 高速缓存包含性的按组放宽 | |
JP2565642B2 (ja) | マルチプロセッサのための拡張プロセッサバッファインターフェース | |
US5737759A (en) | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests | |
US20110219215A1 (en) | Atomicity: a multi-pronged approach | |
US20180239702A1 (en) | Locality-aware and sharing-aware cache coherence for collections of processors | |
JP2717752B2 (ja) | プロセッサ | |
US20120089760A1 (en) | Increasing Functionality Of A Reader-Writer Lock | |
US6795901B1 (en) | Shared memory interface with conventional access and synchronization support | |
US8904073B2 (en) | Coherence processing with error checking | |
US7620954B2 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
JPH07281955A (ja) | マルチプロセッサーシステムのスヌープ回路 | |
JP6244916B2 (ja) | 演算処理装置,演算処理装置の制御方法及び情報処理装置 | |
US11445020B2 (en) | Circuitry and method | |
JP2004538536A (ja) | ラウンド・ロビンおよびロッキング・キャッシュの置換法を実行する方法および装置 | |
US6601145B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
US20200065138A1 (en) | Memory access request for a memory protocol | |
JP2007058493A (ja) | マルチプロセッサシステム及びそれにおける排他制御方法 | |
TW548547B (en) | Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system | |
KR102476438B1 (ko) | 데이터 액세스의 원자 세트를 제공하는 장치 및 방법 | |
US6546468B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update | |
US6546469B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers |
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: 20101006 Termination date: 20181121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |