计组复习
计组复习
- 单位
- 1TB = \(2^{10}\)GB = \(2^{20}\)MB = \(2^{30}\)KB
- 1GB = \(2^{10}\)KB = \(2^{20}\)KB
- 1MB = \(2^{10}\)KB
- 1KB = \(2^{10}\)B
Chap 1 概论
冯诺依曼计算机的主要特点
- 存储程序方式,程序控制。
- 按地址访问,指令顺序执行。
- 单元定长的一维线性空间存储器。
- 使用低级语言,数据以二进制表示。
- 单处理机结构,以运算器为中心。
普林斯顿体系结构
以存储器为中心的冯诺依曼体系结构
计算机系统的层次结构(硬件)3层
- 数字逻辑层:使用何种线路和如何存储信息、传送信息、运算和加工信息。
- 微体系结构层:需设置哪些功能部件,每个部件如何组成和怎样运行,部件之间如何相互连接并协同工作。
- 指令系统层:确定使用哪些指令,指令能处理的数据类型和对其运算所有的算法,指令的格式和完成的功能。
计算机系统的层次结构(软件)5层
计算机软件系统
- 系统软件
- 操作系统
- 语言处理程序
- 数据库管理系统 DBMS
- 服务性程序
- 网络管理软件
- 应用软件
CPU区别读出的是指令还是数据(简答)
- 从两个方面回答
- 时间方面
- 指令流:取指周期
- 数据流:执行周期
- 空间方面
- 指令流:从主存到指令寄存器
- 数据流:从主存到数据寄存器
计算机体系结构分类
- SISD: Single Instruction stream Single Data stream, 单处理机
- SIMD: Single Instruction stream Multiple Data stream, 并行处理机,向量处理机
- MISD:现实中不存在
- MSMD:多处理机(紧耦合系统),机群系统(多计算机系统,松耦合系统)
Chap 2 运算方法和运算器
机器码表示
- 真值:机器数原来的数值,写了+ - 的
- 原码
- 反码:正的时候和原码一样,负的时候为绝对值的反码取反。
- 补码
- 移码:数值位和补码一样,符号位与补码相反
进位计数制
进制转换
-
8,16进制转换为10进制:直接加权求和
-
10转 2 8 16
- 直接:10 -> 2 8 16
- 间接:10 -> 2 -> 8, 16
-
直接转换法
- 整数: 除R取余,先得低位,直至商为0
- 小数:乘R取整,显得高位,直至积为0
-
二进制转八进制:3位B 1位O,不够位就以小数点为中心项两端补0。
-
二进制转十六进制:4位B 1位H,不够位就以小数点为中心项两端补0。
字符编码
- ASCII
- 7位ASCII, 行4列3
- 128个编码, \(2^7\)个
- 10个数字:30H-39H
- 26个小写字母:61H-7AH
- 26个大写字母:41H-5AH
- 各种运算符、标点符号
校验码
- 目的:用于检查或纠正 错误
- 基本思想:冗余校验
奇偶校验码
-
奇偶校验码:在有效信息前面或者后面加一位 奇/偶校验位
-
XOR
-
这是放在前面,而且总共八位,因为一开始是为了给7位ASCII服务的
补码计算
- 补码加法特点
- 符号位作为数的一部分参与运算,符号位的进位丢掉
- 参与运算的操作数和运算结果均为补码形式表示。
- 定点数
- 补码减法要换成加法
- \([X-Y]_补= [X+(-Y)]_补=[X]_补+[-Y]_补\)
- 求补:已知\([Y]_补\),要求\([-Y]_补\)
- 取反+1
溢出判断
- 正溢:+ + +,大于正最大值
- 负溢:- - -, 小于负最小值
- 单符号位:a b同号,且与c不同
- (重点)双符号位:01 or 10 用XOR可以判断
定点乘法
-
不带符号
-
带符号
-
算前求补:求初绝对值,正-> 真值 -> 直通,负-> 求真值
-
算后求补:根据原符号位判断 -> 异或
定点运算器
- 逻辑运算
- 非
- 加 \(\or\) 或 +
- 乘 \(\and\) 或 ·
- 异 $ \oplus $
- 对齐,一位位逻辑处理,千万要和算数运算区别,逻辑运算是没有进位那些的。
浮点数
- 规格化:尾数最高位非零
- 00.1.... (补码正数)
- 11.0.... (补码负数)
- 左规:尾数左移,阶数-1
- 右规:尾数右移,阶数+1
- 规格化好处
- 一个数的浮点表示唯一
- 保留最多的有效数字,避免丢失精度
- IEEE754
- S E M
- 实际上的值是: \((-1)^S*2^{(E-bias)}*1.M\)
- 32: 1 8 23, bias: 127
- 64: 1 11 52, bias: 1023
流水线
- 时钟周期: 所有过程中的最长操作时间+缓冲时间
- k级过程段的流水线处理n个任务所需的时钟周期数:\(T_k = k+(n-1)\)
- 非流水线的硬件来处理n个任务所需的时钟周期数为:\(T_L=n * k\)
- k级线性流水线的加速比 \(C_k\): \(C_k = \frac {T_L}{T_k} = \frac{n*k}{k+(n-1)}\)
浮点运算器流水线运算步骤
- 求阶差
- 对阶
- 尾数(加/减)运算
- 结果规格化处理
Chap 3存储器
分类
- 存储介质
- 半导体:RAM, ROM, -》主存
- 磁性介质:磁盘,磁带-》辅存
- 光介质:光盘-》辅存
- 存取方式
- 随机存取存储器 : 主存
- 顺序存取存储区: 磁盘,磁带
- 相联存储器:cache
- 存储器的读写功能
- 只读: ROM
- 读写:RAM
- 信息的可保存性
- 永久记忆:非易失,辅存,ROM
- 非永久记忆:易失,主存中的RAM
- 在计算机系统中的作用
- 主存:内存,存放系统当前正在执行的数据和程序,属于临时存储器
- 辅存:外存,存放暂时不用的数据和程序,永久存储器
主存分类
- ROM
- MROM
- PROM
- EPROM
- EEPROM
- RAM
- FLASH:介于EPROM和EEPROM之间
SRAM和DRAM
比较 | SRAM | DRAM |
---|---|---|
存储方式 | 双稳态触发器 | 电容上的电荷 |
电源不掉电时 | 信息稳定 | 信息会丢失 |
刷新 | N | Y |
集成度 | 低 | 高 |
破坏性读出 | N | Y |
地址复用 | N | Y |
容量 | 小 | 大 |
价格 | 高 | 低 |
速度 | 快 | 慢 |
应用 | Cache | 主存 |
刷新
比较 | 集中刷新 | 分散刷新 | 异步刷新 |
---|---|---|---|
方法 | 2ms刷新间隔时间内,集中刷新,其余时间都用于访问操作 | 任何一个存储周期内: 访存周期 刷新周期 |
2ms内分散地把各行刷新一边 |
特点 | 刷新周期缩短遍 | ||
缺点 | 死时间 | 过度刷新 存储周期为存储器存储周期的两倍 |
要计数器 |
优点 | 提高了整机速度 同时解决了集中式刷新中死区时间过长的问题 |
存储器容量扩展
比较 | 字长位数扩展 | 字存储容量扩展 |
---|---|---|
所需芯片数 d | 设计要求的存储器容量 / 选择芯片存储器容量 | 设计要求的存储器容量 / 选择芯片存储器容量 |
- 主要区别是:MREQ(访存) 和 D(数据总线)和 A的译码部份(地址总线)
并行存储区
双端口存储器
- 定义:
- 高速工作的存储器
- 同一个存储体左右两个端口有相互独立的读写控制电路(AR, DR)可以分别进行操作
多模块交叉存储器
比较 | 顺序方式 | 交叉方式(模m) |
---|---|---|
地址形式 | 模块号+板内地址 | 字+模块号 |
位置 | \(A_{ij}=m*i+j\) | |
特点 | 高位经译码产生选板信号 只需要一套电路(AR,DR和读写控制) |
连续的存储单元一次分布在相邻的模块内 用硬件的冗余换取速度 |
带宽 | \(\frac1{T}\) |
- 交叉存储器工作原理:流水线执行多个独立读写操作
- 等间隔时间启动:\(\tau=\frac{T}{m}\), T: 存储周期
- 交叉存取度:\(m = \frac{T}{\tau}\)
- 要求模块数必须大于等于m,确保再次启动某模块时,前次操作已完成。
- 理想情况下,交叉存储区读取m个字需要的时间
- \(t_1 = T +(m-1)\tau\)
- 顺序方式为:\(t_2 = m*T\)
- T:存储周期
- \(\tau\):总线传送周期
Cache
- 定义:介于CPU和主存之间的高速缓冲存储器,存取速度比主存快。
- 目的:为了解决CPU和主存之间速度不匹配而采用的技术。
- 基于程序运行中的空间局部性和时间局部性。
- 访问存储器的请求可以由:CPU或者Cache发出。
- CPU不能直接访问外存(辅存)。
- Cache独立编址,与主存空间是映射关系。
主存与Cache的地址映射及变化
比较 | 全相联映射 | 直接映射方式 | 组相联映射 |
---|---|---|---|
特点 | 多对多的映射,对于主存的任何一块均可以映射到Cache的任何一行。 | 多对一的映射关系。同余的同一行。 | 分组,分到哪组是固定的,但是这组哪一行是灵活的。同余的同一组。 |
优点 | 机制灵活,命中率高,Cache的行利用率高。 | 映射方式简单,易实现,只用比较一次。 | 增加了映射的灵活性,提高了命中率,硬件开销不是很大。 |
缺点 | 速度较慢,成本较高,比较电路难于设计和实现。 | 机制不灵活,Cache命中率低。 | |
应用 | 适合小容量的Cache | 适合需要大容量Cache的场合 | 普遍采用 |
Cache的读写操作
- Cache控制逻辑首先要依据地址来判断这个字是否在Cache中,若在Cache中,则称为“命中”,否则称为“不命中”。
- 读命中:立即从Cache读出送给CPU
- 读不命中:
- 将主存中该字所在的数据块复制到Cache中,然后将这个字传送给CPU。
- 把此字从主存读出送到CPU,同时,把包含这个字的数据块从主存中读出送到Cache中。
Cache的命中率
- 命中率\(h = \frac{N_c}{N_c+N_m}\)
- 在一个程序执行期间,\(N_c\):Cache完成存取的总次数,\(N_m\) :主存完成存取的总次数。
- Cache/主存系统的平均访问时间:\(t_a=h*t_c+(1-h)*t_m\)
- \(r=\frac{t_m}{t_c}\), 5-10合适,r:主存慢于cache的倍率
- 访问效率:\(e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}=\frac{1}{h+(1-h)r}=\frac{1}{r+(1-r)h}\)
Cache替换算法
- 随机替换算法(不科学)
- FIFO(不科学)
- 最近最少使用算法 LRU
- 需要配计数器
- Cache每命中一次,命中行的计数器清零,其他+1
- 需要替换则将计数器值最大的行替换出去
Cache写操作策略
- 写回法
- 命中:修改Cache内容,只当此行被换出的时候才写回主存。
- 每行配置修改位M,被修改过 -> M=1
- 显著减少写主存的次数,但是存在不一致性隐患
- 全写法
- 命中:Cache和主存同时修改
- 不命中:向主存写入
- 无高速缓存作用,降低了Cache的功效
- 写一次法 ??
- 当第一次写Cache命中才要同时写入主存。以后处理方法与写回法相同??
- 维护系统全部Cache的一致性。
虚拟存储器定义
- 容量非常大的存储器逻辑模型
- 借助于磁盘等辅存来扩大主存容量
- 指“主存-外存”这一存储层次
- 虚拟存储器的基本特征:虚存空间大于实存空间
- 虚存空间是由辅存支持的
三级存储体系的组成部分
- 由Cache、主存和辅存构成。
- 在Cache和主存之间,主存和辅存之间分别由辅助硬件和辅助软硬件负责信息的调度,以便各级存储器能够组成有机的三级存储体系。
- Cache和主存构成了系统内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。
比较Cache-主存和主存-辅存这两个存储层次的异同
- 相同点:
- 出发点相同。二者都是为了提高存储系统的性能价格而构造的层次性存储体系,都力图使存储系统的性能接近高速存储器,而价格接近低速存储器。
- 原理相同。都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。
- 不同点:
- 目的不同。
- Cache主要解决主存和CPU的速度差异问题。
- 虚存就性能价格比的提高而言主要是解决存储容量的问题。
- 数据通路不同。
- CPU与Cache和主存之间均有直接访问通路,Cache不命中时,可以直接访问主存。
- 虚存的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。
- 透明性不同。
- Cache的管理完全由硬件完成,对系统程序和应用程序均透明。
- 虚存管理由软件软件和硬件共同完成。对系统程序不透明,对应用程序透明。
- 未命中时的损失不同。
- 虚存未命中时系统性能损失要远大于Cache未命中时的损失。
- 目的不同。
Chap 4 指令系统
RISC三要素
- 一个有限的简单的指令集;指令长度固定,指令格式和寻址方式种类少。
- CPU配备大量的通用寄存器;只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行。
- 强调对指令流水线的优化。
指令按功能分类
- 数据传送指令
- 算术逻辑运算指令
- 程序控制指令
- I/O指令
- 其他指令
指令按操作码分类
- 单字长指令
- 双字长指令
- 三字长指令
指令按指令字长分类
- 长度是否固定
- 固定指令字长指令
- 可变指令字长指令
- 指令字长与机器字长的关系
- 短格式指令:指令字长小于或等于机器字长
- 长格式指令:指令字长大于机器字长
指令按地址码分类
- 三地址指令
- 二地址指令
- RR:最快
- RS
- SS:最慢
- 一地址指令
- 单操作数:OP(A)->AC
- 双操作数: (AC)OP(A)->AC
- 零地址指令
操作码扩展技术
寻址方法
- 立即寻址
- 直接寻址
- 间接寻址
- 寄存器寻址
- 寄存器间接寻址
- 偏移寻址——变址寻址
- 偏移寻址——基址寻址
- 相对寻址
- E=(PC)+D
- D: DISP, 相对偏移量
- 主要用于转移指令
- 偏移量可以是正数,也可以是负数。
- 堆栈寻址
- PUSH Ri : (SP)-1->SP, (Ri)->(SP)
- POP Ri: ((SP))->Ri, (SP)+1->SP
例4.1
- 一行 -> 单字长
Chap 5 CPU
CPU基本部份
- 运算器
- Cache
- 控制器
CPU四大基本功能
- 指令控制:程序的顺序控制。
- 操作控制:CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信息送往相应部件,从而控制这些部件按指令的要求进行动作。
- 时间控制:对各种操作实施时间上的定时。
- 数据加工:对数据进行算术运算和逻辑运算处理。
CPU中的主要寄存器
- 数据缓冲寄存器 DR
- 地址寄存器 AR
- 指令寄存器 IR
- 程序计数器 PC
- 累加寄存器 AC
- 状态条件寄存器 PSW
造成流水线相关的原因
- 局部性相关
- 资源相关:多条指令在同一机器时钟周期内争用同一个功能部件所发生的冲突。
- 数据相关:一条指令的执行需要等前一条指令执行完后才能进行
- 控制相关(全局性相关):
- 由条件转移或中断引起的
微指令
- 写死的
- IR对程序员透明
Chap 6 总线
总线的连接方式
单总线结构
- 特点:
- 每个设备被指定一个总线地址
- 所有设备的操作方式与CPU内部的指令系统是一样的
- 优点
- 系统结构灵活,可扩充性强(特别是多CPU系统)
- 缺点
- 单总线速度受机器速度的限制
- 所有设备与总线接口必须统一
多总线结构
总线结构四部份
- 数据传送总线:地址线、数据线、控制线
- 仲裁总线:总线请求线和总线授权线(BR,BG)
- 中断和同步总线:用于处理带优先级的中断操作,包括中断请求线和和中断认可线。
- 公用线:时钟信号线、电源线、地线、系统复位线以及加电或断电的时序信号线等
PCI总线的概念(简答题)
- PCI总线是一个与处理器无关的高速外围总线,是至关重要的层间总线。它采用同步时序协议和集中式仲裁策略,并巨有猝发式数据传送机制。
- PCI设备可以是主设备,也可以是从设备,或兼而有之。
PCI总线体系结构中的桥及其功能
- 三种桥:HOST桥,PCI/LAGACY桥和PCI/PCI桥。
- 桥的功能:连接两条总线,使彼此间相互通信。
Chap 7 外存与I/O设备
外设分类
- 输入设备
- 输出设备
- 外存设备
- 数据通信设备
- 过程控制设备
显示设备分辨率与灰度级
分辨率
- 显示器所能表示的像素个数
- ex: 1024*768
- 像素越密,分辨率越高,图像越清晰。
灰度级
- 单色显示器:灰度级指所显示的像素点的亮暗差别的级数
- 彩色显示器:表示颜色的不同
- 4位可以表示16级灰度
- n位可以表示\(2^n\)级灰度
- 灰度级越多,图像层次越清楚越逼真,它取决于每个像素对应的刷新存储器的位数。
刷新
- 频率必须大于30次/秒
- 一般采用电视的标准:50次/秒
- 用电子束重复扫描屏幕的过程以获得稳定的图像显示
- 刷新存储器
- 又称 视频存储器或显存
- 用来存一帧图像的信息,以提供刷新图像的信号。
- 其容量由分辨率和灰度级共同决定。
- ex:分辨率\(1024*1024\), 灰度级256, 则显存容量需要:\(1024*1024*8\)
磁盘
- 扇区
- 磁道
- 磁盘编址:(台号)记录面号 磁道号 扇区号
存储密度
-
道密度\(D_t\)
- 记录区内径向单位长度记录的磁道数
- 单位TPI(道/英寸) or TPM(道/毫米)
-
位密度 \(D_b\)
- 磁道(最内圈)单位长度所能记录的二进制位数
- 单位: bPI(位/英寸) or bPM(位/毫米)
-
存储容量
- \(C_N=n*K*S_N\)
- n: 数据记录面数
- k: 每面磁道数
- \(S_N\): 内圈磁道周长*位密度
-
格式化容量
- \(C=n*k*l*m\)
- l: 每条磁道的扇区数
- m:每个扇区的字节数
-
数据传输速率
- 磁盘存储器在单位时间内读/写的二进制信息量
- \(D_{tr}=P*S\)
- P:每秒转数
- S:每道容量
- \(T_S\):平均找道时间,定位时间
- \(T_L\): 平均等待时间,旋转等待时间
- \(T_B=T_S+T_L+数据传送时间(\frac{数据量}{传输速率})\)
- \(T_B=T_S+\frac{1}{2P}+\frac{B}{D_{tr}}\)
Chap 8 输入/输出系统
程序中断方式(程序中断与子程序比较)
- 共同点:程序转向
- 不同点
- 通常,程序中断有随机性,转子程序有可重入性。
- 子程序的执行受主程序或上层子程序的控制,而中断程序与被中断的程序毫无关系。
- 不存在多个程序同时要求执行一个子程序的情况,但可能发生多个中断源要求CPU服务的情况。
响应中断的条件
- 在CPU内部“中断屏蔽”触发器位“0”(即中断不屏蔽)
- 外设有中断请求:“中断请求”触发器为“1”,保持中断请求信号。
- 外设(接口)的“中断允许”触发器必须为“1”,把外设中断请求送至CPU。
- CPU现行指令的最后一个状态周期结束。(即CPU执行完一条指令之后)
程序中断处理过程
- 中断源的中断请求
- 中断响应(中断相应周期)
- 中断处理
- 中断返回
多级中断
例1
DMA传送方式
比较 | 在DMA工作时,停止CPU访问内存的操作 | 周期挪用 | DMA与CPU交替访问内存 |
---|---|---|---|
优点 | 控制简单,适用于数据传输率很高的设备成组数据传送。 | 保证DMA传送的前提下,较好的发挥了CPU与主存的效率。 | 解决了CPU和DMA接口争夺访问内存的矛盾。 免去了每次DMA传送所必须的DMA请求,DMA响应以及内存使用权的交接。 |
缺点 | 在DMA控制器访问内存阶段,内存有空闲。 | 每次DMA传送都伴随一次DMA请求、DMA响应和两次内存访问权的转接,频繁的往复操作会导致系统的效率下降。 | 对CPU,它感受到内存的存取周期长了一倍,不利于提高CPU的效率。 分配给DMA接口访问内存的周期大部分用不上,但又不能为CPU所用,造成了资源浪费。 |
特点 | DMA工作时,CPU停止访问内存。 | 当有DMA请求时,CPU让出一个存储周期实现DMA数据交换。 | |
应用 | 适用于数据传输率很高的设备成组数据传送。 | 适用于设备读写周期大于内存存储周期的情况。 | 适用于CPU周期大于主存存储周期的DMA |
注意 | 有DMA请求时,CPU无访内要求时无影响。 有DMA请求,CPU也要访内,则先DMA操作再CPU操作。 |
DMA与程序中断的比较
- 程序中断是用服务程序处理中断事件,实质上是CPU的程序切换。DMA则是由DMA控制器控制数据交换,每交换一次,CPU“让出”一个存储周期。
- 程序中断可完成较复杂的处理,DMA只能实现数据的传输和简单的加工。
- 程序中断开销大于DMA,DMA是以硬件为代价换取CPU时间。
- DMA和程序中断的响应时间不同。
- DMA的优先级别高于一般的程序中断。
比较通道,DMA,中断
- 通道:可以实现对外设的统一管理和外设与内存之间的数据传送,大大提高了CPU的工作效率,一般用于服务器和大型计算机上。
- DMA:数据传送速率很高,传送速率仅收到内存访问时间的限制。需要更多硬件,适用于内存和高速外设之间大批数据交换的场合。
- 中断:一般适用于随机出现的服务,一旦提出要求应立即执行,节省CPU时间开销。
Chap 9 并行组织与结构
从计算机系统中处理数据的并行性角度划分
- 字串位串:没有并行性。同时只对一个字的一位进行处理,通常指串行单处理机。
- 字串位并:开始出现并行性。同时对一个字的全部位进行并行处理,不同字之间是串行的。
- 字并位串:开始有较高的并行性。同时对许多字的同一位进行处理,通常指传统的并行单处理机。
- 全并行:同时对许多字的全部或部份位组进行处理。最高一级的并行。
从计算机系统内部执行程序的角度划分
- 指令内部并行:一条指令内部各微操作之间的并行。
- 指令级并行:并行执行两条或多条指令。
- 任务级或过程级并行:并行执行两个以上过程或任务(程序段)。
- 作业或程序级并行:并行执行两个以上作业或程序。