九、發明說明: 【發明所屬之技術領域】 本發明係有關於具有轉換狀態變更的資料處理機制,尤指_ 種跳躍指令與轉換狀態變更操作能同時被執行的資料處理機制。 【先前技術】 於習知電腦系統中,資料與程式指令被儲存於可由一執行中 程式(亦即一處理程序(process))使用一虛擬位址或一實體位址來 加以定址之一記憶體儲存裝置中。於使用者模式(Userm0de)中之 處理程序係使用虛擬位址來存取記憶體,而於核心模式(Kernel mode)中之處理程序則可使用虛擬位址或實體位址’當使用虛擬位 址時,其必須被轉換為相對應之實體位址以存取該電腦系統中之 實體記憶體,此外,虛擬位址與實體位扯之間的映射(mapping)係 元全地由核心模式處理程序(Kernel mode process)所控制,如此一 來,除非核心模式處理程序允許,否則的話,使用者模式處理程 序(User mode process)便不能存取記憶體。此記憶體位址轉換 (memory address translation)係由稱之為記憶體管理單元(Mem〇ry
Management Unit,MMU)的硬體裝置所執行,其允許實體記憶體 空間被動態地配置。制上,使用者模式處理程序總是將轉換狀 態開啟(亦即制虛擬健),細,核心模式處理程序則可選擇 性地將轉絲關啟(亦即使用虛擬位址)或者將轉換狀態酬 (亦即使用實體位址)。經常執行之記憶體空間的存取包含有操取 程式指令以及讀取與寫入程式資料之操作。 1334572 當-電腦系統正執行—使財模式處理 部事件時’則該使用者祺式處理程序將會被二:::外 辟腦系統將切換至依攄不同的使用情況而處於轉換開t =關閉狀態下之核心職理程序(亦即—外部事 ====:— 大〜、下執仃的好處係為資 枓可被保相避免觀;„料空_被_地㈣,如此、 可用實體記賴之短雜顿於造成_讀。細,當於轉換 關閉狀態之下存取記憶體時,則具林·;肖耗記憶體管理單元的轉 換資源、在祕錯誤·機日林需準備和依賴任何轉換資訊,以 及藉由略騎有必_職倾以增加記缝存取效能等 點。既然轉朗啟狀態與轉換關狀態有其各自優點,作業系統 與主要之核d賦程式便有需要於不同的使線況下獅於轉換 開啟狀態或轉換關閉狀態中執行。 ' 於習知系統中,當一中斷發生時,轉換狀態係為首先更新至 一預定轉換狀態值’該系統接著便等待此一轉換狀態變更 (translation statechange)已完成的確認訊息,之後則跳躍(jump) 至使用新轉換狀態下之核心模式中斷處理程式(Kemel m〇de interrupt handling program)。上述操作的過程係内含於第i圖中指 示從轉換開啟狀態(101)切換到轉換關閉狀態(103)的,,中斷,, 指示線(102)中。如第1圖所示,預定之新的轉換狀態係為轉換 關閉狀痛。 7 1334572 的、、二圖=腦系統之核心模式程式中-正常中斷她^ -王圖、、依據習知技術而將電腦系統基於記憶體管理單元之 轉換開啟狀態與轉換關閉狀態的不同所執行的不同步驟分置 右兩欄中。該正常巾斷處理料包含以下步驟. ' 步驟⑻:執行使用者模式下之程式資料處理,以及接❹卜中斷. 步驟1〇2 :由硬體接受該中斷’從使用者模式轉魅核心模式,盘 =啟㈣切換至轉換關閉狀態,並於轉換關閉 狀態下開始擷取核心模式程式; 步雜於 狀態之下’進行核心模式的程式指令榻取與 步驟105 .=核心模式程式指令將轉換狀態變更至轉換開啟狀 步驟107 .執仃—指令轉待轉換狀態變更的運 步驟應::,_矣開啟狀態下 二 寫入資料)之核心模式程式; 7 °買取/ 步驟U3 :=權開啟狀態之下,執行更多核心模柄程式資料處 狀態變更至轉換關閉狀 步驟1154-核^切^令來將轉換 態; 步驟 讀 117:執行—指令轉待轉換狀態變更的運 步驟卿(伽)場於_赚 取/寫入資料)之核心模式程式;订(_指令’ 步驟123 :於轉換關閉狀態 下,歸更多如料的程式資料處 8 理; v驟125彳<核‘一模式下的程式中斷處理返回至被中斷之使用者模 式的程式; 》驟127 .於轉換開啟模式之下,自中斷點之後繼續進行使用者 模式的資料處理。 田系”’先因為-巾斷事件而移至核心模式下進行程式資料處理 寺(步驟1〇3),轉換狀祕先被變更至_轉換關閉狀態以便能順利 的進仃-使用者模式至一核心模式的切換。在該轉換關閉狀態 下,备於某些㈣處理完成之後’便有需要執行(呼叫卜些需於轉 換開啟狀態之下執行的函式,所以,此時—連串之習知個別操作 乎」便由㈣指令所執行以完成此函式。首先,—指令被用於變 更沐換狀fe從轉換關閉狀態至轉換開啟狀態(步驟⑽),然後, 於執行函式呼叫步驟(步驟刚中之跳躍指令)之前,一特定指令先 被執行以使硬體系統等待轉換狀態已完成變更之確認訊息(步驟 W)。實際上’步驟109中的跳躍指令不需要於轉酬啟狀態下執 行|然而,因為步驟109中的跳躍指令無法保證步驟ιΐ3中的指 令係處於細姐狀態之下,為了確❹驟ιΐ3的程式指令娜 真的於轉換開啟狀態下來開始執行,步驟1〇7中之指令必需先於 步驟109中_躍齡之前來執行。 址之恆等映她㈣管理單摘 ==)’理由4触這些齡時,它們所處哺換狀態可依據 …τ序的不同杨為開啟或關,所以不能明確地被判定。第 圖中的步驟1〇7(與步驟m)係被置於對應轉換開啟狀 態與轉換 2 1'之^右兩攔之間,用以表示此時轉換狀態的不禮定性。 j使1指令恆等映射於其指令位址上是可行的,但實際 ,,、Γ:窒:難!仃’首先,如此作將使得利用轉換關閉狀態以節 ’。己fe體⑼早⑦之轉換資源的功能失效;此外,因為這些指令 ^轉換步驟必倾扣執行,程式的執行效率將會降低;另外, 1 目較於一般的非怔等映射記憶體管理機制,如此作則很難管理記 十思體的配置。 予以執行_、牛習知指令_皮 m中之γ八而t 及步驟119),對於步驟117與步驟 々°同樣具有指令位址怪等映射的需求。 【發明内容】 狀態Ϊΐ=法=:目的之-在於提供-種關於跳躍與轉換 & w解決習知技術之問題。 因此’本發明—實施例係揭露一種方法 轉換謝執行—第一函式 二二: 令一第二函式中一目標位址並在同—時二: 1334572 轉換狀態變更以切換至—第二轉換狀態;其中,於—第 中儲存該跳躍指令之後一下一指令之一位址以作為一返二 本發明之另一實施例包含:於一第一轉換狀態中執行一第一 =式中一連串指令;執行—跳躍指令以跳躍至-第二函式中一目 標位址並在同—時間啟動且完成—轉換狀態變更以切換至二 轉換狀態;於—第—暫存器中儲存該跳躍指令之後之—下一指令 • 之&位址以作為一返回位址;於一第二暫存器中儲存該第-轉換 狀態作為-返回轉換狀態;以及於執行該第二函式中—連串指令 .:後:執行-返回指令以從該第-暫存器中擷取該返回位址二 攸5亥第一暫存H t嫩該返_換狀態,啟動及完成-轉換狀態 變更以切換至該返回轉換狀態及同—時間跳躍至該返回位址/ 【實施方式】 本發明的目的在於同時執行《與轉換狀態變更的操作以提 供更有效率_換狀態較管理,本發明亦可消除作業系統核心 私式的記«位_換_管輯遭遇之轉位㈣射的需求/問 題。本發日赠法將由下述實施例_屬說日絲加以敘述。 於所揭朗第-實施辦,本發财法顧供麟同時執行 跳躍與轉換狀態變更的操作(第2圖中的步驟2〇5與步驟216)。 於核心模式情細晰(其係於帽城㈣__ tr酬ι〇η)2〇2已發生之後’從步驟2〇3開始執行),記憶體管理單 下勃^換狀‘⑪最初係為轉換關閉狀態,然後’於該轉換關閉狀態 仃—連串核心模式的指令處理之後,有'必要予以呼叫(跳躍 至:個需要執行於轉換開啟狀態下之核心函式,因此,本發明 片i|/乎叫指令(步驟2〇5)此時便被執行予以完成函式呼叫程 換、中跳躍/乎叫指令於執行時會同時完成一轉換狀態變更以切 八至—第二轉換狀態與跳躍至―目標位址。本發明之跳躍/呼叫指 令將儲存跟隨此卿/呼叫齡之後下—齡的位址至一暫存器 ^稱作-鏈結暫存器(Hnkregister)) ’用於之後作為一跳躍/返回指 令的返回目標位址;此外,本發明之跳躍/呼叫齡另將儲存一原 α專換狀心(亦即第2圖中之轉換關閉狀態)於一轉換狀態堆疊 暫存雖ansuion state stack register)中以便後續作為一跳躍/返回 指令的返回目標轉換狀態。 本發明之跳躍/呼叫指令方法可避免習知技術中所提及之怔等 映射所造成的_,既賴換狀態於娜跳躍/呼叫指令的過程中 未曰是更則跳躍/呼叫指令之指令位址便沒有轉換與否的問題, 而可使用先前指令之同—轉換_狀縣進行賴以使跳躍/呼叫 指令可正確地騎。當本㈣之跳料叫齡完斜,轉換狀離 變更的操侧必定會完成,而胁娜目標齡之記,紐管理單“、 元所執行的轉換狀態亦可明確地決定出來。所以,於執行样明 之跳躍/呼叫指令時便沒必要為了跳躍/0乎叫指令於執行過程中X的 轉換狀·錢更而建立-虛擬位址等於—實體位址之轉換映射。 12 明4572 〃於本^明之跳躍/呼叫齡完成之後,需要於轉換開啟狀態中 執行的第二核心函式中的指令便可被予以執行(步驟213),當此- 連=之& 7 ·里(成時’此—流程有需要返回至必須於轉換關閉 狀‘悲中執灯的第-核心函式,因此,類似於跳躍/呼叫指令,本發 明跳躍/返回指令於此時間點便予以執行以完成函式返回程序 驟训)’其中跳躍/返回指令職執行而同時完成—轉換狀態變更 而切換至-返回的原始轉換狀態並跳躍至原始函式中之一返回位 • ^。當該返龍址由本發明之跳躍/咖指令從該鏈結暫存器中所 頁取夺。亥返回的原始轉換狀態也同時自該轉換狀態堆疊暫存器 中被拮貞取出來。 本發明之靡!/咖齡紋可贱f知技射酸及之怪等 映射所造成的問題。既然轉換狀態於掘取跳躍/返回指令的過程中 =曾變更,則該跳躍/返回指令之指令位址便沒有轉換與否的問 ,題’使用先前齡之同—轉触概態來進行賴以使跳躍/ 返=日令可正確地執行。當本發明之财齡完成時,轉換 “變更的操作必定會完成,且用於擷取目標返回指令之記憶體 管理單元所執行的轉換亦可明確地決定出來。所以,於執行料 明之跳躍/返回指令時便沒必要為了跳躍/返回指令於執行過射 的轉換狀態變更喊立—虛難址等於—實體健之轉換映射。 明參考第3圖’第3圖顯示三個子圖3八、犯與冗, 對應於本發明之第一實施例、第二實施例與第三實施例。於此第 丄幻4572 301係以單 實施例中,轉換狀態堆疊暫存器303與鏈結暫存器 獨的暫存器來分別實作(第3A圖)。 ° 於第二實施例中,轉換狀態堆疊暫存器可利用鏈結指標暫存
較低位元來付實作(第3B圖),亦即,轉換狀態的編 馬可儲存於返回位址之較低位元(未使用位元)中,因此,當返 回位址被存取時,則返回轉換狀態亦可同時被存取。 I
⑥於本發明_露之第三實關巾,轉錄態堆疊可於鍵結指 標暫存器501之較高位元中予以實作(第3C圖),亦即轉換狀態 的編碼可儲存於返龍址之較高位元(未使用位元)中,因此了 當返回位址被存取時,則返回轉換狀態亦同時會被存取。值得注 意的是,上述兩個實施例均符合本發明之精神。 第2圖係為本發明方法應用於電腦系統中核心模式程式之中 斷處理程序之-實施觸流賴,其係將基於記憶體管理單元之 轉換開啟狀態與轉換關閉狀態的不同所執行的不同步驟分置於左 右兩攔。本發明方法包含以下步驟: 步驟201 :於使用者模式下進行程式資料處理與接收—中斷; 步驟2〇2 :硬體接受該中斷,從使用者模式切換至核心模式,從轉 換開啟狀態切換為轉換關閉狀態,並於轉換關閉狀態 下開始擷取核心模式程式; 1334572 之下’進行核心模柄程式指令 步驟203 :於轉換關閉狀態 擷取與 資料處理; 步驟205 :於轉換開啟模式下 下執行(擷取指令、讀取/寫°入〇=需於轉換開啟狀態 以確保轉換朗較會跟細=之^心模式程式’ 步驟213:於轉換開啟狀態 $ R時完成; 理; 下執付多核心模式的程式資料處 步驟前轉嶋(脚轉軸㈣跳躍 式,以確伴::Γ_態下執行的核心模式程 步驟223 :於轉換關閉狀態之下 態變更會跟跳躍操作同時完成; ’執行更多核心模式的程式資料處 斷之使用者 步驟225··從核心财財之帽處理料返回至被令 模式程式; 繼續執行使用者模 步驟227:於轉換開啟模式之下,從中斷點之後 式的資料處理。 此實:之Γ實施例不需要利用一轉換狀態堆叠暫存器,於 中、、假疋先前轉換狀態係為已知 躍操作係於轉換開啟狀態下執行,則— _如果一跳 狀態下執行.相仿祕呆作必須於轉換關閉 m/ 果—跳躍操作係於轉換_狀態下執行, 則—返鳴作料於轉_啟㈣下執行。 執订 1334572 於本發明之第五實施例中,電腦系統中之記憶體管理單元可 以有個別的指令擷取轉換狀態與資料存取轉換狀態,於此一實施 例中,轉換狀態將包含指令轉換狀態資訊與資料轉換狀態資訊兩 者,而可被瞭解的是這些資訊沒有必要儲存於鏈結指標暫存器之 同一部份中,請注意,此僅為一範例說明,而本發明且不限於此。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範 秦 目所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 【圖式簡單說明】 第1圖為習知使用記憶體管理單元轉換開啟與關閉狀態之電腦系 統中核心模式程式之中斷處理程序十所執行之方法的流程 圖。 e 實施例之使用記憶體管理單元轉換開啟與關閉 狀態之電腦系統中核心模式程式之中斷處理程序中所執行 之方法的流程圖。 第3A圖為本發明暫存器架構之第—實施例的示意圖。 弟3B圖為本發明暫存器架構之第二實施例的示意圖。 第圖為她輪_之第三細的示意圖。 鏈結暫存器 【主要元件符號說明】 301 ' 4〇TT~5〇f 303"