对SDRAM的理解总结
- Physical Bank,下文简称P-Bank
Logical Bank,下文简称L-Bank. - 地址
sequential与interleave的区别
- 对下表的理解
参考该论坛的理解,摘抄了几段回答,很好说明了interleave存在的意义
总结论坛回答,我的理解就是A2,A1,A0配置的时候定义了burst length;实际读写数据的时候根据实际列地址A7~A0中的A2,A1,A0,即表中的start address来决定读取顺序。(但是还没在说明书内找到怎么分别对这两个进行设置,回头再看看datasheet)
SDRAM具体的一些东西没有深入研究过,仅供参考:
- 此表应该是表达SDRAM Burst模式下,Burst Length,Type两个参数,在实际访问时,对给定起始列地址Burst出来的数据地址的影响。
- Starting Column Address指实际访问的时候,第一个访问的那个地址。根据Length,Type,如果用Burst操作,连续读数据,随后输出的数据地址是按照表格中的顺序来的。
- 选择何种Length和Type,取决于SDRAM控制器的:1、向上接口的协议(CPU侧);2、SDRAM的具体构成,几个芯片拼成的,etc。
Interleave那个Type,至少其中的一个目的,是为了满足比如32Bit对CPU总线,16Bitx1片SDRAM这样的情形,尽快凑够32Bit的数据用的。如4凑8/16/32,8凑16/32,16凑32,都是能支持的。这是因为CPU总线不一定读数据支持Byte Mask。
当然,这种凑数会导致读取的地址序会比较乱,但是对数据吞吐率而言有保证,电路复杂点也就认了。。。Burst Length=8;Start Col Addr=3;Type=Interleave的一个潜在的例子:
- CPU Cache Line Size: 16Bytes;
- CPU访问(读)字节地址0x???3,导致Cache Miss,进而需要Fill Cache Line;
- CPU Core对外总线是32Bits,读数据不支持Byte Mask,即总是假设该32bits数据都是有效的;这样总线可以发一个4次连续读的Burst或者4次单独读请求。
- SDRAM控制器和Core对外总线连接,但是外部的SDRAM是一片16bit的芯片。为了满足总线的要求,SDRAM读数据总要尽快凑够32Bit数据才能完成一次数据传输。
这时候,就可以设置成Burst Length=8,Type=Interleave,用尽可能少的周期以及CPU对外总线延迟完成操作。
缺点就是地址序可能不单调的,SDRAM控制器可能需要内部几个字节的缓冲或者要和CPU Cache控制器行为去匹配,etc,总之会复杂,但是延迟小了。
- Interleave也可以是BANK的交替读或写。如下面两幅时序图
full page
关键点一:从address A增加到end of this page,不会停止,然后再从the starting address of this page增加,如此循环
关键点二:直到burst stop命令才停止
对SDRAM的理解总结相关推荐
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(一)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 本文 1首先讲解什么是FMC及SDRAM,W9825G6KH芯片原理,2基于CubeMx创建工程 ...
- STM32 FMC原理详解
关于FSMC的基本原理已经在这两篇讲解了,如果有不懂的建议先看一下,这里我们对一些基本概念会说的少一些,主要就是针对FMC的特点和FSMC跟FMC的区别做主要的阐述(区别不大). STM32 FSMC ...
- 存储器扩展连接理解(S3C2410为例)——SDRAM
转载于http://blog.csdn.net/do2jiang/archive/2009/09/11/4543065.aspx 由于S3C2410是32位处理器(指令一次能够操作32位数据(运算器一 ...
- SDRAM芯片中的DQM信号的理解
数据掩码 在讲述读/写操作时,我们谈到了突发长度.如果BL=4,那么也就是说一次就传送4×64bit的数据.但是,如果其中的第二笔 数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了 ...
- (9)uboot之DDR SDRAM理解 六
基于s5pv21对DDR2 SDRAM K4T1G08的初始化 ddr2_device_operation_timing_diagram_may_07-0.pdf DS_K4T1G08_16_4QJ- ...
- (8)uboot之DDR SDRAM理解 五
Samsung DDR2 SDRAM 时序 读时序 读过程的抽象时序图* 时序 写时序 写过程的抽象时序图* 刷新时间 刷新时序 对于多个bank同时打开行时,为了控制功耗只能启用4个bank,需要开 ...
- 非常不错的STM32 FMC的内存映射及SDRAM的DQM的控制理解
https://blog.csdn.net/wisepragma/article/details/51622606
- S3C2440 SDRAM内存驱动 .
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存.内存的工作原理.控制时序.及相关控制器的配置方法一直是嵌入式系统 ...
- 详解SDR/DDR/DDR2/SDRAM的功能及异同
图说SDR/DDR/DDR2 SDRAM的异同 SDRAM在嵌入式乃至整个PC行业的地位毋庸置疑,虽然它比SRAM操作复杂,从某种程度上说又有着随机地址存取时性能下降的缺陷(甚至于DDR/DDR2又有 ...
最新文章
- jenkins-svn配置
- Hive查询结果输出文件
- 老司机教你将流量价值提升100倍
- 关于SQL Server数据库中的标识列
- boost::mpi模块实现一个简单的点类,我们可以构建、添加、比较和 连载
- apache日志记录格式LogFormat参数说明
- linux下的权限问题
- 自制操作系统(十) 图像叠加处理
- python进程join的用法_python 进程介绍 进程简单使用 join 验证空间隔离
- python matpoltlib绘制动态图_使用Python、Geopandas和Matplotlib制作gif动态
- 华为p10plus能用鸿蒙吗,鸿蒙系统第四批什么时候 华为鸿蒙系统第四批 鸿蒙系统第四批升级机型介绍...
- 【SSH进阶】java.lang.IllegalArgumentException: id to load is required for loading
- 天翼网关服务器无响应,教你使用天翼网关软件突然打不开的解决方法
- java——15位身份证号码升级到18位
- 手写jQuery源码
- Confluence 查看文档乱码问题
- 想做吃鸡游戏么兄弟?98K轻量物理了解一下
- gdal 实现 热点分析 (Getis-Ord Gi*)
- iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用
- 浮点数的二进制表示方法