CN100426262C - 对利用地址转换映射寻址的存储器控制存取访问的方法和系统 - Google Patents

对利用地址转换映射寻址的存储器控制存取访问的方法和系统 Download PDF

Info

Publication number
CN100426262C
CN100426262C CNB2004100456063A CN200410045606A CN100426262C CN 100426262 C CN100426262 C CN 100426262C CN B2004100456063 A CNB2004100456063 A CN B2004100456063A CN 200410045606 A CN200410045606 A CN 200410045606A CN 100426262 C CN100426262 C CN 100426262C
Authority
CN
China
Prior art keywords
request
page
address translation
information
strategy
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 - Fee Related
Application number
CNB2004100456063A
Other languages
English (en)
Other versions
CN1577295A (zh
Inventor
M·佩纳多
P·英格兰
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1577295A publication Critical patent/CN1577295A/zh
Application granted granted Critical
Publication of CN100426262C publication Critical patent/CN100426262C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism

Abstract

揭示了允许有效地实行某些存储器存取控制算法的机制。当存储器存取控制是基于控制对地址转换映射(或映射集)的改变时,可能有必要判断某一映射改变是否会允许以不许可的方式对存储器进行存取访问。可高速缓存关于映射的某些数据,以便比执行对整个映射的评估更有效地进行判断。

Description

对利用地址转换映射寻址的存储器控制存取访问的方法和系统
技术领域
本发明一般涉及计算机安全领域。本发明尤其涉及使用地址转换控制实现隔离的或“隔开的”存储器。
背景技术
在某些情况下,希望具有隔离的或“隔开的”存储器部分,对这些存储器部分的存取是受限的。例如,计算机可并行运行两个操作系统,其中一个操作系统是安全的,而另一个不是。在此情况下,希望安全的操作系统具有隔开的存储器,在该隔开的存储器中能存储非安全的操作系统所不能存取访问的保密信息。
实现隔开的存储器的一种方式是通过地址转换控制。许多当代的计算机使用虚拟存储系统,其中,运行于计算机上的软件使用虚拟地址对存储器寻址,存储器管理单元使用一组地址转换映射将虚拟地址转换成实际地址。典型地是每个进程具有其自己的地址转换映射,从而虚拟地址和实际地址间的映射在进程与进程之间不同。可能的是配置一给定进程的地址转换映射,使得该进程的映射不把对于实际存储的给定块(如页面)的任何虚拟地址暴露给其它进程。从而,通过确保只有安全的进程具有对于实际存储器的给定块的虚拟地址,就可能通过控制地址转换映射的内容来实现隔开的存储器。
当使用这样的一种机制来实现隔开的存储器时,所引发的一个问题是,由于地址转换映射存储在存储器中,对存储器执行写操作的每个操作都可能影响映射,并从而可能致使对于隔开的存储器的虚拟地址暴露于不应能存取访问隔开的存储器的进程。防止这种虚拟地址被暴露的一种方式是在执行对存储器的每次写操作时校验每个映射的每个元素,以便确保在不应能存取访问隔开的存储器的任何进程的映射中没有对于隔开的存储器的页的虚拟地址。然而,给定写操作的频率,这种技术是低效的。
鉴于上述,需要一种能够克服现有技术缺陷的机制。
发明内容
本发明提供有效地控制对地址转换映射的改变的机制。可通过防止地址转换映射进入对于隔离的存储器的块的虚拟地址会暴露于不允许存取访问该隔离的存储器的进程(或其它实体)的状态,来实现隔离的存储器。一个“策略”定义了什么存储器存取访问操作是许可的,存储器存取控制系统能通过禁止地址转换映射进入违反该策略的任何状态来进行操作。
虚拟地址会被暴露的状态通常可根据满足某个特性的两个或多个集合的交集(或非交集),或根据满足某个特性的页面数来定义。可存储或高速缓存作为所定义的集合的成员的页面的标识,使得不必在执行可能改变地址转换映射的状态的每次写操作时计算集合的成员。例如,可将集合中的页面的标识存储为位向量,可对于这些位向量有效地执行诸如并集、交集等之类的集合运算。在某些情况下,可能很难计算满足某个特定特性的确切的集合,但是通过使用某些明确定义的子集或扩展集合作为实际集合的代表来确保符合策略,这在数学上是可行的。如果子集或扩展集合比实际集合相对较容易计算,那么可使用子集或扩展集合来代替实际集合。
此外,可按照某些统计计数来定义某些写操作允许性--例如,满足某个特性的页面数、对一给定页面的引用数等。可按引用计数器来有效地存储或高速缓存这种统计,可通过加1和减1操作来更新引用计数器。每次映射改变状态时,可更新位向量或计数器,然后有效地用于在策略的约束下评估存储器存取操作。
下面描述本发明的其它特征。
附图说明
通过连同附图一起阅读,会更好地理解上述概述以及下述的较佳实施例的详细描述。出于说明本发明的目的,附图中示出了本发明的示例性构成,然而,本发明并不限于所揭示的特定方法或手段。附图中:
图1是可实施本发明的诸方面的计算环境的框图;
图2是通过地址转换映射实现虚拟寻址的存储器系统的框图;
图3是一具有属性的示例性页面表的框图;
图4是表示可用于实现存储器存取控制的条件的两个示例性非交集集合的框图;
图5是表示地址转换映射的有向标记图的框图;
图6是示例性存储器存取控制过程的流程图。
具体实施方式
示例性计算配置
图1示出了可实施本发明的诸方面的示例性计算环境。计算系统环境100仅仅是合适的计算环境的一个例子,并不打算限制本发明的使用或功能。计算环境100不应被解释成具有对示例性操作环境100中所例示的任一组件或其组合的任何依赖性或要求。
本发明可用许多其它的通用或专用计算系统环境或配置来操作。可适用于本发明的众所周知的计算系统、环境和/或配置的例子包括但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、嵌入式系统、可包括任何上述系统或设备的分布式计算环境等等。
可在由计算机执行的诸如程序模块的计算机可执行指令的一般上下文环境中描述本发明。一般来说,程序模块包括例行程序、程序、对象、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型。本发明还可在由通过通信网络或其它数据传输媒体链接的远程处理设备来执行任务的分布式计算环境中实施。在分布式计算环境中,程序模块和其它数据可位于包括存储器设备的本地或远程计算机存储媒体中。
参考图1,用于实现本发明的示例性系统包括形式为计算机110的通用计算设备。计算机110的组件可包括但不限于:处理单元120、系统存储器130以及将包括系统存储器的各种系统组件连接到处理单元120的系统总线121。系统总线121可以是总线结构的若干类型中的任一种,包括使用各种总线结构体系中的任一种的存储器总线或存储器控制器、外围总线和局部总线。例如但不限于,这种总线结构体系包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设部件互连(PCI)总线(也称为夹层总线(Mezzanine bus))。
计算机110一般包括各种计算机可读媒体。计算机可读媒体可以是能由计算机200存取访问的任何可利用的媒体,包括易失性和非易失性媒体、可移除和不可移除的媒体。例如,计算机可读媒体可包括但不限于:计算机存储媒体和通信媒体。计算机存储媒体包括以任何技术或方法实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性、可移除和不可移除的媒体。计算机存储媒体包括但不限于:RAM、ROM、EEPROM、闪存或其它存储技术、CDROM、数字通用盘(DVD)或其它光存储设备、磁带盒、磁带、磁盘存储器或其它磁存储设备、或能用于存储所需信息并能由计算机110存取访问的任何其它媒体。通信媒体一般以如载波或其它传送机制之类的调制数据信号的形式来表示计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传送媒体。术语“调制数据信号”指的是以编码信号中的信息的方式设置或改变信号的一个或多个特征。作为例子但非限制,通信媒体包括如有线网络或直接线缆连接之类的有线媒体,和如声音、RF、红外线之类的无线媒体和其它无线媒体。任何上述的组合也应包括在计算机可读媒体的范围之中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132之类的易失性和/或非易失性形式的计算机存储媒体。包含如在启动期间帮助计算机100内的各元件间传输信息的基本例行程序的基本输入/输出系统133(BIOS)一般存储在ROM 131中。RAM 132一般包含可由处理单元120立即存取和/或当前正在运行的数据和/或程序模块。作为例子但非限制,图1例示了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可包括其它可移除/不可移除、易失性/非易失性的计算机存储媒体。例如,图1例示了对不可移除的非易失性磁性媒体进行读写的硬盘驱动器140、对可移除的非易失性磁盘152(如“软盘”)进行读写的磁盘驱动器151,以及对可移除的非易失性的光盘156进行读写的光盘驱动器155,光盘例如CD-ROM或其它光媒体。可用于示例性操作环境的其它可移除/不可移除、易失性/非易失性计算机存储媒体包括但不限于:磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器141一般通过诸如接口140之类的不可移除存储器接口连接到系统总线121,磁盘驱动器151和光盘驱动器155一般通过诸如接口150之类的可移除存储器接口而连接到系统总线121。
图1中所示的以及上述的驱动器及其相关的计算机存储媒体向计算机110提供对计算机可读指令、数据结构、程序模块以及其它数据的存储。例如,在图1中,所例示的硬盘驱动器141存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意到这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。在这里以不同的标号给出操作系统144、应用程序145、其它程序模块146以及程序数据147是为了例示出它们至少是不同的副本。用户可通过诸如键盘162和通常称为鼠标、轨迹球或触板的指针设备161之类的输入设备向计算机20输入命令或信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、卫星反射器、扫描仪等等。这些以及其它输入设备通常通过连接至系统总线的用户输入接口160而连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构而连接。还通过诸如视频接口190之类的接口将监视器191或其它类型的显示设备连接到系统总线121。除了监视器之外,计算机还可包括通过输出外设接口190连接的诸如扬声器197和打印机196之类外围输出设备。
计算机110可操作于使用对诸如远程计算机180之类的一个或多个远程计算机的逻辑连接的联网环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点等等,一般包括上述关于计算机110所述的元件的部分或全部,虽然图1仅示出了存储器设备181。图1中所描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但还可包括其它网络。这些联网环境在办公室、企业范围的计算机网络、企业内部互联网以及因特网之中是常见的
当用于LAN联网环境时,计算机110通过网络接口或适配器170连接到LAN171。当用于WAN联网环境时,计算机110一般包括调制解调器172或其它手段来在诸如因特网之类的WAN 173上建立通信连接。调制解调器172,它可外置或内置于计算机中,可以通过输入接口160或其它合适的机构连接到系统总线112。在联网环境中,关于计算机110所描述的程序模块或其部分可存储于远程存储器设备中。作为例子但非限制,图1例示了驻留于存储器设备181上的远程应用程序185。要理解到所示的网络连接仅仅是示例性的,可以使用在计算机之间建立通信链路的其它手段。
使用地址转换的存储器存取
计算机系统中的存储器(如图1中所示的RAM 132)对于每个字节都具有实际地址。从而,构成存储器的字节可被看作是编号的,其中由各自的编号可明确地标识各字节。在此情况下,所述编号构成了实际地址。例如,在256字节的存储器中,诸字节的实际地址的范围是0至28-1。然而,在当代计算机系统中,存储器一般不是通过其实际地址而被访问的,而是通过虚拟地址进行访问。使用地址转换映射来将实际地址变换成虚拟地址。
图2示出了地址转换映射的例子及其在实际计算机系统中的使用。图2中所示的示例性地址转换映射是一种“分页”方案,其中按称为“页面”的块来分配存储器。图2表示了用于英特尔(INTEL)x86处理器的分页方案。
在图2中,页面目录202包含指针指向诸如页面表204(1)、204(2)和204(3)之类的页面表(即页面表的实际地址)的指针数组。各页面表又包含指针指向页面(如页面206(1)、206(2)、206(3)以及206(4))的基地址的指针数组,并且还可包含诸如如上所述的只读/读写属性、存在/不存在位等的信息。页面是RAM 132中的固定长度的部分。此外,页面目录和页面表一般也存储在RAM 132中。图2中所描述的分页方案是二级分页方案,因为必须通过页面目录(第1级)和页面表(第2级)来定位某一页。本领域的技术人员会理解到设计任意级数的分页方案是可能的,并且本发明适用于所有这些分页方案。本领域还已知英特尔x86处理器一般使用图2中所示的二级分页方案,但是还可配置成使用一级或三级分页方案。
在图2的分页方案中,页面上的任一字节可由虚拟地址210标识,虚拟地址210包含页面目录偏移量211、页面表偏移量212和页面偏移量213。从而,为了定位实际地址,存储器管理单元(MMU)220使用页面目录偏移量211来定位页面目录202中的某一项。该项是页面表的实际基地址,从而MMU 220间接引用该地址来定位一个页面表(如页面表204(1))。然后,MMU 220使用页面表偏移量212作为所标识的页面表的索引,然后取回在此偏移量处的项。该项是页面(如页面206(1))的实际基地址,从而MMU将页面偏移量213加到所表示的页面的基地址上,以便定位实际存储器的某一字节。MMU 220还可配置成考虑诸如页面是否被标记为只读或读写、页面是否被标记为存在或不存在之类的信息,如下面结合图3所述。
图2的分页方案还包括包含指向页面目录的指针的存储单元201。MMU 220在它开始转换虚拟地址210时使用该指针来定位页面目录202。在英特尔x86处理器的例子中,存储单元201对应于名为CR3的寄存器,即,在英特尔x86处理器上,寄存器CR3存储当前上下文环境的页面目录的实际地址。从而就可能建立替代的转换表组(即两组或多组页面目录和页面表),并可能简单地通过将新页面目录的基地址写入存储单元201来改变使用哪组转换表。该技术的一个普通用法用于使运行于计算机上的各进程具有其自己的页面目录和页面表,其中,通过将新进程的页面目录的基地址写入存储单元201来实现“上下文环境切换”(即尤其引起虚拟存储器系统指向新进程的地址空间的操作)。在各进程具有其自己的页面目录的情况下,当前运行的进程的标识确定了把什么值载入存储单元201。
除了包含指向页面的指针之外,页面表和页面目录还可包含用于页面的“属性”。图3示出了示例性页面表204(1)的细节,它包含指针和属性。页面表204(1)中的每一项包括某一页面的地址302、指示出该项所指向的页面是否是“只读”的位304、以及指示出该项所指向的页面是否“存在”的位306。从而,如果页面表204(1)中的第一项301指向页面206(1)(示于图2),则位304根据其值为0或1来指示出MMU 220(示于图2)是否应允许对页面206(1)进行读写或只读。类似地,位306指示出页面206(1)是否存在于存储器中。(例如,如果页面206(1)的内容已移到磁盘来为存储器中的其它页面腾出空间,则可把位306设置成0,指示出不存在)。也可在页面表204(1)中存储其它属性。
使用地址转换映射用于存储器存取控制
在存储区可由虚拟地址存取访问的系统中,可根据如果地址转换映射配置成无虚拟地址转换成给定的实际地址,则该实际地址所表示的存储器是不可访问的这样一种规则来实施限制对存储器存取访问的系统。例如,在上述关于图2所描述的分页方案中,通过确保没有通过映射导向存储器的一给定页面(如页面206(1))的路径,可使得该页面不可被存取访问。在没有这种路径的情况下,将没有会转换到该页面的虚拟地址210。在所有的存储器存取访问都是由虚拟地址进行的系统中,对地址转换映射施加控制以拒绝对存储器的给定页面(或其它部分)的虚拟地址,这有效地使得该存储器部分不可被存取访问。即使在允许对存储器的某些实际寻址的系统中,可通过对地址转换映射控制补充对基于实际地址的那些存取访问请求的控制,来使得存储器不可被存取访问。
控制地址转换映射的内容以便控制对存储器的存取访问的技术在形式上可如下表示:假设S是可能存取访问一存储器的一组源。又假设P是定义存储器的哪些部分可由哪些源存取访问的策略。从而,如果s∈S,s是一个源,则MP(s)表示可由该源s通过地址转换映射存储访问的存储器部分(如具有虚拟地址的一组存储单元),NA(P,s)表示在策略P的约束下不允许源s存取访问的存储器部分。(虽然会理解到源的概念可推广到进程之外,但是在各进程具有其自己的地址转换映射的情况下,各进程可被看作是不同的“源”。)从而,只要条件:NA(P,s)∩MP(s)=φ,得到满足,则可确保该策略的执行。图4描述了该条件,示出存储器132作为一组存储单元,MP(s)402作为源s通过地址转换映射而可见的存储单元集合,NA(P,s)404作为在策略P的约束下不允许源s存取访问的存储单元集合。由于源s能够通过地址转换映射来寻址的存储单元(MP(s))都不包含在策略P的约束下不允许源s存取访问的存储单元集合中,因此,图4中所描述的条件有效地对源s执行了策略P。
从而,在某些示例情况中,可将控制源s对存储器132的部分的存取访问的问题简化成确保图4中所描述的条件总为真。该问题的一个解决方案是评估可能改变地址转换映射、策略或当前源的操作(如存储器写、CR3寄存器的加载等)。本发明提供允许有效地进行这种评估的技术。
会理解到图4中所示的条件仅仅是能用于实现存储器存取控制的示例性条件。在图4的主题下,其它变型是可能的,如那些涉及包含于地址转换映射中的存储单元集合、允许源s存取访问但不可写(或读)的存储单元集合等等。然而,要注意到用于存储器存取控制的条件一般包括校验两个或多个存储单元集合的非交集。
此外,虽然可把MP(s)看作是对源s可见的“映射页面”,但是应注意到存储器存取控制的概念并不限于采用分页方案的系统。在一典型的实现方式中,以逐页面的方式作出关于允许源在策略的约束下对哪些存储单元进行写操作或把哪些存储单元映射到源的判定。然而,本发明并不限于以逐页面的方式分配存储器、或以逐页面的方式允许或限制对存储器的存取访问的情况。
地址转换的广义模型
可使用有向标记图模型来将上述的和图2所示的地址转换映射一般化。下面描述用于某些类型的地址转换映射的广义模型。
在该模型中,B是基集合,L是字母表。给定B和L,G=(V,E)是带有边标记的有向图, V ⊆ B 以及 E ⊆ { ( v , w , l ) : v ∈ V , w ∈ W , l ∈ L } . E的任一元可解释成从顶点v至顶点w的具有标记l的有向边。顶点也可被标记。
图5示出了根据上述模型的图。图500包括顶点502、504、506、508、510以及512。这些顶点由边522、524、526、528、530、532以及534通过所示的方式连接。各边以字母表中的一个符号标记。在本例中,字母表包含符号A、B和C。从而,边522和524以符号A标记、边526、528和532以符号B标记、边530和534以符号C标记。基集合中也可存在在图500中不是顶点的元素(如元素550和552)。
应理解图500的分量对应于图2所示的地址转换映射的某些分量。例如,图2中页面目录202、页面表204(1)-204(3)以及页面206(1)-206(4)可被看作是图中的顶点。连接这些顶点的指针(如从页面表204(1)中的项指向页面206(1)和206(2)的指针)可被看作是图的边。对于图3,项的属性304和306(如只读和存在位)可被看作是边的标记。从而,“字母表”是属性的可能排列的集合。(在图3的例子中,有两个二进制属性,存在四个可能的组合,因此在字母表中有四个符号。)在不使用属性的情况中,字母表可由“零”(nil)符号组成。此外,存储器的未分配的页面对应于基集合中不具有进入边的成员。
在如上所述的图的模型中,可能定义一种“状态”。给定B和L,“状态”是(R,G)对,其中G是如上所定义的有向标记图, R ⊆ V , V是G的顶点集合。R表示“根顶点”集合。根顶点表示的是基集合中可合理地充当图的根的一组顶点。在图2的例子中,合法页面目录集合(即允许载入诸如英特尔x86处理器上的CR3寄存器之类的存储单元201的那些值)是“根顶点”集合。给定B和L,S是所有状态的集合。
根据上述定义的模型,可对地址转换机制(ATM)按下述建模:
-顶点的基集合B
-字母表L(可能为空)
-初始状态s0∈S(S是状态)
-一组状态转移规则(可能为空)
-地址转换功能
-全局标记
状态转移规则将ATM从一个状态改变到另一状态。从而可能定义一组状态转移规则ri:S S(其中i是某一索引),该组状态转移规则改变ATM的当前状态。ATM可具有下述类型的转移规则中的任何一种:
-改变(添加、删除、重标记)G的边
-添加或删除G的顶点
-改变根集合R。
例如,在图2和图3的例子中,删除指向一页面的指针或改变一页面的属性对应于改变图的一个边。添加新的页面目录、新的页面表或新的数据页面对应于添加或删除顶点。定义其基地址可载入存储单元201(如寄存器CR3)的新的页面目录对应于对根集合的改变。实质上,当前状态定义了通过地址转换可能存取访问哪些存储单元。
如上所述,可通过对地址转换映射强加限制条件来控制对存储器的存取访问,这种地址转换映射不向源暴露在策略约束下不允许该源存取访问的任一存储器部分的虚拟地址。而且,如前所述,在可能影响条件的真实性的操作被执行时,能评估那些条件的连续存在性。对于存储器存取控制,查验该技术的一种方式是将ATM的合法状态限制到S的某个子集T,或者关于当前状态的某个特性(或属性)P必须总为真。
给定某个特性P(不同于上述的策略P),可评估对执行可能将状态从s改变到ri(s)的动作的请求(对于某个i执行ri),以判断P(ri(s))是否为真--即,是否执行ri而导致产生的新的(所建议的)状态将具有特性P。如果P为真暗示出不会违反对存储器的存取访问的限制,那么P(ri(s))为真则意味着应允许进行通过执行ri而引起的状态改变。否则,不应允许进行操作。
应观察到每个存储器写操作都可能改变ATM的状态。从而,应作出以下两个观察:
-算法必须计算P(s)-可能是频繁地。
-一般地,新状态s’是从旧状态s导出的。如果旧状态具有特性P,那么就可能通过假设P(s)和仅仅分析产生s’的向s的(有限数量的)改变是否会导致违反P,来简化确定P(s’)的复杂性。
本发明提供允许有效地计算P的真值的技术。如下所述,在许多情况下,可通过存储(或高速缓存)关于ATM的当前状态的某些代表性信息来实现这种有效性,这些代表性信息可随后用于判定需要执行什么检验来确认P在状态转移下的真值,以及可避免哪些检验。
示例性特性类
特性P的一个类型是可由顶点集合来表示的特性。例如,上述的以及图4中所示的条件实质上就是一个特性,其中集合MP(s)和NA(P,s)不相交。可按照顶点集合以及这些集合之间的关系来表示的许多特性可通过存储(或高速缓存)一集合中顶点的标识来有效实施。
可用于评估ATM是否处于满足存储器存取控制条件的状态的集合的例子是:
1.与根顶点相距k的顶点的集合。在形式上,如果S是顶点集合,w是一顶点,设dk(S,w)表示存在从S中的某个顶点到顶点w的长度为k的(有向)路径。Sd={v∈V:dk(S,w)}。如果S是根顶点,则Sd指的是离根顶点距离为d的页面集合。例如,如果顶点502图500的根,则离根顶点为距离为1的顶点集合由顶点504和510组成,因为这两个顶点中任一个都可从根顶点通过一个边就能到达。参考图2所示的页面映射,页面目录202离根距离为1,页面表204(1)至204(3)离根距离为2。从而,在图2的例子中,可通过存储离根距离分别为1和2的那些页面的标识来高速缓存页面目录和页面表的地址。
2.根据边标记来确定的集合。例如,参考图5,具有标记为“A”的进入边的顶点的集合由顶点504和510组成,而具有标记为“B”的进入边的顶点的集合由顶点504、506和512组成。在图2的页面映射中,属性对应于边标记,可按照具有给定属性的那些页面来定义集合。例如,定义(以及高速缓存)标记为只读的页面集合可能是有用的,在此情况中,只读位为“置位(on)”(图3中所示的参考标号304)的页面集合可被定义。(可能的是一页面在页面映射中会被引用不止一次,在此情况中,对于该页面的不同引用会使得它们的只读属性设置不同;在此情况中,集合的定义能解决冲突一例如,如果对于页面的至少一个引用具有只读属性,或者如果对于页面的每个引用都具有只读属性等,则该页面在集合中)。
局部和非局部特性之间可能引起差异。局部特性可从进入一给定顶点的边来计算。也就是说,如果仅从进入顶点v的边就能够判断顶点v是否具有特性P,那么我们就说P的局部特性。否则,P是非局部特性。局部特性的一个例子是“顶点具有标记为读写的进入边”。非局部特性的一个例子是“页面(x86机器上)具有读写映射”。
3.具有某个特性的k个边的目标的顶点集合。在形式上,如果P、Q是属性,w是顶点,设In-degP,Q(w)=|{v∈V:P(v)和(v,w,1)∈E和Q(1)}|可按照具有给定入度(in-degree):{v∈V:In-degP,Q(v)=k}的顶点集合来定义集合。类似地,还可根据不等式来定义集合--例如,是具有某个特性的不少于(或不多于)k个边的目标的顶点集合。
例如,参考图5,具有至少一个标记为“C”的进入边的顶点集合由顶点508和512组成。参考图2的页面映射,可使用这种类型的集合定义来高速缓存页面的类别--例如,具有两个或多个映射的页面的集合,仅具有一个只读映射的页面的集合,等等。
4.可根据出度(out-degree)来定义一类似的集合,即具有带有某个特性的k个出边(多于k个出边或少于k个出边)的顶点的集合。例如,参考图5,仅具有两个标记为“A”的出边的顶点的集合由顶点502组成。图2包含类似的例子--例如,具有至少三个出边(即对其它页面的引用)的页面的集合包含页面目录202。
可通过普通的集合运算(如并集、交集、补集、差集)来组合这些集合。例如,如果S2是离根距离为2的页面的集合,则x86CPU的某些配置中的带有读写映射的页面的集合可如下表示:
({x:x具有大页面进入边}交集{x:x具有读写进入边}交集S2)并集
({x:x具有小页面进入边}交集{x:x具有读写映射}交集S3)
每当状态变化时,一种幼稚的算法可能通过遍历每个顶点v,并检验该顶点是否示于集合来重新计算这些集合。这是开销巨大的。如果算法计算可按照所刚刚描述的类型的集合来表示的状态特性,则可利用高速缓存方案,如下所述:
高速缓存方案
可使用各种方案来高速缓存用于有效评估状态改变的数据。下面描述了示例性的高速缓存方案。
方案1:简单集合高速缓存
该方案直接计算集合并存储(高速缓存)集合。每当各后续状态改变,算法更新高速缓存器。在一个例子中,可保存一高速缓存器,该高速缓存器受到以下访问操作:
-Init()--将高速缓存器初始化到某一明确定义的值,如空集合。
-Add(S)--将S(单个元素或元素集合)加入高速缓存器。
-Remove(S)--将S(单个元素或元素集合)从高速缓存器删除。
-ShowCache(S)--返回当前被高速缓存的所有元素。
还可对高速缓存器进行其它访问操作(例如以提高效率)。
表示这样一种高速缓存器的一种方式是通过位向量。例如,如果系统具有216个存储器实际页面,长为216比特(即8K字节)的向量可表示各页面的布尔(Boolean)值。第n个比特是导通或关断取决于第n个页面是否在定义的集合中。从而,给出一定义的页面集合,集合中的成员就可以仅仅以每个页面一个位的开销进行高速缓存。应理解到,通过使用按位“或”和“与”运算符,诸如并集和交集的集合运算可非常简单地进行这种类型的表示。
方案2:扩展集合,构造子集
根据执行存储器存取控制的基础算法的细节,可能不要求高速缓存包含确切的目标集合。例如,高速缓存目标集合的某个扩展集合或某个子集合就可能足够了。这能减少保存高速缓存的开销。在图3的例子中,存储器存取控制条件要求MP(s)不与NA(P,s)交集。然而,如果不便于或实际不能计算确切的NA(P,s)的成员,则可能计算和高速缓存NA(P,s)的某个扩展集合,并随后确保MP(s)不与所计算出的NA(P,s)的扩展集合相交集。这种技术可能造成拒绝某些本应该允许的状态改变,但不会允许本应不允许的任何状态改变--从而保持了存储器存取控制的状态。
方案3:保留边表示
一般来说,边被存储或与源顶点一起存储。例如,图2中,页面目录和页面表存储指向其它页面以及它们的属性的指针。给定一顶点,一般容易找到所有出边的目标。同时,找到所有入边的源一般是开销大的。因为顶点不载有关于其入边的信息,因此,可能要求彻底搜索所有的边来寻找所有入边。
如果算法要求快速访问顶点的入边或可从这些入边导出的信息,则可能较佳的是在一与顶点以某种方式相关联的数据结构中直接存储关于各顶点的入边的信息。术语“以某种方式相关联”的意思是给定顶点,则容易找到数据结构(如数组查找)。
在最极端的情况中,数据结构存储所有的入边。在该情况下,数据结构可以是如上所定义的一个高速缓存,其元素是边。(高速缓存还可存储集合或多重集合)。以此结构进行的存储与顶点的入边数成比例,并且,如果对于所有顶点都保持这种类型的结构,则总的存储量与图中的边数成比例。
存储导出信息通常就足够了,这要求较少的存储量。例如,算法可能仅存储各顶点的入边数。在此情况下,高速缓存器可实现为引用计数器。引用计数器一般受到下述访问操作:
-Init()--将高速缓存器初始化到某一明确定义的值,如0。
-Increment()
-Decrement()
-GetValue()
引用计数器(或类似的数据结构)的一个普通应用是构造集合。例如,一示例性的存储器存取控制算法可能不得不计算没有入边的顶点的集合,即引用计数为0的顶点的集合。引用计数器的聚集可如下控制该集合的高速缓存(方案1):无论何时一引用计数器的值改变,算法就检验它是否变为0。如果是,则将顶点加入高速缓存器。类似地,算法监视值为0的引用计数器获得不同的值的事件。在此事件中,算法将顶点从高速缓存器中删除。
下述是使用高速缓存的某些例子:
-对于d=1、2、3,高速缓存Sd的扩展子集Sd’。
-对于d=2、3:高速缓存器可以(a)被直接存储,或(b)由一引用计数器驱动。
-计算局部标记特性:“具有读写进入边”以及具有“大/小页面进入边”。
-计算非局部特性:“具有读写映射”。
-对S2中的顶点的读写进入边数使用引用计数器。
该信息可用于加速非局部特性“具有读写映射”的计算。
使用存储的信息对存储器存取控制的示例性过程
图6示出了使用这里所描述的级数执行存储器存取控制的示例性过程。
一开始,接收到存取访问存储器的请求(602)。当接收到存取访问请求时,存储器存取控制系统评估该请求,以判断对该请求的执行是否会符合支配存储器存取的策略(604)。存储器存取策略的例子已在上述讨论过。作为一个例子,策略可定义按超出一组源的范围来定义某些页面,策略可禁止对于一个超出范围的页面会导致建立对于不允许访问该页面的一个源可见的映射的任何存取访问请求。可通过存储或高速缓存信息(606)来助于对请求的评估。该存储的或高速缓存的信息可包含关于页面映射的信息--如,对于某些合法页面目录来说是已知的页面的集合。
如果判断出执行请求会符合策略(608),则允许请求继续下去(612)。否则,阻挡该请求,或将该请求修改成不会违反策略的形式(610)。将请求修改成不违反策略的形式的一个例子如下:如果请求要求将一会导致对一超出范围的页面的映射的项写入页面表,则可修改该请求使得该项被写入,但是页面的“存在”位关闭。从而,对于该新映射的页面的存取访问的任何未来企图都将产生异常,从而异常处理器能够最终阻碍对该超出范围的页面的存取访问。如果以这种方式(或某种其它方式)修改请求,则允许修改的请求继续下去(614)。在执行了修改的或未修改的请求之后,如果对请求的执行引起对所高速缓存的信息的改变,则可更新该高速缓存器(616)。
注意到上述例子仅仅出于解释的目的,并不能解释成对本发明的限制。虽然参考各实施例描述了本发明,但是要理解到这里所使用的词仅仅是用于说明书和描述的词,而不是用于限制的词。此外,虽然这里参考特定的装置、材料和实施例描述了本发明,但是本发明并不限于这里的特定揭示,相反,本发明涉及功能上相同的所有结构、方法和使用。从本发明说明书的教示中受益的本领域的技术人员可对本发明进行各种修改,各种修改不背离本发明的范围和要旨。

Claims (22)

1.一种用于对利用地址转换映射寻址的存储器控制存取访问的方法,其特征在于,所述方法包括:
接收对存储器的部分进行存取访问的请求,所述请求通过可通过地址转换映射转换的标识符标识要被存取访问的存储器部分;
根据经高速缓存的关于所述地址转换映射的信息,判断所述请求的执行是否会违反一限制对所述存储器存取访问的策略,其中所述经高速缓存的信息包括标识所述地址转换映射中具有预定特性的页面的集合的数据;
如果对所述请求的执行不会违反所述策略,则允许根据所述请求对所述存储器存取访问;以及
如果对所述请求的执行会违反所述策略,则进行下述任一步骤:
阻挡所述请求;或
修改所述请求,使得所述请求不违反所述策略,并执行经修改的请求。
2.如权利要求1所述的方法,其特征在于,所述请求包括对所述存储器的所述部分进行写操作的请求。
3.如权利要求1所述的方法,其特征在于,所述地址转换映射存储于所述存储器中,所述请求包括对存有所述地址转换映射的所述存储器的部分进行写操作的请求。
4.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息包括标识所述地址转换映射中离所述地址转换映射的根预定距离的页面的集合的数据。
5.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息包括指示出对特定页面的若干引用的数据。
6.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息包括指示出对特定页面的若干引用的数据,其中所述引用具有特定属性。
7.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息包括指示出所述地址转换映射中的特定页面所引用的若干页面的数据。
8.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息包括指示出所述地址转换映射中的特定页面所引用的且由所述特定页面指定特定属性的若干页面的数据。
9.如权利要求1所述的方法,其特征在于,根据集合中的页面的成员关系来判断与所述策略的相符性,其中所述经高速缓存的信息包括所述集合的一适当的扩展集合,所述判断对所述请求的执行是否会违反所述策略的动作包括评估所述页面是否是所述扩展集合的一个成员。
10.如权利要求1所述的方法,其特征在于,根据集合中的页面的成员关系来判断与所述策略的相符性,其中所述经高速缓存的信息包括所述集合的一适当的子集,所述判断对所述请求的执行是否会违反所述策略的动作包括评估所述页面是否是所述子集的一个成员。
11.如权利要求1所述的方法,其特征在于,所述经高速缓存的信息是关于地址转换映射的状态的至少一个方面的信息,并被存储在高速缓存中,其中
所述方法进一步包括:
更新经高速缓存的信息以反映出通过允许执行所述请求后由所执行的请求产生的所述地址转换映射的状态。
12.一种用于对利用地址转换映射寻址的存储器控制存取访问的系统,其特征在于,所述系统包括:
存储限制对存储器的存取访问的策略的一个或多个存储单元;
存储关于地址转换映射的信息的高速缓存器,其中所述高速缓存器中存储的信息包括标识所述地址转换映射中具有预定特性的页面的集合的数据;以及
接收对存储器存取访问的请求并至少部分根据存储于所述高速缓存器中的信息判断所述请求是否在所述策略的约束下是可允许的逻辑,如果判断出所述请求在所述策略的约束下是可允许的,则所述逻辑允许所述请求继续下去,如果所述请求在所述策略的约束下是不可允许的,则所述逻辑(1)阻挡所述请求,或者(2)将所述请求修改成在所述策略的约束下是可允许的形式,并允许经修改的请求继续进行。
13.如权利要求12所述的系统,其特征在于,所述请求包括对所述存储器的一部分进行写操作的请求。
14.如权利要求12所述的系统,其特征在于,所述地址转换映射存储于所述存储器中,其中,所述请求包括对存有所述地址转换映射的所述存储器的一部分进行写操作的请求。
15.如权利要求12所述的系统,其特征在于,存储于所述高速缓存器中的信息包括标识所述地址转换映射中离所述地址转换映射的根预定距离的页面的集合的数据。
16.如权利要求12所述的系统,其特征在于,存储于所述高速缓存器中的信息包括指示出对特定页面的若干引用的数据。
17.如权利要求12所述的系统,其特征在于,存储于所述高速缓存器中的信息包括指示出对特定页面的若干引用的数据,其中所述引用具有特定属性。
18.如权利要求12所述的系统,其特征在于,存储于所述高速缓存器中的信息包括指示出所述地址转换映射中的特定页面所引用的若干页面的数据。
19.如权利要求12所述的系统,其特征在于,存储于所述高速缓存器中的信息包括指示出所述地址转换映射中的特定页面所引用的且由所述特定页面指定特定属性的若干页面的数据。
20.如权利要求12所述的系统,其特征在于,根据集合中的页面的成员关系来判断与所述策略的相符性,其中存储于所述高速缓存器中的信息包括所述集合的一适当的扩展集合,所述逻辑通过评估所述页面是否是所述扩展集合的一个成员来判断允许所述请求是否会违反所述策略。
21.如权利要求12所述的系统,其特征在于,根据集合中的页面的成员关系来判断与所述策略的相符性,其中存储于所述高速缓存器中的信息包括所述集合的一适当的子集,所述逻辑通过评估所述页面是否是所述子集的一个成员来判断允许所述请求是否会违反所述策略。
22.如权利要求12所述的系统,其特征在于,所述逻辑是在至少一个硬件或软件中实现的。
CNB2004100456063A 2003-05-02 2004-05-08 对利用地址转换映射寻址的存储器控制存取访问的方法和系统 Expired - Fee Related CN100426262C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46734303P 2003-05-02 2003-05-02
US60/467,343 2003-05-02
US10/610,666 US7139892B2 (en) 2003-05-02 2003-06-30 Implementation of memory access control using optimizations
US10/610,666 2003-06-30

Publications (2)

Publication Number Publication Date
CN1577295A CN1577295A (zh) 2005-02-09
CN100426262C true CN100426262C (zh) 2008-10-15

Family

ID=32995081

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100456063A Expired - Fee Related CN100426262C (zh) 2003-05-02 2004-05-08 对利用地址转换映射寻址的存储器控制存取访问的方法和系统

Country Status (13)

Country Link
US (2) US7139892B2 (zh)
EP (1) EP1473616B1 (zh)
JP (1) JP4672281B2 (zh)
KR (1) KR101024819B1 (zh)
CN (1) CN100426262C (zh)
AU (1) AU2004201803B2 (zh)
BR (1) BRPI0401685A (zh)
CA (2) CA2465255A1 (zh)
MX (1) MXPA04004145A (zh)
MY (1) MY138723A (zh)
RU (1) RU2364932C2 (zh)
TW (1) TWI346287B (zh)
ZA (1) ZA200403291B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050165837A1 (en) * 2004-01-22 2005-07-28 International Business Machines Corporation System and method for embedded java memory footprint performance improvement
US20050183077A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation System and method for JIT memory footprint improvement for embedded java devices
US20050283770A1 (en) * 2004-06-18 2005-12-22 Karp Alan H Detecting memory address bounds violations
US7395422B2 (en) * 2005-04-13 2008-07-01 Hewlett-Packard Development Company, L.P. Method and system of changing a startup list of programs to determine whether computer system performance increases
US8301767B1 (en) * 2005-12-21 2012-10-30 Mcafee, Inc. System, method and computer program product for controlling network communications based on policy compliance
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
WO2007085122A1 (en) * 2006-01-26 2007-08-02 Intel Corporation Optimizing memory accesses for network applications using indexed register files
US8180967B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory virtualization
US8180977B2 (en) 2006-03-30 2012-05-15 Intel Corporation Transactional memory in out-of-order processors
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US20080244262A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Enhanced supplicant framework for wireless communications
CN101295265A (zh) * 2007-04-25 2008-10-29 国际商业机器公司 全系统isa仿真系统及其识别进程的方法
US8725927B2 (en) * 2008-10-15 2014-05-13 Micron Technology, Inc. Hot memory block table in a solid state storage device
US8462161B1 (en) 2009-01-20 2013-06-11 Kount Inc. System and method for fast component enumeration in graphs with implicit edges
CN101645054B (zh) * 2009-08-25 2011-07-13 中兴通讯股份有限公司 一种数据采集卡、数据采集卡的扩展控制系统及其方法
US8650337B2 (en) * 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8635430B2 (en) * 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8788788B2 (en) * 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
FR2980905B1 (fr) * 2011-09-29 2014-03-14 Continental Automotive France Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile
US9342704B2 (en) * 2011-12-28 2016-05-17 Intel Corporation Allocating memory access control policies
US8937317B2 (en) 2012-12-28 2015-01-20 Avogy, Inc. Method and system for co-packaging gallium nitride electronics
US9324645B2 (en) 2013-05-23 2016-04-26 Avogy, Inc. Method and system for co-packaging vertical gallium nitride power devices
US9324809B2 (en) 2013-11-18 2016-04-26 Avogy, Inc. Method and system for interleaved boost converter with co-packaged gallium nitride power devices
US9652434B1 (en) * 2013-12-13 2017-05-16 Emc Corporation Modification indication implementation based on internal model
US9864691B1 (en) * 2013-12-13 2018-01-09 EMC IP Holding Company LLC Deletion indication implementation based on internal model
US9886301B2 (en) * 2015-05-04 2018-02-06 Strato Scale Ltd. Probabilistic deduplication-aware workload migration
US10303621B1 (en) * 2017-03-07 2019-05-28 Amazon Technologies, Inc. Data protection through address modification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044445A (en) * 1995-06-30 2000-03-28 Kabushiki Kaisha Toshiba Data transfer method and memory management system utilizing access control information to change mapping between physical and virtual pages for improved data transfer efficiency
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6321314B1 (en) * 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0256653A (ja) * 1988-08-23 1990-02-26 Toshiba Corp 階層化メモリ管理方式
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5179441A (en) * 1991-12-18 1993-01-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Near real-time stereo vision system
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
CN1183841A (zh) * 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5729466A (en) * 1996-04-03 1998-03-17 Cadence Design Systems, Inc. Optimization multiple performance criteria by simulating the behavior of a constraint graph expanded by subgraphs derived from PWL convex cost functions
US5663891A (en) * 1996-04-03 1997-09-02 Cadence Design Systems, Inc. Optimization of multiple performance criteria of integrated circuits by expanding a constraint graph with subgraphs derived from multiple PWL convex cost functions
US5701460A (en) * 1996-05-23 1997-12-23 Microsoft Corporation Intelligent joining system for a relational database
US5991408A (en) * 1997-05-16 1999-11-23 Veridicom, Inc. Identification and security using biometric measurements
US6807537B1 (en) * 1997-12-04 2004-10-19 Microsoft Corporation Mixtures of Bayesian networks
US6271856B1 (en) * 1998-11-19 2001-08-07 Paraform, Inc. Creating and modifying parameterizations of surfaces
US6442664B1 (en) * 1999-06-01 2002-08-27 International Business Machines Corporation Computer memory address translation system
US20020118207A1 (en) * 2000-12-22 2002-08-29 Nortel Networks Limited Method and apparatus for determining graph planarity
US6938138B2 (en) * 2001-01-11 2005-08-30 International Business Machines Corporation Method and apparatus for managing access to memory
US6836836B2 (en) * 2001-01-19 2004-12-28 Sony Corporation Memory protection control device and method
JP2002237142A (ja) * 2001-02-09 2002-08-23 Matsushita Electric Ind Co Ltd 磁気記憶媒体、そのトラックピッチ制御方法、その媒体のための磁気記録装置
US6889296B2 (en) * 2001-02-20 2005-05-03 International Business Machines Corporation Memory management method for preventing an operating system from writing into user memory space
AU2002252297A1 (en) * 2001-03-10 2002-09-24 Bioinformatics Dna Codes, Llc Methods and tools for nucleic acid sequence analysis selection and generation
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US20030079103A1 (en) * 2001-10-24 2003-04-24 Morrow Michael W. Apparatus and method to perform address translation
US7388988B2 (en) * 2002-01-14 2008-06-17 Hewlett-Packard Development Company, L.P. Systems and methods for processing boundary information of a graphical object
US7058768B2 (en) * 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
US6986006B2 (en) * 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7565509B2 (en) * 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US6963959B2 (en) * 2002-10-31 2005-11-08 International Business Machines Corporation Storage system and method for reorganizing data to improve prefetch effectiveness and reduce seek distance
US6986017B2 (en) * 2003-04-24 2006-01-10 International Business Machines Corporation Buffer pre-registration
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044445A (en) * 1995-06-30 2000-03-28 Kabushiki Kaisha Toshiba Data transfer method and memory management system utilizing access control information to change mapping between physical and virtual pages for improved data transfer efficiency
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6321314B1 (en) * 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access

Also Published As

Publication number Publication date
TWI346287B (en) 2011-08-01
US20060265557A1 (en) 2006-11-23
KR20040094382A (ko) 2004-11-09
RU2004113567A (ru) 2005-10-27
JP4672281B2 (ja) 2011-04-20
MY138723A (en) 2009-07-31
US20040221126A1 (en) 2004-11-04
CA2712081A1 (en) 2004-11-02
EP1473616A3 (en) 2008-05-07
JP2004334870A (ja) 2004-11-25
BRPI0401685A (pt) 2005-01-18
US7605816B2 (en) 2009-10-20
RU2364932C2 (ru) 2009-08-20
KR101024819B1 (ko) 2011-03-31
EP1473616B1 (en) 2017-09-27
AU2004201803A1 (en) 2004-11-18
CA2465255A1 (en) 2004-11-02
MXPA04004145A (es) 2005-07-05
ZA200403291B (en) 2005-03-30
AU2004201803B2 (en) 2009-11-12
US7139892B2 (en) 2006-11-21
EP1473616A2 (en) 2004-11-03
CN1577295A (zh) 2005-02-09
TW200508862A (en) 2005-03-01

Similar Documents

Publication Publication Date Title
CN100426262C (zh) 对利用地址转换映射寻址的存储器控制存取访问的方法和系统
CN1612112B (zh) 用于地址翻译控制的阴影页表
CN100578471C (zh) 用于在虚拟机之间共享页的方法和系统
US7366825B2 (en) NAND flash memory management
US20070011180A1 (en) Systems and methods for enhanced stored data verification utilizing pageable pool memory
US11693634B2 (en) Building segment-specific executable program code for modeling outputs
US11270375B1 (en) Method and system for aggregating personal financial data to predict consumer financial health
CN101647010A (zh) 在应用程序之间共享信息的技术
CA2391557A1 (en) Systems and methods for creating financial advice applications
CN101183379A (zh) 用于检索数据的方法和系统
US20150186776A1 (en) Contextual data analysis using domain information
US9390152B2 (en) Efficiently providing multiple metadata representations of the same type
JP2022067087A (ja) 文書内の機密情報を保護するための方法、コンピュータプログラム製品およびコンピュータシステム(文書内の機密情報のマスキング)
US10445001B2 (en) Memory control scheme for flash memory devices
US7890397B1 (en) System, method, and computer-readable medium for settling accounts
US9069884B2 (en) Processing special attributes within a file
US10572672B2 (en) Modification of data elements using a semantic relationship
US20190179754A1 (en) Memory barriers in a coherence directory
US20220383093A1 (en) Leveraging and Training an Artificial Intelligence Model for Control Identification
US20060053479A1 (en) Accessing a data item in a memory of a computer system
US20200104391A1 (en) Ensuring integrity of records in a not only structured query language database
CN114722109B (zh) 数据导入方法、系统、设备及存储介质
US20230343072A1 (en) Data sensitivity estimation
WO2023051501A1 (en) Linguistic transformation based relationship discovery for transaction validation
US20240086333A1 (en) Runtime protection of sensitive data

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: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081015

Termination date: 20200508

CF01 Termination of patent right due to non-payment of annual fee