计算机组成与体系结构
1内容提要
课程内容提要
数据的表示
计算机结构
Flynn分类法
CISC与RISC
流水线技术
存储系统
总线系统
可靠性
校验码
2数据的表示
2.1 进制转换
2.1.1 R进制转十进制
R进制转十进制使用按权展开法,其具体操作方式为:将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。
例如二进制10100.01=1x24+1x22+1x2-2
例如七进制60 01=6x72+0x71+4x70+0x7-1
2.1.2十进制转R进制
十进制转R进制使用短除法。例如将94转换为二进制数。
得到结果为1011110
余 | ||
2 | 94 | 0 |
2 | 47 | 1 |
2 | 23 | 1 |
2 | 11 | 1 |
2 | 5 | 1 |
2 | 2 | 0 |
2 | 1 |
2.1.3其他进制转换
二进制转八进制,从右到左,每三位是和是一个八进制的值
二进制转十六进制,从右到左,每四位是和是一个十六进制的值
其中A=10 B=11 C=12 D=13 E=14 F=15
二进制转八进制与十六进制数。
10 | 001 | 110 |
2 | 1 | 6 |
1000 | 1100 |
8 | E |
2.2 原码、反码、补码、移码、浮点运算
正数的原码、反码、补码相同
负数
-
原码:首位是1
-
反码:除首位,其他位按位取反
-
补码:反码基础上加1
移码:正数负数首位取反(用于在浮点运算中的接码?)
数值1 | 数值-1 | 1-1 | |
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
表示范围
整数 | |
原码 | -(2n-1-1)~2n-1-1 |
反码 | -(2n-1-1)~2n-1-1 |
补码 | -2n-1~2n-1-1 |
2.3浮点数运算
浮点数最终要求结果为:y.xxx*10^n次方表示(0<y<10)y不允许是两位数
浮点数表示:
N=M*R
其中M称为尾数,e是指数,R为基数。
对阶$\Rightarrow$尾数计算$\Rightarrow$结果格式化
3计算机结构
主机:主存储器,CPU
CPU:
- 运算器
- 控制器
运算器:
- 算术逻辑单元ALU
- 累加寄存器AC
- 数据缓冲寄存器DR
- 状态条件寄存器PSW
控制器:
- 指令寄存器IR
- 程序计数器PC
- 指令译码器
- 时序部件
CPU寄存器划分、运算器、控制器区分,常见寄存器特性
3.1结构分类Flynn
掌握特性和代表
计算机体系结构分类-Flynn
体系结构类型 | 结构 | 关键特性 | 代表 |
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机阵列处理机超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统多计算机 |
4 CISC与RISC计算机指令特点
区别
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主:适合采用流水线 | 优化编译,有效支持高级语言 |
5流水线:考察计算问题
5.1概念
流水线-概念流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的 不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
使用流水线执行指令情况
未使用流水线执行指令情况
取指 | 1 | 2 | 3 | ||||||
分析 | 1 | 2 | 3 | ||||||
执行 | 1 | 2 | 3 |
使用流水线执行指令情况
取指 | 1 | 2 | 3 | ||||||
分析 | 1 | 2 | 3 | ||||||
执行 | 1 | 2 | 3 |
5.2计算
k为阶段数
5.2.1 周期、总时长
取指 | 1 | 2 | 3 | . | . | . | n | ||
分析 | 1 | 2 | 3 | . | . | . | n | ||
执行 | 1 | 2 | 3 | . | . | . | n |
流水线周期为执行时间最长的一段
流水线计算公式为:
1条指令执行时间+(指令条数-1)*流水线周期
①理论公式:(t1+t2+…+tk)+(n-1)*∆t
②实践公式:(k+n-)*∆t
例:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别 是取指2nsl分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?
5.2.2吞吐率
流水线-流水线吞吐率计算
流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:
$TP=\frac{指令条数}{流水线执行时间}$
流水线最大吞吐率:
$TP_{\max}=Lim_{n\rightarrow\infty}\frac{n}{(k+n-1)∆t}=\frac{1}{∆t}$
5.2.3加速比
流水线-流水线的加速比
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式如下:
$S=\frac{不使用流水线执行时间}{使用流水线执行时间}$
5.2.4效率(这个不理解)
流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
计算流水线效率的公式为:
$E = \frac { n 个 任 务 占 用 的 时 空 区 } { k 个 流 水 段 的 总 的 时 空 区 } = \frac { T _ { 0 } } { k T _ { k } }$
6存储系统:概念、计算
6.1层次化存储结构
cache按内容存取的也叫相连存储器
层次化存储结构
快 CPU 寄存器 Cache 按内容存取 速度 内存(主存) 慢 外存
快 | CPU | 寄存器 |
Cache | 按内容存取 | |
内存(主存) | ||
慢 | 外存(辅存) | 硬盘、光盘、U盘等 |
6.2 Cache概念
Cache-概念
Cache的功能:提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。
在计算机的存储系统体系中,Cache是访问速度最快的层次。
使用Cache改善系统性能的依据是程序的局部性原理。
如果以h代表对Cache的访问命中率,t_{1}表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为$t_{3},$则:
$t_{3}=h*t_{1}+(1-h)*t_{2}$
其中,(1-h)又称为失效率(未命中率)。
eg: 1nsx95%+100nsx(1-95%)=19.5ns
6.3局部性原理
时间局部性:刚刚访问完后又访问,如循环体内的命令
空间局部性:数组,相邻的空间可能也会被访问
时间局部性
空间局部性
工作集理论:工作集是进程运行时被频繁访问的页面集合
例:
|
|
6.4主存分类
主存的编址考察比较多
RAM:掉电后不会存储信息
ROM:掉电后仍然存储信息
主存-分类
随机存取存储器(RAM):
- DRAM(Dynamic RAM,动态RAM)-SDRAM
- SRAM (Static RAM,静态)
只读存储器:
- MROM(Mask ROM,掩模式ROM)
- PROM (Programmable ROM,一次可编程 ROM)
- EPROM(Erasable PROM,可擦除的 PROM)
- 闪速存储器(flash memory,闪存)
6. 1主存编址
8*4位的存储器
8*8位的存储器 28x1 164位的存储器
内存地址从AC000H到C7FFFH,共有(112)K个地址单元,如果该内存地址按字(16bit)编址,由28片存储器芯片构成。已知构成此内存的芯片每片有16K个存储单元,则该芯片每 个存储单元存储(4) 位。 (1)A.96 B.112 (2)A.4 B.8
6.5磁盘(现在考察没有以前多了,理解原理,做什么动作,需要多少时间)没理解例题
磁盘结构与参数
磁道 扇区
存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁 头下方所用的时间。
试题
物理块 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
逻辑记录 | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 |
假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录R0, R1,…,R9,R10存放在同一个磁道上,记录的存放顺序如下表所示:
如果磁盘的旋转周期为33ms,磁头当前处在R0的开始处。若系统使用单缓冲区顺序处理这些记录,每个记录处理时间为3ms,则处理这11个记录的最长时间为(48 C);若对信息 存储进行优化分布后,处理11个记录的最少时间为(49 B)。 (48)A.33ms B.336ms C.366ms D.376ms (49)A.33ms B 66ms c.86ms D.93ms
7 总线系统:总线分类和概念
总线
根据总线所处的位置不同,总线通常被分成三种类型,分别是:
内部总线
系统总线
- 数据总线
- 地址总线
- 控制总线
外部总线
8可靠性分析:串联、并联计算、混合情况
R为可靠度
串联
$R=R_{1}R_{2}…*R_{n}$
$\lambda=\lambda_{1}+\lambda_{2}+\cdots+\lambda_{n}$
并联
u为失效率=1-可靠度来计算
$R=1-(1-R_{1})\times(1-R_{2})\times\cdots\times(1-R_{n})$
$\mu=\frac{1}{\frac{1}{\lambda}\sum_{j=1}^{n}\frac{1}{j}}$
混合
$R=R\times(1-(1-R)^3)\times(1-(1-R)^2)$
9校验码:作用、常见校验码:CRC、海明校验码 特点,计算过程、编码解码
9.1码距
什么是码距?
一个编码系统的码距是整个编码系统中任意(所有)两个码字的最小距离。
例
若用1位长度的二进制编码。若$A=1,$B=0。这样A,B之间的最小码距为1。
若用2位长度的二进制编码,若以A=11,$B=00$为例,A、B之间的最小码距为2。
若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3。
9.2检错、纠错
码距与检错、纠错有何关系?
1.在一个码组内为了检测e个误码,要求最小码距d应该满足: d>=e+1
2.在一个码组内为了纠正t个误码,要求最小码距d应该满足: d>=2t+1
9.3循环校验码CRC检错,不能纠错
异或:相同0,不同为1
什么是模2除法,它和普通的除法有何区别?
模2除法是指在做除法运算的过程中不计其进位的除法。
例如,10111对110进行模2除法为:
1 | 1 | 0 | |||
110 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | |||
0 | 1 | 1 | 1 | ||
1 | 1 | 0 | 0 | 0 | 1 | 1 |
例子:
校验码-循环校验码CRC
例:原始报文为“11001010101”,其生成多项式为:$x^4+x^3+x+1$。对其进行CRC编码后的结果为?
解:11001010101除以11011后得到余数为0011,所以CRC编码后的结果为:110010101010011。
9.4海明校验码
校验位在2^n位
校验位和信息为关系满足:$2^r>=x+r+1$ (r为校验信息位,x为信息)
例子
例:求信息1011的海明码。
(1)$2^{r}>=4+r+1$,确定校验码为3位:$2^{3}>=4+3+1$。分别放在$2^{0}=1$、$2^{1}=2$、$2^{2}=4$位。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 位数 |
I4 | I3 | I2 | I1 | 信息位 | |||
r2 | r1 | r0 | 校验位 |
(2)列出校验位公式。
$7=2^{2}+2^{1}+2^{0}$, $6=2^{2}+2^{1}$, $5=2^{2}+2^{0}$, $3=2^{1}+2^{0}$;
$r_{2}=I_{4}⊕I_{3}⊕I_{2}$, $r_{1}=I_{4}⊕I_{3}⊕I_{1}$, $r_{0}=I_{4}⊕I_{2}⊕I_{1}$.
(3)根据公式得 $r_{ 2 } = 0 , r_{ 1 } = 0 , r_{0}=1$。
(4)将数据加入表格,如表所示。
若收到的信息为:1011
101
则:
$r_{2}⊕I_{4}⊕I_{3}⊕I_{2}$=1⊕1⊕0⊕1=1, $r_{1}⊕I_{4}⊕I_{3}⊕I_{1}$=0⊕1⊕0⊕1=0, $r_{0}⊕I_{4}⊕I_{2}⊕I_{1}$=1⊕1⊕1⊕1=0.