JPH09512652A - 多重命令セットによるデータ処理 - Google Patents

多重命令セットによるデータ処理

Info

Publication number
JPH09512652A
JPH09512652A JP7528043A JP52804395A JPH09512652A JP H09512652 A JPH09512652 A JP H09512652A JP 7528043 A JP7528043 A JP 7528043A JP 52804395 A JP52804395 A JP 52804395A JP H09512652 A JPH09512652 A JP H09512652A
Authority
JP
Japan
Prior art keywords
instruction
program
bit
instruction set
word
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
Application number
JP7528043A
Other languages
English (en)
Other versions
JP3173793B2 (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 JPH09512652A publication Critical patent/JPH09512652A/ja
Application granted granted Critical
Publication of JP3173793B2 publication Critical patent/JP3173793B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

Landscapes

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

Abstract

(57)【要約】 2つの命令セットを用いてデータ処理システムを説明する。両命令セットはプロセッサ・コア(2)内に完全なNビット・データ通路を用いて処理を制御する。一方の命令セットは32ビットの命令セットであり、他方は16ビットの命令セットである。両命令セットは永久的に設定され、かつ命令をデコードする関連のハードウエア(30、36、38)を有する。

Description

【発明の詳細な説明】 多重命令セットによるデータ処理 本発明は、データ処理の分野に関する。特に、本発明は、多数組のプログラム 命令ワードを使用するデータ処理に関する。 データ処理システムは、プログラム命令ワードの制御により動作するプロセッ サ・コアを使用しており、これらプログラム命令ワードはデコードされたときに 、制御信号を発生してプロセッサ・コア内の異なる要素を制御し、必要な機能を 実行することにより、プログラム命令ワードにより指定された処理を達成するた めに用いられる。 典型的なプロセッサ・コアは、与えられたビット幅のデータ通路を有するもの となり、このビット幅が与えられた命令に応答して操作することができるデータ ・ワードの長さを制限している。データ処理の分野における傾向は、これらのデ ータ通路幅のたゆまなき増加、例えば、8ビット・アーキテクチャから16ビッ ト、32ビット及び64ビット・アーキテクチャへ漸次的な移行であった。これ がデータ通路幅を増加させると同時に、命令セットは(CISC及びRISCフ ィロソフィーにおいて)可能とする命令数及びこれら命令のビット長を増加させ た。例えば、16ビット命令セットによる16ビット・アーキテクチャの使用か ら32ビット命令セットによる32ビット・アーキテクチャの使用への移行があ った。 増加したアーキテクチャ幅に向かう移行による問題は、前の世代の機械用に書 かれたプログラム・ソフトウェアと逆互換性を保持したいことである。これに対 処する1つの方法は、互換性モードにより新しいシステムを提供することであっ た。例えば、ディジタル・イクイップメント・コーポレーション(Digita l Equipment Corporation)のVAX11コンピュータ は初期のPDP11コンピュータ用の命令をデコードできるようにする互換性モ ードを有する。これは初期のプログラム・ソフトウェアを使用できるようにして いるが、このような使用では、動作している新しい処理システム において増大した機能を完全に活用するものではない。例えば、システムが実際 に32ビットの算術演算をサポートするハードウエアを有しているときに、多分 、多段の16ビットの算術演算のみを使用しているだけである。 このようなアーキテクチャ幅の変更に関連した他の問題は、新たに増大したビ ット幅の命令セットを使用するコンピュータ・プログラムの大きさが増大し勝ち ということである(32ビット・プログラム命令ワードは16ビット・プログラ ム命令ワードの2倍のメモリ空間を占める。)。大きさにおけるこのような増大 は、ある程度までは、単一の命令を実行して、従来、2つ以上の短い命令が必要 と思われていた1オペレーションを指定することにより、相殺させることである が、依然としてプログラム・サイズが増大する傾向にある。 この問題に対処する手法は、ユーザにそれ自身の命令セットを効果的に指定さ せることである。インターナショナル・ビジネス・マシン・コーポレーションに より製造されたIBM370コンピュータは、書き込み可能な制御ストアに関連 するものであり、これを使用して、ユーザが所望の操作に対してプロセッサ・コ アの異なる部分により命令プログラム・ワードをマッピングすることにより、そ れ自身に固有の命令セットを設定することができる。この手法は、良好な柔軟性 が得られるが、高速度のオペレーションを得ることは困難であり、また都合悪い ことに書き込み可能な制御メモリが集積回路の大きな領域を占める。更に、効率 的な予約命令セットの設計がユーザにとって厄介なタスクである。 更に、単一の命令セットが異なる長さの複数のプログラム命令ワードを有して いるシステムを設けることも知られている。この手法の1つの例はMOSテクノ ロジーにより製造された6502マイクロプロセッサである。このプロセッサは 、可変数のオペランド・バイトが続く8ビットのオペレーション・コードを使用 している。このオペレーション・コードは、オペランドを識別し、かつ命令を実 行することが可能となる前に、まずデコードされる必要がある。これは、多くの メモリ・フェッチを必要とし、また一定した既知長のプログラム命令ワード(即 ち、オペレーション・コード及び任意のオペランド)に比較してシステム・パフ ォーマンスに大きな制約がある。 本発明は、1つの特徴から見ると、データを処理する装置を提供するものであ って、前記装置は、 Nビット・データ通路を有し、複数のコア制御信号に応答するプロセッサ・コ アと、 第1のパーマネント命令セットからXビット・プログラム命令ワードをデコー ドして前記コア制御信号を発生し、前記Nビット・データ通路を使用する処理を トリガさせる第1のデコード手段と、 第2のパーマネント命令セットからYビット・プログラム命令ワードをデコー ドして前記コア制御信号を発生し、前記Nビット・データ通路を使用する処理を トリガさせ第2のデコード手段であって、YがXより小さい前記第2のデコード 手段と、 受け取ったプログラム命令ワードにより前記第1のデコード手段を使用する第 1の処理モードか、又は受け取ったプログラム命令ワードにより前記第2のデコ ード手段を使用する第2の処理モードかを選択する命令セット・スイッチとを含 む。 本発明は、幅広基準のXビット命令セット及びNビット・データ通路(例えば 、32ビット・データ通路上で動作する32ビット命令セット)を有するシステ ムにおいて、しばしば、Xビット命令セットの全機能が通常のプログラミングに おいて使用されていないことを認識している。その1例は、32ビット分岐命令 である。この分岐命令は、ごくまれにしか使用しない32メガバイト・レンジを 有している。従って、この分岐は、大抵の場合に、わずかな命令に対するものだ けであって、32ビット命令内の大抵のビットは何の情報も担うことがない。3 2ビット命令セットを使用して書かれた多くのプログラムは、コード密度が低く 、必要以上に多くのプログラム・メモリ空間を使用していることになる。 本発明は、完全Nビット・データ通路上で動作するのをそのままとする、別個 のパーマネントYビット命令セットを備えることにより、この問題に対処してい る。ただし、YはXより小さい。従って、Xビット命令セットの複雑さを必要と することなく、これらアプリケーションに対するコード密度を増加させながら、 同時にNビット・データ通路のパフォーマンスが得られる。 2つのパーマネント命令セットを備えることにおいて1つの共同作用が存在す る。ユーザは、使用している命令セットを変更させてプログラムの環境を適合さ せる柔軟性が許容され、かつ製造者によって両命令セットが、Nビット・データ 通路の使用を犠牲にすることなく、効率的に実施される(相対的なタイミングが 臨界的になっているRISCプロセッサのような高いパフォーマンスのシステム において臨界的である。)。 この構成の他の利点は、Yビット命令セットにより動作するときは、単位時間 当たりわずかなバイトのプログラム・コードが動作するので、プログラム・コー ドを記憶するメモリ・システムのデータ転送機能に課せられる要求の厳しさがそ れだけ軽減される。これは複雑さ及びコストを軽減させるものである。 更に、本発明はこの分野における通常の傾向と逆方向に移行している。この傾 向は、プロセッサの各新しい世代により、命令セットに更に多くの命令が付加さ れ、かつ命令セットはこれに対応するためにますます広幅となる。これに対して 、本発明は、完全な範囲の広幅の命令セットを必要としない状況で使用するよう に、広幅の複雑な命令セットから開始し、次いでより狭い命令セットを付加する (大きな数の命令に対して小さな空間による)。 第1の命令セット及び第2の命令セットが完全に従属していてもよいことは、 理解されるであろう。しかし、本発明の好ましい実施例では、前記第2の命令セ ットが前記第1の命令セットにより提供されたオペレーションのサブセットを提 供する。 前記プロセッサ・コアのハードウエア要素は両命令セットを容易に適合させる ようにセットされてもよいので、前記第2の命令セットが前記第1の命令セット のサブセットであると仮定すると、更に効率的なオペレーションが可能になる。 既存のプログラム・命令セットに増大したビット長のプログラム命令ワードの 命令セットを付加したときは、2つの命令セットからのプログラム命令ワードが 直交していることを確認することが可能である。しかし、前記命令セット・スイ ッチは、この制約をなくすようにし、かつ前記第2の命令セットが前記第1の命 令セットに対して非直交となるシステムを可能にする。 非直交の命令セットを使用できることは、システムの設計者の負担を軽減し、 かつ他の点の命令セット設計をより効率的に処理できるようにする。 前記命令セット・スイッチは、何らかの手動介入によるハードウエア型式のス イッチであってもよい。しかし、本発明の好ましい実施例では、前記命令セット ・スイッチが命令セット・フラグに対して応答する手段を備えているものであっ て、前記命令セット・フラグがユーザ・プログラム制御によりセット可能である 。 前記命令セット・スイッチを使用してソフトウェア制御により第1の命令セッ トと第2の命令セットとの間で切り換えられるようにすると、かなり都合がよい 。例えば、プログラマは、プログラムの大多数に関するコード密度を増加させる ために、第2の命令セットをそのYビット・プログラム命令に使用し、かつ電力 の増大及び第1の命令セットの複雑さが要求されるプログラムの小部分について はそのXビット・プログラム命令ワードにより、第1の命令セットへ一時的に切 り換えることもできる。 独立した2つの命令セットをサポートすると、システムに複雑さを付加させる 恐れがある。本発明の好ましい実施例において、前記プロセッサ・コアは現在適 用可能な処理ステータス・データを記憶するプログラム・ステータス・レジスタ と、セーブしたプログラム・ステータス・レジスタとを備えるものであって、前 記セーブしたプログラム・ステータス・レジスタは、プログラム例外が発生して プログラム処理例外の実行原因となるときに、メイン・プログラムに関連した処 理ステータス・データを記憶するために用いられ、前記命令セット・フラグは前 記処理ステータス・データの一部分である。 処理ステータス・データの一部として命令セット・フラグを設けると、例外が 発生したときに、これをセーブするのが保証される。このようにして、1つの例 外ハンドラが両処理モードにおける例外を処理することができ、また例外を処理 する際にこれが重要なものであれば、セーブしたプログラム・ステータス・レジ スタ内の前記セーブした命令セット・フラグをアクセスできるようにされてもよ い。更に、前記例外ハンドラは、設計上の制約によりその速度又はコード密度を 改善するように、いずれかの命令セットを使用できるようにされてもよい。 本発明の好ましい実施例は、命令セットが異なることによるビット長の相違に 対処するために、前記プロセッサ・コアがプログラム・カウンタ・レジスタと、 前記プログラム・カウンタ・レジスタ内に記憶されて次のプログラム命令ワード を指示するプログラム・カウントの値を増加させるプログラム・カウンタ・イン クリメンタとを含むものであって、前記プログラム・カウンタ・インクリメンタ は前記第1の処理モードに前記第2の処理モードと異なる増加ステップを適用す る。 前記第2の命令セットの短いプログラム命令ワードは、前記第1の命令セット と同じような量の情報を含むことができないことを理解すべきである。これに適 応するために、メモリ空間は、プログラム命令ワード内で指定することができる オペランド範囲を減少させることにより、第2の命令セット内で節減されること が好ましい。 本発明の好ましい実施例において、前記プロセッサ・コアは、前記第2の命令 セットからのプログラム命令ワードが単一のフェッチ・サイクルを必要とし、か つ第1の命令セットからのプログラム命令ワードが複数のフェッチ・サイクルを 必要とするように、Yビット・データ・バスによりメモリ・システムに接続され る。 Yビット・データ・バス及びメモリ・システムの使用により、より費用の安価 な総合システムを構築できるようにすると共に、少なくとも第2の命令セット用 の各プログラム命令ワードのために単一のフェッチ・サイクルを利用可能にさせ ている。 第1のデコード手段及び第2のデコード手段は、完全に個別のものであっても よい。しかし、本発明の好ましい実施例において、前記第2のデコード手段は、 前記第1のデコード手段の少なくとも一部分を再使用している。 前記第2のデコード手段により前記第1のデコード手段の少なくとも一部分を 再使用することにより、総合回路領域を減少させている。更に、前記第1の命令 セットが全般的に前記第2の命令セットほど複雑でなく、かつ同一のプロセッサ ・コアを駆動しているので、再使用を可能とするかなりの量の前記第2のデコー ド手段が存在する。 本発明は、他の特徴から見ると、データを処理する方法を提供するものであっ て、前記方法は、 Nビット・データ通路を有するプロセッサ・コアのために第1の処理モードか 又は第2の処理モードかを選択し、かつ複数のコア制御信号に応答するステップ と、 前記第1の処理モードにおいて、第1のパーマネント命令セットからXビット ・プログラム命令ワードをデコードして前記コア制御信号を発生し、前記Nビッ ト・データ通路を使用する処理をトリガさせるステップと、 前記第2の処理モードにおいて、第2のパーマネント命令セットからYビット ・プログラム命令ワードをデコードして前記コア制御信号を発生し、前記Nビッ ト・データ通路を使用する処理をトリガさせるステップであって、YがXより小 さい前記ステップと を含む。 さて、添付図面を参照し、単なる例として本発明の一実施例を説明する。 第1図はプロセッサ・コア及びメモリ・システムに関連するデータ処理装置を 概要的に示す。 第2図は単一の命令セットを有するシステム用の命令及び命令デコードを概要 的に示す。 第3図は2つの命令セットを有するシステムに使用する命令パイプライン及び 命令デコードを示す。 第4図はXビット・プログラム命令ワードのデコード処理を示す。 第5図及び第6図はYビット・プログラム命令ワードをXビット・プログラム 命令ワードにマッピングする処理を示す。 第7図はXビット命令セットを示す。 第8図はYビット命令セットを示す。 第9図は第1の命令セット及び第2の命令セットに適用可能な処理レジスタを 示す。 第1図はYビット・メモリ・システム4に接続されたプロセッサ・コア2を含 み、(集積回路の一部として形成される)データ処理システムを示す。この場合 に、Yは16に等しい。 プロセッサ・コア2はレジスタ・バンク6、ブース(Booths)乗算器8 、バレル(barrel)シフタ10、32ビット算術論理演算器12及び書き 込 みデータ・レジスタ14を含む。プロセッサ・コア2とメモリ・システム4との 間には、命令パイプライン16、命令デコーダ18及び読み出しデータ・レジス タ20が配置されている。プロセッサ・コア2の一部分であり、メモリ・システ ム4をアドレス指定するプログラム・カウンタ・レジスタ22が示されている。 プログラム・カウンタ・インクリメンタ24は、各命令を実行して、命令パイプ ライン16のために新しい命令をフェッチしなければならないときに、プログラ ム・カウンタ・レジスタ22内のプログラム・カウント値を増加させるため、使 用される。 プロセッサ・コア2は種々の機能装置間のNビット・データ通路(この場合に は、32ビット・データ通路)に関連している。動作において、命令パイプライ ン16内の命令は命令デコーダ18によりデコードされ、命令デコーダ18はプ ロセッサ・コア2内の異なる機能要素に転送される種々のコア制御信号を発生す る。プロセッサ・コアの異なる部分は、これらのコア制御信号に応答して、32 ビット乗算、32ビット加算、及び32ビット論理オペレーションのような32 ビットの処理オペレーションを実行する。 レジスタ・バンク6は現在のプログラミング・ステータス・レジスタ26及び セーブしたプログラミング・ステータス・レジスタ28とを含む。現在のプログ ラミング・ステータス・レジスタ26はプロセッサ・コア2用の種々の条件及び ステータス・フラグを保持している。これらのフラグは処理モード・フラグ(例 えば、システム・モード、ユーザ・モード、メモリ破棄モード等)と共に、算術 演算オペレーション、キャリー等において0結果の発生を表すフラグを含むもの でもよい。セーブしたプログラミング・ステータス・レジスタ28(このように バンクされた複数のセーブしたプログラミング・ステータス・レジスタのうちの 1つでよい。)は、処理モードスイッチをトリガする例外が発生すると、現在の プログラミング・ステータス・レジスタ26の内容を一時的に記憶するために使 用される。このようにして、例外処理はより高速かつより効率的に行われる。 現在のプログラミング・ステータス・レジスタ26内には命令セット・フラグ Tが含まれている。この命令セット・フラグは命令デコーダ18及びプログラム ・カウンタ・インクリメンタ24に供給される。この命令セット・フラグTがセ ットされると、システムは第2の命令セットの命令(即ち、Yビット・プログラ ム命令ワード、この場合では16ビット・プログラム命令ワード)により動作す る。命令セット・フラグTは、第2の命令セットにより動作するときに、小さな 増加ステップを取るようにプログラム・カウンタ・インクリメンタ24を制御し ている。これは、第2の命令セットのプログラム命令ワードが小さいということ と矛盾するものではなく、従ってメモリ・システム4のメモリ位置内により密に 配置される。 先に述べたように、メモリ・システム4は16ビット・データ・バスを介して 読み出しデータ・レジスタ20及び命令パイプライン16に接続された16ビッ ト・メモリ・システムである。このような16ビット・メモリ・システムは、高 いパフォーマンスの32ビット・メモリ・システムより簡単かつ安価である。こ のような16ビット・メモリ・システムを使用すると、16ビット・プログラム 命令ワードは単一サイクルでフェッチされる。しかし、第2の命令セットからの 32ビット命令を使用すると(命令セット・フラグTにより表示されている)、 命令パイプライン16用の単一32ビット命令を復帰させるのに2つの命令フェ ッチを必要とする。 メモリ・システム4から必要とするプログラム命令ワードが復帰されると、命 令デコーダ18によりデコードされ、命令が16ビット命令であるか又は32ビ ット命令であるかに拘わらず、プロセッサ・コア2内で32ビット処理を開始さ せる。 第1図では、命令デコーダ18が単一ブロックとして示されている。しかし、 1以上の命令セットに対処するために、命令デコーダ18は第2図及び第3図に 関連して説明するように、もっと複雑な構造を有する。 第2図は命令パイプライン16及び単一命令セットによりコピーするための命 令デコーダ18を示す。この場合に、命令デコーダ18は、32ビット命令をデ コードするように機能する第1のデコード手段30のみを含む。この第1のデコ ード手段30はプログラマブル・ロジック・アレー(PLA)を使用して第1の 命令セット(ARM命令セット)をデコードして複数のコア制御信号32を発生 し、これらのコア制御信号をプロセッサ・コア2に供給している。更に、現在デ コードされている(現在、コア制御信号32を発生している)プログラム命令ワ ードは、命令レジスタ34内にも保持される。プロセッサ・コア2内の各機能要 素(例えば、ブース乗算器8又はレジスタ・バンク6)は、この命令レジスタ3 4から直接それらの処理オペレーションに必要とされるオペランドを読み込む。 このような構成のオペレーションの特徴は、第1のデコード手段30としてそ れが動作するクロック・サイクルの初期においてその入力のうちの一定のもの( パイプCのパイプライン段から出発する実線として示されているPビット)を必 要とすることである。これは、プロセッサ・コア2内の必要な要素を駆動するタ イミングにより、コア制御信号32が発生することを保証することにある。第1 のデコード手段30は比較的に大きく、かつ低速のプログラマブル・ロジック・ アレー構造であり、従ってタイミングを考慮することが重要である。 命令のデコードを行わせるためにこのようなプログラマブル・ロジック・アレ ー構造を設計することは、当該技術分野において通常のことである。これらの入 力から所望の出力を発生させることと共に、一組の入力が定義される。この場合 に、指定された組の命令パイプラインから指定された組の出力を発生させるPL A構造を作り出すために、商業的に利用可能なソフトウェアが用いられている。 第3図は第1の命令セット及び第2の命令セットを処理するように変更された 第2図のシステムを示す。命令セット・フラグTにより第1の命令セットが選択 されると、システムは第2図に関連して説明されているように動作する。命令パ イプライン16における命令が第2の命令セットからのものであることを命令セ ット・フラグTが表しているときは、第2のデコード手段36が活性になる。 この第2のデコード手段は高速PLA38及び並列低速PLA40を使用して 16ビット命令(サム(Thumb)命令)をデコードする。高速PLA38は 、16ビット・サム命令の複数ビット・サブセット(Qビット)を対応する32 ビットARM命令のPビットにマップさせるために使用され、これら32ビット ARM命令は第1のデコード手段30を駆動するために必要とされる。このマッ ピングの実行には比較的に小数のビットが要求されるだけなので、高速PLA3 8は比較的に浅くてもよく、従ってパイプCの内容に応答して第1のデコード手 段がコア制御信号32を発生させるために十分な時間が得られるように、十分な 速さで動作する。高速PLA38は、完全に命令をマッピングするために不必要 に時間を費やすことなく、第1のデコード手段に対して対応する32ビット命令 の臨界的なビットを「だます」ように作用すると考えてよい。 しかし、完全32ビット命令は、大幅な変更、及び大きな付加的な回路要素な しに動作することができるのであれば、プロセッサ・コア2が依然として必要と している。時間臨界的なマッピングを高速PLA38によって処理したことによ り、並列に接続された低速PLA40は、16ビット命令を対応する32ビット 命令にマッピングするために用いられる。このより複雑化したマッピングは、高 速PLA38及び第1のデコード手段30が動作するために費やす全時間に及ぶ ことがあり得る。重要なことは、32ビット命令が、プロセッサ・コア2に作用 するコア制御信号32に応答して、十分な時間によりオペランドを読み取るため に命令レジスタ34内に存在しなければならないということである。 第2の命令セットをデコードするときに第3図のシステムの総合的な動作は、 第2の命令セットからの16ビット命令を第1の命令セットからの32ビット命 令にこれらが命令パイプライン16上を進行するに従って変換することにあるこ とを理解すべきである。これは、第2の命令セットからの命令を第1の命令セッ ト内の命令へ1対1でマッピングさせることが存在するのを保証するように、第 2の命令セットを第1の命令セットのサブセットにすることにより、実施可能に される。 命令セットフラグTを設けると、第2の命令セットを第1の命令セットに対し て非直交となるようにすることが可能である。これは、第1の命令セットが、何 ら空きビットなしに、直交する更なる命令セットを検出してデコード可能にする ために使用できる既存の命令セットとなる状況において、特に有用である。 第4図は32ビット命令の出コーディングを示す。第4図の上端に、フェッチ ・オペレーション、デコード・オペレーション、及び実行オペレーションを実行 する連続的な処理クロック・サイクルが示されている。特定の命令(例えば、掛 け算命令)が必要なときは、1以上の付加的な実行サイクルを付加することがで きる。 32ビット命令42は複数の異なるフィールドからなる。これらのフィールド 間における境界は第7図に後に示すように命令を区別するために異なる。 ビット命令42内のいくつかのビットは、一次デコード・フェーズ内でデコー ドすることを必要とする。これらのPビットはビット4〜7、20及び22〜2 7である。第1のデコード手段30が必要とし、かつ高速PLA38が「だまさ 」なければならない複数のビットが存在する。これらのビットは第1のデコード 手段に印加されてデコードされ、これによってデコード・サイクルの最初の部分 の終りで適当なコア制御信号32を発生させる必要がある。必要ならば、デコー ド・サイクルの終わりである限り、完全な命令のデコードを行うことができる。 デコード・サイクルの終わりで、実行サイクル中にプロセッサ・コア2により命 令レジスタ34から命令内の複数のオペランドが読み出される。 第5図は16ビット命令を32ビット命令にマッピングする1例を示す。太線 が32ビット命令内のPビットにマッピングすることを必要とする16ビット命 令内のQビットから、第1のデコード手段30に印加することができるように出 発している。これらのビットの大部分は直線的にコピーされるか、又は単純なマ ッピングに係わっていることが分かる。16ビット命令内のオペランドRn’、 Rd及びイミディエイト(immediate、即値)は、それらの最上位ビッ トを0によりパディングして32ビット命令を満たすことが必要である。このパ ディングは、32ビット命令のオペランドが16ビット命令のオペランドより大 きな範囲を有する結果として必要とされるものである。 第5図の最端に示す32ビット命令の一般化したフォーマットにより、32ビ ット命令は、16ビット命令により表される命令のサブセットよりもかなり柔軟 性があることが明らかである。例えば、32ビット命令は、その命令を条件によ って実行可能にさせる条件コードCondが先行している。これに対して、16 ビット命令はそれ自身、何の条件コードも有しておらず、マッピングされるべき 32ビット命令の条件コードは条件実行状態が「常に」と等価な「1110」値 にセットされる。 第6図はこのような命令の他のマッピングを示す。この場合に16ビット命令 は、第5図に示したものと異なる形式のロード/ストア命令である。しかし、こ の命令も依然として32ビット命令セットの単一データ転送命令のサブセットで ある。 第7図は32ビット命令セットに関する異なる11形式の命令のフォーマット を示す。これらの命令は、順に、 1.データ処理PSR転送、 2.乗算、 3.単一データのスワップ、 4.単一データの転送、 5.未定、 6.ブロック・データの転送、 7.分岐、 8.コ・プロセッサ・データの転送、 9.コ・プロセッサ・データのオペレーション、 10.コ・プロセッサ・レジスタの転送、及び 11.ソフトウェアの割込み である。 この命令の詳細な説明は、アドバンスドRISCマシン社により製造されたA RM6のデータ・シートに見い出すことができる。第7図において太線枠内の命 令は、第5図及び第6図に示されているものである。 第8図は32ビット命令セットに加えて設けられる16ビット命令セットを示 す。この命令セットの太線枠内の命令は、第5図及び第6図にそれぞれ示されて いるものである。この16ビット命令セット内の命令は、単一の32ビット命令 セットに全てマッピングされてもよく、従って32ビット命令セットのサブセッ トを形成する。 続いてこの命令セットにおける各命令間で転送されるフォーマットは、下記の ことを指定する。即ち、 フォーマット1:Op=0,1.両オペレーションは条件コード・フラグをセッ トする。 フォーマット2:Op=0,1.両オペレーションは条件コード・フラグをセッ トする。 フォーマット3:3オペレーション・コード。大きなイミディエイトを構築する ために使用される。 フォーマット4:Opは3オペレーション・コードを与え、全てのオペレーショ ンはMOVSRd、Rs SHIFT♯Immediate 5である。ただし、SHIFTは 0はLSL、 1はLSR、 2はASR である。 ARMにより定義された0によりシフトする。 フォーマット5:Op1*8+Op2は32ALUオペレーション・コードRd =RdopRnを与える。全てのオペレーションは条件コード ・フラグをセットする。オペレーションは、AND、OR、 EOR、BIC(AND NOT)、NEGATE、CMP、 CMN、MUL、TST、TEQ、MOV、MVN(NOT) 、 LSL、LSR、ASR、ROR。 ADC、SBC、MULLの喪失。 0によりシフトし、ARMにより定義された31より大である 。 8特殊コード、LOはレジスタ0〜7を指定し、HIはレジス タ8〜15を指定する。 SPECIALはCPSR又はSPSRである。 8空コード フォーマット6:Opは4オペレーション・コードを与える。全てのオペレーシ ョンは条件コード・フラグをセットする。 ADDをADD Rd,Rs,#Immediate5と交換 することができる。 フォーマット7:PC+オフセット(256ワード、1024バイト)をロード する。オフセットは整合されたワードでなければならないこと に注意すべきである。 この命令は次の文字プールをアクセスするため、定数、アドレ ス等をロードするために使用される。 フォーマット8:SP(r7)+256ワード(1024バイト)からのワード をロードし、かつストアする。 :SP(r7)+256かバイトからのバイトをロードし、かつ ストアする。 これらの命令はスタック及びフレーム・アクセス用のものであ る。 フォーマット9:ワード(又はバイト)、符号付きの3ビット Immediateオフセット(後処理による増加/減少)、 強制再書き込みをロードし、かつストアする。 Lはロード/ストアであり、Uはアップ/ダウン(加算/引算 オフセット)、Bはバイト/ワードである。 これらの命令はアレー・アクセスを目的とする。 オフセットはバイトに対して0〜7、またワードに対して0、 4〜28を符号化する。 フォーマット10:符号付きレジスタ・オフセット(前処理による増加/減少) によりワード(又はバイト)をロード及びストアする。再書 き込みなし。 Lはロード/ストア、Uはアップ/ダウン(加算/引算オフ セット)、Bはバイト/ワード これらの命令は、ベース+オフセット・ポインタ・アクセス を目的とし、また8ビットとの組合わせにより、MOV、 ADD、SUBはかなり速いイミディエイト・オフセット・ アクセスを与える。 フオーマット11:符号付き5ビット・イメディエイト・オフセット(前処理に よる増加/減少)によりワード(又はバイト)をロード及び ストアする。再書き込みなし。 Lはロード/ストアであり、Bはバイト/ワードである。 これらの命令は構造アクセス用を目的とする。 オフセットはバイトに対して0〜31、またワードに対して 0、4〜124を符号化する。 フォーマット12:多重ロード及びストア(強制再書き込み) Rlistはレジスタr0〜r7を指定する。 これら命令のサブクラスは、一対のサブルーチン・コール命 令及びリターン命令である。 r7がベースであり、かつビット7がrlistにセットさ れるときのLMDに対しては、PCがロードされる。 r7がベースであり、かつビット7がrlistにセットさ れるときのSTMに対しては、LRがストアされる。 r7がベース・レジスタとして使用されるときは、spが代 わりに使用される。 両者の場合には、フル下降スタックが実施される。即ち、 LDMはARMのLDMFDと同様であり、STMはARM のSTMFDと同様である。従ってブロック・コピーに対し ては、エンド・ポインタとしてr7を使用する。r7がベー スでないときは、LDM及びSTMはARMのLDMIA、 STMIAと同様である。 フォーマット13:ロード・アドレス。この命令はPC又はスタック・ポインタ に8ビットの符合なし定数を付加してその結果を宛先レジス タにストアする。 SPビットは、SP又はPCがソースであるか否かを表す。 spがソースであり、かつr7が宛先レジスタとして指定さ れているときは、SPは宛先レジスタとして使用される。 フォーマット14:条件分岐、+/−128バイト。ただし、condは条件コ ード(ARMに基づくものとして)定義され、cond= 15はSWIとして符号化する(256のみがフルにされる 必要がある。)。 フォーマット15:長い分岐及びリンクのビット22:12をセットする。 フォーマット16:長い分岐及びリンクを実行する。オペレーションはSUB newlr、pc、#4;ORR pc、oldlr、 #offset<<1である。newlr及びoldr手段 はオペレーションの前後のlrレジスタを意味する。 前述のように、16ビット命令セットは32ビット命令セットに比較してオペ ランド範囲を減少させている。これに対して、16ビット命令セットは、完全な 32ビットの命令セット用に設けられているレジスタ6のサブセット(第1図を 参照すること)を用いる。第9図は16ビット命令を設定することにより用いら れるレジスタのサブセットを示す。
【手続補正書】特許法第184条の8 【提出日】1996年1月26日 【補正内容】 このようなアーキテクチャ幅の変更に関連した他の問題は、新たに増大したビ ット幅の命令セットを使用するコンピュータ・プログラムの大きさが増大し勝ち ということである(32ビット・プログラム命令ワードは16ビット・プログラ ム命令ワードの2倍のメモリ空間を占める。)。大きさにおけるこのような増大 は、ある程度までは、単一の命令を実行して、従来、1以上の短い命令を必要と 思われていた1オペレーションを指定することにより、相殺させることであるが 、依然としてプログラム・サイズが増大する傾向にある。 この問題に対処する手法は、ユーザにそれ自身の命令セットを効果的に指定さ せることである。インターナショナル・ビジネス・マシン・コーポレーションに より製造されたIBM370コンピュータは、書き込み可能な制御ストアに関連 するものであり、これを使用して、ユーザが所望の操作に対してプロセッサ・コ アの異なる部分により命令プログラム・ワードをマッピングすることにより、そ れ自身に固有の命令セットを設定することができる。この手法は、良好な柔軟性 が得られるが、高速度のオペレーションを得ることは困難であり、また都合悪い ことに書き込み可能な制御メモリが集積回路の大きな領域を占める。更に、効率 的な予約命令セットの設計がユーザにとって厄介なタスクである。 ヨーロッパ特許出願公報EP−A−0 169 565号は16ビット・プロ セッサ・コアを有するシステムを開示している。第1のモードでは、システムが 16ビット・データ処理オペレーションを指定する16ビット命令により動作す る。第2のモードでは、システムが8ビット・データ処理オペレーションを指定 する8ビット命令により動作する。8ビット命令はプログラミングしたメモリを 用いて16ビット命令にマッピングされ、更にこの16ビット命令がデコードさ れる。次に、デコードされた16ビット命令が指定された8ビット・データ処理 オペレーションを実行する。 更に、単一の命令セットが異なる長さの複数のプログラム命令ワードを有して いるシステムを設けることも知られている。この手法の1つの例はMOSテクノ ロジーにより製造された6502マイクロプロセッサである。このプロセッサは 、可変数のオペランド・バイトが続く8ビットのオペレーション・コードを使用 している。このオペレーション・コードは、オペランドを識別し、かつ命令を実 行 することが可能となる前に、まずデコードされる必要がある。これは、多くのメ モリ・フェッチを必要とし、また一定した既知長のプログラム命令ワード(即ち 、オペレーション・コード及び任意のオペランド)に比較してシステム・パフォ ーマンスに大きな制約がある。 IBMテクニカル・ディスクロージャ・ブレティン第15巻、第3号、197 2年、第920頁は、17ビット命令を20ビット命令に変換するシステムを開 示している。 ヨーロッパ特許出願公報EP−A−0 199 173号は命令デコーダを含 むマイクロプロセッサを開示している。 本発明は、1つの特徴から見ると、データを処理する装置を提供するものであ って、 Nビット・データ通路を有し、複数のコア制御信号に応答するプロセッサ・コ アと、 第1のパーマネント命令セットから、Nビット・データ処理オペレーションを 指定するXビット・プログラム命令ワードをデコードして前記コア制御信号を発 生し、前記Nビット・データ通路を使用する処理をトリガさせる第1のデコード 手段と、 第2のパーマネント命令セットからYビット・プログラム命令ワードをデコー ドして前記コア制御信号を発生し、処理をトリガさせる第2のデコード手段であ って、YがXより小さい前記第2のデコード手段と、 受け取ったプログラム命令ワードにより前記第1のデコード手段を使用する第 1の処理モードか、又は受け取ったプログラム命令ワードにより前記第2のデコ ード手段を使用する第2の処理モードかを選択する命令セット・スイッチと を含む前記装置において、 前記Yビット・プログラム命令ワードは、前記Nビット・データ通路を用いて Nビット・データ処理オペレーションを指定する ことを特徴とする。 本発明は、幅広基準のXビット命令セット及びNビット・データ通路(例えば 、32ビット・データ通路上で動作する32ビット命令セット)を有するシステ ム において、しばしば、Xビット命令セットの全機能が通常のプログラミングにお いて使用されていないことを認識している。その1つの例は、32ビット分岐命 令である。この分岐命令は、ごくまれにしか使用しない32メガバイト・レンジ を有している。従って、この分岐は、大抵の場合に、わずかな命令に対するもの だけであって、32ビット命令内の大抵のビットは何の情報も担うことがない。 32ビット命令セットを使用して書かれた多くのプログラムは、コード密度が低 く、必要以上に多くのプログラム・メモリ空間を使用していることになる。 本発明は、完全Nビット・データ通路上で動作するのをそのままとする、別個 のパーマネントYビット命令セットを備えることにより、この問題に対処してい る。ただし、YはXより小さい。従って、Xビット命令セットの複雑さを必要と することなく、これらアプリケーションに対するコード密度を増加させながら、 同時にNビット・データ通路のパフォーマンスが得られる。 2つのパーマネント命令セットを備えることにおいて1つの共同作用が存在す る。ユーザは、使用している命令セットを変更させてプログラムの環境を適合さ せる柔軟性が許容され、かつ製造者によって両命令セットが、Nビット・データ 通路の使用を犠牲にすることなく、効率的に実施される(相対的なタイミングが 臨界的になっているRISCプロセッサのような高いパフォーマンスのシステム において臨界的である。)。 この構成の他の利点は、Yビット命令セットにより動作するときは、単位時間 当りわずかなバイトのプログラム・コードが動作するので、プログラム・コード を記憶するメモリ・システムのデータ転送機能に課せられる要求の厳しさがそれ だけ軽減される。これは複雑さ及びコストを軽減させるものである。 前記第2の命令セットの短いプログラム命令ワードは、前記第1の命令セット と同じような量の情報を含むことができないことを理解すべきである。これに適 応するために、メモリ空間は、プログラム命令ワード内で指定することができる オペランド範囲を減少させることにより、第2の命令セット内で節減されること が好ましい。 本発明の好ましい実施例において、前記プロセッサ・コアは、前記第2の命令 セットからのプログラム命令ワードが単一のフェッチ・サイクルを必要とし、か つ第1の命令セットからのプログラム命令ワードが複数のフェッチ・サイクルを 必要とするように、Yビット・データ・バスによりメモリ・システムに接続され る。 Yビット・データ・バス及びメモリ・システムの使用により、より費用の安価 な総合システムを構築できるようにすると共に、少なくとも第2の命令セット用 の各プログラム命令ワードのために単一のフェッチ・サイクルを利用可能にさせ ている。 第1のデコード手段及び第2のデコード手段は、完全に個別のものであっても よい。しかし、本発明の好ましい実施例において、前記第2のデコード手段は、 前記第1のデコード手段の少なくとも一部分を再使用している。 前記第2のデコード手段により前記第1のデコード手段の少なくとも一部分を 再使用することにより、総合回路領域を減少させている。更に、前記第1の命令 セットが全般的に前記第2の命令セットほど複雑でなく、かつ同一のプロセッサ ・コアを駆動しているので、再使用を可能とするかなりの量の前記第2のデコー ド手段が存在する。 本発明は、他の特徴から見ると、データを処理する方法を提供するものであっ て、前記方法は、 Nビット・データ通路を有するプロセッサ・コアのために第1の処理モードか 又は第2の処理モードかを選択し、かつ複数のコア制御信号に応答するステップ と、 前記第1の処理モードにおいて、第1のパーマネント命令セットから、Nビッ ト・データ処理オペレーションを指定するXビット・プログラム命令ワードをデ コードして前記コア制御信号を発生し、前記Nビット・データ通路を使用する処 理をトリガさせるステップと、 前記第2の処理モードにおいて、第2のパーマネント命令セットからYビット ・プログラム命令ワードをデコードして前記コア制御信号を発生し、前記Nビッ ト・データ通路を使用する処理をトリガさせるステップであって、YがXより小 さい前記ステップと を含む前記装置において、 前記Yビット・プログラム命令ワードは前記Nビット・データ通路を用いてN ビット・データ処理オペレーションを指定する。 請求の範囲 1.Nビット・データ通路を有し、かつ複数のコア制御信号(32)に応答す るプロセッサ・コア(2)と、 第1のパーマネント命令セットからのXビット・プログラム命令ワードをデコ ードして前記コア制御信号を発生し、前記Nビット・データ通路を用いる処理を トリガさせる第1のデコード手段(30)と、 第2のパーマネント命令セットからのYビット・プログラム命令ワードをデコ ードして前記コア制御信号を発生し、前記Nビット・データ通路を用いる処理を トリガさせる第1のデコード手段(36)であって、YがXより小さい前記第1 のデコード手段と、 受け取ったプログラム命令ワードに前記第1のデコード手段を用いる第1の処 理モードか、又は受け取ったプログラム命令ワードに前記第2のデコード手段を 用いる第2の処理モードを選択する命令セット・スイッチと を含むデータを処理する装置において、 前記Yビット・プログラム命令ワードは前記Nビット・データ通路を用いてN ビット・データ処理オペレーションを指定することを特徴とする前記装置。 2.前記第2の命令セットは前記第1の命令セットにより提供されるオペレー ションのサブセットを提供する請求項1記載の装置。 3.前記第2の命令セットは前記第1の命令セットに対して非直交である請求 項1及び2のうちのいずれかの請求項記載の装置。 4.前記命令セット・スイッチは命令セット・フラグ(T)に応答し、更に前 記命令セット・フラグはユーザ制御プログラムによりセット可能である請求項1 、2及び3のうちのいずれかの請求項記載の装置。 5.前記プロセッサ・コアは現在適用可能な処理ステータス・データを記憶す るプログラム・ステータス・レジスタ(CPSR)、及びセーブしたプログラム ・ステータス・レジスタ(SPSR)を含むものであって、前記セーブしたプロ グラム・ステータス・レジスタは、プログラム除外が除外処理プログラムの実行 原因を発生させるときは、メイン・プログラムに関連した処理ステータス・デー タを記憶するために用いられ、前記命令セット・フラグ(T)は前記処理ステー タス・データの一部分である請求項4記載の装置。 6.前記プロセッサ・コアは、プログラム・カウンタ・レジスタ(22)と、 次のプログラム命令ワードを指示するように前記プログラム・カウンタ・レジス タ内に記憶されたプログラム・カウント値を増加させるプログラム・カウンタ・ インクリメンタ(24)とを含み、更に前記プログラム・カウンタ・インクリメ ンタは前記第1の処理モードにおいて前記第2の処理モードと異なる増加ステッ プを適用する前記請求項のうちのいずれかの請求項記載の装置。 7.前記第2の命令セットにおける少なくとも1つのプログラム命令ワードは 前記第1の命令セット内で対応するプログラム命令ワードに比較して減少されて いるオペランド範囲を有する前記請求項のうちのいずれかの請求項記載の装置。 8.前記プロセッサ・コアは、前記第2の命令セットからのプログラム命令ワ ードが単一フェッチ・サイクルを必要とし、かつ前記第1の命令セットからのプ ログラム命令ワードは複数のフェッチ・サイクルを必要とするようにYビット・ データ・バスによりメモリ・システム(4)に接続されている前記請求項のうち のいずれかの請求項記載の装置。 9.前記第2のデコード手段は前記第1のデコード手段の少なくとも一部分を 再使用する前記請求項のうちのいずれかの請求項記載の装置。 10.前記装置は集積回路である前記請求項のうちのいずれかの請求項記載の 装置。 11.Nビット・データ通路を有し、かつ複数のコア制御信号に応答するプロ セッサ・コア(2)のために第1の処理モードか又は第2の処理モードかを選択 するステップと、 前記第1の処理モードにおいて、第1のパーマネント命令セットから、Nビッ ト・データ処理オペレーションを指定するXビット・プログラム命令ワードをデ コードして前記コア制御信号を発生し、前記Nビット・データ通路を用いる処理 をトリガするステップと、 前記第2の処理モードにおいて、第2のパーマネント命令セットからのYビッ ト・プログラム命令ワードをデコードして前記コア制御信号を発生し、処理をト リガするステップであって、YがXより小さい前記ステップと を含むデータを処理する方法において、 前記Yビット・プログラム命令ワードは前記Nビット・データ通路を用いてN ビット・データ処理オペレーションを指定することを特徴とする前記方法。

Claims (1)

  1. 【特許請求の範囲】 1.データを処理する装置において、 Nビット・データ通路を有し、かつ複数のコア制御信号に応答するプロセッサ ・コアと、 第1のパーマネント命令セットからのXビット・プログラム命令ワードをデコ ードして前記コア制御信号を発生し、前記Nビット・データ通路を用いる処理を トリガさせる第1のデコード手段と、 第2のパーマネント命令セットからのYビット・プログラム命令ワードをデコ ードして前記コア制御信号を発生し、前記Nビット・データ通路を用いる処理を トリガさせる第1のデコード手段であって、YがXより小さい前記第1のデコー ド手段と、 受け取ったプログラム命令ワードに前記第1のデコード手段を用いる第1の処 理モードか、又は受け取ったプログラム命令ワードに前記第2のデコード手段を 用いる第2の処理モードを選択する命令セット・スイッチと を含む前記装置。 2.前記第2の命令セットは前記第1の命令セットにより提供されるオペレー ションのサブセットを提供する請求項1記載の装置。 3.前記第2の命令セットは前記第1の命令セットに対して非直交である請求 項1及び2のうちのいずれかの請求項記載の装置。 4.前記命令セット・スイッチは命令セットフラグに応答し、更に前記命令セ ット・フラグはユーザ制御プログラムによりセット可能である請求項1、2及び 3のうちのいずれかの請求項記載の装置。 5.前記プロセッサ・コアは現在適用可能な処理ステータス・データを記憶す るプログラム・ステータス・レジスタ、及びセーブしたプログラム・ステータス ・レジスタを含むものであって、前記セーブしたプログラム・ステータス・レジ スタは、プログラム除外が除外処理プログラムの実行原因を発生させるときは、 メイン・プログラムに関連した処理ステータス・データを記憶するために用いら れ、前記命令セット・フラグは前記処理ステータス・データの一部分である請求 項4記載の装置。 6.前記プロセッサ・コアは、プログラム・カウンタ・レジスタと、次のプロ グラム命令ワードを指示するように前記プログラム・カウンタ・レジスタ内に記 憶されたプログラム・カウント値を増加させるプログラム・カウンタ・インクリ メンタとを含み、更に前記プログラム・カウンタ・インクリメンタは前記第1の 処理モードにおいて前記第2の処理モードと異なる増加ステップを適用する前記 請求項のうちのいずれかの請求項記載の装置。 7.前記第2の命令セットにおける少なくとも1つのプログラム命令ワードは 前記第1の命令セット内で対応するプログラム命令ワードに比較して減少されて いるオペランド範囲を有する前記請求項のうちのいずれかの請求項記載の装置。 8.前記プロセッサ・コアは、前記第2の命令セットからのプログラム命令ワ ードが単一フェッチ・サイクルを必要とし、かつ前記第1の命令セットからのプ ログラム命令ワードは複数のフェッチ・サイクルを必要とするようにYビット・ データ・バスによりメモリ・システムに接続されている前記請求項のうちのいず れかの請求項記載の装置。 9.前記第2のデコード手段は前記第1のデコード手段の少なくとも一部分を 再使用する前記請求項のうちのいずれかの請求項記載の装置。 10.前記装置は集積回路である前記請求項のうちのいずれかの請求項記載の 装置。 11.データを処理する方法において、 Nビット・データ通路を有し、かつ複数のコア制御信号に応答するプロセッサ ・コアのために第1の処理モードか又は第2の処理モードかを選択するステップ と、 前記第1の処理モードにおいて、第1のパーマネント命令セットからXビット ・プログラム命令ワードをデコードして前記コア制御信号を発生し、前記Nビッ ト・データ通路を用いる処理をトリガするステップと、 前記第2の処理モードにおいて、第2のパーマネント命令セットからのYビッ ト・プログラム命令ワードをデコードして前記コア制御信号を発生し、前記Nビ ット・データ通路を用いる処理をトリガするステップであって、YがXより小さ いステップと を含む前記方法。
JP52804395A 1994-05-03 1995-02-15 多重命令セットによるデータ処理装置及びデータ処理方法 Expired - Lifetime JP3173793B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9408765.7 1994-05-03
GB9408765A GB2289353B (en) 1994-05-03 1994-05-03 Data processing with multiple instruction sets
PCT/GB1995/000315 WO1995030188A1 (en) 1994-05-03 1995-02-15 Data processing with multiple instruction sets

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000365503A Division JP2002366348A (ja) 1994-05-03 2000-11-30 多重命令セットによるデータ処理

Publications (2)

Publication Number Publication Date
JPH09512652A true JPH09512652A (ja) 1997-12-16
JP3173793B2 JP3173793B2 (ja) 2001-06-04

Family

ID=10754489

Family Applications (3)

Application Number Title Priority Date Filing Date
JP52804395A Expired - Lifetime JP3173793B2 (ja) 1994-05-03 1995-02-15 多重命令セットによるデータ処理装置及びデータ処理方法
JP2000365503A Pending JP2002366348A (ja) 1994-05-03 2000-11-30 多重命令セットによるデータ処理
JP2005350864A Pending JP2006079652A (ja) 1994-05-03 2005-12-05 多重命令セットによるデータ処理

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2000365503A Pending JP2002366348A (ja) 1994-05-03 2000-11-30 多重命令セットによるデータ処理
JP2005350864A Pending JP2006079652A (ja) 1994-05-03 2005-12-05 多重命令セットによるデータ処理

Country Status (13)

Country Link
US (1) US5740461A (ja)
EP (3) EP1296225A3 (ja)
JP (3) JP3173793B2 (ja)
KR (2) KR100315739B1 (ja)
CN (2) CN1089460C (ja)
DE (2) DE69502098T2 (ja)
GB (1) GB2289353B (ja)
IL (1) IL113153A (ja)
IN (1) IN190632B (ja)
MY (1) MY113751A (ja)
RU (1) RU2137183C1 (ja)
TW (1) TW242184B (ja)
WO (1) WO1995030188A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513114A (ja) * 2014-03-18 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャ・モードの構成
US10747582B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2307072B (en) 1994-06-10 1998-05-13 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US6408386B1 (en) 1995-06-07 2002-06-18 Intel Corporation Method and apparatus for providing event handling functionality in a computer system
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5905893A (en) * 1996-06-10 1999-05-18 Lsi Logic Corporation Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
AU3480897A (en) * 1996-06-10 1998-01-07 Lsi Logic Corporation An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
GB2349252B (en) * 1996-06-10 2001-02-14 Lsi Logic Corp An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
US6002876A (en) * 1996-09-27 1999-12-14 Texas Instruments Incorporated Maintaining code consistency among plural instruction sets via function naming convention
JP3781519B2 (ja) * 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
US6230259B1 (en) * 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
EP0942357A3 (en) * 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
US6079010A (en) * 1998-03-31 2000-06-20 Lucent Technologies Inc. Multiple machine view execution in a computer system
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6327650B1 (en) * 1999-02-12 2001-12-04 Vsli Technology, Inc. Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
EP1050798A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Decoding instructions
EP1050796A1 (en) 1999-05-03 2000-11-08 STMicroelectronics S.A. A decode unit and method of decoding
US6662087B1 (en) * 2000-01-03 2003-12-09 Spx Corporation Backward compatible diagnostic tool
RU2198422C2 (ru) * 2000-10-25 2003-02-10 СИНЕРДЖЕСТИК КОМПЬЮТИНГ СИСТЕМС (СИКС) АпС Асинхронная синергическая вычислительная система
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US6775732B2 (en) * 2000-09-08 2004-08-10 Texas Instruments Incorporated Multiple transaction bus system
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
GB2367915B (en) 2000-10-09 2002-11-13 Siroyan Ltd Instruction sets for processors
KR20020028814A (ko) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6842849B2 (en) * 2001-05-21 2005-01-11 Arm Limited Locking source registers in a data processing apparatus
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
GB2376098B (en) 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
RU2184389C1 (ru) * 2001-06-04 2002-06-27 Бабаян Борис Арташесович Система управления конвейеризованным циклом процессора широкого командного слова
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7818356B2 (en) 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
EP1324191A1 (en) * 2001-12-27 2003-07-02 STMicroelectronics S.r.l. Processor architecture, related system and method of operation
AU2003210749A1 (en) * 2002-01-31 2003-09-02 Arc International Configurable data processor with multi-length instruction set architecture
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
US7194601B2 (en) 2003-04-03 2007-03-20 Via-Cyrix, Inc Low-power decode circuitry and method for a processor having multiple decoders
US7437532B1 (en) 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
US6983359B2 (en) 2003-08-13 2006-01-03 Via-Cyrix, Inc. Processor and method for pre-fetching out-of-order instructions
US7096345B1 (en) 2003-09-26 2006-08-22 Marvell International Ltd. Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof
USH2212H1 (en) * 2003-09-26 2008-04-01 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for producing an ion-ion plasma continuous in time
EP1687713A1 (en) * 2003-10-24 2006-08-09 Microchip Technology Incorporated Method and system for alternating instructions sets in a central processing unit
US7707389B2 (en) 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7650453B2 (en) * 2004-09-16 2010-01-19 Nec Corporation Information processing apparatus having multiple processing units sharing multiple resources
US7406406B2 (en) * 2004-12-07 2008-07-29 Bull Hn Information Systems Inc. Instructions to load and store containing words in a computer system emulator with host word size larger than that of emulated machine
KR100633773B1 (ko) 2005-07-01 2006-10-13 삼성전자주식회사 버스 시스템 및 버스 중재 방법
DE602006013042D1 (de) * 2005-12-23 2010-04-29 Koninkl Kpn Nv Prozessor-verriegelung
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US7917735B2 (en) * 2008-01-23 2011-03-29 Arm Limited Data processing apparatus and method for pre-decoding instructions
US8347067B2 (en) * 2008-01-23 2013-01-01 Arm Limited Instruction pre-decoding of multiple instruction sets
US8037286B2 (en) * 2008-01-23 2011-10-11 Arm Limited Data processing apparatus and method for instruction pre-decoding
US7925866B2 (en) * 2008-01-23 2011-04-12 Arm Limited Data processing apparatus and method for handling instructions to be executed by processing circuitry
US7925867B2 (en) * 2008-01-23 2011-04-12 Arm Limited Pre-decode checking for pre-decoded instructions that cross cache line boundaries
TWI379230B (en) * 2008-11-14 2012-12-11 Realtek Semiconductor Corp Instruction mode identification apparatus and instruction mode identification method
US9274796B2 (en) * 2009-05-11 2016-03-01 Arm Finance Overseas Limited Variable register and immediate field encoding in an instruction set architecture
CN101840328B (zh) 2010-04-15 2014-05-07 华为技术有限公司 一种数据处理方法及系统以及相关设备
US8914619B2 (en) * 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
GB2484489A (en) * 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
CN102360281B (zh) * 2011-10-31 2014-04-02 中国人民解放军国防科学技术大学 用于微处理器的多功能定点乘加单元mac运算装置
US9875108B2 (en) * 2013-03-16 2018-01-23 Intel Corporation Shared memory interleavings for instruction atomicity violations
US9965320B2 (en) 2013-12-27 2018-05-08 Intel Corporation Processor with transactional capability and logging circuitry to report transactional operations
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
CN104991759B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
US10007520B1 (en) * 2016-02-25 2018-06-26 Jpmorgan Chase Bank, N.A. Systems and methods for using alternate computer instruction sets
US10120688B2 (en) 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions
CN111090465B (zh) * 2019-12-19 2022-08-19 四川长虹电器股份有限公司 一种rv32ic指令集的译码系统及其译码方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5317240A (en) * 1976-07-31 1978-02-17 Toshiba Corp Controller
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
KR900003591B1 (ko) * 1985-04-08 1990-05-26 가부시기 가이샤 히다찌 세이사꾸쇼 데이터 처리장치
JPS62262146A (ja) * 1986-05-09 1987-11-14 Hitachi Ltd 処理装置
JP2845433B2 (ja) * 1987-09-07 1999-01-13 日本電気株式会社 集積回路装置
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
JP2550213B2 (ja) * 1989-07-07 1996-11-06 株式会社日立製作所 並列処理装置および並列処理方法
SU1716528A1 (ru) * 1989-12-25 1992-02-28 Научно-исследовательский институт электронных вычислительных машин Вычислительное устройство с совмещением операций
SU1700564A1 (ru) * 1990-02-21 1991-12-23 Ленинградский Институт Авиационного Приборостроения Процессор с микропрограммным управлением
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba Corp マイクロコンピュータ
EP0871108B1 (en) * 1991-03-11 2000-09-13 MIPS Technologies, Inc. Backward-compatible computer architecture with extended word size and address space
US5327566A (en) * 1991-07-12 1994-07-05 Hewlett Packard Company Stage saving and restoring hardware mechanism
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
GB2284492B (en) * 1993-12-06 1998-05-13 Graeme Roy Smith Improvements to computer control units
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513114A (ja) * 2014-03-18 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャ・モードの構成
US10545772B2 (en) 2014-03-18 2020-01-28 International Business Machines Corporation Architectural mode configuration
US10552175B2 (en) 2014-03-18 2020-02-04 International Business Machines Corporation Architectural mode configuration
US10747582B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10747583B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities

Also Published As

Publication number Publication date
JP2002366348A (ja) 2002-12-20
EP1296225A3 (en) 2007-07-25
EP0813144A3 (en) 1998-01-14
IL113153A0 (en) 1995-06-29
KR100327776B1 (ko) 2002-03-15
GB2289353B (en) 1997-08-27
EP0813144A2 (en) 1997-12-17
WO1995030188A1 (en) 1995-11-09
KR970703011A (ko) 1997-06-10
EP0813144B1 (en) 2003-04-23
EP1296225A2 (en) 2003-03-26
GB2289353A (en) 1995-11-15
DE69530520D1 (de) 2003-05-28
TW242184B (en) 1995-03-01
CN1174313C (zh) 2004-11-03
GB9408765D0 (en) 1994-06-22
EP0758464A1 (en) 1997-02-19
DE69530520T2 (de) 2003-12-24
US5740461A (en) 1998-04-14
CN1395168A (zh) 2003-02-05
IL113153A (en) 1998-07-15
JP3173793B2 (ja) 2001-06-04
CN1147307A (zh) 1997-04-09
RU2137183C1 (ru) 1999-09-10
KR100315739B1 (ko) 2002-02-28
DE69502098T2 (de) 1998-08-06
CN1089460C (zh) 2002-08-21
IN190632B (ja) 2003-08-16
JP2006079652A (ja) 2006-03-23
MY113751A (en) 2002-05-31
DE69502098D1 (de) 1998-05-20
EP0758464B1 (en) 1998-04-15

Similar Documents

Publication Publication Date Title
JPH09512652A (ja) 多重命令セットによるデータ処理
KR100327778B1 (ko) 다중명령 세트를 이용한 데이터 프로세싱 방법
US5701442A (en) Method of modifying an instruction set architecture of a computer processor to maintain backward compatibility
US4954943A (en) Data processing system
US4562538A (en) Microprocessor having decision pointer to process restore position
JP2006185462A (ja) 高データ密度のriscプロセッサ
KR0167005B1 (ko) 중앙처리장치
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
JPH0810428B2 (ja) データ処理装置
JP2001134436A (ja) 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法
US5742801A (en) Microprocessor to which additional instructions are added and instructions addition method thereof
US6542989B2 (en) Single instruction having op code and stack control field
CN1318957C (zh) 在程序控制流中实现改变的装置和方法
US4677545A (en) Microprocessor having macro-rom and main program queues
US6564312B1 (en) Data processor comprising an arithmetic logic unit
KR19990082750A (ko) 전문업데이트및브랜치명령을이용하는밀리코드플래그
US5187782A (en) Data processing system
JPH03201030A (ja) プロセッサ
JPS6149692B2 (ja)
Chalk Fetching and Executing Instructions
JPS6149694B2 (ja)

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20080330

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090330

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100330

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100330

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140330

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term