CN104268105B - 处理器局部总线互斥存取的扩展结构及操作方法 - Google Patents
处理器局部总线互斥存取的扩展结构及操作方法 Download PDFInfo
- Publication number
- CN104268105B CN104268105B CN201410489852.1A CN201410489852A CN104268105B CN 104268105 B CN104268105 B CN 104268105B CN 201410489852 A CN201410489852 A CN 201410489852A CN 104268105 B CN104268105 B CN 104268105B
- Authority
- CN
- China
- Prior art keywords
- mutual exclusion
- processor
- signal
- slave
- moderator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本专利发明一种符合处理器局部总线(Processor Local Bus,PLB)协议互斥访问(Exclusive Access)的扩展。包括1)互斥访问需要扩展的控制信号与PowerPC处理器指令、硬件的关系,2)扩展控制信号的编码及其涵义3)从属端(slave)互斥访问控制监控器的设计思路4)从属端(slave)互斥访问控制监控器的响应对处理器行为的影响。解决了PLB总线原子访问需要锁总线的问题,从而实现基于PLB总线的系统,尤其是基于PLB总线多核系统的高效率的原子访问。
Description
技术领域
本发明涉及处理器总线的扩展,具体涉及处理器局部总线(Processor LocalBus,PLB)对于互斥访问的扩展结构及操作方法。
背景技术
处理器局部总线(Processor Local Bus,PLB)是用来高度集成Core+ASIC的高性能的片上总线。具有64 bit地址宽度,128 bit数据宽度,为处理器和总线控制器提供标准接口,使设计人员可针对应用定义的电路接口(Core+ASIC)和SOC设计开发处理器内核及总线控制器。目前许多IP模块的接口都是基于PLB。
原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统中,能够在单条指令中完成的操作都可以认为是“原子操作”,在对称多处理器(Symmetric Multi-Processor,SMP)结构中就不同了,由于系统中有多个处理器在独立地运行,即使能在单条指令中完成的操作也有可能受到干扰。因此,处理器硬件和总线协议需要保证共享数据的访问的原子性。
PLB总线协议是通过锁总线的方式保证多核的原子访问。而当锁总线时,来自其它处理器的访问必须被挂起,等锁住总线的处理器完成写操作后,释放总线,其它处理器才能获得访问总线的权利,所以锁总线的方式完成原子操作会对系统的性能造成影响。
发明内容
本发明主要针对原子访问对PLB总线的互斥访问机制进行扩展,并相应提出处理器硬件和从机硬件修改的方法,通过互斥访问完成原子操作,从而提高多核系统中处理器原子操作的性能。
为达到上述目的,本发明采用的技术方案是:处理器局部总线互斥存取的扩展结构,包括基于POWER ISA的多核处理器,仲裁器,从机,其特征在于:
扩展的指令包括互斥取数指令和互斥存数指令;
扩展的总线信号包括处理器向仲裁器发出的互斥操作信号、仲裁器向从机发出的互斥操作信号、从机向仲裁器发出的互斥访问写错误信号、以及仲裁器向处理器发出的互斥访问写错误信号;
处理器内设有互斥状态寄存器;
从机扩展包括设有互斥监控器,并通过总线信号与处理器通信。
其中,所述互斥取数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作;所述互斥存数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作。
其中,所述从机扩展的互斥监控器可以锁存处理器ID信号、访问数据宽度信号,访问地址信号,并根据下次互斥访问的处理器ID信号、数据尺寸信号和访问地址信号判断处理器通过互斥存数指令执行互斥写操作是否正确,并返回信号给处理器。
如上述所述的处理器局部总线互斥存取的扩展结构的操作方法为:步骤如下,
(1)在多核处理器系统中,处理器对从机发出互斥取数指令来进行互斥读操作,处理器在总线上向仲裁器发出互斥操作信号,仲裁器向从机发出互斥操作信号,从机接受,表示其为互斥操作;
(2)从机的互斥监控器接收到仲裁器发出的互斥操作信号,转为互斥状态,锁存处理器ID、访问地址和数据宽度,完成互斥读操作,并返回操作成功信号;
(3)互斥读操作完成后,处理器的互斥状态寄存器置为1;
(4)互斥状态寄存器为1时,处理器对从机发出互斥存数指令来进行互斥写操作,处理器在总线上向仲裁器发出互斥操作信号,仲裁器向从机发出互斥操作信号;同时会有其他处理器对从机发出互斥取数指令来进行互斥读操作;
(5)从机的互斥监控器判断下一次互斥操作;如果是新的互斥读操作,则更新锁存处理器ID、访问地址和数据宽度,完成互斥读操作,互斥监控器保持互斥状态;
(6)互斥监控器判断下一次互斥操作;如果是互斥写操作,互斥监控器状态转换为空闲状态,同时根据互斥写操作的处理器ID、访问地址和数据宽度与锁存信息进行匹配对比,相匹配则向处理器返回操作成功信号,且数据完成正常存储即写操作,不相匹配则向处理器返回操作失败信号,不执行写操作,所述操作失败信号为在总线上从机向仲裁器发出互斥访问写错误信号,仲裁器向处理器发出互斥访问写错误信号;
(7)处理器根据互斥监控器返回的响应信号判断互斥操作是否完成,如果返回的是操作成功信号,则互斥状态寄存器清零,同时设置控制寄存器CR[CR0]=1;
(8)处理器根据互斥监控器返回的响应信号判断互斥操作是否完成,如果返回的是操作失败信号,则互斥状态寄存器清零,同时设置控制寄存器CR[CR0]=0,同时数据不写到存储器里面。
上述方法中,所述互斥取数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作;所述互斥存数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作。
上述方法中,所述处理器向仲裁器发出的互斥操作信号和处理器发出的请求信号同时有效,并且处理器保持有效值直到从机返回锁存地址应答信号。
上述方法中,所述从机向仲裁器发出的互斥访问写错误信号的每一比特位对应一个处理器。
上述方法中,所述处理器根据控制寄存器(CR[CR0])的值进行判断是否跳转重新开始互斥读操作。
本发明的有益效果为:本发明主要针对原子访问对PLB总线的互斥访问机制进行扩展,并相应提出处理器硬件和从机硬件修改的方法,通过互斥访问完成原子操作,任何普通读写操作不会对互斥操作造成影响,从而提高多核系统中处理器原子操作的性能。
附图说明
图1为ldwex指令编码图。
图2为lwex指令编码图。
图3为lhex指令编码图。
图4为lbwex指令编码图。
图5为stdwex指令编码图。
图6为stwex指令编码图。
图7为sthex指令编码图。
图8为stbwex指令编码图。
图9为互斥读波形图。
图10为从机互斥监控器状态转移图。
图11为成功互斥写波形图。
图12为失败互斥写波形图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述:
处理器局部总线互斥存取的扩展方法,基于Power ISA Version 2.06,扩展指令为:
图1至图8,分别显示了上述8条扩展指令的编码图。
指令功能的具体描述为,以字操作为例:
互斥读:lwex RT,RA,RB
表示以RA寄存器的值或0值为基地址,以RB地址为偏移量相加得到有效地址,取出此有效地址对应的数据给寄存器RT,并将处理器内一bit寄存器置为1,实现时互斥状态寄存器可以用RESERVE bit实现,RESERVE bit是PPC处理器里面存在的寄存器。
互斥写:stwex RT,RA,RB
RESERVE bit的值会在外部从机返回响应时清除,而CR[CR0]的值取决于返回相应是否成功。当写操作返回响应为成功,则RESERVE bit清零,同时设置控制寄存器CR[CR0]=1;如果写操作返回响应为失败,则RESERVE bit清零,同时设置控制寄存器CR[CR0]=0.
在PLB协议基础上,互斥访问扩展出信号Mn_busEx,PLB_busEx,信号值为1,表明此次访问是互斥访问。扩展出信号Sl_MExWrErr[0:n-1],PLB_MExWrErr[0:n-1],n为处理器的数量,信号响应Sl_MExWrErr[1]为1,表示返回ID为1的处理器互斥写错误响应信号。
Mn_busEx有效表示为处理器发起的是互斥操作,PLB_busEx则是由仲裁器发出到从机,表示向从机发出互斥操作。此信号和处理器发出的请求信号(Mn_request)同时有效,并且处理器保持有效值直到从机插入锁存地址应达信号(sl_addrAck)。
从从机角度看,对于互斥读操作,互斥监控器会记录互斥读操作的处理器ID,访问地址,数据宽度,并且后一次读操作的记录的信息会覆盖前一次。对于互斥写操作,从机互斥监控器只有对互斥写操作才会向处理器返回互斥响应信号。如果发起互斥写操作的处理器ID,数据宽度,访问地址与互斥监控器记录的值相同,向处理器返回互斥写操作正确,并且数据写入响应的地址中;否则,向核返回互斥写操作错误,没有任何写操作发生。
从处理器角度,当某一个处理器的互斥读操作发出后,处理器内RESERVE bit置1。处理器发出互斥写操作,如果返回互斥写操作错误,处理器会使RESERVE bit清零,同时设置控制寄存器CR[CR0]=0,如果互斥写操作成功,RESERVE bit清零,同时设置控制寄存器CR[CR0]=1。
任何普通读写操作不会对互斥操作造成影响。
以字互斥访问为例,当处理器发出字的互斥读操作,总线上处理器会发出Mn_busEx,经过仲裁器后从机接受PLB_busEx,Mn_RNW有效,表示其为互斥操作,相应控制信号,数据信号如图9所示,Mn_busEx与Mn_request同步,PLB_bus_Ex与PLB_PAVid同步,等待从机Sl_AddrAck有效。从机返回Sl_rdComp表示互斥读完成。
从机互斥监控器的状态机控制如图10所示,默认状态是未进入互斥状态(空闲状态),如果此时是互斥读操作,并且读操作正常执行,状态跳转为互斥状态,如果是互斥写状态,因为之前并无互斥读,所以返回错误响应。其它情况普通访问保持互斥空闲状态。从机的互斥监控器会锁存处理器的ID,访问的地址、数据宽度。
互斥监控器在互斥状态下,如果处理器再次发生互斥读,则监控器更新锁存的处理器ID,访问的地址、数据宽度,互斥监控器保持互斥状态。在下一次处理器发起的互斥操作写操作之前,总线不会被锁住,任一处理器发出的操作正常执行。只有互斥写操作发生,互斥监控器状态转换为空闲状态,根据写操作的处理器ID,访问地址,数据宽度判断返回操作成功还是失败,如果发起的互斥操作的信息与所存的信息相匹配,则返回操作成功,且数据正常存储,否则返回操作失败,存储器内数据不更新。
当处理器发出互斥写操作,如果处理器ID,访问地址,数据宽度与锁存信息匹配,互斥监控器返回处理器互斥写成功响应,处理器内RESERVE bit清除,设置CR[CR0]=1,同时存储器内相应地址完成数据更新。互斥写操作正常完成波形如图11所示,
如果处理器访问的信息与锁存信息不匹配,互斥监控器返回处理器互斥写错误响应,错误响应也会使处理器内RESERVE bit清零,同时设置CR[CR0]=0。互斥写操作错误完成波形如图12所示,图所示例子为互斥地址不匹配,Sl_MexWrErr与Sl_wrComp信号同步,Sl_MexWrErr有效表示互斥写错误。
在软件层面,一般多处理器系统中的原子操作程序如下:
loop:
lwex
programe for one master
stwex
bne loop
根据前述的指令功能,如果ID为0的处理器对共享数据区内地址addr0进行互斥读操作,使ID为0的处理器内RESERVE bit置为1。从机的互斥监控器锁存addr0,ID0,如果在ID为0的处理器互斥写数据之前,ID为0的处理器发出对addr1地址的字的互斥读操作,此时,互斥监控器锁存addr1,ID0。在ID为0的处理器执行stwex时,如果处理器执行的是对addr0的写操作,则会导致写的地址、ID与互斥监控器中锁存的内容(addr1,ID0)不一致,导致写数据失败,清楚RESERVE bit,同时影响CR[CR0],而bne根据CR[CR0]值进行跳转,重新发起互斥读操作。
同理如果ID为0的处理器对共享数据区内地址addr0进行互斥读操作,使ID为0的处理器内RESERVE bit置为1。从机的互斥监控器锁存addr0,ID0,如果在ID为0的处理器互斥写数据之前,ID为1的处理器发出对addr0地址的字的互斥读操作,此时,互斥监控器锁存addr0,ID1。在ID为0的处理器执行stwex时,如果处理器执行的是对addr0的写操作,则会导致写的地址、ID与互斥监控器中锁存的内容(addr0,ID1)不一致,导致写数据失败,清楚RESERVE bit,同时影响CR[CR0],而bne根据CR[CR0]值进行跳转,重新发起互斥读操作。这样保证了在处理器对某一从机进行互斥读和互斥写之间无任何互斥操作的发生。
以上对本发明的一个实例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (5)
1.一种处理器局部总线互斥存取的扩展结构的操作方法,所述扩展结构包括基于POWER ISA的多核处理器,仲裁器,从机,
扩展的指令包括互斥取数指令和互斥存数指令;
扩展的总线信号包括处理器向仲裁器发出的互斥操作信号、仲裁器向从机发出的互斥操作信号、从机向仲裁器发出的互斥访问写错误信号、以及仲裁器向处理器发出的互斥访问写错误信号;
处理器内设有互斥状态寄存器;
从机内设有互斥监控器,并通过总线信号与处理器通信;
所述操作方法步骤如下,
(1)在多核处理器系统中,处理器对从机发出互斥取数指令来进行互斥读操作,处理器在总线上向仲裁器发出互斥操作信号,仲裁器向从机发出互斥操作信号,从机接受,表示其为互斥操作;
(2)从机的互斥监控器接收到仲裁器发出的互斥操作信号,转为互斥状态,锁存处理器ID、访问地址和数据宽度,完成互斥读操作,并返回操作成功信号;
(3)互斥读操作完成后,处理器的互斥状态寄存器置为1;
(4)互斥状态寄存器为1时,处理器对从机发出互斥存数指令来进行互斥写操作,处理器在总线上向仲裁器发出互斥操作信号,仲裁器向从机发出互斥操作信号;同时会有其他处理器对从机发出互斥取数指令来进行互斥读操作;
(5)从机的互斥监控器判断下一次互斥操作;如果是新的互斥读操作,则更新锁存处理器ID、访问地址和数据宽度,完成互斥读操作,互斥监控器保持互斥状态;
(6)互斥监控器判断下一次互斥操作;如果是互斥写操作,互斥监控器状态转换为空闲状态,同时根据互斥写操作的处理器ID、访问地址和数据宽度与锁存信息进行匹配对比,相匹配则向处理器返回操作成功信号,且数据完成正常存储即写操作,不相匹配则向处理器返回操作失败信号,不执行写操作,所述操作失败信号为在总线上从机向仲裁器发出互斥访问写错误信号,仲裁器向处理器发出互斥访问写错误信号;
(7)处理器根据互斥监控器返回的响应信号判断互斥操作是否完成,如果返回的是操作成功信号,则互斥状态寄存器清零,同时设置控制寄存器CR[CR0]=1;
(8)处理器根据互斥监控器返回的响应信号判断互斥操作是否完成,如果返回的是操作失败信号,则互斥状态寄存器也会清零,同时设置控制寄存器CR[CR0]=0。
2.根据权利要求1所述的操作方法,其特征在于:所述互斥取数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作;所述互斥存数指令包括对于双字的操作、对于字的操作、对于半字的操作、以及对于字节的操作。
3.根据权利要求1所述的操作方法,其特征在于:所述处理器向仲裁器发出的互斥操作信号和处理器发出的请求信号同时有效,并且处理器保持有效值直到从机返回锁存地址应答信号。
4.根据权利要求1所述的操作方法,其特征在于:所述从机向仲裁器发出的互斥访问写错误信号的每一比特位对应一个处理器。
5.根据权利要求1所述的操作方法,其特征在于:所述处理器根据控制寄存器(CR[CR0])的值进行判断是否跳转重新开始互斥读操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410489852.1A CN104268105B (zh) | 2014-09-23 | 2014-09-23 | 处理器局部总线互斥存取的扩展结构及操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410489852.1A CN104268105B (zh) | 2014-09-23 | 2014-09-23 | 处理器局部总线互斥存取的扩展结构及操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104268105A CN104268105A (zh) | 2015-01-07 |
CN104268105B true CN104268105B (zh) | 2017-06-30 |
Family
ID=52159628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410489852.1A Active CN104268105B (zh) | 2014-09-23 | 2014-09-23 | 处理器局部总线互斥存取的扩展结构及操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268105B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022021372A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 一种处理器、ufs控制方法及计算机系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101061462A (zh) * | 2004-11-26 | 2007-10-24 | 国际商业机器公司 | 多处理器系统以及其中的排他控制方法 |
CN101213519A (zh) * | 2006-01-16 | 2008-07-02 | 精工爱普生株式会社 | 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 |
CN101635006A (zh) * | 2008-07-22 | 2010-01-27 | 中国科学院计算技术研究所 | 一种满足SystemC语法的多核处理器的互斥和信号量单元组 |
CN101840390A (zh) * | 2009-03-18 | 2010-09-22 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN102224490A (zh) * | 2008-12-12 | 2011-10-19 | 松下电器产业株式会社 | 多处理器系统及其排他控制的调解方法 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
-
2014
- 2014-09-23 CN CN201410489852.1A patent/CN104268105B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101061462A (zh) * | 2004-11-26 | 2007-10-24 | 国际商业机器公司 | 多处理器系统以及其中的排他控制方法 |
CN101213519A (zh) * | 2006-01-16 | 2008-07-02 | 精工爱普生株式会社 | 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 |
CN101635006A (zh) * | 2008-07-22 | 2010-01-27 | 中国科学院计算技术研究所 | 一种满足SystemC语法的多核处理器的互斥和信号量单元组 |
CN102224490A (zh) * | 2008-12-12 | 2011-10-19 | 松下电器产业株式会社 | 多处理器系统及其排他控制的调解方法 |
CN101840390A (zh) * | 2009-03-18 | 2010-09-22 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104268105A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386654B2 (en) | System and method for transforming PCIe SR-IOV functions to appear as legacy functions | |
US9519652B2 (en) | Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system | |
EP0514075A2 (en) | Fault tolerant processing section with dynamically reconfigurable voting | |
CN109036493A (zh) | 一种具有检错纠错机制的NAND Flash控制器 | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
JPH0258649B2 (zh) | ||
CN101802798A (zh) | 在多核处理器中使用干预消息来避免活锁 | |
CN114580344A (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
KR940002340B1 (ko) | 다중 운영 체제 컴퓨터 장치 | |
EP3629176A1 (en) | Fault detection circuit with progress register and status register | |
CN110765032A (zh) | 基于系统管理总线接口对i2c存储器进行读写的方法 | |
CN101169774B (zh) | 一种多处理器系统、共享控制装置及启动从处理器的方法 | |
CN114780248A (zh) | 资源访问方法、装置、计算机设备及存储介质 | |
CN110830563A (zh) | 一种主从架构服务器及其信息读写方法 | |
CN104268105B (zh) | 处理器局部总线互斥存取的扩展结构及操作方法 | |
CN114281751B (zh) | 芯片系统 | |
CN105183533B (zh) | 一种总线虚拟化的方法、装置及系统 | |
US7552269B2 (en) | Synchronizing a plurality of processors | |
CN106033368A (zh) | 一种多核虚拟机确定性重演的方法 | |
CN102096607B (zh) | 微处理器及其除错方法 | |
US11327759B2 (en) | Managing low-level instructions and core interactions in multi-core processors | |
CN117008843B (zh) | 控制页链表构建装置和电子设备 | |
CN110109762A (zh) | 共享内存实现方法、计算机可读存储介质及终端设备 | |
US11656796B2 (en) | Adaptive memory consistency in disaggregated datacenters | |
CN102073551B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |