CN109145611A - 多密钥密码存储器保护 - Google Patents
多密钥密码存储器保护 Download PDFInfo
- Publication number
- CN109145611A CN109145611A CN201810622316.2A CN201810622316A CN109145611A CN 109145611 A CN109145611 A CN 109145611A CN 201810622316 A CN201810622316 A CN 201810622316A CN 109145611 A CN109145611 A CN 109145611A
- Authority
- CN
- China
- Prior art keywords
- memory
- domain
- shielded
- encryption
- shielded domain
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/72—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 in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了多密钥密码存储器保护。在一个实施例中,装置包括:处理器,用于执行指令,其中指令包括与存储器的存储器位置相关联的存储器访问操作。装置进一步包括:存储器加密控制器,用于:标识存储器访问操作;确定存储器位置与受保护的域相关联,其中受保护的域与存储器的受保护的存储器区域相关联,并且其中受保护的域从与存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;标识与受保护的域相关联的加密密钥;对与存储器访问操作相关联的数据执行密码操作,其中密码操作是基于与受保护的域相关联的加密密钥执行的;以及返回密码操作的结果,其中结果会用于存储器访问操作。
Description
技术领域
本公开总体上关于计算机安全领域,更具体地但非排他地涉及密码存储器保护。
背景技术
对稳健的计算机安全的增长的要求导致了密码学在主流计算机系统和网络中的广泛使用。例如,盘加密可以用于保护驻留在持久盘存储设备上的数据,而网络加密可以用于保护通过网络传送的数据。然而,驻留在系统存储器中的数据通常以明文存储和/或传送,并且因此可能易受攻击。
附图简述
通过在结合所附附图来阅读以下具体实施方式,最好地理解本公开。值得强调的是,根据行业内的标准惯例,各种特征不一定是按比例绘制的,并且仅用于说明。在显式或隐式地示出比例的情况下,它仅提供一个说明性示例。在其他实施例中,为了使讨论清楚,可以任意地扩大或缩小各种特征的尺寸。
图1示出根据某些实施例的示例计算系统的示意图。
图2示出多密钥密码存储器保护系统的示例实施例。
图3示出使用处理器指令配置受保护的域的示例。
图4示出密码存储器保护的示例实施例的状态机。
图5示出密码存储器保护的示例实施例的流程图。
图6A-B、7、8、9和10示出可以根据本文公开的实施例来使用的示例计算机架构。
具体实施方式
下列公开提供用于实现本公开的不同特征的许多不同的实施例或示例。下文中将描述组件和布置的特定示例以简化本公开。当然,这些仅是示例,并不旨在是限制性的。此外,本公开可以在各种示例中重复参考编号和/或字母。此重复只是为了简明和清晰,并且本身不规定所讨论的各实施例和/或配置之间的关系。不同的实施例可具有不同的优点,并且没有特定的优点对于任何实施例一定是必需的。
对稳健的计算机安全的增长的要求导致了密码学在主流计算机系统和网络中的广泛使用以及对越来越复杂和安全的现代密码技术的开发。例如,盘加密可以用于保护驻留在持久盘存储设备上的数据,而网络加密可以用于保护通过网络传送的数据。然而,驻留在系统存储器中的数据通常以明文存储和/或传送,并且因此可能易受攻击。例如,攻击者可以使用多种技术来恶意地访问存储在存储器中的数据,诸如总线扫描和/或存储器扫描等。此外,在一些情形中,这些恶意技术可以用于访问包括以明文存储的加密密钥(诸如用于盘加密的加密密钥)的存储器位置,从而促进对由加密保护的其他数据的进一步的未经授权的访问。
因此,本公开描述了密码存储器保护的各实施例。所描述的实施例可以用于提供存储器加密保护,从而通过堵住与不受保护的或不安全的存储器相关联的洞来提供附加的安全层。例如,在一些实施例中,可以通过在存储器路径或存储器总线上实现密码引擎或控制器来提供存储器加密。以此方式,当驻留在存储器中以及在传送到存储器和从存储器传送期间(例如,当经由存储器总线或存储器路径从存储器传送到处理器时,反之亦然),数据可以被加密和保护。然而,尽管存储器加密对于某些用户和/或使用情形可能是必要的,但是跨计算系统的统一的存储器保护在某些情况下可能是不足的。例如,云服务提供商通常为多个客户或第三方托管数据和/或应用或工作负荷。此外,云服务提供商可以使用存储器加密来提供对所有托管的客户工作负荷的统一保护,例如,使用单个加密密钥。然而,简单地为所有托管的工作负荷提供统一的存储器加密保护——而不区分不同客户的工作负荷——可能是不足的。例如,云服务提供商和/或其客户可能不愿意为所有客户共享相同的加密密钥。相反,云服务提供商和/或其客户可能偏好在每个租户的基础上(例如,每个客户或每个虚拟机)提供存储器加密,以确保每个客户工作负荷使用唯一的加密密钥被单独地保护和隔离。
因此,所描述的实施例提供支持多个密钥并且可配置或可编程的存储器加密。所支持的密钥的数量,例如,可以依赖于实现方式。在一些实施例中,例如,存储器保护引擎可以被配置或编程(例如,由软件)为使用不同的加密密钥和/或算法对存储器的不同区域或页进行加密。例如,在一些实施例中,用户或租户(例如,云服务提供商或客户)可以指定用于存储器的特定区域或页的保护模式为明文(例如,未加密的)、标准的或默认的加密保护(例如,使用默认或全局加密密钥加密的)、或定制的加密保护(例如,使用唯一的加密密钥加密的)。以此方式,可以为不同的租户、客户或保护域单独地提供和配置存储器加密。在一些实施例中,例如,“域”可以视为与特定工作负荷相关联的资源的集合,其可以包括包含与该工作负荷相关联的数据的存储器的任何区域。此外,可以单独地为每个域配置存储器加密,从而允许每个域或工作负荷使用单独的加密密钥被保护。以此方式,可以为不同的租户、客户或用户的工作负荷实现密码隔离。此外,还可以将工作负荷从(例如,云服务提供商的)管理软件隔离,诸如虚拟机管理器。域还可以在明文模式中配置,因为在某些情况下可能不需要为特定域执行存储器加密(例如,为了避免存储器加密、在不同实体之间共享存储器(和I/O)、收回存储器等的性能影响)。
当使用用于持久数据存储的存储器时,诸如存储类存储器(SCM)和其他形式的闪存和固态存储(例如,非易失性双列直插存储器模块(NVDIMM)、直接访问存储(DAS)存储器等),所描述的实施例还可以用于保护数据。例如,当使用存储器而不是基于盘的存储来提供持久数据存储时,如果存储器加密不被支持,则盘加密软件可能不能充分地保护所存储的数据。因此,所描述的实施例可以用于当存储器用于持久数据存储时使用存储器加密来保护数据。
所描述的实施例提供众多特征和优点,包括密码存储器保护(例如,经由存储器路径上的密码引擎)、多密钥加密支持、以及软件可编程可配置性和灵活性。这些特征通过为不同的域、存储器区域、工作负荷、租户、和/或客户使用单独的密钥来实现隔离的加密保护,从而为多个密码隔离的保护域提供支持。以此方式,所描述的实施例可以用于满足某些用户和/或使用情形的提高的安全要求,诸如具有多个第三方或客户的托管的工作负荷的云服务提供商。所描述的实施例还可以用于利用使用用于持久数据存储的存储器(例如,NVDIMM或其他存储类存储器(SCM))的性能益处而不牺牲安全性。
此外,所描述的存储器加密实施例可以使用与任何类型的存储器兼容的通用的以CPU为中心的方法来实现,任何类型的存储器包括易失性存储器(例如,随机存取存储器(RAM),诸如动态RAM(DRAM)、同步动态RAM(SDRAM)以及静态RAM(SRAM))和非易失性存储器(例如,存储类存储器(SCM)、直接访问存储(DAS)存储器、非易失性双列直插存储器模块(NVDIMM)、和/或其他形式的闪存或固态存储)。
所描述的实施例也是可缩放的,因为它们可以使用在未来可以根据需要扩展的指令、命令、参数、和/或数据结构(例如,加密密钥表)来实现。例如,所描述的实施例可以被缩放以为具有64兆兆字节(TB)的可寻址物理存储器的计算系统提供多域存储器加密。此外,所描述的实施例可以被进一步缩放,例如,通过延伸到物理地址(PA)和/或高速缓存标记。
现在将更具体地参照附图来描述可用于实现本公开的特征和功能的示例实施例。
图1示出示例计算系统100的示意图。在各实施例中,系统100和/或其基本组件可以包括贯穿本公开描述的密码存储器保护功能。例如,云服务提供商120通常为多个客户或第三方托管工作负荷130(例如,数据和/或应用)。因此,在一些实施例中,云服务提供商120可以实现多密钥密码存储器保护以在每个租户的基础上提供存储器加密,从而确保每个客户工作负荷130使用唯一的加密密钥被单独地保护和隔离。密码存储器保护还可以由系统100的其他组件实现,诸如边缘设备110。进一步贯穿本公开结合其余附图描述密码存储器保护的示例实施例。
现在将在下文中进一步讨论计算系统100的所示示例中的各个组件。
边缘设备110可包括靠近通信系统100的“边缘”而部署或连接的任何装备和/或设备。在所示实施例中,边缘设备110包括终端用户设备112(例如,台式机、膝上型计算机、移动设备)、物联网(IoT)设备114以及网关和/或路由器116,等等此类示例。边缘设备110可通过一个或多个网络和/或通信协议(诸如,通信网络150)彼此通信和/或与其他远程网络和服务(例如,云服务120)通信。此外,在一些实施例中,某些边缘设备110可以包括贯穿本公开描述的密码存储器保护功能。
终端用户设备112可包括允许或促进与计算系统100的用户交互的任何设备,包括例如,台式计算机、膝上型计算机、平板、移动电话和其他移动设备、以及可穿戴设备(例如,智能手表、智能眼镜、头戴式耳机),等等此类示例。
IoT设备114可包括能够通信和/或能够参与物联网(IoT)系统或网络的任何设备。IoT系统可以指由为特定应用或用例交互操作或协同的多个不同设备(例如,IoT设备114)组成的新的或改善的自组织(ad-hoc)系统和网络。随着越来越多的产品和装备演变成变得“智能”,此类自组织系统正在兴起,这意味着这些自组织系统由计算机处理器控制或监测,并且能够与其他设备通信。例如,IoT设备114可包括计算机处理器和/或通信接口以允许与系统100的其他组件(诸如,与云服务120和/或与其他边缘设备110)交互操作。IoT设备114可以是从头开发出IoT能力的“绿野”(“greenfield”)设备、或通过将IoT能力整合到最初并没有开发出IoT能力的现有传统设备中而创建的“棕野”(“brownfield”)设备。例如,在一些情况下,IoT设备114可从整合在“物体”中或附连至“物体”的传感器和通信模块建立,该“物体”诸如装备、玩具、工具、车辆、活物(例如,植物、动物、人),等等。替代地或附加地,某些IoT设备114可依赖于中介组件(诸如,边缘网关或路由器116)来与系统100的各种组件通信。
IoT设备114可包括用于监测、检测、测量和生成与它们的环境特性相关联的传感器数据和信号的各种类型的传感器。例如,给定的传感器可配置成用于检测一个或多个相应特性,诸如,移动、重量、物理接触、生物属性、温度、风、噪声、光、位置、湿度、辐射、液体、具体的化学化合物、电池寿命、无线信号、计算机通信和带宽,等等此类示例。传感器可包括物理传感器(例如,物理监测组件)和虚拟传感器(例如,基于软件的监测组件)。IoT设备114也可包括用于在其相应的环境中执行各种动作的致动器。例如,致动器可用于选择性地激活某些功能,诸如,切换安全系统(例如,警报、摄像头、锁)或家用装置(例如,音频系统、照明、HVAC装置、车库门)的功率或操作,等等此类示例。
实际上,本公开构想了潜在地无限范围的IoT设备114和相关联的传感器/致动器的使用。IoT设备114可包括,例如,与任何类型的系统100和/或行业相关联的任何类型的装备和/或设备,上述行业包括:交通(例如,汽车、航空)、工业制造、能量(例如,发电厂)、电信(例如,因特网、蜂窝和电视服务提供方)、医疗(例如,保健、制药)、食品加工和/或零售行业,等等。例如,在交通行业,IoT设备114可包括与飞行器、汽车或船舶相关联的装备和设备,诸如,导航系统、自主飞行或驾驶系统、交通传感器和控制器和/或由传感器监测的任何内部机械或电气组件(例如,引擎)。IoT设备114也可包括与工业制造和生产、航运(例如,货物跟踪)、通信网络(例如,网关、路由器、服务器、蜂窝塔)、服务器场、发电厂、风力场、油气管线、水处理和配送、废水收集和处理以及天气监测(例如,温度、风和湿度传感器)等此类示例相关联的装备、设备和/或基础设施。IoT设备114也可包括例如任何类型的“智能”设备或系统,诸如,智能娱乐系统(例如,电视机、音频系统、电子游戏系统)、智能家庭或办公室装置(例如,供热-通风-空气调节(HVAC)装置、冰箱、洗衣机、烘干机、咖啡机)、功率控制系统(例如,自动电、光和HVAC控制)、安全系统(例如,警报、锁、摄像头、运动检测器、指纹扫描器、面部识别系统)以及其他家庭自动化系统,等等此类示例。IoT设备114可静态地定位,诸如,安装在建筑物、墙壁、地板、地面、灯杆、标识牌、水塔或任何其他固定或静态结构上。IoT设备114也可以是移动的,诸如,在车辆或飞行器中的设备、无人机、包裹(例如,用于跟踪货物)、移动设备以及可穿戴设备,等等此类示例。此外,IoT设备114也可以是任何类型的边缘设备110,包括终端用户设备112以及边缘网关和路由器116。
边缘网关和/或路由器116可用于促进至边缘设备110以及来自边缘设备110的通信。例如,网关116可将通信能力提供给最初没有开发出任何此类能力的现有传统设备(例如,“棕野”IoT设备)。网关116也可用于延伸具有短程、专属或以其他方式受限的通信能力的边缘设备110(诸如,具有蓝牙或ZigBee通信能力的IoT设备114)的地理范围。例如,网关116可通过使用其原生通信能力(例如,蓝牙、ZigBee)将前传(front-haul)提供给IoT设备114并且使用另一有线或无线通信介质(例如,以太网、WiFi、蜂窝)将后传(back-haul)提供给其他网络150和/或云服务120以在IoT设备114与远程网络或服务之间充当中介。在一些实施例中,网关116可由专用网关设备实现,或可由通用设备(诸如,另一IoT设备114、终端用户设备112或其他类型的边缘设备110)实现。
在一些实例中,网关116还可单独地或与其他组件(诸如,云服务120和/或其他边缘设备110)结合地实现某些网络管理和/或应用功能(例如,用于IoT设备114的IoT管理和/或IoT应用功能)。例如,在一些实施例中,可向网关设备116推送配置参数和/或应用逻辑或从网关设备116拉取配置参数和/或应用逻辑,从而允许网关116的范围或接近范围内的IoT设备114(或其他边缘设备110)被配置成用于特定的IoT应用或用例。
云服务120可包括通过网络150或在“云”中被远程地托管的服务。例如,在一些实施例中,云服务120可在数据中心中的服务器(例如,应用服务器或数据库服务器)上被远程地托管。云服务120可包括可由边缘设备110利用或可用于边缘设备110的任何服务,包括但不限于,数据和应用托管、计算服务(例如,数据分析、搜索、诊断和故障管理)、安全服务(例如,监控、警报、用户认证)、绘图与导航、地理位置服务、网络或基础设施管理、IoT应用和管理服务、支付处理、音频和视频流送、消息传送、社交联网、新闻和天气,等等此类示例。此外,在一些实施例中,某些云服务120可以包括贯穿本公开描述的密码存储器保护功能。例如,云服务提供商120通常为多个客户或第三方托管工作负荷130(例如,数据和/或应用)。因此,在一些实施例中,云服务提供商120可以实现多密钥密码存储器保护以在每个租户的基础上提供存储器加密,从而确保每个客户工作负荷130使用唯一的加密密钥被单独地保护和隔离。
网络150可用于促进计算系统100的组件之间的通信。例如,边缘设备110(诸如,终端用户设备112和IoT设备114)可使用网络150来彼此通信和/或访问一个或多个远程云服务120。网络150可包括任何数量或类型的通信网络,包括例如,局域网、广域网、公共网络、因特网、蜂窝网络、Wi-Fi网络、短程网络(例如,蓝牙或ZigBee)和/或任何其他有线或无线网络或通信介质。
系统100的计算设备中的任一者、全部或一些可适于执行任何操作系统,包括Linux或其他基于UNIX的操作系统、微软Windows、Windows Server、MacOS、苹果iOS、谷歌安卓、或任何定制和/或专属操作系统,以及适于虚拟化特定操作系统的执行的虚拟机。
尽管图1被描述为包含多个元件或与多个元件相关联,但并非图1的系统100内示出的所有元件都会用于本公开的每一替代实现方式中。此外,结合图1的示例所述的元件中的一个或多个元件可以位于系统100外部,而在其他实例中,某些元件可以被包括在其他所述元件中的一个或多个以及未在所示实现方式中描述的其他元件内,或被包括作为其他所述元件中的一个或多个以及未在所示实现方式中描述的其他元件的一部分。此外,图1所示的某些元件可以与其他组件组合,并用于除了本文中所述的那些目的以外替代的或附加的目的。
多密钥密码存储器保护
图2示出多密钥密码存储器保护系统200的示例实施例。在所示的实施例中,存储器保护系统200包括处理器202、系统代理204和存储器210。如下文进一步描述的,存储器保护系统200提供对存储在存储器210上的数据的密码保护。
处理器202可以用于执行指令、代码、和/或任何其他形式的逻辑或软件,诸如与软件应用相关联的指令。处理器202可以包括可操作以执行指令的逻辑或处理元件的任意组合,指令从存储器加载或直接地实现在硬件中,诸如微处理器、数字信号处理器、现场可编程门阵列(FPGA)、图形处理单元(GPU)、可编程逻辑阵列(PLA)、或专用集成电路(ASIC)等。在一些实施例中,例如,处理器202和/或存储器保护系统200可以使用图6-10的计算机架构来实现。
存储器210可以用于存储信息,诸如在执行期间由处理器202使用的代码和/或数据,和/或与系统200的应用或用户相关联的持久数据。存储器210可以包括任何类型的能够存储信息的组件或其组合,包括易失性存储器(例如,随机存取存储器(RAM),诸如动态RAM(DRAM)、同步动态RAM(SDRAM)以及静态RAM(SRAM))和/或非易失性存储器(例如,存储类存储器(SCM)、直接访问存储(DAS)存储器、非易失性双列直插存储器模块(NVDIMM)、和/或其他形式的闪存或固态存储)。
系统代理204可以用于为处理器202提供各种功能,诸如管理对存储器210和/或系统200的其他资源的访问。在所示的实施例中,例如,系统代理204包括存储器控制器208,用于控制和/或管理对系统200的存储器210的访问。此外,如下文进一步描述的,系统代理204还包括存储器保护控制器206,用于保护存储在存储器210上的数据。在一些实施例中,系统代理204还可以提供处理器202与系统200的其他组件之间的接口(例如,使用直接媒体接口(DMI)和/或PCI快速桥)。在各实施例中,系统代理204可以包括配置为执行本文所述的系统代理204的功能的逻辑元件的任意组合,逻辑元件从存储器或其他非暂态计算机可读介质加载、或直接地实现在硬件中,作为非限制性的示例包括:微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、可编程逻辑阵列(PLA)、专用集成电路(ASIC)、和/或虚拟机(VM)处理器。系统代理204可以与处理器202集成,或者替代地,系统代理204可以实现在通信地耦合或连接到处理器202的单独的芯片上。
存储器控制器208可以用于控制和/或管理对系统200的存储器210的访问。在各实施例中,存储器控制器208可以使用硬件和/或软件逻辑的任意组合来实现,包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、虚拟机(VM)、和/或任何其他类型的电路或逻辑。
在所示的实施例中,系统200为存储器210提供密码存储器保护。在一些实施例中,例如,密码存储器保护可以通过扩展和/或修改特定计算机架构来实现。例如,密码存储器保护可以通过扩展处理器202的功能和/或引入存储器保护控制器206来实现。在所示的实施例中,例如,处理器202被扩展为支持控制寄存器203和可以用于启用和/或配置密码存储器保护的处理器指令,并且存储器保护控制器206被实现为提供密码存储器保护。尽管所示的示例使用分开的逻辑块来描绘存储器保护控制器206和处理器202,但是在实际的实施例中,存储器保护控制器206和处理器202可以集成在一起,或者替代地可以实现为分开的组件。在各实施例中,例如,存储器保护控制器206可以使用硬件和/或软件逻辑的任意组合来实现,包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、虚拟机(VM)、和/或任何其他类型的电路或逻辑。
存储器保护控制器206使用存储器加密来保护存储在存储器210上的数据。在一些实施例中,例如,存储器保护控制器206可以实现在存储器路径或存储器总线上以允许对传送至存储器210的和从其传送的、和/或存储在其上的数据的加密。此外,在一些实施例中,存储器保护控制器206可以是可配置的或可编程的,并且可以包括对多个加密密钥的支持。因此,存储器保护控制器206可以被配置或编程(例如,由软件)为使用不同的加密密钥和/或算法对存储器210的不同区域或页进行加密。以此方式,可以为不同的用户、租户、客户、应用和/或工作负荷单独地提供和配置存储器加密。
例如,在一些实施例中,存储器保护控制器206可以用于定义可以使用存储器加密单独地配置和保护的各种安全的或受保护的域。在一些实施例中,例如,“域”可以视为与特定工作负荷(例如,特定用户或应用的工作负荷)相关联的资源的集合,并且可以包括包含与该工作负荷相关联的数据的存储器的任何区域。例如,云服务提供商的客户工作负荷的受保护的域可以包括与操作系统(O/S)、虚拟机(VM)(例如,在虚拟机管理器(VMM)上运行的VM)、和/或在O/S或VM上运行的任何环-3应用相关联的资源(例如,存储器)。存储器保护控制器206可以允许受保护的域被单独地配置和保护,从而允许每个受保护的域在存储器中通过利用唯一的加密密钥对其相关联的代码和/或数据进行加密而被密码地隔离。以此方式,通过为各种工作负荷定义不同的保护域,不同的用户、客户和/或租户的工作负荷可以被密码地隔离。
在一些实施例中,可以使用处理器指令和/或硬件寄存器来发现和配置系统200的密码存储器保护。例如,在一些实施例中,处理器指令可以用于确定系统200是否支持密码存储器保护,诸如由软件使用的用于标识特定处理器的能力的CPU标识(CPUID)指令。
在确定系统200支持密码存储器保护之后,然后可以使用硬件寄存器来启用和/或配置密码存储器保护,诸如处理器202的控制寄存器203。例如,控制寄存器203可以包括允许软件发现、启用和/或配置系统200的密码存储器保护能力的各种模型专用寄存器(MSR)。在一些实施例中,例如,控制寄存器203可以包括存储器加密能力寄存器、存储器加密激活寄存器、和/或一个或多个存储器加密排除寄存器,如下文进一步描述的。
存储器加密能力寄存器(ME_CAPABILITY_MSR)可以用于允许软件发现系统200的存储器加密能力。例如,软件可以读取ME_CAPABILITY_MSR(例如,使用读MSR(RDMSR)指令)以标识所支持的加密类型和/或算法、可以同时使用的加密密钥的最大数量等。表1示出存储器加密能力寄存器(ME_CAPABILITY_MSR)的示例实施例。
表1:存储器加密能力寄存器(ME_CAPABILITY_MSR)
存储器加密激活寄存器(ME_ACTIVATE_MSR)可以用于激活系统200的密码存储器保护(例如,通过在寄存器字段中设置适当的值)。表2示出存储器加密激活寄存器(ME_ACTIVATE_MSR)的示例实施例。
表2:存储器加密激活寄存器(ME_ACTIVATE_MSR)
存储器加密排除寄存器(ME_EXCLUDE_BASE_MSR和ME_EXCLUDE_MASK_MSR)可以用于从系统200提供的密码存储器保护排除某些存储器区域。例如,在一些实施例中,排除寄存器可以用于标识存储器基址,并且然后可以对与基址匹配的存储器地址绕开存储器加密(例如,允许以明文模式访问被排除或绕开的存储器地址)。
表3示出存储器加密排除掩码寄存器(ME_EXCLUDE_MASK_MSR)的示例实施例,并且表4示出存储器加密排除基址寄存器(ME_EXCLUDE_BASE_MSR)的示例实施例。
表3:存储器加密排除掩码寄存器(ME_EXCLUDE_MASK_MSR)
表4:存储器加密排除基址寄存器(ME_EXCLUDE_BASE_MSR)
在所示的实施例中,存储器保护控制器206维持内部域密钥表207以标识在系统200中已经被配置的受保护的域。密钥表207可以使用任何形式的存储器或存储(例如,RAM)来实现,并且还可以直接地实现在存储器保护控制器206上、存储器210中,和/或使用另一存储器组件。
域密钥表207的条目207a-d各自对应于不同的受保护的域。例如,每个条目207a-d包括密钥或域标识符(ID)、保护模式、和相关联的加密密钥(如果适用)。在一些实施例中,例如,密钥ID可以表示在相关联的受保护的域内的存储器地址的较高阶位。例如,如上文所讨论的,ME_ACTIVATE_MSR寄存器的ME_KEYID_BITS字段指定用于密钥ID的位的数量。在所示的示例中,域密钥表207中的每个密钥ID使用5位来表示。因此,与给定的密钥ID相关联的受保护的域覆盖最高阶5位与密钥ID匹配的所有存储器地址。在所示的实施例中,密钥ID存储为密钥表207中的字段,但是在替代实施例中,密钥ID可以用作到密钥表207中的索引而不是直接地存储在密钥表207中。
此外,在一些实施例中,可以支持多个保护模式,并且可以使用特定的保护模式来保护每个受保护的域。例如,在一些实施例中,所支持的保护模式可以包括明文模式(例如,未加密的)、标准的或默认的加密模式(例如,使用标准的或默认的加密密钥加密的)、和/或定制的加密模式(例如,使用唯一的加密密钥加密的)。因此,密钥表207可以标识与每个受保护的域或密钥ID相关联的保护模式。
例如,在所示的示例中,域密钥表207包括四个条目。第一条目标识对应于密钥ID00000的受保护的域(因此覆盖在最高阶5位中包括00000的所有存储器地址),其以默认的加密模式使用密钥“ABC”来保护。第二条目标识对应于密钥ID 00001的受保护的域(因此覆盖在最高阶5位中包括00001的所有存储器地址),其以明文模式保护并且因此不具有相关联的加密密钥。第三条目标识对应于密钥ID 00010的受保护的域(因此覆盖在最高阶5位中包括00010的所有存储器地址),其以定制的加密模式使用密钥“XYZ”来保护。第四条目标识对应于密钥ID 00011的受保护的域(因此覆盖在最高阶5位中包括00011的所有存储器地址),其以默认的加密模式使用密钥“ABC”来保护。如这些示例所示,使用定制的加密模式保护的域具有唯一的密钥(“XYZ”),使用默认的加密模式保护的域共享加密密钥(“ABC”),而以明文模式保护的域不被加密并且因此不具有相关联的密钥。
在一些实施例中,可以使用由处理器202实现的处理器指令来定义和/或配置受保护的域,诸如结合图3并且贯穿本公开描述的“平台配置”(PCONFIG)指令。PCONFIG指令,例如,可以用于通过对存储器保护控制器206的密钥表207中的新条目进行编程(或者修改现有的条目)来定义和/或配置受保护的域。以此方式,可以使用PCONFIG指令来以编程方式(例如,由管理软件)定义和配置受保护的域。
图3示出使用处理器指令配置受保护的域的示例300。在一些实施例中,例如,处理器可以实现可以用于配置与存储器保护系统相关联的受保护的域的指令。例如,处理器指令可以是“平台配置”(PCONFIG)指令、“受信任平台动作管理程序”(TPAS)指令、和/或任何其他合适类型的指令。
“平台配置”(PCONFIG)指令,例如,可以用于通过对存储器保护控制器的域密钥表(例如,来自图2的存储器保护控制器206的域密钥表207)中的新条目进行编程(或修改现有的条目)来定义和/或配置受保护的域。以此方式,可以使用PCONFIG指令来以编程方式定义和配置受保护的域。一旦受保护的域已经使用PCONFIG指令被配置,与受保护的域相关联的存储器地址以由用于受保护的域的配置指定的方式被保护。例如,当使用加密保护时,数据在被写入受保护的域内的存储器地址之前被加密,并且从受保护的域内的存储器地址读取的数据在被返回到请求的处理器之前被解密。
在一些实施例中,PCONFIG指令可能要求某个特权等级或特权环。例如,处理器可以支持特权等级或特权环的层级结构以限制对某些资源的访问。在一些实施例中,特权环0可以是最低限制级别,而具有更高数字的特权环可以是越来越限制性的。例如,特权环0可以用于系统管理软件(例如,操作系统内核和设备驱动程序),而特权环3可以用于用户空间应用。因此,在一些实施例中,PCONFIG指令可以是仅可以由在最高特权环中执行的软件(例如,用于配置受保护的域的管理软件)使用的环-0指令。替代地或附加地,PCONFIG指令可以是可以由任何用户空间应用用于配置其自己的受保护的域的环-3指令。
图3示出与PCONFIG指令相关联的示例调用流程300。所示的示例标识使用PCONFIG指令执行域配置的软件310与存储器保护控制器320之间的调用流程300。存储器保护控制器320可以包括任何引擎、控制器、或提供密码存储器保护的其他组件(例如,图2的存储器保护控制器206)。软件310可以包括用于配置由存储器保护控制器320保护的域的任何软件,诸如虚拟机管理器和/或其他管理软件。所示的调用流程以软件310选择用于对加密密钥进行编程以用于特定域的密钥编程模式(调用302a)开始。例如,如下文进一步讨论的,软件310可以直接地为域指定密钥,或者可以请求生成随机密钥。软件310然后可以调用PCONFIG处理器指令以执行域配置(调用302b)。当PCONFIG指令被调用时,存储器保护控制器320对特定域的密钥和保护模式进行编程(调用302c)。存储器保护控制器320然后将状态代码返回至软件310(调用302d),并且状态代码然后由软件310处理(调用302e)。
在一些实施例中,PCONFIG指令可以支持用于配置和管理受保护的域的各种叶函数。当PCONFIG指令被执行时,例如,可以在硬件寄存器(例如,EAX寄存器)中指定要调用的特定叶函数。在一些实施例中,还可以在硬件寄存器(例如,RBX/RCX/RDX寄存器)中指定由特定叶函数使用的参数。
表5示出可以用于实现对多个叶函数的支持的PCONFIG叶编码的示例。尽管仅定义一个叶函数(KEY_PROGRAM叶),但是可以使用保留的叶编码来定义附加的叶函数以扩展PCONFIG指令的功能。
表5:PCONFIG叶函数编码
PCONFIG指令的密钥编程叶函数(KEY_PROGRAM)可以用于对密钥进行编程以用于受保护的域。在一些实施例中,可以在密钥编程结构(KEY_PROGRAM_STRUCT)中指定由密钥编程叶函数使用的参数,并且可以在硬件寄存器(例如,RBX寄存器)中指定密钥编程结构的地址。表6示出密钥编程结构(KEY_PROGRAM_STRUCT)的示例实施例。
表6:密钥编程结构(KEY_PROGRAM_STRUCT)
如表6所示,密钥编程结构标识被编程的特定域的密钥ID,并且其还指定密钥编程命令。在一些实施例中,例如,密钥编程叶函数可以支持多个密钥编程命令,并且可以在密钥编程结构中指定期望的命令。此外,在一些实施例中,密钥编程结构还可以包括可以用于对密钥编程叶函数的后续扩展的(多个)保留字段。
表7示出可以由密钥编程叶函数支持的密钥编程命令的示例。
表7:密钥编程命令
在执行密钥编程叶函数之后,可以在硬件寄存器中指定返回值或状态代码以指示密钥编程函数是否是成功的。表8示出可以由密钥编程叶函数返回的状态代码的示例。
表8:由密钥编程叶函数(KEY_PROGRAM)返回的状态代码
尽管所示的实施例使用PCONFIG处理器指令来执行域配置,但是其他实施例可以使用替代的和/或附加的方法用于域配置。例如,在一些实施例中,可以使用硬件寄存器来执行域配置。例如,可以实现PCONFIG模型专用寄存器(MSR)以用于执行域配置,从而允许软件通过写入PCONFIG MSR(例如,执行具有用于PCONFIG MSR的在诸如ECX寄存器的寄存器中传递的索引的WRMSR指令)来调用PCONFIG操作。此外,PCONFIG操作的某些参数(及其相关联的叶函数和命令)可以在硬件寄存器中传递。例如,密钥编程结构(KEY_PROGRAM_STRUCT)的地址可以在硬件寄存器中传递,诸如EDX寄存器、EAX寄存器、或这两个寄存器(例如,用于64位存储器地址)。然后可以以与上文所述类似的方式执行PCONFIG操作。
此外,在一些实施例中,PCONFIG操作可以利用经包裹的对象块(blob)以用于域密钥编程。以此方式,可以对域密钥进行编程而无需对管理软件展现密钥。在一些实施例中,例如,附加的PCONFIG叶函数可以实现为使密钥能被包裹并且然后在被解包裹之后随后被编程到存储器保护控制器320。
下文提供用于实现PCONFIG指令的示例伪代码:
图4示出密码存储器保护的示例实施例的状态机400。状态机400示出使用密码存储器保护来保护的域的生命周期。例如,状态机400包括用于特定域的三个保护状态:不受保护的状态401、默认的保护状态402、以及定制的保护状态403。状态机400基于密钥编程命令在这些状态之间转换。例如,在一些实施例中,与PCONFIG指令的密钥编程叶相关联的密钥编程命令(例如,如结合图3和表7描述的)可以用于在状态机400的状态之间转换。
在系统启动或重置之后,特定域的状态机400的初始状态是不受保护的状态401,其中该域以明文(例如,未加密的)模式来保护。
一旦对系统激活存储器加密(例如,使用表2的存储器加密激活寄存器(ME_ACTIVATE_MSR)),状态机400转换到默认的保护状态402,其中该域以默认的加密模式(例如,使用默认或全局加密密钥)来保护。
如果在不受保护的状态401或默认的保护状态402中时发布“设置密钥”命令(例如,表7的KD_SET_KEY_DIRECT或KD_SET_KEY_RANDOM),则状态机400转换到定制的保护状态403,其中该域使用唯一的加密密钥来保护。如果在定制的保护状态403中时发布另一“设置密钥”命令(例如,表7的KD_SET_KEY_DIRECT或KD_SET_KEY_RANDOM),则对新密钥进行编程以用于该域,并且状态机400保持在定制的保护状态403中。
如果在定制的保护状态403中时发布“清除密钥”命令(例如,表7的KD_CLEAR_KEY),则用于该域的唯一的加密密钥被清除,并且状态机400转换回到默认的保护状态402,其中该域以默认的加密模式(例如,使用默认或全局加密密钥)来保护。
如果在默认的保护状态402或定制的保护状态403中时发布“无密钥”命令(例如,表7的KD_NO_KEY),则状态机400转换回到不受保护的状态401,其中该域以明文(例如,未加密的)模式来保护。
图5示出密码存储器保护的示例实施例的流程图500。在一些实施例中,可以使用贯穿本公开描述的实施例和功能实现流程图500。
流程图可以在框502处以标识用于特定的存储器位置的存储器访问操作开始。存储器访问操作,例如,可以是用于从存储器位置读取数据的读操作,或用于将数据写入存储器位置的写操作。
流程图然后可以前进至框504以确定存储器位置是否与受保护的域相关联。例如,“域”可以视为与特定工作负荷或执行上下文相关联的资源的集合,其可以包括包含与该工作负荷相关联的数据的存储器的任何区域。此外,在一些情形中,可以存在与不同的租户、用户、和/或客户(例如,云服务提供商的客户)相关联的多个工作负荷。因此,可以将受保护的域定义为为各种工作负荷提供存储器加密保护。此外,每个受保护的域可以使用各种保护模式来配置,包括明文模式(例如,未加密的)、标准的或默认的加密模式(例如,使用标准的或默认的加密密钥加密的)、和/或定制的加密模式(例如,使用唯一的加密密钥加密的)。以此方式,可以为不同的租户、用户和/或客户的工作负荷实现密码隔离。在一些实施例中,例如,可以使用用于标识受保护的域的保护模式、加密类型、和/或加密密钥的命令、指令和/或寄存器来创建和/或配置受保护的域。
如果在框504处确定存储器位置与受保护的域不相关联(和/或使用明文模式来保护),则流程图然后可以前进至框512以执行存储器访问操作(例如,如其将会被正常地执行)。
如果在框504处确定存储器位置与受保护的域相关联(和/或使用默认的或定制的加密模式来保护),则流程图然后可以前进至框506以标识与受保护的域相关联的加密密钥。在一些实施例中,还可以标识与受保护的域相关联的加密类型。
流程图然后可以前进至框508以使用用于受保护的域的加密密钥对与存储器位置相关联的数据执行密码操作(例如,加密和/或解密操作)。例如,对于读操作,可以从存储器位置获得数据,并且然后可以使用所标识的加密密钥对数据进行解密。对于写操作,可以首先使用所标识的加密密钥来加密要写入存储器位置的数据。
流程图然后可以前进至框510以返回密码操作(例如,加密和/或解密操作)的结果,其中密码操作的结果会用于存储器访问操作。例如,返回经解密的数据以用于读操作,并且返回经加密的数据以用于写操作。流程图然后可以前进至框512以执行存储器访问操作(例如,使用密码操作的结果)。
在此处,流程图可以完成。然而,在一些实施例中,流程图可以重新开始和/或可以重复某些框。例如,在一些实施例中,流程图可在框502处重新开始,以便继续处理附加的存储器访问操作。
示例计算架构
图6-10示出根据本文公开的实施例的可以使用的示例计算机架构。例如,在各实施例中,图6-10的计算机架构可以结合贯穿本公开描述的密码存储器保护引擎、架构、和功能使用,和/或可以用于实现贯穿本公开描述的密码存储器保护引擎、架构、和功能。本领域中已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他计算机架构、系统设计和配置也是合适的。一般地,能够包含如本文中所公开的处理器和/或其他执行逻辑的各种各样的系统或电子设备一般都是合适的。
图6A是示出根据本发明的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线的框图。图6B是示出根据本发明的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核的框图。图6A-B中的实线框示出了有序流水线和有序核,而可选增加的虚线框示出了寄存器重命名的、乱序发布/执行流水线和核。考虑到有序方面是乱序方面的子集,将描述乱序方面。
在图6A中,处理器流水线600包括取出级602、长度解码级604、解码级606、分配级608、重命名级610、调度(也被称为分派或发布)级612、寄存器读取/存储器读取级614、执行级616、写回/存储器写入级618、异常处置级622和提交级624。
图6B示出处理器核690,其包括耦合至执行引擎单元650的前端单元630,该前端单元和执行引擎单元两者均耦合至存储器单元670。核690可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核、或混合或替代的核类型。作为又一选项,核690可以是专用核,诸如例如,网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(GPGPU)核、图形核,等等。
前端单元630包括耦合到指令高速缓存单元634的分支预测单元632,该指令高速缓存单元耦合到指令转换后备缓冲器(TLB)636,该指令转换后备缓冲器耦合到指令取出单元638,指令取出单元耦合到解码单元640。解码单元640(或解码器)可对指令解码,并且生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元640可使用各种不同的机制来实现。合适机制的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核690包括存储用于某些宏指令的微代码的微代码ROM或其他介质(例如,在解码单元640中,或以其他方式在前端单元630内)。解码单元640耦合到执行引擎单元650中的重命名/分配器单元652。
执行引擎单元650包括重命名/分配器单元652,该重命名/分配器单元652耦合到引退单元654和一个或多个调度器单元的集合656。调度器单元656表示任何数目的不同调度器,包括预留站、中央指令窗等。调度器单元656耦合到物理寄存器堆单元658。每个物理寄存器堆单元658表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一种或多种不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器堆单元658包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器和通用寄存器。物理寄存器堆单元658由引退单元654重叠,以展示可实现寄存器重命名和乱序执行的各种方式(例如,使用重排序缓冲器和引退寄存器堆;使用未来文件、历史缓冲器、引退寄存器堆;使用寄存器映射和寄存器池,等等)。引退单元654和物理寄存器堆单元658耦合到执行集群660。执行集群660包括一个或多个执行单元的集合662以及一个或多个存储器访问单元的集合664。执行单元662可执行各种操作(例如,移位、加法、减法、乘法)并可对各种数据类型(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但是其他实施例可包括仅一个执行单元或全都执行所有功能的多个执行单元。调度器单元656、物理寄存器堆单元658和执行集群660示出为可能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线,和/或各自具有其自身的调度器单元、物理寄存器堆单元和/或执行集群的存储器访问流水线——并且在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行集群具有存储器访问单元664的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以是乱序发布/执行,并且其余流水线可以是有序的。
存储器访问单元的集合664耦合到存储器单元670,该存储器单元670包括数据TLB单元672,该数据TLB单元672耦合到数据高速缓存单元674,该数据高速缓存单元674耦合到第二级(L2)高速缓存单元676。在一个示例性实施例中,存储器访问单元664可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合到存储器单元670中的数据TLB单元672。指令高速缓存单元634还耦合到存储器单元670中的第二级(L2)高速缓存单元676。L2高速缓存单元676耦合到一个或多个其他级别的高速缓存,并最终耦合到主存储器。
作为示例,示例性寄存器重命名的乱序发布/执行核架构可如下所述地实现流水线600:1)指令取出638执行取出级602和长度解码级604;2)解码单元640执行解码级606;3)重命名/分配器单元652执行分配级608和重命名级610;4)调度器单元656执行调度级612;5)物理寄存器堆单元658和存储器单元670执行寄存器读取/存储器读取级614;执行集群660执行执行级616;6)存储器单元670和物理寄存器堆单元658执行写回/存储器写入级618;7)各单元可牵涉到异常处置级622;以及8)引退单元654和物理寄存器堆单元658执行提交级624。
核690可支持一个或多个指令集(例如,x86指令集(具有已与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集(具有诸如NEON的任选的附加扩展)),其中包括本文中描述的(多条)指令。在一个实施例中,核690包括用于支持紧缩数据指令集扩展(例如,AVX1、AVX2)的逻辑,由此允许使用紧缩数据来执行由许多多媒体应用使用的操作。
应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,各种方式包括时分多线程化、同时多线程化(其中单个物理核为物理核正在同时多线程化的线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后的诸如超线程化技术中的同时多线程化)。
尽管在乱序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所展示的处理器的实施例还包括分开的指令和数据高速缓存单元634/674以及共享的L2高速缓存单元676,但是替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如,第一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
在一些实施例中,可以使用图6A-B的处理器架构来实现贯穿本公开描述的平台配置(PCONFIG)指令。例如,指令高速缓存634可以包括PCONFIG指令以用于基于特定的存储器区域、保护模式、加密密钥、和/或加密类型来配置受保护的域。因此,可以从指令高速缓存634检取PCONFIG指令并且由解码器640对其解码,并且执行单元662然后可以编程或配置存储器加密控制器(例如,图2的存储器保护控制器206)中的受保护的域。
图7是根据本发明的多个实施例可以具有多于一个的核、可以具有集成存储器控制器以及可以具有集成图形器件的处理器700的框图。图7中的实线框示出具有单一核702A、系统代理710、一组一个或多个总线控制器单元716的处理器700,而任选增加的虚线框示出具有多个核702A-N、系统代理单元710中的一组一个或多个集成存储器控制器单元714、以及专用逻辑708的替代处理器700。
因此,处理器700的不同实现可包括:1)CPU,其中专用逻辑708是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核702A-N是一个或多个通用核(例如,通用有序核、通用乱序核、这两者的组合);2)协处理器,其中核702A-N是旨在主要用于图形和/或科学(吞吐量)的大量专用核;以及3)协处理器,其中核702A-N是大量通用有序核。因此,处理器700可以是通用处理器、协处理器或专用处理器,诸如例如,网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、嵌入式处理器,等等。该处理器可以被实现在一个或多个芯片上。处理器700可以是一个或多个基板的一部分,和/或可使用多种工艺技术(诸如例如,BiCMOS、CMOS、或NMOS)中的任何技术被实现在一个或多个基板上。
存储器层级结构包括核内的一个或多个高速缓存级别、一个或多个共享高速缓存单元的集合706、以及耦合到集成存储器控制器单元的集合714的外部存储器(未示出)。共享高速缓存单元的集合706可包括一个或多个中间级别的高速缓存,诸如,第二级(L2)、第三级(L3)、第四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或以上各项的组合。尽管在一个实施例中,基于环的互连单元712将集成图形逻辑708、共享高速缓存单元的集合706以及系统代理单元710/集成存储器控制器单元714互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,维护一个或多个高速缓存单元706和核702A-N之间的一致性。
在一些实施例中,一个或多个核702A-N能够实现多线程化。系统代理710包括协调并操作核702A-N的那些组件。系统代理单元710可包括例如功率控制单元(PCU)和显示单元。PCU可以是对核702A-N以及集成图形逻辑708的功率状态进行调节所需的逻辑和组件,或可包括这些逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核702A-N在架构指令集方面可以是同构的或异构的;即,核702A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。
现在参考图8,所示出的是根据本发明一个实施例的系统800的框图。系统800可以包括一个或多个处理器810、815,这些处理器耦合到控制器中枢820。在一个实施例中,控制器中枢820包括图形存储器控制器中枢(GMCH)890和输入/输出中枢(IOH)850(其可以在分开的芯片上);GMCH 890包括存储器和图形控制器,存储器840和协处理器845耦合到该存储器和图形控制器;IOH 850将输入/输出(I/O)设备860耦合到GMCH890。或者,存储器和图形控制器中的一个或这两者被集成在(如本文中所描述的)处理器内,存储器840和协处理器845直接耦合到处理器810,并且控制器中枢820与IOH 850处于单个芯片中。
在图8中以虚线表示附加的处理器815的可选的性质。每一处理器810、815可包括本文中描述的处理核中的一个或多个,并且可以是处理器700的某一版本。
存储器840可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢820经由诸如前端总线(FSB)之类的多分支总线、诸如快速路径互连(QPI)之类的点对点接口、或者类似的连接895来与处理器810、815进行通信。
在一个实施例中,协处理器845是专用处理器,诸如例如,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器,等等。在一个实施例中,控制器中枢820可以包括集成图形加速器。
在物理资源810、815之间可以存在包括架构、微架构、热、功耗特性等一系列品质度量方面的各种差异。
在一个实施例中,处理器810执行控制一般类型的数据处理操作的指令。嵌入在这些指令内的可以是协处理器指令。处理器810将这些协处理器指令识别为具有应当由附连的协处理器845执行的类型。因此,处理器810在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器845。协处理器845接受并执行所接收的协处理器指令。
现在参考图9,所示为根据本发明的实施例的更具体的第一示例性系统900的框图。如图9中所示,多处理器系统900是点对点互连系统,并且包括经由点对点互连950耦合的第一处理器970和第二处理器980。处理器970和980中的每一个都可以是处理器700的某一版本。在本发明的一个实施例中,处理器970和980分别是处理器810和815,而协处理器938是协处理器845。在另一实施例中,处理器970和980分别是处理器810和协处理器845。
处理器970和980示出为分别包括集成存储器控制器(IMC)单元972和982。处理器970还包括作为其总线控制器单元的一部分的点对点(P-P)接口976和978;类似地,第二处理器980包括P-P接口986和988。处理器970、980可以经由使用点对点(P-P)接口电路978、988的P-P接口950来交换信息。如图9中所示,IMC 972和982将处理器耦合到相应的存储器,即存储器932和存储器934,这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器970、980可各自经由使用点对点接口电路976、994、986、998的各个P-P接口952、954与芯片组990交换信息。芯片组990可以任选地经由高性能接口939来与协处理器938交换信息。在一个实施例中,协处理器938是专用处理器,诸如例如,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器,等等。
共享高速缓存(未示出)可被包括在任一处理器中,或在这两个处理器的外部但经由P-P互连与这些处理器连接,使得如果处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在共享高速缓存中。
芯片组990可以经由接口996耦合到第一总线916。在一个实施例中,第一总线916可以是外围部件互连(PCI)总线或诸如PCI快速总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图9中所示,各种I/O设备914可连同总线桥918一起耦合到第一总线916,总线桥918将第一总线916耦合到第二总线920。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器915耦合到第一总线916。在一个实施例中,第二总线920可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线920,这些设备包括例如键盘和/或鼠标922、通信设备927以及存储单元928,该存储单元928诸如可包括指令/代码和数据930的盘驱动器或者其他大容量存储设备。此外,音频I/O 924可以被耦合到第二总线920。注意,其他架构是可能的。例如,代替图9的点对点架构,系统可以实现多分支总线或其他此类架构。
现在参照图10,所示出的是根据本发明的实施例的SoC 1000的框图。图7中相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC上的任选的特征。在图10中,互连单元1002被耦合至:应用处理器1010,该应用处理器包括一个或多个核1002A-N的集合以及共享高速缓存单元1006;系统代理单元1010;总线控制器单元1016;集成存储器控制器单元1014;一组或一个或多个协处理器1020,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1030;直接存储器存取(DMA)单元1032;以及用于耦合至一个或多个外部显示器的显示单元1040。在一个实施例中,协处理器1020包括专用处理器,诸如例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器,等等。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或此类实现方式的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码(诸如,图9中示出的代码930)应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有处理器的任何系统,该处理器诸如例如,数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
程序代码可以用高级过程编程语言或面向对象的编程语言来实现,以便与处理系统通信。如果需要,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定的编程语言的范围。在任何情况下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示处理器中的各种逻辑的表示性指令来实现,该表示性指令在被机器读取时使得该机器制造用于执行本文中所述的技术的逻辑。被称为“IP核”的此类表示可以被存储在有形的机器可读介质上,并可被供应给各个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非暂态的有形安排,其包括存储介质,诸如:硬盘;任何其他类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其他类型的介质。
因此,本发明的实施例还包括非暂态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也可被称为程序产品。
多个图中的流程图和框图示出根据本公开的各方面的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。在这方面,流程图或框图中的每一个框可表示包括用于实现所指定的逻辑功能的一条或多条可执行指令的代码模块、代码段或代码部分。还应当注意,在一些替代实现中,框中所标注的多个功能可不按图中所标注的顺序发生。例如,取决于所涉及的功能,实际上可基本上同时执行连续地示出的两个框,或者有时可按相反的顺序或替代的顺序来执行这些框。也将注意,可由执行所指定功能或动作的专用基于硬件的系统或专用硬件和计算机指令的多种组合来实现框图和/或流程图说明中的每一个框和框图和/或流程图说明中的多个框的组合。
前述公开概述了若干实施例的特征,使得本领域技术人员可以更好地理解本公开的各方面。本领域技术人员应当理解,他们可以容易地使用本公开作为用于设计或修改其他过程和结构以执行相同的目的和/或实现本文中介绍的多个实施例的相同优点的基础。本领域技术人员还应当认识到,此类等效构造不背离本公开的精神和范围,并且他们可以作出各种更改、替换和改变而不背离本公开的精神和范围。
本文中所公开的任何硬件元件的全部或部分可容易地在芯片上系统(SoC)(包括中央处理单元(CPU)封装)中提供。SoC表示将计算机或其他电子系统的组件集成到单个芯片中的集成电路(IC)。SoC可以包含数字的、模拟的、混合式信号以及射频功能,所有这些都可以在单个芯片基板上提供。其他实施例可以包括多芯片模块(MCM),其中,多个芯片位于单个电子封装内,并且配置成通过此电子封装彼此密切地交互。在各种其他实施例中,本文中所公开的计算功能可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)以及其他半导体芯片中的一个或多个硅核中实现。
如贯穿本说明书所使用,术语“处理器”或“微处理器”应当理解为不仅包括传统微处理器(诸如,引领行业的x86和x64架构),还包括图形处理器、矩阵处理器、以及任何ASIC、FPGA、微控制器、数字信号处理器(DSP)、可编程逻辑器件、可编程逻辑阵列(PLA)、微代码、指令集、仿真的或虚拟机处理器、或任何类似的“图灵完备”(Turing-complete)设备、设备的组合、或允许指令的执行的逻辑元件(硬件或软件)。
也应注意,在某些实施例中,可省略或合并组件中的一些组件。在一般意义上,附图中所描绘的布置应当理解为逻辑划分,而物理架构可以包括这些元件的各种排列、组合和/或混合。重要的是应注意到,可以使用无数可能的设计配置来实现本文中概述的操作目标。相应地,相关联的基础结构具有无数替代布置、设计选择、设备可能性、硬件配置、软件实现和装备选项。
在一般意义上,任何适当地配置的处理器可执行与数据或微代码相关联的指令以实现本文中详述的操作。本文中公开的任何处理器都可以将要素或制品(例如,数据)从一种状态或事物转换为另一种状态或事物。在另一个示例中,可以利用固定逻辑或可编程逻辑(例如,由处理器执行的软件和/或计算机指令)来实现本文中概述的一些活动,并且本文中所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))或包括数字逻辑、软件、代码、电子指令的ASIC、闪存、光盘、CD-ROM、DVD ROM、磁卡或光卡、适于存储电子指令的其他类型的机器可读介质、上述各项的任何合适的组合。
在操作中,存储可在合适的情况下并基于特定的需求将信息存储在任何合适类型的有形非暂态存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或微代码)、软件、硬件(例如,处理器指令或微代码)、或任何其他合适的组件、设备、元件、或对象中。此外,基于特定的需要和实现方式,可在任何数据库、寄存器、表、高速缓存、队列、控制列表或存储结构中提供在处理器中跟踪、发送、接收或存储的信息,所有这些都可在任何合适的时间帧内被引用。本文中公开的存储器或存储元件中的任一者应当解释为被酌情涵盖在宽泛的术语“存储器”和“存储”内。本文中的非暂态存储介质明确地旨在包括配置成用于提供所公开的操作或使处理器执行所公开的操作的任何非暂态专用或可编程硬件。非暂态存储介质还明确地包括其上存储有硬件编码的指令并可选地存储有编码在硬件、固件或软件中的微代码指令或序列的处理器。
实现本文中所描述的功能中的全部或部分的计算机程序逻辑以各种形式具体化,这些形式包括但绝不限于,硬件描述语言、源代码形式、计算机可执行形式、机器指令或微代码、可编程硬件以及各种中间形式(例如,由HDL处理器、汇编器、编译器、链接器或定位器生成的形式)。在示例中,源代码包括以各种编程语言或硬件描述语言实现的一系列计算机程序指令,各种编程语言诸如,目标代码、汇编语言或高级语言(诸如,用于与各种操作系统或操作环境一起使用的OpenCL、FORTRAN、C、C++、JAVA或HTML),硬件描述语言诸如,Spice、Verilog和VHDL。源代码可以定义并使用各种数据结构和通信消息。源代码可以是计算机可执行形式(例如,经由解释器),或者源代码可以(例如,经由转换器、汇编器,或编译器)被转换为计算机可执行的形式,或被转换为中间形式(诸如,字节代码)。在合适的情况下,上述内容中的任一者可用于建立或描述合适的分立电路或集成电路,无论是序列的、组合的、状态机或其他形式的。
在一个示例中,可以在相关联的电子设备的板上实现附图中的任意数量的电路。板可以是通用电路板,此通用电路板可以固定电子设备的内部电子系统的各种组件,并且可进一步地提供用于其他外围设备的连接器。更具体而言,板可以提供电连接,系统的其他组件可以通过此电连接来电气地通信。任何适当的处理器和存储器可基于特定的配置需要、处理需求和计算设计而适当地耦合到板。其他组件(诸如,外部存储、附加传感器、用于音频/视频显示的控制器和外围设备)可以经由电缆、作为插入卡而被附连至板,或可被集成到板本身中。在另一示例中,附图中的电路可以被实现为独立模块(例如,具有配置成用于执行特定的应用或功能的相关联的组件和电路的设备)或实现为插入到电子设备的专用硬件中的插入式模块。
请注意,对于本文中提供的众多示例,能以两个、三个、四个或更多个电组件来描述交互。然而,仅出于清楚和示例的目的这样做。应当理解,还能以任何合适的方式来合并或重新配置系统。与类似的设计替代方案一起,能以各种可能的配置来组合附图中所示出的组件、模块和元件中的任何一个,所有的这些都在本说明书的广泛的范围内。在某些情况下,通过仅引用有限数量的电元件来描述给定的流程集的功能中的一个或多个功能可能是更容易的。应当理解,附图中的电路以及其教导是易于按比例缩放的,并且可以接纳大量的组件以及更复杂/精制的布置和配置。相应地,所提供的示例不应当限制潜在地应用于无数其他架构的电路的范围,也不应当抑制所述电路的广泛教导。
众多其他改变、替换、变体、更改和修改对本领域技术人员可以是确定的,并且本公开旨在将所有此类改变、替换、变体、更改和修改涵盖为落在所附权利要求书的范围内。
示例实现方式
以下示例涉及贯穿本公开所述的实施例。
一个或多个实施例可以包括一种装置,包括:处理器,用于执行一个或多个指令,其中一个或多个指令包括与存储器的存储器位置相关联的存储器访问操作;存储器加密控制器,用于:标识与存储器的存储器位置相关联的存储器访问操作;确定存储器位置与受保护的域相关联,其中受保护的域与存储器的受保护的存储器区域相关联,并且其中受保护的域从与存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;标识与受保护的域相关联的加密密钥;对与存储器访问操作相关联的数据执行密码操作,其中密码操作是基于与受保护的域相关联的加密密钥执行的;以及返回密码操作的结果,其中密码操作的结果会用于存储器访问操作。
在装置的一个示例实施例中:存储器访问操作包括存储器读操作;以及用于对与存储器访问操作相关联的数据执行密码操作的存储器加密控制器进一步用于:从存储器的存储器位置获得数据;以及基于与受保护的域相关联的加密密钥对数据进行解密。
在装置的一个示例实施例中:存储器访问操作包括存储器写操作;以及用于对与存储器访问操作相关联的数据执行密码操作的存储器加密控制器进一步用于:基于与受保护的域相关联的加密密钥对数据进行加密,其中密码操作的结果会被写入存储器的存储器位置。
在装置的一个示例实施例中,用于对与存储器访问操作相关联的数据执行密码操作的存储器加密控制器进一步用于:标识与受保护的域相关联的加密类型,其中多个受保护的域与多个加密类型相关联;以及基于与受保护的域相关联的加密类型执行密码操作。
在装置的一个示例实施例中,多个受保护的域包括多个执行上下文;以及多个受保护的域中的每个受保护的域包括多个执行上下文中的特定执行上下文。
在装置的一个示例实施例中,多个受保护的域进一步与多个加密密钥相关联;以及多个受保护的域中的每个受保护的域与多个加密密钥中的特定加密密钥相关联。
在装置的一个示例实施例中,多个受保护的域进一步与多个用户相关联;以及多个受保护的域中的每个受保护的域与多个用户中的特定用户相关联。
在装置的一个示例实施例中,存储器加密控制器进一步用于:标识用于将第二受保护的域添加到多个受保护的域的命令;标识与第二受保护的域相关联的第二受保护的存储器区域;标识与第二受保护的域相关联的第二加密密钥;以及基于第二受保护的存储器区域和第二加密密钥来配置第二受保护的域。
在装置的一个示例实施例中,处理器进一步包括:指令高速缓存,包括平台配置指令,其中平台配置指令包括用于将第二受保护的域添加到多个受保护的域的命令;解码器,用于对平台配置指令进行解码;以及执行单元,用于对存储器加密控制器中的第二受保护的域进行编程。
在装置的一个示例实施例中,存储器加密控制器进一步用于:确定与第二受保护的域相关联的保护模式;以及基于保护模式来配置第二受保护的域。
在装置的一个示例实施例中,保护模式包括:明文模式;默认的加密模式;或定制的加密模式。
一个或多个实施例可以包括至少一种机器可访问存储介质,具有存储于其上的指令,其中当在机器上执行指令时,指令使机器用于:标识与存储器的存储器位置相关联的存储器访问操作;确定存储器位置与受保护的域相关联,其中受保护的域与存储器的受保护的存储器区域相关联,并且其中受保护的域从与存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;标识与受保护的域相关联的加密密钥;对与存储器访问操作相关联的数据执行密码操作,其中密码操作是基于与受保护的域相关联的加密密钥执行的;以及返回密码操作的结果,其中密码操作的结果会用于存储器访问操作。
在存储介质的一个示例实施例中:存储器访问操作包括存储器读操作;以及使机器用于对与存储器访问操作相关联的数据执行密码操作的指令进一步使机器用于:从存储器的存储器位置获得数据;以及基于与受保护的域相关联的加密密钥对数据进行解密。
在存储介质的一个示例实施例中:存储器访问操作包括存储器写操作;以及使机器用于对与存储器访问操作相关联的数据执行密码操作的指令进一步使机器用于:基于与受保护的域相关联的加密密钥对数据进行加密,其中密码操作的结果会被写入存储器的存储器位置。
在存储介质的一个示例实施例中,使机器用于对与存储器访问操作相关联的数据执行密码操作的指令进一步使机器用于:标识与受保护的域相关联的加密类型,其中多个受保护的域与多个加密类型相关联;以及基于与受保护的域相关联的加密类型执行密码操作。
在存储介质的一个示例实施例中,多个受保护的域包括多个执行上下文;以及多个受保护的域中的每个受保护的域包括多个执行上下文中的特定执行上下文。
在存储介质的一个示例实施例中,多个受保护的域进一步与多个加密密钥相关联;以及多个受保护的域中的每个受保护的域与多个加密密钥中的特定加密密钥相关联。
在存储介质的一个示例实施例中:多个受保护的域进一步与多个用户相关联;以及多个受保护的域中的每个受保护的域与多个用户中的特定用户相关联。
在存储介质的一个示例实施例中,指令进一步使机器用于:标识用于将第二受保护的域添加到多个受保护的域的命令;标识与第二受保护的域相关联的第二受保护的存储器区域;标识与第二受保护的域相关联的第二加密密钥;以及基于第二受保护的存储器区域和第二加密密钥来配置第二受保护的域。
在存储介质的一个示例实施例中,指令进一步使机器用于:确定与第二受保护的域相关联的保护模式;以及基于保护模式来配置第二受保护的域。
在存储介质的一个示例实施例中,保护模式包括:明文模式;标准的加密模式;或定制的加密模式。
一个或多个实施例可以包括一种系统,包括:存储器;处理器,用于执行一个或多个指令,其中一个或多个指令包括与存储器的存储器位置相关联的存储器访问操作;存储器加密控制器,用于:标识与存储器的存储器位置相关联的存储器访问操作;确定存储器位置与受保护的域相关联,其中受保护的域与存储器的受保护的存储器区域相关联,并且其中受保护的域从与存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;标识与受保护的域相关联的加密密钥;对与存储器访问操作相关联的数据执行密码操作,其中密码操作是基于与受保护的域相关联的加密密钥执行的;以及返回密码操作的结果,其中密码操作的结果会用于存储器访问操作。
在系统的一个示例实施例中:多个受保护的域进一步与云服务提供商的多个用户相关联;以及多个受保护的域中的每个受保护的域与多个用户中的特定用户相关联。
在系统的一个示例实施例中,存储器包括固态存储器以用于提供持久数据存储。
一个或多个实施例可以包括一种方法,包括:标识与存储器的存储器位置相关联的存储器访问操作;确定存储器位置与受保护的域相关联,其中受保护的域与存储器的受保护的存储器区域相关联,并且其中受保护的域从与存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;标识与受保护的域相关联的加密密钥;对与存储器访问操作相关联的数据执行密码操作,其中密码操作是基于与受保护的域相关联的加密密钥执行的;以及返回密码操作的结果,其中密码操作的结果会用于存储器访问操作。
在方法的一个示例实施例中,方法进一步包括:标识用于将第二受保护的域添加到多个受保护的域的命令;标识与第二受保护的域相关联的第二受保护的存储器区域;标识与第二受保护的域相关联的第二加密密钥;以及基于第二受保护的存储器区域和第二加密密钥来配置第二受保护的域。
Claims (25)
1.一种装置,包括:
处理器,用于执行一个或多个指令,其中所述一个或多个指令包括与存储器的存储器位置相关联的存储器访问操作;
存储器加密控制器,用于:
标识与所述存储器的所述存储器位置相关联的所述存储器访问操作;
确定所述存储器位置与受保护的域相关联,其中所述受保护的域与所述存储器的受保护的存储器区域相关联,并且其中所述受保护的域从与所述存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;
标识与所述受保护的域相关联的加密密钥;
对与所述存储器访问操作相关联的数据执行密码操作,其中所述密码操作是基于与所述受保护的域相关联的所述加密密钥执行的;以及
返回所述密码操作的结果,其中所述密码操作的所述结果会用于所述存储器访问操作。
2.如权利要求1所述的装置,其特征在于:
所述存储器访问操作包括存储器读操作;以及
用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述存储器加密控制器进一步用于:
从所述存储器的所述存储器位置获得所述数据;以及
基于与所述受保护的域相关联的所述加密密钥对所述数据进行解密。
3.如权利要求1所述的装置,其特征在于:
所述存储器访问操作包括存储器写操作;以及
用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述存储器加密控制器进一步用于:基于与所述受保护的域相关联的所述加密密钥对所述数据进行加密,其中所述密码操作的所述结果会被写入所述存储器的所述存储器位置。
4.如权利要求1所述的装置,其特征在于,用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述存储器加密控制器进一步用于:
标识与所述受保护的域相关联的加密类型,其中所述多个受保护的域与多个加密类型相关联;以及
基于与所述受保护的域相关联的所述加密类型执行所述密码操作。
5.如权利要求1所述的装置,其特征在于:
所述多个受保护的域包括多个执行上下文;以及
所述多个受保护的域中的每个受保护的域包括所述多个执行上下文中的特定执行上下文。
6.如权利要求1所述的装置,其特征在于:
所述多个受保护的域进一步与多个加密密钥相关联;以及
所述多个受保护的域中的每个受保护的域与所述多个加密密钥中的特定加密密钥相关联。
7.如权利要求6所述的装置,其特征在于:
所述多个受保护的域进一步与多个用户相关联;以及
所述多个受保护的域中的每个受保护的域与所述多个用户中的特定用户相关联。
8.如权利要求1所述的装置,其特征在于,所述存储器加密控制器进一步用于:
标识用于将第二受保护的域添加到所述多个受保护的域的命令;
标识与所述第二受保护的域相关联的第二受保护的存储器区域;
标识与所述第二受保护的域相关联的第二加密密钥;以及
基于所述第二受保护的存储器区域和所述第二加密密钥来配置所述第二受保护的域。
9.如权利要求8所述的装置,其特征在于,所述处理器进一步包括:
指令高速缓存,包括平台配置指令,其中所述平台配置指令包括用于将所述第二受保护的域添加到所述多个受保护的域的所述命令;
解码器,用于对所述平台配置指令进行解码;以及
执行单元,用于对所述存储器加密控制器中的所述第二受保护的域进行编程。
10.如权利要求8所述的装置,其特征在于,所述存储器加密控制器进一步用于:
确定与所述第二受保护的域相关联的保护模式;以及
基于所述保护模式来配置所述第二受保护的域。
11.如权利要求10所述的装置,其特征在于,所述保护模式包括:明文模式;默认的加密模式;或定制的加密模式。
12.至少一种机器可访问存储介质,具有存储于其上的指令,其中当在机器上执行所述指令时,所述指令使所述机器用于:
标识与存储器的存储器位置相关联的存储器访问操作;
确定所述存储器位置与受保护的域相关联,其中所述受保护的域与所述存储器的受保护的存储器区域相关联,并且其中所述受保护的域从与所述存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;
标识与所述受保护的域相关联的加密密钥;
对与所述存储器访问操作相关联的数据执行密码操作,其中所述密码操作是基于与所述受保护的域相关联的所述加密密钥执行的;以及
返回所述密码操作的结果,其中所述密码操作的所述结果会用于所述存储器访问操作。
13.如权利要求12所述的存储介质,其特征在于:
所述存储器访问操作包括存储器读操作;以及
使所述机器用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述指令进一步使所述机器用于:
从所述存储器的所述存储器位置获得所述数据;以及
基于与所述受保护的域相关联的所述加密密钥对所述数据进行解密。
14.如权利要求12所述的存储介质,其特征在于:
所述存储器访问操作包括存储器写操作;以及
使所述机器用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述指令进一步使所述机器用于:基于与所述受保护的域相关联的所述加密密钥对所述数据进行加密,其中所述密码操作的所述结果会被写入所述存储器的所述存储器位置。
15.如权利要求12所述的存储介质,其特征在于,使所述机器用于对与所述存储器访问操作相关联的所述数据执行所述密码操作的所述指令进一步使所述机器用于:
标识与所述受保护的域相关联的加密类型,其中所述多个受保护的域与多个加密类型相关联;以及
基于与所述受保护的域相关联的所述加密类型执行所述密码操作。
16.如权利要求12所述的存储介质,其特征在于:
所述多个受保护的域进一步与多个加密密钥相关联;以及
所述多个受保护的域中的每个受保护的域与所述多个加密密钥中的特定加密密钥相关联。
17.如权利要求16所述的存储介质,其特征在于:
所述多个受保护的域进一步与多个用户相关联;以及
所述多个受保护的域中的每个受保护的域与所述多个用户中的特定用户相关联。
18.如权利要求12所述的存储介质,其特征在于,所述指令进一步使所述机器用于:
标识用于将第二受保护的域添加到所述多个受保护的域的命令;
标识与所述第二受保护的域相关联的第二受保护的存储器区域;
标识与所述第二受保护的域相关联的第二加密密钥;以及
基于所述第二受保护的存储器区域和所述第二加密密钥来配置所述第二受保护的域。
19.如权利要求18所述的存储介质,其特征在于,所述指令进一步使所述机器用于:
确定与所述第二受保护的域相关联的保护模式;以及
基于所述保护模式来配置所述第二受保护的域。
20.如权利要求19所述的存储介质,其特征在于,所述保护模式包括:明文模式;标准的加密模式;或定制的加密模式。
21.一种系统,包括:
存储器;
处理器,用于执行一个或多个指令,其中所述一个或多个指令包括与所述存储器的存储器位置相关联的存储器访问操作;
存储器加密控制器,用于:
标识与所述存储器的所述存储器位置相关联的所述存储器访问操作;
确定所述存储器位置与受保护的域相关联,其中所述受保护的域与所述存储器的受保护的存储器区域相关联,并且其中所述受保护的域从与所述存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;
标识与所述受保护的域相关联的加密密钥;
对与所述存储器访问操作相关联的数据执行密码操作,其中所述密码操作是基于与所述受保护的域相关联的所述加密密钥执行的;以及
返回所述密码操作的结果,其中所述密码操作的所述结果会用于所述存储器访问操作。
22.如权利要求21所述的系统,其特征在于,
所述多个受保护的域进一步与云服务提供商的多个用户相关联;以及
所述多个受保护的域中的每个受保护的域与所述多个用户中的特定用户相关联。
23.如权利要求21所述的系统,其特征在于,所述存储器包括固态存储器以用于提供持久数据存储。
24.一种方法,包括:
标识与存储器的存储器位置相关联的存储器访问操作;
确定所述存储器位置与受保护的域相关联,其中所述受保护的域与所述存储器的受保护的存储器区域相关联,并且其中所述受保护的域从与所述存储器的多个受保护的存储器区域相关联的多个受保护的域被标识出;
标识与所述受保护的域相关联的加密密钥;
对与所述存储器访问操作相关联的数据执行密码操作,其中所述密码操作是基于与所述受保护的域相关联的所述加密密钥执行的;以及
返回所述密码操作的结果,其中所述密码操作的所述结果会用于所述存储器访问操作。
25.如权利要求24所述的方法,其特征在于,进一步包括:
标识用于将第二受保护的域添加到所述多个受保护的域的命令;
标识与所述第二受保护的域相关联的第二受保护的存储器区域;
标识与所述第二受保护的域相关联的第二加密密钥;以及
基于所述第二受保护的存储器区域和所述第二加密密钥来配置所述第二受保护的域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211117534.3A CN115470530A (zh) | 2017-06-28 | 2018-06-15 | 多密钥密码存储器保护 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/635,548 | 2017-06-28 | ||
US15/635,548 US20190004973A1 (en) | 2017-06-28 | 2017-06-28 | Multi-key cryptographic memory protection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211117534.3A Division CN115470530A (zh) | 2017-06-28 | 2018-06-15 | 多密钥密码存储器保护 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109145611A true CN109145611A (zh) | 2019-01-04 |
Family
ID=64662038
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211117534.3A Pending CN115470530A (zh) | 2017-06-28 | 2018-06-15 | 多密钥密码存储器保护 |
CN201810622316.2A Pending CN109145611A (zh) | 2017-06-28 | 2018-06-15 | 多密钥密码存储器保护 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211117534.3A Pending CN115470530A (zh) | 2017-06-28 | 2018-06-15 | 多密钥密码存储器保护 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20190004973A1 (zh) |
CN (2) | CN115470530A (zh) |
DE (1) | DE102018004290A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116542A (zh) * | 2020-08-26 | 2022-03-01 | 美光科技公司 | 存储器写入访问控制 |
CN115421174A (zh) * | 2022-08-31 | 2022-12-02 | 杭州数聚链科技有限公司 | 一种基于时空信息的无人机运动轨迹识别系统及方法 |
US11687654B2 (en) | 2017-09-15 | 2023-06-27 | Intel Corporation | Providing isolation in virtualized systems using trust domains |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2563886B (en) * | 2017-06-28 | 2019-12-25 | Advanced Risc Mach Ltd | Realm management unit-private memory regions |
EP3811264A4 (en) * | 2018-06-24 | 2022-03-02 | Hex Five Security, Inc. | CONFIGURATION, ENFORCEMENT AND MONITORING THE SEPARATION OF TRUSTED EXECUTION ENVIRONMENTS |
US11397692B2 (en) | 2018-06-29 | 2022-07-26 | Intel Corporation | Low overhead integrity protection with high availability for trust domains |
US20190342093A1 (en) * | 2019-06-28 | 2019-11-07 | Siddhartha Chhabra | Converged cryptographic engine |
CN111130784B (zh) * | 2019-12-25 | 2023-08-08 | 成都海光集成电路设计有限公司 | 一种密钥生成方法、装置、cpu芯片及服务器 |
EP4237983A4 (en) * | 2020-11-02 | 2024-11-06 | Intel Corp | GRAPHICAL SECURITY WITH SYNERGISTIC ENCRYPTION TECHNOLOGY AND CONTENT-BASED RESOURCE MANAGEMENT |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434068B2 (en) * | 2001-10-19 | 2008-10-07 | Intel Corporation | Content protection in non-volatile storage devices |
EP1723564A2 (en) * | 2004-02-11 | 2006-11-22 | Storage Technology Corporation | Clustered hierarchical file services |
US20050188173A1 (en) * | 2004-02-24 | 2005-08-25 | Robert Hasbun | Physical domain separation |
JP4885629B2 (ja) * | 2006-06-29 | 2012-02-29 | フェリカネットワークス株式会社 | 金融カードシステム、通信デバイス、認証端末、認証方法、及びプログラム。 |
US9712495B2 (en) * | 2011-05-03 | 2017-07-18 | International Business Machines Corporation | Methods and systems for selective encryption and secured extent quota management for storage servers in cloud computing |
FR2980285B1 (fr) * | 2011-09-15 | 2013-11-15 | Maxim Integrated Products | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
US9270459B2 (en) * | 2011-09-20 | 2016-02-23 | Cloudbyte, Inc. | Techniques for achieving tenant data confidentiality from cloud service provider administrators |
US9292673B2 (en) * | 2013-03-15 | 2016-03-22 | International Business Machines Corporation | Virtual key management and isolation of data deployments in multi-tenant environments |
US9607177B2 (en) * | 2013-09-30 | 2017-03-28 | Qualcomm Incorporated | Method for securing content in dynamically allocated memory using different domain-specific keys |
US9762573B2 (en) * | 2014-05-30 | 2017-09-12 | Verizon Patent And Licensing Inc. | Biometric framework allowing independent application control |
US9419952B2 (en) * | 2014-06-05 | 2016-08-16 | Stmicroelectronics (Grenoble 2) Sas | Memory encryption method compatible with a memory interleaved system and corresponding system |
US9626108B2 (en) * | 2014-09-16 | 2017-04-18 | Kove Ip, Llc | Dynamically provisionable and allocatable external memory |
US10049001B1 (en) * | 2015-03-27 | 2018-08-14 | Amazon Technologies, Inc. | Dynamic error correction configuration |
US10013364B1 (en) * | 2015-06-26 | 2018-07-03 | EMC IP Holding Company LLC | Securing data using per tenant encryption keys |
US10447659B2 (en) * | 2016-03-02 | 2019-10-15 | Google Llc | Sharing protected user content between devices |
US10296757B2 (en) * | 2016-07-29 | 2019-05-21 | Sap Se | Appended key ID for key identification during data encryption |
-
2017
- 2017-06-28 US US15/635,548 patent/US20190004973A1/en not_active Abandoned
-
2018
- 2018-05-29 DE DE102018004290.2A patent/DE102018004290A1/de active Pending
- 2018-06-15 CN CN202211117534.3A patent/CN115470530A/zh active Pending
- 2018-06-15 CN CN201810622316.2A patent/CN109145611A/zh active Pending
-
2021
- 2021-04-05 US US17/222,722 patent/US20210224202A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687654B2 (en) | 2017-09-15 | 2023-06-27 | Intel Corporation | Providing isolation in virtualized systems using trust domains |
CN114116542A (zh) * | 2020-08-26 | 2022-03-01 | 美光科技公司 | 存储器写入访问控制 |
CN115421174A (zh) * | 2022-08-31 | 2022-12-02 | 杭州数聚链科技有限公司 | 一种基于时空信息的无人机运动轨迹识别系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190004973A1 (en) | 2019-01-03 |
DE102018004290A1 (de) | 2019-01-03 |
US20210224202A1 (en) | 2021-07-22 |
CN115470530A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145611A (zh) | 多密钥密码存储器保护 | |
NL2029026B1 (en) | Disaggregated computing for distributed confidential computing environment | |
US12019562B2 (en) | Cryptographic computing including enhanced cryptographic addresses | |
US11755500B2 (en) | Cryptographic computing with disaggregated memory | |
CN110233721A (zh) | Sm4加速处理器、方法和系统 | |
CN104620254B (zh) | 用于低开销的存储器重播保护的并行化的计数器攀树 | |
CN104951697B (zh) | 来自过程指令的返回-目标限制性返回、处理器、方法及系统 | |
CN104049953B (zh) | 用于合并操作掩码的未经掩码元素的装置、方法、系统和制品 | |
CN107667499A (zh) | 带密钥散列消息认证码处理器、方法、系统和指令 | |
CN104982051B (zh) | 用于加速无线安全算法的装置、方法和系统 | |
CN109690552A (zh) | 用于判定是否将受保护容器页的加密副本加载到受保护容器存储器中的处理器、方法、系统和指令 | |
CN105302522B (zh) | 提供通用gf(256)simd密码算法功能性的指令和逻辑 | |
CN106575216A (zh) | 数据元素选择和合并处理器、方法、系统和指令 | |
CN109416640A (zh) | 孔径访问处理器、方法、系统和指令 | |
CN109479003A (zh) | 安全椭圆曲线密码指令 | |
DE102021131090A1 (de) | Intelligenter und redundanter luftgekühlter kühlkreislauf für rechenzentrum-kühlsysteme | |
CN108027864A (zh) | 经双仿射映射的s-盒硬件加速器 | |
CN108228234A (zh) | 用于聚集-更新-分散操作的加速器 | |
CN114585220A (zh) | 用于数据中心冷却系统的智能冗余液冷冷却回路 | |
CN117440652A (zh) | 智能两相泵式冷却 | |
CN115699375A (zh) | 节能液冷数据中心 | |
CN115918282A (zh) | 用于数据中心冷却系统的具有热管的智能双功能冷板系统 | |
CN114828541A (zh) | 用于数据中心冷却系统的具有有源和无源特征的智能冷板系统 | |
US10579335B2 (en) | Multiplier circuit for accelerated square operations | |
US20220222077A1 (en) | Tag checking procedure calls |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |