本章将学习:

计算机基础知识


计算机系统硬件基本组成

计算机的基本硬件为五大件:运算器、控制器、存储器输入设备输出设备

其中,运算器和控制器和其他一些部件统称为 中央处理单元(俗称CPU,Centeral Processing Unit)。

五大件简介

  • CPU:作为计算机中最重要的部分,其是计算机的“大脑”,负责计算机的运算和控制。
  • 存储器:负责存放计算机中的数据,分为内存和外存
    • 内存(RAM):速度、容量,主要存取计算机中的临时数据(如日志、程序数据、CPU处理结果等)
      • 断电数据消失
    • 外存(ROM):速度、容量
      • 断电数据不消失
      • 硬盘、闪存【我们常说的u盘】等都是外存
  • 外设
    • 输入设备
      • 输入数据和各种命令
    • 输出设备
      • 输出结果(典型就是显示器,输出系统画面)

CPU的功能和组成

CPU的功能如下:

CPU的组成:

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成,如图:

运算器

运算器的组成:

运算器的主要功能如图:

运算器中各组成部件的功能如下:

控制器

运算器只进行运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。同时它还能处理异常事件。其控制的逻辑一般包括 指令控制逻辑时序控制逻辑总线控制逻辑总线控制逻辑等部分。

指令控制逻辑要完成取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤

控制器的组成如下:

寄存器组

寄存器组分为专用寄存器和通用寄存器。

  • 运算器和控制器中的寄存器是专用寄存器,作用固定
  • 通用寄存器作用广泛,由程序员规定用途,因此其数目由处理器不同有所差异

数据表示


进制转换

二进制转十进制:

  • 10 -> 2
    • 0*2^0+1*2^1 = 0+2 = 2
  • 10101 -> 21
    • 1*2^0+0*2^1+1*2^2+0*2^3+1*2^4=1+0+4+0+16=21

十进制转二进制:

  • 2 -> 10
    • 2/2=1 ... 0
    • 1/2=0...1
    • 最终为:10
  • 10 -> 1010
    • 10/2=5...0
    • 5/2=2...1
    • 2/2=1...0
    • 1/2=0...1
    • 最终为:1010

二进制转八进制:
对于每一组二进制数,将其转换为对应的八进制数字。二进制与八进制的对应关系如下:

  • 000 对应八进制的 0;
  • 001 对应八进制的 1;
  • 010 对应八进制的 2;
  • 011 对应八进制的 3;
  • 100 对应八进制的 4;
  • 101 对应八进制的 5;
  • 110 对应八进制的 6;
  • 111 对应八进制的 7。
    比如:
  • 101101 -> 55
    • 101 -> 5
    • 101 -> 5
    • 55

八进制转十进制:

  • 55 -> 45
    • 5*8^0+5*8^1=45

二进制转十六进制:
十六进制的范围是 0-9加上A-F

  • 0000 对应十进制的 0;
  • 0001 对应十进制的 1;
  • 0010 对应十进制的 2;
  • 0011 对应十进制的 3;
  • 0100 对应十进制的 4;
  • 0101 对应十进制的 5;
  • 0110 对应十进制的 6;
  • 0111 对应十进制的 7;
  • 1000 对应十进制的 8;
  • 1001 对应十进制的 9;
  • 以上为前十位,后六位为字母部分
  • 1010 对应后六进制的 A
  • 1011 对应后六进制的 B
  • 1100 对应后六进制的 C
  • 1101 对应后六进制的 D
  • 1110 对应后六进制的 E
  • 1111 对应后六进制的 F
    比如:
  • 10100010 -> A2
    • 1010 -> A
    • 0010 -> 2

十六进制转二进制:
同上的范围
比如:

  • 56B -> 0101 0110 1011 -> 010101101011

浮点数和定点数

  • 定点数:小数点的位置固定
    • Eg: 996.007-常规计数
  • 浮点数:小数点的位置不固定
    • Eg: 9.96007*10*10科学计数法

原码和反码

原码

用数值部分表示真值的绝对值,符号位“0/1”对应“正/负

如下图:

常写为:[x]原=1,0010011

其中,真值0也在原码中也有正负区别,分别为:

  • +0:00000000
  • -0:10000000

反码

若符号位为0,则反码与原码相同。若符合为为1,则数值位全部取反

如:

  • [x]原 = 0, 0010011
  • [x]反 = 0, 0010011
  • [x]原 = 1, 0010011
  • [x]反 = 1, 1101100

真值0也有区别:

  • +0:00000000
  • -0:11111111

补码

正数的补码 = 原码
负数的补码 = 反码末尾+1(需要考虑进位

如,x=+19D:

  • 原码:0, 0010011
  • 反码:0, 0010011
  • 补码:0, 0010011

如,x=-19D:

  • 原码:1, 0010011
  • 反码:1, 1101100
  • 补码:1, 1101101

真值0也有区别:

  • [+0]原= 00000000
  • [+0]反= 00000000
  • [-0]原= 10000000
  • [-0]反= 11111111
  • [+0]补=[-0]补=00000000

移码

移码:补码的基础上将符号位取反。注意:移码只能用于表示整数

如,x=+19D:

  • 原码:0, 0010011
  • 反码:0, 0010011
  • 补码:0, 0010011
  • 移码:1, 0010011

如,x=-19D:

  • 原码:1, 0010011
  • 反码:1, 1101100
  • 补码:1, 1101101
  • 移码:0, 1101101

浮点数

浮点数是小数点位置不固定的数,它能表示更大范围的数。浮点数的表示格式如图。在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。

浮点数经常表示为 N=M*R^E

  • 其中,M称为尾数,R称为基数,E称为阶码。

阶码,决定浮点数所能表示的数值范围
尾数,决定浮点数所能表示的数值精度

计算机体系结构


计算机体系结构分类

指令系统

指令集体系结构的分类如下:

其中,计算机的指令集一般分为两种:

  • 复杂指令集计算机(CISC)
    • 能够处理比较大型的运算,常用作我们的桌面系统(如Windows、Linux等)
      • ps:想这种复杂指令集更容易出bug,而精简的指令集只做一些基本的逻辑,所以很少会出bug,因此我们常用的开发板都用的RISC
  • 精简指令集计算机(RISC)
    • 能快速处理一些小型的运算,常用作一些微处理器、开发板(如esp8266、esp32、arduino)

RISC的关键技术:

指令的流水处理

指令的流水线,和生活中的流水线一样,就是指令按照一定的顺序执行,如下图:

指令的流水处理:

RISC采用的流水技术用三种:

  • 超流水线
  • 超标量
  • 超长指令字

存储系统


存储器的层次结构

存储器的分类

高速缓存(Cache)

命中率 是 Cache 的一个重要指标,但不并不是最重要的指标。
Cache 命中率与 Cache 容量的关系是:容量越大,命中率越高

虚拟存储器

虚你存储(Virtual Memory)技术,是将很大的程序(数据)分成许多较小的,存入辅存(硬盘等)。这也是为什么windows中开启虚拟内存,磁盘空间会减少了

运行时先将程序调入主存,并且把马上要用到的程序块从主存调入Cache中。这样就可以一边运行程序,一边进行所需程序的调进货调出。

外存储器

外存,也称为辅存,特点之前介绍了:五大件简介

磁盘阵列技术

磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统,常见的磁盘阵列称为廉价冗余磁盘阵列(RAID)。常见的RAID如下表:

RAID级别说明
RAID-0RAID-0是一种不具备容错能力的磁盘阵列。由n个磁盘存储器组成的0级阵列,其平均故障间隙时间(MTBF)是单个磁盘存储器的n分之一,但数据传输率是单个磁盘的n倍
RAID-1RAID-1 是采用镜像容错改善可靠性的一种磁盘阵列
RAID-2RAID-2 是采用海明码进行错误检测的一种磁盘阵列
RAID-3RAID-3 减少了用于检验的磁盘存储器的个数,从而提高了磁盘阵列的有效容量(一般只有一个检验盘)
RAID-4RAID-4 是一种可独立地对组内各磁盘进行读/写的磁盘阵列,该阵列也只用一个检验盘
RAID-5RAID-5 是对 RAID-4 的一种改进,它不设置专门的检验盘,同一个磁盘既记录数据,也记录检验信息,这就解决了前面多个磁盘机争用一个检验盘的问题
RAID-6RAID-6 磁盘阵列采用两级数据冗余和新的数据编码以解决数据恢复问题,使其在两上磁盘出现故障时仍然能够正常工作。在进行写操作时,RAID-6 分别进行两个独立的检验运算,形成两个独立的冗余数据,写入两个不同的磁盘

输入/输出技术


微型计算机中常用的内存与接口的编址方法

什么是编址

编址是指给计算机系统中的各种资源,如内存单元、寄存器、I/O 设备等分配唯一的地址编号的过程。通过编址,计算机系统能够准确地识别和访问这些资源,实现数据的存储、传输和处理。

常用的内存与接口的编址

直接程序控制

直接程序控制是指外设数据的输入/输出过程我在CPU执行程序的控制下完成的。直接程序控制分为两种情况,如下图:

中断方式

由程序控制I/O的方法,缺点在于CPU必须等待I/O系统完成数据的传输任务,而且要定期查询I/O系统的状态,确认传输是否完成。因此,大大降低了整个系统的性能。

利用中断方式完成数据输入/输出的过程为:当I/O系统与外设系统交换数据时,CPU无需等待,也不必去查询I/O的状态,从而可以去处理其他任务。当I/O系统准备好后,则发出中断请求信号通知CPU,CPU接受到信号后,保存当前正在执行程序的线程,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。

在进行中断优先级控制时解决一下两种情况:

  • 当不同优先级的多个中断源同时提出中断请求时,CPU应有限响应优先级最高的中断源。
  • 当CPU在对某一个中断源服务时,有比它优先级更高的中断源提出中断请求,CPU应暂时中断正在执行的中断服务程序而转去对有限级更高的中断源服务,结束后再回到之前被中断的优先级较低的中断源访问程序继续执行,这种情况被称为中断嵌套,即一个中断服务程序中嵌套着另一个中断服务程序。
    • 流程大致如下:
      • CPU处理一个中断源的请求
        • 更高级的中断源发出请求
      • CPU处理更高级的中断请求
      • 处理完成,重新处理开始的中断请求

直接存储器存储方式

直接内存存取(DMA),是一种内存和外设直接进行数据传输的技术,一般过程如下:

计算机安全


计算机安全概述

计算机安全指的是计算机资产安全,是要保证这些计算机资产不受自然和人为的有害因素的威胁和危害。

信息安全的基本要素

  1. 机密性:确保信息不暴露给未授权的实体或进程。
  2. 完整性:只有被允许的人才能修改数据,并能判断数据是否已被窜改。
  3. 可用性:得到授权的实体在需要时可访问数据。
  4. 可控性:可控制授权范围内的信息流向及行为方式。
  5. 可审查性:对出现的安全问题提供调查的依据和手段。

计算机的安全等级

  1. 美国国防部和国家标准局推出的《可信计算机系统评估准则》(TCSEC)。
  2. 加拿大的《可信计算机产品评估准则》(CTCPEC)。
  3. 美国制定的《联邦(最低安全要求)评估准则》(FC)。
  4. 欧洲英、法、德、荷四国国防部门信息安全机构联合制定的《信息技术安全评估准则》(ITSEC)。
  5. 美国制定的《信息技术安全通用评估准则》(CC)

安全威胁

典型的安全威胁如下表;

威胁说明
授权侵犯为某一特权使用一个系统,却将该系统用作其他为授权的目的
拒绝服务对信息或其他资源的合法访问被无条件地拒绝,或者推迟与时间密切相关的操作
窃听信息从被监视的通信过程中泄露出去
信息泄露信息被泄露或暴露给某个未授权的实体
截获/修改某一通信数据项在传输过程中被改变、删除或替代
假冒一个实体(人或系统)假装成另一个实体
否认参与某次通信交换的一方否认曾发生过此次交换
非法使用资源被某个未授权的人或未授权的方式使用
人员疏忽一个授权的人为了金钱或利益,或者由于粗心将信息泄露给未授权的人
完整性破坏通过对数据进行未授权的创建、修改或破坏,使数据的一致性受到损坏
媒体清理从废弃的或打印过的媒体中获得信息
物理入侵一个入侵者通过物理控制而获得对系统的访问
资源耗尽某一资源(如访问端口)被故意超负荷使用,导致其他用户的服务被中断

加密技术和认证技术

加密技术

加密技术是最常用的安全保密手段,其中密钥加密技术的密码体制分为对称密钥体制非对称密钥体制两种。

对称加密算法:

非对称加密算法:

  • 与对称加密算法不同,需要两个密钥
    • 公开密钥
    • 私有密钥
  • 通过公钥加密,只有对应私钥对数据进行解密通过私钥加密,只有对应的公钥才能进行解密,因此这种算法称为:非对称加密算法

通过公私钥加密,可以划分为两种模型:

校验码

校验码是一种用于验证数据准确性和完整性的代码。它通常是通过对原始数据进行某种算法计算而得到的一个附加码值,被添加到数据中一起传输或存储。

海明码

在数据之间插入k个校验码,通过扩大码距来实现检错和纠错

练习题