JP4602047B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP4602047B2 JP4602047B2 JP2004315099A JP2004315099A JP4602047B2 JP 4602047 B2 JP4602047 B2 JP 4602047B2 JP 2004315099 A JP2004315099 A JP 2004315099A JP 2004315099 A JP2004315099 A JP 2004315099A JP 4602047 B2 JP4602047 B2 JP 4602047B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- information
- operation mode
- bytecode
- unit
- 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.)
- Expired - Fee Related
Links
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
バイトコードアクセラレータ5を用いたハードウェア処理では、バイトコードのオペランドスタックの上位側の一部をレジスタファイル14に置き、スタック間演算をレジスタ間演算とすることにより高速化を行なっている。このため、バイトコードアクセラレータ5ではレジスタファイル14上に置かれるスタック情報を管理している。アドレス変換バッファ(TLB)ミスや割込みなどの例外処理ではバイトコードアクセラレータ5の処理を終了し、例外処理が行なわれるが、復帰時に必要となるスタック情報をバイトコードアクセラレータ5からレジスタファイル14上に転送する必要がある。バイトコードアクセラレータ5の内部情報はこのカテゴリに含まれる。
バイトコードは1から数バイトのコード長を持つ。最初のバイトコードがオペコード(オペレーションコード)で、それ以外はオペランドである。複雑なバイトコードであってソフトウェア仮想マシンで処理されるバイトコード(非サポートバイトコードと称する)のうち、一つ以上のオペランドを持つバイトコードは、ソフトウェア仮想マシンで必ずリードされるので、バイトコードアクセラレータ5でアラインされたオペランドデータがレジスタファイル14上にあると、高速化に有効であるからである。
バイトコードアクセラレータ5による処理の占有を避け、ソフトウェア仮想マシン一定の間隔で何らかの処理を行うことを目的として、特定のバイトコードを複数回実行することをカウントすることで実現できる。全てソフトウェア仮想マシン上のインタプリタで処理される場合は、ソフトウェア仮想マシンでバイトコードの実行数を管理すればよいが、バイトコードアクセラレータ5でバイトコードが実行される場合、ソフトウェア仮想マシンでバイトコードの実行数を把握することができない。そこで、バイトコードアクセラレータ5はイベントをカウントする機能を持つ。イベントカウント機能には、実行バイトコード数と後方分岐数のカウントがある。イベントカウンタレジスタはメモリマップドレジスタとされえ、ソフトウェア仮想マシンでリードまたは改変することができる。イベントレジスタはメモリマップドレジスタなのでアクセスが非常に低速である。スレッドの実行を中断する場合、ソフトウェア仮想マシンでイベントレジスタの値を改変した値をバイトコードアクセラレータ5が使用する。そのため、イベントカウンタがレジスタファイル14上にあると高速化に効果が有る。バイトコードアクセラレータ5のメモリマップドレジスタの情報のように、リードまたは改変が可能だが非常に多くのサイクル数を要する情報の一例として位置付けられる。
2 命令キャッシュ(I−Cache)
3 データキャッシュ(D−Cache)
4 中央処理装置(CPU)
5 バイトコードアクセラレータ(BCA)
6 命令バス(I−Bus)
7 データバス(D−Bus)
8 メイン内部バス(M−Bus)
9 周辺バス(P−Bus)
10 命令フェッチ部(FET)
11 セレクタ
12 デコード部(DEC)
13 命令実行部(EXE)
14 レジスタファイル(REG)
15 制御部(CTL)
20 バイトコードフェッチ部(BFA)
21 バイトコード変換論理部(TRS)
22 転送バス(BCABUS)
23 出力セレクタ
24 出力セレクタ選択論理(OSL)
25 オペランド出力部(OPR)
26 内部ステート部(STM)
27 コンフィグレーションレジスタ部(CFG)
28 入力選択論理(ISL)
30 SDRAM用バスステートコントローラ(SBSC)
31 周辺バス用バスブリッジ(PB)
32 シリアルI/Oモジュール(SIO)
33 I2Cコントローラ(I2C)
34 SDRAM
35、36 セレクタ
40 バイトコード長判定部(BCLD)
41 非サポートバイトコード判定論理部(USRD)
42、46 カウンタとフラグ生成部(CFLG)
43、47 模擬CPUパイプライン部(SCP)
44、48 ダウンカウンタ(DCUNT)
45 アクセラレータ起動信号
49、50 入力セレクタ
60 ソフトウェア仮想マシン(SOFT_VM)
61 初期化ルーチン部(INIT)
62 起動部(HOOKUP)
63 ディスパッチテーブル部(DISP_TBL)
64 ディスパッチテーブル内アドレス(ADDR)
65 インタプリタ部(INTPRET)
ACT…起動
USP BCODE…非サポートバイトコード検出
81 インターフェース(I/F)
82 周辺インターフェース(PPH)
83 カメラ(CMR)
84 メモリカード(CARD)84
85 音源部(SOD)
86 キーボード(KEY)
87 液晶ディスプレイ(LCD)
88 メモリ(MRYa)
89 ベースバンドプロセッサ(BBP)89、
90 高周波部(RF)
91 メモリ(MRYb)
92 3次元グラフィックアクセラレータ(3DG)
93 2次元グラフィックアクセラレータ(2DG)
94 全地球測位システム(GPS)
95 メモリ(MRYc)
100 外部バス(EXBUS1)
101 外部バス(EXBUS2)
Claims (5)
- 複数のレジスタを含むレジスタファイルと、
前記レジスタファイルを利用して第1フォーマット命令を実行する命令実行部と、
第2フォーマット命令を第1フォーマット命令に変換する命令変換回路とを有する情報処理装置であって、
前記情報処理装置は、第2フォーマット命令で記述された第1プログラムを実行するとき、前記命令変換回路によって変換した第1フォーマット命令を実行する第1動作モードと、前記第1フォーマット命令で記述された変換ソフトウェアによって変換した第1フォーマット命令を実行する第2動作モードとを有し、
前記レジスタファイルと命令変換回路の間にデータを転送する専用バスを有し、
前記命令変換回路は、第1動作モードから第2動作モードに移行するとき、命令実行部による命令実行に応じて複数の情報を選択的に前記専用バスに出力してレジスタファイルに格納可能とし、第2動作モードから第1動作モードに移行するとき命令実行部による命令実行に応じて前記レジスタファイルから専用バスに出力された情報を取り込む選択制御回路と、前記第2フォーマット命令を入力とするオペランド出力部とを更に有し、
前記命令変換回路から前記専用バスに出力される前記複数の情報には、前記オペランド出力部によって前記第2フォーマット命令から切り出されたオペランド部が含まれる情報処理装置。 - 前記複数の情報には、前記第2フォーマット命令の実行数を示すイベントカウント情報が更に含まれる請求項1記載の情報処理装置。
- 前記選択制御回路は、前記専用バスに出力する情報を選択するセレクタと、第1動作モードから第2動作モードに移行するとき命令実行部による命令実行に応じて前記セレクタの選択動作を制御する出力選択論理回路と、第2動作モードから第1動作モードに移行するとき命令実行部による命令実行に応じて専用バスに出力された情報の取り込み先を選択制御する入力選択論理回路とを有する請求項1記載の情報処理装置。
- 前記選択制御回路は、命令実行部のパイプラインを模擬する模擬パイプラインを有し、前記模擬パイプラインにおける所定のパイプラインステージに同期して前記専用バスへ情報を出力するタイミングと、専用バスの情報を取り込むタイミングとを生成する請求項3記載の情報処理装置。
- 第1動作モードから第2動作モードに移行するとき、前記命令変換回路は命令実行部に複数のストア命令を実行させ、前記選択制御回路は前記ストア命令の実行に応じて複数の情報を選択的に前記専用バスに出力し、第2動作モードから第1動作モードに移行するとき、前記命令変換回路は命令実行部に複数のロード命令を実行させ、前記選択制御回路は前記ロード命令の実行に応じて前記レジスタファイルから専用バスに出力された情報を取り込む請求項1記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004315099A JP4602047B2 (ja) | 2004-10-29 | 2004-10-29 | 情報処理装置 |
US11/260,423 US7853776B2 (en) | 2004-10-29 | 2005-10-28 | Handover between software and hardware accelerator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004315099A JP4602047B2 (ja) | 2004-10-29 | 2004-10-29 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006127183A JP2006127183A (ja) | 2006-05-18 |
JP4602047B2 true JP4602047B2 (ja) | 2010-12-22 |
Family
ID=36317834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004315099A Expired - Fee Related JP4602047B2 (ja) | 2004-10-29 | 2004-10-29 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7853776B2 (ja) |
JP (1) | JP4602047B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024708B2 (en) | 2006-06-20 | 2011-09-20 | Google Inc. | Systems and methods for debugging an application running on a parallel-processing computer system |
US8375368B2 (en) * | 2006-06-20 | 2013-02-12 | Google Inc. | Systems and methods for profiling an application running on a parallel-processing computer system |
US8146066B2 (en) * | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
US8381202B2 (en) * | 2006-06-20 | 2013-02-19 | Google Inc. | Runtime system for executing an application in a parallel-processing computer system |
US7814486B2 (en) * | 2006-06-20 | 2010-10-12 | Google Inc. | Multi-thread runtime system |
US8261270B2 (en) | 2006-06-20 | 2012-09-04 | Google Inc. | Systems and methods for generating reference results using a parallel-processing computer system |
US8108844B2 (en) | 2006-06-20 | 2012-01-31 | Google Inc. | Systems and methods for dynamically choosing a processing element for a compute kernel |
US8136102B2 (en) * | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for compiling an application for a parallel-processing computer system |
US8136104B2 (en) | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for determining compute kernels for an application in a parallel-processing computer system |
US8443348B2 (en) | 2006-06-20 | 2013-05-14 | Google Inc. | Application program interface of a parallel-processing computer system that supports multiple programming languages |
JP5555514B2 (ja) * | 2010-03-17 | 2014-07-23 | ルネサスエレクトロニクス株式会社 | プロセッサシステム |
US8812826B2 (en) * | 2010-10-20 | 2014-08-19 | International Business Machines Corporation | Processor testing |
US9471344B1 (en) | 2012-03-27 | 2016-10-18 | Marvell International Ltd. | Hardware support for processing virtual machine instructions |
US9836316B2 (en) * | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
US9542211B2 (en) * | 2014-03-26 | 2017-01-10 | Intel Corporation | Co-designed dynamic language accelerator for a processor |
EP3089035A1 (en) * | 2015-04-30 | 2016-11-02 | Virtual Open Systems | Virtualization manager for reconfigurable hardware accelerators |
US20170063309A1 (en) * | 2015-08-27 | 2017-03-02 | Qualcomm Incorporated | Methods and apparatus for reducing transient glitches in audio amplifiers |
US10223236B2 (en) * | 2017-02-03 | 2019-03-05 | International Business Machines Corporation | Dynamic crash detection and debugging assistance |
US10802754B2 (en) * | 2018-03-12 | 2020-10-13 | Micron Technology, Inc. | Hardware-based power management integrated circuit register file write protection |
US10802854B2 (en) * | 2019-08-30 | 2020-10-13 | Alibaba Group Holding Limited | Method and apparatus for interpreting bytecode instruction stream |
CN114185603B (zh) * | 2021-11-08 | 2024-01-05 | 深圳云天励飞技术股份有限公司 | 一种智能加速卡的控制方法、服务器及智能加速卡 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319830A (ja) * | 1994-05-20 | 1995-12-08 | Matsushita Electric Ind Co Ltd | データ転送方法およびデータ転送装置並びにコンパイル方法 |
JPH11224199A (ja) * | 1998-02-06 | 1999-08-17 | Matsushita Electric Ind Co Ltd | 翻訳装置と情報処理装置および記録媒体 |
WO2003025743A1 (fr) * | 2001-09-12 | 2003-03-27 | Hitachi, Ltd. | Systeme processeur ayant un accelerateur java |
JP2004030222A (ja) * | 2002-06-26 | 2004-01-29 | Renesas Technology Corp | 情報処理装置 |
JP2004102375A (ja) * | 2002-09-05 | 2004-04-02 | Renesas Technology Corp | 情報処理装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3801643B2 (ja) * | 1996-01-24 | 2006-07-26 | サン・マイクロシステムズ・インコーポレイテッド | スタックを用いる演算マシンのための命令フォールディング処理 |
US6332215B1 (en) * | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US7162612B2 (en) * | 2000-08-16 | 2007-01-09 | Ip-First, Llc | Mechanism in a microprocessor for executing native instructions directly from memory |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
JP2002169696A (ja) * | 2000-12-04 | 2002-06-14 | Mitsubishi Electric Corp | データ処理装置 |
US6775763B2 (en) * | 2001-03-09 | 2004-08-10 | Koninklijke Philips Electronics N.V. | Bytecode instruction processor with switch instruction handling logic |
GB2376097B (en) * | 2001-05-31 | 2005-04-06 | Advanced Risc Mach Ltd | Configuration control within data processing systems |
US20030023958A1 (en) * | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US20040215444A1 (en) * | 2002-03-25 | 2004-10-28 | Patel Mukesh K. | Hardware-translator-based custom method invocation system and method |
US20040031022A1 (en) * | 2002-08-02 | 2004-02-12 | Masayuki Kabasawa | Information processing device for multiple instruction sets with reconfigurable mechanism |
JP4224430B2 (ja) * | 2003-07-07 | 2009-02-12 | 株式会社ルネサステクノロジ | 情報処理装置 |
-
2004
- 2004-10-29 JP JP2004315099A patent/JP4602047B2/ja not_active Expired - Fee Related
-
2005
- 2005-10-28 US US11/260,423 patent/US7853776B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319830A (ja) * | 1994-05-20 | 1995-12-08 | Matsushita Electric Ind Co Ltd | データ転送方法およびデータ転送装置並びにコンパイル方法 |
JPH11224199A (ja) * | 1998-02-06 | 1999-08-17 | Matsushita Electric Ind Co Ltd | 翻訳装置と情報処理装置および記録媒体 |
WO2003025743A1 (fr) * | 2001-09-12 | 2003-03-27 | Hitachi, Ltd. | Systeme processeur ayant un accelerateur java |
JP2004030222A (ja) * | 2002-06-26 | 2004-01-29 | Renesas Technology Corp | 情報処理装置 |
JP2004102375A (ja) * | 2002-09-05 | 2004-04-02 | Renesas Technology Corp | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US7853776B2 (en) | 2010-12-14 |
US20060101427A1 (en) | 2006-05-11 |
JP2006127183A (ja) | 2006-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4602047B2 (ja) | 情報処理装置 | |
US9003422B2 (en) | Microprocessor architecture having extendible logic | |
CN104951296B (zh) | 允许一种架构的代码模块使用另一种架构的库模块的架构间兼容模块 | |
TWI407366B (zh) | 具有微代碼之微處理器、在微處理器中儲存資料的方法、以及使用於計算裝置之電腦程式產品 | |
US8024554B2 (en) | Modifying an instruction stream using one or more bits to replace an instruction or to replace an instruction and to subsequently execute the replaced instruction | |
US20120023310A1 (en) | Intermediate Language Accelerator Chip | |
JP2016103280A (ja) | 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置 | |
JP2001195250A (ja) | 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置 | |
CN104346132B (zh) | 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机 | |
JP4035004B2 (ja) | 情報処理装置 | |
JP4224430B2 (ja) | 情報処理装置 | |
US20070174594A1 (en) | Processor having a read-tie instruction and a data mover engine that associates register addresses with memory addresses | |
US20210089305A1 (en) | Instruction executing method and apparatus | |
Tan et al. | Design and implementation of a Java processor | |
US8438549B1 (en) | Data processing with microcode designed with source coding | |
JPWO2004027600A1 (ja) | データ処理装置及びicカード | |
KR100809294B1 (ko) | 가상 머신에서 스레드 스케줄링을 수행하는 장치 및 그방법 | |
US9934124B2 (en) | Implementation of processor trace in a processor that supports binary translation | |
CN117971320B (zh) | 用于显示系统的微处理器及寄存器写入方法 | |
KR20040034620A (ko) | 중간 언어 가속기 칩 | |
Xin et al. | The architecture of the Java extension of 32-bit RISC for smart cards and other embedded systems | |
WO2003014921A1 (en) | Intermediate language accelerator chip | |
KR20170067986A (ko) | 프로세서, 이를 포함하는 컴퓨팅 시스템 및 프로세서의 구동 방법 | |
Garzia et al. | Control techniques for coupling a coarse-grain reconfigurable array with a generic RISC core | |
Yamada et al. | A hardware accelerator for Java tm platforms on a 130-nm embedded processor core |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100125 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100903 |
|
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: 20100928 |
|
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: 20100929 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |