[go: up one dir, main page]

TWI864746B - 用於亂序執行處理器電路之檢測方法及相關檢測裝置 - Google Patents

用於亂序執行處理器電路之檢測方法及相關檢測裝置 Download PDF

Info

Publication number
TWI864746B
TWI864746B TW112117495A TW112117495A TWI864746B TW I864746 B TWI864746 B TW I864746B TW 112117495 A TW112117495 A TW 112117495A TW 112117495 A TW112117495 A TW 112117495A TW I864746 B TWI864746 B TW I864746B
Authority
TW
Taiwan
Prior art keywords
order execution
processor circuit
execution processor
confirming
data
Prior art date
Application number
TW112117495A
Other languages
English (en)
Other versions
TW202445395A (zh
Inventor
陳盈如
林健湘
林恩祥
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW112117495A priority Critical patent/TWI864746B/zh
Priority to US18/527,383 priority patent/US20240378060A1/en
Publication of TW202445395A publication Critical patent/TW202445395A/zh
Application granted granted Critical
Publication of TWI864746B publication Critical patent/TWI864746B/zh

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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

一種用於一亂序執行處理器電路之檢測方法,包含有確認該亂序執行處理器電路之一權限檢查失敗所觸發之一中斷提交之前,該亂序執行處理器電路之一資料快取單元未發送資料請求以回填快取;以及確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之一記憶體存取單元沒有被讀取一機密資料,並且該機密資料未被該亂序執行處理器電路之一運算單元使用。

Description

用於亂序執行處理器電路之檢測方法及相關檢測裝置
本發明係指一種用於亂序執行處理器電路之檢測方法及相關檢測裝置,尤指一種應用正規方法全面性檢測亂序執行處理器電路之檢測方法及其相關檢測裝置。
熔毀(meltdown)漏洞是利用現有處理器的亂序執行(out-of-order execution)和系統權限檢查(permission check)所存在的硬體漏洞進行攻擊,再利用旁道(side channel)將機密資料洩漏出去。
如第1圖所示,第1圖為現有的熔毀攻擊方式之示意圖。第1圖中的array[idx]代表了屬於核心空間(kernel space)不能被使用者空間(user space)讀取的記憶體位址,即array[idx]的內容是不該被讀取的機密資料。在用戶進程(user process)讀取array[idx]位址時會進行讀取資料以及權限檢查。由於用戶空間無法讀取核心空間的資料,上述的權限檢查會失敗進而觸發中斷。
然而,現有的處理器於進行亂序執行時,權限檢查完觸發中斷 (exception)的時間點可能比讀取資料晚,在此情形下,熔毀攻擊可透過探針陣列(probe array)先讀取機密資料(即array[idx]),透過探針陣列的讀取時間差異得到機密資料的位址資訊。現有的解決方式可使用一軟體核心頁表隔離,但此法會影響系統效能,因此現有技術有改進的必要。
因此,本發明提供一種用於亂序執行處理器電路之檢測方法及相關檢測裝置,以確認支援亂序執行處理器之電路能有效防範熔毀漏洞攻擊。
本發明實施例揭露一種用於一亂序執行處理器電路之檢測方法,包含有確認該亂序執行處理器電路之一權限檢查失敗所觸發之一中斷提交之前,該亂序執行處理器電路之一資料快取單元未發送資料請求以回填快取;以及確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之一記憶體存取單元沒有被讀取一機密資料,並且該機密資料未被該亂序執行處理器電路之一運算單元使用。
本發明實施例另揭露一種亂序執行處理器電路之檢測裝置,包含有一有限狀態轉換模組,用來將一待驗電路轉換為至少一有限狀態圖;一邏輯表述式轉換模組,用來將至少一驗證屬性轉換為至少一邏輯表述式;以及一模型驗證電路,用來對該至少一有限狀態圖以及該至少一邏輯表述式執行一模型驗證程序,以決定該待驗電路是否符合該至少一驗證屬性;其中該驗證屬性包含對應於該亂序執行處理器電路之檢測方法,其中該亂序執行處理器電路之檢測方法包含有確認該亂序執行處理器電路之一權限檢查失敗所觸發之一中斷提交之前,該亂序執行處理器電路之一資料快取單元未發送資料請求以回填快取; 以及確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之一記憶體存取單元沒有被讀取一機密資料,並且該機密資料未被該亂序執行處理器電路之一運算單元使用。
202:指令擷取/分支預測單元
204:指令解碼單元
206:暫存器重新命名/分派/指令退休單元
208:重排序緩衝器
210:物理暫存器單元
212:記憶體存取單元
214:運算單元
216:資料快取單元
218:下一級記憶體階層
50:正規模型檢測裝置
502:有限狀態轉換模組
504:邏輯表述式轉換模組
506:模型驗證電路
60:驗證流程
602-612:步驟
CPU:處理器
MSHR:未命中狀態維持暫存器
第1圖為現有的一熔毀攻擊方式之示意圖。
第2圖為現有支援亂序執行之一處理器之架構式意圖。
第3圖及第4圖為本發明實施例之一驗證屬性之示意圖。
第5圖為本發明實施例之一正規模型檢測裝置之示意圖。
第6圖為本發明實施例之一驗證流程之示意圖。
請參考第2圖,第2圖為現有支援亂序執行之一處理器CPU之架構式意圖。處理器CPU包含一指令擷取/分支預測(instruction fetch/branch prediction)單元202、一指令解碼(instruction decode)單元204、一暫存器重新命名/分派/指令退休(register renaming/dispatch/retire)單元206、一重排序緩衝器(reorder buffer)208、一物理暫存器(physical register file)單元210、一記憶體存取(load-store)單元212、一運算(calculation)單元214、一資料快取(D cache)單元216以及下一級記憶體階層218。在一實施例中,暫存器重新命名/分派/指令退休單元206可能有不同的實現細節,例如包含指令快取(I cache)等。
亂序執行處理器CPU的資料快取單元216會檢查是否命中快取(cache hit),如果檢查結果為「是」(即快取命中),則直接將命中快取的結果送回記憶 體存取單元212;當快取不命中(cache miss)時,資料快取單元216另包含一未命中狀態維持暫存器(miss status holding/handling register,MSHR),用來記錄快取不命中,並往下一級記憶體階層218發送資料請求以回填(refill)快取。在一範例中,下一級記憶體階層218可以是一L2快取記憶體或一匯流排(bus)。
由於現有處理器於進行亂序執行時,權限檢查(permission check)完觸發中斷的時間點可能比讀取資料晚,使得機密資料可能會被先讀取,現有的熔毀攻擊可利用上述時間點的差異,讀取機密資料。
為了確認在權限檢查觸發中斷提交之前,記憶體存取單元212的機密資料是否被運算單元214使用,本發明實施例根據處理器CPU的下列事件建立驗證屬性:1.記憶體存取單元212將機密資料寫回物理暫存器210;2.機密資料被運算單元214所使用;3.重排序緩衝器208確認1和2是否處於權限檢查觸發中斷提交之前。
請參考第3圖,第3圖為本發明實施例之驗證屬性之示意圖。由第3圖可知,透過確認記憶體存取單元212是否將機密資料寫回物理暫存器210、確認機密資料是否被運算單元214使用,以及由重排序緩衝器208匡列出要偵測的機密資料是否被運算單元214使用的檢查區間,以確認驗證屬性1和2是否處於權限檢查之中斷提交之前,並且於確認在權限檢查觸發中斷提交之前,記憶體存取單元212的機密資料是否被運算單元214使用,進而檢測處理器CPU的驗證屬性是否恆成立。
值得注意的是,在第3圖的範例中,上述驗證屬性1、2、3沒有順序關係,符合上述驗證屬性1-3的條件時,即代表記憶體存取單元212的機密資料被運算單元214使用。
另一方面,為了確認處理器CPU處於權限檢查觸發中斷提交之前,資料快取單元216沒有發送機密資料請求以回填快取,本發明實施例根據處理器CPU的下列事件建立驗證屬性:1.快取不命中;2.當快取不命中時,是否會向下一級記憶體階層218發出資料請求以回填快取;3.重排序緩衝器208確認1和2是否處於權限檢查觸發中斷提交之前。
請參考第4圖,第4圖為本發明實施例之另一驗證屬性之示意圖。由第4圖可知,透過確認資料快取單元216沒有任何快取不命中、確認資料快取單元216是否向下一級記憶體階層218發出一回填快取請求(refill request),以及由重排序緩衝器208匡列出要偵測的快取不命中的檢查區間,以確認驗證屬性1和2是否處於權限檢查之中斷提交之前,並且於確認處理器CPU處於權限檢查觸發中斷提交之前,資料快取單元216沒有發送機密資料請求以回填快取,進而檢測處理器CPU的驗證屬性是否恆成立。
值得注意的是,在第4圖的範例中,驗證屬性1、2、3沒有順序關係,符合上述驗證屬性1-3的條件時,即代表資料快取單元216發送機密資料請求以回填快取。
請參考第5圖,第5圖為本發明實施例之一正規模型檢測裝置50之示意圖。正規模型檢測裝置50包含一有限狀態轉換模組502、一邏輯表述式轉換模組504以及一模型驗證(model checking)電路506。正規模型檢測裝置50係採用數學推論證明的正規方法,有限狀態轉換模組502用來將一待驗電路轉換為至少一有限狀態圖(finite state graph)以及邏輯閘(logic gate),邏輯表述式轉換模組504用來將至少一驗證屬性轉換為至少一邏輯表述式,例如將第3圖以及第4圖中的驗證屬性轉換為對應的斷言(Assertion)。模型驗證電路506用來確認有限狀態圖與邏輯表述式是否屬性恆成立,模型驗證電路506可以是使用電子設計自動化(Electronic Design Automation,EDA)的一正規模型驗證器,將待驗電路與斷言的邏輯表述式進行比較,以數學證明兩者模型是否完全相等,若相等,表示待驗電路符合驗證屬性;相反地,表示待驗電路不符合驗證屬性。
如此一來,當模型驗證電路506判斷驗證屬性可在待驗電路上被證明恆成立,則通過驗證並結束流程;相反地,當模型驗證電路506找出反例,則使用者可據此反例修改待驗電路。
因此,當支援亂序執行的處理器(即待驗電路)無法通過對應於第3圖或第4圖的驗證屬性的檢查時,即可被視為未能防範熔毀漏洞的攻擊。
上述關於正規模型檢測裝置50的操作方式可以歸納為一驗證流程60。驗證流程60包含下列步驟:步驟602:將待驗電路以及驗證屬性輸入至正規模型檢測裝置50;步驟604:有限狀態轉換模組502將待驗電路轉換為至少一有限狀態圖,邏輯表述式轉換模組504將驗證屬性轉換為邏輯表述式; 步驟606:模型驗證電路506確認有限狀態圖以及邏輯表述式是否屬性恆成立,若是,執行步驟608,相反地,執行步驟610;步驟608:待驗電路通過驗證;步驟610:找出反例;步驟612:修改待驗電路。
對於本技術領域具通常知識者而言,功能方塊可由電路(不論是專用電路,或是於一或多個處理器及編碼指令控制下操作的通用電路)實現,其一般而言包含用以相應於此處描述的功能及操作對電氣迴路的操作進行控制之電晶體或其他電路元件。進一步地理解,一般而言電路元件的具體結構與互連,可由編譯器(compiler),例如暫存器傳遞語言(Register Transfer Language,RTL)編譯器決定。暫存器傳遞語言編譯器對與組合語言代碼(assembly language code)相當相似的指令碼(script)進行操作,將指令碼編譯為用於佈局或製作最終電路的形式。
值得注意的是,上述實施例的處理器的架構、驗整屬性的邏輯表述式皆可根據不同需求而改變,皆屬於本發明的範疇。
綜上所述,本發明揭露一種用於亂序執行處理器電路之檢測方法及其相關檢測裝置,以正規方法驗證相關電路,以確認支援亂序執行處理器之電路能有效防範熔毀漏洞攻擊。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
202:指令擷取/分支預測單元
204:指令解碼單元
206:暫存器重新命名/分派/指令退休單元
208:重排序緩衝器
210:物理暫存器單元
212:記憶體存取單元
214:運算單元
216:資料快取單元
218:下一級記憶體階層
CPU:處理器
MSHR:未命中狀態維持暫存器

Claims (9)

  1. 一種用於一亂序執行處理器電路之檢測方法,包含有:確認該亂序執行處理器電路之一權限檢查失敗所觸發之一中斷提交之前,該亂序執行處理器電路之一資料快取單元未發送資料請求以回填快取;以及確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之一記憶體存取單元沒有被讀取一機密資料,並且該機密資料未被該亂序執行處理器電路之一運算單元使用;其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該資料快取單元未發送資料請求以回填快取之步驟包含:確認該權限檢查失敗沒有在該亂序執行處理器之一重排序緩衝器提交該機密資料之一指令並觸發中斷之前。
  2. 如請求項1所述之檢測方法,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該記憶體存取單元沒有被讀取該機密資料,並且該機密資料未被該亂序執行處理器電路之該運算單元使用之步驟包含:確認該亂序執行處理器電路之該記憶體存取單元是否將該機密資料寫回該亂序執行處理器電路之一物理暫存器。
  3. 如請求項1所述之檢測方法,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該記憶體存取單元沒有被讀取該機密資料,並且該機密資料未被該亂序執行處理器 電路之該運算單元使用之步驟包含:確認該機密資料是否被該亂序執行處理器電路之該運算單元使用。
  4. 如請求項1所述之檢測方法,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該記憶體存取單元沒有被讀取該機密資料,並且該機密資料未被該亂序執行處理器電路之該運算單元使用之步驟包含:確認該權限檢查失敗沒有在該亂序執行處理器之一重排序緩衝器提交該機密資料之一指令並觸發中斷之前。
  5. 如請求項1所述之檢測方法,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該資料快取單元未發送資料請求以回填快取之步驟包含:確認該亂序執行處理器電路之一資料快取單元沒有任何快取不命中(cache miss)。
  6. 如請求項1所述之檢測方法,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該資料快取單元未發送資料請求以回填快取之步驟包含:確認該亂序執行處理器電路之一資料快取單元是否向該亂序執行處理器電路之一下一級記憶體階層發出一回填快取請求(refill request)。
  7. 一種亂序執行處理器電路之檢測裝置,包含有:一有限狀態轉換模組,用來將一待驗電路轉換為至少一有限狀態圖; 一邏輯表述式轉換模組,用來將至少一驗證屬性轉換為至少一邏輯表述式;以及一模型驗證電路,用來對該至少一有限狀態圖以及該至少一邏輯表述式執行一模型驗證程序,以決定該待驗電路是否符合該至少一驗證屬性;其中該驗證屬性包含對應於該亂序執行處理器電路之檢測方法,其中該亂序執行處理器電路之檢測方法包含有:確認該亂序執行處理器電路之一權限檢查失敗所觸發之一中斷提交之前,該亂序執行處理器電路之一資料快取單元未發送資料請求以回填快取;以及確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之一記憶體存取單元沒有被讀取一機密資料,並且該機密資料未被該亂序執行處理器電路之一運算單元使用;其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該資料快取單元未發送資料請求以回填快取之步驟包含:確認該權限檢查失敗沒有在該亂序執行處理器之一重排序緩衝器提交該機密資料之一指令並觸發中斷之前。
  8. 如請求項7所述之檢測裝置,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該記憶體存取單元沒有被讀取該機密資料,並且該機密資料未被該亂序執行處理器電路之該運算單元使用之步驟包含:確認該亂序執行處理器電路之該記憶體存取單元是否將該機密資料寫回該 亂序執行處理器電路之一物理暫存器。
  9. 如請求項7所述之檢測裝置,其中確認該亂序執行處理器電路之該權限檢查失敗所觸發之該中斷提交之前,該亂序執行處理器電路之該記憶體存取單元沒有被讀取該機密資料,並且該機密資料未被該亂序執行處理器電路之該運算單元使用之步驟包含:確認該機密資料是否被該亂序執行處理器電路之該運算單元使用。
TW112117495A 2023-05-11 2023-05-11 用於亂序執行處理器電路之檢測方法及相關檢測裝置 TWI864746B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW112117495A TWI864746B (zh) 2023-05-11 2023-05-11 用於亂序執行處理器電路之檢測方法及相關檢測裝置
US18/527,383 US20240378060A1 (en) 2023-05-11 2023-12-04 Inspection method and related inspection device for out-of-order execution central processing unit circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW112117495A TWI864746B (zh) 2023-05-11 2023-05-11 用於亂序執行處理器電路之檢測方法及相關檢測裝置

Publications (2)

Publication Number Publication Date
TW202445395A TW202445395A (zh) 2024-11-16
TWI864746B true TWI864746B (zh) 2024-12-01

Family

ID=93379613

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112117495A TWI864746B (zh) 2023-05-11 2023-05-11 用於亂序執行處理器電路之檢測方法及相關檢測裝置

Country Status (2)

Country Link
US (1) US20240378060A1 (zh)
TW (1) TWI864746B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353759B2 (en) * 2012-06-15 2019-07-16 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
CN110032867A (zh) * 2019-03-26 2019-07-19 中国人民解放军国防科技大学 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统
US11568485B2 (en) * 2012-09-12 2023-01-31 Iex Group, Inc. Transmission latency leveling apparatuses, methods and systems
TW202314485A (zh) * 2021-09-15 2023-04-01 瑞昱半導體股份有限公司 用於處理器電路之檢測器及檢測方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353759B2 (en) * 2012-06-15 2019-07-16 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US11568485B2 (en) * 2012-09-12 2023-01-31 Iex Group, Inc. Transmission latency leveling apparatuses, methods and systems
CN110032867A (zh) * 2019-03-26 2019-07-19 中国人民解放军国防科技大学 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统
TW202314485A (zh) * 2021-09-15 2023-04-01 瑞昱半導體股份有限公司 用於處理器電路之檢測器及檢測方法

Also Published As

Publication number Publication date
US20240378060A1 (en) 2024-11-14
TW202445395A (zh) 2024-11-16

Similar Documents

Publication Publication Date Title
Kim et al. Soft error sensitivity characterization for microprocessor dependability enhancement strategy
US6539503B1 (en) Method and apparatus for testing error detection
TWI512520B (zh) 偵測對數位電路之攻擊之系統與方法
Iyer et al. Recent advances and new avenues in hardware-level reliability support
Austin DIVA: A dynamic approach to microprocessor verification
Fu et al. Sim-SODA: A unified framework for architectural level software reliability analysis
CN114661347A (zh) 用于安全指令集执行、仿真、监控和阻止的装置和方法
US8533394B2 (en) Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
US20200192775A1 (en) Handling errors in buffers
US7543221B2 (en) Method and apparatus for reducing false error detection in a redundant multi-threaded system
Cho et al. Understanding soft errors in uncore components
Hur et al. Specdoctor: Differential fuzz testing to find transient execution vulnerabilities
CN114662426A (zh) 检测瞬态执行攻击的仿真状态
Didehban et al. A compiler technique for processor-wide protection from soft errors in multithreaded environments
CN112148372A (zh) 用于推测性侧信道攻击的硬件加载强化
Nathan et al. Nostradamus: Low-cost hardware-only error detection for processor cores
CN103984632B (zh) 一种基于错误传播分析的sdc脆弱指令识别方法
KR100736963B1 (ko) 에러에 중립적인 명령을 추적하여 마이크로프로세서에서의폴스 에러 검출을 줄이는 장치 및 방법
TWI864746B (zh) 用於亂序執行處理器電路之檢測方法及相關檢測裝置
US10185635B2 (en) Targeted recovery process
US8176406B2 (en) Hard error detection
TWI789183B (zh) 用於處理器電路之檢測器及檢測方法
Tajary et al. IRHT: An SDC detection and recovery architecture based on value locality of instruction binary codes
CN119004447A (zh) 用于乱序执行处理器电路的检测方法及相关检测装置
Axer et al. Designing an analyzable and resilient embedded operating system