JP3616402B2 - 拡張可能なレジスタを提供するデータ処理システムおよびその方法 - Google Patents

拡張可能なレジスタを提供するデータ処理システムおよびその方法 Download PDF

Info

Publication number
JP3616402B2
JP3616402B2 JP34623293A JP34623293A JP3616402B2 JP 3616402 B2 JP3616402 B2 JP 3616402B2 JP 34623293 A JP34623293 A JP 34623293A JP 34623293 A JP34623293 A JP 34623293A JP 3616402 B2 JP3616402 B2 JP 3616402B2
Authority
JP
Japan
Prior art keywords
register
instruction
bus
index
processing system
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
JP34623293A
Other languages
English (en)
Other versions
JPH06230962A (ja
Inventor
チャールズ・エフ・スタドア
ジェイムズ・エス・ディバイン
マイケル・アイ・キャサーウッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH06230962A publication Critical patent/JPH06230962A/ja
Application granted granted Critical
Publication of JP3616402B2 publication Critical patent/JP3616402B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length

Description

【0001】
【産業上の利用分野】
本発明は一般的にはデータ処理システムに関し、かつより特定的には拡張可能なレジスタを提供するデータ処理システムおよびその方法に関する。
【0002】
【従来の技術】
中央処理ユニット(CPU)は一般にマイクロコントローラ集積回路(MCU)の主な「頭脳(brain)」である。CPUは別として、MCUは通常、メモリ、タイマおよびバスインタフェースのような、1つまたはそれ以上のオンボード・ペリフェラルまたはセクションを含む。しかしながら、CPUは通常MCUを制御するために使用されるソフトウェア命令を受け入れかつ解釈する責務を有している。
【0003】
1つの特定のCPUは種々のMCUに対して使用できる。もし同じCPUが種々のMCUに使用されれば、これらのMCUは一般に「ファミリ」(アメリカ合衆国、テキサス州、オースチンのモトローラ・インコーポレイテッドから入手可能なMC68HC05ファミリのマイクロコントローラのような)を形成するものと考えられる。種々のMCUに対して同じCPUを使用することには製造者の観点からおよび顧客の観点からの双方につき数多くの利点がある。1つのそのような利点は同じCPUを使用するファミリにおけるMCUの間でのソフトウェアの互換性である。
【0004】
しかしながら、新しくかつより強力なバージョンのCPUが望まれる場合に問題が生じる。新しいかつより強力なバージョンのCPUを設計する場合に行なわなければならない重要な決定の1つは古いCPUと「オブジェクトコードの互換性」を維持するか否かを決定することである。この明細書において使用されているように、用語「オブジェクトコードの互換性」は新しいCPUの妥協を許さない特性である。すなわち、新しいCPUは古いCPUに対して書かれたアセンブリ言語のソフトウェアを動作させることができるか(そして同じ結果を生じるか)、あるいはそうでないかである。したがって、古いCPUと新しいCPUの間のいずれの差異も古いCPUに対して書かれたアセンブリ言語のソフトウェアプログラムにとって完全に透明でなければならない。
【0005】
そのオブジェクトコードが古いCPUと互換性があるように新しいCPUを設計することには非常に重要な利点がある。その利点は古いCPUについて書かれたソフトウェアが直ちに新しいCPUにとって使用できることである。したがって、古いCPUを購入しかつ使用してきた顧客は簡単に新しいより強力なCPUを使用することに切り替えできる。そして、顧客は古いCPUによって彼らが使用しているソフトウェアはまた新しいCPUによって動作することを保証される。したがって、より新しい強力なCPUへとグレードアップするためにソフトウェアを修正しあるいは書き直す上でのコストが顧客にとって必要ではなくなる。古いCPUとオブジェクトコードが互換性を持つ新しいかつより強力なCPUを設計することにより顧客がソフトウェアの変更を行うことに関連するコストおよび危険をうける必要なしにより強力なCPUへとグレードアップできるようになる。
【0006】
新しいCPUをより強力にする方法の1つはレジスタのビット数を増大することにより1つまたはそれ以上のレジスタを拡張することである。例えば、インデクスレジスタを8ビットから16ビットに増大する。インデクスレジスタはインデクス付き(indexed)アドレシングモードにおいて使用される。インデクス付きアドレシングモードは一般にメモリのデータのテーブルにアクセスするために使用される。インデクスレジスタを8ビットから16ビットに増大することにより、インデクス付きアドレシングモードにおいてCPUによってアクセスされかつ使用できるメモリスペースが大幅に増大する。実際に、幾つかの顧客は新しい製品の特徴を導入するためにインデクスレジスタが8ビットから16ビットに拡張されることを絶対的に必要とする新しい製品を持っている。
【0007】
一般に、インデクス付きアドレシングモードにおいては、インデクスレジスタに格納される値はメモリ内の順次的な位置に格納されたデータ値のテーブルの始めへのポインタとして使用される。一般に命令の一部として含まれる、オフセット値が次に前記データ値のテーブル内の1つの特定のロケーションをアクセスするために前記インデクスレジスタ内の値に加えられる。しかしながら、インデクスレジスタが使用できる種々の他の方法がある。インデクス付きアドレシングモードは当業者によく知られている。
【0008】
新しいCPUにおいて単にインデクスレジスタを8ビットでなく16ビットにすることはオブジェクトコードの互換性を破壊するが、それは古いCPUに対して書かれた幾つかのソフトウェアは新しいCPUによって実行される場合に異なる結果を生じるからである。例えば、インデクスレジスタを増分したあるソフトウェアプログラムは該インデクスレジスタが値$FFを含んでいる場合に古いCPUの8ビットのインデクスレジスタを値$00にロールオーバさせ、一方同じソフトウェアプログラムは新しいCPUにおける16ビットのインデクスレジスタを値$0100に増大させることになる。したがって、新しいCPUにおいて単にインデクスレジスタを8ビットでなく16ビットにすることはオブジェクトコードの互換性を破壊する。
【0009】
オブジェクトコードの互換性を維持しながらレジスタのサイズを増大しあるいは拡張することも可能であるが、それは過大な数の新しい命令およびそれらの新しい命令を実施するのに必要な関連する回路を必要とする。拡張可能なレジスタを使用するかあるいは拡張可能なレジスタに影響を与える各々の古い命令に対し新しい二重の命令を持つことにより、新しいCPUがレジスタのサイズを拡張しかつそれでもオブジェクトコードの互換性を維持することが可能になる。第1の組の命令は古いCPUの命令と同じであり(すなわち、それは前記拡張可能なレジスタの8ビットのみを使用しかつ該8ビットに影響を与える)かつしたがってオブジェクトコードの互換性を維持する。第2の組の命令は第1の組の命令と同じ機能を達成する二重のまたは重複した組のものであるが、第2の組は拡張可能なレジスタの全16ビットを使用する。
【0010】
【発明が解決しようとする課題】
インデクスレジスタの場合、該インデクスレジスタを使用するかあるいは該インデクスレジスタに影響を与えるかなりの数の命令がある。したがって、インデクスレジスタを使用するかあるいはインデクスレジスタに影響を与える各命令に対して二重の組の命令を加えることは回路に対し許し難いほどの大きな付加となる。したがって、目標はできるだけ少しの回路およびコストを加え、それでも古いCPUとオブジェクトコードの互換性を有するより強力なCPUを設計することである。
【0011】
【課題を解決するための手段および作用】
前に述べた必要性は本発明によって満たされかつ他の利点も得られる。1つの形態においては、本発明は拡張可能なレジスタを提供するデータ処理システムおよびその方法である。
【0012】
1つの実施例においては、本発明はデータ処理システムにおける拡張可能なレジスタを提供する方法である。該方法は第1のレジスタ部および第2のレジスタ部を有するレジスタを提供する段階を含む。該方法はまた従来技術のデータ処理システムとオブジェクトコードの互換性を有する第1の命令を受ける段階を含む。前記第1の命令を受けたことに応じて、前記第1のレジスタ部は変更されかつ第2のレジスタ部は変更されない。本方法は従来技術のデータ処理システムにおいて規定されないオペコード(opcode)を有する第2の命令を受ける段階を含む。前記第2の命令を受けたことに応じて、第2のレジスタ部が変更される。本方法は従来技術のデータ処理システムとオブジェクトコードの互換性を有する第3の命令を受ける段階を含む。第3の命令を受けたことに応じて、前記第1および第2のレジスタ部の双方を使用して動作(operation)が行なわれる。
【0013】
本発明は添付の図面と共に以下の詳細な説明を参照することにより当業者に理解できるであろう。
【0014】
【実施例】
オブジェクトコードの互換性を維持しながらレジスタの長さを拡張するよりコスト効率のよい方法が必要であった。インデクスレジスタを含む古い命令の各々に対し新しい16ビットの命令を加えることはあまりにもコストがかかり過ぎた。よりコストの少ない解決方法が必要であった。
【0015】
この明細書で使用されている用語として、「拡張可能なレジスタ(extensible register)」は長さが拡張できるレジスタを意味する。用語「サイズ(size)」は、レジスタに言及する場合は、用語「長さ(length)」と同じ意味に使用される。
【0016】
本発明は現存するインデクスレジスタに上位バイト(upper byte)を加える。本発明は古いCPUからの全ての命令を利用し、並びにインデクスレジスタの新しい上位バイトを修正できる少しの新しい命令のみを加える。古いCPUからの全ての命令はまったく同じ16進のオペコードを有し、かつ前記少しの新しい命令は古いCPUにおいて規定されていなかったオペコードを有する。
【0017】
本発明においては、古いCPUからの幾つかの命令は(古いCPUと全く同様に)インデクスレジスタの8ビットのみを使用し、一方古いCPUからの他の命令は(古いCPUとは異なり)インデクスレジスタの16ビット全てを使用するよう修正されている。古い命令の幾つかはインデクスレジスタの16ビット全てを使用するが、オブジェクトコードの互換性は依然として維持される。
【0018】
インデクスレジスタの新しい上位バイトはリセットにおいて値$00に初期化され、かつ前記少しの新しい命令のみがインデクスレジスタの新しい上位バイトを変更できる。インデクスレジスタを変更する古い命令のいずれも新しい上位バイトに対しては影響を与えない。しかしながら、古いものであれ新しいものであれ、全てのインデクス付きアドレシングモードの命令は新しい上位バイトを含みインデクスレジスタの全16ビットを使用することに注目することが重要である。したがって古いCPUにおけるインデクスレジスタの8ビットのみを使用する古いインデクス付きアドレシングモードの命令は今や新しいCPU12においてインデクスレジスタの全16ビットを使用することになる。
【0019】
しかしながらオブジェクトコードの互換性は維持されるが、それはインデクスレジスタの新しい上位バイトはもし古い命令が使用されれば常に$00を含むことになるからである。また、値$xyを含む8ビットのインデクスレジスタを使用する全てのインデクス付きアドレシング操作は値$00xyを含む16ビットのインデクスレジスタ全体を使用する対応するインデクス付きアドレシング操作と同じ結果を生じる。
【0020】
しかしながら、もしある顧客が新しい命令を使用して新しいアセンブリコードのソフトウェアを書きたいと希望する場合、その顧客はインデクス付きアドレシングモードにおいてCPUによってアクセスできる増大したメモリスペースおよび16ビットのインデクスレジスタ全体の利益を受けることができる。
【0021】
したがって、本発明は新しいCPU12が拡張可能なインデクスレジスタを備えて設計できるようにする。新しいCPU12は8ビットのインデクスレジスタを有する古いCPUとオブジェクトコードの互換性があり、しかも新しいCPU12のインデクスレジスタは新しい命令が使用される場合に16ビットに効果的に拡張できる。その結果、ユーザは古いCPUに対して書かれかつ8ビットのインデクスレジスタの機能を有するアセンブリコードのソフトウェアを使用するか、あるいは新しいCPU12のためにアセンブリコードのソフトウェアを書きかつ16ビットのインデクスレジスタの機能を持つようにするかの間で選択を行なうことになる。
【0022】
用語「肯定する(assert)」および「否定する(negate)」は、信号、ステータスビット、または同様の装置をそれぞれその論理的に真のまたは論理的に偽の状態にすることを言及する場合に使用される。もし論理的に真の状態が論理レベル“1”であれば、論理的に偽の状態は論理レベル“0”である。また、もし論理的に真の状態が論理レベル“0”であれば、論理的に偽の状態は論理レベル“1”である。
【0023】
用語「バス」は、データ、アドレス、制御、またはステータスのような、1つまたはそれ以上の種々のタイプの情報を転送するために使用できる複数の信号を言及するために使用される。数字に先行する記号“$”はその数字がその16進または16をベースとした形式で表わされていることを示す。
【0024】
[図面の説明]
図1は、データ処理システム10の1つの実施例を示す。データ処理システム回路10は中央処理ユニット(CPU)回路12、システム統合セクション回路14、シリアルセクション回路16、ランダムアクセスメモリ(RAM)回路18、リードオンリメモリ(ROM)回路20、他のメモリ回路22(例えば、電気的に消去可能なプログラム可能リードオンリメモリ、EEPROM)、ポート論理回路24、外部バスインタフェース回路26、タイマセクション回路28、およびダイレクトメモリアクセス(DMA)回路30を含む。
【0025】
CPU12、システム統合回路14、シリアル回路16、RAM18、ROM20、他のメモリ回路22、オート論理回路24、外部バスインタフェース回路26、タイマ回路28、およびDMA30は情報バス32に双方向的に結合されている。CPU12およびシステム統合セクション14はバス34によって双方向的に結合されている。同様に、CPU12はバス36を介してDMA30に結合されている。
【0026】
システム統合セクション(System integration section)14は集積回路ピン38によってデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。シリアルセクション16は集積回路ピン40によってデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。メモリのタイプに応じて、他のメモリ22も任意選択的に集積回路ピン42を介してデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。ポート論理24は集積回路ピン44を介してデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。外部バスインタフェース26は集積回路ピン46を介してデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。また、タイマセクション28は集積回路ピン48を介してデータ処理システム10の外部の信号を受信しかつ外部に信号を送信することができる。
【0027】
図1に示されたデータ処理システム10の実施例はマイクロコントローラのファミリ内の1つの特定のマイクロコントローラを示している。同じファミリ内のマイクロコントローラは一般に複数の異なるオンボード・ペリフェラルを持つから、図1はデータ処理システム10の1つの実施例を提供するに過ぎない。例えば、データ処理システム10の他の実施例ではROM20、外部バスインタフェース26、またはDMA30を持たないかもしれない。実際に、データ処理システム10の他の実施例では図1に示されたものより少ない、多い、あるいは異なるペリフェラルを持つことができる。
【0028】
図2は、ブロック図形式で、本発明の一実施例に係わる図1の中央処理ユニット(CPU)12を示す。図2に示されるように、CPU12は概念的に3つの主な部分に分割することができ、すなわち制御ユニット54、実行ユニット56、およびシーケンサ58である。
【0029】
制御ユニット54は制御プログラム可能論理アレイ(制御PLA)回路60およびランダム制御論理回路62を含む。制御ユニット54においては、制御PLA60はランダム制御論理回路62に接続され集合的に制御PLA信号と名付けられた複数の信号を転送する。ランダム制御論理62は実行ユニット56に結合され複数のタイムド(Timed)制御信号を転送しかつ複数のステータス信号を受信する。制御PLA60はシーケンサ58に結合されてシーケンサ入力信号と名付けられた信号を転送し、かつシーケンサ出力信号と名付けられた信号を受信する。シーケンサ58は命令を受信するために情報バス32に結合されている。実行ユニット56は情報バス32に双方向的に結合されている。シーケンサ58の幾つかの実施例ではデコーダ59を含むことができる。
【0030】
図3は、図2の実行ユニット56の一部の一つの実施例を示す。プログラムカウンタ(ハイ)/インクリメンタレジスタ回路200はバス202から情報を受信しかつ情報をバス204に提供する。インデクスレジスタ(ハイ)回路205はバス202から情報を受信しかつ情報をバス204に提供する。プログラムカウンタ(ロー)レジスタ回路206は情報をバス202から受信しかつ情報をバス204に提供する。スタックポインタレジスタ回路208は情報をバス202から受信しかつ情報をバス204に提供する。アキュムレータレジスタ回路210はバス202から情報を受信しかつ情報をバス204に提供する。インデクスレジスタ(ロー)回路212は情報をバス202から受信しかつ情報をバス204に提供する。一時アドレスレジスタ(ハイ)回路214はバス202から情報を受信しかつ情報をバス216に提供する。一時アドレスレジスタ(ロー)回路218はバス202から情報を受信しかつ情報をバス216に提供する。データバスインタフェース回路220はバス202から情報を受信しかつ情報をバス216に提供する。定数発生論理回路222は情報をバス204に提供する。
【0031】
演算論理ユニット(ALU)224はバス204からかつバス216からデータを受信する。ALU224は双方向的にフラグ回路226に結合されている。フラグ回路226は双方向的に条件符号レジスタ228に結合されている。条件符号レジスタ228はバス202から情報を受信しかつ情報をバス216に提供する。ALU224の出力はシフタ回路230に結合されている。シフタ回路230は情報をバス202に提供する。
【0032】
プログラムカウンタ(ハイ)/インクリメンタレジスタ200、インデクスレジスタ(ハイ)205、および一時アドレスレジスタ(ハイ)214は各々情報をハイバス232に提供する。アドレスバス(ハイ)バッファ回路234はバス232から情報を受信しかつ情報をプログラムカウンタ(ハイ)/インクリメンタレジスタ200に提供する。アドレスバス(ハイ)バッファ234はアドレスバス(ハイ)236に結合されている。アドレスバス(ハイ)236は情報バス32に結合されている。
【0033】
プログラムカウンタ(ロー)レジスタ206、一時アドレスレジスタ(ロー)218、スタックポインタレジスタ208は各々情報をローバス238に提供する。アドレスバス(ロー)バッファ回路240はローバス238から情報を受信する。アドレスバス(ロー)バッファ240はアドレスバス(ロー)242に結合されている。アドレスバス(ロー)242は情報バス32に結合されている。
【0034】
ローバス238は情報をデータバス244から受信する。データバスインタフェース220は情報をデータバス240から受信しかつ該データバス244に情報を提供する。データバス244は情報バス32に結合されている。本発明の一つの実施例においては、アドレスバス(ハイ)236、アドレスバス(ロー)242、およびデータバス244は実際には情報バス32の一部である。
【0035】
図4は、ブロック図形式で、8ビットの従来技術のインデクスレジスタ302を示す。
【0036】
図5は、ブロック図形式で、16ビットのインデクスレジスタ304を示し、このインデクスレジスタ304はインデクスレジスタ(ハイ)回路205およびインデクスレジスタ(ロー)回路212の連結により形成されている。インデクスレジスタ(ハイ)回路205およびインデクスレジスタ(ロー)回路212は各々16ビットのインデクスレジスタ304の8ビットのレジスタ部である。インデクスレジスタ(ハイ)回路205およびインデクスレジスタ(ロー)回路212の双方は図3の実行ユニット56に含まれている。
【0037】
図6は、テーブル形式で、古いおよび新しい命令のあるグループが新しいCPU12のインデクスレジスタ部205および212に対して有する影響を示している。
【0038】
図7は、テーブル形式で、新しいCPU12においてインデクスレジスタ(ハイ)205を修正可能な新しい命令の説明を示している。
【0039】
[好ましい実施例の動作]
本発明は古いCPUとオブジェクトコードが互換性がありかつさらに可能な限り少しの回路およびコストを加えるのみである新しいより強力なCPUが設計できるようにする。新しいCPU12は拡張可能なレジスタを提供し、これは1つの実施例においては8ビットから16ビットへと拡張できるインデクスレジスタである。新しいCPU12における拡張可能なインデクスレジスタはオブジェクトコードの互換性を維持するために8ビットのレジスタのように機能するが、それはまた新しいCPU12においてインデクス付きアドレシングモードの可能性を増大するために16ビットのレジスタとして使用できる。
【0040】
図6は、テーブル形式で、古いおよび新しい命令のあるグループが新しいCPU12のインデクスレジスタ部205および212に対して持つ影響を示すものである。「古い」命令は古いCPUのために規定されかつ古いCPUが実行可能な命令である。したがって古い命令に対する命令セットにおける各命令は「古い」命令である。「新しい」命令は新しいCPU12のために規定されかつ新しいCPU12が実行することができるが、古いCPUに対しては規定されなかった命令である。新しいCPUに対する命令セットは全ての「古い」命令および新しいCPU12の可能性を増大するために加えられた「新しい」命令を含む。
【0041】
「古い命令」の見出しの下には、古い命令が新しいCPU12のインデクスレジスタ部205および212に対して持つ影響に関する2つの記述がある。インデクスレジスタ(ハイ)205は古い命令によって修正できないが、インデクスレジスタ(ロー)212は古い命令によって修正できる。両方のインデクスレジスタ(ハイ)205およびインデクスレジスタ(ロー)212はインデクス付きアドレシングモードにおいて連結されたインデクスレジスタ304として使用される。
【0042】
「新しい命令」の見出しの下には、新しい命令が新しいCPU12におけるインデクスレジスタ部205および212に対して持つ影響に関する2つの記述がある。インデクスレジスタ(ハイ)205およびインデクスレジスタ(ロー)212の双方は新しい命令によって修正できる。また、両方のインデクスレジスタ(ハイ)205およびインデクスレジスタ(ロー)212はインデクス付きアドレシングモードにおいて連結されたインデクスレジスタ304として使用される。
【0043】
新しいCPU12は現存のインデクスレジスタに上位バイト、すねわちインデクスレジスタ(ハイ)205、を加え、しかも依然としてオブジェクトコードの互換性を維持している。古いCPUは新しいCPU12におけるインデクスレジスタ(ロー)回路212(図3を参照)に直接対応するインデクスレジスタ302(図4を参照)を有していた。しかしながら、古いCPUとは異なり、新しいCPU12は16ビットのインデクスレジスタ304(図5を参照)を効果的に形成するためにインデクスレジスタ(ロー)回路212と連結できる付加的なインデクスレジスタ(ハイ)回路205(図3を参照)を有している。
【0044】
新しいCPU12は古いCPUからの全ての命令を使用し、ならびにインデクスレジスタ304の新しい上位バイト(図7を参照)を修正できるほんの少しの新しい命令のみを追加している。古い命令の全ては古いCPUにおけるものと全く同じ16進のオペコードを有しており、新しい命令は古いCPUにおいて規定されなかったオペコードを有していることに注意を有する。
【0045】
本発明の1つの実施例においては、古いCPUはアメリカ合衆国、テキサス州、オースチンのモトローラ・インコーポレイテッドから入手可能な、MC68HC05ファミリのマイクロコントローラのメンバである。古い命令の完全なリストはモトローラ・インコーポレイテッドによって発行されている種々のMC68HC05ファミリのユーザマニュアルで得られる。一例として、インデクスレジスタ302(図4を参照)を修正可能であった古い命令のいくつかは次の通りである。すなわち、インデクスレジスタ302の内容から1を減算する“DECX”命令、インデクスレジスタ302の内容に1を加算する“INCX”命令、イミディエイト値または特定されたメモリロケーションの内容をインデクスレジスタ302にロードする“LDX”命令、インデクスレジスタ302の全てのビットを1つの場所だけ左にシフトしかつビットゼロにゼロをシフトする“LSLX”命令。インデクスレジスタ302の内容をその2の補数値によって置換える“NEGX”命令、そしてインデクスレジスタにアキュムレータの内容をロードする“TAX”命令である。
【0046】
古いおよび新しい命令によってインデクスレジスタ部205および212に図6に示すようにして影響を与えることができるようにすることによって生成される結果を理解することが重要である。新しいCPU12においては、古い命令のいくつかは(ちょうど古いCPUと同様に)インデクスレジスタの8ビットのみを使用するが、他の古い命令は(古いCPUとは異なり)インデクスレジスタの16ビット全てを使用するよう修正されている。古い命令のいくつかはインデクスレジスタの入力ビット全てを使用するが、オブジェクトコードの互換性は依然として維持され、それについては次に説明する。
【0047】
インデクスレジスタの新しい上位バイト、すなわちインデクスレジスタ(ハイ)205、はリセットの場合に値$00に初期化され、かつ図7に示される少しの新しい命令のみがインデクスレジスタの新しい上位バイト(図5を参照)を変更することができる。インデクスレジスタを変更する古い命令のいずれも新しい上位バイトに対し影響を与えない。したがって、古いCPUによって実行するように書かれたいずれのソフトウェアもインデクスレジスタの新しい上位バイトに対しなんらの影響も持たない。したがって、古いCPUのために(かつ、したがって古い命令のみを使用して)書かれたソフトウェアが新しいCPU12によって実行される場合、インデクスレジスタの新しい上位バイトは決して修正または変更されず、かつ常にリセット値$00にとどまることになる。
【0048】
しかしながら、古いものであれあるいは新しいものであれ、インデクスレジスタを変更しない全てのインデクス付きアドレシングモード命令は、新しい上位バイトを含み、インデクスレジスタ304の16ビット全てを使用することに注目することが重要である。したがって、古いCPUにおいて8ビットのインデクスレジスタのみを使用した古いインデクス付きアドレシングモード命令は今や新しいCPU12におけるインデクスレジスタ304の16ビット全てを使用する。
【0049】
しかしながら、オブジェクトコードの互換性は維持され、それは古い命令のみが使用されればインデクスレジスタの新しい上位バイトは常に$00を含むからである。8ビットの値$xyおよび16ビットの値$00xyはインデクスレジスタを修正しないインデクス付きアドレシングモード命令において実行アドレスを計算するために使用された時同じ結果を生じる。インデクスレジスタを修正しなかったかつ値$xyを含む8ビットのインデクスレジスタのみを使用した古いCPUにおける全てのインデクス付きアドレシング操作は値$00xyを含む16ビットのインデクスレジスタ全体を使用する新しいCPU12における対応するインデクス付きアドレシング操作に対して同じ結果を生成する。したがって、いくつかの古い命令が8ビットのレジスタではなく16ビットのレジスタを使用してもオブジェクトコードの互換性が維持される。
【0050】
しかしながら、もしある顧客が新しい命令を使用して新しいソフトウェアを書くことを希望すれば、その顧客は16ビットのインデクスレジスタ全体およびインデクス付きアドレシングモードにおいてCPUによってアクセスできるメモリのテーブルのサイズの対応する増大の利益を受けることができる。該顧客はインデクスレジスタ304の上位バイトにもともと格納されていた$00の値を修正するために図7に示される新しい命令を使用することができる。
【0051】
本発明の別の実施例では、前記上位バイトが$00のリセット値を有することを必要とせず、その代わりもしソフトウェアがそれを要求すれば前記上位バイトに$00の値をユーザが書くことを要求することができる。例えば、インデクスレジスタ304を決して使用しないソフトウェアはインデクスレジスタ304に$00の値を書く必要がないことになる。
【0052】
図7は、テーブル形式で、新しいCPU12におけるインデクスレジスタ(ハイ)205を修正可能な新しい命令の説明を示す。本発明の別の実施例ではさらに多くの、さらに少ない、あるいは異なる新しい命令を使用できる。本発明はいずれの新しい命令のタイプまたは機能に付いてなんらの制約または制限をも与えない。しかしながら、ユーザがインデクスレジスタの新しい上位バイトに格納された値を修正するために使用できる少なくとも1つの命令を持つことが望ましい。
【0053】
新しいCPU12におけるインデクスレジスタの上位バイトを修正する2つのタイプの新しい命令があることに注意を有する。第1のタイプの新しい命令は前記上位バイトのみを修正可能でありかつ下位バイトにはなんらの影響も持たない(例えば、前記PULH命令)。第2のタイプの新しい命令は上位バイトおよび下位バイトの双方を変更可能である(例えば、AIX,CBEQ,LDHX,MOVおよびTSX命令)。
【0054】
本発明は新しいCPU12が古い命令をどのように実行するかに関して2つの制約のみを与える。すなわち、(1)古いCPUにおいてインデクスレジスタ302を修正した古い命令に対しては、インデクスレジスタ(ロー)205は同様に振舞いかつ最後にはインデクスレジスタ302と同じ値を格納しオブジェクトコードの互換性を保持し、かつ(2)全てのインデクス付きアドレシングモード命令は、新しいものも古いものも同様に、全てのインデクス付きアドレシングモード命令を二重化する必要性を除去するためにインデクスレジスタ304の16ビット全てを使用する。
【0055】
本発明の回路構成の動作を説明する。
図1を参照すると、データ処理システム10はMCUファミリ内の1つの可能なMCUを示している。同じファミリ内のMCUは一般に異なるオンボード・ペリフェラルを持つから、データ処理システム10の他の実施例はROM20を持たなくても良く、外部バスインタフェース26を持たなくとも良く、かつDMA30を持たなくとも良い。実際に、データ処理システムの他の実施例は図1の示されたものよりも少ない、多い、または異なるペリフェラルを持つことができる。
【0056】
図1に示される本発明の実施例の動作の間に、システム統合セクション14はデータ処理システム10のための種々の機能を行なうために使用される。一般に、システム統合セクション14はイネーブルおよびディスエーブル動作の双方に対し、タイミング制御を提供するために、そしてデータ処理システム10の例外処理要求を達成するために複数の制御情報を提供する。システム統合セクション14はバス34を介してCPU12と、前記複数の集積回路ピン38を介して外部ユーザと、そして情報バス32を介してデータ処理システム10の残りの複数の構成要素の各々と直接インタフェースすることができる。
【0057】
データ処理システム10においては、DMA30はデータ処理システム10の内部のメモリと複数のペリフェラル装置(図示せず)との間の直接のデータ通信を可能にする。DMA30はユーザが高速のメモリアクセス方法を要求する場合にデータ処理システム10に対して任意選択的に実施できる。ダイレクトメモリアクセス回路の使用および実施はデータ処理技術において良く知られておりここではこれ以上詳細に説明しない。
【0058】
タイマセクション28はフリーランの16ビットカウンタに基づく複数のタイミング機能を実行する。複数の集積回路ピン48を介してイネーブルされた時、タイマセクション28は入力捕捉機能、出力比較機能、リアルタイム割込、または適切に動作するコンピュータのウォッチドッグ機能を行なうよう動作することができる。これらの機能の各々の実施および使用はデータ処理技術において良く知られておりかつここではこれ以上詳細に説明しない。タイマセクション28の修正された形式のものはアメリカ合衆国、テキサス州、オースチンのモトローラ・インコーポレイテッドから商業的に入手可能なモトローラ社のMC68HC11型マイクロコントローラによって実施されている。
【0059】
外部バスインタフェース26は外部ユーザまたは外部ペリフェラル装置とデータ処理システム10の間でアドレスおよびデータ値の受信および送信を制御する。外部バスインタフェース26は複数のアドレスおよびデータ値を情報バス32を介してデータ処理システム10の残りの部分に通信する。
【0060】
ポート論理回路24は前記複数の集積回路ピン44の各々のものの動作および機能を制御する。ポート論理回路24は第1の動作モードにおいて汎用目的の入力/出力ピンとして機能するように前記複数の集積回路ピン44を構築することができる。第2の動作モードにおいては、ポート論理回路24は前記複数の集積回路ピンの各々を多重化されたアドレスおよびデータ情報を通信するために使用できる。
【0061】
RAM18,ROM20および他のメモリ22はアセンブリコードのソフトウェア命令、データ値およびアドレス値のような情報を記憶するために使用でき、これらの情報は次にデータ処理システム10によって使用できる。
【0062】
シリアルセクション16はデータ処理システム10と外部ユーザまたは外部ペリフェラル装置との間でシリアルなデジタルデータを通信する。シリアルなデジタルデータおよび適切な制御信号は前記複数の集積回路ピン40を介して通信される。
【0063】
図2を参照すると、新しいCPU12がさらに詳細に示されている。CPU12は基本的には3つの主な部分に分割されている。これらの3つの主な部分は制御ユニット54、実行ユニット56、およびシーケンサ58を含む。シーケンサ58は、制御PLA60と組合わせて、新しいCPU12の現在の状態および情報バス32によって受信された現在の命令の双方に基づき新しいCPU12の次の状態を決定することにより状態マシン(state machine)として機能する。
【0064】
本発明のいくつかの実施例ではデコーダ59を含むことができる。デコーダ59は(図示のごとく)シーケンサ58の一部とすることができ、あるいはシーケンサ58を制御PLA60の間に結合することができ、あるいは情報バス32とシーケンサ58との間に結合することもできる。デコーダ59は情報バス32を介して転送された命令のオペコードをデコードするために使用される。もしデコーダ59がシーケンサ58に含まれていれば、デコーダ59の出力は「シーケンサ出力信号」を使用して制御PLA60に転送される。
【0065】
新しいCPU12の動作の間は、シーケンサ58は情報バス32から命令を受信する。シーケンサ58は命令が制御ユニット54に提供されるべき順序を決定する。命令は「シーケンサ出力信号」を介して制御ユニット54の制御PLA60に与えられる。命令を受信すると、制御PLA60は複数の制御PLA信号をランダム制御論理62に提供する。制御PLA信号の論理状態は制御PLA60によって受信されるシーケンサ出力信号の論理状態によって決定される。
【0066】
制御PLA60はまた新しいCPU12の現在の内部状態に関するおよび現在の命令を実行する上で行なわれるべきプログレスに関するフィードバック情報を提供するためにシーケンサ58にシーケンス入力信号を提供する。ランダム制御論理62は前記複数の制御PLA信号の各々にタイミング制御情報を提供する。ランダム制御論理62は複数のタイムド制御信号を実行ユニット56に出力する。
【0067】
制御PLA60は、任意のタイプのメモリまたは任意のタイプのプログラマブルロジックアレイを含む、任意のタイプのプログラマブルアレイとして実施できる。制御PLA60はランダム論理として実施することもできかつランダム制御論理62と組合わせることができる。
【0068】
プログラマブルロジックアレイ(PLA)は一般にリードオンリメモリ(ROM)よりも小さな半導体領域を有するが、PLAをカスタム化するよりはROMをカスタム化するほうがより簡単でありかつ高速である。同じ制御PLA60は新しいCPU12の異なるバージョンに対して使用されるから、半導体領域を節約するために制御PLA60をPLAとして実現するのが有利であろう。
【0069】
前記タイムド制御信号は実行ユニット56を制御するために使用される。実行ユニット56は、前記タイムド制御信号の制御のもとに命令を実行するのに必要な各機能を達成する。情報バス32は実行ユニット56に位置するレジスタを読取りかつ該レジスタに書込むためのアドレスおよびデータパスとして使用される。実行ユニット56は新しいCPU12の現在の状態を示すために複数のステータス信号をランダム制御論理62に提供する。ランダム制御論理62は前記タイムド制御信号の論理状態を決定するのを助けるためにステータス信号の論理状態を使用する。
【0070】
一般に、新しいCPU12は命令を受信しかつデコードし、複数の制御信号を提供し、該複数の制御信号に応答して命令を実行し、かつ次に新しい命令が受信できかつ実行できるように前記命令の実行に関するフィードバック情報を提供する。
【0071】
図3を参照すると、実行ユニット56の一部がより詳細に示されている。前記タイムド制御信号がどのように実行ユニット56を制御するかについての詳細は示されていない。しかしながら、前記タイムド制御信号は従来技術と同様の方法で実行ユニット56を制御するために使用される。すなわち、タイムド制御信号は種々のバスにわたる、および種々のレジスタ、バッファ、および図3に示された他の回路へのおよびこれらの回路からの情報の流れを制御するために使用される。
【0072】
インデクス付きアドレシングモードについて次に説明する。多くのCPUはインデクス付きアドレシングモードで命令を実行する能力を持っている。インデクス付きアドレシングモードはCPUによっていくらか変わり得るが、いくつかの一般的な原理はかなり標準的なものとなっている。インデクス付きアドレシングモードはしばしばメモリに記憶された情報のテーブルを好適にアクセスする方法として使用される。
【0073】
一般に、インデクス付きアドレシングモードにおいては、インデクスレジスタに記憶された値はメモリの順次的なロケーションに格納されたデータ値のテーブルの始めに対するポインタとして使用される。一般に命令の一部として含まれる、オフセット値が次に前記データ値のテーブル内の1つの特定のロケーションをアクセスするためにインデクスレジスタ内の前記値に加算される。あるいは、前記オフセット値はデータ値のテーブルの始めに対するポインタとして使用でき、かつインデクスレジスタは該テーブルへの変位(displacement)を含むことができる。インデクスレジスタが使用される種々の他の方法がある。インデクス付きアドレシングモードは当業者によく知られている。
【0074】
しばしば、前記インデクス付きアドレシングモード内で種々のタイプのインデクス付きアドレスが存在する。説明の都合上、これらの種々のタイプのインデクス付きアドレシング(indexed addressing)はインデクス付きアドレシングモード内で「サブモード(sub−modes)」と称される。一例として、MC68HC05型マイクロコントローラのインデクス付きアドレシングモード内の種々の「サブモード」に付き説明する。MC68HC05型マイクロコントローラはインデクス付きアドレシングモード内で3つの「サブモード」を有する。すなわち、(1)オフセットなし、(2)8ビットのオフセット、および(3)16ビットのオフセット、である。MC68HC05型マイクロコントローラのインデクス付きアドレシングモード内のこれらの3つのサブモードに付き説明する。
【0075】
前記第1の「オフセットなし(no offset)」サブモードにおいては、インデクスレジスタの値は直接命令に対する実効アドレスとして使用される。したがって、この第1のサブモードにおいては、各命令は1バイトの命令であり、この場合この1バイトは命令のオペコードである。
【0076】
前記第2の「8ビットオフセット」サブモードにおいては、8ビットのオフセット値が命令の一部として含まれている。この8ビットのオフセット値は前記命令に対する実効アドレスを発生するためにインデクスレジスタにある値に加算される。したがって、前記第2のサブモードにおいては、各命令は2バイト命令であり、この場合第1のバイトは命令のオペコードであり、かつ第2のバイトは8ビットのオフセット値である。
【0077】
前記第3の「16ビットオフセット」サブモードにおいては、16ビットのオフセット値が命令の一部として含まれている。この16ビットのオフセット値は前記命令に対する実効アドレスを発生するためにインデクスレジスタにある値に加算される。したがって、第3のサブモードにおいては、各命令は32バイトの命令であり、この場合最初のバイトは命令のオペコードであり、かつ第2および第3のバイトは一緒になって16ビットのオフセット値となる。
【0078】
1つの実施例においては、新しいCPU12は前記MC68HC05型マイクロコントローラと同様にインデクス付きアドレシングモード内で同じ3つのサブモードを有しており、かつ新しいCPU12によって実行される古い命令は前記MC68HC05型マイクロコントローラからの全ての命令を有する。本発明の別の実施例ではインデクス付きアドレシングモード内でより多くの、より少ない、または異なるサブモードを使用することができる。さらに、本発明の別の実施例では異なる様式でインデクス付きアドレシングモードを規定することができる。実際に、本発明は命令に対する実効アドレスの計算の一部としてレジスタの値を使用する任意のアドレシングモードに対して使用できる。
【0079】
インデクス付きアドレシングモードを使用する命令の間における実行ユニット56の動作を説明する(図3を参照)。実効アドレスを発生するために使用されるステップのみを詳細に説明する。プログラムカウンタ(ハイ)/インクリメンタレジスタ200およびプログラムカウンタ(ロー)レジスタ206の増分のような、他のステップもインデクス付きアドレシングモードを使用する命令の間に実行される。しかしながら、これら他のステップは詳細には説明しない。
【0080】
前記第1の「オフセットなし」サブモードにおいては、インデクスレジスタの値が直接命令のための実効アドレスとして使用される。該命令が古い命令であるかあるいは新しい命令であるかにかかわりなく、インデクスレジスタ304の両方のバイトまたは部分が使用され、すなわちインデクスレジスタ(ハイ)205およびインデクスレジスタ(ロー)212が使用される。
【0081】
インデクスレジスタ(ロー)212は情報バス32に対して直接のアクセスを持たないから、前記第1のステップはインデクスレジスタ(ロー)212に格納された値を一時アドレスレジスタ(ロー)218に転送することである。バス202は一時アドレスレジスタ(ロー)218への唯一の入力パスであるから、インデクスレジスタ(ロー)212に格納された値をALU224を通って導くことが必要である。インデクスレジスタ(ロー)212に格納された値はバス204を渡ってALU224の入力に転送される。バス216に含まれる各信号は論理レベル“1”にプリチャージされる。ALU224はバス216からの全ての2進“1”を入力しかつ次にその論理レベルを全て2進“0”に反転する。したがって、ALU224への1つの入力はインデクスレジスタ(ロー)212からの値であり、かつALU224への他の入力はゼロである。ALU224はしたがってゼロをインデクスレジスタ(ロー)212からの値に加算する。次にALU224はその加算の結果をバス202を通って一時アドレスレジスタ(ロー)218に転送する。
【0082】
次に一時アドレスレジスタ(ロー)218に格納された値はローバス238を介してアドレスバス(ロー)バッファ240に転送される。同時に、インデクスレジスタ(ハイ)205に格納された値はハイバス232を介してアドレスバス(ハイ)バッファ234に転送される。したがって、実効アドレスは16ビットのアドレスであり、これはインデクスレジスタ(ハイ)205からの値とインデクスレジスタ(ロー)212からの値との連結により形成される。16ビットの実効アドレスは情報バス32を介して新しいCPU12から転送される。
【0083】
前記第2の「8ビットオフセット」サブモードにおいては、8ビットのオフセット値が命令の一部として含まれている。この8ビットのオフセット値は命令のための実効アドレスを発生するためにインデクスレジスタ304にある値に加算される。その命令が古い命令であるかあるいは新しい命令であるかにかかわりなく、インデクスレジスタ304の両方のバイトまたは部分が使用され、すなわちインデクスレジスタ(ハイ)205およびインデスクレジスタ(ロー)212の双方が使用される。
【0084】
命令の一部として含まれていた、8ビットのオフセットは情報バス32からデータバス244に転送され、次にデータバスインタフェース220に、次にバス216に、そして次にALU224の入力に転送される。その間に、インデクスレジスタ(ロー)212に格納された値はバス204を介してALU224の他の入力に転送される。ALU224は8ビットのオフセットおよびインデクスレジスタ(ロー)212からの値を一緒に加算し、かつ次にその結果をバス202を介して一時アドレスレジスタ(ロー)218に転送する。内部キャリー信号(図示せず)がALU224によって発生される。前記内部キャリー信号の論理状態は前記加算の結果キャリーアウトになったか否かによって決定される。内部キャリー信号の論理状態は新しいCPU12によって内部的に記憶される。
【0085】
次に、内部キャリー(2進0または2進1)がインデクスレジスタ(ハイ)205に記憶された値に加算される。インデクスレジスタ(ハイ)205に記憶された値はバス204を介してALU224の入力に転送される。バス216に含まれる各信号は論理レベル1にプリチャージされる。ALU224はバス216からの全ての2進1を入力しかつ次にその論理レベルを全て2進ゼロに反転する。したがって、ALU224への1つの入力はインデクスレジスタ(ハイ)205からの値でありかつALU224への他の入力はゼロである。ALU224は次に前記内部キャリーをゼロにおよびインデクスレジスタ(ハイ)205からの値に加算する。ALU224は次にその結果をバス202を介して一時アドレスレジスタ(ハイ)214に転送する。
【0086】
次に一時アドレスレジスタ(ハイ)214の内容がハイバス232を介してアドレスバス(ハイ)バッファ234に転送される。同時に、一時アドレスレジスタ(ロー)218の内容がローバス238を介してアドレスバス(ロー)バッファ240に転送される。したがって、実効アドレスは16ビットのアドレスであり、これは8ビットのオフセットをインデクスレジスタ(ハイ)205に格納された値とインデクスレジスタ(ロー)212に格納された値との連結したものに加えることによって形成される。この16ビットの実効アドレスは情報バス32を介して新しいCPU12から転送される。
【0087】
前記第3の「16ビットのオフセット」サブモードにおいては、16ビットのオフセット値が命令の一部として含まれている。この16ビットのオフセット値はその命令に対する実効アドレスを発生するためにインデクスレジスタの値に加算される。その命令が古い命令であるかあるいは新しい命令であるかにかかわりなく、インデクスレジスタ304の両方のバイトまたは部分が使用され、すなわちインデクスレジスタ(ハイ)205およびインデクスレジスタ(ロー)212の双方が使用される。
【0088】
命令の一部として含まれていた、16ビットのオフセットの上位バイトは情報バス32からデータバス244に、次にデータバスインタフェース220に、次にバス216に、そして次にALU224に転送される。バス214に含まれる各信号は論理レベル1にプリチャージされる。ALU224はバス204からの全ての2進1を入力しかつ次にその論理レベルを全て2進ゼロに反転する。したがって、ALU224への1つの入力は16ビットのオフセットの上位バイトであり、そしてALU224への他の入力はゼロである。ALU224は次に16ビットのオフセットの上位バイトをゼロに加算し、かつその結果をバス202を介して一時アドレスレジスタ(ハイ)214に転送する。
【0089】
次に、命令の一部として含まれていた、16ビットオフセットの下位バイトは情報バス32からデータバス244に、次にデータバスインタフェース220に、次にバス216に、そして次にALU224の入力に転送される。その間に、インデクスレジスタ(ロー)212に格納された値はバス204によってALU224の他の入力に転送される。ALU224は前記16ビットのオフセットの下位バイトおよびインデクスレジスタ(ロー)212からの値を一緒に加算し、かつ次のその結果をバス202を介して一時アドレスレジスタ(ロー)218に転送する。内部キャリー信号(図示せず)がALU224によって発生される。内部キャリー信号の論理状態は前記加算によってキャリーアウトを生じたか否かによって決定される。内部キャリー信号の論理状態は新しいCPU12によって内部的に記憶される。
【0090】
次に、内部キャリー(2進0または2進1)および16ビットのオフセットの上位バイトがインデクスレジスタ(ハイ)205に格納された値に加算される。インデクスレジスタ(ハイ)205に格納された値はバス204を介してALU224の入力に転送される。同様に、一時アドレスレジスタ(ハイ)214に格納された、16ビットのオフセットの上位バイトはバス216によってALU224の他の入力に転送される。したがって、ALU224への1つの入力はインデクスレジスタ(ハイ)205からの値であり、かつALU224への他の入力は16ビットのオフセットの上位バイトである。ALU224は次に前記内部キャリー、インデクスレジスタ(ハイ)205からの値、および16ビットのオフセットの上位バイトを一緒に加算する。ALU224は次にその結果をバス202を介して一時アドレスレジスタ(ハイ)214に転送する。
【0091】
次に、一時アドレスレジスタ(ハイ)214の内容がハイバス232を介してアドレスバス(ハイ)バッファ234に転送される。同時に、一時アドレスレジスタ(ロー)218の内容がローバス238を介してアドレスバス(ロー)バッファ240に転送される。したがって、実効アドレスは16ビットのアドレスでありこれは16ビットのオフセットをインデクスレジスタ(ハイ)205に記憶された値とインデクスレジスタ(ロー)212に記憶された値との連結に対して加算することによって形成される。16ビットの実効アドレスは情報バス32をを介して新しいCPU12から転送される。
【0092】
[概要およびいくつかの別の実施例]
要約すると、本発明は新しいCPU12が拡張可能なインデクスレジスタ304を備えて設計できるようにする。新しいCPU12は8ビットのインデクスレジスタを有する古いCPUとオブジェクトコードの互換性があり、しかも新しいCPU12のインデクスレジスタは新しい命令が使用される場合に効果的に16ビットに拡張できる。その結果、ユーザは古いCPU対して書かれかつ8ビットのインデクスレジスタの機能を有するアセンブリコードのソフトウェアを使用するか、または新しいCPU12に対しかつ16ビットのインデクスレジスタの機能を有する新しいアセンブリコードのソフトウェアを書くかを選択することができるようになる。本発明が特定の実施例に関して図示されかつ説明されたが、当業者にはさらなる修正および改善を成すことができる。例えば、本発明の別の実施例においては、データ処理システム10、新しいCPU12、および実行ユニット56に対する別のアーキテクチャを使用できる。図1、図2および図3に示されたアーキテクチャは使用できる可能なアーキテクチャに過ぎない。例えば、実行ユニット56は任意の数のまたは任意のタイプのレジスタを持つことができる。同様に、本発明は任意のサイズのレジスタに拡張可能とするために使用できる。例えば、16ビットのレジスタは別の新しいCPU12においては32ビットに拡張できる。また、実行ユニット56は異なるバスサイズまたは異なるバスのルーティングを持つことができる。本発明はインデクスレジスタ以外のタイプのレジスタと共に使用することもできる。さらに、本発明は、単に中央処理ユニット(CPU)におけるのみならず、任意のタイプのデジタルデータ処理装置においてレジスタを拡張可能にするために使用できる。
【0093】
本発明とは独立に、データ処理システム10の性能は独立的にオブジェクトコードの互換性に影響を与える種々の技術によって増大することもできる。例えば、本発明を使用することに加えて、いくつかのデータ処理システム10はさらに新しいCPU12内で1つまたはそれ以上の命令を実行するのに必要なサイクルの数を低減することによりさらに性能を高めることができる。もし新しいCPU12が1つまたはそれ以上の命令を実行するのに必要なサイクル数を変えれば、古いCPUに対するタイミングに敏感なアセンブリ言語のソフトウェアも修正する必要があるかもしれない。したがって、本発明は古いCPUおよび新しいCPU12の間でオブジェクトコードの互換性を維持するが、新しいCPU12に対する他の性能の改善は本発明と無関係に、いくつかの実施例においてオブジェクトコードの互換性に影響を与えるようにすることができる。
【0094】
したがって、この発明は説明された特定の形式に限定されるものではなくかつ添付の特許請求の範囲においてこの発明の精神および範囲から離れることのない全ての修正をカバーすることを意図していることが理解されるべきである。
【0095】
【発明の効果】
以上のように、本発明によれば、最小限の回路およびコストを加えるのみで古いCPUとのオブジェクトコードの互換性を保った状態でより強力なCPUを設計することが可能になる。
【図面の簡単な説明】
【図1】本発明の1実施例に係わるデータ処理システム10を示すブロック図である。
【図2】本発明の1実施例による図1のシステムの中央処理ユニット(CPU)12を示すブロック図である。
【図3】本発明の1実施例に係わるシステムの図2に示される実行ユニット56の一部を示すブロック図である。
【図4】8ビットの従来技術のインデクスレジスタ302の構成を示すブロック図である。
【図5】インデクスレジスタ(ハイ)回路205およびインデクスレジスタ(ロー)回路212の連結により形成される16ビットのインデクスレジスタ304の構成を示すブロック図である。
【図6】インデクスレジスタ部205および212に対して古いおよび新しい命令のグループが与える影響をテーブル形式で示す説明図である。
【図7】インデクスレジスタ(ハイ)205を修正可能な新しい命令の内容をテーブル形式で示す説明図である。
【符号の説明】
10 データ処理システム
12 中央処理ユニット
14 システム統合セクション
16 シリアルセクション
18 ランダムアクセスメモリ(RAM)
20 リードオンリメモリ(ROM)
22 代替メモリ
24 ポートロンリ回路
26 外部バスインタェース
28 タイマセクション
30 ダイレクトメモリアクセス(DMA)
32 情報バス
54 制御ユニット
56 実行ユニット
58 シーケンサ
59 デコーダ
60 制御プログラマブルロジックアレイ(制御PLA)
62 ランダム制御論理
200 プログラムカウンタ(ハイ)/インクリメンタ
204,216 バス
205 インデクスレジスタ(ハイ)
206 プログラムカウンタ(ロー)
208 スタックポインタレジスタ
210 アキュムレータ
212 インデクスレジスタ(ロー)
214 一時アドレスレジスタ(ハイ)
218 一時アドレスレジスタ(ロー)
220 データバスインフェース
222 乗数発生論理
224 演算論理ユニット(ALU)
226 フラグ
228 条件符号レジスタ
230 シフタ
232 ハイバス
234 アドレスバス(ハイ)バッファ
236 アドレスバス(ハイ)
238 ローバス
240 アドレスバス(ロー)バッファ
242 アドレスバス(ロー)
244 データバス

Claims (7)

  1. 第1のデータ処理システムにおいて拡張可能なレジスタを提供する方法であって、
    前記第1のデータ処理システムに対する命令セットを識別する段階であって、前記第1のデータ処理システムは第2のデータ処理システムに関連する現存の命令セットの少なくとも一部を実行する前記段階、
    前記第1のデータ処理システムにおいて、第1のレジスタ部および第2のレジスタ部を有するレジスタを提供する段階であって、前記第2のレジスタ部は前記第2のデータ処理システムには設けられていなかった前記段階、
    前記第1のデータ処理システムにおいて、前記第2のデータ処理システムと適合するオブジェクトコードである第1の命令を受信する段階、
    前記第1の命令の受信に応じて、前記第1のレジスタ部を変更しかつ前記第2のレジスタ部を変更しない段階、
    前記第1のデータ処理システムにおいて、前記第2のデータ処理システムにおいて規定されていないオペコードを有する第2の命令を受信する段階、
    前記第2の命令の受信に応じて、前記第2のレジスタ部を変更する段階、
    前記第1のデータ処理システムにおいて、前記第2のデータ処理システムと適合するオブジェクトコードであり前記第1の命令とは異なる第3の命令を受信する段階、および
    前記第3の命令の受信に応じて、前記第1および第2のレジスタ部の双方を使用して操作を行なう段階、
    を具備することを特徴とする第1のデータ処理システムにおいて拡張可能なレジスタを提供する方法。
  2. データ処理システムであって、
    拡張可能なインデクスレジスタであって、
    第1のインデクスレジスタ命令によって変更される第1のレジスタ部、そして
    第2のインデクスレジスタ命令によって変更されるが、第1のインデクスレジスタ命令によって変更されない第2のレジスタ部、
    を具備する前記拡張可能なインデクスレジスタ、
    前記拡張可能なインデクスレジスタに結合された第1のバス、
    前記拡張可能なインデクスレジスタに結合された第2のバス、および
    前記拡張可能なインデクスレジスタに結合されたアドレス発生回路であって、該アドレス発生回路の第1の入力は前記第1のバスに結合され、前記アドレス発生回路の出力は前記第3のバスに結合され、前記アドレス発生回路は前記データ処理システムがインデクス付きアドレシング動作を行なう場合に実効インデクス付きアドレスを発生するため前記第1のレジスタ部と前記第2のレジスタ部の組み合わせを使用するもの、
    を具備することを特徴とするデータ処理システム。
  3. 第1のデータ処理システムにおいて拡張可能なレジスタを提供する方法であって、前記第1のデータ処理システムは第2のデータ処理システムと実質的にオブジェクトコードが適合し、前記方法は、
    第1のレジスタ部および第2のレジスタ部を有するインデクスレジスタを提供する段階であって、前記インデクスレジスタはインデクス動作の間に使用される前記段階、
    前記インデクスレジスタを変更するために第1の命令を受信する段階、
    前記第1の命令が前記第2のデータ処理システムとオブジェクトコードが適合していれば、前記第2のレジスタ部を変更することなく前記第1のレジスタ部に格納された第1のインデクス値を更新する段階、
    前記第1の命令が前記第2のデータ処理システムとオブジェクトコードが適合しない場合は、前記第1および第2のレジスタ部の双方に格納された第2のインデクス値を更新する段階、
    前記第2のデータ処理システムとオブジェクトコードが適合する第2の命令を受信する段階、および
    前記第2の命令を実行する場合に前記第1および第2のレジスタ部の双方を利用する段階、
    を具備することを特徴とする第1のデータ処理システムにおいて拡張可能なレジスタを提供する方法。
  4. 拡張可能なレジスタを提供するデータ処理システムであって、
    情報バス、
    前記情報バスに結合された実行ユニットであって、
    第1の入力を有し、第2の入力を有し、かつ出力を有する演算論理ユニット、
    前記演算論理ユニットの前記第1の入力に結合された第1のバス、
    前記演算論理ユニットの前記第2の入力に結合された第2のバス、
    前記演算論理ユニットの前記出力に結合された第3のバス、
    前記第1および第2のバスの内の少なくとも1つに結合されかつ前記第3のバスに結合された第1のレジスタ部を有し、かつ前記第1および第2のバスの内の少なくとも1つに結合されかつ前記第3のバスに結合された第2のレジスタ部を有するインデクスレジスタ、
    前記第3のバスにおよび前記情報バスに結合されたアドレスバッファ論理であって、該アドレスバッファ論理は前記データ処理システムがインデクス付きアドレシング動作を行なう場合に実効アドレスを提供するために前記情報バスに対して前記第1のレジスタ部および前記第2のレジスタ部の組み合わせを提供するもの、
    を備えた前記実行ユニット、および
    前記実行ユニットに結合された制御回路であって、該制御回路は前記第1のレジスタ部のみを変更することにより前記インデクスレジスタを変更する第1の複数古い命令を受信し、前記制御回路は前記第1および第2のレジスタ部の双方を変更することにより前記インデクスレジスタを変更する第2の複数の新しい命令を受信し、そして前記制御回路は前記インデクス付きアドレシング動作を行なう第3の複数の古いおよび新しい命令の双方を受信するもの、
    を具備することを特徴とする拡張可能なレジスタを提供するデータ処理システム。
  5. データプロセッサを動作させる方法であって、
    演算論理ユニットを提供する段階、
    インデクスレジスタを提供する段階であって、該インデクスレジスタは第1のレジスタ部を有しかつ第2のレジスタ部を有するもの、
    前記インデクスレジスタを前記演算論理ユニットに結合するために少なくとも1つのバスを提供する段階、
    第1のインデクシング命令、第2のインデクシング命令および第3のインデクシング命令を受信しかつ実行するための制御回路を提供する段階、
    前記制御回路が前記第1のインデクシング命令を受信したことに応じて、前記インデクスレジスタを前記第1のレジスタ部のみを更新することにより変更する段階、
    前記制御回路が前記第2のインデクシング命令を受信したことに応じて、前記インデクスレジスタを前記第1および第2のレジスタ部の双方を更新することにより更新する段階、および
    前記制御回路が前記第3のインデクシング命令を受信したことに応じて、実効アドレスを提供するために前記第1のレジスタ部と前記第2のレジスタ部とを結合しかつ前記実効アドレスを使用してインデクス付きアドレシング動作を行なう段階、
    を具備し、前記第1のインデクシング命令の受信に応じて、第1のインデクス値が前記第1のレジスタ部に格納されかつ前記第2のインデクシング命令の受信に応じて第2のインデクス値が前記第1および第2のレジスタ部に格納され、そして
    前記第2のインデクス値は前記第1のインデクス値よりビット長さが大きいことを特徴とするデータプロセッサを動作させる方法。
  6. 第2のデータプロセッサとオブジェクトコードが適合する、第1のデータプロセッサであって、
    インデクスレジスタであって、
    第1の命令によって変更される第1のレジスタ部、および
    第2の命令によって変更されるが前記第1の命令によっては変更されない第2のレジスタ部、
    を備えた前記インデクスレジスタ、そして
    前記インデクスレジスタに結合されたアドレス発生回路であって、該アドレス発生回路は前記第1のデータプロセッサがインデクス付きアドレシング動作を必要とする第3の命令を実行している場合に実効アドレスを発生するため前記第1のレジスタ部および前記第2のレジスタ部の組み合わせを使用するもの、
    を具備し、前記第1の命令は前記第1のデータプロセッサのオペコードマップに存在しかつ第1のオペコード値を有し、前記第1の命令は前記第2のデータプロセッサのオペコードマップ内に存在しかつ前記第1のオペコード値を有し、前記第2の命令は前記第1のデータプロセッサのオペコードマップ内に存在しかつ第2のオペコード値を有し、前記第2の命令は前記第2のデータプロセッサのオペコードマップにおいて規定されておらず、前記第3の命令は前記第1のデータプロセッサのオペコードマップ内に存在しかつ第3のオペコード値を有し、そして前記第3の命令は前記第2のデータプロセッサのオペコードマップ内に存在しかつ前記第3のオペコード値を有することを特徴とする前記第1のデータプロセッサ。
  7. 第2のデータプロセッサとオブジェクトコードが適合する第1のデータプロセッサであって、
    第1のバス、
    第2のバス、
    第3のバス、
    前記第1および第2のバスの内の少なくとも1つに結合された第1のレジスタ部を有し、かつ前記第1および第2のバスの内の少なくとも1つに結合された第2のレジスタ部を有するインデクスレジスタ、
    第1の命令、第2の命令および第3の命令を受ける制御回路であって、該制御回路は前記第1のデータプロセッサが前記第1の命令を実行している場合に前記第1のレジスタ部のみを変更することにより前記インデクスレジスタを変更し、前記制御回路は前記第1のデータプロセッサが前記第2の命令を実行している場合に前記第1および第2のレジスタ部の双方を変更することにより前記インデクスレジスタを変更し、そして前記制御回路は前記第1のデータプロセッサがインデクス付きアドレシングモードを使用して前記第3の命令を実行している場合にある実効アドレスを使用してインデクス付きアドレシング動作を行なうもの、および
    前記第1および第2のバスの内の少なくとも1つに結合された入力を有し、かつ前記第3のバスに結合された出力を有するアドレス発生回路であって、該アドレス発生回路は前記第1のデータプロセッサが前記インデクス付きアドレシングモードを使用して前記第3の命令を実行している場合に前記実効アドレスを提供するために前記第1のレジスタ部と前記第2のレジスタ部の組み合わせを前記第3のバスに供給するもの、
    を具備し、前記第1の命令は前記第1のデータプロセッサのオペコードマップにかつ前記第2のデータプロセッサのオペコードマップに存在し、前記第2の命令は前記第1のデータプロセッサのオペコードマップ内に存在するが前記第2のデータプロセッサのオペコードマップにおいては規定されておらず、かつ前記第3の命令は前記第1のデータプロセッサのオペコードマップ内に存在することを特徴とする前記第1のデータプロセッサ。
JP34623293A 1992-12-24 1993-12-22 拡張可能なレジスタを提供するデータ処理システムおよびその方法 Expired - Fee Related JP3616402B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/996,744 US5680632A (en) 1992-12-24 1992-12-24 Method for providing an extensible register in the first and second data processing systems
US996,744 1992-12-24

Publications (2)

Publication Number Publication Date
JPH06230962A JPH06230962A (ja) 1994-08-19
JP3616402B2 true JP3616402B2 (ja) 2005-02-02

Family

ID=25543253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34623293A Expired - Fee Related JP3616402B2 (ja) 1992-12-24 1993-12-22 拡張可能なレジスタを提供するデータ処理システムおよびその方法

Country Status (6)

Country Link
US (1) US5680632A (ja)
EP (1) EP0614137B1 (ja)
JP (1) JP3616402B2 (ja)
KR (1) KR100287600B1 (ja)
DE (1) DE69315192T2 (ja)
HK (1) HK1004611A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW267222B (en) * 1994-10-05 1996-01-01 Ibm Improved method and system of addressing
JP2885197B2 (ja) * 1996-08-16 1999-04-19 日本電気株式会社 演算処理装置及び演算処理方法
US5948076A (en) * 1997-12-31 1999-09-07 Adaptec, Inc. Method and system for changing peripheral component interconnect configuration registers
US6366998B1 (en) 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
WO2001025941A1 (en) 1999-10-06 2001-04-12 Cradle Technologies Multiprocessor computer systems with command fifo buffer at each target device
US6351806B1 (en) 1999-10-06 2002-02-26 Cradle Technologies Risc processor using register codes for expanded instruction set
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
JP2003162411A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd データプロセッサ
US7203820B2 (en) * 2002-06-28 2007-04-10 Sun Microsystems, Inc. Extending a register file utilizing stack and queue techniques
US20040049657A1 (en) * 2002-09-10 2004-03-11 Kling Ralph M. Extended register space apparatus and methods for processors
US8464030B2 (en) * 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US9507599B2 (en) 2013-07-22 2016-11-29 Globalfoundries Inc. Instruction set architecture with extensible register addressing
JP6314717B2 (ja) * 2014-07-18 2018-04-25 株式会社安川電機 ラダープログラム作成装置、モニタリング装置、コンピュータプログラム及び機器制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040035A (en) * 1974-10-30 1977-08-02 Motorola, Inc. Microprocessor having index register coupled to serial-coupled address bus sections and to data bus
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
US4240142A (en) * 1978-12-29 1980-12-16 Bell Telephone Laboratories, Incorporated Data processing apparatus providing autoincrementing of memory pointer registers
US4277827A (en) * 1979-01-02 1981-07-07 Texas Instruments Incorporated Microprocessor based system for the development and emulation of programmable calculator control read only memory software
US4300195A (en) * 1979-08-09 1981-11-10 Motorola, Inc. CMOS Microprocessor architecture
US4287566A (en) * 1979-09-28 1981-09-01 Culler-Harrison Inc. Array processor with parallel operations per instruction
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
US4679166A (en) * 1983-01-17 1987-07-07 Tandy Corporation Co-processor combination
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
US4722047A (en) * 1985-08-29 1988-01-26 Ncr Corporation Prefetch circuit and associated method for operation with a virtual command emulator
US4878197A (en) * 1987-08-17 1989-10-31 Control Data Corporation Data communication apparatus
US5125087A (en) * 1988-11-07 1992-06-23 Microsoft Corporation Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
US5297272A (en) * 1989-08-02 1994-03-22 Advanced Logic Research, Inc. Apparatus for automatically disabling and isolating a computer's original processor upon installation of a processor upgrade card
US5261077A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Configurable data path arrangement for resolving data type incompatibility
DE69227604T2 (de) * 1991-03-11 1999-06-24 Silicon Graphics Inc Mountain Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum

Also Published As

Publication number Publication date
EP0614137A2 (en) 1994-09-07
EP0614137A3 (en) 1995-04-26
JPH06230962A (ja) 1994-08-19
KR940015806A (ko) 1994-07-21
EP0614137B1 (en) 1997-11-12
DE69315192T2 (de) 1998-04-02
KR100287600B1 (ko) 2001-04-16
HK1004611A1 (en) 1998-11-27
DE69315192D1 (de) 1997-12-18
US5680632A (en) 1997-10-21

Similar Documents

Publication Publication Date Title
US6374353B1 (en) Information processing apparatus method of booting information processing apparatus at a high speed
JP3592230B2 (ja) データ処理装置
US4542453A (en) Program patching in microcomputer
US7203818B2 (en) Microcontroller instruction set
JP3616402B2 (ja) 拡張可能なレジスタを提供するデータ処理システムおよびその方法
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
JP3233163B2 (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US5666510A (en) Data processing device having an expandable address space
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JP4988082B2 (ja) マイクロプロセッサ及びデータ処理システム
JPH0736691A (ja) 拡張可能な中央処理装置
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
EP0338317B1 (en) Information processor operative both in direct mapping and in bank mapping and the method of switching the mapping schemes
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
JPH0764784A (ja) マイクロコンピュータ
JPH05257808A (ja) マイクロプロセッサ及びその動作変換方法
US6766436B2 (en) Data processor having an address translation circuit
JPH0651981A (ja) データ処理装置
JPH0922379A (ja) マイクロコンピュータ
JP3760093B2 (ja) マイクロコンピュータ
WO2000062162A2 (en) Method and system for updating user memory in emulator systems
JP2731618B2 (ja) エミュレータ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040914

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041105

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20050412

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

Free format text: PAYMENT UNTIL: 20071112

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

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

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees