海明码:https://www.cnblogs.com/godoforange/p/12003676.html
https://www.bilibili.com/video/BV1t4411e7LH?p=38&spm_id_from=pageDriver&vd_source=603b67fa519e58ee792d9e969a3ad8a1
基本名词解释
PC 程序计数器
IR 指令寄存器,存放当前正在执行的指令,
MAR
CU 控制单元,为控制器的核心部件,其功能是产生微操作命令序列。
ALU:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。
ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。
MQ:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
MAR:Memory Address Register,存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。
MDR:Memory Data Register,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据。
I/O:Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送。
MIPS:Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位。
CPI:执行一条指令所需的时钟周期(机器主频的倒数)。
FLOPS:浮点运算次数每秒。
主存储器
- 汉明码
- 汉明码要添加 检测位要满足 2 ^k >= n + k +1 k位检测位 , n为总位数
- 检测位放在 2 ^i 次方处 i = 0 , 1 , ……
进制字母表示
十进制数用D表示,二进制用B表示,十六进制数用H表示,八进制用O表示。
Cache
命中率: 访问成功次数 / 总访问次数
命中率与Cache 的容量和块长有关
访问效率 = 访问Cache 的时间 / 平均访问时间 * 100 %
e 访问效率 , h 命中率, 访问Cache 时间为tc 访问主存时间为tm
则 e = tc / h * tc + ( 1 - h) * t * 100%
访问时间 / 命中的时间 + 未命中的时间
- 读写操作
- 写 : 1. 写直达法 : 写时同时写入Cache和主存
- 写回法: 只写入Cache 不写入内存,当Cache数据被替换出去的时候才写会主存,会导致Cache和主存的不一致
- 地址映射
- 直接映射 Cache任意一块可以放在
- 全相联映射 主存任何一块可以放在Cache任意一块中
DMA
- DMA和 CPU交替访问
CPU工作周期 C1 专供DMA访存,C2专攻CPU访存
- 功能:
- 向CPU申请DMA传送
- 处理总线控制权的转交
- 管理系统总线,控制数据传输
- 确定数据传送的首地址和长度,修正传送过程中的数据和长度
- DMA传送结束时,给出操作完成的信号
数
浮点数: 阶码组成为 阶符 + 数值部分 尾数由数符和数值组成
阶码是用二进制来表示的比如
2 ^15
就是 2 ^1111
即可,所以要用四位二进制来表示
- 规格化
基数为
2 要求尾数最高位为 1 2 ^1
4 最高2位为1 2 ^2
8 最高3位为 1 2 ^3
左规,数据左移,尾数变大
小数转二进制,直接把分子写成二进制,然后根据分母是2的多少次方,移动小数点就行了
IEEE 754标准
数符 + 阶码(含阶符) 尾数
尾数使用规格化表示,非 0 的有效位最高位为1运算
补码 左移时,后面加0 , 右移时前面加 1
定点数运算:
- 补码加减运算,直接 A + B mod 2 ^n+1
- 小数 就mod 2
指令系统
- 指令格式 : 操作码 + 地址码+寻址方式
指令字长分为可变和固定字长
RISC 精简指令系统
长度可变的指令:操作码分散在指令字的不同字段中 - 地址码
- 四地址 op + A1 + A2 + A3 + A4 分别是第一操作数地址,第二操作数地址,结果地址,下一条指令地址 (A1) OP(A2) –> A3
- 三地址 OP A1 A2 A3
- 二地址 OP A1 A2 (A1) OP (A2) –> A1 或者 (A1) OP(A2) -> A2
- 一地址 OP A1 (ACC) OP (A1) -> A1 ACC暂存
- 零地址,对ACC中的数据进行操作
可以使用寄存器地址来替代指令地址字段,因为寄存器很少,占用的位数少
- 指令寻址
顺序 PC + 1 -> PC
跳跃 由转移指令给出
数据寻址: 操作码 + 寻址特征+ 形式地址A
形式地址 是指令字中的地址,有效地址是操作数的真实地址
- 立即寻址: 形式地址A就是操作数,OP # A # 为立寻址标志 A 使用补码
- 直接寻址,EA = A 有效地址由形式地址给出,无偏移量
- 隐含寻址 间接寻址 有效地址由形式地址简介提供,A提供的是EA 的地址,需要去寻址,EA 的地址才是指向真实的数据
- 寄存器寻址,EA = Ri 有效地址为寄存器的编号
- 寄存器间接寻址: EA = (Ri) 有效地址在寄存器中
- 基址寻址
- 使用专用寄存器作为基址寄存器
EA = (BR) + A BR 为基址寄存器,也就是 物理地址 = 逻辑地址 + 基址地址
- 使用专用寄存器作为基址寄存器
CPU 组成
- 寄存器
- 通用寄存器 : 存放操作数,可作为某中寻址方式的专用寄存器
- 数据寄存器:存放操作数,两个寄存器拼接放双倍字长的数据
- 地址寄存器: 存放地址
- 条件码寄存器: 存放条件码,可作为程序分支的依据,正负,0,溢出等
- 控制和状态寄存器:
- 控制寄存器 PC -> MAR -> M -> MDR -> IR
- PC用户可见
- 状态寄存器 存放条件码
- PSW 存放程序状态字
- 指令周期 : 取出并执行一条指令所需的全部时间
- 包括 取指,分析 => 取指周期 执行=>执行周期
流水线
- 吞吐率: 单位时间内流水线所完成执行或输出结果的数量
- 最大吞吐率: Tpmax = 1 / Δt Δt为m段流水线各段时间
- 加速比 :
- 使用流水线的方式完成n条指令在m段流水线上共需 T = m * t + (n-1) * t
- 使用等效的非流水线共需: T = nmt
- 加速比等于 不使用 / 使用