CN106372029A - 一种基于中断的点对点片内通信模块 - Google Patents
一种基于中断的点对点片内通信模块 Download PDFInfo
- Publication number
- CN106372029A CN106372029A CN201610804209.2A CN201610804209A CN106372029A CN 106372029 A CN106372029 A CN 106372029A CN 201610804209 A CN201610804209 A CN 201610804209A CN 106372029 A CN106372029 A CN 106372029A
- Authority
- CN
- China
- Prior art keywords
- point
- data
- communication module
- fifo
- address
- 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.)
- Pending
Links
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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4278—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于中断的点对点片内通信模块,包括AXI协议转换模块、交点队列通信模块、中断管理模块。改变传统共享存储方式通信的结构,采用全阵列排布的点对点通信模块,减少软件开销、减少资源消耗,实现主设备全并行工作,提高并行性和效率。采用基于中断的方式实现点对点通信,有效解决了查询方式占用CPU周期的缺点。采用交点队列型结构,打破了片上通信网络性能瓶颈-握手闭环,实现了低延迟的通信功能;点对点采用基于异步FIFO实现,实现局部同步、整体异步方式,实现跨时钟域处理。异步FIFO采用基于寄存器堆的“浅”FIFO,通信延迟小于共享存储的片上SRAM结构,有效降低通信延迟,实现高速通信。
Description
技术领域
本发明属于多核片上系统中核间通信技术领域,尤其涉及一种基于中断的点对点多核片内通信模块。
背景技术
随着单芯片多处理器CMPs(Chip multi-processors)与片上系统SoC(System onchip)时代的到来,核间通信是多核处理器系统所面临的主要难点,其通信机制的优劣直接影响多核处理器的性能,高效的通信机制是发挥多核处理器高性能的重要保障。传统的核间通信通常采用共享存储的方式进行。共享存储方式,硬件实现简单,但其软件握手复杂、并行性不足等问题日益明显,具体问题总结如下:
(1)存储一致性问题。因为共享存储不可避免的会造成,存储一致性的问题,需要额外的软件握手机制解决。握手机制提高了软件的复杂度,同时会造成通信效率低下,因为采用软件机制,会占用CPU的执行周期。
(2)并行性不足。在嵌入式领域,目前4核、8核已普遍存在,采用共享存储方式,最多只有双核同时通信(采用双口RAM),其他则处于等待通信状态,并行性严重不足,这与高速的处理器形成鲜明的对比。
(3)通信延迟较长。采用共享RAM,大多采用片上SRAM,而RAM的发展初期以单位存储密度为指标,忽视了速度的因素,这也是当下存储墙所面临的问题。采用片上RAM实现数据交换,RAM的速度是跟不上CPU的速度的,虽然可以降频与增加带宽处理,但需要额外的硬件资源支撑。
(4)资源利用不充分。采用共享存储方式通信,RAM容量通常会较大。而实际通信通常不会充分利用,虽说剩余空间可以另作他用,但在核间通信的同时,其他对SRAM的操作是会被阻塞的,因此,资源没有得到充分利用。
(5)查询方式会占用额外的CPU周期。通常采用共享方式,会采用CPU查询方式来实现数据的交换,编程者设定每隔一段时间,CPU查询是否有数据传输。这种方式,实现简单,但也是效率最低的通信方式。
发明内容
基于现有技术中的弊端,本发明将AXI总线协议与交点队列结构二者结合,形成一种基于中断的点对点多核片内通信模块,点对点内置缓存,采用异步FIFO实现。
为解决上述技术问题,本发明提供一种基于中断的点对点片内通信模块,其特征是,采用全阵列排布的点对点通信方式形成基于中断的点对点多核片内通信,
包括AXI协议转换模块、交点队列通信模块和中断管理模块;
发送的数据通过AXI协议转换模块译码后,存储到交点队列通信模块对应的FIFO缓存中;
数据进入FIFO缓存的同时,拉高中断请求信号,中断请求信号经过中断管理模块同步后进入对应的核Core中,核Core接收到中断后,进入中断服务子程序,读取对应的核Core存储在FIFO缓存中的数据,完成一次核间数据传送。
由AXI协议转换模块进行FIFO缓存及外设与CPU的数据接口的协议转换。
AXI协议转换模块包括5个通道,写地址、写数据通道、写返回通道、读地址和读数据通道,读写地址数据完全分离。
AXI协议转换模块在写传输时,写地址、写数据通道与写返回通道,配合完成写传输;根据协议,当地址与数据有效时,写地址通道根据地址及ID号,选择目标通道,当写地址通道握手成功后,写数据存储到相应的FIFO缓存中,若FIFO处于满状态时,则处于等待状态;
当FIFO缓存接收到数据时,通过写返回通道通知CPU写数据的状态。
在写返回通道中还包含一个仲裁器,此仲裁器采用改进的轮询的仲裁算法实现,在写返回通道的FIFO接口中,存在一个通过hostid号控制的多路选择器,通过hostid号实现乱序传输。
AXI协议转换模块在读传输时,由读地址与读数据通道组成一次读操作,当对应的FIFO缓存非空时,对应的CPU收到中断请求,CPU发送读地址到相应的总线接口中,当读地址有效时,经过读地址通道译码出目的FIFO缓存,目的FIFO缓存通过读数据通道将数据传输到CPU。
在目的FIFO缓存中还包含一个通过ID选择的多路选择器和一个仲裁器。
本发明所达到的有益效果:
(1)结合AXI总线协议,此结构可以广泛应用于基于AXI总线协议的系统中,应用广泛。
(2)改变了传统共享存储方式通信的结构,采用全阵列排布的点对点通信模块,减少软件开销、减少资源消耗,实现主设备全并行工作,提高并行性,提高效率。
(3)采用基于中断的方式实现点对点通信,有效解决了查询方式占用CPU周期的缺点。
(4)采用交点队列型结构,打破了片上通信网络性能瓶颈-握手闭环,实现了低延迟的通信功能。
(5)点对点采用基于异步FIFO实现,实现局部同步、整体异步方式,实现跨时钟域处理,可以用在异步时钟域。
(6)异步FIFO采用基于寄存器堆的“浅”FIFO,通信延迟小于共享存储的片上SRAM结构,有效降低通信延迟,实现高速通信。
附图说明
图1是系统整体框图;
图中,FIFO0-1表示缓存CORE0发送给CORE1的数据,其他以此类推;
Core0W/R 表示由CORE0发起的写或者读操作,其他以此类推;
图2是AXI控制器结构框图;
图3是中断管理模块结构图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
<一>整体结构
如图1为整体结构示意图,基于中断的点对点片内通信模块为4X4阵列结构,有AXI协议转换模块、交点队列通信模块和中断管理模块三部分组成。其数据流向如下所述:
以Core0发送数据给Core1为例(其他核间通信过程类似),发送的数据通过AXI协议转换模块,经转换模块译码后,存储到相应的FIFO0-1缓存中,为解决头阻塞问题,采用了虚通道结构(如系统结构图所示),数据进入FIFO的同时,拉高中断请求信号,请求信号经过中断管理模块同步及其他处理后进入Core1,Core1接收到中断后,进入中断服务子程序,读取Core0存储在FIFO0-1的数据,一次传送完成。其他核间传送过程类似,如Core1发送数据给核1,将数据存储于相应的FIFO1-0中,其他过程类似。具体的模块设计介绍如下所述。
<二>模块设计
1.AXI协议转换模块
AXI协议转换模块结构框图如图2,负责FIFOs及外设与CPU的数据接口的协议转换,AXI协议共有5个通道,写地址通道、写数据通道、写返回通道、读地址通道和读数据通道,读写地址数据完全分离,支持猝发(burst,一次传输多个数据)与乱序传输,并行效率较高,适合需要高性能时采用。AXI协议转换模块中,由于在交点处集成FIFO缓存,地址固定,是基于AXI的FIFO读写操作。
对于写传输,写地址、写数据通道与写返回通道,配合完成写传输。根据协议,当地址与数据有效时,写地址通道根据地址及ID号,选择目标通道,当写地址通道握手成功后,写数据存储到相应的FIFO中(只有当FIFO非满时),当FIFO处于满状态时,处于等待状态。当FIFO接收到数据时,会通过写返回通道通知CPU写数据的状态,由于写返回通道不仅仅有FIFO的返回值,还会有其他从设备的返回值,因此在写返回通道中会存在一个仲裁器,此仲裁器采用改进的轮询的仲裁算法实现,在写返回通道的FIFO接口中,会存在一个通过hostid号控制的MUX选择器,这是因为AXI协议支持burst与乱序传输,即地址与数据非紧耦合的,CPU发出一次写(读)传输后,并不需要等待写(读)完成后才可以执行下一次写(读)操作,而是可以直接执行,这样就可以实现乱序传输,其乱序传输是通过hostid号实现的。
对于读传输,由读地址与读数据通道组成一次读操作,当对应的FIFO缓存非空时,对应的CPU会收到中断请求,CPU将发送读地址到相应的总线接口中,当读地址有效时,经过读地址通道译码出目的FIFO,目的FIFO通过读数据通道将数据传输到CPU,在目的FIFO中会存在一个通过ID选择的多路选择器,原理同写返回通道,同时也存在一个仲裁器(原理同写返回通道)。
2.中断管理模块
本发明是一种基于中断的点对点片内通信模块,借助于中断机制,实现高效传输。中断管理模块主要实现:(1)复用选择控制;(2)中断信号同步;(3)中断极性可配置。
如图3,为不占用原有CPU中断信号接口,本发明采用了中断信号复用的方式实现,即当使用到中断进行核间通信时,通过软件编程可配置。如图,使用INTSEL0复用控制选择,此寄存器可读可写。当有中断请求时,中断源首先通过INTSEL0控制选择后进入逻辑转换模块实现沿检测、信号同步等操作。沿检测是因为若CPU采用沿触发方式时,由于采用了中断复用,多个中断同时有效会使沿丢失失效,CPU检测不到中断请求,此模块,根据控制器的配置,在沿触发模式下任何一路中断请求沿消失时产生一个周期的上(下)沿脉冲,以便CPU能接收中断。中断管理模块中的接口模块则用于CPU对寄存器的读写操作,使得CPU可以软件控制通信模块中的中断管理。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种基于中断的点对点片内通信模块,其特征是,采用全阵列排布的点对点通信方式形成基于中断的点对点多核片内通信,
包括AXI协议转换模块、交点队列通信模块和中断管理模块;
发送的数据通过AXI协议转换模块译码后,存储到交点队列通信模块对应的FIFO缓存中;
数据进入FIFO缓存的同时,拉高中断请求信号,中断请求信号经过中断管理模块同步后进入对应的核Core中,核Core接收到中断后,进入中断服务子程序,读取对应的核Core存储在FIFO缓存中的数据,完成一次核间数据传送。
2.根据权利要求1所述的一种基于中断的点对点片内通信模块,其特征是,由AXI协议转换模块进行FIFO缓存及外设与CPU的数据接口的协议转换。
3.根据权利要求1所述的一种基于中断的点对点片内通信模块,其特征是,AXI协议转换模块包括5个通道,写地址通道、写数据通道、写返回通道、读地址通道和读数据通道,读写地址数据完全分离。
4.根据权利要求1或3所述的一种基于中断的点对点片内通信模块,其特征是,AXI协议转换模块在写传输时,写地址通道、写数据通道与写返回通道,配合完成写传输;根据协议,当地址与数据有效时,写地址通道根据地址及ID号,选择目标通道,当写地址通道握手成功后,写数据存储到相应的FIFO缓存中,若FIFO处于满状态时,则处于等待状态;
当FIFO缓存接收到数据时,通过写返回通道通知CPU写数据的状态。
5.根据权利要求4所述的一种基于中断的点对点片内通信模块,其特征是,在写返回通道中还包含一个仲裁器,此仲裁器采用改进的轮询的仲裁算法实现,在写返回通道的FIFO接口中,存在一个通过hostid号控制的多路选择器,通过hostid号实现乱序传输。
6.根据权利要求1或3所述的一种基于中断的点对点片内通信模块,其特征是,AXI协议转换模块在读传输时,由读地址通道与读数据通道组成一次读操作,当对应的FIFO缓存非空时,对应的CPU收到中断请求,CPU发送读地址到相应的总线接口中,当读地址有效时,经过读地址通道译码出目的FIFO缓存,目的FIFO缓存通过读数据通道将数据传输到CPU。
7.根据权利要求6所述的一种基于中断的点对点片内通信模块,其特征是,在目的FIFO缓存中还包含一个通过ID选择的多路选择器和一个仲裁器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610804209.2A CN106372029A (zh) | 2016-09-06 | 2016-09-06 | 一种基于中断的点对点片内通信模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610804209.2A CN106372029A (zh) | 2016-09-06 | 2016-09-06 | 一种基于中断的点对点片内通信模块 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106372029A true CN106372029A (zh) | 2017-02-01 |
Family
ID=57900122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610804209.2A Pending CN106372029A (zh) | 2016-09-06 | 2016-09-06 | 一种基于中断的点对点片内通信模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372029A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933760A (zh) * | 2017-03-13 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种基于axi协议的dma控制器及数据上传方法 |
CN107302432A (zh) * | 2017-06-30 | 2017-10-27 | 何安平 | 一种基于异步数据通路的密码芯片 |
CN108108149A (zh) * | 2017-12-06 | 2018-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于分离统计高效收集的性能统计电路 |
CN109614350A (zh) * | 2018-10-29 | 2019-04-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种用于处理器间双口ram通信的中断系统 |
WO2021056632A1 (zh) * | 2019-09-24 | 2021-04-01 | 山东华芯半导体有限公司 | 基于axi总线的主机设备数据传输扩展方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194293A1 (en) * | 2001-06-13 | 2002-12-19 | Osman John H. | Communications system and method therefor |
CN101170511A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 嵌入式操作系统中实现多核处理器通信的装置及方法 |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
CN105005546A (zh) * | 2015-06-23 | 2015-10-28 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
-
2016
- 2016-09-06 CN CN201610804209.2A patent/CN106372029A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194293A1 (en) * | 2001-06-13 | 2002-12-19 | Osman John H. | Communications system and method therefor |
CN101170511A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 嵌入式操作系统中实现多核处理器通信的装置及方法 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN105005546A (zh) * | 2015-06-23 | 2015-10-28 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933760A (zh) * | 2017-03-13 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种基于axi协议的dma控制器及数据上传方法 |
CN107302432A (zh) * | 2017-06-30 | 2017-10-27 | 何安平 | 一种基于异步数据通路的密码芯片 |
CN107302432B (zh) * | 2017-06-30 | 2020-06-09 | 何安平 | 一种基于异步数据通路的密码芯片 |
CN108108149A (zh) * | 2017-12-06 | 2018-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于分离统计高效收集的性能统计电路 |
CN108108149B (zh) * | 2017-12-06 | 2021-12-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于分离统计高效收集的性能统计电路 |
CN109614350A (zh) * | 2018-10-29 | 2019-04-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种用于处理器间双口ram通信的中断系统 |
CN109614350B (zh) * | 2018-10-29 | 2022-03-15 | 中国航空工业集团公司洛阳电光设备研究所 | 一种用于处理器间双口ram通信的中断系统 |
WO2021056632A1 (zh) * | 2019-09-24 | 2021-04-01 | 山东华芯半导体有限公司 | 基于axi总线的主机设备数据传输扩展方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372029A (zh) | 一种基于中断的点对点片内通信模块 | |
CN105005546B (zh) | 一种内置交点队列的异步axi总线结构 | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
CN101901200B (zh) | 一种基于双AHB Master接口的片上DMA控制器实现方法 | |
CN103198856B (zh) | 一种ddr控制器及请求调度方法 | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN105068951B (zh) | 一种具有非等时传输结构的片上系统总线 | |
CN109828941A (zh) | Axi2wb总线桥实现方法、装置、设备及存储介质 | |
CN103198043A (zh) | 一种改进的AHB to APB总线桥及其控制方法 | |
CN101739241A (zh) | 一种片上多核dsp簇和应用扩展方法 | |
CN101446931B (zh) | 一种实现输入输出数据一致性的系统及方法 | |
CN112965924A (zh) | 一种AHB-to-AXI桥接器及激进式处理方法 | |
CN109308283A (zh) | 一种SoC片上系统及其外设总线切换方法 | |
CN106959929B (zh) | 一种多端口访问的存储器及其工作方法 | |
CN104615386B (zh) | 一种核外高速缓存装置 | |
CN103106173A (zh) | 多核处理器核间互联的方法 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN103714026A (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
CN103150216A (zh) | 一种SoC集成的多端口DDR2/3调度器及调度方法 | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN103218343A (zh) | 采用数据驱动机制多处理器间数据通信电路 | |
CN103166863B (zh) | 集总式8x8低延迟高带宽交叉点缓存队列片上路由器 | |
CN112948322A (zh) | 一种基于弹性缓存的虚通道及实现方法 | |
CN109145397B (zh) | 一种支持并行流水访问的外存仲裁系统 | |
CN109285580A (zh) | 数据预处理装置、方法及异步双端随机存取存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170201 |
|
RJ01 | Rejection of invention patent application after publication |