• 软考——软件设计师中级2023年11月备考(1.计算机组成原理)


    一、计算机硬件基础知识

    1.数据的表示

    1.1 十进制转R进制

    方法:对十进制数除R取余,最后对余数取倒序

    如:  

    1.2 原码反码补码

    1.3 浮点数

    1.4 校验码  ——  海明码  (非重点,了解即可)

    海明码的构成方法: 在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。

    n = 16 , 根据关系式依次带入校验位k:

    当K=4时,2^{4} - 1 \geq 16 + 4   X

    当k= 5 时,2^{5} - 1 \geq 16 + 5 

    最终选C

     

    2.计算机系统的组成

    2.1 计算机体系结构——五大部件

    •  例如 买手机或平板时 ,6+128G或8+128G等,6/8相当于计算机的主存(主存储器),128G相当于计算机的辅存(辅助存储器)
    • 计算机的主机包括两大部件:CPU和内存(主存储器)。而对于声卡、显卡、鼠标键盘这些都是属于外设。

     3. CPU

    3.1 运算器

    •  助记:ALU 算数 逻辑 单元(arithmetical  logic unit)、register(寄存器)、I(instruction)指令、
    • 数据缓冲寄存器 DR:作为CPU和内存、外设之间数据传送的中转站,作为CPU和内存、外设之间在操作速度上的缓冲。

     

    选B

    对A:PC用来存放下一条指令地址,AC存放操作数和运算结果,IR—存放当前指令,AR--存放地址

     

    3.2 控制器

    • 完成一条指令:取指令 -- 分析指令 -- 执行指令

    • 执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存 取到IR(指令寄存器)中,即将程序计数器PC中的内容送到地址总线上,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

     3.3 寄存器组(了解)

    (1)专用寄存器:运算器和控制器中的寄存器是专用寄存器,其作用是固定的。

    (2)通用寄存器:用途广泛并可由程序员规定其用途,其数目因处理器不同而不同。

    3.4 内部总线

     

    根据总线所处位置不同,总线系统分为三种类型:

    1. 片内总线:是芯片内部的总线。它是CPU芯片内部寄存器和寄存器之间、寄存器与ALU之间的公共连接线。
    2. 系统总线:是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。按系统总线传输信息内容的不同,又分为3类:数据总线、地址总线和控制总线
    3. 通信总线

     

    4. Flynn分类法

    • !!! 多指令流单数据流:理论上存在而实际上不存在
    • Flynn分类法中主要有两个指标:一个是指令流,一个是数据流。指令流为机器执行的指令序列;数据流是由指令调用的数据序列。无论是指令流还是数据流,它们都分为两种类型:单、多。

    5. 指令系统

    • 指令

    指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位,由二进制表示。

    一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。

    • 指令格式

    一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。

    一条指令通常包括操作码字段地址码字段两部分

    • 寻址方式  !!

    数据寻址:(速度:快->慢)

    • CISC(复杂指令集 计算机)和RISC(精简指令集计算机)

    常考点:CISC中的寄存器较少 

    • 指令的流水处理

    指令控制方式有 顺序方式、重叠方式和流水方式。

    流水方式:是指并行性或并发性嵌入计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。

    --> 取指 --> 分析 -->  执行  -->  

    下图:左图是 未使用流水线执行指令情况; 右图是 使用流水线执行指令情况 

    流水线技术

    例:1.流水线周期计算,n条指令全部执行完毕所需时间计算

    解:

    流水线周期:  2ns(纳秒)  (流水线周期是指在(取指、分析、执行)三个阶段中时间最长的一段

    1条指令执行时间):2ns + 2ns + 1ns = 5ns

    100条指令全部执行完毕:5ns + (100 - 1) * 2ns = 203ns

    吞吐率:TP = 100 / 203  0.5  

    完成100条指令,加速比:S = 5 * 100 / 203 = 2.46  (如果不使用流水线,则采用顺序执行的方法)

    例2:吞吐率、最大吞吐率计算

    当流水线各个流水段的执行时间不完全相等时,流水线的最大吞吐率主要是由流水线中执行时间最长的那个流水段来决定的。 最大吞吐率 = 1 /  流水线周期

    • 例3 流水线的加速比

    6. 存储器

    6.1 存储系统的层次结构

    • 在上图中,存储速度最快、效率最高的就是寄存器,它位于CPU中,在CPU中,拥有运算器和控制器,而在运算器和控制器中,就会存在相应的寄存器。而寄存器的容量是极小的,但是速度非常快。

    主存 — 辅存:实现虚拟存储系统,解决了主存容量不够的问题

    Cache — 主存:解决了主存与CPU速度不匹配的问题。由硬件自动完成

    6. 2 存储器的分类

    5.2.1 按存储器所处的位置分类:
    • 内存主存):设在主机内或主板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快
    • 外存辅存):如磁盘、磁带、光盘和U盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。容量大但速度慢
    5.2.2 按材料分类
    • 磁存储器:用磁性介质做成,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
    • 半导体存储器:根据所用元件可分为:双极型和MOS型;根据数据是否需要刷新可分为:静态和动态
    • 光存储器:利用光学方法读/写数据的存储器,如光盘
    5.2.3 按工作方式分类 
    • 读/写存储器(RAM):既能读取数据也能存入数据的存储器。
    • 只读存储器:工作过程中仅能读取的存储器。

    根据数据的写入方式又可细分为:ROM、PROM、EPROM、EEPROM等。

    • 固定只读存储器(ROM):这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制
    • 可编程的只读存储器(PROM):其中的内容可以由用户一次性写入,写入后不能再修改
    • 可擦除可编程的只读存储器(EPROM):其中的内容既可以读出,也可以由用户写入,写入后还可以修改,紫外线照射擦除信息
    • 电擦除可编程的只读存储器(EEPROM):与EPROM相似,既可以读出,也可以写入,只不过这种存储器采用电擦除的方式进行数据的改写。
    • 闪速存储器(FM)(Flash Memory):简称闪存,其特性介于EPROM和EEPROM之间,类似于EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM

    6.3 高速缓存Cache  ★★★

    6.3.1 局部性原理
    • 空间局部性:在最近的未来要用到的 信息(包括指令和数据),很可能与现在正在使用的信息在存储空间上是临近的。(即:指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。)

    例如:数组元素、顺序执行的指令代码

    • 时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息。

    例如:循环结构里面的指令代码

    • 基于局部性原理,不难想到,可以把CPU目前访问到的地址“周围”的部分数据放到Cache中,以提高访问效率。
    • 使用Cahe改善系统性能的依据是程序的局部性原理
    • 在计算机的存储体系中, Cache是访问速度最快的层次。
    6.3.2 高速缓存中的地址映像方法 

    要把主存中的地址映射为Cache存储器里面的地址,地址映像方法有三种:

    • 直接映像:指主存的块与Cache块的对应关系是固定的。优点是地址变换简单,缺点是灵活性差、Cache块冲突率高。

    • 全相联映像:允许主存的任一块可以调入Cache存储器的任何一个块的空间中。优点是Cache的位置不受限制,十分灵活,缺点是无法从主存块号中直接获得Cache的块号,访问速度慢、地址变换较复杂、成本太高。

    • 组相联映像:是前两种方式的折衷方案,具体方法是将Cache先分成组再分成块。即间采用直接映像方式、组内的采用全相联映像方式

    5.3.3 替换算法

    选择替换算法的目标是使Cache获得最高的命中率。常用的替换算法有以下几种:

    1. 随机替换(RAND)(Random algorithm)算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
    2. 先进先出(FIFO)(First In First Out)算法:将最先进入的Cache信息块替换出去。
    3. 近期最少使用(LRU)(Least Recently Used)算法:将近期最少使用的Cache中的信息块替换出去。这种算法较先进先出算法要好些,但此法也不能保证过去不常用的将来也不常用。
    4. 优化替换(OPT)算法:先执行一次程序统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换,达到最有目的。
    5.3.4 Cache的性能分析

    试题12:A

    A:Cache中的内容也是主存中有的,并没有“扩大”

    试题17:D

    A、B:Cache和主存之间是由计算机硬件完成的,并不是操作系统,也不是通过编程

    试题19:A

    Cache总结:

    1. Cache位于CPU和主存之间由硬件来实现,容量小,速度比主存块5~10倍,由快速地半导体存储器制成,是主存的副本,无法扩充主存的容量。

    6.4 主存

    6.4.1 主存的编址

    解:

    K = 210210, M = 220, G = 230

    第(1)问:B

            内存地址从AC000H到C7FFFH(两个十六进制数进行加减,再加1),C7FFFH-AC000H = 1BFFFH(因为十六进制,所以每借一位加16),再加1,得1C000H,(将其转换成K单位,要对结果除以1024)。将其转为十进制:(0×160+ 0×161 + 0×162+ C×163 + 1×164)/1024=112K。

    第(2)问:A

            总容量为112K×16bit,该芯片每个存储单元存储位数:(112K x 16bit)  /  (28 x 16K) = 4bit

    6.5 硬盘(磁盘)(了解公式即可)

    7.输入输出技术

    CPU与外设之间的数据传送方式

    7.1 直接程序控制方式

    直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方法分为:无条件传送和程序查询方式两种情况。

    • 无条件传送方式:(无条件地与CPU交换数据)在此情况下,外设总是准备好的条件),它可以无条件的随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。                                                                                                                                           优点:控制程序简单。实际应用中无条件方式使用较少,只用于一些简单外设的操作,如对开关信号的输入、对LED显示器的输出等。
    • 程序查询方式:(先通过CPU查询外设状态,准备好之后再与CPU交换数据)在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。                                                                     方法简单,硬件开销小,但I/O能力不高,严重影响CPU的效率(占用CPU时间最多)

    7.2 中断方式

    对于程序控制I/O的方法,其主要的缺点:CPU必须等待I/O系统完成数据的传输任务,整个系统的性能严重下降。

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

    与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。
     

    7.3 直接存储器存取方式(DMA)!!!

    直接存储器存取(Direct Memory Access, DMA)方式是在存储器与I/O设备间直接传送数据,即在内存和I/O设备之间传送一个数据块的过程中,不需要CPU的任何干涉,是一种完全由DMA硬件完成I/O操作的方式。

    D

    7.4 通道方式

    通道是一种高级的I/O控制部件,它在一定的硬件基础上实现对I/O的控制和传送,更多地免去了CPU的介入,从而使主机和外设的并行程度更高。通道并不能完全脱离CPU,它还要受到CPU的管理,比如启动、停止等,而且通道还应该向CPU报告自己的状态,以便CPU决定下一步的处理。

    7.5 I/O处理机

    I/O处理机除了完成通道的全部功能外,还可以进行码制转换、数据校正和校验、故障处理等。

    8.计算机系统的可靠性

    计算机系统的可靠性是指从它开始运行(t=0)到某个时刻t这段时间内能正常运行的概率

    用R(t) 表示

    • 串联部件的可靠度 = 各部件的可靠度的乘积
    • 并联部件的可靠度 = 1 - 部件失效率的乘积   (失效率 = 1 - 可靠度)

    首先是3个R的并联,接着是2个R的并联,最后是串联。

    选B

  • 相关阅读:
    MS做题记录
    【基于FreeRTOS的STM32F103系统】移动底盘程序优化
    深入了解面向对象——面向对象的重要特征(C#)未写完
    未来的户外LED视频墙将怎么发展
    当开发人员无法解决问题时,测试人员应该如何与他们沟通?
    百面深度学习-自然语言处理
    opencv ---特征描述符
    Log4j2 RCE:顶级供应链漏洞
    目标检测——行人和骑自行车者数据集
    Cross-Modal Self-Attention Distillation for Prostate Cancer Segmentation
  • 原文地址:https://blog.csdn.net/m0_73809176/article/details/133439574