0
点赞
收藏
分享

微信扫一扫

一:计算机组成原理与体系结构

伽马星系 2022-05-02 阅读 71
经验分享

一:计算机组成原理与体系结构

磁盘清理:删除计算机上所有不需要的文件(由系统或用户确认)

磁盘分区:会先格式化磁盘

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

1. 数据的表示

1.1 R进制转十进制:使用按权展开法

    eg: $10100.01=1*2^{4}+1*2^{2}+1*2^{-2}$

     $604.01=6*7^{2}+4*7^{0}+1*7^{-2}$

1.2 十进制转R进制使用短除法

1.3 原码,反码,补码,移码

在这里插入图片描述

1-1=-1+1

移码:将符号位进行取反;所以移码中符号位为1代表正数

原码和反码有+0和-0之分;补码没有+0与-0之分

将一个数求补码后,再求补码,则还为原码

[ [ X ] 补 ] 补 = [ X ] 原 码 [[X]_{补}]_{补}=[X]_{原码} [[X]]=[X]
在这里插入图片描述
在这里插入图片描述

在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以简化计算机运算部件的设计→因为可以将减法当加法去运算

1.4 浮点数运算

浮点数表示: N = M ∗ R e N=M*R^{e} N=MRe

其中M称为尾数,e是指数(即阶码),R为基数。

(机器中)在浮点数表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数(即尾数的整数部分一定为零,即一定为0.xxxxx)
在这里插入图片描述
对阶的过程中,需要小阶向大阶对,否则误差太大。

eg:

1000 = 1.0 ∗ 1 0 3 119 = 1.19 ∗ 1 0 2 1000=1.0*10^{3}\\ 119=1.19*10^{2} 1000=1.0103119=1.19102

浮点数的所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。

1. 规格化浮点数:

规格化就是将尾数的绝对值限定在区间**[0.5,1)**

重点:

  • 如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下
  • 最 大 的 正 数 : + ( 1 − 2 − M + 1 ) ∗ 2 ( 2 R − 1 − 1 ) , 最 小 的 负 数 : − 1 ∗ 2 ( 2 R − 1 − 1 ) 最大的正数:+(1-2^{-M+1})*2^{(2^{R-1}-1)},最小的负数:-1*2^{(2^{R-1}-1)} +12M+12(2R11),12(2R11)

工业标准IEEE754浮点数格式中阶码采用移码,尾数采用原码表示。

2. 定点表示法

定点表示法表示的数(称为定点数)常分为定点整数和定点小数两种;

即小数点定住,不会动。

2. 计算机结构

主机包含两个部分:CPU、内存(即主存储器),其他的均为外设

2.1 CPU

2.1.1 运算器

运算器只能完成运算。

  • 算术逻辑单元ALU
  • 累加寄存器AC
    • 加法或者减法都要用到它
  • 数据缓冲寄存器DR
    • 读写操作时用来暂存数据
  • 状态条件寄存器PSW (常考)
    • 存储在运算过程中的相关标志位(eg:进位,终端等状态信息)

2.1.2 控制器

CPU中的控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。

它不仅要保证程序的正确执行,而且要能够处理异常事件

控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。

  • 程序计数器PC
  • 指令寄存器IR
  • 指令译码器ID
  • 地址寄存器IR
  • 时序部件
    在这里插入图片描述

2.1. 寻址

指令系统中采用不同寻址方式的目的是:扩大寻址空间并提高编程灵活性。

  • 立即寻址(速度最快,排名第一)

    操作数就包含在指令中

    eg: 1 + 2   ( 其 中 + 为 操 作 码 , 1 和 2 分 别 为 操 作 数 ) 1+2  (其中+为操作码,1和2分别为操作数) 1+2 (+12)

  • 直接寻址(速度排名第三)

    操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址

    eg: 0 x 1 + 0 x 2   ( 其 中 的 0 x 1 和 0 x 2 分 别 为 操 作 数 在 内 存 中 的 地 址 ) 0x1+0x2 (其中的0x1和0x2分别为操作数在内存中的地址) 0x1+0x2 (0x10x2)
    在这里插入图片描述

  • 寄存器寻址(速度排名第二)

    操作数存放在某一寄存器中,指令中给出存放操作上的寄存器名。

    eg: R 1 + R 2   ( 其 中 的 R 1 和 R 2 分 别 为 寄 存 器 的 名 字 ) R_{1}+R_{2} (其中的R_{1}和R_{2}分别为寄存器的名字) R1+R2 (R1R2)

  • 寄存器间接寻址(速度排名第四)

    操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中,

    eg: R 1 + R 2   ( 其 中 的 R 1 和 R 2 分 别 为 寄 存 器 的 名 字 ; 但 是 R 1 和 R 2 里 存 放 的 却 是 操 作 数 在 内 存 中 的 地 址 ) R_{1}+R_{2} (其中的R_{1}和R_{2}分别为寄存器的名字;但是R_{1}和R_{2}里存放的却是操作数在内存中的地址) R1+R2 (R1R2;R1R2)
    在这里插入图片描述

  • 间接寻址(速度排名五)

    指令中给出操作数地址的地址

  • 相对寻址

    指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上偏移量。

  • 变址寻址

    操作数地址等于地址寄存器的内容加偏移量

2.2. 中断

计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序,转去执行有关服务程序,处理完后自动返回源程序,这个过程叫 中断

中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到这种技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(或称为中断向量)汇集为中断向量表

  • 中断向量:提供中断服务程序的入口地址。
  • 中断响应时间:从发出中断请求开始,到开始进入中断服务程序的时间
  • 保存现场:以便于再返回来执行源程序

在这里插入图片描述

2.3. 输入输出(I/O)控制方式

即老师给小朋友分别发两(或者n)颗糖,第一颗吃完后在发第二颗

2.3.1 程序查询方式(程序直接控制方式)

老师一直询问小朋友第一颗有没有吃完,吃完就发下一颗

  1. CPU和I/O(外设)只能串行工作,CPU需要一直轮询检查,长期处于忙等状态。CPU利用率低。
  2. 1次只能读/写一个字
  3. 由CPU将数据放入内存
    在这里插入图片描述

2.3.2 中断驱动方式

小朋友吃完自己找老师要,老师可以去做其他自己的事情

  1. I/O设备通过中断信号主动向CPU报告I/O操作已完成
  2. CPU和I/O(外设)可并行工作
  3. CPU利用率得到提升
  4. 1次只能读/写一个字
  5. 由CPU将数据放入内存
    在这里插入图片描述

2.3.3 直接存储器存取方式(DMA)

立一个班长,只有在开始发糖和全部发完糖后才需要告诉老师,老师可以去做自己的事情。

  1. CPU和I/O(外设)可并行工作
  2. 仅在传送数据块的开始和结束时才需要CPU的干预
  3. 由外设直接将数据放入内存
  4. 一次读写的单位为“”,而不是字。
    在这里插入图片描述

3. Flynn分类法

  • 单指令流单数据流(SISD)
  • 单指令流多数据流(SIMD)
    • 阵列处理机(常考
      • 用来处理数组类型的运算,eg:二维数组
  • 多指令流单数据流(MISD)
  • 多指令流多数据流(MIMD)
    • 非常常见,eg:服务器,集群……
      在这里插入图片描述

4. CISC与RISC(考率高)

在这里插入图片描述
在这里插入图片描述

5. 流水线技术(必考)

5.1 流水线的基本概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工资,以提高各部件的利用率和指令的平均执行速度。
在这里插入图片描述

5.2 流水线执行时间计算

  • 流水线周期(即操作周期)执行时间最长的一段

  • 流水线计算公式为:

    • Δ t 为 流 水 线 周 期 , k 为 分 段 数 , 如 分 为 取 值 , 分 析 , 执 行 , 则 k = 3 n 为 需 要 执 行 的 全 部 指 令 数 \Delta t为流水线周期,k为分段数,如分为取值,分析,执行,则k=3\\n为需要执行的全部指令数 Δt线kk=3n

    一条指令执行时间+(指令条数-1)*流水线周期

    • 理论公式: ( t 1 + t 2 + … + t k ) + ( n − 1 ) ∗ Δ t (t1+t2+…+tk)+(n-1)*\Delta t t1+t2++tk+(n1)Δt (考试中80%概率使此公式)
    • 实践公式: ( k + n − 1 ) ∗ Δ t (k+n-1)*\Delta t (k+n1)Δt(即让所有的段需要的执行时间都为流水线周期)(考试中20%概率使此公式)
    • 所有在考试中先使用理论公式。若理论公式无正确答案,则使用实践公式来计算。
      在这里插入图片描述
      在这里插入图片描述

5.3 流水线吞吐率计算

流水线的吞吐率(Though Put rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下

流水线最大吞吐率:

5.4 流水线的加速比

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。

5.5 流水线的效率

是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比

在这里插入图片描述

6. 存储系统

虚拟存储器由主存和辅存构成

假设CPU访问地址0x1

  • 空间局部性:即CPU后续还可能访问0x1周边的地址
  • 时间局部性:即CPU后续还可能继续访问地址0x1

6.1 存储器的分类

1.按位置分类

按存储器所处的位置分类,可分为内存(即主存)和外存(即辅存)

主存为易失性存储器,断电后会丢失。
在这里插入图片描述

2.按存储器的工作方式分类

  • 读写存储器(RAM),它指既能读取数据也能存入数据的存储器
  • 只读存储器,工作过程中仅能读取的存储器,根据数据的写入方式,这种存储器又可细分位ROM、PROM、EPROM和EEPROM等
    • 固定只读存储器(ROM),这种存储器都是在厂家生产时就写好数据的。其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制
    • 可编程的只读存储器(PROM):其中的内容可以由用户一次性地写入,写入后不能再修改
    • 可擦除可编程的只读存储器(EPROM):其中的内容即可以读出,也可以由用户写入,写入后还可以修改。改写的方法是写入之前先用紫外线照射15~20分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
    • 电擦除可编程的只读存储器(EEPROM):与EPROM相似,EEPROM中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
  • 闪速存储器(Flash Memory)简称闪存,闪存的特性介于EPROM和EEPORM之间。类似于EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除速度远快于EPROM
    • 以块位单位删除
    • 类似U盘,数据不会丢失
    • 可代替ROM,但不可代替主存
    • 处于EPROM于EEPROM之间

3.按访问方式分类

  • 按地址访问的存储器

    • 相联存储器

      写入信息时按顺序写入,不需要地址。

      读出时,要求中央处理单元给出一个相联关键字,用它和存储器中所有单元中的一部分信息进行比较,若它们相等,则将此单元中余下的信息读出。这是实现存储器并行操作的一种有效途径,特别适合于信息的检索和更新。

  • 按内容访问的存储器

4.按寻址方式分类

  • 随机存储器(RAM):这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的
  • 顺序存储器(SAM):访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器
  • 直接存储器(DAM):介于RAM与SAM之间。磁盘是一种直接访问存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。

6. 2层次化存储结构

Cache不是必须的,但是拿掉Cache,速度就会很慢。

Cache显著特色:按内容存取,不同内容存储在不同区域,存取效率远高于按内存存取。

6.3 Cache

高速缓存(Cache)用来存放当前最活跃的程序和数据,其特点是:位于CPU与主存之间;容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;其内部是主存局部域的副本,对程序员来说是透明的

  • Cache的功能:提高CPU数据输入输出的效率,突破冯●诺依曼瓶颈,即CPU于存储系统间数据传送带宽限制。
  • 在计算机的存储系统体系中,Cache是访问速度最快的层次
  • 使用Cache改善系统性能的依据是程序的局部性原理。

Cache存储器部分用来存放主存的部分拷贝(副本)信息。

控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。

1. 替换算法

替换算法的目的就是使Cache获得尽可能高的命中率。常用算法有如下几种。

  • 随机替换算法:就是用随机数发生器产生一个要替换的块号,将该块替换出去。
  • 先进先出算法:就是将最先进入Cache的信息块替换出去
  • 近期最少使用算法:这种方法是将近期最少使用的Cache中的信息块替换出去
  • 优化替换算法:这种方法必须先执行依次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。

2. Cache的命中率

Cache的命中率与Cache容量的关系如图所示。Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)。但是,增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
在这里插入图片描述

3. Cache地址映射

Cache与主存的地址映射是由硬件自动完成的

在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。

  • 直接映射(冲突最大)
    在这里插入图片描述

  • 全相联映射(冲突最小)
    在这里插入图片描述

  • 组相连映射(冲突较小)

    组与组之间的映射为直接映射

    组内的单元地址间映射为全相联映射

7. 总线系统(只考一分,还不一定考)

微机中的总线分为数据总线地址总线控制总线三类

7.1 地址总线

用于传送CPU发出的地址信息,是单向的。

存储器是按地址访问的,所以每个存储单元都有一个固定地址

在这里插入图片描述

  • PCI总线:为内总线,采用并行传输方式
  • SCSI总线:为一条并行外总线

8. 可靠性

8.1 加密技术与应用技术

8.1.1 加密技术————防窃听

  1. 对称加密(私有密钥加密)

    加密和解密是同一把密钥,只有一把密钥

    密钥分发有缺陷;加密解密速度很快;适合加密大量明文数据

  2. 非对称密钥(公开密钥加密)

    加密和解密不是同一把密钥,一共有两把密钥,分别是公钥和私钥(每一个客户端都有自己的公钥和私钥)

    用谁的公钥加密只能用谁的私钥解密;用谁的私钥加密只能用谁的公钥解密,并且不能通过一把钥匙推出另外一把钥匙

    用接收方的公钥加密明文,则只有接收方的私钥能进行解密,故可以实现防止窃听的效果

    密钥分发没有缺陷;不过加密解密速度很慢

  3. 混合加密

    如果有大量的数据需要加密,逐个使用非对称密钥进行加密,会非常慢,则我们可使用:

    将大量数据都使用对称加密方式进行加密,然后将加密好的文件和密钥一起再用非对称密钥加密,然后再传送给接受方

    这种方法综合了两种加密算法的优点。

8.1.2 认证技术————防篡改,假冒和否认

认证技术主要解决网络通信过程中通信双方的身份认可。认证方一般有账户名/口令认证、使用摘要算法认证和基于PKI的认证。

  1. 摘要———防篡改

    将发送的明文进行Hash算法后得到的摘要放在密文后一起发送过去,与接收方解密后的明文进行相同的Hash算法得到的摘要进行对比,如果一致,则没有被篡改,否则有篡改

    MD5为摘要算法,其输出由32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
    在这里插入图片描述

  2. 数字签名————防假冒、否认

    发送方用自己的私钥对摘要进行签名(加密),得到数字签名放在密文后一起发送过去

    接收方用发送方的公钥对数字签名进行验证(解密),如果验证成功则该消息没有被假冒且不能否认,否则该消息的真实性位假冒发送

    因为已经有数字签名技术,则如果收到的消息没有进行签名,则不接收直接丢弃。

8.1.3 数字证书—————主要用于身份验证

CA:权威机构

用户向CA机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名(加密),用CA的公钥验证(解密)数字证书得到用户的公钥

即所有的接收方都不从传输中获得其他方的公钥,直接向CA机构申请其他方的公钥,也叫防止了其他方公钥在传输中被假冒

认证用以确保报文发送者和接收者的真实性。

背:
在这里插入图片描述

主动攻击是会导致某些数据流的篡改和虚假数据流的产生的网络攻击。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。

被动攻击是攻击者不对数据信息做任何修改,截取/窃听是指在未经用户同意和认可的情况下攻击者获得了信息或相关数据的网络攻击。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。(用户察觉不到)

则认证是为了阻止主动攻击,而加密是为了阻止被动攻击

8.2 可靠性技术

软考网工第一章计算机硬件基础:12系统的可靠性_哔哩哔哩_bilibili

8.2.1 串联系统

假设一个系统由N个子系统组成,当且仅当所有的子系统都能正常工作时,系统才能正常工作,这种系统称为串联系统。
在这里插入图片描述

设系统中各个子系统的可靠性分别用 R 1 , R 2 , … R N 来 表 示 R_{1},R_{2},…R_{N}来表示 R1,R2,RN,则系统的可靠性R可由下式求得。

8.2.2 并联系统

假如一个系统由N个子系统组成,只要有一个子系统正常工作,系统就能正常工作,这样的系统称为并联系统。
在这里插入图片描述

设每个子系统的可靠性分别以 R 1 , R 2 , … R N 来 表 示 R_{1},R_{2},…R_{N}来表示 R1,R2,RN,整个系统的可靠性由下式求得。

9.校验码

1. 奇偶校验码(只能检错,不能纠错)

码距:

所谓码距,是指一个编码系统中任意两个合法编码直接至少有多少个二进制位不同

码距=2的时候,具有检错能力。

码距≥3的时候,才可能有纠错能力。(具体要看是哪种校验码)

奇偶校验是一种简单有效的检验算法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。

对于奇校验,它可以检测代码中奇数(个)位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数(个)位发生了错误时,即编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发生变化

2. 海明码(可检错,可纠错)

最通俗的海明码计算方法,不需记公式,套步骤即可(可能都不需要理解)_哔哩哔哩_bilibili

海明码是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位(需要分别插入到 2 0 , 2 1 , 2 2 … … 2 k − 1 2^{0},2^{1},2^{2}……2^{k-1} 20,21,222k1位置上数据位的位置也是从1开始数起的),通过扩大码距来实现检错和纠错。

设数据位是n位,检验位是k位,则n和k必须满足以下关系:

故如果数据位有2-4位,则需要3位校验码:因为4+3=7≤ 2 3 2^{3} 23-1,校验码分别插入在第1位,第2位和第4位。

如果数据位有8-11位,则需要4位校验码:因为11+4=15≤ 2 4 − 1 2^{4}-1 241,校验码分别插入在第1位,第2位,第4位和第8位

如果数据位 n ∈ [ 2 k − 1 , 2 k − 1 ] n∈[2^{k-1},2^{k}-1] n[2k1,2k1],则需要k位校验码

3.循环冗余码(可检错,但不可纠错)

循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验码来进行编码,其编码长度为k+r。CRC的代码格式为:
在这里插入图片描述

由此可知,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。

若信息码占k位,则校验码就占n-k位。其中,n位CRC码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越多,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。模2加减运算的规则是按位运算,不发生借位和进位。

举报

相关推荐

0 条评论