(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサを用いたデータ処理装置であって、
マイクロプロセッサであって、データ処理命令を実行し、データ・制御・アドレス信号を伝達するバスに接続し、前記制御信号は入力または出力動作を示す入出力制御信号と、メモリアクセスを示すメモリアクセス制御信号と、１アドレス値を与えて複数のアドレス可能なメモリ位置へのアクセス要求を示すバースト要求信号とを含み、前記マイクロプロセッサはキャッシュメモリを備える、マイクロプロセッサと、
出力装置と、
前記バスと出力装置に結合し、前記マイクロプロセッサが前記バスにアドレス値と共に入出力制御信号を与え、かつ、前記バースト要求信号を与えないならば、これに応じて、データを前記マイクロプロセッサから受けて前記出力装置から出力する、入出力装置コントローラと、
前記マイクロプロセッサと授受する入力および出力に対応するディジタルデータを記憶し、アドレス空間を持つ、主読み出し／書き込みメモリと、
前記バスと主読み出し／書き込みメモリに接続し、前記マイクロプロセッサが諸信号と共にメモリアクセス制御信号により前記バスにアドレス値を与えるとこれに応じて、前記主読み出し／書き込みメモリへのアクセスを制御する、メモリコントローラと
を備え、
前記メモリコントローラは主読み出し／書き込みメモリのキャッシュ不可部分へのキャッシュアクセスを阻止し、
また前記マイクロプロセッサが入出力制御信号と共にバースト要求信号を与えるとこれに応じて、前記メモリコントローラは前記主読み出し／書き込みメモリのキャッシュ不可部分へのバーストメモリアクセスを可能にする、
マイクロプロセッサを用いたデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はマイクロプロセッサを用いたデータ処理装置の分野に関し、より特定すると、メモリバッファ管理方式に関する。
【０００２】
【従来の技術】
現在の高性能のデータ処理装置は、中央処理装置（ＣＰＵ）として単一チップのマイクロプロセッサを用い、主メモリとして半導体ランダムアクセスメモリ（ＲＡＭ）を用いて実現している。主メモリは一般にダイナミックＲＡＭ（ＤＲＡＭ）で実現しており、密度が高くビット当たりの価格は低い。しかし従来のＤＲＡＭのアクセス時間とサイクル時間は比較的遅く、最新のマイクロプロセッサのクロック速度に追いつくことができない。
【０００３】
従来のマイクロプロセッサを用いたデータ処理装置は、主メモリのアクセス速度の限界を克服しかつ高密度で低価格のＤＲＡＭを得るために、キャッシュメモリを用いている。キャッシュメモリは一般に高速のスタティックＲＡＭ（ＳＲＡＭ）の小さなブロックであって、マイクロプロセッサと同じチップ上かまたはチップ外（またはその両方）にあり、近い将来アクセスする可能性のあるメモリ位置の内容を記憶する。一般にキャッシュメモリは、最近アクセスしたメモリ位置の近くのメモリ位置の内容を記憶する。マイクロプロセッサはメモリに逐次にアクセスすることが多いので、逐次のサイクルで行う逐次のメモリアクセスは、メモリ空間内の互いにごく近くのメモリアドレスにアクセスする。したがって、隣のメモリ位置の内容をキャッシュ内に記憶すれば、マイクロプロセッサから主メモリの代わりにキャッシュメモリにアクセスすることにより、メモリのかなりの部分にアクセスすることができる。このように、キャッシュメモリを用いることにより、装置全体の性能が向上する。最近のマイクロプロセッサの中には多レベルのキャッシュメモリを備えているものがあり、レベルが上がるに従ってキャッシュメモリの容量が増加し（速度は減少する）、性能が最適になる。キャッシュメモリを巧みに設計し利用することにより、主ＤＲＡＭメモリへのアクセスをできるだけ減らして、装置の性能を大きく向上させることができる。
【０００４】
マイクロプロセッサを用いた装置のメモリアクセス性能を向上させる別の方法は、通常「バースト」アクセスサイクルと呼ぶ、特殊なメモリアクセスサイクルを用いることである。バーストメモリアクセスサイクルは、メモリ装置の動作において、一連のメモリ位置にアクセスするのに用いる。一般に、バーストアクセスはマイクロプロセッサと主メモリの間に置いたメモリコントローラチップにより行い、マイクロプロセッサが与えるアドレス情報と制御信号に応じて動作する。バーストサイクルはメモリアクセスの性能を向上させるのに非常に効果がある。たとえば８バイトのバスを持つ最近の装置では、最高のキャッシュを用いた場合には、わずか５バスサイクル（２−１−１−１）で単一のメモリアドレスを与えることにより、１バーストサイクルで３２バイトのメモリにアクセスすることができる。またバスサイクルシーケンス８−３−３−３（全体で１７バスサイクル）で３２バイトのアクセスを行うページモードＤＲＡＭを用いることにより、また最高の場合はバスサイクルシーケンス６−１−１−１（全体で９バスサイクル）で３２バイトのバーストアクセスを行う早期データ出力(Early Data Out)（ＥＤＯ）および同期ＤＲＡＭなどの特殊なＤＲＡＭ機能を用いることにより、バーストアクセスは非常に効率的になる。非バーストの場合に比べるとこれは格段の進歩である。非バーストで、８度の別個の４バイト読み出し（非バーストアクセスは一般に４バイトより長くないので）を１グループとしてアクセスすると、３２バイト線にアクセスするのに６４サイクル必要である。このように、バーストモードメモリアクセスは非バーストサイクルに比べて一般に２倍から６倍速い。
【０００５】
いわゆる「ペンティアム級」のマイクロプロセッサ（インテルコーポレーションが発売しているＰＥＮＴＩＵＭマイクロプロセッサと互換性のある機能と命令セットを持つマイクロプロセッサ）などの、よく知られた「ｘ８６」構造を用いたマイクロプロセッサでは、バーストメモリアクセスはキャッシュ動作にリンクしている。言い換えると、ｘ８６構造のマイクロプロセッサのバーストメモリ動作は、キャッシュ書込(cache line fill) 動作（メモリから読み出す）およびキャッシュからメモリへの書込(write-back)動作（メモリに書き込む）に関してだけ行う。これらのマイクロプロセッサをキャッシュ構造にしてほとんどのデータおよび命令の検索をキャッシュメモリにより行う場合、キャッシュ動作にバーストメモリアクセスを行えば性能は極めて高くなる。
【０００６】
【発明が解決しようとする課題】
一般にキャッシュ化の動作は「真の」メモリ位置に対して優れている（従来のメモリアクセス動作では、マイクロプロセッサは真のメモリ位置にだけデータの書き込みまたは読み出しを行う）。というのは、マイクロプロセッサはキャッシュのメモリ位置の値と主メモリのメモリ位置の値とを一致させることができるからである。同じメモリ位置についてキャッシュの値と主メモリの値が同じであれば、主メモリの値の代わりにキャッシュの値を読んでも問題はない。しかし、たとえば入出力装置の状態を含むメモリ位置や、グラフィックスアクセラレータにより変えられるスクリーンバッファのメモリ位置の場合は、メモリ位置が揮発性であってメモリ位置のキャッシュの値が古くなっていることがよくある。主メモリ位置の代わりに揮発性のメモリ位置のキャッシュの値を読むと、装置の動作に大きな問題を生じる。したがって従来のＩＢＭのＰＣ構造では、一般にメモリコントローラが動作して、マイクロプロセッサがこれらの揮発性の位置を「キャッシュ可(cacheable) 」にして（すなわち、キャッシュメモリに記憶して）アクセスを阻止する。
【０００７】
たとえばメモリ写像レジスタは、従来のメモリアクセスでアクセスするが一般にキャッシュ可アクセスは阻止する領域である。というのは、メモリ写像レジスタは頻繁にポーリングして装置の状態の変化を検出し、これに応じて何らかの制御を行うからである。メモリ写像レジスタをキャッシュ化した場合、装置の状態が変わるとメモリ写像レジスタの主メモリの値は変わるが、キャッシュ化した値は変わらない。メモリ写像レジスタを定期的にポーリングしてもキャッシュの値を読み出すだけであって、知りたい装置の状態の変化は検出しないので制御ができなくなる。別の例で、メモリ写像入出力機能などの非メモリ装置をキャッシュ化すると、オンチップキャッシュメモリの読み出しはバスサイクルとして現れないので、バスでの読み出し動作に応じて状態が変わる型の入出力装置では別の問題が生じる。またキャッシュは主メモリよりも更新された値を多く含むので、書き戻しキャッシュ化も非メモリ位置に関して問題を生じる。読出しキャッシュへの書き込みはバスに現れないので、これらの位置をキャッシュ化すると、バスに行った書き込みを再び命令するように見える。
【０００８】
揮発性なので一般にキャッシュ可アクセスを阻止するメモリ領域の別の例としてビデオメモリがある。ビデオメモリは論理的にはマイクロプロセッサのメモリ写像内にあり、物理的には主メモリ内にあるかまたは別個にある（グラフィックスアダプタ内など）。ビデオメモリはマイクロプロセッサ以外の装置（たとえば、グラフィックスプロセッサ、すなわちグラフィックスアダプタ）の制御の下にあることが多い。その内容はマイクロプロセッサの制御の外で頻繁に変えられるので、主マイクロプロセッサによるキャッシュ可アクセスには適していない。ビデオメモリの一部をマイクロプロセッサのキャッシュ内に記憶すると、グラフィックスプロセッサにより変えられるので、その後キャッシュの内容をアクセスしても無効になる可能性がある。
【０００９】
したがって従来のｘ８６構造のマイクロプロセッサでは、バースト可メモリアクセスはアクセスするメモリ位置がキャッシュ可であることにつながっている。たとえばＰＥＮＴＩＵＭマイクロプロセッサは、メモリにアクセス中は（マイクロプロセッサが端子Ｍ／ＩＯ＃に高論理レベルを与えることによりメモリアクセスであることを示す。ただし＃は信号が低論理レベルで活動状態であることを示す）端子ＣＡＣＨＥ＃に制御信号を出力することにより、バースト可メモリアクセスを要求する。この要求に応じて、メモリコントローラはマイクロプロセッサが与えたメモリアドレスがメモリ空間のキャッシュ可領域にあるかどうかを決定し、キャッシュ可領域内にある場合はマイクロプロセッサにＫＥＮ＃入力を表明し、バーストアクセスを行う。この従来の方法では、キャッシュ可アクセスが阻止されたメモリの領域にマイクロプロセッサがバースト可アクセスを要求した場合は、メモリコントローラはバースト可アクセスを行わず、ＫＥＮ＃の出力を停止して(deasserting) このことを示す。そして、所望のメモリ位置に単一転送アクセスを行う。
【００１０】
【課題を解決するための手段】
この発明はマイクロプロセッサ、たとえばＰＥＮＴＩＵＭ級のマイクロプロセッサ、を用いたデータ処理装置で実現する。マイクロプロセッサは入出力アドレス空間を持つ。入出力アドレス空間はメモリアドレス空間内の位置と共通のアドレス値を持ち、メモリ／入出力選択制御信号により選択できる。またマイクロプロセッサは、メモリへのキャッシュアクセス要求を示す制御出力を持つ。この発明ではマイクロプロセッサは、メモリアドレスの提示と組み合わせたキャッシュ要求信号と、入出力アクセスの選択とを表明することにより、キャッシュ不可メモリ領域へのバースト可アクセスを要求する。この装置はメモリコントローラを備える。メモリコントローラは、キャッシュ要求信号と入出力アクセス選択の組み合わせをメモリへのバースト可アクセスの要求と解釈してバースト可アクセスを行い、制御信号によりこのことをマイクロプロセッサに示す。
【００１１】
この発明の目的は、キャッシュ不可のメモリ位置にバースト可アクセスを行う、マイクロプロセッサを用いたデータ処理装置を提供することである。
この発明の別の目的は、このアクセスを読み出しにも書き込みにも行うことである。
この発明の他の目的や利点は、以下の説明と図面を参照すれば、当業者には明らかになる。
【００１２】
【発明の実施の形態】
【実施例】
図１を参照して、この発明の第１の好ましい実施態様を実現する例示のマイクロプロセッサを用いた装置２を詳細に説明する。図１に示すように、装置２は中央処理装置（ＣＰＵ）５を備える。この発明の実施態様では、ＣＰＵ５はよく知られた「ｘ８６構造」のマイクロプロセッサであり、好ましくはＰＥＮＴＩＵＭ級のマイクロプロセッサである。ＣＰＵ５はその一部にバスインターフェース装置（ＢＩＵ）８を備える。ＢＩＵ８はＣＰＵ５の内部の回路であって、ＣＰＵ５と装置２内の他の部分との間の通信を制御する。この発明のこの実施態様では、ＣＰＵ５のＢＩＵ８は、アドレスバスＡＢＵＳとデータバスＤＢＵＳと制御バスＣＢＵＳから成るバスに接続する。この技術では普通であるが、アドレスバスＡＢＵＳはＣＰＵ５が２進アドレスを与えて装置２の他の要素にアクセスするためのバスであり、データバスＤＢＵＳはＣＰＵ５と他の装置要素との間でディジタルデータを伝送するためのバスであり、制御バスＣＢＵＳは装置２の要素間に制御信号を伝えるためのバスである。
【００１３】
図１の装置２では、関連するコントローラにより種々の周辺要素がバスＡＢＵＳ、ＤＢＵＳ、ＣＢＵＳに接続し、通常の装置の機能を行う。装置２の主メモリ２０は、メモリコントローラ１０によりバスＡＢＵＳ、ＤＢＵＳ、ＣＢＵＳに結合する。メモリコントローラ１０はＣＰＵ５からアドレス値と制御信号を受けて対応する制御信号を主メモリ２０に与え、主メモリ２０はデータバスＤＢＵＳにより、ＣＰＵ５とデータを授受するなどの所望の動作を行う。また装置２はレベル３キャッシュメモリ２２を備える。キャッシュメモリ２２は通常の方法でキャッシュコントローラ１２に接続する。キャッシュコントローラ１２はバスＡＢＵＳ、ＤＢＵＳ、ＣＢＵＳに接続し、ＣＰＵ５とレベル３キャッシュメモリ２２との間のデータの伝送を制御する。この例では、レベル３キャッシュメモリ２２は装置２の第３レベルキャッシュメモリで、レベル１およびレベル２キャッシュメモリはＣＰＵ５内にある（図１にはレベル２キャッシュ６を示す）。
【００１４】
また装置２は入出力コントローラ１４を備える。入出力コントローラ１４はバスＡＢＵＳ、ＤＢＵＳ、ＣＢＵＳによりＣＰＵ５に接続し、また数個の入出力装置２４に接続する。入出力装置２４は、ビデオモニタや、キーボードや、位置決め装置や、ディスク駆動副装置など、装置２内の一般的な入力および出力周辺装置を含む。コントローラ１０、１２、１４は一般にいわゆる「チップセット」で実現され、ＣＰＵ５と共に動作する。さらに装置２はクロック発生回路１６を備える。クロック発生回路１６は周期的なクロック信号を線ＣＬＫに発生させてシステム２の各要素に（ＢＩＵ８を通してＣＰＵ５にも）与え、また種々の各装置要素内に内部クロック信号を発生させる。したがって装置２はデスクトップワークステーションや携帯用ノートブック型などの一般的な最新のコンピュータに対応する。コンピュータプログラムはディスク記憶装置（入出力装置２４の中の１つで表す）内に記憶し、主メモリ２０にダウンロードして動作させる。
【００１５】
メモリアクセスを行うには、ＣＰＵ５はバスＡＢＵＳにアドレス値を与え、同時に制御バスＣＢＵＳに該当する制御信号（読み出し／書き込み選択信号を含む）を与える。メモリコントローラ１０は該当する制御信号を主メモリ２０に与え、所望の位置にアクセスする。この例では、主メモリ２０の一部２０ｖはビデオメモリで、入出力機能２４の１つのグラフィックスアダプタ（すなわちコントローラ）により、バスＡＢＵＳ、ＤＢＵＳ、ＣＢＵＳ、または第２バス（図示せず）を用いて独立にアクセスすることができる。またはビデオメモリ２０ｖは、ＰＣＩビデオカードの場合のように、バス上の独自の装置として実現することもできる。メモリコントローラ１０の制御の下に（一般に制御バスＣＢＵＳを用いてメモリコントローラ１０とＣＰＵ５の間の初期接続手順プロトコルにより行う）、ＣＰＵ５はデータバスＤＢＵＳ上にデータを与える（メモリ書き込み）か、データバスＤＢＵＳからデータを受ける（メモリ読み出し）。
【００１６】
図１に示すように、メモリ通信も入出力通信も同じバス、すなわちアドレスバスＡＢＵＳ、データバスＤＢＵＳ、制御バスＣＢＵＳを用いて行う。したがって、ｘ８６構造のマイクロプロセッサを用いた装置で通常行うように、この発明の実施態様でも入出力アクセスは上述のメモリアクセスと同様の方法で行う。すなわち、ＣＰＵ５はアドレスバスＡＢＵＳにアドレスを与え、同時にバスＣＢＵＳに該当する制御信号を与える。入出力動作では、アドレスバスＡＢＵＳのアドレスは入出力機能２４の特定の１つに対応する。入出力コントローラ１４の制御の下に、ＣＰＵ５から選択された入出力機能２４にデータバスＤＢＵＳを用いて（出力動作の場合）、または選択された入出力機能２４からＣＰＵ５にデータバスＤＢＵＳを用いて（入力動作の場合）、データを伝送する。
【００１７】
次に図２を参照して、この発明の第１実施態様のメモリコントローラ１０の構成と動作について、またＣＰＵ５および主メモリ２０に関連して、詳細に説明する。図２に示すように、アドレスバスＡＢＵＳ、データバスＤＢＵＳ、制御バスＣＢＵＳ（これらはＣＰＵ５の特定の端子に接続する）により、ＣＰＵ５のＢＩＵ８はメモリコントローラ１０と通信する。ＣＰＵ５の端子は外部コネクタで、その形式はピン（ピン−グリッド−アレイパッケージの場合）や、はんだボールや、パッケージリード線や、ボンドパッド（チップ形式の場合）や、集積回路パッケージ用の任意のその他の従来型の外部接続である。この技術で知られているように、ＣＰＵ５の端子は通常ピン名または信号名で呼ぶ。説明の都合上、ＣＰＵ５の端子に接続するバス線の名は対応する端子と同じ名とする。図２に示すように、制御バスＣＢＵＳはＣＰＵ５の端子（この例では従来のＰＥＮＴＩＵＭ級のマイクロプロセッサの端子、たとえばメモリ／入出力選択Ｍ／ＩＯ＃、キャッシュ要求ＣＡＣＨＥ＃、バースト作動可能ＢＲＤＹ＃、キャッシュ可能ＫＥＮ＃などを含む）に対応する線を備える。メモリアクセスを行うのに用いる他の従来のＰＥＮＴＩＵＭ級の端子（図２には示していない）には、バイト可能信号ＢＥ７＃−ＢＥ０、アドレス状態信号ＡＤＳ＃、データ／制御選択Ｄ／Ｃ＃、書き込み／読み出し選択Ｗ／Ｒ＃、読出書込み／ライトスルー(write-through) 信号ＷＢ／ＷＴ＃、などがある。クロック発生器１６は線ＣＬＫによりＣＰＵ５（ＢＩＵ８を通して）とメモリコントローラ１０にクロック信号を与える。
【００１８】
メモリコントローラ１０は、ＣＰＵ５と主メモリ２０の間の通信を行うためのいくつかの機能ブロックを備える。当業者は機能的な説明からメモリコントローラ１０の構成と動作を完全に理解できるので、図２にはこれらのブロックを機能的に示す。この技術で従来行われているように、アドレスバッファ２１はアドレスバスＡＢＵＳによりＣＰＵ５からメモリアドレスを受けてアドレスマルチプレクサ２６に送り、アドレス線Ａn からＡo により主メモリ２０に与える。同様にメモリコントローラ１０内のデータバッファ２３はデータバスＤＢＵＳによりＣＰＵ５からデータを受けて、書き込み動作の場合はこれを書き込みバッファ２７に送る。書き込みバッファ２７はデータ線Ｄinにより主メモリ２０と通信する。しかしこの信号路は双方向的であって、書き込みバッファ２７は線Ｄout により主メモリ２０からデータを受け、このデータをデータバッファ２３に送って、メモリ読み出し動作でＣＰＵ５に与える。
【００１９】
ＣＰＵ５と主メモリ２０との間の通信の制御はバス制御回路２５により行う。バス制御回路２５は制御バスＣＢＵＳとメモリ制御回路２９に接続する。さらにメモリコントローラ１０は制御論理２８を備える。制御論理２８はメモリコントローラ１０の内部動作を制御する。詳しく言うと、バス制御回路２５は制御バスＣＢＵＳによりＣＰＵ５から制御信号（信号Ｍ／ＩＯ＃とＣＡＣＨＥ＃を含む）を受け、メモリアクセス要求に応じて、該当する従来のＤＲＡＭ制御およびタイミング信号を主メモリ２０に送るようメモリ制御回路２９に命令してメモリアクセスを行う。この信号には、行アドレスストローブ（ＲＡＳ＃）、列アドレスストローブ（ＣＡＳ＃）、書き込み可能（ＷＥ＃）がある。さらに、バス制御回路２５はＣＰＵ５に制御信号を送ってメモリアクセスの状態を示す。この制御信号はキャッシュ可能信号ＫＥＮ＃とバースト作動可能信号ＢＲＤＹ＃（これはバーストアクセスに特に重要で、後で説明する）を含む。
【００２０】
またメモリコントローラ１０の制御論理２８は好ましくはメモリコントローラ１０の動作を制御するプログラマブルレジスタを備える。このレジスタは主メモリ２０のキャッシュ不可位置を規定するレジスタを含む。ＣＰＵ５が要求する各メモリアクセスに応じて、制御論理２８はこれらのレジスタを調べて、アドレスバスＡＢＵＳに与えられる所望のメモリアドレスがメモリアドレス空間のキャッシュ不可領域にあるかどうかを決定する。この技術で知られているように、メモリコントローラ１０は線ＫＥＮ＃を出力して、所望のメモリアドレスがキャッシュ可であることをＣＰＵ５に示し、また所望のメモリアドレスがキャッシュ不可領域内にある場合は線ＫＥＮ＃の出力を停止する。
【００２１】
この発明の背景に関して上に述べたように、従来の技術ではバースト可メモリアクセスはキャッシュ不可領域にないメモリアドレスだけに用いることができる。したがって従来のマイクロプロセッサは、キャッシュ不可領域へのメモリアクセス要求に応じて線ＫＥＮ＃の出力を停止した。さらに、マイクロプロセッサの端子ＢＲＤＹ＃はメモリのキャッシュ不可領域への単一転送動作（読み出しまたは書き込み）の間だけ出力し、バーストアクセスの場合のような多バスサイクルでは表明しない。
【００２２】
図３はこの発明のこの実施態様の装置２内の各アドレス空間の略図である。例示の装置２は、従来のＰＥＮＴＩＵＭ級のマイクロプロセッサのように、４ギガバイトのメモリアドレス空間３０（メモリアドレスは００００  ００００ｈからＦＦＦＦ  ＦＦＦＦｈ）と６４キロバイトの入出力アドレス空間４０（メモリアドレスは００００  ００００ｈから００００  ＦＦＦＦｈ）を持つ。またＣＰＵ５を含めて一般のＰＥＮＴＩＵＭ級のマイクロプロセッサのように、メモリアドレス空間３０と入出力アドレス空間４０はいくつかの同じアドレス値（すなわちメモリアドレス空間３０内と入出力アドレス空間４０内の位置に対応する、００００  ００００ｈと００００  ＦＦＦＦｈの間のアドレス値）を共有する。上に説明したように、従来のｘ８６構造のマイクロプロセッサはＭ／ＩＯ＃と呼ぶ端子に制御信号を与える。Ｍ／ＩＯ＃は、高論理レベルの場合はメモリアクセスが起こることを示し、低論理レベルの場合は入出力動作が起こることを示す。
【００２３】
図３に示すように、メモリアドレス空間３０はキャッシュ不可領域３２を含む。上に説明したように、キャッシュ不可領域３２はメモリアドレス空間３０の領域に対応し、キャッシュ書き込みまたはキャッシュ読み出しによるアクセスが阻止される。或るレジスタ（キャッシュ可アクセスを阻止するアドレスを含んでいる）の内容に従って、メモリコントローラ１０は、特定すると制御論理２８は、キャッシュ不可領域へのキャッシュ可アクセスを阻止する。キャッシュ不可領域３２とはビデオメモリ２０ｖ（図１参照）やメモリ写像制御レジスタなどで、どちらもキャッシュ記憶に適していない。このように、メモリコントローラ１０が動作して線ＫＥＮ＃に出力停止の状態を出すことにより、キャッシュ不可領域３２の内容をＣＰＵ５の内部キャッシュ（たとえば図１に示すレベル２キャッシュ６）に記憶するのを阻止する。
【００２４】
しかしこの発明に関連して、ｘ８６構造のマイクロプロセッサ内の主メモリのキャッシュ不可領域にバーストアクセス機能を与えると有用であることが分かった。たとえば、ＣＰＵ５はキャッシュ不可領域３２内のビデオメモリ２０ｖの一部の内容に迅速にアクセスしたい（すなわちバーストモードで）場合がある。またたとえば、ＣＰＵ５はスクリーン像をメモリに複写したい、またはメモリの別の部分をビデオメモリに複写したい場合がある。ビデオメモリ２０ｖはキャッシュ不可なので、従来のｘ８６構造の装置はキャッシュ不可領域３２へのバースト可アクセスを阻止する。
【００２５】
しかしこの発明の第１の好ましい実施態様では、ＣＰＵ５は制御バスＣＢＵＳ内にある制御信号を用いて、主メモリ２０にバースト可だがキャッシュ不可のアクセスを要求することができる。上に示したように、従来のｘ８６構造のマイクロプロセッサは制御出力信号Ｍ／ＩＯ＃を用いて、メモリアクセスを行うか（Ｍ／ＩＯ＃が高）入出力動作を行うか（Ｍ／ＩＯ＃が低）を示す。対照的にこの発明のこの実施態様では、ＣＰＵ５は線Ｍ／ＩＯ＃の低論理レベルとＣＡＣＨＥ＃信号の表明（低論理信号）の組み合わせを用いて、メモリアドレス空間３０のキャッシュ不可領域にバースト可メモリアクセスを要求する。メモリコントローラ１０は、特定するとその中のバス制御回路２５は、このＭ／ＩＯ＃低とＣＡＣＨＥ＃低の組み合わせをバーストメモリアクセスの要求と解釈し（従来の方法で入出力要求と解釈するのとは異なる）、メモリアドレスがメモリアドレス空間３０のキャッシュ不可領域３２内であることを制御論理２８が示す場合でも、主メモリ２０にキャッシュ不可バーストメモリアクセスを行う。ＣＰＵ５がＭ／ＩＯ＃低およびＣＡＣＨＥ＃低と共にメモリアドレス空間３０のキャッシュ可領域内のアドレスを与える場合も、バーストアクセスを要求して実行する。しかしこの場合は、アドレスされたメモリ位置にキャッシュアクセスが可能な場合でも、ＣＰＵ５はキャッシュアクセスをしない。
【００２６】
この発明のこの実施態様では、次の表および図３の対応する論理に従って、ＣＰＵ５は制御信号Ｍ／ＩＯ＃およびＣＡＣＨＥ＃によりメモリおよび入出力動作を要求する。
0003886189.tif 000002
【００２７】
この動作の略図を図３のバス制御回路２５に示す。バス制御回路２５は、単一メモリ転送サイクル（すなわちバースト不可でキャッシュ不可）用の制御信号ＭＥＮ１と、バースト可でキャッシュ可のメモリアクセス用のＭＥＮＢＣと、入出力動作用のＩＯＥＮと、バースト可でキャッシュ不可のメモリアクセス用のＭＥＮＢＮＣを駆動するのに用いる。ＡＮＤゲート３１は線Ｍ／ＩＯ＃とＣＡＣＨＥ＃が共に高のときだけ線ＭＥＮ１を高に駆動し、ＡＮＤゲート３３は線Ｍ／ＩＯ＃が低で線ＣＡＣＨＥ＃が高のときだけ線ＩＯＥＮを高に駆動し、ＡＮＤゲート３５は線Ｍ／ＩＯ＃が高で線ＣＡＣＨＥ＃が低のときだけ線ＭＥＮＢＣを高に駆動し、ＡＮＤゲート３７は線Ｍ／ＩＯ＃とＣＡＣＨＥ＃が共に低のときだけ線ＭＥＮＢＮＣを高に駆動する。
【００２８】
もちろん、この発明のこの実施態様では、入出力コントローラ１４は線Ｍ／ＩＯ＃の論理レベルが低で線ＣＡＣＨＥ＃が低のときには応答しないように設計して、バースト可でキャッシュ不可のメモリアクセスが、意図しない入出力動作と共に起こったためにバスが矛盾することのないようにしなければならない。
【００２９】
次に図４を参照して、この発明の第１の好ましい実施態様において、ＣＰＵ５が要求し主メモリ２０およびメモリコントローラ１０が行うバースト可でキャッシュ不可のメモリ読み出し動作を示すタイミング図を、以下にさらに詳細に説明する。この例では、ＣＰＵ５はアドレスバス線Ａ３１−Ａ３にメモリアドレスを出し、同時にバイト可能線ＢＥ７＃−ＢＥ０＃に０の値を出して、読み出しメモリアクセスを要求する。ＣＰＵ５が線ＡＤＳ＃に低論理レベルを表明するとこのアドレスが有効になる。バースト可でキャッシュ不可のメモリ読み出しのこの例では、ＣＰＵ５が与えるアドレスはメモリアドレス空間３０のキャッシュ不可領域３２内にある。またメモリアドレスと共に、ＣＰＵ５は線Ｄ／Ｃ＃に高論理レベルを出してこの動作がデータ動作であることを示し、また線Ｗ／Ｒ＃低を出力してメモリ読み出しを要求する。これらの信号は、ｘ８６構造のマイクロプロセッサの読み出し動作で従来から用いられている。またこの発明のこの第１の実施態様では、ＣＰＵ５は線Ｍ／ＩＯ＃に低論理レベルを与え、同時に線ＣＡＣＨＥ＃に低論理レベルを与える。これらの信号はすべて図４のバスサイクルＢ０にある。
【００３０】
信号のこの組み合わせにより、主メモリ２０のキャッシュ不可領域にバースト可アクセスを要求中であることをメモリコントローラ１０に示す。メモリコントローラ１０はこの要求に応えて該当する制御信号とアドレスを主メモリ２０内のアドレスされたメモリ装置に出す。バスサイクルＢ２で（バスサイクルＢ１は待ち状態である）、線ＫＥＮ＃低を出力することにより主メモリ２０へのバースト可アクセスが許可されたことを、また線ＢＲＤＹ＃低を出力することにより現在のクロックサイクルの終わりにデータバスＤＢＵＳに有効なメモリデータが乗ることを、メモリコントローラ１０はＣＰＵ５に示す。メモリ読み出しがキャッシュ不可なので、線ＷＢ／ＷＴ＃はこの動作ではドントケア(don't care)である。次に、有効なデータが４語(quad words)ＱＷ０からＱＷ３の形式で（それぞれ６４ビットすなわち８バイトで）現在のバスサイクルＢ２の終わりと次の３連続バスサイクルＢ３からＢ５に、データバスＤＢＵＳに現れる（待ち状態がないと仮定する）。この発明のこの実施態様では、バスサイクルＢ６でメモリコントローラは線ＢＲＤＹ＃を高状態に駆動して、バーストメモリ読み出しが完了したことを示す。バースト可でキャッシュ不可型または他の型の、以後のメモリアクセスは従来の方法で行う。
【００３１】
次に図５を参照して、バースト可でキャッシュ不可のメモリ書き込み動作について詳細に説明する。図４のメモリ読み出しの場合と同様に、ＣＰＵ５は動作を開始して、バスサイクルＷＢ０で所望のアドレスをアドレス線Ａ３１からＡ３に与え、ＡＤＳ＃信号低をＣＰＵ５が表明すると同時にバイト可能ビットＢＥ＃をゼロにし、また線Ｄ／Ｃ＃のレベルを高にする。またこのサイクルＷＢ０で、ＣＰＵ５は線Ｗ／Ｒ＃高を出力してメモリ書き込みを行おうとしていることを示し、線Ｍ／ＩＯ＃低および線ＣＡＣＨＥ＃低を出力してキャッシュ不可メモリ位置へのバースト書き込みを要求する。読み出しの場合と同様に、アドレスがメモリアドレス空間３０のキャッシュ可領域を指す場合は、バーストアクセスは行うがキャッシュへの書き込みは行わない。ＣＰＵ５のこの要求に応じて、メモリコントローラ１０は線ＫＥＮ＃に低論理レベルを出して（１つの待ち状態の後、バスサイクルＷＢ２で）主メモリ２０へのバーストアクセスが許可されたことを示し、それと共に線ＢＲＤＹ＃を低論理レベルにして、現在のバスサイクルＷＢ２の終わりに有効なデータが入ることを示す。次にＣＰＵ５は、バスサイクルＷＢ２の終わりとその後の３バスサイクルＷＢ３からＷＢ５に、データバスＤＢＵＳに有効なデータを乗せて書き込みを行う。最終バスサイクルＷＢ６でメモリコントローラ１０は線ＢＲＤＹ＃を駆動して、バースト書き込み動作が完了したことを示す。
【００３２】
したがってこの発明のこの好ましい実施態様では、ｘ８６構造のマイクロプロセッサを用いたコンピュータ装置内の主メモリのキャッシュ不可領域にバースト可アクセスを行う。このようにしてメモリ動作の広い範囲において、特にビデオＲＡＭ位置などのキャッシュ化に適していないメモリ位置にアクセスするときに、バースト速度でメモリ動作を行うことができる。さらにこの発明のこの第１の実施態様では、マイクロプロセッサにピンを追加する必要なく、このアクセスを行うことができる。
【００３３】
マイクロプロセッサの追加のピンとこれに対応するマザーボード導体が利用できる場合は、この発明は第２の実施態様で実現してよい。これについては、図６を参照して説明する。図６では、図２と同じ要素には同じ番号を用いて参照する。
【００３４】
図６に示すＣＰＵ５０は図２に関して説明したＰＥＮＴＩＵＭ級のマイクロプロセッサであるが、この設計では或る型のメモリアクセスはバースト可アクセスの要求を意味する。これらの要求をメモリコントローラ６０内のバス制御論理５５に伝えて（明示的にまたは暗示的に）、バーストメモリアクセス要求と解釈する。
【００３５】
たとえば、ＣＰＵ５０はＲＥＰ  ＭＯＶ命令セットなどのブロックメモリアクセス動作を行うと、ＢＩＵ８に制御フラグをセットしてバス制御論理５５に伝える。この場合、制御フラグをセットすると、バス制御論理５５はその後のすべてのメモリアクセス要求（線Ｍ／ＩＯ＃が高）をバーストアクセス、すなわちメモリアドレス空間のキャッシュ可およびキャッシュ不可領域へのアクセスの要求と解釈する。またはＣＰＵ５０は、メモリのキャッシュ可およびキャッシュ不可領域へのバーストメモリアクセスであることをはっきり示す特定の命令を実行する。この場合も、ＣＰＵ５０はフラグすなわち制御信号をセットして、バーストアクセスを要求したことをメモリコントローラ６０に示す。
【００３６】
この発明のこの第２の実施態様では、ＣＰＵ５０はメモリのキャッシュ可およびキャッシュ不可領域にバーストメモリアクセスを要求するので、メモリコントローラ６０からＣＰＵ５０へはキャッシュ可とバースト可を別々に示すことが好ましい。これは、ＣＰＵ５０は暗黙のバーストアクセス要求を出すが、メモリアドレスがメモリアドレス空間のキャッシュ可領域にあるかどうかは知らないからである。メモリアクセスがキャッシュ不可の場合でも、やはりバースト可アクセスが望ましい。したがってこの発明のこの実施態様では、バースト可能信号ＢＥＮ＃が与えられる。これは、従来のＰＥＮＴＩＵＭ級の制御信号およびピンの他に、この発明のこの実施態様で与えられる信号および対応するＣＰＵ端子である。図６に示すようにこの発明のこの実施態様では、バス制御論理５５は線ＫＥＮ＃に信号を出してメモリアクセスがキャッシュ可であることを示し（この発明の第１の実施態様で前に説明したのと同様に）、また線ＢＥＮ＃に信号を出してバーストアクセスが許可されたかどうかを示す。ＣＰＵ５０がキャッシュ不可メモリ位置にバーストアクセスを要求した場合は、バス制御論理５５は線ＫＥＮ＃を高に保持し（キャッシュ不可アクセスを示す）、ＢＥＮ＃を低に駆動して、バースト可アクセスが許可されたことを示し、データバスＤＢＵＳに４カッド語のデータがある、またはこれから入ることをＣＰＵ５０に知らせる。
【００３７】
この発明のこの第２の実施態様では、メモリコントローラ６０はキャッシュ可だがバースト可でないメモリアクセスを行い、このことをＣＰＵ５０に伝えることができる（線ＫＥＮ＃を低にし線ＢＥＮ＃を高にすることにより）。しかしキャッシュ充填および書き戻しは全キャッシュ線で行うことが好ましいので、このメモリアクセスモードが有用かどうかは疑問である。
【００３８】
したがって上に述べたこの発明のすべての実施態様は、この発明は或る種のメモリ位置の、特にｘ８６構造のマイクロプロセッサではバースト可アクセスができなかったビデオメモリなどの位置の、メモリアクセス性能を向上させるという点が非常に優れている。この発明ではメモリにバースト可でキャッシュ不可のアクセスを行うことができるが、これはマイクロプロセッサを用いた装置の実質的な再設計や再構成を必要とせず、またこの発明の一実施態様ではマイクロプロセッサの端子を追加する必要もない。
【００３９】
この発明について好ましい実施態様に関して説明したが、もちろんこれらの実施態様の修正や代替が考えられる。当業者がこの説明と図面を参照すれば、この発明の利点と長所を持つこれらの実施態様の修正や代替が可能になることは明らかである。これらの修正や代替は、特許請求の範囲に規定したこの発明の範囲内にあるものである。
【００４０】
以上の説明に関して更に以下の項を開示する。
（１）  マイクロプロセッサを用いたデータ処理装置であって、
マイクロプロセッサであって、データ処理命令を実行し、データ・制御・アドレス信号を伝達するバスに接続し、前記制御信号は入力または出力動作を示す入出力制御信号と、メモリアクセスを示すメモリアクセス制御信号と、１アドレス値を与えて複数のアドレス可能なメモリ位置へのアクセス要求を示すバースト要求信号とを含み、前記マイクロプロセッサはキャッシュメモリを備える、マイクロプロセッサと、
出力装置と、
前記バスと出力装置に結合し、前記マイクロプロセッサが前記バスにアドレス値と共に入出力制御信号を示すとこれに応じて、データを前記マイクロプロセッサから受けて前記出力装置から出力する、入出力装置コントローラと、
前記マイクロプロセッサと授受する入力および出力に対応するディジタルデータを記憶し、アドレス空間を持つ、主読み出し／書き込みメモリと、
前記バスと主読み出し／書き込みメモリに接続し、前記マイクロプロセッサが諸信号と共にメモリアクセス制御信号により前記バスにアドレス値を与えるとこれに応じて、前記主読み出し／書き込みメモリへのアクセスを制御する、メモリコントローラと
を備え、
前記メモリコントローラは主メモリのキャッシュ不可部分へのキャッシュアクセスを阻止し、
また前記マイクロプロセッサが入出力制御信号と共にバースト要求信号を与えるとこれに応じて、前記メモリコントローラは前記主読み出し／書き込みメモリのキャッシュ不可部分へのバーストメモリアクセスを可能にする、
マイクロプロセッサを用いたデータ処理装置。
【００４１】
（２）  前記マイクロプロセッサが主読み出し／書き込みメモリのキャッシュ可部分へのメモリアドレスと共にバースト要求信号を与えるとこれに応じて、前記メモリコントローラはキャッシュメモリアクセスを可能にする、第１項記載のマイクロプロセッサを用いたデータ処理装置。
（３）  前記入出力装置コントローラに結合し、前記マイクロプロセッサがバスにアドレス値と共に入出力制御信号を与えるとこれに応じて、データを前記入出力コントローラに与えて前記マイクロプロセッサに伝達する、入力装置をさらに備える、第１項記載のマイクロプロセッサを用いたデータ処理装置。
（４）  前記マイクロプロセッサはｘ８６構造型である、第１項記載のマイクロプロセッサを用いたデータ処理装置。
【００４２】
（５）  前記マイクロプロセッサは前記バスに接続するＭ／ＩＯ＃端子を備え、
前記マイクロプロセッサは前記Ｍ／ＩＯ＃端子を第１論理レベルにすることにより入出力制御信号を与え、
前記マイクロプロセッサは前記Ｍ／ＩＯ＃端子を第２論理レベルにすることによりメモリアクセス制御信号を与える、
第４項記載のマイクロプロセッサを用いたデータ処理装置。
（６）  前記マイクロプロセッサは前記バスに接続するＣＡＣＨＥ＃端子を備え、
前記マイクロプロセッサはＣＡＣＨＥ＃端子を表明することによりバースト要求信号を与える、
第５項記載のマイクロプロセッサを用いたデータ処理装置。
（７）  前記主読み出し／書き込みメモリの前記キャッシュ不可部分はビデオメモリに対応する、第１項記載のマイクロプロセッサを用いたデータ処理装置。
【００４３】
（８）  前記主読み出し／書き込みメモリへのバーストアクセスを可能にするとこれに応じて、前記メモリコントローラは前記バスにバーストアクセス応答信号を与える、第１項記載のマイクロプロセッサを用いたデータ処理装置。
（９）  前記主読み出し／書き込みメモリアドレス空間のキャッシュ可部分へのキャッシュアクセスを可能にするとこれに応じて、前記メモリコントローラは前記バスにキャッシュアクセス応答信号を与える、第８項記載のマイクロプロセッサを用いたデータ処理装置。
（１０）  前記バスはＰＥＮＴＩＵＭ級のマイクロプロセッサ制御信号に対応する制御信号を伝達する複数の導体を備え、前記複数の導体は前記メモリコントローラが前記マイクロプロセッサに与えるキャッシュアクセス応答信号を伝達する導体を含み、また前記バスは、前記メモリコントローラが前記バースト応答信号を与えるための、前記メモリコントローラと前記マイクロプロセッサの間に結合する導体をさらに備える、第９項記載のマイクロプロセッサを用いたデータ処理装置。
【００４４】
（１１）  前記メモリコントローラは主メモリのキャッシュ不可部分へのキャッシュアクセスを阻止し、
前記マイクロプロセッサは入出力制御信号を与えて入力または出力動作を示し、
前記データ処理装置は、
出力装置と、
前記バスと出力装置に結合し、前記マイクロプロセッサが前記バスにアドレス値と共に入出力制御信号を示すとこれに応じて、データを前記マイクロプロセッサから受けて出力装置から出力する、入出力装置コントローラ、
を備え、
前記マイクロプロセッサが前記バスに入出力制御信号と共にバースト要求信号を与えるとこれに応じて、前記メモリコントローラは前記主読み出し／書き込みメモリのキャッシュ不可部分へのバーストメモリアクセスを可能にする、
第８項記載のマイクロプロセッサを用いたデータ処理装置。
【００４５】
（１２）  ｘ８６構造のマイクロプロセッサ（５）を用いた装置（２）を開示する。この装置はメモリアドレス空間と入出力アドレス空間を持ち、入出力動作は入出力写像により行う。この発明の第１実施態様では、マイクロプロセッサ（５）がキャッシュ要求信号（ＣＡＣＨＥ＃）と入出力動作を要求したことを示す制御信号（Ｍ／ＩＯ＃）の組み合わせを出力することにより、キャッシュアクセスが阻止されている主メモリ（２０）の領域にバーストアクセスを行う。メモリコントローラ（１０）はこの組み合わせをキャッシュ不可メモリ位置へのバースト要求と解釈し、キャッシュ応答制御信号（ＫＥＮ＃）を表明してバーストアクセスの許可を示し、バーストメモリアクセスを行う。この発明の第２実施態様では、メモリコントローラ（６０）はキャッシュ応答信号（ＫＥＮ＃）とは別のバースト応答信号（ＢＥＮ＃）により、キャッシュ不可メモリ空間へのバーストアクセスに応答する。
【図面の簡単な説明】
【図１】この発明の好ましい実施態様のデータ処理装置の電気ブロック図。
【図２】この発明の第１実施態様の、図１の装置のメモリおよび入出力コントローラの電気ブロック図。
【図３】図１のデータ処理装置のメモリアドレス空間および入出力アドレス空間の略図であって、この発明の第１の好ましい実施態様における各アドレス空間をアクセスする条件を示す略図。
【図４】この発明の第１の好ましい実施態様の、キャッシュ不可メモリからのバースト読み出し要求と性能を示すタイミング図。
【図５】この発明の第１の好ましい実施態様の、キャッシュ不可メモリからのバースト書き込み要求と性能を示すタイミング図。
【図６】この発明の第２実施態様の、図１の装置のメモリおよび入出力コントローラの電気ブロック図。
【符号の説明】
２  データ処理装置
５  中央処理装置（ＣＰＵ）
８  バスインターフェース
１０  メモリコントローラ
１２  キャッシュコントローラ
１４  入出力コントローラ
１６  クロック発生器
２０  主メモリ
２２  キャッシュメモリ
２４  入出力装置
【図１】
0003886189.tif 000003
【図２】
0003886189.tif 000004
【図３】
0003886189.tif 000005
【図４】
0003886189.tif 000006
【図５】
0003886189.tif 000007
【図６】
0003886189.tif 000008