计算机组成原理之处理器(单周期)

发现更多的计算机知识,欢迎访问xiaocr的个人网站

引言

处理器的实现方式决定了时钟周期长度和CPI。实现方式有单周期与流水线,本篇谈谈单周期处理器。

目前CPU的频率一般是3GHZ/4GHZ,但是频率是有极限值的,受cycletime影响

基本的RISC-V实现

  • 存储指令:ld,sd
  • 算术逻辑指令 :add ,sub,and,or
  • 条件分支指令:beq

实现每条指令的前两个步骤是一样的:

  • 程序计数器发送到指令所在的存储单元,并从其中取出指令
  • 根据指令的某些字段选择要读的一个或两个寄存器

所有类型的指令在读取后都用ALU(存储器访问,算术逻辑,条件分支比较)

单周期CPU概览

file


流程介绍

所有的指令都用程序计数器获得指令在指令存储器中的地址

  • 取到指令后,指令的对应字段知道要使用的寄存器操作数。
  • 寄存器操作数一被取出,即可用于计算存储器地址(load指令或store指令)、计算算术运算结果(定点算术逻辑指令)或进行相等检验(分支指令)。
  • 如果是算术指令,ALU的结果要写回寄存器。
  • 如果是存取操作,ALU的结果黄作为存储器地址以及存储来自寄存器的值,或将存储器数据加载到寄存器中。
  • 对于分支指令ALU的输出来觉得下一条指令的地址,这个地址可能来自PC和分支偏量相加的加法器,也可能来自PC+4的加法器。

时钟同步方法

一般用边沿触发来到达时钟同步的目的。这也决定了要在一个时钟周期内读出寄存器的值。

建立数据通路

数据通路单元

数据通路单元是一个用来操作或保存处理器中数据的单元。在RISC-V实现中,数据通路单元包括指令存储器、数据存储器、ALU和加法器。

如果一个单元内部有存储功能,它就包含状态,称为状态单元

file

程序计数器

包含当前程序正在执行指令地址的寄存器,是一个64位的寄存器,在每个周期结束后被写入。

存储单元

寄存器堆

处理器的32个通用寄存器位于寄存器堆(register-file)的结构中

file


数据存储单元

读写信号是相互独立的,但仅有一个可以在任意给定的时钟上有效

为实现beq指令,需要将PC值与符号扩展后的指令偏移量相加得到分支地址

file


分支指令

  • 指令系统结构规定了计算分支目标地址的基址分支是所在地址
  • 将偏移量左移以为以表示板子为单位的偏移量,这样的偏移有效范围扩大两位

file


ALU控制

”load/store = add“ “branch = sub" “R type ~ depend on opcode”

file


file


控制信号

file

file


数据通路操作

R型

  • 取出指令,PC自增
  • 从寄存器堆读两个寄存器,对从寄存器堆读出的数据进行操作
  • 根据部分操作码确定ALU的功能,对寄存器堆读出的数据进行操作
  • 将ALU的结果写入寄存器堆中的目标寄存器

file

load指令

步骤:

  • 从指令存储器中取出指令,PC自增
  • 从寄存器堆中读出对应一个寄存器的值
  • ALU将从寄存器堆中读出的值和符号扩展后的12位(偏移量)相加
  • 将ALU的结果用作数据存储器的地址
  • 将从寄存器读出的数据写入寄存器堆

file

beq指令

  • 从指令存储器中取出指令,PC自增
  • 从寄存器堆中读出两个寄存器x1和x2
  • ALU将寄存器堆读出的两数相减。PC与左移一位、符号扩展的指令中的12位相加,结果是分支目标地址
  • ALU的零数超出决定将哪个加法器的结果写入PC

file

本文由博客一文多发平台 OpenWrite 发布!

### 回答1: 北工大Verilog单周期处理器是北方工业大学在硬件设计课程中讲授的一种单周期处理器实现方法。Verilog是一种硬件描述语言,能够方便地描述和设计数字电路。单周期处理器是一种简单的处理器架构,所有指令的执行时间都相同。 这个单周期处理器由几个关键组件组成,包括指令存储器、控制器、ALU、寄存器文件和数据存储器。指令存储器用于存储程序的指令,控制器根据指令的操作码产生相应的操作信号,ALU负责执行算术和逻辑操作,寄存器文件用于存储数据和中间结果,数据存储器则用于存储程序的数据。 在执行一个指令的过程中,首先从指令存储器中读取指定地址的指令,然后控制器根据操作码产生相应的操作信号,从而控制ALU执行特定的操作。同时,控制器还会根据指令中的寄存器地址,从寄存器文件中读取相应的数据,并将结果存储回寄存器文件或数据存储器中。 这个单周期处理器实现了一些基本的指令,包括加法、减法、与、或等算术和逻辑运算。同时,它还支持数据的加载和存储操作,能够从数据存储器中读取数据,或将数据存储到数据存储器中。 北工大Verilog单周期处理器的设计可以帮助学生更好地理解和学习计算机体系结构和硬件设计的基本原理。通过实践设计这个处理器,可以加深对指令执行流程、数据通路和控制信号的理解。同时,通过对处理器的调试和测试,还可以提高学生解决实际问题和故障排除的能力。 ### 回答2: 北工大verilog单周期处理器是北京工业大学的一种基于verilog语言设计的单周期处理器,具有以下特点和功能。 首先,北工大verilog单周期处理器采用了单周期执行的设计框架,即每个指令的执行在一个时钟周期内完成。这种设计简单直观,易于理解和实现,适用于对处理器时序要求不高的应用场景。 其次,该处理器的指令集支持多种常见操作,包括算术逻辑运算、数据传输、分支跳转等。通过合理的指令设计和组织,可以满足大部分应用的要求,实现多种功能。 第三,北工大verilog单周期处理器具有完整的数据通路和控制单元。数据通路包括寄存器堆、运算器、存储器等模块,通过合理的连接和控制,实现指令的读取、执行和写回等操作。控制单元负责生成各模块的控制信号,确保指令的正确执行。 此外,北工大verilog单周期处理器还具有一些优化和功能扩展的设计。例如,可以通过引入流水线等技术,提高处理器的执行效率;可以增加中断处理功能,提高系统的稳定性和可靠性。 总之,北工大verilog单周期处理器是一种基于verilog语言设计的简单、易理解和易实现的单周期处理器,具有多种指令和功能,并可以通过优化和扩展满足不同应用场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cr不是铬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值