CN1132107C - 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统 - Google Patents
计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统 Download PDFInfo
- Publication number
- CN1132107C CN1132107C CN97197324A CN97197324A CN1132107C CN 1132107 C CN1132107 C CN 1132107C CN 97197324 A CN97197324 A CN 97197324A CN 97197324 A CN97197324 A CN 97197324A CN 1132107 C CN1132107 C CN 1132107C
- Authority
- CN
- China
- Prior art keywords
- register
- processor
- visit
- computer system
- under
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
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映象寄存器提供相对有效的保护,但它并不能针对象病毒程序之类的智能型敌人提供足够的保护。例如,病毒程序可以获得对“锁”寄存器的访问并改写它,或者可以攻击并绕过保护算法。
由加州Santa Clara的Intel公司开发的微处理器结构(术语叫Intel结构)也提供对I/O映象寄存器的保护机制。1994年出版的“PentiumProcessor 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接口和其他功能单元中的寄存器被映射到I/O地址空间,称为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下时,受到保护以防止病毒或错误的程序的访问和可能的破坏。
还应该意识到,上面描述的寄存器可以具有不同的大小,并且相应地,本发明可以用来提供保护的分辨率也是可变的。例如,上面描述的每个寄存器可以具有1到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 (13)
1.一种对计算机系统输入/输出(I/O)映象寄存器提供访问的方法,该计算机系统包括可以在第一和第二操作模式下操作的处理器,该方法包括以下步骤:
接收对在一个与该I/O映象寄存器相关的逻辑电路上的该I/O映象寄存器的访问请求;
使用所述逻辑电路监视来自所述处理器的第一模式状态指示以确定处理器是否在第一操作模式下操作;
如果处理器是在第一操作模式下操作,则提供对I/O映象寄存器的第一类访问,该第一操作模式是在其下所述处理器能够操作的多种模式的一种;并且
如果处理器不是在第一操作模式下操作,则提供对I/O映象寄存器的第二类访问,
其中,所述第二类访问相对于第一类访问是受限制的,从而提供对所述I/O映象寄存器的保护,防止处理器不是在第一操作模式下操作时的预定访问类型。
2.权利要求1的方法,其特征在于,所述第一操作模式是系统管理模式,该模式下处理器访问专用的系统管理内存地址空间,并且其确定的步骤包括确定处理器是否在系统管理模式下操作。
3.权利要求2的方法,还包括一个步骤:如果提供了对I/O映象寄存器的第一类访问,则在存储在专用系统管理内存地址空间的代码的指导下,对I/O映象寄存器的内容执行一个操作。
4.权利要求1的方法,其特征在于,所述提供第一类访问的步骤包括至少提供对I/O映象寄存器读访问,并且其中提供第二类访问的步骤包括防止对I/O映象寄存器的访问。
5.权利要求4的方法,其特征在于,所述提供第一类访问的步骤包括提供对I/O映象寄存器的读和写访问。
6.权利要求1的方法,其特征在于,所述提供第一类访问的步骤包括提供对I/O映象寄存器的读和写访问,并且其中提供第二类访问的步骤包括只提供对I/O映象寄存器的读访问。
7.权利要求2的方法,其特征在于,所述确定处理器是否在系统管理模式下操作的步骤包括以下步骤:
从处理器接收第一模式状态指示,它包括系统管理模式状态指示;及
使用所述逻辑电路监视系统管理模式状态指示以确定处理器是否在系统管理模式下操作。
8.一种使用于计算机系统中的接口装置,该计算机系统可以在第一和第二操作模式下操作,该接口装置包括:
一个映射到输入/输出(I/O)地址空间的寄存器;
一个解码器,它具有一个输入耦合成接收标识寄存器的地址数据,并具有一个输出耦合成输出选择指示以指示该地址数据标识该寄存器;和
逻辑电路,配置为监视来自处理器的第一模式状态指示以检测何时计算机系统在第一模式下操作,并当计算机系统在第一模式下操作时提供对寄存器的第一类访问,而当计算机系统不是在第一模式下操作时提供对寄存器的第二类访问,所述第一操作模式是在其下所述处理器能够操作的多种模式的一种,并且其中所述第二类访问相对于第一类访问是受限制的,从而提供对所述I/O映象寄存器的保护,防止处理器不是在第一操作模式下操作时的预定访问类型。
9.权利要求8的接口装置,其特征在于,所述第一操作模式是系统管理模式,该模式下所述计算机系统的处理器访问专用的系统管理内存地址空间,并且逻辑电路配置为当处理器在系统管理模式下操作时,提供对寄存器的第一类访问。
10.权利要求8的接口装置,其特征在于,所述逻辑电路配置为当计算机系统在第一模式下操作时至少提供对寄存器的读访问,并且当计算机系统不是在第一模式下操作时防止对寄存器的访问。
11.权利要求8的接口装置,其特征在于,所述逻辑电路配置为当计算机系统在第一模式下操作时,提供对寄存器的读和写访问,并且当计算机系统不在第一模式下操作时,仅提供对寄存器的读访问。
12.权利要求8的接口装置,其特征在于,所述逻辑电路配置为当计算机系统在第一模式下操作时,对寄存器的访问提供为第一类端口,并且当计算机系统不在第一模式下操作时,对寄存器的访问提供为第二类端口。
13.一种计算机系统,该系统可以在系统管理模式(SMM)下操作,包括:
一个处理器,当该计算机系统在系统管理模式下操作时,该处理器可以访问专用的SMM内存地址空间;
一个耦合到处理器上的接口装置,包括:
一个被映射到输入/输出(I/O)地址空间的寄存器;
一个解码器,它具有一个输入,耦合成接收标识寄存器的地址数据,还具有一个输出,耦合成给寄存器提供选择指示;以及
逻辑电路,配置为监视来自所述处理器的SMM状态指示以检测计算机系统何时在系统管理模式下操作,并且当计算机系统在系统管理模式下操作时,通过处理器提供对寄存器的第一类访问,以及当计算机系统不是在系统管理模式下操作时,通过处理器提供对寄存器的第二类访问,其中所述第二类访问相对于第一类访问是受限制的,从而提供对所述I/O映象寄存器的保护,防止处理器不是在SMM状态下操作时的预定访问类型。
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 CN1228177A (zh) | 1999-09-08 |
CN1132107C true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1897009B (zh) * | 2005-06-30 | 2010-05-12 | 株式会社日立制作所 | 输入输出控制装置、输入输出控制方法、过程控制装置以及过程控制方法 |
Families Citing this family (133)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US8639625B1 (en) | 1995-02-13 | 2014-01-28 | Intertrust Technologies Corporation | 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 |
US6088370A (en) | 1997-09-22 | 2000-07-11 | Intel Corporation | Fast 16 bit, split transaction I/O bus |
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 |
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 |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6957332B1 (en) | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US7082615B1 (en) | 2000-03-31 | 2006-07-25 | Intel Corporation | Protecting software environment in isolated execution |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US7089418B1 (en) | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6996710B1 (en) | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US7111176B1 (en) | 2000-03-31 | 2006-09-19 | Intel Corporation | Generating isolated bus cycles for isolated execution |
US7013484B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
US7073071B1 (en) | 2000-03-31 | 2006-07-04 | Intel Corporation | Platform and method for generating and utilizing a protected audit log |
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 |
US7013481B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US7356817B1 (en) | 2000-03-31 | 2008-04-08 | Intel Corporation | Real-time scheduling of virtual machines |
US6934817B2 (en) * | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US7194634B2 (en) | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US6976162B1 (en) * | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7793111B1 (en) * | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7389427B1 (en) | 2000-09-28 | 2008-06-17 | Intel Corporation | Mechanism to secure computer output from software attack using isolated execution |
US7215781B2 (en) * | 2000-12-22 | 2007-05-08 | Intel Corporation | Creation and distribution of a secret value between two devices |
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 |
US7225441B2 (en) * | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
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 |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
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 |
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 |
US20020144121A1 (en) * | 2001-03-30 | 2002-10-03 | Ellison Carl M. | Checking file integrity using signature generated in isolated execution |
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 |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
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 |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
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 |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7028149B2 (en) | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
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 |
US7076669B2 (en) * | 2002-04-15 | 2006-07-11 | Intel Corporation | Method and apparatus for communicating securely with a token |
US20030196100A1 (en) * | 2002-04-15 | 2003-10-16 | Grawrock David W. | Protection against memory attacks following reset |
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 |
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 |
US6996748B2 (en) | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with 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 |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
US7318235B2 (en) * | 2002-12-16 | 2008-01-08 | Intel Corporation | Attestation using both fixed token and portable token |
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 |
US20040128345A1 (en) * | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
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 |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7366305B2 (en) * | 2003-09-30 | 2008-04-29 | Intel Corporation | Platform and method for establishing trust without revealing identity |
US7237051B2 (en) | 2003-09-30 | 2007-06-26 | Intel Corporation | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts 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 |
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 |
US20050108534A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Providing services to an open platform implementing subscriber identity module (SIM) capabilities |
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 |
TWI273496B (en) * | 2005-06-28 | 2007-02-11 | Via Tech Inc | Method for determining blocking signal |
CN100357897C (zh) * | 2005-07-04 | 2007-12-26 | 威盛电子股份有限公司 | 决定阻隔信号的方法 |
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 |
US7519754B2 (en) * | 2005-12-28 | 2009-04-14 | Silicon Storage Technology, Inc. | Hard disk drive cache memory and playback device |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US8683158B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Steering system management code region accesses |
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 |
WO2010134902A1 (en) * | 2009-05-18 | 2010-11-25 | Hewlett-Packard Development Company, L.P. | Systems and methods of determining a trust level from system management mode |
CN102467644B (zh) * | 2010-11-17 | 2014-09-03 | 英业达股份有限公司 | 系统管理中断的执行方法 |
CN102043675B (zh) * | 2010-12-06 | 2012-11-14 | 北京华证普惠信息股份有限公司 | 一种基于任务处理请求任务量大小的线程池管理方法 |
CN106326130B (zh) * | 2015-06-16 | 2019-03-15 | 辰芯科技有限公司 | 寄存器地址空间的控制方法、控制器及片上系统 |
US10664181B2 (en) * | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
Family Cites Families (11)
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 |
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 |
US5475829A (en) * | 1993-03-22 | 1995-12-12 | Compaq Computer Corp. | Computer system which overrides write protection status during execution in 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 |
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 |
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 |
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 |
-
1996
- 1996-06-21 US US08/667,789 patent/US5729760A/en not_active Expired - Lifetime
-
1997
- 1997-05-22 JP JP50298598A patent/JP4234202B2/ja not_active Expired - Fee Related
- 1997-05-22 AU AU33694/97A patent/AU3369497A/en not_active Abandoned
- 1997-05-22 DE DE69718679T patent/DE69718679T2/de not_active Expired - Lifetime
- 1997-05-22 BR BR9709876A patent/BR9709876A/pt not_active IP Right Cessation
- 1997-05-22 KR KR1019980710487A patent/KR100298620B1/ko not_active IP Right Cessation
- 1997-05-22 CN CN97197324A patent/CN1132107C/zh not_active Expired - Lifetime
- 1997-05-22 EP EP97929698A patent/EP0979460B1/en not_active Expired - Lifetime
- 1997-05-22 WO PCT/US1997/008946 patent/WO1997049041A1/en active IP Right Grant
- 1997-06-21 TW TW086108782A patent/TW393599B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1897009B (zh) * | 2005-06-30 | 2010-05-12 | 株式会社日立制作所 | 输入输出控制装置、输入输出控制方法、过程控制装置以及过程控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US5729760A (en) | 1998-03-17 |
EP0979460A1 (en) | 2000-02-16 |
DE69718679D1 (de) | 2003-02-27 |
JP4234202B2 (ja) | 2009-03-04 |
EP0979460B1 (en) | 2003-01-22 |
KR20000022083A (ko) | 2000-04-25 |
JP2000513471A (ja) | 2000-10-10 |
EP0979460A4 (en) | 2000-03-15 |
AU3369497A (en) | 1998-01-07 |
TW393599B (en) | 2000-06-11 |
BR9709876A (pt) | 1999-08-10 |
WO1997049041A1 (en) | 1997-12-24 |
KR100298620B1 (ko) | 2001-09-06 |
DE69718679T2 (de) | 2003-06-12 |
CN1228177A (zh) | 1999-09-08 |
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 | |
US20030188122A1 (en) | Mapping of interconnect configuration space | |
CN103842976A (zh) | 具有保护模式以防止i/o装置进行存储器访问的输入/输出存储器管理单元 | |
CN1306645A (zh) | 虚拟数据存储(vds)系统 | |
US20030187904A1 (en) | Device virtualization and assignment of interconnect devices | |
CN101351776A (zh) | 用于管理存储器访问、与存储位置相关联的标识符 | |
JP2006506754A5 (zh) | ||
CN1585932A (zh) | 内存管理系统及依据线性地址的内存存取保密的方法 | |
CN1168502A (zh) | 访问数据处理系统中寄存器的方法和装置 | |
JP4391832B2 (ja) | コンパートメント化されたセキュリティのための入出力許可ビットマップ | |
US6775734B2 (en) | Memory access using system management interrupt and associated computer system | |
CN116583840A (zh) | 快速外围部件互连保护控制器 | |
CN1285038C (zh) | 控制装置对内存的访问以提供增强的内存访问安全的系统与方法 | |
US10565141B1 (en) | Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks | |
CN1628284A (zh) | 安全执行模式异常 | |
US20060143417A1 (en) | Mechanism for restricting access of critical disk blocks | |
KR100972635B1 (ko) | 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법 | |
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 | |
JP2003296262A (ja) | コンピュータ外部機器及びこれを備えるコンピュータシステム |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20031224 |