介绍 |
高速SDRAM控制器提供了存储扩展内存的关键应用程序。例如交通基于IP网络,存储需求可以成为完整的帧需要存储时至关重要的。控制器实现了爆破优化访问计划,提供转移率4 Gbit / s 125 mhz。所有内部设备的细节,如行和列的多路复用,页面破裂处理;页面切换和银行是完全隐藏的用户应用程序。电初始化,刷新和其他管理任务必要提供更快的数据完整性自动完成,也隐藏在用户应用程序。控制器的接口直接SDRAM内存设备并提供一个简单易用的split-port用户界面(独立的读写端口)。它允许单个字访问任意长度以及脉冲模拟线性内存空间,没有页面或银行边界。SDRAM控制器可以很容易地连接到其他MorethanIP大型FIFO或美国的后端应用程序的解决方案 |
相关工作 |
同步DRAM (SDRAM)已经成为一个主流的记忆选择嵌入式系统内存的设计。对高端应用处理器的接口支持更快处理器的内置外围模块。然而,对于其他应用程序,系统设计者必须设计一个控制器提供适当的命令SDRAM的初始化、读/写访问和内存刷新。这SDRAM控制器参考设计、SDRAM并总线主控之间,减少了用户的努力处理内部命令接口提供了一个简单的通用总线主控系统接口。图1显示了控制器的关系之间的总线主控和更快。可以将总线主控微处理器或用户的专有模块接口。更快是高速动态随机存取记忆体(DRAM)与同步接口。同步接口和完全管道化内部架构的SDRAM允许极快如果有效利用数据速率。在银行内部组织的内存由行和列。行和列地址位的数量取决于memorySDRAM由总线控制的大小和配置命令使用的组合形成ras_n, cas_n, we_n信号。 For instance, on a clock cycle where all three signals are high, the associated command is a No Operation (NOP). A NOP is also indicated when the chip select is not asserted. |
这些银行之前必须打开的地址可以被写入或读取。行和银行开放与活跃的命令注册重合。当一个新行读或写的访问银行可能需要首先关闭银行,然后重新打开银行新行。关闭银行使用前的命令执行。打开和关闭银行成本内存带宽,所以SDRAM控制器的核心设计了监视和管理同时四家银行的状态。这使控制器能够智能地打开和关闭银行只有当n时发出读或写命令时,最初的列地址提供给内部设备。给出了初始数据并发写命令。读取命令,初始数据出现在数据总线1称为CAS延迟是由于身体所需的时间阅读内部DRAM andregister总线上的数据。CAS延迟取决于内存的速度频率时钟。一般来说,更快的时钟,中科院的周期延迟是必需的。 |
在最初的读或写命令,顺序读和写将继续,直到达到破裂长度或支持的区间长度8数据周期。SDRAM控制器的核心能力的层叠爆发最大化SDRAM带宽。图2.1表command1-4时钟周期。 |
这是年级的SDRAM并西娅突然终止命令。内部设备命令必要预先充电更快设备需要定期刷新操作维护的数据。SDRAM控制器核心自动定期自动刷新comman问题。不需要用户干预的负载模式注册命令是用于配置内部操作。这个寄存器存储CAS延迟、破裂长度、破裂类型和写突发模态。特别提款权控制器只写基本模式寄存器非自适应性控制器打开和关闭银行每笔交易。SDRAM命令时间序列的两个相邻块的写相同的银行:图2.2非适应控制器打开和关闭银行每个事务考虑内部命令序列块写作与关闭银行和行控制器使这些银行开放。然后为非序列如下: |
|
考虑内部命令序列与突发长度等于4块写关闭银行a和b银行的第一行了行0。假设,也非自适应的控制器使这些银行开放。然后序列非自适应控制器将以下 |
|
算法 |
HSSDRC IP核心使所有银行打开和关闭他们只改变行或内存刷新和SDRAM为两个连续的块写命令序列: |
|
这两个写事务将消耗11钟表的滴答声。它给的一个好处8时钟或内存写带宽的42%。这里的银行存取算法被称为“自适应银行内部控制”。命令NOP更快的强制暂停运行命令管道在上面的序列HSSDRC IP核心银行控制命令下内存访问尽可能插入这些强制性的停顿的地方。然后命令序列将以下(最好的情况如图所示): |
|
这两个写事务将消耗11钟表的滴答声。它给8个时钟周期的一个好处或42%的内存写频宽。内部命令序列HSSDRC IP核心没有Twr时间间隔,因为这个序列在上面的示例中并不需要它。 |
该算法对填充的强制性NOP与有意义的命令暂停SDRAM命令管道被称为是“适应性命令管道控制”。 |
4.1刷新窗口发生器模块 |
而内存操作,每个存储单元都必须重复刷新,最大时间间隔内刷新指定的制造商,这是毫秒。刷新不使用正常的内存操作(读和写周期)用于访问数据,但专门的周期称为生成单独的计数器电路的记忆电路正常的内存访问。在内存芯片的存储单元在一个矩形数组的行和列。 |
4.2输入仲裁者模块 |
包含三个独立的循环仲裁者解码器内部命令。此一个循环通行令牌总线或开关仲裁者保证公平(没有饥饿)在主人允许任何未使用的分配时间槽的主循环将晚,但现在已经准备好了一个可靠的预测的最坏的等待时间是循环的另一个优点协议。最坏的等待时间正比于数量的请求者- 1。循环的通行令牌总线的协议或开关仲裁者工作如下。在每一个周期,一个大师(循环顺序)具有最高的优先级(即。,拥有令牌访问共享资源。如果token-holding大师不需要的资源在这个周期中,主与下一个最高优先级可以授予资源发送请求,然后最高优先级主令牌传递到下一个主循环顺序。 |
4.3 SDRAM内存条使用地图模块 |
包含内存存储开放银行和行索引。这改变了SDRAM内存状态命令解码器。 |
4.3.1内存条 |
内存条是一个逻辑存储单元在电子技术中,这是硬件的依赖。在计算机的内存银行可能由内存访问控制器和物理组织的硬件内存插槽。在一个典型的同步动态随机存取存储器(SDRAM)或双数据速率同步动态randomaccess存储器(DDR SDRAM),银行由多个行和列的存储单元和通常是分散在几个芯片。在一个读或写操作,只有一个银行访问,因此在一列或一行,每个银行,每个芯片=内存总线宽度(单通道)。银行进一步取决于比特大小的列和行,每个芯片的芯片数量×银行。 |
4.4内部命令序列解码器模块 |
包含三个独立的内部命令序列解码器。选择适当的内部命令序列取决于信息从记忆银行使用地图。 |
译码器 |
仲裁者之后接受了来自主机的命令,该命令传递给命令发生器部分命令模块。命令模块之间用三个移位寄存器生成适当的时间更快的发布命令。一个移位寄存器是用于控制时间激活com第二用于控制READA或WRITEA命令的定位;三分之一用于com需求的持续时间,它允许仲裁者来确定最后的操作已经完成。命令模块还执行更快的多路复用地址。行部分的地址多路复用到SDRAM输出(11:0)在激活(RAS)命令。列部分是那么的多路复用到SDRAM地址输出在READA (CAS)或WRITEA命令。命令生成的输出信号OE模块来控制三态缓冲器的最后阶段DATAIN路径在数据路径模块。 |
4.5模块输出仲裁者 |
模块包含循环仲裁者和自适应访问SDRAM命令管道逻辑,分析解码命令和内部银行状态从access manager。 |
4.5.1循环赛仲裁者 |
轮循仲裁调度方案,给每个请求者的使用公共资源在有限的时间内或数据元素。基本算法意味着一旦服务请求者,他将“绕”的最后一行,最后再服役。最简单的轮循仲裁者是基于每请求者分配一个固定的时间段;这可以实现使用一个圆形的计数器。另外,定义了加权轮循的仲裁者,允许特定的数据元素X /每个请求者,在这种情况下,X数据元素从每个请求者将被处理之前搬到下一个。轮循仲裁者通常用于仲裁共享资源,负载平衡、排队系统和资源分配。任何应用程序需要一个最小公平,没有一个请求者正在遭受饥饿是一个有效的申请轮循的仲裁者。 |
4.6。access manager modulec SDRAM命令管道 |
为每个内存包含FSMs银行。模块的许可证或抑制访问给定SDRAM银行。在闲置的主要从调度器FSM接受最好的拟合请求者和将请求分为银行访问(状态:bank0服务-服务bank3)。对于等待刷新命令生成单元的主要FSM表示预定的信号开始刷新刷新(状态:服务刷新)。从请求者访问粒度级别的主要FSM减免银行accesslevel。调度程序为主要的FSM提供了最佳拟合请求者的信息,根据仲裁政策。握手请求者准备的主要FSM接受访问。因此,路由选择请求者的目标地址的地址映射单元。此外,主要的FSM指示命令 |
4.7内部初始化模块 |
包含counter-based FSM创造必要的命令链内部初始化。控制器必须经历一个初始化过程通过一个命令序列信号之前正常的内存访问。内存控制器启动内存初始化序列init_start信号时断言的用户界面。一旦断言,init_start信号需要com-pleted高高举起,直到初始化过程。输出信号init_done宣称高一个时钟周期,表明核心com-pleted初始化序列,现在准备访问内存。init_start信号必须尽快deasserted init_done是高sclk前沿的采样。如果init_start高中毕业的下一个前沿sclk内存控制器需要它作为另一个请求初始化并开始再次初始化过程。内存初始化后只需要一次系统复位。作为初始化的一部分核心执行写平所有可用的排名和商店写延迟值水平。内存控制器确保最小差距500μs em_ddr_reset_n deassertion和em_ddr_cke断言。 It is user’s responsibility to ensure minimum reset duration of 200 μs. |
4.8。多路复用模块逻辑命令 |
包含简单命令的混合输出多路复用器输出仲裁者和初始化模块。因为被动控制器初始化例程中由于内部同步复位的解码器和仲裁者,多路复用与逻辑或替换。 |
4.9 Datapath公司模块 |
包含访问读/写数据的FSM和SDRAM掩蔽的逻辑。之间的数据流设计SDRAM并系统界面如图。datapath公司电路由四个16位D拖鞋和一个三态缓冲。触发器是用来转移数据。三态缓冲器用于确定双向数据总线的方向。三态缓冲器有一个控制输入,确定这是一个读或写操作。 |
4.10。地址通路模块 |
一旦内存初始化完成,等待用户命令以设置核心和/或访问内存。需要提供用户逻辑命令和地址的核心以及控制信号。com-mands和地址送达核心使用以下过程。内存控制器核心告知用户逻辑,它准备接收一个命令断言cmd_rdy信号的一个周期。如果核心用户发现cmd_valid信号断言逻辑虽然cmd_rdy断言,它需要cmd输入作为一个有效的用户命令。 |
仿真结果 |
5.1.1适应银行管理 |
HSSDRC IP核心使所有银行打开和关闭他们只有改变行或形式的内存刷新和SDRAM命令序列两相邻块的写作 |
|
我们得到如下所示的仿真结果图.5.1 |
5.1.2适应性命令管道 |
HSSDRC IP核心银行控制命令下内存访问尽可能插入这些强制性的停顿的地方。然后将下面的命令序列 |
|
这两个写事务将消耗11钟表的滴答声。它给一个好处42%的内存写频宽。内部命令序列HSSDRC IP核心没有Twr时间间隔,因为这个序列在上面的示例中并不需要它。这个算法对填充的强制性NOP与有意义的命令暂停SDRAM命令管道被称为“适应性命令管道控制” |
管道命令如下所示的模拟结果以只有11钟为写作两个正确的操作在不同的银行 |
结论和未来的工作 |
管道操作可以降低访问延迟和提供银行和两个相邻的行地址关系提前说明。然后控制器可以利用地址关系动态内存访问策略。它是真正明智的控制器选择更好的内存访问策略根据不同地址的关系。与传统的内存控制器,管道内存控制器可以采取银行交叉和页面优化在同一内存系统,可以最大限度地利用内存数据总线和减少内存访问延迟。执行时间和吞吐量的性能分析证明该管道SDRAM内存控制器可以减少内存访问延迟,提高吞吐量的SDRAM内存很大。这样一个管道内存控制器可以应用于高吞吐量的需要处理。介绍了另外一个地址重新排序机制,可以节省大量时钟周期的价格相对更少的额外的区域。这些观察加上这个工作的小说的贡献,可以显示该领域的未来的工作应该做进一步提高存储系统的性能,减少了内存访问时间、电力和区域。需要不断提高内存的性能越来越强大的系统处理器驱动先进的内存技术的发展。 |
数据乍一看 |
|
|
引用 |
- 单一的数据速率(SDR) SDRAM规范、电平标准,JESD79E, 2005年5月
- 爱恨交织的关系特别提款权SDRAM控制器、MOSAID格雷厄姆·艾伦
- 128 mb的特别提款权SDRAM、设备规格、海力士,2006年4月
- Altdq&altdqsMegafunction、用户指南、阿尔特拉,2005年3月
- 锁相环在Stratix II &Stratix II GX设备,2006年4月
- 如何使用特别提款权更快、用户手册文档。E0234E40 ALPIDA, 2005年9月
- 特别提款权SDRAM控制器使用Virtex-4 FPGA设备、奥利弗·Despaux应用注意,2006年3月27日。
- SAULSBURY,希礼,乒乓球、方和NOWATZYK,安德烈亚斯,错过了内存墙:处理器/ MemoryIntegration。程序的计算机体系结构国际研讨会(1996年5月),pp.90101。
|