CPU 执行的指令:

“ldr r0,[某个地址 A]”,ldr 是装载 4个字节,这是从这个地址里读取某个数据存到 r0 里去。

A 地址的 1 字节数据。
A+1 地址的 1 字节数据。
A+2 地址的 1 字节数据。
A+3 地址的 1 字节数据。
即, ldr 是得到 4 个地址上的数据共4字节。

ldb r0,[某个地址B]”, ldb是装载1个字节。对CPU来说一个地址对应的数据是 1 字节。

B 地址的 1 字节数据。

例1:

Mov R1,#0
Ldr R0,[R1]
从R1把的地方即0地址读到4字节。
相当于:
从0地址取1字节
从1地址取1字节
从2地址取1字节
从3地址取1字节
假设 NOR 是 16 位(有 16 条数据线), CPU 发出“ldr r0,[0]” ,则 0 是对应NORFLASH。这里是想得到 4 个字节的数据。 NORFLASH 是以 16 位来访问的,意思是说访问 NOR 时,一次只能返回一个 16 位的数据。(16 位的 NORFLASH 硬件上只能一次提供 2 字节数据)。

所以,上面的情况是 CPU 一次要读 4 字节,而 16 位的 NOR 一次只能提供 2 字节。这个
问题,就由“内存控制器”来处理。

“内存控制器”要发起 2 次传输:

①,第一次,发出 0 地址,得到 2 字节。(地址 0~1 处的 2 字节)
②,第二次,发出 2 地址,得到 2 字节。(地址 2~3 处的 2 字节)
③,将两次得到的字节数据组合后返回给 CPU。
所以要设置“内存控制器”位宽,CPU 想得到 4 字节数据时,内存控制器就知道要发出 2 次操作。至于如何将数据提交过来,就由内存控制器来确定。

如上 NORFLASH, CPU 的发出的地址 1“ LADDR1”接到了 NORFLASH 的“ A0”地址。

则:“内存控制器”要发起 2 次传输:

NOR:
①,第一次,发出 0 地址,得到 2 字节。 NOR 得到 0 地址,返回第 0 个 2 字节。
②,第二次,发出 2 地址,得到 2 字节。 2 为 000010,而 LADDR0 没有接,而是接的
LADDR1-A0,这时 NOR 看到的是地址 1 。故返回第一个 2 字节。
③,将两次得到的字节数据返回给 CPU

例 2:
Mov R1,#3
Ldb R0,[R1]
CPU想得到地址 3 的一个字节数据。
“内存控制器”要发起 2 次传输: 
①发地址 3(000011)
NOR 得到地址 1(LADDR0 没接,则是从第 2 个 1 接的),返回第0个2字节。
②内存控制器从这2字节里取出高字节那一位,传给CPU。这也说明了为什么地址线错开一位。
取出哪一位是由没有接的那根地址线来决定的,比如这里没有接的LADDR0为1,所以返回两字节中高位(计算机是从0开始计数),

一般的规律是,8位位宽不错位,16位位宽错一位,32位位宽错二位,以此类推。

内存控制器(以位宽为16的NOR FLASH举例)相关推荐

  1. 内存地址、位宽与容量

    首先说明一下单位: 1K=2^10,1M=2 ^20: 1MB=1M Byte=2^20 Byte =8 * 2 ^20 bit: 1Mb=1M bit=2^20 bit: 存储容量=寻址范围 x 计 ...

  2. 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法

    有不少人问到: flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位.为什么要偏1位? 从软件和CPU的角度而言,一 ...

  3. 韦一之内存控制器,2440地址空间,NOR flash和SDRAM(012课)

    大部分内容来自韦东山老师视频及博客:https://blog.csdn.net/thisway_diy/article/details/79389530 一个可参考的很好很详细的博客文档:https: ...

  4. 深入分析存储器的位宽及与C的关系

    一.硬件参数 1.CPU:s3c44b0x 字长32位:以字节为单位编址:数据处理支持三种数据类型:字节(8位).半字(16位).字(32位):存储方式有大小端之分:25根地址线. 2.存储器 Ⅰ   ...

  5. 【基础知识】~ 数据位宽转换器

    1. 概述 数据位宽转换器,一般常用于模块接口处,比如一个电路模块的输出数据位宽大于另一个模块的输入数据位宽,此时就需要进行数据位宽转换.比如SATA控制器中,内部数据位宽为32bit,但外部物理收发 ...

  6. DDR3不同型号不同位宽仿真记录

    DDR3不同型号,不同位宽,仿真记录: 芯片板卡ddr3型号是MT41J128M16XX-125, 1)生成MIG时,选取MT41J128M16XX-125.位宽选用16位宽,上板验证,ddr3可以正 ...

  7. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

  8. 内存颗粒位宽和容量_64M的SDRAM颗粒 一般内存是多大的?

    内存颗粒识别 存储颗粒主要有这样的一些品牌:美国的Micron(美光).德国的Infineon(英飞凌):韩国的SAMSUNG(三星).HY(现代):日本的NEC(日本电气).Hitachi(日立). ...

  9. 内存颗粒位宽和容量_内存和内存颗粒是什么关系?

    匿名用户 1级 2013-07-25 回答 samsung内存 具体含义解释: 例:samsungk4h280838b-tcb0 主要含义: 第1位--芯片功能k,代表是内存芯片. 第2位--芯片类型 ...

最新文章

  1. 移动互联网长连接方案实例
  2. 【原创】iframe与父页面之间,变量、方法互相调用
  3. C#机器学习插件 ---- AForge.NET
  4. collection的iterator()方法
  5. 如何用python写脚本_【按键教程】用python写脚本 另附垫材24与变奏22的实现
  6. C++新旧类型转换小记
  7. ECCV 2020《TRRNet: Tiered Relation Reasoning for Compositional Visual Question Answering》论文笔记
  8. 代码逻辑分析_双11模块79.34%的前端代码是怎样智能生成的?
  9. php shell ddos,用shell解决ddos攻击实例
  10. 手淘移动适配方案flexible.js兼容bug处理
  11. java编程对电脑配置_java编程对电脑配置有什么要求?如何选择合适电脑?
  12. windows10按键映射PowerToys
  13. 华为数通笔记-VRP
  14. FineReport10 决策报表常用javascript脚本
  15. 你不知道的JavaScript(上卷)- - 书本知识点记录
  16. 如何定制下载SMAP产品
  17. springboot kafka集成
  18. 第二届邯郸钢铁展会,图扑软件荣获“2022钢铁行业智造之星奖”
  19. python训练模型、如何得到模型训练总时长_【绝对干货】机器学习模型训练全流程!...
  20. 绑定机制(转自天运科技)

热门文章

  1. 1T和12T单片机的区别,移动app开发
  2. Netty源码实战(十) - 性能优化
  3. ssl证书默认端口是什么,ssl证书证书的作用
  4. 2019年 网络空间安全国赛真题 赛题分析
  5. Curator 框架与 Zookeeer 版本 适配
  6. 我又有一位程序员朋友成了自由职业者
  7. 不同大小硬盘对拷oracle,如何实现硬盘对拷_大小不一样的硬盘怎么实现对拷?_不同大小硬盘对拷...
  8. oracle查询语句中select from where group by having order by的解释与应用
  9. WIN7下开机欢迎界面去掉画面下方windows 7 旗舰版
  10. 聊聊云原生时代湖仓一体建设