计算机组成与设计硬件/软件接口 处理器

1.导入

一个计算机的性能由三个关键因素决定:指令数目、时钟周期长度和每条指令所需要的时钟周期数(CPI)

  • 编译器和指令集 ----决定指令数目
  • 处理器实现方式 ----决定时钟周期长度和CPI

一个基本的MIPS指令集的核心子集:

  • 存储器访问指令:lw,sw
  • 算数逻辑指令:add,sub,and,or,slt
  • 分支指令:beq,j

2.数据通路中的逻辑单元

  • 组合单元:输出只取决于输入,输入相同时输出完全相同,因为其内部没有存储单元
  • 状态单元:至少两个输入和一个输出,输入为写入数据和时钟信号,该单元随时可读

时钟方法:用于确定数据相对于时钟何时稳定和有效的方法(以边沿触发时钟为例):

因为只有状态单元能存储数据值,所有组合逻辑单元都必须从状态单元集合接收输入,并将输出写入状态单元集合中

在这里插入图片描述

控制信号:用来决定多选器选择的信号。

因为若某状态单元不是每个周期都进行修改,就需要写控制信号,只有时钟边沿到来并且控制信号有效时,状态单元才能改变状态

3.建立数据通路

设计一个数据通路,需要清楚每种MIPS指令需要的数据通路部件,由于R指令有3个寄存器操作数,每条指令都要从寄存器堆读出两个数字,并再写入一个数据字。读写都需要输入寄存器号,写还需要输入需要写入的数据

在这里插入图片描述
以分支指令为例,两个寄存器用于比较是否相等,一个16位偏移量用于计算相对与分支指令所在地址的分支目标地址:

beq  $t1,$t2,offset

数据通路:
在这里插入图片描述
关于左移两位,因为指令中的偏移量是按照字(32)寻址的,而在寄存器中是按照字节(8)寻址的,所以字节寻址是字寻址的4被,即左移两位

4.ALU控制

  • 采用多级译码方法:主控制单元生成ALUOp作为ALU控制单元的输入,再有ALU控制单元生成真正控制的ALU的信号。
  • 使用多级译码可以减小主控制单元的规模,多个小控制单元还可能提高控制单元的速度,控制单元性能对时钟周期非常关键
    将2位LALUOp和6位funct映射为4位ALU控制信号,组合成一张有意义的真值表
    在这里插入图片描述

5.主控单元

  • 指令格式

在这里插入图片描述

  • 一个基本的数据通路

在这里插入图片描述

注意:ALU的第二个输入和要存入寄存器堆的数据需要两个不同的来源

  • 控制信号
    在这里插入图片描述
    这7位信号和2位ALUOp组成的9位信号,可以根据控制单元的6位输入信号,及操作码来设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值