复习——计算机系统与ARM处理器架构

一、计算机系统概论

1.1 计算机系统的本质

计算机系统是一个由硬件 和软件 组成的复杂系统,其核心功能是执行程序 和处理数据。

  • 硬件:物理设备的总称,是软件运行的物理基础。包括CPU、内存、主板、I/O设备等。

  • 软件:程序及其相关文档的集合,是指挥硬件工作的指令序列。包括系统软件(如操作系统、编译器)和应用软件。

1.2 冯·诺依曼体系结构

现代计算机的理论基础,其核心思想是存储程序控制,主要由五大部件构成:

  • 运算器 :执行算术运算和逻辑运算的核心部件。核心是ALU。

  • 控制器 :计算机的指挥中心,负责从内存中按顺序取出指令、译码,并产生控制信号以驱动其他部件协调工作。运算器+控制器 = 中央处理器。

  • 存储器 :存放程序和数据。分为主存储器 (内存,直接与CPU交互)和辅助存储器(外存,如硬盘,用于长期存储)。

  • 输入设备:将外部信息转换为计算机内部可处理的数据形式(如键盘、鼠标、扫描仪)。

  • 输出设备:将计算机的处理结果转换为人类或其他设备可识别的形式(如显示器、打印机、音响)。

1.3 总线结构

连接系统各部件的公共通信通道。

  • 数据总线:双向传输数据,其宽度(位数)决定了一次可传输的数据量。

  • 地址总线:单向(CPU发出),用于指定内存或I/O端口的地址,其宽度决定了系统的寻址空间。

  • 控制总线:传输控制信号,如读/写、中断请求、时钟等。

二、中央处理器

2.1 CPU的功能与组成

CPU是计算机的"大脑",其根本任务是取指、译码、执行。

  • ALU:执行所有数学运算和逻辑运算。

  • 寄存器组:CPU内部的高速存储单元,用于暂存指令、数据和地址。访问速度极快。

    • 通用寄存器:存放操作数和中间结果。

    • 专用寄存器:

      • 程序计数器 :存放下一条要执行的指令的内存地址。

      • 指令寄存器:存放当前正在执行的指令。

      • 堆栈指针:指向当前堆栈顶部的地址。

      • 状态寄存器:存放上一条指令执行后的状态信息(如是否溢出、是否为负等)。

  • 控制单元:产生控制序列,指挥ALU、寄存器和总线协同工作。

  • 内部数据通路:连接CPU内部各组件的高速通道。

2.2 指令集架构

是软件和硬件之间的接口,定义了CPU可执行的基本命令集合。

  • CISC:

    • 特点:指令系统复杂,指令长度可变,一条指令可完成复杂操作。

    • 优点:代码密度高,简化编译器设计。

    • 缺点:控制器硬件复杂,指令执行周期不一致。代表:x86。

  • RISC:

    • 特点:指令系统精简,指令长度固定,采用加载/存储结构,指令大部分在一个时钟周期内完成。

    • 优点 :硬件设计简单,有利于提高主频和并行执行。ARM架构是RISC的典范。

    • 缺点:代码密度相对较低。

2.3 位宽

指CPU一次能处理的二进制数据的位数(如32位、64位)。它直接影响:

  • 计算能力:64位CPU一次可处理64位数据,性能更强。

  • 寻址空间:32位CPU最大寻址4GB,而64位CPU寻址空间极大。

三、存储器系统层次结构

为了解决速度、容量和成本的矛盾,计算机采用多级存储体系。

存储层次 特点 作用
寄存器​ 速度最快,容量最小,成本最高,在CPU内部。 存放当前正在执行的指令和数据。
高速缓存​ 速度很快,容量小,成本高,分L1, L2, L3。 存放最可能被CPU使用的程序和数据副本,解决CPU与主存的速度差异。
主存储器​ 速度中等,容量较大,成本中等。 存放当前正在运行的活跃程序和数据。CPU可直接访问。
辅助存储器​ 速度慢,容量大,成本低。 用于长期、海量存储。CPU不能直接访问,需调入主存。

工作原理 :基于程序访问的局部性原理(时间局部性和空间局部性),将活跃数据从低速存储器预取到高速存储器。

四、ARM体系结构精讲

4.1 ARM公司商业模式

ARM采用IP授权模式,自身不生产芯片,而是设计CPU核心架构,将设计授权给其他公司使用。

4.2 ARM数据类型与指令集

  • 基本数据类型:

    • 字节:8位。

    • 半字:16位。

    • 字:32位。

  • 指令集状态:

    • ARM状态:执行32位ARM指令,性能高。

    • Thumb状态:执行16位Thumb指令,代码密度高。

    • Thumb-2状态:支持16位和32位指令混合,兼顾性能和代码密度。

4.3 ARM处理器工作模式

ARM有7种工作模式,以适应不同任务和异常。

处理器模式 描述 用途
用户模式​ 非特权模式,资源访问受限。 普通应用程序的执行。
系统模式​ 特权模式,使用与用户模式相同的寄存器。 运行特权操作系统任务。
管理模式​ 复位或执行SWI指令时进入。 操作系统的保护模式,用于系统调用。
中断模式​ 发生普通IRQ中断时进入。 通用中断处理。
快速中断模式​ 发生FIQ中断时进入,有独立的影子寄存器。 处理高速、低延迟的中断。
中止模式​ 数据或指令预取中止时进入。 处理内存访问失败错误。
未定义模式​ 执行未定义指令时进入。 处理未支持的指令或用于软件仿真。

4.4 ARM寄存器组织详述

ARM处理器共有37个32位寄存器 ,但在任何时刻,只有16个通用寄存器 和1-2个状态寄存器对程序员可见,这取决于当前处理器模式。

  • 通用寄存器:

    • R0-R12:真正通用的寄存器,用于数据操作。

    • R13 :通常用作堆栈指针 。每种异常模式都有自己独立的R13,用于管理各自的堆栈。

    • R14 :链接寄存器 ,用于在调用子程序时保存返回地址。异常模式有自己的R14,用于保存异常的返回地址。

    • R15 :程序计数器。读操作返回当前指令地址+8(ARM状态)或+4(Thumb状态)。

  • 程序状态寄存器:

    • 当前程序状态寄存器:

      • 条件码标志:

        • N:运算结果为负时置1。

        • Z:运算结果为零时置1。

        • C:运算产生进位或借位时置1。

        • V:运算产生溢出时置1。

      • 控制位:

        • 中断禁止位:I=1禁止IRQ,F=1禁止FIQ。

        • T位:T=0为ARM状态,T=1为Thumb状态。

        • 模式位:决定当前处理器模式。

    • 保存的程序状态寄存器:当异常发生时,硬件自动将CPSR的副本存入当前异常模式的SPSR中。异常返回时,用SPSR来恢复CPSR。

4.5 ARM异常处理机制详解

  • 异常向量表:一块固定的内存区域,存放着各种异常处理程序的入口地址。

  • 异常处理流程:

    1. 保存现场 :将PC 值保存到当前异常模式的LR 中,将CPSR 保存到当前异常模式的SPSR中。

    2. 模式切换 :设置CPSR中的模式位,切换到对应的异常模式;设置中断禁止位以防止嵌套中断。

    3. 跳转 :将PC 设置为对应的异常向量地址,跳转到异常处理程序。

  • 异常返回 :异常处理程序执行完毕后,需要手动操作,从SPSR 恢复CPSR ,并从LR 恢复PC。

五、软件编译与开发流程

5.1 从高级语言到机器码

  • 预处理:处理宏定义、文件包含、条件编译等。

  • 编译:将高级语言翻译成汇编语言。

  • 汇编:将汇编语言翻译成机器码,生成目标文件。

  • 链接:将多个目标文件和库文件链接在一起,解析符号引用,生成最终的可执行文件。

5.2 集成开发环境

用于ARM开发的工具链通常包括交叉编译器 、调试器 和仿真器。

六、数字电路与半导体基础

6.1 逻辑电平与数字表示

  • TTL电平:

    • 输出:高电平 ≥ 2.4V,低电平 ≤ 0.4V。

    • 输入:识别为高电平 ≥ 2.0V,识别为低电平 ≤ 0.8V。

  • CMOS电平:

    • 高电平 ≈ 电源电压,低电平 ≈ 0V。

    • 噪声容限比TTL大。

6.2 基本逻辑门

  • 与门:所有输入为1,输出才为1。

  • 或门:任一输入为1,输出就为1。

  • 非门:输出是输入的反相。

  • 与非门、或非门、异或门:由基本门组合而成。

6.3 关键半导体器件

  • 二极管:具有单向导电性(正向导通,反向截止)。

  • 三极管 :电流控制型器件,工作在截止区 、放大区 和饱和区,可用于放大和开关。

  • MOS管:电压控制型器件,是构成CMOS集成电路的基础。分为NMOS和PMOS。

七、硬件实践与系统集成

7.1 ARM最小系统

指使一个ARM处理器能够正常工作所需的最少组件构成的系统。

  • 电源电路:提供稳定、干净的电源。

  • 时钟电路:提供系统工作的基准时钟。

  • 复位电路:提供上电复位和手动复位信号。

  • 存储器:Flash和SDRAM,用于存储程序和数据。

  • 调试接口:用于程序下载和调试。

7.2 通信接口概念

  • 单工、半双工、全双工:定义数据传输方向。

  • 串行通信与并行通信:定义数据传输方式。

  • 同步通信与异步通信:定义收发双方的时钟同步方式。

7.3 常见封装

  • BGA:球栅阵列封装,引脚在芯片底部,以焊球形式分布,集成度高。

  • COB:芯片直接贴在PCB上,用黑胶封装,成本低。

相关推荐
优橙教育17 分钟前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
qq_2842740524 分钟前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Dawson Zhu25 分钟前
《Agentic Design Patterns》第 9 章导读:学习与适应(Learning and Adaptation)
人工智能·语言模型·架构·aigc·agi
Navigator_Z28 分钟前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
SEO_juper42 分钟前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
西柚小萌新1 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛1 小时前
cpp学习笔记--常量指针
java·开发语言·算法
Titan20241 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
半杯咖啡半行码1 小时前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
姜鱼问生1 小时前
Linux 日志增量统计:inode + offset 方案(不丢不重)
架构