TWI789183B - 用於處理器電路之檢測器及檢測方法 - Google Patents
用於處理器電路之檢測器及檢測方法 Download PDFInfo
- Publication number
- TWI789183B TWI789183B TW110148982A TW110148982A TWI789183B TW I789183 B TWI789183 B TW I789183B TW 110148982 A TW110148982 A TW 110148982A TW 110148982 A TW110148982 A TW 110148982A TW I789183 B TWI789183 B TW I789183B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- branch prediction
- processor circuit
- execution state
- judging
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
Abstract
一種用於處理器電路之檢測器及檢測方法。檢測方法包含:判斷資料快取是否於分支預測執行狀態下發送資料回填請求,以得到第一判斷結果;判斷資料回填請求要求之資料是否於分支預測執行狀態下被寫入暫存器且被運算,以得到第二判斷結果;以及根據第一判斷結果以及第二判斷結果,判斷處理器電路是否具有攻擊漏洞。
Description
本發明係關於一種用於檢測器及檢測方法,尤其是關於一種用於處理器電路之檢測器及檢測方法。
習知之處理器架構中,引入亂序執行(out-of-order execution)及分支預測(branch prediction)之功能,以提升指令處理效能。惟具有亂序執行及分支預測功能之處理器存在資訊安全漏洞,容易被駭客攻擊並竊取其中資料。其中,幽靈漏洞攻擊(spectre attack)為相當常見之一種攻擊模式。
為了避免受到幽靈漏洞攻擊,現有之解決辦法主要有:(1)使用軟體解法為關掉分支預測功能;或(2)在有資訊安全疑慮之程式片段插入屏障指令(barrier instruction)。然而,這類解決辦法將嚴重影響處理器執行效能。
本發明的目的在於提供一種用於處理器電路之檢測方法,處理器電路包含亂序執行(out-of-order execution)及分支預測(branch prediction)單元,檢測方法包含:判斷資料快取是否於分支預測執行狀
態下發送資料回填請求,以得到第一判斷結果;判斷資料回填請求要求之資料是否於分支預測執行狀態下被寫入暫存器且被運算,以得到第二判斷結果;以及根據第一判斷結果以及第二判斷結果,判斷處理器電路是否具有攻擊漏洞。
本發明另提供一種用於處理器電路之檢測器,處理器電路包含亂序執行及分支預測單元,檢測器包含第一檢測模組、第二檢測模組以及判斷模組。第一檢測模組用以判斷處理器電路之資料快取是否於分支預測執行狀態下發送資料回填請求,以得到第一判斷結果。第二檢測模組用以判斷資料回填請求要求之資料是否於分支預測執行狀態下被寫入處理器電路之暫存器且被運算,以得到第二判斷結果。判斷模組用以根據第一判斷結果以及第二判斷結果,判斷處理器電路是否具有攻擊漏洞。
1:檢測器
11:第一檢測模組
13:第二檢測模組
15:判斷模組
2:檢測器
21:第一檢測模組
23:第二檢測模組
25:判斷模組
7:下層記憶體
8:處理器電路
81:亂序執行及分支預測單元
811:重排序緩衝器
83:暫存器
85:資料快取
850:資料回填請求
851:MSHR
852:資料
87:記憶體存取單元
89:運算單元
9:處理器電路
91:亂序執行及分支預測單元
93:暫存器
95:資料快取
950:資料回填請求
952:資料
S301~S304:步驟
S401~S406:步驟
結合附圖閱讀以下詳細描述會最佳地理解本發明之態樣。應注意,各種特徵可能未按比例繪製。事實上,可出於論述清楚起見,而任意地增大或減小各種特徵之尺寸。
圖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根據前述第一檢測模組81以及
第二檢測模組83之檢測結果,判斷處理器電路8可能具有攻擊漏洞。
於一些實施例中,當:(1)第一檢測模組21判斷處理器電路8之資料快取85並未於分支預測執行狀態下發送任何資料回填請求;(2)當第二檢測模組23判斷資料回填請求850要求之資料852並未於分支預測執行狀態下被記憶體存取單元87寫入處理器電路8之暫存器83;或(3)當第二檢測模組23判斷資料852未於分支預測執行狀態下被運算單元89存取,則判斷模組85根據前述第一檢測模組81以及第二檢測模組83之檢測結果,判斷處理器電路8可能不具有攻擊漏洞。
於一些實施例中,處理器電路8之亂序執行及分支預測單元81除了重排序緩衝器811外,可進一步包含:指令擷取及分支預測(instruction fetch/branch prediction)單元、指令解碼(instruction decode)單元以及暫存器重新命名、分派與指令退休(register renaming/dispatch/retire)單元。
需特別說明,前述各種操作是否於分支預測執行狀態下執行,可在操作執行之時間點根據重排序緩衝器851之資料決定。另外,於一些實施例中,前述之處理器電路、檢測器及下層記憶體可包含硬體電路,處理器電路之元件(例如:亂序執行及分支預測單元、暫存器、資料快取、記憶體存取單元、運算單元)、檢測器之元件(第一檢測模組、第二檢測模組以及判斷模組)以及下層記憶體間透過電性連結傳遞資料及訊號。於一些實施例中,前述之處理器電路、檢測器、下層記憶體及元件間之訊號及資料傳遞,亦可透過軟體(例如:EDA)模擬。
本發明之一些實施例包含用於一處理器電路之檢測方法,其流程圖如圖3所示。處理器電路包含一亂序執行及分支預測單元。這些
實施例之檢測方法由一檢測器(如前述實施例之檢測器)實施,方法之詳細操作如下。首先,執行步驟S301,判斷處理器電路之一資料快取是否於一分支預測執行狀態下發送一資料回填請求,以得到一第一判斷結果。若第一判斷結果為否,則執行步驟S304,判斷處理器電路不具有攻擊漏洞。若第一判斷結果為是,則執行步驟S302,判斷資料回填請求要求之一資料是否於分支預測執行狀態下被寫入一暫存器且被運算,以得到一第二判斷結果。若第二判斷結果否,則執行步驟S304。若第二判斷結果為是,則執行步驟S303,判斷處理器電路具有攻擊漏洞。
本發明之一些實施例包含用於一處理器電路之檢測方法,其流程圖如圖4所示。處理器電路包含一亂序執行及分支預測單元。這些實施例之檢測方法由一檢測器(如前述實施例之檢測器)實施,方法之詳細操作如下。首先,執行步驟S401,判斷處理器電路之一資料快取是否於一分支預測執行狀態下發生快取未命中。若否,重複執行步驟S401。
若步驟S401結果為是,執行步驟S402,判斷資料快取之一MSHR是否於分支預測執行狀態下向一下層記憶體發送一資料回填請求,以得到一第一判斷結果。若第一判斷結果為否,執行步驟S406,判斷處理器電路不具攻擊漏洞。若第一判斷結果為是,執行步驟S403,判斷處理器電路之一記憶體存取單元是否於分支預測執行狀態下將資料回填請求要求之資料自資料快取寫入暫存器。若否,執行步驟S406,判斷處理器電路不具攻擊漏洞。
若步驟S403結果為是,執行步驟S404,判斷處理器電路之一運算單元是否於分支預測執行狀態下存取暫存器之資料,以得到一第二判斷結果。若第二判斷結果為否,執行步驟S406,判斷處理器電路不具
攻擊漏洞。若第二判斷結果為是,則執行步驟S405,判斷處理器電路具有攻擊漏洞。
綜上所述,本發明提供之用於處理器電路之檢測器及檢測方法,可透過檢測步驟判斷特定之攻擊操作模式(例如:幽靈漏洞攻擊模式)是否可能存在,俾利後續調整修改處理器電路。
上文的敘述簡要地提出了本發明某些實施例之特徵,而使得本發明所屬技術領域包含通常知識者能夠更全面地理解本發明內容的多種態樣。本發明所屬技術領域包含通常知識者當可明瞭,其可輕易地利用本發明內容作為基礎,來設計或更動其他製程與結構,以實現與此處該之實施方式相同的目的和/或達到相同的優點。本發明所屬技術領域包含通常知識者應當明白,這些均等的實施方式仍屬於本發明內容之精神與範圍,且其可進行各種變更、替代與更動,而不會悖離本發明內容之精神與範圍。
2:檢測器
21:第一檢測模組
23:第二檢測模組
25:判斷模組
7:下層記憶體
8:處理器電路
81:亂序執行及分支預測單元
811:重排序緩衝器
83:暫存器
85:資料快取
850:資料回填請求
851:MSHR
852:資料
87:記憶體存取單元
89:運算單元
Claims (9)
- 一種用於一處理器電路之檢測方法,該處理器電路包含一亂序執行(out-of-order execution)及分支預測(branch prediction)單元以及一運算單元,該檢測方法包含:判斷一資料快取是否於一分支預測執行狀態下發送一資料回填請求,以得到一第一判斷結果,其中,該分支預測執行狀態係由該亂序執行及分支預測單元記錄,該資料回填請求係用於向該資料快取之一下層記憶體發送;判斷該資料回填請求要求之一資料是否於該分支預測執行狀態下被寫入一暫存器且被該運算單元運算,以得到一第二判斷結果;以及根據該第一判斷結果以及該第二判斷結果,判斷該處理器電路是否具有攻擊漏洞。
- 如請求項1所述之檢測方法,其中,當該第一判斷結果係該資料快取於該分支預測執行狀態下發送該資料回填請求,以及該第二判斷結果係該資料於該分支預測執行狀態下被寫入該暫存器且被運算時,判斷該處理器電路具有攻擊漏洞。
- 如請求項1所述之檢測方法,更包含:判斷該資料快取於該分支預測執行狀態下發生快取未命中(cache miss)。
- 如請求項3所述之檢測方法,其中,判斷該資料快取是否於該分支預測執行狀態下發送該資料回填請求之步驟更包含:判斷該資料快取之一未命中狀態保持暫存器(miss status holding register,MSHR)是否於該分支預測執行狀態下發送該資料回填請求,以得到該第一判斷結果。
- 一種用於一處理器電路之檢測器,該處理器電路包含一亂序執行(out-of-order execution)及分支預測(branch prediction)單元以及一運算單元,該檢測器包含:一第一檢測模組,用以:判斷該處理器電路之一資料快取是否於一分支預測執行狀態下發送一資料回填請求,以得到一第一判斷結果,其中,該分支預測執行狀態係由該亂序執行及分支預測單元記錄,該資料回填請求係用於向該資料快取之一下層記憶體發送;一第二檢測模組,用以:判斷該資料回填請求要求之一資料是否於該分支預測執行狀態下被寫入該處理器電路之一暫存器且被該運算單元運算,以得到一第二判斷結果;以及一判斷模組,用以:根據該第一判斷結果以及該第二判斷結果,判斷該處理器電路是否具有攻擊漏洞。
- 如請求項5所述之檢測器,其中,當該第一判斷結果係該資料快取於該分支預測執行狀態下發送該資料回填請求,以及該第二判斷結果係該資料於該分支預測執行狀態下被寫入該暫存器且被運算時,該判斷模組判斷該處理器電路具有攻擊漏洞。
- 如請求項5所述之檢測器,其中,該第一檢測模組更用以:判斷該資料快取於該分支預測執行狀態下發生快取未命中(cache miss)。
- 如請求項7所述之檢測器,其中,該第一檢測模組更用以:判斷該資料快取之一未命中狀態保持暫存器(miss status holding register,MSHR)是否於該分支預測執行狀態下向該下層記憶體發送該資料回填請求,以得到該第一判斷結果。
- 如請求項5所述之檢測器,其中,該第二檢測模組更用以:判斷該資料回填請求要求之該資料是否於該分支預測執行狀態下自該資料快取寫入該暫存器;以及判斷該暫存器之該資料是否於該分支預測執行狀態下被運算,以得到該第二判斷結果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/844,671 US20230078985A1 (en) | 2021-09-15 | 2022-06-20 | Checker and checking method for prossor circuit |
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 (2)
Publication Number | Publication Date |
---|---|
TWI789183B true TWI789183B (zh) | 2023-01-01 |
TW202314485A TW202314485A (zh) | 2023-04-01 |
Family
ID=85482147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110148982A TWI789183B (zh) | 2021-09-15 | 2021-12-27 | 用於處理器電路之檢測器及檢測方法 |
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 | 瑞昱半導體股份有限公司 | 用於亂序執行處理器電路之檢測方法及相關檢測裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596792A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 分支预测方法、装置、介质及设备 |
CN113127880A (zh) * | 2021-03-25 | 2021-07-16 | 华东师范大学 | 一种一级数据缓存中推测执行侧信道漏洞检测方法 |
CN113221119A (zh) * | 2021-05-13 | 2021-08-06 | 中金金融认证中心有限公司 | 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 |
-
2021
- 2021-12-27 TW TW110148982A patent/TWI789183B/zh active
- 2021-12-30 CN CN202111662894.7A patent/CN115811408A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596792A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 分支预测方法、装置、介质及设备 |
CN113127880A (zh) * | 2021-03-25 | 2021-07-16 | 华东师范大学 | 一种一级数据缓存中推测执行侧信道漏洞检测方法 |
CN113221119A (zh) * | 2021-05-13 | 2021-08-06 | 中金金融认证中心有限公司 | 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115811408A (zh) | 2023-03-17 |
TW202314485A (zh) | 2023-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lipp et al. | Meltdown | |
CN108427576A (zh) | 一种免受Spectre攻击的高性能推测执行算法 | |
US7958319B2 (en) | Hardware acceleration for a software transactional memory system | |
US12189479B2 (en) | Apparatus and method for detecting and recovering from data fetch errors | |
KR102664370B1 (ko) | 민감성으로서 명령들의 동적 지정 | |
TWI476580B (zh) | 偵測指令提取錯誤以及從指令提取錯誤復原的方法、裝置及電腦系統 | |
KR20170039212A (ko) | 커널 모듈을 위한 멀티코어 메모리 데이터 레코더 | |
TWI789183B (zh) | 用於處理器電路之檢測器及檢測方法 | |
JP2003511756A (ja) | コンピュータにおいて故障分離および診断を改善する機構 | |
US8549235B2 (en) | Method for detecting address match in a deeply pipelined processor design | |
US20050149781A1 (en) | System and method for soft error handling | |
US8495452B2 (en) | Handling corrupted background data in an out of order execution environment | |
CN115380273A (zh) | 处理器流水线中的间接跳转的提取级处置 | |
US20230078985A1 (en) | Checker and checking method for prossor circuit | |
TWI864746B (zh) | 用於亂序執行處理器電路之檢測方法及相關檢測裝置 | |
CN113392407A (zh) | 一种面向高性能处理器的防Spectre攻击的架构优化方法 | |
US9558119B2 (en) | Main memory operations in a symmetric multiprocessing computer | |
Chen et al. | Prime+ Reset: Introducing A Novel Cross-World Covert-Channel Through Comprehensive Security Analysis on ARM TrustZone | |
CN119051838B (zh) | 侧信道攻击的防护方法、装置、存储介质及电子设备 | |
CN111274573B (zh) | 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 | |
US20240012948A1 (en) | Efficient processing of masked memory accesses | |
CN111241551A (zh) | 基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法 | |
CN116088942A (zh) | 指令执行方法、装置、芯片和计算机设备 | |
TW202411864A (zh) | 減輕基於處理器的設備中的指標認證碼(pac)攻擊 | |
CN117093435A (zh) | 一种处理器验证方法和装置 |