数据的表示
码制
原码:最高位是符号位,其余低位表示数值的绝对值
反码:整数的反码与原码相同,负数的反码是其绝对值按位取反
补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)
移码:补码的符号位按位取反
码制 | 定点整数 | 定点小数 | 数码个数 |
---|---|---|---|
原码 | -(2n-1-1)~+(2n-1-1) | -(1-2-(n-1))~+(1-2-(n-1)) | 2n-1 |
反码 | -(2n-1-1)~+(2n-1-1) | -(1-2-(n-1))~+(1-2-(n-1)) | 2n-1 |
补码 | -2n-1~+(2n-1-1) | -1~(1-2-(n-1)) | 2n |
移码 | -2n-1~+(2n-1-1) | -1~(1-2-(n-1)) | 2n |
注意人为规定
浮点数
表示:
N = 尾数 * 基数 指数 (指数也叫阶码)
运算过程:
对阶 > 尾数计算 > 结果格式化
特点:
- 一般尾数用补码,阶码用移码
- 阶码的尾数决定书的表示范围,尾数越多范围越大
- 位数的位数决定数的有效精度,尾数越多精度越高
- 对阶时,小数向大数看齐
- 对阶是通过较小的尾数右移实现的
逻辑运算
关系运算符
优先级相同(高):<、<=、>、>=
优先级相同(低):==、!=
说明:
关系运算符的优先级低于算术运算符
关系运算符的优先级高于赋值运算符
逻辑运算
逻辑或(||、+、∪、∨、OR):连接的两个逻辑值全0时才取0 遇真则真
逻辑与(&&、*、·、∧、AND):连接的两个逻辑值全1时才1 遇假则假
逻辑异或(⊕、XOR):连接的两个逻辑值不相同时取1,相同取0
逻辑非(!、¬、~、NOT、ˉ):将原逻辑取反
A | B | A+B | A*B | A⊕B | !A |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 0 |
逻辑运算符
&& (逻辑与) 相当于其他语言中的AND
|| (逻辑或) 相当于其他语言中的OR
! (逻辑非) 相当于其他语言中的NOT
运算符的优先顺序:!>算术运算符>关系运算符>&&>!!>赋值运算符
短路原则
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。
(1) a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值
(2) a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才判断b,a和b都为假才判断c
校验码
奇偶校验码
码距
任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。
奇偶校验
奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制(校验位)组成校验码。
奇校验:整个校验码(有效信息位和校验位)中"1"的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中"1"的个数为偶数。
特点:
可检错不可纠错
循环校验码CRC
CRC的编码方法:
在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。
特点:
可检错不可纠错
把接收到的CRC码用约定的生成多项式G(X)去除(模二除法),如果正确,则余数为0如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有惟一的对应关系。
海明校验码
海明校验码的原理
在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据
特点:
可检错也可纠错
校验码比较
校验码位数 | 校验码位置 | 检错 | 纠错 | 校验方式 | |
---|---|---|---|---|---|
奇偶校验 | 1 | 一般拼接在头部 | 可检奇数位错 | 不可纠错 | 奇校验:最终1的个数是奇数个;偶校验:最终1的个数是偶数个; |
CRC循环冗余检验 | 生成多项式最高次幂决定 | 拼接在信息位尾部 | 可检错 | 不可纠错 | 模二除法求余数,拼接作为校验位 |
海明校验 | 2r-1>=m+r | 插入在信息位中间 | 可检错 | 可纠错 | 分组奇偶校验 |
CPU组成(运算器与控制器)
运算器
算术逻辑单元ALU:数据的算术运算和逻辑运算
累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
数据缓冲寄存器DR:写内存时,暂存指令或数据
状态条件寄存器PSW:存状态标志与控制标志
(争议:也有将其归为控制器的)
控制器
程序计数器PC:存储下一条要执行指令的地址
指令寄存器|R:存储即将执行的指令
指令译码器ID:对指令中的操作码字段进行分析解释
时序部件:提供时序控制信号
寻址方式
立即寻址方式:操作数直接在指令中,速度快,灵活性差
直接寻址方式:指令中存放的是操作数的地址
间接寻址方式:指令中存放了一个地址,这个地址对应的内容是操作数的地址
寄存器寻址方式:寄存器存放操作数
寄存器间接寻址方式:寄存器内存放的是操作数的地址
CISC与RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(简单) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/ Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逗辑控制为主;适合采用流水线 | 优化编译,有效支持高级语言 |
比较
CISC:复杂,指令数量多,频率差别大,多寻址
RISC:精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线
流水线技术
概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
流水线计算
流水线周期为执行时间最长的一段
第一条指令执行时间也是流水线建立时间
公式:1条指令执行时间 + (指令条数 - 1) * 流水行周期
理论公式:(t1 + t2 +···+ tk) + (n-1) * t
实践公式:k t + (n - 1) t
注意:优先用理论公式进行计算,若选项中没有理论公式计算答案则用实践公式进行计算
示例:一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t=3△t、分析时间t分=2△t、执行时间轨执行4△t的情况下,若串行方式执行,则10条指令全部执行完需要(90
)△t;若按流水线的方式执行,流水线周期为(4
)△t,则10条指令全部执行完需要(45
)△t。
流水线吞吐率计算
流水线的吞吐率(Thouph Putrate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。
基本公式:
$$TP = \frac{指令条数}{流水线执行时间}$$
流水线最大吞吐率:
$$TP_{max} = \lim_{n\to ∞}\frac{n}{(k+n-1)t} = \frac{1}{t}$$
存储系统
层次化存储结构
三层存储结构是高速缓存(ache)、主存储器(MM)和辅助存储器(外存储器)。若将CPU内部寄存器也看作是存储器的一个层次,那么存储器的层次分为四层。若有些计算机没有高速缓存,那么存储器的层次分为两层,即只有主存和辅存。
局部性原理是层次化存储结构的支撑
时间局部性:刚被访问过的内容,立即又被访问
空间局部性:刚被访问过的内容,邻近的空间很快被访问
层次化存储结构-分类
存储器位置
内存&外存
存取方式
(1) 按内容存取:相联存储器(如Cache)
(2)按地址存取:
随机存取存储器(如内存)
顺序存取存储器(如磁带)
直接存取存储器(如磁盘)
工作方式
随机存取存储器RAM(如内存DRAM)
只读存储器ROM(如BIOS)
DRAM:动态随机存取存储器
SRAM:静态随机存取存储器
Cache:高速缓存
EEPROM:电可擦可编程只读存储器
Cache
概念
在计算机的储存系统体系中,Cache是访问速度最快的层次(若有存储器,则存储器最快)。
使用Cache改善系统性能的依据是程序的局部性原理。
如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主
存储器”的系统的平均周期为t3,则:
$$ t_3 = h×t_1 + (1-h) x t_2 $$
其中,(1-h)又称为失效率(未命中率)。
地址映像方式
直接相联映像:硬路电路较简单,但冲突率很高。
全相联映像:电路难于设计和实现,只适用于小容量的 cache,冲突率较低。
组相联映像:直接相联与全相联的折中
注:主存与Cache之间的地址映射由硬件直接完成
地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
冲突率 | 电路复杂度 | |
---|---|---|
直接相联映像 | 高 | 简单 |
全相联映像 | 低 | 复杂 |
组相联映像 | 中 | 折中 |
主存编址计算
存储单元:存储单元个数 = 最大地址 - 最小地址 + 1
编址内容
按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是个字节
总容量 = 存储单元个数 * 编址内容
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即总片数 = 总容量 / 每片的容量
输入输出技术
数据传输控制方式
- 程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。
- 程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。
- DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。
(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输。)
- 通道方式
- I/O处理机
中断处理过程:
- CPU无需等待也不必查询O状态
- 当I/O系统准备好以后,发出中断请求信号通知CPU
- CPU接到中断请求后,保存正在执行程序的现场(保存现场)打断的程序当前位置即为断点
- (通过中断向量表)转入I/O中的服务程序的执行,完成系统的数据交换;
- 返回被打断的程序继续执行(恢复现场)。
总线
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
总线的分类:
- 数据总线( Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据
- 地址总线( Address Bus):用来指定在RAM( Random AccessMemory)之中储存的数据的地址。
- 控制总线( Control Bus):将微处理器控制单元( Control Unit)的信号,传送到周边设备。
可靠性
系统可靠性分析 - 可靠性指标
- 平均无故障时间 → (MTTF)MITF = 1 / λ,λ为失效率
- 平均故障修复时间 → (MTTR)MTTR = 1/μ,μ为修复率
- 平均故障问隔时间 → (MTBF)MTBF = MTTR + MTTF
- 系统可用性 → MTTF / (MTTR + MTTF) × 100%
在实际应用中,一般MTTR很小,所以通常认为MTBF ≈ MTTF
可靠性可以用可以用MTTF/(1+MTF)来度量
如果用M表示可维护性指标,那么M=1/(1+MTTR)
串联系统与并联系统
N模混合系统
性能指标
- 平均每条指令的平均时钟周期个数(CPl, clock per instruction)
- 每(时钟)周期运行指令条数(IPC, instruction per clock)
- 百万条指令每秒(MIPSS, Million Instructions Per Second)
- 每秒百万个浮点操作( MFLOPS, Million Floating-point Operations per Second)
- 响应时间(RT, Response Time)
评论 (0)