CPU核心

CPU

  1. SIMD:Single Instruction Multiple Data,单指令多数据流。单次处理多条数据。
  2. NEON:加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理图像处理技术、电话和声音合成),其性能至少为ARM5性能的3倍,为ARMv6SIMD性能的2倍。主要处理浮点数

系统外围

  1. RTC:real-time clock
  2. PLL:Phase Locked Loop,为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。
  3. PWM Timer:脉冲宽度调制(Pulse Width Modulation),脉宽调制
  4. Watchdog Timer:
  5. DMA:帮助存储器与外设进行交互,减轻CPU压力
  6. Keypad:按钮
  7. ADC:Analog to Digital Converter,模数转换器

SISD&SIMD

SISD:单指令单数据
SIMD:单指令多数据

SISD与SOMD比较

NEON:对SIMD进行扩展,加入向量表提高数据集的压缩,进而提高浮点数运算效率。

Cache 高速缓存

二级缓存的优化会大大影响程序运行速度。涉及到调优。

为何需要Cache? (我们现在采用的存储器结构成为多体交叉存储器体系)

  • I/O向主存请求的级别高于CPU访存
  • 主存速度跟不上CPU的发展
  • 主存一般都是片外,频繁进出速度慢,能耗高

Cache工作原理:

  • 程序访问的局部性原理,采用了SRAM,即程序连续的被CPU处理,可以找到运行规律,预测执行的下一部分,所以形成缓存
  • 命中率(读取指令的准确度)
  • 大小比例,4::1000,128K-32M(缓存大小与内存大小比例)

一个存储器的层级结构

上级缓存一般都可以作为下级的缓存

缓存控制器Cache Controller:(控制缓存与内存的交互规则)

  • 直接映射缓存Direct Mapped Cache
  • 联合缓存Set-association Cache

直接映射,固定计算方式

联合缓存,映射位置不确定,有controller确定

缓存结构

  • line是缓存最小单元,指向主存的连续字单元
  • index是存储器地址的一部分,用来决定找到缓存的第几行
  • way是一个特定的索引线路

MMU(Memory Manage Unit)

PM:物理内存

虚拟存储器

作用:

  1. 允许多道程序之间有效而安全的共享存储器
  2. 消除一个小而受限的主存容对程序设计造成的影响

通过虚拟内存满足程序需要大容量的要求
如果CPU在利用缓存的过程中没有命中,则称为缺页

  • 如果不缺页直接读物理内存
  • 如果缺页,则把控制权交给操作系统,操作系统一般是从磁盘地址去读
  1. 虚拟地址空间非实体,只是逻辑上的
  2. 虚拟地址对物理地址的映射是由MMU控制的
  3. MMU会控制一个物理地址只能对应一个虚拟地址的映射,保护内存。页保护与锁定
  4. 分段。对程序代码进行分类,例如变量放入堆栈的物理内存等

TLB

加快地址转换,对虚拟地址进行划分,加快查询
address->MMU->TLB->pageTable->PM

异常中断

ARM体系结构中存在7种异常处理。异常发生时,处理器会把PC指向一个特殊地址,这个地址放在存储器中一个特定表中,称为向里表

中断向量表

一般向量表起始地址是0x0开始,又称低地址向量表。而微软是从0xffff0000开始,成为高地址向量表

触发异常过程: 系统接收异常->CPU切换模式同时保存当前位置和状态->CPSR、SPSR->根据中断向量表查找处理程序->返回还原

FIQ发生的伪代码

复位异常

复位异常

复位异常的伪代码

内存出现问题为数据异常

未定义异常

未定义异常伪代码

异常优先级

异常优先级

总结

总结