CN107710220B - 存储器高速缓存和高速缓存的软件模块标识的安全处理 - Google Patents

存储器高速缓存和高速缓存的软件模块标识的安全处理 Download PDF

Info

Publication number
CN107710220B
CN107710220B CN201680037566.9A CN201680037566A CN107710220B CN 107710220 B CN107710220 B CN 107710220B CN 201680037566 A CN201680037566 A CN 201680037566A CN 107710220 B CN107710220 B CN 107710220B
Authority
CN
China
Prior art keywords
realm
data
cache
memory device
realm identifier
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
Application number
CN201680037566.9A
Other languages
English (en)
Other versions
CN107710220A (zh
Inventor
罗伯托·阿万奇
大卫·哈特利
罗萨里奥·卡马罗塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107710220A publication Critical patent/CN107710220A/zh
Application granted granted Critical
Publication of CN107710220B publication Critical patent/CN107710220B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在一个方面中,高速缓冲存储器装置接收读取与存储器装置相关联的指令或数据的请求。所述请求包含第一地址域标识符和地址域指示符位,其中第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域。当指令或数据存储在高速缓冲存储器装置中时,高速缓冲存储器装置确定第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符,其中当第一地址域标识符指示地址域时以及当启用地址域指示符位时,存储在高速缓冲存储器装置中的指令或数据已经基于与第二地址域标识符相关联的暂时加密密钥进行解密。当第一地址域标识符匹配第二地址域标识符时,高速缓冲存储器装置传输指令或数据。

Description

存储器高速缓存和高速缓存的软件模块标识的安全处理
相关申请的交叉参考
本专利申请主张2015年7月7日递交的标题为“借助于受控制的加密密钥管理隔离软件模块的方法的存储器高速缓存和高速缓存的软件模块标识的安全处理(SecureHandling of Memory Caches and Cached Software Module Identities For A Methodto Isolate Software Modules by Means of Controlled Encryption KeyManagement)”的第62/189,738 号美国临时申请以及2016年3月15日递交的标题为“借助于受控制的加密密钥管理隔离软件模块的方法的存储器高速缓存和高速缓存的软件模块标识的安全处理(Secure Handling of Memory Caches and Cached Software ModuleIdentities For A Method to Isolate Software Modules by Means of ControlledEncryption Key Management)”的第15/070,947 号美国非临时申请的优先权,并且所述申请在此以引用的方式明确并入本文中。
技术领域
本发明的方面大体上涉及安全存储器管理,且更确切地说,但非排他地,涉及借助于受控制的加密密钥管理隔离软件模块的方法的存储器高速缓存和高速缓存的软件模块标识的安全处理。
背景技术
软件开发者通常产生软件(也被称作指令集、代码、程序或算法),例如,应用程序、驱动器和游戏,并且允许顾客和其它经过授权的用户在各种产品中安装和使用软件。举例来说,软件可以安装和存储于电子装置的存储器装置中,所述电子装置例如移动电话 (例如,智能电话)或膝上型计算机。然而,未经授权用户(例如,黑客)可存取和反向破解此类软件,从而造成宝贵的知识产权的损失。因此,需要保护电子产品中的软件以便防止未经授权用户存取软件。
发明内容
下文中呈现了本发明的一些方面的简化的总结,以便提供对这些方面的基本理解。此总结并非本发明的所有所涵盖特征的广泛概述,且既不意图识别本发明的所有方面的关键或至关重要元素,也不意图划定本发明的任何或所有方面的范围。其唯一目的是以简化形式呈现本发明的一些方面的各种概念以作为稍后呈现的更详细描述的序言。
根据一个方面,提供了可在高速缓冲存储器装置上操作的方法。高速缓冲存储器装置接收读取与存储器装置相关联的指令或数据的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域。如本文所使用的术语“地址域”可以被定义为存储器装置的一或多个所选定的、预定义的或动态地定义的存储器区域、域、片段和/或框。当指令或数据存储在高速缓冲存储器装置中时,高速缓冲存储器装置确定第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符,其中当第一地址域标识符指示地址域时以及当启用地址域指示符位时,存储在高速缓冲存储器装置中的指令或数据已经基于与第二地址域标识符相关联的暂时加密密钥进行解密。当第一地址域标识符匹配第二地址域标识符时,高速缓冲存储器装置传输指令或数据。在一个方面中,当第一地址域标识符并不匹配第二地址域标识符时,高速缓冲存储器装置阻止传输指令。在一个方面中,暂时加密密钥是在地址域保持在存储器装置中时存在的临时或暂时性加密密钥。在一个方面中,请求可以包含指示是否允许存取地址域外的数据的控制位。在此方面中,高速缓冲存储器装置至少基于第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝请求,并且当请求被拒绝时阻止传输数据或指令。在一个方面中,当请求是读取数据、第一地址域标识符指示地址域、没有启用地址域指示符位并且启用控制位时,请求被允许。在一个方面中,当请求是读取数据、第一地址域标识符指示地址域、没有启用地址域指示符位并且启用控制位时,高速缓冲存储器装置将第一地址域标识符定义为零。在一个方面中,当指令或数据并不是存储在高速缓冲存储器装置中时,高速缓冲存储器装置从存储器装置中获取指令或数据,并且在高速缓冲存储器装置处存储具有包含第一地址域标识符的第二高速缓存标记的所获取的指令或数据。在一个方面中,当第一地址域标识符指示地址域时并且当启用地址域指示符位时,从存储器装置中接收的指令或数据已经基于与第一地址域标识符相关联的暂时加密密钥进行解密。在一个方面中,高速缓冲存储器装置接收高速缓存转储命令;当指令或数据存储在高速缓冲存储器装置中时,确定高速缓存标记中的第二地址域标识符是否是零或指示没有地址域的特定值;以及当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时,阻止响应于高速缓存转储命令而传输指令或数据。在一个方面中,当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时,高速缓冲存储器装置响应于高速缓存转储命令而传输零值。在一个方面中,当指令或数据并不是存储在高速缓冲存储器装置中时,高速缓冲存储器装置将请求和第一地址域标识符传输到高速缓存的相同群集中的至少一个远程高速缓冲存储器,并且从至少一个远程高速缓冲存储器装置中接收指令或数据。在一个方面中,当指令或数据并不是存储在高速缓冲存储器装置中时,高速缓冲存储器装置将请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置,并且从至少一个远程高速缓冲存储器装置中接收指令或数据,其中接收到的指令或数据是基于暂时加密密钥在与至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密并且随后在接收之前基于暂时加密密钥在与高速缓冲存储器装置相关联的软件保护装置处进行解密。
根据一个方面,设备包含:用于接收读取与存储器装置相关联的指令或数据的请求的装置,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域;用于当指令或数据存储在设备中时确定第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符的装置,其中当第一地址域标识符指示地址域时并且当启用地址域指示符位时存储在设备中的指令或数据已经基于与第二地址域标识符相关联的暂时加密密钥解密;以及用于当第一地址域标识符匹配第二地址域标识符时传输指令或数据的装置。在一个方面中,设备进一步包含用于当第一地址域标识符并不匹配第二地址域标识符时阻止传输指令的装置。在一个方面中,设备进一步包含用于至少基于第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝请求的装置和用于当请求被拒绝时阻止传输数据或指令的装置。在一个方面中,设备进一步包含用于当请求是读取数据、第一地址域标识符指示地址域、没有启用地址域指示符位并且启用控制位时将第一地址域标识符定义为零的装置。在一个方面中,设备进一步包含用于当指令或数据并不是存储在设备中时从存储器装置中获取指令或数据的装置和用于在设备处存储具有包含第一地址域标识符的第二高速缓存标记的所获取的指令或数据的装置。在一个方面中,设备进一步包含用于接收高速缓存转储命令的装置、用于当指令或数据存储在设备中时确定高速缓存标记中的第二地址域标识符是否是零或指示没有地址域的特定值的装置,以及用于当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时响应于高速缓存转储命令而阻止传输指令或数据的装置。在一个方面中,设备进一步包含用于当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时响应于高速缓存转储命令而传输零值的装置。在一个方面中,设备进一步包含用于当指令或数据并不是存储在设备中时将请求和第一地址域标识符传输到高速缓存的相同群集中的至少一个远程高速缓冲存储器并且从至少一个远程高速缓冲存储器装置中接收指令或数据的装置。在一个方面中,设备进一步包含用于当指令或数据并不是存储在高速缓冲存储器装置中时将请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置并且从至少一个远程高速缓冲存储器装置中接收指令或数据的装置,其中接收到的指令或数据是基于暂时加密密钥在与至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密并且随后在接收之前基于暂时加密密钥在与高速缓冲存储器装置相关联的软件保护装置处进行解密。
根据一个方面,提供了可在高速缓冲存储器装置上操作的方法。高速缓冲存储器装置接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域。高速缓冲存储器装置确定存储器页是否存储在高速缓冲存储器装置处,并且确定当存储器页存储在高速缓冲存储器装置处时与存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配第一地址域标识符。当第一地址域标识符匹配第二地址域标识符时,高速缓冲存储器装置在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据。在一个方面中,高速缓冲存储器装置基于至少第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝写入数据的请求,并且当请求被拒绝时阻止在高速缓冲存储器装置处的存储器页中存储数据。在一个方面中,当第一地址域标识符指示地址域、没有启用地址域指示符位以及启用控制位时,写入数据的请求被允许。在一个方面中,当存储器页并不是存储在高速缓冲存储器装置处时,高速缓冲存储器装置在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据,其中当第一地址域标识符不是零并且针对存储器页设置地址域指示符位时,在高速缓冲存储器装置被清空之后数据通过与第一地址域标识符相关联的暂时加密密钥进行加密。在一个方面中,当第一地址域标识符指示存储器装置中的地址域、没有启用地址域指示符位并且启用控制位时,高速缓冲存储器装置将第一地址域标识符定义为零或指示没有地址域的特定值。在一个方面中,当第一地址域标识符并不匹配第二地址域标识符时,高速缓冲存储器装置阻止在高速缓冲存储器装置处的存储器页中存储数据。在一个方面中,当第一地址域标识符匹配第二地址域标识符时,存储在高速缓冲存储器装置处的存储器页中的数据在存储在对应于存储器页的存储器装置的区域中之前使用与第一地址域标识符相关联的暂时加密密钥进行加密。
根据一个方面,设备包含:用于接收将数据写入到与存储器装置的区域相关联的存储器页的请求的装置,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域;用于确定存储器页是否存储在高速缓冲存储器装置处的装置;用于确定当存储器页存储在设备处时与存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配第一地址域标识符的装置;以及用于当第一地址域标识符匹配第二地址域标识符时在设备处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据的装置。在一个方面中,设备进一步包含用于基于至少第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝写入数据的请求的装置,以及用于当请求被拒绝时阻止在高速缓冲存储器装置处的存储器页中存储数据的装置。在一个方面中,设备进一步包含用于当存储器页并不是存储在高速缓冲存储器装置处时在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据的装置,其中当第一地址域标识符不是零并且针对存储器页设置地址域指示符位时,在高速缓冲存储器装置被清空之后数据通过与第一地址域标识符相关联的暂时加密密钥进行加密。在一个方面中,设备进一步包含用于当第一地址域标识符指示存储器装置中的地址域、没有启用地址域指示符位并且启用控制位时将第一地址域标识符定义为零或指示没有地址域的特定值的装置。在一个方面中,设备进一步包含用于当第一地址域标识符并不匹配第二地址域标识符时阻止在高速缓冲存储器装置处的存储器页中存储数据的装置。
在查阅以下的详细描述之后,本发明的这些和其它方面将变得被更充分理解。在与结合附图查阅本发明的特定实施方案的以下描述之后,本发明的其它方面、特征和实施方案将变得对所属领域的一般技术人员显而易见。虽然可相对于下文的特定实施方案和图论述本发明的特征,但本发明的所有实施方案可包含本文中论述的有利特征中的一或多个。换句话说,虽然可将一或多个实施方案论述为具有特定有利特征,但也可以根据本文中所论述的本发明的各种实施方案来使用此类特征中的一或多个。以类似方式,虽然特定实施方案可在下文论述为装置、系统或方法实施方案,但应理解,此类实施方案可以各种装置、系统和方法实施。
附图说明
图1是示出根据本发明的各种方面用于从存储器装置中读取指令/数据的实例操作的示例性信号流程图。
图2是示出根据本发明的各种方面用于将数据写入到存储器装置的实例操作的示例性信号流程图。
图3是根据本发明的各种方面的实例架构的框图。
图4是根据本发明的各种方面的实例架构的框图。
图5是说明根据本发明的各种方面确定是否允许或拒绝存储器事务的操作的流程图。
图6是根据本发明的各种方面的实例架构的框图。
图7是根据本发明的各种方面经配置以支持与高速缓冲存储器装置处的存储器事务相关的操作的设备的说明。
图8说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。
图9说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。
图10说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。
图11说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。
图12说明根据本发明的各种方面对于在软件保护装置处的存储器事务来说可在设备中操作的方法。
图13说明根据本发明的各种方面对于在软件保护装置处的存储器事务来说可在设备中操作的方法。
具体实施方式
在下文中结合附图阐述的详细描述意图作为各种配置的描述而不是意图表示可以实践本文中所描述的概念的唯一配置。详细描述出于提供对各种概念的透彻理解的目的而包含特定细节。然而,对于所属领域的技术人员来说将显而易见的是,可在没有这些特定细节的情况下实践这些概念。在一些情况下,以框图形式示出众所周知的结构和组件以便避免混淆此类概念。
概述
本发明是指设备、方法和计算机可读媒体,包含用于在实施软件保护装置的架构中的高速缓冲存储器装置处的安全存储器事务的指令。软件保护装置(例如,图4中的软件保护装置408)可为经配置以保护存储于存储器装置(例如,图4中的存储器装置410)中的软件(例如,图3中的目标软件318)的硬件装置。举例来说,存储器装置可以与中央处理单元(CPU)的核心装置(例如,图4中的核心装置402)通信,并且可以存储待通过核心装置执行的受保护的软件。软件保护装置可以保护软件(例如,免受可增益控制硬件和 /或软件的攻击者的攻击),方法是在存储器装置中产生地址域(例如,图4中的地址域428) 并且将唯一地址域标识符(RID)与地址域相关联。如本文所使用的术语“地址域”可以被定义为存储器装置的一或多个所选定的、预定义的或动态地定义的存储器区域、域、片段和/或框。举例来说,包含于地址域中的存储器装置中的存储器区域可以指示或被称作与存储器装置相关联的存储器页的集合。在一个实例中,存储器装置可为易失性存储器装置(例如,随机存取存储器(RAM)装置)。在一个方面中,RID可为唯一二进制字符串。在其它方面中,RID可以是数字、字母和/或符号的任何组合。软件保护装置可以加密/解密核心装置与存储器装置之间的存储器事务(例如,用于从存储器装置中读取或写入到存储器装置的存储器命令或操作、或用于从存储器装置中提取通过核心装置执行的指令的存储器命令或操作)以维持存储在地址域中的软件的安全。
在参考图4的一个方面中,当通过存储器装置410执行存储器事务时,高速缓冲存储器装置(例如,指令高速缓存存储器装置432或数据高速缓存存储器装置434)可以由核心装置402实施。在一个方面中,高速缓冲存储器装置可以接收读取与存储器装置相关联的指令或数据的请求,所述请求包含至少第一RID和地址域指示符位,其中所述第一RID使得能够识别地址域,所述地址域包含存储器装置中的一或多个选定区域。当指令或数据存储在高速缓冲存储器装置中时,高速缓冲存储器装置可以确定第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符。在一个方面中,当第一地址域标识符指示地址域时以及当启用地址域指示符位时,存储在高速缓冲存储器装置中的指令或数据已经基于与第二地址域标识符相关联的暂时加密密钥在软件保护装置处进行解密。当第一地址域标识符匹配第二地址域标识符时,高速缓冲存储器装置可随后传输指令或数据。
在另一个方面中,高速缓冲存储器装置可以接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一RID和地址域指示符位,其中所述第一地址域标识符使得能够识别地址域,所述地址域包含存储器装置中的一或多个选定区域。高速缓冲存储器装置可以确定存储器页是否存储在高速缓冲存储器装置处,并且可以确定当存储器页存储在高速缓冲存储器装置处时与存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配第一地址域标识符。当第一地址域标识符匹配第二地址域标识符时,高速缓冲存储器装置可以在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据。
示例性信号流程图
图1是示出根据本发明的各种方面用于从存储器装置中读取指令或数据的实例操作的示例性信号流程图100。如图1中所示,信号流程图100包含核心装置102、高速缓冲存储器装置104、软件保护装置106和存储器装置108。在一个方面中,存储器装置 108可以包含地址域110。在本发明的一个方面中,地址域110可以表示为与存储器装置108中的区域相关联的一或多个存储器页,包含受保护的(例如,加密的)指令和/或数据。在一个方面中,地址域110可以与地址域标识符(RID)相关联。
如图1中所示,核心装置102可以传输112对来自存储器装置108的指令或数据的第一请求。第一请求可以包含RID、地址域指示符位(RB)(例如,存储器管理单元(MMU) 所提供的)和任选的控制位(本文中也被称作“允许地址域外的数据”(DORA)位)。地址域指示符位可为指示存储器页是否属于存储器装置208中的地址域(例如,地址域210) 的存储器页的存储器页描述符中的位。高速缓冲存储器装置104可以基于RID、RB和 DORA位确定请求被允许,并且可以将请求转发114到软件保护装置106。软件保护装置106可以将请求转发116到存储器装置108,并且可以接收118来自存储器装置108 的加密的指令或数据。软件保护装置106可以通过与由核心装置102所传输的第一请求中的RID相关联的暂时加密密钥(EEK)对指令或数据进行解密120。软件保护装置106 可以传输122解密的指令或数据到高速缓冲存储器装置104。高速缓冲存储器装置104 可以存储124解密的指令或数据,并且可以存储通过高速缓存标记中的核心装置102所传输的第一请求的RID。高速缓冲存储器装置104可以传输126所请求的指令或数据(例如,以解密的形式)到核心装置102。核心装置102可以传输128来自存储器装置108中的区域的指令或数据的第二请求。第二请求可以包含RID、地址域指示符位(RB)(例如, MMU所提供的)和任选的DORA位。高速缓冲存储器装置104可以基于第二请求的RID、 RB和DORA位确定第二请求被允许,并且可以确定130所请求的指令或数据是否存储在高速缓冲存储器装置104中。当所请求的指令或数据存储在高速缓冲存储器装置104 中时,高速缓冲存储器装置104可以确定132第二请求中的RID是否匹配高速缓存标记中的RID。当第二请求的RID匹配高速缓存标记中的RID时,高速缓冲存储器装置104 可以传输134所请求的指令或数据(例如,以解密的形式)到核心装置102。否则,如果第二请求的RID不匹配高速缓存标记中的RID,那么高速缓冲存储器装置104可以阻止传输所请求的指令或数据到核心装置102。
图2是示出根据本发明的各种方面用于写入数据到存储器装置的实例操作的示例性信号流程图200。如图2所示,信号流程图200包含核心装置202、高速缓冲存储器装置204、软件保护装置206和存储器装置208。在一个方面中,存储器装置208可以包含地址域210。在本发明的一个方面中,地址域210可以表示为与存储器装置208中的区域相关联的一或多个存储器页,包含受保护(例如,加密的)指令和/或数据。在一个方面中,地址域210可以与RID相关联。
如图2中所示,核心装置202可以传输212对来自存储器装置208的指令或数据的请求。请求可以包含RID、地址域指示符位(RB)(例如,MMU所提供的)和任选的DORA 位。高速缓冲存储器装置204可以基于RID、RB和DORA位确定请求被允许,并且可以将请求转发214到软件保护装置206。软件保护装置206可以将请求转发216到存储器装置208,并且可以接收218来自存储器装置208的加密的指令或数据。软件保护装置206可以通过与对由核心装置202所传输的指令或数据的请求的RID相关联的暂时加密密钥(EEK)对指令或数据进行解密220。软件保护装置206可以传输222解密的指令或数据到高速缓冲存储器装置204。高速缓冲存储器装置204可以存储224解密的指令或数据,并且可以存储对高速缓存标记中的指令或数据的请求的RID。高速缓冲存储器装置204可以传输226所请求的指令或数据(例如,以解密的形式)到核心装置202。
核心装置202可以传输228请求以将数据写入到存储器装置208中的区域(例如,存储器页)。请求可以包含RID、地址域指示符位(RB)和任选的DORA位。当存储器页存储在高速缓冲存储器装置处时,高速缓冲存储器装置204可以确定230与存储器页相关联的高速缓存标记中的RID是否匹配写入数据的请求的RID。当写入数据的请求的RID 匹配高速缓存标记中的RID时,高速缓冲存储器装置204可以在高速缓冲存储器装置处的存储器页中存储232具有包含写入数据的请求的RID的高速缓存标记的数据。当高速缓冲存储器装置204清空时,高速缓冲存储器装置204可以传输234待写入的数据以及高速缓存标记中的RID到软件保护装置206。软件保护装置206可以基于与RID相关联的EEK对数据进行加密236,并且可以传输238加密的数据到存储器装置208以用于存储在与RID相关联的地址域中。
图3是根据本发明的各种方面的实例架构300的框图。举例来说,架构300可以实施于计算装置中,例如,个人计算机、蜂窝电话(也被称作用户设备(UE))或手持型游戏装置。如图3所示,架构300包含软件保护装置302、存储器装置304和存储装置306。如图3中进一步所示,软件保护装置302可以包含地址域管理器308、密钥存储区310 和存储器加密模块312。在本发明的一个方面中,地址域管理器308可以实施为安全处理器中的应用程序,作为单独的核心装置或作为硬件框。举例来说,地址域管理器308 可以使用密码共处理器来卸载繁重的任务。在本发明的一个方面中,存储器装置304可以用作经配置以载入和存储由中央处理单元(CPU)(为了便于说明在图3中未示出)所执行的指令的主存储器。举例来说,存储器装置304可为易失性存储器装置,例如随机存取存储器(RAM)、高速缓冲存储器装置或任何其它合适类型的存储器装置。
在本发明的一个方面中,存储装置306可经配置以存储贵重的或敏感的软件,例如,目标软件318。在本发明的一个方面中,目标软件318可以是包含指令和/或数据的专有软件。举例来说,指令和/或数据可以包含堆叠、堆栈和/或元数据。在一个方面中,目标软件318可为软件模块。在本发明的一个方面中,存储装置306可以是任何合适的存储装置。在一个实例中,存储装置306可为本地存储器(例如,另一CPU的存储器)。在另一个实例中,存储装置306可为局部非易失性存储装置,例如快闪存储器、嵌入多媒体卡(eMMC)、安全数字(SD)卡、USB驱动、光碟或磁盘。在另一个实例中,存储装置 306可为通过网络可存取的远程存储装置。
在本发明的一个方面中,软件保护装置302是经配置以保护软件(例如,目标软件318(例如,与目标软件318相关联的指令和/或数据))的硬件架构。举例来说,软件保护装置302可以保护目标软件318免受可增益控制装置中的各种硬件和/或软件的多种攻击者(例如,黑客)的攻击。在本发明的一个方面中,软件保护装置302的各种特征可并入到软件开发工具包(SDK)中以允许第三方开发人员保护他们的软件。软件保护装置302 可以在没有对工具和主控环境的大量的冲击的情况下实施。
在本发明的一个方面中,如本文中所公开的软件保护装置(例如,软件保护装置302) 的配置可以在初始设备制造商(OEM)的控制的外部。在此方面中,软件保护装置可能并不限制OEM或其它方(例如,第三方软件开发者)在存储器装置304中安装任何软件的能力。软件保护装置可能并不需要通过OEM或第三方的特定执行。在一个方面中,软件保护装置(例如,软件保护装置302)可以是可扩展的(任何数量的核心装置)并且可与各种类型的核心装置一起使用。在一个方面中,架构300(或下文论述的架构400、600)可以基于目标软件318的存储器加密而不是基于对存储器装置(例如,存储器装置304)的存取控制来保护目标软件318(例如,目标软件318的指令和/或数据)。
在存储器装置中建立地址域
如图3所示,软件保护装置302的地址域管理器308可以在存储器装置304中产生一或多个地址域(例如,地址域316)。在一个实例中,响应于触发(例如,地址域建立命令332),地址域管理器308可以在存储器装置304中产生地址域316。在一个实例中,地址域建立命令332可以实施为来自CPU(为了便于说明在图3中未示出)的远程过程调用(RPC)。在另一个实例中,地址域建立命令332可为地址域管理器308的启动顺序的命令。地址域建立命令332可以包含信息的各种条目。在本发明的一个方面中,地址域建立命令332可以包含存储装置306中的目标软件318的位置(例如,存储器地址)、存储器装置304中的地址域316的位置(例如,存储器地址)和/或可用于验证和/或移除应用到目标软件318的指令和/或数据的任何加密保护的一或多个密钥的位置。
响应于接收地址域建立命令332,地址域管理器308可以产生地址域316的地址域标识符(RID)和地址域316的暂时加密密钥(EEK)。在一个方面中,EEK是在地址域316 维持在存储器装置304中时存在的临时或暂时性加密密钥。在本发明的一个方面中,RID 和EEK对于地址域316可以是唯一的,并且可能不与可在存储器装置304中建立的任何其它地址域相关联。在本发明的一个方面中,地址域管理器308可以在密钥存储区310 中通过排他性接口324存储RID和对应的EEK(例如,图3中所示的RID/EEK对314)。在本发明的一个方面中,RID可以披露于在软件保护装置302外的实体,而EEK可能对于在软件保护装置302外的任何实体来说是未知的。在本发明的一个方面中,RID、EEK 和它们的关联可以在软件保护装置302内修改,并且可能不能通过在软件保护装置302 外部的任何实体修改。
如图3所示,地址域管理器308可以通过来自存储装置306的传输320获取目标软件318的指令和/或数据的所有或至少其中的一些。在本发明的一个方面中,地址域管理器308可以获取目标软件318的指令和/或数据的所有或至少其中的一些,方法是读取存储装置306中的目标软件318的位置(例如,存储器地址),在此情况下传输320可以响应于读取操作而由地址域管理器308接收到。在本发明的一个方面中,存储在存储装置 306中的目标软件318可以受到保护。在一个实例中,目标软件318可以为纯文本的形式且物理地受到保护,在此情况下存储装置306可以经配置为安全存储装置(例如,芯片上存储装置、封装中的存储装置等)。在另一个实例中,目标软件318可以加密地受到保护(例如,加密地和/或认证地)。在此实例中,地址域管理器308可以从存储装置306中获取包含目标软件318的文件并且可以存取用于将加密保护施加于目标软件318的一或多个密钥(例如,一或多个永久性密钥)。地址域管理器308可以转至使用一或多个密钥来验证和/或移除(例如,解密)加密保护。在移除加密保护之后,地址域管理器308可随后使用RID/EEK对314的EEK对目标软件318的指令和/或数据进行加密并且可以在存储器装置304的地址域316中存储目标软件318的加密的指令和/或数据。
在一个实例中,地址域管理器308可以实现对目标软件318的指令和/或数据的加密,方法是在地址域管理器308内实施加密函数以及在地址域管理器308与存储器装置304之间实施直接接口322。在另一个实例中,地址域管理器308可以实现对目标软件318 的指令和/或数据的加密,方法是经由接口330实施软件保护装置302的存储器加密模块 312。在此实例中,地址域管理器308可以将与地址域316相关联的RID提供到存储器加密模块312。存储器加密模块312可以经由排他性接口326从密钥存储区310中检索与RID相关联的EEK。存储器加密模块312可以转至对目标软件318的指令和/或数据进行加密并且可以传输加密的指令和/或数据328以用于存储在存储器装置304的地址域 316中。应理解,地址域316中的目标软件318的加密形式(例如,目标软件318的指令和/或数据的加密形式)阻止核心装置(图3中未示出)能够执行目标软件318。
在本发明的一个方面中,用于基于EEK对目标软件318进行加密的加密方案可以物理地址相关。在此方面中,如果地址域316稍后在存储器装置304中从第一物理地址重新定位到第二物理地址中,那么地址域管理器308可以使用RID/EEK对314的EEK 和第一物理地址开始解密地址域316的内容。地址域管理器308可随后使用RID/EEK 对314的EEK和第二物理地址开始重新加密地址域316的内容。在本发明的一个方面中,当由EEK保护的地址域(例如,地址域316)的存储器页中的指令正由核心装置(例如,下文论述的核心装置402)执行时的周期期间RID/EEK对314的EEK可能有效(例如,存在),并且在地址域的存储器页中的指令已经被执行之后,EEK可能不再有效(例如,被删除)。
在第一实例架构中执行地址域
图4是根据本发明的各种方面的实例架构400的框图。举例来说,架构400可以实施于计算装置中,例如,个人计算机、蜂窝电话(也被称作用户设备)或手持型游戏装置。如图4中所示,架构400包含核心装置402、存储器管理单元(MMU)406、软件保护装置408和存储器装置410。举例来说,核心装置402可为中央处理单元(CPU)404中的处理器。在一个方面中,软件保护装置408可以包含地址域管理器412、密钥存储区414 和存储器加密模块416。在其它方面中,MMU 406可以包含于CPU 404中。在本发明的一个方面中,图4中的软件保护装置408、存储器装置410、地址域管理器412、密钥存储区414和存储器加密模块416可以相应地对应于图3中的软件保护装置302、存储器装置304、地址域管理器308、密钥存储区310和存储器加密模块312。
用于地址域执行的核心装置操作
在本发明的一个方面中,核心装置402可以通过将存储器命令传输到MMU 406来开始相对于存储器装置410的存储器事务。在一个实例中,存储器命令可经配置以执行从存储器装置410中读取数据的数据读取事务,或可经配置以执行将数据写入到存储器装置410的数据写入事务。在另一个实例中,存储器命令可经配置以执行从存储器装置 410中提取指令的指令提取事务(也被称作指令读取事务)。
在本发明的一个方面中,在地址域428已经建立并且目标软件318的加密的指令和/或数据已经以先前所描述的方式存储在地址域428中之后,核心装置402可以进入地址域428以从地址域428中读取数据、将数据写入到地址域428或从地址域428中提取指令。因此,在此方面中,核心装置402可以支持进入地址域428的指令,方法是参考对应于地址域428的RID。核心装置402可以进一步支持离开地址域428的指令。在本发明的一个方面中,核心装置402可以包含经配置以存储RID的RID寄存器418。RID寄存器418可能对于任何软件来说不可见。在一个实例中,RID寄存器418可以指示当零值或其它特定值存储在RID寄存器418中时没有地址域被参考或被识别。举例来说,进入地址域428的指令可以设置对应于RID寄存器418中的地址域428的RID值,并且可以允许跳转到地址域428的开始。在本发明的一个方面中,离开地址域的指令可以恢复存储器装置410中的先前的状态(例如,在进入地址域428之前)。在此实例中,核心装置402可以清除对应于RID寄存器418中的地址域428的RID值。
在本发明的一个方面中,在核心装置402与存储器装置410之间的每个存储器事务可以标记为包含当前存储在RID寄存器418中的RID、存储器事务的类型和任选的控制位。举例来说,当前存储在RID寄存器418中的RID可为与地址域428相关联的唯一二进制字符串。举例来说,存储器事务的类型(例如,数据或指令)可以使用单个位来指示。在此实例中,值“1”可以指示数据读取/写入事务并且值“0”可以指示指令提取事务。在本发明的一个方面中,保护当前存储在RID寄存器418中的RID和任选的控制位以免被不可信的软件修改。在一个情境中,例如,当核心装置402执行进入地址域428 的指令并且RID寄存器418包含对应于地址域428的RID时,核心装置402与存储器装置410之间的存储器事务(例如,数据读取/写入事务或指令提取事务)可以标记为包含 RID寄存器418中的RID和任选的控制位。任选的控制位可以允许或防止存储器事务从存储器装置410的区域中读取数据或将数据写入到存储器装置410的区域,所述存储器装置410的区域在地址域428的外部(也被称作存储器装置410的非地址域区域)。举例来说,核心装置402可以配置任选的控制位以允许或防止对存储器装置410的非地址域区域的受限存取。在一个方面中,此类受限存取可以使得能够从存储器装置410的非地址域区域中读取数据或将数据写入到存储器装置410的非地址域区域,但是不能从存储器装置410的非地址域区域中提取指令。任选的控制位在本文中也被称作“允许地址域外的数据”(DORA)位456。在本发明的一个方面中,DORA位456可能对于任何软件不可见。举例来说,核心装置402可以允许从存储器装置410的非地址域区域中读取存储器事务,方法是暂时地启用DORA位456(例如,设置DORA位456为“1”)。在另一个实例中,核心装置402可以防止从存储器装置410的非地址域区域中读取存储器事务,方法是暂时停用DORA位456(例如,设置DORA位456为“0”)。在本发明的一个方面中,当启用DORA位456(例如,设置为“1”)以允许从存储器装置410的非地址域区域(也被称作非地址域页面)中读取数据或将数据写入到存储器装置410的非地址域区域的存储器事务时,可能不准许从存储器装置410的非地址域区域中读取指令。为了开始存储器事务,核心装置402可以包含RID寄存器418中的RID、存储器事务的类型(例如,数据或指令)和存储器命令中的任选的DORA位456(例如,用于开始数据读取/写入事务或指令提取事务)并且可以将存储器命令传输到MMU 406。
用于地址域执行的存储器管理单元(MMU)操作
根据本发明的各种方面,MMU 406可以配置成用于地址解析的单个阶段或地址解析的多个阶段。在图4中所示的实例配置中,MMU 406包含地址解析的多个阶段,例如,第一地址解析阶段(也被称作MMU阶段1 420)和第二地址解析阶段(也被称作MMU 阶段2 422)。在一个实例中,MMU阶段1 420可经配置以将虚拟存储器地址转换为中间物理存储器地址。因此,MMU阶段1 420可以维持存储器页表(例如,虚拟地址与中间地址之间的映射)并且可以包含属于地址域的存储器页中的地址域指示符位(RB)424。举例来说,对应于存储器装置410中的地址域的每个存储器页可以使用RB 424标记为“地址域页”。因此,RB 424可以允许MMU 406识别存储器页是否属于地址域428。MMU 阶段2 422可经配置以将中间物理存储器地址转换为存储器装置410的物理存储器地址。因此,阶段2 422可以维持存储器页表(例如,中间地址与物理地址之间的映射)并且可以包含属于地址域的存储器页中的地址域指示符位(RB)426。举例来说,对应于存储器装置410中的地址域的每个存储器页可以使用RB426标记为“地址域页”。因此,RB 426 可以允许MMU 406识别存储器页是否属于地址域428。因此,其中启用RB 424或RB 426 (例如,RB 424或RB 426被设置成“1”)的任何存储器页可被视为属于地址域428的存储器页。在本发明的一个方面中,操作系统(OS)436可以控制458虚拟存储器地址到中间物理存储器地址的映射,并且虚拟存储器监测器(VMM)438可以控制460中间物理地址到物理存储器地址的映射。应理解,在其它方面中,MMU 406可以包含地址解析的两个以上阶段。
如图4中所示,MMU 406耦合到指令高速缓冲存储器装置(I-Cache)432和数据高速缓冲存储器装置(D-Cache)434。如图4中进一步所示,指令高速缓冲存储器装置432和数据高速缓冲存储器装置434耦合到软件保护装置408。在图4的配置中,应注意,在没有由软件保护装置408的存储器加密模块416执行的任何中间加密/解密操作的情况下,MMU 406可以经由指令流442与指令高速缓冲存储器装置432通信。在没有由软件保护装置408的存储器加密模块416执行的任何中间加密/解密操作的情况下,MMU 406还可以经由数据流448与数据高速缓冲存储器装置434通信。
在本发明的一个方面中,MMU 406可以从核心装置402中接收存储器事务(例如,起始数据读取/写入事务或指令提取事务的存储器命令)。存储器事务可以包含与存储器装置410相关联的存储器事务地址(例如,待从其中读取数据或指令或待将数据写入到其中的存储器地址)。MMU 406可以确定对应于存储器事务地址的存储器页并且可以确定存储器页的地址域指示符位(例如,RB 424或RB 426)的值(例如,“0”或“1”)。MMU 406可以包含从核心装置402接收的存储器事务中的地址域指示符位的值,并且可以将存储器事务以及RID 418(例如,当前存储在RID寄存器418中的值)、任选的DORA位 456和地址域指示符位的值转发到高速缓冲存储器装置。在一个实例中,MMU 406可以确定存储器事务是指令提取事务并且可以经由指令流442将此类存储器事务(包含RID 418、任选的DORA位456和地址域指示符位的值)转发到指令高速缓冲存储器装置432。在另一个实例中,MMU 406可以确定存储器事务是数据事务(例如,数据读取或数据写入事务)并且可以经由数据流448将存储器事务(包含RID 418、任选的DORA位456和地址域指示符位的值)转发到数据高速缓冲存储器装置434。在一个方面中,MMU 406 可能并不转换和/或修改存储器事务中的RID 418和任选的DORA位456。
在一个方面中,当并不启用存储器页的地址域指示符位(例如,RB 424或RB 426)(例如,RB 424或RB 426被设置成“0”)时,MMU 406可以验证包含于存储器事务中的 RID是否指示地址域。举例来说,当RID不是零时或当RID不是指示没有地址域的预定的特定值时,MMU 406可以确定包含于存储器事务中的RID指示地址域。在此方面中,如果没有启用存储器页的地址域指示符位并且包含于存储器事务中的RID指示地址域,那么MMU 406可能故障或迫使核心装置402离开地址域428(例如,迫使核心装置402 退出地址域428)。在本发明的一个方面中,地址域428可以是可扩展的,方法是设置一或多个额外的存储器页的地址域指示符位(例如,RB 424或RB 426)。在一个方面中,如果地址域指示符位是可操控的(例如,如果对于存储器页来说RB 424或RB 426的值被不可信的实体或软件改变),那么从自地址域428中读取的任何数据和/或指令将为防止由核心装置402处理的形式(例如,呈加密形式)。
用于地址域执行的高速缓冲存储器装置操作
在图4的方面中,MMU 406耦合到指令高速缓冲存储器装置(I-Cache)432和数据高速缓冲存储器装置(D-Cache)434。举例来说,核心装置402可以从指令高速缓冲存储器装置432中提取指令并且可以从数据高速缓冲存储器装置434中读取数据(或将数据写入到高速缓冲存储器装置434)。如图4中所示,指令高速缓冲存储器装置432和数据高速缓冲存储器装置434耦合到软件保护装置408。在本发明的一个方面中,指令高速缓冲存储器装置432和数据高速缓冲存储器装置434可被称为1级(L1)高速缓存。在此方面中,图4中的软件保护装置408可以被称为位于L1高速缓存之后。在其它方面中,软件保护装置408可以位于2级(L2)高速缓存与3级(L3)高速缓存之间。在又一其它方面中,软件保护装置408可以位于L3高速缓存(或在存储器装置410之前的最末一级高速缓存)与存储器装置410之间。应理解,本文中相对于指令高速缓冲存储器装置(例如,指令高速缓冲存储器装置(I-Cache)432)和数据高速缓冲存储器装置(例如,数据高速缓冲存储器装置(D-Cache)434)所描述的方面可以应用到经配置以存储数据与指令两者的单个高速缓冲存储器装置(也被称作统一高速缓冲存储器装置)。
在本发明的一个方面中并且如本文中详细的描述,指令高速缓冲存储器装置432可以存储从存储器装置410中提取的指令和所提取的指令的对应的存储器位置(例如,对应于存储器装置410中的区域的存储器页)。举例来说,存储在指令高速缓冲存储器装置 432中的指令可以是由于先前的指令提取存储器事务由核心装置402先前所请求的指令。
在本发明的另一方面中并且如本文中详细的描述,数据高速缓冲存储器装置434可以存储从存储器装置410中读取的数据和所读取数据的对应的存储器位置(例如,对应于存储器装置410中的区域的存储器页)。举例来说,存储在数据高速缓冲存储器装置434 中的数据可以是由于先前数据读取存储器事务由核心装置402先前所请求的数据。数据高速缓冲存储器装置434可以进一步存储待写入到存储器装置410的数据和其中待写入数据的对应的存储器位置(例如,对应于存储器装置410中的区域的存储器页)。举例来说,存储在数据高速缓冲存储器装置434中的数据可以是由于先前数据读取(或数据写入)存储器事务由核心装置402先前传输的数据。
i)确定允许或拒绝存储器事务
在本发明的一个方面中,当高速缓冲存储器装置(例如,指令高速缓冲存储器装置432或数据高速缓冲存储器装置434)接收存储器事务时,高速缓冲存储器装置可以确定是否允许或拒绝存储器事务。举例来说,存储器事务可为相对于存储器装置410由核心装置402初始的指令提取事务或数据读取/写入事务。将相对于图5的实例流程图500 描述确定是否允许或拒绝存储器事务的高速缓冲存储器装置的操作。因此,参考图5,当高速缓冲存储器装置接收存储器事务时,高速缓冲存储器装置可以识别502包含于存储器事务中的RID(例如,当前存储在RID寄存器418中的值)、包含于存储器事务中的地址域指示符位(例如,RB 424或RB 426)和包含于存储器事务中的任选的DORA位(例如,DORA位456)。高速缓冲存储器装置可以确定504 RID是否是零或指示没有地址域的预定的特定值。如果RID是零或指示没有地址域的预定的特定值,那么高速缓冲存储器装置可以允许506存储器事务。否则,如果RID不是零或预定的特定值,那么高速缓冲存储器装置可以确定508是否启用地址域指示符位(例如,是否将地址域指示符位设置成“1”)。如果启用地址域指示符位,那么高速缓冲存储器装置可以允许506存储器事务。否则,如果没有启用地址域指示符位,那么高速缓冲存储器装置可以确定510存储器事务是否是数据读取事务或数据写入事务。如果存储器事务不是数据读取事务或数据写入事务(例如,如果存储器事务是指令提取事务),那么高速缓冲存储器装置可以拒绝 512存储器事务。如果存储器事务是数据读取事务或数据写入事务,那么高速缓冲存储器装置可以确定514是否启用DORA位(例如,是否将DORA位设置成“1”)。当启用 DORA位时,高速缓冲存储器装置可以允许506存储器事务;或者当没有启用DORA位时,高速缓冲存储器装置可以拒绝512存储器事务。在本发明的其它方面中,相对于图 5的实例流程图500所描述的确定是否允许或拒绝存储器事务可以由MMU 406或其它合适的实体或装置来执行。
ii)地址域模式中的数据读取操作
在本发明的一个方面中,数据高速缓冲存储器装置434可以接收数据读取事务并且可以确定允许数据读取事务。数据高速缓冲存储器装置434可随后确定此类数据读取事务中的RID是否指示地址域(例如,当RID不是零或指示没有地址域的预定的特定值时, RID可以被确定为指示地址域)以及是否不启用数据读取事务中的地址域指示符位(例如,当地址域指示符位设置成“0”时,可能不启用地址域指示符位)。如果数据读取事务中的RID指示地址域并且没有启用地址域指示符位,那么对于任何后续操作来说,数据高速缓冲存储器装置434可以将数据读取事务中的RID定义为零(或预定的特定值)。应注意,为了在数据读取事务中的RID指示地址域并且没有启用地址域指示符位时允许数据读取事务,需要启用数据读取事务中的DORA位。
数据高速缓冲存储器装置434可以转至确定数据读取事务中所请求的数据是否当前存储在数据高速缓冲存储器装置434中。举例来说,数据高速缓冲存储器装置434可以验证数据读取事务中所指示的存储器位置(例如,对应于存储器装置410中的区域的存储器页或地址)是否已经先前从存储器装置410中接收到并且存储在数据高速缓冲存储器装置434处。如果数据读取事务中所请求的数据当前没有存储在数据高速缓冲存储器装置434中,那么可能出现高速缓存未命中并且数据高速缓冲存储器装置434可能将数据读取事务转发到软件保护装置408。软件保护装置408可以接收数据读取事务(例如,包含RID)并且可以将数据读取事务转发到存储器装置410。存储器装置410可以将由数据读取事务所请求的数据提供到软件保护装置408。
在一个方面中,如果由存储器装置410提供到软件保护装置408的数据来自与数据读取事务中的RID相关联的地址域(例如,地址域428),那么提供到软件保护装置408 的此类数据是呈加密形式的。因此,软件保护装置408可以转至通过与数据读取事务中的RID(例如,RID/EEK对430的EEK)相关联的EEK对从存储器装置410接收的数据进行解密。软件保护装置408可以经由数据流450将解密的数据以及RID(例如,地址域 428的RID)提供到数据高速缓冲存储器装置434。在一个方面中,数据高速缓冲存储器装置434可以存储具有包含与解密的数据相关联的存储器位置的高速缓存标记的解密的数据。在一个方面中,高速缓存标记可经配置以包含指示RID的地址域标记(Rtag),例如,地址域标记464。数据高速缓冲存储器装置434可随后经由数据流448、440将解密的数据传输到核心装置402。
在另一个方面中,如果由存储器装置410提供到软件保护装置408的数据来自地址域428的外部(例如,当RID被定义为零或指示没有地址域的特定的值时,没有启用地址域指示符位,并且在数据读取事务中启用DORA位),那么提供到软件保护装置408 的此类数据并不是呈加密形式的。软件保护装置408可以经由数据流450将数据以及 RID(例如,其中RID现在被定义为零或指示没有地址域的特定的值)提供到数据高速缓冲存储器装置434。在一个方面中,数据高速缓冲存储器装置434可以存储具有包含与数据相关联的存储器位置的高速缓存标记的数据。在一个方面中,高速缓存标记可经配置以包含指示RID的地址域标记(Rtag),例如,地址域标记464。数据高速缓冲存储器装置434可随后经由数据流448、440将数据传输到核心装置402。
如果数据高速缓冲存储器装置434确定数据读取事务中所请求的数据当前存储在数据高速缓冲存储器装置434中(例如,数据高速缓冲存储器装置434定位包含所请求的数据的高速缓存行),那么数据高速缓冲存储器装置434可以确定数据读取事务中的RID 是否匹配与包含所请求的数据的高速缓存行相关联的RID(例如,地址域标记464中的 RID)。如果数据读取事务中的RID匹配包含所请求的数据的高速缓存行中的RID,那么数据高速缓冲存储器装置434可以将所请求的数据传输到核心装置402。否则,如果数据读取事务中的RID并不匹配与包含所请求的数据的高速缓存行相关联的RID(例如,地址域标记464中的RID),那么数据高速缓冲存储器装置434可以阻止将所请求的数据传输到核心装置402。此外,在一个方面中,核心装置402可以将数据读取事务视作是失败的存储器事务并且可以离开地址域428。
iii)地址域模式中的指令提取操作
在本发明的一个方面中,指令高速缓冲存储器装置432可以接收指令提取事务并且可以确定允许指令提取事务。指令高速缓冲存储器装置432可以转至确定指令提取事务中所请求的指令是否当前存储在指令高速缓冲存储器装置432中。举例来说,指令高速缓冲存储器装置432可以验证指令提取事务中所指示的存储器位置(例如,对应于存储器装置410中的区域的存储器页或地址)是否已经先前从存储器装置410中接收到并且存储在指令高速缓冲存储器装置432中。如果指令提取事务中所请求的指令并没有当前存储在指令高速缓冲存储器装置432中,那么可能发生高速缓存未命中并且指令高速缓冲存储器装置432可以将指令提取事务转发到软件保护装置408。软件保护装置408可以接收指令提取事务(例如,包含RID)并且可以将指令提取事务转发到存储器装置410。存储器装置410可以将由指令提取事务所请求的指令提供到软件保护装置408。
应注意,如果由存储器装置410提供到软件保护装置408的指令来自与指令提取事务中的RID相关联的地址域(例如,地址域428),那么提供到软件保护装置408的此类指令是呈加密形式的。因此,软件保护装置408可以转至通过与指令提取事务中的RID 相关联的EEK对从存储器装置410接收的指令进行解密。软件保护装置408可以经由指令流444将解密的指令以及RID(例如,地址域428的RID)提供到指令高速缓冲存储器装置432。在一个方面中,指令高速缓冲存储器装置432可以存储具有高速缓存标记的解密的指令,所述高速缓存标记包含与解密的指令相关联的存储器位置。在一个方面中,高速缓存标记可经配置以包含地址域标记(例如,地址域标记462),所述地址域标记包含RID。指令高速缓冲存储器装置432可随后经由指令流442、440将解密的指令传输到核心装置402。
如果指令高速缓冲存储器装置432确定指令提取事务中所请求的指令当前存储在指令高速缓冲存储器装置432中(例如,指令高速缓冲存储器装置432定位包含所请求的指令的高速缓存行),那么指令高速缓冲存储器装置432可以确定指令提取事务中的RID 是否匹配与包含所请求的指令的高速缓存行相关联的RID(例如,地址域标记462中的 RID)。如果数据提取事务中的RID匹配与包含所请求的指令的高速缓存行相关联的RID,那么指令高速缓存装置432可以将所请求的指令传输到核心装置402。否则,如果指令提取事务中的RID并不匹配与包含所请求的指令的高速缓存行相关联的RID(例如,地址域标记462中的RID),那么指令高速缓冲存储器装置432可以阻止将所请求的数据传输到核心装置402。此外,在一个方面中,核心装置402可以将指令提取事务视作是失败的存储器事务并且可以退出地址域428。
iv)地址域模式中的数据写入操作
在本发明的一个方面中,数据高速缓冲存储器装置434可以接收数据写入事务并且可以确定允许数据写入事务。数据高速缓冲存储器装置434可随后确定此类数据写入事务中的RID是否指示地址域(例如,当RID不是零或指示没有地址域的预定的特定值时, RID可以被确定为指示地址域)以及是否不启用数据写入事务中的地址域指示符位(例如,地址域指示符位设置成“0”)。如果数据写入事务中的RID指示地址域并且没有启用地址域指示符位,那么对于任何后续操作来说,数据高速缓冲存储器装置434可以将数据写入事务中的RID定义为零(或预定的特定值)。应注意,为了在数据写入事务中的 RID指示地址域并且没有启用地址域指示符位时数据写入事务被允许,需要启用数据写入事务中的DORA位。
数据高速缓冲存储器装置434可以转至确定其中数据待写入的存储器装置410的存储器位置是否当前存储在数据高速缓冲存储器装置434中。举例来说,数据高速缓冲存储器装置434可以验证数据写入事务中所指示的存储器位置(例如,对应于存储器装置410中的区域的存储器页或地址)是否已经先前存储在数据高速缓冲存储器装置434中。如果其中数据待写入的存储器位置当前没有存储在数据高速缓冲存储器装置434中,那么可能发生高速缓存未命中并且数据高速缓冲存储器装置434可以转至存储数据。在一个实例中,数据高速缓冲存储器装置434可以在高速缓存行中存储待写入到存储器装置 410的数据以及指示其中数据待写入的存储器位置的信息和指示RID的地址域标记(例如,地址域标记464)。
当数据高速缓冲存储器装置434的高速缓存行被清空时,数据高速缓冲存储器装置 434可以经由数据流450将高速缓存行的数据以及其中数据待写入的存储器位置和与高速缓存行相关联的地址域标记(例如,地址域标记464)中的RID传输到软件保护装置 408。在一个方面中,如果地址域标记(例如,地址域标记464)中的RID指示地址域(例如,RID不是零或指示没有地址域的预定的特定值),那么软件保护装置408可以从密钥存储区414中获取与RID相关联的EEK并且可以通过EEK对数据进行加密(例如,通过实施存储器加密模块416)。软件保护装置408可随后在存储器装置410的地址域428 中(例如,在对应于如核心装置402所请求的地址域428的存储器位置中)存储加密的数据。在另一个方面中,如果地址域标记(例如,地址域标记464)中的RID并不指示地址域(例如,RID是零或指示没有地址域的预定的特定值),那么软件保护装置408可能并不对数据进行加密。在此方面中,软件保护装置408可随后在地址域428的外部的存储器装置410的存储器位置中存储数据。
如果数据高速缓冲存储器装置434确定其中数据待写入的存储器位置当前存储在数据高速缓冲存储器装置434中(例如,数据高速缓冲存储器装置434定位与其中数据待写入的存储器位置相关联的高速缓存行),那么数据高速缓冲存储器装置434可以确定数据写入事务中的RID是否匹配与所定位的高速缓存行相关联的RID(例如,地址域标记464 中的RID)。如果数据写入事务中的RID匹配数据高速缓冲存储器装置434中的与高速缓存行相关联的RID(例如,地址域标记464中的RID),那么数据高速缓冲存储器装置 434可以存储数据并且可以进一步在地址域标记中存储数据写入事务的RID。否则,如果数据写入事务中的RID并不匹配数据高速缓冲存储器装置434中的与高速缓存行相关联的RID(例如,地址域标记464中的RID),那么数据高速缓冲存储器装置434可以阻止存储待写入到存储器装置410的数据。此外,在一个方面中,核心装置402可以将数据写入事务视作是失败的存储器事务并且可以退出地址域428。因此,根据一些方面,为了将数据写入到已经存储在数据高速缓冲存储器装置434处并且具有不同于数据写入事务的RID的地址域标记(例如,地址域标记464)中的RID的存储器位置,在写入操作之前应当清空数据高速缓冲存储器装置434中的当前高速缓存行。
窥探高速缓存行
在一个实例情境中,当核心装置402请求来自与存储器装置410相关联的存储器位置的数据时,核心装置402的数据高速缓冲存储器装置434(也被称作局部数据高速缓存)可以确定存储器位置尚未被数据高速缓冲存储器装置434存储。在此情境中,数据高速缓冲存储器装置434可以窥探由软件保护装置408所服务的其它数据高速缓冲存储器装置的高速缓存行以确定此类其它数据高速缓冲存储器装置是否已经存储所请求的存储器位置。在一个方面中,数据高速缓冲存储器装置434和此类其它数据高速缓冲存储器装置可以位于软件保护装置408的上游,在此情况下软件保护装置408位于数据高速缓冲存储器装置434和其它数据高速缓冲存储器装置之后,但是位于存储器装置410之前。举例来说,数据高速缓冲存储器装置434可以经由窥探信道(例如,共享总线)将与对数据的请求相关联的RID传播到其它数据高速缓冲存储器装置。如果通过数据高速缓冲存储器装置434传播的RID匹配由其它数据高速缓存中的一个存储的高速缓存行的高速缓存标记中的RID,那么数据高速缓冲存储器装置434可以从具有匹配RID的数据高速缓冲存储器装置中接收和存储数据。当核心装置402请求来自与存储器装置410相关联的存储器位置的指令时,类似方法可以由指令高速缓冲存储器装置432施加。
在另一实例情境中,当核心装置402请求来自与存储器装置410相关联的存储器位置的数据时,核心装置402的数据高速缓冲存储器装置434(也被称作局部数据高速缓存)可以确定存储器位置尚未被数据高速缓冲存储器装置434存储。在此情境中,数据高速缓冲存储器装置434可以窥探由不同的软件保护装置(例如,除软件保护装置408以外的软件保护装置)服务的其它数据高速缓冲存储器装置。在此类情境中,数据高速缓冲存储器装置434和其它数据高速缓冲存储器装置可以在软件保护装置408与不同的软件保护装置两者的上游。在一个实例中,与对数据的请求相关联的RID可以在关闭群集总线上传播以确定与对数据的请求相关联的RID是否匹配高速缓存行中的高速缓存标记的 RID,所述高速缓存行是通过由不同的软件保护装置服务的其它数据高速缓冲存储器装置存储的。在另一实例方法中,数据高速缓冲存储器装置434可以阻止在关闭群集总线上传播与对数据的请求相关联的RID。替代地,数据高速缓冲存储器装置434可以确定与对数据的请求相关联的存储器位置的物理地址是否匹配其它数据高速缓冲存储器装置的任何高速缓存行中的物理地址。如果发现匹配,那么匹配的数据高速缓冲存储器装置中的所请求的数据可以使用匹配的数据高速缓冲存储器装置的高速缓存标记中的 RID(也被称作RID')由不同的软件保护装置加密。随后,所请求的数据可以使用与对数据的请求相关联的RID由软件保护装置408解密。因此,除非RID'等同(或等效)于与对来自核心装置402的数据的请求相关联的RID,否则所请求的数据可能并不能正确地解密并且可能并不能提供任何可用的数据。
转储高速缓存行
在本发明的一个方面中,存储在数据高速缓冲存储器装置434中的数据和/或存储在指令高速缓冲存储器装置432中的指令可以是普通文字(例如,未加密的)。在此方面中,攻击者(例如,敌对者468)可以通过传输第一高速缓存转储命令476尝试从数据高速缓冲存储器装置434中获取高速缓存的数据和/或可以通过传输第二高速缓存转储命令472 尝试从指令高速缓冲存储器装置432中获取高速缓冲存储的指令。攻击者可以进一步尝试经由命令474修改地址域指示符位424和/或尝试经由命令470修改地址域指示符位 426。举例来说,攻击者可以使用调适芯片或其它硬件和/或软件来传输第一高速缓存转储命令476和/或第二高速缓存转储命令472。为了防止高速缓存转储命令的此类未授权使用,滤波器装置466可以检测第一高速缓存转储命令476和/或第二高速缓存转储命令 472,并且可以确定地址域标记462、464中的RID是否是零或指示没有地址域的预定的特定值。在一个方面中,如果地址域标记462、464中的RID是零或预定的特定值,那么滤波器装置466可以传输存储在指令高速缓冲存储器装置432中的指令和/或可以传输存储在数据高速缓冲存储器装置434中的数据。否则,如果地址域标记462、464中的 RID是零或预定的特定值,那么滤波器装置466可以阻止响应于高速缓存转储命令而传输指令或数据。因此,滤波器装置466可以防止指令高速缓冲存储器装置432和/或数据高速缓冲存储器装置434的内容响应于高速缓存转储命令而传输(例如,到敌对者468)。在一个方面中,滤波器装置466可以实施于指令高速缓冲存储器装置432和/或数据高速缓冲存储器装置434中。
从非地址域模式中读取/写入受保护的地址域数据
在本发明的一个方面中,核心装置402可以清空高速缓冲存储器装置(例如,指令高速缓冲存储器装置432和/或数据高速缓冲存储器装置434)的高速缓存(或相关的高速缓存行)并且可以擦除与存储器装置(例如,存储器装置410)相关联的存储器页的页描述符中的地址域指示符位(例如,RB 424和/或RB 426)。核心装置402可随后开始读取或写入事务。举例来说,读取或写入事务可以在加密的数据上进行。核心装置402可随后再次清空高速缓存(或相关的高速缓存行)。核心装置402可以恢复存储器页的页描述符中的地址域指示符位。应注意,如果存储器页被换出,那么它可以和与存储器装置410相关联的初始物理地址换出。当存储器页被读取返回到高速缓冲存储器装置中时并且如果在与存储器装置410相关联的不同物理地址处再次载入,那么存储器页可以针对新的物理地址解密和重新加密。在一个方面中,此类调换操作可以由地址域管理器412管理。举例来说,地址域管理器412可以实施存储器加密模块416以执行加密和/或解密。
在第二实例架构中执行地址域
图6是根据本发明的各种方面的实例架构600的框图。举例来说,架构600可以实施于计算装置中,例如,个人计算机、蜂窝电话(也被称作UE)或手持型游戏装置。如图 6中所示,架构600包含核心装置602、存储器管理单元(MMU)606、软件保护装置608 和存储器装置610。举例来说,核心装置602可为中央处理单元(CPU)604中的处理器。在一个方面中,软件保护装置608可以包含地址域管理器612、密钥存储区614和存储器加密模块616。在其它方面中,MMU 606可以包含于CPU 604中。在本发明的一个方面中,图6中的软件保护装置608、存储器装置610、地址域管理器612、密钥存储区 614和存储器加密模块616可以相应地对应于图3中的软件保护装置302、存储器装置 304、地址域管理器308、密钥存储区310和存储器加密模块312。
用于地址域执行的核心装置操作
在本发明的一个方面中,核心装置602可以通过将存储器命令传输到MMU 606来开始相对于存储器装置610的存储器交易。因此,在一个实例中,存储器命令可经配置以执行从存储器装置610中读取数据的数据读取事务,或可经配置以执行将数据写入到存储器装置610的数据写入事务。在另一个实例中,存储器命令可经配置以执行从存储器装置610中提取指令的指令提取事务(也被称作指令读取事务)。
在本发明的一个方面中,在地址域628已经建立并且目标软件318的加密的指令和/或数据已经以先前所描述的方式存储在地址域628中之后,核心装置602可以进入地址域628以从地址域628中读取数据、将数据写入到地址域628或从地址域628中提取指令。在本发明的一个方面中,核心装置602可以包含经配置以存储RID的RID寄存器 618。RID寄存器618可能对于任何软件来说不可见。在一个实例中,RID寄存器618 可以指示当零值或其它特定值存储在RID寄存器618中时没有地址域被参考或被识别。举例来说,当核心装置602执行进入地址域628的指令时,核心装置602可以在RID寄存器618中设置对应于地址域628的RID值并且可以跳转到地址域628的开始。在本发明的一个方面中,核心装置602与存储器装置610之间的每个存储器事务可以标记为包含当前存储在RID寄存器618中的RID、存储器事务的类型(例如,数据或指令)和任选的控制位(也被称作DORA位665)。举例来说,类似于相对于图4先前所描述的核心装置402的存储器事务,核心装置602可以包含RID寄存器618中的RID、存储器事务的类型(例如,数据或指令)和存储器命令中的任选的DORA位665(例如,用于起始数据读取/写入事务或指令提取事务),并且可以将存储器命令传输到MMU 606。
用于地址域执行的存储器管理单元(MMU)操作
在本发明的一些方面中,MMU 606可以配置成用于地址解析的多个阶段。举例来说,如图6所示,MMU 606可以包含第一地址解析阶段(也被称作MMU阶段1 620)和第二地址解析阶段(也被称作MMU阶段2 622)。在一个实例中,MMU阶段1 620可经配置以将虚拟存储器地址转换为中间物理存储器地址。因此,MMU阶段1 620可以维持存储器页表(例如,虚拟地址与中间地址之间的映射)并且可以包含属于地址域的存储器页中的地址域指示符位(RB)624。MMU阶段2 622可经配置以将中间物理存储器地址转换为存储器装置610的物理存储器地址。因此,MMU阶段2 622可以维持存储器页表(例如,中间地址与物理地址之间的映射)并且可以包含属于地址域的存储器页中的地址域指示符位(RB)626。在本发明的一个方面中,操作系统(OS)636可以控制668虚拟存储器地址到中间物理存储器地址的映射,并且虚拟存储器监测器(VMM)638可以控制 670中间物理地址到物理存储器地址的映射。
在本发明的一个方面中,MMU 606可以从核心装置602中接收存储器事务(例如,起始数据读取/写入事务或指令提取事务的存储器命令)。存储器事务可以包含与存储器装置610相关联的存储器事务地址(例如,待从其中读取数据或指令或待将数据写入到其中的存储器地址)。MMU 606可以确定对应于存储器事务地址的存储器页并且可以确定存储器页的地址域指示符位(例如,RB 624或RB 626)的值(例如,“0”或“1”)。MMU 606可以包含从核心装置602接收的存储器事务中的地址域指示符位的值,并且可以将包含RID 618(例如,当前存储在RID寄存器618中的值)、任选的DORA位665和地址域指示符位的值的存储器事务转发到软件保护装置608。在一个实例中,MMU 606可以确定存储器事务是指令提取事务并且可以经由指令流642将此类存储器事务(包含RID 618、任选的DORA位665和地址域指示符位的值)转发到软件保护装置608。在另一个实例中,MMU 606可以确定存储器事务是数据事务(例如,数据读取或数据写入事务) 并且可以经由数据流648将存储器事务(包含RID 618、任选的DORA位665和地址域指示符位的值)转发到软件保护装置608。在一个方面中,MMU606可能并不转换和/或修改存储器事务中的RID 618和任选的DORA位665。在本发明的一个方面中,MMU 606 可以基于先前所描述的图5的实例流程图500来确定是否允许或拒绝存储器事务。
用于地址域执行的高速缓冲存储器装置操作
在图6的方面中,软件保护装置608耦合到指令高速缓冲存储器装置(I-Cache)632和数据高速缓冲存储器装置(D-Cache)634。举例来说,核心装置602可以经由指令流640、642及644从指令高速缓冲存储器装置632中提取指令并且可以经由数据流640、648及 650从数据高速缓冲存储器装置634中读取数据(或将数据写入到数据高速缓冲存储器装置634)。如图6中所示,指令高速缓冲存储器装置632和数据高速缓冲存储器装置634 进一步耦合到存储器装置610。在本发明的一个方面中,指令高速缓冲存储器装置632 和数据高速缓冲存储器装置634可被称为1级(L1)高速缓存。在此方面中,图6中的软件保护装置608可以被称为位于L1高速缓存之前。应理解,本文中相对于指令高速缓冲存储器装置(例如,指令高速缓冲存储器装置632)和数据高速缓冲存储器装置(例如,数据高速缓冲存储器装置634)所描述的方面可以应用到经配置以存储数据与指令两者的单个高速缓冲存储器装置(也被称作统一高速缓冲存储器装置)。
在本发明的一个方面中,指令高速缓冲存储器装置632可以存储从存储器装置610中提取的指令和所提取指令的对应的存储器位置(例如,对应于存储器装置610中的区域的存储器页)。举例来说,存储在指令高速缓冲存储器装置632中的指令可以是由于先前的指令提取存储器事务由核心装置602先前所请求的指令。在本发明的另一方面中,数据高速缓冲存储器装置634可以存储从存储器装置610中读取的数据和读取数据的对应的存储器位置(例如,对应于存储器装置610中的区域的存储器页)。举例来说,存储在数据高速缓冲存储器装置634中的数据可以是由于先前数据读取存储器事务由核心装置 602先前所请求的数据。数据高速缓冲存储器装置634可以进一步存储待写入到存储器装置610的数据和其中待写入数据的对应的存储器位置(例如,对应于存储器装置610 中的区域的存储器页)。举例来说,存储在数据高速缓冲存储器装置634中的数据可以是由于先前数据写入存储器事务由核心装置602先前传输的数据。
在一个实例中,核心装置602可以请求来自存储器装置610的地址域628的指令或数据。换句话说,核心装置602可以请求从与RID寄存器618中的RID相关联的存储器装置610中的区域中提取指令或读取数据。MMU 606可以确定请求被允许并且可以将请求转发到软件保护装置608。软件保护装置608可以接收对指令或数据的请求以及 RID 618。举例来说,如果请求指令,那么软件保护装置608可以经由指令流644将请求转发到指令高速缓冲存储器装置632,并且指令高速缓冲存储器装置632可以转至经由指令流646将请求转发到存储器装置610。之后,存储器装置610可以经由指令流646 将所请求的指令提供到指令高速缓冲存储器装置632。举例来说,如果请求数据,那么软件保护装置608可以经由数据流650将请求转发到数据高速缓冲存储器装置634,并且数据高速缓冲存储器装置634可以转至经由数据流652将请求转发到存储器装置610。之后,存储器装置610可以经由数据流652将所请求的数据提供到数据高速缓冲存储器装置634。
应注意,从存储器装置610的地址域628中读取的指令或数据可能是呈加密形式的。举例来说,地址域628中的指令或数据可以使用对应于地址域628的RID的EEK(例如,密钥存储区614中的RID/EEK对630的EEK)先前地加密。因此,如果请求指令,那么指令高速缓冲存储器装置632可以存储来自存储器装置610的加密的指令。如果请求数据,那么数据高速缓冲存储器装置634可以存储来自存储器装置610的加密的数据。当软件保护装置608接收来自指令高速缓冲存储器装置632的所请求的指令或来自数据高速缓冲存储器装置634的所请求的数据时,软件保护装置608可以使用对应于地址域628 的RID的EEK对所请求的指令或数据进行解密。在一个实例中,软件保护装置608可以经由指令流642、640将解密的指令提供到核心装置602或可以经由数据流648、640 将解密的数据提供到核心装置602。
在图6的配置中,由于软件保护装置608位于紧邻MMU 606之后,所以在读取/写入到高速缓冲存储器装置(例如,指令高速缓冲存储器装置632和数据高速缓冲存储器装置634)时可能施加延迟,这是因为由软件保护装置608执行的加密/解密操作(例如,由存储器加密模块616执行的加密/解密操作)。此类延迟可能并不适用于一些应用程序。
在一些情境中,攻击者(例如,敌对者672)可以尝试通过实施高速缓存转储命令从数据高速缓冲存储器装置634中获取所存储的数据或从指令高速缓冲存储器装置632中获取所存储的指令。举例来说,攻击者可以将第一高速缓存转储命令680传输到数据高速缓冲存储器装置634和/或将第二高速缓存转储命令676传输到指令高速缓冲存储器装置632。攻击者可以进一步尝试经由命令678修改RB 624和/或尝试经由命令674修改 RB 626。举例来说,攻击者可以使用调适芯片或其它硬件和/或软件来传输第一高速缓存转储命令680和/或第二高速缓存转储命令676。然而,由于数据高速缓冲存储器装置634 中所存储的数据或指令高速缓冲存储器装置632中所存储的指令是呈加密形式的,所以数据高速缓冲存储器装置634和指令高速缓冲存储器装置632可以传输并不包含任何可用(例如,可理解)信息的加密的输出682、684。
示例性设备及其上的方法
图7是根据本发明的一或多个方面(例如,与下文所描述的图8-13的方法相关的方面)经配置以支持与存储器装置中保护软件相关的操作的设备700的说明。设备700包含通信接口(例如,至少一个收发器)702、核心装置704、用户接口706、存储装置708、存储器装置710、MMU电路712、高速缓冲存储器装置714和软件保护装置716。
这些组件可以经由信令总线或其它合适的组件(一般由图7中的连接线表示)耦合到彼此和/或放置成彼此电连通。信令总线可以包含任何数量的互连总线和桥接器,这取决于核心装置704的特定应用和总体设计约束。信令总线将通信接口702、核心装置704、用户接口706和MMU电路712链接在一起。信令总线还可将例如计时源、外围装置、电压调节器和功率管理电路的各种其它电路(未示出)链接在一起,所述各种其它电路是所属领域中熟知的且因此将不再进一步描述。
通信接口702可以经调适以有助于设备700的无线通信。举例来说,通信接口702可以包含经调适以有助于相对于网络中的一或多个通信装置双向地进行信息通信的电路系统和/或代码(例如,指令)。通信接口702可以耦合到一或多个天线718以用于在无线通信系统内无线通信。通信接口702可以配置有一或多个独立式接收器和/或发射器以及一或多个收发器。在所说明的实例中,通信接口702包含接收器720和发射器722。
核心装置704可以包含对于外部实体来说不可写入存取的一或多个寄存器724,例如,RID寄存器418或用于设置任选的控制位(例如,DORA位456)的寄存器。举例来说,核心装置704可以对应于图4中的核心装置402或图6中的核心装置602。
存储器装置710可以表示一或多个存储器装置。举例来说,存储器装置710可以对应于图3中的存储器装置304或图4中的存储器装置410。存储器装置710可以用作设备700的核心装置704的主存储器。在一些实施方案中,存储器装置710、存储装置708 和存储媒体750、780实施为通用存储器组件。存储器装置710还可以用于存储由设备 700的核心装置704或一些其它组件操控的数据。
存储媒体750、780可以表示用于存储代码的一或多个计算机可读、机器可读和/或处理器可读装置,所述代码例如处理器可执行代码或指令(例如,软件、固件)、电子数据、数据库或其它数字信息。举例来说,存储媒体750可用于存储由高速缓冲存储器装置的处理电路730在执行代码时操控的数据。举例来说,存储媒体780可用于存储由软件保护装置716的处理电路770在执行代码时操控的数据。存储媒体750、780可以是可由通用或专用处理器存取的任何可用的媒体,其包含便携式或固定存储装置、光学存储装置和能够存储、容纳或运载代码的各种其它媒体。
借助于实例而非限制,存储媒体750和/或存储媒体780可以包含磁性存储装置(例如,硬盘、软盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功能光盘(DVD))、智能卡、闪存存储器装置(例如,卡、棒或钥匙驱动)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可移动磁盘,以及用于储存可由计算机存取和读取的代码的任何其它合适的媒体。存储媒体750和/或存储媒体780可以实施于制品(例如,计算机程序产品)中。借助于实例,计算机程序产品可以包含封装材料中的计算机可读媒体。鉴于上文,在一些实施方案中,存储媒体750、780可以各自为非暂时性(例如,有形的)存储媒体。存储媒体750可以耦合到高速缓冲存储器装置714的处理电路730,使得处理电路730可以从存储媒体750 中读取信息并且将信息写入到存储媒体750。存储媒体780可耦合到软件保护装置716 的处理电路770,使得处理电路770可从存储媒体780中读取信息并且将信息写入到存储媒体780。
当由高速缓冲存储器装置714的处理电路730执行时,由存储媒体750存储的代码和/或指令使得处理电路730执行本文中所描述的各种功能和/或处理操作中的一或多个。举例来说,存储媒体750可以包含经配置用于调节处理电路730的一或多个硬件块处的操作的操作。当由软件保护装置716的处理电路770执行时,由存储媒体780存储的代码和/或指令使得处理电路770执行本文中所描述的各种功能和/或处理操作中的一或多个。举例来说,存储媒体780可以包含经配置用于调节处理电路770的一或多个硬件块处的操作的操作。
高速缓冲存储器装置714的处理电路730一般适用于处理,包含存储在存储媒体750 上的此类代码/指令的执行如本文所使用,术语“代码”或“指令”将大体上解释为包含但不限于编程、指令、指令集、数据、代码、代码段、程序代码、程序、子程式、软件模块、应用程序、软件应用程序、软件包、例程、子程序、对象、可执行文件、执行的线程、过程、功能等,无论是否被称作软件、固件、中间件、微码、硬件描述语言,或其它情况。
高速缓冲存储器装置714的处理电路730经布置以获取、处理和/或发送数据,控制数据存取和存储,发布命令以及控制其它所希望的操作。在至少一个实例中,处理电路 730可以包含经配置以实施由合适媒体所提供的所希望的代码的电路系统。举例来说,处理电路730可以实施为一或多个处理器、一或多个控制器和/或经配置以执行可执行代码的其它结构。处理电路730的实例可包含通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述功能的任何组合。通用处理器可以包含微处理器以及任何常规的处理器、控制器、微控制器或状态机。处理电路730也可以实施为计算组件的组合,例如DSP和微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器、ASIC和微处理器,或任何其它数量的不同配置。处理电路730 的这些实例是出于说明目的的,且还预期在本发明的范围内的其它合适的配置。
根据本发明的一或多个方面,处理电路730可以经调适以执行本文中所描述的设备中的任一者或全部的特征、过程、功能、操作和/或例程中的任一者或全部。如本文所使用,相对于处理电路730的术语“调适”可指代处理电路730经配置、采用、实施和/ 或编程中的一或多个以执行根据本文中所描述的各种特征的特定过程、功能、操作和/ 或例程。
根据设备700的至少一个实例,处理电路730可以包含接收电路/模块732、高速缓冲存储器控制电路/模块734、传输电路/模块736、存储电路/模块738、经经调适以执行本文中所描述的特征、过程、功能、操作和/或例程(例如,相对于图8-11所描述的特征、过程、功能、操作和/或例程)中的任一者或全部的RID匹配电路/模块740中的一或多个。
接收电路/模块732可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体750上的接收指令752),所述若干功能与以下操作相关(例如):接收读取与存储器装置相关联的指令或数据的请求,所述请求包含至少第一地址域标识符和地址域指示符位;从至少一个远程高速缓冲存储器装置中接收指令或数据;接收高速缓存转储命令;从至少一个远程高速缓冲存储器装置中接收指令或数据,其中接收到的指令或数据基于暂时加密密钥在与至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密并且随后基于接收之前的暂时加密密钥在与高速缓冲存储器装置相关联的软件保护装置处进行解密;以及接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一地址域标识符和地址域指示符位。
高速缓冲存储器控制电路/模块734可以包含经调适以执行若干功能的电路系统和/ 或指令(例如,存储在存储媒体750上的高速缓冲存储器控制指令754),所述若干功能与以下操作相关(例如):至少基于第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝读取指令或数据的请求;至少基于第一地址域标识符、地址域指示符位或控制位确定是否允许或拒绝写入数据的请求;当请求是读取数据、第一地址域标识符指示地址域、没有启用地址域指示符位以及启用控制位时,将第一地址域标识符定义为零;当指令或数据存储在高速缓冲存储器装置中时,确定高速缓存标记中的第二地址域标识符是否是零或指示没有地址域的特定值;确定存储器页是否存储在高速缓冲存储器装置处;当指令或数据没有存储在高速缓冲存储器装置中时,从存储器装置中获取指令或数据;当请求是写入数据、第一地址域标识符指示存储器装置中的地址域、没有启用地址域指示符位以及启用控制位时,将第一地址域标识符定义为零或指示没有地址域的特定值。
传输电路/模块736可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体750上的传输指令756),所述若干功能与以下操作相关(例如):当第一地址域标识符匹配第二地址域标识符时传输指令或数据;当第一地址域标识符并不匹配第二地址域标识符时阻止传输指令;当请求被拒绝时阻止传输指令或数据;当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时,响应于高速缓存转储命令而阻止传输指令或数据;当高速缓存标记中的第二地址域标识符不同于零或指示没有地址域的特定值时,响应于高速缓存转储命令而传输零值;当指令或数据并不是存储在高速缓冲存储器装置中时,将请求和第一地址域标识符传输到高速缓存的相同群集中的至少一个远程高速缓冲存储器;当指令或数据并不是存储在高速缓冲存储器装置中时,将请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置。
存储电路/模块738可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体750上的存储指令758),所述若干功能与以下操作相关(例如):在高速缓冲存储器装置处存储具有包含第一地址域标识符的第二高速缓存标记的接收到的指令或数据;当第一地址域标识符匹配第二地址域标识符时,在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据;当存储器页并不是存储在高速缓冲存储器装置处时,在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据;当请求被拒绝时,阻止在高速缓冲存储器装置处的存储器页中存储数据;以及当第一地址域标识符并不匹配第二地址域标识符时,阻止在高速缓冲存储器装置处的存储器页中存储数据。
RID匹配电路/模块740可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体750上的RID匹配指令760),所述若干功能与如下操作相关(例如):当指令或数据存储在高速缓冲存储器装置中时,确定第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符;和/或当存储器页存储在高速缓冲存储器装置处时,确定与存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配第一地址域标识符。
如上所述,由存储媒体750所存储的指令在由高速缓冲存储器装置714的处理电路730执行时使得处理电路730执行本文中所描述的各种功能和/或处理操作中的一或多个。举例来说,存储媒体750可以包含接收指令752、高速缓冲存储器控制指令754、传输指令756、存储指令758和RID匹配指令760中的一或多个。
软件保护装置716的处理电路770一般适用于处理,包含在存储媒体780上存储的此类代码/指令的执行。软件保护装置716的处理电路770经布置以获取、处理和/或发送数据、控制数据存取和存储、发布命令,以及控制其它所希望的操作。处理电路770 可以包含经配置以实施由至少一个实例中的合适的媒体所提供的所希望的代码的电路系统。举例来说,处理电路770可以实施为一或多个处理器、一或多个控制器和/或经配置以执行可执行代码的其它结构。处理电路770的实例可包含通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述功能的其任何组合。通用处理器可以包含微处理器以及任何常规的处理器、控制器、微控制器或状态机。处理电路770也可以实施为计算组件的组合,例如DSP和微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器、ASIC和微处理器,或任何其它数量的不同配置。处理电路770的这些实例是出于说明目的的,且还预期在本发明的范围内的其它合适的配置。
根据本发明的一或多个方面,处理电路770可以经调适以执行本文中所描述的设备中的任一者或全部的特征、过程、功能、操作和/或例程中的任一者或全部。如本文所使用,相对于处理电路770的术语“调适”可指代处理电路770经配置、采用、实施和/ 或编程中的一或多个以执行根据本文中所描述的各种特征的特定过程、功能、操作和/ 或例程。
根据设备700的至少一个实例,处理电路770可以包含接收电路/模块772、加密/解密电路/模块774和传输电路/模块776中的一或多个,所述电路/模块经调适以执行本文中所描述的特征、过程、功能、操作和/或例程中的任一者或全部(例如,相对于图12 和13所描述的特征、过程、功能、操作和/或例程)。
接收电路/模块772可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体780上的接收指令782),所述若干功能与如下操作相关(例如):接收读取存储器装置的请求,所述请求包含与存储器装置中的一或多个选定区域相关联的地址域标识符;和/或接收将数据写入到存储器装置的请求,所述请求包含与存储器装置中的一或多个选定区域相关联的RID。
加密/解密电路/模块774可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体780上的加密/解密指令784),所述若干功能与如下操作相关(例如):基于与地址域标识符相关联的暂时加密密钥对从存储器装置中的一或多个选定区域中检索到的指令或数据中的至少一个进行解密;和/或基于与地址域标识符相关联的暂时加密密钥对数据进行加密。
传输电路/模块776可以包含经调适以执行若干功能的电路系统和/或指令(例如,存储在存储媒体780上的传输指令786),所述若干功能与如下操作相关(例如):将解密的指令或解密的数据中的至少一者传输到具有地址域标识符的高速缓冲存储器装置;和/ 或将加密的数据传输到存储器装置。
第一实例方法
图8说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法800。在一个方面中,高速缓冲存储器装置接收读取与存储器装置802相关联的指令或数据的请求(也被称作存储器事务)。请求可以包含使得能够识别包含存储器装置中的一或多个选定区域的地址域的第一地址域标识符(RID)。请求可以进一步包含地址域指示符位(RB)和/或任选的DORA位。高速缓冲存储器装置至少基于第一地址域标识符、地址域指示符位或DORA位804确定是否允许或拒绝请求。在一个方面中,高速缓冲存储器装置可以实施图5的实例流程图500的操作以确定是否允许或拒绝请求。如果请求被拒绝,那么高速缓冲存储器装置阻止传输数据或指令806。如果请求被允许,那么高速缓冲存储器装置确定第一RID是否是零(或指示没有地址域的预定的特定值)以及是否没有启用地址域指示符位808。如果第一RID不是零(或指示没有地址域的预定的特定值)并且没有启用地址域指示符位(例如,RB=“0”),那么高速缓冲存储器装置对于后续操作将第一RID定义为零(或指示没有地址域的预定的特定值)810。举例来说并且参考图5,应注意当第一RID不是零(或指示没有地址域的预定的特定值) 以及没有启用存储器事务的地址域指示符位(例如,RB=“0”)时对于待允许的存储器事务来说,此类存储器事务是具有启用的DORA位的读取或写入数据的请求(而不是指令)。
高速缓冲存储器装置确定数据或指令是否存储在高速缓冲存储器装置中812。如果数据或指令不是存储在高速缓冲存储器装置中,那么高速缓冲存储器装置从存储器装置814的区域中获取指令或数据。高速缓冲存储器装置在高速缓冲存储器装置处存储具有包含第一RID 816的第二高速缓存标记的所获取的指令或数据。高速缓冲存储器装置随后传输指令或数据818。如果指令或数据存储在高速缓冲存储器装置中(例如,高速缓存命中出现),那么高速缓冲存储器装置确定第一RID是否匹配高速缓存标记中的第二RID 820。在一个实例情境中,当第一RID指示地址域时以及当启用地址域指示符位(例如, RB=“1”)时,存储在高速缓冲存储器装置中的指令或数据已经基于与第一RID相关联的暂时加密密钥(例如,在软件保护装置处)进行解密。当第一RID匹配第二RID时,高速缓冲存储器装置传输指令或数据822。否则,当第一地址域标识符并不匹配第二地址域标识符时,高速缓冲存储器装置阻止传输指令或数据824。
第二实例方法
图9说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法900。在一个方面中,方法900可以在写入分配类型的高速缓冲存储器装置或回写类型的高速缓冲存储器装置中操作。然而,可理解,方法900可以在任何其它合适的类型的高速缓冲存储器装置中有效地实施。高速缓冲存储器装置接收将数据写入到与存储器装置的区域相关联的存储器页的请求902。请求可以包含待写入的数据、第一RID、地址域指示符位和任选的DORA位。举例来说,第一地址域标识符使得能够识别包含存储器装置中的一或多个选定区域的地址域。高速缓冲存储器装置基于第一RID、地址域指示符位和/或DORA位确定是否允许或拒绝写入数据的请求904。在一个方面中,高速缓冲存储器装置可以实施图5的实例流程图500的操作以确定是否允许或拒绝请求。如果请求被拒绝,那么高速缓冲存储器装置阻止在高速缓冲存储器装置处的存储器页中存储数据906。如果请求被允许,那么高速缓冲存储器装置确定第一RID 是否是零(或指示没有地址域的预定的特定值)以及是否没有启用地址域指示符位908。如果第一RID不是零(或指示没有地址域的预定的特定值)并且没有启用地址域指示符位 (例如,RB=“0”),那么高速缓冲存储器装置对于后续操作将第一RID定义为零(或指示没有地址域的预定的特定值)910。举例来说并且参考图5,应注意当对于存储器事物第一RID不是零(或指示没有地址域的预定的特定值)以及没有启用地址域指示符位(例如,RB=“0”)时对于待允许的存储器事务来说,此类存储器事务是读取或写入具有启用的DORA位的数据的请求。
高速缓冲存储器装置确定存储器页是否存储在高速缓冲存储器装置处912。如果存储器页没有存储在高速缓冲存储器装置中,那么高速缓冲存储器装置在高速缓冲存储器装置处的存储器页中存储具有包含第一RID的高速缓存标记的数据914。在一个方面中,如果第一RID不是零(或指示没有地址域的预定的特定值)并且针对存储器页设置地址域指示符位,那么在高速缓冲存储器装置被清空之后通过与第一RID相关联的EEK对数据进行加密。如果存储器页存储在高速缓冲存储器装置中,那么高速缓冲存储器装置确定与存储器页相关联的高速缓存标记中的第二RID是否匹配第一RID 916。当第一RID 并不匹配第二RID时,高速缓冲存储器装置阻止在高速缓冲存储器装置处的存储器页中存储数据918。否则,当第一RID匹配第二RID时,高速缓冲存储器装置在高速缓冲存储器装置处的存储器页中存储具有包含第一地址域标识符的高速缓存标记的数据914。在一个方面中,当第一地址域标识符匹配第二地址域标识符时,存储于高速缓冲存储器装置处的存储器页中的数据在存储于对应于存储器页的存储器装置的区域中之前使用与第一地址域标识符相关联的暂时加密密钥进行加密(例如,在软件保护装置处)。
第三实例方法
图10说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。应理解,图10中的虚线指示的操作表示任选的操作。在一个方面中,高速缓冲存储器装置可以接收读取与存储器装置相关联的指令或数据的请求(也被称作存储器事务)1002。请求可以包含使得能够识别包含存储器装置中的一或多个选定区域的地址域的第一地址域标识符(RID)。请求可以进一步包含地址域指示符位(RB) 和/或任选的DORA位。高速缓冲存储器装置可以基于第一RID、地址域指示符位和/或 DORA位确定是否允许或拒绝请求1004。在一个方面中,高速缓冲存储器装置可以实施图5的实例流程图500的操作以确定是否允许或拒绝请求。如果请求被拒绝,那么高速缓冲存储器装置可以阻止传输指令或数据1006。如果请求被允许,那么高速缓冲存储器装置可以确定指令或数据并不是存储在高速缓冲存储器装置处1008。当指令或数据并不是存储在高速缓冲存储器装置中时,高速缓冲存储器装置可以将请求和第一RID传输到高速缓冲存储器装置的相同群集中的至少一个远程高速缓冲存储器装置1010。高速缓冲存储器装置可以从至少一个远程高速缓冲存储器装置中接收指令或数据1012。当指令或数据并不是存储在高速缓冲存储器装置中时,高速缓冲存储器装置可以将请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置1014。高速缓冲存储器装置可以从高速缓存的不同群集中的至少一个远程高速缓冲存储器装置中接收指令或数据 1016。在一个方面中,从高速缓存的不同群集中的至少一个远程高速缓冲存储器装置中接收到的指令或数据是基于暂时加密密钥在与至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密的,并且随后在接收之前基于暂时加密密钥在与高速缓冲存储器装置相关联的软件保护装置处进行解密。
第四实例方法
图11说明根据本发明的各种方面对于在高速缓冲存储器装置处的存储器事务来说可在设备中操作的方法。应理解,图11中的虚线指示的操作表示任选的操作。高速缓冲存储器装置接收高速缓存转储命令1102。当指令或数据当前存储在高速缓冲存储器装置中时,高速缓冲存储器装置确定存储在高速缓冲存储器装置处的高速缓存标记中的 RID是否是零(或指示没有地址域的特定值)1104。如果高速缓存标记中的RID是零(或指示没有地址域的特定值),那么高速缓冲存储器装置传输与高速缓存标记相关联的指令或数据1106。否则,当高速缓存标记中的第二RID不同于零(或指示没有地址域的特定值)时,高速缓冲存储器装置阻止响应于高速缓存转储命令而传输指令或数据。当高速缓存标记中的第二RID不同于零(或指示没有地址域的特定值)时,高速缓冲存储器装置可以转至响应于高速缓存转储命令而传输零(“0”)值1110。
第五实例方法
图12说明根据本发明的各种方面对于在软件保护装置处的安全存储器事务来说可在设备中操作的方法。软件保护装置接收读取存储器装置的请求,所述请求包含与存储器装置中的一或多个选定区域相关联的地址域标识符1202。软件保护装置基于与地址域标识符相关联的暂时加密密钥对从存储器装置中的一或多个选定区域中检索到的指令或数据中的至少一个进行解密1204。软件保护装置将解密的指令或解密的数据中的至少一者传输到具有地址域标识符的高速缓冲存储器装置1206。
第六实例方法
图13说明根据本发明的各种方面对于在软件保护装置处的安全存储器事务来说可在设备中操作的方法。软件保护装置接收将数据写入到存储器装置的请求,所述请求包含与存储器装置中的一或多个选定区域相关联的RID 1302。软件保护装置基于与地址域标识符相关联的暂时加密密钥对数据进行加密1304。软件保护装置将加密的数据传输到存储器装置1306。
所属领域的技术人员将进一步理解,结合本文中所公开的实施方案描述的各种说明性逻辑块、模块、电路和算法步骤可被实施为硬件、软件、固件、中间件、微码或其任何组合。为了清楚说明此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。此类功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。
在本发明内,词语“示例性”用于意味着“充当实例、例子或说明”。本文中描述为“示例性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。类似地,术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。术语“耦合”在本文中用于指两个物体之间的直接或间接耦合。举例来说,如果物体A物理地接触物体B,且物体B接触物体C,那么物体A和C仍可被视为耦合到彼此,即使它们不直接物理地接触彼此仍是这样。举例来说,第一裸片可耦合到封装中的第二裸片,即使第一裸片永不直接物理地接触第二裸片也如此。术语“电路”和“电路系统”广泛地使用,且意图包含电气装置和导体的硬件实施方案以及信息和指令的软件实施方案两者,所述电气装置和导体当经连接和经配置时实现本发明中描述的功能的性能,不受电子电路的类型的限制,所述信息和指令在由处理器执行时实现本发明中描述的功能的性能。
如本文中所使用,术语“确定”涵盖多种多样的动作。举例来说,“确定”可包含推算、计算、处理、导出、研究、查找(例如,在表、数据库或另一数据结构中查找)、断定等等。并且,“确定”可包含接收(例如,接收信息)、存取(例如,存取存储器中的数据)等等。并且,“确定”可包含解析、选择、挑选、建立等等。
提供先前的描述以使得所属领域的技术人员能够实践本文中所描述的各个方面。对于所属领域的技术人员而言这些方面的各种修改将是显而易见的,并且本文中所定义的通用原理可以应用于其它方面。因此,权利要求书并非意图限于本文中所示出的方面,而是被赋予与权利要求书的语言相一致的完整范围,其中以单数形式参考元件并不意图意味着“一个且仅一个”(除非明确地如此陈述),而是实际上“一或多个”。除非另外明确地陈述,否则术语“一些”指代一或多个。参考项目列表中的“至少一个”的短语是指那些项目的任何组合,包含单个成员。作为一个实例,“以下各项中的至少一个:a、 b或c”意图涵盖:a;b;c;a和b;a和c;b和c;以及a、b和c。所属领域的技术人员已知或稍后将知晓的贯穿本发明而描述的各种方面的元件的所有结构及功能等效物以引用的方式明确地并入本文中,且意图由所附权利要求书涵盖。此外,本文中所公开的任何内容均不意图专用于公众,无论权利要求书中是否明确地陈述此公开内容。除非使用短语“用于……的装置”明确叙述权利要求项要素,或在方法项的情况下,使用短语“用于……的步骤”叙述所述要素,否则不依据35U.S.C.§112第六段的规定解释所述要素。
因此,在不脱离本发明的范围的情况下,可在不同实例和实施方案中实施与本文中所描述以及附图中所示的实例相关联的各种特征。因此,尽管已经描述且在附图中示出某些特定构造和布置,但此类实施方案仅为说明性且不限制本发明的范围,因为对所描述实施方案的各种其它添加和修改以及从所描述实施方案的删除将是对所属领域的一般技术人员显而易见的。因此,本发明的范围仅由所附权利要求书的文字语言及合法等效物来确定。

Claims (42)

1.一种用于高速缓冲存储器装置的方法,其包括:
接收读取与存储器装置相关联的指令或数据的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
当所述指令或数据存储在所述高速缓冲存储器装置中时,确定所述第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符,其中当所述第一地址域标识符指示所述地址域时以及当启用所述地址域指示符位时,存储在所述高速缓冲存储器装置中的所述指令或数据已经基于与所述第二地址域标识符相关联的暂时加密密钥进行解密;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,传输所述指令或数据。
2.根据权利要求1所述的方法,其进一步包括:
当所述第一地址域标识符并不匹配所述第二地址域标识符时,阻止传输所述指令。
3.根据权利要求1所述的方法,其中所述暂时加密密钥是在所述地址域保持在所述存储器装置中时存在的临时或暂时性加密密钥。
4.根据权利要求1所述的方法,其中所述请求进一步包含指示是否允许存取地址域外的数据的控制位,所述方法进一步包括:
至少基于所述第一地址域标识符、所述地址域指示符位或所述控制位确定是否允许或拒绝所述请求;以及
当所述请求被拒绝时阻止传输所述数据或指令。
5.根据权利要求4所述的方法,其中当所述请求是读取所述数据、所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,所述请求被允许。
6.根据权利要求4所述的方法,其进一步包括:
当所述请求是读取所述数据、所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,将所述第一地址域标识符定义为零。
7.根据权利要求1所述的方法,其进一步包括:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,从所述存储器装置中获取所述指令或数据;以及
在所述高速缓冲存储器装置处存储具有包含所述第一地址域标识符的第二高速缓存标记的所述所获取的指令或数据。
8.根据权利要求7所述的方法,其中当所述第一地址域标识符指示所述地址域时并且当启用所述地址域指示符位时,从所述存储器装置中接收的所述指令或数据已经基于与所述第一地址域标识符相关联的所述暂时加密密钥进行解密。
9.根据权利要求1所述的方法,其进一步包括:
接收高速缓存转储命令;
当所述指令或数据存储在所述高速缓冲存储器装置中时,确定所述高速缓存标记中的所述第二地址域标识符是否是零或指示没有地址域的特定值;以及
当所述高速缓存标记中的所述第二地址域标识符不同于零或指示没有地址域的特定值时,阻止响应于所述高速缓存转储命令而传输所述指令或数据。
10.根据权利要求9所述的方法,其进一步包括:
当所述高速缓存标记中的所述第二地址域标识符不同于零或指示没有地址域的所述特定值时,响应于所述高速缓存转储命令而传输零值。
11.根据权利要求1所述的方法,其进一步包括:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,将所述请求和所述第一地址域标识符传输到高速缓存的相同群集中的至少一个远程高速缓冲存储器;以及
从所述至少一个远程高速缓冲存储器装置中接收所述指令或数据。
12.根据权利要求1所述的方法,其进一步包括:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,将所述请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置;以及
从所述至少一个远程高速缓冲存储器装置中接收所述指令或数据,其中所述接收到的指令或数据是基于所述暂时加密密钥在与所述至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密并且随后在接收之前基于所述暂时加密密钥在与所述高速缓冲存储器装置相关联的软件保护装置处进行解密。
13.一种用于存储器事务的设备,其包括:
存储器装置;
核心装置,其耦合到所述存储器装置;以及
高速缓冲存储器装置,其耦合到所述存储器装置和所述核心装置,所述高速缓冲存储器装置包含处理电路,所述处理电路经配置以进行以下操作:
接收读取与所述存储器装置相关联的指令或数据的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
当所述指令或数据存储在所述高速缓冲存储器装置中时,确定所述第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符,其中当所述第一地址域标识符指示所述地址域时以及当启用所述地址域指示符位时,存储在所述高速缓冲存储器装置中的所述指令或数据已经基于与所述第二地址域标识符相关联的暂时加密密钥进行解密;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,传输所述指令或数据。
14.根据权利要求13所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述第一地址域标识符并不匹配所述第二地址域标识符时,阻止传输所述指令。
15.根据权利要求13所述的设备,其中所述暂时加密密钥是在所述地址域保持在所述存储器装置中时存在的临时或暂时性加密密钥。
16.根据权利要求13所述的设备,其中所述请求进一步包含指示是否允许存取地址域外的数据的控制位,其中所述处理电路进一步经配置以进行以下操作:
至少基于所述第一地址域标识符、所述地址域指示符位或所述控制位确定是否允许或拒绝所述请求;以及
当所述请求被拒绝时阻止传输所述数据或指令。
17.根据权利要求16所述的设备,其中当所述请求是读取所述数据、所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,所述请求被允许。
18.根据权利要求16所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述请求是读取所述数据、所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,将所述第一地址域标识符定义为零或指示没有地址域的特定值。
19.根据权利要求13所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,从所述存储器装置中获取所述指令或数据;以及
在所述高速缓冲存储器装置处存储具有包含所述第一地址域标识符的第二高速缓存标记的所述所获取的指令或数据。
20.根据权利要求19所述的设备,其中当所述第一地址域标识符指示所述地址域时并且当启用所述地址域指示符位时,从所述存储器装置中接收的所述指令或数据已经基于与所述第一地址域标识符相关联的所述暂时加密密钥进行解密。
21.根据权利要求16所述的设备,其中所述处理电路进一步经配置以进行以下操作:
接收高速缓存转储命令;
当所述指令或数据存储在所述高速缓冲存储器装置中时,确定所述高速缓存标记中的所述第二地址域标识符是否是零或指示没有地址域的特定值;以及
当所述高速缓存标记中的所述第二地址域标识符不同于零或指示没有地址域的所述特定值时,阻止响应于所述高速缓存转储命令而传输所述指令或数据。
22.根据权利要求21所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述高速缓存标记中的所述第二地址域标识符不同于零或指示没有地址域的所述特定值时,响应于所述高速缓存转储命令而传输零值。
23.根据权利要求13所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,将所述请求和所述第一地址域标识符传输到高速缓存的相同群集中的至少一个远程高速缓冲存储器;以及
从所述至少一个远程高速缓冲存储器装置中接收所述指令或数据。
24.根据权利要求13所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述指令或数据并不是存储在所述高速缓冲存储器装置中时,将所述请求传输到高速缓存的不同群集中的至少一个远程高速缓冲存储器装置;以及
从所述至少一个远程高速缓冲存储器装置中接收所述指令或数据,其中所述接收到的指令或数据是基于所述暂时加密密钥在与所述至少一个远程高速缓冲存储器装置相关联的软件保护装置处进行加密并且随后在接收之前基于所述暂时加密密钥在与所述高速缓冲存储器装置相关联的软件保护装置处进行解密。
25.一种用于存储器事务的设备,其包括:
用于接收读取与存储器装置相关联的指令或数据的请求的装置,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
用于当所述指令或数据存储在所述设备中时确定所述第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符的装置,其中当所述第一地址域标识符指示所述地址域时以及当启用所述地址域指示符位时,存储在所述设备中的所述指令或数据已经基于与所述第二地址域标识符相关联的暂时加密密钥进行解密;以及
用于当所述第一地址域标识符匹配所述第二地址域标识符时传输所述指令或数据的装置。
26.一种非暂时性处理器可读存储媒体,在所述非暂时性处理器可读存储媒体上存储有指令,所述指令在由至少一个处理电路执行时使得所述至少一个处理电路进行以下操作:
接收读取与存储器装置相关联的指令或数据的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
当所述指令或数据存储在高速缓冲存储器装置中时,确定所述第一地址域标识符是否匹配高速缓存标记中的第二地址域标识符,其中当所述第一地址域标识符指示所述地址域时以及当启用所述地址域指示符位时,存储在所述高速缓冲存储器装置中的所述指令或数据已经基于与所述第二地址域标识符相关联的暂时加密密钥进行解密;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,传输所述指令或数据。
27.一种用于高速缓冲存储器装置的方法,其包括:
接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
确定所述存储器页是否存储在所述高速缓冲存储器装置处;
确定当所述存储器页存储在所述高速缓冲存储器装置处时与所述存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配所述第一地址域标识符;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,在所述高速缓冲存储器装置处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据。
28.根据权利要求27所述的方法,其中所述请求进一步包含指示是否允许存取地址域外的数据的控制位,所述方法进一步包括:
至少基于所述第一地址域标识符、所述地址域指示符位或所述控制位确定是否允许或拒绝写入所述数据的所述请求;以及
当所述请求被拒绝时阻止在所述高速缓冲存储器装置处的所述存储器页中存储所述数据。
29.根据权利要求28所述的方法,其中当所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,写入所述数据的所述请求被允许。
30.根据权利要求27所述的方法,其进一步包括:
当所述存储器页没有存储在所述高速缓冲存储器装置处时,在所述高速缓冲存储器装置处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据,
其中当所述第一地址域标识符不是零并且针对所述存储器页设置所述地址域指示符位时,在所述高速缓冲存储器装置被清空之后所述数据通过与所述第一地址域标识符相关联的暂时加密密钥进行加密。
31.根据权利要求28所述的方法,其进一步包括:
当所述第一地址域标识符指示所述存储器装置中的所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,将所述第一地址域标识符定义为零或指示没有地址域的特定值。
32.根据权利要求27所述的方法,其进一步包括:
当所述第一地址域标识符并不匹配所述第二地址域标识符时,阻止在所述高速缓冲存储器装置处的所述存储器页中存储所述数据。
33.根据权利要求27所述的方法,其中当所述第一地址域标识符匹配所述第二地址域标识符时,存储在所述高速缓冲存储器装置处的所述存储器页中的所述数据在存储在对应于所述存储器页的所述存储器装置的所述区域中之前使用与所述第一地址域标识符相关联的暂时加密密钥进行加密。
34.一种用于存储器事务的设备,其包括:
存储器装置;
核心装置,其耦合到所述存储器装置;以及
高速缓冲存储器装置,其耦合到所述存储器装置和所述核心装置,所述高速缓冲存储器装置包含处理电路,所述处理电路经配置以进行以下操作:
接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
确定所述存储器页是否存储在所述高速缓冲存储器装置处;
确定当所述存储器页存储在所述高速缓冲存储器装置处时与所述存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配所述第一地址域标识符;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,在所述高速缓冲存储器装置处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据。
35.根据权利要求34所述的设备,其中所述请求进一步包含指示是否允许存取地址域外的数据的控制位,其中所述处理电路进一步经配置以进行以下操作:
至少基于所述第一地址域标识符、所述地址域指示符位或所述控制位确定是否允许或拒绝写入所述数据的所述请求;以及
当所述请求被拒绝时阻止在所述高速缓冲存储器装置处的所述存储器页中存储所述数据。
36.根据权利要求35所述的设备,其中当所述第一地址域标识符指示所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,写入所述数据的所述请求被允许。
37.根据权利要求34所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述存储器页没有存储在高速缓冲存储器装置时,在所述高速缓冲存储器装置处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据,
其中当所述第一地址域标识符不是零并且针对所述存储器页设置所述地址域指示符位时,在所述高速缓冲存储器装置被清空之后所述数据通过与所述第一地址域标识符相关联的暂时加密密钥进行加密。
38.根据权利要求35所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述第一地址域标识符指示所述存储器装置中的所述地址域、没有启用所述地址域指示符位并且启用所述控制位时,将所述第一地址域标识符定义为零或指示没有地址域的特定值。
39.根据权利要求34所述的设备,其中所述处理电路进一步经配置以进行以下操作:
当所述第一地址域标识符并不匹配所述第二地址域标识符时,阻止在所述高速缓冲存储器装置处的所述存储器页中存储所述数据。
40.根据权利要求34所述的设备,其中当所述第一地址域标识符匹配所述第二地址域标识符时,存储在所述高速缓冲存储器装置处的所述存储器页中的所述数据在存储在对应于所述存储器页的所述存储器装置的所述区域中之前使用与所述第一地址域标识符相关联的暂时加密密钥进行加密。
41.一种用于存储器事务的设备,其包括:
用于接收将数据写入到与存储器装置的区域相关联的存储器页的请求的装置,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
用于确定所述存储器页是否存储在所述设备处的装置;
用于确定当所述存储器页存储在所述设备处时与所述存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配所述第一地址域标识符的装置;以及
用于当所述第一地址域标识符匹配所述第二地址域标识符时在所述设备处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据的装置。
42.一种非暂时性处理器可读存储媒体,在所述非暂时性处理器可读存储媒体上存储有指令,所述指令在由至少一个处理电路执行时使得所述至少一个处理电路进行以下操作:
接收将数据写入到与存储器装置的区域相关联的存储器页的请求,所述请求包含至少第一地址域标识符和地址域指示符位,其中所述第一地址域标识符使得能够识别包含所述存储器装置中的一或多个选定区域的地址域;
确定所述存储器页是否存储在高速缓冲存储器装置处;
确定当所述存储器页存储在所述高速缓冲存储器装置处时与所述存储器页相关联的高速缓存标记中的第二地址域标识符是否匹配所述第一地址域标识符;以及
当所述第一地址域标识符匹配所述第二地址域标识符时,在所述高速缓冲存储器装置处的所述存储器页中存储具有包含所述第一地址域标识符的高速缓存标记的所述数据。
CN201680037566.9A 2015-07-07 2016-05-27 存储器高速缓存和高速缓存的软件模块标识的安全处理 Active CN107710220B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562189738P 2015-07-07 2015-07-07
US62/189,738 2015-07-07
US15/070,947 2016-03-15
US15/070,947 US10223289B2 (en) 2015-07-07 2016-03-15 Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
PCT/US2016/034883 WO2017030623A1 (en) 2015-07-07 2016-05-27 Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management

Publications (2)

Publication Number Publication Date
CN107710220A CN107710220A (zh) 2018-02-16
CN107710220B true CN107710220B (zh) 2021-03-16

Family

ID=57730320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680037566.9A Active CN107710220B (zh) 2015-07-07 2016-05-27 存储器高速缓存和高速缓存的软件模块标识的安全处理

Country Status (7)

Country Link
US (1) US10223289B2 (zh)
EP (1) EP3320478B1 (zh)
JP (1) JP2018524722A (zh)
KR (1) KR20180026722A (zh)
CN (1) CN107710220B (zh)
BR (1) BR112018000323A2 (zh)
WO (1) WO2017030623A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691627B2 (en) * 2016-04-01 2020-06-23 Intel Corporation Avoiding redundant memory encryption in a cryptographic protection system
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10339333B2 (en) * 2016-07-20 2019-07-02 Montage Technology Co., Ltd. Method and apparatus for controlling application to access memory
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
GB2563879B (en) * 2017-06-28 2019-07-17 Advanced Risc Mach Ltd Realm identifier comparison for translation cache lookup
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
US11120140B2 (en) * 2018-06-27 2021-09-14 International Business Machines Corporation Secure operations on encrypted data
GB2578297B (en) 2018-10-19 2021-07-14 Advanced Risc Mach Ltd Trusted intermediary realm
CN111566987B (zh) * 2018-12-12 2023-05-02 深圳市汇顶科技股份有限公司 数据处理方法、电路、终端设备及存储介质
US11461244B2 (en) * 2018-12-20 2022-10-04 Intel Corporation Co-existence of trust domain architecture with multi-key total memory encryption technology in servers
WO2021001033A1 (en) * 2019-07-03 2021-01-07 Huawei Technologies Co., Ltd. Device and method for maintaining summary consistency in caches
DE102019128528A1 (de) * 2019-10-22 2021-04-22 Infineon Technologies Ag Datenkryptografievorrichtungen und speichersysteme
US11474885B2 (en) * 2020-04-07 2022-10-18 Micron Technology, Inc. Method for an internal command of a first processing core with memory sub-system that caching identifiers for access commands
GB2618124A (en) * 2022-04-28 2023-11-01 Advanced Risc Mach Ltd Execution environment mismatch

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855161A (zh) * 2011-05-30 2013-01-02 马克西姆综合产品公司 用于安全微控制器的外部存储器的数据交织方案
CN104067246A (zh) * 2012-01-10 2014-09-24 高通股份有限公司 通过物理地址进行的非分配存储器存取
CN104471555A (zh) * 2013-04-30 2015-03-25 联发科技(新加坡)私人有限公司 用于高速缓存系统的多级互联系统及多级互联方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4098478B2 (ja) 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
WO2004006075A1 (ja) 2002-07-09 2004-01-15 Fujitsu Limited 開放型汎用耐攻撃cpu及びその応用システム
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP4263976B2 (ja) 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
JP4750719B2 (ja) 2004-11-26 2011-08-17 パナソニック株式会社 プロセッサ、セキュア処理システム
US8839000B2 (en) * 2009-03-23 2014-09-16 Hewlett-Packard Development Company, L.P. System and method for securely storing data in an electronic device
US8281154B2 (en) * 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
JP5139465B2 (ja) * 2010-03-31 2013-02-06 株式会社東芝 メモリチップ、情報記憶システム、読み出し装置
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
CN104662548B (zh) 2012-08-15 2018-04-13 美商新思科技有限公司 用于嵌入式代码的保护方案
US10185584B2 (en) 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
US10169618B2 (en) * 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US10142303B2 (en) 2015-07-07 2018-11-27 Qualcomm Incorporated Separation of software modules by controlled encryption key management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855161A (zh) * 2011-05-30 2013-01-02 马克西姆综合产品公司 用于安全微控制器的外部存储器的数据交织方案
CN104067246A (zh) * 2012-01-10 2014-09-24 高通股份有限公司 通过物理地址进行的非分配存储器存取
CN104471555A (zh) * 2013-04-30 2015-03-25 联发科技(新加坡)私人有限公司 用于高速缓存系统的多级互联系统及多级互联方法

Also Published As

Publication number Publication date
CN107710220A (zh) 2018-02-16
BR112018000323A2 (pt) 2018-09-11
US10223289B2 (en) 2019-03-05
EP3320478A1 (en) 2018-05-16
EP3320478B1 (en) 2020-08-19
US20170010982A1 (en) 2017-01-12
JP2018524722A (ja) 2018-08-30
WO2017030623A1 (en) 2017-02-23
KR20180026722A (ko) 2018-03-13

Similar Documents

Publication Publication Date Title
CN107710220B (zh) 存储器高速缓存和高速缓存的软件模块标识的安全处理
US10325118B2 (en) Cryptographic cache lines for a trusted execution environment
EP3298498B1 (en) Address validation using signatures
US10142303B2 (en) Separation of software modules by controlled encryption key management
US9965619B2 (en) Return address overflow buffer
US9372988B2 (en) User controllable platform-level trigger to set policy for protecting platform from malware
KR20170033891A (ko) 보호 영역에서의 메모리 초기화
US9916454B2 (en) User controllable platform-level trigger to set policy for protecting platform from malware
US8745407B2 (en) Virtual machine or hardware processor for IC-card portable electronic devices
US20130276091A1 (en) Method and apparatus to tunnel messages to storage devices by overloading read/write commands
US9419976B2 (en) Method and apparatus to using storage devices to implement digital rights management protection
US9270657B2 (en) Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
WO2023121757A1 (en) Hardening cpu predictors with cryptographic computing context information
US10496825B2 (en) In-memory attack prevention
US20220100907A1 (en) Cryptographic computing with context information for transient side channel security
KR102421318B1 (ko) 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스
US20140033266A1 (en) Method and apparatus for providing concealed software execution environment based on virtualization
WO2015183358A2 (en) Protection against key tampering

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
GR01 Patent grant
GR01 Patent grant