计算机系统知识
计算机系统基础知识
计算机系统硬件基本组成
计算器的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备的5大部件组成。
中央处理单元(CPU):作为计算机的核心部件,负责执行指令集中的指令,包括算术运算、逻辑运算以及控制操作。现代的CPU通常包含了运算器和控制器两个主要部分。
运算器:是CPU的一部分,专门用于执行算术和逻辑运算,如加法、减法、乘法、除法以及比较等操作。
控制器:也是CPU的一个组成部分,负责协调和指挥计算机系统的各个部分工作,包括从内存中取出指令、解析指令并执行相应的操作。
存储器:
- 内部存储器(主存):通常指的是RAM(随机访问存储器),它提供了快速的数据访问速度,但数据是非永久性的,即断电后数据会丢失。
- 外部存储器(辅存):例如硬盘、SSD(固态硬盘)、光盘等,它们提供较大的存储容量,可以长期保存数据,但访问速度相对较慢。
输入设备:用于向计算机输入原始数据或命令,常见的输入设备有键盘、鼠标、扫描仪、麦克风等
输出设备:用于显示或输出计算机处理的结果,常见的输出设备包括显示器、打印机、音箱等。
中央处理单元 CPU
中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
1. CPU的功能
- 程序控制(控制器)
- 操作控制(控制器)
- 时间控制(控制器)
- 数据处理(运算器)
2. CPU的组成
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成,如图1-1所示。
运算器:运算器只能完成运算。
- 算术逻辑单元(ALU ,Arithmetic and Logic Unit):负责处理数据,实现对数据的算数运算和逻辑运算
- 累加寄存器(AC):通用寄存器。运算器的算数逻辑单元执行算数或逻辑运算时,为ALU提供一个工作区,运算的结果存储在AC中。
- 数据缓冲寄存器(DR):作为CPU和内存、外部设备之间的中转站。
- 状态条件寄存器(PSW,Program Status Word ):保存各种条件码内容。
控制器:控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。
- 指令寄存器(IR,Instruction Register):当CPU执行指令时,先把它从内存存储器取到缓冲寄存器中,在送入IR暂存。对用户完全透明
- 程序计数器(指令计数器)(PC ,Program Counter):跟踪指令的地址。PC在顺序执行的时候加1,在转移执行的时候加上一个位移量
- 地址寄存器(AR,Address Register ):保存当前CPU所访问的内存单元的地址
- 指令译码器(ID,Instruction Decoder ):指令包含操作码和地址码。对指令中的操作码进行分析解释
补充:指令 == 操作码 + 地址码
计算机基本单位
位(比特) 最小数据单位 | bit、b | 8b=1B |
---|---|---|
字节 最小存储单位 | byte、B | 1B = 8b |
千字节 | KB | 1KB = 1024B |
兆字节 | MB | 1MB = 1024KB |
吉字节 | GB | 1GB = 1024MB |
太字节 | TB | 1TB = 1024GB |
数据表示
进制 | 英文简写 |
---|---|
二进制 | B |
八进制 | O |
十进制 | D |
十六进制 | H |
按权展开求和:n进制 ————> 十进制 每一位八进制数与三位二进制数对应
除n取余法:十进制 ————> n进制 每一位十六进制数与四位二进制数对应
进制加减法:加法:逢n进制进一 减法:借一当n
原码:总共有n位。最高位是符号位,0表示正号,1表示负号。其余n - 1为位表示数值的绝对值。
反码:正数的反码与原码相同,负数的反码则是其绝对值按位求反。
补码:正数的补码与其原码和反码相同,负数的补码则是等于其反码的末位加1。补码可以简化计算机运算部件的设计
移码:在补码的基础上取反符号位。
原码、反码、补码和移码的特点:
数制表示 定义 特点 优点 缺点 原码 最高位是符号位(0正1负),其余位是数的绝对值。 零有两个编码:[+0] = 00000000 和 [-0] = 10000000。 数的真值和它的原码表示之间的对应关系简单,相互转换容易,用原码实现乘、除运算的规则简单。 用原码实现加、减运算很不方便。 反码 最高位是符号位(0正1负),正数直接表示,负数按位取反。 零有两个编码:[+0] = 00000000 和 [-0] = 11111111。 在某些情况下可以简化运算过程。 零有两个不同的编码,这可能会导致一些问题。 补码 最高位是符号位(0正1负),正数直接表示,负数按位取反后加1。 零有唯一的编码:[+0] = [-0] = 00000000。 补码表示的两个数在进行加法运算时,只要结果不超出机器所能表示的数值范围,可以把符号位与数值位同等处理,运算后的结果按2取模后,得到的新结果就是本次加法运算的结果。 虽然解决了零的唯一表示问题,但在某些特殊情况下,运算过程可能需要额外处理。 移码 在数X上增加一个偏移量来定义,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为 (2^{n-1})。 若 (X) 是纯整数,则 ([X]{移} = 2^{n-1} + X (-2^{n-1} \leq X < 2^{n-1}));若 (X) 是纯小数,则 ([X]{移} = 1 + X (-1 \leq X < 1))。 适用于浮点数的阶码表示,简化了浮点数的处理。 主要用于特定场景,如浮点数运算,对整数运算不太适用。 补充
- 正数的原码补码和反码都相同
- 补码再取补码等于原码
- ±0的补码、移码相同
各种码制带符号数的范围
浮点数
浮点数使用两个定点数来分别表示实数的尾数(F)和阶码(E)。其一般形式为:N = 2^E * F
阶码为带符号的纯整数,尾数为带符号的纯小数。
一个数的浮点表示不是唯一的。小数点位置改变,阶码也随着相应改变。
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。
阶数不一样,先对阶小阶向大阶对,浮点数右移
规格化就是将尾数的绝对值限定在区间[0.5,1]
一般浮点数阶码用R位的移码表示,尾数用M位的补码表示。这种表示的数值范围为:
寻址
- 立即寻址:操作数就包含在指令中。(最快)
- 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
- 直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址。
- 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
- 间接寻址:指令中给出操作数地址的地址。(最慢)
- 相对寻址:指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上该偏移量。
- 变址寻址:操作数地址等于变址寄存器的内容加偏移量。
- 补充
- 指令系统中采用不同的寻址方式的目的是:扩大寻址空间并提高编程灵活性
校验码
奇偶校验码
- 只能检错,不能纠错,码距 = 2。
- 只能检测出奇数个数据位出错,不能检测偶数个数据位出错
- 水平奇偶校验码、垂直奇偶校验码、水平垂直奇偶校验码。
海明码
- 海明码可以检错也可以纠错。
- 码距 = 2 ,检错能力 码距 >= 3,才有可能有纠错能力
- 数据位是n,校验位是k,则n和k必须满足一下关系: 2^k − 1≥ n+k
循环冗余校验码(CRC)
- 可以检错,但不能纠错,码距 = 2。
- k个数据位后跟r个校验位
- 校验位r采用模2运算
计算机体系结构
CISC 和 RISC
RISC精简指令集计算机 | CISC复杂指令集计算机 | |
---|---|---|
指令种类 | 少、精简 | 多、丰富 |
指令复杂度 | 低(简单) | 高(复杂) |
指令长度 | 固定 | 变化 |
寻址方式 | 少 | 复杂多样 |
实现(译码)方式 | 硬布线控制逻辑(组合逻辑控制器) | 微程序控制技术 |
通用寄存器数量 | 多、大量 | 一般 |
流水线技术 | 支持 | 不支持 |
流水线
计算机中的流水线技术是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。
若要执行n条指令:
顺序执行总时间:顺序执行总时间 = 单条指令执行的时间 × n
流水线执行总时间:
- 流水线执行总时间 = 一条指令执行的时间 + 流水线周期 × (n−1)
- 流水线(操作)周期为执行时间最长的一段操作的时间。
连续输入n条指令的吞吐率:
- 吞吐率 = n ÷ 总执行时间
- 如果是流水线的吞吐率,则总执行时间为流水线执行总时间。 流水线的吞吐率是最长流水段操作时间的倒数。即:最长流水段操作时间 = 流水线执行总时间 ÷ n
加速比:
加速比 = 顺序执行总时间 ÷ 流水线执行总时间
存储系统
- SRAM(静态随机存储器):构成Cache(缓存)
- DRAM(动态随机存储器):构成主存 DRAM需要周期性地刷新保持信息。
- RAM(读/写存储器)
- ROM(只读存储器)
- PROM(可编程的只读存储器)
按存储器所处位置可分为:
内存(主存):在主机内或主板上,存放机器当前运行所需的程序和数据,以便向CPU提供信息。(相对外存)容量小、速度快。
外存(辅存):存放当前不参加运行的大量信息,在需要时调入内存。
按存储器的构成材料分类:
磁存储器
半导体存储器
光存储器
按存储器工作方式:
读/写存储器(RAM)。
只读存储器:ROM、PROM、EPROM、EEPROM等。
- 固定只读存储器(ROM):厂家生产时就写好数据在其中。只能读(用户)不能写。一般用于存放BIOS和微程序控制。
- 可编程读只读存储器(PROM):其内容可以由用户一次性地写入,写入后不能再修改。
- EPROM、EEPROM是指带电可擦可编程只读存储器。
按访问方式:
按地址访问:
- 随机存储器(RAM)
- 顺序存储器(SAM)
- 直接存储器(DAM)
按内容访问:例如相联存储器。
高速缓存(Cache)用来存放当前最活跃的程序和数据,其特点是:
位于CPU与主存之间;容量一般在几千字节到几兆字节之间;
速度一般比主存快5~10倍,由快速半导体存储器构成;
其内容是主存局部域的副本,对程序员来说是透明的。
Cache存储器部分用来存放主存的部分拷贝(副本)信息。控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。
- 补充内容
- 虚拟存储器由主存与辅存组成。
- 闪存(flsah)类似U盘,掉电后信息不会丢失。以块为单位进行删除。闪存是EPROM的一种类型,可以代替ROM存储器。闪存不可以代替主存。
- Cache 与主存地址的映射是由硬件自动完成的
- 数据总线:数地控即数据总线、地址总线和控制总线
- 发生块冲突从多到少的顺序:直接映像 > 组相联映像 > 全相联映像。
中断
计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序,转去执行有关服务程序,处理完后自动返回源程序,这个过程称为中断。
与程序控制方式相比,中断方式因为CPU无须等待而提高了效率。
中断向量:提供中断服务程序的入口地址
中断响应时间:发出中断请求开始,到进入中断服务程序
保存现场:返回执行源程序
多级中断使用堆栈来保护现场最有效
输入输出(I/O)控制方式
程序查询方式
CPU和 I/O(外设)只能串行工作 ,CPU需要一直轮询检查,长期处于忙等状态。CPU 利用率低
一次只能读/写一个字
由 CPU 将数放入内存
中断驱动方式
I/O 设备通过中断信号主动向 CPU 报告 I/O 操作已完成
CPU 和 I/O(外设)可并行工作
CPU 利用率得到提升
一次只能 读/写 一个字
由 CPU 将数据放入内存
直接存储器方式(DMA)
- CPU 和 I/O(外设)可并行工作
- 仅在传送数据块的开始和结束时才需要 CPU 的干预
- 由外设直接将数据放入内存
- 一次读写的单位为”块“而不是字
总线
总线是连接计算机有关部件的一组信号线,是计算机中用来传送信息代码的公共通道。
采用总线结构主要有以下优点:
- 简化系统结构,便于系统设计制造;
- 大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;
- 便于接口设计,所有与总线连接的设备均采用类似的接口;
- 便于系统的扩充、更新与灵活配置,易于实现系统的模块化;
- 便于设备的软件设计;
- 便于故障诊断和维修,同时也降低了成本。
在计算机系统中采用总线结构,便于实现系统的积木化构造,同时可以减少信息传输线的数量。
微机中的总线分为:
- 数据总线
- 地址总线
- 控制总线
常见总线:
- ISA总线。
- EISA总线。
- PCI总线:PCI总线是目前微型机上广泛采用的并行内总线。
- PCI Express 总线。
- 前端总线。
- RS-232C。
- SCSI总线:小型计算机系统接口(SCSI)是一条并行外总线。
- SATA。
- USB。
- IEEE-1394。
- IEEE-488总线。
加密技术和认证技术
加密技术:
- 对称加密(私有密钥加密)
加密和解密是同一把密钥,只有一把密钥
密钥分发有缺陷 1. 加密解密速度很快 2. 适合加密大量明文数据 - 非对称密钥(公开密钥加密)
加密和解密不是同一把密钥,一共有两把密钥 分别是公钥和私钥
用公钥加密只能用私钥解密 用私钥加密只能用公钥解密
不能通过一把推出另一把 用接收方的公钥加密明文,可以实现防止窃听的效果
密钥分发没有缺陷 1.加密解密速度很慢 - 混合加密
- 对称加密(私有密钥加密)
认证技术:
- 摘要:将发送的明文进行Hash算法后得到的摘要放在密文后一起发送过去,与接收方解密后的明文进行相同的Hash算法得到的摘要进行对比,如果一致,则没有篡改,否则有篡改。
- 数字签名:发送方用自己的私钥对摘要进行签名(加密)得到数字签名放在密文后一起发送过去。接收方用发送方的公钥对数字签名进行验证(解密)如果验证成功则该消息没有被假冒且不能否认,否则该消息的真实性为假冒发送。
- 使用数字签名确保消息不可否认
- 数字证书:用户向CA(权威机构)机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名(加密)用CA的公钥验证(解密)数字证书得到用户的公钥。
- 使用数字整数确保用户身份
- 用户通过CA的公钥验证CA的签名,确定网站的真伪
加密算法
对称密钥(私钥、私有密钥加密)算法(共享密钥加密算法) | 非对称密钥(公钥、公开密钥加密)算法 |
---|---|
DES (Data Encryption Standard): 一种早期的数据加密标准,使用56位密钥。由于其较短的密钥长度,现在被认为不安全。 | RSA (Rivest–Shamir–Adleman): 最早提出的非对称加密算法之一,基于大整数分解问题,广泛应用在数据加密和数字签名中。 |
3DES (Triple DES): 是DES的一种改进形式,通过应用DES三次来增加安全性。 | ECC (Elliptic Curve Cryptography): 基于椭圆曲线离散对数问题的加密技术,相比RSA可以在提供相同安全级别的条件下使用更短的密钥长度,因此更加高效。 |
RC-5 (Rivest Cipher 5): 由Ron Rivest设计的一种对称密钥分组密码算法,允许用户选择块大小、密钥大小和轮数。 | DSA (Digital Signature Algorithm): 主要用于数字签名,不是用来加密数据。它与RSA类似,但专门为数字签名设计。 |
IDEA (International Data Encryption Algorithm): 一种128位密钥的对称加密算法,最初为PGP加密软件开发。 | |
AES (Advanced Encryption Standard): 目前最常用的对称加密标准之一,支持128, 192, 和256位密钥长度。AES因其高效性和安全性被广泛应用于各种场合。 | |
RC4: 一种流加密算法,曾广泛应用于SSL/TLS协议中,但由于发现了一些漏洞,逐渐被弃用或替换。 |
Hash函数
MD5 摘要算法(128位散列值)
SHA-1 安全散列算法
认证是处理主动攻击
可靠性
- 串联系统。假设一个系统由N个子系统组成,当且仅当所有子系统都能正常工作时系统才能正常工作,这样的系统称为串联系统。
- 系统可靠性 R = R₁R₂···Rn
- 并联系统。假设一个系统由N个子系统组成,只要有一个子系统正常工作,系统就能正常工作,这样的系统称为并联系统。

系统可靠性 R = 1 - (1-R₁)(1-R₂)···(1-Rn)
补充列题说明
- 指令寄存器的位数取决于**指令字长**
- 逻辑同或:相同为一,不同为零
- 逻辑异或:相同为零,不同为一
- 计算机采用分层存储体系的主要目的是为了解决:**存储容量、成本和速度之间的矛盾**
- 被动攻击:流量分析、会话拦截。 主动攻击:重放、IP地址欺骗、拒绝服务、系统干涉、修改数据命令
- CPU依据 指令周期的不同阶段来区分内存中以二进制编码形式存放的指令和数据
X | Y | 逻辑与 | 逻辑或 | 逻辑异或 | 逻辑同或 |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 1 |