CN104981815B - 用于用安全属性限制cpu事务的方法、装置和系统 - Google Patents
用于用安全属性限制cpu事务的方法、装置和系统 Download PDFInfo
- Publication number
- CN104981815B CN104981815B CN201480007223.9A CN201480007223A CN104981815B CN 104981815 B CN104981815 B CN 104981815B CN 201480007223 A CN201480007223 A CN 201480007223A CN 104981815 B CN104981815 B CN 104981815B
- Authority
- CN
- China
- Prior art keywords
- affairs
- security attribute
- initiator
- access
- processor
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
Abstract
用于用安全属性限制CPU事务的方法、装置和系统。通过CPU或处理器核为事务发起器生成标识被信任或不被信任的CPU/核的执行模式的不可变安全属性。事务的目标可以是可通过其访问受保护资产的输入/输出(I/O)设备或系统。在装置或系统内的各个点实现基于为事务生成的不可变安全属性允许或拒绝对受保护资产的事务访问的策略实施逻辑块。在一个方面,实现多级别安全方案,在该方案中,通过用于指示CPU/核正在受信任执行模式下操作的第一事务更新模式寄存器,并且使用模式寄存器中的执行模式标记为第二事务生成安全属性以便验证该事务来自受信任发起器。
Description
领域
本公开涉及计算系统并且具体(但非排他地)涉及基于为源自中央处理器单元和处理器核的事务生成的安全属性限制(qualify)事务。
附图简要描述
图1示出包括多核处理器的计算系统的框图的实施例。
图2是示出示例性片上系统架构和与系统中的设备所发起的事务相关联的相应通信路径的系统示意图。
图3a和图3b分别示出到用于基于源的、基于目标的和基于构造的SAI实施方案的目标对象映射的粗粒度和细粒度主体发起器。
图4示出根据本发明的一个实施例的采用策略寄存器的安全访问机制的概述。
图5示出图2的SoC,进一步包括实现专用协议的总线和用于在专用协议和SoC构造所采用的协议之间映射安全属性的映射器。
图6示出根据本发明的一个实施例的示例性读和写策略寄存器组。
图7示出根据本发明的一个实施例的示例性控制策略寄存器。
图8示出根据本发明的一个实施例的使用图2的SoC的示例性事务和相关联的安全访问实施机制设施。
图9是在此公开的实施例的各方面可在其中实现的示例性系统架构的示意框图。
图10是示出根据一个实施例的被执行以便用指示发起器的当前执行模式的标记更新模式寄存器的操作的流程图;
图11a是示出根据一个实施例的另一个模式寄存器更新过程的组合架构和数据流图。
图11b是示出根据一个实施例的MMIO写事务的组合架构和数据流图。
图12示出计算片上系统的实施例。
图13示出计算系统的框图的实施例。
详细描述
在以下描述中,列出了许多特定细节,诸如特定类型的处理器核系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等等的示例,以便提供本发明的透彻理解。然而,将对本领域技术人员明显的是无需采用这些特定细节来实践本发明。在其他情况下,未详细描述公知的组件或方法,诸如特定或替代处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、特定算法代码表达、特定断电和门控技术/逻辑以及计算机系统的其他特定操作细节,以便避免不必要地混淆本发明。
因为计算系统日益进步,其中的组件变得越来越复杂。结果是,用于这些组件之间的耦合和通信的互连架构也日益复杂以便确保满足最佳组件操作的带宽要求。此外,不同的市场部分要求互连架构的不同方面适合市场需要。例如,服务器要求更高性能,而移动生态系统有时能够为功率节省牺牲整体性能。
历史性地,计算机系统架构采用经由外部总线和/或其他类型的外部互连连接的分立组件,诸如中央处理单元(CPU)、存储器控制器或中枢、输入/输出(I/O)中枢等等。最近,计算机架构已经从分立组件切换到片上系统(SoC)方式,在这种方式下,各系统组件集成在在单个衬底上集成的单管芯或多管芯上,其中各组件包括经由内部互连结构互连的逻辑/电路块(通常用组件名称为功能块和/或知识产权(IP)块),诸如总线、基于串行的互连和交换机构造(也被简单地称为构造)。
为了更好地理解在此公开的本发明的实施例的实现方式和方面,首先提供采用多核处理器的计算系统的以下讨论。将理解的是这个计算系统仅说明可在SoC或类似架构(诸如多芯片模块)中实现的计算机系统的各个方面。
参照图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、SoC或其他设备以便执行代码。在一个实施例中,处理器100包括至少两个核,核101和102,这可包括非对称核或对称核(所示实施例)。然而,处理器100可包括可以是对称的或非对称的任何数量的处理元件。
在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他元件,其能够保持处理器的状态,诸如执行状态或架构状态。换言之,在一个实施例中,处理元件是指能够与代码(诸如软件线程、操作系统、应用或其他代码)独立地相关联的任何硬件。物理处理器(或处理器插槽)通常是指集成电路,其可能包括任何数量的其他处理元件,诸如核或硬件线程。
核通常是指位于能够维持独立的架构状态的集成电路上的逻辑,其中每个独立维护的架构状态与至少某些专用执行资源相关联。与核相比,硬件线程通常是指位于能够维护独立的架构状态的集成电路上的任何逻辑,其中独立维护的架构状态共享对执行资源的访问。如所见,当某些资源被共享并且其他资源对于架构状态是专用的时,硬件线程和核的命名之间的界限重叠。经常,核和硬件线程由操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
如图1所示,物理处理器100包括两个核,核101和102。在此,核101和102被认为是对称核,即,具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括乱序处理器核,而核102包括顺序处理器核。然而,核101和102可单独地选自任何类型的核,诸如本地核、软件管理核、被适配为执行本地指令集架构(ISA)的核、被适配为执行转换指令集架构(ISA)的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,某种形式的转换(诸如二进制转换)可用于在一个或两个核上调度或执行代码。仍需进一步讨论,以下进一步详细描述核101中示出的功能单元,因为核102中的单元在所描绘的实施例中以类似的方式操作。
如所描绘的,核101包括两个硬件线程101a和101b,其可还被称为硬件线程槽101a和101b。因此,在一个实施例中,软件实体(诸如操作系统)可能将处理器100视为四个分离的处理器,即,能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如以上内容所示,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可与架构状态寄存器102a相关联,而第四线程可与架构状态寄存器102b相关联。在此,这些架构状态寄存器(101a、101b、102a和102b)各自可被称为处理元件、线程槽或线程,如上所述。如所示,架构状态寄存器101a在架构状态寄存器101b中复制,所以单独的架构状态/上下文能够被存储用于逻辑处理器101a和逻辑处理器101b。在核101中,也可为线程101a和101b复制其他更小的资源(诸如指令指针和重命名逻辑)。可通过分区共享某些资源(诸如重排序/引退单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器和队列)。可能充分地共享其他资源(诸如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据TLB 115、执行单元140以及乱序单元135的部分)
处理器110经常包括其他资源,这些资源可充分地共享、通过分区共享或由处理元件专用。在图1中,用处理器的说明性逻辑单元/资源示出了纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任一者并且包括未描绘的任何其他已知功能单元、逻辑或固件。如所示,核101包括简化的有代表性的乱序(OOO)处理器核。但是可在不同实施例中使用顺序处理器。OOO核包括分支目标缓冲器120以便预测有待执行/采取的分支以及指令转换缓冲器(I-TLB)120以便存储用于指令的地址转换条目。
核101进一步包括耦合到获取单元120的解码模块125以便解码所获取的元件。在一个实施例中,获取逻辑包括分别与线程槽101a、101b相关联的个体序列器。通常,核101与第一ISA相关联,该第一ISA定义/指定可在处理器100上执行的指令。经常,作为第一ISA的一部分的机器代码指令包括该指令的一部分(称为操作码(opcode)),该指令引用/指定有待执行的指令或操作。解码逻辑125包括从其操作码识别这些指令并且将所解码的指令在流水线中传递以便进行如由第一ISA所定义的处理的电路。例如,如以下更详细地讨论的,在一个实施例中,解码器125包括被设计成用于或被适配成用于识别特定指令(诸如事务指令)的逻辑。解码器125的识别的结果是,架构或核101采取特定的预定义的动作来执行与适当的指令相关联的任务。重要的是注意,在此描述的任务、块、操作和方法中的任一者可响应于单个或多个指令执行;某些这些指令可以是新的或旧的指令。注意,在一个实施例中,解码器125识别相同的ISA(或其子集)。可替代地,在异构核环境中,解码器126识别第二ISA(或者是第一ISA的子集或者是不同的ISA)。
在一个示例中,分配器和重命名器块130包括用于保存资源(诸如寄存器组)以便存储指令执行结果的分配器。然而,线程101a和101b可能能够乱序执行,其中分配器和重命名器块130还保存其他资源(诸如重排序缓冲器)以便跟踪指令结果。单元130还可包括寄存器重命名器以便将程序/指令引用寄存器重命名到处理器100内部的其他寄存器。重排序/引退单元135包括组件,诸如上述重排序缓冲器、加载缓冲器和存储缓冲器,以便支持乱序执行以及乱序执行的指令的稍后的顺序引退。
在一个实施例中,调度器和执行单元块140包括调度器单元以便在执行单元上调度指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。与执行单元相关联的寄存器组也被包括以便存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知执行单元。
低级数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存用于存储潜在可能被保持在存储器一致性状态的最近使用/操作的元素,诸如数据操作数。D-TLB用于存储最近虚拟/线性到物理地址转换。作为特定示例,处理器可包括页表结构,用以将物理存储器断开为多个虚拟页。
在此,核101和102共享对更高级或更往外(further-out)的高速缓存的访问,诸如与片上接口110相关联的二级高速缓存。注意,更高级或更往外是指增加或离执行单元更远的高速缓存级别。在一个实施例中,更高级高速缓存是末级数据高速缓存,处理器100上的存储器分层结构中的末级高速缓存,诸如二级或三级数据高速缓存。然而,更高级高速缓存不限于此,因为其可与指令高速缓存相关联或包括指令高速缓存。轨迹高速缓存(一种指令高速缓存)替代地可耦合在解码器125之后以便存储最近解码的轨迹。在此,指令可能是指宏指令(即,解码器所识别的通用指令),该宏指令可被解码为多个微指令(微操作)。
在所描绘的配置中,处理器100还包括片上接口模块110。历史性地,以下更详细描述的存储器控制器已经被包括在位于处理器100外部的计算系统中。在此场景中,片上接口11用于与位于处理器100外部的设备通信,诸如系统存储器175、芯片组(经常包括存储器控制中枢以便连接到存储器175和I/O控制器中枢以便连接外围设备)、存储器控制器中枢、北桥或其他集成电路。还在此场景中,总线105可包括任何已知互连,诸如多点总线、点到点互连、串行互连、并行总线、一致性(例如高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
存储器175可专用于处理器100或与系统中的其他设备共享。常见的存储器175的示例类型包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知存储设备。注意,设备180可包括耦合到存储器控制器中枢的图形加速器、处理器或卡、耦合到I/O控制器中枢的数据存储设备、无线收发器、闪存设备、音频控制器、网络控制器或其他已知设备。
然而,最近,随着越来越多的逻辑和设备被集成到单个管芯上,诸如由SoC实现的管芯,这些设备各自可结合到处理器100上。例如,在一个实施例中,存储器控制器中枢位于与处理器100相同的封装和/或管芯上。在此,核110的一部分(核上部分)包括一个或多个控制器以便与其他设备(诸如存储器175或图形设备180)接口连接。包括用于与这种设备接口连接的互连和控制器的配置经常被称为核上(或非核配置)。作为示例,在一个实施例中,片上接口110包括用于片上通信的环形互连和用于片外通信的高速串行点到点链路105。可替代地,片上通信可由具有网格型配置的一个或多个交换机构造促进。而且,在SoC环境中,甚至更多的设备(诸如网络接口、协处理器、存储器175、图形处理器180和任何其他已知计算机设备/接口)可集成在单个管芯或集成电路上以便提供具有高功能性和低功耗的小形状因数。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码178以便编译、转换和/或优化应用代码176从而支持在此描述的装置和方法或与其接口连接。编译器经常包括程序或程序集合以便将源文本/代码转换为目标文本/代码。通常,用编译器编译程序/应用代码是在多个阶段以及多遍(pass)完成的以便将高级编程语言代码变换为低级机器或汇编语言代码。而且,单遍编译器仍可用于简单的编译。编译器可利用任何已知的编译技术并执行任何已知的编译器操作,诸如词汇分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
更大的编译器经常包括多个阶段,但是大多数情况下这些阶段被包括在两个常用阶段中:(1)前端,即通常其中可发生句法处理、语义处理和某种变换/优化,以及(2)后端,即其中发生通常分析、变换、优化和代码生成。某些编译器是指中间端,该中间端示出编译器的前端和后端之间的界定模糊。结果是,对编译器的插入、关联、生成或其他操作的引用可在前述阶段或通道中的任一者以及编译器的任何其他已知阶段或通道中发生。作为说明性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等等,诸如在编译的前端阶段中插入调用/操作并且然后在变换阶段中将调用/操作变换为低级代码。注意,在动态编译期间,编译器代码和动态优化代码可插入这种操作/调用并且优化代码以便在运行时期间执行。作为特定的说明性示例,二进制代码(已经编译的代码)可在运行时期间动态地优化。在此,程序代码可包括动态优化代码、二进制代码或其组合。
与编译器类似,转换器(诸如二进制转换器)或者静态地或者动态地转换代码以便优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以是指:(1)或者静态地或者动态地执行编译器程序、优化代码优化器或转换器以便编译程序代码、维护软件结构、执行其他操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,诸如已经被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如库)以便执行其他软件相关的操作或优化代码;或(4)其组合。
在基于SoC的平台中,处理器核、加速器和设备访问各自的资源以便处理工作负荷,包括可同时执行的具有各种信任度的多个工作负荷。此外,CPU事务(诸如微代码和SMM(系统管理模式))要求访问SoC中的关键资产(诸如系统代码、IP代理等等中的安全存储器区域、配置控件)。关键资源的示例包括专用于SMM的隔离存储器区域(IMR)、功率管理控制中的由微代码配置的配置寄存器等等。在考虑这种情况时,需要适当的控件来保护跨SoC分布的敏感资产。否则,供应商和消费者秘密会受到危害。威胁的示例是在计算机系统上运行的恶意软件篡改受保护的存储器区域寄存器并且暴露秘密。
进一步的趋势建议这些加速器可从固定功能演进到用最新的算法更新的可编程引擎。虽然是有益的,动态软件环境可引入新的弱点。此外,存储器分布通过SoC以便满足最低延时要求。这增加了存储敏感资产并需要受限访问的存储库的数量。这些因素激励对在由多个核和分布式存储器组成的SoC中实施访问控件的需要。
在图2中示出了示出示例性处理器核、加速器和设备集合的与示例性片上系统200相对应的抽象架构。SoC 200包括一个或多个处理器核202(仅一个或为了简化而示出),各自包括耦合到存储器构造206的本地高速缓存204。SoC 200还包括耦合到存储器210的一个或多个加速器208,该存储器进而经由核接口212耦合到存储器构造206。存储器构造206还包括存储器接口214和面朝南的接口216。存储器接口214助益与动态随机存取存储器(DRAM)218的通信。面朝南的接口216提供存储器构造和IO构造220之间的互连。IO构造220支持与各种IO设备的输入/输出通信,如设备222和224所示,各自耦合到对应的存储器226和228。IO构造220还提供静态随机存取存储器(SRAM)230和系统组件的剩余部分之间的接口。
在SoC 200的操作期间,各种系统组件可访问由其他组件/设备保持或提供的SoC资产。例如,处理器202可访问DRAM 218、加速器208、存储器210、设备224、存储器228和SRM230中的每一者,如对应的通信路径设备232、234、236、238、240和242所描绘的。类似地,各个IO设备可访问其他资产,诸如设备和存储器资源,如通信路径244、246、248、250和252所示。
处理器核、加速器和设备与彼此交互以便处理SoC 200所处理的工作负荷。部分地通过访问与核、加速器和设备相关联的存储器和存储资源和/或寄存器以及常见存储器资源(诸如DRAM 218、SRAM 230等等)来助益交互。发起这种系统资源访问请求的组件在此被称为“发起器”。
如在图2的架构中可见,某些发起器(诸如处理器核202和加速器208)不包括内置在SoC 200中的内部组件,而其他发起器(诸如IO设备222和224)可位于SoC内部或外部,取决于其具体功能。还位于SoC外部的是可尝试通过SoC内的内部或外部发起器访问内部或外部资源的软件和固件实体。结果是,具有不同的信任度的工作荷负可同时执行。
SoC 200包括有待被保护不受未授权访问的数据和硬件资产,诸如配置寄存器、范围寄存器等等。在常规方法中,控制对这种数据和硬件资产的访问是以自组织和碎片化方式由SoC的具体设计者为每个SoC处理的。这种方法不在SoC构造和接口中提供无歧义地确定发起器的权限的综合支持。
SoC架构中的最近进步已经引入了支持跨内部(例如仅由存储器构造206)和外部(例如经由IO构造220)存储器资源两者的一致性的存储器和IO构造。这是部分地通过存储器访问和一致性框架促成的。在某些实施例中,这种框架用于定义可跨SoC架构实现的以便支持以一致的方式安全访问资源的统一访问控制架构。在一个实施例中,存储器构造206和IO构造220采用快速路径互连(QPI)框架。通常,存储器构造和IO构造各自包括具有相应的控制逻辑的互连以便促成连接到互连的设备和资源之间的事务。
访问控制模型和架构
在一个实施例中,实现基于属性的访问控制模型以便确保仅允许经授权的发起器访问受保护的资源。在这种模型下,主体(Subject)或发起器访问对象或目标。主体和对象的特性被分别捕获为主体属性和目标属性。
在SoC平台中存在多个点,访问控制策略可在其中实施。这些实施点包括在源(即,主体或发起器)、目标和/或构造处。这些策略可以或者是粗粒度的或者是细粒度的,这取决于访问类型和其他参数,如预期在图3a和图3b中所示。
针对基于源的访问控制,在主体或发起器处实施访问控制。在这种情况下,访问策略定义可由发起器访问的所有目标,如由源S0和对象O0、O1和On之间的一对多关系所示。此外,发起器需要支持解码目标地址,这增加了发起器逻辑的复杂性。在基于目标的访问控制的情况下,在端点处实施访问策略。基于目标的访问策略计及可访问目标的所有发起器,如源S0和对象S0、S1和Sn以及用于图3a中的基于目标的访问控制方案的目标对象O0之间的多对一关系所示。地址解码不是问题,因为事务已经将其指向目标。经常在SoC中采用这种方法。最终,基于构造的访问控制独立于发起器和目标并且在构造中实施策略,通常在入口或出口构造接口处。其提供用于策略实施的中心点并且因此更容易管理。在构造中完成对目标的地址解码。访问控制策略定义可访问耦合到构造的目标的所有发起器,如图3a中描绘的基于构造的访问控制方案中的源和目标对象之间的多对多关系所示。
在图3b中示出的细粒度访问控制方案中,用于基于源和构造的方案的每个源S被描绘为具有多个属性,诸如发起器的身份和发起器的操作模式。类似地,对于基于目标的细粒度方案,给定的目标对象可具有多个访问控制属性。
如上所述,术语“发起器安全属性(SAI)”被定义为表示用于做出访问决定的主体或发起器的不可变特性。在一个实施例中,这些属性由硬件实体生成并且伴随由相应的主体或发起器所发起的每个事务。不像源IS,SAI不在网桥处变换;它们坚持到策略实施点。策略寄存器用于定义用于资产的读和写访问以及用于限制可配置或更新这些策略的实体的策略。在一个实施例中,访问控制架构由以下构件块组成:SAI、SAI生成器、SAI映射器、读策略寄存器、写策略寄存器和控制策略寄存器。此外,在一个实施例中,封装器用于为外部端口实施SAI以便确保其访问被适当地表征。
SAI
在一个实施例中,安全属性被分配给主体/发起器并且用于确定发起器的访问权限(即,读、写、禁止访问等等)。发起器的这些安全属性或“SAI”表示用于做出访问的决定的发起器的不可变特性。在一个实施例中,这些安全属性由SoC硬件生成并且伴随每个事务。不像在某些常规安全方法中使用的源ID,SAI是不可变的,意味它们坚持到策略实施点并且不在网桥或接口处变换。
在一个实施例中,在实现访问策略的最小程度下为每种类型的访问(读和写)定义策略寄存器。通常,存在用于用策略寄存器使用SAI的两个选项:1)SAI用于索引到读/写策略寄存器并且策略寄存器的值指示允许或拒绝访问;或2)将进入的SAI与预期的SAI进行比较并且仅当这两个SAI匹配时才允许访问。如果存在其中具有一个或少量发起器的情况,选项2可能是更优的。选项1和选项2的组合也可取决于特定的SoC的访问要求来实现。
在一个实施例中,控制策略寄存器被定义为标识属于保护资产的受信任计算基础的可配置读和写策略的受信任实体,即,读和写策略寄存器中的值。控制策略寄存器是自引用的,这意味着其内容用于对其自身的访问实施访问控制。
图4示出基于SAI的安全方案的示例性实现方式的概述。在本示例中,主体发起器S0、S1、......Sn被示出为访问目标对象O0、O1、On。用于访问耦合到存储器构造206(即,基于构造的访问)的对象的访问控制经由存储器构造读和写策略寄存器400和402来促成。类似地,用于访问外部目标(即,基于目标的访问)(诸如IO设备)的访问控制经由读和写策略寄存器404和406来促成。
在图4的示例中,主体S0期望执行对耦合到存储器构造206的目标对象O0(未示出)的读访问。主体发起器S0、S1、Sn各自被分配有一组安全属性SA,其定义每个发起器的访问权限,如由SAI安全方案经由相关联的策略寄存器实施的。实现可应用于主体的该组安全属性SA的信息用由主体发起的每个访问消息转发,如以下进一步详细描述的。策略寄存器存储用于安全地控制对相应的对象的访问的安全属性数据。如果发起器主体的安全属性匹配用于访问对象的目标属性,则允许事务继续。相反地,如果发起器主体不具有合适的安全属性(如经由其用其访问消息转发的其SA信息所标识的),则事务将被拒绝,其中相应的消息被返回到发起器主体。
发起器的安全属性或SAI表示被检查为确定访问SoC平台中的目标的发起器(和主体)的不可变特性。在一个实施例中,这些特性包括角色、设备模式和系统模式。设备模式是动态的并且捕获设备的当前内部模式。例如,模式可以是安全模式或正常模式。系统模式是动态的并且指示处理器核所驱动的模式。在一个实施例中,处理器核是IA核、基于英特尔32位或64位架构(在行业中被称为IA)。例如,系统模式可以在SMM(系统管理模式)或安全模式等等中。此外,对于多线程发起器,定义用于指示当前线程的上下文属性;这些属性将伴随SAI。
SAI生成器
SAI是由SoC硬件生成的并且由其输入参数可包括角色、设备模式、系统模式和其他可选参数的函数生成的编码。SAI的解释特定于每个SoC并且由SoC设计者定义。作为示例实现方式,在SAI编码中将具体位设置为‘1’可指示由处理器核访问。如果位被设置为‘0’,则SAI位图中的其他位可用于编码设备访问。例如,100...1b表示IA核访问而001...0b表示设备访问。当然,这仅仅是示例性的,因为位的数量和SAI编码的格式可由设计者配置。
SAI映射器
某些SoC中的I/O设备连接到非供应商(即,不是SoC的供应商)或传统供应商构造。例如,某些SoC可结合OCP(开放核协议)、AMBA(高级微控制器总线架构)、IOSF或其他专用总线协议。SAI映射器负责将伴随SoC供应商的标准构造中的代理生成的事务的安全属性或SAI映射到可在SoC特定设备域(例如OCP域)中解释的安全属性。类似地,对于由非供应商构造中的设备生成的上游事务,设备生成的安全属性必须被映射到可在存储器/一致性和IOSF域中解释的SAI。通常,可在将一个构造协议映射到另一个的网桥中实现这些映射器。在某个实施例中,这些映射器在硬件中被安全地映射并且不能被操纵。
在图5中示出了SAI映射器的示例性实现方式。在本示例中,不同于IO构造220的供应商、非供应商或传统供应商总线或交换机构造500(诸如OCP、AMBA、IOSF等等)经由网桥502耦合到IO构造220。具有存储器506的一个或多个设备耦合到总线500,其中对这些设备的访问根据总线502所实现的协议。同时,为访问连接到SoC 200中的存储器构造206和IO构造220的资产和资源而实现不同的协议。为了促成连接到总线500的设备和SoC 200之间的事务,网桥502采用SAI映射器508映射这两个协议之间的SAI数据。
读和写策略寄存器
读和写策略寄存器包含由SoC设计者为每个发起器定义的读和写许可。伴随事务的SAI用作到策略寄存器的索引。作为示例,在一个实施例中,在存储器构造中定义32位读和写策略寄存器。相应的读和写策略寄存器600和602对在图6中示出,其中1指示允许访问而0指示拒绝访问。通常,SAI宽度是n位。n的值可从一次生成到另一次生成之间变化和/或在产品之间不同。在一个实施例中,编码空间2^(n-1)时,其中n个位之一用于区分核对(vs.)设备编码。使用32位寄存器仅仅是示例性的,因为实际编码将通常特定于产品。SAI到发起器的指派是灵活的并且取决于具体产品。例如,可存在每个发起器一个SAI或者每个发起器多个SAI或者将多个发起器分组为一个SAI。
控制策略寄存器
控制策略寄存器的内容定义被允许配置读和写策略寄存器的受信任实体。控制策略寄存器是自引用寄存器;在控制策略寄存器中指定的SAI被允许修改读和写寄存器策略以及盖写控制策略寄存器的内容。通过允许单个受信任实体配置控制策略寄存器,暗示是对策略寄存器的这种访问被锁定到所有其他代理。控制策略寄存器中的SAI所指定的实体可选择将可配置策略寄存器的代理集合扩展超过在上电/复位时加载的初始值或者受信任实体可将0写入控制策略寄存器,因此对其进行锁定直到下一次系统复位/上电。这为SoC设计者提供了实现锁定策略寄存器直到下一次复位或者允许由受信任实体在运行时期间更新策略的灵活性。在图7中示出了示例性32位控制策略寄存器700。
图8描绘了安全地实施对存储器的设备访问的示例。在本示例中,设备222发起访问DRAM 218的事务(例如读或写)。在I/O网桥252处,经由网桥硬件生成适当的SAI;这些SAI将通过事务消息跨接口转发直到到达可应用的安全实施实体,其在这种情况下时存储器构造206中的策略寄存器256。在策略寄存器256处,将根据事务类型(例如读或写)对照可应用的策略寄存器检查并评估SAI。
在此公开的SAI安全访问实施方案提供优于当前方法的许多优点。其定义了可一致地跨SoC设计采用的统一访问控制构建块,诸如SAI生成器、SAI映射器、策略寄存器等等。其以统一的方式应用到SoC构造。通过将持久属性、SAI与每个事务相关联来实现这些益处。通过在事务消息的现有格式内转发SAI数据,可在现有的互连框架(诸如QPI)内实现对添加访问安全措施的支持。SoC可使用SAI信息来对以SoC资产(诸如存储器、非核寄存器、I/O设备等等)为目标的所有发起器生成的事务实施控制访问。当处理器在特定模式下运行时,SAI可用于允许对存储器区域到特定I/O设备的排他访问或者对SoC资产的排他访问。访问控制架构是允许在一致和模块化框架内评估所有访问控制决定的强大的新范例。通过跨互连持久地携带SAI信息,我们简化设计、调试错误并且验证访问控制断言,因为发起器安全角色是跨缓冲事务的所有微架构结构立即可用的。
图9示出根据一个实施例被配置成用于实现基于SAI的访问安全方案的系统架构900。在系统900中,用白色背景描绘的组件被集成在SoC上,而用浅灰色背景示出的那些组件是与SoC上的可应用接口通信耦合的片外组件。
SoC组件包括包含多个处理器核902-0-902-N的CPU 901,其经由一致性接口耦合到系统代理906中的末级高速缓存(LLC)和一致性块904,该接口在一个实施例中是管芯内互连(IDI)接口。核902各自被描绘为包括本地高速缓存,其通常可包括一级高速缓存(L1高速缓存)或一级和二级高速缓存(L1/L2高速缓存)的组合。LLC和一致性块904包括分布式末级高速缓存(LLC),其在所示实施例中被配置为多个LLC切片,其中每个切片被逻辑地分配到对应的核902。LLC和一致性块904中的逻辑结合其他系统逻辑(未示出)被配置成用于促成针对源自核902-0-902-N的存储器事务的存储器一致性。在一个实施例中,核902-0-902-N各自表示逻辑核,并且CPU包括一个或多个物理核,每个物理核具有一个或多个逻辑核。例如,在超线程(HT)技术中,每个物理核支持实现两个逻辑核。
系统代理908进一步包括一致性/存储器构造910、功率管理块912、I/O接口914和存储器控制器916。一致性/存储器构造910包括支持一致性存储器事务和非一致性存储器事务的存储器构造,并且被描绘为与存储器控制器916接口连接,其被配置成用于助益对包括经由多个DRAM通道访问的DRAM 920的片外系统存储器918的访问。在一个实施例中,一致性/存储器构造910采用QPI互连结构和协议。在另一个实施例中,一致性/存储器构造910采用Keizer技术互连(KTI)互连结构和协议。一致性/存储器构造910进一步被描绘为逻辑地包括模式寄存器922、访问控制策略逻辑924和策略寄存器926。如在此所使用的,“逻辑地包括”是指相应的组件与其在其中描绘的块的操作有关但是在实际实现中可被实现为分离的块。在一个实施例中,一致性/存储器构造910经由内部互连接口928耦合到I/O接口914。
系统架构910还包括被描绘为耦合到系统代理908的图形引擎929。在一个实施例中,图形引擎929连接到IDI接口或到处理器核902-0-902-N中的一个或多个的另一个互连(未示出)以便直接访问图形引擎929。
I/O接口914被配置成用于作为朝向图9的底部半部分描绘的并且包括包含多个I/O交换机构造的I/O互连分层结构的系统代理908和I/O子系统之间的网桥操作。在I/O互连分层结构的顶部是经由主要接口连接到I/O接口914的主要I/O交换机构造930。I/O互连分层结构中的其他I/O交换机构造包括片上I/O交换机构造932和934以及片外I/O交换机构造936。通常,I/O交换机及构造930、932、934和036可使用各种互连结构和相关协议实现,包括但不限于IOSF、OCP、AMBA或其他现有的或未来的交换机构造。在其中两个I/O交换机构造实现不同的协议的情况中,实现网桥以便在不同的协议之间接口连接,如网桥938和940所描绘的。此外,通信耦合的并且采用不同的时钟频率的I/O交换机构造可包括具有用于促成两个构造之间的通信的适当的跨时钟域电路的接口。
系统架构900还包括经由主接口耦合到I/O接口914和/或主I/O交换机构造930的边带消息接发块942。边带消息接发块942经由边带通道944耦合到访问控制策略逻辑,该通道还可被称为消息接发通道。通常,边带和/或消息接发通道用于促成配置操作而不用于结合数据事务传输数据有效载荷。
图9进一步描绘在I/O互连分层结构中各个级别耦合到所示I/O交换机构造的各种I/O设备和相关联的存储器,包括分别耦合到存储器950和952的片上I/O设备946和948以及片外I/O设备954、956、958和960和片外存储器962和964。此外,包括闪存存储器控制器966的I/O设备耦合到主I/O交换机构造930并且被配置成用于助益对其中存储包括BIOS 970的系统固件的闪存存储器968的访问。在一个实施例中,闪存存储器968还用于存储操作系统972。可选地,操作系统可存储在分离的存储设备上,诸如盘驱动器或固态驱动器(但是未示出)。
如上所述,SAI可在各个主体发起器处生成,并且SAI策略实施逻辑可在系统中的各个组件处实现。参照在图9的左上角描绘的图例,用椭圆形标记的“SAI”描绘被配置成用于生成SAI的组件,而由框标记的“SAI”描绘用于SAI策略实施逻辑的位置。此外,用交叉影线框描绘受保护资产,如图例中所示。将理解的是,系统架构900中的SAI、SAI策略实施逻辑和受保护资产的描绘仅仅是示例性的,并且在实际SoC中可实现不同的配置。
如图9所示,SAI策略实施经由SAI策略实施逻辑块在端点处并且在各个构造和接口中实现。如上所述,SAI策略实施还可在主体发起器(未示出)处实现。通常,用于构造的SAI实施逻辑可在到构造和/或构造内的逻辑块或与构造逻辑地相关联的入口或出口接口处实现。取决于I/O设备的类型,SAI实施逻辑可在I/O设备(或其接口或相关联代理)内实现,或者可采用封装器,如上所述并且以下参照图10a和图10b进一步详细描述的。受保护资产可通常包括基于硬件的资产(诸如寄存器)或与I/O设备或其他系统组件相关联的存储器内的受保护存储器的各部分(诸如系统存储器918中的受保护存储器972所描绘的)。
用安全属性限制CPU事务
历史性地,中央处理单元包括单个核并且被实现为多芯片系统架构中的分离的组件。如上所述,最近的系统设计通常实现包括多个处理器核的处理器或SoC架构。由于前述历史背景,源自处理器核的事务在此被称为CPU事务或者可替代地处理器核事务。
如上所述,CPU及其处理器核用于执行进行相关联操作的指令。最常见的指令类型是与被编译为支持CPU/处理器核的指令架构的模块和应用相对应的机器代码。这些模块和应用包括操作系统内核、由操作系统主存的应用以及设备驱动器。
出于安全原因,现代的CPU和处理器核被配置成用于在不同的特权等级促成指令执行。最低特权等级用于执行应用代码,这种应用代码是最不受信任的并且为恶意代码提供最常见的来源。最受信任的代码是处理器微代码,这种微代码是基于硬件的并且不能经由应用软件访问。其他受信任代码包括在SMM中执行的系统管理代码;这种代码仅被允许位于当在SMM中时可访问的某些预定位置处。
如上所述,当发起器是CPU或处理器核时,SAI可包括标识系统模式的属性。为了防止恶意实体生成指示发起器是在安全模式下运行的处理器核的SAI,在一个实施例中,针对源自PCU/处理器核的事务实现多级别安全方案。
多级别安全方案采用两个阶段,执行模式配置阶段和在该执行模式时的进行中事务阶段。参照图10中的流程图1000,执行模式配置阶段被根据一个实施例如下实现。
过程在框1002中开始,其中处理器核生成受限核事务以便用核的当前模式配置系统代理中的模式寄存器。在系统代理中,执行受限事务检查并且结果连同逻辑处理器标识符(LPID)、用于指示其由核生成的安全条位(secure strap bit)以及模式寄存器的当前值(其包括指示相应的执行模式的标记)一起馈送到安全属性生成单元中,如框1004所示。这导致生成包括指示其是微代码访问的位编码的n位安全属性。
在框1006中,受限核事务与安全属性一起被发送到IO构造。系统代理将受限事务通过SoC主接口作为常规的I/O读/写事务发送。在并行操作期间,在IO构造的主接口上发送安全属性位。在框1008中,声明(claim)与边带消息总线绑定的受限核事务并且生成边带消息。在允许访问模式寄存器之前由访问控制策略寄存器验证伴随边带消息的安全属性,如框1010所描绘的。在这种情况下,在允许写入模式寄存器之前,指示事务发起器的执行模式的安全属性被验证为与微代码执行模式相对应。然后,模式寄存器被更新到核的当前模式。
一旦用核的当前模式更新了模式寄存器,核生成的任何事务将伴随有那些安全属性。不可变的这些安全属性伴随通过SoC构造和互连的未修改的事务。在目标处,这些属性由确定是允许还是拒绝访问资产的策略实施逻辑来检查。结果是,当访问系统资源(诸如DRA、SRMAM、配置寄存器、MMIO、熔丝等等)时,可用特殊特权对待当在某些受信任执行模式下操作时的CPU发起的事务(诸如CPU微代码事务或SMM事务)。
在图11a和图11b中描绘了根据一个实施例的MMIO写事务之后的模式寄存器更新过程的进一步细节,这两个图各自描绘了组合架构和数据流图。通常,图11a和图11b中的系统组件说明与图9的系统架构900的所选择的组件相对应的示例性实现方式。除图9、图11a和图11b中的共享相同的参考标号(并且因此被类似地配置)的组件之外,图11a和图11b中的所示组件包括SAI生成单元1100、IOSF构造1106、包括映射1110的IOSF2OCP网桥1108、OCP构造1112、OCP设备1114和OCP设备封装器1116。在图11a和图11b每个图中,与带圈数字相邻的框描绘相应的操作和/或事务数据的当前状态。
模式寄存器更新过程始于处理器核902在受信任执行模式下操作并且生成包括到模式寄存器922的微代码写入的事务,以便在模式寄存器中设置指示核在微代码模式下操作的标记。微代码写事务包括特权事务,该特权事务在一个实施例中通过具有高于预定阈值的或以其他方式位于预定义的地址范围的I/O地址而被标识为特权事务。接下来,在存储器构造910中,执行特权I/O检查并且将结果与核902的逻辑处理器ID、用于指示其是否由处理器核生成的安全条位1102以及模式寄存器的当前值一起馈送到SAI生成单元1100中。因此,SAI被编码为函数,
SAI=Fn(isPriviledgedIO(是特权IO),LPID,IsSecure(是安全),Mode RegisterValue(模式寄存器值))
响应于这些输入,SAI生成单元1100中的逻辑输出n位SAI。
包括SAI的微代码写事务被经由可应用互连和接口(未示出)转发到I/O接口914。I/O接口将微代码I/O事务通过IOSF主要接口作为常规的I/O读/写事务发送到IOSF构造1106。同时,SAI位被作为命令属性在IOSF主控接口上发送到边带消息接发块942。在一个实施例中,边带消息接发块声明一个或多个预定义地址范围内的事务作为绑定到边带消息总线的微代码IO事务。一旦事务被声明,边带消息接发块942生成被发送到模式寄存器922的边带消息1118。在允许访问模式寄存器922之前,伴随边带消息1106的SAI由访问控制策略块924中的SAI策略检查逻辑来验证。在这种情况中,SAI由写策略寄存器检查以便验证其是微代码事务。一旦SAI被验证,用处理器核902的当前执行模式更新模式寄存器924(即在本示例中更新到微代码模式)。
一旦模式寄存器中当前执行模式标记已经改变,源自处理器核902的后续事务将包括被编码为指示处理器执行模式是由标记标识的模式的SAI(例如微代码)直到结合至不同的执行模式的改变来更新模式寄存器中的执行模式。通过使用这种多级别安全方案(即,要求模式寄存器首先被与后续事务分离地并且分开地更新),通过简单地伪装成处理器核防止恶意代理访问受保护资产。
图11b示出CPU在SMM中操作时的后续MMIO事务的操作和数据流。过程以处理器核902在操作1生成MMIO事务开始。如之前那样,在操作2基于传递到SAI生成函数-Fn(isPrivilegedIO,LPID,IsSecure,Mode Register Value)的参数的值生成n位。经由可应用互连和接口将MMIO事务(其现在包括SAI)转发到I/O接口914。如在操作3处所描绘的,I/O接口然后将MMIO事务连同其SAI一起通过IOSF构造1108的IOSF主控接口作为常规的I/O事务发送。在MMIO的目标在OCP设备(例如在本示例中OCP设备1114)处的情况下,IOSF2OCP网桥1108声明事务。SAI被作为命令属性在主要接口上发送。SAI由IOSF2OCP网桥1108中的映射1110映射到由OCP构造1112和耦合到其上的OCP设备可解释的OCP安全属性,如在操作4处所描绘的。在一个实施例中,OCP安全属性遵守与SAI相同的限制。在操作5处,OCP设备封装器1116确定是否应当基于OCP安全属性授权访问。在一个实施例中,OCP设备封装器1106包括被配置成用于检查伴随MMIO事务的OCP安全属性并且基于其策略拒绝或允许访问OCP设备1114的读/写策略寄存器。
除助益从受信任执行模式下操作的CPU发起器访问受保护资产之外,可为支持在多种受信任执行模式下的操作的CPU实现对不同信任级别的支持。例如,假设CPU支持以下执行模式:
T0(受信任级别0,例如微代码)
T1(受信任级别1)
T2(受信任级别2,例如引导BIOS)
T3(受信任级别3,例如SMM)
U0(不受信任级别0)
U1(不受信任级别1)
在这种以及类似的配置下,SAI生成单元逻辑和SAI策略实施逻辑可被配置成用于基于不同的信任级别实施访问策略。例如,某些受保护资产仅仅可从微代码模式下执行的发起器进行访问,而其他受保护资产可从SMM模式或更高级别受信任执行模式下执行的发起器进行访问。
在某些实施例中,CPU执行模式可被嵌套。例如,BIOS代码可在其开始引导系统之后立即获得系统管理中断(SMI),而SMM处理机可包括微代码例程以便与SoC中的资源和资产交互。在不同的选项下,一旦模式寄存器已经被更新以便反映受信任执行模式,可用或可不用受信任执行模式级别中的每次改变更新模式寄存器。然而,在一个实施例中,无论何时在受信任和不受信任执行模式之间改变,模式寄存器中的执行模式标记都将被更新。
在此公开的SAI安全访问实施方案提供优于当前方法的许多优点。其定义了可跨SoC设计一致地采用的统一访问控制构建块,诸如SAI生成器、SAI映射器、策略寄存器等等。其以统一的方式应用到SoC构造。通过将持久化属性、SAI与每个事务相关联实现这些益处。通过在事务消息的现有格式内转发SAI数据,可在现有的互连框架(诸如QPI)内实现对添加访问安全措施的支持。SoC可使用SAI信息来对以SoC资产(诸如存储器、非核寄存器、I/O设备等等)为目标的所有发起器生成的事务实施控制访问。当处理器在特定模式下运行时,SAI可用于允许对存储器区域到特定I/O设备的排他访问或者对SoC资产的排他访问。访问控制架构是允许在一致和模块化框架内评估所有访问控制决定的强大的新范例。通过跨互连持久地携带SAI信息,我们简化设计、调试错误并且验证访问控制断言,因为发起器安全角色是跨缓冲事务的所有微架构结构立即可用的。
通过在位于CPU外部的点为在CPU内发起的事务生成SAI,结合指示当发起事务时执行模式为受信任模式的标记,基于恶意软件的实体可被防止伪装成受信任发起器。而且,当实现采用用于在目标为受保护资产的后续事务之前在模式寄存器中设置执行模式标记的分开的事务的多级别安全事务方案时,添加另一层安全性。
接下来转到图12,描绘了根据本发明的片上系统(SOC)设计的实施例。作为特定的说明性示例,SOC 1200被包括在用户设备(UE)中。在一个实施例中,UE是指由最终用户用来通信的任何设备,诸如手持式电话、智能电话、平板计算机、超薄笔记本计算机、具有宽带适配器的笔记本计算机或任何其他类似的通信设备。经常,UE连接到基站或节点,其可能在性质上与GSM网络中的移动站(MS)相对应。
在此,SOC 1200包括两个核-1206和1207。与以上讨论类似,核1206和1207可符合指令集架构,诸如基于架构核TM的处理器、超威半导体公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其定制产品及其持证人或受让人。核1206和1207耦合到与总线接口单元1209和L2高速缓存1210相关联的高速缓存控件1208以便与系统1200的其他部分通信。互连1210包括片上互连(诸如IOSF、AMBA)或上述其他互连,其可能实现所描述的发明的一个或多个方面。
接口1210提供到其他组件的通信通道,诸如订户身份模块(SIM)1230以便与SIM卡接口连接、引导rom 1235以便保持引导代码从而由核1206和1207执行以便初始化并引导SOC 1200、SDRAM控制器1240以便与外部存储器(例如DRAM 1260)接口连接、闪存控制器1245以便与非易失性存储器(例如闪存1265)接口连接、外围控件1205(例如串行外围接口)以便与外围设备接口连接、视频编解码器1220和视频接口1225以便显示并接收输入(例如触摸使能的输入)、GPU 11215以便执行图形相关的计算等等。任何这些接口可结合在此描述的发明的各个方面。
此外,系统示出了用于通信的外围设备,诸如蓝牙模块1270、3G模块1275、GPS1280和WiFi 1285。注意如上所述,UE包括用于通信的无线电。结果是,不需要全部这些外围设备通信。然而,在UE中,将包括用于外部通信的某种形式的无线电。
注意,上述装置、方法和系统可在前述任何电子设备或系统中实现。作为特定的说明,以下附图提供用于利用在此描述的本发明的示例性系统。因为以下更详细地描述系统,公开、描述并从以上讨论重新拜访多个不同的互连。并且非常明显的是,上述这些进步可应用到任何那些互连、构造或架构。
现在参考图13,示出了根据本发明的实施例的存在于计算机系统内的组件的框图。如图13所示,系统1300包括任何组件组合。这些组件可被实现为被适配在计算机系统中的IC、其各部分、分立电子设备、或其他模块、逻辑、硬件、软件、固件或其组合或实现为以其他方式结合在计算机系统的机箱内的组件。还注意,图13的框图旨在示出计算机系统的许多组件的高级视图。然而,将理解的是可省略所示出的某些组件,可存在附加的组件并且在其他实现方式中可出现所示组件的不同安排。结果是,上述发明可在以下说明或描述的互连中的一个或多个的任何部分中实现。
如图13所示,在一个实施例中,处理器1310包括微处理器、多核处理器、多线程处理器、超低压处理器、嵌入式处理器或其他已知处理元件。在所示实现方式中,处理器1310充当主处理单元和中央中枢以便与系统1300的各个组件中的许多组件通信。作为一个示例,处理器1300被实现为片上系统(SoC)。作为特定的说明性示例,处理器1310包括基于 架构核TM的处理器,诸如从美国加利福尼亚州的圣克拉拉市Intel公司可获得的i3、i5、i7或另一个这种处理器。然而,理解的是,其他低功率处理器(诸如从加利福尼亚州的森尼维耳市的超威半导体公司(AMD)可获得的、来自加利福尼亚州的森尼维耳市的MPIS科技公司的基于MIPS的设计、从ARM股份有限公司许可的基于ARM的设计)或其消费者或其被许可人或采用者可而是存在与其他实施例中(诸如苹果A5/A6处理器、高通骁龙处理器或TI OMAP处理器)。注意,这种处理器的定制版本中的许多版本被修改并改变;然而,它们可支持或识别执行如处理器许可方所列出的定义算法的特定指令集。在此,微架构实现方式可改变但是处理器的架构功能通常是一致的。在一个实现方式中,以下进一步讨论与处理器1310的架构和操作有关的某些细节以便提供说明性示例。
在一个实施例中,处理器1310与系统存储器1315通信。作为说明性示例,在实施例中,其可经由多个存储器设备实现以便提供给定的系统存储器量。作为示例,存储器可符合基于电子装置工程联合委员会(JEDEC)低功率双数据速率(LPDDR)的设计,诸如根据JEDECJESD 209-2E(于2009年4月发布)的当前标准,或者被称为LPDDR3or LPDDR4的将提供到LPDDR2的扩展以便增加带宽的下一代LPDDR标准。在各个实现方式中,单个存储设备可具有不同的类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在某些实施例中,这些设备被直接焊接到模板上以便提供低姿态解决方案,而在其他实施例中,这些设备被配置为进而通过给定的连接器耦合到主板的一个或多个存储器模块。并且当然,其他存储器实现方式是可能的,诸如其他类型的存储器模块,例如不同种类的双内联存储器模块(DIMM),包括但不限于微DIMM、迷你DIMM。在特定说明性实施例中,存储器的大小在2GB和16GB之间,并且可被配置为被经由球栅阵列(BGA)焊接到主板上的DDR3LM封装或LPDDR2或LPDDR3存储器。
为了提供信息(诸如数据、应用、一个或多个操作系统等等)的持久存储,大容量存储设备1320也可耦合到处理器1310。在各个实施例中,为了使能更薄和更轻的系统设计以及为了提高系统响应性,可经由SSD实现这种大容量存储设备。然而,在其他实施例中,可主要使用具有更少量SSD存储的硬盘驱动器(HDD)实现具有大容量存储设备以便充当SSD高速缓存从而使能在断电事件期间的上下文状态和其他这种信息的非易失性存储,从而使得快速上电可在系统活动的重新启动时发生。如图13所示,闪存设备1322可经由例如串行外围接口(SPI)耦合到处理器1310。该闪存设备可提供系统软件的非易失性存储,包括基本输入/输出软件(BIOS)和系统的其他固件。
在各实施例中,通过SSD单独地或作为具有SSD高速缓存的盘、光驱动器或其他驱动器实现系统的大容量存储。在某些实施例中,大容量存储与恢复(RST)高速缓存模块一起被实现为SSD或实现为HDD。在各实现方式中,HDD提供320GB-4兆兆字节(TB)以及更高之间的存储,同时RST高速缓存用具有24GB-256GB容量的SSD实现。注意,SSD高速缓存可被配置为单级别高速缓存(SLC)或多级别高速缓存(MLC)选项以便提供适当的响应等级。在仅SSD选项中,该模块可容纳在各位置中,诸如容纳在mSATA或NGFF槽中。作为示例,SSD具有范围从120GB到1TB的容量。
系统1300内可存在各种输入输出(IO)设备。尤其在图13的实施例中示出的是显示器1324,该显示器可以是在机箱的盖件部分内配置的高清晰LCD或LED面板。该显示面板还可提供触摸屏1325,例如外部地在显示面板上适配,从而使得经由用户与该触摸屏的交互,用户输入可被提供到系统中以便使能所期望的操作,例如,针对显示信息、访问信息等等。在一个实施例中,显示器1324可经由可被实现为高性能图形互连的显示器互连耦合到处理器1310。触摸屏1325可经由另一个互连耦合到处理器1310,该互连在实施例中可以是IC互连。如图13中进一步所示,除触摸屏1325之外,通过触摸进行的用户输入还可经由触摸板1330发生,该触摸板可在机箱内配置并且还可耦合到与触摸屏1325相同的I2C互连。
显示面板可在多种模式中操作。在第一模式中,显示面板可被安排在透明状态下,在这种状态下,显示面板对可见光透明。在各实施例中,显示面板的大部分可以是显示器,除外围周围的遮光板之外。当系统在笔记本计算机模式下操作并且显示面板在透明状态下操作时,用户可看到存在于显示面板上的信息同时还能够看到显示器后面的物体。此外,在显示面板上显示的信息可由位于显示器后面的用户看到。或者显示面板的操作状态可以是不透明状态,在这种状态中,可见光不透射通过显示面板。
在平板计算机模式中,系统被折叠合上,从而使得显示面板的后显示面进入止息位置,从而使得当基板的底表面静止在表面上或者由用户握持时,其面朝外面向用户。在平板计算机操作模式中,后显示面扮演显示器和用户接口的角色,因为这个表面可具有触摸屏功能并且可执行常规触摸屏装置的其他已知功能,诸如平板计算机设备。为此,显示面板可包括布置在触摸屏层和前端显示表面之间的透明度调节层。在某些实施例中,透明度调节层可以是电致变色层(EC)、LCD层或EC和LCD层的组合。
在各个实施例中,显示器可具有不同的大小,例如11.6″或13.3″显示屏,并且可具有16:9纵横比以及至少300尼特(nit)的亮度。同样,显示器可具有高清晰度(HD)分辨率(至少1920x1080p)、与嵌入式显示端口(eDP)兼容、并且是具有平板自刷新的低功率面板。
关于触摸屏能力,系统可提供是多点触摸电容性的并且是至少容纳5根手指的显示多点触摸面板。并且在某些实施例中,显示器可容纳10根手指。在一个实施例中,触摸屏可被容纳在防损和防刮玻璃和涂层(例如,Gorilla GlassTM或Gorilla Glass 2TM)中以便减少“手指燃烧”并避免“手指跳跃”。为了提供增强的触摸体验和响应性,在某些实现方式中,触摸面板具有多点触摸功能,诸如在双指缩放期间每静态视图2帧(30Hz),以及小于200ms每帧1cm(30Hz)(在手指到指针上滞后)的单点触摸功能。在某些实现方式中,显示器支持具有也与面板表面齐平的最小屏幕边框的无边界玻璃以及当使用多点触摸时有限的IO干扰。
为了感知计算和其他目的,各种传感器可存在于系统内并且可以用不同方式耦合到处理器1310。某些惯性和环境传感器可通过传感器中枢1340(例如,经由IC互连)耦合到处理器1310。在图13中示出的实施例中,这些传感器可包括加速器1341、环境光传感器(ALS)1342、罗盘1343和陀螺仪1344。其他环境传感器可包括一个或多个热传感器1346,在某些实施例中,该一个或多个热传感器经由系统管理总线(SMBus)总线耦合到处理器1310。
使用平台中存在的各种惯性和环境传感器,可实现许多不同的使用情况。这些使用情况使得能够实现包括感知计算的高级计算操作并且还允许功率管理/电池寿命、安全性和系统响应性的增强。
例如,针对功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,确定平台的位置中的环境光条件并且相应地控制显示器的亮度。因此,在某些情况下,降低了在操作显示器时消耗的功率。
关于安全操作,基于从传感器获得的上下文信息,诸如位置信息,可确定用户是否被允许访问某些安全文件。例如,用户可被允许在工作场所或家庭位置访问这些文件。然而,当平台存在于公共位置时,用户被阻止访问这种文档。在一个实施例中,该确定基于例如经由地标的GPS传感器或相机识别确定的位置信息。其他安全操作可包括在彼此的近距离范围内提供设备配对,例如,在此描述的便携式平台和用户的桌上计算机、移动电话等等。在某些实现方式中,当这些设备如此配对时,经由近场通信实现某些共享。然而,当设备超过某个范围时,可禁用这种共享。此外,当对在此描述的平台和智能电话进行配对时,报警可被配置成当设备在公共位置中时移动超过距彼此多于预先确定的距离时被触发。相对之下,当这些配对的设备位于安全位置中时,例如,工作场所或家庭位置,这些设备可超过这个预先确定的极限而不触发这种报警。
还可使用传感器信息增强响应性。例如,甚至当平台是处于低功率状态时,这些传感器可仍然以相对低的频率运行。相应地,确定平台位置的例如由惯性传感器、GPS传感器等等确定的任何改变。如果尚未触发这种改变,到先前无线中枢的更快连接(诸如Wi-FiTM接入点或类似的无线使能器)发生,因为在这种情况中无需扫描可用的无线网络资源。因此,当从低功率状态唤醒时,实现更高级别的响应性。
应理解的是可使用经由如在此描述的平台内的集成传感器获得的传感器信息使能许多其他使用情况,并且上述示例仅仅是为了说明的目的。使用如在此描述的系统,感知计算系统可允许添加替代输入模态,包括姿势识别,并且使得系统能够使用操作和意图。
在某些实施例中,用于感测用户的存在或移动的一个或多个红外或其他热传感元件或任何其他元件可存在。这种传感元件可包括一起工作、按顺序工作或两者的多个不同的元件。例如,传感元件包括提供惯性感测(诸如光或声音投射)、其后是由例如超声波飞行时间相机或图案化光相机感测的姿势检测的元件。
同样,在某些实施例中,系统包括用于产生照明线路的光发生器。在某些实施例中,该线路提供与虚拟边界(即,空间中的虚或虚拟位置)有关的视觉线索,其中用户通过或穿过虚拟边界或平面的动作被解释为意图与计算系统互动。在某些实施例中,随着计算系统相对于用户过渡到不同的状态,照明线路可改变颜色。照明线路可用于为用户提供空间中的虚拟边界的视觉线索,并且可由系统用于确定计算机相对于用户的状态过渡,包括确定用户希望何时与计算机互动。
在某些实施例中,计算机感测用户位置并且操作以便将用户通过虚拟边界的手的移动解释为指示用户与计算机互动的意图的姿势。在某些实施例中,当用户通过虚拟线路或平面时,由光发生器生成的光可改变,由此向用户提供视觉反馈,即,用户已进入用于提供姿势以便向计算机提供输入的区域。
显示屏可提供计算系统相对于用户的状态过渡的视觉指示。在某些实施例中,第一屏幕被提供在第一状态下,其中用户的存在由系统感测,诸如通过使用这些感测元件中的一个或多个。
在某些实现方式中,系统动作以便感测用户身份,诸如通过面部识别。在此,过渡到第二屏幕可被提供在第二状态下,其中计算系统已经识别用户身份,其中该第二屏幕为用户提供视觉反馈,即,用户已经过渡到新状态。过渡到第三屏幕可发生在第三状态,其中用户已经确认用户的识别。
在某些实施例中,计算系统可使用过渡机制来为用户确定虚拟边界的位置,其中虚拟边界的位置可根据用户和上下文改变。计算系统可生成光,诸如照明线路,以便指示用于与系统互动的虚拟边界。在某些实施例中,计算系统可处于等待状态,并且可产生第一颜色的光。计算系统可检测用户是否已经越过虚拟边界,诸如通过使用感测元件感测用户的存在和移动。
在某些实施例中,如果用户已经被检测到已经越过虚拟边界(诸如用户的双手相比于虚拟边界线更靠近计算系统),计算系统可过渡到用于从用户接收姿势输入的状态,其中用于指示过渡的状态可包括指示虚拟边界的光改变到第二颜色。
在某些实施例中,计算系统可在随后确定是否检测到姿势移动。如果检测到姿势移动,计算系统可继续姿势识别过程,该过程可包括使用来自姿势数据库的数据,该姿势数据库可驻留在计算设备中的存储器中或者可由计算设备以其他方式访问。
如果识别到用户的姿势,计算系统可响应于输入执行功能,并且返回以便接收附加姿势,如果用户位于虚拟边界内。在某些实施例中,如果未识别到姿势,计算系统可过渡到错误状态,其中用于指示错误状态的机制可包括指示虚拟边界的光改变到第三颜色,其中系统返回以便接收附加姿势,如果用户位于虚拟边界内以便与计算系统互动。
如上所述,在其他实施例中,系统可被配置为可在至少两种不同的模式(平板计算机模式和笔记本计算机模式)中使用的可转换平板计算机系统。可转换系统可具有两个面板,即,显示面板和基板,从而使得在平板计算机模式中这两个面板可堆叠安置在彼此的顶部。在平板计算机模式中,显示面板面朝外并且可提供如在常规平板计算机中发现的触摸屏功能。在笔记本计算机模式中,这两个面板可被安排在开放蛤壳配置中。
在各个实施例中,加速器可以是具有至少50Hz的数据速率的3轴加速器。还可包括可以是3轴陀螺仪的陀螺仪。此外,电子罗盘/磁强计可存在。同样,一个或多个接近传感器可被提供(例如,盖件打开以便感测某个人何时(不)接近系统并且调整功率/性能以便延长电池寿命)。对于包括加速器的某些OS传感器融合能力,陀螺仪和罗盘可提供增强的特征。此外,经由具有实时时钟(RTC)的传感器中枢,从传感器唤醒机制可被实现以便当系统的剩余部分处于低功率状态时接收传感器输入。
在某些实施例中,内部盖件/显示器打开开关或传感器指示盖件何时闭合/打开并且可用于将系统置于联网待机或自动地从联网待机状态唤醒。其他系统传感器可包括用于内部处理器、存储器和皮肤温度监测的ACPI传感器以便基于所感测的参数使能对处理器和系统的改变。
在实施例中,OS可以是实现联网待机的OS(在此也被称为Win8CS)。Windows8联网待机或具有类似状态的另一个OS可经由如在此所述的平台提供超低空闲功率以便使能应用在非常低功耗下保持连接到例如基于云的位置。平台可支持3种功率状态,即,屏幕开启(正常)、联网待机(作为默认,关闭状态);以及关机(零瓦特功耗)。因此,在联网待机状态下,平台逻辑地打开(在最小功率水平),即使屏幕是关闭的。在这种平台中,功率管理可以对应用透明并且维持恒定的连接,部分由于用于使得最低加电组件执行操作的分流技术。
同样如图13所见,各种外围设备可经由低引脚数(LPC)互连耦合到处理器1310。在所示实施例中,各种组件可通过嵌入式控制器1335耦合。这种组件可包括键盘1336(例如,经由PS2接口耦合)、风扇1337和热传感器1339。在某些实施例中,触摸板1330也可经由PS2接口耦合到EC1335。此外,根据于2003年10月2日发布的信任计算小组(TCG)TPM规范版本1.2的安全处理器(诸如信任平台模块(TPM))也可经由此LPC互连耦合到处理器1310。然而,理解本发明的范围不限于此方面并且安全信息的安全处理和存储可位于另一个受保护的位置,诸如安全协处理器中的静态随机存取存储器(SRAM)、或作为仅当由安全区域(SE)处理器模式保护时解密的加密数据块。
在特定的实现方式中,外围端口可包括高清媒体接口(HDMI)连接器(其可具有不同的形状因数,诸如全大小、迷你或微型);一个或多个USB端口,诸如根据通用串行总线版本3.0规范(2008年11月)的全大小外部端口,其中当系统处于联网待机状态并且被插入到AC壁式功率中时至少一被加电用于为USB设备充电(诸如智能手机)。此外,可提供一个或多个ThunderboltTM端口。其他端口可包括外部可访问的SD-XC读卡器,诸如用于WW AN的全大小读卡器和/或SIM读卡器(例如,8引脚读卡器)。对于音频,可存在具有立体声和麦克风能力(例如,组合功能)的3.5mm插孔,其支持插孔检测(例如,仅支持使用盖件中的麦克风的耳机或具有线缆中的麦克风的耳机)。在某些实施例中,这种插孔可在立体声耳机和立体声麦克风输入之间被重复安排任务。同样,可提供功率插孔以便耦合到AC砖(AC brick)。
系统1300可以用各种方式(包括无线地)与外部设备通信。在图13中示出的实施例中,存在各种无线模块,其各自可对应于被配置成用于特定的无线通信协议的无线电。用于短距离无线通信(诸如经常通信)的一种方式可以是经由可在一个实施例中经由SMBus与处理器1310通信的近场通信(NFC)单元1345。注意,经由这个NFC单元1345,彼此接近的设备可通信。例如,用户可使得系统1300能够与另一个(例如)便携式设备(用户的智能电话)通信,经由将这两个设备适配为彼此靠近以及使得能够传递信息(诸如标识信息、支付信息、数据(诸如图像数据等等))。还可使用NFC系统执行无线功率传送。
使用在此描述的NFC单元,用户可碰撞并排设备并且通过权衡一个或多个这种设备的线圈之间的耦合将并排设备放置为用于近场耦合功能(诸如近场通信和无线功率传送(WPT))。更确切地,实施例为设备提供有策略地成形的、以及就位的铁氧体材料,以便提供线圈的更好的耦合。每个线圈具有与其相关联的电感,可结合系统的电阻、电容和其他特征选择该电感,以便使能系统的共同谐振频率。
如图13中进一步可见,附加无线单元可包括其他短距离无线引擎,包括WLAN单元1350和蓝牙单元1352。使用WLAN单元1350,可实现根据给定的电子电气工程师协会(IEEE)802.11标准的通信,同时经由蓝牙单元1352,经由蓝牙协议的短距离通信可发生。这些单元可经由USB链路或通用异步接收机发射器(UART)链路与处理器1310通信。或者,这些单元可经由根据外围组件互连ExpressTM(PCIeTM)协议的互连耦合到处理器1310,例如,根据PCIExpressTM规范基础规范版本3.0(与2007年1月17日发布),或者另一个这种协议,诸如串行数据输入输出(SDIO)标准。当然,这些外围设备之间的可被配置在一个或多个插件卡上的实际物理连接可借助被适配到主板上的NGFF连接器。
此外,例如根据蜂窝或其他无线广域协议的无线广域通信可经由可进而耦合到用户身份模块(SIM)1357的WW AN单元1356发生。此外,为了使能接收和使用位置信息,GPS模块1355也可存在。注意,在图13中示出的实施例中,WW AN单元1356和集成捕获设备(诸如相机模块1354)可经由给定的USB协议(诸如USB 2.0或3.0或UART或IC协议)通信。再次,这些单元的实际物理连接可经由将NGFF插件卡适配到在主板上配置的NGFF连接器。
在特定的实施例中,可模块化地提供无线功能,例如用支持Windows 8OS的WiFiTM802.1 lac解决方案(例如,与IEEE 802.1 labgn后向兼容的插件卡)。这个卡可被配置在内部槽中(例如,经由NGFF适配器)。附加模块可提供蓝牙能力(例如,具有后向兼容性的蓝牙4.0)以及无线显示能力。此外,可经由分离的设备或多功能设备提供NFC支持,并且作为示例其可被定位在机箱的前右部分,为了容易接入。仍附加的模块可以是可为3G/4G/LTE和GPS提供支持的WW AN设备。这个模块可被实现在内部(例如,NGFF)槽中。可为WiFiTM、蓝牙、WW AN、NFC和GPS提供集成天线支持,从而使能从WiFiTM到WW AN无线电、根据无线吉比特规范(2010年7月)的无线吉比特(WGiig)的无缝过渡,并且反之亦然。
如上所述,集成相机可被结合在盖件中。作为一个示例,这个相机可以是高分辨率相机,例如具有至少兆像素(MP)并且扩展到6.0MP和之外的分辨率。
为了提供音频输入和输出,可经由数字信号处理器(DSP)1360实现音频处理器,其可经由高清音频(HDA)链路耦合到处理器1310。类似地,DSP 1360可与集成编码器/解码器(CODEC(编解码器))和放大器1362通信,其进而可耦合到可在机箱内实现的输出扬声器1363。类似地,放大器和CODEC 1362可耦合以便从麦克风1365接收音频输入,该麦克风可经由双阵列麦克风(诸如数字麦克风阵列)实现以便提供高质量音频输入从而使能系统内的各个操作的语音激活的控制。还注意,可从放大器/编解码器1362向耳机插孔1364提供音频输出。尽管在图13的实施例中用这些特定的组件示出,应理解的是本发明的范围在此方面不受限制。
在特定的实施例中,数字音频编解码器和放大器能够驱动立体声耳机插孔、立体声麦克风插孔、内部麦克风阵列和立体声扬声器。在不同的实现方式中,编解码器可被集成到音频DSP中或经由HD音频路径耦合到外围控制器中枢(PCH)。在某些实现方式中,除集成立体声扬声器之外,可提供一个或多个低音扬声器,并且扬声器解决方案可支持DTS音频。
在某些实施例中,处理器1310可由外部电压调节器(VR)和集成在处理器管芯内的多个内部电压调节器(被称为全集成电压调节器(FIVR))供电。在处理器中使用多个FIVR使能将组件分组为分离的功率平面,从而使得由FIVR调节功率并将其供应给分组中的那些组件。在功率管理期间,当处理器被置于特定低功率状态时,一个FIVR的给定功率平面可被断电或掉电,同时另一个FIVR的另一个功率平面保持活跃或完全上电。
在一个实施例中,可在某些深睡眠状态下使用可持续功率平面以便为若干I/O信号将I/O引脚上电,诸如处理器和PCH之间的接口、具有外部VR的接口以及具有EC 1335的接口。该可持续功率平面还为支持在深睡眠期间处理器上下文存储在其中的板上SRAM或其他高速缓存存储器的管芯上电压调节器供电。该可持续功率平面还用于将监控并处理各个唤醒源信号的处理器的唤醒逻辑上电。
在功率管理期间,尽管当处理器进入某些深睡眠状态时其他功率平面掉电或断电,该可持续功率平面保持上电以便支持上述组件。然而,当不需要这些组件时,这会导致不必要的功率消耗或耗散。为此,实施例可提供联网待机睡眠状态以便使用专用功率平面维持处理器上下文。在一个实施例中,联网待机睡眠状态使用其本身可存在于与处理器一起的封装中的PCH的资源促成处理器唤醒。在一个实施例中,联网待机睡眠状态促成PCH中的可持续处理器架构功能直至处理器唤醒,这使得能够关闭之前在深睡眠状态期间保持上电的所有不必要的处理器组件,包括关闭所有时钟。在一个实施例中,PCH包含用于在联网待机状态期间控制系统的时间戳计数器(TSC)和联网待机逻辑。用于可持续功率平面的集成电压调节器也可驻留在PCH上。
在实施例中,在联网待机状态期间,集成电压调节器可充当保持上电以便支持专用高速缓存存储器的专用功率平面,当处理器进入深睡眠状态和联网待机状态时,处理器上下文存储在该专用高速缓存存储器中,诸如关键状态变量。该关键状态可包括与处理器相关联的架构、微架构、错误调试状态、和/或类似的状态变量相关联的状态变量。
在联网待机状态期间,来自EC 1335的唤醒源信号可被发送到PCH而不是处理器,从而使得PCH可管理唤醒处理而不是处理器。此外,TSC被维持在PCH中以便促成可持续处理器架构功能。尽管在图13的实施例中用这些特定的组件示出,应理解的是本发明的范围在此方面不受限制。
处理器中的功率控制会带来增强的功率节省。例如,可动态地在核之间分配功率,单个核可改变频率/电压,并且可提供多个深低功率状态以便使能超低功耗。此外,核或独立核的动态控制可通过当其未在使用时将组件断电提供降低的功耗。
某些实现方式可提供特定的功率管理IC(PMIC)以便控制平台功率。使用本解决方案,当在给定的待机状态下时(诸如当处于Win8联网待机状态下时),系统可在延长的时间段(例如,16个小时)期间看到超低(例如,小于5%)电池降级。在Win8空闲状态下,可实现超过例如9个小时的电池寿命(例如,在150尼特)。关于视频播放,可实现较长的电池寿命,例如,全HD视频播放可发生持续最少6个小时。在一个实现方式中,平台可具有例如35瓦特每小时(Whr)的能量容量用于使用SSD的Win8CS以及(例如)40-44Whr用于使用具有RST高速缓存配置的HDD的Win8CS。
特定的实现方式可提供给15W标称CPU热设计功率(TDP)的支持,其中可配置的CPUTDP具有高达近似25W TDP设计点。平台可包括属于上如热特征的最小通风孔。此外,平台是抱枕友好的(因为,不会有热风吹向用户)。可取决于机箱材料实现不同的最大温度点。在塑料机箱的一个实现方式中(至少具有由塑料制成的盖件或基座部分),最大操作温度可以是52摄氏度(C)。并且对于金属机箱的实现方式,最大操作温度可以是46℃。
在不同的实现方式中,安全模块(诸如TPM)可被集成到处理器中并且可以是分立的设备,诸如TPM 2.0设备。具有集成安全模块,也被称为平台信任技术(PTT),BIOS/固件可被使能将某些硬件特征暴露给某些安全特征,包括安全指令、安全引导、防盗技术、身份保护技术、信任执行技术(TXT)以及可管理性引擎技术以及安全用户接口(诸如安全键盘和显示器)。
在此描述的实施例提供相对于当前系统的若干优点和不同。分布式一致和存储器构造架构通过使用并行流水线促成对高速缓存代理和非高速缓存IO代理的并发访问,包括支持由高速缓存和非高速缓存代理对高速缓存行的共享访问,同时维持存储器一致性并执行正确的排序。并行流水线的使用促成在采用单个流水线的常规架构下比可用的更高的存储器吞吐量。通过为高速缓存和非高速缓存代理提供对存储器资源的共享访问,架构提供优于采用用于独立地操作并且不提供共享访问的高速缓存和非高速缓存代理的分离流水线的现有方法的改进。通过将地址匹配硬件和排序硬件解耦,架构使能高性能、用于I/O请求的分布式冲突检查同时保持正确的排序行为。通过使用上述方法将多个虚拟通道映射到更好的冲突类别,架构减少典型的系统通常带来的相关联的区域开销,其中专用资源用于每个虚拟通道,同时实现所要求的QoS。
以下示例涉及进一步的实施例。在实施例中,一种方法包括:从计算机系统中的包括处理器核或CPU的发起器发起事务,所述计算机系统包括存储器构造和包括至少一个I/O构造的I/O存储器互连分层结构,该事务请求访问与该事务的目标相关联的受保护资产;基于该发起器的身份结合标识该发起器正在受信任执行模式下操作的标记在该发起器外部生成不可变安全属性,其中该标记被存储在该发起器外部;将该事务和该不可变安全属性转发到该目标;为该受保护资产实现访问策略,在该访问策略下,如果该发起器正在一个或多个受信任执行模式下执行则许可该发起器所发起的事务访问该受保护资产;以及通过使用该不可变安全属性实施该访问策略。在实施例中,该方法进一步包括当在受信任执行模式下操作该发起器时在该发起器外部设置指示该发起器的当前执行模式是受信任执行模式的当前模式标记。在实施例中,从该发起器发起的该事务包括第二事务,并且该方法进一步包括:在该第二事务之前从该发起器发起第一事务,该第一事务包括标识该事务用于用该发起器的当前执行模式更新在该发起器外部的模式寄存器的标记;生成与该第一事务相对应的不可变安全属性;将该安全属性转发到该模式寄存器;以及用指示该发起器的该当前执行模式的标记更新该模式寄存器。在实施例中,该方法进一步包括通过使用该不可变安全属性实施访问策略,如果该不可变属性指示允许访问该模式寄存器则该访问策略许可访问该模式寄存器。
在该方法的实施例中,该不可变安全属性的生成进一步基于该发起器所生成的安全标记。在实施例中,该不可变安全属性的生成进一步基于确定该事务是预定类型的I/O事务。在实施例中,信任执行模式是微代码执行模式。在实施例中,该目标包括经由存储器控制器操作地耦合到该存储器构造的系统存储器,并且该访问策略在该存储器控制器处实施。
在实施例中,该发起器包括耦合到系统代理的处理器核,并且其中,该安全属性由该系统代理内的嵌入逻辑生成。在实施例中,该安全属性由该存储器构造中的嵌入式逻辑生成。
根据进一步的实施例,装置可配置有用于执行前述方法操作的装置。在实施例中,一种装置包括:多个处理器核;至少一个处理器核被配置成用于在包括至少一个信任执行模式和至少一个非信任执行模式的多个执行模式中执行,存储器构造,每个处理器核操作地耦合到该存储器构造,包括多个I/O构造的I/O互连分层结构,包括多个I/O构造的I/O互连分层结构,包括占据该分层结构的顶层并且操作性地经由I/O接口耦合到该存储器构造的主I/O构造,多个I/O设备,各自耦合到I/O构造,安全属性生成单元,位于每个处理器核外部,被配置成用于根据在多个输入端处接收的输入数据生成用于事务的不可变安全属性,以及多个访问策略实施块,各自被配置成用于实施访问策略,在该访问策略下,事务基于为该事务生成的安全属性被允许访问与该访问策略实施块相关联的受保护资产。当该装置在包括系统存储器的计算机系统中操作时,该系统存储器经由存储器控制器操作地耦合到该存储器构造,该装置被配置成用于从包括在受信任模式下执行的处理器核的发起器发起事务,该事务包括请求访问与目标I/O设备相关联的受保护资产的请求;经由该安全属性生成单元基于该发起器的身份结合标识该发起器正在受信任执行模式下操作的标记生成不可变安全属性;将该事务和该不可变安全属性转发到该目标I/O设备;以及经由与该目标I/O设备相关联的该访问策略实施块以及通过使用该不可变安全属性为该受保护资产实施该访问策略。
在该装置的实施例中,到该安全属性生成单元的该多个输入包括指示该事务是安全的与该事务分离发送的输入。在实施例中,到该安全属性生成单元的该多个输入包括将该事务标识为特权I/O事务的标记。在实施例中,该多个处理器核耦合到系统代理,并且该安全属性包括嵌入在该系统代理内的逻辑。
在实施例中,该装置进一步包括耦合到该安全属性生成单元的输入的模式寄存器,其中该模式寄存器被配置成用于存储标识该处理器核的执行模式的标记。在实施例中,该装置进一步包括经由其将执行模式标记传送到该模式寄存器的边带通道。在实施例中,其中从该发起器发起的该事务包括第二事务,并且其中当在该计算机系统中操作该装置时,该装置被进一步配置成用于在该第二事务之前从该发起器发起第一事务,该第一事务包括标识该事务用于用该发起器的当前执行模式更新在该发起器外部的模式寄存器的标记;生成与该第一事务相对应的不可变安全属性;将该安全属性转发到该模式寄存器;以及用指示该发起器的该当前执行模式的标记更新该模式寄存器。在实施例中,该装置进一步包括访问策略实施逻辑,其被配置成用于基于包括在用于发送到该模式寄存器的安全属性中的标记许可或拒绝对该模式寄存器的访问。
根据进一步的实施例,SOC包括:CPU,该CPU包括多个处理器核;系统代理,该CPU操作地耦合到该系统代理,该系统代理包括安全属性生成单元,该安全属性生成单元被配置成用于为从该CPU发起的事务生成不可变安全属性,该安全属性用于为每个事务标识该CPU的执行模式;I/O互连分层结构,包括多个I/O构造,包括占据该分层结构的顶层并且耦合到该系统代理的主I/O构造;多个I/O设备,各自耦合到I/O构造,该I/O设备中的至少一个与一个或多个受保护资产相关联;多个访问策略实施块,各自被配置成用于针对与I/O设备相关联的一个或多个受保护资产实施访问策略,在该访问策略下,基于为该事务生成的安全属性允许或拒绝具有包括该I/O设备的目标的事务访问与该I/O设备相关联的受保护资产。在该SoC在计算机系统中操作期间,如果该CPU正在不受信任执行模式下操作,源自该CPU的事务不被允许访问受保护资产。
在SoC的实施例中,该系统代理进一步包括模式寄存器,标识该CPU的执行模式的标记存储在该模式寄存器中,并且其中,该安全属性生成单元耦合到该模式寄存器并且采用该执行模式标记作为用于为事务生成安全属性等输入。在实施例中,该SoC被配置成用于实现用于访问受保护资产的多级别安全方案,在该方案下,在受信任执行模式下操作的的情况下,从该CPU发起第一事务以便更新该模式寄存器中的该执行模式标记来指示该CPU正在受信任执行模式下操作,并且在受信任执行模式下操作的情况下,从该CPU发起第二事务以便访问受保护资产。在实施例中,该I/O互连分层结构包括采用第一协议的第一I/O构造,具有第二协议的第二I/O构造经由具有映射器的网桥耦合到该第一I/O构造,该映射器被配置成用于在该第一协议和该第二协议之间映射安全属性。
根据进一步的实施例,提供了用于实现前述方法、装置和SoC的各方面的系统。在实施例中,该系统包括SOC,该SOC具有:中央处理单元(CPU),该CPU包括多个处理器核;系统代理,该CPU操作地耦合到该系统代理,该系统代理包括耦合到存储器控制器的存储器构造和安全属性生成单元,该安全属性生成单元被配置成用于为从该CPU发起的事务生成不可变安全属性;I/O互连分层结构,包括多个I/O构造,各自耦合到至少一个其他I/O构造,该I/O分层结构包括占据该分层结构的顶层并且耦合到该系统代理的主I/O构造;多个I/O设备,各自耦合到I/O构造,包括闪存存储器控制器;多个访问策略实施块,各自被配置成用于针对与I/O设备相关联的一个或多个受保护资产实施访问策略,在该访问策略下,基于为该事务生成的安全属性允许或拒绝具有包括该I/O设备的目标的事务访问与该I/O设备相关联的受保护资产。该系统进一步包括:系统存储器,该系统存储器操作地耦合到该储器控制器;以及闪存存储器,该闪存存储器操作地耦合到具有包括BIOS的第一多个指令和包括存储在其中的操作系统的第二多个指令的该闪存存储器控制器。当该系统操作时,该SoC被配置成用于从包括在受信任模式下执行的处理器核的发起器发起事务,该事务包括请求访问与目标I/O设备相关联的受保护资产的请求;经由该安全属性生成单元基于该发起器的身份结合标识该发起器正在受信任执行模式下操作的标记生成不可变安全属性;将该事务和该不可变安全属性转发到该目标I/O设备;以及经由与该目标I/O设备相关联的该访问策略实施块以及通过使用该不可变安全属性为该受保护资产实施该访问策略。
在实施例中,该系统代理进一步包括耦合到该安全属性生成单元的输入的模式寄存器,其中该模式寄存器被配置成用于存储标识该处理器核的执行模式的标记。在实施例中,从该发起器发起的该事务包括第二事务,并且其中当该系统操作时,该SoC被进一步配置成用于在该第二事务之前从该发起器发起第一事务,该第一事务包括标识该事务用于用该发起器的当前执行模式更新在该发起器外部的模式寄存器的标记;生成与该第一事务相对应的不可变安全属性;将该安全属性转发到该模式寄存器;以及用指示该发起器的该当前执行模式的标记更新该模式寄存器。
尽管已经针对有限数量的实施例描述了本发明,本领域技术人员将认识到从其延伸的多种修改和变形。旨在所附权利要求书涵盖所有这种修改和变形,落入本发明的真实精神和范围中。
设计可经历各种阶段,从创造到模拟到制造。表示设计的数据可以用许多方式表示该设计。首先,如在模拟时有用,可使用硬件描述语言或另一种功能描述语言表示硬件。此外,可在设计过程的某些阶段生产具有逻辑核/或晶体管门的电路级别模型。此外,在某些阶段,大多数设计到达表示硬件模型中的各种设备的物理放置的数据级别。在其中使用常规的半导体制造技术的情况中,表示硬件模型的数据可以是为用于生成集成电路的掩膜指定不同掩膜层上的各种特征的存在或不存在。在设计的任何表示中,数据可以任何形式的非瞬态机器可读介质存储。
如在此使用的模块或组件是指硬件、软件和/或固件的任何组合。作为示例,模块或组件包括与用于存储被适配为由微控制器执行的代码的非瞬态介质的硬件。因此,在一个实施例中,对模块或组件的引用是指被特定地配置成用于识别和/或执行有待在非瞬态介质上保持的代码的硬件。此外,在另一个实施例中,使用模块或组件是指包括被特定地适配成用于由微控制器执行以便执行预定操作的代码的非瞬态介质。并且如可推断出的,在仍另一个实施例中,术语模块(在本示例中)可以指微控制器与非瞬态介质的组合。经常,被示出为分离的模块和/或组件边界通常变化并且可能重叠。例如,第一和第二模块可共享硬件、固件或其组合,同时可能保持某些独立的硬件、软件或固件。在一个实施例中,使用术语逻辑包括硬件(诸如晶体管、寄存器或其他硬件(诸如可编程逻辑器件))。
在一个实施例中,使用短语‘操作地耦合’是指或者直接(例如,经由物理信号路径)或者间接(例如,经由内插在其间的一个或多个组件、接口、控制器等等)耦合到彼此的组件、逻辑和/或模块。此外,在某些实施例中,当装置或系统操作时,组件、逻辑和/或模块可操作地耦合。例如,开关构造被配置成用于将在用于该开关构造的各个入口接口处接收的信号可切换地耦合到用于该开关构造的所选择的出口接口,因此选择性地耦合已耦合到这种入口和出口接口的通信中的组件。
在一个实施例中,使用短语‘用于’或‘被配置成用于’是指安排、放在一起、制造、提供以便销售、导入和/或设计装置、硬件、逻辑或元件以便执行指定的或确定的任务。在本示例中,未在操作的装置或其元件仍“被配置成用于”执行指定的任务,如果其被设计、耦合和/或互连以便执行所述指定的任务。作为纯说明性示例,逻辑门可在操作期间提供0或1。但是,‘被配置成用于’向时钟提供使能信号的逻辑门不包括可提供1或0的每个可能的逻辑门。而是,逻辑门是以某种方式耦合的逻辑门,在操作期间,1或0输出用于使能时钟。再次注意,使用术语“被配置成用于”不要求操作,而是反而集中在装置、硬件和/或元件的潜在状态,在潜在状态中,装置、硬件和/或元件被设计成用于当装置、硬件和/或元件操作时执行特定任务。
此外,在一个实施例中,使用短语‘能够/用于’和/或‘可操作以便用于’是指某个装置、逻辑、硬件和/或元件被设计的方式为使得使能以指定的方式使用装置、逻辑、硬件和/或元件。注意上述,在一个实施例中,使用用于、能够用于或可操作用于是指装置、逻辑、硬件和/或元件的潜在状态,其中该装置、逻辑、硬件和/或元件未在操作但是被设计的方式为使得以指定的方式使用装置。
如在此所使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,使用逻辑电平、逻辑值或逻辑值页被称为1和0,其仅表示二进制逻辑状态。例如,1是指高逻辑电平而0是指低逻辑电平。在一个实施例中,存储单元(诸如晶体管或闪存单元)可以能够保持单个逻辑值或多个逻辑值。然而,已经使用计算机系统中的其他值表示。例如,十进制数还可被表示为1010的二进制值和十六进制字母A。因此,值包括能够被保持在计算机系统中的信息的任何表示。
而且,状态可由值或值的各部分表示。作为示例,第一值(诸如逻辑一)可表示默认值或初始值,而第二值(诸如逻辑零)可表示非默认状态。此外,在一个实施例中,术语复位和设置分别是指默认和经更新的值或状态。例如,默认值可能包括高逻辑值,即,复位,而经更新的值可能包括低逻辑值,即,设置。注意,任何值组合可用于表示任何数量的状态。
上述方法、硬件、软件、固件或代码的实施例可经由存储在由处理元件执行的机器可访问、机器可读、计算机可访问、或计算机可读机制上的指令或代码实现。非瞬态机器可访问/可读介质包括提供(即,存储和/或传输)机器(诸如计算机或电子系统)可读形式的信息。例如,非瞬态机器可访问介质包括随机存取存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存存储器设备;电存储设备;光存储设备;声存储设备;其他形式的用于保持从瞬态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的存储设备;等等,这些有待与可从其接收信息的非瞬态介质区分。
用于编码逻辑以便执行本发明的实施例的指令可存储在系统中的存储器中,诸如DRAM、高速缓存、闪存存储器或其他存储设备。此外,指令可经由网络或通过其他计算机可读介质分布。因此,机器可读机制可包括用于存储或传输机器(例如,计算机)可读形式的信息,但不限于软盘、光盘、致密盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁或光卡、闪存存储器或有形的机器可读存储设备。因此,计算机可读介质包括适用于存储或传输机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形计算机可读介质。
贯穿本说明书对“一个实施例”或“实施例”的引用是指在此结合该实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在一个实施例中”或“在实施例中”在各种地方的出现并非必须全部指代相同的实施例。而且,特定特征、结构或特性可在一个或多个实施例中以任意适当的方式组合。
在前述说明书中,已经参照特定示例性实施例给出了详细描述明。然而,将明显的是可对其作出各种修改和改变而不背离在所附权利要求书中陈述的本发明的更宽泛的精神和范围。因此,将以说明性的意义而不是限制性的意义对待说明书和附图。此外,实施例和其他示例性语言的前述使用无需是指相同的实施例或相同的示例,而是可以指不同的且区别的实施例以及可能相同的实施例。
Claims (27)
1.一种用于用安全属性限制CPU事务的方法,包括:
从计算设备中的包括处理元件的发起器发起事务,所述计算设备包括存储器构造和包括至少一个输入/输出I/O构造的I/O互连分层结构,所述事务请求访问与所述事务的目标相关联的受保护资产;
基于所述发起器的身份结合标识所述发起器正在受信任执行模式下操作的标记在所述发起器外部生成不可变安全属性,其中所述标记被存储在所述发起器外部;
将所述事务和所述不可变安全属性转发到所述目标;
为所述受保护资产实现访问策略,在所述访问策略下,如果发起器正在一个或多个受信任执行模式下执行,则针对所述发起器所发起的事务许可对所述受保护资产的访问;以及
通过使用所述不可变安全属性实施所述访问策略,
其中生成所述不可变安全属性包括执行受限事务检查以及将所述受限事务检查的结果连同处理器核的逻辑处理器ID、用于指示其由处理器核生成的安全条位和模式寄存器的当前值馈送到安全属性生成函数,其中所述模式寄存器的所述当前值包括指示相应的执行模式的标记。
2.如权利要求1所述的方法,其特征在于,进一步包括当在受信任执行模式下操作所述发起器时,在所述发起器外部设置指示所述发起器的当前执行模式是受信任执行模式的当前模式标记。
3.如前述权利要求1-2中任一项所述的方法,其特征在于,从所述发起器发起的所述事务包括第二事务,所述方法进一步包括:
在所述第二事务之前从所述发起器发起第一事务,所述第一事务包括标识所述事务用于用所述发起器的当前执行模式更新在所述发起器外部的所述模式寄存器的标记;
生成与所述第一事务相对应的不可变安全属性;
将所述不可变安全属性转发到所述模式寄存器;以及
用指示所述发起器的所述当前执行模式的标记更新所述模式寄存器。
4.如权利要求3所述的方法,其特征在于,进一步包括通过使用所述不可变安全属性实施访问策略,如果所述不可变属性指示允许访问所述模式寄存器,则所述访问策略许可访问所述模式寄存器。
5.如权利要求1所述的方法,其特征在于,所述不可变安全属性的生成进一步基于所述发起器所生成的安全标记。
6.如权利要求1所述的方法,其特征在于,所述不可变安全属性的生成进一步基于确定所述事务是预定类型的I/O事务。
7.如权利要求1所述的方法,其特征在于,所述受信任执行模式是微代码执行模式。
8.如权利要求1所述的方法,其特征在于,所述目标包括经由存储器控制器操作地耦合到所述存储器构造的系统存储器,并且所述访问策略在所述存储器控制器处实施。
9.如权利要求1所述的方法,其特征在于,所述发起器包括耦合到系统代理的处理器核,并且其中所述不可变安全属性由所述系统代理内的嵌入逻辑生成。
10.如权利要求1所述的方法,其特征在于,所述不可变安全属性由所述存储器构造内的嵌入逻辑生成。
11.一种用于用安全属性限制CPU事务的装置,包括:
多个处理器核,至少一个处理器核被配置成在多个执行模式下操作,所述多个执行模式包括至少一个受信任执行模式和至少一个不受信任执行模式;
存储器构造,所述处理器核中的每一个被操作地耦合至所述存储器构造;
输入/输出I/O互连分层结构;
在所述处理器核的每一个的外部的安全属性生成单元,其被配置成根据在多个输入处接收到的输入数据来为事务生成不可变安全属性;以及
多个访问策略实施块,各自被配置成实施访问策略,在所述访问策略下,基于为所述事务生成的不可变安全属性允许事务访问与访问策略实施块相关联的受保护资产,
其中在所述装置在包括经由存储器控制器操作地耦合至存储器构造的系统存储器的计算机系统中操作时,所述装置被配置成:
从包括在受信任执行模式下执行的处理器核的发起器发起事务,所述事务包括对访问与包括系统存储器或所述I/O设备之一中的一者的目标相关联的受保护资产的请求;
基于所述发起器的身份结合标识所述发起器在获信任执行模式下操作的标记经由安全属性生成单元来生成不可变安全属性;以及
将所述事务和所述不可变安全属性转发到所述目标,
其中生成所述不可变安全属性包括执行受限事务检查以及将所述受限事务检查的结果连同处理器核的逻辑处理器ID、用于指示其由处理器核生成的安全条位和模式寄存器的当前值馈送到所述安全属性生成单元,其中所述模式寄存器的所述当前值包括指示相应的执行模式的标记。
12.如权利要求11所述的装置,其特征在于,所述安全属性生成单元的所述多个输入包括指示所述事务为安全的输入,所述输入是与所述事务分开地发送的。
13.如权利要求11或12所述的装置,其特征在于,所述安全属性生成单元的所述多个输入包括将所述事务标识为特权I/O事务的标记。
14.如权利要求11-12中的任一项所述的装置,其特征在于,还包括耦合至所述安全属性生成单元的所述模式寄存器,其中所述模式寄存器被配置成存储标识所述处理器核的执行模式的标记。
15.如权利要求14所述的装置,其特征在于,还包括边带通道,经由所述边带通道将所述执行模式标记传输到所述模式寄存器。
16.如权利要求15所述的装置,其特征在于,从所述发起器发起的所述事务包括第二事务,并且其中在所述装置在所述计算机系统中操作时,所述装置进一步被配置成:
在所述第二事务之前发起第一事务,所述第一事务包括标识所述事务用于用所述发起器的当前执行模式更新所述模式寄存器的标记;
在所述安全属性生成单元处生成与所述第一事务相对应的不可变安全属性;
将所述不可变安全属性转发到所述模式寄存器;以及
用指示所述发起器的所述当前执行模式的标记更新所述模式寄存器。
17.如权利要求14所述的装置,其特征在于,进一步包括访问策略实施逻辑,所述访问策略实施逻辑被配置成基于发送到所述模式寄存器的消息的不可变安全属性中包括的标记来许可或拒绝对所述模式寄存器的访问。
18.如权利要求11所述的装置,其特征在于,所述多个处理器核被耦合至系统代理,并且所述安全属性生成单元包所述系统代理中嵌入的逻辑。
19.一种片上系统SoC,包括:
多个处理器核;
系统代理,所述多个处理器核操作地耦合到所述系统代理,所述系统代理包括安全属性生成单元,所述安全属性生成单元被配置成用于为从所述多个处理器核中的至少一个具体核发起的事务生成不可变安全属性,所述不可变安全属性用于为每个事务标识所述具体核的执行模式;
输入/输出I/O互连分层结构,包括多个I/O构造;
多个I/O设备,各自耦合到所述多个I/O构造中的I/O构造,所述I/O设备中的至少一个与一个或多个受保护资产相关联;
多个访问策略实施块,各自被配置成用于针对与I/O设备相关联的一个或多个受保护资产实施访问策略,在所述访问策略下,基于为所述事务生成的不可变安全属性允许或拒绝具有包括所述I/O设备的目标的事务访问与所述I/O设备相关联的受保护资产,
其中在所述片上系统SoC在计算机系统中操作期间,如果所述具体核正在不受信任执行模式下操作,源自所述具体核的事务不被允许访问受保护资产,
其中生成所述不可变安全属性包括执行受限事务检查以及将所述受限事务检查的结果连同处理器核的逻辑处理器ID、用于指示其由处理器核生成的安全条位和模式寄存器的当前值馈送到所述安全属性生成单元,其中所述模式寄存器的所述当前值包括指示相应的执行模式的标记。
20.如权利要求19所述的片上系统SoC,其特征在于,所述系统代理进一步包括所述模式寄存器,标识所述具体核的执行模式的标记存储在所述模式寄存器中,并且其中,所述安全属性生成单元耦合到所述模式寄存器并且采用所述执行模式标记作为用于为事务生成不可变安全属性的输入。
21.如权利要求20所述的片上系统SoC,其特征在于,所述片上系统SoC被配置成用于实现用于访问受保护资产的多级别安全方案,在所述方案下,在受信任执行模式下操作的情况下,从所述具体核发起第一事务以便更新所述模式寄存器中的所述执行模式标记来指示所述具体核正在受信任执行模式下操作,并且在受信任执行模式下操作的情况下,从所述具体核发起第二事务以便访问受保护资产。
22.如权利要求19至21中任一项所述的片上系统SoC,其特征在于,所述输入/输出I/O互连分层结构包括采用第一协议的第一I/O构造,具有第二协议的第二I/O构造经由具有映射器的网桥耦合到所述第一I/O构造,所述映射器被配置成用于在所述第一协议和所述第二协议之间映射不可变安全属性。
23.一种用于用安全属性限制CPU事务的系统,包括:
片上系统SoC,包括:
中央处理单元(CPU),包括多个处理器核;
系统代理,所述处理器核中的每一个操作地耦合到所述系统代理,所述系统代理包括耦合到存储器控制器的存储器构造和被配置成用于为从所述CPU发起的事务生成不可变安全属性的安全属性生成单元;
输入/输出I/O互连分层结构,包括多个I/O构造,各自耦合到至少一个其他I/O构造,所述I/O分层结构包括占据所述分层结构的顶层并且耦合到所述系统代理的主I/O构造;
多个I/O设备,各自耦合到I/O构造,包括闪存存储器控制器;以及
多个访问策略实施块,各自被配置成用于针对与I/O设备相关联的一个或多个受保护资产实施访问策略,在所述访问策略下,基于为所述事务生成的不可变安全属性允许或拒绝具有包括所述I/O设备的目标的事务访问与所述I/O设备相关联的受保护资产,
操作地耦合到所述存储器控制器的系统存储器;以及
闪存存储器,操作地耦合到所述闪存存储器控制器,具有包括BIOS的第一多个指令和包括存储在其中的操作系统的第二多个指令;
其中,当所述系统操作时,所述片上系统SoC被配置成用于:
从包括在受信任模式下执行的处理器核的发起器发起事务,所述事务包括对访问与目标I/O设备相关联的受保护资产的请求;
经由所述安全属性生成单元基于所述发起器的身份结合标识所述发起器正在受信任执行模式下操作的标记生成不可变安全属性;
将所述事务和所述不可变安全属性转发到所述目标I/O设备;以及
经由与所述目标I/O设备相关联的所述访问策略实施块以及通过使用所述不可变安全属性为所述受保护资产实施所述访问策略,
其中生成所述不可变安全属性包括执行受限事务检查以及将所述受限事务检查的结果连同处理器核的逻辑处理器ID、用于指示其由处理器核生成的安全条位和模式寄存器的当前值馈送到所述安全属性生成单元,其中所述模式寄存器的所述当前值包括指示相应的执行模式的标记。
24.如权利要求23所述的系统,其特征在于,所述系统代理进一步包括耦合到所述安全属性生成单元的输入的所述模式寄存器,其中所述模式寄存器被配置成用于存储标识所述处理器核的执行模式的标记。
25.如权利要求24所述的系统,其特征在于,从所述发起器发起的所述事务包括第二事务,并且其中,当所述系统操作时,所述片上系统SoC被配置成用于在所述第二事务之前发起第一事务,所述第一事务包括标识所述事务用于用所述发起器的当前执行模式更新所述模式寄存器的标记;
在所述安全属性生成单元处生成与所述第一事务相对应的不可变安全属性;
将所述不可变安全属性转发到所述模式寄存器;以及
用指示所述发起器的所述当前执行模式的标记更新所述模式寄存器。
26.一种其上存储有指令的计算机可读介质,所述指令当由计算机处理器执行时使所述处理器执行如权利要求1至10中任一项所述的方法。
27.一种用于用安全属性限制CPU事务的设备,包括用于执行如权利要求1至10中任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/828,676 | 2013-03-14 | ||
US13/828,676 US8959576B2 (en) | 2013-03-14 | 2013-03-14 | Method, apparatus, system for qualifying CPU transactions with security attributes |
PCT/US2014/019791 WO2014158744A1 (en) | 2013-03-14 | 2014-03-03 | A method, apparatus, system for qualifying cpu transactions with security attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104981815A CN104981815A (zh) | 2015-10-14 |
CN104981815B true CN104981815B (zh) | 2018-10-26 |
Family
ID=51534944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480007223.9A Active CN104981815B (zh) | 2013-03-14 | 2014-03-03 | 用于用安全属性限制cpu事务的方法、装置和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8959576B2 (zh) |
EP (1) | EP2972785B1 (zh) |
KR (1) | KR101702287B1 (zh) |
CN (1) | CN104981815B (zh) |
TW (1) | TWI514191B (zh) |
WO (1) | WO2014158744A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013103339A1 (en) * | 2012-01-04 | 2013-07-11 | Intel Corporation | Bimodal functionality between coherent link and memory expansion |
US9229895B2 (en) * | 2012-09-13 | 2016-01-05 | Intel Corporation | Multi-core integrated circuit configurable to provide multiple logical domains |
US9526285B2 (en) | 2012-12-18 | 2016-12-27 | Intel Corporation | Flexible computing fabric |
US9465938B2 (en) * | 2014-09-22 | 2016-10-11 | Qualcomm Incorporated | Integrated circuit and method for detection of malicious code in a first level instruction cache |
US9996487B2 (en) * | 2015-06-26 | 2018-06-12 | Intel Corporation | Coherent fabric interconnect for use in multiple topologies |
US9733689B2 (en) * | 2015-06-27 | 2017-08-15 | Intel Corporation | Hardware apparatuses and methods to perform transactional power management |
WO2017052575A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Extending multichip package link off package |
US10664179B2 (en) | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
US9690495B2 (en) | 2015-11-03 | 2017-06-27 | International Business Machines Corporation | Emulating memory mapped I/O for coherent accelerators in error state |
US10025741B2 (en) * | 2016-01-13 | 2018-07-17 | Samsung Electronics Co., Ltd. | System-on-chip, mobile terminal, and method for operating the system-on-chip |
US9984009B2 (en) * | 2016-01-28 | 2018-05-29 | Silicon Laboratories Inc. | Dynamic containerized system memory protection for low-energy MCUs |
CN105786571A (zh) * | 2016-02-29 | 2016-07-20 | 珠海市魅族科技有限公司 | 一种移动终端的控制方法及移动终端 |
US10572687B2 (en) * | 2016-04-18 | 2020-02-25 | America as represented by the Secretary of the Army | Computer security framework and hardware level computer security in an operating system friendly microprocessor architecture |
US10318440B2 (en) * | 2016-09-23 | 2019-06-11 | Intel Corporation | Mapping security policy group registers |
US10956325B2 (en) * | 2016-12-12 | 2021-03-23 | Intel Corporation | Instruction and logic for flushing memory ranges in a distributed shared memory system |
US10402273B2 (en) | 2016-12-14 | 2019-09-03 | Microsoft Technology Licensing, Llc | IoT device update failure recovery |
US10715526B2 (en) | 2016-12-14 | 2020-07-14 | Microsoft Technology Licensing, Llc | Multiple cores with hierarchy of trust |
US10416991B2 (en) | 2016-12-14 | 2019-09-17 | Microsoft Technology Licensing, Llc | Secure IoT device update |
CN110268392A (zh) * | 2017-01-10 | 2019-09-20 | 瑞萨电子美国有限公司 | 安全架构和方法 |
CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
EP3407559A1 (en) * | 2017-05-26 | 2018-11-28 | Authentic Vision GmbH | System and method to manage privileges based on the authentication of an uncloneable security device |
US10747908B2 (en) | 2017-06-02 | 2020-08-18 | Apple Inc. | Secure circuit control to disable circuitry |
US11176280B2 (en) * | 2017-06-02 | 2021-11-16 | Apple Inc. | Secure circuit control to disable circuitry |
US10331578B2 (en) * | 2017-06-09 | 2019-06-25 | Intel Corporation | Fine-grained access host controller for managed flash memory |
US20190004978A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | Security role identifier pools allocation |
US11100023B2 (en) * | 2017-09-28 | 2021-08-24 | Intel Corporation | System, apparatus and method for tunneling validated security information |
US10482258B2 (en) * | 2017-09-29 | 2019-11-19 | Nxp Usa, Inc. | Method for securing runtime execution flow |
US20190042473A1 (en) * | 2017-12-28 | 2019-02-07 | Intel Corporation | Technologies for enabling slow speed controllers to use hw crypto engine for i/o protection |
US11132207B2 (en) * | 2017-12-29 | 2021-09-28 | Lattice Semiconductor Corporation | Fast boot systems and methods for programmable logic devices |
GB201806465D0 (en) | 2018-04-20 | 2018-06-06 | Nordic Semiconductor Asa | Memory-access controll |
US11281595B2 (en) * | 2018-05-28 | 2022-03-22 | Intel Corporation | Integration of disparate system architectures using configurable isolated memory regions and trust domain conversion bridge |
GB201810659D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure-Aware Bus System |
GB201810653D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure peripheral interconnect |
GB201810662D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Access On A Secure-Aware Bus System |
US10915465B2 (en) * | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory configured to store predefined set of domain registers for instructions being executed in computer processors |
TWI696920B (zh) * | 2018-10-22 | 2020-06-21 | 大陸商明緯(廣州)電子有限公司 | 無線式參數設定系統 |
WO2020252791A1 (zh) * | 2019-06-21 | 2020-12-24 | 华为技术有限公司 | 一种集成芯片及数据处理方法 |
US11343090B2 (en) | 2019-06-27 | 2022-05-24 | Intel Corporation | Device ID for memory protection |
CN112528345A (zh) | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 通信方法、装置、计算机可读存储介质和芯片 |
EP4052163B1 (en) * | 2019-10-29 | 2023-06-07 | Silicon Mobility SAS | A secure hardware programmable architecture |
TWI727509B (zh) * | 2019-11-20 | 2021-05-11 | 瑞昱半導體股份有限公司 | 具有省電模式且能夠在省電模式盡量省電的通訊裝置 |
GB2596103B (en) | 2020-06-17 | 2022-06-15 | Graphcore Ltd | Dual level management |
GB2596102B (en) | 2020-06-17 | 2022-06-29 | Graphcore Ltd | Processing device comprising control bus |
US11409681B2 (en) | 2020-09-04 | 2022-08-09 | Paypal, Inc. | Computer system communication via sideband processor |
CN115312110A (zh) * | 2021-05-08 | 2022-11-08 | 瑞昱半导体股份有限公司 | 芯片验证系统及其验证方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083659A (zh) * | 2006-05-30 | 2007-12-05 | 美国凹凸微系有限公司 | 便携式设备的安全策略与环境 |
CN102804153A (zh) * | 2010-02-17 | 2012-11-28 | Arm有限公司 | 在安全与非安全存储器区域内存储安全模式页表数据 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657727B2 (en) | 2000-01-14 | 2010-02-02 | Hitachi, Ltd. | Security for logical unit in storage subsystem |
US7426644B1 (en) | 2001-12-05 | 2008-09-16 | Advanced Micro Devices, Inc. | System and method for handling device accesses to a memory providing increased memory access security |
GB0407384D0 (en) * | 2004-03-31 | 2004-05-05 | Ignios Ltd | Resource management in a multicore processor |
US8677141B2 (en) * | 2007-11-23 | 2014-03-18 | Microsoft Corporation | Enhanced security and performance of web applications |
GB2460393B (en) | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
US9002014B2 (en) * | 2008-05-24 | 2015-04-07 | Via Technologies, Inc. | On-die cryptographic apparatus in a secure microprocessor |
DE112010005821T5 (de) * | 2010-08-23 | 2013-06-06 | Empire Technology Development Llc | Kontextwechsel |
US8789170B2 (en) * | 2010-09-24 | 2014-07-22 | Intel Corporation | Method for enforcing resource access control in computer systems |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9171163B2 (en) * | 2013-03-15 | 2015-10-27 | Intel Corporation | Mutually assured data sharing between distrusting parties in a network environment |
-
2013
- 2013-03-14 US US13/828,676 patent/US8959576B2/en active Active
-
2014
- 2014-03-03 WO PCT/US2014/019791 patent/WO2014158744A1/en active Application Filing
- 2014-03-03 CN CN201480007223.9A patent/CN104981815B/zh active Active
- 2014-03-03 EP EP14774872.7A patent/EP2972785B1/en active Active
- 2014-03-03 KR KR1020157021996A patent/KR101702287B1/ko active IP Right Grant
- 2014-03-04 TW TW103107236A patent/TWI514191B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083659A (zh) * | 2006-05-30 | 2007-12-05 | 美国凹凸微系有限公司 | 便携式设备的安全策略与环境 |
CN102804153A (zh) * | 2010-02-17 | 2012-11-28 | Arm有限公司 | 在安全与非安全存储器区域内存储安全模式页表数据 |
Also Published As
Publication number | Publication date |
---|---|
KR101702287B1 (ko) | 2017-02-22 |
TW201506673A (zh) | 2015-02-16 |
EP2972785A1 (en) | 2016-01-20 |
KR20150107834A (ko) | 2015-09-23 |
US20140282819A1 (en) | 2014-09-18 |
WO2014158744A1 (en) | 2014-10-02 |
EP2972785B1 (en) | 2019-10-16 |
US8959576B2 (en) | 2015-02-17 |
EP2972785A4 (en) | 2016-11-02 |
TWI514191B (zh) | 2015-12-21 |
CN104981815A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104981815B (zh) | 用于用安全属性限制cpu事务的方法、装置和系统 | |
TWI524184B (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
US10268815B2 (en) | Authentication of a multiple protocol connection | |
CN104050114B (zh) | 同步端口进入低功率状态的系统、方法和设备 | |
KR101951729B1 (ko) | 터치 데이터의 분산된 전처리와 디스플레이 영역 제어를 위한 방법, 장치, 및 시스템 | |
CN108701109A (zh) | 用于计算机扩展总线的插件机制的方法、装置和系统 | |
US9268948B2 (en) | Secure access enforcement proxy | |
CN107924380A (zh) | 使用业务类别分配高速缓存的方法、装置和系统 | |
CN110532212A (zh) | 用于有效外围组件管理的dvsec的系统、方法和装置 | |
CN109634899A (zh) | 针对pcie进行sris模式选择的系统、方法和装置 | |
CN105830053A (zh) | 用于快速配置机制的装置、方法和系统 | |
CN112579496B (zh) | 减少引脚计数接口 | |
CN108027785A (zh) | 用于对链路拆分进行去偏斜的方法、设备和系统 | |
CN107003971A (zh) | 用于高性能互连中的嵌入式流通道的方法、装置、系统 | |
CN110121703A (zh) | 用于向量通信的系统和方法 | |
US20140141654A1 (en) | Card edge connector ground return | |
US20210389371A1 (en) | Debug data communication system for multiple chips | |
EP4109281A1 (en) | Peer-to-peer link sharing for upstream communications from xpus to a host processor | |
TWI736559B (zh) | 用以針對實體層裝置的組件傳輸資料之控制器 | |
JP2023094532A (ja) | メモリ帯域幅のボトルネックを軽減し、電力管理を容易にするSoCアーキテクチャ | |
CN109643577A (zh) | 用于存储器训练的电参数的多维优化 | |
US20220113967A1 (en) | Accelerator fabric for discrete graphics | |
US20170351430A1 (en) | Method, apparatus, and system for cache coherency using a coarse directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |