软考中级-计算机系统

1 计算机系统基础知识

1.1 基本硬件组成

运算器、控制器、存储器、输入设备、输出设备。

其中运算器、控制器等部件被集成在一起统称为中央处理单元(CPU)

1.2 CPU

计算机系统的核心部件,负责获取指令、对指令译码和执行指令。

(1)功能

程序控制:程序执行顺序

操作控制:产生操作信号、传递信号给对应部件,并控制部件操作

时间控制:指令执行过程中开始时间、持续时间、时间顺序

数据处理:字面意思

(2)组成

运算器:负责执行算术运算(加减乘除及附加运算)、逻辑运算(与或非)、逻辑测试(比较两值相等)

其组成包括:

  • 算数逻辑单元(ALU):处理数据、进行算数、逻辑运算。

  • 累加寄存器(AC):ALU运算过程中的寄存区,临时存放如被减数、计算结果等。

  • 数据缓冲寄存器:CPU与内存、外设之间的中转站。

  • 状态条件寄存器:标记算数或逻辑运算结果的状态。

控制器:控制CPU工作,保证程序正确执行,正确处理异常情况。

其组成包括:

  • 指令寄存器(IR):暂存来自数据缓冲寄存器的指令内容(包括操作码和地址码)。

  • 指令译码器(ID):翻译IR中的操作码具体是什么,进而控制相应部件执行操作。

  • 地址寄存器(AR):由于内存和CPU存在读取速度差异,AR保存当前访问的内存地址(地址码)。

  • 程序计数器(PC):程序执行有两种方式:顺序执行,转移执行。PC保存下一条指令的地址,从而无论是那种执行方式,都知道该执行哪条指令。

阶段补充:

指令执行流程为:内存->数据缓冲寄存器->IR->ID翻译并操作各部件执行。

通用寄存器:可访问其来存取数据。

状态寄存器:可访问获取数据处理结果。

程序计数器:访问以寻址。

指令寄存器:不可访问。

存储器数据寄存器:不可访问。

存储器地址寄存器:不可访问。

指令寄存器位数取决于:指令字长。

1.3 数据表示(讨论有符号数)

由小到大:位、比特(bit、b)->*8->字节(byte、B)->*1024->千字节(KB)->*1024->兆字节(MB)->*1024->吉字节(GB)->*1024->太字节(TB)

计算机最小的数据单位:bit

计算机最小的存储单位:B

计算机中数据的表示形式称为机器数,用二进制表示。

(1)原码

n位原码,最左位是最高位,用来表示符号(0正1负);剩余n-1位表示数值的绝对值。(下例n=8)

[+1]原 = 0 0000001 [-1]原 = 1 0000001

[+0]原 = 0 0000000 [-0]原 = 1 0000000 此处0的原码有两种表示形式

表示范围:定点整数 ~ | 定点小数 ~

(2)反码

正数反码与原码相同,负数反码的符号位与原码相同,数值位为原码按位求反。

[+1]反 = 0 0000001 [-1]反 = 1 1111110

[+0]反 = 0 0000000 [-0]反 = 1 1111111

表示范围: ~ | 定点小数 ~

(3)补码

正数补码与反码、原码一致,负数的补码为反码末位加1。

[+1]补 = 0 0000001 [-1]补 = 1 1111111

[+0]补 = 0 0000000 [-0]补 = 0 0000000 此处0的补码只有一种表示形式

表示范围: ~ | 定点小数 ~

因为补码中0 0000000可表示±0,故多余出来的1 0000000可表示-128,即-2^n-1

(4)移码

移码为补码符号位取反。

[+1]移 = 1 0000001 [-1]移 = 0 1111111

[+0]移 = 1 0000000

表示范围: ~ | 定点小数 ~

阶段补充:

原码求两次补码等于其本身:[[原码]补码]补码 == 原码

(5)浮点数

上述讨论的是定点数(包含定点整数和定点小数),当机器字长为n时,补码和移码均可表示个数( ~ ),而原码和反码仅分别能表示个数(因0有两种表示形式)。

  • 浮点数N表示为 ,其中F为尾数,E为阶码,F为带符号的纯小数,E为带符号的纯整数。

  • 当小数点位置改变时,阶码也会变,故浮点数表示方式不唯一,即可多个浮点数表示同一个数。

  • 浮点数表示范围由阶码掌控,精度则由尾数掌控,两浮点数相运算时首先需进行对阶,即让阶码相同,如计算 + ,此时

若将大阶向小阶对其: + ,此时后者实为4567.8,对阶后为67.8,误差4500。

若将小阶向大阶对其: + ,此时前者实为12.34,对阶后为12.3,误差0.04。

故对阶时要将小阶向大阶对其。

浮点数规格化:将尾数的绝对值限定在[0.5~1]

浮点数表示范围:如果浮点数阶码(包含1位阶符)用R位移码表示,尾数(包含1位阶符)用M位补码表示,其表示范围为,技巧为阶数从左至右为奇偶奇。

(6)寻址

  • 立即寻址:操作数就在指令中。

  • 寄存器寻址:操作数在某寄存器中,寄存器名在指令中。

  • 直接寻址:操作数在内存单元中,内存单元地址在指令中。

  • 寄存器间接寻址:操作数在内存单元中,内存单元地址在某寄存器中,寄存器名在指令中。

  • 间接寻址:操作数在内存单元中,内存单元地址存在内存单元另一位置,此位置地址存在指令中。

上述五种寻址方式,由上到下速度由快至慢,因为计算机中不同存储位置的读取速度由快至慢为:CPU内部某寄存器>cache>主存储器(内存)>联机磁盘存储器>脱机光盘、磁盘存储器。

1.4 校验码

码距:对于两段编码,码距指他俩之间二进制位不同的个数;对于整个编码系统(可能包含多端编码),码距指他们之间最少的二进制位不同的个数。

(1)奇偶校验码

在编码中增加一位校验位,使得编码中1的个数为奇数(奇校验)或为偶数(偶校验)。

奇偶校验码距为2。

奇偶校验只能发现出现奇数个错,检查不出有偶数个错误的情况。

三类:水平奇偶校验、垂直奇偶校验、水平垂直奇偶校验。

(2)海明码

利用奇偶性来检错和纠错,码距最少为3。

满足条件为:若n为数据位,k为校验位,则

(3)循环冗余校验码(CRC)

可以检错和纠错一位,码距为2.

采用n位数据位后跟k个校验位,编码长度为n+k,采用模2运算进行编码。

阶段补充:

码距=2猜有校验能力;码距>=3才可能有纠错能力。

2 计算机体系结构

2.1 RISC和CISC

RISC(精简指令集计算机)

CISC(复杂指令集计算机)

指令种类

少、精简

多、丰富

指令复杂度

低、简单

多、复杂

指令长度

固定

变化

寻址方式

复杂多样

实现(译码)方式

硬布线控制逻辑

(组合逻辑控制器)

微程序控制技术

通用寄存器数量

多、大量

一般

流水线奇数

支持

支持

2.2 流水线概念

此例帮助理解以下概念:一条指令需要a、b、c三步才能完成,每步分别用是0.1、0.2、0.3秒,此时执行100条指令。

流水线公式:T = 一条指令用时+(n-1)*指令中耗时最长的步骤的用时

T = (0.1 + 0.2 + 0.3)+(100 - 1)*(0.3)

加速比:不采用流水线工作耗时/采用流水线工作耗时

(0.1 + 0.2 +0.3) * 100 / T

操作周期:耗时最长的步骤的用时

0.3

吞吐量:单位时间/耗时最长的步骤的用时

1 / 0.3

n次操作吞吐量:单位时间 * n/采用流水线工作执行n条指令总用时

n / T

2.3 存储器

(1)存储系统层次结构:

CPU内部通用寄存器

cache

主存

联机磁盘存储器

脱机光盘、磁盘存储器

(2)分类

按存储器所处位置分为内存(主存)和外存(辅存)。

主存有动态随机存储器(DRAM,会周期性刷新,主要用这个)和静态随机存储器(SRAM)

按工作方式分为RAM(读写)和ROM(只读)。

ROM包括ROM(厂家写好)、PROM(可进行一次编程写入),EPROM(可光照擦)、EEPROM(可电擦)

闪速存储器(FLASH):以块为单位删除,掉电后数据不会丢失,可代替ROM,不可代替RAM。

按访问方式分为地址访问存储器和按内容访问存储器(相联存储器)。

按寻址方式分为随机存储器、直接存储器、顺序存储器。

虚拟存储器:主存+辅存构成。

空间时间局部性:访问a地址后还有可能会范围其附近地址/还有可能会再次访问该地址。

(3)高速缓存(cache):

用来存放当前最活跃的数据,对程序员来说是不可见的(透明的)。

CPU拿数据要先告诉cache,cache经过总线到主存拿来拷贝到自身,供CPU使用,下次CPU再需要数据,就还告诉cache,cache如果有就直接可以拿来用,如果没有再去主存拿来替换自身某一块区域的内容,提高了效率。

cache常用替换算法:

目的是为了提高CPU去cache拿数据的命中率,即尽可能存CPU想用的数据,这样就不用总去主存拿。

  • 随即替换算法

  • 先进先出算法

  • 近期最少使用算法

  • 优化替换算法:先预演一遍程序,这样就知道哪些数据CPU用的最多。

cache命中率与cache容量呈凸函数正比,即容量高到一定程度时命中率就几乎不变了。

(4)cache地址映像

CPU拿的数据在主存中,而CPU是从cache中拿数据的,故cache需要将主存地址映射为cache地址。这部分工作由专门的硬件来完成

本说明用于下文理解:

主存包含多个区,每个区包含多个块,而cache中只有一个区,其中有多个块。

  • 直接映像

主存的块号对应cache的块号,如主存0区0块0x1存在cache中0块0x1,这样查找快,但若需要同时存储主存0区0块0x1和主存1区0块0x1,就会冲突。

  • 全相连映像

主存的任意块可以存入cache的任意块,这样比较慢但不会冲突。

  • 组相连映像

上述两种方式的这种。将块再分为多个组,组可以采用直接映像,组内的块采用全相连映像。即主存1组只能存到cache的1组,1组内的块随便存。这样冲突较少,速度较快。

(5)中断

当做主程序时,突然有其他紧急程序(称为中断服务程序),就会先中断主程序去做中断服务程序,做完中断服务程序再继续做主程序。

  • 中断向量:提供中断服务程序的入口地址。

  • 中断向量表:为了提高响应速度,将所有中断服务程序入口地址汇集到中断向量表。

  • 中断响应时间:从发出中断请求开始到进入中断服务程序的时间。

  • 保存现场:保存主程序的数据,从而返回时可以继续执行原程序。

阶段补充:

可屏蔽/不可屏蔽中断:可以暂时不处理/必须立刻处理的中断。

中断和异常区别:中断是来自处理器外部的事件,异常是处理器内部的事件。

2.4 I/O设备

(1)输入输出控制方式

  • 程序查询方式

流程为:CPU告诉IO要读数据(一般一次读1字节,即8bit),随后CPU查看IO的状态当前是否可读,由于CPU和IO在此方式下只能串行工作,因此若IO没准备好,CPU需轮询检查。若准备好,则执行读写操作,最终由CPU将数据放入内存,因为一次只能读写1个字节,若没读完就循环上述步骤。

  • 中断驱动方式

流程为:CPU告诉IO要读数据(一般一次读1字节,即8bit),由于CPU和IO在此方式下可以并行工作,故此时CPU可去做其他工作,待IO准备好,向CPU发送中断信号,CPU中断手头的任务来执行读写操作,最终由CPU将数据放入内存,因为一次只能读写1个字节,所以若没读完就循环上述步骤。这样CPU的利用率得到提高

  • 直接存储器方式(DMA方式)

流程为:CPU告诉IO要读数据(一般一次读1字节,即8bit),此时DMA就开始帮忙读写数据,故此时CPU可去做其他工作,待DMA帮忙读完,向CPU发送中断信号(此时中断是为了让CPU花一点时间发一些控制信号或做一些善后操作,此时中断不需要保护现场),这种方式的读写单位为“块”,且IO和内存可以直接交互数据,不需CPU。

阶段补充:

DMA读写时获取了总线控制权;CPU响应DMA请求时在总线周期结束后;DMA每传送1个数据占用一个存储周期。

2.5 总线

分类:数据总线、地址总线、控制总线。

常见总线:ISA、EISA、PCI(是一种内总线(系统总线),采用并行传输)、PCI Express、RC232-C、SCSI(外总线(不是系统总线),并行传输)、SATA、USB、IEEE-1394、IEEE-488和前端总线。

总线带宽:等于每个时钟周期传输的字的数量时钟频率。

并行总线适合近距离高速,串行总线适合远距离,专用总线可以最佳匹配设备,单总线通用性强。

阶段补充:

内存容量决定地址总线宽度,如4G内存就等于,故地址宽度为32位。

内存字长决定数据总线宽度,内存字长32位,数据总线宽度就是32位。

总线结构便于实现积木化构造,减少信息传输线数量。

总线复用可以减少总线中信号线数量。

3 计算机安全

(1)四种不安全情况

此例帮助理解下述概念:A与B之间在相互发送消息,A说“A”,B收到后回复“B”

  • 窃听:第三者C可以看到A与B之间的消息内容。(通过加密技术防护)

  • 篡改:第三者C在A和B不知情的情况下,私自修改"B"为"C"。(通过摘要技术防护)

  • 假冒:第三者冒充A与B进行通话。(通过数字签名或数字认证技术防护)

  • 否认:B在收到后回复“B”时,此时A否认自己发送过“A”。(通过数字签名技术防护)

(2)加密技术

通过密钥将明文消息进行加密、解密。

  • 对称加密(共享密钥、私钥、私有密钥加密):只有一把密钥,加密解密都用同一把密钥。

密钥分发有缺陷,加密方在传输密钥给接收方时,第三者可以截获密钥来解密。

优点是解密速度快,适合大量明文传输。

  • 非对称加密(公钥、公开密钥加密):有一对钥匙,分别是公钥和私钥,每个人都私自保管自己的私钥,而每个人的私钥对应的公钥是所有人共享的;公钥加密的信息只能由该公钥对应的那把私钥解密。故在A发消息给B时,A可用B的公钥给消息加密,B接受后用自己的私钥解密即可,第三者由于没有B的私钥,就算捕获了消息也无法窃听。但该法解密速度慢。

  • 混合加密:明文通过对称加密,对称加密的密钥通过非对称加密,可以既安全速度又快。

(3)摘要技术

第三方虽因为加密技术无法窃听捕获到的消息,但他可以篡改。摘要技术是通过哈希算法计算发送的明文得到的摘要,将摘要跟在消息后一同发送,当接收方对接受的消息解密后,用同样的哈希算法翻译明文,如果翻译结果与摘要相等,说明未被篡改。

(4)数字签名技术

一般与摘要技术一同使用。A用自己的私钥对摘要进行加密(即签名),并发送;B收到消息后用A的公钥进行解密,如果解密成功,证明两件事:该消息是A发的,且A不可否认,因为A的私钥只有A有。

(5)数字证书技术

有一种特殊情况,即在AB最初获取对方的公钥时,就都已经被C截获且替换为自己的公钥了,如此一来C就可以自己截获信息并用自己的公钥签名来冒充AB。数字证书技术应运而生,CA是权威机构,自己也有一对公钥和私钥。用户A可以将自己的个人信息、自己的公钥发给CA,CA返回一个用CA私钥加密过的数字证书,其中包含了A的个人信息、A的公钥和证书信息。这样B就可以通过CA的公钥解密,从中获得正确的信息。该技术可以认证发送方。

(6)加密算法

  • 对称加密:DES、三重DES、RC-5、RC-4、IDEA、AES(分组加密)

  • 非对称加密、RSA、ECC、DSA

  • Hash函数

  • MD-5摘要算法,计算结果长度是128位

  • SHA-1安全散列算法

(7)可靠性公式

  • 串联系统

R1...Rn为子系统,所有子系统组成总系统R,总系统R的可靠性为各子系统可靠性之积:

  • 并联系统

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值