JP2003162411A - データプロセッサ - Google Patents

データプロセッサ

Info

Publication number
JP2003162411A
JP2003162411A JP2001362871A JP2001362871A JP2003162411A JP 2003162411 A JP2003162411 A JP 2003162411A JP 2001362871 A JP2001362871 A JP 2001362871A JP 2001362871 A JP2001362871 A JP 2001362871A JP 2003162411 A JP2003162411 A JP 2003162411A
Authority
JP
Japan
Prior art keywords
mode
instruction
address
cpu
register
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.)
Withdrawn
Application number
JP2001362871A
Other languages
English (en)
Inventor
Hiromichi Ishikura
裕道 石倉
Hajime Yasuda
元 安田
Naomiki Mitsuishi
直幹 三ッ石
Kenichi Ishibashi
謙一 石橋
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.)
Hitachi Ltd
Northern Japan Semiconductor Technologies Inc
Original Assignee
Hitachi Ltd
Northern Japan Semiconductor Technologies 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 Hitachi Ltd, Northern Japan Semiconductor Technologies Inc filed Critical Hitachi Ltd
Priority to JP2001362871A priority Critical patent/JP2003162411A/ja
Priority to TW091134100A priority patent/TW200300903A/zh
Priority to US10/302,846 priority patent/US20030101333A1/en
Publication of JP2003162411A publication Critical patent/JP2003162411A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing

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)

Abstract

(57)【要約】 【課題】 アドレス空間に対するデータ容量の大小に対
して、CPUの使い勝手を劣化させることなく、コード
効率及びデータ処理能率の改善を図る。 【解決手段】 動作モードの動的な切換えに応じて同一
命令に対する解釈を変更可能な命令制御部(CONT)
を採用してデータプロセッサを構成するから、アドレス
空間に対するデータ領域の限定によるコード効率の向上
と命令フェッチの高速化を優先させる動作モード選択状
態と、使用可能なデータ領域の制限を極力無くすという
動作モード選択状態とを、動的に切換えることが可能に
なる。これにより、CPUの使い勝手を劣化させるこな
く、短縮型命令等による利点を活かす事ができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPU(中央処理
装置)による命令実行処理の多様化、命令実行の高速化
に答える為のデータプロセッサ技術に関し、例えば、デ
ータエリアのサイズが相違する複数の動作モードを有す
るマイクロコンピュータに適用して有効な技術に関す
る。
【0002】
【従来の技術】組込み用マイクロコンピュータが選択さ
れる一つの基準としてCPUのコード効率が挙げられ
る。システムの価格追求のため、限られた容量のプログ
ラムメモリ(ROM)に所定のプログラムを格納する必
要があり、CPUのコード効率が良いほど、プログラム
容量を低減できるからである。近年では、システムプロ
グラムの開発効率向上のため、C言語などの高級言語が
広く使用されているが、一般的にアセンブラ言語で直接
コーディングを行った場合と比較し、コード効率が劣る
傾向がある。このため、CPUのアーキテクチャ、及び
コンパイラを含めた、コード効率の向上がより一層必要
とされる、ということが本発明者によって認識された。
【0003】CPUは、一般的に、その使い勝手を考慮
して、種々のアドレシングモードを備えている。そのア
ドレシングモードには、本質的にCPUのコード効率向
上に有効なものが含まれている。絶対アドレス指定の短
縮形、レジスタ間接アドレシングなどがそれにあたる。
【0004】絶対アドレス指定の短縮形は、命令コード
に含まれる絶対アドレスで、メモリ上のオペランドを指
定する。アクセスエリアを限定し、CPUアドレスの下
位アドレスのみを指定し、命令長を短縮する。命令コー
ドで指定されない上位アドレスは、CPU内部にて、所
定の値に一義に固定される。
【0005】レジスタ間接アドレシングの利用は、命令
コードのレジスタフィールドで指定されるアドレスレジ
スタの内容をアドレスとしてメモリ上のオペランドを指
定する。命令コードには、レジスタ番号のみが含まれる
ため、絶対アドレスを指定するのに比較して、命令長が
短くて済む。
【0006】これらのアドレシングモードは、コード効
率向上という意味において、プログラム上、高い頻度で
出現する命令に対して使用すると、その効果は向上す
る。これは、コード効率の向上に資するだけではなく、
CPUの命令フェッチサイクル数を低減し、CPUの実
行速度を向上させる。この意味においては、最も頻繁に
実行される命令に対して上記短縮形アドレシングモード
を利用するのがよい。
【0007】また、マイクロコンピュータに必要なアド
レス空間は制御対象に応じて相異するのが通例であるか
ら、これを考慮して、マイクロコンピュータにはアドレ
ス空間の大きさ等の異なる数種類の動作モードが予め用
意されていることが多い。動作モードの切換えは、リセ
ット動作を伴い、リセット動作が解除されると、CPU
は設定された動作モードに応じたアドレス空間に対して
アクセス動作可能にされる。例えば、小さなアドレス空
間を利用する動作モードでは実効アドレスの演算に相対
的にレジスタ長の小さな汎用レジスタを利用し、大きな
アドレス空間を利用する動作モードでは実効アドレスの
演算に相対的にレジスタ長の大きな汎用レジスタを利用
する。
【0008】また、CPUは、アドレス空間上に離散的
に配置された、複数の小規模のプログラムブロック(サ
ブルーチン)を一連のプログラムフローの中で使用する
ため、動的にプログラムカウンタ(PC)の値を変化さ
せるフロー制御命令を持つ。例えば、分岐命令実行時
に、次の命令のアドレス(PC)をスタックエリアに退
避する。分岐先のサブルーチンの最後に、RTS命令を
実行することで、分岐命令実行時に退避した値をPCに
再設定することで、もとのルーチンの続き(前記分岐命
令の次の実行アドレス)に復帰することができる。退避
されるべきプログラムカウンタの情報は、そのときCP
Uが利用するプログラム空間の容量に応ずるビット数と
なる。
【0009】特開平3−99321号公報にはレジスタ
間接アドレシングにおける間接指定の意味を選択可能に
する情報処理技術が記載される。要するに、命令のオペ
ランド指定フィールドで指定された値をレジスタ番号と
して処理することと、命令のオペランド指定フィールド
で指定されたレジスタの値をレジスタ番号として処理す
ることを選択可能にする。
【0010】特開平3−2711829号公報には命令
による処理データ長の判定技術が記載される。すなわ
ち、データ長に対しては、命令のプログラム毎にマイク
ロプログラムでデータ長を直接指定し、或は、命令コー
ドで間接的に指定する方法があるが、後者を選択してい
る場合に、割り込み処理のように命令コードでデータ長
間接指定を行なえないことがあり、これを回避するの
に、直接データ長を指定するデータを保有し、この保有
されたデータを利用可能にしようとするものである。
【0011】
【発明が解決しようとする課題】本発明者はコード効率
の向上、処理の高速化、データ処理の融通性について検
討した。即ち、アドレス空間の狭い動作モードでCPU
を動作させれば、オペランド指定フィールドの情報量を
縮小でき、コード効率が向上し、命令フェッチの高速化
が実現される。加えて使用可能な汎用レジスタが実行的
に増加し、CPUの性能向上につながる。しかしなが
ら、それでは、レジスタ間接アドレシングモード等でア
クセスできるメモリマップ上のデータ領域が制限されて
しまう。システムで扱われるデータ容量は、そのアドレ
ス空間で指定可能なデータ範囲よりも小さくなければな
らない。したがって、それより僅かでもデータ容量が増
えるときは、アドレス空間の広い動作モードを利用しな
ければならない。
【0012】短縮形アドレシングモードでアクセス可能
なメモリマップ上のデータ領域は比較的狭い範囲、即ち
短縮されたアドレスビット数で指定できる範囲に限定さ
れるから、これ以外のアドレス空間にあるデータアクセ
スを行う場合には、フルアドレスを指定する必要があ
る。したがって、短縮形命令で指定できる容量以上のデ
ータ領域をアドレス空間に割付ける必要がある場合は、
短縮形アドレシングモードが全く利用できなくなり、短
縮形アドレシングモードが使用可能なシステムに比較
し、相対的にコード効率、及びCPUの処理能力が劣る
ことになる。
【0013】また、32ビットのフルアドレスに代表さ
れるような比較的ビット数の多いアドレス情報を必要と
するアドレス空間でCPUが動作するとき、必要となる
プログラムカウンタのビット数は、それに呼応して32
ビット等の比較的多いビット数を備えることが必要にな
る。このとき、分岐命令実行時にスタックされるプログ
ラムカウンタの値、及びサブルーチンリターン命令実行
時にアンスタックされプログラムカウンタに再設定され
る値は、ともに32ビットのような比較的多いビット数
である。本発明者の検討によれば、プログラムの分岐元
及び分岐先が、ある限定された領域に存在する場合、分
岐命令や復帰命令実行後のプログラムカウンタの示すア
ドレスの上位は同一であり、結果として、この分のデー
タを退避/復帰する操作は無駄ということになり、デー
タ処理速度低下、データ処理能率低下の原因になること
が本発明者により明らかにされた。
【0014】本発明の目的は、アドレス空間に対するデ
ータ容量の大小に対して、CPUの使い勝手を劣化させ
ることなく、コード効率及びデータ処理能率の改善を図
ることができるデータプロセッサを提供することにあ
る。
【0015】本発明の別の目的は、アドレス空間に対す
るデータ容量の大小に拘わらず、同一機能のプログラム
を実行する上で、CPUの命令フェッチサイクル数を削
減することができ、CPUのパフォーマンス向上を図る
ことができると共に、CPUの使い勝手を向上すること
が可能なデータプロセッサを提供することにある。
【0016】本発明の更に別の目的は、短縮形命令で指
定できる容量以上のデータ領域をアドレス空間に割付け
る必要がある場合でも、部分的に短縮形アドレシングモ
ードを利用でき、コード効率及びCPUの処理能力の劣
化を抑制することができるデータプロセッサを提供する
ことにある。
【0017】本発明のその他の目的は、局在化されたデ
ータを操作する処理プログラムに、絶対アドレスやディ
スプレースメントの短縮形を使用可能とするデータプロ
セッサを提供することにある。
【0018】本発明の更に別の目的は、CPUのアドレ
シングモードの切換えという点において、CPUのコー
ド効率の向上を図りつつ、併せてCPUの処理速度、使
い勝手を向上することが可能なデータプロセッサを提供
することにある。
【0019】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0020】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0021】〔1〕本発明に係るデータプロセッサは、
命令を実行可能なCPUと、前記CPUに接続するアド
レスバスと、前記CPUに接続するデータバスとを含
む。前記CPUは動作モードに応じて同一命令に対する
解釈を変更可能な命令制御部を含み、前記動作モードは
前記CPUによるプログラムの実行結果に基づいて可変
設定可能にされる。この手段における特徴点は、動作モ
ードに応じて同一命令に対する解釈を可変可能であると
いう第1の点、前記動作モードは前記CPUによるプロ
グラムの実行結果に基づいて可変設定可能であるという
第2の点である。
【0022】前記第2の点は、動作モードを動的に切り
換え可能であることを意味する一つの態様である。動的
とは動作モードの変更にCPUのリセット動作を伴わな
いということである。例えば、望ましい態様の一つとし
て、前記CPUによりアクセス可能であって前記動作モ
ードを決定するための制御データを保有するモード制御
レジスタを採用すればよい。CPUの動作プログラムに
したがって前記動作モードを動的に切り換えることがで
きる。
【0023】前記動作モードの動的切換えに関する別の
観点では、CPUは動作モードに応じて同一命令に対す
る解釈を変更可能な命令制御部と、前記動作モードを決
定するための制御データを保有する内部制御レジスタと
を含む。前記内部制御レジスタは、リセット指示の解除
によりCPUが命令実行を開始した後で可変設定可能に
される。内部制御レジスタを用いる動作モードの切換え
の態様として、CPUの命令実行により当該レジスタの
制御データを操作することで行なってもよい。更に別の
態様として、データプロセッサが割込みコントローラを
備えるなら、この割込みコントローラに、所定の割込み
要因に応じて前記内部制御レジスタに対する制御データ
の設定変更を行なわせることが可能である。これによっ
ても、CPUの動作プログラムにしたがって前記動作モ
ードを動的に切り換えることができる。
【0024】上記動的に切り換え可能な動作モードに応
じて同一命令に対する解釈が可変可能であるという点に
ついて、代表的な態様を挙げる。
【0025】解釈変更の第1の態様は、データ領域とし
て利用可能なアドレス空間の配置に対する解釈の変更で
ある。
【0026】解釈変更の第2の態様は、データ領域とし
て利用可能なアドレス空間のサイズに対する解釈の変更
である。
【0027】斯様に、動的に切り換えられる動作モード
に応じて同一命令に対する解釈を可変させることによ
り、局在化されたデータを操作する処理プログラムに対
してだけ、絶対アドレス等の短縮形を使用するというこ
とが可能になる。換言すれば、絶対アドレスやディスプ
レースメントの短縮形だけしか利用できない動作モード
に認められるアドレス空間に比べて全体として大きなア
ドレス空間を利用したいようなときでも、比較的小さな
アドレス領域に局在化されたデータを操作する処理には
短縮形アドレシングモードを利用し、その他のアドレス
エリアにはフルアドレスを用いるようなアドレシングモ
ードを利用するというような動的な切換えが可能にな
る。したがって、絶対アドレスやディスプレースメント
の短縮形を部分的に利用できる分だけ、プログラムのコ
ード効率を向上させることができ、更に、データ処理速
度も向上させることが可能になる。CPUの使い勝手も
向上する。
【0028】〔2〕上記より、フルアドレスを用いるア
ドレシングモード又は短縮されたアドレスビット数を用
いる短縮形アドレシングモードを動的に切り換えて選択
可能になるが、短縮型アドレシングモードが選択された
場合でも、CPUからアドレスバスに出力されるアドレ
ス信号ビット数は例えばフルアドレスを用いるアドレシ
ングモードで規定されるビット数であることが必要であ
る。これは、解釈変更にCPUのリセットを伴わないか
らである。したがって、アドレシングモードを短縮型と
解釈するような場合には、命令制御部は、解釈変更に伴
って、前記アドレスバスに出力するアドレス信号の所定
上位側ビットを所定値に固定させる制御を行なうことに
なる。
【0029】前記所定値は、例えば、全ビット論理値
“1”又は全ビット論理値“0”である。双方を用いれ
ばアドレス空間の先頭部分と、末尾部分とに分けること
ができる。論理値“1”又は全ビット論理値“0”の何
れか一方だけを用いる場合に比べて、短縮されたアドレ
スビット数が1ビット少なくなり、更なるコード効率向
上を実現する。論理値“1”と論理値“0”の双方を用
いる場合は、何れで固定するかは命令の解読結果に従っ
て決定すればよく、命令制御部は、アドレス出力バッフ
ァに対して出力アドレス情報の所定上位側ビットに論理
値“1”又は論理値“0”の何れを挿入すればよいかを
指示する。
【0030】前記所定値は、前記CPUによる命実行で
操作されるレジスタに設定された値であってよい。例え
ば汎用レジスタやその他CPUの内蔵レジスタに設定さ
れた値、或はCPUのアドレス空間に配置されたレジス
タに設定された値であってよい。これにより、フルアド
レスで規定されるアドレス空間の任意エリアに対して短
縮型アドレシングモードのようなアドレシングモードで
データアクセスが可能になる。
【0031】また、前記命令制御部は、データ領域とし
て利用可能なアドレス空間のサイズに対する解釈変更に
応じて、汎用レジスタで利用するレジスタのレジスタ長
を変更するとよい。例えば、フルアドレスを利用するよ
なアドレシングモードを適用する場合に32ビットの汎
用レジスタを用いるとき、短縮形アドレシングモードを
適用する解釈に変更されたときは、オペランド指定領域
におけるレジスタ指定情報で指定される32ビット汎用
レジスタに対してその下位側16ビットをレジスタ長1
6ビットのレジスタとして処理する。このとき32ビッ
ト汎用レジスタの上位側は利用されないから、当該上位
側を空き領域として把握し、16ビット長のデータバッ
ファ等として利用することが可能である。即ち、汎用レ
ジスタのそのような上位側空き領域を利用するようにC
PUの動作プログラムを作成しておけばよい。
【0032】〔3〕その他、同一命令に対する解釈変更
として、分岐/復帰時におけるスタック/アンスタック
の酩酊アドレスビット数を変更可能である。これにおい
ては、例えば短縮形アドレシングモードを用いるような
動作モードが選択される場合には比較的狭い範囲に局在
するデータを利用するのが一般的であろうから、分岐命
令や復帰命令の解釈として、スタック/アンスタックの
命令アドレスビット数を少なくする解釈を選択しても支
障無く、スタック/アンスタックに要するアクセスデー
タが小さくて済むから、データ処理の高速化に寄与する
ことができる。
【0033】その他、同一命令に対する解釈変更とし
て、データ転送命令やデータ演算命令による処理データ
に対するシフト動作等のオプション操作追加の有無を変
更すること等が可能である。例えば、配列データのアク
セスアドレスの演算を容易化することができる。例え
ば、配列において基底バイトアドレスの2倍のアドレ
スにデータ転送する場合に、シフト動作が付加された一
つのデータ転送命令によってその処理を指示することが
可能になる。そのようなシフト動作付加の有無に関する
命令解釈を動作モードに応じて動的に変更すれば、特定
動作モードにおける所定のデータ転送処理やデータ演算
処理の為のプログラムコード効率を向上させることがで
き、演算処理も高速化可能になる。
【0034】〔4〕本発明の更に別の観点によるデータ
プロセッサは、命令制御部と実行部を備えるCPUによ
る命令実行で操作可能なモードレジスタを有する。前記
モードレジスタに設定された第1の値は、前記命令制御
部に、データ領域として第1容量のアドレス空間を利用
可能な第1動作モード(アドバンストモード/マキシマ
ムモード)を指示する。前記モードレジスタに設定され
た第2の値は、前記命令制御部に、データ領域として前
記第1容量よりも小さな第2容量のアドレス空間を利用
可能な第2動作モード(ミドルモード)を指示する。こ
れにより、CPUは、データ領域に広狭のある第1動作
モードと第2動作モードを動的に変更することができ
る。そしてCPUは、命令実行で利用可能とするデータ
領域を、設定した動作モードに応じて動的に変更可能に
なる。
【0035】上記同様に、この手段でも、動的に切換え
可能な第2動作モードにおいて絶対アドレスやディスプ
レースメントの短縮形を利用できるから、その分だけ、
プログラムのコード効率を向上させることができ、更
に、データ処理速度も向上させることが可能になる。
【0036】一つの望ましい態様として、前記モードレ
ジスタは、前記第1動作モード及び第2動作モードの双
方において前記CPUのアドレス空間に配置したレジス
タであってよい。別の望ましい態様として、前記モード
レジスタをCPUの内部のレジスタとし、所定の割込み
要因に応じて前記モードレジスタに対して値を設定可能
な割込みコントローラを採用してよい。
【0037】前記命令制御部の望ましい態様では、アド
レシングモードの解釈において、前記第1動作モードが
指示されているときは汎用レジスタを第1容量のアドレ
ス空間を指定するのに必要なビット数の第1レジスタ長
で利用させ、前記第2動作モードが指示されているとき
は汎用レジスタを第2容量のアドレス空間を指定するの
に必要なビット数の第2レジスタ長で利用させればよ
い。前述の通り、汎用レジスタの利用効率を向上させる
ことが可能になる。
【0038】
【発明の実施の形態】《マイクロコンピュータ》図2に
は本発明に係るデータプロセッサの一例であるシングル
チップマイクロコンピュータが示される。
【0039】同図に示されるシングルチップマイクロコ
ンピュータ1は、全体の制御を司るCPU2、割込コン
トローラ(INT)3、CPU2の処理プログラムなど
を格納するメモリであるROM4、前記CPU2の作業
領域並びにデータの一時記憶に用いられるメモリである
RAM5、タイマ〔A〕6、タイマ〔B〕7、シリアル
コミュニケーションインタフェース(SCI)8、A/
D変換器9、第1乃至第9入出力ポート(IOP〔1〕
〜IOP
〔9〕)11〜19、クロック発振器(CP
G)20、及びシステムコントローラ(SYSC)21
の機能ブロック乃至はモジュールから構成され、公知の
半導体製造技術により単結晶シリコンのような1つの半
導体基板上に形成される。CPUCR22はシステムコ
ントローラ21に配置されたコントロールレジスタであ
る。
【0040】かかるシングルチップマイクロコンピュー
タ1は、電源端子として、グランドレベル(Vss)、
電源電圧レベル(Vcc)、アナロググランドレベル
(AVss)、アナログ電源電圧レベル(AVcc)、
アナログ基準電圧(Vref)の入力端子を有する。そ
して、専用制御端子として、リセット(RES)、スタ
ンバイ(STBY)、モード制御(MD0、MD1、M
D2)、クロック入力(EXTAL、XTAL)等の各
端子を有する。
【0041】シングルチップマイクロコンピュータ1
は、前記CPG20の端子EXTAL、XTALに接続
される水晶発振子またはEXTAL端子に入力れる外部
クロックに基づいて生成される基準クロック(システム
クロック)に同期して、動作を行う。この基準クロック
の1周期をステートと呼ぶ。
【0042】シングルチップマイクロコンピュータ1の
機能ブロックは、内部バス30によって相互に接続さ
る。シングルチップマイクロコンピュータ1は、バスの
制御を行なう、図示を省略したバスコントローラを内蔵
している。内部バス30は内部アドレスバス・内部デー
タバスの他、リード信号・ライト信号等のコントロール
バスを含み、コントロールバスはさらにバスサイズ信号
を含んだり、これらをコード化したバスコマンドなどと
してもよい。或いはシステムクロックなどを含んでもよ
い。
【0043】かかる機能ブロックやモジュールは内部バ
ス30を介して、CPU2によってリード/ライトさ
る。内部バス30のデータバス幅は16ビットとする。
CPU2は、内蔵ROM4、RAM5を1ステートでリ
ード/ライトすることができる。
【0044】各入出力ポート11〜19は、アドレスバ
ス、データバス、バス制御信号、あるいはタイマ6,
7、SCI8、A/D変換器9の入出力端子と兼用され
ている。すなわち、タイマ6、7、SCI8、A/D変
換器9は、それぞれ入力信号を有し、入出力ポートと兼
用にされた端子を介して、外部と入出力されるものであ
る。例えばIOP〔5〕、IOP〔6〕、IOP〔7〕
は、タイマ6,7の入出力端子と兼用され、IOP
〔8〕はSCI8の入出力端子と兼用にされている。ア
ナログデータの入力端子は、IOP
〔9〕と兼用にされ
ている。
【0045】かかるシングルチップマイクロコンピュー
タ1にリセット信号RESが与えられると、CPU2を
始めとし、シングルチップマイクロコンピュータ1はリ
セット状態になる。このリセットが解除されると、CP
U2は所定のアドレスからスタートアドレスをリードし
て、このスタートアドレスから命令のリードを開始する
リセット例外処理を行う。この後、CPU2は逐次、R
OM4などから命令をリードし、解読して、その解読内
容に基づいてデータの処理或はRAM5、タイマ6,7
等とのデータ転送を行う。即ち、CPU2は、入出力ポ
ート11〜19等から入力されるデータ、或はSCI8
などから入力される指示を参照しつつ、ROM4などに
記憶されている命令に基づいて処理を行い、その結果に
基づいて、入出力ポート11〜19、タイマ6,7等を
使用しつつ、外部に信号を出力し、各種外部接続機器の
制御を行う。
【0046】タイマ6,7、SCI8、外部信号などの
状態を割込み信号として、CPU2に伝達することがで
きる。割込信号は、A/D変換器9、タイマ〔A〕6、
タイマ〔B〕7、SCI8、入出力ポート11〜19が
出力し、割込コントローラ3はこれを入力して、所定の
レジスタなどの指定に基づて、CPU2に割込要求信号
31を与える。割込要因が発生すると、CPU割込要求
が発生され、CPU2は実行中の処理を中断して、例外
処理状態を経て、所定の処理ルーチンに分岐し、所望の
処理を行い、割込要因をクリアしたりする。所定の処理
ルーチンの最後には、通常復帰命令が実行され、この命
令を実行することによって前記中断した処理を再開す
る。
【0047】《CPU》図1にはCPU2の詳細な一例
が示される。このCPU2は命令を解読して制御信号を
生成する命令制御部CONTと、命令制御部からの制御
信号等に基づいて演算を行なう実行部EXECから構成
される。IDB、IABは前記内部バス30に含まれる
内部データバス、内部アドレスバスである。
【0048】命令制御部CONTは、命令レジスタI
R、命令変更部CHG、命令デコーダDEC、及びレジ
スタセレクタRSELを有する。
【0049】命令レジスタIRは内部データバス経由で
リードした命令を格納する。命令デコーダDECは命令
レジスタIRに格納された命令コードを解読して制御信
号を生成する。 前記命令デコーダDECは、例えば、
マイクロROM或はPLA(Programmable
Logic Array)または布線論理で構成され
る。
【0050】命令変更部CHGは割込みコントローラ3
からの割込み要求信号に応答して割込み例外処理の為の
所定の命令コードをそのハードウェアに従って生成し、
命令デコーダDECに与える。割込みコントローラ3は
命令デコーダDECから割込みマスク情報が与えられ
る。
【0051】レジスタセレクタRSELは、命令コード
中に含まれるレジスタフィールドの情報等に基づいて、
汎用レジスタ等を選択する。
【0052】実行部EXECには、汎用レジスタER0
〜ER7、プログラムカウンタPC、コンディションコ
ードレジスタCCR、イクステンドレジスタEXR、テ
ンポラリレジスタTRA、TRD、算術論理演算器AL
U、インクリメンタINC、リードデータバッファRD
B、ライトデータバッファWDB、アドレスバッファA
Bを含む。これらのブロックは内部バスGB、DB、W
Bによって相互に接続されている。
【0053】リードデータバッファRDB、ライトデー
タバッファWDB、アドレスバッファABなどは、内部
バスIAB、IDBとのインタフェースをとるために、
一時的にデータをラッチする。テンポラリレジスタTR
A、TRDは、マイクロコンピュータ内部の動作に適宜
用いられ、例えば演算の途中結果などを一時的に貯え
る。
【0054】リードデータバッファRDBは、ROM
4、RAM5、内部I/Oレジスタ、或は図示はされな
い外部メモリから、リードした命令コードやデータを一
時的に格納する。ライトデータバッファWDBはROM
4、RAM5、内部I/Oレジスタ、或は外部メモリへ
のライトデータを一時的に格納する。
【0055】アドレスバッファABは、CPU2がリー
ド/ライトするアドレスを一時的に格納する他に、格納
した内容に対するインクリメント機能を有している。イ
ンクリメント機能を有するアドレスバッファは特開平4
−333153号公報などに記載されている。
【0056】前記算術論理演算器ALUは、命令によっ
て指定される各種の演算や実効アドレスの計算などに用
いられる。前記インクリメンタINCは、主にプログラ
ムカウンタPCの加算に用いられる。
【0057】《レジスタ構成》図3には本発明の適用さ
れた前記CPU2の汎用レジスタ及びコントロールレジ
スタの構成(プログラミングモデル)が例示される。
【0058】CPU2は、32ビット長の汎用レジスタ
を8本持っている。汎用レジスタER0〜ER7は、す
べて同機能を持っており、アドレスレジスタとしてもデ
ータレジスタとしても使用することができる。
【0059】図4には汎用レジスタの使用形態が例示さ
れる。データレジスタとしては32ビット、16ビット
および8ビットレジスタとして使用できる。アドレスレ
ジスタおよび32ビットレジスタとしては、一括して汎
用レジスタER(ER0〜ER7)として使用する。1
6ビットレジスタとしては、汎用レジスタERを分割し
て汎用レジスタE(E0〜E7)、汎用レジスタR(R
0〜R7)として使用する。これらは同等の機能を持っ
ており、16ビットジスタを最大16本まで使用するこ
とができる。なお、汎用レジスタE(E0〜E7)を、
特に拡張レジスタと呼ぶ場合がある。8ビットレジスタ
としては、汎用レジスタRを分割して汎用レジスタRH
(R0H〜R7H)、汎用レジスタRL(R0L〜R7
L)として使用する。これらは同等の機能を持ってお
り、8ビットレジスタを最大16本まで使用することが
できる。各レジスタ独立に使用方法を選択することがで
きる。
【0060】汎用レジスタER7には、汎用レジスタと
しての機能に加えて、スタックポインタ(SP)として
の機能が割り当てられており、例外処理やサブルーチン
分岐などで暗黙的に使用される。例外処理は前記割込み
処理を含む。図示されない制御レジスタなどの設定によ
って、サブルーチン分岐用のスタックポインタと、例外
処理用のスタックポインタを、独立して選択することが
できる。
【0061】図3に例示の如く、コントロールレジスタ
としてPC(プログラムカウンタ)、CCR(コンディ
ションコードレジスタ)及びEXR(エクステンドレジ
スタ)を有する。
【0062】PCは例えば32ビットを有し、CPU2
が次に実行する命令のアドレスを示す。特に制限されな
いが、CPU2の命令は、全て2バイト(ワード)を単
位としているため、最下位ビットは無効であり、命令リ
ード時には最下位ビットは0とみなされる。
【0063】CCRは8ビットを有し、CPU2の内部
状態を示している。割込みマスクビット(I)とハーフ
キャリ(H)、ネガティブ(N)、ゼロ(Z)、オーバ
フロー(V)、キャリ(C)の各フラグを含む8ビット
で構成されている。
【0064】イクステンドレジスタEXRは8ビットを
有し、割込みなどの例外処理の制御を行なう。割込みマ
スクビット(I2〜I0)等のビットを含んでいる。
【0065】《CPUの動作モードとアドレス空間》図
5にはCPUの動作モードとアドレス空間が例示され
る。CPU2はノーマルモード、ミドルモード、アドバ
ンストモード及びマキシマムモードを有する。
【0066】前記ノーマルモードにおいてCPU2はプ
ログラム及びデータ領域として64Kバイトのアドレス
空間を絶対アドレス16ビットでアクセスすることがで
きる。
【0067】前記ミドルモードにおいてCPU2は16
Mバイトのアドレス空間を絶対アドレス24ビットを用
いてアクセスすることができる。16Mバイトのアドレ
ス空間の内、上位側32Kバイト(H'000000〜
H'007FFF)及び下位側32Kバイト(H'FF8
000〜H'FFFFFF)はデータ領域とプログラム
領域にされる。残りはプログラム専用領域である。ミド
ルモードはノーマルモードに対してプログラム領域が足
りない場合に利用して実益がある。
【0068】アドバンストモードにおいてCPU2は4
Gバイトのアドレス空間を絶対アドレス32ビットを用
いてアクセスすることができる。4Gバイトのアドレス
空間の内、上位側16Mバイト(H'00000000
〜H'00FFFFFF)はプログラム領域及びデータ
領域とされる。残りの領域はデータ領域に専用化され
る。ミドルモードでデータ領域が足りない場合にアドバ
ンストモードを利用すればよい。
【0069】マキシマムモードにおいてCPUは4Gバ
イトのアドレス空間を絶対アドレス32ビットを用いて
アクセスすることができる。4Gバイトのアドレス空間
はプログラム領域及びデータ領域に共用される。アドバ
ンストモードではプログラム領域が足りない用途におい
てマキシマムモードを用いればよい。
【0070】特に制限されないが、ノーマルモード、ミ
ドルモード、アドバンストモード、及びマキシマムモー
ドは前記モード端子MD0〜MD2の状態によって選択
的に設定可能である。モード端子MD0〜MD2による
動作モードの変更はリセット信号RESなどによるリセ
ット動作を伴う。要するに、モード端子MD0〜MD2
で指定された動作モードでCPU2が動作する。
【0071】特にミドルモードとアドバンストモードと
の間(ミドルモードとマキシマムモードとの間でもよ
い)は、CPU2のリセット動作を伴うことなく、要す
るに、動的に変更可能にされる。CPU2はその動作モ
ードの動的な変更に応じて同一命令に対する解釈を当該
動作モードに合わせて可変に解釈する。即ち、前記ノー
マルモードでデータ領域が足りない用途ではミドルモー
ド又はアドバンストモードを利用すればよい。ミドルモ
ードではデータ領域のオペランドを指定するのに16ビ
ットあればよい。フルアドレス24ビットのうち上位8
ビットはH'00又はH'FFであるから、これを命令の
オペレーションコードのデコード結果などで指定すれ
ば、オペランド指定フィールドのアドレス情報は是対ア
ドレスで16ビットあればよい。アドバンストモードで
はオペランド指定フィールドのアドレス情報は32ビッ
ト必要である。オペランド指定フィールドのアドレス情
報のビット数が少なくて済めば、プログラムのコード効
率が向上し、また、命令フェッチに必要なメモリアクセ
ス回数も少なくなってデータ処理効率向上に寄与する。
したがって、必要なデータ領域サイズの観点よりアドバ
ンストモードを利用しなければならない用途であって
も、その動作モードを必要に応じて動的にミドルモード
に変更すれば、オペランドのアドレス演算には短いアド
レス情報を用いればよく、フェッチすべき命令長も短い
アドレス情報に応じて短くて済み、命令フェッチの高速
化、プログラムコードの効率化に資することができる。
加えて使用可能な汎用レジスタが実効的に増加し、CP
Uの性能向上につながる。
【0072】以下、ミドルモードとアドバンストモード
/マキシマムモードとの間の関係の如く、動作モードの
動的な変更に応じて同一命令に対する解釈を当該動作モ
ードに合わせて可変に解釈可能なCPU2について詳述
する。
【0073】《アドレシングモード》ここで、図6を参
照しながらCPU2のアドレシングモードについて幾つ
か説明する。CPU2の一般的なアドレシングモードと
して転送命令や演算命令における絶対アドレスモードや
レジスタ間接モード等を挙げることができる。
【0074】絶対アドレスモードは、命令コードに含ま
れる絶対アドレスにより、メモリ上のオペランドを指定
する。絶対アドレス指定の短縮形では、アクセスエリア
を限定し、CPUアドレスの下位アドレスのみを指定
し、命令長を短縮する。命令コードで指定されない上位
アドレスは、CPU2内部にて、所定の値に固定される
ことになる。図6の例では、絶対アドレスモードとし
て、@aa:32の全アドレス空間指定に加え、@a
a:8の8ビットアドレス空間指定、@aa:16の1
6ビットアドレス空間指定という、短縮形が例示され
る。図6の例はデータ転送命令(MOV.B)が一例と
され、opはオペレーションコード、rsはソース側の
汎用レジスタ指定情報(汎用レジスタ番号)、aaは絶
対アドレス情報を意味する。そのようなデータ転送命令
をニーモニック表示すると、 “MOV.W R0, @H'F1:8” “MOV.W R0, @H'FFF1:16” “MOV.W R0, @H'FFFFF1:24” “MOV.W R0, @H'FFFFFFF1:3
2” のように表すことができる。
【0075】@aa:8を使用した場合、上位24ビッ
トは、全て”1“即ちH'FFFFFFとされ、@a
a:16を使用した場合、上位16ビットは符号拡張さ
れる。上記ニーモニックで表示した命令は、機能上、互
いに同義であるが、@aa:8、@aa:16を用いた
短縮形命令は、@aa:32を用いてフルアドレスを指
定する場合に比べ、命令長が短い。従って、フルアドレ
スを指定する命令を、短縮形で置換えることが可能であ
るならば、命令コードの容量を縮小でき、さらにCPU
2の命令フェッチサイクル数を削減でき、CPU2の実
行速度を向上させることが可能になる。
【0076】レジスタ間接アドレシングモードは、命令
コードのレジスタフィールドで指定されるアドレスレジ
スタの内容をアドレスとしてメモリ上のオペランドを指
定する。この命令コードは、レジスタ番号によりアドレ
スを間接的に指定するから、絶対アドレスを指定するの
に比較して、命令長が短くて済む。図6の例において、
rdはディスティネーションアドレスレジスタを指定
し、rsはソースレジスタを示す。特に制限されない
が、図3で示した汎用レジスタ構成のCPU2におい
て、レジスタ間接アドレッシングモードでは、汎用レジ
スタのEn/RnH/RnLを32ビットのレジスタER
nとし、これをディスティネーションアドレスレジスタ
として指定するようになっている。このアドレシングモ
ードを用いる転送命令の一例をニーモニックで表すと、
“MOV.W R0, @ER2”となる。上記のレジス
タ間接アドレッシングモードを使用することにより、デ
ータエリアとして、それぞれ16Mバイト、及び4Gバ
イトのアドレス空間を間接的に指定することが可能であ
る。
【0077】《ミドルモード》上述の説明で代表される
ようなアドレシングモードを、プログラム上高い頻度で
出現する命令に対して使用すれば、そのコード効率が向
上する。コード効率の向上だけではなく、CPU2の命
令フェッチサイクル数を軽減し、CPU2の実行速度を
向上することができる。この意味において、そのような
アドレシングモードを、最も頻繁に実行される命令に対
して使用するのがよい。この観点より、前記ミドルモー
ドを採用する。
【0078】図5に従えば、ミドルモードでは16Mバ
イトのアドレス空間に対してデータ領域を64Kバイト
に限定する。したがって、データアクセスのためのアド
レス指定に32ビットは不要になり、実効アドレスの演
算では汎用レジスタとしてERnの32ビットは不要と
なり、下位の16ビット(Rn)をアドレスレジスタと
して参照すればよく、上位アドレスはハードウェアで強
制的に、所定の値、例えば、H'FF又はH'00等に固
定すればよい。このとき、不要となる、上位の16ビッ
ト分のレジスタ領域、即ちEnは、ソフトウェアにした
がって他の目的に使用することが可能になる。
【0079】ミドルモードを利用する例を説明する。第
1の例は、アドレス空間が64KBのノーマルモードを
使用しており、扱うデータ量は依然64KBに納まる
が、システムの高機能化に伴ないプログラムが増加し、
プログラムとデータの総量が64KBに納まらないよう
になった場合である。このとき、ミドルモードを用いる
ことで容易にプログラム容量を増やすことが可能とな
る。ノーマルモードでアドレスレジスタとして汎用レジ
スタを使った場合、上位の16ビット(En)は不要で
あることから、データバッファとして利用することがで
きる。アドバンストモード、または、マキシマムモード
に移行したときは、上位の16ビット(En)もアドレ
スの一部として指定することが必要になるから、そのと
きは、汎用レジスタの上位側をデータバッファ等に流用
することはできない。
【0080】第2の例は、従来、アドバンストモード、
または、マキシマムモードを使用しているが、データ容
量が64KB以下であるような場合に、ミドルモードを
使用する。汎用レジスタの数量が実効的に増加し、デー
タバッファとして利用できることから、メモリへのアク
セスが減り、データ処理のパフォーマンスが向上する。
【0081】図7にはアドバンストモード又はマキシマ
ムモードにおけるレジスタ間接アドレシングモードによ
る実効アドレスの演算手法、及びその時の汎用レジスタ
の利用形態が示される。図8にはミドルモードにおける
レジスタ間接アドレシングモードによる実効アドレスの
演算手法、及びその時の汎用レジスタの利用形態が示さ
れる。ミドルモードでは汎用レジスタの上位側16ビッ
トをアドレスポインタとして利用しなくてよいから、デ
ータバッファなどに流用することができる。ミドルモー
ドにおいてCPU2から出力されるアドレス情報は、上
位側16ビットが“1”又は“0”等に拡張される。図
7と図8の実効アドレス演算に関して双方の命令は同一
であってよい。同一命令コードの命令に対する処理操作
の違いは、命令デコーダDECによる命令解釈の相異に
より与えられる。
【0082】図9にはアドバンストモード又はマキシマ
ムモードにおける絶対アドレスのアドレシングモードに
よる実効アドレスの演算手法が示される。図10にはミ
ドルモードにおける絶対アドレスのアドレシングモード
による実効アドレスの演算手法が示される。図10のミ
ドルモードにおいて、オペランド指定部に16ビット絶
対アドレスを用いる場合と32ビット絶対アドレスを用
いる場合との間では、実効アドレスの演算は等価とされ
る。要するに、32ビット絶対アドレスが指定されて
も、上位側16ビットは無視される。32ビット絶対ア
ドレスを用いても支障ないが、ミドルモードで実行され
るプログラムモジュールについてはオペランド指定フィ
ールドに16ビット以下の絶対アドレスを用いればコー
ド効率の向上と命令フェッチの高速化に寄与することが
できる。
【0083】《命令解釈の変更》図11にはミドルモー
ドとアドバンストモード/マキシマムモードとの切換え
によるデータ領域の変化が示される。同図の内容は図7
乃至図10のアドレシングモードによるアクセス可能な
データ領域を整理して示したものに相当する。
【0084】ミドルモードとアドバンストモード/マキ
シマムモードとを動的に切り換えたとき、命令デコーダ
DECは所定の同一命令に対してその動作モードに応じ
て解釈を変更する。8ビット絶対アドレス、16ビット
絶対アドレスのアドレシングモードを有する命令に対し
ては、動作モードに拘わらず実効アドレスの演算操作の
為の命令解釈は同じである。ディスプレースメント付き
レジスタ間接のアドレシングモードを有する命令に対し
て、アドバンストモード/マキシマムモードでは32ビ
ットの汎用レジスタを利用し、ミドルモードでは32ビ
ットの汎用レジスタの下位16ビットだけを用いる。絶
対アドレス32ビットのアドレシングモードを有する命
令に対しては、アドバンストモード/マキシマムモード
ではそのまま32ビットを用い、ミドルモードでは下位
16ビットのみを用いる。
【0085】動作モードの動的な切換えによって変更さ
れる命令解釈の内容は命令デコーダDECの論理構成に
よって決まる。例えば、レジスタ間接アドレシングモー
ドに対して、ミドルモードでは図8に例示されるように
汎用レジスタの下位16ビットを用いる解釈の他、図1
2に例示されるように汎用レジスタの下位8ビットを用
いる解釈を採用してもよい。この場合には汎用レジスタ
の空きエリアを更に多く採ることが可能になる。
【0086】図13にはレジスタ間接アドレシングモー
ドに対して、ミドルモードで選択する更に別の命令解釈
の例が示される。ここでは、ミドルモードが設定される
と、所定のデータ転送命令又は所定の演算命令に対し
て、処理データに対するシフト動作等のオプション操作
を行なう為の解釈が付加される。図13の例では、レジ
スタ間接で指定される汎用レジスタの16ビットデータ
を2ビット左シフト動作してディスプレースメントとの
加算演算を行なう命令解釈とされる。このシフト付き演
算は配列データのアクセスアドレスの演算等を容易化す
るのに役立つ。例えば、配列において基底バイトアドレ
スの2倍のアドレスにデータ転送する場合に、シスト
動作が付加された一つのデータ転送命令によってその処
理を指示することが可能になる。そのようなシフト動作
付加の有無に関する命令解釈を動作モードに応じて動的
に変更すれば、特定動作モードにおける所定のデータ転
送処理や演算処理の為のプログラムコードの効率向上と
演算処理の高速化が可能になる。
【0087】図14にはレジスタ間接アドレシングモー
ドに対して、ミドルモードで選択する更に別の命令解釈
の例が示される。図13との相違点は、レジスタ間接で
指定される汎用レジスタの8ビットデータを2ビット左
シフト動作してディスプレースメントとの加算演算を行
なう命令解釈とする点である。アドレシング可能範囲は
狭くなるが、プログラムコード効率の向上、演算処理の
高速化という同様の作用効果を得ることができる。
【0088】図15にはミドルモードとは直接関係ない
が、所定の動作モード例えばアドバンストモードが選択
されたとき特定のデータ転送命令や演算命令に対してレ
ジスタ間接で指定される汎用レジスタの32ビットデー
タを2ビット左シフト動作してディスプレースメントと
の加算演算を行なう命令解釈とする例が示される。
【0089】《動作モードの動的切換え》図16にはC
PUの動作モード切換えに着目した構成が例示される。
CPU2の動作モードは、モード端子MD0〜MD2の
状態に従って命令デコーダDECに指示することができ
る。
【0090】リセット動作を伴わない動的な動作モード
の変更は、動作モード制御レジスタ33の設定、イクス
テンドレジスタEXRに対するモード制御ビットの設定
により行なうことができる。動作モード制御レジスタ3
3は例えば前記CPUCR22に含まれる一つのレジス
タとされる。
【0091】モード制御レジスタ33はCPU2のアド
レス空間に配置され、アドレスバスIAB及びデータバ
スIDBを介してCPU2がアクセスすることにより任
意に書き換え可能にされる。モード制御レジスタ33を
用いた動作モードの切換えはCPU2が当該モード制御
レジスタ33に対するデータ転送命令等を実行して行な
うことができる。図16ではモード制御レジスタ33の
1ビットのモード制御信号33Mが代表的に例示される
が、実際には複数ビットのモード制御信号の論理値の組
み合わせに応じて動作モードを指定する。モード制御レ
ジスタ33からのモード指定とモード端子MD0〜MD
2によるモード指定が相違する場合、命令デコーダDE
Cはモード制御レジスタ33によるモード指定を優先し
て採用する。尚、CPU2のリセット動作においてモー
ド制御レジスタ33のモード制御ビットは全てディスエ
ーブル状態にされる。
【0092】イクステンドレジスタEXRのモード制御
ビットに対しては、CPU2のビット操作命令等の制御
用命令を実行して設定値変更を行なうことができる。別
のモード設定手段として、イクステンドレジスタEXR
にモード制御ビットを割り当て、割込み要因に応じて割
込みコントローラ3がモード制御ビットを設定する構成
を採用してもよい。即ち、割込みコントローラ3は割込
み要因別モード制御回路36を含み、そこには割込要因
別モード設定レジスタ37が配置される。割込要因別モ
ード設定レジスタ37の各ビットには割込要因が割当て
られ、イネーブルビットにされた割込要因の割込みが発
生すると、信号35で対応するモード制御ビットをセッ
トし、他のモード制御ビットをリセットする。図16で
はモード制御ビットに対応する1ビットのモード制御信
号34Mと信号35が代表的に例示されるが、実際には
複数ビットのモード制御信号の論理値の組み合わせに応
じて動作モードを指定する。イクステンドレジスタEX
Rによるモード指定とモード端子MD0〜MD2による
モード指定が相違する場合、命令デコーダDECはイク
ステンドレジスタEXRによるモード指定を優先して採
用する。尚、CPU2のリセット動作においてイクステ
ンドレジスタEXRのモード制御ビットは全てディスエ
ーブル状態にされ、若しくは初期化される。
【0093】モード端子MD0〜MD2、モード制御レ
ジスタ33、イクステンドレジスタEXRの夫々による
動作モード指定を採用する場合、モード制御レジスタ3
3によるモード指定とイクステンドレジスタEXRによ
るモード指定の何れか一方に指定を優先させればよい。
【0094】命令デコーダDECは実効アドレスの演算
結果に対してアドレス出力バッファABにアドレス拡張
信号38を出力して、動作モード及び命令デコード結果
に応じたアドレス拡張を行なう。アドレス拡張は、ミド
ルモードにおけるアドレシングモードで説明した図8、
図10、図12、図13、図14に示されるような上位
側アドレスに対する“1”拡張、“0”拡張、又は符号
拡張である。何れの拡張を行なうかは命令のオペレーシ
ョンコードの解読結果にしたがって決定する。例えばミ
ドルモードにおいて図11のアクセス可能なデータ領域
をアクセスするのに必要な上位側アドレスに対する
“1”拡張又は“0”拡張を行なえばよい。その他にア
ドレス拡張を必要とするのは、アドバンストモードやマ
キシマムモードにおける8ビット絶対アドレスや16ビ
ット絶対アドレスのアドレシングモードの命令を実行す
る場合である。
【0095】動作モードの動的切換えにおいて、前記命
令デコーダDECは、動作モードに応じて同一命令に対
する解釈を変更するが、その変更内容の代表が前記アド
レス拡張の有無である。例えば、32ビット絶対アドレ
スによるアドレシングモードの命令に対し、アドバンス
トモードでの実行であればアドレス拡張を要せず(図9
参照)、ミドルモードでの実行であれば、実効アドレス
の演算結果に対して上位側アドレス16ビットを“1”
拡張又は“0”拡張する(図10参照)。
【0096】動作モードの動的切換えにおいて、前記命
令デコーダDECが行なう同一命令に対する解釈変更の
別の例は、汎用レジスタに対するレジスタ長の指定であ
る。この制御は、命令デコーダDECからレジスタ選択
回路RESLを介して行なう。例えば、32ビットディ
スプレースメント付きレジスタ間接によるアドレシング
モードの命令に対し、アドバンストモードでの実行であ
れば指定された32ビットの汎用レジスタ(ERn)を
指定し(図7参照)、ミドルモードでの実行であれば、
指定された32ビットレジスタの下位16ビット部分の
レジスタ(Rn)を指定する(図8参照)。
【0097】《データ空間の指定》各種アドレシングモ
ードでアクセスするデータ空間の指定方式として把握さ
れるところの、アドレス拡張に対して、今までの説明で
は、実効アドレス演算結果に対する上位側アドレス情報
の“1”拡張、“0”拡張、及び符号化拡張に代表され
るように、ハードウェアで幾つかの固定値を用意し、こ
れを動的に切り換えて用いた。この他に、指定された汎
用レジスタの内容を拡張アドレスとして用いる、プログ
ラマブルに書き換え可能な拡張アドレス設定用レジスタ
を設け、その設定値を拡張アドレスとして用いる、とい
う手段を採用することも可能である。
【0098】図17にはアドバンストモード/マキシマ
ムモードにおいて汎用レジスタの内容又は拡張アドレス
設定用レジスタの設定値を拡張アドレスとして用いるア
ドレス拡張態様が例示される。図18及び図19にはミ
ドルモードにおいて汎用レジスタの内容又は拡張アドレ
ス設定用レジスタの設定値を拡張アドレスとして用いる
アドレス拡張態様が例示される。
【0099】図20には汎用レジスタの内容又は拡張ア
ドレス設定用レジスタの設定値を拡張アドレスとして用
いるアドレス拡張によるデータ領域の変化が例示され
る。
【0100】図21には拡張アドレス設定用レジスタを
用いてデータ空間切換えが可能にされたCPU2が例示
される。拡張アドレス設定用レジスタ43はCPU2の
アドレス空間に配置され、CPU2の命令実行によって
任意の値を設定可能にされる。拡張アドレスとして、拡
張アドレス設定用レジスタ43の値を選択するのか、
“1”拡張を選択するのか、“0”拡張を選択するのか
を、命令のデコード結果だけでなく、拡張アドレス選択
レジスタ40からの選択信号40M、イクステンドレジ
スタEXRのモード制御ビットに応ずる選択信号41
M、割込みコントローラから所定の割込み要求に応じて
出力される選択信号42Mを参照して指定可能にされて
いる。即ち、命令デコーダDECは命令のオペレーショ
ンコードを解読することにより、その命令のアドレシン
グモードで利用する拡張アドレスとして、前記信号40
M,41M,42Mの内の所定の信号が指示しているも
のを選択可能か、命令デコード結果によって一義的に決
まるものを選択するかを判別する。前記信号40M,4
1M,42Mの内の所定の信号が指示しているものを選
択可能な場合には、当該所定の選択信号がディスエーブ
ル以外の選択値を有していれば、それが指定する拡張ア
ドレスを用いる。そうでない場合には命令デコード結果
によって一義的に決まる拡張アドレスを採用する。例え
ば、拡張アドレス設定用レジスタ43の設定値を拡張ア
ドレスとして採用可能なことを選択信号41Mが示して
いるならそれを拡張アドレスとして採用する、という命
令解読結果に対し、選択信号41Mがそのような選択状
態を指示しているなら、拡張アドレス設定用レジスタ4
3の設定値を拡張アドレスとして採用する。
【0101】これにより、CPU2が短縮形命令等を実
行するとき、上位アドレスとして、その専用レジスタの
内容を利用することができるから、短縮形の命令コード
に含まれない上位アドレスとして、ソフトウェアで設定
した任意の値を用いることが可能になる。
【0102】尚、前記拡張アドレス選択レジスタ40及
び拡張アドレス設定用レジスタ43は例えば前記CPU
CR22に含まれるレジスタとされる。拡張アドレス設
定用レジスタ43はCPU2に内蔵させてもよい。
【0103】図22には拡張アドレス設定用レジスタを
用いてデータ空間切換えが可能にされたCPU2の別の
例が示される。ここでは、割込要因別の拡張アドレス設
定用レジスタ45を採用する。この割込要因別の拡張ア
ドレス設定用レジスタ45は、幾つかの割込要因毎に拡
張アドレスを保有することができる。この割込要因別の
拡張アドレス設定用レジスタ45に設定された拡張アド
レスは、割込要因別拡張アドレス制御回路46から出力
される選択信号46Mによって内部バス39にリードさ
れ、アドレスバッファABの上位側16ビットに転送さ
れる。選択信号46Mは要因対応レジスタ47の要因ビ
ットに対応され、要因ビットは対応する割込み処理の間
イネーブルにされ、実効アドレス演算結果を出力するタ
イミングで選択信号46Mとして出力可能にされる。
【0104】図21及び図22の構成においては、選択
可能な拡張アドレスは、CPU2のソフトウェアに基づ
いて、CPU2の動作中に動的に切換えることが可能で
ある。
【0105】《割込みによるモード切換えタイミング》
割込みによるモード制御ビットの設定やデータ空間の切
換えを行なうときのタイミングについて説明する。図2
3には割込み処理のタイミングチャートが例示され、図
24には割り込み復帰処理のタイミングチャートが例示
される。割込み処理において、動作モードの変更はプロ
グラムカウンタPCの値などが退避された後であって割
込み処理ルーチンが開始される前に行われる。例えば図
16の構成では図23の時刻tiに制御信号35を介し
割込要因別モード設定レジスタ37の所定のビットの値
が転送されモード制御ビットが設定される。割込み復帰
処理において、動作モードの変更は、プログラムカウン
タPCの値等が復帰された後であって、元の処理ルーチ
ンが開始される前に行われる。例えば図16の構成では
図24の時刻tjに退避されていたイクステンドレジス
タEXRの値が復帰され、割込み処理実行前の元のモー
ドが再設定される。
【0106】《フロー制御》CPU2は、動的にプログ
ラムカウンタPCの値を変化させるフロー制御命令を命
令セットに持っている。フロー制御命令は例えば、Bc
c(Branch conditionally)命令、JMP(Jump)命令、
JSR(Jump to subroutine)命令、RTS(Return fr
om subroutine)命令等と称される命令である。
【0107】前記Bcc命令は、ある条件のもとに、指
定された数値をプログラムカウンタPCに加算し分岐す
る命令である。前記JMP命令及びJSR命令は、無条
件に、オペランドで指定した実行アドレス、または、指
定したレジスタの内容を実効アドレスとして分岐する命
令である。前記JSR命令は、実行時に、次の命令のア
ドレス(プログラムカウンタPCの値)をスタックエリ
アに退避する。ジャンプ先のサブルーチンの最後に、R
TS命令を実行することで、JSR命令実行時に退避し
た値をPCに再設定することで、もとのルーチンの続き
(JSR命令の次の実行アドレス)に復帰することがで
きる。退避処理を要するフロー制御命令を分岐命令と総
称し、復帰処理を指示する命令を復帰命令と総称する。
【0108】前記ノーマルモードでは、JSR命令およ
びRTS命令実行時のスタック/アンスタックのデータ
量は少なく、実行速度は、アドバンストモード/マキシ
マムモードに比べて速い。これは、アドバンストモード
(プログラム空間:16MB/アドレス24ビット)、
及びマキシマムモード(同:4GB/同32ビット)を
使用している場合、必要となるプログラムカウンタPC
のビット数は、それぞれ、24ビット、または32ビッ
トであるのに対し、ノーマルモード(プログラム空間:
64KB/アドレス16ビット)では、プログラムカウ
ンタPCは16ビットのみが有効だからからである(バ
ス幅を16ビットと仮定)。
【0109】前記したように、アドバンストモード/マ
キシマムモードにおいても、仮に、アドレスの上位がJ
SR、RTS命令実行の前後で同じであることが予め解
っているのであれば、当該アドレス上位の情報をスタッ
ク及びアンスタックする操作が不要となる。この観点よ
り、CPU2は、所要のプログラムで使用するサブルー
チンの存在するアドレスを一定の範囲内におき、特定動
作モードを指定することによって、スタック/アンスタ
ック(退避/復帰)する命令アドレスを短縮するように
する。
【0110】特定動作モード設定時にJSR/RST命
令実行時に退避/復帰するプログラムカウンタPCの値
を短縮する方式として、例えば、退避/復帰の対象をプ
ログラムカウンタPC値の下位の16ビットのみとす
る。ノーマルモードにおける退避/復帰の範囲と同じで
ある。このためには、17ビットから上位のプログラム
カウンタPCの内容(アドレス)で決まる64KB単位
のブロック内に、一連のプログラムが納まるようにすれ
ばよい。これにより、JSR/RTS命令実行時におけ
るプログラムカウンタPCの値の退避/復帰処理は、ア
ドバンストモード/マキシマムモードもノーマルモード
と同様になる。プログラムの配置は、プログラムエリア
内の17ビットから上位のアドレスで決まる64KB単
位のブロックのいずれでもよい。各64KBブロックの
境界を越える領域への分岐、及び復帰が必要な場合に
は、各命令の実行の直前に前記特定モードを解除すれば
よい。モードの切換えは、前述の通り、特定動作モード
の指定に応じて命令デコーダDECによる同一命令に対
する命令解釈を変更するようにして、対応すればよい。
そのような特定動作モードは前記モード端子MD0〜M
D2の状態やCPUCR22の設定状態に応じて設定/
解除すればよい。特定動作モードの設定/解除状態は当
然命令デコーダDECに与えられる。
【0111】図25には前記特定動作モード(分岐範囲
抑制モード)を設定しない場合の分岐範囲が例示され、
図26には前記分岐範囲抑制モードを設定した場合の分
岐範囲が例示される。
【0112】図27にはアドバンストモード/マキシマ
ムモードにおいて前記分岐範囲抑制モードを設定しない
場合の分岐命令実行時のタイミングチャートが示され
る。図28にはアドバンストモード/マキシマムモード
において前記分岐範囲抑制モードを設定しない場合にお
ける復帰命令実行時のタイミングチャートが示される。
双方のタイミングチャートに例示されるように、プログ
ラムカウンタPCのスタック及びアンスタックには夫々
バスアクセスサイクルを2サイクル要している。プログ
ラムカウンタPCのビット数が32ビットであり、バス
アクセスは16ビット単位で行われるからである(バス
幅を16ビットと仮定)。
【0113】図29にはアドバンストモード/マキシマ
ムモードにおいて前記分岐範囲抑制モードを設定した場
合の分岐命令実行時のタイミングチャートが示される。
図30にはアドバンストモード/マキシマムモードにお
いて前記分岐範囲抑制モードを設定した場合における復
帰命令実行時のタイミングチャートが示される。双方の
タイミングチャートに例示されるように、プログラムカ
ウンタPCのスタック及びアンスタックには夫々1サイ
クルのバスアクセスサイクルで済む。32ビットのプロ
グラムカウンタPCのスタック/アンスタック範囲を下
位側16ビットに限定しているからである。
【0114】尚、前記アドバンストモード/マキシマム
モードとミドルモードを動的に切換えたとき、命令デコ
ーダDECはミドルモードでは前記分岐範囲抑制モード
が設定されたとして復帰命令及び分岐命令を解釈してよ
い。
【0115】以上説明したデータプロセッサによれば以
下の作用及び効果を得ることができる。
【0116】〔1〕ミドルモードではデータ領域を限定
することにより命令長の短縮及び命令フェッチの高速
化、及び使用可能な汎用レジスタが実行的に増加するこ
とによるCPUの性能向上等を達成するが、アドバンス
トモードに比べてデータ領域が狭くなる。このとき、ア
ドバンストモード/マキシマムモードとミドルモードを
CPU2のリセット無しで動的に切換え可能であるか
ら、CPU2の持つ全アドレス空間の任意の領域にデー
タ領域を割付けて利用する事ができる。高速アクセスを
要するデータについてはミドルモードでアクセス可能な
領域に局在的に位置すればよい。動作モードをアドバン
ストモード/マキシマムモードに切換えればその他のデ
ータについてもアクセスできる。このように、アドバン
ストモード/マキシマムモードとミドルモードとをCP
U2の動作時に動的に切換えられる仕組みを設けること
で、結果として、広いデータ領域を使用した場合の使い
勝手を劣化させることなく、ミドルモードの利点を活か
すことが可能となる。従って、CPU2の命令セットに
追加/変更を行うことなく、CPU2が持つハードウェ
ア、及びその潜在的な処理能力を、従来以上に有効活用
することが可能となる。
【0117】〔2〕図20に例示されるように短縮形命
令でアクセス可能なデータ領域を変更することが可能で
あるから、システム設計の自由度が向上し、CPU2の
パフォーマンスを最大限に引き出すことができる。例え
ば、短縮形命令でアクセスできるアドレス空間に、内蔵
I/Oレジスタ、内蔵RAM、一部の外部アドレスを割
り付ける場合に、短縮形命令で固定となっている例えば
8ビットのアドレス範囲を考えた場合、短縮命令でアク
セス可能なデータ領域は絶対アドレス8ビット空間の2
56バイトと少ない。このとき、そのような8ビットア
ドレス空間の配置を拡張アドレス設定用レジスタ43な
ど対する設定値に従ってプログラマブルに変更可能であ
れば、短縮形命令でアクセスできる絶対アドレス8ビッ
ト空間を複数設定し、夫々に内蔵I/Oレジスタ、内蔵
RAM、一部の外部アドレスを割り付けることが可能に
なる。
【0118】上記より、短縮形命令でアクセスできるデ
ータ空間が実質的に増加する。これにより、短縮形に置
きかえることが可能なフルアドレス指定の命令コードの
割合、または、@aa:8で置きかえ可能な@aa:16
の割合が増加し、コード効率の更なる向上を図ることが
可能になると共に、CPU2のパフォーマンスを更に向
上させることができる。
【0119】〔3〕データ領域をプログラマブルに任意
指定できるようにすることで、短縮形命令でアクセスで
きるデータ空間、及びデータ容量に対する制限が実質的
になくなる。
【0120】〔4〕分岐範囲抑制モードのような特定動
作モードを設定することにより、JSR及びRSTの実
行時にスタックされるプログラムカウンタPCのデータ
量を削減することで、スタックメモリの使用量を削減す
るとともに、サブルーチン分岐/サブルーチンリターン
の高速化を図ることができる。そして、そのような特定
動作モードが動的に切換え可能であるから、プログラム
カウンタPCのフルアドレスに応じた広い範囲での分岐
/復帰機能を満たしつつ、CPU2の性能を向上させる
ことができる。
【0121】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0122】例えば、CPUの動作モードは上記説明の
動作モードに限定されず、それに応じて、CPUが管理
可能な最大アドレスビット数、データビット数等も適宜
変更可能である。CPUの汎用レジスタ構成も32ビッ
ト汎用レジスタを8本有する構成に限定されない。CP
Uが並列演算処理可能なデータビット数に応じて汎用レ
ジスタのビット数も変更可能である。データプロセッサ
が保有する周辺回路の種類、内部バスの構成等について
も適宜変更可能である。また、動的に設定される動作モ
ードに応じて付加される処理はシフト処理に限定され
ず、加算や減算などのその他の演算処理であってもよ
い。また、データプロセッサはマイクロコンピュータに
限定されない。システムオンチップの通信用LSI、画
像処理用LSI等にも適用することができる。
【0123】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野である、レジ
スタ間接アドレシングモードや短縮形アドレシングモー
ドを持つCPUを内蔵したデータプロセッサに適用した
場合について説明したが、本発明はそれに限定されず、
種々のデータプロセッサに適用することができる。
【0124】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0125】すなわち、動作モードの動的な切換えに応
じて同一命令に対する解釈を変更可能な命令制御部を採
用してデータプロセッサを構成するから、アドレス空間
に対するデータ領域の限定によるコード効率の向上と命
令フェッチの高速化を優先させる動作モードの選択状態
と、使用可能なデータ領域の制限を極力無くすという動
作モードの選択状態とを、動的に切換えることが可能に
なる。これにより、CPUの使い勝手を劣化させるこな
く、短縮型命令等による利点を活かす事ができる。
【0126】アクセスできるアドレス空間を限定し、フ
ルアドレスの指定を必要としない短縮形命令において、
アクセスできるアドレス空間を動的に切換えることによ
り、局在化されたデータを操作する処理プログラムに、
絶対アドレス等の短縮形を使用可能にして、コード効率
の短縮と、処理速度の向上を更に進めることができる。
【0127】動的に切換え可能な動作モードに従ってス
タック/アンスタックの情報量を変更することにより、
広い範囲での分岐処理を完全に閉ざすこと無く、データ
処理の高速化を実現することができる。
【図面の簡単な説明】
【図1】本発明に係るデータプロセッサが内蔵するCP
Uの詳細な一例を示すブロック図である。
【図2】本発明に係るデータプロセッサの一例であるシ
ングルチップマイクロコンピュータを示すブロック図で
ある。
【図3】CPUの汎用レジスタ及びコントロールレジス
タの構成例を示す説明図である。
【図4】汎用レジスタの使用形態を例示する説明図であ
る。
【図5】CPUの動作モードとアドレス空間を夫々例示
する説明図である。
【図6】絶対アドレスモードやレジスタ間接モードなど
のCPUのアドレシングモードを例示する説明図であ
る。
【図7】アドバンストモード又はマキシマムモードにお
けるレジスタ間接アドレシングモードによる実効アドレ
スの演算手法及びその時の汎用レジスタの利用形態を例
示する説明図である。
【図8】ミドルモードにおけるレジスタ間接アドレシン
グモードによる実効アドレスの演算手法及びその時の汎
用レジスタの利用形態を例示する説明図である。
【図9】アドバンストモード又はマキシマムモードにお
ける絶対アドレスのアドレシングモードによる実効アド
レスの演算手法を例示する説明図である。
【図10】ミドルモードにおける絶対アドレスのアドレ
シングモードによる実効アドレスの演算手法を例示する
説明図である。
【図11】ミドルモードとアドバンストモード/マキシ
マムモードとの切換えによるデータ領域の変化を例示す
る説明図である。
【図12】汎用レジスタの下位8ビットを用いる解釈を
採用するミドルモードにおけるレジスタ間接アドレシン
グモードによる実効アドレスの演算手法及びその時の汎
用レジスタの利用形態を例示する説明図である。
【図13】レジスタ間接アドレシングモードに対してミ
ドルモードで選択する更に別の命令解釈を例示する説明
図である。
【図14】レジスタ間接アドレシングモードに対して、
ミドルモードで選択する更に別の命令解釈として汎用レ
ジスタの8ビットデータを2ビット左シフト動作してデ
ィスプレースメントとの加算演算を行なう命令解釈を例
示する説明図である。
【図15】アドバンストモードが選択されたとき特定の
データ転送命令や演算命令に対してレジスタ間接で指定
される汎用レジスタの32ビットデータを2ビット左シ
フト動作してディスプレースメントとの加算演算を行な
う命令解釈を例示する説明図である。
【図16】動作モード切換えに着目したCPUの構成を
例示する説明図である。
【図17】アドバンストモード/マキシマムモードにお
いて汎用レジスタの内容又は拡張アドレス設定用レジス
タの設定値を拡張アドレスとして用いるアドレス拡張態
様を例示する説明図である。
【図18】ミドルモードにおいて汎用レジスタの内容又
は拡張アドレス設定用レジスタの設定値を拡張アドレス
として用いるアドレス拡張態様の一部を例示する説明図
である。
【図19】ミドルモードにおいて汎用レジスタの内容又
は拡張アドレス設定用レジスタの設定値を拡張アドレス
として用いるアドレス拡張態様のその他を例示する説明
図である。
【図20】汎用レジスタの内容又は拡張アドレス設定用
レジスタの設定値を拡張アドレスとして用いるアドレス
拡張によるデータ領域の変化を例示する説明図である。
【図21】拡張アドレス設定用レジスタを用いてデータ
空間切換えが可能にされたCPUを例示する説明図であ
る。
【図22】拡張アドレス設定用レジスタを用いてデータ
空間切換えが可能にされたCPUの別の構成を例示する
説明図である。
【図23】割込み処理を例示するタイミングチャートで
ある。
【図24】割り込み復帰処理を例示するタイミングチャ
ートである。
【図25】分岐範囲抑制モードを設定しない場合の分岐
範囲を例示するアドレスマップである。
【図26】分岐範囲抑制モードを設定した場合の分岐範
囲を例示するアドレスマップである。
【図27】アドバンストモード/マキシマムモードにお
いて前記分岐範囲抑制モードを設定しない場合の分岐命
令実行時のタイミングチャートである。
【図28】アドバンストモード/マキシマムモードにお
いて前記分岐範囲抑制モードを設定しない場合における
復帰命令実行時のタイミングチャートである。
【図29】アドバンストモード/マキシマムモードにお
いて前記分岐範囲抑制モードを設定した場合の分岐命令
実行時のタイミングチャートである。
【図30】アドバンストモード/マキシマムモードにお
いて前記分岐範囲抑制モードを設定した場合における復
帰命令実行時のタイミングチャートである。
【符号の説明】
1 マイクロコンピュータ 2 CPU 3 割込みコントローラ 4 ROM 5 RAM 22 コントロールレジスタ MD0〜MD2 モード端子 CONT 命令制御部 EXEC 実行部 DEC 命令デコーダ IR 命令レジスタ RESL レジスタセレクタ ER0〜ER7 汎用レジスタ PC プログラムカウンタ CCR コンディションコードレジスタ EXR エクステンドレジスタ AB アドレス出力バッファ IAB 内部アドレスバス IDB 内部データバス 33 モード制御レジスタ 36 割込み要因別モード制御回路 40 拡張アドレス選択レジスタ 43 拡張アドレス設定用レジスタ 45 拡張アドレス設定用レジスタ 46 割込み要因別拡張アドレス制御回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安田 元 北海道亀田郡七飯町字中島145番地 日立 北海セミコンダクタ株式会社内 (72)発明者 三ッ石 直幹 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 (72)発明者 石橋 謙一 北海道亀田郡七飯町字中島145番地 日立 北海セミコンダクタ株式会社内 Fターム(参考) 5B033 AA07 BA00 CA04 DA15 DA16 DD04 DD05 DE07 EA07 EA10

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 命令を実行可能なCPUと、前記CPU
    に接続するアドレスバスと、前記CPUに接続するデー
    タバスとを含み、前記CPUは動作モードに応じて同一
    命令に対する解釈を変更可能な命令制御部を含み、前記
    動作モードは前記CPUによるプログラムの実行結果に
    基づいて可変設定可能にされることを特徴とするデータ
    プロセッサ。
  2. 【請求項2】 前記CPUによりアクセス可能であって
    前記動作モードを決定するための制御データを保有する
    モード制御レジスタを有することを特徴とする請求項1
    記載のデータプロセッサ。
  3. 【請求項3】 命令を実行可能なCPUと、前記CPU
    に接続するアドレスバスと、前記CPUに接続するデー
    タバスとを含み、前記CPUは動作モードに応じて同一
    命令に対する解釈を変更可能な命令制御部と、前記動作
    モードを決定するための制御データを保有する内部制御
    レジスタとを含み、前記内部制御レジスタは、リセット
    指示の解除によりCPUが命令実行を開始した後で可変
    設定可能にされることを特徴とするデータプロセッサ。
  4. 【請求項4】 割込みコントローラを更に有し、前記割
    込みコントローラは、所定の割込み要因に応じて前記内
    部制御レジスタに対する制御データの設定変更を行なう
    ことを特徴とする請求項3記載のデータプロセッサ。
  5. 【請求項5】 前記命令制御部による前記同一命令に対
    する解釈の変更は、データ領域として利用可能なアドレ
    ス空間の配置に対する解釈の変更であることを特徴とす
    る請求項1又は3記載のデータプロセッサ。
  6. 【請求項6】 前記命令制御部による前記同一命令に対
    する解釈の変更は、データ領域として利用可能なアドレ
    ス空間のサイズに対する解釈の変更であることを特徴と
    する請求項1又は3記載のデータプロセッサ。
  7. 【請求項7】 前記命令制御部は、データ領域として利
    用可能なアドレス空間のサイズに対する解釈変更によ
    り、アドレスバスのビット数で表現されるアドレス空間
    よりも小さなアドレス空間を利用させるとき、前記アド
    レスバスに出力するアドレス信号の所定上位側ビットを
    所定値に固定させることを特徴とする請求項6記載のデ
    ータプロセッサ。
  8. 【請求項8】 前記所定値は、全ビット論理値“1”又
    は全ビット論理値“0”であることを特徴とする請求項
    7記載のデータプロセッサ。
  9. 【請求項9】 前記所定値は、前記CPUによる命実行
    で操作されるレジスタに設定された値であることを特徴
    とする請求項7記載のデータプロセッサ。
  10. 【請求項10】 前記CPUは前記アドレスバスに接続
    するアドレス出力バッファを含み、前記アドレス出力バ
    ッファが命令制御部からの指示に従って出力アドレス情
    報の所定上位側ビットを前記所定値に固定可能であるこ
    とを特徴とする請求項7記載のデータプロセッサ。
  11. 【請求項11】 前記命令制御部は、データ領域として
    利用可能なアドレス空間のサイズに対する解釈変更に応
    じて、汎用レジスタで利用するレジスタのレジスタ長を
    変更することを特徴とする請求項5記載のデータプロセ
    ッサ。
  12. 【請求項12】 前記同一命令に対する解釈の変更は、
    分岐においてスタックするプログラムアドレスのアドレ
    スビット数の変更であり、復帰においてアンスタックす
    るプログラムアドレスのアドレスビット数の変更である
    ことを特徴とする請求項1又は3記載のデータプロセッ
    サ。
  13. 【請求項13】 前記同一命令に対する解釈の変更は、
    データ転送命令又はデータ演算命令におけるシフト動作
    付加の有無であることを特徴とする請求項1又は3記載
    のデータプロセッサ。
  14. 【請求項14】 命令を解読して制御信号を生成する命
    令制御部と前記制御信号に基づいて命令を実行する実行
    部とを含むCPUと、前記CPUに接続するアドレスバ
    スと、前記CPUに接続するデータバスとを含むデータ
    プロセッサであって、前記CPUによる命令実行により
    操作可能なモードレジスタを有し、前記モードレジスタ
    に設定された第1の値は、前記命令制御部に、データ領
    域として第1容量のアドレス空間を利用可能な第1動作
    モードを指示し、前記モードレジスタに設定された第2
    の値は、前記命令制御部に、データ領域として前記第1
    容量よりも小さな第2容量のアドレス空間を利用可能な
    第2動作モードを指示することを特徴とするデータプロ
    セッサ。
  15. 【請求項15】 前記モードレジスタは前記第1動作モ
    ード及び第2動作モードの双方において前記CPUのア
    ドレス空間に配置されたレジスタであることを特徴とす
    る請求項14記載のデータプロセッサ。
  16. 【請求項16】 前記モードレジスタはCPUの内部に
    配置され、所定の割込み要因に応じて前記モードレジス
    タに対して値を設定可能な割込みコントローラを更に含
    むことを特徴とする請求項14記載のデータプロセッ
    サ。
  17. 【請求項17】 前記命令制御部は、アドレシングモー
    ドの解釈において、前記第1動作モードが指示されてい
    るときは汎用レジスタを第1容量のアドレス空間を指定
    するのに必要なビット数の第1レジスタ長で利用させ、
    前記第2動作モードが指示されているときは汎用レジス
    タを第2容量のアドレス空間を指定するのに必要なビッ
    ト数の第2レジスタ長で利用させることを特徴とする請
    求項14記載のデータプロセッサ。
JP2001362871A 2001-11-28 2001-11-28 データプロセッサ Withdrawn JP2003162411A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001362871A JP2003162411A (ja) 2001-11-28 2001-11-28 データプロセッサ
TW091134100A TW200300903A (en) 2001-11-28 2002-11-22 Data processor
US10/302,846 US20030101333A1 (en) 2001-11-28 2002-11-25 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001362871A JP2003162411A (ja) 2001-11-28 2001-11-28 データプロセッサ

Publications (1)

Publication Number Publication Date
JP2003162411A true JP2003162411A (ja) 2003-06-06

Family

ID=19173305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001362871A Withdrawn JP2003162411A (ja) 2001-11-28 2001-11-28 データプロセッサ

Country Status (3)

Country Link
US (1) US20030101333A1 (ja)
JP (1) JP2003162411A (ja)
TW (1) TW200300903A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266225A1 (en) * 2006-05-09 2007-11-15 Ko Tak K V Microcontroller unit
US10169044B2 (en) * 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680632A (en) * 1992-12-24 1997-10-21 Motorola, Inc. Method for providing an extensible register in the first and second data processing systems
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register

Also Published As

Publication number Publication date
TW200300903A (en) 2003-06-16
US20030101333A1 (en) 2003-05-29

Similar Documents

Publication Publication Date Title
JP2834837B2 (ja) プログラマブルコントローラ
US7478224B2 (en) Microprocessor access of operand stack as a register file using native instructions
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
EP0465248B1 (en) Pseudo-linear bank switching memory expansion
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JP2008516337A (ja) プロセッサ構成設定をオーバーライドする方法
US8789169B2 (en) Microcomputer having a protection function in a register
JPH03216776A (ja) 集積回路装置及びそれにより構成されたマイクロプロセッサ
WO1996008769A1 (en) Computer instruction prefetch system
US6253305B1 (en) Microprocessor for supporting reduction of program codes in size
JP2004086837A (ja) データ処理装置
KR100385493B1 (ko) 재구성가능한프로그램상태워드를갖는마이크로콘트롤러
JP2003162411A (ja) データプロセッサ
JP3786575B2 (ja) データ処理装置
WO2000075747A2 (en) Microcontroller virtual memory system and method
JP2004348327A (ja) デジタル信号処理装置及びデジタル信号処理方法
JP3760093B2 (ja) マイクロコンピュータ
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH09505428A (ja) ページアドレスモードを有するマイクロコントローラ
JP3097602B2 (ja) データ処理装置
JP3139310B2 (ja) ディジタル信号処理装置
JP3168845B2 (ja) ディジタル信号処理装置
JP2000105701A (ja) データ処理装置
JP3027984B2 (ja) シングルチップマイクロコンピュータ
JP3127737B2 (ja) ディジタル信号処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050201