(57)【特許請求の範囲】
【請求項１】
ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、
前記ＤＲＡＭに接続され、データ転送リクエストとメモリアドレスとを含むキャッシュアクセスをメモリコントローラから受け付けるデータ転送ポートと、
前記ＤＲＡＭに接続され、前記メモリコントローラからリフレッシュコマンドを受け付けるリフレッシュポートと、
を有するキャッシュランダムアクセスメモリデバイスであって、
前記メモリコントローラは、
前記データ転送リクエストと前記メモリアドレスとを当該キャッシュメモリデバイスに送信するメモリリクエスト論理と、
前記リフレッシュコマンドを供給し、リフレッシュ期間中におけるメモリアクセスコマンドを阻止するリフレッシュ制御論理と、
を有し、
前記メモリコントローラは、リフレッシュを必要とする前記ＤＲＡＭの部分に対するメモリリクエストのレートを抑制することにより前記メモリリクエスト論理からのデータ転送リクエストと前記リフレッシュ制御論理からのリフレッシュコマンドとを調整することによって、メモリリクエストとの干渉を低減するため前記ＤＲＡＭの各部分に対するリフレッシュをスケジューリングし、
前記抑制は、前記リフレッシュを必要とする前記ＤＲＡＭの部分に対するリフレッシュの必要度に依存して、異なる軽減レベル及び／又は段階的な軽減レベルが用いられることからなるキャッシュランダムアクセスメモリデバイス。
【請求項２】
請求項１記載のキャッシュランダムアクセスメモリデバイスであって、
前記リフレッシュポートは、リフレッシュ関連機能の実行を専用とする専用ポートであることを特徴とするキャッシュランダムアクセスメモリデバイス。
【請求項３】
データ転送インタフェースを介しデバイスのメモリコントローラからリフレッシュ処理を要求又は利用するキャッシュランダムアクセスメモリデバイスに、一緒になってキャッシュメモリアクセスを規定するメモリリクエストコマンドとメモリアドレス信号とを提供するステップと、
前記デバイスのメモリコントローラから前記キャッシュメモリデバイスに、データ転送ポートから分離したリフレッシュポートを介しキャッシュメモリアレイに対してリフレッシュする部分を指定するリフレッシュコマンドを提供するステップと、
前記メモリコントローラによって、前記キャッシュメモリアクセスとの干渉を低減するため前記メモリアレイの各部分に対するリフレッシュコマンドをスケジューリングするステップと、
前記メモリコントローラによって、リフレッシュを必要とする前記キャッシュランダムアクセスメモリデバイスの部分に対するメモリリクエストのレートを抑制することによりデータ転送リクエストと前記リフレッシュコマンドとを調整することによって、キャッシュメモリリクエストとの干渉を低減するため前記キャッシュランダムアクセスメモリデバイスの各部分に対するリフレッシュをスケジューリングするステップと、
を有し、
前記メモリコントローラは、前記キャッシュメモリリクエストを前記キャッシュランダムアクセスメモリデバイスに送信し、リフレッシュ期間中におけるメモリアクセスコマンドを阻止し、
前記抑制は、前記リフレッシュを必要とする前記キャッシュランダムアクセスメモリデバイスの部分に対するリフレッシュの必要度に依存して、異なる軽減レベル及び／又は段階的な軽減レベルが用いられることからなる方法。
【請求項４】
請求項３記載の方法であって、さらに、
リフレッシュ動作を追跡するステップと、
前記追跡に応答して、リフレッシュ基準が満たされない場合、メモリリクエストを抑制するステップと、
を有することを特徴とする方法。
【請求項５】
請求項３記載の方法であって、
前記リフレッシュポートは、コマンドインタフェースから独立した専用リフレッシュポートであることを特徴とする方法。
【請求項６】
請求項３記載の方法であって、さらに、
メモリアクセスを規定するコマンドとリフレッシュコマンドを提供するステップを有し、
その両方はクロックサイクル中に少なくとも部分的に実行されることを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［背景］
１．技術分野
本開示は、メモリ、メモリコントローラ、メモリコントローラを有する装置及びメモリシステムの技術分野に関する。
【０００２】
２．関連技術の説明
従来、シングルセルメモリに設けることが可能な密度を克服することは困難であるため、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのシングルトランジスタメモリが利用される。キャパシタは、メモリ状態を示すためチャージ（またはそれのラック）を格納する。しかしながら、このタイプの記憶装置の周知の問題点は、状態情報を格納するキャパシタ装置がそのチャージを経時的に失うということである。また、メモリのキャパシタ部分に対するチャージが定期的にリフレッシュされない場合、情報は消失するおそれがある。
【０００３】
リフレッシュサイクルは、行などのダイナミックメモリの一部の読み出しと、その後のメモリの当該部分へのデータの書き戻しを伴う。これは、キャパシタ構造のチャージの低下によるデータ消失を回避するのに十分な頻度により定期的に実行される。リフレッシュされるメモリの一部からデータが読み出される必要があるため、典型的には、少なくともシングルポートメモリにおいて、リフレッシュサイクル中にダイナミックメモリのいくつかの部分にアクセスすることは不可能である。言い換えると、このリフレッシュサイクルは、典型的には、記憶装置の少なくともいくつかの領域へのアクセスをブロックする。従って、賢いメモリコントローラは、よりスピードが重視されるシステムメモリアクセスと干渉しないようスケジューリング可能となるように、しばしばリフレッシュサイクルを制御する。
【０００４】
現在のメモリコントローラは、一般に、同一のインタフェースまたは同一インタフェースの一部を利用して、メモリアクセスコマンドの送信に用いられるような情報を特定するリフレッシュ行またはリフレッシュコマンドを送信する。さらに、一部のメモリはセルフリフレッシュ機能を備え、これにより、メモリ自体がダイナミックセルをリフレッシュする。典型的には、メモリコントローラがディスエーブル及び／または記憶装置にアクセスしないとき、低電力期間中にデータを保持するのにセルフリフレッシュが利用される。しかしながら、セルフリフレッシュは、メモリコントローラがある時点においてリフレッシュされているメモリの一部に対する制御を維持することを不可能にする。
【０００５】
一部の記憶装置はまた、ヒドン（ｈｉｄｄｅｎ）リフレッシュは、リフレッシュの実行をメモリコントローラにより通知することなく、記憶装置により実行されるリフレッシュである。このようなヒドンリフレッシュはタイミングに影響を及ぼす可能性がある。なぜなら、記憶装置はメモリコントローラにより要求されるアクセスを認識しておらず、メモリコントローラとリフレッシュとの間のコンフリクトの可能性を生じさせるためである。従って、リフレッシュによるメモリリクエストを満たすことによる遅延が、いくつかのケースで生じる可能性がある。
［詳細な説明］
以下の説明は、ダイナミックメモリのリフレッシュポートの実施例を記載する。以下の説明では、本発明のより完全な理解を提供するため、メモリタイプ、メモリ遅延、並びに信号及びクロック名などの多数の具体的詳細が与えられる。しかしながら、本発明がこのような特定の詳細なく実現可能であるということは、当業者により理解されるであろう。さらに、本発明をフィ必要に不明瞭とすることを回避するため、一部の周知な構成、回路などは詳細には示されない。
【０００６】
各種実施例では、多様なリフレッシュポートが開示される。メモリコントローラまたはメモリコントローラを含む装置が、リフレッシュポートを利用してリフレッシュコマンドをダイナミックメモリに出力するようにしてもよい。この結果、メモリはこのようなコマンドを受信するための入力としてリフレッシュポートを利用するかもしれない。リフレッシュポートを利用することにより、データ転送インタフェースからのそのようなリフレッシュリクエストを効果的にオフロードすることが可能となるかもしれない。
【０００７】
図１は、ダイナミックメモリリフレッシュポートを利用するシステムの一実施例を示す。図１の実施例では、プロセッサ１００は、メモリアレイ１５２を有する記憶装置１５０と通信するメモリコントローラ１１０を有する。このプロセッサは、汎用プロセッサであってもよいし、あるいはグラフィックプロセッサ、ネットワークプロセッサ、あるいは他のタイプの既知または利用可能なプロセッサなどの特定用途プロセッサであってもよい。他の実施例では、メモリコントローラは、チップセットやブリッジコンポーネントなどの異なるまたは別の装置の一部であってもよい。記憶装置１５０は、リフレッシュ処理を必要としたり、あるいはリフレッシュ処理から効果が得られる任意のタイプのメモリであってもよい。例えば、大部分のＤＲＡＭはリフレッシュ処理を利用する。
【０００８】
メモリコントローラ１１０は、データ転送ポート１２０とリフレッシュポート１３０とを有する。データ転送ポート１２０は、１以上のコンダクタ１２５（電気または光コンダクタなど）に接続される。これらのコンダクタ１２５は、記憶装置１５０上のデータ転送ポート１６０に接続される。メモリコントローラはまた、リフレッシュポート１３０を有する。このリフレッシュポートは、１以上のコンダクタ１３５に接続され、これらのコンダクタは記憶装置１５０のリフレッシュポート１７０に接続される。一般に、データ転送ポートは、メモリリクエストと対応するデータとの従来の交換を構成するデータ、アドレス及びコマンドを処理する。このデータ転送ポートは、行及び列アドレス信号インタフェースを有するようにしてもよい。
【０００９】
本開示で用いられるポートという用語は、入力または出力インタフェースを説明するのに用いられてもよい。このインタフェースは、１以上の信号インタフェースを有するようにしてもよい。例えば、インタフェースは、集積回路などの装置と信号コンダクタを接続する他のインターコネクト、ボールまたはピンであってもよい。一部の実施例では、ポートは専用ポートであってもよい。ここで説明されるように、リフレッシュポートは、通常動作において、リフレッシュコマンドの送受信に利用されるポートであり、ある装置との間のデータ群の転送を行う従来のメモリアクセスリクエストを通信するには利用されない。リフレッシュポートは、それがリフレッシュ関連機能の実行に実質的に専用のものである場合、専用リフレッシュポートであってもよい。
【００１０】
他方、データ転送ポートは、記憶装置との間のデータ群の転送を行う従来のメモリアクセスリクエストを通信するのに用いられるインタフェースである。各種タイプ及びサイズのメモリリクエストが、データ転送インタフェースを介し処理されてもよい。データ転送インタフェースは、アドレス信号インタフェース、データ信号インタフェース、コマンド信号インタフェースなどを含むものであってもよい。これらのインタフェースは、個別かつ専用なものであってもよいし、あるいは多重化されてもよい。一部の実施例では、アドレス及びコマンドは多重化されてもよく、他の実施例では、アドレス、データ及びコマンドはすべて多重化されてもよい。メモリアクセスリクエストを通信するための多数の異なるまたは既知のタイプあるいは利用可能なインタフェースが、データ転送インタフェースとして利用されてもよいということを当業者は認識しているであろう。
【００１１】
一実施例では、リフレッシュポートは、リフレッシュポートは、データ転送ポートの帯域幅を消費することを回避するため、データ転送ポートとは独立にリフレッシュリクエスト（コマンド）を処理する。ダイナミックメモリの密度が増大し続けるに従い、メモリをリフレッシュするオーバヘッドは典型的には拡大する。これは、より大きなメモリは典型的にはより多くの行を備え、各行は典型的には個別にリフレッシュされ、これにより、必要とされるリフレッシュ数を増加させるためである。リフレッシュオーバヘッドが増大するに従い、データ転送インタフェースに対するリフレッシュを制御するのに必要なオーバヘッド量もまた、データ転送インタフェースに対するリフレッシュコマンドを送信する従来技術を利用して増大するであろう。従って、リフレッシュポートの一部の実施例は、メモリ密度が増大するに従って、より価値を高めるようになるかもしれない。
【００１２】
例えば、２５６メガビットのＤＲＡＭが８バンクのメモリと１６ｋ行を有する場合、１６，３８４リフレッシュが当該部分のリフレッシュ期間において必要とされる。リフレッシュ間隔が１０ナノ秒であり、リフレッシュ期間が８ミリ秒である場合、オーバヘッドは１６％も増大しうる。この大きなオーバヘッドの問題は、ＤＲＡＭ密度が増大するに従い、大きなものとなるかもしれない。
【００１３】
一実施例では、リフレッシュポートは、部分特定信号に対するインタフェースとリフレッシュ信号に対するインタフェースとを有する。他の実施例では、このような情報は、単一のインタフェースまたは共有インタフェースを介し伝達されるかもしれない。部分特定信号は、リフレッシュ信号がアサートされると、リフレッシュ対象となるメモリの一部を少なくとも部分的に特定する。例えば、部分特定信号は、リフレッシュ対象の行を示すかもしれない。多くのダイナミックメモリはリフレッシュプロセスにおいて支援するカウンタなどの論理を有するかもしれないため、記憶装置からの情報は部分特定信号と合成され、メモリのどの部分がリフレッシュされるべきかより具体的に判断される。他の例では、マルチバンクメモリにおいて、部分特定信号はバンク番号を特定し、メモリの内部カウンタはリフレッシュ対象のバンク内の行を特定するようにしてもよい。
【００１４】
例えば、図２の実施例では、メモリコントローラ２００は、Ｎ個のバンク２５４−１〜２５４−Ｎを有するメモリアレイ２５２を含む記憶装置２５０と通信する。典型的には、Ｎは必須ではないが、２のインテグラルパワー（ｉｎｔｅｇｒａｌ  ｐｏｗｅｒ）となる値である。メモリコントローラは、リフレッシュ制御論理２２０により生成されるリフレッシュコマンドを与えるリフレッシュポート２３０を有する。このリフレッシュコマンドは、１以上のコンダクタ２３５を介し記憶装置２５０のリフレッシュポート２７０に通信される。さらに本実施例では、リフレッシュカウンタ２７５−１〜２７５−Ｎがバンク２５４−１〜２５４−Ｎに対応して設けられる。
【００１５】
リフレッシュ制御論理２２０からのリフレッシュコマンドは、バンク番号とリフレッシュ信号を含むものであってもよい。一部のケースでは、専用のリフレッシュインタフェース及びインタフェースを示す専用のバンク番号群が、リフレッシュ信号とバンク番号を記憶装置に接続する対応するコンダクタに設けられてもよい。バンク番号は、記憶装置にリフレッシュ対象のバンクを示し、リフレッシュ信号に応答して、記憶装置は当該バンクをリフレッシュする。他の実施例では、当業者に理解されるような異なる通知手段が利用されてもよい。例えば、バンク番号などの部分表示信号の送信は、それ自体当該部分をリフレッシュするためのトリガーとして機能しうる。
【００１６】
他の実施例では、バンク表示インタフェースは、従来のデータ転送インタフェースと共有するようにしてもよい。リフレッシュのためのバンク番号は、データアクセスリクエストのバンク番号間に提供されてもよい。リフレッシュ信号は個別に提供されてもよい。従って、専用ポートを有する効果の一部は、ポートを備え、その他のインタフェースの一部を共有することにより実現されてもよい。
【００１７】
一実施例では、リフレッシュ信号（または等価なトリガー）は、あるバンクに対するリフレッシュを発生させ、その後、当該バンクの各リフレッシュカウンタを調整する。例えば、リフレッシュカウンタは、インクリメントまたはデクリメントされてもよい。従って、リフレッシュがあるバンクに進行するに従い、最終的には当該バンク全体がリフレッシュされる。さらに、リフレッシュカウントはローカルに格納されているため、より少ない情報しかメモリコントローラ２００から記憶装置２５０に転送される必要がない。このような他のアクセスパターンがあるタイプのメモリまたは設定による効果を提供する場合、行をリフレッシュする他のパターンがまた利用されてもよい。
【００１８】
一実施例では、メモリコントローラ２００と記憶装置は、データ転送ポート２１０と２６０を介しメモリリクエストとデータを交換する。コンダクタ群２２５は、各自のポート２１０と２６０との間でデータとリクエストを反映する信号を伝達する。メモリコントローラ２００は、メモリリクエスト論理２１５に従ってリクエストをスケジューリングするようにしてもよい。リクエストは、メモリコントローラ２００と他の装置をリンクさせる追加的コンダクタを介し受信されてもよいし、あるいはメモリコントローラ２００を有する装置上の処理論理により生成されてもよい。本実施例では、メモリ制御論理はメモリリクエスト論理２１５とリフレッシュ制御論理２２０の両方を有するため、メモリコントローラ２００はメモリリクエストとの干渉を低減するようリフレッシュを上手にスケジューリングすることができる。
【００１９】
例えば、メモリコントローラ２００は、バンク１へのメモリリクエストが発生するのと同時に、バンク１にリフレッシュをスケジューリングすることを回避することが可能である。従って、異なるバンクを同時に読み出し（または書き込み）、リフレッシュすることが可能である。一部のメモリは、複数のバンクの読み出し（または書き込み）あるいは複数のバンクのリフレッシュ処理を許可しているが、コンセプトは同様である。メモリコントローラ２００は、リフレッシュとメモリリクエストの組み合わせを最適化しようとすることが可能である。メモリリクエストやデータ帯域幅を消費しない専用ポートを介しリフレッシュを個別に送信する機能は、メモリとコントローラとの間の有効帯域幅をさらに効果的に拡大させるかもしれない。
【００２０】
高いメモリアクセス帯域幅を提供するため、メモリコントローラ２００は、一般にリフレッシュ処理とメモリアクセスとのコンフリクトが発生するとき、バンクに対するメモリリクエストを優先させるかもしれない。従って、メモリ使用率が高い期間中は、リフレッシュ制御論理２２０は、メモリアレイ２５２へのアクセスに対しやや飢餓状態であるかもしれない。一部のケースでは、記憶装置は、所定の期間内にリフレッシュがなされない場合、データを消失する可能性のあるダイナミックメモリであるかもしれず、そのような消失はしばしば許容できないものと考えられるであろう。従って、リフレッシュ制御論理２２０は、１以上のリフレッシュタイミングスーパーバイザを備えるようにしてもよい。このようなリフレッシュタイミングスーパーバイザは、メモリの行グループをリフレッシュするのに要する時間を監視している。メモリの行グループのリフレッシュにあまりに多くの時間がかかっている場合、メモリリクエスト論理２１５からのメモリリクエストに対する当該行群へのアクセスは、無視された行グループへのリフレッシュリクエストのより多くの合成を可能にするよう抑制されてもよい。
【００２１】
例えば、図２の実施例は、各バンクに対し１つのリフレッシュタイミングスーパーバイザＲＴＳ２２２−１〜２２２−Ｎを含む。リフレッシュタイミングスーパーバイザは、記憶装置２５０の各バンク２５４−１〜２５４−Ｎをリフレッシュするのに要する時間を監視する。あるバンクが十分なリフレッシュを受付けていない場合、リフレッシュタイミングスーパーバイザは、より多くのリフレッシュが可能となるように、当該バンクへのアクセスを抑制するようメモリリクエスト論理２１５と通信するようにしてもよい。メモリリクエスト論理２１５は、あるバンクへのすべてのリクエストを停止する必要はなく、例えば、ある期間におけるそのようなアクセスを抑制または軽減するようにしてもよい。リフレッシュに対する必要度に応じて、異なる軽減レベル及び／または段階的な軽減レベルが利用されてもよい。さらに、メモリリクエスト論理２１５は、必ずしもすべてのアクセスを抑制する必要はなく、リフレッシュを要するバンクに対するリフレッシュとコンフリクトしない他のバンクを優先させることも可能である。
【００２２】
図３は、一実施例による記憶装置とメモリコントローラ（一体化または分離の何れかであってもよい）などにより実行される処理をフローチャートにより示す。ブロック３８０に示されるように、メモリコントローラは、記憶装置にメモリアクセスコマンドを与える。このメモリアクセスコマンドは、典型的には、記憶装置のメモリアレイに対するデータの読み出しまたは書き込みを要求するものである。記憶装置は、ブロック３９０に示されるようなメモリアクセスコマンドを受信する。
【００２３】
さらに、ブロック３８２に示されるように、メモリコントローラは、それのリフレッシュポートを介しリフレッシュコマンドを発行する。一部の実施例では、リフレッシュコマンドは、メモリアクセスコマンドに同時に発行されるようにしてもよいが（例えば、同じくロックサイクルにおいて）、他の実施例では、これらのコマンドは当該時間の一部またはすべてにおいて相関していてもよいし、そうでなくてもよい。記憶装置は、ブロック３９２に示されるように、それのリフレッシュポートを介しリフレッシュコマンドを受信する。
【００２４】
リフレッシュコマンドの受信に応答して、ブロック３９４に示されるように、記憶装置はリフレッシュ処理を実行する。一部の実施例では、このリフレッシュ処理は、図２に関し説明されるように、メモリのリフレッシュカウンタにより部分的に指定され、リフレッシュコマンドの一部として送信されるバンク番号により部分的に指定される行に対するものであってもよい。他の実施例では、リフレッシュされる部分は、他の方法により指定されるかもしれない。リフレッシュされる部分の一部またはすべてはメモリコントローラにより指定されてもよいが、部分を指定する方法は、記憶装置の構成及び／またはアーキテクチャに基づき可変とされてもよい。
【００２５】
記憶装置がリフレッシュカウンタを有する記憶装置である場合、ブロック３９６に示されるように、記憶装置はそれのリフレッシュカウンタを調整するようにしてもよい。図２の実施例と同様の実施例では、各バンクはリフレッシュカウンタを有するようにしてもよく、これにより、記憶装置はあるバンクに対するリフレッシュカウンタを調整（例えば、インクリメントまたはデクリメントなど）するようにしてもよい。
【００２６】
メモリコントローラ側では、ブロック３８４〜３８８のイベントは記憶装置のイベントと必ずしも時間的に相関している必要はない。しかしながら、リフレッシュコマンドが送信された後、メモリコントローラは、リフレッシュ動作を監視するため、それの内部カウンタ、タイマなどを更新する。特に、メモリコントローラは、リフレッシュ基準が達成されたか監視している。このリフレッシュ基準は、典型的には、十分なリフレッシュが一定期間に行われているか示すものであり、データ消失を回避するためリフレッシュの合成を増加させることが賢明であるか通知するためものである。この基準が達成された場合、通常通り動作は継続し、メモリコントローラはブロック３８０に戻る。しかしながら、基準が達成されなかった場合、ブロック３８８に示されるように、メモリアクセスコマンドは抑制されてもよい。
【００２７】
例えば、図３の実施例に示されるように、リフレッシュ動作は、他のメモリアクセスリクエストが与えられる前に実行されてもよい。しかしながら、メモリコントローラは高度なスケジューリング機能を有するようにしてもよく、リフレッシュに対するバイアスを与えることが可能であってもよいし、あるいはリフレッシュを優先させるようにすることも可能である（すなわち、メモリリクエストの優先度を低下させる）。何れのケースでも、リフレッシュを優先させるよう抑制処理が実行されてもよい。この抑制処理は段階的なものであってもよく、リフレッシュに対する必要性が高くなるに従い、リフレッシュに対するより強いバイアスが提供される。この抑制処理はまた、メモリの特定のバンクまたは他のメモリ行グループのみに対するものであってもよく、他の行が容易にアクセスされることを可能にする。
【００２８】
図４は、リフレッシュポートを有するＤＲＡＭキャッシュを用いるプロセッサ４００を有するシステムの一実施例を示す。プロセッサ４００は、多様なタイプのプロセッサの何れであってもよい。例えば、プロセッサ４００は、デスクトップ、ラップトップ、サーバ、埋め込み型コンピュータなどを含む各種アプリケーションに対し利用可能な汎用プロセッサであってもよい。プロセッサ４００はまた、ネットワークプロセッサ、通信プロセッサ、グラフィックスプロセッサ、デジタル信号プロセッサ、あるいはキャッシュメモリを活用する他の任意のタイプの特定用途向けプロセッサなどの特定用途向けプロセッサであってもよい。
【００２９】
図４の実施例では、プロセッサ４００は、プロセッサダイ４１０と、記憶装置４５０及び４５５と、プロセッサダイ４１０と当該記憶装置を接続するバスとを有する。図４の実施例では、データバス４６０とコマンドアドレスバス４４０は、記憶装置４５０とプロセッサダイ４１０を接続する。同様に、データバス４６５とコマンドアドレスバス４４０は、記憶装置４５５とプロセッサダイ４１０を接続する。さらに、プロセッサダイ４１０は、キャッシュ制御回路４３０と、統合タグＲＡＭ４３５と、リフレッシュ制御論理４３２とを有する。キャッシュ制御回路４３０、統合タグＲＡＭ４３５、リフレッシュ制御論理４３２、２つの記憶装置４５０と４５５、及び相互接続バスは、まとめてレベル−Ｎキャッシュメモリ４２５を構成する。他の実施例では、異なる個数の記憶装置が利用されてもよい。さらに、分離された記憶装置は、各自のアドレスとコマンドバスを有し、これらのバスは各種実施例では多重化されてもよいし、そうでなくてもよい。
【００３０】
図４の実施例では、記憶装置４５０と４５５はそれぞれ、リフレッシュポート４５１と４５６を有する。一部のケースでは、これら２つの（またはそれ以上）記憶装置は、同様にアドレス指定されてもよい（すなわち、同一のバンクや行などが各記憶装置においてオープンされ、それぞれはデータブロックの一部を提供する）。従って、リフレッシュポート４５１や４５６などの複数のリフレッシュポートが、コンダクタ４３３によりリフレッシュ制御論理４３２に接続され、同様に制御されるようにしてもよい。言い換えると、同一の信号を各種装置に送信することにより、リフレッシュコントローラの制御の下、同一の行が各記憶装置においてリフレッシュされてもよい。他の実施例では、各種記憶装置は、個別のリフレッシュコマンドを有するようにしてもよい。
【００３１】
図４の実施例では、プロセッサダイ４１０はまた、レベル１キャッシュ４１５と、コア４０５と、アドレス変換論理４２０とを有する。コア４０５は、メモリへのアクセスを生成する指示を含む指示を実行することが可能な任意の実行コアを表す。メモリへのアクセスを生成する指示に応答して、コア４０５は、アドレスを含むメモリリクエストをアドレス変換論理４２０に出力する。アドレス変換論理４２０は、従来のページング、セグメント処理及び／または他の既知あるいは利用可能なアドレス変換機能を実行するようにしてもよい。さらに、このリクエストはレベル１キャッシュ４１５に通信される。レベル１キャッシュ４１５は、異なる実施例では、変換されたアドレスまたは変換されないアドレス上で動作するようにしてもよい。一部の実施例では、キャッシュヒットがレベル１キャッシュ４１５で発生したかどうかのテストは、メモリリクエストを次のレベルのキャッシュに転送するための前提条件となっていてもよい。他の実施例では、複数レベルのキャッシュへのアクセスは、低いレベルのキャッシュでのヒットまたはミスの決定の前に開始されてもよい。
【００３２】
何れのケースでも、メモリリクエストは、低いレベルのキャッシュにおいてミスが発生した場合、ある時点においてレベル−Ｎキャッシュ４２５に転送される。このメモリリクエストは、レベル−Ｎキャッシュに転送され、一部の実施例では、その後より低いレベルのキャッシュでのヒットに応じて中断されてもよい。キャッシュルックアップがレベル−Ｎキャッシュ４２５において実行されると仮定すると、キャッシュ制御回路４３０は、アドレス変換論理４２０から変換されたアドレスを受け取り、当該アドレスの記憶装置への送信を開始する。コマンドアドレスバス４４０がすぐに利用可能となる場合、当該リクエストからのアドレスの部分は、コマンドアドレスバス４４０上で駆動されるようにしてもよい。しかしながら、キャッシュ制御回路４３０は、コマンドアドレスバス４４０が使用中である場合、当該リクエストをキュー処理することを余儀なくされてもよい。何れのケーでも、キャッシュ制御回路４３０は、アドレス変換論理４２０から受信した変換されたアドレスの第１部分を送信することにより（バスまたはキューに）、変換されたアドレスの第１部分の転送を開始する。本実施例では、第１アドレス部分の転送が開始される時点において、当該アドレスの残りの部分は、タグルックアップが完了していないためわかっていない。実際、タグルックアップは、典型的にはヒットまたはミスが発生したか示しているため、要求されたメモリ位置がキャッシュ４２５においてキャッシュ処理されているかまだわからないかもしれない。
【００３３】
キャッシュ制御回路４３０はまた、アドレス変換論理４２０から受信したアドレスにしたがって、タグルックアップを開始する。従って本実施例では、統合タグＲＡＭ４３５からの経路情報は、少なくとも記憶装置への第１アドレス部分の転送が開始された後まで利用可能ではない。この経路情報は、コマンドアドレスバス４４０の以降のサイクルに対し駆動される。従って、タグルックアップ遅延は、まず行情報を送信し、その後、タグルックアップの結果を示す列情報を送信することにより効果的にマスク処理されてもよい。
【００３４】
図４の実施例のバス４４０は、複数のサイクルがメモリアレイから特定サイズのエントリを一意的に要求するのに必要とされるフルアドレスを送信するのに利用されてもよいという理由から、多重化されていてもよい。例えば、まず行アドレス部分とコマンドがバスを介し送信され、その後、キャッシュラインまたは他のデータユニットを選択するため、列アドレスがバスの同一ビットの少なくとも一部を介し送信されてもよい。異なる多重化構成が利用可能であるが、多重化されたアドレスとコマンドは、一般にはフルアドレスの他のビット（例えば、列ビット）に関して逐次的にフルアドレスの少なくとも一部のビット（例えば、行ビット）を送信する。一部の実施例では、コマンドは別のコマンドラインを有するようにしてもよく、コマンドは多重化されてもよいし、そうでなくてもよい。一部の実施例では、コマンドはアドレスまたはアドレス部分により多重化されてもよい。また前述のように、一部の実施例は多重化されたバスをまったく利用しなくてもよい。
【００３５】
図４に示されるシステムは、メモリバス４９２を介しメインメモリ４９５とプロセッサ４００を接続するメモリコントローラ４９０を有する。メインメモリは、様々なキャッシュレベルに保持される記憶領域と共に、これらのキャッシュレベルの何れにもまだキャッシュ処理されていない記憶領域を格納するようにしてもよい。従って、メインメモリ４９５は、典型的には、本実施例ではプロセッサの一部に接続及び／または搭載される最も高いキャッシュレベルであるレベル−Ｎキャッシュにおけるミスに応答してアクセスされる。メインメモリに用いられる記憶または格納技術のタイプは可変的なものであってもよく、メインメモリはまた様々なレベルの階層的ストア（例えば、ＤＲＡＭメモリやディスクなど）を有するようにしてもよい。さらに一部の実施例では、メモリコントローラ４９０はまた、プロセッサと一体化されてもよい。
【００３６】
最後に、図４のシステムはネットワークインタフェース論理４９９を有する。このネットワークインタフェース論理は、システム及びプロセッサ４００が各種タイプのネットワークの何れかを介し他の装置と通信することを可能にする。例えば、ネットワークインタフェース論理４９９は、ローカルエリアネットワーク、無線ネットワーク、ワイドエリアネットワークなどとのインタフェースを提供するようにしてもよい。ネットワークインタフェース論理４９９は、さらにまたは代わりに、アナログ、デジタルまたは光送信のための信号を変調または符号化する通信論理を有するようにしてもよい。ネットワークインタフェース論理４９９は、一部の実施例では、１以上のブリッジまたは他のコンポーネントを介しプロセッサに間接的に接続されてもよい。
【００３７】
図５は、図４に示されるものと同様の記憶装置とメモリコントローラとの間のトランザクション系列の一例を示す。本実施例では、データ転送インタフェースは、個別のコマンドバス（ＣＭＤ）、アドレスバス及びデータバスを有するものとして示される。例えば、図４のバス４４０は、アドレスコマンドコンダクタを有し、データバス４６０と４６５はデータコンダクタを有するようにしてもよい。他の実施例では、これらのバスは可変的な程度まで多重化されてもよい。コマンドクロック（ＣＬＫ）は基準を提供するが、他の実施例では、他のクロック処理スキームまたは非同期送信が利用されてもよい。また本実施例では、各記憶装置は８つのバンクを有し、これにより、３つのリフレッシュバンクアドレス信号（ＢＡ［２：０］）を用いてバンク番号を符号化する。
【００３８】
図５の例では、起動コマンド（ＡＣＴ）がゼロのクロックサイクルにおいてコマンドバス上で駆動される。バンク及び行情報がアドレスバス上で駆動され、この場合、バンク０、バンク１及び行０が示される。本実施例では、キャッシュラインが２つのバンクに格納されているため、１つのコマンドにより２つのページ（すなわち、２つのバンクと各々の行）がオープンされる。同時に（すなわち、同一のＣＭＤＣＬＫサイクルにおいて）、リフレッシュ信号（本例では、アクティブハイ）が、リフレッシュポートのリフレッシュ信号ラインに駆動される。さらに、この場合にはバンク４であるリフレッシュバンク番号が、リフレッシュポートのバンクラインに駆動される。バンク４は、リードコマンドに応答してオープンされた２つのバンク（バンク０とバンク１）に干渉しない。
【００３９】
ゼロのクロックサイクルの動作は、３つのノーオペレーション（ＮＯＰ）サイクルに続く。第４クロックサイクルでは、リードコマンドが、バンク、行及び列情報（バンク０、行０、列０）によりアドレスバスに駆動される。このとき、第２のリフレッシュ動作がリフレッシュポートを介し駆動される。従って、他のアクティブなリフレッシュ信号が駆動され、リフレッシュポートを介しリフレッシュバンク番号（バンク５）が駆動される。同じバンク（すなわち、バンク４）にリフレッシュが所望されると、記憶装置はそのようなアクセス間の必要とされる遅延を指定する可能性があるため、より長い遅延が必要とされるかもしれない。
【００４０】
ノーオペレーションがコマンドバスの第５及び第６クロックサイクルにおいて駆動される。第７クロックサイクルでは、起動コマンドが、バンク２、バンク３及び行１を示すアドレスバスによりコマンドバスに再び与えられる。第８クロックサイクルでは、リードコマンドがコマンドバスに駆動され、バンク１、行０及び列０がアドレスバスに駆動される。また第８クロックでは、他のリフレッシュ信号が駆動され、リフレッシュバンク信号はバンク６を示す。
【００４１】
ノーオペレーションが第９〜第１１クロックにおいて駆動されるが、第１リードリクエストに対応するデータ（バンク０、行０、列０）は、第１１クロックにおいてリターンし始める。図示された例では、データはダブルポンプ式に提供され、各クロックサイクルに２つのデータアイテムが送信される。本例では、このデータは第１１〜第１４クロックサイクルにおいて送信される。
【００４２】
第１２クロックサイクルにおいて、他のリードコマンドが駆動され、バンク２、行１及び列３を示す信号がアドレスバスに駆動される。さらに、他のリフレッシュ信号と他のリフレッシュバンク番号（バンク７）がリフレッシュポートを介し駆動される。第１３〜第１５クロックサイクル中には、コマンドバスにコマンドは駆動されない。しかしながら、第１５クロックサイクルにおいて、第２リードコマンドからのデータ（バンク１、行０、列０）がデータバスに出現し始める。第２リードコマンドのデータは、第１５〜第１８クロックサイクル中に駆動される。
【００４３】
第１６クロックサイクルにおいて、他のリードコマンドが駆動され、バンク３、行１及び列３がアドレスバスに駆動される。さらに、他のリフレッシュ信号と他のリフレッシュバンク番号（バンク４）がリフレッシュポートを介し駆動される。バンク４は、保留中のリードトランザクションとの干渉を回避するよう再び選ばれる。以降において、本例ではコマンドバス上のさらなるコマンドは図示されないが、バンク５に対するさらなるリフレッシュが第２０クロックサイクルにおいて発生される。さらに、第３リード（バンク２、行１、列３）と第４リード（バンク３、行１、列３）からのデータが、第１９〜第２６クロックサイクルにおいてデータバス上に配置される。一実施例では、キャッシュラインは、各記憶装置の２つのバンクを介し分割される。従って、２つのキャッシュラインのデータが、第１１〜第２６クロックサイクルにおいて与えられる。
【００４４】
上記コマンドとタイミングの関係は、単なる例示的なものとして与えられていると理解されるべきである。多数の異なるタイミングスキームが、現在利用可能であり、かつ当業者に入手可能な範囲の多数の異なる記憶装置の構成の観点から可能であろう。しかしながら、リフレッシュポートを利用することによって、各種メモリを介し効果が実現されてもよい。
【００４５】
さらに、設計が創作からシミュレーション、製造までの各種段階に経るようにしてもよい。設計を表すデータは、いくつかの方法により当該設計を表すかもしれない。まず、シミュレーションでは有用であるように、ハードウェア記述言語または他の機能記述言語を利用することにより、ハードウェアが表現されてもよい。さらに、論理及び／またはトランジスタゲートによる回路レベルも出るが、設計プロセスのいくつかの段階で生成されてもよい。さらに、ある段階における大部分の設計は、ハードウェアモデルにおける各種装置の物理的配置を表すデータのレベルに達する。従来の半導体製造技術が利用される場合、ハードウェアモデルを表すデータは、集積回路を生成するのに用いられるマスクの各マスクレイヤ上の各種構成の有無を指定するデータであってもよい。設計の何れかの表現では、データは任意の形態の機械可読媒体に格納されてもよい。ディスクなどの光ストレージ、磁気ストレージ、メモリなどの情報を送信するのに変調または生成される光波または電気波は、機械可読媒体であるかもしれない。このような媒体の何れかが、設計やソフトウェア情報を「搬送」または「表示」するかもしれない。コードや設計を表示または搬送する電気的搬送波が送信されるとき、電気信号の複製、バッファリングあるいは再送が行われる程度まで、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、本発明の技術を実現する物品（搬送波）をコピーするようにしてもよい。
【００４６】
以上、ダイナミックメモリのリフレッシュポートのための技術が開示された。特定の実施例が填補された図面において説明及び図示されたが、このような実施例は広範な発明の単なる例示であり、限定的なものではなく、本開示を研究することにより、当業者には様々な他の改良が想到されうるため、本発明は図示及び説明された具体的構成に限定されるものでないということは理解されるべきである。成長が急速であり、さらなる発展が容易に予見できないこのような技術分野では、開示された実施例は構成の点から容易に改良可能であり、添付された請求項の範囲または本開示の原理から逸脱することなく、技術的発展を可能にすることにより容易となるであろう。
【図面の簡単な説明】
【００４７】
【図１】図１は、各々がリフレッシュポートを有する記憶装置とプロセッサとを含むシステムの一実施例を示す。
【図２】図２は、リフレッシュポートを有する記憶装置とやりとりするメモリコントローラの一実施例を示す。
【図３】図３は、一実施例による記憶装置とメモリコントローラの動作のフロー図を示す。
【図４】図４は、リフレッシュポートを利用するＤＲＡＭキャッシュの一実施例を示す。
【図５】図５は、一実施例による一例となる動作例のタイミング図を示す。
【図１】
0004738814.tif 000002
【図２】
0004738814.tif 000003
【図３】
0004738814.tif 000004
【図４】
0004738814.tif 000005
【図５】
0004738814.tif 000006