其他
详谈ARM架构与ARM内核发展史
戳蓝字“CSDN云计算”关注我们哦!
1、ARM架构与ARM内核
1.1 ARM架构与内核简述
目前为止,ARM总共发布8种架构:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7 、ARMv8,这是ARM架构指令集的多个v版本。
基于不同的ARM架构可以设计出不同特点的内核处理器。比如基于ARMv3架构设计出的处理器ARM6、ARM7,这两款处理器适用于不同的场景,硬件可能不同,但是架构指令集是一样的。
好比盖房子,刚开始因为水平低流行盖平房,这就是一种架构(ARMv5),然后这种平房架构你可以设计出一款独立卫生间的款式, 这叫ARM7内核。 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖,接着过一段时间,有人觉得光独立卫生间还不够啊, 我还想有个小院子! 好吧,那ARM就满足你们的要求,出个带小院子的款式(ARM9)。
即ARMv1/2/3等是指令集的架构,ARM7/9等是基于架构设计出的内核处理器。ARM的架构都是基于RISC指令集而设计的,内核是实现这一指令集的硬件架构的基础。
1.2 ARM各架构之间区别
1.2.1 ARM版本Ⅰ:V1版架构
该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。其基本性能有:
基本的数据处理指令(无乘法); 基于字节、半字和字的Load/Store指令; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令SWI; 寻址空间:64MB(226)。
乘法和乘加指令; 支持协处理器操作指令; 快速中断模式; SWP/SWPB的最基本存储器与寄存器交换指令; 寻址空间:64MB。
寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register); 增加了程序状态保存寄存器SPSR(SavedProgram Status Register); 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。
符号化和非符号化半字及符号化字节的存/取指令; 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令
带有链接和交换的转移BLX指令; 计数前导零CLZ指令; BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令 改进了ARM/Thumb状态之间的切换效率; E---增强型DSP指令集,包括全部算法操作和16位乘法操作; J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。
THUMBTM:35%代码压缩; DSP扩充:高性能定点DSP功能; JazelleTM:Java性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍
x:序列 y:2:带MMU, 4带MPU,6没有 z:0:标准cache,2:减小的cache, 6可变的cache T:处理器支持Thumb指令集 D:支持JTAG调试器 M:支持长乘法指令 I:有嵌入式跟踪宏单元 E:支持增强指令(基于TDMI) J:支持JAVA硬件加速(Jazelle) F:支持向量浮点单元 S:可综合版本
ARM7:ARMv4架构 ARM9:ARMv5架构 ARM11:ARMv6架构 ARM-Cortex 系列:ARMv7架构。
“A”系列面向尖端的基于虚拟内存的操作系统和用户应用; “R”系列针对实时系统; “M”系列对微控制器。简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。
福利
扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读: