赞
踩
冯·诺依曼体系
结构模型:
冯·诺依曼体系的特点:
1、数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。
2、被早期大多数计算机所采用。
3、ARM7——冯诺依曼体系结构简单,但速度较慢。取指不能同时取数据。
哈佛体系
结构模型:
结构特点:
1、程序存储器与数据存储器分开.
2、提供了较大的存储器带宽,各自有自己的总线。
3、适合于数字信号处理.
4、大多数DSP都是哈佛结构.
5、ARM9是哈佛结构,取指和取数在同一周期进行,提高速度,改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用。
指令集(Complex Instruction Set Computer)
特点:
1、具有大量的指令和寻址方式
2、8/2原则:80%的程序只使用20%的指令
3、大多数程序只使用少量的指令就能够运行。
4、CISC CPU 包含有丰富的单元电路,因而功能强、面积大、功耗大。
RISC精简指令集(Reduced Instruction Set Computer)
特点:
1、在通道中只包含最有用的指令,只提供简单的操作。
2、确保数据通道快速执行每一条指令。
3、Load-store结构—— 处理器只处理寄存器中的数据,load-store指令用来完成数据在寄存器和外部存储器之间的传送。
4、使CPU硬件结构设计变得更为简单, RISC CPU包含较少的单元电路,因而面积小、功耗低。
RISC与CISC主要差别
1、寄存器方面
RISC指令集:拥有更多的通用寄存器,每个可以存放数据和地址,寄存器为所有的数据操作提供快速的存储访问。
CISC指令集:多用于特定目的的专用寄存器。
2、LOAD –STORE结构方面
RISC结构:Cpu 仅处理寄存器中的数据,采用独立的、专用的LOAD –STORE 指令来完成数据在寄存器和外存之间的传送。(访存费时,处理和存储分开,可以反复的使用保存在寄存器中的数据,而避免多次访问外存)。
CISC结构:能直接处理存储器中的数据。
在更为复杂的应用上,X86构架处理器的优势短时间内是无可取代的。最关键的一点,在于ARM架构处理器的乱序执行能力远不及X86架构处理器。比如电脑在操作的时候多是随机且不可预测的,X86构架处理器在这方面就加强了乱序指令执行的能力,而且,X86构架还有一个特点就是单核心双线程的设计,让其在处理乱序指令的时候效率更高。但是这样的缺点也显而易见,那就是随时都要准备着应对乱序指令的执行,因此它的耗电量也比较大。
下表描述了ARM的三种系列架构:A,R,M。
A系列(应用) R系列(实时) M系列(微控制器)
Cortex-A系列(Application)
面向应用场景的架构(Application Profile)。该系列支持基于内存管理单元(MMU)的虚拟内存系统体系结构(VMSA)。它支持A64、A32和T32指令集。面向性能密集型系统的应用处理器内核。主要针对日益增长的消费娱乐和无线产品设计,用于具有高计算要求、运行丰富操作系统及提供交互媒体和图形体验的应用领域,如智能手机、平板电脑、汽车娱乐系统、数字电视,智能本、电子阅读器、家用网络、家用网关和其他各种产品。
Cortex-R系列(Real-time)
面向实时应用的高性能内核。主要针对需要运行实时操作的系统应用,面向如汽车制动系统、动力传动解决方案、大容量存储控制器等深层嵌入式实时应用。R系列,面向实时场景的架构配置。该系列支持基于内存保护单元(MPU)的受保护内存系统体系结构(PMSA)。它支持A32和T32指令集。
Cortex-M系列(Microcontroller)
面向各类嵌入式应用的微控制器内核。该系列面向微控制器领域,主要针对成本和功耗敏感的应用,如智能测量、人机接口设备、汽车和工业控制系统、家用电器、消费性产品和医疗器械等。M系列,面向微处理器的架构。该系列实现了一个为低延迟中断处理而设计的程序员模型(programmers' model),该模型具有寄存器硬件堆栈和对中断处理程序的高级语言支持。它支持T32指令集的变种。
Cortex-SC系列(SecurCore)
除了上述三大系列之外,还有一个主打安全的Cortex-SC系列(SC:SecureCore),主要用于政府安全芯片。
Xilinx Zynq-7000系列是一个基于ARM Cortex-A9内核处理器和FPGA结构的SoC家族,自2012年推出以来,我们已经看到了基于入门级的Zynq-7010或Zynq-7020 SoCs的开发板。
ARM体系结构有三组总线,可以方便地扩充各种处理器、DSP或I/O。
运行不同的程序所需的硬件资源不同,因此ARM处理器可以为程序提供7种不同的硬件资源组合,每一种硬件资源组合叫做一种运行模式。
现代计算机系统都有用户模式,只为用户程序提供了有限硬件资源的运行模式。相对于用户模式来说,对硬件资源的使用有某种特权的运行模式叫做特权模式(除了用户模式其他六种运行模式都是特权模式)。
ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题,ARM体系结构又增加了T变种,开发了一种新的指令体系,这就是Thumb指令集,它是ARM技术的一大特色。
Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。
支持Thumb的ARM体系结构的处理器状态可以方便的切换、运行到Thumb状态,在该状态下指令集是16位的Thumb指令集。
ARM指令集对比Thumb指令集:
ARM处理器的工作状态由程序状态寄存器CPSR的D5位的值控制,ARM指令集和Thumb指令集都设有处理器工作状态切换指令,以供程序在执行过程中对处理器进行状态切换。启动时,处理器默认状态为ARM状态。
Thumb指令与ARM指令的时间效率和空间效率对比:
若对系统的性能有较高要求,则应使用32位存储系统和ARM指令集;若对系统的成本及功耗有较高要求,则应使用16位存储系统和Thumb指令集。当然,若两者结合使用,充分发挥各自的优点,则会取得更好的效果。
ARM处理器共有37个寄存器,但是每种模式下最多只能看到 18 个寄存器,其他寄存器虽然名字相同,但是在当前模式不可见。
根据处理器的工作状态,这37个寄存器有两种不同的组织方式:ARM方式和Thumb方式。
虽然ARM处理器共有37个寄存器,但是根据处理器的运行模式,程序能够真正使用的只是其中的18个或者17个。
6.1.1 基础寄存器
两种或两种以上运行模式所共享的寄存器叫做基础寄存器。他们是R0~R15和CPSR,其中R0~R7、R15和CPSR为所有运行模式共享;R8~R12为除了快中断模式之外的其他所有运行模式共享;R13和R14为用户模式和系统模式共享,如下图所示:
Current Program State Register
Saved Program Status Register
6.1.2 模式私有寄存器
为了对数据进行保护,ARM为某些运行模式设置了一些只能在该运行模式下使用的私有寄存器,上图中带有后缀的寄存器均为私有寄存器。
ARM规定,当处理器在某种模式运行时,凡是与该模式私有寄存器序号相同的基本寄存器都将被禁用。例如在终止模式下,与该模式私有寄存器R13_abt~R14_abt序号相同的基础寄存器R13和R14就处于禁用状态。为了减少寄存器名称的数量,ARM规定,寄存器名称统一写为R<序号>方式,但是这个名称所对应的实际物理寄存器与处理器当前运行模式相关。也就是说,程序中的一个寄存器名称可能对应着多个物理寄存器,程序中的这个名称究竟指的是哪个物理寄存器,则由系统根据当前运行的模式来决定。
6.1.3 程序计数器R15(PC)
在ARM中,基础寄存器R15固定得作为程序计数器来使用。为了提高程序的可读性,通常用PC来标识。在CPU中,一条指令的执行简单的划分为:取指-译码-执行,三个部分([2])。PC中存放的是下一条将要“执行”的指令的地址,这里的执行并不是取指-译码-执行中的第三个步骤,而是指的将存放于内存中的指令输送进CPU中“准备执行”,那么第一步就要取指,PC中存放的是从内存中取指所需要的地址。ARM处理器的字长是32位,则一条汇编指令的长度也是32位,也就是四个字节,而内存中一个地址单元是一个字节,也就是说一条指令要占据4个地址单元。
假设程序顺序执行(一条接一条,没有跳转),假设当前正在CPU中执行的指令A的首地址是0,也就是说指令A的存放位置是内存中的0—3这4个地址单元。假设指令A后面紧跟着指令B,指令B后面紧跟指令C,如果顺序执行,按理来说pc中存放的地址应该是指令B的首地址,也就是PC=0+4。
但是由于ARM处理器中采用了流水线的技术,假设是3级流水线,那么执行A处于三个步骤中的“执行”时,指令B已经开始进行“译码”,而真正开始“取指”的是指令C。也就是说,当指令A在运行的时候,PC中存放的地址应该是指令C的地址,也就是说PC=0+8。
6.1.4 程序状态寄存器PSR
基础寄存器R16专门用作程序状态寄存器。为了提高程序的可读性,程序中也可以称为PSR。
CPSR格式
ARM处理器中有6个PSR,当前程序状态寄存器CPSR是所有运行模式所共享的,而另外5个PSR为模式私有,用来对CPSR进行备份的寄存器叫做SPSR。
由于CPSR中保存的是程序当前运行模式的状态信息,所以当前运行模式发生变化时,为了防止这些信息丢失,ARM对每种异常运行模式都设置了一个与CPSR的格式完全相同的备份寄存器SPSR(Saved Progarm Status Register)。即当处理器进入异常运行模式时,系统会自动把CPSR的当前值转存到SPSR;当从异常模式退出时,再自动把当初保存到SPSR中的状态信息存回CPSR。
由于用户模式和系统模式不属于异常模式,所以这两个模式没有SPSR。
6.1.5 堆栈指针R13(SP)
堆栈是计算机存储数据的一种数据结构,SP的作用就是指示当前要出栈或入栈的数据,并在操作执行后自动递增或递减。
计算机中的堆栈主要用来保存临时数据,局部变量和中断/调用子程序程序的返回地址。程序中栈主要是用来存储函数中的局部变量以及保存寄存器参数。
6.1.6 链接寄存器R14(LR)
寄存器R14也称为子程序链接寄存器(Subroutine Link Register)或链接寄存器LR。当执行子程序调用指令BL时,R14会备份R15(程序计数器PC)的内容,以便子程序结束后能使程序正确地返回。
Thumb状态下的寄存器同样也分为模式相关寄存器和模式无关寄存器两种,其命名及使用方式也与ARM状态下的方式一样。但Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集。
(1) 流水线的发展
ARM7采用 3 级流水线
ARM9采用 5 级流水线
Cortex-A9采用 8 级流水线
注意:虽然流水线的级数越来越多,本质还是三级流水线,只不过是在三级流水线的基础上进行了细分。
(2) 流水线的局限性
指令流水线机制的引入确实可以大大提升指令执行的速度,但是在实际执行程序的过程中,很多情况下流水线是无法形成的。比如异常发生时,处理器要切换模式,保存上下文内容,然后跳转异常处理程序,在开始执行处理程序之前,流水线都无法正常运作。
因此,流水线的引入只能是优化了原本的流程,流水线的级数也不能太多,流水线级数越多,芯片设计的复杂程度也越高,芯片的功耗也越高。
ARM CPU 三级流水线(基于ARMV7)
3级流水线如上图所示(PC为程序计数器),流水线使用3个阶段,因此指令分3个阶段执行。
⑴ 取指-从存储器装载一条指令
⑵ 译码-识别将要被执行的指令
⑶ 执行-处理指令并将结果写回寄存器或者存储器
以前学过的51单片机,因为比较简单,所以它的处理器只能完成一条指令的读取和执行后,才会执行下一条指令。这样,PC始终指向的正在“执行”的指令。
而对于ARMV7来说因为是3级流水线,所以把指令的处理分为了上面所述的3个阶段。
所以处理时实际是这样的:ARM正在执行第1条指令的同时对第2条指令进行译码,并将第3条指令从存储器中取出。
所以,ARMV7流水线只有在取第4条指令时,第1条指令才算完成执行。
下图生动形象的说明了3级流水线的处理机制。
下面一句话很关键:无论处理器处于何种状态,程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或者“正在译码”的指令。
人们一般会习惯性的将正在执行的指令作为参考点,即当前第1条指令。
所以,PC总是指向第3条指令,或者说PC总是指向当前正在执行的指令地址再加2条指令的地址。
处理器处于ARM状态时,每条指令为4个字节,所以PC值为正在执行的指令地址加8字节,即是:
PC值 = 当前程序执行位置 + 8字节
处理器处于Thumb状态时,每条指令为2字节,所以PC值为正在执行的指令地址加4字节,即是:
PC值 = 当前程序执行位置 + 4字节
下面一个例子就很好的说明了这个问题。
0x4000 ADD PC,PC,#4 ;正在被执行的指令,将地址值PC+4写入PC
0x4004 ...;正在被译码的指令
0x4008 ...;正在被取指的指令,PC=0x4008
0x400C ...;PC+4=0x400C
另外补充说明就是根据以上描述,流水线只有被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅单周期指令)。
如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线被再次填满。因此,尽量地少使用跳转指令可以提高程序的执行效率。
首先看下ARM7和ARM9的流水线区别和联系:
相比ARM7,ARM9采用了更高效的五级流水线设计,在取指令、译码、执行之后,又增加了LS1和LS2阶段,LS1负责加载和存储指令中制定的数据,LS2则负责提取、符号扩展,通过字节或半字加载命令来加载数据,但是LS1和LS2仅对加载(LDR)和存储命令(STR)有效,其他的指令是不需要执行这两个阶段的。
ARM9五级流水线中,读寄存器的操作转移到译码阶段,将三级流水中的执行阶段进一步细化,减少每个始终周期内必须要完成的工作量,这样可以使流水线的各个阶段在功能上更加平衡,避免数据的访问和取指的总线冲突,每条指令的平均周期明显减少。
作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。
ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。
大端格式(big-endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式(low-endian):与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。缺省设置为小端格式。
Thumb技术
ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题,ARM体系结构又增加了T变种,开发了一种新的指令体系,这就是Thumb指令集,它是ARM技术的一大特色。
Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。
支持Thumb的ARM体系结构的处理器状态可以方便的切换、运行到Thumb状态,在该状态下指令集是16位的Thumb指令集。
ARM架构包含了指令集、寄存器集、存异常模型、内存模型等内容。
ARM体系结构版本指的是ARM对应的各种指令集。迄今为止,ARM体系结构定义了ARMv1~ARMv8共八个版本。
“指令集架构”命名
| ARMv | n | variants | x(variants) |
常见的variants有以下字母可选:
ARMv1:1985年发布,最早的ARM架构。
ARMv2:1986年发布,改进了ARMv1,增加了32位地址总线和指令集扩展(增加了一些指令)。
ARMv3:1992年发布,支持虚拟内存、增加了指令集扩展,包括支持协处理器(coprocessor)。
ARMv4:1994年发布,增加了Java虚拟机指令集扩展(Jazelle)和Thumb指令集,提高了代码密度。
ARMv5:1997年发布,增加了支持嵌入式Java的指令集扩展(Jazelle-RCT)、增加了支持浮点运算的指令集扩展(VFP)。
ARMv6:2002年发布,增加了Thumb-2指令集,提高了代码密度和执行效率,同时也增加了一些指令集扩展,包括支持Jazelle-DBX。
ARMv7:2004年发布,增加了基于TrustZone的安全扩展、NEON指令集扩展,支持向量浮点运算(VFPv3)等。
ARMv8:2011年发布,增加了AArch64架构,支持64位处理器,同时保留了AArch32架构,提高了性能和能耗效率。
ARMv9:2021年发布,增加了Confidential Compute Architecture(CCA)和Realms技术,提高了安全性和隔离性。
01
ARM版本I:V1版架构
该架构只在原型机ARM1出现过,有26位的寻址空间,目前未曾用于商业用途。
基本性能:
基本的数据处理指令(无乘法)
基于字节、半字节和字的Load/Store指令
转移指令,包括子程序调用及链接指令
供操作系统使用的软件中断指令SWI
寻址空间:64MB(226)
02
ARM版本II:V2版架构
V2版本架构是对V1版本架构的发展和拓展。例如ARM2和ARM3(V2a)架构,包含了对32位乘法指令和协处理器指令的支持。版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,但现在已经被废弃了。
V2版本架构在V1版本架构的基础上增加了许多新功能:
乘法和乘加指令
支持协处理器操作指令
快速中断模式
SWP/SWPB的最基本储存器和寄存器交换指令
寻址空间:64MB
03
ARM版本III:V3版架构
ARM公司设计的第一个微型处理器ARM6采用的就是V3版本,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。
虽然V3版本目前也已经废弃,但其却对ARM体系结构进行了很大的改动:
当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register)
增加了程序状态保存寄存器SPSR(Saved Program Status Register)
增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预 取中止异常和未定义指令异常。
增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器
增加了从异常处理返回的指令功能
寻址空间增至32位(4GB)
04
ARM版本IV:V4版架构
V4版本架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。V4版本架构又在V3版本架构的基础上进一步发展,不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令失常。
指令集中增加的功能:
符号化和非符号化半字及符号化字节的存/取指令
增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集
完善了软件中断SWI指令的功能
处理器系统模式引进特权方式时使用用户寄存器操作
把一些未使用的指令空间捕获为未定义指令
05
ARM版本V:V5版架构
ARM10和Xscale都采用的是V5版本架构,其又在V4版本基础上增加了一些新命令:
带有链接和交换的转移BLX指令
计数前导零CLZ指令;BRK中断指令
增加了数字信号处理指令(V5TE版)
为协处理器增加更多可选择的指令
改进了ARM/Thumb状态之间的切换效率
E----增强型DSP指令集,包括全部算法操作和16位乘法操作
J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能
06
ARM版本VI:V6版架构
V6版本架构首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。
V45版本架构有也在V5版本架构的基础上增加了许多新功能:
THUMBTM:35%代码压缩;
DSP扩充:高性能定点DSP功能;
JazelleTM:Java性能优化,可提高8倍;
Media扩充:音/视频性能优化,可提高4倍
07
ARM版本VII:V7版架构
V7版本架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的, 并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。
另外,ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。此外,ARMv7还支持改良的运行环境,迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。
08
ARM版本VIII:V8版架构
V8版本架构是在32位ARM架构上进行开发的,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMv8架构包含两个执行状态:AArch64和AArch32。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64;而AArch32执行状态将支持现有的ARM指令集。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展,如:TrustZone技术、虚拟化技术及NEON advanced SIMD技术等。
目前,基于ARM体系结构的ARM处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore和Intel公司的Xscale等多个系列。他们除了具有ARM体系结构的共同特点之外,每个系列还都有各自的特点和应用领域。
在 ARMv7 以后时期,公司改革了以前的冗长的命名方法,用看起来比较整齐的办法,统一用 Cortex 作为主名
经典处理器都是按照数字命名的,直到ARM11。也就是推出架构v7的时候,ARM公司把产品并分为三大产品线,分别是Cortex-A、Cortex-R和Cortex-M。
近两年推出的cortex-X并不是单独的产品线,它可看做cortex-A的升级版,两者的市场定位是一样的。
AEM内核(架构)版本及处理器版本
ARMv1:ARM1
ARMv2:ARM2、ARM3
ARMv3:ARM6、ARM7
ARMv4:StrongARM、ARM7TDMI、ARM9TDMI
ARMv5:ARM7EJ、ARM9E、ARM10E、XScale
ARMv6:ARM11、ARMCortex-M
ARMv7:ARMCortex-A、ARMCortex-M、ARMCortex-R
ARMv8:ARMCortex-A30、ARMCortex-A50、ARMCortex-A70
ARM指令集仍在不断发展当中。2011年,ARM发布了ARMv8架构。它包含了一些新的指令集用于64位操作。当前ARMv8架构仅限于Cortex-A处理器,Cortex-M处理器暂不包含这种架构。
指令集是指处理器能够识别并执行的指令集合。
ARM,Advanced RISC Machines,先进精简指令集机器,其中RISC是Reduced Instruction Set Computer的缩写,意为精简指令集处理器,ARM是RISC最突出的代表,其它比较有名的RISC指令集还有:MIPS,PowerPC,SPARC,RISC-V。
与RISC相对的是CISC,Complex Instruction Set Computer,复杂指令集处理器,闻名世界的X86指令集就是一种CISC指令集。
ARM指令集也是一个统称,实际上ARM指令集还分为 ARM64指令集、 ARM32指令集、THUMB指令集、THUMB-2指令集、NEON指令集、VFP指令集、DSP指令集。不同版本架构支持不同指令集。
提到的命名规则,应该分成两类。
1、基于ARM Architecture版本的“指令集架构”命名规则;
2、基于ARM Architecture版本的“处理器系列”命名规则
比如: s3c2410采用ARMv4T架构版本,ARM920T处理器系列
| ARMv | n | variants | x(variants) |
分成四个组成部分:
·ARMv -- 固定字符,即ARM Version
·n -- 指令集版本号。迄今为之,ARM架构版本发布了8个系列,所以n=[1:8]。
·variants -- 变种。
·x(variants) -- 排除x后指定的变种
常见的variants有以下字母可选:
·T -- Thumb指令集
·M -- 长乘法指令
·E -- 增强型DSP指令
·J -- Java加速器Jazelle
·SIMD -- ARM媒体功能扩展
比如:ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种
2.1 在 ARMv3 ~ ARMv6 时期
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
·x -- 处理器系列
·y -- 存储管理/保护单元
·z -- cache
·T -- 支持Thumb指令集
·D -- 支持片上调试
·M -- 支持快速乘法器
·I -- 支持Embedded ICE,支持嵌入式跟踪调试
·E -- 支持增强型DSP指令
·J -- 支持Jazelle
·F -- 具备向量浮点单元VFP
·-S -- 可综合版本
比如:ARM926, 属于ARMv5指令集架构的,CPU是 ARM9系列的,
2个存储管理/保护单元,6个 Cache【?不确定】
2.2 在 ARMv7 以后时期
公司改革了以前的冗长的命名方法,用看起来比较整齐的办法,统一用 Cortex 作为主名。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。