首页 / 专利库 / 软件 / 操作系统 / 计算存储器中可执行项的加密

计算存储器中可执行项的加密

阅读:957发布:2022-10-02

专利汇可以提供计算存储器中可执行项的加密专利检索,专利查询,专利分析的服务。并且本 发明 涉及计算 存储器 中的可执行项的加密。计算存储器可遍历所述计算存储器中的 操作系统 页面表以寻找标记为可执行的页面。响应于寻找到标记为可执行的页面,所述计算存储器可确定标记为可执行的所述页面是否已加密。响应于确定标记为可执行的所述页面未加密,所述计算存储器可针对标记为可执行的所述页面产生密钥。所述计算存储器可使用所述密钥加密标记为可执行的所述页面。,下面是计算存储器中可执行项的加密专利的具体信息内容。

1.一种方法,其包括:
由计算存储器遍历所述计算存储器中的操作系统页面表以寻找标记为可执行的页面;
响应于寻找到标记为可执行的页面,确定标记为可执行的所述页面是否已加密;
响应于确定标记为可执行的所述页面未加密,针对标记为可执行的所述页面产生密钥;及
使用所述密钥加密标记为可执行的所述页面。
2.根据权利要求1所述的方法,其中所述方法包含,响应于确定标记为可执行的所述页面已加密,遍历所述操作系统页面表以寻找标记为可执行的额外页面。
3.根据权利要求2所述的方法,其中所述方法包含,响应于寻找到标记为可执行的所述额外页面,确定标记为可执行的所述额外页面是否已加密;
响应于确定标记为可执行的所述额外页面未加密,针对标记为可执行的所述额外页面产生不同的密钥;及
使用所述不同的密钥加密标记为可执行的所述额外页面。
4.根据权利要求1到3中任一权利要求所述的方法,其中遍历所述操作系统页面表包括:响应于从与页面存取相关联的主机接收指令而遍历所述操作系统页面表。
5.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含,不考虑加密,授予对所述操作系统页面表中标记为读取、写入或读取/写入的页面的存取权。
6.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含,响应于对标记为可执行的所述页面的请求
产生新密钥;及
使用所述新密钥重新加密标记为可执行的所述页面;及
存储所述重新加密的页面以取代标记为可执行的所述页面。
7.根据权利要求6所述的方法,其中所述方法包含,响应于对标记为可执行的所述页面的所述请求:
解密所述重新加密的页面;及
将所述已解密页面存储于所述计算存储器的高速缓存中以供传送以满足所述请求。
8.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含:
接收新页面,所述新页面包括可执行项;
针对所述新页面产生新密钥;
使用所述新密钥加密所述新页面;
将所述新页面存储于所述计算存储器中;及
针对所述新页面在所述操作系统页面表中创建项目,包含将所述新页面标记为可执行及已加密。
9.一种方法,其包括:
由计算存储器遍历所述计算存储器中的操作系统页面表以寻找标记为可执行的任何页面;
响应于寻找到标记为可执行的第一页面,确定标记为可执行的所述第一页面是否已加密;
响应于确定标记为可执行的所述第一页面未加密,针对标记为可执行的所述第一页面产生第一密钥;
使用所述第一密钥加密标记为可执行的所述第一页面;
响应于寻找到标记为可执行的第二页面,确定标记为可执行的所述第二页面是否已加密;
响应于确定标记为可执行的所述第二页面未加密,针对标记为可执行的所述第二页面产生第二密钥;及
使用所述第二密钥加密标记为可执行的所述第二页面。
10.根据权利要求9所述的方法,其中所述方法包含:
接收第三页面,所述第三页面包括可执行项;
针对所述第三页面产生第三密钥;
使用所述第三密钥加密所述第三页面;及
将所述第三页面存储于所述计算存储器中。
11.根据权利要求10所述的方法,其中所述方法包含针对所述第三页面在所述操作系统页面表中创建项目,包含:
将所述第三页面标记为可执行及已加密;及
将所述第三密钥存储于所述项目中。
12.一种非暂时性计算机可读媒体,其存储可由计算存储器执行的指令以:
确定所述计算存储器中标记为可执行的经请求页面是否已加密;
响应于确定所述经请求页面未加密:
将所述经请求页面存储于所述计算存储器的高速缓存中;
产生密钥;
使用所述密钥加密所述经请求页面;及
将所述已加密页面存储于所述计算存储器中以取代所述经请求页面;及响应于确定所述经请求页面已加密:
产生新密钥;
使用所述新密钥重新加密所述经请求页面;
将所述重新加密的页面存储于所述计算存储器中以取代所述经请求页面;及解密所述经请求页面且将所述已解密的页面存储于所述计算存储器的所述高速缓存中。
13.根据权利要求12所述的媒体,其中所述指令可执行以将所述经请求页面或所述已解密页面从所述高速缓存传送到所述请求的来源。
14.根据权利要求12所述的媒体,其中所述指令可执行以响应于所述经请求页面的后续请求而将所述经请求页面或已解密经请求页面从所述高速缓存传送到所述请求的来源。
15.根据权利要求12到14中任一权利要求所述的媒体,其中所述高速缓存包括所述计算存储器的不可寻址区。
16.根据权利要求12到14中任一权利要求所述的媒体,其中用以确定所述经请求页面是否已加密的所述指令包括用以参考所述计算存储器中指示页面是否已加密及页面是否可执行的操作系统页面表的指令。
17.一种设备,其包括:
计算存储器;及
操作系统页面表,其存储于所述计算存储器中,其中所述操作系统页面表包含:
相应页面是否已加密的指示;
用于已加密的每一页面的相应密钥;
对应于所述相应页面的虚拟地址;
对应于所述相应页面的物理地址;及
所述相应页面的类型的标记;且
其中所述计算存储器经配置以维持所述操作系统页面表。
18.根据权利要求17所述的设备,其中所述计算存储器经配置以:
遍历所述操作系统页面表以寻找标记为可执行且未指示为已加密的页面;及使用唯一产生的密钥加密标记为可执行且未指示为已加密的所述页面。
19.根据权利要求18所述的设备,其中所述相应页面的所述类型的所述标记包括包含可读取、可写入、可读取/可写入及可执行的类型群组中的一者;且
其中所述相应页面的所述类型指示所述相应页面存储的是数据还是可执行项。
20.根据权利要求17到19中任一权利要求所述的设备,其中所述操作系统页面表包含所述相应页面的大小的指示。
21.根据权利要求17到19中任一权利要求所述的设备,其中所述计算存储器包含感测电路,所述感测电路经配置以对存储于所述计算存储器中的存储器单元中的数据执行逻辑运算且将所述结果存储回到所述计算存储器,而不启用耦合到所述感测电路的局域输入/输出线。
22.根据权利要求17到19中任一权利要求所述的设备,其中所述设备包含经配置以产生所述相应密匙的熵源。
23.一种设备,其包括:
计算存储器,其经配置以:
根据由所述计算存储器对所述计算存储器中的操作系统页面表的遍历,响应于所述第一页面未加密且响应于所述第一页面标记为可执行,加密第一页面;
响应于所述第二页面未加密且响应于所述第二页面被请求而加密标记为可执行的第二页面;及
响应于所述第三页面已加密且响应于所述第三页面被请求而重新加密标记为可执行的第三页面。
24.根据权利要求23所述的设备,其中所述计算存储器经配置以使用由所述计算存储器中的熵源产生的唯一的密钥来加密或重新加密所述计算存储器中的页面。
25.根据权利要求24所述的设备,其中所述熵源包括包含相环路频率、所述设备的序列号及定时器的熵源群组中的至少一者。
26.根据权利要求23所述的设备,其中所述计算存储器经配置以在加密所述第二页面之前,将所述第二页面存储于所述计算存储器中的高速缓存中以供根据所述请求而传送。
27.根据权利要求26所述的设备,其中所述计算存储器经配置以响应于对所述第二页面的后续请求而从所述高速缓存传送所述第二页面。
28.根据权利要求23到27中任一权利要求所述的设备,其中所述计算存储器经配置以解密所述第三页面且将所述已解密的第三页面存储于高速缓存中以供根据所述请求而传送。
29.一种方法,其包括:
接收对存储于计算存储器中的页面的请求;
确定所述经请求页面是否已在所述计算存储器中的操作系统页面表中被标记为可执行;
确定所述经请求页面是否已在所述计算存储器中的所述操作系统页面表中被指示为已加密;及
响应于确定所述经请求页面可执行且已加密:
产生新密钥;
使用所述新密钥重新加密所述经请求页面;
将所述重新加密的页面存储于所述计算存储器中以取代所述经请求页面;
解密所述经请求页面且将所述已解密页面存储于所述计算存储器的所述高速缓存中;

从所述高速缓存传送所述已解密经请求页面以满足所述请求。

说明书全文

计算存储器中可执行项的加密

技术领域

[0001] 本发明大体上涉及半导体存储器及方法,且更特定来说,涉及计算存储器中的可执行项的加密。

背景技术

[0002] 存储器装置通常提供为计算装置或其它电子装置中的内部件、半导体、集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可能需要电来维持其数据(例如,用户数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它。非易失性存储器可通过在未被供电时保持所存储的数据而提供持久性数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM))以及其它。
[0003] 计算系统通常包含若干处理资源(例如,一或多个处理器),其可检索并执行指令且将所执行指令的结果存储到适合位置。处理器可包括若干功能单元(例如,在本文中称为功能单元电路(FUC)),例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及/或组合逻辑,例如,其可执行项以对数据(例如,一或多个操作数)执行逻辑运算,例如AND、OR、NOT、NAND、NOR及XOR逻辑运算。
[0004] 在提供指令到功能单元电路以供执行时,可涉及计算系统中的若干组件。举例来说,指令可由例如控制器及/或主机处理器的处理资源产生。可将数据(例如,操作数,将对操作数执行指令以执行逻辑运算)存储于可由FUC存取的存储器阵列中。指令及/或数据可从存储器阵列中检索且可在FUC开始对数据执行指令之前进行序列化及/或缓冲。此外,因为可通过FUC在一或多个时钟循环中执行不同类型的运算,所以也可序列化及/或缓冲运算及/或数据的中间结果。在许多例子中,处理资源(例如,处理器及/或相关联的FUC)可位于存储器阵列的外部,且可(例如经由处理资源与存储器阵列之间的总线)存取数据以执行指令。数据可经由总线从存储器阵列移动到存储器阵列外部的寄存器。附图说明
[0005] 图1是根据本发明的若干实施例的呈包含至少一个计算存储器系统的计算系统的形式的设备的框图
[0006] 图2是根据本发明的若干实施例的计算存储器装置的一部分的示意图。
[0007] 图3是说明根据本发明的若干实施例的读取或写入存取的流程框图。
[0008] 图4是说明根据本发明的若干实施例的新页面分配的流程框图。
[0009] 图5是说明根据本发明的若干实施例的可执行项的加密的流程框图。
[0010] 图6是说明根据本发明的若干实施例的对已加密可执行项的后续存取的流程框图。

具体实施方式

[0011] 多数现代计算机架构使用寄存器-存储器技术,其中在两个分离域中执行运算。通常对若干寄存器文件执行逻辑运算(例如,算术、流控制及组合运算)。通常对存储器装置执行存储器操作(例如,加载、存储等)。寄存器-存储器架构中的指令利用寄存器索引或存储器地址来指示如何/在何处执行运算。
[0012] 计算存储器,例如存储器中处理(PIM)或存储器装置附近处理,可分类为计算架构分类法中的存储器间装置。在计算存储器中,对存储器装置原位执行逻辑运算及存储器操作两者。存储器间架构中的指令使用物理地址指示如何/在何处执行运算。
[0013] 试图攻击或将恶意软件插入到计算系统中通常包含改变由主机处理器执行的指令流或指令的病毒或恶意软件。本发明的一些实施例使用计算存储器来加密可执行项(可执行指令,例如主机处理器指令)。加密可将可执行项多态随机化,使得攻击者必须得了解加密状态以注入会对此系统有负面影响的恶意软件。可执行项的随机化可混淆及/或改变可执行项以产生二进制分集的生态系统,这可减少及/或消除恶意软件及/或系统泄露的来源。试图注入代码的任何恶意软件(例如,二进制注入、缓冲区溢出攻击、莫里斯(Morris)蠕虫、红色警戒(Code Red)、疾(Blaster)病毒、统一资源定位符(URL)堆积漏洞利用等)将必须理解底层指令集架构以便运行代码。
[0014] 本发明涉及计算存储器中的可执行项的加密。计算存储器可遍历计算存储器中的操作系统页面表以寻找标记为可执行的页面。响应于寻找到标记为可执行的页面,计算存储器可确定标记为可执行项的页面是否已加密。响应于确定标记为可执行的页面未加密,计算存储器可针对标记为可执行的页面产生密钥。计算存储器可使用所述密钥加密标记为可执行的页面。本发明的一些实施例向可执行项而非数据提供加密,这有利地允许在无加密及/或解密过程的情况下改变、读取、写入数据等,同时为可能是特定攻击者的目标的可执行项提供保护。可执行指令在本文中统称为可执行项。
[0015] 在本发明的下文详细描述中,参考附图,所述附图形成本发明的一部分且其中以说明的方式展示可如何实践本发明的若干实施例。这些实施例被足够详细地描述以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下作出工艺、电及/或结构变化。如本文中所用,标示符“M”及“N”(尤其针对图式中的元件符号)指示:可包含如此标示的若干特定特征。如本文中所用,“若干”特定事物可指代一或多个此类事物(例如,若干存储器装置可指代一或多个存储器装置)。如本文中所用,术语“第一”及“第二”用于区分一个特征与另一特征,且不一定暗指如此标示的特征之间的次序。
[0016] 本文中的图遵循编号惯例,其中第一数字或前几个数字对应于图号且其余数字识别图式中的元件或组件。可通过使用类似数字而识别不同图之间的类似元件或组件。举例来说,110可参考图1中的元件“10”,且类似元件可在图2中参考为210。可用其后有连字符及另一数字或字母的元件符号参考一个图内的多个类似元件。举例来说,240-1可参考图2中的元件20-1且240-N可参考可类似于元件240-1的元件40-N。通常可在无连字符及额外数字或字母的情况下参考此类类似元件。举例来说,元件240-1、…、240-N可统称为240。如应了解,可添加、交换及/或剔除在本文各种实施例中所展示的元件以便提供本发明的若干额外实施例。另外,如应了解,图中所提供元件的比例及相对尺度希望说明本发明的某些实施例,且不应被理解为限制意义。
[0017] 图1是根据本发明的若干实施例的呈包含至少一个计算存储器系统104的计算系统100的形式的设备的框图。如本文中所用,主机102、计算存储器系统104、计算存储器装置110、存储器阵列111及/或包含感测放大器及计算电路的感测电路124也可各自被单独视为“设备”。
[0018] 计算系统100可包含耦合到计算存储器系统104的主机102,计算存储器系统104包含计算存储器装置110(例如,包含存储器阵列111及/或感测电路124)。计算存储器系统104可充当常规存储器及/或计算存储器。主机102可为主机系统,例如个人膝上型计算机、桌面计算机、数字相机、移动电话或存储器卡读取器,以及各种其它类型的主机。主机102可包含系统主板及/或背板且可包含若干处理资源(例如一或多个处理器、微处理器或一些其它类型的控制电路),例如中央处理单元(CPU)106。CPU 106可耦合到大容量存储装置114。大容量存储装置114可为不可由CPU 106直接存取的存储装置或其它媒体,例如硬盘驱动、固态驱动、光盘驱动且可为非易失性存储器。在一些实施例中,大容量存储装置114可位于主机102外部。主机102可配置有操作系统。操作系统是可执行指令(软件),其管理硬件资源且为在操作系统上运行的其它可执行指令(应用程序)提供服务。操作系统可实施虚拟存储器系统。
[0019] CPU 106可包含耦合到转译后备缓冲器(TLB)120及CPU高速缓存122的逻辑单元118。逻辑单元118的实例是算术逻辑单元(ALU),其为可对整数型二进制数执行算术及按位逻辑运算的电路。若干ALU可用于充当浮点单元(FPU)及/或图形处理单元(GPU),所述浮点单元是对浮点数进行操作的电路,所述图形处理单元是加速创建缓冲器中希望用于输出到显示器的图像的电路。TLB 120是存储器管理硬件可用来改进虚拟地址转译速度的高速缓存。TLB 120可为内容可寻址存储器,其中搜索键是虚拟地址且搜索结果是物理地址。如相对于图3到5更详细地描述,TLB 120可包含操作系统页面表项目,所述操作系统页面表项目将虚拟地址映射到物理地址,且操作系统页面表可存储于存储器(例如,存储器阵列130)中。CPU高速缓存122可为相对较快速寄存器与相对较缓慢主存储器(未具体说明)之间的中间阶段。待由CPU 106操作的数据可在被放置于寄存器中之前复制到CPU高速缓存122,其中操作可受逻辑单元118影响。尽管未具体说明,但CPU高速缓存122可为多层分层式高速缓存。
[0020] 计算系统100可包含分开的集成电路,或主机102及计算存储器系统104两者可在同一集成电路上。计算系统100可为例如服务器系统及/或高性能计算系统及/或其一部分。尽管图1中展示的实例说明具有冯·诺伊曼(Von Neumann)架构的系统,但本发明的实施例可在非冯·诺伊曼架构(例如,图灵机(Turing machine))中实施,所述非冯·诺伊曼架构可能不包含通常与冯·诺伊曼架构相关联的一或多个组件(例如,CPU、ALU等)。
[0021] 为清楚起见,计算系统100已经简化以集中在与本发明特定相关的特征。存储器阵列111可为混合存储器立方体(HMC)、计算存储器,例如存储器中处理随机存取存储器(PIMRAM)阵列,其可包含例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列及/或NOR快闪阵列中的一或多者。存储器阵列111可包括布置成由存取线(其在本文中可称为字线或选择线)耦合的行及由感测线(其在本文中可称为数字线或数据线)耦合的列的存储器单元。尽管图1中展示单个计算存储器装置110,但实施例不受限于此。例如,计算存储器系统104可包含若干计算存储器装置110(例如,DRAM单元的若干库)。
[0022] 计算存储器系统104可包含地址电路126,其用以存跨输入/输出“I/O”总线138(例如,数据总线及/或地址总线)通过I/O电路130提供的地址信号(例如,经由局域I/O线及全局I/O线提供到外部ALU电路及DRAM DQ)。可由行解码器128及列解码器134接收并解码地址信号以存取计算存储器装置110。可通过使用感测电路124对感测线的电压及/或电流变化进行感测而从存储器阵列111读取数据。感测电路124可从存储器阵列111读取一页(例如行)数据且锁存所述页数据。I/O电路130可用于跨I/O总线138与主机102双向数据通信。写入电路132可用于将数据写入到计算存储器装置110。
[0023] 控制器108可解码由控制总线136从主机102提供的信号。这些信号可包含用于控制对计算存储器装置110执行的存储器操作(包含数据读取、数据写入及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。信号也可用于控制对计算存储器装置110执行的逻辑运算,包含算术、流程控制及组合运算以及其它。在各种实施例中,控制器108负责执行来自主机102的指令。控制器108可为状态机、序列发生器、处理器及/或其它控制电路。
[0024] 在一些先前方法中,例如与(逻辑运算相关联的数据将经由感测电路而从存储器读取且经由I/O线(例如,经由局域I/O线及/或全局I/O线)而提供到外部ALU电路。外部ALU电路可包含若干寄存器且将使用数据(其可称为操作数或输入)执行逻辑运算,且结果将经由I/O线传送回到阵列。相比之下,在本发明的若干实施例中,感测电路124经配置以对存储于存储器阵列111中的数据执行逻辑运算且将结果存储回到存储器阵列111,而不启用耦合到感测电路124的I/O线(例如,局域I/O线)。启用I/O线可包含:启用(例如,接通)具有耦合到解码信号(例如,列解码信号)的栅极及耦合到I/O线的源极/漏极的晶体管。然而,实施例不限于不启用I/O线。例如,在若干实施例中,感测电路124可用于执行逻辑运算而不启用阵列的列解码线;然而,可启用局域I/O线以将结果传送到适合位置(例如,到外部寄存器)而非回到阵列111。
[0025] 因而,在若干实施例中,无需阵列111及感测电路124外部的电路来执行逻辑运算,这是因为感测电路124可经操作以使用存储器阵列111的地址空间来执行逻辑运算,而不使用外部处理资源。因此,感测电路124可用于至少在某种程度上补充及/或取代此外部处理资源(或至少此外部处理资源的带宽消耗)。
[0026] 感测电路124可紧邻存储器单元阵列而形成。尽管未具体说明,但在一些实施例中,额外外围感测放大器及/或逻辑(例如,各自存储用于逻辑功能的执行的指令的功能组件)可耦合到感测电路124。感测电路124及外围感测放大器及逻辑可根据本文中所描述的实施例协作执行逻辑运算。
[0027] 然而,在若干实施例中,感测电路124可用于执行除了由外部处理资源(例如,主机102)执行的逻辑运算之外的逻辑运算(例如,执行指令)。例如,主机102及/或感测电路124可限于仅执行某些逻辑运算及/或某数目个逻辑运算。
[0028] 下文结合图2进一步描述感测电路124的实例。例如,在若干实施例中,感测电路124可包括若干感测放大器及若干计算组件,其可包括用作累加器且可用于(例如,对与互补感测线相关联的数据)执行逻辑运算的锁存器。逻辑运算可包含布尔运算(Boolean operation)(例如,AND、OR、NOR、XOR等)、用以执行其它数学运算的布尔运算的组合以及非布尔运算。在若干实施例中,感测电路124可用于使用存储于存储器阵列111中的数据作为输入而执行逻辑运算,且将逻辑运算的结果存储回到存储器阵列111而不经由感测线地址存取传送(例如,不触发列解码信号)。因而,取代及/或除了由感测电路124外部的处理资源(例如,由主机CPU 106及/或位于计算存储器系统104上(例如控制器108上)或别处的其它处理电路(例如,ALU电路)执行逻辑运算,可使用感测电路124来执行逻辑运算。
[0029] 图2是根据本发明的若干实施例的计算存储器装置210的一部分的示意图。计算存储器装置210类似于图1中说明的计算存储器装置110。计算存储器装置210可包含存储器阵列211,存储器阵列211包含耦合到数行存取线242-1、242-2、242-3、242-4、242-5、242-6、242-7、…、242-M及数列感测线244-1、244-2、244-3、244-4、244-5、244-6、244-7、244-8、…、
244-N的存储器单元240-1、240-2、240-3、240-4、240-5、240-6、240-7、240-8、…、240-N。存储器阵列211不受限于特定数目个存取线及/或感测线,且术语“行”及“列”的使用并不意指存取线及/或感测线的特定物理结构及/或定向。虽未图示,但存储器单元的每一列可与一对对应的互补感测线相关联。
[0030] 存储器单元的每一列可耦合到可类似于图1中说明的感测电路124的感测电路224。在此实例中,感测电路包含耦合到相应感测线244的若干感测放大器246-1、246-2、
246-3、246-4、246-5、246-6、246-7、246-8、…、246-N。感测放大器246经由存取装置(例如,晶体管)250-1、250-2、250-3、250-4、250-5、250-6、250-7、250-8、…、250-N耦合到输入/输出(I/O)线254(例如,局域I/O线)。在此实例中,感测电路还包含耦合到相应感测线244的若干计算组件248-1、248-2、248-3、248-4、248-5、248-6、248-7、248-8、…、248-N。列解码线
252-1、252-2、252-3、252-4、252-5、252-6、252-7、252-8、…、252-N分别耦合到存取装置250的栅极,且可经选择性地激活以将由相应感测放大器246感测及/或存储于相应计算组件
248中的数据传送到次级感测放大器256。在若干实施例中,计算组件248可紧邻存储器单元的对应列及/或紧邻对应感测放大器246而形成。
[0031] 在若干实施例中,感测电路(例如,计算组件248及感测放大器246)经配置以对存储于阵列211中的元素执行若干逻辑运算。作为实例,可将第一多个元素存储于耦合到特定存取线(例如,存取线242-1)及若干感测线244的第一组存储器单元中,且可将第二多个元素存储于耦合到不同存取线(例如,存取线242-2)及相应若干感测线244的第二组存储器单元中。可用第二多个元素的相应一个对第一多个元素中的每一元素执行逻辑运算,且可将逻辑运算的结果(例如,作为位向量)存储于耦合到特定存取线(例如,存取线242-3)及所述若干感测线244的第三组存储器单元中。
[0032] 图3是说明根据本发明的若干实施例的读取或写入存取的流程框图。图3到6说明表示类似架构的操作的不同流程图。图3包含类似于相对于图1描述的大容量存储装置114的大容量存储装置314的说明。相对于图4更详细地描述大容量存储装置314的功能。图3包含类似于图1中说明的CPU 106的CPU 306。将CPU 306说明为包含逻辑单元318、TLB 320及CPU高速缓存322。图3包含计算存储器系统304,计算存储器系统304包含I/O电路330、存储器阵列311及计算存储器系统高速缓存312。相对于图5到6更详细地描述计算存储器系统高速缓存312。存储器系统304类似于图1中说明的存储器系统104。将存储器系统304说明为包含操作系统页面表316。尽管操作系统页面表316可存储于存储器阵列311中,但为了易于说明及解释而单独说明操作系统页面表316。同样地,计算存储器程序342可存储于存储器阵列311中,但单独说明以突显相对于图3到6描述的功能流程。存储器系统304可包含如在下文更详细地描述的熵源340。
[0033] 本发明的一些实施例可使CPU 306及底层架构保持与CPU的常规情况无异。然而,计算存储器系统304可不同地操作,及/或主机的操作系统可与常规情况不同地操作。常规地,操作系统可维持操作系统页面表,然而根据本发明,计算存储器系统304可维持操作系统页面表316,这是因为计算存储器系统304可加密及/或解密存储于存储器中的页面,且在操作系统页面表中指示所述页面且可针对已加密页面产生密钥并将密钥存储于操作系统页面表中。计算存储器系统304可针对已加密页面产生新密钥且实时重新加密所述页面。主机CPU 306可包含其存储器层级中的TLB 320,但操作系统页面表316存储于存储器阵列311中。一旦页面缺失(例如,当将可执行项加载到存储器阵列311时),可能需要将页面从大容量存储装置314加载且加载并放置于物理及虚拟存储器的保留区中。所述保留可由操作系统管理且维持于操作系统页面表316中。操作系统页面表316可定位于存储器阵列311的保留区中。举例来说,在ARM架构中,ARM存储器管理单元(MMU)可使用寄存器TTB0及TTB1指向操作系统页面表以允许页面出错事件下的表的硬件查询(walking)。
[0034] 由于操作系统页面表316定位于存储器阵列311中,所以计算存储器系统304具有对操作系统页面表316结构的编程存取权,这意味着计算存储器系统304可对操作系统页面表316作出改变。操作系统页面表316可包含指示关于由操作系统页面表316参考的页面的信息的若干字段。此类字段可包含加密指示字段346,密钥字段348、虚拟地址字段350、物理地址字段352、页面类型字段354及/或大小字段356。加密指示字段346可指示对应页面是否已加密(例如,通过位值1表示是,或位值0表示否)。如果对应页面已加密,那么密钥字段348可存储对应页面的密钥。如果对应页面未加密,那么由于将没有必要,因此可能不针对对应页面来将密钥存储于密钥字段348中。虚拟地址字段350可存储对应于页面的虚拟地址。物理地址字段352可存储对应于页面的物理地址。页面类型字段352可标记对应页面的类型(例如,读取“R”、写入“W”、读取/写入“R/W”或可执行“X”)。页面的类型指示页面存储的是数据还是可执行项以及其它。大小字段356可指示对应页面的大小(例如,4k)。表1中展示表的实例。
[0035] 表1:
[0036]加密 密钥 虚拟 物理 类型 页面大小
1 0xA8F01… 0x80010000 0x01000000 X 4k
0 NA 0x40A00000 0x01100000 R 1MB
1 0xBB16B… 0x80080000 0x01080000 X 4k
0 NA 0x60A08000 0x00001000 R/W 4k
[0037] 在一些实施例中,可能不缓存操作系统页面表316,以便保存操作系统页面表316、CPU 306及存储器阵列311中的信息之间的相干性。计算存储器系统304可经配置(例如,经编程)以遍历存储器阵列311中的操作系统页面表316(例如以寻找标记为可执行的页面)。举例来说,计算存储器系统304可包含可对遍历操作系统页面表316进行处置的计算存储器程序342。操作系统页面表316中参考的页面可存储数据或可执行项。因此,可通过页面类型字段354中的标记将操作系统页面表316中参考的页面标记为可执行。页面类型读取、写入及读取/写入可标记数据页面(存储数据的页面)且页面类型可执行可标记可执行的页面(存储可执行指令的页面)。
[0038] 计算存储器系统304可经配置以加密及/或解密可执行项。举例来说,计算存储器系统304可包含可处置可执行项的加密及/或解密的计算存储器程序342。在一些实施例中,计算存储器程序342可在可执行项在页面出错期间填充于计算存储器系统304中时,及/或(例如,在来自CPU 306的缓存线再填充期间)从计算存储器系统304读取可执行项时处置可执行项的加密及/或解密。页面是否加密的指示可存储于加密指示字段346中。在一些实施例中,主机操作系统可如由I/O电路330与计算存储器程序342之间的线所指示而(例如,在起动时)启动计算存储器系统304中的计算存储器程序342。在计算存储器程序342运行之后,主机操作系统相对于加密的责任可结束。
[0039] 计算存储器系统304可包含熵源340,熵源340可产生密钥及/或用于针对标记为可执行的页面产生密钥以用所述密钥加密所述页面。可基于由熵源340产生的随机数字或接近随机数字来产生密钥。熵源340的实例是锁相环路(PLL)频率(例如,PLL时钟),其可经取样以产生将用作密钥的数。熵源340的实例是与计算存储器系统304相关联的序列号,所述序列号可经取样以产生将用作密钥及/或用作产生另一值的算法的输入的数,所述另一值可经取样(或使用)以产生将用作密钥的数。熵源340的实例为定时器,其可经取样以产生将用作密钥的数。在一些实施例中,密钥可由经取样PLL频率互斥或(XOR)、由经取样序列号XOR、由经取样定时器而产生。计算存储器系统304可经配置以使用由熵源340产生的唯一密钥加密或重新加密存储器阵列311中的页面。其它熵源及/或熵源的组合可用于产生随机或接近随机数字。
[0040] 如上文所描述,根据本发明,针对数据读取或写入操作,加密并非必要的。在不考虑加密的情况下,计算存储器程序442可授予对操作系统页面表316中的数据页面(标记为读取、写入及/或读取/写入的页面)的存取权。因此,数据页面358可通过存储器阵列311与CPU 306(例如,经由CPU高速缓存322)之间的I/O电路330传送且存储于存储器阵列311中或从存储器阵列311中读取。举例来说,在读取/写入操作中,来自TLB 320的虚拟存储器地址(例如,“A”)可从计算存储器系统304传输及/或传输到计算存储器系统304,且从对应于写入的数据页面358的第一表项目344的虚拟地址字段350中检索及/或存储于虚拟地址字段350中。对应于虚拟地址的物理地址(例如,“B”)可从第一表项目344的物理地址字段352检索及/或存储于物理地址字段352中。这由延伸于第一表项目344与TLB 320之间的线指示。
因为传送的是数据页面358,而非可执行项,所以计算存储器程序342可如由计算存储器程序342与第一表项目344之间的线所指示而在第一表项目344的加密指示字段346中将页面标记为未加密(例如,“0”)。计算存储器程序可不将密钥存储于第一表项目344的密钥字段
348中(例如,“N/A”),这是因为其对应于未加密的数据页面358。计算存储器程序342可将数据页面358是读取/写入的指示(例如,“R/W”)存储于页面类型字段354中且将页面大小的指示(例如,“4k”)存储于大小字段356中。
[0041] 图4是说明根据本发明的若干实施例的新页面分配的流程框图。图4包含大容量存储装置414的说明,大容量存储装置414包含可执行项461。图4包含CPU 406,CPU 406包含逻辑单元418、TLB 420及CPU高速缓存422。图4包含计算存储器系统404,计算存储器系统404包含I/O电路430、存储器阵列411、计算存储器系统高速缓存412、操作系统页面表416、计算存储器程序442及熵源440。
[0042] 大容量存储装置414可存储用于CPU 406的可执行项461。可如由从大容量存储装置414穿过I/O电路430到存储器阵列411的箭头所指示,通过直接存储器访问(DMA)而将可执行项461从大容量存储装置414加载到存储器阵列411中。最初,将来自大容量存储装置414的可执行项461作为明文可执行页面462存储于存储器阵列411中,这是因为其未在大容量存储装置414中加密。计算存储器程序442可在操作系统页面表416中产生第二表项目460以对应于存储器阵列411中的明文可执行页面462。
[0043] 因为明文可执行页面462尚未加密,所以计算存储器程序442可在第二表项目460的加密指示字段446中将明文可执行页面462标记为未加密(例如,“0”)。同样地,不在第二表项目460的密钥字段448中存储密钥(例如,“—”)。可将来自TLB 420的虚拟存储器地址(例如,“C”)传输到计算存储器系统404且存储于第二表项目460的虚拟地址字段450中。可将对应于虚拟地址的物理地址(例如,“D”)存储于第二表项目460的物理地址字段452中。这由延伸于第二表项目460与TLB 420之间的线指示。如由计算存储器程序442与第二表项目460之间的线所指示,计算存储器程序可在第二表项目460的类型字段454中将明文可执行页面462标记为可执行(例如,“X”)。未加密的明文可执行页面462与这样的指示之间的对应性由存储器阵列411与第二表项目460之间的线说明。计算存储器程序442可将页面大小的指示(例如,“4k”)存储于大小字段456中。
[0044] 图5是说明根据本发明的若干实施例的可执行项的加密的流程框图。图5包含对大容量存储装置514的说明。图5包含CPU 506,CPU 506包含逻辑单元518、TLB 520及CPU高速缓存522。图5包含计算存储器系统504,计算存储器系统504包含I/O电路530、存储器阵列511、计算存储器系统高速缓存512、操作系统页面表516、计算存储器程序542及熵源540。
[0045] 在图4中,最初将来自大容量存储装置414的可执行项461作为明文可执行项462存储于存储器阵列411中。然而在图5中,计算存储器程序542可使用熵源540产生明文可执行项462的密钥且将明文可执行项462加密成密文可执行项564,且将密文可执行项564存储回到存储器阵列511。加密的一些实例包含高级加密标准(AES)(例如AES 128位加密、AES 256位加密等)及数据加密标准(DES)以及其它。计算存储器程序542可删除明文可执行项462的第二表项目460且创建密文可执行项564的第三表项目563。
[0046] 计算存储器程序542可在第三表项目563的加密指示字段546中将密文可执行页面564标记为已加密(例如,“1”)。这由计算存储器程序542与第三表项目563之间的线指示。产生用以加密页面的密钥可存储于第三表项目563的密钥字段548中(例如,“XYZ”)。这由从熵源540穿过计算存储器程序542到第三表项目563中的密钥字段548的线指示。第三表项目
563的虚拟地址字段550中的虚拟存储器地址(例如,“C”)、物理地址字段552中的物理地址(例如,“D”)、类型字段554中的类型(例如,“X”)及大小字段556中的大小(例如,“4k”)可保持与第二表项目460相同,然而,实施例不受限于此,这是因为例如,物理地址可能改变。
[0047] 计算存储器程序542可在将明文可执行项462加密成密文可执行项564之前复制明文可执行项462(如图4中说明)且将其存储为存储器系统高速缓存512中的明文可执行项566。这由计算存储器542、密文可执行项564与明文可执行项566之间的线指示。计算存储器系统高速缓存512可为(例如,计算存储器系统504及/或存储器阵列511的)计算存储器的非可寻址(例如,安全)区。非可(例如,由主机或DMA装置等)寻址的计算存储器系统高速缓存
512可使明文可执行项566安全,这是因为外部装置(例如主机或DMA装置)无法注入恶意软件。计算存储器系统高速缓存512中的明文可执行项566可用于满足来自主机的额外指令请求且隐藏可由计算存储器程序542的操作导致的一些延时。这由从明文可执行项566到CPU 
506的线说明。
[0048] 计算存储器程序542可遍历操作系统页面表516(例如,在任何主机操作以外及/或在计算存储器系统504及/或操作系统页面表516的空闲时间期间)来查找标记为可执行的页面。在一些实施例中,计算存储器程序542可响应于从与(例如,针对经请求页面的)页面存取相关联的主机接收到指令而遍历操作系统页面表516。响应于寻找到标记为可执行的页面,计算存储器程序542可确定标记为可执行的页面是否已加密。可通过参考指示页面是否已加密(例如,通过加密指示字段546)且页面是否可执行(例如,通过类型字段554)的操作系统页面表516来确定经请求页面是否已加密。响应于确定标记为可执行的页面未加密,计算存储器程序542可针对标记为可执行的页面产生密钥且使用所述密钥加密页面。可取代未加密页面(取代其中加密操作是响应于来自主机的请求的经请求页面)存储已加密页面。寻找到未加密的标记为可执行的页面可能暗指在某一时刻计算存储器系统504遭遇页面出错及需要将页面加载到存储器阵列511中。有利地,计算存储器程序542可通过用唯一产生的密钥加密页面而对此进行补救,使得对注入攻击更有复原力。
[0049] 响应于确定标记为可执行的页面已加密,计算存储器程序542可继续遍历操作系统页面表516以寻找标记为可执行的额外页面。响应于寻找到标记为可执行的额外页面,计算存储器程序542可确定标记为可执行的额外页面是否已加密。如果标记为可执行的额外页面尚未加密,那么计算存储器程序542可产生不同的密钥且使用所述不同的密钥加密标记为可执行的所述额外页面。计算存储器程序542可继续遍历操作系统页面表516以寻找标记为可执行的任何页面且加密未加密的那些可执行项。可用唯一的密钥加密已加密的操作系统存储器表516中被参考的每一加密页面,使得操作系统页面表516的密钥字段548中的每一密钥是唯一的(没有两个密钥是相同的)。
[0050] 在一些实施例中,响应于确定标记为可执行的页面已加密,计算存储器程序542可产生新密钥,使用新密钥重新加密经请求页面,且将重新加密的页面存储于存储器阵列511中以取代经请求页面。可用新密钥更新经请求页面的密钥字段548。重新加密的页面可经解密(使用密钥)且作为明文存储于存储器系统高速缓存512中。
[0051] 图6是说明根据本发明的若干实施例的对已加密可执行项的后续存取的流程框图。图6包含对大容量存储装置614的说明。图6包含CPU 606,CPU 606包含逻辑单元618、TLB 620及CPU高速缓存622。图6包含计算存储器系统604,计算存储器系统604包含I/O电路630、存储器阵列611、计算存储器系统高速缓存612、操作系统页面表616、计算存储器程序642及熵源640。
[0052] 存储器阵列611被说明为具有对应于图5中说明的密文可执行项564的密文可执行项644。响应于对标记为可执行的页面(例如,密文页面664)的请求,计算存储器程序642可(用熵源640)产生新密钥、使用新密钥重新加密标记为可执行的页面且存储经重新加密的可执行的页面以取代所述标记为可执行的页面。这由计算存储器程序642与密文可执行项664及密文可执行项668之间的线说明,密文可执行项668表示标记为可执行的重新加密页面。删去密文可执行项664表示密文可执行项668取代它而得以存储。计算存储器程序642可删除密文可执行项564的第三表项目563且创建密文可执行项668的第四表项目665。
[0053] 计算存储器程序642可在第四表项目665的加密指示字段646中将密文可执行页面668标记为已加密(例如,“1”)。产生用以加密页面的新密钥可存储于第四表项目665的密钥字段648中(例如,“PQR”)。这由从熵源640穿过计算存储器程序642到第四表项目665中的密钥字段648的线指示。第四表项目665的虚拟地址字段650中的虚拟存储器地址(例如,“C”)、物理地址字段652中的物理地址(例如,“D”)、类型字段654中的类型(例如,“X”)及大小字段
556中的大小(例如,“4k”)可保持与第三表项目563相同,然而,实施例不受限于此,这是因为例如物理地址可能改变。
[0054] 尽管未在图6中具体说明,但可(例如,从主机或DMA装置)接收可执行项的新页面,且计算存储器程序642可针对新页面(用熵源640)产生新密钥。新页面可由新密钥加密且存储于存储器阵列611中。计算存储器程序642可针对新页面而在操作系统页面表616中创建新项目,包含将新页面标记为可执行及已加密。
[0055] 在一些实施例中,计算存储器程序642可解密已重新加密的页面(例如,密文可执行项668)且将已解密的页面(例如,作为明文可执行项670)存储于计算存储器系统高速缓存612中以供传送(例如,到主机或DMA装置)以满足(请求来源的)请求。这由计算存储器程序642、明文可执行项670及密文可执行项668之间的线,以及明文可执行项670与CPU 606之间的线说明。在一些实施例中,已解密可执行项或未加密可执行项通过I/O电路630从计算存储器系统高速缓存612而非从存储器阵列611传送到请求装置以防止将任何已注入的代码随可执行项一起发送,这是因为不存在用于将代码注入到计算存储器系统高速缓存612的机构。即使存储器阵列611中的密文可执行项注入有恶意代码,对可执行项的解密将使注入的代码无意义,这是因为所述注入的代码不可能以具有用于加密可执行项的相同密钥的加密形式注入。因此,解密过程将泄露恶意代码。具有泄露的恶意代码的可执行项可能无法用于其预期目的(其可产生错误),而恶意代码将不执行(例如,其可导致停止、预取中止或使管线急剧断路),而病毒不会扩散。
[0056] 尽管未如此具体说明,但用于存储可执行指令的非暂时性计算装置可读媒体可包含全部形式的易失性及非易失性存储器,包含例如半导体存储器装置、DRAM、PIM、HMC、EPROM、EEPROM、快闪存储器装置、磁盘(例如,固定磁盘、软盘及可装卸磁盘)、其它磁性媒体(包含磁带)、光学媒体(例如,光盘(CD)、数字多功能光盘(DVD)及蓝光光盘(BD))。指令可由ASIC补充或并入于ASIC中。举例来说,图1中说明的次级存储装置114、CPU高速缓存122及/或存储器阵列111中的任何一或多者可为非暂时性计算装置可读媒体。
[0057] 尽管已在本文中说明及描述具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代展示的具体实施例。本发明希望涵盖本发明的一或多个实施例的调适或变化。应理解,已以说明性方式且非限制性方式进行以上描述。所属领域的技术人员在检视上述描述时将明白上述实施例与未在本文中具体描述的其它实施例的组合。本发明的一或多个实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求书连同此类权利要求所授权的等效物的全部范围而确定本发明的一或多个实施例的范围。
[0058] 在前述实施方式中,为简化本发明的目的而将一些特征一起集合于单个实施例中。此种揭示方法不应解释为反映以下意图:本发明所揭示的实施例必须使用多于每一权利要求中所明确陈述的特征。实情是,如所附权利要求书反映,发明标的物可能少于单个所揭示实施例的全部特征。因此,所附权利要求书以此方式并入具体实施方式中,其中每一权利要求单独作为独立实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈