zoukankan      html  css  js  c++  java
  • cpu运行模式

    实模式实模式实模式实模式 (Real mode) 是 Intel 80286 和之后的 x86 兼容 CPU 的操作模式。实模式的特性是一个 20 位的区段存储器地址空间 (意思为只有 1 MB 的存储器可以被寻址),可以直接软件访问 BIOS 例程以及周边硬件,没有任何硬件等级的存储器保护观念或多任务。所有的 80286 系列和之后的 x86 CPU 都是以实模式下开机;80186 和早期的 CPU 仅仅只有一种操作模式,也就是相当于后来芯片的这种实模式。 286 架构导入 保护模式,允许硬件等级的存储器保护。然而要使用这些新的特色,需要额外先前不需要的软件指令。由于 x86 微处理机主要的设计规格,是能够完全地向前兼容于针对先前所有 x86 芯片所撰写的软件,因此 286 芯片的开机是处于 '实模式' — 也就是关闭新的存储器保护特性的模式,所以可以运行针对旧的微处理器所设计的软件。到现在为止,即使最新的 x86 CPU 一开始在电源打开处于实模式下,也能够运行针对先前任何芯片所撰写的软件。 DOS 操作系统 (MS-DOS, DR-DOS 等等) 都是在实模式下运作。早期的 Microsoft Windows 版本 (主要地只是图形用户界面外壳,而事实上不是操作系统) 也在实模式下运行,直到 Windows 3.x 才能够在实模式或是保护模式下。Windows 3.0 事实上可以在保护模式的两种 "喜好" 下运行 - "标准模式",也就是使用保护模式来运行;而 "386-增强模式",允许使用 32 位寻址,也因此无法在 286 上运行 (尽管都有保护模式,但是 286 只是 16 位芯片;32 位的暂存器在 80386 系列中推出)。Windows 3.1 移除了实模式的支持,也是第一个最少需要 80286 处理器的主流作业环境(不管Windows/286,因为并非主流产品)。几乎所有的现今 x86 操作系统(Linux、Windows 95和之后、OS/2 等等)都会在启动后将 CPU 切换到保护模式。   保护模式保护模式保护模式保护模式 (Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 相容 CPU 操作模式。保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护,分页 系统,以及硬件支援的 虚拟内存。大部分的现今 x86 操作系统 都在保护模式下运行,包含 Linux、FreeBSD、以及 微软 Windows 2.0 和之后版本。 另外一种 286 和其之后 CPU 的操作模式是 真实模式,一种向前相容且关闭这些特色的模式。设计用来让新的芯片可以执行旧的软件。依照设计的规格,所有的 x86 CPU 都是在真实模式下开机,来确保传统操作系统的向前相容性。在任何保护模式的特色可用前,他们必须要由某些程式手动地切换到保护模式。在现今的电脑,这种切换通常是由操作系统 在开机时候必须完成的第一件工作的一个。它也可能当 CPU 在保护模式下运行时,使用 虚拟86模式 来执行设计给真实模式的程式码。 

    尽管用软件的方式也有某些可能在真实模式的系统下使用多工,但保护模式下内存保护的特色,可以避免有问题的程式破坏其他工作或是 操作系统 核心所拥有的内存。保护模式也有中断正在执行程式的硬件支援,可以把 execution content 交给其他工作,得以实现 先占式多工。 大部分可以使用保护模式的 CPU 也拥有 32 位元暂存器 的特色 (例如 80386 系列和其后任何的芯片),导入了融合保护模式而成为 32 位元处理的概念。80286 芯片虽有支援保护模式,但是仍然只有 16 位元暂存器。Windows 2.0 和之后版本中的保护模式增强称为 "386 增强模式",是因为他们除了保护模式外,还需要 32 位元的暂存器,并且无法在 286 上面执行 (即使 286 支援保护模式)。 即使在 32 位元芯片上已经打开了保护模式,但是 1 MB 以上的内存并无法存取,是由于一种仿照 IBM XT 系统设计特性的 memory wrap-around(内存连续) 的因素。这种限制可以由打开 A20 line 来回避。 在保护模式下,前面 32 个中断都是保留给 CPU 例外处理用。举个例子,中断 0D (十进制 13) 是 一般保护模式错误 而中断 00 是 除以零。   虚拟86模式 在 x86 的 CPU 电脑架构中,虚拟虚拟虚拟虚拟86模式模式模式模式 又称为虚拟-真实模式,允许在 保护模式 操作系统 的控制下执行 真实模式 的程式。 它用来在微软 Windows 和 OS/2 中透过 虚拟DOS机器 来执行 DOS 程式,在 SCO UNIX 中透过 Merge 软件,以及在 Linux 中透过 dosemu。 要注意的是 "保护模式的 DOS 程式",不管是 16 或 32 位元,并不是在虚拟86模式下执行,而是在一种使用者模式(只要他们是 DPMI 相容),所以上面所提的模拟器事实上所作事情更多,而不只是仅仅支援虚拟 86 模式。 注:在WIN32下运行command.com,虚拟8086模式只是保护模式的一个特例。   系统管理模式系统管理模式系统管理模式系统管理模式 (System Management mode)(以下简称SMM)是Intel在386SL之后引入x86体系结构的一种CPU的执行模式。系统管理模式只能通过系统管理中断(System Management Interrupt, SMI)进入,并只能通过执行RSM指令推出。SMM模式对操作系统透明,换句话说,操作系统根本不知道系统何时进入SMM模式,也无法感知SMM模式曾经执行过。为了实现SMM,Intel在其CPU上新增了一个引脚SMI# Pin,当这个引脚上为高电平的时候,CPU会进入该模式。在SMM模式下一切被都屏蔽,包括所有的中断。SMM模式下的执行的程序被称作SMM处理程序,所有的SMM处理程序只能在称作系统管理内存(System Management RAM,SMRAM)的空间内运行。可以通过设置SMBASE的寄存器来设置SMRAM的空间。SMM处理程序只能由系统固件实现。 

  • 相关阅读:
    JavaScript 移动端拖动元素
    JavaScript轮播图
    JavaScript缓动动画函数封装
    JavaScript mouseenter和mouseover的区别
    类欧几里得算法
    AGC043 A~C 解题报告
    「UOJ495」新年的促销
    「BZOJ4842」Delight for a Cat
    Atcoder AGC002 解题报告
    Atcoder AGC001 解题报告
  • 原文地址:https://www.cnblogs.com/zhousiyu/p/2791513.html
Copyright © 2011-2022 走看看