#16 构建超标量CPU之寄存器堆工作原理

合集 · 从零构建超标量 CPU (34)

  1. 8:14
    #1 构建超标量CPU之系列开篇与核心概念
  2. 11:40
    #2 构建超标量CPU之单步时钟
  3. 5:26
    #3 构建超标量CPU之可调时钟
  4. 10:41
    #4 构建超标量CPU之时钟选择器
  5. 9:46
    #5 构建超标量CPU之复位同步器
  6. 14:58
    #6 构建超标量CPU之程序计数器
  7. 23:08
    #7 构建超标量CPU之实现逐条执行指令
  8. 14:05
    #8 构建超标量CPU之实现指令相对跳转
  9. 14:22
    #9 构建超标量CPU之实现选择下一步要执行的指令
  10. 12:48
    #10 构建超标量CPU之重置程序计数器
  11. 15:23
    #11 构建超标量CPU之添加程序存储器
  12. 23:14
    #12 构建超标量CPU之定义初始指令集
  13. 27:15
    #13 构建超标量CPU之如何从8位内存中获取16位数据
  14. 15:23
    #14 构建超标量CPU之升级至16位指令集
  15. 1:01:38
    #15 构建超标量CPU之程序计数器PCB
  16. 29:20
    #16 构建超标量CPU之寄存器堆工作原理
  17. 50:31
    #17 构建超标量CPU之如何访问寄存器?
  18. 56:33
    #18 构建超标量CPU之打造属于你自己的逻辑分析仪
  19. 1:00:29
    #19 构建超标量CPU之使用Python进行电路测试
  20. 49:40
    #20 构建超标量CPU之寄存器PCB
  21. 41:28
    #21 构建超标量CPU之扩展寄存器堆
  22. 18:30
    #22 构建超标量CPU之我的CPU现在能16位跳转了
  23. 48:12
    #23 构建超标量CPU之编写汇编器:指令解析
  24. 19:05
    #24 构建超标量CPU之编写汇编器:内存布局
  25. 19:30
    #25 构建超标量CPU之编写汇编器:指令编码
  26. 17:20
    #26 构建超标量CPU之编写汇编器:输出二进制文件
  27. 45:35
    #27 构建超标量CPU之计算机如何做加法?
  28. 46:12
    #28 构建超标量CPU之教我的CPU“学会”加法
  29. 47:01
    #29 构建超标量CPU之计算机如何实现负数运算?​
  30. 51:28
    #30 构建超标量CPU之进位标志
  31. 32:25
    #31 构建超标量CPU之实现算术逻辑单元的位移功能
  32. 55:35
    #32 构建超标量CPU之添加位移指令
  33. 42:29
    #33 构建超标量CPU之解码ALU微操作
  34. 35:13
    #34 构建超标量CPU之实现布尔代数运算
Description
https://www.youtube.com/watch?v=mlAd3TEX9sg
视频内容总结:
这个视频是系列内容的一部分,UP主正在从零开始构建一台计算机。本集的核心任务是打造CPU的“寄存器堆”。
为什么需要寄存器? 视频开头解释了直接让指令操作内存地址的弊端:指令会变得非常长(比如36位、68位),效率低下。引入寄存器作为CPU内部临时存储数据的高速单元,可以大幅缩短指令长度(例子中从36位减到10位),并减少与慢速内存的交互,提升效率。
寄存器的发展历史: 视频简要回顾了从早期只有少数寄存器(如6502的3个8位通用寄存器)到现代处理器(如RISC-V的32个通用寄存器)的演变,说明了寄存器数量和功能的重要性。
寄存器堆的设计: 解释了将多个寄存器组织成“寄存器堆”的原因:CPU指令通常一次只读写少量寄存器(如:读两个,写一个),因此不需要为每个寄存器单独布线。寄存器堆通过统一的读写端口和地址选择,高效地管理多个寄存器。
动手搭建: 这是视频的重点和亮点。UP主在面包板上使用74HC377寄存器芯片和74HC541三态缓冲器芯片,一步步搭建了一个包含2个8位寄存器的寄存器堆原型。这个寄存器堆具有:
1个写入端口:通过“写入地址”选择目标寄存器,在“写入数据”端口提供数据,时钟触发时存入。
2个读取端口:通过两个“读取地址”可以同时选择两个寄存器,它们的值会分别出现在两个“读取数据”端口上。甚至可以同时读取同一个寄存器。
地址解码与冲突避免: 使用74HC139解码器芯片将二进制地址转换为“独热码”,确保同一时间只有一个寄存器被选中进行读写操作,避免了多个输出同时驱动总线造成的短路问题。
功能演示: UP主现场演示了向指定寄存器写入数据、从指定寄存器读取数据、同时读取两个寄存器等操作,证明了电路的正确性。
未来展望: 提到当前2个寄存器是初步版本,未来可能会制作成PCB以扩展更多寄存器(如4个或更多),并可能为了处理16位数据而增加第三个读取端口。下一集计划将这个寄存器堆与之前构建的程序计数器、程序存储器等部分集成。
视频标签:
计算机组成原理 自制CPU 寄存器堆 数字电路 硬件设计 计算机科学 从零造电脑 硬件编程 74HC377 74HC541 三态缓冲器 地址解码 面包板项目 电子工程 技术DIY 硬件开发 CPU设计 计算机架构 RISC-V x86 6502 Z80 处理器 编程 学习电子 极客 科技爱好者

Comments

顺着笔迹的河流 2025-10-06

玩个图灵完备就都知道了。

♥ 8

zi01130012 2025-10-06

这种把概念具像化帮助理解真的是很好的学习过程

♥ 4 ↩ 1

只是一块璞玉 2025-10-06

可惜成不了产业,只能作为教育改革的一部分

♥ 3 ↩ 2

沃夫斯姬 2025-10-06

好通透

♥ 2

颜珞玖i 2025-10-07

厉害[打call][打call][打call]

♥ 1

只是一块璞玉 2025-10-06

谢谢up[笑哭][笑哭][桃源_缘分][桃源_缘分][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇][保卫萝卜_哇]

♥ 1 ↩ 1

只是一块璞玉 2025-10-06

这不超标了?

♥ 1 ↩ 1

-波_比- 2025-10-05

[喜欢]

♥ 1