TW202022679A - 用於停滯主處理器的系統和方法 - Google Patents
用於停滯主處理器的系統和方法 Download PDFInfo
- Publication number
- TW202022679A TW202022679A TW108140268A TW108140268A TW202022679A TW 202022679 A TW202022679 A TW 202022679A TW 108140268 A TW108140268 A TW 108140268A TW 108140268 A TW108140268 A TW 108140268A TW 202022679 A TW202022679 A TW 202022679A
- Authority
- TW
- Taiwan
- Prior art keywords
- main processor
- interrupt
- processor
- metadata
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012545 processing Methods 0.000 claims description 123
- 230000009471 action Effects 0.000 claims description 44
- 230000015654 memory Effects 0.000 description 221
- 238000013507 mapping Methods 0.000 description 33
- 230000004044 response Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 20
- 238000011144 upstream manufacturing Methods 0.000 description 19
- 238000013461 design Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000001066 destructive effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013209 evaluation strategy Methods 0.000 description 2
- 238000005206 flow analysis Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
本發明提供用於停滯一主處理器之系統及方法。在一些具體實例中,可使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一資料匯流排交易。可阻止該主處理器完成該資料匯流排交易,以藉此停滯該主處理器,其中:使該主處理器起始一或多個選定交易之動作包含確證一中斷以使該主處理器自一中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器檢查該中斷之一原因;且阻止該主處理器完成該資料匯流排交易之動作包含阻止該主處理器檢查該中斷之一原因。
Description
本申請案的揭示內容涉及用於停滯主處理器的系統和方法。
電腦安全性在社會各階層,自個人至企業至政府機構均已變為愈來愈迫切的問題。舉例而言,在2015年,安全性研究人員識別出了零日漏洞,其將允許攻擊者經由網際網路侵入吉普切諾基(Jeep Cherokee)之機載電腦系統且控制車輛之儀錶盤功能、轉向、制動及傳動。在2017年,永恆之藍(WannaCry)勒索軟體攻擊估計影響了全球超過200,000台電腦,從而至少引起數億美元之經濟損失。值得注意地,該攻擊嚴重破壞了英國的若干國民健康服務醫院的運作。同一年,艾可飛公司(Equifax),美國消費者信用報告機構的資料外泄曝露了人員資料,諸如全名、社會保險號碼、出生日期、地址、駕駛執照號碼、信用卡號等。據報導該攻擊影響了超過1億4千萬消費者。
安全性專家一直在追趕攻擊者。一旦報導了漏洞,安全性專家便會爭相修補該漏洞。未能及時修補漏洞(例如,由於管控不善及/或資源缺乏)之個人及組織容易成為攻擊者之目標。
一些安全性軟體監控電腦上及/或網路內之活動,且尋找可指示攻擊之圖案。此方法無法阻止惡意程式碼首先被執行。常常在出現任何可疑圖案時已經發生了損害。
根據一些具體實例,提供一種用於停滯一主處理器之方法,該方法包含以下動作:使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一資料匯流排交易;及阻止該主處理器完成該資料匯流排交易,以藉此停滯該主處理器,其中:使該主處理器起始一或多個選定交易之該動作包含確證一中斷以使該主處理器自一中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令;該一或多個指令在由該主處理器執行時使該主處理器檢查該中斷之一原因;且阻止該主處理器完成該資料匯流排交易之該動作包含阻止該主處理器檢查該中斷之一原因。
根據一些具體實例,提供一種用於停滯一主處理器之方法,該方法包含以下動作:使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一資料匯流排交易;及阻止該主處理器完成該資料匯流排交易,以藉此停滯該主處理器,其中:使該主處理器起始一或多個選定交易之該動作包含確證一中斷以使該主處理器自一中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令;該一或多個指令在由該主處理器執行時使該主處理器存取一選定暫存器;且阻止該主處理器完成該資料匯流排交易之該動作包含阻止該主處理器存取該選定暫存器。
根據一些具體實例,提供一種系統,其包含電路系統及/或由可執行指令程式化之一或多個處理器,其中該電路系統及/或該一或多個經程式化處理器經組態以執行本文中所描述之方法中之任一者。
根據一些具體實例,提供至少一個電腦可讀取媒體,其具有儲存於其上的用於本文中所描述之電路系統中之任一者的至少一個接線對照表。
根據一些具體實例,提供至少一個電腦可讀取媒體,其具有儲存於其上的至少一個硬體描述,該至少一個硬體描述在經合成時產生本文中所描述之接線對照表中之任一者。
根據一些具體實例,提供至少一個電腦可讀取媒體,其具有儲存於其上的本文中所描述之可執行指令中之任一者。
攻擊者所利用之許多漏洞追溯到資料及可執行指令混合於同一記憶體中之電腦架構設計。此混合允許攻擊者藉由將惡意程式碼偽裝為資料而將惡意程式碼注入至遠端電腦中。舉例而言,程式可在電腦記憶體中分配緩衝區以儲存經由網路接收之資料。若程式接收比緩衝區可保存之資料更多的資料,但在將所接收資料寫入至緩衝區中之前並未檢查該資料之大小,則所接收資料之部分將超出緩衝區邊界寫入至鄰近記憶體中。攻擊者可利用此行為將惡意程式碼注入至鄰近記憶體中。若鄰近記憶體經分配用於可執行程式碼,則惡意程式碼最終可由電腦執行。
已提出使電腦硬體更具安全性意識之技術。舉例而言,記憶體位置可與用於實行安全性策略中之元資料相關聯,且可檢查指令是否符合安全性策略。舉例而言,在給定待執行之指令的情況下,可檢查與指令相關聯之元資料及/或與指令之一或多個運算元相關聯之元資料以判定是否應允許該指令。另外或替代地,適當的元資料可與指令之輸出相關聯。
圖1展示根據一些具體實例之用於實行策略之說明性硬體系統100。在此實例中,系統100包括主處理器110,該主處理器可具有任何合適的指令集架構(instruction set architecture;ISA),諸如精簡指令集計算(reduced instruction set computing;RISC)架構或複雜指令集計算(complex instruction set computing;CISC)架構。主處理器110可經由寫入互鎖112執行記憶體存取。寫入互鎖112可連接至系統匯流排115,該系統匯流排經組態以在諸如寫入互鎖112、應用程式記憶體120、元資料記憶體125、唯讀記憶體(read-only memory;ROM) 130、一或多個周邊裝置135等之各種組件之間傳送資料。
在一些具體實例中,由主處理器110操控(例如,修改、消耗及/或產生)之資料可儲存於應用程式記憶體120中。此資料在本文中被稱作「應用程式資料」,區別於用於實行策略之元資料。元資料可儲存於元資料記憶體125中。應瞭解,應用程式資料可包括由作業系統(operating system;OS)操控之資料、OS之指令、由一或多個使用者應用程式操控之資料,及/或該一或多個使用者應用程式之指令。
在一些具體實例中,應用程式記憶體120及元資料記憶體125可在實體上分離,且主處理器110可能無法存取元資料記憶體125。以此方式,即使攻擊者成功將惡意程式碼注入至應用程式記憶體120中且使主處理器110執行惡意程式碼,元資料記憶體125仍可不受影響。然而,應瞭解,本發明之態樣不限於將應用程式資料及元資料儲存於在實體上分離之記憶體上。另外或替代地,元資料可與應用程式資料儲存於同一記憶體中,且可使用實施適當的保護方案以阻止在主處理器110上執行之指令修改元資料的記憶體管理組件。另外或替代地,元資料可與應用程式資料混合於同一記憶體中,且一或多個策略可用以保護元資料。
在一些具體實例中,可提供標記處理硬體140以確保由主處理器110執行之指令符合一或多個策略。標記處理硬體140可包括任何合適的電路組件或電路組件之組合。舉例而言,標記處理硬體140可包括將應用程式記憶體120中之位址映射至元資料記憶體125中之位址的標記映射表142。舉例而言,標記映射表142可將應用程式記憶體120中之位址X映射至元資料記憶體125中之位址Y。儲存於位址Y處之值有時在本文中被稱作「元資料標記」或簡單地稱作「標記」。
在一些具體實例中,儲存於位址Y處之值又可為位址Z。此間接定址可重複任何合適數目次,且最終可產生元資料記憶體125中用於儲存元資料之資料結構。此元資料以及任何中間位址(例如,位址Z)在本文中亦被稱作「元資料標記」或簡單地被稱作「標記」。
應瞭解,本發明之態樣不限於將位址儲存於元資料記憶體中之標記映射表。在一些具體實例中,標記映射表條目本身可儲存元資料,使得標記處理硬體140可能夠存取元資料而無需執行記憶體操作。在一些具體實例中,標記映射表條目可儲存選定位元型樣,其中位元型樣之第一部分可編碼元資料,且位元型樣之第二部分可編碼元資料記憶體中可儲存其他元資料之位址。此可提供速度與表達性之間的所需平衡。舉例而言,標記處理硬體140可能夠僅使用儲存於標記映射表條目本身中之元資料迅速檢查某些策略。對於具有更複雜規則之其他策略,標記處理硬體140可存取儲存於元資料記憶體125中之其他元資料。
再次參看圖1,藉由將應用程式記憶體位址映射至元資料記憶體位址,標記映射表142可在應用程式資料與描述應用程式資料之元資料之間建立關聯性。在一個實例中,儲存於元資料記憶體位址Y處且因此與儲存於應用程式記憶體位址X處之應用程式資料相關聯之元資料可指示應用程式資料可為可讀取、可寫入及/或可執行的。在另一實例中,儲存於元資料記憶體位址Y處且因此與儲存於應用程式記憶體位址X處之應用程式資料相關聯之元資料可指示應用程式資料之類型(例如,整數、指標、16位元字組、32位元字組等)。取決於待實行策略,與該策略相關之任何合適的元資料可與應用程式資料片段相關聯。
在一些具體實例中,元資料記憶體位址Z可儲存於元資料記憶體位址Y處。待與儲存於應用程式記憶體位址X處之應用程式資料相關聯之元資料可儲存於元資料記憶體位址Z處,而非元資料記憶體位址Y處(或除元資料記憶體位址Y處以外)。舉例而言,元資料符號「紅色(RED)」之二進位表示可儲存於元資料記憶體位址Z處。藉由將元資料記憶體位址Z儲存於元資料記憶體位址Y中,儲存於應用程式記憶體位址X處之應用程式資料可標記為「RED」。
以此方式,元資料符號「RED」之二進位表示可僅儲存於元資料記憶體120中一次。舉例而言,若儲存於另一應用程式記憶體位址X'處之應用程式資料亦將被標記為「RED」,則標記映射表142可將應用程式記憶體位址X'映射至亦儲存元資料記憶體位址Z之元資料記憶體位址Y'。
此外,以此方式,可簡化標記更新。舉例而言,若儲存於應用程式記憶體位址X處之應用程式資料在後續時間將被標記為「藍色(BLUE)」,則元資料記憶體位址Z'可寫入於元資料記憶體位址Y處,以替換元資料記憶體位址Z,且元資料符號「BLUE」之二進位表示可儲存於元資料記憶體位址Z'處。
因此,本發明人已認識且瞭解到,具有任何適合長度N之一系列元資料記憶體位址可用於標記,包括N=0(例如,其中元資料符號之二進位表示儲存於元資料記憶體位址Y本身處)。
應用程式資料與元資料之間的關聯性(在本文中亦被稱作「標記」)可以任何合適的粒度等級及/或以可變粒度進行。舉例而言,可逐字組進行標記。另外或替代地,記憶體中之區可映射至單個標記,使得該區中之所有字組均與相同元資料相關聯。此可有利地減小標記映射表142及/或元資料記憶體125之大小。舉例而言,相較於維持分別對應於位址範圍中之不同位址之多個標記,可針對整個位址範圍維持單個標記。
在一些具體實例中,標記處理硬體140可經組態以將一或多個規則應用於與指令相關聯之元資料及/或與指令之一或多個運算元相關聯之元資料,以判定是否應允許指令。舉例而言,主處理器110可提取及執行指令,且可將執行指令之結果列隊至寫入互鎖112中。在將結果寫回至應用程式記憶體120中之前,主處理器110可將指令類型(例如,作業碼)、儲存指令之位址、由指令參考之一或多個記憶體位址及/或一或多個暫存器識別符發送至標記處理硬體140。此暫存器識別符可識別在執行指令時由主處理器110使用之暫存器,諸如用於儲存指令之運算元或結果之暫存器。
在一些具體實例中,除寫入指令以外或替代寫入指令,可將破壞性讀取指令列隊。舉例而言,嘗試存取破壞性讀取指令之目標位址之後續指令可列隊於未經快取之記憶體區中。若且當判定應允許破壞性讀取指令時,則可載入列隊指令以供執行。
在一些具體實例中,可允許繼續進行破壞性讀取指令,且自目標位址讀取之資料可俘獲於緩衝區中。若且當判定應允許破壞性讀取指令時,則可捨棄俘獲於緩衝區中之資料。若且當判定不應允許破壞性讀取指令時,則俘獲於緩衝區中之資料可恢復至目標位址。另外或替代地,可藉由經緩衝資料為後續讀取服務。
應瞭解,本發明之態樣不限於對已由主處理器執行之指令,諸如已由主處理器之執行管線引退之指令執行元資料處理。在一些具體實例中,可在主處理器之執行管線之前、期間及/或之後對指令執行元資料處理。
在一些具體實例中,在給定自主處理器110接收之位址(例如,儲存指令之位址或由指令參考之位址)的情況下,標記處理硬體140可使用標記映射表142以識別對應標記。另外或替代地,對於自主處理器110接收之暫存器識別符,標記處理硬體140可自標記處理硬體140內之標記暫存器檔案146存取標記。
在一些具體實例中,若應用程式記憶體位址在標記映射表142中不具有對應條目,則標記處理硬體140可將查詢發送至策略處理器150。該查詢可包括所討論之應用程式記憶體位址,且策略處理器150可傳回該應用程式記憶體位址之標記。另外或替代地,策略處理器150可針對包括應用程式記憶體位址之位址範圍建立新的標記映射條目。以此方式,可在標記映射表142中獲得與所討論之應用程式記憶體位址相關聯的適當標記,以供未來參考。
在一些具體實例中,標記處理硬體140可將查詢發送至策略處理器150以檢查是否應允許由主處理器110執行之指令。該查詢可包括一或多個輸入,諸如指令之指令類型(例如,作業碼)、用於程式計數器之標記、用於供提取指令之應用程式記憶體位址的標記(例如,程式計數器所指向之記憶體中的字組)、用於儲存指令之運算元之暫存器的標記,及/或用於由指令參考之應用程式記憶體位址的標記。在一個實例中,該指令可為載入指令,且指令之運算元可為應用程式記憶體位址,應用程式資料將自該應用程式記憶體位址載入。該查詢尤其可包括用於儲存應用程式記憶體位址之暫存器之標記以及用於應用程式記憶體位址本身之標記。在另一實例中,該指令可為算術指令,且可存在兩個運算元。該查詢尤其可包括用於儲存第一運算元之第一暫存器之第一標記及用於儲存第二運算元之第二暫存器之第二標記。
亦應瞭解,本發明之態樣不限於一次對單個指令執行元資料處理。在一些具體實例中,主處理器之ISA中之多個指令可例如經由至策略處理器150之單個查詢作為集束一起檢查。此查詢可包括更多輸入以允許策略處理器150檢查該集束中之所有指令。類似地,可經由至策略處理器150之單個查詢檢查在語義上可對應於多個操作之CISC指令,其中該查詢可包括足夠的輸入以允許策略處理器150檢查CISC指令內之所有構成操作。
在一些具體實例中,策略處理器150可包括可組態處理單元,諸如微處理器、場可程式化閘陣列(field-programmable gate array;FPGA),及/或任何其他合適的電路系統。策略處理器150中可能已載入了描述主處理器110之所允許操作之一或多個策略。回應於來自標記處理硬體140之查詢,策略處理器150可評估策略中之一或多者以判定是否應允許所討論之指令。舉例而言,標記處理硬體140可將中斷信號連同與所討論之指令有關之一或多個輸入(例如,如上文所描述)發送至策略處理器150。策略處理器150可將查詢之輸入儲存於工作記憶體中(例如,一或多個佇列中)以供立即或延遲處理。舉例而言,策略處理器150可以某一合適的方式(例如,基於與每一查詢相關聯之優先權旗標)優先化查詢之處理。
在一些具體實例中,策略處理器150可在一或多個輸入(例如,一或多個輸入標記)上評估一或多個策略以判定是否應允許所討論之指令。若不允許該指令,則策略處理器150可因此通知標記處理硬體140。若允許指令,則策略處理器150可計算待傳回至標記處理硬體140之一或多個輸出(例如,一或多個輸出標記)。作為一個實例,該指令可為儲存指令,且策略處理器150可計算用於待儲存應用程式資料之應用程式記憶體位址的輸出標記。作為另一實例,該指令可為算術指令,且策略處理器150可計算用於儲存執行該算術指令之結果的暫存器之輸出標記。
在一些具體實例中,策略處理器150可經程式化以執行除與評估策略有關之任務以外或替代與評估策略有關之任務的一或多個任務。舉例而言,策略處理器150可執行與標記初始化、啟動載入、應用程式載入、對元資料記憶體125之記憶體管理(例如,廢棄項目收集)、記載、除錯支援及/或中斷處理有關之任務。此等任務中之一或多者可在背景中(例如,在來自標記處理硬體140之服務查詢之間)執行。
在一些具體實例中,標記處理硬體140可包括用於將一或多個輸入映射至決策及/或一或多個輸出之規則快取記憶體144。舉例而言,至規則快取記憶體144中之查詢可類似地建構為至策略處理器150之查詢,以檢查是否應允許由主處理器110執行之指令。若存在快取命中,則規則快取記憶體144可輸出關於是否應允許指令之決策,及/或一或多個輸出標記(例如,如上文結合策略處理器150所描述)。可使用來自策略處理器150之查詢回應來建立規則快取記憶體144中之此映射。然而,如在一些具體實例中,可能不需要將一或多個映射提前安置至規則快取記憶體144中。
在一些具體實例中,規則快取記憶體144可用以提供效能增強。舉例而言,在運用一或多個輸入標記查詢策略處理器150之前,標記處理硬體140可首先運用一或多個輸入標記查詢規則快取記憶體144。在快取命中之狀況下,標記處理硬體140可藉由來自規則快取記憶體144之決策及/或一或多個輸出標記繼續進行,而無需查詢策略處理器150。此可提供顯著加速。在快取未命中狀況下,標記處理硬體140可查詢策略處理器150且將來自策略處理器150之回應安置於規則快取記憶體144中以供可能未來使用。
在一些具體實例中,若標記處理硬體140判定應允許所討論之指令(例如,基於規則快取記憶體144中之命中或規則快取記憶體144中之未命中,接著為來自策略處理器150之指示未發現策略違反的回應),則標記處理硬體140可向寫入互鎖112指示執行指令之結果可寫回至記憶體。另外或替代地,標記處理硬體140可運用一或多個輸出標記(例如,如自規則快取記憶體144或策略處理器150接收)更新元資料記憶體125、標記映射表142及/或標記暫存器檔案146。作為一個實例,對於儲存指令,元資料記憶體125可藉由標記映射表142經由位址轉譯而更新。舉例而言,由儲存指令參考之應用程式記憶體位址可用以自標記映射表142查找元資料記憶體位址,且自規則快取記憶體144或策略處理器150接收之元資料可儲存至元資料記憶體125之元資料記憶體位址處。作為另一實例,在待更新之元資料儲存於標記映射表142中之條目中(相較於儲存於元資料記憶體125中)時,可更新標記映射表142中之該條目。作為另一實例,對於算術指令,對應於由主處理器110用於儲存執行算術指令之結果的暫存器之標記暫存器檔案146中之條目可藉由適當標記進行更新。
在一些具體實例中,若標記處理硬體140判定所討論之指令表示策略違反(例如,基於規則快取記憶體144中之未命中,接著為來自策略處理器150之指示已發現策略違反的回應),則標記處理硬體140可向寫入互鎖112指示執行該指令之結果應被捨棄而非寫回至記憶體。另外或替代地,標記處理硬體140可將中斷發送至主處理器110。回應於接收到中斷,主處理器110可切換至任何合適的違反處理程式碼。舉例而言,主處理器100可停止、重設、記載違反且繼續、對應用程式碼及/或應用程式資料執行完整性檢查、通知操作者等。
在一些具體實例中,標記處理硬體140可包括一或多個組態暫存器。此暫存器可經由標記處理硬體140之組態介面存取(例如,藉由策略處理器150)。在一些具體實例中,標記暫存器檔案146可實施為組態暫存器。另外或替代地,可存在一或多個應用程式組態暫存器及/或一或多個元資料組態暫存器。
儘管實施細節展示於圖1中且論述於上文中,但應瞭解,本發明之態樣不限於使用任何特定組件或組件之組合,或不限於組件之任何特定配置。舉例而言,在一些具體實例中,策略處理器150之一或多個功能性可由主處理器110執行。作為實例,主處理器110可具有不同操作模式,諸如用於使用者應用程式之使用者模式及用於作業系統之特殊權限模式。策略相關程式碼(例如,標記、評估策略等)可與作業系統在相同特殊權限模式下運行,或在不同特殊權限模式下運行(例如,其中針對特殊權限升級提供甚至更好保護)。
圖2展示根據一些具體實例之用於實行策略之說明性軟體系統200。舉例而言,軟體系統200可經程式化以產生可執行程式碼及/或將可執行程式碼載入至圖1中所展示之說明性硬體系統100中。
在圖2中所展示之實例中,軟體系統200包括軟體工具鏈,其具有編譯器205、連結器210及載入器215。編譯器205可經程式化以將原始程式碼處理成可執行程式碼,其中原始程式碼可呈較高階語言且可執行程式碼可呈較低階語言。連結器210可經程式化以將由編譯器205產生之多個物件檔案組合成單個物件檔案以由載入器215載入至記憶體(例如,在圖1之實例中的說明性應用程式記憶體120)中。儘管未圖示,但由連結器210輸出之物件檔案可轉換成合適的格式且儲存於諸如快閃記憶體、硬碟、唯讀記憶體(ROM)等之永續性儲存器中。載入器215可自永續性儲存器擷取物件檔案,且將物件檔案載入至隨機存取記憶體(random-access memory;RAM)中。
在一些具體實例中,編譯器205可經程式化以產生資訊以用於實行策略。舉例而言,當編譯器205將原始程式碼轉換成可執行程式碼時,編譯器205可產生關於資料類型、程式語義及/或記憶體佈局之資訊。作為一個實例,編譯器205可經程式化以標示函式之一或多個指令與實施呼叫約定操作(例如,將一或多個參數自呼叫者函式傳遞至被呼叫者函式、將一或多個值自被呼叫者函式傳回至呼叫者函式、儲存返回位址以指示當被呼叫者函式將控制傳回至呼叫者函式時在呼叫者函式之程式碼中何處重新繼續執行,等等)之一或多個指令之間的邊界。舉例而言,此類邊界可在初始化期間用於將某些指令標記為函式序言或函式結語。在運行時,可實行堆疊策略,使得當函式序言指令執行時,呼叫堆疊中之某些位置(例如,儲存返回位址之處)可標記為「訊框」位置,且當函式結語指令執行時,可移除「訊框」標記。堆疊策略可指示實施函式主體(相較於函式序言及函式結語)之指令僅能夠讀取地存取「訊框」位置。此可防止攻擊者覆寫返回位址且藉此獲得控制。
作為另一實例,編譯器205可經程式化以執行控制流程分析例如以識別一或多個控制傳送點及各別目的地。此資訊可用於實行控制流程策略。作為又一實例,編譯器205可經程式化以例如藉由施加諸如指標、整數、浮點數等之類型標籤而執行類型分析。此資訊可用以實行防止誤用(例如,使用浮點數作為指標)之策略。
儘管圖2中未圖示,但在一些具體實例中,軟體系統200可包括二進位分析組件,該二進位分析組件經程式化以將由連結器210產生之目標程式碼(相較於原始程式碼)作為輸入,且執行類似於由編譯器205執行之彼等分析(例如,控制流程分析、類型分析等)的一或多個分析。
在圖2之實例中,軟體系統200進一步包括策略編譯器220及策略連結器225。策略編譯器220可經程式化以將以策略語言編寫之策略轉譯成策略程式碼。舉例而言,策略編譯器220可以C或某一其他合適的程式設計語言輸出策略程式碼。另外或替代地,策略編譯器220可輸出由策略參考之一或多個元資料符號。在初始化時,此元資料符號可與目標系統之一或多個記憶體位置、暫存器及/或其他機器狀態相關聯,且可解析為待載入至目標系統之元資料記憶體或某一其他硬體儲存器(例如,暫存器)中之元資料的二進位表示。如上文所論述,元資料之此二進位表示或指向儲存該二進位表示之位置之指標有時在本文中被稱作「標記」。
應瞭解,本發明之態樣不限於在載入時解析元資料符號。在一些具體實例中,可靜態地解析一或多個元資料符號(例如,在編譯時或在連結時)。舉例而言,策略編譯器220可處理一或多個適用策略,且將由一或多個策略定義之一或多個元資料符號解析成靜態定義之二進位表示。另外或替代地,策略連結器225可將一或多個元資料符號解析成靜態定義之二進位表示,或指向儲存靜態定義之二進位表示之資料結構的指標。本發明人已認識且瞭解到,靜態地解析元資料符號可有利地減少載入時間處理。然而,本發明之態樣不限於以任何特定方式解析元資料符號。
在一些具體實例中,策略連結器225可經程式化以處理目標程式碼(例如,如由連結器210輸出)、策略程式碼(例如,如由策略編譯器220輸出)及/或目標描述,以輸出初始化規格。該初始化規格可由載入器215用於安全地初始化具有一或多個硬體組件(例如,圖1中所展示之說明性硬體系統100)及/或一或多個軟體組件(例如,作業系統、一或多個使用者應用程式等)之目標系統。
在一些具體實例中,該目標描述可包括對複數個命名實體之描述。命名實體可表示目標系統之組件。作為一個實例,命名實體可表示硬體組件,諸如組態暫存器、程式計數器、暫存器檔案、計時器、狀態旗標、記憶體傳送單元、輸入/輸出裝置等。作為另一實例,命名實體可表示軟體組件,諸如函式、模組、驅動程式、服務常式等。
在一些具體實例中,策略連結器225可經程式化以搜尋該目標描述以識別策略所涉及之一或多個實體。舉例而言,該策略可將某些實體名稱映射至對應元資料符號,且策略連結器225可搜尋該目標描述以識別具有彼等實體名稱之實體。策略連結器225可自該目標描述識別彼等實體之描述,且使用該等描述以用適當的元資料符號註解由連結器210輸出之目標程式碼。舉例而言,策略連結器225可將讀取標籤施加至可執行與可連結格式(Executable and Linkable Format;ELF)檔案之.rodata部分,且將讀取標籤及寫入標籤施加至ELF檔案之.data部分,且將執行標籤施加至ELF檔案之.text部分。此類資訊可用以實行用於記憶體存取控制及/或可執行程式碼保護(例如,藉由檢查讀取、寫入及/或執行特殊權限)之策略。
應瞭解,本發明之態樣不限於將目標描述提供至策略連結器225。在一些具體實例中,除策略連結器225以外或替代策略連結器,可將目標描述提供至策略編譯器220。策略編譯器220可檢查該目標描述之錯誤。舉例而言,若策略中參考之實體並不存在於該目標描述中,則可藉由策略編譯器220標明錯誤。另外或替代地,策略編譯器220可搜尋該目標描述以搜索與待實行之一或多個策略相關的實體,且可產生僅包括相關實體之實體描述的經濾波目標描述。舉例而言,策略編譯器220可使待實行策略之「init」語句中之實體名稱與該目標描述中之實體描述匹配,且可自該目標描述移除不具有對應「init」語句之實體描述。
在一些具體實例中,載入器215可基於由策略連結器225產生之初始化規格而初始化目標系統。舉例而言,參考圖1之實例,載入器215可將資料及/或指令載入至應用程式記憶體120中,且可使用初始化規格以識別與正載入至應用程式記憶體120中之資料及/或指令相關聯的元資料標籤。載入器215可將初始化規格中之元資料標籤解析成各別的二進位表示。然而,應瞭解,本發明之態樣不限於在載入時解析元資料標籤。在一些具體實例中,元資料標籤之範圍在策略連結期間可為已知的,且因此可在彼時例如藉由策略連結器225解析元資料標籤。此可有利地減少初始化規格之載入時間處理。
在一些具體實例中,策略連結器225及/或載入器215可維持元資料之二進位表示至元資料標籤的反向映射。可例如藉由除錯器230使用此映射。舉例而言,在一些具體實例中,可提供除錯器230以顯示初始化規格之人類可讀取版本,其可列出一或多個實體,且針對每一實體,列出與實體相關聯之一或多個元資料標籤的集合。另外或替代地,除錯器230可經程式化以顯示藉由元資料標籤註解之組合程式碼,諸如藉由分解藉由元資料標籤註解之目標程式碼而產生的組合程式碼。此類組合程式碼之實例展示於圖6中且論述於下文中。在除錯期間,除錯器230可在執行期間停止程式,且允許以人類可讀取形式檢測實體及/或與實體相關聯之元資料標記。舉例而言,除錯器230可允許檢測策略違反中所涉及之實體及/或造成策略違反之元資料標記。除錯器230可使用元資料之二進位表示至元資料標籤之反向映射而進行此操作。
在一些具體實例中,習知除錯工具可經擴展以允許審查與策略實行相關之問題,例如,如上文所描述。另外或替代地,可提供單獨的策略除錯工具。
在一些具體實例中,載入器215可將元資料標籤之二進位表示載入至元資料記憶體125中,且可將應用程式記憶體位址與元資料記憶體位址之間的映射記錄於標記映射表142中。舉例而言,載入器215可在標記映射表142中建立條目,該條目將指令儲存於應用程式記憶體120中之應用程式記憶體位址映射至與指令相關聯之元資料儲存於元資料記憶體125中之元資料記憶體位址。另外或替代地,載入器215可將元資料儲存於標記映射表142本身中(相較於元資料記憶體125),以允許進行存取而無需執行任何記憶體操作。
在一些具體實例中,除標記映射表142以外或替代標記映射表,載入器215可初始化標記暫存器檔案146。舉例而言,標記暫存器檔案146可包括分別對應於複數個實體之複數個暫存器。載入器215可自初始化規格識別與實體相關聯之元資料,且將元資料儲存於標記暫存器檔案146中之各別暫存器中。
再次參看圖1之實例,在一些具體實例中,載入器215可將策略程式碼(例如,如由策略編譯器220輸出)載入至元資料記憶體125中以供策略處理器150執行。另外或替代地,可提供分開的記憶體(圖1中未圖示)以供策略處理器150使用,且載入器215可將策略程式碼及/或相關聯資料載入至分開的記憶體中。
在一些具體實例中,元資料標籤可基於多個元資料符號。舉例而言,實體可受多個策略影響,且可因此與分別對應於不同策略之不同元資料符號相關聯。本發明人已認識且瞭解到,可能需要藉由載入器215將同一組元資料符號解析為同一二進位表示(其有時在本文中被稱作「正準」表示)。舉例而言,元資料標籤{A, B, C}及元資料標籤{B, A, C}可藉由載入器215解析為同一二進位表示。以此方式,在語法上不同但在語義上相等之元資料標籤可具有同一二進位表示。
本發明人已進一步認識且瞭解到,可能需要確保元資料之二進位表示在元資料儲存器中並不重複。舉例而言,如上文所論述,圖1之實例中的說明性規則快取記憶體144可將輸入標記映射至輸出標記,且在一些具體實例中,相較於二進位表示本身,輸入標記可為儲存元資料之二進位表示的元資料記憶體位址。本發明人已認識且瞭解到,若元資料之同一二進位表示儲存於兩個不同的元資料記憶體位址X及Y處,則即使規則快取記憶體144已儲存元資料記憶體位址X之映射,規則快取記憶體144仍可能無法「辨識」元資料記憶體位址Y。此可導致大量不必要的規則快取未命中,此使系統效能降級。
此外,本發明人已認識且瞭解到,元資料之二進位表示與其儲存位置之間的一對一對應關係可促進元資料比較。舉例而言,相較於比較元資料之二進位表示,兩個元資料片段之間的等同性可簡單地藉由比較元資料記憶體位址而判定。此可導致顯著效能改良,尤其在二進位表示較大(例如,許多元資料符號封裝於單個元資料標籤中)之情況下。
因此,在一些具體實例中,載入器215可在儲存元資料之二進位表示(例如,儲存至元資料記憶體125中)之前檢查是否已儲存元資料之二進位表示。若已儲存元資料之二進位表示,則載入器215可參考現有儲存位置,而非再次將其儲存在不同的儲存位置處。可在啟動時及/或在啟動之後載入程式時進行此檢查(在具有或不具有動態連結之情況下)。
另外或替代地,可在由於評估一或多個策略(例如,藉由說明性策略處理器150)而建立元資料之二進位表示時執行類似檢查。若已儲存元資料之二進位表示,則可使用對現有儲存位置之參考(例如,安置於說明性規則快取記憶體144中)。
在一些具體實例中,載入器215可建立將散列值映射至儲存位置之散列表。在儲存元資料之二進位表示之前,載入器215可使用散列函數以將元資料之二進位表示簡化成散列值,且檢查散列表是否已含有與散列值相關聯之條目。若含有,則載入器215可判定已儲存元資料之二進位表示,且可自該條目擷取與元資料之二進位表示有關的資訊(例如,指向元資料之二進位表示的指標或指向彼指標之指標)。若散列表尚未含有與散列值相關聯之條目,則載入器215可儲存元資料之二進位表示(例如,儲存至暫存器或元資料記憶體中之位置),在散列表中建立與散列值相關聯之新條目,且將適當資訊儲存於新條目中(例如,暫存器識別符、指向元資料記憶體中元資料之二進位表示的指標、指向該指標之指標等)。然而,應瞭解,本發明之態樣不限於使用散列表以用於追蹤已儲存之元資料的二進位表示。另外或替代地,可使用其他資料結構,諸如曲線圖資料結構、有序清單、無序清單等。可基於任何合適的準則或準則之組合,諸如存取時間、記憶體使用量等而選擇任何合適的資料結構或資料結構之組合。
應瞭解,上文引入且下文更詳細論述之技術可以眾多方式中之任一者實施,此係因為該等技術不限於實施之任何特定方式。本文中僅出於說明性目的而提供實施細節之實例。此外,可個別地或以任何合適組合使用本文中所揭示之技術,此係因為本發明之態樣不限於使用任何特定技術或技術之組合。
舉例而言,雖然本文中論述包括編譯器(例如,在圖2之實例中的說明性編譯器205及/或說明性策略編譯器220)之實例,但應瞭解,本發明之態樣不限於此。在一些具體實例中,軟體工具鏈可實施為解譯器。舉例而言,可實施延緩初始化方案,其中一或多個預設符號(例如,「未初始化(UNINITIALIZED)」可用於在啟動時進行標記,且策略處理器(例如,在圖1之實例中的說明性策略處理器150)可評估一或多個策略且以即時方式解析該一或多個預設符號。
在系統單晶片(System-on-Chip;SoC)中,直接地或間接地消耗由上游組件產生之輸出的下游組件有時可能無法趕上上游組件(例如,此係因為下游組件具有有限資源)。在一些情況下,沿著上游組件與下游組件之間的通信路徑之匯流排可提供用於發送停滯信號以指示下游組件未準備好接受更多上游組件輸出之原生機制。此可使上游組件停止產生輸出。當下游組件趕上時,可撤銷確證停滯信號,且上游組件可重新繼續。
本發明人已認識且瞭解到,在一些情況下,上游組件與下游組件之間的通信路徑可能不包括匯流排,該匯流排提供用於向上游發送停滯信號之原生機制。因此,在一些具體實例中,提供用於經由匯流排將停滯信號發送至上游組件之技術,該匯流排在上游組件與下游組件之間的通信路徑外部。舉例而言,在上游組件與下游組件之間的通信路徑外部之匯流排可具有相對較低的交易頻率,且提供引發彼匯流排上之交易的技術,使得可停滯所引發之交易,藉此停滯上游組件。
在一些具體實例中,上游組件可包括主處理器(例如,在圖1之實例中的說明性主處理器110),且下游組件可包括標記處理硬體(例如,說明性標記處理硬體140)。舉例而言,可藉由標記處理硬體檢查由主處理器執行之指令,以判定是否應允許該指令。在一些具體實例中,指令可置放於待由標記處理硬體檢查之指令的佇列中。另外或替代地,可在標記處理硬體檢查該指令時將執行指令之結果可置放於寫入互鎖(例如,說明性寫入互鎖112)之佇列中。若標記處理硬體判定應允許指令,則可自寫入互鎖之佇列釋放結果且將結果寫入至應用程式記憶體(例如,說明性應用程式記憶體120中)。
本發明人已認識到且瞭解到,在一些情況下,寫入互鎖之結果佇列及/或標籤處理硬體之指令佇列可變滿。當出現彼情況時,一或多個執行結果可在尚未由標籤處理硬體檢查之情況下寫入至應用程式記憶體中。此可產生安全漏洞。舉例而言,攻擊者可使主處理器快速連續地執行大量指令,以便填滿結果佇列及/或指令佇列。攻擊者可接著導致執行否則將不被標記處理硬體允許之惡意程式碼。為了避免此攻擊,可能需要暫時停滯主處理器以允許標籤處理硬體趕上。
然而,本發明人已認識且瞭解到,許多主處理器設計假定主處理器為主控裝置且因此不提供用於停滯主處理器之機制。舉例而言,在由主處理器辨識之信號的清單中不存在停滯信號,且連接主處理器與標記處理硬體之匯流排可能不提供用於將停滯信號發送至主處理器之原生機制。雖然主處理器設計可經修改以添加停滯信號,但SoC製造商實務上可能不會如此操作,此係因為主處理器設計可能已自另一家公司獲得許可,且該許可可能禁止修改。因此,在一些具體實例中,提供用於使用主處理器之現有介面(諸如,提供用於將停滯信號發送至主處理器之原生機制的匯流排)停滯主處理器的技術。在一些情況下,此匯流排可在主處理器與標記處理硬體之間的通信路徑外部。
在一些具體實例中,可藉由阻止主處理器存取應用程式記憶體來實現停滯。舉例而言,當寫入互鎖之結果佇列經填充至選定臨限位準時,可觸發信號以使匯流排停止對主處理器之記憶體存取請求作出回應。另外或替代地,當標記處理硬體之指令佇列經填充至選定臨限位準時,可觸發類似信號。以此方式,標記處理硬體可在主處理器等待匯流排作出回應時檢查已由主處理器執行之指令。
儘管使主處理器之記憶體存取不足可能為停滯之適當方式,但本發明人已認識且瞭解到,此可能並非總是足夠的。舉例而言,許多主處理器設計包括可能比應用程式記憶體被更快速地存取的快取記憶體。具有此快取記憶體(圖1中未圖示)之主處理器可僅當存在快取未命中時自應用程式記憶體載入資料,且可僅當存在快取收回時將資料寫入至應用程式記憶體。結果,主處理器可能夠執行大量指令而無需執行任何記憶體存取。舉例而言,主處理器可執行具有許多反覆之迴圈,其中每一反覆包括僅涉及內部變數之複雜數學計算。若所有內部變數置於快取記憶體中,則主處理器可遍歷迴圈而無需自應用程式記憶體進行讀取或寫入至應用程式記憶體。
因此,本發明人已認識且瞭解到,在一些情況下,即使阻止主處理器存取應用程式記憶體,標記處理硬體仍可能無法趕上主處理器。因此,在一些具體實例中,提供使主處理器回應於偵測到標記處理器硬體落後而執行記憶體存取的技術。舉例而言,回應於偵測到寫入互鎖之結果佇列或標記處理硬體之指令佇列變滿,可確證信號以使主處理器執行記憶體存取,該記憶體存取又可被停滯。
圖3A展示根據一些具體實例之說明性硬體介面300。硬體介面300可協調主處理器(例如,在圖1之實例中的說明性主處理器110)與標記處理硬體(例如,在圖1之實例中的說明性標記處理硬體140)之間的互動。舉例而言,硬體介面300可將主處理器110之ISA中的一指令變換成標記處理硬體140之ISA中的一或多個指令。用於變換指令之說明性技術描述於中2019年2月1申請之題為「用於變換用於元資料處理之指令的系統及方法(SYSTEMS AND METHODS FOR TRANSFORMING INSTRUCTIONS FOR METADATA PROCESSING)」的國際專利申請案第PCT/US2019/016276號中,該申請案以全文引用之方式併入本文中。然而,應瞭解,本發明之態樣不限於用於指令變換之特定技術,或根本不限於任何指令變換。
在一些具體實例中,主處理器110可經由主處理器追蹤介面告知硬體介面300:指令已由主處理器110執行。硬體介面300又可經由標記處理追蹤介面告知標記處理硬體140。標記處理硬體140可將所接收指令(其可能已由或可能尚未由硬體介面300變換)置放於指令佇列148中,該指令佇列可保存待由標記處理硬體140及/或策略處理器(例如,在圖1之實例中的說明性策略處理器150)檢查之指令。
在一些具體實例中,硬體介面300可包括寫入互鎖(例如,展示於圖1中之說明性寫入互鎖112)。用於寫入互鎖之說明性技術描述於2019年2月1日申請之題為「用於後快取互鎖之系統及方法(SYSTEMS AND METHODS FOR POST CACHE INTERLOCKING)」的國際專利申請案第PCT/US2019/016317號中,該申請案以全文引用之方式併入本文中。然而,應瞭解,本發明之態樣不限於用於寫入互鎖之任何特定技術,或根本不限於任何寫入互鎖。
本發明人已認識且瞭解到,寫入互鎖設計可經調適以與不同的主處理器設計相容。因此,可能需要包括寫入互鎖112作為硬體介面300之部分,使得標記處理硬體140可以獨立於主處理器設計之方式提供。然而,應瞭解,本發明之態樣不限於任何特定組件或組件之任何特定配置。在一些具體實例中,寫入互鎖112可為標記處理硬體140之部分。另外或替代地,本文中結合硬體介面300所描述之任何一或多個功能性可由標記處理硬體140執行。
在一些具體實例中,寫入互鎖112可包括結果佇列114,該結果佇列用於在產生結果之指令正由標記處理硬體140及/或策略處理器150檢查時儲存執行結果。若允許指令,則可自結果佇列114釋放對應結果且將對應結果寫入至應用程式記憶體(例如,在圖1之實例中的說明性應用程式記憶體120)中。
在一些具體實例中,主處理器110可經由匯流排(例如,在圖1之實例中的說明性匯流排115)存取應用程式記憶體120。匯流排115可實施任何合適的協定,諸如進階可擴展介面(Advanced eXtensible Interface;AXI)。舉例而言,為了自應用程式記憶體120讀取指令或資料片段,主處理器110可將具有儲存指令或資料之位址的讀取請求發送至匯流排115。匯流排115可例如藉由確證處理器側介面處之有效(VALID)信號及記憶體側介面處之就緒(READY)信號而執行交握。當兩個信號均為高時,可將位址傳輸至應用程式記憶體120。當應用程式記憶體120傳回所請求之指令或資料時,匯流排115可接著藉由確證記憶體側介面處之VALID信號及處理器側介面處之READY信號而執行另一交握。當兩個信號均為高時,可將所請求之指令或資料傳輸至主處理器110。
另外或替代地,為了將指令或資料片段寫入至應用程式記憶體120,主處理器110可將具有待寫入指令或資料之位址的寫入請求發送至匯流排115。匯流排115可例如藉由確證處理器側介面處之VALID信號及記憶體側介面處之READY信號而執行第一交握。當兩個信號均為高時,可將位址傳輸至應用程式記憶體120。匯流排115可接著例如藉由確證處理器側介面處之VALID信號及記憶體側介面處之READY信號而執行第二交握。當兩個信號均為高時,可將待寫入之指令或資料傳輸至應用程式記憶體120。當應用程式記憶體120以指令或資料已寫入所指示位址處之應答作出回應時,匯流排115可例如藉由確證記憶體側介面處之VALID信號及處理器側介面處之READY信號而執行第三交握。當兩個信號均為高時,可將應答傳輸至主處理器110。
本發明人已認識且瞭解到,主處理器110可藉由阻止主處理器110存取應用程式記憶體120來停滯。在一些具體實例中,硬體介面300可判定標記處理硬體140落後於主處理器110。舉例而言,硬體介面300可判定寫入互鎖112之結果佇列114經填充至第一臨限位準,或標記處理硬體140之指令佇列148經填充至第二臨限位準。作為回應,硬體介面300可將停滯(STALL)發送至匯流排115,該匯流排可使用STALL信號以在交握時閘控VALID信號及/或READY信號。此可防止交握成功直至撤銷確證STALL信號,此可在結果佇列114降至低於第三臨限位準(其可低於第一臨限位準)時或在指令佇列148降至低於第四臨限位準(其可低於第二臨限位準)時發生。根據一些具體實例,說明性第一、第二、第三及第四臨限位準展示於圖3B中。
另外或替代地,硬體介面300可使主處理器110回應於判定標記處理器硬體140落後而執行記憶體存取。舉例而言,當寫入互鎖112之結果佇列114經填充至第五臨限位準時或當標記處理硬體140之指令佇列148經填充至第六臨限位準時,硬體介面300可確證中斷(例如,不可遮蔽中斷,或僅可在高於待由標記處理硬體140保護之一或多個特殊權限模式之特殊權限模式中設定遮蔽的中斷),以使主處理器110執行對應中斷向量位址(可儲存對應於中斷之中斷處理常式)處之記憶體存取。根據一些具體實例,說明性第五及第六臨限位準展示於圖3B中。
本發明人已認識且瞭解到,一些主處理器設計可具有指明為不可快取之一或多個記憶體位址範圍。因此,在一些具體實例中,可選擇來自不可快取範圍之位址作為中斷向量位址,使得主處理器110可能必須回應於中斷而非依賴於快取來執行記憶體存取。
本發明人亦已認識且瞭解到,一些主處理器設計可提供用於基於位址而強制快取收回之機制。因此,在一些具體實例中,中斷處理常式可強制中斷向量位址之快取收回,使得當在未來再次確證中斷時,主處理器110可能必須執行記憶體存取。
在一些具體實例中,標記處理硬體140可在已確證停滯主處理器110之第一中斷之後檢查與由主處理器110執行之指令相關聯的元資料,以判定元資料是否指示該等指令為中斷處置程式碼之部分。若判定主處理器未執行中斷處置程式碼,則標記處理硬體140可確證第二中斷以使主處理器110執行對應於第二中斷之中斷向量位址處的程式碼。此程式碼又可使主處理器110跳轉至用於策略違反之中斷處理常式。
在一些具體實例中,標記處理硬體140可在已確證第二中斷以使主處理器110執行策略違反處理之後檢查與由主處理器110執行之指令相關聯的元資料。若判定主處理器未執行策略違反處理,則標記處理硬體140可確證另一信號以升級主處理器110之回應。舉例而言,可確證錯誤(ERROR)信號以使主處理器110停止或重設。
本發明人已認識且瞭解到,在許多主處理器設計中,不可遮蔽中斷可被快速處理(例如,即使應用程式處理器程式碼已停用中斷)。因此,確證不可遮蔽中斷可為停滯主處理器110之有效方式。然而,應瞭解,本發明之態樣不限於使用不可遮蔽中斷或根本不限於任何中斷。在一些具體實例中,可提供指示可能未遮蔽選定中斷之策略。若主處理器110執行嘗試遮蔽選定中斷之指令,則藉由標記處理硬體140檢查指令可觸發策略違反。舉例而言,與選定中斷之遮蔽相關聯的控制暫存器可藉由指示可能未修改控制暫存器之元資料來標記,且可提供指示應不允許指令之策略規則,該指令嘗試修改藉由此元資料標記之控制暫存器。
本發明人已進一步認識且瞭解到,確證停滯主處理器110之中斷可能會導致效率較低。舉例而言,回應於中斷,主處理器110可執行上下文切換,其可涉及切換暫存器、堆疊指標、程式計數器、位址空間等。因此,在一些具體實例中,可僅在已證明簡單地使主處理器110之記憶體存取不足為不夠的情況下才確證中斷。舉例而言,參看圖3B之實例,寫入互鎖112之結果佇列114的第五臨限位準(其可用於觸發中斷)可設定為高於第一臨限位準(其可用於觸發簡單的記憶體存取不足)。同樣地,標記處理硬體140之指令佇列148的第六臨限位準(其可用於觸發中斷)可設定為高於第二臨限位準(其可用於觸發簡單的記憶體存取不足)。以此方式,可減少與中斷相關聯之低效。
儘管實施細節展示於圖3A至圖3B中且論述於上文中,但應瞭解,本發明之態樣不限於實施之任何特定方式。舉例而言,在一些具體實例中,替代閘控匯流排交握或除閘控匯流排交握以外,可使用中間人(man-in-the-middle)方法。舉例而言,硬體組件可插入主處理器110與匯流排115之間。硬體組件可自主處理器110接受具有待讀取指令或資料片段(或待寫入指令或資料片段)之位址的請求,但可制止將位址轉遞至匯流排115直至標記處理硬體140已趕上。
亦應瞭解,並非所有組件皆可能展示於圖3A至圖3B中。舉例而言,除指令佇列148以外或替代指令佇列,標記處理硬體140亦可包括一或多個組件(例如,在圖1之實例中的說明性標記映射表142、規則快取記憶體144及/或標記暫存器檔案146)。
如上文所論述,在一些具體實例中,主處理器可經組態以藉由自對應於經確證中斷之中斷向量位址擷取中斷處理常式對中斷作出回應。本發明人已認識且瞭解到,策略處理器可能夠藉由將一或多個選定指令儲存於中斷向量位址處來影響主處理器之行為。
圖4展示根據一些具體實例之說明性應用程式記憶體位置400。舉例而言,應用程式記憶體位置400可在與主處理器(例如,在圖3A之實例中的說明性主處理器110)之中斷相關聯的中斷向量位址處。
在一些具體實例中,可回應於判定標記處理硬體(例如,在圖3A之實例中的說明性標記處理器硬體140)落後於主處理器110而確證中斷。舉例而言,當諸如在圖3A至圖3B之實例中之說明性結果佇列114的結果佇列經填充至第五臨限位準時或當諸如在圖3A至圖3B之實例中之說明性指令佇列148的指令佇列經填充至第六臨限位準時,可確證中斷以使主處理器110自記憶體位置400進行讀取。在一些具體實例中,此讀取可停滯直至標記處理硬體140趕上主處理器110。舉例而言,該讀取可停滯直至結果佇列114下降至低於第三臨限位準(其可低於第一臨限位準及第五臨限位準),或直至指令佇列148下降至低於第四臨限位準(其可低於第二臨限位準及第六臨限位準)。
在一些具體實例中,策略處理器(例如,在圖3A之實例中的說明性策略處理器150)可將選定指令寫入至記憶體位置400中。舉例而言,若已確證中斷以停滯主處理器110,則策略處理器150可將指令寫入至記憶體位置400中,當由主處理器110在已釋放停滯之後執行時,該指令使主處理器110自中斷返回。以此方式,僅一個額外指令(即,自中斷傳回)可插入至主處理器110之執行中,此可減少與上下文切換(例如,暫存器內容之堆疊)相關聯的低效。
如上文結合圖3A之實例所論述,可選擇不可快取之位址作為中斷向量位址(其可指向在圖4之實例中的記憶體位置400)。另外或替代地,可快取位址可用作中斷向量位址,且對應的中斷處理常式可強制中斷向量位址之快取收回。另外或替代地,可快取但一致之位址可用作中斷向量位址,使得可藉由修改儲存於中斷向量位址處之內容(例如,當策略處理器150將選定指令寫入至記憶體位置400中時)來觸發快取收回。
在一些具體實例中,在已確證中斷以停滯主處理器110之後,可出於另一原因再次確證中斷。作為一個實例,可回應於由標記處理硬體140(例如,如上文結合圖1之實例所論述)識別之策略違反而確證中斷。在彼狀況下,策略處理器150可將指令寫入至記憶體位置400中,該指令在由主處理器110執行時使主處理器110執行策略違反處理,諸如停止、重設、記載違反及繼續、對應用程式碼及/或應用程式資料執行完整性檢查、通知操作者等。主處理器110可讀取此指令而不停滯。
作為另一實例,可出於與元資料處理不相關之原因而確證中斷。在彼狀況下,記憶體位置400可儲存預設指令,該預設指令在由主處理器110執行時使主處理器110跳轉至檢查一或多個其他中斷源之其他程式碼。主處理器110可讀取此指令而不停滯。
儘管阻止主處理器存取應用程式記憶體可為停滯主處理器之有效方式,但本發明人已認識且瞭解到,用以實施此停滯之硬體邏輯可減慢主處理器之記憶體存取。舉例而言,本發明人已認識到且瞭解到,甚至當兩個輸入中之一者為高時,用於實施與兩個輸入之邏輯「及(AND)」的一或多個多工器亦可導致減慢(使得邏輯AND僅對另一輸入實施恆等函數)。因此,甚至當主處理器不停滯時,用於在記憶體存取交握時閘控VALID信號及/或READY信號之一或多個多工器亦可引起減慢。因此,在一些具體實例中,提供用於停滯主處理器而無需閘控主處理器之記憶體存取的技術。
圖5展示根據一些具體實例之說明性暫存器500。暫存器500可為主處理器(例如,在圖4之實例中的說明性主處理器110)與標記處理硬體(例如,在圖4之實例中的說明性標記處理硬體140)之間的硬體介面(例如,在圖4之實例中的說明性硬體介面300)之部分。然而,應瞭解,本發明之態樣不限於組件之任何特定配置。在一些具體實例中,暫存器500可設置於硬體介面300外部。
在一些具體實例中,主處理器110可經由資料匯流排505存取暫存器500。另外或替代地,策略處理器(例如,在圖4之實例中的說明性策略處理器150)可例如經由標記處理硬體140存取暫存器500。
在圖5之實例中,可回應於判定說明性標記處理器硬體140落後於主處理器110而確證中斷。舉例而言,當諸如在圖3A至圖3B之實例中之說明性結果佇列114的結果佇列經填充至第五臨限位準時或當諸如在圖3A至圖3B之實例中之說明性指令佇列148的指令佇列經填充至第六臨限位準時,可確證中斷以使主處理器110自記憶體位置400進行讀取。此讀取可經由諸如在圖4之實例中之說明性匯流排115的匯流排執行。在此實例中,匯流排115可為指令匯流排。
在一些具體實例中,策略處理器150可將選定指令寫入至記憶體位置400中。舉例而言,策略處理器150可將指令寫入至記憶體位置400中,該指令在由主處理器110執行時使主處理器110經由資料匯流排505自暫存器500進行讀取。若中斷經確證以停滯主處理器110,則此讀取可停滯直至標記處理硬體140趕上主處理器110。舉例而言,讀取可停滯直至展示於圖3A至圖3B中之結果佇列114下降至低於第三臨限位準(其可低於第一臨限位準及第五臨限位準),或直至展示於圖3A至圖3B中之指令佇列148下降至低於第四臨限位準(其可低於第二臨限位準及第六臨限位準)。
在一些具體實例中,策略處理器150可將指示確證中斷之原因的值寫入至暫存器500中。作為一個實例,中斷可經確證以停滯主處理器110。在自暫存器500讀取指示停滯之值後,主處理器110可經組態以自中斷返回且重新繼續執行。本發明人已認識到且瞭解到,在主處理器110能夠自暫存器500進行讀取時,必須已釋放資料匯流排505上之停滯,且因此標籤處理硬體140必須已趕上主處理器110。
作為另一實例,可確證中斷以通知主處理器110策略違反。主處理器110可經組態以在自暫存器500讀取指示策略違反之值後執行策略違反處理。
作為又一實例,可出於與元資料處理不相關之原因而確證中斷,且自暫存器500讀取之值可如此指示。主處理器110可經組態以檢查一或多個其他可能之中斷源,且可跳轉至適當的中斷處理常式。
本發明人已認識到且瞭解到,藉由經由暫存器500與主處理器110通信,可實施停滯而無需閘控主處理器110之記憶體存取。然而,更多指令可由主處理器110回應於中斷而執行,且因此更多指令可由標記處理硬體140及/或策略處理器150檢查。此外,主處理器110可使用暫存器以形成用於暫存器500之資料匯流排位址,因此與上下文切換(例如,暫存器內容之堆疊)相關聯之效率可較低。
應瞭解,本發明之態樣不限於任何特定組件或組件之任何特定配置。舉例而言,本發明之態樣不限於使用分開的指令及資料匯流排,諸如在圖5之實例中的說明性匯流排115及505。在一些具體實例中,說明性匯流排115可充當指令匯流排及資料匯流排兩者。
此外,本發明人已認識且瞭解到,一些系統具有用於指令及資料之分開的記憶體區,其中資料記憶體存取之減慢相比指令記憶體存取之減慢對效能之損害較小。因此,在一些具體實例中,提供用於藉由閘控資料記憶體存取而不閘控指令記憶體存取來停滯主處理器的技術。
圖6展示根據一些具體實例之說明性應用程式記憶體位置600。舉例而言,記憶體位置600可在可指明用於資料之圖5之實例中的說明性應用程式記憶體120之一部分中,而在圖5之實例中的說明性記憶體位置400可在可指明用於指令之說明性應用程式記憶體120之一部分中。
在一些具體實例中,策略處理器150可將指令寫入至記憶體位置400中,該指令在由主處理器110執行時使主處理器110自資料記憶體位置600(而非在圖5之實例中的說明性暫存器500)進行讀取。此讀取可停滯直至標記處理硬體140準備好接受來自主處理器110之更多已執行指令。資料記憶體位置600可儲存指示確證中斷之原因的值,例如,如上文結合圖5之實例所論述。
應瞭解,本發明之態樣不限於確證中斷以使主處理器100執行載入操作。在一些具體實例中,策略處理器150可將指令寫入至記憶體位置400中,該指令在由主處理器110執行時使主處理器110將值儲存至展示於圖5中之說明性暫存器500或展示於圖6中之資料記憶體位置600中。暫存器500或資料記憶體位置600之位址可為不可快取的,使得儲存操作可藉由說明性寫入互鎖112停滯直至儲存操作由標記處理硬體140及/或策略處理器150檢查。
亦應瞭解,本發明之態樣不限於策略處理器150將指令寫入至記憶體位置400中。在一些具體實例中,除策略處理器150以外或替代策略處理器,亦可由介面硬體300及/或標記處理硬體140將指令寫入至記憶體位置中。另外或替代地,記憶體位置400中之指令可為靜態的。舉例而言,記憶體位置400可初始化有指令,該指令在由主處理器110執行時使主處理器110自在圖6之實例中的記憶體位置600或在圖5之實例中的暫存器500進行讀取。此指令可保留在記憶體位置400中。
亦應瞭解,本文中所描述之說明性技術可以任何合適組合來使用。舉例而言,在一些具體實例中,可回應於判定說明性結果佇列114經填充至第一臨限位準或說明性指令佇列148經填充至第二臨限位準而停滯所有匯流排(例如,資料匯流排及指令匯流排)上之所有交易(例如,載入及儲存兩者),例如,如結合圖3A至圖3B所論述。若結果佇列114繼續填充至第五臨限位準或若指令佇列148繼續填充至第六臨限位準,則可確證中斷以使說明性主處理器110在對應中斷向量位址(可儲存對應於中斷之中斷處理常式)處執行記憶體存取。此記憶體存取可停滯,此係因為所有匯流排交易停滯。
在一些具體實例中,在主處理器110停滯時,說明性標記處理硬體140可趕上。舉例而言,結果佇列114可下降至低於第三臨限位準(其可低於第一臨限位準),或當指令佇列148下降至低於第四臨限位準(其可低於第二臨限位準)時,例如,如結合圖3A至圖3B所論述。結果,可允許所有匯流排交易繼續進行,包括在中斷向量位址處之指令提取。對應中斷處理常式可使主處理器110檢查由說明性策略處理器150控制之狀態暫存器,例如,如結合圖5所論述。另外或替代地,中斷處理常式可使主處理器110檢查一或多個其他狀態暫存器,該一或多個其他狀態暫存器可由亦可引起中斷之一或多個其他硬體組件控制。可在由策略處理器150控制之狀態暫存器之前或之後檢查一或多個其他狀態暫存器。若未發現指示未決中斷之狀態暫存器,則主處理器110可重新繼續正常操作。
在一些具體實例中,若由策略處理器150控制之狀態暫存器指示中斷經確證以停滯主處理器110,則主處理器110可重新繼續正常操作而無需檢查任何其他狀態暫存器。在允許主處理器110重新繼續之前,中斷處理常式可使保存中斷處理常式之條目指令的快取行失效。若已出於除停滯以外之原因而確證中斷,則主處理器110可在自中斷處理常式返回後判定中斷信號仍為高。作為回應,主處理器110可嘗試在中斷向量位址處執行指令提取。因為保存中斷處理常式之條目指令的快取行已失效,所以指令可自記憶體位置400載入。此指令在由主處理器110執行時可使主處理器110檢查由除策略處理器150以外之一或多個硬體組件控制的一或多個其他狀態暫存器。
應瞭解,本發明之態樣不限於使主處理器回應於偵測到標記處理器硬體落後而執行匯流排交易。在一些具體實例中,可使主處理器定期地執行匯流排交易。舉例而言,可提供編譯器以將載入操作插入至目標程式碼中(例如,對於某一合適的N,每N個指令插入一載入操作),其中載入操作可嘗試存取不可快取之位址。可例如使用結合圖4至圖6所描述之技術中之一或多者來停滯一或多個此類載入操作。以此方式,可減少與上下文切換相關聯之低效,同時定期地提供用於在適當時停滯主處理器之機會。
本發明人已認識到且瞭解到,基於中斷之方法可導致大的效能損失(例如,由於與上下文切換相關聯之低效),但僅為偶爾的情況,而基於程式碼注入之方法可定期地導致適度的效能損失。因此,在一些具體實例中,可使用預期待部署之軟體來執行測試。舉例而言,可進行一或多個測試運行而無程式碼注入。若頻繁地觀察到用於停滯之中斷,則程式碼注入可用以減少此中斷之出現。舉例而言,可藉由針對不同N值而每N個指令插入一載入操作來進行多個測試運行,且可選擇達成所要效能概況之合適N。
在一些具體實例中,基於下游組件之容量,諸如在圖3A至圖3B之實例中的說明性結果佇列114或說明性指令佇列148之臨限位準,可選擇N值。舉例而言,可選擇值N使得佇列將不太可能填充直至臨限位準。
在一些具體實例中,替代固定N值,可以任意選擇之間隔插入載入操作。可使用合適機率分佈,諸如具有合適均值及標準偏差之高斯分佈。舉例而言,可基於下游組件之容量(例如,在圖3A至圖3B之實例中的說明性結果佇列114或說明性指令佇列148之臨限位準)而選擇均值及/或標準偏差,使得下游組件之容量不太可能被超出(例如,小於某臨限機率)。
在一些具體實例中,可選擇下游組件中之佇列(例如,在圖3A至圖3B之實例中的說明性結果佇列114或說明性指令佇列148)的大小,以允許佇列保存在搶先式作業系統之單個配量中可產生之數個結果或可執行之指令。可提供作業系統任務切換器,其在連續配量之間檢查佇列是否已充分清空以保存另一配量。若佇列尚未充分清空,則任務切換器可應用本文中所描述之說明性技術中之一或多者以用於停滯主處理器。
應瞭解,本發明之態樣不限於藉由阻止主處理器執行載入操作而停滯主處理器。
在一些具體實例中,可使用硬體斷點,例如藉由經由聯合測試行動群組(Joint Test Action Group;JTAG)匯流排發出命令以設定斷點位址來停滯主處理器。
亦應瞭解,本文中所描述之停滯技術中之一或多者可用於除元資料處理以外之目的。舉例而言,本發明人已識別且瞭解到,一些追蹤介面經設計以俘獲執行追蹤之小部分以用於分析(例如,對於某一合適M,在觸發之後的M個指令)。此追蹤介面可能不適合於持續監控主處理器。因此,在一些具體實例中,本文中所描述之停滯技術中之一或多者可用以在追蹤除錯期間停滯主處理器。
下文提供本發明之各種態樣之說明性組態。
A1. 一種用於停滯一主處理器之方法,該方法包含以下動作:
使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一匯流排交易;及
阻止該主處理器完成該一或多個選定交易,以藉此停滯該主處理器。
A2. 如組態A1之方法,其中:
該主處理器經由一通信路徑與一下游組件通信;
該匯流排交易係在處於該主處理器與該下游組件之間的該通信路徑外部的一匯流排上起始;且
阻止該主處理器完成該一或多個選定交易之該動作係回應於判定該下游組件落後於該主處理器而執行。
A3. 如組態A1之方法,其中:
該匯流排交易係選自由以下各者組成之一群組:一指令匯流排交易及一資料匯流排交易。
A4. 如組態A2之方法,其中:
該匯流排交易係選自由以下各者組成之一群組:一載入操作及一儲存操作。
A5. 如組態A1之方法,其中:
使該主處理器起始一或多個選定交易之該動作包含確證一中斷以使該主處理器起始該匯流排交易,該匯流排交易包含關於一選定位址之一操作。
A6. 如組態A5之方法,其中:
該中斷包含一不可遮蔽中斷。
A7. 如組態A5之方法,其中:
該選定位址包含對應於該中斷之一中斷向量位址;且
阻止該主處理器完成該匯流排交易之該動作包含阻止該主處理器自該中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令。
A8. 如組態A7之方法,其進一步包含以下的一動作:
在該中斷向量位址處儲存一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器自該中斷返回。
A9. 如組態A7之方法,其進一步包含以下的一動作:
在該中斷向量位址處儲存一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器檢查該中斷之一原因。
A10. 如組態A7之方法,其中:
該中斷包含一第一中斷;且
該方法進一步包含以下動作:
判定在該第一中斷之後是否已確證一第二中斷;及
回應於判定在該第一中斷之後已確證一第二中斷,在該中斷向量位址處儲存一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器跳轉至對應於該第二中斷之一中斷處理常式。
A11. 如組態A5之方法,其中:
該選定位址包含一選定暫存器之一位址;且
阻止該主處理器完成該匯流排交易之該動作包含阻止該主處理器存取該選定暫存器。
A12. 如組態A11之方法,其中:
阻止該主處理器完成該匯流排交易之該動作包含阻止該主處理器將一值儲存至該選定暫存器。
A13. 如組態A11之方法,其中:
阻止該主處理器完成該匯流排交易之該動作包含阻止該主處理器載入儲存於該選定暫存器中之一值。
A14. 如組態A13之方法,其進一步包含以下的一動作:
將該值儲存於該選定暫存器中,其中該值指示該中斷之一原因。
A15. 如組態A11之方法,其進一步包含以下的一動作:
在對應於該中斷之一中斷向量位址處儲存一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器存取該選定暫存器。
A16. 如組態A1之方法,其進一步包含以下的一動作:
偵測停滯該主處理器之一觸發事項,其中使該主處理器起始一或多個選定交易之該動作係回應於偵測到停滯該主處理器之該觸發事項而執行。
A17. 如組態A16之方法,其進一步包含以下的一動作:
處理與由該主處理器執行之指令相關聯的元資料以檢查是否允許該等指令,其中偵測停滯該主處理器之一觸發事項的該動作包含判定元資料處理落後於該主處理器之執行。
A18. 如組態A17之方法,其進一步包含以下動作:
在正檢查產生該主處理器之執行之一結果的一指令時將該結果儲存於一結果佇列中;及
回應於判定待允許該指令,將該結果寫入至一應用程式記憶體,其中偵測停滯該主處理器之一觸發事項的該動作包含判定該結果佇列經填充至一選定臨限位準。
A19. 如組態A17之方法,其進一步包含以下的一動作:
將待檢查之指令儲存於一指令佇列中,其中偵測停滯該主處理器之一觸發事項的該動作包含判定該指令佇列經填充至一選定臨限位準。
A20. 如組態A17之方法,其進一步包含以下的一動作:
回應於判定該元資料處理不再落後於該主處理器之執行而允許該主處理器完成該一或多個選定交易。
A21. 如組態A1之方法,其中:
使該主處理器起始一或多個選定交易之該動作包含將一或多個指令插入至目標程式碼中,該一或多個指令在由該主處理器執行時使該主處理器起始該一或多個選定交易。
A22. 如組態A21之方法,其中:
該一或多個指令係以基於消耗該主處理器之輸出的一下游組件之一容量而選擇的一頻率插入至該目標程式碼中。
A23. 如組態A22之方法,其中:
該下游組件之該容量係基於一搶先式作業系統之一配量而選擇。
A24. 如組態A22之方法,其中:
該頻率係根據一機率分佈而選擇。
B1. 一種用於沿著一上游組件與一下游組件之間的一通信路徑停滯一第一匯流排上之交易的方法,該方法包含以下動作:
使該上游組件起始一第二匯流排上之一交易,其中該第二匯流排處於該上游組件與該下游組件之間的該通信路徑外部;及
停滯該第二匯流排上之該交易以藉此停滯該上游組件。
B2. 如組態B1之方法,其中:
該第一匯流排不提供一原生停滯信號。
B3. 如組態B2之方法,其中:
使該上游組件起始一第二匯流排上之一交易的該動作係回應於偵測到該下游組件落後於該上游組件而執行。
C1. 一種系統,其包含電路系統及/或由可執行指令程式化之一或多個處理器,其中該電路系統及/或該一或多個經程式化處理器經組態以執行如組態A1至A24及B1至B3中任一項之方法。
D1. 至少一個電腦可讀取媒體,其具有儲存於其上之用於如組態C1之電路系統的至少一個接線對照表。
D2. 至少一個電腦可讀取媒體,其具有儲存於其上之至少一個硬體描述,該至少一個硬體描述在經合成時產生如組態D1之至少一個接線對照表。
D3. 如組態D2之至少一個電腦可讀取媒體,其中該至少一個硬體描述呈一加密形式。
D4. 至少一個電腦可讀取媒體,其具有儲存於其上之如組態C1之可執行指令。
圖7示意性地展示說明性電腦71000,其上可實施本發明之任何態樣。
在圖7中所展示之具體實例中,電腦1000包括具有一或多個處理器之處理單元1001及可包括例如揮發性及/或非揮發性記憶體之非暫時性電腦可讀取儲存媒體1002。記憶體1002可儲存用以程式化處理單元1001以執行本文中所描述功能中之任一者的一或多個指令。除系統記憶體1002以外,電腦1000亦可包括其他類型之非暫時性電腦可讀取媒體,諸如儲存器1005(例如,一或多個磁碟機)。儲存器1005亦可儲存可載入至記憶體1002中之一或多個應用程式及/或由應用程式(例如,軟體程式庫)使用之資源。
電腦1000可具有一或多個輸入裝置及/或輸出裝置,諸如圖7中所說明之裝置1006及1007。除了其他以外,此等裝置亦可用以呈現使用者介面。可用以提供使用者介面之輸出裝置之實例包括用於輸出之視覺呈現的印表機或顯示螢幕,及用於輸出之聽覺呈現的揚聲器或其他聲音產生裝置。可用於使用者介面之輸入裝置的實例包括鍵盤及指標裝置,諸如滑鼠、觸控板及數位化輸入板。作為另一實例,輸入裝置1007可包括用於俘獲音訊信號之麥克風,且輸出裝置1006可包括用於視覺再現已辨識文字之顯示螢幕,及/或用於聽覺再現已辨識文字之揚聲器。
如圖7中所展示,電腦1000亦可包含一或多個網路介面(例如,網路介面1010)以經由各種網路(例如,網路1020)實現通信。網路之實例包括區域網路或廣域網路,諸如企業網路或網際網路。此類網路可基於任何合適的技術且可根據任何合適的協定操作且可包括無線網路、有線網路或光纖網路。
在已因此描述至少一個具體實例之若干態樣後,應瞭解,所屬領域中具有通常知識者將易於想到各種更改、修改及改良。此類更改、修改及改良意欲在本發明之精神及範圍內。因此,前文描述及圖式僅作為實例。
本發明之上述具體實例可以眾多方式中之任一者來實施。舉例而言,可使用硬體、軟體或其組合實施具體實例。當以軟體實施時,軟體程式碼可在任何合適的處理器或處理器集合(設置於單個電腦中抑或分佈於多個電腦當中)上執行。
又,本文中所概述之各種方法或程序可經寫碼為可在運行多種作業系統或平台中之任一者的一或多個處理器上執行的軟體。此類軟體可使用包括指令碼處理語言及/或指令碼處理工具之數種合適的程式設計語言及/或程式設計工具中之任一者編寫。在一些情況下,此類軟體可編譯為在架構或虛擬機上執行之可執行機器語言程式碼或中間程式碼。另外或替代地,此類軟體可經解譯。
本文中所揭示之技術可體現為編碼有一或多個程式之一非暫時性電腦可讀取媒體(或多個電腦可讀取媒體)(例如,一電腦記憶體、一或多個軟碟、緊密光碟、光碟、磁帶、快閃記憶體、場可程式化閘陣列或其他半導體裝置或其他非暫時性有形電腦儲存媒體中之電路組態),該一或多個程式在執行於一或多個處理器上時執行實施上文所論述之本發明之各種具體實例的方法。一或多個電腦可讀取媒體可為可輸送的,使得其上儲存之一或多個程式可載入至一或多個不同電腦或其他處理器上以實施如上文所論述之本發明之各個態樣。
術語「程式」或「軟體」在本文中用以指任何類型之電腦程式碼或電腦可執行指令之集合,其可用於程式化一或多個處理器以實施如上文所論述之本發明之各個態樣。此外,應瞭解,根據此具體實例之一個態樣,在經執行時執行本發明之方法的一或多個電腦程式無需駐存於單個電腦或處理器上,但可以模組化方式分佈於數個不同電腦或處理器當中以實施本發明之各個態樣。
電腦可執行指令可呈許多形式,諸如由一或多個電腦或其他裝置執行的程式模組。程式模組可包括執行特定任務或實施特定抽象資料類型的常式、程式、物件、組件、資料結構等。在各種具體實例中,程式模組之功能性可視需要組合或分佈。
又,資料結構可以任何合適之形式儲存於電腦可讀取媒體中。出於說明簡單起見,資料結構可被展示為具有經由資料結構中之位置而相關的欄位。可同樣藉由將用於欄位之儲存區指派至電腦可讀取媒體中傳達欄位之間的關係的位置而實現此類關係。然而,任何合適的機制可用以在資料結構之欄位中的資訊之間建立關係,包括經由使用指標、標記或在資料元素之間建立關係的其他機制。
本發明之各種特徵及態樣可單獨使用、以兩者或多於兩者之任何組合或以前述內容中所描述之具體實例中未特定論述之多種配置使用,且因此不限於前述描述中所闡述的或圖式中所說明的組件之細節及配置。舉例而言,一個具體實例中所描述之態樣可按任何方式與其他具體實例中所描述之態樣組合。
又,本文中所揭示之技術可體現為方法,已提供該等方法之實例。作為方法之部分所執行的動作可以任何合適的方式排序。因此,可建構如下具體實例:其中動作以不同於所說明次序之次序執行,此可包括同時執行一些動作,即使此等動作在說明性具體實例中被展示為依序動作。
在申請專利範圍中使用諸如「第一」、「第二」、「第三」等序數術語修飾請求項要素本身不意味著一個請求項要素相對於另一請求項要素的任何優先權、優先性或次序或執行方法動作之時間次序,而是僅用作標籤以區分具有某一名稱之一個請求項要素與具有相同名稱(但使用序數術語)之另一要素,以區分該等請求項要素。
又,本文中所使用之措辭及術語係出於描述之目的,且不應被視為限制性的。本文中對「包括」、「包含」或「具有」、「含有」、「涉及」及其變體的使用意謂涵蓋在其後所列出的項目及其等效物以及額外項目。
100:硬體系統
110:主處理器
112:寫入互鎖
114:結果佇列
115:系統匯流排
120:應用程式記憶體
125:元資料記憶體
130:唯讀記憶體
135:周邊裝置
140:標記處理硬體
142:標記映射表
144:規則快取記憶體
146:標記暫存器檔案
148:指令佇列
150:策略處理器
200:軟體系統
205:編譯器
210:連結器
215:載入器
220:策略編譯器
225:策略連結器
230:除錯器
300:硬體介面
400:應用程式記憶體位置
500:暫存器
505:資料匯流排
600:應用程式記憶體位置/資料記憶體位置
1000:電腦
1001:處理單元
1002:非暫時性電腦可讀取儲存媒體/系統記憶體
1005:儲存器
1006:輸出裝置
1007:輸入裝置
1010:網路介面
1020:網路
圖1展示根據一些具體實例之用於實行策略之說明性硬體系統100。
圖2展示根據一些具體實例之用於實行策略之說明性軟體系統200。
圖3A展示根據一些具體實例之說明性硬體介面300。
圖3B展示根據一些具體實例之在圖3A之實例中的說明性結果佇列114及說明性指令佇列148。
圖4展示根據一些具體實例之說明性應用程式記憶體位置400。
圖5展示根據一些具體實例之說明性暫存器500。
圖6展示根據一些具體實例之說明性應用程式記憶體位置600。
圖7示意性地展示說明性電腦1000,其上可實施本發明之任何態樣。
100:硬體系統
110:主處理器
112:寫入互鎖
115:系統匯流排
120:應用程式記憶體
125:元資料記憶體
130:唯讀記憶體
135:周邊裝置
140:標記處理硬體
142:標記映射表
144:規則快取記憶體
146:標記暫存器檔案
150:策略處理器
Claims (10)
- 一種用於停滯一主處理器之方法,該方法包含以下動作: 使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一資料匯流排交易;及 阻止該主處理器完成該資料匯流排交易,以藉此停滯該主處理器,其中: 使該主處理器起始一或多個選定交易之動作包含確證一中斷以使該主處理器自一中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令; 該一或多個指令在由該主處理器執行時使該主處理器檢查該中斷之一原因;且 阻止該主處理器完成該資料匯流排交易之動作包含阻止該主處理器檢查該中斷之一原因。
- 一種用於停滯一主處理器之方法,該方法包含以下動作: 使該主處理器起始一或多個選定交易,其中該一或多個選定交易包含一資料匯流排交易;及 阻止該主處理器完成該資料匯流排交易,以藉此停滯該主處理器,其中: 使該主處理器起始一或多個選定交易之動作包含確證一中斷以使該主處理器自一中斷向量位址載入對應於該中斷之一中斷處理常式的一或多個指令; 該一或多個指令在由該主處理器執行時使該主處理器存取一選定暫存器;且 阻止該主處理器完成該資料匯流排交易之動作包含阻止該主處理器存取該選定暫存器。
- 如請求項2所述之方法,其中: 阻止該主處理器完成該資料匯流排交易之動作包含阻止該主處理器載入儲存於該選定暫存器中之一值。
- 如請求項3所述之方法,其進一步包含以下的動作: 將該值儲存於該選定暫存器中,其中該值指示該中斷之原因。
- 如請求項2所述之方法,其進一步包含以下的動作: 在對應於該中斷之該中斷向量位址處儲存該一或多個指令,該一或多個指令在由該主處理器執行時使該主處理器存取該選定暫存器。
- 一種包含電路系統及/或由可執行指令程式化之一或多個處理器的系統,其中該電路系統及/或該一或多個經程式化處理器經組態以執行如請求項1至5中任一項所述之方法。
- 一種具有儲存於其上的至少一個接線對照表之至少一個電腦可讀取媒體,所述至少一個接線對照表用於如請求項6所述之電路系統。
- 一種具有儲存於其上的至少一個硬體描述之至少一個電腦可讀取媒體,所述至少一個硬體描述在被合成時產生如請求項7所述之至少一個接線對照表。
- 如請求項8所述之至少一個電腦可讀取媒體,其中該至少一個硬體描述呈一加密形式。
- 一種具有儲存於其上的可執行指令之至少一個電腦可讀取媒體,所述可執行指令是如請求項6所述之可執行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862756465P | 2018-11-06 | 2018-11-06 | |
US62/756,465 | 2018-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202022679A true TW202022679A (zh) | 2020-06-16 |
Family
ID=69160004
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140268A TW202022679A (zh) | 2018-11-06 | 2019-11-06 | 用於停滯主處理器的系統和方法 |
TW108140267A TW202022678A (zh) | 2018-11-06 | 2019-11-06 | 用於停滯主處理器的系統和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140267A TW202022678A (zh) | 2018-11-06 | 2019-11-06 | 用於停滯主處理器的系統和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20210255890A1 (zh) |
EP (1) | EP3877874A1 (zh) |
TW (2) | TW202022679A (zh) |
WO (2) | WO2020097177A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449450B2 (en) | 2020-11-18 | 2022-09-20 | Raymx Microelectronics Corp. | Processing and storage circuit |
TWI786476B (zh) * | 2020-11-25 | 2022-12-11 | 大陸商合肥沛睿微電子股份有限公司 | 處理暨儲存電路 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235176B2 (en) | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
TW201935306A (zh) | 2018-02-02 | 2019-09-01 | 美商多佛微系統公司 | 用於安全初始化的策略連結及/或載入之系統和方法 |
SG11202007272QA (en) * | 2018-02-02 | 2020-08-28 | Charles Stark Draper Laboratory Inc | Systems and methods for policy execution processing |
WO2019213061A1 (en) | 2018-04-30 | 2019-11-07 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
WO2020097177A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US12079197B2 (en) | 2019-10-18 | 2024-09-03 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
US11960922B2 (en) * | 2020-09-24 | 2024-04-16 | Intel Corporation | System, apparatus and method for user space object coherency in a processor |
KR102393795B1 (ko) * | 2021-08-26 | 2022-05-03 | 시큐레터 주식회사 | 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치 |
WO2023034586A1 (en) * | 2021-09-03 | 2023-03-09 | Dover Microsystems, Inc. | Systems and methods for on-demand loading of metadata |
Family Cites Families (312)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5201056A (en) | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
DE69130138T2 (de) | 1990-06-29 | 1999-05-06 | Digital Equipment Corp., Maynard, Mass. | Sprungvorhersageeinheit für hochleistungsfähigen Prozessor |
US5778423A (en) | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
WO1992003779A1 (en) * | 1990-08-23 | 1992-03-05 | Supercomputer Systems Limited Partnership | Method of efficient communication between coprocessors |
US5287467A (en) | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
US7095783B1 (en) | 1992-06-30 | 2006-08-22 | Discovision Associates | Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto |
US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
JPH06332664A (ja) | 1993-03-23 | 1994-12-02 | Toshiba Corp | 表示制御システム |
US5485455A (en) | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5664223A (en) | 1994-04-05 | 1997-09-02 | International Business Machines Corporation | System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively |
US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
US5655100A (en) | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
US5848433A (en) | 1995-04-12 | 1998-12-08 | Advanced Micro Devices | Way prediction unit and a method for operating the same |
US5764946A (en) | 1995-04-12 | 1998-06-09 | Advanced Micro Devices | Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address |
US5664197A (en) | 1995-04-21 | 1997-09-02 | Intel Corporation | Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JPH0969047A (ja) | 1995-09-01 | 1997-03-11 | Sony Corp | Risc型マイクロプロセッサおよび情報処理装置 |
US5864707A (en) | 1995-12-11 | 1999-01-26 | Advanced Micro Devices, Inc. | Superscalar microprocessor configured to predict return addresses from a return stack storage |
US6622182B1 (en) * | 1996-09-08 | 2003-09-16 | Silicon Graphics, Inc. | Upstream situated apparatus and method for providing high bandwidth data flow control to an input/output unit |
US6058466A (en) | 1997-06-24 | 2000-05-02 | Sun Microsystems, Inc. | System for allocation of execution resources amongst multiple executing processes |
US6035374A (en) | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US5890008A (en) | 1997-06-25 | 1999-03-30 | Sun Microsystems, Inc. | Method for dynamically reconfiguring a processor |
US6240502B1 (en) | 1997-06-25 | 2001-05-29 | Sun Microsystems, Inc. | Apparatus for dynamically reconfiguring a processor |
US5941981A (en) | 1997-11-03 | 1999-08-24 | Advanced Micro Devices, Inc. | System for using a data history table to select among multiple data prefetch algorithms |
US6321297B1 (en) | 1998-01-05 | 2001-11-20 | Intel Corporation | Avoiding tag compares during writes in multi-level cache hierarchy |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6351784B1 (en) | 1998-12-28 | 2002-02-26 | International Business Machines Corp. | System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction |
US6324599B1 (en) | 1999-01-11 | 2001-11-27 | Oak Technology | Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor |
US6247097B1 (en) | 1999-01-22 | 2001-06-12 | International Business Machines Corporation | Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions |
US6636523B1 (en) | 1999-01-27 | 2003-10-21 | Advanced Micro Devices, Inc. | Flow control using rules queue monitoring in a network switching system |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8121828B2 (en) | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
US7065633B1 (en) | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6549903B1 (en) | 1999-02-17 | 2003-04-15 | Elbrus International Limited | Integrity of tagged data |
US6625146B1 (en) | 1999-05-28 | 2003-09-23 | Advanced Micro Devices, Inc. | Method and apparatus for operating a network switch in a CPU-less environment |
US7254806B1 (en) | 1999-08-30 | 2007-08-07 | Ati International Srl | Detecting reordered side-effects |
US6748589B1 (en) | 1999-10-20 | 2004-06-08 | Transmeta Corporation | Method for increasing the speed of speculative execution |
US6438673B1 (en) | 1999-12-30 | 2002-08-20 | Intel Corporation | Correlated address prediction |
US7213247B1 (en) | 2000-01-10 | 2007-05-01 | Wind River Systems, Inc. | Protection domains for a computer operating system |
US6925549B2 (en) | 2000-12-21 | 2005-08-02 | International Business Machines Corporation | Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages |
US6560690B2 (en) | 2000-12-29 | 2003-05-06 | Intel Corporation | System and method for employing a global bit for page sharing in a linear-addressed cache |
US7062638B2 (en) | 2000-12-29 | 2006-06-13 | Intel Corporation | Prediction of issued silent store operations for allowing subsequently issued loads to bypass unexecuted silent stores and confirming the bypass upon execution of the stores |
GB0102516D0 (en) | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Trusted gateway system |
GB0102518D0 (en) | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Trusted operating system |
GB0102515D0 (en) | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Network adapter management |
GB0109722D0 (en) | 2001-04-20 | 2001-06-13 | Koninkl Philips Electronics Nv | Extendible instruction system |
US20030014466A1 (en) | 2001-06-29 | 2003-01-16 | Joubert Berger | System and method for management of compartments in a trusted operating system |
US6785776B2 (en) | 2001-07-26 | 2004-08-31 | International Business Machines Corporation | DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism |
US7599369B2 (en) | 2001-09-27 | 2009-10-06 | Broadcom Corporation | Apparatus and methods for hardware payload header suppression, expansion, and verification in a DOCSIS network |
US20030196108A1 (en) | 2002-04-12 | 2003-10-16 | Kung Kenneth C. | System and techniques to bind information objects to security labels |
US7631107B2 (en) | 2002-06-11 | 2009-12-08 | Pandya Ashish A | Runtime adaptable protocol processor |
US20040010612A1 (en) | 2002-06-11 | 2004-01-15 | Pandya Ashish A. | High performance IP processor using RDMA |
US7254696B2 (en) | 2002-12-12 | 2007-08-07 | Alacritech, Inc. | Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests |
US7594111B2 (en) | 2002-12-19 | 2009-09-22 | Massachusetts Institute Of Technology | Secure execution of a computer program |
US6976147B1 (en) | 2003-01-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Stride-based prefetch mechanism using a prediction confidence value |
US7403925B2 (en) | 2003-03-17 | 2008-07-22 | Intel Corporation | Entitlement security and control |
US7467414B2 (en) | 2003-03-17 | 2008-12-16 | Intel Corporation | Entitlement security and control for information system entitlement |
US7058918B2 (en) | 2003-04-28 | 2006-06-06 | Dafca, Inc. | Reconfigurable fabric for SoCs using functional I/O leads |
US6922740B2 (en) | 2003-05-21 | 2005-07-26 | Intel Corporation | Apparatus and method of memory access control for bus masters |
US7168063B2 (en) | 2003-06-10 | 2007-01-23 | Microsoft Corporation | Systems and methods for employing tagged types in a dynamic runtime environment |
US20050108518A1 (en) | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7437718B2 (en) | 2003-09-05 | 2008-10-14 | Microsoft Corporation | Reviewing the security of trusted software components |
US7580914B2 (en) | 2003-12-24 | 2009-08-25 | Intel Corporation | Method and apparatus to improve execution of a stored program |
US7313820B2 (en) | 2003-12-29 | 2007-12-25 | International Business Machines Corporation | Method and system for providing an authorization framework for applications |
US7114036B2 (en) | 2004-01-14 | 2006-09-26 | International Business Machines Corporation | Method and apparatus for autonomically moving cache entries to dedicated storage when false cache line sharing is detected |
US7698159B2 (en) | 2004-02-13 | 2010-04-13 | Genworth Financial Inc. | Systems and methods for performing data collection |
CA2459004A1 (en) | 2004-02-20 | 2005-08-20 | Ibm Canada Limited - Ibm Canada Limitee | Method and system to control data acces using security label components |
US7340469B1 (en) | 2004-04-16 | 2008-03-04 | George Mason Intellectual Properties, Inc. | Implementing security policies in software development tools |
US7676590B2 (en) * | 2004-05-03 | 2010-03-09 | Microsoft Corporation | Background transcoding |
US7430650B1 (en) | 2004-06-17 | 2008-09-30 | Richard Ross | Generating a set of pre-fetch address candidates based on popular sets of address and data offset counters |
US7698402B2 (en) | 2004-06-30 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enhanced design of multi-tier systems |
US7137086B2 (en) | 2004-07-06 | 2006-11-14 | Dafca, Inc. | Assertion checking using two or more cores |
US7455448B2 (en) | 2004-07-26 | 2008-11-25 | Texas Instruments Incorporated | Rapid thermal anneal equipment and method using sichrome film |
US8181219B2 (en) | 2004-10-01 | 2012-05-15 | Microsoft Corporation | Access authorization having embedded policies |
US7657756B2 (en) | 2004-10-08 | 2010-02-02 | International Business Machines Corporaiton | Secure memory caching structures for data, integrity and version values |
JP2006113689A (ja) | 2004-10-12 | 2006-04-27 | Fujitsu Ltd | バスブリッジ装置およびデータ転送方法 |
US7688838B1 (en) | 2004-10-19 | 2010-03-30 | Broadcom Corporation | Efficient handling of work requests in a network interface device |
US8332653B2 (en) | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
US7496735B2 (en) | 2004-11-22 | 2009-02-24 | Strandera Corporation | Method and apparatus for incremental commitment to architectural state in a microprocessor |
US20060143689A1 (en) | 2004-12-21 | 2006-06-29 | Docomo Communications Laboratories Usa, Inc. | Information flow enforcement for RISC-style assembly code |
US7831570B2 (en) | 2004-12-30 | 2010-11-09 | Oracle International Corporation | Mandatory access control label security |
US7305635B1 (en) | 2005-02-04 | 2007-12-04 | Dafca, Inc. | Serial implementation of assertion checking logic circuit |
US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
US7426705B1 (en) | 2005-05-02 | 2008-09-16 | Dafca, Inc. | Combined hardware/software assertion checking |
US7493434B1 (en) | 2005-05-25 | 2009-02-17 | Dafca, Inc. | Determining the value of internal signals in a malfunctioning integrated circuit |
US7707387B2 (en) | 2005-06-01 | 2010-04-27 | Microsoft Corporation | Conditional execution via content addressable memory and parallel computing execution model |
US20070006294A1 (en) | 2005-06-30 | 2007-01-04 | Hunter G K | Secure flow control for a data flow in a computer and data flow in a computer network |
JP4519738B2 (ja) | 2005-08-26 | 2010-08-04 | 株式会社東芝 | メモリアクセス制御装置 |
US8166404B2 (en) | 2005-10-04 | 2012-04-24 | Disney Enterprises, Inc. | System and/or method for authentication and/or authorization |
US7348796B2 (en) | 2005-10-26 | 2008-03-25 | Dafca, Inc. | Method and system for network-on-chip and other integrated circuit architectures |
US7296201B2 (en) | 2005-10-29 | 2007-11-13 | Dafca, Inc. | Method to locate logic errors and defects in digital circuits |
US7493247B2 (en) | 2005-12-07 | 2009-02-17 | Dafca, Inc. | Integrated circuit analysis system and method using model checking |
US8516193B1 (en) | 2006-03-30 | 2013-08-20 | Pegasystems Inc. | Techniques for content-based caching in a computer system |
US20070239861A1 (en) | 2006-04-05 | 2007-10-11 | Dell Products L.P. | System and method for automated operating system installation |
US7434002B1 (en) | 2006-04-24 | 2008-10-07 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US7581064B1 (en) | 2006-04-24 | 2009-08-25 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
JP4899616B2 (ja) | 2006-04-28 | 2012-03-21 | ソニー株式会社 | 変調装置および方法、プログラム、並びに記録媒体 |
US8245199B2 (en) | 2006-05-05 | 2012-08-14 | International Business Machines Corporation | Selectively marking and executing instrumentation code |
US20080052488A1 (en) | 2006-05-10 | 2008-02-28 | International Business Machines Corporation | Method for a Hash Table Lookup and Processor Cache |
US8289948B2 (en) | 2006-06-16 | 2012-10-16 | Broadcom Corporation | Method and system for bridging and routing offload in a multiport wireless system |
US20080016547A1 (en) | 2006-07-11 | 2008-01-17 | International Business Machines Corporation | System and method for security planning with hard security constraints |
US8301870B2 (en) | 2006-07-27 | 2012-10-30 | International Business Machines Corporation | Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system |
US8938783B2 (en) | 2006-09-11 | 2015-01-20 | Microsoft Corporation | Security language expressions for logic resolution |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US20080083298A1 (en) | 2006-10-10 | 2008-04-10 | Chu-Fu Lin | Counter weight flywheel |
US8266702B2 (en) | 2006-10-31 | 2012-09-11 | Microsoft Corporation | Analyzing access control configurations |
US7793166B2 (en) | 2006-11-27 | 2010-09-07 | Emc Corporation | Methods and systems for recovering meta-data in a cache memory after a corruption event |
US20080140737A1 (en) | 2006-12-08 | 2008-06-12 | Apple Computer, Inc. | Dynamic memory management |
US8132259B2 (en) | 2007-01-04 | 2012-03-06 | International Business Machines Corporation | System and method for security planning with soft security constraints |
US8468244B2 (en) | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US8677457B2 (en) | 2007-02-09 | 2014-03-18 | Marvell World Trade Ltd. | Security for codes running in non-trusted domains in a processor core |
US7937432B2 (en) | 2007-02-16 | 2011-05-03 | Red Hat, Inc. | State transition management according to a workflow management policy |
US7945921B2 (en) | 2007-03-01 | 2011-05-17 | Microsoft Corporation | Cross application domain late binding to non-local types |
US8364910B2 (en) | 2007-03-08 | 2013-01-29 | Daniel Shawcross Wilkerson | Hard object: hardware protection for software objects |
JP5100176B2 (ja) | 2007-03-29 | 2012-12-19 | 株式会社東芝 | マルチプロセッサシステム |
US7813342B2 (en) | 2007-03-26 | 2010-10-12 | Gadelrab Serag | Method and apparatus for writing network packets into computer memory |
US7640420B2 (en) | 2007-04-02 | 2009-12-29 | Intel Corporation | Pre-fetch apparatus |
GB2448149B (en) | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
US7644044B2 (en) | 2007-04-04 | 2010-01-05 | Sony Corporation | Systems and methods to distribute content over a network |
NO326590B1 (no) | 2007-04-16 | 2009-01-19 | Kubekit As | Fremgangsmate og anordning for verifikasjon av informasjonstilgang i IKT-system med flere sikkerhetsdimensjoner og sikkerhetsniva. |
US8001390B2 (en) | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
US8423720B2 (en) | 2007-05-10 | 2013-04-16 | International Business Machines Corporation | Computer system, method, cache controller and computer program for caching I/O requests |
US8561061B2 (en) | 2007-05-14 | 2013-10-15 | Vmware, Inc. | Adaptive dynamic selection and application of multiple virtualization techniques |
US7933889B2 (en) | 2007-05-15 | 2011-04-26 | Palo Alto Research Center Incorporated | Method and system for metadata-driven document management and access control |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US20080301471A1 (en) | 2007-05-31 | 2008-12-04 | Marc Demarest | Systems and methods in electronic evidence management for creating and maintaining a chain of custody |
EP2160734A4 (en) | 2007-06-18 | 2010-08-25 | Synergy Sports Technology Llc | SYSTEM AND METHOD FOR EDITING, MARKING AND INDEXING DISTRIBUTED AND PARALLEL VIDEOS |
US7975107B2 (en) | 2007-06-22 | 2011-07-05 | Microsoft Corporation | Processor cache management with software input via an intermediary |
US20090006519A1 (en) | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Managing a computing environment |
US7913172B2 (en) | 2007-09-01 | 2011-03-22 | International Business Machines Corporation | Fine-grained, label-based, XML access control model |
US8131663B1 (en) | 2007-10-12 | 2012-03-06 | Bonamy Taylor | Apparatus for generating software logic rules by flowchart design |
US7921260B2 (en) | 2007-10-24 | 2011-04-05 | International Business Machines Corporation | Preferred write-mostly data cache replacement policies |
US8555081B2 (en) | 2007-10-30 | 2013-10-08 | Vmware, Inc. | Cryptographic multi-shadowing with integrity verification |
US7793049B2 (en) | 2007-10-30 | 2010-09-07 | International Business Machines Corporation | Mechanism for data cache replacement based on region policies |
US20090144388A1 (en) | 2007-11-08 | 2009-06-04 | Rna Networks, Inc. | Network with distributed shared memory |
US8782384B2 (en) | 2007-12-20 | 2014-07-15 | Advanced Micro Devices, Inc. | Branch history with polymorphic indirect branch information |
US20090165078A1 (en) | 2007-12-20 | 2009-06-25 | Motorola, Inc. | Managing policy rules and associated policy components |
US8880483B2 (en) | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US20090178102A1 (en) | 2008-01-04 | 2009-07-09 | Khaled Alghathbar | Implementing Security Policies in Software Development Tools |
US8306987B2 (en) | 2008-04-03 | 2012-11-06 | Ofer Ber | System and method for matching search requests and relevant data |
US8255673B2 (en) * | 2008-04-25 | 2012-08-28 | Arm Limited | Monitoring transactions in a data processing apparatus |
GB0811422D0 (en) | 2008-06-20 | 2008-07-30 | Symbian Software Ltd | Efficient caching |
US8196213B2 (en) | 2008-07-11 | 2012-06-05 | Microsoft Corporation | Verification of un-trusted code for consumption on an insecure device |
EP2309286B1 (en) | 2008-07-24 | 2019-08-21 | Toshiba Medical Systems Corporation | Magnetic resonance imaging apparatus for contrast enhancement of blood vessel images |
US8321958B1 (en) | 2008-07-30 | 2012-11-27 | Next It Corporation | Detecting presence of a subject string in a target string and security event qualification based on prior behavior by an end user of a computer system |
WO2010019916A1 (en) | 2008-08-14 | 2010-02-18 | The Trustees Of Princeton University | Hardware trust anchors in sp-enabled processors |
US8181005B2 (en) | 2008-09-05 | 2012-05-15 | Advanced Micro Devices, Inc. | Hybrid branch prediction device with sparse and dense prediction caches |
US8332909B2 (en) | 2008-12-16 | 2012-12-11 | Microsoft Corporation | Automated software restriction policy rule generation |
US8806101B2 (en) | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US8190832B2 (en) | 2009-01-29 | 2012-05-29 | International Business Machines Corporation | Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata |
US8335754B2 (en) | 2009-03-06 | 2012-12-18 | Tagged, Inc. | Representing a document using a semantic structure |
US8176282B2 (en) | 2009-03-11 | 2012-05-08 | Applied Micro Circuits Corporation | Multi-domain management of a cache in a processor system |
US8447722B1 (en) | 2009-03-25 | 2013-05-21 | Mcafee, Inc. | System and method for data mining and security policy management |
US20100250729A1 (en) | 2009-03-30 | 2010-09-30 | Morris Robert P | Method and System For Providing Access To Metadata Of A Network Accessible Resource |
US8332350B2 (en) | 2009-04-08 | 2012-12-11 | Titus Inc. | Method and system for automated security access policy for a document management system |
US8370577B2 (en) | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
US20100332401A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US8688964B2 (en) * | 2009-07-20 | 2014-04-01 | Microchip Technology Incorporated | Programmable exception processing latency |
US8635415B2 (en) | 2009-09-30 | 2014-01-21 | Intel Corporation | Managing and implementing metadata in central processing unit using register extensions |
JP2011095852A (ja) | 2009-10-27 | 2011-05-12 | Toshiba Corp | キャッシュメモリ制御回路 |
US8923159B2 (en) | 2009-11-30 | 2014-12-30 | Bae Systems Plc | Processing network traffic |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
US8627042B2 (en) | 2009-12-30 | 2014-01-07 | International Business Machines Corporation | Data parallel function call for determining if called routine is data parallel |
US20110219424A1 (en) | 2010-03-05 | 2011-09-08 | Microsoft Corporation | Information protection using zones |
WO2011108695A1 (ja) | 2010-03-05 | 2011-09-09 | 日本電気株式会社 | 並列データ処理システム、並列データ処理方法及びプログラム |
US9491052B2 (en) | 2010-03-26 | 2016-11-08 | Bladelogic, Inc. | Topology aware smart merge |
US8954418B2 (en) | 2010-05-14 | 2015-02-10 | Sap Se | Performing complex operations in a database using a semantic layer |
US8271447B1 (en) | 2010-06-18 | 2012-09-18 | Emc International Company | Mirroring metadata in a continuous data protection environment |
US8732697B2 (en) | 2010-08-04 | 2014-05-20 | Premkumar Jonnala | System, method and apparatus for managing applications on a device |
GB2483907A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
US8738860B1 (en) | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8819225B2 (en) | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
KR101578642B1 (ko) | 2010-11-16 | 2015-12-17 | 인텔 코포레이션 | 데이터 기억 시스템에 대한 엔드포인트 캐싱 |
US9934166B2 (en) | 2010-12-10 | 2018-04-03 | Daniel Shawcross Wilkerson | Hard object: constraining control flow and providing lightweight kernel crossings |
US20120151184A1 (en) | 2010-12-10 | 2012-06-14 | Daniel Shawcross Wilkerson | Hard object: constraining control flow and providing lightweight kernel crossings |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US9792472B1 (en) | 2013-03-14 | 2017-10-17 | Impinj, Inc. | Tag-handle-based authentication of RFID readers |
US8966182B2 (en) | 2011-02-08 | 2015-02-24 | International Business Machines Corporation | Software and hardware managed dual rule bank cache for use in a pattern matching accelerator |
US8996807B2 (en) | 2011-02-15 | 2015-03-31 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a multi-level cache |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8875170B1 (en) | 2011-02-18 | 2014-10-28 | Isaac S. Daniel | Content roaming system and method |
US8949270B2 (en) | 2011-03-10 | 2015-02-03 | Salesforce.Com, Inc. | Methods and systems for processing social media data |
US9262246B2 (en) | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
WO2012138804A2 (en) | 2011-04-04 | 2012-10-11 | Nextlabs, Inc. | Protecting information using policies and encryption |
US20180107591A1 (en) | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
US10114477B2 (en) | 2011-07-14 | 2018-10-30 | Samsung Electronics Co., Ltd. | Display device and method thereof |
US8955111B2 (en) | 2011-09-24 | 2015-02-10 | Elwha Llc | Instruction set adapted for security risk monitoring |
US9513884B2 (en) | 2011-08-16 | 2016-12-06 | International Business Machines Corporation | Thermal-aware source code compilation |
US9219752B2 (en) | 2011-08-26 | 2015-12-22 | Hewlett-Packard Development Company, L.P. | Data leak prevention systems and methods |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US20130160775A1 (en) | 2011-12-21 | 2013-06-27 | University Of Technology, Sidney | Method and apparatus for lower back pain relief |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
TWI453608B (zh) | 2012-02-03 | 2014-09-21 | Chunghwa Telecom Co Ltd | System and method for managing a large number of multiple data |
US8966204B2 (en) | 2012-02-29 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Data migration between memory locations |
US9208082B1 (en) | 2012-03-23 | 2015-12-08 | David R. Cheriton | Hardware-supported per-process metadata tags |
US10191742B2 (en) | 2012-03-30 | 2019-01-29 | Intel Corporation | Mechanism for saving and retrieving micro-architecture context |
US9075710B2 (en) | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US10474584B2 (en) | 2012-04-30 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Storing cache metadata separately from integrated circuit containing cache controller |
US8874850B1 (en) | 2012-05-10 | 2014-10-28 | Netapp, Inc. | Hierarchically tagged cache |
JP5832954B2 (ja) | 2012-05-18 | 2015-12-16 | 日本電信電話株式会社 | タグ付与装置及びタグ付与方法 |
US20130312099A1 (en) | 2012-05-21 | 2013-11-21 | Mcafee, Inc. | Realtime Kernel Object Table and Type Protection |
US8898376B2 (en) | 2012-06-04 | 2014-11-25 | Fusion-Io, Inc. | Apparatus, system, and method for grouping data stored on an array of solid-state storage elements |
US8909879B2 (en) | 2012-06-11 | 2014-12-09 | International Business Machines Corporation | Counter-based entry invalidation for metadata previous write queue |
US8826391B2 (en) | 2012-07-02 | 2014-09-02 | Freescale Semiconductor, Inc. | Virtualized trusted descriptors |
US8572410B1 (en) | 2012-07-18 | 2013-10-29 | Freescale Semiconductor, Inc. | Virtualized protected storage |
US10305937B2 (en) | 2012-08-02 | 2019-05-28 | CellSec, Inc. | Dividing a data processing device into separate security domains |
US9367480B2 (en) | 2012-08-07 | 2016-06-14 | Dell Products L.P. | System and method for updating data in a cache |
US20140047183A1 (en) | 2012-08-07 | 2014-02-13 | Dell Products L.P. | System and Method for Utilizing a Cache with a Virtual Machine |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US9098417B2 (en) | 2012-12-13 | 2015-08-04 | Advanced Micro Devices, Inc. | Partitioning caches for sub-entities in computing devices |
US9183055B2 (en) | 2013-02-07 | 2015-11-10 | Advanced Micro Devices, Inc. | Selecting a resource from a set of resources for performing an operation |
JP6448555B2 (ja) | 2013-02-27 | 2019-01-09 | ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation | オブジェクトストレージインデキシングシステムのためのコンテンツクラス |
US9165078B2 (en) | 2013-03-14 | 2015-10-20 | International Business Machines Corporation | Row-based data filtering at a database level |
US9569612B2 (en) | 2013-03-14 | 2017-02-14 | Daniel Shawcross Wilkerson | Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality |
US8959657B2 (en) | 2013-03-14 | 2015-02-17 | Appsense Limited | Secure data management |
US9037811B2 (en) | 2013-03-15 | 2015-05-19 | International Business Machines Corporation | Tagging in memory control unit (MCU) |
US9298911B2 (en) | 2013-03-15 | 2016-03-29 | Intel Corporation | Method, apparatus, system, and computer readable medium for providing apparatus security |
KR101501462B1 (ko) | 2013-06-10 | 2015-03-11 | 이용재 | 통합 데이터 객체 관리 시스템 및 그 방법 |
US9734080B2 (en) | 2013-08-08 | 2017-08-15 | Nxp Usa, Inc. | Cache organization and method |
US20160205082A1 (en) | 2013-08-12 | 2016-07-14 | Graphite Software Corporation | Secure authentication and switching to encrypted domains |
US10185584B2 (en) | 2013-08-20 | 2019-01-22 | Teleputers, Llc | System and method for self-protecting data |
US9680738B2 (en) | 2013-09-15 | 2017-06-13 | Nicira, Inc. | Tracking prefixes of values associated with different rules to generate flows |
US9244827B2 (en) | 2013-09-25 | 2016-01-26 | Intel Corporation | Store address prediction for memory disambiguation in a processing device |
US9391879B2 (en) | 2013-09-25 | 2016-07-12 | Airbus Ds Communications, Inc. | Mixed media call routing |
CN105579955A (zh) | 2013-09-27 | 2016-05-11 | 慧与发展有限责任合伙企业 | 应用控制流模型 |
GB201318723D0 (en) | 2013-10-23 | 2013-12-04 | Avecto Ltd | Computer device and method for isolating untrusted content |
US9507589B2 (en) | 2013-11-07 | 2016-11-29 | Red Hat, Inc. | Search based content inventory comparison |
US9495318B2 (en) * | 2013-11-25 | 2016-11-15 | Apple Inc. | Synchronizing transactions for a single master over multiple busses |
GB2518022B (en) | 2014-01-17 | 2015-09-23 | Imagination Tech Ltd | Stack saved variable value prediction |
US9411747B2 (en) | 2014-02-04 | 2016-08-09 | Freescale Semiconductor, Inc. | Dynamic subroutine stack protection |
US10320676B2 (en) | 2014-02-28 | 2019-06-11 | Cisco Technology, Inc. | Smarter policy decisions based on metadata in data flows |
US9323684B2 (en) | 2014-03-21 | 2016-04-26 | Intel Corporation | Dynamic cache and memory allocation for memory subsystems |
US9245123B1 (en) | 2014-05-07 | 2016-01-26 | Symantec Corporation | Systems and methods for identifying malicious files |
JP6287571B2 (ja) | 2014-05-20 | 2018-03-07 | 富士通株式会社 | 演算処理装置、情報処理装置、及び、演算処理装置の制御方法 |
US9489532B2 (en) | 2014-05-28 | 2016-11-08 | Siemens Product Lifecycle Management Software Inc. | Fast access rights checking of configured structure data |
TW201600997A (zh) | 2014-06-30 | 2016-01-01 | 萬國商業機器公司 | 於一集中式管理環境中動態產生一策略實施點之封包檢視策略的方法、資訊設備及電腦程式產品 |
US9336047B2 (en) | 2014-06-30 | 2016-05-10 | International Business Machines Corporation | Prefetching of discontiguous storage locations in anticipation of transactional execution |
US9992298B2 (en) | 2014-08-14 | 2018-06-05 | International Business Machines Corporation | Relationship-based WAN caching for object stores |
US9525606B1 (en) | 2014-09-04 | 2016-12-20 | HCA Holdings, Inc. | Differential processing of data streams based on protocols |
EP2993606A1 (en) | 2014-09-05 | 2016-03-09 | Axiomatics AB | Provisioning system-level permissions using attribute-based access control policies |
US9483250B2 (en) | 2014-09-15 | 2016-11-01 | International Business Machines Corporation | Systems management based on semantic models and low-level runtime state |
US9436847B2 (en) | 2014-09-26 | 2016-09-06 | Intel Corporation | Cryptographic pointer address encoding |
WO2016053282A1 (en) | 2014-09-30 | 2016-04-07 | Hewlett Packard Enterprise Development Lp | String property labels for static analysis |
US9767272B2 (en) | 2014-10-20 | 2017-09-19 | Intel Corporation | Attack Protection for valid gadget control transfers |
US10078763B2 (en) | 2014-11-19 | 2018-09-18 | BAE Systems Information and Electronic Systems Integration Incc | Programmable unit for metadata processing |
US9830162B2 (en) | 2014-12-15 | 2017-11-28 | Intel Corporation | Technologies for indirect branch target security |
US9742616B2 (en) | 2014-12-23 | 2017-08-22 | Intel Corporation | Device for indicating packet processing hints |
US9576147B1 (en) | 2015-01-05 | 2017-02-21 | Amazon Technologies, Inc. | Security policy application through data tagging |
CN104657500A (zh) | 2015-03-12 | 2015-05-27 | 浪潮集团有限公司 | 一种基于key-value键值对的分布式存储方法 |
US9747218B2 (en) | 2015-03-20 | 2017-08-29 | Mill Computing, Inc. | CPU security mechanisms employing thread-specific protection domains |
US9736185B1 (en) | 2015-04-21 | 2017-08-15 | Infoblox Inc. | DNS or network metadata policy for network control |
US9846648B2 (en) | 2015-05-11 | 2017-12-19 | Intel Corporation | Create page locality in cache controller cache allocation |
US20180143890A1 (en) | 2015-05-26 | 2018-05-24 | Mitsubishi Electric Corporation | Simulation apparatus, simulation method, and computer readable medium |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
US9910611B2 (en) | 2015-05-29 | 2018-03-06 | Intel Corporation | Access control for memory protection key architecture |
US9703956B1 (en) | 2015-06-08 | 2017-07-11 | Symantec Corporation | Systems and methods for categorizing virtual-machine-aware applications for further analysis |
US10469464B2 (en) | 2015-06-09 | 2019-11-05 | Intel Corporation | Self-configuring key management system for an internet of things network |
US10114958B2 (en) | 2015-06-16 | 2018-10-30 | Microsoft Technology Licensing, Llc | Protected regions |
US10642753B1 (en) | 2015-06-30 | 2020-05-05 | Fireeye, Inc. | System and method for protecting a software component running in virtual machine using a virtualization layer |
US10073977B2 (en) | 2015-07-20 | 2018-09-11 | Intel Corporation | Technologies for integrity, anti-replay, and authenticity assurance for I/O data |
US10176014B2 (en) * | 2015-07-27 | 2019-01-08 | Futurewei Technologies, Inc. | System and method for multithreaded processing |
US9892281B1 (en) | 2015-07-28 | 2018-02-13 | HCA Holdings, Inc. | Testing using deidentified production data |
US11381566B2 (en) | 2015-08-12 | 2022-07-05 | Red Hat, Inc. | Isolating network resources in a virtualized environment |
US10586076B2 (en) | 2015-08-24 | 2020-03-10 | Acronis International Gmbh | System and method for controlling access to OS resources |
US20170083338A1 (en) | 2015-09-19 | 2017-03-23 | Microsoft Technology Licensing, Llc | Prefetching associated with predicated load instructions |
US10152330B2 (en) | 2015-09-21 | 2018-12-11 | Bae Systems Information And Electronic Systems Integration Inc. | Memory protection using a tagged architecture |
US9612967B1 (en) | 2015-09-25 | 2017-04-04 | Dell Products, L.P. | Cache load balancing by reclaimable block migration |
US9946642B2 (en) | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
US9507598B1 (en) | 2015-12-15 | 2016-11-29 | International Business Machines Corporation | Auxiliary branch prediction with usefulness tracking |
US10936713B2 (en) | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10235176B2 (en) | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10133866B1 (en) | 2015-12-30 | 2018-11-20 | Fireeye, Inc. | System and method for triggering analysis of an object for malware in response to modification of that object |
US10506059B2 (en) | 2016-03-18 | 2019-12-10 | Qualcomm Incorporated | Signaling of application content packaging and delivery |
GB2548845B (en) | 2016-03-29 | 2019-11-27 | Imagination Tech Ltd | Handling memory requests |
US11709679B2 (en) | 2016-03-31 | 2023-07-25 | Qualcomm Incorporated | Providing load address predictions using address prediction tables based on load path history in processor-based systems |
KR101972295B1 (ko) | 2016-06-23 | 2019-04-24 | 미쓰비시덴키 가부시키가이샤 | 침입 검지 장치 및 기억 매체에 저장된 침입 검지 프로그램 |
US10685111B2 (en) | 2016-10-31 | 2020-06-16 | Crowdstrike, Inc. | File-modifying malware detection |
US10409603B2 (en) | 2016-12-30 | 2019-09-10 | Intel Corporation | Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory |
US10896100B2 (en) | 2017-03-24 | 2021-01-19 | Commvault Systems, Inc. | Buffered virtual machine replication |
US10503904B1 (en) | 2017-06-29 | 2019-12-10 | Fireeye, Inc. | Ransomware detection and mitigation |
CN109840095A (zh) | 2017-11-28 | 2019-06-04 | 比亚迪股份有限公司 | 储能系统的启动方法、储能设备及存储介质 |
US10635810B2 (en) | 2018-01-31 | 2020-04-28 | Jungle Disk, L.L.C. | Probabilistic anti-encrypting malware protections for cloud-based file systems |
SG11202007272QA (en) | 2018-02-02 | 2020-08-28 | Charles Stark Draper Laboratory Inc | Systems and methods for policy execution processing |
US20210055954A1 (en) | 2018-02-02 | 2021-02-25 | Dover Microsystems, Inc. | Systems and methods for post cache interlocking |
KR20200116970A (ko) | 2018-02-02 | 2020-10-13 | 도버 마이크로시스템즈, 인크. | 메타데이터 처리를 위한 명령어를 변환시키기 위한 시스템 및 방법 |
TW201935306A (zh) | 2018-02-02 | 2019-09-01 | 美商多佛微系統公司 | 用於安全初始化的策略連結及/或載入之系統和方法 |
US11307854B2 (en) | 2018-02-07 | 2022-04-19 | Intel Corporation | Memory write log storage processors, methods, systems, and instructions |
US11417109B1 (en) | 2018-03-20 | 2022-08-16 | Amazon Technologies, Inc. | Network-based vehicle event detection system |
US10984122B2 (en) | 2018-04-13 | 2021-04-20 | Sophos Limited | Enterprise document classification |
WO2019213061A1 (en) | 2018-04-30 | 2019-11-07 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
US10776482B2 (en) | 2018-05-18 | 2020-09-15 | International Business Machines Corporation | Automated virtual machine integrity checks |
US10922411B2 (en) | 2018-06-20 | 2021-02-16 | Malwarebytes Inc. | Intelligent event collection for cloud-based malware detection |
US10970396B2 (en) | 2018-06-20 | 2021-04-06 | Malwarebytes Inc. | Intelligent event collection for rolling back an endpoint state in response to malware |
US10424043B1 (en) | 2018-07-02 | 2019-09-24 | Intel Corporation | Efficiently enqueuing workloads from user mode to hardware across privilege domains |
WO2020097177A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
EP3881190A1 (en) | 2018-11-12 | 2021-09-22 | Dover Microsystems, Inc. | Systems and methods for metadata encoding |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US20200201808A1 (en) * | 2018-12-21 | 2020-06-25 | Qualcomm Incorporated | Time-division multiplexing (tdm) data transfer on serial interfaces |
US11360704B2 (en) | 2018-12-21 | 2022-06-14 | Micron Technology, Inc. | Multiplexed signal development in a memory device |
US20220092173A1 (en) | 2019-01-18 | 2022-03-24 | Dover Microsystems, Inc. | Systems and methods for metadata classification |
US11580234B2 (en) | 2019-06-29 | 2023-02-14 | Intel Corporation | Implicit integrity for cryptographic computing |
US11522905B2 (en) | 2019-09-11 | 2022-12-06 | International Business Machines Corporation | Malicious virtual machine detection |
US12079197B2 (en) | 2019-10-18 | 2024-09-03 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
TW202121217A (zh) | 2019-11-06 | 2021-06-01 | 美商多佛微系統公司 | 用於改進詮釋資料處理效率的系統和方法 |
US11120863B2 (en) * | 2020-01-24 | 2021-09-14 | Qualcomm Incorporated | System and method for compensating for SDRAM signal timing drift through periodic write training |
US20220129343A1 (en) | 2020-10-22 | 2022-04-28 | Dover Microsystems, Inc. | Systems and methods for reducing exception latency |
US20220198014A1 (en) | 2020-12-23 | 2022-06-23 | Dover Microsystems, Inc. | Systems and methods for policy violation processing |
-
2019
- 2019-11-06 WO PCT/US2019/060028 patent/WO2020097177A1/en active Application Filing
- 2019-11-06 TW TW108140268A patent/TW202022679A/zh unknown
- 2019-11-06 TW TW108140267A patent/TW202022678A/zh unknown
- 2019-11-06 EP EP19835965.5A patent/EP3877874A1/en active Pending
- 2019-11-06 WO PCT/US2019/060030 patent/WO2020097179A1/en unknown
-
2021
- 2021-05-05 US US17/308,868 patent/US20210255890A1/en not_active Abandoned
-
2022
- 2022-08-03 US US17/880,539 patent/US11875180B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449450B2 (en) | 2020-11-18 | 2022-09-20 | Raymx Microelectronics Corp. | Processing and storage circuit |
TWI786476B (zh) * | 2020-11-25 | 2022-12-11 | 大陸商合肥沛睿微電子股份有限公司 | 處理暨儲存電路 |
Also Published As
Publication number | Publication date |
---|---|
US20210255890A1 (en) | 2021-08-19 |
US20230054942A1 (en) | 2023-02-23 |
WO2020097179A1 (en) | 2020-05-14 |
WO2020097177A1 (en) | 2020-05-14 |
TW202022678A (zh) | 2020-06-16 |
US11875180B2 (en) | 2024-01-16 |
EP3877874A1 (en) | 2021-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875180B2 (en) | Systems and methods for stalling host processor | |
US11977613B2 (en) | System and method for translating mapping policy into code | |
US10810309B2 (en) | Method and system for detecting kernel corruption exploits | |
EP3746922B1 (en) | Systems and methods for transforming instructions for metadata processing | |
US12079197B2 (en) | Systems and methods for updating metadata | |
US20220129343A1 (en) | Systems and methods for reducing exception latency | |
US20210055954A1 (en) | Systems and methods for post cache interlocking | |
US11797398B2 (en) | Systems and methods for checking safety properties | |
US20220198014A1 (en) | Systems and methods for policy violation processing | |
US20220012329A1 (en) | Systems and methods for metadata encoding | |
JP5841199B2 (ja) | 安全保護方法およびプロセッサ | |
WO2023034586A1 (en) | Systems and methods for on-demand loading of metadata |