一种基于FPGA的乱序内存控制器及其实现方法技术

技术编号:8366750 阅读:236 留言:0更新日期:2013-02-28 05:08
本发明专利技术公开了一种基于FPGA的乱序内存控制器及其实现方法,主要包括前端部分和后端部分,前端部分主要用于负责处理系统总线请求和仲裁、并负责将读写请求信息传递给后端和对数据通路的传输实现;后端部分主要用于实现基于乱序内存控制器的硬件控制逻辑,包括内存映射逻辑,标签管理逻辑和内存控制命令生成逻辑等;还包括穿过前端部分和后端部分、且用于提供单独的读通道和写通道的数据路径。该基于FPGA的乱序内存控制器及其实现方法,可以实现操作过程灵活、空操作指令少、延迟周期短和工作效率高的优点。

【技术实现步骤摘要】

本专利技术涉及计算机内存控制器
,具体地,涉及一种基于FPGA的乱序内存控制器及其实现方法
技术介绍
在过去的数十年中,随机存储器(random access memory,简称RAM)—直是计算机系统的基本组成部分,一般用于系统处理中的中间存储。在带宽方面,根据带宽、功能消耗和制造成本等不同的要求,有不同类型的RAM。例如,有两个通用的RAM类型,一个是具有静止存取功能的内存(Static RAM,简称SRAM),一个是动态随机存取存储器(Dynamic Random Access Memory,S卩Dynamic RAM,简称DRAM)。SRAM由1970年推出,通常用于快速片上的内存,可以低延迟访问,所以SRAM经常被使用的内存结构中较高层次中的高速缓冲存储器和便签存储器中用以提高性能。DRAM是IBM的Robert Dennard在1968年专利技术的,价格要远远低于SRAM,DRAM在制造中优化过程工艺技术,使其能够达到很高的密度和速度。在近十年内,DRAM的设计一直在不断地改进,一个时钟周期添加到之前的异步 DRAM接口减少在突发传输中的内存控制的同步的开销,这种类型的内存被称为同步DRAM, 也就是同步动态随机存储器(Synchronous Dynamic Random Access Me mory,简称SDRAM)。 在2001年,一种新一代的SDRAM面世,带宽有了显著的提高,这些内存同时在时钟上升沿和下降沿时传输数据,所以被称为双倍速率同步动态随机存储器(Double Data Rate SDRAM, 简称DDR SDRAM)的缩写,第二代和第三代分别被称为四倍资料率同步动态随机存取内存 (Double Data Rate 2,简称DDR2)和八倍资料率同步动态随机存取内存(DDR3 SDRAM,简称 DDR3,是DDR2 SDRAM的后继者)虽然设计非常类似,但是分别扩展到更高的时钟周期和带宽。对SDRAM内存控制器接口的实现,是通过SDRAM协议来实现的,这个协议包括 6个命令,分别是无操作命令(No operation)、激活操作命令(Activate)、写操作命令 (Write)、读操作命令(Read)、预读取操作命令(Precharge)和刷新操作命令(Refresh)。其中,No operation命令是表示没有操作命令,防止不需要的命令在空闲或者等待时注册。Active命令是打开内存队列中的一行和保存这个行到行缓存中。一旦行请求被打开,读和写命令可以在行缓存发出请求访问列,这些突发长度都是4个或8个字。当内存初始化的时候DDR2内存的突发长度就开始运作,DDR3则允许在每次访问的时候突发长度发生改变。一个突发长度为4则仅支持DDR3设备上的突发突变机制,比如一个突发突变的请求在同一时间作为一个8个字的突发,但是只能在一半的时间内传输数据。Read命令通常用来初始一个突发的读访问一个有效的行。读命令可以发出一个自动预充电表不,在传输完成后自动预充电。Write命令通常用来初始一个突发的写访问一个有效的行。写命令可以发出一个自动预充电表不,在传输完成后自动预充电。Precharge命令正好与Activate命令相反,它复制了在内存队列中行缓存的内容回到它所在的地方。Refresh命令为了防止由于泄漏的数据丢失,必须经常给电容器充电。多刷新命令时要刷新整个存储阵列,每个命令只刷新电容器的一小部分。所有的bank都必须预充电在刷新命令发出之前。内存控制器是计算机系统内部控制内存并且通过内存控制器使内存与CPU之间交换数据的重要组成部分。内存控制器决定了计算机系统所能使用的最大内存容量、内存 BANK数、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响。随着计算机技术发展,内存控制器分为传统型和整合型两种。传统的计算机系统 (PU要和内存进行数据交换,需要经过多级传输,数据延迟比较大而影响计算机系统的整体性能;整合型内存控制器直接与CPU进行数据传输,提高计算机系统的整体性能,整合型内存控制器是今后的发展方向,而且其技术也越来越完善,内存控制器的工作方式和实现将决定计算机系统的整体性能。大多数内存控制器的工作方式包括三个主要模块接口控制,命令发生器和数据通路。各种不同的内存控制器根本的不同在于其内部的逻辑功能设计,大多数内存控制器的内部逻辑功能设计都是顺序执行请求命令来对其bank的读写和突发操作,在非连续读写操作中每次都需要激活行地址,增加了空操作指令延时,从而影响系统的整体性能。大多数内存控制器的内部逻辑的功能设计都是按顺序执行请求命令,对bank进行读写和突发操作,这样就在非连续性的读写操作中每次都必须激活行地址,从而增加了空操作指令的延时,造成了数据延迟比较大,最终影响了计算机系统的整体性能。
技术实现思路
本专利技术的目的在于,针对上述问题,提出一种基于FPGA的乱序内存控制器,以实现操作过程灵活、空操作指令少、延迟周期短和工作效率高的优点。本专利技术的第二目的在于,提出一种基于FPGA的乱序内存控制器的实现方法。为实现上述目的,本专利技术采用的技术方案是一种基于FPGA的乱序内存控制器, 主要包括前端部分用于基于系统的读写内存请求命令,主要负责系统的总线请求和仲裁,并向后端部分发送发送读写请求命令、数据和地址信息等;后端部分用于负责实现基于FPGA的乱序内存控制器的包括内存映射逻辑、标签管理逻辑和内存命令生成器逻辑的硬件控制逻辑;在后端部分中,内存命令生成器输出的命令行信号接口,直接与SDRAM器件的输入接口连接,用于实现对SDRAM的读写控制;以及, 数据路径穿过所述前端部分和后端部分,用于提供单独的读通道和写通道,实现读写数据在系统端和内存之间的数据通路。进一步地,所述后端部分也就是内存控制读写硬件逻辑,包括内存映射逻辑模块、 标签管理逻辑模块、和内存命令生成器;所述乱序内存控制器逻辑模块接收前端部分的系统请求和仲裁信息,通过内存控制逻辑模块实现逻辑地址到内存物理地址的映射,通过标签管理逻辑模块和统一的调度机制实现对内存控制命令的产生和管理内存的读写;所述乱序内存控制器的命令生成器模块的下端,与内存硬件接口相连。进一步地,所述内存命令生成器的SDRAM内存控制命令的产生,符合SDRAM协议规定的读写时序要求,主要是基于内存命令生成器乱序内存控制逻辑的时序状态机模块和时序状态缓存模块,时序状态机模块实现命令控制状态的跳转和时序要求,时序状态缓存模块实现对命令信号的缓存控制;所述内存命令生成器模块的上端,连接乱序内存控制器的内存控制读写硬件逻辑。进一步地,所述内存控制器读写模块,用于实现内存控制器主要读写逻辑;内存控制读写硬件逻辑,由Bank状态机模块来实现统一的读写调度和乱序控制,乱序逻辑控制通过标签管理逻辑模块的硬件逻辑实现。进一步地,所述后端部分的内存控制读写硬件逻辑模块,处理总线请求和仲裁信息包括系统请求缓存模块(mib_req_fifo)、bank缓存模块(bank_fifo)、bank状态机模块 (bank_machine)和命令时序发生器模块(sequece_machi本文档来自技高网
...

【技术保护点】
一种基于FPGA的乱序内存控制器,其特征在于,主要包括:前端部分:用于基于系统的读写内存请求命令,主要负责系统总线请求和仲裁,并向后端部分发送读写请求命令、数据和地址信息;?后端部分:用于负责实现基于FPGA的乱序内存控制器的包括内存映射逻辑、标签管理逻辑和内存控制读写逻辑以及内存命令生成器逻辑的硬件控制逻辑;在后端部分中,内存命令生成器输出的命令行信号接口,直接与SDRAM器件的输入接口连接,用于实现对SDRAM的读写控制;数据路径:穿过所述前端部分和后端部分,用于提供单独的读通道和写通道,实现读写数据在系统端和内存之间的数据通路。

【技术特征摘要】

【专利技术属性】
技术研发人员:张庆敏张衡胡刚
申请(专利权)人:无锡众志和达存储技术股份有限公司
类型:发明
国别省市:

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

1