TWI289787B - Method and computer system of executing security kernel software under a secure execution mode, and computer readable medium of recording related instructions - Google Patents

Method and computer system of executing security kernel software under a secure execution mode, and computer readable medium of recording related instructions Download PDF

Info

Publication number
TWI289787B
TWI289787B TW092108498A TW92108498A TWI289787B TW I289787 B TWI289787 B TW I289787B TW 092108498 A TW092108498 A TW 092108498A TW 92108498 A TW92108498 A TW 92108498A TW I289787 B TWI289787 B TW I289787B
Authority
TW
Taiwan
Prior art keywords
request
security
routine
memory
sem
Prior art date
Application number
TW092108498A
Other languages
English (en)
Other versions
TW200307216A (en
Inventor
Geoffrey S Strongin
Brian C Barnes
Rodney W Schmidt
David S Christie
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200307216A publication Critical patent/TW200307216A/zh
Application granted granted Critical
Publication of TWI289787B publication Critical patent/TWI289787B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • 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/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Description

1289787 玖、發明說明 [發明所屬之技術領域] 本發明大致上係關於記憶體管理系統和方法,詳+ 之’係關於設有安全計算環境之記憶體管理系統和方法。 [先前技術] 第1圖為由χ86處理器例如當執行視窗作業系統時 (Windows® operating system,由位於 Redm〇nd WA 之微軟 公司提供)’產生之異常堆疊碼框(excepti〇n sUck frame)l 00之圖示。於異常處理器之表目(entry)上除了碼 段(CS)、指令指標(EIP)、堆疊段(ss)、堆疊指標(Esp)暫存 器、和EFLAGS以外,尚保留了發生異常(亦即,失誤應曰用) 之應用程式之所有暫存器。於異常堆疊碼框1〇() 這些暫存器之内容。 传 異常堆疊碼框1〇〇開始於段位址SS ·· ESP。錯誤碼位 於異常堆疊碼框1〇〇中於段位址ss ·· ESp+〇〇h。失誤應用 之指令指標(EIP)暫存器之内容,位於異常堆疊碼框1〇〇中 於段位址SS : ESP + (Mh。失誤應用之碼段(cs)暫存器之内 容,位於異常堆疊碼框100中於段位址SS ·· ESP + 〇8h。失 决應用之旗標(EFLAGS)暫存器之内容,位於異常堆疊碼框 中於奴位址SS · ESP + 〇Ch。失誤應用之堆疊指標(ESP) 暫存器之内容,位於異常堆疊碼框1〇〇中於段位址ss ·· =sp+i〇h。失誤應用之堆疊段(ss)暫存器之内容,位於異 带堆$碼才匡100中於段位址SS : ESP+14h。應注意的是若 相關的控制傳送至異常處理器包含了改變優先權 92297 6 1289787 (privilege)位準,則ESP和SS會出現於異常堆疊碼框ι〇〇 中。 失誤應用之指令指標(EIP)暫存器之内容,於段位址 SS : ESP + 04h,指向於產生異常之於失誤應用中之指令。 失誤應用之堆疊指標(EsP)暫存器之内容,於段位址ss : ESP+ 1 〇h,係為失誤應用之堆豐碼框於失誤時間之位址(亦 即,指向至此位址)。 相關於段異常之錯誤碼非常相似於保護模式選擇器。 最高次1 3位元(位元1 5 ·· 3)為選擇器指標,而位元2為表 指標。然而,替代於請求者優先權位準(RPL),位元〇和1 會碰到下列之情況:若由外部事件而引起程式失誤,則設 定位元0(外部,EXT) ’以及若選擇器指標涉及於idt内之 閘描述符,則設定位元1 (IDT)。 苐2圖為用於由超級微裝置(AMD)公司所製造之χ86 處理器中之SYSCALL/SYSRET目標位址暫存器(star)200 的圖示。該SYSCALL/SYSRET目標位址暫存器(STAr)200 包括“SYSRET CS選擇器和SS選擇器基礎,,襴、 “SYSCALL CS選擇器和SS選擇器基礎,,欄、和“目標 EIP位址”欄。 於執行SYS CALL指令之前的一些點位,作業系統將 用於適當之系統服務碼之碼段(CS)之值寫入至SYSCALL /SYSRET目標位址暫存器(STAR)2〇〇之SYSCALL cs選擇 器和S S選擇器基礎欄。作業系統亦將即將執行之系統服 務碼内的第一指令之位址寫至SYSCALL/SYSRET目標位 7 92297 1289787 址暫存器(STAR)200之目標EIP位址欄。STAR暫存器組構 於系統啟動(boot)。目標EIP位址可指向於作業系統核心 中之固定系統服務區。 於執行SYS CALL指令期間,SYSC ALL CS選擇器和 SS選擇器基礎攔之内容複製於CS暫存器中。SYSCALL CS 選擇器和SS選擇器基礎欄之内容,加上‘1000b’值,複 製於SS暫存器中。如此有效地增量CS選擇器之指標欄而 使得所得到的SS選擇器指向於在描述符表中於CS描述符 後之次一個描述符。目標EIP位址欄之内容複製入指令指 標器(EIP)暫存器中,並指定將要執行之第一指令之位址。 於執行相對於SYSCALL指令之SYSRET指令之前的 一些點位,作業系統將用於呼叫碼之碼段(CS)之值寫入至 SYSCALL/SYSRET目標位址暫存器(STAR)200之 SYSCALL CS選擇器和SS選擇器基礎欄。SYSRET指令獲 得從ECX暫存器來之返回EIP位址。 [發明内容] 依照本發明之一態樣,係提供了一種方法。本方法包 括執行一不安全常式並接收從該不安全常式來的請求。該 方法亦包括於硬體中施行該請求之第一次評估,並於軟體 中之安全常式中施行該請求之第二次評估。 依照本發明之另一態樣,係提供了 一種電腦系統。該 電腦系統包括可組構成用來執行安全常式和不安全常式之 處理器。該電腦系統亦包括耦接以執行關聯於該不安全常 式之請求之第一次評估的硬體。該硬體進一步組構成提供 8 92297 1289787 3月长之通知至該安全常式。該安全常式組構成施行該請 求之第— 人汗估。該安全常式進—步組構成拒絕請求之反 應於該請求。 [實施方式] 雖然本發明易受到許多不同形式之實施例的影響,声 本發明已以圖式顯示了特定之實施例並予以詳細說明。然 而’應瞭解到此處特定實施例之說明並不欲限制本發明於 所,示之特定形式,反之,本發明將涵蓋所有落於由所附 f申請專利範圍所界定之精神和範圍内之所有的修飾、等 效、和改變。 、 下文中將舌兒明本潑^明$ + & +心月之不乾貫施例。為了清楚起見, 本說明書中並未將所有實際施行本發明之特徵 瞭㈣,在開發任何此種真實的實施例時二 、一彳夕與貫施相關之決定,以便達到發明者的特定目 二=符合隨著實施例的不同而有所變化的與系統相關 相關之限制條件。此外,我們應#瞭解 ^工作可能是複雜且耗時的,妙二 幵 1 翁θ 的然而,仍將是一種對此頊i古 食具有一般知識者在表 、支 行工作。 本毛明揭不事項之後可從事之例 茲參照第3圖,顯千τ 者# 不了依照本發明之系統300之—倘 爲她例。系統300包括有卢… 個 梦罢 处早兀31〇,複數個輪入/輪屮 4置’譬如鍵盤330、滑鼠34〇、輸入筆35〇;軍出 入昆 個只鈿例中,由本發明所揭示之忠 王層級系統,設置在處理| Q ^ n & 之女 恳理早兀310中。依照本發明之—個 92297 9 1289787 態樣,從輸入/輸出裝置330、340、350之其中一個進來的 輸入’可起始執行在處理單元310中之一個或多個軟體社 構’包括作業系統。然後存取相關存在於系統3 〇 〇中之輪 入輪出(I/O)空間之I/O空間和(或)記憶體,以執行存在於 處理單元3 1 0中之各種軟體結構。本發明之實施例可限制 J/O空間存取,該I/O空間存取係根據規劃入系統3〇〇中之 預定之安全表目而由一個或多個軟體結構所起始。 第4A圖為電腦系統400A之一個實施例之圖示,該電 腦系統400A包括中央處理單元(CPU) 4〇2、系統或“主,, 橋接器404、記憶體406、第一裝置匯流排4〇8(例如,周 邊組件互連或pci匯流排)、裝置匯流排橋接器41〇、第二 裝置匯流排412(例如,工業標準架構或ISA匯流排)、以 及四個裝置硬體單元414A至.………υ4 — CPU 402、記憶體4G6、和第-裝置匯流排彻。主橋接器 ⑽轉送CPU 4〇2和第一裝置匯流排4。8之間的訊號,並 可操作地將記憶體406耦接至CPU 4〇2和至第一裝置匯流 排彻。裝置匯流排橋接器41〇耦接於第一裝置匯流排 和:二裝置匯流排412之間’並轉送第一裝置匯流排4〇8 和第二裝置匯流排412之間的訊號。 於弟4A圖的實施例中
f體单元414A和414]B 輕接於第一裝置匯流排408,而裝置硒w抑—/ J衣直硬體早兀414C和4141: 耦接於第二裝置匯流排4 1 2。舉例而丄 炎丄办 牛1夕J而吕,一個或多個之裝 置硬體單元4MA至414D可以是鍅左壯姐/ 疋辟存裴置(例如,硬碟機、 軟碟機、和光碟(CD-ROM)機)、通吨获罢~ ^ ^ σ孔凌置(例如,數據機和 92297 10 1289787 網路轉接器)、或輸入/輪出裝置(例如,視頻裝置、聲頻裝 置、和列表機)。應注意的是於其他實施例中,主橋接哭 切4可以為CPU 402之—部分,如第4a圖中所示。口。 _於第4B ®的實施例巾,CPU 402包括I/O安全檢核單 元(SCU)417。裝置硬體單元414入至414〇可映對至cpu 切2之1/0空間之各種1/〇埠端’和cpu4〇2可經由對應 之埠端而與裝置硬體單元⑽至414D通訊。於此情 況,I/O SCU 417用來保護裝置硬體單元414八至414D避 免由CPU 402所產生的未經授權之存取。應注意的是於其 他貝施例中,主橋接器404可以為CPU 4〇2之一部分如 弟4B圖中所示。 於第4C圖的實施例中,cpu 4〇2 單元⑽而主橋接器例包括主橋接器scv4= 將於下文中更詳細說明之,CPUSCU416保護記憶體406 免於由該CPU 402所產生之未經授權之存取(即,“起始軟 虹存取)’而主橋接器scu 418保護記憶體免於由裝 置硬體單元414A至414D所起始之未經授權之存取(即, “硬體起始存取,,)。 第5A圖為顯示第4A圖或第4B圖之電腦系統4〇〇之 各種硬體組件和軟體組件間之一些關係的圖式。於第5A 圖之實施例中,多個應用程式5〇〇、作業系統5〇2、安全核 心504、和裝置驅動器506八至506D儲存於記憶體4〇6中。 &用程式5 0 〇作業系統$ 〇 2、安全核心5 〇 4、和裝置驅動 器506A至506D包括了由CPU 4〇2所執行的指令。作業系 92297 11 1289787 統502提供了於頂端處該應用程 知私雕“ τ ,,, 」執订之用戶介面 :“ 口 。作業系統502亦可提供,例如,基本支 支功能’包括檔案系統管理、處理管理、和ι/〇控制。 作f系統5G2亦可提供基本安全功能。例如,CPU 4〇2可 以疋執订x86指令組之指令的χ86處理器。於此種情 =4〇2可包括特殊之硬體元件以提供如上所述之於保護 吴式中之虛擬記憶體和實體記憶體保護特徵。作業系统 ^亦可為例如操作咖於保護模式之偏。㈣作 二系統族其中之—’以及作業系統5〇2使用咖之特 件以提供於保護模式中虛擬記憶體和實體記憶 。女全核心504提供由作業系統5〇2所提供之安全 ^中:Ϊ :的額外的安全功能,例如’保護儲存於記憶體4 Ο 6 中之貝料免於未經授權存取。 於帛5Α圖之實施例中,裝置驅動器⑽入至$⑽係 上相關於,並耗接到個別對應之裝置硬體單元4】* a 4D衣置硬體單元4 M A和4丨例如可以是‘安全, f置,而對應之裳置驅動器5〇6八和5〇6d可以是“安全” 裝置驅動哭。忠人> ^ 王核心504耦接於作業系統502和安全妒 二驅動器輪與獅之間,並可藉由應用程式彻和作、 “統502來監視所有之存取,以確保裝置驅動器驗 和5〇6D㈣應之安全裝置4ΜΑ和*⑽之安全。安全核 浐^ 了糟由應用程式500和作業系統502來防止未經授 隹存取至安全裝置驅動器5〇从和5_和 置⑽和414D。另一方面,褒置驅動器麵和5〇6c可 92297 12 1289787 以是“非安全”裝置驅動器,和對應之裝置硬體單元4丨4B 和4 1 4C可以是“非安全”裝置硬體單元。裝置驅動器 5 0 6B和5 06C和對應之裝置硬體單元414B和414C可以是 例如“遺留”之裝置裝置驅動器和裝置硬體單元。 應注意的是於其他實施例中,安全核心5〇4可以是作業 系統502之一部分。又於其他的實施例中,安全核心5〇4、 裝置驅動器506A和506D、和(或)裝置驅動器506B和506C 可以是作業系統502之一部分。
如第5B圖中所示,安全核心504可以耦接到I/O SCU 417。如將於下文中詳細說明之,I/〇 scu 417監視至I/O位 址空間中I/O埠端之所有的起始軟體存取,並允許僅經過 授權之存取至1/0埠端。 如第5C圖中所指示的,安全核心504耦接到Cpu SCU 4 1 6和主橋接斋scu 4丨8(例如,經由一個或多個裝置驅動 器)。如將於下文中詳細說明之,cpuscu416和主橋接器 SCU 418控制至記憶體4〇6之存取。cpu scu 4丨6監視所 有的至記憶體406之起始軟體存取,而主橋接器scu 418 成視所有的至纪憶體4 〇 6之硬體起始存取。一旦由安全核 。5 04、、且構成後,cpu scu 416和主橋接器π。418僅允 泎二過授權之存取至記憶體4〇6和1/〇空間。應注意於一 個貝施例中,CPU SCU 4 1 6保護著暫存器空間。 弟6A圖為第4A圖之電腦系統4〇〇a之cpu 4〇2之一 個實施例之圖式。於第“圖之實施例中,cp詞Μ包括 執行單元600 '記憶體管理單元(MMu)6〇2、快取記憶體 92297 13 1289787 (cache)單元604、匯流排介面單元(BIU)606、一組之控制 暫存器608、和一組之安全執行模式(SEM)暫存器610。該 組之SEM暫存器610可用來執行在第4Α圖之電腦系統 400Α中之安全執行模式(SEM)。SEM暫存器610由該安全 核心504所存取(即,寫入和(或)讀取)。 於第6Α圖之實施例中,該組之SEM暫存器610包括 安全執行模式(SEM)位元609。例如當:(i)CPU 402為χ86 處理器操作於x86保護模式,(ii)記憶體分頁被致能,(iii) SEM位元設定為“ Γ時,則第4A圖之電腦系統400A可 以操作於安全執行模式(SEM)。亦可以使用指示操作於 SEM之其他方法和SEM之其他操作。 一般而言,使用該組控制暫存器608之内容以管理 CPU 402之操作。因此,使用該組控制暫存器608之内容 以管理執行單元600、MMU 602、快取記憶體單元604、 和(或)BIU 606。該組控制暫存器608可包括,例如,x86 處理器架構之多個控制暫存器。 CPU 4〇2之執行單元600取得指令(例如,x86指令) 和資料,執行該取得的指令,和於指令執行期間產生訊號 (例如,位址、資料、和控制訊號)。執行單元600耦接至 快取記憶體單元604,並可經由快取記憶體單元604和BIU 606而接收從記憶體406來的指令。應注意的是執行單元 600可依於所施行的内容而執行標準指令、安全指令、和(或) 微碼。於一個實施例中,執行於處理器中之微碼是硬體而 非軟體。 】4 92297 1289787 電腦系統400A之記憶體406(例如,第4A圖)包括多 個圯憶體位置,各具有唯一的實體位址。當操作於具有分 頁致旎之保護模式時,cpu 4〇2之位址空間劃分成多個區 塊^頁碼框,或“各頁,,。於其他的實施例中,記憶體 可劃分成不同界定之記憶體區或存取於該等記憶體區。一 般而言,僅對應於各頁部分之資料於指定的時間儲存於記 憶體406中。 於第6A圖之實施例中,於指令執行期間由執行單元 600所產生的位址訊號係表示段(即,“邏輯,,)位址。 602轉澤由執行單元6〇〇所產生的段位址至對應之記憶體 4〇6之實體位址。MMU6()2將實體位址提供至快取記憶體 單元6〇4。快取記憶體單元6()4為相當小之儲存單元用來 儲存由執行單元_最新所取得的指令和資料。则6〇6 搞接於快取記憶體單元6〇4和主橋接器404之間,並用來 取出由記憶體4 0 6來之經由主橋接器4 G 4而不表現於快取 記憶體單it 604的指令和資料。應注意的是快取記憶體單 元604係可選擇地使用,伯η甘π + ^ 文用但疋其可有利地提供cpu 4〇2更 佳之操作效果。 操作於SEM時,安全核 當第4A圖之電腦系統4〇〇a 心504產並維持一 於記憶體406中。 個或多個安全屬性資料結構(例如,各表) 各°己^體頁具有對應之安全關係識別 (SCID)值, 可儲存在安全屬性資料 以及該對應之SCID值 結構内0 MMU 602使用於妒入拍/一从 於指令執仃期間所產生的位址(例 如,貝體位址)’來存取~個或冬他]总入)¾ 一 U Α夕個女全屬性資料結構而獲 92297 15 1289787 得對應於記憶體頁之SCID。一般而言,電腦系統400A具 有η個不同之SCID值,其中η為-1之整數。 當第4Α圖之電腦系統400Α操作於SEM時,由違反 安全機構之軟體所產生的各種活動將引起SEM安全異常 (exception)。可透過一對相似於 χ86“SYSENTER”和 “ S YSEXIT”指令操作之暫存器(例如,模式特定暫存器或 MSR)而迅速處理SEM安全異常。該對之暫存器可以是 “安全異常表目點位”暫存器,並且當SEM安全異常發生 時可定義對於指令執行之分支目標位址。該安全異常表目 點位暫存器可定義碼段(CS)、然後指令指標(ΙΡ,或64位元 形式RIP)、堆疊段(SS)、和用於至SEM安全異常處理器 1210之表目之堆疊指標(SP,或64位元形式RSP)值(請參閱 第12圖)。 於軟體控制下,執行單元600可將前面的SS、 SP/RSP、EFLAGS、CS、和IP/RIP值推到新的堆疊以指示 異常發生處。此外,執行單元600可將錯誤碼推到堆疊。 應注意的是,當一直儲存著前面的SS和SP/RSP值時,不 可以使用從中斷(IREP)指令來的正常返回,而即使現用優 先權位準未發生改變,亦總可完成堆疊交換。因此,可以 定義新的指令以完成從SEM安全異常處理器1210(SMRET) 來的返回。 第6B圖為第4B圖之電腦系統400B之CPU 402B之 一個實施例的圖示。於第6B圖之實施例中,CPU 402B包 括執行單元600、記憶體管理單元(MMU)602、快取記憶體 16 92297 1289787 單元604、匯流排介面單元(BIU)606、一組之控制暫存器 608、和一組之安全執行模式(SEM)暫存器610。BIU 606 耦接至主橋接器404(第4圖),並於CPU 402Β和主橋接器 4 04之間形成介面。BIU 606亦經由主橋接器404耦接至記 憶體406(第4圖),並在CPU 402B和記憶體406之間形成 介面。於第6A圖之實施例中,I/O SCU 417位於BIU 606 内。 在第4B圖之電腦系統400B内,可使用該組之SEM 暫存器610以執行安全執行模式(SEM),而由該組之SEM 暫存器610之内容管理I/O SCU 417之操作。由安全核心 5 04而存取(亦即,寫入和(或)讀取)SEM暫存器610。 於第6B圖之實施例中,該組之SEM暫存器610包括 SEM位元609。第4B圖之電腦系統400B例如當(i)CPU 402B為x86處理器操作於x86保護模式,(ii)記憶體頁被 致能,和(iii)SEM位元設定為“Γ時,則可操作於SEM。 一般而言,該組之控制暫存器608之内容管理CPU 402B之操作。因此,該組之控制暫存器608之内容管理執 行單元600、MMU 602、快取記憶體單元604、和(或)BIU 606 之操作。該組之控制暫存器608可包括,例如,x86處理 器架構之多個控制暫存器。 CPU 4 02B之執行單元600於指令執行期間取得指令 (例如,x86指令)和資料、執行取得的指令、和產生訊號(例 如,位址、資料、和控制訊號)。執行單元6 0 0搞接至快取 記憶體單元604,並可經由快取記憶體單元604和BIU 606 17 92297 1289787 而接收從記憶體406來的指令。 電腦系統400B之記憶體406包括多個記憶體位址, 各位址具有唯一的實體位址。當用致能之分頁而操作於保 護模式,CPU 402B之位址空間劃分成稱之為頁碼框或“諸 頁”之多個區塊。亦構思其他方式的記憶體單元或劃分。 僅有對應於各頁之部分的資料於任何指定的時間儲存於記 憶體406中。於第6B圖之實施例中,由執行單元600所 產生的位址訊號於指令執行期間表示段(即“邏輯”)位 址。MMU 602轉譯由執行單元600所產生的段位址,以對 應記憶體406之實體位址。MMU 602提供實體位址至快取 記憶體單元604。快取記憶體單元604為用來儲存最近由 執行單元600所取得的指令和資料之相當小的儲存單元。 BIU 606耦接於快取記憶體單元604和主橋接器404 之間。BIU 606用於取出從記憶體406來,經過主橋接器 404而不表現於快取記憶體單元604中之指令或資料。BIU 606亦包括I/O SCU 417。I/O SCU 417耦接至SEM暫存器 610、執行單元600、和MMU 602。如上所述,I/O SCU 417 監視至I/O埠端於I/O位址空間之所有起始軟體存取,並 允許僅授權之存取至I/O埠端。
第6C圖為第4C圖之電腦系統400C之CPU 402C之 一個實施例的圖示。於第6C圖之實施例中,CPU 402C包 括執行單元600、記憶體管理單元(MMU)602、快取記憶體 單元604、匯流排介面單元(BIU)606、一組之控制暫存器 608、和一組之安全執行模式(SEM)暫存器610。CPU SCU 18 92297 1289787 416 位於 MMU 602 内。 可使用該組之SEM暫存器610以執行第4C圖之電腦 系統400C内之SEM,以及由該組之SEM暫存器610之内 容管理CPU SCU 416和主橋接器SCU 418之操作。由安全 核心504而存取(亦即,寫入和(或)讀取)SEM暫存器610。 第4C圖之電腦系統400C例如當(i)CPU 402C為x86處理 器操作於x86保護模式,(ii)記憶體頁被致能,和(iii)SEM 暫存器610之内容特定SEM操作時,則可操作於SEM。 於第6C圖之實施例中,該組之SEM暫存器610包括 SEM位元609。電腦系統400C之操作模式包括“正常執 行模式”和“安全執行模式”(SEM)。電腦系統400C通常 操作於正常執行模式。使用該組之SEM暫存器6 1 0來執行 於電腦系統400C内之SEM。由安全核心504而存取(亦 即,寫入和(或)讀取)SEM暫存器610。電腦系統400C例 如當(i)CPU 402C為x86處理器操作於x86保護模式,(ii) 記憶體頁被致能,和(iii)SEM位元設定為“ Γ時,則可操 作於SEM。 一般而言,該組之控制暫存器608之内容管理CPU 402C之操作。因此,該組之控制暫存器608之内容管理執 行單元600、MMU 602、快取記憶體單元604、和(或)BIU 606 之操作。該組之控制暫存器6 0 8可包括,例如,X 8 6處理 器架構之多個控制暫存器。 CPU 402C之執行單元600於指令執行期間取得指令 (例如,x86指令)和資料、執行取得的指令、和產生訊號(例 19 92297 1289787 如,位址、資料、和控制訊號)。執行單元600耦接至快取 記憶體單元604,並可經由快取記憶體單元604和BIU 606 而接收從記憶體406來的指令。 電腦系統400C之記憶體406包括多個記憶體位址, 各位址具有唯一的實體位址。當用致能之分頁而操作於保 護模式,CPU 402之位址空間劃分成稱之為頁碼框或“諸 頁”之多個區塊。亦構思其他方式的記憶體單元或劃分。 如上所述,僅有對應於各頁之部分之資料於任何指定的時 間儲存於記憶體406中。於第6C圖之實施例中,由執行 單元600所產生的位址訊號於指令執行期間表示段(即 “邏輯”)位址。將如下說明之,MMU 602轉譯由執行單 元600所產生的段位址,以對應記憶體406之實體位址。 MMU 602提供實體位址至快取記憶體單元604。快取記憶 體單元604為用來儲存最近由執行單元600所取得的指令 和資料之相當小的儲存單元。BIU 606耦接於快取記憶體 單元604和主橋接器404之間,並用來取出從記憶體406 來經過主橋接器404而不表現於快取記憶體單元604中之 指令或資料。 第6D圖為電腦系統400之CPU 402之另一個實施例 的圖示。於第6D圖之實施例中,CPU 402D包括描述於上 關於第6A圖之執行單元600、MMU 602、快取記憶體單元 604、BIU 606、該組之控制暫存器608、和該組之安全執 行模式(SEM)暫存器610。此外,CPU 602D包括微碼引擎 650和包含了安全檢核碼654之微碼儲存器652。微碼引擎 20 92297 1289787 650耦接至執行單元 ―、該組之控制暫存::2、快取記憶體單元6〇4、 (SEM)暫存器61〇。此 之女王執仃杈式 雖然亦可構思使用其他的共用匯流排結構, 存於微碼儲存器652内2接方式。微碼引擎㈣執行儲 i U碼指令,並依於該微碼指令、 =:控2暫存器_之内容、和該組之_暫存器㈣ = 制執行單元6。。、_6。2、快取記憶體 ::::和卿606操作之訊號。於第-圖之實施例中, ^存於微碼儲存器652内之微碼指令之微碼引擎㈣ W代-個或多個CPU scu 416和1/〇咖417。於χ86 =例中’微碼引|650於執行χ86指令組之更複雜的指 々中’亦可支援執行單元600。 一立=第6D圖之貫施例中,儲存於微碼儲存器052中之 :刀之微碼指令形成安全檢核碼654。當電腦系統彻 呆作於SEM中時,可執行安全檢核碼65心而一個指令已 '傳輸到執行單元_用於執行。本質上,安全檢核碼6Μ 之试碼指令之執行引起微碼引擎650和執行單元6〇〇、 602、和BIU 6〇6之其中數種以執行如上所述之一個 或多個CPU SCU 416和I/O SCU 417之功能。 牛例而έ ’當I/O指令傳輸到執行單元6〇〇用於執行 、執行單元600可發送"0指令表現的訊號至微碼引擎 。微碼引擎可確認訊號至MMU 6〇2和BIU 606。反應 於從料m —Γ
”、、弓丨擎650來之^1*5虎’ MMU 602可提供包含至BIU 之I/O指令之記憶體頁的安全關係識別(SCID)值。執 92297 21 1289787 行單元600可提供由I/O指令存取至BIU 606之I/O埠端 號碼。 反應於從微碼引擎650來之訊號,BIU 606可使用安 全關係識別(SCID)值和接收之I/O埠端號碼以存取SEM I/O允許位元寫映2200、2300(參閱第22和23圖),並可 以提供從SEM I/O允許位元寫映2200、2300來之位元對 應至微碼引擎650。若清除了從SEM I/O允許位元寫映 22 00、23 00來之對應位元為“0”,微碼引擎650在完成 執行I/O指令中可繼續支援執行單元600。另一方面,若 對應之位元設定為“Γ,則微碼引擎650可發送訊號至執 行單元600以停止執行I/O指令,並開始執行SEM異常處 理器1 2 1 0之指令。 亦值得注意的是,依於所執行之情況,執行單元600 可執行標準指令、安全指令、和(或)微碼。於一個實施例 中,此執行單元600和微碼引擎650係執行微碼。 第7圖是MMU 602之一個實施例之圖式,譬如第6C 圖中顯示說明之x86實施例。於第7圖之實施例中,MMU 6 02包括分段單元700、分頁單元702、和用於在分段單元 700和分頁單元702之輸出之間作選擇以產生實體位址之 選擇邏輯704。如第7圖中所指示,分段單元700接收從 執行單元600來之段位址,亦可使用已知之x86處理器架 構之段至線性位址轉譯機構,以於輸出處產生對應之線性 位址。如第7圖中所指示,當由“分頁(PAGING)”訊號所 致能時,分頁單元702接收由分段單元700所產生之線性 22 92297 1289787 位止並於輸出處產生對應之貫體位址。分頁訊號可寫映 方;x86處理态架構和該組之控制暫存器6〇8之控制暫存器 O(CRO)中之分頁旗標(PG)位元。當分頁訊號解除確認時, 未致能記憶體分頁,而選擇邏輯7〇4產生從分段單元7〇〇 所接收之線性位址,以作為實體位址。 當分頁訊號確認時,致能記憶體分頁,而分頁單元7〇2 使用x86處理器架構之線性至實體轉譯機構來轉譯從分段 單元7 0 0所接收之線性位址,至對應之實體位址。於線性 至實體位址轉譯操作期間,若經授權存取至頁碼框,則選 擇之頁目錄表目和選擇之頁表表目之U/S位元之内容係邏 輯上由‘及(AND)”運算決定。同樣地,若經授權存取至 頁碼框,則選擇之頁目錄表目和選擇之頁表表目之R/w位 元之内谷係避輯上由"及(AND),’運算決定。若υ/S和R/W 位元之邏輯組合指示經授權存取至頁碼框,則分頁單元 702產生由線性至實體位址轉譯操作所造成之實體位址。 選擇邏輯704接收藉由分頁單元702所產生之實體位址, 產生從分頁單元702所接收之實體位址作為實體位址,並 提供實體位址至快取記憶體單元6〇4。 於另一方面,若於線性至實體位址轉譯操作期間U/s 和R/W位元之邏輯組合指示未經授權存取至頁碼框,則分 頁單元702不產生實體位址。取而代之,分頁單元702確 認頁失誤(PF)訊號,和MMU 602將PF訊號傳輸到執行單 元600。反應於PF訊號,執行單元600可執行異常處理器 常式,並當確認PF訊號時,可最終停止執行其中一個應 23 92297 1289787 用程式500。 於第7圖之實施例中,CPU SCU 416位於MMU 602 之分頁單元702内。分頁單元702亦可包括用來儲存最新 決定之線性至實體位址轉譯之相當小數量之轉譯後備緩衝 器(TLB)。 第8A圖為顯示第4B圖之I/O SCU 417之一個實施例 的圖示。於第8A圖之實施例中,I/O SCU417包括安全檢 核邏輯800A。安全檢核邏輯800A接收從執行單元600來 之“致能(ENABLE)”訊號和I/O埠端號碼,和接收從MMU 602來之SCID值。於執行I/O指令之前,執行單元600可 確認致能訊號,該I/O指令存取於I/O位址空間中之“目 標” I/O埠端。該I/O埠端號碼為目標I/O埠端之號碼。該 SCID值指示包含I/O指令之記憶體頁之安全關係層級。 當電腦系統操作於SEM,安全核心504產生和維持一 個或多個安全屬性資料結構(例如,各表)於記憶體406中。 各記憶體頁具有對應之SCID值,而對應之SCID值可以儲 存在安全屬性資料結構内。MMU 602使用於指令執行期間 所產生的位址(例如,實體位址),以存取一個或多個安全 屬性資料結構以獲得對應於記憶體頁之SCID。一般而言, 電腦系統400具有η個不同之SCID值,其中η - 1之整數 值。
當電腦系統400操作於SEM,安全核心504亦可產生 和維持SEM I/O允許位元寫映2200,2300(例如,第22至 23圖)於記憶體406中。當執行單元600執行任務之I/O 24 92297 1289787 指令,則在CPU 402B内的邏輯可首先比較任務之CPL與 I/O優先權位準(IOPL)。若任務之CPL為至少有與iopl 同樣的優先權(即,數字上為少於或相等),則在CPU 402B 内的邏輯可檢核SEM I/O允許位元寫映2200,2300。另一 方面,若任務之C P L沒有與I 〇 P L同樣的優先權(即,數字 上大於),則執行單元600將不執行I/O指令。於一個實施 例中,將發生一般之保護失誤(GPF)。 當執行單元600確認致能訊號,安全檢核邏輯800A 提供致能訊號、接收之SCID值、和接收之I/O埠端號碼 至BIU 406内之邏輯。在BIU 406内之邏輯使用SCID值 和接收之I/O埠端號碼以存取該SEM I/O允許位元寫映 2200,2300,並將從該SEM I/O允許位元寫映2200,2300來 之對應位元提供至安全檢核邏輯800A。若從該SEM I/O 允許位元寫映2200,2300來之對應位元清除為“ 〇” ,則安 全檢核邏輯800A可確認輸出“執行(EXECUTE)”訊號提 供至執行單元600。反應於確認之執行訊號,執行單元600 可執行I/O指令。另一方面,若對應之位元設定為“1” , 則安全檢核邏輯800A可確認輸出“ SEM安全異常(SEM SECURITY EXCEPTION)”訊號提供至執行單元600。反應 於確認之SEM安全異常訊號,執行單元600可不執行I/O 指令,並可替代執行一 SEM異常處理器(請見下文說明)。 當I/O指令企圖存取16位元字I/O埠端,或32位元 雙字I/O埠端,則執行單元600可連績提供多個位元組I/O 埠端號碼至安全檢核邏輯800A。若安全檢核邏輯800A確 25 92297 1289787 認對於各位元組I/O埠端號碼之執行訊號,則執行單元600 可執行I/O指令。另一方面,若安全檢核邏輯800A確認 對於一個或多個位元組I/O埠端號碼之SEM安全異常,則 執行單元600可不執行I/O指令,而可替代執行該SEM異 常處理器。 第8B圖為CPU SCU 416之一個實施例之圖示。於第 8B圖之實施例中,CPU SCU 416包括耦接到該組之SEM 暫存器610和安全屬性表(SAT)表目缓衝器802之安,全檢核 邏輯800B。各SAT表目1225(參閱第12圖)可包括對應於 各記憶體頁之頁目錄和各頁表表目之U/S和R/W位元上方 之額外的安全資訊。安全檢核邏輯800B使用儲存在給定 之其中一個SAT表目1225内之額外的安全資訊,以防止 未經授權之起始軟體存取至對應之記憶體頁。使用SAT表 目緩衝器802以儲存最近存取之記憶體頁之相當小數目之 SAT 表目 1225。 如上所述,可使用該組之SEM暫存器6 1 0以執行在電 腦系統400内之SEM。該組之SEM暫存器610之内容管 理CPU SCU 416之操作。安全檢核邏輯800B接收從MMU 6 02來之經過第8B圖中所指示之通訊匯流排之將儲存於 SAT表目緩衝器802中之資訊。安全檢核邏輯800B亦接 收由分頁單元所產生之實體位址。 第9圖為安全模式SMCALL/SMRET目標位址暫存器 (SMSTAR)9 00和用來處理該SEM安全異常之安全模式GS 基礎(SMGBASE)暫存器902之圖示。 26 92297 1289787 基於安全理由,SEM安全異常機構不能依賴任何負載 4工制暫存為之内容或資料結構,以便當安全異常發生 時提供SEM異常處理器和堆疊之位址。 SMSTAR暫存器900包括“ SMRET CS選擇器和SS 選擇器基礎(SMRET CS Selector and SS Selector Base),, 攔、“SMCALL CS選擇器和SS選擇器基礎(SMCALL CS Selector and SS Selector Base)” 攔、和“目標 EIP 位址 (Target EIP Address)” 攔。SMGSBASE 暫存器 902 包括安 全模式GS基礎位址。儲存在SMSTAR暫存器900和 SMGSBASE暫存器902中之值一般設定於啟動時間(b〇〇t time) 〇 第10A圖為當SEM異常發生時,由作業系統502所 產生之SEM異常堆疊碼框1 〇〇〇之一個實施例之圖式。SEm 異常堆疊碼框1000開始於GS〔 OOh〕。 錯誤碼存在於SEM異常堆疊碼框1000於GS 〔OOh〕。失誤應用之指令指標(EIP)之内容存在於SEM異 常堆疊碼框1 000於GS〔 〇4h〕。失誤應用之碼段(CS)暫 存器之内容存在於SEM異常堆疊碼框1000於GS 〔08h〕。失誤應用之旗標(EFLAGS)暫存器之内容存在於 SEM異常堆疊碼框1 〇〇〇於GS〔 OCh〕。失誤應用之堆疊 指標(ESP)暫存器之内容存在於SEM異常堆疊碼框1〇〇〇於 GS〔10h〕。失誤應用之堆疊段(SS)暫存器之内容存在於 SEM異常堆疊碼框1000於GS〔 14h〕。 第10B圖為第10A圖之SEM異常堆疊碼框1〇〇〇之錯 27 92297 1289787
誤碼之範例格式1 ο 1 0的圖式。在第1 OB圖之實施例中, 錯誤碼格式1010包括寫入/讀取(W/R)位元、用戶/監督者 (U/S)位元、模式特定暫存器位元、和系統管理中斷(SMI) 位元。於寫入操作期間當發生SEM安全異常時,寫入/讀 取(W/R)位元為“Γ ,而於讀取或執行操作期間當發生 SEM安全異常時,寫入/讀取(W/R)位元為“0” 。於用戶 模式(CPL = 3)當發生SEM安全執行模式異常時,用戶/監督 者(U/S)位元為“1” ,而於監督模式(CPL = 0)當發生SEM 安全異常時,用戶/監督者(U/S)位元為“ 0” 。 於嚐試存取安全模式特定暫存器(MSR)期間,當發生 SEM安全異常時,模式特定暫存器(MSR)位元為“ Γ ,而 於嚐試存取安全MSR期間當未發生SEM安全異常時,模 式特定暫存器(MSR)位元為“ 0” 。於系統管理中斷(SMI) 期間,當發生SEM安全異常時,系統管理中斷(SMI)位元 為“ Γ ,而於SMI期間當未發生SEM安全異常時,系統 管理中斷(SMI)位元為“ 0” 。 第11圖為顯示依照本發明之一個態樣處理SEM安全 異常之方法11 00之實施例的流程圖。方法11 00可包括於 方塊步驟1105,透過硬體或透過軟體,譬如透過SMC ALL 指令,來產生SEM安全異常。方法1100包括於方塊步驟 1110,建立SEM堆疊碼框1000於基礎位址加上偏移量 (offset)。從SMGSBASE暫存器902讀取安全模式GS基礎 位址。可藉由於SEM堆疊碼框中之位元組號碼而將安全模 式GS基礎位址之偏移量形成堆疊指標。SEM堆疊碼框 28 92297 1289787 1 000寫入於記憶體中,而使得錯誤碼是由安全模式而指向 儲存在SMGSBASE暫存器902中之GS基礎位址。籍由 SEM異常硬體而產生SEM安全異常之錯誤碼。SEM安全 異常其本身可藉由作業系統502、藉由裝置驅動器碼506、 藉由應用碼500等而已產生。誤失碼段值寫入於GS空間 如第10A圖中所示。 方法1100其次於方塊步驟1115讀取從SMSTAR暫存 器900來之目標EIP位址和SMCALL CS和SS選擇器值, 並將該目標EIP位址和SMCALL CS和SS選擇器值儲存在 適當的暫存器。目標EIP位址存載於EIP暫存器。CS選擇 器值存載於CS暫存器,而SS選擇器值存載於SS暫存器。 SS選擇器值可由CS選擇器位址導得。目標EIP位址指向 SEM安全異常處理器碼之第一指令。 方法1100於方塊步驟1120亦執行SWAPGS指令。 SWAPGS指令之執行交換SMGSBASE暫存器902與快取於 CPU 402中GS段描述符之基礎位址的内容。後續之SEM 安全異常處理器指令能存取SEM安全異常堆疊碼框1000 和使用GS空間僅以移位定址之SEM安全異常堆疊碼框 1000之上和之下的記憶體。GS空間定址提供用於SEM安 全異常處理器之安全記憶體。
於安全核心504中之SEM安全異常處理器可包括幾頁 由安全位元所保護之虛擬記憶體,該安全位元譬如為儲存 於SEM暫存器6 1 0,或此處所說明之其他的安全測量單元 中。SEM安全異常處理器可包括幾頁之由譬如儲存在SEM 29 92297 1289787 暫存器610中,或此處所說明之其他的安全測量抑一 女全位元來保護之受保護的實體記憶體。 '"中之 方法mo接著於方塊步驟1125中分析 疋了 SEM安全異常的來源以後,一 ^ - ^ J刀析一個錯誤碼位 :。或可選用之,方法1100於方塊步驟"3〇解竭
夕個在產生讀安全異常前被執行或準備執行之指令。特 疋的指令和他們的運算元可提供於SEM 外的資訊。方法測於方塊步驟1135根據錯誤碼,和可 能之引起產生的SEM安全異常指令之前或之後之护入而 評估SEM安全異常。方塊步驟1135之評估可包括y昭一 檢查表或執行一安全演算法。該檢查表可由一個或多個之 錯誤碼、錯誤碼之一個或多個位元、以及一個或多個之特 定指令和(或)他們的運算元所索引。安全演算法可包括由 安全核心504所執行之碼樹。檢查表和安全演算法將決定 於正確的硬體3 10等、和執行於電腦系統3〇〇中之作業系 統 402。 一旦該方法11〇〇於方塊步驟1135評估了 SEM安全異 常,則該方法1100當需要時在方塊步驟114〇執行此評估 結果。SEM安全異常可予忽略和繼續操作。失誤指令或碼 段可予忽略。可包含失誤指令或碼段俾便由在虛擬記憶體 或I/O空間中之代理主機所執行。 方法1100於方塊步驟1145主要將電腦系統300恢復 至其預先SEM女全異常配置情形。於方塊步驟1丨5〇,當 SEM安全異常處理器退出時,執行另一 s WAPGS指令將安 30 92297 1289787 全模式基礎位址值返回至其原來的值,並執行將SMRET 指令返回至其先前的操作模式。當執行SWAPGS指令時, 安全核心504將用於失誤碼之碼段(CS)值寫至SMSTAR暫 存器90 0之SMRET CS選擇器和SS選擇器基礎攔。SMRET 指令可將系統返回至正常模式。不像S YSRET指令,SMRET 指令可留CPL於0,而不設定EFLAGS.IF位元。 應注意於一實施例中,方法11 00之方塊步驟11 05至 1115主要係在硬體中施行,而方塊步驟1120至1145主要 係在軟體中施行。於另一個實施例中,方法11 00主要係在 軟體中施行。又於另一個實施例中,方法11 00主要係在硬 體中施行。注意於一個實施例中,修改EIP位址以避免也 許引起SEM安全異常之指令。 茲回頭參照第8B圖,當電腦系統300操作於SEM時, 安全檢核邏輯800B接收現用執行任務(亦即,現用執行指 令)之CPL,伴隨著正常控制位元和一個或多個關聯之在其 中具有實體位址之選擇的記憶體頁之SEM位元509。安全 檢核邏輯800B使用上述資訊,以決定是否至記憶體406 之該部分的存取係經過授權。 CPU 402可以是x86處理器,而可包括碼段(CS)暫存 器、x86處理器架構之各16位元段暫存器之其中一個。各 段暫存器選擇一個64k之記憶體區塊,稱之為一段。在具 有分頁致能的保護模式中,CS暫存器載入了指示記憶體 406之可執行之段選擇器。使用段選擇器之最高次(亦即, 最高有效)位元,以儲存指示記憶體之段的資訊,該記憶體 31 92297 1289787 包括將由CPU 402之執行單元600所執行的次一個指令。 使用指令指標(IP)暫存器,以將偏移量儲存於由CS暫存器 所指示的段中。CS : IP對指示了次一個指令的段位址。使 用CS暫存器之二個最低次(亦即,最低有效)位元,以儲存 指示現正由執行單元600所執行之任務的CPL之值(亦 即,現行任務的CLP)。 CPU SCU 416之安全檢核邏輯800B可產生頁失誤 (“PF”)訊號和如“ SEM安全異常(SEM SECURITY EXCEPTION)”訊號,並將PF和SEM安全異常訊號提供 至在分頁單元702内之邏輯。當安全檢核邏輯800B確認 PF訊號時,MMU 602將PF訊號傳輸至執行單元600。反 應於PF訊號,執行單元600可使用已知之x86處理器架 構之中斷描述符表(IDT)指引機構,來存取和執行PF處理 器常式。 當安全檢核邏輯800B確認SEM安全異常訊號時, MMU 602傳輸SEM安全異常訊號至執行單元600。不像 使用x86處理器架構之IDT指引機構之正常處理器異常, 可使用不同之指引方法來處理SEM安全異常。可經由一對 相似於x86“SYSENTER”和“ SYSEXIT”指令操作方法之 暫存器(例如,MSRs),而傳輸SEM安全異常訊號。該對 之暫存器可以是“安全異常表目點位”暫存器,並且可定 義一分支目標位址用於當SEM安全異常發生時之指令執 行。 安全異常表目點位暫存器可定義將用於SEM安全異 32 92297 1289787 常處理器之表目之碼段(CS),然後指令指標(ΕΙΡ,或64位 元形式RIP)、堆疊段(SS)、和堆疊指標(ESP,或64位元 形式RSP)值。執行單元600可將前面的SS、ESP/RSP、 EFLAGS、CS、和EIP/RIP值推至新的堆疊以指示何處發 生了 SEM安全異常。此外,執行單元600可將錯誤碼推至 堆疊。如上所提及的,可不使用IRET指令作為儲存之前 面的SS和ESP/RSP值,而即使在CPL中未發生改變,亦 可完成堆疊交換。從SEM安全異常處理器來之返回係經由 SMRET指令。 第1 2圖為依照本發明之各種態樣,結合了各種實施例 以維持於電腦系統中之安全之圖式。如第1 2圖中所示,作 業系統可包括安全核心504。安全核心504可包括SEM安 全異常處理器1210和(或)頁管理常式1215。安全核心504 接收SEM安全異常1205。安全核心504接收一個或多個 值,該等值透過一個或多個訊號1255而傳輸現用的CPU 狀態1230。安全核心504亦可透過一個或多個訊號1255 而修正現用的CPU狀態1230。可由儲存在控制暫存器1235 和MSRs 1240中之值,而決定CPU狀態1230。該等值可 包括儲存在CR3控制暫存器1242、CPL 1244、和SEM致 能位元1246中之值。 予以考量之其他值包括,例如,將頁打開和關閉之 CRO、擴展特徵之暫存器、或用於擴展之定位的頁位址擴 展模式暫存器,等等。如果需要的話,亦可排除所示之值 1242、124 4、1 246之其中一個或多個。安全核心504從 33 92297 1289787 CPU狀態1230、虛擬記憶體配置1220、和安全屬性表目 1225之其中一個或多個而接收安全值和訊號1250。安全值 1250A顯示於安全核心504和虛擬記憶體配置1220之間。 安全值1250B顯示於安全核心5〇4和安全屬性表目1225 之間。安全值1250C顯示於安全核心504和CPU狀態1230 之間。 於一個實施例中,虛擬記憶體配置1 22〇藉由透過頁管 理常式1 2 1 5之安全核心504,而經由1 250A來監視,以維 持對於存取至記憶體4 0 6之安全性。亦由安全核心5 〇 4來 監視CPU狀態1230,而使得藉由頁管理常式12 15來應用 適當的安全性。亦可藉由頁管理常式1215至125〇A來修 正虛擬5己丨思體配置1 2 2 〇。頁管理常式1 2 1 5可以是作業系 統5 02之一部分。頁管理常式m5亦可以使用SEM安全 異常處理器1210來監督至虛擬記憶體配置ι22〇之改變。 於一個實施例中,安全屬性表目1225由安全核心5〇4 透過1250B來監視。一個嚐試至記憶體位置之存取可產生 SEM安全異常丨2〇5至SEM安全異常處理器丨21〇,並引導 於CPU狀態1230中之一個改變至SEM。依照相關之其中 一個女全屬性表目1225,而可允許或拒絕至記憶體位置之 存取。各安全屬性表目1225可以是在記憶體4〇6中之一個 保護頁中。 於一個實施例中,CPU狀態U30由安全核心5〇4透 過1250C來監視。此為一典型的實施例。一個至記憶體位 置之嚐試存取可產生至SEM安全異常處理器121〇之sem 92297 34 1289787 女全兴常1205。可价听认木丄、各 又Α於0Ss式存取時之CPU狀態1230, 而允許或拒絕至記憶體位置之存取。 於CPU 402内之一般目的暫存 可於住&扑〜# 节仔态之内谷(圖中未顯示) °曰疋寸間獲得。於一個實施例中,至杵 7之存取繫於-安全位元值,例如,於控㈣存哭Γ235 中之已執行)位元,或於MSRS124"暫二 :::)位:。同樣地,至—。之存取亦之可2 控制暫存哭1235二 則任㈣試至安全感測 又侍。於另一個實施例中, 制暫存器1235之存取。 丁貝值了“j至控 =例如SEM之安全模式轉移成例如正常模式 暫存器之内容。記憶體内容維持靜止, m〇以執二取某些§己憶體位址。當使用虛擬記憶體配置 執仃文全保護時,可以再載入CR3暫 内容。此提供了-個虛擬記憶體配置1220至不同:二: 碼所使用之虛擬記憶體配置12 广任 屬性#日,^ <不乜任碼。當使用安全 :目1225時,關聯於安全頁之各表目可註記為於各頁 、又到保護,以防止cpu狀態12 、 保護)模式之卢%丄 个疋於女王(或是受 允子取、使用CPU狀態1230來執行安全保護 須是二保護之記憶體之前’cpu狀態1230必 行二=例中’於·中之安全核心5°4可藉由執 、 吊式1215而提供對於整個虛擬記憶體配置122q 92297 35 1289787 “保&此保濩需要最少之硬體,和最初用執行最高優先 權(SCID)位準之軟體執行。 SEM可藉由致能之分頁而應用於保護之模式環境。為 了防止猎由建立不適當或干擾之線性至實體位址轉譯而遭 叉之對SEM攻擊,則必須保護分頁指令和控制暫存器 和(或)關聯於分頁(譬如CR3 mi)之MSRs 124〇,Z免不 適當之修正。 應注意使用第12圖中所描繪之虛擬記憶體配置 1220、安全屬性表目1225、和cpu狀態123〇之其中一種 機構所執行之安全措施,係亦可使用其他之專用機構。於 其他的實施例中,可以結合使用這些機構中之其中二個或 多個機構。 $ 兹參照第13至15圖來說明選用之記憶體頁之額外的 安全資訊,如何使用可使用於第4八至4C圖之電腦系統 400中之位址轉譯機構。第13圖為用來存取相關之其中一 個用於所選擇之記憶體頁之SAT表目1225之機構13〇〇的 一個實施例的圖式,以為了獲得所選擇記憶體頁之額外的 安全資訊。第13圖之機構1300可以具體施行於第8八至 8B圖之安全檢核邏輯8〇〇内,並且當第4A至4c圖之任 何一個電腦系統400操作於SEM時,可予施用。機構13〇〇 包括由使用x86位址轉譯機構之分頁機構7〇2所產生的實 體位址1302、SAT目錄1304、包括SAT 13 06之多個SAT、 和該組之SEM暫存器610之SAT基礎位址暫存器13〇8。 SAT目錄1304和包括SAT 13〇6之多個SAT為建立之sem 92297 36 1289787 資料結構,並由安全核心504所維持。將於下說明之,sat 目錄1304(當表現時)和任何需要之SAT 13〇6於存取之前 係複製入記憶體406中。 SAT基礎位址暫存器1308包括表現(p)位元,該?位 兀指示在SAT基礎位址暫存器13〇8内之表現的有效sat 目錄基礎位址。SAT基礎位址暫存器13〇8之最高次(亦即, 最有效)位元保留用於SAT目錄基礎位址。SAT目錄基礎 位址為包含SAT目錄1304之記憶體頁之基礎位址。若 P=1 ’則SAT目錄基礎位址為有效,而SAT表13〇6特定 記憶體頁之安全屬性。若P = 0,則SAT目錄基礎位址為無 效,並無SAT表存在,而記憶體頁之安全屬性係由sat 内設暫存器決定。 第I4圖為SAT内設暫存器moo之一個實施例之圖 式。於第MA圖之實施例中,SAT内設暫存器moo包括 安全頁(SP)位元。該SP位元指示是否所有之記憶體頁為安 全頁。舉例而言,若SP = 〇,則所有的記憶體頁也許並非安 全頁;而若SP=1,則所有的記憶體頁也許是安全頁。 回頭參照弟1 3圖,茲假設s AT基礎位址暫存器1 3 〇 8 之P位元為1 ’則由分頁邏輯702所產生的實體位址 1 3 02係分成三個部分以為了存取相關的用於所選擇之記 十思體頁之其中一個S AT目錄1225。如上所述,S AT基礎位 址暫存器1308之SAT目錄基礎位址為包含sat目錄1304 之記憶體頁之基礎位址。SAT目錄1304包括多個SAT目 錄表目,其中包含了 SAT目錄表目1312。各SAT目錄表 37 92297 1289787 目可具有於記憶體406中之對應的SAT。實體位址1302 之“上”部分,包含實體位址1302之最高次或最有效位 元,係用作為於SAT目錄1304内之索引。SAT目錄表目 1312係從使用SAT基礎位址暫存器1308之SAT目錄基礎 位址和實體位址1 3 02之上部分之SAT目錄1 3 04内所選 擇。 第14B圖為SAT目錄表目格式143〇之一個實施例之 圖式。依照第14B圖,各SAT目錄表目包括指示在SAT 目錄表目内之有效SAT基礎位址表現之表現(P)位元。於第 14B圖之實施例中,各SAT目錄表目131〇之最高次(亦即, 最有效)位元係保留用於SAT基礎位址。SAT基礎位址為 匕S對應S AT之自己憶體頁之基礎位址。若p = 1,則s at基 礎位址為有效,而對應之SAT儲存於記憶體4〇6中。 若P-0,則SAT基礎位址為無效,而對應之SAT並不 存在於記憶體406中,而是必須從一個儲存裝置(例如,磁 碟機)複製入記憶體406中。若P = 0,則安全檢核邏輯8〇〇 可以發送頁失誤訊號至分頁單元7〇2内之邏輯,而MMu 6〇2可以傳輸頁失誤訊號至執行單元6〇〇(第6圖中反應 於頁失誤訊號,執行單元600可執行頁失誤處理器常式, 該常式從儲存裝置恢復所需@ SAT,並將所需的sat儲存 於§己憶體406中。將所需的SAT儲存於記憶體偏中後, :對〇應SAT目錄表目之p位元設定為“ r,而繼續機構 回頭參照第 13圖 使用實體位址 1302之“中間”部 92297 38 1289787 刀作為進入SAT 1306之索引。因此使用sat目錄表目1312 之SAT基礎位址和實體位址13〇2之中間部分而在sat 1306内選擇SAT表目1312。 第1 5圖為SAT表目袼式1 500之一個實施例的圖式。 於第15圖之實施例中,各⑽表目包括安全頁(sp)位元。 忒SP位兀指示所選擇之記憶體頁是否為一安全頁。舉例 而吕,若SP = 0,則所選擇的記憶體頁也許不是一安全頁, 若S P 1,則所選擇的記憶體頁可以是一安全頁。 BIU 606從記憶體4〇6中取得所需的sem資料結構表 目,並將該SEM資料結構表目提供至MMU 6〇2。回頭參 、第8B圖女王檢核邏輯800B接收從MMU 602和分頁 早凡702經由通訊匯流排而SEM資料結構表目。如上所 述’使用SAT表目緩衝器來儲存最近存取記憶體頁之相當 J數里之SAT表目。安全檢核邏輯8〇〇B把指定的表 目13 12沿著對應之實體位址之“標籤”料而儲存於 SAT表目緩衝器8〇2中。 於後績之記憶體頁存取期間,安全檢核邏輯8〇〇b可 將由分頁單兀702所產生之一實體位址之“標籤”部,與 儲存於SAT表目緩衝器11〇2中之對應於SAT表目122/、 之貫體位址之標籤部分相比較。若實體位址之標籤部分與 儲存於SAT表目緩衝器11〇2中之對應於SAT表目1225 之實體位址之標籤部分相匹配,則安全檢核邏輯8〇〇3可 存取SAT表目1312於SAT表目緩衝器11〇2中,而免除了 第13圖之從記憶體4〇6獲得SAT表目1312之所需執行的 92297 39 1289787 處理。安全核心504修正於CPU 402中(例如,於處理關 係交換期間)SAT基礎位址暫存器1 308之内容。反應於SAT 基礎位址暫存器1308之修正,CPU SCU417之安全檢核 邏輯800B可充滿SAT表目緩衝器802。 當第4A至4C圖之電腦系統400操作於SEM時,安 全檢核邏輯800B伴隨著選擇之在其中存在有實體位址之 記憶體頁之頁目錄表目(PDE)U/S位元、PDE R/W位元、頁 表表目(PTE)U/S位元、和PTE R/W位元而接收現正在執 行的任務(即,正在執行的指令)之CPL。安全檢核邏輯800B 使用上述之資訊,伴隨著對應於所選擇之記憶體頁之SAT 表目13 12之SP位元,以決定是否記憶體406之存取經授 權。 第4B圖之CPU 4 02B可以是x86處理器,並可包括碼 段(CS)暫存器,其為x86處理器架構之其中一個16位元段 暫存器。各段暫存器選擇記憶體之一 64k區塊,稱之為一 段。於具有致能分頁之保護模式,CS暫存器加載了可指示 記憶體406之可執行段之段選擇器。段選擇器之最高次(亦 即,最有效)位元係用來儲存指示記憶體段之資訊,包括了 將由CPU 402B之執行單元600所執行的次一個指令。使 用指令指標(IP)暫存器來將偏移量儲存入由CS暫存器所 指示的段中。CS : IP對指示次一個指令的段位址。CS暫 存器之二個最低次(亦即,最低有效)位元係用來儲存指示 由執行單元600所正執行之任務之CPL之值(亦即,現行 任務的CPL)。 40 92297 1289787 下列第1表龜-止 〜不§電腦系統400B正操作於SEM時, 用於CPU起始(亦g 、P ’軟體起始)記憶體存取之範例規則。 當電腦系統400B if扒a # ^ ^ 正知作於SEM以提供在由作業系統502 所提ί、之貝料安全之上的對於儲存在記憶體傷中之資料 的額外的安全保護時,CPUSCU417和安全核心5〇4 一起 操作來施行第1表之規則。 差1表· ▲電腦系統400B正操作於SEM時,對於敕體故私 記憶體存取之範例規則
現正執行指令 選擇之記 憶體頁 OPL Si U/S R/W 允許f 評註 1 0 X X 1(R/W) R/W 允許全 部存取 ι保護機 1 0 X X 0(R) 讀取—' 1 3 1 1(U) 1(R/W) 應用標if 才 1 1 3 1 o(s) X 無 存取 起 GPF. (1) 1 3 0 0 1 無 起 GPF. Γ4、 0 0 1 X X 無 存取号丨 起SEM 安全異 常、 0 0 0 1 1 R/W 準保護 機構π、 _ 0 3 X 0 X 無 應用標 準保護 i^(6) 0 3 0 1 1 R/W 註釋(1): 一般存取頁内容包括安全核心和SEM資料 92297 4】 1289787 結構。 註釋(2):寫入嚐試引起GPF;若選擇之記憶體頁為安 全頁(SP=1),則發出SEM安全異常訊號以代替GPF。 註釋(3) ·· —般存取頁内容包括高安全程式類型。 註釋(4): 一般存取頁内容包括0S核心和環0裝置驅 動器。 註釋(5):任何存取嚐試引起GFP;若選擇之記憶體頁 為一安全頁(SP=1),則發出SEM安全異常訊號以代替 GPF。 註釋(6): —般存取頁内容包括應用程式。 於上第1表中,現用執行指令之SP位元為對應於包 含現用執行指令之記憶體頁之SAT表目1 3 1 2的SP位元。 選擇之記憶體頁之U/S位元為PDE U/S位元之邏輯“及 (AND)” ,和選擇之記憶體頁之PTE U/S位元。選擇之記 憶體頁之R/W位元為PDE R/W位元之邏輯“及”,和選 擇之記憶體頁之PTE R/W位元。符號“ X”表示“不介 意”:邏輯值可以是“ 0”或“ 1” 。 茲回頭參照第8B圖,CPU SCU 417之安全檢核邏輯 800B產生一般之保護失誤(“GPF”)訊號和“SEM安全異 常”訊號,並提供GPF和SEM安全異常訊號至於分頁單 元702中之邏輯。當安全檢核邏輯800B確認GPF訊號, MMU 602傳輸GPF訊號至執行單元600。反應於GPF訊 號,執行單元600可使用已熟知之x86處理器架構之中斷 描述符表(IDT)指引機構,來存取和執行GPF處理器常式。 42 92297 1289787 當安全檢核邏輯800B確認SEM安全異常(SEM SECURITY EXCEPTION)訊號,貝U MMU 602 傳輸 SEM 安 全異常訊號至執行單元600。不像一般處理器異常之使用 x86處理器架構之中斷描述符表(IDT)指引機構,而可使用 不同之指引方法來處理SEM安全異常。可以透過相似於 x86 “SYSENTER”和“ SYSEXIT”指令運作方式之一對暫 存器(例如,MSRs),而調配SEM安全異常。該對暫存器 可以是“安全異常表目點位”暫存器,並且當SEM安全異 常發生時,可以定義用於指令執行之分支目標位址。安全 異常表目點位暫存器可以定義碼段(CS),然後指令指標(IP, 或64位元形式RIP)、堆疊段(SS)、和將用於至SEM安全 異常處理器1210之表目之堆疊指標(SP,或64位元形式 RSP)值。於軟體控制下,執行單元600可以將前面的SS、 SP/RSP、 EFLAGS 、 CS 、和IP/RIP值推至新的堆疊以指示 異常發生的位置。此外,執行單元600可將錯誤碼推至堆 疊。如上所提示之,IRET指令可不用作為前面的SS,而 總是儲存著SP/RSP值,以及即使未發生於CPL之改變, 但總可完成堆疊交換。從SEM安全異常處理器1 2 1 0之返 回係經由SMRET指令。 下列第2表顯示用於記憶體頁存取之範例規則,該記 憶體頁存取係當電腦系統400操作於SEM中時,由裝置硬 體單元4 1 4A至4 14D起始(亦即,硬體起始之記憶體存 取)。此等硬體起始記憶體存取可以藉由在裝置硬體單元 4 1 4A至4 1 4D内之匯流排主控電路,或藉由於裝置硬體單 43 92297 1289787 元414A至414D之請求的DMA裝置而予起始。當電腦夺 統400正操作於SEM以為了對於由作業系統5〇2所提供之 在資料安全之上之儲存在記憶體406中之資料提供額外的 安全時’安全檢核邏輯800可執行第2表之規則。於下列 第2表中’該 目標記憶體頁為在其内存在有由記憶體 存取之記憶體存取訊號所傳輸之實體位址的記憶體頁。 第腦系統4 0 0 B正操作於S E Μ時,對於硬體起土 記憶-ΜΑ取之範例規則 存取 特定記憶體頁
SP 類型
R/W 讀取 入 寫 動作 如正1存取宗成 气夸存取返回所有的 “F” ,而非實際的記憶體 内容。未經授權的存取也可 登錄。 資改登 入未可 寫持也 棄"Μ 舍容存 捨内的 但t權 仔己I t未 ^ ο ο ο 元料變錄 於上列第2表中,藉由使用記憶體存取之實體位址之 主橋接器SCU 418,和上述第9圖之用來獲得對應之記憶 體頁之SAT表目1225之機構900,而獲得目標記憶體頁之 SP位元。 如第2表中所指示,當SP=1指示目標記憶體頁為安 王頁日^ ’則記憶體未經授權。於此情況,安全檢核邏輯 並未提供記憶體存取訊號至記憶體控制器。記憶體存取气 號(例如,控制訊號)之部分指示記憶體存取類型,而其中 該記憶體存取類型為讀取存取或寫入存取其中之一。告 92297 44 1289787 SP二1和記憶體存取訊號指示記憶體存取類型為讀取存取 時,該記憶體存取為未經授權之讀取存取,和安全檢核邏 輯800藉由提供所有的“F,,而非實際的記憶體内容(亦 即,假讀取資料),而反應該未經授權之讀取存取。安全檢 核邏輯800亦可藉由如上述般登錄未經授權之讀取存取, 而反應於未經授權之讀取存取。 ‘ 1和d己丨思脰存取訊號指示記憶體存取類型為寫 入存取時,該記憶體存取為未經授權之寫入存取。於此情 況,安全檢核邏輯800藉由捨棄由該記憶體存取訊號所傳 輸之寫入資料,而反應未經授權之寫入存取。安全檢核邏 輯800亦可藉由如上述般登錄未經授權之寫入存取,而反 應於未經授權之寫入存取。 第1 6A圖為第4C圖之主橋接器4〇4c之一個實施例之 圖式。於第16A圖之實施例中,主橋接器4〇4C包括主介 面1600、橋接器邏輯16〇2、主橋接器scu々μ、記憶體控 制的1604、和裝置匯流排介面16〇6。主介面耦接到 CPU 402’和裝置匯流排介面16〇6耦接到裝置匯流排4〇8。 橋接器邏輯16〇2輕接至主介面16〇〇和裝置匯流排介面 1606之間。,己丨思體控制器16〇4耦接至記憶體々Μ,並執行 至。己體4 06之所有的存取。主橋接器scu 418耦接至橋 接器邏輯1602和記憶體控制器]6〇4之間。如上所述,主 橋接㈣SCU 4 1 8控制經由裝置匯流排介面丨6〇6至記憶體 406之存取。省主橋接器scu 418監視經由裝置匯流排介 面1606至記憶體4〇6之所有的存取,並僅允許經授權之存 45 92297 1289787 取至記憶體406。 第⑽圖為第4C圖之主橋接器做之另一個實施作 ^圖式。於第16B圖之實施例t,主橋接器做包括主 面1600、橋接器邏輯16〇2、主橋接器scu 、記情體 控制器1604、裝置匯流排介面16〇6、和匯流排仲裁器“ 1608。i介面16〇〇耦接到cpu4〇2,和裝置匯流排介面 1606耦接到裝置匯流排4〇8。橋接器邏輯“μ耦接至主介 面1600和裝置匯流排介面16〇6之間。記憶體控制器 耦接至記憶體406,並執行至記憶體4〇6之所有的存取。 主橋接器SCU 418 Μ接至橋接器邏輯㈣和記憶體控制 器1604之間。如上所述,主橋接器scu4i8控制經由裝 置匯流排介面1606至記憶體4〇6之存取。該主橋接器MU 418監視經由裝置匯流排介面16〇6至記憶體4〇6之所有的 存取’並僅允許經授權之存取至記憶體4 〇 6。 於第16B圖之實施例中,匯流排仲裁器16〇8耦接至 衷置匯流排介面1606、橋接器邏輯16〇2、和主橋接器scu 418。匯流排仲裁器1608在橋接器邏輯16〇2、裝置硬體單 元4 1 4 A和4 1 4B、和裝置匯流排橋接器4丨〇之間作仲裁, 該裝置匯流排橋接器410係用來控制裝置匯流排4〇8。(裝 置硬體單元414C和414D經由裝置匯流排橋接器41〇存取 裝置匯流排408)。一般而言,裝置匯流排4〇8可包括傳輸 許可訊號之一條或多條訊號線,其中該允許的訊號係於^ 狀態的其中之一,該多狀態指示耦接至裝置匯流排4〇8之 5玄等裝置之其中具有裝置匯流排控制4〇8者。匯流排仲裁 92297 46 1289787 口口 1 608可基於傳輸允許訊號之一 &或多條訊號線而驅動 允許訊號。在正常情況下匯流排仲裁器1608可接收從裝置 硬體單元414A和414B以及裝置匯流排橋接器41〇來:分 離之請求訊號,其中當該對應之裝置需要控制裝置匯流二 彻時,各請求訊號係由對應之裝置所確認。匯流排仲裁 态1608可發佈分離之允許訊號至裝置硬體單元414A和 乂及至旋置匯流排橋接器4〗〇,其中確認其中一個給 疋的允卉Λ號以指示對應之裝置係允許控制裝置匯流排 408。匯流排仲裁器1608可與主橋接器SCU 418工作以提 供在電腦系統400C内之裝置間的安全存取。 第17圖為第16Α圖或16Β圖之主橋接器SCU 418之 一個實施例之圖式。於第17圖之實施例中,主橋接器 418包括耦接到一組SEM暫存器^⑽和丁表目緩衝器 1704之安全檢核邏輯17〇〇。該組之sem暫存器pm管理
安全檢核邏輯1 700之操作,並包括了第9圖之第二SAT
基礎位址暫存器908。該組之SEM暫存器17〇2之第二SAT 基礎位址暫存器9〇8可以是可定址暫存器。當安全核心 修改於0?1;402之該組之8]£]^暫存器61〇中之§八丁基礎 位址暫存器908之内容時(例如,於文脈内容交換期間), 安全核心504亦可將相同的值寫入至於主橋接器scu4i8 之該組之SEM暫存器17〇2中之第二SAT基礎位址暫存器 908反應於修改的第二SAT基礎位址暫存器9〇8,主橋接
Is SCU 418之安全檢核邏輯17〇〇可清除Sat表目緩衝器 1 704 〇 口口 92297 47 1289787 安全檢核邏輯1700接收由硬體裝置單元414A至4 14D 所起始,經由裝置匯流排介面16〇6和橋接器邏輯ι6〇2之 記憶體存取之記憶體存取訊號。記憶體存取訊號傳輸從硬 體裝置單元414A至414D來,並關聯於控制和(或)資料訊 號之實體位址。安全檢核邏輯丨700可具體實施用來獲得對 應於g己憶體頁之SAT表目1225之機構1300,並且當電腦 系統400正操作於SEM時可執行機構1300。SAT表目緩 衝裔1 704係相似於上述之CPU SCU 4 1 6之SAT表目緩衝 器802,並用來儲存最近存取之記憶體頁相當小數目之SAT 表目1225 。 當電腦系統400正操作於SEM時,第17圖之安全檢 核邏輯1 700可使用關聯於所選擇之記憶體頁之sat表目 1 3 1 2之額外的安全資訊,以判定是否給定之硬體起始記憶 體存取已經授權。若已經授權了給定之硬體起始記憶體存 取’則圮憶體檢核邏輯丨70〇提供記憶體存取之記憶體存取 。代號(亦即’位址訊號傳輸實體位址和關聯之控制和(或)資 料訊號)至記憶體控制器1604。記憶體控制器1604使用實 體位址和關聯之控制和(或)資料訊號至存取記憶體406。若 圮fe體406存取為寫入存取,則由資料訊號所傳輸之資料 係寫入到記憶體4〇6。若記憶體4〇6存取為讀取存取,則 。己隐體控制為1 6〇4從記憶體4〇6讀取資料,並提供所獲得 的靖取資料至安全檢核邏輯i 7〇〇。安全檢核邏輯傳 輸。賣取資料至橋接器邏輯16〇2,而橋接器邏輯ι6〇2提供 資料至裝置匯流排介面1606。 92297 48 1289787 另一方面,若、給定之硬體起始記憶、體存取未經授權, 則安全檢核邏輯1700並不提供實體位址,和記憶體傷 之相關的控制和(或)資料訊號存取至記憶體控制器16〇4。 若未經授權之硬體起始記憶體存取為記憶體寫入存取,則 安全檢核邏輯1700可發訊號完成寫入存取並捨辛寫入次 料,保留記憶體406未改變。安全檢核邏輯17〇〇亦可建貝立 於記錄薄(1〇g)(例如,設定或清除狀態暫存器之一個或多個 位兀)中之記錄表目,以便證明違反安全存取。安全核心 可周期性地存取該記㈣以檢核此種記錄表目。若:亥 未經授權之硬體起始記憶體存取為記憶體讀取存: 二檢核邏輯1700可經由橋接器邏輯16〇2送返錯誤的結果 (例如,所有的“假(F),,)至 古 取資靱卜入 玫置匯^排;|面16%,作為讀 、了王檢核邏輯1700亦可建立如上所述之記錄表 目,以為了證明違反安全存取。 、 第/圖為主橋接器咖川之另一個實施例之圖 而ϋ亥主橋接器KM18包括存取授權表1 800。一 # 驅^置取Λ權表.Ο具有輕接到裝置匯流排Μ8並能^ 艇動#置匯流排4〇8(亦即 ^ G㈣訊號)之用於久#置之^置具有相關之和 體4UA之第—έ且之口/目;同組的表目。對應於裝置硬 之表目係如第sr於裝置硬體_之第二組 弟18圖所不。亦考量使用額外組之表目。 存取授權表1800之各表 :⑽並能夠驅動裝置匯流排408之裝置。例二置匯= 中’對應於裝置硬…之第-組表目中之第圖 92297 49 1289787 係針對於裝置硬體4 1 4B。第一表目包括“允許訊號狀態 (GRANT SIGNAL STATE)”欄,該允許訊號狀態欄包含術 語“允許#2確認(GNT#2 ASSERTED)” ,以指示當確認 GNT#2訊號時,應用第一表目。該第一表目亦包括對應於 裝置硬體4 1 4B並指示是否裝置硬體4 1 4B已授權之“已授 權存取(ACCESS AUTHORIZED)”值,來存取裝置硬體 4 1 4A。亦可建立存取授權表1 800,並由安全核心504所維 持。 依照PCI匯流排協定,“起始器”裝置存取“目標”裝 置以起始匯流排傳送或“異動”。可藉由確認“停止# (STOP#)”訊號而使目標裝置終止異動。當起始器裝置偵 測確認之STOP#訊號時,該起始器裝置必須終止異動並再 仲裁PCI匯流排之控制,以便完成異動。若於任何資料傳 送之前目標裝置確認STOP#訊號,則終止稱之為“再嚐 O.JL' ” 吕式 。 於一個實施例中,裝置匯流排408為PCI匯流排,裝 置匯流排408包括多條位址和資料(A/D)訊號線。耦接到裝 置匯流排408之起始器裝置藉由驅動裝置匯流排408之多 條A/D訊號線,存取耦接到裝置匯流排408之目標裝置, 該裝置匯流排408具有輸送指定到目標裝置之位址之位址 訊號。舉例而言,為了控制耦接至裝置匯流排408之裝置 硬體414B之存取,主橋接器SCU 418首先經由PCI匯流 排而程式化裝置硬體4 1 4B,以配置裝置硬體4 1 4B藉由確 認STOP#訊號(亦即,藉由起始PCI匯流排再嚐試而阻斷所 50 92297 1289787 有之存取企圖)而反應於所有的存取嚐試。 主橋接器SCU418經由裝置匯流排介面16〇6耦接到 叙置匯流排408之訊號線,並監視裝置匯流排4〇8之GNT# 和A/D訊號線’以偵測裝置存取企圖。例如,假設裝置硬 體4 1 4 A企圖存取裝置硬體4丨4B。當“起始器,,裝置硬體 414A企圖存取目標,’裝置硬體414B時,裝置硬體414B 藉由起始PCI匯流排再嚐試(亦即,於偵測指定到裝置匯流 排40 8之A/D訊號線上之裝置硬體414B之位址之後,確 認STOP#訊號)而阻隔存取企圖。此動作迫使裝置硬體 4 1 4 A經由後續之存取企圖而再嚐試存取企圖。 當裝置硬體414B阻隔存取企圖時,主橋接器scu 418 經由‘疋到在裝置匯流排408之A/D訊號線上驅動之裝置 硬體4 1 4B之位址而偵測存取企圖。當裝置硬體4丨4 a具有 控制之裝置匯流排408時,確認了 GNT# i訊號,而主橋接 态SCU 41 8經由確認之GNT#1訊號而辨識作為起始器之 裝置硬體4 14A。 主橋接裔SCU 4 1 8然後決定是否將允許由裝置硬體 414A所產生之其後的存取企圖。主橋接器scu 418存取 對應於裝置硬體414B之第二組之表目存取授權表18〇〇, 並選擇在允终訊號狀態(GRANT SIGNAL STATE)攔中具有 “已經確認允許#1(GNT#1 ASSERTED),,之該第二組之第 一表目。該第一表目之已授權存取(access auth〇RIZed) 值為“Γ ,指示藉由裝置硬體414A之裝置硬體414B之 存取已經授權,以及將允許由裝置硬體414A之後續的存 92297 51 1289787 取企圖。 當ACCESS AUTHORIZED值指示將允許由裝置硬體 414A之後續的存取企圖時,主橋接器scu 418送出訊號 至匯流排仲裁器1608確認裝置硬體414A。就在次一個至 裝置硬體414A之裝置匯流排408之允許控制之前,匯流 排仲裁器1608允許裝置匯流排408之控制至主橋接器scu 4 1 8。主橋接态SCU 4 1 8驅動於裝置匯流排4〇8之訊號線 上之讯號,該裝置匯流排408配置裝置硬體4丨4B以允許 由裝置硬體41 4A產生之後續存取企圖。 於接著由裝置硬體4 1 4 A之後續存取企圖之後,匯流 排仲裁器1608立即再允許裝置匯流排4〇8之控制至主橋接 器SCU4U。主橋接器SCU418驅動於pci匯流排之訊號 線上之訊號,該PCI匯流排配置裝置硬體414B以反應藉 由起始PCI匯流排表目之所有的存取企圖(亦即,於偵測指
定至在裝置匯流排408之A/D訊號線上之裝置硬體414B 之位址之後,藉由確認ST0P#訊號而阻隔所有之存取企 圖)。 於存取授權表1800之選擇之表目中之access AUTHORIZED值為,指示起始器裝置並未授權以存 取目標裝置’和將不會允許由起始器裝置所產生之後續存 取企圖’主橋接器SCU 4! 8不配置目標裝置以允許由起始 态裝置所產生之後續之存取企圖,和目標裝置藉由起始 PCI匯流排再嚐試而繼續阻隔由起始器裝置所產生之存取 企圖。應注意的是’為了保護之目的,上述之極微組態存 52 92297 1289787 取組態(atomic configure_access_c〇nfigure)機構僅要求存 在之pci裝置可程式化以起始pci匯流排表目即可。 炫芩照第1 9圖,顯示了依照本發明之處理單元1 9 1 〇 之一個實施例之簡化方塊圖。於一個實施例中,處理單元 no包括有處理單元1910、1/〇存取介面192〇 ι/〇空間" 1940、和譬如軟體目標或結構之可程式化目標1950。處理 器1910可以是微處理器(例如,cpu 42〇),並可包括=數 個處理器(未圖示)。 於一個實施例中,I/O空間194〇提供“通路 (gateway)至I/O裝置1960,譬如數據機、軟碟機、硬碟 機、光碟機、數位影音光碟(DVD)機、pCMCIA卡、和各 種之其他輸入輸出周邊裝置(例如,414A至414d)。於一 替代貫施例中,I/O空間194〇整合在1/〇裝置196〇内。於 一個實施例中,1/〇空間194〇包括記憶體單元1947,該記 憶體單元1947包含相關於定址和與1/〇空間194〇通訊之 資料。記憶體單元1947包括實體記憶體部,該實體記憶體 部包括譬如磁帶記憶體、快取記憶體、隨機存取記憶體、 設置於半導體晶片上之記憶體、以及之類之實體記憶體。 設置於半導體晶片上之記憶體可採用任何各種不同之形 式,譬如同步動態隨機存取記憶體(SDram)、雙倍率同步 動態隨機存取記憶體(DDRAM)、以及等等。 處理器1910透過系統1/0存取介面ι92〇而與1/〇空 間1940通訊。於一個實施例中,1/〇存取介面ι92〇為一 種習知的結構,提供I/O空間位址和邏輯訊號至1/〇空間 53 92297 1289787 本發明之實施例提供使用多重表I/O和記憶體存取系 統而施行之I/O存取。由本發明之實施例所使用之多重表 I/O和記憶體存取系統使用了多層級表定址設計(亦即,使 用I/O存取表2010結合第二I/O表2030)以經由I/O空間 介面1945存取1/〇空間位址。由處理器ι91〇而使用1/〇 記憶體位址來定位所希望之實體I/O位址。 系統300可利用1/0存取表20 1()結合一個或多個其他 的表譬如第二I/O表2030,來定義一虛擬I/O空間位址。 使用I/O存取表2010和第二I/O存取表203〇來轉譯可引 導至實體I/O位址之虛擬][/〇空間位址。實體1/〇位址指 向I/O裝置360之實體位址,或指向於1/〇裝置196〇中之 記憶體位址。由本發明之實施例所提供之多層級1/〇存取 表系統允許第二1/0表2〇3〇來定義全部各段之1/〇存取表 1 0於些例子中,第二I/O表2030可定義該並不出現 於I/O存取表2010中之一部分的虛擬1/〇位址。第二 表2030可使用為微調裝置,該微調裝置可根據由I/O存取 表2010所產生的虛擬1/0位址來進一步定義實體I/O位 址。如此將得到更正確和快速之虛擬"〇位址定義。 於一個實施例中,在其中可包括複數個子集合表之, 二表2030’係儲存在記憶體單元1947中或在系統 的主記憶體⑽中未顯示)中。第二1/〇表2〇3〇可儲存於篇 t全層級以防止不安全或未經驗證之軟體結構或目標 ㈣二以獲得存取至第二⑻表加卜於—個實施例中, 處理益1910根據藉由目標刪所送出之指令,而請求名 92297 56 1289787 取至貫體I/O瓜置位址中之位址。反應於由處理器19 1 〇所 作之記憶體存取請求,I/O存取介面192〇提示1/〇存取表 2010以產生虛擬I/O位址,該虛擬1/〇位址係進一步由第 二I/O表2030所定義。虛擬1/〇位址然後指向到於ι/〇空 間介面1945中之位置。處理器191〇然後請求存取至虛擬 ι/〇位址,然後可使用該虛擬1/0位址來定址對應於ι/〇裝 置1960中之位置。 、 以下說明於第21Α圖和第21Β圖中所示之執行由處理 器191〇所施行之記憶體存取之一個實施例。兹參照第2ια 圖,顯示了用來儲存和取得於資料處理器或系統3〇〇中之 安全層級屬性之I/O存取李 甘%示、、死2 1 〇〇之一個例示性實施例。 於一個實施例中,I/O存取系絲 什取糸統21〇〇整合入系統3〇〇中之 處理早元1910。1/〇存取系結91〇。必丄>人 糸、、先2 1 〇〇對於用於存取"ο空間 1 9 4 0之使用多重表安+母士士 _欠 女王°又β十之貢料處理器(圖中未顯示)是 很有用的。舉例而言,當定付枯 疋位使用4如執行於χ86型之微 處理态之分頁没計之"〇空間1 朴 Ί 1940日寸,可精由處理器1910 而使用I/O存取系統21〇〇。於一每 、 個貝施例中,於X 8 6系統 中之單一記憶體頁包括4千你
秸4千位兀組之記憶體。再者,I/O 存取系統测找到於處理器191g中之特殊的應用該處 理器1910指定於頁層級的適當安全層級屬性。 I/O存取系統2 i 〇〇接 叹1/0工間位址2153,該I/O空 間位址2 1 5 3由頁部公〇 μ A +、、 、 和補償部分2 120所組成,係相 反於將由x86型之微處理哭中 φ 〇口中之刀頁早元所接收之虛擬、 、.泉性、或中介位址。於一個者 貝施例中,頁部分2 11 0資料定 92297 57 1289787 址於適當的記憶體頁,而補償部分2120資料定址於選擇之 頁邛分2110内之特定補償1/〇位置。1/〇存取系統 接收譬如將由x86類型之微處理器中之分頁單元(圖中未 絲員示)所產生的實體位址。 通常稱之為擴展安全屬性表(ESAT)之多層級檢查表 2130,接收實體1/〇位址之頁部分211〇。多層級檢查表213〇 儲存關聯於記憶體之各頁U 1〇之安全屬性。換言之,各頁 2Π0具有關聯於頁211〇之某些安全層級屬性。於一個實 施例中,關聯於頁2110之安全屬性儲存於多層級檢查表 2130中。舉例而言,關聯於各頁211〇之安全屬性可包括 下查(look down)、安全關係 ID(security c〇ntext 、輕權 值乎Η閘(lightweight call gate)、讀取致能、寫入致能、執 仃、外部主控寫入致能、外部主控讀取致能、加密記憶體、 安全指令致能等。許多之這些屬性就熟悉此項技藝者而言 於及取本舍明揭示之技術内容後,將可瞭解。 於一個實施例中,多層級檢查表2130位於系統300 之系統圮憶體(圖中未顯示)中。於一替代實施例中,多層 級檢查表2 1 3 0整合入處理器丨9丨〇,該處理器丨9丨〇包括使 用了系統300之微處理器。因此,多層級檢查表213〇能夠 操作的速度係相依於,至少是部分相依於系統記憶體之速 度。系統記憶體之速度當與處理器3丨〇之速度相比較時, 一般為相當的慢。因此,使用多層級檢查表213〇之取得安 全屬性之處理可放慢系統3〇〇之整個操作速度。為了減少 需要定位之時間周期並取得安全屬性,而平行施用快取記 58 92297 1289787 L版2 1 40和夕層級檢查表2丨3 〇。快取記憶體2 1 μ可位於 與處理态1910(亦即,快取記憶體214〇和處理器係 積體於個、半導體晶片上)相同的晶粒上,或設於處理器晶 氺之外。卩或者一種情況都有。一般而言,快取記憶體2 1 * 〇 之速度可貫質上較多層級檢查表213〇之速度為快。快取記 憶體2140包含涵括於多層級檢查表2130内之頁2110和其 安全屬性之較小的子集。於是,對於儲存於快取記憶體 2140中之頁2110,可實質地增強擷取安全屬性之操作。 妓回頭筝照第2 1Β圖,顯示了使用相關於記憶體中之 頁2110而用來儲存和擷取安全屬性之多層級檢查表2丨3〇 之一個實施例。多層級檢查表213〇包括通常稱之為esat 目錄之第一表2150,和通常稱之為ES at之第二表2152。 一般而言,第一表215〇包含用於複數個ESAT 2丨52之開 始位址之目錄,其中儲存了對於各頁211〇之安全屬性。於 此處所示的實施例中,可使用單一 ES AT目錄2丨5〇來寫映 在I/O裝置I960内之I/O位址和(或)記憶體之整個範圍。 I/O空間位址2 1 53之第一部分,包括了最高次位元和 通常稱之為目錄(DIR) 2154者,係用來作為進入第一表 2150中之指標。I/O空間位址2153亦可包括含有表資料 2 1 7 0之部分’表資料2 1 7 0能夠確認正予定址之表2 1 5 0、 2152。I/O空間位址2153進一步包括在表215〇、2152内 之補償2120,該表21 50、2152引導至一特定之表目2160、 2180。第一表21 50係位於系統記憶體中於基礎位址2155。 將I/O空間位址2153之DIR部分2154加至基礎位址2155 92297 59 1289787 以確認表目2 1 6 Ο,表目2 1 6 0指向到於i由 J於其中一個第二表2152
中適當的位址之基礎位址。於—個每# A丨rK 1L1只她例中,有複數個第 個位址之開始位址。換言之,各表目 分離 ESAT 2152。 二表2152可表現於多層級檢查表213〇中。一般而言,在 第一表2150中之各個表目216〇指向第二表2152中^中一 2180可指向其自已的 於一個實施例中,第-表2150和各第二表2152佔據 於實體記憶體中之一頁2110。因此,於習知的具有分頁致 能之X86型之微處理器中之記憶體管理單元,冑需要時能 夠交換進入和離開系統記憶體之表215〇、2152。也就是 說’因為表2150、2152之多層級管理,而希望所有的表 2152同時表現於1/0空間34G。若其中—個不正位於記憶 體單元1947之表由第一表2ls〇中之表目216〇所請 求時,習知的X86微處理器之記憶體管理單元(圖中未顯示) 可從譬如硬碟機之主記憶體讀取頁211〇,並將請求之頁 2110儲存於也許用來存取之系統記憶體中。此一頁大小之 表2150、2152減少需要儲存多層級檢查表213〇之系統記 憶體之量,並且減少需要使用表215〇、2152存取ι/〇空間 1 940之交換之記憶體量。 於個貝施例中,各頁為4千位元組大小,而系統計 憶體總共有一千六百萬位元組或更多。因此,大約有4000 個ESAT表2152位於一頁211〇内。於一個實施例中,4〇〇〇 個ESAT表2152各可包含4〇〇〇組的安全屬性。再者,ε§ατ 目錄2150包含用於各4〇〇〇個ESAT表2152之開始位址。 92297 60 1289787 第一表2150之表目21 60指向於適當之第二表2152之基礎 位址。藉由將I/O空間位址2153之第二部分2152(表部分) 加至包含於表目2160中之基礎位址2155,而確認於適當 之第二表2152中之所希望之表目218〇。於—個實施例中, 表目2180包含關聯於1/〇空間24〇中確認之頁2ιι〇之預 定的安全屬性。於第21A圖和21B圖中顯示之多重表設 計,為一示範實施例,熟悉此項技藝者於吸取本發明揭示 之技術内容後,可依照本發明而執行變化之多重表設計。 第22圖顯示SEMI/〇允許位元寫映(於第22圖中標 號為2200)之一個實施例之圖式,和用來存取sem 允 許位元寫映2200之機構的一個實施例。第22圖之機構可 在Bm 4〇6内之邏輯内具體實施,並當電腦系統4〇〇正操 作於SEM中時可加以應用。於第22圖中,該組之随暫 存器61〇包括模式特定暫存器(MSR)22〇hMsR22〇2用來 儲存SEMI/0允許位元寫映22〇〇之開始(即,基礎)位址。 如上所述,電腦系統400具有n個不同UCid值盆中η 是整數且n^SEMI/0允許位元寫映2扇包括用於各η 個不同之SCID值之不同的1/〇允許 τ/η ^ ^ 兀汗位兀寫映。各分離的 I/O允許位元寫映包括64k位元,或扑位元組。 於第22圖之實施例中,包括存取1/〇痒端之1/〇^人 之記憶體頁之SCID值係用來作為從模式特定 曰7 六^(亦即’ SEMI/Ο允許位元寫映22〇〇之基礎位 谷^進入到用來補償SEMl/0允許位元寫映22⑽之一内 個或多個04k位元(8位元組)ι/〇允, 兄4位兀寫映之補償。結 92297 61 1289787 果,存取對應於SCID值之I/O允許位元寫映。然後I/O埠 端號用作為位元補償進入對應於SCID值之I/O允許位元 寫映。以此種方式存取之位元為由I/O埠端號所定義之對 應於I/O埠端之位元。 第23圖為顯示在該圖中標號為2300之SEM I/O允許 位元寫映之另一個實施例,以及用來存取SEM I/O允許位 元寫映之機構之另一實施例之圖式。可在BIU 406内之邏 輯内具體實施第23圖之機構。於第23圖之實施例中,SEM I/O允許位元寫映2300包括單一 64k位元(8位元組)1/0允 許位元寫映。I/O琿端號用來作為從模式特定暫存器 2202(亦即,安全執行模式I/O允許位元寫映2200之基礎 位址)之内容來之進入到I/O允許位元寫映之補償。以此種 方式存取之位元為由I/O埠端號所定義之對應於I/O埠端 之位元。應注意的是除非有其他的指示,該SEM I/O允許 位元寫映2200和該SEM I/O允許位元寫映2300係為可交 換的。 第24圖可用來說明指定的SCID值,和建立之對應 SEM I/O允許位元寫映2200、2300,如何用作為在電腦系 統400内為了安全目的而“劃分”裝置驅動器和關聯之裝 置硬體單元。第24圖顯示電腦系統400之各種硬體和軟體 組件之間關係的圖示,其相似於第5B圖,其中裝置驅動 器506A和對應之裝置硬體單元414A係位於第一安全 “室” 2400,而裝置驅動器506D和對應之裝置硬體單元 4 14D係位於第二安全室2404。安全室2400和2404彼此 62 92297 1289787 分開並操作上卩5 M ^ ^ ^離。僅允許裝置驅動器506A存取裝置硬 一兀4A ’和僅允許裝置驅動器506D存取裝置硬體單 、 此至化之裝置驅動器和相關之裝置硬體單元有助 2防止心思的或錯誤的碼對裝置硬體單元之狀態的負面影 喜,或干擾到電腦系統400的適當操作。 舉例而3,於第24圖之實施例中,包括裝置驅動器 6A和506D之指令的記憶體頁可指定不同的scid值。 建立用於波置馬區動器5〇6A之SCID值之第一個sem 允存位兀寫映2200、2300可允許裝置驅動器5〇6A存取指 定到裝置硬體單元414A之電腦系統4〇〇之1/〇位址空間 之弟 °卩刀,而不允許裝置駆動器506A存取指定到裝置 硬體單元414D之:[/〇位址空間之第二部分。同樣地,建 立用於裝置驅動器506D之SCID值之第二個SEM 1/〇允許 位兀寫映2200、2300可允許裝置驅動器5〇6D存取指定到 裝置硬體單元414D之I/O位址空間之第二部分,而不允 許裝置驅動器506A存取指定到裝置硬體單元414A之1/〇 位址空間之第一部分。結果,僅有裝置驅動器5〇6A允許 存取裝置硬體單元414A,和僅有裝置驅動器5〇6D允許存 取裝置硬體單元414D。 鑑於上述之系統300和說明之其相關各種特徵,操作 電腦系統4 0 0之方法3 3 0 0之貫施例,如第2 5圖中所卞 可用於任何其他各實施例中。方法3300包括在方塊步驟 3 3 05中執行不安全常式。不安全常式可為一般之操作時不 需要安全保護之軟體常式。不安全常式亦可為具有最少安 92297 63 1289787 全保護之軟體常式。不安全常式可包括作業系統呼叫。 方法3300亦包括在方塊步驟331()中接收從不安全 式來的清求。该請求可包括例如記憶體異動、異動、 裝置間異動、或軟體常式。該請求通常會由電腦系統400 逄到所期望之反應。方法3·在方塊步驟Mb 一次評估。第-次評估可包括特徵化或其他: :在的安全風險判定。第—次評估可用旗標標示請 求,除了落於-類型或包括可能或潛在之安全風險之显動 型式内之外’並^具有真正的安全風險。 方法3300接著在決定方塊步驟3320中判定是否請求 有潛在的安全風險。若於決定方塊步驟3320中判定請求並 不似乎有潛在的安全風險,則方法3於方塊步驟3奶 賦加此求。可賦加此請求以便將任何安全風險降至最 二# (或)將电腦系統4〇〇之反應時間變得最大。若於決 定方塊步驟3320中料請求似乎有潛在的安全風險,則方 法3綱於方塊步驟3330用軟體施行更詳細的第二次評 估。該第二次評估包括對請求之更完全的評估和以所期望 的反應賦加請求之任何可能的安全風險。 方法33 00接著在決定方塊步驟Μ”中判定請求是否 看^來有安王風險。若請求於決定方塊步驟3奶中看起來 ^又有t全風險’則方法33⑼於方塊步驟MU賦加此請 可賦加此叫求以便將任何安全風險降至最小,和 將電腦系、統伽之反應時間變得最大。若於決定方塊步^ 3335中判定請求似乎有潛在的安全風險,則方法3300於 92297 64 1289787 決定方塊步驟3340判定該風險是否可用本發明此說明書 中所舉出之一種或多種悲樣來管理該風險,俾可安全地反 應該請求。若於決定方塊步驟334〇賦加之請求的安全風險 看起來為可管理,則方法33〇〇於方塊步驟3345賦加安全 形式之請求。於一個實施例中,藉由虛擬化而施行反應, 具有接收到之未指示當要求時並沒有賦加請求之不安全常 式。藉由賦加軟體結構而替代請求,該軟體結構允許電腦 系統400陷捕含相關於請求之安全問題。若賦加請求 之安全風險看起來為不可管理,則方法33〇〇於方塊步驟 33 50拒絶或忽略該請求。方法33〇〇亦可反應於具有仿造 或預定反應之請求。 於方塊步驟33 15可在硬體中快速有利地施行第一次 =估。於方塊步驟3330可在軟體中更有利地完全施行第二 人汗估。當發展出新的安全風險演算法時,可很容易更新 車人體評估。 , 下列的請求和可能的安全反應僅作例示用,並不欲限 制任何特定的中請專利範圍。兹考慮—請求寫人到包括已 作安全處理之保密資料之記憶體頁。寫人不能允許作為請 求。記憶體頁可虛擬化成虛擬頁,而寫入允許寫入到虛擬 頁然後電腦系統400能夠評估至虛擬頁之改變。 兹考慮對於寫入到保護之暫存器之次一個請求。保嘆 =暫存器可虛擬化成虛擬暫存器。可允許寫入至虛擬暫存 並"平估女王風險。亦可考慮一請求以修正即時時脈。 可將即時時脈虛擬化成虛擬時脈。可將請求賦加為不安全 92297 65 !289787 吊式而不會改變即時時脈。 、以上揭不之本發明之一些態樣可用硬體或軟體之方 =來貝轭。因此,此處詳細說明之一些部分結果表現為所 之硬體施行之處理,和此處詳細說明之一些部分結果表 二為所明之軟體施行之處理,該軟體施行之處理包含在電 月:系統或電腦裝置之記憶體内於資料位元操作之符號表 丁 4些5兒明和表示係為由此技藝方面的人士所使用以更 有效地輸送其工件之物質至使用石更體和軟體之於此技藝方 他人士所使用之手段。二者之處理和操作需要實際 數量之實體操控。豸常於軟體,雖然並不是必須的,這些 數量是採用能夠儲存、傳輸、組合、比較、和其他操控之 電學、磁性、或光學訊號之形式。主要為了共同使用之理 ;斗夕%間,證明可將這些訊號方便地參考為位元、 數值、元素、訊號、字元、術語、數字等。 …、而應5亥銘記於心的是,所有的這些和相似的項目 將相關於適當的物理量, 里且僅方便標記應用於這些數量。 除非經特別說明,或否刖做叮θ , 一 飞否則將可明顯地看出,全部本發明揭 不之這些說明將參昭雷早杜班 ^ 、、、電子裝置之動作和處理,該裝置摔 和轉變代表為在儲存入相如主、 一 ^表現為在儲存器内之物理量之 其他資料之一些電子梦番& 、 、 ,或於傳輸或顯示裝置内之物 理(電子、磁性、或光學)量 ^ J里之貝枓。表不如此說明之各術 ^之範例,係為“處理” 、“ 瞀 叶开(computing),,、 “ 核算 (calculating)、“ 判定,,、“翻…一 此等術語。 顯不+,但是並不受限於 92297 66 1289787 亦應注思的疋’本發明之軟體施行的悲樣一般係編碼 於程式儲存媒體或執行於一些傳輸媒體之形式。程式儲存 媒體可為磁性(例如,軟碟機或硬碟機)或光學(例如,光碟 唯讀A憶體,或“CD ROM”)之儲存媒體,並可為唯讀的戋 隨機存取。同樣地,傳輸媒體可為雙絞線對,同軸電纜、 光學電纜、或一些於此技術方面已知之其他的適合傳輸媒 體。本發明並不受所給予之任何這些實施態樣的限制。 揭示於上之特殊實施例僅作說明用,而本發明可作修 飾以及以不同之方式實施,但是對於此技藝方面之一般技 術人員而言於閱讀習得本說明書後,當可瞭解本發明可以 諸多等效方式實施。再者,除了以下之申請專利範圍中說 月之外’並不欲對其中所示之構造或設計之細部作限制。 因此,很明顯地以上揭露之特定實施例可作更改或修飾, 而所有此等變化皆係考慮在本發明之精神和範圍内。由 此’本發明提出下列之申請專利範圍請求保護。 [圖式簡單說明] 由參照上列之詳細說明,並配合所附圖式,將可瞭解 本發明’各圖中相同之參考號碼係表示相對應之部 中: /、 第1圖為由x86處理器當例如執行視窗作業系統時, 產生之異常堆疊碼框(excePti〇n stack frame)之圖示; 一第2圖為SYSCALL/SYSRET目標位址暫存器之圖 第 圖為依照本發明 之一個態樣,系統之一 個實施例 92297 67 1289787 之圖示; 之電腦系 第4A圖為可依照本發明之一個態樣而使用 統之一個實施例之區塊圖; 第4B圖為依照本發明之一個態樣之電腦系 ^ ^ —個 實施例之圖式,該電腦系統包括了含有1/〇安全檢核單一 (SCU)之中央處理單元(CPU),該scu用來保護裝置硬^ 單元免於由該CPU產生之未經授權之存取; 第4C圖為依照本發明之一個態樣之電腦系統之一個 實施例之圖式,該電腦系統包括了包含CPU安全檢核單元 (SCU)之CPU和包含主橋接器scu之主橋接器; 第5A圖為顯示依照本發明之一個態樣之電腦系統實 施例之各種硬體組件和軟體組件間之一些關係之圖式; 第5B圖為顯示依照本發 施例之各種硬體組件和軟體組 式;
明之一個態樣之電腦系統 件間之一些關係之另一圖 第5C圖為頒不依照本發明之一個態樣之電腦系統實 施例之各種硬體組件和軟體組件間之—些關係之另一圖 式; 第6A圖為依照本發明之一個態樣之一個cpu實施例 之圖式;〜7 第6B圖為依照本發明之-個態樣之另-個CPU實施 例之圖式; 〜 第6C圖為依照本發明之一個態樣之另一個cpu實施 68 92297 1289787 式之一個實施例之圖式; 第1 5圖為依照本發明之一個態樣,SAT表目柊式之 個實施例之圖式; 。工 包含主橋接器 包含主橋接器 第1 6 A圖為依照本發明之一個態樣 SCU之主橋接器之一個實施例之圖式; 第1 6B圖為依照本發明之一個態樣 SCU之主橋接器之另一個實施例之圖式 第17圖為依照本發明之一個態樣,主橋接器scu 一個實施例之圖式; 第18圖為依照本發明之一個態樣,包括存取授權 之主橋接器scu之另一個實施例之圖式; 又 第19圖為依照本發明之一個態樣,根據本發明之一 個實施例,第2圖中所示之處理單元之更詳細區塊圖表 示, 之二2〇:八為依照本發明之一個實施例,帛19圖中所示 子’丨面之更詳細區塊圖表示; 第21A和21B圖為顯示依照本發明之各種 19至20圖所示夕考饰即α 八田乐
厅丁之處理益所施行之空間和 體存取之區塊圖表示; )U。己U 第22圖為顯示依照本發明之各種態樣,儲
體内之SEM I/O分# μ — & i U u允卉位兀寫映之一個實施例,和用來存取 SEMM允許位元寫映之機構的—個實施例之圖式;
第23圖為顯示依照本發明之各種態樣,第U SEM I/O允許位亓宜盹々v
寫映之另一個實施例,和用來存取SEM 92297 70 1289787 ι/ο允許位元寫映之機 第24“ 域構的另-個實施例之圖式; 第24圖為依照本發明之一個態樣 各種硬體和敕體組件之間 7 、 ^ *系統之 和對應之第_裝置 …Τ ^茗置驅動器 忒罝硬體早兀放置於第一安全“室 (compartment),,中,而 衣罝.動态和對應之箆― 硬體單元放置於第二安全^之第-裝置 全獨立並可操作地隔離;以及 弟女 第25圖為依照本發明 之一個態樣,顯示操作該雷 糸用以改進安全性之方法的實施例之流程圖。 100 異常堆疊碼框(exception stack frame) 200 目標位址暫存器(STAR) 300 電腦系統 310 處理單元 320 顯示單元 330 鍵盤 340 滑鼠 3 50 輸入筆 400 > 400A、400B、400C 電腦系統 402、 402A、402B、402C、 402D 中央處理單元(CPU) 404 ^ 404C 橋接器 406 記憶體 408 第一裝置匯流排 410 裝置匯流排橋接器 412 第二裝置匯流排 414A 至 414D 裝置硬體單元 416 CPU安全檢核單元 417 I/O安全檢核單元(SCU) 418 主橋接器安全檢核單元 71 92297 1289787 記憶體管理單元(MMU) 快取記憶體(cache)單元 匯流排介面單元(BIU) 安全執行模式(SEM)位元 分頁單元(分頁機構、分頁邏輯) 800A、800B 安全檢核邏輯 500 應用程式 504 安全核心 506A 至 506D 509 SEM位元 602 604 606 608 控制暫存器 609 610 SEM暫存器 650 微碼引擎 654 安全檢核碼 702 704 選擇邏輯 800、 502 作業系統 裝置驅動器 600 執行單元 652 微碼儲存器 700 分段單元 802 安全屬性表(SAT)表目緩衝器 900 SMCALL/SMRET目標位址暫存器(SMSTAR)(機構) 902 安全模式GS基礎(SMGBASE)暫存器 908 第二SAT基礎位址暫存器 1000 SEM異常堆疊碼框 1010 錯誤碼格式 1100方法 1102 SAT表目緩衝器 1105、 1110、 1115、 1120、 1125、 1130、 1135、 1140、 1145 、 11 5 0 步驟 1205 SEM安全異常 1210 SEM安全異常處理器 72 92297 1289787 1215頁管理常式 1220虛擬記憶體配置 1225 安全屬性(SAT)表目 1230 CPU狀態 1 2 3 5控制暫存器 1240模式特定暫存器(MSR) 1242控制暫存器 1246 sem致能位元
1250A、1250B、1250C 1255 訊號 1302 實體位址 1306 SAT(SAT 表) 1310 、 1312 1400 S AT内設暫存器 1 500 SAT表目格式 1602 橋接器邏輯 1606 裝置匯流排介面 1700 女全檢核邏輯 1704 S AT表目緩衝器 1910處理器(處理器單元) 1915 、 1925 1920 I/O存取介面 1945 I/O空間介面 1950可程式化目標(軟體結 1960 I/O 裝置 2030 第二 I/O 表 1244 CPL 1250 訊號 安全值 1300 機構 1304 SAT目錄 1308 SAT基礎位址暫存哭 SAT目錄表目 1430 SAT目錄表目格式 1600 主介面 1604 記憶體控制器 1608 匯流排仲裁器 1702 SEM暫存器 1800 存取授權表 主匯流排 1940 I/O空間 1947 記憶體單元 構或目標) 2010 ϊ/〇存取表 2100 I/O存取系統 92297 73 1289787 2110 頁部分 2130 多層級檢查表 2 120 補償部分 2140 快取記憶體 2150 ESAT目錄表(第一表)2152 ESAT表(第二夺 2154 DIR 部分 2153 I/O空間位址 2155 基礎位址 2160、2180 表 g 2170 表資料 2200 SEM I/O允許位元寫映 2202 模式特定暫存器(MSR) 2300 SEM I/O允許位元寫映 2400安全室 24〇4第二安全室 3300 方法 33 05、3310、3315、3320、3325、3330、333 5、33 40、3345、 3350 步驟 74 92297

Claims (1)

1289787
第92108498號專利申請案 申請專利範圍修正本 (96年2月1曰) 心軟體之電腦系統, 1.-種在安全執行模式下執彳亍安全核 包括: 一處理器 式;以及 可組構成用來執行安全常式和不安全常 硬體,耦接以施行關聯 一次評估,其中該硬體進_ 至該安全常式; 於該不安全常式之請求之第 步組構成提供一請求之通知 其中該安全常式係組構成施行請求之第二次評 估’以及其中該安全常式進_步組構成拒絕—請求之反 應至該請求。 2·如申請專利範圍第1項之電腦i统,其中該安全常式包 括組構成用來施行該請求之該第二次評估之軟體安全 異常處理器。 3·如申請專利範圍第2項之電腦系統,其中若該請求遞送 该第二次評估,則該軟體安全異常處理器組構成允許該 請求之反應。 4 ·如申請專利範圍第1項之電腦系統,其中該安全常式包 括軟體安全異常處理器,組構成若該請求遞送該第二次 評估則允許該請求之反應。 5·如申請專利範圍第1項之電腦系統,其中該處理器組構 成執行x86指令。 92297修正版 1 1289787 其中該安全常式為 /、中該安全核心為 其令該不安全常式 /、中該第_次評估 6.如申請專利範圍第] 安全核心的組件。員之電腦系統 7 ·如申請專利範圍苐6 作業系統的組件。、之電腦系統 8·如申請專利範圍第〗 包括作業系統呼叫/之電腦系統 9·如申請專利範圍第丨 為分類,而其中該第腦系:,其中該第- 10·如申請專利範圍第9人δ平估為安全域險評估。 較該請求與複數個包電腦系統’其中該分類包括t 有潛在之高安全風險、有最小女王風險之類目,和^ 在其中-個具有潛在;^之類目’和其中若該請求』 ϋ鬲女全風險之萎 知該請求之安全常式。 、,則該硬體i| ” ·如申請專利範圍第!項之電腦系統 存了至少一個安全執 ,、中忒硬體包括儲 h ^式位7°之安全執行 12.二申請專利範圍第1項之電腦系統,其中該硬體包括蚀 存了輸入/輸出⑽)保護位元寫映之記憶體。 錯 认如申請專利範圍第β之電 中 存了安全資料結構之記憶體。八中°亥更體包括儲 14:異申:專利範圍第1項之電腦系統,其中該通知包括硬 15.如申請專利範圍第1項之電腦系統,其中該安全常式勺 括微碼和有限狀態機之至少其中一個。 "匕 92297修正版 2 1289787 16.一種在安全執行模式下執行安全核心軟體之方法,包括 執行不安全常式; 接收從該不安全常式來的請求. 施行於硬體巾該請求之第-次評估;以及 把仃於权體中安全常式中該請求之第二次評估。 17·如申請專利範圍第16項之方法,其中施行於軟體中該 女全常式中該請求之該第二次評估包括施行於軟體安 全異常處剑中該請求之該第二次評估。 _申請專利範圍第16項之方法,其中執行該不安全常 式包括執行包含有x86指令之該不安全常式。 安I I ::乾圍第16項之方法,其中施行於軟體中該 女王吊式中該請求之兮楚—& 之該弟一-人评估包括施行於安全核 心中該請求之該第二次評估。 20·如Π專利範圍第19項之方法,其中施行於該安全核 ::請求之該第二次評估包括施行於作業系統中該 睛求之該第二次評估。 21:=利範圍第16項之方法,其中執行該不安全常 :::執仃—作業系統組件,以及其中接收從該不安全 吊式來的該請求包括接收一作業系統呼叫。 22·^請專利範圍第…項之方法,其中施行於硬體 =之該第一次評估包括施行於硬體中該請求之分 二次mi施行於軟體中該安全常式中該請求之該第 全風險評;行於軟體中該安全常式中該請求之安 92297修正版 3 1289787
23·如申請專利範圍第22項 請求之該八 左”〒施订於硬體中該 X刀類L括比較該請求與 全風險之類目,和具有潛在之安全:具有低-和若嗲过击3 ^王風險之類目之類目; 目二疋在其中一個具有潛在的安全風險之類 ,則該硬體遞送該請求至該安全常式。 、 種在安全執行模式下執行安全核心軟體之系統,包 用來執行不安全常式之機構; 及 用來接收從該不安全常式來的請求之機構· 用來施行於硬體令該請求之第一次評估之機構;以 用來施行於軟體中安全常式中該請求 心) 估之機構。 乐一二人# 25.如申請專利範圍第24項之系統,其中用來施 中=安全常式中該請求之該第二次評估之該機構,^ 於軟體安全異常處理器中用來施行該請求之該 ^ 評估之機構。 人—K 26.如申請專利範圍第24項之系統,其中用來執行該不安 全常式之該機構包括用來執行包括x86指令之不安八 常式之機構。 I 27.如申請專利範圍第24項之系統,其中用來施行於軟體 中安全常式中該請求之該第二次評估之該機構,包二用 來施行於安全核心中該請求之該第二次評估之機構。 28·如申請專利範圍第27項之系統,其中用來施行於該安 92297修正版 4 1289787
二=^該請求之該第二次評估之該機構,包括用來施 订於作業系統中該請求之該第二次評估 29.如申請專利範圍第24 及其中用來接收從該不安全:=組件之機構,以 .^ ^ ㊉式來之該請求之該機構 匕括用來接收作業系統呼叫H 3°:m利範圍第24項之系統,其中用來施行於硬體 弟_人3子估之機構包括用來施行於硬體 安二=分類之機構;以及其中用來施行於軟體中該 =二求之該第二次評估之機構包括用來施 ^體中該安全常式中該請求之安全風險評估之機 利範圍第3〇項之系統,其中用來施行於硬體 几險之類目,和具有潛在之安全風險 八=之機構;和若該請求是在其中-個具有潛在的安 3/風險之類目’ _硬體遞送料求至該安全常式。 八種3己錄*全執行模式下可以執行安全核心軟體的指 :之電腦可讀取媒體,該指令當用電腦系統執行時,可 執行一種方法,該方法包括: 執行一不安全常式; 從該不安全常式將請求遞送至硬體; 於第一次評估後接收從該硬體來:該請求;以及 施行於安全常式中該請求之第二次評估。 92297修正版 5
1289787 3 3 ·如申請專利範圍第3 2項之電腦可讀取媒體’其中施行 於安全常式中該請求之該第二次評估包括施行於軟體 安全異常處理器中該請求之該第二次評估。 34·如申請專利範圍第32項之電腦可讀取媒體,其中執行 該不安全常式包括執行包含x8 6指令之該不安全常式。 35·如申請專利範圍第32項之電腦可讀取媒體,其中施行 於該安全常式中該請求之該第二次評估包括施行於安 全核心中該請求之該第二次評估。 36·如申凊專利範圍第35項之電腦可讀取媒體,其中施行 ;該安全核心巾料求之該第:次評估包括施行於作 業糸統中該請求之該第二次評估。 3 7 ·如申請專利範圓楚 2項之電腦可讀取媒體 該不安全常式包括舳/ ^ 貝%姝體,其中執仃 請求從該不安全赍斗 及,、中遞运該 至硬體包括產生一硬體干擾。 92297修正版 6
TW092108498A 2002-05-31 2003-04-14 Method and computer system of executing security kernel software under a secure execution mode, and computer readable medium of recording related instructions TWI289787B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/160,984 US20030226014A1 (en) 2002-05-31 2002-05-31 Trusted client utilizing security kernel under secure execution mode

Publications (2)

Publication Number Publication Date
TW200307216A TW200307216A (en) 2003-12-01
TWI289787B true TWI289787B (en) 2007-11-11

Family

ID=29583316

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092108498A TWI289787B (en) 2002-05-31 2003-04-14 Method and computer system of executing security kernel software under a secure execution mode, and computer readable medium of recording related instructions

Country Status (9)

Country Link
US (1) US20030226014A1 (zh)
EP (1) EP1509839A2 (zh)
JP (1) JP4688490B2 (zh)
KR (1) KR100975981B1 (zh)
CN (1) CN1307535C (zh)
AU (1) AU2002360617A1 (zh)
GB (1) GB2405976B (zh)
TW (1) TWI289787B (zh)
WO (1) WO2003102745A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI419045B (zh) * 2008-12-01 2013-12-11 Micron Technology Inc 用於管理裝置之端序模式之系統及方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US8838950B2 (en) * 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
US7089397B1 (en) * 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
KR100591555B1 (ko) 2004-01-19 2006-06-21 주식회사 전유시스템 Pam 인증 기반 보안 커널 시스템 및 그 제어방법
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
US7617534B1 (en) 2005-08-26 2009-11-10 Symantec Corporation Detection of SYSENTER/SYSCALL hijacking
US20070168574A1 (en) * 2005-09-28 2007-07-19 Dell Products L.P. System and method for securing access to general purpose input/output ports in a computer system
US7685638B1 (en) 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
EP1865435A1 (en) * 2006-06-06 2007-12-12 Texas Instruments France Enhanced exception handling
US8245307B1 (en) 2006-12-18 2012-08-14 Nvidia Corporation Providing secure access to a secret
US20090144821A1 (en) * 2007-11-30 2009-06-04 Chung Shan Institute Of Science And Technology, Armaments Bureau, M.N.D. Auxiliary method for investigating lurking program incidents
KR101017015B1 (ko) * 2008-11-17 2011-02-23 (주)소만사 네트워크 기반 고성능 콘텐츠 보안 시스템 및 방법
CN101833621B (zh) * 2010-04-27 2011-11-30 广州广电运通金融电子股份有限公司 终端安全审计方法及系统
US8495750B2 (en) 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
KR101895453B1 (ko) 2011-11-09 2018-10-25 삼성전자주식회사 이기종 컴퓨팅 환경에서 보안 강화 방법 및 장치
US9225719B2 (en) * 2011-12-12 2015-12-29 Jpmorgan Chase Bank, N.A. System and method for trusted pair security
WO2013128060A1 (en) * 2012-02-27 2013-09-06 Nokia Corporation Access control for hardware units
US9204522B2 (en) * 2012-10-16 2015-12-01 Productions Resource Group, LLC Remote communications protocol
US9207940B2 (en) * 2013-03-15 2015-12-08 Intel Corporation Robust and high performance instructions for system call
JP6370098B2 (ja) * 2014-05-16 2018-08-08 杉中 順子 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US20170109526A1 (en) * 2015-10-20 2017-04-20 Intel Corporation Systems and methods for providing anti-malware protection and malware forensics on storage devices
US10375106B1 (en) * 2016-01-13 2019-08-06 National Technology & Engineering Solutions Of Sandia, Llc Backplane filtering and firewalls
WO2017120812A1 (en) * 2016-01-14 2017-07-20 Intel Corporation Secure communication channel for system management mode
CN108345522B (zh) * 2017-12-15 2019-03-29 清华大学 用于对中央处理器cpu进行安全检测的方法、装置和系统
US11182192B2 (en) * 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11283800B2 (en) 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US10747875B1 (en) * 2020-03-19 2020-08-18 Cyberark Software Ltd. Customizing operating system kernels with secure kernel modules

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4984272A (en) * 1988-11-30 1991-01-08 At&T Bell Laboratories Secure file handling in a computer operating system
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5303378A (en) * 1991-05-21 1994-04-12 Compaq Computer Corporation Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
JPH06324910A (ja) * 1993-05-13 1994-11-25 Hitachi Ltd コンピュータシステムのアクセス検出装置
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5881282A (en) * 1996-12-10 1999-03-09 Intel Corporation Controlling ill-behaved computer add-on device through a virtual execution mode
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6292798B1 (en) * 1998-09-09 2001-09-18 International Business Machines Corporation Method and system for controlling access to data resources and protecting computing system resources from unauthorized access
US7013296B1 (en) * 1999-06-08 2006-03-14 The Trustees Of Columbia University In The City Of New York Using electronic security value units to control access to a resource
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US6880108B1 (en) * 1999-07-29 2005-04-12 International Business Machines Corporation Risk assessment methodology for AIX-based computer systems
JP3607540B2 (ja) * 1999-08-18 2005-01-05 エヌイーシーシステムテクノロジー株式会社 プログラム単位メモリアクセス属性管理方式
US6718485B1 (en) * 1999-11-16 2004-04-06 Parasoft Corporation Software emulating hardware for analyzing memory references of a computer program
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
GB0016835D0 (en) * 2000-07-07 2000-08-30 Messagelabs Limited Method of, and system for, processing email
US7185192B1 (en) * 2000-07-07 2007-02-27 Emc Corporation Methods and apparatus for controlling access to a resource
US6738875B1 (en) * 2000-07-31 2004-05-18 Microsoft Corporation Efficient write-watch mechanism useful for garbage collection in a computer system
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US7058978B2 (en) * 2000-12-27 2006-06-06 Microsoft Corporation Security component for a computing device
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7130613B2 (en) * 2001-08-30 2006-10-31 Motorola, Inc. Method for reducing fraudulent system access
US8051301B2 (en) * 2001-11-13 2011-11-01 Advanced Micro Devices, Inc. Memory management system and method providing linear address based memory access security
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI419045B (zh) * 2008-12-01 2013-12-11 Micron Technology Inc 用於管理裝置之端序模式之系統及方法

Also Published As

Publication number Publication date
KR20050006282A (ko) 2005-01-15
AU2002360617A8 (en) 2003-12-19
WO2003102745A2 (en) 2003-12-11
GB2405976A (en) 2005-03-16
JP4688490B2 (ja) 2011-05-25
EP1509839A2 (en) 2005-03-02
CN1307535C (zh) 2007-03-28
WO2003102745A3 (en) 2004-03-25
GB0427590D0 (en) 2005-01-19
US20030226014A1 (en) 2003-12-04
JP2005528686A (ja) 2005-09-22
TW200307216A (en) 2003-12-01
AU2002360617A1 (en) 2003-12-19
KR100975981B1 (ko) 2010-08-16
GB2405976B (en) 2007-02-21
CN1630849A (zh) 2005-06-22

Similar Documents

Publication Publication Date Title
TWI289787B (en) Method and computer system of executing security kernel software under a secure execution mode, and computer readable medium of recording related instructions
US8135962B2 (en) System and method providing region-granular, hardware-controlled memory encryption
US6854039B1 (en) Memory management system and method providing increased memory access security
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US7401358B1 (en) Method of controlling access to control registers of a microprocessor
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
US7130977B1 (en) Controlling access to a control register of a microprocessor
AMD et al. Technology (IOMMU) specification
US20080222663A1 (en) Policy-Based Direct Memory Access Control
JPH0578858B2 (zh)
US10303621B1 (en) Data protection through address modification
JP7213879B2 (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
KR100995146B1 (ko) 개선된 메모리 엑세스 보안을 제공하는 메모리에 디바이스엑세스를 제어하기 위한 시스템 및 방법
US7454787B2 (en) Secure direct memory access through system controllers and similar hardware devices
CN116583840A (zh) 快速外围部件互连保护控制器
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
CN108197503A (zh) 一种为间接访问存储控制器增加保护功能的装置
US20050033979A1 (en) Method and system for secure direct memory access

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent