(57)【特許請求の範囲】
【請求項１】
複数のＲＡＳ信号がそれぞれ割り当てられ、互いに独立してアクセス可能な複数のＤＲＡＭバンクと、
ＣＰＵのメモリアドレス空間に非連続に配置されている前記複数のＤＲＡＭバンクそれぞれに対応するメモリアエリアがＤＲＡＭ論理アドレス空間上で連続して配置されるように、前記複数のＤＲＡＭバンクのページサイズ以上の変換単位で、前記ＣＰＵからのメモリアドレスをＤＲＡＭ論理アドレスに変換するアドレス変換手段と、
前回のメモリアクセス時におけるＣＰＵからのメモリアドレスを保持し、そのメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとを比較し、一致した時に今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであることを示すページヒット信号を出力するページヒット判定手段と、
前記アドレス変換手段から出力されるＤＲＡＭ論理アドレスをデコードして、どのＤＲＡＭバンクのＲＡＳ信号を出力するかを決定するＲＡＳデコーダであって、前記ぺージヒット信号が出力された時、ＤＲＡＭページモードアクセスのためのＲＡＳ信号出力制御を行うＲＡＳデコーダと、
前記ＣＰＵによってアドレッシング可能なメモリアドレス空間を構成する複数のメモリアドレスエリアそれぞれについて、リードアクセスを許可すべきメモリデバイスの種類を指定する情報とライトアクセスを許可すべきメモリデバイスの種類を指定する情報とを含むメモリ属性情報が定義されたメモリ属性テーブルとを具備し、
前記ページヒット判定手段は、前記ＣＰＵによって設定される、ページヒット判定のために使用すべき前記メモリアドレス内のビット位置を前記ＤＲＡＭバンク毎に指定する制御情報を保持する手段と、前記ＲＡＳデコーダのデコード結果と前記制御情報とに基づいて、前記ページヒット判定のために使用すべき前記メモリアドレス内のビット位置を変更する手段とを含み、且つ前回のメモリアクセス時におけるＣＰＵからのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアの前記メモリ属性情報がライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報を保持し、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されている前記サイクル種別情報と今回のメモリアクセスのサイクル種別との一致を条件に、前記ページヒット信号を出力することを特徴とするメモリ制御システム。
【請求項２】
前記メモリ属性情報は、前記ＣＰＵによってアドレッシング可能なメモリアドレス空間を構成する複数のメモリアドレスエリアそれぞれについて、ライトプロテクトがなされているか否かを示すライトプロテクト情報をさらに含み、
前記ページヒット判定手段は、
ページヒットであると判定された場合において、今回のメモリアクセスサイクルがライトサイクルであり、且つ保持されているライトプロテクト情報が非ライトプロテクトを示している場合にはライトアクセスがＤＲＡＭページモードアクセスによって実行され、ページヒットであると判定された場合において、今回のメモリアクセスサイクルがライトサイクルであり、且つ保持されているライトプロテクト情報がライトプロテクトを示している場合にはカラムアドレスストローブ信号が付勢されないように、ページヒット判定結果と、保持されている前記メモリ属性情報とに基づいて、次に実行すべきサイクルの種別を決定することを特徴とする請求項１記載のメモリ制御システム。
【請求項３】
前記メモリ属性情報は、前記ＣＰＵによってアドレッシング可能なメモリアドレス空間を構成する複数のメモリアドレスエリアそれぞれについて、キャッシュメモリを使用したキャッシング操作が有効か否かを示すキャッシュ制御情報をさらに含み、
前記ページヒット判定手段は、
ページヒットであると判定された場合において、今回のメモリアクセスサイクルがリードサイクルであり、且つ保持されているキャッシュ制御情報がキャッシュ無効を示している場合にはリードサイクルがＤＲＡＭページモードアクセスによって１回実行され、ページヒットであると判定された場合において、今回のメモリアクセスサイクルがリードサイクルであり、且つ保持されているキャッシュ制御情報がキャッシュ有効を示している場合には連続する複数のデータを読み出すバーストリードサイクルがＤＲＡＭページモードアクセスで実行されるように、ページヒット判定結果と、保持されている前記メモリ属性情報とに基づいて、次に実行すべきサイクルの種別を決定することを特徴とする請求項１記載のメモリ制御システム。
【請求項４】
複数のＲＡＳ信号がそれぞれ割り当てられ、互いに独立してアクセス可能な複数のＤＲＡＭバンクと、
これらＤＲＡＭバンクのページサイズ以上の変換単位で、ＣＰＵからのメモリアドレスを、前記複数のＤＲＡＭバンクに連続して割り当てられたＤＲＡＭ論理アドレスに変換するアドレス変換手段と、
前回のメモリアクセス時におけるＣＰＵからのメモリアドレスを保持し、そのメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとを比較し、一致した時に今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであることを示すページヒット信号を出力するページヒット判定手段と、
前記アドレス変換手段から出力されるＤＲＡＭ論理アドレスをデコードして、どのＤＲＡＭバンクのＲＡＳ信号を出力するかを決定するＲＡＳデコーダであって、前記ぺージヒット信号が出力された時、ＤＲＡＭページモードアクセスのためのＲＡＳ信号出力制御を行うＲＡＳデコーダと、
前記ＣＰＵによってアドレッシング可能なメモリアドレス空間を構成する複数のメモリアドレスエリアそれぞれについて、リードアクセスを許可すべきメモリデバイスの種類を指定する情報とライトアクセスを許可すべきメモリデバイスの種類を指定する情報とを含むメモリ属性情報が定義されたメモリ属性テーブルとを具備し、
前記ページヒット判定手段は、
前回のメモリアクセス時におけるＣＰＵからのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアの前記メモリ属性情報がライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報を保持し、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されている前記サイクル種別情報と今回のメモリアクセスのサイクル種別との一致を条件に、前記ページヒット信号を出力することを特徴するメモリ制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はメモリ制御システムに関し、特にパーソナルコンピュータのメインメモリとして使用されるＤＲＡＭバンクを効率良くアクセスするための改良がなされたメモリ制御システムに関する。
【０００２】
【従来の技術】
近年、携行が容易でバッテリにより動作可能なノートブックタイプまたはラップトップタイプのポータブルパーソナルコンピュータが種々開発されている。この種のパーソナルコンピュータにおいては動作速度の高速化が望まれており、最近では、大規模なキャッシュを内蔵する高性能マイクロプロセッサがＣＰＵとして使用され始めている。
【０００３】
キャッシュ内蔵のマイクロプロセッサをＣＰＵとして使用した場合には、メインメモリのアクセス回数を減らすことができ、ある程度はシステム動作性能の向上を図ることができる。
【０００４】
しかしながら、ＣＰＵがキャッシュを内蔵していてもメインメモリに対するアクセスが無くなるわけではなく、キャッシュミスが発生したときには、ＣＰＵがメインメモリに対してメモリリード／ライトサイクルを実行することが必要とされる。このため、実際には、システム性能を向上させるためには、ＣＰＵによるメモリリード／メモリライトサイクルの実行速度を早めることが必要不可欠となる。
【０００５】
パーソナルコンピュータのメインメモリとしては、通常、ダイナミックＲＡＭ（ＤＲＡＭ）が使用されている。ＤＲＡＭは、スタテッィクＲＡＭ（ＳＲＡＭ）に比べて低コストである反面、アクセス速度が遅いという特徴を持つ。この問題を解決するため、最近ではＤＲＡＭチップ自体の改良などの半導体技術レベルでの改善に加え、ページモードアクセスやインタリーブ制御などの採用によるメモリアーキテクチャレベルでの改善も進められている。
【０００６】
これらページモードアクセスやインタリーブ制御を行うために、メモリ制御システムには、通常、ページヒット判定を行うためのロジックが組み込まれている。ページヒット判定というのは、ＤＲＡＭのページモードアクセス方式において、ＣＰＵが発生するメモリアクセスのアドレスが、直前に行われたアクセスと同一ＤＲＡＭバンクの同一ページで得るかどうかを判定することである。同一ページであれば、ＲＡＳ（ロウアドレスストローブ）の出し直しを必要としない高速アクセスが可能となる。
【０００７】
従来のメモリ制御システムでは、まず、ＣＰＵアドレスからＤＲＡＭ論理アドレスへの変換が行われ、次いで、アクセスすべきＤＲＡＭバンクの選択が行われて、その選択されたＤＲＡＭバンクが直前にアクセスされたＤＲＡＭバンクと同一であるか否かがＲＡＳデコーダによって調べられる。同一バンクであれば、選択されたＤＲＡＭバンクへのロウアドレスと直前のアクセスのロウアドレスとがページヒット判定回路によって比較されて、ページヒット判定が行われる。
【０００８】
【発明が解決しようとする課題】
このように、従来では、ページヒット判定が行われる前に、アドレス変換、ＲＡＳデコードといった処理が必要となり、結果として、ページヒット判定に時間がかかるという問題がある。このため、ページヒットした場合であっても、ウエイトサイクルが必要となり、十分な高速アクセスを実現することができなかった。
【０００９】
この発明はこのような点に鑑みてなされたもので、ページヒット判定を高速に実行できるようにし、メモリアクセス速度の高速化を実現することができるメモリ制御システムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
この発明によるメモリ制御システムは、複数のＲＡＳ信号がそれぞれ割り当てられ、互いに独立してアクセス可能な複数のＤＲＡＭバンクと、ＣＰＵのメモリアドレス空間に非連続に配置されている前記複数のＤＲＡＭバンクそれぞれに対応するメモリアエリアがＤＲＡＭ論理アドレス空間上で連続して配置されるように、前記複数のＤＲＡＭバンクのページサイズ以上の変換単位で、前記ＣＰＵからのメモリアドレスをＤＲＡＭ論理アドレスに変換するアドレス変換手段と、前回のメモリアクセス時におけるＣＰＵからのメモリアドレスを保持し、そのメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとを比較し、一致した時に今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであることを示すページヒット信号を出力するページヒット判定手段と、前記アドレス変換手段から出力されるＤＲＡＭ論理アドレスをデコードして、どのＤＲＡＭバンクのＲＡＳ信号を出力するかを決定するＲＡＳデコーダであって、前記ぺージヒット信号が出力された時、ＤＲＡＭページモードアクセスのためのＲＡＳ信号出力制御を行うＲＡＳデコーダと、前記ＣＰＵによってアドレッシング可能なメモリアドレス空間を構成する複数のメモリアドレスエリアそれぞれについて、リードアクセスを許可すべきメモリデバイスの種類を指定する情報とライトアクセスを許可すべきメモリデバイスの種類を指定する情報とを含むメモリ属性情報が定義されたメモリ属性テーブルとを具備し、前記ページヒット判定手段は、前記ＣＰＵによって設定される、ページヒット判定のために使用すべき前記メモリアドレス内のビット位置を前記ＤＲＡＭバンク毎に指定する制御情報を保持する手段と、前記ＲＡＳデコーダのデコード結果と前記制御情報とに基づいて、前記ページヒット判定のために使用すべき前記メモリアドレス内のビット位置を変更する手段とを含み、且つ前回のメモリアクセス時におけるＣＰＵからのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアの前記メモリ属性情報がライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報を保持し、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されている前記サイクル種別情報と今回のメモリアクセスのサイクル種別との一致を条件に、前記ページヒット信号を出力することを特徴とする。
【００１１】
このメモリ制御システムにおいては、ページヒット判定手段により、ＤＲＡＭ論理アドレスではなく、ＣＰＵアドレスを用いて、今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであるか否かを判定するページヒット判定が行われる。ページヒット判定にＣＰＵアドレスを利用することができるのは、ＣＰＵアドレスからＤＲＡＭ論理アドレスへのアドレス変換の単位がＤＲＡＭバンクのページサイズ以上の値に設定されているからである。これにより、ＤＲＡＭ論理アドレスが前回と今回のアクセスとで同一ページを指定しているにもかかわらず、ＣＰＵアドレスが異なるページを指定することがなくなる。よって、アドレス変換動作とページヒット判定動作とを並行して行うことが可能となり、ページヒット判定を高速に行うことができ、メモリアクセス速度の高速化を実現することができる。
【００１２】
また、前記ページヒット判定手段は、前回のメモリアクセス時におけるＣＰＵからのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアの前記メモリ属性情報がライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報を保持し、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されている前記サイクル種別情報と今回のメモリアクセスのサイクル種別との一致を条件に、前記ページヒット信号を出力するように構成することが好ましい。
【００１３】
これにより、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときであっても、メモリ属性を高速に決定できるようになり、高速なページヒット判定を生かした高速メモリアクセスが可能になる。
【００１４】
さらに、メモリ属性情報として、ライトプロテクトがなされているか否かを示すライトプロテクト情報とキャッシュメモリを使用したキャッシング操作が有効か否かを示すキャッシュ情報とをページヒット判定手段にメモリアドレスと一緒に保持しておくことにより、次に実行すべきサイクルを効率よく決定することができる。
【００１５】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。図１には、この発明の一実施形態に係るメモリ制御システムが適用されたコンピュータシステムが示されている。
【００１６】
このコンピュータシステムはノートブックタイプまたはラップトップタイプのポータブルパーソナルコンピュータを実現するためのものであり、システムボード１０上には、図示のように、ＣＰＵ１１、システムコントローラ１２、システムメモリ１３、ＢＩＯＳ  ＲＯＭ１４、リアルタイムクロック（ＲＴＣ）１５、割り込みコントローラ（ＰＩＣ）１６、キーボードコントローラ（ＫＢＣ）１７、ディスプレイコントローラ１８などが実装されている。
【００１７】
また、システムボード１０上には、ＣＰＵローカルバス（プロセッサバスと称する場合もある）３１、ＩＳＡ／ＥＩＳＡ／ＰＣＩなどの仕様を持つシステムバス３２、およびメモリアドレスバス３３などが配設されている。
【００１８】
さらに、このシステムには、増設メモリを接続するための２つの拡張用メモリコネクタ２１，２２が設けられている。図１においては、拡張メモリコネクタ２１，２２にそれぞれ増設メモリ４１，４２が接続されている状態が示されている。
【００１９】
増設メモリ４１，４２は、システムメモリサイズを拡張するためにユーザによって必要に応じて装着されるオプションメモリであり、例えばＤＲＡＭカードや、ＤＩＭＭまたはＳＩＭＭメモリモジュールなどから構成されている。これら増設メモリは、通常、１以上のＤＲＡＭバンクから構成されている。
【００２０】
ＣＰＵ１１は、大規模なキャッシュメモリを内蔵したマイクロプロセッサであり、ＣＰＵローカルバス３１を介してシステムコントローラ１２に接続されている。ＣＰＵローカルバス３１は、ＣＰＵ１１を構成するマイクロプロセッサの入出力ピンに直接繋がる信号群である。ここには、３２ビットデータバス、３２ビットアドレスバス、および各種ステータス信号線などが含まれている。
【００２１】
システムコントローラ１２は、ＣＰＵローカルバス３１とシステムバス３２との間に接続されており、ＣＰＵ１１からの要求に応じてシステム内の全てのメモリおよびＩ／Ｏデバイスを制御する。このシステムコントローラ１２は、ゲートアレイによって構成された１個のＬＳＩによって実現されており、その中にはシステムメモリ１３および増設メモリ４１，４２のＤＲＡＭを制御するためのメモリ制御ロジロックが組み込まれている。
【００２２】
システムメモリ１３は、このシステムのメインメモリとして使用されるものであり、通常、１以上のＤＲＡＭバンクから構成されている。このシステムメモリ１３には、オペレーティングシステム、実行対象のアプリケーションプログラム、および各種処理データなどが格納される。
【００２３】
システムメモリ１３は、所定のコネクタを介してまたは直接にシステムボード１０上に実装されている。システムメモリ１３は３２ビットのメモリデバイスであり、そのデータポートはＣＰＵローカルバス３１の３２ビットデータバスに接続され、また、アドレス入力ポートはメモリアドレスバス３３に接続されている。メモリアドレスバス３３はＤＲＡＭ専用のアドレスバスであり、このメモリアドレスバス３３上にはＤＲＡＭの物理アドレス（ロウアドレス／カラムアドレス）がシステムコントローラ１２から出力される。
【００２４】
同様に、増設メモリ４１，４２もそれぞれ３２ビットのメモリデバイスであり、対応するコネクタ２１，２２を介してそのデータポートがＣＰＵローカルバス３１の３２ビットデータバスに接続され、アドレス入力ポートがメモリアドレスバス３３に接続されている。
【００２５】
また、システムメモリ１３には２本のロウアドレスストローブ信号線（ＲＡＳ線：ＲＡＳ０、ＲＡＳ１）が接続されている。同様に、拡張メモリコネクタ２１には別の２本のロウアドレスストローブ信号線（ＲＡＳ線：ＲＡＳ２、ＲＡＳ３）が接続され、拡張メモリコネクタ２２にも、別の２本のロウアドレスストローブ信号線（ＲＡＳ線：ＲＡＳ４、ＲＡＳ５）が接続されている。
【００２６】
さらに、システムメモリ１３および増設メモリ４１，４２には、カラムアドレスストローブ信号線（ＣＡＳ線）、および他の各種制御信号線（ライトイネーブル信号線ＷＥ、アウトプットイネーブル信号線ＯＥなど）がそれぞれ共通接続されている。
【００２７】
システムメモリ１３および増設メモリ４１，４２内の全てのＤＲＡＭバンクは、ＣＰＵ１１のＤＲＡＭ用メモリアドレス空間に配置される。このシステムにおいては、各ＲＡＳ線のデコード条件の簡単化、およびインタリーブアーキテクチャを最大限有効利用するために、それらＤＲＡＭバンクはメモリサイズの大きなもの程若いアドレスの方に配置される。
【００２８】
システムメモリ１３および増設メモリ４１，４２のリード／ライトアクセス制御においては、ＲＡＳ線（ＲＡＳ０〜ＲＡＳ５）の１つがアクティブ状態に設定され、そのアクティブ状態のＲＡＳ線に接続されたＤＲＡＭバンクがアクセス対象のＤＲＡＭバンクとして選択される。このようなＲＡＳ線の付勢制御は、システムコントローラ１２のメモリ制御ロジックによって実行される。
【００２９】
図２には、メモリ制御ロジックの構成が示されている。
【００３０】
メモリ制御ロジック１２０は、ＤＲＡＭのページモードアクセスおよびページインタリーブをサポートするハードウェアロジックであり、アドレス変換回路１２１、ＲＡＳデコーダ１２２、ロウアドレス／カラムアドレスマルチプレクサ１２３、ＣＡＳ発生回路１２４、タイミング制御回路１２５、およびページヒット判定回路１２６を有している。
【００３１】
アドレス変換回路１２１は、ＣＰＵアドレス（Ａ３１：０２）をＤＲＡＭ論理アドレス（ＭＡ３１：０２）に変換する。この変換は、ＣＰＵ１１のメモリアドレス空間に分散配置されている複数のＤＲＡＭメモリエリアをＤＲＡＭアクセス専用の論理アドレス空間に連続的に割り付けるために行われる。このアドレス変換動作の一例を図３に示す。
【００３２】
すなわち、図３（Ａ）に示されているように、ＣＰＵ１１のメモリアドレス空間には、通常、システムメモリエリアやＰＭメモリエリアのようなＤＲＡＭエリアの他に、ビデオＲＡＭ、ＢＩＯＳ  ＲＯＭ、および各種オプションＲＯＭなどを配置するための予約領域（０Ａ００００Ｈ〜０Ｃ００００Ｈ）が確保されている。アドレス変換回路１２１は、このようなＣＰＵメモリマップに応じて、予約領域の直前および直後のＤＲＡＭエリアのアドレスが連続するようにアドレス変換を行う。
【００３３】
また、ＢＩＯＳ  ＲＯＭに格納されたＶＧＡ  ＢＩＯＳやシステムＢＩＯＳなどをＤＲＡＭにコピーして使用する場合には、図３（Ｂ）に示されているように、予約領域のＶＧＡ  ＢＩＯＳエリアおよびシステムＢＩＯＳエリアに割り当てられたＣＰＵアドレスも、ＤＲＡＭ論理アドレスに変換される。さらに、システムマネージメントモード（ＳＭＭ）を有するＣＰＵの場合には、そのＳＭＭの中でのみ使用されるＳＭＲＡＭエリアに割り当てられたＣＰＵアドレスもＤＲＡＭ論理アドレスに変換される。
【００３４】
このようなＣＰＵアドレスからＤＲＡＭ論理アドレスへの変換は、例えば１６Ｋバイト単位で行われる。このため、ＤＲＡＭ論理アドレスの下位ビット部（ＭＡ１３：０２）は、アドレス変換後においても、ＣＰＵアドレスの下位ビット部（Ａ１３：０２）と等しい。
【００３５】
アドレス変換回路１２１によって得られたＤＲＡＭ論理アドレス（ＭＡ３１：０２）は、システム内のＤＲＡＭバンクをアドレッシングするために使用される。
【００３６】
ＲＡＳデコーダ１２２は、その内部レジスタにセットされたＲＡＳ０〜ＲＡＳ５それぞれのデコード条件に従ってＤＲＡＭ論理アドレス（ＭＡ３１：０２）をデコードし、ＲＡＳ０〜ＲＡＳ５線の中でそのＤＲＡＭ論理アドレスが満たすデコード条件を持つＲＡＳ線を選択してそれをアクティブにする。ＲＡＳ線をアクティブにするタイミングなどは、タイミング制御回路１２５からのタイミング制御信号ＣＯＮＴ１によって制御される。
【００３７】
このＲＡＳデコーダ１２２のデコード動作は、各ＲＡＳ線のデコード条件とＤＲＡＭ論理アドレスとの一致／不一致を検出する事のみによって行うことができる。ＲＡＳ０〜ＲＡＳ５線それぞれのデコード条件がどのように決定されるかについては、図３以降で詳述する。
【００３８】
ロウアドレス／カラムアドレスマルチプレクサ１２３は、ＤＲＡＭ論理アドレス（ＭＡ３１：０２）を、アクセス対象ＤＲＡＭバンクをアドレッシングするためのロウアドレス（ＲＡ）とカラムアドレス（ＣＡ）に分解する。このロウアドレス／カラムアドレスマルチプレクサ１２３の内部レジスタには、各ＤＲＡＭバンクのロウアドレス（ＲＡ）の開始ビット位置を示す制御パラメタが予めセットされている。ロウアドレス（ＲＡ）とカラムアドレス（ＣＡ）に分解する動作は、アクセス対象ＤＲＡＭバンクに対応する制御パラメタに従って行われる。
【００３９】
ロウアドレス（ＲＡ）およびカラムアドレス（ＣＡ）は、メモリバス３３上に時分割的に出力される。この出力タイミングは、タイミング制御回路１２５からのタイミング制御信号ＣＯＮＴ２によって制御される。
【００４０】
ＣＡＳ発生回路１２４は、タイミング制御回路１２５からのタイミング制御信号ＣＯＮＴ３に従って、ＣＡＳ線の付勢を制御する。
【００４１】
タイミング制御回路１２５は、前述のタイミング制御信号ＣＯＮＴ１〜ＣＯＮＴ３を発生することによって、ＲＡＳデコーダ１２２、ロウアドレス／カラムアドレスマルチプレクサ１２３、およびＣＡＳ発生回路１２４の動作を制御する。タイミング制御信号の発生動作は、ページヒット判定回路１２６からのページヒット信号ＨＩＴなどによって制御される。
【００４２】
ページヒット判定回路１２６は、前回のＤＲＡＭアクセス時のＣＰＵアドレスをページヒット判定用ＣＰＵアドレスとして保持しており、そのＣＰＵアドレスと次回のＤＲＡＭアクセス時のＣＰＵアドレスとを比較することによって、ページヒットの有無を判定する。ここで、ページヒットとは、次回のＤＲＡＭアクセスが前回と同一のＤＲＡＭバンク内の同一ページをアクセスすることをいう。ページヒットしたことが判定されると、このことがページヒット信号ＨＩＴによって、タイミング制御回路１２５に通知される。
【００４３】
このように、ページヒットの判定動作は、ＤＲＡＭ論理アドレスではなく、ＣＰＵアドレスの値に基づいて行われる。これにより、アドレス変換動作とページヒット判定動作とを並行して行うことが可能となる。ページヒット判定にＣＰＵアドレスを利用することができるのは、ＣＰＵアドレスからＤＲＡＭ論理アドレスへのアドレス変換の単位（１６Ｋバイト）がＤＲＡＭバンクのページサイズ（最大４Ｋバイト程度）よりも大きな値に設定されているからである。これにより、ＤＲＡＭ論理アドレスが前回と今回のアクセスとで同一ページを指定しているにもかかわらず、ＣＰＵアドレスが異なるページを指定することがなくなる。
【００４４】
ページヒットの判定には、ＣＰＵアドレス（Ａ３１：０２）の中でカラムアドレス以降の全上位アドレスが使用される。従来方式では、ＤＲＡＭアクセスか否かの判定、ＤＲＡＭアクセスならばそのバンクを決定するために使用されていたアドレスを含む。
【００４５】
カラムアドレスのビット数、つまりページサイズはアクセス対象のＤＲＡＭバンク毎に異なる。このため、ページヒット判定回路１２６の内部レジスタにもページヒット判定に使用すべきビットをＲＡＳ線毎に指定する制御パラメタが予めセットされており、アクセス対象ＤＲＡＭバンクに対応する制御パラメタに従ってページヒットの判定が行われる。
【００４６】
このメモリ制御ロジック１２０によるＤＲＡＭ制御タイミングは、次の３つの状態に対応したサイクルタイミングに分類される。
【００４７】
（１）ページヒット
これは、今回のＤＲＡＭアクセスが前回と同一のＤＲＡＭバンク内の同一ページをアクセスすることをいう。この場合、ＤＲＡＭバンクはページモードでアクセス制御される。すなわち、カラムアドレスおよびＣＡＳ線の付勢タイミングだけが制御され、ＲＡＳデコーダ１２２によるＲＡＳ線の切り替えは行われない。また、前回のメモリサイクルが終了してもＲＡＳ線はアクティブ状態に維持され続ける。
【００４８】
（２）バンクミス
これは、今回のＤＲＡＭアクセスが前回と異なるＤＲＡＭバンクをアクセスすることをいう。この場合、ＲＡＳデコーダ１２２によるＲＡＳ線の切り替えが発生し、ＤＲＡＭバンクは通常のＤＲＡＭアクセスサイクルでアクセスされる。また、ページヒット判定回路１２６に保持されているページヒット判定用ＣＰＵアドレスの更新が行われる。
【００４９】
（３）ページミス
これは、今回のＤＲＡＭアクセスが前回と同一のＤＲＡＭバンク内の異なるページをアクセスすることをいう。この場合、ＲＡＳデコーダ１２２によって前回と同一のＲＡＳ線が再びアクティブ状態に設定し直され、ＤＲＡＭバンクは通常のＤＲＡＭアクセスサイクルでアクセスされる。また、ページヒット判定回路１２６に保持されているページヒット判定用ＣＰＵアドレスの更新が行われる。
【００５０】
次に、図４乃至図６を参照して、ＲＡＳデコーダ１２２に設定される各ＲＡＳ線のデコード条件について説明する。
【００５１】
図４には、システム内のＤＲＡＭメモリマップの一例が示されている。このＤＲＡＭメモリマップは、図１に示されているように、システムボード１０上にシステムメモリ１３として２個の２ＭバイトＤＲＡＭバンクが実装されており、拡張メモリコネクタ２１の増設メモリ４１が１個の８ＭバイトＤＲＡＭバンクから構成され、また拡張メモリコネクタ２２の増設メモリ４２が２個の４ＭバイトＤＲＡＭバンクから構成されている場合に対応するものである。
【００５２】
この場合、これらＤＲＡＭバンクは、メモリサイズの大きいもの順、すなわち、図４のように、８ＭバイトＤＲＡＭバンク、２個の４ＭバイトＤＲＡＭバンク、２個の２ＭバイトＤＲＡＭバンクの順で、合計２０ＭバイトのＤＲＡＭ論理アドレス空間に配置される。
【００５３】
このメモリ配置においては、８ＭバイトＤＲＡＭバンクに対応するＲＡＳ２線には０〜８Ｍバイトのアドレス範囲が割り当てられる。また、最初の４ＭバイトＤＲＡＭバンクに対応するＲＡＳ４線には８〜１２Ｍバイトのアドレス範囲、次の４ＭバイトＤＲＡＭバンクに対応するＲＡＳ５線には１２〜１６Ｍバイトのアドレス範囲が割り当てられる。さらに、最初の２ＭバイトＤＲＡＭバンクに対応するＲＡＳ０線には１６〜１８Ｍバイトのアドレス範囲、次の２ＭバイトＤＲＡＭバンクに対応するＲＡＳ１線には１８〜２０Ｍバイトのアドレス範囲が割り当てられる。ＲＡＳ３線は使用されないので、このＲＡＳ３線にはアドレス範囲は割り当てられない。
【００５４】
この時、ＲＡＳ０〜ＲＡＳ５線それぞれのデコード条件は、図５のように決定される。
【００５５】
ＲＡＳ０〜ＲＡＳ５線それぞれのデコード条件としては、各ＲＡＳ線に割り当てられたアドレス範囲に属する全てのＤＲＡＭ論理アドレス値（ＭＡ３１：０２）にのみ共通に存在するビット列が使用される。
【００５６】
すなわち、ＲＡＳ２線のデコード条件は、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位９ビット（ＭＡ３１〜２３）＝“００００  ００００  ０”となる。ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の下位２１ビットは、ＲＡＳ２線に接続された８ＭバイトＤＲＡＭバンクのロウアドレスおよびカラムアドレスとして使用される。
【００５７】
また、ＲＡＳ４線のデコード条件は、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位１０ビット（ＭＡ３１〜２２）＝“００００  ００００  １０”となる。ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の下位２０ビットは、ＲＡＳ４線に接続された４ＭバイトＤＲＡＭバンクのロウアドレスおよびカラムアドレスとして使用される。
【００５８】
ＲＡＳ５線のデコード条件は、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位１０ビット（ＭＡ３１〜２２）＝“００００  ００００  １１”となる。ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の下位２０ビットは、ＲＡＳ５線に接続された４ＭバイトＤＲＡＭバンクのロウアドレスおよびカラムアドレスとして使用される。
【００５９】
ＲＡＳ０線のデコード条件は、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位１１ビット（ＭＡ３１〜２１）＝“００００  ０００１  ０００”となる。ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の下位１９ビットは、ＲＡＳ０線に接続された２ＭバイトＤＲＡＭバンクのロウアドレスおよびカラムアドレスとして使用される。
【００６０】
ＲＡＳ１線のデコード条件は、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位１１ビット（ＭＡ３１〜２１）＝“００００  ０００１  ０００”となる。ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の下位１９ビットは、ＲＡＳ０線に接続された２ＭバイトＤＲＡＭバンクのロウアドレスおよびカラムアドレスとして使用される。
【００６１】
このように、各ＲＡＳ線のデコード条件としては、各ＲＡＳ線に対応するアドレス範囲に属する共通ビット列が使用される。このため、前述のＲＡＳデコーダ１２２は、ＤＲＡＭ論理アドレス値とデコード条件との一致／不一致をＲＡＳ線毎に検出するだけで済み、従来に比し、そのハードウェア構成を大幅に簡単化することが可能となる。
【００６２】
次に、ページインタリーブアーキテクチャを採用する場合の各ＲＡＳ線のデコード条件について説明する。
【００６３】
ページインタリーブを行う場合には、図４のようにマッピングされた５つのＤＲＡＭバンクは、ページインタリーブ可能なバンクグループに分類される。各バンクグループは、メモリアドレス範囲が隣接し且つ合計メモリサイズが一致するバンクの組み合わせを含む。このようなグループピングは、ＤＲＡＭ論理アドレスの若い方から順番に行われる。
【００６４】
すなわち、図４の例では、ＲＡＳ２の８ＭバイトＤＲＡＭバンクのアドレス範囲（０〜８Ｍバイト）に後続するアドレス範囲に割り付けられた２個の４ＭバイトＤＲＡＭバンクの合計メモリサイズが８Ｍバイトとなるので、ＲＡＳ２、ＲＡＳ４、ＲＡＳ５に対応する３つのバンクによって１つのページインタリーブグループが構成される。
【００６５】
また、ＲＡＳ０の２ＭバイトＤＲＡＭバンクのアドレス範囲（１６〜８Ｍバイト）に後続するアドレス範囲にＲＡＳ１の２ＭバイトＤＲＡＭバンクが割り付けられているので、ＲＡＳ０、ＲＡＳ１に対応する２つのバンクによって別のページインタリーブグループが構成される。
【００６６】
この場合、各ＲＡＳ線のデコード条件は図５から図６のように変更される。
【００６７】
すなわち、グループ１のＲＡＳ２，ＲＡＳ４，ＲＡＳ５それぞれのデコード条件としては、グループ１に割り当てられる合計１６Ｍバイトのアドレス範囲（０〜１６Ｍバイト）に属する全てのＤＲＡＭ論理アドレス値（ＭＡ３１：０２）に共通に存在するビット列と、ＲＡＳ２，ＲＡＳ４，ＲＡＳ５それぞれに対応するＤＲＡＭバンクのカラムアドレス（ページ内アドレス）とロウアドレス（ページアドレス）の間のビット列とが使用される。
【００６８】
すなわち、図６のように、ＲＡＳ２、ＲＡＳ４、およびＲＡＳ５に割り当てられる合計１６Ｍバイトのアドレス範囲においては、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位８ビット（ＭＡ３１〜２４）＝“００００  ００００”が共通して存在し、これはグループ２には存在しない。したがって、（ＭＡ３１〜２４）＝“００００  ００００”は、ＲＡＳ２、ＲＡＳ４、およびＲＡＳ５の共通のデコード条件として使用される。
【００６９】
ＲＡＳ２については、ＤＲＡＭ論理アドレスにおけるロウアドレスの開始位置が１ビット左シフトされて、ＲＡＳ２に対応する８ＭバイトＤＲＡＭバンクのロウアドレスとカラムアドレスとの間の１ビット（ＭＡ１２）＝“０”がデコード条件として加えられる。
【００７０】
ＲＡＳ４，ＲＡＳ５それぞれについては、ＤＲＡＭ論理アドレスにおけるロウアドレスの開始位置が２ビット左シフトされて、それらに対応する４ＭバイトＤＲＡＭバンクそれぞれのロウアドレスとカラムアドレスの間の２ビット（ＭＡ１３，１２）の値がアドレス条件として加えられる。２ビット使用されるのは、ＲＡＳ４，ＲＡＳ５それぞれのメモリサイズが、ＲＡＳ２のメモリサイズの半分だからである。
【００７１】
すなわち、ＲＡＳ４については、そのＲＡＳ４に対応する４ＭバイトＤＲＡＭバンクのロウアドレスとカラムアドレスの間の２ビット（ＭＡ１３，１２）＝“０１”がデコード条件として加えられ、ＲＡＳ５については、そのＲＡＳ５に対応する４ＭバイトＤＲＡＭバンクのロウアドレスとカラムアドレスの間の２ビット（ＭＡ１３，１２）＝“１１”がアドレス条件として加えられる。
【００７２】
このようにＲＡＳ２，ＲＡＳ４，ＲＡＳ５のデコード条件を決定すると、ＲＡＳ２の８ＭバイトＤＲＡＭバンクには０〜１６Ｍバイトのアドレス範囲の中の偶数ページ（０，２，４，６，……）が割り当てられ、ＲＡＳ４の４ＭバイトＤＲＡＭバンクには０〜１６Ｍバイトのアドレス範囲の中の奇数ページの一部（１，５，９，……）が割り当てられ、ＲＡＳ５の４ＭバイトＤＲＡＭバンクには０〜１６Ｍバイトのアドレス範囲の中の残りの奇数ページ（３，７，１１，……）が割り当てられる。
【００７３】
したがって、０〜１６Ｍバイトの範囲で連続アクセスが行われる時には、ＲＡＳ２、ＲＡＳ４、ＲＡＳ２、ＲＡＳ５、ＲＡＳ２、……という順番で、３つのＤＲＡＭバンクがページ単位で交互にアクセスされる。
【００７４】
一方、グループ２のＲＡＳ０，ＲＡＳ１それぞれのデコード条件は、次のようになる。
【００７５】
すなわち、ＲＡＳ０，ＲＡＳ１それぞれのデコード条件としては、グループ２に割り当てられる合計４Ｍバイトのアドレス範囲（１６〜２０Ｍバイト）に属する全てのＤＲＡＭ論理アドレス値（ＭＡ３１：０２）に共通に存在するビット列と、ＲＡＳ０，ＲＡＳ１それぞれに対応するＤＲＡＭバンクのカラムアドレスとロウアドレスの間のビット列とが使用される。
【００７６】
ＲＡＳ０、ＲＡＳ１に割り当てられる合計４Ｍバイトのアドレス範囲においては、ＤＲＡＭ論理アドレス値（ＭＡ３１：０２）の上位１０ビット（ＭＡ３１〜２２）＝“００００  ０００１  ００”が共通して存在し、これはグループ１には存在しない。したがって、（ＭＡ３１〜２２）＝“００００  ０００１  ００”は、ＲＡＳ０、ＲＡＳ１の共通のデコード条件として使用される。
【００７７】
また、ＲＡＳ０については、ＤＲＡＭ論理アドレスにおけるロウアドレスの開始位置が１ビット左シフトされて、ＲＡＳ０に対応する２ＭバイトＤＲＡＭバンクのロウアドレスとカラムアドレスとの間の１ビット（ＭＡ１１）＝“０”がデコード条件として加えられる。
【００７８】
ＲＡＳ１についても、ＤＲＡＭ論理アドレスにおけるロウアドレスの開始位置が１ビット左シフトされて、それに対応する２ＭバイトＤＲＡＭバンクのロウアドレスとカラムアドレスの間の１ビット（ＭＡ１１）＝“１”がデコード条件として加えられる。
【００７９】
このようにＲＡＳ０，ＲＡＳ１のデコード条件を決定すると、ＲＡＳ０の２ＭバイトＤＲＡＭバンクには１６〜２０Ｍバイトの４Ｍバイトのアドレス範囲の中の偶数ページ（０，２，４，６，……）が割り当てられ、ＲＡＳ１の２ＭバイトＤＲＡＭバンクには奇数ページ（１，３，５，７，……）が割り当てられる。したがって、１６〜２０Ｍバイトの範囲で連続アクセスが行われる時には、ＲＡＳ０、ＲＡＳ１、ＲＡＳ０、ＲＡＳ１、……という順番で、２つのＤＲＡＭバンクがページ単位で交互にアクセスされる。
【００８０】
このように、ページインタリーブは、インタリーブグループのアドレス範囲に共通に存在するビット列と、ロウアドレスとカラムアドレスとの間の所定ビット列とに基づいて各ＲＡＳのデコード条件を決定し、それをＲＡＳデコーダ１２２に設定するだけで実現する事ができる。
【００８１】
ＲＡＳデコーダ１２２へのデコード条件の設定などのメモリ制御ロジック１２０に対する初期設定処理は、ＢＩＯＳ  ＲＯＭ１４のＩＲＴルーチンによって実行される。
【００８２】
図７には、ＢＩＯＳのＩＲＴルーチンによって実行されるメモリ制御ロジック１２０に対する初期設定動作の手順が示されている。
【００８３】
システムがパワーオンされると、ＩＲＴルーチンは、まず、各ＤＲＡＭバンクのメモリタイプ（カラムアドレスおよびロウアドレスそれぞれのビット幅）を調べ、そのメモリバンクタイプにしたがってメモリサイズを検出する（ステップＳ１１）。カラムアドレスとロウアドレスそれぞれのビット幅は、テスト対象ＤＲＡＭバンクのある特定のメモリ番地に対するライト・リード・コンペアテストを実行することによって検出できる。
【００８４】
このステップＳ１１で行われるメモリサイズ検出処理動作の詳細については、図８以降で後述する。
【００８５】
次に、ＩＲＴルーチンは、システム内のＤＲＡＭバンクのメモリ再配置を行う（ステップＳ１２）。このメモリ再配置では、図４で説明したように、メモリサイズの大きいＤＲＡＭバンクから順にメモリアドレス空間の若い方に配置され、その配置に従って各ＤＲＡＭバンクに割り当てるべきアドレス範囲が決定される。
【００８６】
次いで、ＩＲＴルーチンは、図５で説明したように、ＤＲＡＭバンクそれぞれに割り当てられたアドレス範囲毎にその範囲に属するＤＲＡＭ論理アドレス値にのみ共通に存在するビット列を検出し、その共通ビット列をＲＡＳ線それぞれのデコード条件として決定する（ステップＳ１３）。
【００８７】
ページインタリーブアーキテクチャを用いない場合には、ＩＲＴルーチンは、ステップＳ１３で決定した各ＲＡＳ線のデコード条件を、そのままＲＡＳデコーダ１２２の内部レジスタにセットする（ステップＳ１７）。次いで、ＩＲＴルーチンは、ロウアドレス／カラムアドレスマルチプレクサ１２３の内部レジスタにロウアドレス開始位置をＲＡＳ線毎に指定する制御パラメタをセットし、またページヒット判定回路１２６の内部レジスタにペ−ジヒット判定に使用するＣＰＵアドレスの位置をＲＡＳ線毎に指定する制御パラメタをセットする（ステップＳ１８）。これら制御パラメタの値は、それぞれステップＳ１１で検出されたメモリバンクタイプに従って決定される。
【００８８】
一方、ページインタリーブアーキテクチャを採用する場合には、ＩＲＴルーチンは、ステップＳ１２でメモリサイズ順に配置したＤＲＡＭマップに従って、ページインタリーブ可能なグループを決定する（ステップＳ１５）。次いで、ＩＲＴルーチンは、ページインタリーブグループのアドレス範囲に共通に存在するビット列と、ロウアドレスとカラムアドレスとの間の所定ビット列とに基づいて各ＲＡＳのデコード条件を変更する（ステップＳ１６）。
【００８９】
この後、ＩＲＴルーチンは、ステップＳ１６で決定した各ＲＡＳ線のデコード条件を、ＲＡＳデコーダ１２２の内部レジスタにセットする（ステップＳ１７）。次いで、ＩＲＴルーチンは、ロウアドレス／カラムアドレスマルチプレクサ１２３の内部レジスタにロウアドレス開始位置をＲＡＳ線毎に指定する制御パラメタをセットし、またページヒット判定回路１２６の内部レジスタにペ−ジヒット判定に使用するＣＰＵアドレスの位置をＲＡＳ線毎に指定する制御パラメタをセットする（ステップＳ１８）。ロウアドレス開始位置は、ステップＳ１１で検出されたメモリバンクタイプと、ページインターリーブのためのデコード条件として使用したロウアドレスとカラムアドレス間のビット数とに基づいて決定される。また、ペ−ジヒット判定に使用するＣＰＵアドレスの位置については、ステップＳ１１で検出されたメモリバンクタイプに従って決定される。
【００９０】
次に、図８乃至図１２を参照して、ＤＲＡＭバンクのメモリサイズ検出処理の原理を説明する。
【００９１】
まず、図８を参照して、１本のＲＡＳでアクセス制御可能なＤＲＡＭバンクの種類について説明する。ＤＲＡＭバンクは、図示のように、タイプ１〜タイプ４の４つのバンクに大別される。
【００９２】
タイプ１のＤＲＡＭバンクは、２Ｍバイトのメモリサイズを有する。このタイプ１のＤＲＡＭバンクは、５１２Ｋ（１Ｋ行×５１２列）×８ビット構成の４ＭビットＤＲＡＭチップを４個含んでおり、ロウアドレスのビット幅は１０ビット、カラムアドレスのビット幅は９ビットである。
【００９３】
タイプ２のＤＲＡＭバンクは、４Ｍバイトのメモリサイズを有する。このタイプ２のＤＲＡＭバンクは、１Ｍ（１Ｋ行×１Ｋ列）×４ビット構成の４ＭビットＤＲＡＭチップを８個含んでおり、ロウアドレスのビット幅は１０ビット、カラムアドレスのビット幅は１０ビットである。
【００９４】
タイプ３のＤＲＡＭバンクは、８Ｍバイトのメモリサイズを有する。このタイプ３のＤＲＡＭバンクは、２Ｍ（２Ｋ行×１Ｋ列）×８ビット構成の１６ＭビットＤＲＡＭチップを４個含んでおり、ロウアドレスのビット幅は１１ビット、カラムアドレスのビット幅は１０ビットである。
【００９５】
タイプ４のＤＲＡＭバンクは、１６Ｍバイトのメモリサイズを有する。このタイプ４のＤＲＡＭバンクは、４Ｍ（２Ｋ行×２Ｋ列）×４ビット構成の１６ＭビットＤＲＡＭチップを８個含んでおり、ロウアドレスのビット幅は１１ビット、カラムアドレスのビット幅は１１ビットである。
【００９６】
図９、図１０、および図１１には、それぞれ図１のシステムメモリ１３、増設メモリ４１、および増設メモリ４２のメモリ構成が示されている。
【００９７】
システムメモリ１３がタイプ１の２個の２ＭバイトＤＲＡＭバンクによって構成されている場合には、図９に示されているように、一方の２ＭバイトＤＲＡＭバンクの４つのＤＲＡＭチップはＲＡＳ０線およびＣＡＳ線に共通接続され、他方の２ＭバイトＤＲＡＭバンクの４つのＤＲＡＭチップはＲＡＳ１線、およびＣＡＳ線に共通接続される。また、これら２つの２ＭバイトＤＲＡＭバンク内の全てのチップは、メモリアドレスバス３３、およびデータバス３２２の双方に並列接続される。
【００９８】
これら２つの２ＭバイトＤＲＡＭバンクのどちらがアドレス指定されるかは、ＲＡＳ０とＲＡＳ１のどちらが付勢されるかによって決定される。
【００９９】
ＲＡＳ０線が付勢された場合には、その時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットがロウアドレスとしてそのＲＡＳ０線に接続されている４つのチップにそれぞれ取り込まれる。この後、ＲＡＳ０線に接続されている４つのチップは、ＣＡＳ線が付勢された時にメモリアドレスバス３３上に出力されているアドレス値の下位９ビットをカラムアドレスとして取り込む。これら１０ビットのロウアドレスおよび９ビットのカラムアドレスによってＲＡＳ０線に接続されている４つのチップそれぞれの同一番地が同時にアドレス指定され、１チップ当たり８ビットの合計３２ビット単位でＲＡＳ０線に対応するＤＲＡＭバンクがリード／ライトアクセスされる。
【０１００】
同様に、ＲＡＳ１線が付勢された場合には、その時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットのロウアドレスがそのＲＡＳ１線に接続されている４つのチップにそれぞれ取り込まれる。この後、ＲＡＳ１線に接続されている４つのチップは、ＣＡＳ線が付勢された時にメモリアドレスバス３３上に出力されているアドレス値の下位９ビットのカラムアドレスを取り込む。これら１０ビットのロウアドレスおよび９ビットのカラムアドレスによって、ＲＡＳ１線に接続されている４つのチップそれぞれの同一記憶位置が同時にアドレス指定され、１チップ当たり８ビットの合計３２ビット単位でＲＡＳ１線に対応するＤＲＡＭバンクがリード／ライトアクセスされる。
【０１０１】
増設メモリ４１がタイプ３の１個の８ＭバイトＤＲＡＭバンクによって構成されている場合には、図１０に示されているように、その８ＭバイトＤＲＡＭバンクの４つのＤＲＡＭチップはＲＡＳ２線およびＣＡＳ線に共通接続される。また、８ＭバイトＤＲＡＭバンク内の全てのチップは、メモリアドレスバス３３、およびデータバス３２２の双方に並列接続される。
【０１０２】
ＲＡＳ２線が付勢された場合には、その時にメモリアドレスバス３３上に出力されているアドレス値の下位１１ビットがロウアドレスとしてそのＲＡＳ２線に接続されている４つのチップにそれぞれ取り込まれる。この後、ＲＡＳ２線に接続されている４つのチップは、ＣＡＳ線が付勢された時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットをカラムアドレスとして取り込む。これら１１ビットのロウアドレスと１０ビットのカラムアドレスとによって、ＲＡＳ０線に接続されている４つのチップそれぞれの対応する記憶位置が同時にアドレス指定され、１チップ当たり８ビットの合計３２ビット単位で、ＲＡＳ２線に対応するＤＲＡＭバンクがリード／ライトアクセスされる。
【０１０３】
増設メモリ４２がタイプ２の２個の４ＭバイトＤＲＡＭバンクによって構成されている場合には、図１１に示されているように、一方の４ＭバイトＤＲＡＭバンクの８つのＤＲＡＭチップはＲＡＳ４線およびＣＡＳ線に共通接続され、他方の４ＭバイトＤＲＡＭバンクの８つのＤＲＡＭチップはＲＡＳ５線およびＣＡＳ線に共通接続される。また、これら４ＭバイトＤＲＡＭバンク内の全てのチップは、メモリアドレスバス３３、およびデータバス３２２の双方に並列接続される。
【０１０４】
これら２つの４ＭバイトＤＲＡＭバンクのどちらがアドレス指定されるかは、ＲＡＳ４とＲＡＳ５のどちらが付勢されるかによって決定される。
【０１０５】
ＲＡＳ４線が付勢された場合には、その時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットがロウアドレスとしてそのＲＡＳ４線に接続されている８つのチップにそれぞれ取り込まれる。この後、ＲＡＳ４線に接続されている８つのチップは、ＣＡＳ線が付勢された時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットをカラムアドレスとして取り込む。これら１０ビットのロウアドレスおよび１０ビットのカラムアドレスによって、ＲＡＳ４線に接続されている８つのチップそれぞれの同一の記憶位置が同時にアドレス指定され、１チップ当たり４ビットの合計３２ビット単位でＲＡＳ４線に対応するＤＲＡＭバンクがリード／ライトアクセスされる。
【０１０６】
同様に、ＲＡＳ５線が付勢された場合には、その時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットがロウアドレスとしてそのＲＡＳ５線に接続されている８つのチップにそれぞれ取り込まれる。この後、ＲＡＳ５線に接続されている８つのチップは、ＣＡＳ線が付勢された時にメモリアドレスバス３３上に出力されているアドレス値の下位１０ビットをカラムアドレスとして取り込む。これら１０ビットのロウアドレスおよび１０ビットのカラムアドレスとによって、ＲＡＳ５線に接続されている８つのチップそれぞれの同一記憶位置が同時にアドレス指定され、１チップ当たり４ビットの合計３２ビット単位でＲＡＳ５線に対応するＤＲＡＭバンクがリード／ライトアクセスされる。
【０１０７】
このように、ＤＲＡＭバンクのタイプ毎に、ロウアドレスとして使用されるビット数とカラムアドレスとして使用されるビット数との関係が異なっている。各ＲＡＳ線に接続されたＤＲＡＭバンクのメモリサイズは、ロウアドレスおよびカラムアドレスとして使用されるビット数の違いを利用して検出される。
【０１０８】
以下、図１２のフローチャートを参照して、ＩＲＴルーチンのステップＳ１１で実行されるメモリサイズ検出処理の手順を説明する。
【０１０９】
ＩＲＴルーチンは、ＲＡＳ０、ＲＡＳ１、ＲＡＳ２、…の順で、ＲＡＳ線に接続されたＤＲＡＭバンクのメモリサイズ検出処理を行う。ＩＲＴルーチンは、まず、検査対象のＲＡＳ線の付勢だけが許可されるように、ＲＡＳデコーダ１２２に所定のデコード条件をセットする（ステップＳ２１）。この場合、検査対象ＲＡＳ線のデコード条件としては、メモリサイズ検出のために行われる何回かのメモリアクセスで使用されるメモリアドレス値に共通のビット列が使用される。また、検査対象ＲＡＳ線を除くの他の全てのＲＡＳ線については、メモリサイズ検出のために行われる何回かのメモリアクセスでそれらＲＡＳ線が付勢されないように、検査対象ＲＡＳ線とは異なる所定のビット列がそれぞれのデコード条件として設定される。
【０１１０】
次いで、ＩＲＴルーチンは、タイプ１〜タイプ４のＤＲＡＭバンクの中で最もカラムアドレスのビット数が大きいタイプ４のＤＲＡＭバンク（カラムアドレスＣＡ＝１１ビット、ロウアドレスＲＡ＝１１ビット）が検査対象ＲＡＳ線に接続されていると想定し、そのＤＲＡＭバンクに対してライト・リード・コンペアテストを行う（ステップＳ２２）。この場合、ロウアドレス／カラムアドレスマルチプレクサ１２３には、タイプ４のＤＲＡＭバンクに対応する制御パラメタがセットされる。ライト・リード・コンペアテストでは、ライトアドレス００００１０００Ｈ（Ｈは１６進表示を示す）のライトアクセスと、リードアドレス００００００００Ｈのリードアクセスとが行われ、その時のライトデータとリードデータの一致の有無が調べられる（ステップＳ２３）。
【０１１１】
もし、検査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクが想定した通りのタイプ４のＤＲＡＭバンクであれば、アドレス００００１０００Ｈに正常にデータを書き込むことができるので、ライトデータとリードデータの値は不一致となる。一方、検査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクがそのカラムアドレス数が１０ビット以下のタイプ１、タイプ２、またはタイプ３のバンクであった場合には、ライトデータとリードデータの値は一致する。これは、次の理由による。
【０１１２】
すなわち、ステップＳ２２ではタイプ４のＤＲＡＭバンクに対応する設定が成されているので、アドレス００００１０００Ｈのライトアクセス時に出力される１１ビットのロウアドレスＲＡ（ＭＡ２３，……，ＭＡ１３）＝０００００００００００であり、１１ビットのカラムアドレスＣＡ（ＭＡ１２，……，ＭＡ０２）＝１００００００００００である。カラムアドレス数が１０ビット以下のＤＲＡＭバンクにおいては、１１ビットのカラムアドレスＣＡの最上位ビットＭＡ１２の値“１”は無視される。このため、タイプ１、タイプ２、またはタイプ３のバンクが接続されている場合には、ライトアドレス００００１０００Ｈのライトアクセスによって、その先頭行におけるカラムアドレスＣＡ＝００００００００００で指定される番地、すなわちアドレス００００００００Ｈにデータが書き込まれる。これにより、リードアドレス００００００００Ｈのリードアクセスで読み出されたリードデータがライトデータと一致する。
【０１１３】
したがって、ステップＳ２３でライトデータとリードデータの不一致が検出された時は、検査対象ＲＡＳ線に接続されているＤＲＡＭバンクは想定した通りのタイプ４のＤＲＡＭバンク（ＣＡ＝１１ビット、ＲＡ＝１１ビット、メモリサイズ＝１６Ｍバイト）であると判定され（ステップＳ２４）、一方、ライトデータとリードデータの一致が検出された場合には、検査対象ＲＡＳ線に接続されているＤＲＡＭバンクはカラムアドレスビット数が１０ビット以下の他のタイプ（タイプ１、タイプ２、またはタイプ３）のＤＲＡＭバンクであると判定される。この場合には、次のようなステップＳ２５以降の処理が行われる。
【０１１４】
すなわち、ＩＲＴルーチンは、今度は、タイプ４の次にカラムアドレスビット数が大きいタイプ３（またはタイプ２）のメモリ構成（カラムアドレスＣＡ＝１０ビット、ロウアドレスＲＡ＝１１ビット）が検査対象ＲＡＳ線に接続されていると想定して、そのＤＲＡＭバンクに対してライト・リード・コンペアテストを行う（ステップＳ２５）。このライト・リード・コンペアテストでは、ライトアドレス０００００８００Ｈのライトアクセスと、リードアドレス００００００００Ｈのリードアクセスとが行われ、その時のライトデータとリードデータの一致の有無が調べられる（ステップＳ２６）。
【０１１５】
もし、検査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクがそのカラムアドレス数が９ビット以下のタイプ１のＤＲＡＭバンクであった場合には、前述と同様にカラムアドレスの最上位ビット“１”が無視されるため、そのタイプ１のＤＲＡＭバンクのアドレス００００００００Ｈで指定される番地にデータが書き込まれる。この結果、ライトデータとリードデータの値は一致する。したがって、ライトデータとリードデータの一致が検出された場合には、検査対象ＲＡＳ線に接続されているＤＲＡＭバンクがタイプ１のＤＲＡＭバンク（ＣＡ＝９ビット、ＲＡ＝１０ビット、メモリサイズ＝２Ｍバイト）であると判定される（ステップＳ２７）。
【０１１６】
一方、査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクが想定した通りの１０ビットのカラムアドレスビット数を持つタイプ２またはタイプ３のＤＲＡＭバンクであれば、アドレス０００１００００Ｈに正常にデータを書き込むことができるので、ライトデータとリードデータの値は不一致となる。したがって、ライトデータとリードデータの不一致が検出された場合には、タイプ２またはタイプ３のどちらのＤＲＡＭバンクが接続されているかを検出するために、次のようなステップＳ２８以降の処理が行われる。
【０１１７】
すなわち、ＩＲＴルーチンは、今度は、それらＤＲＡＭバンクの中でロウアドレスビット数が大きいタイプ３のＤＲＡＭバンク（カラムアドレスＣＡ＝１０ビット、ロウアドレスＲＡ＝１１ビット）が接続されていると想定して、そのＤＲＡＭバンクに対してライト・リード・コンペアテストを行う（ステップＳ２８）。
【０１１８】
このライト・リード・コンペアテストでは、ライトアドレス００４０００００Ｈのライトアクセスと、リードアドレス００００００００Ｈのリードアクセスとが行われ、その時のライトデータとリードデータの一致の有無が調べられる（ステップＳ２９）。
【０１１９】
もし、検査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクが想定した通りのタイプ３のＤＲＡＭバンクであれば、アドレス００４０００００Ｈに正常にデータを書き込むことができるので、ライトデータとリードデータの値は不一致となる。一方、検査対象ＲＡＳ線に実際に接続されているＤＲＡＭバンクがそのロウアドレス数が１０ビットのタイプ２のバンクであった場合には、ライトデータとリードデータの値は一致する。これは、次の理由による。
【０１２０】
すなわち、ステップＳ２８ではタイプ３のＤＲＡＭバンクに対応する設定が成されているので、アドレス００４０００００Ｈライトアクセス時に出力される１１ビットのロウアドレスはＲＡ（ＭＡ２２，……，ＭＡ１２）＝１００００００００００であり、１０ビットのカラムアドレスＣＡ（ＭＡ１１，……，ＭＡ０２）＝００００００００００である。ロウアドレス数が１０ビットのタイプ２のＤＲＡＭバンクにおいては、１１ビットのロウアドレスＲＡの最上位ビットＭＡ２２の値“１”は無視される。このため、タイプ２のバンクが接続されている場合には、ライトアドレス００４０００００Ｈのライトアクセスによって、その先頭行におけるカラムアドレスＣＡ＝００００００００００で指定される番地、すなわちアドレス００００００００Ｈにデータが書き込まれる。これにより、リードアドレス００００００００Ｈのリードアクセスで読み出されたリードデータがライトデータと一致する。
【０１２１】
したがって、ステップＳ２９でライトデータとリードデータの不一致が検出された時は、検査対象ＲＡＳ線に接続されているＤＲＡＭバンクは想定した通りのタイプ３のＤＲＡＭバンク（ＣＡ＝１０ビット、ＲＡ＝１１ビット、メモリサイズ＝８Ｍバイト）であると判定され（ステップＳ３０）、一方、ライトデータとリードデータの一致が検出された場合には、検査対象ＲＡＳ線に接続されているＤＲＡＭバンクはロウアドレスビット数が１０ビットのタイプ２のＤＲＡＭバンク（ＣＡ＝１０ビット、ＲＡ＝１０ビット、メモリサイズ＝４Ｍバイト）であると判定される（ステップＳ３１）。
【０１２２】
次に、図２で説明したＲＡＳデコーダ１２２、ロウアドレス／カラムアドレスマルチプレクサ１２３、およびページヒット判定回路１２６それぞれの具体的な回路構成について説明する。
【０１２３】
図１３には、ＲＡＳデコーダ１２２の具体的な回路構成が示されている。ＲＡＳデコーダ１３は、図示のように、ＲＡＳ０線〜ＲＡＳ５線にそれぞれ対応する６個のＲＡＳデコード回路５１〜５６を含んでいる。これらＲＡＳデコード回路５１〜５６は、それぞれＤＲＡＭ論理アドレス（ＭＡ３１：０２）と対応するデコード条件との一致／不一致を調べ、一致した際に対応するＲＡＳ線を所定のタイミングで付勢制御する。この場合、実際には３０ビットのＤＲＡＭ論理アドレス（ＭＡ３１：０２）全てのビット値を見る必要はなく、サポートするＤＲＡＭバンクの種類、最大ＤＲＡＭ論理アドレス空間などの条件から、ＭＡ２６，ＭＡ２５，ＭＡ２４，ＭＡ２３，ＭＡ２２，ＭＡ２１，飛んで、ＭＡ１３，ＭＡ１２，ＭＡ１１の９ビットだけがデコードに使用される。
【０１２４】
ＲＡＳデコード回路５１〜５６はどれも同じ回路構成であるので、ここでは、ＲＡＳデコード回路５１の回路構成を代表して説明する。
【０１２５】
ＲＡＳデコード回路５１は、ＲＡＳセットレジスタ６１、ＲＡＳマスクレジスタ６２、９個の一致／不一致検出回路７１〜７９、９個のマスク回路７１〜７９、およびＡＮＤ回路９１から構成されている。
【０１２６】
ＲＡＳセットレジスタ６１は、ＣＰＵ１１によってリード／ライト可能なＩ／Ｏレジスタであり、ここにはＲＡＳ０線のデコード条件を示すビット列がセットされる。例えば、ＲＡＳ０線のデコード条件が図５のように決定された場合には、“００１００Ｘ  ＸＸ１”がＲＡＳ０線のデコード条件としてＲＡＳセットレジスタ６１にセットされる。ここで、Ｘはデコード条件に関係しないビット値（Ｄｏｎ´ｔ  Ｃａｒｅ）を意味する。
【０１２７】
ＲＡＳマスクレジスタ６２は、ＣＰＵ１１によってリード／ライト可能なＩ／Ｏレジスタであり、ここにはＲＡＳ０線のデコード条件とＤＲＡＭ論理アドレスとの一致／不一致の判定結果をビット毎にマスクするか、しないかを指定するマスクデータ（“０”＝マスクする、“１”＝マスクしない）がセットされる。ここで、マスクするというのは、デコード条件のビット列の対応する１ビットの判定結果に関係なく、そのビットの判定結果を常に一致したことにすることを意味する。したがって、ＲＡＳセットレジスタ６１に前述のようにデコード条件として“００１００Ｘ  ＸＸ１”がセットされた場合には、ＲＡＳマスクレジスタ６２には、マスクデータ“１１１１１０  ００１”がセットされる。これにより、デコード条件の“００１００Ｘ  ＸＸ１”の内の“Ｘ”のビットをデコード条件から除外することができる。
【０１２８】
一致／不一致検出回路７１〜７９は、それぞれＤＲＡＭ論理アドレスとデコード条件の対応するビット同士の一致／不一致を検出する。これら一致／不一致検出回路７１〜７９の各々は、排他的論理和ゲートから実現する事ができる。９個のマスク回路７１〜７９は、それぞれ対応する一致／不一致検出回路７１〜７９の検出結果出力をマスクする。
【０１２９】
このように、ＲＡＳデコーダ１２２は、１本のＲＡＳ線当たり９ビットのデータサイズに相当するデータの一致／不一致を行うためのロジックだけで実現する事ができる。
【０１３０】
次に、図１４を参照して、ロウアドレス／カラムアドレスマルチプレクサ１２３の具体的な回路構成について説明する。
【０１３１】
ロウアドレス／カラムアドレスマルチプレクサ１２３は、図示のように、レジスタファイル２０１、パターンデコーダ２０２、ロウアドレスセレクタ２０３、ロウアドレス開始位置切り替え回路２０４〜２０７、およびロウアドレス／カラムアドレスセレクタ２０８から構成されている。
【０１３２】
レジスタファイル２０１は、ＣＰＵ１１によってリード／ライト可能なＩ／Ｏレジスタ群であり、ここにはＲＡＳ０〜ＲＡＳ５線それぞれに対応する６つの制御パラメタがセットされる。各制御パラメタは、対応するＲＡＳ線に接続されたＤＲＡＭバンクのロウアドレス開始位置、つまりＤＲＡＭ論理アドレスのどのｂｉｔをロウアドレスのＬＳＢにするかを指定する。
【０１３３】
ロウアドレス開始位置として使用される可能性があるのは、サポートするＤＲＡＭの種類、およびページインタリーブの条件から、ＤＲＡＭ論理アドレスのＭＡ１１，ＭＡ１２，ＭＡ１３，ＭＡ１４の４ビットである。各制御パラメタは、これら４種類のロウアドレス開始位置のいずれか１つを指定する４ビットデータから構成される。制御パラメタ“０００１”はＭＡ１１を指定し、“００１０”はＭＡ１２、“００１１”はＭＡ１３、“０１００”はＭＡ１４を指定する。
【０１３４】
レジスタファイル２０１にセットされている６つの制御パラメタの１つは、パターンデコーダ２０２に読み出される。どの制御パラメタが読み出されるかは、ＲＡＳデコータ１２２のデコード結果出力によって決定される。例えば、ＲＡＳデコータ１２２によってＲＡＳ０線が付勢される時は、ＲＡＳ０線に対応する制御パラメタがレジスタファイル２０１から読み出される。
【０１３５】
パターンデコーダ２０２は、レジスタファイル２０１から読み出された制御パラメタをデコードし、そのデコード結果に従って、セレクタ２０３に４種類のロウアドレスの１つを選択させるための選択信号を発生する。
【０１３６】
ロウアドレス開始位置切り替え回路２０４は、ＤＲＡＭ論理アドレスＭＡ３１：０２）の中からＭＡ１１をロウアドレス開始位置（ＬＳＢ）とする合計１１ビット（ＭＡ２１，……，ＭＡ１１）をロウアドレス（ＲＡ１０：０）として取り出す。同様に、ロウアドレス開始位置切り替え回路２０５はＭＡ１２をＬＳＢとする合計１１ビット（ＭＡ２２，……，ＭＡ１２）を取り出し、ロウアドレス開始位置切り替え回路２０６はＭＡ１３をＬＳＢとする合計１１ビット（ＭＡ２３，……，ＭＡ１３）を取り出し、ロウアドレス開始位置切り替え回路２０７はＭＡ１４をＬＳＢとする合計１１ビット（ＭＡ２４，……，ＭＡ１４）をロウアドレスとして取り出す。
【０１３７】
これらロウアドレス開始位置切り替え回路２０４〜２０７は、例えばバレルシフタなどによって構成されている。
【０１３８】
ロウアドレスセレクタ２０３は、パターンデコーダ２０２からの選択信号に従って、ロウアドレス開始位置切り替え回路２０４〜２０７から出力される４種類のロウアドレスの１つを選択して出力する。ロウアドレスセレクタ２０３によって選択されたロウアドレスは、ロウアドレス／カラムアドレスセレクタ２０８に供給される。また、このロウアドレス／カラムアドレスセレクタ２０８には、カラムアドレスも供給される。このカラムアドレスとしては、ＤＲＡＭ論理アドレスの下位１１ビット（ＭＡ１２，……ＭＡ０２）が常に使用される。
【０１３９】
ロウアドレス／カラムアドレスセレクタ２０８は、図２のタイミング制御回路１２５からの制御信号によって指定されるタイミングで、ロウアドレスとカラムアドレスを選択的にメモリアドレスバス３３上に出力する。
【０１４０】
このロウアドレス／カラムアドレスマルチプレクサ１２３においては、ＲＡＳデコーダ１２２のデコード動作と並行して、ロウアドレス開始位置切り替え回路２０４〜２０７それぞれによるロウアドレス切り出し動作が行われる。ＲＡＳデコーダ１２２のデコード結果が確定すると、その確定されたデコード結果によって指定される付勢対象のＲＡＳ線に対応した１つの制御パラメタがレジスタファイル２０１から読み出され、それがパターンデコーダ２０２に送られる。そして、そのパターンデコーダ２０２によるデコード動作、およびロウアドレスセレクタ２０３のロウアドレス選択動作が制御パラメタに従って実行され、これによってＤＲＡＭアクセスに使用すべきロウアドレスが確定される。
【０１４１】
なお、ここでは、ロウアドレス開始位置切り替え回路２０４〜２０７およびロウアドレスセレクタ２０３によってロウアドレス（ＲＡ１０：０）の１１ビット全てをＲＡＳ線に応じて切り替えるように説明したが、実際は、全部のロウアドレスのビットを切り替える必要はない。
【０１４２】
すなわち、ロウアドレス開始位置がＭＡ１１，ＭＡ１２，ＭＡ１３，ＭＡ１４のいずれの場合においても、ＭＡ１４〜ＭＡ１９の６ビットは共通に使用されるので、それらビットについては切り替え対象から除外する事ができる。この場合のＣＰＵアドレスとロウアドレスとの対応関係の一例を図１５に示す。
【０１４３】
図１５においては、ロウアドレスの下位３ビット（ＲＡ２〜ＲＡ０）と上位２ビット（ＲＡ１０，ＲＡ９）のみが切り替えの対象となっている。このようにすれば、ＣＰＵアドレスのＭＡ１４〜ＭＡ１９の６ビットをロウアドレスの中位６ビット（ＲＡ８〜ＲＡ３）としてロウアドレス／カラムアドレスセレクタ２０８に直接送ることができるので、ロウアドレス開始位置切り替え回路２０４〜２０７およびロウアドレスセレクタ２０３はそれぞれ切り替え対象の５ビット分のハードウェア構成だけで実現できる。
【０１４４】
このように、図１４のロウアドレス／カラムアドレスマルチプレクサ１２３の回路構成は、必要とする回路数を非常に少なくすることができる。しかし、ＲＡＳデコーダ１２２のデコード結果が確定されてからＤＲＡＭアクセスに使用すべきロウアドレスが確定されるまでには、３つの回路ブロックの動作（レジスタファイル２０１から使用する制御パラメタを選択して読み出す動作、パターンデコーダによるデコード動作、およびロウアドレスセレクタ２０３によるロウアドレス選択動作）を順次行う必要がある。このため、ロウアドレス／カラムアドレスマルチプレクサ１２３内で比較的大きなディレイが生じるという問題がある。
【０１４５】
図１６には、ロウアドレス／カラムアドレスマルチプレクサ１２３の第２の回路構成例が示されている。この図１６の構成は、ロウアドレス／カラムアドレスマルチプレクサ１２３内でのディレイを少なくするための改良が次のように成されている。
【０１４６】
すなわち、この図１６のロウアドレス／カラムアドレスマルチプレクサ１２３においては、図１４のパターンデコーダ２０２およびロウアドレスセレクタ２０３の代わりに、ＲＡＳ０〜ＲＡＳ５線それぞれに対応する６個のパターンデコーダ２０２−１〜２０２−６、および６個のロウアドレスセレクタ２０３−１〜２０３−６が設けられている。パターンデコーダ２０２−１〜２０２−６は、それぞれレジスタファイル２０１のＲＡＳ０制御パラメタ〜ＲＡＳ５制御パラメタに従ってロウアドレスセレクタ２０３−１〜２０３−６のロウアドレス選択動作を制御する。
【０１４７】
また、それらロウアドレスセレクタ２０３−１〜２０３−６の次段には、それらロウアドレスセレクタ２０３−１〜２０３−６によって得られた６種類のロウアドレス（ＲＡＳ０ロウアドレス〜ＲＡＳ５ロウアドレス）の１つをＲＡＳデコーダ１２２のデコード結果に応じて選択するロウアドレスセレクタ２０９が設けられている。
【０１４８】
この回路構成においては、ＲＡＳデコーダ１２２のデコード動作と並行して、ロウアドレス開始位置切り替え回路２０４〜２０７それぞれによるロウアドレス切り出し動作と、パターンデコーダ２０２−１〜２０２−６およびロウアドレスセレクタ２０３−１〜２０３−６によるロウアドレス選択動作とが行われる。これにより、ＲＡＳデコーダ１２２のデコード結果の確定を待たずに、ＲＡＳ０〜ＲＡＳ５線にそれぞれ対応した６種類のロウアドレス（ＲＡＳ０ロウアドレス〜ＲＡＳ５ロウアドレス）を生成することができる。
【０１４９】
ＲＡＳデコーダ１２２のデコード結果が確定すると、その確定されたデコード結果によって指定される付勢対象のＲＡＳ線に対応したロウアドレスがロウアドレスセレクタ２０９によって選択される。
【０１５０】
したがって、ＲＡＳデコーダ１２２のデコード結果が確定されてからＤＲＡＭアクセスに使用すべきロウアドレスが確定されるまでに必要となる回路動作は、最終段のアドレスセレクタ２０９によるアドレス選択動作だけとなり、内部ディレイが大幅に低減される。
【０１５１】
なお、この図１６の構成に於いても、図１４の場合と同様に、全部のロウアドレスのビットを切り替える必要はない。
【０１５２】
図１７には、図２のページヒット判定回路１２６の具体的な回路構成が示されている。
【０１５３】
このページヒット判定回路１２６には、図示のように、レジスタファイル３０１、ページヒット判定用ＣＰＵアドレスレジスタ３０２、一致判定回路３０３、マスク回路３０４、および一致判定マスク位置レジスタ３０５が設けられている。
【０１５４】
レジスタファイル３０１は、ＣＰＵ１１よってリード／ライト可能なＩ／Ｏレジスタであり、ここにはページヒット判定のために使用されるＣＰＵアドレスとの一致条件をマスクするか、しないかを指定するマスクデータ（“０”＝マスクする、“１”＝マスクしない）がＲＡＳ０〜ＲＡＳ５線それぞれに対応する制御パラメタとしてセットされる。
【０１５５】
すなわち、ページヒット判定では、ＣＰＵアドレス（Ａ３１：０２）の中で、ページ内アドレスを除外した残りのアドレス、つまり、カラムアドレスに相当する部分を除いた、ロウアドレス（ページアドレス）およびＲＡＳデコード用アドレスが対象となる。カラムアドレスに相当する部分はページヒット判定に関与しないので、そのカラムアドレスとして使用されているビットそれぞれについての判定結果はマスクデータによってマスクする必要がある。ここで、マスクするというのは、該当するビットの判定結果を常に一致したことにすることを意味する。
【０１５６】
実際には、各ＲＡＳ線に対応するマスクデータは、カラムアドレスの全ビットではなく、Ａ１２，Ａ１１，Ａ１０についてそれぞれマスクするか、しないかを示す３ビットデータから構成されている。これは、一致判定回路３０３が、ＤＲＡＭバンクの種類と関係なく常にカラムアドレスとして使用されるＡ１０よりも下位のビットについては一致判定から除外し、Ａ１０以降の上位のビットだけを一致判定の対象とするように構成されており、また、Ａ１２，Ａ１１，Ａ１０の３ビットそれぞれは、ＤＲＡＭバンクの種類によってカラムアドレスの一部として使用されるか否かが異なるからである。
【０１５７】
例えば、ＲＡＳ０線にタイプ１のＤＲＡＭバンク（カラムアドレスビット数＝９ビット）が接続されている場合には、Ａ１２，Ａ１１，Ａ１０の３ビットの中でＡ１０だけがカラムアドレスの一部として使用される。この時は、ＲＡＳ０線に対応するマスクデータ“１１０”がレジスタファイル３０１にセットされる。レジスタファイル３０１にセットされている６つのマスクデータのうちの１つは、レジスタファイル３０１から読み出されて一致判定マスク位置レジスタ３０５にセットされる。どのマスクデータが読み出されるかは、ＲＡＳデコータ１２２のデコード結果出力によって決定される。例えば、ＲＡＳデコータ１２２によってＲＡＳ０線が付勢される時は、ＲＡＳ０線に対応するマスクデータがレジスタファイル３０１から読み出される。
【０１５８】
ページヒット判定用ＣＰＵアドレスレジスタ３０２には、前回のメモリアクセス時のＣＰＵアドレス（Ａ３１：０２）の内のＡ２６〜Ａ１１の１７ビットがページヒット判定用ＣＰＵアドレスとして保持される。このページヒット判定用ＣＰＵアドレスレジスタ３０２の内容は、ページヒットせず、バンクミスまたはページミスが発生した時に、その時のメモリアクセスで使用されているＣＰＵアドレス（Ａ３１：０２）に従って更新される。すなわち、バンクミスまたはページミスが発生すると、タイミング制御回路１２５からレジスタ更新信号が発生される。このレジスタ更新信号に応答して、その時にＣＰＵアドレスバス上に出力されているＣＰＵアドレス（Ａ２６〜Ａ１１）がページヒット判定用ＣＰＵアドレスレジスタ３０２にラッチされる。これによって、ページヒット判定用ＣＰＵアドレスレジスタ３０２の内容は、バンクミスまたはページミスが発生したメモリサイクル時のＣＰＵアドレスに変更される。
【０１５９】
一致判定回路３０３は、今回のメモリアクセス時のＣＰＵアドレス（Ａ２６〜Ａ１１）とページヒット判定用ＣＰＵアドレスレジスタ３０２に保持されているＣＰＵアドレス（Ａ２６〜Ａ１１）とをビット毎に比較するコンパレータであり、Ａ２６〜Ａ１１それぞれの検出結果を示す１７ビットデータを出力する。
【０１６０】
マスク回路３０４は、Ａ２６〜Ａ１１それぞれの検出結果の内のＡ１２，Ａ１１，Ａ１０の検出結果出力を、一致判定マスク位置レジスタ３０５のマスクデータに従ってマスクし、マスク後の検出結果出力が全て一致を示す時にページヒット信号ＨＩＴを発生する。
【０１６１】
一致判定マスク位置レジスタ３０５には、付勢対象のＲＡＳ線に対応するマスクデータがセットされる。この一致判定マスク位置レジスタ３０５の内容は、ページヒットせず、バンクミスまたはページミスが発生した時に、その時にＲＡＳデコーダ１２２によって付勢されるＲＡＳ線に対応するマスクデータに更新される。すなわち、バンクミスまたはページミスが発生すると、タイミング制御回路１２５からレジスタ更新信号が発生される。このレジスタ更新信号に応答して、その時にＲＡＳデコーダ１２２によって選択されているレジスタファイル３０１内のマスクデータが一致判定マスク位置レジスタ３０５にラッチされる。これによって、一致判定マスク位置レジスタ３０５の内容は、バンクミスまたはページミスが発生したメモリサイクル時に付勢されるＲＡＳ線に対応したマスクデータに変更される。
【０１６２】
この様に構成されたページヒット判定回路１２６によれば、ＤＲＡＭ論理アドレスではなく、ＣＰＵアドレスを用いて、今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであるか否かを判定するページヒット判定が行われる。ページヒット判定にＣＰＵアドレスを利用することができるのは、前述したようにアドレス変換回路１２１によるＣＰＵアドレスからＤＲＡＭ論理アドレスへのアドレス変換の単位がＤＲＡＭバンクのページサイズ以上の値に設定されているからである。よって、アドレス変換動作とページヒット判定動作とを並行して行うことが可能となり、ページヒット判定を高速に行うことができ、メモリアクセス速度の高速化を実現することができる。
【０１６３】
また、タイミング制御回路１２５には、ＣＰＵ１１によってリード／ライト可能なタイミング制御レジスタ１２５が設けられている。このタイミング制御レジスタ１２５ａには、ＲＡＳデコーダ１２２のＲＡＳデコードタイミングを指定する情報と、ページヒット判定回路１２６のページヒット判定タイミングを指定する情報とが設定され、その設定情報に従ってＲＡＳデコーダ１２２およびページヒット判定回路１２６の動作タイミングが決定される。
【０１６４】
通常、これらＲＡＳデコーダ１２２およびページヒット判定回路１２６の動作タイミングは、ＣＰＵ１１のアドレスのディレイ、バスのクロック、使用している回路のプロセスなどにより固定的に決定されるので、これら条件が変わる度に設計変更が必要となる。しかし、この実施形態では、ＲＡＳデコーダ１２２およびページヒット判定回路１２６の動作タイミングをソフトウェアによる設定で可変できるようにしているので、タイミングに影響する条件が変わっても設計変更する必要がなくなる。
【０１６５】
また、タイミング制御回路１２５は、リフレッシュサイクルが間に入った場合などのようにアドレスが一致してもページヒットと判定してはならない場合のことを考慮して、ＤＲＡＭ制御のステートマシンによって、「ページアクセス可能状態」と「ページアクセス不可能状態」の２つの状態を管理できるように構成されている。現在の状態が「ページアクセス不可能状態」の時、タイミング制御回路１２５はページヒット信号を無効化する。
【０１６６】
「ページアクセス可能状態」とは、前回アクセスからのＲＡＳを出したままということである。「ページアクセス可能状態」でない状態が「ページアクセス不可能状態」である。システムリセット時は「ページアクセス不可能状態」である。
【０１６７】
ＣＰＵ１１のアクセスの後は、リードであるかライトであるかに拘わらず、「ページアクセス可能状態」となる。「ページアクセス可能状態」にある時の次のＣＰＵ１１のＤＲＡＭアクセスは、そのアドレスによって、ページヒット、バンクミス、ページミスのどれかになる。ページヒットの時は、高速に処理ができる。「ページアクセス不可能状態」にある時の次のＣＰＵ１１のＤＲＡＭアクセスは、そのアドレスには関係なくバンクミスになる。
【０１６８】
「ページアクセス不可能状態」になる要因は、ホールドアクノリッジＨＬＤＡ状態、ＤＲＡＭシャドーリフレッシュ、ＲＡＳタイムアウト、システムリセットである。したがって、タイミング制御回路１２５は、ＣＰＵ１１からのアドレスストローブＡＤＳ信号、ＨＬＤＡ信号、リフレッシュタイマからのＤＲＡＭリフレッシュ信号ＤＲＡＭ、システムリセット信号等に従って、「ページアクセス可能状態」と「ページアクセス不可能状態」の２つのステートを管理する。
【０１６９】
また、タイミング制御回路１２５はＲＡＳタイムアウト回路を内蔵しており、一定時間（ｔＲＡＳ）以上、ＲＡＳイネーブル状態が続くと、「ページアクセス可能状態」から「ページアクセス不可能状態」に移行する。
【０１７０】
現在の状態が「ページアクセス不可能状態」の時は、ページヒット信号を無効化するために、タイミング制御回路１２５は、ページヒット判定用ＣＰＵアドレスレジスタ３０２に保持されているメモリアドレス値を、ＤＲＡＭアクセスに使用されることがない値に変更してもよい。
【０１７１】
さらに、タイミング制御回路１２５は、ＣＰＵ１１以外の他のバスマスタがＤＲＡＭをアクセスする場合もページモードアクセスをサポートするために、次の２つのモードを持ち、それらモードを動的に変更するように構成されている。
【０１７２】
（モード１）
このモードはＣＰＵ１１と他のバスマスタが同一ページをアクセスすることはまれであるということを想定したものであり、バスマスタの切り替わりに応答して、「ページアクセス可能状態」から「ページアクセス不可能状態」に遷移して全てのＲＡＳをディスエーブルしておくモードである。これにより、新たにＲＡＳをイネーブルするときのプリチャージ時間を節約することができる。
【０１７３】
（モード２）
このモードはＣＰＵ１１と他のバスマスタが同一ページをアクセスするという使い方を想定したモードである。例えば、バスマスタがライトしたデータをすぐにＣＰＵ１１がリードするような場合がこれに相当する。このモードでは、バスマスタが切り替わっても「ページアクセス不可能状態」に遷移せずにＲＡＳをイネーブルのまま保持するので、同一ページ内への高速アクセスが可能となる。
【０１７４】
これらモードの一方を固定的に利用してもよいが、モード１で動作中にページヒットしたからしれないアドレスパターンが多い場合にはモード２に移行し、またモード２で動作中にページヒットしないことが多いならばモード１に移行するといった、ページヒット結果を利用したモード切替を行うことが好ましい。
【０１７５】
また、図１７のページヒット判定回路１２６においては、ページヒット判定用ＣＰＵアドレスレジスタ３０２には、ＣＰＵからのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアのメモリ属性情報がライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報も保持され、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されているサイクル種別情報と今回のメモリアクセスのサイクル種別との一致が一致判定回路３０３によるページヒット判定条件に加えられている。
【０１７６】
すなわち、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、メモリアドレスの一致の有無だけでは、実際にはページヒット判定を行うことができない。この場合、結果としてページヒット判定に時間がかかることになり、高速ページヒット判定のメリットを生かすことができなくなる。
【０１７７】
そこで、前述したように、この実施形態では、ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、ライトかリードかのサイクル種別情報についてもページヒット判定条件に加えられている。以下、そのための構成について具体的に説明する。
【０１７８】
まず、図１８を参照して、図１７のメモリエリア属性テーブル１２７で管理されているＣＰＵ１１のメモリアドレス空間とメモリ属性情報との関係を説明する。
【０１７９】
メモリエリア属性テーブル１２７によって管理される１つのアドレスエリアのサイズは１６Ｋバイトであり、図１８に示されているように、ＣＰＵメモリアドレス空間００００００００Ｈ〜００００ＦＦＦＦＨは００００００Ｈから順番にＡＲＥＡ００〜ＡＲＥＡ６３と定義される。
【０１８０】
これらＡＲＥＡ００〜ＡＲＥＡ６３の内、ＤＲＡＭを含む複数種のメモリデバイスが配置される可能性があるＡＲＥＡ４０〜ＡＲＥＡ６３に対応する各アトリビュートレジスタには、図１９に示すような８ビットの属性情報が設定される。図１９に示されているように、８ビットの属性情報のうち、ｂｉｔ７とｂｉｔ６の２ビットはリード属性情報（ＲＥＡＤ  ＡＴＴＲＩＢＵＴＥ）、ｂｉｔ５とｂｉｔ４の２ビットはライト属性情報（ＷＲＩＴＥ  ＡＴＴＲＩＢＵＴＥ）、ｂｉｔ３はＤＲＡＭライトプロテクト情報（ＷＰ）、ｂｉｔ２とｂｉｔ１の２ビットはキャッシング制御情報（ＣＡＳＨ）として使用される。
【０１８１】
リード属性情報（ＲＥＡＤ  ＡＴＴＲＩＢＵＴＥ）は、リードアクセス対象のメモリデバイスの種類を示すものであり、図２０に示されているように、そのｂｉｔ７とｂｉｔ６の２ビットの組み合わせによって、ＤＲＡＭ、ＶＬバス上のメモリ、ＰＣＩバス上のメモリ、ＩＳＡバス上のメモリのいずれかが指定される。ライト属性情報（ＷＲＩＴＥ  ＡＴＴＲＩＢＵＴＥ）は、ライトアクセス対象のメモリデバイスの種類を示すものであり、図２１に示されているように、そのｂｉｔ５とｂｉｔ４の２ビットの組み合わせによって、ＤＲＡＭ、ＶＬバス上のメモリ、ＰＣＩバス上のメモリ、ＩＳＡバス上のメモリのいずれかが指定される。
【０１８２】
ＤＲＡＭライトプロテクト情報（ＷＰ）は、ライト属性情報によってＤＲＡＭがライトアクセス対象のメモリデバイスとして指定されている時、図２２に示されているように、ｂｉｔ３の内容によってＤＲＡＭに対する書き込み保護を行うか否かを示す。
【０１８３】
キャッシング制御情報（ＣＡＳＨ）は、リード属性情報およびライト属性情報によって共にＤＲＡＭが指定されている時に於いて、そのＲＡＭのキャッシング操作の有効／無効を制御するためのものであり、図２３に示されているように、そのｂｉｔ２とｂｉｔ１の２ビットの組み合わせによって、ライトバックキャシュイネーブル、ライトスルーキャシュイネーブル、キャシュディセーブルのいずれかが指定される。例えば、ＶＧＡ  ＢＩＯＳや、システムＢＩＯＳがコピーされたＤＲＡＭエリアについては、キャシュディセーブルの設定が成される。
【０１８４】
ページヒット判定用ＣＰＵアドレスレジスタ３０２には、ＣＰＵ１１からのメモリアドレスと一緒にそのメモリアドレスに対応するメモリアドレスエリアのメモリ属性情報がメモリエリア属性テーブル１２７から読み込まれ、ライトアクセスとリードアクセスとで異なるメモリデバイスを指定しているか否かを示す情報とそのときのメモリアクセスがライトアクセスとリードアクセスのいずれであるかを示すサイクル種別情報が合わせて保持される。ライトアクセスとリードアクセスとでアクセス対象のメモリデバイスが異なるときは、保持されているメモリアドレスと今回のメモリアクセス時におけるＣＰＵからのメモリアドレスとが一致し、且つ保持されているサイクル種別情報と今回のメモリアクセスのサイクル種別との一致が一致判定回路３０３によるページヒット判定条件に加えられている。
【０１８５】
したがって、メモリ属性を高速に決定できるようになり、高速なページヒット判定を生かした高速メモリアクセスが可能になる。
【０１８６】
さらに、ページヒット判定用ＣＰＵアドレスレジスタ３０２には、前述の情報に加え、ＣＰＵからのメモリアドレスに対応するメモリアドレスエリアのＤＲＡＭライトプロテクト情報（ＷＰ）とキャッシング制御情報（ＣＡＳＨ）をさらに保持しておくことが望ましい。これにより、ページヒット判定がなされると同時に、次に実行すべきサイクルの種別を決定できる。
【０１８７】
すなわち、ページヒットであると判定されたときは、それと同時に次のようにサイクル種別が決定される。
【０１８８】
１．ライトページヒット非プロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ保持されているライトプロテクト情報が非ライトプロテクトを示している場合に実行されるサイクルであり、ＤＲＡＭへの書き込みがページモードで実行される。
【０１８９】
２．ライトページヒットプロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ保持されているライトプロテクト情報がライトプロテクトを示している場合に実行されるサイクルであり、ＣＡＳのアサートはおこなわれず、これによりライトプロテクトが実現される。
【０１９０】
３．リードページヒットシングル
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ保持されているキャッシュ制御情報がキャッシュ無効を示している場合に実行されるサイクルであり、ＤＲＡＭからデータを読み出すリードサイクルがページモードで１回実行される。
【０１９１】
４．リードページヒットバースト
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ保持されているキャッシュ制御情報がキャッシュ有効を示している場合に実行されるサイクルであり、ＤＲＡＭから連続する複数のデータを読み出すバーストリードサイクルがページモードで実行される。
【０１９２】
ここで、ライトプロテクト情報およびキャッシュ制御情報は、そのページに対して、バンクミスまたはページミスによってＲＡＳを出しなおしたときに、ページヒット判定用のＣＰＵアドレスとともに記録しておいたものである。これは、これらライトプロテクト情報およびキャッシュ制御情報のデコード結果を待っていては、ページヒット確定時間に間に合わないためである。
【０１９３】
従って、リードサイクルのときのライトプロテクト情報、およびライトサイクルのときのキャッシュ制御情報にも意味がある。
【０１９４】
また、ページヒットしなかった場合には、バンクミスかページミスかが判定され、バンクミスが決定されると、それと同時に次のようにサイクル種別が決定される。
【０１９５】
１．ライトバンクミス非プロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ今回のメモリアドレスに対応するライトプロテクト情報が非ライトプロテクトを示している場合に実行されるサイクルであり、別のＤＲＡＭバンクに対するＲＡＳがアサートされ、アーリーライトによってデータ書き込みが実行される。
【０１９６】
２．ライトバンクミスプロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ今回のメモリアドレスに対応するライトプロテクト情報がライトプロテクトを示している場合に実行されるサイクルであり、ＣＡＳのアサートはおこなわれず、これによりライトプロテクトが実現される。
【０１９７】
３．リードバンクミスシングル
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ今回のメモリアドレスに対応するキャッシュ制御情報がキャッシュ無効を示している場合に実行されるサイクルであり、別のＤＲＡＭバンクに対するＲＡＳがアサートされ、そのＤＲＡＭバンクからデータを読み出すリードサイクルが１回実行される。
【０１９８】
４．リードバンクミスバースト
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ今回のメモリアドレスに対応するキャッシュ制御情報がキャッシュ有効を示している場合に実行されるサイクルであり、別のＤＲＡＭバンクに対するＲＡＳがアサートされた後、そのＤＲＡＭバンクから連続する複数のデータを読み出すバーストリードサイクルが実行される。
【０１９９】
ここで、ライトプロテクト情報およびキャッシュ制御情報は、今回アクセスされるページに対して、定義されるデコード信号であり、次以降のアクセスのために、ページヒット判定用のＣＰＵアドレスとともに記録される。
【０２００】
また、ページミスが決定されると、それと同時に次のようにサイクル種別が決定される。
【０２０１】
１．ライトページミス非プロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ今回のメモリアドレスに対応するライトプロテクト情報が非ライトプロテクトを示している場合に実行されるサイクルであり、同一ＤＲＡＭバンクに対するＲＡＳがアサートし直され、アーリーライトによってデータ書き込みが実行される。
【０２０２】
２．ライトページミスプロテクト
これは、今回のメモリアクセスサイクルがライトサイクルであり、かつ今回のメモリアドレスに対応するライトプロテクト情報がライトプロテクトを示している場合に実行されるサイクルであり、ＣＡＳのアサートはおこなわれず、これによりライトプロテクトが実現される。
【０２０３】
３．リードページミスシングル
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ今回のメモリアドレスに対応するキャッシュ制御情報がキャッシュ無効を示している場合に実行されるサイクルであり、同一ＤＲＡＭバンクに対するＲＡＳがアサートし直され、そのＤＲＡＭバンクからデータを読み出すリードサイクルが１回実行される。
【０２０４】
４．リードページミスバースト
これは、今回のメモリアクセスサイクルがリードサイクルであり、かつ今回のメモリアドレスに対応するキャッシュ制御情報がキャッシュ有効を示している場合に実行されるサイクルであり、同一ＤＲＡＭバンクに対するＲＡＳがアサートし直された後、そのＤＲＡＭバンクから連続する複数のデータを読み出すバーストリードサイクルが実行される。
【０２０５】
ここで、ライトプロテクト情報およびキャッシュ制御情報は、今回アクセスされるページに対して、定義されるデコード信号であり、次以降のアクセスのために、ページヒット判定用のＣＰＵアドレスとともに記録される。
【０２０６】
以上説明したように、この実施形態によれば、ページヒット判定回路１２６により、ＤＲＡＭ論理アドレスではなく、ＣＰＵアドレスを用いて、今回のメモリアクセスが前回のメモリアクセスと同一バンク且つ同一ページであるか否かを判定するページヒット判定が行われる。よって、アドレス変換動作とページヒット判定動作とを並行して行うことが可能となり、ページヒット判定を高速に行うことができ、メモリアクセス速度の高速化を実現することができる。
【０２０７】
また、メモリ属性情報をページヒット判定用のＣＰＵアドレスと一緒に保持しておくことにより、さらに高速のページヒット判定および次のサイクル種別の決定が可能となる。
【０２０８】
【発明の効果】
以上説明したように、この発明によれば、ページヒット判定を高速に実行できるようになり、メモリアクセス速度の高速化を実現することができる。
【図面の簡単な説明】
【図１】この発明の一実施例に係るコンピュータシステムの構成を示すブロック図。
【図２】同実施例のシステムに設けられているシステムコントローラ内のメモリ制御ロジックを示すブロック図。
【図３】図２のメモリ制御ロジックに含まれるアドレス変換回路によって実行されるＣＰＵメモリアドレス空間からＤＲＡＭ論理アドレス空間への変換動作の示す図。
【図４】同実施例のシステムに設けられている複数のＤＲＡＭバンクがＤＲＡＭ論理アドレス空間にメモリサイズ順に再配置された状態を表すＤＲＡＭメモリマップを示す図。
【図５】同実施例のシステムに設けられている複数のＤＲＡＭバンクに接続されるＲＡＳ線それぞれのデコード条件を示す図。
【図６】同実施例のシステムでページインタリーブアーキテクチャを実現する場合に採用されるＲＡＳ線それぞれのデコード条件を示す図。
【図７】同実施例のシステムのパワーオン時にＩＲＴルーチンによって実行されるメモリ制御ロジックのための初期設定処理の手順を示すフローチャート。
【図８】同実施例のシステムでサポートされるＤＲＡＭバンクの種類の一例を示す図。
【図９】同実施例のシステムのシステムボード上に標準実装されたシステムメモリのメモリ構成の一例を示す図。
【図１０】同実施例のシステムに設けられた拡張メモリスロットに装着される増設メモリのメモリ構成の一例を示す図。
【図１１】同実施例のシステムに設けられた拡張メモリスロットに装着される増設メモリの他のメモリ構成の一例を示す図。
【図１２】図７のメモリ制御ロジックの初期設定処理において実行される各ＤＲＡＭバンクのメモリサイズ検出処理の手順を示すフローチャート。
【図１３】図２のメモリ制御ロジックに含まれるＲＡＳデコーダの具体的構成の一例を示す回路図。
【図１４】図２のメモリ制御ロジックに含まれるロウアドレス／カラムアドレスマルチプレクサの具体的構成の一例を示す回路図。
【図１５】図１４のロウアドレス／カラムアドレスマルチプレクサのロウアドレス切り替え動作を説明するための図。
【図１６】図２のメモリ制御ロジックに含まれるロウアドレス／カラムアドレスマルチプレクサの具体的構成の他の例を示す回路図。
【図１７】図２のメモリ制御ロジックに含まれるページヒット判定回路の具体的構成の一例を示す回路図。
【図１８】同実施形態のシステムによって管理されるメモリ属性情報とＣＰＵメモリアドレス空間との関係を示す図。
【図１９】図１８のメモリ属性情報のフォーマットを示す図。
【図２０】図１８のメモリ属性情報に含まれるリード属性情報の内容を示す図。
【図２１】図１８のメモリ属性情報に含まれるライト属性情報の内容を示す図。
【図２２】図１８のメモリ属性情報に含まれるＤＲＡＭライトプロテクト情報の内容を示す図。
【図２３】図１８のメモリ属性情報に含まれるキャッシング制御情報の内容を示す図。
【符号の説明】
１１…ＣＰＵ、１２…システムコントローラ、１３…システムメモリ、２１，２２…拡張メモリスロット、３１…ＣＰＵローカルバス、３３…メモリアドレスバス、４１，４２…増設メモリ、１２０…メモリ制御ロジック、１２１…アドレス変換回路、１２２…ＲＡＳデコーダ、１２３…ロウアドレス／カラムアドレスマルチプレクサ、１２４…ＣＡＳ発生回路、１２５…タイミング制御回路、１２６…ページヒット判定回路、５１〜５６…ＲＡＳデコード回路、７１〜７９…一致検出回路、８１〜８９…マスク回路、９１…ＡＮＤ回路、２０１，３０１…レジスタファイル、２０２…パターンデコーダ、２０３…ロウアドレスセレクタ、２０４〜２０７…ロウアドレス開始位置切り替え回路、２０８…ロウアドレス／カラムアドレスセレクタ、３０２…ページヒット判定用ＣＰＵアドレスレジスタ、３０３…一致判定回路、３０４…マスク回路、３０５…一致判定マスク位置レジスタ。
【図１】
0003614956.tif 000002
【図２】
0003614956.tif 000003
【図３】
0003614956.tif 000004
【図４】
0003614956.tif 000005
【図５】
0003614956.tif 000006
【図６】
0003614956.tif 000007
【図７】
0003614956.tif 000008
【図８】
0003614956.tif 000009
【図９】
0003614956.tif 000010
【図１０】
0003614956.tif 000011
【図１１】
0003614956.tif 000012
【図１２】
0003614956.tif 000013
【図１３】
0003614956.tif 000014
【図１４】
0003614956.tif 000015
【図１５】
0003614956.tif 000016
【図１６】
0003614956.tif 000017
【図１７】
0003614956.tif 000018
【図１８】
0003614956.tif 000019
【図１９】
0003614956.tif 000020
【図２０】
0003614956.tif 000021
【図２１】
0003614956.tif 000022
【図２２】
0003614956.tif 000023
【図２３】
0003614956.tif 000024