原创 嵌入式微处理器体系结构

2009-2-26 10:20 3361 7 7 分类: MCU/ 嵌入式

嵌入式微处理器体系结构


n      ·诺依曼(Von Neumann)结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。


CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费几个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。


目前使用冯.诺依曼结构的CPU和微控制器品种有很多,例如Intel公司的8086系列及其他CPUARM公司的ARM7MIPS公司的MIPS处理器等。


n      哈佛(Harvard)结构


哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统中具有程序的数据总线与地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高执行速度,提高数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠,具有较高的执行效率。


目前使用哈佛结构的CPU和微控制器品种有很多,除DSP处理器外,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9ARM10ARM11


n        精简指令集计算机


早期的计算机采用复杂指令集计算机(Complex Instruction Set ComputerCISC)体系,例如Intel公司的X86系列CPU,从8086Pentium系列,采用的都是典型的CISC体系结构。


n      精简指令集计算机(Reduced Instruction Set ComputerRISC)体系结20世纪80年代提出来的。目前IBMDECIntelMotorola等公司都在研究和发展RISC技术,RISC已经成为当前计算机发展不可逆转的趋势。


RISC是在CISC的基础上产生并发展起来的,RISC的着眼点不是简单地放在简化指令系统上,而是通过简化指令系统使计算机的结构更加简单合理,从而提高运算效率。在RISC中,优先选取使用频率最高的、很有用但不复杂的指令,避免使用复杂指令;固定指令长度,减少指令格式和寻址方式种类; 指令之间各字段的划分比较一致,各字段的功能也比较规整;采用Load/Store指令访问存储器,其余指令的操作都在寄存器之间进行;增加CPU中通用寄存器数量,算术逻辑运算指令的操作数都在通用寄存器中存取;大部分指令控制在一个或小于一个机器周期内完成;以硬布线控制逻辑为主,不用或少用微码控制;采用高级语言编程,重视编译优化工作,以减少程序执行时间


n      流水线的基本概念


流水线技术应用于计算机系统结构的各个方面,流水线技术的基本思想是将一个重复的时序分解成若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。


在流水线技术中,流水线要求可分成若干相互联系的子过程,实现子过程的功能所需时间尽可能相等。形成流水处理,需要一段准备时间。指令流发生不能顺序执行时,会使流水线过程中断,再形成流水线过程则需要时间。


指令流水线就是将一条指令分解成一连串执行的子过程,例如把指令的执行过程细分为取指令、指令译码、取操作数和执行4个子过程。在CPU中把一条指令的串行执行子过程变为若干条指令的子过程在CPU中重叠执行。如果能做到每条指令均分解为m个子过程,且每个子过程的执行时间都一样,则利用此条流水线可将一条指令的执行时间T由原来的T缩短为T/m


n      大端和小端存储法


大多数计算机使用8位(bit)的数据块做为最小的可寻址的存储器单位,称为一个字节。存储器的每一个字节都用一个唯一的地址(address)来标识。所有可能地址的集合称为存储器空间。


对于软件而言,它将存储器看作一个大的字节数组,称为虚拟存储器。在实际应用中,虚拟存储器可以划分成的不同单元,用来存放程序、指令和数据等信息。


在微处理器中,使用一个字长(word)表明整数和指令数据的大小。字长决定了微处理器的寻址能力,即虚拟地址空间的大小。对于一个字长为n位的微处理器,它的虚拟地址范围为02nl。例如一个32位的微处理器,可访问的虚拟地址空间为232,即4GB


微处理器和编译器使用不同的方式来编码数据,如不同长度的整数和浮点数,从而支持多种数据格式。以C语言为例,它支持整数和浮点数等多种数据格式。


对于一个多字节类型的数据,在存储器中有两种存放方法。一种是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法;另一种是高字节数据存放在低地址处,低字节数据存放在高地址处,称为大端字节顺序存储法。例如,假设一个32位字长的微处理器上定义一个int类型的常量a,其内存地址位于0x6000处,其值用十六进制表示为0x23456789。如图<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.2.2a)所示,如果按小端法存储,则其最低字节数据0x89存放在内存低地址0x6000处,最高字节数据0x23存放在内存高地址0x6003处。如图1.2.2b)所示,如果按大端法存储,则其最高字节数据0x23存放在内存的低地址0x6000处,而最低字节数据0x89存放在内存的高地址0x6003处。


n      可移植性问题


当在不同存储顺序的微处理器间进行程序移植时,要特别注意存储模式的影响。把从软件得到的二进制数据写成一般的数据格式往往会涉及到存储顺序的问题。


在多台不同存储顺序的主机之间共享信息可以有两种方式:一种是以单一存储方式共享数据,一种是允许主机以不同的存储方式共享数据。使用单一存储顺序只要解释一种格式,解码简单。使用多种存储方式不需要对数据的原顺序进行转化,使得编码容易,同时当编码器和解码器采用同一种存储方式时因为不需要变换字节顺序,也能提高通信效率。


n      通信中的存储顺序问题


在网络通信中,Internet协议(即IP协议)定义了标准的网络字节顺序。该字节顺序被用于所有设计使用在IP协议上的数据包、高级协议和文件格式上。


很多网络设备也存在存储顺序问题:即字节中的位采用大端法(最重要的位优先)或小端法(最不重要的位优先)发送。这取决于OSI模型最底层的数据链路层。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条