Skip to content

Latest commit

 

History

History
723 lines (646 loc) · 29.7 KB

File metadata and controls

723 lines (646 loc) · 29.7 KB

数字逻辑与处理器 25问与答

数字电路概论知识

1. 什么是模拟信号/数字信号?数字电路的优点?数字电路分析和设计的基本过程?

  • 模拟信号与数字信号:
    • 模拟信号是连续变化的信号
    • 数字信号是离散的信号,是模拟信号经过采样、量化、编码之后的得到的。
    • 模拟信号→时间采样→幅度量化→数字信号
    • 数字信号→数模转换→滤波→模拟信号
  • 数字电路的优点:
    • 集成化程度高
    • 抗噪声能力强
    • 运算功能强大:数值和逻辑运算都可实现
    • 信号的传输和处理更有效更可靠
    • 数字信号便于存储
  • 数字电路的分析:
    • 基础器件→电路结构→抽象计算(算法):层次由低到高
  • 数字电路的设计:
    • 抽象计算(算法)→电路结构→基础器件:层次由高到低

2. URISC是什么?ISA是什么?有什么作用?

  • URISC:Ultimate Reduced Instruction Set Computer
    • 超级精简指令计算机
    • 只有一条指令的通用计算机
    • 结构:程序计数器、寄存器、内存地址寄存器、内存数据寄存器
  • ISA:Instruction Set Architecture
    • 指令集体系结构
    • 硬件与软件之间的接口

3. 冯·诺依曼计算机的结构组成?

  • 输入设备:输入程序和数据
  • 存储器:存放程序、数据和结果
  • 运算器:处理和运算数据
    • ALU:Arithmetic Logical Unit -- 算数逻辑单元
  • 输出设备:输出结果
  • 控制器:实现计算机自动化,指令自动装入和自动执行

4. 数字电路领域有哪些基本原理?

  • 摩尔定律
  • 计算复杂性理论:计算机求解问题的难易程度
    • 时间复杂性:多项式时间,指数型时间不可实现
    • 空间复杂性:占用的空间资源
  • 算法复杂性理论:
    • Kolmogorov算法复杂度(算法复杂度):最短的程序长度
  • 能耗速度理论:
    • 香农理论:传输1bit数据所需最低能量为0.693kT
    • 海森堡测不准原理→(推出)→传输1bit数据最小开关时间为0.04ps
    • 门级特征尺寸越小,集成度越大,每个开关动作消耗能量急剧上升

数的表示与布尔代数

5. 编码与解码?编码有什么特性?为什么使用二进制编码?二进制编码有哪些类别?其他进位计数制?

  • 编码:信息从一种形式转换为另一种形式
  • 解码:编码的逆过程体现
  • 编码的基本特性:
    • 普适性
    • 统一性
    • 结构性
    • 紧凑性
    • 鲁棒性
  • 二进制编码的优点:
    • 容易表示,两种对立的状态
    • 运算简单
  • 二进制编码的分类:
    • 有符号整数编码:
      • 原码:符号位和幅值表示法
      • 反码:负数反码是原码符号位不变、数值位按位取反
      • 补码:负数补码是反码的基础上末位加1
      • 正数原码、反码、补码是一样的
      • 错误问题:
        • 有符号运算,出现溢出(超出表示范围)代表结果错误
        • 无符号预算:出现进位代表结果错误
    • BCD码:二进制表示十进制
      • 一般使用8421码
    • 格雷码:
      • 相邻状态的编码只有一位数字发生变化
    • ASCII码:
      • 采用7位二进制代码对字符进行编码
  • 进位计数制-数制:
    • 基数
    • 数码
    • 位权
  • 位序:
    • MSB:Most Significant Bit,最高有效位
    • LSB:Least Significant Bit,最低有效位

6. 布尔代数中有哪些重要的定理?

  • 德摩根定理/反演律
  • 对偶定律:
    • X+0=X → (对偶) → X*1=X
    • 注意对偶定律中,与和或对偶,0与1对偶,但是变量X不变
  • 多数定理:
    • XY+X'Z+YZ = XY+X'Z
    • 应用:
      • 用于化简逻辑表达式
      • 用于消除竞争冒险
  • 求反函数:
    • 与和或互换,0与1互换,布尔变量求反

组合逻辑分析与设计

7. 组合逻辑如何用布尔代数式表示?得到的布尔代数式如何化简?

  • 组合逻辑标准式:
    • 最小项的或
      • 最小项:包含全部变量(原变量或反变量)的与项,例A'B'CD
    • 最大项的与
      • 最大项:包含全部变量(原变量或反变量)的或项,例A+B'+C'+D
    • 开状态项:使函数为1的所有输入组合
    • 关状态项:使函数为0的所有输入组合
    • 无关项:实际电路中不会出现的项,在真值表中可以取0或1任一值
  • 为什么要化简布尔代数式:
    • 使得形式更简单,功能更明显
    • 门电路更简单,容易实现
    • 节省元件和空间资源
  • 化简布尔代数式的方法:
    • 使用布尔代数的定理
    • 卡诺图化简法:找到能覆盖所有输出取值为1的本原蕴含项的最小集合
      • 蕴含项:开状态项集合中的单个元素
      • 本原蕴含项:无法与另一个蕴含项相结合的蕴含项
      • 本质本原蕴含项:
        • 某元素仅由一个本原蕴含项覆盖,该本原蕴含项一定是本质本原蕴含项
        • 本质本原蕴含项是最简表达式的一部分
    • 计算机辅助化简:QM算法
      • 搜索本原蕴含项
      • 寻找最小覆盖

8. 给定组合逻辑电路,如何分析其功能?给定一个功能要求,如何设计出满足要求的组合逻辑电路?

  • 组合逻辑的分析:
    • 找出输入输出之间的逻辑表达式
    • 列出真值表
    • 确定电路功能
  • 组合逻辑的设计:
    • 根据功能进行逻辑抽象
    • 列出真值表
    • 化简布尔表达式
    • 确定电路结构
    • 映射成基础器件

9. 多位加法器的串行和并行各有什么优缺点?

  • 串行加法器
    • 优点:电路简单,使用器件少
    • 缺点:位间进位是串行进行的,第i位的加法必须等到低位进位到来后才能进行
  • 并行加法器
    • 电路复杂
    • 运算速度快
  • 超前进位(CLA,Carry Look Ahead)
    • 理论上,CLA可以做出任何字长的全超前进位并行加法器
    • 受到门电路扇入扇出的限制,单级CLA的位数有限
    • 解决方法:
      • 多个超前进位并行加法器串联

10. 常用的开关电路有哪些?

  • CMOS

    • 与门
    • 非门
    • 或门
    • 与非门
    • 或非门
  • 传输门

    image

    • 使能信号为1时,两个管子至少一个导通
    • 使能信号为0时,两个管子同时截止
    • 传输门可以用来实现三态门:
      • 状态1:逻辑0
      • 状态2:逻辑1
      • 状态3:高阻态
      • 三态门的应用:总线
  • CMOS漏极开路门

  • 线与:多个门的输出直接相连,实现功能

11. 什么是毛刺?什么是冒险?冒险的分类有哪些?如何消除组合电路中的冒险?逻辑电路中有哪些非理想的因素?

  • 毛刺:
    • 组合逻辑电路输出端的多余脉冲
    • 输出值本应保持不变,但是出现了瞬时变化
  • 冒险:
    • 电路的固有特征,若电路可能产生毛刺,则电路存在冒险
    • 存在冒险的电路是否产生毛刺取决于输入值和电路的电特性
    • 冒险的分类:
      • 静态冒险:输出经历瞬时转换
      • 动态冒险:本应单次跳变的输出信号发生不止一次跳变
      • 无静态冒险,仍可能存在动态冒险
  • 消除静态冒险:
    • 前提:输出的毛刺是单端输入取值变化的结果
    • 方法一:使用多数定理,增加本原蕴含项
    • 方法二:使用采样脉冲
  • 逻辑电路的非理想因素
    • 稳态因素:
      • 逻辑电平:0或1对应的电压范围越宽,抗干扰能力越强
      • 噪声容限:输出电压与输入电压之前的电压差
      • 扇出系数:最坏负载情况下,一个逻辑门能驱动的输入端数目
        • TTL(晶体管-晶体管逻辑)电路的扇出系数一般小于10
        • 输出系数增大,负载电容增大,工作速度大幅下降
    • 动态因素:
      • 速度:逻辑门的输出状态转换时间
      • 延时:逻辑门输入发生变化到输出发生变化所用时间
        • 最小值
        • 平均值
        • 最大值
        • 坏处:可能导致冒险的存在
        • 好处:利用延时产生脉冲整形器
      • 功耗:CMOS理想情况下静态功耗为0,但由开关电流和短路电流会引起动态功耗
        • 降低功耗方法:降低电路电压和频率,但是导致工作速度下降

时序逻辑设计与有限状态机

12. 什么是时序逻辑电路?时序逻辑电路的时钟是什么?时钟信号如何产生?什么是有限状态机?有限状态机的分类?

  • 时序逻辑电路:
    • 定义:任一时刻输出不仅取决于当前的输入信号,还有原来的状态有关
    • 特征:时序逻辑电路必须含有具有记忆功能的存储器件
    • 过程的离散化是为了充分利用数字信号处理的简单快捷高效
  • 时钟:分布于包含记忆元件电路中的一个周期信号
    • 同步:保证所有元件在同一时刻改变状态
      • 时钟域:所有同步于同一个时钟信号的信号集合
    • 异步:不使用同一时钟信号
      • 跨时钟域:在两个不同的时钟域之间传递数据
    • 特性参数:
      • 周期/频率
      • 占空比
      • 摆率
      • 上升时间和下降时间
    • 时钟信号的产生:
      • 环形振荡器(电电53题):奇数个反相器头尾相连构成
    • 亚稳态:值可能是1也可能是0
      • 亚稳态不能避免
      • 合理设计容忍亚稳态:同步器/异步FIFO
  • 有限状态机:
    • 输入集合和输出集合都是有限的,状态的数目是有限的
    • 有限状态机可表达为五元组
    • Mealy机(米利机):
      • 输出依赖于当前网络状态和当前输入
    • Moore机(摩尔机):
      • 输出只依赖于电路当前状态,与当前输入无关
    • 有限状态机的自启动:
      • FSM处于非正常工作状态时,如果能在无其他干预的情况下,经过若干次状态转换进入正常工作状态
      • 不能自启动的电路可以通过增加组合电路实现自启动,将某个无用状态的次态改变,使其进入正常工作状态

13. 基本的时序逻辑单元有哪些?

  • 锁存器:任意时刻连续监测输入,并改变输出状态,与时钟信号无关(具有透明性)
    • 时间参数:
      • 最小脉宽:输入信号保持有效的最短时间
      • 延时:输入信号变化,导致输出信号改变所需的时间
      • 建立时间:锁存开始前,输入信号应保持不变的最短时间
      • 保持时间:锁存操作后,输入信号应保持不变的最短时间
    • 分类:
      • SR锁存器:Q+ = S + R'Q
      • 门控D锁存器
    • 应用:
      • 计算机或数字信号的输入缓冲电路
      • 防止输入信号到达时间不一致造成竞争与冒险
  • 触发器:仅在时钟信号有效时采样输入,并改变输出状态
    • 主从触发器:
      • 避免锁存器的透明性
      • 触发由时钟信号控制
    • 边沿触发器:
      • 利用时钟上升沿或下降沿进行触发
      • 输出会在触发器固有延时之后立即发生变化
    • 常见四种触发器:
      • RS触发器:Q+ = S + R'Q
      • JK触发器:Q+ = JQ' + K'Q
      • D触发器:Q+ = D
      • T触发器:Q+ = T'Q + TQ'
    • 触发器之间的转换:
      • D→T:D = T'Q + TQ'
      • D→JK:D = JQ'+K'Q
      • D→RS:D = S + R'Q
  • 时钟约束:
    • 相关物理量:
      • 时钟周期T
      • 触发器的传输延时t_cq
      • 组合逻辑电路的最大延时t_com_max
      • 组合逻辑电路的最小延时t_com_min
      • 建立时间t_setup
      • 保持时间t_hold
      • 时钟漂移t_skew:同一时钟信号到达两个不同时序单元时钟不一致
    • 不考虑时钟漂移:
      • 建立时间约束:T≥t_cq + t_com_max + t_setup
      • 保持时间约束:t_cq + t_com_min ≥ t_hold
    • 考虑时钟漂移:
      • 建立时间约束:T≥t_cq + t_com_max + t_setup + t_skew
      • 保持时间约束:t_cq + t_com_min - t_skew ≥ t_hold

14. 给定同步时序电路,如何分析其功能?给定一个功能要求,如何设计出满足要求的同步时序电路?(与第8题是镜像问题)

  • 同步时序电路的分析方法:
    • 根据电路写出触发器激励方程(触发器的输入端表示)
    • 将激励方程代入触发器特性方程(现态和输入信号的函数)得到次态方程(触发器的下一状态是什么)
    • 按照电路图得到输出方程(有限状态机的输出逻辑布尔表达式)
    • 根据次态方程和输出方程得到状态表
    • 根据状态表得到时序电路状态图
    • 根据状态图画出时序图
    • 最后确定电路行为和功能
  • 同步时序电路的设计方法:
    • 确定输入输出,抽象出一个有限状态机
    • 对状态进行化简
      • 行匹配技术(匹配:对具有相同次态和输出的行进行合并)
      • 蕴含表技术
    • 对状态进行分配
      • 顺序编码:一般顺序/格雷码顺序
      • 随机编码
      • 单点编码
      • 面向输出的编码
      • 最小位变化法
      • 基于次态和输入输出准则法
    • 确定激励方程与输出方程
    • 画出两级或多级逻辑电路图

15. 典型的时序逻辑电路有哪些?

  • 寄存器
    • 存储寄存器:仅用于存储
    • 移位寄存器:移位+存储
      • 按照移位方向:左移、右移、双向移位寄存器
      • 按照输入输出串并行:并入并出、串入并出、串入串出、并入串出
      • 串行输出:仅最后一个单元存储值可以输出
      • 并行输出:所有触发器存储值可见,输出端数目与触发器数目成正比
  • 计数器
    • 作用:记录输入脉冲个数
    • 定义:能够记录的最大值称为模
    • 应用:定时、分频、数字运算等
    • 分类:
      • 工作方式:同步、异步
      • 功能:加减、进制计数器等
    • 典型的计数器:
      • 加法/减法计数器
      • 特殊进制计数器(模n的计数器)
    • 基于移位寄存器的计数器:
      • 环形计数器:移位寄存器的串行输出接回串行输入
        • N个触发器,N个不同状态,模为N
      • 扭环形计数器:移位寄存器的串行输出取反接回串行输入
        • N个触发器,2N个不同状态,模为2N
        • 比环形计数器模增加一倍

计算机指令系统

16. 计算机相关的术语介绍:什么是计算机指令?什么是指令集?什么是指令集体系结构?程序是什么?机器语言?汇编语言?编译与解释?

  • 指令:控制计算机系统执行基本操作的命令,每条指令都可以用硬件实现
  • 指令集:控制计算机系统的一套命令的有限集合
  • 计算机本质上是指令处理机
  • 指令集体系结构:计算机硬件和软件的接口
  • 程序:描述完成一个确定任务的指令序列
  • 机器语言:计算机的全部二进制机器指令
  • 汇编语言:助记符指令的集合组成汇编语言
  • 汇编器:将汇编语言翻译成机器语言的程序
  • 高级语言,比如C、JAVA等
  • 编译器:将高级语言翻译成机器语言的程序
  • 解释:执行高级语言等价的机器语言指令序列
  • 解释器:用于解释高级语言语句的程序

17. 计算机性能的评价指标有哪些?受到什么因素影响?提高计算机性能的途径有哪些?

  • 响应时间:提高作业到完成作业所需时间(个人,用户直接感知的时间)

    • 缩短响应时间:使用更快的处理器
  • 吞吐量:一段时间内完成的作业数(企业)

    • 提高吞吐量:
      • 使用更快的处理器
      • 增加更多同类型的处理器
  • CPU执行时间:CPU真正花在运行某程序的时间

    • CPU执行时间=指令数×每条指令平均时钟周期数(CPI)×时钟周期
  • 计算机性能定义:1/CPU执行时间

    • 影响计算机性能的因素:

    image

  • 提高计算机性能的途径:保持其他两项不变的前提下减小其中一项

    • 优化编译技术:消除冗余代码,减少指令数
    • 快速电路技术/流水线技术:减小信号传输延迟,减少时钟周期

18. 什么是MIPS?MIPS体系结构?MIPS指令集?MIPS指令的格式?MIPS指令的寻址方式?

  • MIPS:可认为有双重含义:

    • 无互锁流水级的微处理器
    • 每秒百万指令
  • 32个通用寄存器:只有32个寄存器的原因:寄存器太多会延长时钟周期

    • $0 无论写入什么永远返回0
    • $31被子程序调用指令,用来保存返回地址
  • 对内存的访问:

    • load 装入
    • store 存储
    • 算数和逻辑运算指令不能直接访问内存
  • MIPS字节序:

    • 一般使用大端模式,与网络序相同
  • MIPS指令的分类:

    • 数据处理:算术与逻辑运算
      • 算术逻辑运算操作数只能是寄存器或立即数
    • 数据传送:寄存器和内存间数据交换
      • 实现存储器和寄存器间数据的传送
      • 内存寻址方式:基址(基址寄存器)+偏移量
      • 装入指令:
        • 符号扩展:lh装入半字,最左边16位以符号位填充,lb同理
        • 零扩展:lhu装入无符号半字,最左边16位补0
      • 栈:压栈与出栈
        • 一般栈按照从高到低的地址顺序增长
    • 分支与跳转:程序流程的控制
      • 顺序
      • 分支
      • 循环
      • 过程调用:跳转与链接指令jal
      • 过程返回:寄存器跳转指令jr
  • MIPS过程调用:

    • image

    • 过程调用的好处:

      • 缩短程序,节省内存
      • 减少程序编译时间
      • 有利于结构化程序设计,程序结构清晰,逻辑明确
  • MIPS指令格式:

    • R型(寄存器型)
      • 算术运算
      • 逻辑运算
      • 比较指令
    • I型(立即数型)
      • 数据装入
      • 数据存储
      • 分支指令:PC相对寻址
      • 寄存器-立即数指令:零扩展、符号扩展
    • J型(跳转型)
      • 伪直接寻址
      • 跳转地址:26位常数左移两位与PC高位拼接
  • MIPS寻址方式:

    • 寄存器寻址:操作数在寄存器中
    • 立即数寻址:常数为操作数,无须访问存储器
    • 基数+偏移寻址:
      • 用于装入和存储命令
      • 偏移量是16位有符号数
      • 任何通用寄存器可以作为基址寄存器
    • PC相对寻址:
      • 用于分支命令
      • 以PC寄存器作为基准,是因为条件分支往往跳转到当前指令附近的地址
    • 伪直接寻址:用于跳转命令

处理器:单周期、多周期、流水线

19. 什么是数据通路?有哪些数据通路部件?

  • 数据通路:数据在功能部件之间传送的路径
  • 数据通路部件:
    • 存储器:存储指令和数据
      • 寄存器
      • 寄存器堆
      • 数据存储器:包含单输入和单输出两条总线
      • 指令存储器:只读存储器
    • 通用寄存器
    • 程序计数器
    • 扩展器:符号扩展、无符号扩展
    • ALU单元:
      • 加法:行波进位或超前进位
      • 溢出检测:检测输入到最高位的进位不等于从最高位输出的进位
    • PC

20. 时钟同步方法有哪些?

  • 时钟输入:
    • 写操作时,时钟输入clk才有用
    • 读操作时,寄存器行为与组合逻辑电路一致
  • 边沿触发:
    • 在一个时钟周期内读出一个寄存器的值,经过一些组合逻辑,再次写入寄存器

21. 单周期MIPS数据通路的设计方法?单周期处理器的性能?

  • 思路:
    • 将指令分类
    • 为每条指令设计单独的数据通路
    • 合并数据通路
  • ALU控制单元:
    • 生成ALU的4位控制输入
    • 多层译码技术:
      • 主控制单元先生成ALUOp信号,作为ALU控制单元输入
      • ALU控制单元得到输入后,生成真正的ALU控制信号
      • 多层译码技术的优点:
        • 减少主控制单元规模
        • 提高控制单元速度
  • 各种指令的数据通路操作:
    • R型指令:
      • PC取指→指令存储器(同时PC+4准备下一指令)→读取输入两个寄存器的值→ALU运算单元进行运算→将计算结果写入指定寄存器
    • 装入数据:
      • PC取指→指令存储器(同时PC+4准备下一指令)→ALU计算数据的地址→在数据存储器中取出相应地址的数据→存入指定的寄存器
    • 分支命令:
      • PC取指→指令存储器(同时PC+4准备下一指令)→扩展移位之后与ALU运算结果相加得到跳转的指令地址→PC等于跳转到的指令地址
  • 单周期实现的性能:
    • 主要功能单元的操作时间:
      • 存储单元:200ps
      • ALU和加法器:100ps
      • 寄存器堆:50ps
      • 多路复用器、控制单元、符号扩展单元没有延迟
    • 单周期处理器时钟周期长度
      • 由执行时间最长的指令决定

22. 多周期处理器设计方法?有哪些异常处理?

  • 多周期的实现思路:

    • 将每条指令的执行分成一系列步骤,每一步占用一个时间周期
  • 多周期的优点:

    • 提高性能:不同指令占用不同时钟周期数
    • 降低硬件成本:一个功能单元可在一条指令的执行中多次使用
  • 多周期数据通路

    image

    • 与单周期数据通路的区别:
      • 单周期:1个ALU、2个加法器;指令和数据分别放在不同的存储器(哈佛体系结构)
      • 多周期:只要1个ALU,指令和数据放在同一个存储器之中(普林斯顿体系结构),并且增加了多个临时寄存器存储输出值,以便后面的时钟周期使用
    • 多周期一个周期最多完成下列操作之一:
      • 一次访存
      • 一次寄存器堆访问(2次读1次写)
      • 一个ALU操作
    • 多周期增加的寄存器:
      • 指令存储器(IR)
      • A、B:读出的寄存器操作数
      • ALUOut:ALU运算的结果
      • 除了IR,其他不需要写控制信号
  • 多周期处理器指令执行的步骤:

    • 取指令:从存储器中读取指令
    • 指令译码器并读取存储器
    • 指令执行,存储器地址计算/分支完成
    • 访问内存/R型指令完成
    • 装入指令完成(写入寄存器堆)
  • 多周期实现的性能:

    • 存储单元:200ps
    • ALU:100ps
    • 寄存器堆:50ps
    • 多路复用器、控制单元、符号扩展单元等没有延迟
  • 多周期的异常处理:

    • 异常和中断是除了分支和跳转之外,改变指令正常流动的事件
    • 异常:来自处理器内部不可预知的事件
      • 同步事件,由某一特定指令引起
      • 相同条件下,异常可以重现
      • 举例:算术溢出、未定义指令、内存访问错误、被零除
    • 中断:来自处理器外部不可预知的时间,比如I/O
      • 异步事件,与正在执行指令无关
      • 主要由I/O设备产生,可以被启用或禁止
    • 异常处理方式:
      • 记录产生异常的指令地址:
        • 向量方式
        • 原因寄存器:EPC寄存器,记录受影响的指令地址;Cause寄存器,记录产生异常事件原因的寄存器

23. 流水线技术的优点?流水线的原理?

  • 指令级并行处理
    • 通过减小CPI
    • 并行执行多条指令
  • 流水线基本概念
    • 将一个复杂任务细分为若干子任务,多个任务并行处理,通过时间重叠提高处理技术
    • 流水线不能减少单条指令的执行时间
    • 流水线可以提高指令的吞吐率
  • 流水线寄存器:
    • 将单周期数据通路改造为流水线数据通路的方法是在各级间有分割线的地方增加寄存器
    • 用于保存本级的执行结果,以便下一级的功能部件使用
  • 流水线寄存器堆的读写:
    • 寄存器堆操作发生在时钟周期半段
    • 寄存器堆操作发生在时钟周期半段
  • 流水线中的控制:
    • PC不需要单独的写信号,因为在每个周期都要写入
    • 流水线寄存器也不需要单独的写信号,因为在每个周期都要写入
  • 流水线中的异常处理:
    • 非精确中断:由操作系统确定到底哪条指令导致异常
    • 精确中断:将导致异常的指令地址计入EPC
  • 流水线处理MIPS指令的基本步骤:
    • IF--取指,从存储器读取指令
    • ID--译码并读取存储器
    • EX--执行运算或计算存储器地址
    • MEM--访问存储器
    • WB--将运算结果或取出的结果写回寄存器
  • 流水线的性能:
    • 流水线处理时间受限于最慢的处理资源
    • 吞吐率:单位时间处理指令的数量
      • 最大吞吐率:连续流动达到稳态后的吞吐率
      • 实际吞吐率:运行有限任务能达到的吞吐率
    • 加速比:不使用流水线所用时间与使用流水线所用时间之比
  • 流水线的冒险:
    • 结构冒险/资源冒险:
      • 定义:执行的多条指令同时使用一个部件,无法在同一个时钟周期内执行
      • 解决方法:增加资源(运算部件等),采用哈佛体系结构
    • 数据冒险:
      • 定义:一个操作必须另一个操作完成后才能进行,由数据相关关系导致,会严重影响流水线性能
      • 类型:Load-use型数据冒险
      • 硬件解决方法:数据转发(数据旁路)
        • 通过添加额外硬件,提前得到所需结果
        • 转发工作在EX执行命令段
      • 软件解决方法:指令调度(引入气泡等待)
    • 控制冒险:
      • 定义:当处理器需要根据一条指令的结果做出决策时出现控制冒险,严重影响流水线性能
      • 举例:五级流水线必须等到MEM阶段才能确定是否分支;为了保证取到正确的指令导致流水线产生的延时称为控制冒险
      • 解决控制冒险的方法:
        • 硬件技术:提前预测、动态分支预测、阻塞
        • 软件技术:延迟分支与指令调度

存储器层次结构

24. 存储器的层次结构是怎么样?性能?一些关键的策略?

  • 存储器的基本参数:
    • 容量
    • 速度:访问时间、存储周期等
    • 成本
  • 时间参数:
    • 寄存器平均访问时间100ps
    • 内存访问时间 SRAM:0.5-2.5ns;DRAM:50-70ns
    • 外存访问时间:硬盘5-20ms,光盘:80-120ms
  • 存储器访问的局部性原理:
    • 时间局部性:最近的将来要用的信息很可能就是现在正使用的信息
    • 空间局部性:最近的将来要用的信息很可能与正在使用的信息在空间上是临近的
  • 存储器的层次结构
    • 寄存器
    • 高速缓存Cache:
      • 容量小但非常快
      • 统一Cache:指令和数据同用一个Cache
      • 哈佛Cache:指令和数据的Cache分开,取指与访存命令可同时进行
    • 主存
    • 磁盘(辅助存储器)
  • 层次结构存储系统的性能度量
    • 命中率
    • 缺失率
    • 平均访问时间
    • 访问时间比
    • 访问效率
  • 地址映射:
    • 目的:
      • 确定数据在Cache中的存储位置
      • 在内存地址和Cache地址之间建立一种确定的逻辑关系
    • 分类:
      • 直接映射:主存中每一块只能装入Cache的唯一特定行
        • 优点:简单
        • 缺点:Cache命中率低、Cache空间利用率也低
      • 全相联映射:主存中每一块能够装入Cache中任一行
        • 优点:命中率高、空间利用率高
        • 缺点:要相联比较,代价较高
      • 组相联映射:将Cache分成组,每组k行,k成为相联度
        • 特点:组间为直接映射,组内为全相联映射
        • 组相联优缺点介于全相联和直接映射之间
  • 替换策略:
    • 目的:当新数据要存入Cache中,需要决定存放位置
    • 方法:
      • 随机法
      • FIFO法--先进先出
      • LRU法--最近最少使用
  • 更新策略:
    • 目的:Cache命中时的写策略
    • 方法:
      • 通写:写入Cache的同时,写入主存储器
        • 优点:简单,与主存保持一致
        • 缺点:写访问的时间=主存访问时间
      • 带缓冲的通写:
        • 直接写入主存,而是将要的地址及数据保存到可以高速接收写信息的缓冲器中。
      • 回写:只更新Cache,Cache行必须记录是否被修改过
        • 优点:缩短了写操作时间
        • 缺点:主存可能与Cache不一致
      • 写无效:写命中直接写主存,并使Cache行无效
        • 优点:不存在主存与Cache不一致的可能
        • 缺点:可能增加缺失率
  • 写策略:分配策略
    • 写分配:
      • 把数据从内存装入Cache,再写
      • 一般与回写策略一同使用
  • Cache性能评估:
    • 存储器停顿时钟数=读停顿时钟周期数+写停顿时钟周期数
  • 多级Cache减少缺失损失
  • 虚拟存储器:
    • 命中:虚拟页面已分配物理页
    • 缺失:虚拟页面尚未分配内存
  • 3C模型
    • 强制缺失
    • 容量缺失
    • 冲突缺失

实验部分

25.什么是综合?什么是静态时序分析?什么是可编程逻辑器件?Verilog语法的说明?

  • 综合:从较高抽象程度的设计层次转换到低
  • 静态时序分析:电路检查方法,可以由于延而产生的时序裕度,从而判定逻辑电路是否能可靠工作
    • 优点:检查电路设计中路径的时序特性,时间远小于基于事件驱动的仿真
    • 缺点:无法验证电路功能是否正确
  • 可编程逻辑器件的优势:
    • 较短的研制周期
    • 初期开发成本较低
    • 设计具有较高灵活性
  • Verilog语言:
    • 四值逻辑:0,1,高阻态,未知
    • Net型变量:连线型变量
    • Reg型变量:寄存器变量
    • always @(敏感表或*):输出信号必须定义为Reg型变量
      • negedge或posedge:下降沿和上升沿触发
    • 赋值语句:
      • 持续赋值:assign a=b
      • 非阻塞赋值:只有当块结束时才完成赋值,赋值不是立即完成的
      • 阻塞赋值:赋值语句结束后即完成赋值,前面的赋值没有完成前,后面的语句不能执行
    • 端口映射:基于位置映射、基于名字映射