嵌入式系统的基础知识剖析.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统的基础知识 对于一台内存为256M的32bit x86主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x000000000~0x0FFFFFFF(256M)。 存储器结构 哈佛结构:程序存储器和数据存储器是相互独立的,使用各自不同的总线进行访问. 冯*诺依曼(Von Neumann)结构:程序存储器和数据存储器合二为一,使用同样的总线进行访问. 流水线技术 流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m均使用了6步流水线结构,流水线的6步为: ( 1 ) 取指令。C P U从高速缓存或内存中取一条指令。 ( 2 ) 指令译码。分析指令性质。 ( 3 ) 地址生成。很多指令要访问存储器中的操作数,操作数的地址也许在指令字中,也许要经过某些运算得到。 ( 4 ) 取操作数。当指令需要操作数时,就需再访问存储器,对操作数寻址并读出。 ( 5 ) 执行指令。由A L U执行指令规定的操作。 ( 6 ) 存储或写回结果。最后运算结果存放至某一内存单元或写回累加器A。 ARM7 三级流水线 ARM9五级流水线 Arm9的流水线分为:取值,译码,执行,访存,回写 取值 ?从指令存储器取指令 ? 译码 ?读取寄存器操作数 ? 执行 ?产生ALU运算结果或产生存储器地址 ? 访存 ?访问数据存储器 ? 回写 ?完成结果写寄存器 ARM10 六级流水线 取值,发射,译码,执行,访存,回写 但是随着流水线深度的增加,指令的吞吐量提高了,每一段的工作量被消减了,使得处理器可以工作在更高的频率,同时也改善了性能,但系统延时 (latency) 也增加了,这是因为在内核执行一条指令前,需要更多的周期来填充流水线。并且,时钟频率的增加,指令执行周期也相应缩减了,这就要求减小指令执行周期的时间,也就对硬件设计带来了更大的要求。所以,流水线深度并不是越深越好。 对指令执行的几种方式 1)顺序执行 (传统机采用) 只有在前一条指令的各过程段全部完成后,才从存储器取出下一条指令 2) 仅两条指令重叠:第i条指令的执行与第i+1条的取指重叠。 3) 三条指令重叠:第i条指令的执行与第i+1条的译码及第i+2条的取指重叠。 若一条指令的过程段划分更多时,重叠组合方式更多。 超流水线技术:流水线超过5~6步以上。 超标量技术:指在CPU中有一条以上的流水线。 相关 1 何谓相关:在重叠方式的指令执行过程中,由于发生了某种关联,使正在被解释的指令无法再继续下去的现象,称相关。 2 相关类型 1)从性质上分 ①指令相关:重新修改了正在被解释的指令 ②数相关:因等待前面指令执行的结果,使后面指令等待不能连续解释。 如:S=a/b+c LD R , A DIV R , B ADD R , C;要等DIV结果 ST R , S;存结果 转移 解决方法 乱序执行:解决相关问题,即在两条指令中插入不相关的指令。 分支预测技术:解决条件转移。 CISC与RISC的数据通道 CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令: MUL ADDRA, ADDRB 将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。今天只有Intel及其兼容CPU还在使用CISC架构。 RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如: MOV A, ADDRA; MOV B, ADDRB; MUL A

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档