搜索
bottom↓
回复: 8

SDRAM---------------工作模式寄存器中得 突发长度设置的问题。

[复制链接]

出0入0汤圆

发表于 2012-2-1 10:38:12 | 显示全部楼层 |阅读模式

(原文件名:11.jpg)


Starting Column Address 是什么意思? A2 A1 A0 以及A3 不仅仅设定了  顺序 交叉 突发长度   还有起始列地址 ? 为什么会有访问顺序? 交叉和连续的区别又是什么? 交叉有什么特殊的用处么?

出0入0汤圆

发表于 2012-2-1 11:08:44 | 显示全部楼层
我试着回答部分。后面的补充。sdram很多具体操作我也没有深入研究过。
Starting Column Address:这个我在我手头的手册中没有看到和列地址相关的说明。burst长度是基本模式设置部分的。cas和ras都是低的时候进行操作的。
A2 A1 A0 以及A3 不仅仅设定了  顺序 交叉 突发长度   还有起始列地址 :和起始地址是没有关系的。这个只在模式设置时起作用,和地址没有关系。
为什么会有访问顺序:从历史来说,应该是有这样的需求,才有这样的设计的。否则burst的顺序应该只能有一种顺序。
交叉和连续的区别又是什么:你比较你的表就看出来了。应该说连续是交叉的一个特例了。连续也是某种情况下的交叉。
交叉有什么特殊的用处么:用户的需求应该是千差万别的。比如某些情况下顺序采集到的数据存储到ram中,然后再对数据进行处理,这个时候可能会存在字节顺序交换或者先看后面的数据的情况再决定如何对前面的数据进行处理。

出0入0汤圆

发表于 2012-2-1 11:52:26 | 显示全部楼层
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,总之会复杂,但是延迟小了。

基本上就是这个意思了。

出0入0汤圆

 楼主| 发表于 2012-2-1 12:12:39 | 显示全部楼层
回复【2楼】dr2001
-----------------------------------------------------------------------

谢谢你的回复,我举个例子:

我想顺序读长度8的8个数据, A3~A0:0011,地址 ad 0 ~ ad7的数据要读出,最后给出的读命令中的列地址是ad0,那么出来的数据第一个其实是ad3的数据然后依次是 ad4、ad5、ad6、ad7、ad0、ad1、ad2?

出0入0汤圆

 楼主| 发表于 2012-2-1 12:13:21 | 显示全部楼层
回复【2楼】dr2001
-----------------------------------------------------------------------

你好,可否加Q 详细请教一下 , 664365692

出0入0汤圆

发表于 2012-2-1 14:20:30 | 显示全部楼层
Burst R/W是循环寻址的!

给你说详细点:
1.设定好Burst Length后,每个Page(整行)操作分成了以Burst Length为长度的多个均匀小块;
2.Starting Column Address可以让:
   (a)Sdram定位是哪个小块在进行Burst操作;
   (b)以Starting地址为起点,然后在这个小块中进行首尾衔接的环形寻址;
   (c)寻址到当前小块的边界时,调头!不会越界进入下一个小块内,


不知道你明白没有!

出0入0汤圆

 楼主| 发表于 2012-2-2 08:18:09 | 显示全部楼层
回复【5楼】fishplj2000
-----------------------------------------------------------------------

有些明白了···谢谢 ···你真是超赞呢···

出0入0汤圆

发表于 2012-2-16 23:43:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-17 10:00:01 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 01:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表