冯·若依曼结构和哈佛结构及ARM架构介绍

发布于 2014-10-31  2.04k 次阅读


计算机体系结构分类

两种典型的结构 :

  • 冯·诺依曼结构
  • 哈佛体系结构

    冯·诺依曼结构

    冯·诺依曼机:将数据和指令都存储在存储器中的计算机。 计算系统由一个中央处理单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。因此程序指令和数据的宽度相同;如:Intel 8086、ARM7、MIPS处理器等。

哈佛体系结构

哈佛机:为数据和程序提供了各自独立的存储器。程序计数器只指向程序存储器而不指向数据存储器,这样做的后果是很难在哈佛机上编写出一个自修改的程序 。独立的程序存储器和数据存储器为数字信号处理提供了较高的性能指令和数据可以有不同的数据宽度;具有较高的效率;如摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ARM10系列等ARM 7使用冯·诺依曼体系结构。ARM 9使用哈佛体系结构。

ARM公司简介

ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 1985年第一个ARM原型在英国剑桥诞生。

公司的特点是只设计芯片,而不生产。它提供ARM技术知识产权(IP)核,将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。有ARM7/ARM9等多个版本。除了一些Unix图形工作站外,大多数ARM核心的处理器都使用在嵌入领域。

ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

ARM处理器的应用

到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额。全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器。掌上计算”相关的所有领域皆为其所主宰。

主要应用:消费类电子,无线、图像应用开放平台、存储、自动化、智能卡、SIM卡等。

ARM处理器的三大特点:耗电少功能强、16位/32位双指令集、众多合作伙伴

ARM体系结构版本
ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。
为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1~V6表示

ARM版本 V1版架构
该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。
其基本性能有:
基本的数据处理指令(无乘法);
基于字节、半字和字的Load/Store指令;
转移指令,包括子程序调用及链接指令;
供操作系统使用的软件中断指令SWI;
寻址空间:64MB(226)。

ARM版本 V2版架构
该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。
版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。
V2版架构与版本V1相比,增加了以下功能:
乘法和乘加指令;
支持协处理器操作指令;
快速中断模式;
SWP/SWPB的最基本存储器与寄存器交换指令;
寻址空间:64MB。

ARM版本 V3版架构
ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。
变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。
V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:

寻址空间增至32位(4GB);
当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);
增加了程序状态保存寄存器SPSR(Saved Program Status Register);
增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;
增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;
增加了从异常处理返回的指令功能。

ARM版本 V4版架构
V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。
V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。
指令集中增加了以下功能:
符号化和非符号化半字及符号化字节的存/取指令;
增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
完善了软件中断SWI指令的功能;
处理器系统模式引进特权方式时使用用户寄存器操作;
把一些未使用的指令空间捕获为未定义指令

ARM版本 V5版架构
V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。
这些新增命令有:
带有链接和交换的转移BLX指令;
计数前导零CLZ指令;
BRK中断指令;
增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令;
改进了ARM/Thumb状态之间的切换效率;
E---增强型DSP指令集,包括全部算法操作和16位乘法操作;
J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

ARM版本 V6版架构
V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体 处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。
此架构在V5版基础上增加了以下功能:
THUMBTM:35%代码压缩;
DSP扩充:高性能定点DSP功能;
JazelleTM:Java性能优化,可提高8倍;
Media扩充:音/视频性能优化,可提高4倍

ARM处理器系列
ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11。
ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列。
每一个系列提供一套相对独特的性能来满足不同应用领域的需求。
ARM7系列
ARM9系列
ARM9E系列
ARM10E系列
ARM11系列
SecurCore系列
Intel的Xscale
Intel的StrongARM

ARM7微处理器系列
低功耗的32位RISC处理器,·诺依曼结构。极低的功耗,适合便携式产品。
具有嵌入式ICE-RT逻辑,调试开发方便。
3级流水线结构。能够提供0.9MIPS的三级流水线结构
代码密度高,兼容16位的Thumb指令集。
对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。
指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。
主频最高可达130MIPS。
主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。
ARM7TDMI微处理器
4种类型:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。

ARM7TDMI内部结构
组成:处理器核、用于边界扫描的TAP控制器、在线仿真器ICE。
双向数据总线D[31:0]被分割成单向输入和输出总线,以便于与外部存储器兼容。

ARM7TDMI的模块和内核框图

ARM7TDMI功能信号图

ARM9微处理器系列
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。
5级整数流水线,
哈佛体系结构。

支持32位ARM指令集和16位Thumb指令集。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
主要应用:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。
3种类型:ARM920T、ARM922T和ARM940T。

ARM9E微处理器系列
单一处理器内核提供微控制器、DSP、Java应用系统的解决方案。
支持DSP指令集。
5级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP9浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
MPU支持实时操作系统。
支持数据Cache和指令Cache,
主频最高可达300MIPS。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。
3种类型:ARM926EJ-S、ARM946E-S和ARM966E-S。

ARM10E微处理器系列
与同等的ARM9比较,在同样的时钟频率下,性能提高了近50%,功耗极低。
支持DSP指令集。
6级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP10浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache。
主频最高可达400MIPS。
内嵌并行读/写操作部件。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。
3种类型:ARM1020E、ARM1022E和ARM1026EJ-S。

SecurCore微处理器系列
专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。
灵活的保护单元,以确保操作系统和应用数据的安全。
采用软内核技术,防止外部对其进行扫描探测。
可集成用户自己的安全特性和其他协处理器。
主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。
4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。

Xscale处理器
基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。
支持16位的Thumb指令和DSP指令集。
已使用在数字移动电话、个人数字助理和网络产品等场合。
Xscale处理器是Intel目前主要推广的一款ARM微处理器

ARM系列流水线比较

ARM系列性能比较

ARM处理器结构
ARM和Thumb状态
RISC技术
流水线技术
超标量技术

ARM和Thumb状态
V4版以后有:
(1)32位ARM指令集
(2)16位Thumb指令集,功能是ARM指令集的功能子集。
ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态:
(1)ARM状态
(2)Thumb状态。
当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;
当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态

Thumb技术介绍
ARM7体系结构被广泛应用的时候,嵌入式控制器的市场仍然由8位、16位处理器占领。这些产品不能满足高端应用。这些应用需要32位RISC处理器的性能和更优于16位CISC处理器的代码密度。
为了解决代码密度的问题,ARM增加了T变种。
Thumb从32位ARM指令集中抽出来的36条指令格式,可重新编成16位的操作码。
在运行时,16位的Thumb指令又由处理器解压成32位指令。
Thumb核有2套独立的指令集,它使设计者得到ARM32位指令性能的同时,又能享有Thumb指令集产生的代码方面的优势,在性能和代码大小之间取得平衡。
和ARM指令集相比,Thumb指令集具有以下的局限:
完成相同的操作,Thumb指令通常需要更多的指令,因此在对系统运行时间要求苛刻的场合,ARM指令集更为合适。
Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需要使用ARM指令,这种限制决定了Thumb指令需要与ARM指令配合使用。

ARM与Thumb状态转换
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且该转变不影响处理器的工作模式和相应寄存器中的内容。
进入Thumb状态:当操作数寄存器的状态位(位[0])为1时,执行BX指令。
进入ARM状态:当操作数寄存器的状态位(位[0])为0时,执行BX指令。


公交车司机终于在众人的指责中将座位让给了老太太