(57)【要約】【課題】　本発明は、連続アクセスモードを使用して動作する主記憶装置がシングルクロックモード時にノーマルクロックモード時と同じ動作をしなくなってしまうという問題点を解決する。【解決手段】　シングルクロックモードに対応した主記憶装置のメモリ素子群に対する書き込み制御方法であって、記憶制御装置から第２のクロックに同期して送出されてきた書き込みデータを書き込みデータバッファ(レジスタ)に格納し、１つのメモリ素子群の書き込み単位であるＳバイト（＝Ｌバイト）に書き込みが到達した時点で第１のクロックに同期してこのバッファからデータを読み出し、第１のクロックで動作するメモリ群に送出して書き込みを実行することにより、上記課題の解決を図る。【選択図】　　　図２
2004110846.tif 000002
【特許請求の範囲】
【請求項１】
　それぞれ動作状態において停止することのない第１のクロック（２０６）に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群（２０１）からなるメモリ装置に対してデータの書込み制御を行うメモリ制御方式において、
　前記連続アクセスモードのアクセス単位である第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を少なくとも格納する書込みデータバッファ手段（２０２）と、
　書込み命令に基づいて、第２のクロック（２０７）に同期して転送されてくる書込みデータ（２０５）を、前記第２のクロック（２０７）に同期して前記書込みデータバッファ手段（２０２）に順次格納する書込みデータ格納制御手段（２０３）と、
　前記書込みデータバッファ手段（２０２）に前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）が格納された時点で、該格納された前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のクロック（２０６）に同期して、連続アクセスモードの下で読み出して、前記複数のメモリ群（２０１）の何れかに転送する書込みデータ読出し制御手段（２０４）と、
　を有することを特徴とするメモリ制御方式。
【請求項２】
　アドレス空間上で連続する第１のデータ単位数（Ｋバイト）のデータの転送要求のそれぞれに対応して、前記第１のデータ単位数（Ｋバイト）を分割したバイト数である第２のデータ単位数（Ｌバイト）を単位として優先順位をとり、前記第２のデータ単位数（Ｌバイト）を単位とするデータ転送命令を、それぞれ動作状態において停止することのない第１のクロック（２０６）に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群（２０１）からなるメモリ装置に対して複数回発行することにより、前記第１のデータ単位数（Ｋバイト）のデータの転送要求に対応するメモリアクセスを実行するメモリ制御方式において、
　前記連続アクセスモードのアクセス単位であると共に、前記データ転送命令に対応する前記第２のデータ単位数（Ｌバイト）のデータを、前記第２のデータ単位数（Ｌバイト）と等しいかそれを分割したデータ単位数であって、前記メモリ群（２０１）の起動単位であるデータ単位数（Ｂバイト）の２倍以上のデータ単位数である第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を少なくとも格納する書込みデータバッファ手段（２０２）と、
　前記データ転送命令である書込み命令に基づいて、第２のクロック（２０７）に同期して転送されてくる書込みデータ（２０５）を、前記第２のクロック（２０７）に同期して前記書込みデータバッファ手段（２０２）に順次格納する書込みデータ格納制御手段（２０３）と、
　前記書込みデータバッファ手段（２０２）に格納される前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のデータ単位数（Ｋバイト）を前記第４のデータ単位数（Ｓバイト）で除した数又はこれ以下の数の前記メモリ群（２０１）の何れかに割り付ける割付け手段と、
　前記書込みデータバッファ手段（２０２）に前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）が格納された時点で、該格納された前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のクロック（２０６）に同期して、連続アクセスモードの下で読み出して、前記割付け手段によって割付けが行われたメモリ群（２０１）に転送する書込みデータ読出し制御手段（２０４）と、
　を有することを特徴とするメモリ制御方式。
【請求項３】
　前記書込みデータバッファ手段（２０２）を２組有し、
　前記書込みデータ格納制御手段（２０３）に対して一方の前記書込みデータバッファ手段（２０２）への前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）の格納動作を実行せると共に、前記書込みデータ読出し制御手段（２０４）に対して他方の前記書込みデータバッファ手段（２０２）から前記メモリ群（２０１）への前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）の読出し動作を実行させ、前記書込みデータ格納制御手段（２０３）及び前記書込みデータ読出し制御手段（２０４）がそれぞれ前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）に対する処理を終了した時点で、前記書込みデータ格納制御手段（２０３）及び前記書込みデータ読出し制御手段（２０４）がそれぞれ処理を行う前記書込みデータバッファ手段（２０２）を切り替える切替え手段を有する、
　ことを特徴とする請求項１又は２の何れか１項に記載のメモリ制御方式。
【請求項４】
　前記メモリ装置に接続されるデータバスが、読出しデータの転送と前記書込みデータ（２０５）の転送に共通に使用される双方向バスであって、
　前記第２のクロック（２０７）の変化時点において前記第１のクロック（２０６）に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段を更に有し、
　前記書込みデータバッファ手段（２０２）は、データの格納を前記第１のクロック（２０６）に同期して行うデータバッファ手段によって構成され、
　前記書込みデータ格納制御手段（２０３）は、前記書込み命令に基づいて、前記第２のクロック（２０７）に同期して前記データバス上を転送されてくる書込みデータ（２０５）を、前記タイミング信号生成手段が生成するタイミング信号に同期して前記データバッファ手段に順次格納し、
　前記書込みデータバッファ手段（２０２）を構成する前記データバッファ手段は、前記第１のクロック（２０６）に同期して前記メモリ群（２０１）から読み出された読出しデータが前記第２のクロック（２０７）に同期して前記データバスに読み出される際の読出しデータバッファ手段として共通に使用される、
　ことを特徴とする請求項２又は３の何れか１項に記載のメモリ制御方式。
【請求項５】
　前記第２のクロック（２０７）の変化時点において前記第１のクロック（２０６）に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段を更に有し、
　前記書込みデータ格納制御手段（２０３）は、前記書込み命令に基づいて、前記第２のクロック（２０７）に同期して前記データバス上を転送されてくる書込みデータ（２０５）を、前記タイミング信号生成手段が生成するタイミング信号に同期して前記書込みデータバッファ手段（２０２）に順次格納する、
　ことを特徴とする請求項１乃至３の何れか１項に記載のメモリ制御方式。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、電子計算機等の記憶装置に使用される、連続アクセスモードを使用してデータの書込み又は読出しを行う機能を有するＤＲＡＭ又はクロック同期タイプＤＲＡＭなどのメモリの制御技術に関する。
【背景技術】
【０００２】
　例えばＤＲＡＭ（ダイナミックＲＡＭ）において、連続アクセスモードと呼ばれるアクセスモードを有するものが知られている。このモードを有する例えばＤＲＡＭは、データ書込み時において、例えば、ＲＡＳ信号（行アドレス信号）、ＷＥ（書込み許可）信号、及びアドレス信号等を起動信号として入力した後、自身でアドレス信号の値をＣＡＳ信号（列アドレス信号）に同期して＋１ずつ更新し、それに同期して入力される書込みデータをアドレス信号によって指定されるセル部に書き込む。また、このＤＲＡＭは、データ読出しにも同様に、例えば、自身でアドレス信号の値をＣＡＳ信号に同期して＋１ずつ更新し、そのアドレス信号によって指定されるセル部からデータを読み出し、そのデータをＣＡＳ信号に同期して出力する。一方、クロック同期タイプＤＲＡＭは、上述のＤＲＡＭがＣＡＳ信号に同期してデータアクセスを制御していたのに対して、自身に入力するクロックを使用してデータアクセスを制御するものであり、基本的な機能は上述のＤＲＡＭの場合と同じである。
【０００３】
　本発明は、この連続アクセスモードを有するメモリの制御技術に関するものである。
　本発明が、具体的に関連する技術分野は大きく分類して２つある。
＜第１の技術分野とその技術分野での従来技術＞
　まず、本発明が具体的に関連する第１の技術分野と、その第１の技術分野において本発明が具体的に関連する従来技術について、以下に説明する。
【０００４】
　今、記憶システムが、中央処理装置（以下、ＣＰＵと呼ぶ）内の高速に動作する小容量の記憶容量を有するバッファ記憶装置（キャッシュメモリ）、記憶制御装置内の中速に動作する中容量の記憶容量を有する中間バッファ記憶装置（２次キャッシュメモリ）、及び比較的低速に動作し大容量の記憶容量を有する主記憶装置からなる３つの記憶階層に分割して構成されている場合を想定する。
【０００５】
　これらの記憶装置間では、ブロックと呼ばれるデータ単位が、データが転送される時の管理制御の単位として使用される。この場合、データが転送される記憶装置の組合せ毎に、ブロックのサイズが異なる。即ち、例えば、バッファ記憶装置と中間バッファ記憶装置間でデータが転送される場合のブロックサイズは６４バイトであり、中間バッファ記憶装置と主記憶装置間でデータが転送される場合のブロックサイズは５１２バイトである。このようなブロックサイズの違いは、それぞれの記憶装置の使用頻度の違い、ブロックを管理するためにそれぞれの記憶装置に必要なメモリ容量の制限から生ずる。
【０００６】
　上述した記憶システムにおける各記憶装置間のデータ転送は、以下のようにして行われる。即ち、まず、或るＣＰＵがバッファ記憶装置との間でデータ転送処理を行っている場合に、バッファ記憶装置上に所望のデータが存在しなかった場合、中間バッファ記憶装置からそのデータを含む６４バイトのブロックがバッファ記憶装置に読み込まれる。この動作はムーブインと呼ばれる。このムーブイン処理において、バッファ記憶装置内の記憶領域が全て使用されていてムーブイン処理のための領域が無い場合には、最も使用頻度の少ない又は最も古くムーブインされたブロックが中間バッファ記憶装置に書き出され、そのブロックが使用していた記憶領域に目的ブロックが中間バッファ記憶装置からムーブインされる。上述の書出し動作は、ムーブアウトと呼ばれる。更に、中間バッファ記憶装置からバッファ記憶装置への上述したムーブイン動作において、目的とするデータが中間バッファ記憶装置に存在しない場合には、主記憶装置からそのデータを含む５１２バイトのブロックが中間バッファ記憶装置にムーブインされる。このムーブイン処理においても、中間バッファ記憶装置内の記憶領域が全て使用されていてムーブイン処理のための領域が無い場合には、最も使用頻度の少ない又は最も古くムーブインされたブロックが主記憶装置にムーブアウトされ、そのブロックが使用していた記憶領域に目的ブロックが主記憶装置からムーブインされる。
【０００７】
　本発明は、上述したように、バッファ記憶装置と中間バッファ記憶装置間、及び中間バッファ記憶装置と主記憶装置間でそれぞれ転送されるデータのブロックサイズが異なる記憶システムにおいて、ＤＲＡＭを使用した主記憶装置に対して連続アクセスモードを使用して効率的にアクセスを行う技術に、具体的に関連するものである。
【０００８】
　続いて、上述した第１の技術分野において本発明が具体的に関連する第１の従来技術について、以下に説明する。
　図１５は、第１の従来技術の説明図である。
【０００９】
　図１５は、主記憶装置の構成を示した図であり、まず、主記憶装置へのアクセス単位（ワード）のサイズは８バイトである。次に、主記憶装置は、バンク０とバンク１という物理的に独立したアクセスが可能な２組のＲＡＭ群１５０１から構成されている。また、１組のＲＡＭ群１５０１は、ＣＳ０〜ＣＳ３という４つのＤＲＡＭチップセットから構成されている。更に、１つのＤＲＡＭチップセットは、図１５に示されるように、１メガワードの記憶容量を有する。従って、図１５に示される主記憶装置全体では、以下の記憶容量を有する。
【００１０】
　８バイト×１メガワード×４チップセット×２バンク＝６４メガバイト
　ここで、上述の主記憶装置と、特には図示しない中間バッファ記憶装置との間のデータ転送におけるブロックサイズをＫ（ex. ５１２）バイトとするならば、従来は、１ブロック内のＫバイトのデータの全てが１組のＲＡＭ群１５０１に割り当てられている。
【００１１】
　この場合において、中間バッファ記憶装置が主記憶装置に対するムーブアウトを要求した場合は、特には図示しない記憶制御装置が、優先処理を行いながら、Ｋバイトの整数分の１であるＬ（ex. ６４）バイトのデータからなるブロックを単位とする書込み命令を、主記憶装置を構成する１組のＲＡＭ群１５０１に対して、Ｋ／Ｌ（ex. ８）回発行することによって、Ｋバイトのデータからなるブロックのムーブアウトを実現している。
【００１２】
　ここで、主記憶装置を利用するＣＰＵが１台のみである場合には、記憶制御装置はＬバイトのデータからなるブロックを単位とする書込み命令をＫ／Ｌ（ex. ８）回連続して連続して発行できるため、その発行を受信したＤＲＡＭによって構成される１組のＲＡＭ群１５０１は、連続アクセスモードを使用してこれらの書込み命令を処理する。
【００１３】
　具体例として、１組のＲＡＭ群１５０１に対しＬ＝６４バイトのデータからなるブロックの書込み命令が発行されると、ＲＡＭ群１５０１は、自身でアドレス値を書込みパルス（ＣＡＳ信号又はクロック信号）に同期して＋１ずつ更新し、それに同期して例えば８バイトのデータ幅を有するデータバスから８回連続して入力される８バイトのデータを、アドレス信号によって指定されるセル部に書き込む。ＲＡＭ群１５０１は、上述のＬ＝６４バイトのデータからなるブロックの書込み命令に続いて発行される次のＬ＝６４バイトのデータからなるブロックの書込み命令に対しても、連続して書込み処理を実行することができる。このようにして、Ｌ＝６４バイトのデータからなるブロックの書込み処理が８回実行されることにより、合計８バイト×８回×８回＝５１２＝Ｋバイトのデータからなるブロックのムーブアウトが実現される。
【００１４】
　上述の説明は、中間バッファ記憶装置が主記憶装置に対するムーブアウトを要求した場合の制御であるが、中間バッファ記憶装置が主記憶装置からのムーブインを要求した場合にも、上述の場合と同様の制御が行われる。
【００１５】
　以上説明したように、第１の従来技術では、ＤＲＡＭによって構成されるＲＡＭ群１５０１が有する連続アクセスモードの効果が最大限に発揮されるように、Ｋバイトのデータからなるブロック内の全てのデータが１組のＲＡＭ群１５０１に割り当てられ、そのＲＡＭ群１５０１において、連続アクセスモードを使用したＬバイトのデータからなるブロックの書込み命令又は読出し命令が、Ｋ／Ｌ回連続して実行される。
【００１６】
　ここで、上述のように、中間バッファ記憶装置と主記憶装置の間でＫバイトのデータからなるブロックが転送される場合に、記憶制御装置は、主記憶装置に対し、Ｋバイトのデータからなるブロックの書込み命令又は読出し命令を１回発行するのではなく、Ｌバイトのデータからなるブロックの書込み命令又は読出し命令をＫ／Ｌ回発行する。これは、以下の理由による。
【００１７】
　即ち、例えば、ＣＰＵ内のバッファ記憶装置が中間バッファ記憶装置内のＬ（ex. ６４）バイトのデータからなるブロックのムーブインを要求した場合において、目的とするブロックが中間バッファ記憶装置に存在しない場合は、記憶制御装置は、そのＬバイトのデータからなるブロックを含むＫ（ex. ５１２）バイトのデータからなるブロックを主記憶装置から中間バッファ記憶装置にムーブインする必要がある。この場合に、主記憶装置から中間バッファ記憶装置にムーブインされるＫバイトのデータからなるブロックを構成するデータのうち、中間バッファ記憶装置からＣＰＵ内のバッファ記憶装置に即座にムーブインする必要のあるデータは、Ｌバイトのデータからなる特定のブロックである。そこで、記憶制御装置は、主記憶装置に対して、Ｋバイトのデータからなるブロックの読出し命令を１回発行するのではなく、Ｌバイトのデータからなるブロックの読出し命令をＫ／Ｌ回発行することとし、中間バッファ記憶装置からＣＰＵ内のバッファ記憶装置に即座にムーブインする必要のあるＬバイトのデータを最初の読出し命令によって主記憶装置から中間バッファ記憶装置へ最優先にムーブインさせることによって、記憶システムの応答性能を向上させることができるのである。
【００１８】
　なお、中間バッファ記憶装置内の記憶領域が全て使用されていてムーブインのための領域が無い場合において中間バッファ記憶装置内のＫバイトのデータからなる特定のブロックが主記憶装置にムーブアウトされる場合においても、中間バッファ記憶装置からＣＰＵ内のバッファ記憶装置に即座にムーブインする必要のあるＬバイトのデータからなるブロックに対応する中間バッファ記憶装置内の記憶領域を最優先で開放させる必要がある。従って、中間バッファ記憶装置から主記憶装置へＫバイトのデータからなるブロックがムーブアウトされる場合においても、記憶制御装置が主記憶装置へＬバイトのデータからなるブロックを単位として書込み命令を発行する意義がある。
【００１９】
　しかし、上述した第１の従来技術は、以下に示す問題点を有している。
　図１５に示される第１の従来技術では、主記憶装置を同時に利用するＣＰＵが１台のみである場合には、Ｋバイトのデータからなるブロック内の全てのデータが１組のＲＡＭ群１５０１に割り当てられることにより、ＤＲＡＭによって構成されるＲＡＭ群１５０１が有する連続アクセスモードの効果が最大限に発揮される。
【００２０】
　ここで、主記憶装置を同時に利用するＣＰＵが複数台ある場合には、各ＣＰＵ内のバッファ記憶装置は、中間バッファ記憶装置に対して、主記憶装置上の別々のＫ（ex. ５１２）バイトのデータからなるブロックに属するＬ（ex. ６４）バイトのデータからなるブロックを要求する場合がある。この場合に、主記憶装置から中間バッファ記憶装置にムーブインされるそれぞれＫバイトのデータからなるブロックを構成するデータ群のうち、それぞれのＣＰＵ内のバッファ記憶装置が中間バッファ記憶装置から即座にムーブインする必要のあるデータは、それぞれＬバイトのデータからなる特定のブロックである。従って、記憶制御装置は、それぞれのＣＰＵが要求したＬバイトのデータからなる特定のブロックを優先的に処理するのが望ましい。
【００２１】
　前述したように、中間バッファ記憶装置と主記憶装置の間でＫバイトのデータからなるブロックが転送される場合に、記憶制御装置は、主記憶装置に対し、Ｌバイトのデータからなるブロックの書込み命令又は読出し命令をＫ／Ｌ回発行する。そこで、記憶制御装置は、主記憶装置に対してＬバイトのデータからなるブロックの書込み命令又は読出し命令をＫ／Ｌ回発行している途中で、１つのＣＰＵからのＬバイトのデータからなる特定のブロックの要求に関連して新たなＫバイトのデータからなるブロックを主記憶装置から中間バッファ記憶装置にムーブインする必要が発生した場合には、現在のＫ／Ｌ回の書込み命令群又は読出し命令群の発行を中断し、上記新たなブロックのムーブインに関連するＫ／Ｌ回の読出し命令群のうち先頭の読出し命令を優先的に実行させる。この先頭の読出し命令は、他のＣＰＵが要求するＬバイトのデータからなるブロックに対応する読出し命令である。
【００２２】
　なお、前述したように、中間バッファ記憶装置から主記憶装置へＫバイトのデータからなるブロックがムーブアウトされる場合においても、記憶制御装置は、特定のＬバイトのデータからなるブロックに対応する中間バッファ記憶装置上の記憶領域を最優先で開放させるために、Ｋ／Ｌ回の書込み命令群のうち先頭の書込み命令を優先的に実行する。
【００２３】
　しかし、第１の従来技術では、Ｋバイトのデータからなるブロック内の全てのデータが１組のＲＡＭ群１５０１（図１５）に割り当てられていたため、同時にアクセスされるそれぞれＫバイトのデータからなる２つ以上のブロックが共に１組のＲＡＭ群１５０１に含まれている場合には、１組のＲＡＭ群１５０１において、それぞれＬバイトのデータからなり連続しないアドレスに位置するブロックに対するアクセス動作の起動及び停止の制御を行う必要が生ずる。ＤＲＡＭによって構成されるＲＡＭ群１５０１においては、アクセスされるブロックのアドレスが連続していない場合には、アクセス動作が一旦停止されると、所定の休止時間を経た後からでないと次のアクセス動作を起動できない。この休止時間はＤＲＡＭが有するサイクルタイムの３〜４割を占める。従って、第１の従来技術においては、ＤＲＡＭによって構成される主記憶装置を同時に利用するＣＰＵが複数台ある場合には、ＤＲＡＭがアクセスされる際に、サイクルタイムが長くなってしまいスループットが低下してしまう。
＜第２の技術分野とその技術分野での従来技術＞
　次に、本発明が具体的に関連する第２の技術分野と、その第２の技術分野において本発明が具体的に関連する２つの従来技術について、以下に説明する。
【００２４】
　この第２の技術分野に関連する公知例としては、特許文献１、特許文献２、及び特許文献３に記載のものがあり、何れも計算機装置全体が試験される場合に使用されるシングルクロックモードにおけるメモリの制御技術に関連している。
【００２５】
　記憶データを保持するために定期的なリフレッシュ動作を必要とするＤＲＡＭは、その動作状態において絶対に停止しないクロック信号によって作成されたタイミング信号を必要とする。
【００２６】
　ここで、計算機装置の試験時においては、システムの動作クロックをマニュアル操作によって１発ずつ装置全体に供給し、１クロック毎に装置上の各フリップフロップ又はラッチ等の出力値を観測することにより、装置全体の動作状態を確認するモードがある。これをシングルクロックモードと呼ぶ。
【００２７】
　このシングルクロックモードでの動作を実現するために、通常、計算機装置内部に２種類のクロックソースが設けられる。一方はフリーランクロック（ＦＣＬＫ）と呼ばれ、これは計算機の動作状態において常に生成されその発生が停止されることのないクロックである。他方はゲーテッドクロック（ＧＣＬＫ）と呼ばれ、これはＦＣＬＫをクロックイネーブル信号により制御されるゲートを通過させることによって作成される。このクロックイネーブル信号は、シングルクロックモード時にＦＣＬＫを所定のタイミングで所定回数だけ出力させるために所定のタイミングで所定回数だけ有効になる信号である。シングルクロックモード時でないノーマルクロックモード時には、この信号は常に有効となる。従って、ノーマルクロックモード時には、ＦＣＬＫとＧＣＬＫの位相は同一となる。
【００２８】
　試験時にラッチ等の出力を観測するためには、これらに入力されるクロックが停止可能である必要がある。従って、装置の動作状態を確認するためには、できるだけＧＣＬＫで動作するラッチ等によって装置を構成することが望ましい。しかし、ＤＲＡＭに供給されるタイミング信号及びデータ信号を、ＧＣＬＫで動作するラッチ等を使って作成すると、シングルクロックモード時に、ＤＲＡＭのリフレッシュ動作に必要なタイミングを生成することができなくなり、記憶データが消失してしまう。従って、ＤＲＡＭに供給するタイミング信号及びデータ信号は、ＦＣＬＫで動作するラッチ等を使って作成する必要がある。
【００２９】
　本発明は、上述したように、シングルクロックモード時であってもノーマルクロックモード時と同じ装置の動作を実現するために、ＧＣＬＫで動作するラッチ等からＦＣＬＫで動作しかつ連続アクセスモードを有するＤＲＡＭへのデータ等の供給技術に、具体的に関連するものである。
【００３０】
　続いて、上述した第２の技術分野において本発明が具体的に関連する第２の従来技術について、以下に説明する。第２の従来技術は、ＤＲＡＭで構成される主記憶装置へのデータの書込み制御技術に関連する。
【００３１】
　図１６は第２の従来技術の構成図、図１７は第２の従来技術のシングルクロックモード時における動作タイミングチャートである。
　主記憶装置１６０２に対する書込みアクセス時の書込みデータは、記憶制御装置１６０１と主記憶装置１６０２間に設けられる書込みデータバス１６０３を経由して、記憶制御装置１６０１から主記憶装置１６０２に転送される。ＧＣＬＫが入力される毎に、書込みデータバスのバス幅によって決定されるデータ量を有する書込みデータが、主記憶装置１６０２に転送される。
【００３２】
　従来の主記憶装置１６０２においては、ＧＣＬＫに同期して転送されてきた書込みデータが、ＧＣＬＫで動作する書込みデータレジスタ（ＷＤ＿ＲＥＧ）１６０４に格納され、このレジスタの出力が、ＦＣＬＫで動作する書込みタイミング信号（ex. ＲＡＳ信号、ＣＡＳ信号）に同期してＲＡＭ群１６０５に書き込まれる。
【００３３】
　ここで、例えば、一度に主記憶装置１６０２に転送される書込みデータのブロックサイズをＬ＝６４バイトとし、書込みデータバス１６０３のバス幅を８バイトとすれば、１ブロック分の書込みデータはＧＣＬＫに同期して書込みデータバス１６０３上を８回に分けて転送されてくるため、主記憶装置１６０２内には、図１６に示されるように、＃０〜＃７の８組のＷＤ＿ＲＥＧ１６０４と、バンク０〜バンク７の８組のＲＡＭ群１６０５が用意される。
【００３４】
　この構成で、Ｌ＝６４バイトのデータからなるブロック内の最初の８バイトからなる書込みデータが、書込み命令ＳＴＲ−８及びアドレスＡＤＤと共に、記憶制御装置１６０１から主記憶装置１６０２にＧＣＬＫに同期して転送されてきた場合、主記憶装置１６０２内では、転送が開始された後に最初に発生するＧＣＬＫに同期したタイミング（このタイミングをステージ０と定義する）において、書込みデータはフリップフロップ（Ｆ／Ｆ）１６０６に、書込み命令ＳＴＲ−８及びアドレスＡＤＤはＦ／Ｆ１６０７に保持される。そして、ステージ０において、Ｆ／Ｆ１６０７に保持されたアドレスＡＤＤ中の３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤが第１デコーダ（＃１ＤＥＣ）１６０８によってデコードされる。この結果、バンクアドレス部ＢＡＮＫ　ＡＤＤに対応する書込みデータ設定信号ＷＤ＿ＳＥＴｉ（ｉは、０〜７のうち何れか）がアクティブとなることにより、ステージ０においてＦ／Ｆ１６０６に保持された書込みデータが、ＧＣＬＫに同期したステージ０の次のタイミング（このタイミングをステージ１と定義する）において、書込みデータ設定信号ＷＤ＿ＳＥＴｉに対応する＃ｉのＷＤ＿ＲＥＧ１６０４に格納される。この書込みデータは、＃ｉのＷＤ＿ＲＥＧ１６０４に対応するバンクｉのＲＡＭ群１６０５に向けて出力される。
【００３５】
　また、ステージ１においては、ステージ０においてＦ／Ｆ１６０７に保持されたアドレスＡＤＤがＦ／Ｆ１６０９に保持され、このアドレスＡＤＤ中の３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤが第２デコーダ（＃２ＤＥＣ）１６１０によりデコードされる。この結果、ステージ１において、図１７(a) に示されるように、バンクアドレス部ＢＡＮＫ　ＡＤＤに対応する選択信号ＳＥＬｉ（ｉは、０〜７のうち何れか）がアクティブとなる。
【００３６】
　更に、この選択信号ＳＥＬｉは、＃ｉの微分回路１６１１に入力される。＃ｉの微分回路１６１１では、選択信号ＳＥＬｉがＦＣＬＫの１クロック分遅延させられることにより得られる図１７(b) に示される信号ＳＥＬｉＤＬが生成され、この信号と選択信号ＳＥＬｉとから、図１７(c) に示される書込み開始信号ＦＣＬＧＯｉが生成される。この書込み開始信号ＦＣＬＧＯｉは、ＧＣＬＫに同期したステージ１の直後のＦＣＬＫに同期したタイミングで＃ｉのＦ／Ｆ１６１２に格納される。そして、この＃ｉのＦ／Ｆ１６１２の出力が、図１７(d) に示される＃ｉの負論理ＲＡＳ信号（行アドレス信号）として、バンクｉのＲＡＭ群１６０５へ供給される。＃ｉの負論理ＲＡＳ信号は、図１６及び図１７においては、“ＲＡＳｉ”の上部に水平バーが付された記号で示される。但し、ｉは、０〜７のうち何れかの数値である。これと共に、＃ｉの負論理ＲＡＳ信号は、ＦＣＬＫに同期して動作する＃ｉのＦ／Ｆ１６１３を介してバンクｉタイミングジェネレータに入力される。バンクｉタイミングジェネレータは、バンクｉのＲＡＭ群１６０５が１回の書込み動作に必要なタイミング信号をＦＣＬＫに同期して生成する。この結果、ＧＣＬＫに同期したステージ１において＃ｉのＷＤ＿ＲＥＧ１６０４に保持されたバンクｉ書込みデータが、その後に発生するＦＣＬＫに同期してバンクｉのＲＡＭ群１６０５に書き込まれる。
【００３７】
　上述のようにして１つのＧＣＬＫに同期して最初の書込みデータが主記憶装置１６０２に入力された後、次のＧＣＬＫに同期して２番目の書込みデータが主記憶装置１６０２に入力される。この書込みデータは、それと共に主記憶装置１６０２に入力されたアドレスＡＤＤ中のバンクアドレス部ＢＡＮＫ　ＡＤＤに応じたバンクのＲＡＭ群１６０５に書き込まれる。このようにして、ＧＣＬＫに同期した書込みデータが記憶制御装置１６０１から８回転送されてくると、次々と各バンクのＲＡＭ群１６０５が起動され、それらに各書込みデータが書き込まれてゆく。
【００３８】
　なお、図１６では、説明の簡単のため、各書込みデータに対応して書込み命令ＳＴＲ−８及びアドレスＡＤＤが記憶制御装置１６０１から主記憶装置１６０２に転送される構成が示されているが、一般的には、Ｌ＝６４バイトからなるブロック内の最初の８バイトからなる書込みデータが転送されるタイミングにおいてのみ、書込み命令ＳＴＲ−８及びアドレスＡＤＤが記憶制御装置１６０１から主記憶装置１６０２に転送され、そこで保持される。そして、記憶制御装置１６０１から主記憶装置１６０２へ２番目以降の書込みデータが転送されてくる毎に、主記憶装置１６０２内でアドレスＡＤＤ中のバンクアドレス部ＢＡＮＫ　ＡＤＤの値が＋１ずつインクリメントされ、各書込みデータに対応する書込みアドレスが生成される。
【００３９】
　上述の構成を有する主記憶装置１６０２がノーマルクロックモードで動作する場合は、ＦＣＬＫとＧＣＬＫの位相は同一となる。これに対して、主記憶装置１６０２がシングルクロックモードで動作する場合は、図１７に示されるように、ＧＣＬＫの入力間隔Ｔ′（これは必ずしも一定の時間間隔にはならない）は、一般に、ＦＣＬＫの周期Ｔに比較して非常に長いものとなる。このようなシングルクロックモード時においても、図１６に示される第２の従来技術における主記憶装置１６０２では、主記憶装置１６０２への書込みデータの入力タイミングとＲＡＭ群１６０５への書込みアドレスの指定タイミングは共にＧＣＬＫに同期している。これは、ＷＤ＿ＲＥＧ１６０４を制御するための書込みデータ設定信号ＷＤ＿ＳＥＴｉを出力する＃１ＤＥＣ１６０８と、書込みアドレスを生成するための選択信号ＳＥＬｉを出力する＃２ＤＥＣ１６１０が、共にＧＣＬＫに同期して動作するためである。このため、第２の従来技術における主記憶装置１６０２では、ノーマルクロックモード時及びシングルクロックモード時の両方の場合において、同じ動作が実現されている。
【特許文献１】特公昭６３−１５５３４０号公報
【特許文献２】特開平１−１５２５４７号公報
【特許文献３】特開平４−１５３８４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００４０】
　しかし、上述した第２の従来技術は、以下に示す問題点を有している。
　図１６に示される第２の従来技術では、１発のＧＣＬＫに同期して転送される書込みデータ毎に、バンクアドレス部ＢＡＮＫ　ＡＤＤによって指定され独立した動作が可能なＷＤ＿ＲＥＧ１６０４と、それらに対応するＲＡＭ群１６０５とからなる部分が用意され、これらの部分がＧＣＬＫに同期して順次起動されている。従って、第２の従来技術では、Ｌ＝６４バイトからなるブロックの書込みを実行するだけで８個のバンクからなるＲＡＭ群１６０５を必要とする。更に、もし、１つのバンクにおける書込み処理がＦＣＬＫで８サイクル以上の時間を必要とするならば、通常はＦＣＬＫと同じ位相を有するＧＣＬＫの８サイクル分の時間で記憶制御装置１６０１から主記憶装置１６０２に転送されてくるＬ＝６４バイトからなるブロックの書込みを連続的に行うことができなくなってしまう。従って、このような場合には、更に多くのバンクからなるＲＡＭ群１６０５が必要となる。このように、第２の従来技術では、そのハードウエアの規模が増大してしまうという問題点を有している。
【００４１】
　続いて、前述した第２の技術分野において本発明が具体的に関連する第３の従来技術について、以下に説明する。第３の従来技術は、ＤＲＡＭで構成される主記憶装置からのデータの読出し制御技術に関連する。
【００４２】
　図１８は第３の従来技術における主記憶装置の構成図、図１９は第３の従来技術の動作タイミングチャートである。
　図１８に示される主記憶装置がノーマルクロックモードで動作する場合には、特には図示しない記憶制御装置から主記憶装置に入力された読出し命令ＦＣＨ６４は、ＧＣＬＫに同期して動作するＦ／Ｆ１８０５に格納された後に、選択回路（ＳＥＬ）１８０６を通って、それぞれＦＣＬＫに同期して動作する＃０〜＃７のメモリ制御信号発生回路１８０７に入力する。なお、Ｆ／Ｆ群１８０９については後述する。この結果、＃０〜＃７のメモリ制御信号発生回路１８０７の何れかより、負論理ＲＡＳ信号（行アドレス信号）等のメモリ制御信号群が、ＦＣＬＫに同期して、何れかのＲＡＭ群１８０１に供給される。
【００４３】
　＃０〜＃７のＲＡＭ群１８０１は、ＤＲＡＭにより構成されている。そして、メモリ制御群によって起動されたＲＡＭ群１８０１は、連続アクセスモードの機能を使用することによって、そのＲＡＭ群１８０１におけるサイクルタイムに対応する時間が経過した後に、８バイトからなる読出しデータＲＤをＦＣＬＫに同期して８回連続して出力する。これらの読出しデータＲＤは、ＤＯＴ論理等に基づいて、＃０〜＃７の読出しデータレジスタ（ＭＤＲ）１８０２に接続される１本の読出し信号線に出力される。
【００４４】
　一方、ＦＣＬＫに同期して動作する特には図示しない３ビットカウンタから出力された読出しデータ選択信号ＲＤＳＥＬがデコーダ（ＤＥＣ）１８０８によってデコードされる結果、そのＤＥＣ１８０８から出力される読出しデータ設定信号ＲＤＳＴ０〜ＲＤＳＴ７が順次アクティブとなる。
【００４５】
　この結果、何れかのＲＡＭ群１８０１より出力された８個の読出しデータＲＤは、＃０〜＃７のＭＤＲ１８０２に順次格納される。
　また、ＧＣＬＫに同期して動作する特には図示しない３ビットカウンタから出力された選択データが特には図示しないデコーダによってデコードされる結果、そのデコーダから選択回路（ＳＥＬ）１８０３へは、順次アクティブとなる選択信号ＤＭＰＸ＿ＲＤ０〜ＤＭＰＸ＿ＲＤ７が供給される。この結果として、８個のＭＤＲ１８０２の出力のそれぞれは、ＳＥＬ１８０３により順次選択され、共にＧＣＬＫに同期して動作し共に８バイトのデータ幅を有するＦ／Ｆ１８０４及び特には図示しない読出しデータバスを介して、それぞれ８バイトからなる８個のメモリ読出しデータＭＲＤとして、特には図示しない記憶制御装置に順次出力される。
【００４６】
　このように、図１８の構成例では、１回の読出し命令ＦＣＨ６４により、主記憶装置から８バイト×８個＝６４バイトからなる読出しデータ群が、８バイトのデータ幅を有する読出しデータバスに出力される。従って、１回の読出し命令ＦＣＨ６４により読出しデータバスが８τの時間だけ占有されることになる。ここで、τは、ＧＣＬＫの周期であって、ノーマルクロックモード時にはＦＣＬＫの周期に等しい。このため、主記憶装置１６０２に読出し命令ＦＣＨ６４を供給する特には図示しない記憶制御装置は、図１９(a) に示されるように、最初の読出し命令ＦＣＨ６４の要求ＲＥＱ０の発行から次の読出し命令ＦＣＨ６４の要求ＲＥＱ１の発行まで、８τの時間だけ待つ必要がある。
【００４７】
　図１８では、８個からなる１組のＭＤＲ１８０２に対応して、８個のＲＡＭ群１８０１が設けられているが、この構成は後述する本発明には直接には関係しない。この構成が採用される理由は、ＲＡＭ群１８０１を構成するＤＲＡＭ内部のサイクルタイムが記憶制御装置の主記憶装置に対するアクセスタイムに比較して２倍程度長いため、スループットを確保するために複数個のＲＡＭ群を用いて主記憶装置等を構成するのが一般的であるためである。１つのＲＡＭ群１８０１におけるサイクルタイムが８τ以上である場合は、複数個のＲＡＭ群１８０１を用意し、個々のＲＡＭ群１８０１に８τおきに読出し命令ＦＣＨ６４を発行することにより、連続したメモリ読出しデータＭＲＤを得ることができる。逆に、１つのＲＡＭ群１８０１におけるサイクルタイムが８τ以下である場合は、同一のＲＡＭ群１８０１に対して８τおきに読出し命令ＦＣＨ６４を発行することによって、連続したメモリ読出しデータＭＲＤを得ることができる。従って、後述する本発明は、ＲＡＭ群１８０１に対するアクセスタイム、ＲＡＭ群１８０１におけるサイクルタイム等のパラメータに関係なく、１回の読出し命令ＦＣＨに対応して主記憶装置から読み出されるデータ量と読出しデータバスのデータ転送幅のみによってＲＡＭ群の起動間隔が決定されるような構成を有するメモリ制御方式に関連する。
【００４８】
　図１８に示される主記憶装置のノーマルクロックモード時における動作タイミングの例を、図１９に示す。図１９において、タイミング０τ〜２１τは、ＧＣＬＫ＝ＦＣＬＫ（ノーマルクロックモード時）を単位とするクロックタイミングである。
【００４９】
　まず、図１９(a) に示されるように、タイミング０τにおいて、バンク０のＲＡＭ群１８０１に向けて、読出し命令ＦＣＨ６４の要求ＲＥＱ０が発行される。次に、図１９(b) に示されるように、タイミング１τにおいて、バンク０のＲＡＭ群１８０１に対して、負論理ＲＡＳ信号（行アドレス信号）等のメモリ制御信号群が供給される。この結果、タイミング９τ〜１６τにおいて、バンク０のＲＡＭ群１８０１から、読出し命令ＦＣＨ６４の要求ＲＥＱ０に対応する８個の読出しデータＲＤが＃０〜＃７のＭＤＲ１８０２に順次格納される。そして、図１９(c) に示されるように、タイミング１０τ〜１７τにおいて、８個のメモリ読出しデータＭＲＤが、読出しデータバスに順次出力される。
【００５０】
　上述の動作と共に、図１９(a) に示されるように、読出し命令ＦＣＨ６４の要求ＲＥＱ０の発行タイミング０τから８τ後のタイミング８τにおいて、バンク１のＲＡＭ群１８０１に向けて、読出し命令ＦＣＨ６４の要求ＲＥＱ０の次の要求ＲＥＱ１が発行される。これに対応して、図１９(b) に示されるように、タイミング９τにおいて、バンク１のＲＡＭ群１８０１に対して、負論理ＲＡＳ信号（行アドレス信号）等のメモリ制御信号群が供給される。この結果、タイミング１７τ〜２４τにおいて、バンク１のＲＡＭ群１８０１から、読出し命令ＦＣＨ６４の要求ＲＥＱ１に対応する８個の読出しデータＲＤが＃０〜＃７のＭＤＲ１８０２に順次格納される。そして、図１９(c) に示されるように、読出し命令ＦＣＨ６４の要求ＲＥＱ０に対応するメモリ読出しデータＭＲＤの出力タイミング１０τ〜１７τに続くタイミング１８τ〜２５τにおいて、それぞれ８個のメモリ読出しデータＭＲＤが、読出しデータバスに順次出力される。
【００５１】
　しかし、上述した第３の従来技術は、以下に示す問題点を有している。
　前述したように、図１８に示される主記憶装置内のＦ／Ｆ１８０５が０番目のＧＣＬＫで、特には図示しない記憶制御装置からの１つ目の読出し命令ＦＣＨ６４の要求を受信した後、ＦＣＬＫに同期して動作するメモリ制御信号発生回路１８０７を介してＲＡＭ群１８０１が起動される。この結果、ＲＡＭ群１８０１から連続して出力される８個の読出しデータＲＤは、＃０〜＃７のＭＤＲ１８０２に格納される。ここで、シングルクロックモード時には、一般に、ＧＣＬＫの周期はＦＣＬＫの周期に比較して非常に長いものとなる。従って、上述の読出し動作は、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１番目のＧＣＬＫが入力されるタイミングよりはるか以前に完了してしまう。８個のＭＤＲ１８０２の最初の格納内容が読み出されるタイミングは、前述したように、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１０番目のＧＣＬＫが入力されるタイミングであり、８個のＭＤＲ１８０２の最後の格納内容が読み出されるタイミングは、前述したように、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１７番目のＧＣＬＫが入力されるタイミングである。
【００５２】
　ところが、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として８番目のＧＣＬＫが入力されるタイミングにおいて、次の２つ目の読出し命令ＦＣＨ６４の要求が入力されてくる。そして、１つ目の読出し命令ＦＣＨ６４の要求が入力された場合と同様にしてＲＡＭ群１８０１がＦＣＬＫに同期して起動される結果、１つ目の読出し命令ＦＣＨ６４に対応する８個のＭＤＲ１８０２内のデータの出力が開始される前に、８個のＭＤＲ１８０２の内容が２つ目の読出し命令ＦＣＨ６４に対応するデータに書き替えられてしまう。このため、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１０番目のＧＣＬＫが入力されるタイミング以降にＭＤＲ１８０２から出力されるデータは、１つ目の読出し命令ＦＣＨ６４に対応するデータではなく、２つ目の読出し命令ＦＣＨ６４に対応するデータとなってしまう。
【００５３】
　更に、３つ目の読出し命令ＦＣＨ６４の要求が、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１６番目のＧＣＬＫが入力されるタイミングで入力されるため、１つ目の読出し命令ＦＣＨ６４の要求の入力時を基準として１７番目のＧＣＬＫが入力されるタイミングでＭＤＲ１８０２から出力されるデータは、１つ目の読出し命令ＦＣＨ６４に対応するデータではなく、３つ目の読出し命令ＦＣＨ６４に対応するデータとなってしまう。
【００５４】
　以上のように、何も対策を講ずることなく第３の従来技術における主記憶装置をシングルクロックモードで動作させようとした場合には、各読出し命令ＦＣＨ６４に対応したメモリ読出しデータＭＲＤを出力させることができなくなってしまう。
【００５５】
　このような問題を回避するためには、シングルクロックモード時において、１つの読出し命令が発行された後、主記憶装置内のＲＡＭ群から連続的に出力された複数の読出しデータの全てが主記憶装置の出力側に最初に配置されているＧＣＬＫに同期して動作するバッファ（Ｆ／Ｆ）に到達し終わるまでの期間内においては、次の読出し命令を入力してはならない。ＧＣＬＫに同期した上記期間をＣとすれば、図１８の構成例の場合は、Ｃ＝１７τとなる。一方、図１８の構成例の場合は、前述したように、１回の読出し命令ＦＣＨ６４により、主記憶装置から８バイト×８個＝６４バイトからなる読出しデータ群が、８バイトのデータ幅を有する読出しデータバスに出力される結果、１回の読出し命令ＦＣＨ６４により読出しデータバスが８τの時間だけ占有されるため、記憶制御装置は、８τの時間間隔で読出し命令ＦＣＨ６４を出力することができる。従って、上記期間Ｃ内に主記憶装置に入力する可能性のある読出し命令数は、最大で３個になる。
【００５６】
　以上の考察に基づいて、従来は、図１８に示されるように、入力される読出し命令ＦＣＨ６４のＲＡＭ群１８０１への供給を上記期間Ｃに対応する時間だけ遅延させるためのシフトレジスタ群１８０９が設けられている。
【００５７】
　この構成において、主記憶装置の動作がシングルクロックモードに移行する前に、上記期間Ｃに対応する時間分だけ先行して、特には図示しない記憶制御装置などに設けられるクロック制御部からＳＥＬ１８０６にシングルクロックモードの予告信号（ＳＩＮＧＭ）が入力されることにより、その入力時点以降、ＳＥＬ１８０６は、Ｆ／Ｆ１８０５の出力ではなくシフトレジスタ群１８０９の出力を選択する。これと共に、シフトレジスタ群１８０９に対して、それらを動作させるためのＧＣＬＫの供給が開始される。従って、その時点以降、主記憶装置に入力される読出し命令ＦＣＨ６４は、シフトレジスタ群１８０９によって前記期間Ｃに対応する時間分だけ遅延させられた後にメモリ制御信号発生回路１８０７に入力されるようになる。このようにして、ＦＣＬＫに同期して動作するメモリ制御信号発生回路１８０７及びＲＡＭ群１８０１が、前記期間Ｃに対応する時間分だけ遅延させられて起動されるため、各読出し命令ＦＣＨ６４に対応したメモリ読出しデータＭＲＤを出力させることが可能となる。
【００５８】
　一方、主記憶装置の動作がシングルクロックモードからノーマルクロックモードに戻る場合には、事前にシフトレジスタ群１８０９を動作させるためのクロックがＧＣＬＫからＦＣＬＫに切り替えられることにより、シフトレジスタ群１８０９内の読出し命令ＦＣＨ６４が吐き出さされた後、ＳＥＬ１８０６に入力されていた前述したシングルクロックモードの予告信号（ＳＩＮＧＭ）が無効にされる。この結果、シングルクロックモードからノーマルクロックモードへの移行時に、データの欠落を防止することができる。
【００５９】
　しかし、上述した従来技術は、記憶制御装置などに設けられるクロック制御部から主記憶装置にシングルクロックモードの予告信号（ＳＩＮＧＭ）などの制御信号線を入力させる必要があることなどの理由により、回路構成が複雑になってしまうという問題点を有している。
【００６０】
　また、上述の従来技術は、シングルクロックモードとノーマルクロックモードの間で主記憶装置などの状態を遷移させるためのタイミング制御が複雑になってしまい、タイミングの変更が困難になってしまうという問題点を有している。
【００６１】
　更に、上述の従来技術は、ノーマルクロックモードとシングルクロックモードとで主記憶装置内の動作が異なってしまうため、シングルクロックモードを使用してノーマルクロックモード時に発生した主記憶装置の障害の解析を行うことなどが困難になってしまうという問題点を有している。
【００６２】
　本発明は、連続アクセスモードを使用して動作する主記憶装置がシングルクロックモード時にノーマルクロックモード時と同じ動作をしなくなってしまうという問題点を解決することが目的とする。
【課題を解決するための手段】
【００６３】
　上記課題は、特許請求の範囲の請求項１に記載の発明によれば、それぞれ動作状態において停止することのない第１のクロック（２０６）に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群（２０１）からなるメモリ装置に対してデータの書込み制御を行うメモリ制御方式において、前記連続アクセスモードのアクセス単位である第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を少なくとも格納する書込みデータバッファ手段（２０２）と、書込み命令に基づいて、第２のクロック（２０７）に同期して転送されてくる書込みデータ（２０５）を、前記第２のクロック（２０７）に同期して前記書込みデータバッファ手段（２０２）に順次格納する書込みデータ格納制御手段（２０３）と、前記書込みデータバッファ手段（２０２）に前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）が格納された時点で、該格納された前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のクロック（２０６）に同期して、連続アクセスモードの下で読み出して、前記複数のメモリ群（２０１）の何れかに転送する書込みデータ読出し制御手段（２０４）と、を有することを特徴とするメモリ制御方式を提供することによって達成できる。
【００６４】
　また上記課題は、特許請求の範囲の請求項２に記載の発明によれば、アドレス空間上で連続する第１のデータ単位数（Ｋバイト）のデータの転送要求のそれぞれに対応して、前記第１のデータ単位数（Ｋバイト）を分割したバイト数である第２のデータ単位数（Ｌバイト）を単位として優先順位をとり、前記第２のデータ単位数（Ｌバイト）を単位とするデータ転送命令を、それぞれ動作状態において停止することのない第１のクロック（２０６）に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群（２０１）からなるメモリ装置に対して複数回発行することにより、前記第１のデータ単位数（Ｋバイト）のデータの転送要求に対応するメモリアクセスを実行するメモリ制御方式において、前記連続アクセスモードのアクセス単位であると共に、前記データ転送命令に対応する前記第２のデータ単位数（Ｌバイト）のデータを、前記第２のデータ単位数（Ｌバイト）と等しいかそれを分割したデータ単位数であって、前記メモリ群（２０１）の起動単位であるデータ単位数（Ｂバイト）の２倍以上のデータ単位数である第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を少なくとも格納する書込みデータバッファ手段（２０２）と、前記データ転送命令である書込み命令に基づいて、第２のクロック（２０７）に同期して転送されてくる書込みデータ（２０５）を、前記第２のクロック（２０７）に同期して前記書込みデータバッファ手段（２０２）に順次格納する書込みデータ格納制御手段（２０３）と、前記書込みデータバッファ手段（２０２）に格納される前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のデータ単位数（Ｋバイト）を前記第４のデータ単位数（Ｓバイト）で除した数又はこれ以下の数の前記メモリ群（２０１）の何れかに割り付ける割付け手段と、前記書込みデータバッファ手段（２０２）に前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）が格納された時点で、該格納された前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）を、前記第１のクロック（２０６）に同期して、連続アクセスモードの下で読み出して、前記割付け手段によって割付けが行われたメモリ群（２０１）に転送する書込みデータ読出し制御手段（２０４）と、を有することを特徴とするメモリ制御方式を提供することによって達成できる。
【００６５】
　また上記課題は、特許請求の範囲の請求項３に記載の発明によれば、前記書込みデータバッファ手段（２０２）を２組有し、前記書込みデータ格納制御手段（２０３）に対して一方の前記書込みデータバッファ手段（２０２）への前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）の格納動作を実行せると共に、前記書込みデータ読出し制御手段（２０４）に対して他方の前記書込みデータバッファ手段（２０２）から前記メモリ群（２０１）への前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）の読出し動作を実行させ、前記書込みデータ格納制御手段（２０３）及び前記書込みデータ読出し制御手段（２０４）がそれぞれ前記第４のデータ単位数（Ｓバイト）の書込みデータ（２０５）に対する処理を終了した時点で、前記書込みデータ格納制御手段（２０３）及び前記書込みデータ読出し制御手段（２０４）がそれぞれ処理を行う前記書込みデータバッファ手段（２０２）を切り替える切替え手段を有する、ことを特徴とする請求項１又は２の何れか１項に記載のメモリ制御方式を提供することによって達成できる。
【００６６】
　また上記課題は、特許請求の範囲の請求項４に記載の発明によれば、前記メモリ装置に接続されるデータバスが、読出しデータの転送と前記書込みデータ（２０５）の転送に共通に使用される双方向バスであって、前記第２のクロック（２０７）の変化時点において前記第１のクロック（２０６）に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段を更に有し、前記書込みデータバッファ手段（２０２）は、データの格納を前記第１のクロック（２０６）に同期して行うデータバッファ手段によって構成され、前記書込みデータ格納制御手段（２０３）は、前記書込み命令に基づいて、前記第２のクロック（２０７）に同期して前記データバス上を転送されてくる書込みデータ（２０５）を、前記タイミング信号生成手段が生成するタイミング信号に同期して前記データバッファ手段に順次格納し、前記書込みデータバッファ手段（２０２）を構成する前記データバッファ手段は、前記第１のクロック（２０６）に同期して前記メモリ群（２０１）から読み出された読出しデータが前記第２のクロック（２０７）に同期して前記データバスに読み出される際の読出しデータバッファ手段として共通に使用される、ことを特徴とする請求項２又は３の何れか１項に記載のメモリ制御方式を提供することによって達成できる。
【００６７】
　また上記課題は、特許請求の範囲の請求項５に記載の発明によれば、前記第２のクロック（２０７）の変化時点において前記第１のクロック（２０６）に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段を更に有し、前記書込みデータ格納制御手段（２０３）は、前記書込み命令に基づいて、前記第２のクロック（２０７）に同期して前記データバス上を転送されてくる書込みデータ（２０５）を、前記タイミング信号生成手段が生成するタイミング信号に同期して前記書込みデータバッファ手段（２０２）に順次格納する、ことを特徴とする請求項１乃至３の何れか１項に記載のメモリ制御方式を提供することによって達成できる。
【発明の効果】
【００６８】
　本発明の第２の態様によれば、メモリ装置がシングルクロックモードで動作する場合においても、無効なデータがメモリ群に書き込まれてしまうという障害を回避することが可能となる。
【００６９】
　ここで、本発明の第２の態様では、シングルクロックモード時において、メモリ群の起動開始がかなり遅れることになるが、この遅延はメモリ装置の内部でのみ認識されるものであるため、計算機システム全体のスループットには影響しない。
【００７０】
　また、本発明の第２の態様によれば、シングルクロックモード時において、ノーマルクロックモード時と全く同様の動作を保証することが可能となる。
　また、本発明の第２の態様において、書込みデータバッファ手段が２組設けられることにより、メモリ装置に対して、各書込み命令とそれぞれの命令に対応する書込みデータを遅延なく連続して転送することが可能となる。
【００７１】
　更に、本発明の第２の態様において、第２のクロックの変化時点において第１のクロックに同期してアクティブとなるタイミング信号に基づいて書込みデータのデータバッファ手段への格納が実行されることにより、読出しデータの格納時には第１のクロックに同期して動作するデータバッファ手段を、書込みデータの格納にそのまま流用することが可能となる。この結果、メモリ装置のハードウエア規模の増大を抑えることが可能となる。
【００７２】
　加えて、本発明の第２の態様において、外部に簡単なタイミング信号生成手段を設けるだけで、書込みデータバッファ手段を１種類のクロックのみによって動作する汎用のデータレジスタファイルで構成することが可能となる。
【発明を実施するための最良の形態】
【００７３】
　図１は、本発明の第１の態様の原理ブロック図である。
　本発明の第１の態様は、例えば、記憶システムが、中央処理装置内の高速に動作する小容量の記憶容量を有するバッファ記憶装置（キャッシュメモリ）、記憶制御装置内の中速に動作する中容量の記憶容量を有する中間バッファ記憶装置（２次キャッシュメモリ）、及び比較的低速に動作し大容量の記憶容量を有する主記憶装置からなる３つの記憶階層に分割して構成されている場合を対象とするそして、アドレス空間上で連続する第１のデータ単位数（Ｋバイト。例えば５１２バイト。）のデータの転送要求のそれぞれに対応して、第１のデータ単位数（Ｋバイト）を分割したバイト数である第２のデータ単位数（Ｌバイト。例えば６４バイト。）を単位として優先順位をとり、第２のデータ単位数（Ｌバイト）を単位とするデータ転送命令を、それぞれ連続アクセスモードの下で動作可能な複数のメモリ群１０１（例えばＲＡＭ群４０１）からなるメモリ装置に対して複数回発行することにより、第１のデータ単位数（Ｋバイト）のデータの転送要求に対応するメモリアクセスを実行するメモリ制御方式を前提とする。
【００７４】
　第１の態様では、始めに、データ転送命令に対応する第２のデータ単位数（Ｌバイト）のデータが、第２のデータ単位数（Ｌバイト）と等しいかそれを分割したデータ単位数であってメモリ群１０１の起動単位であるデータ単位数（Ｂバイト。例えば８バイト。）の２倍以上のデータ単位数である第３のデータ単位数（Ｓバイト。例えばＬバイトに等しい。）を単位として、第１のデータ単位数（Ｋバイト）を第３のデータ単位数（Ｓバイト）で除した数又はこれ以下の数のメモリ群１０１のそれぞれに順次割り付けられる。
【００７５】
　次に、その割付けが行われたメモリ群１０１に対して、連続アクセスモードの下で、割付けが行われた第３のデータ単位数（Ｓバイト）のデータのアクセスが実行される。
　本発明の第１の態様の作用は、次の通りである。
【００７６】
　例えば、特には図示しない記憶制御装置が、メモリ装置に対し第２のデータ単位数（Ｌバイト）のデータからなるブロックの書込み命令又は読出し命令を｛第１のデータ単位数／第２のデータ単位数（Ｋ／Ｌ）｝回発行している途中で、１つのＣＰＵからの第２のデータ単位数（Ｌバイト）のデータからなる特定のブロックの要求に関連して新たな第１のデータ単位数（Ｋバイト）のデータからなるブロックをメモリ装置と特には図示しない中間バッファ記憶装置などとの間で転送する必要が発生した場合には、現在の｛第１のデータ単位数／第２のデータ単位数（Ｋ／Ｌ）｝回の書込み命令群又は読出し命令群の発行を中断し、上記新たなブロックの転送に関連する｛第１のデータ単位数／第２のデータ単位数（Ｋ／Ｌ）｝回の書込み命令群又は読出し命令群のうち先頭の書込み命令又は読出し命令を優先的に実行させる。
【００７７】
　この先頭の書込み命令又は読出し命令によって指定されるメモリ群１０１が異なる場合には、メモリ群１０１が必要とする休止時間を考慮する必要がなくなるため、アクセスされるメモリ群１０１の起動を即座に行うことができる。
【００７８】
　即ち、本発明の第１の態様では、第１のデータ単位数（Ｋバイト）のデータからなるブロックが更に細分化された第２のデータ単位数（Ｌバイト）のデータからなるブロックを単位としてメモリ群１０１へのデータの割付けが行われることにより、複数のＣＰＵからの要求に関連するそれぞれ第２のデータ単位数（Ｌバイト）のデータからなる複数のブロックの転送命令が同時に発生しても、メモリ群１０１の起動時間の平均を短縮することができ、スループットの高いメモリ装置を実現できる。
【００７９】
　図２は、本発明の第２の態様の原理ブロック図である。
　本発明の第２の態様は、それぞれ動作状態において停止することのない第１のクロック２０６（例えばフリーランクロックＦＣＬＫ）に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群２０１（例えばＲＡＭ群５０９）からなるメモリ装置に対してデータの書込み制御を行うメモリ制御方式を前提とする。より具体的には、例えば、本発明の第１の態様と同様、アドレス空間上で連続する第１のデータ単位数（Ｋバイト）のデータの転送要求のそれぞれに対応して、第１のデータ単位数（Ｋバイト）を分割したバイト数である第２のデータ単位数（Ｌバイト）を単位として優先順位をとり、第２のデータ単位数（Ｌバイト）を単位とするデータ転送命令を、それぞれ動作状態において停止することのない第１のクロック２０６に同期してアクセスされ連続アクセスモードの下で動作可能な複数のメモリ群２０１からなるメモリ装置に対して複数回発行することにより、第１のデータ単位数（Ｋバイト）のデータの転送要求に対応するメモリアクセスを実行するメモリ制御方式を前提とする。
【００８０】
　そして、まず、連続アクセスモードのアクセス単位である第４のデータ単位数（Ｓバイト。例えば６４バイト。）の書込みデータ２０５を少なくとも格納する書込みデータバッファ手段２０２（例えばＷＤ＿ＲＥＧ５０４）を有する。上述の第４のデータ単位数（Ｓバイト）は、例えば、本発明の第１の態様の場合と同様、データ転送命令に対応する第２のデータ単位数（Ｌバイト）のデータを、第２のデータ単位数（Ｌバイト）と等しいかそれを分割したデータ単位数であってメモリ群２０１の起動単位であるデータ単位数Ｂバイト）の２倍以上のデータ単位数である。
【００８１】
　次に、書込み命令に基づいて、第２のクロック２０７（例えばゲーテッドクロックＧＣＬＫ）に同期して転送されてくる書込みデータ２０５を、第２のクロック２０７に同期して書込みデータバッファ手段２０２に順次格納する書込みデータ格納制御手段２０３（例えば３ビットカウンタ５１３及びＤＥＣ５０６）を有する。
【００８２】
　そして、書込みデータバッファ手段２０２に第４のデータ単位数（Ｓバイト）の書込みデータ２０５が格納された時点で、その格納された第４のデータ単位数（Ｓバイト）の書込みデータ２０５を、第１のクロック２０６に同期して、連続アクセスモードの下で読み出して、複数のメモリ群２０１の何れかに転送する書込みデータ読出し制御手段２０４（例えば３ビットカウンタ５１４、５１６、微分回路５１５、ＤＥＣ５０７）を有する。
【００８３】
　上述の本発明の第２の態様の構成において、書込みデータバッファ手段２０２を２組有し、次のような切替え手段（例えば反転Ｆ／Ｆ８０１及び選択回路８０２）を更に有するように構成することができる。即ち、この切替え手段は、書込みデータ格納制御手段２０３に対して一方の書込みデータバッファ手段２０２への第４のデータ単位数（Ｓバイト）の書込みデータ２０５の格納動作を実行せると共に、書込みデータ読出し制御手段２０４に対して他方の書込みデータバッファ手段２０２からメモリ群２０１への第４のデータ単位数（Ｓバイト）の書込みデータ２０５の読出し動作を実行させ、書込みデータ格納制御手段２０３及び書込みデータ読出し制御手段２０４がそれぞれ第４のデータ単位数（Ｓバイト）の書込みデータ２０５に対する処理を終了した時点で、書込みデータ格納制御手段２０３及び書込みデータ読出し制御手段２０４がそれぞれ処理を行う書込みデータバッファ手段２０２を切り替える。
【００８４】
　また、本発明の第２の態様の構成において、メモリ装置に接続されるデータバスが読出しデータの転送と書込みデータ２０５の転送に共通に使用される双方向バスである構成を有し、第２のクロック２０７の変化時点において第１のクロック２０６に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段（例えばＦＣＬＫトリガ回路１０２０）を更に有し、書込みデータバッファ手段２０２及び書込みデータ格納制御手段２０３が次のような機能を実現するように構成することもできる。即ち、書込みデータバッファ手段２０２は、データの格納を第１のクロック２０６に同期して行うデータバッファ手段（例えばＤＲ１００１）によって構成される。次に、書込みデータ格納制御手段２０３は書込み命令に基づいて、第２のクロック２０７に同期してデータバス上を転送されてくる書込みデータ２０５を、タイミング信号生成手段が生成するタイミング信号に同期してデータバッファ手段に順次格納する。そして、書込みデータバッファ手段２０２を構成するデータバッファ手段は、第１のクロック２０６に同期してメモリ群２０１から読み出された読出しデータが第２のクロック２０７に同期してデータバスに読み出される際の読出しデータバッファ手段として共通に使用される。
【００８５】
　加えて、本発明の第２の態様で、第２のクロック２０７の変化時点において第１のクロック２０６に同期してアクティブとなるタイミング信号を生成するタイミング信号生成手段（例えば微分回路１２０２）を更に有し、書込みデータ格納制御手段２０３は、書込み命令に基づいて、第２のクロック２０７に同期してデータバス上を転送されてくる書込みデータ２０５を、タイミング信号生成手段が生成するタイミング信号に同期して書込みデータバッファ手段２０２に順次格納するように構成することもできる。
【００８６】
　本発明の第２の態様の作用は、次の通りである。
　即ち、本発明の第２の態様では、連続アクセスモードのアクセス単位である第４のデータ単位数（Ｓバイト）の書込みデータが揃った時点において第２のクロック２０７に同期して動作するメモリ群２０１が起動される。この結果、図２の構成を有するメモリ装置がシングルクロックモードで動作する場合においても、無効なデータがメモリ群２０１に書き込まれてしまうという障害を回避することができる。
【００８７】
　ここで、本発明の第２の態様では、シングルクロックモード時において、メモリ群２０１の起動開始がかなり遅れることになるが、この遅延はメモリ装置の内部でのみ認識されるものであるため、計算機システム全体のスループットには影響しない。
【００８８】
　そして、本発明の第２の態様では、シングルクロックモード時において、ノーマルクロックモード時と全く同様の動作が保証される。
　また、本発明の第２の態様において、書込みデータバッファ手段２０２が２組設けられる構成により、一方の書込みデータバッファ手段２０２への書込みデータの書込み動作が実行されている期間では、既に書込み動作が完了している書込みデータバッファ手段２０２からメモリ群２０１への書込みデータの出力動作が実行される。この結果、メモリ装置に対して、各書込み命令とそれぞれの命令に対応する書込みデータを遅延なく連続して転送することができる。
【００８９】
　更に、本発明の第２の態様において、メモリ装置に接続されるデータバスが読出しデータの転送と書込みデータの転送に共通に使用される双方向バスである場合に、書込みデータバッファ手段と読出しデータバッファ手段を１つのデータバッファで共通に使用することができる。この場合に、第２のクロック２０７の変化時点において第１のクロック２０６に同期してアクティブとなるタイミング信号に基づいて書込みデータのデータバッファ手段への格納が実行される。これにより、読出しデータの格納時には第１のクロック２０６に同期して動作するデータバッファ手段を、書込みデータの格納にそのまま流用することができる。
【００９０】
　加えて、本発明の第２の態様において、書込みデータ格納制御手段２０３が、第２のクロック２０７に同期してデータバス上を転送されてくる書込みデータ２０５を、タイミング信号生成手段によって生成される第２のクロック２０７の変化時点において第１のクロック２０６に同期してアクティブとなるタイミング信号に同期して書込みデータバッファ手段２０２に順次格納することにより、書込みデータバッファ手段２０２を、第１のクロック２０６のみに基づいて動作する回路によって構成することができる。従って、外部に簡単なタイミング信号生成手段を設けるだけで、書込みデータバッファ手段２０２を１種類のクロックのみによって動作する汎用のデータレジスタファイルで構成することができる。
【００９１】
　図３は、本発明の第３の態様のブロック図である。
　本発明の第３の態様は、第２のクロック３０８に同期した読出し命令で起動されて、動作状態において停止することのない第１のクロック３０７（例えばフリーランクロックＦＣＬＫ）に同期して連続アクセスモードの下でメモリ装置を構成する複数のメモリ群３０１（例えばＲＡＭ群１３０１）のうちの何れかより読み出された複数の読出しデータ３０５を、読出しデータバッファ手段３０２（例えばＭＤＲ１３０２）に格納した後、その読出しデータバッファ手段３０２に格納された複数の読出しデータ３０５を第２のクロック３０８（例えばゲーテッドクロックＧＣＬＫ）に同期してデータバス３０６に出力するメモリ制御方式を前提とする。
【００９２】
　そして、まず、読出しデータバッファ手段３０２を、少なくとも、１つの読出し命令が発行された後、メモリ群３０１から連続的に出力された複数の読出しデータ３０５の全てが読出しデータバッファ手段３０２からデータバス３０６に出力され終わるまでの期間にメモリ装置に入力する可能性のある読出し命令の数以上の組数だけ有する。かつ、読出しデータバッファ手段３０２の各組は、１回の読出し命令で起動される連続アクセスモードによってメモリ群３０１から連続的に出力された複数の読出しデータ３０５を格納できる長さを有する。
【００９３】
　次に、読出し命令のそれぞれに対応して複数のメモリ群３０１のうちの何れかより読み出された読出しデータ３０５の組のそれぞれを、第１のクロック３０７に同期して、読出しデータバッファ手段３０２の組のそれぞれに順次格納する読出しデータ格納制御手段３０３（例えばＤＥＣ１３０４）を有する。
【００９４】
　そして、読出し命令のそれぞれに対応して読出しデータバッファ手段３０２の組のそれぞれに順次格納された読出しデータ３０５の組のそれぞれを、第２のクロック３０８に同期して、データバス３０６に順次出力する読出しデータ読出し制御手段３０４（例えばＳＥＬ１３０３）を有する。
【００９５】
　上述の本発明の第３の態様の構成において、次のような第１及び第２のバッファ組選択手段を有するように構成することができる。即ち、第１のバッファ組選択手段は、メモリ装置において読出し命令が起動され又はその実行が終了する毎に、起動された読出し命令に対応する読出しデータ３０５又は実行が終了した読出し命令の次に起動された読出し命令に対応する読出しデータ３０５がメモリ群３０１から読み出されるのに同期して、複数組の読出しデータバッファ手段３０２を順次循環的に選択する。第２のバッファ組選択手段は、１組の読出しデータバッファ手段３０２においてその読出しデータバッファ手段３０２に格納された全ての読出しデータ３０５のデータバス３０６への出力が終了する毎に、第１のバッファ組選択手段が読出しデータバッファ手段３０２を選択した順で、複数組の読出しデータバッファ手段３０２を順次循環的に選択する。
【００９６】
　この場合に、読出しデータ格納制御手段３０３は、第１のバッファ組選択手段が選択した読出しデータバッファ手段３０２に対して、読出しデータ３０５の格納動作を実行する。また、読出しデータ読出し制御手段３０４は、第２のバッファ組選択手段が選択した読出しデータバッファ手段３０２に対して、読出しデータ３０５のデータバス３０６への出力動作を実行する。
【００９７】
　上述の構成において、複数組の読出しデータバッファ手段３０２を順次循環的に指定するための、メモリ装置において読出し命令が起動され又はその実行が終了する毎にカウンタ値が＋１ずつされるカウンタ手段（３ビットカウンタ１３１０）を更に有し、第１及び第２のバッファ組選択手段は次のような構成を有するように構成することもできる。即ち、第１のバッファ組選択手段は、カウンタ手段の出力を、メモリ装置において読出し命令が起動され又はその実行が終了された時点から起動された読出し命令に対応する読出しデータ３０５又は実行が終了した読出し命令の次に起動された読出し命令に対応する読出しデータ３０５のメモリ群３０１からの読出しが開始される時点までの時間だけ遅延させるための、第１のクロック３０７に同期して動作する第１のシフトレジスタ手段（例えばＦＣＬ＿ＰＩＰＥ１３１１）と、その第１のシフトレジスタ手段から出力されるカウンタ手段の出力に基づいて、メモリ群３０１から読み出された読出しデータ３０５の組のそれぞれを複数組の読出しデータバッファ手段３０２のそれぞれに順次循環的に入力させる第１のスイッチ手段（例えばＤＥＣ１３１２）とから構成される。また、第２のバッファ組選択手段は、カウンタ手段の出力を、メモリ装置において読出し命令が起動され又はその実行が終了された時点から起動された読出し命令に対応する読出しデータ３０５又は実行が終了した読出し命令の次に起動された読出し命令に対応する読出しデータ３０５の何れかの読出しデータバッファ手段３０２からの読出しが開始される時点までの時間だけ遅延させるための、第２のクロック３０８に同期して動作する第２のシフトレジスタ手段（例えばＧＣＬ＿ＰＩＰＥ１３１３）と、その第２のシフトレジスタ手段から出力されるカウンタ手段の出力に基づいて、複数組の読出しデータバッファ手段３０２のそれぞれを順次循環的に選択し、その選択した読出しデータバッファ手段３０２に格納された読出しデータ３０５をデータバス３０６へ出力させる第２のスイッチ手段（例えばＤＥＣ１３１４及びＳＥＬ１３０６）とから構成される。
【００９８】
　本発明の第３の態様の作用は、次の通りである。
　読出し命令は、メモリ装置内で遅延されることなくメモリ群３０１を起動し、この結果連続的に読み出されるそれぞれ複数個ずつの読出しデータ３０５の組のそれぞれは、データ格納制御手段３０３によって、読出しデータバッファ手段３０２の組のそれぞれに順次格納される。従って、例えば、メモリ装置がシングルクロックモードで動作する場合において、１組の読出しデータバッファ手段３０２内からの読出しデータ３０５の読出しが完了するまでの期間内に、新たな複数個の読出し命令がメモリ装置に入力しそれらによってメモリ群３０１が起動され新たな読出しデータ３０５の組が読み出されても、それらを他の複数組の読出しデータバッファ手段３０２に順次格納することができ、読出しデータの欠落を防止することができる。
【００９９】
　この場合、メモリ装置がノーマルクロックモード及びシングルクロックモードの何れの状態で動作する場合であっても、読出し命令はメモリ装置内で遅延されることなくメモリ群３０１を起動させる。即ち、本発明の第３の態様では、ノーマルクロックモードとシングルクロックモードとでメモリ装置内の動作が全く同じであるため、シングルクロックモードを使用してノーマルクロックモード時に発生したメモリ装置の障害の解析を容易に行うことができる。
【０１００】
　以下、図面を参照しながら、本発明の実施例につき詳細に説明する。
＜第１の実施例＞
　図４は、本発明の第１の実施例における主記憶装置の構成図である。この実施例は、具体的には、前述した第１の技術分野における第１の従来技術が有している問題点を解決するものである。
【０１０１】
　図４において、主記憶装置へのアクセス単位（ワード）のサイズは８バイトである。次に、主記憶装置は、バンク０〜バンク７という８組のＲＡＭ群４０１から構成されている。これは、上述の主記憶装置と特には図示しない中間バッファ記憶装置との間のデータ転送におけるブロックサイズＫを例えば５１２バイト、このＫ＝５１２バイトのデータからなるブロックが更に細分化されることによるブロックＬ＝Ｓを例えば６４バイトとした場合に、Ｋ／Ｓ＝８個のＲＡＭ群４０１が必要なためである。１組のＲＡＭ群４０１は、図４に示されるように、１メガワードの記憶容量を有するＤＲＡＭチップによって構成される。従って、図４に示される主記憶装置全体では、以下の記憶容量を有する。
【０１０２】
　８バイト×１メガワード×８バンク＝６４メガバイト
　ここで、上述の主記憶装置と特には図示しない中間バッファ記憶装置との間のデータ転送におけるブロックサイズＫは例えば５１２バイトであり、１組のＲＡＭ群４０１は、このＫ＝５１２バイトのデータからなるブロックが更に細分化された例えばＬ＝６４バイト（＝８ワード）のデータからなるブロックを単位として、データを記憶する。
【０１０３】
　そして、第１の従来技術の場合と同様に、特には図示しない記憶制御装置は、主記憶装置に対し、Ｋ＝５１２バイトのデータからなるブロックの書込み命令又は読出し命令を１回発行するのではなく、Ｌ＝６４バイトのデータからなるブロックの書込み命令又は読出し命令をＫ／Ｌ＝５１２／６４＝８回発行する。このような構成が採用される理由は、前述したように、中間バッファ記憶装置からＣＰＵ内のバッファ記憶装置に即座にムーブインする必要のあるＬバイトのデータを最初の読出し命令により主記憶装置から中間バッファ記憶装置へ最優先にムーブインさせることで、記憶システムの応答性能を向上させるためである。
【０１０４】
　図４に示される主記憶装置内の特には図示しない制御回路は、記憶制御装置から送出された１つの書込み命令又は読出し命令に設定されているアドレスに基づいて、各ＲＡＭ群４０１を制御する。このアドレスは、Ｌ（ex. ６４）バイトからなる書込みデータ又は読出しデータの先頭アドレスを示している。そして、このアドレス内のバンクアドレス部の値に従って、バンク０〜バンク７のＲＡＭ群４０１のうち何れか１つが選択され、起動される。同時に、上述のアドレス内のＲＡＭアドレス部は、バンク０〜バンク７のＲＡＭ群４０１に出力され、起動されたＲＡＭ群４０１内のアドレスレジスタにセットされる。
【０１０５】
　ＲＡＭ群４０１は、連続アクセスモードで動作する。
　即ち、起動されたＲＡＭ群４０１は、上述のアドレスレジスタの値をＣＡＳ信号（列アドレス信号）に同期して＋１ずつ更新する動作を、８回繰り返し実行する。
【０１０６】
　そして、記憶制御装置が書込み命令を発行した場合には、起動されたＲＡＭ群４０１は、各更新動作毎に、記憶制御装置から転送されてくる８バイトからなる書込みデータを、アドレスレジスタの値によって指定されるセル部に書き込む。このような動作が、１回の書込み命令に対応して８回連続して実行されることにより、起動されたＲＡＭ群４０１にＬ＝６４バイトのデータからなるブロックが書き込まれる。
【０１０７】
　一方、記憶制御装置が読出し命令を発行した場合には、起動されたＲＡＭ群４０１は、各更新動作毎に、アドレスレジスタの値により指定されるセル部から、８バイトからなる読出しデータを読み出し、それを記憶制御装置に向けて出力する。このような動作が、１回の読出し命令に対応して８回連続して実行されることにより、起動されたＲＡＭ群４０１からＬ＝６４バイトのデータからなるブロックが読み出される。
【０１０８】
　記憶制御装置は、主記憶装置に対してＬ＝６４バイトのデータからなるブロックの書込み命令又は読出し命令をＫ／Ｌ＝８回発行している途中で、１つのＣＰＵからのＬバイトのデータからなる特定のブロックの要求に関連して新たなＫ＝５１２バイトのデータからなるブロックを主記憶装置と中間バッファ記憶装置との間で転送する必要が発生した場合には、現在のＫ／Ｌ＝８回の書込み命令群又は読出し命令群の発行を中断し、上記新たなブロックの転送に関連するＫ／Ｌ＝８回の書込み命令群又は読出し命令群のうち先頭の書込み命令又は読出し命令を優先的に実行させる。
【０１０９】
　この先頭の書込み命令又は読出し命令によって指定されるＲＡＭ群４０１が異なる場合には、ＲＡＭ群４０１を構成するＤＲＡＭが必要とする休止時間を考慮する必要がなくなるため、アクセスされるＲＡＭ群４０１の起動を即座に行うことができる。即ち、第１の実施例では、Ｋ＝５１２バイトのデータからなるブロックが更に細分化されたＬ＝６４バイトのデータからなるブロックを単位としてＲＡＭ群４０１へのデータの割付けが行われることにより、複数のＣＰＵからの要求に関連するそれぞれＬ＝６４バイトのデータからなる複数のブロックの転送命令が同時に発生しても、ＲＡＭ群４０１の起動時間の平均を短縮することができ、スループットの高い主記憶装置を実現することができる。また、逆に、他のＣＰＵから新たな要求がない場合は、Ｋ／Ｌ＝８回の書込み命令又は読出し命令を連続して行えるため、１つのブロックに対する処理を最短時間で完結させることができる。
【０１１０】
　上述した第１の実施例においては、Ｋ／Ｌ＝８であって、バンク０〜バンク７の８組のＲＡＭ群４０１が使用されているが、実際には、バンク０、バンク１、・・・という順番でＬ＝６４バイトのデータからなるブロックが順次処理されてゆくと、例えばバンク２又はバンク３がアクセスされている時点でバンク０のビジー状態が終了し、バンク０を再びアクセスすることが可能となる。従って、ＲＡＭ群４０１の組数を４組程度とし、１回のＬ＝６４バイトのデータからなるブロックの転送命令に対応して、１つのＲＡＭ群４０１が２回ずつ起動されるように構成することにより、上述の第１の実施例の場合と同じスループットを確保することができる。即ち、バンク数をＫ／Ｌ個以下に減らすことができる。
【０１１１】
　また、上述した第１の実施例においては、バッファ記憶装置と中間バッファ記憶装置間、及び中間バッファ記憶装置と主記憶装置間でそれぞれ転送されるデータのブロックサイズが異なる記憶システムにおいて、ＤＲＡＭを使用した主記憶装置に対して連続アクセスモードを使用して効率的にアクセスを行う技術に、具体的に関連するものである。しかし、第１の実施例は本発明の適用例の一例にすぎない。本発明は、より一般的には、ＤＲＡＭを使用した主記憶装置に対して複数のＣＰＵなどがＣＰＵ間で優先順位をとりながらＬバイト単位の連続アクセスモードを使用してＬ×複数回（この回数はＣＰＵ間で異なってもよい）バイトのアクセスを行う技術に広く適用できる。
＜第２の実施例＞
　図５は、本発明の第２の実施例の構成図である。この実施例は、具体的には、前述した第２の技術分野における第２の従来技術が有している問題点を解決するものである。また、第２の実施例は、上述した第１の実施例の構成を基本としている。
【０１１２】
　即ち、図４の場合と同様に、図５に示される主記憶装置５０２内の１組のＲＡＭ群５０９（図５ではバンク０のＲＡＭ群５０９のみが示されている）は、例えばＬ＝６４バイト（＝８ワード）のデータからなるブロックを単位として、連続アクセスモードでアクセスされる。
【０１１３】
　このような構成が採用されることにより、第１の実施例において説明したように、ＲＡＭ群４０１の組数を４組程度とし、１回のＬ＝６４バイトのデータからなるブロックの転送命令に対応して、１つのＲＡＭ群４０１が２回ずつ起動されるように構成することにより、図１６に示される前述した第２の従来技術に比較して、ＲＡＭ群のバンク数を削減することができる。
【０１１４】
　但し、記憶制御装置からの書込みデータを受信するための書込みデータレジスタ（ＷＤ＿ＲＥＧ）の数が、図１６に示される第２の従来技術の場合と同様に１つのＲＡＭ群あたり１つのみに設定された場合、次のような問題点が生ずる。即ち、このような構成の主記憶装置がシングルクロックモードで動作した場合は、記憶制御装置からの１個（１ワード＝８バイト）の書込みデータがＧＣＬＫに同期して１つのＷＤ＿ＲＥＧに書き込まれた時点で、ＲＡＭ群が起動される。そして、ＲＡＭ群は、連続アクセスモードを使用することにより、ＦＣＬＫに同期して８個（８ワード）のデータの書込み処理を一気に実行してしまう。この結果、ＲＡＭ群に書き込まれるデータにおいて、最初の１ワードのみが有効なデータとなり残りの７ワードは無効なデータとなってしまうという、重大な障害が発生する。
【０１１５】
　このような問題の発生を回避するために、図５に示される第２の実施例では、記憶制御装置５０１からの８ワード分の書込みデータを保持するための＃０〜＃７の８個のＷＤ＿ＲＥＧ５０４が設けられ、これら全てにデータが格納された後にＲＡＭ群５０９が起動されるように構成される。なお、図１６に示される第２の従来技術においても＃０〜＃７の８個のＷＤ＿ＲＥＧ１６０４が設けられているが、これらは、バンク０〜バンク７の８個のＲＡＭ群１６０５に対応して設けられるものであり、図５に示される＃０〜＃７のＷＤ＿ＲＥＧ５０４とは、機能が異なる。なお、８個のＷＤ＿ＲＥＧ５０４と、デコーダ（ＤＥＣ）５０６及び５０７、並びに選択回路５０５からなる部分は、例えば、データレジスタファイル５０８という１つの集積回路として提供される。
【０１１６】
　まず、図５において、図１６に示される第２の従来技術の場合と同様に、主記憶装置５０２に対する書込みアクセス時の書込みデータは、記憶制御装置５０１と主記憶装置５０２間に設けられる書込みデータバス５０３を経由して、記憶制御装置５０１から主記憶装置５０２に転送される。ＧＣＬＫが入力される毎に、書込みデータバスのバス幅により決定されるデータ量を有する書込みデータが、主記憶装置５０２に転送される。
【０１１７】
　この実施例において、１回の書込み命令によって転送されるブロックサイズＬを６４バイトとし、書込みデータバス５０３のデータ幅を８バイトとすると、１組の書込み命令ＳＴＲ６４とアドレスＡＤＤが記憶制御装置５０１より送出された後、８バイトからなる書込みデータが、記憶制御装置５０１よりＧＣＬＫに同期して８回送出される。
【０１１８】
　この構成で、Ｌ＝６４バイトのデータからなるブロック内の最初の８バイトからなる書込みデータが、書込み命令ＳＴＲ６４及びアドレスＡＤＤと共に、記憶制御装置５０１から主記憶装置５０２にＧＣＬＫに同期して転送されてきた場合に、主記憶装置５０２内では、転送が開始された後に最初に発生するＧＣＬＫに同期したタイミング（このタイミングをステージ０と定義する）において、書込みデータはフリップフロップ（Ｆ／Ｆ）５１０に、書込み命令ＳＴＲ６４及びアドレスＡＤＤはＦ／Ｆ５１２に保持される。そして、ステージ０において、Ｆ／Ｆ５１２に保持されたアドレスＡＤＤ中の３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤの値は、ＧＣＬＫに同期して＋１ずつカウントアップする３ビットカウンタ５１３及び５１６に入力され、また、書込み命令ＳＴＲ６４は、３ビットカウンタ５１４を起動する。
【０１１９】
　３ビットカウンタ５１３は、ステージ０においてのみ、３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤの値をそのまま出力し、その後のステージ１〜ステージ７にかけてＧＣＬＫが入力される毎に、バンクアドレス部ＢＡＮＫ　ＡＤＤの値を初期値として＋１ずつカウントアップする。なお、３ビットカウンタ５１３において、カウント値は、それが７に達した後は０に戻り、０から再びカウントアップする。３ビットカウンタ５１３のカウント値は、デコーダ（ＤＥＣ）５０６でデコードされる。この結果、上記カウント値に対応する書込みデータ設定信号ＷＤ＿ＳＥＴｉ（ｉは、０〜７のうち何れか）が順次アクティブとなることにより、ステージ０〜７において記憶制御装置５０１からＦ／Ｆ５１０に順次入力された書込みデータが、ステージ０〜７において、書込みデータ設定信号ＷＤ＿ＳＥＴｉに対応する＃ｉのＷＤ＿ＲＥＧ５０４に順次格納される。
【０１２０】
　例えば、バンクアドレス部ＢＡＮＫ　ＡＤＤの値が０である場合には、ステージ０〜７において、書込みデータ設定信号ＷＤ＿ＳＥＴ０〜ＷＤ＿ＳＥＴ７が順次アクティブとなることにより、記憶制御装置５０１から転送されてきた８ワード分の書込みデータは、８個のＷＤ＿ＲＥＧ５０４に、＃０、＃１、・・・、＃７の順で書き込まれる。また、例えば、バンクアドレス部ＢＡＮＫ　ＡＤＤの値が４である場合には、ステージ０〜７において、書込みデータ設定信号ＷＤ＿ＳＥＴ４〜ＷＤ＿ＳＥＴ７、ＷＤ＿ＳＥＴ０〜ＷＤ＿ＳＥＴ３が順次アクティブとなることにより、記憶制御装置５０１から転送されてきた８ワード分の書込みデータは、８個のＷＤ＿ＲＥＧ５０４に、＃４、＃５、＃６、＃７、＃０、＃１、＃２、＃３の順で書き込まれる。
【０１２１】
　一方、３ビットカウンタ５１４は、書込み命令ＳＴＲ６４により起動された後に、８個のＧＣＬＫの入力をカウントした後にカウント終了信号ＣＥＮＤを出力する。従って、このカウント終了信号ＣＥＮＤの出力タイミングは、８個全てのＷＤ＿ＲＥＧ５０４への書込みデータの格納が終了した時点である。微分回路５１５は、カウント終了信号ＣＥＮＤの立上がりでアクティブとなる書込み開始信号ＦＣＬ＿ＳＴＡＲＴを生成する。この書込み開始信号ＦＣＬ＿ＳＴＡＲＴは、３ビットカウンタ５１６を起動する。
【０１２２】
　３ビットカウンタ５１６は、ステージ０においてのみ、３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤの値をそのまま出力し、その後のステージ１〜ステージ８にかけてＦＣＬＫが入力される毎に、バンクアドレス部ＢＡＮＫ　ＡＤＤの値を初期値として＋１ずつカウントアップする。なお、３ビットカウンタ５１３の場合と同様に、３ビットカウンタ５１６において、カウント値は、それが７に達した後は０に戻り、０から再びカウントアップする。３ビットカウンタ５１６のカウント値は、デコーダ（ＤＥＣ）５０７でデコードされる。この結果、ＦＣＬＫに同期して、上記カウント値に対応する選択信号ＳＥＬｉ（ｉは、０〜７のうち何れか）が順次アクティブとなることによって、選択回路５０５は、＃ｉのＷＤ＿ＲＥＧ５０４から出力されている書込みデータを、ＦＣＬＫに同期して順次選択し出力する。
【０１２３】
　例えば、バンクアドレス部ＢＡＮＫ　ＡＤＤの値が０である場合には、選択信号ＳＥＬ０〜ＳＥＬ７が順次アクティブとなることにより、選択回路５０５は、８個のＷＤ＿ＲＥＧ５０４から出力されている８ワード分の書込みデータを、ＦＣＬＫに同期して、＃４、＃５、＃６、＃７、＃０、＃１、＃２、＃３の順で選択し出力する。また、例えば、バンクアドレス部ＢＡＮＫ　ＡＤＤの値が４である場合は、選択信号ＳＥＬ４〜ＳＥＬ７、ＳＥＬ０〜ＳＥＬ３が順次アクティブとなることにより、選択回路５０５は、８個のＷＤ＿ＲＥＧ５０４から出力されている８ワード分の書込みデータを、ＦＣＬＫに同期して、＃４、＃５、＃６、＃７、＃０、＃１、＃２、＃３の順で選択し出力する。
【０１２４】
　選択回路５０５から出力された書込みデータは、ＦＣＬＫに同期して動作するＦ／Ｆ５１１を介して、ＲＡＭ群５０９に入力される。
　一方、微分回路５１５から出力された書込み開始信号ＦＣＬ＿ＳＴＡＲＴは、ＦＣＬＫに同期して動作するＦ／Ｆ５１７に格納される。そして、このＦ／Ｆ５１７の出力が、負論理ＲＡＳ信号（行アドレス信号）等として、ＲＡＭ群５０９へ供給される。これと共に、負論理ＲＡＳ信号は、ＦＣＬＫに同期して動作するＦ／Ｆ５１８を介して特には図示しないタイミングジェネレータに入力される。このタイミングジェネレータは、ＲＡＭ群１６０５が１回の書込み動作に必要なタイミング信号をＦＣＬＫに同期して生成する。この結果、Ｆ／Ｆ５１１からＲＡＭ群５０９に入力された書込みデータが、ＦＣＬＫに同期してＲＡＭ群１６０５に書き込まれる。
【０１２５】
　なお、複数のＲＡＭ群５０９を選択するための回路は、特には図示しないが、Ｆ／Ｆ５１２に入力されたアドレスＡＤＤに基づいてＲＡＭ群５０９を選択するための信号を生成する公知の回路として実現することができる。
【０１２６】
　このように、第２の実施例では、８ワード全ての書込みデータが揃った時点においてＦＣＬＫに同期して動作するＲＡＭ群５０９が起動されることにより、図５に示される記憶制御装置５０１及び主記憶装置５０２がシングルクロックモードで動作する場合においても、無効なデータがＲＡＭ群５０９に書き込まれてしまうという障害を回避することができる。ここで、第２の実施例では、シングルクロックモード時において、ＲＡＭ群５０９の起動開始がかなり遅れることになるが、この遅延は主記憶装置５０２の内部でのみ認識されるものであるため、計算機システム全体のスループットには影響しない。そして、第２の実施例では、シングルクロックモード時において、ノーマルクロックモード時と全く同様の動作が保証されるという効果を得ることができる。
【０１２７】
　図５に示される主記憶装置５０２のノーマルクロックモード時における動作タイミングの例を、図６に示す。図６において、タイミング０τ〜１８τは、ＧＣＬＫ＝ＦＣＬＫ（ノーマルクロックモード時）を単位とするクロックタイミングである。
【０１２８】
　まず、図６(a) に示されるように、タイミング０τにおいて、書込み命令ＳＴＲ６４及びアドレスＡＤＤがＦ／Ｆ５１２に入力される。また、図６(b) に示されるタイミング０τ〜７τにおいて記憶制御装置５０１からＦ／Ｆ５１０に順次入力された８ワード分の書込みデータが、８個のＷＤ＿ＲＥＧ５０４に順次格納される。図６(c) に示されるように、タイミング８τにおいてカウント終了信号ＣＥＮＤがアクティブとなるため、タイミング９τ以降に３ビットカウンタ５１６が動作を開始する。この結果、例えば図６(d) に示されるように、ＦＣＬＫ（＝ＧＣＬＫ）に同期したタイミング９τ〜１６τにおいて、選択信号ＳＥＬ０〜ＳＥＬ７が順次アクティブとなることにより、＃０〜＃７のＷＤ＿ＲＥＧ５０４の出力が選択回路５０５によって順次選択され、例えば図６(e) に示されるように、ＦＣＬＫ（＝ＧＣＬＫ）に同期したタイミング１０τ〜１７τにおいて、Ｆ／Ｆ５１１から例えばバンク０のＲＡＭ群５０９へ出力される。これ以降、バイト０のＲＡＭ群５０９は、連続アクセスモードで動作する。即ち、例えば図６(f) に示されるように、ＦＣＬＫ（＝ＧＣＬＫ）に同期したタイミング１０τ〜１７τにおいて、特には図示しないタイミングジェネレータから８パルスの負論理ＣＡＳ信号が順次出力されることによって、図６(e) に示されるようにしてＦ／Ｆ５１１から出力された８ワード分の書込みデータが、バンク０のＲＡＭ群５０９へ順次書き込まれる。
【０１２９】
　続いて、図５に示される主記憶装置５０２のシングルクロックモード時における動作タイミングの例を、図７に示す。主記憶装置５０２は、シングルクロックモード時も、上述したノーマルクロックモード時と同様に動作する。
【０１３０】
　この場合、図７に示されるように、ＧＣＬＫの周期は、一般的に、ＦＣＬＫの周期に比較して非常に長くなる。
　シングルクロックモード時では、図７(a) に示されるように、記憶制御装置５０１からＦ／Ｆ５１０に順次入力された８ワード分の書込みデータ全てが８個のＷＤ＿ＲＥＧ５０４に格納され終わった、ＧＣＬＫに同期した時点ＧＣＬＫ８において、図７(b) に示されるように、カウント終了信号ＣＥＮＤがアクティブとなる。この結果、図７(c) に示されるように、上記時点ＧＣＬＫ８に対応するＦＣＬＫに同期した時点において微分回路５１５から出力される開始信号ＦＣＬ＿ＳＴＡＲＴがアクティブとなるため、それ以降３ビットカウンタ５１６が動作を開始する。この結果、例えば図７(d) に示されるように、ＦＣＬＫに同期して、選択信号ＳＥＬ０〜ＳＥＬ７が順次アクティブとなることにより、＃０〜＃７のＷＤ＿ＲＥＧ５０４の出力が選択回路５０５によって順次選択され、例えば図７(e) に示されるように、ＦＣＬＫに同期して、Ｆ／Ｆ５１１から例えばバンク０のＲＡＭ群５０９へ出力される。これ以降、バイト０のＲＡＭ群５０９は、ＦＣＬＫに同期して、連続アクセスモードで動作する。即ち、例えば図７(f) に示されるように、ＦＣＬＫに同期して、特には図示しないタイミングジェネレータから８パルスの負論理ＣＡＳ信号が順次出力されることによって、図７(e) に示されるようにしてＦ／Ｆ５１１から出力された８ワード分の書込みデータが、バンク０のＲＡＭ群５０９へ順次書き込まれる。この書込み動作は、時点ＧＣＬＫ８の後にＧＣＬＫが入力される時点ＧＣＬＫ９よりも前に終了する。
＜第３の実施例＞
　図８は、本発明の第３の実施例の構成図である。この実施例は、具体的には、上述した第２の実施例の性能を更に改善するものである。
【０１３１】
　図５に示される第２の実施例においては、１つの書込み命令ＳＴＲ６４に対応する８個の書込みデータレジスタ（ＷＤ＿ＲＥＧ）５０４に格納された８組の書込みデータがＦ／Ｆ５１１へ出力され終わるまでは、記憶制御装置５０１は次の書込み命令ＳＴＲ６４に対応する新たな８個の書込みデータをＦ／Ｆ５１０を介してＷＤ＿ＲＥＧ５０４へ書き込むことはできない。
【０１３２】
　これに対して、図８に示される構成を有する第３の実施例は、記憶制御装置５０１が書込み命令ＳＴＲ６４を遅延なく連続して発行することを可能にする。
　図８は、第３の実施例における主記憶装置５０２の主要部の構成を示した図である。図８で、図５の場合と同じ番号が付された部分は、図５の場合と同じ機能を有する。図８の構成が図５の構成と大きく異なる点は、＃０〜＃７のＷＤ＿ＲＥＧ５０４、選択回路５０５、及びＤＥＣ５０６からなる部分が、ａグループ及びｂグループとして示されるように、２組設けられている点である。ここで、ａグループに属する部分はＷＤ＿ＲＥＧ５０４ａ、選択回路５０５ａ、及びＤＥＣ５０６ａの如く示され、ｂグループに属する部分はＷＤ＿ＲＥＧ５０４ｂ、選択回路５０５ｂ、及びＤＥＣ５０６ｂの如く示される。
【０１３３】
　ここで、ＤＥＣ５０６ａからの書込みデータ設定信号ＷＤ＿ＳＥＴ０ａ〜ＷＤ＿ＳＥＴ０７ａに基づく８個のＷＤ＿ＲＥＧ５０４ａへの書込みデータの書込み動作、又はＤＥＣ５０６ｂからの書込みデータ設定信号ＷＤ＿ＳＥＴ０ｂ〜ＷＤ＿ＳＥＴ０７ｂに基づく８個のＷＤ＿ＲＥＧ５０４ｂへの書込みデータの書込み動作は、図５の構成を有する前述した第２の実施例におけるＤＥＣ５０６からの書込みデータ設定信号ＷＤ＿ＳＥＴ０〜ＷＤ＿ＳＥＴ０７に基づく８個のＷＤ＿ＲＥＧ５０４への書込みデータの書込み動作と全く同様である。また、特には図示しない回路部分から出力される選択信号ＳＥＬ０〜ＳＥＬ７に基づく選択回路５０５ａ及び５０５ｂの動作は、図５の構成を有する前述した第２の実施例における３ビットカウンタ５１４、微分回路５１５、３ビットカウンタ５１６、及びＤＥＣ５０７からなる回路部分から出力される選択信号ＳＥＬ０〜ＳＥＬ７に基づく選択回路５０５の動作と全く同様である。
【０１３４】
　反転Ｆ／Ｆ８０１は、図９(c) 、(d) 、(g) に示されるように、図５に示される３ビットカウンタ５１４と同様の特には図示しないカウンタから第２の実施例の場合と同様のカウント終了信号ＣＥＮＤが入力される毎に、自身の負論理出力であるＤＥＣａ＿ＥＮＢＬ信号を自身の正論理入力に入力させることにより、自身の正論理出力であるＤＥＣｂ＿ＥＮＢＬ信号の論理値及び自身の負論理出力であるＤＥＣａ＿ＥＮＢＬ信号の論理値を、０と１の間で交互に切り替える。
【０１３５】
　そして、ＤＥＣａ＿ＥＮＢＬ信号の論理値が１（ＤＥＣｂ＿ＥＮＢＬ信号の論理値が０）である期間では、ＤＥＣ５０６ｂが動作せずＤＥＣ５０６ａが動作することにより、図９(a) に示される書込み命令ＳＴＲ６４（タイミング０τ）と共に特には図示しない記憶制御装置からＦ／Ｆ５１０へ順次入力される図９(b) に示される８組の書込みデータ（０ａ〜７ａ）は、図９(e) に示されるように、８個のＷＤ＿ＲＥＧ５０４ａ（ａグループ）へ順次書き込まれる。逆に、ＤＥＣｂ＿ＥＮＢＬ信号の論理値が１（ＤＥＣａ＿ＥＮＢＬ信号の論理値が０）である期間では、ＤＥＣ５０６ａが動作せずＤＥＣ５０６ｂが動作することにより、図９(a) に示される書込み命令ＳＴＲ６４（タイミング８τ）と共に特には図示しない記憶制御装置からＦ／Ｆ５１０へ順次入力される図９(b) に示される８組の書込みデータ（０ｂ〜７ｂ）は、図９(f) に示されるように、８個のＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）へ順次書き込まれる。
【０１３６】
　ここで、カウント終了信号ＣＥＮＤは、反転Ｆ／Ｆ８０１がその負論理出力であるＤＥＣａ＿ＥＮＢＬ信号をアクティブにしている時は８個のＷＤ＿ＲＥＧ５０４ａ（ａグループ）への書込みデータの格納が終了した時点（図９(g) のタイミング８τ）、反転Ｆ／Ｆ８０１がその正論理出力であるＤＥＣｂ＿ＥＮＢＬ信号をアクティブにしている時は８個のＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）への書込みデータの格納が終了した時点（図９(g) のタイミング１６τ）において、アクティブになる。
【０１３７】
　従って、例えば、１つの書込み命令ＳＴＲ６４に対応する８組の書込みデータが８個のＷＤ＿ＲＥＧ５０４ａ（ａグループ）へ書き込まれ終わると、次の書込み命令ＳＴＲ６４に対応する８組の書込みデータが８個のＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）へ書き込まれ、そのｂグループへの書込み動作が終了すると、更に次の書込み命令ＳＴＲ６４に対応する８組の書込みデータが８個のＷＤ＿ＲＥＧ５０４ａ（ａグループ）へ書き込まれる。
【０１３８】
　一方、ＤＥＣａ＿ＥＮＢＬ信号の論理値が１（ＤＥＣｂ＿ＥＮＢＬ信号の論理値が０）である場合には、選択回路８０２が選択回路５０５ｂ（ｂグループ）の出力を選択することによって、選択回路５０５ｂが選択信号ＳＥＬｉ（例えば図９(h) に示されるＳＥＬ０〜７）に基づいて順次出力する既に書込み動作が完了している８個のＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）に格納されている８組の書込みデータが、例えば図９(i) の０ｂ、１ｂ、２ｂ、・・・として示されるように、Ｆ／Ｆ５１１へ順次転送される。逆に、ＤＥＣａ＿ＥＮＢＬ信号の論理値が０（ＤＥＣｂ＿ＥＮＢＬ信号の論理値が１）である場合は、選択回路８０２が選択回路５０５ａ（ａグループ）の出力を選択することによって、選択回路５０５ａが選択信号ＳＥＬｉ（例えば図９(h) に示されるＳＥＬ０、１、２、・・・）に基づいて順次出力する既に書込み動作が完了している８個のＷＤ＿ＲＥＧ５０４ａ（ａグループ）に格納されている８組の書込みデータが、例えば図９(i) の０ａ〜７ａとして示されるように、Ｆ／Ｆ５１１へ順次転送される。
【０１３９】
　以上のように、ＷＤ＿ＲＥＧ５０４ａ（ａグループ）への書込みデータの書込み動作が実行されている期間では、既に書込み動作が完了しているＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）から特には図示しないＲＡＭ群への書込みデータの出力動作が実行され、ＷＤ＿ＲＥＧ５０４ｂ（ｂグループ）への書込みデータの書込み動作が実行されている期間では、既に書込み動作が完了しているＷＤ＿ＲＥＧ５０４ａ（ａグループ）から特には図示しないＲＡＭ群への書込みデータの出力動作が実行される。この結果、特には図示しない記憶制御装置は、主記憶装置５０２に対して、各書込み命令ＳＴＲ６４とそれぞれの命令に対応する書込みデータを遅延なく連続して転送することができる。
＜第４の実施例＞
　図１０は、本発明の第４の実施例の構成図である。
【０１４０】
　第２の実施例（図５）又は第３の実施例（図８）として示したように、連続アクセスモードの機能を有する主記憶装置のシングルクロックモード時での書込み動作の正常性を保証するために、記憶制御装置からＧＣＬＫに同期して転送されてきた書込みデータは、連続アクセスモードのアクセス単位に対応する個数の書込みデータレジスタ（ＷＤ＿ＲＥＧ）に順次格納され、これら複数のＷＤ＿ＲＥＧの全ての内容が確定した後に、それらの内容が連続アクセスモードの下でＦＣＬＫに同期して連続的にＲＡＭ群に書き込まれる。
【０１４１】
　一方、第３の従来技術（図１８）として示したように、連続アクセスモードの機能を有する主記憶装置のシングルクロックモード時での読出し動作の正常性を保証するために、連続アクセスモードの下でＦＣＬＫに同期してＲＡＭ群から連続的に読み出された連続アクセスモードのアクセス単位に対応する個数の読出しデータは、上記個数の読出しデータレジスタ（ＭＤＲ）に順次格納された後に、ＧＣＬＫに同期して記憶制御装置に転送される。
【０１４２】
　上述したような書込みデータレジスタ（ＷＤ＿ＲＥＧ）又は読出しデータレジスタ（ＭＤＲ）は、主記憶装置が通常の動作状態であるノーマルクロックモードで動作する際には、本来不要なハードウエアである。従って、主記憶装置のコストを抑制するためにも、シングルクロックモードにおいてのみ必要とされるハードウエアの規模は極力縮小させることが望ましい。
【０１４３】
　もし、記憶制御装置と主記憶装置間のデータバスが、書込みデータの転送と読出しデータの転送に共通に使用される双方向バスの構成を採る場合、書込み動作と読出し動作は同時に発生することはない。このような前提の下で、以下に説明する第４の実施例においては、１組のデータレジスタが１組の書込みデータレジスタ（ＷＤ＿ＲＥＧ）又は１組の読出しデータレジスタ（ＭＤＲ）の何れか一方として選択的に使用されることで、ハードウエア規模の削減が実現される。
【０１４４】
　ここで、第２又は第３の実施例の説明において前述したように、書込みデータレジスタ（ＷＤ＿ＲＥＧ）への書込みデータの書込み動作は、ＧＣＬＫに同期して記憶制御装置から送出される書込みデータを格納できるように、ＧＣＬＫに同期して実行される必要がある。一方、第３の従来技術の説明において前述したように、読出しデータレジスタ（ＭＤＲ）への読出しデータの書込み動作は、ＦＣＬＫに同期して動作するＲＡＭ群から出力される読出しデータを格納できるように、ＦＣＬＫに同期して実行される必要がある。
【０１４５】
　そこで、図１０に示される構成を有する第４の実施例においては、ＧＣＬＫに同期している信号をＦＣＬＫに同期する信号に変換する機構が設けられることにより、ＦＣＬＫに同期して動作する＃０〜＃７の１組のデータレジスタ（ＤＲ）１００１に、ＧＣＬＫに同期して入力される書込みデータとＦＣＬＫに同期して入力される読出しデータの両方を選択的に格納することができる。
【０１４６】
　まず、図１０の構成を含む主記憶装置が特には図示しない記憶制御装置から読出し命令を受けた場合の動作につき説明する。
　まず、読出し状態又は書込み状態を指示するＲ／Ｗ信号は、特には図示しない記憶制御装置から出力される信号であるため、ＧＣＬＫに同期している。このＲ／Ｗ信号が読出し状態を指示している場合は、選択回路（ＳＥＬ）１００６が読出しデータバス１００２を選択する。この結果、ＦＣＬＫに同期して動作する特には図示しないＲＡＭ群（例えば図１８のＲＡＭ群１８０１などに対応する）から読出しデータバス１００２に読み出されてきた読出しデータは、ＦＣＬＫに同期して動作するＦ／Ｆ１００４を介して、＃０〜＃７のＤＲ１００１に入力される。
【０１４７】
　一方、ＲＤ＿ＳＥＬデータが示す値を初期値としてＦＣＬＫに同期して＋１ずつカウントアップする３ビットカウンタ１０１１のカウント出力値がデコーダ（ＤＥＣ）１０１２によってデコードされる結果、そのＤＥＣ１０１２から出力されるＦＣＬＫの１クロック分の時間幅を有する読出しデータ設定信号ＲＤＳＴ０〜ＲＤＳＴ７が順次アクティブとなる。これらの読出しデータ設定信号ＲＤＳＴ０〜ＲＤＳＴ７は、＃０〜＃７のオアゲート（ＯＲ）１０１７を介して＃０〜＃７のＤＲ１００１に入力される。
【０１４８】
　この結果、読出しデータバス１００２からＦＣＬＫに同期して順次入力される８組の読出しデータは、＃０〜＃７のＤＲ１００１に順次格納される。
　また、ＧＣＬＫに同期して動作する特には図示しない３ビットカウンタから出力された選択データが特には図示しないデコーダによってデコードされる結果、そのデコーダからＳＥＬ１０１０へは、順次アクティブとなる選択信号ＤＭＰＸ＿ＲＤ０〜ＤＭＰＸ＿ＲＤ７が供給される。そして、Ｒ／Ｗ信号が読出し状態を指示している場合には、ＳＥＬ１０１０は、選択信号ＤＭＰＸ＿ＲＤ０〜ＤＭＰＸ＿ＲＤ７を選択する。この結果として、８個のＤＲ１００１の出力のそれぞれは、ＳＥＬ１００７により順次選択され、ＧＣＬＫに同期して動作し８バイトのデータ幅を有するＦ／Ｆ１００８を介して、それぞれ８バイトからなる８個のメモリ読出しデータＭＲＤとして、特には図示しない記憶制御装置に順次出力される。
【０１４９】
　次に、図１０の構成を含む主記憶装置が特には図示しない記憶制御装置から書込み命令を受けた場合の動作につき説明する。
　Ｒ／Ｗ信号が書込み状態を指示している場合は、ＳＥＬ１００６が書込みデータバス１００３を選択する。この結果、ＧＣＬＫに同期して書込みデータバス１００３上を転送されてきた特には図示しない記憶制御装置からの８組の書込みデータは、ＧＣＬＫに同期して動作するＦ／Ｆ１００５を介して、＃０〜＃７のＤＲ１００１に入力される。
【０１５０】
　一方、特には図示しない記憶制御装置から指定された書込みアドレス中の３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤの値は、ＧＣＬＫに同期して＋１ずつカウントアップする３ビットカウンタ１０１３に入力される。３ビットカウンタ１０１３は、前述した第２の実施例における図５に示される３ビットカウンタ５１３と同様の機能を有する。即ち、３ビットカウンタ１０１３は、ＧＣＬＫに同期した最初のタイミングにおいてのみ、３ビットからなるバンクアドレス部ＢＡＮＫ　ＡＤＤの値をそのまま出力し、その後ＧＣＬＫが入力される毎に、バンクアドレス部ＢＡＮＫ　ＡＤＤの値を初期値として＋１ずつカウントアップする。なお、３ビットカウンタ１０１３において、カウント値は、それが７に達した後は０に戻り、０から再びカウントアップする。３ビットカウンタ１０１３のカウント値は、デコーダ（ＤＥＣ）１０１４でデコードされる。
【０１５１】
　ここで、３ビットカウンタ１０１３でのカウントアップ動作に同期して、セット／リセット型のＦ／Ｆ１０１５は、特には図示しない記憶制御装置から書込み命令ＳＴＲ６４が入力されるタイミングでセットされる。また、３ビットカウンタ１０１６は、上記書込み命令ＳＴＲ６４の入力タイミングで起動された後に、カウンタ出力の３ビットをアンドゲート（ＡＮＤ）１０１９に入力させる。これにより、３ビットカウンタ１０１６が８個のＧＣＬＫの入力をカウントして３ビットのカウンタ出力の全てがアクティブとなった時点で、ＡＮＤ１０１９がオンとなる。従って、８個のＧＣＬＫがカウントされた時点で、ＡＮＤ１０１９の出力によりＦ／Ｆ１０１５がリセットされる。この結果、Ｆ／Ｆ１０１５は、書込み命令ＳＴＲ６４の入力タイミングからＧＣＬＫの８クロック分の時間幅だけアクティブとなる８Ｔ＿ＶＡＬＩＤ信号を出力する。そして、ＡＮＤ１０１８は、この８Ｔ＿ＶＡＬＩＤ信号がアクティブである期間において、ＧＣＬＫの変化時にアクティブとなるＦＣＬＫの１クロック分の時間幅を有する上述した＋ＴＲＩＧ信号を、ＤＥＣ１０１４に対して、デコード許可信号として入力させる。
【０１５２】
　この結果、ＤＥＣ１０１４は、３ビットカウンタ１０１３からのＧＣＬＫに同期して変化するカウント値に対応する書込みデータ設定信号ＷＤＳＴ０〜ＷＤＳＴ７を、それぞれＦＣＬＫに同期してＦＣＬＫの１クロック分の時間幅だけ順次アクティブにする。これらの書込みデータ設定信号ＷＤＳＴ０〜ＷＤＳＴ７は、＃０〜＃７のオアゲート（ＯＲ）１０１７を介して＃０〜＃７のＤＲ１００１に入力される。
【０１５３】
　この結果、書込みデータバス１００３からＧＣＬＫに同期して順次入力される８組の書込みデータは、ＦＣＬＫに同期して動作する＃０〜＃７のＤＲ１００１に順次格納される。
【０１５４】
　このように、ＤＲ１００１は常にＦＣＬＫに同期して動作するが、書込みデータの格納時には、ＧＣＬＫの変化タイミングにおいてのみ書込みデータがＤＲ１００１に書き込まれることにより、ＤＲ１００１を書込みデータの格納用と読出しデータの格納用に共通に使用することができる。
【０１５５】
　一方、Ｒ／Ｗ信号が書込み状態を指示している場合には、ＳＥＬ１０１０は、選択信号ＳＥＬ０〜ＳＥＬ７を選択する。これらの選択信号ＳＥＬ０〜ＳＥＬ７は、前述した第２の実施例における図５の３ビットカウンタ５１４、微分回路５１５、３ビットカウンタ５１６、及びＤＥＣ５０７からなる回路部分に対応する特には図示しない回路部分から出力され、ＦＣＬＫに同期して順次アクティブになる。この結果として、８個のＤＲ１００１に格納されている８組の書込みデータのそれぞれは、ＳＥＬ１００７により順次選択され、ＦＣＬＫに同期して動作し８バイトのデータ幅を有するＦ／Ｆ１００９を介して、８組のバンク書込みデータとして、特には図示しないＲＡＭ群に順次書き込まれる。
【０１５６】
　図１１は、図１０に示されるＦＣＬＫトリガ回路１０２０の動作タイミングチャートである。
　ＧＣＬＫに同期して動作するＦ／Ｆ１０２１とインバータ１０２２からなる部分は、図１１(b) に示される＋ＧＳＩＧ信号及び図１１(c) に示される−ＧＳＩＧ信号を生成する。これらの信号は、互いに極性が逆であり、共に図１１(a) に示されるＧＣＬＫに同期して値が変化する。
【０１５７】
　次に、図１１(d) に示されるＦＣＬＫに同期して動作するＦ／Ｆ１０２３は、図１１(b) に示される＋ＧＳＩＧ信号をＦＣＬＫの１クロック分の時間だけ遅延させることにより、図１１(e) に示される−ＦＳＩＧ信号を生成する。また、インバータ１０２４は、この−ＦＳＩＧ信号の極性を反転させることにより、図１１(f) に示される＋ＦＳＩＧ信号を生成する。
【０１５８】
　更に、ノアゲート（ＮＯＲ）１０２５は、図１１(c) に示される−ＧＳＩＧ信号と図１１(f) に示される＋ＦＳＩＧ信号を入力することにより、図１１(g) に示される＋ＵＰ信号を出力する。また、ＮＯＲ１０２６は、図１１(b) に示される＋ＧＳＩＧ信号と図１１(e) に示される−ＦＳＩＧ信号を入力することによって、図１１(h) に示される＋ＤＮ信号を出力する。
【０１５９】
　そして、ＮＯＲ１０２７は、図１１(g) に示される＋ＵＰ信号と図１１(h) に示される＋ＤＮ信号を入力することにより、図１１(i) に示されるように、図１１(a) に示されるＧＣＬＫの変化時に図１１(d) に示されるＦＣＬＫの１クロック分の時間幅だけアクティブとなる＋ＴＲＩＧ信号を生成する。
【０１６０】
　この＋ＴＲＩＧ信号が、前述したように書込みデータの入力時にＤＥＣ１０１４を制御することにより、ＦＣＬＫに同期して動作するＤＲ１００１にＧＣＬＫの変化タイミングで書込みデータを格納させることが可能となる。
【０１６１】
　なお、このＦＣＬＫトリガ回路１０２０は、メモリ装置上に１回路設けられるだけでよく、この出力は、ＧＣＬＫをＦＣＬＫに同期化させる必要のある複数の回路部によって共通に使用される。
【０１６２】
　以上説明した第４の実施例は、複数組のデータレジスタが複数組の書込みデータレジスタ（ＷＤ＿ＲＥＧ）及び複数組の読出しデータレジスタ（ＭＤＲ）のために共通に使用される構成であってもよい。
＜第５の実施例＞
　図１２は、本発明の第５の実施例の構成図である。
【０１６３】
　例えば第２の実施例における図５に示される８個のＷＤ＿ＲＥＧ５０４において、それらのＷＤ＿ＲＥＧ５０４への書込みデータの格納は、記憶制御装置５０１からＧＣＬＫに同期して転送されてきた書込みデータを格納できるように、ＧＣＬＫに同期して実行される必要がある。そのため、この格納動作は、３ビットカウンタ５１３及びＤＥＣ５０６がＧＣＬＫに同期して動作することにより生成される、ＧＣＬＫに同期した書込みデータ設定信号ＷＤＳＴ０〜ＷＤＳＴ７に基づいて実行される。
【０１６４】
　一方、８個のＷＤ＿ＲＥＧ５０４からＲＡＭ群５０９への書込みデータの転送は、ＤＲＡＭによって構成されるＲＡＭ群５０９がＦＣＬＫに同期して書込みデータを取り込めるように、ＦＣＬＫに同期して実行される必要がある。そのために、選択回路５０５は、３ビットカウンタ５１６及びＤＥＣ５０７がＦＣＬＫに同期して動作することにより生成される、ＦＣＬＫに同期した選択信号ＳＥＬ０〜ＳＥＬ７に基づいて、８個のＷＤ＿ＲＥＧ５０４の出力を順次選択する。
【０１６５】
　ここで、図５に示されるように、８個のＷＤ＿ＲＥＧ５０４と、ＤＥＣ５０６及び５０７、並びに選択回路５０５からなる部分が、例えば、データレジスタファイル５０８という１つの集積回路として提供される場合がある。レジスタファイルは、Ｆ／Ｆが多数使用されることにより構成される一般的な書込みデータレジスタに比較して、少ないゲート数で同じ容量を有するレジスタ群を構成できるという利点を有する。しかし、汎用的なレジスタファイル等は、クロック信号入力端子が１本しかないのが一般的である。従って、図５に示されるように、それぞれ異なるクロックに同期する複数の回路部分を含むデータレジスタファイル５０８を、汎用的なレジスタファイル等によって構成することは困難である。
【０１６６】
　そこで、図１２に示される第５の実施例では、書込みデータを書込みデータレジスタに格納するためのＧＣＬＫに同期している制御信号をＦＣＬＫに同期する信号に変換する機構１２０２が設けられることにより、ＦＣＬＫに同期する回路部分のみを含む汎用データレジスタファイル１２０１を、図５に示されるデータレジスタファイル５０８として使用することを可能にしている。
【０１６７】
　図１２において、汎用データレジスタファイル１２０１は、図５のデータレジスタファイル５０８に置き換わって使用されるべき部分である。そして、＃０〜＃７の書込みデータレジスタ（ＷＤ＿ＲＥＧ１２０３）は、図５の＃０〜＃７のＷＤ＿ＲＥＧ５０４に対応する。また、ＤＥＣ１２０６及び１２０９は、それぞれ図５のＤＥＣ５０６及び５０７に対応する。
【０１６８】
　書込みデータ１２１３は、図５の記憶制御装置５０１から転送されＦ／Ｆ５１０に保持されたデータであり、ＧＣＬＫに同期している。
　また、書込みアドレス１２１２は、図５において説明したように、ＧＣＬＫに同期して動作する３ビットカウンタ５１３によって生成され、ＧＣＬＫに同期している。この書込みアドレス１２１２は、汎用データレジスタファイル１２０１内のＦＣＬＫに同期して動作するＦ／Ｆ１２０５を介してＤＥＣ１２０６に入力される。
【０１６９】
　ここで、図５では特には図示していないが、記憶制御装置５０１から供給されるＧＣＬＫに同期した書込み許可信号１２１１は、微分回路１２０２に入力される。微分回路１２０２は、書込み許可信号１２１１がアクティブの間、ＧＣＬＫの変化時においてのみＦＣＬＫの１クロック分の時間幅だけアクティブとなるＦＣＬＫに同期した書込み許可信号パルス群１２１５を生成する。この微分回路１２０２は、例えば次のような回路構成として実現できる。即ち、この微分回路１２０２では、図１０に示されるＦＣＬＫトリガ回路１０２０と同様の回路構成により図１１(i) に示される＋ＴＲＩＧ信号と同様のパルス群が生成され、そのパルス群が書込み許可信号１２１１がアクティブの間オンとなるアンドゲートに入力させられ、その出力として書込み許可信号パルス群１２１５が生成される。
【０１７０】
　このようにして生成される書込み許可信号パルス群１２１５は、ＦＣＬＫに同期して動作するＦ／Ｆ１２０４を介して、デコード許可信号ＤＥとしてＤＥＣ１２０６に入力される。この結果、ＤＥＣ１２０６は、図５に示される３ビットカウンタ５１３からのＧＣＬＫに同期して変化する書込みアドレス１２１２に対応する書込みデータ設定信号ＷＤ＿ＳＥＴ０〜ＷＤ＿ＳＥＴ７を、それぞれＧＣＬＫの変化時にＦＣＬＫに同期してＦＣＬＫの１クロック分の時間幅だけ順次アクティブにする。従って、ＧＣＬＫの変化時においてのみ、書込みデータが、ＦＣＬＫに同期して動作するＷＤ＿ＲＥＧ１２０３に書き込まれることになる。
【０１７１】
　一方、ＷＤ＿ＲＥＧ１２０３の書込みデータが図５のＲＡＭ群５０９に転送される際には、図５の３ビットカウンタ５１６の出力がＦＣＬＫに同期して動作するＦ／Ｆ１２０８を介してＤＥＣ１２０９に入力される。また、図５では特には図示していないが、ＦＣＬＫに同期した読出し許可信号１２１４が、ＦＣＬＫに同期して動作するＦ／Ｆ１２０７を介して、デコード許可信号ＤＥとしてＤＥＣ１２０９に入力される。この結果、ＤＥＣ１２０９は、図５のＤＥＣ５０７と同様にして、３ビットカウンタ５１６から出力されるカウント値に対応する選択信号ＳＥＬ０〜ＳＥＬ７を、ＦＣＬＫに同期して選択回路５０５に順次出力する。この結果、８個のＷＤ＿ＲＥＧ１２０３に格納されている８組の書込みデータのそれぞれは、選択回路５０５により順次選択され、ＦＣＬＫに同期して動作し８バイトのデータ幅を有する図５に示されるＦ／Ｆ５１１を介して、８組のバンク書込みデータとして、図５に示されるＲＡＭ群５０９に順次転送される。
【０１７２】
　以上示したように、第５の実施例では、微分回路１２０２を設けるだけで、図５のデータレジスタファイル５０８を、ＦＣＬＫのみによって動作する汎用データレジスタファイル１２０１で構成することができる。
＜第６の実施例＞
　図１３は、本発明の第６の実施例における主記憶装置の構成図である。この実施例は、具体的には、前述した第２の技術分野における第３の従来技術が有している問題点を解決するものである。
【０１７３】
　第６の実施例では、デコーダ（ＤＥＣ）１３０４、＃０〜＃７の読出しデータレジスタ（ＭＤＲ）１３０２、及び選択回路（ＳＥＬ）１３０３からなる読出しデータレジスタ群１３０５が、＃０〜＃２の３組設けられている。
【０１７４】
　＃０〜＃２の読出しデータレジスタ群１３０５を指定するために、アクセスＩＤが使用される。このアクセスＩＤは、３ビットカウンタ１３１０によって作成される。この３ビットカウンタ１３１０は、特には図示しない記憶制御装置から読出し命令ＦＣＨ６４がＦ／Ｆ１３０８に入力される毎に、＋１ずつカウントアップする。なお、この３ビットカウンタ１３０８は、主記憶装置での１つの読出し命令ＦＣＨ６４の実行が終了した時点でカウントアップするように構成されてもよい。この３ビットカウンタ１３１０がカウントするカウント値は、０、１、２、０、１、・・・というように、循環的に変化する。この３ビットカウンタ１３１０の出力ＲＥＱ＿ＩＤは、図１４(a) に示されるように読出し命令ＦＣＨ６４が最短で８τの時間間隔で入力した場合、図１４(b) に示されるように、８τの時間間隔だけ固定される。
【０１７５】
　ＲＥＱ＿ＩＤ信号は、ＲＡＭ群１３０１が起動されるのと同時に、ＦＣＬＫに同期して動作するパイプラインＦＣＬ＿ＰＩＰＥ１３１１に入力される。ＲＥＱ＿ＩＤ信号は、このパイプラインＦＣＬ＿ＰＩＰＥ１３１１で遅延させられた後に、Ｆ／Ｆ１３０９を介して起動されたＲＡＭ群５０９からの読出しデータＲＤの読出しが開始されるのに同期して、ＦＩＤ信号としてデコーダ（ＤＥＣ）１３１２に入力される。ＤＥＣ１３１２は、ＦＩＤ信号の値に対応して、＃０〜＃２のうち何れか１つの読出しデータレジスタ群１３０５内のＤＥＣ１３０４に対してのみ、デコード許可信号ＦＤｉ（ｉは０、１、又は２の何れか）を出力する。図１４(b) に示されるようにＲＥＱ＿ＩＤ信号が８τの時間間隔だけ固定されるのに対応して、ＦＩＤ信号も図１４(c) に示されるように８τの時間間隔だけ固定される。このため、このデコード許可信号ＦＤｉも、図１４(c) に示されるＦＩＤ信号に同期して８τの時間間隔だけ固定される。
【０１７６】
　この結果、起動されたＲＡＭ群１３０１から図１４(d) に示されるタイミングで連続的に読み出される８組の読出しデータＲＤは、ＦＣＬＫに同期して動作する特には図示しない３ビットカウンタから順次出力される読出しデータ選択信号ＲＤＳＥＬの８個の値に対応してＤＥＣ１３０４から順次出力される８個の読出しデータ設定信号に基づいて、図１４(e) に示されるタイミングで、＃０〜＃７のＭＤＲ１３０２に順次格納される。
【０１７７】
　一方、３ビットカウンタ１３１０から出力されたＲＥＱ＿ＩＤ信号は、ＧＣＬＫに同期して動作するパイプラインＧＣＬ＿ＰＩＰＥ１３１３に入力される。ＲＥＱ＿ＩＤ信号は、このパイプラインＧＣＬ＿ＰＩＰＥ１３１３で遅延させられた後に、そのＲＥＱ＿ＩＤ信号を生成させた読出し命令ＦＣＨ６４に対応する読出しデータが何れかの読出しデータレジスタ群１３０５から出力されるタイミングに同期して、ＧＩＤ信号としてＤＥＣ１３１４に入力される。ＤＥＣ１３１４は、ＧＩＤ信号の値に対応して、＃０〜＃２のうち何れか１つの読出しデータレジスタ群１３０５の出力を選択するための選択信号ＧＤＳＥＬｉ（ｉは０〜２のうち何れか）をアクティブにする。図１４(b) に示されるようにＲＥＱ＿ＩＤ信号が８τの時間間隔だけ固定されるのに対応して、ＧＩＤ信号も図１４(f) に示されるように８τの時間間隔だけ固定される。このため、この選択信号ＧＤＳＥＬｉも、図１４(f) に示されるＧＩＤ信号に同期して８τの時間間隔だけ固定される。
【０１７８】
　一方、図１８に示される第３の従来技術の場合と同様に、読出しが開始されるべき読出しデータレジスタ群１３０５内において、ＧＣＬＫに同期して動作する特には図示しない３ビットカウンタから出力された選択データが特には図示しないデコーダによりデコードされる結果、そのデコーダからＳＥＬ１３０３へは、図１４(g) に示されるように、順次アクティブとなる選択信号ＤＭＰＸ＿ＲＤ０〜ＤＭＰＸ＿ＲＤ７が供給される。この結果として、８個のＭＤＲ１３０２の出力のそれぞれは、ＳＥＬ１３０３により順次選択され、ＳＥＬ１３０６へ出力される。
【０１７９】
　ＳＥＬ１３０６は、選択信号ＧＤＳＥＬｉによって、上記読出しデータレジスタ群１３０５から出力される８個のＭＤＲ１３０２の出力のそれぞれを、共にＧＣＬＫに同期して動作し共に８バイトのデータ幅を有するＦ／Ｆ１３０７及び特には図示しない読出しデータバスを介して、図１４(h) に示されるそれぞれ８バイトからなる８個のメモリ読出しデータＭＲＤとして、特には図示しない記憶制御装置に順次出力する。
【０１８０】
　図１３に示される第６の実施例の構成においては、第３の従来技術の場合と同様に、特には図示しない記憶制御装置から１つの読出し命令ＦＣＨ６４が発行された後、主記憶装置内のＲＡＭ群１３０１から連続的に出力された８組の読出しデータＲＤの全てが主記憶装置の出力側に最初に配置されているＧＣＬＫに同期して動作するＦ／Ｆ１３０７に到達し終わるまでの期間Ｃは、ＧＣＬＫの１７クロック分の時間（１７τ）である。そして、特には図示しない記憶制御装置から最短で８τの時間間隔で出力される可能性のある読出し命令ＦＣＨ６４が、主記憶装置に、上記期間Ｃ内に最大で３個入力する可能性がある。これは、第３の従来技術の場合と同様に、１回の読出し命令ＦＣＨ６４により、主記憶装置から８バイト×８個＝６４バイトからなる読出しデータ群が、８バイトのデータ幅を有する読出しデータバスに出力される結果、１回の読出し命令ＦＣＨ６４により読出しデータバスが８τの時間だけ占有されるため、記憶制御装置は、８τの時間間隔で読出し命令ＦＣＨ６４を出力することができるためである。
【０１８１】
　そして、第６の実施例では、特には図示しない記憶制御装置から最短で８τの時間間隔で入力される読出し命令ＦＣＨ６４は、主記憶装置内で遅延されることなくＲＡＭ群１３０１を起動し、この結果連続的に読み出されるそれぞれ８組ずつの読出しデータ群は、ＦＩＤ信号（デコード許可信号ＦＤｉ）によって順次選択される＃０〜＃２の読出しデータレジスタ群１３０５に、順次循環的に格納される。
【０１８２】
　従って、図１３に示される主記憶装置がシングルクロックモードで動作する場合において、１つの読出しデータレジスタ群１３０５内からの読出しデータＲＤの読出しが完了するまでの期間内に、最大で新たな２つの読出し命令ＦＣＨ６４が入力しそれらによってＲＡＭ群１３０１が起動され新たな読出しデータ群が読み出されても、それらを他の２つの読出しデータレジスタ群１３０５に順次格納することができ、読出しデータの欠落を防止することができる。
【０１８３】
　この場合、主記憶装置がノーマルクロックモード及びシングルクロックモードの何れの状態で動作する場合であっても、読出し命令ＦＣＨ６４は主記憶装置内で遅延されることなくＲＡＭ群１３０１を起動させる。即ち、第６の実施例においては、ノーマルクロックモードとシングルクロックモードとで主記憶装置内の動作が全く同じであるため、シングルクロックモードを使用してノーマルクロックモード時に発生した主記憶装置の障害の解析を容易に行うことができる。
【０１８４】
　以上より、本発明の第１の態様によれば、第１のデータ単位数のデータからなるブロックが更に細分化された第２のデータ単位数のデータからなるブロックを単位としてメモリ群へのデータの割付けが行われることにより、複数のＣＰＵからの要求に関連するそれぞれ第２のデータ単位数のデータからなる複数のブロックの転送命令が同時に発生しても、メモリ群の起動時間の平均を短縮することができ、スループットの高いメモリ装置を実現することが可能となる。
【０１８５】
　本発明の第２の態様によれば、メモリ装置がシングルクロックモードで動作する場合においても、無効なデータがメモリ群に書き込まれてしまうという障害を回避することが可能となる。
【０１８６】
　ここで、本発明の第２の態様では、シングルクロックモード時において、メモリ群の起動開始がかなり遅れることになるが、この遅延はメモリ装置の内部でのみ認識されるものであるため、計算機システム全体のスループットには影響しない。
【０１８７】
　また、本発明の第２の態様によれば、シングルクロックモード時において、ノーマルクロックモード時と全く同様の動作を保証することが可能となる。
　また、本発明の第２の態様において、書込みデータバッファ手段が２組設けられることにより、メモリ装置に対して、各書込み命令とそれぞれの命令に対応する書込みデータを遅延なく連続して転送することが可能となる。
【０１８８】
　更に、本発明の第２の態様において、第２のクロックの変化時点において第１のクロックに同期してアクティブとなるタイミング信号に基づいて書込みデータのデータバッファ手段への格納が実行されることにより、読出しデータの格納時には第１のクロックに同期して動作するデータバッファ手段を、書込みデータの格納にそのまま流用することが可能となる。この結果、メモリ装置のハードウエア規模の増大を抑えることが可能となる。
【０１８９】
　加えて、本発明の第２の態様において、外部に簡単なタイミング信号生成手段を設けるだけで、書込みデータバッファ手段を１種類のクロックのみによって動作する汎用のデータレジスタファイルで構成することが可能となる。
【０１９０】
　本発明の第３の態様によれば、例えば、メモリ装置がシングルクロックモードで動作する場合において、１組の読出しデータバッファ手段内からの読出しデータの読出しが完了するまでの期間内に、新たな複数個の読出し命令がメモリ装置に入力しそれらによってメモリ群が起動され新たな読出しデータの組が読み出されても、それらを他の複数組の読出しデータバッファ手段に順次格納することができ、読出しデータの欠落を防止することが可能となる。
【０１９１】
　この場合、メモリ装置がノーマルクロックモード及びシングルクロックモードの何れの状態で動作する場合であっても、読出し命令はメモリ装置内で遅延されることなくメモリ群を起動させる。即ち、本発明の第３の態様では、ノーマルクロックモードとシングルクロックモードとでメモリ装置内の動作が全く同じであるため、シングルクロックモードを使用してノーマルクロックモード時に発生したメモリ装置の障害の解析を容易に行うことが可能となる。
【図面の簡単な説明】
【０１９２】
【図１】本発明のブロック図（その１）である。
【図２】本発明のブロック図（その２）である。
【図３】本発明のブロック図（その３）である。
【図４】第１の実施例の構成図である。
【図５】第２の実施例の構成図である。
【図６】ノーマルクロックモード時における第２の実施例の動作タイミングチャートである。
【図７】シングルクロックモード時における第２の実施例の動作タイミングチャートである。
【図８】第３の実施例の構成図である。
【図９】第３の実施例の動作タイミングチャートである。
【図１０】第４の実施例の構成図である。
【図１１】ＦＣＬＫトリガ回路の動作タイミングチャートである。
【図１２】第５の実施例の構成図である。
【図１３】第６の実施例の構成図である。
【図１４】第６の実施例の動作タイミングチャートである。
【図１５】第１の従来技術の説明図である。
【図１６】第２の従来技術の説明図である。
【図１７】第２の従来技術のシングルクロックモード時における動作タイミングチャートである。
【図１８】第３の従来技術の説明図である。
【図１９】第３の従来技術の動作タイミングチャートである。
【符号の説明】
【０１９３】
　１０１　　　メモリ群
　２０１　　　メモリ群
　２０２　　　書込みデータバッファ手段
　２０３　　　書込みデータ格納制御手段
　２０４　　　書込みデータ読出し制御手段
　２０５　　　書込みデータ
　２０６　　　第１のクロック
　２０７　　　第２のクロック
　３０１　　　メモリ群
　３０２　　　読出しデータバッファ手段
　３０３　　　読出しデータ格納制御手段
　３０４　　　読出しデータ読出し制御手段
　３０５　　　読出しデータ
　３０６　　　第１のクロック
　３０７　　　第２のクロック
【図１】
2004110846.tif 000003
【図２】
2004110846.tif 000004
【図３】
2004110846.tif 000005
【図４】
2004110846.tif 000006
【図５】
2004110846.tif 000007
【図６】
2004110846.tif 000008
【図７】
2004110846.tif 000009
【図８】
2004110846.tif 000010
【図９】
2004110846.tif 000011
【図１０】
2004110846.tif 000012
【図１１】
2004110846.tif 000013
【図１２】
2004110846.tif 000014
【図１３】
2004110846.tif 000015
【図１４】
2004110846.tif 000016
【図１５】
2004110846.tif 000017
【図１６】
2004110846.tif 000018
【図１７】
2004110846.tif 000019
【図１８】
2004110846.tif 000020
【図１９】
2004110846.tif 000021