文章目录

  • 前言
  • 一、Modes of Operation
    • 1.1 IA-32 architecture
    • 1.2 Intel 64 architecture
  • 二、Extended Feature Enable Register
  • 总结

前言

本文继续翻译 Intel vol3 chapter 2 :2.2章节,有些英文单词翻译成中文别扭的我会保留英文,不翻译。

一、Modes of Operation

1.1 IA-32 architecture

IA-32架构支持三种运行模式和一种准运行模式(quasi-operating mode):
Protected mode:这是处理器的本机操作模式。 它提供了丰富的架构特性、灵活性、高性能和对现有软件库的向后兼容性。

Real-address mode:该模式提供了Intel 8086处理器的编程环境,带有一些扩展(例如切换到保护模式或系统管理模式的能力)。

System management mode (SMM):SMM 是所有 IA-32 处理器中的标准架构特性,从 Intel386 SL 处理器开始,此模式为操作系统或执行程序提供透明的机制来实现电源管理和 OEM differentiation features,SMM 通过激活外部系统中断引脚 (SMI#) 进入,该引脚生成系统管理系统中断 (SMI),在 SMM 中,处理器切换到单独的地址空间,同时保存当前运行的程序或任务的上下文。 然后可以透明地执行特定于 SMM 的代码。 从 SMM 返回后,处理器将回到 SMI 之前的状态。

Virtual-8086 mode:在保护模式下,处理器支持称为虚拟 8086 模式的准运行模式(quasi-operating mode)。 此模式允许处理器在受保护的多任务环境中执行 8086 软件。

1.2 Intel 64 architecture

Intel 64 架构支持 IA-32 架构和 IA-32e 模式的所有运行模式:
IA-32e mode:在 IA-32e 模式下,处理器支持两种子模式:兼容模式和 64 位模式。
64 位模式( 64-bit mode):提供 64 位线性寻址并支持大于 64 GB 的物理地址空间。
兼容模式( compatibility mode):允许大多数传统的保护模式下的应用程序不用发生改变而运行。

下图是处理器在各个操作模式之间的转换:

(1)处理器在上电或复位后进入实地址模式。 然后控制寄存器 CR0 中的 PE 标志控制处理器是在实地址模式还是保护模式下运行。

CR0.PE:Protection Enable (bit 0 of CR0),设置时启用保护模式; 清零时启用实地址模式。 此标志不直接启用分页。 它仅启用段级保护。 要启用分页,必须同时设置 PE 和 PG 标志。

CR0.PG:Paging (bit 31 of CR0),设置时启用分页; 清除时禁用分页。 禁用分页时,所有线性地址都被视为物理地址。 如果没有同时设置 PE 标志(寄存器 CR0 的位 0),则 PG 标志无效; 在清除 PE 标志时设置 PG 标志会导致一般保护异常 (#GP)。
在Intel 64处理器上,启用和禁用IA-32e模式也需要修改CR0.PG。

(2)EFLAGS 寄存器中的 VM 标志确定处理器是在保护模式还是虚拟 8086 模式下运行。在保护模式和virtual-8086模式之间的转换通常作为任务切换或中断或异常处理程序的返回的一部分来执行。

VM :Virtual-8086 mode (bit 17),Set to enable virtual-8086 mode; clear to return to protected mode。

(3)LMA 位(IA32_EFER.LMA[bit 10])确定处理器是否在 IA-32e 模式下运行。 在 IA-32e 模式下运行时,处于64 位模式还是兼容子模式操作由代码段的 CS.L 位决定。 处理器通过启用分页和设置 LME 位(IA32_EFER.LME[bit 8])从保护模式进入 IA-32e 模式。

IA-32e Mode Enable: IA32_EFER.LME (R/W):Enables IA-32e mode operation.

L (64-bit code segment) flag:在 IA-32e 模式下,段描述符的第二个双字( doubleword)的第 21 位指示代码段是否包含native 64-bit code。 值为 1 表示此代码段中的指令以 64 位模式执行。 值为 0 表示此代码段中的指令在兼容模式下执行。当不在 IA-32e 模式下或对于非代码段时,第 21 位保留,并应始终设置为 0。
备注:对于Intel处理器中,术语字(word)表示16位数据类型,双字( doubleword)表示32位数据类型。IA-32e 模式下,段描述符由两个双字( doubleword)组成,即8个字节。

(4)当处理器处于实地址、受保护、虚拟 8086 或 IA-32e 模式时,只要接收到 SMI,处理器就会切换到 SMM。 执行 RSM 指令后,处理器总是返回到 SMI 发生时的模式。

二、Extended Feature Enable Register

IA32_EFER MSR 提供了几个与 IA-32e 模式启用和操作相关的字段,它还提供了一个与页面访问权限修改相关的字段。IA32_EFER MSR寄存器布局如下图所示:

IA32_EFER MSR寄存器各个位信息如下图所示:

总结

该小章节翻译完毕,结束了。。。

Intel opreation mode相关推荐

  1. Intel发布FPGA

    Intel发布FPGA FPGA概述 FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑).GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物. ...

  2. Intel GPU实现游戏与数据中心

    Intel GPU实现游戏与数据中心 在Intel Architecture Day上,Intel谈到了面向游戏玩家的Xe-HPG架构Alchemist GPU以及面向数据中心的Xe-HPC架构GPU ...

  3. 如何使用Intel vtune profilier?

    如何使用Intel vtune profilier?

  4. 英特尔Intel® Arria® 10 FPGA加速器设计

    英特尔Intel® Arria® 10 FPGA加速器设计 Introducing the Intel® Vision Accelerator Design with Intel® Arria® 10 ...

  5. 使用nGraph的Intel®Xeon®上的高性能TensorFlow

    使用nGraph的Intel®Xeon®上的高性能TensorFlow High-performance TensorFlow* on Intel® Xeon® Using nGraph 最近宣布了n ...

  6. Intel HAXM is required to run this AVD VT-x is disabled in BIOS的处理方法

    当遇到Intel HAXM is required to run this AVD VT-x is disabled in BIOS 的问题时候 这个就是说你的模拟器出现问题了 这个问题处理方法大致分 ...

  7. intel最新的服务器芯片,Intel最新服务器CPU 芯片组Roadmap

    AnandTech释出了Intel最新的企业产品Roadmap,包括服务器和工作站芯片组,双核心Xeon以及Itanium 2处理器. 双核心Xeon处理器将在今年结束前出货,而明年第一季推出65nm ...

  8. linux内核和cpu指令集,Linux之父:Intel别浪费时间在AVX512这类指令集、多堆核心才是正道...

    原标题:Linux之父:Intel别浪费时间在AVX512这类指令集.多堆核心才是正道 在最近一次邮件交流中,Linux之父Linus Torvalds对Intel的处理器战略表达意见. 他谈到&qu ...

  9. ROS与深度相机入门教程:(2) 在ROS中驱动Intel D435i深度相机采集数据(遇到的问题)

    在ROS环境下完成数据的安装,需要安装基于ROS使用RealSense的包(包含安装RealSense SDK和ROS Kinetic) 接上篇:https://blog.csdn.net/m0_37 ...

最新文章

  1. ros自带package在哪里_【ROS】创建ROS功能包(ROS package)
  2. luoguP3387 【模板】缩点
  3. 一个图片 在另一个图片定位_一个好的listing,图片有哪些基本要求
  4. 高人对libsvm的经典总结(全面至极)
  5. SQLServer当数据导入平面文件
  6. linux 两个序列比对,如何用COBALT构建本地的多序列比对(Linux系统)
  7. java spring 单例模式,spring中的单例模式
  8. 【TypeScript系列教程07】变量声明
  9. ear的英语怎么念_ear英语怎么读
  10. 同时对view延时执行两个动画时候的现象
  11. html div数据替换,在contenteditable div中替换innerHTML
  12. 计算机视觉实战(十一)Scale Invariant Feature Transform(SIFT)(附完整代码)
  13. 关于微信退款出现错误代码:52的解决方法【转】
  14. 超级好用论文写作工具NoteExpress下载和安装
  15. 子网掩码-掩码位-反掩码 对照表
  16. VS2013 TeeChart_v8 MFC C++ 使用手册干货(一)TeeChart ColorGrid类的简单使用
  17. div box盒子的一些概念
  18. 微信 动画表情 骰子 猜拳
  19. 10分钟带你学习华为云数据库RDS
  20. Android Studio 安装后Gradle一直在gradle build running的问题

热门文章

  1. 两个自我的对话和博弈
  2. 杭电ACM 2014:青年歌手大奖赛_评委会打分
  3. 让WiFi更安全的新协议WPA3,再也不用担心妈妈的WiFi?
  4. GDC2015分享:巫师3开放世界性能优化
  5. 如何计算机使用ssd硬盘启动,如何设置电脑固态硬盘为第一启动
  6. 知乎账号登录+验证码
  7. 计算机网络的发展过程大致可以分为几个,计算机网络发展过程分几个阶段
  8. golang的ping检测网络实现
  9. Ubuntu nautilus 快速打开文件浏览器
  10. 你不能只会flex居中布局,精制动画讲解所有flex布局方式,通俗易懂教程