蜗窝科技

ARM概念梳理:Architecture, Core, CPU,SOC

wowo · · ARMv8A Arch · 阅读 31427 · 2014年12月存档

1. 前言

本文简单梳理一下ARM有关的概念,包括ARM architecture、ARM core、ARM CPU(或MCU)以及ARM Soc。我们这些以ARM平台为主的嵌入式工程师,几乎每天都会和这些概念打交道,也似乎非常理解它们。但仔细想想,却有些说不清道不明的感觉,因而有必要整理一下思路,也就顺手记录下来了。

2. 概念梳理

1)ARM architecture

ARM architecture,是指ARM公司开发的、基于精简指令集架构(RISC, Reduced Instruction Set Computing architecture)的指令集架构(Instruction set architecture)。我们常说的ARMv7、ARMv8、ARMv8-A,就是指ARM architecture。类似的基于RISC的architecture也有很多,例如MIPS、AVR、Blackfin等等,都是这个概念。

2)ARM core

ARM core是基于ARM architecture开发出来的IP core,它是介于architecture和最终的CPU(MCU)之间的中间产品,这也是ARM商业模式的独特之处。

有两种类型的ARM core:一种是ARM公司自己发布的,如我们耳熟能详的ARM7、ARM9、ARM Cortex M3、ARM Cortex A57等等;另一种是ARM授权其它公司开发的Core,如苹果的A6/A6X等等。下面链接是维基百科上的ARM core的列表,共大家参考:

http://en.wikipedia.org/wiki/List_of_ARM_microarchitectures

3)ARM CPU(MCU)

其它的芯片厂商,如Phillips、ST、TI等,会基于ARM公司发布的Core,开发自己的ARM处理器,这称作ARM CPU(也可称为MCU)。这些是我们工作过程中接触最多的,如LPCxxxx、STM32xxx、OMAPxxxx、S3Cxxxx等等。

4)ARM Soc

对于一些比较专业的应用场景,如视频、音频等,为了追求更小的size、更低的功耗,厂商会在芯片上,集成除处理器之外的东西,如视频编解码器、DSP等。这些集成了其它功能的芯片,称作片上系统(SOC),如TI的DM37x Video SOC。

注1:其实ARM的技术和商业模式,正体现了软件工程中抽象和封装的思想。

3. ARM 64bit

我们以一款64bit ARM CPU为例,反向阐述一下ARM处理的诞生过程,同时罗列一些学习、研究方向。

1)我们熟悉一个CPU(假设它的型号是WW9000)的第一手资料,是芯片厂家发布的Datasheet,例如WW9000_SPEC.pdf。

2)WW9000是基于ARM Cortex-A57 Core封装而来的,该ARM core的资料可以从下面链接下载

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0488g/DDI0488G_cortex_a57_mpcore_trm.pdf

3)ARM Cortex-A57 Core又是基于ARMv8-A architecture,该结构的资料可以通过如下方式获取:

Go to ARM Infocenter and navigate through ARM architecture / Reference Manuals

注2:ARM Infocenter中资料是非常全面的,没事时可以多逛逛。

原创文章,转发请注明出处。蜗窝科技,www.wowotech.net。

标签:ArchitectureARMcoresoc

继续讨论

新讨论请用 GitHub 账号在下方发言——评论会保存在本仓库的 Discussions 里,与站点同寿; 再下方的「历史评论」是原站的只读存档。

评论(11 条,只读存档)

以下为原站的历史评论(只读存档);继续讨论请用上方的评论区。

  • tigger

    所以高通的芯片是高通拿到ARM的IP core lincense然后自己做出来的一个ARM Core,指令集跟拿到的那IP core的指令集兼容。但是有自己的独特的东东 其他的公司比如国内的芯片公司,都是拿的完整的ARM core,然后自己封装出来一个ARM CPU.所谓的CPU就是ARM CORE+其他总线啊,外设啊。等等。
    • tigger

      @tigger:当然对于高通比如8916,光有ARM core还不行,还是要有外设组成一个CPU.这个8916应该是个ARM CPU.
    • tigger

      @tigger:这里cpu 跟soc的区别我有点搞不懂了。。。
    • wowo

      @tigger:是的,你看维基上给出来的那个表格,高通比较有技术含量,买的是IP core的授权,而不是ARM core的授权。 对于CPU和SOC,其实界限不是特别明显,这取决于厂商怎么定义。如果严格定义,CPU应该只负责取指、执行、存储、读取。从这个角度看,主流CPU都是SOC,因为里面包了很多之外的东西,但厂商却不那么叫。 另外,有一些很明显的chip,它可以包含1个ARM core和1个DSP,这一定是SOC了。
      • tigger

        @wowo:领教了。
  • superm

    高通会修改ARM IP的内部RTL代码吗?
    • wowo

      @superm:抱歉,我也不是很懂RTL,可以的话,您可以给大家普及一下这个概念。
      • superm

        @wowo:其实我就是觉得高通可能会自己修改了ARM的IP,优化和个性化IP,就好像你说的高通买的是IP core的授权,而不是ARM core的授权,这个是不是说明高通自己在修改ARM IP? 二国内大部分都是直接集成了。
        • wowo

          @superm:高通和苹果应该会自己设计、修改ARM IP的,不然比其它厂家就没有优势了。
  • Tech_fan

    ARM architecture,是指ARM公司开发的、基于精简指令集架构(RISC, Reduced Instruction Set Computing architecture)的指令集架构(Instruction set architecture) 其实ARM构架不仅仅包括指令集,还包括异常模式,寄存器集,内存管理等
    • wowo

      @Tech_fan:确实如此,多谢指正~~