一种用于多处理器的多端口访存控制器的制造方法

文档序号:8681713阅读:335来源:国知局
一种用于多处理器的多端口访存控制器的制造方法
【技术领域】
[0001]本实用新型涉及数字信号处理技术领域,尤其是一种用于多处理器的多端口访存控制器。
【背景技术】
[0002]多端口访存控制器的实用新型是为了解决在多处理器核和集成高速外设的片上网中,大量数据的存储和交换工作。对于由SRAM构成的存储器阵列,既要利用其读写端口简单易操作的特性,又要兼顾多通道并发请求仲裁机制的合理性,充分发挥最大的数据带宽。
[0003]以往多端口访存控制器沿用请求和数据串入串出的特点,对由单口 SRAM所构成的存储器,当多路请求同时生效并且冲突时,往往会按优先级选择其中某一路进入存储单元,其余请求则会等待,降低了访存数据的吞吐率。
【实用新型内容】
[0004]本实用新型的目的在于提供一种能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间的用于多处理器的多端口访存控制器。
[0005]为实现上述目的,本实用新型采用了以下技术方案:一种用于多处理器的多端口访存控制器,包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。
[0006]所述指令通道由第一、二 BANK选择模块、第一请求合并模块、第二请求合并模块、第一串行化模块和第二串行化模块组成,所述第一 BANK选择模块的输入端与外设DMA通道的输出端相连,第一 BANK选择模块的输出端与第一请求合并模块的输入端相连,第一请求合并模块的输出端与第一串行化模块的输入端相连;所述第二 BANK选择模块的输入端与内核DMA通道的输出端相连,第二 BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一串行化模块、第二串行化模块的输出端均与仲裁模块的输入端相连。
[0007]所述存储器阵列由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成。
[0008]所述数据通道由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块的输入端相连,数据合并模块的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道、内核DMA通道的输入端相连。
[0009]所述第一请求合并模块、第二请求合并模块的电路相同,所述第一请求合并模块由五级二选一数据选择器组成,其中,第一级二选一数据选择器C2的输入端与第一 BANK选择模块的输出端相连,第一级二选一数据选择器C2的输出端与第二级二选一数据选择器C4的输入端相连,第二级二选一数据选择器C4的输出端与第三级二选一数据选择器CS的输入端相连,第三级二选一数据选择器CS的输出端与第四级二选一数据选择器C16的输入端相连,第四级二选一数据选择器C16的输出端与第五级二选一数据选择器C32的输入端相连,第五级二选一数据选择器C32的输出端与第一串行化模块的输入端相连;第一级二选一数据选择器C2的个数为外设DMA通道个数和内核DMA通道个数之和的二分之一,第二级二选一数据选择器C4的个数为第一级二选一数据选择器C2的个数的二分之一,第三级二选一数据选择器CS的个数为第二级二选一数据选择器C4的个数的二分之一,第四级二选一数据选择器C16的个数为第三级二选一数据选择器CS的个数的二分之一,第五级二选一数据选择器C32的个数为第四级二选一数据选择器C16的个数的二分之一。
[0010]所述第一串行化模块、第二串行化模块的电路相同,所述第一串行化模块由多个寄存器和多个二选一数据选择器交替排序组成,寄存器和二选一数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个二选一数据选择器的第一输入端均接第一请求合并模块的输出端,各个二选一数据选择器的第二输入端接与其相邻的寄存器的输出端Q端,各个二选一数据选择器的控制端stall接倒数第二个寄存器的输出端Q端,各个二选一数据选择器的输出端接与其相邻的寄存器的输入端D端,各个寄存器的控制端HOLD端与仲裁模块的仲裁结果输出端arbt端相连,最后一个寄存器的输出端Q端作为第一串行化模块的输出端与仲裁模块的输入端相连。
[0011]所述数据合并模块由多个寄存器和多个三十二选一数据选择器交替排序组成,寄存器和数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个数据选择器的输入端均接数据排序模块的输出端,各个数据选择器的输出端均接与其相邻的寄存器的输入端D端,各个数据选择器的控制端stall接外设DMA通道、内核DMA通道的输出端,各个寄存器的输出端Q端作为数据合并模块的输出端与数据输出缓冲模块的输入端相连。
[0012]由上述技术方案可知,本实用新型在指令通道中将同一时刻多通道的请求选择至目标存储器BANK,后经并串行化模块输出至仲裁模块,在获取仲裁权后将读写请求选择至相应存储器输入端口 ;对于各存储器BANK返回的读数据,同样按照其所对应的DMA通道号选择至相应的DMA数据通道,再经数据合并和串行化后输出。由于经多端口访存控制器输出的读数据顺序与输入的读请求不一定相同,在DMA通道一端,需要按照数据所附加的ID号与请求ID相匹配。本实用新型为多路DMA通道并发请求提供了有效的响应机制,兼顾请求响应的实时性和存储器带宽充分利用的特点,能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间。
【附图说明】
[0013]图1为本实用新型的电路框图。
[0014]图2、3、4、5为本实用新型中存储器阵列、第一请求合并模块、第一串行化模块、数据合并模块的电路原理图。
【具体实施方式】
[0015]一种用于多处理器的多端口访存控制器,包括指令通道30,其输入端分别与多处理器的外设DMA通道10、内核DMA通道20的输出端相连,其输出端与仲裁模块40的输入端相连,仲裁模块40的输出端与存储器阵列50的输入端相连,存储器阵列50的输出端与数据通道60的输入端相连,数据通道60的输出端分别与多处理器的外设DMA通道10、内核DMA通道20的输入端相连,如图1所示。指令通道30用于连接多路DMA请求接口,针对每个存储器BANK串行化读写请求,对于每一个存储器BANK均存在这样一组逻辑;仲裁逻模块用于按固定优先级判定仲裁结果;存储器阵列50是由单口 SRAM所组成的存储器BANK和存储器BLOCK,用于响应经仲裁模块40输出的读写数据请求;数据通道60,用于连接存储器数据输出端口,针对每个DMA请求通道合并读出数据并将其串行化后输出,对于每一个DMA请求通道均在这样一组逻辑。
[0016]如图1所示,所述指令通道30由第一、二 BANK选择模块、第一请求合并模块31、第二请求合并模块、第一串行化模块32和第二串行化模块组成,所述第一 BANK选择模块的输入端与外设DMA通道10的输出端相连,第一 BANK选择模块的输出端与第一请求合并模块31的输入端相连,第一请求合并模块31的输出端与第一串行化模块32的输入端相连;所述第二 BANK选择模块的输入端与内核DMA通道20的输出端相连,第二 BANK选择模块的输出端与第二请求合并模块
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1