一、计算机系统知识

1 计算机系统基础知识

1.1 计算机系统硬件基本组成

  • 硬件系统
    • 基本组成
      • 运算器
      • 控制器
      • 存储器
      • 输入设备
      • 输出设备
  • 软件系统
    • 系统软件
      • 操作系统、驱动程序等
    • 应用软件
      • 各种应用程序
    • 中间件
      • 连接系统软件与应用软件的桥梁

1.2 中央处理器

中央处理单元(CPU)

  • 核心组件: 运算器与控制器
  • 功能: 算术逻辑运算与控制指令执行
  • 关注指标: 核心数、频率(GHz)

CPU 的功能

  • 程序控制
  • 操作控制
  • 时间控制
  • 数据处理

CPU 的组成

  • 运算器

    • 功能
      • 实现对数据的加工、算术和逻辑运算
    • 组成
      • 算术逻辑单元(ALU),实现算术与逻辑运算
      • 累加寄存器(AC),存放操作数与结果
      • 状态条件寄存器(DR),记录一些状态标识,比如进位、溢出
      • 缓冲寄存器(PSW),临时存储指令与数据
  • 控制器

    • 功能
      • 控制整个 CPU 的工作,包括程序控制,还能处理异常事件
    • 组成
      • 指令寄存器(IR),存储当前执行的指令
      • 指令译码器(ID),将高级语言编译为机器码
      • 程序计数器(PC),指示下一条指令的地址
      • 地址寄存器(AR),存储 CPU 访问内存的地址
  • 寄存器组,保存程序的中间结果

  • (内部)总线

  • 逻辑与算术运算

    • 逻辑运算
      • 与运算(AND)
      • 或运算(OR)
      • 非运算(NOT)
      • 异或运算(XOR)
    • 算术运算
      • 加减乘除等基本运算
  • CPU 响应与处理

    • 内部与外部中断
      • 断电、硬件故障等异常情况响应
      • 清除内存数据,执行关机或重启操作

1.3 数据表示

进制转换

k 进制转十进制:按权相加法
十进制转 k 进制

  1. 整数部分用除 k 取余法,直到商为零,结果将余数由下到上记录
  2. 小数部分用乘 k 取整法,依次记录整数部分,直到小数部分为 0 或者达到预期小数点保留位数

原码
反码 负数的反码需要符号位取反,正数则不动
补码 负数的反码+1,正数则不动
移码 补码的符号位取反,主要用于表示浮点数的指数(阶码)

以有符号 8 位为例
在定点整数中 最大数为 0111 1111 为 2的8次方-1 = 127,最小数是 1111 1111 为 -128
在定点小数中 最大数为 0.111 1111 为 1 - 2的7次方,最小数是

浮点数的表示

尾数决定精度,阶码决定范围

对接时,小数向大数看齐(将较小数的尾数右移 n 位)

1.4 校验码

来检查传送的数据是否正确

奇偶校验码

crc 循环校验码 用到了模 2 除法

海明码 公式 2(k1)>n+k2^{(k-1)} >n +k

2 计算机体系结构

2.1 计算机体系结构的发展

2.2 存储系统

  • 分类: 内部存储器(内存)与外部存储器(硬盘、U盘等)
  • 特点: 内存临时存储,断电清空;外部存储长期保存数据

2.3 输入输出技术

  • 输入设备: 鼠标、键盘
  • 输出设备: 打印机、显示器

2.4 总线结构

3 安全性、可靠性与系统性能评测

3.1 计算机安全概述

3.2 加密技术和认证技术

3.3 计算机可靠性

3.4 计算机系统的性能评价

cache 替换算法

cache 页面淘汰算法

随机替换算法 rand
先进先出 fifo
最近最少使用算法 lru
最不频繁使用算法 lfu 用到了计数器
优化替换算法

cache 的读写过程

写直达 同时写 cache 与内存
写回 只写 cahe,淘汰页面时,写会内存
标记法 只写入内存

磁盘

存取时间 = 寻道时间(磁头移动到磁道) + 等待时间

输入输出技术

不同的数据传输方式根据设备速度和实时性需求选择
DMA 和中断方式在现代计算机系统中广泛应用,以提高整体系统性能

  • 数据交互过程
    • CPU 控制储存与外设之间的数据交互
    • 需要平衡慢速的输入输出设备(如磁盘)与高速的组织(如内存)之间的速度差异
  • 数据传输方式
    • 直接程序控制
      • 特点: 在 CPU 执行程序的同时完成输入输出
      • 包括无条件传送和程序查询方式
        • 无条件传送: 假设设备总是准备好的
        • 程序查询方式: CPU 不断检测设备状态,直到设备准备好
    • 中断方式
      • 利用中断信号来控制数据的输入和输出
      • CPU 在接收到中断信号后,会保存当前状态并处理中断,完成后返回原程序
    • DMA (Direct Memory Access)
      • 特点: 内存与外设之间直接建立数据通路,无需 CPU 干预
      • DMA 控制器负责数据传输过程,提高了 CPU 效率
      • DMA 优先级高于 CPU,确保快速 IO 设备的高效传输
    • 输入输出处理机 IOP
      • 分担了 cpu 部分功能,完成外围与主存之间的数据传输
  • 数据传输控制
    • 数据传输方式的选择影响 CPU 的效率和实时响应能力
      • DMA 方式减轻了 CPU 对 IO 操作的控制,显著提高了 CPU 效率
  • 中断与 DMA 的区别
    • 中断来源于CPU内部错误或外部事件,需 CPU 中断当前任务进行处理
    • DMA 来源于外部设备的直接请求,由 DMA 控制器自动处理,无需 CPU 直接干预
  • 实践应用
    • DMA 适用于高速设备的数据传输,如显卡、磁盘等
    • 中断方式适用于需要实时响应的设备,如键盘、鼠标
    • 直接程序控制适用于简单、低速的设备交互

Flynn 分类法

“Flynn分类法”是计算机体系结构领域中对计算机系统进行分类的一种方法,由 Michael J. Flynn 提出
它主要根据指令流数据流的组合情况,将计算机系统分为四大类:单指令单数据(SISD)、单指令多数据(SIMD)、多指令单数据(MISD)和多指令多数据(MIMD)。这种分类法有助于理解和分析不同计算机架构的特点和适用场景。

MIMD 目前用得最多

CISC 和 RISC

特性 CISC(复杂指令集计算机) RISC(精简指令集计算机)
指令集大小 指令集庞大,包含复杂指令 指令集精简,指令简单
指令功能 单条指令可完成复杂操作 单条指令功能单一,执行简单
处理器设计 处理器结构复杂,包含大量硬件逻辑 处理器结构简单,依赖软件优化
执行效率 对复杂任务效率高,但可能受制于指令复杂度 简单指令执行快,适合大量简单任务
编译器设计 编译器设计相对简单,因为指令丰富 编译器设计复杂,需要优化指令调度
应用场景 适合复杂任务处理,如早期的桌面计算机 适合高性能计算,如服务器、嵌入式系统
典型代表 Intel x86 系列 ARM、PowerPC、MIPS
优点 编程直观,硬件实现复杂任务 高性能,低功耗
缺点 处理器复杂,功耗高 编译器要求高,硬件资源利用率低
寻址方式 支持多种 支持方式少
实现方式 微程序控制技术 增加了通用寄存器,硬布线逻辑控制为主,更适合采用流水线

流水线技术

知识点 内容
流水线定义 将重复的顺序处理过程分解为若干子过程,每个子过程在专用的独立模块上并发工作。
流水线的种类 从流水的级别上,可分为部件级、处理机级以及系统级的流水;从流水的功能上,可分为单功能流水线和多功能流水线;从流水的连接上,可分为静态流水线和动态流水线;从流水是否有反馈回路,可分为线性流水线和非线性流水线;从流水的流动顺序上,可分为同步流水线和异步流水线;从流水线的数据表示上,可分为标量流水线和向量流水线。
流水线周期 流水线执行过程中最长的一段时间
流水线执行时间 理论公式:流水线建立时间+(指令条数-1)× 流水线周期;实践公式:指令段数×流水线周期+(指令条数-1)×流水线周期
吞吐率 单位时间内流水线所完成的指令数量,最大吞吐率=1/流水线周期
加速比 不使用流水线执行时间 / 使用流水线执行时间。

冯·诺依曼结构和哈佛结构

特性 冯·诺依曼结构 哈佛结构
存储结构 指令和数据共享同一存储空间(内存) 指令和数据存储在不同的内存区域
总线结构 指令和数据共享同一总线 指令和数据分别使用不同的总线
访问方式 指令和数据顺序访问 指令和数据并行访问
执行效率 存在冯诺依曼瓶颈,不能同时访问指令和数据 可以并行访问指令和数据,提高执行效率
硬件复杂度 设计较简单,内存和总线共享 设计复杂,需要独立存储器和总线
灵活性 设计较为简单,灵活性较高 硬件更复杂,灵活性较低,但适合特定应用
应用场景 通用计算机、服务器、桌面计算机等 嵌入式系统、数字信号处理器(DSP)、微控制器等
存储器访问速度 受限于内存带宽,可能较慢 可优化指令和数据的存储访问,通常更快

总线

内部总线
系统总线 用于 主存和外设部件
外部总线

  • 数据总线:数据总线的宽度直接影响数据传输的效率。例如,32 位数据总线一次可以传输4个字节的数据,而64位数据总线一次可以传输 8 个字节,因此数据总线宽度越大,数据传输速度越快。
  • 地址总线(单向传输):地址总线的宽度决定了系统的寻址能力。例如,32 位地址总线可以寻址 (2^{32}) 个地址空间,即 4GB 的内存或 I/O 空间。
  • 控制总线:控制总线的信号种类和数量取决于系统的复杂度和功能需求。例如,中断请求信号用于设备向CPU请求服务,时钟信号用于同步各部件的操作。

好的,以下是并行通信、串行通信以及全双工通信的概念解释和对比,以 Markdown 表格形式呈现,并附上详细说明:

并行通信与串行通信的区别

特性 并行通信 串行通信
数据传输方式 同时传输多个比特(通常为一个字节或字) 每次只传输一个比特
传输速度 传输速度快,适合短距离、高速率传输 传输速度较慢,但适合长距离传输
传输介质 需要多条数据线(如8条、16条、32条等) 只需要一条数据线(单工)或两条数据线(全双工)
硬件成本 硬件成本高(需要多条数据线和复杂的同步机制) 硬件成本低(只需要较少的传输线路)
抗干扰能力 抗干扰能力弱(多条线容易相互干扰) 抗干扰能力强(单线传输)
应用场景 计算机内部的 CPU 与内存之间的通信、主板与扩展卡之间的通信 计算机与外部设备(如串口通信、USB通信)、网络通信(如以太网)

全双工通信

特性 全双工通信
定义 在通信过程中,通信双方可以同时发送和接收数据,互不干扰
传输方式 数据传输是双向的,需要两条独立的传输通道(一条用于发送,一条用于接收)
传输效率 高效,通信双方可以同时进行数据传输,充分利用带宽
硬件要求 需要两条独立的传输线路,硬件成本较高
应用场景 现代网络通信(如以太网)、串行通信中的USB 3.0及以上版本
与半双工通信的区别 半双工通信在同一时间内只能单向传输,需要切换发送和接收状态,效率较低

并行通信

  • 传输方式:并行通信是指数据的各位同时传输。例如,一个8位的并行通信系统会在同一时刻通过8条数据线同时传输8个比特。
  • 优点
    • 传输速度快,适合短距离、高速率的通信场景。
    • 适合计算机内部的高速数据传输,如CPU与内存之间的数据交换。
  • 缺点
    • 需要多条数据线,硬件成本高。
    • 抗干扰能力弱,因为多条数据线容易相互干扰。
    • 适合短距离传输,长距离传输时信号容易衰减和失真。

串行通信

  • 传输方式:串行通信是指数据的各位依次逐位传输。例如,一个8位的数据需要通过一条数据线依次传输8次。
  • 优点
    • 硬件成本低,只需要较少的传输线路。
    • 抗干扰能力强,适合长距离传输。
  • 缺点
    • 传输速度较慢,适合对速度要求不高的场景。
    • 适合计算机与外部设备的通信,如串口通信、USB 通信等。

全双工通信

  • 定义:全双工通信是指通信双方可以同时发送和接收数据,互不干扰。例如,A和B之间可以同时发送和接收数据,而不需要切换发送和接收状态。
  • 优点:
    • 高效,通信双方可以同时进行数据传输,充分利用带宽。
    • 适用于现代高速网络通信,如以太网。
  • 缺点:
    • 硬件成本较高,需要两条独立的传输通道。
    • 实现复杂,需要同步机制来协调数据的发送和接收。

半双工通信

  • 定义:半双工通信是指通信双方在同一时间内只能单向传输,需要切换发送和接收状态。例如,A和B之间在同一时间内只能有一方发送数据,另一方接收数据,然后切换状态。
  • 优点:
    • 硬件成本较低,只需要一条传输线路。
    • 适合对成本敏感的场景。
  • 缺点:
    • 效率较低,需要切换发送和接收状态,带宽利用率低。
    • 适合低速通信场景,如早期的串口通信。

安全性、可靠性与系统性能评测基础知识

  • 加密技术 主要用于保护数据的机密性和完整性,防止数据在传输或存储过程中被窃取或篡改。
  • 认证技术 主要用于验证用户或设备的身份,确保只有合法用户或设备能够访问系统。

加密技术

分类 特点 常见算法 应用场景
对称加密(非公开密钥算法) 加密和解密使用相同密钥,速度快,适合大量数据加密 RC、IDEA、PGP、AES(高级加密标准)、DES(数据加密标准)、3DES(三重DES) 数据加密、文件加密、网络通信加密
非对称(公开密钥)加密 加密和解密使用不同密钥(公钥和私钥),安全性高,但速度较慢 DSA、ECC、RSA、Diffie-Hellman 数字签名、密钥交换、SSL/TLS协议
哈希函数(单向加密) 将任意长度数据转换为固定长度的哈希值,不可逆 SHA-256、SHA-3(推荐使用)、MD5(不安全)、SHA-1(不推荐) 验证数据完整性、密码存储

摘要算法:无论数据多长,都会产生固定长度的信息摘要。 MD5、SHA。

数字签名:不可否认可以防抵赖

数字证书

计算机可靠性模型

串行系统可靠性计算公式 r1r2r3...r1 * r2 * r3 * ...

并行系统可靠性计算公式 11(1r1)(1r2)...1 - 1 * (1-r1) * (1-r2) * ...