内存管理系统及依据线性地址的内存存取保密的方法技术方案

技术编号:2865672 阅读:175 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示一种内存管理单元(MMU),用于管理分散存储在多个内存页内数据的内存。MMU包含有保密检测单元(SCU),接收在当前指令执行期间所产生的线性地址。此线性地址具有存在于所选择内存页内的相对应物理地址。SCU利用线性地址存取一个或多个位于内存内的保密属性数据结构以便获得所选择内存页的保密属性。SCU比较由当前指令的保密属性所传达的数值与由所选择内存页的保密属性所传达的数值,且依据比较结果产生输出信号。MMU依据此输出信号存取所选择内存页。所选择内存页的保密属性包含有保密范围辨识(SCID)值,显示所选择内存页的保密范围的级别数。当前指令的保密属性包含有SCID值,显示包含有当前指令的内存页的保密范围级别数。所描述的中央处理单元(CPU)包含有执行单元和MMU。所描述的计算机系统包含有内存、CPU、和MMU。所描述的方法为对于分散存储在多个内存页内的数据提供存取保密。此方法可内建于MMU中。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及内存管理系统及方法,尤其涉及对存储在内存内的数据提供保护的内存管理系统及方法。
技术介绍
通常计算机系统包含有内存级别以便以相当低的成本获得相当高的性能位准。通常将数种不同软件程序的指令存储在容量大但存取速度慢的非易失性存储单元内(例如,磁盘驱动单元)。当使用者要执行一个软件程序时,会将所选择程序的指令复制到主存储器单元(例如,随机存取内存RA),且中央处理单元(CPU)会从主存储器单元获得所选择程序的指令。众所周知的虚拟内存管理技术是通过在任何时间仅将数据结构的一部分存储在主存储器内而使得CPU可存取容量较主存储器单元大的数据结构。剩余的数据结构则是存储在容量大但存取速度慢的非易失性存储单元内,且仅当需要时才将其复制到主存储器单元内。虚拟内存通常是通过将CPU的地址空间划分成称为″讯框″(frame)或″页″(page)的多个区块而实现。仅对应于该页的部分数据在任何指定时间均是存储在主存储器内。当CPU产生在特定页内的地址时,而该页的复制并不位于主存储器单元内时,将此页内所需的数据从容量大但存取速度慢的非易失性存储单元复制到主存储器单元。在此处理中,会将另一页数据从主存储器单元复制到非易失性存储单元以便空出用于存储所需页内数据的空间。受欢迎的80×86(x86)处理机结构包含有特殊的硬件组件以便支持受保护的虚拟位置模式(亦即,受保护的模式)。现将利用图1至3说明如何在x86处理机内同时实现虚拟内存和内存的保护性质。图1显示了众所周知的x86处理器结构的线性至物理地址转换机构100。地址转换机构100之内具有x86处理器,且包含有在x86处理器内所产生的线性地址102、分页表目录(亦即,页目录)104、包含有分页表106的数个分页表、包含有页帧108的数个页帧、和控制寄存器(CR3)110。将由操作系统软件(亦即,操作系统)产生和维护的内存数据结构分页成页目录104和数个分页表。页目录104总是位于内存(例如,主存储器单元)内。为简化说明,亦假设分页表106和页帧108是常驻在内存内。如图1中所显示,将线性地址102划分成三个部分以便完成线性至物理的地址转换。CR3 110的最高位系用于存储页目录的基寄存器。页目录的基寄存器为包含有页目录104的内存页的基址。页目录104包含有数个页目录条目,其包含有页目录条目112。包含有线性地址102最高顺位或最高位的线性地址102的″目录指针″部分的上限系用于作为进入页目录104的指针。利用CR3 110的页目录基址和线性地址102的″目录指针″部分的上限可在页目录104内选择页目录条目112。图2显示x86处理器结构的页目录条目格式。如图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包含有使用者/超级用户(U/S)位和读取/写入(R/W)位。操作系统利用U/S和R/W位的内容保护相对应页帧(亦即,内存页)免于进行未授权的存取。U/S=0系用于表示操作系统内存页,且对应于操作系统的超级用户”超级用户”级别。操作系统的超级用户”超级用户”级别对应于由x86处理器所执行的软件程序和常驻程序的当前特权级0(CPL0)。U/S=1系用于表示使用者内存页,且对应于操作系统的″使用者″级别。操作系统的使用者级别对应于x86处理器的CPL3。(使用者级别亦对应于x86处理器的CPL1和/或CPL2)。R/W位是用于表示允许存取相对应内存页的形式。RW=0表示仅允许对相对应内存页进行读取存取(亦即,相对应内存页为″只读″)。RW=1表示可对相对应内存页同时进行读取和写入存取(亦即,相对应内存页为″读取-写入″)。在图1的线性至物理地址转换操作期间,对相应于页帧108的页目录条目112和分页表条目114的U/S位的内容进行逻辑与门(AND)以便决定是否对页帧108的存取是授权的。同样地,对页目录条目112和分页表条目114的R/W位的内容进行逻辑与门以便决定是否对页帧108的存取是授权的。假如U/S和R/W位的逻辑组合显示对页帧108的存取是授权的,则可利用物理地址存取内存位置116。另一方面,假如U/S和R/W位的逻辑组合显示对页帧108的存取是未授权的,则不存取内存位置116,且发出保护失效指示。不幸地,x86处理器结构的上述内存保护机构不足以保护存储在内存内的数据。举例而言,任何由超级用户级别(例如,所具有的CPL=0)所执行的软件程序或常驻程序可存取内存的任何部分,且可以修改内存的没有标示″只读″(R/W=0)的任何部分(亦即,写入)。除此之外,由于是以超级用户级别执行,所以软件程序或常驻程序可改变内存任何部分的属性(亦即,U/S和R/W位)。软件程序或常驻程序可因此将内存标示为″只读″的任何部分改变为″读取-写入″(R/W=1),且然后进一步修改内存的该部分。本专利技术是有关于可解决,或至少降低前述问题的一些或全部的方法,及实现该方法的系统。
技术实现思路
提出用于管理内存的内存管理单元,此内存内存储有安排在多个内存页内的数据。内存管理单元包含有保密检查单元,该保密检查单元接收在当前指令执行期间所产生的线性地址。线性地址具有存在于所选择内存页内的相对应物理地址。保密检查单元利用线性地址存取位于内存内的一个或多个保密属性数据结构以便获得所选择内存页的保密属性。保密检查单元包含有由当前指令的保密属性传达的数值和由所选择内存页的保密属性传达的数值,且依据比较的结果产生输出信号。内存管理单元依据此输出信号存取所选择内存页。所描述的中央处理单元(CPU)包含有执行单元和上述内存管理单元(MMU)。执行单元从内存取得指令且执行这些指令。MMU管理内存,且可建构成管理内存,所以内存可存储安排在数个内存页内的数据。MMU包含有上述的保密检查单元。所描述的计算机系统包含有内存、CPU和MMU。所描述方法为内存提供存取保密,此内存是用于存储分散在数个内存页内的数据。此方法包含有接收在执行指令期间产生的线性地址,和指令的保密属性,在此指令是存在于第一内存页内。线性地址是用于存取位于内存内的一个或多个分页式内存数据结构以便获得所选择内存页的基址,及所选择内存页的保密属性。假如指令的保密属性(例如,当前该指令由x本文档来自技高网
...

【技术保护点】
一种内存管理单元(602),用于管理分散存储在多个内存页内的数据,此内存管理单元(602)包含有:    保密检测单元(416),连接成接收在当前指令执行期间所产生的线性地址(102),其中此线性地址(102)具有存在于所选择内存页内的相对应的物理地址,且其中此保密检测单元(416)构建成利用此线性地址(102)存取位于内存(406)内的至少一个的保密属性数据结构,以便获得所选择内存页的保密属性,比较由当前指令的保密属性传达的数值与由所选择内存页的保密属性传达的数值,且依据比较结果产生输出信号;以及    其中此内存管理单元(602)构建成依据输出信号存取所选择内存页。

【技术特征摘要】
US 2001-11-13 10/010,1611.一种内存管理单元(602),用于管理分散存储在多个内存页内的数据,此内存管理单元(602)包含有保密检测单元(416),连接成接收在当前指令执行期间所产生的线性地址(102),其中此线性地址(102)具有存在于所选择内存页内的相对应的物理地址,且其中此保密检测单元(416)构建成利用此线性地址(102)存取位于内存(406)内的至少一个的保密属性数据结构,以便获得所选择内存页的保密属性,比较由当前指令的保密属性传达的数值与由所选择内存页的保密属性传达的数值,且依据比较结果产生输出信号;以及其中此内存管理单元(602)构建成依据输出信号存取所选择内存页。2.如权利要求1所述的内存管理单元(602),其中进一步包括分页单元(702),连接以接收在当前指令执行期间所产生的线性地址(102),且使用至少一分页表产生位于所选择内存页内的相对应的物理地址,且依据来自对应所选择内存页的分页表条目的保密属性,提供输出信号,该内存管理单元进一步包括保密检测单元(416),连接成接收在当前指令执行期间所产生的线性地址(102),其中此线性地址(102)具有存在于所选择内存页内的相应对物理地址,且其中此保密检测单元(416)构建成利用此线性地址(102)存取位于内存(406)内的至少一个的保密属性数据结构,以便获得所选择内存页的保密属性,比较由当前指令的保密属性传达的数值与由所选择内存页的保密属性传达的数值,且依据比较结果产生输出信号。3.如权利要求1或2所述的内存管理单元(602),其中该所选择内存页的保密属性包含有保密范围辨识字段,且其中此SCID字段包含有多个位位置,且其中这些位位置形成SCID值的二进制表示,以及其中此SCID值为大于或等于0的整数值,并显示所选择内存页的保密范围级别数。4.如权利要求1或2所述的内存管理单元(602),其中所述至少一个的保密属性数据结构包括一个保密属性表目录(904)的至少一个保密属性表(906)。5.如权利要求4所述的内存管理单元(602),其中所述保密属性表目录(904)包含有多个条目,且在此每个保密属性表目录的条目包含有当前位和保密属性表基址字段,且其中此当前位显示是否在内存(406)中出现对应于此保密属性表目录条目的保密属性表(906),且其中该保密属性表基址字段系保留给对应于保密属性表目录条目的保密属性表(906)的基址。6.如权利要求4所述的内存管理单元(602),其中该至少一个保密属性表(906)包含有多个条目,且该保密属性表(906)的各条目包含有保密范围辨识(SCID)字段,且其中此SCID字段包含有多个位位置,且其中这些位位置形成SCID值的二进制表示,以及其中此SCID值为大于或等于0的整数值,并显示所选择内存页的保密范围级别数。7.如权利要求1所述的内存管理单元(602),其中该保密检测单元(416)构建成除了所选择内存页的保密属性之外亦接收一组所选择内存...

【专利技术属性】
技术研发人员:BC巴尼斯GS斯特劳金RW旋密特
申请(专利权)人:先进微装置公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1