CN1228177A - 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统 - Google Patents

计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统 Download PDF

Info

Publication number
CN1228177A
CN1228177A CN97197324A CN97197324A CN1228177A CN 1228177 A CN1228177 A CN 1228177A CN 97197324 A CN97197324 A CN 97197324A CN 97197324 A CN97197324 A CN 97197324A CN 1228177 A CN1228177 A CN 1228177A
Authority
CN
China
Prior art keywords
register
processor
visit
computer system
system management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN97197324A
Other languages
English (en)
Other versions
CN1132107C (zh
Inventor
D·I·普斯纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1228177A publication Critical patent/CN1228177A/zh
Application granted granted Critical
Publication of CN1132107C publication Critical patent/CN1132107C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Abstract

描述了一种对计算机系统(18)中输入/输出映象的寄存器(60)提供访问的方法。该计算机系统(18)包括能在系统管理模式(SMM)、实模式、受保护模式和虚拟8086模式下操作的处理器(20),处理器(20)在系统管理模式下访问专用的系统管理内存空间。本方法的步骤包括,I/O映象寄存器(60)开始接收一个访问请求,然后与I/O映象寄存器(60)相关联的逻辑电路(64)通过检查处理器(20)输出的系统管理中断应答(SMIACT#)的状态来确定处理器(20)是否正在SMM下操作。如果逻辑电路(64)确定处理器(20)是在SMM下操作,那么给处理器(20)提供对I/O映象寄存器(60)第一类的无限制型访问。相应地,如果逻辑电路(64)确定处理器(20)不是在SMM下操作,那么给处理器(20)提供对I/O映象寄存器(60)第二类的限制型访问。如果给处理器(20)提供了第一类的无限制型访问,那么它会根据存储在专用系统管理存储空间中的代码执行对I/O映象寄存器(60)内容上的操作。

Description

计算机系统中控制对映射到 I/O地址空间的寄存器的访问的系统
发明领域
本发明属于计算机系统领域。进一步说,本发明有关计算机系统中对映射到I/O地址空间的寄存器的访问控制的方法和设备,特别是用来对寄存器提供保护。
发明背景
映射为I/O地址空间的寄存器(术语叫I/O映象寄存器)通常位于计算机系统和外围设备的交互接口中。I/O映象寄存器也可能位于计算机系统中其他一些功能单元中,例如总线桥,而且也可能被用于其他一些功能,包括数据缓冲存储、状态指示和控制以及配置功能。
I/O映象寄存器对于内容被破坏或通过一些方法进行不期望的改动方面是很脆弱的。例如一个“疯狂”或错误的程序、病毒程序甚至操作系统自身可能试图以非法的方式修改I/O映象寄存器的内容。对计算机系统的功能以及计算机系统的部件和外围设备的物理完整性来说,I/O映象寄存器内容的破坏可能导致很严重的后果。当执行控制或配置功能的I/O映象寄存器的内容被改动后,该脆弱性就尤其严重。至少,该寄存器内容的破坏会导致软件故障。一种最坏的情况是,I/O映象寄存器存放与电源管理有关的值,那么该寄存器内容的破坏可能导致处理器过热并烧坏。该最坏的情况对计算机系统硬件和软件的完整性造成严重的威胁,甚至威胁到计算机系统用户的安全。I/O映象寄存器的脆弱性也给病毒程序设计者提供了编写在计算机系统内造成未知危害和损坏的病毒程序的机会。
以前提供I/O映象寄存器访问保护的技术方法包括提供一种“锁”机制,一个加锁/解锁值被写入与I/O映象寄存器相关联的指定“锁”寄存器。在访问I/O映象寄存器之前,通过检查“锁”寄存器执行一个保护算法,来确定I/O映象寄存器是否能够被访问。虽然这种方法对错误的程序企图访问I/O映象寄存器提供相对有效的保护,但它并不能针对象病毒程序之类的智能型敌人提供足够的保护。例如,病毒程序可以获得对“锁”寄存器的访问并改写它,或者可以攻击并绕过保护算法。
由加州Santa Clara的Intel公司开发的微处理器结构(术语叫Intel结构)也提供对I/O映象寄存器的保护机制。1994年出版的“PentiumProcessor User’s Manual,Volume 3:Architecture andProgramming Manual”的12-1到12-8页和15-5到15-9页提供了这些保护机制的细节。特别地,Intel结构制定了两种I/O访问保护机制的规范。在两种保护机制中,I/O访问检查同地址转换并行进行,以确定它是否满足各种保护要求。
第一种I/O保护机制称为“保护环模式”,提供四种权力级别,分别标记为0到3。正由处理器执行的程序有一个权力级别,术语称为当前权力级别(CPL),存储在CS段寄存器的低两位中。应用程序对IN和OUT这种I/O令的访问由输入/输出保护级别(IOPL)控制,把它同CPL比较,以确定该应用程序能否有效地访问I/O指令。这种保护机制通常允许具有权力级别0的操作系统和具有权力级别1的某些设备驱动程序访问I/O指令,而阻塞应用程序和具有较低权力级别3的设备驱动程序对I/O指令的访问。然而,这种保护机制对于设法获得权力级别0的病毒程序或写得糟糕的具有权力级别1的设备驱动程序并不有效。
第二种I/O保护机制采用I/O许可位图,它控制对每个映射为I/O地址空间的寄存器的访问。该保护机制是上面描述的“锁”机制的一个实例。简单地说,位图的每一位对应一个I/O寄存器字节,在访问I/O映象寄存器之前,处理器测试相关的位。如果被测试的位被设置,那么会产生一个一般保护错。另一方面,如果被测试的位没有被设置,I/O操作就能够进行。然而,这种保护机制具有上面“锁”机制中详细描述的不足。
上述保护机制还有一个缺点,就是或者提供完全的访问,或者拒绝对I/O地址空间的任何访问。这种“全有或全无”的方法不灵活,不允许对I/O映象寄存器提供多种程度或级别的保护。
最后,除了保护问题之外,也迫切需要推动I/O映象寄存器更灵活的使用。这些寄存器通常被限制为执行单一的功能,并根据计算机系统的操作条件,在特定情况下可能包括没有得到充分利用的资源,然而在其他情况下由I/O映象寄存器提供的资源可能存在短缺。
发明概述
根据本发明的第一方面,提出了一种访问计算机系统中输入/输出(I/O)映象寄存器的方法。计算机系统包括至少能在第一和第二操作模式下操作的处理器。本方法的步骤包括,首先接收对I/O映象寄存器的访问请求。然后与I/O映象寄存器相关联的逻辑电路确定处理器是否正在第一模式下操作,第一模式可以是系统管理模式(SMM)。如果逻辑电路确定处理器是在第一模式下操作,那么给处理器提供对I/O映象寄存器第一类的无限制型访问。另一方面,如果逻辑电路确定处理器是在第二模式下操作,那么给处理器提供对I/O映象寄存器第二类的限制型访问。如果给处理器提供了第一类的无限制型访问,那么它会根据存储在专用系统管理内存空间中的代码的指示执行对I/O映象寄存器内容上的操作。
提供第一类访问的步骤可以包含至少提供对I/O映象寄存器的读访问,提供第二类访问的步骤可以包含防止对I/O映象寄存器的访问。另一种可选方案是,提供第一类访问的步骤可以包含提供对I/O映象寄存器的读和写访问,提供第二类访问的步骤可以包含只提供对I/O映象寄存器的读访问。
根据本发明的第二方面,提出了一种控制访问计算机系统中映射到输入/输出(I/O)地址空间的寄存器的方法。计算机系统定义了内存地址空间,I/O地址空间和系统管理模式(SMM)内存空间。计算机系统还包括能在系统管理模式(SMM)下操作的处理器,在系统管理模式中处理器访问SMM内存空间。本方法要求处理器接收系统管理请求,然后作为对接收到系统管理请求的应答,让处理器处于系统管理模式下。之后,给处理器提供第一类对寄存器的访问,并对寄存器的内容执行一个操作。然后让处理器脱离系统管理模式,并提供对寄存器的第二类访问。
根据本发明的第三方面,提出了一种在计算机系统中使用的接口配置。计算机系统能在第一和第二模式下操作。该接口配置包括映射到输入/输出(I/O)地址空间的寄存器,解码器和逻辑电路。解码器有接收确定寄存器的地址数据的输入和给寄存器提供选择信号的输出,逻辑电路配置为检测计算机系统是否在第一模式下操作,并当计算机系统是在第一模式下操作时提供对寄存器的第一类访问,当计算机系统不是在第一模式下操作时提供对寄存器的第二类访问。
本发明扩展到包含上面描述的接口配置的计算机系统。该发明的其他特性可以通过附图和下面的发明详述了解清楚。
附图简述
本发明通过附图举例说明,其中相同的参照数字指示相同的元件,附图如下:
图1是一个状态图,指示处理器的不同操作模式。
图2是一个框图,展示了一种可以实现本发明的计算机系统。
图3A是一个框图,展示了不在系统管理模式下操作时的处理器地址空间。
图3B是一个框图,展示了在系统管理模式下操作时的处理器地址空间。
图4是一个框图,展示了一个计算机系统,它包含依照本发明控制访问I/O映象寄存器的设备。
图5是一个框图,展示了第一种依照本发明控制访问I/O映象寄存器的电路配置的实施例。
图6是一个框图,展示了第二种依照本发明控制访问I/O映象寄存器的电路配置的实施例。
图7是一个框图,展示了第三种依照本发明控制访问I/O映象寄存器的电路配置的实施例。
图8是一个流程图,说明了依照本发明控制访问I/O映象寄存器的方法的一种实施例。
图9是一个流程图,说明了处理器获得对I/O映象寄存器无限制型访问的方法的一种实施例。
图10是依照本发明的系统管理随机访问内存(SMRAM)的图解表示。
图11A是在采用以前的技术的计算机系统中,处理器访问的地址空间的图解表示。
图11B是在采用本发明的计算机系统中,处理器访问的地址空间的图解表示。
详细描述
描述了一种控制访问映射为计算机系统的输入/输出(I/O)地址空间的寄存器的方法和设备。在下面的描述中,出于解释的目的,为了提供对本发明完全的理解,阐述了很多特殊的细节。然而对于本领域技术人员来,显然本发明可以在没有这些特殊细节时实施。
I/O地址空间
采用特定处理器结构的计算机系统提供两个不同的地址空间,称为内存地址空间和I/O地址空间。在I/O接口和其他功能单元中的寄存器被映射到IO地址空间,称为I/O映象寄存器。通常,一个I/O端口有一个专用的I/O映象寄器与之相联系。然而,如果有合适的电路来提供寄存器和端口间的数据定向,那么两个或更多的I/O映象寄存器可以共享一个公共端口。I/O映象寄存器可以在计算机系统中执行很多功能,例如数据缓冲存储,状态和配置指示,以及控制功能。
在一个实施例中,计算机系统允许以两种方式寻址I/O端口,一种称为通过内存映象I/O操作,此时I/O端口出现在内存地址空间中,另一种称为使用I/O指令通过独立的I/O地址空间访问。指令包括IN和OUT指令。
系统管理模式
计算机系统中的处理器可能设计为在几种不同的模式中操作,在不同的模式中允许或禁止不同的特性和功能。特性的允许和禁止可能从很广的考虑范围来推动,包括性能优化、向后的兼容性和功能的透明性。例如,由加州Santa Clara的Intel公司生产的Pentium处理器,能够在如图1所示的四种模式中的任一种操作,称为:
1.实地址模式10;
2.保护模式12;
3.虚拟8086模式14;和
4.系统管理模式(SMM)16。
这些模式在本领域中是众所周知的。
SMM16以一种对应用程序和操作系统透明的方式提供高级系统功能,例如电源管理和安全。比如,在一种外围设备空闲了预定义的时间后关闭其电源的代码就存储在专用的SMM地址空间中,该空间术语称为系统管理随机访问存储器(SMRAM)。当处理器进入SMM16后就可以访问该代码,并且以对操作系统,设备驱动程序和应用程序完全透明的方式执行。这使得应用和操作系统软件开发者没有必要定制包含电源管理之类的特性的软件。
参考图2,展示了一个计算机系统18,它能够在SMM16中操作,并且能够使用本发明。该计算机系统18有它的基本组件处理器20,主机总线22,主机桥24,主存26,中间总线28,扩展桥30,和扩展总线32。
处理器20处理信号,执行计算并控制操作。主机桥24提供主机总线22和中间总线28间的接口。在一个实施例中,中间总线28是外围设备互连(PCI)总线,并根据1995年6月1日出版的外围设备互连(PCI)局部总线规范2.1版操作。扩展桥30提供中间总线28和扩展总线32间的接口,并被一个中间总线仲裁器(没有画出)看作一个PCI设备。在一个实施例中,扩展总线32或者是工业标准结构(ISA)总线,或者是扩展工业标准结构(EISA)总线.
主机桥24包括内存控制器34,来控制对主存26的访问。PCI设备36.1可能是一个输入/输出(I/O)设备或者又一个扩展桥,它通过接口39耦合到中间总线28上。I/O设备的例子是众所周知的,可以包括小计算机系统接口(SCSI)控制器,个人计算机内存卡国际协会(PCMCIA)接口和键盘控制器。图形控制器36.2也通过接口39耦合到中间总线28上,它控制对图形帧缓冲器38的访问。扩展总线主40.1和扩展总线从设备40.2通过接口41耦合到扩展总线32上。例如,扩展总线主40.1可以是直接内存访问(DMA)控制器,扩展总线从设备40.2可以是软盘驱动器。
接口39和41包括一些寄存器(没有画出)和合适的解码逻辑(没有画出),寄存器包括数据缓冲存储、控制和状态寄存器,解码逻辑将在下面更详细地描述。扩展桥30提供中间总线28与扩展总线32间的接口。扩展桥30也可能包括上面提到的寄存器类型和解码逻辑。相应地,在本说明书中术语“接口配置”将用来指提供计算机系统与外围设备(例如接口39和41)间的接口,或者用来指总线桥(例如扩展桥30)。另外,接口配置既可以结合到计算机系统或外围设备中,也可以是一个分立的功能单元。
如图2所示,扩展桥30、图形控制器36.2、PCI设备36.1、扩展总线主40.1和扩展总线从设备40.2耦合在一起,给处理器20提供系统管理中断(SMI#)信号42。SMI#信号42是不可屏蔽中断,它具有比所有其他中断(包括其他不可屏蔽中断)更高的优先级。处理器20耦合成给内存控制器34提供系统管理中断确认(SMIACT#)信号44,SMIACT#信号44是对SMI#信号42的响应而被确立的。每个信号后跟一个#的设计指示该信号是低电平有效的,并相应一定是由低电平转换而确立的。应理解,所有外围设备、总线桥、电源管理电路和安全电路可以耦合成给处理器20提供SMI#信号42。
当发出SMI#信号42后,作为确认,处理器20确立SMIACT#信号44,以通知内存控制器34,下一个处理器访问将是对系统管理随机访问存储器(SMRAM)50的。图3A展示了进入SMM前的处理器地址空间46,而图3B展示了在确立SMIACT#信号44后的处理器地址空间。如图3B所示,SMRAM50被映射到处理器地址空间48中的一个地址区域。在某个设备确立SMI#信号42后,处理器20等待所有未完成的写数据操作完成,然后把寄存器状态信息存储在SMRAM50中。处理器接着通过设置内部寄存器初始SMM状态条件进入SMM16,并开始执行存储在SMRAM50中预定义入口点上的SMI处理程序(没有画出)。在SMM16中,处理器20能够访问全部I/O地址空间和全部内存地址空间。当SMI处理程序被调用时,它将首先检测一个状态向量,以确定SMI#信号42的性质和来源。在确定了该请求的性质和来源后,SMI处理程序就开始执行一段访问和服务于该请求的SMM例程。SMI#信号42可能由许多设备因为许多原因而确立,最常见的请求有:
(a)关闭一个空闲设备的电源;
(b)给有访问请求的设备加电;
(c)修改一个寄存器中数据的格式,以允许计算机系统18与某个外围外围设备的兼容性;
(d)服务操作系统不能提供的动态计算功能(例如对接功能)
(e)调速时钟和振荡器;
(f)为计算机系统保存状态信息;以及
(g)关闭计算机系统的电源。
其他依赖于系统设计的功能也可能引发SMI#信号42的确立。一旦SMI处理程序执行完合适的SMM例程,就会发布一个从系统管理模式返回(RSM)指令,并且恢复在进入SMM时存储的处理器状态。相应地,SMM16提供了透明且方便的方式在计算机系统18中服务系统管理功能。
设备描述
现在翻到图4,它展示的计算机系统18包含了本发明的一个实施例。图中的扩展桥30包含了一组寄存器60.1到60.3,这些寄存器60被映射到I/O地址空间。寄存器60.1到60.3被配置为执行很多功能,包括数据缓冲存储、状态指示以及各种控制功能。扩展桥30还包含解码器62,它耦合成从中间总线28接收地址和控制信息,并从60.1到60.3中选择一个寄存器供处理器20或计算机系统18中的其他设备访问。图中,逻辑电路64也包含在扩展桥30中,它耦合成从处理器20接收SMIACT#信号44。相应地,通过监视SMIACT#信号44,逻辑电路64能够检测到处理器20何时进入SMM16。
逻辑电路64在检测到处理器20处于SMM16时,能够提供对寄存器60.1到60.3的第一类访问,并当它检测到处理器20不是处于SMM16时(即处于实地址模式、保护模式或虚拟8086模式),提供对寄存器60.1到60.3的第二类访问。进一步说,逻辑电路64在检测到处理器20处于SMM16时,允许对寄存器60.1到60.3完全的读/写访问,而当处理器不是处于SMM16时,防止或阻塞对寄存器60.1到60.3的访问。图4显示,逻辑电路64耦合在解码器上、并给解码器62提供输入来完成上面描述的功能。然而应该明白,逻辑电路64可以组合到解码器62中,或者作为选择,放在解码器62的下游,当处理器20不是处于SMM16时选通从解码器62来的选择信号。
进一步说,由逻辑电路64允许的第一类访问不一定是完全的读/写访问,第二类访问也不一定是完全的访问阻塞。例如,第一类访问可以是只读访问,同时第二类访问提供对某一特定寄存器访问的完全阻塞。另外也可以采用,第一类访问可以是完全的读/写访问,同时第二类访问只允许对寄存器的读访问。
在处理器20不是处于SMM16时,上面描述的第一和第二类访问通过全部禁止或只是限制对寄存器的访问,能够有效地提供对寄存器的不同程度的保护。相应地,上面描述的配置提供了一种简单而有效的针对错误程序、病毒程序、或者甚至操作系统核心的保护,否则可能已经允许访问并非法修改寄存器60的内容了。当寄存器60.1到60.3中的任一个用于电源管理和系统配置目的时,上面描述的提供给寄存器60的安全保护就特别有价,因为存储在这种寄存器中的数据被破坏可能产生严重的结果,包括对计算机系统18中的数据完整性、软件甚至物理设备。
第一和第二类访问不一定与对寄存器60的访问程度相关,也可以与寄存器60它们自己操作的方式相关。例如,由逻辑电路64允许的第一类访问可以是促使把寄存器60.1当成串行端口访问,而第二类访问可以是允许把寄存器60.1当成并行端口访问,反之亦然。
图5到7更详细地描述了对I/O映象寄存器使用第一和第二类访问的电路配置。首先参照图5,该图展示了电路配置66,包括具有控制/状态寄存器70和数据寄存器72的芯片68,寄存器70和72被映射到I/O地址空间。该电路配置66还包括耦合成从地址总线76接收地址数据,以及来自控制总线78的内存/输入-输出(M/IO)信号的地址解码器74。电路方案66也包括与门80形式的逻辑电路,该逻辑电路耦合成从地址解码器74接收选择信号82以及从控制总线78接收SMIACT#信号84。与门80也耦合成给芯片68提供片选择信号(86)。相应地,通过允许与门80选通来自地址解码器74的选择信号82,与门80能够在产生SMIACT#信号84的处理器不是在SMM16下操作时防止对寄存器70和72的任何访问。通过这种方法,能够在处理器不是在SMM16下时保护寄存器70和72不受破坏或未授权的修改,
图6展示了本发明的另一个实施例,其中电路配置88包含I/O映象寄存器90,以及地址解吗器92。地址解码器92耦合成从地址总线76接收地址数据,以及从控制总线78接收内存/输入-输出(M/IO)信号。电路88还包含由与门94和96、或门98组成的逻辑电路。与门94耦合成从控制总线78接收读/写(R/W)信号100,以及从地址解码器92接收选择信号102,并给或门98输出SELECT1信号104。与门96耦合成从地址解码器92接收选择信号102,以及从控制总线接收SMIACT#信号106,并给或门98输出SELECT2信号108。或门98给寄存器90输出寄存器选择信号110。相应地,应该意识到,当撤销SMIACT#信号106后,图4所示解码器92和逻辑电路配置只允许对寄存器90的读访问。然而,当确立了SMIACT#信号106后,对寄存器90的读和写操作都是允许的。
图7展示了本发明再另外的一个实施例,该电路配置110中,包含一对映射到同一I/O地址的寄存器112和114。电路配置110还包含地址解码器116。地址解码器116耦合成从地址总线76接收地址信息,以及从控制总线78接收内存/输入-输出(M/IO)信号。电路配置110还包含与门118和120,以及多路复用器(MUX)122。与门118和120各自从地址解码器116接收选择信号124。与门118还耦合成从控制总线接收SMIACT#信号126,而与门120耦合成从反相器130接收反相的SMIACT#信号128。当产生SMIACT#信号134的处理器不是在SMM16下时,与门118给寄存器112提供SELECT1信号132。相似地,当产生SMIACT#信号的处理器是在SMM16下时,与门120给寄存器114提供SELECT2信号。多路复用器122是一个双向多路复用器,根据SMIACT#信号126是高还是低,把寄存器112或114中的一个耦合到数据总线79。进一步说,当确立了SMIACT#信号时(即低),指示处理器处于SMM16下,多路复用器122将把寄存器114耦合到数据总线79,以供读或写操作。否则,没有确立SMIACT#信号126(即高),指示处理器不是处于SMM16下,多路复用器122将把寄存器122耦合到数据总线79。
相应地,当处理器不是在SMM16下时,寄存器114的内容是不可访问的,并且当处理器不是处于SMM16下时,受到保护以防止病毒或错误的程序的访问和可能的破坏。
还应该意识到,上面描述的寄存器可以具有不同的大小,并且相应地,本发明可以用来提供保护的分辨率也是可变的。例如,上面描述的每个寄存器可以具有到124位的大小。
方法描述
现在翻到图8,它图示了一种控制对I/O映象寄存器访问的方法132。该方法包括以下步骤:首先,在步骤134与某个寄存器相关联的解码器和逻辑电路接收到一个对该寄存器的访问请求。在步骤136,逻辑电路检测处理器模式。进一步说,就是通过检测由处理器产生的SMIACT#信号来确定发布访问请求的处理器是否工作在SMM下。在步骤138作出决定,如果处理器是工作在SMM下,那么本方法前进到步骤140,处理器被授权对I/O映象寄存器无限制的访问。另一方面,如果在步骤138确定处理器不是工作在SMM下,那么本方法前进到步骤142,处理器或者被授权对I/O映象寄存器受限制的访问,或者禁止访问。
图9图示了一种处理器获得对I/O映象寄存器无限制访问的方法150。在步骤152,一种设备(例如总线桥,它包含一个映射到I/O地址空问并执行电源管理功能的寄存器)通过确立一个SMI#信号给处理器发布一个系统管理中断请求。在步骤154,处理器通过确立一个SMIACT#信号确认该请求。然后处理器将SMRAM映射到内存地址空间的一块存储区域,如图3B所示,并在步骤156把处理器状态信息写到SMRAM。图10提供了SMRAM180的图解表示,并显示了在步骤156写到SMRAM180的处理器状态信息182的位置。在步骤158,处理器进入SMM,在步骤160,处理器跳转到SMRAM180中的入口点184去访问SMI处理程序例程186。SMI处理程序186然后检查状态寄存器(术语也称为状态向量)以确定步骤162的SMI请求的性质和来源。在本例中,状态寄存器显示该SMI请求由上面描述的总线桥产生,从而其控制寄存器的内容需要修改。例如,控制寄存器可能包含一个“调速”值,指示处理器将以全操作频率的某个百分比操作。相应地,状态寄存器将显示SMI请求是作为对需要“降速”处理器的操作频率的响应而发布的,并相应降低“调速”值。在步骤164,如上面所描述的,由于SMIACT#信号的确立,SMI处理程序例程186被给予对相关I/O映象寄存器无限制的访问。在步骤166,SMI处理程序例程186对寄存器内容(即对“调速”值)执行请求的操作。
进一步说,SMI处理程序例程186执行I/O映象寄存器访问和修改代码188,这是SMI处理程序例程的组成部分,如图10所示。执行完188的代码后,在步骤168 SMI处理程序例程发布一条从SMM返回(RSM)指令。然后在步骤170,处理器就检索处理器状态信息182,并恢复在步骤152SMI#信号发布之前存在的处理器状态。
图11A和11B展示了两种地址空间模式,图11A的地址空间模式是在以前的技术中实现的,图11B的地址空间模式则由本发明产生。在图11A所展示的地址模式中,当处理器190处于操作的实模式、受保护或虚拟8086模式时,显示处理器190能够访问圆圈192指示的地址空间,而处于SMM时,能够访问圆圈194指示的地址空间。显然,处理器190在所有操作模式下都能够访问全部I/O映象空间。在图11B所示的模式中,当处理器190处于实、受保护或虚拟8086操作模式时,它能够访问圆圈196指示的地址空间,而处于SMM时,能够访问圆圈198指示的地址空间。如圆圈198所示,本发明允许建立指定的SMM I/O映象地址空间,该空间只有处于SMM模式时才是可以访问的。
本发明提供了处理器或其他计算机设备对I/O映象寄存器控制访问的有效方式。由于电路的简单性,实现本发明的电路可以在不导致高无用空间损失的情况下得到。
本发明允许建立受保护的I/O地址空间,该空间仅在处理器在SMM下操作时才能访问。由于对受保护的I/O地址空间的保护仅在处理器在SMM下操作时才取消,因此本发明针对错误和病毒程序、以及操作系统的非法访问,对I/O映象寄存器的内容提供了有效的保护。本发明也利于允许建立多种深度或级别的保护。例如,保护可以是绝对的,或者保护仅仅扩展为阻塞对受保护的I/O映象寄存器的写事务。
本发明可以允许扩展功能性的I/O映象寄存器配置。例如,在另一个实施例中,根据处理器所处的操作模式,本发明可以允许一个I/O映象寄存器被配置为一个串行或并行的数据缓冲寄存器。
到此,已经描述完了一种控制访问映射为计算机系统中I/O地址空间的寄存器的方法和设备。虽然本发明是以特别范例的实施例为参考描述的,但是显然,可以对这些实施例作不同的修改和变动而不脱离本发明的宽广的精神和范围。相应地,本说明和图应视为示例,而不是限制。

Claims (18)

1.一种对计算机系统输入/输出(I/O)映象寄存器提供访问的方法,该计算机系统包括可以在第一和第二操作模式下操作的处理器,该方法包括以下步骤:
接收对I/O映象寄存器的访问请求;
确定处理器是否在第一操作模式下操作;
如果处理器是在第一操作模式下操作,则提供对I/O映象寄存器第一类的访问;并且
如果处理器不是在第一操作模式下操作,则提供对I/O映象寄存器第二类访问。
2.权利要求1的方法,其中第一操作模式是系统管理模式,该模式下处理器访问专用的系统管理内存地址空间,并且其确定的步骤包括确定处理器是否在系统管理模式下操作。
3.权利要求2的方法,还包括一个步骤:如果提供了对I/O映象寄存器的第一类访问,则在存储在专用系统管理内存地址空间的代码的指导下,对I/O映象寄存器的内容执行一个操作。
4.权利要求1的方法,其中第二类访问相对于第一类访问是受限制的,以便在处理器不是在第一模式下操作时,保护I/O映象寄存器不受预定义的访问类型的影响。
5.权利要求4的方法,其中提供第一类访问的步骤包括至少提供对I/O映象寄存器读访问,并且其中提供第二类访问的步骤包括防止对I/O映象寄存器的访问。
6.权利要求5的方法,其中提供第一类访问的步骤包括提供对I/O映象寄存器的读和写访问。
7.权利要求4的方法,其中提供第一类访问的步骤包括提供对I/O映象寄存器的读和写访问,并且其中提供第二类访问的步骤包括只提供对I/O映象寄存器的读访问。
8.权利要求2的方法,其中确定处理器是否在系统管理模式下操作的步骤包括以下步骤:
从处理器接收系统管理模式状态信号;及
监视系统管理模式状态信号以确定处理器是否在系统管理模式下操作。
9.一种提供访问映射到计算机系统中输入/输出(I/O)地址空间的寄存器的方法,该方法包括以下步骤:
处理器接收系统管理请求;
作为对接收到系统管理请求的响应,让处理器处于系统管理模式;
给处理器提供对计算机系统中映射到输入/输出(I/O)地址空间的寄存器的第一类访问;
对寄存器的内容执行一个操作;
让处理器脱离系统管理模式;及
给处理器提供对寄存器的第二类访问。
10.权利要求9的方法,其中,当处于系统管理模式下时,计算机系统访问专用的SMM内存地址空间,并且其中处理器在存储于SMM内存地址空间中的代码的指导下执行对寄存器内容的操作。
11.一种使用于计算机系统中的接口装置,该计算机系统可以在第一和第二操作模式下操作,该接口装置包括:
一个映射到输入/输出(I/O)地址空间的寄存器;
一个解码器,它具有一个输入耦合成接收标识寄存器的地址数据,并具有一个输出耦合成输出选择信号以指示该地址数据标识该寄存器。
逻辑电路,配置为检测何时计算机系统在第一模式下操作,并当计算机系统在第一模式下操作时提供对寄存器的第一类访问,而当计算机系统不是在第一模式下操作时提供对寄存器的第二类访问。
12.权利要求11的接口装置,其中第一操作模式是系统管理模式,该模式下计算机系统的处理器访问专用的系统管理内存地址空间,并且逻辑电路配置为当处理器在系统管理模式下操作时,提供对寄存器的第一类访问。
13.权利要求11的接口装置,其中逻辑电路包含一个输入,耦合成从计算机系统的处理器接收信号,该信号指示计算机系统正在第一模式下操作。
14.权利要求11的接口装置,其中第二类访问相对于第一类访问是受限制的,以便在处理器不是在第一模式下操作时,保护I/O映象寄存器不受预定义的访问类型的影响。
15.权利要求14的接口装置,其中逻辑电路配置为当计算机系统在第一模式下操作时至少提供对寄存器的读访问,并且当计算机系统不是在第一模式下操作时防止对寄存器的访问。
16.权利要求14的接口装置,其中逻辑电路配置为当计算机系统在第一模式下操作时,提供对寄存器的读和写访问,并且当计算机系统不在第一模式洗操作时,仅提供对寄存器的读访问。
17.权利要求11的接口装置,其中逻辑电路配置为当计算机系统在第一模式下操作时,对寄存器的访问提供为第一类端口,并且当计算机系统不在第一模式下操作时,对寄存器的访问提供为第二类端口。
18.一种计算机系统,该系统可以在系统管理模式(SMM)下操作,包括:
一个处理器,当该计算机在系统管理模式下操作时,该处理器可以访问专用的SMM内存地址空间;
一个耦合到处理器上的接口装置,包括:
一个被映射到输入/输出(I/O)地址空间的寄存器;
一个解码器,它具有一个输入,耦合成接收标识寄存器的地址数据,还具有一个输出,耦合成给寄存器提供选择信号;以及
逻辑电路,配置为检测计算机系统何时在系统管理模式下操作,并且当计算机系统在系统管理模式下操作时,给处理器提供对寄存器的第一类访问,以及当计算机系统不是在系统管理模式下操作时,给处理器提供对寄存器的第二类访问。
CN97197324A 1996-06-21 1997-05-22 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统 Expired - Lifetime CN1132107C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/667,789 1996-06-21
US08/667,789 US5729760A (en) 1996-06-21 1996-06-21 System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode

Publications (2)

Publication Number Publication Date
CN1228177A true CN1228177A (zh) 1999-09-08
CN1132107C CN1132107C (zh) 2003-12-24

Family

ID=24679650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97197324A Expired - Lifetime CN1132107C (zh) 1996-06-21 1997-05-22 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统

Country Status (10)

Country Link
US (1) US5729760A (zh)
EP (1) EP0979460B1 (zh)
JP (1) JP4234202B2 (zh)
KR (1) KR100298620B1 (zh)
CN (1) CN1132107C (zh)
AU (1) AU3369497A (zh)
BR (1) BR9709876A (zh)
DE (1) DE69718679T2 (zh)
TW (1) TW393599B (zh)
WO (1) WO1997049041A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356286C (zh) * 2001-11-01 2007-12-19 英特尔公司 在多处理器环境中单方地加载安全操作系统的装置和方法
CN100357897C (zh) * 2005-07-04 2007-12-26 威盛电子股份有限公司 决定阻隔信号的方法
US7353312B2 (en) 2005-06-28 2008-04-01 Via Technologies Inc. Method and apparatus for detecting conditions for blocking a CPU's receipt of signals returned from a peripheral device
CN101351775B (zh) * 2005-12-30 2011-04-13 英特尔公司 将系统管理代码区域访问转向
CN102428471A (zh) * 2009-05-18 2012-04-25 惠普开发有限公司 从系统管理模式确定信任级别的系统和方法
CN102467644A (zh) * 2010-11-17 2012-05-23 英业达股份有限公司 系统管理中断的执行方法
CN106326130A (zh) * 2015-06-16 2017-01-11 联芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统
CN111356989A (zh) * 2017-11-14 2020-06-30 国际商业机器公司 保护存储器内配置状态寄存器

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5974440A (en) * 1996-03-25 1999-10-26 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for interrupt handling during virtual task operation
US6092141A (en) * 1996-09-26 2000-07-18 Vlsi Technology, Inc. Selective data read-ahead in bus-to-bus bridge architecture
US5903742A (en) * 1996-10-30 1999-05-11 Texas Instruments Incorporated Method and circuit for redefining bits in a control register
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US7107371B1 (en) 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6088370A (en) 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US6029248A (en) * 1997-12-15 2000-02-22 Lucent Technologies Inc. Corporation Locking system to protect a powered component interface from erroneous access by an attached, powered-off component
US6145030A (en) * 1998-03-27 2000-11-07 Intel Corporation System for managing input/output address accesses at a bridge/memory controller
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6098117A (en) * 1998-04-20 2000-08-01 National Instruments Corporation System and method for controlling access to memory configured within an I/O module in a distributed I/O system
US6421690B1 (en) 1998-04-30 2002-07-16 Honeywell International Inc. Computer memory management system
US6119191A (en) * 1998-09-01 2000-09-12 International Business Machines Corporation Performing PCI access cycles through PCI bridge hub routing
US20030110317A1 (en) * 1998-11-03 2003-06-12 Jasmin Ajanovic Method and apparatus for an improved interface between a memory control hub and an input/output control hub
US6425024B1 (en) * 1999-05-18 2002-07-23 International Business Machines Corporation Buffer management for improved PCI-X or PCI bridge performance
US6711673B1 (en) * 2000-01-03 2004-03-23 Advanced Micro Devices, Inc. Using a model specific register as a base I/O address register for embedded I/O registers in a processor
US6564276B1 (en) * 2000-01-25 2003-05-13 Dell Usa L.P. Access restriction of environmental circuits
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7272831B2 (en) 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
TW498213B (en) * 2001-04-18 2002-08-11 Via Tech Inc Method and chipset for supporting interrupts of system management mode in multiple-CPU system
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7426644B1 (en) * 2001-12-05 2008-09-16 Advanced Micro Devices, Inc. System and method for handling device accesses to a memory providing increased memory access security
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7028149B2 (en) 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7127548B2 (en) 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US6931457B2 (en) * 2002-07-24 2005-08-16 Intel Corporation Method, system, and program for controlling multiple storage devices
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7219241B2 (en) * 2002-11-30 2007-05-15 Intel Corporation Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
TW200401188A (en) * 2003-09-16 2004-01-16 Via Tech Inc Debug device and method thereof
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
CN100342348C (zh) * 2003-10-08 2007-10-10 威盛电子股份有限公司 一种除错装置及其方法
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) * 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) * 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7197433B2 (en) * 2004-04-09 2007-03-27 Hewlett-Packard Development Company, L.P. Workload placement among data centers based on thermal efficiency
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US20060136608A1 (en) * 2004-12-22 2006-06-22 Gilbert Jeffrey D System and method for control registers accessed via private operations
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
CA2551045C (en) * 2005-06-30 2008-04-22 Hitachi, Ltd. Input-output control apparatus, input-output control method, process control apparatus and process control method
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US7496727B1 (en) 2005-12-06 2009-02-24 Transmeta Corporation Secure memory access system and method
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8250656B2 (en) * 2007-11-21 2012-08-21 Mikhail Y. Vlasov Processor with excludable instructions and registers and changeable instruction coding for antivirus protection
CN102043675B (zh) * 2010-12-06 2012-11-14 北京华证普惠信息股份有限公司 一种基于任务处理请求任务量大小的线程池管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357628A (en) * 1992-03-25 1994-10-18 Intel Corporation Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt
DE4309532C2 (de) * 1992-03-25 1996-10-31 Intel Corp Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
US5475829A (en) * 1993-03-22 1995-12-12 Compaq Computer Corp. Computer system which overrides write protection status during execution in system management mode
US5509139A (en) * 1993-03-22 1996-04-16 Compaq Computer Corp. Circuit for disabling an address masking control signal using OR gate when a microprocessor is in a system management mode
US5392420A (en) * 1993-09-30 1995-02-21 Intel Corporation In circuit emulator(ICE) that flags events occuring in system management mode(SMM)
US5630052A (en) * 1993-09-30 1997-05-13 Intel Corporation System development and debug tools for power management functions in a computer system
US5623673A (en) * 1994-07-25 1997-04-22 Advanced Micro Devices, Inc. System management mode and in-circuit emulation memory mapping and locking method
US5638532A (en) * 1994-12-06 1997-06-10 Digital Equipment Corporation Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US5544344A (en) * 1994-12-06 1996-08-06 Digital Equipment Corporation Apparatus for caching smram in an intel processor based computer system employing system management mode
US5721877A (en) * 1995-05-31 1998-02-24 Ast Research, Inc. Method and apparatus for limiting access to nonvolatile memory device
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356286C (zh) * 2001-11-01 2007-12-19 英特尔公司 在多处理器环境中单方地加载安全操作系统的装置和方法
US7353312B2 (en) 2005-06-28 2008-04-01 Via Technologies Inc. Method and apparatus for detecting conditions for blocking a CPU's receipt of signals returned from a peripheral device
CN100357897C (zh) * 2005-07-04 2007-12-26 威盛电子股份有限公司 决定阻隔信号的方法
US8683158B2 (en) 2005-12-30 2014-03-25 Intel Corporation Steering system management code region accesses
CN101351775B (zh) * 2005-12-30 2011-04-13 英特尔公司 将系统管理代码区域访问转向
CN102428471A (zh) * 2009-05-18 2012-04-25 惠普开发有限公司 从系统管理模式确定信任级别的系统和方法
US8850601B2 (en) 2009-05-18 2014-09-30 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
CN102428471B (zh) * 2009-05-18 2016-05-25 惠普开发有限公司 从系统管理模式确定信任级别的系统和方法
CN102467644A (zh) * 2010-11-17 2012-05-23 英业达股份有限公司 系统管理中断的执行方法
CN102467644B (zh) * 2010-11-17 2014-09-03 英业达股份有限公司 系统管理中断的执行方法
CN106326130A (zh) * 2015-06-16 2017-01-11 联芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统
CN106326130B (zh) * 2015-06-16 2019-03-15 辰芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统
CN111356989A (zh) * 2017-11-14 2020-06-30 国际商业机器公司 保护存储器内配置状态寄存器
CN111356989B (zh) * 2017-11-14 2023-12-26 国际商业机器公司 用于促进计算环境内的处理的方法、系统和介质

Also Published As

Publication number Publication date
JP2000513471A (ja) 2000-10-10
KR20000022083A (ko) 2000-04-25
AU3369497A (en) 1998-01-07
EP0979460B1 (en) 2003-01-22
WO1997049041A1 (en) 1997-12-24
CN1132107C (zh) 2003-12-24
JP4234202B2 (ja) 2009-03-04
DE69718679D1 (de) 2003-02-27
EP0979460A1 (en) 2000-02-16
BR9709876A (pt) 1999-08-10
KR100298620B1 (ko) 2001-09-06
TW393599B (en) 2000-06-11
DE69718679T2 (de) 2003-06-12
EP0979460A4 (en) 2000-03-15
US5729760A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
CN1132107C (zh) 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
US7669243B2 (en) Method and system for detection and neutralization of buffer overflow attacks
EP0306702B1 (en) Virtual input/output commands
EP1742152B1 (en) Method and system for a multi-sharing memory access control
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
CA1200919A (en) Protection of critical storage content in a data processing system
CN103842976A (zh) 具有保护模式以防止i/o装置进行存储器访问的输入/输出存储器管理单元
CN1306645A (zh) 虚拟数据存储(vds)系统
JP2006506754A5 (zh)
CN101351776A (zh) 用于管理存储器访问、与存储位置相关联的标识符
CN101266635A (zh) 提供对临界存储器区域的受保护访问
CN1168502A (zh) 访问数据处理系统中寄存器的方法和装置
CN1585932A (zh) 内存管理系统及依据线性地址的内存存取保密的方法
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US20220180009A1 (en) Peripheral component interconnect express protection controller
US10565141B1 (en) Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks
JP2005521941A (ja) コンパートメント化されたセキュリティのための入出力許可ビットマップ
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
CN1628284A (zh) 安全执行模式异常
US20060143417A1 (en) Mechanism for restricting access of critical disk blocks
WO2008030727A2 (en) Access control of memory space in microprocessor systems
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
JP2002536718A (ja) アドレスリマッピング保証装置および方法
US5802350A (en) System and method for selecting an interrupt system based upon the operating system of a multiprocessor system
Liu et al. The Implementation of Hard-Disk Protection Method Based on Disk Filter Driver

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20031224

CX01 Expiry of patent term