TW200836062A - Apparatus and method for fast and secure memory context switching - Google Patents

Apparatus and method for fast and secure memory context switching Download PDF

Info

Publication number
TW200836062A
TW200836062A TW096148393A TW96148393A TW200836062A TW 200836062 A TW200836062 A TW 200836062A TW 096148393 A TW096148393 A TW 096148393A TW 96148393 A TW96148393 A TW 96148393A TW 200836062 A TW200836062 A TW 200836062A
Authority
TW
Taiwan
Prior art keywords
memory
communication channel
partition
configuration register
coupled
Prior art date
Application number
TW096148393A
Other languages
English (en)
Other versions
TWI385515B (zh
Inventor
Faraz A Siddiqi
Kirk D Brannock
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200836062A publication Critical patent/TW200836062A/zh
Application granted granted Critical
Publication of TWI385515B publication Critical patent/TWI385515B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Description

200836062 九、發明說明: 【發明所屑之技術領域3 發明領域 本發明一般係關於電腦記憶體,並且尤其是,但不限 5 於,用於電腦記憶體中之快速與安全記憶體脈絡切換的裝 置、系統以及方法。 【Tltr It 發明背景 多數電腦使用某種脈絡操作。最熟悉的以及最常被使 10用的脈絡是執行幾乎每個電腦的所有基本功能之作業系 統。該作業系統是“特級程式”,其控制電腦之基本操作, 例如,輸入、輸出、排程以及記憶體管理,並且同時也提 供其他程式,例如,使用者應用程式在其内可執行的脈絡。 因此,例如,多數個人電腦使用某個版本之微軟視窗作為 15作業系統,並且Ms視窗提供在其之内應用程式(例如, Microsoft 〇utl〇ok、w〇rd 以及 Excd)可執行之脈絡。 在一些情況中,一使用者可能具有一些可在MS視窗 行以及"7在不同的作業系統(例如,Linux)上執行的其 ’程式並且其偶爾可能必須在Windows和Linux之 Η二換。在k些情況中,在相同電腦上使用多於一個的作 業系、、先’而非具有執行各個作業系統之一分別的電腦,對 ;使用者而Α將是最方便^是最經濟地。這可藉由使該 用者此夠彻切換作業系統切換脈絡而被達成。第工圖 、丁目Θ之脈絡切換的實作例,此處利用在第—和第二 5 200836062 作業系統之間的切換說明。帛丨圖分解地展示—基本記憶 體系統100,其包含一記憶體控制器102、儲存裝置1〇4以 及記憶體106。儲存裝置1〇4和記憶體1〇6兩者皆被耦合至 心f思體控制$ 1G2。在含系統⑽之電腦的開始啟動時,記 5憶體控制器102接收來自處理器(未被展示)之命令而導致 其自儲存裝置HM取得用於第一作業系統之程式碼並且複 製它放進記憶體106中。一旦被載入記憶體1〇6中,則該 電腦執行第-作業系統,以及任何可在該作業系統上執行 的程式。 1〇 胃電知使用者想要改變作業系統時,他或她可指示系 統100在第-作業系統和第二作業系統之間切換。在非常 簡單的以及基本的實作例中,當接收指令以切換作業系統 時,整個電腦停止動作並且繼續使用第二作業系統以重新 啟動。在稍微更複雜的實作例中,當系統100接收一指令 15以切換作業系統時’該處理器傳送指令至記憶體控制器曰⑽ 以自記憶體106沖除第一作業系統 旦該第一作業系統 20 自記憶體被沖除’則記憶體控制器102存取儲存襄置刚, 其中它找到用於第二作㈣、統之程式碼並且接著自儲存裝 置104轉移該程式碼至記憶體舰。一旦第二作業系統被载 入記憶體106中,系統刚則使用第二作業系統執行並且 可使用被設計而用於第m统的應用程式。 配合第1圖之上述脈絡切換方法具有許多缺點盆中最 值得注意的是,其在作㈣、統之間的切換是多長且繁重。 儲存裝置刚之存取朗取,其通常是料或柄驅動器, 6 200836062 是緩慢的並且因此需花費一些時間以載入及啟動第二作業 系統。另一重要的缺點是,在一些情況中,電腦必須實際 地關閉以達成作業系統之切換;換言之,使用者必須實際 地將該電腦電源關閉。 5 【發明内容】 依據本發明之一實施例,係特地提出一種裝置,該裝 置包含:一記憶體控制器,其中包括一組態暫存器;耦合 至該記憶體控制器之一通訊通道;以及耦合至該通訊通道 之第一和第二記憶體分割區,其中該組態暫存器中之組態 10 參數被設定成會使得該記憶體控制器一次認知一個分割 區。 圖式簡單說明 本發明非限制以及非全括性之實施例將參考下面的圖 式被說明,除非另外指定,否則全文中相同之參考號碼是 15 指示相同之部件。 第1圖是多重作業系統環境之目前記憶體實作的方塊 圖。 第2圖是被分割之記憶體脈絡切換系統的實施例之方 塊圖。 20 第3圖是被分割記憶體脈絡切換系統之另一實施例的 方塊圖。 第4圖是包含被分割記憶體脈絡切換系統之實施例的 電腦糸統貫施例之方塊圖。 第5A圖是展示被分割記憶體脈絡切換系統(例如第2圖 7 200836062 或第3圖中所展示之一者)之操作的實施例之流程圖。 第5B圖是展示被分割記憶體脈絡切換系統(例如第2圖 或第3圖中所展示之一者)之操作的另一實施例流程圖。 第6A圖是展示用於分割記憶體之記憶體組態暫存器的 5 實施例之方塊圖。 第6B圖是展示用於分割記憶體之記憶體組態暫存器的 另一實施例之方塊圖。 C實施方式3 較佳實施例之詳細說明 ° 此處將說明用於快速與安全記憶體脈絡切換之裝置、 系統以及方法的實施例。在下面的說明中,許多的特定細 節將被說明以提供本發明實施例之全面的了解。但是,熟 習有關本技術者應明白,本發明可被實施而不必一個或多 個特定細節,或利用其他方法、構件、材料等等。在其他 15實例中,習知的結構、材料、或操作未被展示或詳細地被 說明,但是仍然被包含在本發明範疇之内。
、或特性可以任㈣當的方式被組合。 第2圖展示快速脈絡切換記格_4 ^ am _
憶體 8 200836062 記憶體控制器202。至少一個通訊通道耦合記憶體控制器 202之至少一個記憶體—在這實施例中,一對通訊通道206 和208各被耦合於至少一個記憶體:通訊通道206被耦合至 記憶體模組210和212,而通訊通道208則相似地被耦合至記 5 憶體模組214和216。當然,其他實施例可包含更多或較少 的通訊通道,並且各通訊通道可被耦合至比圖形所展示之 實施例中之較大或較少數目的記憶體模組上。 在展示之實施例中,記憶體模組210、212、214以及216 是雙直列記憶體模組(DIMM),其各包含一般習稱為“記憶 10 體列”的二列記憶體裝置。記憶體模組210,例如,由一個 第一列記憶體210a以及一個第二列記憶體210b所構成。在 一實施例中,被使用於該等模組中之一記憶體裝置可包含 一個DRAM,雖然本發明實施例是不受這論點所限制。雖 然所展示的實施例之記憶體使用DIMM組態,但在記憶體系 15 統的其他實施例中,其他型態的記憶體模組,例如,單 直列記憶體模組(SIMM)以及其類似者亦可被使用。此外, 吕己憶體糸統200中的所有記憶體模組並不需要是相同型 態:在其他實施例中,不同記憶體模組如記憶體模組21〇、 212、214以及216之任何組合可被使用,只要被使用之該等 2〇 5己憶體模組具有足夠容量並且可使用在記憶體控制5| 202 上組恶暫存裔204適當地被定址且被組配。記憶體模組 210-216被群集成為兩個記憶體分割區:第一記憶體分割區 包含記憶體模組210和214,並且第二記憶體分割區包含記 體模組212和216。這記憶體分割藉由在組態暫存器204中 9 200836062 設定適當的參數而被達成,因而控制器一次對於一記憶體 分割區進行位址解碼,將在下面進一步地參考第*和$圖而 被說明。以這方式組態暫存器將確保在第一分割區中執行 之祕(例如,作業系統)不存取第二分割區中之記憶體並且 5在第二分割區中執行之脈絡(例如,作業系統)不存取第一分 』區中之§己憶體,因此避免問題發生,例如,記憶體存取 衝突。 通訊通道206和208耦合記憶體模組21〇、212、214以及 216至记f思體控制裔202並且允許通訊和資料在記憶體模組 1〇和控制器之間交換。在記憶體系統2〇〇之一實施例中,通訊 通道206和208是能夠載送電氣信號之電氣傳導路徑;在印 刷電路板中之記憶體匯流排中是此一傳導路徑之範例。但 疋,在其他實施例中,該等通訊通道可以是一些其他型式 的電氣通訊通道,或可以是整體不同型式的通訊通道,例 15 如,一光學通訊通道,例如,波導或光纖。 纪憶體控制器202,同時也是習知如一記憶體控制器中 樞(MCH),其控制在記憶體模組21〇、212、214以及216之 間及之中的資料之流程,以及在記憶體控制器2〇2和在一電 腦(未被展示)之内被發現的其他構件(例如,處理器及/或儲 20存裝置媒體)之間的資料之流程。另外,記憶體控制器212 包含至少一個組態暫存器204。在所展示之實施例中,其使 用DIMM於記憶體模組,該組態暫存器2〇4包含DRAM列邊 界(DRB)暫存器。DRB暫存器被使用以將中央處理單元 (CPU)以及直接記憶體存取(DMA)位址映射至記憶體模組 200836062 210-216中之實際的記憶胞。 在一般的電腦系統中,基本輸出入系統(BIOS)規劃組 態暫存器作為其之標準記憶體啟始化序列的部份。BIOS詢 問該DIMM以決定各DIMM支援多少記憶體並且接著對各 5 DIMM規劃在DRB暫存器中之正確數值。在DRB暫存器中 之參數告知晶片組各DIMM支援多少記憶體以及如何映射 處理器位址至在DIMM上之實際的記憶體胞。DRB暫存器以 一種增量的方式被規劃。對於雙通道實施例,例如,所展 示之一者: 10 在 Ch〇 中之總記憶體=C0_DRB0+C0_DRB 1+C0_DRB2+C0_DRB3 在Chi 中之總記憶體=C1—DRB0+C1—DRB1+C1—DRB2+C1_DRB3 在系統中之總記憶體=在ChO中之總記憶體+在Chi中之總記憶體 許多記憶體系統支援雙記憶體通道,並且因此在此一 系統中對於各記憶體通道可指定一組不同的DRB記憶體暫 15存器。此一雙通道架構型態以一種不衝擊系統記憶體帶寬 之方式產生記憶體之分割。 第3圖展示脈絡切換記憶體系統3〇〇之另一實施例。如 第2圖所展示之記憶體系統2〇〇,記憶體3〇〇包含其中具有一 個或多個組態暫存器304之一記憶體控制器3〇2。同時一對 20通訊通道306和308被耦合至記憶體控制器302。除了被耦合 至記憶體控制器302之外,通訊通道3〇6也被耦合至記憶體 模組310和312 ;同樣地,通訊通道3〇8被耦合至記憶體模組 314和316。 記憶體系統3 0 0主要地不同於記憶體系統2 〇 〇的是記憶 11 200836062 體刀副之拓樸架構型態。在記憶體系統2〇〇中,各個分割區 $含被_合至各個通訊通道之—記憶體模組;例如,第一 刀割區包含被耦合至通訊通道2〇6之記憶體模組bo以及被 耦口至通訊通道208之記憶體模組Ή4。因此,在記憶體系 、’先0中L己t思體分割區具有兩個通訊於記憶體控制器皿 之通道。相對地,在記憶體系統3〇〇中,各個分割區包含多 數们被I禺合至相同通訊通道之記憶體模組;因此,在記憶 體系統300中,帛一分割區包含記憶體模組31〇和312,其兩 者皆被耦合至相同通訊通道3〇6,並且第二分割區包含記憶 10體权組314和316,其兩者皆被耦合至相同通訊通道3〇8。因 此,各圯憶體分割區具有一個通訊於記憶體控制器3〇2之通 道。如在§己憶體系統200中,在記憶體系統3〇〇中,該等分 割區藉由調整在組態暫存器3〇4之内的參數值而被產生,因 而記憶體控制器一次對於一個分割區進行位址解碼。以這 15方式組配該暫存器將確保在第一分割區中執行之脈絡(例 如,作業系統)不存取第二分割區中之記憶體,並且在第二 分割區中執行的脈絡(例如,作業系統)不存取第一分割區中 之記憶體,因此避免,例如,記憶體存取抵觸之問題發生。 第4圖展示基本電腦系統4〇〇的實施例,該系統包含一 20脈絡切換記憶體系統,例如,記憶體系統200或3〇〇。電腦 糸統400包含一處理器402,其被搞合至一非依電性記惊體 404以及被耦合至一 s己憶體控制器202,該控制器形成被分 割之記憶體(例如,記憶體系統200或300)的部份。記惊體控 制器202同時也被耦合至儲存裝置406。 12 200836062 處理器402可以是任何種類之處理器,自例如英特爾公 司之Pentium處理器的一種可規劃之一般用途處理器,至一 種特定應用積體電路⑽〇。另外,處理器4〇2包含某些板 上記憶體,例如,隨機存取記憶體(Ram)或另-種之記憶 5體,其之所有的或部份的可被使用以執行某些程式。 可在其板上記憶體中執行之處理器4〇2的程式之一是 -種特許代碼模組(亦即,具有師業純大之記憶體存取 特許權的代碼模組);在展示的實施例中,該特許代碼模組 是-種認證碼触(ACM)彻,Μ在其他實補中,該特 許代碼模組可以是-種系統管理模式(smm)模組、一種欲 入式微控制器、或-些其他的特許代碼模組。在一實施例 中,該特許代碼模組是至少為解開該組態暫存器的唯一手 段,雖然在其他實施例中,該特許代碼模組除了可解開暫 存器之外,亦可以將暫存器加以組配並且可將它們加以鎖 15疋。在其他實施例中,該特許代碼模組可解開該模組,同 時組配和鎖定可藉由一種非特許代碼模組被進行。允許一 特許代碼模組(例如,一ACM)至少解開暫存器可能是需要 的,因為其將確保至少解開暫存器可藉由被設計以在平臺 上活動之特許代碼而被完成。 10 在展示之實施例中,ACM403以數位方式被簽署並且加 密地被聯結至平臺。聯結藉由計算ACM之公用密鑰的雜湊 碼以及將它與駐放在晶片組或處理器硬體中之雜湊碼相比 較而被達成。ACM使用處理器現有的安全機器延伸(SMX) 能力而啟動。當ACM啟動時,處理器402載入該模組進入特 13 200836062 殊記憶體中(如習知之認證碼RAM,或ACRAM)以供確認與 執行。在一實施例中,ACRAM可使用一特殊模式之處理器 快取而被製作,雖然在其他實施例中其可不同地被製作, 例如,藉由使用板上RAM之一部份。ACRAM的其他製作 5 也是可能的。 一旦ACM被載入ACRAM中,則處理器核對該數位簽 名-至-平臺之聯結,並且接著使用該數位簽名以核對模組它 本身。如果該數位簽名成功地被核對,則處理器4〇2在特許 的環境中開始ACM之執行,在該特許環境中該ACM存取控 10制器中之特許的以及々命 令。當這些命令利用一ACM被發出時,控制器將實踐它們。 該鎖定/解開命令控制該控制器之記憶體控制/組態暫存器 的鎖定以及解開。本發明實施例可使用這些特殊的命令以 解開該記憶體組態暫存器、改變該記憶體組態以產生記憶 15體分割、並且再鎖定組態暫存器以確保該記憶體分割可藉 由該被簽署之ACM被引動/不引動。 使用這些命令及/或其他ACM 403以製作一安全切換 (其使記憶體之分割導通或關閉),以允許在記憶體中=同的 〇s脈絡之間切換。這可藉由能夠在—分割之内隱匿或顯露 2〇 2記憶體分肢/或記憶體额之方式轉作記憶體組態 暫存器地被完成。在-實施例中,這記憶體操作包含設定 暫存器,因而它們一次對於一個分割區進行位址解碼,其 允。午控制益管理多數個重疊的實際記憶體範圍而可一次看 以此方式’ ACM可提升健制轉碼邏輯以強制 14 200836062 執行該分隔而有效地分割實際的記憶體成為兩個或多個分 隔範圍。這允許一種更快的OS脈絡之切換並且增加切換機 構之安全。 處理器402被柄合至非依電性記憶體404,其可以是任 5何種類之非依電性記憶體;例如,包含快閃記憶體、ROM、 EPROM以及其類似者。另外,非依電性記憶體4〇4可儲存 處理器402操作它的基本功能所需要之基本輸出入系統 (BIOS) ’直至一作業系統可被載入以取代電腦之操作為 止。BIOS啟動電腦、建立基本的連接、執行在載入一作業 10系統之前的某些功能並且載入該作業系統。 第5A圖展示處理程序5〇〇之實施例,藉由該處理程序, 一脈絡切換記憶體系統,例如,系統2〇〇或系統3〇〇在電腦 系統400中操作。開始於區塊5〇2,電腦系統啟動。在區塊 504,該系統,例如,藉由使用其之m〇s,載入一認證碼模 15組(ACM)並且確認該ACM。在該ACM被確認之後,在區塊 506,系統載入第一脈絡—在這實施例中,該第一作業系 統一進入第一記憶體分割區。在區塊508,系統載入第二脈 絡一在這實施例中,第二作業系統一進入第二記憶體分割 區。在該作業系統被載入它們分別的分割區並且被啟動之 20後’在區塊510,組態暫存器被解開,並且在組態暫存器中 之參數被設定,因而第一分割區之位址解碼發生。藉由以 這方式被設定之組態參數,系統認知第一分割區並且將第 二分割區視為根本不存在。一旦在組態暫存器中之參數適 當地被設定’則在區塊514,組態暫存器將利用該ACM被鎖 15 200836062 定。藉由將第-記憶體分割區進行位址解瑪,在區塊5i6, 系統使用第一作業系統而執行。 當執行第-作業系統時,在區塊518,電腦系統檢查是 否-指示已經被接收以切換作業系統。如果沒有指示被接 5收,則在區塊516,系統繼續執行第一作業系統。如果在區 塊518,-切換作業系統之指示被接收,則在區塊52〇,acm 解開組態暫存器並且在區塊522設定組態暫存器中之參 數,因而控制器接著對於第二分割區進行位址解碼;藉由 以這方式被设疋之組態參數,記憶體控制器認知第二分割 10區並且將第一分割區視為完全不存在。當組態暫存器中之 參數被設定時,在區塊524組態暫存器藉由ACM被鎖定並且 在區塊526第二作業系統開始執行。 當執行第二作業系統時,在區塊528,電腦系統檢查是 否一指示已經被接收以切換作業系統。如果沒有指示被接 15收,則在區塊526系統繼續執行第二作業系統。如果在區塊 528,一用以切換作業系統之指示被接收,則處理程序返回 至區塊510,其中在區塊51〇,該ACM解開組態暫存器並且 在區塊512設定組態暫存器中之參數,因而控制器再次對於 第一分割區進行位址解碼。一旦在該組態暫存器中之參數 20被設定’則在區塊514,組態暫存器利用該ACM被鎖定並且 在區塊516,第一作業系統開始執行。 第5B圖展示處理程序550之另一實施例,藉由該處理程 序’一脈絡切換記憶體系統(例如,系統200或系統300)在電 腦系統400中操作。處理程序55〇不同於處理程序5〇〇之處主 200836062 要地在載入作業系統序列。在處理程序500中,在開始時兩 個作業系統皆被載入,並且切換作業系統包含在兩者之間 的變換。在處理程序550中,第一作業系統被載入並且被使 用以開始,並且當需要時,第二作業系統被載入、被啟動 5並且被操作。但是,一旦第二作業系統被載入,兩者皆在 3己fe、體中並且切換作業糸統涉及在兩者之間的轉換,如在 處理程序500中。 開始於區塊552,電腦系統啟動。在區塊554,系統, 例如’藉由使用其之基本輸出入系統(BI〇s),載入一認證 10碼模組(ACM)並且確認該ACM。在該ACM被確認之後,在 區塊556, ACM設定該組態暫存器以針對第一分割區做位址 解碼;利用以這方式被設定之組態參數,該系統認知該第 一分割區並且將第二分割區視為完全不存在。在區塊558, 當ACM鎖定該組態暫存器之後,則在區塊56〇,系統載入第 15 一脈絡一在這實施例中,第一作業系統一進入第一記憶體 分剔區,啟動該作業系統並且執行該第一作業系統,在區 塊562。 20 在區塊564,系統等待_指示以改變脈絡(亦即,作業 系統)°如果沒有指示被接收,則系統繼續執行第_作㈣ 統。如果在區塊564-改變作„統之指示被接收,則在區 塊566該續解_組態暫存器、設定該㈣暫存器以在區 塊568對於第三分進行位址解碼,並且在區塊別再次 鎖定該組態㈣ϋ。在歡频態暫存^之後, 塊572載入第二作業系統進入第二分割區,在區塊574⑽ 17 200836062 該第二作業系統,並且執行該第二作業系統。 在區塊576,系統等待一指示以改變作業系統。如果沒 有指示被接收,該系統繼續執行第二作業系統。如果在區 塊576改艾作業系統之指示被接收,該八⑽在區塊⑺ 5解開組態暫存器、設定該組態暫存器以在區塊58〇對於第二 純區進行位址解碼,並且在區塊582再次鎖定該組態暫存 為。在鎖定该組態暫存器之後,該系統切換至該第一作業 系統,其已經先前地被載入第一分割區中,並且在區塊s84 執行該第一作業系統。 1〇 在區塊586,系統等待一指示以改變作業系統。如果沒 有指不被接收,則該系統在區塊584繼續執行第一作業系 統。如果一改變作業系統之指示在區塊586被接收,則該 ACM在區塊588解開該組態暫存器、設定該組態暫存器以在 區塊590對於該第二分割區進行位址解碼,並且在區塊592 15再次鎖定該組態暫存器。在鎖定該組態暫存器之後,該系 、、’充切換至5亥弟一作業糸統,其已經先前地被載入第二分割 區中,並且在區塊594執行該第二作業系統。 在區塊596,系統等待一指示以改變作業系統。如果沒 有指示被接收,則該系統在區塊594繼續執行第二作業系 20 統。如果一改變作業系統之指示在區塊596被接收,則處理 程序返回至區塊578,其再次地經由脈絡切換序列並且在區 塊584執行該第一作業系統。 第6A圖展示組態暫存器604之實施例,該組態暫存器 604可被使用以組配並且分割在脈絡切換記憶體系統(例 18 200836062 如’系統200或系統300)中之印产 ,. _ [思體。組悲暫存器604之操 >弟5A圖所展不之處理程序5〇〇被討論 =展示之處理程序55。的組態暫存器之操作是類: 主要的差異料定、解開以及組配該組態暫存器之順 5 ^組態暫存訓包含:個部份:第—部細是儲存用 記μ分#m之參數並且第三部份_是儲存用於 第刀割區之參數。在—啟始狀態舰中,組態暫存器6⑽ ㈣m在第-部份6()6中之參數被設定以對於該第一 =體分割區進行位址解碼,而在第二部份6叫之參數被 ίο。又定以不對於第二記憶體分割區進行位址解碼。在第4圖所 展不之操作實施例中,組態暫存器狀態6〇2對應至區塊514 和 516。 當記憶體控制器202或302在區塊518接收一指示以改 變脈絡時一在這實施例中,藉由改變作業系統一組態暫存 15裔604自狀態602轉變至狀態610,其已藉由認證碼模組 (ACM)被解開;狀態61〇因此對應至區塊520。在組態暫存 器604被解開之後,其自狀態61〇轉變至狀態612,於其中供 用於第一記憶體分割區之參數被設定,因而對於該部份沒 有位址編碼並且對於該第二記憶體分割區之參數被設定, 20 因而對於該部份進行位址解碼。在狀態612之組態暫存器 604的設定實際上調換在狀態602之設定並且對應至區塊 522。最後,在狀態614之組態暫存器604再次被鎖定在狀態 612之組態中;狀態614因此對應至區塊524和526。為自第 二作業系統將脈絡切換回至第一作業系統,組態暫存器604 19 200836062 以反向之順序大致地重新被組配。換言之,該組態暫存器 開始在狀態614(對應至區塊524和526),並且轉變至狀態 612(對應至區塊510),接著轉變至狀態610(對應至區塊 512),最後轉變至狀態602,其對應至區塊514和516。 5 第6B圖展示組態暫存器658之另一實施例,該組態暫存 器658可被使用以組配與分割在被分割之記憶體系統(例 如,系統200或系統300)中的記憶體。相對於組態暫存器 604,組態暫存器658包含一次儲存用於一記憶體分割區之 參數的一個部份。為允許脈絡切換,組態暫存器658可被耦 10合至一個別之記憶體652,其分配第一部份654以儲存用於 苐一記憶體分割區之參數,以及第二部份656以儲存用於第 二記憶體分割區之參數。 如同組態暫存器604,組態暫存器658之操作將參考第 5A圖展示之處理程序5〇〇被討論。在一啟始狀態65〇,組態 15暫存器658被鎖定並且在暫存器中之參數被設定以對於該 第一記憶體分割區進行位址解碼。供用於第二分割區之參 數被儲存在記憶體652之部份656中。在第5A圖展示之操作 實施例中,組態暫存器狀態650對應至區塊514。 當記憶體控制器202或302在區塊518接收一指示以改 20變脈絡時一在這範例中,藉由改變作業系統一組態暫存器 658自狀態650轉變至狀態660,其已藉由認證碼模組(acm) 被解開;狀態610因此對應至區塊520。在組態暫存器658被 解開之後,其自狀態650轉變至狀態660,於其中在組態暫 存器658和記憶體652之間的資料通訊被建立。一旦資料通 20 200836062 訊被建立,供用於第一記憶體分割區之參數自組態暫存器 658被複製至記憶體652之第一部份654,而用於第二記憶體 分割區之參數自記憶體652之第二部份656被複製至組態暫 存器658。在狀態662,用於第二記憶體分割區之參數被載 5 入組態暫存器658中,並且在狀態662之組態暫存器658的設 定對應至區塊522。最後,在狀態664之組態暫存器604以狀 態662之組態被鎖定;狀態664因此對應至區塊524。 為將脈絡自第二作業系統切換回至第一作業系統,組 悲暫存器658以相反順序大致地重新被組配。換言之,該組 10悲暫存器開始在狀態664(對應至區塊524和526)並且轉變至 狀態662(對應至區塊5丨0),接著轉變至狀態66〇(對應至區塊 512),最後轉變至狀態650,其對應至區塊514和510。 在上面包含摘要說明之本發明所展示之實施例的說 明,不欲限制本發明於所揭示之精確的形式。熟習本技術 15者應明白,本發明此處所說明之特定實施例以及範例,是 為展示目的,而在本發明範缚之内可有各種等效之修改。 本發明的沒些修改可依照上面的詳細說明教示被達成。 應可理解被使用於下面的申請專利範圍中之措辭不是 用⑽制本發明於說明中被揭示之特定實施例以及申請專 利1巳圍&之’本發明範翁整體地由下面的申請專利範 圍,其將依據所建立之申請專利範圍闡明的原理被推斷, 而決定範圍。 【圖式簡單明】 第1圖是多重作章系& 卞系糸、、先% i兄之目耵記憶體實作的方塊 21 200836062 圖。 第2圖是被分割之記憶體脈絡切換系統的實施例之方 塊圖。 第3圖是被分割記憶體脈絡切換系統之另一實施例的 5 方塊圖。 第4圖是包含被分割記憶體脈絡切換系統之實施例的 電腦系統實施例之方塊圖。 第5 A圖是展示被分割記憶體脈絡切換系統(例如第2圖 或第3圖中所展示之一者)之操作的實施例之流程圖。 10 第5B圖是展示被分割記憶體脈絡切換系統(例如第2圖 或第3圖中所展示之一者)之操作的另一實施例流程圖。 第6A圖是展示用於分割記憶體之記憶體組態暫存器的 實施例之方塊圖。 第6B圖是展示用於分割記憶體之記憶體組態暫存器的 15 另一實施例之方塊圖。 【主要元件符號說明】 100…基本記憶體系統 102···記憶體控制器 104···儲存裝置 106…記憶體 200…脈絡切換記憶體系統 202···記憶體控制器中樞 204···組態暫存器 206…通訊通道 208···通訊通道 210-216···記憶體模組 210a_216a、310a-316a···第一 列記憶體 210b-216b、31〇b-316b…第二 列記憶體 300···脈絡切換記憶體系統 302···記憶體控制器 22 200836062 3〇4···組態暫存器 306-308…通訊通道 310-316···記憶體模組 400···基本電腦系統 402…處理器 404···非依電性記憶體 406…儲存裝置 500…處理程序 502〜528、552〜596···區塊 550…處理程序 602···鎖定狀態 604···組態暫存器 606···第一分割區暫存器 608···第二分割區暫存器 610-614···狀態 650···啟始狀態 652…記憶體 654···第一分割區參數 656···第二分割區參數 658···組態暫存器 660-664…狀態 23

Claims (1)

  1. 200836062 十、申請專利範圍: L 一種裝置,該裝置包含·· 一記憶體控制器,其中包括一組態暫存器; 轉a至该€憶體控制器之一通訊通道;以及 麵合至該通輯道m記憶體分割區,其 中該組態暫存器中之組態參數被設定成會使得該記憶 體控制器一次認知一個分割區。 2.如申請專利第丨項之裝置,其中該龍通道包含第 —和第二通訊通道’並且其中該第—記憶體分割區搞合 ,該第-通訊通道,而該第二記憶體分龍職合至該 弟—通訊通道。 3·如申請專利範圍第丨項之裝置,其中該通訊通道包含第 :和第二通訊通道,並^其中各該第—記憶體分割區和 j第二記憶體分㈣皆肋合至該第-通訊通道和該 第二通訊通道二者。 4.如申請專利範圍第旧之裝置,其中各記憶體分割區包 括至少一個記憶體。 5·如申請專利範圍第1項之裝置,其中該組態暫存器中之 該等參數被設定成會使得該記憶體控制器一次對於一 Zfe體分割區進行位址解碼。 申明專利範圍第1項之裝置,其中該組態暫存器包含 第一組悲暫存器以及一第二組態暫存器,各個暫存器 中具有用於一對應記憶體分割區之組態參數,其中一次 一個暫存器被設定來對於其對應記憶體分割區進行位 24 200836062 址解碼。 7. 如申請專利範圍第1項之裝置,其進一步地包含一個或 多個另外的記憶體分割區。 8. 如申請專利範圍第1項之裝置,其中該組態暫存器可被 5 鎖定以及被解開。 9. 如申請專利範圍第8項之裝置,其中至少該解開動作係 由比一作業系統具有更大之記憶體存取特許權的一特 許代碼模組來進行。 10. 如申請專利範圍第9項之裝置,其中該特許代碼模組是 10 解開該組態暫存器之唯一手段。 11. 如申請專利範圍第9項之裝置,其中該特許代碼模組是 一獲認證碼模組(ACM)、一系統管理模式(SMM)模組、 或一嵌入式微控制器。 12. —種系統,該系統包含: 15 一處理器; 耦合至該處理器之一儲存裝置;以及 耦合至該處理器之一記憶體系統,該記憶體系統包 含·· 一記憶體控制器,其中包括一組態暫存器; 20 耦合至該記憶體控制器之一通訊通道;以及 耦合至該通訊通道之第一和第二記憶體分割 區,其中該組態暫存器中之組態參數被設定成會使 得該記憶體控制器一次認知一個分割區。 13. 如申請專利範圍第12項之系統,其中該通訊通道包含第 25 200836062 一和第二通訊通道,並且其中該第一記憶體分割區耦合 至該第一通訊通道,而該第二記憶體分割區耦合至該第 二通訊通道。 14. 如申請專利範圍第12項之系統,其中該通訊通道包含第 5 —和第二通訊通道,並且其中各該第一記憶體分割區和 該第二記憶體分割區皆被耦合至該第一通訊通道和該 第二通訊通道二者。 15. 如申請專利範圍第12項之系統,其中該組態暫存器中之 該等參數被設定成會使得該記憶體控制器一次對於一 10 記憶體分割區進行位址解碼。 16. 如申請專利範圍第12項之系統,其中該組態暫存器包含 一第一組態暫存器以及一第二組態暫存器,各個暫存器 對應於該等記憶體分割區中之一個分割區。 17. 如申請專利範圍第12項之系統,其進一步地包含一個或 15 多個另外的記憶體分割區。 18. 如申請專利範圍第12項之系統,其中該組態暫存器可被 鎖定以及被解開。 19. 如申請專利範圍第18項之系統,其中至少該解開動作係 由比一作業系統具有更大之記憶體存取特許權的一特 20 許代碼模組來進行。 20. 如申請專利範圍第19項之系統,其中該特許代碼模組是 解開該組態暫存器之唯一手段。 21. 如申請專利範圍第19項之系統,其中該特許代碼模組是 一獲認證碼模組(ACM)、一系統管理模式(SMM)模組、 26 200836062 或一嵌入式微控制器。 22· —種方法,其包含下列步驟: 设定-記憶體控制器之一組態暫存器中的組態參 數,使得該記憶體控制n認知由_通訊通道耦合至該記 憶體控制器之-第-記憶體分割區,而非由該通訊通道 輕合至該記憶體控制器之一第二記憶體分割區;以及 重新設定該等組態參數,使得該記憶體控制器認知 該第二記憶體分割區,而非該第一記憶體分割區。 23·如申請專利範圍第22項之方法,其中該通訊通道包含第 一和第二通訊通道,並且其中該第一記憶體分割區耦合 至該第一通訊通道,而該第二記憶體分割區耦合至該第 一通訊通道。 24·如申请專利範圍第22項之方法,其中該通訊通道包含第 和第二通訊通道,並且其中第一記憶體分割區和該第 二記憶體分割區兩者皆耦合至該第一通訊通道以及該 第二通訊通道。 25.如申請專利範圍第22項之方法,其中設定該組態暫存器 中之組態參數使得該記憶體控制器認知該第一記憶體 刀d £而非$亥弟一 §己憶體分割區,或認知該第二記憶體 分割區而非該第一記憶體分割區之步驟,包含設定該等 組態參數以一次對於一個分割區進行位址解碼。 26·如申請專利範圍第22項之方法,其進一步地包含耦合_ 個或多個另外的記憶體分割區至該通訊通道。 27·如申請專利範圍第22項之方法,其進一步地包含鎖定和 27 200836062 解開該組態暫存器。 28.如申請專利範圍第27項之方法,其中至少該解開步驟係 由比一作業系統具有更大之記憶體存取特許權的一特 許代碼模組來進行。 5 29.如申請專利範圍第28項之方法,其中該特許代碼模組是 解開該組態暫存器之唯一手段。 30.如申請專利範圍第28項之方法,其中該特許代碼模組是 一獲認證碼模組(ACM)、一系統管理模式(SMM)模組、 或一嵌入式微控制器。 28
TW096148393A 2006-12-28 2007-12-18 用於快速與安全記憶體脈絡切換之裝置與方法 TWI385515B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/648,455 US20080162866A1 (en) 2006-12-28 2006-12-28 Apparatus and method for fast and secure memory context switching

Publications (2)

Publication Number Publication Date
TW200836062A true TW200836062A (en) 2008-09-01
TWI385515B TWI385515B (zh) 2013-02-11

Family

ID=39048359

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096148393A TWI385515B (zh) 2006-12-28 2007-12-18 用於快速與安全記憶體脈絡切換之裝置與方法

Country Status (6)

Country Link
US (1) US20080162866A1 (zh)
KR (1) KR101077673B1 (zh)
CN (1) CN101211313A (zh)
DE (1) DE102007062745B4 (zh)
GB (1) GB2445249B (zh)
TW (1) TWI385515B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364943B2 (en) * 2008-02-29 2013-01-29 Lenovo (Singapore) Pte. Ltd. S3 BIOS operating system switch
US8095824B2 (en) 2009-12-15 2012-01-10 Intel Corporation Performing mode switching in an unbounded transactional memory (UTM) system
TWI437430B (zh) 2010-04-07 2014-05-11 Phison Electronics Corp 動態切換分割區方法、記憶卡控制器與記憶卡儲存系統及電腦程式產品
CN102236612B (zh) * 2010-04-22 2014-11-19 群联电子股份有限公司 动态切换分割区方法、记忆卡控制器与记忆卡储存系统
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
TWI528162B (zh) * 2011-01-26 2016-04-01 威盛電子股份有限公司 電腦系統及其作業系統切換方法
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
CN103246455A (zh) * 2012-02-01 2013-08-14 深圳市天方信安电子科技有限公司 一种屏幕双解锁系统
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
JP5914145B2 (ja) * 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
US10771448B2 (en) 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
GB2534693B (en) 2013-11-08 2017-02-08 Exacttrak Ltd Data accessibility control
US9880971B2 (en) 2013-12-20 2018-01-30 Rambus Inc. Memory appliance for accessing memory
US9934047B2 (en) * 2014-03-20 2018-04-03 Intel Corporation Techniques for switching between operating systems
CN106155568B (zh) * 2015-04-03 2019-03-01 华为技术有限公司 一种存储分区的方法及终端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682283A (en) * 1986-02-06 1987-07-21 Rockwell International Corporation Address range comparison system using multiplexer for detection of range identifier bits stored in dedicated RAM's
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
KR20010071560A (ko) * 1998-06-22 2001-07-28 콜린 콘스터블 가상 데이터 기억 시스템
US20020095557A1 (en) * 1998-06-22 2002-07-18 Colin Constable Virtual data storage (VDS) system
US6323755B1 (en) * 1998-08-19 2001-11-27 International Business Machines Corporation Dynamic bus locking in a cross bar switch
US6662173B1 (en) * 1998-12-31 2003-12-09 Intel Corporation Access control of a resource shared between components
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US6754753B2 (en) * 2001-04-27 2004-06-22 International Business Machines Corporation Atomic ownership change operation for input/output (I/O) bridge device in clustered computer system
CN1260629C (zh) * 2001-11-28 2006-06-21 希旺科技股份有限公司 具有动态存储器配置的电子周边卡
US6910127B1 (en) * 2001-12-18 2005-06-21 Applied Micro Circuits Corporation System and method for secure network provisioning by locking to prevent loading of subsequently received configuration data
US7698689B2 (en) * 2002-08-13 2010-04-13 Phoenix Technologies Ltd. Method for meeting SMI duration limits by time slicing SMI handlers
US7272664B2 (en) * 2002-12-05 2007-09-18 International Business Machines Corporation Cross partition sharing of state information
KR100673681B1 (ko) * 2004-03-25 2007-01-24 엘지전자 주식회사 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법
US20060143411A1 (en) * 2004-12-23 2006-06-29 O'connor Dennis M Techniques to manage partition physical memory
US20060179191A1 (en) * 2005-02-10 2006-08-10 Young David W Covert channel firewall

Also Published As

Publication number Publication date
TWI385515B (zh) 2013-02-11
US20080162866A1 (en) 2008-07-03
DE102007062745A1 (de) 2008-07-17
GB2445249A (en) 2008-07-02
KR101077673B1 (ko) 2011-10-27
GB2445249B (en) 2010-08-04
CN101211313A (zh) 2008-07-02
GB0724756D0 (en) 2008-01-30
DE102007062745B4 (de) 2010-12-23
KR20080063189A (ko) 2008-07-03

Similar Documents

Publication Publication Date Title
TW200836062A (en) Apparatus and method for fast and secure memory context switching
US4237534A (en) Bus arbiter
JP4242420B2 (ja) 多数のコンピューティングプラットフォームにおけるosにとらわれない資源共有
US9189246B2 (en) Method and apparatus to support separate operating systems in partitions of a processing system
US20110088032A1 (en) Method and apparatus for configuring a hypervisor during a downtime state
US7647509B2 (en) Method and apparatus for managing power in a processing system with multiple partitions
US7444681B2 (en) Security measures in a partitionable computing system
US20080215702A1 (en) Merging scalable nodes into single-partition merged system using service processors of nodes
EP1949231B1 (en) Method and apparatus for maintaining a partition when booting another partition
US10037170B2 (en) Motherboard and a method for boot-up
US8041932B2 (en) Method and apparatus for assigning devices to a partition
JP2018536958A (ja) ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ
JP2013508839A5 (zh)
US20100293357A1 (en) Method and apparatus for providing platform independent secure domain
JP2002183105A (ja) スケーラブルパラレル処理のためのユニット同期化を処理する方法
KR100709385B1 (ko) 컴퓨터 시스템
US7519802B2 (en) System and method for configuring a computer system
Cisco Maintaining and Administering the RSFC
Cisco Virtual Configuration Register
US7356678B2 (en) Security measures in a partitionable computing system
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
JP2006268519A (ja) マルチosに対応するbios制御方式
JPS59116857A (ja) マイクロプログラム制御デ−タ処理装置
JPH11161487A (ja) ソフトウェアの不正使用防止装置及び方法
JP2001184256A (ja) システムlsi

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees