(57)【特許請求の範囲】
【請求項１】
制御バスとデータバスとを含むメモリバスと、
前記メモリバスに接続され、識別子保持用レジスタを備えた複数のメモリユニットと、
前記メモリバスに接続され、初期化時に前記複数のメモリユニットの前記識別子保持用レジスタに対してそれぞれ複数のユニークな識別子を格納し、クロック信号に応じて、前記制御バスを介して前記複数のメモリユニットの各々に命令を出力するタイミング制御回路を備えたメモリコントローラとを具備し、
前記タイミング制御回路は、
前記複数のメモリユニットのうちの１つのメモリユニットにリード命令、ライト命令、リフレッシュ命令のいずれかを実行させるための要求を外部から受け取り、前記要求を表すアクティブコマンドと、前記リード命令、前記ライト命令、前記リフレッシュ命令のいずれかを表す実行コマンドとを含む命令を発行し、
前記クロック信号として第１クロック信号に応じて、前記命令の前記アクティブコマンドを前記制御バスに出力し、前記クロック信号として前記第１クロック信号の次の第２クロック信号に応じて、前記命令の前記実行コマンドを前記制御バスに出力し、
前記アクティブコマンドと前記実行コマンドは、前記１つのメモリユニットに割り当てられた識別子を含み、
前記複数のメモリユニットの各々は、更に、
メモリチップと、
前記メモリチップに規定された時間として、前記アクティブコマンドを実行する時間と前記実行コマンドを実行する時間との間に挿入するためのウェイト時間が記憶されたＲＯＭと、
メモリコントローラからの前記命令を格納する命令保持用レジスタと、
前記命令の前記アクティブコマンド、前記実行コマンドに含まれる前記識別子と、前記識別子保持用レジスタに格納された前記ユニークな識別子とを比較する比較器と、
前記命令の前記アクティブコマンド、前記実行コマンドに含まれる前記識別子と、前記識別子保持用レジスタに格納された前記ユニークな識別子とが一致する場合、前記クロック信号に応じて、チップセレクト信号をアクティブ状態にして前記メモリチップに出力する制御回路とを備え、
前記制御回路は、
前記命令の前記アクティブコマンドを実行し、
前記命令の前記アクティブコマンドを実行した後、前記ＲＯＭに記憶された前記ウェイト時間の経過を待ち、
前記ウェイト時間が経過した後、前記チップセレクト信号がアクティブ状態であるときに、前記命令の前記実行コマンドを実行し、前記メモリチップに対するデータの読み出し／書き込みを前記データバスを介して前記メモリコントローラと行ない、
前記メモリコントローラは、更に、
前記データバスに対してバス調停を行なうための、カウンタ及び要求保持用レジスタを備え、
前記タイミング制御回路は、
第１データ長を含む第１要求を前記要求として受け取った場合、前記第１データ長を表す第１値（前記第１値は２以上の整数）を前記カウンタに格納し、前記第１要求により第１命令を前記命令として発行し、前記クロック信号に応答して前記制御バスに出力し、
前記クロック信号に応答して、前記カウンタに格納された前記第１値から１を減算し、
前記カウンタに格納された前記第１値が０ではないときに、第２データ長を含む第２要求を前記要求として受け取った場合、前記第２データ長を表す第２値（前記第２値は２以上の整数）を前記カウンタに更に格納し、前記第１要求によって前記データバスを占有する第１占有期間と、前記第２要求によって前記データバスを占有する第２占有期間とが重複すると判断して、前記第２要求を前記要求保持用レジスタに格納し、
前記カウンタに格納された前記第１値が０であるとき、前記第２要求を前記要求保持用レジスタから読み出し、前記第２要求により第２命令を前記命令として発行し、前記クロック信号に応答して前記制御バスに出力する
メモリ装置。
【請求項２】
請求項１に記載のメモリ装置において、
前記命令が前記リード命令を表す場合、
前記複数のメモリユニットの各々の前記制御回路は、前記リード命令の前記アクティブコマンドに含まれる前記識別子と、前記識別子保持用レジスタに格納された前記ユニークな識別子とが一致する場合、前記リード命令の前記実行コマンドにより、前記メモリチップから、データを読み出し、前記データバスを介して前記メモリコントローラに出力する
メモリ装置。
【請求項３】
請求項１に記載のメモリ装置において、
前記命令が前記ライト命令を表す場合、
前記複数のメモリユニットの各々の前記制御回路は、前記ライト命令の前記アクティブコマンドに含まれる前記識別子と、前記識別子保持用レジスタに格納された前記ユニークな識別子とが一致する場合、前記ライト命令の前記実行コマンドにより、前記メモリコントローラが前記データバスに出力したデータを前記メモリチップに書込む
メモリ装置。
【請求項４】
請求項１に記載のメモリ装置において、
前記命令が前記リフレッシュ命令を表す場合、
前記複数のメモリユニットの各々の前記制御回路は、前記リフレッシュ命令の前記アクティブコマンドに含まれる前記識別子と、前記識別子保持用レジスタに格納された前記ユニークな識別子とが一致する場合、前記リフレッシュ命令の前記実行コマンドにより、前記メモリチップのリフレッシュ動作として、前記メモリチップに対するデータの読み出し／書き込みを前記データバスを介して前記メモリコントローラと行なう
メモリ装置。
【請求項５】
請求項１〜４のいずれか一項に記載のメモリ装置において、
前記複数のメモリユニットは、デュアルインラインメモリモジュール（ＤＩＭＭ）である
メモリ装置。
【請求項６】
システムバスと、
前記システムバスに接続された、前記請求項１〜５のいずれか一項に記載のメモリ装置と、
前記システムバスに接続され、前記要求を前記メモリ装置に送信するＣＰＵと
を具備するコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ装置に関し、特にデータバスと制御信号バスとを使用してメモリアクセスを行うメモリ装置に関する。
【０００２】
【従来の技術】
通常、メモリコントローラには複数のデュアルインラインメモリモジュール（ＤＩＭＭ）が接続されている。データバスと制御信号バスは、メモリコントローラと各ＤＩＭＭとにバス配線されている。また、メモリコントローラからチップセレクト信号線を各ＤＩＭＭに個別に配線／接続することにより、メモリコントローラは、各ＤＩＭＭの中から必要とするＤＩＭＭを選択し、メモリアクセスを行っている。
【０００３】
図１０は、従来のメモリ装置の構成を示すブロック図である。従来のメモリ装置は、メモリコントローラ４１０、複数のＤＩＭＭ５１１ａ〜５１１ｄ、メモリバス、複数のチップセレクト信号線５０３ａ〜５０３ｄを具備する。メモリバスは、データバス５０１、制御信号バス５０２を含む。ＤＩＭＭ５１１ａ〜５１１ｄは、基板に実装されている。メモリコントローラ４１０は、データバス５０１と制御信号バス５０２とに接続されている。ＤＩＭＭ５１１ａ〜５１１ｄは、データバス５０１と制御信号バス５０２とに接続されている。
【０００４】
データバス５０１は、メモリコントローラ４１０とＤＩＭＭ５１１ａ〜５１１ｄとがデータの入出力（メモリアクセス）を行うためのバスである。データの入力が行われるとき、そのデータは、メモリチップ４１２に書き込むための書き込みデータであり、データの出力が行われるとき、そのデータは、メモリチップ４１２から読み出すための読出しデータである。制御信号バス５０２は、メモリコントローラ４１０がＤＩＭＭ５１１ａ〜５１１ｄに制御信号を出力するためのバスである。制御信号は、メモリチップ４１２を制御するための信号である。
【０００５】
メモリコントローラ４１０は、チップセレクト信号線５０３ａ〜５０３ｄに接続されている。ＤＩＭＭ５１１ａ〜５１１ｄ内のレジスタ４１３は、チップセレクト信号線５０３ａ〜５０３ｄに接続されている。即ち、チップセレクト信号線５０３ａ〜５０３ｄは、メモリコントローラ４１０からＤＩＭＭ５１１ａ〜５１１ｄのレジスタ４１３に引き回して配線されている（メモリコントローラ４１０とＤＩＭＭ５１１ａ〜５１１ｄのレジスタ４１３とに１対１で配線されている）。
【０００６】
ＤＩＭＭ５１１ａ〜５１１ｄは、複数のメモリチップ（例示：ＤＲＡＭ）４１２、レジスタ４１３、ＤＩＭＭ内制御信号バス５０４、チップセレクト信号線５０５を具備する。メモリチップ４１２、レジスタ４１３は、ＤＩＭＭ５１１ａ〜５１１ｄに搭載されている。ＤＩＭＭ５１１ａ〜５１１ｄ内のレジスタ４１３は、データバス５０１と制御信号バス５０２とに接続され、ＤＩＭＭ内制御信号バス５０４とチップセレクト信号線５０５とに接続されている。ＤＩＭＭ５１１ａ〜５１１ｄ内のメモリチップ４１２は、データバス５０１に接続され、ＤＩＭＭ内制御信号バス５０４とチップセレクト信号線５０５とに接続されている。ここで、ＤＩＭＭ５１１ａ、５１１ｂ、５１１ｃ、５１１ｄのＤＩＭＭ内制御信号バス５０４を、ＤＩＭＭ５１１ａ内制御信号バス５０４、ＤＩＭＭ５１１ｂ内制御信号バス５０４、ＤＩＭＭ５１１ｃ内制御信号バス５０４、ＤＩＭＭ５１１ｄ内制御信号バス５０４と表記して説明する。
【０００７】
また、ＤＩＭＭ５１１ａ〜５１１ｄには、ＳＰＤ（Ｓｅｒｉａｌ  Ｐｒｅｓｅｎｃｅ  Ｄｅｔｅｃｔ）と呼ばれるＲＯＭ（図示していない）が搭載され、ＤＩＭＭ５１１ａ〜５１１ｄ内のＲＯＭは、データバス５０１に接続されている。ＤＩＭＭ１１ａ〜１１ｄのＲＯＭには、ＤＩＭＭ５１１ａ〜５１１ｄ内のメモリチップ４１２により規定された時間が書き込まれている。メモリチップ４１２により規定された時間とは、アクティブコマンドを実行する時間とリードコマンド／ライトコマンドを実行する時間との間に挿入しなければならない待ち時間（ウェイト時間）のことである。
【０００８】
ここで、リードコマンドは、メモリコントローラ４１０がメモリチップ４１２からデータの読出しを実行するための要求／命令である。ライトコマンドは、メモリコントローラ４１０がメモリチップ４１２にデータの書き込みを実行するための要求／命令である。アクティブコマンドは、メモリコントローラ４１０がリードコマンド、ライトコマンドを実行するときの要求／命令である。ウェイト時間は、メモリチップ４１２の種類毎に異なり、クロック数で規定される。この例では、ウェイト時間を１クロックとする。メモリコントローラ４１０、ＤＩＭＭ５１１ａ〜５１１ｄのレジスタ４１３は、初期化のとき、ＤＩＭＭ５１１ａ〜５１１ｄ内のＲＯＭからウェイト時間を読出して認識する。
【０００９】
メモリコントローラ４１０は、予めに、ＤＩＭＭ５１１ａ〜５１１ｄのメモリチップ４１２のアドレスを認識している。ここで、メモリコントローラ４１０に接続された外部機器としてＣＰＵが挙げられる。ＣＰＵは、個別のＤＩＭＭ５１１ａ〜５１１ｄの容量に関する情報を認識しておらず、ＤＩＭＭ５１１ａ〜５１１ｄの容量を合計した合計容量に関する情報しか認識していない。一方、メモリコントローラ４１０は、個別のＤＩＭＭ５１１ａ〜５１１ｄの容量に関する情報を認識している。そのため、リードの場合｛メモリチップ４１２からデータ（読出しデータ）を読出す場合｝、ＣＰＵは、クロック信号に応答して、メモリチップ４１２が有するアドレスをメモリコントローラ４１０に出力する。
【００１０】
まず、第１時刻において、メモリコントローラ４１０は、ＣＰＵからのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ５１１ａとする）を判断してアクティブコマンドを発行し、アクティブコマンドに、そのアドレスと制御信号とを設定する。この場合、制御信号は、メモリチップ４１２からデータを読出すための信号である。アクティブコマンドに設定されたアドレスは、ＤＩＭＭ５１１ａ〜５１１ｄのうちのＤＩＭＭ５１１ａのメモリチップ４１２のアドレスである。このため、メモリコントローラ４１０は、チップセレクト信号線５０３ａ〜５０３ｄのうちのチップセレクト信号線５０３ａに、チップセレクト信号をアクティブ状態にして出力する。そのチップセレクト信号がアクティブ状態であるとき、メモリコントローラ４１０は、外部からのクロック信号に応答して、アクティブコマンドを制御信号バス５０２に出力する。
【００１１】
次に、第１時刻から１クロック後の第２時刻において、ＤＩＭＭ５１１ａ内のレジスタ４１３は、メモリコントローラ４１０からのアクティブコマンドに設定されたアドレスによって、ＤＩＭＭ５１１ａ内のチップセレクト信号線５０５に、チップセレクト信号を１クロック間アクティブ状態にして出力する。このとき、ＤＩＭＭ５１１ａ内のレジスタ４１３は、ＤＩＭＭ５１１ａ内のメモリチップ４１２に、ＤＩＭＭ５１１ａ内制御信号バス５０４を介して、アクティブコマンドに設定された制御信号とアドレスとを出力する。この第２時刻において、メモリコントローラ４１０は、アクティブコマンドを発行してから、リードコマンドを発行するまでの１クロックの間に、ウェイト時間を挿入する。
【００１２】
次に、挿入されたウェイト時間が経過した第３時刻において、メモリコントローラ４１０は、ＣＰＵからのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ５１１ａとする）を判断してリードコマンドを発行し、リードコマンドに、そのアドレスと制御信号とを設定する。この場合、制御信号は、メモリチップ１２からデータを読出すための信号である。リードコマンドに設定されたアドレスは、ＤＩＭＭ５１１ａ〜５１１ｄのうちのＤＩＭＭ５１１ａのメモリチップ４１２のアドレスである。このため、メモリコントローラ４１０は、第１時刻から引き続いて、チップセレクト信号線５０３ａ〜５０３ｄのうちのチップセレクト信号線５０３ａに、チップセレクト信号をアクティブ状態にして出力している。そのチップセレクト信号がアクティブ状態であるため、メモリコントローラ４１０は、外部からのクロック信号に応答して、リードコマンドを制御信号バス５０２に出力する。
【００１３】
次に、第３時刻から１クロック後の第４時刻において、ＤＩＭＭ５１１ａ内のレジスタ４１３は、メモリコントローラ４１０からのリードコマンドに設定されたアドレスによって、ＤＩＭＭ５１１ａ内のチップセレクト信号線５０５に、チップセレクト信号を１クロック間アクティブ状態にして出力する。このとき、ＤＩＭＭ５１１ａ内のレジスタ４１３は、ＤＩＭＭ５１１ａ内のメモリチップ４１２に、ＤＩＭＭ５１１ａ内制御信号バス５０４を介して、リードコマンドに設定された制御信号とアドレスとを出力する。ＤＩＭＭ５１１ａ内のメモリチップ４１２にはリードコマンドに設定された制御信号が入力される。
【００１４】
メモリチップ４１２により規定された時間（第４時刻後の１クロック）が経過した後、第５時刻〜第８時刻において、リードコマンドに設定された制御信号により、ＤＩＭＭ５１１ａ内のメモリチップ４１２から、データ（読出しデータ）が読み出される。ＤＩＭＭ５１１ａ内のメモリチップ４１２から読み出された読出しデータは、外部からのクロック信号に応答して、データ信号としてデータバス５０１を介してメモリコントローラ４１０に出力される。メモリコントローラ４１０は、ＣＰＵに読出しデータを出力し、ＣＰＵは、その読出しデータを実行する。
【００１５】
【発明が解決しようとする課題】
従来のメモリ装置は、アクティブコマンドを発行してから、リードコマンドを発行するまでの１クロックの間に、ウェイト時間を挿入しなければならない。このため、メモリコントローラ４１０がチップセレクト信号線５０３ａにチップセレクト信号をアクティブ状態にして出力している間、アクティブコマンドを実行する時間とウェイト時間とリードコマンドを実行する時間とが経過するまで、制御信号バス５０２は、メモリコントローラ４１０がＤＩＭＭ５１１ａにメモリアクセスを行うことによって占有されてしまう。従って、これらの時間が経過するまで、メモリコントローラ４１０は、ＤＩＭＭ５１１ｂ〜５１１ｄに対して制御信号バス５０２を使用することができない。このように、従来のメモリ装置では、制御信号バス５０２の使用効率が悪い。
【００１６】
また、従来のメモリ装置は、アクティブコマンドを発行してから、リードコマンドを発行するまでの１クロックの間に、ウェイト時間を挿入しなければならないため、メモリアクセスを行う際（ＤＩＭＭ５１１ａ〜５１１ｄのメモリチップ４１２からデータを読み出す際／ＤＩＭＭ５１１ａ〜５１１ｄのメモリチップ４１２にデータを書き込む際）、挿入されたウェイト時間に相当する時間だけ遅れるため、高速化が実現できない。このため、従来のメモリ装置は、データバス５０１の使用効率も悪くなってしまい、バスの理論帯域と比較して実効帯域は低いものとなってしまう。
【００１７】
また、従来のメモリ装置では、チップセレクト信号線５０３ａ〜５０３ｄを、メモリコントローラ４１０からＤＩＭＭ５１１ａ〜５１１ｄのレジスタ４１３の入力側に引き回して配線している。例えば、Ｎ個（Ｎは２以上の正数）のＤＩＭＭを基板に実装する場合、そのＤＩＭＭの個数に比例してチップセレクト信号線も比例して増加するため、Ｎ本のチップセレクト信号線をメモリコントローラ４１０からＮ個のＤＩＭＭに配線する（引き回す）ことが困難である。このため、従来のメモリ装置では、配線収容性が悪く、基板上でのチップセレクト信号線の引き回しが大きな問題となる。
【００１８】
また、上述のように、チップセレクト信号線５０３ａ〜５０３ｄはメモリコントローラ４１０とＤＩＭＭ５１１ａ〜５１１ｄのレジスタ４１３とに１対１で配線されているため、従来のメモリ装置では、ＤＩＭＭの実装枚数を基板上のＤＩＭＭスロットの数以上に増やすことが困難である。そのため、ＤＩＭＭスロットを使い切ってしまったコンピュータにメモリを増設する場合は、今まで使用していたＤＩＭＭを取り外す必要があり、ＤＩＭＭを有効に利用することができない。
【００１９】
本発明の目的は、バスの使用効率が向上するメモリ装置を提供することにある。
【００２０】
本発明の他の目的は、メモリアクセスの高速化を実現するメモリ装置を提供することにある。
【００２１】
本発明の更に他の目的は、配線収容性が向上するメモリ装置を提供することにある。
【００２２】
本発明の更に他の目的は、ＤＩＭＭの実装枚数を容易に増加させることができるメモリ装置を提供することにある。
【００２３】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２４】
本発明のメモリ装置（１００）は、メモリバスと、メモリバスに接続された複数のメモリユニット（１１ａ〜１１ｄ）と、メモリコントローラ（１０）とを具備する。メモリバスは、制御バス（１０２）とデータバス（１０１）とを含む。制御バス（１０２）は、実施の形態で説明される制御信号バスである。複数のメモリユニット（１１ａ〜１１ｄ）としては、実施の形態で説明されるデュアルインラインメモリモジュール（ＤＩＭＭ）が例示される。この複数のメモリユニット（１１ａ〜１１ｄ）の各々はユニークな識別子を有する。ユニークな識別子は、実施の形態で説明される第１識別番号に対応する。メモリコントローラ（１０）は、制御バス（１０２）を介して複数のメモリユニット（１１ａ〜１１ｄ）の各々に命令を出力する。その命令は、識別子を含む。命令に含まれる識別子は、実施の形態で説明される第２識別番号に対応する。複数のメモリユニット（１１ａ〜１１ｄ）の各々は、自己の保持する識別子（第１識別番号）と一致する識別子（第２識別番号）を含む命令を実行する。メモリアクセスを行うとき、メモリコントローラ（１０）は、アクティブコマンドを発行してからリード／ライト／リフレッシュコマンドを発行するまでの間（例示：１クロックの間）にウェイト時間を挿入することなく、識別子（第２識別番号）を含む命令（アクティブコマンド、リード／ライト／リフレッシュコマンド）を、制御バス（１０２）を介して複数のメモリユニット（１１ａ〜１１ｄ）の各々に出力する。これによって、メモリ装置（１００）によれば、メモリコントローラ（１０）が複数のメモリユニット（１１ａ〜１１ｄ）に対して制御バス（１０２）を常時使用することができ、制御信号バス１０２の使用効率が向上する。
【００２５】
メモリアクセスを行うときに複数のメモリユニット（１１ａ〜１１ｄ）のうちの１つのメモリユニットによって制御バス（１０２）が占有されないように、メモリコントローラ（１０）は、初期化時に複数のメモリユニット（１１ａ〜１１ｄ）の各々にユニークな識別子（第１識別番号）を割当てる。複数のメモリユニット（１１ａ〜１１ｄ）の各々は、割当てられた識別子（第１識別番号）を保持する。
【００２６】
メモリ装置（１００）によれば、メモリコントローラ（１０）は、第１命令を制御バス（１０２）に出力した後、第１命令の実行の完了前に第２命令を制御バス（１０２）に出力することができる。これにより、メモリ装置（１００）によれば、メモリコントローラ（１０）がメモリアクセスを行うとき、従来のメモリ装置よりも速くアクセスすることができ、高速化が実現できる。このように、メモリ装置（１００）によれば、制御信号バス（１０２）の使用効率の向上に加え、データバス（１０１）の使用効率も向上する。
【００２７】
メモリコントローラ（１０）は、外部からの第１要求に応じて第１命令を制御バス（１０２）に出力し、外部からの第２要求に応じて第２命令を制御バス（１０２）に出力する。この場合、メモリコントローラ（１０）は、例えば、第１要求によってデータバス（１０１）を占有する第１占有期間と、第２要求によってデータバス（１０１）を占有する第２占有期間とが重複してしまうと判断する。このとき、メモリコントローラ（１０）は、所定時間の経過後に第２命令を制御バス（１０２）に出力する。これにより、メモリ装置（１００）によれば、第１占有期間と第２占有期間との重複を回避することができる。
【００２８】
ここで、上述の命令は、リード命令であり、アドレスを更に含む。複数のメモリユニット（１１ａ〜１１ｄ）の各々は、自己の保持する識別子（第１識別番号）と一致する識別子（第２識別番号）を含むリード命令により、アドレスから、データを読み出す。
【００２９】
また、上述の命令は、ライト命令であり、アドレスを更に含む。複数のメモリユニット（１１ａ〜１１ｄ）の各々は、自己の保持する識別子（第１識別番号）と一致する識別子（第２識別番号）を含むライト命令により、アドレスにデータを書込む。
【００３０】
また、上述の命令は、リフレッシュ命令であり、アドレスを更に含む。複数のメモリユニット（１１ａ〜１１ｄ）の各々は、自己の保持する識別子（第１識別番号）と一致する識別子（第２識別番号）を含むリフレッシュ命令により、アドレスに対するメモリエリアのリフレッシュ動作を行う。
【００３１】
複数のメモリユニット（１１ａ〜１１ｄ）の各々は、複数のメモリチップ（１２）と、メモリコントローラ（１０）からの命令を保持するレジスタ（２２）とを有する。自己の保持する識別子（第１識別番号）と命令に含まれる識別子（第２識別番号）とが一致したとき、レジスタ（２２）は、保持された命令を複数のメモリチップ（１２）に出力する。
【００３２】
複数のメモリユニット（１１ａ〜１１ｄ）の各々は、チップセレクト信号制御回路（２５）を更に有する。チップセレクト信号制御回路（２５）は、自己の保持する識別子（第１識別番号）と命令に含まれる識別子（第２識別番号）とが一致したときにチップセレクト信号をアクティブ状態にして複数のメモリチップ（１２）に出力する。チップセレクト信号がアクティブ状態のとき、レジスタ（２２）は、保持された命令を複数のメモリチップ（１２）に出力する。
【００３３】
メモリコントローラ（１０）は、外部から入力される指示に応答して命令を出力する。外部から入力される指示としては、実施の形態で説明されるクロック信号が例示される。
【００３４】
本発明のコンピュータシステムは、システムバスと、システムバスに接続されたＣＰＵ（１）と、システムバスに接続された、上述のメモリ装置（１００）とを具備する。
【００３５】
また、本発明のコンピュータシステムは、システムバスに接続されたＣＰＵ制御回路（２）を更に具備する。システムバスは、ＣＰＵ制御バス（９１）、メモリ制御バス（９３）を含み、ＣＰＵ制御回路（２）は、ＣＰＵ制御バス（９１）を介してＣＰＵ（１）に接続され、メモリ制御バス（９３）を介してメモリ装置（１００）に接続されている。
【００３６】
また、本発明のコンピュータシステムは、システムバスに接続されたＩ／Ｏ制御回路（３）と、複数のＰＣＩバス（５ａ〜５ｄ）と、各種Ｉ／Ｏ（６）と、ＢＩＯＳ（７）とを更に具備する。システムバスは、Ｉ／Ｏ制御バス（９２）を更に含む。ＣＰＵ制御回路（２）は、Ｉ／Ｏ制御バス（９２）を介してＩ／Ｏ制御回路（３）に接続されている。Ｉ／Ｏ制御回路（３）は、複数のＰＣＩバス（５ａ〜５ｄ）と、各種Ｉ／Ｏ（６）と、ＢＩＯＳ（７）とに接続されている。各種Ｉ／Ｏ（６）としては、磁気ディスク装置と接続するためのインターフェースやＲＳ２３２Ｃが例示される。ＢＩＯＳ（７）には、ＣＰＵ（１）の初期化プログラムが書き込まれている。
【００３７】
また、本発明のコンピュータシステムは、リセット回路（４）と、クロック発生回路（８）とを更に具備する。クロック発生回路（８）は、ＣＰＵ（１）と、ＣＰＵ制御回路（２）と、Ｉ／Ｏ制御回路（３）と、リセット回路（４）と、メモリ装置（１００）とに接続されている。クロック発生回路（８）は、一定周期のクロック信号を発生して、所定の動作を実行するための指示として、そのクロック信号をＣＰＵ（１）、ＣＰＵ制御回路（２）、Ｉ／Ｏ制御回路（３）、リセット回路（４）、メモリ装置（１００）に出力する。リセット回路（４）は、ＣＰＵ（１）と、ＣＰＵ制御回路（２）と、Ｉ／Ｏ制御回路（３）と、メモリ装置（１００）とに接続されている。電源投入時に、リセット回路（４）は、クロック信号に応答してリセット信号（９４）をＣＰＵ（１）と、ＣＰＵ制御回路（２）と、Ｉ／Ｏ制御回路（３）と、メモリ装置（１００）とに出力し、ＣＰＵ（１）とＣＰＵ制御回路（２）とＩ／Ｏ制御回路（３）とメモリ装置（１００）とを初期化させる。ＣＰＵ（１）、Ｉ／Ｏ制御回路（３）は、ＣＰＵ制御回路（２）を介して、要求（第１要求、第２要求）をメモリ装置（１００）に出力する。メモリ装置（１００）のメモリコントローラ（１０）は、ＣＰＵ制御回路（２）からの要求（第１要求、第２要求）に応じて命令（第１命令、第２命令）を発行し、クロック信号に応答して、その命令を制御バス（１０２）に出力する。
【００３８】
【発明の実施の形態】
添付図面を参照して、本発明によるメモリ装置の実施の形態を以下に説明する。本発明のメモリ装置１００は、図１に示されるようなコンピュータシステムで実施される。コンピュータシステムは、ＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、リセット回路４、複数のＰＣＩバス５ａ〜５ｄ、各種Ｉ／Ｏ６、ＢＩＯＳ７、クロック発生回路８、メモリ装置１００、システムバスを具備する。システムバスは、ＣＰＵ制御バス９１、Ｉ／Ｏ制御バス９２、メモリ制御バス９３を含む。
【００３９】
ＣＰＵ制御回路２は、ＣＰＵ制御バス９１を介してＣＰＵ１に接続され、Ｉ／Ｏ制御バス９２を介してＩ／Ｏ制御回路３に接続され、メモリ制御バス９３を介してメモリ装置１００に接続されている。Ｉ／Ｏ制御回路３は、複数のＰＣＩバス５ａ〜５ｄ、各種Ｉ／Ｏ６、ＢＩＯＳ７に接続されている。各種Ｉ／Ｏ６としては、磁気ディスク装置と接続するためのインターフェースやＲＳ２３２Ｃが例示される。ＢＩＯＳ７には、ＣＰＵ１の初期化プログラムが書き込まれている。リセット回路４は、ＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、メモリ装置１００に接続されている。クロック発生回路８は、ＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、リセット回路４、メモリ装置１００に接続されている。クロック発生回路８は、一定周期のクロック信号を発生して、所定の動作を実行するための指示として、そのクロック信号をＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、リセット回路４、メモリ装置１００に出力する。電源投入時に、リセット回路４は、クロック信号に応答してリセット信号９４をＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、メモリ装置１００に出力し、ＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、メモリ装置１００を初期化させる（システム初期化）。本実施例では、ＣＰＵ１、ＣＰＵ制御回路２、Ｉ／Ｏ制御回路３、リセット回路４、ＰＣＩバス５ａ〜５ｄ、各種Ｉ／Ｏ６、ＢＩＯＳ７の詳細な説明を省略する。
【００４０】
図２は、本発明のメモリ装置１００の構成を示すブロック図である。メモリ装置１００は、メモリコントローラ１０、メモリユニットであるＮ個（Ｎは２以上の正数）のデュアルインラインメモリモジュール（ＤＩＭＭ）、電源１５、メモリバス、（Ｎ＋１）本の識別番号信号線を具備する。Ｎ個のＤＩＭＭは、基板に実装されている。メモリバスは、データバス１０１、制御信号バス１０２を含む。本実施例では、Ｎを４とし、Ｎ個のＤＩＭＭをＤＩＭＭ１１ａ〜１１ｄ、（Ｎ＋１）本の識別番号信号線を識別番号信号線１０３ａ〜１０３ｅとして説明する。
【００４１】
メモリコントローラ１０は、上述のメモリ制御バス９３を介してＣＰＵ制御回路２に接続されている。メモリコントローラ１０は、リセット回路４に接続され、リセット回路４からのリセット信号９４を入力する。メモリコントローラ１０は、データバス１０１と制御信号バス１０２とに接続されている。ＤＩＭＭ１１ａ〜１１ｄは、データバス１０１と制御信号バス１０２とに接続されている。
【００４２】
メモリコントローラ１０には上述のクロック信号が入力され、メモリコントローラ１０は、そのクロック信号をＤＩＭＭ１１ａ〜１１ｄに制御信号バス１０２を介して出力する。データバス１０１は、メモリコントローラ１０とＤＩＭＭ１１ａ〜１１ｄとがデータの入出力（メモリアクセス）を行うためのバスである。データの入力が行われるとき、そのデータは、メモリチップ１２に書き込むための書込みデータであり、データの出力が行われるとき、そのデータは、メモリチップ１２から読み出すための読出しデータである。制御信号バス１０２は、メモリコントローラ１０がＤＩＭＭ１１ａ〜１１ｄに制御信号を出力するためのバスである。制御信号は、メモリチップ１２を制御するための信号である。
【００４３】
ＤＩＭＭ１１ａ〜１１ｄは、アドレスを有する複数のメモリチップ（例示：ＤＲＡＭ）１２、ＤＩＭＭコントローラ１３、ＤＩＭＭ内制御信号バス１０４、チップセレクト信号線１０５を具備する。メモリチップ１２、ＤＩＭＭコントローラ１３は、ＤＩＭＭ１１ａ〜１１ｄに搭載されている。ＤＩＭＭ１１ａ〜１１ｄ内のＤＩＭＭコントローラ１３は、データバス１０１と制御信号バス１０２とに接続され、ＤＩＭＭ内制御信号バス１０４とチップセレクト信号線１０５とに接続されている。ＤＩＭＭ１１ａ〜１１ｄ内のメモリチップ１２は、データバス１０１に接続され、ＤＩＭＭ内制御信号バス１０４とチップセレクト信号線１０５とに接続されている。ここで、ＤＩＭＭ１１ａ、１１ｂ、１１ｃ、１１ｄのＤＩＭＭ内制御信号バス１０４を、ＤＩＭＭ１１ａ内制御信号バス１０４、ＤＩＭＭ１１ｂ内制御信号バス１０４、ＤＩＭＭ１１ｃ内制御信号バス１０４、ＤＩＭＭ１１ｄ内制御信号バス１０４と表記して説明する。ＤＩＭＭ１１ａ〜１１ｄ内制御信号バス１０４は、メモリコントローラ１０からの制御信号をＤＩＭＭコントローラ１３が出力するためのバスである。チップセレクト信号線１０５は、ＤＩＭＭコントローラ１３がデータの入出力に必要な（アドレスに対応する）メモリチップ１２を選択するための信号線である。
【００４４】
ＤＩＭＭ１１ａ〜１１ｄ内のメモリチップ１２に接続されたデータバス１０１は、８ビット（種類によっては、４ビット、１６ビットの場合もある）であり、ＤＩＭＭ１１ａ〜１１ｄ内のメモリチップ１２に接続されたデータバス１０１は、７２ビットであるため、メモリチップ１２は、９個並べて使用される。ＤＩＭＭ１１ａ〜１１ｄのうちの１つのＤＩＭＭにメモリアクセスを行う場合、その１つのＤＩＭＭ内の９個のメモリチップ１２が同時にアクセスされる。
【００４５】
電源１５は、識別番号信号線１０３ａに接続されている。ＤＩＭＭ１１ａ内のＤＩＭＭコントローラ１３は、識別番号信号線１０３ａと識別番号信号線１０３ｂとに接続されている。ＤＩＭＭ１１ｂ内のＤＩＭＭコントローラ１３は、識別番号信号線１０３ｂと識別番号信号線１０３ｃとに接続されている。ＤＩＭＭ１１ｃ内のＤＩＭＭコントローラ１３は、識別番号信号線１０３ｃと識別番号信号線１０３ｄとに接続されている。ＤＩＭＭ１１ｄ内のＤＩＭＭコントローラ１３は、識別番号信号線１０３ｄと識別番号信号線１０３ｅとに接続されている。識別番号信号線１０３ａには、電源１５によって識別番号信号が流れる。この電源１５は、常時、識別番号信号をアクティブ状態にして識別番号信号線１０３ａを介してＤＩＭＭ１１ａ内のＤＩＭＭコントローラ１３に出力している。識別番号信号線１０３ｄ〜１０３ｅには、ＤＩＭＭ１１ａ〜１１ｄによって識別番号信号が流れる。
【００４６】
メモリコントローラ１０は、初期化のとき、識別番号設定コマンドによって、ＤＩＭＭ１１ａ〜１１ｄに重複しない第１識別番号（ユニークな第１識別番号）をＤＩＭＭ１１ａ〜１１ｄに制御信号バス１０２を介して割り振る（割当てる）。ＤＩＭＭ１１ａ〜１１ｄは、識別番号信号線１０３ａ、１０３ｂ、１０３ｃ、１０３ｄに流れる識別番号信号がアクティブ状態であり、識別番号信号線１０３ｂ、１０３ｃ、１０３ｄ、１０３ｅに流れる識別番号信号がインアクティブ状態であるときにメモリコントローラ１０によって割当てられた第１識別番号を保持する。ＤＩＭＭ１１ａ〜１１ｄは、第１識別番号を保持した後、識別番号信号線１０３ｂ、１０３ｃ、１０３ｄ、１０３ｅに流れる識別番号信号をアクティブ状態にする。
【００４７】
メモリコントローラ１０は、予めに、ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２のアドレスを認識している。また、ＤＩＭＭ１１ａ〜１１ｄには、ＳＰＤ（Ｓｅｒｉａｌ  Ｐｒｅｓｅｎｃｅ  Ｄｅｔｅｃｔ）と呼ばれるＲＯＭ（図示していない）が搭載され、ＤＩＭＭ１１ａ〜１１ｄのＲＯＭは、データバス１０１に接続されている。ＤＩＭＭ１１ａ〜１１ｄ内のＲＯＭには、ＤＩＭＭ１１ａ〜１１ｄ内のメモリチップ１２により規定された時間が書き込まれている。メモリチップ１２により規定された時間とは、アクティブコマンドを実行する時間とリードコマンド／ライトコマンドを実行する時間との間に挿入しなければならない待ち時間（ウェイト時間）のことである。
【００４８】
ここで、リードコマンドは、メモリコントローラ１０がメモリチップ１２からデータの読出しを実行するための要求／命令である。ライトコマンドは、メモリコントローラ１０がメモリチップ１２にデータの書き込みを実行するための要求／命令である。アクティブコマンドは、メモリコントローラ１０がリードコマンド／ライトコマンドを実行するときの要求／命令である。ウェイト時間は、メモリチップ１２の種類毎に異なり、クロック数で規定される。本実施例では、ウェイト時間を１クロックとする。メモリコントローラ１０、ＤＩＭＭ１１ａ〜１１ｄのＤＩＭＭコントローラ１３は、初期化のとき、ＤＩＭＭ１１ａ〜１１ｄ内のＲＯＭからウェイト時間を読出して認識する。
【００４９】
また、ＣＰＵ１及びＩ／Ｏ制御回路３は、個別のＤＩＭＭ１１ａ〜１１ｄの容量に関する情報を認識しておらず、ＤＩＭＭ１１ａ〜１１ｄの容量を合計した合計容量に関する情報しか認識していない。一方、メモリコントローラ１０は、個別のＤＩＭＭ１１ａ〜１１ｄの容量に関する情報を認識している。
【００５０】
そのため、リードの場合｛メモリチップ１２からデータ（読出しデータ）を読出す場合｝、ＣＰＵ１（又はＩ／Ｏ制御回路３）は、クロック信号に応答して、メモリチップ１２が有するアドレスを含むリード要求を、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力する。この場合、メモリコントローラ１０は、ＣＰＵ１（又はＩ／Ｏ制御回路３）からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａとする）を判断してアクティブコマンド、リードコマンドを発行し、アクティブコマンド、リードコマンドに、そのアドレスと制御信号とを設定する。制御信号には、メモリチップ１２からデータを読出すためのデータ長がメモリコントローラ１０によって指定される。メモリコントローラ１０は、リード命令（アクティブコマンド、リードコマンド）を出力するときに、アクティブコマンド、リードコマンドに設定された制御信号に第２識別番号を付与する（含める）。メモリコントローラ１０は、クロック信号に応答して、リード命令を（アクティブコマンド、リードコマンドを順に）制御信号バス１０２に出力する。ＤＩＭＭ１１ａは、自己の保持する第１識別番号と一致する第２識別番号を含むリード命令（アクティブコマンド、リードコマンド）を実行する。このＤＩＭＭ１１ａは、そのリード命令により、ＤＩＭＭ１１ａ内のアドレス（メモリチップ１２）からデータを読出し、データバス１０１を介してメモリコントローラ１０に出力する。メモリコントローラ１０は、ＣＰＵ制御回路２を介してＣＰＵ１に読出しデータ（読み出されたデータ）を出力し、ＣＰＵ１は、その読出しデータを実行する。
【００５１】
また、ライトの場合｛メモリチップ１２にデータ（書込みデータ）を書き込む場合｝、ＣＰＵ１（又はＩ／Ｏ制御回路３）は、クロック信号に応答して、メモリチップ１２が有するアドレスとそのデータとを含むライト要求を、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力する。この場合、メモリコントローラ１０は、ＣＰＵ１（又はＩ／Ｏ制御回路３）からのライト要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａとする）を判断してアクティブコマンド、ライトコマンドを発行し、アクティブコマンド、ライトコマンドに、そのアドレスと制御信号とを設定する。制御信号には、メモリチップ１２にデータを書き込むためのデータ長がメモリコントローラ１０によって指定される。メモリコントローラ１０は、ライト命令（アクティブコマンド、ライトコマンド）を出力するときに、アクティブコマンド、ライトコマンドに設定された制御信号に第２識別番号を付与する（含める）。メモリコントローラ１０は、クロック信号に応答して、ライト命令を（アクティブコマンド、ライトコマンドを順に）制御信号バス１０２に出力する。メモリコントローラ１０は、メモリチップ１２により規定された時間だけ待ってから、クロック信号に応答して、データ（書込みデータ）をデータバス１０１に出力する。ＤＩＭＭ１１ａは、自己の保持する第１識別番号と一致する第２識別番号を含むライト命令（アクティブコマンド、ライトコマンド）を実行する。このＤＩＭＭ１１ａは、そのライト命令により、そのアドレス（メモリチップ１２）に書込みデータを書き込む。メモリコントローラ１０は、そのデータをデータバス１０１に出力することにより、そのアドレス（メモリチップ１２）に書込みデータが書き込まれたことを表わす応答信号を、ＣＰＵ制御回路２を介してＣＰＵ１（又はＩ／Ｏ制御回路３）に出力する。
【００５２】
図３は、メモリ装置１００のＤＩＭＭ１１ａ〜１１ｄ内のＤＩＭＭコントローラ１３の構成を示すブロック図である。ＤＩＭＭ１１ａ〜１１ｄ内のＤＩＭＭコントローラ１３は、識別番号抽出回路２１、レジスタ２２、２３、比較器２４、チップセレクト信号制御回路２５を具備する。識別番号抽出回路２１は、データバス１０１、制御信号バス１０２に接続されている。識別番号抽出回路２１は、レジスタ２３、比較器２４に接続されている。比較器２４は、レジスタ２３、チップセレクト信号制御回路２５に接続されている。レジスタ２２は、制御信号バス１０２に接続され、ＤＩＭＭ１１ａ〜１１ｄ内制御信号バス１０４に接続されている。チップセレクト信号制御回路２５は、レジスタ２２、チップセレクト信号線１０５に接続されている。図４は、メモリ装置１００のメモリコントローラ１０の構成を示すブロック図である。メモリコントローラ１０は、タイミング制御回路２６、カウンタ２７、レジスタ２８を具備する。タイミング制御回路２６は、カウンタ２７、レジスタ２８に接続され、メモリ制御バス９３、データバス１０１、制御信号バス１０２に接続されている。
【００５３】
次に、メモリ装置１００の動作について説明する。メモリ装置１００の動作は、初期化時の動作と、メモリアクセス実行時の動作とに分けられる。
【００５４】
図５に示されるように、初期化のとき、時刻Ｔ０において、リセット回路４は、クロック信号に応答して（例えばクロック信号の立下りに応答して）、メモリコントローラ１０にリセット信号９４を出力する。ＤＩＭＭ１１ａ〜１１ｄには、メモリコントローラ１０、制御信号バス１０２を介してリセット信号９４が入力される。このとき、ＤＩＭＭ１１ａ〜１１ｄ内のＤＩＭＭコントローラ１３の識別番号抽出回路２１は、リセット信号９４に応じて、識別番号信号線１０３ｂ〜１０３ｅに流れる識別番号信号をインアクティブにする。
【００５５】
時刻Ｔ１において、メモリコントローラ１０は、クロック信号に応答して、第１識別番号が設定された識別番号設定コマンドを発行して制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。この時刻Ｔ１において、識別番号信号線１０３ａに流れる識別番号信号がアクティブ状態であり、識別番号信号線１０３ｂに流れる識別番号信号がインアクティブ状態である。この状態で、ＤＩＭＭ１１ａ内の識別番号抽出回路２１は、メモリコントローラ１０からの識別番号設定コマンドを入力する。ここで、ＤＩＭＭ１１ｂ〜１１ｄ内の識別番号抽出回路２１は、識別番号信号線１０３ｂ〜１０３ｄに流れる識別番号信号がインアクティブであるため、メモリコントローラ１０からの識別番号設定コマンドを無視する。ＤＩＭＭ１１ａ内の識別番号抽出回路２１は、識別番号設定コマンドに設定された第１識別番号を抽出し、抽出された第１識別番号をＤＩＭＭ１１ａ内のレジスタ２３に出力する。このとき、ＤＩＭＭ１１ａ内のレジスタ２３は、ＤＩＭＭ１１ａ内の識別番号抽出回路２１からの第１識別番号を保持／設定する。ＤＩＭＭ１１ａ内のレジスタ２３に保持／設定された第１識別番号は、ＤＩＭＭ１１ａを識別するための識別子である。
【００５６】
時刻Ｔ２において、ＤＩＭＭ１１ａ内の識別番号抽出回路２１は、クロック信号に応答して、データバス１０１を介してメモリコントローラ１０に応答信号を出力し、識別番号信号線１０３ｂに流れる識別番号信号をアクティブ状態にする。メモリコントローラ１０は、ＤＩＭＭ１１ａ内の識別番号抽出回路２１からの応答信号を入力したとき、ＤＩＭＭ１１ａが第１識別番号を保持／設定したことを認識する。
【００５７】
時刻Ｔ１と同様に、時刻Ｔ３、Ｔ５、Ｔ７において、メモリコントローラ１０は、クロック信号に応答して、第１識別番号が設定された識別番号設定コマンドを発行して制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。この時刻Ｔ３、Ｔ５、Ｔ７において、識別番号信号線１０３ｂ、１０３ｃ、１０３ｄに流れる識別番号信号がアクティブ状態であり、識別番号信号線１０３ｃ、１０３ｄ、１０３ｅに流れる識別番号信号がインアクティブ状態である。この状態で、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内の識別番号抽出回路２１は、メモリコントローラ１０からの識別番号設定コマンドを入力する。ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内の識別番号抽出回路２１は、識別番号設定コマンドに設定された第１識別番号を抽出し、抽出された第１識別番号をＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内のレジスタ２３に出力する。このとき、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内のレジスタ２３は、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内の識別番号抽出回路２１からの第１識別番号を保持／設定する。ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内のレジスタ２３に保持／設定された第１識別番号は、ＤＩＭＭ１１ｂを識別するための識別子である。
【００５８】
時刻Ｔ２と同様に、時刻Ｔ４、Ｔ６、Ｔ８において、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内の識別番号抽出回路２１は、クロック信号に応答して、データバス１０１を介してメモリコントローラ１０に応答信号を出力し、識別番号信号線１０３ｃ、１０３ｄ、１０３ｅに流れる識別番号信号をアクティブ状態にする。メモリコントローラ１０は、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄ内の識別番号抽出回路２１からの応答信号を入力したとき、ＤＩＭＭ１１ｂ、１１ｃ、１１ｄが第１識別番号を保持／設定したことを認識する。
【００５９】
時刻Ｔ９において、メモリコントローラ１０は、クロック信号に応答して、第１識別番号が設定された識別番号設定コマンドを発行して制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。ＤＩＭＭ１１ａ〜１１ｄ内の識別番号抽出回路２１は、識別番号信号線１０３ｂ〜１０３ｅに流れる識別番号信号がアクティブ状態であるため、メモリコントローラ１０からの識別番号設定コマンドを無視する。その結果、メモリコントローラ１０に応答信号が返らないため、メモリコントローラ１０は、それ以上ＤＩＭＭが実装されていないことを認識する。即ち、メモリコントローラ１０は、ＤＩＭＭ１１ａ〜１１ｄの全てが第１識別番号を保持したことを認識する。
【００６０】
次に、メモリアクセス実行時の動作について説明する。ここで、メモリコントローラ１０は、命令（アクティブコマンド、リード／ライトコマンド）に設定された制御信号にデータ長を４クロックに指定するものとする。
【００６１】
図６は、メモリアクセスとして、ＤＩＭＭ１１ａのメモリチップ１２（アドレス）からデータを読み出すためのリード命令（アクティブコマンド、リードコマンド）を実行する動作を示すタイミングチャートである。リードの場合、例えばＣＰＵ１は、クロック信号に応答して、アドレスを含むリード要求を、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力する。メモリコントローラ１０は、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａとする）を判断してアクティブコマンドを発行し、アクティブコマンドに、そのアドレスと制御信号（第２識別番号を含む）とを設定する。制御信号に含まれる第２識別番号は、ＤＩＭＭ１１ａに割り振られた第１識別番号に一致する。
【００６２】
時刻Ｔ１０において、メモリコントローラ１０は、クロック信号に応答して、アクティブコマンドを制御信号バス１０２に出力する。ＤＩＭＭ１１ａ〜１１ｄ内の識別番号抽出回路２１、レジスタ２２には、メモリコントローラ１０からのアクティブコマンドが入力される。ＤＩＭＭ１１ａ〜１１ｄ内のレジスタ２２は、メモリコントローラ１０からのアクティブコマンドを保持する。ＤＩＭＭ１１ａ〜１１ｄ内の識別番号抽出回路２１は、アクティブコマンドに設定された制御信号から第２識別番号を抽出して認識し、第２識別番号をＤＩＭＭ１１ａ〜１１ｄ内の比較器２４に出力する。このとき、ＤＩＭＭ１１ａ〜１１ｄ内の識別番号抽出回路２１は、比較イネーブル信号を１クロック間だけアクティブ状態にしてＤＩＭＭ１１ａ〜１１ｄ内の比較器２４に出力する。ここで、１クロック間とは、時刻Ｔ１０から時刻Ｔ１１までの時間に対応する。
【００６３】
ＤＩＭＭ１１ａ〜１１ｄ内の比較器２４は、比較イネーブル信号に応じて、ＤＩＭＭ１１ａ〜１１ｄ内のレジスタ２３に保持／設定された第１識別番号と、ＤＩＭＭ１１ａ〜１１ｄ内の識別番号抽出回路２１からの第２識別番号とを比較する。ここで、ＤＩＭＭ１１ａ内のレジスタ２３に保持／設定された第１識別番号と、アクティブコマンドに設定された制御信号に含まれる第２識別番号（ＤＩＭＭ１１ａ内の識別番号抽出回路２１からの第２識別番号）とが一致するため、メモリコントローラ１０によってＤＩＭＭ１１ａが選択される。ＤＩＭＭ１１ａ内の比較器２４は、第１識別番号と第２識別番号との一致を示す一致信号を１クロック間だけアクティブ状態にしてＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５に出力する。
【００６４】
次に、時刻Ｔ１１において、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、ＤＩＭＭ１１ａ内の比較器２４からの一致信号に応じて、ＤＩＭＭ１１ａ内のレジスタ２２に保持されたアクティブコマンドを読取る。ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、そのアクティブコマンドに設定されたアドレスによって、ＤＩＭＭ１１ａ内のチップセレクト信号線１０５に、チップセレクト信号を１クロック間アクティブ状態にして出力する。同時に、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、ＤＩＭＭ１１ａ内のレジスタ２２に出力命令信号を出力する。ここで、１クロック間とは、時刻Ｔ１１から時刻Ｔ１２までの時間に対応する。ＤＩＭＭ１１ａ内のレジスタ２２は、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５がチップセレクト信号を１クロック間アクティブ状態にしているときに、出力命令信号に応じて、ＤＩＭＭ１１ａ内のメモリチップ１２に、ＤＩＭＭ１１ａ内制御信号バス１０４を介して、アクティブコマンドに設定された制御信号とアドレスとを出力する。
【００６５】
この時刻Ｔ１１において、メモリコントローラ１０は、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａとする）を判断してリードコマンドを発行し、リードコマンドに、そのアドレスと制御信号（第２識別番号を含む）とを設定する。制御信号に含まれる第２識別番号は、ＤＩＭＭ１１ａに割り振られた第１識別番号に一致する。メモリコントローラ１０は、クロック信号に応答して、リードコマンドを制御信号バス１０２に出力する。時刻Ｔ１０におけるアクティブコマンドと同様に、ＤＩＭＭ１１ａ〜１１ｄ内にはメモリコントローラ１０からのリードコマンドが入力され、メモリコントローラ１０によってＤＩＭＭ１１ａが選択される。ＤＩＭＭ１１ａ内の比較器２４は、一致信号を１クロック間だけアクティブ状態にしてＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５に出力する。ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、ＤＩＭＭ１１ａ内の比較器２４からの一致信号に応じて、レジスタ２２に保持されたリードコマンドを読取り、ウェイト時間（メモリチップ１２により規定された時間）が経過するのを待つ。ここで、ウェイト時間は、例えば、時刻Ｔ１２から時刻Ｔ１３までの時間に対応する。
【００６６】
時刻Ｔ１３において、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、メモリチップ１２により規定された時間（ウェイト時間：時刻Ｔ１２〜Ｔ１３の１クロック）が経過したとき、リードコマンドに設定されたアドレスによって、ＤＩＭＭ１１ａ内のチップセレクト信号線１０５に、チップセレクト信号を１クロック間アクティブ状態にして出力する。同時に、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、ＤＩＭＭ１１ａ内のレジスタ２２に出力命令信号を出力する。ここで、１クロック間とは、時刻Ｔ１３から時刻Ｔ１４までの時間に対応する。ＤＩＭＭ１１ａ内のレジスタ２２は、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５がチップセレクト信号を１クロック間アクティブ状態にしているときに、出力命令信号に応じて、ＤＩＭＭ１１ａ内のメモリチップ１２に、ＤＩＭＭ１１ａ内制御信号バス１０４を介して、リードコマンドに設定された制御信号とアドレスとを出力する。ＤＩＭＭ１１ａ内のメモリチップ１２にはリードコマンドに設定された制御信号が入力される。
【００６７】
メモリチップ１２により規定された時間（時刻Ｔ１４〜Ｔ１５の１クロック）が経過した後、時刻Ｔ１５〜Ｔ１８において、リードコマンドに設定された制御信号により、ＤＩＭＭ１１ａ内のメモリチップ１２（アドレス）から、データ（読出しデータ）が順に読み出される。読出しデータは、クロック信号に応答して、データ信号としてデータバス１０１を介してメモリコントローラ１０に順に出力される。メモリコントローラ１０は、ＣＰＵ制御回路２を介してＣＰＵ１に読出しデータを出力し、ＣＰＵ１は、その読出しデータを実行する。
【００６８】
例えば、Ｉ／Ｏ制御回路３は、クロック信号に応答して、アドレスを含むリード要求を、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力し、メモリコントローラ１０は、Ｉ／Ｏ制御回路３からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｂとする）を判断したものとする。そこで、時刻Ｔ１２、Ｔ１３において、メモリコントローラ１０がＤＩＭＭ１１ｂのメモリチップ１２（アドレス）からデータを読み出すためのリード命令（アクティブコマンド、リードコマンド）を発行して出力してしまうと、ＤＩＭＭ１１ａのメモリチップ１２から読み出されたデータとＤＩＭＭ１１ｂのメモリチップ１２から読み出されたデータとがデータバス１０１上で衝突してしまう。このように、データバス１０１を使用するコマンドを発行してしまうと不具合が生じる。
【００６９】
このため、時刻Ｔ１２、Ｔ１３において、メモリコントローラ１０は、リフレッシュ命令（アクティブコマンド、リフレッシュコマンド）を発行し、そのリフレッシュ命令（アクティブコマンド、リフレッシュコマンド）に、そのアドレスと制御信号（第２識別番号を含む）とを設定する。制御信号に含まれる第２識別番号は、ＤＩＭＭ１１ｂに割り振られた第１識別番号に一致する。メモリコントローラ１０は、クロック信号に応答して、リフレッシュ命令（アクティブコマンド、リフレッシュコマンド）を制御信号バス１０２に出力する。リフレッシュコマンドは、ＤＩＭＭ１１ｂがＤＩＭＭ１１ｂ内のメモリチップ１２（アドレス）に対するメモリエリアのリフレッシュ動作を行うためのコマンドである。リフレッシュ動作とは、そのメモリチップ１２（アドレス）からデータを読出し、読み出されたデータを書き直す動作をいう。
【００７０】
時刻Ｔ１４、Ｔ１５において、メモリコントローラ１０は、リード命令（アクティブコマンド、リードコマンド）を発行し、そのリード命令（アクティブコマンド、リードコマンド）に、そのアドレスと制御信号（第２識別番号を含む）とを設定する。制御信号に含まれる第２識別番号は、ＤＩＭＭ１１ｂに割り振られた第１識別番号に一致する。メモリコントローラ１０は、クロック信号に応答して、リード命令（アクティブコマンド、リードコマンド）を制御信号バス１０２に出力する。
【００７１】
この場合、時刻Ｔ１２〜Ｔ１５において、ＤＩＭＭ１１ｂ内のレジスタ２３に保持／設定された第１識別番号と、リフレッシュ命令（アクティブコマンド、リフレッシュコマンド）、リード命令（アクティブコマンド、リードコマンド）に設定された制御信号に含まれる第２識別番号とが一致するため、メモリコントローラ１０によってＤＩＭＭ１１ｂが選択される。
【００７２】
また、ＤＩＭＭ１１ｂは、時刻Ｔ１２〜Ｔ１４において、メモリコントローラ１０からのリフレッシュ命令（アクティブコマンド、リフレッシュコマンド）により、ＤＩＭＭ１１ｂ内のメモリチップ１２（アドレス）からデータを読出し、読み出されたデータを書き直す処理を行い、時刻Ｔ１４〜Ｔ２２において、上述のＤＩＭＭ１１ａと同様の動作をする。即ち、時刻Ｔ１９〜Ｔ２２において、リードコマンドに設定された制御信号により、ＤＩＭＭ１１ｂ内のメモリチップ１２（アドレス）から、データ（読出しデータ）が順に読み出される。読出しデータは、クロック信号に応答して、データ信号としてデータバス１０１を介してメモリコントローラ１０に順に出力される。メモリコントローラ１０は、ＣＰＵ制御回路２を介してＩ／Ｏ制御回路３に読出しデータを出力し、Ｉ／Ｏ制御回路３は、その読出しデータを実行する。
【００７３】
メモリ装置１００によれば、メモリアクセスを行うときに１つのＤＩＭＭによって制御信号バス１０２が占有されないように、初期化のとき、メモリコントローラ１０は、重複しない第１識別番号が設定された識別番号設定コマンドを発行して制御信号バス１０２に出力することによって、第１識別番号をＤＩＭＭ１１ａ〜１１ｄに割り振る。メモリアクセスを行うとき（ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２からデータを読み出すとき）、メモリコントローラ１０は、アクティブコマンドを発行してからリード／リフレッシュコマンドを発行するまでの１クロックの間にウェイト時間を挿入することなく、第２識別番号を含む制御信号とアドレスとが設定された命令（アクティブコマンド、リード／リフレッシュコマンド）を、制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。これによって、メモリ装置１００によれば、メモリコントローラ１０がＤＩＭＭ１１ａ〜１１ｄに対して制御信号バス１０２を常時使用することができる。
【００７４】
また、メモリコントローラ１０は、時刻Ｔ１０〜Ｔ１１にて第１命令としてＤＩＭＭ１１ａへのリード命令（アクティブコマンド、リードコマンド）を発行して制御信号バス１０２に出力した後、この第１命令（リード命令）の実行が時刻Ｔ１５〜Ｔ１８にて完了する前に、時刻Ｔ１２〜Ｔ１３、時刻Ｔ１４〜Ｔ１５にて第２命令、第３命令としてＤＩＭＭ１１ｂへのリフレッシュ命令、リード命令を発行して制御信号バス１０２に出力することができる。
【００７５】
図７は、メモリアクセスとして、ＤＩＭＭ１１ａのメモリチップ１２（アドレス）にデータを書込むためのライト命令（アクティブコマンド、ライトコマンド）を実行する動作を示すタイミングチャートである。この動作は、制御信号バス１０２からＤＩＭＭ１１ａにアクティブコマンドが入力された後に、ライトコマンドが入力された場合の例であり、メモリチップ１２（アドレス）からデータを読み出すタイミングとメモリチップ１２（アドレス）にデータを書き込むタイミングとが異なること以外は、リードコマンドが入力された場合と同様である。この場合、例えば、Ｉ／Ｏ制御回路３は、クロック信号に応答して、そのデータとアドレスとを、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力する。メモリコントローラ１０は、Ｉ／Ｏ制御回路３からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａとする）を判断し、ライト命令（アクティブコマンド、ライトコマンド）を発行し、そのライト命令（アクティブコマンド、ライトコマンド）に、そのアドレスと制御信号（第２識別番号を含む）とを設定する。制御信号に含まれる第２識別番号は、ＤＩＭＭ１１ａに割り振られた第１識別番号に一致する。
【００７６】
時刻Ｔ３０において、時刻Ｔ１０で説明されたものと同様に上述のメモリアクセス実行時の動作を実行する。時刻Ｔ３１において、時刻Ｔ１１で説明されたものと同様に（但し、リードコマンドをライトコマンドに代えて）上述のメモリアクセス実行時の動作を実行する。時刻Ｔ３２において、時刻Ｔ１２で説明されたものと同様に上述のメモリアクセス実行時の動作を実行する。
【００７７】
時刻Ｔ３３において、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、メモリチップ１２により規定された時間（ウェイト時間：時刻Ｔ３２〜Ｔ３３の１クロック）が経過したとき、ライトコマンドに設定されたアドレスによって、ＤＩＭＭ１１ａ内のチップセレクト信号線１０５に、チップセレクト信号を１クロック間アクティブ状態にして出力する。同時に、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５は、ＤＩＭＭ１１ａ内のレジスタ２２に出力命令信号を出力する。ここで、１クロック間とは、時刻Ｔ３２から時刻Ｔ３３までの時間に対応する。ＤＩＭＭ１１ａ内のレジスタ２２は、ＤＩＭＭ１１ａ内のチップセレクト信号制御回路２５がチップセレクト信号を１クロック間アクティブ状態にしているときに、出力命令信号に応じて、ＤＩＭＭ１１ａ内のメモリチップ１２に、ＤＩＭＭ１１ａ内制御信号バス１０４を介して、ライトコマンドに設定された制御信号とアドレスとを出力する。ＤＩＭＭ１１ａ内のメモリチップ１２にはライトコマンドに設定された制御信号が入力される。
【００７８】
また、時刻Ｔ３３において、メモリチップ１２により規定された時間（時刻Ｔ３２〜Ｔ３３の１クロック）が経過したとき、時刻Ｔ３３〜Ｔ３６において、メモリコントローラ１０は、クロック信号に応答して、Ｉ／Ｏ制御回路３からのデータ（書込みデータ）をデータバス１０１に順に出力する。この時刻Ｔ３３〜Ｔ３６において、ライトコマンドに設定された制御信号により、ＤＩＭＭ１１ａ内のメモリチップ１２にメモリコントローラ１０からの書込みデータが順に書き込まれる。また、メモリコントローラ１０は、そのデータをデータバス１０１に出力することにより、データが書き込まれたことを表わす応答信号を、ＣＰＵ制御回路２を介してＩ／Ｏ制御回路３に出力する。
【００７９】
例えば、ＣＰＵ１は、クロック信号に応答して、そのデータとアドレスとを含むライト要求を、ＣＰＵ制御回路２を介してメモリコントローラ１０に出力し、メモリコントローラ１０は、ＣＰＵ１からのライト要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｂとする）を判断したものとする。この場合、時刻Ｔ１２、Ｔ１３で説明されたものと同様に、時刻Ｔ３２、Ｔ３３において、メモリコントローラ１０は、アクティブコマンド、リフレッシュコマンドを発行し、時刻Ｔ１４、Ｔ１５で説明されたものと同様に（但し、リードコマンドをライトコマンドに代えて）、時刻Ｔ３４、Ｔ３５において、ライト命令（アクティブコマンド、ライトコマンド）を発行する。これにより、ＤＩＭＭ１１ａのメモリチップ１２に書込むための書込みデータとＤＩＭＭ１１ｂのメモリチップ１２に書込むための書込みデータとがデータバス１０１上で衝突することを回避することができる。
【００８０】
このように、メモリ装置１００によれば、メモリアクセスを行うとき（ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２にデータを書き込むとき）、メモリコントローラ１０は、アクティブコマンドを発行してからライト／リフレッシュコマンドを発行するまでの１クロックの間にウェイト時間を挿入することなく、第２識別番号を含む制御信号とアドレスとが設定された命令（アクティブコマンド、ライト／リフレッシュコマンド）を、制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。これによって、メモリ装置１００によれば、メモリコントローラ１０がＤＩＭＭ１１ａ〜１１ｄに対して制御信号バス１０２を常時使用することができる。
【００８１】
また、メモリコントローラ１０は、時刻Ｔ３０〜Ｔ３１にて第１命令としてＤＩＭＭ１１ａへのライト命令（アクティブコマンド、ライトコマンド）を発行して制御信号バス１０２に出力した後、この第１命令（ライト命令）の実行が時刻Ｔ３３〜Ｔ３６にて完了する前に、時刻Ｔ３２〜Ｔ３３、時刻Ｔ３４〜Ｔ３５にて第２命令、第３命令としてＤＩＭＭ１１ｂへのリフレッシュ命令、ライト命令を発行して制御信号バス１０２に出力することができる。
【００８２】
また、データ（読出しデータ／書込みデータ）がデータバス１０１上で衝突することを回避するために、メモリコントローラ１０は、バス調停を行う。ＣＰＵ制御回路２からメモリ制御バス９３を介してメモリコントローラ１０に、第１要求としてリード／ライト要求がなされ、その後、第２要求としてリード／ライト要求がなされた場合、メモリコントローラ１０は、第１要求（リード／ライト要求）に応じて第１命令（リード／ライト命令）を制御信号バス１０２に出力し、第２要求（リード／ライト要求）に応じて第２命令（リード／ライト命令）を制御信号バス１０２に出力する。この場合、メモリコントローラ１０は、例えば、第１要求（リード／ライト要求）によってデータバス１０１を占有する第１占有期間と、第２要求（リード／ライト要求）によってデータバス１０１を占有する第２占有期間とが重複してしまうと判断する。このとき、メモリコントローラ１０は、所定時間の経過後に第２命令（リード／ライト命令）を制御信号バス１０２に出力する。これにより、メモリ装置１００によれば、第１占有期間と第２占有期間との重複を回避することができる。
【００８３】
具体的には、第１要求としてリード／ライト要求がメモリコントローラ１０になされ、メモリコントローラ１０のカウンタ２７の表す値が“０”である場合、メモリコントローラ１０のタイミング制御回路２６は、第１要求のデータ長（４クロック）をカウンタ２７に保持する。タイミング制御回路２６は、その第１要求（リード／ライト要求）によりリード／ライト命令（アクティブコマンド、リード／ライトコマンド）を発行して、クロック信号に応答して、そのリード／ライト命令を制御信号バス１０２に出力する。このとき、カウンタ２７は、クロック信号に応答し、“３”から“０”になるまで１づつ減算を行う。カウンタ２７が減算を行っている間に第２要求としてリード／ライト要求がメモリコントローラ１０になされた場合、タイミング制御回路２６は、第２要求のデータ長（４クロック）をカウンタ２７に保持し、その第２要求（リード／ライト要求）をレジスタ２８に出力し、レジスタ２８は、その第２要求（リード／ライト要求）を保持する。即ち、カウンタ２７が減算を行っている間に第２要求（リード／ライト要求）がメモリコントローラ１０になされた場合、タイミング制御回路２６は、第１占有期間と第２占有期間とが重複すると判断し、レジスタ２８は、カウンタ２７の表す値が“０”以外の場合、リード／ライト要求を保持する。所定時間が経過したとき（カウンタ２７の表す値が“０”になったとき）、タイミング制御回路２６は、その第２要求（リード／ライト要求）によりリード／ライト命令（アクティブコマンド、リード／ライトコマンド）を発行して、クロック信号に応答して、そのリード／ライト命令を制御信号バス１０２に出力する。
【００８４】
例えば、図５を用いて説明されたＤＩＭＭ１１ａとＤＩＭＭ１１ｂとのメモリチップ１２（アドレス）からデータを読み出す場合における、バス調停について図８に示す。図８では、ＤＩＭＭ１１ａ内のチップセレクト信号線１０５に流れるチップセレクト信号（時刻Ｔ１１、時刻Ｔ１３）と、ＤＩＭＭ１１ｂ内のチップセレクト信号線１０５に流れるチップセレクト信号（時刻Ｔ１５、時刻Ｔ１７）とを同じタイミングチャート図に記載している。同様に、図８では、ＤＩＭＭ１１ａ内のＤＩＭＭ１１ａ内制御信号バス１０４に流れるコマンド（時刻Ｔ１１、時刻Ｔ１３）と、ＤＩＭＭ１１ｂ内のＤＩＭＭ１１ｂ内制御信号バス１０４に流れるコマンド（時刻Ｔ１５、時刻Ｔ１７）とを同じタイミングチャート図に記載している。この場合、バス調停における動作は上述と同様である。
【００８５】
本実施例では、メモリコントローラ１０は、命令（アクティブコマンド、リード／ライトコマンド）に設定された制御信号にデータ長を４クロックに指定しているが、データ長を２クロックに指定する場合がある。この場合、メモリコントローラ１０は、リフレッシュコマンドを発行する必要がなく、アクティブコマンド、リード／ライトコマンドを発行して制御信号バス１０２に出力することによって、メモリアクセスを行うことができる（ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２からデータを読み出すことができる／ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２にデータを書き込むことができる）。
【００８６】
例えば、メモリコントローラ１０は、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａ）を判断し、次に、Ｉ／Ｏ制御回路３からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｂとする）を判断し、次いで、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｃ）を判断したものとする。
【００８７】
この場合、図９に示されるように、時刻Ｔ１０、Ｔ１１において、メモリコントローラ１０は、クロック信号に応答して、ＤＩＭＭ１１ａのメモリチップ１２（アドレス）からデータを読み出すためのリード命令（アクティブコマンド、リードコマンド）を発行して制御信号バス１０２に出力する。時刻Ｔ１２、Ｔ１３において、メモリコントローラ１０は、クロック信号に応答して、ＤＩＭＭ１１ｂのメモリチップ１２（アドレス）からデータを読み出すためのリード命令（アクティブコマンド、リードコマンド）を発行して制御信号バス１０２に出力する。時刻Ｔ１４、Ｔ１５において、メモリコントローラ１０は、クロック信号に応答して、ＤＩＭＭ１１ｃのメモリチップ１２（アドレス）からデータを読み出すためのリード命令（アクティブコマンド、リードコマンド）を発行して制御信号バス１０２に出力する。
【００８８】
その結果、時刻Ｔ１５、Ｔ１６において、リードコマンドに設定された制御信号により、ＤＩＭＭ１１ａ内のメモリチップ１２（アドレス）から、データ（読出しデータ）が順に読み出され、その読出しデータは、クロック信号に応答して、データ信号としてデータバス１０１を介してメモリコントローラ１０に順に出力される。時刻Ｔ１７、Ｔ１８において、ＤＩＭＭ１１ｂ内のメモリチップ１２（アドレス）から、データ（読出しデータ）が順に読み出され、その読出しデータは、クロック信号に応答して、データ信号としてデータバス１０１を介してメモリコントローラ１０に順に出力される。時刻Ｔ１９、Ｔ２０において、リードコマンドに設定された制御信号により、ＤＩＭＭ１１ｃ内のメモリチップ１２から、データ（読出しデータ）が順に読み出され、その読出しデータは、クロック信号に応答して、データ信号としてデータバス１０１を介してメモリコントローラ１０に順に出力される。
【００８９】
このように、メモリコントローラ１０は、時刻Ｔ１０〜Ｔ１１にて第１命令としてＤＩＭＭ１１ａへのリード命令（アクティブコマンド、リードコマンド）を発行して制御信号バス１０２に出力した後、この第１命令（リード命令）の実行が時刻Ｔ１５〜Ｔ１６にて完了する前に、時刻Ｔ１２〜Ｔ１３にて第２命令としてＤＩＭＭ１１ｂへのリード命令を発行して制御信号バス１０２に出力することができる。
【００９０】
一方、図１０を用いて説明された従来のメモリ装置（メモリコントローラ４１０、ＤＩＭＭ５１１ａ〜ＤＩＭＭ５１１ｄ、データバス５０１、制御信号バス５０２、…）において、例えば、メモリコントローラ４１０は、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ａ）を判断し、次に、Ｉ／Ｏ制御回路３からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｂとする）を判断し、次いで、ＣＰＵ１からのリード要求に含まれるアドレスにより選択すべきＤＩＭＭ（ＤＩＭＭ１１ｃ）を判断したものとする。この場合、図１１に示されるように、メモリコントローラ４１０は、時刻Ｔ１０、Ｔ１３、Ｔ１６にてアクティブコマンドを発行し、ウェイト時間（時刻Ｔ１１〜Ｔ１２、時刻Ｔ１４〜Ｔ１５、時刻Ｔ１７〜Ｔ１８）が経過したとき、時刻Ｔ１２、Ｔ１５、Ｔ１８にてリードコマンドを発行する。このように、従来のメモリ装置では、メモリコントローラ４１０は、アクティブコマンドを発行してから、リードコマンドを発行するまでの１クロックの間に、ウェイト時間を挿入しなければならない。
【００９１】
従って、メモリ装置１００によれば、メモリコントローラ１０が、データ長を２クロックに指定し、ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２からデータを読み出す場合、従来のメモリ装置の場合よりも２クロック分速く読み出すことができ、高速化が実現できる。同様に、メモリ装置１００によれば、メモリコントローラ１０が、データ長を２クロックに指定し、ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２にデータを書き込む場合、従来のメモリ装置の場合よりも２クロック分速く書き込むことができ、高速化が実現できる。また、従来のメモリ装置では、データバス５０１の使用効率は６６％であるのに対して、メモリ装置１００では、高速化が実現できるため、データバス５０１の使用効率は１００％である。このように、メモリ装置１００によれば、制御信号バス１０２の使用効率の向上に加え、データバス１０１の使用効率も向上し、従来と比較してバスの実効帯域を増やすことができる。
【００９２】
【発明の効果】
以上の説明により、メモリ装置１００によれば、メモリアクセスを行うときに１つのＤＩＭＭによって制御信号バス１０２が占有されないように、初期化のとき、メモリコントローラ１０は、重複しない第１識別番号が設定された識別番号設定コマンドを発行して制御信号バス１０２に出力することによって、第１識別番号をＤＩＭＭ１１ａ〜１１ｄに割り振る。メモリアクセスを行うとき（ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２からデータを読み出すとき／ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２にデータを書き込むとき）、メモリコントローラ１０は、アクティブコマンドを発行してからリード／ライト／リフレッシュコマンドを発行するまでの１クロックの間にウェイト時間を挿入することなく、第２識別番号を含む制御信号とアドレスとが設定された命令（アクティブコマンド、リード／ライト／リフレッシュコマンド）を、制御信号バス１０２を介してＤＩＭＭ１１ａ〜１１ｄに出力する。これによって、メモリ装置１００によれば、メモリコントローラ１０がＤＩＭＭ１１ａ〜１１ｄに対して制御信号バス１０２を常時使用することができ、制御信号バス１０２の使用効率が向上する。
【００９３】
また、メモリ装置１００によれば、メモリコントローラ１０が、第１命令を発行して制御信号バス１０２に出力した後、この第１命令の実行の完了前に、第２命令を発行して制御信号バス１０２に出力することができる。これにより、メモリ装置１００によれば、メモリコントローラ１０がメモリアクセスを行うとき（ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２からデータを読み出すとき／ＤＩＭＭ１１ａ〜１１ｄのメモリチップ１２にデータを書き込むとき）、従来のメモリ装置の場合よりも速くアクセスすることができ（速く読み出すことができ／書き込むことができ）、高速化が実現できる。このように、メモリ装置１００によれば、制御信号バス１０２の使用効率の向上に加え、データバス１０１の使用効率も向上し、従来と比較してバスの実効帯域を増やすことができる。
【００９４】
メモリ装置１００によれば、従来のメモリ装置のようにチップセレクト信号線５０３ａ〜５０３ｄをメモリコントローラ４１０（ＤＩＭＭ５１１ａ〜５１１ｄ内のレジスタ４１３）からＤＩＭＭ５１１ａ〜５１１ｄに引き回して配線するのではなく、ＤＩＭＭ１１ａ〜１１ｄ（ＤＩＭＭ１１ａ〜１１ｄ内のＤＩＭＭコントローラ１３）に、識別番号信号線１０３ａ〜１０３ｄと識別番号信号線１０３ｂ〜１０３ｅとを配線している。例えば、ＤＩＭＭ１１ａを基板に搭載した後、ＤＩＭＭ１１ｂを基板に搭載する場合、識別番号信号線１０３ｂをＤＩＭＭ１１ａとＤＩＭＭ１１ｂとに配線すればよい。同様に、ＤＩＭＭ１１ｃを基板に搭載する場合、識別番号信号線１０３ｃをＤＩＭＭ１１ｂとＤＩＭＭ１１ｃとに配線すればよい。このように、メモリ装置１００によれば、基板上での識別番号信号線１０３ａ〜１０３ｅの引き回しが容易であり、配線収容性が向上する。また、メモリ装置１００によれば、配線収容性が向上するため、基板の大きさや層数を削減することができる。
【００９５】
また、メモリ装置１００によれば、配線収容性が向上するため、ＤＩＭＭの実装枚数を容易に増加させることができる。例えば、基板に搭載されたＤＩＭＭ１１ａ〜１１ｃに加えて、ＤＩＭＭ１１ｄを更に基板に搭載する場合、ＤＩＭＭ１１ｃに配線された識別番号信号線１０３ｄをＤＩＭＭ１１ｄに配線すればよい。そのため、ＤＩＭＭスロットを使い切ってしまったコンピュータにメモリを増設する場合は、今まで使用していたＤＩＭＭを取り外す必要がなく、ＤＩＭＭを有効に利用することができる。これにより、例えば、１つのＤＩＭＭスロットに２枚のＤＩＭＭを実装できるようなＤＩＭＭスロット変換モジュールを容易に作成することができる。
【図面の簡単な説明】
【図１】図１は、コンピュータシステムの構成を示すブロック図である。
【図２】図２は、本発明のメモリ装置の構成を示すブロック図である。
【図３】図３は、本発明のメモリ装置のＤＩＭＭ内のＤＩＭＭコントローラの構成を示すブロック図である。
【図４】図４は、本発明のメモリ装置のメモリコントローラの構成を示すブロック図である。
【図５】図５は、本発明のメモリ装置の動作を示すタイミングチャート図である。
【図６】図６は、本発明のメモリ装置の動作を示すタイミングチャート図である。
【図７】図７は、本発明のメモリ装置の動作を示すタイミングチャート図である。
【図８】図８は、本発明のメモリ装置の動作を示すタイミングチャート図である。
【図９】図９は、本発明のメモリ装置の動作を示すタイミングチャート図である。
【図１０】図１０は、従来のメモリ装置の構成を示すブロック図である。
【図１１】図１１は、従来のメモリ装置の動作を示すタイミングチャート図である。
【符号の説明】
１    ＣＰＵ
２    ＣＰＵ制御回路
３    Ｉ／Ｏ制御回路
４    リセット回路
５ａ〜５ｄ    ＰＣＩバス
６    各種Ｉ／Ｏ
７    ＢＩＯＳ
８    クロック発生回路
１０      メモリコントローラ
１１ａ〜１１ｄ    ＤＩＭＭ
１２      メモリチップ
１３      ＤＩＭＭコントローラ
１５      電源
２１      識別番号抽出回路
２２、２３      レジスタ
２４      比較器
２５      チップセレクト信号制御回路
２６      タイミング制御回路
２７      カウンタ
２８      レジスタ
９１      ＣＰＵ制御バス
９２      Ｉ／Ｏ制御バス
９３      メモリ制御バス
９４      リセット信号
１００      メモリ装置
１０１      データバス
１０２      制御信号バス
１０３ａ〜１０３ｅ    識別番号信号線
１０４      ＤＩＭＭ内制御信号バス
１０５      チップセレクト信号線
４１０      メモリコントローラ
４１１ａ〜４１１ｄ    ＤＩＭＭ
４１２      メモリチップ
４１３      レジスタ
５０１      データバス
５０２      制御信号バス
５０３ａ〜５０３ｄ    チップセレクト信号線
５０４      ＤＩＭＭ内制御信号バス
５０５      チップセレクト信号線
【図１】
0003804832.tif 000002
【図２】
0003804832.tif 000003
【図３】
0003804832.tif 000004
【図４】
0003804832.tif 000005
【図５】
0003804832.tif 000006
【図６】
0003804832.tif 000007
【図７】
0003804832.tif 000008
【図８】
0003804832.tif 000009
【図９】
0003804832.tif 000010
【図１０】
0003804832.tif 000011
【図１１】
0003804832.tif 000012