CN104572519A - 一种用于多处理器的多端口访存控制器及其控制方法 - Google Patents

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

Info

Publication number
CN104572519A
CN104572519A CN201410801564.5A CN201410801564A CN104572519A CN 104572519 A CN104572519 A CN 104572519A CN 201410801564 A CN201410801564 A CN 201410801564A CN 104572519 A CN104572519 A CN 104572519A
Authority
CN
China
Prior art keywords
module
output terminal
data
input end
bank
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.)
Granted
Application number
CN201410801564.5A
Other languages
English (en)
Other versions
CN104572519B (zh
Inventor
胡孔阳
刘小明
龚晓华
刘玉
胡海生
王媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Core Century Technology Co Ltd
Original Assignee
CETC 38 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 38 Research Institute filed Critical CETC 38 Research Institute
Priority to CN201410801564.5A priority Critical patent/CN104572519B/zh
Publication of CN104572519A publication Critical patent/CN104572519A/zh
Application granted granted Critical
Publication of CN104572519B publication Critical patent/CN104572519B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Abstract

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

Description

一种用于多处理器的多端口访存控制器及其控制方法
技术领域
本发明涉及数字信号处理技术领域,尤其是一种用于多处理器的多端口访存控制器及其控制方法。
背景技术
多端口访存控制器的发明是为了解决在多处理器核和集成高速外设的片上网中,大量数据的存储和交换工作。对于由SRAM构成的存储器阵列,既要利用其读写端口简单易操作的特性,又要兼顾多通道并发请求仲裁机制的合理性,充分发挥最大的数据带宽。
以往多端口访存控制器沿用请求和数据串入串出的特点,对由单口SRAM所构成的存储器,当多路请求同时生效并且冲突时,往往会按优先级选择其中某一路进入存储单元,其余请求则会等待,降低了访存数据的吞吐率。
发明内容
本发明的首要目的在于提供一种能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间的用于多处理器的多端口访存控制器。
为实现上述目的,本发明采用了以下技术方案:一种用于多处理器的多端口访存控制器,包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。
所述指令通道由第一、二BANK选择模块、第一、二请求合并模块和第一、二串行化模块组成,所述第一BANK选择模块的输入端与外设DMA通道的输出端相连,第一BANK选择模块的输出端与第一请求合并模块的输入端相连,第一请求合并模块的输出端与第一串行化模块的输入端相连;所述第二BANK选择模块的输入端与内核DMA通道的输出端相连,第二BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一、二串行化模块的输出端均与仲裁模块的输入端相连。
所述存储器阵列由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成。
所述数据通道由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块的输入端相连,数据合并模块的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道、内核DMA通道的输入端相连。
所述第一、二请求合并模块的电路相同,所述第一请求合并模块由五级二选一数据选择器组成,其中,第一级二选一数据选择器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通道一端,需要按照数据所附加的ID号与请求ID相匹配。本发明为多路DMA通道并发请求提供了有效的响应机制,兼顾请求响应的实时性和存储器带宽充分利用的特点,能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间。
附图说明
图1为本发明的电路框图。
图2、3、4、5为本发明中存储器阵列、第一请求合并模块、第一串行化模块、数据合并模块的电路原理图。
具体实施方式
一种用于多处理器的多端口访存控制器,包括指令通道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请求通道均在这样一组逻辑。
如图1所示,所述指令通道30由第一、二BANK选择模块、第一请求合并模块31、第二请求合并模块、第一串行化模块32和第二串行化模块组成,所述第一BANK选择模块的输入端与外设DMA通道10的输出端相连,第一BANK选择模块的输出端与第一请求合并模块31的输入端相连,第一请求合并模块31的输出端与第一串行化模块32的输入端相连;所述第二BANK选择模块的输入端与内核DMA通道20的输出端相连,第二BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一串行化模块32、第二串行化模块的输出端均与仲裁模块40的输入端相连。多端口访存控制器连接多处理器内核DMA通道20,图1中的MacroN DMA,和外设DMA通道10,图1中的IO to IO DMA,内核DMA通道20之间优先级平等,外设DMA通道10之间优先级平等,仲裁逻辑存在于内核DMA通道20和外设DMA通道10之间。对于每个存储器BANK,各通道请求均经过指令通道30中的BANK选择、请求排序、串行化至仲裁模块40,再经仲裁选择后至存储器输入端口;对于每个DMA请求通道,读出数据均经输出寄存后,由数据通道60中的DMA通道选择、数据排序、数据合并、输出缓冲等模块返回。
如图1、2所示,所述存储器阵列50由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成,图2中所举例的单口SRAM存储器BANK深度为8KB,数据位宽为32bit。所述数据通道60由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块61和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列50的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块61的输入端相连,数据合并模块61的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道10、内核DMA通道20的输入端相连。
如图3所示,所述第一请求合并模块31和第二请求合并模块的电路相同,所述第一请求合并模块31由五级二选一数据选择器组成,其中,第一级二选一数据选择器C2的输入端与第一BANK选择模块的输出端相连,第一级二选一数据选择器C2的输出端与第二级二选一数据选择器C4的输入端相连,第二级二选一数据选择器C4的输出端与第三级二选一数据选择器C8的输入端相连,第三级二选一数据选择器C8的输出端与第四级二选一数据选择器C16的输入端相连,第四级二选一数据选择器C16的输出端与第五级二选一数据选择器C32的输入端相连,第五级二选一数据选择器C32的输出端与第一串行化模块的输入端相连;第一级二选一数据选择器C2的个数为外设DMA通道10个数和内核DMA通道20个数之和的二分之一,本实施例为16个,第二级二选一数据选择器C4的个数为第一级二选一数据选择器C2的个数的二分之一,第三级二选一数据选择器C8的个数为第二级二选一数据选择器C4的个数的二分之一,第四级二选一数据选择器C16的个数为第三级二选一数据选择器C8的个数的二分之一,第五级二选一数据选择器C32的个数为第四级二选一数据选择器C16的个数的二分之一。32个DMA请求通道通过请求合并模块后,可以实现请求的紧密排列,即通过此模块可以挤掉存在于32个请求之间的空指令。对于32个通道的排序需要5级选择,第一级C2实现两输入请求之间的排序,按照向低序号压缩的原则,将无效的请求选择至O1,有效请求选择至O0,若两输入均为有效或无效,则输入和输入保持一致。对于第二级C2和后续三级均与第一级相类似。
如图4所示,所述第一串行化模块32和第二串行化模块的电路相同,所述第一串行化模块32由多个寄存器和多个二选一数据选择器交替排序组成,寄存器和二选一数据选择器的个数均为外设DMA通道10个数和内核DMA通道20个数之和,本实施例为32个,各个二选一数据选择器的第一输入端均接第一请求合并模块31的输出端,各个二选一数据选择器的第二输入端接与其相邻的寄存器的输出端Q端,各个二选一数据选择器的控制端stall接倒数第二个寄存器的输出端Q端,各个二选一数据选择器的输出端接与其相邻的寄存器的输入端D端,各个寄存器的控制端HOLD端与仲裁模块40的仲裁结果输出端arbt端相连,最后一个寄存器的输出端Q端作为第一串行化模块32的输出端与仲裁模块40的输入端相连。串行化模块将请求同一存储器BANK的32个指令串行化后输入仲裁模块40,o0\o1\o2…\o30\o31为请求合并模块的输出,reg0的Q端为访存命令串行化的输出,data0直接与仲裁模块40的输入端相连,arbt为仲裁模块40输出的仲裁结果,影响各级寄存器的暂停,产生的stall信号用于停顿DMA通道向相应的存储器BANK发送访存指令。
如图5所示,所述数据合并模块61由多个寄存器和多个三十二选一数据选择器交替排序组成,寄存器和数据选择器的个数均为外设DMA通道10个数和内核DMA通道20个数之和,本实施例为32个,各个数据选择器的输入端均接数据排序模块的输出端,各个数据选择器的输出端均接与其相邻的寄存器的输入端D端,各个数据选择器的控制端stall接外设DMA通道10、内核DMA通道20的输出端,各个寄存器的输出端Q端作为数据合并模块61的输出端与数据输出缓冲模块的输入端相连。数据合并模块61用于将多周期内各存储器BANK输出的数据进行合并,合并的数据均为同一DMA通道发出的读请求响应,这些响应数据可能来自不同的存储器BANK。由于DMA通道每周期只可以接收一个数据,因而在数据合并后,还需要一个数据输出缓冲模块。
以下结合图1至5对本发明作进一步的说明。
本控制方法包括:(1)指令通道30接收外设DMA通道10、内核DMA通道20的读/写请求,按其地址中BANK字段进行选择性接收,将各通道请求紧密排列,并将多个请求逐周期向仲裁模块40输出;(2)仲裁模块40对外设DMA通道10、内核DMA通道20访问同一BANK的请求做优先级选择,并将优先级高的请求选择至存储器阵列50的输入端口,若为写请求,则写入存储器阵列50后完成,否则,进入下一步;(3)数据通道60接收存储器阵列50的数据输出,并按数据所对应的DMA通道ID号进行选择,将各BANK数据紧密排列,并将多周期内各存储器BANK输出的数据按时间先后排列在一起,再将各BANK返回数据串行化后输出至DMA通道, DMA通道根据数据ID字段匹配识别读请求。
进一步地,指令通道30中的BANK选择模块将接收到的各DMA通道请求,按其地址中BANK字段选择性接收,若地址非属于对应BANK,则输出空请求;接着,请求合并模块接收BANK选择模块的输出,通过多级选择,将各DMA通道请求紧密排列;最后,串行化模块接收请求合并模块的输出,将多个请求逐周期向仲裁模块40输出,并生成向DMA通道的暂停信号,即当倒数第二级寄存器输出非0时,暂停DMA通道对应BANK的请求。
进一步地,在进行读操作时,首先,数据通道60中的DMA通道选择模块接收所有存储器BANK的数据输出,并按数据所对应的DMA通道ID号进行选择;接着,数据排序模块接收DMA通道选择模块的输出,通过多级选择,将各存储器BANK数据紧密排列;接着,数据合并模块61接收数据排序模块的输出,将多周期内各存储器BANK输出的数据按时间先后排列在一起;最后,数据输出缓冲模块接收数据合并模块61的输出,将各存储器BANK返回数据串行化后输出至外设DMA通道10、内核DMA通道20,外设DMA通道10、内核DMA通道20根据数据ID字段匹配识别读请求。本发明可以不间断的接受某个DMA通道的多个请求,最多32个,此种情况发生在32个请求分别访问32个存储器BANK,同时串行化模块寄存器全部为空,如果请求是读请求,则读数据可能同一时刻全部从存储器中输出;而DMA同一时刻只可以接受一个读数据,所以,返回数据也需要一个串行化模块。
本发明支持多块数据存储器BLOCK、存储器BANK操作,多端口访存控制器所支持的最大数据带宽应等于存储器位宽*BANK数目*BLOCK数目*时钟频率。本发明支持多请求至存储器的并串转换,以BANK作为存储器最小操作单位,对同一时刻访问同一BANK的读写操作串行化为访问队列,并在存储器输入端逐周期完成读写操作。在DMA通道中为读写请求分配唯一标识的ID号,以匹配读响应乱序输出,分配的ID号为有限字段,可循环重复利用。
本发明实现了与多路请求通道接口的握手以及请求和响应的并串转换;按通道优先级要求,响应存储器数据读写操作,保证诸如内核请求通道之类的高优先级请求优先获得响应,外设请求通道之类的低优先级请求在高优先级传输间隙获得响应,仲裁模块40的输出影响对应请求通道的握手和暂停,平衡存储器输入端口带宽与DMA请求通道带宽。
综上所述,本发明在指令通道30中将同一时刻多通道的请求选择至目标存储器BANK,后经并串行化模块输出至仲裁模块40,在获取仲裁权后将读写请求选择至相应存储器输入端口;对于各存储器BANK返回的读数据,同样按照其所对应的DMA通道号选择至相应的DMA数据通道60,再经数据合并和串行化后输出。由于经多端口访存控制器输出的读数据顺序与输入的读请求不一定相同,在DMA通道一端,需要按照数据所附加的ID号与请求ID相匹配。本发明为多路DMA通道并发请求提供了有效的响应机制,兼顾请求响应的实时性和存储器带宽充分利用的特点,能够提高访存数据的吞吐率,减小因为地址冲突所造成的等待时间。

Claims (10)

1.一种用于多处理器的多端口访存控制器,其特征在于:包括指令通道,其输入端分别与多处理器的外设DMA通道、内核DMA通道的输出端相连,其输出端与仲裁模块的输入端相连,仲裁模块的输出端与存储器阵列的输入端相连,存储器阵列的输出端与数据通道的输入端相连,数据通道的输出端分别与多处理器的外设DMA通道、内核DMA通道的输入端相连。
2.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述指令通道由第一、二BANK选择模块、第一、二请求合并模块和第一、二串行化模块组成,所述第一BANK选择模块的输入端与外设DMA通道的输出端相连,第一BANK选择模块的输出端与第一请求合并模块的输入端相连,第一请求合并模块的输出端与第一串行化模块的输入端相连;所述第二BANK选择模块的输入端与内核DMA通道的输出端相连,第二BANK选择模块的输出端与第二请求合并模块的输入端相连,第二请求合并模块的输出端与第二串行化模块的输入端相连,第一、二串行化模块的输出端均与仲裁模块的输入端相连。
3.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述存储器阵列由多个存储器BLOCK组成,每个存储器BLOCK由多个存储器BANK组成。
4.根据权利要求1所述的用于多处理器的多端口访存控制器,其特征在于:所述数据通道由输出寄存器、DMA通道选择模块、数据排序模块、数据合并模块和数据输出缓冲模块组成,所述输出寄存器的输入端与存储器阵列的输出端相连,输出寄存器的输出端与DMA通道选择模块的输入端相连,DMA通道选择模块的输出端与数据排序模块的输入端相连,数据排序模块的输出端与数据合并模块的输入端相连,数据合并模块的输出端与内设第三串行化模块的数据输出缓冲模块的输入端相连,数据缓冲模块的输出端分别与外设DMA通道、内核DMA通道的输入端相连。
5.根据权利要求2所述的用于多处理器的多端口访存控制器,其特征在于:所述第一、二请求合并模块的电路相同,所述第一请求合并模块由五级二选一数据选择器组成,其中,第一级二选一数据选择器C2的输入端与第一BANK选择模块的输出端相连,第一级二选一数据选择器C2的输出端与第二级二选一数据选择器C4的输入端相连,第二级二选一数据选择器C4的输出端与第三级二选一数据选择器C8的输入端相连,第三级二选一数据选择器C8的输出端与第四级二选一数据选择器C16的输入端相连,第四级二选一数据选择器C16的输出端与第五级二选一数据选择器C32的输入端相连,第五级二选一数据选择器C32的输出端与第一串行化模块的输入端相连;第一级二选一数据选择器C2的个数为外设DMA通道个数和内核DMA通道个数之和的二分之一,第二级二选一数据选择器C4的个数为第一级二选一数据选择器C2的个数的二分之一,第三级二选一数据选择器C8的个数为第二级二选一数据选择器C4的个数的二分之一,第四级二选一数据选择器C16的个数为第三级二选一数据选择器C8的个数的二分之一,第五级二选一数据选择器C32的个数为第四级二选一数据选择器C16的个数的二分之一。
6.根据权利要求2所述的用于多处理器的多端口访存控制器,其特征在于:所述第一、二串行化模块的电路相同,所述第一串行化模块由多个寄存器和多个二选一数据选择器交替排序组成,寄存器和二选一数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个二选一数据选择器的第一输入端均接第一请求合并模块的输出端,各个二选一数据选择器的第二输入端接与其相邻的寄存器的输出端Q端,各个二选一数据选择器的控制端stall接倒数第二个寄存器的输出端Q端,各个二选一数据选择器的输出端接与其相邻的寄存器的输入端D端,各个寄存器的控制端HOLD端与仲裁模块的仲裁结果输出端arbt端相连,最后一个寄存器的输出端Q端作为第一串行化模块的输出端与仲裁模块的输入端相连。
7.根据权利要求4所述的用于多处理器的多端口访存控制器,其特征在于:所述数据合并模块由多个寄存器和多个三十二选一数据选择器交替排序组成,寄存器和数据选择器的个数均为外设DMA通道个数和内核DMA通道个数之和,各个数据选择器的输入端均接数据排序模块的输出端,各个数据选择器的输出端均接与其相邻的寄存器的输入端D端,各个数据选择器的控制端stall接外设DMA通道、内核DMA通道的输出端,各个寄存器的输出端Q端作为数据合并模块的输出端与数据输出缓冲模块的输入端相连。
8.一种用于多处理器的多端口访存控制器的控制方法,其特征在于:该方法包括下列顺序的步骤:
(1)指令通道接收外设DMA通道、内核DMA通道的读/写请求,按其地址中BANK字段进行选择性接收,将各通道请求紧密排列,并将多个请求逐周期向仲裁模块输出;
(2)仲裁模块对外设DMA通道、内核DMA通道访问同一BANK的请求做优先级选择,并将优先级高的请求选择至存储器阵列的输入端口,若为写请求,则写入存储器阵列后完成,否则,进入下一步;
(3)数据通道接收存储器阵列的数据输出,并按数据所对应的DMA通道ID号进行选择,将各BANK数据紧密排列,并将多周期内各存储器BANK输出的数据按时间先后排列在一起,再将各BANK返回数据串行化后输出至DMA通道, DMA通道根据数据ID字段匹配识别读请求。
9.根据权利要求8所述的一种用于多处理器的多端口访存控制器的控制方法,其特征在于:指令通道中的BANK选择模块将接收到的各DMA通道请求,按其地址中BANK字段选择性接收,若地址非属于对应BANK,则输出空请求;接着,请求合并模块接收BANK选择模块的输出,通过多级选择,将各DMA通道请求紧密排列;最后,串行化模块接收请求合并模块的输出,将多个请求逐周期向仲裁模块输出,并生成向DMA通道的暂停信号,即当倒数第二级寄存器输出非0时,暂停DMA通道对应BANK的请求。
10.根据权利要求8所述的一种用于多处理器的多端口访存控制器的控制方法,其特征在于:在进行读操作时,首先,数据通道中的DMA通道选择模块接收所有存储器BANK的数据输出,并按数据所对应的DMA通道ID号进行选择;接着,数据排序模块接收DMA通道选择模块的输出,通过多级选择,将各存储器BANK数据紧密排列;接着,数据合并模块接收数据排序模块的输出,将多周期内各存储器BANK输出的数据按时间先后排列在一起;最后,数据输出缓冲模块接收数据合并模块的输出,将各存储器BANK返回数据串行化后输出至外设DMA通道、内核DMA通道,外设DMA通道、内核DMA通道根据数据ID字段匹配识别读请求。
CN201410801564.5A 2014-12-22 2014-12-22 一种用于多处理器的多端口访存控制器及其控制方法 Active CN104572519B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410801564.5A CN104572519B (zh) 2014-12-22 2014-12-22 一种用于多处理器的多端口访存控制器及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410801564.5A CN104572519B (zh) 2014-12-22 2014-12-22 一种用于多处理器的多端口访存控制器及其控制方法

Publications (2)

Publication Number Publication Date
CN104572519A true CN104572519A (zh) 2015-04-29
CN104572519B CN104572519B (zh) 2017-06-27

Family

ID=53088635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410801564.5A Active CN104572519B (zh) 2014-12-22 2014-12-22 一种用于多处理器的多端口访存控制器及其控制方法

Country Status (1)

Country Link
CN (1) CN104572519B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600044A (zh) * 2018-03-30 2018-09-28 新华三信息安全技术有限公司 一种接口状态获取方法、装置及设备
CN110865953A (zh) * 2019-10-08 2020-03-06 华南师范大学 异步拷贝方法和装置
CN111401541A (zh) * 2020-03-10 2020-07-10 湖南国科微电子股份有限公司 一种数据传输控制方法及装置
WO2023123915A1 (zh) * 2021-12-27 2023-07-06 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739432B1 (en) * 2005-09-02 2010-06-15 Pmc-Sierra, Inc. Command switching for multiple initiator access to a SATA drive
CN102521201A (zh) * 2011-11-16 2012-06-27 刘大可 多核数字信号处理器片上系统及数据传输方法
CN104035898A (zh) * 2014-06-04 2014-09-10 同济大学 一种基于vliw类型处理器的访存系统
CN204390229U (zh) * 2014-12-22 2015-06-10 中国电子科技集团公司第三十八研究所 一种用于多处理器的多端口访存控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739432B1 (en) * 2005-09-02 2010-06-15 Pmc-Sierra, Inc. Command switching for multiple initiator access to a SATA drive
CN102521201A (zh) * 2011-11-16 2012-06-27 刘大可 多核数字信号处理器片上系统及数据传输方法
CN104035898A (zh) * 2014-06-04 2014-09-10 同济大学 一种基于vliw类型处理器的访存系统
CN204390229U (zh) * 2014-12-22 2015-06-10 中国电子科技集团公司第三十八研究所 一种用于多处理器的多端口访存控制器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600044A (zh) * 2018-03-30 2018-09-28 新华三信息安全技术有限公司 一种接口状态获取方法、装置及设备
CN110865953A (zh) * 2019-10-08 2020-03-06 华南师范大学 异步拷贝方法和装置
CN111401541A (zh) * 2020-03-10 2020-07-10 湖南国科微电子股份有限公司 一种数据传输控制方法及装置
WO2023123915A1 (zh) * 2021-12-27 2023-07-06 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN104572519B (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN105468547B (zh) 一种基于axi总线的便捷可配置帧数据存取控制系统
KR100840140B1 (ko) 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법
CN103778013B (zh) 一种多通道Nand Flash控制器及其控制方法
US11269796B2 (en) Acceleration control system based on binarization algorithm, chip, and robot
WO2020078470A1 (zh) 片上网络数据处理方法及装置
CN101236774B (zh) 单端口存储器实现多端口存储功能的装置和方法
CN103246625B (zh) 一种数据与地址共用引脚自适应调整访存粒度的方法
CN101331464A (zh) 存储区域分配系统及方法和控制装置
CN104572519A (zh) 一种用于多处理器的多端口访存控制器及其控制方法
CN109857702B (zh) 一种基于机器人的激光雷达数据读写控制系统及芯片
CN108279927A (zh) 可调整指令优先级的多通道指令控制方法及系统、控制器
CN111459856B (zh) 一种数据传输装置及传输方法
CN104317770A (zh) 用于众核处理系统的数据存储结构及数据访问方法
CN106776458B (zh) 基于fpga和hpi的dsp间的通信装置及通信方法
CN102508803A (zh) 一种矩阵转置存储控制器
CN113971143A (zh) 一种内存控制器、物联网芯片及电子设备
CN103150216A (zh) 一种SoC集成的多端口DDR2/3调度器及调度方法
CN114297097B (zh) 一种众核可定义分布式共享存储结构
CN211403419U (zh) 基于二值化算法的加速控制系统、芯片及机器人
CN204390229U (zh) 一种用于多处理器的多端口访存控制器
CN102591817B (zh) 一种多总线桥控制器及其实现方法
CN106502923B (zh) 阵列处理器中簇内存储访问行列两级交换电路
CN103678202A (zh) 一种多核处理器的dma控制器
CN106569968B (zh) 用于可重构处理器的阵列间数据传输结构与调度方法
CN101639692B (zh) 多可编程逻辑器件的控制方法、设备和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191014

Address after: 5 / F, airborne center, 38 new area, No. 199, Xiangzhang Avenue, hi tech Zone, Hefei City, Anhui Province 230000

Patentee after: Anhui core Century Technology Co., Ltd.

Address before: 230088, 199, camphor Road, hi tech Zone, Anhui, Hefei

Patentee before: No.38 Inst., China Electronic Sci. & Tech. Group Co.

TR01 Transfer of patent right