Skip to content

Chap2 Embedded Processors

Classification of embedded processors

嵌入式处理器

  • 嵌入式微处理器(Embedded Microprocessor Unit, EMPU)
    • 与通用计算机中的 CPU 不同,只保留和嵌入式应用相关的功能
    • Inter 系列、PowerPC 系列、ARM 系列(Broadcom, Qualcomn, STM 等)
  • 嵌入式微控制器(Microcontroller Unit, MCU)
    • 内部集成 ROM、RAM、总线、定时 / 计数器、WatchDog、I/O、串口、PWM、A/D、D/A、Flash
    • 单片化,体积大大减小,从而使功耗和成本下降、可靠性提高
    • 相对低端的 MCU 又称单片机
    • Inter8051MicroChip PIC 系列、ATMEL AVR ATMEGA 系列
    • 应用在涡喷发动机的 ECU
  • 嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP)
    • 专门用于处理数字信号的处理器
    • 内部集成多种数字信号处理的算法和硬件加速器
    • TI TMS320Motorola DSP56000 系列
  • 嵌入式片上系统(System On Chip, SoC)
    • 分为通用和专用两类
    • 通用系列如 Infineon TriCoreMotorola M-core
    • 专用系列如 Philips Smart XA

示例

  • Arduino MCUATMEGA328 是一款 8 MCU,常用于 Arduino Uno 等开发板
  • Raspberry MPUBCM2837 BCM2711 Raspberry Pi 的处理器,都是 ARM 架构的 MPU
  • Pixhawk MCUSTM32F427 STM32F765 Pixhawk 飞行控制器使用的 MCU,具有强大的处理和控制能力

嵌入式处理器技术指标:功能、字长、工作温度、功耗、寻址能力、电磁兼容性、平均故障间隔时间 MTBF

处理速度指标 : 主频 (Clock Speed)、CPI(Clock Cycles per Instruction)、MIPS(Million Instructions Per Second)、FLOPS(Floating-Point Instructions per Second)

Instrucition Set Architecture

指令架构

  • ISA(Instruction Set Architecture):指令架构
  • RISC(Reduced Instruction Set Computer):精简指令集计算机,如 ARM
  • CISC(Complex Instruction Set Computer):复杂指令集计算机,如 Intel/AMD X86
RISC 指令集的特点
  1. 选取使用频率高、有用且不复杂的简单指令;指令长度固定,指令格式
  2. 指令长度固定,指令格式种类少,寻址方式种类少
  3. 只有 load/store 指令会访问内存,其余指令执行都在寄存器之间进行,即限制内存访问
  4. CPU 中通用寄存器数量相当多
  5. 大部分指令在一个机器周期内完成
  6. 采用流水线组织
  7. 以硬布线控制逻辑为主,不用或少用微程序控制
  8. 重视编译工作,以简单有效的方式支持高级语言,减少程序运行时间

ARM 架构

  • ARM 架构发展到 V9(2021)V8 开始 64 位总线,V9 加入 machine learning 部件
  • 基于 ARMV7 结构的处理器,冠上 Cortex 的代号,如基于 V7A Cortex-A,基于 V7R Cortex-R,基于 V7M Cortex-M3(A-Application, M-Microcontroller, R-Real-time)
  • 华为 Kirn 9000/Kunpeng 920 采用 V8 指令集,苹果 A15/A16 采用 V9 指令集
  • 低功耗、高扩展性、高性能与低功耗平衡、多核支持、生态系统丰富

Processor Architecture

处理器架构

  • 冯诺依曼架构:程序和数据存储在相同的存储空间,传统架构
  • 哈佛架构:程序和数据存储在不同的存储空间,增加存取带宽,提高并行性

一般而言,RISC 指令集处理器常采用哈佛架构,如 ARM 处理器 V9 系列;CISC 指令集处理器常采用冯诺依曼架构,如 X86

Storage Format

存储模式

  • 大端模式(Big-endian:低字节在高地址
  • 小端模式(Little-endian:低字节在低地址
  • Arm 支持大端和小端,缺省情况下是小端
  • Inter 是小端模式,PowerPC 是大端模式

无法显示

判断处理器的存储模式

int main(){
    union{
        int i;
        char c[sizeof(int)];
    } x;
    x.i = 1;
    if (x.c[0] == 1)
        printf("小端模式\n");
    else
        printf("大端模式\n");
    return 0;
}

int main(){
    int x = 1;
    char *c = (char *)&x;
    if (*c)
        printf("小端模式\n");
    else
        printf("大端模式\n");
    return 0;
}

Instruction-level Parallelism

指令集并行

  • Pipelining:将指令的执行分解为多个阶段,使得在每个时钟周期中,不同的指令可以同时处于不同的执行阶段
  • Superscalar( 超标量 ):超标量处理器有多个执行单元,如整数单元、浮点单元、加载 / 存储单元等,让它们能同时工作
  • Subword parallelism( 子字并行 ):将一个宽运算器(ALU)划分为多个较窄的运算单元,从而能够对较短的字长数据同时执行算术或逻辑运算。如 Intel Pentium MMX 技术,让具有 64 位数据处理能力的 CPU 拆分为多个处理 8 位数据的单元,同时工作;是 vector processing 的一种形式
  • VLIW(Very Long Instruction Word, 超长指令字 ):依赖于编译器,多个指令并在一起,同时执行相应的操作,比 superscalar 易于预测执行时间
  • Multicore( 多核 ):在单块芯片上集成多个处理器的结构,可以是同构(homogenous)或异构(heterogeneous)的

homogenous multicore(同构多核:指芯片上集成的多个处理器核心架构、性能完全相同,例如常见的桌面级 CPU(如 Intel Core i7 8 个核心,适合处理可均匀分配的并行任务(如多线程程序、数据计算)

heterogeneous multicore(异构多核:指芯片上集成的多个处理器核心架构、性能存在差异,各自负责不同类型的任务,例如智能手机的 SoC(系统级芯片)常同时包含高性能核心(如 ARM Cortex-X 系列,负责复杂计算)和低功耗核心(如 ARM Cortex-A 系列,负责日常轻量任务,可在性能与能耗之间实现平衡,广泛应用于移动设备、物联网终端等对功耗敏感的场景

评论区

如果有什么问题或想法,欢迎大家在下方留言~