TWI356995B - Data processing apparatus having memory protection - Google Patents

Data processing apparatus having memory protection Download PDF

Info

Publication number
TWI356995B
TWI356995B TW094135560A TW94135560A TWI356995B TW I356995 B TWI356995 B TW I356995B TW 094135560 A TW094135560 A TW 094135560A TW 94135560 A TW94135560 A TW 94135560A TW I356995 B TWI356995 B TW I356995B
Authority
TW
Taiwan
Prior art keywords
memory
sub
area
region
regions
Prior art date
Application number
TW094135560A
Other languages
English (en)
Other versions
TW200625080A (en
Inventor
Paul Kimelman
Richrd Roy Grisenthwaite
David James Seal
Original Assignee
Advanced Risc Mach Ltd
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 Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW200625080A publication Critical patent/TW200625080A/zh
Application granted granted Critical
Publication of TWI356995B publication Critical patent/TWI356995B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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/1441Protection 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

'1356995
• ·ζ,ι -. - 多 .w. . 發明説明 【發明所屬之技術領域】 本發明關於資料處理系統。更特定而言,本發明關於 具有記憶體保護單元之資料處理系統。 【先前技術】 吾人已可知悉在資料處理系統中使用記憶體保護單元 以控制記憶體存取。這些記憶體保護單元定義了複數個保 護區域,其特性由寫入到保護單元暫存器的方式來設置。 此可提供對於記憶體特性的某種程度控制,並使得不同記 憶體區域要指定不同的屬性。記憶體保護單元係類似於記 憶體管理單元,但感覺上較簡單,它們不會牽涉到虛擬至 實體位址之映射。再者,記憶體保護單元不會使用轉譯表, 但其本身限制於硬體中一相當少數目的區域,以改善響應 的預測性。 吾人亦可知悉程式記憶體保護單元具有兩個或更多的 重疊記憶體區域。重疊區域增加了資料處理系統中該等記 憶體區域可以映射到實體記憶體裝置上之彈性。但是,為 了簡化實施成本,通常在該等記憶體區域可被配置的方式 上有某些限制。一記憶體區域之大小必須為2的次方,例 如其範圍可由25 0B,最大到4GB。但是,該記憶體區域的 啟始位址係受限於該區域大小的倍數,也就是說對於大小 為2n之區域,該啟始位址必須為k*2n,其中k為一整數。 此代表在這種系統中不可能定義出任意大小之記憶體區 i 5 1356995 域。雖然,系統具有建構任意大小之記憶體區域的能力, 然而如此做將相當昂貴。記憶體保護單元基本上可提供 8 到1 6個不同記憶體區域的範圍。 由於在已知系統中配置該等記憶體區域之方法的限 制,其有需要利用一個別組合的記憶體屬性來配置超過一 個的記憶體區域,以定義出一處理設備所需要之給定大小 的記憶體區塊。此係因為該等記憶體屬性必須應用到整個 記憶體區域。
再者,由已知記憶體保護單元的記憶體區域之描述, 其在當於該資料處理設備上執行的應用程式處理需要存取 許可到不同群組的周邊裝置時的狀況下特別缺乏彈性。此 困難係由於基本上一連續的記憶體區塊將配置給一完整組 合的周邊裝置的狀況。由於透過資料處理設備所執行之不 同應用處理的多種不同特性,在已知的記憶體單元中不同 的處理通常將需要不同的存取許可組合及該等周邊裝置之 不同子集合的情況是很普遍的。為了處理此狀況,吾人已 知悉可配置給每個個別周邊裝置一個別的記憶體區域。因 為基本上僅提供8到1 6個記憶體區域,對於有限數目之區 域的需求很高,且此會造成需要更多數目的記憶體區域由 該記憶體保護單元來定義。因此,一資料處理設備提供比 已知的記憶體保護單元更多的彈性是有需要的,而不會由 於引進更大量的記憶體保護區域而造成負擔。 【發明内容】 6 1356995 本發明一個態樣係提供用於處理資料的設備,該設 包含: 一記憶體,可操作以儲存資料數值; 一記憶體保護單元,可操作以結合記憶體屬性與該 憶體的部份,並識別對應於該記憶體之個別位址範圍的 數記憶體區域,該記憶體保護單元可操作以結合該複數 憶體區域中至少一個於一個別記憶體區域說明符,其包 一用於定義結合於該記憶體區域之一組記憶體屬性的屬 攔位,及一用於保持一子區域資格數值的子區域欄位, 指定給該記憶體區域之複數子區域的每一個,不論個別 子區域為成員子區域或非成員子區域,使得該等記憶體 性被應用到該成員子區域,但不會應用到該等非成員子 域。 本發明技術認定允許每個記憶體區域可以再細分為 數個個別子區域,並提供結合於一記憶體區域的記憶體 域說明符,一子區域攔位用於保持一子區域成員數值, 指定了是否每個該等子區域為一定義之記憶體屬性組合 要應用到的一成員子區域,,或是另外為一結合於該記 體區域之該等記憶體屬性不會應用到的非成員子區域, 提供在配置實體記憶體時很大的彈性。該僅結合一組記 體屬性到一特定部分之記憶體區域(即為個別的子區域) 之能力,,可允許對於一記憶體區域的起始位址必須為 記憶體區域大小的整數倍之限制能因此被克服,因為如 需要配置一個不可能定義整個記憶體區域之一區塊大小 備
記 複 記 含 性 其 的 屬 區 複 區 其 所 憶 並 憶 中 該 果 之 7 1356995 記憶體區塊,、其仍有可能配置該記憶體區塊一單一記憶 體區域,其大小可大於我們所需要的記憶體區塊,但可將 所不需要的較大記憶體區域的該部份,指定成非成員子區 域。然後該非成員子區域即可由其它被它們所選擇成為成 員子區域之記憶體區域所利用。 僅選擇某些子區域成為成員子區域的能力亦可處理對 於每個周邊裝置無法有效率使用一記憶體區域的問題。此 係因為單一記憶體區域之不同子區域可以結合於整組周邊 裝置中的不同裝置,且授與不同應用處理至不同的存取許 可則可在一單一記憶體區域内僅藉由配置成為成員子區域 而適應調節,那些結合於該周邊裝置之給定組合的所存取 子區域即為被授與者。 吾人應可瞭解到由該記憶體區域說明符所定義的該記 憶體屬性之集合可以為多數,並可任意改變。在一具體實 施例中,該記憶體屬性之集合包含記憶體存取許可。因此, 某些子區域可以定義成唯讀、同時可以讀取及寫入、或是 完全不能存取。在另一具體實施例中,該資料處理設備包 含複數個層級,其中包含一使用者層級及一特許層級,且 該等記憶體存取許能可指定該複數層級中那些被允許存 取。因此,例如該使用者層級的特權可以用於正常的應用 , 許存到 此讀級取 因 唯層存 級一的之 層取許帝 的存特限 _ 級該低 特層給較 ¾者供與 I C提授 # 使可被 提該則權 彳予可特 貝 k 給許的 存可入階 的,寫高 i 域及較 Φ 區取許 卜體讀允 夕 列憶時了 --{記同供 而個之提 ,某反此 理於,。 處對可取 8 1356995
某些記憶體區域之彈性,例如那些保存了指令及組態 者,而比使用者層級被授與存取到這些記憶體區域的 要高。 在另一具體實施例中,該記憶體屬性之集合包含 論該等記憶體子區域是否可以快取或不可快取記憶體 示。另一個具體實施例中具有記憶體屬性,其中包含 論該等子區域是否可緩衝或不可緩衝的指示。此使得 人員有能力來控制.關於快取化資料或緩衝化資料的任 良影響。例如,其需要避免配置一記憶體子區域成為 取或可緩衝,以避免記憶體存取發生在程式人員未預 時候,或是可避免有多個實體位置可以保持一資料項 由於快取記憶體的特性,某些記憶體映射的輸入/輸出 不適合於快取。在一記憶體内將某些子區域設計成為 取/不可快取,及在一給定記憶體區域内某些子區域為 衝/不可緩衝之能力提供了程式人員更多的彈性來使 憶體資源可更有效率地使用。 一給定記憶體區域之子區域可以配置成成員子區 非成員子區域,並可為任何可能的數目及組合,其限 為可用子區域之總數。但是,在一具體實施例中,該 域欄位係用於指定複數個連續成員子區域。此克服了 該記憶體保護單元定義之記憶體區域大小的任何限制 為非標準大小之記憶體區域的均等物可由選擇一大於 要的記憶體區域以及選擇一連續的子區域群組做為成 區域,並配置剩餘的連續子區域區塊做為非成員子區 參數 權限 一無 的指 一無 程式 何不 可快 期的 目° 位置 可快 可缓 得記 域或 制僅 子區 可由 ,因 所需 員子 域的 9 1356995 方式來定義。此可有效地定義出中間大小之記憶體區.域, 並避免在已知系統中需要使用具有兩組獨立定義的記憶體 屬性之兩個不同的記憶體區域來形成一非標準大小的記憶 體區域。
在本發明之一不同具體實施例中,該子區域欄位係用 於指定複數個非連續成員子區域。此可提供更大的彈性, 其中需要配置到兩個不同應用處理存取許可到不同周邊裝 置的子集合,而不需要對於每個周邊裝置來耗用整個記憶 體區域。此可由結合一周邊裝置與一子區域來達成,因此 一單一記憶體區域係結合於一組周邊裝置。對於不同的程 式應用,需要經允許才可存取之結合於周邊裝置的那些子 區域,其可定義成成員子區域,而那些結合於周邊裝置且 不需允許即可存取者即定義成非成員子區域。因此,更多 的周邊裝置可使用具有有限數目之定義的記憶體區域之記 憶體保護單元來容納。
雖然該記憶體保護單元之該複數個記憶體區域可被連 續地定義為沒有重疊的記憶體區域,在本發明一具體實施 例中,該記憶體保護單元之記憶體區域為重疊的記憶體區 域。因此,如果一給定的子區域位在超過一個記憶體保護 單元的話,例如該最高編號的記憶體區域之記憶體屬性即 可被應用到該子區域。此在根據本發明之系統中特別有 用,其中每個記憶體區域包含可被指定成成員子區域或非 成員子區域的複數個子區域。該非成員子區域可被指定成 位在一較低階層之記憶體區域的記憶體屬性,其已經定義 10 1356995
該子區域為一成員子區域。例如如果一給定部份的記憶 被配置成在該最高編號的記憶體區域層級中一非成員子 域,則其記憶體屬性將僅會對應於次高的記憶體區域層 之屬性,其中該子區域被定義成一成員子區域。在一特 具體實施例中,如果記憶體的一給定位址範圍由該複數 記憶體區域之一的子區域欄位指定成一非成員子區域, 該相同給定的位址範圍亦可由對應到該複數成員區域中 同的一個之一子區域欄位所指定成一成員子區域。此可 免記憶體的位址範圍成為不具有一指定的記憶體屬性 合。 在本發明一具體實施例中,該資料處理設備可操作 執行具有不同記憶體位址映射之複數個不同處理應用。 種設備的範例為一種能夠執行不同處理應用程式的執行 式執行的設備。在此具體實施例中,如果在該等複數個 同處理應用當中的執行之間進行一内文切換,該記憶體 護單元可操作以更新該複數記憶體區域中至少一個的子 域欄位。此可使得每個記憶體區域之記憶體屬性可保持 定,而使得不同屬性可由配置每個成員區域之該等子區 中相異者成為成員子區域及非成員子區域,來應用到不 的子區域。因此,例如如果該最高編號的記憶體區域之 區域先前配置成一成員子區域,而在内文切換之後,其 配置成一非成員子區域,則在該内文切換之前,該最高 憶體區域之記憶體屬性將可應用到該子區域,所以在該 文切換之後,一不同的較低編號之記憶體區域的記憶體 體 級 定 個 則 不 避 組 以 這 緒 不 保 區 固 域 同 子 即 記 内 屬 11 1356995
性將會應用到相同的記憶體部份。在另一具體實施例中 該記憶體保護單元在當内文切換時可可操作以更新該屬 欄位。此可允許該給定的記憶體區域之記憶體屬性可被 變,以反應出正在執行之應用處理的記憶體使用需求中 改變。 雖然該記憶體區域可被區分成不同大小的子區域, 一些具體實施例中,該記憶體區域之子區域可設計成相 的大小。此可簡化子區域的配置,例如'在對應於該周邊 置集合之連續記憶體區塊當中配置一給定的子區域給一 定的周邊裝置。 吾人應可瞭解到一目前位址字元的位址指定部份可 多種不同方式由該資料處理設備所識別。但是,在本發 -之一具體實施例中,一位址遮罩被用來依據指定了相關 憶體區域之大小的一大小值來識別目前位址字元之位址 定部份係。此可使其可有效率地識別目前記憶體位址所 的該記憶體區域。 在一具體實施例中,該資料處理設備包含子區域有 邏輯,其可操作以決定一子區域有效值,並指定是否目 的記憶體位置係相關於該等成員子區域之一或是該等非 員子區域之一。此可提供一種便利的方式來識別是否一 定的記憶體位址係同時對應於一給定的記憶體區域及該 定記憶體區域之一成員子區域。 吾人將可瞭解到目前記憶體位置所屬的該子區域可 直接由目前位址字元值配合該區域大小及位址來決定, 性 改 的 在 同 裝 給 用 明 記 指 屬 效 前 成 給 給 以 並 12 1356995 視為這種子區域及每個區域之獨立的判定。但是,此識別 可更為有效率地透過使用一位址遮罩為主的方法來識別目 前記憶體位置是屬於該等複數區域中的那一個,並利用電 路的一縮小區域來執行,並重新使用該位址遮罩以識別該 目前記憶體位置屬於相同區域之複數個子區域中的那一 個。
在另一具體實施例中,該有效邏輯可操作以使用該位 址遮罩,並藉由計算一組自該位址遮罩之位元及來自目前 位址字元之位元所邏輯地組合的選擇位元,以識別該特定 的子區域。在又另一具體實施例中,該子區域有效邏輯可 藉由邏輯地組合該選定位元集合當中的不同位元,來操作 以計算一組最後選擇的位元。此方式降低了由該目前位址 字元決定該目前位址所關連的該子區域之多工器的數目。 因此,其可提供一種便利的方式來獨立出該位址的那些位 元,並指定了該記憶體位址所對應到的該特定子區域。
在另一具體實施例中,該子區域有效邏輯包含排列邏 輯,其可操作以排列該最後選擇位元之集合以計算該子區 域有效值。在一具體實施例中,該排列邏輯係可操作以排 列該組最後選擇位元,然而在另一具體實施例中,該排列 邏輯係可操作以另外排列該子區域資格值以計算該子區域 有效值。這兩個具體實施例提供了其它的方法來由該位址 遮罩還原指定了相對應之記憶體區域的適當子區域之位址 位元。 雖然該排列邏輯可在儲存該子區域資格值之後並在計 13 1356995
算該子區域有效值之前,進行該子區域資格值之排列, 而在本發明一些具體實施例中,該排列邏輯可操作以當 入該子區域資格值到一運算元儲存時執行該排列。此可 由組合該排列階段及寫入該子區域資格值之階段到記 體,來提供一更為有效率的邏輯電路。 吾人應可瞭解到該獨立的排列邏輯組合可以提供以 列每個個別記憶體區域之子區域資格值。然而,在本發 之一具體實施例中,一單一邏輯模組被用來對於該複數 憶體區域的每一個執行該排列。此可降低管理該等記憶 子區域之供應所需要的電路數量。 由本發明另一個態樣來看,係提供用於處理資料的 法,該方法包含: 儲存資料值在一記憶體中; 將記憶體屬性與該記憶體之部份結合,並識別對應 使用一記憶體保護單元之該記憶體的個別位址範圍之複 個記憶體區域; 將該複數個中至少一個的記憶體區域與一個別的記 體區域說明符結合,其中包含有一屬性欄位以定義結合 該記憶體區域之一組記憶體屬性,及一子區域欄位以保 指定了該記憶體區域中複數個子區域的每一個當中是否 別的子區域為成員子區域或非成員子區域的一子區域資 值,使得該等記憶體屬性可應用到該等成員子區域,但 會應用到該非成員子區域。 由本發明另一個態樣來看,其係提供用於處理資料 然 寫 藉 憶 排 明 記 體 方 於 數 憶. 於 持 個 格 不 的 14 1356995 設備,該.設備包含: 用於儲存資料值之構件;
記憶體保護構件,用以結合記憶體屬性與該記憶體的 部份,並識別對應於該記憶體之個別位址範圍的複數記憶 體區域,該記憶體保護構件可用於結合該複數記憶體區域 中至少一個於一個別記憶體區域說明符,其包含一屬性攔 位,用於定義結合於該記憶體區域之一組記憶體屬性;及 一子區域欄位,用於保持一子區域資格值,並指定給該記 憶體區域之複數子區域的每一個中是否個別的子區域為成 員子區域或非成員子區域,使得該等記憶體屬性被應用到 該成員子區域,但不會應用到該等非成員子區域。 以上對於本發明之目的及其它目的、特徵及優點將可 由以下例示性具體實施例之詳細說明,並配合所附圖面來 閱讀,以更加瞭解。 【實施方式】
第1圖所示為根據本技術之一資料處理設備。該資料 處理設備1 0 0包含處理邏輯1 1 0、記憶體1 2 0,可操作以儲 存資料及/或指令,及一記憶體保護單元1 3 0。該記憶體1 2 0 係連接到一匯流排1 〇 5,且該處理邏輯1 1 0係連接到該依 序連接到該匯流排之記憶體保護單元 1 3 0。該記憶體保護 單元130提供了管理該記憶體120之方式,並定義了具有 個別記憶體屬性1 4 0之組合的複數個不同記憶體區域。該 記憶體保護單元1 3 0管理該實體記憶體位址空間。該記憶 15 1356995
體保護單元1 3 0藉由寫入到個別保護單元暫存器以 合於每個該等複數個保護區域之屬性。一記憶體區 小為2η,其中η為一整數,並其大小範圍由4 ΚΒ 4GB。一記憶體區域的啟始位址在此具體實施例中 為2η的倍數。第1圖所示為一記憶體區域150,其 為複數個子區域 1 6 0 -1到1 6 0- 8。該組記憶體屬性 定義成關連於整個記憶體區域1 5 0。但是,該記憶 1 5 0之一記憶體區域說明符具有用以保持一子區域 並指定了該等複數個子區域各者160-1到160-8的 域搁位,不論該子區域為一成員子區域或一非成 域。在第1圖中,該等成員子區域為該陰影的區越 及1 6 0 - 6。該等記憶體屬性1 4 0係由該記憶體保護岸 僅應用到該等成員子區域,而不會應用到該等非成 域。 該等記憶體屬性1 4 0包括:記憶體存取許可; 該記憶體區域是否為可讀取及/或可寫入的指示;一 記憶體區域是否為可快取記憶體區域的指示;及一 記憶體區域是否為可缓衝的指示。該等存取許可包 用者的存取層級及一特許的存取層級,且該記憶體 明符的該屬性區域之記憶體存取許可指定了那些層 一個可被允許存取到相關的記憶體區域。該特許的 級要比使用者層級具有較少的限制來對記憶體、指 態參數存取,而該處理邏輯110將會從該使用者層 到該特許的層級,例如發生一除外狀況時。因為快 定義結 域的大 最多到 係限制 係區分 140係 體區域 資格值 一子區 員子區 160-2 元130 員子區 一無論 無論該 無論該 含一使 區域說 級中那 存取層 令及組 級切換 取及寫 16 1356995
入緩衝器改變了存取到主記憶體之數目、種類及時序 們並不適合儲存關於某些種類之記憶體位置的資料 如,寫入緩衝器及寫回快取係根據其是否可能會延遲 到記憶體1 2 0,使得其實際上的發生會比由該處理邏輯 執行一儲存指令的時間要晚。此對於某些種類的記憶 置並不恰當,例如記憶體映射的中斷/輸出位置。因此 記憶體保護單元1 3 0允許一給定的記憶體區域被註記 可快取、不可緩衝、或兩者皆是。指定記憶體之子區 及該粗略規模記憶體區域之能力提供了記憶體資源管 關於已知記憶體保護系統之額外的彈性。 第2A圖所示為在已知的記憶體保護單元中使用 憶體區域說明符。該記憶體區域說明符包含一基本位 位2 1 0、一大小欄位2 2 0及一屬性欄位2 3 0。一個此類 體區域說明符係提供給由該記憶體保護單元1 3 0所定 每一個記憶體區域,其範圍基本為8到1 6。該基本位 位 2 1 0指定了該相關記憶體區域 1 5 0之第一位元組 址。該第一位元組之位址需為該區域大小之倍數。再 此配置中,對於該記憶體區域而言被校準為其大小的 是有需要的,因此對於大小為2n之記憶體區域,該記 區域必須校準為k * 2n,其中k為一整數。該大小欄位 指定了該相關記憶體區域之大小,其在此配置中的範 由2 50位元組到4GB。該屬性欄位230指定了關於該 體區域之記憶體屬性。這些記憶體屬性包含是否允許 用者層級或一特許層級的存取;一無論該記憶體區域 ,它 。例 儲存 110 體位 ,該 為不 域以 理中 的記 址欄 記憶 義的 址欄 的位 者在 倍數 憶體 220 圍可 記憶 一使 是否 17 1356995
為可讀取及/或可寫入的指示;一無論該記憶體區域是否 可快取或不可快取的指示,及一無論該記憶體區域是否 可緩衝或不可缓衝的指示。在已知的記憶體保護系統中 雖然該等記憶體區域之大小可以改變,該等記憶體屬性 關連於整個記憶體區域,其中並與第2 A圖之記憶體區 說明符有所關聯。 第2 B圖所示為根據本技術之一記憶體區域說明符 第2B圖之記憶體區域說明符與第2A圖之已知的說明符 有三個相同的欄位(即該基本位址2 1 0、該大小欄位2 2 0 該屬性欄位23 0)。但是,第2B圖之記憶體區域說明符 有一額外的子區域欄位24 0,其包含一多位元子區域資 值,該值可指定至該相對應之記憶體區域的複數個子區 各者,不論該記憶體區域的個別子區域為成員子區域或 成員子區域。在該屬性欄位2 3 0中指定的該等屬性僅應 到由該子區域資格值指定為成員子區域之那些子區域, 該等指定的屬性並不會應用到標示為非成員子區域的那 子區域。因此,第2 B圖之記憶體區域說明符使得一給 的記憶體區域被區分為子區域,所以對應於該記憶體區 之屬性,不會被應用到該區域的整個記憶體範圍,而是 僅應用到由該子區域資格值所決定的該等子區域的一子 合。此彈性之提供可使得對於從已知的系統中的記憶體 域數目來增加其記憶體區域數目的需求不再需要。雖然 2 B圖之具體實施例中,該等記憶體屬性及子區域資格值 在一描述符中指定,吾人應可瞭解到這些數值可以獨立 為 為 僅 域 具 及 具 格 域 非 用 且 些 定 域 會 集 區 第 係 地 18 1356995 儲存在不同的暫存器中,並由該記憶體保護單元130取得。
第3圖所示為由該記憶體保護單元1 3 0所管理的記憶 體區域如何配置成重疊的區域。第3圖所示為對應於實體 記憶體位址之一區塊位址 3 1 0。在此範例中,所示的位址 範圍從0x0000(16進位)到0x4000。在第3圖中亦顯示為 不同記憶體區域320, 330, 340, 350之數目。其可看出在個 別記憶體區域之間的實體記憶體位址空間中有一些重疊。 因為在此配置中需要每個記憶體區域大小為2n,並校準為 2n,如果它們重疊的話,較小的記憶體區域整個會落在較 大的區域内,如所示。例如,記憶體區域320,330及340 皆包含該位址0 X 1 8 0 0。第3圖中個別記憶體區域之陰影區 域代表成員子區域,然而該等記憶體區域之無陰影區域則 代表非會員子區域。其可看出該實體記憶體位址 0x1800 對應於該記憶體區域3 2 0及3 3 0之一成員子區域,但亦對 應於該記憶體區域340的一非成員子區域。該等重疊的記 憶體區域在該資料處理系統中可增加不同記憶體區域如何 被映射到實體記憶體裝置之彈性。為了有效地管理該等重 疊的區域,該記憶體保護單元1 3 0應用一固定優先性方案 以決定那一個記憶體區域有優先權來定義該等記憶體屬性 要應用到一給定的記憶體部份,其中該給定記憶體部份係 位在該等複數記憶體區域中一個以上的區域。特別是,關 聯於具有較高優先層級的記憶體區域的屬性比具有較低優 先等級之記憶體區域的那些屬性要有較高的優先權。在此 範例中,該等優先層級係根據由該記憶體保護單元1 3 0所 19 1356995
定義之記憶體區域的配置。因此,在第3圖的範例中, 果記憶體區域3 2 0為一層級0區域,記憶體層級3 3 0為 層級1區域,記憶體層級3 4 0為一層級2區域,而記憶 層級3 5 0為一層級3區域,然後比照實施,因為記憶體 域320及記憶體區域330皆具有包括了位址0x1800之成 子區域,所以指定給記憶體層級1之屬性,即記憶體區 3 3 0,即較佳地是應用到指定給記憶體層級0之記憶體 性,即記憶體區域320。 該等記憶體之重疊特性亦可用於指定一背景區域。 如,考慮到如果該記憶體保護單元1 3 0已經定義一定數 之記憶體區域,並已概略分佈在整個4 G B實體記憶體位 空間當中。如果發稱一程式錯誤,且該處理器發出一存 請求到並未位在任何所定義的記憶體區域内的一記憶體 址時,則該記憶體保護單元1 3 0通常即會中止該記憶體 取。但是,藉由定義在層級0之記憶體區域成為一 4GB 景區域,其可涵蓋整個實體記憶體位址空間,如果該記 體存取並不會落在任何其它指定的記憶體區域時,該存 將會由一組預設的屬性來控制,其中使用者已經對位於 級0之記憶體區域,在該記憶體區域說明符當中予以程 化。 第4A及4B圖所示為當在一記憶體區域内指定連續 子區域時,由本技術所提供的額外彈性。由於由該記憶 保護單元1 3 0所實施之對於該等記憶體區域之大小及基 位址的限制,也就是說該限制為一記憶體區域的啟始位 如 體 員 域 屬 例 量 址 取 位 存 背 憶 取 層 式 的 體 本 址 20 1356995
為該記憶體區域之大小2n的倍數,在已知的系統中,其 指定記憶體區域,但不允許定義記憶體子區域者,即不 能配置任意大小之記憶體區域。此狀況係由第4A圖之 例來說明,其中一應用處理需要配置大小為24KB之實 記憶體之連續區塊。但是,該記憶體保護單元1 3 0並沒 彈性來配置大小為24GB之記憶體區域,因此其有需要 別地配置兩個記憶體區域:即長度為1 6KB之第一記憶 區域410,及長度為8KB之第二記憶體區域420,並構 24KB之整體記憶體區塊。關於獨立指定兩個記憶體區 來配置24KB記憶體之連續區塊的負擔較高,因為該等 性必須對於該兩個記憶體區域之每一個來分別指定。 相反地,第4B圖所示為根據本技術如何由該設備 置出一 24KB連續區塊的記憶體。區分該記憶體區域成 複數子區域,及不論該等記憶體區域屬性必須應用到該 定的子區域(使用該子區域資格值的適當位元)而指定那 子區域各者的能力,其係可能藉由配置給該處理一單 32KB 區域並設定在該區域内的一些子區域為該等成員 區域,及將剩餘的子區域設定為非成員子區域的方式來 置實體記憶體中一 24KB部份。特別是在第4B圖的範 中,該32KB記憶體區域可區分為8個大小為4KB之相 的子區域。因此,藉由配置六個連續4KB子區域成為成 子區域及剩餘的兩個4KB子區域為非成員子區域,即可 即定義出一 24KB記憶體部份。使用第4B圖之單一區域 義該24KB部份之優點在於該等記憶體屬性係關連於整 僅 可 範 體 有 個 體 成 域 屬 配 為 特 些 子 配 例 同 員 立 定 個 21 1356995
3 2KB區域,因此可以僅定義一次,然而使用該相關記 體區域說明符的子區域欄位,該等記憶體屬性僅可以應 到該32KB記憶體區域之所需要的24KB部份。
憶 用 不 10 5B 用 用 或 慮 〇 裝 同 第 ;1 8 是 或 不 餘 配 第 所 立 第5A到5C圖所示為配置不同組合的成員子區域到 同組合的處理周邊裝置。第5A圖所示為在該處理邏輯1 上執行之一第一應用處理的一完整記憶體地圖,而第 圖所示為在該處理邏輯110上執行之一第二個不同之應 處理的一完整記憶體地圖。這些應用處理對應到處理應 程式,例如一文字處理應用程式、一試算表應用程式、 一電腦遊戲應用程式。在第5 A到5 C圖的範例中,係考 到該資料處理設備1 〇〇提供了總共8個周邊裝置的狀況 基本上記憶體的一連續區塊將配置給所有這 8個周邊 置。但是第5A圖之處理1及第5B圖之處理2需要一不 組合的存取許可到該周邊裝置的不同子集合。例如,在 5A圖的第一處理中,由該記憶體地圖部份514, 516, 5 分別所表示並僅可存取到周邊裝置P I,P 3及P 5的方式 所需要的。此第一應用處理並不允許使用周邊P2, P4 P 6到P 8。相對地,第5 B圖之第二應用處理允許存取到 同周邊的子集合,即Pl,P2及P4,且不允許存取到其 的周邊P 3及P 5到P 8。第5 A圖之記憶體地圖亦顯示出 置給指令之一記憶體區塊 5 1 0,及配置給資料儲存之一 二區塊5 1 2之記憶體。類似地,第5 B圖之記憶體地圖 例示的該應用處理包含一指令記憶體區塊 5 2 0,及一獨 的資料記憶體區塊 5 2 2。每個資料儲存記憶體區塊 5 22 12, 1356995
522,及每個指令記憶體區塊510及520,皆可包含一或多 個記憶體區域。該第二應用程式之指令記憶體5 2 0並不會 重疊於該第一應用程式之指令記憶體5 1 0。
在包含記憶體保護單元之已知系統中,提供不同應用 處理來存取到不同之周邊裝置的子集合的需要係由獨立地 配置一個別記憶體區域給每個周邊裝置來完成。因為基本 上係提供8到1 6個記憶體區域,當嘗試要容納周邊裝置的 大型群組以及該等不同處理應用程式之不同需要時,該資 料處理裝置很快地將會用完可用的記憶體區域。
但是’根據本技術’分別配置個別的記憶體區域給個 別的周邊裝置之需求可以輕鬆地避免,因為此方式可提供 對每個記憶體區域定義分別的子區域之彈性。再者,每個 子區域可被指定為一成員子區域,而由關連於該區域之該 等記憶體屬性來主動地應用,或是為一非成員子區域,而 關連於該區域之該等記憶體屬性並不會主動地應用到。因 此,在第5 A到5 C圖的系統中,其具有總共8個周邊裝置, 第 5 C圖中所示的記憶體區域可方便地區分成 8個子區 域,所以每個子區域可以關連於一給定的周邊裝置。因此, 在第5 A圖之記憶體地圖中所例示的應用處理中,僅允許 存取到周邊Pl,P3及P5之需求可以使用一單一記憶體區 域,並藉由指定關連於PI, P3及P5之子區域為成員子區 域,以及指定關連於P2, P4及P6到P8之子區域為非成員 子區域的方式完成。類似地,在第 5 B圖所例示的第二應 用處理之記憶體地圖中需要存取到周邊裝置Pl,P2及P4 23 1356995
之處,此可藉由使用一單一記憶體區域並指定關 P2及P4之該等子區域為成員子區域,但指定關ϋ Ρ6到Ρ8之子區域為非成員子區域來達成。依此 等周邊裝置之不同子集合可由不同的應用程式來 不會使用每個周邊裝置的一記憶體區域。然而一 體區域可配合子區域之成員及非成員特性來對於 理指定不同組合的周邊存取許可。 如果在該第一處理與該第二處理之間有一 時,該記憶體保護單元1 3 0可操作以對每個記憶 新第2 Β圖之子區域欄位2 4 0,以對於該記憶體區 某些是成員子區域的子區域。再者,該記憶體保讀 亦可對於一或多個記憶體區域來更新該等屬性欄 以依據由於該内文切換造成該系統記憶體之需求 改變。 第6圖所示為可操作以決定該子區域有效位 域有效邏輯的一部份,其指定了一給定的子區域 成員子區域或一非成員子區域。該邏輯配置包含 存器610,用以儲存一目前位址字元,一第二暫4 用以儲存一遮罩字元,一組27個AND閘63 0-5至| 一組3個邏輯OR閘642, 644及646; —子區域 列區塊650; —暫存器660;及一多工器670。 該暫存器610保存由該處理邏輯110所產: 位元位址字元,然而該暫存器6 2 0保存一位址遮 其用於識別目前位址字元的一相關位址指定部份 連於 P1, I於P3及 方式,該 存取,而 單一記憶 不同的處 内文切換 體區域更 域來改變 .單元130 位 23 0 > 來適應該 元之子區 是否為一 一第一暫 F 器 620 , J 630-31' 資格值排 t 的一 32 罩字元, 。儲存在 24 1356995
暫存器62 0中之遮罩字元具有一數值,其係依據在第2B 圖之記憶體區域說明符中所指定的該大小值 220。該等 AN D邏輯閘6 3 0 - 5到6 3 0 - 3 1係用於配置以計算個別的選擇 位元Sj。該AND閘63 0-5,例如採用來自該位址字元暫存 器610之元素5的一第一輸入,來自遮罩字元暫存器620 之第8元素的一第二輸入,及對應於該遮罩字元暫存器620 之第五個暫存器元素的一第三轉換的輸入。概言之,該等 選擇位元Si(i = 5到3 1)係由公式Si = M(i + 3)AiNOT (Mi)所給 定。.[SplVhnAi.NOTCMi)]該第一 OR閘接收該選擇的位 元 Sio, Si3,Si6 Si9, S22,S25,§28,S3 卜為輸入值。該第二 OR 閘 644 採取該等選擇位元 S6, S9, S12,S15,Si8,S21,§24, S 2 7及 S 3 〇做為輸入,然而該第三O R閘6 4 6接收該等選 擇位元 S5, S8, Sil,Si4,S!7, S20,S23,S26 及 S29 做為輸 入。因此,每個該等OR閘642, 644及646接收由該等AND 閘6 3 0 - 5到6 3 0 - 3 1輸出的2 7個選擇位元的子集合做為輸 入,其中每三個選擇位元輸出係供應給一給定的OR閘。 該等OR閘642,644及646之輸出對應於最後選擇位元; 代表F -位元,該位元係用於決定第5 C圖之8個可能的子 區域中那一些為對應於該目前位址字元的記憶體位置所屬 於的子區域。使用該三個OR閘642, 644,646來由該等 AND閘630-5到630-31中選擇包含每三個選擇位元之群 組,可簡化該處理邏輯,因為不然就將需要包含24個多工 器之一陣列。來自個別0 R閘6 4 2,6 4 4及6 4 6之三個F -位 元係以選擇輸入供應給該等多工器 670。該子區域資格值 25 1356995 排列區塊650接收第2B圖之大小欄位220之大小值做為 輸入,及一 8位元之子區域資格值,其指定了是否該相關 的記憶體區域之每個子區域為一成員子區域或一非成員子 區域。該8位元子區域資格值在被寫入到該暫存器660之 前即由該排列區塊6 5 0排列,然後做為輸入來供應到該多 工器670 。
該多工器670之輸出為一子區域有效位元,其指定了 目前的位址字元是否代表屬於一成員子區域的一記憶體位 置。在此範例之具體實施例中由於該0 R閘配置方式的本 質642, 6 44, 646而需要該排列區塊650,其係表示了由那 些0 R閘輸出之該等F -位元可以代表該三個位址位元之順 序的排列,並指定了目前記憶體位址所對應到的該8個可 能的子區域。此將在以下參考第7圖及第8A到8D圖更為 完整地解釋。
第7圖所示為一範例,其例示了該等選擇位元及該等 F-位元在第6圖之電路中如何計算。在此簡化的範例中, 該目前位址字元為一 8位元位址字元Ai,其中i = 0到7, 且該遮罩字元近似於一 8位元遮罩字元Mj,其中i = 0到7。 該選擇位元Si, i = 0到7,代表了第6圖之AND閘63 0-5 到630-31之輸出。該等選擇位元由第7圖所示的公式710 所指定,且該3個F -位元之每一個係由該等選擇位元之不 同位元之邏輯組合所得到。尤其是,該第一 F-位元F〇係 由對於該等選擇位元S〇,S3及S6所執行的一邏輯OR運算 來給定;該第二F-位元F,係由對於該等S位元Sl5 S4及 26 1356995 S7執行一邏輯OR運算來給定。而該第三F -位元F2係由將 該等輸入S 2及S 5的一邏輯0 R運算所給定。此係類似於第 6圖中由邏輯OR閘642,644及646所執行的計算,因為 在第7圖之範例中的F位元係由兩個介於中間之S位元所 隔開的選擇位元來計算,或是同等於在第6圖電路中的每 第三個S-位元,並輸入到一由每第三個邏輯AND閘所選 出的OR閘中。
第8 A到8 D圖提供了根據第7圖中所給定的公式來計 算該等F位元之四個特定範例。在這四個範例中,該等選 擇位元S i係根據公式7 1 0計算,且該等非零的選擇位元永 遠對應於該遮罩字元 Μ 中字串結束緊接著的前三個位 元。在第8 Α圖的範例中,該遮罩字元在其最低階位元位 置中四個連續的0之後有四個連續的1。該等選擇位元係 由公式710計算,所以例如S〗等於八丨AND M4 AND (NOT IVhpAi AND 1 AND 1= A!。類似地,S〇 等於 A〇 AND M3 AND (NOT M〇) = A AND 0 AND 1 = 0。該選擇字元的其它位 元皆以類似的方式計算。該最後選擇位元F i係根據第7圖 所給定的公式計算,所以F〇 = S〇ORS3〇RS6 = OORA3〇R 0 = A3; Fi = Si OR S4〇R S7 = Ai OR 0 OR 0 = A,;及 F2 = S2 OR S5 = A2 OR 0 = A2。第8B到8D圖中另外三個範例之F-位元 皆以類似的方式計算。該等三個F -位元共同指定了目前位 址要屬於該等8個可能子區域中的那一個。但是,由於該 方法中該等F-位元使用第6圖之邏輯電路來計算,故在一 給定區域内指定了相關子區域之位址位元組 Αι可被排 27 1356995
列。為了決定該等F-位元是否實際上被排列,即執行一計 算來決定l〇g2(大小)及l〇g2(大小)除以3時之餘數,其將由 記號l〇g2(大小)% 3表示,並提供了是否實際需要重新排 序的表示。此計算可由注意到l〇g2(大小)之數值實際上係 對應於在該遮罩字元中所包含的0之總數的方式來簡化。 因此,在第8 A圖的範例中,log2(大小)的數值=4,4%3等 於1。因為該餘數值不為0,此告訴我們其需要一特定的排 列,以還原指定該子區域之三個位址位元之正確的順序。 在第8 B圖的範例中,該遮罩字元在該最低順序位元位置 包含5個連續的1,之後為3個連續的0。在此例中,該等 F -位元F 〇,F |及F 2分別對應於該等位址位元A 〇 , A 1及A 2。 因為在第8B圖之遮罩字元中有三個0,log2(大小)係等於 3,所以在此例中其餘數為0,且不需要排列。在第8 C圖 的範例中,該遮罩字元在該最低順序位元位置中包含3個 連續的1,之後為5個連續的0。在此例中,如同第8 A圖 的例子,該等F-位元在一排列的順序中還原。特別是,F〇, F 1及F 2分別等於該等位址位元A 3,A 4及A 2。在此例中’ 因為該遮罩字元有5個0,log2(大小)等於5,且除以3時 其餘數等於2,所以其需要被排列。最後,在第8D圖的範 例中,該遮罩字元在該最低順序6 -位元位置中由2個1接 著有6個連續的0所形成,且該等F -位元係在一非排列的 順序中還原,其係由1 〇 g 2 (大小)等於6來指示,所以當除 以3時餘數等於0。由第8 A到8 D圖之範例中,吾人應可 瞭解到由第6圖之電路所還原的該等F -位元允·許該等位址 28 1356995
位元之隔離,以便指定了對應到一給定目前位址字元 當的子區域。但是,該等F-位元可以代表指定了在一 的順序中之位址位元A i的該子區域,所以此排列必須 補償。 第9A圖為一第一配置,其係用於計算該子區域 位元,並決定是否一給定的目前位址係在為一成員子 之子區域當中。該配置包含一 8位元暫存器910,其 該子區域資格值,一排列邏輯區塊 920,用以排列該 域資格值之位元,及一多工器 930,可操作以輸出該 域有效位元。此配置可利用事實上該排列可還原該等 元之正確順序,亦可對於該子區域資格值或是對該等 元本身來執行。第9A圖之配置將該未排序的子區域 值儲存在該暫存器910中,並供應該子區域資格值到 列邏輯 920,其中該 8位元子區域資格值之排列係 1 〇 g 2 (大小)除以3之餘數。該排列邏輯9 2 0輸出該排列 區域資格值到該多工器93 0。在一非排列順序之F-位 如選擇位元般供應給該多工器 930,所以該多工器之 代表一給定子區域是否為一成員子區域或一非成員 域。該等F-位元代表目前位址所對應到的該8個可能 域中的特定子區域,藉此儲存在暫存器910中的子區 效值代表該特定子區域是否為一成員子區域。該排列 920根據l〇g2(大小)%3的值來執行一排列。在該餘數 的事件中該子區域資格值會維持未排列若。如果該未 的子區域資格值之位元順序為[7,6,5, 4, 3, 2, 1, 0] 之適 排列 要做 有效 區域 儲存 子區 子區 F -位 F -位 資格 該排 根據 的子 元係 輸出 子區 子區 域有 邏輯 是〇 排列 ,則 29 1356995
數值1之餘數造成該子區域有效值位元順序成為[7, 2,5, 1,3, 0],而數值2之餘數造成該子區域有效值位 序成為[7,5, 3,1,6,4, 2,0]。第9A圖之配置係類似 6圖之配置,其中在兩者當中該子區域資格值皆有排 但是,在第6圖的配置中,該排列係在該子區域資格 寫入到暫存器660之前進行,反之在第9A圖的範例 該子區域有效值在其由該暫存器910讀出之後,並在 供應到該多工器9 3 0之前被排列》 第 9B圖所示為計算該子區域有效位元之計算的 個配置。此配置類似於第9A圖,其包含一暫存器91( 以保存該8位元子區域資格值’及一多工器930。但 在此特定的配置中,除了在由該暫存器910讀出的該 域資格值之後排列其位元之外,該子區域資格值係直 未排列的方式供應到該多工器9 3 0。此外,該等F -位 其被供應到該多工器9 3 0之前做排列。該F -位元排列 940執行一排列。該F-位元排列區塊940接收該等未 的F -位元做為輸入,並根據該記憶體區域的大小來執 排列,即l〇g2(大小)%3之數值。該排列之性質係關連 上第8 A到8 D圖之說明。再次地類似於第9 A圖,該 器930之輸出為該子區域有效位元。 第1 0圖所示為另一種配置,以排列該子區域資相 藉以計算該子區域有效位元。在此配置中,使用一單 列邏輯模組 1 0 1 0來對應於每個該等複數記憶體區域 列該子區域資格值。在第10圖中,保存該8位元子區 3,6, 元順 於第 列。 值被 中, 其被 另一 ),用 是, 子區 接以 元在 區塊 排列 行一 於以 多工 r值’ 一排 來排 域資 30 1356995 格值之暫存器由區塊元件1 022, 1 024,1 026及1 028所代 表。所.有這四個暫存器皆可以寫入。此配置提供有效率地 重新使用相同的排列邏輯區塊,以將對應於所有保存該 8 位元子區域資格值之暫存器用來排列該子區域有效數值。
第11圖所示為用於計算一區域碰撞值的邏輯配置,其 代表不論結合於一給定記憶體區域之記憶體屬性是否必須 應用到該目前位址字元所對應到的該特定子區域。回想到 該等記憶體屬性將僅會應用到為成員子區域之那些子區 域。該配置包含三個32位元暫存器;一目前位址字元暫存 器1100; —基本位址暫存器 1110及一遮罩字元暫存器 1 1 2 0。該配置亦包含一系列共2 7個互斥0 R (X Ο R)閘1 1 3 0、 一系列共2 7個邏輯AN D閘1 1 4 0、及一邏輯Ν Ο R閘1 1 5 0。 該目前位址字元1100的位元由Ai所表示,其中i為一整 數,範圍在0到31,而該基本位址1110之位元表示為Bi, 則其可看出該系列的XOR閘Π 30對於i = 5到3 1執行Ai XOR Bi的計算。該系列的AND閘接收個別XOR閘1130 之輸出做為第一輸入,而該遮罩字元Mi之相對應位元做為 第二輸入。因此,由該AND閘1 140所執行的由i = 5到3 1 之邏輯運算為(Aj XOR Bi) AND Mi 。該系列的 AND 閘 1 1 4 0之2 7個輸出係做為輸入供應到該N O R閘1 1 5 0。一額 外的輸入到該NOR閘1 1 5 0為該子區域有效位元,其由第 6圖之配置所計算。若沒有該子區域有效位元之額外輸 入,則第1 1圖的配置對應於一非邏輯電路,該電路係用來 代表是否該目前位址對應於結合於該給定基本位址之記憶 31 1356995 體區域。但是,包括了該子區域有效位元輸入1160改變了 此電路的功能,使得該電路可同時表示該目前位址字元代 表一位址係在關連於該指定的基本位址 1 11 0之記憶體區 域中,以及該目前位址所對應的該特定子區域為一成員子 區域。由此可看出如果該子區域有效位元之數值為 1,則 因為其數值在被反向輸入至該NOR閘,藉以取得一區域命 中,對應於來自該NOR閘1150之1的輸出,該子區域有 效位元必須具有輸入值為1是有必要的。
雖然本發明例示性具體實施例已經在此參考所附圖面 而做了詳細的說明,其要瞭解到本發明並不受限於那些精 確的具體實施例,且該多種變化及修正可由本技術專業人 士在其中進行,而並不背離由所附申請專利範圍所定義之 本發明的精神與範圍。 【圖式簡單說明】 第1圖所示為具有一記憶體保護單元之資料處理系 統;
第2A圖所示為一已知記憶體保護單元之記憶體區域 描述符; 第2B圖所示為根據本發明之一記憶體描述符,並具 有一子區域爛位; 第3圖所示為可操作以配置重疊記憶體區域之一記憶 體保護單元之不同的記憶體區域; 第 4 A圖所示為兩個不同記憶體區域之配置以指定不 同大小之記憶體區塊; 32 1356995 第4B圖所示為根據本發明如何使用一單一記憶體區 域來指定如第4A圖所指定之相同的記憶體區塊; 第5 A,5 B及5 C圖所示為經由在一資料處理系統上執 行之不同應用處理來存取到不同周邊裝置的記憶體管理; 第 6圖所示為可操作以計算一子區域有效位元之邏 輯;
第7圖所示為用於計算對應於第6圖之電路元件的輸 出之數值的公式; 第8 A到8 D圖所示為第6圖之電路的範例性計算; 第9A圖所示為用於計算包含有邏輯以排列該子區域 資格值之一子區域有效位元的電路之一部份; 第9B圖所示為可操作於計算具有可操作以排列該等 最終選擇位元之排列邏輯的該子區域有效位元之電路的一 部份;
第1 0圖所示為可操作以排列複數個不同記憶體區域 之子區域資格值之排列邏輯的一單一區塊; 第 11圖所示為可操作以決定一成員子區域之一區域 碰撞之邏輯的一部份。 【主要元件符號說明】 100 資料處理設備 120 記憶體 105 匯流排 130 記憶體保護單元 110 處理邏輯 140 記憶體屬性 33 1356995
150 記 憶 體 區 域 642, OR , 閘 160- 1到 1丨 60-8 子區域 644, OR 閘 210 基 本 位 址 646 OR , 閘 220 大 小 650 子 區 域 資格 值排列 230 屬 性 區 塊 240 子 區 域 660 暫 存 器 3 10 區 塊 位 址 670 多 工 器 320 t己 憶 體 區 域 710 公 式 330 1己 憶 體 區 域 910 8 位 元, 皆存器 340 記 憶 體 區 域 920 排 列 邏 輯 350 1己 憶 體 區 域 930 多 工 器 4 10 第 — 記 憶 體 1¾ 域 940 F 位 元< 排列區 塊 420 第 二 記 憶 體 區 域 1010 單 一 排 列邏輯模組 5 10 指 令 記 憶 體 區 塊 1022 區 塊 元 件 5 12 資 料 記 憶 體 區 塊 1024 區 塊 元 件 5 14 記 憶 體 地 圖 部 份 1026 區 塊 元 件 5 16 記 憶 體 地 圖 部 份 1028 區 塊 元 件 5 18 記 憶 體 地 圖 部 份 1100 S 前 位 址字 元暫存 520 指 令 記 憶 體 區 塊 器 522 資 料 記 憶 體 區 塊 1110 基 本 位 址暫存器 610 第 一 暫 存 器 1120 遮 罩 字 元暫存器 620 第 二 暫 存 器 1140 XOR 閘 630 AND 丨閘 1150 NOR .閘 34 1356995 1160子區域有效位元輸 入
35

Claims (1)

1356995 :拾、申請薄利範圍: 1. 一種用於處理資料的設備,該設備包含: 一記憶體,用以儲存資料數值; 一記憶體保護單元,可操作以結合記憶體屬性與
該記憶體的部份,並識別對應於該記憶體之個別位址 範圍的複數記憶體區域,該記憶體保護單元可操作以 將該複數記憶體區域中至少一個與一個別記憶體區域 說明符結合,該說明符包含一屬性欄位,用於定義結 合於該記憶體區域之一組記憶體屬性,及一子區域欄 位,用於保持一子區域資格數值,其指定給該記憶體 區域之複數子區域的每一個,不論個別的子區域為成 員子區域或非成員子區域,使得該等記憶體屬性被應 用到該成員子區域,但不會應用到該等非成員子區域。 2. 如申請專利範圍第1項所述之設備,其中該組記憶體 屬性包含記憶體存取許可。
3. 如申請專利範圍第1項所述之設備,其中該設備可操 作在包括一使用者層級及一特許層級的複數個層級 中,且該記憶體存取許可指定了該複數個層級中哪些 可被允許進行存取。 4. 如申請專利範圍第1項所述之設備,其中該記憶體屬 性包含一指示,以表示該等成員子區域是否為可讀取 或可寫入。 5. 如申請專利範圍第1項所述之設備,其中該記憶體屬 36 1356995
性之集合包含一指示,以表示該等成員子區域為 取或不可快取。 6. 如申請專利範圍第1項所述之設備,其中該記憶 性之集合包含一指示,以表示該等成員子區域為 衝或不可緩衝。 7. 如申請專利範圍第1項所述之設備,其中該記憶 護單元可操作以使用該子區域欄位以指定複數個 的成員子區域。 8. 如申請專利範圍第1項所述之設備,其中該記憶 護單元可操作以使用該子區域欄位以指定複數個 續的成員子區域。 9. 如申請專利範圍第1項所述之設備,其中該複數 憶體區域為重疊的記憶體區域。 1 0.如申請專利範圍第9項所述之設備,其中該記憶 一給定位址範圍由該複數個記憶體區域之一的子 欄位指定成一非成員子區域,且該給定位址範圍 對應到該複數成員區域中某個相異之一子區域欄 指定成一成員子區域。 1 1 .如申請專利範圍第9項所述之設備,其中該資料 設備可操作以執行具有個別記憶體位址映射之複 不同處理應用程式,且其中當該複數個不同處理 程式當中不同應用程式的執行之間發生一内文 時,該記憶體保護單元可操作以更新該複數記憶 可快 體屬 可緩 體保 連續 體保 非連 個記 體的 區域 亦由 位所 處理 數個 應用 切換 體區 37 1356995
域中至少一個的該子區域欄位。 1 2 ·如申請專利範圍第1 1項所述之設備,其中該記憶體 護單元可操作以在該内文切換的事件中更新該屬性 位0 1 3.如申請專利範圍第1項所述之設備,其中該記憶體 域之該複數子區域為相等的大小。 14.如申請專利範圍第1項所述之設備,其中使用一位 遮罩識別一目前位址字元之位址指定部份,其係根 指定了該記憶體區域之大小的一大小值,而該目前 址字元對應於一目前記憶體位置。 1 5 .如申請專利範圍第1 4項所述之設備,其至少包含可 作以決定一子區域有效值的子區域有效邏輯,該子 域有效值指定是否目前的記憶體位置係關連於該等 員子區域之一或是該等非成員子區域之一。 1 6 ·如申請專利範圍第1 5項所述之設備,其中該子區域 效邏輯可操作以使用該位址遮罩,以從該目前位址 元中識別出該目前記憶體位置屬於該複數子區域中 一個子區域。 1 7 .如申請專利範圍第1 6項所述之設備,其中該子區域 效邏輯可藉由邏輯地組合來自該位址遮罩之位元及 自該目前位址字元之位元,來操作以計算一選擇位 之集合。 1 8.如申請專利範圍第1 7項所述之設備,其中該子區域 保 欄 區 址 據 位 操 區 成 有 字 那 有 來 元 有 38 1356995 效邏輯可藉由邏輯地組合該組選擇位元當中的不同位 元,來操作以計算一最後選擇位元之集合。 19. 如申請專利範圍第18項之設備,其中該子區域有效邏 輯包含排列邏輯,其可操作以排列該組最後選擇位元 以計算該子區域有效值。
20. 如申請專利範圍第18項所述之設備,其中該子區域有 效邏輯包含排列邏輯,其可操作以排列該子區域資格 值以計算該子區域有效值。 21. 如申請專利範圍第20項所述之設備,其中當寫入該子 區域資格值到一運算元儲存時,該排列邏輯可操作以 執行該排列。 2 2.如申請專利範圍第2 1項所述之設備,其中該排列邏輯 包含一單一邏輯模組,且該單一邏輯模組用於對每個 該複數記憶體區域執行該排列。 23. —種用於處理資料的方法,該方法包含:
儲存資料值在一記憶體中; 結合記憶體屬性於該記憶體之部份,並識別對應 於使用一記憶體保護單元之該記憶體的個別位址範圍 之複數個記憶體區域; 將該複數個記憶體區域中至少一個與一個別的記 憶體區域說明符結合,該說明符包含有一屬性欄位以 定義結合於該記憶體區域之一組記憶體屬性,及一子 區域欄位以保持指定了該記憶體區域中複數個子區域 39 1356995
的每一個當中是否個別的子區域為成員子區域或非 員子區域的一子區域資格值,使得該等記憶體屬性 應用到該等成員子區域,但不會應用到該非成員子 域。 2 4. —種用於處理資料的設備,該設備包含: 用於儲存資料值之構件; 記憶體保護構件,用於結合記憶體屬性於該記 體的部份,並識別對應於該記憶體個別位址範圍之 數記憶體區域,該記憶體保護構件係可操作以將該 數記憶體區域中至少一個與一個別的記憶體區域說 符結合,該說明符包含一屬性欄位以定義一組關連 該記憶體區域之記憶體屬性,及一子區域欄位以保 一子區域資格值,其對於該記憶體區域中複數子區 之每一個指定個別的子區域是否為成員子區域或非 員子區域,使得該等記憶體屬性係應用到該等成員 區域,但不會應用到該等非成員子區域。 成 可 區 憶 複 複 明 於 存 域 成 子 40
TW094135560A 2005-01-04 2005-10-12 Data processing apparatus having memory protection TWI356995B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/028,501 US7068545B1 (en) 2005-01-04 2005-01-04 Data processing apparatus having memory protection unit

Publications (2)

Publication Number Publication Date
TW200625080A TW200625080A (en) 2006-07-16
TWI356995B true TWI356995B (en) 2012-01-21

Family

ID=35447495

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094135560A TWI356995B (en) 2005-01-04 2005-10-12 Data processing apparatus having memory protection

Country Status (9)

Country Link
US (1) US7068545B1 (zh)
EP (1) EP1839159B1 (zh)
JP (1) JP4647668B2 (zh)
KR (1) KR101016714B1 (zh)
CN (1) CN101095122B (zh)
IL (1) IL183909A (zh)
MY (1) MY136195A (zh)
TW (1) TWI356995B (zh)
WO (1) WO2006072756A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4661574B2 (ja) * 2005-12-14 2011-03-30 セイコーエプソン株式会社 組込機器、電子機器、組込機器の制御方法、制御プログラムおよび記録媒体
TW200805065A (en) * 2006-01-17 2008-01-16 Nxp Bv Region protection unit, instruction set and method for protecting a memory region
JP2007334432A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp 情報処理装置及びそのアクセス制御方法
US7634708B2 (en) * 2006-09-15 2009-12-15 International Business Machines Corporation Relocatable storage protect keys for system main memory
JP4916338B2 (ja) * 2007-02-26 2012-04-11 キヤノン株式会社 周辺装置およびそのアクセス制御方法
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
JP4939387B2 (ja) 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
CN101971576B (zh) * 2008-01-08 2014-06-18 三菱电机株式会社 通信控制方法、站侧装置、加入者侧装置以及通信系统
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
WO2009133428A1 (en) * 2008-04-29 2009-11-05 Freescale Semiconductor, Inc. Multiplexing and demultiplexing data
EP2187173B1 (en) * 2008-11-14 2017-10-04 Kamstrup A/S Consumption meter with one processor handling legal and non-legal code
US20120042130A1 (en) * 2009-04-24 2012-02-16 Aaron Antony Peapell Data Storage System
GB2484927A (en) * 2010-10-26 2012-05-02 Advanced Risc Mach Ltd Provision of access control data within a data processing system
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US8639895B2 (en) * 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
US20130111181A1 (en) * 2011-10-31 2013-05-02 Lsi Corporation Methods and apparatus for increasing device access performance in data processing systems
US20140025852A1 (en) * 2012-07-19 2014-01-23 Lsi Corporation Configurable Response Generator for Varied Regions of System Address Space
US9229639B2 (en) * 2013-03-11 2016-01-05 Sandisk Technologies Inc. Method and non-volatile memory device for improving latency together with write protection
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
US9395993B2 (en) * 2013-07-29 2016-07-19 Intel Corporation Execution-aware memory protection
US9307409B2 (en) 2013-12-27 2016-04-05 Intel Corporation Apparatus, system and method of protecting domains of a multimode wireless radio transceiver
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US9678899B2 (en) 2014-04-08 2017-06-13 Nxp Usa, Inc. Method and apparatus for providing memory protection
EP3029574B1 (en) * 2014-12-02 2019-09-18 ARM Limited Memory management
US20170139844A1 (en) * 2015-11-17 2017-05-18 Silicon Laboratories Inc. Asymmetric memory
US10671547B2 (en) 2016-12-19 2020-06-02 Intel Corporation Lightweight trusted tasks
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
US20190196984A1 (en) * 2017-12-27 2019-06-27 Qualcomm Incorporated Method, apparatus, and system for dynamic management of integrity-protected memory
GB2575878B (en) * 2018-07-27 2021-06-09 Advanced Risc Mach Ltd Binary search procedure for control table stored in memory system
US11567878B2 (en) * 2020-12-23 2023-01-31 Intel Corporation Security aware prefetch mechanism
CN112836221B (zh) * 2021-01-13 2024-02-06 深圳安捷丽新技术有限公司 一种多安全级别分区的便携固态硬盘及其设计方法
US11928339B2 (en) 2022-05-26 2024-03-12 STMicroelectronics (Grand Quest) SAS Method, system, and circuit for memory protection unit configuration and content generation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776938B2 (ja) * 1981-06-27 1995-08-16 富士通株式会社 ファイル機密保護処理装置
EP0425771A3 (en) 1989-11-03 1992-09-02 International Business Machines Corporation An efficient mechanism for providing fine grain storage protection intervals
GB2325061B (en) * 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US6519690B1 (en) * 1999-08-23 2003-02-11 Advanced Micro Devices, Inc. Flexible address programming with wrap blocking
US6901505B2 (en) * 2001-08-09 2005-05-31 Advanced Micro Devices, Inc. Instruction causing swap of base address from segment register with address from another register
US6697276B1 (en) * 2002-02-01 2004-02-24 Netlogic Microsystems, Inc. Content addressable memory device

Also Published As

Publication number Publication date
JP4647668B2 (ja) 2011-03-09
JP2008527483A (ja) 2008-07-24
CN101095122B (zh) 2011-09-14
MY136195A (en) 2008-08-29
CN101095122A (zh) 2007-12-26
IL183909A0 (en) 2007-10-31
KR101016714B1 (ko) 2011-02-25
IL183909A (en) 2011-04-28
US20060149911A1 (en) 2006-07-06
WO2006072756A1 (en) 2006-07-13
EP1839159A1 (en) 2007-10-03
US7068545B1 (en) 2006-06-27
TW200625080A (en) 2006-07-16
KR20070092717A (ko) 2007-09-13
EP1839159B1 (en) 2017-11-15

Similar Documents

Publication Publication Date Title
TWI356995B (en) Data processing apparatus having memory protection
JP5647252B2 (ja) メモリ管理装置及び仮想メモリ領域を提供する方法
CN103383667B (zh) 存储器保护电路、处理单元和存储器保护方法
US10061710B2 (en) Storage device
KR102216116B1 (ko) 메모리 모듈 및 그것의 동작 방법
KR20210033054A (ko) 컴퓨터 프로세서의 가상 머신 레지스터
TWI461910B (zh) 用於依照組態資訊執行原子記憶體操作之記憶體及方法
TW202314474A (zh) 控制非揮發性記憶體之記憶體系統及方法
US20140115656A1 (en) Security management unit, host controller interface including same, method operating host controller interface, and devices including host controller interface
KR20210035909A (ko) 실행 도메인에 기반한 프로세서 레지스터를 위한 액세스 제어
KR20210024667A (ko) 컴퓨터 프로세서의 키 관리
EP0377970A2 (en) I/O caching
CN102693191B (zh) 半导体器件和存储器保护方法
CN112639779A (zh) 用于存储器地址从对象特定虚拟地址空间转换成物理地址空间的安全性配置
KR20210038992A (ko) 하이퍼바이저의 존재를 기반으로 한 컴퓨터 프로세서의 동적 구성
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
KR20210022141A (ko) 실행 도메인에 대한 페이지 테이블 엔트리에 지정된 허가를 통한 메모리 액세스 제어
CN107771322A (zh) 可编程集成电路中存储器资源的管理
TWI516918B (zh) 具有在記憶庫式記憶體中的線性記憶體之微控制器
US20080177930A1 (en) Fully associative banking for memory
JP2021515308A (ja) デバイスをデバッグするときにメタデータにアクセスするための装置及び方法
KR101490072B1 (ko) 캐시의 전력 제어를 위한 장치 및 방법
US20240111672A1 (en) Data co-location using address hashing for high-performance processing in memory
TW202303400A (zh) 用於記憶體配置的方法、系統及設備
WO2017091197A1 (en) Cache manager-controlled memory array