一种双总线内存控制器的制造方法

文档序号:9506140阅读:475来源:国知局
一种双总线内存控制器的制造方法
【技术领域】
[0001]本发明属于计算机芯片设计技术领域,尤其是涉及一种双总线内存控制器。
【背景技术】
[0002]现代计算机系统中,内存已经是必不可少的CPU外围设备,具有极高的外部数据传输率和先进的地址/命令与控制总线拓扑结构。内存控制器也随之广泛使用在各种电子产品的核心芯片中,内存控制器是计算机系统内部控制内存并且通过内存控制器使内存与CHJ之间交换数据的重要组成部分。内存控制器决定了计算机系统的内存性能。。
[0003]目前主流的内存控制器通常只支持一种标准总线接口,而当今高速信息系统中经常会有不同总线接口的IP同时需要访问内存,特别是具有AMBA AXI总线的IP核和具有PLB总线的IP核广泛应用于该系统。
[0004]为了满足这种复杂系统对内存的访问需求,一种简单的做法是在内存控制器外部使用各种总线协议转换桥,即将各种不同的总线通过桥接逻辑,转换到内存控制器支持的外部总线接口标准。这种设计需要至少两次总线标准转换,第一次转换是将某一种总线标准转换成内存控制器支持的外部总线标准;第二次转换是内存控制器内部将外部接收的访问请求转换成内部的访问请求。过多的总线标准转换会严重降低内存访问效率,导致总线的拥堵。

【发明内容】

[0005]有鉴于此,本发明旨在提出一种双总线内存控制器,支持PLB4总线接口和AMBAAXI总线接口的IP同时访问内存,提高内存访问效率。
[0006]为达到上述目的,本发明的技术方案是这样实现的:
[0007]一种双总线内存控制器,除了包括内存控制器内核,还包括:
[0008]PLB总线桥接电路,用于接收PLB总线的访问请求,并将请求转换为DFI总线标准请求;
[0009]AXI总线桥接电路,用于接收AXI总线的访问请求,并将请求转换为DFI总线标准请求;
[0010]DFI总线仲裁电路,用于接收PLB总线桥接电路和AXI总线桥接电路输出的DFI总线标准请求,经过仲裁逻辑后,将DFI总线标准请求发送到内存控制器内核。
[0011]进一步的,所述PLB总线桥接电路包括:
[0012]命令译码逻辑,用来将接收的来自PLB总线的命令和地址进行译码;
[0013]传输请求队列,用于缓存译码后的符合PLB总线协议的读写请求;
[0014]PLB读数据Buffer和PLB写数据Buffer,分别在PLB总线和DFI接口之间缓冲和传输读写数据;
[0015]写控制逻辑和读控制逻辑,根据传输请求队列中的信息分别用于管理PLB写数据Buffer 和 PLB 读数据 Buffer ;
[0016]DFI主模块一,将分别来自传输请求队列和PLB写数据Buffer的请求队列和写数据按照DFI总线标准的时序要求送到DFI接口 ;DFI主模块一还将DFI接口返回的读数据送入PLB读数据Buffer中。
[0017]进一步的,所述AXI总线桥接电路包括:
[0018]读/写请求队列,用于缓存所述符合AXI总线协议的读写请求;
[0019]队列管理逻辑,用来管理读/写请求队列的加载和卸载过程,处理DFI接口的应答和握手信号;
[0020]AXI写地址控制逻辑,负责将AXI总线标准写请求转换为DFI标准写请求,并加入到读/写请求队列,同时还负责进行地址译码和产生AXI写地址通道握手信号;
[0021 ] AXI读地址控制逻辑,负责将AXI总线标准读请求转换为DFI标准读请求,并加入到读/写请求队列,同时还负责进行地址译码和产生AXI读地址通道握手信号;
[0022]AXI读数据Buffer和AXI写数据Buffer,分别在AXI总线和DFI接口之间缓冲和传输读写数据;
[0023]AXI写数据控制逻辑,用于管理AXI写数据Buffer,负责产生AXI写数据通道握手信号,合并数据传输宽度小于128BU的数据,并根据AWID信号进行交织写操作;
[0024]AXI读数据控制逻辑,用于管理AXI读数据Buffer,产生AXI读数据通道握手信号,在AXI读请求的数据传输宽度小于128Bit时,拆分来自DFI接口的128Bit数据;
[0025]Exclusive监控逻辑,用来监控AXI写地址控制逻辑和AXI读地址控制逻辑的AXI总线的Exclusive访问地址,把监控信息传递到AXI写地址控制逻辑,产生应答信号;当Exclusive访问失败时,阻止写请求进入DFI接口。
[0026]DFI主模块二,将接收到的读/写请求队列的请求队列和AXI写数据Buffer的写数据按照DFI总线标准的时序要求送到DFI接口 ;DFI主模块二将返回的读数据送入AXI读数据 Buffer。
[0027]进一步的,所述DFI总线仲裁电路包括DFI命令FIFO和仲裁逻辑,所述仲裁逻辑使用轮转调度算法或固定优先级的方式选择哪一路DFI接口的请求进入内存控制器内核。
[0028]相对于现有技术,本发明具有以下优势:
[0029]对两种总线标准分别设计总线桥接逻辑,将PLB总线协议和AXI总线协议分别转换为内存控制器总线协议,即将外部访问请求转换为内存控制器内部访问请求;至少减少了一次总线协议转换的开销,从而获得更高的内存访问效率;而内存控制器内核逻辑则不需要做任何的修改,保留了原有内存控制器的兼容性;
[0030]再通过仲裁逻辑获得对内存单元的控制权,优化的仲裁逻辑可以无延迟地将选中的DFI接口标准请求送入内存控制器,访问效率几乎没有损失;
[0031]该设计具有灵活性,可扩展性以及复用性,在高速信息系统中有广泛的应用前景。
【附图说明】
[0032]构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0033]图1为本发明实施例所述双总线内存控制器的整体结构原理框图;
[0034]图2为本发明实施例所述PLB总线桥接电路的原理图;
[0035]图3为本发明实施例所述AXI总线桥接电路的原理图;
[0036]图4为本发明实施例所述总线仲裁电路的原理图。
【具体实施方式】
[0037]需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0038]在本发明中所提到的DFI,是指DDR PHY Interface。
[0039]下面将参考附图并结合实施例来详细说明本发明。
[0040]—种双总线内存控制器,如图1所示,包括PLB总线桥接电路10UAXI总线桥接电路102、DFI总线仲裁电路103和内存控制器内核MCP,所述PLB总线桥接电路101接收PLB总线的访问请求,并将请求转换为DFI总线标准请求;所述AXI总线桥接电路102接收AXI总线的访问请求,并将请求转换为DFI总线标准请求;所述DFI总线仲裁电路103接收PLB总线桥接电路101和AXI总线桥接电路102输出的DFI总线标准请求,经过仲裁逻辑后,将DFI总线标准请求发送到内存控制器内核MCP。适用于同时具有PLB总线和AMBAAXI总线的SoC系统。
[0041]如图2所示,所述PLB总线桥接电路101包括命令译码逻辑201,传输请求队列202,PLB写数据Buffer203,写控制逻辑204,PLB读数据Buffer206,读控制逻辑205和DFI主模块一 207 ;
[0042]所述命令译码逻辑201用来将接收的来自PLB总线的命令和地址进行译码;所述传输请求队列202用于缓存译码后的符合PLB总线协议的读写请求,实现延迟写、读请求排序和写后读等功能;所述写控制逻辑204和读控制逻辑205,根据传输请求队列202中的信息分别用于管理PLB写数据Buffer203和PLB读数据Buffer206 ;PLB读数据Buffer206和PLB写数据Buffer203分别在PLB总线和DFI接口之间缓冲和传输读写数据,使用独立的读/写Buffer可以支持同时发生的读写传输,以提高传输带宽。所述DFI主模块一 207将接收到的分别来自传输请求队列202和PLB写数据BufTer203的请求队列和写数据按照DFI总线标准的时序要求送到DFI接口 ;DFI主模块一 207将DFI接口返回的读数据送入PLB读数据 Buffer206 中。
[0043]其中,所述命令译码逻辑201的地址译码范围由软件配置,超出译码范围的地址将会使命令译码逻辑201在PLB总线上产生错误应答信号0_S_ERR。处于地址译码范围内的请求,命令译码逻辑201将在PLB总线上产生有效地0_S_PVAL信号。如果来自PLB的总线请求出现了奇偶校验错误(Parity Error),命令译码逻辑201也不会产生有效的0_S_PVAL信号。如果传输请求队列202或PLB读数据Buffer206或PLB写数据Buffer203已满,则命令译码逻辑201产生0_S_PRETRY信号。
[0044]对应每一个读请求,PLB读数据Buffer206中会分配128字节。PLB总线读请求按照进入PLB总线桥接电路101的顺序出现在DFI接口上。对应每一个写请求,PLB写数据Buffer203中会分配128字节。PLB写请求按照进入PLB总线桥接电路101的顺序
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1