用来压缩密码元数据以用于存储器加密的技术的制作方法

文档序号:15072249发布日期:2018-08-01 00:06阅读:197来源:国知局

根据35u.s.c.365(c),本申请要求保护2015年12月8日提交的美国申请no.14/975,588的优先权。由此通过引用将所述申请no.14/975,588以其整体合并于此。

本文中描述的示例总体上涉及用于压缩元数据的技术。



背景技术:

现代处理器被设计成保护存储器中的敏感数据免受硬件攻击和软件攻击二者。一些处理器提供用于加密、完整性和重放保护的密码机制。存储器加密保护存储器驻留数据(例如存储到管芯外存储器的数据)的机密性。另一方面,完整性保护防止攻击者造成对存储器中的密文(即加密数据,与作为未加密数据的明文相反)的隐藏修改,并且重放保护消除对密文的未检测到的时间替换。在不存在这样的保护的情况下,能够物理地访问系统的攻击者可以从处理器记录数据高速缓存线的快照并在稍后的时间点重放这些快照。

存储器加密主要被设计成防止被动攻击,在这种情况下攻击者试图在数据高速缓存线在处理器管芯上和处理器管芯外移动时静静地观察数据高速缓存线。一些处理器包括在将数据存储到存储器的受保护区域之前对敏感数据进行加密的加密模块。在对受保护区域进行存储器读取时,在将数据高速缓存线馈送至处理器中之前对该数据高速缓存线解密。

附图说明

图1图示示例第一系统。

图2图示示例结构。

图3图示示例第二系统。

图4图示针对压缩-解压缩引擎的示例框图。

图5图示示例模式生成。

图6图示示例代码字典(dictionary)方案。

图7图示示例运行长度编码方案。

图8图示示例存储方案。

图9图示逻辑流的示例。

图10图示存储介质的示例。

图11图示示例计算平台。

具体实施方式

可以基于用户所要求的安全级别来选择加密和解密算法。一种可能的加密选择是计数器模式加密。在计数器模式加密中,对数据高速缓存线进行加密/解密的密码任务与数据自身分离。计数器模式加密的示例使用加密算法。

在一些示例中,为了确保计数器模式加密的安全性,用于这种类型的加密的种子需要在空间和时间二者上都是唯一的。可以通过将数据高速缓存线的地址用作种子的分量来实现空间唯一性。另一方面,可以通过使每线计数器值与受到加密的数据线相关联来实现时间唯一性。每次相关联的数据高速缓存线被写回至管芯外存储器时,计数器值都可以递增。该计数器值还可以充当数据高速缓存线的版本。

一些处理器可以实施计数器树结构,该计数器树结构将每个受保护的数据高速缓存线的版本(计数器值)存储在树的最低级别。树的较高级别存储计数器的层次结构。计数器树结构的大部分都被存储在相对于存储器管芯处于管芯外的系统或主存储器中,只有顶部级别的计数器被存储在用于处理器的管芯上存储器中(例如,在相对小的高速缓存中)。通过使用该计数器树结构来实施验证操作链,可以保护有时被称为飞地页面高速缓存(epc)的系统存储器的区域免受重放攻击。例如,对受保护的数据高速缓存线的写入修改在计数器树的每个级别处的对应树节点。当读取受保护的数据高速缓存线时,处理器验证在计数器树的每个级别处的对应树节点的值以认证读取结果。

利用具有计数器树结构的计数器模式加密的存储器加密类型已被合并到由英特尔公司为英特尔处理器开发的技术中。该技术被称为英特尔的可信执行环境(tee),软件保护扩展(sgx)。在一些示例中,当采用在英特尔的tee内的处理器上执行的应用时,sgx使得应用能够通过确保当飞地秘密被存储在管芯外系统、主存储器或平台存储器中时是被加密存储的来保护飞地秘密的机密性。在英特尔的tee内操作的应用可以被视为处于飞地操作中。为了在飞地操作期间提供免受硬件攻击的完全保护,sgx需要提供完整性保护和重放保护。为了实现这些完整性和重放保护,sgx利用存储器加密引擎(mee)。该mee被设计成提供用于加密、完整性和重放保护的密码机制。

在一些示例中,sgx架构可以包括每条数据高速缓存线64字节(b),其具有56位版本计数器值和以8位组块条纹式存储的8位消息认证码(mac)。56位版本计数器值和8位mac可以被统称为密码元数据。该密码元数据可以在飞地操作期间为数据高速缓存线提供完整性和重放保护。在一些示例中,这些64位版本计数器值/mac中的8个可以是64b数据高速缓存线(对连续的数据线编索引)的一部分。该密码元数据可以以未加密形式存储在用于合并了sgx架构的处理器的受保护管芯上存储器中。具有计数器树结构(分布在高速缓存级别l0-l3上)的单独树保护针对数据高速缓存线的版本计数器值的完整性,其中每个级别被压缩至较低级别的1/8直到最高级别(即最后级别高速缓存或l3),导致在用于处理器的管芯上存储器中存储了总共4千字节(kb)。因此,在l3处建立信任或信任边界的根部并且该信任的根部防止陈旧数据高速缓存线以及相关联mac的重放。预防是通过在计数器树层次结构中的某个点处检测完整性差错来提供的。从安全验证所需信息的角度来看,与该计数器树结构相关联的数据也可以被称为密码元数据。

根据一些示例,对于合并了sgx架构的处理器来说,在该处理器处的mee可以被布置成具有其自己的高速缓存。该mee高速缓存可以为对应的数据高速缓存线存储最近访问的密码元数据以保存存储器/管芯外带宽并增强飞地操作性能。然而,mee高速缓存可以是相对小的,并且在飞地操作期间的应用可能必须在读取未命中以及相关联的写回期间不断地或至少在高级别传递去往和来自管芯外存储器的密码元数据。在读取未命中以及相关联的写回期间高级别地传递密码元数据可能导致显著的管芯外带宽要求以及对应的潜伏期问题。还可能导致增大的功耗。而且,潜在地使多个应用线程同时执行飞地操作的服务器架构的使用场景可能会进一步恶化带宽、潜伏期和电力问题。

图1图示示例系统100。在如图1中示出的一些示例中,系统100包括处理器110,处理器100包括一个或多个处理器核112、高速缓存114和存储器加密引擎(mee)116。系统100还包括相对于处理器110处于管芯外或芯片外的系统存储器120。在一些示例中,如下面更多描述地,mee116可以包括用来对移进和/或移出系统存储器120的受保护区域的数据高速缓存线执行加密、解密和认证的逻辑和/或特征,所述系统存储器120在图1中被示为飞地页面高速缓存(epc)122。图1中示出的信任边界130指示用于在处理器110处芯片上或管芯上发生的存储器加密的可信飞地操作和可在系统存储器120处芯片外或管芯外发生的飞地操作之间的界限。

mee116包括mee高速缓存117,该mee高速缓存117用来为对应的数据高速缓存线存储最近访问的密码元数据以降低在飞地操作期间对mee16访问epc122的需要。如下面更多描述的,mee116可以包括用来压缩存储至mee高速缓存117的至少一些密码元数据以便增大mee高速缓存117的有效存储器容量的逻辑和/或特征。例如,一个或多个压缩方案可以被实施为压缩在写至系统存储器120的存储器位置(例如包括在epc122中)期间充当版本信息的计数器值。

根据一些示例,可以在包括以下各项但不限于以下各项的系统中使用处理器110:桌上型计算机、平板计算机、膝上型计算机、上网本、笔记本计算机、个人数字助理(pda)、服务器、工作站、蜂窝电话、移动计算设备、智能电话、因特网家电或任何其他类型的计算设备或平台。在一些示例中,处理器110可以被包括在片上系统(soc)中。

在一些示例中,处理器110的(一个或多个)核112可以被布置成执行与执行系统100内的飞地操作的应用相关联的指令。(一个或多个)核112可以包括但不限于用来拾取指令的预拾取逻辑、用来解码指令的解码逻辑、用来执行指令的执行逻辑等等。处理器110还包括用来高速缓存指令和/或数据的高速缓存114。高速缓存114包括但不限于级别1(l1)、级别2(l2)、和最后级别高速缓存(llc)或级别3(l3)高速缓存,或用于由处理器110使用的高速缓存存储器的任何其他配置。

在一些示例中,mee高速缓存117和高速缓存114可以包括易失性类型的存储器,其包括但不限于随机访问存储器(ram)、动态ram(dram)、双数据率同步动态ram(ddrsdram)、静态随机访问存储器(sram)、晶闸管ram(tram)或零电容器ram(zram)。然而,不会以这种方式来限制示例,并且在一些情况下高速缓存4的至少一些级别可以包括非易失性类型的存储器,包括但不限于三维交叉点存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、聚合物存储器、铁电聚合物存储器、铁电晶体管随机访问存储器(fetram或feram)、奥氏存储器、纳米线、电可擦除可编程只读存储器(eeprom)、相变存储器、忆阻器或自旋转移力矩-磁阻型随机访问存储器(stt-mram)。

根据一些示例,系统存储器120可以包括易失性类型的存储器,包括但不限于ram、dram、ddrsdram、sram、tram或zram。dram的一个示例或一些变体(诸如sdram)。如在本文中描述的系统存储器可以与许多存储器技术兼容,诸如ddr4(ddr版本4,由jedec在2012年9月公布的初始规范)、lpddr4(低功率双数据率(lpddr)版本4,jesd209-4,由jedec在2014年8月最初公开)、wio2(宽i/o2(wideio2),jesd229-2,由jedec在2014年8月最初公开)、hbm(高带宽存储器dram,jesd235,由jedec在2013年10月最初公开)、ddr5(ddr版本5,当前处于由jedec的讨论中)、lpddr5(lpddr版本5,当前处于由jedec的讨论中)、hbm2(hbm版本2,当前处于由jedec的讨论中)、和/或其他,并且所述系统存储器可以与基于此类规范的派生物或扩展的技术兼容。

然而,不会以这种方式来限制示例,并且在一些情况下系统存储器120可以包括非易失性类型的存储器,即使至设备的电力中断所述非易失性类型的存储器的状态也是确定的。在一个实施例中,该非易失性存储器设备是可块寻址的存储器设备,诸如nand或nor技术。因此,存储器设备还可以包括将来的一代非易失性设备,诸如三维交叉点存储器设备或其他可字节寻址的非易失性存储器设备。在一些示例中,该存储器设备可以是或包括使用硫族化物相变材料(例如硫族化物玻璃)、多阈值级nand闪存存储器、nor闪存存储器、单级或多级相变存储器(pcm)、电阻型存储器、纳米线存储器、fetram、合并忆阻器技术的mram、stt-mram、或上面任一个的组合的存储器设备,或者是或包括其他存储器。

图2图示示例结构200。在一些示例中,结构200可以代表作为计数器模式加密的一部分的用于完整性和重放保护的计数器树结构。用于本文中描述的计数器模式加密的结构200代表一个示例,还会预期计数器模式加密的替换机制。在替换机制中,在计数器树结构中可以存在比图2中示出的更多或更少的级别。

在如图2中示出的一些示例中,结构200包括树节点级别的层次结构。顶部(根部)级别包括一系列管芯上计数器(即l3计数器210),该一系列管芯上计数器被存储在处理器管芯的内部存储装置(例如llc或l3高速缓存)中。该内部存储装置可以包括但不限于管芯上sram、寄存器文件、和处理器管芯中的任何其他适当的存储器。因为l3计数器210在处理器管芯上,所以它们的内容是可信任的并且受到保护以免受被动和主动攻击。然而,信任边界(示出为虚线135)在l3计数器210处终止。在一些示例中,对于结构200的计数器树的较低级别在处理器管芯之外(例如在图1的系统存储器120中)。

根据一些示例,每个l3计数器210都可以被链接至l2中间元数据块,该l2中间元数据块包含一系列l2计数器220。每个l2计数器220都可以被链接至l1中间元数据块,该l1中间元数据块包含一系列l1计数器230。每个l1计数器230都可以被链接至l0中间元数据块,该l0中间元数据块包含一系列l0计数器240。每个l0计数器240都链接至版本块250,该版本块250包含一系列版本节点(由“v”来表示)260。对于这些示例,每个版本节点260都可以与来自系统存储器120的受保护区域(例如epc122)中的加密数据线280之中的加密数据线相关联。例如,在加密数据线do-dm之中,在这里是>1的任何正整数。

在一些示例中,版本节点260的内容是相关联的数据高速缓存线的版本,其在计数器模式加密中提供加密种子的时间分量。可以将较低级别计数器(包括l2、l1和l0计数器以及版本节点260)存储在相对于处理器管芯的管芯外。处于管芯外的较低级别计数器可能容易受到攻击。为了免受攻击,可以利用嵌入式消息认证代码(mac)(被示出为具有阴影线的块)来对每个计数器和每个版本节点编码以确保完整性。

根据一些示例,可以通过将来自下一较高级别的对应计数器用作输入来在mac被嵌入的线上计算每个嵌入式mac。在图2的示例结构200中,使用v0-vn的值及其对应的l0计数器(l02)来计算针对与l02(在图2中被示为中间的版本块)相关联的版本块250的嵌入式mac,在这里“n”是>2的任何正整数。该嵌入式mac的值可以被条纹式存储在版本块250的行中(在图2中被示为条纹框)。可以类似地计算针对每一行l0、l1和l2的嵌入式mac。l3计数器可以不使用嵌入式mac,因为l3计数器的内容在信任边界135之内。

在一些示例中,可以在从版本开始直到l3计数器的受保护存储器区域上构建类似于结构200的整个计数器树,并且该整个计数器树可以对受保护存储器区域中的数据高速缓存线提供重放保护。对于这些示例,重放保护过程可以包括在处理器处对数据高速缓存线执行读操作或写操作的逻辑和/或特征,包括在处理器中的mee(例如mee116)可以加载计数器树的包含由数据高速缓存线的地址标识的树节点(也被称为分支节点)的分支。沿着分支加载树节点并且验证这些树节点的值的真实性的过程在本文中被称为树径。树径从计数器树的底部级别(即版本节点260)前进至根部节点(即l3计数器)。这些树节点值的真实性可能需要得到验证,因为树结构的主要部分驻留在管芯外系统或主存储器中并且可能容易受到攻击。在写的情况下,可以执行树径以便验证分支节点值的真实性并且更新那些值。在读的情况下,也可以执行树径以便验证分支节点值的真实性但是不更新那些值。根据一些示例,mee可以包含诸如实施树径的有限状态机电路系统的逻辑和/或特征。

在一些示例中,可以利用包含从数据线280的内容计算的mac的mac节点270来对每个加密数据线280编码。每次将数据高速缓存线写回至系统存储器的受保护区域时,mee都可以更新该mac以反映存储在系统存储器的受保护区域中的最近数据值。当从系统存储器的受保护区域读取数据高速缓存线时,mee可以验证其关联的mac节点270的值以建立正被读取的数据高速缓存线的完整性。通过对数据高速缓存线使用利用该数据高速缓存线和版本计算的mac,mac节点270的使用提供了防止对存储器驻留的数据高速缓存线进行修改攻击的完整性保护。

根据一些示例,当在飞地操作期间由处理器执行的应用执行用来将加密数据线280之一写回到受保护存储器区域中的写操作时(例如当将数据高速缓存线从管芯上最后级别或l3高速缓存逐出至系统存储器中的受保护区域时),mee可以标识与该数据高速缓存线相关联的版本节点260以及l0、l1、l2和l3计数器(210-240)。该mee可以使该数据线在已标识的版本节点260中的版本递增并且然后更新与数据高速缓存线相关联的mac270。此外,该mee还可以更新该数据高速缓存线的已标识l0、l1、l2和l3计数器(210-240),以及与已更新版本和计数器相关联的嵌入式mac。该更新过程从计数器树的底部级别一直前进至l3计数器的根部级别,所述l3计数器被安全地存储在用于处理器的管芯上存储器中并且因此被保护免受攻击。在计数器树的每个级别处的计数器充当以存储数据高速缓存线的版本的版本节点260结束的下一个较低级别的版本。因此,在写至数据高速缓存线时,更新所有计数器(包括版本)和它们的沿着由数据高速缓存线的地址标识的分支的相关联嵌入式mac以反映版本更新。

在一些示例中,为了确保重放保护,每次从受保护区域加载数据高速缓存线时,都针对一直到计数器树的根部的树节点的真实性来验证该数据高速缓存线。在任何级别处的失配都指示潜在的攻击并引起安全异常,由此可能击败攻击。例如,当在飞地操作期间由处理器执行的应用发起对加密数据线280之一的读操作时,处理器处的mee可以标识该数据高速缓存线的版本和l0、l1、l2和l3计数器(210-240)。读操作不会改变版本的值和l0、l1、l2和l3计数器(210-240)的值。在读操作时,mee验证与数据高速缓存线相关联的mac270。此外,mee验证与版本、l0、l1、l2和l3计数器(210-240)中的每个相关联的嵌入式mac。该验证过程从计数器树的底部级别一直前进至安全根部计数器l3。

根据一些示例,加载在树径中的结构200的树节点可以被本地高速缓存在mee高速缓存(诸如用于mee116的mee高速缓存)中。对于这些示例,mee高速缓存存储已经由在前的请求验证的树节点(包括版本节点和嵌入式mac)的值。该内容可以被称为密码元数据,并且同时存储至mee高速缓存被视为是安全的,因为它位于处理器管芯上。对于读操作,当在mee高速缓存中找到沿着树径分支的第一节点时该树径可以终止。对于写操作,当在mee高速缓存中找到沿着树径分支的第一节点并且被高速缓存的树节点处于已修改状态时该树径就终止。

在一些示例中,为了确保计数器树为所有请求返回正确的计数器值,在写请求上mee可以包括用来在共享沿着写请求的分支的那些树节点的任何其他请求(读或写)可以前进之前完成对这些树节点中的所有树节点更新的逻辑和/或特征。因为读请求不会改变计数器树的值,所以可以并行地处理读请求中的一些,即使这些读请求共享计数器树中的一个或多个树节点。

图3图示示例系统300。在如图3中示出的一些示例中,系统300包括在mee116处接收的高速缓存线301。对于这些示例,高速缓存线301可以包括密码元数据,所述密码元数据可以包括由线性反馈移位寄存器(lfsr)生成的计数器值。包括在经由高速缓存线301接收的密码元数据中的计数器值可以用作在写至管芯外存储器(例如epc122或系统存储器120)的受保护存储器位置或从该受保护存储器位置读期间的版本信息。如在下面更多描述的,压缩-解压缩引擎(cde)325可以包括用来实施一个或多个压缩方案的逻辑和/或特征,该一个或多个压缩方案用来通过对重复数据模式进行编码并且然后将压缩的计数器值存储至mee高速缓存112来压缩计数器值(诸如包括在高速缓存线301中的计数器值)。

根据一些示例,图3中示出的mee116的各个部件包括填充缓冲器310、填充追踪器315、多路复用器(mux)320、cde325、高速缓存控制器330、mee高速缓存117、mee追踪器340、逐出缓冲器350、加密逻辑350、解密认证逻辑355和读缓冲器360。对于这些示例,填充缓冲器310可以在由cde325对计数器值进行压缩之前至少临时存储接收到的密码元数据。mee追踪器340可以追踪发送至mee116的读或写请求,以供解密认证逻辑355例如使用树结构(诸如图2中示出的结构200)来针对示例计数器模式加密方案进行经由树节点的加密、解密和认证的处理。可以由解密认证逻辑355响应于接收到的请求来输出密码元数据302。读缓冲器360可以至少临时存储与要被解密认证逻辑355处理的读请求相关联的信息。

在一些示例中,可以将来自mee追踪器340的追踪信息与从填充缓冲器310转发的要和压缩计数器值包括在一起的计数器值多路复用或与在通过cde325的压缩之后要由高速缓存控制器330存储至mee高速缓存117的其他密码信息多路复用。如在下面更多描述的,高速缓存117可以被布置为至管芯外系统存储器的受保护区域的8路联合高速缓存并且还可以包括用来存储标签以促进存储至mee高速缓存117的数据的查找的内容可寻址存储器(cam)。

根据一些示例,mee加密引擎116可以包括用来监视用密码元数据对mee高速缓存117的填充的逻辑和/或特征(诸如填充追踪器315)。对于这些示例,mee高速缓存117可以具有大约64kb的相对小的存储器容量,并且可以实施高速缓存逐出方案以基于数据是否已经被压缩和基于mee116最近使用了(lastrecentlyused,lru)什么密码元数据来从mee高速缓存117选择性地逐出数据。该高速缓存逐出方案在下文中被称为压缩感知lru高速缓存逐出方案。在一些示例中,逐出缓冲器345可以至少临时存储从mee高速缓存117选择的要逐出的数据。加密逻辑350可能能够在已逐出数据去到管芯外以便可能存储至系统存储器的受保护区域之前对该已逐出数据加密。

在一些示例中,cde325的逻辑和/或特征可以通过首先记录每个压缩计数器值的长度或尺寸并且将该长度或尺寸用作确定该计数器值是否是替换候选时的因素来实施压缩感知lru高速缓存逐出方案。该长度或尺寸仅仅是个因素,因为针对其他类型的密码元数据(诸如mac)的一些未压缩数据可能对mee116的性能产生负面影响,如果这种类型的未压缩数据在压缩计数器值之前大多被逐出的话。该负面影响可能归因于在对受保护存储器的每个数据读/写中都典型地访问mac。在访问高度局限于受保护管芯外系统存储器处的存储器位置的情况下,连续替换mac可能潜在地增加未命中和写回。

图4图示针对压缩-解压缩引擎325的示例框图。尽管图4中示出的cde325在某一拓扑结构中具有有限数目的元件,但是可以认识到,如对于被布置成在mee(诸如图1和3中描述的mee116)中操作的cde的给定实施所期望的,在替换拓扑结构中该cde325可以包括更多或更少元件。

在如图4中示出的一些示例中,cde325包括高速缓存存储管理逻辑410、解压缩逻辑420和压缩逻辑430。在一些示例中,高速缓存存储管理逻辑410、解压缩逻辑420或压缩逻辑430可以是用来实施用于压缩密码元数据的技术的各类型的逻辑,所述逻辑的至少一部分处在硬件中。例如,压缩逻辑430可以包括用来压缩包括在接收到的高速缓存线中的计数器值的特征,诸如模式搜索特征432、选择符特征434、运行长度编码(rle)特征436或代码字典438。高速缓存存储管理逻辑410可能能够将压缩计数器值存储至mee高速缓存,并且实施高速缓存替换策略(例如压缩感知lru)以决定从mee高速缓存逐出什么数据。解压缩逻辑420可以被布置成在压缩数据与读或写请求相关联或受到高速缓存逐出的情况下解压缩通过压缩逻辑430压缩的计数器值。

图5图示示例模式生成500。在一些示例中,mee116的mee高速缓存117可以被布置成存储与英特尔的tee相关联的密码元数据,该tee基于sgx架构,所述sgx架构为在tee内执行的应用提供用于加密、完整性和重放保护的密码机制。对于这些示例,lfsr可以被用来生成计数器值,所述计数器值将在该应用的飞地操作期间充当版本信息。图5中示出的伽罗瓦字段移位寄存器(gfsr)510可以是用来生成这些计数器值的一种类型的lfsr。示例不限于gfsr类型的lfsr,可预期其他类型的lfsr。

根据一些示例,gfsr510可以生成具有时间模式的二进制数字计数器值。例如,如在图5中示出的gfsr510可以是在第二个和第十二个位处具有分接头(tap)的16位gfsr并且可以具有种子值“0000000000000100”。作为示例,由gfsr510在第22个和第31个状态过渡之间输出的状态示出在图5中以粗体文本指示的模式“11101110”的重现。因此,gfsr510能够在状态22和31之间生成“11101110”的时间模式。通过使用在图5中针对gfsr510示出的配置和相同种子值“0000000000000100”,还可以在状态113-117之间以及状态164-169(没有被示出)之间的前面200个状态内观察到相同的时间模式。在计数器模式加密方案(诸如针对图2中的结构200描述和示出的方案)中,版本和较高的树级别计数器(l0-l2)可以全部具有相同的特性功能并且在针对同tee一起操作的应用的飞地操作期间从相同的种子/初始值发起。因此,依据数据/较低级别元数据更新,版本和较高的树级别计数器以不同频率遍历在时间上相同顺序的状态。

在一些示例中,压缩逻辑430的代码字典438可以包括由lfsr(诸如gfsr510)生成的重复出现的时间模式。代码字典438可能能够保持例如128-256个索引项。每个索引项都可以具有代码字典索引值,如在下面更多描述的,该代码字典索引值可以被用于压缩由lfsr生成的计数器值。例如,上面提到的模式‘11101110’可以是代码字典438中具有代码字典索引值的项,可以用该代码字典索引值替换模式“11101110”以便压缩计数器值。

图6图示示例代码字典方案600。在一些示例中,代码字典方案600可以基于由56位gfsr生成的56位版本计数器值,该56位gfsr具有使用已知种子值播种的给定配置(没有被示出)。对于这些示例,该56位gfsr可以生成具有时间模式的计数器值。这些时间模式的至少一部分可以被标识并且存储至256项代码字典并被分配代码字典索引值。尽管示例不限于56位gfsr或256项代码字典,但是可预期更多或更少位的gfsr以及具有更多或更少项的代码字典。

根据如在图6中示出的一些示例,计数值610可以是具有值0011(47'0)10010的56位计数值,在这里(47'0)表示56位计数值中的47个连续0。在一些示例中,包括(47'0)加上二进制值1的模式可以具有分配的代码字典索引值“00000111”。对于这些示例,模式搜索特征432可能已标识该模式并且然后访问代码字典(诸如代码字典438)以便确定哪个代码字典索引值匹配包括(47'0)1的模式。压缩逻辑410然后可以生成将56位计数值向下压缩成24位压缩计数值620的压缩计数值620。如在图6中示出的,指示符位可以指示计数值610的哪些部分还没有被压缩(指示符位=0)以及哪些部分已经被压缩(指示符位=1)。而且,可以添加字节对齐位以便将压缩计数值对齐成最终存储至mee高速缓存117的24位或3字节对齐。示例不限于压缩至2个位的压缩计数值。对于压缩计数值可以预期更大或更小数目的位/字节。

在一些示例中,可以使用另一压缩方案(诸如rle)来压缩未经由代码字典方案压缩的剩余位位置。而且,对于具有嵌入式mac的最初8个位(未被考虑用于压缩)的56位计数器值来说,代码字典(诸如代码字典438)中存储的模式长度可以是24位、32位、40位或48位,其中在可实现的压缩比和针对lfsr计数器的模式重复率之间进行平衡,并且因此代码字典填满(例如耗尽代码字典索引值)。可以对所生成的压缩计数值620执行具有对应前缀位的4位级别粒度的模式搜索(无论任何模式是否以4位边界/粒度开始)。而且,在56位gfsr实施中的第33、第34和第55位处的分接头位置可以使得模式的足够重复能够被标识并且被包括在代码字典(诸如代码字典438)中。

图7图示示例rle方案700。在一些示例中,可以实施rle方案700来压缩56位计数值。对于这些示例,如图7中示出的计数值710可以是与在图6中针对计数值610示出的相同的计数值0011(47'0)10010。然而,对于rle方案700而不是代码字典方案,rle方案可以被压缩逻辑430的rle特征436用来压缩计数值710的56位计数值,以生成计数值720的压缩的32位/4字节计数值。

根据一些示例,rle方案700可以包括简单的运行长度编码方案,该方案利用给定数目的位(诸如0,1,01,01110等等)的空间运行并且以一个字节或4位(半字节)运行长度粒度对它们编码。例如,可以在每个字节/半字节边界处搜索计数值(诸如计数值710)并且当1个、2个字节或1个、2个、3个或4个半字节等等的运行出现时对这些运行进行编码。选取不同的运行字符长度和运行长度粒度可能导致取决于计数值的变化的压缩比。

在一些示例中,压缩逻辑430的运行长度编码特征436的一个特征可以使用字节粒度和1位的字符运行长度来完成计数值710的rle。如在图7中示出的,为了得到压缩计数值720,如所示的可以对包括在计数值710中的47个0位的5个字节或40个位编码。压缩计数值720的“char.run”部分指示将47个0位的这些40个位压缩成二进制值“101”。基于字节粒度,二进制值“101”指示5个字节或40个位。对于这些示例,将47个0位的未压缩7个位包括在压缩计数值720的未压缩部分中。而且,已经添加5个0以便将压缩计数值720字节对齐成然后要被存储至mee高速缓存117的32位或4字节数据。

根据一些示例,可以互相合作地实施rle和代码字典方案。对于这些示例,可以基于包括在代码字典438中的已标识模式来对计数值的一部分编码并且可以使用rle来对该计数值的另一部分编码。对于这些示例,压缩逻辑430的选择符特征434可能能够选择这些方案中的一个或两个来压缩计数值。互相合作地选择方案可以通过使更短的索引值用于更小数目的重复模式来节省代码字典空间。而且,在一些示例中,可以将用于编码的运行长度扩展成包括用于计数器加密方案的所有8个版本/计数器以便增加压缩比,而代价可能是增加对于这些更长运行长度的解压缩潜伏期。

图8图示示例存储方案800。在一些示例中,存储方案800包括标签查找表810。在一些示例中,mee高速缓存(诸如mee高速缓存117)可以被布置为至管芯外系统存储器(诸如存储器120)的8路联合高速缓存。对于这些示例,用于mee高速缓存的高速缓存存储管理逻辑(诸如图4中示出的高速缓存存储管理逻辑410)可以通过将压缩计数器值和一个或多个其他压缩计数器值一起存储在8路联合高速缓存的单路中来存储压缩计数器值(例如压缩计数器值620或压缩计数器值720)。可以向存储至该单路的压缩计数器值和一个或多个其他压缩计数器值分配单独的标签、状态信息和压缩长度指示。所述单独的标签、状态信息和压缩长度指示可以被存储至包括在mee高速缓存中的cam。对于这些示例,高速缓存存储管理逻辑410可能能够使用存储至mee高速缓存的压缩计数器值的相应分配的标签来查找该压缩计数器值。在一些示例中,该查找可以是对写至管芯外系统存储器的与该计数器值相关联的存储器位置作出的响应。解压缩逻辑(诸如cde325的解压缩逻辑420)然后可以对压缩计数器值进行解压缩以便为写至管芯外系统存储器的该存储器位置提供版本信息。

在如图8中示出的一些示例中,标签查找表810包括可以利用如上面提到的存储方案800的三个标签。对于这些示例,“[标签1]”和“[标签3]”可以是针对如由这些标签中的每一个都包括的“[压缩长度]”指示的压缩的计数器值的标签。标签查找表810还包括在“[标签2]”处的第三未压缩标签。所有三个标签都包括状态信息“[有效][废]”,以指示与这些标签相关联的数据仍能有效地使用在用于至管芯外系统存储器的数据高速缓存线写的存储器加密的飞地操作中。示例不限于针对标签查找表的3个标签,可以预期任何数目的标签。而且,示例不限于针对mee高速缓存的8路联合高速缓存。

本文中包括的是代表用于执行所公开的架构的新颖方面的示例方法体系的一套逻辑流程。尽管为了简单解释的目的,将本文中示出的一种或多种方法体系示出并描述为一系列动作,但本领域技术人员将会理解并认识到这些方法体系不受动作顺序的限制。根据一些动作,这些动作可以以与本文中示出且描述的不同的顺序和/或与其他动作同时地发生。例如,本领域技术人员将会理解并认识到可以将一种方法体系替换地表示为一系列互相相关的状态或事件(诸如以状态图)。此外,对于新颖的实施来说,可能并非需要在一种方法体系中说明的所有动作。

可以以软件、固件和/或硬件来实施逻辑流程。在软件和固件实施例中,可以通过存储在至少一个非瞬时计算机可读介质或机器可读介质(诸如光学、磁性或半导体存储装置)上的计算机可执行指令来实施逻辑流程。在该上下文中实施例不受限制。

图9图示逻辑流程900的示例。逻辑流程900可以代表由本文中描述的一个或多个逻辑、特征或设备(诸如包括在cde325中的那些逻辑和/或特征)执行的一些操作或所有操作。更特别地,可以由高速缓存存储管理逻辑410、解压缩逻辑420或压缩逻辑430的特征中的一个或多个来实施逻辑流程900。

根据一些示例,在块902处的逻辑流程900可以接收高速缓存线以填充包括在管芯上存储器中的高速缓存,该高速缓存线包括由计数器(例如lfsr)生成的计数器值,该计数器值将在写至管芯外存储器的存储器位置期间充当版本信息。对于这些示例,压缩逻辑430可以接收包括计数器值的高速缓存线。

在一些示例中,在块904处的逻辑流程900可以基于计数器值是否包括与包括在高速缓存所保持的代码字典中的给定模式相匹配的模式和/或基于计数器值是否包括重复字符或字符模式的空间运行来压缩计数器值。对于这些示例,压缩逻辑430的模式搜索特征432可以识别给定模式,并且或者rle特征436或者/以及代码字典438可以被用来压缩计数器值。

根据一些示例,在块906处的逻辑流程900可以将压缩计数器值存储至高速缓存。对于这些示例,高速缓存管理特征310可以促使压缩计数器值被存储至高速缓存(例如mee高速缓存117)。

图10图示示例存储介质1000。存储介质1000可以包括制造物品。在一些示例中,存储介质1000可以包括任何非瞬时计算机可读介质或机器可读介质,诸如光学、磁性或半导体存储装置。存储介质1000可以存储各种类型的计算机可执行指令,诸如将实施逻辑流程900的指令。计算机可读存储介质或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或非可移动存储器、可擦除或非可擦除存储器、可写或可重写存储器等等。计算机可执行指令的示例可以包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等等。在本上下文中这些示例不受限制。

图11图示示例计算平台1100。在如图11中图示的一些示例中,计算平台1100可以包括处理部件1140、其他平台部件1150或通信接口1160。根据一些示例,计算平台1100可以托管实施用来压缩密码元数据的操作或方案的处理器和存储器,诸如图1中示出的系统100和图3中示出的系统300。

根据一些示例,处理部件1140可以执行针对cde325和/或存储介质1000的处理操作或逻辑。处理部件1140可以包括各种硬件元件、软件元件或二者的组合。硬件元件的示例可以包括器件、逻辑器件、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、设备驱动器、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。如对于给定示例所期望的,确定示例是否是使用硬件元件和/或软件元件来实施的可根据任何数目的因素来变化,所述因素诸如期望计算率、功率水平、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其他设计或性能约束。

在一些示例中,其他平台部件1150可以包括常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片集、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)部件(例如数字显示器)、电源等等。存储器单元的示例可以包括但不限于具有一个或多个更高速存储器单元的形式的各种类型的计算机可读和机器可读存储介质,诸如只读存储器(rom)、ram(dram、ddr-ram)、sdra、sram、可编程rom(prom)、可擦除可编程rom(eprom)、eeprom、闪存存储器、聚合物存储器(诸如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、sonos存储器、磁性或光学卡、器件阵列(诸如独立磁盘冗余阵列(raid)驱动器)、固态存储器器件(例如usb存储器)、固态驱动器(ssd)和适用于存储信息的任何其他类型的存储介质。

在一些示例中,通信接口1160可以包括将支持通信接口的逻辑和/或特征。对于这些示例,通信接口1160可以包括根据用来通过直接或网络通信链路通信的各种通信协议或标准来操作的一个或多个通信接口。直接通信可以经由在一个或多个工业标准(包括后代和变体)(诸如与pcie规范相关联的那些)中描述的通信协议或标准的使用来发生。网络通信可以经由通信协议或标准(诸如在由ieee公布的一个或多个以太网标准中描述的那些)的使用来发生。例如,一个这样的以太网标准可以包括ieee802.3-2012,即在2012年12月公开的带有冲突检测的载波侦听多路访问(csma/cd)访问方法和物理层规范(“ieee802.3”)。网络通信还可以根据一个或多个openflow规范(诸如openflow硬件抽象api规范)来发生。网络通信还可以根据无限带宽架构规范来发生。

计算平台1100可以是计算设备的一部分,其可以例如是用户设备、计算机、个人计算机(pc)、桌上型计算机、膝上型计算机、笔记本计算机、上网本计算机、平板电脑、智能电话、嵌入式电子器件、游戏控制台、服务器、服务器阵列或服务器农场、web服务器、网络服务器、因特网服务器、工作站、迷你计算机、大型计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统、基于处理器的系统或其组合。因此,如适当期望的,本文中描述的计算平台1100的功能和/或具体配置可以被包括在计算平台1100的各个实施例中或者在该各个实施例中被省略。

可以使用分立电路系统、asic、逻辑门和/或单个芯片架构的任何组合来实施计算平台1100的部件和特征。进一步地,可以使用微控制器、可编程逻辑阵列和/或微处理器或在适当合适的情况下前面提到那些的任何组合来实施计算平台1100的特征。要指出,硬件、固件和/或软件元件在本文中可以被统称或单独称为“逻辑”、“特征”、“电路”或“电路系统”。

可以由存储在表示处理器内的各个逻辑的至少一个机器可读介质上的代表性指令来实施至少一个示例的一个或多个方面,所述代表性指令在被机器、计算设备或系统读取时促使该机器、计算设备或系统制造将执行本文中描述的技术的逻辑。这样的表示可以被存储在有形的机器可读介质上并且被供应给各个客户或制造设施以便加载到实际上制成逻辑或处理器的制造机器中。

可以使用硬件元件、软件元件或二者的组合来实施各个示例。在一些示例中,硬件元件可以包括器件、部件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器、等等)、集成电路、asic、pld、dsp、fpga、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。在一些示例中,软件元件可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。如对于给定实施所期望的,确定示例是否是使用硬件元件和/或软件元件来实施的可根据任何数目的因素来变化,所述因素诸如期望计算率、功率水平、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其他设计或性能约束。

一些示例可以包括制造物品或至少一个计算机可读介质。计算机可读介质可以包括将存储逻辑的非瞬时存储介质。在一些示例中,该非瞬时存储介质可以包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或非可移动存储器、可擦除或非可擦除存储器、可写或可重写存储器等等。在一些示例中,该逻辑可以包括各种软件元件,诸如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。

根据一些示例,计算机可读介质可以包括将存储或保持指令的非瞬时存储介质,所述指令在被机器、计算设备或系统执行时促使该机器、计算设备或系统执行根据所述示例的方法和/或操作。这些指令可以包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等等。可以根据预定义的计算机语言、方式或语法来实施这些指令,以便指示机器、计算设备或系统执行某个功能。可以使用任何适当的高级、低级、面向对象的、视觉、编译和/或解释编程语言来实施这些指令。

可以使用表述“在一个示例中”或“示例”连同它们的派生词来描述一些示例。这些术语意指结合示例描述的特定特征、结构或特性被包括在至少一个示例中,短语“在一个示例中”在说明书中的各个地方的出现未必所有都指代同一个示例。

可以使用表述“耦合”和“连接”连同它们的派生词来描述一些示例。这些术语未必意图成为彼此的同义词。例如,使用短语“连接”和/或“耦合”的描述可以指示两个或更多元件彼此直接物理或电接触。然而,术语“耦合”还可以意指两个或更多元件彼此不是直接接触,而是彼此仍协同操作或交互。

下面的示例属于本文中公开的技术的附加示例。

示例1.一种示例设备可以包括压缩-解压缩逻辑,该压缩-解压缩逻辑的至少一部分处在硬件中。该压缩-解压缩逻辑可以接收高速缓存线以便填充包括在管芯上处理器存储器中的高速缓存。该高速缓存可以被布置成存储密码元数据。该高速缓存线可以包括由计数器(例如lfsr)生成的计数器值,该计数器值将在写至管芯外存储器的存储器位置期间充当版本信息。该压缩-解压缩逻辑还可以基于计数器值是否包括与包括在高速缓存所保持的代码字典中的给定模式相匹配的模式和/或基于计数器值是否包括重复字符或字符模式的空间运行来压缩计数器值。该压缩-解压缩逻辑还可以将压缩计数器值存储至高速缓存。

示例2.示例1的设备,该计数器包括用来生成具有时间模式的计数器值的gfsr,基于针对用来生成具有时间模式的计数器值的gfsr的已知种子值而将给定模式包括在代码字典中,所述时间模式中的至少一些与给定模式相匹配,给定模式被分配代码字典索引值。

示例3.示例2的设备,该压缩-解压缩逻辑还可以确定计数器值包括与代码字典中包括的给定模式相匹配的模式。该压缩-解压缩逻辑还可以经由用向给定模式分配的代码字典索引值替换包括在计数器值中的模式来压缩计数器值。

示例4.示例3的设备,该gfsr可以被布置成生成56位计数器值,所述56位计数器值具有用来在由gfsr生成的计数器值内引起多个重复时间模式的多个分接头位置,所述多个重复时间模式的至少一部分被包括在代码字典中并且具有被分配的代码字典索引值。

示例5.示例1的设备,该压缩-解压缩逻辑还可以确定计数器值包括重复字符或字符模式的空间运行。该压缩-解压缩逻辑还可以使用重复字符或字符模式的运行长度编码来压缩计数器值。

示例6.示例5的设备,该空间运行可以包括重复字符,该运行长度编码基于1、2或4位的字符运行长度以及1字节或4位的运行长度粒度。

示例7.示例1的设备,该高速缓存可以被布置为至管芯外存储器的8路联合高速缓存。对于这些示例,该压缩-解压缩逻辑可以将压缩计数器值存储至高速缓存,包括将压缩计数器值和一个或多个其他压缩计数器值一起存储在8路联合高速缓存的单路中。该压缩-解压缩逻辑还可以向存储至该单路的压缩计数器值和一个或多个其他压缩计数器值分配单独的标签、状态信息和压缩长度指示。该压缩-解压缩逻辑还可以将单独的标签、状态信息和压缩长度指示存储至包括在高速缓存中的内容可寻址存储器。该压缩-解压缩逻辑还可以响应于写至管芯外存储器的存储器位置,使用存储至高速缓存存储器的压缩计数器值的相应分配的标签来查找所述压缩计数器值。该压缩-解压缩逻辑还可以对压缩计数器值解压缩以便为写至管芯外存储器的存储器位置提供版本信息。

示例8.示例7的设备,该8路关联高速缓存可以被包括在管芯上处理器存储器和管芯外存储器中,该管芯上处理器存储器包括sram,该管芯外存储器包括易失性类型的存储器(其包括dram)或非易失性类型的存储器(其包括三维交叉点存储器)、使用硫族化物相变材料的存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥氏存储器、纳米线、忆阻器或stt-mram中的至少一个。

示例9.示例1的设备,该压缩-解压缩逻辑还可以实施包括压缩感知lru方案的高速缓存替换策略。对于这些示例,该压缩感知lru方案可以至少部分地基于所选择的计数器值是否已被压缩以及所选择的计数器值已被存储至高速缓存的时间量来选择存储至高速缓存以供替换或逐出的计数器值。

示例10.示例1的设备,被布置成存储密码元数据的高速缓存可以用于与tee,sgx相关联的存储器加密引擎,所述存储器加密引擎为在tee内执行的应用提供用于加密、完整性以及重放保护的密码机制。

示例11.一种示例方法可以包括在处理器电路处接收高速缓存线以填充包括在管芯上处理器存储器中的高速缓存。该高速缓存可以被布置成存储密码元数据。该高速缓存线可以包括由计数器(例如lfsr)生成的计数器值。该计数器值可以在写至管芯外存储器的存储器位置期间充当版本信息。该方法还可以包括基于计数器值是否包括与包括在高速缓存所保持的代码字典中的给定模式相匹配的模式和/或基于计数器值是否包括重复字符或字符模式的空间运行来压缩计数器值。该方法还可以将压缩计数器值存储至高速缓存。

示例12.示例11的方法,该计数器可以是用来生成具有时间模式的计数器值的gfsr。可以基于针对用来生成具有时间模式的计数器值的gfsr的已知种子值来将给定模式包括在代码字典中,所述时间模式中的至少一些与给定模式相匹配,给定模式被分配代码字典索引值。

示例13.示例12的方法还可以包括确定计数器值包括与代码字典中包括的给定模式相匹配的模式。该方法还可以包括通过用向给定模式分配的代码字典索引值替换包括在计数器值中的模式来压缩计数器值。

示例14.示例13的方法,该gfsr可以被布置成生成56位计数器值,所述56位计数器值具有将在由gfsr生成的计数器值内引起多个重复时间模式的多个分接头位置,所述多个重复时间模式的至少一部分被包括在代码字典中并且具有被分配的代码字典索引值。

示例15.示例11的方法还可以包括确定计数器值包括重复字符或字符模式的空间运行。该方法还可以包括使用重复字符或字符模式的运行长度编码来压缩计数器值。

示例16.示例15的方法,该空间运行可以包括重复字符,该运行长度编码基于1、2或4位的字符运行长度以及1字节或4位的运行长度粒度。

示例17.示例11的方法,该高速缓存可以被布置为至管芯外存储器的8路联合高速缓存。对于这些示例,该方法还可以包括将压缩计数器值存储至高速缓存,包括将压缩计数器值和一个或多个其他压缩计数器值一起存储在8路联合高速缓存的单路中。该方法还可以包括向存储至该单路的压缩计数器值和一个或多个其他压缩计数器值分配单独的标签、状态信息和压缩长度指示。该方法还可以包括将单独的标签、状态信息和压缩长度指示存储至包括在高速缓存中的内容可寻址存储器。该方法还可以包括响应于写至管芯外存储器的存储器位置,使用存储至高速缓存存储器的压缩计数器值的相应分配的标签来查找所述压缩计数器值。该方法还可以包括对压缩计数器值解压缩以便为写至管芯外存储器的存储器位置提供版本信息。

示例18.示例17的方法,该8路关联高速缓存可以被包括在管芯上处理器存储器和管芯外存储器中,该管芯上处理器存储器包括sram,该管芯外存储器包括易失性类型的存储器(其包括dram)或非易失性类型的存储器(其包括三维交叉点存储器)、使用硫族化物相变材料的存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥氏存储器、纳米线、忆阻器或stt-mram中的至少一个。

示例19.示例11的方法还可以包括实施包括压缩感知lru方案的高速缓存替换策略。对于这些示例,该压缩感知lru方案可以至少部分基于所选择的计数器值是否已被压缩以及所选择的计数器值已被存储至高速缓存的时间量来选择存储至高速缓存以供替换或逐出的计数器值。

示例20.示例11的方法,高速缓存可以被布置成存储密码元数据,该高速缓存可以用于与tee,sgx相关联的存储器加密引擎,该存储器加密引擎为在tee内执行的应用提供用于加密、完整性以及重放保护的密码机制。

示例21.至少一个机器可读介质的一个示例可以包括多个指令,所述多个指令可以响应于由存储设备处的系统执行而促使该系统实行根据示例11至20中的任一个的方法。

示例22.一种设备可以包括用于执行示例11至10中的任一项的方法的装置。

示例23.一种示例系统可以包括驻留在管芯上的一个或多个处理元件。该系统还可以包括用于该一个或多个处理元件的管芯上存储器。该管芯上存储器可以包括布置成存储密码元数据的高速缓存。该系统还可以包括压缩-解压缩逻辑,该压缩-解压缩逻辑的至少一部分处在硬件中。该压缩-解压缩逻辑可以接收高速缓存线以填充包括在管芯上存储器中的高速缓存,该高速缓存线包括由计数器(例如lfsr)生成的计数器值。该计数器值可以充当在写至管芯外存储器的存储器位置期间的版本信息。该压缩-解压缩逻辑还可以基于计数器值是否包括与包括在高速缓存所保持的代码字典中的给定模式相匹配的模式和/或基于计数器值是否包括重复字符或字符模式的空间运行来压缩计数器值。该压缩-解压缩逻辑还可以将压缩计数器值存储至高速缓存。

示例24.示例23的系统,该计数器可以是用来生成具有时间模式的计数器值的gfsr。对于这些示例,可以基于针对用来生成具有时间模式的计数器值的gfsr的已知种子值来将给定模式包括在代码字典中,所述时间模式中的至少一些与给定模式相匹配,给定模式被分配代码字典索引值。

示例25.示例24的系统,该压缩-解压缩逻辑还可以确定计数器值包括与代码字典中包括的给定模式相匹配的模式。该压缩-解压缩逻辑还可以经由用向给定模式分配的代码字典索引值替换包括在计数器值中的模式来压缩计数器值。

示例26.示例25的系统,该gfsr可以被布置成生成56位计数器值,所述56位计数器值具有将在由gfsr生成的计数器值内引起多个重复时间模式的多个分接头位置。对于这些示例,所述多个重复时间模式的至少一部分可以被包括在代码字典中并且可以具有被分配的代码字典索引值。

示例27.示例23的系统,该压缩-解压缩逻辑还可以确定计数器值包括重复字符或字符模式的空间运行。该压缩-解压缩逻辑还可以使用重复字符或字符模式的运行长度编码来压缩计数器值。

示例28.示例27的系统,该空间运行可以包括重复字符,该运行长度编码基于1、2或4位的字符运行长度以及1字节或4位的运行长度粒度。

示例29.示例23的系统,该高速缓存可以被布置为至管芯外存储器的8路联合高速缓存。对于这些示例,该压缩-解压缩逻辑可以将压缩计数器值存储至高速缓存,包括将压缩计数器值和一个或多个其他压缩计数器值一起存储在8路联合高速缓存的单路中。该压缩-解压缩逻辑还可以向存储至该单路的压缩计数器值和一个或多个其他压缩计数器值分配单独的标签、状态信息和压缩长度指示。该压缩-解压缩逻辑还可以将单独的标签、状态信息和压缩长度指示存储至包括在高速缓存中的内容可寻址存储器。该压缩-解压缩逻辑还可以响应于写至管芯外存储器的存储器位置,使用存储至高速缓存存储器的压缩计数器值的相应分配的标签来查找所述压缩计数器值。该压缩-解压缩逻辑还可以对压缩计数器值解压缩以便为写至管芯外存储器的存储器位置提供版本信息。

示例30.示例29的系统,该8路关联高速缓存可以被包括在管芯上处理器存储器和管芯外存储器中,该管芯上处理器存储器包括sram,该管芯外存储器包括易失性类型的存储器(其包括dram)或非易失性类型的存储器(其包括三维交叉点存储器)、使用硫族化物相变材料的存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥氏存储器、纳米线、忆阻器或stt-mram中的至少一个。

示例31.示例23的系统,该压缩-解压缩逻辑还可以实施包括压缩感知lru方案的高速缓存替换策略。对于这些示例,该压缩感知lru方案可以至少部分地基于所选择的计数器值是否已被压缩以及所选择的计数器值已被存储至高速缓存的时间量来选择存储至高速缓存以供替换或逐出的计数器值。

示例32.示例23的系统,被布置成存储密码元数据的高速缓存可以用于与tee,sgx相关联的存储器加密引擎,该存储器加密引擎为在tee内执行的应用提供用于加密、完整性以及重放保护的密码机制。

示例33.示例23的系统还可以包括通信耦合至一个或多个处理元件的显示器。该系统还可以包括通信耦合至一个或多个处理元件的网络接口。该系统还可以包括通信耦合至一个或多个处理元件的电池。

要强调的是,为了遵守要求将允许读者快速确定本技术公开内容的性质的37c.f.r章节1.72(b),提供公开内容的摘要。在理解该摘要将不被用来解释或限制权利要求的范围或含义的情况下提交该摘要。此外,在前面提到的“具体实施方式”中,可以看到为了简化该公开内容,在单个示例中将各个特征分组在一起。不要将该公开内容的方法解释为反映要求保护的示例需要比在每个权利要求中明确详述的更多的特征的意图。相反,如下面的权利要求反映的,发明主题在于比单个公开的示例的所有特征更少的特征。因此,由此将下面的权利要求合并在具体实施方式中,其中每个权利要求都独立作为一个单独的示例。在所附权利要求中,术语“包括”和“在其中”被分别用作相应术语“包含”和“其中”的简单易懂英语等同物。此外,术语“第一”、“第二”、“第三”等等仅仅被用作标记,并且不打算对它们的对象施加数值要求。

尽管已经以特定于结构特征和/或方法体系动作的语言描述了该主题,但是要理解,在所附权利要求中限定的主题未必限于上述具体特征或动作。相反,上面描述的具体特征和动作被公开为实施权利要求的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1