计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf

上传人:Y94****206 文档编号:992479 上传时间:2018-03-24 格式:PDF 页数:28 大小:935.74KB
返回 下载 相关 举报
摘要
申请专利号:

CN97197324.5

申请日:

1997.05.22

公开号:

CN1228177A

公开日:

1999.09.08

当前法律状态:

终止

有效性:

无权

法律详情:

专利权有效期届满IPC(主分类):G06F 15/00申请日:19970522授权公告日:20031224|||授权||||||公开

IPC分类号:

G06F15/00

主分类号:

G06F15/00

申请人:

英特尔公司;

发明人:

D·I·普斯纳

地址:

美国加利福尼亚州

优先权:

1996.06.21 US 08/667,789

专利代理机构:

中国专利代理(香港)有限公司

代理人:

王勇;王忠忠

PDF下载: PDF下载
内容摘要

描述了一种对计算机系统(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)内容上的操作。

权利要求书

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)地址空间的寄存器; 一个解码器,它具有一个输入,耦合成接收标识寄存器的地址数 据,还具有一个输出,耦合成给寄存器提供选择信号;以及 逻辑电路,配置为检测计算机系统何时在系统管理模式下操作, 并且当计算机系统在系统管理模式下操作时,给处理器提供对寄存器 的第一类访问,以及当计算机系统不是在系统管理模式下操作时,给 处理器提供对寄存器的第二类访问。

说明书


计算机系统中控制对映射到 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地址空间的寄存器的方法和设备。虽然本发明是以特别范例的实施例为参考描述的,但是显然,可以对这些实施例作不同的修改和变动而不脱离本发明的宽广的精神和范围。相应地,本说明和图应视为示例,而不是限制。

计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf_第1页
第1页 / 共28页
计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf_第2页
第2页 / 共28页
计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf_第3页
第3页 / 共28页
点击查看更多>>
资源描述

《计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf》由会员分享,可在线阅读,更多相关《计算机系统中控制对映射到I/O地址空间的寄存器的访问的系统.pdf(28页珍藏版)》请在专利查询网上搜索。

描述了一种对计算机系统(18)中输入/输出映象的寄存器(60)提供访问的方法。该计算机系统(18)包括能在系统管理模式(SMM)、实模式、受保护模式和虚拟8086模式下操作的处理器(20),处理器(20)在系统管理模式下访问专用的系统管理内存空间。本方法的步骤包括,I/O映象寄存器(60)开始接收一个访问请求,然后与I/O映象寄存器(60)相关联的逻辑电路(64)通过检查处理器(20)输出的系统管。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1