CN111274198A - 一种微架构 - Google Patents

一种微架构 Download PDF

Info

Publication number
CN111274198A
CN111274198A CN202010054119.2A CN202010054119A CN111274198A CN 111274198 A CN111274198 A CN 111274198A CN 202010054119 A CN202010054119 A CN 202010054119A CN 111274198 A CN111274198 A CN 111274198A
Authority
CN
China
Prior art keywords
cache
speculative
transient
unit
request
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
CN202010054119.2A
Other languages
English (en)
Other versions
CN111274198B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202010054119.2A priority Critical patent/CN111274198B/zh
Publication of CN111274198A publication Critical patent/CN111274198A/zh
Application granted granted Critical
Publication of CN111274198B publication Critical patent/CN111274198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

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

Abstract

本发明涉及一种微架构,包括:处理器,以投机执行方式执行访存指令;与该处理器对应设置的高速缓存,采用组相联模式,包括多个组,每个组包含多个缓存行,以及与该缓存行一一对应的标记项,该标记项包括第一标记项和第二标记项,该第一标记项用于保存该缓存行的缓存内容的原有的属性参数,该属性参数包括该缓存行的地址标记、脏数据标记和有效性标记;该第二标记项用于保存该缓存内容的瞬时/持续状态标记。

Description

一种微架构
技术领域
本发明涉及计算机体系结构和信息安全领域,特别涉及一种可以主动切断处理器瞬态漏洞侧信道攻击的微架构。
背景技术
投机执行是现代处理器普遍使用的,用于提升程序性能的有效机制。所谓投机执行(Speculative Execution),就是处理器根据现有信息,提前执行一些未来可能会执行的指令。如果这种提前是错误的,处理器会抛弃投机执行产生的计算结果,并回退执行期间造成的副作用。
然而,随着2018年“熔断”(Meltdown)和“幽灵”(Spectre)漏洞的披露,投机执行实现机制中隐藏的巨大安全隐患逐渐受到各领域开发者的广泛关注。Meltdown由GoogleProject Zero团队发现。它利用了处理器乱序执行时对访存权限检查延迟,以及对高速缓存(cache)中异常现场恢复不彻底的缺陷,绕过存储管理部件提供的数据隔离机制,偷取内核数据。Spectre由瑞士格拉茨工业大学Moritz Lipp等学者发现。攻击者可以通过操控处理器分支预测器,使被攻击程序投机执行访存越界的指令,同时利用处理器在分支预测错误后现场恢复不彻底的缺陷,绕过各种边界检查,偷取进程空间内各种私密数据。
从漏洞的基本原理上看,Meltdown和Spectre都是处理器在投机执行失败时,对各种微架构(Microarchitecture,处理器用于实现其功能的底层结构)部件恢复不彻底造成的。而问题的根源源于处理器设计者普遍认为:微架构是程序不可见的。然而随着“侧信道”(Side Channel)攻击方法的流行,各种微架构信息逐渐都可被攻击者探测、逆向,所以投机失败造成的信息泄漏逐渐变得严重。这种利用处理器投机执行漏洞,并结合各种侧信道探测方法发动的攻击,可被称为瞬态攻击(TransientAttack)。
Meltdown和Spectre爆出后,处理器厂商和内核开发者都迅速发布了缓解措施。Intel发布微码补丁,直接关闭了各种投机优化策略;Linux Kernel社区在4.15版本上添加了内核页表隔离机制(KPTI)。然而从性能和安全性的角度来说,这些补丁都达不到开发者的实际预期。针对这一现状,学术界提出了一系列更加有效的防御机制。以下是两类代表性技术的简要介绍和评价。
俄亥俄州立大学Yinqian Zhang团队首先提出了“延迟投机前递”技术。该技术通过修改处理器指令重排序队列(ReOrderBuffer,后文简称ROB)及读写指令队列(Load/Store Queue,后文简称LSQ)部件,判断访存读(load)指令之前是否有未解出的分支,或是其它可造成异常的指令,以决定当前是否将load指令取到的结果前递给后续的指令,从而避免Meltdown和Spectre中投机执行结果被攻击者后续的指令利用。类似的方法还有堪萨斯大学Jacob Fustos提出的SpectreGuard,以及瑞典乌普萨拉大学Christos Sakalis等人提出的基于值预测的延迟提交方法。投机延迟机制对各种投机类型的侧信道攻击都有较好的防御效果。另外,相比于Intel给出的直接关闭投机的方案,其性能损失更小。然而,由于对load前递点的判断能力有限,要保证有效的安全,load指令还是会受到过于保守的推迟,从而对整个程序性能造成巨大影响,所以这种方法目前还是难以被开发者接受。
伊利诺伊大学香槟分校MengjiaYan团队提出了“投机隔离(不可见)”技术。该技术的核心思想是在处理器核内设置一个投机缓冲区(Speculative Buffer,后文简称SB),用于保存该核心执行的投机load指令取到的缓存行(cache line),执行投机load指令时,不会对正常高速缓存产生任何影响。当投机失败时,SB内的缓存行会随着load指令一起被消除。当投机load指令成功时,就再次从内存中load相应的缓存行,并和SB中的缓存行进行比较,如果相同,证明SB中的缓存行并没有违反高速缓存的一致性协议,后续指令都可以生效,否则消除后续所有指令。相比于投机延迟,投机隔离对处理器的修改更少,电路更为简单,且开销更小。但是由于要保证多核高速缓存的一致性,投机成功时还是需要付出较大的代价用于一致性检查,所以该方法依然没有被普遍接受。
发明内容
本发明提出一种微架构,包括:处理器,以投机执行方式执行程序指令;与该处理器对应设置的高速缓存,采用组相联模式,包括多个组,每个组包含多个缓存行,以及与该缓存行一一对应的标记项,该标记项包括第一标记项和第二标记项,该第一标记项用于保存该缓存行的缓存内容的原有的属性参数,该属性参数包括该缓存行的地址标记、脏数据标记和有效性标记;该第二标记项用于保存该缓存内容的瞬时/持续状态标记。
本发明所述的微架构,其中当缓存行的缓存数据为处理器以投机指令装载的数据,且该投机指令处于未提交状态时,以该缓存数据为瞬时性数据,以保存瞬时性数据的缓存行为瞬时单元;当缓存行的内容为处理器以非投机指令或已提交投机指令装载的数据时,以该缓存数据为持续性数据,以保存持续性数据的缓存行为持续单元。
本发明所述的微架构,其中该高速缓存还包括:瞬时/持续单元数量上限记录模块,用于分别记录该高速缓存每组中瞬时单元的数量上限Ntransient和持续单元的数量上限Npersistent,其中Npersistent+Ntransient=Nassociativity,Nassociativity为该高速缓存每组中缓存行数量。缓存行替换控制模块,用于选择该高速缓存的某组中瞬时单元或持续单元的缓存行进行替换;当该高速缓存某组中的瞬时单元数量达到Ntransient,且新增瞬时单元时,根据伪LRU策略,选取该组中某一瞬时单元进行替换;当该高速缓存某组中的持续单元数量到达Npersistent且新增持续单元时,根据伪LRU策略,选取该组中某一持续单元进行替换。处理器投机访存指令提交处理模块,用于在投机访存指令提交后,若投机失败,向该高速缓存发送投机失败处理请求,若投机成功,则向该高速缓存发送投机成功处理请求。高速缓存控制模块,包括:访存请求控制模块,用于接收并处理初级访存请求;其中,若该初级访存请求命中,则返回请求数据;反之,则向下级存储结构发出次级访存请求,获取该初级请求要访问的数据,当该下级存储结构返回该请求数据后,判断该初级访存请求的读/写类型;若该初级访存请求为读请求,则将该请求数据装入对应高速缓存组的任一无效的瞬时单元,若没有无效的瞬时单元,则调用该缓存行替换控制模块,依据替换策略选取该高速缓存组内某一瞬时单元进行替换,若该初级访存请求为写请求,则将该请求数据装入对应高速缓存组的任一无效的持续单元,若没有无效的持续单元,则调用该高速缓存行替换控制模块,依据替换策略选取该高速缓存组内某一持续单元进行替换。高速缓存冲突性缺失计数模块,用于记录该高速缓存中瞬时单元和持续单元发生冲突性缺失的次数。瞬时单元/持续单元动态调整模块,用于根据该高速缓存中瞬时单元和持续单元发生冲突性缺失的次数,并根据预设的阈值,调整Ntransient和Npersistent
其中,该高速缓存控制模块还包括:投机成功请求控制模块,用于接收并处理投机成功处理请求;当该投机成功处理请求中包含的投机指令访问的缓存行为瞬时单元,则将该投机访存指令访问的缓存行标记为持续单元;若当前高速缓存组的持续单元数量达到Npersistent,则触发该缓存行替换控制模块,选取该高速缓存组内某一持续单元进行换出,并将其标记成瞬时单元。投机失败请求控制模块,用于接收并处理投机成功处理请求;当该投机处理请求中包含的投机指令访问的缓存行为瞬时单元,则将该投机访存指令访问的缓存行标记为无效的瞬时单元。
本发明的微架构相比于采用现有各种防御机制技术的微架构,具有性能高,芯片面积与功耗开销低,对处理器原有架构影响小,安全性高,且易于推广等特点。
附图说明
图1是本发明提出的微架构的高速缓存结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
针对现有技术的这些缺陷,本发明提出了一种采用自适应高速缓存(cache)动态标记机制的微架构。投机隔离机制的问题在于:独立的投机cache无法像原有cache一样维护一致性,一旦投机成功,需要再次通过原有cache读取数据,并与投机cache中的数据进行比较,从而带来巨大开销。而本发明提出的标记机制不需要单独维护一个投机cache,只需要在原cache中进行动态标记,这样既避免了维护一致性的开销,又避免新增部件以增加芯片的面积和功耗。同时,本发明的动态标记机制还可以应用到处理器的地址翻译备查缓存(Translation Lookaside Buffer,后文简称TLB)中,以防御未来可能出现的基于TLB的瞬态攻击。
本发明的目的是提出一种针对处理器瞬态执行漏洞的新型防御机制。本发明的微架构可以克服现有各种防御机制普遍存在的性能开销高、片上面积占用大、功耗高、结构复杂、对潜在并发侧信道攻击防御能力不足等一系列问题。
本发明主要是对处理器cache结构进行了改进:通过在原有缓存行(cache line)上增加标记位,以区分该cache line是投机指令装载进来且投机状态还未确定的——瞬时(transient)状态,还是非投机指令或者投机已成功指令装载进来的——持续(persistent)状态;并通过修改cache替换策略,以保证投机load指令不会对persistent的cache line产生影响,从而被攻击者侦测到。本发明的关键技术点包括:
关键点1:处理器在执行访存读(load)或访存写(store)指令时,无论是transient还是persistent状态的cache line,只要命中,就可以立即返回数据。此时,攻击尚未完成,因为投机并未对cache造成任何实质性影响——未发生cache line的替换。
而一旦未命中(cache miss),如果是store指令,按照处理器本身的机制,必然不是投机的,(因为处理器如果允许投机store操作,cache中的值就会被改写,一旦投机失败,根本无法回滚,就会违背程序正确性),此时处理器可以从相应缓存组(cache set)中的persistent状态的cache line中选择一个进行替换;如果是投机的load指令,则从相应cache set中的transient状态的cache line中选择一个进行替换。这样,对于类似于“Prime+Probe”这样通过探测cache line“减速(slowdown)”情况而实现的侧信道攻击来说,因为投机指令并未将persistent状态的cache line“踢出”,不会造成任何攻击者布置的cache line会slowdown,所以攻击无法成功。
关键点2:如果投机load指令失败,处理器会向cache发出投机失败处理(squash)请求,该请求会清理对应的transient状态的cache line。这样,对于类似“Flush+Reload”这样通过探测cache line“加速(speedup)”情况而实现的侧信道攻击来说,因为投机指令装载进来的transient状态的cache line已被清理,所以不会有任何攻击者事先布置的数据被非法投机装进cache中,所以攻击者不会观测到任何speedup信息。
如果投机load指令成功,处理器会向cache发出投机成功处理(commit)请求,将对应的transient状态的cache line置为persistent状态。改变状态的同时,cache会判断该cache set中的persistent状态的cache line数量是否已到上限,如果到达,则从原有的persistent状态cache line中选择一个替换出去,并将其状态置为transient状态。
关键点3:因为防御机制改变了原有cache替换算法,如果程序在某一时刻对某一个cache set的投机访问比较密集,则有可能造成该组内transient cache line频繁发生替换(又称为冲突性缺失,conflict miss),所以为了在不增加组内cache line数量的情况下,保证本机制对程序性能的影响尽可能小,本机制还提供了一种动态自适应调整组内persistent/transient cache line数量上限的机制。该机制通过记录cache中每一组内persistent/transient cache line发生conflict miss的次数,会根据预置的算法自适应地调整persistent/transient cache line的数量上限,以减少组内conflict miss的次数。
关键点4:以上机制可有效防御现有各种基于cache的投机侧信道攻击,然而这里存在一个前提条件:默认攻击都遵循串行逻辑,即先进行非法投机,再进行侧信道探测。而在未来,攻击有可能变成并发(concurrent)逻辑,即攻击者利用一个核心发起非法投机,同时在另一个核心进行探测。如果机制还按照原有cache一致性协议工作,transient状态的cache line可被其它核心访问,则无法抵御这种concurrent攻击。为了解决这一问题,本发明又对现有的cache一致性协议进行了修改,在装载transient状态的cache line时,会将其一致性状态置为“Spec-Shared”(投机共享)或“Spec-Exclusive”(投机独占),此时,其它核心的load请求不会访问当前核心的cache line,所以不会被攻击者感知。在投机成功后,transient cache line的一致性状态会根据当前状态变成正常的“Exclusive”或“Shared”。
通过以上各种关键机制和策略,本发明提出的防御机制可以获得比现有其它各种防御机制更高的安全性、更低的开销、更低的功耗、更小的片上面积、更简洁的实现。同时,该防御机制不需要上层软件进行任何改动,且不会影响原有处理器提供的各种硬件特性(比如各种数据预取机制、原子或事务性指令、各种性能计数器等等),便于大规模推广和部署。
一、系统设计
要实现本发明提出的防御机制,需要对现有处理器微架构及cache结构进行修改。后文描述以两级cache为例:L1 cache为每个核私有,分为I-cache和D-cache,都采用组相联;L2 cache是整个CPU共享,采用组相联,且与所有的L1 cache是inclusive关系。整个cache使用基于目录(directory)的MESI一致性协议。以上假设只为简化分析,本发明不依赖具体的缓存层级结构或一致性协议。
图1是本发明提出的微架构的cache结构示意图。对于采用组相联的cache来说,每一片cache的电路结构都可以分为数据区(data array)和标记区(tag array)。data array中每一项保存每个cache line的数据,tag array中每一项保存对应data array项的tag及状态(invalidbit和dirtybit)。为了实现投机状态标记,本机制需要在tag array中每一项添加一个域,该域只占用1bit,0表示persistent状态,1表示transient状态。
为了实现上文“关键点1”中提到的安全的投机替换,本机制需要修改cache替换控制模块。原有的cache替换控制模块只需要根据该请求所在组内各cache line的访问记录,决定被替换的cache line,而本机制需要根据当前来自CPU的请求是否为投机,决定替换选择范围是组内的persistent line还是transient line,并同时记录每一组中persistentcache line的上限Npersistent和transient cache line的上限Ntransient,Npersistent+Ntransient=Nassociativity,Nassociativity为对应该处理器的每组中cache line的数量。
为了实现上文“关键点2”中提到的投机失败/成功的处理,本机制需要在cache中添加squash/commit请求处理模块。其中,squash处理子模块用来响应CPU发出的squash请求,该请求包含投机失败指令装载进来的transient cache line的地址,squash电路会选中对应的cache line,将其tag标记位置为invalid。commit处理子模块用来响应CPU发出的commit请求,该请求包含投机成功指令装载进来的transient cache line的地址,commit电路会选中对应的cache line,首先将该cache line投机状态位置为persistent,然后如果对应组内的persistent cache line数量已达到上限,则从persistent line中选择一项替换出去,并将该项的状态置为transient。
为了实现上文“关键点3”中提到的自适应切换组内persistent/transient line数量的上限值,本机制首先需要在cache中添加一个冲突性缺失计数模块(conflict misscounter array),用以记录cache中persistent/transient line发生的conflict miss数目,(所谓conflict miss,就是会触发cache中其它有效cacheline被换出的cache miss)。记录的粒度可以有两种,一种是以整个cache为单位,另一种是以cache set为单位。处理器设计者可以根据芯片面积功耗要求自行选择任意一种方式。
同时,还需要加入一个persistent/transient cache line自适应调整模块,该模块遵循表1所展示的调整算法。算法的输入是整个cache/或某一cache set中persistentline发生conflict miss的数目——Mpersistent,以及transient line发生conflict miss的数目Mtransient。本发明的调整算法包含3个超参数:Mtotal、RPT和RTP,其具体值可由处理器设计者根据实际程序的运行情况决定,当前给定的默认值是本发明推荐选择的值。
Figure BDA0002372218170000081
表1:自适应调整上限值的调整算法
为了实现上文“关键点4”中提到的对concurrent攻击的防御,本机制需要对维护cache一致性的控制器(cache controller)进行修改,在L1 cache controller的状态机中增添两种新的状态——“Spec-Shared”(投机共享)和“Spec-Exclusive”(投机独占)。
相比于原有的“Shared”状态,“Spec-Shared”表示此cache line是投机load指令装载进来的,且其它某些核心的L1 cache也有此cache line的备份。此时,如果有某一核心请求该cache line,L2 cache不会将请求传递(forward)到“Spec-Shared”状态的核心,直到该cache line状态变为“Shared”。该cache line会在收到对应的commit请求后,由“Spec-Shared”状态变为“Shared”状态。
相比于原有的“Exclusive”状态,“Spec-Exclusive”表示此cache line是投机load指令装载进来的,且是独占的。此时,如果有某一核心请求该cache line,L2 cache不会将请求forward到“Spec-Exclusive”状态的核心,直到该cache line状态变为“Exclusive”。该cache line会在收到对应的commit请求后,由“Spec-Exclusive”状态变为“Exclusive”状态。
二、对处理器内部的修改
为了实现cache的squash和commit功能,处理器流水线需要进行微小的改动,在ROB(ReorderBuffer,指令重排队列)中,根据当前squash或commit的指令情况,向L1 D-cache发出squash和commit请求。
三、对TLB的修改
因为TLB也是类似于cache的缓存结构,也有替换机制,所以也存在被非法投机影响的可能,但是目前还没有成功利用TLB实现的瞬态攻击。所以,考虑到性能等其它因素,TLB的投机副作用可以不用防护。
如果在安全要求极端苛刻的情况下,对于采用组相联结构的TLB来说(一般是二级TLB),可以直接应用本机制提出的“自适应标记”的方法,避免非法投机对TLB造成影响;对于采用直接映射结构的TLB来说(一般是一级TLB),可以直接采取“延迟执行”的方法,延迟发生TLB miss指令的执行,直到该指令已确认安全。
本发明的微架构相比于采用现有各种防御机制技术的微架构,具有性能高,芯片面积开销小与功耗开销低,对处理器原有架构影响小,安全性高,且易于推广等一系列特点。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变形,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (10)

1.一种微架构,其特征在于,包括:
处理器,以投机执行方式执行访存指令;
与该处理器对应设置的高速缓存,采用组相联模式,包括多个组,每个组包含多个缓存行,以及与该缓存行一一对应的标记项,该标记项包括第一标记项和第二标记项,该第一标记项用于保存该缓存行的缓存内容的原有的属性参数,该属性参数包括该缓存行的地址标记、脏数据标记和有效性标记;该第二标记项用于保存该缓存内容的瞬时/持续状态标记。
2.如权利要求1所述的微架构,其特征在于,当缓存行的缓存数据为处理器以投机指令装载的数据,且该投机指令处于未提交状态时,以该缓存数据为瞬时性数据,以保存瞬时性数据的缓存行为瞬时单元;当缓存行的内容为处理器以非投机指令或已提交投机指令装载的数据时,以该缓存数据为持续性数据,以保存持续性数据的缓存行为持续单元。
3.如权利要求2所述的微架构,其特征在于,该高速缓存还包括:瞬时/持续单元数量上限记录模块,用于分别记录该高速缓存每组中瞬时单元的数量上限Ntransient和持续单元的数量上限Npersistent,其中Npersistent+Ntransient=Nassociativity,Nassociativity为该高速缓存每组中缓存行数量。
4.如权利要求3所述的微架构,其特征在于,该高速缓存还包括:缓存行替换控制模块,用于选择该高速缓存的某组中瞬时单元或持续单元的缓存行进行替换。
其中,当该高速缓存某组中的瞬时单元数量达到Ntransient,且新增瞬时单元时,根据伪LRU策略,选取该组中某一瞬时单元进行替换;当该高速缓存某组中的持续单元数量到达Npersistent且新增持续单元时,根据伪LRU策略,选取该组中某一持续单元进行替换。
5.如权利要求3或4所述的微架构,其特征在于,还包括:处理器投机访存指令提交处理模块,用于在投机访存指令提交后,若投机失败,向该高速缓存发送投机失败处理请求,若投机成功,则向该高速缓存发送投机成功处理请求。
6.如权利要求5所述的微架构,其特征在于,还包括:高速缓存控制模块,包括:访存请求控制模块,用于接收并处理初级访存请求;
其中,若该初级访存请求命中,则返回请求数据;反之,则向下级存储结构发出次级访存请求,获取该初级请求要访问的数据,当该下级存储结构返回该请求数据后,判断该初级访存请求的读/写类型;
若该初级访存请求为读请求,则将该请求数据装入对应高速缓存组的任一无效的瞬时单元,若没有无效的瞬时单元,则调用该缓存行替换控制模块,依据替换策略选取该高速缓存组内某一瞬时单元进行替换,若该初级访存请求为写请求,则将该请求数据装入对应高速缓存组的任一无效的持续单元,若没有无效的持续单元,则调用该高速缓存行替换控制模块,依据替换策略选取该高速缓存组内某一持续单元进行替换。
7.如权利要求5所述的微架构,其特征在于,该高速缓存控制模块还包括:投机成功请求控制模块,用于接收并处理投机成功处理请求;
其中,当该投机成功处理请求中包含的投机指令访问的缓存行为瞬时单元,则将该投机访存指令访问的缓存行标记为持续单元;若当前高速缓存组的持续单元数量达到Npersistent,则触发该缓存行替换控制模块,选取该高速缓存组内某一持续单元进行换出,并将其标记成瞬时单元。
8.如权利要求5所述的微架构,其特征在于,该高速缓存控制模块还包括:投机失败请求控制模块,用于接收并处理投机成功处理请求;
其中,当该投机处理请求中包含的投机指令访问的缓存行为瞬时单元,则将该投机访存指令访问的缓存行标记为无效的瞬时单元。
9.如权利要求3所述的微架构,其特征在于,该高速缓存还包括:高速缓存冲突性缺失计数模块,用于记录该高速缓存中瞬时单元和持续单元发生冲突性缺失的次数。
10.如权利要求9所述的微架构,其特征在于,该高速缓存还包括:瞬时单元/持续单元动态调整模块,用于根据该高速缓存中瞬时单元和持续单元发生冲突性缺失的次数,并根据预设的阈值,调整Ntransient和Npersistent
CN202010054119.2A 2020-01-17 2020-01-17 一种微架构 Active CN111274198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010054119.2A CN111274198B (zh) 2020-01-17 2020-01-17 一种微架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010054119.2A CN111274198B (zh) 2020-01-17 2020-01-17 一种微架构

Publications (2)

Publication Number Publication Date
CN111274198A true CN111274198A (zh) 2020-06-12
CN111274198B CN111274198B (zh) 2021-11-19

Family

ID=71000598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010054119.2A Active CN111274198B (zh) 2020-01-17 2020-01-17 一种微架构

Country Status (1)

Country Link
CN (1) CN111274198B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435148A (zh) * 2021-06-04 2021-09-24 上海天数智芯半导体有限公司 一种参数化缓存数字电路微架构及其设计方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173216A1 (en) * 2012-12-18 2014-06-19 Advanced Micro Devices, Inc. Invalidation of Dead Transient Data in Caches
CN108427576A (zh) * 2018-02-12 2018-08-21 华夏芯(北京)通用处理器技术有限公司 一种免受Spectre攻击的高性能推测执行算法
US20190114422A1 (en) * 2017-10-12 2019-04-18 Microsoft Technology Licensing, Llc Speculative side-channel attack mitigations
US20190138720A1 (en) * 2018-12-17 2019-05-09 Intel Corporation Side channel attack prevention by maintaining architectural state consistency
US20190272239A1 (en) * 2018-03-05 2019-09-05 Samsung Electronics Co., Ltd. System protecting caches from side-channel attacks
CN110659071A (zh) * 2018-06-29 2020-01-07 英特尔公司 针对推测性执行处理架构的基于边信道的攻击的有效缓解

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173216A1 (en) * 2012-12-18 2014-06-19 Advanced Micro Devices, Inc. Invalidation of Dead Transient Data in Caches
US20190114422A1 (en) * 2017-10-12 2019-04-18 Microsoft Technology Licensing, Llc Speculative side-channel attack mitigations
CN108427576A (zh) * 2018-02-12 2018-08-21 华夏芯(北京)通用处理器技术有限公司 一种免受Spectre攻击的高性能推测执行算法
US20190272239A1 (en) * 2018-03-05 2019-09-05 Samsung Electronics Co., Ltd. System protecting caches from side-channel attacks
CN110232031A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 保护缓存免受侧信道攻击的方法、系统和存储介质
CN110659071A (zh) * 2018-06-29 2020-01-07 英特尔公司 针对推测性执行处理架构的基于边信道的攻击的有效缓解
US20190138720A1 (en) * 2018-12-17 2019-05-09 Intel Corporation Side channel attack prevention by maintaining architectural state consistency

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PAUL KOCHER: "Spectre Attacks: Exploiting Speculative Execution", 《2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP)》 *
ZHE WANG;CHENGGANG WU: "Using Local Clocks to Reproduce Concurrency Bugs", 《 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING》 *
王恩东等: "多核处理器目录缓存结构设计", 《计算机研究与发展》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435148A (zh) * 2021-06-04 2021-09-24 上海天数智芯半导体有限公司 一种参数化缓存数字电路微架构及其设计方法

Also Published As

Publication number Publication date
CN111274198B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
Yan et al. Invisispec: Making speculative execution invisible in the cache hierarchy
Ainsworth et al. Muontrap: Preventing cross-domain spectre-like attacks by capturing speculative state
US10915466B2 (en) System protecting caches from side-channel attacks
US20210173931A1 (en) Speculative side-channel attack mitigations
JP7228592B2 (ja) 投機的キャッシュ記憶領域
US8635428B2 (en) Preventing duplicate entries in a non-blocking TLB structure that supports multiple page sizes
US11163576B2 (en) Systems and methods for invisible speculative execution
KR101677900B1 (ko) 데이터 처리장치 내부의 로컬 캐시 구조에 발행된 액세스 연산을 처리하는 장치 및 방법
CN111241010B (zh) 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
WO2020000989A1 (zh) 可抵御边信道攻击的缓存加固方法及装置
CN111274584B (zh) 一种基于缓存回滚以防御处理器瞬态攻击的装置
US20240311150A1 (en) Method for secure, simple, and fast speculative execution
CN111274198B (zh) 一种微架构
Zhao et al. Pinned loads: taming speculative loads in secure processors
CN111259384B (zh) 一种基于缓存随机无效的处理器瞬态攻击防御方法
US8898401B2 (en) Methods and apparatuses for improving speculation success in processors
Wang et al. SVP: Safe and Efficient Speculative Execution Mechanism through Value Prediction
Seddigh et al. Breaking KASLR on Mobile Devices without Any Use of Cache Memory
US20140325156A1 (en) Long Latency Tolerant Decoupled Memory Hierarchy for Simpler and Energy Efficient Designs
CN113779649B (zh) 一种针对投机执行攻击的防御方法
Loughlin Mitigating Microarchitectural Vulnerabilities to Improve Cloud Security and Reliability
US11397584B2 (en) Tracking speculative data caching
Meng et al. Secure Access Policy (SAP): Invisibly Executing Speculative Unsafe Accesses in an Isolated Environment
Ladas et al. Performance implications of faults in prediction arrays
Meng et al. Execute on Clear (EoC): Enhancing Security for Unsafe Speculative Instructions by Precise Identification and Safe Execution

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
GR01 Patent grant
GR01 Patent grant