




已阅读5页,还剩108页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章CPU 要点 输入 输出机制管态 异常和陷阱内存管理和地址翻译高速缓存体系结构如何影响程序性能体系结构如何影响程序功能 3 1输入 输出编程 ARM地址空间 232字节单元 地址空间范围 0 232 1 230个32位字单元 地址可被4整除 如地址为A 则字内容有A A 1 A 2 A 3字节组成 231个16位半字单元 存储器映射的I O空间 读取I O空间存储单元 连续读取数据可能不同 I O空间写缓冲 写入缓冲 造成假象 ARM存储映射示例 示例 UART8251 起始位 0 数据位 5 8 结束位 1 串口参数 波特率 数据位发送频率 位传输时间倒数每个字符位数 5 8 是否包含校验位 奇校验或偶校验结束位长度 1 1 5 2位 TransmitterReady 发送器准备好可以接收一个字符TransmitterEmpty 发送器空 没有字符需要发送ReceiverReady 已准备好字符可以让CPU读取 UART信号 UART CPU 远端 TransmitterEmpty ReceiverReady TransmitterReady ReceiverEmpty X86的串口 COM1 RBR 接收数据缓冲寄存器 TRH 发送保持寄存器 0 x2F8 IER 中断使能寄存器 0 x2FA LCR 线路控制寄存器 0 x2FB MCR 调制解调器控制寄存器 0 x2FC IIR 中断识别寄存器 0 x2FA 内存映射I O 汇编 ARMI O DEV1EQU0 x1000LDRr1 DEV1LDRr0 r1 ReadDEV1LDRr0 8STRr0 r1 WritetoDEV1 SHARCI OI0 0 x400000M0 0R1 DM I0 M0 R1 0DM I0 M0 R1 内存映射I O C INPUT intpeek char location return location defineDEV10 x1000 dev status peek DEV1 OUTPUT voidpoke char location charnewval location newval poke DEV1 8 轮询方式I O 示例3 3 忙等I O defineOUT CHAR0 x1000 defineOUT STATUS0 x1001char mystring Hello world char current char current char mystring while current char 0 poke OUT CHAR current char while peek OUT STATUS 0 current char 示例3 4 忙等将字符从输入设备复制到输出设备 defineIN DATA0 x1000 defineIN STATUS0 x1001 defineOUT DATA0 x1100 defineOUT STATUS0 x1101while TRUE while peek IN STATUS 0 achar char peek IN DATA poke OUT DATA achar poke OUT STATUS 1 while peek OUT STATUS 0 3 1 1中断机制 中断术语 中断处理程序 ISR 设备驱动程序 处理中断服务的例程 中断切换 保留当前程序执行时的环境 PC值 状态寄存器 数据寄存器等 以便中断服务结束时程序能返回到被中断的程序 中断信号 CPU和I O设备之间的控制接口信号中断请求信号 需要CPU服务时 中断应答信号 CPU准备处理I O设备中断请求时 前台程序 没有中断时运行的程序 中断方式I O 示例3 5使用基本中断将字符从输入设备复制到输出设备voidinput hander achar peek IN DATA gotchar TRUE poke IN STATUS 0 voidoutput hander main while TRUE if gotchar poke OUT DATA achar poke OUT STATUS 1 gotchar FALSE 循环缓冲区 循环缓冲区 defineBUF SIZE8chario buf BUF SIZE intbuf head 0 buf tail 0 interror 0 voidempty buffer buf head buf tail voidfull buffer buf tail 1 BUF SIZE buf head intnchars if buf head buf tail returnbuf tail buf head elsereturnBUF SIZE buf tail buf head voidadd char charachar io buf buf tail achar if buf tail BUF SIZE buf tail 0 charremove char charachar achar io buf buf head if buf head BUF SIZE buf head 0 示例3 6用中断和缓冲区将字符从输入设备复制到输出设备 defineIN DATA0 x1000 deifneIN STATUS0 x1001voidinput handler charachar if full buffer error 1 else achar peek IN DATA add char achar poke IN STATUS 0 if nchars 1 poke OUT DATA remove char poke OUT STATUS 1 defineOUT DATA0 x1100 defineOUT STATUS0 x1101voidoutput handler if empty buffer poke OUT DATA remove char poke OUT STATUS 1 中断程序调试 难题 中断服务发生的时机不确定 中断服务程序与前台程序处于多道程序中 彼此没有固定的处理顺序 中断服务程序 ISR 中断服务以子程序的形式机制 栈管理 与子程序调用共享一个栈 或单独一个栈 设备驱动程序ISR 驱动程序提供应用程序和实际设备之间的软件层 驱动程序方便设备的使用 对设备的访问不是直接进行的 而是首先将设备中断 然后执行相应的驱动例程 使用驱动程序前 需要打开设备 并初始化设备 并在完成时关闭 中断处理机构 中断优先级 让CPU辨别中断重要性中断向量 灵活设定中断处理程序 带优先级的设备中断 中断优先级 多台设备连到中断线路上 高优先级中断服务时 不被低中断优先级中断打断 发生高优先级中断时 当前低优先级中断被嵌套 相同优先级中断 利用轮询与优先级结合处理更多设备 中断优先级的修改 硬件线路 中断屏蔽寄存器优先级管理 中断优先级可以通过软件进行调整 或者多个设备共享一条中断请求线 而由软件查询获得具体的设备 多个设备共享一个中断处理程序 中断优先级 设备1 设备2 设备3 L1L2 LnCPU 示例 带优先级中断I O 中断请求 B C A B A B 前台任务 A B C 中断屏蔽 屏蔽 高优先级的中断正在服务时 阻止了CPU向低优先级中断的服务 不可屏蔽中断 NMI 最高优先级的中断不能被关断 中断向量 设备 CPU 向量 中断请求 中断应答 向量0 向量1 向量2 向量3 向量表头 设备存储向量号 设备通过修改向量号即能获得新的处理程序向量号与处理程序之间没有固定的关系 提供硬件设备与服务软件之间的灵活性 中断处理流程 CPU 检查未决中断 响应优先级最高的中断 且高于当前运行级别 设备 接收中断信号 向CPU发送中断向量 CPU 查找中断向量表 获得中断入口地址 并保存PC当前值及内部状态 驱动软件 执行中断服务 恢复状态并返回 CPU 继续执行刚才代码处 中断处理开销 分支跳转及返回开销额外的时钟周期应答中断及获得中断向量恢复及保存CPU寄存器 缩短维护CPU状态的时间 ARM异常中断类型 ARM异常中断类型 ARM中断向量表 ARM中断 快速中断 FIQ 及中断请求 IRQ 中断向量表在低址部分 从0开始 响应中断步骤 保存当前PC值CPSR拷贝到SPSR强制CPSR中的位记录下中断 强制PC指向相应的中断向量中断结束 恢复PC值用SPSR恢复CPSR清除中断禁用标志 响应IRQ中断过程 R14保存下一指令地址 CPSR内容保存到SPSRCPSR 4 0 0b10010 IRQ中断模式CPSR 5 0 切换到ARM状态CPSR 7 1 禁止IRQ中断If配置成高向量模式PC 0 xFFFF0018ElsePC 0 x00000018 响应FIQ中断过程 R14保存下一指令地址 CPSR内容保存到SPSRCPSR 4 0 0b10001 FIQ中断模式CPSR 5 0 切换到ARM状态CPSR 7 1 禁止IRQ中断if配置成高向量模式PC 0 xFFFF001CelsePC 0 x0000001C ARM中断处理程序的安装 跳转指令 在向量表中存储JMP指令 指向处理程序 数据读取指令LDR向PC直接赋值 先将中断处理程序绝对地址存放在距离向量表4KB范围内一存储单元中 再使用LDR指令将该地址赋给PC ARM中断向量表示例 JMP Vector Init BlockBLReset HandlerBLUndefined HandlerBLSWI HandlerBLPrefetch HandlerBLAbort HandlerNOPBLIRQ HandlerBLFIQ Handler ARM中断向量表示例 LDR Vector Init BlockLDRPC Reset HandlerLDRPC Undefined HandlerLDRPC SWI HandlerLDRPC Prefetch HandlerLDRPC Abort HandlerNOPLDRPC IRQ HandlerLDRPC FIQ HandlerReset AddrDCDStart BootUndefined AddrDCDUndefined HandlerSWI AddrDCDSWI Handler SHARC中断 支持类型 带优先级中断 向量化中断 可屏蔽中断响应步骤 输出中断向量地址将PC值压入PC栈中将ASTAT或MODE1寄存器压入栈改变中断屏蔽指针显示当前中断嵌套 RTI返回步骤 PC栈弹出返回地址弹出栈顶值清除中断锁存器 屏蔽寄存器相应位 Sharc中断向量表 虚拟设备 虚拟设备 文件 管道 设备的构成 控制寄存器 字 设置 控制设备的行为 状态寄存器 字 表示设备的状态 设备机制 设备驱动程序 控制 接收 发送出入设备的字节流的软件 硬件 使用硬件标志和控制寄存器 虚拟设备 状态和控制字 功能 设置控制寄存器 字 初始化设备 在产生中断或置状态寄存器时 调用ISR 中断完成时重置状态标志 3 2管态 异常和陷阱 管态 提供用户态不具有的特权指令 避免用户态时错误程序导致的系统安全保护 异常 CPU内部硬件检测到的错误事件 提供应付这类事件的一种机制 异常类似中断 必须有优先级 陷阱 也称软件中断 由程序指令触发进入某种预先定义处理的机制 如进入CPU管态 ARM的管态 SWICODE I进入 CODE I 调用参数 PC 0 x08 CPSR保存到SPSR CPSR后5位置1 返回时 LR中获得PC值 SPSR恢复到CPSR SWI中断响应过程 R14保存下一指令地址 CPSR内容保存到SPSRCPSR 4 0 0b10011 特权模式CPSR 5 0 切换到ARM状态CPSR 7 1 禁止IRQ中断If配置成高向量模式PC 0 xFFFF0008ElsePC 0 x00000008 3 3协处理器 在指令系统层次上提供CPU之外的特殊处理硬件 如浮点运算协处理器 预留操作码 CPU收到协处理器指令时激活该协处理器 并传输该指令 协处理器负责特殊处理过程 CPU等待或继续运行 在无协处理器情形下 CPU用软件执行相同功能 ARM中的协处理器 最多16个协处理器 寄存器装入 存储 浮点处理器 1 2号协处理器 3 4存储系统机制 高速缓存 CACHE 提高内存系统性能 存储管理 MMU与地址转换 小的物理内存中提供较大的虚拟存储空间 存储器层次 寄存器片上Cache片外Cache主存储器后援存储器 硬盘 片上存储器 优点 简单 便宜 低功耗行为简单 可控缺点 需要程序员直接管理 高速缓存 Cache 一种小型的快速的存储器 高速器件 保存部分主存的拷贝 对程序员来说透明 由硬件自动执行映射分类 统一Cache和哈佛Cache 3 4 1高速缓存 高速缓存 工作集 活动单元的集合强制性未命中 单元第一次访问容量未命中 工作集过大冲突未命中 地址映射到高速缓存同一单元 存储系统性能 高速缓存的映射方式 直接映射组相连映射全相连映射 直接映射高速缓存 直接映射Cache 整个Cache分为若干块 每块包括 内存单元的标记 内存内容 有效标记 一块数据连同存储器地址Tag一起保存 Tag由存储器地址的一部分 index 来寻址 内存的Cache映射 地址分为三段首先将内存等分为大小等于Cache块的分块 块内地址为偏移量 用于映射块内单元寻址 根据Cache块数确定索引位数 索引值即Cache块号 索引段之前位作标记 确定是内存中块的位置 事实上 内存中包含 标记 索引 块 Cache中包含 索引 块 直接映射高速缓存特点 映射快 造价低 逻辑简单 冲突未命中概率高 直接映射高速缓存示例 Cache共4个单元 2位地址 Cache分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省2025云南红河州泸西县急需紧缺人才公开招聘(5人)笔试历年参考题库附带答案详解
- 2025湖北交投实业发展有限公司服务区管理员遴选80人笔试参考题库附带答案详解
- 2025新疆果业集团有限公司招聘36人笔试参考题库附带答案详解
- 2025年国网四川省电力公司技能定向招聘90人笔试参考题库附带答案详解
- 2025四川长虹佳华信息产品有限责任公司招聘媒介运营总监等岗位10人笔试参考题库附带答案详解
- 2025华电新能源集团股份有限公司面向系统内招聘10人笔试参考题库附带答案详解
- 2025京东方科技集团股份有限公司全球校园招聘正式启动笔试参考题库附带答案详解
- 2025中国建筑地勘中心陕西总队招聘(13人)笔试参考题库附带答案详解
- 危险废物生产安全培训课件
- 危险品仓库安全培训小结课件
- 物业客服部日常工作
- 一例外周静脉炎的护理个案讲课件
- 慢性便秘病人护理
- 商铺意向金协议书
- (高清版)DB13∕T 5817-2023 河流(湖泊)健康评价技术规范
- 装饰装修工程施工方案
- 达人合作协议书范本
- 《乳腺癌的护理查房》课件
- 学校教职工网络安全培训
- 伊利企业文化手册
- 资产评估风险管理制度
评论
0/150
提交评论