以下描述了在IA-64和IA-32结构中使用的SMM(系统管理模式).
SMM提供了一种可交替的操作环境, 被用来以更有效的资源使用方式监视不同的系统资源, 控制系统硬件, 以及执行自己的代码.
SMM 在Intel386 SL处理器中开始被用到, 在Pentium M, Pentium 4, Intel Xeon, P6 family, 以及Pentium 和 Intel 486 处理器中有用到.
SMM是一专门的操作模式用来处理各种系统功能,像电源管理, 系统硬件控制, 或私有的OEM设计的代码. SMM仅仅被设计给system firmware所用,不被应用软件或一般的系统软件使用. SMM的主要优点是它提供了一个明显的和易隔离的处理器环境, 操作起来相对操作系统或可执行应用软件是透明的.
当SMM被通过一个系统管理中断(SMI)调用, 处理器保存当前的处理器状态(the processor's context),然后通过一新的地址空间切换到一隔离的操作环境。系统管理软件执行者(SMI handler)在这个环境执行,以及SMI handler的重要代码和数据驻留在一物理内存区域(SMRAM),在那个新的地址空间内。当进入了SMM,处理器执行SMI handler code 来执行诸如关闭没有使用的磁盘和监视器的电源,执行自己的code,或将整个系统置于休眠的状态。当SMI handler 已经完成了它的操作,它会执行一个返回指令(RSM)。这条指令将会使CPU重新装载以前保存的CPU状态,切换回保护或实模式,以及重新执行被中断了的应用程序或操作系统的编程和任务。
下面的SMM机制使他保持透明对于应用程序和操作系统:
.进入SMM的唯一方式通过SMI。
.CPU 在一隔离的地址空间执行SMM code,这个隔离的地址空间不能被其他的操作模式访问。
.在进入SMM前,处理器保存被中断的程序和任务的状态。
.在进入SMM前,所有被操作系统 一般处理的中断被关掉。
.RSM指令仅能在SMM中执行。
进入SMM后的执行环境是实地址模式,分页功能是关的(CR0.PE = CR0.PG = 0).在这种初始化的执行环境下,SMI handler 能够寻址到4 GByte的内存和执行所有的I/O及系统指令。在SMM中,SMI handler 可以随后进入其他操作模式。
注意,由于SMI的传送关闭了分页功能,即使在一个SMI前的模式是physical address extension(PAE)或是IA-32e,SMI传送后也不是这种模式。(This does not apply if the dual-monitor treatment of SMIs and SMM is active)