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倍

三级流水线

五级流水线

寄存器

arm处理器的更多相关文章

  1. 基于ARM处理器的反汇编器软件简单设计及实现

    写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...

  2. ARM处理器解析

    按图分析: ARM处理器有七种工作模式,为的是形成不同的使用级别,以防造成对系统的破坏.不同模式可以访问的寄存器不同,可以运行的指令不同. (1)user(10000):普通应用程序运行的模式(应用程 ...

  3. 热烈祝贺华清远见《ARM处理器开发详解》第2版正式出版

    2014年6月,由华清远见研发中心组织多名业 内顶尖讲师编写的<ARM处理器开发详解>一书正式出版.本书以S5PV210处理器为平台,详细介绍了嵌入式系统开发的各个主要环节,并注重实践,辅 ...

  4. ARM处理器的寄存器

    在ARM体系中通常有以下3种方式控制程序的执行流程: **在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节:每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节.整个过 ...

  5. ARM 处理器的几个相关术语

    生产ARM的厂商很多,自然ARM处理器的名字就五花八门.但是,它们有些共同点,那就是:架构和核心. 架构这个概念太宽不太懂,一般不同的架构会有不同的指令集,在不同的架构下面还可以有多种核心.核心就是指 ...

  6. ARM处理器模式

    ARM处理器模式 ARM处理器共有7种运行模式: l  用户模式(User,usr):正常程序执行的模式 l  快速中断模式(FIQ,fiq):用于高速数据传输和通道处理 l  外部中断模式(IRQ, ...

  7. ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 【转】

    转自:http://blog.chinaunix.net/uid-28458801-id-3494646.html ARM处理器工作模式一共有 7 种 : USR  模式    正常用户模式,程序正常 ...

  8. ARM处理器全解析:A8/A9/A15都是什么?

    前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额.Cortex-A50是继Cortex-A15 ...

  9. 高清摄像头MIPI接口与ARM处理器的连接

    MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称为“Mobile Industry Processor Interface”,分为MIPI DSI 和MIPI CSI,分别对 ...

  10. ARM处理器寄存器

    参考:ARM Architecture Reference Manual的39页 1.ARM处理器寄存器纵览 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器(R13和R13_svc不是同 ...

随机推荐

  1. 转:Java中finally和return的执行关系

    finally可以分两方面理解 1.执行时机问题.finally总会执行(除非是System.exit()),正常情况下在try后执行,抛异常时在catche后面执行 2.返回值问题.可以认为try( ...

  2. 关于VO中的Attribute的问题

    对于新手来说,有些时候会遇到VO中的Attribute的各种问题; 总结如下:1,你页面上输入了值,但是点击保存之后值并不能存到数据库,这个是因为该字段在VO中不是基于EO的  2,你将一个VO中的E ...

  3. github上预览Demo网页最简单的方法

    github上预览Demo网页最简单的方法: 1.打开你github上demo网页index.html,效果如图 2.复制上面的页面地址,然后在该地址前加上 htmlpreview.github.co ...

  4. C语言常见错误笔记

    1. 职业化的程序员起码要具备两点: 1)基本的软件技能 2)不犯低级的错误 2. 修改函数的形参是没用的,函数本身占用的存储单元在堆栈中分配,入口参数的值会在函数入口处拷贝到堆栈中,一旦函数返回,其 ...

  5. python 面向对象编程(一)

    一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class c ...

  6. C#中的DateTime是值类型还是引用类型

    近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自Syste.Val ...

  7. Java ---Listener监听器

    在我们的web容器中,一直不断的触发着各种事件,例如:web应用启动和关闭,request请求到达和结束等.但是这些事件通常对于开发者来说是透明的,我们可以根据这些接口开发符合我们自身需求的功能.在w ...

  8. Coordinator节点

    Coordinator节点 Coordinator 节点主要负责segment 的管理和分配.更具体的说,它同通过配置往historical 节点 load 或者 drop  segment .Coo ...

  9. Caffe学习系列(四)之--训练自己的模型

    前言: 本文章记录了我将自己的数据集处理并训练的流程,帮助一些刚入门的学习者,也记录自己的成长,万事起于忽微,量变引起质变. 正文: 一.流程 1)准备数据集  2)数据转换为lmdb格式  3)计算 ...

  10. redis的安装和测试

    redis一直都是调用别人部署好的,近日想要自己从灵开始搭建一次.其中也生出不少枝节,与各位猿友共同分享,望少走些弯路! 1.提前准备的资源 redis安装包(本人上传到csdn不需积分即可下载): ...