一.计算机组成原理
1. 海明校验码,n 个数据位,k 个校验位,2k>=n+k+1
码距:任意两个码字之间不同的二进制数位称为这两个码字的码
距,最小距离就是这个编码的码距。
为了使一个系统能够检查和纠正一个差错,码距最少是 3
海明码:可以纠正一位差错的编码,是利用奇偶性来检错和纠错
循环冗余校验(CRC):是在 k 位信息码之后再拼接 r 位校验码。
循环冗余校验只能检测出错误,而不能纠正错误。
2. Cache
可以集成到 CPU 内部,或者设置在 CPU 和内存之间
设计思想是在合理成本下提高命中率
3. 计算机 CPU 访问速度最快的是通用寄存器
通用寄存器>Cache>内存>硬盘
4. 磁盘容量计算
5. 存储器按访问方式
(1)按地址访问:随机存储器,顺序存储器,直接存储器
(2)按内容访问:相联存储器
6. 总线:按传输的内容分为,数据总线,地址总线,控制总线
7. 原码,反码,补码,移码
正数:原码,反码,补码都形同,移码是补码符号位取反
负数:反码是原码每一位取反,符号位补变
补码是反码+1
移码补码符号位取反
+-0 编码相同的是补码,移码
8 位补码表示的范围是-128 到 127
机器字长为 n 时,补码可以表示-1~(1-2-(n-1)),一共 2n 个数
某机器字长为 n,最高位是符号位,其定点整数的最大值是 2n-1-1,
最高位符号位,两个 0
一个数字的最高位就是他的符号位,补码 90H=10010000,最高
位是 1,所以是负的,补码是反码加 1,反码是=10001111,原码是反
码去反,11110000,最高位不管,16+32+64=112,负的,-112
8. 流水线时间,吞吐率
5 个阶段,t,3t,t,2t,t,第一条指令需要的时间是(1+3+1+2+1)t,
流水线一旦建立好,取最大值,3t 便完成一条指令,n 条指令的时间
是
(1+3+1+2+1)t+3(n-1)t
吞吐率 n/(1+3+1+2+1)t+3(n-1)t
9. 三总线:数据总线,地址总线,控制总线
10. CPU
CPU:运算器,控制器,寄存器组,内部总线。
算数逻辑单元是:加法器,主要对二进制进行算术运算
暂存运算结果的是累加寄存器
控制器:程序计数器,指令寄存器,指令译码器,时序产生器,
操作控制器组成。发布命令的决策机构,协调指挥整个计算机
控制器:控制整个 CPU 的工作,不仅要保证程序的正确执行,
而且能够处理异常。指令控制要完成取指指令,分析指令,执行指令。
控制器的功能:
(1) 从内存中取出一条指令,并指出下一条指令的位置
(2) 对指令进行译码或测试,产生相应的操作控制信号
(3) 指挥并控制 CPU、内存和输入输出设备之间的数据流
动
寄存器分为:
(1) 指令寄存器(IR):用来保存当前正在执行的指令。分
析一条指令,操作码和地址码都应该存入指令寄存器。
(2) 地址寄存器(AR):用来保存当前 CPU 所访问的内存
单位的地址
(3) 指令译码器(ID):对操作码进行测试,以便识别所要
求的操作
(4) 程序寄存器(指令计数器 PC):有寄存信息和计数两个
功能,程序开始时,将程序的起始地址送入 PC,PC 的初始内容即为
程序第一条指令的地址。执行指令时, CPU 自动修改 PC 内容,保
持总是将要执行的下一条指令的地址。按顺序执行,就是+1。转移指
令就是+偏移量,或者直接转移。程序员可以访问。
指令寄存器的位数取决于指令字长
11. CISC 和 RISC
CISC:复杂指令集计算机,复杂,软件功能硬件化,机器的指令
系统越来越庞大。芯片复杂度更高。
RISC:精简指令集计算机,简化指令,通过优化编译提高指令执
行速度,采用硬布线,指令种类和寻址方式更少。使用了大量的寄存
器,提高了效率
(1)指令系统:RISC 指令简单,CISC 指令复杂
(2)存储器:RISC 有限制,控制简单化,CISC 指令多
(3)程序:RISC 汇编语言要较大内存空间,不易设计,CISC
汇编简单
(4)设计周期:RISC 处理器结构简单,设计周期短,CISC 结构
复杂,设计周期长
(5)应用范围:RISC 系统与特定应用领域有关,适合专用机,
CISC 适合通用机
12. 浮点数
浮点数 N=2E×F,E 是阶码,F 尾码
阶码用移码,尾码用原码
阶码决定范围,尾码绝对精度
两个浮点数相加运算时,首先要对阶(使他们阶码一致),然后
尾数相加
规格化:要求尾数最高位必须是有效值,绝对值[0.5,1)
13. 主机与外设进行数据传输的控制方法
(1)程序控制方式:CPU 执行程序
(2)中断方式:外设向 CPU 发送中断请求信号,CPU 决定响应
就暂停正在执行的任务,输入输出后在回去执行
(3)DMA 直接存储器存取:CPU 只需向 DMA 控制器下达指令,
由 DMA 来处理数据的传送,完毕后把信息反馈给 CPU。CPU
是在一个总线周期结束时相应 DMA 请求的。
14. 中断
中断:分为可屏蔽中断、不可屏蔽中断(非屏蔽中断)
不可屏蔽:一旦提出请求,CPU 必须无条件响应。电源断点
可屏蔽:CPU 可以响应,也可以不响应。打印机
中断响应时间:从发出中断请求到开始进入中断处理程序
中断向量可以提供中断服务程序的入口地址(可以执行原来的程
序)
多级中断嵌套,用堆栈保护现场最有效
当用户通过键盘或鼠标进入某应用系统时,最先获得键盘或鼠标
输入信息的是命令解释程序。
15. 64 位和 32 位微处理器,
2 倍关系:通用寄存器的位数,数据总线的宽度,能同时进行运
算的位数。
字长为 32 位,要求数据总线的宽度为 32 位
16. 系统可靠度
串联,任何一个系统失效,整个系统失效,是各个子系统可靠性
的乘积
并联,只要有一个子系统正常工作,系统就能正常工作
17.地址映像:主存与 cache 怎么映射
(1)直接相联映像:主存块数与 cache 块数相同,将注册中块号
相同的映射到 cache 中同一块号
(2)全相联映像:主存中任意一块可以映像到 cache 中任意一块,
发生冲突最小(全都联着呢)
(3)组相联映像:两者之中,同样大小分组,每组由相同块数
18.替换算法
(1)随机替换算法 RAND
(2)先进先出 FIFO
(3)最近最少使用 LRU,是命中率最高的算法
(4)优化替换算法,有了先验信息
19.虚拟存储体系由主存-辅存两级存储
20.机器指令的地址字段
(1)隐含寻址:不直接给出操作数的地址,而是在指令中隐含着
(2)寄存器寻址:给的地址是寄存器的地址
(3)立即寻址:给的不是操作数的地址而是操作数(即刻得到)
(4)直接寻址:直接给出操作数在内存的地址,不需转换
21.VLIW 是超长指令字的简称,very long instruction word
22.算数左移*2,算式右移/2,
算术左移 SAL 把目的操作数的低位向高位移,空出的低位补 0
算术右移 SAR 把目的操作数的高位向低位移,空出的高位用最高
位(符号位)填补
算术移位指令常用于带符号数*2 或/2,左移相当于*2,右移相当
于/2。
逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都
补 0。
逻辑移位指令常用于无符号数*2 或/2,
循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入
CF(进位标志),而且还要填补空出的位。可以理解为蛇咬尾巴型循
环。
23.按字节编制,从 A1000H 到 B13FFH 的存储容量是
B12FF-A1000+1=10400H,1 0000 0100 0000 0000=1 0000 01K
1+64=65K
24.并行总线,速度快,传输距离短。串行总线,速度相对慢,但是
传输距离很长。
专用总线在设计上可以与连接的的设备实现最佳匹配
二、安全
1. 漏洞扫描
漏洞扫描是一种自动检测主机安全弱点的程序。
原理是根据漏洞库对系统可能存在的漏洞进行一一验证。
黑客通过漏洞扫描可以发现安全漏洞从而发起有针对性的攻击。
系统管理员可以发现安全漏洞并进行修补。
漏洞扫描不能用于发现网络入侵者,检测网络入侵者的系统称为
入侵检测系统
2. 数字签名
数字签名是什么?
鲍勃有两把钥匙,一把是公钥,另一把是私钥
鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把
苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果
鲍勃收信后,用私钥解密,看到信件内容
鲍勃给苏珊回信,写完后用 Hash 函数,生成信件的摘要(digest)
然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)
鲍勃将这个签名,附在信件下面,一起发给苏珊。
苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘
要。由此证明,这封信确实是鲍勃发出的
苏珊再对信件本身使用 Hash 函数,将得到的结果,与上一步得
到的摘要进行对比。如果两者一致,就证明这封信未被修改过。