CN110196819B - 内存访问方法与硬件 - Google Patents

内存访问方法与硬件 Download PDF

Info

Publication number
CN110196819B
CN110196819B CN201910477103.XA CN201910477103A CN110196819B CN 110196819 B CN110196819 B CN 110196819B CN 201910477103 A CN201910477103 A CN 201910477103A CN 110196819 B CN110196819 B CN 110196819B
Authority
CN
China
Prior art keywords
cache
value
memory
flag bit
data
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
CN201910477103.XA
Other languages
English (en)
Other versions
CN110196819A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201910477103.XA priority Critical patent/CN110196819B/zh
Publication of CN110196819A publication Critical patent/CN110196819A/zh
Application granted granted Critical
Publication of CN110196819B publication Critical patent/CN110196819B/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/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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种内存访问方法与硬件,能在防止基于共享缓存的侧信道攻击的同时兼顾对于内存访问敏感的程序的性能。所述方法,包括:硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及所述硬件在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存。

Description

内存访问方法与硬件
技术领域
本发明涉及计算机安全技术领域,具体而言,涉及一种内存访问方法与硬件。
背景技术
现代计算机体系结构中,由于内存访问速度和CPU执行速度存在巨大的差距,导致了缓存的出现,通过将计算机最近经常访问的内存数据保存在一个可以快速访问的较小的缓存中极大的减少了CPU对内存的直接访问次数,极大的提高了计算机的执行效率。
另外一方面,随着计算机密码学理论体系逐步完善以及计算机安全软件开发的逐步成熟,越来越多已知的安全问题被逐步改进以后,侧信道攻击问题慢慢凸现出来。比如2017年被曝光的幽灵和熔断病毒就是侧信道攻击的典型代表。对于通用服务器芯片,基于共享缓存的侧信道攻击问题尤其严重而且很难解决。
由于长期以来,计算机缓存结构设计的主要目的就是减少内存访问的平均时间来提高性能,而没有考虑到安全问题,导致了其中存在如信息泄露等安全问题。现在缓存结构一般使用多级缓存,而通常最后一级缓存通常会被多个处理器核心(CPU core)共享,这个使得在一个处理器核心上运行的代码的信息容易被运行在另外一个处理器核心上的攻击代码通过针对共享的最后一级缓存进行侧信道攻击窃取信息。
为了防止这种侧信道攻击,有人提议将最后一级缓存划分成若干不同的区域,让不同的代码使用不同区域的缓存,通过这种对缓存的使用进行隔离的方案来抵御针对缓存的侧信道攻击。但是这种方案极大的减少了每个代码可以使用的缓存数目,使得对于内存访问敏感的程序的性能会严重降低。
发明内容
有鉴于此,本发明的目的在于提供一种内存访问方法与硬件,能在防止基于共享缓存的侧信道攻击的同时兼顾对于内存访问敏感的程序的性能。
第一方面,本发明实施例提供了一种内存访问方法,包括:
硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及
所述硬件在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存。
第二方面,本发明实施例还提供了一种内存访问硬件,包括:
第一获取单元,用于获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及
第一写入单元,用于在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存。
该方法和硬件至少能实现如下效果:硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,并在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存,而由于对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示不允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存,这就使得本方案在需要将对基于共享缓存的侧信道攻击敏感的私有缓存的数据写入内存时,会跳过共享缓存直接写入内存,因而能防止基于共享缓存的侧信道攻击,而且本方案并未减少每个代码可以使用的缓存数目,因而能在防止基于共享缓存的侧信道攻击的同时兼顾对于内存访问敏感的程序的性能。
附图说明
本公开可以通过参考下文中结合附图所给出的描述而得到更好的理解,附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分。在附图中:
图1为本发明内存访问方法一实施例的流程示意图;
图2为本发明内存访问方法另一实施例的缓存结构图;
图3为本发明内存访问方法又一实施例的流程示意图;
图4为本发明内存访问硬件一实施例的结构示意图;
图5为本发明内存访问硬件另一实施例的结构示意图。
具体实施方式
在下文中将结合附图对本公开内容的示例性实施方式进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中可以做出很多特定于实施方式的决定,以便实现开发人员的具体目标,并且这些决定可能会随着实施方式的不同而有所改变。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开内容的方案密切相关的装置结构,而省略了与本公开关系不大的其他细节。
应理解的是,本公开内容并不会由于如下参照附图的描述而只限于所描述的实施形式。在本文中,在可行的情况下,实施方式可以相互组合、不同实施方式之间的特征替换或借用、在一个实施方式中省略一个或多个特征。
参看图1,本发明公开一种内存访问方法,包括:
S10、硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及
S11、所述硬件在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存。
本实施例中,第一标志位可以包括1个比特位,也可以包括至少2个比特位。如图2所示为本发明内存访问方法另一实施例的缓存结构图,该缓存为4路缓存,4路代表每个缓存集中可以最多有4条缓存行,其中,每一行代表一个缓存集,附属信息v用来确定对应的缓存行是否含有合法信息,标签Tag用来标识缓存行,Data代表缓存行对应的内存数据,第一标志位L用来指示是否允许缓存行对应的内存使用共享缓存。具体地,可以设置当L=0时指示允许缓存行对应的内存使用共享缓存,而当L=1时指示不允许缓存行对应的内存使用共享缓存。
本发明实施例提供的内存访问方法,硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,并在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存,而由于对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示不允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存,这就使得本方案在需要将对基于共享缓存的侧信道攻击敏感的私有缓存的数据写入内存时,会跳过共享缓存直接写入内存,因而能防止基于共享缓存的侧信道攻击,而且本方案并未减少每个代码可以使用的缓存数目,因而能在防止基于共享缓存的侧信道攻击的同时兼顾对于内存访问敏感的程序的性能。
图3为本发明内存访问方法另一实施例的流程示意图,参看图3,在前述方法实施例的基础上,在所述硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值之前,还可以包括:
S30、所述硬件从内存中获取所述私有缓存的数据,并获取所述私有缓存的数据对应的页表的页表项的第二标志位的值,其中,所述第二标志位用于指示是否允许相应的页表项对应的内存页使用所述共享缓存;
S31、所述硬件在所述第二标志位的值指示不允许相应的页表项对应的内存页使用所述共享缓存时,将所述私有缓存的数据写入所述私有缓存,并根据所述第二标志位的值设置所述第一标志位的值。
本实施例中,需要说明的是,在第二标志位的值指示允许相应的页表项对应的内存页使用共享缓存时,所述硬件会将相应的数据写入私有缓存和共享缓存。所述硬件可以通过操作系统或安全代码装载工具获取所述私有缓存的数据对应的页表的页表项的第二标志位的值,并根据所述第二标志位的值设置所述第一标志位的值。第一标志位的值根据第二标志位的值确定,其与第二标志位的值保持一致。通过软硬结合来确定是否允许私有缓存的数据使用共享缓存,对安全要求比较高的程序提供了一种可行的防止缓存侧信道攻击同时对性能不会有太大的影响的方案。
在前述方法实施例的基础上,在所述获取所述私有缓存的数据对应的页表的页表项的第二标志位的值之前,还可以包括:
所述私有缓存的数据所属的程序设置所述第二标志位的值。
在前述方法实施例的基础上,所述私有缓存的数据所属的程序设置所述第二标志位的值,可以包括:
所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值;
所述程序根据所述程序的内存分配函数设置所述内存分配函数分配的内存对应的第二标志位的值为第一值或第二值,其中,所述第一值为指示不允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值,所述第二值为指示允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值。
本实施例中,需要说明的是,由于通常对于局部变量和代码几乎都是顺序访问的,共享缓存对它们的作用相对比较小,所以默认对于安全需求较高的程序的局部变量和代码不允许使用共享缓存,即可以通过所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值,当然也可以根据需要通过所述程序设置所述程序的特定局部变量或特定代码对应的第二标志位的值为第二值。而对于内存分配函数(比如C中malloc函数),可以要求所述内存分配函数提供一个额外的标志位(该额外的标志位可以以参数的形式提供)指定是否允许所述内存分配函数分配的内存使用共享缓存,当该额外的标志位指定允许所述内存分配函数分配的内存使用共享缓存时,所述程序设置所述内存分配函数分配的内存对应的第二标志位的值为第二值,否则,所述程序设置所述内存分配函数分配的内存对应的第二标志位的值为第一值。
在前述方法实施例的基础上,所述第二标志位可以包括页属性表支持位和/或页级高速缓存禁止位和/或页级通写位。
本实施例中,所述第二标志位可以包括如x86处理器为支持虚拟化技术使用的外层嵌套页表的页属性表支持位PAT和/或页级高速缓存禁止位PCD和/或页级通写位PWT。需要说明的是,除了可以使用页属性表支持位PAT、页级高速缓存禁止位PCD和页级通写位PWT中的至少一个比特位作为第二标志位,也可以新增至少一个比特位作为第二标志位。当使用页属性表支持位PAT、页级高速缓存禁止位PCD和页级通写位PWT作为第二标志位时,可以设置第一值为111,即这三个比特位均取值为1时,不允许对应的内存页使用共享缓存;可以设置第二值为011、101、110、001、010、100、000中的任意一个,即这三个比特位取值不全为1时,允许对应的内存页使用共享缓存。
在前述方法实施例的基础上,所述方法还可以包括:
所述硬件在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存。
本实施例中,需要说明的是,在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,也可以设计所述硬件判断所述共享缓存是否使用紧张,当所述共享缓存使用不紧张时,才将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存;而当所述共享缓存使用紧张时,直接将允许对应的内存需要使用所述共享缓存的私有缓存的数据写入所述对应的内存。
参看图4,本发明公开一种内存访问硬件,包括:
第一获取单元40,用于获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及
第一写入单元41,用于在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存。
本实施例中,第一标志位可以包括1个比特位,也可以包括至少2个比特位。
本发明实施例提供的内存访问硬件,借助于第一获取单元40获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,并借助于第一写入单元41在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存,而由于对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示不允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存,这就使得本方案在需要将对基于共享缓存的侧信道攻击敏感的私有缓存的数据写入内存时,会跳过共享缓存直接写入内存,因而能防止基于共享缓存的侧信道攻击,而且本方案并未减少每个代码可以使用的缓存数目,因而能在防止基于共享缓存的侧信道攻击的同时兼顾对于内存访问敏感的程序的性能。
图5为本发明内存访问硬件另一实施例的流程示意图,参看图5,在前述硬件实施例的基础上,所述硬件还可以包括:
第二获取单元50,用于在所述第一获取单元工作之前,从内存中获取所述私有缓存的数据,并获取所述私有缓存的数据对应的页表的页表项的第二标志位的值,其中,所述第二标志位用于指示是否允许相应的页表项对应的内存页使用所述共享缓存;
第二写入单元51,用于在所述第二标志位的值指示不允许相应的页表项对应的内存页使用所述共享缓存时,将所述私有缓存的数据写入所述私有缓存,并根据所述第二标志位的值设置所述第一标志位的值。
本实施例中,需要说明的是,所述第二获取单元50可以通过操作系统或安全代码装载工具获取所述私有缓存的数据对应的页表的页表项的第二标志位的值,所述第二写入单元51可以通过操作系统或安全代码装载工具根据所述第二标志位的值设置所述第一标志位的值。第一标志位的值根据第二标志位的值确定,其与第二标志位的值保持一致。通过软硬结合来确定是否允许私有缓存的数据使用共享缓存,对安全要求比较高的程序提供了一种可行的防止缓存侧信道攻击同时对性能不会有太大的影响的方案。
在前述硬件实施例的基础上,所述硬件还可以包括:
设置单元,用于在所述第二获取单元工作之前,通过所述私有缓存的数据所属的程序设置所述第二标志位的值。
在前述硬件实施例的基础上,所述设置单元,具体可以用于:
通过所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值;
通过所述程序根据所述程序的内存分配函数设置所述内存分配函数分配的内存对应的第二标志位的值为第一值或第二值,其中,所述第一值为指示不允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值,所述第二值为指示允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值。
本实施例中,需要说明的是,由于通常对于局部变量和代码几乎都是顺序访问的,共享缓存对它们的作用相对比较小,所以默认对于安全需求较高的程序的局部变量和代码不允许使用共享缓存,即可以通过所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值,当然也可以根据需要通过所述程序设置所述程序的特定局部变量或特定代码对应的第二标志位的值为第二值。而对于内存分配函数(比如C中malloc函数),可以要求所述内存分配函数提供一个额外的标志位(该额外的标志位可以以参数的形式提供)指定是否允许所述内存分配函数分配的内存需要是否使用共享缓存,当该额外的标志位指定允许所述内存分配函数分配的内存需要使用共享缓存时,所述程序设置所述内存分配函数分配的内存对应的第二标志位的值为第二值,否则,所述程序设置所述内存分配函数分配的内存对应的第二标志位的值为第一值。
在前述硬件实施例的基础上,所述第二标志位可以包括页属性表支持位和/或页级高速缓存禁止位和/或页级通写位。
本实施例中,需要说明的是,除了可以使用页属性表支持位PAT、页级高速缓存禁止位PCD和页级通写位PWT中的至少一个比特位作为第二标志位,也可以新增至少一个比特位作为第二标志位。当使用页属性表支持位PAT、页级高速缓存禁止位PCD和页级通写位PWT作为第二标志位时,可以设置第一值为111,即这三个比特位均取值为1时,不允许对应的内存页使用共享缓存;可以设置第二值为011、101、110、001、010、100、000中的任意一个,即这三个比特位取值不全为1时,允许对应的内存页使用共享缓存。
在前述硬件实施例的基础上,所述硬件还可以包括:
第三写入单元,用于在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存。
本实施例中,需要说明的是,在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,也可以设计所述硬件判断所述共享缓存是否使用紧张,当所述共享缓存使用不紧张时,才将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存;而当所述共享缓存使用紧张时,直接将允许对应的内存需要使用所述共享缓存的私有缓存的数据写入所述对应的内存。
上文已经参考附图描述了本公开的优选实施例,当然,本公开并不限于上面的示例。在所附的权利要求的范围内,本领域的技术人员可以进行各种改变和修改,并且应当明白,这些改变和修改自然落入本公开的技术范围内。

Claims (12)

1.一种内存访问方法,其特征在于,包括:
硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓存;以及
所述硬件在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存,
其中,所述第一标志位的值根据所述私有缓存的数据对应的页表的页表项的第二标志位的值进行设置,且与所述第二标志位的值保持一致,所述第二标志位用于指示是否允许相应的页表项对应的内存页使用所述共享缓存。
2.根据权利要求1所述的方法,其特征在于,在所述硬件获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值之前,还包括:
所述硬件从内存中获取所述私有缓存的数据,并获取所述私有缓存的数据对应的页表的页表项的第二标志位的值;
所述硬件在所述第二标志位的值指示不允许相应的页表项对应的内存页使用所述共享缓存时,将所述私有缓存的数据写入所述私有缓存,并根据所述第二标志位的值设置所述第一标志位的值。
3.根据权利要求2所述的方法,其特征在于,在所述获取所述私有缓存的数据对应的页表的页表项的第二标志位的值之前,还包括:
所述私有缓存的数据所属的程序设置所述第二标志位的值。
4.根据权利要求3所述的方法,其特征在于,所述私有缓存的数据所属的程序设置所述第二标志位的值,包括:
所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值;
所述程序根据所述程序的内存分配函数设置所述内存分配函数分配的内存对应的第二标志位的值为第一值或第二值,其中,所述第一值为指示不允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值,所述第二值为指示允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值。
5.根据权利要求2所述的方法,其特征在于,所述第二标志位包括页属性表支持位和/或页级高速缓存禁止位和/或页级通写位。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述硬件在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存。
7.一种内存访问硬件,其特征在于,包括:
第一获取单元,用于获取待处理的私有缓存的数据以及所述私有缓存的缓存行的第一标志位的值,其中,对基于共享缓存的侧信道攻击敏感的私有缓存的数据对应的第一标志位的值指示是否允许所述对基于共享缓存的侧信道攻击敏感的私有缓存对应的内存使用所述共享缓;以及
第一写入单元,用于在所述第一标志位的值指示不允许相应的私有缓存对应的内存使用所述共享缓存时,将不允许对应的内存使用所述共享缓存的私有缓存的数据直接写入所述对应的内存,
其中,所述第一标志位的值根据所述私有缓存的数据对应的页表的页表项的第二标志位的值进行设置,且与所述第二标志位的值保持一致,所述第二标志位用于指示是否允许相应的页表项对应的内存页使用所述共享缓存。
8.根据权利要求7所述的硬件,其特征在于,还包括:
第二获取单元,用于在所述第一获取单元工作之前,从内存中获取所述私有缓存的数据,并获取所述私有缓存的数据对应的页表的页表项的第二标志位的值;
第二写入单元,用于在所述第二标志位的值指示不允许相应的页表项对应的内存页使用所述共享缓存时,将所述私有缓存的数据写入所述私有缓存,并根据所述第二标志位的值设置所述第一标志位的值。
9.根据权利要求8所述的硬件,其特征在于,还包括:
设置单元,用于在所述第二获取单元工作之前,通过所述私有缓存的数据所属的程序设置所述第二标志位的值。
10.根据权利要求9所述的硬件,其特征在于,所述设置单元,具体用于:
通过所述程序设置所述程序的局部变量和代码对应的第二标志位的值为第一值;
通过所述程序根据所述程序的内存分配函数设置所述内存分配函数分配的内存对应的第二标志位的值为第一值或第二值,其中,所述第一值为指示不允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值,所述第二值为指示允许相应的页表项对应的内存页使用所述共享缓存的所述第二标志位的取值。
11.根据权利要求8所述的硬件,其特征在于,所述第二标志位包括页属性表支持位和/或页级高速缓存禁止位和/或页级通写位。
12.根据权利要求7所述的硬件,其特征在于,还包括:
第三写入单元,用于在所述第一标志位的值指示允许相应的私有缓存对应的内存使用所述共享缓存时,将允许对应的内存需要使用所述共享缓存的私有缓存的数据先写入所述共享缓存,再从所述共享缓存写入所述对应的内存。
CN201910477103.XA 2019-06-03 2019-06-03 内存访问方法与硬件 Active CN110196819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910477103.XA CN110196819B (zh) 2019-06-03 2019-06-03 内存访问方法与硬件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910477103.XA CN110196819B (zh) 2019-06-03 2019-06-03 内存访问方法与硬件

Publications (2)

Publication Number Publication Date
CN110196819A CN110196819A (zh) 2019-09-03
CN110196819B true CN110196819B (zh) 2021-08-24

Family

ID=67753756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910477103.XA Active CN110196819B (zh) 2019-06-03 2019-06-03 内存访问方法与硬件

Country Status (1)

Country Link
CN (1) CN110196819B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023241655A1 (zh) * 2022-06-15 2023-12-21 华为技术有限公司 数据处理方法、装置、电子设备以及计算机可读存储介质
CN117375792B (zh) * 2023-02-24 2024-07-19 华为技术有限公司 侧信道检测的方法和装置
CN118051906B (zh) * 2024-04-16 2024-08-06 南湖实验室 一种基于数据标记的抗侧信道安全计算方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208907A1 (en) * 2006-12-05 2011-08-25 Shlomo Raikin Protected Cache Architecture And Secure Programming Paradigm To Protect Applications
CN105005737A (zh) * 2015-07-31 2015-10-28 天津大学 一种面向分支预测攻击的微体系结构级安全防护方法
CN107169346A (zh) * 2017-04-28 2017-09-15 中国人民解放军信息工程大学 基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置
CN109522754A (zh) * 2018-11-28 2019-03-26 中国科学院信息工程研究所 一种移动终端可信隔离环境核心控制方法
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2831795B1 (en) * 2012-03-30 2019-01-09 Irdeto B.V. Securing accessible systems using variable dependent coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208907A1 (en) * 2006-12-05 2011-08-25 Shlomo Raikin Protected Cache Architecture And Secure Programming Paradigm To Protect Applications
CN105005737A (zh) * 2015-07-31 2015-10-28 天津大学 一种面向分支预测攻击的微体系结构级安全防护方法
CN107169346A (zh) * 2017-04-28 2017-09-15 中国人民解放军信息工程大学 基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN109522754A (zh) * 2018-11-28 2019-03-26 中国科学院信息工程研究所 一种移动终端可信隔离环境核心控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《STEALTHMEM:system-level protection against cache-based side channel attacks in the cloud》;Kim T等;《Proceedings of the 21th USENIX》;20121231;全文 *

Also Published As

Publication number Publication date
CN110196819A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
US9785571B2 (en) Methods and systems for memory de-duplication
CN107250991B (zh) 透明硬件辅助存储器解压缩
US7870336B2 (en) Operating system protection against side-channel attacks on secrecy
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
CN110196819B (zh) 内存访问方法与硬件
US10169244B2 (en) Controlling access to pages in a memory in a computing device
US9164923B2 (en) Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
US7930484B2 (en) System for restricted cache access during data transfers and method thereof
US20170301386A1 (en) Sanitize-aware dram controller
JP7340326B2 (ja) メンテナンス動作の実行
CN107810491B (zh) 用于管理并控制存储器高速缓存的方法和系统
US8108617B2 (en) Method to bypass cache levels in a cache coherent system
US20150205724A1 (en) System and method of cache partitioning for processors with limited cached memory pools
GB2509755A (en) Partitioning a shared cache using masks associated with threads to avoiding thrashing
TWI641947B (zh) 用於管理位址轉換和快取記憶體儲存的方法及裝置
JP2008041088A (ja) 大容量仮想メモリ・ページにおける保護帯域
US11307784B2 (en) Method and apparatus for storing memory attributes
US20090282198A1 (en) Systems and methods for optimizing buffer sharing between cache-incoherent cores
TWI648625B (zh) 管理位址獨立的頁面屬性
TW201633145A (zh) 管理用於記憶體頁面的重用資訊
US20170357596A1 (en) Dynamically adjustable inclusion bias for inclusive caches
US10642749B2 (en) Electronic device and method for managing memory thereof
KR20120088370A (ko) 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US20190155748A1 (en) Memory address translation
US7761662B2 (en) Cache memory device and microprocessor

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant