#22 构建超标量CPU之我的CPU现在能16位跳转了
合集 · 从零构建超标量 CPU (34)
-
#1 构建超标量CPU之系列开篇与核心概念
8:14
-
#2 构建超标量CPU之单步时钟
11:40
-
#3 构建超标量CPU之可调时钟
5:26
-
#4 构建超标量CPU之时钟选择器
10:41
-
#5 构建超标量CPU之复位同步器
9:46
-
#6 构建超标量CPU之程序计数器
14:58
-
#7 构建超标量CPU之实现逐条执行指令
23:08
-
#8 构建超标量CPU之实现指令相对跳转
14:05
-
#9 构建超标量CPU之实现选择下一步要执行的指令
14:22
-
#10 构建超标量CPU之重置程序计数器
12:48
-
#11 构建超标量CPU之添加程序存储器
15:23
-
#12 构建超标量CPU之定义初始指令集
23:14
-
#13 构建超标量CPU之如何从8位内存中获取16位数据
27:15
-
#14 构建超标量CPU之升级至16位指令集
15:23
-
#15 构建超标量CPU之程序计数器PCB
1:01:38
-
#16 构建超标量CPU之寄存器堆工作原理
29:20
-
#17 构建超标量CPU之如何访问寄存器?
50:31
-
#18 构建超标量CPU之打造属于你自己的逻辑分析仪
56:33
-
#19 构建超标量CPU之使用Python进行电路测试
1:00:29
-
#20 构建超标量CPU之寄存器PCB
49:40
-
#21 构建超标量CPU之扩展寄存器堆
41:28
-
#22 构建超标量CPU之我的CPU现在能16位跳转了
18:30
-
#23 构建超标量CPU之编写汇编器:指令解析
48:12
-
#24 构建超标量CPU之编写汇编器:内存布局
19:05
-
#25 构建超标量CPU之编写汇编器:指令编码
19:30
-
#26 构建超标量CPU之编写汇编器:输出二进制文件
17:20
-
#27 构建超标量CPU之计算机如何做加法?
45:35
-
#28 构建超标量CPU之教我的CPU“学会”加法
46:12
-
#29 构建超标量CPU之计算机如何实现负数运算?
47:01
-
#30 构建超标量CPU之进位标志
51:28
-
#31 构建超标量CPU之实现算术逻辑单元的位移功能
32:25
-
#32 构建超标量CPU之添加位移指令
55:35
-
#33 构建超标量CPU之解码ALU微操作
42:29
-
#34 构建超标量CPU之实现布尔代数运算
35:13
Description
https://www.youtube.com/watch?v=ViJdSGaXLWA 本视频是我们8位超标量乱序处理器构建系列的重大突破!我们成功解决了之前CPU只能寻址256字节程序的致命限制。 核心内容: 问题所在: 之前的绝对跳转指令只能使用8位地址,导致程序被限制在内存的低256字节区域,严重制约了复杂程序(如操作系统)的开发。 硬件改造: 我们巧妙地利用了寄存器堆闲置的第三个读端口。通过将其与第二个读端口联动,实现了自动读取一对相邻寄存器(如R0和R1),从而组合出16位的完整地址。 指令集更新: 移除了不实用的“立即数绝对跳转”指令,并重新定义了“寄存器绝对跳转”指令的语义,使其能跳转到16位地址空间的任何位置(0x0000 - 0xFFFF)。 成功演示: 通过修改测试程序,我们成功让CPU跳转至内存远端(如地址0xF040)执行代码,LED灯图案循环正常显示,验证了64KB内存寻址能力的实现。 这次升级为未来实现内存加载/存储、复杂运算乃至操作系统探索铺平了道路。在下一集中,我们将开始构建专属的汇编器,并着手实现加减法等核心运算功能! 时间轴: 00:00 - 回顾与问题引入 00:45 - 硬件改造思路:联动寄存器读端口 02:30 - 实际飞线连接过程 04:15 - 更新程序计数器与内存地址连接 05:50 - 指令集架构(ISA)的相应修改 07:20 - 修改测试程序,目标跳转到高端内存 09:00 - 激动人心的实机演示:跳转成功! 10:30 - 总结成果与展望未来(汇编器、算术单元)
Comments
[打call]
♥ 2
我有个问题不解,带立即数的相对跳转怎么识别是向前跳转还是向后跳转呢,因为当前地址是 16 位的,立即数偏移地址是 8 位的,意味着高 8 位偏移地址一直是 0,那就一直是正数,虚心求教[保佑]
↩ 10
字幕有点小啊[吃瓜]
↩ 1