CN112130904B - 处理系统、处理器间通信方法、以及共享资源管理方法 - Google Patents
处理系统、处理器间通信方法、以及共享资源管理方法 Download PDFInfo
- Publication number
- CN112130904B CN112130904B CN202010999523.7A CN202010999523A CN112130904B CN 112130904 B CN112130904 B CN 112130904B CN 202010999523 A CN202010999523 A CN 202010999523A CN 112130904 B CN112130904 B CN 112130904B
- Authority
- CN
- China
- Prior art keywords
- processor
- processors
- register
- resource lock
- processing system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004891 communication Methods 0.000 title claims abstract description 15
- 238000007726 management method Methods 0.000 title claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 230000011664 signaling Effects 0.000 claims description 6
- 239000000725 suspension Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
该方法提供处理系统,其包括独立执行指令的多个处理器;以与所述多个处理器相对应的方式设置的多个寄存器。所述多个寄存器中的每一个被配置成分别为对应处理器以外的其余处理器设置第一寄存位,所述其余处理器能对为其设置的第一寄存位进行写操作,以表明事件需求;以及,所述多个处理器中的每一个处理器被配置为通过读对应寄存器的第一寄存位来获知所述其余处理器对它的事件需求。由此,本申请在处理系统内为多个处理器建立了处理器间通信模块。
Description
技术领域
本发明涉及处理系统,更为具体地,涉及包括多个处理器的处理系统的处理器间通信技术、共享资源管理技术。
背景技术
车载芯片因集成多种功能,通常被制成包含多种处理器的异构SOC(System-on-a-Chip,片上系统)芯片。这些处理器安全型CPU、包括应用型CPU、DSP以及各种自研的加速器。
为了更好地完成系统级的任务,各处理器在完成自己的工作之外,还需要和其他处理器保持通信,即处理器间通信。处理器间通信效率的提高是提升整个SOC性能的关键因素之一。
目前处理器间通信的方式大体有两种。一种是各处理器不停地轮询同一个内存空间来实现处理器间通信。这种方式下,因为处理器需不停地查询状态,造成处理器资源的浪费。另一种方式是通过定时器周期性地提出中断,各处理器在产生中断时,查询内存,这可减少处理器资源的浪费,但又需要设置很多定时器来专门做这个工作。
有必要提出改进的针对处理器间通信的技术方案。
发明内容
本申请据此提供具有改进的处理器间通信技术。根据本申请的一个方面,提供处理系统,其包括独立执行指令的多个处理器;以与所述多个处理器相对应的方式设置的多个寄存器。所述多个寄存器中的每一个被配置成分别为对应处理器以外的其余处理器设置第一寄存位,所述其余处理器能对为其设置的第一寄存位进行写操作,以表明事件需求;以及,所述多个处理器中的每一个处理器被配置为通过读对应寄存器的第一寄存位来获知所述其余处理器对它的事件需求。
根据本申请的又一方面,提供处理器间通信方法,其应用于处理器,所述处理器包括多个处理器、以与所述多个处理器相对应的方式设置的多个寄存器。根据该方法,所述多个处理器中有事件需求的源处理器,向与所述多个处理器中待处理该事件需求的目标处理器对应的寄存器的第一寄存位写操作,其中,被进行写操作的第一寄存位关联该源处理器;所述寄存器向所述目标处理器发出中断请求;所述目标处理器读所述寄存器,并在读到关联该源处理器的第一寄存位的值时获知所述事件需求;以及在被执行读操作以后,清零被进行了写操作的第一寄存位。
根据本申请的再一方面,还提供处理系统,该处理系统包括独立执行指令的多个处理器,每个处理器被配置为使用共享资源前,获取相应的资源锁;资源锁管理器,其与所述多个处理器分别电性连接,所述资源锁管理器被配置为接收由所述多个处理器中任意一个发送的资源锁请求并作出响应,其中,所述响应包括向发出资源锁请求的处理器分配资源锁,和/或记录发出资源锁请求但未分配到资源锁的处理器并向它们发出请求失败的信号。
根据本申请的另外一方面,还提供共享资源管理方法,应用于包括多个处理器的处理系统,其中,所述处理系统中设置资源锁管理器,所述方法包括:所述处理器中请求资源锁的处理器向所述资源锁管理器发出资源锁请求;所述资源锁管理器在所请求的资源锁可用并且请求该资源锁的处理器只有一个的情况下,将所述资源锁分配给该请求资源锁的处理器,而在该共享资源锁可用并且请求该资源锁的处理器不止一个的情况下,将所述资源锁按照预设分配机制分配给所述请求共享资源锁的处理器中的一个;以及所述资源锁管理器登记未请求到资源锁的处理器,并发送表示请求失败的信号给它们。
附图说明
图1是根据本申请示例的一种处理系统1的结构示意图。
图2示意了图1中第一寄存器20的多个第一寄存位和多个第二寄存位。
图3是根据本申请示例的源处理器与目标处理器之间通信的过程。
图4是根据本申请一个实施例的处理系统4的结构示意图。
图5示意了包括4个区块的资源锁管理器50与各处理器之间相互连接的结构图。
图6是根据本申请的一个示例的共享资源管理方法的流程示意图。
图7是根据本申请又一个实施例的处理系统7的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
图1是根据本申请示例的一种处理系统的结构示意图。应理解到,在此仅示意了处理系统与本申请有关的部分,为简洁起见,处理系统所包括的诸如逻辑器件等器件与连接关系均未示出。
根据本申请的示例,处理系统1包括多个处理器和多个寄存器,其中,寄存器是以与处理器相对应的方式设置的。根据本申请的示例,每个处理器都设置有相对应的寄存器。在结合图1的示例中,将以处理系统1包括四个处理器作为示例来阐述本申请,但应理解到处理系统1可包括其它数量的处理器,并不以所示出的为限。如图1所示,处理系统1包括四个寄存器,每一个都对应一个处理器。需要说明的是,尽管在本申请的示例中,处理器与寄存器的关系一一对应,但在实际应用中,它们的对应关系并不必然如此,例如一个寄存器对应两个处理器,或两个寄存器对应一个处理器等。
参照图1,第一处理器10对应第一寄存器20,第二处理器12对应第二寄存器22,第三处理器14对应第三寄存器24以及第四处理器16对应第四寄存器26。在本申请中,处理器对应寄存器表明该处理器可自该寄存器读其余处理器对它的事件需求;且在一些示例中,该处理器可通过对该寄存器进行写操作来使能或屏蔽其余处理器对它的事件需求。
按照本申请,多个寄存器中的每一个寄存器都被配置成分别为与其对应的处理器(也称“对应处理器”)以外的其余处理器设置第一寄存位,这些其余处理器可以对为其设置的第一寄存位进行写操作。如图1所示的例子中,第一寄存器20被配置成分别为其对应处理器,即第一处理器10以外的第二处理器12、第三处理器14、第四处理器16,设置第一寄存位。第二寄存器22被配置成分别为其对应处理器,即第二处理器12以外的第一处理器10、第三处理器14、第四处理器16设置第一寄存位。第三寄存器24被配置成分别为其对应处理器,即第三处理器14以外的第一处理器10、第二处理器12、第四处理器16设置第一寄存位。第四寄存器26被配置成分别为其对应处理器,即第四处理器16的以外的第一处理器10、第二处理器12、第三处理器14设置第一寄存位。
第一处理器10可以对第二寄存器22中为它设置的第一寄存位进行写操作以表明它对第二处理器12有事件需求,可以对第三寄存器24中为它设置的第一寄存位进行写操作以表明它对第三处理器14有事件需求,以及可以对第四寄存器26中为它设置的第一寄存位进行写操作以表明它对第四处理器16有事件需求。类似地,第二处理器12可以对第一寄存器20中为它设置的第一寄存位进行写操作,可以对第三寄存器24中为它设置的第一寄存位进行写操作,以及可以对第四寄存器26中为它设置的第一寄存位进行写操作,以分别表明它对第一处理器10、第三处理器14和第四处理器16的事件需求;第三处理器14可以对第二寄存器22中为它设置的第一寄存位进行写操作,可以对第一寄存器20中为它设置的第一寄存位进行写操作,以及可以对第四寄存器26中为它设置的第一寄存位进行写操作,以分别表明它对第一处理器10、第二处理器12和第四处理器16的事件需求;第四处理器16可以对第二寄存器22中为它设置的第一寄存位进行写操作,可以对第三寄存器24中为它设置的第一寄存位进行写操作,以及可以对第一寄存器20中为它设置的第一寄存位进行写操作,以分别表明它对第一处理器10、第二处理器12和第三处理器14的事件需求。
按照本申请,多个处理器中的每一个处理器被配置为能够读对应寄存器中的第一寄存位,以获知其余处理器对它的事件需求。图1中,第一处理器10可以读第一寄存器20中的第一寄存位以获知第二处理器12、第三处理器14、和第四处理器16对它的事情需求信息;第二处理器12可以读第二寄存器22中的第一寄存位以获知第一处理器10、第三处理器14、和第四处理器16对它的事情需求信息;第三处理器14可以读取第三寄存器24中的第一寄存位以获知第一处理器10、第二处理器12、和第四处理器16对它的事情需求信息;第四处理器16可以读取第四寄存器26中的第一寄存位以获知第一处理器10、第二处理器12、第三处理器14对它的事情需求信息。根据本申请的示例,各处理器在读寄存器之后,可清零第一寄存位。
根据本申请的一些示例,多个寄存器中的每一个还可被配置成为对应处理器以外的其余处理器分别设置第二寄存位,以便对应处理器通过该第二寄存位来使能或屏蔽其余处理器。据此,图1中的寄存器20、22、24和26分别还设置有第二寄存位。寄存器20为对应处理器10以外的其余处理器,即第二处理器12、第三处理器14和第四处理器16分别设置第二寄存位,以便处理器10通过这三个处理器各自的第二寄存位来使能或屏蔽其余处理器。寄存器22为对应处理器12以外的其余处理器,即第一处理器10、第三处理器14和第四处理器16分别设置第二寄存位,以便处理器12通过这三个处理器各自的第二寄存位来使能或屏蔽其余处理器。寄存器24为对应处理器14以外的其余处理器,即第一处理器10、第二处理器12、和第四处理器16分别设置第二寄存位,以便处理器14通过这三个处理器各自的第二寄存位来使能或屏蔽其余处理器。寄存器26为对应处理器16以外的其余处理器,即第一处理器10、第二处理器12和第三处理器14分别设置第二寄存位,以便处理器16通过这三个处理器各自的第二寄存位来使能或屏蔽其余处理器。
下面参照图2结合第一寄存器20讨论第二寄存位。图2示意了第一寄存器20的第一寄存位和第二寄存位。如图所示,示例而非限制地,第一寄存器20的位201a是用于第二处理器12的第一寄存位,第一寄存器20的位202a是用于第三处理器14的第一寄存位,第一寄存器20的位203a是用于第四处理器16的第一寄存位。第一寄存器20的位201b是用于第二处理器12的第二寄存位,第一寄存器20的位202b是用于第三处理器14的第二寄存位,第一寄存器20的位203b是用于第四处理器16的第二寄存位。
同时参照图1和图2,第一寄存器20是对应第一处理器10而设置的。按照本申请,第二处理器12、第三处理器14、第四处理器16中任意一个都是通过对第一寄存器20为它们设置的位进行写操作来向第一处理器10提出事件需求,例如写1。举例来说,有一个系统任务需要第三处理器14与第一处理器10一起完成,其中,第三处理器14完成上半部分,第一处理器10完成剩余部分。为顺序执行该系统任务,第三处理器14先完成该系统任务的上半部分。在第三处理器14完成上半部分时,需通知第一处理器10处理该系统任务的剩余部分。按照本申请的示例,第三处理器14向第一寄存器20的位202a写1。由此,第一处理器10查询第一寄存器20的第一寄存位,在位202a的值为1时,即可获知第三处理器14对它的事件需求。第一处理器10读位202a并清零。根据本申请的示例,第一处理器10还可通过对第一寄存器20的第二寄存位进行操作来使能或屏蔽其它处理器对第一处理器10的事件需求。例如,第一处理器10对第一寄存器20的位202b写1,以屏蔽第三处理器14对第一处理器10的事件需求。如此,则上文第三处理器14在完成系统任务的一部分后,将无法向第一处理器10发出事件需求。
根据本申请的一些示例,如果源处理器发给目标处理器的事件需求比较多,则为源处理器和目标处理器设置一块存储空间,使得目标处理器在获知事件需求之后能够前往该存储空间查询各事件状态,以确认具体处理哪个事件。在本申请所有示例中,源处理器指的是发出事件需求的处理器,目标处理器是被请求以处理该事件需求的处理器。比如,第三处理器14可能向第一处理器10发出三个事件需求。这种情况下,示例地,可为第一处理器器10和第三处理器14设置处理器间存储区域。第三处理器14向第一处理器10的对应寄存器20写操作之间,向该处理器间存储区域写入与此三个事件需求有关的信息。相应地,第一处理器10获知第三处理器14对其有事件需求,但在执行事件需求之前,查询该处理器间存储区域以获得与该三个事件有关的信息,进而例如判断处理这些事件的先后顺序等。该示例中,第三处理器14即为源处理器,因为其向第一处理器10发出了事件需求,相应地,第一处理器10即为目标处理器。
作为替代,该示例下,第三处理器14可向第一寄存器20的位202b写三次1,同时可通过设置的计时器来记录第三处理器14写了几次1。在第一处理器10读第一寄存器20的第一寄存位时,读到202b的1,每读一个1,即清零一次,通过设置的计时器记录清零的次数,即可获知第三处理器14对它有3个事件请求。
按照本申请的示例,每一个处理器可以包括一个核,或者说集成有一个核,也可以是包括两个或更多个核的处理器。
如此,应理解到,本申请的技术方案适用于每一个处理器即为一个核的情况。以图1为例,第一处理器、第二处理器、第三处理器和第四处理器分别为可独立执行指令的核。在这种情况下,图1的处理系统本身可被实现为一个包括多个核的处理器。
图3是根据本申请示例的源处理器与目标处理器之间通信的过程。在本例中,源处理器30和目标处理器32之间设置有中断寄存器34。寄存器34对应目标处理器32设置,目标处理器32以外的处理器,本例中仅示意了源处理器30,实际上可有更多处理器。寄存器34设置有与源处理器30关联第一寄存位,以及源处理器30通过写与它的第一寄存位而向目标处理器32发出事件需求。在此,寄存器34所设置的与源处理器30关联第一寄存位即为对应于目标处理器32的寄存器34设置的用于源处理器30的第一寄存位。
在步骤S300,源处理器30向寄存器34中与它关联的第一寄存位进行写操作,以向目标处理器32提出事件需求。按照本例,寄存器34中与源处理器30关联的第一寄存位即寄存器34中设置的用于源处理器30的第一寄存位,且根据本例,源处理器30向寄存器34中与它关联的第一寄存位进行写操作即为写1。在步骤S302,寄存器50向目标处理器32发出中断请求。在步骤S304,目标处理器32在收到来自寄存器34的中断请求之后,查询寄存器34,在读到用于源处理器30的第一寄存位的1时,获知源处理器30向其发出事件需求,并对该位清零。至此,源处理器30与目标处理器32之间通过写和读寄存器实现了关于事件需求的通知。按照本申请,目标处理器32是应中断请求而查询对应的寄存器的第一位,无需像现有技术那样不断轮训预定的处理器间通信的存储区域,也无需源处理器通过计时器来周期性地提出中断。
作为示例,在源处理器30对目标处理器32有多个事件需求时,可像如上文结合图1和图2所描述的第三处理器14和第一处理器10之间那样,利用处理器间存储区域。
图4是根据本申请一个实施例的处理系统4的结构示意图。处理系统4包括多个独立执行指令的处理器和资源锁管理器40。在图4的示例中,示意而非限制地,以处理系统4包括四个处理器作为示例来阐述本申请,分别为处理器41、处理器42、处理器44以及处理器46。处理器41、处理器42、处理器44以及处理器46分别与资源锁管理器40电性连接。资源锁管理器40被配置为接收由多个处理器中任意一个发送的资源锁请求,并作出响应。响应包括向发出资源锁请求的处理器分配资源锁,和/或记录发出资源锁请求但未分配到资源锁的处理器并向它们发出请求失败的信号。示例地,处理器41、处理器42、处理器44以及处理器46都向资源锁管理器40发出资源锁请求,资源锁管理器40接收到这些资源锁请求,作出响应。举例来说,处理器41与处理器42向资源锁管理器40请求同一个共享资源A的A资源锁,处理器44则请求另一资源B的B资源锁,处理器46同样请求资源A的A资源锁。就A资源锁,资源锁管理器40按照预设分配机制来将它分配给发出请求处理器。在本例中,示例而非限制的,预设分配机制是根据请求的先后顺序来分配,但在一些情况下,也可考虑发出请求的处理器对该资源需求的紧急程度等。因处理器41是最先申请A资源锁的处理器,资源锁管理器40将A资源锁分配给最先请求的处理器41,而向处理器42和处理器46分别发出表明它们请求失败的信号。就B资源锁,资源锁管理器40发现B资源锁不可用,因此向处理器44发出请求失败的信号。在本申请中,资源锁不可用可以是资源锁已分配给其它处理器,而被分配的处理器依然在使用该资源锁对应的资源中,未释放该资源锁;还可以是因为其它情况引起的不可用。除了发送表示请求失败的信号,资源锁管理器40还登记未请求到资源锁的处理器,亦即未能分配到资源锁的处理器,登记的方式例如是记录它们的标识ID等。在本申请中,资源锁管理器40登记处理器42、处理器46和处理器44,在一些情况中,资源锁管理器40可进一步登记未分配到A资源锁,登记处理器44未分配到B资源锁。
按照本申请的一些实施例,处理器被配置为结束对共享资源的使用时,释放相应资源锁,而资源锁管理器被配置为在资源锁被释放后发送表明资源锁已被释放的信号给所记录的未分配到资源锁的处理器。
继续参照图4,处理器41被分配到A资源锁的处理器,对其它处理器而言,作为共享资源的A资源将被处理器41所使用,且在它使用阶段,其它处理器不能使用A资源。处理器41在使用A资源结束后,即释放A资源锁。资源锁管理器40在收到释放A资源锁的信号之后,向所登记的未分配到A资源锁的处理器42、处理器46发出表示A资源锁可用的信号。如此,处理器42、处理器46例如再次发出申请A资源锁的请求,资源锁管理器40则再次执行如上所描述的过程来分配A资源锁。
按照本申请的示例,通过为多个处理器设置共享资源锁管理器,为各处理器建立一个处理器间通信通道,全局性地管理不同处理器对共享资源的请求。在共享资源分配给一个处理器时,则不再将该共享资源的资源锁分配给其余处理器并发送请求失败的信号给这些请求了但是未分配到资源锁的处理器,从而避免了这些处理器不断地发出请求资源锁的信号。此外,根据本申请,在资源锁被释放时,资源锁管理器又将释放信息发送给之前未被分配到资源锁的处理器,使它们及时获知资源锁情况。
根据本申请的一个例子,资源锁管理器可被分为n个区块,n个区块中的每一个为多个处理器中的每个处理器设置中断信号线。无论是n个区块中的哪一个,只要其管理的资源锁被释放,该区块就可通过中断信号线向记录的之前未分配到该释放的资源锁的处理器发送中断信号。图5示意了包括4个区块的资源锁管理器50与各处理器之间相互连接的结构图。如图5所示,第一区域501通过线路5011~5014分别连接到处理器51、处理器52、处理器54与处理器56;第二区域502通过线路5021~5024分别连接到处理器51、处理器52、处理器54与处理器56;第三区域503通过线路5031~5034分别连接到处理器51、处理器52、处理器54与处理器56;第四区域504通过线路5041~5044分别连接到处理器51、处理器52、处理器54与处理器56。
举例来说,第二区域502有一个资源锁被释放,则第二区域502通过线路5022、5023和5024分别向先前请求过该资源锁的处理器52、54和56发出中断信号。接收到中断信号的处理器52、54和56据此可再次发出对该资源锁的请求。
根据本申请的示例,各区块均被配置有资源使用寄存器、挂起寄存器、中断寄存器和中断使能寄存器。资源使用寄存器用来记录分配了资源锁的处理器的标识,并在该处理器释放所分配的资源锁时清除该标识。挂起寄存器为所述处理器中的每一个设置寄存位,且被配置为在所述处理器发出资源锁请求且未分配到所述资源锁的情况下,对与该处理器对应的寄存位进行操作。中断寄存器以与挂起寄存器相对应的方式为所述处理器中的每一个设置寄存位,且被配置为在被请求的所述资源锁被释放时,与所述挂起寄存器做逻辑或运算并存储运算结果。中断使能寄存器以与中断寄存器相对应的方式为所述处理器中的每一个设置寄存位。按照本申请的示例,中断寄存器在存储所述运算结果后与所述中断使能寄存器做与运算,依据该运算结果通过中断信号线发出中断。
回到图5,第一区域501的资源使用寄存器(未示出)记录分配了资源锁的处理器的标识,并在该处理器释放所分配的资源锁时清除该标识。第一区域501的挂起寄存器(未示出)为每一个处理器,即示例的处理器51、52、54和56分别设置寄存位,以便在寄存位对应的处理器请求资源锁而未分配到的情况下,操作该寄存位以进行记录。比如,处理器52、54与56请求同一锁资源而未分配到该资源锁,则分别对与处理器52、54与56对应的寄存位进行写1以记录。第一区域501的中断寄存器(未示出)是以与它的挂起寄存器相对应的方式为处理器51、52、54和56设置的。在处理器52、54与56所请求的同一锁资源被释放时,中断寄存器与挂起寄存器做逻辑或运算,由此中断寄存器对应处理器52、54与56的寄存位与挂起寄存器对应此三处理器的寄存位逻辑或并将运算结果存储在中断寄存器对应处理器52、54与56的寄存位。进一步,第一区域501的中断使能寄存器(未示出)是与它的中断寄存器相对应的方式为50、52、54和56设置的。在中断寄存器存储了它与挂起寄存器逻辑或运算之后的运算结果后,中断寄存器与断使能寄存器做与运算,并依据运算结果通过终端信号线发出中断信号,例如在运算结果为1的情况下发出中断信号。尽管未详细描述,但是其它区域中各寄存器与处理器之间的工作交互与结合图5的第一区域501是类似的。为简洁起见,就不再逐个阐述。在图5所示的例子中,每个区域与一个处理器之间设置一个中断线,这个区域有资源锁释放,该区域则通过该中断线通知记录的处理器且通过锁设置的寄存器和它们之间的运算,准确地通过相应的中断线通知到记录的处理器,这就避免了在每个资源锁与每个处理器之间设置线路,节约了资源。
图6是根据本申请的一个示例的共享资源管理方法的流程示意图。在步骤S600,处理系统中要请求资源锁的处理器向资源锁管理器发出资源锁请求。在步骤S602,资源锁管理器判断被请求的资源锁是否可用。在被请求的资源锁可用的情况下,进入步骤S604,在被请求的资源锁不可用的情况下,进入到步骤S606。
在步骤S604,资源锁管理器进一步确定请求该资源锁的处理器是否只有一个。在确定请求该资源锁的处理器只有一个的情况下,进入到步骤S605,在判断结果确定请求该资源锁的处理器有多个的情况下,进入到步骤S607。
在步骤S605,资源锁管理器将所请求的资源锁分配给请求的处理器。在步骤S606,资源管理器登记请求但未请求到该资源锁的处理器并发出表示请求失败的信号给请求资源锁的处理器。在步骤S607,资源锁管理器根据预设分配机制分配被请求的资源锁给发出请求的处理器中的一个,并进入到步骤S609。在步骤S609,资源锁管理器登记请求但未分配到资源锁的处理器,并发送请求失败的信号给它们。根据该示例,预设分配机制例如是按照请求资源锁的时间先后分配。
根据本申请的示例,还包括资源锁管理器在被请求的资源锁可用时,向已登记的未请求到该资源锁的处理器发出表示该资源锁可用的信号,例如以便它们再次请求该资源锁。关于资源锁的可用与不可用,如上文所提到的,不可用可能是该锁已经被分配给其它处理器,尚未被释放,也可能是其它情况。
图6所示的方法可例如执行在如图4所示的处理系统中,亦即,由图4中的资源锁管理器40来处理图4中的处理器41、42、44与46对资源锁的请求。图6所示的方法同样可实现在例如图5所示的处理系统中,亦即,由图5中所示的资源管理器50来处理图5中处理器51、52、54与56对资源锁的请求。
根据本申请的示例,还提供一种处理系统。该处理系统包括资源锁管理器、多个独立执行指令的处理器,以及以与所述多个处理器对应设置的多个寄存器。本示例中的资源锁管理器例如上文结合图4或图5所描述的资源锁管理器,处理器与寄存器例如结合图1所描述的多个处理器与多个寄存器,只是在本例中,所述多个处理器在要使用共享资源时,会如结合图4所描述的那样向资源锁管理器发出请求以及收到资源锁管理器的响应。
图7是根据该示例的处理系统的示意图。示例而非限制的,图7给出的示例包括四个处理器,分别为处理器701、处理器702、处理器703和处理器704。进一步,如图所示,处理系统7包括资源锁管理器70,以及与处理器701、处理器702、处理器703和处理器704对应设置的四个寄存器,分别为寄存器801,寄存器802、寄存器803和寄存器804。
本例中,处理器701、处理器702、处理器703和处理器704分别对应寄存器801,寄存器802、寄存器803和寄存器804。寄存器801为它的对应处理器701以外的处理器702、处理器703和处理器704分别设置第一寄存位,寄存器802为它的对应处理器702以外的处理器701、处理器703和处理器704分别设置第一寄存位,寄存器803为它的对应处理器703以外的处理器702、处理器701和处理器704分别设置第一寄存位,寄存器804为它的对应处理器704以外的处理器701、处理器702和处理器703分别设置第一寄存位。处理器701通过写寄存器802、803、804中的为其设置的第一寄存位来对与该寄存器对应的处理器发出事件需求。处理器702通过写寄存器801、803、804中为其设置的第一寄存位来对与该寄存器对应的处理器发出事件需求。处理器703通过写寄存器801、802和804中为其设置的第一寄存位来对与该寄存器对应的处理器发出事件需求。处理器704通过写寄存器801、802和803中为其设置的第一寄存位来对与该寄存器对应的处理器发出事件需求。多个处理器中的每一个处理器都被配置为能够读其对应寄存器中的第一寄存位,以获取其余处理器或者说其它处理器对它的事件需求。
多个寄存器中的每一个还都被配置成为对应处理器以外的其余处理器,分别设置第二寄存位。寄存器801为处理器701分别设置用于处理器702、703和704的第二寄存位,寄存器802为处理器702设置用于处理器701、703和704的第二寄存位,寄存器803为处理器703分别设置用于处理器701、702和704的第二寄存位,寄存器804为处理器704分别设置用于处理器701、702和703的第二寄存位。第二寄存位的设置是为了与该寄存器对应的处理器来使能其余处理器。举例来说,处理器701通过对寄存器801为处理器702设置的第二寄存位进行写1来使能处理器702,亦即,使得处理器702能够通过对寄存器801为它设置的第一位写1来对处理器701发出事件需求。
处理器701、702、703和704与寄存器801、802、803和804之间的交互与上文结合图1以及图2所描述的处理器10、12、14、16与寄存器20、22、24、26之间的交互是类似的,因此就不再赘述。
资源锁管理器70与处理器701、处理器702、处理器703和处理器704中每一个都电性连接。源锁管理器70被配置为接收由处理器701、处理器702、处理器703和处理器704中任意一个发送的资源锁请求,并作出响应。响应包括向发出资源锁请求的处理器分配资源锁,和/或记录发出资源锁请求但未分配到资源锁的处理器并向它们发出请求失败的信号。资源锁管理器70的配置,处理器701、处理器702、处理器703和处理器704中每一个的配置,以及资源锁管理器70与处理器701、处理器702、处理器703和处理器704之间的交互,与对图4所描述的资源管理器40的配置,处理器41、处理器42、处理器44和处理器46各自的配置,以及资源管理器40与处理器41、处理器42、处理器44和处理器46之间的交互是相似的,就不再赘述。
在本申请所有示中,每一个处理器可以仅包括一个核或者说集成一个核,也可以包括或集成两个以上的核(含两个)。如此,应理解到,本申请的各示例适用于每一个处理器即为一个核的情况。也就是说,将上文示例中的处理器直接替代为核,本申请的技术方案是可行的。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种处理系统,其特征在于,所述处理系统包括:
独立执行指令的多个处理器;
以与所述多个处理器相对应的方式设置的多个寄存器;
其中,所述多个寄存器中的每一个被配置成分别为对应处理器以外的其余处理器设置多个对应的第一寄存位,所述其余处理器能对为其设置的第一寄存位进行写操作,以表明事件需求;
其中,所述多个处理器中的每一个处理器被配置为通过读对应寄存器的第一寄存位来获知所述其余处理器对它的事件需求。
2.根据权利要求1所述的处理系统,其特征在于,所述多个寄存器中的每一个进一步被配置成分别为对应处理器以外的其余处理器设置第二寄存位;以及,所述多个处理器中的每一个处理器进一步被配置为通过操作对应寄存器中的第二寄存位来使能其余处理器。
3.根据权利要求1或2所述的处理系统,其特征在于,所述处理系统还包括:
为多个处理器中任意两个处理器设置处理器间存储区域,所述处理器间存储区域被配置在两个处理器之间的事件需求为多个的情况下,存储与所述多个事件有关的信息。
4.根据权利要求3所述的处理系统,其特征在于,所述多个处理器中每一个被配置为在有多个事件需求的情况下,在对所述第一寄存位进行写操作之前向所述处理器间存储区域写入与所述多个事件有关的信息;所述多个处理器中的每一个被配置为在获知所述其余处理器对它的事件需求之后,在执行事件需求之前首先往所述处理器间存储区域查询与所述多个事件有关的信息。
5.根据权利要求1所述的处理系统,其特征在于,所述多个处理器中的每个处理器可以是以下情况中的任意一种:包括一个核的处理器、包括两个或更多核的处理器。
6.根据权利要求1所述的处理系统,其特征在于,每个处理器还被配置为使用共享资源前,获取相应的资源锁;
所述处理系统还包括资源锁管理器,其与所述多个处理器分别电性连接,且被配置为接收由所述多个处理器中任意一个发送的资源锁请求并作出响应,其中,所述响应包括向发出资源锁请求的处理器分配资源锁,和/或记录发出资源锁请求但未分配到资源锁的处理器并向它们发出表示请求失败的信号。
7.根据权利要求6所述的处理系统,其特征在于,所述多个处理器中的每个处理器被配置为结束对共享资源的使用时释放相应资源锁,所述资源锁管理器被配置为在所述资源锁被释放后发送表明资源锁已被释放的信号给所记录的未分配到所述资源锁的处理器。
8.根据权利要求7所述的处理系统,其特征在于,所述资源锁管理器被分为n个区块,所述n个区块中的每一个为所述多个处理器中的每一个设置中断信号线,所述n个区块均被配置为在其区块内的资源锁被释放时,通过该中断信号线发送中断信号给所记录的未分配到所述资源锁的处理器。
9.根据权利要求8所述的处理系统,其特征在于,所述n个区块中的每一个被配置有:
资源使用寄存器,被配置为记录分配了资源锁的处理器的标识并在该处理器释放所分配的资源锁时清除该标识;
挂起寄存器,其为所述处理器中的每一个设置寄存位,且被配置为在所述处理器发出资源锁请求且未分配到所述资源锁的情况下,对与该处理器对应的寄存位进行操作;
中断寄存器,其以与挂起寄存器相对应的方式为所述处理器中的每一个设置寄存位,且被配置为在被请求的所述资源锁被释放时,与所述挂起寄存器做逻辑或运算并存储运算结果;
中断使能寄存器,其以与中断寄存器相对应的方式为所述处理器中的每一个设置寄存位;
其中,所述中断寄存器在存储所述运算结果后与所述中断使能寄存器做逻辑与运算,依据该运算结果通过中断信号线发出中断。
10.根据权利要求6所述的处理系统,其特征在于,所述多个寄存器中的每一个进一步被配置成分别为对应处理器以外的其余处理器设置第二寄存位;以及,所述多个处理器中的每一个处理器被配置为通过操作对应寄存器中的第二寄存位来使能其余处理器。
11.根据权利要求10所述的处理系统,其特征在于,所述处理系统还包括:
为多个处理器中任意两个处理器设置处理器间存储区域,所述处理器间存储区域被配置在两个处理器之间的事件需求为多个的情况下,存储与所述多个事件有关的信息。
12.根据权利要求11所述的处理系统,其特征在于,所述多个处理器中每一个被配置为在有多个事件需求的情况下,在对所述第一寄存位进行写操作之前向所述处理器间存储区域写入与所述多个事件有关的信息;所述多个处理器中的每一个被配置为在获知所述其余处理器对它的事件需求之后,在执行事件需求之前首先往所述处理器间存储区域查询与所述多个事件有关的信息。
13.根据权利要求6所述的处理系统,其特征在于,所述多个处理器中的每个处理器可以是以下情况中的任意一种:包括一个核的处理器、包括两个或更多核的处理器。
14.一种处理器间通信方法,其特征在于,所述方法应用于根据权利要求1所述的处理系统,所述方法包括:
所述多个处理器中有事件需求的源处理器,向与所述多个处理器中待处理该事件需求的目标处理器对应的寄存器的第一寄存位写操作,其中,被进行写操作的第一寄存位关联该源处理器;
所述寄存器向所述目标处理器发出中断请求;
所述目标处理器读所述寄存器,并在读到关联该源处理器的第一寄存位的值时获知所述事件需求;
在被执行读操作以后,清零所述第一寄存位。
15.根据权利要求14所述的处理器间通信方法,其特征在于,在所述源处理器有多个事件需求的情况下,所述源处理器在向所述第一寄存位写操作之前,向所述源处理器与所述目标处理器之间的处理器间存储区域写与所述多个事件有关的信息;相应地,所述目标处理器在进行了读操作之后,读所述处理器间存储区域所存储的与所述多个事件有关的信息。
16.一种共享资源管理方法,应用于根据权利要求1所述的处理系统,其特征在于,所述处理器系统中设置有资源锁管理器,所述方法包括:
所述处理器中请求资源锁的处理器向所述资源锁管理器发出资源锁请求;
所述资源锁管理器在所请求的资源锁可用并且请求该资源锁的处理器只有一个的情况下,将所述资源锁分配给该请求资源锁的处理器,而在该共享资源锁可用并且请求该资源锁的处理器不止一个的情况下,将所述资源锁按照预设分配机制分配给所述请求共享资源锁的处理器中的一个;以及
所述资源锁管理器登记未请求到资源锁的处理器,并发送表示请求失败的信号给它们。
17.根据权利要求16所述的共享资源管理方法,其特征在于,所述预设分配机制是按照请求资源锁的时间先后分配。
18.根据权利要求16或17所述的共享资源管理方法,其特征在于,所述方法进一步包括:
所述资源锁管理器在被请求的资源锁从不可用变为可用时,发送表示资源锁可用的信号给所登记的处理器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999523.7A CN112130904B (zh) | 2020-09-22 | 2020-09-22 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
US17/482,125 US20220091884A1 (en) | 2020-09-22 | 2021-09-22 | Processing system, inter-processor communication method, and shared resource management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999523.7A CN112130904B (zh) | 2020-09-22 | 2020-09-22 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130904A CN112130904A (zh) | 2020-12-25 |
CN112130904B true CN112130904B (zh) | 2024-04-30 |
Family
ID=73842019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010999523.7A Active CN112130904B (zh) | 2020-09-22 | 2020-09-22 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220091884A1 (zh) |
CN (1) | CN112130904B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331720B (zh) * | 2023-11-08 | 2024-02-23 | 瀚博半导体(上海)有限公司 | 用于多核间通信的方法、寄存器组、芯片及计算机设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492353A (zh) * | 2002-10-10 | 2004-04-28 | �Ҵ���˾ | 通过执行转移指令访问全局促进工具的方法、设备和系统 |
CN1670721A (zh) * | 2004-03-17 | 2005-09-21 | 日本电气株式会社 | 应用单处理器操作系统的并行处理系统中的处理器间通信系统及其程序 |
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
CN101000593A (zh) * | 2006-06-23 | 2007-07-18 | 华为技术有限公司 | 实现处理器之间进行通讯的装置和方法 |
CN101840390A (zh) * | 2009-03-18 | 2010-09-22 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN102063337A (zh) * | 2009-11-17 | 2011-05-18 | 中兴通讯股份有限公司 | 多处理器核的信息交互和资源分配的方法及系统 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
CN104111870A (zh) * | 2014-07-08 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种中断处理装置及中断处理方法 |
CN105138397A (zh) * | 2012-08-30 | 2015-12-09 | 想象力科技有限公司 | 多线程处理器中的全局寄存器保护 |
CN109144749A (zh) * | 2018-08-14 | 2019-01-04 | 苏州硅岛信息科技有限公司 | 一种使用处理器实现多处理器间通信的方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4937736A (en) * | 1987-11-30 | 1990-06-26 | International Business Machines Corporation | Memory controller for protected memory with automatic access granting capability |
US5408629A (en) * | 1992-08-13 | 1995-04-18 | Unisys Corporation | Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system |
US6456628B1 (en) * | 1998-04-17 | 2002-09-24 | Intelect Communications, Inc. | DSP intercommunication network |
US6845419B1 (en) * | 2000-01-24 | 2005-01-18 | Freescale Semiconductor, Inc. | Flexible interrupt controller that includes an interrupt force register |
US6742135B1 (en) * | 2000-11-07 | 2004-05-25 | At&T Corp. | Fault-tolerant match-and-set locking mechanism for multiprocessor systems |
US6928524B2 (en) * | 2002-12-05 | 2005-08-09 | International Business Machines Corporation | Data processing system with naked cache line write operations |
US7174406B1 (en) * | 2003-12-16 | 2007-02-06 | Emc Corporation | System and method for arbitrating access to a shared resource |
US7500039B2 (en) * | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
TW200708963A (en) * | 2005-08-26 | 2007-03-01 | Ind Tech Res Inst | Method and apparatus for synchronization in a multi-processor system |
US7523260B2 (en) * | 2005-12-22 | 2009-04-21 | International Business Machines Corporation | Propagating data using mirrored lock caches |
US7743181B2 (en) * | 2007-07-09 | 2010-06-22 | Intel Corporation | Quality of service (QoS) processing of data packets |
CN102103523A (zh) * | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
US9952865B2 (en) * | 2015-04-04 | 2018-04-24 | Texas Instruments Incorporated | Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file |
JP6943030B2 (ja) * | 2017-06-16 | 2021-09-29 | 富士通株式会社 | 情報処理装置、情報処理方法およびプログラム |
US11416749B2 (en) * | 2018-12-11 | 2022-08-16 | Amazon Technologies, Inc. | Execution synchronization and tracking |
FR3091363B1 (fr) * | 2018-12-27 | 2021-08-06 | Kalray | Système de synchronisation inter-processeurs configurable |
-
2020
- 2020-09-22 CN CN202010999523.7A patent/CN112130904B/zh active Active
-
2021
- 2021-09-22 US US17/482,125 patent/US20220091884A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492353A (zh) * | 2002-10-10 | 2004-04-28 | �Ҵ���˾ | 通过执行转移指令访问全局促进工具的方法、设备和系统 |
CN1670721A (zh) * | 2004-03-17 | 2005-09-21 | 日本电气株式会社 | 应用单处理器操作系统的并行处理系统中的处理器间通信系统及其程序 |
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
CN101000593A (zh) * | 2006-06-23 | 2007-07-18 | 华为技术有限公司 | 实现处理器之间进行通讯的装置和方法 |
CN101840390A (zh) * | 2009-03-18 | 2010-09-22 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN102063337A (zh) * | 2009-11-17 | 2011-05-18 | 中兴通讯股份有限公司 | 多处理器核的信息交互和资源分配的方法及系统 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
CN105138397A (zh) * | 2012-08-30 | 2015-12-09 | 想象力科技有限公司 | 多线程处理器中的全局寄存器保护 |
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN104111870A (zh) * | 2014-07-08 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种中断处理装置及中断处理方法 |
CN109144749A (zh) * | 2018-08-14 | 2019-01-04 | 苏州硅岛信息科技有限公司 | 一种使用处理器实现多处理器间通信的方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
Non-Patent Citations (1)
Title |
---|
Nguyen A.3.5-D blocking optimization for stencil computations on modern CPUs and GPUs.《SC'10: Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing》.2010,1-13. * |
Also Published As
Publication number | Publication date |
---|---|
CN112130904A (zh) | 2020-12-25 |
US20220091884A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170353418A1 (en) | Method and device for managing shared memory in robot operating system | |
CN100410912C (zh) | 从一个设备驱动程序向另一个传送信息的系统和方法 | |
US20060230208A1 (en) | System and method for presenting interrupts | |
JPS61109164A (ja) | バス制御方法 | |
US7970974B2 (en) | Method and system for adding or removing a logical unit of a USB mass storage device | |
JP2001331333A (ja) | 計算機システム及び計算機システムの制御方法 | |
US8141084B2 (en) | Managing preemption in a parallel computing system | |
CN105159841A (zh) | 一种内存迁移方法及装置 | |
CN112631742B (zh) | 一种资源访问权限管理装置、方法及系统 | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
CN112130904B (zh) | 处理系统、处理器间通信方法、以及共享资源管理方法 | |
US5708784A (en) | Dual bus computer architecture utilizing distributed arbitrators and method of using same | |
KR19990043986A (ko) | 업무 인계 시스템 | |
CN114546493A (zh) | 核共享方法及装置、处理核、电子设备、介质 | |
CN101547209B (zh) | 一种信息表项的更新方法和设备 | |
CN108829798B (zh) | 基于分布式数据库的数据存储方法及系统 | |
US11972293B2 (en) | Data structure, memory means and device | |
CA2095311A1 (en) | Conversation management routine for co-operative processing applications | |
KR950012734B1 (ko) | 컴퓨터 시스템 | |
CN113867912B (zh) | 执行任务的方法、装置、电子设备及可读存储介质 | |
KR920004061B1 (ko) | 입/출력 제어 시스템 재구성용 시스템 | |
CN113452729A (zh) | 序列号确定方法、设备及存储介质 | |
CN113867912A (zh) | 执行任务的方法、装置、电子设备及可读存储介质 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
US20100153974A1 (en) | Obtain buffers for an input/output driver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |