首页 > 其他分享 >(For Final Exam)计算机组成原理期末复习

(For Final Exam)计算机组成原理期末复习

时间:2022-12-19 13:23:07浏览次数:48  
标签:操作数 寻址 复习 cache 存储器 地址 指令 Final Exam

概述

1.两种信息流:数据信息流,控制信息流\(\left \{ \begin{aligned} 指令信息\\状态信息\\时序信息 \end{aligned} \right.\)

2.五个部件:运算器,存储器,控制器,输入设备,输出设备

3.冯诺依曼体系结构计算机的特点:

  • 硬件由五大部分组成运算器,控制器,存储器,输入设备,输出设备
  • 软件以二进制表示
  • 采用存储程序
    • 所有的程序预先存放在存储器中
    • 指令采用串行执行的方式

4.计算机系统的层次结构

graph BT; 数学模型,算法应用程序 --> 作为软件资源的应用程序 --> 语言处理程序 --> 操作系统级 --> 机器语言(指令系统) --> 微程序控制器,硬连逻辑部件

5.机器语言,汇编语言,高级语言

  • 机器语言:二进制代码表示的机器语言,最底层,机器直接执行
  • 汇编语言:一种需要助记符表示的与机器语言一一对应的语言,需要汇编后才能执行
  • 高级语言:接近人类语言,与计算机结构无关,需要经过解释和编译

6.编译程序与解释程序最大区别在于:前者生成目标代码,后者不生成

7.汇编程序即汇编写的程序,与编译程序,解释程序不是一个概念

8.\(CPI:一条指令所需的时钟周期数 \\ 运行时间 = 指令数 * CPI/ 主频\)

9.偶校验:当实际数据中,1的个数为偶数时,校验位为0,否则这个校验位为1

奇校验:当实际数据中,1的个数为偶数时,校验位为1,否则这个校验位为0

数值的表示与运算

1.二进制与十进制之间的转换

  • 整数 10 \(\rightarrow\) 2 (除2取余法)
  • 小数 10 $\rightarrow$2 (乘2取整法)
  • 整数 2 \(\rightarrow\) 10 (按权相加)
  • 小数 2 \(\rightarrow\) 10 (按权相加)

2.有符号数:0表示"+",1表示"-"

3.二进制码制:原码,补码,反码,移码

  • 原码:字长8位,表示范围:-127 ~ 127

    • \([0]_原=[-0]_原=10000000=00000000\)
  • 反码:按位取反

    • \([0]_反=[-0]_反=11111111=00000000\)
  • 补码:通常使用补码来表示负数,这种方法可以使得计算机在进行加减运算的时候可以使用相同的算法来处理正数和负数,可以简化计算机硬件设计,字长8位,表示范围:-128 ~ 127

    • 补码的计算方法:

      • \([X_正]_补=[X_正]_原\)
      • 负数:首先将一个负数的绝对值转成二进制数
        • 再对二进制数进行按位取反
        • 然后将结果+1
    • PS:注意补码和反码的区别:补码和反码都需要按位取反,但是补码还需要+1,反码不需要

    • \([[X]_补]_补 = [X]原\)

      • 如果已知补码求原码,对该补码再求一次补码即可
    • 求变异补码(eg:已知\([X]_补\),求\([-X]_补\))

      • 连同符号位一起,全部按位取反,最后再+1
    • \([0]_补=[-0]_补=00000000\)

  • 移码:通常用于表示浮点数的阶码,一般为整数,故移码通常用于表示整数

    • 一般包括两种操作(1)位移(2)逻辑运算,快速对数据进行操作
    • 对于定点整数X,它的移码是:\([X]_移=2^{n-1}+X\),其中\(-2^{n-1}<X<2^{n-1}\)
      • n:\(X_原\)位数,\(2^{n-1}\)也称偏置值
    • 移码表示范围与补码一致,0的移码也只有1种形式
    • 求法:
      • 正数:原码符号位变反
      • 负数:将原码连同符号位一起变反,末位再+1,即得到移码
    • 补码与移码:符号相反,数值位相同

4.定点数:

  • 定点小数:小数点固定在符号位之后
  • 定点整数:小数点固定在最低数值位之后

定点数精度低,整数为1,小数为\(2^{-n}\)

5.浮点数:

由两部分组成:阶码尾数,阶码用来表示浮点数的指数部分,尾数用来表示小数部分

PS:字长相同时,浮点数表示的范围更大,精度更高,但是计算速度比定点数慢

浮点数真值:\(N = \pm R^E \times M\)

  • R:阶码的底数,隐含约定为2
  • E:阶码,定点整数,补码或移码表示,其位数决定了数值的范围
  • M:尾数,定点小数,原码或补码表示,其尾数决定了数值的精度

尾数M的规格化表示:

  • 为提高数据精度,充分利用尾数的有效数位,尽可能占满位数,以保留更多的有效数字
  • 为了浮点数表示的唯一性

浮点数缺点:可移植性差

IEEE754标准包括32位浮点数(单精度)和64位浮点数(双精度)

  • 构成:\(N=(-1)^{S} \times M \times 2^{E}\)
    • 阶码:E
    • 尾数:M
    • 符号位:S

规格化数和非规格化数:

  • 规格化数就是将浮点数的小数部分移到了最高有效位

eg:

运算方法和运算器

1.\((X+Y)_补=X_补+Y_补\):和的补码=补码的和

2.\((X-Y)_补=X_补+(-Y)_补\):差的补码=补码的和

3.一个异或门即可实现自动一位加法,\(S=X\oplus Y\)

4.一位全加器逻辑实现:

\(Si = X_i \oplus Y_i \oplus C_i\)

\(C_{i+1} = X_iY_i + (X_i \oplus Y_i)C_i\)

5.n位加法器:

  • n位加法器包含n个全加器
  • 将n个一位全加器串联
  • 低位进位输出连接到高位进位输出

6.加法器的改造(引入运算控制位Sub)

  • Sub=0时做加法,送入加法器的是\(Y_补\)
  • Sub=1时做减法,送入加法器的是\([-Y]_补\)

7.加法器是算数运算电路的核心

  • 所有算数运算都基于加法器实现
  • 加法器不区分符号数和无符号数
  • 加法器取低n位为结果,生成标识信息

8.快速加法器:

能否提前产生各位的进位输入,使得各位的加法运算能并行起来,即可提高多位加法器运算速度

9.并行加法器进位链:

\(G_i = X_iY_i\)

\(P_i = X_i \oplus Y_i\)

\(C_{i+1} = G_i + P_iC_i\)

  • 高位运算依赖于低位进位(计算不能并行)
  • 可以提前得到各位的进位输入

9.乘法运算实现方法:

  • 设置专用乘法器实现乘法运算
  • 借助加法器配置相应部件实现乘法运算
    • 原码一位乘法
    • 补码一位乘法
  • 执行乘法运算子程序来实现乘法运算

存储系统

1.存储器分类:

  • 按存储介质分:

    • 半导体存储器:
      • 双极型存储器 MOS存储器
      • 速度快,功耗低
    • 磁存储器:
      • 磁芯,磁带,磁盘
      • 容量大,速度慢,体积大
    • 激光存储器:
      • CD-ROM CD-RW CD-R
      • DVD-ROM DVD-RW DVD-R
      • 便于携带,廉价,易于保存
  • 按存取方式分:

    • 随机存储器:
      • 存取时间和物理位置无关
      • 磁芯,半导体存储器
    • 顺序存储器:
      • 存取时间和物理位置有关
        • 磁盘,磁带,激光存储器
  • 按读写功能分:

    • 只读存储器(ROM)
      • 存储器内容是预置,固定的,无法改写
    • 读/写存储器
      • 既能读出也能写入的存储器
      • 随机存储器RAM
  • 按信息的可保存性分:

    • 易失性存储器:
      • 断电后信息消失
      • SRAM(静态MOS存储器)
      • DRAM(动态MOS存储器)
    • 非易失性存储器:
      • 断电后仍能保存信息
      • 此存储器,激光存储器,NVRAN
  • 按在计算机系统中的作用分:

    • 主存储器
    • 辅助存储器
    • 高速缓冲存储器(Cache)
    • 控制存储器

2.存储地址:字节,半字,半地址

3.数据存放方式:

  • 小端方案:存储器的低地址单元中存放数据的最低字节,字地址等于最高有效字节地址
  • 大端方案:存储器的低字节地址单元中存放数据的最高字节,字地址等于最低有效字节地址

4.按边界对齐的方式存储数据(32位计算机)

  • int(4字节) short(2字节) double(8字节) char(1字节)
  • short按16位对齐,int按32位对齐,double按64位对齐
  • 对齐可提升访问数据的速度,不对齐可节约空间
    • 双字:64位,数据起始字节地址的最末3位为000,地址是8的整数倍
    • 单字:32位,数据起始字节地址的最末2位为00,地址是4的倍数
    • 半字:16位,数据起始字节地址的最末1位为0,地址是2的整数倍
    • 单字节:8位,数据不存在边界对齐问题

5.DRAM刷新

  • 刷新:定期补充电荷以避免电荷泄露引起的信息丢失
  • 刷新周期:存储器两次完整刷新之间的时间间隔
  • 按行刷新:存储体采用双译码结构,刷新地址计数给出刷新行地址
  • 刷新方式:
    • CPU与刷新控制器对DRAM的争用问题
    • 集中式,分散式,异步式
      • 集中刷新方式:
        • 最大刷新周期:2ms
        • 在数据丢失之前集中刷新所有行
        • 存在死区,用在实时要求不高的场合
        • 行数越多,死区时间越长
      • 分散刷新方式:
        • 最大刷新周期:2ms
        • 存储周期:读写+刷新
        • 刷新次数:2ms/100ns=20000次
        • 过度刷新,低速存储
      • 异步刷新方式:
        • 刷新周期:2ms,各刷新周期分散安排在2ms内
        • 每隔2ms/128=15.5微秒刷新一次,将128次刷新分散
        • 效率高,最常用

6.DRAM特点:

  • 地址线复用,CPU分时传送行,列地址,并分别由行选通信号RAS,列选通信号CAS选通
  • 无片选信号
  • 数据输入(\(D_{IN}\))和数据输出(\(D_{OUT}\))分开且可锁存

7.只读存储器(ROM)

  • 掩模式只读存储器(MROM)
  • 一次编程只读存储器(PROM)
  • 多次编程只读存储器(EPROM,EEPROM)

8.片选信号线:是一种用于在多个芯片之间进行信息交换的线路.它通常被用于在多个计算机处理器之间进行信息交换.片选信号线能够帮助控制多个芯片之间的信息交换,从而使得电路能够更有效地工作

9.存储器扩展:

  • 字长扩展(数据总线扩展)-位扩展
  • 字数扩展(地址总线扩展)-字扩展
  • 字长,字数同时扩展-字位同时扩展

高速缓冲存储器(Cache)

1.功能:缓解快速CPU和慢速的主存之间的速度差异

2.Cache的理论基础:局部性原理

3.程序局部性举例:

  • 数据:
    • 数据元素访问(空间)
    • 数据库记录访问(空间)
    • 局部变量,计数器,指针等被重复使用(时间)
  • 指令:
    • 顺序访问的指令(空间)
    • 重复使用的循环体(时间)
    • 子函数(时间)

4.cache的工作原理:

在处理器附近增加一个隐藏容量快速存储器

  • 对程序员透明
  • 将经常访问的热数据的副本存放在cache中
  • 提高命中率优化读性能

5.cache的基本概念:

  • 命中(hit):CPU访问数据在cache上
  • 缺失(miss):CPU访问数据不在cache上
  • 块(block):cache与主存交换最小单位
  • 行/槽(line/slot):标记,标志位,数据块容器

6.cache性能:

  • 命中率(hit rate):主存访问中cache的命中比例
  • 缺失率(miss rate):1-命中率
  • 命中访问的时间(hit time):数据查找时间,cache访问时间,总线传输时间
  • 缺失损失(miss penalty):主存块调入cache,数据传输到处理器的时间 远大于命中时间

7.cache和主存逻辑上分为若干个大小相等的块,每块由若干字节组成,cache的块数远少于主存中的块数,它保存的信息只是主存中若干块的副本

8.cache的基本结构:

  • 内容cache:数据块副本缓冲区
  • 标识cache:用于存放与内存相关的地址信息的区域称为相联存储器

内容cache和标识cache共同决定了cache的物理容量

9.cache的关键技术:

  • 数据查找
  • 地址映射:利用某种方式或规则将主存块定位到cache称为地址映射
    • 主存数据如何迁移至cache才能实现快速查找:
      • 直接相联(Cache:分块,主存:分块且分区)
      • 全相联
        • 全相联应用场合:
          • 块映射灵活,一对多映射
          • cache全部装满后才会出现块冲突
          • 块冲突的概率低,cache利用率高
          • 淘汰算法复杂
          • 命中率高
      • 组相联(Cache:既分块,也分组,主存:既分块,也分组)
  • 替换策略
  • 写入策略

10.cache由较快的SRAM构成

内存管理

指令系统

1.一条指令通常包含(操作码字段)和(地址码字段)

  • 操作码:该执行什么样的操作和具有何种功能
  • 地址码:被操作的信息(指令或数据)的地址#即各种信息地址

2.指令的长度:一条指令中二进制代码的位数

指令字长取决于(操作码的长度),(操作数地址码的长度),(操作地址的个数)

3.指令的基本格式:

  • 零地址指令:只给出操作码op,没有显式地址
    • 不需要操作数的指令,如空操作指令,停机指令,关中断指令
    • 零地址的运算类指令仅用在堆栈计算机中
  • 一地址指令:只有目的操作数的单操作数指令/隐含约定目的地址的双操作数指令
    • 只有目的操作数的单操作指令:按A1地址读取操作数,进行op操作后,结果存回原地址\(op(A1) \rightarrow A1\),如操作码是"加一","减一","求反","求补"等
    • 隐含约定目的地址的双操作数指令:另一个操作数由ACC(累加器)提供,运算结果也将存放在ACC中\((ACC)op(A1) \rightarrow ACC\)
      • 若指令字长32位,操作码占8位,1个地址码字段占24位,则指令操作数的直接寻址范围为\(2^{12}=16\)
  • 二地址指令:一般给出目的操作数地址和源操作数地址,其中目的操作数地址还用于保存本次的运算结果
    • 若指令字长为32为,操作码占8位,两个地址码字段各占12位,则操作数的直接寻址范围为\(2^{12}=4k\)
  • 三地址指令:\((A1)op(A2) \rightarrow A3\)
    • 若指令字长为32位,操作码占8位,3个地址码字段各占8位,则指令操作数的直接寻址范围为\(2^{8}=256\)
    • 若地址字段均为主存地址,则完成一条三地址需要4次访问存储器(取指令1次,取两个操作数2次,存放结果1次 )

4.指令寻址的方式:是指寻找指令或者操作数有效地址的方式 #即确定本条指令的数据地址和下一条待执行指令的地址的方法

  • 指令寻址:寻找下一条要执行的指令地址为指令地址
  • 数据寻址:寻找操作数的地址成为数据寻址

有效地址(EA)

有效地址=寄存器内容+指令形式地址

(A)表示地址A的数值,\(EA=(A)\)意思是有效地址是地址A中的数值

	+----------+
	|----------|
 A  |    B     |
	|----------|
	|----------|
	|----------|
	+----------+
# EA = (A) = B

指令寻址的方式\(\left \{ \begin{array}{l}顺序寻址:通过程序计数器(PC)加1(1个指令字长,也不一定是1)自动形成下一条指令的地址 \\ 跳跃寻址:通过转移类指令实现,不由程序计数器(PC)给出,由本条指令给出下条指令地址的计算方式 \end{array} \right.\)

数据寻址的方式(操作数寻址的方式)\(\left \{ \begin{array} {l} 隐含寻址:累加器(ACC)对单地址指令格式来说是隐含寻址\{ \begin{array} {l}优点:有利于缩短指令字长 \\缺点:需增加存储操作数或隐含地址的硬件 \end{array} \\立即(数)寻址:此指令的地址字段指出的不是操作数的地址,而是操作数本身,又称立即数,数据采用补码形式存放, \#号表示立即寻址特征 \{ \begin{array} {l} 优点:指令执行阶段不访问主存,指令执行时间最短 \\ 缺点:A的位数限制了立即数的范围 \end{array} \\ 直接寻址:指令字中的形式地址A是操作数的真实地址EA,即EA=A \{ \begin{array} {l} 优点:指令在执行过程中只访问一次主存,不需要专门计算操作数的地址 \\ 缺点:A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改 \end{array} \\间接寻址:类似于指针,访问主存次数=寻址次数+1 \{ \begin{array} {l} 优点:可扩大寻址范围,便于编制程序 \\ 缺点:指令在执行阶段要多次访存,速度过慢 \end{array} \\ 寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即EA=R,其操作数在由R所指的寄存器内 \{ \begin{array} {l} 优点: 不访问主存,只访问寄存器,因寄存器数量少,对应地址码长度较小,所以执行速度快,支持向量,矩阵运算\\ 缺点:寄存器价格昂贵,计算机中寄存器个数有限 \end{array} \\ 寄存器间接寻址:与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中) \\ 相对寻址: 操作数的地址不是固定的,它随PC值的变化而变化,且与指令地址之间总是相差一个固定值,因此便于程序浮动.相对寻址广泛应用于转移指令 \\ 基址寻址:指将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A而形成操作数的有效地址即EA=(BR) +A.基址寄存器是面向操作系统的,在程序执行过程中,基址寄存器的内容不变,形式地址可变(作为偏移量).优点:扩大寻址范围,有利于多道程序的设计 \\ 变址寻址:EA=(IX)+A,IX为变址寻址器专用,也可用通用寄存器做变址寄存器.优点:扩大寻址范围.在数组处理过程中,可以设定A为数组的首地址,不断改变IX的内容,便可很容易形成数组中任意数据的地址,特别适合编制循环程序\end{array} \right .\)

5.CISC主要特点:

  • 指令系统复杂庞大, 指令条目一般200条以上
  • 指令的长度不固定,指令格式多,寻址方式多
  • 可以访存的指令不受限制
  • 各种指令使用频度相差很大
  • 各种指令执行时间相差很大,大多数指令需要多个时钟周期才能完成
  • 控制器大多数采用微程序控制,有些指令非常复杂,以至于无法采用硬连线控制
  • 难以用优化编译生成高效的目标代码程序

6.RISC主要特点:

  • 选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现
  • 指令长度固定,指令格式种类少,寻址方式种类少
  • 只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行
  • CPU中通用寄存器的数量相当多
  • RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成
  • 以硬布线控制为主,不用或少用微程序控制
  • 特别重视编译优化工作,以减少程序执行时间

7.单地址指令:

  • 隐含约定目的地的双操作数
  • 目的操作数的单操作数

8.零地址

  • 不用操作数的指令
  • OP指令(隐含约定寄存器)
  • 栈顶单元部分操作

9.\(2^{10}=1K \\ 2^{20}=1M\)

中央处理器

1.指令周期:CPU从主存中取出并执行一条指令的时间为指令周期,不同指令的指令周期可能不同

2.数据流是根据指令要求依次访问的数据序列

3.取值周期的数据流向:

PC->MAR->地址总线->主存

CU发出控制信号->控制总线->主存

主存->数据总线->MDR->IR(存放指令)

CU发出读指令->PC内容+1

注:该大纲并不完善,具体请还是根据老师的重点复习,如果是详细学习计组这就更不行了,应付考试还可以

标签:操作数,寻址,复习,cache,存储器,地址,指令,Final,Exam
From: https://www.cnblogs.com/m1nus/p/16991911.html

相关文章