CN110968349A - 一种抵御投机执行侧信道攻击的处理器缓存技术方案 - Google Patents

一种抵御投机执行侧信道攻击的处理器缓存技术方案 Download PDF

Info

Publication number
CN110968349A
CN110968349A CN201911243921.XA CN201911243921A CN110968349A CN 110968349 A CN110968349 A CN 110968349A CN 201911243921 A CN201911243921 A CN 201911243921A CN 110968349 A CN110968349 A CN 110968349A
Authority
CN
China
Prior art keywords
cache
data
special
processor
speculative execution
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.)
Granted
Application number
CN201911243921.XA
Other languages
English (en)
Other versions
CN110968349B (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 CN201911243921.XA priority Critical patent/CN110968349B/zh
Publication of CN110968349A publication Critical patent/CN110968349A/zh
Application granted granted Critical
Publication of CN110968349B publication Critical patent/CN110968349B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

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

Abstract

本公开一种抵御投机执行侧信道攻击的处理器缓存方法。所述缓存具有专用缓存和普通缓存,其中,所述专用缓存用于存储投机执行的数据,当指令进入提交阶段时,处理器微架构根据投机执行的结果,若投机执行成功,则将所述专用缓存中的对应数据同步至所述普通缓存;若投机执行失败,则清除所述专用缓存中的对应数据。

Description

一种抵御投机执行侧信道攻击的处理器缓存技术方案
技术领域
本发明涉及缓存的设计方法,尤其是涉及与投机执行相关的抵御投机执行侧信道攻击的处理器缓存设计。
背景技术
在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。
CPU执行指令,最大的速度瓶颈不在计算,而在于内存访问。为了降低内存访问需要的时间,CPU通过缓存进行数据读取,也就是说,就是把曾经读过的内存,备份一份在速度更快的缓存里。当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在,则不经访问内存直接返回该数据;如果不存在,则要先把内存中的相应数据载入缓存,再将其返回处理器。
现代CPU的缓存设计通常没有考虑安全隔离,而是不同权限的操作一起共用。之前Google Project Zero爆出的幽灵漏洞,一个核心点就是利用了缓存共用来泄露信息,实施攻击。
发明内容
根据以上说明可知,投机执行使用的缓存与正常执行使用的缓存如果不做区分,那么投机执行的结果就可以影响其他正常使用的缓存。通过对其他缓存的状态探测,就可以恢复回投机执行使用的数据。从而通过训练错误的投机执行,达到泄露数据的目的。
本公开鉴于上述问题而完成的,提供一种与投机执行相关的抵御投机执行侧信道攻击的处理器缓存设计方法以及处理器。
本公开涉及的抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,所述缓存具有专用缓存和普通缓存,其中,所述专用缓存用于存储投机执行的数据,当指令进入提交阶段时,处理器微架构根据投机执行的结果,若投机执行成功,则将所述专用缓存中的对应数据同步至所述普通缓存;若投机执行失败,则清除所述专用缓存中的对应数据。
本公开的所述抵御投机执行侧信道攻击的处理器缓存方法,也可以是,所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。
也可以是,在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;在判断为对微指令投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
也可以是,所述缓存可以是多层级的缓存,对于每一层级的缓存,都分为专用缓存与普通缓存。
也可以是,在提交阶段,所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机执行成功则返回该数据,则将该数据同步到对应的普通缓存中,并返回该数据。
也可以是,所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照n-k:k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
本公开涉及的一种处理器,其中,所述处理器具有专用缓存和普通缓存,其中,所述专用缓存用于存储投机执行的数据。
本公开涉及的所述的处理器,也可以是,所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。
也可以是,在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;对于该多个微指令中的数据存取指令,在判断其为投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
也可以是,所述缓存可以是多层级的缓存,对于每一层级的缓存,都分为专用缓存与普通缓存。
也可以是,在所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机则返回该数据,则同步到对应的普通缓存中,并返回该数据。
也可以是,所述处理器中的所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照(n-k):k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
[发明效果]
本公开将投机执行的缓存与正常使用的缓存做隔离,减少因投机执行导致的缓存状态泄露,使得其他部分的缓存不受投机执行的影响,从而在根本上阻止了由其他缓存恢复数据造成的信息泄露,可以有效的提高系统的安全性。
本公开提出了一种改进的缓存设计,将投机执行的缓存与非投机执行缓存做分离。从而保障了错误的投机执行结果不会被泄露,有效地阻止了此类攻击,提高了安全性。
本公开提高处理器的安全性,有助于增强产品的市场竞争力。
附图说明
图1是示出现有技术中的数据加载的流程图。
图2是示出本公开实施例涉及的缓存示意图。
图3是示出本公开涉及的数据加载的流程图。
图4是示出本公开涉及的数据提交阶段的处理流程图。
图5是示出现有技术中数据并行执行的示意图。
图6是示出数据加载单元与具有专用缓存与普通缓存的L1D缓存示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开;本公开的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本公开的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本公开方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
在计算机CPU进行数据处理时,一般采用流水线操作,涉及:指令取出(IF)、指令解码(ID)、执行(EX)、内存读/写(MEM)、结果回写(WB)等操作。在流水线顺序执行以上指令时,需要等前一条指令执行完毕之后,才能够执行下一条指令,因此速度较慢。
因此为了提升运算速度,如本公开的图5所示,示出了数据并行处理的示意图。即,使用多循环的方法来减少计算在一个单一的周期内执行,计算每个周期段允许更快的时钟周期;重叠的指令允许将所有组件的处理器操作在一个不同的周期并行执行。即,如图5所示,考虑将多条指令并行执行,在一些特殊情况下,例如存在选择语句的情况下,计算机通过之前执行的概率,判断哪个执行概率大,来提前选择执行,这种情况被称为“投机执行”。投机执行可以提高计算速度,但基于投机执行的自身问题,一旦投机执行的错误结果泄露,存在可能被黑客利用,进行侧信道攻击,获取数据的情况。之前出现过多次出现过多次利用上述类似原理,对系统进行数据窃取的病毒。其实质也都是利用投机执行,来进行侧信道攻击。
而在现有技术中,CPU的缓存设计通常没有考虑安全隔离,而是不同权限的操作一起共用。投机执行使用的缓存与正常执行使用的缓存如果不做区分,那么投机执行的结果就可以影响其他正常使用的缓存。通过对其他缓存的状态探测,就可以恢复回投机执行使用的数据。从而通过训练错误的投机执行,达到泄露数据的目的。
图1示出了现有技术中数据加载的流程图。指令进入处理器流水线后,处理器微架构可能将其拆分为多个微指令。若这些指令包含数据存、取,则可能会进行投机执行并影响缓存状态。对于每条存取指令,需要产生一个可以唯一标记当前指令的标签,一种可能的实现方式是指令位于物理内存中的地址。由该指令产生的数据存、取请求导致数据从存储器加载至缓存。现有技术中数据存取方式,容易被第三方利用进行侧信道攻击。
为了加强数据安全,避免数据被侧信道攻击,本公开的所述缓存具有专用缓存和普通缓存,是在现有的指令投机执行与缓存机制的基础上,通过分割或者增加隔离的缓存行作为投机执行专用缓存,其中,所述专用缓存用于存储投机执行的数据。
所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。例如,图6是示出数据加载单元正常与具有专用缓存与普通缓存的L1D缓存(第一级缓存)示意图。其中,L1缓存通常分为L1I(指令缓存)和L1D(数据缓存),本方案中不需要区分,所以统称为L1缓存。如图6所示,专用缓存与普通缓存在在物理上并不进行专门区分,而仅通过过标签进行逻辑识别。图6中1a是专用缓存,图6中的1b是普通缓存。在图6中可以看出,专用缓存与普通缓存在物理上并没有特别的区分,仅从逻辑标签上进行区别。这样,在对专用缓存的划分上更加灵活。
图2是示出本公开实施例涉及的缓存示意图。在本申请中,如图2所示,指令标记Ti和数据标记Td在这里不做区分,统称为缓存。如图2所示,在一般缓存的基础上,划分出专用缓存与普通缓存。该划分也是根据缓存的逻辑标签进行划分,并不是在物理上进行改变。
本方案设计了一种具有专用缓存与普通缓存的使用方法:专用缓存在正常缓存的基础上增加一个标签,用来追踪被投机执行的指令带来的影响。
在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;在判断为对微指令投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
缓存可以是多层级的,对于每一层级的缓存,都分为专用缓存与正常缓存,查找匹配数据的过程遵从以下过程:
数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若在专用缓存中找到匹配数据则返回该数据,否则从下级缓存中加载匹配数据。参考图3的数据加载流程图。
图4是数据提交阶段的处理流程图。
当指令进入提交阶段时,处理器微架构系统根据投机执行的结果,若投机执行成功,则将所述专用缓存中的对应数据同步至所述普通缓存;若投机执行失败,则清除所述专用缓存中的对应数据。
即,当指令进入提交阶段时,根据执行结果分为两种情况:投机失败、投机成功。若投机失败,根据该指令的标签将投机缓存中的对应数据清除;若投机成功,则将投机缓存中的对应数据同步至正常内存。
在提交阶段,所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机执行成功则返回该数据,则将该数据同步到对应的普通缓存中,并返回该数据。
具体地说,投机专用缓存的提交可以采用以下方案:
1、投机执行分支是错误分支,标记L1D/L2/L3中全部投机专用缓存中的数据无效;
2、投机执行分支是正确分支,将L1D/L2/L3中专用缓存的数据更新到对应缓存组中的通用缓存;
a)选择对应缓存组通用行中的一个空闲行,当没有空闲行时,使用现有的淘汰算法,淘汰一个通用行;
b)将专用行中的数据拷贝到前一步选择的通用行中;
c)或者是将之前选择的通用行标记为空白的投机专用行,将包含数据的投机行标记为通用行。
关于上述淘汰算法,例如可以采用以下的方法:
a)在数据加载过程中,如果L1D的专用行已满,硬件可以使用现有的淘汰算法,选择一个专用行交换到L2或L3的投机专用行或者直接将数据丢弃;
b)L2、L3的投机专用行淘汰方法与L1D类似。
另外,所述缓存的分配方案:所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照n-k:k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
在多路缓存设计中,具体地说,例如n=8,则对于每一组缓存行,可以按照1:7、2:6、3:5或4:4的比例划分为专用缓存、普通缓存。
另外,投机执行专用缓存多级之间更新方案可以采用如下方案:
1、数据加载
a)投机读可以访问全部的L1D缓存,也可以只能访问L1D的投机专用行;
b)当L1D缓存发生读未命中时,硬件依次在L2/L3的相应位置查找,查找包括通用行和投机专用行;
c)如果L2/L3中都找不到,硬件从主内存中加载数据到L1D的专用行或者L2、L3的专用行。
另外,本公开还涉及一种处理器,是采用上述缓存读取方法的处理器。该处理器具有专用缓存和普通缓存,其中,所述专用缓存用于存储投机执行的数据。
在所述处理器中,所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。
在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;对于该多个微指令中的数据存取指令,在判断其为投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
在所述处理器中,所述缓存可以是多层级的缓存,对于每一层级的缓存,都分为专用缓存与普通缓存。
在数据提交阶段,在所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机则返回该数据,则同步到对应的普通缓存中,并返回该数据。
所述处理器中的所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照(n-k):k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (12)

1.一种抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
所述缓存具有专用缓存和普通缓存,
其中,所述专用缓存用于存储投机执行的数据,
当指令进入提交阶段时,处理器微架构根据投机执行的结果,若投机执行成功,则将所述专用缓存中的对应数据同步至所述普通缓存;若投机执行失败,则清除所述专用缓存中的对应数据。
2.如权利要求1所述抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。
3.如权利要求2所述抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;在判断为对微指令投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
4.如权利要求3所述抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
所述缓存可以是多层级的缓存,对于每一层级的缓存,都分为专用缓存与普通缓存。
5.如权利要求4所述抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
在提交阶段,所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机执行成功则返回该数据,则将该数据同步到对应的普通缓存中,并返回该数据。
6.如权利要求5所述抵御投机执行侧信道攻击的处理器缓存方法,其特征在于,
所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照n-k:k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
7.一种处理器,其特征在于,
所述处理器具有专用缓存和普通缓存,
其中,所述专用缓存用于存储投机执行的数据。
8.如权利要求7所述的处理器,其特征在于,
所述专用缓存是在普通缓存的基础上通过分割或者增加隔离的缓存行作为用于投机执行的专用缓存;所述专用缓存通过在普通缓存的基础上增加一个标签,用以标识专用缓存。
9.如权利要求8所述的处理器,其特征在于,
在指令进入处理器流水线后,处理器微架构将其拆分为多个微指令;对于该多个微指令中的数据存取指令,在判断其为投机执行时,将该微指令添加与专用缓存对应的标签,存储在专用缓存的相应位置。
10.如权利要求9所述的处理器,其特征在于,
所述缓存可以是多层级的缓存,对于每一层级的缓存,都分为专用缓存与普通缓存。
11.如权利要求10所述的处理器,其特征在于,
在所述多层级的缓存中获取匹配数据的过程遵从以下过程:数据加载请求首先在正常缓存中查找,若找到匹配数据则返回该数据,否则在专用缓存中查找;若未发现匹配数据,则从下级缓存中查找匹配数据,若在专用缓存中找到匹配数据,则判断该数据是否为投机执行成功后的数据,若判断为投机则返回该数据,则同步到对应的普通缓存中,并返回该数据。
12.如权利要求11所述的处理器,其特征在于,
所述处理器中的所述缓存通常以n路缓存行为一组,m组构成一层级缓存的形式组织,对于每一组缓存行,可以按照(n-k):k的比例划分为专用缓存、普通缓存,其中n、m为2以上的自然数,k为1以上并小于n的自然数。
CN201911243921.XA 2019-12-06 2019-12-06 一种抵御投机执行侧信道攻击的处理器缓存技术方案 Active CN110968349B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911243921.XA CN110968349B (zh) 2019-12-06 2019-12-06 一种抵御投机执行侧信道攻击的处理器缓存技术方案

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911243921.XA CN110968349B (zh) 2019-12-06 2019-12-06 一种抵御投机执行侧信道攻击的处理器缓存技术方案

Publications (2)

Publication Number Publication Date
CN110968349A true CN110968349A (zh) 2020-04-07
CN110968349B CN110968349B (zh) 2023-07-28

Family

ID=70033257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243921.XA Active CN110968349B (zh) 2019-12-06 2019-12-06 一种抵御投机执行侧信道攻击的处理器缓存技术方案

Country Status (1)

Country Link
CN (1) CN110968349B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256600A (zh) * 2020-10-22 2021-01-22 海光信息技术股份有限公司 数据读取方法及相关装置
CN113127880A (zh) * 2021-03-25 2021-07-16 华东师范大学 一种一级数据缓存中推测执行侧信道漏洞检测方法
CN113779649A (zh) * 2021-09-08 2021-12-10 中国科学院上海高等研究院 一种针对投机执行攻击的防御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457106B1 (en) * 1997-07-22 2002-09-24 Nec Corporation Shared memory control system and shared memory control method
JP2008015562A (ja) * 2006-06-30 2008-01-24 Kenichiro Ishikawa キャッシュミス/ヒット予想
US20140143502A1 (en) * 2012-11-19 2014-05-22 Advanced Micro Devices, Inc. Predicting Outcomes for Memory Requests in a Cache Memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457106B1 (en) * 1997-07-22 2002-09-24 Nec Corporation Shared memory control system and shared memory control method
JP2008015562A (ja) * 2006-06-30 2008-01-24 Kenichiro Ishikawa キャッシュミス/ヒット予想
US20140143502A1 (en) * 2012-11-19 2014-05-22 Advanced Micro Devices, Inc. Predicting Outcomes for Memory Requests in a Cache Memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENGJIA YAN ETC.: ""InvisiSpec: Making Speculative Execution Invisible in the Cache Hierarchy"" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256600A (zh) * 2020-10-22 2021-01-22 海光信息技术股份有限公司 数据读取方法及相关装置
CN113127880A (zh) * 2021-03-25 2021-07-16 华东师范大学 一种一级数据缓存中推测执行侧信道漏洞检测方法
CN113779649A (zh) * 2021-09-08 2021-12-10 中国科学院上海高等研究院 一种针对投机执行攻击的防御方法

Also Published As

Publication number Publication date
CN110968349B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US11467839B2 (en) Unified register file for supporting speculative architectural states
US9921842B2 (en) Guest instruction block with near branching and far branching sequence construction to native instruction block
EP0084114B1 (en) Instruction prefetching data processing apparatus including a conditional branch instruction predictor
US10185567B2 (en) Multilevel conversion table cache for translating guest instructions to native instructions
US5377336A (en) Improved method to prefetch load instruction data
US9710387B2 (en) Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
US9639364B2 (en) Guest to native block address mappings and management of native code storage
CN110968349B (zh) 一种抵御投机执行侧信道攻击的处理器缓存技术方案
US11733972B2 (en) Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address
US9697131B2 (en) Variable caching structure for managing physical storage
US8601240B2 (en) Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution
US11734426B2 (en) Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location
US11853424B2 (en) Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location
US20220067156A1 (en) Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception
CN103019652B (zh) 滑动窗口、基于区块的分支目标地址高速缓冲存储器
US10073789B2 (en) Method for load instruction speculation past older store instructions
US10599437B2 (en) Managing obscured branch prediction information
JP7443641B2 (ja) 命令の機密としての動的な指定
US10394559B2 (en) Branch predictor search qualification using stream length prediction
US7711904B2 (en) System, method and computer program product for executing a cache replacement algorithm
US11099849B2 (en) Method for reducing fetch cycles for return-type instructions
US20230244778A1 (en) Physically-tagged data cache memory that uses translation context to reduce likelihood that entries allocated during execution under one translation context are accessible during execution under another translation context
US20140095838A1 (en) Physical Reference List for Tracking Physical Register Sharing
KR100276138B1 (ko) 브랜치 패턴 필드를 가진 브랜치 이력 테이블을 구비한 디지탈프로세서
US11625479B2 (en) Virtually-tagged data cache memory that uses translation context to make entries allocated during execution under one translation context inaccessible during execution under another translation context

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

Address after: 300450 Tianjin Binhai New Area Tianjin 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 Tianjin Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant