TWI224280B - Restarting translated instructions - Google Patents

Restarting translated instructions Download PDF

Info

Publication number
TWI224280B
TWI224280B TW090123666A TW90123666A TWI224280B TW I224280 B TWI224280 B TW I224280B TW 090123666 A TW090123666 A TW 090123666A TW 90123666 A TW90123666 A TW 90123666A TW I224280 B TWI224280 B TW I224280B
Authority
TW
Taiwan
Prior art keywords
instruction
instructions
state
page
sequence
Prior art date
Application number
TW090123666A
Other languages
English (en)
Inventor
Edward Colles Nevill
Andrew Christopher Rose
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
Application granted granted Critical
Publication of TWI224280B publication Critical patent/TWI224280B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

一 A7 發明說明(
修墳 ,沿 一 發 〇 t>· ί〇 是辭; i , r-V 了 π 1冬 i提 0 4· 絰濟郞智慧財產局員X消費合怍fi印製 本發明係關於資料處理系統。更特定地,本發明係關 於資料處理系統,其具有一可操作的處理器核心用來執行 第一指令組的指令及一可操作的指令轉碼器將一第二 指令組的指令轉碼為可被該處理器核心執行之適當的米 式。 ' 景: 提供可與一處理器核心搭配操作之指令轉碼器是習 知的,其中該處理器核心具有一本族(native)指令組用來將 非本族(non-native)指令轉碼為可被該處理器核心執行之本 族指令。雖然此一方法在延伸一資料處理系統的性能上是 有吸引力的,但其亦帶來某些困難及複雜性。 其中的一項問題為如何管理間斷訊號。處理系統應儘 快地回應間斷訊號是較佳的。這,在控制即時操作的系統上 是非常重要的。間斷潛候期(lateney)可以是一關鍵的性能參 數且是使用最壞的情況來加以測量。因此,當執行本族指 令時,將間斷訊號安排成其會在目前執行中的本族指令完 成之後被回應的方式係習知的。 在非本族指令被轉碼為本族指令的系統中,經常發生 的是一單一的非本族指令會被轉碼成多於一個的本族指 令。因此,如果一間斷在執行代表一單一的非本族指二 一串本族指令時發生的話,則該非本族指令可出 一部分且該處理系統的狀態會變成不定。處理此情況=一 第5頁 (請先閲讀背面之注意事項再填寫本買) 訂· 線 1224280 A7 _____B7 _ 五、發明説明() ...............f (請先閱讀背面之注意事項再填寫本頁) 個方法為提供額外的硬體其會在接收到一間斷時被啟動 用以儲存該處理系統目前的狀態使得該狀態可在該間斷 之後重新開始之前被恢復,因此任何被部分完成之非本族 指令都可被往前實施直到完成為止。然而,此一方法仍據 有以下的缺點:產生額外的硬體經常性支出(overhead),大 幅增加複雜性及因為需要在服務間斷之前儲存該處理系 ζ ϋ 統的狀態而降低間斷效能。 :ΰ 另一種方法為控制該系統使得非本族指令如原子般 .'0切 被對待’即一間斷要到一非本族指令已完全被執行之後才 、、會被服務,此方法仍存在著對間斷潛候期有不利的影響的 >:'、 .vf.' 内' 容:缺點。 :ΐ: Η 在指令組間進行轉碼之習知系統的例子及其它的背 i · 景資訊可在以下的文獻中找到:美國專利第5,805,895號; 線 '〇 .£ 第 3,955,180 號;第 5,970,242 號;第 5,619,665 號;第 5,826,089號;第 5,925,123號;第 5,875,336號;第 5,937,193 號;第 5,953,520號;第 6,021,469號;第 5,568,646號;第 5,758,115號;第5,367,685號;IBM技術揭示手冊,1 998年 3 月,308-309 頁,’’System/370 Emulator Assist Processor For a Reduced Instruction Set Computer” ; IBM技術揭示手冊,1996年 7 月, 548-549 頁,” Full Function Series/1 Instruction Set Emulator” ; IB Μ 技術 揭示手冊,1994年 3月,605-606 頁,”Real-TimeCISC Architecture HW Emulator On A RISC Processor” ; IBM技術揭示手冊,1998 年 3 月,272 頁 » ^Performance Improvement Using An EMULATION Control Block”; IBM技術揭示手冊,1995年 1月,537-540 頁,’’Fast 第6頁 本纸張尺度適用中國國家標準(CNS)A4規格(210x297公釐) 1224280 A7 B7 五、發明説明() 修煩 正.讀 .:f委 變示 Φ 背t 外 s\·. 容·1« 准 :?> ΰ 正提 。之
Instruction Decode For Code Emulation on Reduced Instruction Set Computer/Cycles System” ; IBM 技術揭示手冊,1 993 年 2 月, 231-234 頁,” High Performance Dual Architecture Processor” ; IB Μ 技術 揭示手冊,1989年 8月,40-43 頁,’’ System/370 I/O Channel Program Channel Command Word Prefetch” ; ΊΒΜ技術揭示手冊,1985 年 6 月,305-306 頁,”Fully Microcode-Controlled Emulation Architecture” ; IBM技術揭示手冊,1972年 3月,3074-3076 頁,’’OpCodeand Status Handling For Emulation” ; IBM技術揭示手冊,1982年 8 月, 954-956頁,” On-Chip Microcoding of a Microprocessor With Most Frequently Used Instructions of Large System and Primitives Suitable for Coding Remaining Instruction” ; IBM 技術揭示手冊,1983 年 4 月,5576-5577 頁,’’Emulation Instruction” ; S. Furber所著 ’ ARM System Architecture’ 一書;Hennessy and Patterson所著,Computer Architecture: A Quantitative Approach’ 一書;及 Tim Lindholm and Frank Yellin所著 ’The Java Virtual Machine Specification’ 一書。 當執行非本族指令時’強調是達到低間斷潛候期的迫 切需要,若考慮到要將這樣的系統使用在即時應用’如安 全氣囊控制系統或防煞車鎖死系統’其中最差情況的間斷 潛候期可能是一安全的重要參數。 發明目的及概述匕 本發明的一個態樣提供了用於處理資料的設備’該設 備包含: (i) 一處理器核心,其可係搡作的用以執行被一第一指 本纸張尺度適用中國國家標準(CNS)A4規格(21GX297公爱) (請先閱讀背面之注意事項再填寫本頁) 丨裝· 訂. 線 Α7 ^ ------------ 五、發明說明() 令組的指令所指定之操作; (ii) 一可操作的 指人Μ me 的扣令轉碼器,用來將一第二指令組# ^ ^ 第—扎令組的指令之轉碼器輸出tfl 现,該第二指今細Mr , 數 、夕一指令藉由使用一或多個輸入變 内 ίι々ΙΙ 煩讀永k員明示 ert
(請先閱讀背面之注意事項再填寫本頁W 數來指定-將被執行的操作; (出)一間斷管理哭甘 勃〜^ 器其回應一間斷訊號用以在一目前正 執仃中的操作執行穿 人 仃7^ 了之後間斷對應於該第一指令組的 知令的操作; > % ^ 用來在該間斷之後重新開始執 仃;其中 (V)該指令轉碼器係可操作的用以產生對應於該第— 知令組的指令之一 你主 況歹1的一或多組轉碼器輸出訊號用來 2該第二指令組的該至少一指令,每一序列被安排成在 内的最後-個操作未被執行之前該一或多個輸入 變數將不會被改變;及 (1)在執行代表該第二指令組的該至少一指令的一序 列操作期間發生一間斷時: (a) 如果該間斷發生在該序列中的一最後操作開始 執仃之刚的話,則該重新開始邏輯在該序列的一第一操 作處重新開始執行;及 (b) 如果該間斷發生在該序列中的一最後操作開始 執行之後的話’則該重新開始邏輯在該序列接下來的下 一個指令處重新開始執行。 本發明可將非本族指令轉碼為一等同於數個本族指 第8育 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7 'y .:I.?. 五、發明説明( ,令的形式用以執行並可在 雞斧下裎徂户 不會對重新開始導入不當的困 難度下k供在一對應於一本 +换知令的操作完成 斷服務。本發明係藉由將被轉 灸的間 7 ^ ^ 轉碼的操作序列安排成在最後 一個操作被執行之前不會對 ㈣的輸入變數作改變來 達到上述功效。因此,如罢4 如果該間斷是在最後一個操 之前發生的話,則非本族指令可 乍執仃 金1U被重新開始,因為輪
入變數將不會被改變,而如I 如果該間斷是在最後一個操作開 始執行之後發生的話,則該蛊铋 只J忍敢後一個刼作將會被安排成且 該重新開始邏輯可從該間斷發 J叫知玍af接在該非本族指令之 後的下一個指令處繼續執行。 應被瞭解的是’來自於第二(非本族)指令組的指令可 被完全轉碼為第一(本族)指令組的指令。然而同樣有可 能的是來自於第二指令組的指令可被轉碼為控制訊號的 形式其彳以一種與來自於第_指令組的指令相同的方式 來控制該處理器核心。另一種可能性為.,來自於第二指令 組的指令可具有超越來自於第一指令組的指令的能力I 從第二指令組的指令推導出的控制訊號可以一種超越第 一指令組的指令所能提供的功能的方式來控制該處理器 核心的操作。 雖然該重新開始邏輯可以是一專屬的硬體,但在本發 明的較佳實施例中該重新開始邏輯可以是該指令轉碼的 一部分。該指令轉碼器產生控制該非本族指令的操作序列 的轉碼器輸出訊號且能夠在該間斷發生時立即決定最後 一個操作是否已經被執行。此資訊因而可立即被提供給在 第9頁 本纸張尺度適用中國國家標準(CNS)A4規格(210χ 297公爱) ..............¥: (請先閲讀背面之注意事項再填寫本頁) 訂· 線- A7
煩讀委—明示 €‘5°截 日所提之 修Lt..nir藤變1實質内容是^;^子^11.0 1224280 五、發明説明() ^令轉碼^的4新開始邏輯用以決定該發本族指令 疋要整個重新開始或是下一個指令被重新開始。 、記錄該系統在-間斷發生時應如何重新開始的方便 =方法為儲存—指向元(p〇inter)於一重新開始位置,而該 2向元在最後一個操作執行時會向前進。此指向元可以是 -程式的計數器數值其指向一儲存一目前被轉碼的指令 的冗憶體位置的記憶體位址。 雖然本發明可應用於許多不同種類的指令組上,但其 在忒第一指令組為指定依據存放在一堆疊内的堆疊運算 元來執行操作的指令組時是特別的有用。此等以堆疊為基 礎的系統典型地從該堆疊讀取它們的輸入運算元並將它 們的輸出運算元寫入該堆疊。當模擬此操作時,本發明可 確保在最後一個操作的執行開始之後堆疊運算元才會被 蓋寫。以相同的方式’都疊運算元要在最後—個操作的執 行開始之後才會被添加至該堆疊中。 應被暸解的是,該系統控制一特定的非本族指令應如 何執行的輸入變數可延伸超越被明確地宣告之在該發本 族指令内的運算元。詳言之,周邊系統狀態變數可影響一 給定的指令應如何執行,因而本發明提供任何此等系統狀 態變數在最後一個操作的執行開始之前都不會被改變。 對於確保系統狀態於最後一個操作執行之前不會被 改變的需求可以是一有效率地產生經過轉碼的操作序列 的一項約束。因此,雖然一間斷潛候期可被保留,但發本 族指令的處理速度則會受到影響。然而,此影響可在一以 第10頁 ^紙張尺度適用中國國家標準(CNS)A4規格(210X297公愛)" ----
(請先閲讀背面之注意事項再填寫本頁J
1224280 A7 B7 五、發明説明( 1¾:c2 二 煩讀委興明示 年 月、:曰M提之 奢1£-.^~^4择#^吏實質.5>|?-1-;舍准子修|.1£。 暫存器為其· rU …、悉礎的處理器核心藉由讓存放在該處理器核心 的暫存器内的堆疊運算元依據一在最作被執行之前不會 被更新的對映狀態而被對映至堆疊操作,使得在最後一個 操作之則輪入運算元不會從該堆疊被移出及輸出運算元 不會被添加至該堆疊,且不會對可被轉碼的指令種類或玎 被達成之經過轉碼的序列的精簡性施加太大的約束的系 統中被降低。 本發明的另一態樣提供一種處理資料的方法,該方法 包含的步驟為: (0執行被一第一指令組的指令所指定的操作; (II) 將一第二指令組的指令轉碼為對應於該第一指令 組的指令之轉碼器輸出訊號,該第二指令組的至少一指令 藉由使用一或多個輸入變數來指定一將被執行的操作; (III) 在一目前正執行中的操作執行完了之後間斷對應 於該第一指令組的指令的操作以回應一間斷訊號; (iv)在該間斷之後重新開始執行;其中 (V)轉碼步驟產生對應於該第一指令組的指令之一訊 列的一或多組轉碼器輸出訊號用來代表該第二指令組的 該至少一指令,每一序列被安排成在該序列内的最後一個 操作未被執行之前該一或多個輸入變數將不會被改變;及 (vi)在執行代表該第二指令組的該至少一指令的一序 列操作期間發生一間斷時: (a)如果該間斷發生在該序列中的一最後操作開始 執行之前的話,則該重新開始邏輯在該序列的一第一操 第111 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) C請先閱讀背面之注意事項再填寫衣專 έ·· 訂· 線 1224280
五、發明説明( 煩讀委_明示9^9.·2γ6:0所提之 嗲!£.‘.薄無變吏實質内容是否准予修.11。 作處充新開始執行·,及 (b)如果該間斷發生在該序列中的一最後操作開始 執行之後的活,則該重新開始邏輯在該序列接下來的下 一個指令處重新開始執行。 本發明亦提供一電腦程试產品其儲存依據上述技術 來控制 般用途電,腦的電腦程式。 本發明之上述及其它目的,特徵及優點從底下參照顯 示出本發明的較佳實施例之附圖的說明中將會變得更加 明顯。 凰式簡單說明: 第1及2圖示意地顯示舉例性的指令管線架構; 第3圖更詳細地顯示一擷取階段架構; 第4圖示意地顯示在擷取階段中從被緩衝的指令字組讀取 不定長度非本族指令; 第5圖示意地顯示用來執行處理器核心本族指令及需要轉 碼的指令的資料處理系統; 第6圖示意地顯示舉例性指令及階段的一序列,堆疊運算 元儲存所用的暫存器的内容,對映階段及需要轉瑪的 指令與本族指令之間的關係; 第7圖示意地顯示一非本族指令的執行而成為一序列本族 指令; 第8圖為一 “王圖’其顯示該指令轉碼器是如何以保留被 轉碼的指令的間斷的方式來運作的; ^ 第12頁 本紙張尺度適用中國國家標準(CNS)A4規格(210x297公爱)--~ (請先閲讀背面之注意事項再填寫本頁) 丨裝· 、言 線 1224280 A7 B7 五、發明説明() 第9圖示意地顯示藉由使用硬體及軟體技術將Java位元組 碼轉碼為ARM作業碼; 第10圖示意地顯示介於一硬體基礎的轉碼器,一軟體基礎
A E ·+“Ί , I ^ -:;D 的間斷器及軟體基礎的排程器之間的控制流路; 第11及12圖顯示使用一以計.時器基礎的方式來控制排程 作業的另一種方诀;及 第1 3圖為·一訊號圖其顯不第12圖的電路的訊號控制作業。 圖號對照說明: 30 指令管線 32 擷取階段 34 本族指令解碼階段 36 執行階段 38 記憶體存取階段 40 回寫階段 42 指令轉碼器階段 46,48 ! 本族指令解碼器 50 非本族指令解碼器 52 執行階段 54 記憶體階段 56 回寫階段 60 擷取邏輯 62 指令字組緩衝器 64 指令轉碼器 66 旁通路徑 102 資料處理系統 104 處理器核心 106 暫存器庫 108 指令轉碼器 68 Java位元組碼轉碼單元 70 棑程控制邏輯 96 計時器 100 98 AND閘 暫鎖器 發明詳細說明: 第13頁 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) ^•· 、可. 線 1224280 A7 B7 煩讀备—明示f年:月.SM摄之 修正.4每無變t實寶内容是否准予修正。 五、發明説明() 第1圖顯示一種適合使用在以ARM處理器為基礎的系 統上的指令管線3 0的一第一例子。該指令管線3 〇包括一擷 取階段32,一本族指令(ARM/Thumb指令)解碼階段34,一 執行階段36,一記憶體存取階段38及一回寫階段4〇。該執 行階段36,記憶體存取階段35及回寫階段40大致上是傳統 的。擷取階段3 2的下游,及本族指令解碼階段3 4的上游被 提供有一指令轉碼器階段42。該指令解碼器階段42為一有 限狀態機器(finite state machine)其將一不定長度的java 位元組碼指令轉碼為本族ARM指令。該指令轉碼器階段42 能夠實施多步驟操作,因此一單一的java位元組碼指令可 產生一系列的ARM指令其沿著該指令管線3〇的其餘部分 被擷取用以實施由該Java位元組碼指令所指定的操作。單 純的Java位元組碼指令,或可只需要一單一的arM指令來 實施其操作,而更加複雜的Java位元組碼指令,或周圍系 統狀態所主導的情形下,數個ARM指令會被需要用以提供 由該Java位元組碼指令所指定的操作。此多步驟操作發生 在該擷取階段32的下游,因此在從記憶體系統擷取多個經 過轉碼的ARM指令或Java位元組碼時並未花費功率。Java 位元組碼指令以傳統的方式被貯存在記憶體系統内,使得 記憶體系統在支援Java位元組碼轉碼操作時並未受到額外 的限制。 如所示的’該指令轉碼器階段42被提供一旁通路徑。 當不是在一指令轉碼模式中操作時,指令管線3〇可繞過該 指令轉碼器階段42並在未變動的方式下操作用以提供本 第14頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) (請先閱讀背面之注意事項再場寫本頁) ^•. 線 ^4280
、發明說明() 煩讀#—明示 >年 '‘月 曰所提之 ^n;iratlf質内容是否准予修£。 族指令的解碼。 在指令管線30中,指令轉碼器階段42被顯示為產生轉 碼器輸出訊號其完全代表對應的ARM指令且經由一多工 器送至本族指令解碼器34〇該指令轉碼器階段42亦產生某 些額外的控制訊號其可被送至本族指令解碼器34。在本族 指令解碼中的位元空間約束會施加限制至由本族指令所 指定的運算元的範@上。這些限制並不—定會與非本族指 令分享。額外的控制訊號被提供用以送出訛外的指令其指 定由非本族指令所導出的訊號,其可指出貯存在該記憶體 系統内的本族指令。例如,一本族指令可只提供一相對小 數量的位元以用作為一本族指令内的一立即的運算元 域,而非本族指令可允許一延伸範圍且此可藉由使用該等 額外的控制訊號來加以開發用以將該立即的運算元的延 伸部分送至在該經過轉碼的本族指令的外部之本族指令 轉碼器3 4,其亦被送至該本族指令轉碼器3 4。 第2圖顯示另一指令管線44。在此例子中,該系統被 提供兩個本族指令解碼器46, 48以及一非本族指令解碼器 5〇。該非本族指令解碼器50在操作時受到局限,其可被該 執行階段52,該記憶體階段54及該回寫階段%所指定。因 此,該非本族指令解碼器50必需有效地將非本族指令轉碼 為本族操作(其可為一單一的本族操作或一細列的本族操 作),然後提供適當的控制訊號至該執行階段52用以實施 這些本族操作。應被暸解的是,在此例子中,該非本族指 令解碼器沒有產生形成—本族指令的訊號,而是提供指定 第15貫 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公楚) (請先閱讀背面之注意事項再填寫本頁) 丨裝- 線 1224280 A7 B7 五 、發明説明( •本族指令(或延伸的本族指令)操作之控制訊號。該等被產 生的控制訊號未必會與本族指令解碼器46,48所產生的控 制訊號相符。 在操作時,一被該擷取階段5 8所擷取的指令依據使用 所不的反多工器的特定處理#模式而被選擇性地供應至指 令解碼器4 6,4 8或5 01之一者中。 第3圖示意地顯示一指令管線的榻取階段的細節。擷 取邏輯60從一記憶體系統中擷動長度的指令字組並將它 們提供至一指令字組緩衝器62。該指令字組緩衝器62為一 具有兩側之搖擺式緩衝器使得其可同時儲存一目前的指 令字組及一下一個指令字組。當目前的指令字組以完全被 解碼且解碼已前進至該下一個指令字組時,則該擷取邏輯 60將先前之目前的指令字組用將從記憶體中被擷取的該 下一個指令字組來取代,即該搖擺式緩衝器的每一側將以 插入被連著儲存的指令字組的方式被增加二。 在所示的此例子中,一 java位元組碼的最大指令長度 為二個位元。因此,三個多工器被提供用以讓在該字組緩 衝器62的任一侧内的任三個相鄰位元都可被選取且被提 供至該指令轉碼器64。該字組緩衝器62及該屬令轉碼器64 亦被提供一旁通路徑66用來在指令被擷取及解碼時使用。 每一指令字組記憶體被擷取一次並被儲存在字組緩 衝器62内。當該指令轉碼器64實施Java位元組碼變為arm 指令之轉碼時,一單一的指令字組具有多個由其被讀出的 Java位元組碼。當指令轉碼操作被限定在此指令管線内 第16頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公爱) (請先閲讀背面之注意事項再場寫本頁) 裝- 訂· 線 1224280 A7 B7 五、發明説明() 時’不定長度之經過轉碼的本族指令序列可在不需要多此 記憶體讀取及不需消耗記憶體資源下被產生。 l_p_ (請先閲讀背面之注意事項再填寫本頁) 一程式計數器值與目前被轉碼中的每一 Java位元組 碼相關聯。此程式計數器值隨著該管線的階段被傳送使得 如果有需要的話每一階段能.夠使用關於該在處理中之關 於該特定的Java位元組碼的資料。被轉碼為一序列的ARM 指令操作之一 Java位元組碼的程式計數器值直到在該序列 内的最後一 ARM指令操作開始被執行之後才會被增加。以 持續地直接指向在該記憶體内被執行的指令的方式來維 持該程式計數器值可有利地簡化該系統的其它方面,如除 錯(debugging)及分支目標計算。 第4圖示意地顯示從該指令緩衝器62中讀取不定長度 的Java位元組碼指令。在第一階段,一具有長度為一之Java 位元組碼指令下一階段為一 java位元組碼指令其長度為三 位元並跨越從該記憶體被擷取的兩相鄰指令字組。這些指 令字組兩者係存在於指令緩衝器62之内且指令解碼及處 理並未因此跨越被擷取的指令字組的不定長度指令而受 到延遲。當這三個Java位元組碼已從指令緩衝器62被讀取 時’較早被擷取之該等指令字組的再填入可開始,因為後 續處理將以來自於已存在之接下來的指令字組之java位元 組碼的解碼來接續下去。 示於第4圖中的最後階段顯示一第二個三位元組碼指 令被讀取。這再次跨越於指令字組之間。如果前面的指令 予組尚未元成其再填入的話’則該指令的讀取會被^一管線 第17貫 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7 B7 五、發明説明() (請先閲讀背面之注意事項再填寫本頁) ,拖延(stall)而被延遲,直到適當的指令字組已被存入指令 緩衝器62内為止。在某些實施例中,其時機為該管線從未 因為此種行為而拖延。應被暸解的是,該特定的例子為一 相當少發生的情形因為大多數的Java位元組碼都比所示的 t例子短,因此連續兩個跨越於指令字組的解碼是非常不尋 • - ΐ 了々 常的。一有效的訊號|可以一種其能夠顯示出在一 Java位元 :組碼已從該緩衝器被讀出之前該指令字組是否已被適當 | ; 地再填入的方式與在指令绫衝器62内的每一指令字組相 :3 ^ 關聯。 ...'I ϋ 第5圖顯示一資料處理系統1 〇2其包括一處理器核心 / 1 〇4及一暫存器庫106。一指令轉碼器1〇8被提供於該指令 ;f ';,; 路徑内用以將Java虛擬機器指令轉碼為本族的ARM指令 (或與其相對應的控制訊號),其然後可被該處理器核心104 來執行。該指術轉碼器108在本族的ARM指令從該可定址 的記憶體中被擷取時可被跳過。該可定址的記憶體可以是 一 s己憶體系統’如一具有進一步的晶片外(〇ff-chip) RAM 記憶體的快取記憶體。提供該指令轉碼器1 〇 8於該記憶體 系統(特別是該快取記憶體)的下游可讓該記憶體系統的儲 存容量能夠被有效率地使用,因為需要轉碼之緻密的指令 可被儲存在該記憶體系統内且只有緊接在其被送至該處 理器核心104之前被轉成本族指令。 在此例子中之該暫存器庫106包含十六個一般用途的 32位元暫存器,其中四個被設置用來儲存堆疊運算元,即 用來儲堆疊運算元的暫存器組為暫存器r〇,r1,尺2及R3。 第18頁 本纸張尺度適用中國國家標準(CNS)A4規格(210X297公釐) " 贿β 1224280
、發明説明( 該組暫存器可以是空的,部分被填以堆疊運算元或完 全被填人堆疊運算元。目前存放最上_個堆 煩讀委—明示 —‘CJD· δ αι所提之 修1£.太:1:甸^變更實質內容是x'::f, 一'修ί。 (請先閱讀背面之注意事項再場寫本頁} :存器可以是在該暫存器組中之任何―者。應被瞭解的 是,該指令轉碼器可以是十七種不同的對映狀態中的任何 一種,其對應於當所有的暫存器都是空的且四種狀態的四 個組群每一者都對應至被存在該組暫存器内的一不同的 堆疊運算元數目且一不同的暫存器存放最上一個堆叠運 算元時的一種狀態。表1顯示該指令轉碼器1 〇8的狀態對映 的十七種不同的狀態。應被瞭解的是,因一不同數目的暫 存器被用於堆疊運算元的儲存,或一可操控儲存在暫存器 内的資料值之特定的處理器核心所具有之束缚的結果,該 等對映狀態可隨著特定的應用而顯著地變化且表丨只是一 特定應用的一個例子而已。 表1 狀態00000 R〇=空置 Rl =空置 R2=空置 R3=空置 狀態00100 狀態01000 狀態01100 狀態10000 RO=TOS RO=TOS R〇=TOS R0= TOS Rl =空置 Rl =空置 Rl =空置 Rl=T0S-3 R2=空置 R2=空置 R2 = TOS-2 R2 = TOS-2 R3 =空置 R3=TOS-l R3 = TOS-l R3=T0S-1 第19頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公楚) 1224280 A7 _____B7_ 五、發明説明()
狀態00101 狀態01001 狀態011 〇 1 狀態10001 R0=空置 RO = TOS-1 R0= TOS-1 RO = TOS-1 R1=T0S Rl=TOS R1=T0S Rl = TOS R2=空置 R2=空置 R2=空置 R2 = TOS-3 • V R3=空置 R3 =空置 .R3=TOS-2 R3 = TOS-2 狀態00110 狀態0 1 0 1 0 狀態0 1 1 1 0 狀態10010 R0=空置 R0=空置 R0= TOS-2 R0 = TOS-2 f .. Rl =空置 Rl= TOS-1 Rl= TOS-1 Rl = TOS-1 ,'5 1 :二 fl 5。 R2=T0S R2= TOS R2= TOS R2 = TOS CD R3=空置 R3 =空置 R3 =空置 R3 = TOS-3 .... ^ *; 狀態00111 狀態0 1 0 1 1 狀態0 1111 狀態10011 ..二 M R0=空置 R0=空置 R〇=空置 R0 = TOS-3 Rl =空置 Rl =空置 Rl=T0S-2 Rl = TOS-2 R2=空置 R2 = TOS-l R2 = T〇3-l R2 = TOS-1 R3=T0S R3=T0S R3=T〇S R3 = TOS (請先閲讀背面之注意事項再填寫本頁} 在表1中可觀察到的是,該狀態值的頭三個位元顯示 在該暫存器組内的非空置的暫存器。該狀態值的最後兩個 位元顯示存放最上一個運算元的暫存器的暫存器編號。以 此方師,狀態值可很方便地被用來控制一硬體轉碼器或一 軟體轉碼器的操作用以將該組暫存器之目前佔用情形及 該最上一個堆疊運算元目前的位置考慮進去。 如第5圖所示的,一串Java位元組碼,n,J2,13從該 可定址的記憶體系統被送至該指令轉碼器丨〇 8 /該指令轉 第20頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X 297公釐) 1224280 A7 B7 五、發明説明() 煩讀委員明示 日所提之 修正.vr3T4;t更實質内容 y54n;itp 修ito .碼器108然後依據輸入的java位元組碼及該指令轉碼器ι〇8 的瞬間的對映狀態及其它的變數而輸出一 ARM指令(或對 4的控制訊號,可能是延伸的)。所示出的例子顯示Java 位元組碼J1被對映至arm指令A11及。Java位元組碼J2 被對映至ARM指令A21,a22'及A23。最後Java位元組碼j3 被對映至ARM指令A31。每一 Java位元組碼會需要一或多 個對疊運算元作為輸入且會產生一或多個堆疊運算元作 為一輸出。如果在此例子中的處理器核心104為一具有載 入/儲存架構的ARM處理器核心而只有存在在暫存器内的 資料值可被處理的話,則指令轉碼器1 〇8被安排來產生 ARM指令其在需要時可在它們被處理或存到該可定址的 記憶體中之前擁取任何被要求的堆疊運算元至該組暫存 器内,任何目前被存放在該暫存器組内的堆疊運算元被清 出來用以存放被產生之結果堆疊作子。應被瞭解的是,每 一 Java位元組碼可被認為是具有一相關連的,,要求填滿 (require full)”數值以顯示必需在執行之前存在於該暫存 器組内的堆疊運算元的數目以及一,,要求空置(require empty)’’數值其顯示在代表該java位元組碼之該aRM指令 被執行之前必需可用之在該組暫存器中空置的暫存器數 目。 表2顯示最初對映狀態值,要求填滿數值,最終狀態 值及相關聯的ARM指令之間的關係。最初狀態值及最終狀 態值對應於示於表1中的對映狀態。該指令轉碼器1〇8決定 其正轉碼中之一與特定的Java位元組碼相關連的要求填滿 第21頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公楚) (請先閱讀背面之注意事項再塡寫本頁) 丨裝· 、?τ. 線 1224280 A7B7 五、發明説明( 數值。該指令轉碼器(108)依據其具有的最初狀態值決定是 否要在該Java位元組碼執行之前需要載入更多的堆疊運算 元至該組暫存器中。表1顯示最初的狀態及被施加至該Java 位元組碼之要求填滿數值的測試,其一起被施加用以藉由 使用一相關連的ARM指令(或.一 LDR指令)以及當此一堆疊 快取載入操作之後將會被採用的該最終對映狀態來決定 一堆疊運算元是否需要被載入該組暫存器内。實際上,如 果多於一堆疊運算元需要於該Java位元組碼被載入該組暫 存器内的話,則會發生多個多個對映狀態轉變,每一者都 將具有一相關聯的ARM指令將一堆疊運算元載入該組暫 存器中的一暫存器内。在不同的實施例中,可在一單一的 狀態轉變中載入多個堆疊運算元,因而讓對映狀態改變超 出表2中所示者。 表2 .............f (請先閲讀背面之注意事項再填寫本頁) 訂· 最初狀態 要求填滿 最終狀態 00000 >0 00100 00100 >1 01000 01001 >2 01101 01110 >3 10010 01111 >3 10011 01100 >3 10000 01101 >3 10001 01010 >2 01110 01011 >2 01111 01000 >2 01100 00110 >1 01010 00111 >1 01011 00101 >1 01001 如在表2中所示的 ,一被 存器内 之新的堆疊運算元ί #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! #-4] ! 線 動作 LDR R0, LDR R3, LDR R3, LDR R3, LDR R0, LDR R1, LDR R2, LDR R0, LDR R1, LDR R2, LDR R1, LDR R2, LDR R0, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, [Rstack, 第22頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7B7 第 丨二从认號專利案办年&月:審正 五、發明説明(
疊運算元且其將依據該最初狀態被載入該組暫存器中的 一特定的暫存器内。 表3以相同的方式顯示最初對映狀態值,要求空置數 值,最終狀態值及一用來空出該組暫存器中一暫存器以移 動於該初狀態與該最終狀態之間之相關聯的ARM指令之 間的關係(如果一特定的Java位元組碼之要求空置數值顯 示必需在該Java位元組碼被執行之前給予該最初狀態的 話)。以一 STR指令把特定的暫存器值儲存至可定址的記憶 體將隨著那一個暫存器是目前最上面一個堆疊運算元而 改變。 表3 最初狀態 要求空置 最終狀^態 動作 00100 >3 00000 STR R0, [Rstack], #4 01001 >2 00101 STR R0, [Rstack], #4 01110 >1 01010 STR R0, [Rstack], #4 10011 >0 01111 STR R0, [Rstack], #4 10000 >0 01100 STR R1/ [Rstack], #4 10001 >0 01101 STR R2, [Rstack], #4 10010 >0 01110 STR R3, [Rstack], #4 01111 >1 01011 STR R1, [Rstack], #4 01100 >1 01000 STR R2, [Rstack], #4 01101 >1 01001 STR R3, [Rstack], #4 01010 >2 00110 STR R1, [Rstack], #4 01011 >2 00111 STR R2, [Rstack], #4 01000 >2 00100 STR R3, [Rstack], #4 00110 >3 00000 STR R2, [Rstack], #4 00111 >3 00000 STR R3, [Rstack], #4 00101 >3 00000 STR R1, [Rstack]/ #4 ...............¥.........、可.........^(請先閲讀背面之注意事項再填、寫本頁) rI 丨才 匚 η 土 應被暸解的是,在上述的舉例性例子中,該要求填滿 及要求空置條件係互斥的,亦即,對於該指令轉碼器將進 行轉碼的一特定的Java位元組碼而言,在任何一個時間點 只有要求空置或要求填滿條件可以為真。與被選擇的指令 第23頁 本紙張尺度適用中國國家標準(CNS)A4規格(2!0X297公釐) 1224280 A7 _ B7 五、發明説明() ς〇 f I" Ρ -徒 經濟部智慧时產苟員Η消費合阼fi印製 一起被該指令轉碼器1 08使用來支援該硬體指令轉碼器 1 08之指令型板係以這彼此互斥的要件可被符合的方式來 加以選定的。如果此要件沒有被符合的話,則會發生一特 定的Java位元組碼要求一數量的輸入堆疊運算元存在該組 暫存器内’其將無法在代表該Java位元組碼的指令被執行 之後有足夠的空置暫存器來讓執行後的結果被存放在暫 存器内的情狀況。 應被暸解的是,一給定的Java位元組碼將具有一代表 被消耗的堆疊運算元的數目與在該Java位元組碼執行實所 產生的堆疊運算元數目之間的平衡的總淨堆疊動作。因為 被消耗的堆疊運算元數目為執行之前的一個要件且被產 生的堆疊運算元數目為執行之後的要件,所以與每一 java 位元組碼相關聯的要求填滿及要求空置數值必需於該Java 位元組碼被執行之前被滿足,即使是該淨總動作本身將會 被符合亦然。表4顯示一最初終狀態,一總堆疊動作,一 最終狀態及在暫存器使用及最上一個堆疊運算元(TOS)的 相對位置上的一改變之間的關係。一或多個被示於表2及3 中的狀態轉變需要於執行示於第4圖中的狀態轉變之前被 實施用以依據該Java位元組碼的要求填滿及要求空置數值 來建立對於一給定的java位元組碼的預先考量。 最初狀態要求填滿最終狀態動作 〇〇〇〇〇 00000 〇〇〇〇〇 00000 00100 00100 表4 + 1 00101 R1 <-T0S +2 01010 R1 <-T0S-1, R2 <-T0S +3 01111 R1 <-T0S-2, R2 <-T0S- 十4 10000 R0 <-TOS, R1 <_ • T0S-3, + 1 01001 R1 <-T0S + 2 01110 R1 <-T0S-1, R2 <-T0S 第24·頁 1, R3 <- T0S TOS-3/ R2 <- TOS-2, R3 <- T0S-1 (請先閲讀背面之注意事項再填寫本頁)
本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7B7 五、發明説明( ) 00100 +3 00100 -1 01001 +1 01001 +2 01001 -1 01001 -2 5 OHIO ί丨爹煩01110 iL 讀 OHIO 参委01110
参明10011 10011 10011 C 0011
112 3 12 3 + 111 III 10011 00000 OHIO 10011 00100 00000 10011 01001 00100 00000 OHIO 01001 00100 00000
S: '10000 是驳10000 々 10000 :¾ 10000 • m i提 10001 0 ^ 10001 10001 10001
12 3 I I I 01111 01010 00101 00000 10010 10010 10010 10010
12 3 4 12 3 I I I I 二 I 01100 01011 00110 00000 01101 01000 00111 00000 經濟部智慧財產局員工消費合作社印製 1111 oo〇o 1111 1111 o o o o oooo X 1 1 1 1111 11X1 111-—_ 1111 11X1 oooo oooo oooo 01010 01010 01010 01010 112 3 112 3 112 3 + 11- +111 +111 12 12 + +-- 10000 01010 00101 00000 10001·. 01011 00110 00000 looo oloo 0 o 1 o 1 o 1 o 1 o 1 o looo o o 1 o 1 o 1 o oloo looo
R1 <— T〇S-2, R2 <一 T〇S—1, R3 <- T〇S RO <- EMPTY R2 <- TOS R2 <一 T〇S-1, R3 <- TOS R1 <- EMPTY RO <- EMPTY, R1 <- EMPTY R3 <- TOS R2 <_ EMPTY R1 <- EMPTY, R2 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY R3 <- EMPTY R2 <- EMPTY, R3 <- EMPTY R1 <- EMPTY, R2 <_ EMPTY, R3 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY, R3 <- EMPTY RO <- EMPTY RO <- EMPTY, R3 <- EMPTY RO <- EMPTY, R2 <- EMPTY, R3 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY, R3 <- EMPTY R1 <- EMPTY RO <- EMPTY, R1 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R3 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY, R3 <- EMPTY R2 <- EMPTY R1 <- EMPTY, R2 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R2 <- EMPTY, R3 <- * EMPTY RO <- TOS ' R3 <- EMPTY R2 <- EMPTY, R3 <- EMPTY R1 <- EMPTY, R2 <- EMPTY, R3 <- EMPTY R1 <- TOS RO <- EMPTY RO <- EMPTY, R3 <- EMPTY RO <- EMPTY, R2 <- EMPTY, R3 <- EMPTY R2 <- TOS R1 <- EMPTY RO <- EMPTY, R1 <- EMPTY RO <- EMPTY, R1 <- EMPTY, R3 <- EMPTY R3 <- TOS R3 <- TOS-1, RO <- TOS R2 <- EMPTY R1 <- EMPTY, R2 <- EMPTY 第25頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁) . 線* 1224280 A7B7 五、 明説 明發
1111 -—11 1—I 1 ο ο ο ο 一—-1 1—II 1—I 01000 01000 01000 01000 00110 00110 00110 00110 00111 00111 00111 00111 00101 00101 00101 00101 12 12 12 12 1231 1231 123 + +- - ++II + + +- + + +Ι + + + ο 1 ο ο ο ο 1 ο 1 ο 1 ο 1 ο ο ο olio 1 ο 1 ο 1 ο ο ο ο 1 ο ο 01011 01100 10001 00000 01000 01101 10010 00000 01010 01111 10000 00000
R0 <- T〇S RO <— TOS-1, R1 <- T〇s R3 <- EMPTY R2 <- EMPTY, R3 <- EMPTY R1 <- TOS R1 <- TOS-1, R2 <- TOS RO <- EMPTY RO <- EMPTY, R3 <- EMPTY R3 <一 TOS RO <- TOS, R3 <- TOS-1 R1 <- TOS, RO <- TOS-1, R3 <- TOS-2 R2 <- EMPTY RO <- TOS RO <一 TOS-1, R1 <- TOS RO <一 TOS-2, R1 <- TOS-1, R2 <一 TOS R3 <- EMPTY R2 <- TOS R2 <- TOS-1, R3 <- TOS R2 <- TOS-2, R3 <一 TOS-1, R1 <- TOS R1 <- EMPTY (請先閲讀背面之注意事項再填寫本頁) 訂· 線 經濟部智慧財產局員工消費合作社印製 第26頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7 B7 五、發明説明() 應被暸解的是,介於被示於表2,3及4中的狀態及條 件之間的關係可被結合成為一單一的狀態轉變表或狀態 圖表,但為了清楚起見它們在上文中是以分開來的方式被 呈現。 92· ρ· 26 烦«委興明示 年汙 曰所提之 修正^穹無變更實質内容是否准予修王。 (請先閱讀背面之注意事項再塡寫本頁) 介於不同的狀態,條件,及淨動作之間的關係可被用 來界定一硬體狀態機器(以一有限狀態機器的方式)其用來 控制該操作轉碼器1 08的操作的此態樣。或者,這些關係 可由軟體或硬體與軟體的結合來加以模式化。 下面為可能的Java位元組碼之一次組的一個例子其 顯示對於該次組的每一 Java位元組碼而言,與該位元組碼 相關聯的要前填滿,要求空置及堆疊動作數值可與表2,3 及4配合來使用。 ---iconst一0
Operation: Push int constant
Stack: ···=>
Require-Full = 0 Require-Empty = 1 Stack-Action = +1 ---iadd 經¾部噌«^J;— η邦屮本司隹
Operation: Add int : Stack: ···, valuel, value2 => .../ result ί Require-Full = 2 Require-Empty = 0 Stack-Action = -1 : 7 第27頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 Α7Β7 五、發明説明( ---lload一0 Operation: Stack:
Load long from local variable ..., value.wordl, value.word2 Requite-Full = 0 Require-Empty = 2 Stack-Action = +2 --lastore ’令 Operation: r\ :·\ Stack:
Store into long array ..., arrayref, index, value.wordl, value.word2 =>
Require-Full = 4 Require-Empty = 0 Stack-Action = -4 ---land Operation Stack: value2.word2 ---iastore Operation: Stack:
Boolean AND long ..., valuel .wordl, val'uel.word2/ value2 . wordl, ..., result.wordl, result.word2 Require-Full = 4 Require-Empty = 0 Stack-Action = -2 Store into int array ..., arrayref, ind^x, value =>
Require-Full = 3 Require-Empty = 0 Stack-Action = -3 經濟部智慧財產局員工消費合作社印製 ---meg Operation: Stack:
Negate int ..., value => ..., result Require-Full = 1 Require-Empty = 0 Stack-Action = 0 第28頁 (請先閲讀背面之注意事項再填寫本頁)
本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7 B7 五、發明説明() 』.... 煩讀备員辑示 年 月 曰所提之 b M 實f内容是5准$修±.。 下面所示的為每一 Java位元組碼指令的舉例性型 板。所示的指令為ARM指令其實施每一 Java位元組碼之被 要求的行為。暫存器域”TOS-3”,’’TOS-2’’,,,T0S-1”,,’TOS” 及’’T0S + 2”可依據目前被採用的對映狀態而用從表1中被 讚取的適當暫存器指定子來取代。”TOS + n”代表從存放最 上一個堆疊運算元的暫存器算起且是以暫存器值向上計 數在目前存放該最上一個堆疊運算元的暫存器之上第N個 暫存器,直到到達該組暫存器的終端為止,在該點一回返 被指向該組暫存器内的第一個暫存器。 iconst一0 MOV tos+1, #0 lload一0 LDR tos+2, [vars, #4] LDR tos+1, [vars, #0] iastore LDR Rtmp2, [tos-2f #4] LDR Rtmpl, [tos-2, #0] CMP tos-1, Rtmp2, LSR #5 BLXCS Rexc STR tos, [Rtmpl, tos-1, LSL #2] lastore LDR R trap 2, ['tos - 3, #4] LDR Rtmpl, [tos-3, #0] CMP tos-2, Rtmp2, LSR #5 BLXCS Rexc STR tos-1, [Rtmpl, tos-2, LSL # STR tos, [Rtmpl, #4] (請先閲讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 iadd ADD tos-1, tos-1, tos ineg RSB tos, tos, #0 land AND tos-2, tos-2, tos AND tos-3, tos-3, tos-1 一依據上述的技術被一硬體轉碼單元108所執行之一 單一的Java位元組碼的一舉例性的執行序列被示於下面。 第29頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7B7 五、發明説明( 譎執行序列係以一最初狀態前進通過依據被執行的指令 的一序列狀態,產生一序列的ARM指令作為被實施於每一 狀態轉換之動作的結果而來加以顯示的,其整體具有將一 Java位元組碼轉碼為一序列的ARM指令的效果。
Initial state: Instruction: 1) Condition: Require-Full>0 State Transition: 00000 >〇 ARM Instruction(s): 00000 iadd (Require-Full=2, Require-Empty=0/ Stack-Action=- 00100 LDR R0, [Rstack, #-4]!
Next state: Instruction: 1) 00100 iadd (Require-Full=2/ Require-Empty=0, Stack-Action=- ^ Condition: Requite-Full>l State Transition: 00100 >1 ARM Instructions(s): 01000 LDR R3, [Rstack, #-4]! (請先閲讀背面之注意事項再塡寫本頁) 01000
Next state : Instruction: 1) Condition: Stack-Action=-l State Transition: 01000 - Instruction template: ADD tos-1, tos-1, tos ARM 工nstructions(s) (after substitution): ADD R3, R3, R〇 Next state: 00111 iadd (Require-Full=2, Require-Erapty=0/ Stack-Action: 00111 經濟部智慧財產局員工消費合作社印製 第6圖顯示以不同的方式來執行數個其它的Java位元 組碼。第6圖的上方顯示ARM序列及對映狀態及暫存器内 容的改變其是在執行一 iadd Java位元組碼指令時發生 的。最初對映狀態為〇⑼〇〇其對應於在該組暫存器内的所 有暫存器皆為空置。頭兩個ARM指令用來將兩個堆疊運算 元提出(POP)至儲存堆疊運算元的暫存器内且最上一個堆 疊運算元”T0S”的暫存器為R〇。第三個ARM指令實際上執 行加法操作並將結果寫入暫存器R3(其現在變成為最上一 個運算元)同時消耗掉先前存放在暫存器R1内的堆疊運算 第30貫 本纸張尺度適用中國國家標準(CNS)A4規格(210><297公釐) 1224280 A7 _ B7 經濟部智慧財產局員工消費合作社印製 五、發明説明() 煩 土讀委坏員 .考明 -- X. rf: f 年
B .4月S :隹 干曰 修所 t提 〇之 元.,因此產生-1的總堆疊動作。 然後處理前進用以執行兩個Java位元組碼,每一者都 代表兩個堆疊運算元的長載入。第一 J av a位元組碼之2的要 前空置條件立即被符合,因此兩個ARM LDR指令可被發出 並被執行。在第一個長載入Java位元組碼的執行之後,該 對映狀態為0 11 01。在此狀態中,該組暫存器只包含一單 一的空置暫存器。下一個Java位元組碼長載入指令具有一 為2的要求空置數值,其並沒有被符合因此第一被要求的 動作為使用一 ARM STR指令來推移(PUSH)—堆疊運算元 至該可定址的記憶體中。這空出一在該組暫存器内的暫存 器以供一新的堆疊運算元使用,該新的運算元然後可被載 入作為兩個接下來的LDR指令的一部分。如先前所述的, 該指令轉碼可用硬體,軟體,或這兩者的結合來達成。下 面為依據上面所述的技術而產生的一舉例性的軟體譯解 器的片段。 Interpret do iconst 0 do lload 0 LDRB Rtmp, [Rjpc, #1] ! LDR pc, [pc, Rtmp, lsl #2] DCD 0 DCD do一iconst_0 ; Opcode 0x03 DCD do一lload一0 / Opcode Oxle DCD do一iastore ; Opcode 0x4f DCD do一lastore ; Opcode 0x50 DCD do一iadd ; Opcode 0x60 DCD do一ineg ; Opcode 0x74 DCD do—land ; Opcode 0x7f MOV R0, #0 STR R0, [Rstack], H B Interpret LDMIA Rvars, {R0, Rl} STMIA Rstack!, {R0, Rl} B Interpret 第31頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) (請先閱讀背面之注意事項再塡寫本頁)
、^T 線一 1224280 A7 B7 五、發明説明() 經濟部智慧財產局員工消費合作社印製 do_ _iastore LDMDB Rstack!, {R0, Rl, R2} LDR Rtmp2, [r0, #4] LDR Rtmpl, [rO, #0] CMP Rl, Rtmp2, LSR #5 BCS ArrayBoundException STR R2, [Rtmpl, Rl, LSL #2] B Interpret do· _lastore LDMDB Rstack!, {R0, Rl, R2, R3} LDR Rtmp2, [rO, #4] LDR Rtmpl, [r0, #0] •.汽 CMP Rl, Rtmp2, LSR #5 BCS ArrayBoundException :详 STR R2, [Rtmpl, Rl, LSL #3] ! STR R3, [Rtmpl, #4] B Interpret VI do_ _iadd LDMDB Rstack!, {r0, rl} :J_·; ADD rO, rO, rl fS STR rO, [Rstack], #4 B Interpret do_ .ineg LDR r0, [Rstack, #-4]! to σ> RSB tos, tos, #0 STR rO, [Rstack], #4 B 工 interpret do_ _land LDMDB Rstack!, {r0, rl, r2, r3} AND rl, rl, r3 i AND rO, rO, r2 -V STMIA Rstack!, {r0, rl} Q Interpret State 00000 Interpret LDRB Rtmp, [Rjpc, #1] ! LDR pc, [pc, Rtmp, lsl #2] DCD 0 DCD State一〇〇〇〇〇一do一iconst—0 ; DCD.· S t at e一〇〇〇〇〇一do—l1oad一0 / DCD State一〇〇〇〇〇一do—iastore ; DCD State一〇〇〇〇〇一do—lastore ; DCD State_00000_do_iadd ; DCD State一00000_do_ineg ; DCD State一〇〇〇〇〇一do一land ; State 00000 一do_ _iconst 一 0 MOV Rl, #0 B State一00101_Interpret State 00000 __do_ _lload 一 0 LDMIA Rvars, {Rl, R2} B St ate一01010一工interpret State 00000 一d。· 一iastore LDMDB Rstack!, {R0, Rl, R2} LDR Rtmp2, [rO, #4] LDR Rtmpl, [rO, #0] CMP Rl, Rtmp2, LSR #5 BCS ArrayBoundException STR R2, [Rtmpl, Rl, LSL #2] B State 00〇00一工nterpret
Opcode Oxle Opcode 0x4f Opcode 0x50 Opcode 0x60 Opcode 0x74 Opcode 0x7f (請先閲讀背面之注意事項再填寫本頁) 第32頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X 297公釐) 1224280 A7 B7 五、發明説明() State 00000 do Iastore :m讀委M明示
State_00000_do_iadd State一〇〇〇〇〇一do 一 ineg State 00000 do land LDMDB Rstack!, {R0, Rl, R2, R3} LDR Rtmp2, [rO, #4] LDR . Rtmpl, [rO, #0] CMP Rl, Rtmp2, LSR #5 BCS ArrayBoundException STR R2, [Rtmpl, Rl, LSL #3]! STR R3, [Rtmpl, #4] B State一〇〇〇〇〇一Interpret LDMDB Rstack!, {Rl, R2} ADD rl, rl, r2 B State_00101__Interpret LDR rl, [Rstack, #-4]i RSB rl, rl, #0 B State—00101_Interpret LDR rO, [Rstack, #-4]! LDMDB Rstack!, {rl, r2, r3} AND r2, r2, rO AND rl, rl, r3 B State—01010—Interpret LDRB Rtmp, [Rjpc, #1]! LDR pc, [pc, Rtmp, lsl #2] DCD 0 fl. 質 ^^tate—OQlOO一工nterpret 日所提之 修IE。 DCD State一00100一do一iconst一0 ; Opcode 0x03 DCD State· _00100_ _do_ lload一0 ;Opcode Oxle DCD State· 00100 do _iastore ;Opcode 0x4f DCD State_ :00100: _do_ 一Iastore ;Opcode 0x50 DCD State 00100 do iadd Opcode 0x60 (請先閲讀背面之注意事項再填寫本頁) -訂· S t at e一0 010 0一do—i cons t一0 S t a t e一0 010 0一do一11oad—0 State 00100 do iastore 經濟部智慧財產局員工消費合作社印製
State 00100 do Iastore
State 00100 do iadd
State_00100—do_ineg DCD State一00100一do—ineg DCD S t a t e__0 010 0__do_l and MOV Rl, #〇 B State一01001一Interpret LDMIA Rvars了 {rl 厂R2} B State一01110一Interpret LDMDB Rstack!, {r2, r3} LDR Rtmp2, [r2, #4] LDR Rtmpl, [r2, #0] CMP R3, Rtmp2, LSR #5 BCS ArrayBoundException STR R0, [Rtmpl, R3, lsl #2] B State一〇〇〇〇〇一Interpret LDMDB Rstack!, {rl, r2, r3} LDR Rtmp2, [rl, #4] LDR Rtmpl, [rl, #0] CMP r2, Rtmp2, LSR #5 BCS ArrayBoundException STR r3, [Rtmpl, r2, lsl #3]! STR r0, [Rtmpl, #4] B State一〇〇〇〇〇一Interpret LDR r3, [Rstack, #-4]! ADD r3, r3, rO B State一00111一Interpret RSB r0, rO, #0 ~ 第33頁
Opcode 0x74 Opcode 0x7f 線* 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 A7B7 五、發明説明( ) B State· _00100_ Interpret State· 一 00100 一 do· _land LDMDB Rstack!, {rl, r2, r3} AND r2, r2, rO AND rl, rl, r3 B State_ _01010 Interpret State· _〇1000_ •Interpret LDRB Rtmp, [Rjpc, #1] ! LDR pc, [pc, Rtmp, lsl #2] DCD 0 - DCD State一 •01000_ _do_iconst—0 ; Opcode 0x03 DCD State— 01000- _do一 1 load 0 / Opcode Oxle DCD State一 01000 _do 一 iastore f Opcode 0x4f -^ 4 DCD State一 :01000: _do 一 lastore r Opcode 0x50 二 * DCD State一 01000- do一iadd f Opcode 0x60 J :、 … DCD State一 01000- _do__ineg / Opcode 0x7 4 J ... Ί "j DCD State一 01000- _do—land / Opcode 0x7f State_ __01000_ _do_ iconst 一 0 MOV Rl, #0 ! B State一 01101 工nterpret / State_ _01000_ _do _lload__0 LDMIA Rvars, • {rl, •r2} —V:; B State 10010 Interpret ·:、State _0!000_ _do_ iastore LDR rl, [Rstack, • #-4] ! LDR Rtmp2, [R3, #4] LDR Rtmpl, [R3, #0]
State 01000 do lastore (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 S t a t e_010 0 0一do一i add State_01000_do_ineg State 01000 do land CMP rO, Rtmp2, LSR #5 BCS ArrayBoundException STR rl, [Rtmpl, rO, lsl #2] B State一〇〇〇〇〇一Interpret LDMDB Rstack!, {rl, r2] LDR Rtmp2, {r3, #4} LDR Rtiupl, {R3, #0} CMP rO, Rtmp2, LSR #5 BCS ArrayBoundException STR rl, [Rtmpl, rO, lsl #3] ! STR r2, [Rtmpl, #4] B State 一〇〇〇〇〇一Interpret ADD r3, r3, rO B State一00111一工nterpret RSB rO, rO, #0 B State一01000一Interpret LDMDB Rstack!, {rl, r2} AND R0, R0, R2 AND R3, R3, R1 B State一01000一Interpret 線-
State一 State_ State_ State一 State_ State· State_ State State State State_ State_ State: State 01100 ’10000一 οοιοΓ οιοοΓ οιιοΓ 'ιοοοΓ •〇οιΐ(Γ •0101CT •Ollicf 'ιοοιο' '00111' 〇101l" •Olllf •10011·
Interpret Interpret Interpret Interpret Interpret Interpret Interpret •Interpret •Interpret Interpret •Interpret •Interpret Interpret •Interpret 第34頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) 1224280 經濟部智慧財產局員工消費合作社印製 五、發明説明() 煩讀委員明示 年.月 曰所提之 修£^.貧美變更實質内容是^准^修1£。 A7 B7
第7圖顯示一 ’’laload”的Java位元組碼其具有從一資 料陣列中讀取兩個字的功能,該資料陣列是被位在最上一 個堆疊位置處的資料串的兩個字所指定的。從資料陣列中 被讀出該兩個字然後取代指定它們的位置的兩個字並形 成最上面的堆疊運算元。 為了要讓該’’laload”指令具有足夠的暫存器空間來暫 時存放從該陣列被擷取出的堆疊運算元且不會將指定該 陣列及該資料陣列内的位置之輸入堆疊運算元蓋寫 (overwrite)掉,該’’laload”指令為一具有2的要求空置數 值,即在被指定來給堆疊運算元儲存用的該暫存器庫内的 兩個暫存器在模擬’’laload”指令的ARM指令執行之前必需 被空出來。如果在面對此java位元組碼時沒有兩個空置的 暫存器的話,則儲存操作(STR)會被實施用以將目前被存 放在暫存器内的堆疊運算元推移(PUSH)出至記憶體用以 空出所需要的暫時的存放空間以符合該指令的要求空置 的數值。 當該資料的位置被一陣列位置及在該陣列中的一指 標所指定為兩個分別的堆疊運算元時,該指令亦具有一為 2的要求填滿的數值。該圖顯示該第一狀態為已經符合該 要求填滿及要求空置的條件並具有一”01 〇〇1”的對映狀 態。該’’laload”指令被分成三個arm指令。第一個指令為 將該陣列參數放入在該組暫存器之外的一備用的暫存器 内作為堆疊運算元的一暫存器快取。然後,第二個指令使 用此陣列參數與該陣列中的一指標值配合來取得第一陣 第35頁 本紙張尺度適财國國家標準(CNS)A4規格⑵Qx 297公楚) (請先閲讀背面之注意事項再填、寫本頁} 、一叮 線一 五、發明説明( 列.字組其被寫A被指派作為堆疊運算元 内0 的 空置暫存器 /一有點很重要而應被注意的是,在兩個ARM指令被執 ^ α後h系、,先的對映狀態並沒有改變且最上一個堆疊指 向器仍保持其在開始時的位置,即暫存器被指定為空置的 仍然未變。 ( C£> d:提 z.之. 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) 在該ARM指令序列中的最後—個指令將第二陣列字 組載入該組用來儲存堆疊運算元的暫存器内。因為這為最 後一個指令,所以如果期間沒有間斷(interrupt)發生的 活貝J在該才0令完成之前其不會有作用,因此藉由改變存 放堆疊運算元之暫存器的對映狀態以此指令來改變輸入 狀L疋女全的。在此例子中,該對映狀改變至”〇 1 〇 11 ”其 將該新的最上一個堆疊指向子(p〇inter)置於該第二陣列字 組上並顯示該陣列參數及指標值的輸入變數現在為空的 暫存器,即,讓該暫存器成為空的等同於移除它所存放的 值。 應被瞭解的是,該’’laload”指令之整個堆疊動作並沒 有改變存在暫存器内的堆疊運算元的數目,一對映狀態交 換從未發生過。在最後操作執行時被實施之對映狀態的改 變如被轉碼的Java位元組碼的一函數般地被送入該指令轉 碼器内且被’’swap”參數所標記,被示為”iai〇ad,,指令的一 特徵。 雖然此圖所示的例子為一特定的指令,但應被瞭解的 是其遠則可被延伸至許多不同的Java位元組碼指令其被模 第36頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) ^24280
、發明説明( 請|1||誘1|"實1|-^:1|匕 經濟部智慧財產局員工消費合作社印製 擬,為ARM指令或其它種類的指令。 第8圖為一流程圖其示意地顯示上述的技術。在步驟 10, 一 Java位元組碼從記憶體被擷取出。在步驟12,該java 位元組碼的要求空置及要求填滿的數值被檢查。如果要求 空置或要求填滿的條件有任何一者沒有被滿足的話"則堆 疊運算元(可能是多堆疊運算元)的PUSH及pop操作可分 別在步驟14及16實施。應被瞭解的是,此特定的系統並不 允許要求空置及要求填滿的條件同時都沒有被滿足。在步 驟1 2的條件被滿足以前會需要多次通過步驟丨4及丨6。 在步驟1 8 ’被指定於該java位元組碼的轉碼型板内的 第一個ARM指令被選取。在步驟2〇,檢查被選取的ARM指 令疋否為在步驟10中被擷取的java位元組碼的模擬上的最 後一個將被執行的指令。如果該將被執行的arm指令為最 後一個指令的話,則步驟2 1將更新該程式計數器數值用以 指向在將被執行的指令序列中的下一個java位元組碼。應 被瞭解的是,如果該ARM指令為最令的話,則不論一間斷 現在是否發生其將完成執行,因此更新程式計數器數值至 下一個Java位元組碼是安全的且從該系統的狀態處的重新 開始執行將已達到該Java位元組碼的符合正常,無間斷, 完整執行。如果在步驟20的檢查顯示尚未到達最後的未元 碼的話,則程式計數器數值的更新將被跳過。 步驟22執行目前的ARM指令。在步驟24,檢查是否還 有任何的ARM指令需要執行為該型板的一部分。如果還有 其它的ARM指令的話,則其下一個指令將在步驟26被選取 第37頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公楚) # (請先閲讀背面之注意事項再填寫本頁) 、\各 線一 1224280 A7 --------— 五、發明説明() 且處理回到步驟20。如果没有其它的指令的話,則處理前 進至步驟28,該Java位元組碼的任何對映/交換即在該步驟 被實施用以反應最上一個堆疊位置及存放堆疊運算元之 : 不同的暫存器的填滿/空置狀態。 ::j 請亦示意地顯示如果有-間斷的話其被服務的位 γ: Ϊ點及在間斷之後處理重新開始的位置點。在目前正在步 二吟驟22中進行的一 ARM指令執行之後一間斷開始被服務,且 該程式計數器值被儲存作為該位元組碼序列的一回復 ; >、點。如果目前的ARM指令執行為該型板序列中的最後一個 ;f:· f.l指令的話,則步驟21將會更新該程式計數器值且這將會指 Y卜厂;τ 'ff 向下一個以”位元組碼(或ARM指令,如果一指令組切換已 被啟始的活)。如果目前執行的ARM指令為序列中最後一 個指令之外的其它指令的話,則程式計數器值攘將維持與 該Java位元組碼執行之初所示的相同,因此當回轉時整個 Java位元組碼將被再執行。 第9圖顯示一 Java位元組碼轉碼單元68其接受一 _ Java位元組碼並輸出一串經過轉碼的arm指令(或對應的 控制訊號)用以控制一處理器核心的動作。如先前所述 的,該Java位元組碼轉碼單元68使用指令型板將簡單的 Java位元組碼轉碼為ARM指令或ARM指令序列。當每一 Java位元組碼都被執行時,在排程控制邏輯7 〇内的一計數 器值即被減少。當此計數器值到達0時,則該Java位元組碼 轉碼單元68發出一 ARM指令分支至排程碼其管理工作之 間的排程。 第38頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) ..............I (請先閲讀背面之注意事項再填寫本頁) 訂· 經濟部智慧財產局員工消費合作社印製 92· 9.1S 煩讀委S明示 年':只: j旁 UJ;^. 無變泠.·^^ί^ΐ "-'.i'i :所提之 經濟部智慧財產局員工消費合作社印製 1224280 A7 ---- B7 五、發明説明() 雖然簡單的Java位元組碼是由java位元組碼轉碼單元 68來處理,該單元本身提供這些位元組碼高速硬體基礎的 執行’但需要更為複雜的處理之位元組碼則被送至一以一 群間斷副程式形式的軟體間斷器(此等副程式的片斷被示 於上面的說明中)。詳言之,該java位元組碼轉碼單元68 可決定其所接收到的,位元組碼不是硬體轉碼所支援者並 依據該Java位元組碼將其分支到用來處理該位元組碼的軟 體副程式所在的一位址。此機制亦可在該排程邏輯70顯示 一排程操作需要給出一分支到該排程碼時被使用。 第1 0圖行詳細地顯示第9圖的實施例的操作及在硬體 與軟體之間的分工。在步驟72,該Java位元組碼轉碼單元 6 8接收所有的;^”位元組碼且計數器被減小。在步驟74, 檢查該計數器值是否到達0。如果該計數器值已經到達0的 話’(從該系統的一預設值或一使用者控制的/程式的值向 下計數)’則在步驟7 6 —作出一分支至排程碼。當該排程 碼在步驟7 6完成時,控制回到該硬體且處理前進至步驟 72 ’下一個java位元組碼在該步驟被擷取且計數器再次被 減少。因為計數器到達〇,所以其將轉回到一新的且非〇的 值。或者’在步驟76—新的數值可被強迫進入該計數器作 為既有該排程處理的一部分。 如果在步驟74的檢查顯示該計數器並不等於〇的話, 則步驟78擷取該java位元組碼。在步驟8〇決定被擷取的位 元組碼是否為一可被步驟82的硬體轉碼執行之簡單的位 元組碼或者需要較複雜的處理並因此必需被送出給步驟 第39頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X 297公釐) 訂---------線_ (請先閲讀背面之注意事項再填寫本頁) i'o 經濟部智慧財產局員工消費合作社印製 1224280 A7 B7 五、發明説明() 84的軟體來處理。如果處理被送出給軟體執行的話,則— 但其被完成’控制將回到該硬體而步驟7 2將再把計數器減 少用以將下一個Java位元組碼的擷取考慮進去。 第11圖顯示另一種控制結構。在處理開始之初的步驟 86,一指令訊號(排程訊號)被解宣告(deasserted)。在步驟 88 ’ 一被擷取的“”位元組碼被檢查以確定其是否為硬體 轉碼可支援的簡單位元組碼。如果硬體轉碼不支援的話, 則控制被傳出至在步驟90的處理軟體其然後執行一 Arm 指令副程式來處理該java位元組碼。如果該位元組碼為該 硬體轉碼可支援的一簡單的位元組碼的話,則處理前進至 步驟92 —或多個ARM指令在該步驟被依序地被該在步驟 90的轉碼單元68發出,該單元為多循環有限狀態機器的形 式。當該在步驟90的已在步驟90或步驟92被適當地執行之 後,則處理前進至步驟94,指令訊號於其在步驟86被解宣 告之前在此步驟被宣告一段短的時間。該指令訊號的宣告 對外部的電路顯示一適當的安全點已被達到,一計時器基 礎的排程間斷可在該處發生而不會有導因於一被間斷的 或被轉碼的指令的部分執行之資料完整性損失的危險。 第12圖顯示一可被用來回應第^圖所產生的指令訊 號之舉例性的電路。一計時器96週期性地於一給定的時間 長度過了之後會產生一計時器訊號。此·計時器訊號被儲存 在一暫鎖器(latch)98内直到其被一清除計時器間斷訊號清 除掉為止。該暫鎖器98的輸出與該在步驟94被宣告的指令 訊號被一 AND閘1 00邏輯地結合。當該暫鎖器被設定且該 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) ...........#: (請先閱讀背面之注意事項再場寫本頁) 、-=& 1224280 A7 B7 五、發明説明() 指令訊號被宣告時,一間斷被產生作為該AND閘1〇〇的輸 出且被用來啟動一間斷,該間斷使用提供於此系統内供標 轉的間斷處理之用的間斷處理機制來實施排程操作。一但 該間斷訊號已被產生,這將啟動一清除計時器間斷訊號的 製造其會清除該暫鎖器9 8直到下一個計時器輸出脈衝產 生為止。 , 第13圖為一訊號圖其顯示第丨2圖之電路的操作^該處 理器核心時鐘訊號以一規律的頻律發生。計時器9 8以一預 煩 止讀 f4f員 熟明 更 貞J〇 5 5〇設的週期產生計時企訊號用以顯示何時為安全且一排程 丨g操作應被啟始。計塾器訊號被鎖定。指令訊號被產生於間 容 否 ;'ii 予曰 修所 i提 。之 經濟部智慧財產局員工消費合作社印製 隔開的時間點,其時間間距與一特定的Java位元組碼奪快 被執行有關。一簡單的Java位元組碼可在一單一的處理器 核心時鐘循環内被執行,或典型地在兩或三個循環内被執 行’而一可提供高階管理式功能之複雜的Java位元組碼該 軟體處理器會需要數百個處理器時鐘循環來完成其執 行。無論在何種情形中,在指令訊號發生代表該排程操作 可開始的安全訊息之前,一懸冗的,被宣告的鎖定計時器 訊號不會被作用來啟動一排程操作。一被鎖定的計時器訊 號及該指令訊號的同時發生才可啟動一間斷訊號的產 生,其後緊接的是一清除暫鎖器98的清除訊號。 雖然本發明之舉例性實施例已參照附圖詳細地加以 說明,但應被瞭解的是,本發明並不侷限於這些實施例, 熟悉此技藝者可在不偏離本發明由以下的申請專利範圍 所界定的範圍及精神之下達成許多不同的改變及變化。 第41頁 本紙張尺度適用中國國家標準(CNS)A4規格(210X297公釐) ........0.............訂.........線· (請先閲讀背面之注意事項再塡寫本頁)

Claims (1)

1224280 A8 B8 C8 D8 第咿P3认b號專利案仍年 正 /ΠΠ· 月 QO 六、申請專利範圍it正替換頁 1. 一種資料處理設備,該設備至少包含: (1) 一處理器核心,其係可操作以執行一第一指令組 的指令所指定之操作; (u) —可操作的指令轉碼器,用來將一第二指令組的 才曰令轉碼為對應於該第一指令組的指令之轉碼器輸出 訊號,該第二指令組的至少一指令藉由使用一或多個輸 入I數來指定一將被執行的操作; (uO—間斷管理器其回應一間斷訊號用以在一目前 正執行中的操作執行完了之後間斷對應於該第一指令 組的指令的操作; (iv)重新開始邏輯,用來在該間斷之後充新開始執 行;其中 (v) 该指令轉碼器係可操作的用以產生對應於該第一 指令組的指令之一訊列的一或多組轉碼器輸出訊號用 來代表該第二指令組的該至少一指令,每一序列被安排 成在該序列内的最後一個操作未被執行之前該一或多 個輸入變數將不會被改變;及 (VI)在執行代表該第二指令組的該至少一指令的一 序列操作期間發生一間斷時: (a) 如果該間斷發生在該序列中的一最後操作開始 執行之前的話,則該重新開始邏輯在該序列的一第一 操作處充新開始執行;及 (b) 如果該間斷發生在該序列中的一最後操作開始 執行之後的話,則該重新開始邏輯在該序列接下來的 -丨、丨 .% (請先爛讀背面之注意事項再填寫本頁} 訂-----^----線· 經濟部智慧財產局員工消費合作社印製 第42頁 ^氏張尺度適用中國國家標準"(CNS)A4規格(210 X 297公f ) 1224280 A8 B8 C8 D8 申請專利範圍
1替换頁巧曰 下一個指令處重新開始執行。 汝申靖專利範圍第1項所述之設備,其中該等轉碼器輸出 訊號包括形成該第一指令組的一指令的訊號。 3.如申請專利範圍第i或2項所述之設備,其中該等轉碼器 輸出Λ號包括控制該處理器核心的操作之控制訊號及 對Α第扎令組的指令解碼時所產生的匹配控制訊號。 4·如申請專利範圍第丨或2項所述之設備,其中該等轉碼器 輸出訊號包括控制該處理器核心的操作之控制訊號及 指定未被在解碼該第一指令組的指令時產生的控制訊 號所指定的參數。 5 ·如申睛專利範圍第1或2項所述之設備,其中該重新開始 邏輯為該指令轉碼器的一部分。 (請先閱讀背面之注意事項再填寫本頁) 訂- --線- 經濟部智慧財產局員工消費合作社印製 6 ·如申請專利範圍第1或2項所述之設備,其中該重新開 邏輯儲存一指向元(p〇inter)於被轉碼之第二指令組的 令内的一重新開始位置,而該指向元在最後一個操作 行時會向前進。 指 執 7·如申請專利範圍第6項所述之設備,其中該指向元為一卷 式的汁數器數值其指向一儲存一目前被轉碼之 第二 第43頁 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 1224280 A8 B8 C8 D8 經濟部智慧財產局員工消費合作社印製 、申請專利範圍 ^ Μ 令組的指令β ί己憶體位盡的記憶體位址。 8 ·如申請專利範圍第1項所述之設備,其中該等第二指令組 的指令指定將依據存放在一堆疊内的堆疊運算元被執 行的操作且該等輸入變數包括輸入堆疊運算元。 9·如申請專利範圍第8項所述之設備,其中因執行該第二指 令組的該至少一指令而從該堆疊被移出的任何堆疊運 算元在最後一個操作開始執行之前是不會被移出的。 1〇·如申請專利範圍第8或9項所述之設備,其中因執行該第 二指令組的該至少一指令而被添加至該堆疊的任何堆 疊運算元在最後一個操作開始執行之前是不會被加入 的0 11·如申請專利範圍第丨或2項所述之設備,其中該等輸入變 數包括未被指定於該第二指令組内的系統狀態變數。 12·如申請專利範圍第1或2項所述之設備,其中該處理器具 有一暫存器庫其包含多個暫存器且該第一指令組的指 令細依據存放在該等暫存器内的暫存器運算元來執行 操作的。 13·如申請專利範圍第12項所述之設備,其中在該暫存器庫 第44頁 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ·:--------------------訂· - —------ (請先間讀背面之注意事項再填寫本頁) 1224280 8888 ABCD
六、申請專利範圍 正·替換
内的一組暫存器存放來自於該堆疊的一上部的堆疊運 算元。 經濟部智慧財產局員工消費合作社印製 14.如申請專利範圍第13項所述之設備,其中該指令轉碼器 具有多個對映狀態,在該組暫存器中的不同暫存器存放 來自於該堆疊的不同位置的堆疊運算元,該指令轉碼器 為可操作的用以依據添加或移除在該堆疊内的堆疊運 鼻元的操作來移動於對映狀態之間。 15·如申請專利範圍第!或2項所述之設備,其中該第二指令 組為Java虛擬機器指令組。 16·—種處理資料的方法,該方法包含的步驟為: (i)執行被一第一指令組的指令所指定的操作; (11)將一第二指令組的指令轉碼為對應於該第一指 令組的指令之轉碼器輸出訊號,該第二指令組的至少一 才曰令藉由使用一或多個輸入變數來指定一將被執行的 操作; (iii) 在一目前正執行中的操作執行完了之後間斷對 應於該第一指令組的指令的操作以回應一間斷訊號; (iv) 在該間斷之後重新開始執行;其中 (V)轉碼步驟產生對應於該第一指令組的指令之一訊 列的一或多組轉碼器輸出訊號用來代表該第二指令組 的該至少一指令,每一序列被安排成在該序列内的最後 第45頁 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) ,閲 讀 背 面 之 注 I 填癱1 頁i I I 訂 1224280 A8 B8 C8 D8 六、申請專利範圍 一個刼作未被執行之前該一或多個輪入變數將不會被 改變;及 (V1)·在執行代表該第二指令組的該至少一指令的— 序列操作期間發生一間斷時·· (a)如果該間斷發生在該序列中的一最後操作開始 一 別的w舌’則该重新開始邏輯在該序列的一第一 操作處充新開始執行;及 '(b)如㈣㈤斷發生在該序歹,j中的一最後操作開始 執订之後的話,則該重新開始邏輯在該序列接下來的 下一個指令處重新開始執行。 17·—種電腦程式產品,其内含用來控制—電腦實施申請專 利範圍第1 6項的方法的電腦程式。 I. --------^--------- (請先間讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 第46頁 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱〉
TW090123666A 2000-10-05 2001-09-25 Restarting translated instructions TWI224280B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0024402A GB2367653B (en) 2000-10-05 2000-10-05 Restarting translated instructions

Publications (1)

Publication Number Publication Date
TWI224280B true TWI224280B (en) 2004-11-21

Family

ID=9900736

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090123666A TWI224280B (en) 2000-10-05 2001-09-25 Restarting translated instructions

Country Status (12)

Country Link
US (1) US7003652B2 (zh)
EP (1) EP1323032B1 (zh)
JP (1) JP4950408B2 (zh)
KR (1) KR100890243B1 (zh)
CN (1) CN1287270C (zh)
DE (1) DE60140068D1 (zh)
GB (1) GB2367653B (zh)
IL (2) IL151396A0 (zh)
MY (1) MY127147A (zh)
RU (1) RU2263949C2 (zh)
TW (1) TWI224280B (zh)
WO (1) WO2002029555A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI424354B (zh) * 2005-03-11 2014-01-21 Ibm 程式碼轉換期間之執行控制

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3634379B2 (ja) * 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US7162612B2 (en) * 2000-08-16 2007-01-09 Ip-First, Llc Mechanism in a microprocessor for executing native instructions directly from memory
KR20040058228A (ko) * 2001-10-25 2004-07-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 낮은 오버헤드의 예외 체킹
US7155718B1 (en) * 2002-04-04 2006-12-26 Applied Micro Circuits Corp. Method and apparatus to suspend and resume on next instruction for a microcontroller
JP2004094533A (ja) * 2002-08-30 2004-03-25 Hajime Seki 計算機システム
JP4127495B2 (ja) * 2002-09-05 2008-07-30 株式会社ルネサステクノロジ 情報処理装置
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
JP3848965B2 (ja) * 2002-12-12 2006-11-22 エイアールエム リミテッド データ処理装置内の命令タイミング制御
DE102004025419A1 (de) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller und Verfahren zum Verarbeiten von Befehlen
DE102004025418A1 (de) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller mit einer Decodiereinrichtung
WO2005119439A2 (en) * 2004-06-01 2005-12-15 The Regents Of The University Of California Retargetable instruction set simulators
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7769983B2 (en) * 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
RU2320002C2 (ru) * 2006-04-18 2008-03-20 Общество с ограниченной ответственностью "Юникор микросистемы" Способ переключения контекста задач и процедур в процессоре
US8010849B2 (en) * 2006-09-05 2011-08-30 Arm Limited Diagnosing faults within programs being executed by virtual machines
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US8489989B1 (en) * 2008-07-15 2013-07-16 Adobe Systems Incorporated Methods and systems for preflighting using multiple preflight profiles
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US8924695B2 (en) 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
WO2013132767A1 (ja) 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US9727944B2 (en) 2015-06-22 2017-08-08 Apple Inc. GPU instruction storage
JPWO2019026442A1 (ja) * 2017-08-02 2020-08-13 フェリカネットワークス株式会社 情報処理装置、および情報処理方法
CN119724336A (zh) 2019-03-07 2025-03-28 伊鲁米那股份有限公司 用于确定短串联重复区域中的变化的基于序列图的工具
CN112817812B (zh) * 2020-12-31 2022-11-04 深圳市联影高端医疗装备创新研究院 序列翻译模拟方法、装置、设备及存储介质

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3889243A (en) 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US3955180A (en) 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system
US4236204A (en) 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4587632A (en) 1980-05-27 1986-05-06 At&T Bell Laboratories Lookahead stack oriented computer
EP0103547A3 (en) * 1982-08-09 1987-01-28 Giuseppe Rigo Apparatus for generating a controllable steam and ozone mixture and hair-dryer for uniformly distributing said mixture on hair
US4922414A (en) 1982-12-17 1990-05-01 Symbolics Inc. Symbolic language data processing system
DE3726192A1 (de) 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US5136696A (en) 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
US5440749A (en) 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
JPH04302329A (ja) * 1990-12-26 1992-10-26 Xerox Corp マイクロ処理システム
TW197505B (zh) * 1991-03-07 1993-01-01 Digital Equipment Corp
US5432795A (en) * 1991-03-07 1995-07-11 Digital Equipment Corporation System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program
US5307504A (en) * 1991-03-07 1994-04-26 Digital Equipment Corporation System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events
RU2042193C1 (ru) * 1991-10-08 1995-08-20 Институт кибернетики им.В.М.Глушкова АН Украины Вычислительная система
US5367685A (en) 1992-12-22 1994-11-22 Firstperson, Inc. Method and apparatus for resolving data references in generated code
US5455775A (en) 1993-01-25 1995-10-03 International Business Machines Corporation Computer design system for mapping a logical hierarchy into a physical hierarchy
CA2126174C (en) * 1993-06-30 2003-01-21 David Thielen Method and system for interrupt-responsive execution of communications protocols
GB2289354B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2289353B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
GB2290395B (en) 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5752035A (en) 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US5699536A (en) 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
US5619665A (en) 1995-04-13 1997-04-08 Intrnational Business Machines Corporation Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
US5838948A (en) 1995-12-01 1998-11-17 Eagle Design Automation, Inc. System and method for simulation of computer systems combining hardware and software interaction
US5826089A (en) 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
DE69713400T2 (de) 1996-01-24 2002-10-31 Sun Microsystems, Inc. Prozessor mit Bereichsüberprüfung bei Matrixzugriffen
KR100618756B1 (ko) * 1996-01-24 2007-05-04 선 마이크로시스템즈 인코퍼레이티드 네트워크또는로컬메모리로부터수신된명령세트를실행하는프로세서및컴퓨터시스템
US5970242A (en) 1996-01-24 1999-10-19 Sun Microsystems, Inc. Replicating code to eliminate a level of indirection during execution of an object oriented computer program
US6038643A (en) 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
EP0976030B1 (en) 1996-01-24 2008-07-02 Sun Microsystems, Inc. Instruction folding for a stack-based machine
JP3634379B2 (ja) * 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US5742802A (en) 1996-02-16 1998-04-21 International Business Machines Corporation Method and system for efficiently mapping guest instruction in an emulation assist unit
US5805895A (en) 1996-06-09 1998-09-08 Motorola, Inc. Method and apparatus for code translation optimization
US6031992A (en) 1996-07-05 2000-02-29 Transmeta Corporation Combining hardware and software to provide an improved microprocessor
JPH1069640A (ja) 1996-08-27 1998-03-10 Mitsumi Electric Co Ltd Cd−rドライブにおけるウォブル信号生成方法
US5926832A (en) 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
AU5507898A (en) 1996-11-13 1998-06-03 Yair Raz Real time program language accelerator
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof
US5953741A (en) 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
US6011908A (en) * 1996-12-23 2000-01-04 Transmeta Corporation Gated store buffer for an advanced microprocessor
US5875336A (en) 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US6009499A (en) 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US6088786A (en) 1997-06-27 2000-07-11 Sun Microsystems, Inc. Method and system for coupling a stack based processor to register based functional unit
US5892966A (en) 1997-06-27 1999-04-06 Sun Microsystems, Inc. Processor complex for executing multimedia functions
US6003126A (en) 1997-07-01 1999-12-14 International Business Machines Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
US6317872B1 (en) 1997-07-11 2001-11-13 Rockwell Collins, Inc. Real time processor optimized for executing JAVA programs
DE19739530C1 (de) * 1997-09-09 1998-12-24 Siemens Ag Schaltungsanordnung zur Erzeugung eines Interruptsignals für einen Mikroprozessor
US5953520A (en) 1997-09-22 1999-09-14 International Business Machines Corporation Address translation buffer for data processing system emulation mode
US5995743A (en) * 1997-09-22 1999-11-30 International Business Machines Corporation Method and system for interrupt handling during emulation in a data processing system
EP1359501A3 (en) 1997-10-02 2007-11-21 Koninklijke Philips Electronics N.V. A processing device for executing virtual machine instructions
JP3816961B2 (ja) 1997-10-02 2006-08-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ バーチャルマシン命令を処理するためのデータ処理装置
EA200000546A1 (ru) * 1997-11-20 2001-04-23 Хадзиме Секи Компьютерная система
US6070173A (en) 1997-11-26 2000-05-30 International Business Machines Corporation Method and apparatus for assisting garbage collection process within a java virtual machine
US6122638A (en) 1997-11-26 2000-09-19 International Business Machines Corporation Object-oriented processor and method for caching intermediate data in an object-oriented processor
US6039765A (en) * 1997-12-15 2000-03-21 Motorola, Inc. Computer instruction which generates multiple results of different data types to improve software emulation
US6148391A (en) 1998-03-26 2000-11-14 Sun Microsystems, Inc. System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
EP0955581A1 (en) * 1998-04-16 1999-11-10 Sun Microsystems, Inc. Software interrupt mechanism
US6088791A (en) * 1998-04-30 2000-07-11 International Business Machines Corporation Computer processor system for implementing the ESA/390 STOSM and STNSM instructions without serialization or artificially extending processor execution time
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6338134B1 (en) 1998-12-29 2002-01-08 International Business Machines Corporation Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6718539B1 (en) * 2000-12-22 2004-04-06 Lsi Logic Corporation Interrupt handling mechanism in translator from one instruction set to another

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI424354B (zh) * 2005-03-11 2014-01-21 Ibm 程式碼轉換期間之執行控制

Also Published As

Publication number Publication date
GB2367653A (en) 2002-04-10
JP4950408B2 (ja) 2012-06-13
KR100890243B1 (ko) 2009-03-24
IL151396A (en) 2008-08-07
CN1434938A (zh) 2003-08-06
US7003652B2 (en) 2006-02-21
DE60140068D1 (de) 2009-11-12
US20020066003A1 (en) 2002-05-30
RU2263949C2 (ru) 2005-11-10
CN1287270C (zh) 2006-11-29
WO2002029555A1 (en) 2002-04-11
EP1323032B1 (en) 2009-09-30
GB0024402D0 (en) 2000-11-22
IL151396A0 (en) 2003-04-10
EP1323032A1 (en) 2003-07-02
JP2004511041A (ja) 2004-04-08
MY127147A (en) 2006-11-30
KR20030034243A (ko) 2003-05-01
GB2367653B (en) 2004-10-20
RU2002127807A (ru) 2004-02-27

Similar Documents

Publication Publication Date Title
TWI224280B (en) Restarting translated instructions
TWI236616B (en) Storing stack operands in registers
JP4938187B2 (ja) ネイティブおよび非ネイティブの命令集合間相互呼び出し
US20020083302A1 (en) Hardware instruction translation within a processor pipeline
JP2001142697A (ja) データ処理装置
KR20170097633A (ko) 융합된 단일 사이클 증가-비교-점프를 수행하기 위한 명령어 및 로직
IL113153A (en) Data processing with a set of multi-instructions
TW201203107A (en) Microprocessor that fuses MOV/ALU/jump instructions
US10365990B2 (en) Debugging of prefixed code
TW201716990A (zh) 執行模式選擇的方法與裝置
KR20170099864A (ko) 마스크 값을 압축하기 위한 방법 및 장치
US6061787A (en) Interrupt branch address formed by concatenation of base address and bits corresponding to highest priority interrupt asserted and enabled
US20020087834A1 (en) System and method for encoding constant operands in a wide issue processor
GB2367652A (en) Scheduling control within a system having mixed hardware and software based instruction execution
US5987559A (en) Data processor with protected non-maskable interrupt
GB2367658A (en) Intercalling between native and non-native instruction sets
KR20170094147A (ko) 스핀-루프 점프를 수행하기 위한 장치 및 방법
Bell TMS320C6000 Tools: Vector Table and Boot ROM Creation
JPH0575130B2 (zh)

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent