CN109144749A - 一种使用处理器实现多处理器间通信的方法 - Google Patents

一种使用处理器实现多处理器间通信的方法 Download PDF

Info

Publication number
CN109144749A
CN109144749A CN201810925318.9A CN201810925318A CN109144749A CN 109144749 A CN109144749 A CN 109144749A CN 201810925318 A CN201810925318 A CN 201810925318A CN 109144749 A CN109144749 A CN 109144749A
Authority
CN
China
Prior art keywords
queue
processor
control word
write
word
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.)
Granted
Application number
CN201810925318.9A
Other languages
English (en)
Other versions
CN109144749B (zh
Inventor
葛松芬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Silicon Island Information Technology Co Ltd
Original Assignee
Suzhou Silicon Island Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Silicon Island Information Technology Co Ltd filed Critical Suzhou Silicon Island Information Technology Co Ltd
Priority to CN201810925318.9A priority Critical patent/CN109144749B/zh
Publication of CN109144749A publication Critical patent/CN109144749A/zh
Application granted granted Critical
Publication of CN109144749B publication Critical patent/CN109144749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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)利用星型、总线型等拓扑结构的片上网络或总线,加一个核心调度处理器及其它处理器和硬件IP核总成的多核间通信系统。在这网络中要放置核心调度处理器,由核心调度处理器来实现各个处理器之间通信的消息传递。这种结构的缺点是为了实现多核间通信占用了大量硬件资源,需要1个专门的处理器作为核心调度处理器,这个处理器不能用作其它用途;对多核片上系统架构的限制过于严格,必须要使用该技术对应的片上网络或总线。
(4)也有些厂商设计了基于硬件的多核间通信模块,但是这些模块不具备通用性,只在该厂商特定的处理器核间使用。例如TI公司的多核DSP产品,就采用了专门的核间通信寄存器等组件来实现通信。
(5)而且这种基于硬件的多核间通信模块,一旦芯片设计出来后就固定了,难以根据实际应用场景改变。因为在多核系统,处理器核数目比较多,所以需要集成的通信模块也会比较多,有可能需要2个,3个,4个,8个等等。一旦芯片生产后,通信模块的个数就固定了,对于处理器核数在几个,几十个内的多核系统,在设计芯片时,队列数目是可以大致评估的。但对于大型多核系统,例如单芯片上集成几百个处理器核,这时在设计芯片时难以评估芯片在应用时需要的通信模块数目。加入大量通信模块会导致浪费,加入少量又担心不足。
发明内容
针对上述现有技术不足,本专利提供一种使用系统中一个处理器实现多处理器间通信的方法。在一个多核系统中,如果能用其中1个处理器来作为各个处理器之间的信息通信桥梁灵活性大大提高。此处理器上能支持根据多核程序需求搭建大量或少量的通信队列,同时对于那些不需要队列的应用,则此处理器也可以用作其它用途。
本发明提供的一种使用处理器实现多处理器间通信的方法是通过以下技术方案实现的:
一种使用处理器实现多处理器间通信的方法,包括:
使用一个处理器和一个存储器来搭建通信队列实现各处理器间的通信。所述存储器必须能被系统中参与通信的各个处理器都能访问到。所述通信队列由队列控制字和队列中存放消息的消息存储区构成,所述队列控制字存放于队列控制字存储区;
当系统集成多个通信队列时,将多个通信队列组成队列堆;
队列控制字存储区第一个单元存放队列新建锁,第二个单元存放队列个数;
一个队列控制字包括7个:
(1)队列状态字STATE:存放本队列运行状态的说明信息。,包括队列状态ST,队列编号ID;ST、ID的位宽可以根据实际情况灵活设定;队列状态ST指示本队列的状态,用于队列需求方和通信处理器之间的握手和通信;
(2)写指针控制字WPTR:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址;每当写入方完成写操作后会更新此寄存器;
(3)读指针控制字RPTR:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址;每当读取方完成读操作后会更新此控制字;
(4)有效单元数控制字VALIDNUM:记录当前已经写入但还未被读取的单元个数;此控制字的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预;此控制字可供消息写入方和读取方读取;
(5)中断上报控制控制字INTCTRL:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断;
(6)存储器基址控制字QBASE:队列中存放的消息数据是存放在一块存储器中的;存储器基址控制字QBASE用于记录此存储器在系统存储空间中的首地址;
(7)队列容量控制字QSIZE:记录消息存放存储区域的容量;
写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数。判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;
读取方可以通过设置中断上报控制字,通过中断引发中断处理程序完成消息读取操作,可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待。
所述队列状态字其包含的状态有:
(7)队列无效:说明本队列无效且是最后1个队列。由于各个队列的控制字是连续存放的,无效队列永远是位于最后1个,这也说明队列控制字区域的结束;当然当其他处理器需要新增队列时,则需修改ST数值为“队列建立请求”,这样通信处理器就会新增7个控制字,6个是本队列的控制字,最后1个是下一个队列的状态字。下一个队列的状态字的ST继续设置为无效;
(8)队列建立请求:通信处理器如果检测到最后1个队列状态字为“队列建立请求”,则会新建队列,并把新建队列的下一个队列的状态字的ST设置为无效;
(9)队列正常:指示本队列可以正常操作;
(10)队列删除请求:当队列的使用方不再需要此队列时,设置为此状态。通信处理器会回收本队列。回收本队列时,队列控制字不会回收,但其消息存储区可以回收,也可以不回收;如果不回收则留给未来其它通信使用。;
(11)队列删除确认:通信处理器已经确认了队列删除请求,并把该队列加入了通信处理器内部维护的“可使用队列编号组”;“可使用队列编号组”用于记录已经删除的队列编号,当需要新建队列时,通信处理器优先把“可使用队列编号组”中记录的队列分配给使用方,并从“可使用队列编号组”删除分配出去的队列;如果“可使用队列编号组”中没有队列记录,则会新建队列;
(12)队列无效但队列ID有效:这种状态出现在如下情况下:当队列需求方发出队列新建请求,即将最后1个队列状态字的ST设置为队列建立请求时,如果通信处理器的“可使用队列编号组”中有之前回收的可再使用的队列,则会把最后1个队列状态字设为本状态数值,同时把“可使用队列编号组”中要分配给队列需求方使用队列的ID写入最后1个队列的状态字的ID字段;队列需求方发现最后1个队列状态字的ST处于此状态时,读取最后1个队列的状态字的ID字段,将最后1个队列状态字的ST设置为队列无效,并使用读到的ID指定的队列;状态字ID字段说明队列的编号。
所述VALIDNUM的计算方法是:当WPTR>=RPTR时,VALIDNUM=WPTR-RPTR(此情况下,写指针在队列前面,读指针在队列后面,已经写入但未被读走的有效单元是在2个指针之间);当WPTR<RPTR时,VALIDNUM=QSIZE-RPTR+WPTR(此情况下,写指针在队列后面,读指针反倒在队列前面,已经读取而未被写入的无效单元是在2个指针之间,有效单元数就是队列容量减去无效单元个数),这一计算过程是通信处理器完成的;
队列的尾地址QEND=QBASE+QSIZE。读写指针数值必须在首地址和尾地址之间(含首地址,不含尾地址)。写入方和读取方在更新WPTR和RPTR,如果WPTR或RPTR等于QEND,则要将WPTR或RPTR更新为QBASE,即从存储器首地址再开始。
所述队列控制字是连续存放的。
所述新建队列的步骤为:
a、写队列处理器读取写指针,有效单元个数,存储器基址和存储容量,然后判断是否可写,如果写入后再更新写指针。更新后如果系统约定采用中断的方式,向通信处理器发送中断,以启动通信处理器更新队列控制字。
b、读队列处理器读取读指针,中断上报控制,有效单元个数,存储器基址和存储容量,然后判断是否可读,如果可读则读取后再更新读指针。也可以对中断上报控制进行修改,以开启或关闭中断上报,及设置上报阈值。更新后如果系统约定采用中断的方式,也会向通信处理器发送中断,以启动通信处理器更新队列控制字。
c、通信处理器可以逐个查询每个队列的读写指针是否有更新,如果有更新则重新计算VALIDNUM;也可以通过中断的方式,当某一个队列的读写指针有变化时会引起通信处理器的中断。这个中断触发可以是读写队列处理器通过事件触发的,也可以由系统设计人员加入专门逻辑实现。如果系统约定采用中断通知的方式,通信处理器也会检查是否符合中断上报条件,如果符合会向读队列处理器或写队列处理器发送中断。
本发明的有益效果是:
(1)通用性强。即便是不加入专门的硬件逻辑电路,使用一个处理器和一块存储空间也可以实现多处理器间通信;
(2)更加灵活。如果不实现这种方法,通信处理器可以用作其他用途,不会浪费处理器资源;如果实现的队列个数较少时,通信处理器仍然可以有一部分负载做其他用途。实现方式也比较灵活,可以采用中断或查询的方式。通过查询方式可以减轻处理器上程序难度,但是会占用处理器运行时间;而通过中断方式,处理器处理的响应速度提高;同时处理器主程序可以做其它事情,当符合条件时才会处理,提高了处理器的利用效率;
(3)对队列的种类没有限制,包括但不限于先入先出队列,先入后出队列。队列的种类可根据应用场景选取。
(4)对多核系统架构限制较小,不仅仅适用于多核片上系统,也能适用于多个处理器芯片互联组成的板上系统;
(5)各个处理器都可通过总线或网络对队列读写,队列本身没有规定方向性。同一个处理器对此队列先写入消息再读出消息也可以。这样做是为了提高通用性,同一个处理器上运行多个进程或线程的时候会出现这种情况。另外如果实现的是先入后出队列,同一个处理器也可以把这个队列作为堆栈使用。
附图说明
图1是本发明实施例1结构示意图;
图2是本发明实施例2结构示意图;
图3是队列控制字的读写方向以及控制字存储区结构示意图;
图4为新建队列的步骤图。
具体实施方式
下面将通过实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
一种使用处理器实现多处理器间通信的方法,包括:使用一个处理器和一个存储器来搭建通信队列实现各处理器间的通信。所述存储器必须能被系统中参与通信的各个处理器都能访问到。所述通信队列由队列控制字和队列中存放消息的消息存储区构成,所述队列控制字存放于队列控制字存储区;
如图1所示,处理器0的程序放在程序存储器0中,数据存放在数据存储器0中。处理器1的程序放在程序存储器1中,数据存放在数据存储器1中。同理处理器2和3。但这些4个程序存储器和4个数据存储器都能被这4个处理器访问到。
实施例2
如图2所示,存储器0和1为系统中的各个处理器的共享存储器,能被各个处理器访问到。
实施例3
当系统集成多个通信队列时,将多个通信队列组成队列堆;采用处理器组建队列堆,就是用处理器和处理器上运行的程序来实现各个队列的控制功能。队列的控制字和消息存储区放到系统中各个处理器都能访问到的区域。队列的组织方式包括先入先出,先入后出等。队列中的最小单元位宽可以是字节(8位),半字(16位),字(32位)等。队列中的单元个数是灵活可配的。
实施例4
队列控制字存储区第一个单元存放队列新建锁,第二个单元存放队列个数。由于队列控制字存储区首地址是系统中约定的,这样通过首地址和队列个数,各个处理器都能计算出队列控制字最后一个队列状态字的地址。同时由于每个队列控制字长度总是7个控制字,所以只要知道队列的ID编号,就能知道队列的控制字存放地址。
“队列新建锁”是为了避免多个处理器同时新建队列时引发的冲突。由于在多核系统中会出现多个处理器同时写最后1个队列控制字以发出新建队列请求,所以加入这个控制字,起到互斥访问的作用。队列新建锁无效时可以是某一数值,例如0xFFFFFFFF。在多核系统中,每个处理器都有自己的处理器ID,当处理器要发出新建队列请求时,首先读取队列新建锁,如果队列新建锁中数值不是无效,则继续等待;如果队列新建锁中数值为无效,则将自己的ID写入队列新建锁。写入后开始写入最后1个队列控制字以发出新建队列请求。注意这个过程中处理器对这个队列新建锁控制字的“读—写”操作必须是原子操作,即顺序不可以被打乱,也不可以被切割而只执行其中的一部分,将整个操作视作一个整体。原子操作可以使用处理器自身提供的原子操作指令来实现。
等完成队列新建后,队列新建锁会被重新设置为无效。这时其它处理器可以继续发出队列新建请求。
实施例5
如图4所示,所述新建队列的步骤为:
a、写队列处理器读取写指针,有效单元个数,存储器基址和存储容量,然后判断是否可写,如果写入后再更新写指针。更新后如果系统约定采用中断的方式,向通信处理器发送中断,以启动通信处理器更新队列控制字。
b、读队列处理器读取读指针,中断上报控制,有效单元个数,存储器基址和存储容量,然后判断是否可读,如果可读则读取后再更新读指针。也可以对中断上报控制进行修改,以开启或关闭中断上报,及设置上报阈值。更新后如果系统约定采用中断的方式,也会向通信处理器发送中断,以启动通信处理器更新队列控制字。
c、通信处理器可以逐个查询每个队列的读写指针是否有更新,如果有更新则重新计算VALIDNUM;也可以通过中断的方式,当某一个队列的读写指针有变化时会引起通信处理器的中断。这个中断触发可以是读写队列处理器通过事件触发的,也可以由系统设计人员加入专门逻辑实现。如果系统约定采用中断通知的方式,通信处理器也会检查是否符合中断上报条件,如果符合会向读队列处理器或写队列处理器发送中断。
所述处理器之间的中断触发要借助于系统中的中断控制器以及相关中断寄存器;处理器一般不会直接向另外一个处理器发送中断;常见的实现2个处理器之间中断通信的方法例如:处理器A会写入中断控制器中或系统中的一个寄存器某一位B,位B被写入后会触发了处理器C的中断信号线变化,从而引起处理器C的中断。
以上所述实施例仅表示本发明的实施方式,其描述较为具体和详细,但并不能理解为对本发明范围的限制。应当指出的是,对于本领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明保护范围。

Claims (5)

1.一种使用处理器实现多处理器间通信的方法,包括:
使用一个处理器和一个存储器来搭建通信队列实现各处理器间的通信;所述存储器必须能被系统中参与通信的各个处理器都能访问到;所述通信队列由队列控制字和队列中存放消息的消息存储区构成,所述队列控制字存放于队列控制字存储区;
当系统集成多个通信队列时,将多个通信队列组成队列堆;
队列控制字存储区第一个单元存放队列新建锁,第二个单元存放队列个数;
一个队列控制字包括7个:
(1)队列状态字STATE:存放本队列运行状态的说明信息,包括队列状态ST,队列编号ID;ST、ID的位宽可以根据实际情况灵活设定;队列状态ST指示本队列的状态,用于队列需求方和通信处理器之间的握手和通信;
(2)写指针控制字WPTR:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址;每当写入方完成写操作后会更新此寄存器;
(3)读指针控制字RPTR:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址;每当读取方完成读操作后会更新此控制字;
(4)有效单元数控制字VALIDNUM:记录当前已经写入但还未被读取的单元个数;此控制字的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预;此控制字可供消息写入方和读取方读取;
(5)中断上报控制控制字INTCTRL:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断;
(6)存储器基址控制字QBASE:队列中存放的消息数据是存放在一块存储器中的;存储器基址控制字QBASE用于记录此存储器在系统存储空间中的首地址;
(7)队列容量控制字QSIZE:记录消息存放存储区域的容量;
写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数,判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;
读取方可以通过设置中断上报控制字,通过中断引发中断处理程序完成消息读取操作,可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待。
2.根据权利要求1所述的一种使用处理器实现多处理器间通信的方法,其特征在于:所述队列状态字其包含的状态有:
(1)队列无效:说明本队列无效且是最后1个队列,由于各个队列的控制字是连续存放的,无效队列永远是位于最后1个,这也说明队列控制字区域的结束;当然当其他处理器需要新增队列时,则需修改ST数值为“队列建立请求”,这样通信处理器就会新增7个控制字,6个是本队列的控制字,最后1个是下一个队列的状态字,下一个队列的状态字的ST继续设置为无效;
(2)队列建立请求:通信处理器如果检测到最后1个队列状态字为“队列建立请求”,则会新建队列,并把新建队列的下一个队列的状态字的ST设置为无效;
(3)队列正常:指示本队列可以正常操作;
(4)队列删除请求:当队列的使用方不再需要此队列时,设置为此状态,通信处理器会回收本队列,回收本队列时,队列控制字不会回收,但其消息存储区可以回收,也可以不回收;如果不回收则留给未来其它通信使用;
(5)队列删除确认:通信处理器已经确认了队列删除请求,并把该队列加入了通信处理器内部维护的“可使用队列编号组”;“可使用队列编号组”用于记录已经删除的队列编号,当需要新建队列时,通信处理器优先把“可使用队列编号组”中记录的队列分配给使用方,并从“可使用队列编号组”删除分配出去的队列;如果“可使用队列编号组”中没有队列记录,则会新建队列;
(6)队列无效但队列ID有效:这种状态出现在如下情况下:当队列需求方发出队列新建请求,即将最后1个队列状态字的ST设置为队列建立请求时,如果通信处理器的“可使用队列编号组”中有之前回收的可再使用的队列,则会把最后1个队列状态字设为本状态数值,同时把“可使用队列编号组”中要分配给队列需求方使用队列的ID写入最后1个队列的状态字的ID字段;队列需求方发现最后1个队列状态字的ST处于此状态时,读取最后1个队列的状态字的ID字段,将最后1个队列状态字的ST设置为队列无效,并使用读到的ID指定的队列;状态字ID字段说明队列的编号。
3.根据权利要求1所述的一种使用处理器实现多处理器间通信的方法,其特征在于:所述VALIDNUM的计算方法是:当WPTR>=RPTR时,VALIDNUM=WPTR-RPTR(此情况下,写指针在队列前面,读指针在队列后面,已经写入但未被读走的有效单元是在2个指针之间);当WPTR<RPTR时,VALIDNUM=QSIZE-RPTR+WPTR(此情况下,写指针在队列后面,读指针反倒在队列前面,已经读取而未被写入的无效单元是在2个指针之间,有效单元数就是队列容量减去无效单元个数),这一计算过程是通信处理器完成的;
队列的尾地址QEND=QBASE+QSIZE,读写指针数值必须在首地址和尾地址之间(含首地址,不含尾地址),写入方和读取方在更新WPTR和RPTR,如果WPTR或RPTR等于QEND,则要将WPTR或RPTR更新为QBASE,即从存储器首地址再开始。
4.根据权利要求1所述的一种使用处理器实现多处理器间通信的方法,其特征在于:所述队列控制字是连续存放的。
5.根据权利要求1所述的一种使用处理器实现多处理器间通信的方法,其特征在于:所述新建队列的步骤为:
a、写队列处理器读取写指针,有效单元个数,存储器基址和存储容量,然后判断是否可写,如果写入后再更新写指针;更新后如果系统约定采用中断的方式,向通信处理器发送中断,以启动通信处理器更新队列控制字;
b、读队列处理器读取读指针,中断上报控制,有效单元个数,存储器基址和存储容量,然后判断是否可读,如果可读则读取后再更新读指针;也可以对中断上报控制进行修改,以开启或关闭中断上报,及设置上报阈值;更新后如果系统约定采用中断的方式,也会向通信处理器发送中断,以启动通信处理器更新队列控制字;
c、通信处理器可以逐个查询每个队列的读写指针是否有更新,如果有更新则重新计算VALIDNUM;也可以通过中断的方式,当某一个队列的读写指针有变化时会引起通信处理器的中断,这个中断触发可以是读写队列处理器通过事件触发的,也可以由系统设计人员加入专门逻辑实现,如果系统约定采用中断通知的方式,通信处理器也会检查是否符合中断上报条件,如果符合会向读队列处理器或写队列处理器发送中断。
CN201810925318.9A 2018-08-14 2018-08-14 一种使用处理器实现多处理器间通信的方法 Active CN109144749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810925318.9A CN109144749B (zh) 2018-08-14 2018-08-14 一种使用处理器实现多处理器间通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810925318.9A CN109144749B (zh) 2018-08-14 2018-08-14 一种使用处理器实现多处理器间通信的方法

Publications (2)

Publication Number Publication Date
CN109144749A true CN109144749A (zh) 2019-01-04
CN109144749B CN109144749B (zh) 2021-07-27

Family

ID=64793225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810925318.9A Active CN109144749B (zh) 2018-08-14 2018-08-14 一种使用处理器实现多处理器间通信的方法

Country Status (1)

Country Link
CN (1) CN109144749B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130904A (zh) * 2020-09-22 2020-12-25 黑芝麻智能科技(上海)有限公司 处理系统、处理器间通信方法、以及共享资源管理方法
CN112486702A (zh) * 2020-11-27 2021-03-12 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局消息队列实现方法
CN113126911A (zh) * 2021-03-12 2021-07-16 西安电子科技大学 基于ddr3 sdram的队列管理方法、介质、设备
CN114356839A (zh) * 2022-03-17 2022-04-15 飞腾信息技术有限公司 处理写操作的方法、设备、处理器及设备可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US20050078708A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Formatting packet headers in a communications adapter
CN1916877A (zh) * 2005-08-19 2007-02-21 国际商业机器公司 在处理器与存储器流控制器间传送命令参数的系统和方法
CN101105786A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 一种基于共享存储器的双cpu通信方法
CN101470623A (zh) * 2007-12-26 2009-07-01 无锡江南计算技术研究所 队列管理方法和队列管理器、队列消息的处理方法和系统
CN101878475A (zh) * 2007-07-31 2010-11-03 Netlogic微系统公司 向星形拓扑串行总线接口委托网络处理器操作
CN103034543A (zh) * 2012-05-29 2013-04-10 福建三元达通讯股份有限公司 多软件运行环境通信方法、使多软件运行环境通信的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US20050078708A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Formatting packet headers in a communications adapter
CN1916877A (zh) * 2005-08-19 2007-02-21 国际商业机器公司 在处理器与存储器流控制器间传送命令参数的系统和方法
CN101105786A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 一种基于共享存储器的双cpu通信方法
CN101878475A (zh) * 2007-07-31 2010-11-03 Netlogic微系统公司 向星形拓扑串行总线接口委托网络处理器操作
CN101470623A (zh) * 2007-12-26 2009-07-01 无锡江南计算技术研究所 队列管理方法和队列管理器、队列消息的处理方法和系统
CN103034543A (zh) * 2012-05-29 2013-04-10 福建三元达通讯股份有限公司 多软件运行环境通信方法、使多软件运行环境通信的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋伟: "面向实时的星载多处理器操作系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130904A (zh) * 2020-09-22 2020-12-25 黑芝麻智能科技(上海)有限公司 处理系统、处理器间通信方法、以及共享资源管理方法
CN112130904B (zh) * 2020-09-22 2024-04-30 黑芝麻智能科技(上海)有限公司 处理系统、处理器间通信方法、以及共享资源管理方法
CN112486702A (zh) * 2020-11-27 2021-03-12 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局消息队列实现方法
CN112486702B (zh) * 2020-11-27 2024-02-13 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局消息队列实现方法
CN113126911A (zh) * 2021-03-12 2021-07-16 西安电子科技大学 基于ddr3 sdram的队列管理方法、介质、设备
CN113126911B (zh) * 2021-03-12 2023-04-28 西安电子科技大学 基于ddr3 sdram的队列管理方法、介质、设备
CN114356839A (zh) * 2022-03-17 2022-04-15 飞腾信息技术有限公司 处理写操作的方法、设备、处理器及设备可读存储介质

Also Published As

Publication number Publication date
CN109144749B (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN109144749A (zh) 一种使用处理器实现多处理器间通信的方法
CN100499565C (zh) 自由表和环形数据结构管理
US8112559B2 (en) Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment
JPH03126158A (ja) スケジユーリング方法及び装置
CN103780655A (zh) 一种消息传递接口任务和资源调度系统及方法
CN101373474A (zh) 海量数据实时处理架构及用于该架构的实时随需处理平台
JP5309703B2 (ja) 共有メモリの制御回路、制御方法及び制御プログラム
US20110265093A1 (en) Computer System and Program Product
CN108694076A (zh) 多节点存储操作
CN112612523B (zh) 一种嵌入式设备驱动系统及方法
CN105187327A (zh) 一种分布式消息队列中间件
CN110134623A (zh) 可定制的多队列dma接口
WO2021022964A1 (zh) 一种基于多核系统的任务处理方法、装置及计算机可读存储介质
CN103345429A (zh) 基于片上ram的高并发访存加速方法、加速器及cpu
US11687364B2 (en) Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment
CN106095552A (zh) 一种基于i/o去重的多任务图处理方法及系统
US20110173287A1 (en) Preventing messaging queue deadlocks in a dma environment
CN110430142A (zh) 用于控制流量的方法和装置
CN109062857A (zh) 一种能高速实现多处理器间通信的新型消息控制器及其通信方法
CN108958903A (zh) 嵌入式多核中央处理器任务调度方法与装置
CN109388429A (zh) Mhp异构多流水线处理器的任务分发方法
CN108845969B (zh) 适用于不完全对称多处理微控制器的操作控制方法及操作系统
CN109426562A (zh) 优先级加权轮转调度器
CN109408118A (zh) Mhp异构多流水线处理器
CN102736949B (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