(中级软件设计师)计算机组成原理--计算机基本工作原理笔记

一、现代计算机硬件框图

二、存储系统

(一)、主存储器

存储体是计算机中用于储存数据的地方,它由若干个存储单元组成(存储单元由若干个存储元组成),是一个独立的存储实体。存储体具有读取、写入保持(记忆)的功能。

MAR(内存地址寄存器)是一种特殊类型的寄存器,用于保存即将被读取或写入内存的数据所对应的内存地址。通过将地址信息传递给内部总线或外部总线,它充当一个引导信号,从而实现对主存储器或其他外围设备进行数据读写操作。

MDR(内存数据寄存器)则用于暂存从内存读出的一条指令或一个数据字,或准备写入内存的指令或数据。

MAR的位数:反映了存储单元的个数

MDR的位数:反应了存储字长

(二)、层次化存储结构

局部性原理是层次化存储结构的支撑

时间局部性:刚被访问的内容,立即又被访问

空间局部性:刚被访问的内容,临近空间很快被访问

虚拟存储体系是由主存 + 辅存两级存储器构成;三级存储结构是由 Cache + 主存 + 辅存三部分构成

(三)、层次化存储结构-分类

1、存储器位置

      内存 & 外存

2、存取方式
   (1)按内容存取

            相联存储器(如Cache)

   (2)按地址存取

            随机存取存储器(如内存)

            顺序存取存储器(如磁带)

            直接存取存储器(如磁盘)(包含有随机存取存储器顺序存取存储器的典型存储特征

3、工作方式

   (1)随机存取存储器RAM(如内存DRAM)

   (2)只读存储器ROM(如BIOS)

DRAM动态随机存取存储器;SRAM静态随机存取存储器;EEPROM:点可擦可编程只读存储器。静态的(SRAM)比动态(DRAM)的得多,但也得多SRAM用来作为高速缓冲存储器(Cache),它会将每个位存储在一个双稳态的存储器单元中;DRAM用来作为主存及图形系统的帧缓冲区,它会将每个位存储为对一个电容的充电,由于电容非常小,在10~100ms时间内会失去电荷,所以需要周期性地刷新充电以保存信息

随机存取存储器(RAM):即手机中的运行内存,也相当于电脑的内存条。它主要的作用是提供程序运行时所需的高速缓存空间,确保程序能够流畅运行。RAM是临时存储数据的地方,与CPU交换高速缓存数据,所以运行内存的大小直接影响到系统能够同时运行多少个程序,以及程序运行的速度。当程序关闭或手机重启时,RAM中的数据会被清除。

只读存储器(ROM):即手机中的机身存储,也相当于电脑的硬盘。ROM是手机的内置存储设备,用于永久存储数据和程序,包括安装的软件、系统文件、照片、视频等。即使手机断电,ROM中的数据也不会丢失。与RAM不同,ROM的容量通常较大,以满足用户存储大量数据的需求。

:手机中并不存在独立的内存条,所有的存储都是整合在一起的。在物理结构上,手机的CPU、RAM和ROM等组件通常都集成在主板上,但它们在逻辑和功能上是分开的。

(四)、主存与Cache

1、平均周期

h:Cache的命中率;(1-h) 也称为失效率(未命中率)

t_{1}:Cache的周期时间;

t_{2}:主存储器的周期时间;

t_{3}:“Cache+主存储器”的系统的平均周期

t_{3}=h\times t_{1}+(1-h)\times t_{2}

例如:h = 90%;t_{1} = 10ms;t_{2}  = 100ms;则 t_{3}=10\times 0.9+100\times(1-0.9) = 19ms

:Cache的命中率 h 并不会随着容量增大而线性地提高,而是呈现一根抛物线逐渐趋于平缓。Cache的设计思想就是在合理的成本下提高命中率

2、地址映像

地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块);主存与Cache之间的地址映射由硬件直接完成

例如,某机的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB

冲突率电路复杂度
直接相联映像简单
相联映像复杂
相联映像折中折中

全相联映像只适用于容量的Cache

3、主存编址与计算

(1)、存储单元

               存储单元个数 = 最大地址 - 最小地址 + 1

(2)、编址内容

               编址:存储体的存储单元是存储单元,即最小寻址单位是一个

               字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节

         

            一个字的大小并不是固定的,例如在16位(或称为字长为16位)系统中,一个字等于2个字节;在32位(或称为字长为32位)系统中,一个字等于4个字节;在64位(或称为字长为64位)系统中,一个字等于8个字节

            总容量 = 存储单元个数 × 编址内容

三、CPU

(一)、CPU中的寄存器

指令寄存器位数主要取决于指令字长。指令寄存器(IR)是用于暂存当前正在执行的指令的部件。当执行一条指令时,会先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。因此,指令寄存器的位数应满足指令长度的要求,以便正确存储和分析正在执行的指令。

在CPU的寄存器中,指令寄存器对用户是完全透明(看不见,无从得知)的。这主要是因为指令寄存器的操作是自动进行的,不需要用户的任何干预。当CPU执行一条指令时,它会自动从内存中取出指令,并将其存放到指令寄存器中。这个过程是CPU内部的操作,用户无法直接访问或修改指令寄存器中的内容

与此不同的是程序计数器状态寄存器通用寄存器它们对用户不是完全透明的,程序员可以利用程序计数器寻址;可以利用状态标志进行判断和跳转;可以利用通用寄存器存取数据

程序计数器PC)是CPU中的寄存器。它是一块很小的内存空间,几乎可以忽略不计。程序计数器用于存储CPU要执行的下一条指令的地址地址寄存器(IR)用于保存当前CPU所访问的内存单元的地址),当CPU执行代码时,程序计数器会按照一个固定的顺序存储每条指令的地址,并在执行一条指令之后自动更新为下一条指令的地址。在Java虚拟机中,每个线程都有自己的程序计数器,用于存储正在执行的当前指令的地址。因此,程序计数器在CPU执行指令和程序控制流中起着至关重要的作用。

状态寄存器SR)用来存放CPU的各种状态码,例如运算结果的正负号、溢出标志、中断标志和寻址方式等。这些状态码反映了当前CPU的工作状态以及刚刚执行过的指令的结果状态。因此,状态寄存器在CPU中扮演着非常重要的角色,它帮助CPU正确地执行指令并处理各种运算结果

通用寄存器是用于存储数据的一种寄存器。1、它们提供了一组可供程序使用的存储单元,用于暂时保存计算过程中的数据。这些寄存器是CPU内部最快速的存储器,能够迅速访问和更新其中的数据,从而加快计算速度。2、它还可以用于在CPU内部传递数据。通用寄存器可以作为数据的临时存储位置,将数据从一个计算单元传递到另一个计算单元,从而减少对内存的访问次数,提高数据传输的效率。3、通用寄存器还参与算术和逻辑操作,CPU可以直接从寄存器中获取数据,并对其进行加法、减法、乘法、除法和逻辑运算等操作。通用寄存器还可以用于存储临时计算的结果,以及执行地址计算所需的中间结果和临时值

(二)、CPU中的各个组件

1、寄存器:寄存器是CPU内部的一种存储器件,用于暂存数据和指令。CPU中有多种类型的寄存器,如通用寄存器、程序计数器(PC)、指令寄存器(IR)等,它们在数据处理和控制流程中起到重要作用。

2、算术逻辑单元(ALU):算术逻辑单元是CPU的核心部分,用于执行算术和逻辑运算。它负责处理各种数据运算,如加、减、乘、除等数学运算,以及与、或、非、异或等逻辑运算。

3、控制单元(CU):控制单元是CPU的“指挥中心”,基本功能是从内存中存指令和执行指令,协调计算机各个部件的操作。它从内存中读取指令,并根据时钟信号按照一定步骤控制指令的执行。里边包含有指令译码器,指令译码器的主要作用是对现行指令进行分析,确定指令类型和指令所要完成的操作以及寻址方式,并将相应的控制命令发往相关部件

4、时钟:时钟是CPU中的一个重要组成部分,用于控制CPU的时序和流程。时钟速度越快,CPU的运行速度和效率就越高。

5、总线:总线是CPU与其他设备(如内存、输入输出设备等)之间的连接桥梁负责数据的传输和控制信号的交流。总线线路可以被归为三类:数据总线地址总线控制总线

6、输入输出控制器:输入输出控制器用于控制计算机与外部设备之间的数据传输。它可以向外部设备发送数据和指令,也可以将外部设备传输的数据和指令传输到CPU中。

(三)、CPU的结构

运算器

1、算术逻辑单元ALU):数据的算数运算和逻辑运算

2、累加寄存器AC):通用寄存器,为ALU提供一个工作区,用于暂存数据

3、数据缓冲寄存器DR):写内存时,暂存指令或数据

4、状态条件寄存器PSW):存状态标志与控制标志(争议也有将其归为控制器的

控制器

1、程序计数器PC):存储下一条要执行指令的地址

2、指令寄存器IR):存储即将执行的指令

3、指令译码器ID):对指令中的操作码字段进行分析解释

4、时序部件:提供时序控制信号

四、数据的表示

(一)、进制转换

(二)、数据转换

当符号位为补码变原码(原码变补码):从右往左数第一个“1”左边的数全部取右边的数全部不变

例如:原(补)码:1 0010 1000     →     补(原)码:1 1101 1000

例如:当n=8,也就是一共8个数位时;

其中,定点整数 -128 的补码为1000 0000 是人为规定

           定点小数 -1 的补码为1000 0000 是人为规定

原码反码都有 +0 和 -0;而补码移码都只有一个 +0,因为 -0 被用来人为规定成其他数了

在计算机系统中常用补码来表示和运算数据,因为这时候可以将符号位和其他位统一处理,减法也可按加法来处理,从而简化计算机运算部件的设计

(三)、浮点数的表示

特点:

         1、一般尾数移码阶码移码IEEE754标准的尾数原码

         2、阶码的位数决定数的表示范围,位数越,范围越

         3、尾数的位数决定数的有效精度,位数越,精度越

         4、对阶时,阶向阶看齐,然后较小数的尾数进行算术右移符号位不变,对数值位进行移动;逻辑移位为不区分符号位,一整个数一起移动

五、逻辑运算符

逻辑运算符优先顺序!  >  算术运算符  >  关系运算符  >  &&  >  | |  >  赋值运算符

算数运算符:+,-, ×, ÷

关系运算符:>, ≥, <, ≤, =, !=

短路原则

无需对表达式中所有操作数或运算符进行计算就可确定表达式的值

例如:(1)、a  &&  b  &&  c  :只有a为真才需要判断b的值,只有a和b同时为真才需要判断c

            (2)、a  | |  b  | |  c  :只要a为真,就不必判断b和c的值,只有a为假才判断b,只有a和b同时为假才判断c

六、校验码

校验码位数校验码位置检错纠错校验方式
奇偶校验1一般拼接在头部可检奇数个错不可奇(偶)校验:最终 “1” 的个数是奇(偶)数个
CRC循环冗余校验生成多项式最高次幂的次数拼接在信息尾部可检错不可模二除法求余数,拼接作为校验码
海明校验2^{k}\geq n+k+1插在信息位中间可检错可以分组奇偶校验

海明校验码公式中,k为校验码位数,n为信息码位数

CRC校验码

1、根据生成多项式得出除数

例如:G(X) = x^{4}+x^{3}+1,则除数为11001(有x的几次方,对应2的多少次方位就是1

2、对CRC信息码进行算数左移左移位数即为多项式最高次幂校验码位数,低位补0),最终得到被除数

例如:110 1011  →  110 1011 0000

3、将两数进行模二除法,最终得到余数位数等于校验位时即得到了校验码;

例如:如下图,110 1011 0000 对 11001进行模二除法得到商1001010和余数1010,所以最终CRC校验码为1010,发送出去的CRC循环冗余校验码为110 1011 1010

接收方把接收到的CRC码作为被除数,根据多项式得出除数,对两数进行模二除法 若余数为0,则信息正确,如果某一位出错,则余数不为0。不同的位数出错它的余数也会不同,余数和出错位序号之间有唯一的对应关系

七、指令系统与计算机体系结构

(一)、寻址方式

  • 立即寻址方式:操作数作为指令的一部分直接写在指令中,这种操作数被称为立即数
  • 直接寻址方式:指令所要的操作数存放在内存中,指令中给出的是该操作数的地址
  • 间接寻址方式:指令中存放了一个地址,这个地址对应的内容是操作数的地址
  • 寄存器寻址方式:操作数存放在内存中,寄存器内存放的是操作数的地址
  • 寄存器间接寻址方式:寄存器内存放的是操作数的地址

立即寻址相当于常量;直接寻址相当于变量;间接寻址相当于指针

(二)、CISC和RISC

指令系统类型CISC(复杂)RISC(精简)
指令数量多;使用频率差别大;可变长格式数量少;使用频率接近;定长格式;大部分为单周期指令;操作寄存器,只有Load/Store操作内存
寻址方式支持多种支持方式少
实现方式微程序控制技术(微码)增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线
其他研制周期长优化编译,有效支持高级语言

(三)、Flynn分类法

体系结构类型结构关键特性代表

指令流数据流(SISD)

控制部分:一个

处理器:一个

主存模块:一个

单处理器系统
指令流数据流(SIMD)

控制部分:一个

处理器:多个

主存模块:多个

各处理器以异步的形式执行同一条指令

并行处理机

阵列处理机

超级向量处理机

指令流数据流(MISD)

控制部分:多个

处理器:一个

主存模块:多个

被证明不可能,至少是不实际目前没有
指令流数据流(MIMD)

控制部分:多个

处理器:多个

主存模块:多个

能够实现作业、任务、指令等各级全面并行

多处理机系统

多计算机

八、流水线

(一)、流水线周期以及流水线执行时间

  • 流水线周期:执行时间最长的一段
  • 流水线计算公式(理论公式):1条指令的执行时间  +(指令条数 - 1)×  流水线周期
  • 实践公式:流水线周期  ×(一条指令总阶段数 + n - 1)

:当题目无说明使用哪条公式时默认使用理论公式,若选择题没有答案则用实践公式

例如:一条指令执行阶段分解为取值、分析和执行三步,所用时间分别为3t,2t,4t,则流水线的周期为4t;若如今有100条指令,以串行方式全部执行完毕需要(3t + 2t + 4t)×  100  =  900t;若以流水线方式执行完毕理论所用时间为:3t + 2t + 4t  +(100 - 1)×  4t  =  405t;实践所用时间为4t  ×(3 + 100 - 1)=  408t

(二)、流水线吞吐率

流水线的吞吐率:单位时间内流水线完成的任务数量或输出的结果数量

计算公式:TP = 指令总条数  /  流水线执行时间

流水线最大吞吐率:TP_{max}=\frac{1}{T}  (T 是流水线周期)

例如:如上例,100条指令的吞吐率为:100 / 405t = 24.7%;最大吞吐率是:1 / 4t = 25%

(三)、流水线加速比

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

例如:如上例,100条指令的加速比为:900t / 405t  =  2.22

九、输入输出技术

(一)、数据传输控制方式

程序控制(查询)方式:分为无条件传送程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率

程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。(CPU无需等待也不必查询I/O状态。当I/O系统准备好以后,发出中断请求信号通知CPU;CPU接收到中断请求后,用保存正在执行的程序现场,打断的程序当前位置即为断点;随后通过中断向量表保存中断服务程序的入口地址)转入I/O中的服务程序的执行,完成I/O系统的数据交换;最后返回打断的程序继续执行

DMA方式(直接存储器存取方式):DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式和中断方式都高效。(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输

通道方式

I/O处理机

从上到下效率越来越高。

十、系统总线

条总线同一时刻仅允许一个设备发送,但允许多个设备接收。(分时双工,例如对讲机)

单总线结构:CPU与主存之间、CPU与I/O设备之间、I/O设备与主存之间、各种设备之间都通过系统总线交换信息。

优点:控制简单方便,扩充方便。

缺点:由于所有设备部件均挂在单一总线上同一时刻只能在两个设备之间传送数据,这就使得系统总体数据传输的效率和速度受到限制。

总线分类

  • 数据总线(Data Bus):在CPURAM之间来回传送需要处理或是需要储存的数据。
  • 地址总线(Address Bus):用来指定在RAM之中储存的数据的地址。
  • 控制总线(Control Bus):将微处理器控制单元的信号传送到周边设备。

并行总线适合近距离高速数据传输,而串行总线适合长距离数据传输。

十一、可靠性基础和系统性能评测

(一)、可靠性基础

平均无故障时间(MTTF):MTTF = 1 / λ,λ为失效率

平均故障修复时间(MTTR):MTTR = 1 / μ,μ为修复率

平均故障间隔时间(MTBF):MTBF = MTTF + MTTR

可靠性:一个系统对于给定的时间间隔内,在给定的条件下无失效运作的概率。可以用 MTTF /(1 + MTTF)来度量。

可用性:在给定的时间点上,一个系统能够按照规格说明正确运行的概率。可以用 MTBF /(1 + MTBF)来度量。

可维护性:在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。可以用 MTTR /(1 + MTTR)来度量。

系统可靠度问题可靠度衡量了系统在规定的条件下及规定的时间内,完成规定功能的概率。系统的可靠性与系统中的部件组成方式有关。

例如:如上图所示,假设每个部件的可靠度分别为其里边的字母,则整个系统的可靠度为(1-(1-R_{1})(1-R_{2})(1-R_{3}))R_{4}(1-(1-R_{5})(1-R_{6}))

(二)、系统性能评测

1、主频(时钟频率)与CPU时钟周期

时钟周期与主频(时钟频率,一秒钟有多少个时钟周期)互为倒数。例如:主频 = 2.4GHz,则CPU时钟周期 = 1 / 2.4GHz = 0.42ns

:当表示主频、吞吐量等东西的时候,其中的K、M、G代表的不是2的多少次方了,而是1K = 10^{3};1M = 10^{6};1G = 10^{9}

2、运算速度

CPIIPC是运算速度的衡量单位。C代表周期P代表“”,I代表指令条数CPI代表平均每条指令占有多少个时钟周期IPC代表平均每个时钟周期执行多少条指令


3、吞吐量与吞吐率

吞吐量表示一段时间间隔内所执行的指令条数总量吞吐率表示单位时间内所执行的指令条数

MIPS = 指令条数 /(执行时间 × 10^{6})= 主频 / CPI = 主频 × IPC

MFLOPS = 浮点操作次数 /(执行时间 × 10^{6}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值