JP2009176311A - Javaアクセラレータを備えたプロセッサシステム - Google Patents
Javaアクセラレータを備えたプロセッサシステム Download PDFInfo
- Publication number
- JP2009176311A JP2009176311A JP2009069256A JP2009069256A JP2009176311A JP 2009176311 A JP2009176311 A JP 2009176311A JP 2009069256 A JP2009069256 A JP 2009069256A JP 2009069256 A JP2009069256 A JP 2009069256A JP 2009176311 A JP2009176311 A JP 2009176311A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- java
- stack
- processor
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 238000013519 translation Methods 0.000 description 18
- 238000001514 detection method Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】命令デコーダ22と、汎用レジスタ61と、演算器60とを有するプロセッサと、Javaアクセラレータ30とからなるプロセッサシステムにおいて、上記Javaアクセラレータ30が、Javaバイトコード列を上記プロセッサに固有の命令列に変換するバイトコードトランスレータ40と、Javaのオペランドスタックを汎用レジスタにマッピングすると共に、上記プロセッサにとって冗長となるバイトコードを検出するレジスタ状態制御ユニット50とからなり、冗長バイトコードが検出された時、上記バイトコードトランスレータ40から命令デコーダ22への固有命令の供給が抑制される。
【選択図】図1
Description
(2)Javaの実行モデルは、スタック上での演算を仮定しているため、Javaプログラムをレジスタベースの通常のプロセッサで実行した場合、必然的にメモリアクセスが頻発し、演算器で余計な実行サイクルを必要とする。
本発明の他の目的は、オペランドスタックとローカル変数の汎用レジスタへのマッピングを柔軟に制御できるJavaアクセラレータを備えたプロセッサシステムを提供することにある。
上記バイトコードトランスレータにおいてオペランドスタックへのローカル変数のロード命令を示すバイトコードが処理されている間に、上記レジスタ状態制御ユニットが、上記バイトコードが冗長か否かを判定し、冗長バイトコードとして検出された時、上記バイトコードトランスレータに対して固有命令の出力抑制信号を発行する。
第1図は、本発明によるJavaアクセラレータ30を備えたプロセッサの概略的な構成を示す。
プロセッサ1は、主記憶2と接続されている。主記憶2には、プロセッサ1に固有の命令形式で記述された通常のプログラムとデータの他に、Javaプログラムを実行するためのJVM、バイトコード列、フレームスタックなどが保持されている。プロセッサ1は、主記憶2に格納されたプログラム(プロセッサ1に固有の命令列またはJavaバイトコード列)の一部を保持するための命令キャッシュ10と、主記憶2に格納されたデータまたはフレームスタックの一部を保持するためのデータキャッシュ11と、主記憶2に接続された主記憶制御ユニット12とを有し、該主記憶制御ユニット12によって、主記憶2と命令キャッシュ10およびデータキャッシュ11の間のデータ受け渡しが制御される。
バイトコードトランスレータ40は、命令キャッシュ10から読み出されたバイトコード列を一時的に保持するためのバッファjava_inst420と、該java_inst420から読み出されたバイトコードをプロセッサ1に固有の命令コードに変換するためのトランスレートエンジン430と、上記java_inst420へのバイトコード列の読み込みを制御するためのバッファ管理ユニット400と、入力バイトコードがローカル変数領域からオペランドスタックへの変数ロード命令(iload、aloadなど)か否かを検出するためのロード検出ユニット410と、入力バイトコードがオペランドスタックへのローカル変数ロード命令であった場合に、入力バイトコードが示すindexを出力するためのゲート411を備える。
レジスタ状態制御ユニット50は、汎用レジスタ61の各エントリと対応して設けられた複数のレジスタ内容管理ロジック500−i(i=1〜N)と、第6図に示したJVMのオペランドスタック88の汎用レジスタ61へのマッピングを管理するためのスタック管理レジスタid_stack540とを備えている。
命令キャッシュ10からバイトコードトランスレータ40に供給されたJavaバイトコードは、バッファjava_inst420に一時的に格納された後、トランスレートエンジン430に取り込まれ、各バイトコードに対応した固有命令に変換される。トランスレートエンジン430で生成された固有命令うち、オペコード部は、信号線430Aを介して出力バッファtr_inst421に入力される。
最初に、バイトコードトランスレータ40が上述したフレームスタックへの変数ロード命令以外の一般的な入力バイトコードを処理している場合のレジスタ状態制御ユニット50の動作について述べる。
先ず、繰り返しループにおける上記ロード命令の第1回目の変換処理、すなわち、当該ロード命令によって読み出されるローカル変数がまだ汎用レジスタ61にマッピングされていない場合の動作について説明する。
バイトコードトランスレータ40から出力された信号load_vldがアサートされ、変数ロード命令のインデックス値がload_indexにより通知されると、何れかのレジスタ内容管理ロジック500−kにおいて、インデックスメモリreg_idx503の内容と通知インデックスload_indexとが一致し、AND回路505の出力がオン状態となる。この時、OR回路510から出力される検知信号reg_hitがアサートされる。また、上記AND回路505に接続されたエンコーダ511から、上記レジスタ内容管理ロジック500−kと対応するレジスタ番号kが出力される。
本発明のJavaアクセラレータを備えたプロセッサは、アプリケーション処理プロセッサ1として使用される。Javaプログラムは、上記プロセッサ1に接続されたアプリケーションメモリ2に予め登録される。但し、Javaプログラムの一部は、ネットワークを介して上記メモリ2にダウンロードされてもよい。この場合、アンテナ6で受信されたJavaプログラムは、RFインターフェース5を介してベースバンド処理プロセッサ3に入力され、フォーマット変換された後、プロセッサ1を介してアプリケーションメモリ2に格納される。
Javaプログラムは、マイク71またはテンキー73からの入力に応答して実行され、実行結果は、I/O処理部7を介して液晶ディスプレイ70あるいはスピーカ72に出力される。上記システム構成により、予めメモリに内蔵されたJavaアプリケーションプログラム、あるいはインターネットを介して配信されるJavaアプリケーションプログラムを高速に実行可能な携帯端末システムを提供できる。
11:データキャッシュ、12:主記憶制御ユニット、
20:命令バッファ、21:セレクタ、22:命令デコーダ、
23:命令フェッチユニット、30:Javaアクセラレータ、
40:バイトコードトランスレータ、50:レジスタ状態制御ユニット、
60:演算器、61:汎用レジスタ。
Claims (1)
- 命令デコーダと、複数のレジスタ領域からなる汎用レジスタと、少なくとも1つの演算器とを有するプロセッサと、Javaバイトコード列を上記プロセッサに固有の命令列に変換して上記命令デコーダに供給するJavaアクセラレータとからなるプロセッサシステムにおいて、
上記Javaアクセラレータが、上記汎用レジスタの各レジスタ領域の使用状態を示す状態情報を記憶するための手段と、上記状態情報に基づいて空き状態にあるレジスタ領域または解放すべきレジスタ領域を選択することによって、Javaのオペランドスタックを上記汎用レジスタに動的にマッピングするための手段とを備えたことを特徴とするプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009069256A JP4418509B2 (ja) | 2009-03-23 | 2009-03-23 | Javaアクセラレータを備えたプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009069256A JP4418509B2 (ja) | 2009-03-23 | 2009-03-23 | Javaアクセラレータを備えたプロセッサシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003529306A Division JP4485198B2 (ja) | 2001-09-12 | 2001-09-12 | Javaアクセラレータを備えたプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009176311A true JP2009176311A (ja) | 2009-08-06 |
JP4418509B2 JP4418509B2 (ja) | 2010-02-17 |
Family
ID=41031255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009069256A Expired - Fee Related JP4418509B2 (ja) | 2009-03-23 | 2009-03-23 | Javaアクセラレータを備えたプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4418509B2 (ja) |
-
2009
- 2009-03-23 JP JP2009069256A patent/JP4418509B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4418509B2 (ja) | 2010-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4485198B2 (ja) | Javaアクセラレータを備えたプロセッサシステム | |
JP4171496B2 (ja) | スタックを用いる演算マシンのための命令フォールディング処理 | |
KR101817397B1 (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
CN108369511B (zh) | 用于基于通道的跨步存储操作的指令和逻辑 | |
US9146740B2 (en) | Branch prediction preloading | |
CN111124498A (zh) | 用于推测执行侧信道缓解的装置和方法 | |
US20200364054A1 (en) | Processor subroutine cache | |
TWI515652B (zh) | 具有在硬體中的分支計數表的指令最佳化處理器 | |
JP2000501217A (ja) | 配列アクセス境界チェックを加速したプロセッサ | |
JP2000515270A (ja) | ネットワークまたはローカルメモリから受け取った命令セットの実行のための二重命令セットプロセッサ | |
JP2001195250A (ja) | 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置 | |
TWI781588B (zh) | 包含用於控制流向終止的模式特定結束分支之設備、系統及方法 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
US20150227373A1 (en) | Stop bits and predication for enhanced instruction stream control | |
JP2021174513A (ja) | データ依存脆弱分岐の機会主義的再誘導のための命令セットアーキテクチャベース自動負荷追跡 | |
JP6073392B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
EP1053522A1 (en) | Microprocessor including multiple register files occupying the same logical space | |
US20060075208A1 (en) | Microprocessor instruction using address index values to enable access of a virtual buffer in circular fashion | |
JP3345787B2 (ja) | データ処理装置 | |
TW201732562A (zh) | 控制轉移強制執行中的非追蹤控制轉移 | |
JP4418509B2 (ja) | Javaアクセラレータを備えたプロセッサシステム | |
US7757067B2 (en) | Pre-decoding bytecode prefixes selectively incrementing stack machine program counter | |
US20240036866A1 (en) | Multiple instruction set architectures on a processing device | |
WO2006073512A1 (en) | Microprocessor instruction to enable access of a virtual buffer in circular fashion | |
WO2020243044A1 (en) | Processor, system and method of storing register data elements. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4418509 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131204 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |