目录
Von Neumann Architecture(冯·诺依曼结构)
Modified Harvard Architecture(改进哈佛结构)
💡 从“内存访问结构”角度分类,最经典的方式主要包括两种:
✅ 冯·诺依曼结构(Von Neumann Architecture)
✅ 非冯·诺依曼结构(Non-Von Neumann Architecture)
↪️ 包括:Harvard 架构、Modified Harvard 架构等
Von Neumann Architecture(冯·诺依曼结构)
它的核心思想是:
程序和数据共用一块内存,通过同一条总线读写。
📦 特点总结:
特性 | 描述 |
---|---|
✅ 程序和数据存放在同一内存 | 没有“代码区”和“数据区”之分 |
✅ 共用总线传输 | 数据和指令通过同一通道来回搬 |
⚠️ 容易出现“瓶颈” | CPU 想读数据,程序也要读,会排队,叫“冯·诺依曼瓶颈” |
📍 应用广泛 | 普通 PC、服务器、单片机等都大量使用 |
举个例子:
CPU --> Memory
↗ ↖
指令 数据
CPU 要先从内存拿一条“指令”(比如加法),然后再去内存拿“操作数”(数据),两步都走同一条路,所以容易“堵车”。
Harvard Architecture(哈佛结构)
哈佛结构把程序和数据分开存在不同的内存中,而且有两条独立的总线。
📦 特点总结:
特性 | 描述 |
---|---|
✅ 指令和数据分开放 | 各有自己的内存区域 |
✅ 双通道传输 | 可以同时访问指令和数据,效率更高 |
📍 常用于嵌入式系统 | 微控制器(比如 AVR)、DSP 使用较多 |
举个例子:
CPU
↑ ↑
指令 数据
内存 内存
这样,CPU 可以一边从指令内存读取指令,一边从数据内存拿数据 —— 互不干扰!
Modified Harvard Architecture(改进哈佛结构)
为了兼顾灵活性 + 高性能,出现了这种“混合型结构”。
📦 特点总结:
特性 | 描述 |
---|---|
✅ 数据/指令分离但可交互 | 程序也可以像数据一样修改(比如写入内存) |
✅ 实际上使用“共享存储器 + 分离缓存” | 一般有统一的物理存储器,但用不同的缓存处理指令和数据 |
📍 用在现代高级 CPU、ARM Cortex 系列等 |
三种结构对比总结表
特性 | Von Neumann | Harvard | Modified Harvard |
---|---|---|---|
内存是否分离 | ❌ 否 | ✅ 是 | ✅ 是(逻辑上) |
总线是否分离 | ❌ 否 | ✅ 是 | ✅ 是(部分) |
是否易堵塞 | ⚠️ 容易堵 | 🚀 不堵 | 🚀 不堵(缓存优化) |
编程灵活性 | ✅ 灵活 | ❌ 程序不易修改 | ✅ 灵活 |
应用领域 | 通用计算机 | 嵌入式系统、DSP | ARM、现代 CPU、MCU |