JP3858013B2 - 複数の個別記憶アドレス領域内に記憶された可変長命令の実行 - Google Patents

複数の個別記憶アドレス領域内に記憶された可変長命令の実行 Download PDF

Info

Publication number
JP3858013B2
JP3858013B2 JP2003320631A JP2003320631A JP3858013B2 JP 3858013 B2 JP3858013 B2 JP 3858013B2 JP 2003320631 A JP2003320631 A JP 2003320631A JP 2003320631 A JP2003320631 A JP 2003320631A JP 3858013 B2 JP3858013 B2 JP 3858013B2
Authority
JP
Japan
Prior art keywords
instruction
computer
variable length
recording medium
storage address
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
JP2003320631A
Other languages
English (en)
Other versions
JP2004110827A (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 JP2004110827A publication Critical patent/JP2004110827A/ja
Application granted granted Critical
Publication of JP3858013B2 publication Critical patent/JP3858013B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions

Description

本発明は、データ処理システムの分野に関するものである。特に、本発明は、複数の記憶アドレス領域内に記憶された可変長命令、例えばメモリ内で断片化されたプログラムを、実行するよう動作可能なデータ処理システムに関するものである。
可変長命令を実行するデータ処理システムが提供されているのは知られている。このようなシステムの例として、ARMリミテッドによって製造されたジャゼル(Jazelle)が使用可能なプロセッサがある。これらのプロセッサは、様々なバイト長のジャバ(Java(R))・バイトコードで形成されているプログラムを実行することができる。このようなシステムにおいて、ある状況においては、可変長命令から成るプログラムを複数の異なる記憶領域に記憶できるようにする、つまりプログラムをメモリ内で断片化することが望ましい。安全なシステムにおいては、このような断片化は、該当するコンピュータ・プログラムの所在を不明瞭にする方法として望ましいであろう。他の状況においては、それは、それぞれが個別であってもそのメモリの全部分を満たすことによって、使用可能なメモリをよりよく使用するために望ましい。
付随する図面の図1は、このようなシステムにおいて発生する可能性のある問題を示している。特に図1は、2つのオペランドOpdXOpdX’が続くバイトコードBCXを含み、長さ3バイトの可変長プログラム命令を示している。この3バイトの命令は2つの個別記憶領域にまたがり、第1のバイトは現在記憶領域にあり、第2および第3のバイトは後続記憶領域にある。このような可変長命令を実行するための標準ハードウェアは、可変長命令の全てのバイトが連続して隣接する記憶アドレスにおいて見つかると推測する。図1に示される場合において、標準ハードウェアは、可変長命令の第2および第3のバイトはその可変長命令の第1のバイトに直に続くであろうと推測するが、実際にはそれらのバイトは第1のバイトとは離れた個別の記憶領域にある。
本発明は、メモリ内に断片的に記憶されたプログラムの可変長命令をサポートすることに関する問題を認識し、これらの問題に対する解決方法を提供する。
1つの観点から見ると、本発明は、データ処理装置のメモリ内の複数の個別記憶アドレス領域に記憶された可変長命令のシーケンスを実行する方法を提供する。本方法は、以下のステップを含む。
(i)2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みを検知するステップであって、これら2つの個別記憶アドレス領域は、現在記憶アドレス領域および後続記憶アドレス領域であるステップと、
(ii)現在記憶アドレス領域の終了部分と後続記憶アドレス領域の開始部分との命令データを連結してメモリのフィックス・アップ記憶アドレス領域に記憶し、可変長命令を含む連結命令データを形成するステップと、
(iii)フィックス・アップ記憶アドレス領域内の連結命令データ内からの現在可変長命令を実行するようプログラム実行フローを変更するステップと、
(iv)可変長命令に続く命令を後続記憶アドレス領域内から実行するようプログラム実行フローを復元するステップ。
本発明は、境界にまたがる可変長命令を含む個別記憶領域の部分から命令データを連結し、この連結データをフィックス・アップ記憶領域内に記憶する、解決方法を提供する。該当する可変長命令を、このフィックス・アップ領域内の位置から実行することができ、個別記憶領域の間の間隔に続く通常の記憶領域に戻ることができるプログラム・フローが当該位置に続いている。このことは、間隔のまたがりに続く命令の開始アドレスを、間隔にまたがる命令が実行されるまで知ることができない、可変長命令を含む断片化されたプログラム・コードを処理するための機構を提供し、このような機能をサポートするのに必要なソフトウェア・オーバヘッドを低減されたレベルに保つ。特に、本発明の好ましい実施例において、検知ステップはハードウェア制御の下で実行することができ、連結、変更および復元ステップはソフトウェア制御の下で実行することができる。一方、間隔にまたがる可変長命令の実際の実行は、ハードウェアにおいて実行することができる。
本発明は特に、可変長命令が実行される前にメモリから命令バッファに取出されるシステムにおいて使用するのに適している。このような構成は、個別記憶領域にまたがる命令の識別を、その命令がメモリから命令バッファに取出される際に行うことができ、その命令を実行しようとする試みの検知を、命令バッファから可変長命令を読取ろうとする試みがなされた際に行うことができるので、便利である。
さらに、好ましい実施例においては、命令バッファのためのハードウェアは、命令バッファが、通常は連続する記憶アドレスから命令データを取出すよう動作し、現在記憶アドレス領域の終点を越えて延びるバッファ・メモリ位置は無効データを含むと識別して、このようなバッファ・メモリ位置から実行するような試みがなされた時は適切な修正動作が取られるようにすることによって、簡素化される。
プログラム・フローを変更し復元するための機構は、好ましい実施例においては、実行されるべき次のプログラム命令を特定するのに使用されるプログラム・カウンタ値を操作することによって、便宜的に提供される。
可変長命令をフィックス・アップ記憶領域から実行するための制御は、好ましい実施例においては、シングル・ステップ・フラグを使用して便宜的に提供される。シングル・ステップ・フラグは、プログラム・フローがフィックス・アップ記憶領域に変更される前にセットされ、プログラム・フローを復元するステップのために制御がソフトウェアに戻される前に、単一の命令のみがそのフィックス・アップ記憶領域から実行されるよう機能する。制御がソフトウェアに戻されるとき同時に、シングル・ステップ・フラグがハードウェアによってクリアされることが望ましい。
シングル・ステップ・フラグは様々な異なる場所に記憶することができ、プログラム・フローをフィックス・アップ記憶領域に変更する役割を持つソフトウェアによるプログラム制御の下でアクセスすることのできる、コプロセッサ・レジスタ内に提供することが便利であることが、理解されるであろう。
個別記憶領域の間の間隔にまたがる可変長命令に伴う問題は、実行されるべき次の命令の開始点が、間隔にまたがる命令が少なくとも解読されその長さが決定されるまで、知ることができないことである。本発明の好ましい実施例は、後続記憶領域の開始アドレスと、現在可変長命令がフィックス・アップ記憶領域内から実行された後に決定されるフィックス・アップ記憶領域内の後続命令に対するプログラム・カウンタ値と、を入力として使用して、後続記憶領域内の後続可変長命令の記憶アドレスを計算することによって、この問題を処理する。この動作を便宜的にサポートするために、好ましい実施例は、後続記憶領域の開始アドレスをプログラム・フローがフィックス・アップ記憶領域に変更される前に記憶し、この情報を、プログラム・フローが後続記憶領域内の正しい点に復元される際に復元ステップにおいて使用される入口点を計算するために使用することができる。
本技術は、多様な型の可変長命令と共に使用することができることが理解されるであろうが、本技術は、可変長命令が、ネイティブ命令として実行されるジャバカード・バイトコード命令である場合に、特に有用である。これらの命令は、より抽象的な性質により、物理的システムのメモリ内において断片化される可能性がより高いからである。ジャバカード・バイトコード・プログラムの断片化を処理するために、データ処理装置によって実行することができるさらなる命令セットを使用して、連結、変更および復元ステップがソフトウェア制御の下で実行されることが望ましい。従って、データ処理装置がジャバカード・バイトコードをサポートすることができる一方、メモリ・アドレッシングおよびメモリ・アクセス書込み、のような問題の物理的レベルでの管理は、関係する物理的ハードウェアにより密接に関連する異なる命令セットにおいて書かれたソフトウェアを使用して、下位オペレーティング・システムにおいて制御することができる。
さらなる命令セットと共にジャバカード・バイトコードの実行をサポートするシステムの場合、変更および復元ステップは、プログラム・フローを制御するために便宜的に操作することができる、特定された記憶アドレス位置から開始するジャバカード・モードへ実行を切換えるよう機能する状態切換分岐命令によって、便宜的に実行することができる。
他の観点からみると、本発明は、メモリ内の複数の個別記憶アドレス領域内に記憶された可変長命令のシーケンスを実行するための装置を提供する。本装置は、以下の装置を含む。
(i)2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みを検知する検知器であって、2つの個別記憶アドレス領域は、現在記憶アドレス領域および後続記憶アドレス領域である検知器
(ii)現在記憶アドレス領域の終了部分と後続記憶アドレス領域の開始部分との命令データを連結してメモリのフィックス・アップ記憶アドレス領域に記憶し、可変長命令を含む連結命令データを形成する連結論理
(iii)フィックス・アップ記憶アドレス領域内の連結命令データ内から現在可変長命令を実行するよう、プログラム実行フローを変更する変更論理
(iv)可変長命令に続く命令を後続記憶アドレス領域内から実行するように、プログラム実行フローを復元する復元論理
さらなる観点から見ると、本発明は、データ処理装置のメモリ内の複数の個別記憶アドレス領域内に記憶された可変長命令のシーケンスを実行するよう動作するデータ処理装置を制御するための、コンピュータ・プログラム製品を提供する。本コンピュータ・プログラム製品は、以下の機能を含む。
2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みの後に動作するコードであって、2つの個別記憶アドレス領域は現在記憶アドレス領域および後続記憶アドレス領域であるコードである。そして、本コードは以下の機能を含む。
(i)現在記憶アドレス領域の終了部分と後続記憶アドレス領域の開始部分との命令データを連結してメモリのフィックス・アップ記憶アドレス領域に記憶し、可変長命令を含む連結命令データを形成する連結コード
(ii)フィックス・アップ記憶アドレス領域内の連結命令データ内から現在可変長命令を実行するようプログラム実行フローを変更するよう動作する変更コード
(iii)可変長命令に続く命令を後続記憶アドレス領域内から実行するようにプログラム実行フローを復元するよう動作する復元コード
本発明の上記および他の目的、特徴および利点は、付随する図面と関連して読まれる、好ましい実施例の以下の詳細な記述から明白となるであろう。
図2は、PCT公開特許出願WO−A−02/29507(ネイティブ・ジャバ・プロセッサの説明のために本公開文献を参照することができる)に記述されているようなデータ処理システム内で、命令デコーダ・バッファがどのように制御されるかを示す流れ図である。特に、命令デコーダ・バッファは、スロットが、メモリから取出された命令データで再度満たすために使用可能になるまで、ステップ2において待機する。このようなスロットが使用可能になると、処理はステップ4に進み、次の32ビット命令データ・ワードが取出される。命令データ・ワード内に含まれるジャバカード・バイトコード命令は(ジャバカードは、スマートカードと共に使用されるように適合されたジャバの特別バージョンである)可変長であるので、このような32ビット命令データ・ワードは、1以上のジャバカード・バイトコード命令あるいはジャバカード・バイトコード命令のいくつかを含むことができることが理解されるであろう。
ステップ6において、ステップ4において開始された取出しがメモリ・アボートを起こしたかどうかが決定される。このようなアボートは、様々な理由で起こり得るが、典型的な理由は、保護エラーあるいはメモリ・ページ・テーブル境界の横切りあるいは他の(例えば断片化による)原因によるものである。
メモリ・アボートが起こっていない場合、処理はステップ8に進み、取出された命令データ・ワードが命令デコーダ・バッファ内の使用可能スロット内に記憶され、処理はステップ2に戻る。
メモリ・アボートがステップ6において検知された場合、処理はステップ10に進み、命令デコーダ・バッファ内のスロットがアボート・メモリ取出しフラグでマークされ、処理はステップ2に戻る。このようなアボート・メモリ取出しフラグは、ジャバカード・バイトコード・デコーダがその命令データにアクセスしようとする場合、取出しが試みられた時にアボートが起こったのでそのデータは有効ではなく、従ってメモリ・アボート処理ルーチンが開始されなければならないと、ジャバカード・バイトコード・デコーダに示す機能を提供する。メモリ・アボート・ハンドラは、メモリ・アボートを受けたバイトコードを実行するよう試みられた場合にのみトリガされる。
図3Aおよび図3Bは、記憶アドレス空間における間隔にまたがる可変長命令を処理するための処理を示す流れ図である。ステップ12において、ジャバカード・デコーダは、命令デコード・バッファから次の命令のためのバイトを読取る。ステップ14は、これらのバイトのいずれかがメモリ・アボート・フラグでマークされているかどうかを識別する。どのバイトもメモリ・アボート・フラグでマークされていない場合、これらのバイトは有効データを含み、処理はステップ16に進み、読取られたバイトコードによって特定された可変長命令が実行される。ステップ12、14および16は、高速で効率的に実行されるように、ハードウェア制御の下で実行される。
ステップ14における決定が、読取られているバイトのいずれかがメモリ・アボートでマークされているという決定である場合、ステップ18が開始され、メモリ・アボート・ハンドラを開始する。このメモリ・アボート・ハンドラは、個別記憶領域の間のプログラムの断片化によるメモリ・アボートを含む、多様な異なる型のメモリ・アボートを処理することができる。この流れ図の残りの部分は、他の型のアボートではなくこのような断片化によって引起されたアボートを、メモリ・アボート・ハンドラがどのように処理するかを示している。ステップ18において開始されたアボート・ハンドラは、異なる型のメモリ・アボートを処理するために、他のアルゴリズムおよび機構に処理をすることができることが理解されるであろう。
ステップ20において、ソフトウェアにおけるメモリ・アボート・ハンドラは、フィックス・アップ記憶領域内の固定位置に対する現在可変長命令の開始におけるバイトコードを含む現在命令データ・ワードの複写を制御する。これに続きステップ22において、プログラム・フローという意味で続く直続の命令データ・ワードが、フィックス・アップ記憶領域内の直続の位置に複写されるつまり、物理的あるいは論理的記憶空間においては個別である。従って、2つの命令データ・ワードは連結され、フィックス・アップ・メモリ内に隣接して置かれる。
後続記憶領域の開始の識別は、様々な方法で行うことができるが、メモリ管理装置情報あるいは、例えば物理アドレス・マッピングへの仮想アドレスを特定する他の情報を調べるような、メモリ・アボート・ハンドラによって決定することができることが、理解されるであろう。
ステップ24において、実行する必要があり且つ個別記憶領域の間の間隔にまたがる現在可変長命令の開始アドレスが、フィックス・アップ記憶領域内で計算される。例として、現在記憶領域の終端における命令データ・ワード内の最終バイトにおいて開始する現在可変長命令が知られていた場合、フィックス・アップ記憶領域内で必要なプログラム・カウンタPC値は、フィックス・アップ・メモリ内の連結データの第1のワード内の最終バイトを指す。
ステップ26において、メモリ・アボート・ハンドラは、後続記憶領域の開始アドレスを既知の位置に記憶するよう機能する。この開始アドレスは、間隔にまたがる可変長命令が実行された後に、後続記憶領域内のコードへの正しい入口点を決定するために、後に必要となる。
ステップ28において、シングル・ステップ・フラグが、ジャバカード・デコーダを制御しているコプロセッサCP14のレジスタ内にセットされる。このような制御レジスタは通常、ソフトウェア制御の下で便宜的にアクセス可能であり(例えば、命令を記憶するコプロセッサ・レジスタ)、ハードウェアに構成情報を渡すためにプログラムを使用することができる。
メモリ・アボート・ハンドラの制御の下の最終ステップとして、ステップ30は、フィックス・アップ・メモリ内の現在可変長命令の開始を示すプログラム・カウンタ値と共に、メモリ・アボート・ハンドラが書かれたネイティブARMコードからジャバカード実行形式に切換える状態(モード)切換分岐命令BXJを生成するよう機能する。この時点で、制御はハードウェアに戻される。
ステップ32において、関連するPC値を有するBXJ命令によって起動されたハードウェアは、命令デコーダ・バッファを、フィックス・アップ・メモリから取出された2つの命令データ・ワードで満たすよう機能する。フィックス・アップ・メモリが、ハードウェアに渡されたPC値によって指示される記憶アドレスであるからである。PC値はまた、可変長ジャバカード命令のバイトコードが開始する第1の命令データ・ワード内の位置を指し、このジャバカード可変長命令の実行はステップ34において実行される。
ジャバカード・デコーダ・ハードウェアは、ステップ28でセットされたシングル・ステップ・フラグに応答し、ステップ36においてシングル・ステップ・フラグをクリアしステップ38においてシングル・ステップ例外ハンドラを開始する前に、単一のジャバカード命令のみを実行する。
シングル・ステップ例外ハンドラは、ARM命令ルーチンのようなソフトウェアに制御を再び戻す。シングル・ステップ例外ハンドラは、フィックス・アップ記憶領域内からの単一の命令の実行の後、後続記憶領域内の適切な位置にプログラム・フローを戻すよう機能する。
ステップ40において、シングル・ステップ例外ハンドラは、ステップ26において記憶された後続記憶領域アドレスと、ステップ34においてハードウェアが個別記憶領域の間の間隔にまたがる命令を実行した後に戻されたプログラム・カウンタPC値と、を読取るよう機能する。ハードウェアは、命令を実行するたびにPC値自体を更新し、従って、このハードウェアは、後続可変長命令が開始する後続記憶領域の開始からのオフセットが決定されるように、個別記憶領域の間の間隔にまたがる命令の長さを指示するのに効果的に使用することができることが理解されるであろう。特に、いくつかの実施例においては、PC値の最下位のビットを、後続可変長命令が見つけられる後続記憶領域の開始からのオフセットを指示するのに使用することができる。
ステップ42において、シングル・ステップ例外ハンドラは、ステップ40において決定されたように後続記憶領域内の後続命令を指すPC値と共に、ジャバカード実行状態に再び切換えるBXJ命令を生成する。処理はそれから、ステップ12に戻る。
図4は、図3Aおよび図3Bに関連して記述された処理を概要的に示している。
現在記憶領域44および個別後続記憶領域46が図示されている。現在記憶領域44は、ページ・テーブル境界で終結し、このページ・テーブル境界を越えて命令データを読もうとする試みは、メモリ・アボートを起こす。図示されているように、現在記憶領域44内で到達する最後の可変長命令のPC値が示され、この現在可変長命令は実際は3バイトの長さであり、従って、後続記憶領域46の最初の2つのバイトは現在可変長命令の1部分を形成する。
図示されているように、その領域の最後の32ビット命令データ・ワードを構成する現在記憶領域44の終了部分は、その領域の最初の32ビット命令ワードを構成する後続記憶領域46の開始部分と共に、メモリ・アボート・ハンドラの制御の下でフィックス・アップ記憶領域48に複写され、そこで連結される。現在記憶領域44内からのプログラム・カウンタPCは、フィックス・アップ記憶領域48内のプログラム・カウンタPC’に変換される。BXJモード切換分岐命令はそれから、ジャバカード・モードへ切換え、ジャバカード・デコーダを起動するよう開始される。PC’値は、ARMモードにおいて通常にアドレスされるようにARMレジスタの汎用バンク内のBXJ命令等のための通常の位置内に記憶されたR14値として、ジャバカード・デコーダに渡される。
ジャバカード・デコーダは起動されると、現在連結されている2つの命令データ・ワードを、フィックス・アップ・メモリ48から命令デコーダ・バッファに複写する。それから、プログラム・カウンタ値位置PC’において開始するジャバカード命令が実行され、命令デコーダ・バッファ内の双方のスロットからのバイトが使用される。BXJ命令によって制御がジャバカード・デコーダに渡される前に、メモリ・アボート・ハンドラは、シングル・ステップ例外ハンドラ・ソフトウェア・ルーチンを開始する前に単一の命令のみを実行するようジャバ・デコーダを制限する、ジャバ・デコーダのためのシングル・ステップ・フラグをセットする。従って、現在記憶領域44と後続記憶領域46にまたがる単一の命令の後、処理はシングル・ステップ例外ハンドラ50に渡る。シングル・ステップ例外ハンドラ50は、メモリ・アボート・ハンドラによって規定位置に記憶された後続領域開始アドレスの記憶された値を、単一の命令の実行の後にジャバカード・デコーダによって計算されたプログラム・カウンタ値PC後続’と共に使用して、後続記憶領域46内の真のPC後続値を計算する。これが計算されると、後続記憶領域46内の命令の実行が、後続記憶領域46内の最初の全可変長命令と共に開始されるように、他のBXJ命令が、後続記憶領域46内のPC後続値をジャバカード・デコーダに戻される変数として使用して生成される。従って、後続記憶領域46からの2つの最初の命令データ・ワードが命令デコーダ・バッファに複写され、ジャバカード実行が再開される。
図5は、上記の技術を実行することができるハードウェアを概要的に示している。図5はかなり簡便化されており、明瞭化のために、本技術に含まれていない複数の回路要素を省略していることを理解されたい。システム52は、メモリ54、マイクロプロセッサ実行エンジン56、ジャバカード・デコーダ58、ARM命令デコーダ60、コプロセッサ62、および、命令デコーダ・バッファ64を含む。ジャバカード・バイトコードの実行は、上記PCT公開特許出願WO−A−02/29507に記述された方法で行うことができる。特に、メモリ54から読取られたジャバカード・バイトコードは、命令デコーダ・バッファ64を通してジャバカード・デコーダ58に送られ、そこで、所望の処理を行うためにマイクロプロセッサ実行エンジン56を制御する制御信号を生成するために、使用される。ARMモードにおいて、ARMデコーダ60はメモリ54からARM命令を受取り、マイクロプロセッサ実行エンジン56を制御するために、それ自身の制御信号を生成する。
図示されるように、メモリ54は、記憶領域の間の間隔にまたがるよう許可された可変長命令を持つジャバカード・プログラムの異なる部分を記憶する、複数の個別記憶領域AおよびBを含む。メモリ54内にはまた、間隔にまたがる可変長命令の全バーションを再構築し、命令をフィックス・アップ記憶領域外で実行することができるように、個別記憶領域の終了部分および開始部分の連結を行うことができる、フィックス・アップ記憶領域がある。後続記憶領域の開始アドレスのような情報のための記憶装置もまたメモリ54内に提供され、上記のシングル・ステップ例外ハンドラによって、後続記憶領域内の正しい点に処理を戻すために使用される。メモリ54内にはまた、図示されていないが、メモリ・アボート処理コードとシステム52が必要とする他のサポート・コードとが記憶されている。このメモリ・アボート処理コード、サポート・コードおよびシングル・ステップ例外ハンドラは、通常、ARMデコーダ60によって解読されるARMコードの形式で提供される。
図示されるように、コプロセッサ62は、ジャバカード・デコーダ58に結合し、ジャバカード・デコーダ58に関連する複数の構成パラメータを記憶する。これらのパラメータの多くは、ジャバカード・バイトコードが実行されているとみなされるジャバ仮想マシーンの初期化と関連する。図示されるように、コプロセッサ62内のレジスタのひとつは、シングル・ステップ例外ハンドラをトリガしシングル・ステップ・フラグをクリアする前に、単一のジャバカード命令のみを実行するジャバカード・デコーダが設定により制限されるときは、シングル・ステップ・フラグとして機能するフラグを含む。
メモリの断片化を処理するための上記技術と関連してこのシングル・ステップ・フラグの使用を記述してきたが、シングル・ステップ・フラグは、ジャバカード命令が記憶領域にまたがらない場合にも、デバッギング・エイドとして使用することができる。従って、ジャバカード命令は、一時に1つ実行することができ、この時制御は、シングル・ステップ例外ハンドラとして機能するが、実際はデバッグに関連する適切なコードに渡される。
上記技術は、命令を実行するための方法および命令を実行するための装置の形で記述されてきたことが理解されるであろう。しかし、本発明の重要な部分は、メモリ・アボート・ハンドラおよびシングル・ステップ例外ハンドラとして機能するコンピュータ・コードの形で実現されることが理解されるであろう。この特定目的コードは、それ自身の価値によって商品として別々に供給することができ、本発明の実施例とみなすことができる。
上記の実施例は、本発明の技術をハードウェアおよびソフトウェアの混合において実現するシステムに関するものであることが理解されるであろう。特に、ソフトウェアは、メモリ・アボート・ハンドラおよびシングル・ステップ例外ハンドラの形で提供され、本技術のためのハードウェア・サポートは、シングル・ステップ・フラグおよびジャバカード・デコーダのシングル・ステップ・フラグへの応答の形で提供されている。しかし、本発明の他の実施例はソフトウェアの形でのみ実現することができることが理解されるであろう。
例として、メモリ・アボートの検知を同様の方法で行うことができ、それから、ソフトウェア内の可変長命令の断片化を十分に処理するメモリ・アボート・ハンドラがトリガされる。このようなソフトウェア・プログラムの最初の部分は、メモリ・アボートを、断片化された可変長命令に関連すると識別し、その可変長命令の異なる部分をフィックス・アップ記憶領域に複写し、全可変長命令を含む命令データ・ワードの連結されたセットを形成して、上記のメモリ・アボート・ハンドラの機能を提供する。このソフトウェア実現において、可変長命令である単一の命令を実行するためにハードウェアに制御を戻す代わりに、ソフトウェアはこの命令をエミュレートすることができる。このエミュレーションの一部として、最初のバイトによって可変長命令の長さを特定する参照用テーブルが使用される。ソフトウェアはこの長さを知ることができ、従って、後続記憶領域内の後続可変長命令の開始アドレスを計算するのに使用することができる。ソフトウェアはそれから、計算された記憶アドレスにおいて開始する後続記憶領域にプログラム・フローを復元する。
本発明の好ましい実施例を、付随する図面を参照しながら詳細に記述してきたが、本発明はこれらの実施例に限定されるものではなく、本出願の請求項によって定義される本発明の範囲および精神から逸脱することなく、この分野の技術者によって様々な変更および修正を行うことができることを理解されたい。
個別記憶領域にまたがる可変長命令の概要図である。 可変長命令が解読される前に、命令データとしてメモリから取出される可変長命令をバッファに入れるために使用される命令バッファの制御を示す流れ図である。 個別記憶領域にまたがる可変長命令が見つかった時に、処理がどのように実行されるかを示す流れ図である。 個別記憶領域にまたがる可変長命令が見つかった時に、処理がどのように実行されるかを示す流れ図である。 図3Aおよび図3Bに関連して記述された動作を異なる方法で示した図である。 図2から図4までに関連して記述された技術を使用することのできるシステムを示した、ハードウェア概要図である。
符号の説明
44 現在記憶領域
46 後続記憶領域
48 フィックス・アップ・メモリ
50 シングル・ステップ例外ハンドラ
52 システム
54 メモリ
56 マイクロプロセッサ実行エンジン
58 ジャバカード・デコーダ
60 ARM命令デコーダ
62 コプロセッサ
64 命令デコーダ・バッファ

Claims (62)

  1. データ処理装置のメモリ内の複数の個別記憶アドレス領域に記憶された可変長命令のシーケンスを実行する方法であって、
    (i)2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みを検知するステップであって、前記2つの個別記憶アドレス領域は現在記憶アドレス領域および後続記憶アドレス領域である前記検知するステップと、
    (ii)前記現在記憶アドレス領域の終了部分と前記後続記憶アドレス領域の開始部分とから命令データを連結して前記メモリのフィックス・アップ記憶アドレス領域に記憶し、前記可変長命令を含む連結命令データを形成するステップと、
    (iii)前記フィックス・アップ記憶アドレス領域内の前記連結命令データ内からの前記現在可変長命令を実行するようプログラム実行フローを変更するステップと、
    (iv)前記後続記憶アドレス領域内からの前記可変長命令に続く命令を実行するようプログラム実行フローを復元するステップと、
    を含む前記方法。
  2. 請求項1に記載の方法において、前記検知ステップがハードウェア制御の下で実行される、前記方法。
  3. 請求項1に記載の方法において、前記連結、変更および復元ステップが、ソフトウェア制御の下で実行される、前記方法。
  4. 請求項1に記載の方法において、可変長命令が、実行される前に前記メモリから命令バッファに取出される、前記方法。
  5. 請求項4に記載の方法において、前記可変長命令が前記命令バッファから読取られる際に、前記検知ステップが実行される、前記方法。
  6. 請求項4に記載の方法において、可変長命令の前記命令バッファへの取出しが、ハードウェア制御の下で連続する記憶アドレスから命令データを取出すことによって実行される、前記方法。
  7. 請求項6に記載の方法において、前記現在記憶アドレス領域の終点を越えた記憶アドレスからバッファ記憶位置への取出しが試みられた時、前記バッファ記憶位置が有効な命令データを含んでいないとしてマークされる、前記方法。
  8. 請求項7に記載の方法において、前記検知ステップが、有効な命令データを含んでいないとしてマークされたバッファ記憶位置に少なくとも部分的に記憶された命令を実行しようとする試みを検知するステップを含む、前記方法。
  9. 請求項1に記載の方法において、プログラム・カウンタ値が、実行されるべき可変長命令の位置を特定する、前記方法。
  10. 請求項9に記載の方法において、前記変更および復元ステップが、前記プログラム・カウンタ値を修正することによって動作する、前記方法。
  11. 請求項1に記載の方法において、更に、シングル・ステップ・フラグをセットするステップを含み、前記シングル・ステップ・フラグが、可変長命令のハードウェア実行形式を単一の可変長命令に制限するよう機能する、前記方法。
  12. 請求項11に記載の方法において、前記シングル・ステップ・フラグが、前記復元ステップを実行するために制御がソフトウェアに戻される前に、可変長命令のハードウェア実行形式を、前記連結命令データからの単一の可変長命令に制限するよう機能する、前記方法。
  13. 請求項11に記載の方法において、前記単一の可変長命令のハードウェア実行の際、前記シングル・ステップ・フラグがハードウェア制御の下でクリアされる、前記方法。
  14. 請求項11に記載の方法において、前記シングル・ステップ・フラグがコプロセッサ・レジスタ内に記憶される、前記方法。
  15. 請求項1に記載の方法において、更に、前記現在可変長命令に続く後続可変長命令の前記後続記憶領域内の開始アドレスを計算するステップを含む、前記方法。
  16. 請求項15に記載の方法において、前記計算ステップが、前記後続記憶領域の開始アドレスと、前記現在可変長命令の実行形式に続く前記後続可変長命令を指す前記フィックス・アップ記憶領域内のプログラム・カウンタ値と、を入力として使用する、前記方法。
  17. 請求項16に記載の方法において、更に、前記変更ステップの前に前記後続記憶領域の前記開始アドレスを記憶するステップを含む、前記方法。
  18. 請求項1に記載の方法において、前記可変長命令が、前記データ処理装置によってネイティブ命令として実行される仮想マシン命令である、前記方法。
  19. 請求項18に記載の方法において、前記データ処理装置がまた、更なる命令セットの命令の実行形式をサポートし、前記連結、変更および復元ステップが前記更なる命令セットの命令の制御の下で実行される、前記方法。
  20. 請求項19に記載の方法において、前記変更および復元ステップが、特定された記憶アドレス位置から開始する仮想マシン命令の実行形式に切換えるよう機能する状態切換分岐命令を使用して実行される、前記方法。
  21. 請求項1に記載の方法において、実行されるべきプログラムが、前記メモリ内の断片化された記憶領域内に記憶される、前記方法。
  22. メモリ内の複数の個別記憶アドレス領域内に記憶された可変長命令のシーケンスを実行するための装置であって、
    (i)2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みを検知する検知器であって、前記2つの個別記憶アドレス領域は、現在記憶アドレス領域および後続記憶アドレス領域である前記検知器と、
    (ii)前記現在記憶アドレス領域の終了部分と前記後続記憶アドレス領域の開始部分とから命令データを連結して前記メモリのフィックス・アップ記憶アドレス領域に記憶し、前記可変長命令を含む連結命令データを形成する連結論理と、
    (iii)前記フィックス・アップ記憶アドレス領域内の前記連結命令データ内から前記現在可変長命令を実行するよう、プログラム実行フローを変更する変更論理と、
    (iv)前記後続記憶アドレス領域内からの前記可変長命令に続く命令を実行する、プログラム実行フローを復元する復元論理と、
    を含む前記装置。
  23. 請求項22に記載の装置において、前記検知器が非プログラマブル・ハードウェアである、前記装置。
  24. 請求項22に記載の装置において、更に前記連結論理、前記変更論理および前記復元論理が、ソフトウェア制御の下で動作するプログラマブル・ハードウェアを含む、前記装置。
  25. 請求項22に記載の装置において、可変長命令が、実行される前に前記メモリから命令バッファに取出される、前記装置。
  26. 請求項25に記載の装置において、前記可変長命令が前記命令バッファから読取られる際に、前記検知器が動作する、前記装置。
  27. 請求項25に記載の装置において、可変長命令の前記命令バッファへの取出しが、ハードウェア制御の下で連続する記憶アドレスから命令データを取出すことによって実行される、前記装置。
  28. 請求項27に記載の装置において、前記現在記憶アドレス領域の終点を越えた記憶アドレスからバッファ記憶位置への取出しが試みられた時、前記バッファ記憶位置が有効な命令データを含んでいないとしてマークされる、前記装置。
  29. 請求項28に記載の装置において、前記検知器が、有効な命令データを含んでいないとしてマークされたバッファ記憶位置に少なくとも部分的に記憶された命令を実行しようとする試みを検知するよう動作する、前記装置。
  30. 請求項22に記載の装置において、プログラム・カウンタ値が、実行されるべき可変長命令の位置を特定する、前記装置。
  31. 請求項30に記載の装置において、前記変更論理および前記復元論理が、前記プログラム・カウンタ値を修正することによって動作する、前記装置。
  32. 請求項22に記載の装置において、シングル・ステップ・フラグをセットすることを含み、前記シングル・ステップ・フラグが、可変長命令のハードウェア実行形式を単一の可変長命令に制限するよう機能する、前記装置。
  33. 請求項32に記載の装置において、前記シングル・ステップ・フラグが、前記復元論理を実行するために制御がソフトウェアに戻される前に、可変長命令のハードウェア実行形式を、前記連結命令データからの単一の可変長命令に制限するよう機能する、前記装置。
  34. 請求項32に記載の装置において、前記単一の可変長命令のハードウェア実行の際、前記シングル・ステップ・フラグがハードウェア制御の下でクリアされる、前記装置。
  35. 請求項32に記載の装置において、前記シングル・ステップ・フラグがコプロセッサ・レジスタ内に記憶される、前記装置。
  36. 請求項22に記載の装置において、前記現在可変長命令に続く後続可変長命令の前記後続記憶領域内の開始アドレスを計算するよう動作する計算論理を含む、前記装置。
  37. 請求項36に記載の装置において、前記計算論理が、前記後続記憶領域の開始アドレスと、前記現在可変長命令の実行形式に続く前記後続可変長命令を指す前記フィックス・アップ記憶領域内のプログラム・カウンタ値と、を入力として使用する、前記装置。
  38. 請求項37に記載の装置において、前記変更の前に前記後続記憶領域の前記開始アドレスを記憶することを含む、前記装置。
  39. 請求項22に記載の装置において、前記可変長命令が、前記データ処理装置によってネイティブ命令として実行される仮想マシン命令である、前記装置。
  40. 請求項39に記載の装置において、前記データ処理装置がまた、更なる命令セットの命令の実行形式をサポートし、前記連結、変更および復元論理が前記更なる命令セットの命令の制御の下で実行される、前記装置。
  41. 請求項40に記載の装置において、前記変更論理および前記復元論理が、特定された記憶アドレス位置から開始する仮想マシン命令の実行形式に切換えるよう機能する状態切換分岐命令を使用する、前記装置。
  42. 請求項22に記載の装置において、実行されるべきプログラムが、前記メモリ内の断片化された記憶領域内に記憶される、前記装置。
  43. データ処理装置のメモリ内の複数の個別記憶アドレス領域内に記憶された可変長命令のシーケンスを実行するよう動作するデータ処理装置を制御するためのコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    該コンピュータ・プログラムは、2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする試みの後に動作するコードを含み、前記2つの個別記憶アドレス領域は、現在記憶アドレス領域および後続記憶アドレス領域であって、
    前記コードが、
    (i)前記現在記憶アドレス領域の終了部分と前記後続記憶アドレス領域の開始部分とから命令データを連結して前記メモリのフィックス・アップ記憶アドレス領域に記憶し、前記可変長命令を含む連結命令データを形成する連結コードと、
    (ii)前記フィックス・アップ記憶アドレス領域内の前記連結命令データ内からの前記現在可変長命令を実行するようプログラム実行フローを変更するよう動作する変更コードと、
    (iii)前記可変長命令に続く命令を前記後続記憶アドレス領域内から実行するようプログラム実行フローを復元するよう動作する復元コードと、
    を含む前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  44. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、2つの個別記憶アドレス領域にまたがる可変長命令を実行しようとする前記試みの検知が、ハードウェア制御の下で実行される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  45. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、可変長命令が、実行される前に前記メモリから命令バッファに取出される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  46. 請求項45に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記可変長命令が前記命令バッファから読取られる際に、前記検知が行なわれる、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  47. 請求項45に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、可変長命令の前記命令バッファへの取出しが、ハードウェア制御の下で連続する記憶アドレスから命令データを取出すことによって実行される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  48. 請求項47に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記現在記憶アドレス領域の終点を越えた記憶アドレスからバッファ記憶位置への取出しが試みられた時、前記バッファ記憶位置が有効な命令データを含んでいないとしてマークされる、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  49. 請求項48に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記検知が、有効な命令データを含んでいないとしてマークされたバッファ記憶位置に少なくとも部分的に記憶された命令を実行しようとする試みの検知することを含む、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  50. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、プログラム・カウンタ値が、実行されるべき可変長命令の位置を特定する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  51. 請求項50に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記変更コードおよび前記復元コードが、前記プログラム・カウンタ値を修正することによって動作する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  52. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、更に、シングル・ステップ・フラグをセットするよう動作するセッティング・コードを含み、前記シングル・ステップ・フラグが、可変長命令のハードウェア実行を単一の可変長命令に制限するよう機能する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  53. 請求項52に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記シングル・ステップ・フラグが、前記復元コードを実行するために制御がソフトウェアに戻される前に、可変長命令のハードウェア実行形式を、前記連結命令データからの単一の可変長命令に制限するよう機能する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  54. 請求項52に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記単一の可変長命令のハードウェア実行の際、前記シングル・ステップ・フラグがハードウェア制御の下でクリアされる、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  55. 請求項52に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記シングル・ステップ・フラグがコプロセッサ・レジスタ内に記憶される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  56. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記現在可変長命令に続く後続可変長命令の前記後続記憶領域内の開始アドレスを計算するよう動作する計算コードを含む、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  57. 請求項56に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記後続記憶領域の開始アドレスと、前記計算コードが、前記現在可変長命令の実行形式に続く前記後続可変長命令を指す前記フィックス・アップ記憶領域内のプログラム・カウンタ値と、を入力として使用する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  58. 請求項57に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記変更の前に前記後続記憶領域の前記開始アドレスを記憶することを含む、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  59. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記可変長命令が、前記データ処理装置によってネイティブ命令として実行される仮想マシン命令である、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  60. 請求項59に記載のコンピュータ/プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記データ処理装置がまた、更なる命令セットの命令の実行形式をサポートし、前記連結、変更および復元コードが前記更なる命令セットの命令の制御の下で実行される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  61. 請求項60に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記変更コードおよび前記復元コードが、特定された記憶アドレス位置から開始する仮想マシン命令の実行形式に切換えるよう機能する状態切換分岐命令を使用する、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
  62. 請求項43に記載のコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体において、実行されるべきプログラムが、前記メモリ内の断片化された記憶領域内に記憶される、前記コンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003320631A 2002-09-19 2003-09-12 複数の個別記憶アドレス領域内に記憶された可変長命令の実行 Expired - Fee Related JP3858013B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0221772A GB2393270B (en) 2002-09-19 2002-09-19 Executing variable length instructions stored within a plurality of discrete memory address regions

Publications (2)

Publication Number Publication Date
JP2004110827A JP2004110827A (ja) 2004-04-08
JP3858013B2 true JP3858013B2 (ja) 2006-12-13

Family

ID=9944394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003320631A Expired - Fee Related JP3858013B2 (ja) 2002-09-19 2003-09-12 複数の個別記憶アドレス領域内に記憶された可変長命令の実行

Country Status (3)

Country Link
US (1) US7676652B2 (ja)
JP (1) JP3858013B2 (ja)
GB (1) GB2393270B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502185B2 (en) * 2004-09-10 2009-03-10 Seagate Technology, Llc Method and system for determining spin pad length
US7783867B2 (en) * 2007-02-01 2010-08-24 International Business Machines Corporation Controlling instruction execution in a processing environment
US7882336B2 (en) * 2007-02-01 2011-02-01 International Business Machines Corporation Employing a buffer to facilitate instruction execution
CN102903001B (zh) * 2012-09-29 2015-09-30 上海复旦微电子集团股份有限公司 指令的处理方法和智能卡
US10649684B2 (en) * 2017-03-16 2020-05-12 Arm Limited Memory access monitoring
CN107291425B (zh) * 2017-06-23 2020-11-24 上海兆芯集成电路有限公司 合并解决重命名尺寸问题的部分写入结果的系统和方法
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931615A (en) * 1974-07-22 1976-01-06 Scientific Micro Systems Controller for digital devices
JPS6324327A (ja) 1986-07-16 1988-02-01 Fujitsu Ltd 命令フエツチ処理方式
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
JPH07239780A (ja) * 1994-01-06 1995-09-12 Motohiro Kurisu 1クロック可変長命令実行処理型命令読み込み電子計 算機
US5680564A (en) * 1995-05-26 1997-10-21 National Semiconductor Corporation Pipelined processor with two tier prefetch buffer structure and method with bypass
US6237074B1 (en) * 1995-05-26 2001-05-22 National Semiconductor Corp. Tagged prefetch and instruction decoder for variable length instruction set and method of operation
GB2302604B (en) * 1995-06-23 2000-02-16 Advanced Risc Mach Ltd Data memory access control
JP3658101B2 (ja) 1996-09-13 2005-06-08 株式会社ルネサステクノロジ データ処理装置
JP3377419B2 (ja) * 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令列生成方法及び装置、変換方法、及びコンピュータ
US6425070B1 (en) * 1998-03-18 2002-07-23 Qualcomm, Inc. Variable length instruction decoder
EP1102065A3 (de) * 1999-11-15 2001-05-30 Gerhard Prof. Dr. Flick Verfahren zur Ermittlung der Verfügbarkeit von Stickstoff und/oder Kohlenstoff in Böden und von Erden, Sedimenten und Komposten für das Pflanzenwachstum zur Quantifizierung der Stickstoffdüngung
EP1102165A1 (en) 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
US6542982B2 (en) * 2000-02-24 2003-04-01 Hitachi, Ltd. Data processer and data processing system
GB2367651B (en) 2000-10-05 2004-12-29 Advanced Risc Mach Ltd Hardware instruction translation within a processor pipeline
US20020069402A1 (en) 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
JP2003233495A (ja) 2002-02-07 2003-08-22 Toshiba Corp マイクロプロセッサ
US20040268326A1 (en) * 2003-06-26 2004-12-30 Hong Wang Multiple instruction set architecture code format

Also Published As

Publication number Publication date
US7676652B2 (en) 2010-03-09
GB2393270B (en) 2005-07-27
JP2004110827A (ja) 2004-04-08
GB2393270A (en) 2004-03-24
GB0221772D0 (en) 2002-10-30
US20040059890A1 (en) 2004-03-25

Similar Documents

Publication Publication Date Title
JP4216182B2 (ja) 複数の命令セットを用いるデータ処理
KR101799764B1 (ko) 다중 명령 세트로부터의 명령 디코딩
US20080148022A1 (en) Marking registers as available for register renaming
JP4703718B2 (ja) 選択的サブルーチンリターン構造
US20050210284A1 (en) Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7089539B2 (en) Program instruction interpretation
JP3858013B2 (ja) 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
RU2287178C2 (ru) Обработка необработанной операции в системах с множеством наборов команд
JPH0682320B2 (ja) データ処理装置
US6907515B2 (en) Configuration control within data processing systems
CN108920188B (zh) 一种扩展寄存器堆的方法及装置
JP3652956B2 (ja) エミュレーション装置
JPH056281A (ja) 情報処理装置
JP3644892B2 (ja) 複数組の命令組を実行するためのデータ処理装置
JP3057732B2 (ja) 情報処理装置
CA1223079A (en) Data processor having selective breakpoint capability with minimal overhead
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JPH1040094A (ja) ファームウエアのプログラム制御装置
JPH02211561A (ja) プロセッサ及びストアバッファ制御方法
JPH04130925A (ja) 情報処理装置
JPH0425937A (ja) 情報処理装置
JPH05173786A (ja) 自己変更コード実行方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060915

R150 Certificate of patent or registration of utility model

Ref document number: 3858013

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

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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