计算机组成体系结构
计算机系统组成
计算机的基本硬件系统由 运算器、控制器、存储器、输入设备和输出设备 五大部件组成
运算器、控制器 等… 被集成在一起统称为中央处理单元 Central Processing Unit,CPU
存储器: 是计算机系统中的记忆设备,分为 内部存储器和外部存储器
- 内部存储器:速度高、容量小,一般用于【临时存放程序数据】、【中间结果】
- 外部存储器:容量大、速度慢,可以【长期保存程序、数据】
输入设备、输出设备 合称为外部设备(简称外设)
- 输入设备:用于输入原始数据及各种命令,
- 输出设备:则用于输出处理结果
输入/输出:I/O
键盘和鼠标: 是最常用的输入设备。键盘通过扫描码将按键信息传输给计算机,
鼠标则通过【光电、机械】方式检测移动和按键操作,并将相应的信号发送给计算机,常见的输入输出方式有:
通道方式
通道是一种特殊的处理机,它具有自己的指令系统和程序,
可以独立地执行通道程序,控制外设与内存之间的数据传输
通道方式进一步提高了 CPU 与外设的并行工作能力,适用于连接多个高速外设的系统
中断输入输出方式⭐
中断输入输出方式是计算机系统中【重要】:的数据输入输出方式
中断输入输出方式指:当外部设备完成:数据准备、需要 CPU 处理的事件时,主动向 CPU 发送中断请求信号
- CPU 在接收到中断请求后,暂停当前正在执行的程序,转而去处理与该中断请求—对应—中断服务程序
- 完成对外部设备的操作或处理相关事件,处理完后 再返回原来被中断的程序继续执行
中断方式提高了 CPU 的利用率,使 CPU 可以与外设【并行】工作
-
中断请求: 外部设备在完成数据准备或发生特定事件(如打印机完成一次打印任务、键盘有按键按下等)
时通过硬件电路向 CPU 发送中断请求信号,该信号会通知 CPU 有外部事件需要处理
-
中断响应: CPU 执行每条指令的最后一个时钟周期:
-
都会检查是否有中断请求到来,若检测到中断请求,且此时 CPU 允许中断(即中断允许标志位为 1)
则 CPU 会暂停当前正在执行的程序,保存当前程序断点:【程序计数器 PC 的值】程序状态字等现场信息
然后根据中断源类型、中断向量表,找到对应的中断服务程序入口地址,开始执行中断服务程序;
-
中断处理: CPU 执行中断服务程序,完成对外部设备的相应操作,
在中断服务程序中,通常还会对中断请求进行 应答,以清除中断请求信号,防止再次触发中断。
-
中断返回: 当中断服务程序执行完毕后,
CPU 会恢复之前保存的现场信息: 程序计数器 PC 的值、寄存器的值和程序状态字等,
然后返回到原来被中断的程序继续执行,使程序能够继续正常运行
中断输入输出方式【特点】
-
实时响应性好:
能够及时响应外部设备的请求,对于实时性要求较高的任务(如实时数据采集、实时控制等)非常重要
外部设备可以在需要时立即向 CPU 发出中断请求,CPU 能够迅速做出响应并进行处理,减少了响应延迟
-
提高 CPU 利用率: 与程序查询方式相比,CPU 无需不断地查询外设状态,
在等待外设数据准备的过程中可以继续执行其他程序,只有当外设准备好数据并发出中断请求时,
CPU 才会暂停当前工作去处理外设事务,大大提高了 CPU 的利用率
-
可实现 [多任务并发] 处理: 多个外部设备可以同时向 CPU 发送中断请求,
CPU 可以根据中断优先级等策略依次处理各个中断请求,从而实现多个任务的并发处理,
使计算机系统能够同时管理和控制多个外部设备,提高系统的整体性能和效率
程序控制查询方式
程序控制,分为 【无条件传送】【程序查询方式】两种
方法简单,硬件开销小,但I/0能力不高,严重影响 CPU 的利用率!
【无条件传送】
特点:硬件简单、软件实现容易、适用场景有限 CPU 在需要时【直接】对端口进行读或写操作,
无需考虑外设的当前状态,默认外设始终处于准备好接收或发送数据的状态
- 硬件简单:不需要复杂的硬件电路来实现 CPU 与外设之间的状态交互
- 软件实现容易:程序中,只需使用简单的输入输出指令即可完成数据传输
- 适用场景有限:只适用于那些工作速度非常快或非常慢,且对数据传输的实时性要求不高的外设
【程序查询方式】
CPU 利用率低 实时性较差 数据传输可靠性较高 优点是硬件简单
CPU 通过执行程序 不断地查询外设的状态 通过读取外设的状态寄存器,
来判断外设是否准备好进行数据传输,如果外设未准备好,CPU 则继续查询,直到外设准备好为止
内存与接口的编制方式
在计算机系统中,内存与接口的编址方式主要有**【独立编址】、【统一编址】**两种:
独立编址
内存和接口分别有各自独立的 地址空间,使用不同的指令和控制信号来访问内存和接口
- 有专门的输入输出指令(如 IN、OUT 指令)用于对接口进行操作
- 访问内存则使用专门的内存访问指令
缺点:指令类型增多、编程相对复杂、I/O 端口的操作灵活性受限
优点:地址空间清晰、指令系统简洁、译码电路相对简单
-
指令系统简洁: 对接口的操作有专门的指令,指令格式和功能相对简单,易于设计和实现
-
地址空间清晰: 内存和接口的地址空间相互独立,界限分明,易于理解和管理,不会产生地址冲突问题
-
译码电路相对简单: 由于内存和接口的地址空间是分开的,所以设计地址译码电路时,
可以分别针对内存和接口进行设计,电路结构相对简单
统一编址
也称为存储器映射编址,是将接口中的寄存器等当作内存单元一样进行编址,
内存、接口 共用一个地址空间: 对接口的访问就像对内存的访问一样,使用相同的指令来进行读写操作
缺点:地址空间冲突、内存空间相对减少、译码电路相对复杂
优点:指令系统统一、编程方便、I/O 端口的操作灵活性高
直接存储器访问(DMA)方式
在 DMA 控制器(硬件) 的控制下,外设直接与内存进行数据交换,无需 CPU 干预
DMA 方式主要用于高速外设与内存之间的大批量数据传输,如磁盘、磁带等。
它可以大大提高数据传输速度,减少 CPU 的干预,提高系统的整体性能
CPU 功能、组成:⭐
CPU 主要功能:
-
程序控制: 通过执行指令来控制程序的执行顺序,是CPU的重要功能⭐
-
操作控制:一条指令功能的实现需要若干操作信号配合完成: CPU产生每条指令的操作信号
并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作
-
时间控制: CPU 对各种操作进行时间控制, 指令执行过程中操作信号的:
出现时间、持续时间及出现的时间顺序都需要进行严格的控制
-
数据处理: CPU通过对数据进行:算术运算、逻辑运算、等进行加工处理
数据加工处理的结果被人们所利用,对数据的 加工处理也是 CPU最根本的任务;
CPU 主要由 【运算器】【控制器】【寄存器组】【内部总线】等部件组成:
运算器:
运算器—>组成:算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器
算术逻辑单元 ALU: 负责处理数据,实现对数据的算术运算、逻辑运算
累加寄存器 AC: 也称累加器
是一个寄存器
- 当运算器—>算数逻辑单元—>执行—>算数运算、逻辑运算:为算术逻辑单元提供一个工作区
数据缓存寄存器DR: 作为CPU和内存、外部设备之间数据的—中转站—操作速度之间的—缓冲
- 对内存储器进行读写、DR暂时存放内存储器的指令/数据,并将不同的时段数据进行 隔离;
- 在单累加器结构运算器中,数据缓存寄存器DR 还可作为——数据寄存器;
状态条件寄存器 PSW:存储和反映CPU当前的工作状态和指令执行结果的相关信息
- 由算数指令和逻辑指令运行、测试——结果建立的各种条件码内容,主要分为:状态标志和控制标志
运算器-主要功能: 执行所有算术运算:加、减、乘、除、等,基本运算及附加运算
执行所有的逻辑运算并进行逻辑测试,如与、或、非、零值测试或两个值的比较等
- 考试时候如果这个选项,有争议就不要选择它 A\B都可以实现\情况就不需要选择:状态寄存器选项了
控制器:
运算器只能完成运算,控制器用于控制整个 CPU 的工作
它决定了计算机运行过程的【自动化】: 它不仅要保证程序的正确执行,而且要能够处理异常事件
一般包括:指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑等几个部分;
指令控制逻辑: 完成取指令、分析指令和执行指令的操作,
过程分:取指令、指令译码、按指令操作码执行、形成下一条指令地址、等步骤;
-
指令寄存器 IR: 当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,
再送入 IR 暂存,指令译码器 根据 IR 的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
-
程序计数器PC: 具有【寄存信息、计数】两种功能,又称为:指令计数器
程序的执行分为两种情况:
【顺序执行】、【转移执行】
CPU 中 PC 用来跟踪下一条要执行指令在存储器中的地址
-
地址寄存器 AR:保存当前 CPU 所访问的内存单元的地址
-
指令译码器 ID: 指令分为操作码和地址码两个部分,
为了执行任何给定的命令,必须 对操作码进行分析,以便识别所有完成的操作
中断控制逻辑: 用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给 CPU 处理
时序控制逻辑: 为每条指令按时间顺序提供应有的控制信号
总线逻辑: 为多个功能部件服务的信息通路的控制电路
寄存器组:
寄存器组: 专用寄存器、通用寄存器
- 运算器和控制器 中的寄存器 是专用寄存器,其作用是固定的。
- 通用寄存器: 的用途广泛,并且由程序员规定其用途,其数目因处理器的不同有所差异;
多核CPU:
核心又称为【内核】,是 CPU 最主要的组成部分
-
CPU 所有的计算、接受/存储命令、处理数据都 由【核心执行】 各种 CPU 核心都具有固定的逻辑结构:
一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有合理的布局;
CPU 主要厂商:AMD 和 Intel 的双核技术在物理结构上有很大的不同
- AMD 将两个内核做在一 个 Die 上,通过直接架构连接起来,集成度更高;
- Intel 是将放在不同核心上的两个内核封装在一起,因此称为【双芯】,将 AMD 的方案称为【双核】
可靠性
可靠性指标: 是用于衡量系统、设备、产品或过程在规定条件下和规定时间内,完成规定功能的能力的 一系列参数
下面是一个程序运行的过程:
|-----MTTF----|--MTTR--|---MTTF---|--MTTR--|-----MTTF-----||---------MTBF------|MTTF 平均无故障时间:指从开始使用到发生故障前的平均工作时间 MTTF=1/λ
- λ为失效率:指工作到某一时刻尚未失效的产品,在该时刻后单位时间内发生失效的概率
- λ(t) 表示,单位为时间的倒数,如 1/h(每小时)、1 / 次(每次)等MTTR 平均故障修复时间:即出现故障到修复完成所需要的平均时间 MTTR=1/μ
- μ为修复率:指维修人员在单位时间内修复故障产品的概率MTBF 平均故障间隔时间:指相邻两次故障之间的平均工作时间,MTBF 越长,说明产品的可靠性越高 MTBF=MTTR+MTTF
系统可用性:产品在规定的条件下和规定的时刻或时间区间内,处于可工作或可使用状态的概率 MTTE/(MTTR+MTTF)x100%
- 在实际应用中,一般MTTR很小,所以通常认为:MTBF≈MTTF
- 可靠性可以用可以用 MTTF/(1+MTTF) 来度量
串联系统
只要其中有一个单元发生故障,整个系统就会失效
串联系统是指系统中的所有单元(部件或子系统)必须都正常工作,系统才能正常运行,
可靠性特点: 串联系统的可靠性取决于系统中可靠性最低的单元。由于所有单元都要正常工作系统才有效,
所以随着串联单元数量的增加,系统的整体可靠性会迅速下降
可靠性计算:假设串联系统中有n个单元,每个单元的可靠度分别为:R1、R2、R3… :
R s = R 1 ∗ R 2 ∗ R 3 ∗ . . . ∗ R n R_s = R_1 * R_2 * R_3 * ... * R_n Rs=R1∗R2∗R3∗...∗Rn
- 例如,一个串联系统由三个单元组成,它们的可靠度分别为0.9、0.8和0.7那么系统的可靠度:
R s = 0.9 ∗ 0.8 ∗ 0.7 = 0.504 R_s= 0.9*0.8*0.7 = 0.504 Rs=0.9∗0.8∗0.7=0.504
并联系统
只有当所有单元都发生故障时,系统才会失效
并联系统是指系统中只要有一个单元正常工作,系统就能正常运行
可靠性特点: 并联系统提高了系统的可靠性和容错能力。因为只要有一个单元正常工作,
系统就能保持功能,所以相比串联系统,其整体可靠性更高,尤其在单元数量较多时更为明显
**可靠性计算:**假设并联系统中有n个单元,每个单元的可靠度分别为:
R 1 、 R 2 、 R 3... R_1、R_2、R3 ... R1、R2、R3...
- 则系统的不可靠度: F p = ( 1 − R 1 ) ∗ ( 1 − R 2 ) ∗ ( 1 − R 3 ) ∗ . . . ∗ ( 1 − R n ) F_p = (1-R_1) * (1-R_2) * (1-R_3) * ... * (1-R_n) Fp=(1−R1)∗(1−R2)∗(1−R3)∗...∗(1−Rn)
- 那么并联系统的可靠度: R p = 1 − F p = ( 1 − R 1 ) ∗ ( 1 − R 2 ) ∗ ( 1 − R 3 ) ∗ . . . ∗ ( 1 − R n ) R_p = 1-F_p = (1-R_1) * (1-R_2) * (1-R_3) * ... * (1-R_n) Rp=1−Fp=(1−R1)∗(1−R2)∗(1−R3)∗...∗(1−Rn)
一个并联系统由三个单元组成,它们的可靠度分别为 0.9、0.8和0.7,
- 则系统的不可靠度: F p F_p Fp =(1-0.9) x (1-0.8) x (1-0.7) = 0.006
- 系统的可靠度: R p R_p Rp = 1-0.006 = 0.994
串联系统和并联系统在不同的应用场景中各有优劣
实际的复杂系统往往是串联和并联结构相结合的混合系统:一半串联、并联;
中级考试中也通常是根据:【混合模型图】 设计公式;
总线
特点:分时双工 一条总线同一时刻 仅 允许一个设备发送,但允许多个设备接收
总线分类:
-
数据总线(Data Bus,DB):用于在 CPU、内存、I/O 设备等之间传输数据
数据总线的宽度决定了计算机一次能传输的数据量,32 位数据总线表示计算机一次可以传输 32 位(4 字节数据)
-
地址总线(Address Bus,AB):主要用来传输地址信息,CPU 通过地址总线指定访问内存单元 、I/O 设备地址
地址总线的宽度决定了计算机的寻址能力,如 32 位地址总线可以寻址 2 32 2^{32} 232 个不同的地址空间,即 4GB 的内存空间
计算机在直接寻址时,需要从内存读取操作数,要先将
操作数的地址
送到地址总线上。 -
控制总线(Control Bus,CB):用于传输控制信号、时序信号和状态信息等,协调计算机各部件的工作
例如,读 / 写信号、中断请求信号、时钟信号等都通过控制总线来传输
按层次结构分类:
-
片内总线: 是集成电路芯片内部各功能单元之间的连线,用于实现芯片内部的信息传输
如 CPU 芯片内部的寄存器、算术逻辑单元(ALU)等之间的连接。
-
系统总线: 连接计算机主机内各大部件,如 CPU、内存、I/O 接口等,
是计算机系统的核心总线,常见的系统总线有 ISA 总线、PCI 总线等
-
外部总线: 用于计算机与外部设备之间的连接和通信,如 USB 总线、IEEE 1394 总线等,
主要用于连接外部设备,如打印机、扫描仪、移动存储设备等