数据表示-原/反/补/移码
机器字长为n位,其中1位为符号位
当n=3时,则000 001 010 011分别是 +0 +1 +2 +3
100 101 110 111 分别是 -0 -1 -2 -3 有8种编码形式
原码和反码 但是-0 重复没有必要 舍去 即只有7个数值
码制 | 定点整数 | 定点小数 | 数码个数 |
---|---|---|---|
原码 | -(2^(n-1)-1)~+(2^(n-1)-1) | -(1-2^(-(n-1)))~+(1-2^(-(n-1))) | 2^n-1 |
反码 | -(2^(n-1)-1)~+(2^(n-1)-1) | -(1-2^(-(n-1)))~+(1-2^(-(n-1))) | 2^n-1 |
补码 | -(2^(n-1))~+(2^(n-1)-1) | -1~+(1-2^(-(n-1))) | 2^n |
移码 | -(2^(n-1))~+(2^(n-1)-1) | -1~+(1-2^(-(n-1))) | 2^n |
原码和反码有+0 -0 但是补码移码有人为规定 -4=100=-2^2
0.11+0.01=1.00 则0.11表示为 1-2^(-2)
负数:补码的补码就是原码
浮点数
表示:N=尾数*基数^(指数) 有时指数也叫做阶码
二进制则表示:N=定点小数*2^(阶码)
阶码通常用移码来表示,定点小数(尾数)通常用补码表示
运算过程:对阶>尾数基数>结果格式化
对阶就是小数向大数看齐
IEEE754 尾数可以用原码表示
阶码的位数决定数的表示范围,尾数的位数决定数的有效精度
阶符就是阶码的符号,+值代表为整数,-值代表为小数
数符就是尾数的符号位
N=2^E×F
规格化指的是阶码采用移码,尾数采用补码 这句话错误的
逻辑运算
异或: 相同为0 不同为1
优先次序:非>与>或
运算符优先顺序:!>算术运算符>关系运算符>&&>||>赋值运算符
校验码
奇偶校验码只能检错
码距:任何一种编码都由许多码字构成。任意两个码字之间最少变化的二进制位数就称为数据校验码的码距
eg:2位二进制{00,01,10,11} 00和01变化的二进制位数为1 00和11变化的二进制位数为2,所以码距为1
奇偶校验码的编码方法:由若干位有效信息(如一个字节)加上一个二进制位(校验位)组成校验码
若有奇数个数据位出错,则可以检测出该错误但无法纠正错误
校验码位置:一般拼接在头部
CRC循环冗余校验码只能检错
CRC的编码方法:在k位信息码之后拼接r位校验码
把接收到的CRC码用约定的生成多项式去除(模二除法),如果正确余数为0,如果某位出错,则余数不为0,不同的位数出错其余数不同
校验码位置:一般拼接在信息位尾部
海明校验码检错纠错都可以
2^r-1>=m+r m是信息位的个数
校验码位置:插入在信息位中间
码距2检错,码距大于等于3才可能纠错
运算器与控制器(CPU)
存储器分为:主存储器(内存)和辅助存储器(辅存)
运算器分为哪些部件?
算术逻辑单元ALU,累加寄存器AC,数据缓冲寄存器,状态条件寄存器(有歧义)
控制器分为哪些部件?
程序计数器PC,指令寄存器IR,指令译码器,时序部件,状态条件寄存器(有歧义)
运算器各部件功能
-
算术逻辑单元ALU:数据的算术运算和逻辑运算
-
累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
-
数据缓冲寄存器DR:写内存时,暂存指令或数据,作为CPU与内存、外部设备之间数据传送的中转站
-
状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)
控制器各部件功能
-
程序计数器PC:存储下一条要执行指令的地址 跟踪指令地址 程序员可以访问
-
指令寄存器IR:存储即将执行的指令(操作码和地址码),对用户完全透明
-
指令译码器ID:对指令中的操作码字段进行分析解释
-
时序部件:提供时序控制信号
-
地址寄存器:访问CPU内存单元地址
控制器负责程序执行的时序、操作等(操作控制,程序控制,时间控制)
控制器保证程序指令正确执行,而且能够处理异常事件
计算机基本单位
最小的数据单位:位(bit比特)
最小的存储单位:字节(byte)
指令寄存器的位数取决于机器字长
异或:相同为0,不同为1
CPU访问最快的是通用寄存器
主动攻击:ip地址欺骗、重放、拒绝服务、会话拦截、修改数据命令
被动攻击:流量分析、系统干涉
指令
一条指令就是机器语言的一个语句
指令的基本格式:操作码字段(OP)+地址码字段
寻址方式
-
立即寻址方式(1)
-
操作数直接在指令中,速度快,灵活性差
-
-
直接寻址方式(3)
-
指令中存放的是操作数的地址
-
-
间接寻址方式(5)
-
指令中存放了一个地址,这个地址对应的内容是操作数的地址
-
-
寄存器寻址方式(2)
-
寄存器存放操作数
-
-
寄存器间接寻址方式(4)
-
寄存器内存放的是操作数的地址
-
PCI 并行内总线 SCSI 并行外总线
指令系统类型
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,执行时间t执行=4△t的情况下,若按串行方式执行,则10条指令全部执行完需要90△t;若按流水线的方式执行,流水线的周期为4△t,则10条指令全部执行完需要45△t
流水线周期三段选最长那段
这里k=3,(3+2+4)+(10-1)*4=45
流水线吞吐率
含义:指在单位时间内流水线所完成的任务数量或输出的结果数量
流水线最大吞吐率:TPmax=limn->∞n/(k+n-1)t=1/t 就是流水线周期的倒数
TP=指令条数/流水线执行时间
层次化存储结构
局部性原理是层次化存储结构的支撑
时间局部性:刚被访问的内容,立即又被访问(循环体)
空间局部性:刚被访问的内容,临近的空间很快被访问(顺序)
CPU(速度快,容量小,成本高) -> Cache ->内存(主存)->外存(辅存)(速度慢,容量大,成本低)
分类
-
存储器位置
-
内存和外存
-
-
存取方式
-
按内容存取:相联存储器(Cache)
-
按地址存取:随机存取存储器(内存)顺序存取存储器(磁带)直接存取存储器(磁盘)
-
-
工作方式
-
随机存取存储器RAM(如内存DRAM 成本低)特点:断电丢失
-
只读存储器ROM(如BIOS)特点:断电不会丢失
-
EEPROM:电可擦可编程只读存储器
虚拟存储体系由主存-辅存两级存储器构成
flash闪存,以块为单位删除,信息不会缺失,可代替ROM,不能代替主存
DRAM周期性刷新来保存数据
计算机系统的主存主要是由DRAM构成的
*Cache
在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)
使用Cache改善系统性能的依据是程序的局部性原理
如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则: t3=h*t1+(1-h)*t2 其中,(1-h)称为失效率(未命中率)
直接相联映像:硬件电路较简单,但冲突率很高,一一对应
全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低,存任意一块
组相联映像:直接相联与全相联的折中
主存与Cache之间的地址映射由硬件直接完成
地址映像是将主存与Cache的存储空间划分为若干大小相同的页/块
高速缓存对程序员来说是透明的
主存编址计算
存储单元个数=最大地址-最小地址+1
编址内容
-
按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
-
按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节byte(编址内容:8bit位)
总容量=存储单元个数*编址内容
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需的芯片总数
总片数=总容量/每片的容量
输入输出技术
-
数据传输控制方式
-
程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率
-
程序中断方式:中断方式因为CPU无需等待而提高了传输请求的响应速度(CPU与数据传输并行)eg:鼠标,键盘
-
DMA方式(直接内存存取):为了在主存与外设之间实现高速、批量数据交换而设置的,比前两者高效,不需要CPU执行程序指令来传送数据
-
通道方式
-
I/O处理机
-
DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输
程序查询方式
-
CPU和I/O只能串行工作,CPU一直轮询检查,CPU利用率低
-
一次只能读/写一个字
-
由CPU将数放入内存
程序中断方式
-
CPU和I/O可并行工作
-
CPU利用率得到提升
-
由CPU将数放入内存
DMA
-
CPU和I/O可并行工作
-
仅在传送数据块的开始和结束时才需要CPU的干预
-
由外设直接将数据放入内存
-
一次读写的单位为块而不是字 块比字大
中断处理过程
-
CPU无需等待也不必查询I/O状态
-
当I/O系统准备好以后,发出中断请求信号通知CPU
-
CPU接到中断请求后,保存正在执行程序的现场(保存现场),打断的程序当前位置即为断点
-
(通过中断向量表 保存中断服务程序的入口地址)转入I/O值的服务程序的执行,完成I/O系统的数据交换
-
返回被打断的程序继续执行(恢复现场)
中断向量提供中断服务程序的入口地址
使用堆栈保存现场,返回源程序
中断响应时间:发送中断请求开始,到进入中断服务程序
CPU是在总线周期结束时响应DMA请求的
每传送一个数据都需要占用一个存储周期
总线
特点:分时双工
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
分类:数据总线 地址总线 控制总线
常见总线
-
ISA
-
EISA
-
RS-232C 串行外总线
-
USB 串行
-
IEEE-1394 串行外总线
-
IEEE-488 并行总线
总线可以减少总线中信号线的数量
可靠性指标
可靠性可以用MTTF/(1+MTTF)来度量 其中MTTF表示无故障时间
串联可靠性:R=R1*R2
并联可靠性:R=1-(1-R1)*(1-R2)
加密技术与认证技术
加密技术
-
对称加密(私钥加密):加密和解密是同一把密钥,只有一把密钥,密钥分发有缺陷(加密解密速度很快,适合加量大量明文数据)
-
非对称加密(公钥加密):加密和解密不是同一把密钥,一共有两把密钥分别是公钥和私钥(用公钥加密只能用私钥解密,用私钥加密只能用密钥解密)
公钥体系中,私钥用于解密和签名,公钥用于加密和认证
甲对发送的消息附加数字签名。乙收到消息后利用甲的公钥验证该消息的真实性
数字签名:接收者可验证消息来源的真实性 接收者无法伪造或篡改消息
网站向CA申请数字证书,用户通过CA签名来验证网站的真伪
发送方的公钥验证真实
A和B通信时可使用数字证书来对用户的身份进行认证
数字签名确保消息不可否认
用户通过使用CA公钥验证CA的签名的真伪
防止窃听:加密
非对称密钥(公开密钥)数字签名算法
-
RSA
-
ECC
-
DSA
MD5摘要算法 128位
对称密钥(私钥)(共享密钥)
-
DES
-
3DES
-
RC-5
-
IDEA
-
AES
-
RC4
认证处理主动攻击
性能指标
吞吐量:软件每分钟可以处理多少个请求
数据量 存储容量 1K=1000 1M=1000K 1G=1000M
CPI表示执行1条指令平均需要多少个时钟周期
IPC表示每个时钟周期平均需要执行多少条指令
MIPS和MFLOPS:表示每秒执行多少百万条指令