TWI297831B - Method for managing a memory device, computer system and computer-readable medium - Google Patents
Method for managing a memory device, computer system and computer-readable medium Download PDFInfo
- Publication number
- TWI297831B TWI297831B TW093103219A TW93103219A TWI297831B TW I297831 B TWI297831 B TW I297831B TW 093103219 A TW093103219 A TW 093103219A TW 93103219 A TW93103219 A TW 93103219A TW I297831 B TWI297831 B TW I297831B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- access
- content
- client
- protected
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1297831 (1) 玖、發明說明 【發明所屬之技術領域】 本發明係有關使敏感性資料不會受到I/O裝置的不 適當存取之安全裝置。更具體而言,本發明係有關一種用 來追蹤記憶體中存放有敏感性資料的區段的一無直接記憶 體存取表之快取記憶體。 【先前技術】 在運算裝置上執行金融交易及個人交易的比率愈來愈 高。然而,此種金融交易次數的持續性成長也已導致對支 援這些交易的電腦系統有愈來愈多的攻擊,並導致對防止 敏感性資料的未經授權的存取及遺失的安全強化 (Security Enhanced ;簡稱 SE )環境的一對應之需求。 敏感性資料(例如社會安全號碼、帳號、金融資料、帳戶 餘額、密碼、及授權金鑰等的敏感性資料)的遺失或未經 授權的存取將造成隱私的喪失、私人金融資料的遭竊、及 類似的惡意行爲。 嘗試存取被保護的資料所用之一種技術是利用周邊裝 置經由直接記憶體存取(Direct Memory Access ;簡稱 DMA)控制器提出的記憶體存取要求。DMA控制器可讓 諸如網路卡等的周邊裝置在對中央處理單元有最少的使用 之情形下讀取及寫入系統記憶體。使用來自I/O裝置的 記憶體存取要求時,可能會規避作業系統所提供的安全措 .施。對指定給周邊裝置使用的系統記憶體區段範圍之外的 -4 - (2) 1297831 存放有敏感性資訊之記憶體區段提出記憶體存取& 可能會達到上述的效果。 【發明內容】 本發明揭示了一種包含一超頁欄位之無直接言i 取快取記憶體。該超頁欄位指示一組頁存放有受β 訊之時機。一電腦系統利用該無直接記憶體存取β 體來拒絕I/O裝置對系統記憶體中之受保護的養 取。 【實施方式】 圖 1示出一電腦系統(1 ο 〇 )的一實施例, 系統(1 〇〇 )包含一晶片組(”北橋晶片組”(1 1 組中央處理單兀(Central Processing Unit;簡稱 (1 〇 5 )、以及系統記憶體(1 〇丨)。在一實施例4 CPU ( 105 )係經由處理器匯流排(119 )而被連接 晶片組(1 1 7 )。在一實施例中,電腦系統(! 〇 〇 ) 個處理器(1 0 5 ),用以支援一伺服器環境中之 理。在另一實施例中,電腦系統(1 〇〇 )可含一 CPU。系統記憶體(1 〇 1 )係經由記憶體匯流排( 被連接到北橋晶片組(1 1 7 )。系統記憶體(;i 〇 1 ) 無直接δ己1思體存取(N 〇 D i r e c t M e m 〇 r y A c e s s NoDMA )表(1 03 ) 〇 在一實施例中,系統記憶體(1 〇 1 )是一組諸 要求, 憶體存 護的資 取記憶 訊之存 該電腦 7)、一 CPU ) 3,該組 ^到北橋 包含多 多重處 單一的 121 )而 包含一 ;簡稱 ί如同步 -5- (3) 1297831 動態隨機存取記憶體(Synchronous Dynamic Random Access Memory ;簡稱 SDRAM )、雙倍資料速率隨機存 取記憶體(Double Data Rate Random Access Memory ;簡 稱 DDR RAM )、或類似的裝置等的隨機存取記憶體裝 置。記憶體系統(1 〇 1 )亦可包含暫存器或類似的儲存裝 置。在系統記憶體(101 )中儲存一 NoDMA 表 (103 ),而係將該 NoDMA表(103 )用來追蹤系統記 憶體(1 〇 1 )中存放有敏感性資料的區段。敏感性資料可 包括社會安全號碼、金融帳號、密碼、及類似的資料。一 作業系統(Operating System ;簡稱 OS )可利用該 NoDMA表(103 )的資料來限制對存放有敏感性資料的 記憶體區段之存取,其方式爲將 NoDMA表(103 )中對 應於存放有敏感性資料的記憶體區段之一資料項加上旗 標,且只讓被授權可存取祕密資訊的那些程式存取記憶體 (1 〇 1 )中受保護的區段。在一實施例中,係將系統記憶 體(1 0 1 )區分爲若干頁。頁的容量可改變爲作業系統所 決定的容量。在一實施例中,頁的容量是四千位元組。 在一實施例中,係將 NoDMA表(103 )建構爲一組 連續的位元,且每一位元對應於記憶體(1 〇 1 )的一頁。 如果一頁存放有敏感性資料,則作業系統將”設定"與 NoDMA表(103 )中之該頁對應的位元。可在系統記憶 體(101 )中重定位 NoDMA表(103 )的基址或起始位 址。在一實施例中,諸如在系統(1 〇〇 )啓動之後,一作 業系統、基本輸入/輸出系統(B a s i c I n p u t / 0 u t p u t (4) 1297831
System;簡稱 B 10 S )、或類似的系統可重定位 NoDMA 表(1 03 )。係根據基址暫存器中儲存的起始位址,而在 系統記憶體(101 )中設定 NoDMA 表(103 )的位置。 係根據一容量暫存器中儲存的資料而決定 NoDMA表 (103)的容量。當 NoDMA 表(103 )被起動時,必須 將一 I/O裝置進行的所有存取比對該表(103)。 在一實施例中,對準 NoDMA表(103 ),以便開始 於一頁邊界,並終止於一頁邊界。該對準簡化了 NoDMA 表(103)的使用。在另一實施例中,NoDMA表(103) 可開始於記憶體(1 0 1 )中之任何位址,而可有效率地使 用表(103)的連續空間。自 NoDMA表(103)的起始 點至終止點的每一位元指示了 CPU以外的其他裝置對記 憶體(1 〇 1 )中自位址 〇開始的每一頁進行存取的存取 特權,以便遮蓋需要被保護的整個記憶體位址空間。當北 橋晶片組(1 1 7 )需要檢查對一特定位址的存取特權時, 北橋晶片組(1 1 7 )可容易地決定對該頁的存取特權,這 是因爲北橋晶片組(1 1 7 )已取得了 NoDMA表(1 03 ) 的起始位址、及所要存取的頁之頁位址。因此,可容易地 計算且存取對應的 NoDMA表(1〇3 )資料項。
在一實施例中’北橋晶片組(1 I 7 )處理系統記憶體 (101)、CPU ( 105)、與 I/O 裝置(n5)間之通訊。 北橋晶片組(1 1 7 )包含一中央資料緩衝區(Central Data Buffer ;簡稱 CDB ),用以處理自 CPU ( 105 )、I/O 裝置及來源(Π 5 )進來的記憶體存取要求。中央控制區 -7- (5) 1297831 塊(CDB介面)(1 1 3 )執行對進來的記憶體存取要求之 起始處理、及送出的要求之最後處理。係將等候被 CDB (107 )或 CDB 介面(1 13 )處理的記憶體存取要求儲 存在佇列中。CDB(107)及 CDB 介面(113)處理來自 I/O裝置(115 )的記憶體要求,並將所要求的資料自系 統記憶體(1〇1 )傳送到 I/O裝置(1 15 )。 北橋晶片組(1 1 7 )包含一組佇列,用以儲存進來的 及送出的記憶體存取要求(例如讀取及寫入要求)。在一 實施例中,該等佇列是先進先出佇列(FIF Ο ),或採用一 類似的佇列管理機制。北橋晶片組(1 1 7 )亦包含一 NoDMA 快取記憶體(109 ),用以儲存最近被要求的 NoDMA表資料項。在存取記憶體(101 )之前,CDB介 面(1 1 3 )先維護並使用該快取記憶體(1 09 ) 。CDB介 面(1 1 3 )亦管理各別佇列中之進來的及送出的訊息。在 一實施例中,北橋晶片組(1 1 7 )也包含與 NoDMA表 (103 )及 NoDMA快取記憶體(1〇9 )的功能有關的一 組暫存器。這些暫存器包括若干狀態暫存器、用來指示 NoDMA表(103 )在記憶體(ι〇1 )中之起始位址的一基 址暫存器、以及用來指示N 〇 D Μ A表(1 0 3 )在系統記憶 體(101)中之容量的一容量暫存器。 在一實施例中,北橋晶片組(1 1 7 )使記憶體(1 〇 1 ) 不會受到非 CPU裝置的存取。一非 CPu裝置無法讀 取或寫入存放有受到保護的資料之各記憶體區段。受到保 護的頁不是靜態的,且可將各頁移進及移出受到保護的狀 -8 - (6) 1297831 態。在一實施例中,北橋晶片組(1 1 7 )使用 No DMA表 (103 )及 NoDMA快取記憶體(109 )來強制執行該系 統。NoDMA快取記憶體(1 09 )有助於 I/O效能。在一 實施例中,縱使並未起動 NoDMA表(103 ),也必然拒 絕對記憶體(101 )的 NoDMA表(103 )區之 I/O存 取。對系統記憶體(1 01 )的該區之任何存取嘗試將造成 一錯誤,且北橋晶片組(1 1 7 )記錄該等存取嘗試,而且 該系統被重設。 I/O來源(1 1 5 )可以是一通訊控制裝置(”南橋晶片 組’’),用以處理各周邊裝置(例如儲存體驅動器、數據 機、網路卡、及類似的裝置)與其他周邊裝置或北橋晶片 組(1 1 7 )間之通訊。南橋晶片組(1 1 5 )或北橋晶片組 (1 1 7 )可以有針對埠的各種位元寬度而設定組態之多個 I/O 單元。該等 I/O 單元可支援其中包括 PCI-Express、 Hublink (HL)、周邊組件互連(Peripheral Component Interconnect ;簡稱 PCI)、及類似系統的各 種通訊協定。每一 I/O單元或所有單元的一子集可專用 一獨立的 NoDMA 快取記憶體(109 ),以便改善 NoDMA 驗證的效能。在另一實施例中,一 I/O 來源 (1 1 5 )可以是被直接連接到北橋晶片組(1 1 7 )的一組周 邊裝置。 圖 2是北橋晶片組(1 1 7 )的一方塊圖。該圖示出 用來支援自一周邊裝置(2 1 7 )至系統記憶體(1 0 1 )的一 記憶體存取要求以及所要求的或送出的資料的送回之結 冬 (7) 1297831 構。網路或各周邊裝置(217)經由一實體層(215)及鏈 結層(213)而與 I/O單元( 250 )的送入處理器或邏輯 (209)以及送出處理器或邏輯(211)通訊。送入處理器 (209 )接收來自鏈結層(2 1 3 )的記憶體存取要求及訊 息,並將這些訊息放置在送入抒列(2 0 1 )中。在一實施 例中,係由用來分別處理一特定類型的訊息或要求或一組 規定的要求或訊息類型之若干佇列分別構成送入佇列 (201 )及送出佇列(203 )。送入佇列控制器(207 )管 理 CDB介面(1 13 )所讀取且通過佇列(201 )的資料 之移動。CDB介面(1 13 )處理記憶體存取要求,且可產 生將被傳送到送出佇列(2 0 3 )的回應訊息(例如,在處 理讀取作業時)。送出佇列控制器(205 )控制經過送出 佇列(2 0 3 )的資料流。 在一實施例中,設有對應於 PCI-Express、HL、 PCI、或其他類似系統所使用的訊息或記憶體存取類型之 多個送入及送出佇列(201)及(203)。送出處理器 (211)將回應資料經由鏈結層(2 1 3 )及實體層(2 1 5 ) 而傳送到各周邊裝置(217)。在一實施例中,送出邏輯 (2 1 1 )及送入處理器(2 0 9 )處理來自在與北橋晶片組 (Π 7 )不同的一速度下運作的一 I/O通訊匯流排之資 料的傳輸。
在一實施例中,CDB介面(113)及 CDB(107)在 送入佇列(20 1 )中進行預測,而執行對所要求記憶體內 容的預測式預先提取。C D B介面(1 1 3 )負責向 c D B -10- (8) 1297831 提出要求,並服務該等要求。CDB介面(113)強制執行 對系統記憶體(1 〇 1 )的存取權,追縱向c D B ( 1 0 7 )提 出的尙未完成之要求,服務尙未完成的 DMA讀取要 求,執行 DMA寫入,追蹤送入的完成狀態,中斷及執 行類似的功能。 CDB介面(1 13 )執行對來自I/O裝置的記憶體存 取之存取權檢查,以便確保系統中之安全。如果一 I/O 裝置嘗試存取記憶體中該I/O裝置並無存取權的一區 域,則 CDB介面(1 1 3 )拒絕所要求的存取。cDB介 面(1 1 3 )針對記憶體讀取或需要完成的任何存取,而傳 送一主控裝置異常中斷回應,將該存取是無效的訊息告知 提出要求的裝置。對於記憶體寫入及不需要一回應的其他 交易而言,CDB介面(113)的控制邏輯捨棄該寫入。不 論是在哪一種情形,北橋晶片組(1 1 7 )都記錄安全違反 的狀況。 CDB ( 107)與 CDB介面(113)、記憶體匯流排介 面(231) 、CPU 匯流排介面(227)、及其他介面 (229 )互動,以便在輸入-輸出單元(25 0 )、處理器匯 流排(1 1 9 )、與記憶體匯流排(1 2 1 )之間繞送及轉送資 料。在一實施例中,CDB ( 107 )也處理對系統管理匯流 排(S y s t e m m a n a g e m e n t B u s ;簡稱 S M b u s )、測試行動 聯合組織埠(J〇int Test Acti〇n GrouP ;簡稱 JTAG) (225)、或類似介面的輸入及輸出。 在一實施例中,當接收到 SMBus、JTAG,及類似介 -11 - (9) 1297831 面的存取時,北橋晶片組(1 17 )即檢查 NoDMA快取記 憶體(109 )及 NoDMA表(103 )。這些介面容許系統 管理員或維修人員監視並診斷一系統。係以類似於周邊裝 置的記憶體存取之方式處理來自 SMBus、JTAG、或類似 介面的記憶體存取。將來自 SMBus、JTAG、或類似介面 的記憶體存取與 NoDMA 表(1 03 )及 NoDMA 快取記 憶體(1 09 )比對。此種方式甚至可使系統管理員或維修 人員無法規避作業系統的保護機制而存取具有祕密資訊的 頁。在另一實施例中,可將北橋晶片組(1 1 7 )的組態設 定成不將 SMBus、 JTAG、及類似介面的存取比對 NoDMA表,或者可調整一安全等級設定値,以便起動或 關閉對這些介面的 NoDMA檢查。 圖 3示出一 NoDMA快取記憶體(109 )之結構。 在一實施例中,快取記憶體(1 0 9 )存取系統記憶體 (101 )中之 NoDMA表(103 ),而降低頻寬耗損。 NoDMA表(1〇3 )及快取記憶體(1〇9 )不需要用來追蹤 具有祕密資訊的頁之一記憶體區塊對映表。在一實施例 中,係針對系統快取線容量而將電腦系統(1 〇 〇 )中之記 憶體存取最佳化。該系統的快取記憶體是用來對系統記億 體進行記憶體存取的一般快取記憶體。 在一實施例中,N 〇 D Μ A快取記憶體(1 〇 9 )包含一 內谷可疋址的g己彳思體(Content Addressable Memory;簡 稱 C A Μ )結構(3 0 1 )及祕密儲存資訊結構(3 〇 2 )。 C A Μ結構(3 0 1 )將資訊儲存在,,各列”中。每一列對 -12· (10) 1297831 應於系統記憶體(1 0 1 )中儲存的 N 〇 D Μ A表(1 Ο 3 一·資料項(例如一頁祕密指不器)。在一實施例中, 結構(301 )儲存或固有地包含一索引(3 03 )。係配 取記憶體取代機制而使用該索引,以便識別並取代各 線。在一實施例中,C A Μ結構(3 0 1 )並未顯性地 索引(3 03 ),這是因爲硬體中之邏輯電路知道哪一 項對應於一索引。 位址標記儲存欄位(3 05 )中儲存的位址定 CAM結構(301 )。,有效’儲存位元欄位(3 07 )指 等列中之資料項是否爲有效的。如果寫入或改變了與 列對應的頁,則將會淸除有效位元,這是因爲該頁的 不再是已知的,因而無法知道該頁中是否儲存了受保 資訊。 在一實施例中,CAM結構(301 )也儲存了諸 近最少使用(Least Recently Used;簡稱 LRU) (3 09 )等的快取記憶體管理資訊。利用 CAM (3 〇 1 )的該欄位(3 0 9 )來追蹤該資料項的相對存 間’以便可以最近的或較常被使用的資料項來取代較 ^不常被使用的資料項。可將任何快取記憶體管理及 機制用於NoDMA快取記憶體(1〇9 )。祕密資訊儲 鹰(302)爲 NoDMA 表(103)中之每一資料項儲 個獨立的祕密指示器。頁祕密欄位(3 i i )指示記 ()的一頁是否存放有受保護的資訊。該頁祕密 器可以是將對應於快取記憶體(1 09 )的同一列 )中 CAM 合快 快取 儲存 資料 址到 示該 快取 內容 護的 如最 位元 結構 在時 舊的 取代 存裝 存兩 憶體 指示 中之 -13- (11) 1297831
NoDMA表位址的頁之狀態(例如存放有受保護的 編碼之一位元或一組位元。 一超頁祕密欄位(3 1 3 )指示被資料項定址到 屬的一組頁是否包含受保護的資訊。在一實施例中 頁是一組連續的頁。可由作業系統、B I 0 S、或類 體設定一超頁的容量。在一實施例中,每一超 5 1 2 個頁。在一實施例中,係將一 NoDMA表 的該等位元聚集到與系統快取線容量及記憶體存取 應的各超頁中。超頁祕密指示器(3 1 3 )可以是一 位元或一組位元。在一實施例中,當將一個新的資 入 NoDMA快取記憶體(1 0 9 )時,即計算超頁。 於該超頁的所有位元以及對應於該新資料項的特定 擷取到快取記憶體(1 0 9 )中。對這些位元執行邏_ 運算,以便決定一單一超頁位元的値。在一實施例 以多個位元來代表超頁。然後使用一邏輯"或” 計算該超頁,以便決定該超頁中對應於每一位元的 區段。例如,可以 NoDMA快取記憶體(109 )中 超頁位兀來代表 5 1 2個連續的頁,而每一超頁位 於一組的 1 28個頁。可調整超頁的容量,以便對 取的容量。一單一超頁或多個超頁可對應於快取線 容量。在一實施例中,該組頁的容量等於記憶體控 自然存取容量。 在一實施例中,係由下述兩部分構成 CAM 標記(3 0 5 ): —超頁、及該超頁內的一頁位移 資訊) 的頁所 一超 似的軟 頁中有 〔103) 容量對 單一的 料項放 將對應 頁位元 I ,,或,, 中,係 運算來 每一子 之四個 元對應 應於存 存取的 制器的 的位址 量。當 -14- (12) 1297831 I/O單元(2 5 0 )接收到一存取時,進來的位址 CAM結構。如果有效位元被設定了,則每一列將 的位址與位址標記(3 0 5 )比較。在每一列中共有 能的結果。在第一種結果中,超頁及頁位移量都 (且有效位兀被設疋),在第二種結果中,只有頁 與進來的位址相匹配(且有效位元被設定);以及 種結果中,超頁及頁位移量都不相匹配,或有效位 被設定。至多一列將有第一種結果。在此種情形中 對應的頁祕密指示器(3 1 1 )來決定對記憶體存取 進來的位址之存取權。如果該進來的位址無法匹配 記(3 0 5 )的超頁及頁位移量,則使用具有一頁位 配的一快取列。如果超頁祕密指示器(3 1 3 )指示 超頁的任何頁中並無任何祕密資訊,則授予存取權 需要進一步查詢 NoDMA表(1 〇3 )。然而,如果 密指示器(313)指示該超頁中之至少一頁具有 訊,則北橋晶片組(1 17 )查詢 NoDMA表(1 03 便決定所要求的記憶體存取頁是否存放有祕密資訊 記憶體(1 09 )中之多個資料項可能將有匹配的超 標記(3 0 5 )。在此種情形中,可使用任何超頁 列。如果快取記憶體〇 9 )中並無任何列有一匹 頁位址,則需要存取 NoDMA表(103 )。 在一實施例中,由於使用了一 NoDMA表(1 所以可將電腦系統(1 〇〇 )擴充到較大容量的系統 (1 0 1 )(例如大於 4 GB ( G B :十億位元組)) 通過該 該進來 三種可 相匹配 位移量 在第三 元並未 ,使用 要求的 位址標 移量匹 屬於該 。並不 超頁祕 祕密資 ),以 。快取 頁位址 匹配的 配的超 03 ), 記億體 ,且可 - 15- (13) 1297831 動態地調整記憶體的容量(例如在可將記憶體熱插拔到系 統中之情形下)。由於支援動態調整記憶體的容量且使用 超頁及頁’所以可在無須系統重設的情形下,變動驗證記 憶體存取時的容量分割程度。一超頁可由多個位元所構 成’以便控制一超頁代表的區段容量之分割程度。額外的 位元可讓超頁代表較小的記憶體區段,且用來作爲受保護 的資訊所在位置的更精確之指示。由較少位元所代表的超 頁尤其在超頁指示器產生方面降低了 NoDMA快取系統 的複雜性。當使用較少的位元時,簡化了 一邏輯”或” 的實施。由於藉由改變用來代表一超頁的位元數而變動容 量的分割程度,所以可根據一系統的需求,而對速度或較 小的空間需求方面進行較大幅度的設計客製化。 在一實施例中,NoDMA快取記憶體(109 )及北橋 晶片組(1 1 7 )處理與 NoDMA快取記憶體(1 09 )的功 能有關的一組指令。可以獨立的指令起動或關閉快取記億 體(109 )。一起動指令起動 NoDMA快取記憶體的使 用’淸除快取記憶體(1 0 9 )中儲存資料項的所有有效位 元,並設定用來指示 NoDMA快取記憶體(1 09 )的起動 狀態的北橋晶片組(1 1 7 )及快取記億體暫存器中之狀態 位元。一關閉指令關閉 NoDMA快取記憶體(1 09 ),並 淸除用來指示快取記憶體(1 09 )的起動狀態的北橋晶片 組(Π 7 )及快取記憶體(1 09 )的暫存器中之狀態位元。 可關閉 NoDMA 快取記憶體(109 ),但同時起動 NoDMA表(103 )。一使無效指令淸除快取記憶體中之 -16- (14) 1297831 所有資料項的有效位元。 在一實施例中,係將一邏輯 ’’ 1 ’’或一組邏輯 ” Γ 儲存在適當的欄位,而 n設定’’諸如一超頁位元、頁位 元、LRU位元、或類似的被儲存値等的一位元或被儲存 値。可儲存其中包括一邏輯的任何値,而在邏輯上 ’’設定’’ 一位元或被儲存値。係參照一 ’’設定”作業而界 定該被指定的値。同樣地,一位元或被儲存値的一 ”淸除 ”作業可使用與該”設定”指示器的値不同之任何被指 定的値。 在一實施例中,係由諸如作業系統等的軟體維護 NoDMA快取記憶體(109 )。當容許寫入作業時,作業 系統負責適當地使 NoDMA快取記憶體(109)中之被寫 入區域的參考位址無效。在一實施例中,一作業系統識別 NoDMA 表(1 03 ),以便識別祕密頁。該作業系統也決 定當正在檢查 NoDMA 表(103 )或 NoDMA 快取記憶 體(1 09 )時是否有其他的記憶體存取正在進行中。 圖 4是 NoDMA快取記憶體(109)的作業之一流 程圖。在一實施例中,CDB(107)及 CDB介面(113) 在步驟(4〇1 )中處理記憶體存取要求。CDB 介面 (1 13 )檢查 NoDMA快取記憶體(109 ),以便決定被 要求存取的一位址是否被儲存在快取記憶體(1 09 )中。 在步騾(403 )中,使用 CAM結構(301 ),而將所要 求的位址與快取記憶體(109 )中儲存的位址標記(3 05 ) 比較。如果在快取記憶體(1 09 )中找到與配要求的頁位 -17- (15) 1297831 址相匹配的一標記(3 Ο 5 ),則在步驟(4 Ο 5 )中檢查對應 的有效位元,以便決定該快取記憶體資料項是否仍然有 效。如果該有效位元被設定,則在步驟(4 0 9 )中檢查頁 祕密指示器(3 1 1 )。如果該祕密指示器被設定,則在步 驟(4 1 7 )中拒絕該存取,並記錄一錯誤。如果該祕密指 示器並未被設定,則在步驟(4 1 9 )中容許該存取。 在一實施例中,當並未爲一要求的頁找到快取記憶體 (1 0 9 )中之一資料項,則檢查快取記憶體(! 〇 9 ),以便 決定受保護的資訊是否被儲存在超頁中。首先,在步驟 (41 1 )中檢查位址標記(3 05 ),以便決定是否能找到一 對應的超頁資料項。如果找到了一資料項,則在步驟 (4 1 3 )中檢查及有效性。如果找到了超頁資料項,且在 步驟(4 1 5 )中決定並無任何受到保護的資料被儲存在該 超頁中,則在步驟(4 1 9 )中容許該記憶體存取要求繼續 進行。如果超頁祕密指示器(3 1 3 )被設定,則在步驟 (4 1 7 )中拒絕該存取,並記錄一錯誤。 在一實施例中’如果在快取記憶體(1 09 )中並未找 到所要求的超頁位址,或者該資料項不是有效的,則在步 驟(407 )中自系統記憶體(1〇〗)中儲存的n〇dma表 (1 0 3 )擷取該頁的祕密資訊。將位址標記儲存在一可用 的丨央取丨思B豆列中’並淸除該列的有效位元。然後在步驟 (421 )中’將自NoDMA表(103 )中擷取的資料儲存 在NoDMA快取記憶體(1〇9 )中。在快取記憶體 (1 0 9 )中產生的貧料項包括頁祕密指示器(3 i })及超頁 -18- (16) 1297831 祕密指示器(3 1 3 )。在步驟(4 2 3 )中,根據對該超頁中 之該等頁的一邏輯”或n運算而計算出超頁祕密指示器 (3 1 3 ),並儲存該超頁祕密指示器(3 1 3 )。在一實施例 中,將擷取特硬頁的祕密資訊,定將該祕密資訊儲存爲一 資料項。在另一實施例中,該資料項將對應於該超頁中之 第一頁。在另一實施例中,該資料項可對應於該超頁中之 任一頁。當產生該資料項時,在步驟(425 )中設定該資 料項的有效位元。 當一頁中有受保護的資訊時,在步驟(4 1 7 )中不容 許該記憶體存取。可根據記憶體存取的類型(例如讀取或 寫入)而送回一錯誤回應訊息(例如,如果拒絕了 一讀取 作業,則將以一錯誤回應訊息取代正常回應訊息)。記錄 錯誤及被拒絕的存取,以供後續的分析,而決定錯誤的原 因,或決定是否有人進行了一惡意的要求或攻擊。在一實 施例中,可界定(例如由作業系統設定)會產生錯誤或安 全記錄的要求類型。在一實施例中,北橋晶片組(1 1 7 ) 記錄一嚴重錯誤並重設系統,而回應賴自 NoDMA快取 記憶體(1 09 )的一存取違反。錯誤包括存取一具有祕密 資訊的頁、或在不被容許時存取NoDMA表(103 )。錯 誤被記錄在錯誤暫存器中。該等錯誤暫存器可映射所偵測 到的某一錯誤之適當信號通知方法。可能要求記億體存取 的I/O裝置不得存取該等錯誤暫存器。 在一實施例中,係以軟體(例如微碼或高階電腦語 言)來實施 NoDMA快取記憶體(1〇9 )。亦可利用軟體 -19- (17) 1297831 實施例來執行 NoDMA快取記憶體(109 )的模擬或模 仿。可將一軟體實施例儲存在一機器可讀取的媒體中。,, 機器可讀取的”媒體可包括可儲存或轉移資訊的任何媒 體。機器可讀取的媒體之例子包括 ROM、軟碟、CD-ROM、光碟、硬碟、射頻(RF)鏈路、或類似的媒體。 在前文的說明書中,已參照本發明的一些特定實施例 而說明了本發明。然而,在不脫離最後的申請專利範圍中 述及的本發明之廣義精神及範圍下,顯然仍可對本發明作 出各種修改及改變。因此,應將本說明書及圖式視爲舉例 說明,而非對本發明加以限制。 【圖式簡單說明】 係參照各附圖而以舉例說明但非限制性之方式解說本 發明的各實施例,而在這些附圖中,相同的代號指示類似 的元件。我們當了解,在本說明書的揭示中,參照到”一 ”或”一個’’實施例時並不必然意指相同的實施例,且 此種參照至少一個實施例。 圖 1 是其中包括一 NoDMA 快取記憶·體的一電腦 系統之一方塊圖。 圖 2是經過一實施 NoDMA的晶片組的輸入及輸 出資料流之一方塊圖。 圖3示出一 NoDMA快取記憶體結構。 圖4是一 NoDMA快取記憶體系統之一流程圖。 1297831 (18) 主要元件 1 00 10 1 105 117 119 12 1 103 115 113 107 109 2 17 2 15 2 13 209 2 11 250 20 1 203 205 20 7 23 1 227 照表 電腦系統 系統記憶體 中央處理單元 北橋晶片組 處理器匯流排 記憶體匯流排 無直接記憶體存取表 I/O 裝置 CDB 介面 中央資料緩衝區 無直接記憶體存取快取記憶體 周邊裝置 實體層 鏈結層 送入處理器 送出處理器 I/O單元 送入佇列 送出佇列 送出佇列控制器 送入佇列控制器 記憶體匯流排介面 CPU匯流排介面 -21 - 其他介面 系統管理匯流排、測試行動聯合組織埠 內容可定址的記憶體結構 祕密儲存資訊結構 索引 位址標記儲存欄位 有效儲存位元欄位 最近最少使用位元 頁祕密欄位 超頁祕密欄位 -22-
Claims (1)
1297831
拾、申請專利範圍 附件4A :第93 1 032 1 9號專利申請案 中文申請專利範圍替換本 民國97年2月5日修正 1· 一種管理記憶體裝置之方法,包含·· 接收來自客戶端存取記憶體內容的請求;
將記憶體分爲數個區段,該些記憶體區段的各個區段 代表具有該記憶體內容的分頁; 將記憶體存取表和該些記憶體區段相關聯,該記憶體 存取表具有位元連續組; 追蹤該些記憶體區段,以決定該記憶體內容是否包括 受保護內容; 藉由檢查該記憶體內容是否包括受保護內容以及該客 戶端是否被授權存取該受保護內容,以決定該客戶端是否 被允許存取該記憶體內容;
當該記憶體內容未包括該受保護內容時,或是當該記 憶體內容包括該受保護內容且該客戶端被授權存取該受保 護內容時,則允許該客戶端存取該記憶體內容;以及 當該記憶體內容包括該受保護內容且該客戶端未被授 權存取該受保護資料時’則拒絕該客戶端存取該記憶體內 容。 2 ·如申請專利範圍第1項之方法,其中決定該客戶 端是否被允許存取該記憶體內容係包括:檢查和該記憶體 存取表相關聯的記憶體指示器。 1297831 [ 97. Ζ. -5 V 3 .如申請專利範圍第2項之方法,更包含:假如該 S己憶體指不器未被設定,則允許該客戶端存取該記憶體內 容’以及假如該記憶體指示器被設定,則拒絕該客戶端存 取該記憶體內容。 4 ·如申請專利範圍第3項之方法,更包含:假如該 記憶體指示器被設定,則產生違反指示器,該違反指示器 包括一錯誤。 5 .如申請專利範圍第4項之方法,其中該錯誤指出 由該客戶端存取該記憶體內容的失敗嘗試。 6. —種電腦系統,包含: 儲存媒體,其耦合至具有快取記憶體和處理器的伺服 器’以及輸入/輸出(110)裝置,該儲存媒體具有記憶體存 取表,以及用以幫助該處理器執行任務的數個指令;以及 該處理器用以: 接收來自客戶端存取記憶體內容的請求,該客戶端耦 合至該伺服器, 將記憶體分爲數個區段,該些記憶體區段的各個區段 代表具有該記憶體內容的分頁, 將記憶體存取表和該些記憶體區段相關聯,該記憶體 存取表具有位元連續組, 追蹤該些記憶體區段,以決定該記憶體內容是否包括 受保護內容, 藉由檢查該記憶體內容是否包括受保護內容以及該客 戶端是否被授權存取該受保護內容,以決定該客戶端是否 -2-
1297831 ί—97. U 被允許存取該記憶體內容, 當該記憶體內容未包括該受保護內容時,或是當該記 憶體內容包括該受保護內容且該客戶端被授權存取該受保 護內容時’則允許該客戶端存取該記憶體內容,以及 當該記憶體內容包括該受保護內容且該客戶端未被授 權存取該受保護內容時,則拒絕該客戶端存取該記憶體內 容。 7.如申請專利範圍第6項之電腦系統,其中該快取 包括無直接記憶體存取(NoDMA)之快取記憶體。 8 .如申請專利範圍第6項之電腦系統,其中該記憶 體存取表包含NoDMA表,該NoDMA表係與該NoDMA 快取記憶體相通訊。 9. 如申請專利範圍第6項之電腦系統,其中該處理 器進一步用以經由錯誤分析器來分析登錄錯誤,其中該登 錄錯誤指出由該客戶端存取該記憶體內容的失敗嘗試。 10. 一種電腦可讀取媒體,具有數個指令,當執行該 些指令時,致使一機器: 接收來自客戶端存取記憶體內容的請求,該客戶端耦 合至該伺服器; 將記憶體分爲數個區段,該些記憶體區段的各個區段 代表具有該記憶體內容的分頁; 將記憶體存取表和該些記憶體區段相關聯,該記憶體 存取表具有位元連續組; 追蹤該些記憶體區段,以決定該記憶體內容是否包括 -3 - 1297831 ^ 97. 2. , 受保護內容; 藉由檢查該記憶體內容是否包括受保護內容以及該客 戶端是否被授權存取該受保護內容,以決定該客戶端是否 被允許存取該記憶體內容; 當該記憶體內容未包括該受保護內容時,或是當該記 憶體內容包括該受保護內容且該客戶端被授權存取該受保 護內容時,則允許該客戶端存取該記憶體內容;以及 當該記憶體內容包括該受保護內容且該客戶端未被授 權存取該受保護內容時,則拒絕該客戶端存取該記憶體內 容。 11.如申請專利範圍第1 0項之電腦可讀取媒體,其 中當執行該些指令時,進一步致使該機器:經由錯誤分析 器來分析登錄錯誤,其中該登錄錯誤指出由該客戶端存取 該記憶體內容的失敗嘗試。 1 2.如申請專利範圍第1 0項之電腦可讀取媒體,其 中當執行該些指令時,決定該客戶端是否被允許存取該記 憶體內容係包括:檢查和該記憶體存取表相關聯的記憶體 指示器。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/404,881 US7296127B2 (en) | 2003-03-31 | 2003-03-31 | NoDMA cache |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200426588A TW200426588A (en) | 2004-12-01 |
| TWI297831B true TWI297831B (en) | 2008-06-11 |
Family
ID=32990210
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW093103219A TWI297831B (en) | 2003-03-31 | 2004-02-11 | Method for managing a memory device, computer system and computer-readable medium |
Country Status (7)
| Country | Link |
|---|---|
| US (3) | US7296127B2 (zh) |
| EP (2) | EP2287744A1 (zh) |
| JP (1) | JP4430624B2 (zh) |
| KR (1) | KR100831468B1 (zh) |
| CN (1) | CN1291329C (zh) |
| TW (1) | TWI297831B (zh) |
| WO (1) | WO2004095205A2 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI421701B (zh) * | 2010-12-06 | 2014-01-01 | Inventec Corp | 計算機系統 |
| US8677182B2 (en) | 2010-11-19 | 2014-03-18 | Inventec Corporation | Computer system capable of generating an internal error reset signal according to a catastrophic error signal |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7296127B2 (en) | 2003-03-31 | 2007-11-13 | Intel Corporation | NoDMA cache |
| US20050182862A1 (en) * | 2004-02-12 | 2005-08-18 | Ritz Andrew J. | System and method for detecting DMA-generated memory corruption in a PCI express bus system |
| US8090265B2 (en) * | 2004-03-05 | 2012-01-03 | Finisar Corporation | Byte-configurable memory in an optical transceiver |
| US20070078879A1 (en) * | 2005-09-30 | 2007-04-05 | Safranek Robert J | Active address table |
| US7594042B2 (en) * | 2006-06-30 | 2009-09-22 | Intel Corporation | Effective caching mechanism with comparator coupled to programmable registers to store plurality of thresholds in order to determine when to throttle memory requests |
| US8782367B2 (en) * | 2006-12-20 | 2014-07-15 | Stmicroelectronics S.A. | Memory area protection circuit |
| US8041912B2 (en) * | 2007-09-28 | 2011-10-18 | Macronix International Co., Ltd. | Memory devices with data protection |
| US7907432B2 (en) * | 2009-06-30 | 2011-03-15 | Netlogic Microsystems, Inc. | Content addressable memory device for simultaneously searching multiple flows |
| US8898417B1 (en) | 2009-10-20 | 2014-11-25 | Micron Technology, Inc. | Block-based storage device with a memory-mapped interface |
| US8572440B1 (en) * | 2010-11-15 | 2013-10-29 | E.Digital Corporation | System and method for managing information stored in semiconductors |
| JP5790043B2 (ja) * | 2011-03-14 | 2015-10-07 | 株式会社リコー | データ転送システム及びデータ転送方法 |
| US9471514B1 (en) * | 2012-08-23 | 2016-10-18 | Palo Alto Networks, Inc. | Mitigation of cyber attacks by pointer obfuscation |
| US20160034404A1 (en) * | 2014-07-31 | 2016-02-04 | International Business Machines Corporation | Managing access to storage |
| US12301561B2 (en) | 2022-08-29 | 2025-05-13 | Bank Of America Corporation | Secure access to devices in a virtual environment using security tokens |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5134700A (en) * | 1987-09-18 | 1992-07-28 | General Instrument Corporation | Microcomputer with internal ram security during external program mode |
| US5079737A (en) * | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
| US5251304A (en) * | 1990-09-28 | 1993-10-05 | Motorola, Inc. | Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory |
| US5628023A (en) * | 1993-04-19 | 1997-05-06 | International Business Machines Corporation | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view |
| FR2725537B1 (fr) * | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
| US5646890A (en) * | 1996-03-29 | 1997-07-08 | Aplus Integrated Circuits, Inc. | Flexible byte-erase flash memory and decoder |
| US5809546A (en) * | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
| JP2916421B2 (ja) | 1996-09-09 | 1999-07-05 | 株式会社東芝 | キャッシュフラッシュ装置およびデータ処理方法 |
| US5930826A (en) * | 1997-04-07 | 1999-07-27 | Aplus Integrated Circuits, Inc. | Flash memory protection attribute status bits held in a flash memory array |
| US6473861B1 (en) * | 1998-12-03 | 2002-10-29 | Joseph Forte | Magnetic optical encryption/decryption disk drive arrangement |
| US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| JP4719957B2 (ja) * | 2000-05-24 | 2011-07-06 | 株式会社日立製作所 | 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法 |
| JP4678084B2 (ja) | 2000-09-29 | 2011-04-27 | ソニー株式会社 | メモリ装置およびメモリアクセス制限方法 |
| JP3644494B2 (ja) | 2001-04-13 | 2005-04-27 | 日本電気株式会社 | 情報検索装置 |
| US7130951B1 (en) * | 2002-04-18 | 2006-10-31 | Advanced Micro Devices, Inc. | Method for selectively disabling interrupts on a secure execution mode-capable processor |
| US6785790B1 (en) * | 2002-05-29 | 2004-08-31 | Advanced Micro Devices, Inc. | Method and apparatus for storing and retrieving security attributes |
| US7296127B2 (en) | 2003-03-31 | 2007-11-13 | Intel Corporation | NoDMA cache |
| US7146477B1 (en) * | 2003-04-18 | 2006-12-05 | Advanced Micro Devices, Inc. | Mechanism for selectively blocking peripheral device accesses to system memory |
| US7665143B2 (en) * | 2005-05-16 | 2010-02-16 | Microsoft Corporation | Creating secure process objects |
-
2003
- 2003-03-31 US US10/404,881 patent/US7296127B2/en not_active Expired - Fee Related
-
2004
- 2004-02-06 EP EP10012451A patent/EP2287744A1/en not_active Ceased
- 2004-02-06 EP EP04708978.4A patent/EP1609069B1/en not_active Expired - Lifetime
- 2004-02-06 JP JP2005518870A patent/JP4430624B2/ja not_active Expired - Fee Related
- 2004-02-06 WO PCT/US2004/003387 patent/WO2004095205A2/en not_active Ceased
- 2004-02-06 KR KR1020057018689A patent/KR100831468B1/ko not_active Expired - Fee Related
- 2004-02-11 TW TW093103219A patent/TWI297831B/zh not_active IP Right Cessation
- 2004-03-31 CN CNB2004100316462A patent/CN1291329C/zh not_active Expired - Fee Related
-
2007
- 2007-10-05 US US11/973,209 patent/US7571294B2/en not_active Expired - Fee Related
-
2009
- 2009-08-03 US US12/462,466 patent/US20090292879A1/en not_active Abandoned
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8677182B2 (en) | 2010-11-19 | 2014-03-18 | Inventec Corporation | Computer system capable of generating an internal error reset signal according to a catastrophic error signal |
| TWI421701B (zh) * | 2010-12-06 | 2014-01-01 | Inventec Corp | 計算機系統 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1291329C (zh) | 2006-12-20 |
| KR100831468B1 (ko) | 2008-05-21 |
| WO2004095205A2 (en) | 2004-11-04 |
| US7296127B2 (en) | 2007-11-13 |
| EP2287744A1 (en) | 2011-02-23 |
| HK1069450A1 (zh) | 2005-05-20 |
| US20040193755A1 (en) | 2004-09-30 |
| EP1609069A2 (en) | 2005-12-28 |
| EP1609069B1 (en) | 2017-08-16 |
| TW200426588A (en) | 2004-12-01 |
| CN1534492A (zh) | 2004-10-06 |
| JP2006514770A (ja) | 2006-05-11 |
| KR20060006791A (ko) | 2006-01-19 |
| JP4430624B2 (ja) | 2010-03-10 |
| US7571294B2 (en) | 2009-08-04 |
| WO2004095205A3 (en) | 2004-12-29 |
| US20090292879A1 (en) | 2009-11-26 |
| US20080040566A1 (en) | 2008-02-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7571294B2 (en) | NoDMA cache | |
| US7139890B2 (en) | Methods and arrangements to interface memory | |
| US6360282B1 (en) | Protected control of devices by user applications in multiprogramming environments | |
| JP5068108B2 (ja) | メモリ・アドレスの変換およびピン止めのための方法およびシステム | |
| US20210089678A1 (en) | Built-in legal framework file management | |
| CN108027779A (zh) | 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令 | |
| US20060112267A1 (en) | Trusted platform storage controller | |
| US11940927B2 (en) | Technologies for memory tagging | |
| US11106813B2 (en) | Credentials for consent based file access | |
| US7454787B2 (en) | Secure direct memory access through system controllers and similar hardware devices | |
| US11188477B2 (en) | Page protection layer | |
| CN109582603B (zh) | 用于向共享虚拟存储器提供访问保护的技术 | |
| US7246213B2 (en) | Data address security device and method | |
| US11188680B2 (en) | Creating research study corpus | |
| US7430649B2 (en) | Input/output device, computer, computer system, input/output control program, OS, page management program, and page management method | |
| JP6257844B2 (ja) | 実行制御装置及び実行制御方法及び実行制御プログラム | |
| US20240070091A1 (en) | Isolation of memory regions in trusted domain | |
| CN117592131A (zh) | 半导体装置的数据标识辨识 | |
| HK1069450B (zh) | 用於訪問存儲器的裝置和方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |