CN1285038C - 控制装置对内存的访问以提供增强的内存访问安全的系统与方法 - Google Patents

控制装置对内存的访问以提供增强的内存访问安全的系统与方法 Download PDF

Info

Publication number
CN1285038C
CN1285038C CNB028241371A CN02824137A CN1285038C CN 1285038 C CN1285038 C CN 1285038C CN B028241371 A CNB028241371 A CN B028241371A CN 02824137 A CN02824137 A CN 02824137A CN 1285038 C CN1285038 C CN 1285038C
Authority
CN
China
Prior art keywords
paging
security
security attribute
memory
internal storage
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
Application number
CNB028241371A
Other languages
English (en)
Other versions
CN1599902A (zh
Inventor
G·S·斯特劳金
B·C·巴尼斯
R·W·施密特
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 CN1599902A publication Critical patent/CN1599902A/zh
Application granted granted Critical
Publication of CN1285038C publication Critical patent/CN1285038C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

主桥接器(404)包括内存控制器(1304)及安全检查单元(418)。该内存控制器(1304)连接到用来存储安排在多个内存分页内的数据的内存(406),该内存控制器(1304)接收内存访问信号并访问该内存(406)。该安全检查单元(418)接收这些内存访问信号,其中这些内存访问信号包括在目标内存分页之内的物理地址。该安全检查单元(418)利用该物理地址来访问位于该内存中的一个或多个安全属性数据结构,以便取得该目标内存分页的安全属性。该安全检查单元(418)根据该目标内存分页的安全属性,而将这些内存访问信号提供给该内存控制器(1304)。

Description

控制装置对内存的访问以提供增强的内存访问安全的系统与方法
技术领域
本发明一般涉及一种内存管理系统及方法,尤指一种对存储在内存内的数据提供保护的内存管理系统及方法。
背景技术
典型的计算机系统包含内存阶层,以便在较低的成本下获致较高程度的效能。通常是将数种不同的软件程序存储在较大但较慢的非易失性存储单元(例如磁盘驱动器单元)。当用户选择一个程序来执行时,即将所选择的程序的指令复制到一主存储器单元,且一中央处理单元(Central Processing Unit,CPU)自该主存储器单元取得所选择的该程序的指令。公知的虚拟内存管理技术通过在任何特定时间上只将一部分的数据结构存储在主存储器单元内,而可让CPU访问容量大于该主存储器单元的容量的数据结构,而数据结构的其余部分则存储在较大但较慢的非易失性存储单元之内,且只在需要时复制到主存储器单元。
通常通过将CPU的一地址空间分成多个称为页框或″分页″(″page″)的区块而实施虚拟内存,在任何特定时间,只将对应于这些分页的一部分的数据存储在主存储器单元内。当CPU产生一特定分页内的一地址,且该分页的复制部份不在主存储器单元之内时,将所需要分页的数据自该较大但较慢的非易失性存储单元复制到主存储器单元中。在该程序中,可将另一分页的数据自主存储器单元复制到该非易失性存储单元,以便腾出该所需分页的空间。
常用的80x86(x86)处理器架构包括用来支持受保护的虚拟地址模式(亦即保护模式)的若干专用硬件组件,现在将利用图1至图3来说明使用x86处理器如何实施虚拟内存及内存保护功能。图1为x86处理器架构的一公知线性至物理地址的转换机制100的框图,在x86处理器内实施地址转换机制100,且线性至物理地址的转换机制100涉及在该x86处理器内产生的一个线性地址102、一个分页表目录(亦即分页目录)104、包括一个分页表106的多个分页表、包括一个分页框108的多个分页框、及一控制寄存器3(control register 3,CR3)110。该分页目录104及这些多个分页表是由操作系统软件(亦即操作系统)所产生并维护的分页内存数据结构,分页目录104必然是在内存(例如主存储器单元)内。为了简化说明,亦将假设分页表106及分页框108也位于该内存中。
如图1所示,线性地址102分成三个部分,以便完成线性至物理之地址转换。CR3110的最高阶位(ordered bits)用来存储分页目录基址寄存器值(page directory base register)。该分页目录基址寄存器值是存放分页目录104的一个内存分页的基址,分页目录104包含多个分页目录数据项,其中包括一个分页目录数据项112。其中包括线性地址102的最高阶位或最高有效位的线性地址102的较高″目录索引″部分用来作为分页目录104的索引,利用CR3 110中存储的分页目录基址寄存器值及线性地址102的该较高″目录索引″部分,而自分页目录104内选出分页目录数据项112。
图2为x86处理器架构的分页目录数据项格式200。如图2所示,给定分页目录数据项的最高阶(亦即最高有效)位包含分页表基址,其中该分页表基址是存放对应的分页表的内存分页的基址,分页目录数据项112的该分页表基址被用来选择对应的分页表106。
再参阅图1,分页表106包括具有分页表数据项114的多个分页表数据项,线性地址102的中间″表索引″部分被用来作为分页表106的索引,借此选择该分页表数据项114。图3为x86处理器架构的分页表数据项格式300。如图3所示,给定分页表数据项的最高阶(亦即最高有效)位包含分页框基址,其中该分页框基址是一对应的分页框的基址。
再参阅图1,分页表资料项114的该分页框基址被用来选择对应的分页框108,该分页框108,包含多个内存位置。线性地址102的较低位置或″位移量″位置被用来作为分页框108的索引。当分页表数据项114的分页框基址与线性地址102的该位移量部分合并时,将产生对应于该线性地址102的物理地址,并指示在分页框108内的内存位置116,该内存位置116具有从线性地址至物理地址转换所得到的物理地址。
就内存保护功能而论,图2的分页目录数据项格式200及图3所示的分页表数据项格式300包含用户/超级用户(User/Supervisor,U/S)位及读取/写入(Read/Write,R/W)位。操作系统利用U/S及R/W位的内容来使对应的分页框(亦即内存分页)不会受到未经授权的访问。U/S=0用来表示操作系统内存分页,且对应于操作系统的一″超级用户″等级。操作系统的超级用户等级对应于由x86处理器执行的软件程序及例程(routine)的当前特权等级0(Current Privilege Level0,CPL0)。U/S>0(亦即U/S=1,2,或3)亦用来指示用户内存分页,且对应于操作系统的一个″用户″等级。
R/W位用来指示对于对应的内存分页所容许的访问类型,R/W=0指示只容许读取对应的内存分页(亦即,对应的内存分页是″只读的″),R/W=1指示容许读取及写入对应的内存分页(亦即,对应的内存分页是″读写的″)。
在图1的线性至物理的地址转换作业期间,计算对应于分页框108的分页目录数据项112及分页表数据项114的U/S位内容的逻辑″和″,以便决定对分页框108的访问是否经授权。同样地,计算分页目录数据项112及分页表数据项114的R/W位内容的逻辑″和″,以便决定对分页框108的访问是否授权。如果U/S及R/W位在逻辑上的合并指示对分页框108的访问被授权,则使用该物理地址来访问内存位置116。另一方面,如果U/S及R/W位在逻辑上的合并指示对分页框108的访问并未授权,则不能访问内存位置116,并通知一保护错误指示。
不幸的是,前述的x86处理器架构的内存保护机制并不足以保护内存中存储的数据。例如,执行超级用户等级(例如具有0的CPL)的任何软件程序或例程可访问内存的任何部分,并可修改(即写入)内存中并未标示为″只读″(R/W=0)的任何部分。此外,由于以超级用户的等级执行,该软件程序或例程可改变内存的任何部分的属性(亦即U/S及R/W位),该软件程序或例程因而可将内存中标示为″只读″的任何部分改变为″读写″(R/W=1),然后继续修改内存的该部分。
x86处理器架构的保护机制亦不适于防止连接到内存的硬件装置对内存的随意(errant)的或恶意的访问,因为硬件装置(如前述在不先行改变内存中标示为″只读″的部分的属性之前)确实无法以写入访问修改内存中标示为″只读″的这些部分,而处理在硬件装置与内存之间的数据转移的软件程序或例程(例如装置驱动程序)也确实通常在用户等级(例如CPL3)下执行,且不容许访问内存中标示为超级用户等级(U/S=0)的各个部分。因而,x86处理器架构的保护机制只涵盖了因指令执行(亦即程序设定的输入/输出)而对内存执行的装置访问,装置驱动程序可将具有总线主控或直接内存访问(direct memoryaccess,DMA)能力的硬件装置设定成可将数据自该装置转移到内存中该硬件装置可访问的任何部分。例如,较容易将软盘控制器设定成将来自软盘的数据直接转移到内存中用来存储操作系统的一部分。
发明内容
本发明披露了一种主桥接器,该主桥接器包括内存控制器及安全检查单元(security check unit)。该内存控制器连接到用来存储安排在多个内存分页内的数据的内存,该内存控制器接收内存访问信号(例如,在内存访问期间),并通过访问该内存而响应这些内存访问信号。该安全检查单元接收这些内存访问信号,其中这些内存访问信号载送一个在目标内存分页之内的一物理地址,该安全检查单元利用该物理地址来访问位于该内存中的一个或多个安全属性数据结构,以便取得该目标内存分页的一安全属性。该安全检查单元根据该目标内存分页的安全属性,而将这些内存访问信号提供给该内存控制器。
该一个或多个安全属性数据结构可包括一安全属性表目录及一个或多个安全属性表,该安全属性表目录可包含多个数据项,该安全属性表目录的每一数据项可包含一存在位及一安全属性表基址字段,该存在位可指示对应于安全属性表目录数据项的一安全属性表是否存在于内存中。可将该安全属性表基址字段保留给对应于安全属性表目录数据项的安全属性表的一基址,该一个或多个安全属性表可包含多个数据项。该一个或多个安全属性表的每一数据项可包含一个安全分页(Security Page,SP)位,用以指示一对应的内存分页是否为一安全的分页。
可由一连接到该主桥接器的一装置硬件单元产生这些内存访问信号,该目标内存分页的安全属性可包含一安全的分页(SP)位,用以指示该目标内存分页是否为一安全的分页。当该安全的分页(SP)位指示该目标内存分页不是一安全的分页时,该安全检查单元可将这些内存访问信号提供给该内存控制器。当该安全的分页(SP)位指示该目标内存分页是一安全的分页时,该内存访问可能是未经授权的,且该安全检查单元不可将这些内存访问信号提供给该内存控制器。
这些内存访问信号可指示一内存访问类型,例如,该内存访问类型可以是一读取访问或一写入访问。当该安全的分页(SP)位指示该目标内存分页是一安全的分页,且这些内存访问信号指示该内存访问类型是一读取访问时,该内存访问可能是一未经授权的读取访问。在此种情形中,该安全检查单元可提供无效的或假造的读取数据而响应该未经授权的读取访问。该安全检查单元可通过记录该未经授权的读取访问,而进一步回应该未经授权的读取访问。
当该安全的分页(SP)位指示该目标内存分页是一安全的分页,且这些内存访问信号指示该内存访问类型是一写入访问时,该内存访问可能是一未经授权的写入访问。该安全检查单元可通过舍弃这些内存访问信号所载送的写入数据,而响应该未经授权的写入访问,该安全检查单元则可通过记录该未经授权的写入访问,而进一步回应该未经授权的写入访问。
本发明披露了一种计算机系统,该计算机系统包括:一内存,用以存储安排在多个内存分页内的数据;连接到该内存的装置,且该装置被配置为可产生内存访问信号;以及前述的主桥接器。该计算机系统可具有诸如一中央处理单元(CPU),该CPU包含一内存管理单元(Memory Management Unit,MMU),该MMU可操作地连接到该内存,且该MMU被配置成管理该内存。该内存管理单元(MMU)可管理该内存,使该内存存储安排在该多个内存分页内的数据。
本发明揭示了一种为内存提供访问安全的方法,该内存用来存储安排在多个内存分页内的数据,该方法包含下列步骤:接收若干内存访问信号,其中这些内存访问信号载送在目标内存分页之内的物理地址。将该物理地址用来访问位于该内存中的一个或多个安全属性数据结构,以便取得该目标内存分页的一安全属性,根据该目标内存分页的该安全属性,而利用这些内存访问信号来访问该内存。
附图说明
本发明可通过参考下列说明并配合所附图式而了解,在这些附图中,相同的标号表示类似的组件:
图1为x86处理器架构的一公知的线性至物理地址转换机制的示意图;
图2为x86处理器架构的一分页目录数据项格式的示意图;
图3为x86处理器架构的一分页表数据项格式的示意图;
图4为包括一CPU及一系统或″主″桥接器的一计算机系统的一实施例的示意图,其中该CPU包含一CPU安全检查单元(SCU),且其中该主桥接器包含一主桥接器SCU;
图5为图4的计算机系统的不同硬件及软件组件间的关系的示意图;
图6为图4的计算机系统的CPU的一实施例的示意图,其中该CPU包含一内存管理单元(MMU);
图7为图6的MMU的一实施例的示意图,其中该MMU包含一分页单元,且其中该分页单元包含CPU SCU;
图8为图7的CPU SCU的一实施例的示意图;
图9为访问所选择的一内存分页的一安全属性表(SAT)数据项以便取得所选择的该内存分页的额外的安全信息的一机制的一实施例的示意图;
图10为一SAT预设寄存器的一实施例的示意图;
图11为一SAT目录数据项格式的一实施例的示意图;
图12为一SAT数据项格式的一实施例的示意图;
图13为图4的主桥接器的一实施例的示意图,其中该主桥接器包含主桥接器SCU;
图14为图13的主桥接器SCU的一实施例的示意图;
图15是为内存提供访问安全的第一种方法的一实施例的流程图,该内存用来存储安排在多个内存分页内的数据;以及
图16是为内存提供访问安全的第二种方法的一实施例的流程图,该内存用来存储安排在多个内存分页内的数据
具体实施方式
下文中将说明本发明的实施例,为了顾及说明的清晰,本说明书中并未说明实际实施的范例的所有细节特征。当然,我们当了解,于开发任何此类真实的实施例时,必须作出许多与实施例相关的决定,以便达到开发者的特定目标,例如符合与系统相关的及与业务相关的限制条件,而这些限制条件将随着不同的实施例而变。此外,我们当了解,开发工作可能是复杂且耗时的,但对已从本发明的披露中获得提示的本领域普通技术人员而言,仍然将是一种例行的工作。
图4为一计算机系统400的一实施例,该计算机系统400包括一CPU402、一系统或″主″桥接器404、一内存406、一第一装置总线408(例如一周边组件互连(peripheral component interconnect,PCI)或周边组件互连总线)、一装置总线桥接器410、一第二装置总线412(例如一工业标准架构(industry standard architecture,ISA)或工业标准架构总线)、以及四个装置硬件单元414A至414D。主桥接器404连接到CPU402、内存406、及第一装置总线408,主桥接器404转换CPU 402与第一装置总线408之间的信号,且可操作地将内存406连接到CPU 402及第一装置总线408。装置总线桥接器410连接于第一装置总线408与第二装置总线412的间,且转换第一装置总线408与第二装置总线412之间的信号。在图4的实施例中,装置硬件单元414A及414B连接到第一装置总线408,且装置硬件单元414C及414D连接到第二装置总线412。一个或多个这些装置硬件单元414A至414D可以是诸如存储装置(例如硬盘机、软盘机、及CD-ROM光驱)、通讯装置(例如调制解调器及网络界面卡)、或输入/输出装置(例如视讯装置、音讯装置、及打印机)。
在图4的实施例中,CPU402包含一个CPU安全检查单元(SecurityCheck Unit,SCU)416,且主桥接器404包含一个主桥接器SCU418。如将在下文中详细说明的,CPU SCU416使内存406不会受到CPU402所产生的未经授权的访问(亦即″由软件启动的访问″,且主桥接器SCU418使内存406不会受到装置硬件单元414A至414D所启动的未经授权的访问(亦即″由硬件启动的访问″)。请注意,在其它的实施例中,主桥接器404可以是图4的CPU402的一部分。
图5为图4的计算机系统400的各种硬件及软件组件间的关系,在图5的实施例中,将多个应用程序500、操作系统502、安全核心504、及装置驱动程序506A至506D存储在内存406中。应用程序500、操作系统502、安全核心504、及装置驱动程序506A至506D包含由CPU402执行的指令。操作系统502提供可在其上执行应用程序500的一用户接口及软件″平台″,操作系统502亦可提供诸如其中包括文件系统管理、程序管理、及输入/输出(I/O)控制的一些基本支持功能。
操作系统502亦可提供一些基本的安全功能,例如,CPU402(图4)可以是执行x86指令集中的指令的x86处理器。在此种情形中,CPU402可包含若干专用的硬件组件,用以提供前述的保护模式中的虚拟内存及内存保护功能。操作系统502可以是诸如WindowsR操作系统系列(Microsoft股份有限公司,Redmond,WA)中的一种操作系统,此种操作系统在保护模式下操作CPU402,并利用CPU402的专用硬件组件提供保护模式中的虚拟内存及内存保护。
如将于下文中详细说明的,安全核心504提供通过在操作系统502所提供安全功能之上的额外的安全功能,使内存406中存储的数据不会受到未经授权的访问。在图5的实施例中,装置驱动程序506A至506D可选择与个自对应的装置硬件单元414A至414D相结合并且连接到个自对应的装置硬件单元414A至414D。装置硬件单元414A及414D是″安全″装置,且对应的装置驱动程序506A及506D是″安全″装置驱动程序。安全核心504连接在操作系统502与安全的装置506A及506D之间,并监视各应用程序500及操作系统502对安全的装置驱动程序506A及506D以及对应的安全的装置414A及414D的访问。安全核心504防止应用程序500及操作系统502对安全的装置驱动程序506A及506D以及对应的安全的装置414A及414D的未经授权的访问。
如图5所示,安全核心504(诸如经由一个或多个装置驱动程序)连接到CPU SCU416及主桥接器SCU418。如将于下文中详细说明的,CPU SCU416及主桥接器SCU418控制对内存406的访问。CPU SCU416监视对内存406的所有由软件启动的访问,且主桥接器SCU418监视对内存406的所有由硬件启动的访问。一旦安全核心504被配置之后,CPU SCU416及主桥接器SCU 418只容许对内存406的经授权的访问。
在图5的实施例中,装置驱动程序506B及506C是″不安全的″装置,且对应的装置硬件单元414B及414C是″不安全的″装置硬件单元,装置驱动程序506B及506C及对应的装置硬件单元414B及414C可以是诸如″旧型的″装置驱动程序及装置硬件单元。
请注意,在其它的实施例中,安全核心504可以是操作系统502的一部分。在其它的实施例中,安全核心504、装置驱动程序506A及506D、及/或装置驱动程序506B及506C可以是操作系统502的一部分。
图6为图4的计算机系统400的CPU402的一实施例,在图6的实施例中,CPU402包含执行单元600、内存管理单元(MMU)602、高速缓存单元604、总线接口单元(Bus Interface Unit,BIU)606、一组控制寄存器608、以及一组安全执行模式(Secure Execution Mode,SEM)寄存器610。CPU SCU416系位于MMU 602内。如将于下文中详细说明的,利用该组SEM寄存器610实施图4所示计算机系统400内的一安全执行模式(SEM),且由该组SEM寄存器610的内容来管理CPUSCU416及主桥接器SCU418的运行。由安全核心504(图5)访问(亦即写入及/或读出)各SEM寄存器610。当(i)CPU402是在x86保护模式下工作的一x86处理器,(ii)当激活内存分页,且(iii)SEM寄存器610的内容指定SEM操作时,图4的计算机系统400可诸如在SEM下运行。
一般而言,该组控制寄存器608的内容管理CPU402的运行,因此,该组控制寄存器608的内容管理执行单元600、MMU602、高速缓存单元604、及/或BIU606的作业。该组控制寄存器608可包括诸如x86处理器架构的多个控制寄存器。
CPU402的执行单元600提取指令(例如x86指令)及数据,执行所提取的指令,且在指令执行期间产生信号(例如地址、数据、及控制信号)。执行单元600连接到高速缓存单元604,且可经由高速缓存单元604及BIU606而从内存406(图4)接收指令。
计算机系统400的内存406(图4)包含多个内存位置,每一内存位置具有特有的物理地址。当在保护模式下工作且激活内存分页时,CPU402的一个地址空间被分成多个称为分页框或″分页″的区块。如前述,在任何特定时间中,只将对应于这些分页的一部分的数据存储在内存406内。在图6的实施例中,于指令执行期间由执行单元600产生的地址信号代表分段(亦即″逻辑的″)地址。如将于下文中说明的,MMU602将执行单元600所产生的分段地址转换为内存406的对应的物理地址。MMU602将这些物理地址提供给高速缓存单元604,高速缓存单元604是用来存储由执行单元600最近所提取的指令及数据的较小的存储单元。总线接口单元606连接在高速缓存单元604与主桥接器404之间,且用来经由主桥接器404而从内存406提取并未存在于高速缓存单元604的指令及数据。
图7为图6的MMU602的一实施例。在图7的实施例中,MMU602包含:分段单元700、分页单元702、以及选择逻辑单元704,该选择逻辑单元704用以选择在分段单元700及分页单元702间的输出,以便产生一个物理地址。如图7所示,分段单元700自执行单元600接收一个分段地址,并利用x86处理器架构的公知的分段地址至线性地址转换机制而在输出上产生一个对应的线性地址。如图7所示,当分页单元702为″分页″信号激活时,即接收由该分段单元700所产生的线性地址,并在输出上产生对应的物理地址。该分页信号可映像x86处理器架构中该组控制寄存器608(图6)中的一控制寄存器0(CR0)中的分页旗标(Paging Flag,PG)位。当停止触发该分页信号时,即不激活内存分页,且选择逻辑单元704将自分段单元700接收的线性地址产生为物理地址。
当触发该分页信号时,即激活内存分页,且分页单元702利用前述的x86处理器架构的线性至物理的地址转换机制100将自分段单元700接收的线性地址转换为一个对应的物理地址。如前所述,在该线性至物理地址转换作业期间,计算所选择的分页目录数据项及所选择的分页表数据项的U/S位内容的逻辑″和″,以便确定对分页框的访问是否经过授权。同样地,计算所选择的分页目录数据项及所选择的分页表数据项的R/W位内容的逻辑″和″,以便确定对该分页框的访问是否经过授权。如果U/S及R/W位在逻辑上的合并指示对该分页框的访问经授权,则由分页单元702产生该线性至物理地址转换操作所得到的物理地址。选择逻辑单元704接收由分页单元702所产生的该物理地址,将自分页单元702接收的该物理地址产生为物理地址,并将该物理地址提供给高速缓存单元604。
另一方面,如果U/S及R/W位在逻辑上的合并指示对分页框108的访问并未经授权,则分页单元702在该线性至物理地址转换作业期间并不产生一物理地址。相反地,分页单元702产生一分页错误信号,且MMU602将该分页错误信号传送到执行单元600。在x86处理器架构中,一分页错误信号在某些情况中指示一保护故障(protectionviolation)。执行单元600可响应该分页错误信号,而执行一异常状况处理例程,且最后可暂停在该分页错误信号触发时执行的一个应用程序500(图5)的执行。
在图7的实施例中,CPU SCU416位于MMU602的分页单元702的内。分页单元702亦可包含一转换后备缓冲器(Translation LookasideBuffer,TLB),用以存储数目较少的最近确定的线性至物理地址转换。
图8为图7CPU SCU416的一实施例。在图8的实施例中,CPU SCU416包含安全检查逻辑800,而安全检查逻辑800连接到该组SEM寄存器610(图6)及一安全属性表(security attribute table,SAT)数据项缓冲器802。如将于下文中说明的,SAT数据项包含比对应于内存分页的分页目录及分页表数据项的U/S及R/W位的额外安全信息。安全检查逻辑800利用一特定SAT数据项内存储的该额外的安全信息来避免对应的内存分页受到未经授权的软件启动的访问,SAT数据项缓冲器802用来存储数目较少的最近访问的内存分页的SAT数据项。
如前所述,该组SEM寄存器610用来实施图4的计算机系统400内的一安全执行模式(SEM),该组SEM寄存器610的内容管理CPUSCU 416的运行。安全检查逻辑800经由图8所示的一通讯总线而自MMU 602接收将要存储在SAT数据项缓冲器802中的信息,而安全检查逻辑800亦接收分页单元702所产生的一物理地址。
现在将利用图9至11来说明如何在图4的计算机系统400内取得利用图1的地址转换机制100而选择的内存分页的额外的安全信息。图9为访问所选择的一内存分页的一SAT数据项以便取得所选择的该内存分页的额外的安全信息的一机制900的一实施例。可在图8的安全检查逻辑800内实施图9所示的机制900,且可在图4的计算机系统400在SEM下作业时实施该机制900。机制900涉及:分页单元702(图7),利用图1的地址转换机制100而产生的一物理地址902;一SAT目录904;一SAT 906,包括多个SAT;以及该组SEM寄存器610的一SAT基址寄存器908。SAT目录904及其中包括SAT 906的多个SAT是由安全核心504(图5)所产生并维护的SEM数据结构。如将于下文中说明的,SAT目录904(当存在时)及任何必需的SAT是在访问前先复制到内存406。
SAT基址寄存器908包含一存在的(P)位,该(P)位指示在SAT基址寄存器908内有一有效的SAT目录基址存在。将SAT基址寄存器908的最高阶(亦即最高有效)位保留给该SAT目录基址,该SAT目录基址是存放SAT目录904的一内存分页的基址,如果P=1,则该SAT目录基址是有效的,且SAT表指定各内存分页的安全属性;如果P=0,则该SAT目录基址是无效的,且并无任何SAT表存在,而且由一SAT预设寄存器确定各内存分页的安全属性。
图10为SAT预设寄存器(1000)的一实施例。在图10的实施例中,SAT预设寄存器(1000)包含一安全的分页(SP)位,该SP位指示所有的内存分页是否为安全的分页。例如,如果SP=0,则所有的内存分页不是安全的分页,且如果SP=1,则所有的内存分页是安全的分页。
请再参阅图9,并假设SAT基址寄存器908的该P位是″1″,则由分页单元702(图7),所产生的物理地址902被分成三部分,以便访问所选择内存分页的SAT数据项。如前所述,SAT基址寄存器908的SAT目录基址是存放SAT目录904的内存分页的基址,SAT目录904包含多个SAT目录数据项,其中包括一SAT目录数据项910。每一SAT目录数据项910可具有内存406中的一对应的SAT。将物理地址902中包括物理地址902的最高阶或最高有效位的一″较高″部分用来作为SAT目录904的一索引,利用SAT基址寄存器908的SAT目录基址及物理地址902的该较高部分,而自SAT目录904内选择SAT目录数据项910。
图11为一SAT目录数据项格式1100的一实施例。根据图11,每一SAT目录数据项包含一存在的(P)位,该(P)位指示在SAT目录数据项内有一有效的SAT基址存在。在图11的实施例中,每一SAT目录数据项的最高阶(亦即最高有效)位存放了一对应的SAT,如果P=1,则该SAT基址是有效的,且对应的SAT系存储在内存406中。
如果P=0,则该SAT基址是无效的,且对应的SAT并未存在于内存406中,且必须从一存储装置(例如一磁盘驱动器)将该对应的SAT复制到内存406。如果P=0,则安全检查逻辑800可将一分页错误信号传送到分页单元702内的逻辑单元,且MMU602可将该分页错误信号传送到执行单元600(图6)。执行单元600可响应该分页错误信号,而执行一分页错误处理例程以从该存储装置提取所需的SAT,并将该所需的SAT存储在内存406。在将该所需的SAT存储在内存406之后,即将对应的SAT目录数据所述的P位设定为″1″,且继续执行机制900。
兹再参阅图9,将物理地址902的一″中间″部分用来作为SAT906的一索引,因而利用SAT目录数据项910的SAT基址及物理地址902的该中间部分,而从SAT906内选择SAT数据项(912)。图12为一SAT数据项格式(1200)的一实施例。在图12的实施例中,每一SAT数据项包含一安全的分页(SP)位,该SP位指示所选择的内存分页是否为一安全的分页。例如,如果SP=0,则所选择的内存分页可能不是一安全的分页,而如果SP=1,则所选择的内存分页可能是一安全的分页。
BIU606(图6)自内存406提取所需的SEM数据结构数据项,并将该SEM数据结构数据项提供给MMU602。请再参阅图8,安全检查逻辑800经由该通讯总线而自MMU602及分页单元702提取SEM数据结构数据项。如前所述,将SAT数据项缓冲器802用来存储数目较少的最近访问的内存分页的SAT数据项,安全检查逻辑800将一特定的SAT数据项以及对应的物理地址的一″标记″部分存储在SAT数据项缓冲器802中。
在一后续的内存分页访问期间,安全检查逻辑800可将通过分页单元702所产生的一物理地址的一″标记″部分与对应于SAT数据项缓冲器802中存储的各SAT数据项的物理地址的标记部分比较,如果该物理地址的该标记部分与对应于SAT数据项缓冲器802中存储的一SAT数据项的一物理地址的标记部分符合,则安全检查逻辑800可访问SAT数据项缓冲器802中的该SAT数据项,而无须执行图9的自内存406取得该SAT数据项的该程序。安全核心504(图5)(诸如在内容切换(context switch)期间)修改CPU402中的SAT基址寄存器908的内容,CPU SCU416的安全检查逻辑800可响应SAT基址寄存器908的修改,而清除SAT数据项缓冲器802的内容。
当图4的计算机系统400在SEM下运行时,安全检查逻辑800接收当前执行的工作(亦即当前执行的指令)的当前特权等级(currentprivilege level,CPL)、以及一物理地址所在的选择内存分页的分页目录数据项(Page Directory Entry,PDE)的U/S位、该PDE的R/W位、分页表数据项(Page Table Entry,PTE)的U/S位、及该PTE的R/W位,安全检查逻辑800利用上述的信息以及对应于所选择的内存分页的SAT数据项的SP位来决定对内存406的访问是否经授权。
图6所示的CPU402可以是一个x86处理器,且可包含程序代码区段(Code Segment,CS)寄存器,该CS寄存器是x86处理器架构中的一个16位区段寄存器。每一区段寄存器选择内存中称为区段(segment)的一个64k位区块(block),在分页激活的保护模式中,将用来指示内存406的一可执行区段的一区段选择码加载至该CS寄存器,该区段选择码的最高阶(亦即最高有效)位用来存储可指示内存的一区段的信息,其中包括通过CPU402的执行单元600(图6)将要执行的下一个指令。将一指令指针(Instruction Pointer,IP)寄存器用来存储由该CS寄存器指示的区段的一位移量,该CS:IP对指示下一个指令的一分段地址,而CS寄存器的两个最低阶(亦即最低有效)位用来存储可指示当前由执行单元600执行的一任务的一当前特权等级(CPL)(亦即当前工作的CPL)。
下表1显示出当图4的计算机系统400在SEM下运行时对由CPU启动的(亦即由软件启动的)内存访问的例示规则。当图4的计算机系统400在SEM下运行时,CPU SCU416(图4至图8)及安全核心504(图5)合作而执行表1的规则,以便对内存406中存储的数据提供比由操作系统502(图5)所提供的数据安全更进一步的额外安全。
表1.当图4的计算机系统400在SEM下运行时对由软件启
动的内存访问的例示规则
当前执行  所选择的
的指令    内存分页
                           容许的
SP     CPL   SP   U/S    R/W       访问       备注
1      0     X    X      1(R/W)    R/W        容许完全的访问。
                                              (典型的所访问分页之内
                                              容:安全核心及SEM
                                              数据结构)
1      0     X    X      0(R)      只读       写入尝试将造成分页错误
                                              ;如果所选择的内存分
                                              页是一安全的分页
                                              (SP=1),则发出一SEM
                                              安全异常状况信号,
                                              而不是发出一分页错误信号。
1      3     1    1(U)   1         R/W        适用标准保护机制。
                                              (典型的所访问分页的内
                                              容:高安全小程序。)
1      3     1    0(S)   X         无         访问将造成分页错误。
                                              (典型的所访问分页的内
                                              容:安全核心及SEM
                                              数据结构。)
1      3     0    0      1         无         访问将造成分页错误。
                                              (典型的所访问分页的内
                                              容;操作系统核心及第0
                                              级(Ring0)装置驱动程序。)
0      0     1    X      X         无         访问将造成SEM访问控
                                              管异常状况。
0      0     0    1      1         R/W        适用标准保护机制。
                               (典型的所访问分页的内
                                容:高安全的小程序。)
0    3    X    0    X    无     访问将造成分页错误;如果
                                所选择的内存分页是一
                                安全的分页(SP=1)
                                 ,则发出一SEM访问控
                                管异常状况信号,而非发
                                出一分页错信号。
0    3    0    1    1    R/W    适用标准保护机制。
                                (典型的所访问分页的内
                                容:应用程序。)
在上表1中,当前执行的指令的SP位是对应于存放该当前执行的指令的内存分页的SAT数据项的SP位。所选择的内存分页的U/S位是对所选择的该内存分页的PDE U/S位及PTE U/S位执行逻辑″和″运算的结果,所选择的内存分页的R/W位是对所选择的该内存分页的PDE R/W位及PTE R/W位执行逻辑″和″运算的结果。符号″X″意指″不必理会″,亦即,逻辑值可以是″0″或″1″。
请再参阅图8,CPU SCU416的安全检查逻辑800产生一分页错误信号及一″SEM安全异常状况″信号,并将该分页错误信号及该SEM安全异常状况信号提供给分页单元702内的逻辑。当安全检查逻辑800触发该分页错误信号时,MMU602将该分页错误信号传送到执行单元600(图6)。执行单元600可响应该分页错误信号,而利用x86处理器架构的公知的中断描述表(Interrupt Descriptor Table,IDT)向量机制来访问并执行一分页错误处理例程。
当安全检查逻辑800触发该SEM安全异常状况信号时,MM602将该SEM安全异常状况信号传送到执行单元600。与使用x86处理器架构的IDT向量机制的正常的处理器异常状况不同,可使用一种不同的向量方法来处理SEM安全异常状况。可利用与x86″SYSENTER″及″SYSEXIT″指令作业方式类似的方式,而经由一对寄存器(例如与模型有关的寄存器(Model Specific Register,MSR))而分派SEM安全异常状况。该对寄存器可以是″安全异常状况进入点″寄存器,且在发生一SEM安全异常状况时,可定义用于指令执行的一分支目标地址。这些安全异常状况进入点寄存器可定义程序代码区段(CS)、以及将用来进入一SEM安全异常状况处理例程的指令指针(IP、或64位版的RIP)、堆栈区段(Stack Segment,SS)、及堆栈指针(SP、或64位版的RSP)值。在软件的控制下,执行单元600(图6)可将先前的SS、SP/RSP、EFLAGS、CS、IP/RIP值推入一新的堆栈,以便指示发生该异常状况的位置。此外,执行单元600可将一错误码推入该堆栈上。请注意,不得使用一正常的中断返回(IRET)指令,这是因为必然会存储先前的SS及SP/RSP值,且必然会完成一堆栈切换,纵然并未发生CPL的一改变也是会有上述的状况。因此,可定义一个新个指令,以便完成自该SEM安全异常状况处理例程的一返回。
图13为图4主桥接器404的一实施例。在图13的实施例中,主桥接器404包含一主接口(host interface)1300、桥接逻辑1302、主桥接器SCU418、一内存控制器1304、及一装置总线接口1306。主接口1300连接到CPU402,且装置总线接口1306连接到第一装置总线408,桥接逻辑1302连接于主接口1300与装置总线接口1306之间,内存控制器1304连接到内存406,且执行对内存406的所有访问。主桥接器SCU418连接在桥接逻辑1302与内存控制器1304之间。如前所述,主桥接器SCU418经由装置总线接口1306而控制对内存406的访问,主桥接器SCU418经由装置总线接口1306而监视对内存406的所有访问,且只容许对内存406的经授权的访问。
图14为图13的主桥接器SCU418的一实施例。在图14的实施例中,主桥接器SCU418包含安全检查逻辑1400,而安全检查逻辑1400连接到一组SEM寄存器1402及一SAT数据项缓冲器1404。该组SEM寄存器1402管理安全检查逻辑1400的运行,且包含图9的一第二SAT基址寄存器908。该组SEM寄存器1402的该第二SAT基址寄存器908可以是一可寻址的寄存器。当安全核心504(图5)(诸如在一内容切换期间)修改CPU402的该组SEM寄存器610中的SAT基址寄存器908的内容时,安全核心504亦可将相同的值写入主桥接器SCU418的该组SEM寄存器1402中的该第二SAT基址寄存器908。主桥接器SCU 418的安全检查逻辑1400可响应该第二SAT基址寄存器908的修改,而清除SAT数据项缓冲器1404的内容。
安全检查逻辑1400经由装置总线接口1306及桥接逻辑1302(图13)而接收由装置硬件单元414A至414D所启动的内存访问的内存访问信号,这些内存访问信号载送来自装置硬件单元414A至414D的物理地址、及相关联的控制信号及/或数据信号。安全检查逻辑1400可实施机制900(图9),以便取得对应的内存分页的SAT数据项,且可在图4的计算机系统400在SEM下运行时,可实施机制900。SAT数据项缓冲器1404类似于前述的CPU SCU 416的SAT数据项缓冲器802(图8),且被用来存储数目较少的最近访问的内存分页的SAT数据项。
当图4的计算机系统400在SEM下运行时,图14的安全检查逻辑1400利用与所选择的一内存分页相关联的一SAT数据项的额外的安全信息来确定一特定的由硬件启动的内存访问是否经授权。如果该特定的由硬件启动的内存访问是经授权的,则安全检查逻辑1400将该内存访问的这些内存访问信号(亦即载送一物理地址及相关联的控制信号及/或数据信号的地址信号)提供给内存控制器1304。内存控制器1304利用该物理地址及相关联的控制信号及/或数据信号来访问内存406。如果对内存406的访问是一写入,则将数据信号所载送的数据写入内存406;如果对内存406的访问是一读取,则内存控制器1304自内存406读取数据,并将所得到的读取数据提供给安全检查逻辑1400。安全检查逻辑1400将该读取数据传送到桥接逻辑1302,且桥接逻辑1302将该数据提供给装置总线接口1306。
另一方面,如果该特定的由硬件启动的内存访问是未经授权的,则安全检查逻辑1400并不将对内存406访问的该物理地址及相关联的控制信号及/或数据信号提供给内存控制器1304。如果该未经授权的由硬件启动的内存访问是一内存写入,则安全检查逻辑1400可通知该写入的完成并舍弃写入数据,而不改变内存406的内容。安全检查逻辑1400亦可在一运行记录中产生一运行记录数据项(例如,设定或清除一状态寄存器的一个或多个位),以便记载该安全的非法访问。安全核心504可定期地访问该运行记录,以便检查这些运行记录数据项。如果该未经授权的由硬件启动的内存访问是一内存读取,则安全检查逻辑1400可将一假结果(false result)(例如,全部皆为″F″)经由桥接逻辑1302而送回到装置总线接口1306,作为读取数据。安全检查逻辑1400亦可产生前述的一运行记录数据项,以便记载该安全的非法访问。
图15是一种为内存提供访问安全的方法1500的一实施例的流程图,该内存用来存储安排在多个内存分页内的数据。方法1500反映了当图4的计算机系统400在SEM下运行时对由CPU启动的(亦即由软件启动的)内存访问的表1所示的例示规则。可在MMU 602(图6至图7)内实施方法1500。在方法1500的步骤1502期间,接收一指令的执行期间所产生的线性地址以及该指令的一安全属性(例如其中包括该指令的一个任务的一CPL),该指令存放在一内存分页中。在步骤1504期间,利用该线性地址来访问位于该内存中的至少一个分页内存数据结构(例如一分页目录及一分页表),以便取得所选择的一内存分页的基址及所选择的该内存分页的安全属性。所选择的该内存分页的安全属性可包括诸如一分页目录数据项的一U/S位及一R/W位、以及一分页表数据项的一U/S位及一R/W位。
在确定步骤1506期间,利用该指令的安全属性及所选择的该内存分页的安全属性来确定该访问是否经授权。如果该访问是经授权的,则在步骤1508期间结合所选择的该内存分页的基址及一位移量,以便生成所选择的该内存分页内的一物理地址。如果该访问是未经授权的,则在步骤1510期间生成一错误信号(例如一分页错误信号)。
在步骤1508的后执行的步骤1512期间,利用所选择的内存分页的物理地址访问位于内存中的至少一个安全属性数据结构(例如图9的SAT目录904及一SAT),以便取得该第一内存分页的一额外的安全属性及所选择的内存分页的一额外的安全属性。该第一内存分页的该额外的安全属性可包括诸如前所述的一安全的分页(SP)位,其中该SP位指示该第一内存分页是否为一安全的分页。同样地,所选择的该内存分页的该额外的安全属性可包括一安全的分页(SP)位,其中该SP位指示所选择的该内存分页是否为一安全的分页。
在步骤1514期间,根据该指令的安全属性、该第一内存分页的该额外的安全属性、所选择的该内存分页的安全属性、以及所选择的该内存分页的该额外的安全属性,而生成错误信号。请注意,可在CPUSCU 416(第4至图8)内实施方法1500的步骤1512及1514。
下表2显示出当图4的计算机系统400在SEM下作业时由装置硬件单元414A至414D启动的内存分页访问(亦即由硬件启动的内存访问)的例示规则。可由在装置硬件单元414A至414D内的总线主控电路启动此种由硬件启动的内存访问,或者可在装置硬件单元414A至414D的要求下,由DMA装置启动此种由硬件启动的内存访问。当图4的计算机系统400在SEM下作业时,安全检查逻辑1400可实施表2所示的规则,以便对内存406中存储的数据提供比操作系统502(图5)所提供的数据安全更进一步的额外安全。在下表2中,该″目标″内存分页是一内存访问的内存访问信号所载送的一物理地址所在的内存分页。
表2.当图4的计算机系统400在SEM下运行时由硬件启动的内存访问的例示规则
特定的
内存分页
SP      访问类型         动作
0        R/W             该访问以正常方式完成。
1        读取            并非送回实际的内存内容,而是送回的
                         内容皆为“F”,而完成该访问。可记录
                         该未经授权的访问。
1        写入            完成该访问,但舍弃写入数据。内存的
                         内容保持不变。可记录该未经授权存取。
在上表2中,通过主桥接器SCU 418利用该内存访问的物理地址及图9的前述机制900,而取得目标内存分页的SP位,以便取得对应的内存分页的SAT数据项。
如图2所示,当SP=1而指示目标内存分页是一安全的分页时,该内存访问是未经授权的。在此种情形中,安全检查逻辑1400(图14)并不将内存访问信号提供给内存控制器。这些内存访问信号的一部分(例如控制信号)指示一内存访问类型,且其中该内存访问类型是一读取访问或一写入访问。当SP=1且这些内存访问信号指示该内存访问类型是写入时,该内存访问是一未经授权的读取,且安全检查逻辑1400提供用来取代实际内存内容的皆为″F″的内容(亦即假的读取数据),而响应该未经授权的读取。安全检查逻辑1400亦可以前所述的方式记录该未经授权的读取,而响应该未经授权的读取。
当SP=1且这些内存访问信号指示该内存访问类型是一写入时,该内存访问是一未经授权的写入。在此种情形中,安全检查逻辑1400通过舍弃这些内存访问信号所载送的写入数据而响应该未经授权的写入,安全检查逻辑1400亦可以前所述方式记录该未经授权的写入,而回应该未经授权的写入。
图16是一种为内存提供访问安全的方法1600的一实施例的流程图,该内存用来存储安排在多个内存分页内的数据。方法1600反映了当图4的计算机系统400在SEM下运行时的表2用于由硬件启动的内存访问的例示规则,可在主桥接器404(图4及图13至图14)内实施方法1600。在方法1600的步骤1602期间,接收一内存访问的内存访问信号,其中这些内存访问信号载送一目标内存分页的一物理地址。如前所述,可由一装置硬件单元产生这些内存访问信号。在步骤1604期间,利用该物理地址来访问位于内存中的至少一个安全属性数据结构,以便取得该目标内存分页的一安全属性。这些至少一个安全属性数据结构可包括诸如一SAT目录(例如图9的SAT目录904)及至少一个SAT(例如图9的SAT 906),且该目标内存分页的额外的安全属性可包含前述的一安全的分页(SP)位,该SP位指示该目标内存分页是否为一安全的分页。在步骤1606期间,根据该目标内存分页的安全属性,而利用这些内存访问信号来访问该内存。请注意,可在主桥接器SCU 418(图4及图13至图14)内实施方法1600的步骤1600及1602。
前文所揭示的这些特定实施例只是供举例,这是因为本领域普通技术人员在参阅本发明的揭示事项之后,可易于以不同但等效的方式修改并实施本发明。此外,除了下文的申请专利范围所述者之外,本发明并不受限于本文所示的结构或设计的细节。所以,显然可改变或修改前文所揭示的这些特定实施例,且将把所有此类的变化视为在本发明的范围及精神内。因此,本发明所寻求的保护叙述于下文的申请专利范围。

Claims (10)

1.一种主桥接器(404),包括:
内存控制器(1304),连接到用来存储安排在多个内存分页内的数据的内存(406),其中该内存控制器(1304)接收内存访问信号,且该内存控制器(1304)配置为通过访问该内存(406)而响应这些内存访问信号;以及
安全检查单元(418),连接以接收这些内存访问信号,这些内存访问信号载送在目标内存分页之内的一个物理地址,该安全检查单元(418)的配置成利用该物理地址来访问位于该内存(406)中的至少一个安全属性数据结构,以便取得该目标内存分页的安全属性,且其中该安全检查单元(418)的配置成根据该目标内存分页的安全属性而将该内存访问信号提供给该内存控制器(1304)。
2.如权利要求1所述的主桥接器(404),其中的该至少一个安全属性数据结构包含一安全属性表目录(904)及至少一个安全属性表(906)。
3.如权利要求2所述的主桥接器(404),其中的该安全属性表目录(904)包含多个数据项(910),而该安全属性表目录(904)的每一数据项(910)包含一个存在位及一个安全属性表(906)基址字段,而该存在位指示对应于安全属性表目录数据项(910)的一个安全属性表(906)是否存在于该内存(406)中,且其中是将该安全属性表基址栏位保留给对应于该安全属性表目录数据项(910)的安全属性表(906)的一个基址。
4.如权利要求1、2、或3所述的主桥接器,其中目标内存分页的安全属性包含一安全的分页SP位,且其中该SP位指示该目标内存分页是否为一安全的分页。
5.如权利要求4所述的主桥接器,其中当该SP位指示该目标内存分页是一安全的分页时,该内存访问是未经授权的,且该安全检查单元(418)不将这些内存访问信号提供给该内存控制器(1304)。
6.如权利要求5所述的主桥接器,其中当该SP位指示该目标内存分页是一安全的分页,且这些内存访问信号指示该内存的访问类型是读取访问时,该内存访问是未经授权的读取访问,该安全检查单元(418)被配置成通过提供假的读取数据而响应该未经授权的读取访问。
7.如权利要求5或6所述的主桥接器,其中当该SP位指示该目标内存分页是一安全的分页,且这些内存访问信号指示该内存的访问类型是写入访问时,该内存访问是未经授权的写入访问,该安全检查单元(418)被配置成通过舍弃这些内存访问信号所载送的写入数据而响应该未经授权的写入访问。
8.一种管理内存(406)的计算机系统(400),包括:
内存(406),用以存储安排在多个内存分页内的数据;
可操作地连接到该内存(406)的装置(414A-D),且该装置被配置成可生成内存访问信号;以及
如权利要求1至7项中任一所述的主桥接器(404)。
9.一种为内存(406)提供访问安全的方法,该内存(406)用来存储安排在多个内存分页内的数据,该方法包括下列步骤:
接收内存访问信号,其中该内存访问信号传送一目标内存分页的物理地址;
使用该物理地址访问位于该内存(406)中的至少一个安全属性数据结构,以获取该目标内存分页的安全属性;以及
使用内存访问信号访问该内存(406),该内存访问信号取决于该目标内存分页的安全属性。
10.如权利要求9所述的方法,其中使用该物理地址访问至少一个安全属性数据结构,包括使用该物理地址访问包含有安全属性表目录(904)和至少一个安全属性表(906)的至少一个安全属性数据结构。
CNB028241371A 2001-12-05 2002-09-12 控制装置对内存的访问以提供增强的内存访问安全的系统与方法 Expired - Lifetime CN1285038C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/011,151 2001-12-05
US10/011,151 US7426644B1 (en) 2001-12-05 2001-12-05 System and method for handling device accesses to a memory providing increased memory access security

Publications (2)

Publication Number Publication Date
CN1599902A CN1599902A (zh) 2005-03-23
CN1285038C true CN1285038C (zh) 2006-11-15

Family

ID=21749091

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028241371A Expired - Lifetime CN1285038C (zh) 2001-12-05 2002-09-12 控制装置对内存的访问以提供增强的内存访问安全的系统与方法

Country Status (9)

Country Link
US (1) US7426644B1 (zh)
JP (1) JP2005512228A (zh)
KR (1) KR100995146B1 (zh)
CN (1) CN1285038C (zh)
AU (1) AU2002336493A1 (zh)
DE (1) DE10297494T5 (zh)
GB (1) GB2399920B (zh)
TW (1) TWI262389B (zh)
WO (1) WO2003050688A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1619572A1 (en) * 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
DE102005014837B4 (de) * 2004-08-02 2007-08-30 Mahltig, Holger Sicherheitsmodul und Verfahren zum Steuern und Kontrollieren eines Datenverkehrs eines Personalcomputers
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
JP4628149B2 (ja) * 2005-03-14 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ アクセス制御装置及びアクセス制御方法
TWI310153B (en) 2006-08-17 2009-05-21 Quanta Comp Inc Computer system and boot code accessing method thereof
TWI448902B (zh) * 2007-08-24 2014-08-11 Cypress Semiconductor Corp 具頁存取基礎處理器介面之橋接裝置
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
US20110202740A1 (en) * 2010-02-17 2011-08-18 Arm Limited Storing secure page table data in secure and non-secure regions of memory
US8935800B2 (en) 2012-12-31 2015-01-13 Intel Corporation Enhanced security for accessing virtual memory
US8959576B2 (en) 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
CN104169891B (zh) * 2013-10-29 2017-07-21 华为技术有限公司 一种访问内存的方法及设备
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US20170109526A1 (en) * 2015-10-20 2017-04-20 Intel Corporation Systems and methods for providing anti-malware protection and malware forensics on storage devices
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
EP3534583B1 (en) 2016-11-15 2021-01-06 Huawei Technologies Co., Ltd. Secure processor chip and terminal device
KR20200067633A (ko) * 2018-12-04 2020-06-12 삼성전자주식회사 메모리 장치 및 그것의 보안 데이터 처리 방법
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63752A (ja) 1986-06-20 1988-01-05 Nippon Telegr & Teleph Corp <Ntt> メモリ保護方式
US5335334A (en) 1990-08-31 1994-08-02 Hitachi, Ltd. Data processing apparatus having a real memory region with a corresponding fixed memory protection key value and method for allocating memories therefor
US5263147A (en) * 1991-03-01 1993-11-16 Hughes Training, Inc. System for providing high security for personal computers and workstations
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation 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
JPH10289158A (ja) 1997-04-11 1998-10-27 Hitachi Ltd タスク管理装置
US6516395B1 (en) * 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US7624249B2 (en) * 2005-11-10 2009-11-24 O'connor Dennis Processor multi-partition security architecture

Also Published As

Publication number Publication date
TWI262389B (en) 2006-09-21
GB0414778D0 (en) 2004-08-04
JP2005512228A (ja) 2005-04-28
CN1599902A (zh) 2005-03-23
GB2399920B (en) 2005-07-06
DE10297494T5 (de) 2004-11-25
KR20050027085A (ko) 2005-03-17
AU2002336493A1 (en) 2003-06-23
WO2003050688A2 (en) 2003-06-19
GB2399920A (en) 2004-09-29
KR100995146B1 (ko) 2010-11-18
US7426644B1 (en) 2008-09-16
WO2003050688A3 (en) 2004-02-12
TW200300885A (en) 2003-06-16

Similar Documents

Publication Publication Date Title
CN1285038C (zh) 控制装置对内存的访问以提供增强的内存访问安全的系统与方法
CN1278244C (zh) 内存管理系统及依据线性地址的内存存取保密的方法
CN1132107C (zh) 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
US7631160B2 (en) Method and apparatus for securing portions of memory
US6854039B1 (en) Memory management system and method providing increased memory access security
CN1630849A (zh) 安全执行模式下信任客户使用安全核心系统
CN1700136A (zh) 处理器扩展和软件验证
US7689733B2 (en) Method and apparatus for policy-based direct memory access control
US20060047959A1 (en) System and method for secure computing
CN1524206A (zh) 用于个人计算机存储器区域的外部锁固机构
CN1445680A (zh) 内部存储器型抗篡改处理器及保密方法
CN103842976A (zh) 具有保护模式以防止i/o装置进行存储器访问的输入/输出存储器管理单元
AU2009308007A1 (en) Opportunistic page largification
CN1628284A (zh) 安全执行模式异常
US20060085629A1 (en) Mapping a reset vector
CN101046774A (zh) 使用替代页池管理dma写入页错误的计算机实现方法和装置
US7512768B2 (en) Dynamically sharing a stack between different code segments
US10565141B1 (en) Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks
JP3607540B2 (ja) プログラム単位メモリアクセス属性管理方式
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
CN1920786A (zh) 实现操作系统安全控制的系统及方法
CN1920731A (zh) 一种实现操作系统隔离的系统及方法
TWI286686B (en) Method and apparatus for multi-table accessing of input/output devices using target security
JP2001249848A (ja) 先行特権レベルに基づく特権昇格
CN1904844A (zh) 一种基于嵌入式操作系统的硬盘自恢复保护方法

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: 20100709

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: 20100709

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: 20200424

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

Patentee after: MEDIATEK Inc.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20061115

CX01 Expiry of patent term