具有高级操作系统支持的处理器技术方案

技术编号:17573095 阅读:36 留言:0更新日期:2018-03-28 20:37
计算机处理器可包括多个硬件线程。计算机处理器还可包括用于硬件线程的状态的状态处理器逻辑。状态处理器逻辑可包括每线程逻辑和公共逻辑,每线程逻辑可包含在多个硬件线程中的每个硬件线程中复制的状态,公共逻辑独立于多个硬件线程中的每个硬件线程。计算机处理器还可包括单线程模式逻辑以在单线程模式中执行来自所述多个硬件线程中的仅一个硬件线程的指令。计算机处理器还可包括第二模式逻辑以在第二模式中同时执行来自所述多个硬件线程中的多于一个硬件线程的指令。计算机处理器还可包括切换模式逻辑以在第一模式和第二模式之间切换。

【技术实现步骤摘要】
【国外来华专利技术】具有高级操作系统支持的处理器相关申请的交叉引用本申请要求2016年5月16日提交的美国技术专利申请No.15/155,570的利益,该申请No.15/155,570要求2015年6月9日提交的美国临时专利申请No.62/172,860的利益,这些申请的公开通过引用被全部并入本文。
本公开的实施方式涉及计算机处理器,且特别地涉及具有高级操作系统支持的计算机处理器。
技术介绍
操作系统具有几个职责。操作系统需要将进程彼此隔离。具体地,操作系统需要允许多个程序运行而不干扰彼此。特别是,进程应防止错误或恶意程序观察其它进程或引起对其它进程的破坏。操作系统需要协调对共享系统资源的访问。通常,这通过防止程序直接访问资源来完成;替代地,程序向操作系统作出请求,且操作系统可接受或拒绝请求。如果操作接受请求,则在大部分情况下,操作系统将代表该程序执行请求。为了完成这些任务,操作系统需要来自处理器的特征,其允许操作系统将处理器置于低特权执行模式中,在该模式中由处理器执行的指令不能访问某些资源。操作系统可具有一种机制,通过该机制处理器可以受控方式切换到较高特权执行模式,在该模式中处理器可访问资源。作为示例性例子,存储器位置在多个进程之间被共享。多个进程可写到存储器位置,但只能写适当的值。实现此的一种方式是使用虚到实转换机制来保护包含存储器位置的页面防止写入。当低特权程序试图写到存储器位置时,处理器采用写保护异常,其接着将控制转移到具有较高特权的适当的异常处理程序,其确定被写入的值是否是适当的,且如果是,则将值写到存储器位置。需要有允许异常处理程序代码写到存储器位置的机制,即使原始程序代码不能写到存储器位置。这一般在异常被采用时通过增加处理器的权限来实现。现在,假设希望写试图绕过操作系统控制并将不适当的值写到存储器位置的程序。存在几个潜在攻击途径。程序可试图改变页面保护以给予自己写权限。然而,控制页面权限的结构和处理器状态本身被保护,且只可在处理器特权增加之后被访问。程序可试图添加映射到同一存储器位置的新虚拟页面,但这次有写权限。然而,控制映射的结构和处理器状态被保护。程序可试图通过直接修改相关处理器状态来增加它的特权。然而,控制特权的处理器状态被保护,且被保护防止被程序直接修改。程序可试图通过执行引起特权升级的指令来增加它的特权,特权升级然后将控制转移到将写不适当的值的程序代码。然而,只有有限数量的特权升级路径是可用的,其中每个特权升级路径将控制转移到预定指令地址。控制升级路径的目的地的处理器状态被保护,且只能使用适当的权限被修改。程序可试图盖写操作代码(该操作代码为具有它自己的特权升级的目标)并接着引起特权升级,使处理器使用增加的特权来执行程序的代码。然而,包含操作系统代码的页面至少是写保护的,使得盖写代码是不可能的,除非程序已经在处理器有特权的模式中运行。因此,可使用下面的机制来正确地实现操作系统保护:具有用于运行处理器的较低特权模式,其中它只能够访问和/或修改被限制的一组存储器位置和处理器状态;以及使用同时使处理器的权限升级并将控制转移到受控制的一组执行位置的方法。存在两种情况,其中当程序正运行时,控制需要转移到操作系统。一种情况是非自愿的,其中外部中断(例如I/O设备中断)或内部异常(例如页表未命中)需要由操作系统处理。这些非自愿转移被称为异常或中断。另一情况是自愿的,当程序需要操作系统代表它执行某个功能(例如I/O)时。这些类型的自愿转移被称为系统调用。处理器需要提供机制以实现系统调用。相当经常地,这是将控制转移到特定的地址(或一组地址之一)并同时增加特权的特殊指令。为了防止程序使用这个机制来访问它不应该有的特权,系统调用的潜在目标由操作系统建立,且不能在没有增加的特权的情况下被修改。在系统调用的所有潜在目标处的代码由操作系统建立,且只执行有限数量的功能。此外,在执行功能之前,操作系统检查以查看程序是否被给予权利这么做。在系统调用的所有潜在目标处的代码被保护以防止由程序写入,使得它不能被修改以执行程序没有被给予权利的某个行动。异常和中断都用于描述使程序的正常流程被中断并且控制转移到专用中断(或异常)处理代码的异常事件。术语有时可互换地被使用;然而,通常,中断是在正运行的程序的外部的事件,以及异常是由程序的运行引起的事件。中断的一些例子是:输入/输出设备中断:中断处理程序代码将采取行动来对输入或输出事件作出响应,通常将输入行动的结果复制到适当的程序缓冲器,或从未决的程序请求调度更多的输出任务;定时器中断:根据定时器中断的性质,中断处理程序代码可采取几个行动,其可包括:看门狗中断:引起紧急清除,可能包括终止运行的进程;时间分片中断:使运行进程被上下文切换出,以及另一进程被上下文切换入;以及事件中断:使事件被添加到程序的定时器事件队列。异常的一些例子是:除以零:对于具有整数除指令的处理器;浮点指令异常:IEEE标准定义必须由浮点硬件检测的几个异常;非法指令异常;以及数据/指令调试:用户指定硬件要监控的某些地址或地址范围;当程序试图访问/执行这些地址之一时,程序采用异常。这帮助调试程序行为。上面的例子一般可在有或没有操作系统干预的情况下被处理。有明确地需要操作系统干预的其它例子,例如页表未命中:根据硬件是否有软件管理的转换后援缓冲器或硬件管理的转换后援缓冲器(TLB),这个异常需要操作系统完成不同的事情以更新页面的虚到实映射。然而,操作系统必须被调用。于是有一些是灰色区域的情况。根据期望的行为,操作系统可能需要被涉及,或它可完全在用户代码中被处理,包括:没有读/写/执行权限;以及执行特权指令。在大部分非嵌入式应用中,用户程序在虚到实页面转换被启用的情况下运行。这被称为虚拟模式。相反,如果转换被禁用且所有处理器地址被假设是实际物理地址,则处理器被认为在真实模式中运行。在异常时,一些处理器切换到真实模式。其它处理器继续在用户程序正运行于的模式中运行。发现有通常被称为用户和超级用户的两个特权级别就足够了。当在用户特权级别运行时,处理器只访问一些预先配置的存储器区和一些寄存器;特别地,处理器不访问将允许处理器增加它的访问的任何状态或资源。当在超级用户特权级别运行时,处理器可访问所有状态,包括存储器。在两特权级别模型中,当在用户模式中运行的程序采用异常时,程序将它的特权级别切换到超级用户,并开始从预定的地址执行代码。一些处理器具有多个特权级别,每个准予特权的不同级别。例如,x86架构定义4个保护环。然而,虽然这些额外的保护级别可能有一些益处,但两个特权级别已经被证明是足够的。在控制从用户代码转移到异常处理代码之后,现有处理器状态的一部分(例如一些通用寄存器)需要被保存,使得它们可由异常处理代码使用。在异常处理代码运行之后,在控制切换回到用户代码之前,恢复所保存的状态。在状态被保存之前,保存寄存器状态的代码必须不干扰它保存的任何状态。这可能相当难以实现。一个解决方案是使处理器保存一些状态作为异常进程的一部分。另一解决方案是有只在操作系统为异常处理代码保留的超级用户模式中可访问的额外寄存器。这可以是额外的寄存器,例如系统堆栈指针,其可由一系列存储指令用作基址以将状态保存到存储器。另一可能性是将用户状态的一部分复制本文档来自技高网...
具有高级操作系统支持的处理器

【技术保护点】
一种计算机处理器,包括:多个硬件线程;用于硬件线程的状态的状态处理器逻辑,其中所述状态处理器逻辑包括每线程逻辑和公共逻辑,所述每线程逻辑包含在所述多个硬件线程中的每个硬件线程中复制的状态,所述公共逻辑独立于所述多个硬件线程中的每个硬件线程;单线程模式逻辑,其在单线程模式中执行来自所述多个硬件线程中的仅一个硬件线程的指令;第二模式逻辑,其在第二模式中同时执行来自所述多个硬件线程中的多于一个硬件线程的指令;以及切换模式逻辑,其在所述第一模式和所述第二模式之间切换。

【技术特征摘要】
【国外来华专利技术】2015.06.09 US 62/172860;2016.05.16 US 15/1555701.一种计算机处理器,包括:多个硬件线程;用于硬件线程的状态的状态处理器逻辑,其中所述状态处理器逻辑包括每线程逻辑和公共逻辑,所述每线程逻辑包含在所述多个硬件线程中的每个硬件线程中复制的状态,所述公共逻辑独立于所述多个硬件线程中的每个硬件线程;单线程模式逻辑,其在单线程模式中执行来自所述多个硬件线程中的仅一个硬件线程的指令;第二模式逻辑,其在第二模式中同时执行来自所述多个硬件线程中的多于一个硬件线程的指令;以及切换模式逻辑,其在所述第一模式和所述第二模式之间切换。2.如权利要求1所述的计算机处理器,其中所述状态处理器逻辑允许所有硬件线程所共有的状态的一部分只在所述单线程模式逻辑在所述单线程模式中执行指令时才是可访问的。3.如权利要求1所述的计算机处理器,其中所述切换模式逻辑通过采用中断在所述单线程模式和所述第二模式之间切换。4.如权利要求3所述的计算机处理器,其中采用所述中断使所述切换模式逻辑:针对所述多个硬件线程中的所有硬件线程,将当前返回地址保存在处理器状态寄存器中;停止除所述多个硬件线程中的一个活动硬件线程以外的所有硬件线程;以及使所述活动硬件线程从中断处理程序地址开始执行。5.如权利要求1所述的计算机处理器,还包括处理逻辑,所述处理逻辑当在所述单线程模式中执行时使得所述多个硬件线程中的具有指令的所有硬件线程执行以在所保存的返回地址处以所保存的处理器状态重新开始执行。6.如权利要求5所述的计算机处理器,其中通过执行设计成引起所述第二模式的重新开始的指令来激活所述处理逻辑。7.如权利要求1所述的计算机处理器,还包括处理逻辑以在所述状态处理器逻辑正在单线程模式中运行时检查并修改不活动的硬件线程的状态。8.如权利要求1所述的计算机处理器,还包括特权逻辑以:将所述公共逻辑和硬件线程的复制的状态分成至少两组状态;确定所述线程的特权级别,其中至少一组状态在第一特权级别是不可访问的;以及在特权级别之间切换。9.如权利要求8所述的计算机处理器,还包括特权逻辑以:将硬件线程的复制的状态进一步分成至少两组状态;确定所述线程的特权级别,其中至少一组状态在第一特权级别是不可访问的;以及在特权级别之间切换。10.如权利要求8所述的计算机处理器,其中使用同时改变所述特权级别并将所述计算机处理器的执行点改变到预定位置的中断来实现从更多限制的特权级别到更少限制的特权级别的切换。11.如...

【专利技术属性】
技术研发人员:G·纳赛尔C·J·格罗斯尼尔A·J·赫内P·赫特利M·森蒂尔威兰其他发明人请求不公开姓名
申请(专利权)人:优创半导体科技有限公司
类型:发明
国别省市:美国,US

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

1