首页> 中国专利> 具有多个安全域的移动设备

具有多个安全域的移动设备

摘要

共享壳体中包括至少一个用户接口元件;第一已隔离计算实体;第二已隔离计算实体;以及切换装置。所述切换装置被配置为:在第一模式中,将所述第一已隔离计算实体连接到所述至少一个用户接口元件;以及在第二模式中,将所述第二已隔离计算实体连接到所述至少一个用户接口元件。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-07

    授权

    授权

  • 2014-08-27

    实质审查的生效 IPC(主分类):G06F3/00 申请日:20121102

    实质审查的生效

  • 2014-07-30

    公开

    公开

说明书

政府权利声明:

不适用。

相关申请的交叉引用

本申请要求2011年11月4日提交的第61/535,759号美国临时申请的 优先权,此临时申请的所有内容在此明确引入作为参考以用于所有目的。 本申请还要求2012年2月8日提交的第61/596,492号美国临时申请的优先 权,此临时申请的所有内容也在此明确引入作为参考以用于所有目的。本 申请进一步要求2012年3月15日提交的第61/611,352号美国临时申请的 优先权,此临时申请的所有内容进一步在此明确引入作为参考以用于所有 目的。本申请还是以下专利申请的部分延续:2012年2月29日提交的序 列号为13/408,170,代理人案号为YOR920120048US1,Richard H.Boivie 等人的标题为“A PROCESSOR AND DATA PROCESSING METHOD  WITH NON-HIERARCHICAL COMPUTER SECURITY  ENHANCEMENTS FOR CONTEXT STATES(具有用于上下文状态的非 分层计算机安全增强的处理器和数据处理方法)”的美国专利申请,此专 利申请的所有内容在此明确引入作为参考以用于所有目的。

技术领域

本发明涉及电、电子和计算机领域,更具体地说,涉及手持计算设备 等。

背景技术

人们通常从多个单独的安全域与IT系统交互。例如,为公司或实体 工作或者与公司或实体关联的某人通常针对工作而处理企业域,针对其它 事情而处理非企业域。必须通过安全性、隐私性和其它防御措施管理每个 域的完整性,即,保护每个域免受不需要的外力的影响。某些域(例如用 于企业的那些域)通过将访问仅限于可信人员和软件来确保完整性。当今, 用于确保多个域的完整性的最广为接受的方法是使用单独的物理设备访问 每个域。这例如可以是用于企业域的PC,用于非企业域的智能电话。在 这种情况下:

1.企业域中的PC和IT系统具有硬件和/或软件安全能力以便认 证、授权和管理用户;确保仅使用合格的软件;保护和管理 PC上的专有数据;以及提供安全、加密的通信以便在主机和 PC之间传输数据。

2.用于非企业域的智能电话是单独的处理系统,其支持诸如非企 业电子邮件、社交媒体、因特网服务、用户选择的应用和游戏、 图片、音乐以及视频内容之类的功能。个体负责维护其非企业 域的安全性。通常,用户管理的安全级别较低。

某些移动设备支持有限的跨域操作,这些移动设备例如包括 设备(位于加拿大安大略省滑铁卢市菲力浦大街295号 (邮政编码为N2L3W8)的Research In Motion Limited的注册商标)、 设备(位于加利福尼亚州库比蒂诺无限路1号(邮政编码为95014) 的APPLE INC.的注册商标)和电话(位于加利福尼州山景 城露天剧场大道1600号(邮政编码为的94043)的Google Inc.的注册商标)。 它们允许从在不同域中操作的设备来访问在一个域中运行的专门设计的应 用(例如,电子邮件)。这些应用旨在通常通过设备和主计算机上的专用 代码来确保域的完整性。

发明内容

本发明的原理提供用于具有多个安全域的移动设备的技术。在一个方 面,一种示例性装置包括:至少一个用户接口元件;第一已隔离计算实体; 第二已隔离计算实体;以及切换装置。所述切换装置被配置为:在第一模 式中,将所述第一已隔离计算实体连接到所述至少一个用户接口元件;以 及在第二模式中,将所述第二已隔离计算实体连接到所述至少一个用户接 口元件。还包括用于所述至少一个用户接口元件、所述第一已隔离计算实 体、所述第二已隔离计算实体和所述切换装置的共享壳体。

在另一个方面,一种示例性方法包括:提供刚才描述的装置,在所述 第一模式中操作所述装置;以及将所述装置从所述第一模式切换到所述第 二模式。

在另一方面,另一种示例性装置包括:用户接口元件;至少一个处理 器,其耦合到所述用户接口元件并以下列方式之一运行:(i)第一个性化, 具有与其关联的第一个性化数据和一个或多个第一个性化程序;以及(ii) 第二个性化,具有与其关联的第二个性化数据和一个或多个第二个性化程 序。还包括与所述至少一个处理器关联的切换装置,其导致所述装置在所 述第一个性化和所述第二个性化之间切换。当所述至少一个处理器以所述 第一个性化运行时,所述装置的用户不能观察或影响所述一个或多个第二 个性化程序的操作和所述第二个性化数据。当所述至少一个处理器以所述 第二个性化运行时,所述装置的用户不能观察或影响所述一个或多个第一 个性化程序的操作和所述第一个性化数据。

在进一步方面,提供一套部件以便组装成具有壳体、第一处理器以及 至少一个用户接口元件的移动设备。所述一套部件包括:第二处理器;输 入/输出控制器,其被配置为确定用户意图;以及切换装置,其被配置为响 应于所述输入/输出控制器而执行以下操作:在第一模式中,将所述第一处 理器连接到所述至少一个用户接口元件;以及在第二模式中,将所述第二 处理器连接到所述至少一个用户接口元件。

在更进一步方面,一种提供服务的方法包括为移动设备制造商提供刚 才描述的种类的一套部件,并且在组装成所述移动设备之后,为所述移动 设备的用户提供对与所述一套部件关联的个性化的支持。

如在此使用的,“促进”操作包括执行所述操作,使得所述操作更容 易,有助于执行所述操作,或者导致执行所述操作。因此,作为实例而非 限制,在一个处理器上执行的指令可以促进在远程处理器上执行的指令执 行的操作,方法是发送适当的数据或命令以便导致或帮助执行所述操作。 为避免疑义,在操作者通过执行操作之外的方法促进操作的情况下,所述 操作仍由某个实体或实体组合执行。

本发明的一个或多个实施例或其元素可以以计算机程序产品的形式实 现,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储 介质具有计算机可用程序代码以便执行指示的方法步骤。此外,本发明的 一个或多个实施例或其元素可以以系统(或装置)的形式实现,所述系统 (或装置)包括存储器和至少一个处理器,所述至少一个处理器耦合到所 述存储器并且可操作以便执行示例性方法步骤。更进一步,在另一个方面, 本发明的一个或多个实施例或其元素可以以用于执行在此描述的一个或多 个方法步骤的部件的形式实现;所述部件可以包括(i)硬件模块(多个), (ii)软件模块(多个),其存储在计算机可读存储介质(或多个此类介 质)中并且在硬件处理器上实现,或者(iii)(i)和(ii)的组合;(i)- (iii)中的任何一个都实现在此给出的特定技术。

本发明的技术可以提供显著有益的技术效果。例如,一个或多个实施 例可以提供以下一个或多个优点:

●能够例如针对处理器类型、存储器大小、外围设备等,在不同个性 化的底层架构之间具有绝对差异;

●更易于使用针对单个个性化设备开发的软件。

从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发 明的这些和其它特性和优点将变得显而易见。

附图说明

图1示出根据本发明的一个方面的基本双域设备;

图2示出根据本发明的一个方面的具有共享存储和存储器的双域设 备;

图3示出根据本发明的一个方面的用于4G设备的设备区域网络路由 器;

图4示出根据本发明的一个方面的针对双域设备使用旋转的模式切 换;

图5示出根据本发明的一个方面的用于切换模式的示例性方法步骤的 流程图;

图6示出根据本发明的一个方面的示例性系统;

图7示出根据本发明的一个方面的具有在三个计算系统之间的模式切 换的示例性系统;

图8示出可以用于实现本发明的一个或多个方面和/或元素的计算机 系统;

图9示出根据本发明的一个方面的单处理器设备的示例性硬件实施 例;

图10示出根据本发明的一个方面的单处理器设备的示例性软件实施 例;

图11是示出根据本发明的一个方面的可以用于提供两个或更多已隔 离计算实体的数据处理器的一个实施例的示意图;以及

图12是示出根据本发明的一个方面的结合图11的实施例的各个方面 的数据处理器的示意图。

具体实施方式

由于当今技术和安全威胁的存在,单个物理设备不可能在多个域中操 作而同时确保适当、彻底地隔离这些域。如果使用当前设备设计,则将跨 域共享硬件和软件资源。这种共享在底层硬件和OS平台中出现安全漏洞, 恶意软件可以利用这些安全漏洞获得对设备的访问,危及安全性并且窃取 或损坏数据。这种软件例如可以在智能电话或PC的控制、通用操作环境 中隐藏恶意软件键盘记录器。使用随后获得的特权操作状态,记录器可以 访问被认为隔离的域的共享、通用硬件和操作系统资源以便捕获密码项或 其它数据。它可能获得对包含活动状态的硬件寄存器或软件管理的缓冲器 的直接访问。

一个或多个实施例提供一种系统和方法,其允许单个物理设备同时完 全自由地在多个安全域的每一个中操作,而同时维护各个域的分离性和完 整性。这种设备有助于确保通过针对每个域使用单独设备(例如上面提及 的PC和智能电话)提供的相同级别的完整性保护。因此,例如,一个或 多个实施例允许为公司或实体工作或者与公司或实体关联的某人下载和运 行来自任何源的任何非企业应用,而不潜在危及设备可能与之交互的企业 操作的安全性。所述设备允许公司信息技术(IT)组织指定和管理用于企 业域的所有软件(从硬件上),并且允许为公司或实体工作或者与公司或 实体关联的某人完全自由地针对非企业域选择所有这些软件。如果设备还 包括用于用户认证的技术等(例如,指纹识别、说话者识别、键盘键入节 奏或其它生物特征识别),则甚至可能实现更强有力的保证。在某些实例 中,可以根据这些用户认证过程之一、部分或全部,开发置信度得分。可 以设置一个或多个阈值。这些值可以用于确定允许哪种类型的访问和/或用 于针对某些类型的访问要求其它检验(例如,回答诸如母亲的娘家姓名之 类的问题;提交到虹膜识别;等等)。例如,在个体与企业域和非企业域 交互的情况下,则一个或多个实施例是有用的;但是,一个或多个实施例 还适用于两个以上的域。此外,某些实施例提供完全非企业设备,其具有 用于常规活动的一个域,以及为敏感事物(例如,包括财务和/或医疗保健 信息)而保留的第二个域。在这种情况下,在某些实例中,可以作为服务 提供敏感域的管理和安全性。

一个或多个实施例适合于以下移动设备:其中大小、重量和方便性有 着明显的差别。实际上,解决多个域的安全问题的单个移动设备被视为提 供特定效用。但是,可以在较大设备(例如膝上型计算机和台式计算机) 中使用相同的技术。

在一个或多个实施例中,独立并且隔离的计算系统封装在单个移动设 备中并且分别用于每个安全域。一个或多个实施例有利地减少重复的设备 资源。在一个或多个实例中,单独的系统不需要具有一致或兼容的硬件和/ 或系统软件,并且实际上,在一个或多个实施例中,通过硬件在物理上防 止单独的系统访问或观察彼此。

现在针对具有一个企业系统和一个非企业系统的通用情况描述一个非 限制性示例性实施例。在图1中示出该实施例100,并且在本节中参考该 图。在该实例中采用共享设备封装106和共享系统板107。设计硬件以便 不能通过设备上交互直接在系统之间传递信息。为了确保这一点,设备设 计满足以下准则:

●每个系统的处理器仅用于该系统。图1中所示的实例实施例100 在两个域中操作,并且针对每个域具有单独的处理器。它们分 别是企业系统处理器102和非企业系统处理器104。

●每个系统的数据存储元件在物理上分离并且仅用于该系统。对 于企业系统,这包括如134、136所示的处理器存储器、存储装 置、I/O缓冲器,并且可选地包括用于可移动闪存的插槽;以 及对于非企业系统,包括如138、140所示的处理器存储器、存 储装置、IO缓冲器,并且可选地包括用于可移动闪存的插槽。

●所有系统共享基本的、与信息无关的支持元件。它们包括诸如 电源122、实时时钟124、电话子系统126、通信子系统144以 及无线模块146之类的元件。

●无状态IO硬件元件是共享的,但仅可由当前活动的系统访问。 无状态IO(输入/输出,也称为I/O)元件不维护它们与系统的 交互的记录,因此无法在系统之间传输信息。它们包括扬声器 (多个)和/或耳机连接器(多个)114、加速度计116、开关、 GPS系统120以及外部开关118。

●模式开关子系统确定哪个系统是活动系统。如下面讨论的,可 以使用各种方法进行这种确定。在所述非限制性示例性实施例 中,模式开关130使用IO控制元件138以仅允许活动系统访 问无状态IO硬件。该图将企业系统示为活动,其IO链路为实 线,并且将非企业系统示为不活动,以虚线链接到IO。

●某些有状态IO硬件元件也是共享的,但只是其状态信息可以 特定于活动系统的那些硬件元件。有状态IO元件需要访问有 关它们与每个系统的交互的历史信息或者交互的状态。例如, 屏幕108必须具有它被要求显示的图像的记录。对于某些此类 元件,该状态信息保存在存储器映射的缓冲器中,并且由有状 态IO硬件元件从该缓冲器中来访问该状态信息。模式开关保 证IO硬件看到的状态信息仅是通过它与活动系统的交互创建 的信息。它通过控制哪组配置寄存器112可用于IO硬件来执 行该操作。在所述示例性实施例中,具有两个这种寄存器组, 一个用于企业系统(“E配置寄存器”),一个用于非企业系 统(“P配置寄存器”)。在所述实例中,“E配置寄存器” 是活动的,并且摄像机110和触摸屏108(两个有状态IO元件) 的状态信息是与企业系统相关的信息。

●不共享其状态信息无法特定于活动系统的有状态IO硬件元件。 对于某些IO硬件实现,可能无法隔离属于单独系统的状态信 息。例如,用于通过通信(位于华盛顿州柯克兰华 盛顿湖大道5209号350号套房(邮政编码为98033)的 BLUETOOTH SIG,INC.的注册商标)连接的当前实践是使用 专用嵌入式处理器。在嵌入式处理器的存储器中维护与每个连 接关联的所有状态。因此,最简单的实现针对所示的每个处理 器使用单独的蓝牙子系统;即,企业蓝牙子系统132和非企业 蓝牙子系统142。

●通信子系统确保所有到达或来自给定系统的设备外通信仅由该 系统可见。向通信子系统144唯一地标识每个计算系统。这些 通信元件的功能并不由哪个系统活动来确定。

●不活动系统中的处理器将继续运行。但是,当它们尝试访问共 享IO元件时,它们可能必须等待。

因此,硬件防止设备上系统之间的直接通信。它们之间的任何信息传 输都经由通过设备外服务(例如电子邮件)的通信。然后隔离多个内部计 算系统,如同它们在单独的物理设备中那样。

可以单独或组合使用对所述设计的多种可能的修改。

共享存储装置和存储器:第一种修改可以通过允许多个计算系统共享 物理子系统,有助于降低设备成本。在图2中示出共享存储子系统的这种 修改的一个实例200。类似于图1的元件具有相同的参考标号并且不再描 述。如果硬件保证单独的访问区域,则可以安全共享系统组的物理存储器。 例如,在双系统实例的一个实施例中,使用存储地址的高阶位指示哪个系 统正在访问存储器。例如,对于来自企业系统处理器的访问,处理器外部 的硬件将高阶位强制为1,对于来自非企业系统处理器的访问,以类似方 式将高阶位强制为0。为避免疑义,这是一个非限制性实例,可接受任何 合适的机制,该机制允许硬件独立于软件对存储器进行物理分区。以这种 方式对地址空间进行分区之后,添加硬件以便允许处理器同时访问相同的 物理存储子系统。具体地说,在该实施例中,企业处理器102的存储访问 通道/控制(SAC)251控制对共享存储的企业存储部分234的访问,非企 业处理器104的存储访问通道/控制(SAC)261控制对共享存储的非企业 存储部分240的访问。此外,企业处理器102的存储器SAC253控制对共 享存储器和缓冲器的企业存储器和缓冲器部分236的访问,非企业处理器 104的存储器SAC259控制对共享存储器和缓冲器的非企业存储器和缓冲 器部分238的访问。通过类似方式,可以在多个处理器之间共享能够通过 外部硬件安全进行分区的任何子系统。所述子系统应该保证不能在分区之 间泄露状态信息。注意,针对每个系统维护单独的闪存插槽255、257;即, 闪存插槽255与处理器102关联,闪存插槽257与处理器104关联。

共享蓝牙:某些设备(包括蓝牙通信子系统)基本上隐藏其状态信息, 从而使它们难以共享。但是,可以通过少许更改而在多个系统之间共享单 个蓝牙子系统。蓝牙旨在取代计算机和多个外围设备之间的有线连接。每 个外围设备与单个计算机关联,并且仅响应于来自该计算机的请求而进行 发送。计算机将分组传输到外围设备,使用句柄标记每个分组以便标识外 围设备。蓝牙子系统通常使用嵌入式处理器执行来自计算机的命令。与每 个连接关联的状态在嵌入式处理器的存储器中维护并且由其固件管理。为 使蓝牙可共享,修改固件以便维护多组状态信息,并且响应于硬件输入, 仅使用与活动系统关联的一组状态信息。对于双系统实例,可以使用单个 输入引脚在系统之间切换来执行该操作。蓝牙固件还必须确保仅将外围设 备的响应传送到与之关联的系统。外围设备仅可以与单个计算机关联的事 实意味着每个蓝牙外围设备仅与一个系统关联。因此,如果用户需要通过 蓝牙连接的耳机收听其非企业系统中的音乐,则他无法还同时收听公司播 客。

利用4G通信:第三种修改涉及通信子系统。对于4G无线通信,语音 和数据信号共享单个IP数据流。在4G智能电话中,将该流传送到电话子 系统和计算系统(4G通信系统实际上比这更复杂,但提供这种简化的描 述以便明确示出本发明而没有混淆和不必要的详细信息)。应该参考图3 的示例性实施例300。在该实例中,将流从4G通信系统344传送到板载 “路由器”365(即,执行路由器功能但具有固定功能的设备)。正如局域 网(LAN)中的路由器,“路由器”将IP分组仅传送到定址的目的地系 统,从而创建设备区域网络(DAN)。多个计算系统102、104和电话子 系统126均具有单独的介质访问控制(MAC)地址。4G通信系统接收去 往多个MAC地址的分组,并且内部“路由器”被硬连线以将这些分组发 送到正确的地址。每个处理器上的IP堆栈处理该处理器的所有分组。使用 这种方法,不需要修改计算系统的系统软件。图3示出用于示例性双域设 备的这种方法,并且很容易将该方法推广到多域设备。类似于图1的元件 具有相同的参考标号并且不再描述。

第二种通信方法可以是更直接地利用4G。这方面为设备分配一个 MAC地址,并且为每个系统和/或功能(或功能组)提供单独的IP地址(或 端口)。板载路由器被硬连线以将分组路由到正确的IP地址。计算系统针 对其4G功能具有不同的IP地址。在这方面,在至少某些实例中,不允许 一端将其接口置于混杂模式。

非对称I/O设备:移动设备操作系统在它们为外围设备提供的支持方 面有所变化。例如,许多BlackBerry设备具有机械键盘,而iPhones和 Android设备通常没有。一个或多个实施例不需要为每个内部系统提供相 同的一组IO设备。因此,支持BlackBerry系统和Android系统的双域设 备可以具有机械键盘,该键盘仅由BlackBerry系统可见和使用。

图1-3的概括:通过查看,在图1中,元件106是共享设备封装,元 件107是共享系统板;元件108、110是具有状态的IO设备;元件114、 116、118、120是无状态IO设备;以及元件122、124是共享支持元件。 元件132、134、136是使用处理器102的第一单独计算系统的一部分。元 件138、140、142是使用处理器104的第二单独计算系统的一部分。元件 112是缓冲控制模块。元件126是蜂窝电话控制器。元件144是设备外通 信的控制器。

此外,在图2中,元件106是共享设备封装,元件107是共享系统板; 元件108、110是具有状态的IO设备;元件114、116、118、120是无状 态IO设备;以及元件122、124是共享支持元件。元件132、251、253、 255是使用处理器102的第一单独计算系统的一部分。元件257、259、261、 142是使用处理器104的第二单独计算系统的一部分。元件112是缓冲控 制模块。元件126是蜂窝电话控制器。元件144是设备外通信的控制器。 元件251、253、259、261是236、238、240、234的安全访问控制器。

更进一步,在图3中,元件106是共享设备封装,元件107是共享系 统板;元件108、110是具有状态的IO设备;元件114、116、118、120 是无状态IO设备;以及元件122、124是共享支持元件。元件112是缓冲 控制模块。元件126是蜂窝电话控制器。元件344是设备外通信的控制器。 元件365是设备区域网络路由器。元件132、134、136是使用处理器102 的第一单独计算系统的一部分。元件138、140、142是使用处理器104的 第二单独计算系统的一部分。

用户驱动的模式切换:如上所述,一个或多个实施例提供一种模式切 换机制,其安全地读出用户更改活动系统的期望,然后执行切换。在一个 实施例中,通过一个或多个物理开关或者通过触摸屏上的软开关启动模式 切换功能。对于通用的双域设备,一种解决方案是检测设备方向变化,并 且当用户将设备转动180度时切换域(以及屏幕方向),如图4中所示。 使用外部设备元件(触摸屏、麦克风、扬声器等)的对称设计,设备的简 单旋转和/或倒转导致设备切换模式,从而基本上立即更改屏幕显示。如图 4中所示,设备在402处于非业务方向,并且当上下转动时,进入业务方 向404。在这种方法中,可以采用类似于用于在当前设备上将屏幕方向从 横向更改为纵向或者从纵向更改为横向的传感器,以便触发切换;下面仅 讨论各种备选方案。

如图5的流程图500中所示,在一个示例性实施例中,下面提供控制 器为了读出用户意图和切换活动系统而采取的步骤。在502,执行活动系 统(企业或非企业,在非限制性实例中取决于具体情况)。

1.控制模块128从多个可能的源中读取或以其它方式获得用户意图:

a.加速度计116,其读出预定的设备方向变化

b.物理开关设备118(如滑动开关),其安装在设备箱中

c.软开关,其编程到设备的触摸屏108中并且在其上显示

d.其它指示器

2.一旦确定所需的活动系统(即,决策方框504产生“是”—否则, 如果为“否”,则仅继续执行活动系统),模式开关就暂停当前活动系统。 在图5的实例中,在步骤506,模式开关读取活动系统指示,然后在步骤 508,暂停先前活动系统。这包括保存和/或重置共享I/O组件(例如缓冲 器、摄像机中的寄存器、触摸屏控制器、音频和通信组件等)中的任何有 状态存储器或逻辑。步骤510显示将IO链接从先前活动系统传输到新活 动系统,步骤512显示将有状态元件的状态切换到新活动系统的状态。

3.初始化所选择的操作模式以便它可以开始操作,并且根据步骤514 继续在该域中操作,直到检测到用于停止或更改模式的中断。

地理驱动的模式切换:移动设备通常使用GPS子系统确定其地理位 置。因此,可以使用位置确定哪些计算系统能够和不能是活动的。例如, 仅当设备属于企业产权时,才可以允许企业系统是活动的以便防止从站点 外访问敏感信息。此外,当设备属于企业产权时,可以停用非企业系统以 便进一步隔离敏感信息。

用户驱动的模式切换:可以将对一个或多个计算系统的访问仅限于完 全认证的用户。例如,可以访问企业系统的许多当前设备在访问任何功能 (紧急电话除外)之前将需要密码。使用本发明,可以允许自由访问非企 业系统的任何用户,而需要认证以便访问企业专用系统。还可以具有单独 的系统,其仅有的功能是可能通过生物特征和/或活动指示器,确定谁正在 使用设备。该系统可以定期监视活动以便认证实际设备用户,并且相应地 限制系统访问。

示例性模式切换详细信息

本发明的一个优选实施例将两个或更多独立的计算系统组合成物理封 装,其用户将该封装视为单个设备。隔离各体计算系统以便任何一个系统 不可能在物理上观察或影响任何其它系统的操作。这种隔离能够使系统维 护其完整性。用户将设备视为具有多个模式的完整的整体。在任何给定时 间,模式指定哪一个系统活动,并且设备对于用户而言,如同该系统是设 备中的唯一系统。不活动系统可以在后台运行,例如进行通信,但仅当这 样做不会更改活动系统的操作。设备为用户提供某种方法以执行模式切换 以便改变哪个系统是活动的。

活动系统将完全控制设备的用户接口元件。这些元件是输入和输出组 件,用户通过它们操作活动计算系统。一个或多个实施例区分两种类型的 用户接口元件:其操作不依赖先前与活动系统的交互的历史(或状态)的 用户接口元件,以及其操作依赖该信息的用户接口元件。前者在此称为无 状态,后者称为有状态。无状态元件的范围从简单的机械开关到复杂的子 系统,例如跟踪设备方向的子系统。在两种情况下,活动系统的先前交互 不会更改该系统(或任何其它系统)与元件交互时所看到的事物。这确保 活动系统不能开启或关闭定向系统,这被视为当前移动设备所典型具有的。

有状态元件可以如同活动系统能够开启或关闭的灯那样简单;这种灯 必须处于当前活动的系统所设置的状态。显示屏幕是更复杂的有状态元件; 其状态包括当前活动的系统在屏幕上显示的图像。在一个优选实施例中, 每个计算系统将状态组(该计算系统使用的每个有状态元件一种状态)存 储在存储器中,或者代表每个计算系统将状态组存储在存储器中。此存储 机制在此称为接口状态存储。

当前活动的系统通过输入/输出(IO)传输与无状态用户接口元件交互。 系统可以使用多种方法实现此类传输,其中数据通过在此称为IO联动装 置(linkage)的机制在系统和元件之间流动。在一个方面,一种示例性设 备防止数据在不活动系统和无状态用户接口元件之间流动。如下所述,在 某些情况下,可以在不活动系统和无状态IO用户接口元件之间实现某些 形式的IO传输而不影响系统隔离。当发生模式切换时,停止到先前活动 的系统的IO链接,并且建立到最近活动的系统的IO链接。

有状态元件的模式切换通常更复杂。活动系统可以通过IO传输与某 些有状态元件交互。例如,它可以向灯发送“开启”命令。对于其它有状 态元件,它可以直接更新状态而不是使用IO传输。例如,它可以更新屏 幕的存储状态,从而更改显示的图像。对于IO传输,当传输链接用于无 状态元件时,管理这些传输链接。有状态元件(包括活动系统可以直接更 改其状态的那些元件)将具有与每个系统关联的存储状态。当切换模式时, 针对每个有状态IO元件,使用与最近活动的系统关联的存储状态代替与 先前活动的系统关联的状态。

在图6中示出这种模式切换活动的一个简单实施例。该图示出从方框 615、623到屏幕601的IO传输虚线,因为在某些情况下,屏幕可以完全 通过更改其状态来控制而不需要IO传输。此外,状态存储装置613、621 被示为在系统框609、611中,因为它在逻辑上是系统的一部分,但在某些 情况下,它可以在物理上与系统分离。

因此,图6示出一个示例性计算机设备,其包括包含一个或多个用户 接口元件的一组元件,每个用户接口元件是有状态接口元件(屏幕601、 灯603)或无状态接口元件(开关605、方向607)。还包括第一计算系统 609,其包括第一组IO联动装置615、用于有状态用户接口元件的状态组 的第一存储装置613、一个或多个第一存储器617以及一个或多个第一中 央处理单元(CPU)619。其他元件包括第二计算系统611,其包括第二组 联动装置623、用于有状态用户接口元件的状态组的第二存储装置621、一 个或多个第二存储器625以及一个或多个第二中央处理单元627。第一存 储器与第二存储器隔离,第一状态存储装置与第二状态存储装置隔离,第 一CPU(多个)与第二CPU(多个)隔离。其他元件包括模式开关130, 其确定哪组联动装置连接到用户接口元件,以及哪个存储的接口状态组可 用于有状态用户接口元件。在第一模式中,第一计算系统609通过联动装 置615连接到至少一个用户接口元件。在第二模式中,第二计算系统通过 联动装置623连接到至少一个用户接口元件。

通信—可以以各种方式执行将设备连接到各种通信系统。这些方式包 括蜂窝通信、蓝牙链接和其它联网技术,如在此描述的。在此还描述设备 上通信,包括设备区域网络的概念。

共享—在某些情况下,仅允许活动系统访问用户接口元件。但是,某 些元件(包括电源、实时时钟、系统板、箱体等)不受计算的影响并且可 被自由共享。此外,某些输入设备(例如,开关和按钮)可以由任何系统 在任何时间“自由”共享和访问。如果在环境中使用设备,其中担心来自 一侧的软件对另一侧的活动进行非授权观察,则不共享这些设备(否则它 们能够被自由共享)。

多个系统—为简单起见,到目前为止仅示出和讨论两个计算系统。但 是,某些实施例包括具有两个以上的系统的设备。

设备实例—无状态输入设备的非限制性实例包括开关、按钮、GPS系 统等;无状态输出设备的非限制性实例包括扬声器、耳机连接器、闪光灯、 加速度计等;有状态输入设备的非限制性实例包括蓝牙模块、摄像机、触 摸屏等;以及有状态输出设备的非限制性实例包括显示器、蓝牙模块等。

共享主存储器和存储设备—如上所述,可以通过使用硬件强制,在单 个主存储器件和/或单个存储设备中提供所需的隔离。

模式切换机制—可以使用多种机制启动模式切换。它们包括地理位置、 方向、加速度计信号、触摸屏上的手势、机械开关、软件命令等。此外, 模式和模式切换还在以下设备中很重要:该设备不使用计算系统的物理隔 离,而是以另一种方式支持多种个性化。某些实施例应对基于软件的多个 性化设备。

位置相关控制—在某些情况下,允许或不允许给定计算系统在某些位 置中变得活动可以很重要。例如,可以希望仅当设备属于企业产权时,才 允许企业系统活动。还可以希望当设备属于企业产权时,不允许活动的非 企业系统。

非对称系统—在某些情况下,单独计算系统可以完全不同—不同的处 理器、操作系统、用户接口设备等。例如,一个计算系统可以使用物理键 盘,而另一个无法识别键盘概念。

用户认证—如上所述,在某些情况下,设备可以包括以下能力:认证 用户(例如,当他或她使用该单元时),以及根据该认证,将访问限于一 个或多个计算系统。

非企业设备—如上所述,某些实施例包括完全非企业设备,其中一个 域用于常规活动,一个用于需要额外保护的敏感事物。如果为敏感域提供 良好定义的安全级别,则可以使用可信服务管理敏感域。

有利地,一个或多个实施例提供单独域保持独立的高级保证,因为一 个或多个实施例采用单独、物理上隔离的处理器。此外,一个或多个实施 例允许单独域完全不同,因为一个或多个实施例采用单独、物理上隔离的 处理器(基于软件的系统管理程序方法通常具有实际限制,这些限制要求 单独虚拟机具有相同的处理器架构)。

但是,注意,尽管一个或多个实施例涉及使用多个处理器支持多种个 性化的设备,但这些设备还可被设计为具有单个处理器。图9示出利用对 处理器内部结构的更改来这样做的示例性硬件方法,图10示出使用系统管 理程序层的软件设计。

现在参考图9,注意,其中示出具有两种个性化的基于硬件的单处理 器设备。图9示出单处理器设备,其使用对存储子系统和处理器内部结构 的修改来支持两种隔离、独立的个性化。计算系统外部的设备结构类似于 图6中的设备结构。

如前所述,存在有状态(例如,屏幕901和灯903)和无状态(例如, 开关905和方向907)IO元件,以及确定两种个性化中的哪一种活动的模 式开关130。模式开关的功能与图6的设备中相同。它通过控制图中所示 的开关,确定两个状态存储元件994、992中的哪一个指定有状态IO元件 901、903的状态。此外,模式开关130提供指示哪种个性化活动的二进制 信号,计算系统使用该信号执行两种功能。

注意,单个计算系统909具有到接口元件901、903、905和907的IO 联动装置915。

在图9的实施例中,计算系统存储地址空间994的下半部仅由第一个 性化访问,并且为第二个性化保留上半部992。每半部的一部分专用于存 储与关联的个性化对应的有状态IO设备接口状态。地址总线的最高有效 位由模式开关130控制,并且当第一个性化活动时设置为0,当第二个性 化活动时设置为1(当然,还可以采用相反的惯例)。因此,处理器919 可以根据哪种个性化活动,仅访问存储器的相应半部。这是计算系统针对 其使用来自模式开关130的二进制信号的两种功能中的第一种。

第二种功能是当存在活动个性化转变时,交换处理器寄存器内容。在 转变时,停止处理器919,改变寄存器998、996的内容,并且重新启动处 理器。当从第一个性化转变到第二个性化时,将当前寄存器内容存储在第 一寄存器存储装置998中,并且从第二寄存器存储装置996中加载新值; 当转变回第一个性化时,反向执行该过程。通过这种方式,处理系统每次 仅以一种个性化操作,并且两种个性化被完全隔离。

图10示出具有两种个性化的基于软件的单处理器设备。基于软件的单 处理器实施例使用一种软件技术,称为系统管理程序1088(或虚拟机管理 器)。系统管理程序本身众所周知;给予了此处提供的教导后,技术人员 将能够采用系统管理程序实现一个或多个实施例。系统管理程序是多种硬 件虚拟化技术中的一种,这些技术允许多个操作系统1086、1084独立并且 同时在单个处理器1019上运行。系统管理程序管理的操作系统均看到单独 的虚拟操作平台。图10中的实施例示出类型1系统管理程序1088,其在 计算系统1009的处理器1019上运行,控制硬件并且管理两个操作系统 1086、1084。

系统管理程序1088确保每个操作系统仅访问地址空间的限定区域;在 图10的实例中,为上存储器1092和下存储器1094。不同于允许操作系统 同时运行的传统系统管理程序,在图10的示例性实施例中,系统管理程序 1088在任何时候仅允许一个操作系统活动。它使用来自模式开关130的信 号确定哪个操作系统将运行。因此,仅活动操作系统(其表示活动个性化) 能够与无状态和有状态IO设备交互,因而与用户交互。元件1001、1003、 1005、1007和1015类似于图9中的元件901、903、905、907和915。

在某些实施例中,不活动个性化可以在后台运行而无需此类用户交互。

图6的多处理器设计和图9中的基于硬件的单处理器设备都在个性化 之间提供硬件强制的分离。这种分离提供最强有力的隔离保证,并且在某 些情况下可以对于具有安全意识的用户更具吸引力。尽管如此,图10中的 基于软件的方法也提供良好的分离保证。

图6的多处理器设计和图10的基于软件的单处理器设备都可以与当前 处理器设计一起使用。给予了此处的教导后,技术人员可以实现图9的基 于硬件的方法所需的更改。

图6的多处理器方法有利地提供针对不同个性化使用不同处理器架构 的可能性。此外,在具有多个处理器的情况下,不活动个性化可以在后台 运行,并且例如参与通信。但是,单处理器实施例可以有利地降低成本并 且延长电池寿命。

给予了到目前为止的讨论后,并且参考图6,应该理解,一般地说, 根据本发明的一个方面的示例性装置包括至少一个用户接口元件(例如, 有状态用户接口元件,例如601和/或603);第一已隔离计算实体(例如, 第一计算系统609,其包括第一存储器617、耦合到第一存储器的第一处理 器619,并且可选地包括第一接口状态存储单元613,其与第一处理器关联 并且被配置为存储至少一个有状态用户接口元件的第一状态)。还包括第 二已隔离计算实体(例如,第二计算系统611,其包括与第一存储器隔离 的第二存储器625、耦合到第二存储器并且与第一处理器隔离的第二处理 器627,并且可选地包括第二接口状态存储单元621,其与第二处理器关联 并与第一接口状态存储单元隔离,并且被配置为存储至少一个有状态用户 接口元件的第二状态)。更进一步,所述装置包括切换装置,其被配置为:

●在第一模式中,将第一已隔离计算实体连接到至少一个用户接 口元件(并且可选地,当至少一个用户接口元件为有状态时, 使第一状态可用于至少一个有状态用户接口元件);以及

●在第二模式中,将第二已隔离计算实体连接到至少一个用户接 口元件(并且可选地,当至少一个用户接口元件为有状态时, 使第二状态可用于至少一个有状态用户接口元件)。

最后,所述装置包括用于至少一个用户接口元件、第一已隔离计算实 体、第二已隔离计算实体以及切换装置的共享壳体,例如图1中的106。

在某些情况下,第一已隔离计算实体包括第一计算系统609,其包括 第一存储器617,以及耦合到第一存储器的第一处理器619;并且第二已隔 离计算实体包括第二计算系统611,其包括与第一存储器隔离的第二存储 器625,以及耦合到第二存储器并与第一处理器隔离的第二处理器627。处 理器619、627可以在单独的集成电路芯片上,或者例如可以是同一芯片上 的单独核心。

在一个非限制性实例中,切换装置包括模式开关130、与第一计算系 统关联的第一组输入-输出联动装置615,以及与第二计算系统关联的第二 组输入-输出联动装置623。

某些实施例包括至少一个无状态用户接口元件,例如开关605和/或方 向传感器607;在这些情况下,切换装置可以被进一步配置为:

●在第一模式中,将第一计算系统连接到至少一个无状态用户接 口元件;以及

●在第二模式中,将第二计算系统连接到至少一个无状态用户接 口元件。

某些实施例还包括由第一和第二计算系统共享的蜂窝电话子系统 126。

某些实施例还包括耦合到第一计算系统的第一短距离无线个人区域网 络模块(例如,蓝牙模块132),以及耦合到第二计算系统的第二短距离 无线个人区域网络模块(例如,蓝牙模块142)。

现在参考图3,在某些情况下,第一计算系统具有第一介质访问控制 地址,第二计算系统具有第二介质访问控制地址,并且所述装置还包括设 备区域网络路由器365,其被硬连线以接收分组并且将分组中的给定分组 路由到第一介质访问控制地址和第二介质访问控制地址中的一个。

仍参考图3,在某些情况下,所述装置具有介质访问控制地址,为第 一计算系统分配第一网际协议地址,为第二计算系统分配第二网际协议地 址,并且所述装置还包括设备区域网络路由器365,其被硬连线以接收分 组并且将分组中的给定分组路由到第一网际协议地址和第二网际协议地址 中的一个。

在某些情况下,第一和第二计算系统共享电源122和实时时钟124中 的至少一个。

现在参考图7,其中类似元件获得与其它图中相同的参考字符并且不 再描述,某些实施例还包括至少第三计算系统799,所述第三计算系统799 包括与第一和第二存储器隔离的第三存储器、与第一和第二处理器隔离的 第三处理器,以及与第一和第二接口状态存储单元隔离的第三接口状态存 储单元。所述第三接口状态存储单元被配置为存储至少一个有状态用户接 口元件的第三状态。所述第三存储器、第三处理器和第三接口状态存储单 元在图7中被省略以避免混乱,并且可以以与其它图中相同的方式表示。 在图7的实施例中,(模式)切换装置730被进一步配置为在第三模式中, 将第三计算系统799连接到至少一个有状态用户接口元件和至少一个无状 态用户接口元件(它们总体表示为797),并且使第三状态可用于至少一 个有状态用户接口元件。

有状态用户接口元件的非限制性实例包括显示器、摄像机110、触摸 屏108以及短距离无线个人区域网络模块132、142。

无状态用户接口元件的非限制性实例包括扬声器114、耳机连接器 114、摄像机110的闪光灯、加速度计116、开关118、按钮以及全球定位 系统接收器120。

如上所述,在某些情况下(例如图1),第二存储器通过成为与第一 存储器分离的单元而与第一存储器隔离。另一方面,在其它情况下(例如 图2),第一和第二存储器在单个设备中实现,但第二存储器通过硬件强 制与第一存储器隔离。

在某些情况下,第一计算系统是包括处理器102的企业计算系统,第 二计算系统是包括处理器104的非企业计算系统。

但是,上一个图的实例并非限制性的;在其它情况下,第一计算系统 是第一非企业计算系统,第二计算系统是安全级别高于第一非企业计算系 统的第二非企业计算系统(例如,用于银行或医疗保健)。

再次转到图7,某些实施例包括用户认证单元795(例如,指纹识别、 说话者识别、其它生物特征识别、用于接受用户标识号(例如,PIN)的 例程、加密模块等),所述用户认证单元795提供认证结果并基于认证结 果(例如,连同模式开关730),限制对第一和第二计算单元中的至少一 个的访问。所述用户认证单元还可以用于驱动模式开关。所述设备可以被 配置为除非提供(例如,通过指纹扫描仪199)适当的生物特征标识,否 则不切换模式。

某些实施例包括位置传感器,例如GPS系统120;在这些情况下,根 据来自位置传感器的信号,可以可选地控制第一和第二计算系统中的至少 一个的使用。

如上所述,第一和第二计算系统可以是异构的。例如,第一和第二计 算系统可以具有不同的操作系统和/或不同的设备兼容性;和/或第一和第 二处理器可以具有不同的类型。

如在其它部分所述,切换装置可以响应于许多不同的因素或者因素组 合;例如,以下项中的一个或多个:地址位置;装置方向;加速度计信号; 触摸屏手势;机械开关输入;生物特征输入;以及软件命令。

在另一个方面,一种示例性方法包括提供所述类型的装置,在第一模 式中操作所述装置,并且将所述装置从第一模式切换到第二模式。在某些 此类情况下,第一计算系统具有第一介质访问控制地址,第二计算系统具 有第二介质访问控制地址,并且进一步的步骤包括在设备区域网络路由器 处接收分组;以及将分组中的给定分组路由到第一介质访问控制地址和第 二介质访问控制地址中的一个。另一方面,在其它此类情况下,所述装置 具有介质访问控制地址,为第一计算系统分配第一网际协议地址,为第二 计算系统分配第二网际协议地址,并且进一步的步骤包括在设备区域网络 路由器处接收分组;以及将分组中的给定分组路由到第一网际协议地址和 第二网际协议地址中的一个。在某些情况下,所述切换步骤进一步包括使 第二状态可用于至少一个有状态用户接口元件。

如上所述,模式切换并不限于具有物理上隔离的计算系统的情况。因 此,在另一个方面,一种示例性装置包括:存储器;耦合到所述存储器的 处理器;以非瞬时方式存储指令的计算机可读存储介质,当所述指令加载 到所述存储器并由所述处理器执行时,导致所述装置以第一个性化和第二 个性化之一操作;以及切换装置。所述切换装置与所述处理器关联,并且 导致所述装置在第一个性化和第二个性化之间切换。所述切换装置例如可 以响应于以下项中的至少一个:地址位置;所述装置的方向;加速度计信 号;触摸屏手势;机械开关输入;以及软件命令。

在另一个方面,另一示例性方法包括以下步骤:提供以非瞬时方式存 储指令的计算机可读存储介质,当指令加载到存储器并由耦合到所述存储 器的处理器执行时,导致所述处理器和所述存储器以第一个性化和第二个 性化之一操作;提供切换装置,其导致所述处理器和所述存储器在所述第 一个性化和所述第二个性化之间切换;以及使用所述切换装置在所述第一 个性化和所述第二个性化之间切换所述处理器和所述存储器。所述切换装 置例如可以响应于以下项中的至少一个:地址位置;所述装置的方向;加 速度计信号;触摸屏手势;机械开关输入;生物特征输入;以及软件命令。

在另一方面,一种示例性装置包括处理器和耦合到所述处理器的存储 器。在某些情况下,所述存储器以非瞬时方式存储指令,当所述指令由所 述处理器执行时,导致所述装置以第一个性化和第二个性化之一操作。在 某些情况下,通过硬件实现该功能。在一个或多个实施例中,在个性化之 间存在隔离。一个或多个实施例包括一个或多个IO设备,其可以是有状 态、无状态或两者的混合。在某些情况下,单个处理器使用硬件技术切换 个性化(模式或上下文)。参考2012年2月29日提交的序号为13/408,170, 代理人案号为YOR920120048US1,Richard H.Boivie等人的标题为“A PROCESSOR AND DATA PROCESSING METHOD WITH  NON-HIERARCHICAL COMPUTER SECURITY ENHANCEMENTS  FOR CONTEXT STATES(具有用于上下文状态的非分层计算机安全增强 的处理器和数据处理方法)”的美国专利申请。在此重现此专利申请的相 关部分;然而,出于谨慎考虑,Boivie等人的完整公开的所有内容在此明 确引入作为参考以用于所有目的。注意,如在此使用的,“上下文”通常 与“模式”和“个性化”同义。在某些情况下,通过软件(例如,系统管 理程序)激活模式切换。在某些情况下,通过外部切换机制(硬件)激活 模式切换。注意,一般而言,可以存在一个或多个处理器以及一个或多个 存储器,但例如图9和10中所示的那些实施例不依赖于单独的处理器以便 在个性化之间隔离,如图6中那样。

因此,一个或多个实施例包括切换装置,例如另一个软件程序、单独 的硬件开关、加速度计、日时、系统管理程序、多处理器布置等。一个或 多个实施例在个性化之间实现隔离。

所述切换装置与所述处理器关联并导致所述装置在第一个性化和第二 个性化之间切换。如在其它部分提及的,这种切换例如可以响应于以下项 中的一个或多个:地理位置;所述装置的方向;加速度计信号;触摸屏手 势;机械开关输入;以及软件命令。

例如,如图9中所示,某些实现包括一种用于告知处理器仅在存储器 的上半部或下半部中运行程序的方式。在某些情况下,硬件中的机构可以 进行切换;例如,触发中断,并且存储一切内容并运行其它程序。每次仅 运行一种个性化。

在图10中,多种个性化是单独的虚拟机;每个虚拟机支持其上的个性 化。当从一个IO设备切换到另一个IO设备时,存储器也随之切换。

在更进一步方面,一种示例性方法包括提供包括切换装置的所述装置; 以及使用所述切换装置在第一个性化和第二个性化之间切换所述处理器和 存储器。所述切换例如可以响应于在此列出的一个或多个因素。

图11示出一种示例性数据处理器1100(即,微处理器、计算机处理 单元(CPU等)),其来自上述序号为13/408,170的美国专利申请,此专 利申请提供用于上下文状态的非分层计算机安全增强。数据处理器1100 可以包括至少一个或多个寄存器1101a-n、上下文控制单元1110和存储器 1130。这些寄存器1101a-n的每一个可以适合于存储上下文(即,执行线 程)的上下文信息(即,上下文状态)。通常,可以临时使用具有固定长 度(例如,8位)的上下文标识符标签(参见标签1102a-n)标记这些寄存 器1101a-n中的每一个。每个上下文标识符标签1102a-n可以在上下文控 制表1115(例如,在上下文控制单元1110中)中与特定上下文(即,特 定执行线程)关联,该特定上下文当前在操作中并且使用该寄存器。标记 的寄存器例如可以包括程序寄存器(例如通用寄存器和浮点寄存器)和/ 或分支寄存器(例如链接寄存器、计数寄存器和条件寄存器)。但是,应 该注意,某些寄存器应该保持未标记。未标记的寄存器例如可以包括用于 计时器/时钟、调试控制、存储控制以及进程控制的寄存器。上下文控制单 元1110可以在操作上连接到寄存器,并且可以使用与对应上下文(即,对 应执行线程)关联的上下文标识符标签1102a-n来控制上下文(即,执行 线程)对寄存器(多个)1101a-n的访问,从而控制对包含在其中的上下 文信息(即,执行线程的上下文状态)的访问。

例如,在数据处理器1100的一个实施例中,上下文控制单元1110可 以从第一上下文(即,从第一执行线程)接收对特定寄存器(例如,寄存 器1101a)的访问请求。作为响应,上下文控制单元1110然后可以判定是 否使用与第一上下文关联的第一上下文标识符标签来标记特定寄存器 1101a。即,上下文控制单元可以判定特定寄存器上的上下文标识符标签 1102a是否是上下文控制表1115中与第一上下文关联的第一上下文标识符 标签,从而指示特定寄存器1101a的内容(即,保存在特定寄存器1101a 中的状态)是否由第一上下文拥有。当使用第一上下文标识符标签标记特 定寄存器1101a时(即,当上下文标识符标签1102a是第一上下文标识符 标签时),上下文控制单元1110可以为第一上下文提供对特定寄存器1101a 的读取和写入访问。如在此使用的,上下文对寄存器的读取和写入访问意 味着允许上下文查看、修改和/或重写保存在寄存器中的状态。

但是,当使用与第二上下文关联的第二上下文标识符标签标记特定寄 存器1101a时(即,当上下文标识符标签1102a与第一上下文标识符标签 不匹配,但相反是第二上下文标识符标签,从而指示第二上下文拥有特定 寄存器1101a的内容时),上下文控制单元1110可以使用第二上下文标识 符标签,在存储器1130的上下文保存区域1135中保存来自特定寄存器 1101a的所有第二上下文信息(即,第二上下文的所有第二状态)。应该 注意,上下文保存区域1135中用于第二上下文的第二上下文信息的特定保 存位置(即,存储地址)可以在上下文控制表1115中指定(通过第二上下 文标识符索引),并且该特定保存位置仅可以通过被提供存储管理控制权 的更具特权、可信的上下文来寻址。上下文控制单元1110然后可以使用第 一上下文标识符标签将第一上下文信息(即,先前保存的第一上下文的第 一状态)从上下文保存区域1135中的另一个位置(如上下文控制表1115 中所指定的)恢复到特定寄存器1101a,并且可以使用第一上下文标识符 标签重新标记特定寄存器1101a(即,可以将上下文标识符标签1102a从 与第二上下文关联的第二上下文标识符标签切换到与第一上下文关联的第 一上下文标识符标签)。然后上下文控制单元1110才可以为第一上下文提 供对特定寄存器1101a的读取和写入访问。

当使用与第二上下文关联的第二上下文标识符标签标记特定寄存器 1101a时(即,当上下文标识符标签1102a与第一上下文标识符标签不匹 配,但相反是第二上下文标识符标签时),上下文控制单元1110可以使用 第二上下文标识符标签,在存储器1130的上下文保存区域1135中保存来 自特定寄存器1101a的所有第二上下文信息(即,第二上下文的第二状态)。 在为第一上下文提供对特定寄存器1101a的访问之前保存所有第二上下文 信息可以非常耗时。因此,备选地,可以“按需”(即,仅当第一上下文 参考那些第二状态时)保存第二上下文信息(即,第二上下文的第二状态), 或者初始可以保存第二上下文信息的一部分(例如,选定第二状态),并 且可以“按需”保存其余部分。

在另一个方面,数据处理器1100可以包括特定寄存器的多个副本(参 见特定寄存器1101b的副本(1)和(2)),并且可以从第一上下文接收 对该特定寄存器1101b的访问请求。在这种情况下,上下文控制单元1110 可以首先判定是否使用与第一上下文关联的第一上下文标识符标签标记特 定寄存器1101b的副本(1)或(2)中的任何一个。即,上下文控制单元 1110可以判定分别在特定寄存器1101b的副本(1)或(2)的任何一个上 的上下文标识符标签1102b(1)或1102b(2)是否是上下文控制表1115 中与第一上下文关联的第一上下文标识符标签。当使用第一上下文标识符 标签标记特定寄存器的至少一个副本时,上下文控制单元1110可以选择使 用第一上下文标识符标签标记的第一副本(例如,特定寄存器1101b的副 本(1)),并且可以为第一上下文提供对该第一副本1101b(1)的读取 和写入访问。

但是,当未使用第一上下文标识符标签标记特定寄存器1101b的副本 (1)或(2)时,上下文控制单元1110可以选择特定寄存器的一个副本(例 如,特定寄存器1101(b)的第二副本(2),其使用与第二上下文关联的 第二上下文标识符标签来标记)。然后,上下文控制单元1110可以使用第 二上下文标识符标签,在存储器1130的上下文保存区域1135中保存来自 第二副本的所有第二上下文信息(即,第二上下文的所有第二状态)。如 在先前描述的实施例中,上下文保存区域1135中用于第二上下文的第二上 下文信息的特定保存位置(即,存储地址)可以在上下文控制表1115中指 定(通过第二上下文标识符索引),并且该特定保存位置仅可以通过被提 供存储管理控制权的更具特权、可信的上下文来寻址。接下来,上下文控 制单元1110可以使用第一上下文标识符标签将第一上下文信息(即,先前 存储的第一上下文的第一状态)从上下文保存区域1135中的另一个位置 (如上下文控制表1115中所指定的)恢复到特定寄存器1101b的第二副 本(2),并且可以使用第一上下文标识符标签重新标记特定寄存器1101b 的第二副本(2)(即,可以将上下文标识符标签1102b(2)从与第二上 下文关联的第二上下文标识符标签切换到与第一上下文关联的第一上下文 标识符标签)。然后上下文控制单元1110才可以为第一上下文提供对特定 寄存器1101b的第二副本(2)的读取和写入访问。

当使用与第二上下文关联的第二上下文标识符标签标记特定寄存器 1101b的第二副本(2)时,上下文控制单元1110可以使用第二上下文标 识符标签,在存储器1130的上下文保存区域1135中保存来自特定寄存器 1101b的第二副本(2)的所有第二上下文信息(即,第二上下文的第二状 态)。在为第一上下文提供访问之前保存所有第二上下文信息可以非常耗 时。因此,备选地,可以“按需”(即,仅当第一上下文参考那些第二状 态时)保存第二上下文信息(即,第二上下文的第二状态),或者初始可 以保存第二上下文信息的一部分(例如,选定第二状态),并且可以“按 需”保存其余部分。

在另一个方面,数据处理器1100还可以包括寄存器池1150。在这种 情况下,池1150中具有的寄存器可以多于所有上下文的操作需要的寄存器 (即,某些寄存器可以空闲,或者更具体地说为空)。上下文控制单元1110 可以从第一上下文接收指示第一寄存器名称的访问请求。在这种情况下, 上下文控制单元1110可以首先判定池1150中的任何寄存器是否具有第一 寄存器名称并且使用与第一上下文关联的第一上下文标识符标签进行标 记。当池中的第一寄存器(例如,寄存器1101a)具有第一寄存器名称并 且被使用第一上下文标识符标签标记时(即,当上下文标识符标签1102a 与第一上下文的第一标识符标签匹配时),上下文控制单元1110可以为第 一上下文提供对第一寄存器1101a的读取和写入访问。但是,当池1150 中的寄存器均没有第一寄存器名称并且未使用第一上下文标识符标签进行 标记时,上下文控制单元1110可以选择空闲寄存器(例如,1101b)(如 果存在),可以使用第一上下文标识符标签将第一上下文信息从上下文保 存区域1135恢复到选定寄存器1101n,并且可以为第一上下文提供对该空 闲寄存器1101b的访问。当池1150中的寄存器均没有第一寄存器名称并 且未使用第一上下文标识符标签进行标记,并且当池1150中的寄存器均不 空闲时,上下文控制单元1110可以从池中选择选定寄存器(例如,寄存器 1101n),具体地说,具有不同寄存器名称并且使用与第二上下文关联的 不同上下文标识符标签标记的选定寄存器。然后,上下文控制单元1110 可以使用不同上下文标识符标签,在存储器1130的上下文保存区域1135 中保存来自选定寄存器1101n的任何上下文信息。接下来,上下文控制单 元1110可以使用第一寄存器名称重命名选定寄存器1101n,并且可以使用 第一上下文标识符标签重新标记选定寄存器1101n(即,可以将上下文标 识符标签1102n从不同上下文标识符标签更改为第一上下文标识符标签)。 然后,上下文控制单元1110可以使用第一上下文标识符标签将第一上下文 信息从上下文保存区域1135恢复到选定寄存器1101n,并且可以为第一上 下文提供对选定寄存器1101n的读取和写入访问。

图12是示出微处理器1200的高级架构的示意图,微处理器1200包括 类似于单元1110的上下文控制单元1210、类似于上下文控制表1115的上 下文控制表1215、类似于存储器1130的存储器1230,以及类似于上下文 保存区域1135的上下文保存区域1235。处理器1200可以包括:指令单元 1201,其包括指令缓冲器和分派,并且对指令进行接收、排队和分派;使 用计数器和链接地址维护寄存器;以及条件信息(CR)。可以将指令适当 地分派给执行单元1202(例如,整数和浮点)、加载/存储单元1203和分 支处理单元1204。可以将指令的参数和结果存储在程序寄存器1206(例如, 通用寄存器(GPR)和浮点寄存器(FPR))中。加载/存储单元1203和 指令单元1201可以检索数据并且将其存储到主存储器1230中。可以在数 据存储管理单元(DATA MMU)1241和指令存储管理单元(INST MMU) 1251中将交互地址从逻辑地址转换为物理地址,并且可以在相应的数据高 速缓存1242和指令高速缓存1252中缓存数据本身。

寄存器(例如,程序寄存器1206和分支寄存器1205)和机器状态可 以进一步使用上下文标识符标签(CID)来扩展。如果寄存器1205和/或 1206可层叠,则还可以添加安全域标识符(SDID)和上下文叠层级别标 签(LVL)。可以将存储器1230分成安全域。可以使用SDID扩展存储器 1230。上下文控制单元1210包含提供必需映射的上下文控制表1215。 DATA MMU1241和INST MMU1251可以使用上下文控制单元1210获 得引用的SDID以便确认引用合法。如果引用合法,则DATA MMU1251 可以为数据高速缓存1242提供物理地址,并且可以根据请求读取数据(数 据或指令)或写入数据(仅数据)。

数据处理器1200还可以包括在存储器1230中的上下文保存区域 1235。该上下文保存区域1235仅可以通过上下文控制单元1210的硬件来 寻址。与各寄存器1205、1206通信的上下文控制单元1210还可以与重命 名单元和分派单元通信。指令单元1201,具体地说指令单元的分派单元, 可以使用上下文控制单元1210获得上下文标识符标签,并且如果适用,获 得要分派的指令上下文的LVL。指令单元1202将请求分派给均在程序寄 存器1206上操作的加载/存储单元1203和执行单元1202,以及分派给在 分支寄存器1205上操作的分支处理单元1204。

加载/存储单元1203可以从分派单元接收指令。加载/存储单元1203 可以用于加法。当用于加法时,它的功能与执行单元相同。对于加载,加 载/存储单元1203接收指令、使用寄存器从重命名单元加载的程序寄存器 1206的名称(来自指令)、CID以及LVL(如果适用)。它还将有效地 址和CID传递到数据高速缓存1242,以便它可以检索数据。当检索数据 时,将数据放在指示的寄存器1206中,并且加载/存储单元1203准备好用 于下一个指令。对于存储,加载存储单元1203检索包含来自重命名单元的 数据的程序寄存器1206的名称。它从该程序寄存器提取数据,并且将有效 地址(EA)、CID、LVL(如果适用)以及数据传递到数据高速缓存1242 以便写入。写入数据之后,加载/存储单元1203为下一个指令做准备以便 存储数据或检索数据。

执行单元1202可以针对程序寄存器1206执行算术运算。执行单元 1202使用寄存器名称、CID和LVL(如果适用),从重命名单元接收它 将操作的程序寄存器1206的名称。它然后请求这些程序寄存器1206的内 容,执行指示的操作,并且请求将结果放在所指示的程序寄存器中。

在执行单元1202处理之后,任何生成的条件代码可以用于分支处理单 元1204。分支处理单元1204可以从指令单元1201,更具体地说从指令单 元1201的分派单元,接收指令、CID和LVL(如果适用)。分支处理单 元1204还可以包含程序计数器和当前上下文的关联CID。分支处理单元 1204可以使用所述请求、CID和LVL(如果适用),从分支寄存器重命 名单元接收它将需要的分支寄存器1205的名称。它然后可以接收分支寄存 器1206的内容,并且适当地执行分支。完成之后,分支处理单元1204向 指令MMU1251和指令单元1201通知要执行的下一个指令以及与该指令 关联的CID。如果分支是跨上下文调用,则它使用新上下文的CID标记要 传递到新上下文的分支寄存器1205,并且将当前CID更改为新上下文的 CID。应该注意,为简单起见,图12示出两个重命名单元。但是,所属技 术领域的技术人员应该理解,可以在数据处理器1200中具有一个或多个重 命名单元,每个重命名单元可以适合于提供在重命名单元之间一致的任何 寄存器的正确名称。

因此,应该理解,尽管图1-3和6的非限制性实例示出通过单独硬件 供应第一和第二已隔离计算实体,但还可以例如使用图9和/或10中所示 的技术和/或通过图11和12的上下文标识符标签方法,在单个处理器中实 现。

因此,在某些情况下,至少一个用户接口元件包括有状态用户接口元 件901、903、1001、1003;第一已隔离计算实体包括第一接口状态存储单 元994、1094,它们被配置为存储至少一个有状态用户接口元件的第一状 态;第二已隔离计算实体包括第二接口状态存储单元992、1092,它们与 第一接口状态存储单元隔离,并且被配置为存储至少一个有状态用户接口 元件的第二状态;以及切换装置被进一步配置为:在第一模式中,使第一 状态可用于至少一个有状态用户接口元件;以及在第二模式中,使第二状 态可用于至少一个有状态用户接口元件。

如图9中所示,在某些情况下,在具有隔离的第一和第二寄存器存储 998、996的单个处理单元919中实现第一和第二已隔离计算实体。

如图10中所示,在某些情况下,在系统管理程序1088的管理下,在 具有隔离的第一和第二操作系统1086、1084的单个处理单元1019中实现 第一和第二已隔离计算实体。

如图11和12中所示,在某些情况下,在具有多个寄存器1150和上下 文控制单元1110的单个处理单元中实现第一和第二已隔离计算实体,所述 上下文控制单元1110使用与至少第一和第二上下文关联的上下文标识符 标签1102来控制至少第一和第二上下文对多个寄存器的访问。所述第一和 第二上下文对应于第一和第二模式。

在另一个方面,一种示例性装置包括至少一个用户接口元件,例如 601、603、605、607、901、903、905、907、1001、1003、1005、1007等。 所述装置还包括至少一个处理器,例如619、627、802、919、1019、1200 等,其耦合到所述用户接口元件并且以下列方式之一运行:(i)第一个性 化,具有与其关联的第一个性化数据和一个或多个第一个性化程序;以及 (ii)第二个性化,具有与其关联的第二个性化数据和一个或多个第二个 性化程序。还包括与至少一个处理器关联的切换装置,例如130等,其导 致所述装置在所述第一个性化和所述第二个性化之间切换。当至少一个处 理器以第一个性化运行时,所述装置的用户不能使用用户接口元件(多个) 中的任何一个来观察或影响一个或多个第二个性化程序的操作和第二个性 化数据(第二个性化程序可以可选地在后台针对第二个性化数据执行)。 当至少一个处理器以第二个性化运行时,所述装置的用户不能使用用户接 口元件(多个)中的任何一个来观察或影响一个或多个第一个性化程序的 操作和第一个性化数据(第一个性化程序可以可选地在后台针对第一个性 化数据执行)。此外,在这点上,在单处理器设备中,一种用于维护安全 隔离的方法是每次仅允许由系统管理程序管理的虚拟机之一运行。备选地, 如果设备的拥有者或第二个性化的管理者不太关注安全性,则可以允许其 它个性化在后台操作,直到被第一个性化拥有的资源阻止为止。

如果需要,则这种方法可以扩展到其它个性化。

在另一个方面,服务提供商可以为设备制造商提供此处的一个或多个 系统的组件;例如,处理器104、开关130和IO控制器128,它们被配置 为与其它组件对接。服务提供商可以向设备制造商收取费用也可以不收取。 服务提供商可以向企业和/或用户收取用于支持处理器104和关联功能的 费用。

示例性系统和制造品详细信息

所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、 方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形 式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软 件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电 路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一 个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质 中包含计算机可读的程序代码。

本发明的一个或多个实施例或其元素可以以装置的形式实现,所述装 置包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器 并且可操作以执行示例性方法步骤。

一个或多个实施例可以使用在移动设备(例如智能电话或平板计算机) 上运行的软件。参考图8,这种实现例如可以采用处理器802、存储器804 和输入/输出接口(例如,由显示器806和键盘808(例如可能组合在触摸 屏中)形成)。术语“处理器”如在此使用的,旨在包括任何处理设备, 例如包括CPU(中央处理单元)和/或其它形式处理电路的处理设备。进 一步,术语“处理器”可以指多个单独的处理器。术语“存储器”旨在包 括与处理器或CPU关联的存储器,例如RAM(随机存取存储器)、ROM (只读存储器)、固定存储器件(例如,硬盘驱动器)、可移动存储器件 (例如,软盘)、闪存等。此外,词组“输入/输出接口”如在此使用的, 旨在包括例如一个或多个用于将数据输入到处理单元的机构(例如,鼠标、 触摸屏),以及一个或多个用于提供与处理单元关联的结果的机构(例如, 显示器)。处理器802、存储器804和输入/输出接口例如可以通过总线810 互连,作为移动设备812的一部分。某些移动设备可以包括合适的互连, 例如通过总线810与网络接口814(例如网卡,其可以用于与计算机网络 对接)以及介质接口816(其可以用于与介质818对接)互连。

因此,如在此描述的,包括用于执行本发明某些方面的方法的指令或 代码的计算机软件可以被存储在一个或多个关联的存储器件(例如,ROM、 固定或可移动存储器)中,并且当准备使用时,被部分或全部加载(例如, 加载到RAM中)并由CPU实现。这种软件可以包括但不限于固件、驻留 软件、微代码等。

适合于存储和/或执行程序代码的移动设备将包括至少一个通过系统 总线810等直接或间接连接到存储元件804的处理器802。存储元件可以 包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及 提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装 置检索代码的次数的高速缓冲存储器。

输入/输出或I/O设备(包括但不限于键盘808、显示器806、指点设 备等(可能组合在触摸屏中))可以直接(例如通过总线810)或通过中 间I/O控制器(为清楚起见而被省略)与系统相连。

网络适配器(例如网络接口814)可以可选地被耦合到设备以使设备 能够通过中间专用或公共网络变得与其它数据处理系统或远程打印机或存 储器件相连。这些连接例如可以是无线连接。

如所指出的,本发明的各个方面可采用计算机程序产品的形式,所述 计算机程序产品包含在一个或多个在其上具有计算机可读程序代码的计算 机可读介质中。可以采用一个或多个计算机可读介质的任意组合。计算机 可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可 读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导 体的系统、装置或器件,或者上述的任意合适的组合。介质方框818是一 个非限制性实例。计算机可读存储介质的更具体的例子(非穷举的列表) 包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取 存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、 磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储 介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、 装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传 播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号 可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合 适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何 计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令 执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括 —但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的 各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程 序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设 计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在 用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包 执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计 算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过 任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户 计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通 过因特网连接)。

在此将参照根据本发明实施例的方法、装置(系统)和计算机程序产 品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框 图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序 指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其 它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在 通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程 图和/或框图中的一个或多个方框中规定的功能/动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使 得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而, 存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的 一个或多个方框中规定的功能/动作的指令的制造品(article of  manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、 或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列 操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装 置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的 功能/动作的过程。

附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述 模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的 可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功 能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上 可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的 功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/ 或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬 件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

应当注意,在此描述的任何方法都可以包括提供一种系统的额外步骤, 所述系统包括包含在计算机可读存储介质中的不同软件模块;所述模块例 如可以包括在框图中示出和/或在此处描述的任何或全部软件实现的元件; 作为实例而非限制,第一操作系统模块1086、第二操作系统模块1084以 及系统管理程序模块1088。然后可以使用所述系统的不同软件模块和/或 子模块(如上所述,在一个或多个硬件处理器802上执行)执行所述方法 步骤。进一步,计算机程序产品可以包括计算机可读存储介质,其具有适 合于被执行的代码以便执行在此描述的一个或多个方法步骤,包括为所述 系统供应所述不同软件模块。

在任何情况下,应当理解,在此示出的组件可以以各种形式的硬件、 软件或它们的组合来实现;例如,专用集成电路(多个)(ASIC)、功能 电路、具有关联存储器的一个或多个经过适当编程的通用数字计算机等。 给予了在此提供的本发明的教导后,相关技术领域的普通技术人员将能够 构想本发明的组件的其它实施方式。

在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明 的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包 括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使 用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、 元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、 操作、元素、组件和/或其组合的存在或增加。

下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置 或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元 件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了 对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开 的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普 通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述 是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定 使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各 种修改的各种实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号