JP6073392B2 - 命令としてデータ値を評価するシステムおよび方法 - Google Patents

命令としてデータ値を評価するシステムおよび方法 Download PDF

Info

Publication number
JP6073392B2
JP6073392B2 JP2015031991A JP2015031991A JP6073392B2 JP 6073392 B2 JP6073392 B2 JP 6073392B2 JP 2015031991 A JP2015031991 A JP 2015031991A JP 2015031991 A JP2015031991 A JP 2015031991A JP 6073392 B2 JP6073392 B2 JP 6073392B2
Authority
JP
Japan
Prior art keywords
instruction
execution
interrupt
instructions
executed
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
Application number
JP2015031991A
Other languages
English (en)
Other versions
JP2015133129A (ja
Inventor
ルシアン・コドレスク
エーリヒ・ジェー・プロンドケ
スレッシュ・ケー・ヴェンクマハンティ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2015133129A publication Critical patent/JP2015133129A/ja
Application granted granted Critical
Publication of JP6073392B2 publication Critical patent/JP6073392B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

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)
  • Executing Machine-Instructions (AREA)

Description

本開示は、一般にはデータ処理システムに関し、より詳細には、データ処理システム内でデータ値および命令を評価することに関する。
複数のハードウェアプラットフォームで実行され得るソースコードでアプリケーションを作成するために、インタープリタ型プログラミング言語が設計されている。Java(登録商標)は、バイトコードまたは仮想機械命令として知られている中間言語にランタイム前に変換されるソースコードを生成することによって、プラットフォームの独立性を実現するインタープリタ型プログラミング言語である。これらの命令は通常、中央処理装置(CPU)によって直接実行することはできない。バイトコードは、インタープリタソフトウェアとして知られるプラットフォーム対応(platform-appropriate)機械コードによってランタイムに実行される。各バイトコード命令を解釈するために、インタープリタソフトウェアは、一連のオペレーションまたは命令をフェッチし、復号し、実行することができる。
仮想機械によって定義される各バイトコード命令について、インタープリタソフトウェアは通常、中央処理装置(CPU)命令で表現される対応する実行プログラムを含む。インタープリタソフトウェアは、メモリから仮想機械命令をフェッチする、または読み取ることをCPUに行わせることができる。インタープリタソフトウェアはさらに、バイトコード命令について実行プログラムのアドレスを復号することをCPUに行わせることができる。CPUの制御は実行プログラムに移転でき、実行プログラムは、バイトコードを実施するオペレーションを実行する一連の命令を実行する。
特開昭59−202544号公報 特開昭60−181837号公報 特開昭52−47646号公報 特開平2−87237号公報 国際公開第2008/092769号 特開平6−332692号公報
バイトコードごとに一連のネイティブ機械命令を実行するのは、非効率的であり得る。バイトコードを実行するための他の方法は、直接実行できるネイティブ機械コードにバイトコードをコンパイルするステップを含む。しかしながら、そのような「ジャストインタイム」コンパイルは、実施するにあたりコストがかかり、複雑であり得る。したがって、より効率的なインタープリタが望まれる。
特定の一実施形態では、評価命令がインタープリタループに導入される。評価命令は、レジスタを読み取ることをプロセッサに行わせることができ、次の命令としてレジスタのコンテンツが実行され得る。たとえば、評価命令の結果としてレジスタからデータ値を読み取ることが、次に生じる命令となり得る。次の命令としてレジスタのコンテンツを実行することで、インタープリタループオペレーションを簡素化し、その効率性を高めることができる。
別の特定の実施形態では、プログラムコードを実行する方法が開示される。本方法は、第2の命令のロケーションを識別するためのオペランドを含む第1の命令を受信するステップを含む。第1の命令は、プログラムカウンタによって識別される。第1の命令を実行したときに、ロケーションから第2の命令が取り出され得る。本方法は、第2の命令を示すようにプログラムカウンタを変更することなく、取り出された第2の命令を復号ユニットに提供するステップを含む。本方法はまた、復号ユニットを使用して第2の命令を復号し、第2の命令を実行するステップを含む。
別の特定の実施形態では、プログラムコードを実行する別の方法が開示される。本方法は、第2の命令のロケーションに関連する第1の命令を受信するステップを含む。第1の命令は、プログラムカウンタによって識別される。第1の命令は、ロケーションを識別するために実行される。実行時に、第2の命令を示すようにプログラムカウンタを変更することなく、第2の命令がロケーションから取り出される。本方法は、プロセッサで第2の命令を実行するステップをさらに含む。
別の特定の実施形態では、プログラムコードを実行するように構成された装置が開示される。本装置は、第2の命令のロケーションに関連する第1の命令を実行するように構成された実行ユニットを含む。第1の命令は、プログラムカウンタによって識別される。本装置はまた、ロケーションから第2の命令を受信し、第2の命令を示すようにプログラムカウンタを変更することなく第2の命令を復号して、復号された第2の命令を生成するように構成された復号ユニットを含む。
別の特定の実施形態では、コンピューティングシステムによって実行可能な命令を記憶しているコンピュータ可読媒体が開示される。それらの命令は、第2の命令のロケーションに関連する第1の命令を受信するための命令を含む。第1の命令は、プログラムカウンタによって識別される。これらの命令はまた、ロケーションを識別するために第1の命令を実行し、第1の命令の実行時に、第2の命令を示すようにプログラムカウンタを変更することなく、ロケーションから第2の命令を取り出すための命令を含む。これらの命令は、第2の命令を実行するための命令をさらに含む。
開示する実施形態のうちの少なくとも1つによって提供される1つの具体的な利点は、インタープリタのオペレーション速度および効率性の向上である。開示する命令は、比較的低いオーバーヘッドで既存のシステムにおいて実施できる。インタープリタループオペレーションが簡素化され得る。本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体の検討後に明らかになろう。
命令としてデータ値を評価するように構成されたインタープリタを含む装置の特定の例示的な実施形態のブロック図である。 実行ユニットから受信した命令を復号するように構成された復号ユニットを含む、図1のインタープリタのようなインタープリタを実行することが可能なシステムの特定の例示的な実施形態のブロック図である。 バイトコードを解釈および実行するシステムの特定の例示的な実施形態のブロック図である。 命令としてデータ値を評価することをインタリーブ型マルチスレッドプロセッサに行わせる評価命令を実行するように構成されたインタリーブ型マルチスレッドプロセッサを含むシステムの特定の例示的な実施形態のブロック図である。 命令を処理する方法の第1の例示的な実施形態のフローチャートである。 命令を処理する方法の第2の例示的な実施形態のフローチャートである。 命令としてデータ値を評価するためにデジタル信号プロセッサによって実行されるように構成されたプログラムコードを含む電子デバイスのブロック図である。
図1を参照すると、命令としてデータ値を評価するように構成された装置の特定の例示的な実施形態が開示され、全体的に100と称される。装置100は、メモリ110およびネットワークインターフェース116に結合されたマルチスレッドプロセッサ108を含み得る。メモリ110は、Java(登録商標)仮想機械(JVM)インタープリタループ102を含む。JVMインタープリタループ102は、プログラムループ104および評価命令プログラム122を含む。メモリ110は、バイトコード106をさらに含む。バイトコード106は一般に、JVMインタープリタループ102による実行に適したプログラム命令を含むバイナリファイルを含む。メモリ110は、オペレーティングシステム112および1つまたは複数のアプリケーション114をさらに含む。
マルチスレッドプロセッサ108は、スレッド132を含む。スレッド132は、命令からなるグループ130を示すプログラムカウンタ126を含むことができる。第1の命令124および第2の命令128は、命令からなるグループ130内に含まれ得る。したがって、共通スレッド132は、第1の命令124と第2の命令128の両方を実行することができる。一実施形態では、命令からなるグループ130は割込み不可能であり得る。別の特定の実施形態によれば、第1の命令124は、第2の命令128が実行される前に割込みが受信されたときには、取り消されることがある。
第1の命令124は、第2の命令128のロケーションを識別するためのオペランドを含むことができる。第1の命令124は、プログラムカウンタ126によって識別され得る。第1の命令124は、命令として第1の命令124のデータ値を評価することをマルチスレッドプロセッサ108に行わせる評価命令を含むことができる。第2の命令128は、プログラムカウンタ126をバイパスすることができる。
図1は、命令としてデータ値を評価できるJVMインタープリタループ102を含む特定の例示的な装置100を示している。インタープリタループ102のオペレーションは、処理を減らして効率性を高めつつ、翻訳結果を生成することができる。
図2を参照すると、インタープリタを実行することが可能なシステムの特定の例示的な実施形態のブロック図が開示され、全般に200と称される。一実施形態では、インタープリタは、図1のJVMインタープリタループ102に類似したものであり得る。システム200は、第1の命令204を有する命令キャッシュ202を含む。図2の第1の命令204は、図1の第1の命令124と同じであってよい。第1の命令204は、プラットフォーム対応機械コードに翻訳されるバイトコードを含むことができる。
命令キャッシュ202は、経路206を介してマルチプレクサ248に結合可能であり、マルチプレクサ248は、経路250を介して復号ユニット208に結合される。復号ユニット208は、命令キャッシュ202から受信した第1の命令204のような命令を復号するように構成され得る。復号ユニット208は、経路222を介して実行ユニット218に結合可能である。復号ユニット208はさらに、経路210を介してレジスタファイル212にレジスタアドレスを提供することができる。
実行ユニット218は、経路222を介して復号ユニット208から受信した命令のほか、バス234を介してレジスタファイル212から受信した命令を実行するように構成され得る。たとえば、実行ユニット218は、レジスタファイル212内に記憶されている第2の命令214を実行するように構成可能である。特定の一実施形態では、第2の命令214はインタープリタループ内の命令である。たとえば、第2の命令214は、図1のJVMインタープリタループ102によって、かつJVMインタープリタループ102内で実行可能な命令を含むことができる。図2の第2の命令214は、図1の第2の命令128と同じであってよい。第1の命令204は、プログラムカウンタ238によって識別され得る。実行された第1の命令204は、経路224を介して実行ユニット218からライトバックユニット226に出力され得る。ライトバックユニット226は、実行された第1の命令204の結果を、バス228を介してレジスタファイル212に転送することができる。
復号ユニット208は、レジスタファイル212から第2の命令214を受信するように構成可能である。代替実施形態では、復号ユニット208は、経路246を介してデータキャッシュ242から第2の命令214の代替コピーを受信することができる。特定の一実施形態では、第2の命令214は解釈命令から導出され得る。たとえば、第2の命令214は、図1のJVMインタープリタループ102によって実行可能な命令を含むことができる。復号ユニット208はさらに、第2の命令214を示すようにプログラムカウンタ238を変更することなく第2の命令214を復号して、復号された第2の命令を生成することができる。特定の一実施形態によれば、プログラムカウンタ238は第2の命令214を示すことが不可能なことがある。たとえば、プログラムカウンタ238がメモリアドレスを含む場合、プログラムカウンタ238はレジスタファイルのロケーションを示すことが不可能なことがある。
動作時に、第1の命令204が命令キャッシュ202から復号ユニット208に通信され得る。第1の命令204は、プログラムカウンタ238によって識別され得る。復号ユニット208は、第1の命令204を復号し、経路222を介して実行ユニット218に送信することができる。復号された第1の命令204を実行して結果を生成することができ、結果はバス224を介してライトバックユニット226に通信される。結果は、バス228を介してレジスタファイル212に通信され得る。結果を使用して第2の命令214を選択することができる。たとえば、第1の命令204を実行して、第2の命令214のロケーションを生成することができる。
第1の命令204の実行の結果として、復号ユニット208においてバス216を介して第2の命令214を取り出すことができる。代替的に、第2の命令214をデータキャッシュ242から取り出すことができる。たとえば、第1の命令204は、第2の命令214のソースロケーションを、データキャッシュ242内にあり得るメモリ内のロケーションであると、または第2の命令214を含むレジスタであると指定することができる。第2の命令214は、メモリからレジスタに以前ロードされた可能性、または以前の計算の結果としてレジスタに記憶された可能性がある。第1の命令204の実行は、指定されたロケーションから第2の命令214を取り出し、第2の命令214を実行するようにシステム200を構成することができる。
第2の命令214は、第2の命令214を示すようにプログラムカウンタ238を変更することなく、復号ユニット208に配信され得る。復号ユニット208は、第2の命令214を復号することができる。復号された第2の命令は、復号ユニット208から経路222を介して実行ユニット218に通信され得る。実行ユニット218からライトバックユニット226に結果が出力され得る。ライトバックユニット226は、バス228を介してレジスタファイル212に結果を通信することができる。
したがって、図2は、第2の命令214の位置を特定するために使用されるロケーション情報を識別するために第1の命令204を実行するインタープリタ200を示している。復号ユニット208は、命令キャッシュ202の代わりに、レジスタファイル212またはデータキャッシュ242から第2の命令214を取り出し、翻訳の迅速化をもたらすことができる。
図3を参照すると、バイトコードを解釈し実行するように構成されたシステムの特定の例示的な実施形態のブロック図が開示され、全般に300と称される。システム300は、ルックアップテーブル316の命令に翻訳されるバイトコードストリーム302を含む。
バイトコードストリーム302は、第1のバイトコード命令304、第2のバイトコード命令306、第3のバイトコード命令308および第4のバイトコード命令310を含む。バイトコード命令ごとに、符号化およびニーモニックが示されている。たとえば、第4のバイトコード命令310は0x03として符号化され、Lconst_0のニーモニックを有する。ポインタ312のByteCodePtrは、実行されるバイトコード命令を指定する。たとえば、図3のポインタ312は、第2のバイトコード命令306を示しており、そのローディングを開始する。第2のバイトコード命令306の符号化(すなわち、0x60)を使用して、ルックアップテーブル316でルックアップ演算314を実行することができる。
ルックアップテーブル316は、エントリ318、320、322、324、326、328、330および332を含み、これらはそれぞれ0x00、0x01、0x02、0x03、0x04、0x2a、0x60および0x6cとして符号化されるバイトコードに対応する。ルックアップテーブル316は、図1のメモリ110などのメモリ内に記憶され得る。ルックアップテーブル316は、すべての考え得るバイトコードについてのエントリを含むことができるが、説明を明快にするために、いくつかのバイトコードのみを示している。エントリ318〜332はネイティブ機械命令を含む。ルックアップテーブル316のエントリ318〜332は、エントリ318(すなわち、ノーオペレーション、または「NOP」)のように、単一のネイティブ機械オペレーションを含むことがある。代替的に、ルックアップテーブル316のエントリは、バイトコード命令310に対応するエントリ324に含まれるネイティブ機械オペレーション(すなわち、「PUSH T」および「T=0」)からなるパケットのように、複数の命令を含むことがある。別の例では、バイトコード命令306はエントリ330に対応することができ、エントリ330は、「POP T2」命令と「ADD T, T2」命令の両方を含む。エントリ332の「JUMP div_code」命令のようなさらに他のエントリは、複雑な命令を実施するロケーションへ分岐することをインタープリタに行わせることができる。
特定の一実施形態では、単一のバイトコード命令に関連する複数のネイティブ機械オペレーションは、命令からなる割込み不可能なグループまたはパケットとして処理され得る。たとえば、バイトコード命令310は、エントリ324内の複数のネイティブ機械オペレーションに対応するJava(登録商標)命令を含むことができる。エントリ324内の複数のネイティブ機械オペレーションの処理は、Java(登録商標)命令の処理中に割込みが生じないように制御され得る。
したがって、図3はバイトコード翻訳プロセスの論理図を示している。バイトコード命令306は、ルックアップテーブル316を使用して解釈される。ルックアップテーブル316は、飛越し命令のみではなく、複数のタイプの命令を含むことができる。バイトコード命令306は、ルックアップテーブル316のエントリ330に論理的に関連付けられ得る。翻訳プロセスでは、飛越しおよび関連する分岐を少なくして、符号化を比較的少なくすることができる。すなわち、命令の位置を特定するために分岐オペレーションを使用する代わりに、ルックアップテーブル316内の命令を実行できるので、インタープリタループ命令の簡素化を実現できる。さらに、複数の命令がルックアップテーブル316の単一のエントリ内に含まれ得る。たとえば、エントリ330は、複数のネイティブ機械オペレーションまたは命令、たとえば算術命令などからなるパケットを含む。追加のハードウェアの使用および関連するオーバーヘッドコストを伴わずに、命令によって、ルックアップテーブル316を動的に更新することができる。
図4は、命令としてデータ値を評価することをインタリーブ型マルチスレッドプロセッサに行わせる評価プログラムコードを実行するように構成されたインタリーブ型マルチスレッドプロセッサを含む処理システム400の特定の例示的な実施形態のブロック図である。処理システム400は、バスインターフェース446を介して命令キャッシュ404およびデータキャッシュ412と通信するように適合されたメモリ402を含む。命令キャッシュ404は、バス410によってシーケンサ414に結合される。命令キャッシュ404は、命令としてデータ値を評価するために1つまたは複数の実行ユニット418、420、422および424によって実行できる評価プログラム440を含む。
シーケンサ414は、割込みレジスタから受信し得る一般的な割込み416のような割込みを受信するように適合される。シーケンサ414はまた、スーパバイザ制御レジスタ432およびグローバル制御レジスタ434に結合される。シーケンサ414は、複数の実行ユニット、たとえば、第1の命令実行ユニット418、第2の命令実行ユニット420、第3の命令実行ユニット422および第4の命令実行ユニット424に結合され、これらのユニットを使用して、並行して複数の命令を実行することができる。各命令実行ユニット418、420、422および424は汎用レジスタファイル426に結合可能である。汎用レジスタファイル426はまた、バス430を介してシーケンサ414、データキャッシュ412、およびメモリ402に結合可能である。
スーパバイザ制御レジスタ432およびグローバル制御レジスタ434は、割込みを受け入れるか否かを決定し、命令の実行を制御するためにシーケンサ414内の制御論理によってアクセスされ得るビットを記憶することができる。特定の一実施形態によれば、図1の第1の命令124のような第1の命令は、図1の第2の命令128のような第2の命令が実行される前に割込み442が受信されたときには、取り消され得る。割込み442は、図4に示すように、割込みステータス448によって示され得る。別の特定の実施形態によれば、図1の第1の命令124および第2の命令128のような第1の命令および第2の命令は割込み不可能であり得る。
第2の命令128が実行されるときにプログラムカウンタは変更されないので、第1の命令124と第2の命令128との間の割込みに対処するように記録されるプロセッサの状態は、第2の命令128が実行されることを正確には反映しないことがある。処理システム400は、割込み不可能になるように、または第1の命令126の後であって第2の命令128の前に割込みが受信された場合に、第1の命令126が取り消され、割込み後に再実行され得るように、第1の命令124および第2の命令128の実行を制御することができる。
処理システム400はまた、図3のエントリ324の複数のネイティブ機械命令に対応するバイトコード命令310(たとえば、Java(登録商標)命令)のような複数のネイティブ機械オペレーションを含み得る命令の実行を制御して、割込みのない複数のネイティブ機械オペレーションの処理を確実にすることができる。このようにして、第1の命令および第2の命令は、命令からなる割込み不可能なグループ内に含まれ得る。1つまたは複数の命令を、メモリ402の指定領域438のようなロケーションから取り出すことができる。たとえば、図2の第2の命令214は、第1の命令204の実行時に、メモリの指定領域から取り出され得る。
命令キャッシュ404は、複数の命令レジスタを介してシーケンサ414に結合可能である。特定の一実施形態では、処理システム400は、複数のスレッドを含むインタリーブ型マルチスレッドプロセッサである。処理システム400は、様々なスレッドの各々からの命令を連続的に実行する。ソフトウェアスレッドのインターリービング処理により、プロセッサをアグレッシブなクロックサイクルでクロック制御して、ハードウェアスレッドの処理能力を効率的に利用することができる。たとえば、比較的遅いデータ読取りまたは書込み動作が1つのソフトウェアスレッドに関して処理されている間に、データ読取りまたは書込み動作の完了を待つことなく、プロセッサによって別のソフトウェアスレッドからの命令が実行され、または少なくとも部分的に実行され得る。
図4の処理システム400は、評価プログラムコードを実行するように構成されたインタリーブ型マルチスレッドプロセッサを含む。図1の実施形態では、図4の処理システム400は、マルチスレッドプロセッサ108として使用され得る。複数のスレッドを使用することで、キャッシュミスがある場合にプロセッサを効率的に利用することができ、命令としてデータ値を効率的に読み取り、バイトコード解釈を迅速化することが容易になり得る。
図5は、命令を処理する方法500の特定の例示的な実施形態のフローチャートである。たとえば、例示的な方法500は、図1の装置100または図2のシステム200によって実行され得る。
502で、第2の命令のロケーションを識別するためのオペランドを含む第1の命令がインタープリタループ内で受信され得る。第1の命令は、プログラムカウンタによって識別される。たとえば、図2の第1の命令204を、インタープリタを実行することが可能なシステム200内で受信することができ、第1の命令204は、第2の命令214のロケーションを識別するためのオペランドを含む。第1の命令204は、プログラムカウンタ238によって識別される。
504で、第1の命令が復号され得る。第1の命令は評価命令であってよい。たとえば、図2の第1の命令204が復号ユニット208によって復号され得る。第1の命令204は評価命令であってよい。
506で、ロケーションを識別するために第1の命令を実行したときに、ロケーションから第2の命令が取り出され得る。ロケーションは、レジスタ、キャッシュまたはメモリの指定領域を含むことができる。たとえば、図2の第1の命令204を実行して、第2の命令214のロケーションを生成することができる。第2の命令214は、生成されたロケーションから、たとえば図2のレジスタファイル212内のレジスタから、図2のデータキャッシュ242から、メモリの指定領域、たとえば図4の指定領域438から、または別のロケーションから取り出され得る。
第2の命令214は、図2の実行ユニット218において、第1の命令204の実行時にロケーションから取り出され得る。第2の命令は単一のネイティブ機械オペレーション、または複数のネイティブ機械オペレーションからなるパケットを含むことができる。たとえば、図3のエントリ318は、単一のネイティブ機械オペレーションを含む。代替的に、図3のエントリ324は、複数のネイティブ機械オペレーションからなるパケットを含む。
508で、取り出された第2の命令は、第2の命令を示すようにプログラムカウンタを変更することなく、復号ユニットに提供され得る。たとえば、図2の第2の命令214は、第2の命令214を示すようにプログラムカウンタ238を変更することなく、バス216を介して復号ユニット208に提供され得る。プログラムカウンタ238は、第2の命令214のアドレスを保持するように増分される必要はなく、処理要件が軽減され得る。
510で、復号ユニットを使用して第2の命令を復号し、復号された第2の命令を生成することができる。たとえば、図2の第2の命令214を、復号ユニット208を使用して復号し、経路222を介して出力される復号された第2の命令を生成することができる。第2の命令がネイティブ機械オペレーションからなるグループを含む一実施形態では、ネイティブ機械オペレーションからなるグループ内の各々が、たとえば復号ユニット208で復号され得る。
512で、第2の命令を示すようにプログラムカウンタを変更することなく、第2の命令が実行され得る。たとえば、経路222を介して実行ユニット218に送られた復号された第2の命令は、図2の実行ユニット218によって実行できる。実行ユニット218は、第2の命令が単一のネイティブ機械オペレーションを含む場合に、単一の命令を実行することができる。代替的に、実行ユニット218は、第2の命令が複数のネイティブ機械オペレーションを含む場合に、複数の命令を実行することができる。たとえば、第2の命令を実行する際に、実行ユニット218はプッシュ演算と算術演算の両方を実行することができる。特定の一実施形態では、単一のバイトコード命令に対応する複数のネイティブ機械オペレーションは、単一の超長命令語(VLIW)パケットとして実行可能で、VLIWパケットの複数の命令またはすべての命令が、たとえば図4の実行ユニット418〜424で並行して処理される。プログラムカウンタは、第2の命令を実行した後に変更され得る。
図5は、命令としてデータ値を評価できる方法でプログラムコードを実行するためのプロセスを示している。たとえば、命令キャッシュからではなく実行ユニットから次の命令が受信され得る。図5の方法500によって実現する効率性は、インタープリタの翻訳速度を上げることができる。
図6は、命令を処理する方法600の特定の例示的な実施形態のフローチャートである。本明細書で説明する例示的な方法600は、図1の装置100または図2のシステム200によって実行され得る。
602で、プログラムカウンタによって識別される、第2の命令のロケーションに関連する第1の命令が受信され得る。たとえば、図2の第2の命令214のロケーションを示唆する第1の命令204が受信され得る。第1の命令204は、プログラムカウンタ238によって識別され得る。
604で、第2の命令のロケーションを識別するためにプロセッサで第1の命令を実行することができ、実行時に、第2の命令を示すようにプログラムカウンタを変更することなく、ロケーションから第2の命令を取り出すことができる。たとえば、図2の第2の命令214が、マルチスレッドプロセッサにおいて第1の命令204の実行時に取り出され得る。図2の第2の命令214は、第2の命令214を示すようにプログラムカウンタ238を変更することなく、取り出され得る。
606で、第2の命令が実行され得る。たとえば、経路222を介して実行ユニット218に送られた第2の命令214が、図2の実行ユニット218によって実行され得る。実行ユニット218は、第2の命令214が単一のネイティブ機械オペレーションを含む場合に、単一の命令を実行することができる。代替的に、実行ユニット218は、第2の命令214が複数のネイティブ機械オペレーションを含む場合に、複数のネイティブ機械オペレーションを実行することができる。たとえば、第2の命令214を実行する際に、実行ユニット218はプッシュ演算と算術演算の両方を実行することができる。
図7は、図1〜図6で説明した1つまたは複数のバイトコードを翻訳するためのインタープリタ命令評価プログラムコード764を含むデジタル信号プロセッサ(DSP)710を含む通信デバイス700の特定の例示的な実施形態のブロック図である。図7は、デジタル信号プロセッサ710およびディスプレイ728に結合されたディスプレイコントローラ726も示す。さらに、入力デバイス730がDSP710に結合される。コーダ/デコーダ(コーデック)734もDSP710に結合され得る。スピーカー736およびマイクロフォン738がコーデック734に結合され得る。静止画像、動画、または両方をキャプチャするように構成されたビデオカメラ760が、カメラインターフェース768を介してDSP710に結合され得る。インタープリタ命令評価プログラムコード764を有するDSP710は、前述のバイトコードを処理することができる。
図7はまた、ワイヤレスインターフェース740がDSP710とワイヤレスアンテナ742とに結合され得ることを示す。特定の一実施形態では、電源装置744がオンチップシステム722に結合される。その上、特定の一実施形態では、図7に示すように、ディスプレイ728、入力デバイス730、スピーカー736、マイクロフォン738、ワイヤレスアンテナ742、および電源装置744は、オンチップシステム722の外部にある。しかしながら、それぞれは、オンチップシステム722の構成要素に結合される。
インタープリタ命令評価プログラムコード764がDSP710の構成要素として示されること、またはDSP710によって実行されることがあるが、インタープリタ命令評価プログラムコード764は、DSP710の他の構成要素に組み込まれること、DSP710とは別個の構成要素として明示されることなどもあることを理解されたい。
さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、全般にそれらの機能に関して、上で説明されてきた。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのプロセスは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。たとえば、実施形態を実行するのに適したデバイスを、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、およびコンピュータから選択することができ、そのデバイスに実行ユニットおよび復号ユニットが組み込まれる。
ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末に存在し得る。代替的には、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末の中に、個別のコンポーネントとして存在し得る。
開示される実施形態の上記の説明は、当業者が、開示された実施形態を実現または利用できるようにするために、提供される。これらの実施形態への様々な修正が、当業者には容易に明らかであり、本明細書で定義される原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書で示される実施形態に限定されることは意図されず、以下の特許請求の範囲で定義されるような原理および新規の特徴と矛盾しない、可能な最大の範囲を認められるべきである。
100 装置
102 Java(登録商標)仮想機械(JVM)インタープリタループ
104 プログラムループ
106 バイトコード
108 マルチスレッドプロセッサ
110 メモリ
112 オペレーティングシステム
114 アプリケーション
116 ネットワークインターフェース
122 評価命令プログラム
124 第1の命令
126 プログラムカウンタ
128 第2の命令
130 命令からなるグループ
132 スレッド
200 システム、インタープリタ
202 命令キャッシュ
204 第1の命令
206 経路
208 復号ユニット
210 経路
212 レジスタファイル
214 第2の命令
216 バス
218 実行ユニット
222 経路
224 経路
226 ライトバックユニット
228 経路
234 バス
238 プログラムカウンタ
242 データキャッシュ
246 経路
248 マルチプレクサ
250 経路
300 システム
302 バイトコードストリーム
304 バイトコード命令
306 バイトコード命令
308 バイトコード命令
310 バイトコード命令
312 ポインタ
314 ルックアップ演算
316 ルックアップテーブル
318 エントリ
320 エントリ
322 エントリ
324 エントリ
326 エントリ
328 エントリ
330 エントリ
332 エントリ
400 処理システム
402 メモリ
404 命令キャッシュ
410 バス
412 データキャッシュ
414 シーケンサ
416 一般的な割込み
418 実行ユニット
420 実行ユニット
422 実行ユニット
424 実行ユニット
426 汎用レジスタファイル
430 バス
432 スーパバイザ制御レジスタ
434 グローバル制御レジスタ
438 指定領域
440 評価プログラム
442 割込み
446 バスインターフェース
448 割込みステータス
700 通信デバイス
710 デジタル信号プロセッサ(DSP)
722 オンチップシステム
726 ディスプレイコントローラ
728 ディスプレイ
730 入力デバイス
734 コーダ/デコーダ(コーデック)
736 スピーカー
738 マイクロフォン
740 ワイヤレスインターフェース
742 ワイヤレスアンテナ
744 電源装置
760 ビデオカメラ
764 インタープリタ命令評価プログラムコード
768 カメラインターフェース

Claims (23)

  1. 第2の命令の書込み可能なロケーションを識別するためのオペランドを含第1の命令を受信するステップであって、前記第1の命令は、プログラムカウンタによって識別され、前記オペランドとしてバイトコードを含み、前記第2の命令は、ネイティブ機械オペレーションのパケットを含み、前記書込み可能なロケーションは、前記バイトコードに対応するエントリに複数のネイティブ命令を格納したルックアップテーブルに関連付けられる、ステップと、
    前記書込み可能なロケーションを識別するために実行ユニットで前記第1の命令を実行したときに、前記書込み可能なロケーションから前記第2の命令を取り出すステップと、
    前記第2の命令を示すように前記プログラムカウンタを変更することなく、前記第2の命令を復号ユニットに提供するステップと、
    前記復号ユニットで前記第2の命令を復号し、前記実行ユニットで前記第2の命令を実行するステップと
    を含み
    割込みを受信したとき、制御論理で、前記第2の命令が実行される前の割込みであるかを判定するステップと、
    前記第1の命令の後であって前記第2の命令が実行される前の割込みである場合、該割込みを受け付け、前記第1の命令の当該実行を取り消すステップと
    をさらに含む、プログラムコードを実行する方法。
  2. 前記制御論理は、シーケンサに含まれ、
    前記第1の命令の実行を取り消すことは、前記第1の命令の実行を中止することを含み、
    前記シーケンサは、前記割込みの後に前記第1の命令を再実行するように構成され、
    前記第2の命令を実行した後に前記プログラムカウンタを変更するステップをさらに含む、請求項1に記載の方法。
  3. 前記ルックアップテーブルは、前記書込み可能なロケーションを含み、
    前記第2の命令は、前記実行ユニットで実行され、飛越し命令および算術命令のうちの少なくとも1つを含む、請求項1または2に記載の方法。
  4. 前記第1の命令は命令としてデータ値を評価する評価命令を含む、請求項1から3のいずれか一項に記載の方法。
  5. 第2の命令の書込み可能なロケーションを識別するためのオペランドを含第1の命令を受信するステップであって、前記第1の命令は、プログラムカウンタによって識別され、前記オペランドとしてバイトコードを含み、前記第2の命令は、プロセッサの実行ユニットで実行されるネイティブ機械オペレーションのパケットを含み、前記書込み可能なロケーションは、前記バイトコードに対応するエントリに複数のネイティブ命令を格納したルックアップテーブルに関連付けられる、ステップと、
    前記書込み可能なロケーションを識別するために前記実行ユニットで前記第1の命令の実行を開始し、前記第2の命令を示すように前記プログラムカウンタを変更することなく、前記書込み可能なロケーションから前記第2の命令を取り出すステップ
    含み
    割込みを受信したとき、制御論理で、前記第2の命令が実行される前の割込みであるかを判定するステップと、
    前記第1の命令の後であって前記第2の命令が実行される前の割込みである場合、該割込みを受け付け、前記第1の命令の当該実行を取り消すステップと
    をさらに含む、プログラムコードを実行する方法。
  6. 前記実行ユニットで前記第2の命令を実行するステップと、
    行された前記第2の命令の結果をメモリに書き込むステップ
    をさらに含
    前記制御論理は、前記割込みを処理した後に前記第1の命令を再実行するシーケンサ内に含まれる、請求項5に記載の方法。
  7. 前記ルックアップテーブルは、前記書込み可能なロケーションを含み、
    前記第1の命令の実行を取り消すことは、前記第1の命令の実行を中止することを含み、
    前記第2の命令は飛越し命令および算術命令のうちの少なくとも1つを含む、請求項5または6に記載の方法。
  8. 前記第1の命令を実行する前に前記第1の命令を復号するステップと、
    データを前記書込み可能なロケーションに書き込むステップと
    をさらに含み、
    前記書込み可能なロケーションは前記第1の命令および前記第2の命令のうちの少なくとも1つの実行中にアクセスされる、請求項5から7のいずれか一項に記載の方法。
  9. 第2の命令の書込み可能なロケーションを識別するためのオペランドを含第1の命令を実行するように構成された実行ユニットであって、前記第1の命令は、プログラムカウンタによって識別され、前記オペランドとしてバイトコードを含み、前記第2の命令は、ネイティブ機械オペレーションのパケットを含み、前記書込み可能なロケーションは、前記バイトコードに対応するエントリに複数のネイティブ命令を格納したルックアップテーブルに関連付けられる、実行ユニットと、
    前記書込み可能なロケーションから前記第2の命令を受信し、前記第2の命令を示すように前記プログラムカウンタを変更することなく前記第2の命令を復号して、復号された第2の命令を生成するように構成された復号ユニットと
    を含み
    割込みを受信したとき、前記第2の命令が前記実行ユニットによって実行される前の割込みであるかを判定し、前記第1の命令の後であって前記第2の命令が実行される前の割込みである場合に、該割込みを受け付け、前記第1の命令の当該実行を取り消すように構成された制御論理をさらに含む、プログラムコードを実行する装置。
  10. 前記ルックアップテーブルは、前記書込み可能なロケーションを含み、
    前記実行ユニットは前記書込み可能なロケーションから前記第2の命令を取り出すようにさらに構成される、請求項9に記載の装置。
  11. シーケンサをさらに含み、
    前記制御論理は、前記シーケンサに含まれ、
    前記シーケンサは、前記割込みの後に前記第1の命令を再実行するように構成され、
    前記第1の命令の実行は前記書込み可能なロケーションを決定し、
    前記復号ユニットはバスを介して前記書込み可能なロケーションから前記第2の命令を受信する、請求項9または10に記載の装置。
  12. 前記プログラムカウンタは前記第2の命令を示すことが不可能である、請求項9から11のいずれか一項に記載の装置。
  13. 前記プログラムカウンタは前記第2の命令実行後に変更される、請求項9から12のいずれか一項に記載の装置。
  14. 行された前記第2の命令の結果を受信するように構成されたレジスタをさらに含む、請求項9から13のいずれか一項に記載の装置。
  15. 前記第1の命令は評価命令を含む、請求項9から14のいずれか一項に記載の装置。
  16. 前記実行ユニットは、前記割込みを受信したことに少なくとも部分的に基づいて、前記第1の命令の実行を中止するようにさらに構成され、
    前記第1の命令および前記第2の命令は共通スレッドによって実行されるように構成される、請求項9から15のいずれか一項に記載の装置。
  17. 前記第1の命令は構造的命令を含む、請求項9から16のいずれか一項に記載の装置。
  18. 前記実行ユニット前記復号ユニット、および前記制御論理が組み込まれる、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、およびコンピュータ、またはこれらの組合せをさらに含む、請求項9から17のいずれか一項に記載の装置。
  19. コンピューティングシステムによって実行可能な命令を記録したコンピュータ可読記録媒体であって、
    前記命令は、前記コンピューティングシステムに、
    第2の命令の書込み可能なロケーションを識別するためのオペランドを含第1の命令を受信する手順であって、前記第1の命令は、プログラムカウンタによって識別され、前記オペランドとしてバイトコードを含み、前記第2の命令は、ネイティブ機械オペレーションのパケットを含み、前記書込み可能なロケーションは、前記バイトコードに対応するエントリに複数のネイティブ命令を格納したルックアップテーブルに関連付けられる、手順と、
    前記書込み可能なロケーションを識別するために実行ユニットで前記第1の命令を実行し、実行時に、前記第2の命令を示すように前記プログラムカウンタを変更することなく、前記書込み可能なロケーションから前記第2の命令を取り出す手順と、
    前記実行ユニットで前記第2の命令を実行する手順と
    を実行させ、
    前記命令は、前記コンピューティングシステムに、
    割込みを受信したとき、前記第2の命令が実行される前の割込みであるかを判定する手順と、
    前記第1の命令の後であって前記第2の命令が実行される前の割込みである場合、該割込みを受け付け、前記第1の命令の当該実行を取り消す手順と
    をさらに実行させる、コンピュータ可読記録媒体。
  20. 前記命令は、前記コンピューティングシステムに、
    行された前記第2の命令の結果をレジスタに書き込む手順
    をさらに実行させる、請求項19に記載のコンピュータ可読記録媒体。
  21. 前記第2の命令は飛越し命令および算術命令のうちの少なくとも1つを含み
    前記命令は、前記コンピューティングシステムに、
    前記割込みの後に前記第1の命令を再実行する手順
    をさらに実行させる、請求項19または20に記載のコンピュータ可読記録媒体。
  22. 前記書込み可能なロケーションは、前記ルックアップテーブルに含まれ、前記第1の命令および前記第2の命令のうちの少なくとも1つの実行中に書込み可能である、請求項19から21のいずれか一項に記載のコンピュータ可読記録媒体。
  23. 前記第1の命令はJava(登録商標)命令セットに対応するバイトコードを含む、請求項1から8のいずれか一項に記載の方法。
JP2015031991A 2010-05-24 2015-02-20 命令としてデータ値を評価するシステムおよび方法 Expired - Fee Related JP6073392B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/785,551 2010-05-24
US12/785,551 US9361109B2 (en) 2010-05-24 2010-05-24 System and method to evaluate a data value as an instruction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013511409A Division JP5759537B2 (ja) 2010-05-24 2011-05-23 命令としてデータ値を評価するシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2015133129A JP2015133129A (ja) 2015-07-23
JP6073392B2 true JP6073392B2 (ja) 2017-02-01

Family

ID=44343680

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013511409A Expired - Fee Related JP5759537B2 (ja) 2010-05-24 2011-05-23 命令としてデータ値を評価するシステムおよび方法
JP2015031991A Expired - Fee Related JP6073392B2 (ja) 2010-05-24 2015-02-20 命令としてデータ値を評価するシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013511409A Expired - Fee Related JP5759537B2 (ja) 2010-05-24 2011-05-23 命令としてデータ値を評価するシステムおよび方法

Country Status (6)

Country Link
US (1) US9361109B2 (ja)
EP (1) EP2577464B1 (ja)
JP (2) JP5759537B2 (ja)
KR (1) KR101497346B1 (ja)
CN (1) CN102893260B (ja)
WO (1) WO2011149828A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281368A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Cycle sliced vectors and slot execution on a shared datapath
JP6136541B2 (ja) * 2013-04-30 2017-05-31 大日本印刷株式会社 情報記憶媒体及びバイトコード実行方法
US10768935B2 (en) * 2015-10-29 2020-09-08 Intel Corporation Boosting local memory performance in processor graphics
US10802854B2 (en) 2019-08-30 2020-10-13 Alibaba Group Holding Limited Method and apparatus for interpreting bytecode instruction stream
CN110704108B (zh) * 2019-08-30 2020-08-14 阿里巴巴集团控股有限公司 解释执行字节码指令流的方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5842891B2 (ja) 1975-10-15 1983-09-22 株式会社東芝 メイレイセイギヨホウシキ
JPS54943A (en) 1977-06-06 1979-01-06 Panafacom Ltd Data processor
US4495563A (en) * 1981-07-02 1985-01-22 Texas Instruments Incorporated Microcomputer having separate access to complete microcode words and partial microcode words
US4635194A (en) 1983-05-02 1987-01-06 International Business Machines Corporation Instruction buffer bypass apparatus
JPS60181837A (ja) 1984-02-29 1985-09-17 Fujitsu Ltd エクスキユ−ト命令処理方式
US4821183A (en) 1986-12-04 1989-04-11 International Business Machines Corporation A microsequencer circuit with plural microprogrom instruction counters
JPH0287237A (ja) 1988-09-22 1990-03-28 Fujitsu Ltd Execute命令制御方式
JP3105110B2 (ja) 1993-05-20 2000-10-30 株式会社東芝 演算装置
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
JP3663710B2 (ja) * 1996-01-17 2005-06-22 ヤマハ株式会社 プログラムの生成方法およびプロセッサの割込制御方法
US6044220A (en) 1997-02-25 2000-03-28 Motorola, Inc. Method and apparatus for operating a data processor to execute software written using a foreign instruction set
US6012125A (en) * 1997-06-20 2000-01-04 Advanced Micro Devices, Inc. Superscalar microprocessor including a decoded instruction cache configured to receive partially decoded instructions
US20040215444A1 (en) 2002-03-25 2004-10-28 Patel Mukesh K. Hardware-translator-based custom method invocation system and method
US7954102B2 (en) * 2002-11-13 2011-05-31 Fujitsu Limited Scheduling method in multithreading processor, and multithreading processor
GB2400198B (en) 2003-04-04 2006-04-05 Advanced Risc Mach Ltd Controlling execution of a block of program instructions within a computer processing system
US20070169022A1 (en) 2003-06-18 2007-07-19 Jones Anthony M Processor having multiple instruction sources and execution modes
US7882336B2 (en) 2007-02-01 2011-02-01 International Business Machines Corporation Employing a buffer to facilitate instruction execution
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore

Also Published As

Publication number Publication date
US20110289299A1 (en) 2011-11-24
US9361109B2 (en) 2016-06-07
WO2011149828A1 (en) 2011-12-01
JP2013527534A (ja) 2013-06-27
EP2577464A1 (en) 2013-04-10
EP2577464B1 (en) 2017-08-16
CN102893260A (zh) 2013-01-23
CN102893260B (zh) 2015-11-25
JP2015133129A (ja) 2015-07-23
KR20130045276A (ko) 2013-05-03
JP5759537B2 (ja) 2015-08-05
KR101497346B1 (ko) 2015-03-03

Similar Documents

Publication Publication Date Title
US10747536B2 (en) Program loop control
JP4485198B2 (ja) Javaアクセラレータを備えたプロセッサシステム
EP2018609B1 (en) Pre-decoding variable length instructions
US7473293B2 (en) Processor for executing instructions containing either single operation or packed plurality of operations dependent upon instruction status indicator
JP6006247B2 (ja) 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
JP6073392B2 (ja) 命令としてデータ値を評価するシステムおよび方法
TWI515652B (zh) 具有在硬體中的分支計數表的指令最佳化處理器
JP2006185462A (ja) 高データ密度のriscプロセッサ
US8499293B1 (en) Symbolic renaming optimization of a trace
US20190310851A1 (en) Program loop control
JP2019509576A (ja) 分岐命令
KR100983135B1 (ko) 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법
US9311094B2 (en) Predicting a pattern in addresses for a memory-accessing instruction when processing vector instructions
JP2014179101A (ja) ディペンデンシーを整理し、リビルディングするシステム及び方法
JP2021174513A (ja) データ依存脆弱分岐の機会主義的再誘導のための命令セットアーキテクチャベース自動負荷追跡
CN110073332B (zh) 数据处理装置和方法
JP3345787B2 (ja) データ処理装置
JP2004527824A (ja) データプロセッサ及び処理方法
JPH03158929A (ja) データ処理装置
US20230315453A1 (en) Forward conditional branch event for profile-guided-optimization (pgo)
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP4418509B2 (ja) Javaアクセラレータを備えたプロセッサシステム
JP5679263B2 (ja) 情報処理装置及びマイクロ命令処理方法
JPH11306019A (ja) 情報処理装置及びプロセッサ
JPH03186935A (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161004

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: 20161205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170104

R150 Certificate of patent or registration of utility model

Ref document number: 6073392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees