生成受限和非受限执行环境的机制的制作方法

文档序号:6656932阅读:232来源:国知局
专利名称:生成受限和非受限执行环境的机制的制作方法
技术领域
本发明涉及计算机系统;具体的,本发明涉及可以在可信赖或安全环境中操作的计算机系统。
背景技术
有不同的应用受益于“隔离执行”和“隔离存储”。隔离执行是代码不受其它软件干扰或监视而运行的能力。隔离执行对于安全软件来说十分重要,对于防止非恶意但设计不好的软件的保护也很重要。例如,编写差劲的设备驱动可能会干扰操作系统(OS)的合理操作,从而导致系统宕机使得时间敏感的应用(比如数码视频记录软件)无法运行。
隔离存储涉及数据存储在非易失存储中只供授权拥有者访问的能力。这样,其它软件就无法修改或删除该数据。删除概念很重要,因为OS或设备驱动的错误可以导致磁盘上的数据无法访问。


本发明以举例的方式描述,不限于附图,其中相似的参考标号代表相似的构件,其中图1是计算机系统实施例的框图;图2是连接到磁盘的磁盘控制器实施例的框图;和图3是计算机系统操作实施例的流程图。
具体实施例方式
下面要描述的是在计算机系统中受限和非受限执行环境的机制。在下面对本发明的具体描述中,阐述许多具体细节以提供对本发明的透彻理解。但是对于本领域的技术人员显而易见的是,本发明无需这些特定细节就可以实施。另外,公知结构和设备以框图示出而不详细展示,以避免模糊本发明。
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特性、结构或特征包括在本发明的至少一个实施例中。文中在多处提到的“在一个实施例中”不一定都指向同一实施例。
下面详细描述的一些部分会以算法和符号形式表示对计算机存储器中的数据位的操作。这些算法描述和表示是数据处理领域技术人员使用的方式,以最有效得将他们工作的内容传达给该领域的其它技术人员。
此处的算法通常被认为是得出期望结果的一致步骤序列。这些步骤为需要物理操作物理量的步骤。通常但不必须的是,这些数量以可以存储、传输、合并、比较和进行其它操作的电或磁信号的形式存在。称这些信号为比特、值、元素、符号、字符、项、数字或类似的称谓,已经被多次证明是方便的,而且主要是为了通用的目的。
但要记住,所有这些和类似的名词是与相应物理量相关且只是应用于这些数量的方便称谓。除非特别说明,如同从下文显而易见的那样,应该理解,在整个说明书中,讨论使用的如下说法,比如“处理”或“计算”或“推算”或“确定”或“显示”等等,指的是计算机系统或类似电子计算设备的动作和处理,将代表计算机系统寄存器和存储器内的物理(电子)量操作和传输至相似的代表计算机系统存储器或寄存器或其它信息存储、传输或显示设备内的物理量的其它数据。
本发明还涉及执行此操作的设备。该设备可以是专门为所期望目的建造,或者它可以包含通用计算机,被存储在该计算机内的计算机程序选择性启动或重配置。此计算机程序可以存储在计算机可读存储介质中,例如但不限于,任意类型的磁盘包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、或适合存储电子指令的任意类型介质,每个都连接到系统总线。
此处的算法和显示不与任何特定计算机或其它设备相关。不同的通用目的系统都可以使用与本文教义相符的程序,或可以创建更专用的设备来执行所需的方法步骤。这些各类系统所要的结构将在下面描述。此外,本发明不是特指任意特定的编程语言。要理解可以使用不同的编程语言来实现此处描述的本发明教义。
程序语言指令可以由一个或多个处理设备执行(例如,处理器、控制器、控制处理单元(CPU)、执行核心等)。
图1是计算机系统100的实施例的框图。计算机系统100包括中央处理单元(CPU)102和相连的总线105。根据一个实施例,CPU102包括多核心103。例如,CPU 102包括核心0和核心1。在一个实施例中,计算机系统100同时操作多个操作系统。在此实施例中,独立的OS在每个核心103上运行。这样,第一OS运行在核心0上,第二OS运行在核心1上。在进一步的实施例中,每个核心可以运行多个线程。但是,在下面的描述中,线程一词用于表示实现OS的处理器函数。
在一个实施例中,CPU 102是Pentium系列的处理器,包括位于加州Santa Clara的Intel公司的PentiumII处理器系列、PentiumIII处理器、和PentiumIV处理器。作为替换,也可以使用其它CPU。
芯片组107也与总线105相连。芯片组107包括存储器控制中继器(MCH)110。MCH 110可以包括与主系统存储器115相连的存储器控制器112。主系统存储器115存储由CPU 102或系统100包含的任意其它设备执行的数据和指令序列。在一个实施例中,主系统存储器115包括动态随机存取存储器(DRAM);但是,主系统存储器115也可以使用其它类型的存储器实现。
根据一个实施例,MCH 110包括线程ID检查器112。ID检查器116通过总线105接收从CPU传来的线程ID,该ID表示正在执行存储器或I/O访问的线程。在一个实施例中,线程ID检查器112分配特定存储器区域到特定线程中。
在进一步的实施例中,提供非受限线程可以访问所有的存储器页面,而提供一个或多个其它受限线程只允许访问特定页面。进而,CPU 102和芯片组110允许计算机系统100平台的受限组件进行修改,同时平台的非受限组件不被重新设置。在更进一步的实施例中,非受限线程可以监管性的访问受限线程。这种监管性访问允许非受限线程检查受限线程的访问级别。
MCH还包括计时器和中断资源114和重启和电源管理寄存器116。计时器和中断资源提供给非受限线程,允许非受限线程拥有计时器和中断服务,而无法被受限线程修改(有意或无意)。
重启和电源管理寄存器116也提供给非受限线程。重启和电源管理寄存器116引发由受限线程处理的事件。这样就允许受限线程拥有重启和电源管理策略。根据一个实施例,MCH 110使能通常引发系统管理中断(SMI)的重要事件只引发中断给非受限线程。这样就允许OS无关的线程运行在非受限线程上而不打扰运行在受限线程上的OS执行流程。
MCH 110还可以包括与图形加速器130相连的图形接口113。根据一个实施例,图形接口113使能非受限线程在显示器(未示出)上显示窗口,使得与受限线程相关的窗口无法显示在非受限线程相关的窗口之上。
MCH 110通过中继接口与输入/输出控制中继器(ICH)140相连。ICH 140为计算机系统110内的输入/输出(I/O)设备提供接口。ICH 140包括磁盘控制器142、音频控制器144和网络控制器146。磁盘控制器142与一个或多个磁盘驱动器(未示出)相连,控制芯片组107与这些驱动器之间的数据传输。
根据一个实施例,允许非受限线程通过磁盘控制器142完全访问硬盘260上的数据。但是,在该实施例中,受限线程不允许访问磁盘260上的特定部分。图2是与磁盘相连的磁盘控制器142的实施例框图。磁盘控制器142包括接口230和DMA引擎250。接口230包括接口0和接口1。
接口0和接口1向访问硬盘260上的数据的软件提供独立的接口。例如,一个配置空间可以被非受限线程访问,而其它空间可以被一个或多个非受限线程访问。DMA引擎250帮助硬盘260间的直接存储器访问。
参看图1,音频控制器144操作声音的记录和回放。根据一个实施例,音频控制器144允许输出音频流针对非受限和受限线程独立操作。这样就避免了受限线程“静默”非受限线程。在进一步的实施例中,音频控制器144包括允许输入流首先被传输至非受限线程的模式,非受限线程可以决定音频数据是否应传输到受限线程中。
网络控制器146将计算机系统100链接至计算机网络(图1未示出),支持机器间的通信。根据一个实施例,非受限线程被允许完全访问网络控制器146,而受限线程没有完全访问权。在一个实施例中,由受限线程“传输”的包首先被非受限线程检查或修改。此外,从网络接收的包在传给受限线程之前首先由非受限线程检查。
图3是在计算机系统100上请求访问存储器或I/O的实施例的流程图。在处理块310中,从CPU 102发出的设备访问请求在芯片组107上接收。例如,该请求可以在MCH 110上接收以访问存储器115。类似的,该请求可以在磁盘控制器142上接收以访问硬盘260。
在处理块320中,线程ID检查器116检查包含在请求中的线程ID以确定发出请求的线程。在决定块330,决定请求线程是受限线程还是非受限线程。如果是非受限线程,在处理块340中,该非受限线程被授与完全访问权限访问请求目标设备中的数据。
但如果是受限线程,在处理块350,进行检查决定该受限线程是否拥有对所请求的资源的访问权。在决定块360,决定该受限线程是否可以访问该请求数据。如果允许访问,在处理块370中,该线程被授权访问请求目标设备中的数据。但如果确定该线程不允许访问所请求的数据,在处理块380中,访问被拒绝。
在阅读完上述描述后,本领域的一般技术人员就能对本发明进行各种修改和替换,要理解通过示例的方式展示的特定实施例和描述不是用于限定本发明。因此,对不同实施例的细节描述不用于限定权利要求的范围,而权利要求本身只是对本发明主旨特性的描述。
权利要求
1.一种计算机系统,包括中央处理单元(CPU),其具有具有第一相关线程标识(ID)的第一线程;以及具有第二相关线程ID的第二线程;以及芯片组,被耦合以用于接收来自所述CPU的访问请求,并检查所述访问请求中包含的线程ID以确定哪个线程在请求访问。
2.根据权利要求1的计算机系统,其中所述第一线程是非受限线程,为其提供对数据的完全访问权限,而所述第二线程是受限线程,为其提供对数据的受限访问权限。
3.根据权利要求2的计算机系统,进一步包括与所述芯片组相连的存储器设备,其中为所述非受限线程提供对所述存储器设备中所有页面的访问权限,为所述受限线程提供对所述存储器设备中分配的区域的访问权限。
4.根据权利要求2的计算机系统,其中所述CPU和所述芯片组使计算机系统的受限组件可以被修改,而非受限组件保持不变。
5.根据权利要求4的计算机系统,其中所述非受限线程对所述受限线程进行监管性访问,使所述非受限线程可以检查所述受限线程的访问级别。
6.根据权利要求2的计算机系统,其中所述芯片组包含不能被所述受限线程修改的计时器和中断资源。
7.根据权利要求2的计算机系统,其中所述芯片组进一步包含若干个寄存器,使所述非受限线程可以引发由所述受限线程处理的事件。
8.根据权利要求2的计算机系统,其中所述芯片组包含图形接口,以使所述非受限线程在显示器上显示窗口,这样与所述受限线程相关的窗口不能显示在与所述非受限线程相关的窗口之上。
9.根据权利要求2的计算机系统,其中所述芯片组包含磁盘控制器,以为所述非受限线程提供对与所述磁盘控制器142相连的硬盘上的数据的完全访问权限,而为所述受限线程提供对所述硬盘特定部分的访问权限。
10.根据权利要求9的计算机系统,其中所述磁盘控制器包括与所述非受限线程相关的第一接口;与所述受限线程相关的第二接口;以及DMA引擎。
11.根据权利要求2的计算机系统,其中所述芯片组包含音频控制器,以允许输出音频流为所述非受限和所述受限线程独立操作,以防止所述受限线程静默所述非受限线程。
12.根据权利要求11的计算机系统,其中所述音频控制器包括允许输入流首先传输给所述非受限线程以确定音频数据是否应该传给所述受限线程的模式。
13.根据权利要求2的计算机系统,其中所述芯片组包含网络控制器,用于允许所述非受限线程进行完全访问,以及所述受限线程进行受限访问。
14.根据权利要求13的计算机系统,其中由所述受限线程传输的包首先被所述非受限线程检查或修改,从网络接收的包在传给所述受限线程之前首先由所述非受限线程检查。
15.一种方法,包含接收访问设备的数据资源的请求;检查与所述请求相关的线程标识(ID);以及如果线程ID表明是从非受限线程发出的请求则提供对数据资源的完全访问权限。
16.根据权利要求15的方法,进一步包含,如果线程ID表明发出请求的是受限线程则只提供对所述数据资源的预定组件的访问权限。
17.一种系统,包含硬盘驱动器;以及磁盘控制器,与所述硬盘相连,包括与非受限线程相关的第一接口,以允许所述非受限线程对所述硬盘驱动器上的数据进行完全访问;以及与受限线程相关的第二接口,以允许所述受限线程对所述硬盘上的特定部分进行访问。
18.根据权利要求9的系统,其中所述磁盘控制器进一步包含DMA引擎。
19.一种制造物品,包括一个或多个装载程序指令的计算机可读介质,其中所述程序指令被处理单元执行时,使得所述处理单元接收访问设备上的数据资源的请求;检查与所述请求相关的线程标识(ID);以及如果所述线程ID指示发出请求的是非受限线程,则提供对所述数据资源的完全访问权限。
20.根据权利要求19的制造物品,其中所述程序指令被处理单元执行时,如果所述线程ID指示发出请求的是受限线程,则进一步使得所述处理单元提供对所述数据资源预定组件的访问权限。
21.一种芯片组,包含线程标识(ID)检查器,用于检查从中央处理单元(CPU)接收到的访问请求中包含的线程ID,以确定所述访问请求来自具有第一相关线程标识(ID)的第一线程或来自具有第二相关线程ID的第二线程;以及
22.根据权利要求21的芯片组,其中所述第一线程是非受限线程,为其提供对数据的完全访问权限,所述第二线程是受限线程,为其提供对数据的有限访问权限。
23.根据权利要求4的芯片组,其中所述非受限线程对所述受限线程进行监管性访问,以允许所述非受限线程检查所述受限线程的访问级别。
24.根据权利要求22的芯片组,其中所述芯片组包含不能被所述受限线程修改的计时器和中断资源。
25.根据权利要求24的芯片组,进一步包含若干个寄存器,用于使所述非受限线程引其由所述受限线程处理的事件。
26.根据权利要求22的芯片组,其中所述芯片组包含图形接口,用于使所述非受限线程在显示器上显示窗口,这样与所述受限线程相关的窗口不能显示在与所述非受限线程相关的窗口之上。
27.根据权利要求22的芯片组,其中所述芯片组包含磁盘控制器,以为所述非受限线程提供对与磁盘控制器142相连的硬盘上的数据的完全访问权限,而为所述受限线程提供对所述硬盘上特定部分的访问权限。
28.根据权利要求22的芯片组,其中所述芯片组包含音频控制器,以允许输出音频流为所述非受限和所述受限线程独立操作,以防止所述受限线程静默所述非受限线程。
29.根据权利要求22的芯片组,其中所述芯片组包含网络控制器,用于允许所述非受限线程进行完全访问,以及所述受限线程进行受限访问。
全文摘要
根据一个实施例公开了一种计算机系统。该计算机系统包括中央处理单元(CPU),中央处理单元中包括具有第一相关线程标识(ID)的第一线程和具有第二相关线程ID的第二线程。该计算机系统还包括连接的芯片组,用于接收来自CPU的访问请求,并检查访问请求中的线程ID以确定哪个线程在请求访问。
文档编号G06F9/46GK101031922SQ200580032988
公开日2007年9月5日 申请日期2005年10月27日 优先权日2004年10月27日
发明者戴维·珀斯纳 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1