CN103140847A - 调节原子存储器操作以防止拒绝服务的攻击 - Google Patents
调节原子存储器操作以防止拒绝服务的攻击 Download PDFInfo
- Publication number
- CN103140847A CN103140847A CN2011800459040A CN201180045904A CN103140847A CN 103140847 A CN103140847 A CN 103140847A CN 2011800459040 A CN2011800459040 A CN 2011800459040A CN 201180045904 A CN201180045904 A CN 201180045904A CN 103140847 A CN103140847 A CN 103140847A
- Authority
- CN
- China
- Prior art keywords
- thread
- processor
- atomic memory
- core
- 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
Links
- 230000001105 regulatory effect Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000009471 action Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 108700007698 Genetic Terminator Regions Proteins 0.000 claims 2
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000002265 prevention Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (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)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在一个实施例中,本发明包括一种方法,该方法用于:识别由第一线程执行的原子存储器操作的终止序列;将定时器与第一线程相关联;以及防止第一线程在完成该原子存储器操作之后执行存储器集群操作,直至防止窗口已过去。在一些实施例中,该方法可由与处理器的存储器执行单元相关联的调节逻辑来执行。描述并要求保护其他的实施例。
Description
背景
当代处理器可被配置成处理多个活动线程的执行(例如单核或多核处理器上的同时多线程(SMT)模式),或允许多个线程在一个或多个核的逻辑处理器上执行。在这样的实例中,如果一个线程正在诸如总线锁定(buslock)之类的原子存储器操作的有限循环中运行(例如涉及非写回(WB)存储器类型的原子锁定操作,或当使用WB存储器但操作数地址跨越高速缓存行边界时)并且另一线程需要执行加载或存储操作,则只有执行总线锁定的线程可取得任何向前的进展。即,由第一线程执行的总线锁定会如此接近,以致新的总线锁定正好在前一总线锁定完成之后开始,使得另一线程被阻止执行诸如加载或存储操作之类的存储器操作。
因此,这样的原子存储器操作是非常强大的,且能在总线锁定正在进行时防止其它存储器操作(例如记载或存储)进行。这产生了拒绝服务的安全性攻击,其中用户(例如在用户特权级别(例如环3)或当前特权级别(CPL)3下执行的用户)可写入宏指令的非常小的循环,这会阻止其它用户/程序起作用。除了影响在同一核中运行的线程的操作之外,这种类型的操作/攻击甚至会阻止在同一处理器内的不同核上和/或在该系统内的不同处理器封装上运行的用户/程序的进展。
附图说明
图1是根据本发明的实施例的处理器的框图。
图2是根据本发明的一个实施例的方法的流程图。
图3是根据本发明的实施例的处理器核的框图。
图4是根据本发明的另一实施例的处理器核的框图。
图5是根据本发明的实施例的系统的框图。
具体实施方式
在多个实施例中,处理器的逻辑可提供对由给定线程执行的原子存储器操作的调节,使得该线程不会不利地影响在处理器中执行的其它线程的性能。在一些实施例中,该逻辑可与处理器的存储器执行单元相关联,且可采取行动以调节或延迟被提供给存储器执行单元的某些操作。这样的操作可包括不同类型的原子存储器操作,包括总线锁定。这样的总线锁定会不利地影响性能,因为实际上处理器和该系统的其它代理的所有其它操作可能需要静默以正确地处理总线锁定操作。为了防止一系列连续的这样的总线锁定表现为拒绝服务攻击,处理器的调节或其它逻辑可采取行动以延迟和/或隔离给定线程的连续原子存储器操作。
现在参考图1,其中示出了根据本发明的实施例的处理器的高级框图。如图1所示,处理器100可以是多核处理器,包括多个核110a-110n。应理解,这些核可以是物理处理器,因为它们可包括诸如前端单元、执行单元和后端单元之类的各种组件,如下文将更详细描述那样。此外,在一些实施例中,每个核可包括一个或多个逻辑处理器。这样的逻辑处理器可提供多个线程的并发执行。一般而言,逻辑处理器可包括与给定线程相关联的状态,例如,该状态存储在用于该线程的寄存器文件中。然而,该核的所有其它组件(诸如前端单元、执行单元、后端单元等等)在多个逻辑处理器和在这样的逻辑处理器上执行的线程之间被共享。
各个核可经由互连115耦合至非核逻辑120,该非核逻辑120是处理器的核外逻辑,其包括多个组件。非核120可包括共享高速缓存130,该共享高速缓存130可以是最后一级高速缓存。此外,非核可包括集成存储器控制器140、各种接口150和功率管理单元155。如所见,处理器100可例如经由存储器总线与系统存储器160通信。
非核120还可包括锁定打断器125,该锁定打断器可以是用于检测诸如活锁(live lock)或死锁情况之类的锁定事件的逻辑,在锁定事件中,在核上执行的线程被莫名地停止或无法取得向前的进展。一般而言,锁定打断器125可执行多个增加负担的锁定打断行动(这会不利地影响性能)以打断锁定。典型地,锁定打断器响应于检测到活锁或死锁而开始执行锁定打断行动。
仍关于图1,接口150可实现与诸如外围设备、大容量存储等等之类的各种芯片外组件的通信。尽管在图1的实施例中示出了该特定实现,但本发明的范围在这方面不受限制。
现在参考图2,示出的是根据本发明的一个实施例的方法的流程图。如图2所示,方法200可用于控制一个或多个代理对原子存储器操作的访问。虽然作为原子存储器操作的示例,图2的讨论有关总线锁定操作,但本发明的范围在这方面不受限制。例如,在其它实施例中,也可调节诸如某些高速缓存锁定之类的其它类型的原子存储器操作。例如,高速缓存锁定是具有WB存储器类型和高速缓存对齐地址的原子操作(致使该原子操作完全适配在单个高速缓存行内),该原子操作会防止另一线程使用MEU。虽然高速缓存锁定的持续时间一般比总线锁定短,但它们仍可用于在单个SMT核内产生拒绝服务攻击。因此,各实施例也可用于调节这样的操作。
参考图2,总线锁定调节器或其它这样的逻辑可执行图2的方法以防止线程执行连续总线锁定,且无需提供预定时间用以在总线锁定之间传递。以此方式,可防止处于拒绝服务或其它这样的安全性攻击下的线程不必要地消耗系统资源。
如图2中可见,方法200的开始可以是响应于给定线程(即来自第一线程的请求)执行总线锁定(框210)。可发起总线锁定操作的多个操作可不同,且可包括例如隐含地执行原子操作(例如交换指令是一个示例)、处理在转换后备缓冲器(TLB)中未命中并且需要使页面未命中处理器(PMH)执行以执行页面遍历的存储器操作、或针对用于处理各种情况的微代码流的宏指令,包括一些操作系统级的宏指令。可执行各种操作来执行总线锁定。具体而言,在核上执行的线程可导致总线锁定请求从该核的存储器子系统发送至处理器的其它逻辑,诸如非核逻辑。进而,该非核逻辑可向给定处理器内部的所有其它系统代理以及给定处理器外部的诸如其它处理器之类的代理(在多处理器系统示例中)发出停止类型的请求。然后,响应于在其它代理中接收到该停止请求,这些代理将执行各种操作来静默它们的操作。这些操作可包括完成所有未决的操作、排出各个缓冲器、隐退所执行的指令,等等。当在给定代理中已完成所有这样的操作时,该代理可将指示符信号发回至非核逻辑以指示该代理处于静默状态。最终,当所有这样的信号已经被非核逻辑接收时,非核逻辑可进而向第一线程发送就绪信号以指示现在可执行总线锁定。因此,需要大量的操作来实现总线锁定,并且在此状态下会阻止系统的其它代理执行有用的工作。
如图2中可见,在总线锁定操作期间,执行方法200的调节器或其它逻辑可确定总线锁定是否正在结束(菱形220)。虽然本发明的范围在此方面不受限制,但在一些实施例中,该确定步骤可基于在总线锁定序列末尾执行的某些操作。在不同实施例中,这些操作可不同。例如,表示总线锁定末尾的操作可涉及存储解锁微指令的隐退(或执行retirement)。如果未检测到该总线锁定末尾序列,则菱形220可自循环。
或者,控制进行至框230。在框230,该逻辑可仅允许其它线程执行存储器集群操作。即,可防止刚完成总线锁定执行的第一线程访问存储器执行单元以执行存储器集群操作。以此方式,在线程连续寻求执行总线锁定的情形下,可防止拒绝服务或其它风格的攻击。注意,虽然在框230中防止线程执行存储器集群操作,但在其它应用中,可替代地提供不同的防止机制。例如,在不是防止所有存储器集群操作的一些实现中,可仅防止那种寻求执行总线锁定的操作。在另外的实施例中,防止机制可涉及其它功能,且可对发起线程产生更大的影响。例如,防止机制可挂起发起线程的所有操作,而不是仅挂起其对存储器执行单元的使用。在其它另外的实现中,它甚至可阻止该核刚完成总线锁定的所有线程使用存储器执行单元。以此方式,在总线锁定迅速源自同一核上的不同线程(例如在线程之间来回的锁定)从而导致对系统/平台之余下部分产生拒绝服务攻击的情况下,可防止拒绝服务的情形。
控制接下来进行至框240,在框240可启动用于第一线程的定时器。如下文将进一步讨论,在一些实施例中,该定时器可对应于计数器,例如12位递减计数器。因此,该定时器呈现防止窗口,在该防止窗口期间,相应的线程(即刚刚执行总线锁定的线程)被防止进行存储器集群操作。注意,虽然作为分开的框230和240来示出,但在一些实现中,这些框可被组合成原子流。
仍参考图2,在菱形250,可确定该定时器是否已经达到预定值。例如,在定时器通过计数器来实现的实现方式中,在递减计数器实施例中,该预定值可对应于零计数。替代地,在递增计数器实施例中,该预定值可对应于该计数器的最大计数。如果该计数值尚未达到,则控制环返回至菱形250。
替代地,如果该计数值已达到,则控制传递至框260。在框260,允许给定线程再次执行存储器集群操作。即,该线程可去除防止机制。因此,该线程的存储器集群分派行动可正常地恢复。再进一步,在框260,可将定时器设置回其初始值。尽管在图2的实施例中以该特定实现示出,但本发明的范围在这方面不受限制。
因此,一般而言,各实施例可避免需要采取诸如由活锁或死锁检测器执行的激进的锁定打断行为,而是替代地分析操作以识别原子存储器操作的执行并采取适当的手段来防止这样的操作的连续序列。在原子操作是总线锁定的示例中,逻辑可识别哪个逻辑处理器正在执行该总线锁定。然后例如可通过确定该逻辑处理器何时发起完成其总线锁定的序列来检测该总线锁定的结束。响应于该确定结果,可防止该逻辑处理器在预定时间内发起另一总线锁定。例如,当总线锁定序列结束时,可防止逻辑处理器开始另一总线锁定,直至例如12位可编程计数器的计数器值递减至零。之后,可允许该逻辑处理器发出另一总线锁定,并且可将相关联的时间重置回其原始起始值。
在一个实施例中,计数器(该计数器可以是可编程寄存器)的最大值可通过微代码来设置和修改。再者,在利用调节器逻辑的检测逻辑检测到由线程接近发出的原子存储器操作的数量之后,调节器逻辑可增大与该线程相关联的计数器的长度,因为操作的此数量可指示由该线程执行的攻击。以此方式,可至少部分地基于由该线程所请求的原子存储器操作的数量来控制针对线程的防止窗口。而且,在一些实施例中,可设置微代码可编程启用/停用指示符来启用/停用用于执行该原子存储器操作调节的调节器逻辑。
以此方式,可实现更轻量的机制来防止由线程执行的原子存储器操作的连续序列。相反,利用诸如活锁或死锁打断器之类的常规方式,将会使用更重量的机制。在该常规方式下,当一个线程运行总线锁定的连续流时,一个或多个活锁打断器最终检测到另一线程无法取得任何向前的进展(例如通过隐退更多指令)。然后该活锁打断器开始采取行动。例如,与存储器执行单元(MEU)活锁打断器(LLB)对应的第一活锁打断器可检测该问题并采取一些行动。如果该MEU LIB无法帮助该非总线锁定线程,则可向诸如核隐退检测器(CRD)之类的另一检测器作出请求,以在受困核中触发全线程核武器(all-thread nuke)。该核武器使受困线程隐退一个指令。然后另一线程可重启其总线锁定的流,并且该情形不断重复。但是,这样的操作导致非常糟糕的性能。
因此,在各个实施例中,作为对受困和未取得进展的一个线程的检测操作的替代,并且在采取任何有效行动之前花费较长的时间之前,对完成原子存储器操作的线程进行控制以防止连续的原子操作,该防止操作在第一原子操作完成之后至少持续预定时间。以此方式,通过在允许刚刚完成原子操作的线程执行另一原子存储器操作之前等待预定时间段(这可能包括防止该线程在该时间段内访问MEU),由该线程引起的性能下降很小。因此,该防止机制能使其他线程不会一开始就受困。相应地,各实施例提供在完成原子存储器操作的线程能开始新存储器指令之前的可编程时间窗口。即便经历防止操作的该线程也应该不会具有显著的性能影响,因为这样的原子操作无论如何都是低执行活动。
以此方式,通过防止恶意代码使用总线锁定(任何用户可利用总线锁定来写入代码)以显著地降低系统性能以及其他用户和/或程序的性能,可实现更安全和强健的处理器。
各实施例可在许多不同的系统中实现。例如,实施例可在诸如多核处理器之类的处理器中实现。现在参考图3,其中示出了根据本发明的一个实施例的处理器核的框图。如图3所示,处理器核300可以是多核处理器中的一个核,并且被示为多级流水线化的乱序处理器。在图3中利用相对简化的视图示出处理器核300,以示出与根据本发明的实施例的存储器子系统调节结合使用的多个特征。
如图3所示,核300包括前端单元310,前端单元310可用于取回要执行的指令并将它们准备好以供稍后在处理器中使用。例如,前端单元310可包括取回单元301、指令高速缓存303以及指令解码器305。在一些实现中,前端单元310还可包括追踪高速缓存和微代码存储以及微操作存储。取回单元301可(例如)从存储器或指令高速缓存303取回宏指令,并将它们馈送至指令解码器305以将它们解码成原语,即用于由处理器执行的微操作。
乱序(OOO)引擎315耦合在前端单元310与执行单元320之间,乱序引擎315可用于接收微指令并将它们准备好以供执行。更具体地,OOO引擎315可包括多个缓冲器,用于对微指令流重新排序并分配执行所需的各种资源,以及例如通过使用该引擎的重命名逻辑来提供逻辑寄存器到各个寄存器文件(诸如寄存器文件330和扩展寄存器文件335)内的存储位置上的重命名。寄存器文件330可包括用于整数和浮点运算的分开的寄存器文件。扩展寄存器文件335可提供用于向量大小单元的存储,例如每个寄存器256或512位。
执行单元320中可存在各种资源,包括例如各种整数、浮点和单指令多数据(SIMD)逻辑单元以及其他专门的硬件。例如,这样的执行单元可包括一个或多个算术逻辑单元(ALU)322。当然,还可存在诸如乘法累加单元之类的其他执行单元等等。结果可被提供给隐退逻辑,即重新排序缓冲器(ROB)340。更具体地,ROB340可包括各种阵列和逻辑以接收与被执行的指令相关联的信息。然后该信息被ROB340检查,以确定这些指令是否能有效地被隐退以及结果数据是否被提交给处理器的架构状态,或确定是否出现防止这些指令正确隐退的一个或多个异常情况。当然,ROB340可处理与隐退相关联的其他操作。
如图3所示,ROB340耦合至高速缓存350,在一个实施例中,该高速缓存350可以是低级高速缓存(例如L1高速缓存)。在一些实施例中,执行单元320可直接耦合至高速缓存350。转而,例如,包括高速缓存、执行单元和前端逻辑的各个处理器结构可耦合至存储器子系统360。该存储器子系统可提供处理器结构与存储器层次的其他部分(例如芯片上或芯片外的高速缓存和系统存储器)之间的接口。为此,存储器子系统360可包括集成存储器控制器370以提供与系统存储器(在图3中为了说明方便而未示出)的通信。存储器子系统360还可包括存储器执行单元375,该存储器执行单元375处理各种操作,以发起存储器请求并且处理数据从存储器的返回。例如,如图3的实施例中所示,MEU375可包括:页面未命中处理器376,用于在高速缓存中请求未命中时处理存储器操作;MEU LLB377;以及仲裁器379,用于在多个存储器请求之间仲裁。进一步,虽然未示出,但应理解MEU中可存在诸如缓冲器、调度器等等之类的其他结构。
如图3中进一步可见,调节器逻辑380可耦合至MEU375。更具体地,调节器逻辑380可耦合在核300的其他组件与MEU375之间,以充当调节器以防止来自在该核上执行的给定线程的连续原子存储器操作。为此,逻辑380可包括与每个核相关联的跟踪器,其中每个跟踪器可包括定时器或其他这样的计数器,该定时器或其他这样的计数器在相应线程的第一原子存储器操作完成时启动,并在激活时防止来自该线程的另一原子存储器操作被提供给MEU375,直到达到该定时器的阈值(例如最大计数)。此外,逻辑380可包括缓冲器,每个缓冲器被配置成存储由相应线程发出的原子存储器操作,以使这样的操作可在任何防止窗口已经过去之后发出。
从存储器子系统360,可发生与更高级高速缓存、系统存储器等等的数据通信。尽管在图3的实施例中以该高级框图示出,但应理解本发明的范围在这方面不受限制。例如,虽然图3的实现方式有关诸如具有所谓的x86指令集架构(ISA)之类的乱序机,但本发明的范围在此方面不受限制。即,其他实施例可在以下处理器中实现:顺序处理器;诸如基于ARM的处理器之类的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作,诸如下文相对于图4所示。
即,在其他实施例中,处理器架构可包括仿真特征,使得处理器可执行称为源ISA的第一ISA的指令,其中该架构是根据第二ISA的,该第二ISA被称为目标ISA。一般而言,包括OS和应用程序的软件被编译至源ISA,而硬件实现针对给定硬件实现方式而特别设计的具有特殊性能和/或能源效率特征的目标ISA。
现在参考图4,所示为根据本发明的另一实施例的处理器的框图。如图4所见,系统400包括处理器410和存储器420。存储器420包括:常规存储器422,其保存系统和应用软件;以及隐藏存储器424,其保存目标ISA配备的软件。如所见,处理器410包括将源代码转换成目标代码的仿真引擎430。可通过译码或二进制转换来完成仿真。译码通常用于首次遇到的代码。然后,当频繁执行的代码区域(例如热点)通过动态概况分析被发现时,它们被转换至目标ISA并被存储在隐藏存储器424中的代码高速缓存中。优化作为转换过程的一部分来执行,并且非常频繁使用的代码可在稍后被进一步优化。经转换的代码块被保存在代码高速缓存424中,因此它们可被重复地再次使用。
仍参考图4,处理器410(其可以是多核处理器的一个核)包括程序计数器440,该程序计数器440提供指向指令高速缓存(I-高速缓存)450的指令指针地址。如所见,I-高速缓存450在未命中给定指令地址时还可从隐藏存储器部分424直接接收目标ISA指令。因此,I-高速缓存450可存储目标ISA指令,目标ISA指令可被提供给解码器460,该解码器460可以是目标ISA的解码器,用于接收传入指令,该解码器可处于宏指令层次并将指令转换成微指令以供在处理器流水线470内执行。虽然本发明的范围在这方面不受限制,但流水线470可以是具有多个级来执行和隐退指令的乱序流水线。流水线470可包括被配置成防止拒绝服务攻击的逻辑。这样的逻辑可类似于图3的调节器逻辑380,用于确定原子存储器操作的连续序列,并延迟或防止这样的操作影响其他执行线程的性能。
各实施例可在许多不同的系统类型中实现。现在参考图5,所示为根据本发明实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中的每一个可以是包括第一和第二处理器核(即处理器核574a和574b以及处理器核584a和584b)的多核处理器,尽管这些处理器中可能存在更多核。这样的核可包含根据本发明的实施例的调节逻辑,用于减少或防止拒绝服务攻击影响其他执行线程。
仍参考图5,第一处理器570还包括存储器控制器中枢(MCH)572以及点对点(P-P)接口576和578。类似地,第二处理器580包括MCH582以及P-P接口586和588。如图5所示,MCH572和582将各处理器耦合到相应的存储器,即存储器532和存储器534,这些存储器可以是主存储器(例如,动态随机存取存储器(DRAM))的本地附连到相应处理器的部分。第一处理器570和第二处理器580可分别经由P-P互连552和554耦合到芯片组590。如图5所示,芯片组590包括P-P接口594和598。
此外,芯片组590包括通过P-P互连539将芯片组590与高性能图形引擎538耦合的接口592。转而,芯片组590可经由接口596耦合到第一总线516。如图5所示,多个输入/输出(I/O)设备514以及总线桥518可耦合至第一总线516,该总线桥518将第一总线516耦合至第二总线520。各个设备可耦合到第二总线520,这些设备包括例如键盘/鼠标522、通信设备526以及诸如盘驱动器或其它大容量存储设备之类的数据储存单元528,在一个实施例中该数据储存器单元可包括代码530。此外,音频I/O524可耦合到第二总线520。
注意,虽然在图5的实施例中作为经由点对点互连耦合的多封装系统而示出(其中每个封装包括多核处理器),但本发明的范围不限于此。在其他实施例中,在双处理器或多处理器系统中,诸如前端总线之类的其他互连可将处理器耦合到一起。再进一步,应理解实施例可进一步在单处理器系统中使用,例如在具有单核或多核的处理器且可能(或可能不)提供对SMT的支持的系统中使用。
各实施例可以用代码实现,并可存储在存储有指令的存储介质上,它们可用来对系统编程以执行这些指令。存储介质可包括但不限于诸如盘之类的任何类型非瞬态存储介质,盘包括软盘、光盘、光碟、固态驱动器(SSD)、紧凑盘只读存储器(CD-ROM)、可重写紧凑盘(CD-RW)和磁光盘、诸如只读存储器(ROM)的半导体器件、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或者光学卡、或适于存储电子指令的任意其它类型的介质。
尽管本发明已针对有限数量的实施例作了描述,然而本领域技术人员将会从其中领会到许多修改和变型。所附权利要求旨在覆盖落在本发明的真实精神和范围内的所有这样的修改和变型。
Claims (20)
1.一种处理器,包括:
第一核,用于执行第一线程和第二线程的指令,所述第一核具有存储器执行单元和调节器逻辑,所述存储器执行单元用于处理由第一和第二线程发起的对存储器操作的请求,所述调节器逻辑用于防止第一线程在完成第一原子存储器操作之后执行第二原子存储器操作,直到在第一原子存储器操作完成之后一时间窗口已经过去。
2.如权利要求1所述的处理器,其特征在于,所述调节器逻辑进一步用于:在所述时间窗口已经过去之后,允许第一线程执行所述第二原子存储器操作。
3.如权利要求1所述的处理器,其特征在于,还包括至少一个锁定打断器,用于在第一核中已检测到锁定情况时执行锁定打断行动。
4.如权利要求3所述的处理器,其特征在于,所述调节器逻辑用于防止所述第二原子存储器操作的执行,以使所述至少一个锁定打断器不响应于由第一线程发出的多个原子存储器操作而发起锁定打断行动。
5.如权利要求1所述的处理器,其特征在于,所述调节器逻辑包括多个跟踪器,每个跟踪器与在第一核上执行的线程相关联,并且如果与第一线程相关联的计数器正在执行计数操作,则所述调节器逻辑防止第二原子存储器操作被发至所述存储器执行单元。
6.如权利要求5所述的处理器,其特征在于,所述调节器逻辑用于响应于检测到所述第一原子存储器操作的终止序列来启动所述计数器。
7.如权利要求5所述的处理器,其特征在于,所述计数器的长度能通过所述处理器的微代码来编程。
8.如权利要求1所述的处理器,其特征在于,所述调节器逻辑用于:当拒绝服务攻击被第一线程执行时,使第二线程能取得向前的进展。
9.如权利要求8所述的处理器,其特征在于,所述调节器逻辑用于:当所述调节器逻辑检测到所述拒绝服务攻击时,延长与所述第一线程相关联的时间窗口。
10.如权利要求1所述的处理器,其特征在于,所述调节器逻辑将响应于所述处理器的微代码而被停用。
11.一种方法,包括:
识别由第一线程执行的原子存储器操作的终止序列;
将定时器与第一线程相关联,所述定时器用于对第一线程的防止窗口的时段进行计数;以及
防止第一线程在完成所述原子存储器操作之后执行存储器集群操作,直到所述防止窗口已过去。
12.如权利要求11所述的方法,其特征在于,还包括将由所述第一线程发出的对第二原子存储器操作的请求保存在缓冲器中,直到所述防止窗口已过去。
13.如权利要求11所述的方法,其特征在于,所述原子存储器操作包括总线锁定操作。
14.如权利要求11所述的方法,其特征在于,还包括至少部分地基于由第一线程请求的原子存储器操作的数量来控制所述防止窗口的长度。
15.如权利要求11所述的方法,其特征在于,还包括允许第二线程在所述防止窗口期间执行原子存储器操作,然后防止第二线程执行存储器集群操作直到第二防止窗口已经过去。
16.如权利要求15所述的方法,其特征在于,还包括防止由第一线程执行的拒绝服务攻击阻止第二线程的执行,所述第一和第二线程将在多核处理器的第一核中执行。
17.如权利要求16所述的方法,其特征在于,防止第一线程执行存储器群集操作的所述步骤允许第二线程取得进展,而无需由耦合至第一核的锁定打断器发起锁定打断操作。
18.一种系统,包括:
处理器,包括用于执行指令的至少一个核,所述至少一个核包括:
前端单元,用于取回和解码指令;
重命名器,用于将所述指令的至少一个操作数与物理寄存器相关联;
耦合至所述前端单元的执行单元,用于利用所述至少一个操作数来执行所述指令;
耦合至所述执行单元的存储器执行单元(MEU),用于处理来自所述执行单元的传入存储器请求;以及
耦合至所述MEU的调节器,用于响应于由第一线程请求的先前原子存储器操作的终止,将由第一线程请求的至少一个原子存储器操作延迟提供给所述MEU;以及
耦合至处理器的动态随机存取存储器(DRAM)。
19.如权利要求18所述的系统,其特征在于,所述调节器用于:当由第一线程请求的所述至少一个原子存储器操作被延迟时,允许由第二线程请求的原子存储器操作被提供给所述MEU。
20.如权利要求19所述的系统,其特征在于,通过所述至少一个原子存储器操作的延迟,所述调节器在第一线程正在执行拒绝服务攻击时允许第二线程取得向前的进展,并且进一步通过所述延迟,所述处理器的至少一个锁定打断器不会发起锁定打断行动。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/887,898 | 2010-09-22 | ||
US12/887,898 US8516577B2 (en) | 2010-09-22 | 2010-09-22 | Regulating atomic memory operations to prevent denial of service attack |
PCT/US2011/052696 WO2012040425A2 (en) | 2010-09-22 | 2011-09-22 | Regulating atomic memory operations to prevent denial of service attack |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103140847A true CN103140847A (zh) | 2013-06-05 |
CN103140847B CN103140847B (zh) | 2015-11-25 |
Family
ID=45818946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180045904.0A Expired - Fee Related CN103140847B (zh) | 2010-09-22 | 2011-09-22 | 调节原子存储器操作以防止拒绝服务的攻击 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8516577B2 (zh) |
JP (1) | JP5628434B2 (zh) |
CN (1) | CN103140847B (zh) |
GB (1) | GB2497883B (zh) |
TW (1) | TWI540504B (zh) |
WO (1) | WO2012040425A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105765547A (zh) * | 2013-10-25 | 2016-07-13 | 超威半导体公司 | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524263B2 (en) * | 2012-06-29 | 2016-12-20 | Intel Corporation | Method and apparatus for bus lock assistance |
US9449008B1 (en) * | 2014-03-31 | 2016-09-20 | Amazon Technologies, Inc. | Consistent object renaming in distributed systems |
US10901940B2 (en) * | 2016-04-02 | 2021-01-26 | Intel Corporation | Processors, methods, systems, and instructions to atomically store to memory data wider than a natively supported data width |
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577282A (zh) * | 2003-06-27 | 2005-02-09 | 英特尔公司 | 使用监视-存储器等待的被排序的锁定 |
US20050044319A1 (en) * | 2003-08-19 | 2005-02-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293621A (en) | 1993-01-11 | 1994-03-08 | Unisys Corporation | Varying wait interval retry apparatus and method for preventing bus lockout |
US5644733A (en) | 1995-05-18 | 1997-07-01 | Unisys Corporation | Dual coupled partitionable networks providing arbitration logic for managed access to commonly shared busses |
US5717876A (en) | 1996-02-26 | 1998-02-10 | International Business Machines Corporation | Method for avoiding livelock on bus bridge receiving multiple requests |
US6141715A (en) | 1997-04-03 | 2000-10-31 | Micron Technology, Inc. | Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction |
US6182210B1 (en) | 1997-12-16 | 2001-01-30 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
US6078981A (en) | 1997-12-29 | 2000-06-20 | Intel Corporation | Transaction stall technique to prevent livelock in multiple-processor systems |
US6178493B1 (en) | 1998-02-19 | 2001-01-23 | International Business Machines Corporation | Multiprocessor stalled store detection |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
AU2001267057A1 (en) | 2000-06-12 | 2001-12-24 | Clearwater Networks, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6434673B1 (en) | 2000-06-30 | 2002-08-13 | Intel Corporation | Optimized configurable scheme for demand based resource sharing of request queues in a cache controller |
US6920516B2 (en) | 2000-08-31 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Anti-starvation interrupt protocol |
JP2002149480A (ja) * | 2000-11-16 | 2002-05-24 | Matsushita Electric Ind Co Ltd | 排他制御方法 |
US7082500B2 (en) | 2003-02-18 | 2006-07-25 | Cray, Inc. | Optimized high bandwidth cache coherence mechanism |
US7000047B2 (en) | 2003-04-23 | 2006-02-14 | International Business Machines Corporation | Mechanism for effectively handling livelocks in a simultaneous multithreading processor |
US7320100B2 (en) | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
US7748001B2 (en) | 2004-09-23 | 2010-06-29 | Intel Corporation | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US7516313B2 (en) | 2004-12-29 | 2009-04-07 | Intel Corporation | Predicting contention in a processor |
US7558946B2 (en) | 2005-12-12 | 2009-07-07 | Intel Corporation | Breaking a lock situation in a processor without detection of the lock situation using a multi-level approach |
US8069444B2 (en) | 2006-08-29 | 2011-11-29 | Oracle America, Inc. | Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors |
US7590784B2 (en) | 2006-08-31 | 2009-09-15 | Intel Corporation | Detecting and resolving locks in a memory unit |
-
2010
- 2010-09-22 US US12/887,898 patent/US8516577B2/en active Active
-
2011
- 2011-09-21 TW TW100133921A patent/TWI540504B/zh active
- 2011-09-22 JP JP2013530301A patent/JP5628434B2/ja not_active Expired - Fee Related
- 2011-09-22 GB GB1305154.5A patent/GB2497883B/en not_active Expired - Fee Related
- 2011-09-22 CN CN201180045904.0A patent/CN103140847B/zh not_active Expired - Fee Related
- 2011-09-22 WO PCT/US2011/052696 patent/WO2012040425A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577282A (zh) * | 2003-06-27 | 2005-02-09 | 英特尔公司 | 使用监视-存储器等待的被排序的锁定 |
US20050044319A1 (en) * | 2003-08-19 | 2005-02-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105765547A (zh) * | 2013-10-25 | 2016-07-13 | 超威半导体公司 | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120072984A1 (en) | 2012-03-22 |
JP5628434B2 (ja) | 2014-11-19 |
WO2012040425A3 (en) | 2012-06-28 |
WO2012040425A2 (en) | 2012-03-29 |
US8516577B2 (en) | 2013-08-20 |
GB201305154D0 (en) | 2013-05-01 |
TWI540504B (zh) | 2016-07-01 |
JP2013541097A (ja) | 2013-11-07 |
GB2497883B (en) | 2018-08-15 |
GB2497883A (en) | 2013-06-26 |
TW201227505A (en) | 2012-07-01 |
CN103140847B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101334721B (zh) | 线程活锁单元 | |
US6018759A (en) | Thread switch tuning tool for optimal performance in a computer processor | |
TW502173B (en) | Method and apparatus to force a thread switch in a multithreaded processor | |
US8412981B2 (en) | Core sparing on multi-core platforms | |
US20090132796A1 (en) | Polling using reservation mechanism | |
US20170031729A1 (en) | Generational Thread Scheduler | |
WO1999021083A1 (en) | Thread switch control in a multithreaded processor system | |
JP5413853B2 (ja) | マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス | |
CN102144218A (zh) | 可虚拟化的先进同步设备 | |
WO1999021088A1 (en) | An apparatus and method to guarantee forward progress in a multithreaded processor | |
US20170199778A1 (en) | Lazy runahead operation for a microprocessor | |
US9996127B2 (en) | Method and apparatus for proactive throttling for improved power transitions in a processor core | |
EP3850480B1 (en) | Controlling accesses to a branch prediction unit for sequences of fetch groups | |
CN103140847B (zh) | 调节原子存储器操作以防止拒绝服务的攻击 | |
CN104461758B (zh) | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 | |
US20140164738A1 (en) | Instruction categorization for runahead operation | |
TW200421178A (en) | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states | |
WO2014158603A1 (en) | System management interrupt handling for multi-core processors | |
CN116560729B (zh) | 一种多线程处理器的寄存器多级管理方法及系统 | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
WO2021091649A1 (en) | Super-thread processor | |
US20140129805A1 (en) | Execution pipeline power reduction | |
Perais et al. | Cost-effective speculative scheduling in high performance processors | |
US9389864B2 (en) | Data processing device and method, and processor unit of same | |
WO2008030708A1 (en) | Event handling for architectural events at high privilege levels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20190922 |
|
CF01 | Termination of patent right due to non-payment of annual fee |