(57)【要約】【課題】  簡単な構成によりシンクロナスダイナミック型ＲＡＭの動作マージンを拡大させてアクセスできるシングル・チップ・データ処理装置を提供する。【解決手段】  複数の端子を含み、かつ、複数のモードの中の１つが上記複数の端子を介して供給された信号によって決定される外部メモリとともに用いられる。その一部に上記外部メモリが割り付けられるアドレス空間をアクセス可能とするアドレス信号を供給する中央処理装置と、上記外部メモリの上記複数の端子に電気的に連結される複数の外部端子と、上記中央処理装置と上記複数の外部端子に電気的に連結されたメモリ制御信号発生回路を含む。上記メモリ制御信号発生回路は、上記中央処理装置から発生されたアドレス信号の１部にしたがって、上記外部メモリのモードをセットする。【選択図】  図８
2006004444.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリと共に用いられるシングル・チップ・データ処理装置であって、
上記外部メモリは、複数の端子を含み、かつ、複数のモードの中の１つのモードで動作し、上記外部メモリの上記モードは、上記複数の端子を介して供給された信号によって決定され、
アドレス空間をアクセス可能にされ、上記アドレス空間内のアドレスを示すためのアドレス信号を供給する中央処理装置と、
上記外部メモリの上記複数の端子に電気的に連結される複数の外部端子と、
上記中央処理装置と上記複数の外部端子に電気的に連結されたメモリ制御信号発生回路と、を含み、
上記メモリ制御信号発生回路は、上記中央処理装置から発生されたアドレス信号の１部にしたがって、上記外部メモリのモードをセットするための制御信号を発生する、
シングル・チップ・データ処理装置。
【請求項２】
請求項１において、
上記外部メモリは、シンクロナス・ダイナミック・ランダム・アクセス・メモリを含み、
上記メモリ制御信号発生回路は、所定電圧レベルのアドレス／ストローブ信号と、所定電圧レベルのライト・イネーブル信号とを発生し、それによって、上記アドレス信号の１部によって示されるモードが上記シンクロナス・ダイナミック・ランダム・アクセス・メモリに設定される、
シングル・チップ・データ処理装置。
【請求項３】
請求項２において、
上記アドレス・ストローブ信号は、ロー・レベルのロー・アドレス・ストローブ信号と、ロー・レベルのカラム・アドレス・ストローブ信号とを含み、
上記所定電圧レベルの上記ライトイ・ネーブル信号は、ロー・レベルのライト・イネーブル信号である、
シングル・チップ・データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、シングル・チップ・データ処理装置に関し、特に高性能、高機能で家庭用ゲーム機や携帯型情報通信端末機器等に好適なシングルチップマイクロコンピュータに利用して有効な技術に関するものである。
【背景技術】
【０００２】
中央処理装置と直接メモリアクセス制御装置（ＤＭＡＣ）や各種タイマ等のような周辺回路を１つの半導体集積回路装置に構成したシングルチップマイクロコンピュータがある。このようなシングルチップマイクロコンピュータの例としては、例えば（株）日立製作所、平成５年３月発行『日立シングルチップＲＩＳＣマイコン  ＳＨ７０３２、ＳＨ７０３４  ハードウェアマニュアル』がある。
【非特許文献１】（株）日立製作所、平成５年３月発行『日立シングルチップＲＩＳＣマイコン  ＳＨ７０３２、ＳＨ７０３４  ハードウェアマニュアル』
【発明の開示】
【発明が解決しようとする課題】
【０００３】
半導体技術の進展により多数の半導体素子を１つの半導体基板上に形成することができる。これにより、上記中央処理装置を中心にしてその周辺回路を１つの半導体基板上に形成して、高性能及び多機能化を図ることができる。しかしながら、高性能及び多機能化のために単純に多くの周辺回路を内蔵させると、動作速度や消費電力等の観点から却って不都合の生じることが判明した。また、これからのマイクロコンピュータには３次元画像処理機能の強化が避けられない。
【０００４】
この発明の１つの目的は、高性能と高機能化を実現したシングル・チップ・データ処理装置を提供することにある。
【０００５】
この発明の他の目的は、簡単な構成によりシンクロナスダイナミック型ＲＡＭの動作マージンを拡大させてアクセスできるシングル・チップ・データ処理装置を提供することにある。
【０００６】
この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的な１つの概要を簡単に説明すれば、下記の通りである。すなわち、複数の端子を含み、かつ、複数のモードの中の１つが上記複数の端子を介して供給された信号によって決定される外部メモリとともに用いられるシングル・チップ・データ処理装置である。シングル・チップ・データ処理装置は、その一部に上記外部メモリが割り付けられるアドレス空間をアクセス可能にされ、上記アドレス空間内のアドレスを示すためのアドレス信号を供給する中央処理装置と、上記外部メモリの上記複数の端子に電気的に連結される複数の外部端子と、上記中央処理装置と上記複数の外部端子に電気的に連結されたメモリ制御信号発生回路を含む。上記メモリ制御信号発生回路は、上記中央処理装置から発生されたアドレス信号の１部にしたがって、上記外部メモリのモードをセットするための制御信号を発生する。
【発明の効果】
【０００８】
簡単な構成によりシンクロナスダイナミック型ＲＡＭの動作マージンを拡大させてアクセスできる。
【発明を実施するための最良の形態】
【０００９】
図１には、この発明に係るシングルチップマイクロコンピュータの一実施例のブロック図が示されている。同図の各回路ブロックは、公知のＣＭＯＳ（相補型ＭＯＳ）半導体集積回路の製造技術によって、単結晶シリコンのような１個の基板上において形成される。
【００１０】
この実施例におけるシングルチップマイクロコンピュータは、特に制限されないが、ＲＩＳＣ(Reduced instruction set computer)タイプの中央処理装置ＣＰＵにより、高性能な演算処理を実現し、システム構成に必要な周辺機器を集積すると同時に、携帯機器応用に不可欠な低消費電力化を実現した、いわば新世代に向けられたシングルチップマイクロコンピュータである。
【００１１】
中央処理装置ＣＰＵは、ＲＩＳＣタイプの命令セットを持っており、基本命令はパイプライン処理を行って１命令１ステート（１システムクロックサイクル）で動作するので、命令実行速度が飛躍的に向上させることができる。そして、乗算器ＭＵＬＴを内蔵しており、後述するような３次元演算処理には不可欠な積和演算処理を高速に行うようにしている。
【００１２】
最少部品点数によりユーザーシステムを構成できるように内蔵周辺モジュールとして、割り込みコントローラＩＮＴＣ、直接メモリアクセス制御装置ＤＭＡＣ、除算器ＤＩＶＵ、タイマＦＲＴ，ＷＤＴ、シリアルコミュニケーションインターフェイスＳＣＩを内蔵している。さらに、キャッシュメモリ内蔵の外部メモリアクセスサポート機能により、グルーロジックなしにダイナミック型ＲＡＭ（ラチンダム・アクセス・メモリ）、シンクロナスダイナミック型ＲＡＭ、擬似スタティック型ＲＡＭと直接接続できるようにしている。
【００１３】
上記のような高速な中央処理装置ＣＰＵを中心にし、その性能を十分に発揮し、しかも低消費電力化を図りつつ、高性能、高機能又は多機能のために設けられた周辺モジュールを効率よく動作させるようにするため、内部バスは３つに分けられている。
【００１４】
第１のバスは、アドレスバスＡＢ１とデータバスＤＢ１から構成され、中央処理装置ＣＰＵ、乗算器（積和演算器）ＭＵＬＴ及びキャッシュメモリが接続される。上記乗算器ＭＵＬＴは、上記第１のバスのうちデータバスＤＢ１にのみ接続され、中央処理装置ＣＰＵと一体的に動作して乗算と加算を行うようにされる。それ故、第１バス（ＡＢ１，ＤＢ１）は、主に中央処理装置ＣＰＵとキャッシュメモリとの間でのデータ転送に利用されるからキャッシュアドレスバスとキャッシュデータバスと呼ぶことができる。キャッシュメモリは、タグメモリＴＡＧとデータメモリＣＤＭ及びキャッシュコントローラから構成される。
【００１５】
中央処理装置ＣＰＵの概略構成は次の通りである。内部は３２ビット構成とされる。汎用レジスタマシンは、１６本からなる３２ビットの汎用レジスタと、３本からなる３２ビットのコントロールレジスタと、４本からなる３２ビットのシステムレジスタから構成される。ＲＩＳＣタイプの命令セットは、１６ビット固定長命令によりコード効率化を図っている。無条件／条件分岐命令を遅延分岐方式とすることにより、分岐時のパイプラインの乱れを軽減している。命令実行は、１命令／１ステートとされ、２８．７ＭＨｚ動作時においては、３５ｎｓ／命令のように高速とされる。中央処理装置ＣＰＵの性能は動作周波数と、１命令実行あたりのクロック数（ＣＰＩ：Ｃycles Ｐer  Ｉnstru ction ）で決まる。このうち動作周波数は、ゲーム機に組み込んだ際にテレビ用のビデオ信号処理系とクロックを共用するために、上記のように２８．７ＭＨｚに設定にすることが便利である。ちなみに、ＮＴＳＣ方式のカラー・テレビで画像データをノンインタレース表示する場合には通常、ビデオ信号回路に色副搬送波（カラー・サブキャリヤ）周波数（約３．５８Ｍｚの８倍のクロック（２８．６ＭＨｚ）を使っている。
【００１６】
この実施例では、キャッシュメモリ（ＴＡＧ，ＣＡＣ，ＣＤＭ）及び乗算器ＭＵＬＴしか接続されない第１バス（ＡＢ１とＤＢ１）に中央処理装置ＣＰＵを接続するものであるので、バスの負荷容量が大幅に低減でき、上記のような高速動作を行う中央処理装置ＣＰＵのバス駆動回路の簡素化と、低消費電力化を図ることができる。
【００１７】
第２のバスは、アドレスバスＡＢ２とデータバスＤＢ２から構成され、除算器ＤＩＶＵ、直接メモリアクセス制御装置ＤＭＡＣ、外部バスインターフェイスＯＢＩＦが接続される。上記キャッシュメモリでのミスヒットのときに、中央処理装置ＣＰＵは、外部メモリをアクセスしてデータを取り込む必要がある。このため、第１のバスのアドレス信号を第２のバスに伝える機能が必要とされる。また、上記のように第１と第２のバスを分離すると、プログラムミス等によって直接メモリアクセス制御装置ＤＭＡＣがキャッシュメモリのデータメモリＣＤＭの内容を勝手に書き換えてしまうという問題が生じる。
【００１８】
この実施例では、上記のようなキャッシュメモリでのミスヒットやキャッシュメモリのデータ破壊といった問題を解決するために、ブレークコントローラＵＢＣが利用される。ブレークコントローラＵＢＣは、本来プログラムデバッグ等に用いられるのであるが、上記第１バス及び第２バスに接続される必要があることを利用し、それにトランシーバ回路を設けて上記キャッシュメモリでのミスヒットのときに第１バスのアドレス信号を第２のバスのアドレスバスＡＢ２に伝えて、外部メモリのアクセスを行うようにするものである。また、第２のバスでのアドレス信号を監視し、直接メモリアセクセス制御装置ＤＭＡＣによるデータメモリＣＤＭへ書き換えを監視させる。
【００１９】
第３のバスは、アドレスバスＡＢ３とデータバスＤＢ３から構成され、特に制限されないが、フリーランニングタイマＦＲＴ、シリアルコミュニケーションインターフェイスＳＣＩ、ウォッチドッグタイマＷＤＴと動作モードコントローラＭＣが接続される。
【００２０】
上記第３のバスは、上記第１や第２のバスに比べてバスサイクルが遅くされる。すなわち、これらの各周辺モジュールは、その動作速度を速くしても実質的な性能や機能が向上するものではないことに着目し、約１０ＭＨｚ程度で動作する既存のシングルチップマイクロコンピュータに搭載されているものを実質的にそのまま利用するものである。このようにすることにより、設計効率の向上を図ることができるとともに、動作周波数が低くされることによって低消費電力化とすることができる。
【００２１】
しかしながら、このようにすると中央処理装置ＣＰＵ等とのデータの授受がそのままできなくなるので、バスステートコントローラＢＳＣが設けられる。このバスステートコントローラＢＳＣは、第３のバスから第２のバスに信号（データ信号）を転送するときには、そのまま信号の伝達を行う。これは、パルス発生回路ＣＰＧにおいて第１や第２のバスサイクルを決定するシステムクロックを分周して第３のバスサイクルに使用するクロックパルスを形成しているので、上記第３のバスの信号をそのまま第２のバスに伝えることができる。これに対して、バスステートコントローラＢＳＣは第２のバスの信号を第３のバスに伝えるときに、必要に応じて信号を遅延させて第３のクロックパルスに同期化させて伝達するものである。
【００２２】
割り込みコントローラＩＮＴＣの概略は、次の通りである。外部割り込みに関しては、後述するようなＮＭＩ、／ＩＲＬ０〜／ＩＲＬ３からなる５本の外部割り込み端子を持っている。／ＩＲＬ０〜／ＩＲＬ３端子による１５外部割り込みレベル設定が可能にされる。この明細書及び一部の図面において、アルファベットの記号に付した／（スラッシュ）は、ロウレベルがアクティブレベルであるバー信号を表している。なお、図面では従来の記述方法により、バー信号はアルファベットによる信号名又は端子名の上に線が付されている。
【００２３】
内部割り込み要因は、直接メモリアクセス制御装置により２つ、除算器ＤＩＶＵにより１つ、フリーランニングタイマＦＲＴにより３つ、ウォッチドッグタイマＷＤＴにより１つ、シリアルコミュニケーションインターフェイスＳＣＩにより４つからなる１１要因とされる。内部割り込み要因ごとにベクタ番号設定可能とされる。
【００２４】
以上のようなバスの分割方式を採ることにより、それぞれのバスの長さが短くされたり、あるいはそれに接続される素子を減らすことができるからバスの負荷容量が大幅に低減し、中央処理装置ＣＰＵの高速化と相俟って低消費電力で高速なデータ処理が可能になる。また、ユーザーブレークコントローラに直接メモリアクセス制御装置をＤＭＡＣを設けた場合には、上記のようなバスの分離によって直接メモリアクセス制御装置ＤＭＡＣによる誤ったキャッシュデータの書き換えを検出する機能が設けられているので、信頼性を損なうことがない。
【００２５】
さらに、中央処理装置ＣＰＵやキャッシュメモリ及び直接メモリアクセス制御装置ＤＭＡＣのように、そのバスサイクルが直ちに性能や機能に影響を及ぼすものは、上記のような高速なバスサイクルのバスに接続し、フリーランニングタイマＦＲＴ、シリアルコミュニケーションインターフェイスＳＣＩ又はウォッチドッグタイマＷＤＴのように、そのバスサイクルがデータ処理に直接影響を及ぼさないものは、低速のバスサイクルの第３のバスに接続するようにするものである。これにより、中央処理装置ＣＰＵの高速化に追従して、高速タイプの周辺モジュールを開発設計する必要がなく、既存のものをそのまま流用して用いることができるから、設計の効率化を図ることができるとともに、そこでの動作クロックを低くできるので低消費電力化を図ることができる。
【００２６】
図２と図３には、この発明に係るシングルチップマイクロコンピュータのピン配置図が示されている。図２には左半分が示され、図３には右半分が示されている。そして、両者の関連を明らかにするために、中央部分は図２と図３において重複するように示されている。この実施例では、１４４ピンからなるプラスチックＱＦＰパッケージを用いている。
【００２７】
代表的な端子機能は、次の通りである。図２と図３において１つの端子に複数の意味を持たせ動作モードに応じて切り換えて使用するものを／（スラッシュ）により分けているが、この明細書では前記のようにバー信号の意味で用いているので、図２と図３の／は＊に置き換えて説明するものである。
【００２８】
電源系としてＶccは電源、Ｖssはグランド（接地電位）である。動作モード制御用として、ＭＤ０〜ＭＤ２はクロック選択、ＭＤ３とＭＤ４はＣＳ０空間のバスサイズ、ＭＤ５は後述するスレーブ／マスタモードの指定を行う。アドレスバス用として、Ａ０〜Ａ２６はアドレス端子、データバス用として、Ｄ０〜Ｄ３１は入出力データ端子である。
【００２９】
バス制御用として、／ＣＳ０〜／ＣＳ３はチップセレクト出力信号である。／ＢＳはバススタート信号である。ＲＤ＊／ＷＲはリード＊ライト信号である。／ＲＡＳ＊／ＣＥは、ダイナミック型ＲＡＭとシンクロナスダイナミック型ＲＡＭを使用時のロウアドレスストローブ信号と擬似スタティック型ＲＡＭ使用時チップネーブル信号である。／ＣＡＳ＊／ＯＥは、シンクロナスダイナミック型ＲＡＭ使用時のカラムアドレスストローブ信号と擬似スタティック型ＲＡＭ使用時の出力イネーブル信号及びリフレッシュ制御信号である。
【００３０】
／ＷＥ０は基本インターフェイスのとき最下位バイト書き込み、／ＷＥ１は基本インターフェイスのとき３バイト目書き込み、／ＷＥ２は基本インターフェイスのとき２バイト目書き込み、／ＷＥ３は基本インターフェイスのとき最上位バイト書き込みを表し、この他にダイナミック型ＲＡＭ使用時の各バイトの選択のＣＡＳとシンクロナスダイナミック型ＲＡＭを使用時の各バイトのマクスとしても使用される。／ＲＤはリードパルス信号であり、デバイスのＯＥ端子に接続される。／ＷＡＩＴは、ハードウエアウエイト入力である。／ＢＥＮは外部データバッファイネーブル信号であり、データバッファの方向制御にはＲＤ＊／ＷＲを用いる。
【００３１】
／ＢＡＣＫ＊／ＢＲＬＳは、端子ＭＤ５によりスレーブモードにされたときにはバス使用許可入力（バスアクノリッジ信号）、マスターモードにされたときにはバス開放要求入力（バスレリーズ信号）として選択的に使用される。／ＢＲＥＱ＊／ＢＧＲは端子ＭＤ５によりスレーブモードにされたときにはバス使用権要求出力（バスリクエスト信号）、マスターモードにされたときにはバス使用許可出力（バスグラント信号）として選択的に使用される。ＣＫＥはシンクロナスダイナミック型ＲＡＭのクロックイネーブル信号である。
【００３２】
割り込み用として、／ＲＥＳＥＴはリセット端子である。／ＩＲＬ０〜／ＩＲＬ３は割り込みレベル入力信号である。ＮＭＩはノンマスカブル割り込み入力であり、ＩＶＥＣＦは割り込みベクタフェッチ出力である。
【００３３】
クロック用として、ＥＸＴＡＬはクリスタル入力端子である。ＸＴＡＬはクリスタル入力端子＊倍周用クロック入力である。ＣＫＰＡＣＫはクロックポーズアクノリッジ出力である。ＣＫＰＲＥＱはクロックポーズリクエスト入力である。ＣＫＩＯはクロック入出力である。ＣＡＰ１とＣＡＰ２はＰＬＬ用容量接続端子である。Ｖss（ＰＬＬ）とＶcc（ＰＬＬ）は、ＰＬＬの電源端子である。
【００３４】
ＤＭＡＣ用として、／ＤＲＥＱ０，／ＤＲＥＱ１はＤＭＡ転送要求入力であり、チャンネル１とチャンネル２に対応している。／ＤＡＣＫ０，／ＤＡＣＫ１はＤＭＡ転送受け付け出力であり、チャンネル１とチャンネル２に対応している。ＳＣＩ用として、ＴＸＤ０は送信データ出力であり、ＲＸＤ０は受信データ入力であり、ＳＣＫ０はシリアルクロック入出力である。ＦＲＴ用として、ＦＴＯＡはアウトプットコンペアＡ出力であり、ＦＴＯＢはアウトプットコンペアＢ出力である。ＦＴＣＩはカウンタクロック入力であり、ＦＴＩはイップットキャプチャ入力である。そして、ＷＤＴ用として、／ＷＤＴＯＶＦはウォッチドッグタイマオーバーフロー出力である。
【００３５】
図４には、動作モードコントローラＭＣの一実施例のブロック図が示されている。モードコントロール部には、スタンバイコントロールレジスタとバス幅設定レジスタ及び周波数変更レジスタが設けられる。バス幅設定レジスタの出力は、組み合わせ論理回路により解読されて８ビット、１６ビット又は３２ビットのバス幅設定信号を形成し、バスステートコントローラＢＳＣに対してバス幅の設定を行う。
【００３６】
周波数変更レジスタは、その出力信号を組み合わせ論理回路により解読されて、周波数ｆに対して×１、×２及び×４の３通りの制御信号を形成して発振回路に供給される。モード設定端子ＭＤ０〜２から入力された信号は、組み合わせ論理回路により解読されて、７通りのモード設定信号とされ、発振回路に供給される。
【００３７】
このようなクロック動作モードは、内蔵発振モジュール又は倍周回路を使用する／使用しない、クロック出力をする／出力をしないの選択、ＰＬＬによる同期化をする／同期化をしないの選択、ＣＰＵのクロックと外部に出力させる又は外部から入力されるクロックとの位相を９０°変更する／変更しないの選択が組み合わされて上記７通りのモードが設定できる。上記位相の９０°変更をする動作モードについては、後に説明する。
【００３８】
この実施例の各回路ブロックは、一部を除いてフルスタティック型ＣＭＯＳ回路により構成されている。それ故、動作を行う必要のない回路においては、クロックの供給を停止させてもその状態を維持しているので、基本的には初期設定や必要なデータを退避させておいてそれをもとに戻す等の処理を行うことなく、クロックの再入力により停止前の状態から引き続いて動作させることができる。ダイナミック型ＣＭＯＳ回路によって構成されているキャッシュメモリは、クロック供給開始によってプリチャージから動作が開始されるようにクロックの位相を合わせているので停止解除後に直ちにアクセスを行うことができる。
【００３９】
スタンバイコントロールレジスタは、上記のような動作を行う必要のない回路ブロックを指定することにより、例示的に示されているＤＭＡＣ、ＤＩＶＵ、ＭＵＬＴ及び１つのブロックＳＹＳＣとして示されている上記ＦＲＴ、ＷＤＴ及びＳＣＩのような周辺モジュールに対するクロックの入力を停止させる制御信号ＳＴＢＹ、ＤＲＴＳＴＰ、ＳＣＩＳＴＰ及びＭＵＬＴＳＴＰ、ＤＩＶＵＳＴＰ、ＤＭＡＣＳＴＰ等のような制御信号によって対応する回路ブロックのクロック入力を停止させる。
【００４０】
（表１）
┌─────┬───┬───┬──────┬───────┬────────┐
│  モード  │ＣＰＧ│ＣＰＵ│CPU レジスタ│周辺モジュール│    端  子      │
├─────┼───┼───┼──────┼───────┼────────┤
│スリープ  │動作  │停止  │  保持      │      動作    │  保持          │
├─────┼───┼───┼──────┼───────┼────────┤
│スタンバイ│停止  │停止  │  保持      │      停止    │  保持又はＨｉＺ│
├─────┼───┼───┼──────┼───────┼────────┤
│モジュール│動作  │動作  │  保持      │  指定された  │ＦＲＴ，ＷＤＴ，│
│ストップ  │      │      │            │  ものが停止  │ＳＣＩはＨｉＺ  │
└─────┴───┴───┴──────┴───────┴────────┘
【００４１】
表１には、上記スタンバイコントロールレジスタによる動作モードの一覧表が示されている。表１においてＨｉＺはハイインピーダンス状態を意味している。モジュールストップモードが指定されると、上記のような制御信号ＳＴＢＹ、ＤＲＴＳＴＰ、ＳＣＩＳＴＰ及びＭＵＬＴＳＴＰ、ＤＩＶＵＳＴＰ、ＤＭＡＣＳＴＰ等による回路ブロックのクロック入力が停止される。
【００４２】
中央処理装置ＣＰＵが動作を停止しているスリープモードの解除方法は、割り込み、ＤＭＡアドレスエラー、パワーオンリセット、マニアルリセットにより行われる。クロック発生回路ＣＰＧの動作停止により必然的に中央処理装置ＣＰＵ及び周辺モジュールも動作が停止しているスタンバイモードの解除方法は、ＮＭＩ割り込み、パワーオンリセット、マニュアルリセットにより行われる。これに対してモジュールストップモードは、上記スタンバイコントロールレジスタの所定ビットを０にリセットすることにより行われる。
【００４３】
上記のような各モードを設けることにより、シングルチップマイクロコンピュータの内部で、クロック発生回路の動作そのものも含めてクロックの供給が必要な回路のみ供給されるから、クロックパルスが伝えられる配線経路での負荷容量をチャージアップ／ディスチャージさせることにより生じる無駄な電流消費を削減することができる。これにより、電池駆動される携帯機器に搭載されるシングルチップマイクロコンピュータとしては特に必要とされる低消費電力化を図ることができる。
【００４４】
図５には、上記ブレークコントローラＵＢＣの基本的な一実施例のブロック図が示されている。ブレークコントローラＵＢＣは、中央処理装置ＣＰＵ又は直接メモリアクセス制御装置ＤＭＡＣが発生するバスサイクルの内容に応じて中央処理装置ＣＰＵにユーザブレーク割り込みを要求する。この機能を活用することによりセルフデバッガが構築でき、ユーザーのプログラムデバッグを容易にする。このブレークコントローラＵＢＣは、チャンネルＡとチャンネルＢの２チャンネルあり、チャンネルＢはデータを指定してブレークさせることができる。
【００４５】
ＢＡＲＡＨとＢＡＲＡＬ及びＢＡＲＢＨとＢＡＲＢＬは、Ａチャンネル及びＢチャンネル用のブレークアドレスレジスタである。ＢＡＭＲＡＨとＢＡＭＲＡＬ及びＢＡＭＲＢＨとＢＡＭＲＢＬは、Ａチャンネル及びＢチャンネル用のブレークアドレスマスクレジスタである。これにより、Ａチャンネル及びＢチャンネルにおいてブレークをかけるアドレスの指定と各ビットごとのマクスが可能にされる。
【００４６】
ＢＤＲＢＨとＢＤＲＢＬは、Ｂチャンネル用のブレークデータレジスタである。ＢＤＭＲＢＨとＢＤＭＲＢＬは、Ｂチャンネル用のブレークデータマスクレジスタである。これにより、Ｂチャンネルにおいてブレークをかけるデータの指定の指定と各ビットごとのマクスが可能にされる。
【００４７】
ＢＢＲＡはＡチャンネル用のブレークバスサイクルレジスタＡであり、ＢＢＲＢはＢチャンネル用のブレークバスサイクルレジスタＢである。ＢＲＣＲは、ブレークコントロールレジスタである。これらにより、上記アドレス又はデータの条件の他に、（１）ＣＰＵサイクルか周辺サイクルの一方又は両方、及びバスリリース時のチップ外部のバスサイクルを周辺サイクルに含めるかどうか、（２）命令フェッチかデータアクセスの一方又は両方、（３）読み出しか書き込みの一方又は両方、（４）オペランドサイズ（ロングワード、ワード、バイトアクセス）のような条件が組み合わせれてブレークをかけることができる。
【００４８】
図６には、上記ブレークコントローラＵＢＣの一実施例の詳細なブロック図が示されている。この実施例では、ブレークコントローラＵＢＣに次のような機能が付加される。前記図１の実施例のようにバス分離によって中央処理装置ＣＰＵと直接メモリアクセス制御装置ＤＭＡＣ及び外部バスインターフェイスＯＢＩＦとは分離されている。そのため、キャッシュメモリにミスヒットが発生した場合には、外部メモリをアクセスしてデータを取り込む必要がある。
【００４９】
バストランシーバは、制御信号Ｃ１により第１のアドレスバスＡＢ１のアドレス信号を第２のアドレスバスＡＢ２に伝達する。すなわち、キャッシュメモリにおいてミスヒットが生じると、制御信号Ｃ１により上記アドレスバスＡＢ１のアドレス信号をアドレスバスＡＢ２に伝え、外部バスインターフェイスＯＢＩＦを介して外部メモリをアクセスすることができる。このときの外部メモリから読み出されたデータは、キャッシュのデータメモリＣＤＭを介して中央処理装置ＣＰＵに伝えられる。
【００５０】
同図では、レジスタＢＡＲＡは、前記レジスタＢＡＲＡＨとＢＡＲＡＬの２本のレジスタを合わせたものである。他のレジスタＢＡＲＢ、ＢＤＲＢとそれぞれに対応したマスクレジスタＢＡＭＲＡ、ＢＡＭＲＢ及びＢＤＭＲＢもそれぞれ同様に図５の２本のレジスタを合わせたものである。
【００５１】
この実施例では、シンクロナスダイナミック型ＲＡＭ，ダイナミック型ＲＡＭ，擬似スタティック型ＲＡＭのアクセスを高速にするために、Ｒowアドレスコンパレータが設けられる。Ｒowアドレスレジスタに上記各ＲＡＭのロウアドレスをセットしておいて、同じロウアドレスを指定したときに、上記コンパレータからヒット信号Ｈitを発生させてバスステートコントローラＢＳＣを介して上記各ＲＡＭのワード線を選択状態にしたままアクセスすることにより高速動作を行うようにするものである。
【００５２】
ブレークコントローラＵＢＣは、上記のように第１バス及び第２バスに接続されてレジスタに設定されたアドレスとの比較動作を行っている。そこで、第２のバスに接続されるコンパレータとアドレスレジスタを利用し、キャッシュメモリに格納されているデータのアドレスをセットしておく。このようにしておけば、直接メモリアクセス制御装置ＤＭＡＣが誤ってキャッシュメモリに格納されているアドレスに対して書き込みを行うことによるデータを破壊を監視することができる。つまり、内部バスを分割して、内部回路の高速化や低消費電力化を図るだけで、この実施例のような手当を行わない場合には、キャッシュメモリのデータが破壊されてしまっても中央処理装置ＣＰＵが検知できなく、システムとして重大な欠陥を持つものとなってしまう。
【００５３】
図７には、上記バスステートコントローラＢＳＣの一実施例のブロック図が示されている。上記バスステートコントローラＢＳＣは、アドレス空間を管理し、８つの空間で最適なアクセスができるよう必要に応じて外部バスインターフェイスＯＢＩＦを通して制御信号を出力する。これにより、ダイナミック型ＲＡＭ、シンクロナスダイナミック型ＲＡＭ、擬似スタティック型ＲＡＭなどの各種メモリ及び周辺ＬＳＩと直結できる。
【００５４】
上記エリア制御部は、アドレス空間を４つに分割して管理を行う。つまり、アドレス空間は、アーキテクチャ上は４Ｇバイトあるが、メモリ空間としては２５６Ｍバイトあり、これを２つに分割して一方をキャッシュメモリを介してアクセスを行う空間、他方をキャッシュメモリを介さずにアクセスする空間とするが、物理的には同一の１２８Ｍバイトの空間に対するアクセスとなる。１２８Ｍバイトの物理空間を４個の部分空間（ＣＳ０空間からＳＣ３空間）に分割して使用し、各空間は最大リニア３２Ｍバイトとされる。上記ＣＳ０〜ＣＳ３の空間毎に、ダイナミック型ＲＡＭ、シンクロナスダイナミック型ＲＡＭ、擬似スタティック型ＲＡＭ及びバーストＲＯＭなどのメモリの種類の指定を設定できる。ＣＳ０は通常空間とバーストＲＯＭに、ＣＳ１は通常空間に、ＣＳ２は通常空間とシンクロナスダイナミック型ＲＡＭに、ＣＳ３は通常空間とシンクロナスダイナミック型ＲＡＭ、ダイナミック型ＲＡＭ、擬似スタティック型ＲＡＭにそれぞれ指定して使用できる。
【００５５】
キャッシュ制御の空間としては、キャッシュパージのための前記物理空間に対応した連想パージ空間（１２８Ｍバイト）、アドレスアレイ（タグアドレス）を読み書きするためのアドレスアレイリード／ライト空間（１２８Ｍバイト）、データアレイを強制的に読み書きするためのキャッシュ強制リード／ライト空間が設けられている。
【００５６】
この他、空間ごとにバス幅（８ビット、１６ビット、または３２ビット）を選択可能にされる。空間に対応した制御信号出力ができる。ウェイト制御部では、空間ごとにウェイトステートの挿入を制御できる。また、高速の内部バス（第２のバス）と低速の周辺バス（第３のバス）とではバスサイクルがことなるので、内部バスの信号を周辺バスに転送するとき及び周辺バスの信号を内部バスに転送するときには、ウェイトを挿入して同期化を図るものである。
【００５７】
メモリ制御部では、リフレッシュ機能が設けられ、ＣＡＳビフォワーＲＡＳリフレッシュとセルフリフレッシュが用意されている。リフレッシュ用カウンタのクロックセレクトによりリフレッシュ間隔を設定できるようにされる。
【００５８】
ダイナミック型ＲＡＭを直結できるインターフェイスを備えている。つまり、ロウアドレス／カラムアドレスのマルチプレクス出力と、リード時のバースト転送、連続アクセスに対する高速ページモード、連続しない同一ロウアドレスアクセスに対するＲＡＳダウンモード、及びＲＡＳプリチャージタイム確保用ＴＰサイクル発生が可能とされる。また、シンクロナスダイナミック型ＲＡＭを直結できるインターフェイスを備えている。ロウアドレス／カラムアドレスのマルチプレクス出力と、バーストリード、シングルライトによるメモリアクセスと、バンクアクティブモードによるカラム連続アクセスが可能にされる。
【００５９】
上記ダイナミック型ＲＡＭやシンクロナスダイナミック型ＲＡＭの制御のために必要なアドレスストローブ信号／ＲＡＳ、／ＣＡＳやシンクロナスダイナミック型ＲＡＭやダイナミック型ＲＡＭに対するモード設定のための制御信号の発生は、メモリ制御信号発生回路ＭＣＴＧにより行われる。つまり、エリア制御部において、ダイナミック型ＲＡＭ又はシンクロナスダイナミック型ＲＡＭが割り当てられた空間に対するアクセスであることを検知すると、それに応じで上記制御信号が発生される。また、シンクロナスダイナミック型ＲＡＭに対するモード設定は、後に説明するようにＣＰＵが特定のアドレスをアクセスすると、それをエリア制御部で検知し、メモリ制御信号発生回路に起動をかけてモード設定の制御信号を発生せさる。
【００６０】
バス使用権コントローラでは、前記端子ＭＤ５によるハイレベル／ロウレベルの入力により、マタタ／スレーブモードの切り換えが行われる。マスタモードのときには、／ＢＲＬＳと／ＢＧＲにより外部からのバス解放要求を受け、バス使用許可信号を出力する。スレーブモードのときには、上記同じ端子を／ＢＡＣＫと／ＢＲＥＱとして用いる。つまり、バス使用権要求信号を出力し、バス使用許可信号を受けてマスタ側のバスをアクセスする。
【００６１】
図７において、エリア制御部に対応して設けられたＢＣＲ１とＢＣＲ２は、バスコントロールレジスタである。ウェイト制御部に対応して設けられたＷＣＲは、ウェイトステートコントロールレジスタである。メモリ制御部に対応して設けられたＭＣＲは、個別メモリコントロールレジスタである。ＲＴＣＳＲは、リフレッシュコントロール／ステータスレジスタである。ＲＴＣＮＴは、リフレッシュタイマカウンタである。ＲＴＣＯＲは、リフレッシュタイムコンスタントレジスタである。ＢＣＲ１の１ビットを読み出すことにより前記端子ＭＤ５の入力値を読み出すことができ、ソフトウェアがマスターモードかスレーブモードかの識別を行うことができる。
【００６２】
図８には、バスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦによるシンクロナスダイナミック型ＲＡＭ（以下、ＳＤＲＡＭという）との接続例を説明するためのブロック図が示されている。同図には、基本的なメモリとしてスタティック型ＲＡＭ（以下、ＳＲＡＭという）の接続例も合わせて示されている。
【００６３】
図９には、上記ＳＤＲＡＭのバーストリード動作を説明するためのバスサイクル波形図が示されている。なお、同図では省略されているが、クロックイネーブル信号ＣＫＥはハイレベルにされて、ＳＤＲＡＭにはクロックＣＫＩＯが入力されている。このクロックＣＫＩＯに対して、中央処理装置ＣＰＵのクロックφは、位相が９０°遅れるようにされている。言い換えるならば、中央処理装置ＣＰＵ側からみれば、ＳＤＲＡＭのクロックは位相が９０°進められている。このような位相関係のクロックを形成するために、前記クロック発生回路では、倍周回路によりクロックφの４倍の周波数の基本クロックを形成しておいて、それを１／４分周してシステムクロックφを形成するとともに、上記９０°位相がずれたＳＤＲＡＭ用のクロックＣＫＩＯを形成している。／ＢＳはバスサイクルをモニタするためのストローブ信号でありＳＤＲＡＭには接続されない。
【００６４】
最初のサイクルＴｒでは、ＳＤＲＡＭが割り当てられた空間に対応した信号／ＣＳｎがロウレベルにされ、ロウアドレスストローブ信号／ＲＡＳがロウレベルにされてロウアドレスが取り込まれる。次のサイクルＴc1では、カラムアドレスストローブ信号／ＣＡＳがロウレベルにされてカラムアドレスが取り込まれる。これと同期して／ＢＳもロウレベルにされる。このように中央処理装置ＣＰＵ側からクロックφの立ち上がりエッジに同期して出力される信号／ＣＳｎ、／ＲＡＳや／ＣＡＳ及びアドレスに対して、ＳＤＲＡＭにおいてクロックＣＫＩＯの立ち上がりエッジに同期して上記各信号を取り込むものであり、上記９０°の位相のずれによって十分な動作マージンを確保することができる。つまり、ＳＤＲＡＭにおいては、十分なセットアップ時間とホールド時間とを持って外部からの信号を取り込みことができる。
【００６５】
３番目のサイクルＴc2では、／ＣＡＳと／ＢＳがハイレベルにリセットされる。そして、４番目以降Ｔd1〜Ｔd4の４サイクルにわたってＳＤＲＡＭからデータＤ３１〜Ｄ０が連続して読み出される。このようなバーストリードによって、４×４＝１６バイトのデータを読み出すことができる。
【００６６】
図１０には、上記ＳＤＲＡＭのシングルライト動作を説明するためのバスサイクル波形図が示されている。最初のサイクルＴｒでは、ＳＤＲＡＭが割り当てられた空間に対応した信号／ＣＳｎがロウレベルにされ、ロウアドレスストローブ信号／ＲＡＳがロウレベルにされてロウアドレスが取り込まれる。また、書き込み動作を指示する信号ＲＤ＊／ＷＲがロウレベルにされる。次のサイクルＴc1では、カラムアドレスストローブ信号／ＣＡＳがロウレベルにされてカラムアドレスが取り込まれる。これと同期して／ＢＳもロウレベルにされ、データＤ３１〜Ｄ０が取り込まれ、選択されたメモリセルに書き込みが行われる。このように２サイクルで４バイトの書き込みが行われる。
【００６７】
図１１には、基本バスサイクルを説明するための波形図が示されている。この基本バスサイクルにより、例えば上記ＳＲＡＭやＲＯＭ等のメモリアクセスが行われる。基本バスサイクルでは、Ｔ１とＴ２のような２ステートにより行われる。同図では、／ＲＤによるリード動作の場合と／ＷＥｎによるライト動作の場合が合わせて示されている。
【００６８】
図１２には、バスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦによるダイナミック型ＲＡＭ（以下、ＤＲＡＭという）との接続例を説明するためのブロック図が示されている。同図のＤＲＡＭは、×１６ビット構成のものであり、ＣＡＳ２本方式（／ＵＣＡＳ＊／ＬＣＡＳ）による上側と下側バイトアクセスが可能にされる。
【００６９】
図１３には、上記ＤＲＡＭの高速ページモードを説明するためのバスサイクル波形図が示されている。高速ページモードでは、ロウアドレスを固定しておいて、言い換えるならば、ワード線を選択状態にしておいて、カラムアドレスストローブ信号／ＣＡＳに同期してカラムアドレスを順次に入力してデータの読み出し又は書き込みを連続的に行うものである。この場合、前記ブレイクコントローラＵＢＣに設けられたＲowアドレスコンパレータからのヒット信号Ｈitにより、ロウ系のリセット動作を省略して自動的に高速ページモードにすることができる。同様な動作をＳＤＲＡＭにおいても行うようにすることができる。
【００７０】
図１４には、バスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦによる擬似スタティック型ＲＡＭ（以下、ＰＳＲＡＭという）との接続例を説明するためのブロック図が示されている。シングルチップマイクロコンピュータＭＣＵ側の出力／ＲＡＳ＊／ＣＥをＰＳＲＡＭのチップイネーブル端子／ＣＥに接続し、ＭＰＵ側の出力／ＣＡＳ＊／ＯＥをＰＳＲＡＭの出力イネーブル＊リフレッシュ制御端子／ＯＥ＊／ＲＦＳＨに接続する。ＰＳＲＡＭライトイネーブル端子／ＷＥはＳＲＡＭと同様にＭＣＵの端子／ＷＥｊに接続される。そして、ＳＲＡＭのチップセレクト端子／ＣＳにはＭＣＵの端子／ＣＳｎが供給される。すなわち、ＰＳＲＡＭは前記の空間分割によりＣＳ３空間に割り当てられ、このときのＳＲＡＭはそれ以外の空間に割り当てられる。
【００７１】
図１５には、この発明に係るシングルチップマイクロコンピュータを用いてマルチプロセッサ接続した場合の一実施例のブロック図が示されている。この実施例のシングルチップマイクロコンピュータＭＣＵは、モード設定端子ＭＤ５にロウレベル／又はハイレベルを入力することにより、マスタモードとスレーブモードに設定することができる。この機能を利用し、同じ２つのシングルチップマイクロコンピュータの一方をマスタモードにし、他方をスレーブモードにしてマルチプロセッサシステムを構成することができる。
【００７２】
端子ＭＤ５にハイレベル（“１”）が入力されたものはスレーブモードのシングルチップマイクロコンピュータＳ−ＭＣＵとされる。端子ＭＤ５にロウレベル（“０”）が入力されたものはマスタモードのシングルチップマイクロコンピュータＭ−ＭＣＵとされる。マスタ側Ｍ−ＭＣＵは、メインバスを介してメインメモリ等の周辺ＬＳＩが接続される。
【００７３】
すなわち、通常のマイクロコンピュータシステムではシステム内に構築されたメインバスには、主記憶メモリや拡張メモリなど高速メモリをアクセスするメモリ制御ユニット、主記憶メモリとしてのＤＲＡＭやＳＤＲＡＭ，基本制御プログラムが格納されたＲＯＭ、先端にキーボードが接続されたキーボードコントローラ等によって構成される。さらに、表示アダプタが上記メインバスに接続され、その先端にはＣＲＴ又はＬＣＤ等のディスプレイが接続されている。そして、上記メインバスにはパラレルポート，マウス等のシリアルポート、フレキシブルディスクドライブ、上記メインバスよりハードディスクインターフェイスに変換するバッファコントローラが接続される。また、上記メモリ制御ユニットからのバスと接続されて拡張ＲＡＭ及び主記憶メモリ等が接続される。同図では、これらを簡略化してメインメモリとしてＳＤＲＡＭのみが設けられる例が示されている。
【００７４】
スレーブ側とされたＳ−ＭＣＵは、特に制限されないが、ローカルバスが設けられ、そこにローカルメモリ等のローカル周辺ＬＳＩが必要に応じて設けられる。このローカル周辺ＬＳＩ等は省略できる。そして、バスバッファを介してＳ−ＭＣＵ側のアドレス、データ及び制御信号はメインバス側の対応する信号線に接続される。そして、上記のようなモード設定に対応してＳ−ＭＣＵ側の／ＢＲＥＱとして用いられる端子がＭ−ＭＣＵの／ＢＲＬＳとして用いられる端子に接続され、Ｍ−ＭＣＵ側の／ＢＧＲとして用いられる端子がＳ−ＭＣＵの／ＢＡＣＫとして用いられる端子に接続される。
【００７５】
上記Ｍ−ＭＣＵから出力される信号／ＢＧＲが上記バスバッファの出力イネーブル端子／ＯＥ及びゲート端子／Ｇにも入力される。これにより、Ｓ−ＭＣＵがメインバスの使用許可を受けると上記バスバッファが活性化されてスレーブ側Ｓ−ＭＣＵのアドレス信号をメインバス側に供給して、メインバス上の周辺ＬＳＩ等のアクセスが可能にされる。
【００７６】
このとき、Ｍ−ＭＣＵから出力され、Ｓ−ＭＣＵに入力されるクロックＣＫＩＯは、前記のＳＤＲＡＭをアクセスしたときのようにＳ−ＭＣＵの内部クロックφに対して位相が９０°進められたものとすることにより、上記バスバッファを通してメインバス側に供給する信号伝達の動作マージンを拡大させることができる。つまり、上記のような位相差の設定により、ＳＤＲＡＭをアクセスするときと同様に、ラッチ付バスバッファを通して伝達される信号のセットアップ時間及びホールド時間を十分に確保することができる。
【００７７】
この実施例では、１つのシングルチップマイクロコンピュータがモード設定によりマスタモード又はスレーブモードとして選択的に使用でき、しかも同じ端子をマスタ用とスレーブ用に切り換えて使用するために、端子数が減らすことができる。
【００７８】
図１６には、Ｓ−ＭＣＵからメインバス上のＳＤＲＡＭをアクセスする場合のタイミング図が示されている。スレーブ側から／ＢＲＥＱを出力し、メイン側からバス使用許可信号により／ＢＡＣＫがロウレベルにされると、前記ＳＤＲＡＭをアクセスする場合のようにロウアドレス（ＲＯＷ）とカラムアドレス（ＣＯＬＵＭＮ）を出力する。マスタ側では、ラッチ付バスバッファを通して出力される分（１クロック分）だけ遅れてアドレスとコマンドが伝えられ、読み出されたデータもラッチ付バスバッファを通した分だけ遅れてスレーブ側に伝えられる。
【００７９】
図１７には、この発明に係るシングルチップマイクロコンピュータに内蔵されるキャッシュメモリの一実施例のブロック図が示されている。同図は、中央処理装置ＣＰＵ及びバスステートコントローラも合わせて示されている。この実施例のキャッシュメモリは、アドレス入力から該当するデータの出力を１．５サイクルにより実行する。データのリプレースアルゴリズムはＬＲＵ（Least Recently Used)法を用いる。
【００８０】
キャッシュメモリの回路構成は、大きくわけてキャッシュタグ（アドレスアレイ）とキャッシュデータ（データアレイ）及びキャッシュコントローラから構成される。キャッシュタグはアドレスタグと呼ばれるアドレスの一部を格納しており、キャッシュデータはキャッシュタグに格納されているアドレスタグに対応するデータが格納されている。これにより、上記キャッシュタグに格納されているアドレスの一部が中央処理装置ＣＰＵからのそれに対応するアドレスとが一致すると、キャッシュタグからヒット信号が出力されて、並行して選択されているキャッシュデータから読み出されているデータが中央処理装置ＣＰＵに取り込まれる。もしも、ミスヒットなら、前記ブレークコントロールＵＢＣ及び外部バスインターフェイスを通して外部のメインメモリをアクセスすることとなる。
【００８１】
図１７において、キャッシュコントロールレジスタＣＣＲは、キャッシュイネーブル、命令フィル禁止、データフィル禁止、２ウェイモード、ウェイ指定等の制御ビットを持っており、動作モードの設定に使用される。
【００８２】
図２０には、この発明に係るキャッシュメモリの動作概念図が示されている。アドレス信号はＡ３１〜Ａ０の３２ビットから構成される。アドレスＡ３〜Ａ０の４ビットに対応した１６バイトが１ラインとされる。ラインは１つの連想アドレスに関連づけられたデータの塊である。アドレス信号Ａ９〜Ａ４の６ビットにより６４エントリを持つようにされる。そして、アドレス信号Ａ２８〜Ａ１０までの１９ビットのアドレス信号がタグアドレスとしてキャッシュタグに書き込まれている。アドレス信号Ａ３１〜Ａ２９までの３ビットは、アクセス空間指定に用いられる。
【００８３】
０〜６３からなる６４エントリに対応してＬＲＵ情報が設けられる。ＬＲＵ情報は、６ビットから構成される。ＬＲＵリプレースの判定に使用する過去のアクセスに関する情報は６ビットにより表される。６ビットで表される組み合わせは、６４通りあるが、初期値を０として２４通りの組み合わせが使用される。そして、最下位ビットが２ウェイとして使用するときに利用されるよう組み合わされている。つまり、４ウェイのうちの２ウェイを内蔵ＲＡＭとして使用したときには、ミスヒットによるリプレースに使用されるのは最下位ビットが０ならばウェイ３を、１ならばウェイ２を使用するようにされる。このことを満足するような２４通りの組み合わせにより、４ウェイモードのときのＬＲＵ情報の書き換えが行われる。
【００８４】
上記キャッシュタグから読み出されたタグアドレスと中央処理装置ＣＰＵから出力されるＡ２８〜Ａ１０からなる１９ビットのアドレス信号とが一致し、バリッドビットＶが１であるときには、ヒット信号が出力されてキャッシュデータから１６バイトのデータが読み出される。この１６バイトの中の４バイト（３２ビット）が２ビットのアドレスＡ３とＡ２により指定されて中央処理装置ＣＰＵに読み出される。
【００８５】
図１８には、この発明に係るキャッシュメモリの一実施例のブロック図が示されている。上記キャッシュタグは、デコーダ、アドレスアレイ及びコンパレータから構成される。アドレスアレイは、４ウェイに対応して４つからなり、Ａ９−Ａ４のアドレスが入力されて、６４通りのエントリの１つが選ばれる。各エントリは、アドレスタグに対応した１９ビットとアドレス信号と、１ビットのバッリドビットを記憶するようにされる。それ故、１つのウェイに対応したアドレスアレイは、（１９＋１）×６４のようにされる。４つのウェイに対応して６×６４のＬＲＵ情報の記憶部が共通に設けられる。
【００８６】
パルスφ１によりアドレス信号を保持するラッチ回路は、中央処理装置ＣＰＵがパイプライン動作によりアドレス信号を出力するので、ミスヒットしたときのアドレスを記憶しておくために利用される。アドレスアレイから読み出されたアドレスタグと、アドレス入力の対応する１９ビットのアドレス信号Ａ２８−Ａ１０は、コンパレータに入力される。
【００８７】
４つのウェイに対応して設けられた４つのコンパレータのヒット信号は、キャッシュコントローラに供給される。また、上記６４のエントリのうち選択されたものに対応したＬＲＵ情報は、キャッシュコントローラに供給される。もしも、４つのウェイからヒット信号が出力されないときのリプレースに使用される１つのウェイが上記ＬＲＵ情報により決められる。上記アドレスアレイから読み出されたアドレスタグは、セレクタにより診断用データとして出力される。
【００８８】
上記アドレス入力のうちのアドレス信号Ａ９−Ａ３からなる７ビットのアドレス信号は、データアレイのデコーダに入力される。データアレイは、３２ビット×２×１２８からなる。アドレス信号Ａ９−Ａ４が前記６４エントリに対応しており、アドレス信号Ａ３は、１ライン（３２×４）中の上位３２×２ビットのデータ又は下位の３２×２ビットのデータを選択するようにされる。このようにデータアレイの構成を縦長にすることにより、後述するような相補データ線の数を減らして３２ビットからなる単位のデータの出力を簡単にする。
【００８９】
この実施例では、特に制限されないが、キャッシュコントローラからヒット信号が上記データアレイのデコーダに入力される。これにより、デコーダにおいて４つのウェイの中のヒット信号に対応したウェイに対してのみワード線の選択動作を行うようにして低消費電力化を図るものである。さらに、上記ヒット信号に対応したデータアレイのセンスアンプのみを動作させる。センスアンプにおける消費電流が比較的大きいから、上記ヒット信号をセンスアンプの制御にのみ使用してもよい。すなわち、データアレイのデコーダは、高速読み出しのために４つのウェイのワード線を選択状態にして、メモリセルからの読み出し動作を先行させ、ヒット信号を待ってセンスアンプを動作させるようにして、データアレイからの読み出しを高速にするものであってもよい。上記ヒット信号に対応したウェイから読み出された３２×２ビットのデータは、キャッシュコントローラを通して出力されたアドレス信号Ａ２により選択されるセレクタを通して３２ビットのデータが出力される。
【００９０】
上記アドレスタグのコンパレータは、タイミング信号φ１により動作し、これに対してデータアレイの出力セレクタは、上記タイミング信号φに対して半サイクル遅れたタイミング信号φ２により動作するようにされる。それ故、上記ヒット信号よるデータアレイのワード線選択やセンスアンプの制御を行うようにしても問題ない。出力部に設けられたアライナは、出力データ幅に対応して８ビット、１６ビットの単位でデータを出力するときに使用される。
【００９１】
上記４ウェイのうち、ウェイ０と１を内蔵ＲＡＭとして使用することができる。このモードでは、ウェイ０と１に対応したアドレスタグのヒット信号が無効にされる。このモードでのウェイ０と１のアクセスは、データアレイの強制リード・ライト機能により行われる。すなわち、強制リード・ライト機能では、キャッシュコントローラによって、ヒット信号に変わる選択信号によりウェイを選択し、データのリード・ライトを行うようにするものである。
【００９２】
上記のように２つのウェイ１と２を内蔵ＲＡＭとして使用したときには、６ビットからなるＬＲＵ情報の書き込みは、４ウェイと同じようにするが、リプレースウェイの選択は、そのうちの最下位１ビットのみを参照して、０ならばウェイ３を選択し、１ならばウェイ２を選択する。このように２ウェイモードと４ウェイモードとで、ＬＲＵ情報の特定ビットを共通にすることにより、リプレースアルゴリズムの簡素化を図ることができる。
【００９３】
図１９には、データアレイの一実施例の回路図が示されている。同図には、２対の相補データ線、２本のワード線とそれらの交点に設けられる４つのメモリセル及びその出力選択とセンスアンプが代表として例示的に示されている。同図において、Ｐチャンネル型ＭＯＳＦＥＴは、そのチャンネル部分に矢印が付加されることによって、Ｎチャンネル型ＭＯＳＦＥＴと区別される。
【００９４】
代表として例示的に素子に回路記号が付されているように、Ｐチャンネル型ＭＯＳＦＥＴＱ１，Ｑ２とＮチャンネル型ＭＯＳＦＥＴＱ３，Ｑ４からなる２つのＣＭＯＳインバータ回路の入力と出力とが互いに交差接続されてラッチ回路とされる。上記ラッチ回路の一対の入出力ノードと相補データ線ＤＬ０，／ＤＬ０との間には、Ｎチャンネル型の伝送ゲートＭＯＳＦＥＴＱ５，Ｑ６が設けられる。これらの伝送ゲートＭＯＳＦＥＴＱ５，Ｑ６のゲートは、ワード線Ｗ０に接続される。他のメモリセルも前記同様なＣＭＯＳスタティック型メモリセルにより構成される。
【００９５】
相補データ線ＤＬ０，／ＤＬ０には、Ｎチャンネル型のプリチャージＭＯＳＦＥＴＱ７，Ｑ８が設けられる。これらのＭＯＳＦＥＴＱ７，Ｑ８のゲートにはプリチャージ信号ＰＣが供給される。また、相補データ線ＤＬ０，／ＤＬ０の間には、イコライズ用のＣＭＯＳスイッチが設けられる。ＣＭＯＳスイッチは、並列形態に接続されたＮチャンネル型ＭＯＳＦＥＴＱ９とＰチャンネル型ＭＯＳＦＥＴＱ１０からなり、Ｎチャンネル型ＭＯＳＦＥＴＱ９のゲートにはデータ線イコライズ信号ＤＥＱが供給され、Ｐチャンネル型ＭＯＳＦＥＴＱ１０のゲートには上記信号ＤＥＱがインバータ回路Ｎ１により反転されて供給される。上記イコライズＭＯＳＦＥＴは、Ｎチャンネル型ＭＯＳＦＥＴ又はＰチャンネル型ＭＯＳＦＥＴのみから構成してもよい。
【００９６】
上記２対の相補データ線ＤＬ０，／ＤＬ０とＤＬ１，／ＤＬ１は、ＣＭＯＳスイッチを通して１つのセンスアンプに接続される。すなわち、データ線ＤＬ０は並列形態に接続されたＮチャンネル型ＭＯＳＦＥＴＱ１１とＰチャンネル型ＭＯＳＦＥＴＱ１３を介し、データ線ＤＬ１は同様に並列形態に接続されたＮチャンネル型ＭＯＳＦＥＴＱ１６とＰチャンネル型ＭＯＳＦＥＴＱ１８を介してそれぞれ共通データ線ＣＤＬ０に接続される。データ線／ＤＬ０は並列形態に接続されたＮチャンネル型ＭＯＳＦＥＴＱ１２とＰチャンネル型ＭＯＳＦＥＴＱ１４を介し、データ線／ＤＬ１は同様に並列形態に接続されたＮチャンネル型ＭＯＳＦＥＴＱ１７とＰチャンネル型ＭＯＳＦＥＴＱ１９を介してそれぞれ共通データ線／ＣＤＬ０に接続される。これらのＣＭＯＳスイッチには、選択信号ＳＥＬが交差的に供給されることにより、相補データ線ＤＬ０，／ＤＬ０又はＤＬ１，／ＤＬ１のいずれか一方が選択される。上記信号ＳＥＬは、例えば前記アドレス信号Ａ２により形成される。
【００９７】
共通データ線ＣＤＬ０，／ＣＤＬ０には、ＣＭＯＳラッチ回路からなるセンスアンプの入力に接続される。センスアンプは、Ｐチャンネル型ＭＯＳＦＥＴＱ２２とＱ２３とＮチャンネル型ＭＯＳＦＥＴＱ２４とＱ２５からなる２つのＣＭＯＳインバータ回路の入力と出力とが交差接続されてラッチ回路にされる。そして、上記Ｐチャンネル型ＭＯＳＦＥＴＱ２２とＱ２３のソースには、Ｐチャンネル型のスイッチＭＯＳＦＥＴＱ２６を介して動作電圧ＶＣＣが与えられ、上記Ｎチャンネル型ＭＯＳＦＥＴＱ２４とＱ２５のソースには、Ｎチャンネル型のスイッチＭＯＳＦＥＴＱ２７を介して回路の接地電位が与えられる。上記Ｐチャンネル型ＭＯＳＦＥＴＱ２６のゲートには、センスアンプ動作信号／ＳＡＣが供給され、Ｎチャンネル型ＭＯＳＦＥＴＱ２７のゲートには、センスアンプ動作信号ＳＡＣが供給される。
【００９８】
上記センスアンプの入力である共通データ線ＣＤＬ０，／ＣＤＬ０には、イコライズ用のＮチャンネル型ＭＯＳＦＥＴＱ２０とＰチャンネル型ＭＯＳＦＥＴＱ２１が並列形態に設けられる。上記Ｎチャンネル型ＭＯＳＦＥＴＱ２０のゲートには、センスアンプイコライズ信号ＳＥＱが供給され、Ｐチャンネル型ＭＯＳＦＥＴＱ２１のゲートには、上記信号ＳＥＱがインバータ回路Ｎ３により反転されて供給される。この実施例のセンスアンプは、高感度で正帰還ループを持つラッチ回路により構成されているので、上記信号／ＳＡＣとＳＡＣにより動作開始前に上記イコライズＭＯＳＦＥＴＱ２０とＱ２１により入力レベルを一致させておいて、共通データ線ＣＤＬ０と／ＣＤＬ０の電位差が選択されたメモリセルからの記憶情報に従った所定電位を持つようにされると、上記信号信号／ＳＡＣとＳＡＣによりそれを増幅して共通データ線ＣＤＬ０と／ＣＤＬ０をハイレベル／ロウレベルに増幅する。これらの信号は、図示しない読み出し経路を通して出力される。なお、上記イコイズ用ＭＯＳＦＥＴは、Ｎチャンネル型ＭＯＳＦＥＴ又はＰチャンネル型ＭＯＳＦＥＴのみにより構成してもよい。
【００９９】
上記のようなＣＭＯＳラッチ形態のセンスアンプを用いた場合には、上記増幅動作によって共通データ線ＣＤＬ０と／ＣＤＬ０の電位がハイレベル／ロウレベルになると、ＣＭＯＳラッチ回路において定常的な直流電流が流れなくなるので、低消費電力化を図ることができる。そして、前記のようにヒット信号により上記センスアンプ動作信号ＳＡＣと／ＳＡＣを発生させるようにすれば、４つのウェイのうち１つのウェイに対応したセンスアンプのみが動作することとなって、消費電流をほぼ１／４のように大幅に低減できる。
【０１００】
上記共通データ線ＣＤＬ０と／ＣＤＬ０は、書き込み選択信号ＷＳによりスイッチ制御されるＮチャンネル型ＭＯＳＦＥＴＱ２８とＱ２９を介してライトアンプに接続される。ライトアンプは、インバータ回路Ｎ４〜Ｎ７からなり、入力データＤ０を受けるＣＭＯＳインバータ回路Ｎ４の出力信号が駆動用インバータ回路Ｎ７と、反転インバータ回路Ｎ５及び駆動インバータ回路Ｎ６を通して相補の書き込み信号とされる。この相補の書き込み信号は、上記スイッチＭＯＳＦＥＴＱ２８とＱ２９を通して共通データ線ＣＤＬ０，／ＣＤＬ０に伝えられる。
【０１０１】
以上のように１つのウェイのデータアレイは、上記のような２対の相補データ線に対して１つのセンスアンプ、１つのライトアンブが３２組設けられる。これにより、メモリアレイ部では、３２×２の相補データ線と１２８本のワード線により構成され、３２ビットのデータの入出力が行われる。
【０１０２】
図２１には、この発明に係るシングルチップマイクロコンピュータに内蔵される上記直接メモリアクセス制御装置ＤＭＡＣの一実施例のブロック図が示されている。この実施例では、ＣＨ０とＣＨ１の２つのチャンネルを持つようにされる。上記チャンネルＣＨ０とＣＨ１に対応して、それぞれ２つの回路ブロックが設けられる。各回路ブロックの記号に付された数字０と１は、上記チャンネルＣＨ０とＣＨ１に対応した回路である。
【０１０３】
上記のような２つのチャンネルＣＨ０とＣＨ１に対応して設けられる回路は、以下の通りである。ＳＡＲ０，１は、ソース・アドレス・レジスタである。これらのＳＡＲ０と１は、それぞれが３２ビットからなり、ＤＭＡ転送元のスタート・アドレスが設定される。これらのＳＡＲ０，１は、動作中若しくは転送終了後に別途設定されたアドレス計算条件に従って、常に次の転送アドレス値を保持するようにされる。
【０１０４】
ＤＡＲ０，１は、デステイネーション・アドレス・レジスタであり、これらのＤＡＲ０，１は、それぞれが３２ビットからなり、ＤＭＡ転送先のスタート・アドレスが設定される。これらのＤＡＲ０，１は、動作中若しくは転送終了後に別途設定されたアドレス計算条件に従って、常に次の転送アドレス値を保持するようにされる。
【０１０５】
ＴＣＲ０，１は、トランスファー・カウント・レジスタであり、これらのＴＣＲ０，１は、それぞれが３２ビットからなり、ＤＭＡ転送回数が設定され、動作中若しくは転送終了後は、残りの転送回数を保持するようにされる。オールゼロ(all"0")設定時は、２の２４乗回（最大転送回数）になる。ＶＣＲ０，１及びＶＣＲ２，３は、チャンネルＣＨ０と１に２本ずつが対応されたベクタレジスタである。各ＶＣＲ０〜ＶＣＲ３は、それぞれが８ビットから構成され、ＤＭＡＣの割り込みベクタアドレスが設定される。設定は中央処理装置ＣＰＵから行われ、割り込み発生時に中央処理装置ＣＰＵがベクタフェッチする。
【０１０６】
上記チャンネルＣＨ０とＣＨ１共通の回路ブロックとしては、次のものがある。ＤＭＡＯＲは、ＤＭＡ・オペレーション・レジスタであり、ＣＨＣＲ０と１は、上記ＤＭＡＯＲに対応して設けられたチャンネル・コントロール・レジスタである。ＡＵは、アドレス演算器であり、ＤＥＣはオールゼロ検出器付のデクリメンタである。そして、ＭＤＢ０〜３は、１２８ビット転送用４段データバッファである。このデータバッファＭＤＢ０〜４により、キャッシュメモリの１ラインに対応したデータ転送が行われ、ＳＤＲＡＭに対してバーストリードによって４サイクル×３２ビットのデータ転送が行われる。上記以外に、ＤＭＡ要求／選択レジスタ０，１や転送シーケンス制御回路、ホストインターフェイス、及び優先権制御回路等が設けられる。
【０１０７】
上記のようにキャッシュメモリの単位データ数、ＳＤＲＡＭのバーストリードによる読み出しデータ数及びＤＭＡＣのデータバッファとの間で整合性を採ることにより、ＤＭＡＣによるＳＤＲＡＭと他のメモリ又は周辺ＬＳＩとの間でのデータ転送を効率よく行うことができる。
【０１０８】
図２２には、この発明に係るＤＭＡＣとその周辺部の一実施例の概略ブロック図が示されている。この発明に係るシングルチップマイクロコンピュータの内部バスＢ２に接続される。このバスＢ２には、同図では省略されているが、前記のようなインターフェイスＯＢＩＦを介して外部バスＢ４に接続される外部メモリ等とキャッシュメモリや内部に設けられる周辺モジュールとの間でのデータ転送を行う。
【０１０９】
アドレスモードは、デュアルアドレスモードとシングルアドレスモードとがある。デュアルアドレスモードでは転送元と転送先のアクセスを２回のバスサイクルに分け、それぞれに対してアドレスを出力する。シングルアドレスモードでは、外部メモリに対してアドレッシングすると同時に外部Ｉ／Ｏデバイスを／ＤＡＣＫ信号によりアクセスし、ＤＭＡ転送を１バスサイクル間で行う。
【０１１０】
バスモードには、サイクルスチールモードとバーストモードがある。サイクルスチールモードでは、１語のＤＭＡ転送終了後、バス権を解放し、他のバスマスタにバス権を渡す。バーストモードでは、バス権を獲得すると、転送終了条件が満たされるまで連続して転送を続ける。ただし、外部リクエストモードのときに、／ＤＲＥＱ端子をレベルでサンプリングする場合には、端子に応じて転送を行う。
【０１１１】
転送要求は、外部要求、内蔵周辺モジュールからの要求、オートリクエストがある。外部要求は、／ＤＲＥＱ０端子によりチャンネルＣＨ０を、／ＤＲＥＱ１によりチャンネルＣＨ１を起動することができる。／ＤＥＱ０，１端子のサンプリングは立ち下がりエッジとレベルとを選択することができる。内蔵周辺モジュールからの要求には、内蔵ＳＣＩ０の受信データフルと、内蔵ＳＣＩの送信データ線エンプティとがある。これらの要求は、ＤＭＡ転送サイクルを起動することにより、自動的にクリアされる。オートリクエストは、ＤＭＡＣのチャンネルコントロールレジスタＣＨＣＲｎ（０，１）のＤＥビットをセットすることにより転送動作を開始するものである。
【０１１２】
ＤＭＡＣに同時に複数のチャンネルの転送要求がある場合、優先順位に従って転送チャンネルが決定される。優先順位には、優先順位固定モード、交代モードがある。優先順位固定モードでは、各チャンネル間の優先順位は変化しない。１又は０の２通りのチャンネルを固定的に優先順位にすることができる。交代モードでは、チャンネルＣＨ０とＣＨ１のチャンネル間で優先順位を交代するモードであり、優先順位を変更するタイミングは、ラウンドロビン方式でチャンネルＣＨ０又はチャンネルＣＨ１の転送が１転送単位（バイトあるいはワード）終了したときとされる。
【０１１３】
図２３には、除算器ＤＩＶＵの一実施例のブロック図が示されている。この実施例の除算器ＤＩＶＵは、符号付６４ビット÷３２ビット又は３２ビット÷３２ビットの除算を行い、３２ビットの商と３２ビットの余りを求めることができる。演算でオーバーフロー又はアンダフローが発生したときには、指定により中央処理装置ＣＰＵに対して割り込みを発生させることができる。
【０１１４】
同図において、ＪＲは除数レジスタであり、ＨＲＬ３２は３２ビット用被除数レジスタＬであり、ＨＲＨは被乗数レジスタＨ、ＨＲＬは被除数レジスタＬであり、２つ合わせて６４ビットの被乗数を入力することがきる。ＢＡＲは余りレジスタ、ＢＳＲは商レジスタである。ＣＯＮＴはコントロールレジスタであり、ＶＣＴは割り込みベクタレジスタである。この実施例の乗算器ＤＩＶＵは、中央処理装置ＣＰＵから上記被除数と除数が設定されると、除算を開始しておよそ３７サイクルにＢＳＲに商を、ＢＡＲに余りをセットして自動的に演算を終了する。もしも、オーバーフロー又はアンダフローが生じると、指定により内部割り込み信号が発生される。
【０１１５】
上記乗算器ＤＩＶＵは、内部バスＢ２から切り離された状態で約３８サイクルにわたって除算を行うものである。それ故、中央処理装置ＣＰＵ等は、内部バスを使用したデータ処理等を並行して行うことができる。
【０１１６】
図２４には、３次元物体を２次元からなる表示画面上に遠近法により表示するための３次元画像処理の概念を説明するための説明図が示されている。同図には、古代ギリシャ風の神殿を２次元画面上に表示させる例が示されている。
【０１１７】
神殿を特定する点ｐ１，ｐ２等は、神殿の持つ原点に対してｘ１，ｙ１及びｚ１やｘ２，ｙ２，ｚ２の座標を持っている。最初に行われるデータ処理は、上記各神殿を特定する点ｐ１，ｐ２等の固有の座標を、それを見る視点Ｐを原点とする新たな方向Ｘ’，Ｙ’及びＺ’軸に対応した座標に変化する。これが座標変換処理である。つまり、神殿をどの位置でどの角度から見るのかに対応して神殿を特定する各点の座標が相対的座標に置き換えられる。
【０１１８】
（式１）
┌─T00 T01 T02 T03 ─┐
│  T10 T11 T12 T13   │
[x1',y1',z1',1]=[x1,y1,z1,1]│                    │
│  T20 T21 T22 T23   │
└─T30 T31 T32 T33 ─┘
【０１１９】
上記式１において、 x1',y1',z1'は、神殿の点p1の変換された座標であり、x1,y1,z1は、神殿の持つ固有の原点に対応した座標である。上記式１の行列式から、x1'=x1・T00 ＋y1・T10 ＋z1・T20 ＋ 1・T30 のような積和演算により求めることができる。同様に、y1'=x1・T01 ＋y1・T11 ＋z1・T21 ＋ 1・T31 のよう求められ、z1'=x1・T02 ＋y1・T12 ＋z1・T22 ＋ 1・T32 のように求められる。
【０１２０】
上記のように座標変換点ｐ１はｐ１’のように座標変換された後に、点Ｐと上記各座標ｐ１’を結ぶ直線と表示画面Ｓと交わる交点の座標座標ｘ１”，ｙ１”が表示画面Ｓ上の点とされる。このため、座標ｘ１”，ｙ１”は、原点Ｐに対する２次元画面Ｓと上記神殿の相対座標ｐ１’との距離の割合により求められる。それ故、表示画面上の座標を求めるという遠近処理は、除算処理により行われることとなる。
【０１２１】
上記のようにして求められた各２次元画面上の座標は、画面Ｓ内にあるかその外にあるかの判定が行われ、２つの点が画面Ｓ内にあればそれを結ぶ直線となり、１つの点又は両方とも画面から外れたときには、画面Ｓを中心にして上下左右の４画面、斜め上下の４画面のいずれかに点が存在するかにより、画面Ｓを通過する線となるのか否かの判定が行われて、画面からはずれた点に対応した直線が引かれる。このような処理はクリップ（クリッピング）処理と呼ばれる。クリッピングでは、上記画面Ｓを中心とした上下左右、斜め上下の合計８画に点が存在するか否かの処理であるで、除算により求められた点ｘ１”，ｙ１”等と上記面を区切るＸとＹの境界アドレスと大小比較を繰り返すことにより実行される。
【０１２２】
ディジタル回路により行われる除算は、引算の繰り返しにより実施される。それ故、除算動作時間は必然的に長くなってしまう。すなわち、前記変換処理、遠近処理及びクリップ処理を従来のように順次に行うようにすると、１秒間に６０枚からなる動画を描こうとすると、従来のマイクロコンピュータでは精々アニメーション程度の動画しか描くことができない。立体的な映像を描く場合には、曲面を三角形の組み合わせにより表現するととなり、上記１／６０秒間に描くことができる三角形の数に比例して表現できる映像信号の緻密度が決まることとなる。２８．７ＭＨｚのような高い周波数のクロックで動作する、従来の高速なマイクロコンピュータにおいては、上記クリッピング処理を省略した場合、１／６０に描くことのできる三角形の数は５００〜９００程度である。上記三角形の数が５００程度でアニメーション程度の平面的な動画を描くことができるとされている。
【０１２３】
図２５には、この発明に係るシングルチップマイクロコンピュータを用いた３次元画像処理方法を説明するための信号処理図が示されている。同図では、３次元画像処理を座標変換処理、遠近処理、及びクリップ処理に分け、それを処理する各回路ブロックとの関係を時系列的に示している。
【０１２４】
この実施例では、上記画像処理において最も時間を費やすことととなる遠近処理と、座標変換処理及びクリップ処理とを並列的に行うようにするものである。ただし、処理の順序としては、前記のように１つの点に着目すると、並列的な処理が行われ無いので、クリップ処理を次のように１つ遅らせて行うようにするものである。
【０１２５】
中央処理装置ＣＰＵと乗算器ＭＵＬＴは、積和演算コマンドにより座標変換処理を行う。中央処理装置ＣＰＵが積和コマンドを取り込み、デコードするとそれが乗算器ＭＵＬＴに伝えられ演算を実行して乗算器ＭＵＬＴのレジスタには、前のデータに乗算されたデータが加算されて保持される。これにより、前記座標変換のための行列式の積和演算処理が行われる。上記中央処理装置ＣＰＵと乗算器ＭＵＬＴによりｎ番目の点について座標変換を行っている間、除算器ＤＩＶＵにおいては、１つ前に処理された座標ｎ−１の遠近処理を同時に並行して行うようにされる。
【０１２６】
中央処理装置ＣＰＵは、ｎ番目の座標変換処理が終わると、除算器ＤＩＶＵをアクセスして、その結果を取り込むとともに、上記変換が終了したｎ番目の座標について遠近処理を指示する。これにより、除算器ＤＩＶＵは、上記ｎ番目の座標データを受け取って除算動作を開始する。除算器ＤＩＶＵによるｎ番目の点に対する遠近処理と同時並行して、中央処理装置ＣＰＵは、上記遠近処理が終了したｎ−１番目の点について、クリップ処理を行う。このクリップ処理は、前記のようにデータの大小比較からなるものであるので、中央処理装置ＣＰＵに内蔵された比較機能によって前記のようなクリップ処理を行う。
【０１２７】
このｎ−１番目の点についてクリップ処理が終わると、中央処理装置ＣＰＵと乗算器ＭＵＬＴとは、ｎ＋１番目の点について座標変換動作を行う。以下、同様な動作の繰り返しにより、中央処理装置ＣＰＵと乗算器ＭＵＬＴによる座標変換及び中央処理装置ＣＰＵによるクリップ処理に対して、除算器ＤＩＶＵによる遠近処理とが同時並行して行うことができ、等価的に最も時間のかかる遠近処理を無くすことができる。この実施例のシングルチップマイクロコンピュータに設けられる除算器ＤＩＶＵは、１回の除算に約３８サイクルも費やすこととなる。これに対して、上記座標変換では、ｘ，ｙ，ｚの各点について、それぞれ４回の積和を行い、それぞれがパンプライン的に演算されるものである。また、クリップ処理は、８回の大小比較を行うものであるので、ほぼ上記除算処理と時間的に一致する。
【０１２８】
この実施例では、固定小数点による積和演算を行う。これに対応して除算動作も固定小数点方式による除算を行うものである。このように固定小数点方式を採る場合には、精度の補償はない反面浮動小数点方式に必要な正規化処理が省略できるので、上記乗算や除算の速度を速くできる。精度に関しては、ソフトウェアにより手当てを行うようにすることができる。つまり、３次元画像処理における遠近処理以外には、マイクロコンピュータでの除算動作は必要ないといっても過言ではない。それ故、この実施例のシングルチップマイクロコンピュータでは、最も使用頻度の高い３次元画像処理を想定してシステムを構成するものである。
【０１２９】
この実施例のシングルチップマイクロコンピュータを前記のような２８．７ＭＨｚにより動作させ、しかも３次元画像処理を上記のように座標変換とクリップ処理に対して遠近処理をそれらと同時並行的に行う方式を採ることにより、１／６０秒間に描くことのできる三角形の数は、約２４００のように大幅に向上させることができる。この数値は、実写に近い動画を画面上に描くことができる能力を意味している。
【０１３０】
上記数値（約２４００）には、前記同様にクリップ処理が無い場合を示している。この実施例の３次元演算処理方式では、クリップ処理を入れても座標変換処理に比べて遠因処理に時間を費やすこととなるので、その差分の時間にクリップ処理の大半を割り当てることができるからクリップ処理が無い場合に対して若干処理能力が低下するに止まる。これに対して、従来のように座標変換、遠近処理及びクリップ処理の順序に行うものでは、クリップ処理に要する時間だけ確実に処理することのできる三角形の数を減ってしまう。このため、この発明に係る３次元画像処理方式と従来のマイクロコンピュータを用いた３次元画像処理方法とをクリップ処理を含ませて比較すると、その処理能力差はいっそう拡大するものである。
【０１３１】
この発明に係る３次元画像処理方式では、前記図１のようなシングルチップマイクロコンピュータにおいて、除算器も乗算器と同じ第１バスに接続されていてもよい。また、バス構成は前記のようにバスを分割するものの他１つのバスにより構成するものであってもよい。あるいは、除算器を外部ＬＳＩとして設ける構成としてもよい。このように、上記のような３次元画像処理に用いられるマイクロコンピュータのシステムは、種々の実施形態を採ることができるものである。そして、乗算器や除算器は、浮動小数点方式のものであってもよい。
【０１３２】
この発明に係るシングルチップマイクロコンピュータを家庭用ゲーム機に使用するとき、グラフィックス処理の高度化などに伴いプログラムの容量が増大し、プログラム容量が数Ｍバイトに達することも予測される。アクセス頻度の高い命令やデータに限っても、内蔵したＲＯＭ／ＲＡＭや内蔵キャッシュメモリでは容量が足りない。このため、外部メモリ・インターフェイスの速度が性能に大きく影響することになる。
【０１３３】
そこで、この実施例にかかるシングルチップマイクロコンピュータでは、前記のように、シンクロナスＤＲＡＭと容量４Ｋバイトの４ウエイ・セット・アソシアティブ方式のキャッシュとを組み合わせて平均アクセス時間の短縮を図るようにするものである。そして、内蔵キャッシュメモリは、前述のようにＲＡＭとして機能させることも可能である。
【０１３４】
４ウエイ・セット・アソシアティブとは、あるアドレスのデータに対してキャッシュメモリ内に格納可能なエントリが４カ所存在するキャッシュ・マッピング方式である。直接マッピングはアドレスに対して格納するエントリが一意に決定される。フルアソシアティブは全てのエントリが格納可能となる。そして、セット・アソシアティブはウエイの数だけ格納可能なエントリが存在する。直接マッピング、セット・アソシアティブ、フルアソシアティブとなるに従いキャッシュメモリの置き換えによって、近い将来アクセスされる確率の高いエントリがキャッシュから追い出される確率は低くなる。フルアソシアティブ・キャッシュのアドレス・アレイは連想メモリを用いなければならないのに対し、直接マッピングおよびセット・アソシアティブのアドレス・アレイは、普通のメモリと比較回路の組み合わせで実現できる。
【０１３５】
家庭用ゲーム機や携帯型情報通信機器は、パーソナルコンピュータやワークステーションに比べて製品単価が安い。このため、家庭用ゲーム機等に用いられるシングルチップマイクロコンピュータでは、チップそのものの価格はもとより、外付けする周辺回路も安価で済むようにする必要がある。低コストで平均アクセス時間（ＣＰＵが所望のデータを得るまでの平均時間）を短縮するために、前記のようにキャッシュメモリが内蔵される。
【０１３６】
上記中央処理装置ＣＰＵのクロック周波数を、前記のように２８．７ＭＨｚにしたとき、１サイクルに要する時間は３５ｎｓである。このため、ＲＡＳアクセス時間が６０ｎｓのＤＲＡＭの高速ページ・モードでは１サイクルごとの連続アクセスができない。ＤＲＡＭを２ウエイのインタリーブ構成にして、高速ページ・モードで交互にアクセスすれば、１サイクルを７０ｎｓに延ばすことができる。しかし、二つのウエイから交互に読み出すデータの衝突を回避するデータ・バッファのタイミング設計が難しい。また、データ・バッファでの遅延を考慮すると１サイクルごとの連続アクセスは事実上不可能である。
【０１３７】
そこで、シングルチップマイクロコンピュータにおいて、外部データ・バスの幅を６４ビットにすれば、２バンク構成の主記憶と直結できるようになり、データ・バッファが不要になる。その反面、ピン数が増加しパッケージ・コストが高くなる。また、ボンディング・パッドの間隔の制約からチップ面積も増大しかねない。このような理由によって、高速ページ・モードのＤＲＡＭを用いて平均アクセス時間を短縮することは大きな弊害がある。ＳＲＡＭを使えば１サイクルごとの連続アクセスは可能になるが、コストの面で見合わなくなってしまう。低コストで平均アクセス時間を低減するためには、前記実施例のように内蔵キャッシュメモリの採用が最も妥当となるものである。
【０１３８】
キャッシュ・ミス率と平均アクセス時間に関するシミュレーションで内蔵キャッシュメモリの有効性を検討した。この発明に係るシングルチップマイクロコンピュータでは、バスの駆動をなるべく少なくして消費電力の低減を図るために、内蔵キャッシュメモリへのアクセスと主記憶へのアクセスを並行して開始する構造を採らないで、キャッシュ・ミスが判明してから主記憶へのアクセスを始める。内蔵キャッシュメモリへのアクセスと主記憶へのアクセスを同時に始めないので、キャッシュ・ミス時にはキャッシュ検索の時間がオーバヘッドとなる。平均アクセス時間の増加につながる。ミス率が高いと、このオーバヘッドの影響でキャッシュメモリを持たない場合よりも平均アクセス時間が増す危険がある。
【０１３９】
ミス率に関するデータは、ゲーム用プログラムのトレース・データが無いので次の文献(Smith A. J.，"Line (Block) Size Choice  for CPU Cache Memories ，" IEEE Trans．on Computers， vol. 36，no．9 、Sep.1987, pp. 1063−１075)の値を参考にした。図２６〜図２８に命令／データ混在型キャッシュメモリのミス率、容量を変えた場合のライン・サイズとミス率の関係を示す特性図が示されている。
【０１４０】
ライン・サイズは、キャッシュメモリの中にデータを蓄える単位をいい、ブロック・サイズともいわれる。部分書き込みを可能にするために、ライン内のバイト、ワードまたはロング・ワード単位にバリッド・ビットを設けない場合、ライン全てに有効なデータを格納しなければならない。キャッシュ・ミス時の置き換えは、ライン単位に行なう必要がある。このため、ライン・サイズを増やすと置き換えに要する時間は増加するものとなる。
【０１４１】
この発明に係るシングルチップマイクロコンピュータでは、前述のように内部キャッシュメモリのアクセスに１サイクル、外部のメモリ・アクセスに２サイクルかかる（キャッシュのライン・サイズが４バイトの場合）。ミス率が５０％を越えると平均アクセス時間が２サイクル以上となりかえって遅くなる。
【０１４２】
チップ・サイズの制限から、キャッシュメモリに割り当てることのできる面積は４Ｋバイト程度である。図２６〜図２８に示すように、キャッシュの容量が４Ｋバイトならば、ライン・サイズがかりに４バイトと小さくても、ミス率は３３％以下で、キャッシュメモリが効果を発揮することが分かる。
【０１４３】
この発明に係るシングルチップマイクロコンピュータのように、１６ビット固定長のＲＩＳＣマイクロコントローラのアーキテクチャは、３２ビット固定長ＲＩＳＣプロセッサと比べてコードサイズが小さいことが予想される。コードサイズが小さいと同じ命令数を実行する場合、フェッチしてくるバイト数が減りキャッシュメモリのミス率が低くなる。
【０１４４】
実際には３２ビットＲＩＳＣアーキテクチャを１６ビットに変えてもコードサイズが1 ／2 になるわけではない。イミディエイトデータとして命令中に組み込むことができる値の範囲が小さくなるため値の大きな定数を設定するために複数の命令を使う必要がある。命令コードとしてのビット数が足りなくなるので３オペランドアドレスを２アドレスに変えるため１命令が２命令になる場合がある。また、レジスタの指定ビットが足りなくなるのでレジスタの本数を３２から１６減らさざるを得ず、レジスタの待避回復を行うための命令が追加されることが考えられる。
【０１４５】
そこで、これらを検証するために、この発明に係るシングルチップマイクロコンピュータ用に生成したコードサイズを調べたところＤｈｒｙｓｔｏｎｅは９６８バイト、ＳＰＥＣｉｎｔベンチマークのｌｉは３３，０４２バイト、同じくＳＰＥＣｉｎｔベンチマークのｅｑｎｔｏｔｔは６，９９２バイトであった。３２ビット固定長ＲＩＳＣプロセッサの場合、それぞれ、１，６８０バイト、５１，４４０バイト、１０，８３２バイトであり、上記１６ビット固定長と比べると５５〜７４％増しである。
【０１４６】
『Bunda J. and Athas W., "16-Bit vs. 32-Bit Instructions for Pipelined Microprocessors，"   ISCA'20 Proceedings ，May 16−１9, 1993, pp. 237−２46』によると、３２ビットＲＩＳＣアーキテクチャであるＤＬＸを１６ビット化するとコードサイズは２／３に減り、実行命令数は１５％増加するものの、命令転送量は３５％減少との結果が得られている。また、１６ビット化による性能向上は低速のメモリを接続する場合に効果がより顕著であると報告されている。
【０１４７】
この発明に係るシングルチップマイクロコンピュータに内蔵のキャッシュメモリの構成は、前述のように命令／データ混在型の４ウエイ・セット・アソシアティブ方式を採った。ライン・サイズはシンクロナスＤＲＡＭとの直結を考慮して１６バイトとされる。ＣＰＵとキャッシュメモリ間のアクセス経路は一つにし、命令とデータで別のアクセス経路を使うハーバード・アーキテクチャを使用しない。前記実施例のように、アクセス経路を一つにすると、同じクロックで命令フェッチとデータ・アクセスを処理することができないが、データ・アクセスを伴う命令の適切なアドレスに配置して、この問題を回避することかできる。
【０１４８】
すなわち、命令は１６ビット固定長なので、３２ビット単位でメモリをアクセスする場合に、２命令に１回の命令フェッチで済む。したがって、図２９に示すように、メモリからのロード、ストアを伴う命令を偶数ワード・バウンダリ（４n 番地）に置くと、アクセス経路が一つでも命令フェッチとデータ・アクセスは競合しなくなる。このように、アクセス経路を一つにすることで、キャッシュ構成の自由度を増すことができる。すなわち、命令／データ混在型キャッシュ、命令／データ分離型キャッシュ、命令またはデータのみのキャッシュのいずれもが実現可能になる。
【０１４９】
図２９において、命令を格納する番地を適切な値に設定してメモリ・アクセスとの競合を避けるようにする。命令フェッチは３２ビット単位にて行う。メモリ・アクセスを伴う命令を４ｎ番地に置けば、４ｎ＋６番地の命令フェッチとメモリ・アクセスが重ならない。４ｎ＋２番地に置いた場合は重なってしまうので、パイプラインのストールが生じる。４ｎ＋４番地以降の命令の実行を１サイクル遅らせなければならない。
【０１５０】
上記命令／データ混在型と命令／データ分離型について比較すると次の通りである。命令だけのキャッシュとデータだけのキャッシュは命令／データ混在型キャッシュのリプレース論理を変更することで実現できるためである。
【０１５１】
容量４Ｋバイトの命令／データ混在型キャッシュのミス率はライン・サイズ１６バイトの時に、図２６に示されているように１２％である。命令とデータにそれぞれ２Ｋバイトのキャッシュを用意した分離型の場合は、図２７と図２８に示すように、命令のミス率が１５％でデータのミス率が１２％となる。さらに、命令フェッチは、データ・アクセスに比べて頻度が高く、ＣＰＩに及ぼす影響が大きく命令のミス率はできるだけ下げたいので、命令／データ混在型キャッシュメモリとするものである。
【０１５２】
４ウエイ・セット・アソシアティブは、ミス率と消費電力、チップ面積のトレード・オフを考慮して決められた。直接マッピング方式はキャッシュ容量が小さい場合、プログラムによってはスラッシングが頻発し、キャッシュ・ミスが連続する可能性が高い。命令とデータを格納するアドレスを調節してスラッシングをさけることは可能であるが、アセンブラ・レベルでのチューニングが必要になる。Ｃ言語で個々のプログラムを書き、リンカでまとめ上げる開発方法が主流となりつつある時代のすう勢にそぐわない。また、フルアソシアティブ方式のキャッシュメモリはチップ面積が増大する上に、消費電力が大きいという問題を有するものである。
【０１５３】
そこで、セット・アソシアティブ方式について検討した結果、次の通りである。キャッシュの容量が４Ｋバイトの場合、４ウエイまではウエイ数を増やすとミス率が大幅に低減する。これに対し、４ウエイと８ウエイの差は０．２％と小さい。さらにミス率を低くするために、ラインの置き換えアルゴリズムにＬＲＵを使いうことも検討したが、８ウエイではエントリごとに２８ビットのＬＲＵ情報を用意しなければならない。キャッシュメモリ全体の５％がＬＲＵ情報で占められることになってコストに響く。ちなみに、この実施例のように４ウエイの場合はＬＲＵ情報は６ビットですむので全体への割合は１％と少なくできる。
【０１５４】
この発明に係るシングルチップマイクロコンピュータが備えるシンクロナスＤＲＡＭとのインターフェイス回路は、キャッシュ・ミス時にラインの置き換えにかかる時間を短縮するためのものである。既存のＤＲＡＭで８サイクルかかるラインの置き換えが、シンクロナスＤＲＡＭを使った場合は６サイクルになる。
【０１５５】
図３０に示すように、ライン・サイズを大きくとり過ぎると平均アクセス時間の増加につながる。ライン・サイズをある程度大きくすれば、キャッシュメモリのミス率が下がるので平均アクセス時間が短くなる。大きくし過ぎると外部メモリからのデータ転送にかかる時間が長くなり、平均アクセス時間の増加を招く。同図では、ＣＰＵの動作周波数は２８．７ＭＨｚ、ＳＲＡＭのアクセス時間は６０ｎｓ、ＤＲＡＭのアクセス時間は７０ｎｓである。ＤＲＡＭの高速ページ・モードのサイクル時間は４５ｎｓ、シンクロナスＤＲＡＭは最高動作周波数６６ＭＨｚのものを使用した例が示されている。
【０１５６】
キャッシュメモリの容量が同じだと、ある程度ライン・サイズを増やした方がキャッシュメモリのミス率が低くなる。キャッシュ・ミス時にライン単位で置き換えを行なうので、キャッシュメモリのプリフェッチと同様の効果が期待できるからである。したがって、ライン・サイズが大きくなり過ぎてエントリ数が不足するまでは、ライン・サイズを増やした方がよい。しかし、ライン・サイズを大きくしてミス率を低くしたからといって、必ずしも平均アクセス時間の短縮に結び付くとは限らない。いったんミスしたときに、ラインの置き換えにかかる時間はライン・サイズが大きいほど長くなるからである。
【０１５７】
この発明に係るシングルチップマイクロコンピュータは、ラインの置き換えが終わるまで命令の実行を停止する。ラインの置き換えの最中にキャッシュにアクセスするには、複雑な制御が必要なためだからである。ＣＰＩを低減するには、できるだけ短時間でラインの置き換えをすませたい。そこで、ライン・サイズに相当するまとまったデータ（ブロック・データ）の転送速度が速いメモリが必要になり、高速ページ・モードのＤＲＡＭとシンクロナスＤＲＡＭ、Ｒambus 準拠のＤＲＡＭについて検討した。
【０１５８】
このうち、シンクロナスＤＲＡＭとＲambus 準拠のＤＲＡＭは、一つの行をまとめてチップ内のバッファに読み出し、後はクロック入力に同期してこれを順次転送するという方式を採る。二つ目以降のデータはメモリの内部動作に拘束されずに転送できる。Ｒambus 準拠のＤＲＡＭは、最高２nsのサイクルでデータ転送が可能である。しかし、Ｒambus 準拠のＤＲＡＭは、既存のＣＭＯＳチップとは信号レベルが異なる。ＲＯＭや周辺Ｉ／Ｏと信号ピンを直結することができない。この発明に係るシングルチップマイクロコンピュータの入出力インターフェイスの信号レベルをＲambus 準拠のＤＲＡＭに合わせることもできるが、現状では汎用性がなくなってしまうという問題が生じる。
【０１５９】
この発明に係るシングルチップマイクロコンピュータでは、キャッシュメモリのアクセスを３２ビット単位で行う。Ｒambus 準拠のＤＲＡＭをＣＰＵの動作周波数より速いクロックで動作させてデータを取り込んでも、直接にキャッシュメモリに書き込むことはできない。そのため、チップ内にバッファが必要となり、コスト増を招いてしまう。高速ページ・モードのＤＲＡＭは、ブロック転送速度が、列のアドレスを選択するためのＣＡＳ信号のサイクル時間がネックとなって、大きな速度改善が行えない。
【０１６０】
シンクロナスＤＲＡＭは、データ転送速度こそ最高１６ｎｓ／サイクルだが、信号レベルは電源電圧が＋３．３Ｖのメモリと同じＬＶＴＴＬである。制御信号以外の信号ピンを周辺回路と直結できる。クロックの立ち上がりエッジだけを使用するためクロックに対する制約が緩い。
【０１６１】
この発明に係るシングルチップマイクロコンピュータでは、以上の検討からシンクロナスＤＲＡＭとのインターフェイスを組み込むようにするものである。シンクロナスＤＲＡＭは、高速ページモードＤＲＡＭのＲＡＳアクセスに相当するバンク・アクティブ状態にした場合に、行アドレスのサイクルを省略できる。１回目のアクセス時間を短縮することが可能である。さらに、内部が二つのバンクに分かれており、それぞれ独立の行アドレスに対してバンク・アクティブ状態にしておくことができる。メモリ内の低位側のアドレスに命令、高位側のアドレスにデータといった配置をとった場合、命令とデータのアクセスが混在してもアクセス時間を短縮できる確率は高くなる。これもシンクロナスＤＲＡＭインターフェイスを採用した理由の一つである。
【０１６２】
シンクロナスＤＲＡＭの使用を考慮した結果、キャッシュメモリのライン・サイズは１６バイトとなり、図３０から平均アクセス時間は１．７２サイクルになった。
【０１６３】
この発明に係るシングルチップマイクロコンピュータでは、キャッシュメモリの制御を簡単にするために、データの書き込みにはライト・スルー方式を採用するものである。これは、コピー・バック方式はライト・スルー方式よりもミス率が高いといわれているからである。
【０１６４】
ところがライト・スルー方式では、主記憶への書き込み時にオーバヘッドを生じる。既存のシンクロナスＤＲＡＭは、読み出し時と書き込み時の転送ブロック・サイズが同じためである。１ワード（４バイト）のデータを書き込む場合でも、１ライン（１６バイト）分の書き込み操作をしなければならない。書き込みのたびに３サイクルのからサイクルが発生してしまう。シンクロナスＤＲＡＭは、ブロック・アクセスの途中で次のアクセスを強制的に始めることもできるが、インターフェイスの回路が複雑になる。
【０１６５】
そこで、この発明に係るシングルチップマイクロコンピュータに接続される図８等に示された前記のようなシンクロナスＤＲＡＭでは、読み出しはブロック単位で行なうが、書き込みはワード単位でできる、ブロック・リード／シングル・ライトの機能を持つものである。
【０１６６】
この発明に係るシングルチップマイクロコンピュータは、家庭用ゲーム機以外に携帯型情報通信機器の用途に向けられている。こうした機器は屋外で持ち歩いて使うため電池駆動が前提なので、マイクロコントローラの消費する電力をできる限り抑える必要がある。低価格のプラスチック・パッケージに納めるためにも発熱を抑えることが必要である。
【０１６７】
キャッシュメモリでの低消費電力化のために、図３１に示すように、アドレス・アレイとデータ・アレイを１／２サイクルずらして動作させて、アドレス・アレイの比較結果にもとづいて、４ウエイのデータ・アレイのうちヒットしたウエイのセンス・アンプだけを動かす構造とされる。同図は、前記図１８と対応されている。
【０１６８】
図３２には、この発明に係るキャッシュメモリの動作タイミングが示されている。チップ全体の消費電力を下げるために、ワード線の制御を工夫して、ビット線の充放電による消費電流の低減を図るようにした。データ線を１／２サイクルの間でプリチャージする。次の１／２サイクルでデータを読み出す。すなわち、アドレスのデコード結果に従ったワード線駆動とメモリ・セルのデータ線への読み出しと、センス・アンプ駆動を同時に行なう。
【０１６９】
ヒットしないウエイのセンス・アンプを動かさなくても、そのウエイのワード線を立ち上げてしまうとデータ線の充放電を避けられない。そこで、ヒットしたウエイのワード線だけを立ち上げることにした。このためにはワード線駆動のタイミングよりも前にヒットしたウエイが確定する必要がある。シミュレーションによって、ワード線駆動より先にヒットしたウエイの確定ができることが分かっている。このような構成とすることにより、データ線充放電による消費電流を大幅に低減することができる。
【０１７０】
さらに、前記図１９の実施例のように、カレントミラー差動型のセンス・アンプをクロス・カップル型センス・アンプに変えセンス・アンプの貫通電流をなくした。クロス・カップル型のセンス・アンプは駆動タイミングが難しい。データ線間の電位差が有意となった後にセンス動作を開始しないと、誤動作する恐れがあるからである。このため従来はカレントミラー差動型を用いていた。本願発明では、タイミング生成回路系の微調整によって、クロス・カップル型の採用を可能にするものである。
【０１７１】
キャッシュメモリを内蔵した場合に、インサーキット・エミュレータのトレース機能をどのように実現するかが問題となる。トレースによるデバグの支援は、問題の発生した時点の前後のバス・アクセスを正確に表示することで可能となる。キャッシュメモリを内蔵すると、キャッシュメモリにミスしたメモリ・アクセスだけが外部バスに出力されるので、正しいトレース・データが得られない。
【０１７２】
そこで、この発明に係るシングルチップマイクロコンピュータでは、キャッシュメモリにアクセスしているときのトレースを可能にするために、キャッシュ・ヒット時にそのアドレスとデータを１サイクルだけバスに出力するモードを設けた。単一プロセッサで使う場合は、キャッシュにヒットしたときにはメモリ・アクセスを実行しない。すなわち、トレース時にはアドレスとデータの出力が行われず外部バスが空いている。これを利用して、トレース・データを出力するようにする。
【０１７３】
これに対して、ＤＭＡコントローラを用い高いバス使用率でデータの転送を行なう場合や、マルチプロセッサ・システムではトレース・データの出力とＤＭＡ転送または他のプロセッサからのメモリ・アクセスが競合する可能性がある。最悪、ＤＭＡコントローラがデュアルアドレス転送を行いバスを占有している場合、リードとライトの合間を待ってトレースデータを出力するため、ＣＰＵ性能はキャッシュの代わりに実際に接続されているメモリより２倍遅いメモリを接続した場合と同等となる。
【０１７４】
マイクロコントローラを用いたシステムを開発する際にプログラムデバッグに対するサポートは重要な位置を占める。現在のプログラミングは、アセンブラ言語を離れＣ言語、さらには一部アプリケーションに関してはオブジェクト指向を取り入れＣ＋＋などのオブジェクトオリエンテッドなプログラミング言語を採り入れだしている。こうした中で、ステートメント単位のプログラム実行の停止とシンボリックな変数の参照機能はプログラマの作業効率を向上するために不可欠となっている。
【０１７５】
ＲＡＭ上にＯＳやアプリケーションプログラムをロードするパーソナルコンピュータやワークステーションと異なり、機器に組み込むマイクロコントローラは最終的なデバッグをＲＯＭ上で行うことが多い。ＲＡＭ上のプログラムは、実行停止を行うため指定するアドレスの命令をブレーク命令に置き換えることで正確な停止を容易に実現できる。キャッシュメモリ内蔵でも停止方法は同じである。ＲＯＭでは命令の置き換えを行うことができない。
【０１７６】
この発明に係るシングルチップマイクロコンピュータでは、実行の正確な停止をサポートするため命令フェッチアドレスを検出し指定アドレスの命令の直前でブレーク割り込みを発生させるユーザブレークコントローラが設けられている。ユーザブレークコントローラにはデータアクセスのアドレスおよびデータの値によってブレーク割り込みを発生させる機能も盛り込まれている。チップ内部に組み込むことによってキャッシュにヒットし外部アクセスが行われない場合にも正しくブレーク割り込みを発生できる。
【０１７７】
チップ内部のアドレス・バスとデータ・バスは、ほとんどすべてのモジュールに配線される。その静電容量は数ｐＦのオーダとなる。アドレス・バス/ データ・バスの各３２本を１サイクルごとに逆極性に駆動すると、電荷の充放電による消費電流が６０ｍＡを超えてしまうし、静電容量が大きくなると遅延も増えることになる。
【０１７８】
そこで、この発明に係るシングルチップマイクロコンピュータでは、前記図１等の実施例のように、内部バスを分割して、バスごとに駆動方法を工夫することで充放電電流の低減を図るものである。チップの内部バスは３種類に分けられるものである。
【０１７９】
図３３には、この発明に係るシングルチップマイクロコンピュータにおける各バスサイクルを説明するためのタイミング図が示されている。キャッシュバス（前記図１の第１のバス）と内部バス（前記図１の第２のバス）の各信号は、クロックのハイレベル期間に同期して変化し、チップ外部に接続された外部バス（前記図１の第４のバス）の各信号は、クロックのロウレベル期間に同期して変化する。
【０１８０】
ＣＰＵがメモリ上のデータ又は命令をアクセスする場合、クロック信号に同期してキャッシュアドレスバスにアドレス信号を出力するとともにアクセスを行うことを表示するためのアクセス信号（図示せず）をハイレベルにする。キャッシュは、これを受けて内部のキャッシュメモリの検索を行う。アクセスがメモリに対するリードでかつアクセスアドレスのデータがキャッシュメモリ内に存在する場合、次のサイクルにクロックに同期してキャッシュデータバスにキャッシュメモリから読み出したデータを出力するとともにレディ信号をハイレベルにし、ＣＰＵにデータのアクセスが完了したことを示す。同図では、Ａ番地のアクセスとＡ＋４番地のアクセスがこれに該当する。
【０１８１】
キャッシュメモリにデータが存在しない場合、内部バスを介してキャッシュ外部のデータをアクセスする。同図では、Ｃ番地に対するアクセスがこれに該当する。すなわち、ＣＰＵは、サイクル４にキャッシュアドレスバスにアドレス信号Ｃをするとともに、図示しないアクセス信号をハイレベルにする。キャッシュメモリ内にデータがないので、キャッシュはサイクル５でレディ信号をロウレベルにして、データが準備できていないことをＣＰＵに知らせるとともに、内部バスのバスアクセス信号をハイレベルにする。
【０１８２】
外部アドレスインターフェイスは、上記アクセス信号のハイレベルを受けて内部アドレスバスの値をデコードし、これがチップ内部に対するアクセスか外部に対するアクセスかを判定する。アドレス信号Ｃの番地は、外部であるので直ちに外部アドレスバスにアドレス信号Ｃを乗せ、外部バスアクセス信号をハイレベルにする。
【０１８３】
次のサイクルでは、データの読み出し準備が完了しないので内部レディ信号をロウレベルにして、キャッシュに対してデータの準備ができないことを通知する。読み出しの完了するサイクル６に外部インターフェイスは読み込んだデータを内部データバスに出力するとともに内部レディ信号をハイレベルとして、キャッシュに読み出し完了を通知する。キャッシュは、内部バスのデータをキャッシュメモリに書くと同時にキャッシュデータバスに出力し、かつキャッシュレディ信号をハイレベルにして、ＣＰＵに読み出し完了を通知する。このキャッシュレディ信号がロウレベルの期間（サイクル５とサイクル６）、ＣＰＵはアドレスバスの更新を停止する。
【０１８４】
データの書き込み動作では、外部のデータ書き込みの完了を待つ必要がないため、Ｂ番地のアクセスに示されているように、キャッシュは前記ブレークコントローラを介して内部アドレスバスにアドレス信号Ｂを出力し、バスアクセス信号をハイレベルにする際にＣＰＵに接続されるキャッシュレディ信号をハイレベルに保つ。したがって、ＣＰＵは、外部バスの書き込み完了を待たずに実行を続ける。
【０１８５】
周辺バス（図１の第３のバス）に接続される周辺モジュールであるフリーランニングタイマＦＲＴ、シリアルコミュニケーションインターフェイスＳＣＩ、ウォッチドッグタイマＷＤＴにアクセスする場合、キャッシュアドレスバスからキャッシュを経て内部アドレスバスに出力されるアドレス信号Ｂが、これら周辺モジュールのアドレス信号Ｂとなる。アドレス信号Ｂは、バスステートコントローラＢＳＣを介して周辺アドレスバスに出力される。同時にバスアクセス信号がハイレベルになる。
【０１８６】
周辺モジュールから周辺データバスへのデータ出力、又はデータバス上の値を周辺モジュールへの書き込み完了を待って外部バスインターフェイスが内部バスレディ信号をハイレベルにしてアクセスの完了を知らせる。データ読み出しの場合、このとき同時にバスステートコントローラＢＳＣから周辺データバス上の読み出しデータが内部データバスに出力される。
【０１８７】
図３４には、シンクロナスＤＲＡＭのモード書き込み動作を説明するためのタイミング図が示されている。この発明に係るシングルチップマイクロコンピュータにおいては、特に制限されないが、シンクロナスＤＲＡＭに対するモード設定が以下のように実現される。
【０１８８】
内蔵周辺用として割り当てられたＦＦＦ８０００番地からＦＦＦＦＦＦＦＦ番地のうち、ＦＦＦＦ８０００からＦＦＦＦＢ０００番地をアクセス（ライト又はリード）するとと、そのアドレスがそのまま外部バスに出力されるとともに、シンクロナスＤＲＡＭに接続される／ＣＳ３、／ＲＡＳ、／ＣＡＳ及び／ＷＥの各制御信号が同時に１クロックサイクルの間、ロウレベルにされる。
【０１８９】
シンクロナスＤＲＡＭは、これら４本の各制御線の信号がロウレベルのときのクロックの立ち上がりエッジでアドレスバスの値を取り込み、これをそのまま内部モード設定レジスタに書き込む。したがって、上記ＦＦＦＦ８０００からＦＦＦＢ０００番地の適当なアドレスをアクセスすることによって、所望のモード設定を簡単に行うことができる。上記のようなタイミングでの制御信号の発生は、前記メモリ制御信号発生回路ＭＣＴＧにより形成される。すなわち、外部バスインターフェイス回路のエリア制御部等に適当なアドレスデコーダを設け、上記のようなアドレスデコード条件により、前記のような４本のメモリ制御線の信号をロウレベルにするようなシーケンス状態を設けるようにすることによって実現される。
【０１９０】
図３５には、上記シンクロナスＤＲＡＭ（以下、単にＳＤＲＡＭという）の一実施例のブロック図が示されている。同図に示されたＳＤＲＡＭは、特に制限されないが、公知の半導体集積回路の製造技術によって単結晶シリコンのような１つの半導体基板上に形成される。
【０１９１】
この実施例のＳＤＲＡＭは、メモリバンクＡ（ＢＡＮＫＡ）を構成するメモリアレイ２００Ａと、メモリバンク（ＢＡＮＫＢ）を構成するメモリアレイ２００Ｂを備える。それぞれのメモリアレイ２００Ａと２００Ｂは、マトリクス配置されたダイナミック型メモリセルを備え、図に従えば同一列に配置されたメモリセルの選択端子は列毎のワード線（図示せず）に結合され、同一行に配置されたメモリセルのデータ入出力端子は行毎に相補データ線（図示せず）に結合される。
【０１９２】
上記メモリアレイ２００Ａの図示しないワード線はロウデコーダ２０１Ａによるロウアドレス信号のデコード結果に従って１本が選択レベルに駆動される。メモリアレイ２００Ａの図示しない相補データ線はセンスアンプ及びカラム選択回路２０２Ａに結合される。センスアンプ及びカラム選択回路２０２Ａにおけるセンスアンプは、メモリセルからのデータ読出しによって夫々の相補データ線に現れる微小電位差を検出して増幅する増幅回路である。それにおけるカラムスイッチ回路は、相補データ線を各別に選択して相補共通データ線２０４に導通させるためのスイッチ回路である。カラムスイッチ回路はカラムデコーダ２０３Ａによるカラムアドレス信号のデコード結果に従って選択動作される。メモリアレイ２００Ｂ側にも同様にロウデコーダ２０１Ｂ，センスアンプ及びカラム選択回路２０２Ｂ，カラムデコーダ２０３Ｂが設けられる。上記相補共通データ線２０４は入力バッファ２１０の出力端子及び出力バッファ２１１の入力端子に接続される。入力バッファ２１０の入力端子及び出力バッファ２１１の出力端子は１６ビットのデータ入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ１５に接続される。
【０１９３】
アドレス入力端子Ａ０〜Ａ９から供給されるロウアドレス信号とカラムアドレス信号はカラムアドレスバッファ２０５とロウアドレスバッファ２０６にアドレスマルチプレクス形式で取り込まれる。供給されたアドレス信号はそれぞれのバッファが保持する。ロウアドレスバッファ２０６はリフレッシュ動作モードにおいてはリフレッシュカウンタ２０８から出力されるリフレッシュアドレス信号をロウアドレス信号として取り込む。カラムアドレスバッファ２０５の出力はカラムアドレスカウンタ２０７のプリセットデータとして供給され、カラムアドレスカウンタ２０７は後述のコマンドなどで指定される動作モードに応じて、上記プリセットデータとしてのカラムアドレス信号、又はそのカラムアドレス信号を順次インクリメントした値を、カラムデコーダ２０３Ａ，２０３Ｂに向けて出力する。
【０１９４】
コントローラ２１２は、特に制限されないが、クロック信号ＣＬＫ、クロックイネーブル信号ＣＫＥ、チップセレクト信号／ＣＳ、カラムアドレスストローブ信号／ＣＡＳ（記号／はこれが付された信号がロウイネーブルの信号であることを意味する）、ロウアドレスストローブ信号／ＲＡＳ、及びライトイネーブル信号／ＷＥなどの外部制御信号と、アドレス入力端子Ａ０〜Ａ９からの制御データとが供給され、それらの信号のレベルの変化やタイミングなどに基づいてＳＤＲＡＭの動作モード及び上記回路ブロックの動作を制御するための内部タイミング信号を形成するもので、そのためのコントロールロジック（図示せず）とモードレジスタ３０を備える。
【０１９５】
クロック信号ＣＬＫはＳＤＲＡＭのマクタクロックとされ、その他の外部入力信号は当該クロック信号ＣＬＫの立ち上がりエッジに同期して有意とされる。チップセレクト信号／ＣＳはそのロウレベルによってコマンド入力サイクルの開始を指示する。チップセレクト信号／ＣＳがハイレベルのとき（チップ非選択状態）やその他の入力は意味を持たない。但し、後述するメモリバンクの選択状態やバースト動作などの内部動作はチップ非選択状態への変化によって影響されない。／ＲＡＳ，／ＣＡＳ，／ＷＥの各信号は通常のＤＲＡＭにおける対応信号とは機能が相違され、後述するコマンドサイクルを定義するときに有意の信号とされる。
【０１９６】
クロックイネーブル信号ＣＫＥは次のクロック信号の有効性を指示する信号であり、当該信号ＣＫＥがハイレベルであれば次のクロック信号ＣＬＫの立ち上がりエッジが有効とされ、ロウレベルのときには無効とされる。さらに、図示しないがリードモードにおいて、出力バッファ２１１に対するアウトプットイネーブルの制御を行う外部制御信号もコントローラ２１２に供給され、その信号が例えばハイレベルのときには出力バッファ２１１は高出力インピーダンス状態にされる。
【０１９７】
上記ロウアドレス信号は、クロック信号ＣＬＫの立ち上がりエッジに同期する後述のロウアドレスストローブ・バンクアクティブコマンドサイクルにおけるＡ０〜Ａ８のレベルによって定義される。
【０１９８】
Ａ９からの入力は、上記ロウアドレスストローブ・バンクアクティブコマンドサイクルにおいてバンク選択信号とみなされる。即ち、Ａ９の入力がロウレベルの時はメモリバンクＢＡＮＫＡが選択され、ハイレベルの時はメモリバンクＢＡＮＫＢが選択される。メモリバンクの選択制御は、特に制限されないが、選択メモリバンク側のロウデコーダのみの活性化、非選択メモリバンク側のカラムスイッチ回路の全非選択、選択メモリバンク側のみの入力バッファ２１０及び出力バッファ２１１への接続などの処理によって行うことができる。
【０１９９】
後述のプリチャージコマンドサイクルにおけるＡ８の入力は相補データ線などに対するプリチャージ動作の態様を指示し、そのハイレベルはプリチャージの対象が双方のメモリバンクであることを指示し、そのロウレベルは、Ａ９で指示されている一方のメモリバンクがプリチャージの対象であることを指示する。
【０２００】
上記カラムアドレス信号は、クロック信号ＣＬＫの立ち上がりエッジに同期するリード又はライトコマンド（後述のカラムアドレス・リードコマンド、カラムアドレス・ライトコマンド）サイクルにおけるＡ０〜Ａ７のレベルによって定義される。そして、この様にして定義されたカラムアドレスはバーストアクセスのスタートアドレスとされる。
【０２０１】
次に、コマンドによって指示されるＳＤＲＡＭの主な動作モードを説明する。
（１）モードレジスタセットコマンド（Ｍｏ）
上記モードレジスタ３０をセットするためのコマンドであり、／ＣＳ，／ＲＡＳ，／ＣＡＳ，／ＷＥ＝ロウレベルによって当該コマンド指定され、セットすべきデータ（レジスタセットデータ）はＡ０〜Ａ９を介して与えられる。レジスタセットデータは、特に制限されないが、バーストレングス、ＣＡＳレイテンシー、ライトモードなどとされる。特に制限されないが、設定可能なバーストレングスは、１，２，４，８，フルページ（２５６）とされ、設定可能なＣＡＳレイテンシーは１，２，３とされ、設定可能なライトモードは、バーストライトとシングルライトとされる。
【０２０２】
上記ＣＡＳレイテンシーは、後述のカラムアドレス・リードコマンドによって指示されるリード動作において／ＣＡＳの立ち下がりから出力バッファ２１１の出力動作までにクロック信号ＣＬＫの何サイクル分を費やすかを指示するものである。読出しデータが確定するまでにはデータ読出しのための内部動作時間が必要とされ、それをクロック信号ＣＬＫの使用周波数に応じて設定するためのものである。換言すれば、周波数の高いクロック信号ＣＬＫを用いる場合にはＣＡＳレイテンシーを相対的に大きな値に設定し、周波数の低いクロック信号ＣＬＫを用いる場合にはＣＡＳレイテンシーを相対的に小さな値に設定する。
【０２０３】
（２）ロウアドレスストローブ・バンクアクティブコマンド（Ａｃ）
これは、ロウアドレスストローブの指示とＡ９によるメモリバンクの選択を有効にするコマンドであり、／ＣＳ，／ＲＡＳ＝ロウレベル、／ＣＡＳ，／ＷＥ＝ハイレベルによって指示され、このときＡ０〜Ａ８に供給されるアドレスがロウアドレス信号として、Ａ９に供給される信号がメモリバンクの選択信号として取り込まれる。取り込み動作は上述のようにクロック信号ＣＬＫの立ち上がりエッジに同期して行われる。例えば、当該コマンドが指定されると、それによって指定されるメモリバンクにおけるワード線が選択され、当該ワード線に接続されたメモリセルがそれぞれ対応する相補データ線に導通される。
【０２０４】
（３）カラムアドレス・リードコマンド（Ｒｅ）
このコマンドは、バーストリード動作を開始するために必要なコマンドであると共に、カラムアドレスストローブの指示を与えるコマンドであり、／ＣＳ，／ＣＡＳ＝ロウレベル、／ＲＡＳ，／ＷＥ＝ハイレベルによって指示され、このときＡ０〜Ａ７に供給されるカラムアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストスタートアドレスとしてカラムアドレスカウンタ２０７に供給される。これによって指示されたバーストリード動作においては、その前にロウアドレスストローブ・バンクアクティブコマンドサイクルでメモリバンクとそれにおけるワード線の選択が行われており、当該選択ワード線のメモリセルは、クロック信号ＣＬＫに同期してカラムアドレスカウンタ２０７から出力されるアドレス信号に従って順次選択されて連続的に読出される。連続的に読出されるデータ数は上記バーストレングスによって指定された個数とされる。また、出力バッファ２１１からのデータ読出し開始は上記ＣＡＳレイテンシーで規定されるクロック信号ＣＬＫのサイクル数を待って行われる。
【０２０５】
（４）カラムアドレス・ライトコマンド（Ｗｒ）
ライト動作の態様としてモードレジスタ３０にバーストライトが設定されているときは当該バーストライト動作を開始するために必要なコマンドとされ、ライト動作の態様としてモードレジスタ３０にシングルライトが設定されているときは当該シングルライト動作を開始するために必要なコマンドとされる。更に当該コマンドは、シングルライト及びバーストライトにおけるカラムアドレスストローブの指示を与える。当該コマンドは、／ＣＳ，／ＣＡＳ，／ＷＥ＝ロウレベル、／ＲＡＳ＝ハイレベルによって指示され、このときＡ０〜Ａ７に供給されるアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストライトにおいてはバーストスタートアドレスとしてカラムアドレスカウンタ２０７に供給される。これによって指示されたバーストライト動作の手順もバーストリード動作と同様に行われる。但し、ライト動作にはＣＡＳレイテンシーはなく、ライトデータの取り込みは当該カラムアドレス・ライトコマンドサイクルから開始される。
【０２０６】
（５）プリチャージコマンド（Ｐｒ）
これは、Ａ８，Ａ９によって選択されたメモリバンクに対するプリチャージ動作の開始コマンドとされ、／ＣＳ，／ＲＡＳ，／ＷＥ＝ロウレベル、／ＣＡＳ＝ハイレベルによって指示される。
【０２０７】
（６）オートリフレッシュコマンド
このコマンドはオートリフレッシュを開始するために必要とされるコマンドであり、／ＣＳ，／ＲＡＳ，／ＣＡＳ＝ロウレベル、／ＷＥ，ＣＫＥ＝ハイレベルによって指示される。
【０２０８】
（７）バーストストップ・イン・フルページコマンド
フルページに対するバースト動作を全てのメモリバンクに対して停止させるために必要なコマンドであり、フルページ以外のバースト動作では無視される。このコマンドは、／ＣＳ，／ＷＥ＝ロウレベル、／ＲＡＳ，／ＣＡＳ＝ハイレベルによって指示される。
【０２０９】
（８）ノーオペレーションコマンド（Ｎｏｐ）
これは実質的な動作を行わないこと指示するコマンドであり、／ＣＳ＝ロウレベル、／ＲＡＳ，／ＣＡＳ，／ＷＥのハイレベルによって指示される。
【０２１０】
ＳＤＲＡＭにおいては、一方のメモリバンクでバースト動作が行われているとき、その途中で別のメモリバンクを指定して、ロウアドレスストローブ・バンクアクティブコマンドが供給されると、当該実行中の一方のメモリバンクでの動作には何ら影響を与えることなく、当該別のメモリバンクにおけるロウアドレス系の動作が可能にされる。例えば、ＳＤＲＡＭは外部から供給されるデータ、アドレス、及び制御信号を内部に保持する手段を有し、その保持内容、特にアドレス及び制御信号は、特に制限されないが、メモリバンク毎に保持されるようになっている。或は、ロウアドレスストローブ・バンクアクティブコマンドサイクルによって選択されたメモリブロックにおけるワード線１本分のデータがカラム系動作の前に予め読み出し動作のために図示しないラッチ回路にラッチされるようになっている。
【０２１１】
したがって、データ入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ１５においてデータが衝突しない限り、処理が終了していないコマンド実行中に、当該実行中のコマンドが処理対象とするメモリバンクとは異なるメモリバンクに対するプリチャージコマンド、ロウアドレスストローブ・バンクアクティブコマンドを発行して、内部動作を予め開始させることが可能である。
【０２１２】
ＳＤＲＡＭ２２は、クロック信号ＣＬＫに同期してデータ、アドレス、制御信号を入出力できるため、ＤＲＡＭと同様の大容量メモリをＳＲＡＭに匹敵する高速動作させることが可能であり、また、選択された１本のワード線に対して幾つのデータをアクセスするかをバーストレングスによって指定することによって、内蔵カラムアドレスカウンタ２０７で順次カラム系の選択状態を切り換えていって複数個のデータを連続的にリード又はライトできることが理解されよう。
【０２１３】
図３６には、前記３次元画像処理等のための積和演算動作の一例を説明するためのブロック図が示されている。積和演算動作は、ＣＰＵと演算器（積和乗算器）及びキャッシュメモリとキャッシュメモリ制御回路とにより次のようにして行われる。
【０２１４】
同図において、ＣＰＵはデータバス（キャッシュバス）ＤＢ１を介してキャッシュメモリから読み出しされた命令コードを一時的に格納しておく命令レジスタＩＲと、読み出された命令コードをデコードして命令実行部等の制御信号を生成する制御回路と、演算処理を実行する命令実行部から構成される。命令実行部の内部では、アドレスバッファＡＢ、ＡＬＵ（演算論理ユニット）、内部レジスタ及びデータの入出力バッファＤＢ等が内部Ａバス、Ｂバス及びＣバスに接続されて構成される。
【０２１５】
ＣＰＵは、キャッシュメモリに格納されている命令コードをデータバスＤＢ１を介して読み出し、命令レジスタＩＲに取り込む。取り込まれた命令コードは、制御回路によってデコードされ、ＣＰＵ内部の制御信号を出力する。この制御信号によって、命令実行部は制御されて所望の演算が実行される。
【０２１６】
この実施例では、乗算器がデータバスＤＢ１とコマンド制御線ＣＯＭＤとウェイト制御線ＷＡＩＴとを介してＣＰＵに接続され、この乗算器に内部状態信号ＣＣを介してキャッシュメモリ制御回路が接続される。
【０２１７】
乗算器には、ＣＰＵの制御回路からのコマンド制御信号が入力され、乗算器の内部状態は状態信号ＣＣによりキャッシュメモリ制御回路に伝えられ、この状態信号ＣＣとコマンド制御信号ＣＯＭＤによって乗算器の演算処理中に次の演算起動指令が発行された場合には、バスサイクルをウェイトさせるウェイト信号ＷＡＩＴが生成される。このウェイト信号ＷＡＩＴは、ＣＰＵの制御回路に入力される。
【０２１８】
図３７には、積和命令（ＭＡＣ命令）を説明する説明図が示されている。同図には、前記３次元画像処理において、式１の行列式に対応した積和演算が例として示されている。同図において、ＩＦ又はｉｆは命令フェッチ、ＩＤはデコード、ＥＸは演算ｏｒ実行、ＭＡはメモリアクセス、ＷＢはライトバックをそれぞれ意味しており、ｍｍは乗算器が動作している状態を表している。
【０２１９】
積和レジスタの内容をクリアするために、ＣＬＲＭＡＣ命令が実行される。この命令により、演算器の積和出力レジスタの内容がクリアされる。続いて、１回目のＭＡＣ（積和命令）が実行される。この積和命令ＭＡＣは、ｉｆ−ＩＤ−ＥＸ−ＭＡ−ＭＡ−ｍｍ−ｍｍ−ｍｍの８段で終了する。２番目のＭＡは、メモリ読み出しとともに乗算器の演算起動も行う。
【０２２０】
ＭＡＣ命令の次命令のＩＤは、１スロット分後にストールされる。それ故、上記２つ目のＭＡＣ命令のＩＤが、１スロット分後にストールされる。この実施例のように、ＭＡＣ命令が連続してくる場合、ＭＡＣ命令の２番目のＭＡが、その前の乗算系命令によって発生したｍｍと競合した場合には、そのＭＡのバスサイクルは、ｍｍが終了するまで引き伸ばされて（図ではＭ────Ａのように表している。）、その引き伸ばされたＭＡは１つのスロットになる。同図において、点線で囲まれた部分は、上記ｍｍとＭＡとが競合していることを示している。
【０２２１】
ＣＰＵの制御回路は、ｉｆ−ＩＤ−ＥＸ−ＭＡにより、順に命令フェッチし、上記ＭＡＣ命令をデコードして、乗算すべきデータのあるキャッシュメモリのアドレスを生成し、このメモリアドレスをアドレスバッファＡＢを通してアドレスバスＡＢ１に出力して、キャッシュメモリからデータバスＤＢ1 にデータを出力させる。データバス上に出力された演算すべきデータは、ＣＰＵには取り込まれずに、ＣＰＵからの信号ＣＯＭＤにより演算器が取り込んで、３スロットにわたって演算を行い出力レジスタに格納する。
【０２２２】
以下、演算器は、連続してくるＭＡＣ命令により、前記のような行列式に対応して全部で４回の乗算と前の乗算結果にその乗算結果を加算して格納するという積和演算を行う。そして、最後にＳＴＳ命令により、上記演算結果をライトバックして１つの相対座標に対応した座標変換が行われる。
【０２２３】
図３８には、除算器の一実施例のブロック図が示されている。同図において、ＪＲは除数レジスタであり、除数を格納する３２ビット幅のレジスタであり、特別の機能は持たない。ＨＲＬは被除数下位及び商保存レジスタであり、被除数の下位３２ビットを格納するとともに、演算終了時には商３２ビットが格納される。演算中は中間結果を格納するテンポラリレジスタとしても使用される。ＨＲＨは被除数の上位３２ビットを格納するレジスタであり、３２÷３２演算の場合には、被除数の符号拡張を行うため、ＨＲＬのＭＳＢの値がＨＲＨの全ビットにコピーされる。演算終了時には結果の余が格納される。演算中は中間結果を格納するテンポラリレジスタとしても使用される。
【０２２４】
ＣＯＮＴはコントロールレジスタであり、３２ビットのうち２ビットから３１ビットまではライトできず、０リードのみである。有効なビットはビット１とビット０の下位２ビットである。ビット０はＯＶＦ（オーバーフロー）のフラグである。オーバーフロー又はアンダーフローが生じたときには値がセットされる。
【０２２５】
ビット１はビット０に値がセットされたときに割り込み発生するか禁止するかを決定するフラグである。ビット１と０は、バスマスターからの０ライトによって行われる。オーバーフロー割り込みオフの状態で、オーバーフローが発生した場合はＭＡＸ値、アンダーフローが発生した場合ＭＩＮ値を商にセットする。そして、オーバーフロー割り込みオンの状態で、オーバーフロー又はアンダーフローが発生した場合には、演算結果をそのまま商にセットする。
【０２２６】
ＶＣＴは割り込みベクタであり、ＣＯＮＴのビット１を１にした状態で、オーバーフローが発生したときに出力する割り込みベクタを保存するレジスタである。初期値は上位１６ビットが０で、下位１６ビットが不定値である。
【０２２７】
ＲＡＲは、余長期保存レジスタであり、演算終了時点での余を格納する３２ビットのレジスタである。ＨＲＨとの違いは、演算中に中間結果を格納するテンポラリレジスタとして使用されることがなく、次の演算終了するまで、又はバスマスタからライトされるまで値を保存することが可能である。
【０２２８】
ＲＳＲは、商長期保存レジスタであり、演算終了時点での商を格納する３２ビットのレジスタである。ＨＬＨとの違いは、演算中に中間結果を格納するテンポラリレジスタとして使用されることがなく、次の演算終了するまで、又はバスマスタからライトされるまで値を保存することが可能である。
【０２２９】
ＦＡ＆ＣＬＡはフルアダー及びキャリールックアヘッドであり、３２ビットの加算器、引算器、キャリーの有無やゼロチェックを行う。ＡＵＦＡ＆ＡＵＣＬＡは、１加算器であり、１減算は加算器の前後についているセレクタで値を反転することにより行う。ＬＤＭＣＡは、状態制御回路であり、バスマスタから乗算器内蔵レジスタへのライト制御、除算器演算中の演算サイクル制御及び演算結果のゼロチェックを行う論理回路からなる。ＬＤＭＣＢはオーバーフロー処理回路であり、除算演算でオーバーフローが発生したときの処理を行う制御論理回路である。ＬＤＰＲＭはＩ／Ｏ制御回路であり、除算器と周辺モジュールとのインターフェイスを行う制御論理回路である。
【０２３０】
図３９は、上記除算器の動作を説明するための状態遷移図である。この実施例の除算器では、状態数が全部で４２ある。同図の最上部の“００００００”がレディ（ready)状態であり、リセット後はこの状態となる。通常の除算処理を行うのは左上の“０００００１”から、右下の“００１１００”までの３８サイクルである。左列中央より上部、“１００１１０”からの分岐がオーバーフロー発生時の処理で、ここから２サイクルでもとの状態に戻る。この他、レディ状態下の“００００１０”はライト／リード連続要求時の退避場所である。
【０２３１】
上記除算器による除算の処理は大きく分けると次の５つに分類することができる。以下それぞれについて説明する。
【０２３２】
（１）レディ状態（“００００００”−“００００１０”）
“００００００”は通常のレディ状態であり、“００００１０”はバスマスタから除算器へのアクセスにおいて、レジスタライト命令直後にレジスタリード命令が出された場合にのみ遷移する状態である。この実施例の除算器の構成では、バスマスタからレジスタライト命令直後にレジスタリード命令を発行されると、正常な値を出力することができない。したがって、バスマスタからレジスタライト命令直後にレジスタリード命令が発行された場合、通常のレディ状態“００００００”とは異なり、バスマスタのリードのバスサイクルを延長させて正常なリードデータが準備できる時間を確保するための状態として、“００００１０”が設けられている。
【０２３３】
（２）除算前処理（“０００００１”−“１００００１”）
非回帰法アルゴリズムに入る前準備期間である。“０００００１”はバスマスタからライトされたデータを除算器内部のＨＲＬに転送するサイクルであり、“１００００１”は非回帰法の１サイクル目で使用する、“前回の演算結果のＭＳＢ（符号）”を求めるために使用される。
【０２３４】
（３）非回帰法（“１０００１１”−“００１１１０”）
非回帰法の処理を３３サイクル行う。ただし、３３サイクル目（“００１１１０”）は他と少しだけ異なる。結果の余は３２サイクル目に求められるため、このサイクルにはＨＲＨはデータを取り込まない。
【０２３５】
（４）除算後処理（“００１１１０”−“００１１００”）
非回帰法で必要な事後処理用サイクルである。“００１１１１”では余の足し戻し（引き戻し）と、商が負の場合の１加算を実行し、“００１１１１”と“００１１０１”の２状態で被除数が負で割り切れる場合の商・余補正を行っている。ＲＡＲ、ＲＳＲへのセットは、“００１１１０”，“００１１００”で行われる。
【０２３６】
（５）オーバーフロー処理（“０００１１０”−“０００１１１”）
“０００１１０”状態が点線で示されているのは、オーバーフロー状態への遷移が、普段状態遷移を司っている回路とは別の回路で行われるからである。また、この状態は、表面上１サイクルに見えない（“１００１１０”と“０００１１０”で半サイクルずつ）ので、点線で表している。“０００１１１”ではＲＡＲ，ＲＳＲのセットを行っている。
【０２３７】
このように除算器では、１つの除算に上記のように３８サイクルもの長時間を費やすものである。このように実際には除算には比較的長い時間を費やすものであるにもかかわらず、前記図１のようなシステムとするとともに、図２５のような並列演算処理を行うようにすることにより、上記除算による遠近処理と、積和演算等による座標変換とクリップ処理とを同時並行的に行うようにすることにより、実質的な３次元画像処理を大幅に高速にすることができる。
【０２３８】
図４０には、図１のシングルチップマイクロコンピュータの一実施例のレイアウト図が示されている。同図には、図１の各回路ブロックのうち、主要な回路が代表として例示的に示されている。各回路ブロックは、前記のようにバスが３つに分割されることに応じて、各バスが短く、かつ接続関係が容易になるよう配置されている。同図には、上記３に分割されたバスのうち、第１バスが示され、他の第２バス及び第３バスは、それらに対応した回路ブロックに隣接して配置されるものと理解されたい。
【０２３９】
中央処理装置ＣＰＵとキャッシュメモリのキャッシュデータ部ＣＡＣＨＥ−Ｄ１，Ｄ２は、第１バスを挟んで配置される。キャッシュメモリのキャッシュタグ部ＣＡＣＨＥ−Ａとキャッシュコントロール部ＣＡＣＨＥ−Ｃは、乗算器ＭＵＬＴと並んで配置される。上記中央処理装置ＣＰＵとキャッシュメモリ及び乗算器ＭＵＬＴがチップの約上半分を占める。
【０２４０】
バスステートコントローラＢＳＣは、キャッシュデータ部ＣＡＣＨＥ−Ｄ１，Ｄ２とにより中央処理装置ＣＰＵを挟むように配置される。図示しない第２のバスに接続されるブレークコントローラＵＢＣと除算器ＤＩＶＵと割り込みコントロール回路ＩＮＴ１，ＩＮＴ２及び直接メモリアクセス制御装置ＤＭＡＣと、そのデータバッファＤＡＴＡ１，ＤＡＴＡ２がチップの左下部に集中して配置される。
【０２４１】
そして、図示しない第３のバスに接続されるタイマＦＲＴ，ＷＤＴ及びシリアルコミニュケーションインターフェイスＳＣＩが並んで配置される。これらの周辺モジュールは、そのバスサイクルが遅くされることにより、出力回路の動作が相対的に遅い、既存の回路をそのまま利用することにより、その占有面積が小さくできる。チップの周辺には、前記のような端子に対応した入力バッファ、出力バッファ及び入出力バッファが配置される。
【０２４２】
図４１には、この発明に係るシングルチップマイクロコンピュータの応用例が示されている。同図（Ａ）には、そのブロック図が示され、（Ｂ）には外観図が示されている。この実施例では、ペン入力の携帯用マイクロコンピュータに向けられている。
【０２４３】
この実施例では、（Ａ）のブロック図に示すように、マイクロコンピュータ（microcomputer)が前記図１のようなシングルチップマイクロコンピュータにより構成されるものであり、それと外部メモリ(Memory)及びＡＳＩＣ（特定用途向ＩＣ）により構成される周辺ＬＳＩから構成される。端末装置としてＬＣＤにペン入力機能を加えた表示装置や、音声入出力回路が設けられる。（Ｂ）の外観図に示すように、パームトップ型又はノートブック型のような薄型軽量で、ＬＣＤ表示部にペン入力部が備えられ、キー入力用のスイッチパネルが設けられる。
【０２４４】
図４２には、図４０のペン入力の携帯用マイクロコンピュータの一実施例のブロック図が示されている。シングルチップマイクロコンピュータＭＣＵは、バッテリー（Battery)駆動される。マイクロフォン(Microphone)は、音声入力用に用いられる。スピーカー(Speaker) は音声出力用に用いられる。
【０２４５】
ＮＣＵは、電話回線用の入出力インターフェイスであり、電話器(Telephone) によるデータ入力又は出力を行うようにされる。マイクロコンピュータシステムとしては、外部バスにＬＣＤコントローラを介して表示とペン入力を行うＬＣＤパネルが設けられる。外部メモリとしてＳＤＲＡＭ又はＰＳＲＡＭが用いられる。これらのメモリは、必要に応じて上記電池電圧によりバッテリーバックアップされる。
【０２４６】
マスクＲＯＭは、データ処理のためのプログラムや文字パターンが記憶される。ＰＣＭＣＩＡＩ／Ｆは、パーソナル  コンピュータ  メモリカード  インターナショナル  アソシエイション(Personal Computer Memory Card International Association) インターフェイスである。Ｉ／Ｏは、無線ＬＡＮ（ローカル・エリア・ネットワーク）等の拡張周辺インターフェイスである。そして、メモリカード（ROM card) と（RAM card) が脱着可能な外部メモリとして使用できるようにされる。
【０２４７】
上記の実施例から得られる作用効果は、下記の通りである。すなわち、
（１）内部のバスを３つに分けて、第１のバスには中央処理装置及びキャッシュメモリが接続し、第２のバスには直接メモリアクセス制御回路、外部バスインターファイスを接続し、上記第１のバスと第２のバスには、上記第１のアドレスバスと第２のアドレスバスとを選択的にを接続させるバストランシーバ機能を持つブレークコントローラを設け、上記第１及び第２のバスサイクルに対して低速なバスサイクルとされた第３のバスには、周辺モジュールを接続し、上記第２のバスと第３のバスとの間でのデータ転送と同期化を行うバスステートコントローラを設けることにより、信号伝達経路の負荷容量が減少するので信号伝達が高速に行うことができるとともに、動作速度が要求されない周辺モジュールを分離しているため、そこでの電流消費を減らすことができる。
【０２４８】
（２）内部のバスを３つに分けて、第１のバスには中央処理装置、上記第１のバスには、固定小数点方式の積和演算器を接続し、第２のバスには固定小数点方式の除算器を接続することにより、少ないサイクル数により積和演算処理が高速に行えるとともに、第２のバスには固定小数点方式の除算器を接続するものであるので、そこで演算結果をそのまま除算できるので３次元画像処理を高速に行うようにすることができる。
【０２４９】
（３）上記第３のバスに接続される周辺モジュールとして、フリーランニングタイマ、シリアルコミュニケーションインターフェイス又はウォッチドッグタイマのうち何れか少なくとも１つを設けることにより、データ処理の高速化には直接関与しない周辺モジュール用の低速バスサイクルを構成することができ、中央処理装置の高速化に追従させることなく、既存の周辺モジュールをそのまま使用できるから設計の効率化と周辺モジュールにおける低消費電力化を図ることができる。
【０２５０】
（４）上記ブレークコントローラは、直接メモリアクセス制御装置によるキャッシュメモリのデータの書き換えを監視する機能を持たせることにより、内部バスの分離による高速化や低消費電力化を図りつつ、直接メモリアクセス制御装置によるキャッシュメモリのデータの書き換えによるキャッシュデータの破壊を監視することができる。
【０２５１】
（５）上記の各回路ブロックをフルスタティック型ＣＭＯＳ回路により構成し、各回路ブロック毎にクロックパルスの供給／停止を制御するレジスタを含む動作モードコントローラを設けることにより、必要な回路ブロックに対してのみクロックを供給することができるから低消費電力化を図ることができる。
【０２５２】
（６）上記外部バスインターフェイスは、シンクロナスダイナミック型ＲＡＭのバーストリードモード及びシングルライトモードとダイナミック型ＲＡＭ及び擬似スタティック型ＲＡＭを直接アクセスできるインターフェイス機能を持たせることにより、直接にシンクロナスダイナミック型ＲＡＭ、ダイナミック型ＲＡＭ及び擬似スタティック型ＲＡＭ等を直接接続できるから使い勝手を良くすることができる。
【０２５３】
（７）外部バスインターフェイスのクロックパルスに対して位相を遅らせてクロックパルスを形成して中央処理装置に供給させることにより、シンクロナスダイナミック型ＲＡＭのセットアップ／ホールド時間を確保でき動作マージンの拡大を図ることができる。
【０２５４】
（８）シンクロナスダイナミック型ＲＡＭのバーストモードにより読み出されるデータと上記キャッシュメモリの１ブロックのデータ及び直接メモリアクセス制御装置による単位のデータ転送とには整合性を持たせることにより、効率のよいデータ転送が可能になる。
【０２５５】
（９）外部バスインターフェイスにおいて、中央処理装置が特定のアドレス空間をアクセスすることにより起動がかけられて、ロウアドレスストローブ信号、カラムアドレスストローブ信号及びライトイネーブル信号を共にロウレベルにし、アドレス信号の一部を用いてシンクロナスダイナミック型ＲＡＭの動作モード設定の設定に必要な制御信号を発生させるメモリ制御信号発生回路を設けることにより、中央処理装置によるシンクロナスダイナミック型ＲＡＭのモード設定を簡単に行うことができる。
【０２５６】
（１０）上記キャッシュメモリとしては、複数からなるタグメモリ及びそれぞれに対応したデータメモリにより構成し、上記タグメモリ及びデータメモリにはＣＭＯＳスタティック型メモリセルを用い、その読み出し信号を増幅するセンスアンプとしてＣＭＯＳラッチ回路と、かかるＣＭＯＳラッチ回路に動作電流を供給するＰチャンネル型ＭＯＳＦＥＴとＮチャンネル型ＭＯＳＦＥＴからなるパワースイッチＭＯＳＦＥＴからなるＣＭＯＳセンスアンプを用いることにより、信号増幅を行った後には直流電流が流れなくできるからキャッシュメモリにおける低消費電力化を図ることができる。
【０２５７】
（１１）上記複数からなるデータメモリに設けられるセンスアンプ又はセンスアンプとワード線の双方を、タグメモリからのヒット信号に対応したもののみを活性化させるようにすることにより、低消費電力化を図ることができる。
【０２５８】
（１２）上記複数からなるデータメモリは、キャッシュコントローラによって全部又は一部についてタグメモリからのヒット信号の伝達を無効にして中央処理装置による直接アクセスを可能にすることにより、ユーザーの多様な要求に応じた使い方に適合できる。
【０２５９】
（１３）中央処理装置とキャシュメモリとを含むシングルチップのマイクロコンピュータにおいて、キャッシュメモリとしてＣＭＯＳスタティック型メモリセルを記憶素子として用い、その読み出し信号を増幅するセンスアンプとしてＣＭＯＳラッチ回路及びかかるＣＭＯＳラッチ回路に動作電流を供給するＰチャンネル型ＭＯＳＦＥＴとＮチャンネル型ＭＯＳＦＥＴからなるパワースイッチＭＯＳＦＥＴからなるＣＭＯＳセンスアンプを用いることにより、センスアンプでの信号増幅を行った後には直流電流が流れないから内蔵キャッシュメモリでの低消費電力化を図ることができる。
【０２６０】
（１４）上記複数からなるデータメモリは、タグメモリからのヒット信号に対応したもののセンスアンプのみを活性化させることにより、キャッシュメモリ内蔵のシングルチップのマイクロコンピュータの低消費電力化を図ることができる。
【０２６１】
（１５）バス使用権制御信号に従ってスレーブモードに設定されたときには第１の端子をバスリクエスト信号に、第２の端子をバスアクノリッジ信号にそれぞれ使用し、マスターモードにされるとき上記第１の端子をバスグラント信号に、上記第２の端子をバスレリーズ信号にそれぞれ切り換えて使用することにより、１つのシングルチップマイクロコンピュータがバス使用権制御信号に従ってスレーブモード又はマスターモードとして使用でき、しかも同じ端子を切り換えて使用するものであるから、外部端子数が減るとともに接続が簡単となって使い勝手が良くなる。
【０２６２】
（１６）遠近処理されたＮ−１番目座標に対するクリピング処理を中央処理装置により行い、特定の物体固有のＮ＋１番目座標点を指定された視点を原点とする座標に変換する座標変換処理を中央処理装置と積和演算器により行い、上記クリッピング処理と座標変換処理と時間的に並行して座標変換処理が終わったＮ番目座標について遠近処理を除算器により行うことにより、中央処理装置又はこれと積和演算器によるクリピング処理と座標変換処理と時間的に同時並行して比較的長い時間を費やす遠近処理を除算器により行うことにより、高速な３次元画像処理が実現できる。
【０２６３】
（１７）上記中央処理装置と積和演算器はキャッシュメモリとともに第１のバスに接続され、上記除算器は直接メモリアクセス制御回路、外部バスインターファイスとともに第２のバスに接続され、上記第１と第２のバスに接続されるとともに、第１のバスのアドレスバスを第２のバスのアドレスバスに選択的に接続させるバストランシーバ機能を持つブレークコントローラが設けられ、上記第１及び第２のバスサイクルに対して低速なバスサイクルを持つ周辺モジュールが接続される第３のバスと、上記第２のバスと第３のバスとの間での信号転送と同期化を行うバスステートコントローラとが設けられるシングルチップのマイクロコンピュータにより上記３次元画像処理を行うことにより、比較的簡単な構成により高速な３次元画像処理を実現することができる。
【０２６４】
以上本発明者よりなされた発明を実施例に基づき具体的に説明したが、本願発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、図１の実施例において、中央処理装置ＣＰＵは、ＲＩＳＣ型プロセッサである必要はなく、種々の実施形態を採ることができる。この実施例のシングルチップマイクロコンピュータは、前記のような各回路ブロックを登録しておいて、ユーザーの仕様に応じて必要な回路ブロックを搭載するというＡＳＩＣにより構成するものであってもよい。
【０２６５】
本願におけるシングルチップマイクロコンピュータとは、ＲＯＭとＲＡＭを内蔵したマイクロコンピュータという狭い意味ではなく、１個の半導体基板上に形成されてなるデータ処理装置といような広い意味で用いている。それ故、本願に係るシングルチッブマイクロコンピュータは、中央処理装置と、積和演算器と、除算器とを有し、少なくとも上記積和演算器と除算器とが並列処理可能とされ、単一の半導体基板上に形成されてなるデータ処理装置というように表現できる。あるいは、連続読み出し可能な外部メモリが接続可能とされ、キャッシュメモリと、上記キャッシュメモリと１ラインのデータ長に等しいデータを外部メモリから連続して読み込み可能な手段とを単一の半導体基板上に備えてなるデータ処理装置ともいうことができる。
【０２６６】
また、モード設定可能な外部メモリが接続可能とされ、上記モード設定をするためのデータバス端子以外の外部端子を介して上記メモリに転送可能な手段を単一の半導体基板上に備えてなるデータ処理装置ということもできる。さらに、クロックに同期して、アドレス、データを入出力する外部メモリが接続可能とされるデータ処理装置であって、上記メモリ及び当該データ処理装置に必要なクロックを形成する手段を単一の半導体基板上に形成してなるデータ処理装置、あるいは３２ビット単位でメモリアクセスし、１６ビット固定長命令を実行する中央処理装置と、命令／データ混在型のキャッシュメモリとを具備し、メモリからのロード／ストアを行う命令を偶数ワード・バウンダリに置くようにしてなるデータ処理装置ともいうことができる。
【０２６７】
この発明は、上記のような広い意味でのシングルチップマイクロコンピュータ及びそれを用いた３次元画像処理に適用できるものである。
【図面の簡単な説明】
【０２６８】
【図１】この発明に係るシングルチップマイクロコンピュータの一実施例を示すブロック図である。
【図２】この発明に係るシングルチップマイクロコンピュータの一実施例の左半分を示すピン配置図である。
【図３】この発明に係るシングルチップマイクロコンピュータの一実施例の右半分を示すピン配置図である。
【図４】この発明に係るシングルチップマイクロコンピュータに内蔵される動作モードコントローラＭＣの一実施例を示すブロック図である。
【図５】この発明に係るシングルチップマイクロコンピュータに内蔵されるブレークコントローラＵＢＣの基本的な一実施例を示すブロック図である。
【図６】この発明に係るシングルチップマイクロコンピュータに内蔵されるブレークコントローラＵＢＣの一実施例を示す詳細なブロック図である。
【図７】この発明に係るシングルチップマイクロコンピュータに内蔵されるバスステートコントローラＢＳＣの一実施例を示すブロック図である。
【図８】この発明に係るシングルチップマイクロコンピュータに内蔵されるバスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦとによるシンクロナスダイナミック型ＲＡＭとの接続例を示すブロック図である。
【図９】図８のＳＤＲＡＭのバーストリード動作を説明するためのバスサイクル波形図である。
【図１０】図８のＳＤＲＡＭのシングルライト動作を説明するためのバスサイクル波形図である。
【図１１】この発明に係るシングルチップマイクロコンピュータにおける基本バスサイクルを説明するための波形図である。
【図１２】この発明に係るシングルチップマイクロコンピュータに内蔵されるバスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦとによるダイナミック型ＲＡＭとの接続例を示すブロック図である。
【図１３】図１２のＤＲＡＭの高速ページモードを説明するためのバスサイクル波形図である。
【図１４】この発明に係るシングルチップマイクロコンピュータに内蔵されるバスステートコントローラＢＳＣと外部バスインターフェイスＯＢＩＦとによる擬似スタティック型ＲＡＭとの接続例を示すブロック図である。
【図１５】この発明に係るシングルチップマイクロコンピュータを用いてマルチプロセッサ接続した場合の一実施例を示すブロック図である。
【図１６】図１５のＳ−ＭＣＵからメインバス上のＳＤＲＡＭをアクセスする場合を説明するためのタイミング図である。
【図１７】この発明に係るシングルチップマイクロコンピュータに内蔵されるキャッシュメモリの一実施例を示すブロック図である。
【図１８】この発明に係るキャッシュメモリの一実施例を示すブロック図である。
【図１９】この発明に係るシングルチップマイクロコンピュータに内蔵されるキャッシュメモリの一実施例を示すブロック図である。
【図２０】この発明に係るキャッシュメモリを説明するための動作概念図である。
【図２１】この発明に係るシングルチップマイクロコンピュータに内蔵される上記直接メモリアクセス制御装置ＤＭＡＣの一実施例を示すブロック図である。
【図２２】この発明に係るＤＡＭＣとその周辺部の一実施例を示す概略ブロック図である。
【図２３】この発明に係るシングルチップマイクロコンピュータに内蔵される除算器ＤＩＶＵの一実施例を示すブロック図である。
【図２４】３次元物体を２次元からなる表示画面上に遠近法により表示するための３次元画像処理の概念を説明するための説明図である。
【図２５】この発明に係るシングルチップマイクロコンピュータを用いた３次元画像処理方法を説明するための信号処理図である。
【図２６】命令／データ混在型キャッシュのミス率とライン・サイズとの関係の一例を説明するための特性図である。
【図２７】命令／データ混在型キャッシュのミス率とライン・サイズとの関係の他の一例を説明するための特性図である。
【図２８】命令／データ混在型キャッシュのミス率とライン・サイズとの関係の他の一例を説明するための特性図である。
【図２９】キャッシュメモリに対するアクセスの説明図である。
【図３０】平均アクセス時間とライン・サイズとの関係を説明するための特性図である。
【図３１】この発明に係るキャッシュメモリの一実施例を示すブロック図である。
【図３２】図３１のキャッシュメモリの動作の説明図である。
【図３３】この発明に係るシングルチップマイクロコンピュータにおける各バスサイクルを説明するためのタイミング図である。
【図３４】ＳＤＲＡＭのモード設定動作を説明するたのタイミング図である。
【図３５】ＳＤＲＡＭの一実施例を示すブロック図である。
【図３６】積和演算動作を説明するためのブロック図である。
【図３７】３次元画像処理の座標変換処理のための積和演算動作の説明図である。
【図３８】この発明に係る除算器の一実施例を示すブロック図である。
【図３９】上記乗算器の動作を説明するための状態遷移図である。
【図４０】図１のシングルチップマイクロコンピュータの一実施例を示すレイアウト図である。
【図４１】この発明に係るシングルチップマイクロコンピュータの応用例が示す概略構成図である。
【図４２】この発明に係るシングルチップマイクロコンピュータの応用例であるペン入力の携帯用マイクロコンピュータの一実施例を示すブロック図である。
【符号の説明】
【０２６９】
ＣＰＵ…中央処理装置、ＭＵＬＴ…乗算器、ＩＮＴＣ…割り込みコントーラ、ＤＭＡＣ…直接メモリアクセス制御装置、ＤＩＶＵ…除算器、ＦＲＭ…フリーランニングタイマ、ＷＤＴ…ウォッチドッグタイマ、ＳＣＩ…シリアルコミュニケーションインターフェイス、ＡＢ１〜ＡＢ４…アドレスバス、ＤＢ１〜ＤＢ４…データバス、ＢＳＣ…バスステートコントローラ、ＤＭＡＣ…直接メモリアクセス制御装置、ＯＢＩＦ…外部バスインターフェイス、ＭＣＴＧ…メモリ制御信号発生回路、ＵＢＣ…ブレークコントローラ、ＩＮＴＣ…割り込みコントローラ、ＣＤＭ…データメモリ（キャッシュ）ＴＡＧ…タグメモリ（キャッシュ）、ＣＡＣ…キャッシュコントローラ、ＣＰＧ…パルス発生回路。
ＡＢ１…第１アドレスバス、ＤＢ１…第１データバス、ＡＢ２…第２アドレスバス、ＤＢ２…第２データバス、ＡＢ３…第３アドレスバス、ＤＢ３…第３データバス、ＣＢ…コントールバス、ＡＢ４…外部アドレスバス、ＤＢ４…外部データバス、Ｂ１…第１バス、Ｂ２…第２バス、Ｂ３…第３バス、Ｂ４…第４バス。  ＭＣＵ…シングルチップマイクロコンピュータ、ＤＲＡＭ…ダイナミック型ＲＡＭ、ＳＤＲＡＭ…シンクロナスダイナミック型ＲＡＭ、ＰＳＲＡＭ…擬似スタティック型ＲＡＭ、ＳＲＡＭ…スタティック型ＲＡＭ。
Ｓ−ＭＣＵ…スレーブ側マイクロコンピュータ、Ｍ−ＭＣＵ…マスタ側マイクロコンピュータ。
Ｑ１〜Ｑ２９…ＭＯＳＦＥＴ、Ｎ１〜Ｎ７…ＣＭＯＳインバータ回路、Ｗ０，Ｗ１…ワード線、ＤＬ０，／ＤＬ０〜ＤＬ１，／ＤＬ１…相補データ線、ＣＤＬ０，／ＣＤＬ０…共通データ線。
ＩＲ…命令レジスタ、ＡＢ…アドレスバッファ、ＤＢ…データバッファ、ＪＲ…除数レジスタ、ＨＲＬ…被除数下位＆商保存レジスタ、ＨＲＨ…被除数上位＆余保存レジスタ、ＣＯＮＴ…制御レジスタ、ＶＣＴ…割り込みベクタ、ＲＡＲ…余長期保存レジスタ、ＲＳＲ…商長期保存レジスタ、ＦＡ＆ＣＬＡ…フルアダー＆キャリールックアヘッド、ＡＵＤＡ＆ＡＵＣＬＡ…１加算器、ＬＤＭＣＡ…状態制御回路、ＬＤＭＣＢ…オーバーフロー処理回路、ＬＤＰＲＭ…Ｉ／Ｏ制御回路。
２２…ＳＤＲＡＭ、３０…モードレジスタ、２００Ａ，２００Ｂ…メモリアレイ、２０１Ａ，２０１Ｂ…ロウデコーダ、２０２Ａ，２０２Ｂ…センスアンプ及びカラム選択回路、２０３Ａ，２０３Ｂ…カラムデコーダ、２０５…カラムアドレスバッファ、２０６…ロウアドレスバッファ、２０７…カラムアドレスカウンタ、２０８…リフレッシュカウンタ、２１０…入力バッファ、２１１…出力バッファ、２１２…コントローラ。
【図１】
2006004444.tif 000003
【図４】
2006004444.tif 000004
【図５】
2006004444.tif 000005
【図７】
2006004444.tif 000006
【図９】
2006004444.tif 000007
【図１３】
2006004444.tif 000008
【図１６】
2006004444.tif 000009
【図２１】
2006004444.tif 000010
【図２２】
2006004444.tif 000011
【図２４】
2006004444.tif 000012
【図２７】
2006004444.tif 000013
【図３０】
2006004444.tif 000014
【図３１】
2006004444.tif 000015
【図３２】
2006004444.tif 000016
【図３３】
2006004444.tif 000017
【図３４】
2006004444.tif 000018
【図３５】
2006004444.tif 000019
【図３９】
2006004444.tif 000020
【図４０】
2006004444.tif 000021
【図４１】
2006004444.tif 000022
【図４２】
2006004444.tif 000023
【図２】
2006004444.tif 000024
【図３】
2006004444.tif 000025
【図６】
2006004444.tif 000026
【図８】
2006004444.tif 000027
【図１０】
2006004444.tif 000028
【図１１】
2006004444.tif 000029
【図１２】
2006004444.tif 000030
【図１４】
2006004444.tif 000031
【図１５】
2006004444.tif 000032
【図１７】
2006004444.tif 000033
【図１８】
2006004444.tif 000034
【図１９】
2006004444.tif 000035
【図２０】
2006004444.tif 000036
【図２３】
2006004444.tif 000037
【図２５】
2006004444.tif 000038
【図２６】
2006004444.tif 000039
【図２８】
2006004444.tif 000040
【図２９】
2006004444.tif 000041
【図３６】
2006004444.tif 000042
【図３７】
2006004444.tif 000043
【図３８】
2006004444.tif 000044
【手続補正書】
【提出日】平成17年8月9日(2005.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部メモリと共に用いられるシングル・チップ・データ処理装置であって、
上記外部メモリは、複数の端子を含み、かつ、複数のモードの中の１つのモードで動作し、上記外部メモリの上記モードは、上記複数の端子を介して供給された信号によって決定され、
アドレス空間をアクセス可能にされ、上記アドレス空間内のアドレスを示すためのアドレス信号を供給する中央処理装置と、
上記外部メモリの上記複数の端子に電気的に連結される複数の外部端子と、
上記中央処理装置と上記複数の外部端子に電気的に連結されたメモリ制御信号発生回路と、を含み、
上記メモリ制御信号発生回路は、上記中央処理装置から発生されたアドレス信号の１部にしたがって、上記外部メモリのモードをセットするための制御信号を発生する、
シングル・チップ・データ処理装置。
【請求項２】
請求項１において、
上記外部メモリは、シンクロナス・ダイナミック・ランダム・アクセス・メモリを含み、
上記メモリ制御信号発生回路は、所定電圧レベルのアドレス／ストローブ信号と、所定電圧レベルのライト・イネーブル信号とを発生し、それによって、上記アドレス信号の１部によって示されるモードが上記シンクロナス・ダイナミック・ランダム・アクセス・メモリに設定される、
シングル・チップ・データ処理装置。
【請求項３】
請求項２において、
上記アドレス・ストローブ信号は、ロー・レベルのロー・アドレス・ストローブ信号と、ロー・レベルのカラム・アドレス・ストローブ信号とを含み、
上記所定電圧レベルの上記ライトイ・ネーブル信号は、ロー・レベルのライト・イネーブル信号である、
シングル・チップ・データ処理装置。
【請求項４】
外部メモリとともに用いられるデータ処理装置であって、
アドレス空間をアクセス可能で、上記アドレス空間内のアドレスを示すためのアドレス信号を供給する中央処理装置と、
上記外部メモリに接続される複数の外部端子と、
上記外部端子に接続され、上記外部メモリにアクセスするための複数の制御信号を生成可能な外部インタフェース回路とを有し、
上記複数の外部端子は、上記中央処理装置が供給するアドレス信号を出力可能で、外部メモリのアドレス端子と接続可能な複数のアドレス端子と、上記複数の制御信号を出力するための複数の制御信号端子と、を含み、
上記外部インタフェース回路は、上記複数の制御信号が所定の状態のとき、上記中央処理装置より出力されるアドレス信号の一部を上記外部メモリにおけるモード設定情報として上記複数のアドレス端子より出力する、
データ処理装置。
【請求項５】
請求項４において、
上記データ処理装置は上記外部メモリを含む複数の外部デバイスを接続することが可能で、
上記複数の制御信号は、
上記外部メモリに対してデータを書き込むことを許可するためのライトイネーブル信号と、
上記中央処理装置が供給する上記アドレス信号をもとに上記複数の外部デバイスのうちの何れか一つのアクセス先を指定するための外部デバイス選択信号と、
ロウアドレスストローブ信号と、
カラムアドレスストローブ信号とを含む、
データ処理装置。
【請求項６】
請求項５において、
更に、上記外部メモリに供給するための外部クロック信号を出力するための外部クロック端子を有し、
上記外部インタフェース回路は、上記ライトイネーブル信号が許可状態にされているとき、上記外部クロック信号に応じて、上記アドレス信号及び複数の制御信号を出力し、上記外部メモリのモード設定を行う、
データ処理装置。
【請求項７】
請求項６において、
上記中央処理装置が接続され、上記アドレス信号を伝達する第１バスと、
上記外部インタフェース回路に接続される第２バスと、
上記第１バスに接続され、上記アドレス信号を選択的に上記第２バスに伝達する制御を行う制御回路とを有する、
データ処理装置。
【請求項８】
外部メモリとともに用いられるデータ処理装置であって、
上記外部メモリを含む複数の外部デバイスを割り付けられるアドレス空間にアクセス可能で、上記アドレス空間のアドレスを指定するためのアドレス信号を供給可能な中央処理装置と、
上記中央処理装置に接続され、上記アドレス信号を伝達可能な第１バスと、
上記外部メモリにアクセスするための複数の制御信号を外部へ出力するインタフェース回路と、
上記インタフェース回路に接続される第２バスと、
上記第１バスに接続され、上記アドレス信号を選択的に上記第２バスに伝達する制御回路とを有し、
上記複数の外部デバイスに接続され、上記アドレス信号を出力する複数のアドレス信号端子と、上記複数の制御信号を出力する複数の制御端子とを有し、
上記インタフェース回路は、上記複数の制御信号が所定状態のとき、上記第１バス及び第２バスを介して供給されるアドレス信号の一部を上記外部デバイスの動作モードを指定するためのモード設定情報として上記アドレス信号端子を介して外部へ出力する、
データ処理装置。
【請求項９】
請求項８において、
上記複数の制御信号は、上記外部デバイスに対する書込を許可する書込許可信号と、上記アドレス信号を元にアクセス対象となる外部デバイスを指定する選択信号と、ロウアドレスストローブ信号と、カラムアドレスストローブ信号とを含み、
上記複数の制御信号が所定の状態とは、上記書込許可信号が許可状態を示すとき、上記選択信号、ロウアドレスストローブ信号およびカラムアドレスストローブ信号がアサートされた状態であって、上記アドレス信号端子を介して、上記外部メモリのアドレス端子に対してモード設定情報を出力する、
データ処理装置。
【請求項１０】
請求項４または８において、
上記複数の制御信号は、上記アドレス信号の一部をもとに、上記外部メモリを含む外部デバイスの何れか一つにアクセスするための外部選択信号を含む、
データ処理装置。