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

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

Info

Publication number
JPH06230962A
JPH06230962A JP5346232A JP34623293A JPH06230962A JP H06230962 A JPH06230962 A JP H06230962A JP 5346232 A JP5346232 A JP 5346232A JP 34623293 A JP34623293 A JP 34623293A JP H06230962 A JPH06230962 A JP H06230962A
Authority
JP
Japan
Prior art keywords
register
instruction
bus
index register
data processing
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
JP5346232A
Other languages
English (en)
Other versions
JP3616402B2 (ja
Inventor
Charles F Studor
チャールズ・エフ・スタドア
James S Divine
ジェイムズ・エス・ディバイン
Michael I Catherwood
マイケル・アイ・キャサーウッド
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

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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length

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)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 最小の回路およびコストを付加するのみで、
古いCPUとオブジェクトコードの互換性を持つより強
力なCPUを設計可能とする。 【構成】 拡張可能なレジスタを提供するデータ処理シ
ステムと方法である。新しいCPU(12)は拡張可能
なインデクスレジスタ(304)を有する。新しいCP
U(12)は8ビットのインデクスレジスタ(302)
を有する古いCPUとオブジェクトコードの互換性があ
り、しかも新しいCPU(12)のインデクスレジスタ
(304)は新しい命令が使用される場合に効果的に1
6ビットに拡張できる。その結果、ユーザは古いCPU
に対して書かれかつ8ビットのインデクスレジスタの機
能を有するアセンブリコードのソフトウェアを使用する
か、あるいは新しいCPU(12)に対するもので16
ビットのインデクスレジスタの機能を有する新しいアセ
ンブリコードのソフトウェアを書くか選択できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的にはデータ処理シ
ステムに関し、かつより特定的には拡張可能なレジスタ
を提供するデータ処理システムおよびその方法に関す
る。
【0002】
【従来の技術】中央処理ユニット(CPU)は一般にマ
イクロコントローラ集積回路(MCU)の主な「頭脳
(brain)」である。CPUは別として、MCUは
通常、メモリ、タイマおよびバスインタフェースのよう
な、1つまたはそれ以上のオンボード・ペリフェラルま
たはセクションを含む。しかしながら、CPUは通常M
CUを制御するために使用されるソフトウェア命令を受
け入れかつ解釈する責務を有している。
【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を
使用することに切り替えできる。そして、顧客は古いC
PUによって彼らが使用しているソフトウェアはまた新
しいCPUによって動作することを保証される。したが
って、より新しい強力なCPUへとグレードアップする
ためにソフトウェアを修正しあるいは書き直す上でのコ
ストが顧客にとって必要ではなくなる。古いCPUとオ
ブジェクトコードが互換性を持つ新しいかつより強力な
CPUを設計することにより顧客がソフトウェアの変更
を行うことに関連するコストおよび危険をうける必要な
しにより強力なCPUへとグレードアップできるように
なる。
【0006】新しいCPUをより強力にする方法の1つ
はレジスタのビット数を増大することにより1つまたは
それ以上のレジスタを拡張することである。例えば、イ
ンデクスレジスタを8ビットから16ビットに増大す
る。インデクスレジスタはインデクス付き(index
ed)アドレシングモードにおいて使用される。インデ
クス付きアドレシングモードは一般にメモリのデータの
テーブルにアクセスするために使用される。インデクス
レジスタを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 reg
ister)」は長さが拡張できるレジスタを意味す
る。用語「サイズ(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、シリアルセクション回路1
6、ランダムアクセスメモリ(RAM)回路18、リー
ドオンリメモリ(ROM)回路20、他のメモリ回路2
2(例えば、電気的に消去可能なプログラム可能リード
オンリメモリ、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の他の実施例ではROM2
0、外部バスインタフェース26、またはDMA30を
持たないかもしれない。実際に、データ処理システム1
0の他の実施例では図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からデータを受信する。AL
U224は双方向的にフラグ回路226に結合されてい
る。フラグ回路226は双方向的に条件符号レジスタ2
28に結合されている。条件符号レジスタ228はバス
202から情報を受信しかつ情報をバス216に提供す
る。ALU224の出力はシフタ回路230に結合され
ている。シフタ回路230は情報をバス202に提供す
る。
【0032】プログラムカウンタ(ハイ)/インクリメ
ンタレジスタ200、インデクスレジスタ(ハイ)20
5、および一時アドレスレジスタ(ハイ)214は各々
情報をハイバス232に提供する。アドレスバス(ハ
イ)バッファ回路234はバス232から情報を受信し
かつ情報をプログラムカウンタ(ハイ)/インクリメン
タレジスタ200に提供する。アドレスバス(ハイ)バ
ッファ234はアドレスバス(ハイ)236に結合され
ている。アドレスバス(ハイ)236は情報バス32に
結合されている。
【0033】プログラムカウンタ(ロー)レジスタ20
6、一時アドレスレジスタ(ロー)218、スタックポ
インタレジスタ208は各々情報をローバス238に提
供する。アドレスバス(ロー)バッファ回路240はロ
ーバス238から情報を受信する。アドレスバス(ロ
ー)バッファ240はアドレスバス(ロー)242に結
合されている。アドレスバス(ロー)242は情報バス
32に結合されている。
【0034】ローバス238は情報をデータバス244
から受信する。データバスインタフェース220は情報
をデータバス240から受信しかつ該データバス244
に情報を提供する。データバス244は情報バス32に
結合されている。本発明の一つの実施例においては、ア
ドレスバス(ハイ)236、アドレスバス(ロー)24
2、およびデータバス244は実際には情報バス32の
一部である。
【0035】図4は、ブロック図形式で、8ビットの従
来技術のインデクスレジスタ302を示す。
【0036】図5は、ブロック図形式で、16ビットの
インデクスレジスタ304を示し、このインデクスレジ
スタ304はインデクスレジスタ(ハイ)回路205お
よびインデクスレジスタ(ロー)回路212の連結によ
り形成されている。インデクスレジスタ(ハイ)回路2
05およびインデクスレジスタ(ロー)回路212は各
々16ビットのインデクスレジスタ304の8ビットの
レジスタ部である。インデクスレジスタ(ハイ)回路2
05およびインデクスレジスタ(ロー)回路212の双
方は図3の実行ユニット56に含まれている。
【0037】図6は、テーブル形式で、古いおよび新し
い命令のあるグループが新しいCPU12のインデクス
レジスタ部205および212に対して有する影響を示
している。
【0038】図7は、テーブル形式で、新しいCPU1
2においてインデクスレジスタ(ハイ)205を修正可
能な新しい命令の説明を示している。
【0039】[好ましい実施例の動作]本発明は古いC
PUとオブジェクトコードが互換性がありかつさらに可
能な限り少しの回路およびコストを加えるのみである新
しいより強力な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およびインデクスレジスタ(ロー)2
12はインデクス付きアドレシングモードにおいて連結
されたインデクスレジスタ304として使用される。
【0042】「新しい命令」の見出しの下には、新しい
命令が新しいCPU12におけるインデクスレジスタ部
205および212に対して持つ影響に関する2つの記
述がある。インデクスレジスタ(ハイ)205およびイ
ンデクスレジスタ(ロー)212の双方は新しい命令に
よって修正できる。また、両方のインデクスレジスタ
(ハイ)205およびインデクスレジスタ(ロー)21
2はインデクス付きアドレシングモードにおいて連結さ
れたインデクスレジスタ304として使用される。
【0043】新しいCPU12は現存のインデクスレジ
スタに上位バイト、すねわちインデクスレジスタ(ハ
イ)205、を加え、しかも依然としてオブジェクトコ
ードの互換性を維持している。古いCPUは新しいCP
U12におけるインデクスレジスタ(ロー)回路212
(図3を参照)に直接対応するインデクスレジスタ30
2(図4を参照)を有していた。しかしながら、古いC
PUとは異なり、新しいCPU12は16ビットのイン
デクスレジスタ304(図5を参照)を効果的に形成す
るためにインデクスレジスタ(ロー)回路212と連結
できる付加的なインデクスレジスタ(ハイ)回路205
(図3を参照)を有している。
【0044】新しいCPU12は古いCPUからの全て
の命令を使用し、ならびにインデクスレジスタ304の
新しい上位バイト(図7を参照)を修正できるほんの少
しの新しい命令のみを追加している。古い命令の全ては
古いCPUにおけるものと全く同じ16進のオペコード
を有しており、新しい命令は古いCPUにおいて規定さ
れなかったオペコードを有していることに注意を有す
る。
【0045】本発明の1つの実施例においては、古いC
PUはアメリカ合衆国、テキサス州、オースチンのモト
ローラ・インコーポレイテッドから入手可能な、MC6
8HC05ファミリのマイクロコントローラのメンバで
ある。古い命令の完全なリストはモトローラ・インコー
ポレイテッドによって発行されている種々のMC68H
C05ファミリのユーザマニュアルで得られる。一例と
して、インデクスレジスタ302(図4を参照)を修正
可能であった古い命令のいくつかは次の通りである。す
なわち、インデクスレジスタ302の内容から1を減算
する“DECX”命令、インデクスレジスタ302の内
容に1を加算する“INCX”命令、イミディエイト値
または特定されたメモリロケーションの内容をインデク
スレジスタ302にロードする“LDX”命令、インデ
クスレジスタ302の全てのビットを1つの場所だけ左
にシフトしかつビットゼロにゼロをシフトする“LSL
X”命令。インデクスレジスタ302の内容をその2の
補数値によって置換える“NEGX”命令、そしてイン
デクスレジスタにアキュムレータの内容をロードする
“TAX”命令である。
【0046】古いおよび新しい命令によってインデクス
レジスタ部205および212に図6に示すようにして
影響を与えることができるようにすることによって生成
される結果を理解することが重要である。新しいCPU
12においては、古い命令のいくつかは(ちょうど古い
CPUと同様に)インデクスレジスタの8ビットのみを
使用するが、他の古い命令は(古いCPUとは異なり)
インデクスレジスタの16ビット全てを使用するよう修
正されている。古い命令のいくつかはインデクスレジス
タの入力ビット全てを使用するが、オブジェクトコード
の互換性は依然として維持され、それについては次に説
明する。
【0047】インデクスレジスタの新しい上位バイト、
すなわちインデクスレジスタ(ハイ)205、はリセッ
トの場合に値$00に初期化され、かつ図7に示される
少しの新しい命令のみがインデクスレジスタの新しい上
位バイト(図5を参照)を変更することができる。イン
デクスレジスタを変更する古い命令のいずれも新しい上
位バイトに対し影響を与えない。したがって、古いCP
Uによって実行するように書かれたいずれのソフトウェ
アもインデクスレジスタの新しい上位バイトに対しなん
らの影響も持たない。したがって、古いCPUのために
(かつ、したがって古い命令のみを使用して)書かれた
ソフトウェアが新しいCPU12によって実行される場
合、インデクスレジスタの新しい上位バイトは決して修
正または変更されず、かつ常にリセット値$00にとど
まることになる。
【0048】しかしながら、古いものであれあるいは新
しいものであれ、インデクスレジスタを変更しない全て
のインデクス付きアドレシングモード命令は、新しい上
位バイトを含み、インデクスレジスタ304の16ビッ
ト全てを使用することに注目することが重要である。し
たがって、古いCPUにおいて8ビットのインデクスレ
ジスタのみを使用した古いインデクス付きアドレシング
モード命令は今や新しいCPU12におけるインデクス
レジスタ304の16ビット全てを使用する。
【0049】しかしながら、オブジェクトコードの互換
性は維持され、それは古い命令のみが使用されればイン
デクスレジスタの新しい上位バイトは常に$00を含む
からである。8ビットの値$xyおよび16ビットの値
$00xyはインデクスレジスタを修正しないインデク
ス付きアドレシングモード命令において実行アドレスを
計算するために使用された時同じ結果を生じる。インデ
クスレジスタを修正しなかったかつ値$xyを含む8ビ
ットのインデクスレジスタのみを使用した古いCPUに
おける全てのインデクス付きアドレシング操作は値$0
0xyを含む16ビットのインデクスレジスタ全体を使
用する新しいCPU12における対応するインデクス付
きアドレシング操作に対して同じ結果を生成する。した
がって、いくつかの古い命令が8ビットのレジスタでは
なく16ビットのレジスタを使用してもオブジェクトコ
ードの互換性が維持される。
【0050】しかしながら、もしある顧客が新しい命令
を使用して新しいソフトウェアを書くことを希望すれ
ば、その顧客は16ビットのインデクスレジスタ全体お
よびインデクス付きアドレシングモードにおいてCPU
によってアクセスできるメモリのテーブルのサイズの対
応する増大の利益を受けることができる。該顧客はイン
デクスレジスタ304の上位バイトにもともと格納され
ていた$00の値を修正するために図7に示される新し
い命令を使用することができる。
【0051】本発明の別の実施例では、前記上位バイト
が$00のリセット値を有することを必要とせず、その
代わりもしソフトウェアがそれを要求すれば前記上位バ
イトに$00の値をユーザが書くことを要求することが
できる。例えば、インデクスレジスタ304を決して使
用しないソフトウェアはインデクスレジスタ304に$
00の値を書く必要がないことになる。
【0052】図7は、テーブル形式で、新しいCPU1
2におけるインデクスレジスタ(ハイ)205を修正可
能な新しい命令の説明を示す。本発明の別の実施例では
さらに多くの、さらに少ない、あるいは異なる新しい命
令を使用できる。本発明はいずれの新しい命令のタイプ
または機能に付いてなんらの制約または制限をも与えな
い。しかしながら、ユーザがインデクスレジスタの新し
い上位バイトに格納された値を修正するために使用でき
る少なくとも1つの命令を持つことが望ましい。
【0053】新しいCPU12におけるインデクスレジ
スタの上位バイトを修正する2つのタイプの新しい命令
があることに注意を有する。第1のタイプの新しい命令
は前記上位バイトのみを修正可能でありかつ下位バイト
にはなんらの影響も持たない(例えば、前記PULH命
令)。第2のタイプの新しい命令は上位バイトおよび下
位バイトの双方を変更可能である(例えば、AIX,C
BEQ,LDHX,MOVおよびTSX命令)。
【0054】本発明は新しいCPU12が古い命令をど
のように実行するかに関して2つの制約のみを与える。
すなわち、(1)古いCPUにおいてインデクスレジス
タ302を修正した古い命令に対しては、インデクスレ
ジスタ(ロー)205は同様に振舞いかつ最後にはイン
デクスレジスタ302と同じ値を格納しオブジェクトコ
ードの互換性を保持し、かつ(2)全てのインデクス付
きアドレシングモード命令は、新しいものも古いものも
同様に、全てのインデクス付きアドレシングモード命令
を二重化する必要性を除去するためにインデクスレジス
タ304の16ビット全てを使用する。
【0055】本発明の回路構成の動作を説明する。図1
を参照すると、データ処理システム10はMCUファミ
リ内の1つの可能なMCUを示している。同じファミリ
内のMCUは一般に異なるオンボード・ペリフェラルを
持つから、データ処理システム10の他の実施例はRO
M20を持たなくても良く、外部バスインタフェース2
6を持たなくとも良く、かつDMA30を持たなくとも
良い。実際に、データ処理システムの他の実施例は図1
の示されたものよりも少ない、多い、または異なるペリ
フェラルを持つことができる。
【0056】図1に示される本発明の実施例の動作の間
に、システム統合セクション14はデータ処理システム
10のための種々の機能を行なうために使用される。一
般に、システム統合セクション14はイネーブルおよび
ディスエーブル動作の双方に対し、タイミング制御を提
供するために、そしてデータ処理システム10の例外処
理要求を達成するために複数の制御情報を提供する。シ
ステム統合セクション14はバス34を介してCPU1
2と、前記複数の集積回路ピン38を介して外部ユーザ
と、そして情報バス32を介してデータ処理システム1
0の残りの複数の構成要素の各々と直接インタフェース
することができる。
【0057】データ処理システム10においては、DM
A30はデータ処理システム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】本発明のいくつかの実施例ではデコーダ5
9を含むことができる。デコーダ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をカスタム化するよりはR
OMをカスタム化するほうがより簡単でありかつ高速で
ある。同じ制御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つの特定のロケーションをア
クセスするためにインデクスレジスタ内の前記値に加算
される。あるいは、前記オフセット値はデータ値のテー
ブルの始めに対するポインタとして使用でき、かつイン
デクスレジスタは該テーブルへの変位(displac
ement)を含むことができる。インデクスレジスタ
が使用される種々の他の方法がある。インデクス付きア
ドレシングモードは当業者によく知られている。
【0074】しばしば、前記インデクス付きアドレシン
グモード内で種々のタイプのインデクス付きアドレスが
存在する。説明の都合上、これらの種々のタイプのイン
デクス付きアドレシング(indexed addre
ssing)はインデクス付きアドレシングモード内で
「サブモード(sub−modes)」と称される。一
例として、MC68HC05型マイクロコントローラの
インデクス付きアドレシングモード内の種々の「サブモ
ード」に付き説明する。MC68HC05型マイクロコ
ントローラはインデクス付きアドレシングモード内で3
つの「サブモード」を有する。すなわち、(1)オフセ
ットなし、(2)8ビットのオフセット、および(3)
16ビットのオフセット、である。MC68HC05型
マイクロコントローラのインデクス付きアドレシングモ
ード内のこれらの3つのサブモードに付き説明する。
【0075】前記第1の「オフセットなし(no of
fset)」サブモードにおいては、インデクスレジス
タの値は直接命令に対する実効アドレスとして使用され
る。したがって、この第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つの実施例においては、新しいCPU1
2は前記MC68HC05型マイクロコントローラと同
様にインデクス付きアドレシングモード内で同じ3つの
サブモードを有しており、かつ新しいCPU12によっ
て実行される古い命令は前記MC68HC05型マイク
ロコントローラからの全ての命令を有する。本発明の別
の実施例ではインデクス付きアドレシングモード内でよ
り多くの、より少ない、または異なるサブモードを使用
することができる。さらに、本発明の別の実施例では異
なる様式でインデクス付きアドレシングモードを規定す
ることができる。実際に、本発明は命令に対する実効ア
ドレスの計算の一部としてレジスタの値を使用する任意
のアドレシングモードに対して使用できる。
【0079】インデクス付きアドレシングモードを使用
する命令の間における実行ユニット56の動作を説明す
る(図3を参照)。実効アドレスを発生するために使用
されるステップのみを詳細に説明する。プログラムカウ
ンタ(ハイ)/インクリメンタレジスタ200およびプ
ログラムカウンタ(ロー)レジスタ206の増分のよう
な、他のステップもインデクス付きアドレシングモード
を使用する命令の間に実行される。しかしながら、これ
ら他のステップは詳細には説明しない。
【0080】前記第1の「オフセットなし」サブモード
においては、インデクスレジスタの値が直接命令のため
の実効アドレスとして使用される。該命令が古い命令で
あるかあるいは新しい命令であるかにかかわりなく、イ
ンデクスレジスタ304の両方のバイトまたは部分が使
用され、すなわちインデクスレジスタ(ハイ)205お
よびインデクスレジスタ(ロー)212が使用される。
【0081】インデクスレジスタ(ロー)212は情報
バス32に対して直接のアクセスを持たないから、前記
第1のステップはインデクスレジスタ(ロー)212に
格納された値を一時アドレスレジスタ(ロー)218に
転送することである。バス202は一時アドレスレジス
タ(ロー)218への唯一の入力パスであるから、イン
デクスレジスタ(ロー)212に格納された値をALU
224を通って導くことが必要である。インデクスレジ
スタ(ロー)212に格納された値はバス204を渡っ
てALU224の入力に転送される。バス216に含ま
れる各信号は論理レベル“1”にプリチャージされる。
ALU224はバス216からの全ての2進“1”を入
力しかつ次にその論理レベルを全て2進“0”に反転す
る。したがって、ALU224への1つの入力はインデ
クスレジスタ(ロー)212からの値であり、かつAL
U224への他の入力はゼロである。ALU224はし
たがってゼロをインデクスレジスタ(ロー)212から
の値に加算する。次にALU224はその加算の結果を
バス202を通って一時アドレスレジスタ(ロー)21
8に転送する。
【0082】次に一時アドレスレジスタ(ロー)218
に格納された値はローバス238を介してアドレスバス
(ロー)バッファ240に転送される。同時に、インデ
クスレジスタ(ハイ)205に格納された値はハイバス
232を介してアドレスバス(ハイ)バッファ234に
転送される。したがって、実効アドレスは16ビットの
アドレスであり、これはインデクスレジスタ(ハイ)2
05からの値とインデクスレジスタ(ロー)212から
の値との連結により形成される。16ビットの実効アド
レスは情報バス32を介して新しいCPU12から転送
される。
【0083】前記第2の「8ビットオフセット」サブモ
ードにおいては、8ビットのオフセット値が命令の一部
として含まれている。この8ビットのオフセット値は命
令のための実効アドレスを発生するためにインデクスレ
ジスタ304にある値に加算される。その命令が古い命
令であるかあるいは新しい命令であるかにかかわりな
く、インデクスレジスタ304の両方のバイトまたは部
分が使用され、すなわちインデクスレジスタ(ハイ)2
05およびインデスクレジスタ(ロー)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の両方のバイトまたは部
分が使用され、すなわちインデクスレジスタ(ハイ)2
05およびインデクスレジスタ(ロー)212の双方が
使用される。
【0088】命令の一部として含まれていた、16ビッ
トのオフセットの上位バイトは情報バス32からデータ
バス244に、次にデータバスインタフェース220
に、次にバス216に、そして次にALU224に転送
される。バス214に含まれる各信号は論理レベル1に
プリチャージされる。ALU224はバス204からの
全ての2進1を入力しかつ次にその論理レベルを全て2
進ゼロに反転する。したがって、ALU224への1つ
の入力は16ビットのオフセットの上位バイトであり、
そしてALU224への他の入力はゼロである。ALU
224は次に16ビットのオフセットの上位バイトをゼ
ロに加算し、かつその結果をバス202を介して一時ア
ドレスレジスタ(ハイ)214に転送する。
【0089】次に、命令の一部として含まれていた、1
6ビットオフセットの下位バイトは情報バス32からデ
ータバス244に、次にデータバスインタフェース22
0に、次にバス216に、そして次にALU224の入
力に転送される。その間に、インデクスレジスタ(ロ
ー)212に格納された値はバス204によってALU
224の他の入力に転送される。ALU224は前記1
6ビットのオフセットの下位バイトおよびインデクスレ
ジスタ(ロー)212からの値を一緒に加算し、かつ次
のその結果をバス202を介して一時アドレスレジスタ
(ロー)218に転送する。内部キャリー信号(図示せ
ず)がALU224によって発生される。内部キャリー
信号の論理状態は前記加算によってキャリーアウトを生
じたか否かによって決定される。内部キャリー信号の論
理状態は新しいCPU12によって内部的に記憶され
る。
【0090】次に、内部キャリー(2進0または2進
1)および16ビットのオフセットの上位バイトがイン
デクスレジスタ(ハイ)205に格納された値に加算さ
れる。インデクスレジスタ(ハイ)205に格納された
値はバス204を介してALU224の入力に転送され
る。同様に、一時アドレスレジスタ(ハイ)214に格
納された、16ビットのオフセットの上位バイトはバス
216によってALU224の他の入力に転送される。
したがって、ALU224への1つの入力はインデクス
レジスタ(ハイ)205からの値であり、かつALU2
24への他の入力は16ビットのオフセットの上位バイ
トである。ALU224は次に前記内部キャリー、イン
デクスレジスタ(ハイ)205からの値、および16ビ
ットのオフセットの上位バイトを一緒に加算する。AL
U224は次にその結果をバス202を介して一時アド
レスレジスタ(ハイ)214に転送する。
【0091】次に、一時アドレスレジスタ(ハイ)21
4の内容がハイバス232を介してアドレスバス(ハ
イ)バッファ234に転送される。同時に、一時アドレ
スレジスタ(ロー)218の内容がローバス238を介
してアドレスバス(ロー)バッファ240に転送され
る。したがって、実効アドレスは16ビットのアドレス
でありこれは16ビットのオフセットをインデクスレジ
スタ(ハイ)205に記憶された値とインデクスレジス
タ(ロー)212に記憶された値との連結に対して加算
することによって形成される。16ビットの実効アドレ
スは情報バス32をを介して新しいCPU12から転送
される。
【0092】[概要およびいくつかの別の実施例]要約
すると、本発明は新しいCPU12が拡張可能なインデ
クスレジスタ304を備えて設計できるようにする。新
しいCPU12は8ビットのインデクスレジスタを有す
る古いCPUとオブジェクトコードの互換性があり、し
かも新しいCPU12のインデクスレジスタは新しい命
令が使用される場合に効果的に16ビットに拡張でき
る。その結果、ユーザは古いCPU対して書かれかつ8
ビットのインデクスレジスタの機能を有するアセンブリ
コードのソフトウェアを使用するか、または新しいCP
U12に対しかつ16ビットのインデクスレジスタの機
能を有する新しいアセンブリコードのソフトウェアを書
くかを選択することができるようになる。本発明が特定
の実施例に関して図示されかつ説明されたが、当業者に
はさらなる修正および改善を成すことができる。例え
ば、本発明の別の実施例においては、データ処理システ
ム10、新しいCPU12、および実行ユニット56に
対する別のアーキテクチャを使用できる。図1、図2お
よび図3に示されたアーキテクチャは使用できる可能な
アーキテクチャに過ぎない。例えば、実行ユニット56
は任意の数のまたは任意のタイプのレジスタを持つこと
ができる。同様に、本発明は任意のサイズのレジスタに
拡張可能とするために使用できる。例えば、16ビット
のレジスタは別の新しいCPU12においては32ビッ
トに拡張できる。また、実行ユニット56は異なるバス
サイズまたは異なるバスのルーティングを持つことがで
きる。本発明はインデクスレジスタ以外のタイプのレジ
スタと共に使用することもできる。さらに、本発明は、
単に中央処理ユニット(CPU)におけるのみならず、
任意のタイプのデジタルデータ処理装置においてレジス
タを拡張可能にするために使用できる。
【0093】本発明とは独立に、データ処理システム1
0の性能は独立的にオブジェクトコードの互換性に影響
を与える種々の技術によって増大することもできる。例
えば、本発明を使用することに加えて、いくつかのデー
タ処理システム10はさらに新しいCPU12内で1つ
またはそれ以上の命令を実行するのに必要なサイクルの
数を低減することによりさらに性能を高めることができ
る。もし新しいCPU12が1つまたはそれ以上の命令
を実行するのに必要なサイクル数を変えれば、古いCP
Uに対するタイミングに敏感なアセンブリ言語のソフト
ウェアも修正する必要があるかもしれない。したがっ
て、本発明は古いCPUおよび新しいCPU12の間で
オブジェクトコードの互換性を維持するが、新しいCP
U12に対する他の性能の改善は本発明と無関係に、い
くつかの実施例においてオブジェクトコードの互換性に
影響を与えるようにすることができる。
【0094】したがって、この発明は説明された特定の
形式に限定されるものではなくかつ添付の特許請求の範
囲においてこの発明の精神および範囲から離れることの
ない全ての修正をカバーすることを意図していることが
理解されるべきである。
【0095】
【発明の効果】以上のように、本発明によれば、最小限
の回路およびコストを加えるのみで古いCPUとのオブ
ジェクトコードの互換性を保った状態でより強力なCP
Uを設計することが可能になる。
【図面の簡単な説明】
【図1】本発明の1実施例に係わるデータ処理システム
10を示すブロック図である。
【図2】本発明の1実施例による図1のシステムの中央
処理ユニット(CPU)12を示すブロック図である。
【図3】本発明の1実施例に係わるシステムの図2に示
される実行ユニット56の一部を示すブロック図であ
る。
【図4】8ビットの従来技術のインデクスレジスタ30
2の構成を示すブロック図である。
【図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 制御プログラマブルロジックアレイ(制御PL
A) 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 データバス
フロントページの続き (72)発明者 マイケル・アイ・キャサーウッド アメリカ合衆国テキサス州78737、オース チン、オーク・ブランチ・ドライブ 11605

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システム(10)において拡
    張可能なレジスタを提供する方法であって、 第1のレジスタ部(212)および第2のレジスタ部
    (205)を有するレジスタ(304)を提供する段
    階、 従来技術のデータ処理システムとオブジェクトコードの
    互換性を有する第1の命令を受信する段階、 前記第1の命令を受信したことに応じて、前記第1のレ
    ジスタ部(212)を変更しかつ前記第2のレジスタ部
    (205)を変更しない段階、 従来技術のデータ処理システムにおいては規定されてい
    ないオペコードを有する第2の命令を受信する段階、 前記第2の命令の受信に応じて、前記第2のレジスタ部
    (205)を変更する段階、 従来技術のデータ処理システムとオブジェクトコードの
    互換性を有する第3の命令を受信する段階、そして前記
    第3の命令の受信に応じて、前記第1および第2のレジ
    スタ部(212,205)の双方を使用して操作を行な
    う段階、 を具備することを特徴とするデータ処理システム(1
    0)において拡張可能なレジスタを提供する方法。
  2. 【請求項2】 拡張可能なレジスタを提供するデータ処
    理システム(10)であって、 インデクスレジスタ(304)であって、 第1のインデクスレジスタ命令によって変更可能な第1
    のレジスタ部(212)、そして第2のインデクスレジ
    スタ命令によって変更可能であるが、前記第1のインデ
    クスレジスタ命令によって変更されない第2のレジスタ
    部(205)、を具備するインデクスレジスタ(30
    4)、そして前記インデクスレジスタ(304)に結合
    され、データ処理システム(10)がインデクス付きア
    ドレシング動作を行なう場合に実効アドレスを発生する
    ために前記第1のレジスタ部(212)および前記第2
    のレジスタ部(205)の連結を使用するアドレス発生
    回路(204,216,202,224,214,21
    8,232,238,234,240)、 を具備することを特徴とする拡張可能なレジスタを提供
    するデータ処理システム。
  3. 【請求項3】 データ処理システム(10)において拡
    張可能なレジスタを提供する方法であって、 第1のレジスタ部(212)および第2のレジスタ部
    (205)を有するレジスタ(304)を提供する段
    階、 レジスタ(304)の内容を変えるための第1の命令を
    受信する段階、 もし前記第1の命令が従来技術のデータ処理システムと
    オブジェクトコードの互換性を有していれば、前記第2
    のレジスタ部(205)を変更することなく前記第1の
    レジスタ部(212)を変更する段階を実行する段階、 もし前記第1の命令が従来技術のデータ処理システムと
    オブジェクトコードの互換性を持っていなければ、前記
    第1および第2のレジスタ部(212,205)の双方
    を変更する段階を実行する段階、 従来技術のデータ処理システムとオブジェクトコードの
    互換性を有する第2の命令を受信する段階、そして前記
    第2の命令を実行する場合に前記第1および第2のレジ
    スタ部(212,205)の双方を使用する段階、 を具備することを特徴とするデータ処理システム(1
    0)において拡張可能なレジスタを提供する方法。
  4. 【請求項4】 拡張可能なレジスタを提供するデータ処
    理システム(10)であって、 情報バス(32)、 前記情報バス(32)に結合された実行ユニット(5
    6)であって、 第1の入力、第2の入力、および出力を有する演算論理
    ユニット(224)、 前記演算論理ユニット(224)の第1の入力に結合さ
    れた第1のバス(204)、 前記演算論理ユニット(224)の第2の入力に結合さ
    れた第2のバス(216)、 前記演算論理ユニット(224)の出力に結合された第
    3のバス(202)、 前記第1のバス(204)および前記第3のバス(20
    2)に結合された第1のレジスタ部(212)を有し、
    かつ前記第1のバス(204)および前記第3のバス
    (202)に結合された第2のレジスタ部(205)を
    有するインデクスレジスタ(304)、そして前記第3
    のバス(202)におよび前記情報バス(32)に結合
    され、前記データ処理システム(10)がインデクス付
    きアドレシング操作を実行している場合に実効アドレス
    を提供するために前記第1のレジスタ部(212)およ
    び前記第2のレジスタ部(205)の連結を前記情報バ
    ス(32)に供給するアドレスバッファ論理(214,
    218,234,240)、を具備する前記実行ユニッ
    ト(56)、そして前記実行ユニット(56)に結合さ
    れた制御回路(58,54)であって、該制御回路(5
    8,54)は前記第1のレジスタ部(212)のみを修
    正することにより前記インデクスレジスタ(304)を
    修正可能な第1の複数の古い命令を受信し、前記制御回
    路(58,54)は前記第1および第2のレジスタ部
    (212,205)の双方を修正することにより前記イ
    ンデクスレジスタ(304)を修正可能な第2の複数の
    新しい命令を受信し、そして前記制御回路(58,5
    4)はインデクス付きアドレシング操作を行なう第3の
    複数の古いおよび新しい命令の双方を受信するもの、 を具備することを特徴とする拡張可能なレジスタを提供
    するデータ処理システム(10)。
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 true JPH06230962A (ja) 1994-08-19
JP3616402B2 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
US6647450B1 (en) 1999-10-06 2003-11-11 Cradle Technologies, Inc. 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
US6988154B2 (en) 2000-03-10 2006-01-17 Arc International 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
EP0503514B1 (en) * 1991-03-11 1998-11-18 Silicon Graphics, Inc. Backward-compatible computer architecture with extended word size and address space

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0169565B1 (en) Microprocessor compatible with any software represented by different types of instruction formats
US4674089A (en) In-circuit emulator
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US4342078A (en) Instruction register sequence decoder for microprogrammed data processor and method
EP0315275B1 (en) Flexible asic microcomputer
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
US7203818B2 (en) Microcontroller instruction set
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
US4325121A (en) Two-level control store for microprogrammed data processor
JPS6236256B2 (ja)
US4312034A (en) ALU and Condition code control unit for data processor
JPH06230962A (ja) 拡張可能なレジスタを提供するデータ処理システムおよびその方法
US5274770A (en) Flexible register-based I/O microcontroller with single cycle instruction execution
JPH04233640A (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
JPH07117897B2 (ja) データ処理システムのプリフェッチ回路
KR100496856B1 (ko) 어드레스 확장이 가능한 데이터 처리 시스템
JP2001202243A (ja) データ処理装置
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
HK1004611B (en) Data processing system providing an extensible register and method thereof
EP0338317B1 (en) Information processor operative both in direct mapping and in bank mapping and the method of switching the mapping schemes
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
EP0729604B1 (en) Register status protection during read-modify-write operation
JPH02284258A (ja) 機能ブロックプロセサ及びビットプロセサを具備する書込み可能論理制御器
US6230238B1 (en) Method and apparatus for accessing misaligned data from memory in an efficient manner

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