• 计算机组成与设计(八)—— 单周期处理器


    处理器的设计步骤

    1. 分析指令系统,得出对数据通路的需求
    2. 为数据通路选择合适的组件
    3. 连接组件,建立数据通路
    4. 分析每条指令的实现,以确定控制信号
    5. 集成控制信号,完成完整的数据通路

    具体设计步骤

    (一)分析指令系统

    MIPS的所有指令是非常多的,我们只实现其简化版,包含如下6种:

    (二)需求分析

    需求分析,需要存放指令地址的32位寄存器(PC),需要存放指令的存储器,可读,数据和指令均为32位(MEM[PC])。还需要一个寄存器堆,用来保存源操作数和目的操作数,一个ALU进行运算。

    (三)选择组件

    所以我们需要如下组件:

    • 算术逻辑单元(ALU):操作数为2个32位数,来自寄存器或扩展后的立即数
    • 立即数扩展部件:将一个16位立即数扩展为32位,扩展方式包括零扩展和符号扩展
    • 程序计数器(Program Counter,PC):是一个32位寄存器,支持两种加法:加4或加立即数
    • 寄存器堆(Register File):包含32个寄存器,每个32位宽;支持读和写操作
    • 存储器:一个是只读的指令寄存器,一个可读写的数据存储器,两者地址和数据都是32位(这两个存储器实际对应CPU中的指令高速缓存和数据高速缓存,虽然冯·诺伊曼结构要求指令和数据不加区分的存储,但在CPU的高速缓存是做区分的)

    寄存器堆

    内部构成是3个32位寄存器。Ra(5位):寄存器编号,将该编号寄存器的内容放到busARb(5位):寄存器编号,将该编号寄存器的内容放到busBRw(5位):寄存器编号,在时钟上升沿,如果写使能信号有效,将busW的内容存入该寄存器。

    busAbusB:两组32位的数据输出,busW:一组32位的数据输入

    存储器

    Address:32位的地址信号,该信号指定一个存储单元,将其内容送到数据输出信号。Write Enable:写使能信号,在时钟上升沿,如果写使能信号有效(为1),将数据输入信号的内容存入地址信号指定的存储单元。

    Date In:32位的数据输入信号。Date Out:32位的数据输出信号。

    (四)建立数据通路

     建立数据通路,即根据指令的需求连接组件。指令的需求包括所有指令的共同需求、不同指令的不同需求。

    所有指令的共同需求

    主要包括取指令和更新PC

    不同指令的不同需求

    加法和减法指令的需求是最简单的

    逻辑运算指令有立即数参与,需要增加两个二路选择器,一个选择数据输入来自寄存器还是立即数,另一个选择目的寄存器是rd还是rs

     访存指令需要对立即数进行符号扩展,同时需要一个数据存储器用来读取和写入数据

    数据通路初步完成

    (五)控制信号的集成

    现有指令所需的控制信号

     控制信号哪来的呢?肯定来自指令。我们说opcodefunc决定了指定功能,理所当然,控制信号也由它们决定。

    opcodefunc决定了8个信号

    add指令(add  rd,rs,rt;PC = PC + 4)为例,看需要将哪些信号设为有效,哪些设为无效,哪些任意。如图所示

     用同样的分析方法,我们可以得到其它的指令的信号设置,它们的逻辑表达式如下:

    根据数字逻辑的知识,我们很容易求出每个控制信号关于opcodefunc的逻辑表达式

    例如,求$RegDest$,按行观察

    $RegDest = add + sub$

    $add = rtype · func5 · ~func4·~func3·~func2·~func1·~func0$

    $sub = rtype · func5 · ~func4·~func3·~func2·func1·~func0$

    $rtype = ~op5·~op4·~op3·~op2·~op1·~op0$

    同理可得到其它表达式的逻辑表达式

     观察发现,这些表达式都是先相与、再相或,所以可用如下的电路来实现

    参考链接:https://www.coursera.org/learn/jisuanji-zucheng/lecture/kRJer/506-kong-zhi-xin-hao-de-ji-cheng

  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/lfri/p/10050089.html
Copyright © 2020-2023  润新知