设计两种体系结构的单周期cpu核

设计两种体系结构的单周期cpu核

  • 体系结构
    • 关于体系结构的基本知识
      • 计算机体系结构
      • 指令体系结构
      • 处理器结构
      • 并行处理器体系结构
    • 哈佛体系结构
    • 冯诺依曼体系结构
    • 一些基本知识
        • 单周期cpu核
        • 单周期cpu核的基本工作过程
    • 设计哈佛体系结构的单周期cpu核
    • 设计冯诺依曼体系架构的单周期cpu核

体系结构

关于体系结构的基本知识

计算机体系结构

计算机体系结构(Computer Architecture)是计算机科学中的一个重要分支,主要研究计算机系统的硬件组成、指令集体系结构、操作系统、编译器、程序设计语言等方面的问题。计算机体系结构是计算机系统的基础,决定了计算机系统的性能、可靠性和可扩展性等重要特性。

指令体系结构

定义计算机处理器的指令集,包括指令的种类、格式、操作码和操作数等。

处理器结构

包括数据通路、控制单元、寄存器和存储器等组成部分。

并行处理器体系结构

包括多核处理器、向量处理器、集群系统等不同类型的并行处理器,以及它们的组成方式和互连结构。

哈佛体系结构

设计两种体系结构的单周期cpu核_第1张图片

哈佛体系结构是指将程序指令和数据存储器分开使用不同地址空间的计算机体系结构。在这种体系结构中,程序指令和数据分别存储在不同的物理存储器中,并且有不同的地址总线进行访问。

哈佛体系结构的主要优点是可以提高系统的带宽和效率,因为指令和数据使用不同的总线进行传输,可以同时进行指令的获取和数据的读写操作。但是由于指令和数据使用不同的存储器,因此在实现时需要使用更多的硬件资源。

冯诺依曼体系结构

设计两种体系结构的单周期cpu核_第2张图片在冯诺伊曼体系结构中,指令和数据存储在同一块存储器中,共享同一个地址空间。CPU 通过控制单元获取指令,然后将其送到算术逻辑单元执行。数据也从同一块存储器中读取,经过算术逻辑单元处理后,再写回到存储器中。

控制单元负责控制指令的获取和执行,它会从存储器中读取指令,并解码出指令中的操作码和操作数。然后,它会将控制信号发送给算术逻辑单元和寄存器文件,控制它们的操作。算术逻辑单元负责执行指令中的算术和逻辑操作,如加法、减法、移位和与、或、非等逻辑操作。寄存器文件存储着 CPU 中的寄存器,这些寄存器可以用来存储临时变量、指针、计数器等数据。

在冯诺伊曼体系结构中,指令和数据共享同一块存储器的特点,使得指令和数据的读取速度相同,但同时也存在着指令和数据访问冲突的问题,因为同一时间只能执行指令或者读写数据。

一些基本知识

单周期cpu核

单周期CPU核是指在CPU执行一个指令的过程中,所有阶段的操作都在一个时钟周期内完成。也就是说,每个时钟周期内,CPU只执行一条指令。

单周期cpu核的基本工作过程

设计两种体系结构的单周期cpu核_第3张图片

  1. 初始化:将PC设置为指令存储器中的起始地址;

  2. 取指:将PC中存储的地址发送给指令存储器,读取对应的指令,并将PC加上指令长度,指向下一条指令;

  3. 译码:将取到的指令送入控制单元,控制单元根据指令的操作码和其他信息生成控制信号,控制CPU中各个部件的操作;

  4. 执行:根据控制信号,从寄存器文件或存储器中读取数据,经过ALU进行计算,将结果写回寄存器文件或存储器;

  5. 重复以上步骤,直到程序执行完毕。

设计哈佛体系结构的单周期cpu核

设计一个哈佛体系结构的单周期CPU需要包括以下部件:

  1. 指令存储器(Instruction Memory):用于存储程序指令的存储器,可以使用ROM或者FPGA内部静态存储器(block RAM)实现。
  2. 数据存储器(Data Memory):用于存储数据的存储器,可以使用RAM或者FPGA内部静态存储器(block RAM)实现。
  3. 指令寄存器(Instruction Register):用于存储当前执行的指令,它从指令存储器中读取指令,并将其送到指令译码器中解码。
  4. 指令译码器(Instruction Decoder):用于对指令进行解码,确定指令类型和操作数的位置,并产生控制信号来控制CPU中其他部件的工作。
  5. ALU(Arithmetic Logic Unit):用于执行算术和逻辑运算,例如加、减、与、或等运算。
  6. 寄存器堆(Register File):用于存储CPU中的寄存器,包括通用寄存器和特殊用途寄存器。
  7. 数据通路(Data Path):用于连接CPU中各个部件的信号线路,包括指令存储器、数据存储器、指令寄存器、指令译码器、ALU和寄存器堆等。
  8. 控制单元(Control Unit):用于产生控制信号,控制CPU中各个部件的工作,例如控制ALU执行何种运算、控制数据通路中的多路选择器选择何种信号等。
  9. PC(Program Counter):用于存储下一条指令的地址,每次执行完一条指令后,PC自动加1,指向下一条指令。
  10. 时钟模块(Clock Module):用于产生时钟信号,控制CPU中各个部件的同步工作。

设计冯诺依曼体系架构的单周期cpu核

设计一个冯诺依曼体系结构的单周期CPU核需要以下主要部件:

  1. 指令存储器(Instruction Memory):用于存储机器指令的存储器。
  2. 数据存储器(Data Memory):用于存储程序运行时的数据的存储器。
  3. 控制单元(Control Unit):负责解析指令、生成控制信号和处理异常。
  4. ALU(算术逻辑单元):执行算术和逻辑运算。
  5. 寄存器文件(Register File):用于存储CPU内部寄存器。
  6. 数据通路(Data Path):用于将控制信号传递到CPU各个部件,并将数据传输到各个存储器。
  7. PC(程序计数器):用于存储下一条要执行的指令的地址。
  8. 常量存储器(Constant Memory):用于存储常量数据的存储器。
  9. 符号扩展器(Sign Extender):用于将立即数扩展成32位。
  10. MUX(多路复用器):用于选择数据通路中不同的信号。
  11. 时钟模块(Clock Module):用于产生时钟信号,同步各个部件的操作。
  12. 暂停模块(Halt Module):用于停止CPU的执行。

你可能感兴趣的:(单周期cpu,MIPS,fpga开发,硬件工程)