计算机组成与体系结构:计算机结构的分类(classifications of computer architecture)
目录
Von Neumann Architecture(冯·诺依曼结构)
Harvard 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 | 
 
