TW586072B - Data processor and method of operation - Google Patents

Data processor and method of operation Download PDF

Info

Publication number
TW586072B
TW586072B TW090132540A TW90132540A TW586072B TW 586072 B TW586072 B TW 586072B TW 090132540 A TW090132540 A TW 090132540A TW 90132540 A TW90132540 A TW 90132540A TW 586072 B TW586072 B TW 586072B
Authority
TW
Taiwan
Prior art keywords
instruction
address
value
execution
code
Prior art date
Application number
TW090132540A
Other languages
English (en)
Inventor
William C Moyer
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of TW586072B publication Critical patent/TW586072B/zh

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/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; 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/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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

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

Description

586072 A7 B7 五 發明説明( 相關申請參考 本專利申請於2001年2月9曰提出美國專利申請,專利申 請案號為09/779,886。 發明領域 本發明與資料處理系統有關,尤其與具有用以實施資料 處理指令之軟體解譯程式的系統有關。 發明背景 Java程式設計語言是一種由Sun Microsystems Inc.公司開發的 物件導向式高階程式設計語言,並且被設計成足以在從小 型個人電腦至超級電腦之各種電腦上執行的可移植(portable) 程式設計語言。以Java(及其他語言)撰寫的電腦程式可被編 譯成虛擬機器指令,以供Java虛擬機器(Java Virtual Machine ; JVM)執行。一般而言,Java虛擬機器是一種解碼及執行虛 擬機器指令的解譯器。 Java虛擬機器的虛擬機器指令屬於位元組碼,表示指令 可包括一個或一個以上位元組。位元組碼係以稱為「類別 檔案」(class file)的特殊樓案格式儲存。除了位元組碼以 外,類別檔案包括符號表及其他補助資訊。 在一個或一個以上類別檔案中具體化成為Java位元組碼 的電腦程式屬於平台非相依性程式。電腦程式可在能夠執 行Java虛擬機器實施的任何電腦上執行,而不需要修改。 Java虛擬機器是一種“泛用”電腦的軟體模擬器,這是促使 Java虛擬機器的電腦程式成為平台非相依性程式的主要因 素。 -4-
裝 訂
k 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 586072 A7 B7 五、發明説明(2 )
Java虛擬機器通常被實施成為軟體解譯器。傳統解譯器 解碼及執行已解譯程式的虛擬機器指令,並且於執行期間 一次解碼及執行一個指令。另一方面,在執行之前,編譯 器先將虛擬機器指令轉換成原生(native)機器指令,以致於 執行不會執行有關虛擬機器指令的解碼。因為在每當遇到 指令執行指令之前,傳統解譯器會先重複解碼每個指令, 所以執行已解譯程式通常比執行已編譯程式慢,這是由於 已編譯程式的原生(native)機器指令可直接在原生(native)機 器或電腦系統上執行。 由於必須執行軟體解譯器才能解碼及執行已解譯程式, 所以軟體解譯器會耗用資源(例如,記憶體),而使得已解 譯程式無法使用這些已耗用的資源。與當作原生(native)機 器指令執行的已編譯程式相比,由於已編譯程式可直接在 目標電腦上執行,所以通常所需要的資源低於已解譯程式 使用的資源。 因此,需要一種新技術以增加被解譯之電腦程式的執行 速度。同時,需要提供在資源需求方面具高效率的解譯 由於Java語言的平台非相依性且普遍存在的性質以及Java 虛擬機器實施的開發,許多内嵌式裝置均具備Java功能。 許多低成本内嵌式系統想要實施當作JVM的Java處理函式, 以避免專屬Java處理器或硬體加速器(例如,分開的共處理 器)的硬體内部操作(overhead)。實施JVM及執行Java程式之 最簡單的做法是利用軟體解譯器。 -5- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
586072 A7
畎解#咨執行指令擷取、解碼及已解譯指令流執行的標 卞函式而1: ’解譯器實施處理器的軟體版本。解譯器通常 被貫施成為反覆擷取、解碼及執行步驟的程式迴圈。 當擷取Java指令(位元組碼)時,解譯器維護一虛擬程式計 數器(JavaPQ,並且係藉由大寫(largecase)陳述式(撕丨她陳述 式)與對應於每個位元組碼之二進位編碼的子句來執行每 個已解譯Java指令的解碼。每個子句内的程式碼均執行位 元組碼所定義的實際作業。 由於必須擷取及解碼位元組碼,所以有與處理每個位元 組碼相關的内部操作。肖序列_及解碼部份相關的内部 操作可能佔整個執行時間的較大百分比,目為許多的】術 指令(位元組碼)執行簡易作業。 由於Java環境支援多重執行線程的概念,所以解譯器迴 圈的額外函式是維護決定何時應發生線程(或工作)切換 使用的計數器。 ’ 在】讀虛擬機器的某些實施中,線程切換決策係以執行 的Java位元組碼數量為基礎。藉由維持計數器值(每次解 器迴圈執行時均會修改這個計數器值),並且將計數器值 與預先決定值比較’解譯器也實施線程切換邏輯。維: 數器及決定何時進行線程切換也會導致顯著的内部操:: 适個内邵操作會顯著限制軟體解譯器的操作效率。 Μ式簡里_明 圖1顯示資料處理系統的方塊圖; 已知程式碼序列圖 圖2顯示執行Java程式時之執行流程的
本紙張尺度適用中國國豕標準(CNS) A4規格(210 X 297公D 586072 A7
式; 關的解譯器内部操 圖3顯示與圖2所示之Java程式執行相 作(interpreter overhead)的已知圖式;
Java程式及對應的模 圖4顯示當根據本發明執行程式時 擬程式碼表格; 圖5顯示根據本發明之Java程式 _ ^ 轨仃@例,其需要的模擬 桂式碼夕於群組大小准許的模擬程式碼; ,示示範性模擬程式碼表格,用以呈現根據本發明 的指令位置(instruction slots)配置; 圖7顯示在根據本發明之;讀程式中切換指令流程的“ 解譯器指令解說; 圖8顯示圖1所示之資料處理器系統之一部份的方塊圖, 用以根據本發明實施程式執行;以及 圖9顯7F 7F範性模擬程式碼表格,用以呈現根據本發明 的另一種指令位置(instruction sbts)配置。 圖式詳細說明 本發明將藉由實例及附圖來進行解說,但本發明未限定 在這些實例及附圖内,其中相似的參照代表相似的元件。 為了充分認識本發明,在下面的說明中提出許多的特定細 節’如等定字組或位元組長度等等。但是,熟知技藝人士 應清楚知道,在不運用這些特定細節的情況下,仍然可實 施本發明。在其他情況下,為了避免因不必要的細節而混 淆本發明,會以方塊圖形式來呈現電路。在大部份情況 下,關於時序考量等等的細節已被忽略,因為不需要此類 本紙張尺度適用中國國家樣準(CNS) A4規格(210 X 297公釐) 586072 五、發明説明(6 端子34外㈣合至資料處理系統⑼。處理器⑴系 處理益介面30以雙向方式轉合至共處理器“和共處理: 16。下又中將以Java程式碼執行為背景來說明資料處理: 統1 0内之處理器1 2的特定操作。 乐 ,參考圖2和3 ’圖中域式中指令的傳統執行流 矛王貫例。-般而言,已知解譯器的重要效能問題為,^ 個模擬Java位元組碼之間變更指令流程及執行解譯器内部 操作常式(interpreter overhead routine)過程中,軟體會花費& 時間的事實。圖2所示的指令執行步驟將強調這個問: 點。請注意,圖2所示之步驟壹至步驟柒的所有識別 均需要變更軟體程式流程。在先前技藝,如解譯器内朴 作(interpreter overhead) 5 4之類的一個或一個以上軟 須重複跳躍至常式,並JL這會建立額外的解譯器内二操 作。圖3顯示與圖2相同的軟體常丨,但{更清楚呈現執行 解譯器内部操作常式所需之時間量與軟體之間的關係,並 且相比之下’執行各種函式(如a、f和e)之模擬程式碼需 要較短的時間及軟體。解譯器内部操作程式包括摘取、解 碼及調度Java位元組碼。調度(Dispatching)是用以跳躍至對應 於模擬Java位元組碼之模擬程式碼所執行的步驟。請^ 意’解譯器内部操作也包括用以執行計數器函式的軟體\ 以決定應於何時發生線程切換。請注意,解譯器内部操作 5 4軟體也包括適用於Java虚擬機器之必須持續更新的虛擬 矛王式汁數态。請·/王意,圖2和圖3顯示處理器(例如,圖i所 不的處理益1 2)所需要的java程式位元組碼及模擬程式碼 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) •9- 五、發明説明( 7 A7 B7 ::以便實際執行Java程式所需的位元組碼。冑注意,針 ^處^态1 2執行的每個仏^位元組碼,執行Java位元組碼模 斤而的桎式碼需要兩項組件。第一組件是實際執行函式 L^ C )的私式碼,而第二組件是用以將模擬程式碼執 3丁返&回至解譯器内部操作54軟體的軟體常式。請參考圖 曰a 圖中以粗線標示的解譯器内部操作軟體可能 是執行Java位元組碼所需要之軟體的非常重要部份。因 此,本人在此處講授一種可高效率縮減執行模擬程式碼解 部操作部份所f的軟體及時間總量之系統及方法。 # '王思’如圖2所示,執行每項函式(a、f、c)所需的模擬 =式碼的大小可能且通常確實會顯著變化,並且通常是相 二】2的私式碼。相比之下,與執行特定位元組碼所 需的模擬程式碼相比,解譯器内部操作54軟體是非常大型 的程式碼。 、現在請參考圖4 ,圖中顯示根據本發明一項具體實施例 <可能由圖1所示之處理器丨2執行之Java程式6 〇及其對應 模k私式碼表格6 2的實例。請注意,在圖4所示的本發明 程式執行具體實施例中,在模擬程式碼表格62中,每個 Java位元組碼均具有對應的群組。就廣泛的意義而言,每 個群組均與程式的預先決定微運算程式碼(opcode)互相關 聯,因為本發明不限於只使用Java程式。以如圖所示之步 驟1、2和3的順序,藉由擷取程式碼的模擬程式碼表格 6 2,發生位元組碼a、f、c ...的位元組碼執行。在如圖斗 所不之本發明特定具體實施例中,按照如0x0、0x1等等java -10-
線 本紙張尺度適用中國國家標準(CNS) A4规格(210 X 297公釐) 586072 A7 B7 五、發明説明(8 ) 位元組碼十六進位值的定義,模擬程式碼表格6 2中的每個 程式碼群組均包含十六個處理器1 2指令。數字十六被選取 為提供充足指令位置(instruction slots)的值以模擬Java位元組 碼,而不會導致出現過多未使用的位置(slots)。某些Java位 元組碼會採用少於十六個處理器1 2指令來執行,並且某些 Java位元組碼會採用更多的指令。因此,應明白,本發明 的替代具體實施例可針對每個群組使用任何數量的處理器 1 2指令位置。再者,群組數量可因高階語言所需的位元組 碼數量而異。請注意,解譯器内部操作軟體再也不需要當 作模擬程式碼必須跳躍至該處的分開常式。如圖2所示之 先前技藝所需的解譯器内部操作已被貼上“.Overhead plus JAVASW”(内部操作加JAVASW)標籤之每個群組中使用的程 式碼區塊所取代。請注意,現在程式碼的“ Overhead plus JAVASW”區塊被分散於處理器12執行的模擬程式碼中。請 注意,與如圖2所示之先前技藝相比,圖4所示的軟體流程 及模擬程式碼表格的流程步驟有些許變更。應明白,流程 變更是控制變更的形式,而不是實施跳躍(jump)指令,可 能執行的操作可能是實施控制變更的另一項操作,如使用 者模式與監督者模式之間的轉換。本發明提供的步驟可減 少流程變更,所以可節省大量的軟體内部操作。請注意, 圖2與圖4所示的箭頭需要額外軟體才能執行。請注意,雖 然在圖4所示的具體實施例中,每個Java位元組碼均被配置 十六個指令位置,但是某些特定Java位元組碼不需要全部 的十六個指令位置。另一方面,在模擬程式碼中,某些 ____-11-_ 本纸張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
線 586072 A7 _____B7 五、發明説明(9 )
Java位元組碼需要多於十六個指令位置的指令位置。現在 將參考圖5來說明這個實例。因此,圖4顯示圖丨所示之處 理态1 2可執行的模擬程式碼表格6 2。在如圖所示的形式 中’模擬程式碼表格6 2具有兩百五十六個相等大小的群 組,以配置給每個Java位元組碼模擬,並且以十六進位位 址0 X 0到0 X F F識別。因此,當處理器丨2執行Java程式時, 圖4所示的模擬程式碼表格提供更多連續流程。這個更多 連續流程縮減先前技藝(請參考圖2)所需之大量程式流程 變更所需的軟體内部操作總量。 現在請參考圖5,圖5顯示本發明如何適用於Java位元組 碼,其需要比模擬程式碼表格6 3中之群組大小允許之模擬 程式碼更多的模擬程式碼。圖5顯示模擬程式碼表格6 3。 針對圖5所示的圖解,假設模擬程式碼的起始部份係從位 址0 χ6 7開始,如步驟i之箭頭所標示。步驟2指示所有的 十六指令位置均被使用,並且對應的位元組碼還需要額外 的模擬程式碼。因此,步驟2指示模擬軟體流程必須移至 新且可用的程式碼區塊,才能完成Java位元組碼執行。在 圖5所示的實例中,步驟2顯示將程式執行重新導向的形式 為,將模擬程式碼跳躍至通過模擬程式碼表格62末端的位 置,其中用以結束java位元組碼執行的程式碼區塊可能位 於該位置。這個額外的程式碼可能任何大小,並且不限制 系統資源。這個額外的程式碼可能儲存在系統中的任何位 置,薇位置存在可用的資源以准許儲存所要執行的剩餘 Java位元組碼模擬程式碼。因此,應明白,所選跳躍位址 _________-12- 本纸張尺度適財8 ®家料(CNS) A4規格(2躺297公釐) --------- 586072 A7 B7 五、發明説明(10 ) 可能位於低於資料處理系統内總位址範圍的預先決定位址 範圍(0x0到OxFF),或所選跳躍位址可能位於用以儲存隨處 了取^于之貝源的預先決定位址範圍外。步驟3指出一旦已 完成特定Java位元組碼的模擬程式碼,則模擬程式碼可跳 回土兩百五十六個群組範圍内的任何群組,其位於 Overhead plus JAVASW ”軟體開始的位置。因此,位於模擬 私式碼表格6 3末端之用以結束java位元組碼模擬所需的額 外軟體不需要包含“ pius JAVASW,,軟體。假使無法 只使用模擬程式碼表格6 3中的一個群組來模擬java位元組 碼,這個操作功能允許重新使用至少一群組的“〇verheadplus JAVASW ”軟體部份。 請參考圖6,選擇要配置給每個群組的指令位置數量是 項重要的問題。選擇通常涉及模擬程式碼表格總大小與超 過群組大小溢位之java位元組碼數量之間的交換。雖然圖6 所示的具體實施例使用每群組十六個指令位置,但是本發 明的替代具體實施例可將群組大小最佳化成為不同數量指 令位置。請注意,使用固定的群組大小可大幅簡化為指向 每個模式位元組碼之模擬程式碼使用的位址計算。這可能 是處理器1 2針對每個指令的大量計算時間,並且會顯著影 響資料處理系統1 〇的整體效能。 請繼續參考圖6,請注意,一個或一個以上硬體加速器 可當作資料處理系統1 〇的一部份使用(請參考圖i,共處理 器1 4 ' 1 6 ),以改良資料處理系統1 〇的效能。應明白,共 處理器僅僅是可使用的其中一種硬體加速器。請參考圖 -13- 本纸張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 586072 A7 B7 五、發明説明(11 ) 6 ’ IADD(imeger add ;整數相"”巾八 nn”玉"…,以 王現模k程式碼表格如何依據是否有硬體加速器存在進行 變更。所選用的整數相加功能僅僅是範例。圖6左方的 *‘ IADD”常式是當沒有硬體加速器存在時處王里器i 2執行的軟 aa苇式8 0。圖式右方的程式碼8 2是當有硬體加速器(例 如,共處理益1 4)存在時處理器丨2執行的常式。請注意, 硬體加速器可用來執行Java位元組碼執行的重要部份。比 較圖6左方與右方的程式碼區塊,顯而易見,當使用硬體 加速器時,處理器12必須事先執行大量的載入和儲存指令 已再也不需要。如參考圖8的進一步詳細說明所述,一種 使用者可決定控制信號係以本發明的形式提供,其准許系 統使用者選擇預先決定程式碼大小群組的第―模表格結 構’或不同預先決定程式碼大小群組的第二模表格結構。 請注意,硬體加速器及處理器必須具有某種介面或信號交 換機制’才能傳達及協調java位元組碼執卜請參考^ , 處理器12與共處理器14、16係藉由共處理器介面3〇進行 通訊。請注意’處理器12與共處理器14、16之間的通信 可能非常複雜,因為在仏^程式中會發生線程切換。於^柯 程式執行期間,軟體的至少__部份必須週期性檢查,以夹 定是否需要切換工作’並且允許另—項工具擁有處理器a 執仃時間的-部今。在Java中’軟體工作之間的這種切換 或變更被稱為線程切換。請參考圖i ’處理器12有條件地 發出㈣至共處理器14、16 ’以依據是否發生線程切換以 決疋是否要執行有效的Java位元組碼。這個發信號屬於 本纸張尺度適用中國國家樣準(CNS) A4規格(210X297公复) -14- __________57 586072 A7 五、發明説明(l2 ) JAVASW指令執行的一部份’並且係以未執行線程切換的事 實為條件,㈣除非處理器12也正在執行元組碼, 否則共處理器不應、執行Java位元組碼,並且當I執行線程 切換時’通常已執行的Java位元組碼維持不執行,直到重 新啟動現彳于線程。請注意,丑虛评哭人‘ 丹/上a〆、蜒埋态介面3 0也可包括窥察 (snooping)或廣播信號,以允許處理器1 2與共處理器1 4、 16擁有其他處理器執行之軟體流程的能見度。如需關於可 與本發明-起使用的任何已知處理器至共處理器介面的特 定資訊,請參考美國專利案號5,983,338,其以提及方式拼入 本文。 請注意,圖6所示的模擬程式碼表格72包括兩百五十六 個可定址群組(0x0到0xFF),其中每個群組均被配置給對應 的Java位元組碼。希望找出模擬程式碼以在模擬程式碼表 格中實施Java線程切換。由於每個群組中有固定數量的指 令位置,所以可供線程切換軟體使用的模擬程式碼表格72 沒有任何未配置的記憶體位置。因此,必須使用一個或一 個以上群組内未使用的指令位置來找出線程切換程式碼。 在本發明的一項具體實施例中,線程切換軟體常式係位於 對應於Java位元組碼零(〇)的第一群組中。舉例而言,由於 這個群組被配置給只需要四個指令位置的無運算( operation ; NOP)指令,所以剩下十二個未使用指令位置可儲 存用以執行線程切換之換軟體常式的至少一部份。請注 思’如果線程切換常式不適合配置的位置,則會跳躍至通 過模擬程式碼表格7 2末端的位置,如圖5針對模擬程式碼 _____215-___ 本紙張尺度適用中國國家揉準(CNS) A4規格(210 X 297公釐) " "" 表格6 3的說明。本發明 类扒”〜 的替代具體實施例可在模擬程式% 表格72乾圍内的其他位置中 Λ馬 植意’使用模擬程式碼表格72中的第-群組來找1 線粒切換軟體,允許使 ,^ ^ m 』處理态1 2中的硬體以更簡單的方 J)貝。她用以實施游娜指令的石更體(本文中會進-步說 圖7顯示先前—4和5之模擬表格中提及之“;AVASW”指 令t進一步細節。在本發明-項具體實施例中,JAVASW指 7疋處理态1 2 (請參考圖"所執行的指令。為了進一步鬥 明JAVASW指令執行,圖8進一步提供圖i所示之處理器12 的詳細部份。圖8顯示指令暫存器116。指令解碼刚的輸入 經由連接至指令暫存器116輸出的導線丨口接收來自於指令 暫存器1關處理器12指令,並且其輸出連接至控制電路 元件105的輸入。控制電路元件ι〇5的輸入h8也接收要執行 的Java位元組碼。控制電路元件1〇5的輸出係經由導線丨3〇連 接至多工器(Mux)和組合器1〇6的控制輸入、連接至具有程式 計數器108之暫存器1〇7和其他暫存器ι〇9的輸入/輸出端子、 連接至算術邏輯單元(ALU)110的輸入/輸出端子,以及經由 導線130連接至位址選擇邏輯ni的輸入/輸出端子。遞增 電路元件1 1 2的輸出係經由導線1 2 0連接至位址選擇邏輯 111的第一輸入。跳躍位址121係連接至位址選擇邏輯111的 第二輸入。例外狀況位址122係連接至位址選擇邏輯111的 第三輸入,以及分支位址123係連接至位址選擇邏輯111的 第四輸入。多工器(Mux)和組合器1〇6的輸出係連接至位址 -16- 本纸浪尺度適用中國國家揉準(CNS) A4規格(210X297公釐) 586072 發明説明(15 增式程式計數器值Pc。炊铉,拙"# η ^ ”曼執仃遞增程式計數器值與值
OxffffeOOO的邏輯「及( 二 I JNUed)連斤。這個布林運算的作用 疋將(PC+ 2 )值的低位十三位位元 丁一 u红疋&制變成零。產生的位址 會指向模擬程式碼表格72 M主夂去闽丄 , 1 / 2 ( μ參考圖6 )中第一位元組碼指 令群組的第一指令位冒。缚,云咅 、 置 μ /王…、’在本發明的某些具體實 施例中,可能不需要邏輯「 久」(AND)運算。而是,可截 短PC+2值的低位十三位位元。如果這個指標值沒有被截 短,則可能會執行與暫存器1〇9之暫存器以中儲存的了歸位 疋組碼值❾「或」(0Red)運算,以按對應於群組大小的量 進行移位。所t尤明的操作可高效率地將新程式計數器位址 編入模擬程式碼表格72内正確位置索引中,以致程式計數 器暫存器現在指令處理器12模擬之Java位元組碼之正確指 令群組的起點。用以構成指標值的替代方法是,直接串連 P〇2的高位十八位位元與暫存器&4中儲存的位元組碼 值,然後將5位位元零填入結果,以構成3 2位元位址。請 /主思’可用各種方式來構成跳躍位址。然而,不管構成跳 躍位址所使用的各種技術或組合,結果一定是指向模擬程 式碼表格7 2 (請參考圖6 )内對應於現行java位元組碼之正確 指令群組的起點。請再次注意,方程式9 2係用來在沒有發 生線程切換的情況下來計算跳躍位址。請注意,如果陳述 式9 1為真(true),則不會發生線程切換。陳述式9 1係測量 是否已越過切換計數(SWCOUNT)限定值(當資料處理系統應 實施程式工作變更的點),以決定是否應發生變更至另_ Java線程。因此,陳述式9 1需要比較決策值(如具有預先、夫 -18- 本纸張尺度適用中國國家標準(CNS) A4规格(210 X 297公釐) 裝 訂 線 586072 A7 __B7 ___ 五、發明説明(I6 ) 定值的計數值)與切換計數限定值。如果陳述式9 1為真 (true) ’則會產生第一結果,如果陳述式9 1不是真(true), 則會產生第二結果。但是,如果陳述式9 1不是真(tme),則 “ else”陳述式9 3會導致執行方程式9 4,以計算程式計數器 108中儲存的跳躍位址。請注意,方程式9 4中的「及」 (AND)運算可能相同於前面配合方程式9 2說明的「及」 (AND)運算。但是,方程式94中的「或」(〇R)運算係用來 編入索引至包括線程切換軟體的模擬程式碼表格9 2的一部 份中。請再次注意,如果方程式94中使用截短運算而不使 用「及」(AND)運算,則可將截短運算的結果串連或組合 常數0 X 8之線程切換軟體移位。陳述式9 5指示JAVASW指 令,然後遞減切換計數值(SWCOUNT)。顯而易見,本發明 的替代具體實施例可使用遞增計數器來取代遞減計數器, 或利用其他方式來持續追蹤線程切換,如在遇到切換之前 分配指定時間的計時器。雖然圖7所示的具體實施例係以 非常特定的方式來選取跳躍位址,但是本發明的替代具體 貫施例可使用其他的方程式來實施方程式9 2和9 4及陳述式 9 3。雖然參考圖式說明的本發明具體實施例使用方程式9 2 和94指定的特定位址以跳躍至位元組碼模擬序列,但是本 發明的替代具體實施例可使用方程式9 2和9 4的修改形式以 跳躍至其他期望的位址。雖然圖7所示的本發明具體實施 例說明用來跳躍至位元組碼模擬序列的處理器丨2指令,但 是本發明的替代具體實施例可使用此種類型的指令以依據 各種不同的用途來跳躍至複數個跳躍目的地位址的一個位 _____ -19- 本纸張尺度適用中B B家標準(CNS) A4規格(210 X 297公愛)~一 ---:-— 、發明説明(17 ) 址。因此’本發明不限定於跳躍至Java位元組碼模擬序 列’而是也適用於其他類型的跳躍。此外,陳述式9丨和9 3 可能是任何類型的可變條件,用以選取複數個跳躍目的地 位址的一個位址。應進一步明白,陳述式9 5可視需要使 用’並且某些其他具體實施例中可能未使用這個陳述式。 圖7所示的指令格式9 〇也可稱為微運算程式碼(叩⑺抝。 在較佳形式中,指令格式9〇係保存在圖8所示的指令暫存 态116中’由指令解碼104電路元件解碼,並且提供給控制 電路元件105,以在處理器丨2中執行JAVASW指令。 清注意’於JAVASW指令期間執行的跳躍操作一定會發 生。跳躍不疋視需要或附有條件的,而是一定會發生跳躍 至複數個跳躍目的地位址的一個位址。 請注意,R4<<5指示將預先決定值(在此情況下為位元 組碼值)向左移五位位元,之後才會載入至暫存器R4。在 圖7所示的本發明具體實施例中,每個指令的長度均是十 六位位元,因此佔用二個位元組儲存區。請注意,向左移 五位位元等於乘32位元線或十六個指令。請參考圖6,將 位元組碼值向左移五位位元(或乘三十二)的原因為,允許 移位至模擬程式碼表格7 2,以在模擬程式碼表格7 2内編製 正確位元組碼指令群組索引。因此,值R4<<5係用來將跳 躍目的地位址指標移動至模擬程式碼表格72内正確群組的 起點。 應明白,本發明的替代具體實施例可包括使用一個以上 指令來實施JAVASW指令功能。請注意,在本發明的一項具 -20- 本紙張尺度適用巾® a家標準(CNS) A4規格(210 X 297公釐) " ------—-- 586072 A7 B7 五、發明説明(is ) 體實施例中,JAVASW指令在單一指令中組合控制計數器及 實施表格跳躍的功能。除了方程式9 2或9 4的一個方程式以 外,圖7所示的陳述式9 5就是執行這個功能。請注意, JAVASW指令一定會採取指令流程變更,這不是針對條件分 支指令。請注意,為響應JAVASW指令所執行的跳躍是跳躍 至兩個位址的一個位址,這兩個位址均在預先決定表格範 圍(請參考圖4所示的模擬程式碼表格6 2 )。此外,在本發 明的一項具體實施例中,JAVASW指令執行表格跳躍操作, 其中表格跳躍的目的地是Java位元組碼值和計數器值的函 式。在本發明的一項具體實施例中,計數器值可能是java 解譯器使用的切換計數值(圖7所示的SWCOUNT),用以決 定應於何時發生線程切換。在一項具體實施例中,暫存器 109的一個暫存器可能是計數器。替代具體實施例可使用硬 體或軟體與處理器1 2中硬體的組合,以實施這個切換計數 器功能。針對JAVASW指令的一項具體實施例,計數器值有 條件地促使跳躍的一般進入點被回到模擬表格的預先決定 固定進入點(如圖7和8所示的0 X 8 )越位。替代具體實施例 可使用除了 0 X 8以外的位址。如圖7所示,一般表格進入點 相當於藉由執行方程式9 2所決定之PC值的位址計算,並且 於未發生線程切換時發生。當發生線程切換時,則不會使 用對應於方程式9 2的一般表格進入點。而是,會被方程式 9 4定義的進入點越位,因為現在應執行線程切換所致,並 且現在通常再也不會進入通常已模擬之Java位元組碼的模 擬程式碼。 -21- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
線 586072 A7 __ B7_ 五、發明説明(I9 ) 當使用非越位表格進入點時,JAVASW指令提供經由信號 交換信號(handshake signal,屬於共處理器介面3 〇的一部份) 附有條件地發出信號至硬體加速器(例如,共處理器1 4、 1 6 )。信號交換信號允許硬體加速器決定處理器1 2是否正 在執行圖7所示的方程式9 2 (在處理器1 2與硬體加速器模 Μ位元組碼的情況下),或處理器1 2是否正在藉由執行圖7 所示的方程式9 4以進行線程切換(在硬體加速器未執行目 ㈤k元組碼板擬的情況下)ό 另外,JAVASW指令可提供一種調度機制,以允許針對一 小組位元組碼值越位圖6所示的一般表格結構。例如,針 對需要十六個指令位置以上的一般執行型Java位元組碼, 並且因此會使所配置群組大小溢位,可提供硬體以強制 JAVASW指令跳躍至模擬程式碼表格範圍夕卜的位置,以執行 Java位元組碼所需的程式碼。請注意,只有實施此類調度 機制所需的硬體才是小型的解碼邏輯,以解碼不會使其所 配置指令位置溢位的一組所選Java位元組碼,並且在下文 的忒明中,圖8所示之多工器(Mux)和組合器1〇6的額外輸入 103與對應的控制一起允許這個所選Java位元組碼的模擬程 式碼跳躍至模擬程式碼表格範圍外的位置。請注意,這個 解碼電路元件可能被實施在處理器1 2的控制電路元件1〇5 内,如下文參考圖8的說明所述。 如上文所述,圖8只顯示圖i所示之處理器丨2相關部份的 具體實施例。再一次重申,用來模擬仏^位元組碼的指令 係由指令解碼電路元件1〇4從指令暫存器116接收。指令解 -22- 586072 A7 B7 五、發明説明(2〇 ) 碼電路元件104解碼模擬指令並且將解碼結果提供控制電路 元件105 9控制電路元件1〇5將控制信號提供給處理器1 2内 的其他元件,以執行這些指令。如上文所述,控制電路元 件105係經由導線130以雙向方式連接至暫存器107、算術邏 輯單元(ALU) 110的以及位址選擇邏輯111。控制電路元件 105將控制信號提供給多工器(Mux)和組合器106。本發明的 替代具體實施例可使用多工器(Mux)和組合器106的更多、 較少或不同的輸入。多工器(Mux)和組合器106的輸出是 JAVASW程式計數器位址124,以當作輸入至位址選擇邏輯 111的輸入。位址選擇邏輯111也接收分支位址123、例外狀 況位址122及跳躍位址121當作輸入。此外,位址選擇邏輯 111的輸出可藉由遞增電路元件112遞增,然後當作輸入經 由導線120反饋至位址選擇邏輯111。在圖中所示的本發明 具體實施例中,遞增電路元件112將位址遞增二個位元組, 這等於一個指令。本發明的替代具體實施例可使用遞增電 路元件112將位址遞增任何量。位址選擇邏輯111輸出的位 址係經由導線133提供至程式計數器108以及控制電路元件 105。控制電路元件105係用來產生跳躍位址121、例外狀況 位址122及分支位址123。控制電路元件105經由一條或一條 以上導線134接收一個或一個以上切換線程限定值信號。如 上文所述,暫存器107係經由導線130、131和132以雙向方式 連接至算術邏輯單元(ALU)110。 在圖式的形式中,多工器(Mux)和組合器106的各種輸入 可使資料處理系統1 0極具有彈性。多工器(Mux)和組合器 -23- / 本纸張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
線 586072 A7 B7 五、發明説明(2i ) 106的輸入113提供來自於程式計數器1〇8的現行pc+2值,其 用於組合多工器(Mux)和組合器106的其他輸入以構成各種 JAVASW程式計數器位址124值。例如提供常數〇 x 8的輸入 100可用組合輸入113以強制JAVASW程式計數器位址指向線 程切換軟體常式7 6,其位於圖6所示模擬程式碼表格7 2的 第一群組。當需要線程切換軟體時,就使用這個新程式計 數器位址。多工器(Mux)和組合器106的輸入101指示將暫存 器R4的内容向左移一數位位置,並且該移位等於乘二。如 果模擬程式碼表格7 2中的一個群組包含一單一指令,用以 儲存跳躍至通過模擬程式碼表格7 2末端的跳躍位址,其中 用以實施對應位元組碼執行的模擬程式碼位於該位址,則 輸入101係用來構成新的程式計數器位址。下文中將參考圖 9以進一步說明這個功能。多工器(Mux)和組合器ι〇6的輸入 102指示將暫存器R4的内容向左移五位,這等於乘32。向 左移位值R4<<5係用來組合輸入113以選取模擬程式碼表 格7 2中的群組。此類的移位是一種調整,用以當處理器i 2 正在結束前一 Java位元組碼執行並且轉遞至下一 java位元組 碼執行時產生新的程式計數器位址。多工器(Mux)和組合 备106的輸入1〇3允許針對一小組位元組碼值越位一般表格 結構。換言之,可藉由輸入至多工器(Mux)和組合器106的 表格外邵進入點(Entry Point Outside of Table) 103信號輸入,將模 擬程式碼表格7 2範圍外的位址強制變成預先決定值。請注 意’本發明的替代具體實施例可使多工器(Mux)和組合器 106具有其他輸入,用以依據資料處理系統1 0的需求來建 -24- 本紙張尺度適用中國國家槺準(CNS) A4規格(21〇x 297公釐) 裝 訂 線 586072 A7 B7 五、發明説明(22 ) 王不同的新程式計數器位址。請注意,多工器(Mu^和組 合器106的輸入可用來改變模擬程式碼表格72内的群組大 小。雖然已使用一個標準群組大小來呈現圖式的具體實施 例,但是本發明的替代具體實施例可使用多工器(幻和 組合器106的輸入所定義的不同群組大小或複數個群組大 小。這使得貧料處理系統1 〇的使用者擁有極大的彈性,以 決定模擬如Java之類高階語言之各種位元組碼所需的碼長 度。 現在請參考圖9,圖9顯示一調度機制,其允許針對大型 位元組碼值群组壓縮模擬程式碼表格。如前文參考圖5的 說明所述,針對某些位元組碼值,對應的模擬程式碼所需 的指令位置可能高於群組大小提供的指令位置。如果模擬 程式碼維持連續序列,則可簡化與圖5所示之步驟2和3相 關的内部操作。請注意,針對java位元組碼編碼,在〇狀〇至 Oxff範圍内之大部份的位元組碼所需的指令位置可能十六個 指令位置之群組大小提供的指令位置,因此可能希望有如 圖9所示的模擬程式碼表格8 3。因此,圖9顯示的模擬程式 碼表格8 3係當作儲存裝置,其包含兩百五十六個項目(每 位元組碼一個群組)’其中前一百九十二個項目(3 / 4個項 目)具有十六個指令位置的群組大小(位元組碼〇χ〇至〇xbf的 項目),而後六十四個項目(1 / 4個項目)具有一個指令位置 的群組大小。藉由以此方式建立表格結構,會按照前文參 考圖5和6的說明來利用位元組碼〇 X 〇至〇xbf的項目,而位 元組碼OxcO至Oxff的項目包含用以跳躍至對應位元組碼之模 -25- 本纸張尺度通用中國國家樣準(CNS) A4規格(210 X 297公釐) "
裝 訂
線 586072 A7 B7 五、發明説明(23 )
擬程式碼的跳躍指令。這個結構允許壓縮表格的大小,並 且這些更複雜位元組碼的模擬程式碼仍然可維持連續性, 而不是分割成如圖5所示的起始部份及最後部份。由於這 個調度機制不需要執行圖5所示的步驟2和3,所以可簡化 程式碼及縮減内邵操作。而是,採用替代步驟2以直接跳 躍至OxcO至Oxff範圍内之Java位元組碼的整個模擬常式。請重 新參考圖8,達成表格壓縮的方式為,利用多工器(Mux)和 組合為 106的輸入101與PC+ 2輸入113以及控制電路元件1〇5。 藉由按比例換算(scaling) R4 << 1,達將適當的編製索引至 表格83的底端六十四個項目。對應於多工器(Mux)和組合 器106之輸入113的PC+2值被控制電路元件1〇5修改,以指向 圖9所示的開端項目88,以響應在控制電路元件1〇5的輸入 118上解碼OxcO至Oxff範圍内的位元組碼。然後,將經修改值 組合R4<<1,以在多工器(Mux)和組合器1〇6中選取適當的 表格進入點。透過使用輸入118上接收到的Java位元組碼, 控制電路元件105可進一步實施使用者可決定型控制信號。 控制信號選擇預先決定群組大小的第一模擬表格結構或預 先決定群組大小的第二模擬表格結構,並且讓使用者擁有 運用如圖5所示之儲存裝置或如圖9所示之儲存裝置的彈 性。 雖然圖9所示的具體實施例呈現位元組碼〇狀〇至加任的特 定選擇以擁有壓縮表格項目,但是根據本發明可針對壓縮 表格項目來選取替代位元組碼群組,或選取不同數量的位 元組碼。 -26-
A7 B7 五、發明説明(24 ) ,現在,顯而易見,已提供一種用以組合及縮減與解譯器 迎圈相關之各方面内部操作的資料處理指令。指令可以一 種:式儲存在儲存媒體上,纟中儲存媒體可在積體電路晶 片範圍或疋與積體電路晶片無關且分開的儲存媒體。支 杈指令的硬體允許最佳化用來實施解譯器功能的記憶體。 因此,已顯著減少執行時間形式的内部操作、所需的硬體 資原量及所爲的解澤器軟體量。本發明組合計數器控制及 表格跳躍實施’其中-定會採取流程變更。〗AVASW指令將 表格跳躍目的地實施為位元組碼值與計數器值的函式,計 數ϋ值有冑件地導致使㈣先決定固$進人點來越位表格 中的般'^算進入點。當未貫施線程切換時,javASW指令 也經由信號交換信號有條件地發出信號至硬體加速器。在 圖中所示的具體實施例中,提供一種部置機制,其允許針 對小組位元組碼值越位一般表格結構。而且還提供一種 調度機制,其允許針對大型位元組碼值群組記憶體表格。 另外,1己憶體表格可被配置,以支援多重群組大小(例 如’ 2、8、1 ό位元組等等)以對應於簡單及複雜位元組 碼。在此情況下,會解碼微運算程式碼(位元組碼),並且 依據群組大小來選擇性分隔程式碼。 於前面的說明書中,已參考特定具體實施例來說明本發 明。然而,熟知技藝人士應明白本發明的各種修改並且容 易修改,而不會脫離如下文中申請專利範例所提供之本發 明的範疇與精神。因此,說明書暨附圖應視為解說,而不 應視為限制,並且所有此類的修改皆屬本發明範疇内。熟 -27- 本紙張尺度適用中國國家揉準(CNS) Α4規格(210 X 297公釐) 586072 A7 B7 五、發明説明(25 ) 知技藝人士應明白,圖中的元件是簡化的圖解,並且不需 要按比例繪製。例如,相對於其他元件,圖中部份元件的 尺寸可能過度放大,以利於更容易瞭解本發明的具體實施 例。 已說明關於特定具體實施例的優勢、其他優點及問題解 決方案。但是,可導致任何優勢、優點及解決方案發生或 更顯著的優勢、優點、問題解決方案及任何元件不應被理 解為任何或所有申請專利範例的關鍵、必要項或基本功能 或元件。本文中所使用的術語“包括,,、“包含,,或其任何其 他的變化都是用來涵蓋非專有内含項,使得包括元件清單 的方法、方法、物品或裝置不僅包括這些元件,而且還包 括未明確列出或此類方法、方法、物品或裝置原有的其他 元件。 -28- 本紙張尺度適用中國國家標準(CNS) A4规格(210 X 297公釐)

Claims (1)

  1. 586072 第090132540號專利申請案 中文申請專利範圍替換本(92年12月)
    申請專利範圍 L 一種在一資料處理系統中之程式執行的方法,該資料處 理系統包括用以擷取位於將一第一位址的一第一指令之擷取 裝置;以及用以使用該資料處理系統來執行該第1二指令之 執行裝置,該方法包括: 執行該第一指令; 裝 依據一值來選取一跳躍位址,其方式是如果該值與一 預先決足值的比較結果為一第一結果,則提供該跳躍位 址的一第二位址,並且如果該值與該預先決定值的比較 結果為一第二結果,則提供該跳躍位址的一第三位址, 其中该第一位址及該第三位址均不是連續於該第一位 址;以及 玎 在該程式執行中一定實施一控制變更,以響應執行該 第一指令’其方式是將該程式執行重新導向至該跳躍位 址。 線 2.如申請專利範圍第1項之方法,其中該第一結果是該值大 於該預先決定值的比較決策,而該第二結果是該值小於 或等於該預先決定值的比較決策。 3·如申請專利範圍第1項之方法,進一步包括: 產生該跳躍位址,其方式維護一具有一位址值的程式 計數器,於程式執行期間該程式計數器會遞增,以及截 短該位址值的預先數量低位位元,並且將截短結果組合 一移位以建立該跳躍位址。 4.如申請專利範圍第1項之方法,進一步包括: 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586072
    提供一具有一預先決定範圍位址的儲存裝置,用以儲 存該執行裝置所要執行的處理指令,該等處理指令係以 群組方式配置’每個群組均與一程式的預先決定微運算 程式碼互相關聯。 5·如申請專利範圍第4項之方法,進一步包括: 在一預先決定數量之指令位置的區段中建立該儲存裝 置結構’預先決定數量區段的每個區段均專用於儲存該 等指令。 6·如申請專利範圍第4項之方法,進一步包括: 裝 將茲等處理指令執行從該儲存裝置之該等區段的一個 區段導向至一預先決定範圍位址範圍以外的位址,接著 將程式執行重新導向回到該儲存裝置之該等區段的另一 個區段之預先決定部分。 7· —種資料處理系統,包括·· 一記憶體,用以儲存複數個程式指令; 線 一處理器,其經由一資料匯流排耦合至該記憶體,用 以從该記憶體擷取該等程式指令,並且選擇性執行該等 複數個程式指令;以及 一儲存裝置,用以儲存該處理器所要執行的複數個處 理指令,該等複數個處理指令係以群組方式配置,其中 每個群組均與該等複數個處理指令的一個預先決定處理 指令互相關聯; 、處理器於一預先決定位址執行一預先決定處理指令, 並且依據一值來選取一跳躍位址,其方式是如果該值與
    586072
    申請專利範圍 A B c D 一預先決定值的比較結果為一第一結果,則提供該跳躍 位址的一第一位址,並且如果該值與該預先決定值的比 較結果為一第二結果,則提供該跳躍位址的一第二位 址其中居第一位址及該第二位址均不是連續於該預先 決定位址。執行該預先決定處理指令一定會在程式執行 中實施一控制變更。 8·如申請專利範圍第7項之資料處理系統,其中該處理器進 一步包括: 一指令暫存器,用以接收該等程式指令; 一指令解碼器,其耦合至該指令暫存器,用以將該等 程式指令解碼成為特定微運算程式碼值; 一控制電路,其耦合至該指令解碼器,用以提供控制 信號以響應該等特定微運算程式碼值; 一位址產生電路元件,其耦合至該控制電路,用以接 收該等控制信號以及建立該跳躍位址; 數個暫存器,其耦合至該位址產生電路元件,用以儲 存微運算程式碼以響應該控制電路;以及 一算術邏輯單元,其耦合至該位址產生電路元件及該 控制電路,該算術邏輯單元處理該等暫存器儲存的運算 元。 9.如申請專利範圍第8項之資料處理系統,其中該控制電路 進一步包括一使用者可決定控制信號,用以選取一預先 決定群組大小的第一結構,或一預先決定群組大小的第 二結構。 -3 - 本纸張尺度適用中國國豕標準(CNS) A4規格^210X 297公藿) 586072 - 第〇9〇132540號專利申請案 V 中中文圖式替換頁(92年12月) JAVASW 解譯器切換 作業:?兆躍至位元組碼模擬序列 91—π (SWCOUNTKO) 92 〜PC〈-[((PC+2) & OxffffeOOO)丨(R4《5)]; 幻〜ELSE 94 〜PC〈-[((PC+2) & OxffffeOOO) | (0x8)]; 95 〜SWC0UNT--; 組合 語法: MVASW RX 說明:跳躍至位元組碼模擬序列。將(PC+2)值的低位十三位位元強制 變成零’並且依據SWC0NT(位於暫存器R12中)的狀態,將暫存器 RX中的按比例換算值執行邏輯“或,,(0R)運算,或常數值〇χ8邏輯 “或’’(OR)運算,並且指令執行在新pC值繼續^ swc〇N丁暫存路 R12為遞減式。請注意,因為pc+2係當作基值使用,所以在指令 群組255的最後指令中不應用MVASW指令。· 條件程式碼:INAFFECTED · 指令格式: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 〇 指令檔位 90- JAVA解譯器切換支援係由JAVASW指令提供。這個制. 流程被導向至指令群組表格。大部份群組係由丨6個成, 並且相當於一單一 JAVA位元組碼。 Him
    -36-
TW090132540A 2001-02-09 2001-12-27 Data processor and method of operation TW586072B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/779,886 US6857063B2 (en) 2001-02-09 2001-02-09 Data processor and method of operation

Publications (1)

Publication Number Publication Date
TW586072B true TW586072B (en) 2004-05-01

Family

ID=25117889

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090132540A TW586072B (en) 2001-02-09 2001-12-27 Data processor and method of operation

Country Status (8)

Country Link
US (1) US6857063B2 (zh)
EP (1) EP1360582A2 (zh)
JP (1) JP2004527824A (zh)
KR (1) KR100867564B1 (zh)
CN (1) CN1318957C (zh)
AU (1) AU2002234146A1 (zh)
TW (1) TW586072B (zh)
WO (1) WO2002065276A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713348B2 (en) 2010-08-30 2014-04-29 Mediatek Inc. Apparatus for performing timer management regarding a system timer scheduler service, and associated method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088703A1 (en) * 2002-11-05 2004-05-06 Nedim Fresko Mechanism for implementing an interpreter with hierarchical execution loops
CA2434280A1 (en) * 2003-07-03 2005-01-03 Zhong L. Wang Method and apparatus to guarantee type and initialization safety in multihreaded programs
ITRM20030354A1 (it) 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
KR100678912B1 (ko) * 2005-10-18 2007-02-05 삼성전자주식회사 메소드 바이트코드 해석 방법 및 상기 방법에 의해동작하는 시스템
US7584344B2 (en) 2006-05-02 2009-09-01 Freescale Semiconductor, Inc. Instruction for conditionally yielding to a ready thread based on priority criteria
US8627303B2 (en) * 2009-11-30 2014-01-07 International Business Machines Corporation Memory optimization of virtual machine code by partitioning extraneous information
US9823927B2 (en) * 2012-11-30 2017-11-21 Intel Corporation Range selection for data parallel programming environments
US20160179542A1 (en) * 2014-12-23 2016-06-23 Patrick P. Lai Instruction and logic to perform a fused single cycle increment-compare-jump
US11385897B2 (en) * 2019-10-01 2022-07-12 Marvell Asia Pte, Ltd. Merge execution unit for microinstructions

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE303056B (zh) * 1967-08-31 1968-08-12 Ericsson Telefon Ab L M
DE2921430A1 (de) * 1979-05-26 1980-12-04 Haarmann & Reimer Gmbh 3-methyl-5-keto- alpha , omega -alken- dicarbonsaeuren, verfahren zu ihrer herstellung und ihre verwendung zur herstellung makrocyclischer beta -methyl-ketone
DE3650740D1 (de) 1985-11-08 2000-04-06 Nec Corp Mikroprogrammsteuereinheit
US4755935A (en) * 1986-01-27 1988-07-05 Schlumberger Technology Corporation Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
US5434985A (en) 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
JP2857600B2 (ja) * 1995-05-11 1999-02-17 松下電器産業株式会社 プロセッサ及びプログラム翻訳装置
JPH10171665A (ja) 1996-12-09 1998-06-26 Toshiba Corp ジャンプコード・ジェネレータ、割り込みプログラム選択装置、割り込みプログラム選択方式、及び計算機
US6021273A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Interpreter generation and implementation utilizing interpreter states and register caching
US6039765A (en) 1997-12-15 2000-03-21 Motorola, Inc. Computer instruction which generates multiple results of different data types to improve software emulation
US6009261A (en) * 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6148437A (en) 1998-05-04 2000-11-14 Hewlett-Packard Company System and method for jump-evaluated trace designation
US6233678B1 (en) * 1998-11-05 2001-05-15 Hewlett-Packard Company Method and apparatus for profiling of non-instrumented programs and dynamic processing of profile data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713348B2 (en) 2010-08-30 2014-04-29 Mediatek Inc. Apparatus for performing timer management regarding a system timer scheduler service, and associated method

Also Published As

Publication number Publication date
US6857063B2 (en) 2005-02-15
KR20030077612A (ko) 2003-10-01
AU2002234146A1 (en) 2002-08-28
EP1360582A2 (en) 2003-11-12
JP2004527824A (ja) 2004-09-09
US20020112149A1 (en) 2002-08-15
WO2002065276A3 (en) 2003-05-15
CN1531680A (zh) 2004-09-22
WO2002065276A2 (en) 2002-08-22
CN1318957C (zh) 2007-05-30
KR100867564B1 (ko) 2008-11-10

Similar Documents

Publication Publication Date Title
US11422837B2 (en) Virtual machine coprocessor for accelerating software execution
US7080362B2 (en) Java virtual machine hardware for RISC and CISC processors
JP4833499B2 (ja) レジスタ内へのスタックオペランドの格納
WO1999018484A2 (en) A processing device for executing virtual machine instructions
WO2000034844A9 (en) Java virtual machine hardware for risc and cisc processors
JPWO2003025743A1 (ja) Javaアクセラレータを備えたプロセッサシステム
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JP2002163116A (ja) マイクロコードエンジンを用いたJava(登録商標)ハードウェアアクセラレータ
JP2001195250A (ja) 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
US8769508B2 (en) Virtual machine hardware for RISC and CISC processors
Gwennap Intel, HP make EPIC disclosure
TW586072B (en) Data processor and method of operation
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
KR101497346B1 (ko) 명령으로서 데이터 값을 평가하기 위한 시스템 및 방법
US6216218B1 (en) Processor having a datapath and control logic constituted with basis execution blocks
Hussain et al. Design and FPGA Implementation of Five Stage Pipelined RISC-V Processor
JP4418509B2 (ja) Javaアクセラレータを備えたプロセッサシステム
Gloria VISA: A variable instruction set architecture
Maier Reconfigurable Extension for CarCore
Thongkaew et al. Register-Based Process Virtual Machine Acceleration Using Hardware Extension with Hybrid Execution
MAIER A single cycle 16-bit microcontroller and DSP core for systems on chips solutions
Fletzer ausgeführt am Institut für Technische Informatik, Embedded Computing Systems Group Technische Universität Wien
Kavi et al. Execution And Cache Performance Of A Decoupled Non-Blocking Multithreaded Architecture

Legal Events

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