CN109062857B - 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 - Google Patents
一种能高速实现多处理器间通信的新型消息控制器及其通信方法 Download PDFInfo
- Publication number
- CN109062857B CN109062857B CN201810924623.6A CN201810924623A CN109062857B CN 109062857 B CN109062857 B CN 109062857B CN 201810924623 A CN201810924623 A CN 201810924623A CN 109062857 B CN109062857 B CN 109062857B
- Authority
- CN
- China
- Prior art keywords
- message
- register
- memory
- address
- message controller
- 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
Images
Classifications
-
- 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/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
Abstract
本发明涉及一种能高速实现多处理器间通信的新型消息控制器及其通信方法,包括一组或多组消息控制器寄存器堆,所述消息控制器寄存器堆通过总线或网络连接处理器,所述消息控制器寄存器堆通过总线或网络连接存储器,所述消息控制器寄存器堆由写指针寄存器、读指针寄存器、有效单元数寄存器、有效单元数寄存器、存储器基址寄存器、存储器容量寄存器组成。本方案的优点是:高速度实现通信;对队列的种类没有限制,包括但不限于先入先出队列,先入后出队列;队列的种类可根据应用场景选取;各个处理器都可通过片上总线或网络对此消息控制器进行读写,消息控制器本身没有规定方向性。
Description
技术领域
本发明涉及处理器技术领域,具体的说是一种能高速实现多处理器间通信的新型消息控制器。
背景技术
随着现在多核处理器系统的普及,多核间的通信成为影响多核间协同工作的主要问题。目前多核间通信方法有:
(1)工作在不同处理器上的应用程序,作为操作系统的进程或线程,各个进程或线程间的通信交由处理器核上运行的操作系统通过线程进程间的信息传递和数据交换来实现的。这种方法的问题是,对于那些没有操作系统的特定多核系统或某些专用领域,实现多核间通信就不适用。
(2)利用软件来实现队列(例如先入先出队列)来实现多处理器核间的通信。这种方法往往具备方向性,例如生产者——消费者模式。一个处理器充当生产者,当队列不满或符合指定条件时往队列中写入;另一个处理器充当消费者,当队列不空或符合指定条件时读取队列。这种方法的问题是,通过软件来实现多核间通信速度慢;同时不支持中断,消费者处理器只能通过查询的方式来获取队列中的数据存放信息。
(3)利用星型、总线型等拓扑结构的片上网络或总线,加一个核心调度处理器及其它处理器和硬件IP核总成的多核间通信系统。在这网络中要放置核心调度处理器,由核心调度处理器来实现各个处理器之间通信的消息传递。这种结构的缺点是为了实现多核间通信占用了大量硬件资源,需要1个专门的处理器作为核心调度处理器,这个处理器不能用作其它用途;对多核片上系统架构的限制过于严格,必须要使用该技术对应的片上网络或总线。
(4)也有些厂商设计了基于硬件的多核间通信模块,但是这些模块不具备通用性,只在该厂商特定的处理器核间使用。
发明内容
针对上述现有技术不足,本发明提供一种能高速实现多处理器间通信的新型消息控制器。
本发明提供的一种能高速实现多处理器间通信的新型消息控制器是通过以下技术方案实现的:
一种能高速实现多处理器间通信的新型消息控制器,包括一组或多组消息控制器寄存器堆,所述消息控制器寄存器堆通过总线或网络连接处理器,所述消息控制器寄存器堆通过总线或网络连接存储器,所述消息控制器寄存器堆由写指针寄存器、读指针寄存器、有效单元数寄存器、中断上报控制寄存器、存储器基址寄存器、存储器容量寄存器组成,
所述消息控制器寄存器堆中的最小单元位宽可以是8位、16位、32位。
所述消息控制器寄存器堆之间的消息传输为单向传输或双向传输。
所述写指针寄存器:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址,每当写入方完成写操作后会更新写指针寄存器。
所述读指针寄存器:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址,每当读取方完成读操作后会更新读指针寄存器。
所述有效单元数寄存器:记录当前已经写入但还未被读取的单元个数。此寄存器的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预,可供消息写入方和读取方读取。
所述中断上报控制寄存器:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断。
所述存储器基址寄存器:消息控制器存放的消息数据是存放在一块存储器中的,可以是消息控制器自己专有的一块存储器,也可以是系统中一块存储器,存储器基址寄存器用于记录此存储器在系统存储空间中的首地址。
所述消息存储容量寄存器:记录消息存放存储区域的容量。
一种能高速实现多处理器间通信的新型消息控制器通信方法,包括:
a、消息控制器寄存器通过读写控制寄存器来获取队列状态;
b、将消息的数据主体存放在存储器中;
c、处理器通过读取控制寄存器来获取消息存放的存储器地址;
其中,写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数。判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;
读取方可通过设置中断上报寄存器,通过中断引发中断处理程序完成消息读取操作,可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待;
QSIZE为消息存储容量寄存器中记录消息存放存储区域的容量,VALIDNUM为有效单元数寄存器中记录当前已经写入但还未被读取的单元个数,WPTR为写指针寄存器中记录消息写入方当前在存储器中的写入地址,RPTR为读指针寄存器中记录消息读取方当前在存储器中的读取地址。
本发明的有益效果是:
(1)高速度实现通信。采用硬件电路来实现队列,队列的写入和读取速度快。
(2)对队列的种类没有限制,包括但不限于先入先出队列,先入后出队列。队列的种类可根据应用场景选取。
(3)队列与处理器的交互方式包括查询和中断。通过查询方式可以减轻处理器上程序难度,但是会占用处理器运行时间;而通过中断方式,当队列中单元个数达到预定条件时,消息控制器将向指定处理器发送中断,处理器对消息处理的响应速度提高;同时处理器主程序可以做其它事情,当符合条件时才会处理消息,提高了处理器的利用效率。
(4)对片上系统架构没有限制,通用性更好。只要把消息控制器挂在处理器能访问到的位置即可。
(5)各个处理器都可通过片上总线或网络对此消息控制器进行读写,消息控制器本身没有规定方向性。同一个处理器对此消息控制器先写入消息再读出消息也可以。这样做是为了提高通用性。在同一个处理器上运行多个进程或线程的时候会出现这种情况。另外如果实现的是先入后出消息控制器,同一个处理器也可以把这个队列作为堆栈使用。
附图说明
图1是本发明组织结构示意图;
图2是本发明多组消息控制器寄存器堆组织结构示意图。
具体实施方式
下面将通过实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示的一种能高速实现多处理器间通信的新型消息控制器,以上图为例说明,消息控制器0和1存放队列的控制寄存器。各个寄存器通过读写控制寄存器来获取队列状态。消息的数据主体存放在一块存储器中(上图是存储器A)。这个存放消息的存储器可以在消息控制器外部,系统中某一块存储器中,也可以在消息控制器内部。处理器通过读取控制寄存器来获取消息存放的存储器地址。
处理器1会不断将消息数据写入存储器A并更新消息控制器1中的控制寄存器,处理器0则会不断从消息控制器1中获取消息存放位置并读取存储器A得到消息数据,实现从处理器1到处理器0的消息和数据传输。同理,处理器0会不断将消息数据写入存储器A并更新消息控制器0中的控制寄存器,处理器1则会不断从消息控制器0中获取消息存放位置并读取存储器A得到消息数据,实现从处理器0到处理器1的消息和数据传输。
消息控制器0和1都可以被处理器0和1读写。所以消息的传输方向可以是单向的(即从某一处理器到另外一个处理器),也可以是双向的(一定时间内从处理器0到处理器1,过一段时间反过来,从处理器1到处理器0),也可以是某处理器自发自收。例如在1个处理器上运行多个进程或线程时——处理器0上运行进程a和b,2个进程之间的通信,可以是进程a将数据写入存储器A并更新消息控制器0,进程b从存储器A读取数据并更新消息存储器0。
消息控制器的读写是处理器通过总线或网络直接读写的。对于消息的读取方,有中断和查询2种方法来获取是否有有效消息。消息控制器中有寄存器可以设置当有多少个有效消息时触发中断,以通过中断控制器触发接收方处理器的中断处理程序。查询是指处理器可以读取消息控制器中的寄存器能得知当前有效消息的个数。
实施例2
如图2所示的一种能高速实现多处理器间通信的新型消息控制器,包括3组消息控制器寄存器堆,所述消息控制器寄存器堆通过总线适配器连接处理器,所述消息控制器寄存器堆由写指针寄存器、读指针寄存器、有效单元数寄存器、中断上报控制寄存器、存储器基址寄存器、存储器容量寄存器组成。
所述消息控制器寄存器堆中的最小单元位宽可以是8位、16位、32位。
所述消息控制器寄存器堆之间的消息传输为单向传输或双向传输。
所述写指针寄存器:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址,每当写入方完成写操作后会更新写指针寄存器。
所述读指针寄存器:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址,每当读取方完成读操作后会更新读指针寄存器。
所述有效单元数寄存器:记录当前已经写入但还未被读取的单元个数。此寄存器的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预,可供消息写入方和读取方读取。
所述中断上报控制寄存器:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断。
所述存储器基址寄存器:消息控制器存放的消息数据是存放在一块存储器中的,可以是消息控制器自己专有的一块存储器,也可以是系统中一块存储器,存储器基址寄存器用于记录此存储器在系统存储空间中的首地址。
所述消息存储容量寄存器:记录消息存放存储区域的容量。
总线适配器用于信号转换,将处理器间总线或网络上的访问信号时序格式转换为消息控制逻辑能够读懂的时序格式。总线适配器起到一个桥接的作用,不同的总线或网络的总线适配器可能不同,但消息控制逻辑是一样的。
图2中各个寄存器中,有效单元个数寄存器可以由D触发器和计算VALIDNUM的组合逻辑电路实现。此寄存器数值由计算逻辑电路自动更新。其它寄存器可以使用D触发器实现。
处理器通过访问消息控制器,判断是否可以读写消息,如果可以再以消息控制器中读地址或写地址作为地址访问系统中的用于消息存放的存储器。
实施例3
一种能高速实现多处理器间通信的新型消息控制器通信方法,包括以下步骤:
a、消息控制器寄存器通过读写控制寄存器来获取队列状态;
b、将消息的数据主体存放在存储器中;
c、处理器通过读取控制寄存器来获取消息存放的存储器地址;
其中,写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数。判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;QSIZE为消息存储容量寄存器中记录消息存放存储区域的容量,VALIDNUM为有效单元数寄存器中记录当前已经写入但还未被读取的单元个数,WPTR为写指针寄存器中记录消息写入方当前在存储器中的写入地址,RPTR为读指针寄存器中记录消息读取方当前在存储器中的读取地址。
读取方可通过设置中断上报寄存器,通过中断引发中断处理程序完成消息读取操作,可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待。
以上所述实施例仅表示本发明的实施方式,其描述较为具体和详细,但并不能理解为对本发明范围的限制。应当指出的是,对于本领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明保护范围。
Claims (5)
1.一种能高速实现多处理器间通信的新型消息控制器,其特征在于:包括一组或多组消息控制器寄存器堆,所述消息控制器寄存器堆通过总线或网络连接处理器,所述消息控制器寄存器堆通过总线或网络连接存储器,所述消息控制器寄存器堆由写指针寄存器、读指针寄存器、有效单元数寄存器、中断上报控制寄存器、存储器基址寄存器、消息存储容量寄存器 组成,其中:
所述写指针寄存器:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址,每当写入方完成写操作后会更新写指针寄存器;
所述读指针寄存器:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址,每当读取方完成读操作后会更新读指针寄存器;
所述有效单元数寄存器:记录当前已经写入但还未被读取的单元个数,此寄存器的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预,可供消息写入方和读取方读取;
所述中断上报控制寄存器:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断;
所述存储器基址寄存器:消息控制器存放的消息数据是存放在一块存储器中的,可以是消息控制器自己专有的一块存储器,也可以是系统中一块存储器,存储器基址寄存器用于记录此存储器在系统存储空间中的首地址;
所述消息存储容量寄存器:记录消息存放存储区域的容量。
2.根据权利要求1所述的一种能高速实现多处理器间通信的新型消息控制器,其特征在于:所述存储器设置于所述消息控制器寄存器堆的内部或者外部。
3.根据权利要求1所述的一种能高速实现多处理器间通信的新型消息控制器,其特征在于:所述消息控制器寄存器堆中的最小单元位宽可以是8位、16位、32位。
4.根据权利要求1所述的一种能高速实现多处理器间通信的新型消息控制器,其特征在于:所述消息控制器寄存器堆之间的消息传输为单向传输或双向传输。
5.一种能高速实现多处理器间通信的新型消息控制器通信方法,包括:
a、消息控制器寄存器通过读写控制寄存器来获取队列状态;
b、将消息的数据主体存放在存储器中;
c、处理器通过读取控制寄存器来获取消息存放的存储器地址;
其中,写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数,判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;
读取方可通过设置中断上报寄存器,通过中断引发中断处理程序完成消息读取操作,可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待;
QSIZE为消息存储容量寄存器中记录消息存放存储区域的容量,VALIDNUM为有效单元数寄存器中记录当前已经写入但还未被读取的单元个数,WPTR为写指针寄存器中记录消息写入方当前在存储器中的写入地址,RPTR为读指针寄存器中记录消息读取方当前在存储器中的读取地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810924623.6A CN109062857B (zh) | 2018-08-14 | 2018-08-14 | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810924623.6A CN109062857B (zh) | 2018-08-14 | 2018-08-14 | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109062857A CN109062857A (zh) | 2018-12-21 |
CN109062857B true CN109062857B (zh) | 2021-07-13 |
Family
ID=64683859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810924623.6A Active CN109062857B (zh) | 2018-08-14 | 2018-08-14 | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062857B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245096B (zh) * | 2019-06-24 | 2023-07-25 | 苏州暴雪电子科技有限公司 | 一种实现处理器直接连接扩展计算模块的方法 |
CN114244692B (zh) * | 2021-04-30 | 2024-02-02 | 无锡江南计算技术研究所 | 一种适用于超大规模互连网络的故障快速定位方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201811A (zh) * | 2006-12-11 | 2008-06-18 | 边立剑 | 用于soc的加解密协处理器、其实现方法及编程模型 |
CN101458679A (zh) * | 2007-12-10 | 2009-06-17 | 辉达公司 | 统一反向离散余弦变换(idct)微码处理器引擎 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN105975251A (zh) * | 2016-05-19 | 2016-09-28 | 东南大学—无锡集成电路技术研究所 | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 |
CN106980587A (zh) * | 2017-05-12 | 2017-07-25 | 葛松芬 | 一种通用输入输出时序处理器及时序输入输出控制方法 |
-
2018
- 2018-08-14 CN CN201810924623.6A patent/CN109062857B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201811A (zh) * | 2006-12-11 | 2008-06-18 | 边立剑 | 用于soc的加解密协处理器、其实现方法及编程模型 |
CN101458679A (zh) * | 2007-12-10 | 2009-06-17 | 辉达公司 | 统一反向离散余弦变换(idct)微码处理器引擎 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN105975251A (zh) * | 2016-05-19 | 2016-09-28 | 东南大学—无锡集成电路技术研究所 | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 |
CN106980587A (zh) * | 2017-05-12 | 2017-07-25 | 葛松芬 | 一种通用输入输出时序处理器及时序输入输出控制方法 |
Non-Patent Citations (1)
Title |
---|
超长指令字DSP处理器的共享寄存器堆设计;林川 等;《科学技术与工程》;20060731;第6卷(第13期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109062857A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6307789B1 (en) | Scratchpad memory | |
EP1046999B1 (en) | Transfer controller with hub and ports architecture | |
SK31194A3 (en) | Multi-media signal processor computer system | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
CN112835829B (zh) | 多通道dma传输测控信号的方法 | |
CN111221759B (zh) | 一种基于dma的数据处理系统及方法 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
AU2015402888B2 (en) | Computer device and method for reading/writing data by computer device | |
US5901328A (en) | System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area | |
CN109062857B (zh) | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 | |
CN109144749B (zh) | 一种使用处理器实现多处理器间通信的方法 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
US20200183875A1 (en) | Usb transmission device and transmission method | |
CN110399219B (zh) | 内存访问方法、dmc及存储介质 | |
US6108694A (en) | Memory disk sharing method and its implementing apparatus | |
CN109840241B (zh) | 一种异构双核处理器核间通讯电路 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN111831227A (zh) | 一种nvme协议命令加速处理系统 | |
CN112711442A (zh) | 一种主机命令写入方法、设备、系统及可读存储介质 | |
JPH08212178A (ja) | 並列計算機 | |
US6847990B2 (en) | Data transfer unit with support for multiple coherency granules | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN115599556B (zh) | 用于管理存储空间的装置及方法、计算设备、芯片 | |
CN115794750B (zh) | 异步i/o系统文件打开/关闭的控制方法、装置及设备 |
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 |