掌桥专利:专业的专利平台
掌桥专利
首页

半导体装置的数据标识辨识

文献发布时间:2024-04-18 20:00:50


半导体装置的数据标识辨识

技术领域

本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于半导体装置的数据标识辨识的设备、系统及方法。

背景技术

存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器需要电力来维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等。非易失性存储器可通过在未供电时保存所存储的数据来提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、铁电随机存取存储器(FeRAM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等。

数据中心是收容服务器、数据存储装置及/或其它相关联组件(例如备用电源、冗余数据通信连接、环境控制(例如空调及/或防火)及/或各种安全系统)的设施。数据中心可由信息技术(IT)服务提供商维护。企业可从提供商购买数据存储及/或数据处理服务以便运行处置企业核心业务及操作数据的应用程序。应用程序可为专有的且由企业独家使用或可通过网络取得以供任何人存取及使用。

已引入虚拟计算例子(VCI)来降低数据中心在设施及运营费用方面的资本投资且降低能耗。VCI是类似于物理计算机般执行应用软件的计算机的软件实施方案。VCI的优点在于不受物理资源限制,这允许VCI四处移动及扩展以满足企业的不断变化需求且不影响企业应用程序的使用。在软件定义数据中心中,存储资源可以各种方式分配给VCI,例如通过附网存储(NAS)、例如光纤通道及/或互联网小型计算机系统接口(iSCSI)的存储区域网络(SAN)、虚拟SAN及/或原始装置映射等。

术语“虚拟计算例子”(VCI)涵盖一系列计算功能性,例如虚拟机、虚拟工作量、数据计算节点、集群及容器等。虚拟机通常指代可在虚拟化环境中执行的隔离用户空间例子。除硬件虚拟化之外的其它技术可提供隔离用户空间例子,也称为数据计算节点,例如在没有管理程序或单独操作系统及/或管理程序内核网络接口模块的主机操作系统上运行的容器。管理程序内核网络接口模块是包含具有管理程序内核网络接口及接收/传输线程的网络堆叠的数据计算节点。术语“VCI”涵盖不同类型的数据计算节点的这些实例及组合等。

在一些实施例中,VCI使用由虚拟化软件(例如管理程序、虚拟机监视器等)虚拟化的主机的资源在主机上与其自身客户操作系统一起操作。租户(即,VCI的所有者)可选择在客户操作系统上操作哪些应用程序。另一方面,一些容器是在主机操作系统上运行且无需管理程序或单独客户操作系统的结构。主机操作系统可使用名称空间使容器彼此隔离且因此可提供在不同容器内操作的不同应用程序群组的操作系统级分离。此分离类似于可在虚拟化系统硬件的管理程序虚拟化环境中提供的VCI分离,且因此可被视为隔离在不同容器中操作的不同应用程序群组的虚拟化形式。此类容器可比VCI更轻量。虽然本公开涉及VCI,但所给出的实例可为任何类型的虚拟对象,包含数据计算节点(包含物理主机)、VCI、非VCI容器、虚拟磁盘及管理程序内核网络接口模块。本公开的实施例可包含不同类型的数据计算节点的组合。

发明内容

一方面,本公开提供一种用于数据标识辨识的系统,其包括:主机,其包含主机安全管理器,所述主机安全管理器经配置以:加密命令的数据;执行存储器完整性校验;基于与所述主机相关联的哪个实体发送命令来允许存取对应于所述命令的地址的存储器装置的存储器;产生安全密钥;将安全密钥编程到所述存储器装置中;编程加密范围;或其任何组合;所述存储器装置,其经由互连总线耦合到所述主机,其中所述存储器装置包含存储器装置安全管理器,所述存储器装置安全管理器经配置以:检测所述命令是从所述主机的可信域还是所述主机的非可信域发送;及识别与所述可信域还是所述非可信域相关联的实体发起所述命令。

另一方面,本公开提供一种用于数据标识辨识的设备,其包括:存储器装置,其经配置以耦合到主机,其中所述存储器装置包含:存储器管理层(MML)部分及高速缓存部分;及存储器装置安全管理器,其经配置以:检测命令是从所述主机的可信域还是所述主机的非可信域接收;及识别与所述主机相关联的哪个实体发起所述命令。

又一方面,本公开提供一种用于数据标识辨识的方法,其包括:由存储器装置从主机接收命令;由存储器装置安全管理器检测所述命令是从所述主机的可信域还是所述主机的非可信域发送;由所述存储器装置安全管理器识别与所述主机的所述可信域相关联的哪个实体或与所述主机的所述非可信域相关联的哪个实体发起所述命令;及由主机安全管理器基于与所述主机相关联的哪个实体发送所述命令来允许存取对应于所述命令的地址的所述存储器装置的存储器。

附图说明

图1说明根据本公开的若干实施例的实例计算系统。

图2说明根据本公开的若干实施例的用于加密数据的安全架构的功能框图。

图3说明根据本公开的若干实施例的存储器写入及高速缓存同步的功能框图。

图4说明根据本公开的若干实施例的存储器读取、密钥索引校验及T位校验的功能框图。

图5说明根据本公开的若干实施例的读取数据响应的功能框图。

图6说明根据本公开的若干实施例的基于(消息认证码)MAC的完整性校验的功能框图。

图7说明根据本公开的若干实施例的MAC及加密/解密的并行计算的功能框图。

图8说明根据本公开的若干实施例的用于半导体装置的数据标识辨识的实例方法的流程图。

具体实施方式

描述与半导体装置的数据标识辨识相关的系统、设备及方法。主机可包含可信域及非可信域。如本文所使用,术语“域”指代一组可配置资源,包含存储器、中央处理单元(CPU)、网络装置及存储装置。如本文所使用,术语“可信域”指代由与系统级功能相关的资源组成的域。可信域可为比非可信域具有更高特权的实体且对用于加密及计算传送数据上的MAC的密钥材料具有独占存取权。如本文所使用,术语“非可信域”指代由与系统级功能无关的资源组成的域。命令可经由将存储器装置耦合到主机的互连总线从主机发送到存储器装置。可基于命令是源自可信域还是非可信域中的资源来准许或拒绝命令存取存储器装置中的存储器的特定部分。

命令可包含对应于命令的数据的地址。如果数据定位于仅允许可信源存取的存储器的一部分中,那么如果命令源自可信域中的资源,那么将允许命令存取对应于命令的数据。但是,如果命令源自非可信域中的资源,那么不允许命令存取执行命令所需的数据。这将导致主机无法执行命令。

在一些实施例中,命令可在其由存储器装置接收之前加密。在一些实施例中,密钥标识符(keyID)及T位可与命令一起发送到存储器装置。如本文所使用,术语“keyID”指代由存储器装置用于索引用于加密数据的加密密钥的唯一ID。keyID的值可由产生请求的软件的标识确定且T位可指示命令是否源自可信资源。

随着存储器系统负责执行更复杂操作,更多计算装置可经配置以共享存储器资源。在一些方法中,基于散列的消息认证码(HMAC)技术可被实施到存储器装置中以提供数据完整性。HMAC可通过使用散列计算密码标签来提供数据完整性,密码标签可在数据随有界碰撞概率改变时改变。

相比而言,本文描述的实施例涉及使用用于错误检测的循环冗余电路系统(CRC)及/或Keccak消息认证码(KMAC)电路系统来计算认证标签以提供密码数据完整性的存储器装置。此外,本文描述的实施方案经优化用于实施到包含高速缓存的存储器装置中。

存储器装置可包含数据完整性校验电路系统及高速缓存以确定发送到存储器装置的命令是否由可信源发起。数据完整性电路系统可包含(但不限于)错误检测电路系统、数据加密电路系统、数据解密电路系统、数据编码器电路系统、数据解码器电路系统或其组合。参考图3来更详细描述错误检测电路系统、加密电路系统及解密电路系统。参考图6来更详细描述编码器及解码器电路系统。

高速缓存可包含用于校验与命令一起发送到存储器装置的keyID及T位且确定命令是否源自与可信域相关联的实体的电路系统。可基于keyID及T位的值来确定是否准许存取存储器装置的存储器的特定部分。如本文所使用,术语“实体”指代使用主机的可信域或非可信域的资源的计算装置或VCI。数据完整性校验电路系统可经优化用于计算快速链接(CXL)存储器装置中。例如,数据完整性校验电路系统可利用CXL接口的扩展能力来执行数据完整性校验,无需使用在其它方法中执行数据完整性校验所需的与散列数据相关的电路系统。更具体来说,可在不使用MAC码的情况下确定发起命令的实体的标识,因为keyID用作发送数据的实体的标识符。存储器系统可使用CXL接口的能力来将例如keyID及T位的额外数据与命令一起发送到存储器装置以及将高速缓存实施到存储器装置中,高速缓存可使用keyID及T位来确定命令是否由可信源(例如与主机的可信域相关联的实体)发起。通过使用存储器装置的高速缓存来确定命令是否由可信源发起,多个计算装置可使用CXL存储器装置中的共享存储器资源,同时限制特定计算装置存取存储器的特定部分。例如,T位及keyID可存储于高速缓存中。

在一些实施例中,存储器系统可为CXL兼容存储器系统(例如,存储器系统可包含外围组件互连快速(PCIe)/CXL接口)。CXL是经设计以加速下一代数据中心性能的高速CPU到装置及CPU到存储器互连件。CXL技术维持CPU存储器空间与附接装置上的存储器之间的存储器一致性,这允许资源共享以实现更高性能、降低软件栈复杂性及更低总系统成本。

CXL经设计为用于高速通信的行业开放标准接口,因为加速器越来越多用于补充CPU以支持例如人工智能及机器学习的新兴应用。CXL技术建立于PCIe基础设施上,从而利用PCIe物理及电接口来提供例如输入/输出(I/O)协议、存储器协议(例如,允许主机与加速器共享存储器)及一致性接口的领域中的高级协议。

在本公开的以下详细描述中,参考构成本公开的一部分且通过说明来展示可如何实践本公开的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的技术人员能够实践本公开的实施例,且应理解,可利用其它实施例且可在不脱离本公开的范围的情况下进行过程、电及结构改变。

还应理解,本文使用的术语仅用于描述特定实施例且不意在限制。如本文所使用,单数形式“一”及“所述”可包含单数及复数个指涉物两者,除非上下文另有明确指示。另外,“若干”、“至少一个”及“一或多个”(例如若干存储体)可指代一或多个存储体,而“多个”希望指代多于一个此类事物。

此外,单词“可”在本申请案中用于意指许可许(即,有可能、能够)而非强制(即,必须)。术语“包含”及其派生词意味着“包含(但不限于)”。术语“经耦合”及“耦合”意味着直接或间接物理连接或用于存取及移动(传输)命令及/或数据,视上下文而定。术语“数据”及“数据值”在本文中可互换使用且可具有相同含义,视上下文而定。

图1说明根据本公开的若干实施例的实例计算系统100。计算系统可包含主机系统(例如主机)102,其包含主机安全管理器114-1,主机安全管理器114-1经配置以将keyID分配给引起命令的实体、产生及提供密钥及管理存储器装置118中基于范围的加密区域。安全管理器114-1可经由互连总线116耦合到主机102。

主机102可包含非可信域104。如上所述,非可信域104可为由与存储器系统100的系统级功能无关的资源组成的域。非可信域104可包含非可信域管理器106以提供由与非可信域104相关联的实体使用的资源(例如处理资源、网络资源、存储器资源等)。在一些实施例中,非可信域管理器106可包含管理程序及操作系统。在一些实施例中,非可信域104可包含(但不限于)虚拟机、共享CXL存储器装置的多个计算资源及/或在同一服务器机架上的多个服务器之间共享的存储架构。

主机102还可包含可信域108。如上所述,可信域108可具有比非可信域104更高的特权且由客户独占存取。可信域108可映射到使用安全加密虚拟化安全嵌套分页(SEV-SNP)技术将可信域108与管理程序隔离的可信虚拟机。可信域108可与管理程序隔离且由特定客户独占存取,因此,不同客户无法存取可信域中的特定客户数据。可信域108可包含可信域管理器110以提供由与可信域108相关联的实体使用的资源(例如处理资源、网络资源、存储器资源等)。在一些实施例中,可信域管理器110可包含管理程序及操作系统。在一些实施例中,可信域108可包含(但不限于)虚拟机、共享CXL存储器的多个计算资源及/或在同一服务器机架上的多个服务器之间共享的存储架构。

主机102的硬件112可为由非可信域104及可信域108提供的资源。硬件112的实例包含处理资源(例如一或多个处理器)、存储器资源(例如易失性及/或非易失性存储器)及/或网络资源(例如经配置以提供对互连总线116的存取的网络接口卡)。硬件112可在非可信域104与可信域108之间共享。硬件112可经由互连总线116在主机102与存储器装置118之间交换数据。在一些实施例中,存储器装置118可为CXL存储器装置118且互连总线116可为CXL互连总线116。

主机102可包含安全管理器114-1。如本文所使用,术语“安全管理器”指代用于管理存储器装置118的安全配置的专用集成电路(ASIC)及/或执行指令。

存储器装置118可包含存储器加密管理器120及安全管理器114-2。在一些实施例中,安全管理器114-1、114-2可利用可信执行环境安全协议(TSP)。存储器加密管理器120可包含用于经由互连总线116与主机102交换数据的接口。在一些实施例中,接口可经由嵌入接口中的组件(例如CXL完整性及数据加密(IDE)组件)来加密数据。类似于主机102上的安全管理器114-1,存储器装置118上的安全管理器114-2指代用于管理存储器装置118上的安全配置的ASIC及/或执行指令。存储器装置118上的安全管理器114-2可与主机102上的安全管理器114-1互动(例如,经由主机102及存储器装置118上的物理端口之间的连接,其可与互连总线116分离或为互连总线116的部分)。尽管图1描绘安全管理器114-1在主机102上及安全管理器114-2在存储器装置118上,但在一些实施例中,安全管理器114-1、114-2可在主机102或存储器装置118上而非在主机102及存储器装置118两者上。

存储器装置118可经配置以从主机102接收命令。在一些实施例中,命令可为读取命令或写入命令。一旦存储器装置118接收到命令,则安全管理器114-2可检测命令是从可信域108还是非可信域104发送且识别与可信域108还是非可信域104相关联的实体发起命令。安全管理器114-2可进一步与安全管理器114-1通信且管理例如发现、配置、锁定等的命令。

图2说明根据本公开的若干实施例的用于加密数据的安全架构222的功能框图。安全架构222可包含可信机器keyID名称空间224及开放机器keyID(OMKID)名称空间226。如本文所使用,术语“名称空间”指代用于识别及指代对象的一组符号(例如名称)。可信机器keyID(TMKID)名称空间224可指代与可信域(例如图1中的可信域108)相关联的实体的名称空间且OMKID名称空间226可指代与非可信域(例如图1中的非可信域104)相关联的实体的名称空间。如图2中所展示,TMKID名称空间224及OMKID名称空间226可各自对应于用于加密数据的keyID 228。

在一些实施例中,接口可使用基于地址的加密来加密命令的数据。术语“基于地址的加密”指代其中在数据的地址落在指定地址范围内时对数据加密的加密数据方法。在一些实施例中,用于基于地址的加密的每一地址范围可对应于范围寄存器230-1、230-2(个别或共同称为范围寄存器230)。如图2中所展示,安全架构222可包含多个范围寄存器230。因此,在一些实施例中,当接口使用基于地址的加密时,如果数据的地址在多个(例如,两个)地址范围中的至少一者内,那么接口可加密命令的数据。基于地址的加密可与CPU的系统级功能相关且与用户功能无关。系统级功能可在可信域的边界内。因此,基于地址的加密仅可用于从与主机的可信域相关联的实体发送的数据。

在一些实施例中,TMKID名称空间224可包含T位。如本文所使用,术语“T位”指代用于指示命令是从与可信域还是非可信域相关联的实体发送的位。在一些实施例中,如果T位从可信源发送,那么T位可具有1值。T位可与命令一起发送到存储器装置。通过使用T位来指示命令是从与可信域还是非可信域相关联的实体发送,存储器装置可读取T位以确定命令是否可使用基于地址的加密来加密。在一些实施例中,当接口使用基于地址的加密时,如果命令从与可信域相关联的实体发送,那么接口可加密命令的数据,但如果命令从与非可信域相关联的实体发送,那么不要加密命令的数据。

当命令发送到存储器装置时,keyID 228可与命令一起发送。keyID 228可用于索引用于加密数据的加密密钥。在一些实施例中,当接口使用基于地址的加密时,keyID 228可具有0值。keyID 228的0值可留给用于基于地址的加密的加密密钥。因此,在一些实施例中,0值可仅用于基于地址的加密的keyID 228。

在一些实施例中,安全架构222可包含最多2,048个加密密钥。在一些实施例中,可为基于地址的加密分配全数加密密钥中的两个加密密钥232-1、232-2(个别或共同称为加密密钥232),其各自对应于用于基于地址的加密的两个地址范围中的一者。在其它实施例中,可存在对应于用于基于地址的加密的地址范围的多于两个加密密钥。全数加密密钥中的其它加密密钥可用于基于事务的加密。

在一些实施例中,接口可使用基于事务的加密来加密命令的数据。术语“基于事务的加密”指代其中命令包含请求存储器装置使用由主机提供的密钥对数据加密的加密数据方法。这与其中在数据的地址落在指定地址范围内时对数据加密的基于地址的加密形成对比。在一些实施例中,当接口使用基于事务的加密时,如果命令从与可信域或非可信域相关联的实体发送,那么接口可加密命令的数据。OMKID名称空间226可与keyID 228相关联。当接口使用基于事务的加密时,用于索引用于加密命令的数据的加密密钥的keyID 228可具有大于零的值。具有大于零的值的keyID 228可留给用于基于事务的加密的加密密钥。因此,在一些实施例中,大于零的值可仅用于基于事务的加密的keyID 228。在一些实施例中,如果命令从与非可信域相关联的实体发送,那么接口不会加密命令的数据。

如图2中所展示,基于事务的加密密钥234可与TMKID名称空间224及OMKID名称空间226相关联。此外,当与命令一起发送的T位具有0值时或如果T位具有1值,那么可使用基于事务的加密来加密数据。

图3说明根据本公开的若干实施例的存储器写入及高速缓存同步的功能框图。存储器装置318可包含存储器管理层(MML)部分336、高速缓存部分(例如高速缓存)344及后端部分352。

MML部分336可包含用于接收命令的CXL接口338。在一些实施例中,命令可为MemWrite(MemWr)命令。MML部分336可包含错误检测电路系统342及密钥索引电路系统340。在一些实施例中,密钥索引电路系统340可为密钥索引解码器340。CXL IP 338可将与命令相关联的地址、keyID及T位发送到密钥索引解码器340。密钥索引解码器340可校验由存储器装置318接收的命令的keyID。在一些实施例中,如果密钥索引解码器340确定keyID无效,那么命令不会被允许存取对应于命令的地址的存储器装置318的存储器。因此,不会执行命令。可在无法正确初始化keyID时以及在其它情况下确定keyID无效。此外,当与命令相关联的keyID被确定为无效时,存储器装置318不要将命令发送到高速缓存部分344。

如果keyID被确定为有效,那么命令的数据、地址、keyID及T位可发送到错误检测电路系统342。在一些实施例中,错误检测电路系统342可为前向循环冗余校验(FCRC)电路系统342。错误检测电路系统342可在数据发送到高速缓存部分344之前对数据执行错误检测操作以产生校验值。如本文所使用,术语“校验值”指代要发送或存储的每一数据块的短的固定长度二进制序列且附加到数据以形成码字。校验值可从命令的地址、数据、T位及密钥索引计算。在一些实施例中,装置中毒位不发送到错误检测电路系统342。如本文所使用,术语“装置中毒位”指代基于装置中毒位的值指示与装置中毒位相关联的数据是否有错误的位。装置中毒位及校验值可发送到高速缓存部分344。

高速缓存部分344可包含高速缓存存储装置346、密钥存储器348及加密电路系统350。在MML部分336下方展示的高速缓存部分344中的高速缓存存储装置346是在MML部分336旁边展示的高速缓存部分344中的相同高速缓存存储装置346。高速缓存存储装置346可从存储器装置318的MML部分336接收命令。在一些实施例中,装置中毒位与命令一起发送到高速缓存存储装置346。命令的数据可从高速缓存存储装置346发送到加密电路系统350。在一些实施例中,加密电路系统350可为高级加密标准(AES)加密电路系统350。此外,密钥索引可发送到密钥存储器348。在一些实施例中,密钥索引可接着发送到加密电路系统350。T位、加密数据、加密密钥索引及装置中毒位可接着发送到耦合到高速缓存部分344的存储器装置318的后端部分352。在一些实施例中,密钥索引可发送到存储器装置318的后端部分352,无需先传送到加密电路系统350。替代地,对应于选定密钥索引的密钥可用于计算数据上的KMAC且数据的标签可存储于存储器装置318的后端部分352中。当读取数据时,数据标签可读回且与新计算的数据标签核对以检测数据完整性违规。

当命令在高速缓存部分344中时,可检测各种错误。这些错误可包含(但不限于)无效密钥、密钥存储器错误及高速缓存数据路径错误(DPE)。如果密钥被确定为无效,那么主机不要完成命令。如果存在密钥存储器错误或高速缓存DPE,那么设置装置中毒位。设置装置中毒位指代将装置中毒位的值设置为1以向存储器装置318指示数据中存在错误。在一些实施例中,当数据在高速缓存部分344中时,数据中的错误可被纠正。

图4说明根据本公开的若干实施例的存储器读取、密钥索引校验及T位校验的功能框图。存储器装置418可包含MML部分436及高速缓存部分444。

MML部分436可包含接口438(例如CXL IP)、错误检测电路系统442、密钥索引电路系统440、多路复用器(MUX)及存储器完整性校验电路系统454。CXL IP 438可从主机接收导致高速缓存命中的命令。在一些实施例中,命令可为读取命令,例如存储器读取(MemRd)命令。在一些实施例中,与命令相关联的keyID及T位可发送到密钥索引440。密钥索引可用于确定与命令相关联的密钥是否有效。命令的地址、keyID及T位可接着发送到高速缓存部分444。在一些实施例中,命令的地址可在地址发送到高速缓存部分444之前发送到密钥索引440。

在一些实施例中,如果从主机发送的命令是读取命令,那么高速缓存部分444可使从存储器装置的存储器读取的数据返回到MML部分436。在一些实施例中,存储器装置418的存储器可为DRAM存储器。从存储器装置的存储器读取的数据可包含所请求的数据。在一些实施例中,T位、密钥索引及装置中毒可发送到存储器完整性校验电路系统454。存储器完整性校验电路系统454可确定是否存在数据完整性错误。如果检测到数据完整性错误,那么装置中毒位的值将被设置为1。装置中毒位及数据可接着发送到多路复用器(MUX)。将中毒位设置为1值可指示存在各种错误中的至少一者。错误可包含无效密钥、密钥索引错误或T错误。如果存在这些错误中的至少一者,那么固定数据(例如0数据)将返回到CXL IP 438。如果不存在错误,那么T位、密钥索引及装置中毒位可与数据一起发送到MUX。此外,如果不存在错误,那么装置中毒位可设置为0值。在一些实施例中,T位、密钥索引及装置中毒位可发送到MUX而不发送到存储器完整性校验电路系统454。

T位、密钥索引及装置中毒位可从MUX发送到错误检测电路系统442。如果错误检测电路系统442检测到错误,那么装置中毒位可设置为1值以指示数据有错误。此装置中毒位可与数据一起发送到CXL IP 438。如果没有错误,那么装置中毒位可设置为0值且所请求的数据将在发送到主机之前发送到CXL IP 438。

图5说明根据本公开的若干实施例的读取数据响应的功能框图。存储器装置518可包含MML部分536、高速缓存部分544及后端部分552。

高速缓存部分544可包含密钥存储器556、标签管理器558、高速缓存存储装置546、解密电路系统560、错误检测电路系统542及密钥索引校验高速缓存562。高速缓存部分544可从MML部分536接收命令。在一些实施例中,命令可为读取命令。在一些实施例中,数据可在由高速缓存部分544接收之后直接发送到后端部分552。如本文所使用,将数据直接发送到后端部分552指代在高速缓存部分544不对数据执行任何操作的情况下将数据发送到后端部分552。在一些实施例中,如果数据在由高速缓存部分544接收之前加密,那么数据可由解密电路系统560解密。密钥存储器556可检测是否存在密钥存储器错误。如果存在密钥存储器错误,那么标签管理器558可将高速缓存有效位设置为0值以指示存在密钥存储器错误。

后端部分552可在其接收到命令之后回传所请求的数据。在一些实施例中,如果后端部分552在数据中检测到无法校正的错误,那么后端部分552将回传错误响应(例如,Resp=错误)。在一些实施例中,装置中毒位、错误响应及密钥索引可发送到密钥索引校验高速缓存562以确定是否存在密钥索引错误。如果存在密钥索引错误,那么标签管理器558可将装置中毒位设置为1值且数据不复制到高速缓存存储装置546中。在一些实施例中,来自其它存储器块的装置中毒可遮蔽密钥索引错误。如果密钥索引接收到具有1值的装置中毒位以意味着数据在其从存储器装置518的存储器读取时已有错误,那么高速缓存部分544可不校验密钥索引。

高速缓存部分544可基于对命令的数据的请求是导致高速缓存命中还是高速缓存未命中来对命令执行不同操作。在其中命令导致高速缓存未命中的实施例中,数据、密钥索引、T位、错误响应、装置中毒位及密钥存储器错误可发送到读取缓冲器且数据可接着发送到MML部分536。在其中命令导致高速缓存命中的实施例中,数据、密钥索引、T位、校验值、错误响应、装置中毒位及密钥存储器错误在发送到读取缓冲器之前发送到高速缓存存储装置(例如高速缓存数据)546。当数据发送到高速缓存存储装置546时,可发生高速缓存数据路径错误(DPE)。装置中毒位可响应于发生数据路径错误而设置为1值。在数据发送到MML部分536之前,数据、密钥索引、T位、校验值错误响应、装置中毒位及密钥存储器错误可从高速缓存存储装置546发送到读取缓冲器。

图6说明根据本公开的若干实施例的基于MAC的完整性校验的功能框图。存储器装置618包含MML部分636、高速缓存部分644及错误管理器部分663。

存储器装置618的MML部分636可包含错误检测电路系统642-1、642-2(个别或共同称为错误检测电路系统642)。在一些实施例中,错误检测电路系统642可为Keccak消息认证码(KMAC)产生器电路系统642-1及KMAC校验电路系统642-2。如本文所使用,术语“KMAC电路系统”指代基于用于确认一段数据来自所述发送者(此确认数据的真实性)且没有改变(此提供数据完整性)的KMAC来产生或校验数据的电路系统。MAC及命令的数据可存储于存储器装置618的存储器中。

MML部分636可从主机接收命令。如果命令是写入命令(例如MemWr命令),那么错误检测电路系统642-1可在处理写入命令的数据、元数据、装置中毒位、keyID及T位时产生MAC。数据、MAC、元数据、装置中毒位、keyID及T位可发送到高速缓存存储装置646。数据及keyID可从高速缓存存储装置646发送到加密电路系统664-1。MAC、元数据、装置中毒位及加密数据可接着发送到错误管理器部分663。

错误管理器部分663可包含编码器电路系统665-1、665-2(个别或共同称为编码器电路系统665)及解码器电路系统667-1、667-2(个别或共同称为解码器电路系统667)。在一些实施例中,编码器电路系统665可为低功率芯片猎杀(LPCK)编码器电路系统665-1及/或错误校正码(ECC)编码器电路系统665-2。在一些实施例中,解码器电路系统667可包含LPCK解码器电路系统667-1及/或ECC解码器电路系统667-2。编码器电路系统665及解码器电路系统667可用于校正数据中的错误。

如果从主机发送的命令是读取命令(例如MemRd命令),那么MAC、元数据、装置中毒位及加密数据可从解码器电路系统667发送到高速缓存部分644。高速缓存部分644中的解密电路系统666可接收且解密加密数据。如果数据的地址没有存储于高速缓存存储装置646中(例如,被高速缓存),那么高速缓存部分644的错误检测电路系统642-2可使用解密数据、MAC、元数据及装置中毒位来重新计算MAC且比较重新计算的MAC与存储于存储器装置618的存储器中的MAC。如果两个MAC不匹配,数据将无法通过完整性校验。在一些实施例中,MAC及数据标签可在执行数据完整性校验时互换使用。如果数据的地址存储于高速缓存存储装置646中,那么解密数据、MAC、元数据及装置中毒位发送到高速缓存存储装置646。MAC可接着从高速缓存存储装置646发送到MML部分636的错误检测电路系统642-2。如果MAC通过错误检测电路系统642-2的完整性校验,那么数据、元数据、装置中毒位、keyID及T位可输出到主机。如果高速缓存部分642中的错误检测电路系统642-2没有接收到数据、元数据及装置中毒位,那么数据、元数据及装置中毒位可在输出到主机之前发送到MML部分636的错误检测电路系统642-2。

图7说明根据本公开的若干实施例的MAC及加密/解密的并行计算的功能框图。存储器装置718可包含MML部分736、高速缓存部分744及错误管理部分763。

MML部分736可包含错误检测电路系统742-1、742-2(个别或共同称为错误检测电路系统742)。错误检测电路系统742可为FCRC产生电路系统742-1及FCRC校验电路系统742-2。MML部分736可从主机接收命令。MML部分736的错误检测电路系统742-1可使用命令的数据、元数据、装置中毒位、keyID及T位来产生校验值。数据、元数据、装置中毒位、keyID、T位及校验值可发送到高速缓存部分744的高速缓存存储装置746。

在一些实施例中,MAC可存储于高速缓存部分744的高速缓存存储装置746中而非存储于存储器装置718的存储器中。在一些实施例中,如果新数据必须写入存储器装置718的存储器中(例如发生脏高速缓存线驱逐),那么可在数据发送到存储器装置718的存储器之前并行执行数据加密及MAC产生。并行地产生MAC及加密数据可使用特定加密电路系统(例如AES与伽罗瓦/计数器模式(AES-GCM)加密电路系统)或并行地使用两个加密引擎(例如AES与具有密文窃取的XEX可调分组密码(AES-XTS)电路系统764及KMAC电路系统742)来执行。因此,如果加密电路系统764是AES-GCM加密电路系统,那么加密电路系统764可接收命令的keyID、T位及数据以加密数据且产生MAC。命令的元数据、中毒位、加密数据及MAC可发送到错误管理器部分763。然而,如果加密电路系统764是AES-XTS加密电路系统,那么加密电路系统764可加密数据,而KMAC电路系统产生MAC。

命令的元数据、装置中毒位、加密数据及MAC可发送到错误管理部分763的编码器电路系统765。如图7中所展示,编码器电路系统765可为LPCK编码器电路系统765-1及/或ECC编码器电路系统765-2。元数据、装置中毒位、加密数据及MAC可在存储(例如,写入)到存储器装置718的存储器中之前编码。

如果命令是读取命令(例如MemRd命令),那么解码器电路系统767可使元数据、装置中毒位、加密数据及MAC在它们发送到高速缓存部分744的解密电路系统766之前解码。解码器电路系统767可为LPCK解码器电路系统767-1及/或ECC解码器电路系统767-2。加密数据及MAC可发送到解密电路系统766。元数据、装置中毒位及MAC可发送到错误检测电路系统742-1以产生校验值。元数据、装置中毒位、数据、校验值、keyID及T位可发送到高速缓存存储装置746。校验值可接着发送到错误检测电路系统742-2以对数据执行完整性校验。如果校验值通过完整性校验,那么数据、元数据、装置中毒位、keyID及T位可输出到主机。

如果读取命令的地址存储于高速缓存存储装置746中(例如,被高速缓存),那么校验值在输出数据之前校验。如果命令的地址未存储于高速缓存部分746中,那么数据及MAC从存储器装置718的存储器读取。MAC可在数据解密且与存储于存储器装置718的存储器中的MAC比较之后重新计算。如果两个MAC不匹配,数据将无法通过完整性校验。

图8说明根据本公开的若干实施例的用于半导体装置的数据标识辨识的实例方法868的流程图。方法868可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令)或其组合。尽管以特定序列或顺序展示,但除非另有指定,否则过程的顺序可修改。因此,所说明的实施例应仅被理解为实例,且所说明的过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每个实施例中需要所有过程。其它过程流程是可能的。

在框870,方法868可包含由存储器装置从主机接收命令。命令可为读取命令或写入命令。命令可包含存储器装置中对应于命令的数据的存储器的部分的地址。在一些实施例中,keyID及T位可与命令一起发送到存储器装置。

在框872,方法868可包含由安全管理器检测命令是从主机的可信域还是主机的非可信域发送。可信域可包含可信域管理器且非可信域可包含非可信域管理器。可信域管理器及非可信域管理器各自提供主机的硬件的资源,其在可信域与非可信域之间共享。

在框874,方法868可包含由安全管理器识别与主机的可信域相关联的哪个实体或与主机的非可信实体相关联的哪个实体发起命令。在一些实施例中,实体可包含(但不限于)共享处理资源的虚拟机及共享存储器资源的计算装置。主机可将实体唯一的keyID与命令一起发送到存储器装置以指示哪个实体发起命令。在一些实施例中,安全管理器可基于命令的T位的值来确定命令的keyID是来自与可信域还是非可信域相关联的实体。例如,如果命令的T位具有1值,那么安全管理器可确定命令来自与主机的可信域相关联的实体,及如果命令的T位具有0值,那么安全管理器可确定命令来自与主机的非可信域相关联的实体。

在框876,方法868可包含由安全管理器基于与主机相关联的哪个实体发送命令来允许存取对应于命令的地址的存储器装置的存储器。在安全管理器允许存取对应于命令的地址的存储器装置的存储器之后,可由主机执行命令。例如,可基于T位的值及确定keyID有效来执行命令。

本文诸图遵循编号惯例,其中首位或前几位数字对应于图号且其余数字识别图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。例如,118可指代图1中的元件“18”,且类似元件在图3中可称为318。一群组或多个类似元件或组件在本文通常可用单个元件符号指代。例如,多个参考元件114-1到114-2可统称为114。应了解,本文各种实施例中展示的元件可经添加、交换及/或消除以便提供本公开的若干额外实施例。另外,图中提供的元件的比例及相对尺度旨在说明本公开的某些实施例且不应被视为意在限制。

尽管本文已说明及描述特定实施例,但所属领域的技术人员应了解,经计算以实现相同结果的布置可替代所展示的特定实施例。本公开希望涵盖本公开的一或多个实施例的调适或变化。应了解,上述描述已以说明方式而非限制方式进行。所属领域的技术人员将在检阅上文描述之后明白上文实施例的组合及本文未明确描述的其它实施例。本公开的一或多个实施例的范围包含其中使用上文结构及过程的其它应用。因此,应参考所附权利要求书以及此权利要求书有权获得的等效物的全范围来确定本公开的一或多个实施例的范围。

在具体实施方式中,为了简化本公开,一些特征被一起分组在单个实施例中。本公开的方法不应被解译为反映本公开的公开实施例必须使用多于每一权利要求中明确叙述的特征的意图。确切来说,如所附权利要求书反映,发明标的物在于单个公开实施例的非所有特征。因此,所附权利要求书特此并入到具体实施方式中,其中每一权利要求独立作为单独实施例。

技术分类

06120116541481