SMS Derfflinger
Just for fun.
首页
文章
标签
分类
关于
Lec17-20 CPU Data Path
最近更新:2025-01-26
|
字数总计:692
|
阅读估时:2分钟
|
阅读量:
次
Data Multiplexors
控制数据的输入,多路复用
n = 1的情况下,
ALU
通过输入多路复用器和加法器减法器构成
Adder
多位的异或操作检查1的个数,1的个数为奇数时为真,1的个数为偶数时为假
多位加法器由级联多个一位加法器构成
为1时,发生溢出
补码的情况下,看最高位的1位加法器
overflow =
Subtractor
a - b = a + (-b), 将b转为-b(取反并加1), 然后使用加法器
Building processor
处理器本质上是一个复杂的状态机,由数据通路和控制单元组成,在每个时钟周期中更新状态
指令执行分为多个阶段,每个阶段设置一个逻辑块
取指令
解码
执行
访问内存
写回寄存器
多个阶段是在同一个时钟周期内发生的
每条指令在执行过程中都会读取和更新寄存器、内存、程序计数器的状态
R-type add instruction
执行过程:
R-type sub instruction
与add指令非常相似
通过查看第30位的值决定是add还是sub,决定运算器执行何种运算
其余的R类指令都可以复用add指令的设计
immediate
可以直接造一个新的,但是最好还是复用现在有的(废话)
在R类指令数据通路的基础上使用一个输入多路复用器,决定连接到imm还是rs2
立即数有12位,需要扩展到32位
加入lw
不为load指令设计新的数据通路,复用之前的数据通路,在最后再加入数据选择器
加入sw
加入数据选择器
目前的立即数生成器只是扩展到32位,需要更改。I类指令和R类指令的立即数位置不一样,需要加数据选择器
分支指令
需要执行分支计算,评估和新地址的计算,只需要改变PC的值
分支计算器只输出是否等于和是否小于,通过逻辑运算得到其他结果
jalr
与I类指令共用相同的立即数格式
CSR(控制和状态寄存器)
csr:控制和状态寄存器,不包括在基本isa中,但是isa一般都会实现csr
csr类指令
system类指令:主要向操作系统提供服务
add指令的时序
控制单元用于数据通路的控制逻辑
控制单元可以使用只读存储器或者一堆逻辑门实现
只读存储器:实际上作为一个真值表,很受欢迎,简单,容易扩展,有冗余
一堆逻辑门:更加紧凑,高效
2024-09-20
该篇文章被 Derfflinger
打上标签:
Arch
归为分类:
CS61C