第一章 计算机组成原理
1 数据的表示
1.1 进制之间的转换
采用两个符号位时,溢出时两个符号位不一致,异或结果一定为。
1.2 原码、反码、补码、移码
1.正数的原码、反码、补码都是相等的
2.负数的反码是原码除符号位以外全部取反
3.负数的补码是反码+1
4.无论正负移码都是补码的符号位取反
5.计算机中正数用原码表示,负数用补码表示,有符号的数据运算用补码表示原因是采用补码能简化计算机运算部件设计
6.[+0]原=00000000 [+0]反=00000000 [+0]补=00000000 [+0]移=10000000
[-0]原=10000000 [-0]反=11111111 [-0]补=00000000 [-0]移=10000000
1.3 定点整数和定点小数
1.定点整数的范围(记一个特殊例子字长为4,符号位为1,数值位为3)
原码:
原码与反码的范围一样,补码与移码因为+-0的补码移码一样故少了一个负的数
2.定点小数的范围
将定点整数的范围除以2的n-1次方
原码:
1.4 浮点数
1.小数点位置不固定
E:阶码 F:尾数(尾数一定是一个纯小数即0.xxxx)
2.阶码的位数决定数的表示范围,尾数的位数决定数的有效精度
3.运算过程:对阶(小数向大数看齐,对阶是通过较小数的尾数右移实现的)-->尾数运算 -->结果格式化
4.规格化
将尾数的绝对值限定在[ 0.5 , 1 ]
5.IEEE754浮点数
工业标准IEEE754浮点数格式中阶码采用移码,尾数采用原码表示。如求 1 0001 0 0000000001 表示的浮点数
补码0001转换为原码:1111 即转换为二进制为15,因为阶符为1,故阶码为-15
尾数0000000001转换为二进制为2的-10次方
N=2的-15次方 x 2的-10次方
6.补充
如果浮点数的阶码(包括1位阶符)用R位移码表示,尾数(包括1位数符)用M位补码表示,则浮点数能表示的数值范围:
2. 计算机结构
2.1 CPU
1.cpu分为运算器和控制器,还有一些寄存器组和总线
2.其中运算器中包含:算数逻辑单元(ALU) [ 对数据进行算术运算和逻辑运算 ]
累加寄存器(AC) [ 为ALU提供工作区暂存数据 ]
数据缓存寄存器(DR)[ 暂存指令或数据 ]
状态条件寄存器 [ 保存各种条件码内容状态标志和控制标志]
3.其中控制器中包含:程序计数器(PC) [ 用来存放CPU将要执行的下一条指令的地址(pc+1)]
指令寄存器(IR) [ 保存将执行的指令 ] 【对用户完全透明,指访问不了,位数取决于指令字长】
指令译码器(ID) [ 对指令操作码部分进行操作 ]
时序部件 [ 按时间顺序控制指令 ]
地址寄存器(AR) [用来存放cpu当前执行指令的地址 ]
3. 计算机体系结构
3.1 体系结构类型分类 Flynn
单指令流单数据流(SISD) 单处理系统
单指令流多数据流(SIMD) 并行、阵列、超级向量处理机
多指令流单数据流(MISD) 只有理论意义而无实例
多指令流多数据流(MIMD) 多处理机系统
3.2指令
操作码字段和地址码字段
地址码包含操作数的地址和操作结果的地址,因此指令又可以分为三地址、二地址.....零地址指令(即只有一个操作码)
CPU首先从程序计数器(PC)中获得需要执行的指令地址即首先要将PC的内容送到地址总线上,然后从内存(或Cache)中取到指令暂存到指令寄存器(IR)。
3.3指令寻址方式
1.立即寻址:操作数直接在指令中,速度快,灵活性差
2.直接寻址:指令中存放的是操作数的地址
3.间接寻址:指令中存放的是操作数地址的地址
4.寄存器寻址:指令中存放寄存器名,寄存器中存放操作数
5.寄存器间接寻址:指令中存放寄存器名,寄存器中存放操作数地址
立即寻址最快,寄存器寻址次之,直接寻址最慢
采用不同寻址方式的目的是扩大寻址空间并提高编程灵活性
3.4指令系统类型CISC和RISC
RISC精简指令集计算机 | CISC复杂指令集计算机 | |
---|---|---|
指令类型 | 少、精简 | 多、复杂 |
指令格式 | 定长格式 | 可变长格式 |
指令使用频率 | 接近,大部分为单周期指令 | 差别大 |
寻址方式 | 支持方式少 | 支持多种方式 |
通用寄存器数量 | 多、大量 | 一般 |
实现方式 | 硬布线逻辑控制(组合逻辑控制)为主,适合流水线 | 微程序控制技术 |
3.5流水线
概念:流水线指多条指令重叠进行操作的一种准并行处理实现技术。
假设有n条指令,1条指令分为t1、t2、.... 、tk部分,▲t为流水线周期等于指令中执行时间最长的一段
1.流水线执行时间:
(t1+t2+....+tk)+(n-1)*▲t
2.流水线加速比:
不采用流水线指令执行的时间 / 采用流水线指令执行的时间 3.流水线吞吐率:
n条指令吞吐率: n / 流水线执行时间
1条指令吞吐率:1 / ▲t
4.流水线效率:
图中所占格子数 / 总格子数
5.超标量流水线:多条流水线同时执行,靠硬件
6.超长指令字(very long instruction word)vliw :同时执行多条指令,靠软件
4.计算机的存储结构
4.1.层次化存储结构:
CPU | 寄存器最快,容量最小,成本高 |
---|---|
Cache | 按内容存取,SRAM(静态存储器) |
内存(主存) | DRAM(动态存储器),周期性的刷新 |
外存(辅存) | 硬盘、光盘、u盘 |
4.2 主存
按寻址方式分类 | 随机存储器(RAM) | 顺序存储器(SAM) | 直接存储器(DAM) |
---|---|---|---|
按工作方式分类 | 读/写存储器(RAM) | 只读存储器(ROM):ROM(固定只读存储器)、EEPROM(电擦除可编程的只读存储器)、EPROM(可擦除可编程的只读存储器)、PROM(可编程的只读存储器)、FLASH(闪速存储器) | |
按内容访问分类 | 相联存储器 (检索) | ||
按材料分类 | 磁存储器:磁带、磁盘 | 半导体存储器:双极型、MOS型 | 光存储器:光盘 |
BIOS保存在主板上的ROM中
4.3 Cache
1.Cache(高速缓存)的内存是主存部分内容的拷贝,同时对程序员来说是透明的
2.Cache的速度仅次于寄存器,位于CPU和主存之间
3.Cache的访问命中率(从Cache中取到的概率) h , t1表示Cache的周期时间,t2表示主存储器的周期时间,使用系统进行读操作的平均周期t3,则 t3 = h * t1 + (1-h) * t2
4.Cache的访问命中率随容量的增加而接近100%,但容量的增加意味着成本和命中时间的增加。
4.4 Cache的地址映像方法
1.地址映像是指将主存地址转换为Cache的地址,由硬件自动完成
2.
Cache的地址映像方法 | 定义 | 特点 |
---|---|---|
直接映像 | 主存的块只能放在Cache的相同块号中,故主存区号与Cache的区号相同即命中 | 冲突率高 |
全相联映像 | 主存的任何一块都可以调入Cache的任何一块中 | 冲突率低但难查找 |
组相联映像 | 直接映像和全相联映像的折中,Cache中块再分组,组直接映像,块全相联映像 |
3.5虚拟存储器
1.常用的虚拟存储器由主存-辅存两级存储器组成
5.输入/输出技术
5.1 程序查询方式
1.CPU执行程序需要查询外设(I/O)的状态,即IO先完成数据传输CPU才能执行程序,故CPU与外设只能串行工作
2.一次只能读/写一个字
5.2 中断方式
1.中断:计算机在执行程序时,遇到急需处理的事件,暂停当前正在进行的程序,转去执行有关服务程序,处理完后自动返回源程序。
2.中断向量:提供中断服务程序的入口地址
3.中断响应时间:发出中断请求开始到进入中断服务程序所需时间
4.保存现场:目的是能返回来执行源程序,为了便于实现多级中断嵌套,使用堆栈来保护断点和现场最有效
5.中断方式:CPU无须等待IO可以去处理其他任务,IO系统完成传输后会发送中断信号告知CPU,故CPU与IO并行工作,一次只能读/写一个字
6.io设备提出的中断请求是可屏蔽中断,电源断电是不可屏蔽中断
5.3 直接内存存取(DMA)
1.数据在内存和IO间直接成块传输,不需要CPU的干涉,CPU只需要在过程启动和结束时处理,实际操作都是由DMA硬件直接完成的,一次读写的单位为块而不是字。
2.整个系统总线都交给了DMAC,在DMA传输数据期间,CPU不能使用总线
6.总线(BUS)
1.分为数据总线(双向,宽度决定位数)、地址总线(单向的,宽度决定CPU最大寻址)、控制总线(双向)
2.常见的系统总线(内总线)有 ISA、PCI(并行)、EISA
3.SCSI是并行(外总线)用于计算机与智能设备之间减少信息传输线的数量
4.一条总线同一时刻仅仅允许一个发送,多个接受
7.加密技术和认证技术
7.1加密技术
加密技术 | 概念 | 特点 |
---|---|---|
对称加密(私有密钥加密) | 加密和解密是同一把钥匙 | 密钥的分发有缺陷、加密和机密的速度都很快、适合大量明文数据 |
非对称加密(公有密钥加密) | 加密和解密是两把钥匙分为私钥和公钥,用公钥加密的只能用私钥解密,用私钥加密的只能用公钥解密 | 加密和解密速度慢、密钥分发没有缺陷 |
混合加密 | 以上两种的结合,先采用对称加密,然后对对称密钥采用非对称加密 | 适合大量明文数据 |
非对称加密的例子:
假设A传消息给B,则A可以用B的公钥进行加密,B收到消息后用B(自己)的私钥进行解密。
7.2认证技术
认证技术 | 概念(认证主要处理一些主动攻击) | 特点 |
---|---|---|
摘要 | 发送方将发送的明文进行Hash算法后得到摘要放在密文一起发送过去,接收方将密文解密后进行Hash算法得到得摘要与发送过来的摘要进行对比,若一致则没有被篡改 | 防止篡改 |
数字签名 | 发送方用自己的私钥对摘要进行签名,得到数字签名然后发送过去。接收方用发送方的公钥对数字签名进行验证,若成功则消息没有被假冒且不能被否定 | 防止假冒和否认,对真实性的保护 |
数字证书 | 用户向CA机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名,用CA的公钥进行验证,从而得到正确的用户公钥。其实就是保障公钥正确。 | 防止假冒和篡改 |
7.3加密算法
加密技术 | 加密算法 |
---|---|
对称加密技术(私钥加密技术)(共享密钥加密算法) | DES、3DES、RC-5、IDEA、AES(分组加密)、RC4 |
非对称加密技术(公钥加密技术) | RSA、ECC、DSA |
补充:MD5是摘要算法:算法的输出由4个32位分组组成,级联后生成128位。SHA-1是安全散列算法
8可靠性公式
系统 | 可靠性计算公式 | 特点 |
---|---|---|
串联系统 | R = R1 * R2 * R3 * ..... * Rn | 适合远距离 |
并联系统 | R= 1 - (1-R1)(1-R2)....(1-Rn) | 适合近距离高速数据传输 |
9.扩展
9.1网络攻击
攻击 | 主要手段 |
---|---|
主动攻击 | 口令入侵、放置特洛伊木马程序、拒绝服务攻击、端口扫描、网络监听、欺骗攻击、电子邮件攻击 |
被动攻击 | 会话拦截、流量分析、 |
9.2安全需求
安全需求 | 主要例子 |
---|---|
物理线路安全 | 机房安全 |
网络安全 | 入侵检测 |
系统安全 | 漏洞补丁管理 |
应用安全 | 数据库安全 |