第三章CPU相关知识.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
直接映射cache(续) After 011 access: block tag data 00 - - 01 0 1111 10 0 0000 11 0 0110 After 100 access: block tag data 00 1 1000 01 0 1111 10 0 0000 11 0 0110 直接映射cache(续) After 101 access: block tag data 00 1 1000 01 1 0001 10 0 0000 11 0 0110 After 111 access: block tag data 00 1 1000 01 1 0001 10 0 0000 11 1 0100 2-路组相联cache Cache的最后状态 (2个大小的直接映射的cache): set blk 0 tag blk 0 data blk 1 tag blk 1 data 00 1 1000 - - 01 0 1111 1 0001 10 0 0000 - - 11 0 0110 1 0100 基于缓冲区的输出中断子例程 void output_handler() { if (!empty_buffer()){ poke(OUT_DATA, remove_char()); poke(OUT_STATUS,1); } } * 调试中断代码 若忘记改变寄存器的内容 前台程序会展示一些非常奇怪的错误 错误很难重现---它依赖与中断的时间 * 如何发现中断 在开始执行每条指令之前检查中断请求信号是否有中断请求 一旦出现中断,PC将指向中断服务子例程 注意:要保护和恢复现场 * 中断优先级和中断向量 两种机制允许中断处理更多的设备 优先级(Priorities):确定哪种中断首先获得CPU 向量(Vectors): 允许中断设备制定其中断服务子例程 大多数CPU这两种方式都支持 * 具有优先级的中断 ---序号小的优先级高 CPU device 1 device 2 device n L1 L2 .. Ln interrupt acknowledge * 使用轮询让几个设备共享一个中断 * 中断的优先级 Masking(屏蔽): 发生中断的优先级比正在中断的优先级低,CPU将不响应该优先级低的中断。 Nonmaskable interrupt (NMI,不可屏蔽中断): 最高优先级,永不屏蔽 电源故障 * 中断向量 不同的设备有不同的中断服务子例程 中断向量表 handler 0 handler 1 handler 2 handler 3 Interrupt vector table head * 一般的中断机制 intr? N Y 假设优先级的选择已经处理. N ignore Y vector? Y Y N timeout? Y bus error call table[vector] intr priority current priority? continue execution N * ack 中断开销 中断服务子例程执行的时间 中断机制的开销 寄存器存储/恢复 流水相关补偿 Cache相关补偿 * ARM 中断 ARM支持两类中断 快速中断请求 (FIQs). 中断请求 (IRQs). 中断表开始地址:0. * ARM 最坏延迟 27个时钟周期 2周期同步外部请求 最多20周期完成当前指令 3周期的数据异常终止 2周期进入中断处理状态 * 管态 通过 SWI 指令进入 SWI CODE_1 在中断向量表中的地址: 0x08. 进入管理模式 将CPSR 存储到 SPSR. * 异常(Exception) 内部检测到的错误 与指令是同步的,但它是不可预料的 通常是内部产生的 有多种异常,处理的方法与中断类似,有优先级和向量表 * Trap(陷阱) 又叫软中断(software interrupt): 由指令产生的异常,然后进入管态 ARM 通过SWI 指令进入软件中断 * 协处理器(Co-processor) 增加一些功能单元,可以通过指令来调用 浮点单元通过协处理器完成的 ARM允许有16个协处理器 浮点数处理是用协处理器编号为1和2的 * Caches 和 CPUs CPU cache controller cache main memory data data address data address * Cache操作 主存被映射到cache中. Caches类型: 指令caches; 数据caches; 指令cac

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档