ARM的发展史以及架构解析
本文从ARM的发展历史着手,以S3C2440为例与51单片机进行对比分析,详细解析了ARM架构。
先来谈一下ARM的发展史:1978年12月5日,物理学家Hermann Hauser和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。
80年代中期,Acorn的一个小团队要为他们的下一代计算机挑选合适的处理器,根据他们提供的技术需求,在当时的市场上无法找到合适的处理器,于是Acorn决定自己设计一个处理器。一个小团队仅仅用了18个月就完成了从设计到实现的全过程,这是一台RISC指令集的计算机,叫做Acorn RISC Machine(简称ARM)。后来Acorn公司没落了,而处理器设计部门被分了出来,组成了一家新公司。
ARM公司主要设计ARM系列AISC处理器内核,它不生产芯片,只提供IP核。先以一个例子解释一下架构、核、处理器和芯片:S3C2440,这是一款SoC芯片,注意,它不是cpu,2440和我们熟知的51单片机有点类似,都属于嵌入式,嵌入式的发展到目前经历了三个阶段,分别是SCM、MCU、SoC。51属于SCM或MCU,而2440就属于SoC了,先来看看51单片机的内部结构
其内部结构可以简单的分成两部分:cpu和外设。再来看2440的:
中间的那个arm920t就是它的处理器,处理器和核在我看来在这里是一个概念,只不过一个是硬概念,一个是软概念。这里的920t就既是处理器又是核。而三星做的就是除了这个cpu外其他的东西。
那架构呢?再来看一张图。
其中左侧的就是架构,右侧的是处理器,也可以叫核。arm首个最成功的cpu是ARM7TDMI,是基于ARMv4的。ARM架构包含了下述RISC特性:
读取/储存 架构
不支援地址不对齐内存存取(ARMv6内核现已支援)
正交指令集(任意存取指令可以任意的寻址方式存取数据Orthogonal instruction set)
大量的16 × 32-bit 寄存器阵列(register file)
固定的32 bits 操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。
大多均为一个CPU周期执行。
不同版本的架构会有所调整。
和三星相同的其他和arm合作的各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(system on chip)。从英文来看,所谓的四核SOC什么的,本意就不是单指CPU,而是四核系统。
所以目前各大厂商所做的事情,就是买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围IP(或者买或者自己设计),组成一个SOC后,去流片。不同的SOC,架构不同(就是CPU如何和IP联系起来,有的以总线为核心,有的以DDR为核心),所以,海思是拥有自主产权的SOC架构。可是,无论任何厂商,再怎么折腾,都没有怎么动过CPU,ARM核心就好好的呆在那里,那就是中央处理器。
目前ARM的产品天梯:
ARM命名规则:
第一个数字:系列名称:eg.ARM7、ARM9
第二个数字:Memory system
2:带有MMU
4:带有MPU
6:无MMU与MPU
第三个数字:Memory size
0:标准Cache(4-128k)
2:减小的Cache
6:可变的Cache
第四个字符:T:表示支持Thumb指令集
D:表示支持片上调试(Debug)
M:表示内嵌硬件乘法器(Multiplier)
I :支持片上断点和调试点
E:表示支持增强型DSP功能
J :表示支持Jazelle技术,即Java加速器
S:表示全合成式
ARM的发展史以及架构解析的更多相关文章
- ARM架构解析
ARM架构解析 (2014-11-23 21:56:53) 转载▼ 标签: francis_hao arm架构 arm核 soc 分类: MCU 先来谈一下ARM的发展史:1978年12月5日,物理学 ...
- HDFS 架构解析
本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...
- Magento的基本架构解析
Magento的基本架构解析 magento 是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为 zend框架提供了面向对象的代码库并且有很 ...
- Hadoop工程包架构解析
Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...
- uC/OS-II内核架构解析(1)---嵌入式RTOS(转)
uC/OS-II内核架构解析(1)---嵌入式RTOS 1. 嵌入式系统基本模型 2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性.即在任何情况下,在系统运行的任何时刻,OS的资 ...
- OpenStack最新版本Folsom架构解析
OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...
- 后端分布式系列:分布式存储-HDFS 架构解析
本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...
- PrismCDN 网络的架构解析,以及低延迟、低成本的奥秘
5 月 19.20 日,行业精英齐聚的 WebRTCon 2018 在上海举办.又拍云 PrismCDN 项目负责人凌建发在大会做了<又拍云低延时的 WebP2P 直播实践>的精彩分享. ...
- ARM与X86 CPU架构对比区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言 ...
- 深入HBase架构解析(二)【转】
转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...
随机推荐
- drf-day8——断点调试、认证.权限.频率的源码分析、基于APIView编写分页、全局异常处理
目录 一.断点调试使用 二.认证,权限,频率源码分析(了解) 2.1 权限类的执行源码 2.2 认证源码分析 2.3 频率源码分析 2.4 自定义频率类(了解) 2.5 SimpleRateThrot ...
- Flex布局专题
Flex布局专题 参照 https://www.runoob.com/w3cnote/flex-grammar.html 下面是自己看代码的一下 小结,和认识,加笔记,加原文 认识容器 flex布局需 ...
- Vue22 VueCli 脚手架
1 简介 CLI 是 Command-Line Interface, 翻译为命令行界面, 但是俗称脚手架 Vue CLI是一个官方发布 vue.js 项目脚手架 使用 vue-cli 可以快速搭建 V ...
- 真正“搞”懂HTTPS协议18之TLS特性解析
上一篇,我们讲了TLS的握手过程,我们参照的版本其实是TLS1.2.这个协议是2008年的老协议了,虽然它的价值不言而喻,但是毕竟年纪大了,不太能跟得上时代了.所以,经历了诸多磨难的TLS1.3在20 ...
- 基于ChatGPT的API的C#接入研究
今年开年,最火的莫过于ChatGPT的相关讨论,这个提供了非常强大的AI处理,并且整个平台也提供了很多对应的API进行接入的处理,使得我们可以在各种程序上无缝接入AI的后端处理,从而实现智能AI的各种 ...
- golang拾遗:实现一个不可复制类型
这是golang拾遗系列的第六篇.这个系列主要用来记录一些平时不常见的知识点,偶尔也会实现些有意思的小功能,比如这篇. golang拾遗系列目录: golang拾遗:指针和接口 golang拾遗:为什 ...
- 聊聊最近爆火的 CHAT-GPT
Chat-GPT 以问答的方式呈现给用户,如何使用 Chat-GPT,实际上转换为另一个问题:如何有效地提问. 编写程序 难度为"困难",通过率仅 30.9% 的动态规划题: 很稳 ...
- VueJs 监听 window.resize 方法---窗口变化
mounted() { let _this = this; window.onresize = ()=>{ return (()=>{ this.vscreen.height=docume ...
- XShell 连接 VMware Linux
如果你的系统是 Ubuntu,并且是精简安装的系统,极大可能使用ifconfig时会提示你安装相关依赖,所以你安装的时候要记得顺带安装 ifconfig: sudo apt install ifcon ...
- java语言——跨平台原理,jre,jdk
day1 Java是一种混合的编译运行方式:编译+解释(虚拟机) java的跨平台:在虚拟机中运行(jvm) jdk:jvm,核心类库,开发工具(开发环境) jre:Java的运行环境