处理器结构与操作系统相关(MIPS为例).pptVIP

处理器结构与操作系统相关(MIPS为例).ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理器结构与操作系统相关(MIPS为例)

Contents MIPS概述 五级流水(四个时钟周期) IF——取指 RD——读寄存器 ALU——算术运算 MEM——访问内存 WB——写回寄存器 MIPS概述 通用寄存器 地址空间 Kuseg:MMU 无MMU时与实现相关 Kseg0: 最高位清零得到PA; 无MMU时存放大多数的程序和数据,有MMU时操作系统内核会存放于此; Kseg1: 最高3位清零得到PA; 重启时可用,重启入口向量存放于此 Kseg2:MMU (Kernel mode) 协处理器 0 协处理器用于处理通常运算功能之外的某些控制功能如:中断、配置选项、cache控制等。 协处理器0:系统控制协处理器; 协处理器1:浮点协处理器; CPU控制寄存器 中断相关 SR Cause EPC 内存管理 TLB编程 CPU配置 Config CPU控制寄存器 寄存器读 mfc0 d, n 寄存器写 mtc0 s, n CPU控制寄存器 加电后 设置SR(根据Config寄存器) 处理异常 EPC寄存器保存返回地址 Cause指示异常类型 中断 SR中断掩码 纯粹为了引发异常的指令 系统调用、断点 CPU控制寄存器 CUx: 协处理器使能 RE: 大小端反转 BEV: 启动时异常向量 SR: 软复位 IM7-0: 中断屏蔽 KSU: CPU特权等级 ERL: 错误级,CPU响应奇偶校验等异常时置位 EXL: 异常级 IE: 全局中断使能 CPU控制寄存器 BD: 分支延迟槽异常 ExcCode: 异常类型编码 CPU控制寄存器 CM: 设为1表示主设备/检查器 EC: 时钟分频 EP: 数据传输模式 SB: 片外二级缓存块的大小 SS: 控制片外二级缓存块指令和数据空间统一还是分立 SC: 二级缓存使能 SM: 多处理器缓存一致性配置 BE: CPU尾端 EM: 数据检验模式,1:ECC;0:奇偶校验 IC/DC: 一级指令/数据缓存大小 高速缓存 寻址和访问 寄存器加载访问 寻址方式:基址寄存器+偏移(16位) 缓存 映射 直接映射 相联映射 写内存 写透模式(写操作fifo) 回写模式(dirty标示) 高速缓存 直接映射 高速缓存 物理/虚拟寻址 许多MIPS CPU采用虚拟地址作为高速缓存的快速索引,并用物理地址标记每行高速缓存。 高速缓存行 四字/八字每行,二级三级缓存可能更大 未命中时整行读取 I-cache/D-cache分开 高速缓存 高速缓存 内存管理 隐藏和保护:用户程序只能访问kuseg存储区,页面设置写保护; 给程序分配连续的存储空间; 扩展地址范围:有些CPU不能访问全部物理存储; 按需分配页面; 重定位:MMU允许程序在任何物理地址上运行; 内存管理 内存管理 内存管理 异常处理 外部事件:中断; 存储访问异常:访问地址不存在有效映射项,非法写(写保护); 其他需要内核干预的非常情况:浮点操作等; 程序或硬件检查到的错误:非法指令; 数据完整性问题:校验错; 系统调用和自陷; 异常处理 1. 精确定位引起异常的指令[EPC和SR(BD)分支延迟槽内时指向分支指令]; 2. 异常处理次序与指令次序一致; 3. 后续指令无效化:后续指令不影响寄存器的值和CPU; 异常处理 Mips CPU 设置EPC返回地址; 设置SR(EXL)位,进入内核态禁止中断; 设置Cause寄存器(地址异常设置BadVAddr寄存器); 进入异常入口,软件处理; 软件处理: 用k0和 k1索引一块内存,保存寄存器; 查询Cause寄存器确定异常种类; 构建异常处理环境:提供内存栈保存信息;(高级语言子程序) 处理异常; 从异常调用子程序返回到底层的异常处理程序;(内核态,关中断); 异常返回(eret); 异常处理 1. 全局中断使能位:SR(IE) 2. SR(EXL)(异常级)和SR(ERL)(错误级) 置位,则中断禁止 3. 中断屏蔽位SR(IM) 4. Cause寄存器中有8个中断位,一般5-6个为输入引脚驱动,剩下2个用于软件中断;查看Cause(IP),判断活跃的中断。 异常处理 异常处理 异常处理 异常处理 异常处理 函数调用 函数调用 Thanks! 启动顺序 1. 跳到ROM空间:异常入口在0xBFC00000;跳转是简单测试 2. 配置CPU初始化:SR设置成有效状态,可从非缓存空间取值; 3. 内存初始化:在初始化部分RAM并对其进行完整性检查前,只能使用寄存器,可以将初始化缩小到一块能放下ROM中的程序的内存大小; 4. 状态跟踪:利用控制台端口(诊断寄存器)报告初始化过程的一些问题; 5. 现在可以分配栈,设置足够多的寄存器,以便调用C过程; 6. 初始化Cache,运行其他初始化代码; 堆栈参数结构 1. 所

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档