嵌入式软考(三)计算机组成简单介绍(一)

本文详细解析了计算机CPU的控制单元、算术逻辑单元和寄存器组,介绍了性能指标如主频、字长等,探讨了总线系统、数据总线、地址总线和控制总线的功能及性能。此外,文章还比较了CISC和RISC指令集设计,并解析了寻址方式和流水线技术在提高计算机性能中的作用。
摘要由CSDN通过智能技术生成

计算机基本组成(一)

CPU

CPU组成部分主要为 控制单元、算术逻辑单元、寄存器组

控制单元

  1. 程序计数器PC(存储下一条指令地址)、指令寄存器IR(存储即将执行指令)、指令译码器ID(对指令分析解释)、时序部件(提供时序控制信号指令中的操作码字段)
  2. 控制单元负责从内存中获取指令,并解释执行这些指令
  3. 它包括指令寄存器、指令译码器和时序控制器等组件,用于协调和控制CPU内部的操作

算术逻辑单元

  1. 算术逻辑单元ALU、累加寄存器AC(为ALU提供工作区,暂存数据)、数据缓冲寄存器DR(写内存时,暂存指令或数据)、状态条件寄存器PSW(存放状态标志和控制标志)
  2. 执行算术运算(如加法、减法)和逻辑运算(如与、或、非)
  3. 接收来自寄存器的数据,并根据指令执行相应的运算

寄存器组

  1. 寄存器是CPU内部用于存储临时数据的高速存储器、
  2. 包括数据寄存器、地址寄存器、指令寄存器等,用于存储运算中的操作数、地址和指令等信息

基本概念

  1. CPU的性能指标:主频、字长、CPU缓存、核心数量
  2. 总线的分类:数据总线、控制总线、地址总线
  3. 总线的性能指标:带宽、位宽、工作频率
  4. BIOS/CMOS
  5. 系统性能评测方法:时钟频率(Clock Frequency)、指令执行速度(Instructions per Second,IPS)、IPC(Instructions per Cycle)、Cache 命中率、指令集(Instruction Set)等

总线系统

定义:总线系统(Bus System)是计算机系统中用于连接各个组件(如 CPU、内存、I/O 设备等)之间进行数据传输和通信的重要组成部分。它承担着在不同组件之间传递数据、地址和控制信号的任务,是计算机系统内部通信的主要通道。

构成要素:

  1. 数据总线

    数据总线用于传输数据信号,包括 CPU 和其他设备之间的数据传输、内存和外部设备之间的数据传输等;

    它的宽度决定了一次能够传输的数据位数,通常以位(bit)为单位来衡量

  2. 地址总线

    地址总线用于传输地址信息,指示数据的存储位置或外设的寻址

    它的宽度决定了系统能够寻址的内存范围,通常以位(bit)为单位来衡量

  3. 控制总线

    控制总线用于传输控制信号,包括读写控制、时序同步、中断请求等

    它传输的信号通常包括读写信号、时钟信号、中断请求信号等

总线性能指标:带宽、位宽、工作频率

带宽:

  1. 单位时间内可以传输的数据量
  2. 时间频率f,时间周期T= 1 / f
  3. 公式:带宽 = 数据位数(bit) * 时钟频率(Hz) = 数据量 / 时间

工作原理:

  1. 数据传输

    当 CPU 需要从内存中读取数据或将数据写入内存时,它通过数据总线向内存发送数据或从内存读取数据

  2. 地址定位

    当 CPU 需要访问内存中的特定位置时,它通过地址总线向内存发送地址信息,指示所需数据的存储位置

  3. 控制操作

    控制总线负责传输控制信号,指示数据传输的方式(读或写)、时序同步和其他操作

基本工作原理
  1. 取指阶段(Fetch):控制单元从内存中获取下一条指令,并将其存储在指令寄存器中
  2. 译码阶段(Decode):控制单元对获取的指令进行译码,确定指令的操作类型和操作数
  3. 执行阶段(Execute):控制单元根据指令的类型和操作数控制ALU执行相应的运算操作
  4. 访存阶段(Memory Access):如果指令需要访问内存,则控制单元将计算得到的地址发送到内存,并读取或写入数据。
  5. 写回阶段(Write Back):如果执行的指令产生了结果,并且这些结果需要存储到寄存器或内存中,则将结果写回到目标位置

循环执行,每个时钟周期执行一个阶段,以完成程序的执行。CPU的性能通常由时钟频率(Clock Frequency)和指令执行的效率等因素决定

指令

**定义:**一种命令或者操作码,用于指示计算机系统执行特定的操作。指令是计算机程序的基本组成单位,它包含了执行特定任务的操作码以及相关的操作数(即指令的参数),并且按照一定的格式和规范组织;机器语言的一个语句,一组有意义的二进制代码

基本结构:

  1. 操作码:

    操作码是指令中的关键部分,用于指示执行的操作类型。不同的操作码对应不同的操作,如加法、减法、乘法、逻辑运算等

  2. 操作数:

    操作数是指令中的参数,用于指定操作所需的数据或者地址。操作数可以是立即数(Immediate)、寄存器(Register)地址、存储单元地址等

指令功能:

  1. 数据处理指令用于对数据进行算术运算(如加法、减法、乘法、除法)和逻辑运算(如与、或、非)等操作
  2. 数据传输指令用于将数据从一个位置传输到另一个位置,包括加载(Load)数据到寄存器、存储(Store)数据到内存、移动数据等操作
  3. 控制指令用于控制程序的执行流程,包括条件分支(Branch)、循环(Loop)、子程序调用(Call)等操作

CISC(Complex Instruction Set Computer):

  1. 指令设计:CISC 架构的指令集通常包含复杂的指令,一个指令可以执行多个操作,包括加载、存储、运算和控制等多种功能
  2. 指令长度:CISC 指令通常较长,包含大量的操作码和操作数,可以完成较复杂的操作
  3. 寻址方式:CISC 架构支持多种寻址方式,包括直接寻址、间接寻址、寄存器间接寻址等
  4. 硬件复杂度:CISC 处理器的硬件实现相对复杂,通常需要更多的硬件资源和复杂的控制逻辑
  5. 应用领域:CISC 架构适用于通用计算、多任务处理、科学计算等需求较为复杂的场景

RISC(Reduced Instruction Set Computer):

  1. 指令设计:RISC 架构的指令集精简,每条指令只完成一个简单的操作,如加载、存储、运算等,指令的功能单一而清晰
  2. 指令长度:RISC 指令长度相对较短,通常为固定长度,简化了指令译码和执行过程
  3. 寻址方式:RISC 架构通常采用间接寻址或寄存器寻址等简单的寻址方式
  4. 硬件复杂度:RISC 处理器的硬件实现相对简单,采用了精简的指令集和流水线等技术,使得处理器的设计更加 modularity 和 scalable
  5. 应用领域:RISC 架构适用于需要高性能和低功耗的应用场景,如嵌入式系统、移动设备、服务器等

寻址方式

**定义:**指用于确定指令中操作数地址的方法或机制。它定义了指令如何访问内存或寄存器中的数据,以及如何计算操作数的地址。

  1. 立即寻址(Immediate Addressing)

    操作数直接包含在指令中,无需额外的地址计算

    例如:MOV A, #5,表示将立即数 5 移动到寄存器 A 中

  2. 直接寻址(Direct Addressing)

    操作数的地址直接包含在指令中,指令中使用的是操作数的实际地址

    例如:MOV A, [1000],表示将内存地址 1000 处的数据加载到寄存器 A 中

  3. 间接寻址(Indirect Addressing)

    操作数的地址存储在指定的寄存器或内存单元中,指令中使用的是存储地址的地址,需要进行一次额外的寻址操作

    例如:MOV A, [B],表示将寄存器 B 中存储的地址处的数据加载到寄存器 A 中

  4. 寄存器寻址(Register Addressing)

    操作数直接存储在寄存器中,指令中使用的是寄存器的编号或名称

    例如:ADD A, B,表示将寄存器 B 中的数据加到寄存器 A 中

  5. 相对寻址(Relative Addressing)

    操作数的地址相对于指令执行的地址或程序计数器(PC)计算得到,通常用于分支或跳转指令

    例如:JMP Label,表示跳转到标签 Label 处执行指令

  6. 基址寻址(Base Addressing)

    操作数的地址是基址寄存器中存储的地址加上一个偏移量,用于访问数组或结构体中的元素

    例如:MOV A, [B + Offset],表示将基址寄存器 B 中的地址加上偏移量 Offset 所得的地址处的数据加载到寄存器 A 中

**不同寻找方式的目的:**扩大寻址空间,并提高编程灵活性

流水线

**定义:**多条指令重叠进行操作的一种准并行处理实现技术

基本原理:

  1. 指令流水线:流水线将指令执行过程划分为若干个阶段,如取指、译码、执行、访存、写回等。每个阶段都由专门的硬件单元执行,并且不同指令可以同时处于不同阶段,实现了指令的并行执行
  2. 并行执行:流水线允许多条指令同时处于不同阶段,从而提高了指令的执行效率。当一条指令完成一个阶段后,即可进入下一个阶段,而后续的指令则可以进入前一条指令的前一个阶段,实现了指令的连续执行
  3. 重叠执行:由于流水线的存在,不同指令的不同阶段可以重叠执行,从而使得整个计算机系统的吞吐量得到提高。即使一条指令的执行时间较长,也不会影响到其他指令的执行速度

计算公式:(t1 + t2 + t3 + … + tk) + (n - 1) * ▲t

t1 t2 t3 为指令的每个阶段的时间,▲t为第一个和最后一个间隔时间

**流水线的吞吐量:**完成的指令数 / 流水线周期

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值