很多人学计算机组成原理,一上来就被冯·诺依曼、总线、寄存器、流水线、Cache 绕晕。概念背了一堆,却不知道 CPU 到底怎么跑起来。
其实计算机组成原理的核心就一句话:
计算机 = 运算器 + 控制器 + 存储器 + 输入设备 + 输出设备。
而程序执行的核心,就是一个不断重复的指令周期:
取指 → 译码 → 执行 → 写回。
用 20 行代码模拟一个极简 CPU,你就能看懂这条主线。
计算机组成 = 五大部分 + 指令周期 + 存储层次 + 总线连接。
程序执行,就是控制器不断从存储器取指令,交给运算器执行,再写回结果。
下面这段 Python 代码,模拟了一个只有两条指令的 CPU。它展示了取指、译码、执行、PC 自增的完整过程。
mem = [0x15, 0x23, 0x00] # 0x15: A=5, 0x23: A+=3, 0x00: 停机
reg = {"PC": 0, "A": 0}
while True:
ir = mem[reg["PC"]] # 取指:从内存读指令
reg["PC"] += 1 # PC 自增,指向下一条
op, arg = ir >> 4, ir & 0xF # 译码:高 4 位操作码,低 4 位操作数
if op == 0x0: # 停机
break
elif op == 0x1: # 加载立即数
reg["A"] = arg
elif op == 0x2: # 加法立即数
reg["A"] += arg
print(reg)运行结果:
{'PC': 1, 'A': 5}
{'PC': 2, 'A': 8}这段代码只做四件事:取指、PC 自增、译码、执行。 真实的 CPU 复杂千万倍,但指令周期的骨架完全一样。
mem 就是存储器,既存指令也存数据,体现冯·诺依曼结构。PC 和 ir 是控制器的一部分,负责取指和译码。A 寄存器配合加法操作,扮演运算器角色。print 是输出设备,把结果展示出来。你写的每一行高级语言代码,最终都会被翻译成类似的指令流,在 CPU 里一步步执行。
先理解指令周期,再学这些,才不会变成死记硬背。
计算机组成原理,不是一堆孤立的名词,而是一条清晰的执行链:
存储器存指令 → 控制器取指译码 → 运算器执行 → 结果写回。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。