JPH06150023A - マイクロコンピュータ及びマイクロコンピュータシステム - Google Patents
マイクロコンピュータ及びマイクロコンピュータシステムInfo
- Publication number
- JPH06150023A JPH06150023A JP4322598A JP32259892A JPH06150023A JP H06150023 A JPH06150023 A JP H06150023A JP 4322598 A JP4322598 A JP 4322598A JP 32259892 A JP32259892 A JP 32259892A JP H06150023 A JPH06150023 A JP H06150023A
- Authority
- JP
- Japan
- Prior art keywords
- state
- long
- address
- bit
- access
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/786—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Microcomputers (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【目的】 ダイナミックRAM及びスタティックRAM
などのメモリ並びにその他の周辺回路を直結できて使い
勝手の良好なマイクロコンピュータを提供することにあ
る。 【構成】 ダイナミックRAMを直結可能にするため
に、ダイナッミックRAMのためのストローブ信号出力
端子CASH*,CASL*,RAS*設け、更に、ス
タティックRAMやその他の周辺回路との直結のため
に、前記ストローブ信号出力端子からの出力に並行して
チップセレクト信号を出力可能なチップセレクト信号出
力端子CS0*〜CS6*を設ける。アドレス出力端子
は、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能とされ、マルチバス
方式のインタフェースに対応するために、選択的にアド
レス信号を出力可能なデータの入出力端子を採用する。
などのメモリ並びにその他の周辺回路を直結できて使い
勝手の良好なマイクロコンピュータを提供することにあ
る。 【構成】 ダイナミックRAMを直結可能にするため
に、ダイナッミックRAMのためのストローブ信号出力
端子CASH*,CASL*,RAS*設け、更に、ス
タティックRAMやその他の周辺回路との直結のため
に、前記ストローブ信号出力端子からの出力に並行して
チップセレクト信号を出力可能なチップセレクト信号出
力端子CS0*〜CS6*を設ける。アドレス出力端子
は、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能とされ、マルチバス
方式のインタフェースに対応するために、選択的にアド
レス信号を出力可能なデータの入出力端子を採用する。
Description
【0001】
【産業上の利用分野】本発明は、ダイナミックRAMを
直結可能なマイクロコンピュータに関するものである。
直結可能なマイクロコンピュータに関するものである。
【0002】
【従来の技術】ダイナミックRAMを直結可能なマイク
ロコンピュータについて記載された文献の例としては特
開昭61−127056号がある。これに記載されたマ
イクロコンピュータは、リフレッシュアドレスを発生す
るリフレッシュアドレスカウンタやRAS*,CAS*
のようなストローブ信号を形成するためのコントロール
信号形成回路、並びにダイナミックRAMに対するアク
セスかスタティックRAMに対するアクセスかを指定す
るレジスタを有し、このレジスタの設定内容に応じてア
ドレスの出力形式を変更できるようにされており、スタ
ティックRAMはもちろんダイナミックRAMをアクセ
スしたり、リフレッシュを行うことができる。更に、前
記レジスタに、使用するダイナミックRAMのアドレス
範囲や記憶容量すなわちアドレス信号のビット数を指定
できるようにして、使用するダイナミックRAMの記憶
容量や個数をある程度自由に変えられるような汎用性が
考慮されている。
ロコンピュータについて記載された文献の例としては特
開昭61−127056号がある。これに記載されたマ
イクロコンピュータは、リフレッシュアドレスを発生す
るリフレッシュアドレスカウンタやRAS*,CAS*
のようなストローブ信号を形成するためのコントロール
信号形成回路、並びにダイナミックRAMに対するアク
セスかスタティックRAMに対するアクセスかを指定す
るレジスタを有し、このレジスタの設定内容に応じてア
ドレスの出力形式を変更できるようにされており、スタ
ティックRAMはもちろんダイナミックRAMをアクセ
スしたり、リフレッシュを行うことができる。更に、前
記レジスタに、使用するダイナミックRAMのアドレス
範囲や記憶容量すなわちアドレス信号のビット数を指定
できるようにして、使用するダイナミックRAMの記憶
容量や個数をある程度自由に変えられるような汎用性が
考慮されている。
【0003】
【発明が解決しようとする課題】本発明者はそのような
ダイナミックRAMインタフェースを備えたマイクロコ
ンピュータについて検討した。これによれば、(1)D
RAMコントローラを内蔵し、セルフリフレッシュ機能
をサポートし、ユーザがDRAMコントローラの所定の
レジスタをセットすると、(2)あるシーケンスでRA
S*、CAS*が動き、DRAMのセルフリフレッシュ
・モードに入るようにすること、(3)DRAMのパリ
ティ・チェックができるようにすること、マルチバス方
式のインタフェースを設けることによって、SCSIコ
ントローラやハードディスク・コントローラ用LSIに
直結できこと、(4)更には、単に周辺機能を取り込む
だけでなく、アクセス時間45nsの高速ページ・モー
ドのDRAMを動作周波数16MHzの1クロックでア
クセスできるというようなDRAMを高速にアクセスで
きるようにすること、の必要性を見出した。
ダイナミックRAMインタフェースを備えたマイクロコ
ンピュータについて検討した。これによれば、(1)D
RAMコントローラを内蔵し、セルフリフレッシュ機能
をサポートし、ユーザがDRAMコントローラの所定の
レジスタをセットすると、(2)あるシーケンスでRA
S*、CAS*が動き、DRAMのセルフリフレッシュ
・モードに入るようにすること、(3)DRAMのパリ
ティ・チェックができるようにすること、マルチバス方
式のインタフェースを設けることによって、SCSIコ
ントローラやハードディスク・コントローラ用LSIに
直結できこと、(4)更には、単に周辺機能を取り込む
だけでなく、アクセス時間45nsの高速ページ・モー
ドのDRAMを動作周波数16MHzの1クロックでア
クセスできるというようなDRAMを高速にアクセスで
きるようにすること、の必要性を見出した。
【0004】本発明の目的は、ダイナミックRAM及び
スタティックRAMなどのメモリ並びにその他の周辺回
路を直結できて使い勝手の良好なマイクロコンピュータ
を提供することにある。本発明の別の目的はバッテリー
バックアップモードのようなシステムの低消費電力のた
めの動作モードに最適なダイナミックRAMリフレッシ
ュ動作をサポートできるマイクロコンピュータを提供す
ることにある。また、ダイナミックRAMのページモー
ドでの高速アクセスを実現可能なダイナミックRAMイ
ンタフェースを有するマイクロコンピュータを提供する
ことにある。更に本発明の別の目的は外部端子数の増大
を極力抑えて上記目的を達成できるマイクロコンピュー
タを提供することにある。
スタティックRAMなどのメモリ並びにその他の周辺回
路を直結できて使い勝手の良好なマイクロコンピュータ
を提供することにある。本発明の別の目的はバッテリー
バックアップモードのようなシステムの低消費電力のた
めの動作モードに最適なダイナミックRAMリフレッシ
ュ動作をサポートできるマイクロコンピュータを提供す
ることにある。また、ダイナミックRAMのページモー
ドでの高速アクセスを実現可能なダイナミックRAMイ
ンタフェースを有するマイクロコンピュータを提供する
ことにある。更に本発明の別の目的は外部端子数の増大
を極力抑えて上記目的を達成できるマイクロコンピュー
タを提供することにある。
【0005】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0006】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0007】(1)ダイナミックRAMを直結可能にす
るために、ダイナッミックRAMのためのストローブ信
号出力端子設け、更に、スタティックRAMやその他の
周辺回路との直結のために、前記ストローブ信号出力端
子からの出力に並行してチップセレクト信号を出力可能
なチップセレクト信号出力端子を設ける。アドレス出力
端子は、ノン・マルチプレクス或は必要に応じてマルチ
プレクスされたアドレス信号を出力可能とされ、マルチ
バス方式のインタフェースに対応するために、選択的に
アドレス信号を出力可能なデータの入出力端子を採用す
る。 (2)前記ストローブ信号出力端子から出力されるスト
ローブ信号にてダイナミックRAMに指示可能なリフレ
ッシュモードとして、カス・ビフォア・ラス・リフレッ
シュモードとセルフ・リフレッシュモードとの何れを選
択するかが指定される制御レジスタを採用する。 (3)高速ページモードのDRAMを例えば動作周波数
16MHzの1クロック単位で高速アクセスできるよう
にするために、前記ストローブ信号出力端子から出力さ
れるストローブ信号としてのカラム・アドレス・ストロ
ーブ信号のデューティー比を35%のような40%以下
の値にする。或はカラム・アドレス・ストローブ信号の
デューティー比を、40%以下と50%の何にするかを
指定できるようにする。 (4)出力データに対して生成されたパリティーデータ
の出力端子とパリティーデータの入力端子を備えて成る
ものであることを特徴とする請求項1乃至4の何れか1
項記載のマイクロコンピュータ。 (5)出力すべきデータに対して内蔵パリティー生成回
路で生成されたパリティーデータの出力端子と、外部か
ら与えられるパリティーデータを内蔵パリティーチェッ
ク回路に供給するためのパリティーデータ入力端子とを
設ける。 (6)管理可能なリニアアドレス空間をエリア毎にチッ
プセレクト信号を割当て可能な複数のエリアに分割し、
所定のエリアに対応されるチップセレクト信号を、前記
ダイナミックRAMのためのストローブ信号とマルチプ
レクスして出力するストローブ信号出力端子を採用す
る。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにする。
るために、ダイナッミックRAMのためのストローブ信
号出力端子設け、更に、スタティックRAMやその他の
周辺回路との直結のために、前記ストローブ信号出力端
子からの出力に並行してチップセレクト信号を出力可能
なチップセレクト信号出力端子を設ける。アドレス出力
端子は、ノン・マルチプレクス或は必要に応じてマルチ
プレクスされたアドレス信号を出力可能とされ、マルチ
バス方式のインタフェースに対応するために、選択的に
アドレス信号を出力可能なデータの入出力端子を採用す
る。 (2)前記ストローブ信号出力端子から出力されるスト
ローブ信号にてダイナミックRAMに指示可能なリフレ
ッシュモードとして、カス・ビフォア・ラス・リフレッ
シュモードとセルフ・リフレッシュモードとの何れを選
択するかが指定される制御レジスタを採用する。 (3)高速ページモードのDRAMを例えば動作周波数
16MHzの1クロック単位で高速アクセスできるよう
にするために、前記ストローブ信号出力端子から出力さ
れるストローブ信号としてのカラム・アドレス・ストロ
ーブ信号のデューティー比を35%のような40%以下
の値にする。或はカラム・アドレス・ストローブ信号の
デューティー比を、40%以下と50%の何にするかを
指定できるようにする。 (4)出力データに対して生成されたパリティーデータ
の出力端子とパリティーデータの入力端子を備えて成る
ものであることを特徴とする請求項1乃至4の何れか1
項記載のマイクロコンピュータ。 (5)出力すべきデータに対して内蔵パリティー生成回
路で生成されたパリティーデータの出力端子と、外部か
ら与えられるパリティーデータを内蔵パリティーチェッ
ク回路に供給するためのパリティーデータ入力端子とを
設ける。 (6)管理可能なリニアアドレス空間をエリア毎にチッ
プセレクト信号を割当て可能な複数のエリアに分割し、
所定のエリアに対応されるチップセレクト信号を、前記
ダイナミックRAMのためのストローブ信号とマルチプ
レクスして出力するストローブ信号出力端子を採用す
る。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにする。
【0008】
(1)上記した手段によれば、ダイナミックRAMのた
めのインタフェースと、スタティックRAMなどのメモ
リ並びにその他の周辺回路のためのインタフェースをマ
イクロコンピュータに採用することは、所要のシステム
構築に柔軟に対応可能にする。 (2)カス・ビフォア・ラス・リフレッシュモードに代
えて選択的にセルフ・リフレッシュモードを指定できる
ことは、バッテリーバックアップモードのようなシステ
ムの低消費電力のための動作モードに最適なダイナミッ
クRAMリフレッシュ動作をサポート可能に作用する。 (3)カラム・アドレス・ストローブ信号のデューティ
ー比を35%のような40%以下の値にすることは、ア
クセス時間45nsの高速ページモードをサポートする
ようなダイナミックRAMを、例えば動作周波数16M
Hzの1クロックサイクル単位でアクセスできるように
作用する。 (4)ダイナミックRAMのパリティーチェックができ
る機能を内蔵することは、ハード・ディスク・ドライブ
などに高信頼度が要求されるようなシステムへの対応を
容易化する。 (5)リニアアドレス空間を個々にチップセレクト信号
を割当て複数のエリアに分割し、所定のエリアに対応さ
れるチップセレクト信号を、前記ダイナミックRAMの
ためのストローブ信号とマルチプレクスして出力するこ
と、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能なアドレス信号出力
端子を採用すること、並びに、選択的にアドレス信号を
出力可能なデータの入出力端子を採用することは、外部
端子数の増大を極力抑えてマイクロコンピュータの上記
高機能化を実現する。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにすることは、一つのエ
リア中に任意数の8ビット/16ビットのメモリを混在
させて利用可能になる。
めのインタフェースと、スタティックRAMなどのメモ
リ並びにその他の周辺回路のためのインタフェースをマ
イクロコンピュータに採用することは、所要のシステム
構築に柔軟に対応可能にする。 (2)カス・ビフォア・ラス・リフレッシュモードに代
えて選択的にセルフ・リフレッシュモードを指定できる
ことは、バッテリーバックアップモードのようなシステ
ムの低消費電力のための動作モードに最適なダイナミッ
クRAMリフレッシュ動作をサポート可能に作用する。 (3)カラム・アドレス・ストローブ信号のデューティ
ー比を35%のような40%以下の値にすることは、ア
クセス時間45nsの高速ページモードをサポートする
ようなダイナミックRAMを、例えば動作周波数16M
Hzの1クロックサイクル単位でアクセスできるように
作用する。 (4)ダイナミックRAMのパリティーチェックができ
る機能を内蔵することは、ハード・ディスク・ドライブ
などに高信頼度が要求されるようなシステムへの対応を
容易化する。 (5)リニアアドレス空間を個々にチップセレクト信号
を割当て複数のエリアに分割し、所定のエリアに対応さ
れるチップセレクト信号を、前記ダイナミックRAMの
ためのストローブ信号とマルチプレクスして出力するこ
と、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能なアドレス信号出力
端子を採用すること、並びに、選択的にアドレス信号を
出力可能なデータの入出力端子を採用することは、外部
端子数の増大を極力抑えてマイクロコンピュータの上記
高機能化を実現する。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにすることは、一つのエ
リア中に任意数の8ビット/16ビットのメモリを混在
させて利用可能になる。
【0009】
【実施例】本発明の実施例説明の目次を下記に示す。以
下の実施例説明はその目次の順に説明される。 1.マイクロコンピュータの全体ブロック図 2.マイクロコンピュータの端子構成 3.マイクロコンピュータのチップレイアウト 4.バスステートコントローラ 5.外部アクセスバスステートマシン 6.バスコントローラの制御レジスタ 7.内部アクセスバスステートマシンの状態遷移図 8.外部アクセスバスステートマシンの状態遷移図 9.バスステートコントローラの動作 10.マイクロコンピュータシステム 11.外部アクセスのタイミングチャート 12.ストローブ生成のためのクロック生成(デューテ
ィー補正) 13.マイクロコンピュータのレジスタ並びにデータ構
成 14.マイクロコンピュータの命令説明
下の実施例説明はその目次の順に説明される。 1.マイクロコンピュータの全体ブロック図 2.マイクロコンピュータの端子構成 3.マイクロコンピュータのチップレイアウト 4.バスステートコントローラ 5.外部アクセスバスステートマシン 6.バスコントローラの制御レジスタ 7.内部アクセスバスステートマシンの状態遷移図 8.外部アクセスバスステートマシンの状態遷移図 9.バスステートコントローラの動作 10.マイクロコンピュータシステム 11.外部アクセスのタイミングチャート 12.ストローブ生成のためのクロック生成(デューテ
ィー補正) 13.マイクロコンピュータのレジスタ並びにデータ構
成 14.マイクロコンピュータの命令説明
【0010】<1.マイクロコンピュータの全体ブロッ
ク図>
ク図>
【0011】図1及び図2には本発明の一実施例に係る
マイクロコンピュータが半分づつに分割されて示され
る。同図に示されるマイクロコンピュータMCUは、中
央処理装置(CPU)1、CPU1の動作プログラム等
を保有するリード・オンリ・メモリ(ROM)2、CP
Uの作業領域若しくはデータの一時記憶領域とされるラ
ンダム・アクセス・メモリ(RAM)3、ダイレクト・
メモリ・アクセス・コントローラ(DMAC)4、及び
周辺回路を備え、それらが内部バス結合されて、単結晶
シリコンのような1個の半導体基板に形成されて成る。
特に制限されないが、前記周辺回路として、割込みコン
トローラ(INT)5、バスステートコントローラ6、
シリアルコミュニケーションインタフェース(SCI)
7、インテグレーテッドタイマパルスユニット(IT
U)8、タイミングパターンコントローラ9、A/Dコ
ンバータ10、ウォッチドッグタイマ(WDT)11、
そしてチップの外部とインタフェースされる入出力回路
として、端子機能が兼用されるポートA12、ポートB
13、ポートC14、並びにアドレス用ポート15,1
6、及びデータ・アドレス兼用ポート17が設けられて
いる。尚、図1において18はクロック発生回路であ
る。本実施例マイクロコンピュータにおける前記内部バ
スは、32ビットの内部データバスIDB0−31、2
4ビットの内部アドレスバスIAB0−23、内蔵周辺
回路用の周辺データバスPDB0−15、内蔵周辺回路
用の周辺アドレスバスPABなどがある。
マイクロコンピュータが半分づつに分割されて示され
る。同図に示されるマイクロコンピュータMCUは、中
央処理装置(CPU)1、CPU1の動作プログラム等
を保有するリード・オンリ・メモリ(ROM)2、CP
Uの作業領域若しくはデータの一時記憶領域とされるラ
ンダム・アクセス・メモリ(RAM)3、ダイレクト・
メモリ・アクセス・コントローラ(DMAC)4、及び
周辺回路を備え、それらが内部バス結合されて、単結晶
シリコンのような1個の半導体基板に形成されて成る。
特に制限されないが、前記周辺回路として、割込みコン
トローラ(INT)5、バスステートコントローラ6、
シリアルコミュニケーションインタフェース(SCI)
7、インテグレーテッドタイマパルスユニット(IT
U)8、タイミングパターンコントローラ9、A/Dコ
ンバータ10、ウォッチドッグタイマ(WDT)11、
そしてチップの外部とインタフェースされる入出力回路
として、端子機能が兼用されるポートA12、ポートB
13、ポートC14、並びにアドレス用ポート15,1
6、及びデータ・アドレス兼用ポート17が設けられて
いる。尚、図1において18はクロック発生回路であ
る。本実施例マイクロコンピュータにおける前記内部バ
スは、32ビットの内部データバスIDB0−31、2
4ビットの内部アドレスバスIAB0−23、内蔵周辺
回路用の周辺データバスPDB0−15、内蔵周辺回路
用の周辺アドレスバスPABなどがある。
【0012】<2.マイクロコンピュータの端子構成>
【0013】図3及び図4には上記マイクロコンピュー
タのチップをパッケージした状態における端子(リード
端子)の配列構成例が示される。同図に示される信号名
は図1及び図2に示される信号名に対応される。
タのチップをパッケージした状態における端子(リード
端子)の配列構成例が示される。同図に示される信号名
は図1及び図2に示される信号名に対応される。
【0014】ここで先ず図1乃至図4に示される信号若
しくは端子の主なものについて説明する。Vccはシス
テム電源(2.7〜5.5V)に接続され、Vssはシ
ステム電源(0V)に接続される電源端子、Vppは1
2.5VのようなプログラマブルROMのプログラム用
電源の入力端子である。EXTAL,XTALには水晶
発振子が接続され、外部クロックを入力する場合には端
子EXTALに入力される。CKは周辺デバイスに供給
すべきクロック信号の出力端子である。RES*(信号
若しくは端子の前に付された記号*はローイネーブルの
信号若しくはローイネーブル信号の端子であることを意
味するが、図面では記号*の代わりに当該信号若しくは
端子名の上にバー即ち横棒を付してあるものがある)は
リセット信号であり、後述する信号NMIがハイレベル
の時にローレベルにされるとパワーオンリセット状態に
なり、また、信号NMIがローレベルの時にローレベル
にされるとマニュアルリセット状態にされる。WDTO
VF*はウォッチドッグタイマのオーバーフロー信号、
BACK*はバス権を外部デバイスに開放したことを示
すバス権要求アクノレッジ信号、MD0〜MD3はモー
ド信号、NMI*はマスク不可能な割込み要求であるノ
ンマスカブル割り込みの入力端子、IRQ0*〜IRQ
7*は割込み要求入力端子、IRQOUT*は割込み要
求が発生したことを示すスレーブ時割込み要求出力であ
る。A21〜A0はアドレス入出力端子であり、バス権
獲得時はアドレスを出力し、バス権開放時はアドレスを
入力して内蔵RAMをアクセス可能にする。AD15〜
AD0は16ビットの双方向データ端子であり、アドレ
スの下位16ビットとマルチプレクス可能になってい
る。DPHは上位8ビットのデータに対応されるパリテ
ィーデータ、DPLは下位8ビットのデータに対応され
るパリティーデータである。WAIT*は外部アドレス
空間をアクセスするときにウェイトサイクルを挿入する
ウェイト信号、RAS*は外部のダイナミック・ランダ
ム・アクセス・メモリ(DRAM)のロウ・アドレス・
ストローブのタイミング信号(ロウ・アドレス・ストロ
ーブタイミング信号)、CASH*はDRAMに対して
データの上位8ビットをアクセスするときに活性化され
るDRAMの上位側カラム・アドレス・ストローブのタ
イミング信号(上位側カラム・アドレス・ストローブタ
イミング信号)、CASL*はDRAMに対してデータ
の下位8ビットをアクセスするときに活性化されるDR
AMの下位側カラム・アドレス・ストローブのタイミン
グ信号(下位側カラム・アドレス・ストローブタイミン
グ信号)である。RD*は外部リードを示すリード信
号、WRH*は外部の上位8ビットにライトすることを
示す上位側ライト信号、WRL*は外部の下位8ビット
にライトすることを示す下位側ライト信号、CS0〜C
S7は外部メモリ或は外部デバイスの溜めのチップセレ
クト信号である。AH*はアドレス/データのマルチプ
レクスバスを使用するデバイスに対するアドレスホール
ドタイミングを示すアドレスホールド信号、HBS*,
LBS*は上位バイトストローブ信号と下位バイトのス
トローブ信号である(WRH*,A0と兼用)。WR*
はライト時に出力されるライト信号であり、前記信号W
RL*と兼用される。
しくは端子の主なものについて説明する。Vccはシス
テム電源(2.7〜5.5V)に接続され、Vssはシ
ステム電源(0V)に接続される電源端子、Vppは1
2.5VのようなプログラマブルROMのプログラム用
電源の入力端子である。EXTAL,XTALには水晶
発振子が接続され、外部クロックを入力する場合には端
子EXTALに入力される。CKは周辺デバイスに供給
すべきクロック信号の出力端子である。RES*(信号
若しくは端子の前に付された記号*はローイネーブルの
信号若しくはローイネーブル信号の端子であることを意
味するが、図面では記号*の代わりに当該信号若しくは
端子名の上にバー即ち横棒を付してあるものがある)は
リセット信号であり、後述する信号NMIがハイレベル
の時にローレベルにされるとパワーオンリセット状態に
なり、また、信号NMIがローレベルの時にローレベル
にされるとマニュアルリセット状態にされる。WDTO
VF*はウォッチドッグタイマのオーバーフロー信号、
BACK*はバス権を外部デバイスに開放したことを示
すバス権要求アクノレッジ信号、MD0〜MD3はモー
ド信号、NMI*はマスク不可能な割込み要求であるノ
ンマスカブル割り込みの入力端子、IRQ0*〜IRQ
7*は割込み要求入力端子、IRQOUT*は割込み要
求が発生したことを示すスレーブ時割込み要求出力であ
る。A21〜A0はアドレス入出力端子であり、バス権
獲得時はアドレスを出力し、バス権開放時はアドレスを
入力して内蔵RAMをアクセス可能にする。AD15〜
AD0は16ビットの双方向データ端子であり、アドレ
スの下位16ビットとマルチプレクス可能になってい
る。DPHは上位8ビットのデータに対応されるパリテ
ィーデータ、DPLは下位8ビットのデータに対応され
るパリティーデータである。WAIT*は外部アドレス
空間をアクセスするときにウェイトサイクルを挿入する
ウェイト信号、RAS*は外部のダイナミック・ランダ
ム・アクセス・メモリ(DRAM)のロウ・アドレス・
ストローブのタイミング信号(ロウ・アドレス・ストロ
ーブタイミング信号)、CASH*はDRAMに対して
データの上位8ビットをアクセスするときに活性化され
るDRAMの上位側カラム・アドレス・ストローブのタ
イミング信号(上位側カラム・アドレス・ストローブタ
イミング信号)、CASL*はDRAMに対してデータ
の下位8ビットをアクセスするときに活性化されるDR
AMの下位側カラム・アドレス・ストローブのタイミン
グ信号(下位側カラム・アドレス・ストローブタイミン
グ信号)である。RD*は外部リードを示すリード信
号、WRH*は外部の上位8ビットにライトすることを
示す上位側ライト信号、WRL*は外部の下位8ビット
にライトすることを示す下位側ライト信号、CS0〜C
S7は外部メモリ或は外部デバイスの溜めのチップセレ
クト信号である。AH*はアドレス/データのマルチプ
レクスバスを使用するデバイスに対するアドレスホール
ドタイミングを示すアドレスホールド信号、HBS*,
LBS*は上位バイトストローブ信号と下位バイトのス
トローブ信号である(WRH*,A0と兼用)。WR*
はライト時に出力されるライト信号であり、前記信号W
RL*と兼用される。
【0015】<3.マイクロコンピュータのチップレイ
アウト>
アウト>
【0016】図5には本実施例マイクロコンピュータM
CUにおける主な内蔵回路モジュールのレイアウト図が
示される。同図において18は乗算回路(MULT)で
あり、図1及び図2には図示が省略されている。また、
図1ではROM2が示されているが、図5に示されるマ
イクロコンピュータMCUにおいては、当該ROM2の
領域はRAM3に割当てられている。マイクロコンピュ
ータMCUのチップの周縁部には多数のボンディングパ
ッドBPと、入力或は出力又は入出力用のバッファ回路
BUFFが夫々のボンディングパッドBPに対応して配
置され、その内側に前記ポート回路12〜17を構成す
るポート回路19が配置され、その中央部分にCPU1
等の回路モジュールがレイアウトされている。図5のレ
イアウトには以下の特徴点がある。 (a)A/Dコンバータ10がポート回路19の間に配
置されている。従って、A/Dコンバータ10の入力は
ボンディングパッドのような外部端子に近くなり、入力
アナログ信号波形の歪み若しくは鈍りを未然に防止する
ことができる。 (b)CPU1のチップ占有面積が小さい。本実施例に
従えば、CPU1はRISC(リデューストゥ・インス
トラクション・セット・コンピュータ)アーキテクチャ
ーを有する。例えば、マイクロコンピュータMCUのチ
ップ面積が10.4×10平方ミリメータであるのに対
して、CPU1のチップ占有面積は6.6平方ミリメー
タとされる。CPU1のチップ占有面積が可能な限り小
さければ、ASIC(アプリケーション・スペシフィッ
ク・インテグレーテッド・サーキッツ)形式でマイクロ
コンピュータの品種を展開する場合に選択可能な周辺回
路の搭載量を相対的にお臆することができる。 (c)乗算回路18がCPU1とは別の回路モジュール
として搭載されてる。ディジタル信号処理などが必要な
い用途に対してASICによる品種展開を容易に行うこ
とができる。 (d)RAM3のメモリマット間に当該RAM3とは直
接的に関係のない信号配線が通っている。例えばメモリ
マット間の領域3Aはポート回路に至る内部バスが配線
される。これにより配線の無駄な引き回しを少なくする
ことができる。 (e)RAMの4Kバイト分のチップ占有面積がEPR
OM64Kバイト分と実質的に同一とされ、その選択に
チップレイアウト的な制約を受けないように予め考慮さ
れている。 (f)インテグレーテッドタイマパルスユニット(IT
U)8において8ビット長レジスタ群と16ビット長レ
ジスタ群とは夫々各別にまとめてレイアウトされてい
る。例えば図5において、8ビット長レジスタ群8Aは
ITU8の左側の領域に配置され、16ビット長レジス
タ群8BはITU8の右側の領域に配置され、両者の間
にタイマの制御回路8Cが配置されている。従って、制
御回路8Cから双方のレジスタ群8A,8Bに対する制
御信号の配線を整然と且つ短く配置するのが容易にな
る。16ビット長レジスタと8ビット長レジスタとを混
在させてレイアウトした場合には制御信号の配線経路が
複雑になる虞がある。
CUにおける主な内蔵回路モジュールのレイアウト図が
示される。同図において18は乗算回路(MULT)で
あり、図1及び図2には図示が省略されている。また、
図1ではROM2が示されているが、図5に示されるマ
イクロコンピュータMCUにおいては、当該ROM2の
領域はRAM3に割当てられている。マイクロコンピュ
ータMCUのチップの周縁部には多数のボンディングパ
ッドBPと、入力或は出力又は入出力用のバッファ回路
BUFFが夫々のボンディングパッドBPに対応して配
置され、その内側に前記ポート回路12〜17を構成す
るポート回路19が配置され、その中央部分にCPU1
等の回路モジュールがレイアウトされている。図5のレ
イアウトには以下の特徴点がある。 (a)A/Dコンバータ10がポート回路19の間に配
置されている。従って、A/Dコンバータ10の入力は
ボンディングパッドのような外部端子に近くなり、入力
アナログ信号波形の歪み若しくは鈍りを未然に防止する
ことができる。 (b)CPU1のチップ占有面積が小さい。本実施例に
従えば、CPU1はRISC(リデューストゥ・インス
トラクション・セット・コンピュータ)アーキテクチャ
ーを有する。例えば、マイクロコンピュータMCUのチ
ップ面積が10.4×10平方ミリメータであるのに対
して、CPU1のチップ占有面積は6.6平方ミリメー
タとされる。CPU1のチップ占有面積が可能な限り小
さければ、ASIC(アプリケーション・スペシフィッ
ク・インテグレーテッド・サーキッツ)形式でマイクロ
コンピュータの品種を展開する場合に選択可能な周辺回
路の搭載量を相対的にお臆することができる。 (c)乗算回路18がCPU1とは別の回路モジュール
として搭載されてる。ディジタル信号処理などが必要な
い用途に対してASICによる品種展開を容易に行うこ
とができる。 (d)RAM3のメモリマット間に当該RAM3とは直
接的に関係のない信号配線が通っている。例えばメモリ
マット間の領域3Aはポート回路に至る内部バスが配線
される。これにより配線の無駄な引き回しを少なくする
ことができる。 (e)RAMの4Kバイト分のチップ占有面積がEPR
OM64Kバイト分と実質的に同一とされ、その選択に
チップレイアウト的な制約を受けないように予め考慮さ
れている。 (f)インテグレーテッドタイマパルスユニット(IT
U)8において8ビット長レジスタ群と16ビット長レ
ジスタ群とは夫々各別にまとめてレイアウトされてい
る。例えば図5において、8ビット長レジスタ群8Aは
ITU8の左側の領域に配置され、16ビット長レジス
タ群8BはITU8の右側の領域に配置され、両者の間
にタイマの制御回路8Cが配置されている。従って、制
御回路8Cから双方のレジスタ群8A,8Bに対する制
御信号の配線を整然と且つ短く配置するのが容易にな
る。16ビット長レジスタと8ビット長レジスタとを混
在させてレイアウトした場合には制御信号の配線経路が
複雑になる虞がある。
【0017】<4.バスステートコントローラ>
【0018】図6には本実施例マイクロコンピュータに
おけるバスステートコントローラ6を中心としたブロッ
ク図が示される。
おけるバスステートコントローラ6を中心としたブロッ
ク図が示される。
【0019】図6においてIDB0−31は32ビット
の内部データバス、IAB0−23は24ビットの内部
アドレスバス、BCMD0−3は4ビットのバス制御コ
マンドバスである。PDB0−15は周辺アクセス用の
データバス、すなわち16ビットのI/O(周辺回路)
用バスである。PABは周辺アクセス用のアドレスバス
である、PDB,PABは周辺回路アクセス用データバ
ス,アドレスバスを制御するための制御信号であり、I
/Oアクセス制御信号は周辺回路をアクセスするために
各周辺に送られる信号である。ROM/RAMアクセス
制御信号はオンチップに搭載されたメモリであるROM
2,RAM3をアクセスするための制御信号である。端
子ウエイト信号は、メモリウェイトステート数を外部端
子で制御できる。このために使用する信号が内部への引
き込まれる。外部データ/アドレス制御信号は、外部デ
ータバスを制御する信号である。外部マルチプレックス
I/Oをアクセスする際には、データバス上にアドレス
が載る場合があるのでこの名前が付いている。ストロー
ブ制御信号は、メモリアクセス、I/Oアクセスに要す
る制御信号を生成するために必要な制御信号を伝える信
号である。Hit/Miss信号はDRAMの後記高速
ページモードがヒットしたか、ミスしたかを伝える信号
である。リフレッシュ要求信号は、リフレッシュカウン
タからリフレッシュをするタイミングを伝えるための信
号である。RST信号はリセット状態か通常状態かを示
す信号である。RSTMP信号はRST信号がアサート
された場合にマニュアルリセットかパワーオンリセット
かを示す信号である。
の内部データバス、IAB0−23は24ビットの内部
アドレスバス、BCMD0−3は4ビットのバス制御コ
マンドバスである。PDB0−15は周辺アクセス用の
データバス、すなわち16ビットのI/O(周辺回路)
用バスである。PABは周辺アクセス用のアドレスバス
である、PDB,PABは周辺回路アクセス用データバ
ス,アドレスバスを制御するための制御信号であり、I
/Oアクセス制御信号は周辺回路をアクセスするために
各周辺に送られる信号である。ROM/RAMアクセス
制御信号はオンチップに搭載されたメモリであるROM
2,RAM3をアクセスするための制御信号である。端
子ウエイト信号は、メモリウェイトステート数を外部端
子で制御できる。このために使用する信号が内部への引
き込まれる。外部データ/アドレス制御信号は、外部デ
ータバスを制御する信号である。外部マルチプレックス
I/Oをアクセスする際には、データバス上にアドレス
が載る場合があるのでこの名前が付いている。ストロー
ブ制御信号は、メモリアクセス、I/Oアクセスに要す
る制御信号を生成するために必要な制御信号を伝える信
号である。Hit/Miss信号はDRAMの後記高速
ページモードがヒットしたか、ミスしたかを伝える信号
である。リフレッシュ要求信号は、リフレッシュカウン
タからリフレッシュをするタイミングを伝えるための信
号である。RST信号はリセット状態か通常状態かを示
す信号である。RSTMP信号はRST信号がアサート
された場合にマニュアルリセットかパワーオンリセット
かを示す信号である。
【0020】CPU1は、プログラムや割込要求に呼応
して、自律的に動作してメモリアクセス要求を出すバス
マスタとして位置付けられる。24ビットのアドレスバ
ス(出力)と32ビットのデータバス(入出力)の他に
4ビットのバス制御コマンドバスBCMD0−3(出
力)を備える。またバスステートコントローラ6からバ
ス転送終了同期信号BUSRDY信号を受取ったときは
待ちステートに入る。DMAC4は、DMA要求に呼応
して、自律的に動作してメモリアクセス要求を出すバス
マスタとされる。24ビットのアドレスバス(出力)と
16ビットのデータバス(入出力)の他に4ビットのバ
スコマンドバス(出力)を備える。またバスステートマ
シン602又は603からオアゲート604を介してバ
ス転送終了同期信号BUSRDY信号を受取って待ちス
テートに入る。
して、自律的に動作してメモリアクセス要求を出すバス
マスタとして位置付けられる。24ビットのアドレスバ
ス(出力)と32ビットのデータバス(入出力)の他に
4ビットのバス制御コマンドバスBCMD0−3(出
力)を備える。またバスステートコントローラ6からバ
ス転送終了同期信号BUSRDY信号を受取ったときは
待ちステートに入る。DMAC4は、DMA要求に呼応
して、自律的に動作してメモリアクセス要求を出すバス
マスタとされる。24ビットのアドレスバス(出力)と
16ビットのデータバス(入出力)の他に4ビットのバ
スコマンドバス(出力)を備える。またバスステートマ
シン602又は603からオアゲート604を介してバ
ス転送終了同期信号BUSRDY信号を受取って待ちス
テートに入る。
【0021】図6においてバスステートコントローラ6
は、特に制限されないがラッチ600、ローアドレスコ
ンパレータ(RACMP)601、外部アクセスバスス
テートマシン602、内部アクセスバスステートマシン
603、オアゲート604、ラッチ605、下位ビット
変換器606、ラッチ607、及びアライナ608を有
する。内部アクセスバスステートマシン603は、チッ
プ内部のメモリやI/O(内蔵メモリ以外の周辺回路を
総称する)をアクセスする際に制御を司る信号を生成す
るステートマシンであり、6個のステートを持ち、10
個の状態遷移から成る。外部アクセスバスステートマシ
ン602は、チップ外部のメモリやI/Oをアクセスす
る際に制御を司る信号を生成するステートマシンであ
り、DRAMステートマシン、バスサイズアービトレー
ションステートマシン、外部ウェイト生成ステートマシ
ン、通常空間アクセスステートマシン、通常空間アクセ
スサブステートフラッグ、I/OMUXアクセスステー
トマシンから成り、これらの状態が絡みあって動作する
ようになっている。ステートマシンにおける各ステート
並びに状態遷移については後で説明する。また、バスス
テートコントローラ6の制御動作の基本態様は前記バス
制御コマンドバスBCMD0−3のI/Oリクエストコ
マンドに基づいて決定される。図22にはI/Oリクエ
ストコマンドの割り付け例が示される。
は、特に制限されないがラッチ600、ローアドレスコ
ンパレータ(RACMP)601、外部アクセスバスス
テートマシン602、内部アクセスバスステートマシン
603、オアゲート604、ラッチ605、下位ビット
変換器606、ラッチ607、及びアライナ608を有
する。内部アクセスバスステートマシン603は、チッ
プ内部のメモリやI/O(内蔵メモリ以外の周辺回路を
総称する)をアクセスする際に制御を司る信号を生成す
るステートマシンであり、6個のステートを持ち、10
個の状態遷移から成る。外部アクセスバスステートマシ
ン602は、チップ外部のメモリやI/Oをアクセスす
る際に制御を司る信号を生成するステートマシンであ
り、DRAMステートマシン、バスサイズアービトレー
ションステートマシン、外部ウェイト生成ステートマシ
ン、通常空間アクセスステートマシン、通常空間アクセ
スサブステートフラッグ、I/OMUXアクセスステー
トマシンから成り、これらの状態が絡みあって動作する
ようになっている。ステートマシンにおける各ステート
並びに状態遷移については後で説明する。また、バスス
テートコントローラ6の制御動作の基本態様は前記バス
制御コマンドバスBCMD0−3のI/Oリクエストコ
マンドに基づいて決定される。図22にはI/Oリクエ
ストコマンドの割り付け例が示される。
【0022】前記ローアドレスコンパレータ601は、
外部のDRAMをアクセスする際に前回DRAMをアク
セスした時と同じRow番地(ローアドレス)に属する番
地をアクセスしたかを判定するためのメモリ番地の比較
論理である。この比較結果に基づき高速ページモードで
DRAMをアクセスするかフルアクセスを行なうかが外
部アクセスバスステートマシン602によって決定され
る。ここで、前記フルアクセスとは、プリチャージ、Ro
w番地(ローアドレス)の出力、Column番地(カラムア
ドレス)の出力を次々と行なうものである。高速ページ
モードとはRAS*をアサートしたまま絡むアドレス信
号とCAS*(CASL*,CASH*)を連続的に変
化させて行われるDRAMアクセスである。前回DRA
Mをアクセスした時のローアドレスは前記ラッチ600
に保持されており、ローアドレスコンパレータ601
は、当該ラッチ600の保持アドレスと内部アドレスバ
スIAB0−23に載っている内部アドレスを比較す
る。
外部のDRAMをアクセスする際に前回DRAMをアク
セスした時と同じRow番地(ローアドレス)に属する番
地をアクセスしたかを判定するためのメモリ番地の比較
論理である。この比較結果に基づき高速ページモードで
DRAMをアクセスするかフルアクセスを行なうかが外
部アクセスバスステートマシン602によって決定され
る。ここで、前記フルアクセスとは、プリチャージ、Ro
w番地(ローアドレス)の出力、Column番地(カラムア
ドレス)の出力を次々と行なうものである。高速ページ
モードとはRAS*をアサートしたまま絡むアドレス信
号とCAS*(CASL*,CASH*)を連続的に変
化させて行われるDRAMアクセスである。前回DRA
Mをアクセスした時のローアドレスは前記ラッチ600
に保持されており、ローアドレスコンパレータ601
は、当該ラッチ600の保持アドレスと内部アドレスバ
スIAB0−23に載っている内部アドレスを比較す
る。
【0023】前記アライナ608は内部データバスID
Bからの内蔵メモリなどへの書込みのためのデータアラ
イメントを行なうものである。このアライナ608の入
力に出力が接続されたデータラッチ607は16ビット
ないしは32ビット単位でCPU1から送られてきたラ
イトデータをここで一回受けて、8ビットないしは16
ビット単位で内蔵周辺回路に書込む機能を実現する。前
記ラッチ605は内部アドレスバスIAB0−23の動
作と周辺アドレスバスPABのバス動作との間に時間差
が有る場合にアドレスを溜めておくスタチック型のアド
レスラッチ機能を実現する回路である。下位ビット変換
器606は、32ビットオペランドを16ビット空間で
アクセスする場合、16ビット、32ビットオペランド
を8ビット空間でアクセスする場合に、CPU1は1回
しかアドレスを生成しないので、各々のワードまたはバ
イトアクセスに応じた下位アドレスを生成する論理であ
る。
Bからの内蔵メモリなどへの書込みのためのデータアラ
イメントを行なうものである。このアライナ608の入
力に出力が接続されたデータラッチ607は16ビット
ないしは32ビット単位でCPU1から送られてきたラ
イトデータをここで一回受けて、8ビットないしは16
ビット単位で内蔵周辺回路に書込む機能を実現する。前
記ラッチ605は内部アドレスバスIAB0−23の動
作と周辺アドレスバスPABのバス動作との間に時間差
が有る場合にアドレスを溜めておくスタチック型のアド
レスラッチ機能を実現する回路である。下位ビット変換
器606は、32ビットオペランドを16ビット空間で
アクセスする場合、16ビット、32ビットオペランド
を8ビット空間でアクセスする場合に、CPU1は1回
しかアドレスを生成しないので、各々のワードまたはバ
イトアクセスに応じた下位アドレスを生成する論理であ
る。
【0024】図6に示されるリフレッシュカウンタ20
は、DRAMのリフレッシュを行なうタイミングを生成
するインターバルタイマであり、その内蔵レジスタの設
定状態に応じてインターバルを変化させることができ
る。前記I/Oは、前述の通り内蔵メモリを除く内蔵の
周辺機能を持った回路モジュールを指し、具体的には割
込コントローラ、バスステートコントローラ、シリアル
コミュニケーションインタフェース、ビットインテグレ
ーテッドタイマパルスユニット、ウオッチドッグタイ
マ、A/Dコンバータ、タイミングパタンコントロー
ラ、ポート制御などとされる。
は、DRAMのリフレッシュを行なうタイミングを生成
するインターバルタイマであり、その内蔵レジスタの設
定状態に応じてインターバルを変化させることができ
る。前記I/Oは、前述の通り内蔵メモリを除く内蔵の
周辺機能を持った回路モジュールを指し、具体的には割
込コントローラ、バスステートコントローラ、シリアル
コミュニケーションインタフェース、ビットインテグレ
ーテッドタイマパルスユニット、ウオッチドッグタイ
マ、A/Dコンバータ、タイミングパタンコントロー
ラ、ポート制御などとされる。
【0025】図6において21はパリティ生成並びにパ
リティチェック論理であり、メモリデータのパリティの
生成並びにパリティエラーの検出を行う論理ブロックで
ある。アライナ22は、8ビットの外部メモリ,16ビ
ットの外部メモリから8,16,32ビットのオペランド
を読み出すためのオペランドアライメントを行なうもの
である。データラッチ23は、8ビットまたは16ビッ
ト単位で読み出したデータを一つにまとめて16ビット
又は32ビットオペランドとしてCPU1に与えるため
のものである。したがってこれらのラッチはスタティッ
クラッチによるスタティック構成が採用されている。例
えば32ビット1ワードのスタティック構成とされる。
また、アライナ25は8ビットの外部メモリ、16ビッ
トの外部メモリに対して8,16,32ビットのオペラン
ドを書込むためのオペランドアライメントを行なうもの
である。このアライナ25の入力に出力が接続されたデ
ータラッチ26は16ビットないしは32ビット単位で
CPU1から送られてきたライトデータをここで一回受
けて、8ビットないしは16ビットで外部に書込む機能
を実現する。前記アライナ23の出力は内部データバス
IDB0−31の上位側16ビットに結合され、前記デ
ータラッチ26の入力は内部データバスIDB0−31
の下位側16ビットに結合される。アドレスラッチ27
及び下位ビット変換器28は内部アドレスバスIAB0
−23上のアドレス情報の出力に利用される。前記アラ
イナ25のデータ出力と下位ビット変換器28のアドレ
ス出力はマルチプレクサ29を介して端子AD0〜AD
15に与えられる。
リティチェック論理であり、メモリデータのパリティの
生成並びにパリティエラーの検出を行う論理ブロックで
ある。アライナ22は、8ビットの外部メモリ,16ビ
ットの外部メモリから8,16,32ビットのオペランド
を読み出すためのオペランドアライメントを行なうもの
である。データラッチ23は、8ビットまたは16ビッ
ト単位で読み出したデータを一つにまとめて16ビット
又は32ビットオペランドとしてCPU1に与えるため
のものである。したがってこれらのラッチはスタティッ
クラッチによるスタティック構成が採用されている。例
えば32ビット1ワードのスタティック構成とされる。
また、アライナ25は8ビットの外部メモリ、16ビッ
トの外部メモリに対して8,16,32ビットのオペラン
ドを書込むためのオペランドアライメントを行なうもの
である。このアライナ25の入力に出力が接続されたデ
ータラッチ26は16ビットないしは32ビット単位で
CPU1から送られてきたライトデータをここで一回受
けて、8ビットないしは16ビットで外部に書込む機能
を実現する。前記アライナ23の出力は内部データバス
IDB0−31の上位側16ビットに結合され、前記デ
ータラッチ26の入力は内部データバスIDB0−31
の下位側16ビットに結合される。アドレスラッチ27
及び下位ビット変換器28は内部アドレスバスIAB0
−23上のアドレス情報の出力に利用される。前記アラ
イナ25のデータ出力と下位ビット変換器28のアドレ
ス出力はマルチプレクサ29を介して端子AD0〜AD
15に与えられる。
【0026】各種ストローブ信号を生成するためにスト
ローブ生成論理30が設けられている。このストローブ
生成論理340は、外部に接続するDRAM,ROM,
スタティックRAM(SRAM)などの周辺回路に対し
て出力する様々なストローブ信号を前記ストローブ制御
信号に基づいて生成する。ポート機能部31は、外部メ
モリ並びにその他周辺回路接続用のストローブとポート
機能をマルチプレクスするためのポート用の論理が設け
られている。
ローブ生成論理30が設けられている。このストローブ
生成論理340は、外部に接続するDRAM,ROM,
スタティックRAM(SRAM)などの周辺回路に対し
て出力する様々なストローブ信号を前記ストローブ制御
信号に基づいて生成する。ポート機能部31は、外部メ
モリ並びにその他周辺回路接続用のストローブとポート
機能をマルチプレクスするためのポート用の論理が設け
られている。
【0027】内部アドレスバスIAB0−23に接続さ
れるロー/カラムアドレスセレクタ32は、外部DRA
Mをアクセスする際のローアドレスとカラムアドレスの
切替を行なう機能を実現するための論理である。アドレ
スラッチ33は、ワープモード時のライトバッファ、シ
ングルサイクルDMA、DRAMライトなど、内部バス
動作と外部バス動作の間に時間差が有る場合にアドレス
を溜めておくスタチックラッチ機能を実現する回路であ
る。下位ビット変換器34は、32ビットオペランドを
16ビット空間でアクセスする場合、16ビット、32
ビットオペランドを8ビット空間でアクセスする場合
に、CPU1は1回しかアドレスを生成しないので、各
々のワードまたはバイトアクセスに応じた下位アドレス
を生成する論理である。上記ロー/カラム−アドレスセ
レクタ32,アドレスラッチ33,及び下位ビット変換
器34などは外部アクセスバスステートマシン602か
ら出力される外部アドレス制御信号で制御される。リセ
ット生成論理35は、外部端子の状態からRST信号と
RSTMP信号を生成してチップ全体をリセットする論
理である。図6において当該信号RST,RSTMPは
外部アクセスバスステートマシン602にのみ供給され
るように図示されているがそれに限定されるものではな
い。
れるロー/カラムアドレスセレクタ32は、外部DRA
Mをアクセスする際のローアドレスとカラムアドレスの
切替を行なう機能を実現するための論理である。アドレ
スラッチ33は、ワープモード時のライトバッファ、シ
ングルサイクルDMA、DRAMライトなど、内部バス
動作と外部バス動作の間に時間差が有る場合にアドレス
を溜めておくスタチックラッチ機能を実現する回路であ
る。下位ビット変換器34は、32ビットオペランドを
16ビット空間でアクセスする場合、16ビット、32
ビットオペランドを8ビット空間でアクセスする場合
に、CPU1は1回しかアドレスを生成しないので、各
々のワードまたはバイトアクセスに応じた下位アドレス
を生成する論理である。上記ロー/カラム−アドレスセ
レクタ32,アドレスラッチ33,及び下位ビット変換
器34などは外部アクセスバスステートマシン602か
ら出力される外部アドレス制御信号で制御される。リセ
ット生成論理35は、外部端子の状態からRST信号と
RSTMP信号を生成してチップ全体をリセットする論
理である。図6において当該信号RST,RSTMPは
外部アクセスバスステートマシン602にのみ供給され
るように図示されているがそれに限定されるものではな
い。
【0028】<5.外部アクセスバスステートマシン>
【0029】図7には外部アクセスバスステートマシン
602を中心としたバスステートコントローラ6の更に
詳細な一例ブロック図が示される。この図面を参照しな
がらバスステートコントローラ6を更に詳述する。
602を中心としたバスステートコントローラ6の更に
詳細な一例ブロック図が示される。この図面を参照しな
がらバスステートコントローラ6を更に詳述する。
【0030】図7においてバスステートコントローラ6
は、デコーダ603、デコーダの出力などを受けるラッ
チ604、制御レジスタBCR,WCR1,WCR2,
WCR3,DCR,PCR、組合せ論理605,60
6、及びステートラッチ607,608などを備える。
前記デコーダ603は、BCMD0−3からのI/Oバ
スコマンド及びアドレス信号の所定ビットをデコードし
て外部バスアクセスの制御に必要な基本的な情報を取得
する。例えば、後述するエリア分割されたどのエリアが
アクセス対象とされるか、I/Oコマンドの解読結果、
及びローアドレスコンパレータ601の比較結果に応ず
るHit/Miss信号の状態とされる。その結果はラ
ッチ604に保持される。前記制御レジスタBCR,W
CR1,WCR2,WCR3,DCR,PCRは、後述
するようにバスステートコントローラの各種機能設定の
ための制御ビットを有し、CPU1によって任意に設定
可能にされる。組合せ論理606,606及びステート
ラッチ607,608は前記ラッチ604に保持された
情報、前記制御レジスタBCR,WCR1,WCR2,
WCR3,DCR,PCRの設定値、リフレッシュカウ
ンタ20の出力、及び端子ウェイトの状態などを入力し
て、外部アクセスのためのストローブ信号生成のための
各種制御信号を生成する。本実施例に従えば、それら制
御信号は後述する状態(ステート)の遷移に従って形成
され、例えば組合せ論理は2段とされ、前段の組合せ論
理の出力によって得られるステートを所定のタイミング
に同期して(ノン・オーバラップ2相クロック信号CK
1,CK2に同期するタイミング)ステートラッチ60
7,608にラッチしながら帰還できるようになってい
る。斯るバスコントローラ6の各機能の詳細を以下に続
けて説明する。
は、デコーダ603、デコーダの出力などを受けるラッ
チ604、制御レジスタBCR,WCR1,WCR2,
WCR3,DCR,PCR、組合せ論理605,60
6、及びステートラッチ607,608などを備える。
前記デコーダ603は、BCMD0−3からのI/Oバ
スコマンド及びアドレス信号の所定ビットをデコードし
て外部バスアクセスの制御に必要な基本的な情報を取得
する。例えば、後述するエリア分割されたどのエリアが
アクセス対象とされるか、I/Oコマンドの解読結果、
及びローアドレスコンパレータ601の比較結果に応ず
るHit/Miss信号の状態とされる。その結果はラ
ッチ604に保持される。前記制御レジスタBCR,W
CR1,WCR2,WCR3,DCR,PCRは、後述
するようにバスステートコントローラの各種機能設定の
ための制御ビットを有し、CPU1によって任意に設定
可能にされる。組合せ論理606,606及びステート
ラッチ607,608は前記ラッチ604に保持された
情報、前記制御レジスタBCR,WCR1,WCR2,
WCR3,DCR,PCRの設定値、リフレッシュカウ
ンタ20の出力、及び端子ウェイトの状態などを入力し
て、外部アクセスのためのストローブ信号生成のための
各種制御信号を生成する。本実施例に従えば、それら制
御信号は後述する状態(ステート)の遷移に従って形成
され、例えば組合せ論理は2段とされ、前段の組合せ論
理の出力によって得られるステートを所定のタイミング
に同期して(ノン・オーバラップ2相クロック信号CK
1,CK2に同期するタイミング)ステートラッチ60
7,608にラッチしながら帰還できるようになってい
る。斯るバスコントローラ6の各機能の詳細を以下に続
けて説明する。
【0031】本実施例のマイクロコンピュータMCUに
搭載されるバスステートコントローラ6は概略的には以
下の特徴を有する。 (1)4MBのリニア空間を8個(8エリア)サポート
できる。ただし、DRAMの空間は16MBとされる。 (2)オンチップメモリを32ビット幅で1ステートア
クセスできる。 (3)エリア毎に、1本のチップセレクト信号とそのエ
リアの種類に応じた、最適なメモリインターフェース信
号を出力し、グルー論理無しでDRAM,SRAM,周
辺チップに直結可能である。 (4)DRAM直結インタフェースを有し、高速転送を
サポートすると共に、効率良いリフレッシュ制御(CAS-
before-RASリフレッシュ方式)を実現し、更に、バッテ
リバックアップモードとも呼ばれるセルフリフレッシュ
モード(DRAMのIcc = 100μA)をサポートして、マイク
ロコンピュータ単体だけでなく、ユーザシステム全体と
しての低消費電力化に対応する。 (5)I/Oへの直結インタフェースを有し、アドレス
/データマルチプレクス機能と前記アドレスホールド信
号(AH*)をサポートする。 (6)バスステートマシンによる外部アクセスと内部ア
クセスの独立動作(ワープモード)をサポートし、スト
アバッファ(1段) による、外部メモリ・I/Oライト
と内蔵メモリ・I/Oアクセスの並列実行を可能とし、
更にサイクルスチールシングルDMA転送と、CPU1
による内蔵メモリ・I/Oアクセスの並列実行を可能と
する。 (7)パリティチェックをサポートし、HDD(ハード
・ディスク・ドライブ)などに高信頼度が要求されるシ
ステムに対応できる。
搭載されるバスステートコントローラ6は概略的には以
下の特徴を有する。 (1)4MBのリニア空間を8個(8エリア)サポート
できる。ただし、DRAMの空間は16MBとされる。 (2)オンチップメモリを32ビット幅で1ステートア
クセスできる。 (3)エリア毎に、1本のチップセレクト信号とそのエ
リアの種類に応じた、最適なメモリインターフェース信
号を出力し、グルー論理無しでDRAM,SRAM,周
辺チップに直結可能である。 (4)DRAM直結インタフェースを有し、高速転送を
サポートすると共に、効率良いリフレッシュ制御(CAS-
before-RASリフレッシュ方式)を実現し、更に、バッテ
リバックアップモードとも呼ばれるセルフリフレッシュ
モード(DRAMのIcc = 100μA)をサポートして、マイク
ロコンピュータ単体だけでなく、ユーザシステム全体と
しての低消費電力化に対応する。 (5)I/Oへの直結インタフェースを有し、アドレス
/データマルチプレクス機能と前記アドレスホールド信
号(AH*)をサポートする。 (6)バスステートマシンによる外部アクセスと内部ア
クセスの独立動作(ワープモード)をサポートし、スト
アバッファ(1段) による、外部メモリ・I/Oライト
と内蔵メモリ・I/Oアクセスの並列実行を可能とし、
更にサイクルスチールシングルDMA転送と、CPU1
による内蔵メモリ・I/Oアクセスの並列実行を可能と
する。 (7)パリティチェックをサポートし、HDD(ハード
・ディスク・ドライブ)などに高信頼度が要求されるシ
ステムに対応できる。
【0032】本実施例マイクロコンピュータがサポート
する前記8個の夫々4MBのリニア空間(エリア0〜エ
リア7)に対するアドレスマップは、前記モード端子M
D3〜MD0の状態によって決定される。例えばMDピ
ンとしてのMD3,MD2,MD1,MD0=1010
は内蔵ROM有り通常モードであり、MD3,MD2,
MD1,MD0=1000は内蔵ROM無しでエリア0
のバス幅を8ビットとするモードであり、MD3,MD
2,MD1,MD0=1001は内蔵ROM無しでエリ
ア0のバス幅を16ビットとするモードである。上記各
動作モードにおける各エリアのアドレスマップの一例が
図8〜図21に示される。斯るアドレスマップにおい
て、アドレスは16進数で示される。図8〜図14に示
される0000000番地〜7FFFFFF番地の範囲
で割当てられるエリア0〜エリア7と、図15〜図21
に示される8000000番地〜FFFFFFF番地の
範囲で割当てられるエリア0〜エリア7との関係は、基
本的に前者が8ビット空間に対応され、後者が16ビッ
ト空間に対応される。また、各エリアの最大空間16M
Bに対して全部の空間を使用していないものは、それに
対応される全アドレスビットのデコードが行われていな
いため、アドレスマップには見掛け上シャドウ(shado
w)なる観念的な領域が存在することになる。また、夫
々のエリアに対応されるチップセレクト信号CS1*〜
CS7はアドレスビットA26〜A24をデコードして
出力されるようになっている。バス幅8ビット/16ビ
ットの切り替えはアドレスビットA27で制御される
(エリア0,エリア5〜エリア7を除く)。また、DO
N=0は後述するDRAMイネーブルビット(DRAM
E)=0に対応され、エリア1を通常空間とすることを
意味している。DON=1はDRAME=1に対応さ
れ、エリア1をDRAM空間とすることを意味する。
する前記8個の夫々4MBのリニア空間(エリア0〜エ
リア7)に対するアドレスマップは、前記モード端子M
D3〜MD0の状態によって決定される。例えばMDピ
ンとしてのMD3,MD2,MD1,MD0=1010
は内蔵ROM有り通常モードであり、MD3,MD2,
MD1,MD0=1000は内蔵ROM無しでエリア0
のバス幅を8ビットとするモードであり、MD3,MD
2,MD1,MD0=1001は内蔵ROM無しでエリ
ア0のバス幅を16ビットとするモードである。上記各
動作モードにおける各エリアのアドレスマップの一例が
図8〜図21に示される。斯るアドレスマップにおい
て、アドレスは16進数で示される。図8〜図14に示
される0000000番地〜7FFFFFF番地の範囲
で割当てられるエリア0〜エリア7と、図15〜図21
に示される8000000番地〜FFFFFFF番地の
範囲で割当てられるエリア0〜エリア7との関係は、基
本的に前者が8ビット空間に対応され、後者が16ビッ
ト空間に対応される。また、各エリアの最大空間16M
Bに対して全部の空間を使用していないものは、それに
対応される全アドレスビットのデコードが行われていな
いため、アドレスマップには見掛け上シャドウ(shado
w)なる観念的な領域が存在することになる。また、夫
々のエリアに対応されるチップセレクト信号CS1*〜
CS7はアドレスビットA26〜A24をデコードして
出力されるようになっている。バス幅8ビット/16ビ
ットの切り替えはアドレスビットA27で制御される
(エリア0,エリア5〜エリア7を除く)。また、DO
N=0は後述するDRAMイネーブルビット(DRAM
E)=0に対応され、エリア1を通常空間とすることを
意味している。DON=1はDRAME=1に対応さ
れ、エリア1をDRAM空間とすることを意味する。
【0033】本実施例のマイクロコンピュータにおける
アクセスタイプは、動作モードに対応される上記空間分
割の態様すなわちアクセス対象とされるエリアの種別に
よって識別する。すなわち、(1)DRAMアクセス、
I/Oアクセスは特定のエリアで行われるようになって
いる。所定の制御ビットDONをセット(0)すれば、
これらは通常の空間として使用することも可能とされ
る。(2)8ビット/16ビットアクセス(8ビットバ
ス幅/16ビットバス幅)の分別はアクセスアドレスの
所定ビットA27で行う。この手法によって一つのエリ
ア中に任意の数の8ビット/16ビットのメモリを混在
させて利用することも可能になる。
アクセスタイプは、動作モードに対応される上記空間分
割の態様すなわちアクセス対象とされるエリアの種別に
よって識別する。すなわち、(1)DRAMアクセス、
I/Oアクセスは特定のエリアで行われるようになって
いる。所定の制御ビットDONをセット(0)すれば、
これらは通常の空間として使用することも可能とされ
る。(2)8ビット/16ビットアクセス(8ビットバ
ス幅/16ビットバス幅)の分別はアクセスアドレスの
所定ビットA27で行う。この手法によって一つのエリ
ア中に任意の数の8ビット/16ビットのメモリを混在
させて利用することも可能になる。
【0034】DRAMインタフェースとしては、アドレ
スマルチプレクス機能とバイト制御機能を備える。すな
わち、DRAMの空間中にローアドレスを出力するため
のアドレスマルチプレクス回路が内蔵されている。これ
は図6におけるロー/カラムアドレスセレクタ32によ
って実現される。このとき、代表的なDRAMのマルチ
プレクス仕様に対応するため、8ビット/9ビット/1
0ビットマルチプレクスの機能を備える。前記バイト制
御機能としては、16ビット,18ビットのDRAMを
直結した際のバイト制御信号として、CAS2本方式
(CASL*,CASH*)と、WE2本方式(WRH
*,WRL*)との中から何れかを選択できる。
スマルチプレクス機能とバイト制御機能を備える。すな
わち、DRAMの空間中にローアドレスを出力するため
のアドレスマルチプレクス回路が内蔵されている。これ
は図6におけるロー/カラムアドレスセレクタ32によ
って実現される。このとき、代表的なDRAMのマルチ
プレクス仕様に対応するため、8ビット/9ビット/1
0ビットマルチプレクスの機能を備える。前記バイト制
御機能としては、16ビット,18ビットのDRAMを
直結した際のバイト制御信号として、CAS2本方式
(CASL*,CASH*)と、WE2本方式(WRH
*,WRL*)との中から何れかを選択できる。
【0035】DRAMに対するプリチャージサイクルは
2通りの中から何れかの選択が可能にされる。これは、
CPU1のクロック周波数が上がり、1サイクルの期間
が短くなるとDRAMのプリチャージ期間が確保できな
くなる事が予想されるため、プリチャージサイクルを1
サイクル(1ステート分)/2サイクル(2ステート
分)から選択できるようになっている。
2通りの中から何れかの選択が可能にされる。これは、
CPU1のクロック周波数が上がり、1サイクルの期間
が短くなるとDRAMのプリチャージ期間が確保できな
くなる事が予想されるため、プリチャージサイクルを1
サイクル(1ステート分)/2サイクル(2ステート
分)から選択できるようになっている。
【0036】更にDRAMバーストモードをサポートす
る。DRAMアクセスが同一のローアドレスに対して連
続する場合にDRAMのバースト転送を行えるよう、本
実施例マイクロコンピュータはDRAMのローアドレス
の比較回路を備える。これは図6におけるローアドレス
コンパレータ601に相当される。DRAMエリア内の
アドレスへのアクセスが前回のDRAMエリア内のアク
セスと同一のローアドレスである場合にはバーストアク
セス(高速ページアクセス)が開始される。
る。DRAMアクセスが同一のローアドレスに対して連
続する場合にDRAMのバースト転送を行えるよう、本
実施例マイクロコンピュータはDRAMのローアドレス
の比較回路を備える。これは図6におけるローアドレス
コンパレータ601に相当される。DRAMエリア内の
アドレスへのアクセスが前回のDRAMエリア内のアク
セスと同一のローアドレスである場合にはバーストアク
セス(高速ページアクセス)が開始される。
【0037】DRAMに対するバーストアクセス手法は
以下の2種類が用意されている。 (1)ショートピッチの高速ページモードは、ローアド
レスが一致している間、カラム・アドレス・ストローブ
信号CASL*,CASH*を1サイクルに1パルスず
つ出力するモードである。CPU1の動作周波数に対し
てメモリが速い場合にこのモードを使用する。高速ペー
ジモードサポートのDRAMではこのインタフェースを
使用できる。リード、ライトともに1サイクルでDRA
Mアクセスを行うことができる。図35にはショートピ
ッチの高速ページモードにおける一例リード動作タイミ
ングが示される。図36にはショートピッチの高速ペー
ジモードにおける一例ライト動作タイミングが示され
る。 (2)ロングピッチの高速ページモードは、ローアドレ
スが一致している間、カラム・アドレス・ストローブ信
号CASL*,CASH*をCK(クロック)出力の2
倍の周期で出力するモードである。DRAMのアクセス
タイムに比較して、CPU1のスピードが速い場合に使
用する。高速ページモードサポートのDRAMでこのイ
ンタフェースを使用可能である。リード、ライトともに
2サイクルでDRAMアクセスが可能になる。図37に
はロングピッチの高速ページモードにおけるリード動作
の一例タイミングが示される。
以下の2種類が用意されている。 (1)ショートピッチの高速ページモードは、ローアド
レスが一致している間、カラム・アドレス・ストローブ
信号CASL*,CASH*を1サイクルに1パルスず
つ出力するモードである。CPU1の動作周波数に対し
てメモリが速い場合にこのモードを使用する。高速ペー
ジモードサポートのDRAMではこのインタフェースを
使用できる。リード、ライトともに1サイクルでDRA
Mアクセスを行うことができる。図35にはショートピ
ッチの高速ページモードにおける一例リード動作タイミ
ングが示される。図36にはショートピッチの高速ペー
ジモードにおける一例ライト動作タイミングが示され
る。 (2)ロングピッチの高速ページモードは、ローアドレ
スが一致している間、カラム・アドレス・ストローブ信
号CASL*,CASH*をCK(クロック)出力の2
倍の周期で出力するモードである。DRAMのアクセス
タイムに比較して、CPU1のスピードが速い場合に使
用する。高速ページモードサポートのDRAMでこのイ
ンタフェースを使用可能である。リード、ライトともに
2サイクルでDRAMアクセスが可能になる。図37に
はロングピッチの高速ページモードにおけるリード動作
の一例タイミングが示される。
【0038】バスステートコントローラ6は、RASダ
ウンウエイトとRASアップウエイト機能を有する。命
令だけをDRAMに置いた場合ヒット率が極めて高くな
るが、DRAM空間内へのアクセス要求が連続するかは
解らないので、DRAMのロー・アドレス・ストローブ
信号RAS*をアサートしたままの状態で次のDRAM
空間へのアクセスを待つモードをRASダウンウエイト
モードと言う。この場合にはDRAM空間へのアクセス
の間に別空間へのアクセスが入っても、バースト転送を
利用する事ができる。ユーザはRASダウンウエイトモ
ードとRASアップウエイトモードをユーザオプション
で選択できる。RASアップモードでは、DRAMのア
クセス要求が連発した時のみバースト転送を行うように
なる。RASダウンウエイトモードでもCAS-before-
RASリフレッシュが終ったのち次のDRAMアクセス
要求が来るまで、ロー・アドレス・ストローブ信号RA
S*はネゲート状態(ハイレベル)にされる。
ウンウエイトとRASアップウエイト機能を有する。命
令だけをDRAMに置いた場合ヒット率が極めて高くな
るが、DRAM空間内へのアクセス要求が連続するかは
解らないので、DRAMのロー・アドレス・ストローブ
信号RAS*をアサートしたままの状態で次のDRAM
空間へのアクセスを待つモードをRASダウンウエイト
モードと言う。この場合にはDRAM空間へのアクセス
の間に別空間へのアクセスが入っても、バースト転送を
利用する事ができる。ユーザはRASダウンウエイトモ
ードとRASアップウエイトモードをユーザオプション
で選択できる。RASアップモードでは、DRAMのア
クセス要求が連発した時のみバースト転送を行うように
なる。RASダウンウエイトモードでもCAS-before-
RASリフレッシュが終ったのち次のDRAMアクセス
要求が来るまで、ロー・アドレス・ストローブ信号RA
S*はネゲート状態(ハイレベル)にされる。
【0039】バスステートコントローラ6はDRAMの
セルフリフレッシュモードを有する。DRAMでは、ス
タンバイモードの一種としてDRAM内部でリフレッシ
ュタイミング、リフレッシュアドレスを生成するセルフ
リフレッシュモードを持つものがある。DRAMはカラ
ム・アドレス・ストローブ信号,ロー・アドレス・スト
ローブ信号を特定のシーケンスでローレベルにする事
で、セルフリフレッシュモードに入ることができる。D
RAMのセルフリフレッシュモード時に、DRAMエリ
アをアクセスする場合、セルフリフレッシュモード→フ
ルアクセス→セルフリフレッシュモードのシーケンスで
アクセスを行なう。アクセス後は、自動的にセルフリフ
レッシュモードに戻る。
セルフリフレッシュモードを有する。DRAMでは、ス
タンバイモードの一種としてDRAM内部でリフレッシ
ュタイミング、リフレッシュアドレスを生成するセルフ
リフレッシュモードを持つものがある。DRAMはカラ
ム・アドレス・ストローブ信号,ロー・アドレス・スト
ローブ信号を特定のシーケンスでローレベルにする事
で、セルフリフレッシュモードに入ることができる。D
RAMのセルフリフレッシュモード時に、DRAMエリ
アをアクセスする場合、セルフリフレッシュモード→フ
ルアクセス→セルフリフレッシュモードのシーケンスで
アクセスを行なう。アクセス後は、自動的にセルフリフ
レッシュモードに戻る。
【0040】リフレッシュコントローラはDRAMをC
AS-before-RAS形式でリフレッシュを行う。リフレ
ッシュ間隔やリフレッシュ制御形式はリフレッシュコン
トロールレジスタ(RCR)で設定可能とされる。
AS-before-RAS形式でリフレッシュを行う。リフレ
ッシュ間隔やリフレッシュ制御形式はリフレッシュコン
トロールレジスタ(RCR)で設定可能とされる。
【0041】バスステートコントローラ6は、DMAア
クセスの際のウエイトステート挿入機能を備える。シン
グルサイクル転送のDMA転送時の遅いI/Oに対する
アクセスを実現するために、ある空間のアクセスステー
ト数を最も遅いI/Oに合わせなくても済む様にする機
能として、DMAシングルサイクルのみに適用されるウ
エイトステート挿入機能が有る。
クセスの際のウエイトステート挿入機能を備える。シン
グルサイクル転送のDMA転送時の遅いI/Oに対する
アクセスを実現するために、ある空間のアクセスステー
ト数を最も遅いI/Oに合わせなくても済む様にする機
能として、DMAシングルサイクルのみに適用されるウ
エイトステート挿入機能が有る。
【0042】バスステートコントローラ6は、多くの周
辺チップに直接インタフェースできるようにアドレスを
データバスとマルチプレクスする機能をそなえている。
マルチプレクス方式によりバスサイクルのスピードは落
ちてもピン数は節約できるので、ASIC (Applicatio
n Specific IC) とのインタフェースの際にASIC側
のピン数を節約できる。このようなI/O接続機能を実
現するために、(1)データバスにアドレスをマルチプ
レクスするインタフェースを内蔵し、(2)アドレスホ
ールド信号(AH*端子)をサポートし、(3)RD
*,WR*端子でリードとライトのイネーブルを独立に
サポートする。なお、バスサイクル数はリード、ライト
ともに4サイクルで、バスコントロールレジスタのWS
ビット、RSビットの値にかかわらず端子ウェイト挿入
が可能である。
辺チップに直接インタフェースできるようにアドレスを
データバスとマルチプレクスする機能をそなえている。
マルチプレクス方式によりバスサイクルのスピードは落
ちてもピン数は節約できるので、ASIC (Applicatio
n Specific IC) とのインタフェースの際にASIC側
のピン数を節約できる。このようなI/O接続機能を実
現するために、(1)データバスにアドレスをマルチプ
レクスするインタフェースを内蔵し、(2)アドレスホ
ールド信号(AH*端子)をサポートし、(3)RD
*,WR*端子でリードとライトのイネーブルを独立に
サポートする。なお、バスサイクル数はリード、ライト
ともに4サイクルで、バスコントロールレジスタのWS
ビット、RSビットの値にかかわらず端子ウェイト挿入
が可能である。
【0043】バスコントローラ6は、ワープモード(Wa
rp Mode)をサポートする。ワープモードは外付けメモ
リ使用時に、マイクロコンピュータおよびDMACを最
高速で動作させるモードである。ワープモードでは一部
のバスサイクルについて外部バスと内部バスはオーバー
ラップして動作する(ただし、内部バス1サイクルは消
費される)。バス制御レジスタ(BCR)のワープビッ
ト(WARP)をセットするとワープモードに入る。ワ
ープモードでは、CPU1による内部ROM/RAM,
I/Oアクセスと外部の次のアクセスをオーバーラップ
して実行する。ワープモードにおいて外部に対してのラ
イト動作は1段のストアバッファを管理することによっ
て行われる。外部メモリに対してのシングルDMA転送
(サイクルスチールモード時)に関しては、サイクルスチ
ールモード時、シングルDMA転送はCPU1の内部バ
スバンド幅を1サイクルしか消耗しない。この後バス権
はDMACからCPU1に移される。バスコントロール
レジスタ(BCR)のワープビット(WARP)をリセ
ットすると通常モードに入る。以降は外部バスオペレー
ションは内部バスオペレーションとシリアルに実行され
る。
rp Mode)をサポートする。ワープモードは外付けメモ
リ使用時に、マイクロコンピュータおよびDMACを最
高速で動作させるモードである。ワープモードでは一部
のバスサイクルについて外部バスと内部バスはオーバー
ラップして動作する(ただし、内部バス1サイクルは消
費される)。バス制御レジスタ(BCR)のワープビッ
ト(WARP)をセットするとワープモードに入る。ワ
ープモードでは、CPU1による内部ROM/RAM,
I/Oアクセスと外部の次のアクセスをオーバーラップ
して実行する。ワープモードにおいて外部に対してのラ
イト動作は1段のストアバッファを管理することによっ
て行われる。外部メモリに対してのシングルDMA転送
(サイクルスチールモード時)に関しては、サイクルスチ
ールモード時、シングルDMA転送はCPU1の内部バ
スバンド幅を1サイクルしか消耗しない。この後バス権
はDMACからCPU1に移される。バスコントロール
レジスタ(BCR)のワープビット(WARP)をリセ
ットすると通常モードに入る。以降は外部バスオペレー
ションは内部バスオペレーションとシリアルに実行され
る。
【0044】<6.バスコントローラの制御レジスタ>
【0045】上記機能設定のための制御レジスタとし
て、バスコントロールレジスタBCR、ウェイトステー
ト制御レジスタWCR1,WCR2,WCR3、DMA
エリアコントロールレジスタDCR、パリティーコント
ロールレジスタPCR、リフレッシュコントロールレジ
スタRCR、リフレッシュタイマコントロール/ステー
タスレジスタRTCSR、リフレッシュタイマカウンタ
RTCNT、リフレッシュタイムコンスタントレジスタ
RTCORを有する。
て、バスコントロールレジスタBCR、ウェイトステー
ト制御レジスタWCR1,WCR2,WCR3、DMA
エリアコントロールレジスタDCR、パリティーコント
ロールレジスタPCR、リフレッシュコントロールレジ
スタRCR、リフレッシュタイマコントロール/ステー
タスレジスタRTCSR、リフレッシュタイマカウンタ
RTCNT、リフレッシュタイムコンスタントレジスタ
RTCORを有する。
【0046】前記バスコントロールレジスタBCRは、
エリア別制御の設定を行うもので、その有効ビットは5
ビットであり、如何に示されるビットとされる。 (1)DRAMイネーブルビット{DRAME} 当該ビットは、エリア1を通常空間として使用するかD
RAM空間として使用するかを選択するビットである。
当該ビットを1にセットすると前記ストローブ信号RA
S*,CASL*,CASH*が有効になる。また、D
RAMエリアコントロールレジスタの設定値は本ビット
が1の時のみ有効になる。 (2)I/Oイネーブルビット{IOE} 当該ビットは、エリア6についてアドレスマルチプレク
スを行うI/Oアクセスサイクルを実施するか否かを決
定する。”0”でエリア6を通常空間とし、”1”でエ
リア6をI/O空間とする。 (3)WARPモードのオンオフ制御ビット{WAR
P} 当該ビットは、”0”でノーマルモード、”1”でワー
プモードを有効とする。ノーマルモードでは、外部バス
と内部バスの動作は一体である。ワープモードでは外部
バスアクセスと内部バスアクセスを並列に実行できる場
合 (外部に対してのCPU,DMAライト動作、サイク
ルスチール・シングルDMA転送) には、1サイクルだ
け消費した後に外部バスアクセスの終了を待たずに内部
バスアクセスを行い、外部バスアクセスと重ねて内部バ
スアクセスを実行する。 (4)ライトサイクル後のデッドサイクル挿入制御ビッ
ト{DEAD} 当該ビットは、”0”でデッドサイクル挿入を挿入せ
ず、”1”でデッドサイクをル挿入する。外部ライトサ
イクルの次のサイクルを常に1サイクルデッドサイクル
にするかどうかを選択するビットであり、デッドサイク
ルを挿入にすると、外部ライトの次のバスサイクルが通
常空間のリードアクセスである場合に、データの衝突を
避けることができる。 (5)バイトアクセスセレクトビット{BAS} 当該ビットは、ワード空間アクセス時にWRH*,WR
L*,A0信号による制御を行なうか、WR*,HBS
*,LBS*信号による制御を行なうかを選択するビッ
トであり、本ビットを”1”にセットすると、WRH
*,WRL*,A0端子をそれぞれWR*,HBS*,
LBS*ストローブとして使用することができる。
エリア別制御の設定を行うもので、その有効ビットは5
ビットであり、如何に示されるビットとされる。 (1)DRAMイネーブルビット{DRAME} 当該ビットは、エリア1を通常空間として使用するかD
RAM空間として使用するかを選択するビットである。
当該ビットを1にセットすると前記ストローブ信号RA
S*,CASL*,CASH*が有効になる。また、D
RAMエリアコントロールレジスタの設定値は本ビット
が1の時のみ有効になる。 (2)I/Oイネーブルビット{IOE} 当該ビットは、エリア6についてアドレスマルチプレク
スを行うI/Oアクセスサイクルを実施するか否かを決
定する。”0”でエリア6を通常空間とし、”1”でエ
リア6をI/O空間とする。 (3)WARPモードのオンオフ制御ビット{WAR
P} 当該ビットは、”0”でノーマルモード、”1”でワー
プモードを有効とする。ノーマルモードでは、外部バス
と内部バスの動作は一体である。ワープモードでは外部
バスアクセスと内部バスアクセスを並列に実行できる場
合 (外部に対してのCPU,DMAライト動作、サイク
ルスチール・シングルDMA転送) には、1サイクルだ
け消費した後に外部バスアクセスの終了を待たずに内部
バスアクセスを行い、外部バスアクセスと重ねて内部バ
スアクセスを実行する。 (4)ライトサイクル後のデッドサイクル挿入制御ビッ
ト{DEAD} 当該ビットは、”0”でデッドサイクル挿入を挿入せ
ず、”1”でデッドサイクをル挿入する。外部ライトサ
イクルの次のサイクルを常に1サイクルデッドサイクル
にするかどうかを選択するビットであり、デッドサイク
ルを挿入にすると、外部ライトの次のバスサイクルが通
常空間のリードアクセスである場合に、データの衝突を
避けることができる。 (5)バイトアクセスセレクトビット{BAS} 当該ビットは、ワード空間アクセス時にWRH*,WR
L*,A0信号による制御を行なうか、WR*,HBS
*,LBS*信号による制御を行なうかを選択するビッ
トであり、本ビットを”1”にセットすると、WRH
*,WRL*,A0端子をそれぞれWR*,HBS*,
LBS*ストローブとして使用することができる。
【0047】前記ウエイトステート制御レジスタWCR
1は、有効ビット数が16ビットとされ、リード時ウエ
イトステート管理を行う8ビットRW7〜RW0と、ラ
イト時ウエイトステート管理を行う8ビットWW7〜W
W0がある。 (1)RWフィールドは各エリア(前記4MB単位の8
エリア)に対応して1ビットずつ存在する。それぞれの
空間への読出しに対して、最小ステート数で転送を行う
か行わないかを決めるフラッグとして位置付けられる。
最小ステート数で転送を行う場合には、外部ウエイト端
子はサンプルされない。最小ステート数より大きいステ
ート数で転送を行う場合には、外部ウエイト端子がサン
プルされ、ローが検出された場合にはウエイトステート
が挿入される。一部の空間にはロングウエイトステート
挿入機能があり、外部端子とのロジカルORでウエイト
ステートが挿入される。ただし、I/O空間については
本ビットの設定にかかわらずリード、ライト4サイクル
で外部ウェイト端子をサンプルする。また、DRAM空
間のバスサイクル数、ウェイト挿入可/不可はDRAM
エリアコントロールレジスタのBMビットの設定値によ
って決まり、本ビットの設定値には依存しないようにな
っている。RW7〜RW0は、”0”でサンプルせず
(1ウェイトステート固定)、”1”でサンプルする
(2ウェイトステート以上)とされる。 (2)WWフィールドは各エリアに対応して1ビットず
つ存在する。それぞれの空間への書き込みに対して、最
小ステート数で転送を行うか行わないかを決めるフラッ
グとして位置付けられる。最小ステート数で転送を行う
場合には、外部ウエイト端子はサンプルされない。最小
ステート数より大きいステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされ、ローレベルが検
出された場合にはウエイトステートが挿入される。一部
の空間にはロングウエイトステート挿入機能があり、外
部端子とのロジカルORでウエイトステートが挿入され
る。ただし、I/O空間については本ビットの設定にか
かわらずリード、ライト4サイクルで外部ウェイト端子
をサンプルする。また、DRAM空間のバスサイクル
数、ウェイト挿入可/不可はDRAMエリアコントロー
ルレジスタのBMビットの設定値によって決まり、本ビ
ットの設定値には依存しない。WW7〜WW0は、”
0”でサンプルせず(1ウェイトステート固定)、”
1”でサンプルする(2ウェイトステート以上)。
1は、有効ビット数が16ビットとされ、リード時ウエ
イトステート管理を行う8ビットRW7〜RW0と、ラ
イト時ウエイトステート管理を行う8ビットWW7〜W
W0がある。 (1)RWフィールドは各エリア(前記4MB単位の8
エリア)に対応して1ビットずつ存在する。それぞれの
空間への読出しに対して、最小ステート数で転送を行う
か行わないかを決めるフラッグとして位置付けられる。
最小ステート数で転送を行う場合には、外部ウエイト端
子はサンプルされない。最小ステート数より大きいステ
ート数で転送を行う場合には、外部ウエイト端子がサン
プルされ、ローが検出された場合にはウエイトステート
が挿入される。一部の空間にはロングウエイトステート
挿入機能があり、外部端子とのロジカルORでウエイト
ステートが挿入される。ただし、I/O空間については
本ビットの設定にかかわらずリード、ライト4サイクル
で外部ウェイト端子をサンプルする。また、DRAM空
間のバスサイクル数、ウェイト挿入可/不可はDRAM
エリアコントロールレジスタのBMビットの設定値によ
って決まり、本ビットの設定値には依存しないようにな
っている。RW7〜RW0は、”0”でサンプルせず
(1ウェイトステート固定)、”1”でサンプルする
(2ウェイトステート以上)とされる。 (2)WWフィールドは各エリアに対応して1ビットず
つ存在する。それぞれの空間への書き込みに対して、最
小ステート数で転送を行うか行わないかを決めるフラッ
グとして位置付けられる。最小ステート数で転送を行う
場合には、外部ウエイト端子はサンプルされない。最小
ステート数より大きいステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされ、ローレベルが検
出された場合にはウエイトステートが挿入される。一部
の空間にはロングウエイトステート挿入機能があり、外
部端子とのロジカルORでウエイトステートが挿入され
る。ただし、I/O空間については本ビットの設定にか
かわらずリード、ライト4サイクルで外部ウェイト端子
をサンプルする。また、DRAM空間のバスサイクル
数、ウェイト挿入可/不可はDRAMエリアコントロー
ルレジスタのBMビットの設定値によって決まり、本ビ
ットの設定値には依存しない。WW7〜WW0は、”
0”でサンプルせず(1ウェイトステート固定)、”
1”でサンプルする(2ウェイトステート以上)。
【0048】前記ウエイトステート制御レジスタWCR
2は有効ビット数が16ビットであり、DRW7〜DR
W0と、DWW7〜DWW0とされる。 (1)DWR7〜DWR0は、DMAシングル転送時の
みウエイト挿入(DMAシングルサイクル・メモリリー
ド)するかしないかを指定するビットとされ、”0”は
しない、”1”はするを意味する。すなわち、DRWフ
ィールドは各エリアに1ビットずつ存在する。それぞれ
のエリアへのシングルDMAメモリ読出しサイクルに対
して、最小ステート数で転送を行うか行わないかを決め
るフラッグである。最小ステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされない。最小ステー
ト数より大きいステート数で転送を行う場合には、外部
ウエイト端子はサンプルされ、ローレベルが検出された
場合にはウエイトステートが挿入される。一部の空間に
はロングウエイトステート挿入機能があり、外部端子と
のロジカルORでウエイトステートが挿入される。ただ
し、I/O空間については本ビットの設定にかかわらず
リード、ライト4サイクルで外部ウェイト端子をサンプ
ルする。また、DRAM空間のバスサイクル数、ウェイ
ト挿入可/不可はDRAMエリアコントロールレジスタ
のBMビットの設定値によって決まり、本ビットの設定
値には依存しない。 (2)DWW7〜DWW0は、DMAシングル転送時の
みウエイト挿入(DMAシングルサイクル・メモリライト)
するかしないかを決定するビットとされ、”0”はしな
い、”1”はするを意味する。すなわち、DWWフィー
ルドは各エリアに1ビットずつ存在する。それぞれのエ
リアへのシングルDMAメモリ書込みサイクルに対し
て、最小ステート数で転送を行うか行わないかを決める
フラッグである。最小ステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされない。最小ステー
ト数より大きいステート数で転送を行う場合には、外部
ウエイト端子はサンプルされ、ローレベルが検出された
場合にはウエイトステートが挿入される。一部の空間に
はロングウエイトステート挿入機能があり、外部端子と
のロジカルORでウエイトステートが挿入される。ただ
し、I/O空間については本ビットの設定にかかわらず
リード、ライト4サイクルで外部ウェイト端子をサンプ
ルする。また、DRAM空間のバスサイクル数、ウェイ
ト挿入可/不可はDRAMエリアコントロールレジスタ
のBMビットの設定値によって決まり、本ビットの設定
値には依存しない。
2は有効ビット数が16ビットであり、DRW7〜DR
W0と、DWW7〜DWW0とされる。 (1)DWR7〜DWR0は、DMAシングル転送時の
みウエイト挿入(DMAシングルサイクル・メモリリー
ド)するかしないかを指定するビットとされ、”0”は
しない、”1”はするを意味する。すなわち、DRWフ
ィールドは各エリアに1ビットずつ存在する。それぞれ
のエリアへのシングルDMAメモリ読出しサイクルに対
して、最小ステート数で転送を行うか行わないかを決め
るフラッグである。最小ステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされない。最小ステー
ト数より大きいステート数で転送を行う場合には、外部
ウエイト端子はサンプルされ、ローレベルが検出された
場合にはウエイトステートが挿入される。一部の空間に
はロングウエイトステート挿入機能があり、外部端子と
のロジカルORでウエイトステートが挿入される。ただ
し、I/O空間については本ビットの設定にかかわらず
リード、ライト4サイクルで外部ウェイト端子をサンプ
ルする。また、DRAM空間のバスサイクル数、ウェイ
ト挿入可/不可はDRAMエリアコントロールレジスタ
のBMビットの設定値によって決まり、本ビットの設定
値には依存しない。 (2)DWW7〜DWW0は、DMAシングル転送時の
みウエイト挿入(DMAシングルサイクル・メモリライト)
するかしないかを決定するビットとされ、”0”はしな
い、”1”はするを意味する。すなわち、DWWフィー
ルドは各エリアに1ビットずつ存在する。それぞれのエ
リアへのシングルDMAメモリ書込みサイクルに対し
て、最小ステート数で転送を行うか行わないかを決める
フラッグである。最小ステート数で転送を行う場合に
は、外部ウエイト端子はサンプルされない。最小ステー
ト数より大きいステート数で転送を行う場合には、外部
ウエイト端子はサンプルされ、ローレベルが検出された
場合にはウエイトステートが挿入される。一部の空間に
はロングウエイトステート挿入機能があり、外部端子と
のロジカルORでウエイトステートが挿入される。ただ
し、I/O空間については本ビットの設定にかかわらず
リード、ライト4サイクルで外部ウェイト端子をサンプ
ルする。また、DRAM空間のバスサイクル数、ウェイ
ト挿入可/不可はDRAMエリアコントロールレジスタ
のBMビットの設定値によって決まり、本ビットの設定
値には依存しない。
【0049】前記ウエイトステート制御レジスタWCR
3は、有効ビット数が5ビットで、各ビットの内容は下
記の通りである。 (1)WPUビットは、ウェイト端子のプルアップ制御
用ビットであり、”0”でウェイト端子プルアップしな
い、”1”でウェイト端子プルアップするを指示する。 (2)A02LW0,A02LW1は、エリア0, 2の
ロングウエイト挿入を制御するビットであり、その2ビ
ットによって示される値が”0”のときは1サイクル挿
入、”1”のときは2サイクル挿入、”2”のときは3
サイクル挿入、”3”のときは4サイクル挿入を指示す
る。 (3)A6LW0,A6LW1はエリア6のロングウエ
イト挿入を制御する2ビットであり、その2ビットによ
って示される値が”0”のとは1サイクル挿入、”1”
のときは2サイクル挿入、”2”のときは3サイクル挿
入、”3”のときは4サイクル挿入を指示する。
3は、有効ビット数が5ビットで、各ビットの内容は下
記の通りである。 (1)WPUビットは、ウェイト端子のプルアップ制御
用ビットであり、”0”でウェイト端子プルアップしな
い、”1”でウェイト端子プルアップするを指示する。 (2)A02LW0,A02LW1は、エリア0, 2の
ロングウエイト挿入を制御するビットであり、その2ビ
ットによって示される値が”0”のときは1サイクル挿
入、”1”のときは2サイクル挿入、”2”のときは3
サイクル挿入、”3”のときは4サイクル挿入を指示す
る。 (3)A6LW0,A6LW1はエリア6のロングウエ
イト挿入を制御する2ビットであり、その2ビットによ
って示される値が”0”のとは1サイクル挿入、”1”
のときは2サイクル挿入、”2”のときは3サイクル挿
入、”3”のときは4サイクル挿入を指示する。
【0050】前記DRAMエリアコントロールレジスタ
DCRは、DRAMエリアのステートマシン等の制御を
行うもので、有効ビット数は8ビットである。各ビット
の内容は以下に示される。 (1)CW2ビット 当該ビットは、CAS2本方式/WE2本方式の選択ビ
ットであり、”0”でCAS2本方式が選択され、”
1”でWE2本方式が選択される。制御方式の異なるD
RAMに対しての対応を選択することができる。CAS
2本方式の場合はCASH*,CASL*端子とWRl
L*端子が使用される。また、WE2本方式の場合には
CASL*端子と WRH*,WRL*端子が使用され
る。データバス幅8ビット空間の場合は、WRlL*端
子,CASL*端子のみ使用される。 (2)RASDビット 当該ビットは、アクセスウエイト時のRASダウンを行
うか否か指示するビットであり、”0”はしない、”
1”はするを指示する。DRAMに対してのアクセスが
途切れた場合にRAS*を下げた状態にして次のDRA
Mアクセスを待つか否かを決めることになる。 (3)TPVビット 当該ビットは、プリチャージサイクル(Tpサイクル)数
を指示するビットであり、”0”は1ステート、”1”
は2ステートを指示する。これにより、遅いDRAMに
対して、速いクロック数でCPU1を動かした場合に1
サイクルではプリチャージタイミングが充分でない場合
があり、その時に挿入せべきプリチャージサイクル数を
決める。 (4)BEビット 当該ビットは、バースト動作イネーブルビットであ
り、”0”はバースト動作を行わない、”1”はバース
ト動作を行うことを指示する。これによって、バースト
動作を行うか行わないかが選択され、行わない方に設定
されるとローアドレスは常にミスヒットし、BMビット
に設定したモードのフルアクセスを毎回行い、行う方に
設定すると、ローアドレスの比較を行いBMビットに指
定したモードにしたがってバースト動作を行う。 (5)BMビット 当該ビットはバースト動作オプションビットであり、”
0”はロングピッチ/高速ページモード(2 states、外部
端子ウェイトサンプル)を指定し、”1”はショートピ
ッチ/高速ページモード(1 state)を指示する。バースト
動作オプションはCPU1の動作周波数とDRAMのス
ピードの関係で、最適のバーストアクセス方法をセレク
トするためのフィールドである。ロングピッチ/高速ペ
ージモードの場合には、外部ウエイトステート端子をサ
ンプルする。 (6)MXEビット 当該ビットは、マルチプレクス有り/無しを指示するた
めのビットであり、”0”は無し、”1”は有りを意味
する。DRAMアクセスの場合にマルチプレックスが行
われるか否かが決定される。 (7) MXC1,MXC0ビット 当該ビットは、ローアドレスマルチプレクスの際のシフ
トカウントの制御ビットであり、バースト時のローアド
レス比較器の切替も制御する。その指定内容は当該2ビ
ットの値によって3通りとされる。すなわち、”0”の
とき、ローアドレスシフト量は8ビット、比較対象ロー
アドレス(バースト時)はA8〜A27が指定され、”
1”のときローアドレスシフト量は9ビット、比較対象
ローアドレス(バースト時)はA9〜A27が指定さ
れ、”2”のときローアドレスシフト量は10ビット、
比較対象ローアドレス(バースト時)はあ10〜あ27が
指定される。尚、値が”3”のときはローアドレスを出
力する際に何ビット低位側にシフトして出力するかが決
定される。
DCRは、DRAMエリアのステートマシン等の制御を
行うもので、有効ビット数は8ビットである。各ビット
の内容は以下に示される。 (1)CW2ビット 当該ビットは、CAS2本方式/WE2本方式の選択ビ
ットであり、”0”でCAS2本方式が選択され、”
1”でWE2本方式が選択される。制御方式の異なるD
RAMに対しての対応を選択することができる。CAS
2本方式の場合はCASH*,CASL*端子とWRl
L*端子が使用される。また、WE2本方式の場合には
CASL*端子と WRH*,WRL*端子が使用され
る。データバス幅8ビット空間の場合は、WRlL*端
子,CASL*端子のみ使用される。 (2)RASDビット 当該ビットは、アクセスウエイト時のRASダウンを行
うか否か指示するビットであり、”0”はしない、”
1”はするを指示する。DRAMに対してのアクセスが
途切れた場合にRAS*を下げた状態にして次のDRA
Mアクセスを待つか否かを決めることになる。 (3)TPVビット 当該ビットは、プリチャージサイクル(Tpサイクル)数
を指示するビットであり、”0”は1ステート、”1”
は2ステートを指示する。これにより、遅いDRAMに
対して、速いクロック数でCPU1を動かした場合に1
サイクルではプリチャージタイミングが充分でない場合
があり、その時に挿入せべきプリチャージサイクル数を
決める。 (4)BEビット 当該ビットは、バースト動作イネーブルビットであ
り、”0”はバースト動作を行わない、”1”はバース
ト動作を行うことを指示する。これによって、バースト
動作を行うか行わないかが選択され、行わない方に設定
されるとローアドレスは常にミスヒットし、BMビット
に設定したモードのフルアクセスを毎回行い、行う方に
設定すると、ローアドレスの比較を行いBMビットに指
定したモードにしたがってバースト動作を行う。 (5)BMビット 当該ビットはバースト動作オプションビットであり、”
0”はロングピッチ/高速ページモード(2 states、外部
端子ウェイトサンプル)を指定し、”1”はショートピ
ッチ/高速ページモード(1 state)を指示する。バースト
動作オプションはCPU1の動作周波数とDRAMのス
ピードの関係で、最適のバーストアクセス方法をセレク
トするためのフィールドである。ロングピッチ/高速ペ
ージモードの場合には、外部ウエイトステート端子をサ
ンプルする。 (6)MXEビット 当該ビットは、マルチプレクス有り/無しを指示するた
めのビットであり、”0”は無し、”1”は有りを意味
する。DRAMアクセスの場合にマルチプレックスが行
われるか否かが決定される。 (7) MXC1,MXC0ビット 当該ビットは、ローアドレスマルチプレクスの際のシフ
トカウントの制御ビットであり、バースト時のローアド
レス比較器の切替も制御する。その指定内容は当該2ビ
ットの値によって3通りとされる。すなわち、”0”の
とき、ローアドレスシフト量は8ビット、比較対象ロー
アドレス(バースト時)はA8〜A27が指定され、”
1”のときローアドレスシフト量は9ビット、比較対象
ローアドレス(バースト時)はA9〜A27が指定さ
れ、”2”のときローアドレスシフト量は10ビット、
比較対象ローアドレス(バースト時)はあ10〜あ27が
指定される。尚、値が”3”のときはローアドレスを出
力する際に何ビット低位側にシフトして出力するかが決
定される。
【0051】パリティコントロールレジスタPCRはパ
リティチェックの制御を行うもので、有効ビット数は下
記の3ビットとされる。 (1)PFRCビットはパリティ強制出力するか否かを
指示するものであり、”0”は強制出力しない、”1”
は"H"レベル(ハイレベル)を強制出力することを指示
する。これはパリティエラーチェック機能のテスティン
グのためのパリティ強制出力機能である。 (2)PEOビットはパリティ極性の指定ビットであ
り、”0”はイーブン、”1”はオッドを意味する。 (3)PCHKビットはパリティチェックイネーブルビ
ットであり、パリティチェックを行うか行わないかを決
める。
リティチェックの制御を行うもので、有効ビット数は下
記の3ビットとされる。 (1)PFRCビットはパリティ強制出力するか否かを
指示するものであり、”0”は強制出力しない、”1”
は"H"レベル(ハイレベル)を強制出力することを指示
する。これはパリティエラーチェック機能のテスティン
グのためのパリティ強制出力機能である。 (2)PEOビットはパリティ極性の指定ビットであ
り、”0”はイーブン、”1”はオッドを意味する。 (3)PCHKビットはパリティチェックイネーブルビ
ットであり、パリティチェックを行うか行わないかを決
める。
【0052】前記リフレッシュコントロールレジスタR
CRはリフレッシュ関連の制御を行うための制御レジス
タであり、以下の制御ビットを有する。 (1)RFSHEビットは、DRAMリフレッシュ動作
を行うか否かを決めるビットであり、当該ビットを”0
(リフレッシュ動作を行わない)”に設定すると、後述
のリフレッシュ要求周期発生タイマをインターバルタイ
マとして使用することができる。 (2)RMODEは”0”でCAS before RAS(C
BR)リフレッシュモードを指示し、”1”でセルフリ
フレッシュモードを指示する。前記RFSHビットが1
の場合、RMODEビットを1にセットするとその直後
にセルフリフレッシュモードに入る。0にセットすると
CBRリフレッシュが8ビットインターバルタイマに設
定した間隔で行われる。CBRリフレッシュは、外部ラ
イトサイクル中およびDRAMエリアアクセス中に要求
が発生した場合、そのバスサイクル終了後リフレッシュ
を実行する。DRAMエリア以外の外部リードサイクル
中および内蔵モジュールアクセスサイクル中にリフレッ
シュ要求が発生した場合はバスサイクルに関係無くリフ
レッシュを実行する。セルフリフレッシュにセットした
場合は、外部DRAMアクセスサイクル中でなければR
MODEビットをセットした直後にセルフリフレッシュ
モードに入る。外部DRAMアクセス中の場合はDRA
Mアクセスが終了してからセルフリフレッシュモードに
入る。なお、セルフリフレッシュ中もリフレッシュ要求
カウンタは動作しているが、セルフリフレッシュ期間中
のリフレッシュ要求はすべて無視される。
CRはリフレッシュ関連の制御を行うための制御レジス
タであり、以下の制御ビットを有する。 (1)RFSHEビットは、DRAMリフレッシュ動作
を行うか否かを決めるビットであり、当該ビットを”0
(リフレッシュ動作を行わない)”に設定すると、後述
のリフレッシュ要求周期発生タイマをインターバルタイ
マとして使用することができる。 (2)RMODEは”0”でCAS before RAS(C
BR)リフレッシュモードを指示し、”1”でセルフリ
フレッシュモードを指示する。前記RFSHビットが1
の場合、RMODEビットを1にセットするとその直後
にセルフリフレッシュモードに入る。0にセットすると
CBRリフレッシュが8ビットインターバルタイマに設
定した間隔で行われる。CBRリフレッシュは、外部ラ
イトサイクル中およびDRAMエリアアクセス中に要求
が発生した場合、そのバスサイクル終了後リフレッシュ
を実行する。DRAMエリア以外の外部リードサイクル
中および内蔵モジュールアクセスサイクル中にリフレッ
シュ要求が発生した場合はバスサイクルに関係無くリフ
レッシュを実行する。セルフリフレッシュにセットした
場合は、外部DRAMアクセスサイクル中でなければR
MODEビットをセットした直後にセルフリフレッシュ
モードに入る。外部DRAMアクセス中の場合はDRA
Mアクセスが終了してからセルフリフレッシュモードに
入る。なお、セルフリフレッシュ中もリフレッシュ要求
カウンタは動作しているが、セルフリフレッシュ期間中
のリフレッシュ要求はすべて無視される。
【0053】リフレッシュ要求周期発生用タイマは8ビ
ットインターバルタイマを使用する。このとき、メモリ
のリフレッシュ要求周期およびCPUの動作周波数に合
わせて設定値を設定する必要がある。そのために必要と
されるリフレッシュ要求周期発生用タイマのレジスタ構
成は以下のようにされる。
ットインターバルタイマを使用する。このとき、メモリ
のリフレッシュ要求周期およびCPUの動作周波数に合
わせて設定値を設定する必要がある。そのために必要と
されるリフレッシュ要求周期発生用タイマのレジスタ構
成は以下のようにされる。
【0054】リフレッシュタイマコントロール/ステー
タスレジスタ(RTCSR)当該レジスタRTCSRは
リード/ライト可能な8ビットのレジスタで、RTCN
Tに入力するクロックの選択および割込要求の制御を行
なうもので、有効ビットは以下の5ビットとされる。 (1)コンペアマッチフラグCMF RTCNTとRTCORの値が一致したことを示すステ
ータスフラグであり、次の条件でセット/クリアされ
る。クリア条件は、CMF=1の状態でCMFをリード
した後、CMFに’0’をライトしたときである。セッ
ト条件は、RTCNT=RTCORになったときであ
る。 (2)コンペアマッチインタラプトイネーブルCMIE RTCSRのCMFが1にセットされたとき、CMFに
よる割込要求(CMI)の許可または禁止を選択する。 (3)クロックセレクトビットCKS2〜CKS0 リード/ライト可能なレジスタでありTCNTの入力ク
ロックの選択を以下のように行なう。 CKS2,CKS1,CKS0=0,0,0でクロック
入力禁止、 CKS2,CKS1,CKS0=0,0,1でφ/2、 CKS2,CKS1,CKS0=0,1,0でφ/8、 CKS2,CKS1,CKS0=0,1,1でφ/3
2、 CKS2,CKS1,CKS0=1,0,0でφ/12
8、 CKS2,CKS1,CKS0=1,0,1でφ/51
2、 CKS2,CKS1,CKS0=1,1,0でφ/20
48 CKS2,CKS1,CKS0=1,1,1でφ/40
96とされる。
タスレジスタ(RTCSR)当該レジスタRTCSRは
リード/ライト可能な8ビットのレジスタで、RTCN
Tに入力するクロックの選択および割込要求の制御を行
なうもので、有効ビットは以下の5ビットとされる。 (1)コンペアマッチフラグCMF RTCNTとRTCORの値が一致したことを示すステ
ータスフラグであり、次の条件でセット/クリアされ
る。クリア条件は、CMF=1の状態でCMFをリード
した後、CMFに’0’をライトしたときである。セッ
ト条件は、RTCNT=RTCORになったときであ
る。 (2)コンペアマッチインタラプトイネーブルCMIE RTCSRのCMFが1にセットされたとき、CMFに
よる割込要求(CMI)の許可または禁止を選択する。 (3)クロックセレクトビットCKS2〜CKS0 リード/ライト可能なレジスタでありTCNTの入力ク
ロックの選択を以下のように行なう。 CKS2,CKS1,CKS0=0,0,0でクロック
入力禁止、 CKS2,CKS1,CKS0=0,0,1でφ/2、 CKS2,CKS1,CKS0=0,1,0でφ/8、 CKS2,CKS1,CKS0=0,1,1でφ/3
2、 CKS2,CKS1,CKS0=1,0,0でφ/12
8、 CKS2,CKS1,CKS0=1,0,1でφ/51
2、 CKS2,CKS1,CKS0=1,1,0でφ/20
48 CKS2,CKS1,CKS0=1,1,1でφ/40
96とされる。
【0055】リフレッシュタイマカウンタRTCNT 当該カウンタRTNCTは8ビットのアップカウンタで
あり、入力したクロックによりカウントアップされる。
入力するクロックの選択は、RTCSRのクロックセレ
クト2〜0ビット(CKS2〜CKS0)で行なう。R
TNCTの値はCPU1から常にリード/ライト可能に
なっている。リフレッシュタイマカウンタRTNCTが
RTCORと一致すると、RTCNTはクリアされる。
RTCNTはパワーオンリセットでH’00(H’は1
6進数を意味する)にイニシャライズされる。
あり、入力したクロックによりカウントアップされる。
入力するクロックの選択は、RTCSRのクロックセレ
クト2〜0ビット(CKS2〜CKS0)で行なう。R
TNCTの値はCPU1から常にリード/ライト可能に
なっている。リフレッシュタイマカウンタRTNCTが
RTCORと一致すると、RTCNTはクリアされる。
RTCNTはパワーオンリセットでH’00(H’は1
6進数を意味する)にイニシャライズされる。
【0056】リフレッシュタイムコンスタントレジスタ
RTCOR 当該RTCORは8ビットのリード/ライト可能なレジ
スタである。RTOCRとRTCNTの値は常に比較さ
れており、両方の値が一致するとRTCSRのコンペア
マッチフラグ(CMF)がセットされ、RTCNTが
H’00にクリアされる。また、RCRのRFSHビッ
トが1に設定されている場合は、この一致信号によって
リフレッシュ要求信号が発生される。リフレッシュタイ
ムコンスタントレジスタRTOCRはパワーオンリセッ
トによってH’00にイニシャライズされる。
RTCOR 当該RTCORは8ビットのリード/ライト可能なレジ
スタである。RTOCRとRTCNTの値は常に比較さ
れており、両方の値が一致するとRTCSRのコンペア
マッチフラグ(CMF)がセットされ、RTCNTが
H’00にクリアされる。また、RCRのRFSHビッ
トが1に設定されている場合は、この一致信号によって
リフレッシュ要求信号が発生される。リフレッシュタイ
ムコンスタントレジスタRTOCRはパワーオンリセッ
トによってH’00にイニシャライズされる。
【0057】前記レジスタRCR,RTCSR,RCN
T,RTCORの各レジスタは、データ保持上リフレッ
シュ動作の重要性に鑑みて容易に書き換えられないよう
に、ライト方法が一般のレジスタと相違される。ライト
は以下の手順で行うことができる。 (1)PCRライト時 ワード転送命令を使用して上位8ビットにH’5Aを、
下位8ビットにライトデータを置く。 (2)PTCSRライト時 ワード転送命令を使用して上位8ビットにh’A5を、
下位8ビットにライトデータを置く。 (3)PCNTライト時 ワード転送命令を使用して上位8ビットにh’69を、
下位8ビットにライトデータを置く。 (4)PTCORライト時 ワード転送命令を使用して上位8ビットにH’96を、
下位8ビットにライトデータを置く。 なお、リード時は一般のレジスタと同様にリードでき
る。リードの場合はバイト転送命令を使用できる。ま
た、ワードでリードした場合の上位8ビットの値はH’
00とされる。
T,RTCORの各レジスタは、データ保持上リフレッ
シュ動作の重要性に鑑みて容易に書き換えられないよう
に、ライト方法が一般のレジスタと相違される。ライト
は以下の手順で行うことができる。 (1)PCRライト時 ワード転送命令を使用して上位8ビットにH’5Aを、
下位8ビットにライトデータを置く。 (2)PTCSRライト時 ワード転送命令を使用して上位8ビットにh’A5を、
下位8ビットにライトデータを置く。 (3)PCNTライト時 ワード転送命令を使用して上位8ビットにh’69を、
下位8ビットにライトデータを置く。 (4)PTCORライト時 ワード転送命令を使用して上位8ビットにH’96を、
下位8ビットにライトデータを置く。 なお、リード時は一般のレジスタと同様にリードでき
る。リードの場合はバイト転送命令を使用できる。ま
た、ワードでリードした場合の上位8ビットの値はH’
00とされる。
【0058】<7.内部アクセスバスステートマシンの
状態遷移図>
状態遷移図>
【0059】図23には前記内部アクセスバスステート
マシン603の状態遷移図が示される。同図には代表的
な状態として、T1E(010),T2E(011),
T3E(000),T3O(100),T1O(11
0),T2O(111)が示される。各状態はアクセス
状態コード(BiBSC0〜BiBSC2)などの制御
信号を受取ることによって決定され、その状態に応ずる
処理の終了後は次アクセス状態コードが生成されて、状
態が遷移される。図23における各状態に括弧書きで付
された3ビットが前記アクセス状態コードである。アク
セス状態コードなどの制御信号はコマンドバスBCMD
0−3の値やアドレスバスIAB0−23の値などにし
たがって決定される。図24乃至図27にはアクセス状
態コード(BiBSC0〜BiBSC2)と次アクセス
状態コード(BiNBC0〜BiNBC2)並びにそれ
に対応する処理が示される。例えば図24において信号
RSTがアサートされるとパワーオンリセット状態にさ
れて、次アクセス状態がT3Eにされることが解る。
マシン603の状態遷移図が示される。同図には代表的
な状態として、T1E(010),T2E(011),
T3E(000),T3O(100),T1O(11
0),T2O(111)が示される。各状態はアクセス
状態コード(BiBSC0〜BiBSC2)などの制御
信号を受取ることによって決定され、その状態に応ずる
処理の終了後は次アクセス状態コードが生成されて、状
態が遷移される。図23における各状態に括弧書きで付
された3ビットが前記アクセス状態コードである。アク
セス状態コードなどの制御信号はコマンドバスBCMD
0−3の値やアドレスバスIAB0−23の値などにし
たがって決定される。図24乃至図27にはアクセス状
態コード(BiBSC0〜BiBSC2)と次アクセス
状態コード(BiNBC0〜BiNBC2)並びにそれ
に対応する処理が示される。例えば図24において信号
RSTがアサートされるとパワーオンリセット状態にさ
れて、次アクセス状態がT3Eにされることが解る。
【0060】<8.外部アクセスバスステートマシンの
状態遷移図>
状態遷移図>
【0061】図28には外部アクセスバスステートマシ
ン602に含まれるDRAMステートマシンの状態遷移
図が示される。各状態は以下に示される通りである。 (1)dP(DRAM PRECHARGE STAT
E) この状態はプリチャージ状態を示す。RAS*,CAS
*(CASL*,CASH*)共にハイレベルのネゲー
ト状態にある。アドレス線、CS*、RD*、WR*、
データ線は、この状態の時にもアクティブで有りうる。
何故ならば、DRAM以外のメモリアクセスが起こるか
らである。 (2)dPx(DRAM PRECHARGE EXT
RA STATE) プリチャージ状態を示す。但し、このステートは、DR
AMのプリチャージ期間を確保するためのステートであ
る。dPに行く前にこのステートを通ることにより、プ
リチャージ期間を2サイクル(100ns20MHの時
で)確保することができる。これは、各種DRAMに適
用可能な充分な値である。 (3)dR(DRAM ROW ADDRESS ST
ATE) DRAMのアクセスにおけるローアドレスを与えるステ
ートである。ステート前半でローアドレスを出力し、後
半も同じアドレスをアサートしつづける。ステート後半
でRAS*をアサートする。この際にRD*,WR*な
どのメモリ制御信号、データバスのアサート等は一切行
わない。本ステートは単にローアドレスを与えるためだ
けにある。唯一の例外は、CBRリフレッシュの場合で
あるCBRリフレッシュ時にはdRステートの頭からC
AS*(以下CASでCASL*,CASH*を総称す
る)がアサートされ、dR,dC,dCxとアサートさ
れ続ける。 (4)dC(DRAM COLUMN ADDRESS
STATE) DRAMのアクセスにおける、カラムアドレスを与える
ステートである。ショートピッチモードの際には、本ス
テートのみで1バーストアクセスが完遂する。サイクル
後半に、CAS*がアサートされ、ネゲートされる。C
AS*端子の出力バッファは、他の出力バッファに比較
して強化されており、半サイクルでアサート→ネゲート
を行うことができる。ショートピッチモードの場合はd
Cサイクルの先頭でRD*端子及びWR*端子をアサー
トし、サイクル終了までアサートを続ける。ショートピ
ッチの際にはウェイト端子のサンプリングはしない。ロ
ングピッチの際には、dCサイクルに来る前に必ずdC
xサイクルに行くので、WR*とRD*はアサートした
状態でdCサイクルに到る。ロングピッチの際には、ウ
ェイト端子はdCxサイクルの終了でサンプルされる。
ウェイトをサンプルしなかった場合には、サイクル半ば
でWR*端子がひき上げられる(ネゲートされる)。R
D*端子は、サイクル終了までアサートされる。ウェイ
トをサンプルした場合には、WR*端子もRD*端子も
アサートしたままで、dCサイクルが繰り返される。ロ
ングピッチの際には、dCサイクル中は常にCAS*は
アサートしつづけられる。リフレッシュサイクル時には
WR*端子もRD*端子もアサートされない。バッテリ
バックアップモード時には、このステートにとどまる。 (5)dCx(DRAM COLUMN EXTRA ADDRESS STAT
E) DRAMのアクセスにおける、カラムアドレスを与える
ステートである。ショートピッチモードでは、本ステー
トには到達しない。ロングピッチモード時の最初のサイ
クルが、このステートとなる。RD*端子はサイクルの
はじめから、WR*端子はサイクル半ばからアサートさ
れる。リフレッシュサイクル時にはRD*端子もWR*
端子もアサートされない。 (6)dI(DRAM IDLE STATE) DRAMアクセス時にRASダウンウェイトを実現する
ステートである。このステートは、CBRリフレ時には
到達しない。このステートではCAS*,RAS*,W
R*,RD*端子全てがネゲートされた状態
ン602に含まれるDRAMステートマシンの状態遷移
図が示される。各状態は以下に示される通りである。 (1)dP(DRAM PRECHARGE STAT
E) この状態はプリチャージ状態を示す。RAS*,CAS
*(CASL*,CASH*)共にハイレベルのネゲー
ト状態にある。アドレス線、CS*、RD*、WR*、
データ線は、この状態の時にもアクティブで有りうる。
何故ならば、DRAM以外のメモリアクセスが起こるか
らである。 (2)dPx(DRAM PRECHARGE EXT
RA STATE) プリチャージ状態を示す。但し、このステートは、DR
AMのプリチャージ期間を確保するためのステートであ
る。dPに行く前にこのステートを通ることにより、プ
リチャージ期間を2サイクル(100ns20MHの時
で)確保することができる。これは、各種DRAMに適
用可能な充分な値である。 (3)dR(DRAM ROW ADDRESS ST
ATE) DRAMのアクセスにおけるローアドレスを与えるステ
ートである。ステート前半でローアドレスを出力し、後
半も同じアドレスをアサートしつづける。ステート後半
でRAS*をアサートする。この際にRD*,WR*な
どのメモリ制御信号、データバスのアサート等は一切行
わない。本ステートは単にローアドレスを与えるためだ
けにある。唯一の例外は、CBRリフレッシュの場合で
あるCBRリフレッシュ時にはdRステートの頭からC
AS*(以下CASでCASL*,CASH*を総称す
る)がアサートされ、dR,dC,dCxとアサートさ
れ続ける。 (4)dC(DRAM COLUMN ADDRESS
STATE) DRAMのアクセスにおける、カラムアドレスを与える
ステートである。ショートピッチモードの際には、本ス
テートのみで1バーストアクセスが完遂する。サイクル
後半に、CAS*がアサートされ、ネゲートされる。C
AS*端子の出力バッファは、他の出力バッファに比較
して強化されており、半サイクルでアサート→ネゲート
を行うことができる。ショートピッチモードの場合はd
Cサイクルの先頭でRD*端子及びWR*端子をアサー
トし、サイクル終了までアサートを続ける。ショートピ
ッチの際にはウェイト端子のサンプリングはしない。ロ
ングピッチの際には、dCサイクルに来る前に必ずdC
xサイクルに行くので、WR*とRD*はアサートした
状態でdCサイクルに到る。ロングピッチの際には、ウ
ェイト端子はdCxサイクルの終了でサンプルされる。
ウェイトをサンプルしなかった場合には、サイクル半ば
でWR*端子がひき上げられる(ネゲートされる)。R
D*端子は、サイクル終了までアサートされる。ウェイ
トをサンプルした場合には、WR*端子もRD*端子も
アサートしたままで、dCサイクルが繰り返される。ロ
ングピッチの際には、dCサイクル中は常にCAS*は
アサートしつづけられる。リフレッシュサイクル時には
WR*端子もRD*端子もアサートされない。バッテリ
バックアップモード時には、このステートにとどまる。 (5)dCx(DRAM COLUMN EXTRA ADDRESS STAT
E) DRAMのアクセスにおける、カラムアドレスを与える
ステートである。ショートピッチモードでは、本ステー
トには到達しない。ロングピッチモード時の最初のサイ
クルが、このステートとなる。RD*端子はサイクルの
はじめから、WR*端子はサイクル半ばからアサートさ
れる。リフレッシュサイクル時にはRD*端子もWR*
端子もアサートされない。 (6)dI(DRAM IDLE STATE) DRAMアクセス時にRASダウンウェイトを実現する
ステートである。このステートは、CBRリフレ時には
到達しない。このステートではCAS*,RAS*,W
R*,RD*端子全てがネゲートされた状態
【0062】図29には外部アクセスバスステートマシ
ン602に含まれるバスサイズアービトレーションステ
ートマシンの状態遷移図が示される。各状態は以下に示
される通りである。 (1)xI(EXTERNAL BUS IDLE S
TATE) この状態は、本実施例マイクロコンピュータに内蔵のC
PU1又はDMAC4がバスマスタであるが、外部バス
を使用してのアクセスは行われていない。仮に他のメモ
リに対するアクセスが行われているならば、DRAMの
RASダウン状態もこれに相当する。 (2)xRC(EXTERNAL BUS RESCI
ND STATE) 本実施例マイクロコンピュータMCUが、バスアービト
レーションの結果、バス権を開放するときに、このステ
ートを通過する。理由は、制御信号をハイインピーダン
スにする前に、一回ハイレベルにする事を内部論理で行
うためである。これによりプルアップ抵抗の電流値を下
げることができる。ソフトウェアスタンバイ時にも本ス
テートを通過する。 (3)xG(EXTERNAL BUS GRANT
STATE) 本実施例マイクロコンピュータMCUがバスを開放した
状態を作るステートである。同時にソフトウェアスタン
バイ時にもこのステートとなる。このステートの時に
は、全てのアドレスピン、データピンはハイインピーダ
ンスとされ、RAS*,CAS*,RD*,WR*,A
H*等の制御信号は全て、ハイインピーダンスとなる。 (4)xS1(EXTERNAL BUS STATE
1) 32ビットオペランドを8ビット空間に読み書きする際
に、最初に到達するステートである。アドレスの下2ビ
ット{A0,A1}は{0,0}を出力する。このアク
セスのオペレーションが続く限りは、本ステートをくり
返す。 (5)xS2(EXTERNAL BUS STATE
2) 32ビットオペランドを8ビット空間に読み書きする際
に、2つ目のバイトをアクセスをする時到達するステー
トである。アドレスの下2ビットはA1=0,A0=1
を出力する。この2バイト目のアクセスが続く限りは本
ステートを繰り返す。 (6)xS3(EXTERNAL BUS STATE
3) 32ビットオペランドを8ビット空間に読み書きする際
に、3つ目のバイトをアクセスをする際に本ステートに
到達する。アドレスの下2ビットはA1=1,A0=0
を出力する。16ビットオペランドを8ビット空間に読
み書きする際に、1つ目のバイトをアクセスをする際に
本ステートに到達する。アドレスの下2ビットはA1=
X,A0=0を出力する。32ビットオペランドを16
ビット空間に読み書きする際に、1つ目のワードをアク
セスをする際に本ステートに到達する。アドレスの下2
ビットはA1=0,A0=0を出力する。各アドレスが
続く限りは、本ステートを繰り返す。 (7)xS4(EXTERNAL BUS STATE
4) 32ビットオペランドを8ビット空間に読み書きする際
に、4つ目のバイトをアクセスをする際に本ステートに
到達する。アドレスの下2ビットはA1=1,A1=1
を出力する。16ビットオペランドを8ビット空間に読
み書きする際に、2つ目のバイトをアクセスをする際に
本ステートに到達する。アドレスの下2ビットはA1=
X,A0=1を出力する。32ビットオペランドを16
ビット空間に読み書きする際に、2つ目のワードをアク
セスをする際に本ステートに到達する。アドレスの下2
ビットはA1=1,A0=0を出力する。
ン602に含まれるバスサイズアービトレーションステ
ートマシンの状態遷移図が示される。各状態は以下に示
される通りである。 (1)xI(EXTERNAL BUS IDLE S
TATE) この状態は、本実施例マイクロコンピュータに内蔵のC
PU1又はDMAC4がバスマスタであるが、外部バス
を使用してのアクセスは行われていない。仮に他のメモ
リに対するアクセスが行われているならば、DRAMの
RASダウン状態もこれに相当する。 (2)xRC(EXTERNAL BUS RESCI
ND STATE) 本実施例マイクロコンピュータMCUが、バスアービト
レーションの結果、バス権を開放するときに、このステ
ートを通過する。理由は、制御信号をハイインピーダン
スにする前に、一回ハイレベルにする事を内部論理で行
うためである。これによりプルアップ抵抗の電流値を下
げることができる。ソフトウェアスタンバイ時にも本ス
テートを通過する。 (3)xG(EXTERNAL BUS GRANT
STATE) 本実施例マイクロコンピュータMCUがバスを開放した
状態を作るステートである。同時にソフトウェアスタン
バイ時にもこのステートとなる。このステートの時に
は、全てのアドレスピン、データピンはハイインピーダ
ンスとされ、RAS*,CAS*,RD*,WR*,A
H*等の制御信号は全て、ハイインピーダンスとなる。 (4)xS1(EXTERNAL BUS STATE
1) 32ビットオペランドを8ビット空間に読み書きする際
に、最初に到達するステートである。アドレスの下2ビ
ット{A0,A1}は{0,0}を出力する。このアク
セスのオペレーションが続く限りは、本ステートをくり
返す。 (5)xS2(EXTERNAL BUS STATE
2) 32ビットオペランドを8ビット空間に読み書きする際
に、2つ目のバイトをアクセスをする時到達するステー
トである。アドレスの下2ビットはA1=0,A0=1
を出力する。この2バイト目のアクセスが続く限りは本
ステートを繰り返す。 (6)xS3(EXTERNAL BUS STATE
3) 32ビットオペランドを8ビット空間に読み書きする際
に、3つ目のバイトをアクセスをする際に本ステートに
到達する。アドレスの下2ビットはA1=1,A0=0
を出力する。16ビットオペランドを8ビット空間に読
み書きする際に、1つ目のバイトをアクセスをする際に
本ステートに到達する。アドレスの下2ビットはA1=
X,A0=0を出力する。32ビットオペランドを16
ビット空間に読み書きする際に、1つ目のワードをアク
セスをする際に本ステートに到達する。アドレスの下2
ビットはA1=0,A0=0を出力する。各アドレスが
続く限りは、本ステートを繰り返す。 (7)xS4(EXTERNAL BUS STATE
4) 32ビットオペランドを8ビット空間に読み書きする際
に、4つ目のバイトをアクセスをする際に本ステートに
到達する。アドレスの下2ビットはA1=1,A1=1
を出力する。16ビットオペランドを8ビット空間に読
み書きする際に、2つ目のバイトをアクセスをする際に
本ステートに到達する。アドレスの下2ビットはA1=
X,A0=1を出力する。32ビットオペランドを16
ビット空間に読み書きする際に、2つ目のワードをアク
セスをする際に本ステートに到達する。アドレスの下2
ビットはA1=1,A0=0を出力する。
【0063】図30には外部アクセスバスステートマシ
ン602に含まれる外部ウェイト生成ステートマシンの
状態遷移図が示される。ウェイトステートが挿入される
局面は、(a).SRAMの2ステートアクセスにおい
て2ステート目(sLステート)が反復される、
(b).DRAMのロングピッチアクセスにおいてカラ
ムアドレスの2ステート目(dCステート)が反復され
る、(c).I/OMPXアクセスにおいてI/Oアク
セスの最後から2ステート目(pD1ステート)が反復
される、の3通りである。上記の反復するステートをナ
ンド反復させるかを決めるのが外部ウェイト生成ステー
トマシンである。以下に外部ウェイト生成ステートマシ
ンの各ステートを説明する。本ステートマシンは、内部
アドレスバスの値をデコードした結果を保持しておくと
いう機能も兼ね備えている。 (1)wTHR(WAIT THREE STATE) 3ステートのウェイトステートを挿入する際に最初に到
達するステートである。このステートは、外部アクセス
用のステートマシンがウェイトステートを受け付けるサ
イクルに到達するまで反復する。外部アクセス用のステ
ートマシンがウェイトステートを受け付けて反復するサ
イクルにはいると、はじめてカウントをはじめ、wTH
R→wTWO→wONE→wNWのようにそのサイクル
を反復する。結果として、ベースとなるサイクルに3つ
のウェイトステートが挿入される。 (2)wTWO(WAIT TWO STATE) 2ウェイトステートを格外部アクセスサイクル内に挿入
する時メモリアクセスの最初で到達するステートであ
る。2ウェイトステートの空間にアクセスした時は外部
アクセス用のステートマシンがウェイトステートを受け
付けて反復するサイクルにはいるまでwTWOステート
で反復する。外部アクセス用のステートマシンがウェイ
トステートを受け付けるステートに入ると、はじめてカ
ウントをはじめ、wTWO→wONE→wNWのように
反復サイクルを3回反復する。結果として、ベースとな
るステート数に2つのウェイトステートが挿入される。
2ウェイトステートを超えるウェイトステートである3
ウェイトステートが挿入される場合にも、本ステートを
通過する。この際には、本ステートが反復されることは
ない。 (3)wONE(WAIT ONE STATE) 1ウェイトステートを各外部アクセスサイクルに挿入す
る際に、メモリアクセスの最初で到達するステートであ
る。1ウェイトステートを挿入する空間にアクセスした
時は、外部アクセス用のステートマシンがウェイトステ
ートを受け付けるサイクルに到達するまでは、wONE
ステートを反復する。外部アクセス用ステートマシンが
ウェイトステートを受け付けるサイクルに到達するサイ
クルにはいるとはじめてカウントをはじめ、wONE→
wNWのように反復すべき外部アクセス用ステートを2
回反復する。結果として、ベースとなる外部アクセスに
対して1個のウェイトステートが挿入される。1ウェイ
トステートを超えるウェイトステートを挿入する際に
は、本ステートを通過するが、この際にはwONEは1
回通過するのみであり、反復されることはない。 (4)wNW(WAIT NO WAIT STAT
E) 本ステートは外部アクセスサイクルを行っていない場
合、外部バスアクセスが実行中だが、挿入ウェイトス
テートが不要の場合、外部バスアクセスを実行する場
合で、ウェイトステート挿入の際に、反復されるバスサ
イクルの最後のサイクルを実行する場合に到達する。リ
セットの場合には、まず、このステートに到達する。
ン602に含まれる外部ウェイト生成ステートマシンの
状態遷移図が示される。ウェイトステートが挿入される
局面は、(a).SRAMの2ステートアクセスにおい
て2ステート目(sLステート)が反復される、
(b).DRAMのロングピッチアクセスにおいてカラ
ムアドレスの2ステート目(dCステート)が反復され
る、(c).I/OMPXアクセスにおいてI/Oアク
セスの最後から2ステート目(pD1ステート)が反復
される、の3通りである。上記の反復するステートをナ
ンド反復させるかを決めるのが外部ウェイト生成ステー
トマシンである。以下に外部ウェイト生成ステートマシ
ンの各ステートを説明する。本ステートマシンは、内部
アドレスバスの値をデコードした結果を保持しておくと
いう機能も兼ね備えている。 (1)wTHR(WAIT THREE STATE) 3ステートのウェイトステートを挿入する際に最初に到
達するステートである。このステートは、外部アクセス
用のステートマシンがウェイトステートを受け付けるサ
イクルに到達するまで反復する。外部アクセス用のステ
ートマシンがウェイトステートを受け付けて反復するサ
イクルにはいると、はじめてカウントをはじめ、wTH
R→wTWO→wONE→wNWのようにそのサイクル
を反復する。結果として、ベースとなるサイクルに3つ
のウェイトステートが挿入される。 (2)wTWO(WAIT TWO STATE) 2ウェイトステートを格外部アクセスサイクル内に挿入
する時メモリアクセスの最初で到達するステートであ
る。2ウェイトステートの空間にアクセスした時は外部
アクセス用のステートマシンがウェイトステートを受け
付けて反復するサイクルにはいるまでwTWOステート
で反復する。外部アクセス用のステートマシンがウェイ
トステートを受け付けるステートに入ると、はじめてカ
ウントをはじめ、wTWO→wONE→wNWのように
反復サイクルを3回反復する。結果として、ベースとな
るステート数に2つのウェイトステートが挿入される。
2ウェイトステートを超えるウェイトステートである3
ウェイトステートが挿入される場合にも、本ステートを
通過する。この際には、本ステートが反復されることは
ない。 (3)wONE(WAIT ONE STATE) 1ウェイトステートを各外部アクセスサイクルに挿入す
る際に、メモリアクセスの最初で到達するステートであ
る。1ウェイトステートを挿入する空間にアクセスした
時は、外部アクセス用のステートマシンがウェイトステ
ートを受け付けるサイクルに到達するまでは、wONE
ステートを反復する。外部アクセス用ステートマシンが
ウェイトステートを受け付けるサイクルに到達するサイ
クルにはいるとはじめてカウントをはじめ、wONE→
wNWのように反復すべき外部アクセス用ステートを2
回反復する。結果として、ベースとなる外部アクセスに
対して1個のウェイトステートが挿入される。1ウェイ
トステートを超えるウェイトステートを挿入する際に
は、本ステートを通過するが、この際にはwONEは1
回通過するのみであり、反復されることはない。 (4)wNW(WAIT NO WAIT STAT
E) 本ステートは外部アクセスサイクルを行っていない場
合、外部バスアクセスが実行中だが、挿入ウェイトス
テートが不要の場合、外部バスアクセスを実行する場
合で、ウェイトステート挿入の際に、反復されるバスサ
イクルの最後のサイクルを実行する場合に到達する。リ
セットの場合には、まず、このステートに到達する。
【0064】図31には外部アクセスバスステートマシ
ン602に含まれる通常空間アクセスステートマシンの
状態遷移図が示される。通常空間アクセスステートマシ
ンは、通常空間のアクセスが行われた際に、正しい信号
線のレベルを上げ下げして、正しいタイミングでデータ
をラッチ(リード時)または、アサート(ライト時)で
きるようにするための機構である。当該通常空間アクセ
スステートマシンは、sI(アイドル)、sF(Fir
st Cycle)、sL(Last Cycle)の
3つのステートから成り、これらは、リードアクセスの
際にも、ライトアクセスの際にも共用されている。ま
た、1サイクルアクセスの際にはsLだけで終了し、2
サイクルアクセスの場合には、sF→sLでアクセスが
終了する。本ステートマシンの特色として、極めて多く
の状態を1つのステートに集約しているという点があ
り、その意味では、1つのステートに対して、様々な制
御線の状態が存在する。以下に示すステートの説明にお
いては、なるべく、これらの制御線の状態を全て記述す
る。 (1)sI(SRAM IDLE STATE) 当該状態sIはアイドル状態である。外部アクセスをし
ていない場合、他のDRAMやI/OMPX周辺をアク
セスする場合に本ステートに到達、または居つづける。
また、リセット時にも本ステートに先ず到達する。 (2)sF(SRAM FIRST STATE) SRAMの2サイクルアクセスの際に、最初のサイクル
で到達するステートである。このサイクルでは、サイク
ルはじめ(φ立ち上がり時)にRD*が下がり、サイク
ル半ば(φ立ち下がり時)にWR*が下がり、データ出
力をはじめる。CS*は、I/OMUX空間と共用の端
子(現在はCS5*)については、サイクル半ばよりの
アサートとなるが、それ以外の端子は、サイクルはじめ
からアドレスデコード結果に応じてのアサートとなる。
リード・ライトにより、RD*,WR*,データ線のと
り扱いが異なる。sFサイクルの終わりで、ラッチされ
た外部端子の状態で、sFサイクルの次のsLサイクル
の次にsLサイクルが反復されるかが決まる。 (3)sL(SRAM LAST STATE) 通常空間をアクセスして、1サイクル空間だった時と、
2サイクル以上の空間だった時とで、動作が異なるの
で、これらに基づいて説明を行う。1サイクル通常空間
のアクセスの際には、sLは必ず1サイクルのみ実行さ
れ、外部端子、内部ウェイトステートはサンプルせず、
必ず1サイクルで次のサイクルに移る。1サイクルリー
ドの際には、サイクルのはじめ(φ立ち上がり)でRD
*がアサートされ、アドレスが更新され、サイクル終了
時(φ立ち下がり)にデータがラッチされRD*がネゲ
ートされる。1サイクルライトの際には、サイクルのは
じめ(φ立ち上がり)にアドレスが更新され、サイクル
半ば(φ立ち下がり)にWR*がアサートされ、データ
線のアサートがはじまる。サイクル終了時(φ立ち上が
り)にWR*がネゲートされる。2サイクル以上の通常
空間アクセスの際には、前にサンプルされた外部ウェイ
ト端子の値と、内部ウェイトの設定に基づき、sLステ
ートは反復される可能性がある。この際には、通常空間
アクセスステートマシンは、必ずsFステートに先に行
き、sLステートに来る。リードサイクルにおいては、
アドレスはsFステートでアサートしはじめた値を保持
する。CS*,RD*もアサートされつづける。sLス
テートの反復が終わった時にのみ、CS*,RD*が立
ち上げられ、アドレスが更新されることになる。これは
最後のsLサイクル終わりで行われる。ライトサイクル
の場合もsFサイクルでアサートされたアドレスをsL
サイクルが反復される限り保持する。CS*,WR*に
ついては、sFサイクルでアサートされたまま、アサー
トを行う。sLサイクルの最後の反復のサイクル半ばで
WR*はネゲートされ、サイクルの最後でCS*はネゲ
ートされる。sLサイクルの定義はあいまいなため、こ
れらのあいまいさを解消するために、通常空間のsLの
区別のために、通常空間サブステートフラッグが存在す
る。これについては次に述べる。
ン602に含まれる通常空間アクセスステートマシンの
状態遷移図が示される。通常空間アクセスステートマシ
ンは、通常空間のアクセスが行われた際に、正しい信号
線のレベルを上げ下げして、正しいタイミングでデータ
をラッチ(リード時)または、アサート(ライト時)で
きるようにするための機構である。当該通常空間アクセ
スステートマシンは、sI(アイドル)、sF(Fir
st Cycle)、sL(Last Cycle)の
3つのステートから成り、これらは、リードアクセスの
際にも、ライトアクセスの際にも共用されている。ま
た、1サイクルアクセスの際にはsLだけで終了し、2
サイクルアクセスの場合には、sF→sLでアクセスが
終了する。本ステートマシンの特色として、極めて多く
の状態を1つのステートに集約しているという点があ
り、その意味では、1つのステートに対して、様々な制
御線の状態が存在する。以下に示すステートの説明にお
いては、なるべく、これらの制御線の状態を全て記述す
る。 (1)sI(SRAM IDLE STATE) 当該状態sIはアイドル状態である。外部アクセスをし
ていない場合、他のDRAMやI/OMPX周辺をアク
セスする場合に本ステートに到達、または居つづける。
また、リセット時にも本ステートに先ず到達する。 (2)sF(SRAM FIRST STATE) SRAMの2サイクルアクセスの際に、最初のサイクル
で到達するステートである。このサイクルでは、サイク
ルはじめ(φ立ち上がり時)にRD*が下がり、サイク
ル半ば(φ立ち下がり時)にWR*が下がり、データ出
力をはじめる。CS*は、I/OMUX空間と共用の端
子(現在はCS5*)については、サイクル半ばよりの
アサートとなるが、それ以外の端子は、サイクルはじめ
からアドレスデコード結果に応じてのアサートとなる。
リード・ライトにより、RD*,WR*,データ線のと
り扱いが異なる。sFサイクルの終わりで、ラッチされ
た外部端子の状態で、sFサイクルの次のsLサイクル
の次にsLサイクルが反復されるかが決まる。 (3)sL(SRAM LAST STATE) 通常空間をアクセスして、1サイクル空間だった時と、
2サイクル以上の空間だった時とで、動作が異なるの
で、これらに基づいて説明を行う。1サイクル通常空間
のアクセスの際には、sLは必ず1サイクルのみ実行さ
れ、外部端子、内部ウェイトステートはサンプルせず、
必ず1サイクルで次のサイクルに移る。1サイクルリー
ドの際には、サイクルのはじめ(φ立ち上がり)でRD
*がアサートされ、アドレスが更新され、サイクル終了
時(φ立ち下がり)にデータがラッチされRD*がネゲ
ートされる。1サイクルライトの際には、サイクルのは
じめ(φ立ち上がり)にアドレスが更新され、サイクル
半ば(φ立ち下がり)にWR*がアサートされ、データ
線のアサートがはじまる。サイクル終了時(φ立ち上が
り)にWR*がネゲートされる。2サイクル以上の通常
空間アクセスの際には、前にサンプルされた外部ウェイ
ト端子の値と、内部ウェイトの設定に基づき、sLステ
ートは反復される可能性がある。この際には、通常空間
アクセスステートマシンは、必ずsFステートに先に行
き、sLステートに来る。リードサイクルにおいては、
アドレスはsFステートでアサートしはじめた値を保持
する。CS*,RD*もアサートされつづける。sLス
テートの反復が終わった時にのみ、CS*,RD*が立
ち上げられ、アドレスが更新されることになる。これは
最後のsLサイクル終わりで行われる。ライトサイクル
の場合もsFサイクルでアサートされたアドレスをsL
サイクルが反復される限り保持する。CS*,WR*に
ついては、sFサイクルでアサートされたまま、アサー
トを行う。sLサイクルの最後の反復のサイクル半ばで
WR*はネゲートされ、サイクルの最後でCS*はネゲ
ートされる。sLサイクルの定義はあいまいなため、こ
れらのあいまいさを解消するために、通常空間のsLの
区別のために、通常空間サブステートフラッグが存在す
る。これについては次に述べる。
【0065】図32には外部アクセスバスステートマシ
ン602に含まれる通常空間サブステートフラッグの状
態遷移図が示される。通常空間のステートマシンのステ
ートsLは、1サイクルアクセスが連発した時でも、ウ
ェイトステートが入ったときでも、どちらの場合にも、
sLが連発することとなる。これを分別することが本ス
テートマシンの目的である。 (1)sS(SRAM SINGLE CYCLE ACCESS STATE) sSステートは、通常空間アクセスステートマシンが1
NACTIVEの時(具体的にはsIステートの時)、
通常空間アクセスステートマシンが1サイクル空間にあ
る時(sLステートの時で1サイクル空間アクセス時)
の何れか一つにあてはまる場合に到達する。 (2)SM(SRAM MULTIPLE CYCLE ACCESS STATE) SMステートは、複数サイクルアクセス時に到達する。
ン602に含まれる通常空間サブステートフラッグの状
態遷移図が示される。通常空間のステートマシンのステ
ートsLは、1サイクルアクセスが連発した時でも、ウ
ェイトステートが入ったときでも、どちらの場合にも、
sLが連発することとなる。これを分別することが本ス
テートマシンの目的である。 (1)sS(SRAM SINGLE CYCLE ACCESS STATE) sSステートは、通常空間アクセスステートマシンが1
NACTIVEの時(具体的にはsIステートの時)、
通常空間アクセスステートマシンが1サイクル空間にあ
る時(sLステートの時で1サイクル空間アクセス時)
の何れか一つにあてはまる場合に到達する。 (2)SM(SRAM MULTIPLE CYCLE ACCESS STATE) SMステートは、複数サイクルアクセス時に到達する。
【0066】図33にはI/OMUXアクセスステート
マシンの状態遷移図が示される。 (1)pA1(PERIPHERAL ADDRESS
STATE1) pA1ステートは、MPXI/O空間をアクセスした時
に最初に到達するステートである。このステートでは、
サイクル半ばにAH*端子がネゲートされ、データバス
にアドレスがのる。CS*は下がらない。このサイクル
はリードの場合にもライトの場合にも共通である。 (2)pA2(PERIPHERAL ADDRESS
STATE2) pA2ステートは、MPXI/O空間をアクセスした時
に2サイクル目に到達するステートである。このステー
トでは、サイクル半ばにAH端子が下がる。データバス
上には本サイクル中ずっとアドレスがのる。CS*端子
は、本サイクル半ばに下がる。 (3)pD1(PERIPHERAL DATA ST
ATE1) pD1ステートは、MPXI/O空間をアクセスした時
に3サイクル目に到達するステートである。リードの場
合は、このステートのはじめでRD*端子がアサートさ
れ、データバスはハイインピーダンスとされる。ライト
の場合は、このステートのはじめでデータバス上にデー
タを出力し、ステート半ばでWR*端子をアサートす
る。pD1ステートは、ウェイト端子がpA2の最後に
アサートされていたり、内部ウェイトステートコントロ
ーラがウェイトステート挿入を指定していた場合には、
反復される。例えば3つウェイトステートが挿入される
場合には、 →pA1→pA2→pD1→pD1→pD1→pD1→
pD2→… という順番に状態が遷移される。状態pA2に続くpD
1では、WR*のアサートはステート半ばに行われる
が、その後の各状態pD1,pD1,pD1では、ステ
ートのはじめから終わりまでアサートされっぱなしであ
る。データも保持される。リードの場合にpD1の反復
があった場合はその最後のpD1サイクルの終わりでデ
ータをラッチする。 (4)pD2(PERIPHERAL DATA ST
ATE2) pD2ステートは、MPXI/O空間をアクセスした時
に最後のサイクルを構成するステートである。リードの
場合は、サイクルのはじめでRD*端子がネゲートさ
れ、サイクルの半ばでCS*端子がネゲートされる。ラ
イトの場合は、サイクルの間ずっとデータバス上ではデ
ータが保持される。また、WR*端子はサイクル半ばで
ネゲートされる。 (5)pI(PERIPHERAL IDLE STA
TE) pIステートは、周辺チップのアクセスがアイドル状態
のステートを構成する。RD*端子、AH*端子、CS
*端子は全てネゲート状態となる。
マシンの状態遷移図が示される。 (1)pA1(PERIPHERAL ADDRESS
STATE1) pA1ステートは、MPXI/O空間をアクセスした時
に最初に到達するステートである。このステートでは、
サイクル半ばにAH*端子がネゲートされ、データバス
にアドレスがのる。CS*は下がらない。このサイクル
はリードの場合にもライトの場合にも共通である。 (2)pA2(PERIPHERAL ADDRESS
STATE2) pA2ステートは、MPXI/O空間をアクセスした時
に2サイクル目に到達するステートである。このステー
トでは、サイクル半ばにAH端子が下がる。データバス
上には本サイクル中ずっとアドレスがのる。CS*端子
は、本サイクル半ばに下がる。 (3)pD1(PERIPHERAL DATA ST
ATE1) pD1ステートは、MPXI/O空間をアクセスした時
に3サイクル目に到達するステートである。リードの場
合は、このステートのはじめでRD*端子がアサートさ
れ、データバスはハイインピーダンスとされる。ライト
の場合は、このステートのはじめでデータバス上にデー
タを出力し、ステート半ばでWR*端子をアサートす
る。pD1ステートは、ウェイト端子がpA2の最後に
アサートされていたり、内部ウェイトステートコントロ
ーラがウェイトステート挿入を指定していた場合には、
反復される。例えば3つウェイトステートが挿入される
場合には、 →pA1→pA2→pD1→pD1→pD1→pD1→
pD2→… という順番に状態が遷移される。状態pA2に続くpD
1では、WR*のアサートはステート半ばに行われる
が、その後の各状態pD1,pD1,pD1では、ステ
ートのはじめから終わりまでアサートされっぱなしであ
る。データも保持される。リードの場合にpD1の反復
があった場合はその最後のpD1サイクルの終わりでデ
ータをラッチする。 (4)pD2(PERIPHERAL DATA ST
ATE2) pD2ステートは、MPXI/O空間をアクセスした時
に最後のサイクルを構成するステートである。リードの
場合は、サイクルのはじめでRD*端子がネゲートさ
れ、サイクルの半ばでCS*端子がネゲートされる。ラ
イトの場合は、サイクルの間ずっとデータバス上ではデ
ータが保持される。また、WR*端子はサイクル半ばで
ネゲートされる。 (5)pI(PERIPHERAL IDLE STA
TE) pIステートは、周辺チップのアクセスがアイドル状態
のステートを構成する。RD*端子、AH*端子、CS
*端子は全てネゲート状態となる。
【0067】<9.バスステートコントローラの動作>
【0068】次に本実施例マイクロコンピュータMCU
の主な動作をバスステートコントローラに着目して説明
する。 (1)リセット時の動作 ユーザシステムがNMI*端子をネゲートしながらRE
S*をアサートするとマイクロコントローラはパワーオ
ンリセット処理を行なう。ユーザシステムがNMI*を
アサートしながらRES*をアサートするとマニュアル
リセット処理を行なう。これらの処理はリセット生成論
理がRES信号とRSTMP信号を使ってマイクロコン
ピュータ内の各モジュールに伝達する。CPU1,リフ
レッシュカウンタ35,DMAC4,I/O,ポート,
外部アクセスバスステートマシン602、内部アクセス
バスステートマシン603がリセット状態にされる。リ
セット状態になると実行途中の処理はすべて打ち切られ
てリセット状態になる。リセット状態にはマイクロコン
ピュータに接続された周辺チップやDRAM,RAM,
ROM等に対してのバスオペレーションは不活性状態に
なる。パワーオンリセットの場合には即座に不活性状態
となり、バスオペレーションを途中で打ち切って中止す
る事は無い。マニュアルリセットの場合には、実行中ま
たはペンディングになっているバスオペレーションを最
後まで終えた後にリセット状態に入る。 (2)パワーオンリセット時のバスステートマシンの動
作を説明する。内部バスステートマシン603はその前
にどの状態にあろうとパワーオンリセット時には即座に
T3Eステートに遷移する。外部バスアクセスステート
マシン602のステートはパワーオンリセット時に次の
ように遷移する。DRAMステートマシンはdpxステ
ート(DRAM Precharge Extra State)へ、バスサイズ/
アービトレーションステートマシンはxIステート(Ex
ternal Bus Idle State)へ、外部ウエイト生成ステー
トマシンはwNWステート(Wait No Wait State)へ、
通常空間アクセスステートマシンはsIステート(SRAM
Idle State)へ、通常空間アクセスサブステートフラ
ッグはsSステート(SRAM Single Cycle Access Stat
e)へ、I/OMUXアクセスステートマシンはpIス
テート(Peripheral Ilde State)へと遷移する。 (3)マニュアルリセット時のバスステートマシンの動
作を説明する。マニュアルリセット時にはバスステート
マシンは実行中のバスオペレーションは最後まで行な
う。しかしながら新規のバスアクセス要求は無視する。
しかしながら、新たなるバス要求が無いのとマニュアル
リセット時には外部ウエイト端子の内容は無視するの
で、有限の時間が経ったあとにステートマシンはパワー
オンリセット時と同じステートに到達する。内部アクセ
スバスステートマシン603はその前にどの状態にあろ
うとパワーオンリセット時には即座にT3Eステートに
遷移する。外部アクセスバスステートマシン602のス
テートはパワーオンリセット時に次のように遷移する。
DRAMステートマシンはdPxステート(DRAM Prech
arge Extra State)へ、バスサイズ/アービトレーショ
ンステートマシンはxIステート(External Bus Idle
State)へ、外部ウエイト生成ステートマシンはwNW
ステート(Wait No Wait State)へ、通常空間アクセス
ステートマシンはsIステート(SRAM Idle State)
へ、通常空間アクセスサブステートフラッグはsSステ
ート(SRAM Single Cycle Access State)へ、I/OM
uxアクセスステートマシンはpIステート(Peripher
al Ilde State)へと遷移する。
の主な動作をバスステートコントローラに着目して説明
する。 (1)リセット時の動作 ユーザシステムがNMI*端子をネゲートしながらRE
S*をアサートするとマイクロコントローラはパワーオ
ンリセット処理を行なう。ユーザシステムがNMI*を
アサートしながらRES*をアサートするとマニュアル
リセット処理を行なう。これらの処理はリセット生成論
理がRES信号とRSTMP信号を使ってマイクロコン
ピュータ内の各モジュールに伝達する。CPU1,リフ
レッシュカウンタ35,DMAC4,I/O,ポート,
外部アクセスバスステートマシン602、内部アクセス
バスステートマシン603がリセット状態にされる。リ
セット状態になると実行途中の処理はすべて打ち切られ
てリセット状態になる。リセット状態にはマイクロコン
ピュータに接続された周辺チップやDRAM,RAM,
ROM等に対してのバスオペレーションは不活性状態に
なる。パワーオンリセットの場合には即座に不活性状態
となり、バスオペレーションを途中で打ち切って中止す
る事は無い。マニュアルリセットの場合には、実行中ま
たはペンディングになっているバスオペレーションを最
後まで終えた後にリセット状態に入る。 (2)パワーオンリセット時のバスステートマシンの動
作を説明する。内部バスステートマシン603はその前
にどの状態にあろうとパワーオンリセット時には即座に
T3Eステートに遷移する。外部バスアクセスステート
マシン602のステートはパワーオンリセット時に次の
ように遷移する。DRAMステートマシンはdpxステ
ート(DRAM Precharge Extra State)へ、バスサイズ/
アービトレーションステートマシンはxIステート(Ex
ternal Bus Idle State)へ、外部ウエイト生成ステー
トマシンはwNWステート(Wait No Wait State)へ、
通常空間アクセスステートマシンはsIステート(SRAM
Idle State)へ、通常空間アクセスサブステートフラ
ッグはsSステート(SRAM Single Cycle Access Stat
e)へ、I/OMUXアクセスステートマシンはpIス
テート(Peripheral Ilde State)へと遷移する。 (3)マニュアルリセット時のバスステートマシンの動
作を説明する。マニュアルリセット時にはバスステート
マシンは実行中のバスオペレーションは最後まで行な
う。しかしながら新規のバスアクセス要求は無視する。
しかしながら、新たなるバス要求が無いのとマニュアル
リセット時には外部ウエイト端子の内容は無視するの
で、有限の時間が経ったあとにステートマシンはパワー
オンリセット時と同じステートに到達する。内部アクセ
スバスステートマシン603はその前にどの状態にあろ
うとパワーオンリセット時には即座にT3Eステートに
遷移する。外部アクセスバスステートマシン602のス
テートはパワーオンリセット時に次のように遷移する。
DRAMステートマシンはdPxステート(DRAM Prech
arge Extra State)へ、バスサイズ/アービトレーショ
ンステートマシンはxIステート(External Bus Idle
State)へ、外部ウエイト生成ステートマシンはwNW
ステート(Wait No Wait State)へ、通常空間アクセス
ステートマシンはsIステート(SRAM Idle State)
へ、通常空間アクセスサブステートフラッグはsSステ
ート(SRAM Single Cycle Access State)へ、I/OM
uxアクセスステートマシンはpIステート(Peripher
al Ilde State)へと遷移する。
【0069】(4)DRAM空間へのリード動作 CPU1またはDMAC4がDRAM空間へのリード動
作を行なった場合にどのような動作が行われるかを説明
する。CPU1またはDMAC4はバスステートコント
ローラ6に対してBCMD0−3を使用して、I/Oリ
クエストコマンドを送る。I/Oリクエストコマンドの
割り付け例は図22に示される。例えば、CPU1が0
x1234560という番地から32ビットのオペラン
ドを読もうとしたとするとき、CPU1はIAB0−2
3に0x1234560という数値とバスBCMD0−
3にバスに{0111}という値を載せる。上記のアド
レスバスIAB0−23の数値とバスBCMD0−3の
内容に基づき、内部バスアクセスステートマシン603
は次の処理(a)を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、内部バスアクセスステー
トマシン603はアドレスデコード処理を行ない、内部
アクセスでない事を判定する。内部アクセスでは無い事
が解るとT3Eステートを繰り返す。 上記のアドレスバスIAB0−23の数値とバスBCM
D0−3の内容に基づき、外部バスアクセスステートマ
シン602は次に示す処理(a)〜(f)を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、外部アクセスバスステー
トマシン602はアドレスデコード処理を行ない、DR
AMエリアにアクセスを行なった事を判定する。内部ア
クセスでは無い事が解るとT3Eステートを繰り返す。 (b)リセット解除後dPxステートからPxP遷移を
介して、dPステートに至る。DMAC4はリセットさ
れるとインアクティブになる。CPU1はリセット直後
はベクトルフェッチを行なうので最初の数サイクルはD
RAM領域をアクセスに来ない。初回のDRAMアクセ
スがくるまでは、DRAMステートマシンはdPステー
トに留まるので、初回DRAM領域アクセスの場合は必
ずdPステート(DRAM Precharge State)からdRステ
ート( DRAM Row Access State)に遷移する。 (c)dRステートでは、次の処理を行う。ローアドレ
スコンパレータ601のラッチ600にローアドレスを
ラッチする。ステート前半でロー/カラム・アドレスセ
レクタ32でローアドレスを選択してローアドレスをア
ドレス下位部に出力する。(dRステート以外のステー
トでは必ずロー/カラム・アドレスセレクタ32はカラ
ムアドレスを選択してカラムアドレスをアドレス下位部
に出力する。)dRステート後半ではロー・アドレスス
トローブ信号RAS*がアサートされる。 (d)dRステート以降、DRAMアクセスの設定がシ
ョートピッチの場合にはdCステート(DRAM Column Ad
dress State)に、ロングピッチの際にはdCxステー
ト(DRAM Column Address Extra State)に遷移する。 (e)DRAMアクセスの設定がショートピッチの際に
は、dCステートに到達する。dCステートではサイク
ル後半でカラム・アドレス・ストローブ信号CASL*
又はCASH*をアサートし、その後でネゲートする。
ネゲートする直前にデータバスAD0−15の値をラッ
チする。次のアクセスがDRAMに当っていない場合に
は、dCステートからdIステート(DRAM Idle Stat
e)に遷移する。次のアクセスがDRAMに当っている
場合は、現在のローアドレスとラッチされたアドレスを
比較する。比較した結果ローアドレスが一致した場合に
はdCステートからdCステートに遷移する。比較した
結果ローアドレスが不一致の場合にはdCステートから
dPxステートまたはdPステートへ遷移する。プリチ
ャージサイクルを2サイクル挿入する設定になっている
場合にはdPxステートに遷移してさらにdPステート
に遷移した後dRステートに至る。この後は(c)〜
(f)の処理繰り返す。 (f)DRAMアクセスの設定がロングピッチの際に
は、dCxステートに到達する。dCxステートではカ
ラム・アドレス・ストローブ信号CASL*又はCAS
2をネゲートしたままdCステートに遷移する。dCス
テートではサイクル前半でカラム・アドレス・ストロー
ブ信号CASL*又はCAS2をアサートし、サイクル
終端でネゲートする。ネゲートする直前にデータバスあ
d0−15の値をラッチする。次のアクセスがDRAM
に当っていない場合には、dCステートからdIステー
ト(DRAM Idle State)に遷移する。次のアクセスがD
RAMに当っている場合は、現在のローアドレスとラッ
チされたアドレスを比較する。比較した結果ローアドレ
スが一致した場合にはdCステートからdCステートに
遷移する。比較した結果ローアドレスが不一致の場合に
はdCステートからdPxステートまたはdPステート
へ遷移する。プリチャージサイクルを2サイクル挿入す
る設定になっている場合にはdPxステートに遷移して
さらにdPステートに遷移した後dRステートに至る。
この後は(c)〜(f)の処理繰り返すことになる。
作を行なった場合にどのような動作が行われるかを説明
する。CPU1またはDMAC4はバスステートコント
ローラ6に対してBCMD0−3を使用して、I/Oリ
クエストコマンドを送る。I/Oリクエストコマンドの
割り付け例は図22に示される。例えば、CPU1が0
x1234560という番地から32ビットのオペラン
ドを読もうとしたとするとき、CPU1はIAB0−2
3に0x1234560という数値とバスBCMD0−
3にバスに{0111}という値を載せる。上記のアド
レスバスIAB0−23の数値とバスBCMD0−3の
内容に基づき、内部バスアクセスステートマシン603
は次の処理(a)を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、内部バスアクセスステー
トマシン603はアドレスデコード処理を行ない、内部
アクセスでない事を判定する。内部アクセスでは無い事
が解るとT3Eステートを繰り返す。 上記のアドレスバスIAB0−23の数値とバスBCM
D0−3の内容に基づき、外部バスアクセスステートマ
シン602は次に示す処理(a)〜(f)を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、外部アクセスバスステー
トマシン602はアドレスデコード処理を行ない、DR
AMエリアにアクセスを行なった事を判定する。内部ア
クセスでは無い事が解るとT3Eステートを繰り返す。 (b)リセット解除後dPxステートからPxP遷移を
介して、dPステートに至る。DMAC4はリセットさ
れるとインアクティブになる。CPU1はリセット直後
はベクトルフェッチを行なうので最初の数サイクルはD
RAM領域をアクセスに来ない。初回のDRAMアクセ
スがくるまでは、DRAMステートマシンはdPステー
トに留まるので、初回DRAM領域アクセスの場合は必
ずdPステート(DRAM Precharge State)からdRステ
ート( DRAM Row Access State)に遷移する。 (c)dRステートでは、次の処理を行う。ローアドレ
スコンパレータ601のラッチ600にローアドレスを
ラッチする。ステート前半でロー/カラム・アドレスセ
レクタ32でローアドレスを選択してローアドレスをア
ドレス下位部に出力する。(dRステート以外のステー
トでは必ずロー/カラム・アドレスセレクタ32はカラ
ムアドレスを選択してカラムアドレスをアドレス下位部
に出力する。)dRステート後半ではロー・アドレスス
トローブ信号RAS*がアサートされる。 (d)dRステート以降、DRAMアクセスの設定がシ
ョートピッチの場合にはdCステート(DRAM Column Ad
dress State)に、ロングピッチの際にはdCxステー
ト(DRAM Column Address Extra State)に遷移する。 (e)DRAMアクセスの設定がショートピッチの際に
は、dCステートに到達する。dCステートではサイク
ル後半でカラム・アドレス・ストローブ信号CASL*
又はCASH*をアサートし、その後でネゲートする。
ネゲートする直前にデータバスAD0−15の値をラッ
チする。次のアクセスがDRAMに当っていない場合に
は、dCステートからdIステート(DRAM Idle Stat
e)に遷移する。次のアクセスがDRAMに当っている
場合は、現在のローアドレスとラッチされたアドレスを
比較する。比較した結果ローアドレスが一致した場合に
はdCステートからdCステートに遷移する。比較した
結果ローアドレスが不一致の場合にはdCステートから
dPxステートまたはdPステートへ遷移する。プリチ
ャージサイクルを2サイクル挿入する設定になっている
場合にはdPxステートに遷移してさらにdPステート
に遷移した後dRステートに至る。この後は(c)〜
(f)の処理繰り返す。 (f)DRAMアクセスの設定がロングピッチの際に
は、dCxステートに到達する。dCxステートではカ
ラム・アドレス・ストローブ信号CASL*又はCAS
2をネゲートしたままdCステートに遷移する。dCス
テートではサイクル前半でカラム・アドレス・ストロー
ブ信号CASL*又はCAS2をアサートし、サイクル
終端でネゲートする。ネゲートする直前にデータバスあ
d0−15の値をラッチする。次のアクセスがDRAM
に当っていない場合には、dCステートからdIステー
ト(DRAM Idle State)に遷移する。次のアクセスがD
RAMに当っている場合は、現在のローアドレスとラッ
チされたアドレスを比較する。比較した結果ローアドレ
スが一致した場合にはdCステートからdCステートに
遷移する。比較した結果ローアドレスが不一致の場合に
はdCステートからdPxステートまたはdPステート
へ遷移する。プリチャージサイクルを2サイクル挿入す
る設定になっている場合にはdPxステートに遷移して
さらにdPステートに遷移した後dRステートに至る。
この後は(c)〜(f)の処理繰り返すことになる。
【0070】(5)DRAM空間へのライト動作 CPU1またはDMAC4がDRAM空間へのライト動
作を行なった場合にどのような動作になるかを説明す
る。CPU1またはDMAC4はバスステートコントロ
ーラ6に対してバスBCMD0−3を使用して、I/O
リクエストコマンドを送る。I/Oリクエストコマンド
の割り付け例は図22に示される。例えば、CPU1が
0x1234560という番地に32ビットのオペランド
を書こうとしたとすると、CPU1はアドレスバスIA
B0−23に0x1234560という数値とバスBC
MD0−3に{0011}という値を載せる。上記のア
ドレスバスIAB0−23の数値とバスBCMD0−3
の内容に基づき、内部アクセスバスステートマシン60
3は次の処理を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、内部アクセスバスステー
トマシン603はアドレスデコード処理を行ない内部ア
クセスでない事を判定する。内部アクセスでは無い事が
解るとT3Eステートを繰り返す。 (b)DRAMアクセスがショートピッチ設定の場合に
は内部アクセスバスステートマシン603はCPU1に
対してBUSRDY信号を発生する。 上記のアドレスバスIAB0−23の数値とバスBCM
D0−3の内容に基づき、外部アクセスバスステートマ
シン603は次の処理を行なう。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、外部アクセスバスステー
トマシン603はアドレスデコード処理を行ないDRA
Mエリアにアクセスである事を判定する。 (b)リセット解除後dPxステートからPxP遷移を
介して、dPステートに至る。DMAC4はリセットさ
れるとインアクティブになる。CPU1はリセット直後
はベクトルフェッチを行なうので最初の数サイクルはD
RAM領域をアクセスに来ない。初回のDRAMアクセ
スがくるまでは、DRAMステートマシンはdPステー
トに留まるので、初回DRAM領域アクセスの場合は必
ずdPステート(DRAM Precharge State)からdRステ
ート( DRAM Row Access State)に遷移する。 (c)dRステートでは、次の事を行なう。ローアドレ
スコンパレータ601のラッチ600にローアドレスを
ラッチする。ステート前半でロー/カラム・アドレスセ
レクタ32でローアドレスを選択してローアドレスをア
ドレス下位部に出力する。(dRステート以外のステー
トでは必ずロー/カラム・アドレスセレクタ32はカラ
ムアドレスを選択してカラムアドレスをアドレス下位部
に出力する。)dRステート後半ではロー・アドレス・
ストローブ信号RAS*がアサートされる。DRAMア
クセス方法がショートピッチ設定で次のアクセス要求が
ライトの場合にはCPU1にBUSRDY信号がこのサ
イクルで返される。CPU1は次のアクセスを開始す
る。 (d)dRステート以降、DRAMアクセスの設定がシ
ョートピッチの場合にはdCステート(DRAM Column Ad
dress State)に、ロングピッチの際にはdCxステー
ト(DRAM Column Address Extra State)に遷移する。 (e)DRAMアクセスの設定がショートピッチの際に
は、dCステートに到達する。dCステートではサイク
ル後半でカラム・アドレス・ストローブ信号かs1*又
はかs2*がアサートされて、ネゲートされる。ネゲー
トされる直前にデータバスADB0−15の値をラッチ
する。次のアクセスがDRAMに当っていない場合に
は、dCステートからdI(DRAM Idle State)に遷移
する。次のアクセスがDRAMに当っている場合は、現
在のローアドレスとラッチされたアドレスを比較する。
比較した結果ローアドレスが一致した場合にはdCステ
ートからdCステートに遷移する。比較した結果ローア
ドレスが不一致の場合にはdCステートからdPxステ
ートまたはdPステートへ遷移する。プリチャージサイ
クルを2サイクル挿入する設定になっている場合にはd
Pxステートに遷移してさらにdPステートに遷移した
後dRステートに至る。この後は(c)〜(f)の処理
繰り返す。 (f)DRAMアクセスの設定がロングピッチの際に
は、dCxステートに到達する。dCxステートではカ
ラム・アドレス・ストローブ信号CASL*又はCAS
H*をネゲートしたままdCステートに遷移する。サイ
クル前半でライト信号WR*がアサートされる。その後
にdCステートに遷移するが、dCステートではサイク
ル前半でカラム・アドレス・ストローブ信号CASL*
又はCASH*をアサートし、サイクル終端でネゲート
する。ネゲートする直前にデータバスAD0−15の値
をラッチする。ライト信号WR*はdCxステート前半
でアサートし、dCステート後半でネゲートする。次の
アクセスがDRAMに当っていない場合には、dCステ
ートからdI(DRAM Idle State)に遷移する。次のア
クセスがDRAMに当っている場合は、現在のローアド
レスとラッチされたアドレスを比較する。比較した結果
ローアドレスが一致した場合にはdCステートからdC
ステートに遷移する。比較した結果ローアドレスが不一
致の場合にはdCステートからdPxステートまたはd
Pステートへ遷移する。プリチャージサイクルを2サイ
クル挿入する設定になっている場合にはdPxステート
に遷移してさらにdPステートに遷移した後dRステー
トに至る。この後は(c)■(f)の処理繰り返す。
作を行なった場合にどのような動作になるかを説明す
る。CPU1またはDMAC4はバスステートコントロ
ーラ6に対してバスBCMD0−3を使用して、I/O
リクエストコマンドを送る。I/Oリクエストコマンド
の割り付け例は図22に示される。例えば、CPU1が
0x1234560という番地に32ビットのオペランド
を書こうとしたとすると、CPU1はアドレスバスIA
B0−23に0x1234560という数値とバスBC
MD0−3に{0011}という値を載せる。上記のア
ドレスバスIAB0−23の数値とバスBCMD0−3
の内容に基づき、内部アクセスバスステートマシン60
3は次の処理を行う。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、内部アクセスバスステー
トマシン603はアドレスデコード処理を行ない内部ア
クセスでない事を判定する。内部アクセスでは無い事が
解るとT3Eステートを繰り返す。 (b)DRAMアクセスがショートピッチ設定の場合に
は内部アクセスバスステートマシン603はCPU1に
対してBUSRDY信号を発生する。 上記のアドレスバスIAB0−23の数値とバスBCM
D0−3の内容に基づき、外部アクセスバスステートマ
シン603は次の処理を行なう。 (a)アドレスバスIAB0−23上のアドレスが0x
1234560である事から、外部アクセスバスステー
トマシン603はアドレスデコード処理を行ないDRA
Mエリアにアクセスである事を判定する。 (b)リセット解除後dPxステートからPxP遷移を
介して、dPステートに至る。DMAC4はリセットさ
れるとインアクティブになる。CPU1はリセット直後
はベクトルフェッチを行なうので最初の数サイクルはD
RAM領域をアクセスに来ない。初回のDRAMアクセ
スがくるまでは、DRAMステートマシンはdPステー
トに留まるので、初回DRAM領域アクセスの場合は必
ずdPステート(DRAM Precharge State)からdRステ
ート( DRAM Row Access State)に遷移する。 (c)dRステートでは、次の事を行なう。ローアドレ
スコンパレータ601のラッチ600にローアドレスを
ラッチする。ステート前半でロー/カラム・アドレスセ
レクタ32でローアドレスを選択してローアドレスをア
ドレス下位部に出力する。(dRステート以外のステー
トでは必ずロー/カラム・アドレスセレクタ32はカラ
ムアドレスを選択してカラムアドレスをアドレス下位部
に出力する。)dRステート後半ではロー・アドレス・
ストローブ信号RAS*がアサートされる。DRAMア
クセス方法がショートピッチ設定で次のアクセス要求が
ライトの場合にはCPU1にBUSRDY信号がこのサ
イクルで返される。CPU1は次のアクセスを開始す
る。 (d)dRステート以降、DRAMアクセスの設定がシ
ョートピッチの場合にはdCステート(DRAM Column Ad
dress State)に、ロングピッチの際にはdCxステー
ト(DRAM Column Address Extra State)に遷移する。 (e)DRAMアクセスの設定がショートピッチの際に
は、dCステートに到達する。dCステートではサイク
ル後半でカラム・アドレス・ストローブ信号かs1*又
はかs2*がアサートされて、ネゲートされる。ネゲー
トされる直前にデータバスADB0−15の値をラッチ
する。次のアクセスがDRAMに当っていない場合に
は、dCステートからdI(DRAM Idle State)に遷移
する。次のアクセスがDRAMに当っている場合は、現
在のローアドレスとラッチされたアドレスを比較する。
比較した結果ローアドレスが一致した場合にはdCステ
ートからdCステートに遷移する。比較した結果ローア
ドレスが不一致の場合にはdCステートからdPxステ
ートまたはdPステートへ遷移する。プリチャージサイ
クルを2サイクル挿入する設定になっている場合にはd
Pxステートに遷移してさらにdPステートに遷移した
後dRステートに至る。この後は(c)〜(f)の処理
繰り返す。 (f)DRAMアクセスの設定がロングピッチの際に
は、dCxステートに到達する。dCxステートではカ
ラム・アドレス・ストローブ信号CASL*又はCAS
H*をネゲートしたままdCステートに遷移する。サイ
クル前半でライト信号WR*がアサートされる。その後
にdCステートに遷移するが、dCステートではサイク
ル前半でカラム・アドレス・ストローブ信号CASL*
又はCASH*をアサートし、サイクル終端でネゲート
する。ネゲートする直前にデータバスAD0−15の値
をラッチする。ライト信号WR*はdCxステート前半
でアサートし、dCステート後半でネゲートする。次の
アクセスがDRAMに当っていない場合には、dCステ
ートからdI(DRAM Idle State)に遷移する。次のア
クセスがDRAMに当っている場合は、現在のローアド
レスとラッチされたアドレスを比較する。比較した結果
ローアドレスが一致した場合にはdCステートからdC
ステートに遷移する。比較した結果ローアドレスが不一
致の場合にはdCステートからdPxステートまたはd
Pステートへ遷移する。プリチャージサイクルを2サイ
クル挿入する設定になっている場合にはdPxステート
に遷移してさらにdPステートに遷移した後dRステー
トに至る。この後は(c)■(f)の処理繰り返す。
【0071】(6)ロングワードをバイト空間に書込む
処理 上記(4),(5)で説明したメモリアクセスは0x1
234560番地というバイト領域に対して行なわれた
ロングワードアクセスなので、32ビットのロングワード
を4回に分けてメモリに書くという動作が必要になる。
この制御を司るのがバスサイズ/アービトレーションス
テートマシンである。ロングワードアクセスがバイト空
間に行なわれた事をデコードすると、xS1ステート
(ExternalBus State 1)へ遷移する。xS2ステート
では、下位ビット2ビットはA0=0,A1=0が出
る。メモリアクセスが終了するまでxS1ステートに残
留して、終了するとともに、xS2ステート(External
Bus State 2)へ遷移する。xS2ステートでは、下位
ビット2ビットはA0=1,A1=0が出る。メモリア
クセスが終了するまでxS2ステートに残留して、終了
するとともに、xS3ステート(External Bus State
3)へ遷移する。xS3ステートでは、下位ビット2ビッ
トはA0=0,A1=1が出る。メモリアクセスが終了
するまでxS3ステートに残留して、終了するととも
に、xS4ステート(External Bus State 2)へ遷移す
る。xS4ステートでは、下位ビット2ビットはA0=
1,A1=1が出力される。
処理 上記(4),(5)で説明したメモリアクセスは0x1
234560番地というバイト領域に対して行なわれた
ロングワードアクセスなので、32ビットのロングワード
を4回に分けてメモリに書くという動作が必要になる。
この制御を司るのがバスサイズ/アービトレーションス
テートマシンである。ロングワードアクセスがバイト空
間に行なわれた事をデコードすると、xS1ステート
(ExternalBus State 1)へ遷移する。xS2ステート
では、下位ビット2ビットはA0=0,A1=0が出
る。メモリアクセスが終了するまでxS1ステートに残
留して、終了するとともに、xS2ステート(External
Bus State 2)へ遷移する。xS2ステートでは、下位
ビット2ビットはA0=1,A1=0が出る。メモリア
クセスが終了するまでxS2ステートに残留して、終了
するとともに、xS3ステート(External Bus State
3)へ遷移する。xS3ステートでは、下位ビット2ビッ
トはA0=0,A1=1が出る。メモリアクセスが終了
するまでxS3ステートに残留して、終了するととも
に、xS4ステート(External Bus State 2)へ遷移す
る。xS4ステートでは、下位ビット2ビットはA0=
1,A1=1が出力される。
【0072】<10.マイクロコンピュータシステム>
【0073】図34には本実施例マイクロコンピュータ
MCUを適用した一例システム構成図が示される。本実
施例のマイクロコンピュータMCUには、18ビット構
成のSRAM40と共に、18ビット構成のDRAM4
1が直結され、更に、光磁気ディスクドライブ用のデー
タエンコード/デコード並びにエラー訂正用の周辺チッ
プ42、SCSIインタフェースの光磁気ディスクコン
トローラチップ43、並びにアナログデバイス44が結
合されている。
MCUを適用した一例システム構成図が示される。本実
施例のマイクロコンピュータMCUには、18ビット構
成のSRAM40と共に、18ビット構成のDRAM4
1が直結され、更に、光磁気ディスクドライブ用のデー
タエンコード/デコード並びにエラー訂正用の周辺チッ
プ42、SCSIインタフェースの光磁気ディスクコン
トローラチップ43、並びにアナログデバイス44が結
合されている。
【0074】<11.外部アクセスのタイミングチャー
ト>
ト>
【0075】図35〜図43には外部のDRAMに対す
るアクセスのタイミングチャートが示される。それらの
図面におけるCAS*のデューティーは50%のように
図示されているが実際には後述する35%であってもよ
い。図においてTpはプリチャージ動作ステート、Tr
はローアドレスの供給動作ステート、Tcはカラムアド
レスの供給動作ステートである。図35にはショートピ
ッチの高速ページモードによるリード動作タイミングが
示され、図36にはショートピッチの高速ページモード
によるライト動作タイミングが示される。同図から明ら
かなようにCAS*はマイクロコンピュータMCUの動
作クロックφのサイクル毎に変化される。これに対し
て、ロングピッチの高速ページモードによるリード動作
タイミングが示される図37では、CAS*の1サイク
ルはクロックφの2サイクルに対応されている。図38
にはCBRリフレッシュのためのストローブ信号のタイ
ミングが示され、図39にはセルフリフレッシュのため
のストローブ信号のタイミングが示される。双方のタイ
ミングから明らかなように、セルフリフレッシュはCB
Rリフレッシュに比べてRAS*とCAS*のアサート
時間が長くされている。図40にはスタティックカラム
モードによるロングピッチアクセスのタイミングが示さ
れる。図41にはDRAMに対するノーウェイトステー
トでのフルアクセスのタイミングが示され、図42には
DRAMに対する1ウェイトステートでのフルアクセス
のタイミングが示され、図43にはDRAMに対する2
プリチャージサイクルでのノーウェイトステートのフル
アクセスのタイミングが示される。
るアクセスのタイミングチャートが示される。それらの
図面におけるCAS*のデューティーは50%のように
図示されているが実際には後述する35%であってもよ
い。図においてTpはプリチャージ動作ステート、Tr
はローアドレスの供給動作ステート、Tcはカラムアド
レスの供給動作ステートである。図35にはショートピ
ッチの高速ページモードによるリード動作タイミングが
示され、図36にはショートピッチの高速ページモード
によるライト動作タイミングが示される。同図から明ら
かなようにCAS*はマイクロコンピュータMCUの動
作クロックφのサイクル毎に変化される。これに対し
て、ロングピッチの高速ページモードによるリード動作
タイミングが示される図37では、CAS*の1サイク
ルはクロックφの2サイクルに対応されている。図38
にはCBRリフレッシュのためのストローブ信号のタイ
ミングが示され、図39にはセルフリフレッシュのため
のストローブ信号のタイミングが示される。双方のタイ
ミングから明らかなように、セルフリフレッシュはCB
Rリフレッシュに比べてRAS*とCAS*のアサート
時間が長くされている。図40にはスタティックカラム
モードによるロングピッチアクセスのタイミングが示さ
れる。図41にはDRAMに対するノーウェイトステー
トでのフルアクセスのタイミングが示され、図42には
DRAMに対する1ウェイトステートでのフルアクセス
のタイミングが示され、図43にはDRAMに対する2
プリチャージサイクルでのノーウェイトステートのフル
アクセスのタイミングが示される。
【0076】図44〜図48にはSRAMやその他のI
/Oに対するアクセスタイミングが示される。図44に
は1ステートでの基本バスサイクルが示される。図45
には2ステートでの基本バスサイクルが示される。図4
6にはそれに対してウェイトステート(Tw)が挿入し
されたアクセスタイミングが示される。図47には3ス
テートでの基本バスサイクルが示される。図48にはそ
れに対してウェイトステート(Tw)が挿入しされたア
クセスタイミングが示される。
/Oに対するアクセスタイミングが示される。図44に
は1ステートでの基本バスサイクルが示される。図45
には2ステートでの基本バスサイクルが示される。図4
6にはそれに対してウェイトステート(Tw)が挿入し
されたアクセスタイミングが示される。図47には3ス
テートでの基本バスサイクルが示される。図48にはそ
れに対してウェイトステート(Tw)が挿入しされたア
クセスタイミングが示される。
【0077】<12.ストローブ生成のためのクロック
生成(デューティー補正)
生成(デューティー補正)
【0078】次に本実施例マイクロコンピュータに直結
したDRAMを16MHzのストローブ信号にて1サイ
クルで高速ページアクセス(ショートピッチ)を可能に
するためのクロック発生回路並びにストローブ生成論理
について説明する。
したDRAMを16MHzのストローブ信号にて1サイ
クルで高速ページアクセス(ショートピッチ)を可能に
するためのクロック発生回路並びにストローブ生成論理
について説明する。
【0079】本発明者は、ストローブ信号に生成並びに
ポート部の制御に関し以下の点を考慮した。 (1)ノンオーバーラップの2相クロック(φ1、φ
2)の位相関係は温度、電圧、プロセスに依存して激し
くばらつくために、φ1、φ2の両方を使用してポート
部論理を制御するのは困難である。そこで1本のクロッ
クφの立ち上がりエッジのみを使用して、φの頭で変化
する各種ストローブ、アドレス出力、データラッチを制
御することの優位を見出した。 (2)遅延素子の使用は温度、電圧、プロセスに依存し
て遅延量がばらつくので得策ではない。 (3)ストローブの負荷容量を減少させ、バッファのド
ライバビリティを上げて、tr, tfの絶対的時間を減らし
て内部クロックと外部クロックのスキュー時間を減ら
す。例えば、CAS*の出力バッファとしてサイズが60
0/400のトランジスタを使用し、CL=30pFにす
る。バッファの出力ゲートとパッケージの容量を15p
F位は見る必要が有る。そのため90pF→30pFで
はなく105pF→45pFという改善となる。したが
ってtD@30pF=9〜10nsである。この遅延時間
はバッファ裸のものであり、これにグランドバウンス効
果のインピーダンスを入れるとさらに3〜5ns位遅れる
のでtD@30pF=12〜13ns位と考える。 (4)メモリサイクル中のクリティカル部分の集中をデ
ューティー補正回路で緩和する。上記の(1)〜(3)
の手段を使ってもCAS*ダウン(CAS*のアサー
ト)からデータ確定までの時間(tCAC)に関しtC
AC>20nsが限りなく厳しい。逆にCAS*のハイ幅
すなわちネゲート期間(tCP)に関してはtCP>1
0nsと比較的ゆるやかである。内部の2相クロックで作
れるタイミングが限られているが故にバスサイクルの中
でtCACだけが突出してきびしい。DRAMのACス
ペックに適合させるために、デューティー補正回路で都
合の良いデューティーを持ったクロックを作ってCAS
*を生成することが望ましいということが本発明者によ
って見出された。そうすれば、量産およびテスティン
グ、電圧、プロセスの変動に耐える製品としつつ高い周
波数でDRAMの高速ページモードをサポートできる。
しかもデューティー補正回路は面積的には比較的小さい
く構成できる。 (5)デューティー補正回路をクロック発生回路に適用
するとき、デューティー補正の適正値をシステム面から
検討したところ、5V動作のDRAMでは35%が最適
である事が解った。3Vの場合には電圧のスレシュホー
ルドが異なるので50%の方が良い事が解った。これら
をバスコントローラ内のレジスタで切り変える。尚、A
Cスペックの規定は次のような式で規定するものとす
る。 tACC=tcyc・ステート数 −25ns アドレス確定(カラムアドレス確定)からDRAMの出
力データラッチまでの時間 tCAC=tcyc・0.65−18ns =39−18=
21ns CAS*アサートからDRAMの出力データラッチまで
の時間 tRAC=tcyc・1.5−20ns RAS*アサートからDRAMのデータラッチまでの時
間 tOFF1=0ns CAS*の立ち上がりからのDRAMのデータホールド
時間
ポート部の制御に関し以下の点を考慮した。 (1)ノンオーバーラップの2相クロック(φ1、φ
2)の位相関係は温度、電圧、プロセスに依存して激し
くばらつくために、φ1、φ2の両方を使用してポート
部論理を制御するのは困難である。そこで1本のクロッ
クφの立ち上がりエッジのみを使用して、φの頭で変化
する各種ストローブ、アドレス出力、データラッチを制
御することの優位を見出した。 (2)遅延素子の使用は温度、電圧、プロセスに依存し
て遅延量がばらつくので得策ではない。 (3)ストローブの負荷容量を減少させ、バッファのド
ライバビリティを上げて、tr, tfの絶対的時間を減らし
て内部クロックと外部クロックのスキュー時間を減ら
す。例えば、CAS*の出力バッファとしてサイズが60
0/400のトランジスタを使用し、CL=30pFにす
る。バッファの出力ゲートとパッケージの容量を15p
F位は見る必要が有る。そのため90pF→30pFで
はなく105pF→45pFという改善となる。したが
ってtD@30pF=9〜10nsである。この遅延時間
はバッファ裸のものであり、これにグランドバウンス効
果のインピーダンスを入れるとさらに3〜5ns位遅れる
のでtD@30pF=12〜13ns位と考える。 (4)メモリサイクル中のクリティカル部分の集中をデ
ューティー補正回路で緩和する。上記の(1)〜(3)
の手段を使ってもCAS*ダウン(CAS*のアサー
ト)からデータ確定までの時間(tCAC)に関しtC
AC>20nsが限りなく厳しい。逆にCAS*のハイ幅
すなわちネゲート期間(tCP)に関してはtCP>1
0nsと比較的ゆるやかである。内部の2相クロックで作
れるタイミングが限られているが故にバスサイクルの中
でtCACだけが突出してきびしい。DRAMのACス
ペックに適合させるために、デューティー補正回路で都
合の良いデューティーを持ったクロックを作ってCAS
*を生成することが望ましいということが本発明者によ
って見出された。そうすれば、量産およびテスティン
グ、電圧、プロセスの変動に耐える製品としつつ高い周
波数でDRAMの高速ページモードをサポートできる。
しかもデューティー補正回路は面積的には比較的小さい
く構成できる。 (5)デューティー補正回路をクロック発生回路に適用
するとき、デューティー補正の適正値をシステム面から
検討したところ、5V動作のDRAMでは35%が最適
である事が解った。3Vの場合には電圧のスレシュホー
ルドが異なるので50%の方が良い事が解った。これら
をバスコントローラ内のレジスタで切り変える。尚、A
Cスペックの規定は次のような式で規定するものとす
る。 tACC=tcyc・ステート数 −25ns アドレス確定(カラムアドレス確定)からDRAMの出
力データラッチまでの時間 tCAC=tcyc・0.65−18ns =39−18=
21ns CAS*アサートからDRAMの出力データラッチまで
の時間 tRAC=tcyc・1.5−20ns RAS*アサートからDRAMのデータラッチまでの時
間 tOFF1=0ns CAS*の立ち上がりからのDRAMのデータホールド
時間
【0080】ここで、内部クロック生成方式について説
明する。従来のマイクロコンピュータでは内部にクロッ
ク発振用のインバータを持ち、外部端子に水晶と2個の
コンデンサを外付けするだけで発振させる事ができた。
この方法は発振に要する外付け部品が安価であり、かつ
実装面積が小さい、またソフトウエアでクロック発振用
のインバータをエネーブルしたりディスエーブルしたり
して水晶発振子の発振を開始したり停止したりできるた
めプロセッサの使用状況に合わせて消費電力を節減でき
るので、シングルチップマイクロコンピュータでよく利
用される。千葉憲昭著"シングルチップマイクロコンピ
ュータH8活用全科"(平成3年11月1日初版第2
刷、技術評論社より発行)の2.3章システムクロック
(第34頁〜第36頁)に詳しく記載されている。入力
クロックをチップ内部で2分周することにより50%の
デューティーのクロックを得ていた。例えば20MHz
の外部クロックを入力した場合に、この波形の立ち上が
りエッジまたは立ち下がりエッジのみを利用して内部で
その2分の1の周波数の10MHzの内部クロックを発
生させていた。この際には外部クロックの周期が一定な
ので内部クロックのハイ側とロー側の長さを一定にして
比較的容易に50%のデューティーを持った内部クロッ
クを生成できた。ところで、外部クロック周波数の増加
は、LSI内部の回路設計、システム構成時の実装コス
ト、外部に放出する電波雑音の大きさという点で望まし
くない。反面、プロセッサの処理能力はクロック性能に
比例するので、高性能をえるためにはクロック周波数を
上げたいという要求がある。近年においては、外部クロ
ックの周波数を上げずに内部クロック周波数を上げると
いう方法が取られている。比較的低い外部クロックの周
波数で高速度で内部の命令実行を行なう方法として、通
称”*1クロック”、あるいは"ダブルクロック"と言わ
れる技術が有る。"*1クロック"は1クロック周期で内
部で1命令実行を行なうシステムである。この方式の弱
点は、入力する波形のロー期間とハイ期間を外部で厳し
く調整する事をユーザに要求するため、CPUの価格に
対して相対的にかなり高価な外部クロックパタンゼネレ
ータを実装する事が必要となりシステムコストが上がる
事である。”ダブルクロック”はPhased-Lock-Loop(P
LL)方式と称される回路構成を用いて、外部より入力
される信号との位相を一致させつつ、入力信号よりさら
に高周波な信号を電圧制御発振器(VOC)により生成
する。この方式の弱点は、電圧制御の発振によって信号
生成をしているため、入力信号の周波数が低すぎると信
号生成ができない点と、内蔵するPLL自身が消費する
電力が高い点である。
明する。従来のマイクロコンピュータでは内部にクロッ
ク発振用のインバータを持ち、外部端子に水晶と2個の
コンデンサを外付けするだけで発振させる事ができた。
この方法は発振に要する外付け部品が安価であり、かつ
実装面積が小さい、またソフトウエアでクロック発振用
のインバータをエネーブルしたりディスエーブルしたり
して水晶発振子の発振を開始したり停止したりできるた
めプロセッサの使用状況に合わせて消費電力を節減でき
るので、シングルチップマイクロコンピュータでよく利
用される。千葉憲昭著"シングルチップマイクロコンピ
ュータH8活用全科"(平成3年11月1日初版第2
刷、技術評論社より発行)の2.3章システムクロック
(第34頁〜第36頁)に詳しく記載されている。入力
クロックをチップ内部で2分周することにより50%の
デューティーのクロックを得ていた。例えば20MHz
の外部クロックを入力した場合に、この波形の立ち上が
りエッジまたは立ち下がりエッジのみを利用して内部で
その2分の1の周波数の10MHzの内部クロックを発
生させていた。この際には外部クロックの周期が一定な
ので内部クロックのハイ側とロー側の長さを一定にして
比較的容易に50%のデューティーを持った内部クロッ
クを生成できた。ところで、外部クロック周波数の増加
は、LSI内部の回路設計、システム構成時の実装コス
ト、外部に放出する電波雑音の大きさという点で望まし
くない。反面、プロセッサの処理能力はクロック性能に
比例するので、高性能をえるためにはクロック周波数を
上げたいという要求がある。近年においては、外部クロ
ックの周波数を上げずに内部クロック周波数を上げると
いう方法が取られている。比較的低い外部クロックの周
波数で高速度で内部の命令実行を行なう方法として、通
称”*1クロック”、あるいは"ダブルクロック"と言わ
れる技術が有る。"*1クロック"は1クロック周期で内
部で1命令実行を行なうシステムである。この方式の弱
点は、入力する波形のロー期間とハイ期間を外部で厳し
く調整する事をユーザに要求するため、CPUの価格に
対して相対的にかなり高価な外部クロックパタンゼネレ
ータを実装する事が必要となりシステムコストが上がる
事である。”ダブルクロック”はPhased-Lock-Loop(P
LL)方式と称される回路構成を用いて、外部より入力
される信号との位相を一致させつつ、入力信号よりさら
に高周波な信号を電圧制御発振器(VOC)により生成
する。この方式の弱点は、電圧制御の発振によって信号
生成をしているため、入力信号の周波数が低すぎると信
号生成ができない点と、内蔵するPLL自身が消費する
電力が高い点である。
【0081】以上の点を考慮したデューティー補正回路
の原理とその利点について説明する。実施例のマイクロ
コンピュータの動作クロック周波数は、特に制限されな
いが、5V動作時に16MHz〜20MHzであり、3V
動作時に8MHz〜12・5MHzである。システムコ
ストを考えて20MHz内外の水晶振動子をXTALと
EXTALに接続して自励発振させる方式をとってい
る。外部クロックパタンジェネレータを使用して外部入
力を行なう事も可能である。シングルチップマイクロコ
ンピュータのコストの拘束条件のもとでは、きちんとし
たデューティーのクロックを生成できる高価な外部クロ
ックパタンジェネレータを使用する事をユーザーに要求
することは難しい。したがって水晶発振子を外部に接続
してデューティー補正回路を介してほぼ50%のデュー
ティーを持つクロックを作り、これからノンオーバーラ
ップクロック生成回路を介して内部で使用する2相のノ
ンオーバーラップクロック信号(φ1,φ2)を生成し
て各コントロールポイントにタイミングを供給する。ま
たデューティー補正回路で発生した約50%のデューテ
ィーを持つクロックをチップの外部のシステムにもCK
信号として供給して、これをバッファ、周辺チップ等と
の同期信号とする。
の原理とその利点について説明する。実施例のマイクロ
コンピュータの動作クロック周波数は、特に制限されな
いが、5V動作時に16MHz〜20MHzであり、3V
動作時に8MHz〜12・5MHzである。システムコ
ストを考えて20MHz内外の水晶振動子をXTALと
EXTALに接続して自励発振させる方式をとってい
る。外部クロックパタンジェネレータを使用して外部入
力を行なう事も可能である。シングルチップマイクロコ
ンピュータのコストの拘束条件のもとでは、きちんとし
たデューティーのクロックを生成できる高価な外部クロ
ックパタンジェネレータを使用する事をユーザーに要求
することは難しい。したがって水晶発振子を外部に接続
してデューティー補正回路を介してほぼ50%のデュー
ティーを持つクロックを作り、これからノンオーバーラ
ップクロック生成回路を介して内部で使用する2相のノ
ンオーバーラップクロック信号(φ1,φ2)を生成し
て各コントロールポイントにタイミングを供給する。ま
たデューティー補正回路で発生した約50%のデューテ
ィーを持つクロックをチップの外部のシステムにもCK
信号として供給して、これをバッファ、周辺チップ等と
の同期信号とする。
【0082】図49にはデューティー補正回路の原理説
明図が示される。デューティー補正回路の機能は任意デ
ューティーを持つパルスの入力信号fiを所定のデュー
ティー(例えば50%または35%)に形成するもので
ある。回路構成は入力信号fiの位相に間して相補的な
段に配置した2組みの遅延回路CDLY1およびCDL
Y2と遅延量制御回路CRSW1およびCRSW2より
なる。これら遅延回路の特徴は入力パルスfiの立ち上
がりエッジのみを遅延させる回路であり、その遅延時間
は制御電圧Vo1(またはVo2)により調整可能であ
る。すなわち、NャネルMOSであるMOSM4のソー
スドレイン間の抵抗値を可変にし、コンデンサCDの蓄
積電荷の放電時間を可変にすることにより次段のインバ
ータに至るパルス伝達時間の遅延時間を調節するもので
ある。遅延量制御回路CRSW1(CRSW2)は、コン
デンサCG、その充電用の定電流源PI1、放電用の定
電流源PI2、およびこれらの電流ich, iDcの切
替トランジスタM12、M13よりなる。出力パルスf
o’のデューティー比に見合ってCGへの充放電が制御
され、その結果制御電圧Vo1(またはVo2)が調節
される。2つの定電流源PI1、PI2の電流値ic
h、iDcの比より出力foのデューティーが決まるの
で、ich=iDcであるとき入力fiが様々なデュー
ティーを持っていても出力foはデユーティー50%の
パルスを得る事ができる。
明図が示される。デューティー補正回路の機能は任意デ
ューティーを持つパルスの入力信号fiを所定のデュー
ティー(例えば50%または35%)に形成するもので
ある。回路構成は入力信号fiの位相に間して相補的な
段に配置した2組みの遅延回路CDLY1およびCDL
Y2と遅延量制御回路CRSW1およびCRSW2より
なる。これら遅延回路の特徴は入力パルスfiの立ち上
がりエッジのみを遅延させる回路であり、その遅延時間
は制御電圧Vo1(またはVo2)により調整可能であ
る。すなわち、NャネルMOSであるMOSM4のソー
スドレイン間の抵抗値を可変にし、コンデンサCDの蓄
積電荷の放電時間を可変にすることにより次段のインバ
ータに至るパルス伝達時間の遅延時間を調節するもので
ある。遅延量制御回路CRSW1(CRSW2)は、コン
デンサCG、その充電用の定電流源PI1、放電用の定
電流源PI2、およびこれらの電流ich, iDcの切
替トランジスタM12、M13よりなる。出力パルスf
o’のデューティー比に見合ってCGへの充放電が制御
され、その結果制御電圧Vo1(またはVo2)が調節
される。2つの定電流源PI1、PI2の電流値ic
h、iDcの比より出力foのデューティーが決まるの
で、ich=iDcであるとき入力fiが様々なデュー
ティーを持っていても出力foはデユーティー50%の
パルスを得る事ができる。
【0083】図50には上記デューティー補正回路の動
作タイミング波形が示される。図49の回路においてデ
ューティー>50%の場合を説明する。同図においてt
c1〜tc5はCGのich充電期間であり、td1か
らtd5はCGの放電期間である。回路としては前段の
遅延回路CDLY1と制御回路CRSW1が主として働
き、入力fiの立ち下がりエッジEdg1ではドランジ
スタM3がオンしコンデンサCDを急速充電するため出
力fo’の立ち上がりエッジえdg2およびfoの立ち
下がりエッジえdg3の遅延は極めて少ない。fiの立
ち上がりエッジEdg4においては、ドタンジスタM3
がオフしてM5がオンとなる。この時はトランジスタM
4を通じてCDの電荷がゆっくりと放電されるため、出
力fo'の立ち下がりエッッジEdg5が緩やかにな
り、結果的には出力fo'の立ち上がりエッッジEdg
6が遅延したことになる。出力fo'が'L'レベルの時
はM12がオンして電流源PI1より電流ichをCGへ
充電する。fo'が'H'レベルの時はM13がオンして
電流源PI2側にCGの電荷が放電される。従って、C
Gの平均電荷(制御電圧Vo1)は、fo'の'H'レベ
ル期間が'L'レベル期間に比べて長くなると充電量に対
し放電量が多くなる。その結果Vo1が下がる程トラン
ジスタM4の抵抗が大きくなる。それゆえ、fo'の立
ち上がりエッジの遅延時間は、t1<t2<t3<...
と増大して出力の'H'レベル期間を現象させ、すなわち
デューティーを減少させる方向に働く。その結果、1周
期におけるCGの充電量と放電量が平衡するデューティ
ーの出力が得られる状態で回路は定常状態に到達する。
定常状態に到達したときのfoのデューティー比は η=iDc/(iDc+ich)% で定まり、iDc=ichの時fo'のデューティー比
は50%となる。fiのデユーティー比が上記の定常状
態にて得られるデューティーに等しいか、それより小さ
い場合には遅延回路CDLY1は単なるインバータとし
て働きデューティー補正は行なわない。同様にしてiD
cとichの値を調整する事によりデューティー比を基
本てきにはいかなる値にする事もできる。
作タイミング波形が示される。図49の回路においてデ
ューティー>50%の場合を説明する。同図においてt
c1〜tc5はCGのich充電期間であり、td1か
らtd5はCGの放電期間である。回路としては前段の
遅延回路CDLY1と制御回路CRSW1が主として働
き、入力fiの立ち下がりエッジEdg1ではドランジ
スタM3がオンしコンデンサCDを急速充電するため出
力fo’の立ち上がりエッジえdg2およびfoの立ち
下がりエッジえdg3の遅延は極めて少ない。fiの立
ち上がりエッジEdg4においては、ドタンジスタM3
がオフしてM5がオンとなる。この時はトランジスタM
4を通じてCDの電荷がゆっくりと放電されるため、出
力fo'の立ち下がりエッッジEdg5が緩やかにな
り、結果的には出力fo'の立ち上がりエッッジEdg
6が遅延したことになる。出力fo'が'L'レベルの時
はM12がオンして電流源PI1より電流ichをCGへ
充電する。fo'が'H'レベルの時はM13がオンして
電流源PI2側にCGの電荷が放電される。従って、C
Gの平均電荷(制御電圧Vo1)は、fo'の'H'レベ
ル期間が'L'レベル期間に比べて長くなると充電量に対
し放電量が多くなる。その結果Vo1が下がる程トラン
ジスタM4の抵抗が大きくなる。それゆえ、fo'の立
ち上がりエッジの遅延時間は、t1<t2<t3<...
と増大して出力の'H'レベル期間を現象させ、すなわち
デューティーを減少させる方向に働く。その結果、1周
期におけるCGの充電量と放電量が平衡するデューティ
ーの出力が得られる状態で回路は定常状態に到達する。
定常状態に到達したときのfoのデューティー比は η=iDc/(iDc+ich)% で定まり、iDc=ichの時fo'のデューティー比
は50%となる。fiのデユーティー比が上記の定常状
態にて得られるデューティーに等しいか、それより小さ
い場合には遅延回路CDLY1は単なるインバータとし
て働きデューティー補正は行なわない。同様にしてiD
cとichの値を調整する事によりデューティー比を基
本てきにはいかなる値にする事もできる。
【0084】次に本実施例マイクロコンピュータMCU
において上記原理を適用したクロック発生回路18につ
いて説明する。クロック発生回路18は、図51に示さ
れる2組みの遅延回路180,181と遅延量制御回路
182,183を使用して50%デューティーのクロッ
クを生成して、さらに図52に示される遅延回路184
と遅延量制御回路185を使用して、50%デューティ
ーのクロックのライジングエッジを35%遅延させる事
により15%のデューティーを持つクロックを生成し
て、さらにこれらを組み合せてライジングエッジが同位
相の50%デューティーのクロックと35%デューティ
ーのクロックを生成している。前記遅延回路184は遅
延回路180と同一の回路構成にされる。遅延量制御回
路185の一例は図53の(A)に示される。斯る構成
で生成される50%デューティーのクロックを元にCK
S, CKM, CKI, PHIXNのクロックが生成され
る。35%デューティーのクロックはCK35として生
成される。図53の(B)にはデューティー50%のC
KMと、デューティー35%のCK35の波形が代表的
に示されている。
において上記原理を適用したクロック発生回路18につ
いて説明する。クロック発生回路18は、図51に示さ
れる2組みの遅延回路180,181と遅延量制御回路
182,183を使用して50%デューティーのクロッ
クを生成して、さらに図52に示される遅延回路184
と遅延量制御回路185を使用して、50%デューティ
ーのクロックのライジングエッジを35%遅延させる事
により15%のデューティーを持つクロックを生成し
て、さらにこれらを組み合せてライジングエッジが同位
相の50%デューティーのクロックと35%デューティ
ーのクロックを生成している。前記遅延回路184は遅
延回路180と同一の回路構成にされる。遅延量制御回
路185の一例は図53の(A)に示される。斯る構成
で生成される50%デューティーのクロックを元にCK
S, CKM, CKI, PHIXNのクロックが生成され
る。35%デューティーのクロックはCK35として生
成される。図53の(B)にはデューティー50%のC
KMと、デューティー35%のCK35の波形が代表的
に示されている。
【0085】図52に示されるクロック発生回路の各端
子若しくは信号は以下の機能を有する。 CK35(出力): 35%デューティーのクロック
(通称φ35)を出力する端子。TM='H'の時には、
EXTALI端子からのクロックを加工して35%のデ
ューティーに、TM='L'の時には、50%のデューテ
ィー補正回路の出力を加工して、ハイ部分を35%に削
ってCK35とされる。 CKS(出力): スリープ時およびスタンバイ時にの
み止まるクロック出力である。 CKM(出力): スタンバイ時にのみ止まるクロック
出力。スタンバイから復帰する時に、発振安定後に動き
出すクロックである。 CKI(出力): スタンバイ時に止まらないクロック
出力。スタンバイから復帰する時に、発振安定前に動き
出すクロック。ウオッチドッグタイマだけを動かす信号
である。 PHAIXN(出力): 外部φ出力に使う。動作はC
KMと同じである。 SLP(入力): スリープ状態を示す信号である。 STBY(入力): ハードウエアスタンバイ状態とソ
フトウエアスタンバイ状態をOR(論理和)したもの。
SLEEP命令の実行またはハードウエアスタンバイ状
態(テストモードとして存在している)によりL→Hと
なり、NMIにより起動されたウォッチドッグタイマが
オーバーフローするとH→Lとなる。 STBYW(入力): STBYと機能はほぼ同じであ
る。但し、NMI入力でH→Lとなる。起動されたウォ
ッチドッグタイマがオーバーフローし、復帰時の待ち状
態時にはLとなる。STBY=Hの時には180〜18
3の回路を含む50%のデューティー補正回路部分と1
84及び185の回路を含む35%のデューティー補正
回路部分を共に不活性化する。 TM(入力): モード端子である。ハイレベルの場合
にはデューティー補正回路を通さずにクロックをXTA
LIN端子、EXTALI端子からの入力に直結した状
態にする。ローの場合にはデューティー補正回路を通し
て内部クロックを生成する。TM='H'の時には無条件
に50%のデューティー補正回路部分を不活性にする。
この信号は主にLSIのテスティングを容易にするため
と、何かの理由で外部クロックでLSIをドライブした
い場合に有効である。 XTALIN端子(入力): 外部XTAL端子からの
入力端子である。 EXTALI端子(入力): 外部EXTAL端子から
の入力端子である。
子若しくは信号は以下の機能を有する。 CK35(出力): 35%デューティーのクロック
(通称φ35)を出力する端子。TM='H'の時には、
EXTALI端子からのクロックを加工して35%のデ
ューティーに、TM='L'の時には、50%のデューテ
ィー補正回路の出力を加工して、ハイ部分を35%に削
ってCK35とされる。 CKS(出力): スリープ時およびスタンバイ時にの
み止まるクロック出力である。 CKM(出力): スタンバイ時にのみ止まるクロック
出力。スタンバイから復帰する時に、発振安定後に動き
出すクロックである。 CKI(出力): スタンバイ時に止まらないクロック
出力。スタンバイから復帰する時に、発振安定前に動き
出すクロック。ウオッチドッグタイマだけを動かす信号
である。 PHAIXN(出力): 外部φ出力に使う。動作はC
KMと同じである。 SLP(入力): スリープ状態を示す信号である。 STBY(入力): ハードウエアスタンバイ状態とソ
フトウエアスタンバイ状態をOR(論理和)したもの。
SLEEP命令の実行またはハードウエアスタンバイ状
態(テストモードとして存在している)によりL→Hと
なり、NMIにより起動されたウォッチドッグタイマが
オーバーフローするとH→Lとなる。 STBYW(入力): STBYと機能はほぼ同じであ
る。但し、NMI入力でH→Lとなる。起動されたウォ
ッチドッグタイマがオーバーフローし、復帰時の待ち状
態時にはLとなる。STBY=Hの時には180〜18
3の回路を含む50%のデューティー補正回路部分と1
84及び185の回路を含む35%のデューティー補正
回路部分を共に不活性化する。 TM(入力): モード端子である。ハイレベルの場合
にはデューティー補正回路を通さずにクロックをXTA
LIN端子、EXTALI端子からの入力に直結した状
態にする。ローの場合にはデューティー補正回路を通し
て内部クロックを生成する。TM='H'の時には無条件
に50%のデューティー補正回路部分を不活性にする。
この信号は主にLSIのテスティングを容易にするため
と、何かの理由で外部クロックでLSIをドライブした
い場合に有効である。 XTALIN端子(入力): 外部XTAL端子からの
入力端子である。 EXTALI端子(入力): 外部EXTAL端子から
の入力端子である。
【0086】上記クロック発生回路で生成された50%
デューティー並びに35%デューティーのクロック信号
は各ストローブ信号の生成並びにバッファ制御等に利用
される。例えば、 (1)アドレスバッファへのクロックはデューティー補
正回路のCK35から基本的には通常クロックの分配方
法と同じ方法で、疑似2相クロックドライバ、クロック
ドライバを介して、各部に分配される。 (2)データバッファに関しては、データバッファの入
力データを切る回路はφ2クロックを使用して実現され
る。 (3)CAS*の実現に関しては図54に示される論理
がストローブ生成論理30に含まれる。同図に示される
論理への入力信号と出力信号は、以下の通りである。 XCAS0,XCAS1=0,0;ショートピッチ(デ
ューティー 50%) XCAS0,XCAS1=0,1;ショートピッチ(デ
ューティー 35%) XCAS0,XCAS1=1,0;ロングピッチ XCAS0,XCAS1=1,1;NOP XCASH=0;そのサイクルの間はCASL*をディ
スエーブル。 XCASH=1;そのサイクルの間はCASL*をエネ
ーブル。 XCASL=0;そのサイクルの間はCASH*をディ
スエーブル。 XCASL=1;そのサイクルの間はCASH*をエネ
ーブル。 ASE;ASEモード(エミュレーションモード)時に
CAS*出力をマスクするか否かを指示する。 CKx;デューティー50%のクロック信号の総称。 ZCASLN;CASL*に対応される出力信号。 ZCASHN;CASH*に対応される出力信号。 図54の回路においてSELはデューティー50%のク
ロック信号とデューティー35%のクロック信号の何れ
かを選択するセレクタであり、基本的には前記XCAS
0,XCAS1のレベルの組み合わせに従って制御され
る。図55には35%デューティーのCAS*、RAS
*、ノンオーバーラップ2相クロック信号φ1,φ2
と、デューティー50%並びに35%のクロック信号と
の相関の一例が示される。
デューティー並びに35%デューティーのクロック信号
は各ストローブ信号の生成並びにバッファ制御等に利用
される。例えば、 (1)アドレスバッファへのクロックはデューティー補
正回路のCK35から基本的には通常クロックの分配方
法と同じ方法で、疑似2相クロックドライバ、クロック
ドライバを介して、各部に分配される。 (2)データバッファに関しては、データバッファの入
力データを切る回路はφ2クロックを使用して実現され
る。 (3)CAS*の実現に関しては図54に示される論理
がストローブ生成論理30に含まれる。同図に示される
論理への入力信号と出力信号は、以下の通りである。 XCAS0,XCAS1=0,0;ショートピッチ(デ
ューティー 50%) XCAS0,XCAS1=0,1;ショートピッチ(デ
ューティー 35%) XCAS0,XCAS1=1,0;ロングピッチ XCAS0,XCAS1=1,1;NOP XCASH=0;そのサイクルの間はCASL*をディ
スエーブル。 XCASH=1;そのサイクルの間はCASL*をエネ
ーブル。 XCASL=0;そのサイクルの間はCASH*をディ
スエーブル。 XCASL=1;そのサイクルの間はCASH*をエネ
ーブル。 ASE;ASEモード(エミュレーションモード)時に
CAS*出力をマスクするか否かを指示する。 CKx;デューティー50%のクロック信号の総称。 ZCASLN;CASL*に対応される出力信号。 ZCASHN;CASH*に対応される出力信号。 図54の回路においてSELはデューティー50%のク
ロック信号とデューティー35%のクロック信号の何れ
かを選択するセレクタであり、基本的には前記XCAS
0,XCAS1のレベルの組み合わせに従って制御され
る。図55には35%デューティーのCAS*、RAS
*、ノンオーバーラップ2相クロック信号φ1,φ2
と、デューティー50%並びに35%のクロック信号と
の相関の一例が示される。
【0087】<13.マイクロコンピュータのレジスタ
並びにデータ構成>
並びにデータ構成>
【0088】次に本実施例マイクロコンピュータMCU
におけるCPU1のレジスタ構成並びにデータ構成を説
明する。 (1)汎用レジスタ(Rn) CPU1は図56の(A)に示される通り、16本の汎
用レジスタR0〜R15を有する。R0は、命令によっ
ては、アキュムレータとして仮定されることがある。R
15は例外処理の中においてハードウェアスタックポイ
ンタとして仮定される。図においてSPはスタックポイ
ンタである。 (2)コントロール・レジスタ CPU1はコントロールレジスタとして、図56の
(B)に示されるステータスレジスタSR、I/Oのベ
ース・アドレスの格納レジスタとして使用されるグロー
バルベースレジスタGBR、割り込みベクタ領域のベー
スアドレスの格納レジスタとして使用されるベクタベー
スレジスタVBRを有する。ステータスレジスタSRは
MQIIII−−STの書くビットを有する。 Tビット:真(1)、偽(0)を表すとき、MOVT,CMP,T
AS,TST,BT,BF,SETT,CLRT命令で参照される。キャリ,ホ゛ロー,オ
ーハ゛/アンタ゛フロー等を表すとき、ADDV/C,SUBV/C,NEGC,DIV0U/
S,DIV1,SHAR/L,SHLR/L,ROTR/L,ROTCR/L,命令で参照され
る。 Sヒ゛ット;MAC命令で参照される。 −ビット;予約ビットである。 Iビット;割り込みマスクビットである M/Qビット;DIV0U/S,DIV1命令で参照される。 (3)システム・レジスタ CPU1は図57の(C)に示されるシステムレジスタ
をMACH,MACL,PR,PC有する。MACH/
Lは積和・レジスタであり、乗算、積和演算の結果の格
納レジスタとして使用される。MACHは下位10ビッ
トが有効であり、読み出すときは符号拡張される。PR
はプロシージャ・レジスタであり、プロシージャからの
戻り先アドレスの格納レジスタとして使用される。PC
はプログラム・カウンタである。 (4)レジスタのデータ構成 CPU1におけるレジスタのデータ構成は図57の
(D)に示される。レジスタ・オペランドのデータ・サ
イズは常にロングワードである。メモリ・オペランドの
データ・サイズがバイト、もしくはワードのときは、ロ
ングワードに符号拡張後、レジスタに格納される。 (5)メモリ上でのデータ構成 メモリ上でのデータ構成については図57の(E)に示
される。ワード・データで(2n)番地以外から始まる
もの、ロングワード・データで(4n)番地以外から始
まるもののアクセスはアドレス・エラーを発生する。こ
のとき、アクセスした結果は保証されない。特に、R1
5を参照するハードウエアスタック領域にはPC/SR
を保持するので、データは(4n)番地から始まるロン
グワードに限定する必要がある。 (6)イミディエイトのデータ構成 MOV、ADD、CMP/EQ命令ではイミディエイト
・データを符号拡張後、ロングワードで演算する。逆に
TST、AND、OR、XOR命令ではゼロ拡張後、ロ
ングワードで演算する。したがって、AND命令ではデ
スティネーション・レジスタの上位24ビットは、常に
クリアされる。
におけるCPU1のレジスタ構成並びにデータ構成を説
明する。 (1)汎用レジスタ(Rn) CPU1は図56の(A)に示される通り、16本の汎
用レジスタR0〜R15を有する。R0は、命令によっ
ては、アキュムレータとして仮定されることがある。R
15は例外処理の中においてハードウェアスタックポイ
ンタとして仮定される。図においてSPはスタックポイ
ンタである。 (2)コントロール・レジスタ CPU1はコントロールレジスタとして、図56の
(B)に示されるステータスレジスタSR、I/Oのベ
ース・アドレスの格納レジスタとして使用されるグロー
バルベースレジスタGBR、割り込みベクタ領域のベー
スアドレスの格納レジスタとして使用されるベクタベー
スレジスタVBRを有する。ステータスレジスタSRは
MQIIII−−STの書くビットを有する。 Tビット:真(1)、偽(0)を表すとき、MOVT,CMP,T
AS,TST,BT,BF,SETT,CLRT命令で参照される。キャリ,ホ゛ロー,オ
ーハ゛/アンタ゛フロー等を表すとき、ADDV/C,SUBV/C,NEGC,DIV0U/
S,DIV1,SHAR/L,SHLR/L,ROTR/L,ROTCR/L,命令で参照され
る。 Sヒ゛ット;MAC命令で参照される。 −ビット;予約ビットである。 Iビット;割り込みマスクビットである M/Qビット;DIV0U/S,DIV1命令で参照される。 (3)システム・レジスタ CPU1は図57の(C)に示されるシステムレジスタ
をMACH,MACL,PR,PC有する。MACH/
Lは積和・レジスタであり、乗算、積和演算の結果の格
納レジスタとして使用される。MACHは下位10ビッ
トが有効であり、読み出すときは符号拡張される。PR
はプロシージャ・レジスタであり、プロシージャからの
戻り先アドレスの格納レジスタとして使用される。PC
はプログラム・カウンタである。 (4)レジスタのデータ構成 CPU1におけるレジスタのデータ構成は図57の
(D)に示される。レジスタ・オペランドのデータ・サ
イズは常にロングワードである。メモリ・オペランドの
データ・サイズがバイト、もしくはワードのときは、ロ
ングワードに符号拡張後、レジスタに格納される。 (5)メモリ上でのデータ構成 メモリ上でのデータ構成については図57の(E)に示
される。ワード・データで(2n)番地以外から始まる
もの、ロングワード・データで(4n)番地以外から始
まるもののアクセスはアドレス・エラーを発生する。こ
のとき、アクセスした結果は保証されない。特に、R1
5を参照するハードウエアスタック領域にはPC/SR
を保持するので、データは(4n)番地から始まるロン
グワードに限定する必要がある。 (6)イミディエイトのデータ構成 MOV、ADD、CMP/EQ命令ではイミディエイト
・データを符号拡張後、ロングワードで演算する。逆に
TST、AND、OR、XOR命令ではゼロ拡張後、ロ
ングワードで演算する。したがって、AND命令ではデ
スティネーション・レジスタの上位24ビットは、常に
クリアされる。
【0089】本実施例マイクロコンピュータMCUのC
PU1によるアドレッシングモードとアドレスの計算手
法は図58乃至図60に示される。
PU1によるアドレッシングモードとアドレスの計算手
法は図58乃至図60に示される。
【0090】本実施例マイクロコンピュータMCUのC
PU1の命令には以下の特徴がある。 (1)全命令が16ビット固定長である。 (2)イミディエイトデータはメモリ上に配置する。 (3)ワードとロングワードのイミディエイト・データ
は命令コードの中に配置せず、メモリ上のテーブルに配
置する。このテーブルはPC相対アドレスモードで参照
される。 (4)演算の基本的なデータサイズはロングワードであ
る。 (5)レジスタ間演算が主体の、ロード/ストア・アー
キテクチャを採用している。 (6)メモリのアクセスサイズは、バイト/ワード/ロ
ングワードを選択でき屡用になっている。 (7)ほとんどの命令で、1命令/1ステートを実現し
ている。20MHz動作時、50ns/1命令になる。 (8)遅延分岐命令を採用している。無条件分岐命令
は、遅延分岐命令である。この命令の直後の命令を、分
岐に先だって実行する。分岐時のパイプラインの乱れを
軽減できる。 (9)比較命令における比較結果はSR内のTビットに
反映し、その真/偽によって条件分岐する。 (10)SR内のTビットは、必要最小限の命令によっ
てのみ変化する。
PU1の命令には以下の特徴がある。 (1)全命令が16ビット固定長である。 (2)イミディエイトデータはメモリ上に配置する。 (3)ワードとロングワードのイミディエイト・データ
は命令コードの中に配置せず、メモリ上のテーブルに配
置する。このテーブルはPC相対アドレスモードで参照
される。 (4)演算の基本的なデータサイズはロングワードであ
る。 (5)レジスタ間演算が主体の、ロード/ストア・アー
キテクチャを採用している。 (6)メモリのアクセスサイズは、バイト/ワード/ロ
ングワードを選択でき屡用になっている。 (7)ほとんどの命令で、1命令/1ステートを実現し
ている。20MHz動作時、50ns/1命令になる。 (8)遅延分岐命令を採用している。無条件分岐命令
は、遅延分岐命令である。この命令の直後の命令を、分
岐に先だって実行する。分岐時のパイプラインの乱れを
軽減できる。 (9)比較命令における比較結果はSR内のTビットに
反映し、その真/偽によって条件分岐する。 (10)SR内のTビットは、必要最小限の命令によっ
てのみ変化する。
【0091】<14.マイクロコンピュータの命令説明
>
>
【0092】本実施例マイクロコンピュータMCUのC
PU1の命令は、データ転送命令算術演算命令、論理演
算命令、シフト命令、分岐命令、システム制御命令に分
類される。図62〜図71には図61の表示形式に従っ
て各命令がその分類順に示される。
PU1の命令は、データ転送命令算術演算命令、論理演
算命令、シフト命令、分岐命令、システム制御命令に分
類される。図62〜図71には図61の表示形式に従っ
て各命令がその分類順に示される。
【0093】次に各命令の詳細をアルファベット順に説
明する。その説明形式は以下の通りである。 <説明形式> 命令の名称 命令の分類 書式 アセンブラの入力書式で表示している。 imm、dispは数値、式またはシンボルになる。 説明 動作の説明を行なっている。 注意 命令を使用する上で特に注意して欲しいことを説明している。 動作 Cで動作内容を表示しています。ここでは以下の資源の使用を仮定し ている。 unsigned char Read_Byte(unsigned long Addr); unsigned short Read_Word(unsigned long Addr); unsigned long Read_Long(unsigned long Addr); アドレスAddrのそれぞれのサイズの内容を返します。(2n)番 地以外からのワード、 (4n)番地以外からのロングワードの読み込みはアドレスエラ ーとして検出します。 unsigned char Write_Byte(unsigned long Addr, unsigned long Data); unsigned short Write_Word(unsigned long Addr, unsigned long Data); unsigned long Write_Long(unsigned long Addr, unsigned long Data); アドレスAddrにデータDataをそれぞれのサイズで書き込みます。 (2n)番地以外へのワード、 (4n)番地以外へのロングワードの書き込みはアドレスエラー として検出します。 Delay_Slot(unsigned long Addr); アドレス(Addr-4)のスロット命令に実行を移します。これは例 えば“Delay_Slot(4);” のとき、4番地ではなく0番地の命令に実行が移ることを意味し ます。また、この関数から 以下の命令に実行が移されようとすると、その直前に以下の命令 をスロット不当命令として検出します。 BF,BT,BRA,BSR,JMP,JSR,RTS, RTE,TRAPA unsigned long R[16]; unsigned long SR,GBR,VBR; unsigned long MACH,MACL,PR; unsigned long PC; 各レジスタの本体 struct SR0 { unsigned long dummy0:22; unsigned long M0:1; unsigned long Q0:1; unsigned long I0:4; unsigned long dummy1:2; unsigned long S0:1; unsigned long T0:1; }; SRの構造の定義 #define M ((*(struct SR0 *)(&SR)).M0) #define Q ((*(struct SR0 *)(&SR)).Q0) #define S ((*(struct SR0 *)(&SR)).S0) #define T ((*(struct SR0 *)(&SR)).T0) SR内ビットの定義 Error( char *er ); エラー表示関数 これ以外に、PCは現在実行中の命令の4バイト(2命令)先を示し ているものと仮定している。 これは、例えば“PC=4;”は4番地ではなく0番地の命令に実行 が移ることを意味する。 使用例 アセンブラニモニックで例を示し、命令の実行前後の状態を表示して いる。 字体 .align はアセンブラ制御命令であることを示し、以下の意味を 持つ。 .org ロケーションカウンタ設定 .data.w ワード整数データ確保 .data.l ロングワード整数データ確保 .sdata 文字列データ確保 .align 2 2バイト境界調整 .align 4 4バイト境界調整 .arepeat 16 16回繰り返し展開 .arepeat 32 32回繰り返し展開 .aendr 回数指定繰り返し展開終了
明する。その説明形式は以下の通りである。 <説明形式> 命令の名称 命令の分類 書式 アセンブラの入力書式で表示している。 imm、dispは数値、式またはシンボルになる。 説明 動作の説明を行なっている。 注意 命令を使用する上で特に注意して欲しいことを説明している。 動作 Cで動作内容を表示しています。ここでは以下の資源の使用を仮定し ている。 unsigned char Read_Byte(unsigned long Addr); unsigned short Read_Word(unsigned long Addr); unsigned long Read_Long(unsigned long Addr); アドレスAddrのそれぞれのサイズの内容を返します。(2n)番 地以外からのワード、 (4n)番地以外からのロングワードの読み込みはアドレスエラ ーとして検出します。 unsigned char Write_Byte(unsigned long Addr, unsigned long Data); unsigned short Write_Word(unsigned long Addr, unsigned long Data); unsigned long Write_Long(unsigned long Addr, unsigned long Data); アドレスAddrにデータDataをそれぞれのサイズで書き込みます。 (2n)番地以外へのワード、 (4n)番地以外へのロングワードの書き込みはアドレスエラー として検出します。 Delay_Slot(unsigned long Addr); アドレス(Addr-4)のスロット命令に実行を移します。これは例 えば“Delay_Slot(4);” のとき、4番地ではなく0番地の命令に実行が移ることを意味し ます。また、この関数から 以下の命令に実行が移されようとすると、その直前に以下の命令 をスロット不当命令として検出します。 BF,BT,BRA,BSR,JMP,JSR,RTS, RTE,TRAPA unsigned long R[16]; unsigned long SR,GBR,VBR; unsigned long MACH,MACL,PR; unsigned long PC; 各レジスタの本体 struct SR0 { unsigned long dummy0:22; unsigned long M0:1; unsigned long Q0:1; unsigned long I0:4; unsigned long dummy1:2; unsigned long S0:1; unsigned long T0:1; }; SRの構造の定義 #define M ((*(struct SR0 *)(&SR)).M0) #define Q ((*(struct SR0 *)(&SR)).Q0) #define S ((*(struct SR0 *)(&SR)).S0) #define T ((*(struct SR0 *)(&SR)).T0) SR内ビットの定義 Error( char *er ); エラー表示関数 これ以外に、PCは現在実行中の命令の4バイト(2命令)先を示し ているものと仮定している。 これは、例えば“PC=4;”は4番地ではなく0番地の命令に実行 が移ることを意味する。 使用例 アセンブラニモニックで例を示し、命令の実行前後の状態を表示して いる。 字体 .align はアセンブラ制御命令であることを示し、以下の意味を 持つ。 .org ロケーションカウンタ設定 .data.w ワード整数データ確保 .data.l ロングワード整数データ確保 .sdata 文字列データ確保 .align 2 2バイト境界調整 .align 4 4バイト境界調整 .arepeat 16 16回繰り返し展開 .arepeat 32 32回繰り返し展開 .aendr 回数指定繰り返し展開終了
【0094】 ADD ADD binary 算術演算命令 書式 ADD Rm,Rn ADD #imm,Rn 説明 汎用レジスタRnの内容とRmとを加算し、結果をRnに格納する。 汎用レジスタRnと8ビット・イミディエイト・データとの加算も可 能である。8ビット・イミディエイト・データは32ビットに符号拡 張するので減算との兼用が可能である。 動作 ADD(long m, long n) /* ADD Rm,Rn */ { R[n]+=R[m]; PC+=2; } ADDI(long i, long n) /* ADD #imm,Rn */ { if ((i&0x80)==0) R[n]+=(0x000000FF & (long)i); else R[n]+=(0xFFFFFF00 | (long)i); PC+=2; } 使用例 ADD R0,R1 ;実行前 R0=H'7FFFFFFF,R1=H'00000001 ;実行後 R1=H'80000000 ADD #H'01,R2 ;実行前 R2=H'00000000 ;実行後 R2=H'00000001 ADD #H'FE,R3 ;実行前 R3=H'00000001 ;実行後 R3=H'FFFFFFFF
【0095】 ADDC ADD with Carry 算術演算命令 書式 ADDC Rm,Rn 説明 汎用レジスタRnの内容とRmとTビットを加算し、結果をRnに格 納する。演算の結果によってキャリをTビットに反映する。32ビッ トを超える加算を行なうとき使用する。 動作 ADDC(long m, long n) /* ADDC Rm,Rn */ { unsigned long tmp0,tmp1; tmp1=R[n]+R[m]; tmp0=R[n]; R[n]=tmp1+T; if (tmp0>tmp1) T=1; else T=0; if (tmp1>R[n]) T=1; PC+=2; } 使用例 CLRT ; R0:R1(64ヒ゛ット)+R2:R3(64ヒ゛ット)=R0:R1(64ヒ゛ット) ADDC R3,R1 ;実行前 T=0,R1=H'00000001,R3=H'FFFFFFFF ;実行後 T=1,R1=H'00000000 ADDC R2,R0 ;実行前 T=1,R0=H'00000000,R2=H'00000000 ;実行後 T=0,R0=H'00000001
【0096】 ADDV ADD with (Vflag)overflow check 算術演算命令 書式 ADDV Rm,Rn 説明 汎用レジスタRnの内容とRmとを加算し、結果をRnに格納する。 オーバーフローが発生すると、Tビットをセットする。 動作 ADDV(long m, long n) /* ADDV Rm,Rn */ { long dest,src,ans; if ((long)R[n]>=0) dest=0; else dest=1; if ((long)R[m]>=0) src=0; else src=1; src+=dest; R[n]+=R[m]; if ((long)R[n]>=0) ans=0; else ans=1; ans+=dest; if (src==0 || src==2) { if (ans==1) T=1; else T=0; } else T=0; PC+=2; } 使用例 ADDV R0,R1 ;実行前 R0=H'00000001,R1=H'7FFFFFFE,T=0 ;実行後 R1=H'7FFFFFFF, T=0 ADDV R0,R1 ;実行前 R0=H'00000002,R1=H'7FFFFFFE,T=0 ;実行後 R1=H'80000000, T=1
【0097】 AND AND logical 論理演算命令 書式 AND Rm,Rn AND #imm,R0 AND.B #imm,@(R0,GBR) 説明 汎用レジスタRnの内容とRmの論理積をとり、結果をRnに格納す る。 特殊形として汎用レジスタR0とゼロ拡張した8ビット・イミ ディエイト・データとの論理積、もしくはGBR相対で8ビット・メ モリと8ビット・イミディエイト・データとの論理積が可能である。 注意 AND #imm,R0では演算の結果、R0の上位24ビットは常に クリアされる。 動作 AND(long m, long n) /* AND Rm,Rn */ { R[n]&=R[m]; PC+=2; } ANDI(long i) /* AND #imm,R0 */ { R[0]&=(0x000000FF & (long)i); PC+=2; } ANDM(long i) /* AND.B #imm,@(R0,GBR) */ { long temp; temp=(long)Read_Byte(GBR+R[0]); temp&=(0x000000FF & (long)i); Write_Byte(GBR+R[0],temp); PC+=2; } 使用例 AND R0,R1 ;実行前 R0=H'AAAAAAAA,R1=H'55555555 ;実行後 R1=H'00000000 AND #H'0F,R0 ;実行前 R0=H'FFFFFFFF ;実行後 R0=H'0000000F AND.B #H'80,@(R0,GBR) ;実行前 @(R0,GBR)=H'A5 ;実行後 @(R0,GBR)=H'80
【0098】 BF/BT Branch if False/True 分岐命令 書式 BF disp BT disp 説明 Tビットを参照する条件付き分岐命令である。T=1のとき、BTは 分岐するが、BFは次の命令を実行する。逆にT=0のとき、BFは 分岐するが、BTは次の命令を実行する。分岐先はPCにディスプレ ースメントを加えたアドレスである。PCは、本命令の2命令後の先 頭アドレスである。8ビットディスプレースメントは符号拡張後2倍 するので、分岐先との相対距離は−256バイトから+254バイト の範囲になる。分岐先に届かないときはBRA命令、もしくはJMP 命令との組み合わせで対応する必要が有る。 動作 BF(long d) /* BF disp */ { long disp; if ((d&0x80)==0) disp=(0x000000FF & (long)d); else disp=(0xFFFFFF00 | (long)d); if (T==0) PC=PC+(disp<<1)+4; else PC+=2; } BT(long d) /* BT disp */ { long disp; if ((d&0x80)==0) disp=(0x000000FF & (long)d); else disp=(0xFFFFFF00 | (long)d); if (T==1) PC=PC+(disp<<1)+4; else PC+=2; } 使用例 CLRT ;常にT=0 BT TRGET_T ;T=0のため分岐しない BF TRGET_F ;T=0のためTRGET_Fへ分岐する。 NOP ; NOP ;←BF命令で分岐先アト゛レス計算に用いるPCの位置 TRGET_F: ;←BF命令の分岐先
【0099】 BRA BRAnch 分岐命令 書式 BRA disp 説明 無条件の遅延分岐命令である。分岐先はPCにディスプレースメント を加えたアドレスである。PCは、本命令の2命令後の先頭アドレス である。12ビットディスプレースメントは符号拡張後2倍するので 、分岐先との相対距離は−4096バイトから+4094バイトの範 囲になります。分岐先に届かないときは、分岐先アドレスをMOV命 令でレジスタに転送した上で、JMP命令への変更が必要である。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 BRA(long d) /* BRA disp */ { unsigned long temp; long disp; if ((d&0x800)==0) disp=(0x00000FFF & d); else disp=(0xFFFFF000 | d); temp=PC; PC=PC+(disp<<1)+4; Delay_Slot(temp+2); } 使用例 BRA TRGET ;TRGETへ分岐する。 ADD R0,R1 ;分岐に先立ち実行する。 NOP ;←BRA命令で分岐先アト゛レス計算に用いるPCの位置 TRGET: ;←BRA命令の分岐先
【0100】 BSR Branch to SubRoutine 分岐命令 書式 BSR disp 説明 指定されたアドレスのプロシージャへ遅延分岐する。PCの内容をP Rに退避し、PCにディスプレースメントを加えたアドレスへ分岐す る。PCは、本命令の2命令後の先頭アドレスである。12ビットデ ィスプレースメントは符号拡張後2倍するので、分岐先との相対距離 は−4096バイトから+4094バイトの範囲になる。分岐先に届 かないときは、分岐先アドレスをMOV命令でレジスタに転送した上 で、JSR命令への変更が必要です。RTSと組み合わせて、プロシ ージャ・コールに使用する。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 BSR(long d) /* BSR disp */ { long disp; if ((d&0x800)==0) disp=(0x00000FFF & d); else disp=(0xFFFFF000 | d); PR=PC; PC=PC+(disp<<1)+4; Delay_Slot(PR+2); } 使用例 BSR TRGET ;TRGETへ分岐する。 MOV R3,R4 ;分岐に先立ち実行する。 ADD R0,R1 ;←BSRで分岐先アト゛レス計算に用いるPCの位置であり ・・・・・ プロシージャからの戻り先(PRの内容)である 。 ・・・・・ TRGET: ;←プロシージャの入り口 MOV R2,R3 ; RTS ;上記ADD命令に戻る。 MOV #1,R0 ;分岐に先立ち実行する。
【0101】 CLRT CLeaR Tbit システム制御命令 書式 CLRT 説明 Tビットをクリアする。 動作 CLRT( ) /* CLRT */ { T=0; PC+=2; } 使用例 CLRT ;実行前 T=1 ;実行後 T=0
【0102】 CLRMAC CLeaR MAC register システム制御命令 書式 CLRMAC 説明 MACH、MACLレジスタをクリアする。 動作 CLRMAC( ) /* CLRMAC */ { MACH=0; MACL=0; PC+=2; } 使用例 CLRMAC ;MACレジスタをクリアして初期化する MAC.W @R0+,@R1+ ;積和演算 MAC.W @R0+,@R1+ ;
【0103】 CMP/cond CoMPare conditionary 算術演算命令 書式 CMP/cond Rm,Rn CMP/PZ Rn CMP/PL Rn CMP/EQ #imm,R0 説明 汎用レジスタRnとRmとを比較し、その結果、指定された条件(c ond)が成立しているとTビットをセットする。条件が不成立のと きはTビットをクリアする。Rnの内容は変化しない。8条件が指定 できる。PZとPLの2条件についてはRnと0との比較になる。E Qの条件については符号拡張した8ビット・イミディエイト・データ とR0との比較も可能である。R0の内容は変化しない。 ニーモニック 説明 CMP/EQ Rm,Rn Rn=RmのときT=1 CMP/GE Rm,Rn 有符号値としてRn≧RmのときT=1 CMP/GT Rm,Rn 有符号値としてRn>RmのときT=1 CMP/HI Rm,Rn 無符号値としてRn>RmのときT=1 CMP/HS Rm,Rn 無符号値としてRn≧RmのときT=1 CMP/PL Rn Rn>0のときT=1 CMP/PZ Rn Rn≧0のときT=1 CMP/STR Rm,Rn いずれかのバイトが等しいときT=1 CMP/EQ #imm,R0 R0=immのときT=1 動作 CMPEQ(long m, long n) /* CMP_EQ Rm,Rn */ { if (R[n]==R[m]) T=1; else T=0; PC+=2; } CMPGE(long m, long n) /* CMP_GE Rm,Rn */ { if ((long)R[n]>=(long)R[m]) T=1; else T=0; PC+=2; } CMPGT(long m, long n) /* CMP_GT Rm,Rn */ { if ((long)R[n]>(long)R[m]) T=1; else T=0; PC+=2; } CMPHI(long m, long n) /* CMP_HI Rm,Rn */ { if ((unsigned long)R[n]>(unsigned long)R[m]) T=1; else T=0; PC+=2; } CMPHS(long m, long n) /* CMP_HS Rm,Rn */ { if ((unsigned long)R[n]>=(unsigned long)R[m]) T=1; else T=0; PC+=2; } CMPPL(long n) /* CMP_PL Rn */ { if ((long)R[n]>0) T=1; else T=0; PC+=2; } CMPPZ(long n) /* CMP_PZ Rn */ { if ((long)R[n]>=0) T=1; else T=0; PC+=2; } CMPSTR(long m, long n) /* CMP_STR Rm,Rn */ { unsigned long temp; long HH,HL,LH,LL; temp=R[n]^R[m]; HH=(temp&0xFF000000)>>12; HL=(temp&0x00FF0000)>>8; LH=(temp&0x0000FF00)>>4; LL=temp&0x000000FF; HH=HH&&HL&&LH&&LL; if (HH==0) T=1; else T=0; PC+=2; } CMPIM(long i) /* CMP_EQ #imm,R0 */ { long imm; if ((i&0x80)==0) imm=(0x000000FF & (long i)); else imm=(0xFFFFFF00 | (long i)); if (R[0]==imm) T=1; else T=0; PC+=2; } 使用例 CMP/GE R0,R1 ;R0=H'7FFFFFFF,R1=H'80000000 BT TRGET_T ;T=0なので分岐しない CMP/HS R0,R1 ;R0=H'7FFFFFFF,R1=H'80000000 BT TRGET_T ;T=1なので分岐する CMP/STR R2,R3 ;R2="ABCD",R3="XYCZ" BT TRGET_T ;T=1なので分岐する
【0104】 DIV0S DIVide(step0) as Signed DIV0U DIVide(step0) as Unsigned DIV1 DIVide 1 step 算術演算命令 書式 DIV1 Rm,Rn DIV0S Rm,Rn DIV0U 説明 汎用レジスタRnの内容32ビットをRmの内容で1ステップ除算し 、結果の1ビットをTビットに格納する。DIV0Sは符号付き除算 用の初期化命令で被除数(Rn)のMSBをQビットに、除数(Rm )のMSBをMビットに、MビットとQビットのXORをTビットに 格納する。DIV0Uは符号無し除算用の初期化命令で、M/Q/T ビットを0にクリアする。DIV1を(必要であればROTCLと組 み合わせて)除数のビット数分繰り返すことによって、商を得る。こ の繰り返し中は、指定したレジスタとM/Q/Tビットに中間結果を 格納している。これらを不必要にソフトウエアで書き替えると、演算 結果が保証出来なくなる。ゼロ除算とオーバーフローの検出、および 剰余の演算は用意していない。除算のシーケンスは下記使用例が参考 になる。 動作 DIV0U( ) /* DIV0U */ { M=Q=T=0; PC+=2; } DIV0S(long m, long n) /* DIV0S Rm,Rn */ { if ((R[n] & 0x80000000)==0) Q=0; else Q=1; if ((R[m] & 0x80000000)==0) M=0; else M=1; T=!(M==Q); PC+=2; } DIV1(long m, long n) /* DIV1 Rm,Rn */ { unsigned long tmp0; unsigned char old_q, tmp1; old_q=Q; Q=(unsigned char)((0x80000000 & R[n])!=0); R[n]<<=1; R[n]|=(unsigned long)T; switch(old_q){ case 0:switch(M){ case 0:tmp0=R[n]; R[n]-=R[m]; tmp1=(R[n]>tmp0); switch(Q){ case 0:Q=tmp1; break; case 1:Q=(unsigned char)(tmp1==0); break; } break; case 1:tmp0=R[n]; R[n]+=R[m]; tmp1=(R[n]<tmp0); switch(Q){ case 0:Q=(unsigned char)(tmp1==0); break; case 1:Q=tmp1; break; } break; } break; case 1:switch(M){ case 0:tmp0=R[n]; R[n]+=R[m]; tmp1=(R[n]<tmp0); switch(Q){ case 0:Q=tmp1; break; case 1:Q=(unsigned char)(tmp1==0); break; } break; case 1:tmp0=R[n]; R[n]-=R[m]; tmp1=(R[n]>tmp0); switch(Q){ case 0:Q=(unsigned char)(tmp1==0); break; case 1:Q=tmp1; break; } break; } break; } T=(Q==M); PC+=2; } 使用例1 R1(32bit)÷R0(16bit)=R1(16bit):符号無し SHLL16 R0 ;除数を上位16bit、下位16bitを0に設定 TST R0,R0 ;ゼロ除算チェック BT ZERO_DIV ; CMP/HS R0,R1 ;オーバーフローチェック BT OVER_DIV ; DIV0U ;フラグの初期化 .arepeat 16 ; DIV1 R0,R1 ;16回繰り返し .aendr ; ROTCL R1 ; EXTU.W R1,R1 ;R1=商 使用例2 R1:R2(64bit)÷R0(32bit)=R2(32bit):符号無し TST R0,R0 ;ゼロ除算チェック BT ZERO_DIV ; CMP/HS R0,R1 ;オーバーフローチェック BT OVER_DIV ; DIV0U ;フラグの初期化 .arepeat 32 ; ROTCL R2 ; 32回繰り返し DIV1 R0,R1 ; .aendr ; ROTCL R2 ;R2=商 使用例3 R1(16bit)÷R0(16bit)=R1(16bit):符号付き SHLL16 R0 ;除数を上位16bit、下位16bitを0に設定 EXTS.W R1,R1 ;被除数は符号拡張して32bit XOR R2,R2 ;R2=0 MOV R1,R3 ; ROTCL R3 ; SUBC R2,R1 ;被除数が負のとき、−1する。 DIV0S R0,R1 ;フラグの初期化 .arepeat 16 ; DIV1 R0,R1 ;16回繰り返し .aendr ; EXTS.W R1,R1 ; ROTCL R1 ;R1=商(1の補数表現) ADDC R2,R1 ;商のMSBが1のとき、+1して2の補数表現に変換 EXTS.W R1,R1 ;R1=商(2の補数表現) 使用例4 R2(32bit)÷R0(32bit)=R2(32bit):符号付き MOV R2,R3 ; ROTCL R3 ; SUBC R1,R1 ;被除数は符号拡張して64bit(R1:R2) XOR R3,R3 ;R3=0 SUBC R3,R2 ;被除数が負のとき、−1して1の補数表現に変換 DIV0S R0,R1 ;フラグの初期化 .arepeat 32 ; ROTCL R2 ; 32回繰り返し DIV1 R0,R1 ; .aendr ; ROTCL R2 ;R2=商(1の補数表現) ADDC R3,R2 ;商のMSBが1のとき、+1して2の補数表現に変換 ;R2=商(2の補数表現)
【0105】 EXTS EXTend as Signed 算術演算命令 書式 EXTS.B Rm,Rn EXTS.W Rm,Rn 説明 汎用レジスタRmの内容を符号拡張して、結果をRnに格納する。バ イト指定のとき、Rnのビット8からビット31にRmのビット7の 内容を転送する。ワード指定のとき、Rnのビット16からビット3 1にRmのビット15の内容を転送する。 動作 EXTSB(long m, long n) /* EXTS.B Rm,Rn */ { R[n]=R[m]; if ((R[m]&0x00000080)==0) R[n]&=0x000000FF; else R[n]|=0xFFFFFF00; PC+=2; } EXTSW(long m, long n) /* EXTS.W Rm,Rn */ { R[n]=R[m]; if ((R[m]&0x00008000)==0) R[n]&=0x0000FFFF; else R[n]|=0xFFFF0000; PC+=2; } 使用例 EXTS.B R0,R1 ;実行前 R0=H'00000080 ;実行後 R1=H'FFFFFF80 EXTS.W R0,R1 ;実行前 R0=H'00008000 ;実行後 R1=H'FFFF8000
【0106】 EXTU EXTend as Unsigned 算術演算命令 書式 EXTU.B Rm,Rn EXTU.W Rm,Rn 説明 汎用レジスタRmの内容をゼロ拡張して、結果をRnに格納する。バ イト指定のとき、Rnのビット8からビット31に0を転送する。ワ ード指定のとき、Rnのビット16からビット31に0を転送する。 動作 EXTUB(long m, long n) /* EXTU.B Rm,Rn */ { R[n]=R[m]; R[n]&=0x000000FF; PC+=2; } EXTUW(long m, long n) /* EXTU.W Rm,Rn */ { R[n]=R[m]; R[n]&=0x0000FFFF; PC+=2; } 使用例 EXTU.B R0,R1 ;実行前 R0=H'FFFFFF80 ;実行後 R1=H'00000080 EXTU.W R0,R1 ;実行前 R0=H'FFFF8000 ;実行後 R1=H'00008000
【0107】 JMP JuMP 分岐命令 書式 JMP @Rn 説明 指定されたアドレスへ無条件に遅延分岐する。分岐先は汎用レジスタ Rnの内容の32ビットデータで表わされるアドレスである。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 JMP(long n) /* JMP @Rn */ { unsigned long temp; temp=PC; PC=R[n]+4; Delay_Slot(temp+2); } 使用例 MOV.L JMP_TABLE,R0 ;R0=TRGETのアドレス JMP @R0 ;TRGETへ分岐する。 MOV R0,R1 ;分岐に先立ち実行する。 .align 4 JMP_TABLE: .data.l TRGET ;ジャンプテーブル ・・・・・・・・・・・ TRGET: ADD #1,R1 ;←分岐先
【0108】 JSR Jump to SubRoutine 分岐命令 書式 JSR @Rn 説明 指定されたアドレスのプロシージャへ遅延分岐する。PCの内容をP Rに退避し、汎用レジスタRnの内容の32ビットデータで表わされ るアドレスへ分岐する。 PCは、本命令の2命令後の先頭アドレス である。RTSと組み合わせて、プロシージャ・コールに使用する。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 JSR(long n) /* JSR @Rn */ { PR=PC; PC=R[n]+4; Delay_Slot(PR+2); } 使用例 MOV.L JSR_TABLE,R0 ;R0=TRGETのアドレス JSR @R0 ;TRGETへ分岐する。 XOR R1,R1 ;分岐に先立ち実行する。 ADD R0,R1 ;←プロシージャからの戻り先 ・・・・・・・ (PRの内容)である。 .align 4 JSR_TABLE: .data.l TRGET ;ジャンプテーブル TRGET: NOP ;←プロシージャの入り口 MOV R2,R3 ; RTS ;上記ADD命令に戻る。 MOV #70,R1 ;RTSに先立ち実行する。
【0109】 LDC LoaD to Control register システム制御命令 書式 LDC Rm,Cn LDC.L @Rm+,Cn 説明 ソース・オペランドをコントロール・レジスタCn(SR、GBR、 VBR)に格納する。 注意 本命令と直後の命令との間には、割り込みを受け付けない。(アドレ スエラーは受け付ける。) 動作 LDC(long m, long n) /* LDC Rm,Cn */ { switch (n) { case 0: SR=R[m]&0x000003F3; PC+=2; break; case 1: GBR=R[m]; PC+=2; break; case 2: VBR=R[m]; PC+=2; break; default:Error("Illegal CR number."); break; } } LDCM(long m, long n) /* LDC.L @Rm+,Cn */ { switch (n) { case 0: SR=Read_Long(R[m])&0x000003F3; R[m]+=4; PC+=2; b reak; case 1: GBR=Read_Long(R[m]); R[m]+=4; PC+=2; break; case 2: VBR=Read_Long(R[m]); R[m]+=4; PC+=2; break; default:Error("Illegal CR number."); break; } } 使用例 LDC R0,SR ;実行前 R0=H'FFFFFFFF,SR=H'00000000 ;実行後 SR=H'000003F3 LDC.L @R15+,GBR ;実行前 R15=H'10000000 ;実行後 R15=H'10000004,GBR=@H'10000000
【0110】 LDS LoaD to System register システム制御命令 書式 LDS Rm,Sn LDS.L @Rm+,Sn 説明 ソース・オペランドをシステム・レジスタSn(MACH、MACL 、PR)に格納する。 注意 本命令と直後の命令との間には、割り込みを受け付けない。(アドレ スエラーは受け付ける。) 動作 LDS(long m, long n) /* LDS Rm,Sn */ { switch (n) { case 0: MACH=R[m]; if ((MACH&0x00000200)==0) MACH&=0x000003FF; else MACH|=0xFFFFFC00; PC+=2; break; case 1: MACL=R[m]; PC+=2; break; case 2: PR=R[m]; PC+=2; break; default:Error("Illegal SR number."); break; } } LDSM(long m, long n) /* LDS.L @Rm+,Sn */ { switch (n) { case 0: MACH=Read_Long(R[m]); if ((MACH&0x00000200)==0) MACH&=0x000003FF; else MACH|=0xFFFFFC00; R[m]+=4; PC+=2; break; case 1: MACL=Read_Long(R[m]); R[m]+=4; PC+=2; break; case 2: PR=Read_Long(R[m]); R[m]+=4; PC+=2; break; default:Error("Illegal SR number."); break; } } 使用例 LDS R0,PR ;実行前 R0=H'12345678,PR=H'00000000 ;実行後 PR=H'12345678 LDS.L @R15+,MACL ;実行前 R15=H'10000000 ;実行後 R15=H'10000004,MACL=@H'10000000
【0111】 MAC Multiply and ACcumulate 算術演算命令 書式 MAC.W @Rm+,@Rn+ 説明 汎用レジスタRmとRnの内容をアドレスとする16ビットオペラン ドを符号付きで乗算し、結果の32ビットとMACレジスタの内容と を加算し、結果をMACレジスタに格納する。 Sビットが1のときは、MACレジスタとの加算は飽和演算になる。 飽和演算においては、オーバーフローが発生するとMACHレジスタ のLSBを1にセットし、結果が負の方向にオーバーフローしたとき はH”80000000(最小値)を、正の方向にオーバーフローし たときはH'7FFFFFFF(最大値)を、MACLレジスタに格 納する。Sビットが0のときは、連結したMACH/Lレジスタに結 果の42ビットを格納する。 MACHレジスタの上位22ビット( ビット31〜ビット10)にはビット9の内容を転送する。演算後R mとRnの内容を共に+2する。 動作 MACW(long m, long n) /* MAC.W @Rm+,@Rn+ */ { long tempm,tempn,dest,src,ans; unsigned long templ; tempn=(long)Read_Word(R[n]); R[n]+=2; tempm=(long)Read_Word(R[m]); R[m]+=2; templ=MACL; tempm=((long)(short)tempn*(long)(short)tempm); if ((long)MACL>=0) dest=0; else dest=1; if ((long)tempm>=0) { src=0; tempn=0; } else { src=1; tempn=0xFFFFFFFF; } src+=dest; MACL+=tempm; if ((long)MACL>=0) ans=0; else ans=1; ans+=dest; if (S==1) { if (ans==1) { if (src==0 || src==2) MACH|=0x00000001; if (src==0) MACL=0x7FFFFFFF; if (src==2) MACL=0x80000000; } } else { MACH+=tempn; if (templ>MACL) MACH+=1; if ((MACH&0x00000200)==0) MACH&=0x000003FF; else MACH|=0xFFFFFC00; } PC+=2; } 使用例 MOVA TBLM,R0 ;テーブルのアドレスを得る MOV R0,R1 ; MOVA TBLN,R0 ;テーブルのアドレスを得る CLRMAC ;MACレジスタの初期化 MAC.W @R0+,@R1+ ; MAC.W @R0+,@R1+ ; STS MACL,R0 ;結果をR0に得る ・・・・・・・・・・・ .align 2 ; TBLM .data.w H'1234 ; .data.w H'5678 ; TBLN .data.w H'0123 ; .data.w H'4567 ;
【0112】 MOV MOVe immediate data データ転送命令 書式 MOV #imm,Rn MOV.W @(disp,PC),Rn MOV.L @(disp,PC),Rn 説明 ロングワードに符号拡張したイミディエイト・データを汎用レジスタ Rnに格納する。データがワード/ロングワードのときは、PCにデ ィスプレースメントを加えたアドレスに格納されたテーブル内のデー タを参照する。データがワードのとき、8ビットディスプレースメン トはゼロ拡張後2倍するので、テーブルとの相対距離はPC+510 バイトまでの範囲になる。PCは本命令の2命令後の先頭アドレスで ある。データがロングワードのとき、8ビットディスプレースメント はゼロ拡張後4倍するので、オペランドとの相対距離はPC+102 0バイトまでの範囲になる。PCは本命令の2命令後の先頭アドレス であるが、下位2ビットをB'00に補正した値をアドレス計算に使 用する。 注意 テーブルはモジュール後端あるいは無条件分岐命令の1命令後への配 置が最適である。510バイト/1020バイト以内に無条件分岐命 令が無いなどの理由で最適配置が不可能なときは、BRA命令でテー ブルを飛び越す対策が必要である。本命令を遅延分岐命令の直後に配 置すると、PCは分岐先の“先頭アドレス+2”になる。 動作 MOVI(long i, long n) /* MOV #imm,Rn */ { if ((i&0x80)==0) R[n]=(0x000000FF & (long)i); else R[n]=(0xFFFFFF00 | (long)i); PC+=2; } MOVWI(long d, long n) /* MOV.W @(disp,PC),Rn */ { long disp; disp=(0x000000FF & (long)d); R[n]=(long)Read_Word(PC+(disp<<1)); if ((R[n]&0x8000)==0) R[n]&=0x0000FFFF; else R[n]|=0xFFFF0000; PC+=2; } MOVLI(long d, long n) /* MOV.L @(disp,PC),Rn */ { long disp; disp=(0x000000FF & (long)d); R[n]=Read_Long((PC&0xFFFFFFFC)+(disp<<2)); PC+=2; } 使用例 アト゛レス 1000 MOV #H'80,R1 ;R1=H'FFFFFF80 1002 MOV.W IMM,R2 ;R2=H'FFFF9ABC IMMは@(H'08,PC) の意味 1004 ADD #-1,R0 ; 1006 TST R0,R0 ;←MOV.W命令でアト゛レス計算に用いる PCの位置 1008 MOVT R13 ; 100A BRA NEXT ;遅延分岐命令 100C MOV.L @(4,PC),R3 ;R3=H'12345678 100E IMM .data.w H'9ABC ; 1010 .data.w H'1234 ; 1012 NEXT JMP @R3 ;BRAの分岐先 1014 CMP/EQ #0,R0 ;←MOV.L命令でアト゛レス計算に用いる PCの位置 .align 4 ; 1018 .data.l H'12345678;
【0113】 MOV MOVe data データ転送命令 書式 MOV Rm,Rn MOV Rm,@Rn MOV @Rm,Rn MOV Rm,@−Rn MOV @Rm+,Rn MOV Rm,@(R0,Rn) MOV @(R0,Rm),Rn 説明 ソース・オペランドをデスティネーションへ転送する。オペランドが メモリのときは転送するデータ・サイズをバイト/ワード/ロングワ ードの範囲で指定できる。ソース・オペランドがメモリのときは、ロ ードされたデータをロングワードに符号拡張後レジスタに格納する。 動作 MOV(long m, long n) /* MOV Rm,Rn */ { R[n]=R[m]; PC+=2; } MOVBS(long m, long n) /* MOV.B Rm,@Rn */ { Write_Byte(R[n],R[m]); PC+=2; } MOVWS(long m, long n) /* MOV.W Rm,@Rn */ { Write_Word(R[n],R[m]); PC+=2; } MOVLS(long m, long n) /* MOV.L Rm,@Rn */ { Write_Long(R[n],R[m]); PC+=2; } MOVBL(long m, long n) /* MOV.B @Rm,Rn */ { R[n]=(long)Read_Byte(R[m]); if ((R[n]&0x80)==0) R[n]&=0x000000FF; else R[n]|=0xFFFFFF00; PC+=2; } MOVWL(long m, long n) /* MOV.W @Rm,Rn */ { R[n]=(long)Read_Word(R[m]); if ((R[n]&0x8000)==0) R[n]&=0x0000FFFF; else R[n]|=0xFFFF0000; PC+=2; } MOVLL(long m, long n) /* MOV.L @Rm,Rn */ { R[n]=Read_Long(R[m]); PC+=2; } MOVBM(long m, long n) /* MOV.B Rm,@-Rn */ { Write_Byte(R[n]-1,R[m]); R[n]-=1; PC+=2; } MOVWM(long m, long n) /* MOV.W Rm,@-Rn */ { Write_Word(R[n]-2,R[m]); R[n]-=2; PC+=2; } MOVLM(long m, long n) /* MOV.L Rm,@-Rn */ { Write_Long(R[n]-4,R[m]); R[n]-=4; PC+=2; } MOVBP(long m, long n) /* MOV.B @Rm+,Rn */ { R[n]=(long)Read_Byte(R[m]); if ((R[n]&0x80)==0) R[n]&=0x000000FF; else R[n]|=0xFFFFFF00; if (n!=m) R[m]+=1; PC+=2; } MOVWP(long m, long n) /* MOV.W @Rm+,Rn */ { R[n]=(long)Read_Word(R[m]); if ((R[n]&0x8000)==0) R[n]&=0x0000FFFF; else R[n]|=0xFFFF0000; if (n!=m) R[m]+=2; PC+=2; } MOVLP(long m, long n) /* MOV.L @Rm+,Rn */ { R[n]=Read_Long(R[m]); if (n!=m) R[m]+=4; PC+=2; } MOVBS0(long m, long n) /* MOV.B Rm,@(R0,Rn) */ { Write_Byte(R[n]+R[0],R[m]); PC+=2; } MOVWS0(long m, long n) /* MOV.W Rm,@(R0,Rn) */ { Write_Word(R[n]+R[0],R[m]); PC+=2; } MOVLS0(long m, long n) /* MOV.L Rm,@(R0,Rn) */ { Write_Long(R[n]+R[0],R[m]); PC+=2; } MOVBL0(long m, long n) /* MOV.B @(R0,Rm),Rn */ { R[n]=(long)Read_Byte(R[m]+R[0]); if ((R[n]&0x80)==0) R[n]&=0x000000FF; else R[n]|=0xFFFFFF00; PC+=2; } MOVWL0(long m, long n) /* MOV.W @(R0,Rm),Rn */ { R[n]=(long)Read_Word(R[m]+R[0]); if ((R[n]&0x8000)==0) R[n]&=0x0000FFFF; else R[n]|=0xFFFF0000; PC+=2; } MOVLL0(long m, long n) /* MOV.L @(R0,Rm),Rn */ { R[n]=Read_Long(R[m]+R[0]); PC+=2; } 使用例 MOV R0,R1 ;実行前 R0=H'FFFFFFFF,R1=H'00000000 ;実行後 R1=H'FFFFFFFF MOV.W R0,@R1 ;実行前 R0=H'FFFF7F80 ;実行後 @R1=H'7F80 MOV.B @R0,R1 ;実行前 @R0=H'80,R1=H'00000000 ;実行後 R1=H'FFFFFF80 MOV.W R0,@-R1 ;実行前 R0=H'AAAAAAAA,R1=H'FFFF7F80 ;実行後 R1=H'FFFF7F7E,@R1=H'AAAA MOV.L @R0+,R1 ;実行前 R0=H'12345670 ;実行後 R0=H'12345674,R1=@H'12345670 MOV.B R1,@(R0,R2) ;実行前 R2=H'00000004,R0=H'10000000 ;実行後 R1=@H'10000004 MOV.W @(R0,R2),R1 ;実行前 R2=H'00000004,R0=H'10000000 ;実行後 R1=@H'10000004
【0114】 MOV MOVe structure data データ転送命令 書式 MOV.B R0,@(disp,Rn) MOV.W R0,@(disp,Rn) MOV.L Rm,@(disp,Rn) MOV.B @(disp,Rm),R0 MOV.W @(disp,Rm),R0 MOV.L @(disp,Rm),Rn 説明 ソースオペランドをデスティネーションへ転送する。構造体、スタッ ク内のデータアクセスに最適である。データサイズをバイト/ワード /ロングワードの範囲で指定できるが、バイト/ワードのときはレジ スタがR0固定になる。データがバイトサイズのとき4ビットディス プレースメントはゼロ拡張するだけであるので、+15バイトまでの 範囲が指定できる。ワードサイズのとき4ビットディスプレースメン トはゼロ拡張後2倍するので、+30バイまでの範囲が指定できる。 ロングワードサイズのとき4ビットディスプレースメントはゼロ拡張 後4倍するので、+60バイトまでの範囲が指定できる。メモリオペ ランドに届かないときは前述の@(R0,Rn)モードを使う必要が 有る。ソースオペランドがメモリのときは、ロードされたデータをロ ングワードに符号拡張後レジスタへ格納する。 注意 バイト/ワードデータをロードするときデスティネーション・レジス タがR0固定である。従って、直後の命令でR0を参照しようとして もロード命令の実行完了まで待たされる。これは命令の順序変えによ る最適化が可能である。 MOV.B @(2,R1),R0 MOV.B @(2,R1),R0 AND #80,R0 ADD #20,R1 ADD #20,R1 AND #80,R0 動作 MOVBS4(long d, long n) /* MOV.B R0,@(disp,Rn) */ { long disp; disp=(0x0000000F & (long)d); Write_Byte(R[n]+disp,R[0]); PC+=2; } MOVWS4(long d, long n) /* MOV.W R0,@(disp,Rn) */ { long disp; disp=(0x0000000F & (long)d); Write_Word(R[n]+(disp<<1),R[0]); PC+=2; } MOVLS4(long m, long d, long n) /* MOV.L Rm,@(disp,Rn) */ { long disp; disp=(0x0000000F & (long)d); Write_Long(R[n]+(disp<<2),R[m]); PC+=2; } MOVBL4(long m, long d) /* MOV.B @(disp,Rm),R0 */ { long disp; disp=(0x0000000F & (long)d); R[0]=Read_Byte(R[m]+disp); if ((R[0]&0x80)==0) R[0]&=0x000000FF; else R[0]|=0xFFFFFF00; PC+=2; } MOVWL4(long m, long d) /* MOV.W @(disp,Rm),R0 */ { long disp; disp=(0x0000000F & (long)d); R[0]=Read_Word(R[m]+(disp<<1)); if ((R[0]&0x8000)==0) R[0]&=0x0000FFFF; else R[0]|=0xFFFF0000; PC+=2; } MOVLL4(long m, long d, long n) /* MOV.L @(disp,Rm),Rn */ { long disp; disp=(0x0000000F & (long)d); R[n]=Read_Long(R[m]+(disp<<2)); PC+=2; } 使用例 MOV.L @(2,R0),R1 ;実行前 @(R0+8)=H'12345670 ;実行後 R1=@H'12345670 MOV.L R0,@(H'F,R1) ;実行前 R0=H'FFFF7F80 ;実行後 @(R1+60)=H'FFFF7F80
【0115】 MOV MOVe i/o data データ転送命令 書式 MOV @(disp,GBR),R0 MOV R0,@(disp,GBR) 説明 ソースオペランドをデスティネーションへ転送する。I/O領域内の データアクセスに最適である。データサイズをバイト/ワード/ロン グワードの範囲で指定できるが、レジスタがR0固定になる。GBR には、I/Oのベースアドレスを設定する。I/Oのデータがバイト サイズのとき8ビットディスプレースメントはゼロ拡張するだけであ るので、+255バイトまでの範囲が指定できる。ワードサイズのと き8ビットディスプレースメントはゼロ拡張後2倍しるので、+51 0バイトまでの範囲が指定できる。ロングワードサイズのとき8ビッ トディスプレースメントはゼロ拡張後4倍するので、+1020バイ トまでの範囲が指定できる。メモリオペランドに届かないときはGB Rを汎用レジスタに転送した後、前述の@(R0,Rn)モードを使 う必要が有る。ソースオペランドがメモリのときは、ロードされたデ ータをロングワードに符号拡張後レジスタへ格納する。 注意 ロードするときデスティネーション・レジスタがR0固定である。従 って、直後の命令でR0を参照しようとしてもロード命令の実行完了 まで待たされる。これは命令の順序変えによる最適化が可能である。 MOV.B @(12,GBR),R0 MOV.B @(12,GBR),R0 AND #80,R0 ADD #20,R1 ADD #20,R1 AND #80,R0 動作 MOVBLG(long d) /* MOV.B @(disp,GBR),R0 */ { long disp; disp=(0x000000FF & (long)d); R[0]=(long)Read_Byte(GBR+disp); if ((R[0]&0x80)==0) R[0]&=0x000000FF; else R[0]|=0xFFFFFF00; PC+=2; } MOVWLG(long d) /* MOV.W @(disp,GBR),R0 */ { long disp; disp=(0x000000FF & (long)d); R[0]=(long)Read_Word(GBR+(disp<<1)); if ((R[0]&0x8000)==0) R[0]&=0x0000FFFF; else R[0]|=0xFFFF0000; PC+=2; } MOVLLG(long d) /* MOV.L @(disp,GBR),R0 */ { long disp; disp=(0x000000FF & (long)d); R[0]=Read_Long(GBR+(disp<<2)); PC+=2; } MOVBSG(long d) /* MOV.B R0,@(disp,GBR) */ { long disp; disp=(0x000000FF & (long)d); Write_Byte(GBR+disp,R[0]); PC+=2; } MOVWSG(long d) /* MOV.W R0,@(disp,GBR) */ { long disp; disp=(0x000000FF & (long)d); Write_Word(GBR+(disp<<1),R[0]); PC+=2; } MOVLSG(long d) /* MOV.L R0,@(disp,GBR) */ { long disp; disp=(0x000000FF & (long)d); Write_Long(GBR+(disp<<2),R[0]); PC+=2; } 使用例 MOV.L @(2,GBR),R0 ;実行前 @(GBR+8)=H'12345670 ;実行後 R0=@H'12345670 MOV.B R0,@(1,GBR) ;実行前 R0=H'FFFF7F80 ;実行後 @(GBR+1)=H'FFFF7F80
【0116】 MOVA MOVe effective Address データ転送命令 書式 MOVA @(disp,PC),R0 説明 汎用レジスタR0にソース・オペランドの実効アドレスを格納する。 8ビットディスプレースメントはゼロ拡張後4倍するので、オペラン ドとの相対距離はPC+1020バイトまでの範囲になる。PCは本 命令の2命令後の先頭アドレスであるが、下位2ビットをB'00に 補正した値をアドレス計算に使用する。 注意 本命令が遅延分岐命令の直後に配置されているとき、PCは分岐先の “先頭アドレス+2”になる。 動作 MOVA(long d) /* MOVA @(disp,PC),R0 */ { long disp; disp=(0x000000FF & (long)d); R[0]=(PC&0xFFFFFFFC)+(disp<<2); PC+=2; } 使用例 アト゛レス .org H'1006 1006 MOVA STR,R0 ;STRのアドレス→R0 1008 MOV.B @R0,R1 ;R1="X" ←PC下位2ヒ゛ット補正後の 位置。 100A ADD R4,R5 ;←MOVA命令のアト゛レス計算時、PCの本来の 位置。 .align 4 100C STR:.sdata "XYZP12" ・・・・・・・・・・・ 2002 BRA TRGET ;遅延分岐命令 2004 MOVA @(0,PC),R0 ;TRGETのアドレス+2→R0 2006 NOP ;
【0117】 MOVT MOVe Tbit データ転送命令 書式 MOVT Rn 説明 Tビットを汎用レジスタRnに格納する。T=1のときRn=1、T =0のときRn=0になる。 動作 MOVT(long n) /* MOVT Rn */ { R[n]=(0x00000001 & SR); PC+=2; } 使用例 XOR R2,R2 ;R2=0 CMP/PZ R2 ;T=1 MOVT R0 ;R0=1 CLRT ;T=0 MOVT R1 ;R1=0
【0118】 MULS MULtiply as Signed 算術演算命令 書式 MULS Rm,Rn 説明 汎用レジスタRnの内容とRmを16ビットで乗算し、結果の32ビ ットを MACLレジスタ に格納する。演算は符号付き算術 演算で行ないる。RnとMACHの内容は変化しない。 動作 MULS(long m, long n) /* MULS Rm,Rn */ { MACL=((long)(short)R[n]*(long)(short)R[m]); PC+=2; } 使用例 MULS R0,R1 ;実行前 R0=H'FFFFFFFE,R1=H'00005555 ;実行後 MACL=H'FFFF5556 STS MACL,R0 ;演算結果を得る
【0119】 MULU MULtiply as Unsigned 算術演算命令 書式 MULU Rm,Rn 説明 汎用レジスタRnの内容とRmを16ビットで乗算し、結果の32ビ ットを MACLレジスタ に格納する。演算は符号なし算術 演算で行ないる。RnとMACHの内容は変化しない。 動作 MULU(long m, long n) /* MULU Rm,Rn */ { MACL=((unsigned long)(unsigned short)R[n]* (unsigned long)(unsigned short)R[m]); PC+=2; } 使用例 MULU R0,R1 ;実行前 R0=H'00000002,R1=H'FFFFAAAA ;実行後 MACL=H'00015554 STS MACL,R0 ;演算結果を得る
【0120】 NEG NEGate 算術演算命令 書式 NEG Rm,Rn 説明 汎用レジスタRmの内容の2の補数をとり、結果をRnに格納する。 即ち0からRmを減算し、 結果をRnに格納する。 動作 NEG(long m, long n) /* NEG Rm,Rn */ { R[n]=0-R[m]; PC+=2; } 使用例 NEG R0,R1 ;実行前 R0=H'00000001 ;実行後 R1=H'FFFFFFFF
【0121】 NEGC NEGate with Carry 算術演算命令 書式 NEGC Rm,Rn 説明 0から汎用レジスタRmの内容とTビットを減算し、結果をRnに格 納する。演算の結果によ ってボローをTビットに反映する。 32ビットを超える値の符号反転を行なうとき使用する。 動作 NEGC(long m, long n) /* NEGC Rm,Rn */ { unsigned long temp; temp=0-R[m]; R[n]=temp-T; if (0<temp) T=1; else T=0; if (temp<R[n]) T=1; PC+=2; } 使用例 CLRT ;R0:R1(64ヒ゛ット)の符号反転 NEGC R1,R1 ;実行前 R1=H'00000001,T=0 ;実行後 R1=H'FFFFFFFF,T=1 NEGC R0,R0 ;実行前 R0=H'00000000,T=1 ;実行後 R0=H'FFFFFFFF,T=1
【0122】 NOP No OPeration システム制御命令 書式 NOP 説明 PCのインクリメントのみを行ない、次の命令に実行を移する。 動作 NOP( ) /* NOP */ { PC+=2; } 使用例 NOP ;1サイクルの時間が過ぎる。
【0123】 NOT NOT-logical complement 論理演算命令 書式 NOT Rm,Rn 説明 汎用レジスタRmの内容の1の補数をとり、結果をRnに格納する。 即ちRmのビットを反転してRnに格納する。 動作 NOT(long m, long n) /* NOT Rm,Rn */ { R[n]=■R[m]; PC+=2; } 使用例 NOT R0,R1 ;実行前 R0=H'AAAAAAAA ;実行後 R1=H'55555555
【0124】 OR OR logical 論理演算命令 書式 OR Rm,Rn OR #imm,R0 OR.B #imm,@(R0,GBR) 説明 汎用レジスタRnの内容とRmの論理和をとり、結果をRnに格納す る。特殊形として汎用レジスタR0とゼロ拡張した8ビット・イミデ ィエイト・データとの論理和、もしくはGBR相対で8ビット・メモ リと8ビット・イミディエイト・データとの論理和が可能である。 動作 OR(long m, long n) /* OR Rm,Rn */ { R[n]|=R[m]; PC+=2; } ORI(long i) /* OR #imm,R0 */ { R[0]|=(0x000000FF & (long)i); PC+=2; } ORM(long i) /* OR.B #imm,@(R0,GBR) */ { long temp; temp=(long)Read_Byte(GBR+R[0]); temp|=(0x000000FF & (long)i); Write_Byte(GBR+R[0],temp); PC+=2; } 使用例 OR R0,R1 ;実行前 R0=H'AAAA5555,R1=H'55550000 ;実行後 R1=H'FFFF5555 OR #H'F0,R0 ;実行前 R0=H'00000008 ;実行後 R0=H'000000F8 OR.B #H'50,@(R0,GBR) ;実行前 @(R0,GBR)=H'A5 ;実行後 @(R0,GBR)=H'F5
【0125】 ROTL/ROTR ROTate Left/Right シフト命令 書式 ROTL Rn ROTR Rn 説明 汎用レジスタRnの内容を左/右方向に1ビット・ローテート(回転 )し、結果をRnに格納しる。ローテートしてオペランドの外に出て しまったビットは、Tビットへ転送する。 動作 ROTL(long n) /* ROTL Rn */ { if ((R[n]&0x80000000)==0) T=0; else T=1; R[n]<<=1; if (T==1) R[n]|=0x00000001; else R[n]&=0xFFFFFFFE; PC+=2; } ROTR(long n) /* ROTR Rn */ { if ((R[n]&0x00000001)==0) T=0; else T=1; R[n]>>=1; if (T==1) R[n]|=0x80000000; else R[n]&=0x7FFFFFFF; PC+=2; } 使用例 ROTL R0 ;実行前 R0=H'80000000,T=0 ;実行後 R0=H'00000001,T=1 ROTR R0 ;実行前 R0=H'00000001,T=0 ;実行後 R0=H'80000000,T=1
【0126】 ROTCL/ROTCR ROTate with Carry Left/Right シフト命令 書式 ROTCL Rn ROTCR Rn 説明 汎用レジスタRnの内容を左/右方向にTビットを含めて1ビット・ ローテート(回転)し、結果をRnに格納する。ローテートしてオペ ランドの外に出てしまったビットは、Tビットへ転送する。 動作 ROTCL(long n) /* ROTCL Rn */ { long temp; if ((R[n]&0x80000000)==0) temp=0; else temp=1; R[n]<<=1; if (T==1) R[n]|=0x00000001; else R[n]&=0xFFFFFFFE; if (temp==1) T=1; else T=0; PC+=2; } ROTCR(long n) /* ROTCR Rn */ { long temp; if ((R[n]&0x00000001)==0) temp=0; else temp=1; R[n]>>=1; if (T==1) R[n]|=0x80000000; else R[n]&=0x7FFFFFFF; if (temp==1) T=1; else T=0; PC+=2; } 使用例 ROTCL R0 ;実行前 R0=H'80000000,T=0 ;実行後 R0=H'00000000,T=1 ROTCR R0 ;実行前 R0=H'00000001,T=1 ;実行後 R0=H'80000000,T=1
【0127】 RTE ReTurn from Exception システム制御命令 書式 RTE 説明 割り込みルーチンから復帰する。すなわち、PCとSRをスタックか ら復帰し、復帰したPCの示すアドレスから処理を続行する。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 RTE( ) /* RTE */ { unsigned long temp; temp=PC; PC=Read_Long(R[15])+4; R[15]+=4; SR=Read_Long(R[15])&0x000003F3; R[15]+=4; Delay_Slot(temp+2); } 使用例 RTE ;基のルーチンへ復帰する ADD #8,R15 ;分岐に先立ち実行する。
【0128】 RTS ReTurn from SubRoutine 分岐命令 書式 RTS 説明 プロシージャから復帰する。すなわち、PCをPRから復帰し、復帰 したPCの示すアドレスから処理を続行する。本命令によって、BS RおよびJSR命令でコールされたプロシージャからコール元へ戻る ことが出来る。 注意 遅延分岐命令であるので、本命令の直後の命令を分岐に先立ち実行す る。本命令と直後の命令との間には、アドレスエラーと割り込みを受 け付けない。直後の命令が分岐命令のときは、それをスロット不当命 令として認識する。 動作 RTS( ) /* RTS */ { unsigned long temp; temp=PC; PC=PR+4; Delay_Slot(temp+2); } 使用例 MOV.L TABLE,R3 ;R3=TRGETのアドレス JSR @R3 ;TRGETへ分岐する NOP ;JSRに先立ち実行する。 ADD R0,R1 ;←プロシージャからの戻り先(PRの 内容) ・・・・・・・・ TABLE: .data.l TRGET ;ジャンプテーブル ・・・・・・・・ TRGET: MOV R1,R0 ;←プロシージャの入り口 RTS ;PRの内容−>PC MOV #12,R0 ;分岐に先立ち実行する。
【0129】 SETT SET Tbit システム制御命令 書式 SETT 説明 Tビットをセットする。 動作 SETT( ) /* SETT */ { T=1; PC+=2; } 使用例 SETT ;実行前 T=0 ;実行後 T=1
【0130】 SHAL/SHAR SHift Arithmetic Left/Right シフト命令 書式 SHAL Rn SHAR Rn 説明 汎用レジスタRnの内容を左/右方向に算術的に1ビット・シフトし 、結果をRnに格納する。シフトしてオペランドの外に出てしまった ビットは、Tビットへ転送する。 動作 SHAL(long n) /* SHAL Rn (Same as SHLL) */ { if ((R[n]&0x80000000)==0) T=0; else T=1; R[n]<<=1; PC+=2; } SHAR(long n) /* SHAR Rn */ { long temp; if ((R[n]&0x00000001)==0) T=0; else T=1; if ((R[n]&0x80000000)==0) temp=0; else temp=1; R[n]>>=1; if (temp==1) R[n]|=0x80000000; else R[n]&=0x7FFFFFFF; PC+=2; } 使用例 SHAL R0 ;実行前 R0=H'80000001,T=0 ;実行後 R0=H'00000002,T=1 SHAR R0 ;実行前 R0=H'80000001,T=0 ;実行後 R0=H'C0000000,T=1
【0131】 SHLL/SHLR SHift Logical Left/Right シフト命令 書式 SHLL Rn SHLR Rn 説明 汎用レジスタRnの内容を左/右方向に論理的に1ビット・シフトし 、結果をRnに格納する。シフトしてオペランドの外に出てしまった ビットは、Tビットへ転送する。 動作 SHLL(long n) /* SHLL Rn (Same as SHAL) */ { if ((R[n]&0x80000000)==0) T=0; else T=1; R[n]<<=1; PC+=2; } SHLR(long n) /* SHLR Rn */ { if ((R[n]&0x00000001)==0) T=0; else T=1; R[n]>>=1; R[n]&=0x7FFFFFFF; PC+=2; } 使用例 SHLL R0 ;実行前 R0=H'80000001,T=0 ;実行後 R0=H'00000002,T=1 SHLR R0 ;実行前 R0=H'80000001,T=0 ;実行後 R0=H'40000000,T=1
【0132】 SHLLn/SHLRn n bits SHift Logical Left/Right シフト命令 書式 SHLL2 Rn SHLR2 Rn SHLL8 Rn SHLR8 Rn SHLL16 Rn SHLR16 Rn 説明 汎用レジスタRnの内容を左/右方向に論理的に2/8/16ビット ・シフトし、結果をRnに格納する。シフトしてオペランドの外に出 てしまったビットは捨てる。 動作 SHLL2(long n) /* SHLL2 Rn */ { R[n]<<=2; PC+=2; } SHLR2(long n) /* SHLR2 Rn */ { R[n]>>=2; R[n]&=0x3FFFFFFF; PC+=2; } SHLL8(long n) /* SHLL8 Rn */ { R[n]<<=8; PC+=2; } SHLR8(long n) /* SHLR8 Rn */ { R[n]>>=8; R[n]&=0x00FFFFFF; PC+=2; } SHLL16(long n) /* SHLL16 Rn */ { R[n]<<=16; PC+=2; } SHLR16(long n) /* SHLR16 Rn */ { R[n]>>=16; R[n]&=0x0000FFFF; PC+=2; } 使用例 SHLL2 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'48D159E0 SHLR2 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'048D159E SHLL8 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'34567800 SHLR8 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'00123456 SHLL16 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'56780000 SHLR16 R0 ;実行前 R0=H'12345678 ;実行後 R0=H'00001234
【0133】 SLEEP SLEEP システム制御命令 書式 SLEEP 説明 CPUを低消費電力モードにする。低消費電力モードでは、CPUの 内部状態を保持し、直後の命令の実行を停止し、割り込み要求の発生 を待つ。要求が発生すると、低消費電力モードから抜けて例外処理を 開始する。すなわち、SRとPCをスタックに退避し、所定のベクタ に従い割り込みルーチンへ分岐する。PCは本命令の直後の命令の先 頭アドレスである。 動作 SLEEP( ) /* SLEEP */ { PC-=2; Error("Sleep Mode."); } 使用例 SLEEP ;低消費電力モードへの遷移
【0134】 STC STore Control register システム制御命令 書式 STC Cm,Rn STC.L Cm,@−Rn 説明 コントロール・レジスタCm(SR、GBR、VBR)をデスティネ ーションに格納する。 注意 本命令と直後の命令との間には、割り込みを受け付けない。(アドレ スエラーは受け付ける。) 動作 STC(long m, long n) /* STC Cm,Rn */ { switch (m) { case 0: R[n]=SR; PC+=2; break; case 1: R[n]=GBR; PC+=2; break; case 2: R[n]=VBR; PC+=2; break; default:Error("Illegal CR number."); break; } } STCM(long m, long n) /* STC.L Cm,@-Rn */ { switch (m) { case 0: R[n]-=4; Write_Long(R[n],SR); PC+=2; break; case 1: R[n]-=4; Write_Long(R[n],GBR); PC+=2; break; case 2: R[n]-=4; Write_Long(R[n],VBR); PC+=2; break; default:Error("Illegal CR number."); break; } } 使用例 STC SR,R0 ;実行前 R0=H'FFFFFFFF,SR=H'00000000 ;実行後 R0=H'00000000 STC.L GBR,@-R15 ;実行前 R15=H'10000004 ;実行後 R15=H'10000000,@R15=GBR
【0135】 STS STore System register システム制御命令 書式 STS Sm,Rn STS.L Sm,@−Rn 説明 システム・レジスタSm(MACH、MACL、PR)をデスティネ ーションに格納する。 注意 本命令と直後の命令との間には、割り込みを受け付けない。(アドレ スエラーは受け付ける。) 動作 STS(long m, long n) /* STS Sm,Rn */ { switch (m) { case 0: R[n]=MACH; if ((R[n]&0x00000200)==0) R[n]&=0x000003FF; else R[n]|=0xFFFFFC00; PC+=2; break; case 1: R[n]=MACL; PC+=2; break; case 2: R[n]=PR; PC+=2; break; default:Error("Illegal SR number."); break; } } STSM(long m, long n) /* STS.L Sm,@-Rn */ { switch (m) { case 0: R[n]-=4; if ((MACH&0x00000200)==0) Write_Long(R[n],MACH &0x000003FF); else Write_Long(R[n],MACH|0xFFFFFC00); PC+=2; break; case 1: R[n]-=4; Write_Long(R[n],MACL); PC+=2; break; case 2: R[n]-=4; Write_Long(R[n],PR); PC+=2; break; default:Error("Illegal SR number."); break; } } 使用例 STS MACH,R0 ;実行前 R0=H'FFFFFFFF,MACH=H'00000000 ;実行後 R0=H'00000000 STS.L PR,@-R15 ;実行前 R15=H'10000004 ;実行後 R15=H'10000000,@R15=PR
【0136】 SUB SUBtract binary 算術演算命令 書式 SUB Rm,Rn 説明 汎用レジスタRnの内容からRmを減算し、結果をRnに格納する。 イミディエイト・データとの減算はADD #imm,Rnで代用可 能である。 動作 SUB(long m, long n) /* SUB Rm,Rn */ { R[n]-=R[m]; PC+=2; } 使用例 SUB R0,R1 ;実行前 R0=H'00000001,R1=H'80000000 ;実行後 R1=H'7FFFFFFF
【0137】 SUBC SUBtract with Carry 算術演算命令 書式 SUBC Rm,Rn 説明 汎用レジスタRnの内容からRmとTビットを減算し、結果をRnに 格納する。演算の結果に よってボローをTビットに反映する 。32ビットを超える減算を行なうとき使用する。 動作 SUBC(long m, long n) /* SUBC Rm,Rn */ { unsigned long tmp0,tmp1; tmp1=R[n]-R[m]; tmp0=R[n]; R[n]=tmp1-T; if (tmp0<tmp1) T=1; else T=0; if (tmp1<R[n]) T=1; PC+=2; } 使用例 CLRT ; R0:R1(64ヒ゛ット)-R2:R3(64ヒ゛ット)=R0:R1(64ヒ゛ット) SUBC R3,R1 ;実行前 T=0,R1=H'00000000,R3=H'00000001 ;実行後 T=1,R1=H'FFFFFFFF SUBC R2,R0 ;実行前 T=1,R0=H'00000000,R2=H'00000000 ;実行後 T=1,R0=H'FFFFFFFF
【0138】 SUBV SUBtract with (Vflag)underflow check 算術演算命令 書式 SUBV Rm,Rn 説明 汎用レジスタRnの内容からRmを減算し、結果をRnに格納する。 アンダーフローが発生すると、Tビットをセットする。 動作 SUBV(long m, long n) /* SUBV Rm,Rn */ { long dest,src,ans; if ((long)R[n]>=0) dest=0; else dest=1; if ((long)R[m]>=0) src=0; else src=1; src+=dest; R[n]-=R[m]; if ((long)R[n]>=0) ans=0; else ans=1; ans+=dest; if (src==1) { if (ans==1) T=1; else T=0; } else T=0; PC+=2; } 使用例 SUBV R0,R1 ;実行前 R0=H'00000002,R1=H'80000001 ;実行後 R1=H'7FFFFFFF,T=1 SUBV R2,R3 ;実行前 R2=H'FFFFFFFE,R3=H'7FFFFFFE ;実行後 R3=H'80000000,T=1
【0139】 SWAP SWAP register halves データ転送命令 書式 SWAP.B Rm,Rn SWAP.W Rm,Rn 説明 汎用レジスタRmの内容の上位と下位を交換して、結果をRnに格納 する。バイト指定のとき、Rmのビット0からビット7の8ビットと 、ビット8からビット15の8ビットを交換する。Rnの上位16ビ ットにはRmの上位16ビットをそのまま転送する。ワード指定のと き、Rmのビット0からビット15の16ビットと、ビット16から ビット31の16ビットを交換する。 動作 SWAPB(long m, long n) /* SWAP.B Rm,Rn */ { unsigned long temp0,temp1; temp0=R[m]&0xffff0000; temp1=(R[m]&0x000000ff)<<8; R[n]=(R[m]&0x0000ff00)>>8; R[n]=R[n]|temp1|temp0; PC+=2; } SWAPW(long m, long n) /* SWAP.W Rm,Rn */ { unsigned long temp; temp=(R[m]>>16)&0x0000FFFF; R[n]=R[m]<<16; R[n]|=temp; PC+=2; } 使用例 SWAP.B R0,R1 ;実行前 R0=H'12345678 ;実行後 R1=H'12347856 SWAP.W R0,R1 ;実行前 R0=H'12345678 ;実行後 R1=H'56781234
【0140】 TAS Test And Set 論理演算命令 書式 TAS.B @Rn 説明 汎用レジスタRnの内容をアドレスとし、そのアドレスの示すバイト ・データを読み込み、そのデータがゼロのときT=1、否ゼロのとき T=0とする。その後、ビット7を1にセットして同じアドレスへ書 き込みる。この間、バス権は解放しない。 動作 TAS(long n) /* TAS.B @Rn */ { long temp; temp=(long)Read_Byte(R[n]); /* Bus Lock enable */ if (temp==0) T=1; else T=0; temp|=0x00000080; Write_Byte(R[n],temp); /* Bus Lock disable */ PC+=2; } 使用例 _LOOP TAS.B @R7 ;R7=1000 BF _LOOP ;1000番地がゼロになるまでループする。
【0141】 TST TeST logical 論理演算命令 書式 TST Rm,Rn TST #imm,R0 TST.B #imm,@(R0,GBR) 説明 汎用レジスタRnの内容とRmの論理積をとり、結果がゼロのときT ビットをセットする。結 果が否ゼロのときTビットをクリア する。Rnの内容は変更しない。特殊形として汎用レジスタR0とゼ ロ拡張した8ビット・イミディエイト・データとの論理積、もしくは GBR相対で8ビット・メモリと8ビット・イミディエイト・データ との論理積が可能である。R0、もしくはメモリの内容は変更しない。 動作 TST(long m, long n) /* TST Rm,Rn */ { if ((R[n]&R[m])==0) T=1; else T=0; PC+=2; } TSTI(long i) /* TST #imm,R0 */ { long temp; temp=R[0]&(0x000000FF & (long)i); if (temp==0) T=1; else T=0; PC+=2; } TSTM(long i) /* TST.B #imm,@(R0,GBR) */ { long temp; temp=(long)Read_Byte(GBR+R[0]); temp&=(0x000000FF & (long)i); if (temp==0) T=1; else T=0; PC+=2; } 使用例 TST R0,R0 ;実行前 R0=H'00000000 ;実行後 T=1 TST #H'80,R0 ;実行前 R0=H'FFFFFF7F ;実行後 T=1 TST.B #H'A5,@(R0,GBR) ;実行前 @(R0,GBR)=H'A5 ;実行後 T=0
【0142】 TRAPA TRAP Always システム制御命令 書式 TRAPA #imm 説明 トラップ例外処理を開始する。すなわちPCとSRをスタックに退避 し、指定ベクタの内容で表わされるアドレスへ分岐する。ベクタは8 ビットイミディエイトデータをゼロ拡張後4倍したメモリアドレスそ のものである。PCは次命令の先頭アドレスである。RTEと組み合 わせて、システム・コールに使用する。 動作 TRAPA(long i) /* TRAPA #imm */ { long imm; imm=(0x000000FF & i); R[15]-=4; Write_Long(R[15],SR); R[15]-=4; Write_Long(R[15],PC-2); PC=Read_Long(VBR+(imm<<2))+4; } 使用例 アト゛レス VBR+H'80 .data.l 10000000 ; ・・・・・・・ TRAPA #H'20 ;VBR+H'80番地の内容のアドレスに分岐す る TST #0,R0 ;←トラップルーチンからの戻り先 ・・・・・・・ (スタックしたPCの内容)である。 ・・・・・・・ 10000000 XOR R0,R0 ;←トラップルーチンの入り口 10000002 RTE ;上記TST命令に戻る。 10000004 NOP ;RTEに先立ち実行する
【0143】 XOR eXclusive OR logical 論理演算命令 書式 XOR Rm,Rn XOR #imm,R0 XOR.B #imm,@(R0,GBR) 説明 汎用レジスタRnの内容とRmの排他的論理和をとり、結果をRnに 格納する。特殊形として汎用レジスタR0とゼロ拡張した8ビット・ イミディエイト・データとの排他的論理和、もしくはGBR相対で8 ビット・メモリと8ビット・イミディエイト・データとの排他的論理 和が可能である。 動作 XOR(long m, long n) /* XOR Rm,Rn */ { R[n]^=R[m]; PC+=2; } XORI(long i) /* XOR #imm,R0 */ { R[0]^=(0x000000FF & (long)i); PC+=2; } XORM(long i) /* XOR.B #imm,@(R0,GBR) */ { long temp; temp=(long)Read_Byte(GBR+R[0]); temp^=(0x000000FF & (long)i); Write_Byte(GBR+R[0],temp); PC+=2; } 使用例 XOR R0,R1 ;実行前 R0=H'AAAAAAAA,R1=H'55555555 ;実行後 R1=H'FFFFFFFF XOR #H'F0,R0 ;実行前 R0=H'FFFFFFFF ;実行後 R0=H'FFFFFF0F XOR.B #H'A5,@(R0,GBR) ;実行前 @(R0,GBR)=H'A5 ;実行後 @(R0,GBR)=H'00
【0144】 XTRCT eXTRaCT データ転送命令 書式 XTRCT Rm,Rn 説明 汎用レジスタRmとRnとを連結した64ビットの内容から中央の3 2ビットを切り出し、結果 をRnに格納する。 動作 XTRCT(long m, long n) /* XTRCT Rm,Rn */ { unsigned long temp; temp=(R[m]<<16)&0xFFFF0000; R[n]=(R[n]>>16)&0x0000FFFF; R[n]|=temp; PC+=2; } 使用例 XTRCT R0,R1 ;実行前 R0=H'01234567,R1=H'89ABCDEF ;実行後 R1=H'456789AB
【0145】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えばC
AS*のデューティーは35%に代えて40%以下であ
ってもよい。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えばC
AS*のデューティーは35%に代えて40%以下であ
ってもよい。
【0146】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0147】(1)ダイナミックRAMのためのインタ
フェースと、スタティックRAMなどのメモリ並びにそ
の他の周辺回路のためのインタフェースをマイクロコン
ピュータに採用することにより、所要のシステム構築に
柔軟に対応できる。 (2)CBRリフレッシュモードに代えて選択的にセル
フ・リフレッシュモードを指定できることにより、バッ
テリーバックアップモードのようなシステムの低消費電
力のための動作モードに最適なダイナミックRAMリフ
レッシュ動作をサポートできる。 (3)カラム・アドレス・ストローブ信号のデューティ
ー比を35%のような40%以下の値にすることによ
り、アクセス時間45nsの高速ページモードをサポー
トするようなダイナミックRAMを、例えば動作周波数
16MHzの1クロックサイクル単位でアクセスでき
る。 (4)ダイナミックRAMのパリティーチェックができ
る機能を内蔵することにより、ハード・ディスク・ドラ
イブなどに高信頼度が要求されるようなシステムへの対
応を容易化することができる。 (5)リニアアドレス空間を個々にチップセレクト信号
を割当て複数のエリアに分割し、所定のエリアに対応さ
れるチップセレクト信号を、前記ダイナミックRAMの
ためのストローブ信号とマルチプレクスして出力するこ
と、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能なアドレス信号出力
端子を採用すること、並びに、選択的にアドレス信号を
出力可能なデータの入出力端子を採用することにより、
外部端子数の増大を極力抑えてマイクロコンピュータの
上記高機能化を実現できる。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにすることは、一つのエ
リア中に任意数の8ビット/16ビットのメモリを混在
させて利用可能になる。
フェースと、スタティックRAMなどのメモリ並びにそ
の他の周辺回路のためのインタフェースをマイクロコン
ピュータに採用することにより、所要のシステム構築に
柔軟に対応できる。 (2)CBRリフレッシュモードに代えて選択的にセル
フ・リフレッシュモードを指定できることにより、バッ
テリーバックアップモードのようなシステムの低消費電
力のための動作モードに最適なダイナミックRAMリフ
レッシュ動作をサポートできる。 (3)カラム・アドレス・ストローブ信号のデューティ
ー比を35%のような40%以下の値にすることによ
り、アクセス時間45nsの高速ページモードをサポー
トするようなダイナミックRAMを、例えば動作周波数
16MHzの1クロックサイクル単位でアクセスでき
る。 (4)ダイナミックRAMのパリティーチェックができ
る機能を内蔵することにより、ハード・ディスク・ドラ
イブなどに高信頼度が要求されるようなシステムへの対
応を容易化することができる。 (5)リニアアドレス空間を個々にチップセレクト信号
を割当て複数のエリアに分割し、所定のエリアに対応さ
れるチップセレクト信号を、前記ダイナミックRAMの
ためのストローブ信号とマルチプレクスして出力するこ
と、ノン・マルチプレクス或は必要に応じてマルチプレ
クスされたアドレス信号を出力可能なアドレス信号出力
端子を採用すること、並びに、選択的にアドレス信号を
出力可能なデータの入出力端子を採用することにより、
外部端子数の増大を極力抑えてマイクロコンピュータの
上記高機能化を実現できる。 (7)前記エリア内におけるアクセス単位ビット数(例
えば8ビット単位のアクセスか16ビット単位のアクセ
スか)を、アクセス対象アドレス信号に含まれる所定ビ
ットで選択的に切り替えるようにすることは、一つのエ
リア中に任意数の8ビット/16ビットのメモリを混在
させて利用可能になる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るマイクロコンピュータ
の上半分を示すブロック図である。
の上半分を示すブロック図である。
【図2】本発明の一実施例に係るマイクロコンピュータ
の下半分を示すブロック図である。
の下半分を示すブロック図である。
【図3】本実施例マイクロコンピュータのチップをパッ
ケージした状態における上半分の端子の配列構成例を示
す説明図である。
ケージした状態における上半分の端子の配列構成例を示
す説明図である。
【図4】本実施例マイクロコンピュータのチップをパッ
ケージした状態における下半分の端子の配列構成例を示
す説明図である。
ケージした状態における下半分の端子の配列構成例を示
す説明図である。
【図5】本実施例マイクロコンピュータにおける主な内
蔵回路モジュールのレイアウト図である。
蔵回路モジュールのレイアウト図である。
【図6】本実施例マイクロコンピュータにおけるバスス
テートコントローラを中心としたブロック図である。
テートコントローラを中心としたブロック図である。
【図7】外部アクセスバスステートマシンを中心とした
バスステートコントローラの更に詳細な一例ブロック図
である。
バスステートコントローラの更に詳細な一例ブロック図
である。
【図8】エリア分割されたエリア0のアドレスマップ図
である。
である。
【図9】エリア分割されたエリア1のアドレスマップ図
である。
である。
【図10】エリア分割されたエリア2のアドレスマップ
図である。
図である。
【図11】エリア分割されたエリア4のアドレスマップ
図である。
図である。
【図12】エリア分割されたエリア5のアドレスマップ
図である。
図である。
【図13】エリア分割されたエリア6のアドレスマップ
図である。
図である。
【図14】エリア分割されたエリア7のアドレスマップ
図である。
図である。
【図15】エリア分割されたエリア0の別のアドレスマ
ップ図である。
ップ図である。
【図16】エリア分割されたエリア1の別のアドレスマ
ップ図である。
ップ図である。
【図17】エリア分割されたエリア2の別のアドレスマ
ップ図である。
ップ図である。
【図18】エリア分割されたエリア4の別のアドレスマ
ップ図である。
ップ図である。
【図19】エリア分割されたエリア5の別のアドレスマ
ップ図である。
ップ図である。
【図20】エリア分割されたエリア6の別のアドレスマ
ップ図である。
ップ図である。
【図21】エリア分割されたエリア7の別のアドレスマ
ップ図である。
ップ図である。
【図22】I/Oリクエストコマンドの割り付け例を示
す説明図である。
す説明図である。
【図23】内部アクセスバスステートマシンの状態遷移
図である。
図である。
【図24】アクセス状態コード、次アクセス状態コード
並びにそれに対応する処理を示す説明図である。
並びにそれに対応する処理を示す説明図である。
【図25】アクセス状態コード、次アクセス状態コード
並びにそれに対応する処理を示す別の説明図である。
並びにそれに対応する処理を示す別の説明図である。
【図26】アクセス状態コード、次アクセス状態コード
並びにそれに対応する処理を示す更に別の説明図であ
る。
並びにそれに対応する処理を示す更に別の説明図であ
る。
【図27】アクセス状態コード、次アクセス状態コード
並びにそれに対応する処理を示す他の説明図である。
並びにそれに対応する処理を示す他の説明図である。
【図28】DRAMステートマシンの状態遷移図であ
る。
る。
【図29】バスサイズアービトレーションステートマシ
ンの状態遷移図である。
ンの状態遷移図である。
【図30】外部ウェイト生成ステートマシンの状態遷移
図である。
図である。
【図31】通常空間アクセスステートマシンの状態遷移
図である。
図である。
【図32】通常空間サブステートフラッグの状態遷移図
である。
である。
【図33】I/OMUXアクセスステートマシンの状態
遷移図である。
遷移図である。
【図34】本実施例マイクロコンピュータを適用した一
例システム構成図である。
例システム構成図である。
【図35】ショートピッチの高速ページモードによる一
例リード動作タイミングチャートである。
例リード動作タイミングチャートである。
【図36】ショートピッチの高速ページモードによる一
例ライト動作タイミングチャートである。
例ライト動作タイミングチャートである。
【図37】ロングピッチの高速ページモードによる一例
リード動作タイミングチャートである。
リード動作タイミングチャートである。
【図38】CBRリフレッシュのためのストローブ信号
の一例タイミングチャートである。
の一例タイミングチャートである。
【図39】セルフリフレッシュのためのストローブ信号
の一例タイミングチャートである。
の一例タイミングチャートである。
【図40】スタティックカラムモードによるロングピッ
チアクセスの一例タイミングチャートである。
チアクセスの一例タイミングチャートである。
【図41】DRAMに対するノーウェイトステートでの
フルアクセスのタイミングチャートである。
フルアクセスのタイミングチャートである。
【図42】DRAMに対する1ウェイトステートでのフ
ルアクセスのタイミングチャートである。
ルアクセスのタイミングチャートである。
【図43】DRAMに対する2プリチャージサイクルで
のノーウェイトステートのフルアクセスのタイミングチ
ャートである。
のノーウェイトステートのフルアクセスのタイミングチ
ャートである。
【図44】1ステートでの基本バスサイクルを示したタ
イミングチャートである。
イミングチャートである。
【図45】2ステートでの基本バスサイクルのタイミン
グチャートである。
グチャートである。
【図46】2ステートでの基本バスサイクルにウェイト
ステートを挿入したアクセスタイミングチャートであ
る。
ステートを挿入したアクセスタイミングチャートであ
る。
【図47】3ステートでの基本バスサイクルのタイミン
グチャートである。
グチャートである。
【図48】3ステートでの基本バスサイクルにウェイト
ステートを挿入したアクセスタイミングチャートであ
る。
ステートを挿入したアクセスタイミングチャートであ
る。
【図49】デューティー補正回路の原理説明図である。
【図50】図49のデューティー補正回路の一例動作タ
イミング波形図である。
イミング波形図である。
【図51】本実施例マイクロコンピュータのクロック発
生回路に適用した50%のデューティー補正回路部分の
回路図である。
生回路に適用した50%のデューティー補正回路部分の
回路図である。
【図52】本実施例マイクロコンピュータのクロック発
生回路に適用した35%のデューティー補正回路部分の
回路図である。
生回路に適用した35%のデューティー補正回路部分の
回路図である。
【図53】35%のデューティー補正回路部分に含まれ
る遅延量制御回路の一例を示すと共に、デューティー5
0%のCKMとデューティー35%のCK35の波形を
示した説明図である。
る遅延量制御回路の一例を示すと共に、デューティー5
0%のCKMとデューティー35%のCK35の波形を
示した説明図である。
【図54】デューティー50%,35%のクロックを利
用してCAS*を生成するストローブ生成論理の一例論
理構成説明図である。
用してCAS*を生成するストローブ生成論理の一例論
理構成説明図である。
【図55】35%デューティーのCAS*、RAS*、
ノンオーバーラップ2相クロック信号φ1,φ2と、デ
ューティー50%並びに35%のクロック信号との相関
の一例を示す波形図である。
ノンオーバーラップ2相クロック信号φ1,φ2と、デ
ューティー50%並びに35%のクロック信号との相関
の一例を示す波形図である。
【図56】マイクロコンピュータに含まれる汎用レジス
タとコントロールレジスタの構成説明図である。
タとコントロールレジスタの構成説明図である。
【図57】マイクロコンピュータに含まれるシステムレ
ジスタ構成とレジスタのデータ構成並びにメモリ上のデ
ータ構成説明図である。
ジスタ構成とレジスタのデータ構成並びにメモリ上のデ
ータ構成説明図である。
【図58】マイクロコンピュータによるアドレッシング
モードと実効アドレス計算手法の第1の説明図である。
モードと実効アドレス計算手法の第1の説明図である。
【図59】マイクロコンピュータによるアドレッシング
モードと実効アドレス計算手法の第2の説明図である。
モードと実効アドレス計算手法の第2の説明図である。
【図60】マイクロコンピュータによるアドレッシング
モードと実効アドレス計算手法の第3の説明図である。
モードと実効アドレス計算手法の第3の説明図である。
【図61】命令説明形式の凡例を示す説明図である。
【図62】データ転送命令群の第1の説明図である。
【図63】データ転送命令群の第2の説明図である。
【図64】算術演算命令群の第1の説明図である。
【図65】算術演算命令群の第2の説明図である。
【図66】論理演算命令群の説明図である。
【図67】シフト命令群の説明図である。
【図68】分岐命令群の説明図である。
【図69】システム制御命令群の第1の説明図である。
【図70】システム制御命令群の第2の説明図である。
【図71】システム制御命令群の第3の説明図である。
MCU マイクロコンピュータ 1 CPU 2 ROM 3 RAM 4 DMAC 5 割込みコントローラ 6 バスステートコントローラ 10 A/Dコンバータ 18 クロック発生回路 φ35 デューティー35%クロック信号 φ デューティー50%クロック信号 20 リフレッシュカウンタ 30 ストローブ生成論理 32 ロー/カラムアドレスセレクタ 601 ローアドレスコンパレータ 602 外部アクセスバスステートマシン 603 内部アクセスバスステートマシン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 河崎 俊平 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内 (72)発明者 深田 馨 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内 (72)発明者 渡部 満 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 野口 孝樹 東京都国分寺市東恋ケ窪一丁目480番地 株式会社日立製作所中央研究所内 (72)発明者 松原 清 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内 (72)発明者 望月 勇 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 鈴川 一文 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 増村 茂樹 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 (72)発明者 赤尾 泰 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内 (72)発明者 榊原 栄二 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内
Claims (8)
- 【請求項1】 中央処理装置を含んで1チップの半導体
集積回路化されたマイクロコンピュータであって、 ダイナッミックRAMのためのストローブ信号出力端子
と、 前記ストローブ信号出力端子からの出力に並行してチッ
プセレクト信号を出力可能なチップセレクト信号出力端
子と、 ノン・マルチプレクス或は必要に応じてマルチプレクス
されたアドレス信号を出力可能なアドレス信号出力端子
と、 選択的にアドレス信号を出力可能なデータの入出力端子
と、 を備えて成るものであることを特徴とするマイクロコン
ピュータ。 - 【請求項2】 ダイナミックRAMに対するリフレッシ
ュモードとして、カス・ビフォア・ラス・リフレッシュ
モードとセルフ・リフレッシュモードとの何れを選択す
るかが指定される制御レジスタを有して成るものである
ことを特徴とする請求項1記載のマイクロコンピュー
タ。 - 【請求項3】 前記ストローブ信号出力端子から出力さ
れるストローブ信号としてのカラム・アドレス・ストロ
ーブ信号は、40%以下のデューティー比を有するもの
であることを特徴とする請求項1又は2記載のマイクロ
コンピュータ。 - 【請求項4】 前記ストローブ信号出力端子から出力さ
れるストローブ信号としてのカラム・アドレス・ストロ
ーブ信号のデューティー比を、40%以下と50%の何
にするかを指定する制御レジスタを備えて成るものであ
ることを特徴とする請求項1乃至3の何れか1項記載の
マイクロコンピュータ。 - 【請求項5】 出力すべきデータに対して内蔵パリティ
ー生成回路で生成されたパリティーデータの出力端子
と、外部から与えられるパリティーデータを内蔵パリテ
ィーチェック回路に供給するためのパリティーデータ入
力端子とを備えて成るものであることを特徴とする請求
項1乃至4の何れか1項記載のマイクロコンピュータ。 - 【請求項6】 管理可能なリニアアドレス空間はエリア
毎にチップセレクト信号を割当て可能な複数のエリアに
分割され、所定のエリアに対応されるチップセレクト信
号を、前記ダイナミックRAMのためのストローブ信号
とマルチプレクスして出力するストローブ信号出力端子
を備えて成るものであることを特徴とする請求項1乃至
5の何れか1項記載のマイクロコンピュータ。 - 【請求項7】 前記エリア内におけるアクセス単位ビッ
ト数を、アクセス対象アドレス信号に含まれる所定ビッ
トで選択的に切り替えるバスステートコントローラを備
えて成るものであることを特徴とする請求項6記載のマ
イクロコンピュータ。 - 【請求項8】 請求項1乃至7の何れか1項に記載のマ
イクロコンピュータと、 そのマイクロコンピュータの前記アドレス出力端子にア
ドレス入力端子が接続され且つ該マイクロコンピュータ
の前記データ入出力端子にデータ入出力端子が結合され
たダイナミックRAM及びスタティックRAMと、 前記データ入出力端子に共通接続された周辺回路と、を
備えて成るものであることを特徴とするマイクロコンピ
ュータシステム。
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4322598A JPH06150023A (ja) | 1992-11-06 | 1992-11-06 | マイクロコンピュータ及びマイクロコンピュータシステム |
| EP93117256A EP0597307B1 (en) | 1992-11-06 | 1993-10-25 | Microcomputer and microcomputer system |
| DE69324651T DE69324651T2 (de) | 1992-11-06 | 1993-10-25 | Mikrocomputer und Mikrocomputersystem |
| KR1019930022424A KR100279780B1 (ko) | 1992-11-06 | 1993-10-27 | 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템 |
| US08/517,151 US5530965A (en) | 1992-11-06 | 1995-08-21 | Multiply connectable microprocessor and microprocessor system |
| US08/628,241 US5748977A (en) | 1992-11-06 | 1996-04-04 | Multiply connectable microprocessor and microprocessor system |
| US08/957,759 US5987589A (en) | 1992-11-06 | 1997-10-24 | Microcomputer and microcomputer system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4322598A JPH06150023A (ja) | 1992-11-06 | 1992-11-06 | マイクロコンピュータ及びマイクロコンピュータシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06150023A true JPH06150023A (ja) | 1994-05-31 |
Family
ID=18145497
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4322598A Pending JPH06150023A (ja) | 1992-11-06 | 1992-11-06 | マイクロコンピュータ及びマイクロコンピュータシステム |
Country Status (5)
| Country | Link |
|---|---|
| US (3) | US5530965A (ja) |
| EP (1) | EP0597307B1 (ja) |
| JP (1) | JPH06150023A (ja) |
| KR (1) | KR100279780B1 (ja) |
| DE (1) | DE69324651T2 (ja) |
Families Citing this family (86)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR0140571B1 (ko) * | 1995-01-19 | 1998-07-01 | 김광호 | 버스제어수단을 구비한 다중프로세서시스템 |
| GB2309559B (en) * | 1996-01-27 | 2000-01-26 | Motorola Israel Ltd | Microprocessor and system |
| US5890196A (en) * | 1996-03-28 | 1999-03-30 | Motorola, Inc. | Method and apparatus for performing page mode accesses |
| WO1998007099A1 (en) * | 1996-08-14 | 1998-02-19 | Advanced Micro Devices, Inc. | A microcontroller including an internal memory unit and circuitry to generate an associated enable signal |
| US6031767A (en) * | 1996-09-18 | 2000-02-29 | International Business Machines Corporation | Integrated circuit I/O interface that uses excess data I/O pin bandwidth to input control signals or output status information |
| US6327640B1 (en) | 1997-03-07 | 2001-12-04 | Advanced Micro Devices, Inc. | Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller |
| US5966736A (en) * | 1997-03-07 | 1999-10-12 | Advanced Micro Devices, Inc. | Multiplexing DRAM control signals and chip select on a processor |
| US6260101B1 (en) | 1997-03-07 | 2001-07-10 | Advanced Micro Devices, Inc. | Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices |
| US6016537A (en) * | 1997-03-07 | 2000-01-18 | Advanced Micro Devices, Inc. | Method and apparatus for address multiplexing to support variable DRAM sizes |
| US6212599B1 (en) * | 1997-11-26 | 2001-04-03 | Intel Corporation | Method and apparatus for a memory control system including a secondary controller for DRAM refresh during sleep mode |
| US6862563B1 (en) | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
| US20060168431A1 (en) * | 1998-10-14 | 2006-07-27 | Peter Warnes | Method and apparatus for jump delay slot control in a pipelined processor |
| SE512773C2 (sv) * | 1998-10-28 | 2000-05-08 | Imsys Ab | Metod och anordning för kontroll/access av DRAM-minnen |
| JP2001067335A (ja) * | 1999-06-23 | 2001-03-16 | Denso Corp | マイクロコンピュータ |
| US20020054790A1 (en) * | 1999-08-19 | 2002-05-09 | Rockwood Retaining Walls, Inc. | Block with multifaceted bottom surface |
| US6434665B1 (en) | 1999-10-01 | 2002-08-13 | Stmicroelectronics, Inc. | Cache memory store buffer |
| US6665816B1 (en) | 1999-10-01 | 2003-12-16 | Stmicroelectronics Limited | Data shift register |
| US6502210B1 (en) | 1999-10-01 | 2002-12-31 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
| US6574651B1 (en) | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
| US7000078B1 (en) | 1999-10-01 | 2006-02-14 | Stmicroelectronics Ltd. | System and method for maintaining cache coherency in a shared memory system |
| US6779145B1 (en) | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
| US7793261B1 (en) | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
| US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
| US6463553B1 (en) | 1999-10-01 | 2002-10-08 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
| US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
| US6487683B1 (en) | 1999-10-01 | 2002-11-26 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
| US6633971B2 (en) | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
| US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
| US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
| US7260745B1 (en) | 1999-10-01 | 2007-08-21 | Stmicroelectronics Ltd. | Detection of information on an interconnect |
| US6820195B1 (en) | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
| US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
| US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6928073B2 (en) * | 1999-10-01 | 2005-08-09 | Stmicroelectronics Ltd. | Integrated circuit implementing packet transmission |
| US6457118B1 (en) | 1999-10-01 | 2002-09-24 | Hitachi Ltd | Method and system for selecting and using source operands in computer system instructions |
| JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
| US6530047B1 (en) | 1999-10-01 | 2003-03-04 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
| US6629115B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method and apparatus for manipulating vectored data |
| US6859891B2 (en) | 1999-10-01 | 2005-02-22 | Stmicroelectronics Limited | Apparatus and method for shadowing processor information |
| US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
| US6693914B1 (en) | 1999-10-01 | 2004-02-17 | Stmicroelectronics, Inc. | Arbitration mechanism for packet transmission |
| US6496905B1 (en) | 1999-10-01 | 2002-12-17 | Hitachi, Ltd. | Write buffer with burst capability |
| US6591369B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics, Ltd. | System and method for communicating with an integrated circuit |
| US6826191B1 (en) | 1999-10-01 | 2004-11-30 | Stmicroelectronics Ltd. | Packets containing transaction attributes |
| US6449712B1 (en) | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
| US6542983B1 (en) | 1999-10-01 | 2003-04-01 | Hitachi, Ltd. | Microcomputer/floating point processor interface and method |
| US6408381B1 (en) | 1999-10-01 | 2002-06-18 | Hitachi, Ltd. | Mechanism for fast access to control space in a pipeline processor |
| US6598177B1 (en) | 1999-10-01 | 2003-07-22 | Stmicroelectronics Ltd. | Monitoring error conditions in an integrated circuit |
| US7266728B1 (en) | 1999-10-01 | 2007-09-04 | Stmicroelectronics Ltd. | Circuit for monitoring information on an interconnect |
| US6351803B2 (en) | 1999-10-01 | 2002-02-26 | Hitachi Ltd. | Mechanism for power efficient processing in a pipeline processor |
| US6615370B1 (en) | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
| US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
| US6349371B1 (en) | 1999-10-01 | 2002-02-19 | Stmicroelectronics Ltd. | Circuit for storing information |
| US7072817B1 (en) | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
| US6460174B1 (en) | 1999-10-01 | 2002-10-01 | Stmicroelectronics, Ltd. | Methods and models for use in designing an integrated circuit |
| US6701405B1 (en) | 1999-10-01 | 2004-03-02 | Hitachi, Ltd. | DMA handshake protocol |
| US6557119B1 (en) | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
| US6412047B2 (en) | 1999-10-01 | 2002-06-25 | Stmicroelectronics, Inc. | Coherency protocol |
| US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
| US6298394B1 (en) | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
| US6590907B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics Ltd. | Integrated circuit with additional ports |
| US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6557096B1 (en) | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
| US6330660B1 (en) | 1999-10-25 | 2001-12-11 | Vxtel, Inc. | Method and apparatus for saturated multiplication and accumulation in an application specific signal processor |
| US6408376B1 (en) * | 1999-10-25 | 2002-06-18 | Intel Corporation | Method and apparatus for instruction set architecture to perform primary and shadow digital signal processing sub-instructions simultaneously |
| US6832306B1 (en) | 1999-10-25 | 2004-12-14 | Intel Corporation | Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions |
| US6563746B2 (en) * | 1999-11-09 | 2003-05-13 | Fujitsu Limited | Circuit for entering/exiting semiconductor memory device into/from low power consumption mode and method of controlling internal circuit at low power consumption mode |
| US6732203B2 (en) | 2000-01-31 | 2004-05-04 | Intel Corporation | Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus |
| WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
| US7284064B1 (en) | 2000-03-21 | 2007-10-16 | Intel Corporation | Method and apparatus to determine broadcast content and scheduling in a broadcast system |
| JP3845814B2 (ja) * | 2000-08-10 | 2006-11-15 | 株式会社テルミナス・テクノロジー | 連想メモリとその検索方法及びルータとネットワークシステム |
| US7003093B2 (en) * | 2000-09-08 | 2006-02-21 | Intel Corporation | Tone detection for integrated telecommunications processing |
| US20020116186A1 (en) * | 2000-09-09 | 2002-08-22 | Adam Strauss | Voice activity detector for integrated telecommunications processing |
| US7275254B1 (en) | 2000-11-21 | 2007-09-25 | Intel Corporation | Method and apparatus for determining and displaying the service level of a digital television broadcast signal |
| US6890919B2 (en) * | 2001-06-26 | 2005-05-10 | Shitij Kapur | Atypical antipsychotic agents having low affinity for the D2 receptor |
| US6625716B2 (en) | 2001-06-28 | 2003-09-23 | Intel Corporation | Method apparatus, and system for efficient address and data protocol for a memory |
| US8943540B2 (en) | 2001-09-28 | 2015-01-27 | Intel Corporation | Method and apparatus to provide a personalized channel |
| US20030219113A1 (en) * | 2002-05-21 | 2003-11-27 | Bershad Neil J. | Echo canceller with double-talk and channel impulse response adaptation |
| JP4617282B2 (ja) * | 2006-08-31 | 2011-01-19 | 富士通株式会社 | 負荷発生装置及び負荷試験方法 |
| US7598166B2 (en) * | 2006-09-08 | 2009-10-06 | International Business Machines Corporation | Dielectric layers for metal lines in semiconductor chips |
| US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
| TWI367486B (en) * | 2007-12-25 | 2012-07-01 | Ind Tech Res Inst | Memory device and refresh method thereof |
| JP2010113765A (ja) * | 2008-11-06 | 2010-05-20 | Elpida Memory Inc | 半導体記憶装置 |
| US8074033B1 (en) * | 2009-01-12 | 2011-12-06 | Ixys Ch Gmbh | Cooperating memory controllers that share data bus terminals for accessing wide external devices |
| US9152423B2 (en) * | 2011-03-25 | 2015-10-06 | Avaya Inc. | Method and apparatus for efficient loop instruction execution using bit vector scanning |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4332008A (en) * | 1976-03-09 | 1982-05-25 | Zilog, Inc. | Microprocessor apparatus and method |
| JPH0642263B2 (ja) | 1984-11-26 | 1994-06-01 | 株式会社日立製作所 | デ−タ処理装置 |
| JPH0792792B2 (ja) * | 1985-08-23 | 1995-10-09 | 株式会社日立製作所 | デ−タ処理装置 |
| US4757504A (en) * | 1986-04-21 | 1988-07-12 | Texas Instruments Incorporated | Polyphase parity generator circuit |
| US5048012A (en) * | 1987-04-03 | 1991-09-10 | Advanced Micro Devices, Inc. | Data link controller with flexible multiplexer |
| US5151986A (en) * | 1987-08-27 | 1992-09-29 | Motorola, Inc. | Microcomputer with on-board chip selects and programmable bus stretching |
| US5086407A (en) * | 1989-06-05 | 1992-02-04 | Mcgarity Ralph C | Data processor integrated circuit with selectable multiplexed/non-multiplexed address and data modes of operation |
| US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
| US5754886A (en) * | 1989-08-29 | 1998-05-19 | Hitachi, Ltd. | Controller for supplying multiplexed or non-multiplexed address signals to different types of dynamic random access memories |
| JP3024767B2 (ja) * | 1989-08-29 | 2000-03-21 | 株式会社日立製作所 | アドレス供給システム |
| JPH0731850B2 (ja) * | 1989-08-31 | 1995-04-10 | 日本ビクター株式会社 | 磁気記録再生装置のつなぎ撮り装置 |
| JPH0398145A (ja) * | 1989-09-11 | 1991-04-23 | Hitachi Ltd | マイクロプロセッサ |
| DE69123987T2 (de) * | 1990-01-31 | 1997-04-30 | Hewlett Packard Co | Stossbetrieb für Mikroprozessor mit externem Systemspeicher |
| EP0518488A1 (en) * | 1991-06-12 | 1992-12-16 | Advanced Micro Devices, Inc. | Bus interface and processing system |
| US5262998A (en) * | 1991-08-14 | 1993-11-16 | Micron Technology, Inc. | Dynamic random access memory with operational sleep mode |
| US5262991A (en) * | 1991-11-22 | 1993-11-16 | Zilog, Inc. | Device with multiplexed and non-multiplexed address and data I/O capability |
| WO1993012480A1 (en) * | 1991-12-17 | 1993-06-24 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
| US5414827A (en) * | 1991-12-19 | 1995-05-09 | Opti, Inc. | Automatic cache flush |
-
1992
- 1992-11-06 JP JP4322598A patent/JPH06150023A/ja active Pending
-
1993
- 1993-10-25 DE DE69324651T patent/DE69324651T2/de not_active Expired - Fee Related
- 1993-10-25 EP EP93117256A patent/EP0597307B1/en not_active Expired - Lifetime
- 1993-10-27 KR KR1019930022424A patent/KR100279780B1/ko not_active Expired - Lifetime
-
1995
- 1995-08-21 US US08/517,151 patent/US5530965A/en not_active Expired - Lifetime
-
1996
- 1996-04-04 US US08/628,241 patent/US5748977A/en not_active Expired - Lifetime
-
1997
- 1997-10-24 US US08/957,759 patent/US5987589A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE69324651T2 (de) | 1999-12-30 |
| EP0597307A1 (en) | 1994-05-18 |
| US5748977A (en) | 1998-05-05 |
| DE69324651D1 (de) | 1999-06-02 |
| KR940012150A (ko) | 1994-06-22 |
| KR100279780B1 (ko) | 2001-02-01 |
| EP0597307B1 (en) | 1999-04-28 |
| US5987589A (en) | 1999-11-16 |
| US5530965A (en) | 1996-06-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100279780B1 (ko) | 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템 | |
| JP2984463B2 (ja) | マイクロコンピュータ | |
| EP0870226B1 (en) | Risc microprocessor architecture | |
| US8880855B2 (en) | Dual register data path architecture with registers in a data file divided into groups and sub-groups | |
| CN101933005B (zh) | 外围模块寄存器访问方法和装置 | |
| US20040199716A1 (en) | Single-chip microcomputer | |
| US6598148B1 (en) | High performance microprocessor having variable speed system clock | |
| US5822779A (en) | Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active | |
| JPH0877098A (ja) | 制御されたバーストメモリアクセスを備えたデータプロセッサおよびその方法 | |
| US5410721A (en) | System and method for incrementing a program counter | |
| US20030233527A1 (en) | Single-chip microcomputer | |
| US5317750A (en) | Microcontroller peripheral expansion bus for access to internal special function registers | |
| JP3562215B2 (ja) | マイクロコンピュータ及び電子機器 | |
| KR0184633B1 (ko) | 씨피유코어 | |
| JP3851008B2 (ja) | プロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法 | |
| JP3105197B2 (ja) | 除算回路及び除算方法 | |
| WO2001025941A1 (en) | Multiprocessor computer systems with command fifo buffer at each target device | |
| CN101313290A (zh) | 对仅m×n位外围设备执行n位写入访问 | |
| JP4176920B2 (ja) | データ処理装置 | |
| JP3740321B2 (ja) | データ処理装置 | |
| JP3215085B2 (ja) | 中央処理装置及びマイクロコンピュータ | |
| JPH0926932A (ja) | データ処理装置 | |
| WO2006004166A1 (en) | Data processing unit and compatible processor | |
| JP2001175586A (ja) | データプロセッサ及びデータ処理システム | |
| JPH02264380A (ja) | 集積回路マイクロコントローラ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041214 |