嵌入式系统——ARM Cortex-A8体系结构

第2章 ARM Cortex-A8体系结构

1.ARM微处理器

采用RISC架构的ARM微处理器一般具有如下特点:

1)体积小、低功耗、低成本、高性能;

2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3)大量使用寄存器,指令执行速度更快;

4)大多数数据操作都在寄存器中完成;

5)寻址方式灵活简单,执行效率高;

6)指令长度固定。

2. ARM内核基本版本


3. 各ARM体系结构版本

1)V1

该版本的ARM体系结构,只有26位的寻址空间,无商业化,其特点为:

a)基本的数据处理指令(不包括乘法);

b)字节、字和半字加载/存储指令;

c)具有分支指令,包括在子程序调用中使用的分支和链接指令;

d)在操作系统调用中使用的软件中断指令;

e)寻址空间:64MB。

2)V2

该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进:

a)具有乘法和乘加指令;

b)支持协处理器;

c)快速中断模式中的两个以上的分组寄存器;

d)具有原子性加载/存储指令SWP和SWPB;

e)寻址空间:64MB。

3) V3

ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6,其主要特点有:

a)寻址范围扩展到32位(4GB);

b)具有MMU、写缓冲;

c)分开的当前程序状态寄存器(CPSR)和备份的程序状态寄存器(SPSR);

d)增加了两种异常模式,可方便地使用数据访问中止异常、指令预取中止异常、未定义指令异常;

e)增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;

f)修改了原来从异常中返回的指令。

4)V4—目前ARM7、ARM9核应用最广泛

第一个具有全部正式定义的结构版本,版本4T,引入了Thumb压缩形式指令集,不再为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本做可以下的改进:

a)符号化和非符号化半字及符号化字节的存/取指令;

b)处理器可工作在Thumb状态,增加了16位Thumb指令集;

c)完善了软件中断SWI指令的功能;

d) 处理器系统模式引进特权方式时使用用户寄存器操作;

e)把一些未使用的指令空间捕获为未定义指令。

5)V5—ARM10 、Xscale核使用

在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并增加了指令,具体如下:

a)改进了ARM/Thumb状态之间的切换效率;

b)允许非T变量和T变量一样,使用相同的代码生成技术;

c)增加计数前导零指令和软件断点指令;

d)对乘法指令如何设置标志作了严格的定义;

e)增加了数字信号处理指令(V5TE版);

f)降低耗电量、强化图形处理性能,支持多微处理器内核。

6)V6—ARM11支持

    V6是2001年发布的。新架构V6在降低耗电量的同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图象的处理功能提高到了原机型的4倍。

    此架构在V5版基础上增加了以下功能:

a)Thumb :35%代码压缩;

b)DSP扩充:高性能定点DSP功能;

c)JazelleTM:Java性能优化,可提高8倍;

d)Media扩充:音/视频性能优化,可提高4倍。

7)V7—Cortex内核使用

ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。

Cortex-M、Cortex-R、Cortex-A

4.ARM微处理器系列

• ARM7系列

• ARM9系列

• ARM9E系列

• ARM10E系列

• SecurCore系列

• Inter的Xscale

• Inter的StrongARM

• Cortex系列处理器

1) ARM7

该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。

ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备、以及移动电话、数字相机、打印机、PDA等设备。

2) ARM9

该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。

ARM9系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、汽车、通信和信息系统等领域。

3) ARM10

该系列包括ARM1020和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。

可以用于视频游戏机和高性能打印机等场合。

4) SecurCore

该系列涵盖了SC100、SC110、SC200和SC210处理器核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。

5) Xscale

  IntelXscale微控制器Intel Pentium技术实现,与ARM V5兼容的嵌入式微处理器构架。它提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。

Xscale 体系结构微控制器主频可高达1GHz,其设计目标是“面向特定应用的标准产品”,目前已经广泛用于移动电话、PDA 及网络设备中。

6) ARM11

    ARM11系列微处理器是ARM公司2002年推出的新一代RISC处理器,它是ARMv6指令架构的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。ARM11内核适合新一代消费类电子、无线设备、网络应用和汽车电子产品等需求。

7) Cortex

    Cortex系列处理器发布于2004年,是基于ARMv7架构的,分为Cortex-M、Cortex-R和Cortex-A三类。最早的型号是Cortex-M3;Cortex-A8内核于2005年10月4日发布,随后ARM在2006年5月15日发布了Cortex-R4内核。这三款内核分别面向不同的领域,移动智能终端上使用的绝大多数为Cortex-A8内核。Cortex-A8不支持多核架构,多核超标量内核为Cortex-A9; 2011年初,ARM Cortex-A15内核发布,主要是针对多核进行了优化。

5.ARM微处理器结构

1) RISC型处理器结构

    结构简单、处理速度快、处理功能强。

    70%的工作由30%的指令完成;

    ARM Load/Store结构。     

2) Thumb指令集

   16位指令集具有更好的代码密度,而芯片面积仅仅增加6%,可是程序存储器更小。

3) 多处理器状态模式

   ARM可以支持用户、快中断、中断、管理、中止、系统和未定义等七种处理器模式,可以使用多种高端应用领域。

4)寄存器结构

   独有的分组寄存器结构。

5)嵌入式在线仿真调试

   ARM架构的处理器芯片都嵌入了在线仿真逻辑,便于通过了JTAG来仿真调试ARM架构芯片。

6)灵活和方便的接口

   ARM架构具有协处理器接口,这样,既可以使基本的ARM处理器内核尽可能小,又可能方便地扩充各种功能。

7)低电压低功耗的设计  

8)降低电源电压,时钟频率等

6.Cortex-A8内核结构


7.Samsung S5PV210微处理器简介


8.Samsung S5PV210开发环境

1)RVDS   

    常用的ARM 的开发环境有ADS1.2 、RVDS(RealView Developer Suite)、MDK、IAR、DS-5 和一些开源的开发环境。其中RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具。RVDS集成的RVCT是业内公认的能够支持所有ARM处理器,并提供最好的执行性能的编译器。

    RVDS向硬件设备的设计者提供多核调试、应用与所有的ARM处理器的代码产生和Cortex CPU的配置等功能,并提供了到达第三方元件的接口(如ARM ESL tools)。RVDS包含有四个模块:IDE、RVCT、RVD和RVISS。

2)Eclipse for ARM开发环境

Eclipse集成开发环境是一个开源的IDE平台,其以强大的可扩展性而著称,传统的IDE公司很多已转向Eclipse平台,在此平台上开发自己的插件,然后包装销售。Eclipse是基于Java的可扩展开发平台,在Eclipse上不仅可以开发Java项目,也可以开发C项目。Eclipse能够管理和编辑项目源代码和文档,并不提供编译和连接工具,但是却为编译和连接工具留有接口。

Eclipse forARM  是借用开源软件的Eclipse的工程管理工具,嵌入GNU工具集,使之能够开发ARM 公司Cortex-A系列的CPU。YAGARTO(Yet another GNU ARM toolchain)是一个跨平台的GNU ARM开发工具链,可以作为 Eclipse 的插件使用。


第2章 ARM Cortex-A8体系结构

1.ARM微处理器

采用RISC架构的ARM微处理器一般具有如下特点:

1)体积小、低功耗、低成本、高性能;

2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3)大量使用寄存器,指令执行速度更快;

4)大多数数据操作都在寄存器中完成;

5)寻址方式灵活简单,执行效率高;

6)指令长度固定。

2. ARM内核基本版本


3. 各ARM体系结构版本

1)V1

该版本的ARM体系结构,只有26位的寻址空间,无商业化,其特点为:

a)基本的数据处理指令(不包括乘法);

b)字节、字和半字加载/存储指令;

c)具有分支指令,包括在子程序调用中使用的分支和链接指令;

d)在操作系统调用中使用的软件中断指令;

e)寻址空间:64MB。

2)V2

该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进:

a)具有乘法和乘加指令;

b)支持协处理器;

c)快速中断模式中的两个以上的分组寄存器;

d)具有原子性加载/存储指令SWP和SWPB;

e)寻址空间:64MB。

3) V3

ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6,其主要特点有:

a)寻址范围扩展到32位(4GB);

b)具有MMU、写缓冲;

c)分开的当前程序状态寄存器(CPSR)和备份的程序状态寄存器(SPSR);

d)增加了两种异常模式,可方便地使用数据访问中止异常、指令预取中止异常、未定义指令异常;

e)增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;

f)修改了原来从异常中返回的指令。

4)V4—目前ARM7、ARM9核应用最广泛

第一个具有全部正式定义的结构版本,版本4T,引入了Thumb压缩形式指令集,不再为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本做可以下的改进:

a)符号化和非符号化半字及符号化字节的存/取指令;

b)处理器可工作在Thumb状态,增加了16位Thumb指令集;

c)完善了软件中断SWI指令的功能;

d) 处理器系统模式引进特权方式时使用用户寄存器操作;

e)把一些未使用的指令空间捕获为未定义指令。

5)V5—ARM10 、Xscale核使用

在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并增加了指令,具体如下:

a)改进了ARM/Thumb状态之间的切换效率;

b)允许非T变量和T变量一样,使用相同的代码生成技术;

c)增加计数前导零指令和软件断点指令;

d)对乘法指令如何设置标志作了严格的定义;

e)增加了数字信号处理指令(V5TE版);

f)降低耗电量、强化图形处理性能,支持多微处理器内核。

6)V6—ARM11支持

    V6是2001年发布的。新架构V6在降低耗电量的同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图象的处理功能提高到了原机型的4倍。

    此架构在V5版基础上增加了以下功能:

a)Thumb :35%代码压缩;

b)DSP扩充:高性能定点DSP功能;

c)JazelleTM:Java性能优化,可提高8倍;

d)Media扩充:音/视频性能优化,可提高4倍。

7)V7—Cortex内核使用

ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。

Cortex-M、Cortex-R、Cortex-A

4.ARM微处理器系列

• ARM7系列

• ARM9系列

• ARM9E系列

• ARM10E系列

• SecurCore系列

• Inter的Xscale

• Inter的StrongARM

• Cortex系列处理器

1) ARM7

该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。

ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备、以及移动电话、数字相机、打印机、PDA等设备。

2) ARM9

该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。

ARM9系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、汽车、通信和信息系统等领域。

3) ARM10

该系列包括ARM1020和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。

可以用于视频游戏机和高性能打印机等场合。

4) SecurCore

该系列涵盖了SC100、SC110、SC200和SC210处理器核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。

5) Xscale

  IntelXscale微控制器Intel Pentium技术实现,与ARM V5兼容的嵌入式微处理器构架。它提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。

Xscale 体系结构微控制器主频可高达1GHz,其设计目标是“面向特定应用的标准产品”,目前已经广泛用于移动电话、PDA 及网络设备中。

6) ARM11

    ARM11系列微处理器是ARM公司2002年推出的新一代RISC处理器,它是ARMv6指令架构的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。ARM11内核适合新一代消费类电子、无线设备、网络应用和汽车电子产品等需求。

7) Cortex

    Cortex系列处理器发布于2004年,是基于ARMv7架构的,分为Cortex-M、Cortex-R和Cortex-A三类。最早的型号是Cortex-M3;Cortex-A8内核于2005年10月4日发布,随后ARM在2006年5月15日发布了Cortex-R4内核。这三款内核分别面向不同的领域,移动智能终端上使用的绝大多数为Cortex-A8内核。Cortex-A8不支持多核架构,多核超标量内核为Cortex-A9; 2011年初,ARM Cortex-A15内核发布,主要是针对多核进行了优化。

5.ARM微处理器结构

1) RISC型处理器结构

    结构简单、处理速度快、处理功能强。

    70%的工作由30%的指令完成;

    ARM Load/Store结构。     

2) Thumb指令集

   16位指令集具有更好的代码密度,而芯片面积仅仅增加6%,可是程序存储器更小。

3) 多处理器状态模式

   ARM可以支持用户、快中断、中断、管理、中止、系统和未定义等七种处理器模式,可以使用多种高端应用领域。

4)寄存器结构

   独有的分组寄存器结构。

5)嵌入式在线仿真调试

   ARM架构的处理器芯片都嵌入了在线仿真逻辑,便于通过了JTAG来仿真调试ARM架构芯片。

6)灵活和方便的接口

   ARM架构具有协处理器接口,这样,既可以使基本的ARM处理器内核尽可能小,又可能方便地扩充各种功能。

7)低电压低功耗的设计  

8)降低电源电压,时钟频率等

6.Cortex-A8内核结构


7.Samsung S5PV210微处理器简介


8.Samsung S5PV210开发环境

1)RVDS   

    常用的ARM 的开发环境有ADS1.2 、RVDS(RealView Developer Suite)、MDK、IAR、DS-5 和一些开源的开发环境。其中RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具。RVDS集成的RVCT是业内公认的能够支持所有ARM处理器,并提供最好的执行性能的编译器。

    RVDS向硬件设备的设计者提供多核调试、应用与所有的ARM处理器的代码产生和Cortex CPU的配置等功能,并提供了到达第三方元件的接口(如ARM ESL tools)。RVDS包含有四个模块:IDE、RVCT、RVD和RVISS。

2)Eclipse for ARM开发环境

Eclipse集成开发环境是一个开源的IDE平台,其以强大的可扩展性而著称,传统的IDE公司很多已转向Eclipse平台,在此平台上开发自己的插件,然后包装销售。Eclipse是基于Java的可扩展开发平台,在Eclipse上不仅可以开发Java项目,也可以开发C项目。Eclipse能够管理和编辑项目源代码和文档,并不提供编译和连接工具,但是却为编译和连接工具留有接口。

Eclipse forARM  是借用开源软件的Eclipse的工程管理工具,嵌入GNU工具集,使之能够开发ARM 公司Cortex-A系列的CPU。YAGARTO(Yet another GNU ARM toolchain)是一个跨平台的GNU ARM开发工具链,可以作为 Eclipse 的插件使用。


猜你喜欢

转载自blog.csdn.net/Eleanor_12/article/details/53700406
今日推荐