当前位置: 首页 > article >正文

uboot, s5pv210, 内存讲解(3)

首先是 异步 内存的读写时序。

1、 首先内存控制器 将 行地址 发出

2、 然后 将 RAS 拉低, 这时候,内存芯片开始锁存行地址,并且开始解码。

3、 然后 内存控制器 发出 列地址, , 然后拉低 CAS,

4  、这时候, 内存开始锁存列地址,并且开始解码。

5 、 内存过一段时间开始把数据放到 数据总线上。

6 、 内存控制器,拉高 RAS, CAS。

7 、 进入下一个循环。

然后来看一下  如何计算容量。

首先  s5pv210  , DMC0  , 可以寻址 512M地址。也就是 2的29 次方。

地址总线 是14根, 也就是 2的28次方,但是我们知道,它每发出一个地址,读取的是4个字节,至于它怎么 寻找每一个地址的值, 先不管。 也就是 2的28次方, 再乘以 2的2次方。 等于 2的20次方。够了。

然后是关于 内存时序的变迁。

1 asychoronous dram ----> FPM ---->EDO----->BEDO----->SDRAM----->

DDR(double date rate SDRAM)

然后是时序的具体的 演进

1 第一种就是 DRAM。

2 第二种是, 不给行地址了,因为一般也是读取 连续的地址。

3 第三种是, 由于 地址与 数据线是并行的,那么数据可以不用等列地址 给完, 在输出。

4 第四种是, 由于一般是 连续的读取,那么列地址都省了,直接使用 累加器加一,来输出数据。

然后是关于 SDRAM 的时序。

1 、 异步的内存有一个 弊端,就是 cpu 的速率的升级,与内存的速率的升级 不是同步的。有时候 cpu 的 速度上去了,但是 内存的速度没上去,就需要匹配,

2 但是 使用 同步的话,就是加一个时钟线 ,就有更强的适应性,大家都遵守时钟的速度,时钟的速度 由最低的哪个决定,如果大家 想提高速度,那么提高时钟的频率就行了。

3 SDRAM: sychoronous DRAM。

4 、 可以看到 SDRAM中, 每次是时钟的上升沿 去采集数据。

5 、 在DDR 中, 上升沿与 下降沿 都输出了数据。这样速度就提高了。

然后在来看看 DQS的作用。

1 在SDRAM 中,数据是这样的,时钟的上升沿,开始发出数据,然后得等一小会,等数据稳定了,也就是 下降沿的时候 , 去采集数据。这是没问题的。

2 、 但是 DDR 就有问题了, 如果上升沿,下降沿,都输出数据的话,那么我过多长时间去采集数据呢?

3、这里有个术语, 就是 在输出数据与采集数据之间的时间 叫做 data eye , 我在瑞芯微的 手册中见过。

4、接下来就轮到 DQS 出场了,这是一个 差分信号,它来通知, 下载可以采集数据了。

举个例子, 3568 的原理图上。

可以看到, 一个 片选上有 两组的 DQS。

DQS 是跟 data  对应的。

然后来看一下 内存的DLL。

1 、 你看 内存 会从 cpu 接收一个时钟------>然后内存根据输入的时钟,自己会产生一个时钟------> 然后内存的数据的输出,是根据 自己的时钟的。

2 、 这里有两个延迟, 一个是 从时钟输入,到自己产生时钟,是有一个延迟的,第二个是 自己的时钟的上升沿 开始输出数据,但是到 数据线上真正有数据也是有一个延时的。

3 、 所以 内存的内部的时钟,反正也是赶不上 cpu 的时钟,那么干脆就延迟一下, 看上去跟 输入的时钟保持一致。 但是 第二个 是避免不了的,但是也是可以接收了。

然后在来看一下 关于内存的容量的问题。

1 、 s5pv210 上, DMC0 是 521M的寻址的。

2、 使用的内存芯片 是 16M x 8IO  x 8 bank 的, 也就是说,内存的 寻址空间是 128M , 输出一个字节,但是由于是 4 片 拼在一起了,所以是 每读取一个地址,输出了4个字节。容量是 512M了。

3 、 但是,注意 ,DMC0 的 寻址空间仍然是 128M , 它这里是怎么处理的呢? 不理解。

疑问:

1、 这么说的话,是不是 32位的 的cpu 要突破 4G的内存了呢,因为我可以  设计的一个 地址,读取出 1万个字节这种。

2、 对了, 在软件上, 4字节对齐,是不是就跟这个设计有关了?


http://www.kler.cn/a/444838.html

相关文章:

  • 疾风大模型气象系统:精准预报,引领未来
  • 第二十四天 循环神经网络(RNN)基本原理与实现
  • 从0-1开发一个Vue3前端系统页面-9.博客页面布局
  • scala中正则表达式的使用
  • 【数据集】5种常见人类行为检测数据集3379张YOLO+VOC格式
  • 【ETCD】【源码阅读】深入解析 EtcdServer.applySnapshot方法
  • 【Nginx-4】Nginx负载均衡策略详解
  • 在Windows下安装redis
  • Python知识分享第三十一天-Numpy和Pnadas入门
  • 林子雨-大数据课程实验报告(二)
  • 气象与旅游之间的关系,如果借助高精度预测提高旅游的质量
  • 安徽移动携手开源网安亮相2024中国国际车联网技术大会,共筑车联网安全新壁垒
  • 无人设备遥控器之通讯技术篇
  • 技术速递|.NET 9 简介
  • 计算机基础 试题
  • 【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
  • 划分WLAN的三种主要方法,基于WLAN,基于IP,基于端口
  • [HNCTF 2022 Week1]你想学密码吗?
  • Vue与React:前端框架的巅峰对决
  • 【HarmonyOS】获取设备自定义名字
  • [oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
  • 【进程篇】理解进程
  • ARM嵌入式学习--第八天(PWM)
  • maven-resources-production:ratel-fast: java.lang.IndexOutOfBoundsException
  • 企业车辆管理系统平台:功能与用途全解析
  • 基于Stable Diffusion技术的视频