CN117331720B - 用于多核间通信的方法、寄存器组、芯片及计算机设备 - Google Patents
用于多核间通信的方法、寄存器组、芯片及计算机设备 Download PDFInfo
- Publication number
- CN117331720B CN117331720B CN202311479481.4A CN202311479481A CN117331720B CN 117331720 B CN117331720 B CN 117331720B CN 202311479481 A CN202311479481 A CN 202311479481A CN 117331720 B CN117331720 B CN 117331720B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- core
- receiving
- initiating
- cores
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 118
- 238000004891 communication Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 199
- 230000000977 initiatory effect Effects 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims abstract description 67
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 7
- 239000003999 initiator Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 101001056015 Homo sapiens Mannan-binding lectin serine protease 2 Proteins 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 102100026046 Mannan-binding lectin serine protease 2 Human genes 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本公开提供了一种用于多核间通信的方法、寄存器组、芯片、计算机设备及计算机可读存储介质。实现方案由一个寄存器组执行,该方案为:确定多个处理核的中断的当前状态,其中,多个处理核包括要进行通信的发起核和接收核,多个处理核的中断的当前状态为置起或未置起;基于多个处理核的中断的当前状态,确定多个处理核中的发起核的中断的当前状态;基于发起核的中断的当前状态,指示接收核处理发起核发送的中断;以及响应于确定接收核的中断处理完毕,指示清除发起核的中断。
Description
技术领域
本公开涉及计算机的核间通信技术领域,特别是涉及一种用于多核间通信的方法、寄存器组、芯片、计算机设备及计算机可读存储介质。
背景技术
随着计算机领域的发展,多核处理已经屡见不鲜。在多核处理时,不可避免地需要在这些处理核之间建立通信,通信的两侧分别为发起核和接收核。一般来说,对于确定的发起核和接收核,会用一个寄存器组作为发起核和接收核之间的中断处理器,以实现两侧之间的通信。由于每个发起核和接收核的组合都需要一个对应的寄存器组,随着计算机的处理核的数量的增加,核间通信所需要的寄存器组的数量也水涨船高,对计算机芯片的体积占用也越来越大。而如今,用户对芯片体积和计算机处理能力提出了越来越高的要求,因此,如何通过更少的寄存器组实现更复杂的多核间的通信,成为了业界的研究热点和难点之一。
发明内容
本公开提供了一种用于多核间通信的方法、寄存器组、芯片、计算机设备及计算机可读存储介质。
根据本公开的一方面,提供了一种用于多核间通信的方法,由一个寄存器组执行,方法包括:确定多个处理核的中断的当前状态,其中,多个处理核包括要进行通信的发起核和接收核,多个处理核的中断的当前状态为置起或未置起;基于多个处理核的中断的当前状态,确定多个处理核中的发起核的中断的当前状态,包括:将所述发起核标记为可见,并且将所述多个处理核中除所述发起核以外的处理核标记为不可见;以及基于所述多个处理核中的每一个处理核的标记,从所述多个处理核的中断的当前状态中筛选出所述发起核的中断的当前状态;基于发起核的中断的当前状态,指示接收核处理发起核发送的中断,包括:获取所述接收核处理中断的条件和对应于所述条件的所述接收核的中断的处理方式,其中,所述条件与所述发起核的中断的当前状态相关;确定是否满足所述接收核处理中断的所述条件;以及响应于确定满足所述接收核处理中断的所述条件,指示所述接收核根据所述处理方式处理中断;以及响应于确定接收核的中断处理完毕,指示清除发起核的中断。
根据本公开的另一方面,提供了一种用于多核间通信的寄存器组,包括:中断状态寄存器,被配置为确定多个处理核的中断的当前状态,其中,多个处理核包括要进行通信的发起核和接收核,多个处理核的中断的当前状态为置起或未置起;子寄存器组,被配置为:基于多个处理核的中断的当前状态,确定多个处理核中的发起核的中断的当前状态,包括:将所述发起核标记为可见,并且将所述多个处理核中除所述发起核以外的处理核标记为不可见;以及基于所述多个处理核中的每一个处理核的标记,从所述多个处理核的中断的当前状态中筛选出所述发起核的中断的当前状态;以及基于发起核的中断的当前状态,指示接收核处理发起核发送的中断,包括:获取所述接收核处理中断的条件和对应于所述条件的所述接收核的中断的处理方式,其中,所述条件与所述发起核的中断的当前状态相关;确定是否满足所述接收核处理中断的所述条件;以及响应于确定满足所述接收核处理中断的所述条件,指示所述接收核根据所述处理方式处理中断;以及中断清除寄存器,被配置为响应于确定接收核的中断处理完毕,指示清除发起核的中断。
根据本公开的另一方面,提供了一种用于多核间通信的芯片,包括:本公开如上所提供的寄存器组;以及多个处理核,其中,发起核被配置为向接收核发送中断,以及根据寄存器组的中断清除寄存器的指示而清除发起核的中断,其中,接收核被配置为接收中断和根据寄存器组的子寄存器组的指示处理中断,以及在中断处理完毕后清除接收核的中断。
根据本公开的另一方面,提供了一种计算机设备,包括:至少一个处理器;以及存储器,其上存储有计算机程序,计算机程序在被处理器执行时,使处理器执行本公开如上所提供的方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行本公开如上所提供的方法。
根据本公开的一个或多个实施例,可以仅通过一个寄存器组就能动态地实现复杂的多核间通信。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1是图示出多核间通信的传统方法的示意图;
图2是图示出根据示例性实施例的用于多核间通信的方法的流程图;
图3是图示出根据示例性实施例的用于多核间通信的方法的示意图;
图4是图示出根据示例性实施例的指示接收核处理中断的过程的流程图;
图5是图示出根据示例性实施例的寄存器组的示意性框图;
图6是图示出根据另一示例性实施例的寄存器组的示意性框图;
图7是图示出根据示例性实施例的多核间通信的过程的框架图;
图8是图示出根据另一示例性实施例的多核间通信的过程的框架图;
图9是图示出根据另一示例性实施例的多核间通信的过程的框架图;
图10是图示出能够应用于示例性实施例的示例性计算机设备的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
随着计算机领域的发展,多核处理已经广为应用。在多核处理尤其是异构多核协同时,不可避免地需要在这些处理核之间建立通信,以通过“一对多”中断、“多对一”中断、或者”一对一”中断,以及互斥锁来完成交互。
图1是图示出多核间通信的传统方法100的示意图。
如图1所示,方法100涉及八个处理核之间的通信,这八个处理核包括四个发起核110、120、130和140,以及四个接收核150、160、170和180。处理核之间的通信可以发生在一个发起核与多个接收核之间(例如发起核110和接收核150、160),也可以发生在多个发起核与一个接收核之间(例如发起核120、130和接收核170),还可以发生在一个发起核与一个接收核之间(例如发起核140和接收核180)。一般来说,对于确定的发起核和接收核,会用一个寄存器组作为发起核和接收核之间的中断处理器,以实现两侧之间的通信。
如图1所示,发起核110和接收核150、160之间的通信属于通过“一对多”中断实现通信的一种情况,其需要一个特定的寄存器组101来专门实现其间的通信。图1中仅示出“一对多”中断通信的一个示例,应当理解,其他的处理核所构成的“一对多”中断通信也需要与之对应的特定的寄存器组。
依然如图1所示,发起核120、130和接收核170之间的通信属于通过“多对一”中断实现通信的一种情况,其需要一个特定的寄存器组102来专门实现其间的通信。图1中仅示出“多对一”中断通信的一个示例,应当理解,其他的处理核所构成的“多对一”中断通信也需要与之对应的特定的寄存器组。
继续参见图1,发起核140和接收核180之间的通信属于通过“一对一”中断实现通信的一种情况,其需要一个特定的寄存器组103来专门实现其间的通信。图1中仅示出“一对一”中断通信的一个示例,应当理解,其他的处理核所构成的“一对一”中断通信也需要与之对应的特定的寄存器组。
也就是说,发起核和接收核之间的每个组合都需要一个对应的寄存器组。以存在四个发起核和四个接收核的情况为例,上述三种中断通信最多可能会需要104个寄存器组,这对计算机芯片的体积占用非常大,并且在芯片设计制造中也带来了很大的工作量。随着计算机的处理核的数量的增加,核间通信所需要的寄存器组的数量也越来越大,于是对计算机芯片的体积占用和设计制造所需的人工成本也越来越大。
应当理解,图1为了便于说明,将八个处理核明确分为发起核和接收核两类。在实际应用中,一个处理核可以是一次通信中的发起核,同时也是另一次通信中的接收核。
上述传统方法还存在另一个问题。一般来说,当主控核作为发起核向从核发送中断后,当从核处理完该中断时需要作为新的发起核向主控核发送一个中断以告知主控核中断处理完成。也就是说,实际上在一次完整的通信过程中,需要执行发起与接收关系相反的两次中断传输,两次传输分别需要用到一个上述的寄存器组,同时意味着需要双倍的中断资源。在一些情况下,也可以通过让主控核在发送中断后不断轮询接收核的中断状态,以确认中断处理是否完成。然而这样的方式会占用MCU(Microcontroller Unit,微控制单元)大量的资源和时间,尤其是当涉及到远端主机处理核时,轮询的时间成本会更高,不能满足用户需求。
如今,用户对芯片体积和计算机处理能力提出了越来越高的要求。因此,业界希望研究出如何通过更少的寄存器组来满足处理核间复杂的通信需求,最好是仅通过一个寄存器组就能动态地实现多核间的通信。
为了仅通过一个寄存器组就能动态地实现多核间的通信,本公开提供了一种用于多核间通信的方法。
下面结合附图详细描述本公开的示例性实施例。
图2是图示出根据示例性实施例的用于多核间通信的方法200的流程图。方法200包括步骤S210、S220、S230、以及S240。方法200由一个寄存器组执行。
参考图2,在步骤S210,确定多个处理核的中断的当前状态。这些处理核包括要进行通信的发起核和接收核,并且这些处理核的中断的当前状态为置起或未置起。
在步骤S220,基于多个处理核的中断的当前状态,确定多个处理核中的发起核的中断的当前状态。
在步骤S230,基于发起核的中断的当前状态,指示接收核处理发起核发送的中断。
在步骤S240,响应于确定接收核的中断处理完毕,指示清除发起核的中断。
以下进一步描述根据本公开实施例的用于多核间通信的方法的各个方面。
在示例中,可以将所有可能涉及到的处理核与该寄存器组连接,以使得该寄存器能够获取到这些处理核的中断的当前状态。所有处理核的中断的当前状态可以以一串字符的形式存储在该寄存器组中的一个寄存器之中,于是,寄存器组总是同时获知这些处理核中的每一个处理核的中断的当前状态。
在示例中,上述字符串可以通过不同位的数值来表示这些处理核中不同的处理核的中断的当前状态。可以通过筛选出当前通信过程中的发起核所对应的位,或者屏蔽当前通信过程中发起核以外的其他处理核所对应的位,获取到这些处理核中的发起核的中断的当前状态。
一般来说,当发起核的中断被置起,那么接收核可以接受由发起核发出的中断。当发起核仅有一个时,接收核是否可以接收并处理中断仅取决于该唯一的发起核的中断的当前状态。但是当发起核有多个时,可以在这些发起核全都发出中断后接收核才接收并处理中断,也可以在这些发起核中的任意一个发起核发出中断后接收核就接收并处理中断。接收核接收并处理中断的时机与多个发起核的中断的当前状态的关系可以由用户自主设定。
在核间通信的过程中,当接收核处理完中断且该中断不再会被用到时,往往会自动清除该中断。但此时发起核本身并不能获知该中断已处理完毕且不再会被用到,因此该中断仍然在发起核中置起。以传统的方法,接收核一般会在此时向发起核发送一个中断以告知发起核该中断已处理完毕且不再会被用到,从而使得发起核可以清除掉该中断。
在示例中,由于寄存器组总是同时获知每一个处理核的中断的当前状态,这些处理核也包括接收核,中断的当前状态还可以指示中断是否被清除,因此该寄存器组可以全局地掌握中断处理进程。当接收核处理完中断且该中断不再会被用到时,寄存器组能够立即获知,并基于该信息直接指示发起核清除中断,而不必由接收核再向发起核发出额外的中断,于是很大程度上节省了中断资源。
图3是图示出根据示例性实施例的用于多核间通信的方法300的示意图。
在示例中,如图3所示,方法300涉及八个处理核之间的通信,这八个处理核包括四个发起核310、320、330和340,以及四个接收核350、360、370和380。处理核之间的通信可以发生在一个发起核与多个接收核之间(即,“一对多”),也可以发生在多个发起核与一个接收核之间(即,“多对一”),还可以发生在一个发起核与一个接收核之间(即,“一对一”)。
在示例中,方法300通过一个寄存器组390来动态地处理上述各种情况的中断通信。寄存器组390可以全局地获知所有处理核的中断状态,并通过筛选出要进行通信的一个或多个发起核的中断状态,来控制中断通信的处理,将此次通信要传输的信息传输给要进行通信的一个或多个接收核。
应当理解,图3为了便于说明,将八个处理核明确分为发起核和接收核两类。在实际应用中,任意一个处理核都可以是一次通信中的发起核,同时又是另一次通信中的接收核。
根据本公开实施例的用于多核间通信的方法,通过全局地获知所有处理核的中断状态,再筛选得到当前要进行通信的发起核的中断状态以控制中断通信的处理,于是能够在软件而非硬件的层面上来调节通信两侧的处理核,仅用一个寄存器组便能够完成多种通信配置,为多核间通信赋予了更高的灵活性和便利性,节省了芯片上物理空间的占用,有利于芯片产品进一步轻便化,也使得芯片制造工艺得以简化。另一方面,通过一个寄存器组全局地获取每一个处理核的中断状态,还能够令中断在接收核处是否处理完成的信息也不必再通过发送中断来实现接收核与发起核之间的同步,使得中断清除的环节得以简化,节省了中断资源,并且提高了多核间的通信效率。
根据一些实施例,在如图2所示的步骤S220中,可以先将发起核标记为可见,并且将多个处理核中除发起核以外的处理核标记为不可见,再基于多个处理核中的每一个处理核的标记,从多个处理核的中断的当前状态中筛选出发起核的中断的当前状态。
如上所述,所有处理核的中断的当前状态以一串字符(可以称为“第一字符串”)的形式存储在该寄存器组中的一个寄存器之中,且第一字符串的特定位的数值可以用于表示这些处理核中不同的处理核的中断状态。在示例中,可以用另一个字符串(可以称为“第二字符串”)来表示哪些处理核可见,哪些处理核不可见。第一字符串和第二字符串中对应于同一个处理核的位可以一一对应。可以通过对第一字符串和第二字符串中对应的位的数值做逻辑运算来确定可见的处理核,即,发起核的中断的当前状态。
根据本公开的实施例,通过对处理核中的发起核和除发起核以外的其他发起核做不同的标记,能够便利于寄存器组从多个处理核的中断的当前状态中筛选出其中的发起核的中断的当前状态。
图4是图示出根据示例性实施例的指示接收核处理中断的过程400的流程图。过程400包括步骤S410、S420以及S430。过程400例如可以与图2的步骤S230相结合。
如图4所示,在步骤S410,可以获取接收核处理中断的条件和对应于条件的接收核的中断的处理方式。条件可以与发起核的中断的当前状态相关。
在步骤S420,可以确定是否满足接收核处理中断的条件。
在步骤S430,可以响应于确定满足接收核处理中断的条件,指示接收核根据处理方式处理中断。
在示例中,当发起核仅有一个时,接收核处理中断的条件可以是当该发起核的中断被置起,那么接受和处理由发起核发出的中断。当发起核有多个时,接收核处理中断的条件可以例如是当这些发起核全都发出中断后才接收和处理由发起核发出的中断,还可以例如是当这些发起核中的任意一个发起核发出中断后就接收和处理由发起核发出的中断。
在示例中,接收核的中断的处理方式可以例如是将中断置起,还可以例如是将中断清除。
在示例中,接收核处理中断的条件和对应于条件的接收核的中断的处理方式均可以由用户自主设定,该设定可以在软件层面执行。
根据本公开的实施例,通过基于获取到的接收核处理中断的条件和对应于条件的接收核的中断的处理方式来执行中断处理,能够使得核间通信和中断处理具有更大的灵活性,能够简单方便地在各种处理和组合之间执行各种各样的中断处理。
根据一些实施例,可以存在多个发起核,此时条件可以被表示为针对多个发起核的中断的当前状态的逻辑运算。
在示例中,当发起核有多个,且接收核处理中断的条件为发起核全都发出中断时,条件可以被表示为针对多个发起核的中断的当前状态的与运算。当发起核有多个,且接收核处理中断的条件为这些发起核中的任意一个发起核发出中断,那么条件可以被表示为针对多个发起核的中断的当前状态的或运算。
根据本公开的实施例,通过在存在多个发起核时将条件表示为针对多个发起核的中断的当前状态的逻辑运算,能够便利于对接收核处理中断是否满足条件的判断。
根据一些实施例,在如图2所示的步骤S240中,可以先确定接收核的中断是否被清除,其中,接收核的中断被清除指示接收核的中断处理完毕,再响应于确定接收核的中断被清除,清除发起核的中断。
在示例中,所有处理核的中断是否被清除的状态信息可以以一串字符(可以称为“第三字符串”)的形式存储在该寄存器组中的一个寄存器之中,于是,寄存器组可以总是同时获知这些处理核中的每一个处理核的中断是否被清除。可以理解,当一个接收核中的中断被清除可以等同地认为该中断已被处理完成且之后不会再被用到。
在示例中,第三字符串可以通过不同位的数值来表示这些处理核中不同的处理核的中断是否被清除。可以通过确定当前通信过程中的接收核所对应的位的数值获知接收核的中断是否被清除。
根据本公开的实施例,通过全局地确定每一个处理核的中断是否被清除的情况,于是不必再通过额外发送中断来同步接收核与发起核之间的中断清除的情况,而是在寄存器组统筹地获知中断在接收核处是否已经处理完成的信息,进而指示发起核清除中断。这样一来,便简化了中断清除的环节,节省了中断资源,提高了多核间的通信效率。
根据一些实施例,在存在多个接收核的情况下,确定接收核的中断是否被清除的过程可以是,先确定多个接收核中的每一个接收核的中断是否被清除,然后响应于确定多个接收核中的每一个接收核的中断都被清除,确定接收核的中断被清除。
在示例中,当接收核有多个时,若多个接收核中的部分接收核的中断已处理完成并自动清除,而另一部分的接收核的中断仍在处理中,这就意味着该中断在当前以及之后仍会被用到,因此不能够直接清除发起核的中断。但当多个接收核中的所有接收核的中断都已处理完成并自动清除,那么就意味着该中断在之后已不会再被用到,因此此时可以指示发起核清除该中断。
在示例中,多个处理核中的哪一些处理核为当前通信过程中的接收核可以例如通过第二字符串来表征,第二字符串的值可以由用户自主设定。
根据本公开的实施例的确定接收核的中断是否被清除的过程,通过在多个接收核中的每一个接收核的中断都被清除时判定接收核的中断被清除,能够避免在中断仍会被用到时就提前清除了发起核的中断,从而影响中断的后续处理。
根据本公开的另一方面,还提供一种用于多核间通信的寄存器组。
图5是图示出根据示例性实施例的寄存器组500的示意性框图。
如图5所示,寄存器组500包括:中断状态寄存器510,被配置为确定多个处理核的中断的当前状态,其中,多个处理核包括要进行通信的发起核和接收核,多个处理核的中断的当前状态为置起或未置起;子寄存器组520,被配置为:基于多个处理核的中断的当前状态,确定多个处理核中的发起核的中断的当前状态;以及基于发起核的中断的当前状态,指示接收核处理发起核发送的中断;以及中断清除寄存器530,被配置为响应于确定接收核的中断处理完毕,指示清除发起核的中断。
根据本公开的实施例的寄存器组,通过全局地获知所有处理核的中断状态,再筛选得到当前要进行通信的发起核的中断状态以控制中断通信的处理,于是能够在软件而非硬件的层面上来调节通信两侧的处理核,仅用一个寄存器组便能够完成多种通信配置,为多核间通信赋予了更高的灵活性和便利性,节省了芯片上物理空间的占用,有利于芯片产品进一步轻便化,也使得芯片制造工艺得以简化。另一方面,通过一个寄存器组全局地获取每一个处理核的中断状态,还能够令中断在接收核处是否处理完成的信息也不必再通过发送中断来实现接收核与发起核之间的同步,使得中断清除的环节得以简化,节省了中断资源,并且提高了多核间的通信效率。
应当理解,图5中所示寄存器组500的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于寄存器组500及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
还应当理解,本文可以在软件或程序模块的一般上下文中描述各种技术。上面关于图5描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,如图5所示的中断状态寄存器510、子寄存器组520、以及中断清除寄存器530中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
以下将结合图6至图9进一步说明如何利用本公开示例性实施例的寄存器组实施本公开示例性实施例的用于多核间通信的方法。
图6是图示出根据另一示例性实施例的寄存器组600的示意性框图。寄存器组600例如可以用于18个处理核之间通信,这18个处理核可以分别具有编号0~17。
在示例中,如图6所示,寄存器组600可以包括中断状态寄存器620、中断清除寄存器630、以及子寄存器640、650和在图6中未示出的多个其他子寄存器。除此之外,寄存器组600还可以包括间接寄存器610。
在示例中,中断状态寄存器620中可以存储一个20位的字符串,自右向左的前18位的数值可以分别用于表示18个处理核的中断的当前状态。例如位621可以表示0号处理核的中断的当前状态,位622可以表示1号处理核的中断的当前状态,位623可以表示17号处理核的中断的当前状态。每一个处理核的中断的当前状态可以包括置起或未置起,这两种状态可以分别用数值1和0来表示。
在示例中,间接寄存器610可以包括20个可读可写寄存器组611、612、613、614、615、以及未进行编号的其他可读可写寄存器组,这些可读可写寄存器组也可以记为Map0~Map19。Map0~Map17可以用于存储每个处理核发送中断需要的信息和状态,Map18和Map19可以作为预留寄存器组,以备未来的其他需求。
在示例中,中断状态寄存器620中存储的字符串中的位624和625可以与间接寄存器610相关联。位624可以表示要写入值的可读可写寄存器组的编号,位625可以表示要写入可读可写寄存器组的值。例如当位624的数值为1,位625的数值为8,则意味着要在Map1对应的可读可写寄存器组612中写入数值“8”。写入的数值可以包含有关核间通信的模式的信息,例如“多对一”、“一对一”、“一对多”等,该数值与模式的对应关系可以由用户预先设定。
当进行核间通信时,发起核可以在中断状态寄存器620写下必要的中断信息,并给接收核发送中断。此时寄存器组600可以根据设置和中断状态寄存器620中写的值产生中断给接收核。接收核接收到中断后,可以读取中断信息并进行中断处理。待接收核处理完中断事件,可以清除对应的中断。寄存器组600在检测到接收核中断处理完成后,可以根据设置自动发出中断给发起核,通知发起核所有目标都已完成任务,或者直接清除发起核发出的中断。
在示例中,中断清除寄存器630中可以存储一个18位的字符串,自右向左的每一位数值可以分别用于表示18个处理核是否需要清除中断。例如位631可以表示0号处理核的中断是否需要清除,位632可以表示1号处理核的中断是否需要清除,位633可以表示17号处理核的中断是否需要清除。每一个处理核的中断被置起时,其对应的位的数值可以变为0,当对该数值写1时,其对应的处理核的中断可以被清除。
在示例中,每一个或多个子寄存器可以用于存储一条核间通信策略,该策略可以表示处理核中哪个或哪些处理核是发起核,哪个或哪些处理核是接收核,接收核处理中断的条件,以及对应于条件的接收核的中断的处理方式等信息。
以子寄存器640为例,子寄存器640中可以存储有上文中所述的一个第二字符串。该第二字符串的部分641可以以18位的数表示处理核中哪个或哪些处理核是发起核。每一个处理核都可以是发起核或不是发起核,这两种情况可以在其对应的位分别用数值0和1来表示。当某个处理核对应的位的数值为1时,可以理解为该处理核在该核间通信策略中应当被屏蔽。
该第二字符串的部分643可以表示该核间通信策略中的模式以及中断的种类,中断的种类例如可以是多个发起核的中断置起的或运算、多个发起核的中断置起的与运算、检测上升沿、检测下降沿或者清除中断等。
该第二字符串的部分642可以表示核间通信的模式为“多对一”或者“一对多”时对应于“多”的一侧的处理核完成中断后,需要进一步触发哪个处理核的中断。由于当后续不再触发新的中断时,需要清除发起核的中断,因此在这种情况下可以在部分642写发起核的编号。部分642的设置使得能够简单方便地实现任务级联,进一步节省了中断资源,提高了核间通信的灵活性。
在应用中,可以先确定要使用什么样的核间通信策略,从而可以在该核间通信策略所对应的子寄存器进行设置。例如可以在部分643中设置参数,该参数例如可以被记为Int_set或Int_setting,该参数的值可以表示该核间通信策略中的模式为“多对一”、“一对一”还是 “一对多”,以及中断的种类。例如还可以在部分641中进一步设置发起核具体来说是哪些处理核,该参数例如可以被记为Int_msk或Core_msk。例如还可以在部分642中再进一步设置需要进一步触发中断的处理核,该参数例如可以被记为nxt_id。通过对部分642的设置,可以实现在“一对多”模式下自动触发中断给发起核,或者清除发起核的中断,从而完成整个中断的闭环。
类似地,子寄存器650中也可以存储有一个第二字符串。该第二字符串的部分651可以表示处理核中哪个或哪些处理核是发起核,部分653可以表示该核间通信策略中的模式以及中断的种类,部分652可以表示需要进一步触发哪个处理核的中断。
图7是图示出根据示例性实施例的多核间通信的过程700的框架图。过程700例如可以表示一条由编号为1和4的两个发起核向一个编号为0的接收核770发送中断(即,“多对一”模式)的核间通信策略的执行过程。所有处理核的数量可以假定为5。
在示例中,参数711可以例如记为asst_interrupt0,其可以表示编号为1的发起核的中断的当前状态。参数712可以例如记为asst_interrupt1,其表示编号为4的发起核的中断的当前状态。参数721可以例如记为interrupt0,其可以在参数711置1时随之置1,以表示编号为1的发起核的中断当前被置起。参数722可以例如记为interrupt1,其可以在参数712置1时随之置1,以表示编号为4的发起核的中断当前被置起。
参数731和参数732可以分别记为Core_status0和Core_status1,其可以以数组或字符串的形式表示所有处理核的中断的当前状态,参数731和参数732的值可以是基于interrupt0、interrupt1和其他同类参数的值而得到的。
参数741和参数742可以分别记为Core_msk0和Core_msk1,其可以表示所有处理核中的哪些处理核是发起核,参数741和参数742的值可以是基于上文中所述的第二字符串而得到的,第二字符串可以例如被存储在如图6所示的寄存器组600中的子寄存器640中。
参数751和参数752可以分别记为Nxt_id0和Nxt_id1,其可以表示发起核发出中断后,需要进一步触发中断的处理核,即,编号为0的接收核770。该参数的值可以例如是基于如图6所示的部分642而得到的。
参数760可以记为Int_setting,其可以表示该核间通信策略中的模式以及中断的种类,过程700的模式即为“多对一”模式,中断的种类例如可以是多个发起核的中断置起的或运算(可以用“|”表示)、多个发起核的中断置起的与运算(可以用“&”表示)、检测上升沿(可以用“ndg_detect”表示)、检测下降沿(可以用“psg_detect”表示)或者清除中断等,参数760的值可以例如是基于如图6所示的部分643而得到的。
在示例中,例如可以将Core_msk0设置为“5’b11100”,表示需要筛选出asst_interrupt0和asst_interrupt1,而屏蔽掉其他处理核的中断的当前状态。可以将Int_setting设置为“&,2’b11”,表示对多个发起核的中断置起进行与运算,通信模式为“多对一”。
在示例中,当编号为1的发起核发出中断,其中断被置起,则可以配置asst_interrupt0为1。当编号为4的发起核发出中断,其中断被置起,则可以配置asst_interrupt1为1。当编号为1和4的发起核都发出中断,则多个发起核的中断置起与运算结果为1,此时编号为0的接收核770才会收到中断,接收核770的中断被置起,接收核770进行任务处理。
当编号为0的接收核770处理完任务后,会自动清除自己的中断。此时编号为1和4的发起核设置的中断asst_interrupt0和asst_interrupt1也会被清除,而不需要由编号为0的接收核770执行两次分别清除编号为1和4的发起核的中断的任务,只需要清除自己的一次中断即可。可见,过程700在中断清理的环节处理非常迅速,节省了核操作步骤,简化了软件编程。
图8是图示出根据另一示例性实施例的多核间通信的过程800的框架图。过程800例如可以表示一条由编号为1的发起核向编号为3的接收核870发送中断(即,“一对一”模式)的核间通信策略的执行过程。所有处理核的数量可以依然假定为5。
在示例中,参数810可以例如记为asst_interrupt2,其可以表示编号为1的发起核的中断的当前状态。参数820可以例如记为interrupt2,其可以在参数810置1时随之置1,以表示编号为1的发起核的中断当前被置起。
参数830可以记为Core_status2,其可以表示所有处理核的中断的当前状态,参数830的值可以是基于interrupt2和其他同类参数的值而得到的。
参数840可以记为Core_msk2,其可以表示所有处理核中的哪个处理核是发起核,参数840的值可以是基于上文中所述的另一个第二字符串而得到的,该第二字符串可以例如被存储在如图6所示的寄存器组600中的子寄存器650中。
参数850可以记为Nxt_id2,由于过程800不涉及多个发起核或多个接收核,因此参数850不会被用到。
参数860可以记为Int_setting,其可以表示该核间通信策略中的模式以及中断的种类,过程800的模式即为“一对一”模式,中断的种类例如可以是检测上升沿(可以用“ndg_detect”表示)、检测下降沿(可以用“psg_detect”表示)或者清除中断等,参数860的值可以例如是基于如图6所示的部分653而得到的。
在示例中,例如可以将Core_msk2设置为“5’b11011”,表示需要筛选出asst_interrupt2,而屏蔽掉其他处理核的中断的当前状态。可以将Int_setting设置为“&,2’b01”。由于发起核仅有一个,因此“&”可以表示发起核的中断置起。同时,通信模式为“一对一”。
在示例中,当编号为1的发起核发出中断,其中断被置起,则可以配置asst_interrupt2为1。此时编号为3的接收核870收到中断,接收核870的中断被置起,接收核870进行任务处理。
当编号为3的接收核870处理完任务后,会自动清除自己的中断。此时编号为1的发起核设置的中断asst_interrupt2也会被清除,不需要由编号为3的接收核870额外执行清除编号为1的发起核的中断的任务。
图9是图示出根据另一示例性实施例的多核间通信的过程900的框架图。过程900例如可以表示一条由编号为1的一个发起核向编号分别为3和4的两个接收核971、972发送中断(即,“一对多”模式)的核间通信策略的执行过程。所有处理核的数量可以假定为5。
参数911和参数912可以例如分别记为asst_interrupt3和asst_interrupt4,二者可以均表示编号为1的发起核的中断的当前状态。参数921可以例如记为interrupt3,其可以在参数911置1时随之置1,以表示编号为1的处理核的中断被置起。类似地,参数922可以例如记为interrupt4,其可以在参数912置1时随之置1。
参数931和参数932可以分别记为Core_status3和Core_status4,其可以表示所有处理核的中断的当前状态。参数941和参数942可以分别记为Core_msk3和Core_msk4,其可以表示所有处理核中的哪些处理核是发起核。参数951和参数952可以分别记为Nxt_id3和Nxt_id4,其可以表示接收核清除中断后,需要进一步触发中断的处理核,即,需要随之清除中断的编号为1的发起核。参数960可以记为Int_setting,其可以表示该核间通信策略中的模式以及中断的种类,过程900的模式即为“一对多”模式。
在示例中,例如可以将Core_msk3设置为“5’b10111”,表示需要筛选出asst_interrupt3而屏蔽掉其他处理核的中断的当前状态。类似地,可以将Core_msk4设置为“5’b01111”,表示需要筛选出asst_interrupt4而屏蔽掉其他处理核的中断的当前状态。可以将Int_setting设置为“&,2’b10”。由于发起核仅有一个,因此“&”可以表示发起核的中断置起。同时,通信模式为“一对多”。可以将Nxt_id3和Nxt_id4均设置为“Core1”,表示接下来需要触发的处理核为编号为1的发起核。
在示例中,当编号为1的发起核发出中断,其中断被置起,则可以配置asst_interrupt3和asst_interrupt4为1。此时编号为3和4的两个的接收核971、972都收到中断,接收核971、972的中断被置起,于是进行任务处理。
当编号为3和4的两个的接收核971、972处理完任务后,需要自动清除自己的中断。当编号为3和4的两个的接收核971、972的中断被清除前,可以分别向编号为1的发起核发送一个中断,以将其设置的中断也进行清除。于是,编号为1的发起核不需要不断轮询接收核971、972的中断的处理状态,在接收核971、972的中断处理完毕之前,编号为1的发起核可以先处理其他任务,直到此中断再次置起来时再处理此任务,即清除中断,于是整个任务的闭环得以形成。
根据本公开的一方面,提供了一种用于多核间通信的芯片,包括:上文描述的寄存器组;以及多个处理核,其中,发起核被配置为向接收核发送中断,以及根据寄存器组的中断清除寄存器的指示而清除发起核的中断,其中,接收核被配置为接收中断和根据寄存器组的子寄存器组的指示处理中断,以及在中断处理完毕后清除接收核的中断。
根据本公开的一方面,提供了一种计算机设备,其包括存储器、处理器以及存储在存储器上的计算机程序。该处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
在下文中,结合图10描述这样的计算机设备和非暂态计算机可读存储介质的说明性示例。
图10示出了可以被用来实施本文所描述的方法的计算机设备1000的示例配置。举例来说,上述点云数据处理装置可以全部或至少部分地由计算机设备1000或类似设备或系统实现。
计算机设备1000可以是各种不同类型的设备。计算机设备1000的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等等。
计算机设备1000可以包括能够诸如通过系统总线1014或其他适当的连接彼此通信的至少一个处理器1002、存储器1004、(多个)通信接口1006、显示设备1008、其他输入/输出(I/O)设备1010以及一个或更多大容量存储设备1012。
处理器1002可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器1002可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器1002可以被配置成获取并且执行存储在存储器1004、大容量存储设备1012或者其他计算机可读介质中的计算机可读指令,诸如操作系统1016的程序代码、应用程序1018的程序代码、其他程序1020的程序代码等。
存储器1004和大容量存储设备1012是用于存储指令的计算机可读存储介质的示例,指令由处理器1002执行来实施前面所描述的各种功能。举例来说,存储器1004一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备1012一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器1004和大容量存储设备1012在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器1002作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备1012上。这些程序包括操作系统1016、一个或多个应用程序1018、其他程序1020和程序数据1022,并且它们可以被加载到存储器1004以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现方法500和/或本文描述的另外的实施例的计算机程序逻辑(例如,计算机程序代码或指令)。
虽然在图10中被图示成存储在计算机设备1000的存储器1004中,但是模块1016、1018、1020和1022或者其部分可以使用可由计算机设备1000访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机可读存储介质和通信介质。
计算机可读存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机可读存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。与此相对,通信介质可以在诸如载波或其他传送机制之类的已调制数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机可读存储介质不包括通信介质。
一个或更多通信接口1006用于诸如通过网络、直接连接等等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口1006可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口1006还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备1008,以用于向用户显示信息和图像。其他I/O设备1010可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
本文描述的技术可以由计算机设备1000的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。例如,该功能还可以通过使用分布式系统在“云”上全部或部分地实现。云包括和/或代表用于资源的平台。平台抽象云的硬件(例如,服务器)和软件资源的底层功能。资源可以包括在远离计算机设备1000的服务器上执行计算处理时可以使用的应用和/或数据。资源还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。平台可以抽象资源和功能以将计算机设备1000与其他计算机设备连接。因此,本文描述的功能的实现可以分布在整个云内。例如,功能可以部分地在计算机设备1000上以及部分地通过抽象云的功能的平台来实现。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。
Claims (6)
1.一种用于多核间通信的方法,由一个寄存器组执行,所述方法包括:
确定多个处理核的中断的当前状态,其中,所述多个处理核包括要进行通信的发起核和接收核,所述多个处理核的中断的当前状态为置起或未置起或指示中断是否被清除;
基于所述多个处理核的中断的当前状态,确定所述多个处理核中的所述发起核的中断的当前状态,包括:
将所述发起核标记为可见,并且将所述多个处理核中除所述发起核以外的处理核标记为不可见;以及
基于所述多个处理核中的每一个处理核的标记,从所述多个处理核的中断的当前状态中筛选出所述发起核的中断的当前状态;
基于所述发起核的中断的当前状态,指示所述接收核处理所述发起核发送的中断,包括:
获取所述接收核处理中断的条件和对应于所述条件的所述接收核的中断的处理方式,其中,所述条件与所述发起核的中断的当前状态相关,其中,当所述发起核仅有一个时,所述接收核处理中断的条件是当所述发起核的中断被置起,接受和处理由所述发起核发出的中断;当存在多个发起核时,所述接收核处理中断的条件是针对所述多个发起核的中断的当前状态的逻辑运算;
确定是否满足所述接收核处理中断的所述条件;以及
响应于确定满足所述接收核处理中断的所述条件,指示所述接收核根据所述处理方式处理中断;
确定所述接收核的中断是否被清除,其中,所述接收核的中断被清除指示所述接收核的中断处理完毕;以及
响应于确定所述接收核的中断被清除,指示清除所述发起核的中断。
2.根据权利要求1所述的方法,其中,存在多个接收核,所述确定所述接收核的中断是否被清除,包括:
确定所述多个接收核中的每一个接收核的中断是否被清除;以及
响应于确定所述多个接收核中的每一个接收核的中断都被清除,确定所述接收核的中断被清除。
3.一种用于多核间通信的寄存器组,包括:
中断状态寄存器,被配置为确定多个处理核的中断的当前状态,其中,所述多个处理核包括要进行通信的发起核和接收核,所述多个处理核的中断的当前状态为置起或未置起或指示中断是否被清除;
子寄存器组,被配置为:
基于所述多个处理核的中断的当前状态,确定所述多个处理核中的所述发起核的中断的当前状态,包括:
将所述发起核标记为可见,并且将所述多个处理核中除所述发起核以外的处理核标记为不可见;以及
基于所述多个处理核中的每一个处理核的标记,从所述多个处理核的中断的当前状态中筛选出所述发起核的中断的当前状态;以及
基于所述发起核的中断的当前状态,指示所述接收核处理所述发起核发送的中断,包括:
获取所述接收核处理中断的条件和对应于所述条件的所述接收核的中断的处理方式,其中,所述条件与所述发起核的中断的当前状态相关,其中,当所述发起核仅有一个时,所述接收核处理中断的条件是当所述发起核的中断被置起,接受和处理由所述发起核发出的中断;当存在多个发起核时,所述接收核处理中断的条件是针对所述多个发起核的中断的当前状态的逻辑运算;
确定是否满足所述接收核处理中断的所述条件;以及
响应于确定满足所述接收核处理中断的所述条件,指示所述接收核根据所述处理方式处理中断;以及
中断清除寄存器,被配置为确定所述接收核的中断是否被清除,其中,所述接收核的中断被清除指示所述接收核的中断处理完毕;以及响应于确定所述接收核的中断被清除,指示清除所述发起核的中断。
4.一种用于多核间通信的芯片,包括:
根据权利要求3所述的寄存器组;以及
所述多个处理核,
其中,所述发起核被配置为向所述接收核发送中断,以及根据所述寄存器组的所述中断清除寄存器的指示而清除所述发起核的中断,
其中,所述接收核被配置为接收中断和根据所述寄存器组的所述子寄存器组的指示处理中断,以及在中断处理完毕后清除所述接收核的中断。
5.一种计算机设备,包括:
至少一个处理器;以及
存储器,其上存储有计算机程序,
其中,所述计算机程序在被所述处理器执行时,使所述处理器执行权利要求1-2中任一项所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479481.4A CN117331720B (zh) | 2023-11-08 | 2023-11-08 | 用于多核间通信的方法、寄存器组、芯片及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479481.4A CN117331720B (zh) | 2023-11-08 | 2023-11-08 | 用于多核间通信的方法、寄存器组、芯片及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117331720A CN117331720A (zh) | 2024-01-02 |
CN117331720B true CN117331720B (zh) | 2024-02-23 |
Family
ID=89277467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311479481.4A Active CN117331720B (zh) | 2023-11-08 | 2023-11-08 | 用于多核间通信的方法、寄存器组、芯片及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331720B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154785A (en) * | 1998-07-17 | 2000-11-28 | Network Equipment Technologies, Inc. | Inter-processor communication system |
CN1570855A (zh) * | 2004-04-30 | 2005-01-26 | 浙江大学 | Arm处理器架构的微内核设计方法 |
WO2015176408A1 (zh) * | 2014-05-22 | 2015-11-26 | 深圳市中兴微电子技术有限公司 | 中断处理方法及中断控制器 |
CN108009121A (zh) * | 2017-12-21 | 2018-05-08 | 中国电子科技集团公司第四十七研究所 | 面向应用的动态多核配置方法 |
CN108073545A (zh) * | 2016-11-17 | 2018-05-25 | 联芯科技有限公司 | 一种多处理器通信装置及方法 |
CN109564508A (zh) * | 2016-07-31 | 2019-04-02 | 微软技术许可有限责任公司 | 处理器的事务寄存器文件 |
DE102019112589A1 (de) * | 2019-05-14 | 2020-11-19 | Technische Universität Dortmund | Mehr-Kern-Prozessorsystem |
CN112130904A (zh) * | 2020-09-22 | 2020-12-25 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
CN112506568A (zh) * | 2016-12-31 | 2021-03-16 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN114443322A (zh) * | 2022-01-20 | 2022-05-06 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子设备及存储介质 |
WO2022116755A1 (zh) * | 2020-12-03 | 2022-06-09 | 哲库科技(北京)有限公司 | 多核系统的死机信息存储方法以及介质和电子设备 |
CN114651238A (zh) * | 2019-09-24 | 2022-06-21 | 脸谱科技有限责任公司 | 具有处理器间通信(ipc)的人工现实系统 |
CN116048824A (zh) * | 2023-03-30 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
CN219372421U (zh) * | 2023-02-13 | 2023-07-18 | 杭州微纳核芯电子科技有限公司 | 用于移动装置中的电容传感器数据传输的设备 |
CN116450554A (zh) * | 2023-04-12 | 2023-07-18 | 深圳砺驰半导体科技有限公司 | 中断处理方法、根复合体设备及电子设备 |
CN116541336A (zh) * | 2023-07-04 | 2023-08-04 | 南方电网数字电网研究院有限公司 | 多核芯片、协处理器的软件运行方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5842206B2 (ja) * | 2012-01-27 | 2016-01-13 | 株式会社トプスシステムズ | プロセッサ・コア、およびマルチコア・プロセッサ・システム |
CN113032166B (zh) * | 2021-03-26 | 2024-05-24 | 黑芝麻智能科技(上海)有限公司 | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 |
US20230100059A1 (en) * | 2021-09-21 | 2023-03-30 | Intel Corporation | Interrupt handling by migrating interrupts between processing cores |
-
2023
- 2023-11-08 CN CN202311479481.4A patent/CN117331720B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154785A (en) * | 1998-07-17 | 2000-11-28 | Network Equipment Technologies, Inc. | Inter-processor communication system |
CN1570855A (zh) * | 2004-04-30 | 2005-01-26 | 浙江大学 | Arm处理器架构的微内核设计方法 |
WO2015176408A1 (zh) * | 2014-05-22 | 2015-11-26 | 深圳市中兴微电子技术有限公司 | 中断处理方法及中断控制器 |
CN109564508A (zh) * | 2016-07-31 | 2019-04-02 | 微软技术许可有限责任公司 | 处理器的事务寄存器文件 |
CN108073545A (zh) * | 2016-11-17 | 2018-05-25 | 联芯科技有限公司 | 一种多处理器通信装置及方法 |
CN112506568A (zh) * | 2016-12-31 | 2021-03-16 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN108009121A (zh) * | 2017-12-21 | 2018-05-08 | 中国电子科技集团公司第四十七研究所 | 面向应用的动态多核配置方法 |
DE102019112589A1 (de) * | 2019-05-14 | 2020-11-19 | Technische Universität Dortmund | Mehr-Kern-Prozessorsystem |
CN114651238A (zh) * | 2019-09-24 | 2022-06-21 | 脸谱科技有限责任公司 | 具有处理器间通信(ipc)的人工现实系统 |
CN112130904A (zh) * | 2020-09-22 | 2020-12-25 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
WO2022116755A1 (zh) * | 2020-12-03 | 2022-06-09 | 哲库科技(北京)有限公司 | 多核系统的死机信息存储方法以及介质和电子设备 |
CN114443322A (zh) * | 2022-01-20 | 2022-05-06 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子设备及存储介质 |
CN219372421U (zh) * | 2023-02-13 | 2023-07-18 | 杭州微纳核芯电子科技有限公司 | 用于移动装置中的电容传感器数据传输的设备 |
CN116048824A (zh) * | 2023-03-30 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
CN116450554A (zh) * | 2023-04-12 | 2023-07-18 | 深圳砺驰半导体科技有限公司 | 中断处理方法、根复合体设备及电子设备 |
CN116541336A (zh) * | 2023-07-04 | 2023-08-04 | 南方电网数字电网研究院有限公司 | 多核芯片、协处理器的软件运行方法 |
Non-Patent Citations (3)
Title |
---|
基于ARM11 MPCore的多核间通信机制研究;邢向磊;周余;都思丹;;计算机应用与软件(05);全文 * |
基于多核DSP的XX星座载荷处理软件系统研究;吴婧;信息科技(第1期);全文 * |
基于多核DSP的核间通信方法研究;郑佳晶,李洪亮;信息科技(第299期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117331720A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3570175B1 (en) | Method for implementing nvme over fabrics, terminal, server, and system | |
JP6004608B2 (ja) | ホストusbアダプタを仮想化するための方法、装置、およびコンピュータ・プログラム(ホストusbアダプタの仮想化) | |
US10509758B1 (en) | Emulated switch with hot-plugging | |
WO2021244194A1 (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
KR102498223B1 (ko) | Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법 | |
CN109243425A (zh) | 语音识别测试方法、装置、系统、计算机设备及存储介质 | |
CN116320469B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN116582438B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
CN114584541A (zh) | 一种加速虚拟机网络的方法 | |
CN105279110B (zh) | 一种usb设备识别主机系统的方法及usb设备 | |
CN102339240B (zh) | 检测设备上的状态丢失 | |
CN104753816A (zh) | 一种rdma连接的报文处理方法及相关装置 | |
CN112328356B (zh) | Android与Windows的互通方法、装置、存储介质及计算机设备 | |
CN117331720B (zh) | 用于多核间通信的方法、寄存器组、芯片及计算机设备 | |
CN109933411B (zh) | 一种在线修改虚拟机内部配置系统及方法 | |
US10176133B2 (en) | Smart device with no AP | |
CN106933646B (zh) | 一种创建虚拟机的方法及装置 | |
TWI611344B (zh) | 記憶體系統協定中提供檔案資訊之系統及方法 | |
TWI629638B (zh) | 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
EP3916548B1 (en) | Electronic device and method for controlling electronic device | |
TW202244731A (zh) | 虛擬機的裝置直通方法及其伺服器 | |
CN117312226A (zh) | 处理电路、方法、芯片及电子设备 | |
CN118034856A (zh) | 一种容器化训练方法、装置及电子设备 |
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 |