嵌入式系统学习(二)——计算机系统架构


通用计算机系统与嵌入式计算机系统是现代计算机系统的两大分支,了解通用型计算机系统有助于帮助我们深入理解嵌入式计算机系统。

计算机系统结构

在CPU问世以前,运算器和控制器是两个分离的部件,同时存储器容量较小,速度慢,因此当时的计算机结构以运算器为核心。但随着技术的发展,存储容量不断扩增,数据吞吐率称为限制计算机系统性能
的主要因素,以运算器为核心的传统架构已经不适合与现代计算机的发展,因此现代计算机组织结构已经逐步转变为以存储器为核心。典型的计算机系统结构有冯·诺依曼结构和哈佛结构。

冯·诺依曼结构

这是最常见的计算机体系结构,包括一个中央处理单元(CPU)、内存(存储器)、输入/输出设备和总线。程序和数据存储在同一块内存中,按顺序执行。

  • 特点:
    • 共享存储器: 指令和数据存储在同一存储器中,使用统一的总线进行访问。
    • 顺序执行: 指令按照顺序执行,一次只能执行一个操作,缺乏哈佛结构的并行性。
  • 优点:
    • 简单: 冯·诺依曼结构相对简单,容易设计和实现。
    • 成本较低: 共享存储器的设计相对较为经济。
  • 缺点:
    • 并行性限制: 由于指令和数据共享存储器,限制了同时进行指令和数据访问的能力,降低了性能。
    • 不适用于并行计算: 在对并行计算有较高要求的应用中,冯·诺依曼结构可能无法满足性能需求。

哈佛结构

这种架构将指令存储器和数据存储器物理上分开,分别采用不同的总线。这样的设计允许同时取指令和访问数据,提高了性能。

  • 特点:
    • 独立存储器: 指令存储器和数据存储器是物理上独立的,有各自独立的总线,可以同时进行指令和数据的访问。
    • 并行性: 由于独立存储器,哈佛结构具有更好的并行性,可以在同一时刻同时执行取指令和访问数据的操作,提高性能。
    • 适用于特定应用: 在一些对并行性要求较高的应用领域,如数字信号处理、嵌入式系统等,哈佛结构可以提供优越的性能。
  • 优点:
    • 并行性提高: 哈佛结构的并行性使得在同一时刻能够更高效地进行指令和数据的读取,从而提高性能。
    • 适用于特定领域: 在需要高性能并行计算的一些特定应用中,哈佛结构可以更好地满足需求。
  • 缺点:
    • 复杂性: 独立的指令和数据存储器增加了系统的复杂性,可能导致设计和实现的困难。
    • 成本: 实现独立存储器需要更多的硬件资源,可能导致系统成本上升。
      总体而言,选择哈佛结构还是冯·诺依曼结构取决于具体的应用需求。哈佛结构在一些特定领域提供了性能上的优势,但其复杂性和成本可能成为考虑的因素。冯·诺依曼结构则相对简单,适用于一般计算任务,尤其在成本和实现的可行性方面具有优势。

计算机组成

现代计算机是由一组相互关联的部件组成的,所谓结构就是这些部件的互联方式。按照冯·诺依曼的思想,计算机在逻辑结构上可以分为运算器、控制器、存储器、输入和输出设备等几个主要部件。

CPU

CPU(Central Processing Unit,中央处理单元)是计算机最重要的核心部件,主要由运算器、控制器、寄存器阵列、内部总线以及地址和数据缓冲器等部分构成。

运算器

运算器是计算机中对数据进行加工处理的部件。运算器的基本组成包括ALU(Arithmetic Logical Unit,算术逻辑单元)、ACC(Accumulator,累加器)、FR(Flag Register,标志寄存器)和暂态寄存器等。

  • ALU:负责完成具体的运算操作,是运算器的核心,也是计算机数据传输的一条重要通道。
  • ACC:CPU内部通用寄存器组中的一类特殊寄存器。ACC不仅提供了需要送入ALU的操作数,并且存储ALU的计算结果。如今随着技术发展,许多通用寄存器都能作为累加器使用,ACC这一称呼也逐渐淡出人们的视野。
  • FR:也称为程序状态寄存器,状态标志用于记录ALU运算后的某些重要状态或特征。例如,ARM处理器中的条件码标识有Z(Zero,Z=1表示运算结果为0)、N(Negative,N=1表示结果为负数)、V(oVerflow,V=1,表示运算结果出现溢出)等。
  • 暂态寄存器:暂时存放需要送入ALU的操作数,但不存放ALU的计算结果。
控制器

控制器是整个 CPU 的指挥控制中心,其功能是根据指令中的操作码和时序信号,产生种控制信号,对系统各个部件的工作过程进行控制,指挥和协调整个计算机有序地工作。
实上,除了数据加工处理以外的所有功能都是由控制器实现的。控制器的组成主要包括指令寄存器(Instruction Register,IR)、指令译码器(Instruction Decoder,ID)和操作控制器Operation Controller,OC)等。在某些场合,程序计数器(Program Counter,PC)也被看作空制器的一个组成部分。控制器工作流程大致如下:

  • 读址:根据程序计数器的内容获取下一条指令的存放地址
  • 取指:通过总线从存储器中取出这条指令并存放到指令寄存器
  • 译码:指令寄存器输出指令到指令译码器,指令译码器对操作指令进行分析和译码
  • 生成控制信号:操作控制器根据译码结果生成对应的控制信号以及操作时序
  • 修改程序计数器:修改程序计数器的内容,使其指向下一条指令
寄存器阵列

寄存器阵列也称为寄存器组、寄存器堆和寄存器文件,是由集成在 CPU 内部的若干高速存储单元构成的。寄存器阵列中的每一个寄存器都有一个编号或名称,CPU 根据指码中的寄存器编号或者寄存器名称对其直接访问,CPU与寄存器之间的数据交换是通过内部总线直接进行的,所以传输速度极快。

CPU 中的寄存器可以分为专用寄存器和通用寄存器两大类。

  • 专用寄存器的作用是固定的,如前面已经介绍的程序状态寄存器(PSR)或标志寄存器(FR)、指令寄存器(IR)和程序计数器(PC)等,都属于专用寄存器。
  • 通用寄存器功能是为ALU执行算术和逻辑运算提供一个存储区
内部总线

在 CPU 内部,一般存在三种主要类型的总线:数据总线(Data Bus)、地址总线(Address Bus)、和控制总线(Control Bus)。这些总线在CPU内部协调数据和控制信号的传输,以支持程序的执行和数据的读写。

  • 数据总线(Data Bus): 数据总线用于在 CPU 的各个功能模块之间传输二进制数据。它决定了在单个时钟周期内可以传输的位数。例如,32位的数据总线可以在一个时钟周期内同时传输32位(4字节)的数据。更宽的数据总线通常有助于提高数据传输速度。
  • 地址总线(Address Bus): 地址总线用于指示内存中的位置,以便 CPU 可以读取或写入数据。地址总线的宽度决定了 CPU 可以寻址的内存空间大小。例如,一个32位地址总线可以寻址的内存空间大小为 2^32 个地址单元,即4 GB。
  • 控制总线(Control Bus): 控制总线用于传输控制信号,包括读/写控制、时钟信号、中断请求等。它负责调度和协调 CPU 内部和外部组件的操作。控制总线的信号形式多种多样,具体实现取决于计算机的体系结构和设计。

这些总线协同工作,使得 CPU 能够正确地执行程序,与内存和外部设备进行交互。总线的宽度(比特数)和时钟频率等因素直接影响着计算机系统的性能。更宽的总线通常意味着更大的带宽,但也可能伴随着更高的成本和功耗。因此,总线设计需要在性能、成本和功耗之间取得平衡。

地址和数据缓冲器

地址和数据缓冲器都属于CPU内部总线和系统总线之间的接口部件,其作用是根据提供地址和数据传输过程中的缓冲,同时也在一定程度上提高CPU系统总线的驱动能力。

存储器

对存储器的要求是容量大、速度快、成本低,但是就目前技术水平而言,在一个存储器中满足这三点要求是不现实的。为了解决这个矛盾,现代计算机往往采用分级存储体系结构。

存储器类型功能容量速度
寄存器与CPU直接交互实现数据运算、处理最小最快
高速缓存专门存放CPU最近执行或可能即将执行的指令以及CPU处理后的数据,以降低CPU对于主存的访问频率,提高系统性能
内存(主存)满足较快的速度要求同时满足程序执行和数据处理的基本需要较大较快
外存(辅存)满足大容量、低成本的要求最大最慢

输入\输出接口

为了保证计算机能够与形形色色的外部设备之间进行数据交换,接口电路必现计算机与外设之间的速度适配,必须提供信号类型和数据格式的转换功能,这些转换总包括模拟量与数字量之间的转换、串行数据与并行数据之间的转换、数据格式的转换以下同电平之间的转换。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值