众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。这些厂家基本涵盖了全球领先的知名半导体企业、软件和OEM厂商:TI, NXP, ST, Infineon, ADI, Cypress;Atollic,IAR system,FreeRTOS,SEGGER等。

1.ARM内核体系架构历史

  ARM是Advanced RISC Machines的缩写。ARM架构是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。

  迄今为止(2016年)ARM架构已经发展到了第八代ARMv8,在了解最新架构之前有必要重温一下ARM架构发展史:

  1985年,ARMv1架构诞生,该版架构只在原型机ARM1出现过,只有26位的寻址空间(64MB),没有用于商业产品。

  1986年,ARMv2架构诞生,首颗量产的ARM处理器ARM2就是基于该架构,包含了对32位乘法指令和协处理器指令的支持,但同样仍为26位寻址空间。其后还出现了变种ARMv2a,ARM3即采用了ARMv2a,是第一片采用片上Cache的ARM处理器。

  1990年,ARMv3架构诞生,第一个采用ARMv3架构的微处理器是ARM6(610)以及ARM7,其具有片上高速缓存、MMU和写缓冲,寻址空间增大到32位(4GB)。

  1993年,ARMv4架构诞生,这个架构被广泛使用,ARM7(7TDMI)、ARM8、ARM9(9TDMI)和StrongARM采用了该架构。ARM在这个系列中引入了T变种指令集,即处理器可工作在Thumb状态,增加了16位Thumb指令集。

            图1. ARM V5 to V8 Architecture

  1998年,ARMv5架构诞生,ARM7(EJ)、ARM9(E)、ARM10(E)和Xscale采用了该架构,这版架构改进了ARM/Thumb状态之间的切换效率。此外还引入了DSP指令和支持JAVA。

  2001年,ARMv6架构诞生,ARM11采用的是该架构,这版架构强化了图形处理性能。通过追加有效进行多媒体处理的SIMD将语音及图像的处理功能大大提高。此外ARM在这个系列中引入了混合16位/32位的Thumb-2指令集。

            图2. PD ARM7 CPU Alternativess

  2004年,ARMv7架构诞生,从这个时候开始ARM以Cortex来重新命名处理器,Cortex-M3/4/7,Cortex-R4/5/6/7,Cortex-A8/9/5/7/15/17都是基于该架构。该架构包括NEON™技术扩展,可将DSP和媒体处理吞吐量提升高达400%,并提供改进的浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。

  2007年,在ARMv6基础上衍生了ARMv6-M架构,该架构是专门为低成本、高性能设备而设计,向以前由8位设备占主导地位的市场提供32位功能强大的解决方案。Cortex-M0/1/0+即采用的该架构。

  2011年,ARMv8架构诞生,Cortex-A32/35/53/57/72/73采用的是该架构,这是ARM公司的首款支持64位指令集的处理器架构。

参考资料

[1]. ARM架构和ARM芯片

[2]. ARM体系版本

[3]. ARM版本及系列

[4]. ARM内核全解析

豹哥嵌入式讲堂:ARM知识概要杂辑(1)- 内核架构编年史的更多相关文章

  1. 豹哥嵌入式讲堂:ARM知识概要杂辑(2)- 第一款Cortex-M处理器

    1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃了以往"ARM+数字"这种处理器命名方法(ARM11之前的处理器统称经典处理器 ...

  2. 豹哥嵌入式讲堂:ARM知识概要杂辑(4)- Cortex-M处理器性能指标

    1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不同,下面介绍嵌入式行业广泛使用的两个经典的测试标准. 1.1 Dhrystone标准 Dhrysto ...

  3. 豹哥嵌入式讲堂:ARM开发中有用的文件(1)- source文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的source文件种类. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就 ...

  4. 痞子衡嵌入式:ARM Cortex-M内核那些事(1)- 内核架构编年史

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM内核架构历史. 众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架 ...

  5. 豹哥嵌入式讲堂:ARM开发之文件详解(2)- linker文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的linker文件. 在前一节课source文件详解里,豹哥给大家系统地介绍了source文件,source文件是嵌入式工程里典 ...

  6. 豹哥嵌入式讲堂:ARM开发之文件详解(3)- project文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的project文件. 前面两节课里,豹哥分别给大家介绍了嵌入式开发中的两种典型input文件:source文件.linker文 ...

  7. 豹哥嵌入式讲堂:ARM开发之文件详解(4)- relocatable文件(object, library)

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的relocatable文件(object, library). 前三节课里,豹哥都是在给大家介绍嵌入式开发中的input文件. ...

  8. 豹哥嵌入式讲堂:ARM Cortex-M开发之文件详解(8)- 镜像文件(.bin/.hex/.s19)

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是豹哥<ARM Cortex-M开发之文件详解>主 ...

  9. 痞子衡嵌入式:ARM Cortex-M内核MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是ARM Cortex-M内核微控制器相关知识. ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包 ...

随机推荐

  1. [整理]HTTPS和SSL证书

    在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: • https:在http(超 ...

  2. js 移动端写搜索时怎么调用软键盘上面的搜索按钮

    这段时间一直在做移动端,所以遇到很多问题,现在很多网站在做移动端搜索的时候都不会在后面加一个搜索按钮,而是直接调用输入法上面的搜索搜索按钮进行搜索 input的一个新属性给我们提供非常方便的书写, 就 ...

  3. C#学习笔记-迭代器模式

    什么是迭代器模式? 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 何时使用迭代器模式? 当需要访问一个聚合对象,而且不管这些对象是什么都需要 ...

  4. [linux] C语言Linux系统编程-socket开发响应HTTP协议

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h&g ...

  5. Python日志监控系统处理日志(pyinotify)

    前言 最近项目中遇到一个用于监控日志文件的Python包pyinotify,结合自己的项目经验和网上的一些资料总结一下,总的原理是利用pyinotify模块监控日志文件夹,当日志到来的情况下,触发相应 ...

  6. JavaScript call()和apply()

    ECMAScript规范给所有函数都定义了call()与apply()两个方法,call()与apply()的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递 ...

  7. poj1830:开关问题

    链接:http://poj.org/problem?id=1830 某天“佐理慧学姐”突然来问了我这道题. 诶,窝只会线性基,但是好像搞不了方案数啊…… 啃题解吧. woc!线性代数哦,就是那种我不会 ...

  8. 【Java学习笔记之十五】Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  9. SG 函数 S-Nim

    http://poj.org/problem?id=2960 S-Nim Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 34 ...

  10. Netty5序章之BIO NIO AIO演变

    Netty5序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使 ...