一种用于多处理器的多端口访存控制器及其控制方法技术

技术编号:11401657 阅读:93 留言:0更新日期:2015-05-03 17:46
本发明专利技术涉及一种用于多处理器的多端口访存控制器,包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。本发明专利技术还公开了一种用于多处理器的多端口访存控制器的控制方法。本发明专利技术为多路DMA通道并发请求提供了有效的响应机制,兼顾请求响应的实时性和存储器带宽充分利用的特点,能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间。

【技术实现步骤摘要】
一种用于多处理器的多端口访存控制器及其控制方法
本专利技术涉及数字信号处理
,尤其是一种用于多处理器的多端口访存控制器及其控制方法。
技术介绍
多端口访存控制器的专利技术是为了解决在多处理器核和集成高速外设的片上网中,大量数据的存储和交换工作。对于由SRAM构成的存储器阵列,既要利用其读写端口简单易操作的特性,又要兼顾多通道并发请求仲裁机制的合理性,充分发挥最大的数据带宽。以往多端口访存控制器沿用请求和数据串入串出的特点,对由单口SRAM所构成的存储器,当多路请求同时生效并且冲突时,往往会按优先级选择其中某一路进入存储单元,其余请求则会等待,降低了访存数据的吞吐率。
技术实现思路
本专利技术的首要目的在于提供一种能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间的用于多处理器的多端口访存控制器。为实现上述目的,本专利技术采用了以下技术方案:一种用于多处理器的多端口访存控制器,包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。所述指令通道由第一、二BANK选择模块、第一、二请求合并模块和第一、二串行化模块组成,所述第一BANK选择模块的输入端与外设DMA通道的输出端相连,第一BANK选择模块的输出端与第一请求合并模块的输入端相连,第一请求合并模块的输出端与第一串行化模块的输入端相连;所述第二BANK选择模块的输入端与内核DMA通道的输出端相连,第二BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一、二串行化模块的输出端均与仲裁模块的输入端相连。所述存储器阵列由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成。所述数据通道由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块的输入端相连,数据合并模块的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道、内核DMA通道的输入端相连。所述第一、二请求合并模块的电路相同,第二请求合并模块的输入端与第二BANK选择模块的输出端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连;所述第一请求合并模块由五级二选一数据选择器组成,其中,第一级二选一数据选择器C2的输入端与第一BANK选择模块的输出端相连,第一级二选一数据选择器C2的输出端与第二级二选一数据选择器C4的输入端相连,第二级二选一数据选择器C4的输出端与第三级二选一数据选择器C8的输入端相连,第三级二选一数据选择器C8的输出端与第四级二选一数据选择器C16的输入端相连,第四级二选一数据选择器C16的输出端与第五级二选一数据选择器C32的输入端相连,第五级二选一数据选择器C32的输出端与第一串行化模块的输入端相连;第一级二选一数据选择器C2的个数为外设DMA通道个数和内核DMA通道个数之和的二分之一,第二级二选一数据选择器C4的个数为第一级二选一数据选择器C2的个数的二分之一,第三级二选一数据选择器C8的个数为第二级二选一数据选择器C4的个数的二分之一,第四级二选一数据选择器C16的个数为第三级二选一数据选择器C8的个数的二分之一,第五级二选一数据选择器C32的个数为第四级二选一数据选择器C16的个数的二分之一。所述第一、二串行化模块的电路相同,第二串行化模块的输入端与第二请求合并模块的输出端相连,第二串行化模块的输出端与仲裁模块的输入端相连;所述第一串行化模块由多个寄存器和多个二选一数据选择器交替排序组成,寄存器和二选一数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个二选一数据选择器的第一输入端均接第一请求合并模块的输出端,各个二选一数据选择器的第二输入端接与其相邻的寄存器的输出端Q端,各个二选一数据选择器的控制端stall接倒数第二个寄存器的输出端Q端,各个二选一数据选择器的输出端接与其相邻的寄存器的输入端D端,各个寄存器的控制端HOLD端与仲裁模块的仲裁结果输出端arbt端相连,最后一个寄存器的输出端Q端作为第一串行化模块的输出端与仲裁模块的输入端相连。所述数据合并模块由多个寄存器和多个三十二选一数据选择器交替排序组成,寄存器和数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个数据选择器的输入端均接数据排序模块的输出端,各个数据选择器的输出端均接与其相邻的寄存器的输入端D端,各个数据选择器的控制端stall接外设DMA通道、内核DMA通道的输出端,各个寄存器的输出端Q端作为数据合并模块的输出端与数据输出缓冲模块的输入端相连。本专利技术的另一目的在于提供一种用于多处理器的多端口访存控制器的控制方法,该方法包括下列顺序的步骤:(1)指令通道接收外设DMA通道、内核DMA通道的读/写请求,按其地址中BANK字段进行选择性接收,将各通道请求紧密排列,并将多个请求逐周期向仲裁模块输出;(2)仲裁模块对外设DMA通道、内核DMA通道访问同一BANK的请求做优先级选择,并将优先级高的请求选择至存储器阵列的输入端口,若为写请求,则写入存储器阵列后完成,否则,进入下一步;(3)数据通道接收存储器阵列的数据输出,并按数据所对应的DMA通道ID号进行选择,将各BANK数据紧密排列,并将多周期内各存储器BANK输出的数据按时间先后排列在一起,再将各BANK返回数据串行化后输出至DMA通道,DMA通道根据数据ID字段匹配识别读请求。指令通道中的BANK选择模块将接收到的各DMA通道请求,按其地址中BANK字段选择性接收,若地址非属于对应BANK,则输出空请求;接着,请求合并模块接收BANK选择模块的输出,通过多级选择,将各DMA通道请求紧密排列;最后,串行化模块接收请求合并模块的输出,将多个请求逐周期向仲裁模块输出,并生成向DMA通道的暂停信号,即当倒数第二级寄存器输出非0时,暂停DMA通道对应BANK的请求。在进行读操作时,首先,数据通道中的DMA通道选择模块接收所有存储器BANK的数据输出,并按数据所对应的DMA通道ID号进行选择;接着,数据排序模块接收DMA通道选择模块的输出,通过多级选择,将各存储器BANK数据紧密排列;接着,数据合并模块接收数据排序模块的输出,将多周期内各存储器BANK输出的数据按时间先后排列在一起;最后,数据输出缓冲模块接收数据合并模块的输出,将各存储器BANK返回数据串行化后输出至外设DMA通道、内核DMA通道,外设DMA通道、内核DMA通道根据数据ID字段匹配识别读请求。由上述技术方案可知,本专利技术在指令通道中将同一时刻多通道的请求选择至目标存储器BANK,后经并串行化模块输出至仲裁模块,在获取仲裁权后将读写请求选择至相应存储器输入端口;对于各存储器BANK返回的读数据,同样按照其所对本文档来自技高网...
一种用于多处理器的多端口访存控制器及其控制方法

【技术保护点】
一种用于多处理器的多端口访存控制器,其特征在于:包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。

【技术特征摘要】
1.一种用于多处理器的多端口访存控制器,其特征在于:包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连;所述指令通道由第一、二BANK选择模块、第一、二请求合并模块和第一、二串行化模块组成,所述第一BANK选择模块的输入端与外设DMA通道的输出端相连,第一BANK选择模块的输出端与第一请求合并模块的输入端相连,第一请求合并模块的输出端与第一串行化模块的输入端相连;所述第二BANK选择模块的输入端与内核DMA通道的输出端相连,第二BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一、二串行化模块的输出端均与仲裁模块的输入端相连。2.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述存储器阵列由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成。3.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述数据通道由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块的输入端相连,数据合并模块的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道、内核DMA通道的输入端相连。4.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述第一、二请求合并模块的电路相同,第二请求合并模块的输入端与第二BANK选择模块的输出端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连;所述第一请求合并模块由五级二选一数据选择器组成,其中,第一级二选一数据选择器C2的输入端与第一BANK选择模块的输出端相连,第一级二选一数据选择器C2的输出端与第二级二选一数据选择器C4的输入端相连,第二级二选一数据选择器C4的输出端与第三级二选一数据选择器C8的输入端相连,第三级二选一数据选择器C8的输出端与第四级二选一数据选择器C16的输入端相连,第四级二选一数据选择器C16的输出端与第五级二选一数据选择器C32的输入端相连,第五级二选一数据选择器C32的输出端与第一串行化模块的输入端相连;第一级二选一数据选择器C2的个数为外设DMA通道个数和内核DMA通道个数之和的二分之一,第二级二选一数据选择器C4的个数为第一级二选一数据选择器C2的个数的二分之一,第三级二选一数据选择器C8的个数为第二级二选一数据选择器C4的个数的二分之一,第四级二选一数据选择器C16的个数为第三级二选一数据选择器C8的个数的二分之一,第五级二选一数据选择器C32的个数为第四级二选一数据选择器C16的个数的二分之一。5.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述第一、二串行化模块的电路相同,第二串行化模块的输入端与第二请求合并模块的输出端相连,第二串行化模块的...

【专利技术属性】
技术研发人员:胡孔阳刘小明龚晓华刘玉胡海生王媛
申请(专利权)人:中国电子科技集团公司第三十八研究所
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1