地址总线定门牌号,数据总线搬货量:CPU的“寻址”与“搬运”

短文标题:地址总线定门牌号,数据总线搬货量:CPU的"寻址"与"搬运"

你有没有想过一个问题:32位单片机的"32位"是什么意思?为什么能访问4GB地址空间?32位指数据总线宽度(一次传4字节),地址总线也是32位(4GB寻址)。 CPU运行程序本质就两件事:找地址(地址总线)、搬数据(数据总线)。地址总线:能找多少"门牌号",地址总线用于CPU输出要访问的地址(哪个存储单元)。

  • 32根地址线 → 每根线0或1 → 2³² = 4,294,967,296种组合
  • 每个组合对应一个字节地址 → 4GB寻址空间

16根地址线 → 2¹⁶ = 64KB寻址空间。地址线越多,CPU能"看到"的内存越大。数据总线:一次能搬多少数据,数据总线用于CPU和存储器之间传输数据(具体内容)。

  • 8根数据线 → 一次传1字节
  • 16根 → 一次传2字节
  • 32根 → 一次传4字节

ARM32数据总线32根,一次搬4字节,效率是8位单片机的4倍。

程序运行两步走

  1. 取指令:CPU把指令地址放到地址总线,Flash通过数据总线把指令码传回CPU
  2. 存取数据:CPU把数据地址放到地址总线,RAM通过数据总线读写变量

地址对齐与效率, ARM32一次读4字节,地址最好是4的倍数(对齐访问)。地址0x20000001(不是4的倍数)→ CPU分两次读:

  1. 读0x20000000的4字节 → 取后3字节
  2. 读0x20000004的4字节 → 取前1字节
  3. 拼出需要的4字节

效率降低一半。 编译器默认对齐,手动操作地址时需注意。**地址译码:谁响应这个地址?**CPU把地址放到地址总线后,硬件译码电路判断:

地址决定目标,目标决定行为。

这个故事的启示,地址总线定门牌号,数据总线搬货量。 32位地址总线 = 4GB视野,32位数据总线 = 4字节/次吞吐量。理解总线,就理解了程序运行的根本机理。写在最后, CPU是"搬运工":从Flash搬指令,从RAM搬数据。地址总线和数据总线,是搬家的两条路。一条告诉你去哪搬,一条把东西搬回来。


(本文灵感源于于振南《新概念ARM32单片机》教程第1.7节"程序运行的机理与总线技术"。)

觉得有用?点赞、转发,让更多人看懂地址总线和数据总线的分工。

相关推荐
Industio_触觉智能15 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw17 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa18 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜19 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
Zw-awa20 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
stm32
无敌贵点大王1 天前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院1 天前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk5552 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
女神下凡2 天前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
shijuejianceliu2 天前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机