(57)【要約】メモリデバイス（１５０）が、メモリデバイスの現在のバースト長設定によって指示されたバースト長とは異なるバースト長を特定する１つ以上のコマンドエンコーディングに応じるために実装され得る。例えば、メモリデバイス（１５０）は、メモリアレイ（１５２）と、現在のバースト長を示す数値を記録するために構築されたモードレジスタ（１５４）を含み得る。このメモリアレイ（１５２）は、第１コマンドエンコーディングを受信することに応じて第１バーストアクセスを実行するために構築されてよいし、第２コマンドエンコーディングを受信することに応じて現在のバースト長と等しくない、第２バースト長を有する第２バーストアクセスを実行するために構築されてよい。メモリコントローラ（１００）は、ターゲットとされたメモリデバイス（１５０）の現在のバースト長設定によって指示されたバースト長とは異なるバース長を特定する１つ以上のコマンドエンコーディングを生成するために実装され得る。
2005532657.tif 000002
【特許請求の範囲】
【請求項１】
バースト長を有するバーストアクセスをメモリデバイス（１５０）実行させるためのリクエストを受信し、
前記バースト長が、前記メモリデバイス（１５０）の現在のバースト長設定によって指示された第１バースト長であるとき、前記メモリデバイス（１５０）に第１コマンドエンコーディングを与え、かつ、
前記バースト長が、前記バースト長設定（１５４）によって指示された前記第１バースト長と等しくない第２バースト長であるとき、前記メモリデバイス（１５０）に第２コマンドエンコーディングを与え、
前記メモリデバイス（１５０）が、前記第１コマンドエンコーディングに応じて、前記第１バースト長を有する前記バーストアクセスを実行し、
前記メモリデバイス（１５０）が、前記第２コマンドエンコーディングに応じて、前記第２バースト長を有する前記バーストアクセスを実行する、方法。
【請求項２】
前記バーストアクセスは、リードアクセスである、請求項１記載の方法。
【請求項３】
前記メモリデバイスに第３バースト長を有する第２バーストアクセスを実行させるためのリクエストを受信し、
前記第３バースト長が前記バースト長設定によって指示された第１バースト長に等しくないとき、前記メモリデバイスに、第３コマンドエンコーディングを与え、
前記メモリデバイスが、前記第３コマンドエンコーディングに応じて、前記第３バースト長を有する前記第２バーストアクセスを実行するとともに、前記第２バーストアクセスがライトバーストアクセスである、請求項２記載の方法。
【請求項４】
前記メモリデバイスは、ＤＤＲIIＤＲＡＭである、請求項１記載の方法。
【請求項５】
前記第１コマンドエンコーディングを与える前記過程は、チップ選択信号、列アドレスストローブ、行アドレスストローブ信号、及びライトイネーブル信号の値をコントロールする過程を含み、かつ、
前記第２コマンドエンコーディングを与える前記過程は、前記チップ選択信号、前記アドレスストローブ信号、前記行アドレスストローブ信号、及び前記ライトイネーブル信号の値をコントロールする過程を含む、請求項１記載の方法。
【請求項６】
現在のバースト長を示す数値を記録するよう構成されたモードレジスタ（１５４）と、
メモリアレイ（１５２）とを含み、
前記メモリアレイ（１５２）は、符号化されたコマンドを受信するよう構成され、前記符号化されたコマンドは、バースト長を識別するものであり、
前記メモリアレイ（１５２）は、前記符号化されたコマンドを受信する過程に応じて、前記符号化されたコマンドによって識別された前記バースト長を有するバーストアクセスを実行するよう構成され、前記バースト長は、前記現在のバースト長とは異なるものである、メモリデバイス。
【請求項７】
前記メモリアレイは、第２バースト長を識別する第２符号化されたコマンドを受信し、かつ、これに応答して前記第２バースト長を有する第２バーストアクセスを実行可能に構成され、
前記第２バースト長は、前記バースト長とは異なるものであり、かつ、
前記メモリアレイは、前記符号化されたコマンドと前記第２符号化されたコマンドの双方に応じて、リードアクセスを実行するよう構成される、請求項６記載のメモリデバイス。
【請求項８】
前記メモリデバイスは、ＤＤＲIIＤＲＡＭである、請求項６記載のメモリデバイス。
【請求項９】
前記符号化されたコマンドは、チップ選択信号、列アドレスストローブ信号、行アドレス信号、及びライトイネーブル信号の数値として受信される、請求項６記載のメモリデバイス。
【請求項１０】
第１バースト長を有する第１メモリアクセスの受信に応じて第１コマンドエンコーディングを生成するよう構成され、かつ、第２バースト長を有する第２メモリアクセスリクエストの受信に応じて第２コマンドエンコーディングを生成するよう構成されたメモリコントローラ（１００）を有し、前記第１コマンドエンコーディングは、前記第１バースト長を識別し、前記第２コマンドエンコーディングは、第２バースト長を識別するものであり、
前記メモリコントローラ（１００）に結合され、かつ、前記第１コマンドエンコーディングの受信に応じて前記第１バースト長を有する第１バーストアクセスを実行するよう構成され、前記第２コマンドエンコーディングの受信に応じて前記第２バースト長を有する第２バーストアクセスを実行するよう構成されたメモリデバイス（１５０）を有する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、より具体的には、ＤＲＡＭ（Dynamic Random Access Memory：ダイナミックランダムアクセスメモリ）に用いられるバーストモードに関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）デバイスは、頻繁にモードレジスタを含む。ＤＲＡＭデバイスのモードレジスタに記録された数値が、ＤＲＡＭデバイスのバースト長をコントロールする。一般的には、初期化の際、特定のバースト長を識別するためにモードレジスタ数値が、初期化される。メモリコントローラが、バースト長の設定の変更を行うためにレジスタに記録された数値を更新する場合がある。しかし、バースト長の設定の変更は、時間のかかるプロセスであり得る。例えば、モードレジスタをプログラムするために、メモリコントローラが、ＤＲＡＭ全てのアクセスが完了してしまうまで待機状態となる場合があり、その後に適切なオップコードをある種のピン（例、アドレスピン及びＢＡ０ピン）に置き換えながら、（例、／ＣＳ（Chip Select:チップセレクト）、／ＲＡＳ（Row Address Strobe:行アドレスストローブ）、／ＣＡＳ（Column Address Strobe:コラムアドレスストローブ及び／ＷＥ（Write Enable:ライトイネーブル）のような）ある種のコマンド信号をアクティベートすることによってロードモードレジスタコマンドを発する場合がある。このロードモードレジスタコマンドを発した後、新たにＤＲＡＭアクセスを開始する前にメモリコントローラが、若干のサイクル数を待たなくてはならない場合がある。それ故、この方法でバースト長の設定の変更を行うことが、実行中のアクセスにおける意に反したパフォーマンス低下を強いることになり得る。
【０００３】
メモリコントローラは、異なるバースト長を有するアクセスリクエストを受信する場合がある。例えば、プロセッサトランザクションは、６４バイトブロックを含む得るが、ＡＧＰ（Advanced Graphics Port:）トランザクションは、３２バイトブロックを含み得る。幾つかのＤＲＡＭデバイスにおいては、６４バイトブロックのアクセスは、８バーストで実現され得るが、３２バイトブロックのアクセスは、４バーストで実現され得る。ＤＲＡＭバースト長が、モードレジスタに記録された数値によって設定されるので、帯域幅が浪費される（バースト長が８に設定され、３２バイトブロックのアクセスを実行している場合）か、特定の長さを有するトランザクションのコマンドを再発行しなくてはならない（バースト長が４に設定され、６４バイトブロックのアクセスを実行している場合）か、の何れかである。しかし、特定のバースト長のトランザクションを処理するためにバーストモードレジスタのバースト長を変更することは、より非効率的でさえあり得る。それ故、モードレジスタを更新する必要なしに、アクセスごとによるバースト長を動的に変更可能にすることが求められている。
【０００４】
現在では、モードレジスタにおけるバースト長設定より少ないバースト長のデータがメモリデバイスに実際に書き込まれるように、ライトアクセスを行っている間、メモリデバイスがある種のデータをマスクすることを可能にするというデータマスキング技術がある。しかし、これらのデータマスキング技術は、異なるバースト長のリードアクセスをサポートしないし、モードレジスタに特定されたバースト長より大きいバースト長もサポートしない。加えて、これらのデータマスキング技術は、メモリデバイスの付加のピンを用いることによって、何れのデータをマスクすべきかを頻繁に特定するが、これは幾つかのコンテキストにおいては望ましくない場合がある。
【発明の開示】
【課題を解決するための手段】
【０００５】
メモリデバイスの現在のバースト長によって指示されたバースト長とは異なるバースト長を特定する、１以上のコマンドエンコーディングに応じるために、メモリデバイスの様々な実施形態が、実装されてよい。一実施形態において、メモリデバイスが、現在のバースト長を示す数値を記録するために構築された、メモリアレイとモードレジスタを含んでよい。このメモリアレイは、第１コマンドエンコーディング受信に応じて、第１バースト長を有するバーストアクセスを実行するために構築されてよいし、第２コマンドエンコーディング受信に応じて、第２バースト長を有するバーストアクセスを実行するために構築されてよい。この第２バースト長は、現在のバースト長と等しくない。
【０００６】
ターゲットとされたメモリデバイスの現在のバースト長設定によって指示されたバースト長と異なるバースト長を特定する、１以上のコマンドエンコーディングを生成するためにメモリコントローラの様々な実施形態が、実装されてよい。例えば、一実施形態において、メモリコントローラは、メモリアクセスリクエストとコマンドエンコーダに応じて、アドレス信号を生成するために構築されたアドレス信号ジェネレータを含んでよい。メモリアクセスリクエストに応じて、メモリアクセスリクエストによって要請されたバーストアクセスが、第１バースト長を有すれば、第１コマンドエンコーダを生成するために、コマンドエンコーダを構築してよい。メモリアクセスリクエストによって要請されたバーストアクセスが、第２バースト長を有すれば、第２コマンドエンコーダを生成するために、コマンドエンコーダを構築してよい。メモリアクセスリクエストによってターゲットとされたメモリデバイスのバースト長設定が、第１数値を有するとき、第１コマンドエンコーディングと第２コマンドエンコーディングの双方を生成するために、コマンドエンコーダを構築してよいし、これによって、少なくとも１つのコマンドエンコーディングが、メモリデバイスの現在のバースト長設定によって指示されたもの以外のバースト長を特定する。  
【０００７】
システムは、メモリコントローラとメモリデバイスを含んでよい。このメモリコントローラは、第１バースト長を有する第１メモリアクセスリクエストを受信することに応じて、第１コマンドエンコーディングを生成するために構築されてよいし、第２バースト長を有する第２メモリアクセスリクエストを受信することに応じて第２コマンドエンコーディングを生成するために構築されてよい。このメモリデバイスは、第１コマンドエンコーディングを受信することに応じて、第１バースト長を有する第１バーストアクセスを実行するために構築されてよいし、第２コマンドエンコーディングの受信することに応じて、第２バースト長を有する第２コマンドエンコーディングを実行するために構築されてよい。この第２バースト長は、メモリデバイスのバースト長設定によって指示された現在のバースト長と異なる。
【０００８】
方法の一実施形態は、バースト長を有するバーストアクセスを実行するためにメモリデバイスリクエストを受信することを含み得る。このバースト長が、メモリデバイスの現在のバースト長設定によって指示された第１バースト長であれば、第１コマンドエンコーディングがメモリデバイスに与えられ得る。このバースト長が、バースト長設定によって指示された第１バースト長と等しくない、第２バースト長であれば、第２コマンドエンコーディングがメモリデバイスに与えられ得る。このメモリデバイスは、第１コマンドエンコーディングに応じて、第１バースト長を有するバーストアクセスを実行し、第２コマンドエンコーディングに応じて、第２バースト長を有するバーストアクセスを実行する。
【０００９】
幾つかの実施形態において、メモリデバイスは、現在のバースト長を示す数値を記録するために構築されたメモリアレイとモードレジスタを含み得る。このメモリアレイは、バースト長を識別する、符号化されたコマンドを受信するために構築されてよい。符号化されたコマンドに応じて、メモリアレイが、符号化されたコマンドによって識別されたバースト長を有するバーストアクセスを実行するために構築される。符号化されたコマンドによって識別されたバースト長は、現在のバースト長と異なる。
【００１０】
本発明は、種々の改善及び代替実施例に改変可能である一方で、本文の特定の実施形態は図面における実施例という方法で示され、詳細は以下に記載されている。しかし、本明細書に記載された特定の実施形態は、本開示の特定の形式に本発明を制限することを意図したものではないことが理解されなければならないし、それ以上に本発明は、添付された請求項に限定された本発明の趣旨の範囲内におけるすべての改善、均等物、及び代替例を含めたものである。
【発明を実施するための最良の形態】
【００１１】
本発明は、添付の図面に従った以下の詳細な記載を参照してより理解されよう。
図１は、メモリコントローラ１００とメモリデバイス１５０を含む、メモリシステム５０の一実施形態を示す。モードレジスタ１５４によって特定されたバースト長以外のバースト長を有するアクセスを実行するためにメモリデバイス１５０に命令する、１つ以上の異なるコマンドエンコーディングを生成するために、メモリコントローラ１００が、構築されてよい。モードレジスタ１５４に特定されたバースト長に係わらず、コマンドエンコーディングに特定されたバースト長を有するアクセスを実行することによって、異なるコマンドエンコーディングに応じるために、メモリデバイス１５０が、構築される。
【００１２】
メモリデバイス１５０は、ＤＤＲ  ＤＲＡＭ(Double Data Rate DRAM)、ＳＤＲＡＭ(Synchronous DRAM)、ＶＤＲＡＭ(Video DRAM)、ＲＤＲＡＭ(Rambus DRAM)、ＦＣＲＡＭ(Fast Cycle RAM)等のようなＤＲＡＭ(Dynamic Random Access Memory)デバイスであってよい。メモリデバイス１５０は、多重のメモリモジュール（例、ＳＩＭＭs又はＤＩＭＭｓ）を含んでよい。メモリデバイス１５０は、データ数値を記録する、メモリアレイ１５２に多くのメモリ素子を含んでよい。各メモリ素子は、データ１ビット以上を含んでよい。リード及びライトアクセスは、メモリアレイ１５２に記録されたデータ数値で実行される。
【００１３】
メモリコントローラ１００が、システムバスを介してデバイス（例、ＣＰＵ又は画像コントローラ）のメモリアクセスリクエストを受信すると、このリクエストを復号化し、システムバスアドレスを、メモリデバイス１５０に関する適切なメモリアドレスに変換する。このシステムバスアドレスは、アドレス信号ジェネレータ１０１によってメモリデバイスの適切なアドレス（例、バンク及び／又はコラムを特定するアドレス）に変換され得るし、実行すべきアクセスの形式を示す妥当なコマンドエンコーディングがコマンドエンコーダ１０３によって生成され得る。メモリコントローラ１００は、メモリアドレス信号１８２を介して適切なアドレスを、メモリデバイスに与える。図示された実施形態において、２セットのアドレス信号がある。即ち、ＢＡ０−ＢＡ１とＡ０−Ａ１１である。他の実施形態において、アドレス信号のセット及び数を異なるものとして使用可能であることに注目されたい。メモリコントローラ１００は、又、何れのオペレーション形式が特定されたアドレスにて実行されなくてはならないかを指示するために、妥当なコマンドエンコーディングを、メモリデバイスに与える。異なるコマンドエンコーディングは、コントロール信号１８０一セットの異なる数値を用いて特定される。図示された実施形態において、メモリコントローラ１００が、妥当なコマンドエンコーディングを生成するために少なくとも４つのアクティブ・ローのコントロール信号、即ち、／Ｓ（chip Select：チップセレクト ）、／ＣＡＳ（Column Address Strobe:列アドレスストローブ）、／ＲＡＳ（Row Address Strobe:行アドレスストローブ）、及び／ＷＥ（Write Enable：ライトイネーブル）をコントロールする（他のコントロール信号数値もコントロールされてよいことに注目されたい）。
【００１４】
アクセスは、コントロール信号１８２を介してアクティブコマンドエンコーディングをメモリデバイス１５０に与える、メモリコントローラ１００によって開始され得る。アクティブコマンドが、次のアクセスの特定のバンクにおいてページ（例えば、行）をオープン（又はアクティベイト）してよい。このメモリコントローラ１００が、何れのバンク及びページがアクティベイトすべきかを指示するメモリデバイスに、アドレス信号１８２を与える。例えば、ＢＡ０及びＢＡ１信号の数値が、バンクを選択してよいし、Ａ０−Ａ１１信号の数値が、ページを選択してよい。アクティベイトされたページは、プリチャージコマンドエンコーディングがこのバンクに発せられるまで、アクセス用にアクティブ（又はオープン）したままの状態でいる。プリチャージコマンドエンコーディングも又、同一のバンクに異なるページをオープンする前に発せられる。
【００１５】
ページがオープンされた後、リード又はライトコマンドエンコーディングが、メモリデバイス１５０に与えられてよい。アクティブなページにバーストリードアクセスを開始するためにリードコマンドが、用いられてよい。何れのデータを出力するかを識別するために、メモリコントローラ１００が、リードコマンドでアドレス信号１８２のある数値を与えてよい。例えば、ＢＡ０及びＢＡ１の入力数値が、アクセスするためにバンクを選択してよいし、入力Ａ０−Ａ１１が、バーストリードのページ（例えば、列）内にスタート箇所を選択してよい。異なるバースト長のバーストリードを要請する、幾つかの異なるリードコマンドエンコーディングが、与えられてよい。
【００１６】
アクティブページにライトアクセスを開始するために、メモリコントローラ１００は、ライトコマンドを特定するためのコマンド信号１８０の数値を生成してよい。アドレスのもう１つのセットは、書き込みされるべきデータを選択するために、ライトコマンドで与えられてもよい。例えば、ＢＡ０及びＢＡ１入力数値は、アクセスするためのバンクを選択してよいし、入力Ａ０−Ａ１１に与えられたアドレスは、バーストライトのためのカラムスタート箇所を選択してよい。異なるバースト長を特定する、幾つかの異なるライトコマンドエンコーディングが、与えられてよい。
【００１７】
バーストアクセスが、選択された箇所で開始し、（リード又はライトコマンドの特定のコマンドエンコーディングによって示されるように）プログラムされた、又はリクエストされたバースト数まで続く。バーストシーケンスは、シリアルバーストシーケンス又はインターリーブバーストシーケンスの何れかに従うようにプログラムされてよい。従来のＤＲＡＭｓは、１、２、４、８ビット、又はそれら以上のビットをリード又はライトするためにプログラムされてよい。一般的に、ＤＲＡＭｓは、パイプラインすることをサポートし、それが前のメモリリクエストを実行しながら、メモリトランザクションのアドレスを受け入れ、信号をコントロールすることを可能にさせる。
【００１８】
メモリデバイス１５０に含まれるモードレジスタ１５４は、メモリデバイスの動作の特定モードを定義するために用いられてよい。上述したように、モードレジスタ１５４が、バースト長設定の選択を可能にする。加えて、このモードレジスタ１５４は、（シーケンシャル、又はインターリーブの）バースト形式、ＣＡＳレイテンシ、及び動作モードの選択を可能にし得る。それ故、モードレジスタ１５４の設定が、メモリアレイ１５２がいずれの方法でアクセスを実行するかを、コントロールし得る。
【００１９】
モードレジスタ１５４は、モードレジスタ設定コマンドをメモリデバイス１５０に与えるために、メモリコントローラ１００によりプログラムされてよい。モードレジスタ設定コマンドでメモリデバイス１５０に与えられた、アドレス信号１８２の数値は、モードレジスタ１５４に記録するための新たな数値を示し得る。例えば、アドレスビットＡ０−Ａ２が、モードレジスタ１５４をプログラムするとき、バースト長を特定するために用いられてよい。モードレジスタ１５４に特定されたバースト長は、一般的なリード又はライトコマンドの際、アクセス可能であるコラム箇所の最大数を判断する。一実施形態において、バースト長２，４，８の列箇所を、シーケンシャル又はインターリーブバースト形式の双方に関して特定し得る。バンク全てがアイドル状態であり、現在進行中のバーストがないとき、新たな数値で、モードレジスタ１５４がロードされてよい。モードレジスタ１５４をプログラムした後、次に続く全ての動作を始める前に、メモリコントローラ１００が、特定された時間、待つことを要請される場合がある。
【００２０】
モードレジスタの設定を変更しなくても、異なるバースト長のアクセスを実行可能にするために、メモリデバイス１５０が、異なるコマンドエンコーディングに応じて異なるバースト長のバーストアクセスを実行するために構築されてよい。各コマンドエンコーディングは、コントロール信号数値の特定的なセットとして生成され、実行すべきアクセスの形式とバースト長の双方を示す。このコマンドエンコーディングは、もう１つのピンをメモリデバイス１５０に付加しなくてもいいように、多くの実施形態において（例えば、Ｓ，ＣＡＳ、ＲＡＳ、及びＷＥの数値のような）既存のコントロール信号数値の使用されていない組み合わせから選択され得る。異なるコマンドエンコーディング同士の区別を行い、及び特定されたバースト長のアクセスを実行することによって異なるコマンドエンコーディングの各々に応じるために、メモリデバイス１５０が、構築されてよい。一コマンドエンコーディングは、要請されたバースト長がモードレジスタ１５４におけるバースト長設定によって判断されなくてはならないことを示してよい。
【００２１】
表１は、一実施形態においてメモリコントローラ１００によって、メモリデバイス１５０に与えられ得る幾つかのコマンドエンコーディングのリストを示す。ＡＤＤＲは、ＢＡ０−ＢＡ１とＡ０−Ａ１１信号を含む。
表１
│名称（機能）                      │Ｓ│RAS │ＣＡ│ＷＥ│ADDR      │
│アクティブ                        │Ｌ│Ｌ  │Ｈ  │Ｈ  │バンク／  │
│（バンクとアクティブローを選択）  │  │    │    │    │行（row） │
│リード（バースト長＝８）          │Ｌ│Ｈ  │Ｈ  │Ｌ  │バンク／  │
│（バンクと列を選択、リードバースト│  │    │    │    │列（col） │
│を開始）                          │  │    │    │    │          │
│リード（バースト長＝モードレジスタ│Ｌ│Ｈ  │Ｌ  │Ｈ  │バンク    │
│バースト長）                      │  │    │    │    │列（col） │
│（バンクと列を選択、リードバースト│  │    │    │    │          │
│を開始）                          │  │    │    │    │          │
│ライト                            │Ｌ│Ｈ  │Ｌ  │Ｌ  │バンク    │
│（バンクと列を選択、ライトバースト│  │    │    │    │列（col） │
│を開始）                          │  │    │    │    │          │
│モードレジスタ設定                │Ｌ│Ｌ  │Ｌ  │Ｌ  │オプコード│
【００２２】
表１に示すように、一実施形態のメモリシステムは、２つの異なるリードコマンドエンコーディングをサポートし得る。１つのリードコマンドエンコーディングでは、特定のバースト長（８）を特定し、その一方で、他のエンコーディングではモードレジスタ１５４に特定されたバースト長を利用しなければならないことを示す。他の形態において、第２のエンコーディングは、特定のバースト長（例、４）が利用されなければならないことを示す場合がある。この実施形態において、これらのコマンドエンコーディングは、追加のコントロール信号又は追加のアドレス信号を用いることなしに特定されてよいことに注目されたい。メモリデバイス１５０は、データマスキングされていない、コマンドエンコーディングの各々に特定されるバースト長を有するバーストアクセスを実行することも注目されたい。この実施形態は、ＤＤＲIIＤＲＡＭに実装され得る。例えば、バースト長８を特定するリードコマンドエンコーディングは、ＤＤＲＩにおけるコマンドを終了するバーストを特定するために利用されるコマンドエンコーディングであり得る。
【００２３】
メモリコントローラ１００を、異なるデバイスから異なるバースト長リクエストを受信するように構成してもよい。リクエストされたバースト長により、メモリコントローラ１００は、何れのコマンドエンコーディングを、メモリデバイス１５０に与えるかを選択し得る。例えば、プロセッサトランザクションは、８バーストを含み得るが、画像コントローラ（例えば、図４に示す画像コントローラ４０８）によって始められたＡＧＰ（Advanced Graphics Port）トランザクションは、一度に４バーストを含み得る。プロセッサ（例えば、図４に示すＣＰＵ１０）が、トランザクションを始めれば、メモリコントローラ１００は、メモリデバイスから８バーストを要請するコマンドエンコーディングを出力し得る。替わりに画像コントローラがトランザクションを始めれば、メモリコントローラ１００は、メモリデバイスの４バーストを要請する異なるコマンドエンコーディングを出力し得る。モードレジスタ１５４における現在のバースト長設定にかかわらず、各コマンドエンコーディングに要請されたバースト数を出力することによって、メモリデバイス１５０は、対応し得る。
【００２４】
幾つかの実施形態において、何れの異なるコマンドエンコーディングがメモリコントローラ１００によって生成され得るかを、モードレジスタ１５４のバースト長設定が、判断し得る。バースト長が１つの数値を有し、このバースト長設定が他の数値を有すれば、利用されない場合、幾つかのコマンドエンコーディングが、利用され得る。例えば、一実施形態において、異なるコマンドエンコーディングが、現在のバースト長設定より大きいとき、又、等しいときにバースト長を特定するために利用され得る。従って、この実施形態において、現在のバースト長の設定が最大数値を有する場合、現在のバースト長設定に等しいバースト長を示す、又は現在のバースト長設定を使用しなければならないことを示す、１つのコマンドエンコーディングのみがメモリデバイスに与えられ得る。
【００２５】
他の形態において、モードレジスタの現在のバースト長設定にかかわらず、異なるコマンドエンコーディングの全てがメモリデバイスに与えられてよいことに注目されたい。これらの実施形態の幾つかにおいて、各コマンドエンコーディングは、（現在のバースト長設定が使用されなくてはならないことを示す、１つ以上のコマンドエンコーディングとは反対に）特定のバースト長を示し得る。幾つかの実施形態において、バーストアクセスを始めるために利用された各コマンドエンコーディングは、要請されたアクセスのバースト長を特定し得る。そのような実施形態において、各コマンドエンコーディングが、特定のバースト長を特定するので、モードレジスタにおけるバースト長設定は、重要ではない可能性がある。従って、幾つかの実施形態のメモリデバイスは、モードレジスタにおけるバースト長設定を提供しない場合がある。
【００２６】
幾つかの実施形態において、異なるコマンドエンコーディングは、リードとライトの双方に関して可能であり得る。他の実施形態において、（現在のバーストモードレジスタの設定が用いられなければならないことを示す）１つのコマンドエンコーディングがライト用に与えられてよいし、（各々が異なるバースト長、又は現在のバーストモードレジスタの設定が用いられなければならないことを特定する）幾つかのコマンドエンコーディングが、リード用に与えられてよい（又は逆も可である）。
【００２７】
一実施形態において、（例えば、Ｓ，ＲＡＳ、ＣＡＳ、及びＷＥに加えて）付加のコマンドラインが、（例えば、アクセスの異なる形式（例、リード又はライト）を特定し、又は追加のバースト長を特定する）追加のコマンドエンコーディングを定義するために用いられるように、新しい付加の（extra）コマンドピンがメモリデバイス１５０に追加され得る。そのような一実施形態において、コマンドエンコーディングは、バースト長２，４，８，及び／又は１６を特定するために利用され得る。追加のコマンドラインは、アドレスラインとして用いられない場合がある。１以上の追加のコマンドラインは、幾つかの実施形態において異なるバーストアクセスコマンドエンコーディングを特定するために利用され得る。
【００２８】
図２Ａ〜図２Ｃは、メモリシステムの一実施形態において生成され得る模範的なタイミング波形を示す。これらの例において、ＣＬ（ＣＡＳレイテンシ）＝４，ＡＬ（アクティブレイテンシ）＝０，ＲＬ（リードレイテンシ）＝４，及びＷＬ（ライトレイテンシ）である。これらの実施例において、モードレジスタにおけるバースト長設定は、各例にわたって、４に等しく設定されていると仮定する。例えば、図２Ａにおいて、モードレジスタのバースト長設定は、ＢＬ＝４リードコマンドとＢＬ＝８リードコマンドが実行される間、変更されず、ＢＬ＝８リードコマンドとＢＬ＝４リードコマンドが実行される間も、変更されない。
【００２９】
図２Ａは、ＢＬ（バースト長）＝４リードコマンドを実行し、次にＢＬ＝８リードコマンドともう１つのＢＬ＝リードコマンドの実行が続くことを表している。この例において、現在のバースト長が設定メモリデバイスに用いられなくてはならないことを示すコマンドエンコーディングを与えることによって、ＢＬ＝４リードコマンドが、始められ得る。ＢＬ＝８リードコマンドは、（現在のバースト長設定に係わらず）バースト長８を有するバーストアクセスが使用されなければならないことを示すコマンドエンコーディングを与えることによって、実行され得る。この例として、メモリデバイスは連続するデータストリームを出力することによってコマンドに対応し得るし、前のアクセスが完了してしまうと即、一アクセスを実行する。各アクセスは、要請されたバースト数に応じたサイクル数で実行されることにも注目されたい。図２Ｂは、ＢＬ＝４ライトコマンドの実行、次にＢＬ＝８ライトコマンドの実行が続くことを示す。図２Ｃは、ＢＬ＝８ライトコマンドの実行、次にＢＬ＝４ライトコマンドの実行が続くことを示す。
【００３０】
図３は、メモリシステムを動作させるための方法の一実施形態を示す。この実施形態において、特定のバースト長を有するバーストアクセスを実行するためのメモリデバイスの要請は、３０１で受信される。要請されたバースト長が、（例えば、モードレジスタに特定された）メモリデバイスの現在のバースト長設定と同様である場合、第１コマンドエンコーディングは、ブロック３０３〜ブロック３０５に示すようにメモリデバイスに与えられ得る。第１コマンドエンコーディングは、現在のバースト長設定が用いられなければならないことを示し得る。他の形態として、現在のバースト長設定と同様であるバースト長を特定することによって実行されなければならないバーストアクセスのバースト長を、第１コマンドエンコーディングが、特定的に示す場合がある。第１コマンドエンコーディングの受信に応じて、メモリデバイスは、ブロック３０９に示すようにバースト長を有するバーストアクセスを実行する。
【００３１】
リクエストされたバースト長がメモリデバイスの現在のバースト長設定と同じではない場合、第２コマンドエンコーディングが、ブロック３０３と３０９に示されるようにメモリデバイスに与えられ得る。第２コマンドエンコーディングは、少なくとも１つのコントロール信号の数値によって、第１コマンドエンコーディングと異なる。第２コマンドエンコーディングは、現在のバースト長設定によって示されたバースト長とは異なる、固有のバースト長を有するバーストアクセスが実行されなければならないことを示す。第２コマンドエンコーディングに応じて、メモリデバイスは、ブロック３１１に示されるように第２コマンドエンコーディングによって特定されたバースト長を有するバーストアクセスを実行する。第１及び第２コマンドエンコーディングの双方は、アクセスの同様の形式（例、リードアクセス）を特定するために利用されてよい。第１と第２コマンドエンコーディングに特定されたものと異なる、バースト長を有するアクセスを実行するために追加のコマンドエンコーディングを利用してもよく、及び／又は第１と第２コマンドエンコーディングに特定された形式とは異なる形式のアクセスを実行するために利用されてもよい。
【００３２】
図４は、バスブリッジ４０２を介して様々なシステム構成要素に結合されたプロセッサを含む、コンピュータシステム４００の一実施形態のブロック概略図である。コンピュータシステム４００は、図１〜図２に描かれた１つのようなメモリシステムの一実施形態を含んでよい。描かれた実施形態は、単に一例のみを表すのであって、このコンピュータシステムの他の実施形態が可能であり、考えられてよいことに注目されたい。この描かれたシステムでは、メインメモリ４０４は、メモリバス４０６を介してバスブリッジ４０２に結合され、画像コントローラ４０８は、ＡＧＰバス４１０を介してバスブリッジ４０２に結合される。幾つかのＰＣＩデバイス４１２Ａと４１２Ｂは、ＰＣＩバス４１４を介してバスブリッジ４０２に結合される。第２ブリッジ４１６も又、ＥＩＳＡ／ＩＳＡバス４２０を介して１つ以上のＥＩＳＡ又はＩＳＡデバイスに電気的インターフェースを内蔵するために与えられてよい。この例において、プロセッサ１０は、ＣＰＵバス４２４を介してバスブリッジ４０２に結合され、オプショナルＬ１キャッシュに結合される。幾つかの実施形態において、このプロセッサ１０は、（図示されていない）集積Ｌ１キャッシュを含んでよい。プロセッサ１０も又、幾つかの実施形態において、メモリコントローラ１００の一実施例を含んでよい。
【００３３】
バスブリッジ４０２は、プロセッサ１０、メインメモリ４０４、画像コントローラ４０８、及びＰＣＩバス４１４に接続されたデバイス間のインターフェースを与える。バスブリッジ４０２に接続されたデバイスの１つからオペレーションを、受信した場合、バスブリッジ４０２は、オペレーションのターゲット（例えば、特定のデバイス、又は、ＰＣＩバスの場合は、ターゲットがＰＣＩバス４１４に接続されていること）を識別する。バスブリッジ４０２は、ターゲットとされたデバイスにオペレーションをルートする。バスブリッジ４０２は、概して、ソースデバイス、又はソースバスにより利用されたプロトコルのオペレーションを、ターゲットデバイス又はターゲットバスにより利用されたプロトコルに変換する。一実施形態において、バスブリッジ４０２は、上述したようにメモリコントローラ１００の一実施形態を含んでよい。
【００３４】
ＰＣＩバス４１４のＩＳＡ／ＥＩＳＡバスに対するインターフェースを与えることに加えて、第２バスブリッジ４１６は、付加の機能を含んでよい。入出力コントローラ（図示されない）は、第２バスブリッジ４１６の外部であれ、又は統合されているにせよ、キーボードとマウス４２２と様々なシリアルポート及びパラレルポートのオペレーションをサポートするためにコンピュータシステム４００内に含まれてよい。他の実施形態において、（図示されない）外部キャッシュユニットも又、プロセッサ１０とバスブリッジ４０２間におけるＣＰＵバス４２４に結合してよい。他の形態では、外部のキャッシュは、バスブリッジ４０２に統合されてよいし、外部キャッシュのキャッシュコントロールロジックは、バスブリッジ４０２に統合されてよい。Ｌ２キャッシュ４２８は、プロセッサ１０のバックサイド構築において示される。Ｌ２キャッシュ４２８は、プロセッサ１０から分離してよいし、プロセッサ１０でカートリッジ（例、スロット１又はスロットＡ）内に統合されてよいし、プロセッサ１０で半導体基板上に統合されてもよい。
【００３５】
メインメモリ４０４は、アプリケーションプログラムが記録され、プロセッサ１０が主に実行するメモリである。適切なメインメモリ４０４は、ＤＲＡＭを含む。例えば、ＳＤＲＡＭ又はＲａｍｂｕｓ ＤＲＡＭ（ＲＤＲＡＭ）の複数のバンクが適切であり得る。メインメモリデバイス４０４は、現在のバースト長設定によって指示されたバースト長以外のバースト長を特定する異なる、コマンドエンコーディングに応じるするために構築されてよい。
【００３６】
ＰＣＩバス４１２Ａ〜４１２Ｂは、ネットワークインターフェース、ビデオアクセラレータ、オーディオカード、ハード又はフロッピイディスクドライバ、又はドライブコントローラ、ＳＣＳＩ（Small Computer System Interface:スモールコンピュータシステムインターフェース）アダプター、及び電話カードのような様々な周辺機器を例示したものである。同様に、ＩＳＡデバイス４１８は、モデム、サウンドカード、及び、ＧＰＩＢ又はフィールドバスインターフェースカードのような種々のデータ取得カードのような様々な周辺機器の様々な形式の例示したものである。
【００３７】
画像コントローラ４０８は、ディスプレイ４２６のテキストと画像の表示をコントロールするために与えられてよい。画像コントローラ４０８としては、メインメモリ４０４に効率的にシフトイン及びシフトアウト可能である三次元データ構造を表示する、当業者には周知である一般的な画像アクセラレータを用いてよい。それ故、画像コントローラ４０８は、メインメモリ４０４へのアクセスを入手するために、バスブリッジ４０２内のターゲットインターフェースに対するアクセスを要請及び受信可能であるＡＧＰバス４１０のマスターであってよい。専用の画像バスは、メインメモリ４０４のデータの急速な読み取りを含む。ある種のオペレーションに関して、画像コントローラ４０８は、更に、ＡＧＰバス４１０のＰＣＩプロトコルトランザクションを生成するために構築されてよい。それ故、バスブリッジ４０２のＡＧＰインターフェースは、ＰＣＩプロトコルターゲットとイニシエータトランザクションと同様に、双方のＡＧＰプロトコルトランザクションをサポートするための機能性を含んでよい。ディスプレイ４２６は、画像、又はテキストが表示される、全ての電気的ディスプレイである。適切なディスプレイ４２６は、陰極線管(“ＣＲＴ”:Cathode Ray Tube）、液晶ディスプレイ（“ＬＣＤ”）等を含む。
【００３８】
ＡＧＰ、ＰＣＩ、及びＩＳＡ又はＥＩＳＡバスが上述した本文における例として用いられた一方で、全てのバスが求められるように、置き換えられてよいことに注目されたい。更に、コンピュータシステム４００は、付加のプロセッサ（例えば、コンピュータシステム４００のオプショナル構成成分として示されるプロセッサ１０ａ）を含む多重プロセッシングコンピュータシステムであってよい。プロセッサ１０ａは、プロセッサ１０と同様であってよい。より具体的には、プロセッサ１０ａは、プロセッサ１０の同一の複製物であってよい。プロセッサ１０ａは、（図５に示すように）独立したバスを介してバスブリッジ４０２に接続されてよいし、プロセッサ１０とＣＰＵバス２２４を共有してよい。更に、プロセッサ１０ａは、Ｌ２キャッシュ４２８と同様に、オプショナルＬ２キャッシュ４２８aに結合してよい。
【００３９】
図５を参照すると、上述したメモリシステムを含む、コンピュータシステムのもう１つの実施形態が示されている。他の実施形態が、可能であり、考えられる。図５における実施形態において、コンピュータシステム４００は、幾つかのプロセッシングノード６１２Ａ、６１２Ｂ、６１２Ｃ、及び６１２Ｄを含む。各プロセッシングノードは、各メモリ６１４Ａ〜６１２Ｄにそれぞれ、含まれるメモリコントローラメモリ６１６Ａ〜６１６Ｄを介して、６１４Ａ〜６１２Ｄにそれぞれ、結合される。加えて、プロセッシングノード６１２Ａ〜６１２Ｄは、プロセッシングノード６１２Ａ〜６１２Ｄ間の通信を行うために利用されるインターフェースロジック６１８Ａを含む。例えば、プロセッシングノード６１２Ａは、プロセッシングノード６１２Ｂと通信を行うためのインターフェースロジック６１８Ａと、プロセッシングノード６１２Ｃと通信を行うためのインターフェースロジック６１８Ｂと、及び（図示されていない）もう１つのプロセッシングノードと通信を行うための第３インターフェースロジック６１８Ｃを含む。同様に、プロセッシングノード６１２Ｂは、インターフェースロジック６１８Ｄ、６１８Ｅ及び６１８Ｆを含み、プロセッシングノード６１２Ｃは、インターフェースロジック６１８Ｇ、６１８Ｈ及び６１８Ｉを含み、プロセスノード６１２Ｄは、インターフェースロジック６１８Ｊ、６１８Ｋ、及び６１８Ｌを含む。プロセッシングノード６１２Ｄは、インターフェースロジック６１８Ｌを介して複数の入／出力デバイス（例、デイジーチェーン構築におけるデバイス６２０Ａ〜６２０Ｂ）と通信を行うために結合する。他のプロセッシングノードは、他の入／出力（Ｉ／Ｏ）デバイスと同様の方法で通信を行ってよい。
【００４０】
プロセッシングノード６１２Ａ〜６１２Ｄは、インタープロセッシングノード通信のためのパケットベースのリンクを実装する。本実施形態において、このリンクは、非指向性のラインセットとして、実装される（例えば、ライン６２４Ａは、プロセッシングノード６１２Ａからプロセッシングノード６１２Ｂに複数のパケットを、伝送するために利用され、ライン６２４Ｂは、プロセッシングノード６１２Ｂからプロセッシングノード６１２Ａに複数のパケットを、伝送するために利用される）。他のライン６２４Ｃ〜６２４Ｈのセットは、図５に示された他のプロセッシングノード間にパケットを伝送するために利用される。概して、ライン６２４の各セットは、１つ以上のデータライン、これらのデータラインに対応する１つ以上のクロックライン、及び伝送されているパケットの形式を示す１以上のコントロールラインを含んでよい。このリンクは、プロセッシングノード間の通信を行うためにキャッシュコヒーレントな方法で動作してよいし、プロセッシングノードとＩ／Ｏデバイス（又はＰＣＩバス又はＩＳＡバスのような従来の構造のＩ／Ｏバスに対するバスブリッジ）間の通信を行うために非コヒーレントな方法で操作してよい。更に、図示されたようにＩ／Ｏデバイス間にデイジーチェーン構造を用いてこのリンクが、動作されてよい。あるプロセッシングノードから他のプロセッシングノードに伝送されなければならないパケットは、１以上の中間ノードを通じてよいことに注目されたい。例えば、プロセッシングノード６１２Ａによりプロセッシングノード６１２Ｄに伝送されたパケットは、図５に示すようにプロセッシングノード６１２Ｂ又はプロセッシングノード６１２Ｂの何れかを通じてよい。全ての適切なルーチンアルゴリズムが実行されてよい。コンピュータシステム４００の他の実施形態は、図５に示す実施形態よりも多いプロセッシングノード、又は少ないプロセスノードを含む場合がある。
【００４１】
概して、パケットは、ノード間のライン６２４に１以上のビット時間として伝送され得る。ビット時間は、対応するクロックラインのクロック信号の立ち上がりエッジ又は立ち下がりエッジであり得る。パケットは、トランザクションを始めるためのコマンド、キャッシュの可干渉性を保持するためのプローブパケット、プローブ及びコマンドに応じるためのレスポンスパケットを含んでいる場合がある。
【００４２】
メモリコントローラとインターフェースロジックに加えて、プロセッシングノード６１２Ａ〜６１２Ｄは、１つ以上のプロセッサを含んでよい。大まかに言えば、プロセッシングノードは、少なくとも１つのプロセッサを含み、求めれるように、メモリと他のロジックとの通信を行うためのメモリコントローラをオプションで含んでよい。より具体的には、プロセッシングノード６１２Ａ〜６１２Ｄの各々は、１つ以上のプロセッサ１０の複製品を含んでよい。外部インターフェースユニット１８は、メモリコントローラ６１６と同様にノード内にインターフェースロジック６１８を含んでよい。メモリコントローラ６１６の各々は、上述したようにメモリコントローラの一実施形態を含んでよい。
【００４３】
メモリ６１４Ａ〜６１４Ｄは、適切なメモリデバイスを含んでよい。例えば、メモリ６１４Ａ〜６１４Ｄは、１つ以上のＲＡＭＢＵＳ ＤＲＡＭｓ（ＲＤＲＡＭｓ）、同期ＤＲＡＭｓ（ＳＤＲＡＭｓ）、スタティックＲＡＭ等を含んでよい。コンピュータシステム４００のアドレススペースは、メモリ６１４Ａ〜６１４Ｄの間で分配される。各プロセッシングノード６１２Ａ〜６１２Ｄは、何れのアドレスがメモリ６１４Ａ〜６１４Ｄの何れにマップされるかを判断し、従って、特定のアドレスのメモリリクエストが、プロセスノード６１２Ａ〜６１２Ｄの何れにルートされなければならないかを判断するために用いられるメモリマップを含んでよい。一実施形態によると、コンピュータシスステム４００内のアドレスの可干渉箇所は、このアドレスに対応するバイトを記録するメモリに結合されるメモリコントローラ６１６Ａ〜６１６Ｄである。即ち、メモリコントローラ６１６Ａ〜６１６Ｄは、対応するメモリ６１４Ａ〜６１４Ｄに対する各アクセスが、キャッシュコヒレント方法で生じることを確認する義務を担っている。メモリコントローラ６１６Ａ〜６１６Ｄは、メモリ６１４Ａ〜６１４Ｄにインターフェースするためのコントロール回路を含み得る。加えて、メモリコントローラ６１６Ａ〜６１６Ｄは、キューメモリリクエストのためのリクエストキューを含んでよい。
【００４４】
インターフェースロジック６１８Ａ〜６１８Ｌは、リンクからパケットを受信するための様々なバッファと、リンク上で伝送されなければならないパケットをバッファするための様々なバッファを含んでよい。コンピュータシステム４００は、パケットを伝送するためのコントロール機構の全ての適切なフローコントロールを実行してよい。例えば、一実施形態において、各インターフェースロジック６１８は、インターフェースロジックが接続されるリンクのもう一方の端でのレシーバ内の各バッファ形式の数のカウントを記録する。インターフェースロジックは、受信するインターフェースロジックがパケットを記録するためのフリーバッファを有さない限り、パケットを伝送しない。受信するバッファは、パケットを先へルートすることによってフリーになるので、受信するインターフェースロジックは、バッファがフリーになったことを示すためにメッセージを、送信インターフェースロジックに伝送する。このような機構は、“クーポンベース”システムと称される場合がある。
【００４５】
Ｉ／Ｏデバイス６２０Ａ〜６２０Ｂは、適切なＩ／Ｏデバイスであり得る。例えば、Ｉ／Ｏデバイス６２０Ａ〜６２０Ｂは、デバイスに結合されてよい、もう１つのコンピュータシステムと通信を行うためのデバイス（例、ネットワークインターフェースカード、又はモデム）を含んでよい。更に、Ｉ／Ｏデバイス６２０Ａ〜６２０Ｂは、ビデオアクセラレータ、オーディオカード、ハード又はフロッピーディスクドライブ又はドライブコントローラ、ＳＣＳＩアダプタ、及びテレフォンカード、サウンドカード、及びＧＰＩＢ又はフィールドバスインターフェースカードのような様々なデータ収集カードを含んでよい。用語“Ｉ／Ｏデバイス”と“周辺機器”は、本文において同義であることを意図している。
【００４６】
上述した本開示の教示から利益を得る当業者にとって、多くの変形又は変更が可能であることが明瞭となろう。この種の変形例の全てが本発明の範囲ならびに趣旨に含まれることが意図されることが明らかである。
【産業上の利用可能性】
【００４７】
本発明は、概して、コンピュータシステムに適用可能である。  
【図面の簡単な説明】
【００４８】
【図１】メモリシステムの一実施形態の説明図。
【図２Ａ】メモリシステムの一実施形態のオペレーションを表すタイミングの概略説明図。
【図２Ｂ】メモリシステムの一実施形態のオペレーションを表すタイミングの概略説明図。
【図２Ｃ】メモリシステムの一実施形態のオペレーションを表すタイミングの概略説明図。
【図３】メモリシステムを動作するための方法の一実施形態のフローチャート。
【図４】図１に示すようなメモリシステムの一実施形態を含む、コンピュータシステムの実施形態の概略説明図。
【図５】図１に示すようなメモリシステムの一実施形態を含む、コンピュータシステムの実施形態の概略説明図。
【図１】
2005532657.tif 000003
【図２Ａ】
2005532657.tif 000004
【図２Ｂ】
2005532657.tif 000005
【図２Ｃ】
2005532657.tif 000006
【図３】
2005532657.tif 000007
【図４】
2005532657.tif 000008
【図５】
2005532657.tif 000009
【国際調査報告】
2005532657.tif 000010
2005532657.tif 000011