arm处理器

arm处理器相关

1.体系架构定义了指令集(ISA)和基于这一体系结构下处理器的编程模型。

arm卖的是架构或者已经设计好的公版ip核

卖给苹果高通的是架构,需要苹果高通通过架构设计自己的ip核.

卖给联发科,三星,华为的是公版的ip核,需要自己设计模块,核心数,频率功率,外围设备,制造工艺等等

2.处理器历史

v1 v2 都是26位处理器,最大支持64M内存

v3实现了32地址空间

v4系列中的v4T新增了Thumb指令集

v5有了支持dsp指令的v5E分支,和支持Java指令的v5J分支,同时增强了v5T系列arm Thumb两种指令的交互工作能力

v6架构增加了媒体指令,并且v6体系支持所有的特殊指令集(E J T)

v7更新Thumb为Thumb-2,同时提高了dsp和媒体处理能力,提高了接近4倍

v8地址空间为64位,包含两个状态AArch64 和 AArch32, 引入全新指令集A64用于应付64位地址的存取

同时提出了大小核设计架构

另外,从ARM9处理器这一代开始,采用哈弗架构,

哈佛架构

存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分了数据总线和指令总线。

cortex处理器

1.大体介绍

ARMv7 架构是在 ARMv6 架构的基础上诞生的。该架构采用了 Thumb-2 技术

Thumb-2技术比纯 32 位代码少使用 31%的内存,减小了系统开销,同时能够提供比已有的基于 Thumb 技术的解决方案高出 38%的性能。

ARMv7 架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍。并支持改良的浮点运算,满足下一代 3D 图形、游戏物理应用及传统嵌入式控制应用的需求。

crotex-A8它首次采用了强大的 NEON 信号处理扩展集,为 H.264 和 MP3 等媒体编解码提供加速。

2.科普:各家的GPU

  • Mali 系列由 ARM 出品
  • PowerVR SGX 系列由 Imagination Technologies 公司出品

  • Adreno 系列由高通公司出品,主要配合 Snapdragon CPU 使用
  • GeForce GPU 由英伟达打造,用于Targe系列的处理器

相关:Imagination Technologies有power VR和MIPS 两个主要产品;

-MIPS原本是和ARM竞争的厂商美普斯科技研发的CPU IP核,但是后面错过了移动领域的发展,导致现在只有少数公司在用,后面又被Imagination Technologies收购掉了,国内的龙芯还在用MIPS提供的IP核.

-power VRpower PC没有关系,power VR是GPU芯片,苹果自己的A系列处理器的GPU就是采用的power VR.

而power PC是苹果 IBM 摩托罗拉联合开发的CPU,后来被苹果抛弃,转而使用Intel的CPU

cortex-A8处理器

数据类型

  • Byte字节类型,8bit
  • Halfword半字类型,16bit,位置开始于偶数字节地址(二进制末尾为0)
  • Word字类型,32bit,位置开始于4的倍数字节地址(二进制末尾为00)

    ARM指令编译后为4字节, Thumb编译后为2字节

大端和小端



地址从左到右逐渐变大

大端模式:低位存放在高地址

小端模式:低位存放在低地址

主机序为小端模式,网络序为大端模式,相应的转换函数为htons ntohs函数等等

存储系统

  • 典型的 ARM 处理器有多个 32 位寄存器,其访问时间为 ns 量级
  • 芯片级的紧耦合存储器(TCM)是为弥补 Cache 访问的不确定性增加的存储器,TCM 是一种快速SDRAM
  • cache可能会分为两级,容量一般为8~32K, 几百K.速度为10ns, 几十ns.
  • DRAM 和 ROM就没什么好说的了

协处理器

ARM支持多达16个协处理器,具体之后再看

MMU存储管理单元

将物理地址映射为虚拟地址,操作系统直接使用虚拟地址,不用担心其他任务的地址需求以及占用情况.

cache

cache经常与写缓存器(write buffer)一起使用,当cpu要写入主存储器数据的时候, 先写入写缓存器,写缓存器写入速度高,

所以很快就可以完成,然后写缓存器再向下一级的缓存中写入.

这样可以提高cpu的执行效率, 但是容易出现数据不一致的情况.

流水线介绍

流水线典型的步骤

流水线的概念

因为每个指令包含很多个步骤,就是在执行完第一个指令的步骤1后,立马执行下个指令的步骤1

就像流水线一样,每个人只负责一个步骤

这样如果有6个步骤,就会比之前的速度提高6倍

三级流水线

五级流水线

寄存器

最新文章

  1. PHP之Memcache缓存详解
  2. eclipse不能新建server
  3. java 之前的安全的类回顾,以及以后需要线程安全时使用哪些类
  4. Java中的异常处理:何时抛出异常,何时捕获异常?
  5. html5 摇一摇事件监听
  6. 让PowerShell用上Git
  7. 配置Samba服务
  8. Android Context MODE的四种模式解析(转)
  9. JavaScript插件——模态框
  10. java实现文件转换成二进制存储与取出
  11. 关于MQ,你必须知道的
  12. ENSP模拟华为USG6000
  13. 需要转义的java字符(转)
  14. CookieUitl
  15. java中的ArrayList 、List、LinkedList、Collection
  16. 高性能Java RPC框架Dubbo与zookeeper的使用
  17. No Spring WebApplicationInitializer types detected on classpath异常的解决
  18. 详解Python闭包,装饰器及类装饰器
  19. Spring mvc 数据验证框架注解
  20. 中国移动MIFI--CM510,4G TD-LTE MIFI 上网终端开箱及初步体验@上海

热门文章

  1. eclipse如何安装插件
  2. python学习随笔(三)
  3. iOS 一个方法首次安装滚播图 展示应用简介
  4. Java 垃圾回收(GC) 泛读
  5. 深入Web请求过程
  6. node.js系列(实例):原生node.js实现接收前台post请求提交数据
  7. 在 Intellij 中设置集成 Jenkins 服务器连接
  8. Android Gradle 指定 Module 打包
  9. Linux--谈父子进程执行过程
  10. 自己实现的string的库函数