任课老师:Zhang
第一章 计算机系统概述
- 冯·诺依曼机的基本工作方式是控制流驱动方式
- 高级程序语言转换为可执行目标文件的主要流程是 预处理-> 编译->汇编->链接
计算机性能的主要指标
- 机器字长: 定点整数运算能力的大小
- 数据通路带宽: 外部数据总线宽度,可能与cpu内部总线宽度不同
- 指令字长: 指令集中每条指令的长度
- 存储字长: 存储器中每一个存储单元的大小
- 运算速度
- 吞吐量:单位时间内相应处理的数量
- 响应时间:系统作出相应的反应所需的时间
- 主频:cpu时钟频率 单位 个时钟/s
- CPI: 一条指令所需的时钟周期数 单位 个时钟/个指令
- MIPS: 1秒可以执行几百万条指令 主频/CPI*10^-6 百万指令/秒
- FLOPS :每秒浮点运算次数 科学计算 m-6 g-9 t-12 p-15 e-18 z-21
- CPU运行时间: 指令条数*CPI/主频
- 指令平均运行时间 :CPI/主频
- CPU寄存器当中指令寄存器对用户是完全透明的
- 从用户观点看,综合评价计算机系统性能的综合参数是吞吐率
- 设计高性能计算机的主要途径是采用并行处理技术
第二章 数据的表示和运算
原码有符号位
定点补码一位除法,乘法,要照着ppt上的例题做一遍
移位运算
- 逻辑移位: 无符号数左右移。溢出:左移时高位的1移出
- 算数移位: 左移与逻辑左移相同,右移高位补符号位。溢出: 移位前后符号位发生改变
模4补码
- 存储时需要存储1个符号位,运算时需要两个符号位
IEEE 754标准
- 尾数整数部分的1不存储在数字当中,使用原码表示
- 阶码范围:
- 单精度: 1-254
- 双精度: 1-2046
- 单精度和双精度的偏置值分别为127和1023,与通常使用的2的幂不同
- 特殊意义:
- inf : 符号位0,阶码全1,尾数全0
- -inf : 符号位1,阶码全1,尾数全0
- 最大值与最小值
- 单精度 $\pm 2^{127}(2-2^{-23}) 2^{-126}$
- 双精度 $\pm 2^{1023}(2-2^{-52}) 2^{-1022}$
- 非规格化浮点数 阶码为0,尾数为非零数
- 规格化数是为了提高数据表示精度
浮点数运算
- 对阶过程当中,只有阶数增大的过程
- 基数为$2^n$ 原码就需要小数点后有n-1位的0
- 舍入:
- 阶码舍入
- 右规舍入
- 舍入不一定产生误差
第三章 存储系统
存储器层次结构
- 主存: 随机访问存储器 RAM
- 缓存: 高速缓冲存储器 Cache
- 磁盘: 直接存取存储器 DAM
- 外存: 非易失性存储器 NVM
多体交叉存储器
在一个读取周期内,轮流从不同的存储模块当中读出数据
存储速度
- 存取时间: 启动到完成所经历的时间,分为读出时间和写入时间
- 存取周期: 两次独立访问存储器的最小时间间隔
相联存储器
ram
SRAM 比 DRAM 快,一般用于高速数据缓冲器
对于DRAM ,一次完整的刷新需要占用一个周期,每隔一定时间,需要根据原存内容重新写入一遍 default r=c 分散刷新没有死时间
单体多字存储器
一次并行的读出m个字,每个存储单元存储m个字,总线宽度也为m个字
多体并行存储器
- 高位交叉编址 顺序编址,按照高位来区分不同的存储体
- 低位交叉编址 交叉存储,找低位来查找不同的存储体,读取时将每个低位的数字轮流输出拼接成完整的数据,每次读取必须完成一整个周期,体冲突发生于相邻一个周期内的m次访问中出现相同的体时,会出现体冲突,需要延迟(m-1)个间隔才能再访问。如果一个周期内已经出现过另一个体冲突,那么这个体冲突会被上一次体冲突而消弭。
Cache
- 标记包括 有效位,脏位,替换位,标记
杂项
- 地址复用技术可以让 地址线除以2
- ROM和RAM可以统一编址
- u盘属于只读存储器
- 计算机操作系统存储在RAM和ROM当中
- Dram 的行缓冲器采用Sram实现,缓存指定行中每一列的数据
- 时间局部性指的是同一个存储体被重复利用,空间局部性指的是同一时间段内访问的存储体是连续的
第四章 指令系统
ISA
内容包括:
- 指令格式,指令寻址方式,操作类型,操作对应的操作数
- 操作数的格式,操作数寻址方式,大端还是小端
- 程序可访问的寄存器编号,个数和位数,存储空间的大小和编址方式
- 指令执行过程的控制方式
寻址方式
A 是指令当中给出的地址,EA是实际地址
- 隐含寻址
第二个操作数由累加器ACC提供
有利于缩短指令字长,缺点是需要增加存储操作数或者隐含地址的硬件 - 立即寻址
第二个操作数直接在指令中给出
优点是简单,缺点是操作数必须在指令中给出,不利于程序的可移植性 - 直接寻址
A=EA
第二个操作数在存储器中给出,地址由指令中的操作数给出
优点是操作数可以是变量,缺点是指令字长太长,不利于缩短 - 间接寻址
EA=(A) D=(EA)=((A)) - 寄存器寻址
EA=R(A) - 寄存器间接寻址
EA=E(R(A)) - 相对寻址
EA=(PC)+A
广泛用于转移指令,基于下一条地址 - 基址寻址
EA=(BR)+A
可以扩大寻址范围,但是A的位数较少 - 变址寻址
EA=(IX)+A
用于数组
杂项
- 堆栈计算机(零地址操作数)的两个操作数都从栈顶出栈,及栈顶元素和次栈顶元素
- 单地址指令可以有两个操作数,另一个操作数允许使用隐含寻址
- 程序控制类指令包括:无条件转移,有条件转移,子程序调用和返回指令,循环指令
- 寄存器堆栈称为硬堆栈,主存堆栈称为软堆栈
- RISC 一定采用流水线技术 指令功能简单
第五章 中央处理器
控制器
控制器由程序计数器PC,指令寄存器IR,存储器地址寄存器MAR,存储器数据寄存器MDR,指令姨妈期,时序电路和微操作信号发生器组成
数据通路的构成
- 组合逻辑元件(操作元件)
- 加法器,ALU,译码器,多路选择器,三态门
- 时序逻辑元件(状态元件)
- 各类寄存器
微指令形成方式
- 各类寄存器
- 由微指令的下地址字段指出(断定方式)
- 机器指令操作码
- 增量计数法μPC+1->μPC
- 根据标志位确定下一条指令的地址
- 由硬件直接产生
中断
- 关中断:禁止中断发生
- 保存断点和程序状态:保存当前程序状态,包括程序计数器,寄存器,内存,I/O设备等
- 识别异常和中断并转到相应的处理程序
流水线
取值 -> 译码 -> 执行 -> 写回
杂项
- 指令寄存器对用户是无法修改的,因此对用户是透明的
- 指令总计根据程序计数器从主存储器当中读出
- 间指周期指的是取操作数地址的过程
- 程序员可见的只有PC寄存器
- DMA 传输每传送一个数据就要占用一个周期
- 指令周期是CPU从主存去除一条指令加上执行这条指令的时间
- CPU区分指令和数据的依据是指令周期的不同阶段
- 总线允许一个元件发信息,多个原件接受信息
- 一条微指令控制单元的位数为m,则只接受$2^m-1$个微指令
- 垂直型指令的特点是采用微操作码
- 微程序-> 微指令 -> 微命令
- 控制部件包括 指令寄存器、程序计数器和操作控制器