ARM硬件基础
CPU核心
- SIMD:Single Instruction Multiple Data,单指令多数据流。单次处理多条数据。
- NEON:加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理图像处理技术、电话和声音合成),其性能至少为ARM5性能的3倍,为ARMv6SIMD性能的2倍。主要处理浮点数
系统外围
- RTC:real-time clock
- PLL:Phase Locked Loop,为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。
- PWM Timer:脉冲宽度调制(Pulse Width Modulation),脉宽调制
- Watchdog Timer:
- DMA:帮助存储器与外设进行交互,减轻CPU压力
- Keypad:按钮
- ADC:Analog to Digital Converter,模数转换器
SISD&SIMD
SISD:单指令单数据
SIMD:单指令多数据
NEON:对SIMD进行扩展,加入向量表提高数据集的压缩,进而提高浮点数运算效率。
Cache 高速缓存
二级缓存的优化会大大影响程序运行速度。涉及到调优。
为何需要Cache? (我们现在采用的存储器结构成为多体交叉存储器体系)
- I/O向主存请求的级别高于CPU访存
- 主存速度跟不上CPU的发展
- 主存一般都是片外,频繁进出速度慢,能耗高
Cache工作原理:
- 程序访问的局部性原理,采用了SRAM,即程序连续的被CPU处理,可以找到运行规律,预测执行的下一部分,所以形成缓存
- 命中率(读取指令的准确度)
- 大小比例,4::1000,128K-32M(缓存大小与内存大小比例)
上级缓存一般都可以作为下级的缓存
缓存控制器Cache Controller:(控制缓存与内存的交互规则)
- 直接映射缓存Direct Mapped Cache
- 联合缓存Set-association Cache
- line是缓存最小单元,指向主存的连续字单元
- index是存储器地址的一部分,用来决定找到缓存的第几行
- way是一个特定的索引线路
MMU(Memory Manage Unit)
PM:物理内存
虚拟存储器
作用:
- 允许多道程序之间有效而安全的共享存储器
- 消除一个小而受限的主存容对程序设计造成的影响
如果CPU在利用缓存的过程中没有命中,则称为缺页
- 如果不缺页直接读物理内存
- 如果缺页,则把控制权交给操作系统,操作系统一般是从磁盘地址去读
- 虚拟地址空间非实体,只是逻辑上的
- 虚拟地址对物理地址的映射是由MMU控制的
- MMU会控制一个物理地址只能对应一个虚拟地址的映射,保护内存。页保护与锁定
- 分段。对程序代码进行分类,例如变量放入堆栈的物理内存等
TLB
加快地址转换,对虚拟地址进行划分,加快查询
address->MMU->TLB->pageTable->PM
异常中断
ARM体系结构中存在7种异常处理。异常发生时,处理器会把PC指向一个特殊地址,这个地址放在存储器中一个特定表中,称为向里表
一般向量表起始地址是0x0开始,又称低地址向量表。而微软是从0xffff0000开始,成为高地址向量表。
触发异常过程: 系统接收异常->CPU切换模式同时保存当前位置和状态->CPSR、SPSR->根据中断向量表查找处理程序->返回还原
复位异常
内存出现问题为数据异常
未定义异常
异常优先级
总结
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 吾辈之人,自当自强不息!!
评论