CN1623143A - 用于划分安全保护的输入/输出许可位图 - Google Patents

用于划分安全保护的输入/输出许可位图 Download PDF

Info

Publication number
CN1623143A
CN1623143A CNA028286227A CN02828622A CN1623143A CN 1623143 A CN1623143 A CN 1623143A CN A028286227 A CNA028286227 A CN A028286227A CN 02828622 A CN02828622 A CN 02828622A CN 1623143 A CN1623143 A CN 1623143A
Authority
CN
China
Prior art keywords
permission
port
instruction
port number
safe condition
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
CNA028286227A
Other languages
English (en)
Other versions
CN1320466C (zh
Inventor
R·W·施密特
B·C·巴尼斯
G·S·斯特劳金
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.)
MediaTek Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1623143A publication Critical patent/CN1623143A/zh
Application granted granted Critical
Publication of CN1320466C publication Critical patent/CN1320466C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Bus Control (AREA)

Abstract

一种选择性执行输入/输出(I/O)指令的方法和装置设备。该方法包括于内存(206)中产生I/O许可位图(600)并接收I/O端口数字和安全状态认证(SCID)值。该方法并包括使用该SCID值和该I/O端口数字访问该存储的I/O许可位图(600)以获得对应至该I/O端口的许可位并依照对应至该I/O端口的许可位执行该I/O指令。该I/O许可位图(600)包括多个许可位。各该许可位对应至一个不同的I/O端口。各该许可位具有数值指示该对应的I/O端口是被允许访问。该I/O端口数字指示该I/O指令所引用的I/O端口。该SCID值指示具有该I/O指令的内存地址的安全认证级。

Description

用于划分安全保护的输入/输出许可位图
技术领域
本发明涉及一种内存管理系统和方法,详而言之,是涉及可在内存中提供数据存储保护的一种内存管理系统和方法。
背景技术
80x86处理器(即x86)结构允许输入/输出(I/O)地址空间从内存地址空间分离出来。该x86 I/O地址空间为64k 8位数据单元的连续区块,位于由0至65,535的地址范围间(0000h至FFFFh,其中h指16进制的数字),且典型地用于和外围设备(如:键盘、硬盘等等)做联系。接口设备通常包含称为”I/O端口”或简称为”端口”的特殊访问寄存器。该I/O端口可为8位、16位或32位端口。该8位端口系以其独特的字节地址进行访问。该16位I/O端口包含两个相邻的字节,而32位I/O端口包含四组邻近的字节。该16和32位I/O端口系以其总I/O地址空间的最低地址进行访问。
在x86处理器的I/O地址空间中的地址可对应至连接于x86处理器的接口设备的不同端口。无论在地址信号线以地址信号驱动的地址是在内存地址空间或是I/O地址空间中,该x86处理器皆以内存输入/输出(M/IO)信号驱动M/IO信号线。
该x86指令组包含特殊I/O指令以驱动该I/O地址空间。该x86 I/O指令提供方法使x86处理器的内部寄存器和对应于I/O地址空间的I/O端口间以及于连接于该x86处理器的内存和该I/O端口间做数据的交换。该x86I/O指令包含”IN”(由端口输入)以及”OUT”(输出至端口)寄存器指令,以及”INS”(由端口输入串)以及”OUTS”(输出串至端口)区块或串I/O指令。该区块x86指令直接由I/O端口传送数据至该内存,也可直接由该内存传送至I/O端口。
“任务”为单一执行的连续线程(thread)。80286和后来的x86处理器支持多任务处理,亦即可同时处理多个任务。只有一个任务真正在任何给定的时间内执行;该x86处理器依指示轻易地在多个任务间切换。
现代x86处理器能够在任何一个不同的模式中运行,该不同的模式包括真实地址或”真实”模式、保护虚拟地址或”保护”地址以及虚拟8086或”虚拟”模式。在该保护模式中,通过设定在FLAGS寄存器中的输入/输出权限级别(IOPL)控制该I/O地址的使用。在80386和后来的x86处理器,通过在该任务的任务状态段(TSS)中的I/O许可位图控制对应至该I/O地址空间的个别端口的访问。大部分的保护模式操作系统限制I/O端口的访问在I/O端口自身之间(权限级别为0),而于”信任的”设备驱动则为一个小数字(权限级别为1)。
当80386或后来的x86处理器以保护模式运作,可利用两种机制通过任务限制对I/O地址空间的访问。首先,通过对标志(EFLAGS)寄存器的IOPL的设定控制该I/O指令的使用。接着,通过各任务的TSS中的I/O许可位图控制I/O空间中的个别I/O端的访问。必须注意的是,该I/O许可位图的机制仅在80386与后来的x86处理器中执行。
大部分的保护模式操作系统企图限制I/O指令的使用限于I/O指令之间而信任设备驱动则限制于一个小数字。于该x86处理器结构的同心环权限模块中,保护模式操作系统软件典型地于内环中以权限级别0执行,而信任设备驱动则是于包围该内环的环中以权限级别1或权限级别0执行。应用程序通常在外环中以权限级别3执行。
当x86处理器于保护模式下执行任务的I/O指令,该x86处理器首先将该任务的该当前权限级别(CPL)与该IOPL做比较。若该任务的该CPL与该IPOL的权限一样(亦即数字上小于或等于),则该x86处理器执行该I/O指令。换句话说,若该CPL的权限不如(亦即数字上大于)该IOPL则该x86处理器确认该任务的TSS中的I/O许可位图。
图1揭示该熟知的该x86结构的I/O许可位图保护机制。图1为示意图,显示存储于内存100中的TSS 102和对应的I/O许可位图104。该TSS 102始于内存段的开端(亦即基础)而该I/O许可位图104结束于该内存段的终端(亦即极限)。该TSS 102包括在该内存段中与地址66h相关的16位“I/O映像基础(I/O map base)”。该I/O映像基础具有对应于I/O许可位图104的第一字节的偏移量,该偏移量为字节的偏移量。
该I/O许可位图104的每一位在该I/O空间中都有对应的字节。例如,该I/O许可位图104的第一位表示于该I/O空间中地址”0”的8位端口,第二位表示于该I/O空间中地址”1”的8位端口,以此类推。该I/O端口访问的数字被做为进入该I/O许可位图104的位偏移量。若对应至该I/O端口访问的位于I/O许可位图104中的位显示为”0”,该x86处理器(连接于该内存100且访问该I/O保护位图104)执行该I/O指令。若该位设为”1”,该x86处理器就不会执行该I/O指令,且产生一般性保护错误。当16位字组或32位双字组于I/O端口访问,所有代表该端口邻近字节的位必须全部显示为”0”以让该x86处理器执行该I/O指令。
当I/O空间越趋稀疏,且8k字节必须用于表现该I/O空间的全部64k端口,该I/O许可位图保护机制包含一种方法以缩短I/O许可位图。将看待该具有越过I/O许可位图终端的地址的I/O端口犹如于该I/O许可位图中对应的位被设为1。
问题发生在该x86处理器结构的该I/O保护位图机制无法充分适当地保护该I/O地址空间。例如,任何执行于该监督级(如:CPL为0)的任务可于任何时间访问任何该I/O地址空间的端口。此外,执行于该监督级的第一任务可修该第二任务的I/O许可位图中的位以允许该第二任务于该I/O地址空间中访问任何或全部的端口。接着该第二任务可继续访问一或更多I/O地址空间中的端口。本发明为针对一种系统及/或方法可用于解决或至少可以减少上述的无法适当地保护x86结构的I/O空间的问题。
发明内容
根据本发明的一个方面,提供一种方法用于选择性执行输入/输出(I/O)指令。该方法包含在内存中产生I/O许可位图并且接收I/O端口数字和安全状态认证(SCID)值。该方法还包括以该SCID值和该I/O端口数字访问该存储的I/O许可位图以获得对应于该I/O端口的许可位,并且根据对应的该I/O端口的许可位值执行该I/O指令。该I/O许可位图包含多个许可位。每一个许可位对应至该多个I/O端口的不同的一个。每一个该许可位具有数值可用于指示访问至对应的I/O端口是否被允许。该I/O端口数字依据该I/O指令来指示该I/O端口。该SCID值指示包含有该I/O指令的内存位置的安全状态级别。
附图说明
通过参照所附的图示可更了解本发明上述的说明,图标中类似组件标有类似的参考符号,且其中:
图1为示意图,其显示存储于内存中的x86结构的任务状态段(TSS),以及对应的x86结构的I/O许可位图;
图2为示意图,其显示依据本发明的计算机系统的实施例,该计算机系统包含中央处理器(CPU)、系统或”主机”桥接器、内存、第一设备总线(如:计算机外设部件连接或PCI总线)、设备总线桥接器、第二设备总线(如:工业标准架构或ISA总线)以及四个设备硬件单元,其中该CPU包含输入/输出(I/O)安全检验单元(SCU),该I/O SCU用于保护该设备硬件单元使之避免该CPU产生的未经授权的访问。
图3为示意图,其显示图2中该计算机系统的软件与各种硬件之间的关系;
图4为示意图,其显示图2中该计算机系统200的该CPU的实施例,其中该CPU包含执行单元、内存管理单元(MMU)以及连接于该执行单元以及该MMU间的总线接口单元(BIU),其中该BIU包含该I/OSCU;
图5为示意图,其显示图4中的I/O SCU的实施例;
图6为示意图,其显示图2中的存储于该内存中的安全执行模式(SEM)I/O许可位图的实施例以及用于访问该SEM I/O许可位图的机制的实施例;
图7为示意图,其显示图6中该SEM I/O许可位图的另一个实施例以及用于访问该SEM I/O许可位图的机制的另一实施例;
图8为示意图,其显示图2中该计算机系统的CPU的另一实施例,其中该CPU包含执行单元、内存管理单元MMU、连接于该执行单元和该内存管理单元MMU的总线接口单元BIU、以及连接于该处理单元、该MMU以及该BIU的微码引擎,且其中该微码引擎执行存储于微码存储器中的微码指令并产生信号,该信号控制该执行单元、该MMU以及该BIU的运行独立于该微码指令;
图9为示意图,其显示第二图中该计算机系统的软件与该各种硬件间的关系,其中第一设备驱动以及对应的第一设备硬件单元属于第一安全”隔间”,而第二设备驱动和对应的第二设备硬件单元属于与第一安全隔间分离的第二安全隔间,且其运行也为各自独立。
本发明可由此说明书中获得益处的此领域的技术人员熟知的不同却等效的方式作修改与实施,因此前文所揭示的实施例仅做为例证的用。此外,此处详细的叙述与样式并非意图限制本发明。在此确信该揭露的实施例于本发明的精神与范畴下可以多种不同的形式替换或修改。因此,本发明所欲申请的保护系如后附之申请专利范围所述。
具体实施方式
本发明的例证性的实施例如后叙述。为求简洁,于说明书中并未列出所有实际实现的特征。在此将了解,任何实施例以及各种特定实现的决定均可达成开发者的特定目标,如系统相关以及商业相关的衡量,将会依不同需求而有不同的结果。此外,此种开发亦是复杂且费时的,但将成为由此揭示而获得益处的该领域的技术人员日常执行的工作。
图2为示意图,其显示依据本发明的计算机系统200的实施例,该计算机系统200包含中央处理器(CPU)202、系统或”主机”桥接器204、内存206、第一设备总线208(如:计算机外设部件连接或PCI总线)、设备总线桥接器210、第二设备总线212(如:工业标准架构或ISA总线)以及四个设备硬件单元214A-214D。该主机桥接器204连接于该CPU202、内存206以及该第一设备总线208。该桥接器204于该第一设备总线以及该第二设备总线212间传递信号。该设备总线桥接器210连接于该第一设备总线208和该第二设备总线212,并在第一设备总线208和该第二设备总线212间传递信号。于图2的实施例中,该硬件设备单元214A和214B连接于该第一设备总线208,而该设备硬件单元214C和214D连接于该第二设备总线212。一个或多个该设备硬件单元214A-214D,举例来说可为存储设备(如:硬盘驱动器、软盘驱动器以及CD-ROM驱动器)、通讯设备(如:调制解调器和网络转接器)或输入/输出设备(如:影像设备、音响设备以及打印机)。
于图2的实施例中,该CPU202包含输入/输出(I/O安全检验单元(SCU)216。该设备硬件单元214A-214D可对应至该CPU202的该I/O空间的各种I/O端口,且该CPU 202可通过对应的I/O端口与该设备硬件单元214A-214D交流。在此情况中,该I/O SCU 216是用于保护该设备硬件单元214A-214D使之避免该CPU202产生的未经授权的访问。在此必须注意,在其它实施例中该主机桥接器204可如图2中为CPU202的一部分。
图3为示意图,其显示图2中该计算机系统的软件与各种硬件之间的关系。于图3的实施例中,多个应用程序300、操作系统302、安全核心304以及设备驱动306A-306D皆存储于该内存206中。该应用程序300、该操作系统302、该安全核心304以及该设备驱动306A-306D包含由该CPU302所执行的指令。该操作系统302提供用户接口和供应用程序300在其上运行的软件”平台”。该操作系统302同时可提供,一些如基本支持功能,包含文件系统管例、程序管理以及I/O控制。
该操作系统302可同时提供基本的安全功能。例如,该CPU202(在图2中)可为x86处理器,其执行该x86指令组的指令。在此情况中,该CPU202如前所述可包括提供虚拟内存和物理内存保护特征的专门硬件组件。该操作系统302可为例如Windows系列的操作系统(Microsoft Corp.,Redmond,WA),其在保护模式中运行该CPU302,且在保护模式中使用该CPU202的专门硬件组件提供虚拟内存和内存保护。
如后所述,该安全核心304较该操作系统302提供更多的安全功能以保护存储于该内存206中的数据避免未经授权的访问。如图3所示,该安全核心304连接于该I/O SCU 216。该I/O SCU 216监控在I/O地址空间中的所有初始化的软件对该I/O端口的访问,且只允许经授权者对该I/O端口访问。
在图3的实施例中,该设备驱动306A-306D在运行上皆关联且连接至各自对应的设备硬件单元214A-214D。该设备硬件单元214A和214D可为如”安全的”设备,以及该对应的设备驱动306A和306D可为如”安全”设备驱动。该安全核心304连接于该操作系统302和该安全的设备驱动306A及306D之间,并且可监控由应用程序300和该操作系统302至安全的设备驱动306A和306D以及对应的安全的设备214A和214D的所有访问。该安全核心304可避免应用程序300和该操作系统302所发出的对该安全设备驱动306A和306D以及对应的安全设备214A和214D的未经授权的访问。该设备驱动214B和214C可为”非安全”设备驱动,且该对应的设备硬件单元214B和214C可为”非安全”设备硬件单元。该设备驱动306B和306C以及相对应的设备硬件单元214B和214C可为如”传统”设备驱动以及设备硬件单元。
注意到,在其它实施例中该安全核心304可为该操作系统302的一部分。在此实施例中,该安全核心304、该设备驱动306A和306D以及/或该设备驱动306B和306C可为该操作系统302的一部分。
图4为示意图,其显示图2中该计算机系统200的该CPU202的实施例。在图4的实施例中,该CPU202包含执行单元400、内存管理单元(MMU)402、高速缓存单元404、总线接口单元(BIU)406、一组控制寄存器408、一组安全执行模式(SEM)寄存器410。总线接口单元(BIU)406还连接到主桥204(图2),并在该CPU202和该主机桥接器204之间形成接口。该BIU 406还通过该桥接器204连接到该内存206(图2),并在该CPU 202和该内存206之间形成接口。在图4的此实施例中该I/O SCU 216位于该BIU 406中。
如后之详述,该SEM寄存器组410被用于在图2的该计算机系统(200)中实现安全执行模式(SEM),且该I/O SCU 216的运行是由该SEM寄存器组410的内容来管理的。该SEM寄存器410由该安全核心304(图3)进行访问(写入和/或读取)。
在图4的实施例中,该SEM寄存器组410包含SEM位。图2中的该计算机系统200可以在下列情况下运行在安全执行模式下:(i)该CPU202为运行于x86保护模式下的x86处理器,(ii)内存分布被使用,以及(iii)该SEM位被设为”1”时。
一般来说,控制寄存器组408的内容管理该CPU202的运行。于是,该控制寄存器组408的内容也管理该执行单元400、该MMU402、该高速缓存单元404和/或该BIU406。该控制寄存器组408可包含如该x86处理器构造的多个控制寄存器。
在指令执行期间,该CPU 202的该执行单元400提取指令(如:x86指令)和数据、执行提取的指令以及生成信号(如:地址、数据和控制信号)。该执行单元400连接于该高速缓存单元404,且可通过该高速缓存单元404和该BIU 406接收来自于该内存206(图2)的指令。
该计算机系统200的内存206(图2)包含多个内存位置,每一个内存位置具有唯一的物理地址。当运行于保护模式且分页被激活时,该CPU202的地址空间将分为多个区块,这些区块称为页帧或”分页”。只有对应于该分页的一部分的的数据能够随时于该内存206中存储。在图4的实施例中,当指令显示为已分段的(亦即”逻辑上”)地址的时,地址信号由该执行单元400产生。该MMU402传送由该执行单元400产生的该分段的地址至对应的该内存206的物理地址。该MMU402提供该物理地址给该高速缓存单元404。该高速缓存单元404是一种相对较小的存储单元,用于存储该执行单元400最近所提取的指令和数据。
该BIU 406连接于该快速缓冲存储单位404和该主机桥接器204之间。该BIU 406用于通过该主机桥接器204从该内存206提取当前不在该高速缓存单元404中的指令和数据。该BIU 406同时包含该I/OSCU 216。该I/O SCU 216连接于该SEM寄存器410、该执行单元400和该MMU402。如前所述,该I/O SCU 216监控对该I/O地址空间中的该I/O端口的所有软启动(software-initiated)的访问,且只允许经授权者对该I/O端口访问。
图5为示意图,其显示图4中的I/O SCU的实施例。在图5的实施例中,该I/O SCU 216包含安全检验逻辑500。该安全检验逻辑500由该执行单元400接收”激活”信号和I/O端口数字,并且由该MMU 402接收安全状态认证(SCID)值。该执行单元400可判定该激活信号优先于执行在该I/O位空间中的”目标”I/O端口的访问。该I/O端口数字为该目标I/O端口的数字。该SCID值表示含有该I/O指令的该内存页面的安全状态级。
当图2的该计算机系统200在该SEM中运行时,该安全核心304(图3)产生且维持一个或多个图2中的安全特性数据结构(如:表格)。每一个内存页面有与其对应的SCID值,且该对应的SCID值可存储于该安全特性数据结构中。该MMU 402使用一个在指令执行期间所产生的地址(如:物理地址)访问该一个或多个安全特性数据结构以获得该对应的内存页面的该SCID。一般来说,该计算机系统200具有n个不同的SCID值,其中n为一个大于等于1的整数。
当图2中的该计算机系统200在SEM下运行,该安全核心304(图3)同时产生且维持在该内存206(图2)中的SEM I/O许可位图。当该执行单元400(图4)执行一项任务的I/O指令时,在该CPU202中的逻辑可首先对该任务的当前权限级别(CPL)与输入/输出权限级别(IOPL)作比较。
若该任务的该CPL至少与该IOPL有相同的权限(亦即数字上小于或等于)则该CPU202中的逻辑即可检验该SEM I/O许可位图。相反地,若该任务的该CPL不够在该IOPL的权限(亦即数字上大于),则该执行单元400将不执行该I/O指令。于一实施例中,将会产生一个一般性保护错误。
当该执行单元400(图4)确认该激活信号时,该安全检验逻辑500提供该激活信号、该接收的SCID值和该接收的I/O端口数字给该BIU406中的逻辑。该BIU 406中的逻辑使用该SCID值和该接收的I/O端口数字以访问该SEM I/O许可位图,并从该SEM I/O许可位图提供对应的位至该安全检验逻辑500。若来自于该SEM I/O许可位图的对应位显示为”0”,则该安全检验逻辑500可确认输出”执行”信号至该执行单元400。响应该确认的”执行”信号,该执行单元400可执行该I/O指令。相反地,若该对应位显示为”1”,则该安全检验逻辑500可判定输出”SEM安全异常”信号至该执行单元400。响应该确认的”SEM安全异常”信号,该执行单元400将不执行该I/O指令,代替为执行一个SEM异常运行控制。
当该I/O指令企图访问16位字组I/O端口或32位双字组I/O端口,该执行单元400将连续地提供多字节I/O端口数字至该安全检验逻辑500。若该安全检查逻辑500判定各该字节I/O端口数字为该执行信号,则该执行单元400将执行该I/O指令。相反地,若该安全检查逻辑500判定各该字节I/O端口数字为该SEM安全异常信号,则该执行单元400将不执行该I/O指令,且将执行一个SEM异常运行控制来代替。
图6为示意图,其显示图2中的存储于该内存中的安全执行模式(SEM)I/O许可位图的实施例以及用于访问该SEM I/O许可位图的机制的实施例,该SEM I/O许可位图在图6中以600标示。图6中的机制可实施于BIU 406(图6)的逻辑中,且当该计算机系统200于SEM下运行时可供其使用。在图6中,该SEM寄存器组410具有模式指定寄存器(MSR)602。该MSR 602用于存储该SEM I/O许可位图600的开始(亦即基础)地址。如前所述该计算机系统200具有n个不同的SCID值,其中n为一个大于等于1的整数。该SEM I/O许可位图600对于n个不同的SCID值中的每一个都包括一个不同的I/O许可位图。每个独立的I/O许可位图具有64k位或8k字节。
在图6的实施例中,具有访问该I/O端口的I/O指令的内存页面的该SCID值是做为来自于该MSR 602的内容(亦即该SEM I/O许可位图600的该基础地址)的偏移量成为组成该SEM I/O许可位图600的一个或多个64k位(8字节)的I/O许可位图。因此,对应于该SCID值的该I/O许可位图即可被访问。该I/O端口数字于是被作为进入对应于SCID值的该I/O许可位图的位偏移量。以这种方式访问的位即为由I/O端口数字所定义的该I/O端口的对应位。
图7为示意图,其显示图6中该SEM I/O许可位图的另一个实施例以及用于访问该SEM I/O许可位图的机制的另一实施例,该SEM I/O许可位图在图7中以700做标记。图7中的机制可实施于该BIU 406(图4)中的逻辑。在图7的实施例中,该SEM I/O许可位图700具有单独的一个64位(8k字节)I/O许可位图。该I/O端口数字做为来自于该MSR602的内容(亦即该SEM I/O许可位图600的基础地址)的位偏移量而成为该I/O许可位图。以这种方式访问的位即为由I/O端口数字所定义的该I/O端口的对应位。
图8为示意图,其显示图2中该计算机系统200的该CPU202的另一实施例。于图8的实施例中,该CPU202包含执行单元400、MMU402、高速缓存单元404、BIU 406、控制寄存器组408以及如前述的该SEM寄存器组410。此外,该CPU 202具有微码引擎800和微码存储器802。此微码引擎800连接于该执行单元400、该MMU 402、该高速缓存单元404、该BIU 406、该控制寄存器组408以及该SEM寄存器组410。该微码引擎800执行存储于微码存储器802中的微码指令并产生信号,该信号控制该执行单元400、该MMU402、该高速缓存单元404以及该BIU406且此控制运行依赖于该微码指令以及控制寄存器组408和该SEM寄存器组410的内容。该微码引擎800并同时协助该执行单元400执行多个该x86指令组的复合指令。
在图8的实施例中,存储于该微码存储设备802中的微码指令的一部分形成I/O安全检验码804。当图2的该计算机系统200运行于SEM中的时执行该I/O安全检验码801,而I/O指令被传递到执行单元400以便执行。本质上,该I/O安全检验码804的该微码指令造成该微码引擎800和该BIU 406执行如前所述的该I/O SCU 216(图2至图4)的功能。
例如,当I/O指令传递到该执行单元400执行时,该执行单元400可发出当前该I/O指令的信号至该微码引擎800。该微码引擎可判定信号至该MMU 402和该BIU 406。响应来自于该位码引擎800的信号,该MMU 402将提供包括有该I/O指令的内存页面的SCID值至该BIU406。该执行单元400将提供该I/O指令访问的I/O端口数字至该BIU406。
响应来自于该微码引擎800的信号,该BIU 406将使用该SCID值和该接收的I/O端口数字访问该SEM I/O许可位图,如前所述。并将提供来自于该SEM I/O许可位图的对应的位至该微码引擎800。若来自于该SEM I/O许可位图显示为”0”,则该微码引擎800可继续协助该执行单元400以完成该I/O指令的执行。相反地,若该对应的位显示为”1”,则该微码引擎可发出信号至该执行单元400以停止执行该I/O指令并启动执行SEM异常运行控制。
图9用于描述如何为SCID值赋值以及该对应的SEM I/O许可位图如何产生,如何做为”分隔”设备驱动并结合图2中的该计算机系统200中设备硬件单元以达成安全的目的。图9为示意图,其显示图2中该计算机系统200的软件与该各种硬件间的关系,其中设备驱动306A以及对应的设备硬件单元214A属于第一安全”隔间”900,而设备驱动306D和对应的设备硬件单元214D属于与第一安全隔间900分离的第二安全隔间902,且其运行也是各自独立。只有该设备驱动306A能访问该设备硬件单元214A,且只有该设备驱动306D可访问该设备硬件单元214D。该设备驱动和相关的硬件单元的”分隔”帮助避免恶意代码或错误代码对该设备硬件单位的状态所造成的负面的影响或介入图2的该计算机系统200的正常运行。
例如,于图9的实施例中,具有该设备驱动306A和306D指令的内存页面可分配到不同的SCID值。为该设备驱动306A的该SCID值所产生的第一SEM I/O许可位图,可允许该设备驱动306A访问第一部分,该第一部分被分配给该设备硬件单元214A的该计算机系统200的I/O地址空间的第一部分,且将不允许该设备驱动306A访问分配给该设备硬件单元214D的I/O地址空间的第二部分。同样地,为该设备驱动306D的SCID值所产生的第二SEM I/O许可位图,可允许该设备驱动306D访问分配给该设备硬件单元214D的I/O地址空间的第二部分,而不允许该设备驱动306A访问分配给该设备硬件单元214A的I/O地址空间的第一部分。因此,只有该设备驱动306A可访问该设备硬件单元214A,也只有该设备驱动306D可访问该设备硬件单元214D。
本发明如前所述的一些目的可用于硬件或软件当中。因此,说明书中的部分详述可用于硬件实施过程而说明书中的部分详述也可用于软件实施过程,该软件实施过程系牵涉到运算系统或运算设备的内存中数据位的操作符号表现。该详述和表现的意义系为该技术领域的相关人员间以硬件和软件两者同时做有效的传达之用。该处理和操作皆需要实际量的实质操作。软件方面,通常虽非全然必要,但该以电、磁或光学信号形式出现的量皆可用于执行存储、传送、结合、比较和其它相关的操作。有时为求方便,系依理论上一般使用的动机,将位、值、元素、符号、特性、术语、数字或其它相关量称为信号。
然而,在此提醒到,所有叙述以及相似的术语皆为适当的物理量且皆为方便应用于该量的标记。除非于说明书中有特别提出,否则这些提及的动作和电子设备的处理皆以物理(电、磁或光)量形式表现的信号在一些电子设备的存储设备中于这些存储设备间做运行和传送。像是”处理”、”运算”、”决定”、”显示”和其它相关的术语系叙述中例证之用,其意图并非限制用途。
同时注意到,本发明的软件施行的目的系典型地用于程序存储媒介或某些形式的传送媒介的译码。该程序存储媒介可为磁性(亦即软盘或硬件驱动)或光学(亦即只读光驱或”CD ROM”),且可只读或随机访问。同样地,该传送媒介可为双绞线、同轴电缆、光纤或其它相关领域中实之的适当传送媒介。本发明并非限制于任何给定实施的目的中。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟习此项技艺的人士均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如后述的申请专利范围所列。

Claims (10)

1.一种处理器(202),该处理器(202)适于连接至内存(206),该处理器(202)包括:
执行单元(400),用于执行输入/输出(I/O)指令;
内存管理单元(402),用于存储信号于该内存(206)中;以及
总线接口单元(406),连接以接收I/O端口数字和对应至该I/O端口数字的许可位,并依该许可位的值产生输出信号;以及
其中,该执行单元(400)连接以接收该输出信号并依该输出信号执行该I/O指令。
2.如权利要求1所述的处理器(202),其中,该I/O端口数字表示为I/O指令所引用的I/O端口的数字,且其中,该总线接口单元(406)连接以接收安全状态认证值,且其中,该安全状态认证值表示具有该I/O指令的内存位置的安全认证级,其中该总线接口单元(406)系使用该安全状态认证值和该I/O端口数字以访问存储于该内存(206)中的I/O许可位而获得该许可位。
3.如权利要求2所述的处理器(202),其中,该总线接口单元(406)连接至该执行单元(400)和该内存管理单元(402),且其中该I/O端口数字系来自该执行单元(400),且其中该安全状态认证系来自该内存管理单元(402)。
4.如权利要求2所述的处理器(202),其中,该I/O端口数字和该安全状态认证皆由该执行单元(400)于该I/O指令执行期间接收。
5.如权利要求2所述的处理器(202),其中,该I/O许可位图(600)包括多个许可位,其中各该许可位对应至一个不同的I/O端口,且其中各该许可位具有值以指示该对应的I/O端口是否允许被访问。
6.如权利要求2所述的处理器(202),更进一步包括模块指定寄存器(602),该模块指定寄存器(602)用于存储该I/O许可位图(600)的基础地址,其中,该总线接口单元(406)通过将该I/O端口数字做为来自于该模块指定寄存器(602)的位偏移量以获得对应至该I/O端口数字的该许可位而成为该I/O许可位图(600)。
7.如权利要求2所述的处理器(202),其中,该I/O许可位图(600)为主要I/O许可位图(600),且其中,该主要I/O许可位图(600)包含多个次要I/O许可位图,且其中各该次要I/O许可位图包含多个许可位,且其中给定的该次要I/O许可位图的各该许可位各对应至一个不同的I/O端口,且其中,各该许可位有值以指示该对应的I/O端口是否受允许可进行访问,且其中,各该次要I/O许可位图对应至一个不同的安全状态认证值。
8.如申请专利范围中的处理器(202),更进一步包括微码引擎(800)连接至该执行单元(400)、该内存管理单元(402)以及该总线接口单元(406),并用于执行存储于微码存储设备(802)中的微码指令,其中该微码引擎(800)于至少一个微码指令的执行期间产生控制信号,其中部分该微码指令使该微码引擎(800)产生控制信号,该控制信号系造成该总线接口单元(406)进行工作,该工作包括:
接收该I/O端口数字和安全状态认证值,其中该I/O端口数字为I/O指令所引用的该I/O端口的数字,其中该安全状态认证值为具有该I/O指令的内存位置的安全状态级;以及
利用该安全状态认证值和该I/O端口数字以访问该存储于内存(206)中的I/O许可位图(600)以获得对应于该I/O端口的该许可位,并依该许可位的产生该输出信号;以及
其中,该执行单元(400)连接以接收该输出信号并依该输出信号执行该I/O指令。
9.一种方法,该方法用于选择性执行I/O指令,该方法包括:
产生I/O许可位图(600)于内存(206)中,其中该I/O许可位图(600)包含多个许可位,且其中各该许可位对应至一个不同的I/O端口,且其中各该许可位有值以指示该对应的I/O端口是否受允许可进行访问;
接收I/O端口数字和安全状态认证值,其中该I/O端口数字为该I/O指令索引用的该I/O端口,且其中该安全状态认证值为具有该I/O指令的内存位置的安全状态级;
利用该安全状态认证值和该I/O端口数字以访问该存储的I/O许可位图(600)以获得对应至该I/O端口的许可位;以及
执行该I/O指令,该执行系依对应至该I/O端口的该许可位的值。
10.如权利要求9所述的方法,其中接收该I/O端口数字和该安全状态认证值,进一步包含于该I/O指令执行期间接收该I/O端口数字和该安全状态认证值,且其中,依对应至该I/O端口的许可位的值执行该I/O指令,进一步包括若对应至该I/O端口的许可位的值允许该I/O端口的访问执行则执行该I/O指令。
CNB028286227A 2002-03-27 2002-12-17 用于选择性地执行输入/输出指令的处理器及方法 Expired - Lifetime CN1320466C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/107,784 2002-03-27
US10/107,784 US7493498B1 (en) 2002-03-27 2002-03-27 Input/output permission bitmaps for compartmentalized security

Publications (2)

Publication Number Publication Date
CN1623143A true CN1623143A (zh) 2005-06-01
CN1320466C CN1320466C (zh) 2007-06-06

Family

ID=28673583

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028286227A Expired - Lifetime CN1320466C (zh) 2002-03-27 2002-12-17 用于选择性地执行输入/输出指令的处理器及方法

Country Status (8)

Country Link
US (1) US7493498B1 (zh)
JP (1) JP4391832B2 (zh)
KR (1) KR101001344B1 (zh)
CN (1) CN1320466C (zh)
AU (1) AU2002361757A1 (zh)
DE (1) DE10297687B4 (zh)
GB (1) GB2404058B (zh)
WO (1) WO2003083671A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1897009B (zh) * 2005-06-30 2010-05-12 株式会社日立制作所 输入输出控制装置、输入输出控制方法、过程控制装置以及过程控制方法
CN102375947A (zh) * 2010-08-16 2012-03-14 伊姆西公司 用于隔离计算环境的方法和系统
CN104298623A (zh) * 2013-07-16 2015-01-21 横河电机株式会社 电子装置、操作系统以及访问控制方法
CN106326130A (zh) * 2015-06-16 2017-01-11 联芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
JPWO2007040228A1 (ja) * 2005-10-04 2009-04-16 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
KR101540798B1 (ko) * 2008-11-21 2015-07-31 삼성전자 주식회사 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
CN103632088A (zh) 2012-08-28 2014-03-12 阿里巴巴集团控股有限公司 一种木马检测方法及装置
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US8832465B2 (en) * 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US10261748B2 (en) * 2015-12-18 2019-04-16 Intel Corporation Technologies for protecting audio data with trusted I/O
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile
US10360163B2 (en) 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
US9959498B1 (en) 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
WO2022171299A1 (en) * 2021-02-12 2022-08-18 Huawei Technologies Co., Ltd. Low overhead active mitigation of security vulnerabilities by memory tagging

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146565A (en) * 1986-07-18 1992-09-08 Intel Corporation I/O Control system having a plurality of access enabling bits for controlling access to selective ports of an I/O device
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
JPH10232878A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd ドキュメント管理方法および装置
JP4522548B2 (ja) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 アクセス監視装置及びアクセス監視方法
US6978018B2 (en) * 2001-09-28 2005-12-20 Intel Corporation Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1897009B (zh) * 2005-06-30 2010-05-12 株式会社日立制作所 输入输出控制装置、输入输出控制方法、过程控制装置以及过程控制方法
CN102375947A (zh) * 2010-08-16 2012-03-14 伊姆西公司 用于隔离计算环境的方法和系统
CN104298623A (zh) * 2013-07-16 2015-01-21 横河电机株式会社 电子装置、操作系统以及访问控制方法
CN106326130A (zh) * 2015-06-16 2017-01-11 联芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统
CN106326130B (zh) * 2015-06-16 2019-03-15 辰芯科技有限公司 寄存器地址空间的控制方法、控制器及片上系统

Also Published As

Publication number Publication date
AU2002361757A1 (en) 2003-10-13
US7493498B1 (en) 2009-02-17
GB0423536D0 (en) 2004-11-24
JP2005521941A (ja) 2005-07-21
DE10297687T5 (de) 2005-07-07
KR20040101332A (ko) 2004-12-02
GB2404058B (en) 2005-11-02
CN1320466C (zh) 2007-06-06
WO2003083671A1 (en) 2003-10-09
GB2404058A (en) 2005-01-19
DE10297687B4 (de) 2008-11-13
KR101001344B1 (ko) 2010-12-14
JP4391832B2 (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
CN1320466C (zh) 用于选择性地执行输入/输出指令的处理器及方法
CN1278244C (zh) 内存管理系统及依据线性地址的内存存取保密的方法
CN1132107C (zh) 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
CA2064640C (en) Storage protection utilizing public key control
KR100927750B1 (ko) 무단 변경 방지 방법, 무단 변경 방지 프로세서, 무단 변경방지 제품, 무단 변경 방지 시스템
US5469556A (en) Resource access security system for controlling access to resources of a data processing system
KR940003325B1 (ko) 가상 입력/출력 지령의 변환장치 및 방법
CN1307535C (zh) 安全执行模式下信任客户使用安全核心系统
CN1692332A (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
CN1612112A (zh) 用于地址翻译控制的阴影页表
CN1877547A (zh) 提供扩展的存储器保护
JP4898155B2 (ja) ユーザ・モード・プロセスが特権実行モードで動作することを可能にする方法
CN1679001A (zh) 对在虚拟机体系结构中客户软件操作期间出现的故障的控制
WO2003083672A1 (en) System and method providing region-granular, hardware-controlled memory encryption
EP1374064A2 (en) Method and apparatus for securing portions of memory
CN1628284A (zh) 安全执行模式异常
US20220180009A1 (en) Peripheral component interconnect express protection controller
CN1639666A (zh) 具有外围设备访问保护的数据处理系统及其方法
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
CN115885266A (zh) 标签检查装置及方法
US10073710B2 (en) Host-driven application memory protection for virtual machines
JP4478458B2 (ja) 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置
US10481951B2 (en) Multi-queue device assignment for application groups
CN114780446A (zh) 基于mpu的内存访问方法、装置、电子设备及存储介质

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
ASS Succession or assignment of patent right

Owner name: ADVANCED MICRO DEVICES INC

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES INC.

Effective date: 20100708

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: GRAND CAYMAN ISLAND RITISH CAYMAN ISLANDS

TR01 Transfer of patent right

Effective date of registration: 20100708

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES Inc.

Address before: California, USA

Patentee before: ADVANCED MICRO DEVICES, Inc.

TR01 Transfer of patent right

Effective date of registration: 20201218

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210415

Address after: No.1, Duhang 1st Road, Hsinchu City, Hsinchu Science Park, Taiwan, China

Patentee after: MEDIATEK Inc.

Address before: California, USA

Patentee before: Lattice chip (USA) integrated circuit technology Co.,Ltd.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20070606

CX01 Expiry of patent term