CN103678202B - 一种多核处理器的dma控制器 - Google Patents
一种多核处理器的dma控制器 Download PDFInfo
- Publication number
- CN103678202B CN103678202B CN201310618950.6A CN201310618950A CN103678202B CN 103678202 B CN103678202 B CN 103678202B CN 201310618950 A CN201310618950 A CN 201310618950A CN 103678202 B CN103678202 B CN 103678202B
- Authority
- CN
- China
- Prior art keywords
- data
- fifo buffer
- splitting line
- bit
- output
- 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
Landscapes
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种多核处理器的DMA控制器,该DMA控制器包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息;访问应答处理模块接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据,通过采用分类缓存的方法,实现对多块存储单元的快速连续访问,而不必局限于针对同一存储单元的所有访问完成后再开始访问另外的存储单元,通过DMA控制器内部多组先入先缓存器,实现数据在处理器内部的快速分配,大大提高访问效率,利于发挥多核并行处理的优势。
Description
技术领域
本发明涉及一种多核处理器的DMA控制器,特别是针对二维网格(mesh)架构的多核处理器中,能够连续访问分布式存储系统的DMA控制器,属于微处理器技术领域。
背景技术
微处理器是现代数字信号系统的关键部件,在一些领域,如高精度测试、高速图象处理、高速网络、通信等,需要数据高速输入输出。如果依靠微处理器通过指令实现数据的输入和输出,将无法满足这些领域对高吞吐率数据的要求。因此,许多微处理器都设计了DMA(Direct Memory Access)控制器接口。DMA是一种不需要执行微处理器指令的数据传输机制,片内DMA控制器使它的微处理器从大量数据传输的负担中解放出来,它允许处理器指定数据传输方式,当DMA控制器在后台执行数据传输任务时,微处理器可以返回到正常的程序处理流程继续执行。
现在,随着微电子技术的发展,多核处理器已成为提高处理器性能的最佳途径。目前具有代表性的有picochip公司的pc102、tiler公司的tile64和BAEsystem公司的RADSPEED。
上面三种多核处理器,性能都很高。在由多核处理器构成的复杂数据处理系统中,这些芯片的DMA传递特点如下:
√PC102没有专用的DMA通道,对存储器的访问只能在预先分配的时间片内才能实现。每个时间片占用2个clk,也就是,最快只能是2个clk实现一次对存储器的访问。由于受到片内总线带宽的限制,不允许在一定时间段内所有的时间片全部用于DMA传输。
√Tile64中的处理单元排列成8*8的二维阵列,处理单元内部有两级cache。芯片可外接DDR2存储器,能够在外部存储器与处理单元内部二级cache间建立DMA通道。但每次DMA传递,处理单元只能与一块存储器实现数据的传递。
√RADSPEED片内只有2个共享存储器块,190个处理单元,每个处理单元内部有自己私有的存储器。处理单元内部存储器支持与共享存储器块和处理单元间建立DMA通道。只有在相邻处理单元间才能建立DMA传递。处理单元每次只能与一块共享存储器进行DMA数据传输。
从上述分析可知,目前的微处理器,还不支持以DMA方式与多块存储器之间不断跳跃的快速访问模式,只能针对一块存储器进行数据传输。这对于单核处理器中,由于存储单元的规模比较大(如TS201的每块存储单元为8Mb)或者是共享总线结构(如TMS320C6713),影响不大。但对于分布式多核处理器,由于存储器位于芯片的不同位置,使得访问这些存储器的延迟是不同的。如果存储器访问地址跳跃幅度比较大,从不同位置存储器返回得到的数据顺序可能与访问顺序不一致,导致数据访问混乱。如果不能实现以DMA方式与多块存储器之间不断切换的快速访问,将限制多核处理器并行性能的发挥。
发明目的
本发明的目的在于克服现有技术的上述不足,提供一种多核处理器的DMA控制器,该多核处理器的DMA控制器可以快速读写分布式的共享存储系统,提高访问效率,实现数据在处理器内部的快速分配,利于发挥多核并行处理的优势,同时避免出现访问返回得到的数据顺序与访问顺序不一致情况的发生。
本发明的上述目的主要是通过如下技术方案予以实现的:
一种多核处理器的DMA控制器,包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块包括32位地址发生器101、第一先入先出缓存器102、第一寄存器组103、第一组合数据线106、第二组合数据线107、第三组合数据线108、第二先入先出缓存器105、第一逻辑单元104、第一位或运算单元117、第一计数器118、第二逻辑单元111、第二位或运算单元119、第二计数器115和第三逻辑单元116,其中:
32位地址发生器101:将内部初始值加上或者减去一个数值,并将运算结果输出给第一先入先出缓存器102;
第一先入先出缓存器102:接收32位地址发生器101输出的位宽为32位的数据进行缓存;
第一寄存器组103:为查询表结构,接收第一先入先出缓存器102输出的32位数据中的位19到位16四位二进制数,进行逻辑判断后输出对应访问目的地址坐标的6位二进制数;
第一组合数据线106:传输第一先入先出缓存器102输出的32位地址数据、第一计数器118输出的8位二进制数和第一寄存器组103输出6位二进制数;
第二组合数据线107:传输第二先入先出缓存器105输出数据的位5至位0和第二先入先出缓存器105的空状态标志和满状态标志;
第三组合数据线108:传输第二先入先出缓存器105输出的46位数据和第二先入先出缓存器105的空状态标志;
第二先入先出缓存器105:接收第一组合数据线106输出的数据并进行缓存;
第一逻辑单元104:接收第一寄存器组103与第二组合数据线107输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器105的写使能信号的控制,使得四个第二先入先出缓存器105中仅有一个写使能信号有效,其中第一组合逻辑的判断依据为:将第一寄存器组103输出的数据与第二组合数据线107输出数据的位7到位2进行比较,若两个数据相等,则再次判断第二先入先出缓存器105的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为1;若两个数据不相等,则再次判断第二先入先出缓存器105的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为1;
第一位或运算单元117:接收第一逻辑单元104输出的数据,进行位或运算,将运算结果分别输出给第一计数器118和第一先入先出缓存器102的读使能端;
第一计数器118:接收第一位或运算单元117输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线106进行传输;
第二逻辑单元111:接收第二计数器115和第三组合数据线108输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器105的读使能信号的控制,使得四个第二先入先出缓存器105中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器105的读使能信号112,另外一路通过数据线114进行传输,其中第二组合逻辑的判断依据为:判断第二先入先出缓存器105的空标志是否为0;若为0,则依次判断第二计数器115输出的数据是否与四个输入第三组合数据线108中位13至位6相等,如果至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器105的读信号设置为1,同时通过数据线114输出第三组合数据线108的位45至位0数据,如果全不相等,则输出4位二进制数据为0;若不为0,则输出4位二进制数据为0,数据线114输出为0;
第二位或运算单元119:接收第二逻辑单元111输出的读使能信号112,进行位或运算,将运算结果分别输出给第二计数器115和第三逻辑单元116;
第二计数器115:接收第二位或运算单元119输出的脉冲信号,进行计数,并将计数结果输出给第二逻辑单元111;
第三逻辑单元116:为第一时序逻辑电路,接收数据线114输出的数据和第二位或运算单元119的输出的数据,产生访问数据包;
所述访问应答处理模块包括第三先入先出缓存器202、第四逻辑单元203、第四先入先出缓存器207、第六组合数据线208、第七组合数据线209、第五逻辑单元206、第三位或运算单元211、第三计数器212、第六逻辑单元210和第五先入先出缓存器213,其中:
第三先入先出缓存器202:缓存访问应答数据,并输出给第四逻辑单元203;
第四逻辑单元203:为第二时序逻辑电路,接收第三先入先出缓存器202输出的数据,将串行接收的数据并行化处理,并将并行化处理后的数据通过第四组合数据线204和第五组合数据线205传输,其中第二时序逻辑电路产生规则为:第四组合数据线204,位宽为46位,按从高位到低位的顺序,当接收第三先入先出缓存器202输出的数据位33至位32为二进制数10时,第四组合数据线204的位45至位14为第三先入先出缓存器202输出数据中位31至位0的二进制数;当接收第三先入先出缓存器202输出的数据位33至位32为二进制数11时,第四组合数据线204的位13至位0为第三先入先出缓存器202输出数据中位13至位0的二进制数;第五组合数据线205位宽为6位,为接收第三先入先出缓存器202输出数据中位33至位32为二进制数11时,第三先入先出缓存器202中位5至位0的二进制数;
第四先入先出缓存器207:接收第四逻辑单元203输出的数据并进行缓存;
第六组合数据线208:传输第四先入先出缓存器207输出的位5至位0和第四先入先出缓存器207的空状态标志和满状态标志;
第七组合数据线209:传输第四组合数据线204数据和第四先入先出缓存器207的空状态标志;
第五逻辑单元206:接收第六组合数据线208和第五组合数据线205输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器207的写使能信号的控制,使得四个第四先入先出缓存器207中仅有一个写使能信号有效,其中第三组合逻辑的判断依据为:将第五组合数据线205的6位数据分别与第六组合数据线208中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线208中位0表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为1,如果置位,将输出4位二进制数据设置为0;若两个数据不相等,则再次判断第六组合数据线208中位1表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为1,如果未置位,将输出4位二进制数据设置为0;
第三位或运算单元211:接收第六逻辑单元210输出的读使能信号216,进行位或运算后将运算结果输出给第三计数器212;
第三计数器212:接收第三位或运算单元211输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元210;
第六逻辑单元210:接收第七组合数据线209和第三计数器212的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器207的读使能信号的控制,使得四个第四先入先出缓存器207中仅有一个读使能信号有效,输出为两路数据,一路数据为第四先入先出缓存器207的读使能信号216,另外一路通过组合数据线214进行传输,其中第四组合逻辑的判断依据为:判断四个输入的第七组合数据线209中位46是否全部为1,如果不全部为1,则依次判断第三计数器212输出的8位二进制数据是否与四个输入第七组合数据线209中位13至位6相等;如果至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器207的读信号设置为1,同时通过组合数据线214输出数据;如果全部不相等,输出4位读使能信号216各位为0,组合数据线214输出33位数据全部为0;如果全部为1,输出4位读使能信号216各位为0,组合数据线214输出33位数据全部为0。
第五先入先出缓存器213:接收组合数据线214输入的数据并进行缓存。
在上述多核处理器的DMA控制器中,第一组合数据线106的数据格式为:位宽为46位,按从高位到低位的顺序,位45至位14为第一先入先出缓存器102输出的32位数据,位13至位6为第一计数器118输出的8位数据,位5至位0为第一寄存器组103输出的6位数据。
在上述多核处理器的DMA控制器中,第二组合数据线107的数据格式为:位宽为8位,按从高位到低位的顺序,位7至位2为第二先入先出缓存器105输出的位5至位0数据,位1为第二先入先出缓存器105的空状态标志,位0为第二先入先出缓存器105的满状态标志。
在上述多核处理器的DMA控制器中,第三组合数据线108的数据格式为:位宽为47位,按从高位到低位的顺序,位45至位0为第二先入先出缓存器105输出的46位数据,位46为第二先入先出缓存器105的空状态标志。
在上述多核处理器的DMA控制器中,第三逻辑单元116中数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数11,位13至位0为第二逻辑单元111输出数据线114的位13至位0数据,其余位为0;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位0为第二逻辑单元111输出数据线114的位45至位14数据。
在上述多核处理器的DMA控制器中,第三先入先出缓存器202的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位32为数据传递起始位,输入应答数据包由2个34位数据字组成,第一个传输字的位33至位32为二进制数11,位13至位6为应答数据包的帧号,位5至位0为表示数据发送端位置的6位二进制数,其余位为0;第二个传输字的33至位32为二进制数10,位31至位0为32位数据。
在上述多核处理器的DMA控制器中,第四逻辑单元203中并行处理方法为:第四组合数据线204位宽为46位,按从高位到低位的顺序,第四组合数据线204的位45至位14为在第三先入先出缓存器202输出数据的位33至位32为二进制数10时,第三先入先出缓存器202输出数据的位31至位0的二进制数;位13至位0为第三先入先出缓存器202输出数据的位33至位32为二进制数11时,第三先入先出缓存器202输出数据的位13至位0的二进制数;第五组合数据线205位宽为6位,为第三先入先出缓存器202输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器202中位5至位0的二进制数。
在上述多核处理器的DMA控制器中,第六组合数据线208中数据格式按从高位到低位的顺序为:位7至位2为第四先入先出缓存器207输出的位5至位0数据,位1为第四先入先出缓存器207的空状态标志,位0为第四先入先出缓存器207的满状态标志。
在上述多核处理器的DMA控制器中,第七组合数据线209中数据格式按从高位到低位的顺序为:位45至位0为第四先入先出缓存器207输出的46位数据,位46为第四先入先出缓存器207的空状态标志。
在上述多核处理器的DMA控制器中,组合数据线214中数据格式按从高位到低位的顺序为:位32为第七组合数据线209中位46二进制数的相反数,位31至位0为第七组合数据线209中位45至位14。
本发明与现有技术相比具有如下有益效果:
(1)、本发明对多核处理器的DMA控制器结构进行创新设计,DMA控制器包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息;访问应答处理模块接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据,通过采用分类缓存的方法,实现对多块存储单元的快速连续访问,而不必局限于针对同一存储单元的所有访问完成后再开始访问另外的存储单元,通过DMA控制器内部多组先入先缓存器,实现数据在处理器内部的快速分配,大大提高访问效率,利于发挥多核并行处理的优势。
(2)、本发明设计的DMA控制器,支持针对4处不同坐标的存储单元的快速访问,将针对不同存储单元的访问各自划分为一类,并进行缓存,按帧号从0到0xff的顺序进行发送和接收,如果希望增加快速访问存储单元的数目,仅需要增加缓存的数量即可,实现方式灵活,可扩展性强。
(3)、本发明设计的DMA控制器,不但适用于网格架构的多核处理器,还可应用于所有涉及以连续方式访问多块存储单元的电路,具有较广应用范围和较强的实用性。
附图说明
图1为本发明多核处理器的DMA控制器中访问请求产生模块结构示意图;
图2为本发明多核处理器的DMA控制器中访问应答处理模块结构示意图;
其中:32位地址发生器101、第一先入先出缓存器102、第一寄存器组103、第一组合数据线106、第二组合数据线107、第三组合数据线108、第二先入先出缓存器105、第一逻辑单元104、第一位或运算单元117、第一计数器118、第二逻辑单元111、第二位或运算单元119、第二计数器115、第三逻辑单元116、第三先入先出缓存器202、第四逻辑单元203、第四先入先出缓存器207、第六组合数据线208、第七组合数据线209、第五逻辑单元206、第三位或运算单元211、第三计数器212、第六逻辑单元210、第五先入先出缓存器213。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
基于二维网格架构的多核处理器,内部总线网络包括水平数据线和垂直数据线,在水平数据线和垂直数据线的交叉点处连接微处理器IP、存储器单元。以水平方向为X轴,垂直方向为Y轴,左上角交叉点为原点,建立二维坐标平面。则交叉点处连接的微处理器核、存储器单元的位置可以通过坐标表示,坐标以(x,y)方式表示,x轴正方向向右,y轴正方向向下。数据信息在内部总线中按照X-Y虫蠕维序模式传递,根据数据信息的起始坐标和目的坐标,先沿X轴传递,每次只能前进一个坐标距离,当到达的交叉点地X坐标与目的坐标X轴一致时,再沿Y轴传递,每次前进一个坐标距离,直到到达目的坐标。
本发明多核处理器片内存储系统,由多个不同坐标位置的存储单元构成,每个存储单元的存储空间为64KB,其中DMA控制器由访问请求产生模块和访问应答处理模块两部分组成:
访问请求产生模块,将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息。
访问应答处理模块,接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据。
如图1所示本发明多核处理器的DMA控制器中访问请求产生模块结构示意图,由图可知访问请求产生模块包括32位地址发生器101、第一先入先出缓存器102、第一寄存器组103、第一组合数据线106、第二组合数据线107、第三组合数据线108、第二先入先出缓存器105、第一逻辑单元104、第一位或运算单元117、第一计数器118、第二逻辑单元111、第二位或运算单元119、第二计数器115和第三逻辑单元116,其中:
32位地址发生器101:功能是按照递增或者递减的规则,将内部初始值加上或者减去一个数值,并将运算结果输出给第一先入先出缓存器102,作为访问片内分布式共享存储器的地址。输出与第一先入先出缓存器102的数据输入端连接。此输出数据是位宽为32的二进制数,按从高位到低位的顺序,最高位为位31,最低位为位0。
第一先入先出缓存器(FIFO)102:位宽为32位,作用是缓存地址发生器101输出的数据。
第一寄存器组103:查询表结构。输入为4位二进制数,对应第一先入先出缓存器102输出32位数据中的位19到位16,输出为对应分布式存储器位置的6位二进制数。此输入与输出对应表在设计分布式存储系统结构存储空间分配时已经确定,直接固化在寄存器组内。第一寄存器组103输出与第一逻辑单元104连接。
第一组合数据线106:位宽为46位,由第一先入先出缓存器102输出的32位地址数据、第一计数器118输出的8位二进制数和第一寄存器组103输出的6位二进制数组合形成。按从高位到低位的顺序,位45至位14为第一先入先出缓存器102输出的32位数据,位13至位6为第一计数器118输出的8位数据,位5至位0为第一寄存器组103输出的6位数据。
第二组合数据线107:位宽为8位,由第二先入先出缓存器105输出的位5至位0和第二先入先出缓存器105的空状态标志和满状态标志组合形成。按从高位到低位的顺序,位7至位2为第二先入先出缓存器105输出的位5至位0数据,位1为第二先入先出缓存器105的空状态标志,位0为第二先入先出缓存器105的满状态标志。第二组合数据线与第一逻辑单元104相连接。
第三组合数据线108:位宽为47位。由第二先入先出缓存器105输出的46位数据和第二先入先出缓存器105的空状态标志组合形成。按从高位到低位的顺序,位45至位0为第二先入先出缓存器105输出的46位数据,位46为第二先入先出缓存器105的空状态标志。第三组合数据线108与第二逻辑单元111连接。
第二先入先出缓存器105:位宽为46位,接收第一组合数据线106输出的数据并进行缓存。如图1,有4个第二先入先出缓存器105,第一组合数据线106与第二先入先出缓存器105数据输入端相连接。每个第二先入先出缓存器105都有对应的第二组合数据线107和第三组合数据线108。
第一逻辑单元104:接收第一寄存器组103与第二组合数据线107输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器105的写使能信号的控制,使得四个第二先入先出缓存器105中仅有一个写使能信号有效。
第一组合逻辑的判断依据为:将第一寄存器组103输出的数据与第二组合数据线107输出数据的位7到位2进行比较,若两个数据相等则再次判断第二先入先出缓存器105的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为‘1’;若两个数据不相等,则再次判断第二先入先出缓存器105的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为‘1’。
第一位或运算单117元:接收第一逻辑单元104输出的数据,进行位或运算,将运算结果分别输出给第一计数器118和第一先入先出缓存器102的读使能端。
第一计数器118:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第一位或运算单元117输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线106进行传输.
第二逻辑单元111:接收第二计数器115和第三组合数据线108输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器105的读使能信号的控制,使得四个第二先入先出缓存器105中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器105的读使能信号112,另外一路通过数据线114进行传输。
第二组合逻辑的判断依据为:判断第二先入先出缓存器105的空标志是否为0;若为0,则依次判断第二计数器115输出的数据是否与四个输入第三组合数据线108中位13至位6是否相等,如果全部相等或至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器105的读信号设置为1,同时通过数据线114输出数据;如果全不相等,则输出4位二进制数据为0;若不为0,则输出4位二进制数据为0。
第二位或运算单元119:接收第二逻辑单元111输出的读使能信号112,进行位或运算,将运算结果分别输出给第二计数器115和第三逻辑单元116。
第二计数器115:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第二位或运算单元119输出的脉冲信号,进行计数,并将计数结果输出给第二逻辑单元111。
第三逻辑单元116:为第一时序逻辑电路,接收第二逻辑单元111输出的位宽为47位的数据114和第二位或运算单元119的输出的数据,产生访问数据包。数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数‘11’,位13至位0为第二逻辑单元111输出数据114的位13至位0数据,其余位为0;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位0为第二逻辑单元111输出数据114的位45至位14数据;
如图2所示为本发明多核处理器的DMA控制器中访问应答处理模块结构示意图,由图可知,访问应答处理模块包括第三先入先出缓存器202、第四逻辑单元203、第四先入先出缓存器207、第六组合数据线208、第七组合数据线209、第五逻辑单元206、第三位或运算单元211、第三计数器212、第六逻辑单元210和第五先入先出缓存器213,其中:
第三先入先出缓存器202:缓存访问应答数据,并输出给第四逻辑单元203。第三先入先出缓存器202的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位32为数据传递起始位。输入应答数据包由2个34位数据字组成,第一个传输字的位33至位32为二进制数‘11’,位13至位6为应答数据包的帧号,位5至位0为表示数据发送端位置的6位二进制数,其余位为‘0’;第二个传输字的33至位32为二进制数‘10’,位31至位0为32位数据。
第四逻辑单元203:是第二时序逻辑电路,接收第三先入先出缓存器202输出的34位数据,将34位数据进行并行化处理,并将并行化处理后的数据通过第四组合数据线204和第五组合数据线205传输。第四逻辑单元203中进行并行处理方法为:第四组合数据线204位宽为46位,按从高位到低位的顺序,位45至位14为第三先入先出缓存器202输出的34位数据中,当位33至位32为二进制数10时的位31至位0的二进制数;位13至位0为第三先入先出缓存器202输出的34位数据中,当位33至位32为二进制数11时位13至位0的二进制数。第五组合数据线205位宽为6位,为第三先入先出缓存器202输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器202中位5至位0的二进制数。第四组合数据线204与第四先入先出缓存器207的数据输入端连接,第五组合数据线205输入第五逻辑单元206。
第四先入先出缓存器207:接收第四逻辑单元203输出的数据并进行缓存。位宽为46位。
第六组合数据线208:位宽为8位,传输第四先入先出缓存器207输出的位5至位0和第四先入先出缓存器207的空状态标志和满状态标志。第六组合数据线208中数据格式按从高位到低位的顺序为:位7至位2为第四先入先出缓存器207输出的位5至位0数据,位1为第四先入先出缓存器207的空状态标志,位0为第四先入先出缓存器207的满状态标志。第六组合数据线208与第五逻辑单元206相连接。
第七组合数据线209:位宽为47位。传输第四先入先出缓存器207输出的46位数据和第四先入先出缓存器207的空状态标志。第七组合数据线209中数据格式按从高位到低位的顺序为:位45至位0为第四先入先出缓存器207输出的46位数据,位46为第四先入先出缓存器207的空状态标志。第七组合数据线209与第六逻辑单元210连接。
在图2中,有四个结构相同的第四先入先出缓存器207,每个第四先入先出缓存器207都存在对应的第六组合数据线208、第七组合数据线209。
第五逻辑单元206:接收第六组合数据线208和第五组合数据线205输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器207的写使能信号的控制,使得四个第四先入先出缓存器207中仅有一个写使能信号有效。
第三组合逻辑的判断依据为:将第五组合数据线205的6位数据分别与第六组合数据线208中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线208中位0表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为‘1’,若两个数据不相等,则再次判断第六组合数据线208中位1表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为‘1’。
第三位或运算单元211:接收第六逻辑单元210输出的读使能信号216,进行位或运算后将运算结果输出给第三计数器212。
第三计数器212:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第三位或运算单元211输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元210。
第六逻辑单元210:接收分别为4个第四先入先出缓存器207对应的第七组合数据线209和第三计数器212的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器207的读使能信号的控制,使得四个第四先入先出缓存器207中仅有一个读使能信号有效,输出为两路数据,针对第四先入先出缓存器207的读使能信号216,和位宽为33位的组合数据线214。读使能信号216位宽为4,分别与第四先入先出缓存器207的读使能端连接。组合数据线214与第五先入先出缓存器213相连接。
第四组合逻辑的判断依据为:判断四个输入的第七组合数据线209中位46是否全部为1,如果不全部为1,则依次判断第三计数器212输出的8位二进制数据是否与四个输入第七组合数据线209中位13至位6相等;如果全部相等或者至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器207的读信号设置为‘1’,同时通过组合数据线214输出数据;如果全部不相等,输出4位读使能信号216各位为‘0’,组合数据线214输出33位数据全部为‘0’。如果全部为1,输出4位读使能信号216各位为‘0’,组合数据线214输出33位数据全部为‘0’。
第五先入先出缓存器213:接收组合数据线214输入的数据并进行缓存,位宽为33位。
在采用分布式存储系统,DMA控制器访问不同存储单元的延迟是不同的。本发明能够保证避免出现访问返回得到的数据顺序与访问顺序不一致情况的发生。
本发明二维网格架构的高性能多核处理器芯片中DMA控制器模块具有如下特点:
一、实现针对分布式存储系统中位于不同位置的存储单元的连续访问,连续读取处理器内部分布式存储系统中数据或者将数据连续写入分布式存储系统。
二、支持以地址大范围跳跃的方式访问分布式存储系统中位于多个不同位置的存储单元。不会出现在访问不同存储单元时,必须等待针对前一个存储单元的访问结束后,再开始针对另一存储单元访问的情况。
三、能够按照访问分布式存储系统的先后顺序自动整理返回的数据,得到正确顺序的数据。在访问位于不同坐标处存储单元时,访问数据所经过的路径长度是不一致的,导致的访问延迟不同,从而使得返回的数据无法确保对应访问请求的先后顺序。此设计单元能够对返回的数据进行自动调整,得到正确的顺序数据。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (10)
1.一种多核处理器的DMA控制器,其特征在于:包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块包括32位地址发生器(101)、第一先入先出缓存器(102)、第一寄存器组(103)、第一组合数据线(106)、第二组合数据线(107)、第三组合数据线(108)、第二先入先出缓存器(105)、第一逻辑单元(104)、第一位或运算单元(117)、第一计数器(118)、第二逻辑单元(111)、第二位或运算单元(119)、第二计数器(115)和第三逻辑单元(116),其中:
32位地址发生器(101):将内部初始值加上或者减去一个数值,并将运算结果输出给第一先入先出缓存器(102);
第一先入先出缓存器(102):接收32位地址发生器(101)输出的位宽为32位的数据进行缓存;
第一寄存器组(103):为查询表结构,接收第一先入先出缓存器(102)输出的32位数据中的位19到位16四位二进制数,进行逻辑判断后输出对应访问目的地址坐标的6位二进制数;
第一组合数据线(106):传输第一先入先出缓存器(102)输出的32位地址数据、第一计数器(118)输出的8位二进制数和第一寄存器组(103)输出的6位二进制数;
第二组合数据线(107):传输第二先入先出缓存器(105)输出数据的位5至位0和第二先入先出缓存器(105)的空状态标志和满状态标志;
第三组合数据线(108):传输第二先入先出缓存器(105)输出的46位数据和第二先入先出缓存器(105)的空状态标志;
第二先入先出缓存器(105):接收第一组合数据线(106)输出的数据并进行缓存;
第一逻辑单元(104):接收第一寄存器组(103)与第二组合数据线(107)输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器(105)的写使能信号的控制,使得四个第二先入先出缓存器(105)中仅有一个写使能信号有效,其中第一组合逻辑的判断依据为:将第一寄存器组(103)输出的数据与第二组合数据线(107)输出数据的位7到位2进行比较,若两个数据相等,则再次判断第二先入先出缓存器(105)的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器(105)的写信号设置为1;若两个数据不相等,则再次判断第二先入先出缓存器(105)的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器(105)的写信号设置为1;
第一位或运算单元(117):接收第一逻辑单元(104)输出的数据,进行位或运算,将运算结果分别输出给第一计数器(118)和第一先入先出缓存器(102)的读使能端;
第一计数器(118):接收第一位或运算单元(117)输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线(106)进行传输;
第二逻辑单元(111):接收第二计数器(115)和第三组合数据线(108)输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器(105)的读使能信号的控制,使得四个第二先入先出缓存器(105)中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器(105)的读使能信号(112),另外一路通过数据线(114)进行传输,其中第二组合逻辑的判断依据为:判断第二先入先出缓存器(105)的空标志是否为0;若为0,则依次判断第二计数器(115)输出的数据是否与四个输入第三组合数据线(108)中位13至位6相等,如果至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器(105)的读信号设置为1,同时通过数据线(114)输出第三组合数据线(108)的位45至位0数据,如果全不相等,则输出4位二进制数据为0;若不为0,则输出4位二进制数据为0,数据线(114)输出为0;
第二位或运算单元(119):接收第二逻辑单元(111)输出的读使能信号(112),进行位或运算,将运算结果分别输出给第二计数器(115)和第三逻辑单元(116);
第二计数器(115):接收第二位或运算单元(119)输出的脉冲信号,进行计数,并将计数结果输出给第二逻辑单元(111);
第三逻辑单元(116):为第一时序逻辑电路,接收数据线(114)输出的数据和第二位或运算单元(119)的输出的数据,产生访问数据包;
所述访问应答处理模块包括第三先入先出缓存器(202)、第四逻辑单元(203)、第四先入先出缓存器(207)、第六组合数据线(208)、第七组合数据线(209)、第五逻辑单元(206)、第三位或运算单元(211)、第三计数器(212)、第六逻辑单元(210)和第五先入先出缓存器(213),其中:
第三先入先出缓存器(202):缓存访问应答数据,并输出给第四逻辑单元(203);
第四逻辑单元(203):为第二时序逻辑电路,接收第三先入先出缓存器(202)输出的数据,将串行接收的数据并行化处理,并将并行化处理后的数据通过第四组合数据线(204)和第五组合数据线(205)传输,其中第二时序逻辑电路产生规则为:第四组合数据线(204),位宽为46位,按从高位到低位的顺序,当接收第三先入先出缓存器(202)输出的数据位33至位32为二进制数10时,第四组合数据线(204)的位45至位14为第三先入先出缓存器(202)输出数据中位31至位0的二进制数;当接收第三先入先出缓存器(202)输出的数据位33至位32为二进制数11时,第四组合数据线(204)的位13至位0为第三先入先出缓存器(202)输出数据中位13至位0的二进制数;第五组合数据线(205)位宽为6位,为接收第三先入先出缓存器(202)输出数据中位33至位32为二进制数11时,第三先入先出缓存器(202)中位5至位0的二进制数;
第四先入先出缓存器(207):接收第四逻辑单元(203)输出的数据并进行缓存;
第六组合数据线(208):传输第四先入先出缓存器(207)输出的位5至位0和第四先入先出缓存器(207)的空状态标志和满状态标志;
第七组合数据线(209):传输第四组合数据线(204)数据和第四先入先出缓存器(207)的空状态标志;
第五逻辑单元(206):接收第六组合数据线(208)和第五组合数据线(205)输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器(207)的写使能信号的控制,使得四个第四先入先出缓存器(207)中仅有一个写使能信号有效,其中第三组合逻辑的判断依据为:将第五组合数据线(205)的6位数据分别与第六组合数据线(208)中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线(208)中位0表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器(207)的写信号设置为1,如果置位,将输出4位二进制数据设置为0;若两个数据不相等,则再次判断第六组合数据线(208)中位1表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器(207)的写信号设置为1,如果未置位,将输出4位二进制数据设置为0;
第三位或运算单元(211):接收第六逻辑单元(210)输出的读使能信号(216),进行位或运算后将运算结果输出给第三计数器(212);
第三计数器(212):接收第三位或运算单元(211)输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元(210);
第六逻辑单元(210):接收第七组合数据线(209)和第三计数器(212)的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器(207)的读使能信号的控制,使得四个第四先入先出缓存器(207)中仅有一个读使能信号有效,输出为两路数据,一路数据为第四先入先出缓存器(207)的读使能信号(216),另外一路通过组合数据线(214)进行传输,其中第四组合逻辑的判断依据为:判断四个输入的第七组合数据线(209)中位46是否全部为1,如果不全部为1,则依次判断第三计数器(212)输出的8位二进制数据是否与四个输入第七组合数据线(209)中位13至位6相等;如果至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器(207)的读信号设置为1,同时通过组合数据线(214)输出数据;如果全部不相等,输出4位读使能信号(216)各位为0,组合数据线(214)输出33位数据全部为0;如果全部为1,输出4位读使能信号(216)各位为0,组合数据线(214)输出33位数据全部为0;
第五先入先出缓存器(213):接收组合数据线(214)输入的数据并进行缓存。
2.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第一组合数据线(106)的数据格式为:位宽为46位,按从高位到低位的顺序,位45至位14为第一先入先出缓存器(102)输出的32位数据,位13至位6为第一计数器(118)输出的8位数据,位5至位0为第一寄存器组(103)输出的6位数据。
3.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第二组合数据线(107)的数据格式为:位宽为8位,按从高位到低位的顺序,位7至位2为第二先入先出缓存器(105)输出的位5至位0数据,位1为第二先入先出缓存器(105)的空状态标志,位0为第二先入先出缓存器(105)的满状态标志。
4.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三组合数据线(108)的数据格式为:位宽为47位,按从高位到低位的顺序,位45至位0为第二先入先出缓存器(105)输出的46位数据,位46为第二先入先出缓存器(105)的空状态标志。
5.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三逻辑单元(116)中数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数11,位13至位0为第二逻辑单元(111)输出数据线(114)的位13至位0数据,其余位为0;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位0为第二逻辑单元(111)输出数据线(114)的位45至位14数据。
6.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三先入先出缓存器(202)的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位32为数据传递起始位,输入应答数据包由2个34位数据字组成,第一个传输字的位33至位32为二进制数11,位13至位6为应答数据包的帧号,位5至位0为表示数据发送端位置的6位二进制数,其余位为0;第二个传输字的33至位32为二进制数10,位31至位0为32位数据。
7.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第四逻辑单元(203)中并行处理方法为:第四组合数据线(204)位宽为46位,按从高位到低位的顺序,第四组合数据线(204)的位45至位14为在第三先入先出缓存器(202)输出数据的位33至位32为二进制数10时,第三先入先出缓存器(202)输出数据的位31至位0的二进制数;位13至位0为第三先入先出缓存器(202)输出数据的位33至位32为二进制数11时,第三先入先出缓存器(202)输出数据的位13至位0的二进制数;第五组合数据线(205)位宽为6位,为第三先入先出缓存器(202)输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器(202)中位5至位0的二进制数。
8.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第六组合数据线(208)中数据格式按从高位到低位的顺序为:位7至位2为第四先入先出缓存器(207)输出的位5至位0数据,位1为第四先入先出缓存器(207)的空状态标志,位0为第四先入先出缓存器(207)的满状态标志。
9.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第七组合数据线(209)中数据格式按从高位到低位的顺序为:位45至位0为第四先入先出缓存器(207)输出的46位数据,位46为第四先入先出缓存器(207)的空状态标志。
10.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述组合数据线(214)中数据格式按从高位到低位的顺序为:位32为第七组合数据线(209)中位46二进制数的相反数,位31至位0为第七组合数据线(209)中位45至位14。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618950.6A CN103678202B (zh) | 2013-11-26 | 2013-11-26 | 一种多核处理器的dma控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618950.6A CN103678202B (zh) | 2013-11-26 | 2013-11-26 | 一种多核处理器的dma控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678202A CN103678202A (zh) | 2014-03-26 |
CN103678202B true CN103678202B (zh) | 2016-08-17 |
Family
ID=50315820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310618950.6A Active CN103678202B (zh) | 2013-11-26 | 2013-11-26 | 一种多核处理器的dma控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678202B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188059B (zh) * | 2019-05-17 | 2020-10-27 | 西安微电子技术研究所 | 数据有效位统一配置的流控式fifo缓存装置及方法 |
CN110519174B (zh) * | 2019-09-16 | 2021-10-29 | 无锡江南计算技术研究所 | 一种面向高阶路由器芯片的高效并行管理方法及架构 |
CN112199309B (zh) * | 2020-10-10 | 2022-03-15 | 北京泽石科技有限公司 | 基于dma引擎的数据读取方法、装置和数据传输系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1359075A (zh) * | 2000-11-15 | 2002-07-17 | 德克萨斯仪器股份有限公司 | 具有耦联子系统存储器总线的多芯数字信号处理器装置 |
CN2507066Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种直接存储器访问控制器 |
CN1619525A (zh) * | 2003-11-19 | 2005-05-25 | 富士通天株式会社 | 电子控制装置 |
CN1655593A (zh) * | 2004-01-09 | 2005-08-17 | 三星电子株式会社 | 用直接存储器访问翻转或旋转数字图像的相机接口和方法 |
CN101504633A (zh) * | 2009-03-27 | 2009-08-12 | 北京中星微电子有限公司 | 一种多通道dma控制器 |
CN103377170A (zh) * | 2012-04-26 | 2013-10-30 | 上海宝信软件股份有限公司 | 异构处理器间spi高速双向对等数据通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195883B2 (en) * | 2010-01-27 | 2012-06-05 | Oracle America, Inc. | Resource sharing to reduce implementation costs in a multicore processor |
-
2013
- 2013-11-26 CN CN201310618950.6A patent/CN103678202B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1359075A (zh) * | 2000-11-15 | 2002-07-17 | 德克萨斯仪器股份有限公司 | 具有耦联子系统存储器总线的多芯数字信号处理器装置 |
CN2507066Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种直接存储器访问控制器 |
CN1619525A (zh) * | 2003-11-19 | 2005-05-25 | 富士通天株式会社 | 电子控制装置 |
CN1655593A (zh) * | 2004-01-09 | 2005-08-17 | 三星电子株式会社 | 用直接存储器访问翻转或旋转数字图像的相机接口和方法 |
CN101504633A (zh) * | 2009-03-27 | 2009-08-12 | 北京中星微电子有限公司 | 一种多通道dma控制器 |
CN103377170A (zh) * | 2012-04-26 | 2013-10-30 | 上海宝信软件股份有限公司 | 异构处理器间spi高速双向对等数据通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103678202A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103345461B (zh) | 基于fpga的带有加速器的多核处理器片上网络系统 | |
CN104020691B (zh) | 适用于多总线协议、多扩展接口的信号采集板卡 | |
CN102931994B (zh) | 应用于信号处理芯片的高速信号采样和同步的架构及方法 | |
CN101089840A (zh) | 基于多fpga的矩阵乘法并行计算系统 | |
CN103678202B (zh) | 一种多核处理器的dma控制器 | |
CN208766715U (zh) | 3*3卷积算法的加速电路 | |
CN203812236U (zh) | 一种基于处理器和现场可编程门阵列的数据交换系统 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN207895438U (zh) | 一种fpga与dsp多核异构加速计算板卡 | |
CN102063408A (zh) | 一种多核处理器片内数据总线 | |
CN109656856A (zh) | 利用fpga实现非复用总线与复用总线互联装置及方法 | |
CN104571263B (zh) | 一种片上定时器 | |
CN102710236A (zh) | 基于fpga的小波变换实现结构 | |
CN114297097A (zh) | 一种众核可定义分布式共享存储结构 | |
CN104572519B (zh) | 一种用于多处理器的多端口访存控制器及其控制方法 | |
CN103365821B (zh) | 一种异构多核处理器的地址生成器 | |
CN106843803A (zh) | 一种基于归并树的全排序加速器及应用 | |
CN104794087B (zh) | 一种多核处理器中处理单元接口电路 | |
CN111666254A (zh) | 一种新型异构多处理器电路系统 | |
CN201688851U (zh) | 一种双dsp处理器平台导航计算机 | |
Xiao et al. | Design of AXI bus based MPSoC on FPGA | |
CN103218344A (zh) | 采用数据驱动机制多处理器间数据通信电路 | |
CN105049377B (zh) | 基于Crossbar架构的AFDX交换机数据总线结构及数据交换方法 | |
CN109710562A (zh) | 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 | |
CN201444298U (zh) | 一种多核处理器与二级缓存之间的通讯模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |