CPU的工作模式_第1页
CPU的工作模式_第2页
CPU的工作模式_第3页
CPU的工作模式_第4页
CPU的工作模式_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IntelIntel CPUCPU 和和 ARMARM CPUCPU 的运行模式的运行模式 摘要摘要 本文介绍了 Intel CPU 的三种运行模式 实模式 保护模式 虚拟 实模式 同时还介绍了 ARM 处理器的工作模式 用户模式和特权模式 并且 分析比较了两种 CPU 的这些运行模式的作用及适用场合 以便对这些运行模 式有更深入的了解 CPU 作为计算机和各种电子设备的大脑 对计算机和电子设备起着至关重 要的作用 它主要用来解释指令和处理数据 是计算机和电子设备能够实现各 种各样的功能的基础 CPU 运行模式指的是各种工作环境 以及对芯片的指 令和能力的影响 CPU 运行模式控制处理器如何查看和管理系统存储器以及使 用它的任务 Intel 的 CPU 占领了大部分的 PC 市场 而 ARM 处理器则大量 存在于手机和各种嵌入式设备中 对这两种 CPU 的运行模式进行分析能让我 们对 CPU 的运行模式更加深入的理解 绝大部分 PC 的 CPU 都是 Intel 公司的 CPU Intel 的 CPU 经过多年的 发展 已经当初的一种运行模式发展成了现在的三种运行模式 分别是 实模 式 保护模式 虚拟实模式 下面对这三种模式进行详细介绍 实模式实模式 Intel 的 8086 到 80186 处理器都只有一种运行模式 这就是 实模式 在这个模式下 CPU 用 20 根地址线进行内存寻址 所以在这个模式 下 CPU 只能访问从 00000h FFFFFh 的地址范围的内存 即 1M 大小的内存 2 同时使用 16 根数据线 使用 l6 位内部寄存器运行 16 位指令 由于使用的是 16 根数据线 为了能够支持使用 20 位的地址来访问 1M 的内存 于是就对内 存的使用引入了分段机制 为了支持分段机制 CPU 设置了四个 16 位的段寄 存器 CS DS SS ES 分别是代码段 数据段 堆栈段和其他段 对应于 地址总线中的高 16 位 寻址时 将段寄存器中的值向左移四位再加上段内偏 移量就得到了物理地址 这样就实现了 16 位内存地址到 20 位物理地址的转换 这种方式叫做 映射 由于其偏移量只能用 16 位来表示 所以其支持的段的 大小只有 64K 字节 在实模式下 系统一次只能运行一个程序 其他程序都处于休眠状态 在 这个模式下 任何一个程序都可以访问内存的任何地方 并没有一种保护机制 来防止一个程序被另一个程序重写 即便是对于在内存中的操作系统也是如此 所以如果有几个程序存在内存中 很可能会因为其中的一个程序修改了另一个 程序的数据而导致系统崩溃 为了能够和前面的 CPU 兼容 80286 及以后x86 系列兼容处理器仍然是 开机启动时工作在实模式下 这时的 CPU 和 8086 没有任何区别 只是运行速 度比 8086 更快而已 然后通过操作系统设置之后就可以进入一个更加先进的 模式 保护模式 保护模式保护模式 要发挥 80386 及 x86 系列处理器的全部优势就要在保护模 式下 那么保护模式和实模式到底有什么区别呢 首先是在保护模式下采用的 是 32 根地址线和数据线 运行 32 位指令 可寻址高达 4G 字节的物理地址空 间 字 实模式下只能寻址的 1M 字节的物理地址空间 保护模式采用了虚拟内 存 并采用分段和分页技术相结合的方式 其支持的最大的段的大小也从实模 3 式的 64K 增长到 4G 同时保护模式的地址转换方式也发生了变化 此时段寄 存器里存的不再是基址 而是段选择子 通过段选择子来选出段的描述符 描 述符用来描述一个段 包含了段基址 段界限 段属性等段的信息 得到了段 基址之后 再加上偏移量就得到了线性地址 与实模式最大的区别是保护模式 的基址不要偏移 得到线性地址之后 如果禁止分页线性地址就被解释为物理 地址 如果允许分页线性地址就通过页表映射到物理地址 保护模式和实模式的最大区别是在保护模式下运行的软件程序受到了保护 这种保护作用首先体现在进程间的保护 在保护模式下每个进程都有自己的地 址空间 然后把地址空间分页 得到许多的页面 再把这些页面映射到物理内 存 由于不同进程的页表被映射到不同的物理内存 这就实现了进程间的相互 隔离 防止一个程序被另一个程序重写 导致系统崩溃 同时进程间的隔离使 得一个进程的崩溃也不会影响到其他进程的执行 同时保护作用还包括进程内的保护 在一个进程内 段定义有四种执行特 权级别 用数字 0 1 2 3 表示 用于限制对任务中的段进行访问 数字越 小 级别越高 按照包含在段中的数据的重要性和代码的可信程度 给段指定 特权级别 把最高的特权级别分配给最重要的数据段和最可信任的代码段 高 特权级别代码可以访问地特权级别代码 但是反过来就会被阻止 所以系统代 码与应用程序代码虽处于同一地址空间 但系统代码具有高特权级别 应用程 序代码处于低特权级别 这样就防止了用户代码破坏系统代码 操作系统被设 置为 0 级 拥有最高特权等级 这就保证了操作系统的安全 段的特权级别是 通过段描述符的中的一个占两位的 DPL 位来表示的 保护模式支持的多任务运行 但这需要多任务操作系统来完成 操作系统 4 让每个进程都得到部分的 CPU 时间 让它们轮流使用 CPU 看起来就好像是 多个任务在运行 实际上在很小的时间片段内还是只有一个程序运行 但在多 核 CPU 中可以实现真正的并行运行 通过操作系统的设置 CPU 可以从实模式进入保护模式 但是不能够倒退 从保护模式进入实模式 虚拟虚拟 80868086 模式模式 在当初设计 Intel 80386 CPU 的时候 需要解决 的一个难题是如何让运行在 16 位实模式下的程序能够在 80386 的保护模式中 运行 为此 Intel 的设计人员在 80386 中加入了虚拟 8086 模式 在虚拟 8086 模式中 CPU 把内存分成许多大小为 1M 的部分 每个部分分配给一个 任务 大部分 16 位实模式下的程序能够不经任何修改的运行在保护模式下 每个程序都有属于他们的 1M 内存 微软在用虚拟 8086 模式来运行他们的 DOS 程序 运行 Windows 操作系统中的 DOS 提示窗口时 就建立了一个虚 拟 8086 模式的会话 和真正的 MS DOS 不一样 MS DOS 一次只能运行一 个任务 其他任务都在睡眠 而在 Windows 中 每个任务都可以得到一个 CPU 的时间片段 所以许多任务都可以同时保持活跃 这是因为保护模式支持 多任务 一个虚拟 8086 会话窗口完全模拟了一个 8086 环境 每一个虚拟机 器都有其自己的 l M B 地址空间 实际硬件 BIOS 程序的映像 所有各寄存器 的仿真以及其他能在实模式中找到的特性 除了速度更快以外 Intel 的三个模式中实模式和虚拟 8086 模式都是为了兼容以前的版本而设 计的 因为向前兼容才使得 Intel 现在的 CPU 设计的比较复杂 但其最重要的 模式是保护模式 它是现在计算机能够极大方便人们生活的基石 Intel 统治 PC 的 CPU 市场 而 ARM CPU 则统治着嵌入式设备 全球 5 95 以上的手机以及超过四分之一的电子设备都在使用 ARM 技术 ARM 处理器作为广泛应用的嵌入式处理器 有其独特的体系结构 ARM CPU 有两种工作状态 分为 ARM 状态和 THUMB 状态 在 ARM 状态下执行的是 32 位字对齐的 ARM 指令 在 THUMB 状态下执行的是执行 16 位半字对齐的 THUMB 指令 在这种状态下 PC 寄存器的第 1 位来选择一 个字中的哪一半 THUMB 状态下有着更高的代码密度 在不需要 32 位运算 场合时 使用 THUMB 指令可以有更好的效率 但 THUMB 不是一个完整的 体系 只支持一般的功能 无法支持全部功能 高级功能必须要靠 ARM 来实 现 ARM 有七种处理器的运行模式 分为两大类 用户模式和特权模式 ARM CPU 工作状态的转换并不影响 CPU 的运行模式 用户模式用户模式 大多数的用户程序运行在用户模式下 这时 应用程序不能 访问一些受操作系统保护的资源 例如一些特殊的寄存器 在用户模式 应用 程序不能直接切换处理器模式 如果要进行模式切换 则必须产生中断才可以 产生中断后就进入了特权模式 特权模式特权模式 特权模式包括除用户模式之外的其他六种模式 快速中断模 式 中断模式 超级用户模式 中止模式 系统模式和未定义模式 其中除系 统模式之外的其他特权模式又叫异常模式 在每一种异常模式下都有一组寄存 器 供相应的异常处理程序使用 这样就可以保证在进入异常模式时 用户模 式下的寄存器不被破坏 在特权模式下 程序可以访问系统的所有资源 也可 以任意的对运行模式进行切换 每一个模式都有其特殊用途 快速中断模式快速中断模式 当一个高优先级的中断产生时将会进入这个模式 这个 模式是用来支持高速数据传输或通道处理而设计的 快速中断具有较高的中断 6 优先级 进入这个模式后必须尽快处理中断事件并离开这个模式 快速中断的 快速体现在 一是快速中断位于中断向量表的最后 因此可紧接异常向量表书 写快中断处理程序 而不必进行程序跳转操作 避免了刷新指令流水线和高速 缓存 二是快速中断有着足够的私有寄存器 从而可以减少了由于上下文切换 造成的寄存器数据的保存和恢复工作而带来了额外开销 中断模式中断模式 当一个低优先级的中断产生时就会进入这个模式 这些中断 都要比快速中断的优先级低 当一个快速中断序列进入时它将被屏蔽 所以这 个模式只是进行普通的中断处理 系统的外设可以通过中断进入这个模式来请 求服务 超级用户模式超级用户模式 当复位或软中断指令执行时就会进入这个模式 通常用 于请求执行特定的管理功能 是操作系统使用的一种保护模式 软中断是用户 模式中的程序用来调用特权操作指令 实现系统功能调用 它是通讯进程之间 用来模拟硬件中断的一种信号通讯方式 中断源发中断请求或软中断信号后 CPU 或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能 中止模式中止模式 当存取出现异常时就会进入这个模式 产生中止异常就意味 着对存储器的访问失败 中止异常包括两种类型 一种是发生在指令预取时的 指令预取中止 另一种是发生在数据访问时的数据中止 若处理器的预取指令 的地址不存在 或该地址不允许当前指令访问 存储器会向处理器发出中止信 号 所取得的指令将会被标记为无效 但是异常不会立即发生 只有当处理器 试图执行无效指令时 指令预取中止异常才会发生 如果在无效指令执行前发 生分支跳转 那么异常就不会发生 若处理器数据访问指令的地址不存在 或 7 该地址不允许当前指令访问时 产生数据中止异常 中止机制使得页面虚拟存储器机制得以实现 在采用虚拟存储器的系统中 处理器可以产生任意的地址 当某个地址的数据无效时 MMU 将产生一个中 止信号 这样中止异常的处理程序就必须找出异常中断的原因 使要求的数据 可用 并重新执行被中止掉的指令 应用程序也就不需要了解实际可用存储空 间的大小 也不需要了解异常中断对它的影响 未定义模式未定义模式 当产生一个未定义指令异常时 就会进入这个模式 若 ARM 处理器不认识当前指令 则将该指令发送到协处理器 若所有的协处理器 都不认识该指令 则产生未定义指令异常中断 该异常中断处理程序就是用软 件仿真系统中某些部件 协处理器 的一条指令 如仿真浮点运算器的某条浮点运 算指令等 如果不仿真 就直接返回 执行下一条指令 采用这种机制 就可 以通过软件仿真扩展 A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论