TWI334572B - Method for performing jump and translation state change at the same time - Google Patents

Method for performing jump and translation state change at the same time Download PDF

Info

Publication number
TWI334572B
TWI334572B TW96114889A TW96114889A TWI334572B TW I334572 B TWI334572 B TW I334572B TW 96114889 A TW96114889 A TW 96114889A TW 96114889 A TW96114889 A TW 96114889A TW I334572 B TWI334572 B TW I334572B
Authority
TW
Taiwan
Prior art keywords
state
transition
instruction
conversion
register
Prior art date
Application number
TW96114889A
Other languages
English (en)
Other versions
TW200842704A (en
Inventor
Chuan Hua Chang
Hong Men Su
Original Assignee
Andes Technology 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 Andes Technology Corp filed Critical Andes Technology Corp
Priority to TW96114889A priority Critical patent/TWI334572B/zh
Publication of TW200842704A publication Critical patent/TW200842704A/zh
Application granted granted Critical
Publication of TWI334572B publication Critical patent/TWI334572B/zh

Links

Landscapes

  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Description

九、發明說明: 【發明所屬之技術領域】 本發明係有關於具有轉換狀態變更的資料處理機制,尤指_ 種跳躍指令與轉換狀態變更操作能同時被執行的資料處理機制。 【先前技術】 於習知電腦系統中,資料與程式指令被儲存於可由一執行中 程式(亦即一處理程序(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"

Claims (1)

  1. 十、申請專利範圍: .種改變一轉換狀態及於程式函式間進行跳躍的方法,其包含 有: 於第一轉換狀態下,執行一第一函式中一連串之指令;以 及 執行一跳躍指令以跳躍至一第二函式中一目標位址,並在同 一時間執行並完成一轉換狀態變更以切換至一第二轉 換狀態。 女申明專利知圍第〗項所述之方法,其中執行該跳躍指令之步 驟另包含有: 於一第一暫存器中,儲存該跳躍指令之後一下一指令之一 位址以作為一返回位址;以及 於-第二暫存器中’儲存該第一轉換狀態以作為一返回轉 換狀態。 3. 如申凊專利範圍® 2項所述之方法,另包含: 執仃:返回指令以從該第—暫存器帽取該返回位址及從該 第-暫存H巾娜魏轉換狀態,以及執行且完成一 轉換狀態變更以切魅該返_換狀祕同—時間跳躍 至5玄返回位址。 4. 如申請專利_第2項所述之方法,其中該第—暫存器中所儲 17 • 存之該返回位址具有未使用之位元,且所實作之該第二暫存 器被整合至該第一暫存器之該未使用之位元中。 5·如申請專利範圍第4項所述之方法,其中該第一暫存器中所儲 存之5亥返回位址中之該未使用之位元係位於該第一暫存器之 一較低位元部分。 ‘ 6’如巾π專她圍第4項所述之方法’其巾該第一暫存器中所儲 存之麵回位址+該未制之位元係位於該第_暫存器之一 較向位元部分。
    如申請專利範圍第2項所述之方法,其中每—轉換狀態包含一 指令轉換狀態與-資料轉換狀態,且儲存該第一轉換狀態於 該第二暫存H中之步驟包含儲存―第—指令轉換狀態與一第 一資料轉換狀態於該第二暫存器中。 8.如申請專利範圍第1 驟另包含: 項所述之方法,其中執行該跳躍指令之步 於-第-暫存θ中’儲存於該跳躍指令之後—下—指令之— 位址以作為—返回位址。 9.如申請專利範圍第8 一轉換開啟狀態, 項所述之方法’其t該第—轉換狀態係為 且该第二轉換狀態係為—轉換關閉狀態。 18 1334572 10.如申請專利範圍第8項所述之方法,其中該第一轉換狀態係為 一轉換關閉狀態,且該第二轉換狀態係為一轉換開啟狀態。
    Η 、圖式: 19
TW96114889A 2007-04-27 2007-04-27 Method for performing jump and translation state change at the same time TWI334572B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW96114889A TWI334572B (en) 2007-04-27 2007-04-27 Method for performing jump and translation state change at the same time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW96114889A TWI334572B (en) 2007-04-27 2007-04-27 Method for performing jump and translation state change at the same time

Publications (2)

Publication Number Publication Date
TW200842704A TW200842704A (en) 2008-11-01
TWI334572B true TWI334572B (en) 2010-12-11

Family

ID=44211983

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96114889A TWI334572B (en) 2007-04-27 2007-04-27 Method for performing jump and translation state change at the same time

Country Status (1)

Country Link
TW (1) TWI334572B (zh)

Also Published As

Publication number Publication date
TW200842704A (en) 2008-11-01

Similar Documents

Publication Publication Date Title
TWI293145B (en) Memory caching apparatus and method, computing system, and machine-accessible medium including data
TWI252427B (en) Control register access virtualization performance improvement in the virtual-machine architecture
TWI233737B (en) Memory management system and method providing linear address based memory access security
TWI342492B (en) Method of providing extended memory protection
CN101802796B (zh) 防止多核处理器中的写回竞争
TWI808869B (zh) 硬體處理器及處理器
CN104246694B (zh) 聚集页错误信令和处理
TW201207615A (en) Memory access control
TW200828273A (en) Hard disk cache device and method
JP2016534431A (ja) ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上
TWI254848B (en) Method and related apparatus for performing error checking-correcting
JP2008515069A5 (zh)
JP2016511493A (ja) システムメモリ管理ユニットコンテキストを保存および復元するための方法および装置
CN101587447A (zh) 支持事务存储的系统及基于预测的事务执行方法
TW201246064A (en) Multilevel conversion table cache for translating guest instructions to native instructions
TW201113807A (en) Data processing engine with integrated data endianness control mechanism
TWI262389B (en) Host bridge, computer system, and method for providing access security for a memory
US9009411B2 (en) Flexible control mechanism for store gathering in a write buffer
TW201035866A (en) Microcontroller with special banking instructions
TWI351642B (en) Reducing stalls in a processor pipeline
TW201237630A (en) Method and computer system for processing data in a memory
TW200905555A (en) Caching of microcode emulation memory
TW200304594A (en) System and method of data replacement in cache ways
TWI332627B (en) Method and electronic apparatus for micro-code execution
TWI334572B (en) Method for performing jump and translation state change at the same time