CN115811408A - 用于处理器电路的检测器及检测方法 - Google Patents
用于处理器电路的检测器及检测方法 Download PDFInfo
- Publication number
- CN115811408A CN115811408A CN202111662894.7A CN202111662894A CN115811408A CN 115811408 A CN115811408 A CN 115811408A CN 202111662894 A CN202111662894 A CN 202111662894A CN 115811408 A CN115811408 A CN 115811408A
- Authority
- CN
- China
- Prior art keywords
- data
- branch prediction
- execution state
- processor circuit
- prediction 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
Abstract
一种用于处理器电路的检测器及检测方法。检测方法包含:判断数据高速缓存是否于分支预测执行状态下发送数据回填请求,以得到第一判断结果;判断数据回填请求要求的数据是否于分支预测执行状态下被写入寄存器且被运算,以得到第二判断结果;以及根据第一判断结果以及第二判断结果,判断处理器电路是否具有攻击漏洞。
Description
技术领域
本发明系关于一种用于检测器及检测方法,尤其是关于一种用于处理器电路的检测器及检测方法。
背景技术
习知的处理器架构中,引入乱序执行(out-of-order execution)及分支预测(branch prediction)的功能,以提升指令处理效能。惟具有乱序执行及分支预测功能的处理器存在资讯安全漏洞,容易被骇客攻击并窃取其中数据。其中,幽灵漏洞攻击(spectreattack)为相当常见的一种攻击模式。
为了避免受到幽灵漏洞攻击,现有的解决办法主要有:(1)使用软件解法为关掉分支预测功能;或(2)在有资讯安全疑虑的程式片段插入屏障指令(barrier instruction)。然而,这类解决办法将严重影响处理器执行效能。
发明内容
本发明的目的在于提供一种用于处理器电路的检测方法,处理器电路包含乱序执行(out-of-order execution)及分支预测(branch prediction)单元,检测方法包含:判断数据高速缓存是否于分支预测执行状态下发送数据回填请求,以得到第一判断结果;判断数据回填请求要求的数据是否于分支预测执行状态下被写入寄存器且被运算,以得到第二判断结果;以及根据第一判断结果以及第二判断结果,判断处理器电路是否具有攻击漏洞。
本发明另提供一种用于处理器电路的检测器,处理器电路包含乱序执行及分支预测单元,检测器包含第一检测模块、第二检测模块以及判断模块。第一检测模块用以判断处理器电路的数据高速缓存是否于分支预测执行状态下发送数据回填请求,以得到第一判断结果。第二检测模块用以判断数据回填请求要求的数据是否于分支预测执行状态下被写入处理器电路的寄存器且被运算,以得到第二判断结果。判断模块用以根据第一判断结果以及第二判断结果,判断处理器电路是否具有攻击漏洞。
附图说明
结合附图阅读以下详细描述会最佳地理解本发明的态样。应注意,各种特征可能未按比例绘制。事实上,可出于论述清楚起见,而任意地增大或减小各种特征的尺寸。
图1A为本发明的一些实施例的检测器的框图。
图1B为本发明的一些实施例的检测器的框图。
图2A为本发明的一些实施例的检测器的框图。
图2B为本发明的一些实施例的检测器的框图。
图3为本发明的一些实施例的检测方法的流程图。
图4为本发明的一些实施例的检测方法的流程图。
具体实施方式
在下文更详细地论述本发明的实施例。然而,应了解,本发明提供可在广泛多种特定情境中体现的许多适用的概念。所论述特定实施例仅为说明性的且并不限制本发明的范畴。
请参阅图1A,其系本发明一些实施例的一检测器1的框图。检测器1用于检测一处理器电路9是否具攻击漏洞(例如:幽灵攻击,spectre attack)。于一些实施例中,处理器电路9包含:一乱序执行(out-of-order execution)及分支预测(branch prediction)单元91、一寄存器93以及一数据高速缓存95。乱序执行及分支预测单元91用以将指令解码,并将解码的指令以乱序的方式执行。乱序执行及分支预测单元91具有分支预测的功能,并可记录分支预测状态,例如:分支预测执行状态(分支预测未解开状态)以及分支预测未执行状态(分支预测解开状态)。
于一些实施例中,检测器1包含一第一检测模块11、一第二检测模块13以及一判断模块15。具体而言,第一检测模块11用以判断处理器电路9的数据高速缓存95是否于分支预测执行状态下发送一数据回填请求(data refill request),以得到一第一判断结果。第二检测模块13用以判断数据回填请求要求的一数据是否于分支预测执行状态下被写入处理器电路9的寄存器93且被运算,以得到一第二判断结果。判断模块15用以根据第一判断结果以及第二判断结果,判断处理器电路9是否具有攻击漏洞。
请参阅图1B,于一些实施例中,当第一检测模块11判断处理器电路9的数据高速缓存95于分支预测执行状态下发送一数据回填请求950,则第二检测模块13进一步判断数据回填请求950要求的数据是否于分支预测执行状态下被写入处理器电路9的寄存器93且被运算。当第二检测模块13判断数据回填请求950要求的一数据952于分支预测执行状态下被写入处理器电路9的寄存器93且被运算,则判断模块15根据前述第一检测模块11以及第二检测模块13的检测结果,判断处理器电路9可能具有攻击漏洞。
于一些实施例中,当:(1)第一检测模块11判断处理器电路9的数据高速缓存95并未于分支预测执行状态下发送任何数据回填请求;(2)当第二检测模块13判断数据回填请求950要求的数据952并未于分支预测执行状态下被写入处理器电路9的寄存器93;或(3)当第二检测模块13判断数据952未于分支预测执行状态下被运算,则判断模块15根据前述第一检测模块11以及第二检测模块13的检测结果,判断处理器电路9可能不具有攻击漏洞。
需特别说明,于一些实施例中,前述的处理器电路以及检测器可包含硬件电路,处理器电路的元件(例如:乱序执行及分支预测单元、寄存器以及数据高速缓存)以及检测器的元件(第一检测模块、第二检测模块以及判断模块)间通过电性连结传递数据及信号。于一些实施例中,前述的处理器电路、检测器及元件间的信号及数据传递,亦可通过软件(例如:Electronic Design Automation,EDA)模拟。
请参阅图2A,其系本发明一些实施例的一检测器2的框图。检测器2用于检测一处理器电路8是否具攻击漏洞。于一些实施例中,处理器电路8包含:一乱序执行及分支预测单元81、一寄存器83、一数据高速缓存85、一存储器存取单元(load-store unit)87以及一运算单元89。乱序执行及分支预测单元81用以将指令解码,并将解码的指令以乱序的方式执行。乱序执行及分支预测单元81具有分支预测的功能,并可将分支预测状态(例如:分支预测执行状态以及分支预测未执行状态)记录于一重排序缓冲器(reorder buffer)811。数据高速缓存85具有一未命中状态保持寄存器(miss status holding register,MSHR)851。
于一些实施例中,检测器2包含一第一检测模块21、一第二检测模块23以及一判断模块25。具体而言,第一检测模块21用以判断处理器电路8的数据高速缓存85于分支预测执行状态下发生高速缓存未命中(cache miss)。由于高速缓存未命中,因此,可能产生数据回填请求。第一检测模块21用以判断数据高速缓存85的MSHR 851是否于分支预测执行状态下向一下层存储器7(例如:第二级高速缓存L2 cache、汇流排连接的存储器等)发送一数据回填请求,以得到一第一判断结果。
第二检测模块23用以判断存储器存取单元87是否于分支预测执行状态下将数据回填请求要求的一数据写入至寄存器83且判断运算单元89是否于分支预测执行状态下存取寄存器83的数据,以得到一第二判断结果。判断模块25用以根据第一判断结果以及第二判断结果,判断处理器电路8是否具有攻击漏洞。
请参阅图2B,于一些实施例中,当第一检测模块21判断处理器电路8的数据高速缓存85于分支预测执行状态下发生高速缓存未命中,并判断处理器电路8的数据高速缓存85于分支预测执行状态下发送一数据回填请求850,则第二检测模块23进一步判断数据回填请求850要求的数据是否于分支预测执行状态下被写入处理器电路8的寄存器83且被运算。
进一步来说,当第二检测模块23判断存储器存取单元87于分支预测执行状态下将数据回填请求850要求的一数据852自数据高速缓存85写入处理器电路8的寄存器83,且判断运算单元89于分支预测执行状态下存取寄存器83的数据852,则判断模块85根据前述第一检测模块21以及第二检测模块23的检测结果,判断处理器电路8可能具有攻击漏洞。
于一些实施例中,当:(1)第一检测模块21判断处理器电路8的数据高速缓存85并未于分支预测执行状态下发送任何数据回填请求;(2)当第二检测模块23判断数据回填请求850要求的数据852并未于分支预测执行状态下被存储器存取单元87写入处理器电路8的寄存器83;或(3)当第二检测模块23判断数据852未于分支预测执行状态下被运算单元89存取,则判断模块85根据前述第一检测模块21以及第二检测模块23的检测结果,判断处理器电路8可能不具有攻击漏洞。
于一些实施例中,处理器电路8的乱序执行及分支预测单元81除了重排序缓冲器811外,可进一步包含:指令拾取及分支预测(instruction fetch/branch prediction)单元、指令解码(instruction decode)单元以及寄存器重新命名、分派与指令退休(registerrenaming/dispatch/retire)单元。
需特别说明,前述各种操作是否于分支预测执行状态下执行,可在操作执行的时间点根据重排序缓冲器851的数据决定。另外,于一些实施例中,前述的处理器电路、检测器及下层存储器可包含硬件电路,处理器电路的元件(例如:乱序执行及分支预测单元、寄存器、数据高速缓存、存储器存取单元、运算单元)、检测器的元件(第一检测模块、第二检测模块以及判断模块)以及下层存储器间通过电性连结传递数据及信号。于一些实施例中,前述的处理器电路、检测器、下层存储器及元件间的信号及数据传递,亦可通过软件(例如:EDA)模拟。
本发明的一些实施例包含用于一处理器电路的检测方法,其流程图如图3所示。处理器电路包含一乱序执行及分支预测单元。这些实施例的检测方法由一检测器(如前述实施例的检测器)实施,方法的详细操作如下。首先,执行步骤S301,判断处理器电路的一数据高速缓存是否于一分支预测执行状态下发送一数据回填请求,以得到一第一判断结果。若第一判断结果为否,则执行步骤S304,判断处理器电路不具有攻击漏洞。若第一判断结果为是,则执行步骤S302,判断数据回填请求要求的一数据是否于分支预测执行状态下被写入一寄存器且被运算,以得到一第二判断结果。若第二判断结果否,则执行步骤S304。若第二判断结果为是,则执行步骤S303,判断处理器电路具有攻击漏洞。
本发明的一些实施例包含用于一处理器电路的检测方法,其流程图如图4所示。处理器电路包含一乱序执行及分支预测单元。这些实施例的检测方法由一检测器(如前述实施例的检测器)实施,方法的详细操作如下。首先,执行步骤S401,判断处理器电路的一数据高速缓存是否于一分支预测执行状态下发生高速缓存未命中。若否,重复执行步骤S401。
若步骤S401结果为是,执行步骤S402,判断数据高速缓存的一MSHR是否于分支预测执行状态下向一下层存储器发送一数据回填请求,以得到一第一判断结果。若第一判断结果为否,执行步骤S406,判断处理器电路不具攻击漏洞。若第一判断结果为是,执行步骤S403,判断处理器电路的一存储器存取单元是否于分支预测执行状态下将数据回填请求要求的数据自数据高速缓存写入寄存器。若否,执行步骤S406,判断处理器电路不具攻击漏洞。
若步骤S403结果为是,执行步骤S404,判断处理器电路的一运算单元是否于分支预测执行状态下存取寄存器的数据,以得到一第二判断结果。若第二判断结果为否,执行步骤S406,判断处理器电路不具攻击漏洞。若第二判断结果为是,则执行步骤S405,判断处理器电路具有攻击漏洞。
综上所述,本发明提供的用于处理器电路的检测器及检测方法,可通过检测步骤判断特定的攻击操作模式(例如:幽灵漏洞攻击模式)是否可能存在,俾利后续调整修改处理器电路。
上文的叙述简要地提出了本发明某些实施例的特征,而使得本发明所属技术领域包含通常知识者能够更全面地理解本发明内容的多种态样。本发明所属技术领域包含通常知识者当可明了,其可轻易地利用本发明内容作为基础,来设计或更动其他制程与结构,以实现与此处该的实施方式相同的目的和/或达到相同的优点。本发明所属技术领域包含通常知识者应当明白,这些均等的实施方式仍属于本发明内容的精神与范围,且其可进行各种变更、替代与更动,而不会悖离本发明内容的精神与范围。
【符号说明】
1:检测器
11:第一检测模块
13:第二检测模块
15:判断模块
2:检测器
21:第一检测模块
23:第二检测模块
25:判断模块
7:下层存储器
8:处理器电路
81:乱序执行及分支预测单元
811:重排序缓冲器
83:寄存器
85:数据高速缓存
850:数据回填请求
851:MHSR
852:数据
87:存储器存取单元
89:运算单元
9:处理器电路
91:乱序执行及分支预测单元
93:寄存器
95:数据高速缓存
950:数据回填请求
952:数据
S301~S304:步骤
S401~S406:步骤。
Claims (10)
1.一种用于一处理器电路的检测方法,该处理器电路包含一乱序执行及分支预测单元,该检测方法包含:
判断一数据高速缓存是否于一分支预测执行状态下发送一数据回填请求,以得到一第一判断结果;
判断该数据回填请求要求的一数据是否于该分支预测执行状态下被写入一寄存器且被运算,以得到一第二判断结果;以及
根据该第一判断结果以及该第二判断结果,判断该处理器电路是否具有攻击漏洞。
2.根据权利要求1所述的检测方法,其中,当该第一判断结果为该数据高速缓存于该分支预测执行状态下发送该数据回填请求,以及该第二判断结果为该数据于该分支预测执行状态下被写入该寄存器且被运算时,判断该处理器电路具有攻击漏洞。
3.根据权利要求1所述的检测方法,还包含:
判断该数据高速缓存于该分支预测执行状态下发生高速缓存未命中。
4.根据权利要求3所述的检测方法,其中,判断该数据高速缓存是否于该分支预测执行状态下发送该数据回填请求的步骤还包含:
判断该数据高速缓存的一未命中状态保持寄存器是否于该分支预测执行状态下发送该数据回填请求,以得到该第一判断结果。
5.一种用于一处理器电路的检测器,该处理器电路包含一乱序执行及分支预测单元,该检测器包含:
一第一检测模块,用以:
判断该处理器电路的一数据高速缓存是否于一分支预测执行状态下发送一数据回填请求,以得到一第一判断结果;
一第二检测模块,用以:
判断该数据回填请求要求的一数据是否于该分支预测执行状态下被写入该处理器电路的一寄存器且被运算,以得到一第二判断结果;以及
一判断模块,用以:
根据该第一判断结果以及该第二判断结果,判断该处理器电路是否具有攻击漏洞。
6.根据权利要求5所述的检测器,其中,当该第一判断结果为该数据高速缓存于该分支预测执行状态下发送该数据回填请求,以及该第二判断结果为该数据于该分支预测执行状态下被写入该寄存器且被运算时,该判断模块判断该处理器电路具有攻击漏洞。
7.根据权利要求5所述的检测器,其中,该第一检测模块还用以:
判断该数据高速缓存于该分支预测执行状态下发生高速缓存未命中。
8.根据权利要求7所述的检测器,其中,该第一检测模块还用以:
判断该数据高速缓存的一未命中状态保持寄存器是否于该分支预测执行状态下发送该数据回填请求,以得到该第一判断结果。
9.根据权利要求8所述的检测器,其中,该第一检测模块还用以:
判断该数据高速缓存的该未命中状态保持寄存器是否于该分支预测执行状态下向一下层存储器发送该数据回填请求,以得到该第一判断结果。
10.根据权利要求5所述的检测器,其中,该第二检测模块还用以:
判断该数据回填请求要求的该数据是否于该分支预测执行状态下自该数据高速缓存写入该寄存器;以及
判断该寄存器的该数据是否于该分支预测执行状态下被运算,以得到该第二判断结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163244271P | 2021-09-15 | 2021-09-15 | |
US63/244,271 | 2021-09-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115811408A true CN115811408A (zh) | 2023-03-17 |
Family
ID=85482147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111662894.7A Pending CN115811408A (zh) | 2021-09-15 | 2021-12-30 | 用于处理器电路的检测器及检测方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115811408A (zh) |
TW (1) | TWI789183B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI864746B (zh) * | 2023-05-11 | 2024-12-01 | 瑞昱半導體股份有限公司 | 用於亂序執行處理器電路之檢測方法及相關檢測裝置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596792B (zh) * | 2020-12-17 | 2022-10-28 | 海光信息技术股份有限公司 | 分支预测方法、装置、介质及设备 |
CN113127880A (zh) * | 2021-03-25 | 2021-07-16 | 华东师范大学 | 一种一级数据缓存中推测执行侧信道漏洞检测方法 |
CN113221119B (zh) * | 2021-05-13 | 2024-03-29 | 中金金融认证中心有限公司 | 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 |
-
2021
- 2021-12-27 TW TW110148982A patent/TWI789183B/zh active
- 2021-12-30 CN CN202111662894.7A patent/CN115811408A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI789183B (zh) | 2023-01-01 |
TW202314485A (zh) | 2023-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9009414B2 (en) | Prefetch address hit prediction to reduce memory access latency | |
US8713294B2 (en) | Heap/stack guard pages using a wakeup unit | |
US8578138B2 (en) | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode | |
US20090300294A1 (en) | Utilization of a store buffer for error recovery on a store allocation cache miss | |
CN108427576A (zh) | 一种免受Spectre攻击的高性能推测执行算法 | |
US11783032B2 (en) | Systems and methods for protecting cache and main-memory from flush-based attacks | |
JP2008112403A (ja) | データ転送装置、データ転送方法、及びコンピュータ装置 | |
US8352646B2 (en) | Direct access to cache memory | |
CN114860329A (zh) | 动态一致性偏置配置引擎及方法 | |
US8880847B2 (en) | Multistream prefetch buffer | |
CN115811408A (zh) | 用于处理器电路的检测器及检测方法 | |
CN118140214A (zh) | 用于重新引用间隔预测高速缓存替换策略的重新引用指示符 | |
US20080114971A1 (en) | Branch history table for debug | |
KR100532417B1 (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
CN112612728A (zh) | 缓存管理方法及装置、设备 | |
US20230078985A1 (en) | Checker and checking method for prossor circuit | |
US7496899B2 (en) | Preventing loss of traced information in a data processing apparatus | |
US9558119B2 (en) | Main memory operations in a symmetric multiprocessing computer | |
TWI864746B (zh) | 用於亂序執行處理器電路之檢測方法及相關檢測裝置 | |
EP1104566A1 (en) | Cache-design selection for a computer system using a model with a seed cache to generate a trace | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
CN109190383B (zh) | 访问指令的处理方法、装置及设备 | |
Saileshwar | Architecting Secure Processor Caches | |
CN116088942A (zh) | 指令执行方法、装置、芯片和计算机设备 | |
CN119004447A (zh) | 用于乱序执行处理器电路的检测方法及相关检测装置 |
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 |