一种多核处理器的dma控制器的制造方法

文档序号:6521095阅读:200来源:国知局
一种多核处理器的dma控制器的制造方法
【专利摘要】本发明涉及一种多核处理器的DMA控制器,该DMA控制器包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息;访问应答处理模块接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据,通过采用分类缓存的方法,实现对多块存储单元的快速连续访问,而不必局限于针对同一存储单元的所有访问完成后再开始访问另外的存储单元,通过DMA控制器内部多组先入先缓存器,实现数据在处理器内部的快速分配,大大提高访问效率,利于发挥多核并行处理的优势。
【专利说明】—种多核处理器的DMA控制器
【技术领域】
[0001]本发明涉及一种多核处理器的DMA控制器,特别是针对二维网格(mesh)架构的多核处理器中,能够连续访问分布式存储系统的DMA控制器,属于微处理器【技术领域】。
【背景技术】
[0002]微处理器是现代数字信号系统的关键部件,在一些领域,如高精度测试、高速图象处理、高速网络、通信等,需要数据高速输入输出。如果依靠微处理器通过指令实现数据的输入和输出,将无法满足这些领域对高吞吐率数据的要求。因此,许多微处理器都设计了DMA (Direct Memory Access)控制器接口。DMA是一种不需要执行微处理器指令的数据传输机制,片内DMA控制器使它的微处理器从大量数据传输的负担中解放出来,它允许处理器指定数据传输方式,当DMA控制器在后台执行数据传输任务时,微处理器可以返回到正常的程序处理流程继续执行。
[0003]现在,随着微电子技术的发展,多核处理器已成为提高处理器性能的最佳途径。目前具有代表性的有picochip公司的pcl02、tiler公司的tile64和BAEsystem公司的RADSPEED。
[0004]上面三种多核处理器,性能都很高。在由多核处理器构成的复杂数据处理系统中,这些芯片的DMA传递特点如下:
[0005]V PC102没有专用的DMA通道,对存储器的访问只能在预先分配的时间片内才能实现。每个时间片占用2个clk,也就是,最快只能是2个elk实现一次对存储器的访问。由于受到片内总线带宽的限制,不允许在一定时间段内所有的时间片全部用于DMA传输。
[0006]V Tile64中的处理单元排列成8*8的二维阵列,处理单元内部有两级cache。芯片可外接DDR2存储器,能够在外部存储器与处理单元内部二级cache间建立DMA通道。但每次DMA传递,处理单元只能与一块存储器实现数据的传递。
[0007]V RADSPEED片内只有2个共享存储器块,190个处理单元,每个处理单元内部有自己私有的存储器。处理单元内部存储器支持与共享存储器块和处理单元间建立DMA通道。只有在相邻处理单元间才能建立DMA传递。处理单元每次只能与一块共享存储器进行DMA数据传输。
[0008]从上述分析可知,目前的微处理器,还不支持以DMA方式与多块存储器之间不断跳跃的快速访问模式,只能针对一块存储器进行数据传输。这对于单核处理器中,由于存储单元的规模比较大(如TS201的每块存储单元为8Mb)或者是共享总线结构(如TMS320C6713),影响不大。但对于分布式多核处理器,由于存储器位于芯片的不同位置,使得访问这些存储器的延迟是不同的。如果存储器访问地址跳跃幅度比较大,从不同位置存储器返回得到的数据顺序可能与访问顺序不一致,导致数据访问混乱。如果不能实现以DMA方式与多块存储器之间不断切换的快速访问,将限制多核处理器并行性能的发挥。
[0009]发明目的
[0010]本发明的目的在于克服现有技术的上述不足,提供一种多核处理器的DMA控制器,该多核处理器的DMA控制器可以快速读写分布式的共享存储系统,提高访问效率,实现数据在处理器内部的快速分配,利于发挥多核并行处理的优势,同时避免出现访问返回得到的数据顺序与访问顺序不一致情况的发生。
[0011]本发明的上述目的主要是通过如下技术方案予以实现的:
[0012]一种多核处理器的DMA控制器,包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块包括32位地址发生器101、第一先入先出缓存器102、第一寄存器组103、第一组合数据线106、第二组合数据线107、第三组合数据线108、第二先入先出缓存器105、第一逻辑单元104、第一位或运算单元117、第一计数器118、第二逻辑单元111、第二位或运算单元119、第二计数器115和第三逻辑单元116,其中:
[0013]32位地址发生器101:将内部初始值加上或者减去一个数值,并将运算结果输出给第一先入先出缓存器102 ;
[0014]第一先入先出缓存器102:接收32位地址发生器101输出的位宽为32位的数据进行缓存;
[0015]第一寄存器组103:为查询表结构,接收第一先入先出缓存器102输出的32位数据中的位19到位16四位二进制数,进行逻辑判断后输出对应访问目的地址坐标的6位二进制数;
[0016]第一组合数据线106:传输第一先入先出缓存器102输出的32位地址数据、第一计数器118输出的8位二进制数和第一寄存器组103输出6位二进制数;
[0017]第二组合数据线107:传输第二先入先出缓存器105输出数据的位5至位O和第二先入先出缓存器105的空状态标志和满状态标志;
[0018]第三组合数据线108:传输第二先入先出缓存器105输出的46位数据和第二先入先出缓存器105的空状态标志;
[0019]第二先入先出缓存器105:接收第一组合数据线106输出的数据并进行缓存;
[0020]第一逻辑单元104:接收第一寄存器组103与第二组合数据线107输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器105的写使能信号的控制,使得四个第二先入先出缓存器105中仅有一个写使能信号有效,其中第一组合逻辑的判断依据为:将第一寄存器组103输出的数据与第二组合数据线107输出数据的位7到位2进行比较,若两个数据相等,则再次判断第二先入先出缓存器105的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为I ;若两个数据不相等,则再次判断第二先入先出缓存器105的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为I ;
[0021]第一位或运算单元117:接收第一逻辑单元104输出的数据,进行位或运算,将运算结果分别输出给第一计数器118和第一先入先出缓存器102的读使能端;
[0022]第一计数器118:接收第一位或运算单元117输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线106进行传输;
[0023]第二逻辑单元111:接收第二计数器115和第三组合数据线108输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器105的读使能信号的控制,使得四个第二先入先出缓存器105中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器105的读使能信号112,另外一路通过数据线114进行传输,其中第二组合逻辑的判断依据为:判断第二先入先出缓存器105的空标志是否为O ;若为0,则依次判断第二计数器115输出的数据是否与四个输入第三组合数据线108中位13至位6相等,如果至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器105的读信号设置为1,同时通过数据线114输出第三组合数据线108的位45至位O数据,如果全不相等,则输出4位二进制数据为O ;若不为0,则输出4位二进制数据为0,数据线114输出为O ;
[0024]第二位或运算单元119:接收第二逻辑单元111输出的读使能信号112,进行位或运算,将运算结果分别输出给第二计数器115和第三逻辑单元116 ;
[0025]第二计数器115:接收第二位或运算单元119输出的脉冲信号,进行计数,并将计数结果输出给第二逻辑单元111 ;
[0026]第三逻辑单元116:为第一时序逻辑电路,接收数据线114输出的数据和第二位或运算单元119的输出的数据,产生访问数据包;
[0027]所述访问应答处理模块包括第三先入先出缓存器202、第四逻辑单元203、第四先入先出缓存器207、第六组合数据线208、第七组合数据线209、第五逻辑单元206、第三位或运算单元211、第三计数器212、第六逻辑单元210和第五先入先出缓存器213,其中:
[0028]第三先入先出缓存器202:缓存访问应答数据,并输出给第四逻辑单元203 ;
[0029]第四逻辑单元203:为第二时序逻辑电路,接收第三先入先出缓存器202输出的数据,将串行接收的数据并行化处理,并将并行化处理后的数据通过第四组合数据线204和第五组合数据线205传输,其中第二时序逻辑电路产生规则为:第四组合数据线204,位宽为46位,按从高位到低位的顺序,当接收第三先入先出缓存器202输出的数据位33至位32为二进制数10时,第四组合数据线204的位45至位14为第三先入先出缓存器202输出数据中位31至位O的二进制数;当接收第三先入先出缓存器202输出的数据位33至位32为二进制数11时,第四组合数据线204的位13至位O为第三先入先出缓存器202输出数据中位13至位O的二进制数;第五组合数据线205位宽为6位,为接收第三先入先出缓存器202输出数据中位33至位32为二进制数11时,第三先入先出缓存器202中位5至位O的二进制数;
[0030]第四先入先出缓存器207:接收第四逻辑单元203输出的数据并进行缓存;
[0031]第六组合数据线208:传输第四先入先出缓存器207输出的位5至位O和第四先入先出缓存器207的空状态标志和满状态标志;
[0032]第七组合数据线209:传输第四组合数据线204数据和第四先入先出缓存器207的空状态标志;
[0033]第五逻辑单元206:接收第六组合数据线208和第五组合数据线205输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器207的写使能信号的控制,使得四个第四先入先出缓存器207中仅有一个写使能信号有效,其中第三组合逻辑的判断依据为:将第五组合数据线205的6位数据分别与第六组合数据线208中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线208中位O表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为1,如果置位,将输出4位二进制数据设置为O ;若两个数据不相等,则再次判断第六组合数据线208中位I表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为I,如果未置位,将输出4位二进制数据设置为O ;[0034]第三位或运算单元211:接收第六逻辑单元210输出的读使能信号211,进行位或运算后将运算结果输出给第三计数器212 ;
[0035]第三计数器212:接收第三位或运算单元211输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元210 ;
[0036]第六逻辑单元210:接收第七组合数据线209和第三计数器212的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器207的读使能信号的控制,使得四个第四先入先出缓存器207中仅有一个读使能信号有效,输出为两路数据,一路数据为第四先入先出缓存器207的读使能信号211,另外一路通过组合数据线214进行传输,其中第四组合逻辑的判断依据为:判断四个输入的第七组合数据线209中位46是否全部为1,如果不全部为1,则依次判断第三计数器212输出的8位二进制数据是否与四个输入第七组合数据线209中位13至位6相等;如果至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器207的读信号设置为1,同时通过组合数据线214输出数据;如果全部不相等,输出4位读使能信号211各位为0,组合数据线214输出33位数据全部为O ;如果全部为1,输出4位读使能信号211各位为0,组合数据线214输出33位数据全部为O。
[0037]第五先入先出缓存器213:接收组合数据线214输入的数据并进行缓存。
[0038]在上述多核处理器的DMA控制器中,第一组合数据线106的数据格式为:位宽为46位,按从高位到低位的顺序,位45至位14为第一先入先出缓存器102输出的32位数据,位13至位6为第一计数器118输出的8位数据,位5至位O为第一寄存器组103输出的6位数据。
[0039]在上述多核处理器的DMA控制器中,第二组合数据线107的数据格式为:位宽为8位,按从高位到低位的顺序,位7至位2为第二先入先出缓存器105输出的位5至位O数据,位I为第二先入先出缓存器105的空状态标志,位O为第二先入先出缓存器105的满状态标志。
[0040]在上述多核处理器的DMA控制器中,第三组合数据线108的数据格式为:位宽为47位,按从高位到低位的顺序,位45至位O为第二先入先出缓存器105输出的46位数据,位46为第二先入先出缓存器105的空状态标志。
[0041]在上述多核处理器的DMA控制器中,第三逻辑单元116中数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数11,位13至位O为第二逻辑单元111输出数据线114的位13至位O数据,其余位为O ;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位O为第二逻辑单元111输出数据线114的位45至位14数据。
[0042]在上述多核处理器的DMA控制器中,第三先入先出缓存器202的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位32为数据传递起始位,输入应答数据包由2个34位数据字组成,第一个传输字的位33至位32为二进制数11,位13至位6为应答数据包的帧号,位5至位O为表示数据发送端位置的6位二进制数,其余位为O ;第二个传输字的33至位32为二进制数10,位31至位O为32位数据。
[0043]在上述多核处理器的DMA控制器中,第四逻辑单元203中并行处理方法为:第四组合数据线204位宽为46位,按从高位到低位的顺序,第四组合数据线204的位45至位14为在第三先入先出缓存器202输出数据的位33至位32为二进制数10时,第三先入先出缓存器202输出数据的位31至位O的二进制数;位13至位O为第三先入先出缓存器202输出数据的位33至位32为二进制数11时,第三先入先出缓存器202输出数据的位13至位O的二进制数;第五组合数据线205位宽为6位,为第三先入先出缓存器202输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器202中位5至位O的二进制数。
[0044]在上述多核处理器的DMA控制器中,第六组合数据线208中数据格式按从高位到低位的顺序为--位7至位2为第四先入先出缓存器207输出的位5至位O数据,位I为第四先入先出缓存器207的空状态标志,位O为第四先入先出缓存器207的满状态标志。
[0045]在上述多核处理器的DMA控制器中,第七组合数据线209中数据格式按从高位到低位的顺序为--位45至位O为第四先入先出缓存器207输出的46位数据,位46为第四先入先出缓存器207的空状态标志。
[0046]在上述多核处理器的DMA控制器中,组合数据线214中数据格式按从高位到低位的顺序为--位32为第七组合数据线209中位46 二进制数的相反数,位31至位O为第七组合数据线209中位45至位14。
[0047]本发明与现有技术相比具有如下有益效果:
[0048](I)、本发明对多核处理器的DMA控制器结构进行创新设计,DMA控制器包括访问请求产生模块和访问应答处理模块,其中访问请求产生模块将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息;访问应答处理模块接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据,通过采用分类缓存的方法,实现对多块存储单元的快速连续访问,而不必局限于针对同一存储单元的所有访问完成后再开始访问另外的存储单元,通过DMA控制器内部多组先入先缓存器·,实现数据在处理器内部的快速分配,大大提高访问效率,利于发挥多核并行处理的优势。
[0049](2)、本发明设计的DMA控制器,支持针对4处不同坐标的存储单元的快速访问,将针对不同存储单元的访问各自划分为一类,并进行缓存,按帧号从O到Oxff的顺序进行发送和接收,如果希望增加快速访问存储单元的数目,仅需要增加缓存的数量即可,实现方式灵活,可扩展性强。
[0050](3)、本发明设计的DMA控制器,不但适用于网格架构的多核处理器,还可应用于所有涉及以连续方式访问多块存储单元的电路,具有较广应用范围和较强的实用性。
【专利附图】

【附图说明】
[0051]图1为本发明多核处理器的DMA控制器中访问请求产生模块结构示意图;
[0052]图2为本发明多核处理器的DMA控制器中访问应答处理模块结构示意图;
[0053]其中: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。【具体实施方式】
[0054]下面结合附图和具体实施例对本发明作进一步详细的描述:
[0055]基于二维网格架构的多核处理器,内部总线网络包括水平数据线和垂直数据线,在水平数据线和垂直数据线的交叉点处连接微处理器IP、存储器单元。以水平方向为X轴,垂直方向为Y轴,左上角交叉点为原点,建立二维坐标平面。则交叉点处连接的微处理器核、存储器单元的位置可以通过坐标表示,坐标以(X,y)方式表示,X轴正方向向右,y轴正方向向下。数据信息在内部总线中按照X-Y虫蠕维序模式传递,根据数据信息的起始坐标和目的坐标,先沿X轴传递,每次只能前进一个坐标距离,当到达的交叉点地X坐标与目的坐标X轴一致时,再沿Y轴传递,每次前进一个坐标距离,直到到达目的坐标。
[0056]本发明多核处理器片内存储系统,由多个不同坐标位置的存储单元构成,每个存储单元的存储空间为64KB,其中DMA控制器由访问请求产生模块和访问应答处理模块两部分组成:
[0057]访问请求产生模块,将地址发生器输出的针对存储系统的访问地址,首先依据访问地址的目的存储器位置分类,再按照访问地址产生顺序发送访问请求信息。
[0058]访问应答处理模块,接收不同位置存储器返回的访问应答数据,从中解析出正确读取顺序的数据。
[0059]如图1所示本发明多核处理器的DMA控制器中访问请求产生模块结构示意图,由图可知访问请求产生模块包括32位地址发生器101、第一先入先出缓存器102、第一寄存器组103、第一组合数据线106、第二组合数据线107、第三组合数据线108、第二先入先出缓存器105、第一逻辑单元104、第一位或运算单元117、第一计数器118、第二逻辑单元111、第二位或运算单元119、第二计数器115和第三逻辑单元116,其中:
[0060]32位地址发生器101:功能是按照递增或者递减的规则,将内部初始值加上或者减去一个数值,并将运算结果输出给第一先入先出缓存器102,作为访问片内分布式共享存储器的地址。输出与第一先入先出缓存器102的数据输入端连接。此输出数据是位宽为32的二进制数,按从高位到低位的顺序,最高位为位31,最低位为位O。
[0061]第一先入先出缓存器(FIFO) 102:位宽为32位,作用是缓存地址发生器101输出的数据。
[0062]第一寄存器组103:查询表结构。输入为4位二进制数,对应第一先入先出缓存器102输出32位数据中的位19到位16,输出为对应分布式存储器位置的6位二进制数。此输入与输出对应表在设计分布式存储系统结构存储空间分配时已经确定,直接固化在寄存器组内。第一寄存器组103输出与第一逻辑单元104连接。
[0063]第一组合数据线106:位宽为46位,由第一先入先出缓存器102输出的32位地址数据、第一计数器118输出的8位二进制数和第一寄存器组103输出的6位二进制数组合形成。按从高位到低位的顺序,位45至位14为第一先入先出缓存器102输出的32位数据,位13至位6为第一计数器118输出的8位数据,位5至位O为第一寄存器组103输出的6位数据。
[0064]第二组合数据线107:位宽为8位,由第二先入先出缓存器105输出的位5至位O和第二先入先出缓存器105的空状态标志和满状态标志组合形成。按从高位到低位的顺序,位7至位2为第二先入先出缓存器105输出的位5至位O数据,位I为第二先入先出缓存器105的空状态标志,位O为第二先入先出缓存器105的满状态标志。第二组合数据线与第一逻辑单元104相连接。
[0065]第三组合数据线108:位宽为47位。由第二先入先出缓存器105输出的46位数据和第二先入先出缓存器105的空状态标志组合形成。按从高位到低位的顺序,位45至位O为第二先入先出缓存器105输出的46位数据,位46为第二先入先出缓存器105的空状态标志。第三组合数据线108与第二逻辑单元111连接。
[0066]第二先入先出缓存器105:位宽为46位,接收第一组合数据线106输出的数据并进行缓存。如图1,有4个第二先入先出缓存器105,第一组合数据线106与第二先入先出缓存器105数据输入端相连接。每个第二先入先出缓存器105都有对应的第二组合数据线107和第三组合数据线108。
[0067]第一逻辑单元104:接收第一寄存器组103与第二组合数据线107输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器105的写使能信号的控制,使得四个第二先入先出缓存器105中仅有一个写使能信号有效。
[0068]第一组合逻辑的判断依据为:将第一寄存器组103输出的数据与第二组合数据线107输出数据的位7到位2进行比较,若两个数据相等则再次判断第二先入先出缓存器105的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为‘I’ ;若两个数据不相等,则再次判断第二先入先出缓存器105的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为‘I’。
[0069]第一位或运算单117元:接收第一逻辑单元104输出的数据,进行位或运算,将运算结果分别输出给第一计数器118和第一先入先出缓存器102的读使能端。
[0070]第一计数器118:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第一位或运算单元117输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线106进行传输.[0071 ] 第二逻辑单元111:接收第二计数器115和第三组合数据线108输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器105的读使能信号的控制,使得四个第二先入先出缓存器105中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器105的读使能信号112,另外一路通过数据线114进行传输。
[0072]第二组合逻辑的判断依据为:判断第二先入先出缓存器105的空标志是否为O ;若为0,则依次判断第二计数器115输出的数据是否与四个输入第三组合数据线108中位13至位6是否相等,如果全部相等或至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器105的读信号设置为1,同时通过数据线114输出数据;如果全不相等,则输出4位二进制数据为O ;若不为0,则输出4位二进制数据为O。
[0073]第二位或运算单元119:接收第二逻辑单元111输出的读使能信号112,进行位或运算,将运算结果分别输出给第二计数器115和第三逻辑单元116。
[0074]第二计数器115:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第二位或运算单元119输出的脉冲信号,进行计数,并将计数结果输出给第二逻辑单元111。
[0075]第三逻辑单元116:为第一时序逻辑电路,接收第二逻辑单元111输出的位宽为47位的数据114和第二位或运算单元119的输出的数据,产生访问数据包。数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数‘11’,位13至位O为第二逻辑单元111输出数据114的位13至位O数据,其余位为O ;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位O为第二逻辑单元111输出数据114的位45至位14数据;
[0076]如图2所示为本发明多核处理器的DMA控制器中访问应答处理模块结构示意图,由图可知,访问应答处理模块包括第三先入先出缓存器202、第四逻辑单元203、第四先入先出缓存器207、第六组合数据线208、第七组合数据线209、第五逻辑单元206、第三位或运算单元211、第三计数器212、第六逻辑单元210和第五先入先出缓存器213,其中:
[0077]第三先入先出缓存器202:缓存访问应答数据,并输出给第四逻辑单元203。第三先入先出缓存器202的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位32为数据传递起始位。输入应答数据包由2个34位数据字组成,第一个传输字的位33至位32为二进制数‘11’,位13至位6为应答数据包的帧号,位5至位O为表示数据发送端位置的6位二进制数,其余位为‘0’ ;第二个传输字的33至位32为二进制数‘10’,位31至位O为32位数据。
[0078]第四逻辑单元203:是第二时序逻辑电路,接收第三先入先出缓存器202输出的34位数据,将34位数据进行并行化处理,并将并行化处理后的数据通过第四组合数据线204和第五组合数据线205传输。第四逻辑单元203中进行并行处理方法为:第四组合数据线204位宽为46位,按从高位到低位的顺序,位45至位14为第三先入先出缓存器202输出的34位数据中,当位33至位32为二进制数10时的位31至位O的二进制数;位13至位O为第三先入先出缓存器202输出的34位数据中,当位33至位32为二进制数11时位13至位O的二进制数。第五组合数据线205位宽为6位,为第三先入先出缓存器202输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器202中位5至位O的二进制数。第四组合数据线204与第四先入先出缓存器207的数据输入端连接,第五组合数据线205输入第五逻辑单兀206。
[0079]第四先入先出缓存器207:接收第四逻辑单元203输出的数据并进行缓存。位宽为46位。
[0080]第六组合数据线208:位宽为8位,传输第四先入先出缓存器207输出的位5至位O和第四先入先出缓存器207的空状态标志和满状态标志。第六组合数据线208中数据格式按从高位到低位的顺序为--位7至位2为第四先入先出缓存器207输出的位5至位O数据,位I为第四先入先出缓存器207的空状态标志,位O为第四先入先出缓存器207的满状态标志。第六组合数据线208与第五逻辑单元206相连接。
[0081]第七组合数据线209:位宽为47位。传输第四先入先出缓存器207输出的46位数据和第四先入先出缓存器207的空状态标志。第七组合数据线209中数据格式按从高位到低位的顺序为--位45至位O为第四先入先出缓存器207输出的46位数据,位46为第四先入先出缓存器207的空状态标志。第七组合数据线209与第六逻辑单元210连接。
[0082]在图2中,有四个结构相同的第四先入先出缓存器207,每个第四先入先出缓存器207都存在对应的第六组合数据线208、第七组合数据线209。
[0083]第五逻辑单元206:接收第六组合数据线208和第五组合数据线205输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器207的写使能信号的控制,使得四个第四先入先出缓存器207中仅有一个写使能信号有效。
[0084]第三组合逻辑的判断依据为:将第五组合数据线205的6位数据分别与第六组合数据线208中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线208中位O表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为‘I’,若两个数据不相等,则再次判断第六组合数据线208中位I表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为‘I’。
[0085]第三位或运算单元211:接收第六逻辑单元210输出的读使能信号211,进行位或运算后将运算结果输出给第三计数器212。
[0086]第三计数器212:是8位计数器,初始值为0,针对输入脉冲信号计数。接收第三位或运算单元211输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元210。
[0087]第六逻辑单元210:接收分别为4个第四先入先出缓存器207对应的第七组合数据线209和第三计数器212的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器207的读使能信号的控制,使得四个第四先入先出缓存器207中仅有一个读使能信号有效,输出为两路数据,针对第四先入先出缓存器207的读使能信号211,和位宽为33位的组合数据线214。读使能信号211位宽为4,分别与第四先入先出缓存器207的读使能端连接。组合数据线214与第五先入先出缓存器213相连接。
[0088]第四组合逻辑的判断依据为:判断四个输入的第七组合数据线209中位46是否全部为1,如果不全部为1,则依次判断第三计数器212输出的8位二进制数据是否与四个输入第七组合数据线209中位13至位6相等;如果全部相等或者至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器207的读信号设置为‘1’,同时通过组合数据线214输出数据;如果全部不相等,输出4位读使能信号211各位为‘0’,组合数据线214输出33位数据全部为‘0’。如果全部为1,输出4位读使能信号211各位为‘0’,组合数据线214输出33位数据全部为‘O’。
[0089]第五先入先出缓存器213:接收组合数据线214输入的数据并进行缓存,位宽为33位。
[0090]在采用分布式存储系统,DMA控制器访问不同存储单元的延迟是不同的。本发明能够保证避免出现访问返回得到的数据顺序与访问顺序不一致情况的发生。
[0091]本发明二维网格架构的高性能多核处理器芯片中DMA控制器模块具有如下特点:
[0092]一、实现针对分布式存储系统中位于不同位置的存储单元的连续访问,连续读取处理器内部分布式存储系统中数据或者将数据连续写入分布式存储系统。
[0093]二、支持以地址大范围跳跃的方式访问分布式存储系统中位于多个不同位置的存储单元。不会出现在访问不同存储单元时,必须等待针对前一个存储单元的访问结束后,再开始针对另一存储单元访问的情况。
[0094]三、能够按照访问分布式存储系统的先后顺序自动整理返回的数据,得到正确顺序的数据。在访问位于不同坐标处存储单元时,访问数据所经过的路径长度是不一致的,导致的访问延迟不同,从而使得返回的数据无法确保对应访问请求的先后顺序。此设计单元能够对返回的数据进行自动调整,得到正确的顺序数据。[0095]以上所述,仅为本发明最佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
[0096]本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
【权利要求】
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至位O和第二先入先出缓存器105的空状态标志和满状态标志; 第三组合数据线108:传输第二先入先出缓存器105输出的46位数据和第二先入先出缓存器105的空状态标志; 第二先入先出缓存器105:接收第一组合数据线106输出的数据并进行缓存; 第一逻辑单元104:接收第一寄存器组103与第二组合数据线107输出的数据,采用第一组合逻辑,实现对四个第二先入先出缓存器105的写使能信号的控制,使得四个第二先入先出缓存器105中仅有一个写使能信号有效,其中第一组合逻辑的判断依据为:将第一寄存器组103输出的数据与第二组合数据线107输出数据的位7到位2进行比较,若两个数据相等,则再次判断第二先入先出缓存器105的满标志是否置位,如果未置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为I ;若两个数据不相等,则再次判断第二先入先出缓存器105的空标志是否置位,如果置位,将输出的4位二进制数据中,对应第二先入先出缓存器105的写信号设置为I ; 第一位或运算单元117:接收第一逻辑单元104输出的数据,进行位或运算,将运算结果分别输出给第一计数器118和第一先入先出缓存器102的读使能端; 第一计数器118:接收第一位或运算单元117输出的脉冲信号,进行计数,并将计数结果通过第一组合数据线106进行传输; 第二逻辑单元111:接收第二计数器115和第三组合数据线108输出的数据,采用第二组合逻辑,实现对四个第二先入先出缓存器105的读使能信号的控制,使得四个第二先入先出缓存器105中仅有一个读使能信号有效,输出为两路数据,一路数据为第二先入先出缓存器105的读使能信号112,另外一路通过数据线114进行传输,其中第二组合逻辑的判断依据为:判断第二先入先出缓存器105的空标志是否为O ;若为0,则依次判断第二计数器115输出的数据是否与四个输入第三组合数据线108中位13至位6相等,如果至少一个相等,将输出的4位二进制数据中,对应第二先入先出缓存器105的读信号设置为1,同时通过数据线114输出第三组合数据线108的位45至位O数据,如果全不相等,则输出4位二进制数据为O ;若不为O,则输出4位二进制数据为O,数据线114输出为O ; 第二位或运算单元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至位O的二进制数;当接收第三先入先出缓存器202输出的数据位33至位32为二进制数11时,第四组合数据线204的位13至位O为第三先入先出缓存器202输出数据中位13至位O的二进制数;第五组合数据线205位宽为6位,为接收第三先入先出缓存器202输出数据中位33至位32为二进制数11时,第三先入先出缓存器202中位5至位O的二进制数; 第四先入先出缓存器207:接收第四逻辑单元203输出的数据并进行缓存; 第六组合数据线208:传输第四先入先出缓存器207输出的位5至位O和第四先入先出缓存器207的空状态标志和满状态标志; 第七组合数据线209:传输第四组合数据线204数据和第四先入先出缓存器207的空状态标志; 第五逻辑单元206:接收第六组合数据线208和第五组合数据线205输入的数据,采用第三组合逻辑,实现对四个第四先入先出缓存器207的写使能信号的控制,使得四个第四先入先出缓存器207中仅有一个写使能信号有效,其中第三组合逻辑的判断依据为:将第五组合数据线205的6位数据分别与第六组合数据线208中位7至位2表示的数据相比较,若两个数据相等则再次判断第六组合数据线208中位O表示的满标志是否置位,如果未置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为1,如果置位,将输出4位二进制数据设置为O ;若两个数据不相等,则再次判断第六组合数据线208中位I表示的空标志是否置位,如果置位,将输出4位二进制数据中,对应第四先入先出缓存器207的写信号设置为I,如果未置位,将输出4位二进制数据设置为O ; 第三位或运算单元211:接收第六逻辑单元210输出的读使能信号211,进行位或运算后将运算结果输出给第三计数器212 ; 第三计数器212:接收第三位或运算单元211输出的脉冲信号,进行计数,并将计数结果输出给第六逻辑单元210;第六逻辑单元210:接收第七组合数据线209和第三计数器212的输出数据,采用第四组合逻辑,实现对四个第四先入先出缓存器207的读使能信号的控制,使得四个第四先入先出缓存器207中仅有一个读使能信号有效,输出为两路数据,一路数据为第四先入先出缓存器207的读使能信号211,另外一路通过组合数据线214进行传输,其中第四组合逻辑的判断依据为:判断四个输入的第七组合数据线209中位46是否全部为1,如果不全部为.1,则依次判断第三计数器212输出的8位二进制数据是否与四个输入第七组合数据线209中位13至位6相等;如果至少一个相等,输出4位二进制数据中,对应第四先入先出缓存器.207的读信号设置为1,同时通过组合数据线214输出数据;如果全部不相等,输出4位读使能信号211各位为0,组合数据线214输出33位数据全部为O ;如果全部为1,输出4位读使能信号211各位为0,组合数据线214输出33位数据全部为O。 第五先入先出缓存器213:接收组合数据线214输入的数据并进行缓存。
2.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第一组合数据线106的数据格式为:位宽为46位,按从高位到低位的顺序,位45至位14为第一先入先出缓存器102输出的32位数据,位13至位6为第一计数器118输出的8位数据,位5至位O为第一寄存器组103输出的6位数据。
3.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第二组合数据线107的数据格式为:位宽为8位,按从高位到低位的顺序,位7至位2为第二先入先出缓存器105输出的位5至位O数据,位I为第二先入先出缓存器105的空状态标志,位O为第二先入先出缓存器105的满状态标志。
4.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三组合数据线108的数据格式为:位宽为47位,按从高位到低位的顺序,位45至位O为第二先入先出缓存器105输出的46位数据,位46为第二先入先出缓存器105的空状态标志。
5.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三逻辑单元116中数据包的格式为:在第一个时钟周期内,输出数据的位33至位32为二进制数.11,位13至位O为第二逻辑单元111输出数据线114的位13至位O数据,其余位为O ;在第二个时钟周期内,输出数据的位33至位32为二进制数10,位31至位O为第二逻辑单元111输出数据线114的位45至位14数据。
6.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第三先入先出缓存器202的数据格式为:位宽为34位,按从高位到低位顺序,位33为数据有效位,位.32为数据传递起始位,输入应答数据包由2个34位数据字组成,第一个传输字的位33至位.32为二进制数11,位13至位6为应答数据包的帧号,位5至位O为表示数据发送端位置的.6位二进制数,其余位为O ;第二个传输字的33至位32为二进制数10,位31至位O为32位数据。
7.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第四逻辑单元203中并行处理方法为:第四组合数据线204位宽为46位,按从高位到低位的顺序,第四组合数据线204的位45至位14为在第三先入先出缓存器202输出数据的位33至位32为二进制数10时,第三先入先出缓存器202输出数据的位31至位O的二进制数;位13至位O为第三先入先出缓存器202输出数据的位33至位32为二进制数11时,第三先入先出缓存器202输出数据的位13至位O的二进制数;第五组合数据线205位宽为6位,为第三先入先出缓存器202输出的34位数据中当位33至位32为二进制数11时,第三先入先出缓存器202中位5至位O的二进制数。
8.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第六组合数据线208中数据格式按从高位到低位的顺序为--位7至位2为第四先入先出缓存器207输出的位5至位O数据,位I为第四先入先出缓存器207的空状态标志,位O为第四先入先出缓存器207的满状态标志。
9.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述第七组合数据线209中数据格式按从高位到低位的顺序为--位45至位O为第四先入先出缓存器207输出的46位数据,位46为第四先入先出缓存器207的空状态标志。
10.根据权利要求1所述的一种多核处理器的DMA控制器,其特征在于:所述组合数据线214中数据格式按从高位到低位的顺序为--位32为第七组合数据线209中位46 二进制数的相反数,位31至位O为第七组合数据线209中位45至位14。
【文档编号】G06F13/28GK103678202SQ201310618950
【公开日】2014年3月26日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】宋立国, 亓洪亮, 盖晨宁, 于立新 申请人:北京时代民芯科技有限公司, 北京微电子技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1