详谈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)。
1.2.2 ARM版本Ⅱ:V2版架构
该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。
版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。V2版架构与版本V1相比,增加了以下功能:
乘法和乘加指令;
支持协处理器操作指令;
快速中断模式;
SWP/SWPB的最基本存储器与寄存器交换指令;
寻址空间:64MB。
1.2.3 ARM版本Ⅲ: V3版架构
ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。
变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:
寻址空间增至32位(4GB);
当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);
增加了程序状态保存寄存器SPSR(SavedProgram Status Register);
增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;
增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;
增加了从异常处理返回的指令功能。
1.2.4 ARM版本Ⅳ: V4版架构
V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。
V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。指令集中增加了以下功能:
符号化和非符号化半字及符号化字节的存/取指令;
增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
完善了软件中断SWI指令的功能;
处理器系统模式引进特权方式时使用用户寄存器操作;
把一些未使用的指令空间捕获为未定义指令
1.2.5 ARM版本Ⅴ: V5版架构
V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。这些新增命令有:
带有链接和交换的转移BLX指令;
计数前导零CLZ指令;
BRK中断指令;
增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令
改进了ARM/Thumb状态之间的切换效率;
E---增强型DSP指令集,包括全部算法操作和16位乘法操作;
J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。
1.2.6 ARM版本Ⅵ: V6版架构
V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD (Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。此架构在V5版基础上增加了以下功能:
THUMBTM:35%代码压缩;
DSP扩充:高性能定点DSP功能;
JazelleTM:Java性能优化,可提高8倍;
Media扩充:音/视频性能优化,可提高4倍
2、ARM产品型号
2.1 内核产品型号
基于各ARM架构设计的内核型号如下图所示:
目前常见的指令集的说明:ARMv7之前均为32位总线位宽,从ARMv8开始扩展为64位总线位宽(数据总线、地址总线、控制总线位宽均为64位,一般寻址空间不会用满)。
2.2 产品命名规则
ARM处理器命名规则和格式:ARM x y z T D M I E J F -S
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:可综合版本
2.3 内核产品应用
ARM7:ARMv4架构
ARM9:ARMv5架构
ARM11:ARMv6架构
ARM-Cortex 系列:ARMv7架构。
ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。
ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。
到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确:
“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;
“R”系列针对实时系统;
“M”系列对微控制器。简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。
1、Cortex-M系列:M-Profile,即"Microntroller"- Profile,侧重微控制器单片机方面的场合。
2、Cortex-R系列:R-Profile,即"Real-Time"-Profile,侧重于实时系统的场合。
3、Cortex-A系列:A-Profile,即“Application”-Profile,侧重于应用功能的场合。
福利扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读:
CPU 到底是怎么认识代码的?涨姿势了!
终于有人把超融合和边缘计算说清楚了
达摩院 2020 预测:模块化降低芯片设计门槛 | 问底中国 IT 技术演进
千万不要和程序员一起合租!
2019全年盘点之一:公链生死战场
鲲鹏之大,何止几千里?
真香,朕在看了!
详谈ARM架构与ARM内核发展史相关推荐
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- 关于ARM架构和cortexM内核的知识总结
ARM究竟是什么 先了解下Acorn公司. Acorn计算机公司创立于1978年,公司位于英格兰的剑桥.是著名的ARM公司的前身.1991年,Acorn计算机公司剥离了ARM部门,成立了ARM公司. ...
- 什么是Cortex、ARMv8、arm架构、ARM指令集、soc
参考:到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普] 发布时间: 一口Linux 网址:https://blog.csdn.net/daocaoka ...
- 到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】
前言 有粉丝问我到底什么是ARM,搞不清楚Cortex.arm内核.arm架构.ARM指令集.soc这些概念都是什么关系,下面一口君给大家整理一下关于ARM相关的一些概念. 1.ARM既可以认为是一个 ...
- 辨析:×86架构:×86(i386…),×64(×86-64/amd64);arm架构:arm,arm64
×86架构: ×86(又称:i386-/ IA32)表示32位cpu位数 ×64(又称:×86-64 / amd64 / inter64)表示64位cpu位数 arm架构: arm / A32 / a ...
- ARM架构和ARM核区别和联系
一.架构和核 到目前为止,随着ARM公司64位处理器如Cortex A15的出现,ARM家族的架构或指令集已经发展到V8版本,下面简要列出了 ARMV1到ARMV8的发展以及处理器的典型代表.图中Ar ...
- 【笔记】ARM架构和ARM芯片(一)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! ARM是 ...
- 【笔记】ARM架构和ARM芯片(三)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 经典系列 ...
- ARM、ARM架构、ARM架构芯片
ARM是一种基于精简指令集(RISC)的处理器架构,它由英国的ARM公司设计和授权. ARM芯片具有低功耗.高性能.高集成度等特点,广泛应用于嵌入式系统.移动设备.物联网.服务器等领域.本文将介绍AR ...
最新文章
- ios仿淘宝管理收货地址demo
- 【树莓派】树莓派SD卡系统镜像系统备份方法
- 学习笔记(06):Python网络编程并发编程-在简单套接字基础上加上通信循环
- java-JSON: Expected value at 1:0 错误
- linux bash函数里面调用命令行,Linux-在gnome-terminal -x中运行bash函数
- LeetCode 967. 连续差相同的数字(BFS/DFS)
- ug中模型不见了怎么办_关于UG参数化建模的定义
- CHARINDEX 连同 SUBSTRING 对字符串删除处理...
- Maximum Likelihood 最大似然估计
- Oracle数据库上机练习6
- 转录组入门(4):了解参考基因组及基因注释
- fluent二维叶型仿真_公开课 l 基于SCORG的双螺杆压缩机流体仿真分析应用
- 在AWS上的架构部署与设计
- java零项目经验,找工作前该如何准备项目?面试时又该怎么说?
- 基于STC89C52单片机的密码锁设计与实现
- php mail 权限,PHP mail()函数漏洞总结 · MYZ’s Blog
- STM32蓝牙控制循迹避障小车源代码——4.蓝牙控制
- 2021年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】
- uthash官方使用说明文档
- mysql rollback如何使用_MYSQL的COMMIT和ROLLBACK使用讲解
热门文章
- ios重签名shell脚本_iOS逆向——shell重签名及代码注入
- oracle sh文件怎么打开,Oracle数据库逻辑备份的SH文件
- win10开发java_win10系统搭建Java开发环境的操作方法
- linux对当前使用的分区分割,实例解说Linux中fdisk分区使用方法
- 扫一扫 移动端_移动端手机APP 身份证识别 手机扫一扫离线识别
- pythonsearch结果_python 查询Elasticsearch的小例子
- java arraylist 过滤_关于java:ArrayList过滤器
- spi四种工作模式时序图_还没学会SPI总线协议?干货都在这里
- 论证通过!依托顶尖985大学,争创国家实验室!
- 北大清华的状元之争:一个典型的囚徒困境