(57)【特許請求の範囲】
【請求項１】
第１の物理ＤＲＡＭデバイス及び第２の物理ＤＲＡＭデバイスを含む第１の数の物理ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスと、
前記第１の物理ＤＲＡＭデバイスに接続された第１の命令バス及び前記第２の物理ＤＲＡＭデバイスに接続された別の第２の命令バスを含む複数の命令バスを介して前記第１の数の物理ＤＲＡＭデバイスに電気的に接続されたインタフェース回路と、
を備え、
前記インタフェース回路は、
前記第１の数の物理ＤＲＡＭデバイス及びメモリコントローラと通信し、
前記メモリコントローラに対して、別の第２の数の仮想ＤＲＡＭデバイスをシミュレートするように、前記第１の数の物理ＤＲＡＭデバイスをインタフェースし、前記第２の数の仮想ＤＲＡＭデバイスは、少なくとも前記第１の物理ＤＲＡＭデバイス及び前記第２の物理ＤＲＡＭデバイスを用いてシミュレートされた第１の仮想ＤＲＡＭデバイスを含み、
前記第１の仮想ＤＲＡＭデバイスにおける仮想行をシミュレートし、前記仮想行は、前記第１の物理ＤＲＡＭデバイスの物理行及び前記第２の物理ＤＲＡＭデバイスの物理行を含む前記物理ＤＲＡＭデバイスにおける複数の物理行に基づいており、前記第１の物理ＤＲＡＭデバイスの前記物理行は前記第１の命令バスを介してアクティブ化されるように構成されており、前記第２の物理ＤＲＡＭデバイスの前記物理行は前記第２の命令バスを介してアクティブ化されるように構成されており、
前記メモリコントローラから前記仮想行を対象とする１つの行アクティブ化命令を受け取り、
前記メモリコントローラから１つの列アクセス命令を受け取り、前記１つの列アクセス命令は、前記仮想行のための前記１つの行アクティブ化命令の受け取りに応じて、物理行アクティブ化命令を前記物理ＤＲＡＭデバイスのいずれかに対して発行する前に受け取られ、
前記１つの列アクセス命令は前記仮想行の仮想列を対象とするように決定し、前記仮想列は前記第１の物理ＤＲＡＭデバイスの前記物理行の物理列に対応しており、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に基づいて、前記第１の物理ＤＲＡＭデバイスの前記物理行のための物理行アクティブ化命令を決定し、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に対応する前記仮想ＤＲＡＭデバイスにおける前記仮想行の一部をアクティブ化するように、前記第１の命令バスを介して前記決定した物理行アクティブ化命令を前記第１の物理ＤＲＡＭデバイスに対して発行する、
ように構成されている、サブシステム。
【請求項２】
前記個々の仮想ＤＲＡＭデバイスのそれぞれは仮想行のサイズを有し、前記個々の物理ＤＲＡＭデバイスのそれぞれは物理行のサイズを有し、前記仮想行のサイズは前記物理行のサイズより大きく、
前記インタフェース回路は、１つの特定の物理ＤＲＡＭデバイスにおける１つの特定の行をアクティブ化することによって、特定の仮想ＤＲＡＭデバイスにおける行の一部をアクティブ化するように構成されている、
請求項１に記載のサブシステム。
【請求項３】
前記第１の数の物理ＤＲＡＭデバイスは、第１の命令スケジューリングにおける制約と関連付けされており、前記別の第２の数の仮想ＤＲＡＭデバイスは、前記第１の命令スケジューリングにおける制約と異なる第２の命令スケジューリングにおける制約と関連付けされており、
前記インタフェース回路は、更に、前記メモリコントローラに対して、前記第１の命令スケジューリングにおける制約を満たすように、前記第１の数の物理ＤＲＡＭデバイスをインタフェースするように構成されている、
請求項１に記載のサブシステム。
【請求項４】
前記第１の命令スケジューリングにおける制約及び前記第２の命令スケジューリングにおける制約が、デバイス内命令スケジューリングにおける制約を含んでいる、請求項３に記載のサブシステム。
【請求項５】
前記デバイス内命令スケジューリングにおける制約が、列間遅延時間（ｔＣＣＤ）、行間アクティブ化遅延時間（ｔＲＲＤ）、４バンクアクティブ化ウィンドウ時間（ｔＦＡＷ）又は書込み−読取りターンアラウンドタイム（ｔＷＴＲ）の少なくとも１つを含んでいる、請求項４に記載のサブシステム。
【請求項６】
前記第１の命令スケジューリングにおける制約及び前記第２の命令スケジューリングにおける制約が、デバイス間命令スケジューリングにおける制約を含んでいる、請求項３に記載のサブシステム。
【請求項７】
前記デバイス間命令スケジューリングにおける制約が、ランク間のデータバスターンアラウンドタイム又はオンダイターミネーション（ＯＤＴ）制御スイッチング時間の少なくとも１つを含んでいる、請求項６に記載のサブシステム。
【請求項８】
前記物理ＤＲＡＭデバイスのそれぞれが、独立したバスを介して前記インタフェース回路に接続されている、請求項１に記載のサブシステム。
【請求項９】
第１の物理ＤＲＡＭデバイス及び第２の物理ＤＲＡＭデバイスを含む第１の数の物理ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスをインタフェースするステップであって、メモリコントローラにプリセットするために別の第２の数の仮想ＤＲＡＭデバイスをシミュレートするようになっている、当該ステップと、
前記第２の数の仮想ＤＲＡＭデバイスの第１の仮想ＤＲＡＭデバイスにおける仮想行をシミュレートするステップであって、前記仮想行は、前記第１の物理ＤＲＡＭデバイスの物理行及び前記第２の物理ＤＲＡＭデバイスの物理行を含む前記物理ＤＲＡＭデバイスにおける複数の物理行に基づいており、前記第１の物理ＤＲＡＭデバイスの前記物理行は第１の命令バスを介してアクティブ化されるように構成されており、前記第２の物理ＤＲＡＭデバイスの前記物理行は第２の命令バスを介してアクティブ化されるように構成されている、当該ステップと、
前記メモリコントローラから前記仮想行を対象とする１つの行アクティブ化命令を受け取るステップと、
前記メモリコントローラから１つの列アクセス命令を受け取るステップであって、前記１つの列アクセス命令は、前記仮想行のための前記１つの行アクティブ化命令の受け取りに応じて、物理行アクティブ化命令を前記物理ＤＲＡＭデバイスのいずれかに対して発行する前に受け取られる、当該ステップと、
前記１つの列アクセス命令が前記仮想行の仮想列を対象とするように決定するステップであって、前記仮想列は前記第１の物理ＤＲＡＭデバイスの前記物理行の物理列に対応する、当該ステップと、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に基づいて、前記第１の物理ＤＲＡＭデバイスの前記物理行のための物理行アクティブ化命令を決定するステップと、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に対応する前記仮想ＤＲＡＭデバイスにおける前記仮想行の一部をアクティブ化するように、前記第１の命令バスを介して前記決定した物理行アクティブ化命令を前記第１の物理ＤＲＡＭデバイスに対して発行するステップと、
を備える、方法。
【請求項１０】
前記仮想ＤＲＡＭデバイスは仮想行のサイズを有し、前記物理ＤＲＡＭデバイスは物理行のサイズを有し、前記仮想行のサイズは前記物理行のサイズより大きく、前記仮想ＤＲＡＭデバイスにおける行の一部を必要に応じてアクティブ化するステップは、更に、１つの特定の物理ＤＲＡＭデバイスにおける１つの特定の行をアクティブ化することによって、前記仮想ＤＲＡＭデバイスにおける前記行の前記一部をアクティブ化する工程を備える、請求項９に記載の方法。
【請求項１１】
前記第１の数の物理ＤＲＡＭデバイスは、第１の命令スケジューリングにおける制約と関連付けされており、前記別の第２の数の仮想ＤＲＡＭデバイスは、前記第１の命令スケジューリングにおける制約と異なる第２の命令スケジューリングにおける制約と関連付けされており、前記第１の命令スケジューリングにおける制約及び前記第２の命令スケジューリングにおける制約は、デバイス内命令スケジューリングにおける制約を含む、請求項９に記載の方法。
【請求項１２】
前記デバイス内命令スケジューリングにおける制約が、列間遅延時間（ｔＣＣＤ）、行間アクティブ化遅延時間（ｔＲＲＤ）、４バンクアクティブ化ウィンドウ時間（ｔＦＡＷ）又は書込み−読取りターンアラウンドタイム（ｔＷＴＲ）の少なくとも１つを含んでいる、請求項１１に記載の方法。
【請求項１３】
前記第１の数の物理ＤＲＡＭデバイスは、第１の命令スケジューリングにおける制約と関連付けされており、前記別の第２の数の仮想ＤＲＡＭデバイスは、前記第１の命令スケジューリングにおける制約と異なる第２の命令スケジューリングにおける制約と関連付けされており、前記第１の命令スケジューリングにおける制約及び前記第２の命令スケジューリングにおける制約は、デバイス間命令スケジューリングにおける制約を含む、請求項９に記載の方法。
【請求項１４】
前記デバイス間命令スケジューリングにおける制約が、ランク間のデータバスターンアラウンドタイム又はオンダイターミネーション（ＯＤＴ）制御スイッチング時間の少なくとも１つを含んでいる、請求項１３に記載の方法。
【請求項１５】
メモリコントローラと、
第１の物理ＤＲＡＭデバイス及び第２の物理ＤＲＡＭデバイスを含む第１の数の物理ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスと、
前記第１の物理ＤＲＡＭデバイスに接続された第１の命令バス及び前記第２の物理ＤＲＡＭデバイスに接続された別の第２の命令バスを含む複数の命令バスを介して前記第１の数の物理ＤＲＡＭデバイスに電気的に接続されたインタフェース回路と、
を備え、
前記インタフェース回路は、
前記第１の数の物理ＤＲＡＭデバイス及びメモリコントローラと通信し、
前記メモリコントローラに対して、別の第２の数の仮想ＤＲＡＭデバイスをシミュレートするように、前記第１の数の物理ＤＲＡＭデバイスをインタフェースし、前記第２の数の仮想ＤＲＡＭデバイスは、少なくとも前記第１の物理ＤＲＡＭデバイス及び前記第２の物理ＤＲＡＭデバイスを用いてシミュレートされた第１の仮想ＤＲＡＭデバイスを含み、
前記第１の仮想ＤＲＡＭデバイスにおける仮想行をシミュレートし、前記仮想行は、前記第１の物理ＤＲＡＭデバイスの物理行及び前記第２の物理ＤＲＡＭデバイスの物理行を含む前記物理ＤＲＡＭデバイスにおける複数の物理行に基づいており、前記第１の物理ＤＲＡＭデバイスの前記物理行は前記第１の命令バスを介してアクティブ化されるように構成されており、前記第２の物理ＤＲＡＭデバイスの前記物理行は前記第２の命令バスを介してアクティブ化されるように構成されており、
前記メモリコントローラから前記仮想行を対象とする１つの行アクティブ化命令を受け取り、
前記メモリコントローラから１つの列アクセス命令を受け取り、前記１つの列アクセス命令は、前記仮想行のための前記１つの行アクティブ化命令の受け取りに応じて、物理行アクティブ化命令を前記物理ＤＲＡＭデバイスのいずれかに対して発行する前に受け取られ、
前記１つの列アクセス命令は前記仮想行の仮想列を対象とするように決定し、前記仮想列は前記第１の物理ＤＲＡＭデバイスの前記物理行の物理列に対応しており、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に基づいて、前記第１の物理ＤＲＡＭデバイスの前記物理行のための物理行アクティブ化命令を決定し、
前記受け取った１つの行アクティブ化命令及び前記受け取った１つの列アクセス命令に対応する前記仮想ＤＲＡＭデバイスにおける前記仮想行の一部をアクティブ化するように、前記第１の命令バスを介して前記決定した物理行アクティブ化命令を前記第１の物理ＤＲＡＭデバイスに対して発行する、
ように構成されている、システム。
【請求項１６】
前記第１の数の物理ＤＲＡＭデバイスは、第１の命令スケジューリングにおける制約と関連付けされており、前記別の第２の数の仮想ＤＲＡＭデバイスは、前記第１の命令スケジューリングにおける制約と異なる第２の命令スケジューリングにおける制約と関連付けされており、
前記インタフェース回路は、更に、前記メモリコントローラに対して、前記第１の数の物理ＤＲＡＭデバイスのそれぞれの命令スケジューリングにおける制約を満たすように、前記第１の数の物理ＤＲＡＭデバイスをインタフェースするように構成されている、
請求項１５に記載のシステム。
【請求項１７】
前記第１及び第２の命令スケジューリングにおける制約が、列間遅延時間（ｔＣＣＤ）、行間アクティブ化遅延時間（ｔＲＲＤ）、４バンクアクティブ化ウィンドウ時間（ｔＦＡＷ）又は書込み−読取りターンアラウンドタイム（ｔＷＴＲ）の少なくとも１つを含んでいる、請求項１６に記載のシステム。
【請求項１８】
前記第１及び第２の命令スケジューリングにおける制約が、ランク間のデータバスターンアラウンドタイム又はオンダイターミネーション（ＯＤＴ）制御スイッチング時間の少なくとも１つを含んでいる、請求項１６に記載のシステム。
【請求項１９】
前記仮想ＤＲＡＭデバイスは仮想行のサイズを有し、前記物理ＤＲＡＭデバイスは物理行のサイズを有し、前記仮想行のサイズは前記物理行のサイズより大きく、
前記インタフェース回路は、１つの特定の物理ＤＲＡＭデバイスにおける１つの特定の行をアクティブ化することによって、特定の仮想ＤＲＡＭデバイスにおける行の一部をアクティブ化するように構成されている、
請求項１５に記載のシステム。
【請求項２０】
前記物理ＤＲＡＭデバイスのそれぞれは、独立したバスを介して前記インタフェース回路に接続されている、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[001］本発明はメモリに関し、より詳細には、メモリ回路の命令スケジューリングにおける制約に関する。
【背景技術】
【０００２】
[002］一般的に、メモリ回路のインタフェースの速度が高いときには、バスの高速動作を容易にする目的で、従来のマルチドロップ型メモリバス上の負荷（又はランク）の数が減少する。更に、メモリ回路の密度と価格は、しばしば指数的な関係にあり、高密度の集積回路では、一般的な密度の集積回路よりもメガバイト（ＭＢ）あたりの単価（ドル）が高い。従って、サーバにおいて経済的に使用することのできるメモリの量には、一般には上限が存在する。更に、大きな記憶容量を提供するためには、一般的には大きなプリント基板領域が要求され、従って、小型のシステム（例えばサーバ）の記憶容量は制限されている。
【０００３】
[003］更には、メモリシステムに要求されるデータ転送速度及び帯域幅は着実に増大しており、従って、帯域幅を高めるため、メモリシステムにおいてより多くの命令をスケジューリング、発行、及びパイプライン化することが必要となっている。しかしながら、従来、メモリシステムには命令スケジューリングにおける制約が存在し、この制約は、命令の発行レートを制限し、従って、帯域幅などを更に高めるための様々な試みを制限するものである。従って、従来技術に関連する上記の問題若しくはそれ以外の問題、又はその両方の問題に対処する必要性が存在している。
【発明の概要】
【０００４】
[004］メモリ回路システム及び方法を提供する。一実施形態においては、インタフェース回路が、複数のメモリ回路、及びシステムと通信することができる。使用時、このインタフェース回路は、メモリ回路の命令スケジューリングにおける制約を減少させるため、メモリ回路及びシステムをインターフェースする（ｉｎｔｅｒｆａｃｅ）ように動作する。
【０００５】
[005］別の実施形態においては、インタフェース回路が、複数のメモリ回路、及びシステムと通信することができる。使用時、このインタフェース回路は、システムとメモリ回路との間で伝達される命令に関連付けられているアドレスを変換するように動作する。
【０００６】
[006］更に別の実施形態においては、少なくとも１つのメモリ積層体が、複数のＤＲＡＭ集積回路を備えている。更に、ホストシステムに結合されているバッファ回路を使用して、ホストシステムに対してメモリ積層体をインターフェースし、ＤＲＡＭ集積回路とホストシステムとの間で１つ以上の物理パラメータを変換する。
【０００７】
[007］更に別の実施形態においては、少なくとも１つのメモリ積層体が、複数のＤＲＡＭ集積回路を備えている。更に、ホストシステムに結合されているインタフェース回路を使用して、ホストシステムに対してメモリ積層体をインターフェースし、メモリ積層体を１つのＤＲＡＭ集積回路として動作させる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態による、メモリ回路をインターフェースするためのサブシステムを示している。
【図２】別の実施形態による、メモリ回路の命令スケジューリングにおける制約を減少させる方法を示している。
【図３】更に別の実施形態による、システムとメモリ回路との間で伝達される命令に関連付けられるアドレスを変換する方法を示している。
【図４】別の実施形態による、コンピュータプラットフォームの論理コンポーネントを含んでいるブロック図を示している。
【図５】更に別の実施形態による、デバイス内の命令列と、デバイス内のタイミング制約と、結果としてのアイドルサイクル（ＤＤＲ３  ＳＤＲＡＭメモリシステムにおいて帯域幅を完全に利用することを妨げる）とを示しているタイミング図を図解している。
【図６】更に別の実施形態による、デバイス間の命令列と、デバイス間のタイミング制約と、結果としてのアイドルサイクル（ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、又はＤＤＲ３  ＳＤＲＡＭメモリシステムにおいて帯域幅を完全に利用することを妨げる）とを示しているタイミング図を図解している。
【図７】別の実施形態による、メモリコントローラに接続されているＤＲＡＭデバイスのアレイを示しているブロック図を図解している。
【図８】更に別の実施形態による、ＤＲＡＭデバイスのアレイとメモリコントローラとの間に配置されているインタフェース回路を示しているブロック図を図解している。
【図９】別の実施形態による、ＤＲＡＭデバイスのアレイとメモリコントローラとの間に配置されているＤＤＲ３  ＳＤＲＡＭインタフェース回路を示しているブロック図を図解している。
【図１０】更に別の実施形態による、複数のＤＲＡＭデバイスに接続されており、複数の独立したデータバスを備えているバースト融合インタフェース回路を示しているブロック図を図解している。
【図１１】別の実施形態による、命令列における複数の命令にわたる連続的なデータ転送を示しているタイミング図を図解している。
【図１２】更に別の実施形態による、複数の独立したデータバスを備えており、複数のＤＲＡＭデバイスに接続されているプロトコル変換・インタフェース回路を示しているブロック図を図解している。
【図１３】別の実施形態による、メモリコントローラが列アクセス命令を遅らせて発行するときの効果を示しているタイミング図を図解している。
【図１４】更に別の実施形態による、メモリコントローラが列アクセス命令を早期に発行するときの効果を示しているタイミング図を図解している。
【図１５】（Ａ）〜（Ｃ）は別の実施形態による、複数のＤＲＡＭ積層体を備えているＤＩＭＭを示している。
【図１６Ａ】更に別の実施形態による、バッファ搭載ＤＲＡＭ積層体を備えているＤＩＭＭ  ＰＣＢを示している。
【図１６Ｂ】更に別の実施形態による、４ＧＢ  ＤＲＡＭをエミュレートするバッファ搭載ＤＲＡＭ積層体を示している。
【図１７Ａ】別の実施形態による、バッファ集積回路とＤＲＡＭ積層体とを使用するＤＩＭＭの例を示している。
【図１７Ｂ】更に別の実施形態による、ＤＲＡＭの物理積層体を示している。
【図１８Ａ】更に別の実施形態による、マルチランクのバッファ集積回路とＤＩＭＭとを示している。
【図１８Ｂ】更に別の実施形態による、マルチランクのバッファ集積回路とＤＩＭＭとを示している。
【図１９Ａ】別の実施形態による、ホストシステムからの有効な集積回路セレクト信号の数に等しい数のランクをＤＩＭＭ上に提供するバッファを示している。
【図１９Ｂ】別の実施形態による、ホストシステムからの有効な集積回路セレクト信号の数に等しい数のランクをＤＩＭＭ上に提供するバッファを示している。
【図１９Ｃ】更に別の実施形態による、メモリの論理パーティションとメモリの物理パーティションとの間のマッピングを示している。
【図２０Ａ】更に別の実施形態による、メモリコントローラとＤＩＭＭとの間の接続構成を示している。
【図２０Ｂ】別の実施形態による、ホストシステムからの命令に基づいてランクの数を構成設定するため、集積回路セレクト信号線をＤＩＭＭ上のバッファに接続する方法を示している。
【図２１】更に別の実施形態による、アップグレード能力を有する、コネクタ又はインターポーザを備えたＤＩＭＭ  ＰＣＢを示している。
【図２２】更に別の実施形態による、マルチランクバッファ集積回路において使用する線形アドレスマッピングの例を示している。
【図２３】別の実施形態による、シングルランクのバッファ集積回路による線形アドレスマッピングの例を示している。
【図２４】更に別の実施形態による、マルチランクのバッファ集積回路による「ビットスライス」アドレスマッピングの例を示している。
【図２５】更に別の実施形態による、シングルランクのバッファ集積回路による「ビットスライス」アドレスマッピングの例を示している。
【図２６Ａ】別の実施形態による、ＤＲＡＭ集積回路及び不揮発性メモリ集積回路を含んでいるバッファ搭載積層体の例を示している。
【図２６Ｂ】別の実施形態による、ＤＲＡＭ集積回路及び不揮発性メモリ集積回路を含んでいるバッファ搭載積層体の例を示している。
【図２７】（Ａ）〜（Ｃ）は更に別の実施形態による、電源デカップリング層を備えているバッファ搭載積層体を示している。
【図２８】一実施形態による、代表的なハードウェア環境を示している。
【詳細な説明】
【０００９】
[0040]図１は、一実施形態による、メモリ回路をインターフェースするサブシステム１００を示している。図示したように、サブシステム１００は、メモリ回路１０２とシステム１０６とに結合されているインタフェース回路１０４を含んでいる。本明細書の説明においては、このようなメモリ回路１０２は、メモリとして機能することのできる任意の回路を含んでいることができる。
【００１０】
[0041]例えば、様々な実施形態において、メモリ回路１０２の少なくとも１つは、モノリシックメモリ回路、半導体ダイ、チップ、実装メモリ回路（ｐａｃｋａｇｅｄ  ｍｅｍｏｒｙ  ｃｉｒｃｕｉｔ）、又はその他の任意のタイプの有形のメモリ回路を含んでいることができる。一実施形態においては、メモリ回路１０２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）回路の形態をとることができる。そのようなＤＲＡＭは、任意の形態をとることができ、例えば、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートシンクロナスＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ３  ＳＤＲＡＭなど）、グラフィックスダブルデータレートＤＲＡＭ（ＧＤＤＲ、ＧＤＤＲ２、ＧＤＤＲ３など）、クワッドデータレートＤＲＡＭ（ＱＤＲ  ＤＲＡＭ）、ＲＡＭＢＵＳ  ＸＤＲ  ＤＲＡＭ（ＸＤＲ  ＤＲＡＭ）、高速ページモードＤＲＡＭ（ＦＰＭ  ＤＲＡＭ）、ビデオＤＲＡＭ（ＶＤＲＡＭ）、拡張データアウトＤＲＡＭ（ＥＤＯ  ＤＲＡＭ）、バーストＥＤＯ  ＲＡＭ（ＢＥＤＯ  ＤＲＡＭ）、マルチバンクＤＲＡＭ（ＭＤＲＡＭ）、シンクロナスグラフィックスＲＡＭ（ＳＧＲＡＭ）、その他の任意のタイプのＤＲＡＭ、のうちの１つ以上の形態をとることができる（ただしこれらに限定されない）。
【００１１】
[0042]別の実施形態においては、メモリ回路１０２の少なくとも１つは、磁気ランダムアクセスメモリ（ＭＲＡＭ）、インテリジェントランダムアクセスメモリ（ＩＲＡＭ：ｉｎｔｅｌｌｉｇｅｎｔ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、分散ネットワークアーキテクチャ（ＤＮＡ）メモリ、ウィンドウランダムアクセスメモリ（ＷＲＡＭ：ｗｉｎｄｏｗ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、フラッシュメモリ（例えば、ＮＡＮＤ、ＮＯＲ）、疑似スタティックランダムアクセスメモリ（ＰＳＲＡＭ）、ウェットウェアメモリ（ｗｅｔｗａｒｅ  ｍｅｍｏｒｙ）、或いは、半導体技術、原子技術、分子技術、光技術、有機技術、生物学的技術、化学技術、又はナノスケール技術に基づくメモリ、或いは、揮発型又は不揮発型、ランダムアクセス型又は非ランダムアクセス型、若しくはシリアルアクセス型又はパラレルアクセス型の、その他の任意のタイプのメモリ回路、のうちの１つ以上を含んでいることができる。
【００１２】
[0043]厳密にはオプションとして、メモリ回路１０２は、必要であれば、少なくとも１つのデュアルインラインメモリモジュール（ＤＩＭＭ）（図示していない）上に配置することができる。様々な実施形態において、ＤＩＭＭは、レジスタードＤＩＭＭ（Ｒ−ＤＩＭＭ）、スモールアウトラインＤＩＭＭ（ＳＯ−ＤＩＭＭ：ｓｍａｌｌ  ｏｕｔｌｉｎｅ−  ＤＩＭＭ）、フリーバッファードＤＩＭＭ（ＦＢ−ＤＩＭＭ：ｆｕｌｌｙ  ｂｕｆｆｅｒｅｄ  ＤＩＭＭ）、アンバッファードＤＩＭＭ（ＵＤＩＭＭ：ｕｎｂｕｆｆｅｒｅｄ  ＤＩＭＭ）、シングルインラインメモリモジュール（ＳＩＭＭ）、ＭｉｎｉＤＩＭＭ、超ロープロファイル仕様の（ＶＬＰ）Ｒ−ＤＩＭＭなどを含んでいることができる。別の実施形態においては、メモリ回路１０２は、必要であれば、基板、カード、モジュール、薄板、繊維、厚紙、担体、又はその他の任意のタイプの固体若しくは可撓性の構成要素、形態、又は物体（ｅｎｔｉｔｙ，ｆｏｒｍ，ｏｒ  ｏｂｊｅｃｔ）を形成する、任意の種類の材料上に配置することができる。当然ながら、更に別の実施形態においては、メモリ回路１０２は、必要であれば、実装を目的とする任意の望ましい構成要素、形態、又は物体の中又は上に配置することができる。更には、メモリ回路１０２は、必要であれば、ランクに編成することができる。この場合のランクは、上記の構成要素、形態、又は物体、その他のうちのいずれかにおけるメモリ回路１０２の任意の配置編成を意味する。
【００１３】
[0044]更に、本明細書の説明においては、システム１０６は、メモリ回路１０２へのアクセスが結果として発生するプロセスを要求する、若しくは開始する、又はその両方を行うことのできる任意のシステムを含んでいることができる。オプションとして、システム１０６は、この動作を、メモリコントローラ（図示していない）、又はその他の任意の望ましいメカニズムを使用して達成することができる。一実施形態においては、このようなシステム１０６は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、ストレージシステム、ネットワーキングシステム、ワークステーション、携帯情報端末（ＰＤＡ）、携帯電話、テレビ、コンピュータ周辺装置（例えばプリンタ）、家庭用電子機器、通信システム、或いはその他の任意のソフトウェア若しくはハードウェア又はその両方、のうちの１つ以上の形態のシステム、を含んでいることができる。
【００１４】
[0045]インタフェース回路１０４は、本明細書の説明においては、メモリ回路１０２及びシステム１０６をインターフェースする（例えば、通信する、バッファリングする）ことのできる任意の回路を意味する。例えば、インタフェース回路１０４は、複数の異なる実施形態においては、メモリ回路１０２及びシステム１０６と、直接的に（例えば、配線、バス、コネクタ、又はその他の任意の直接通信媒体、のうちの１つ以上を介して）、若しくは間接的に（例えば、無線、光、容量、電界、磁界、電磁界、或いはその他の任意の間接通信媒体、のうちの１つ以上を介して）、又はその両方によって通信することのできる回路を含んでいる。更なる別の実施形態においては、この場合の通信は、直接接続（例えば、ポイントツーポイント、シングルドロップバス、マルチドロップバス、シリアルバス、パラレルバス、リンク、又はその他の任意の直接接続、のうちの１つ以上）を使用することができ、又は、間接接続（例えば、中間回路、中間ロジック、１本又は複数本の中間バス、又はその他の任意の間接接続、のうちの１つ以上を通じての接続）を使用することができる。
【００１５】
[0046]更なるオプションの実施形態においては、インタフェース回路１０４は、１つ以上の回路、例えば、バッファ（例えばバッファチップ）、レジスタ（例えばレジスタチップ）、アドバンストメモリバッファ（ＡＭＢ）（例えばＡＭＢチップ）、少なくとも１枚のＤＩＭＭ上に配置されているコンポーネント、メモリコントローラなどを含んでいることができる。更に、レジスタは、様々な実施形態においては、ＪＥＤＥＣ半導体技術協会（ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ）（ＪＥＤＥＣとして知られている）規格のレジスタ（ＪＥＤＥＣレジスタ）、或いは、転送機能、格納機能、バッファリング機能のうちの少なくとも１つを備えているレジスタを含んでいることができる。様々な実施形態においては、レジスタチップ、バッファチップ、又はその他の任意のインタフェース回路１０４のうちの１つ以上を、インテリジェント型とすることができ、すなわち、１つ以上の機能、例えば、情報の収集若しくは格納、又はその両方、状態若しくはステータス、又はその両方の推測、予測、格納のうちの少なくとも１つ、論理的判定の実行、入力信号に対する演算の実行、のうちの少なくとも１つを行うことのできるロジック、を含んでいることができる。更に別の実施形態においては、インタフェース回路１０４は、オプションとして、モノリシック形態、実装形態、プリント回路形態、或いはその他の任意の回路製造形態、のうちの１つ以上として製造することができる。更に、別の実施形態においては、インタフェース回路１０４をＤＩＭＭ上に配置することができる。
【００１６】
[0047]更に別の実施形態においては、上述した複数のインタフェース回路１０４は、それらの組合せとして、メモリ回路１０２及びシステム１０６をインターフェースする役割を果たすことができる。従って、様々な実施形態においては、このようなインタフェース接続を目的として、１つ、２つ、３つ、４つ、又は５つ以上のインタフェース回路１０４を使用することができる。更に、複数のインタフェース回路１０４を、任意の望ましい方式において相対的に構成設定する（ｃｏｎｆｉｇｕｒｅ）、又は相対的に接続することができる。例えば、インタフェース回路１０４を、並列に、又は直列に、又は並列及び直列の様々な組合せにおいて、構成設定する、或いは接続することができる。複数のインタフェース回路１０４を、互いに直接的に接続する、又は互いに間接的に接続する、又は直接接続及び間接接続を組み合わせて接続することができる。更には、任意の数のインタフェース回路１０４を、任意の数のメモリ回路１０２に割り当てることができる。別の様々な実施形態においては、複数のインタフェース回路１０４のそれぞれを、同じ回路、又は異なる回路とすることができる。更には、インタフェース回路１０４は、同じか又は類似するインタフェースタスクを共有する、若しくは異なるインタフェースタスクを実行する、又はその両方とすることができる。
【００１７】
[0048]メモリ回路１０２と、インタフェース回路１０４と、システム１０６とを個別の構成要素として図示したが、このような構成要素（又はその（１つ以上の）部分）を任意の望ましい方式において一体化することができる。様々な実施形態においては、オプションとしてのこのような一体化として、このような構成要素を単純に一緒に実装する（例えば、構成要素を積み重ねて、ＤＲＡＭ回路の積層体、ＤＲＡＭ積層体、複数のＤＲＡＭ積層体、ハードウェア積層体を形成する（この場合の積層体とは、構成要素若しくは回路、又はその両方の任意のまとまり、集合、又はグループ化を意味する））、若しくは、これらの構成要素をモノリシック構造として一体化する、又はその両方を行うことができる。単なる一例として、オプションの一実施形態においては、少なくとも１つのインタフェース回路１０４（又はその（１つ以上の）部分）を、メモリ回路１０２の少なくとも１つと一緒に実装することができる。このようにして、一実施形態においては、インタフェース回路１０４及びメモリ回路１０２が積層体の形態をとることができる。
【００１８】
[0049]例えば、ＤＲＡＭ積層体は、必要であれば、少なくとも１つのインタフェース回路１０４（又はその（１つ以上の）部分）を含んでいることができる。別の実施形態においては、様々な数のインタフェース回路１０４（又はその（１つ以上の）部分）を一緒に実装することができる。このような様々な実装構造を採用する場合、オプションとして、例えば、モノリシックシリコン実装を有利に使用することができる。
【００１９】
[0050]複数の異なる実施形態においては、インタフェース回路１０４を、様々な機能性を備えたものとすることができる。例えば、オプションの一実施形態においては、インタフェース回路１０４は、メモリ回路１０２とシステム１０６との間に接続されている複数の信号をインターフェースすることができる。この場合の信号は、例えば、アドレス信号、データ信号、制御信号、イネーブル信号、クロック信号、リセット信号、或いは、メモリ回路１０２、システム１０６、又は（１つ以上の）インタフェース回路１０４を動作させるために使用される、又はこれらに関連付けられているその他の任意の信号、を含んでいることができる。オプションとしてのいくつかの実施形態においては、この信号は、直接接続を使用する信号、間接接続を使用する信号、専用接続を使用する信号とする、又は、いくつかの接続にまたがって信号を符号化する、又は、１つ以上の接続にまたがってその他の方式で信号を符号化する（例えば時分割多重化する）、のうちの１つ以上とすることができる。
【００２０】
[0051]この実施形態の一態様においては、インターフェースされる信号は、メモリ回路１０２とシステム１０６との間に接続されている信号のすべてとすることができる。別の態様においては、信号の少なくとも一部は、メモリ回路１０２とシステム１０６との間の直接接続を使用することができる。更に、オプションとして、インターフェースされる信号が、メモリ回路１０２とシステム１０６との間の信号接続の総数の少なくとも大部分を含んでいるように、（例えば、直接接続を使用する複数の信号に対して）インターフェースされる信号の数を変化させることができる。
【００２１】
[0052]更に別の実施形態においては、インタフェース回路１０４は、第１の数のメモリ回路１０２、及びシステム１０６をインターフェースして、システム１０６に対して第２の数のメモリ回路をシミュレートするように動作することができる。以下では、説明を明確にするうえで適切である場合、第１の数のメモリ回路１０２を「物理」メモリ回路１０２又はメモリ回路と称する（ただしこれらに限定されない）。単なる一例として、物理メモリ回路１０２は、１つの物理メモリ回路を含んでいることができる。更に、以下では、説明を明確にするうえで適切である場合、システム１０６によって認識される少なくとも１つのシミュレートされたメモリ回路を、少なくとも１つの「仮想」メモリ回路と称する。
【００２２】
[0053]この実施形態の更に別の態様においては、仮想メモリ回路の第２の数は、物理メモリ回路１０２の第１の数よりも大きい、第１の数に等しい、又は第１の数よりも小さい。単なる一例として、第２の数の仮想メモリ回路は、１つのメモリ回路を含んでいることができる。ただし、当然ながら、任意の数のメモリ回路をシミュレートすることができる。
【００２３】
[0054]本明細書の説明においては、用語「シミュレートする（される）」は、メモリ回路１０２の少なくとも１つの側面が、結果としてシステム１０６に異なって認識されることになる、何らかのシミュレート、エミュレート、仮装、変形、修正、変更、一部変更、成形、変換などを行うことを意味する。複数の異なる実施形態においては、このような側面は、例えば、数、信号、記憶容量、タイミング、レイテンシ、設計パラメータ、論理インタフェース、制御システム、プロパティ、挙動（例えば、電力挙動、例えば、以下に限定されないが、消費電力、消費電流、電流波形、電力パラメータ、電力指標、電力管理又は電力挙動のその他の任意の側面）、或いはその他の任意の側面、のうちの１つ以上を含んでいることができる。
【００２４】
[0055]複数の異なる実施形態においては、シミュレーションは、電気特性のシミュレーション、論理特性のシミュレーション、プロトコル特性のシミュレーションとする、又は任意のその他の望ましい方式において実行する、のうちの１つ以上とすることができる。例えば、電気特性のシミュレーションにおいては、ピン、配線、信号などの数をシミュレートすることができる。論理特性のシミュレーションにおいては、特定の機能或いは挙動をシミュレートすることができる。プロトコルのシミュレーションにおいては、特定のプロトコル（例えばＤＤＲ３）をシミュレートすることができる。更に、プロトコルのシミュレーションにおいては、シミュレーションによって、異なるプロトコル（例えばＤＤＲ２とＤＤＲ３）の間で変換することができる、又は、同じプロトコルの異なるバージョンの間で変換する（例えば、４−４−４  ＤＤＲ２から６−６−６  ＤＤＲ２に変換する）ことができる。
【００２５】
[0056]例示的な一実施形態においては、ＤＲＡＭデバイスの記憶素子を複数のバンクに編成することができ、この場合、バンクのそれぞれが複数の行を有し、行のそれぞれが複数の列を有する。ＤＲＡＭデバイスの記憶容量は、バンクの数と、バンクあたりの行の数と、行あたりの列の数と、列あたりの記憶ビットの数とを乗じた値に等しいものとすることができる。汎用ＤＲＡＭデバイス（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ３  ＳＤＲＡＭ、ＤＤＲ４  ＳＤＲＡＭ、ＧＤＤＲ２  ＳＤＲＡＭ、ＧＤＤＲ３  ＳＤＲＡＭ、ＧＤＤＲ４  ＳＤＲＡＭ）においては、デバイスあたりのバンクの数、バンクあたりの行の数、行あたりの列の数、及び列のサイズは、標準化委員会（例えば、電子機器技術評議会（ＪＥＤＥＣ：Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ））によって決定されている。
【００２６】
[0057]例えば、ＪＥＤＥＣ規格では、４ビット幅のデータバスを備えている１ギガバイト（ＧＢ）のＤＤＲ２  ＳＤＲＡＭ又はＤＤＲ３  ＳＤＲＡＭデバイスは、デバイスあたり８個のバンク、バンクあたり８１９２行、行あたり２０４８列、列あたり４ビットを有することが要求される。同様に、４ビット幅のデータバスを備えている２ＧＢのデバイスは、デバイスあたり８個のバンク、バンクあたり１６３８４行、行あたり２０４８列、列あたり４ビットを備えていなければならない。４ビット幅のデータバスを備えている４ＧＢのデバイスは、デバイスあたり８個のバンク、バンクあたり３２７６８行、行あたり２０４８列、列あたり４ビットを備えていなければならない。これら１ＧＢ、２ＧＢ、及び４ＧＢのデバイスにおいては、行のサイズは一定であり、行の数は、デバイスの容量が２倍になるごとに２倍になっている。従って、上述したように、複数の１ＧＢのデバイス及び２ＧＢのデバイスを使用し、行アクティブ化命令（ｒｏｗ−ａｃｔｉｖａｔｉｏｎ  ｃｏｍｍａｎｄ）を行アクティブ化命令に直接変換し、列アクセス命令を列アクセス命令に直接変換することによって、２ＧＢ又は４ＧＢのデバイスをシミュレートすることができる。一実施形態においては、このエミュレーションが可能であるのは、１ＧＢのデバイスと、２ＧＢのデバイスと、４ＧＢのデバイスの行サイズが同じであるためである。
【００２７】
[0058]一実施形態においては、インタフェース回路が、複数のメモリ回路、及びシステムと通信することができる。使用時、このインタフェース回路は、メモリ回路の命令スケジューリングにおける制約を減少させるため、メモリ回路、及びシステムをインターフェースするように動作する。
【００２８】
[0059]別の実施形態においては、インタフェース回路が、複数のメモリ回路、及びシステムと通信することができる。使用時、このインタフェース回路は、システムとメモリ回路との間で伝達される命令に関連付けられているアドレスを変換するように動作する。
【００２９】
[0060]更に別の実施形態においては、少なくとも１つのメモリ積層体は、複数のＤＲＡＭ集積回路を備えている。更に、ホストシステムに結合されているバッファ回路を使用して、ホストシステムにメモリ積層体をインターフェースし、ＤＲＡＭ集積回路とホストシステムとの間で１つ以上の物理パラメータを変換する。
【００３０】
[0061]更に別の実施形態においては、少なくとも１つのメモリ積層体は、複数のＤＲＡＭ集積回路を備えている。更に、ホストシステムに結合されているインタフェース回路を使用して、ホストシステムに対してメモリ積層体をインターフェースし、メモリ積層体を１つのＤＲＡＭ集積回路として動作させる。
【００３１】
[0062]以下では、必要であれば、ユーザの要望に応じて上記のシステムを実施することができる、オプションとしての様々なアーキテクチャ及び使用形態に関して、説明上の情報を更に記載する。なお、以下の情報は、説明を目的として記載したものであり、本発明を何らかの形で制限するものと解釈すべきではないことに留意されたい。以下の特徴・機能のいずれも、記載した別の特徴・機能を取り除いて、又は取り除かずに、オプションとして組み込むことができる。
【００３２】
[0063]図２は、別の実施形態による、メモリ回路の命令スケジューリングにおける制約を減少させる方法２００を示している。オプションとして、方法２００は、図１のシステム１００において実施することができる。当然ながら、この方法２００は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００３３】
[0064]動作２０２に示したように、複数のメモリ回路、及びシステムをインターフェースする。一実施形態においては、メモリ回路及びシステムを、インタフェース回路を使用してインターフェースすることができる。このインタフェース回路は、例えば、図１に関連して上述したインタフェース回路を含んでいることができる。更に、一実施形態においては、インターフェースするステップは、メモリ回路とシステムとの間の通信を容易にする（ｆａｃｉｌｉｔａｔｅ）ステップを含んでいることができる。ただし、当然ながら、メモリ回路及びシステムを、任意の望ましい方式においてインターフェースすることができる。
【００３４】
[0065]更に、動作２０４に示したように、メモリ回路の命令スケジューリングにおける制約を減少させる。本明細書の説明においては、命令スケジューリングにおける制約は、メモリ回路に関連する命令のスケジューリング（若しくは発行、又はその両方）に関連付けられる任意の制限を含んでいる。オプションとして、命令スケジューリングにおける制約は、製造業者が自社のメモリデバイスのデータシートの中に定義する、或いは、標準化機構（例えばＪＥＤＥＣ）によって定義される。
【００３５】
[0066]一実施形態においては、命令スケジューリングにおける制約は、デバイス内命令スケジューリングにおける制約（ｉｎｔｒａ−ｄｅｖｉｃｅ  ｃｏｍｍａｎｄ  ｓｃｈｅｄｕｌｉｎｇ  ｃｏｎｓｔｒａｉｎｔｓ）を含んでいることができる。このようなデバイス内命令スケジューリングにおける制約は、デバイスの中でのスケジューリング制約を含んでいることができる。例えば、デバイス内命令スケジューリングにおける制約は、列間遅延時間（ｃｏｌｕｍｎ−ｔｏ−ｃｏｌｕｍｎ  ｄｅｌａｙ  ｔｉｍｅ）（ｔＣＣＤ）、行間アクティブ化遅延時間（ｒｏｗ−ｔｏ−ｒｏｗ  ａｃｔｉｖａｔｉｏｎ  ｄｅｌａｙ  ｔｉｍｅ）（ｔＲＲＤ）、４バンクアクティブ化ウィンドウ時間（ｆｏｕｒ−ｂａｎｋ  ａｃｔｉｖａｔｉｏｎ  ｗｉｎｄｏｗ  ｔｉｍｅ）（ｔＦＡＷ）、書込み−読取りターンアラウンドタイム（ｗｒｉｔｅ−ｔｏ−ｒｅａｄ  ｔｕｒｎ−ａｒｏｕｎｄ  ｔｉｍｅ）（ｔＷＴＲ）などを含んでいることができる。オプションとして、デバイス内命令スケジューリングにおける制約は、デバイス内のリソースを共有する、デバイスの要素（例えば、列、行、バンク）に関連付けることができる。このようなデバイス内命令スケジューリングにおける制約の一例については、後から図５に関連して更に詳しく説明する。
【００３６】
[0067]一実施形態においては、命令スケジューリングにおける制約は、デバイス間命令スケジューリングにおける制約（ｉｎｔｅｒ−ｄｅｖｉｃｅ  ｃｏｍｍａｎｄ  ｓｃｈｅｄｕｌｉｎｇ  ｃｏｎｓｔｒａｉｎｔｓ）を含んでいることができる。このようなデバイス間スケジューリング制約は、デバイス（例えばメモリデバイス）の間のスケジューリング制約を含んでいることができる。単なる一例として、デバイス間命令スケジューリングにおける制約は、ランク間のデータバスターンアラウンドタイム（ｒａｎｋ−ｔｏ−ｒａｎｋ  ｄａｔａ  ｂｕｓ  ｔｕｒｎａｒｏｕｎｄ  ｔｉｍｅｓ）、オンダイターミネーション（ＯＤＴ：ｏｎ−ｄｉｅ−ｔｅｒｍｉｎａｔｉｏｎ）制御スイッチング時間などを含んでいることができる。オプションとして、デバイス間命令スケジューリングにおける制約は、互いの間の接続（例えば通信するための接続）を提供するリソース（例えばデータバス）を共有するデバイスに関連付けることができる。このようなデバイス間命令スケジューリングにおける制約の一例については、後から図６に関連して更に詳しく説明する。
【００３７】
[0068]更に、命令スケジューリングにおける制約を減少させるステップは、制約を完全に排除する、又は制約をいくらか低減させるステップを含んでいることができる。更には、メモリ回路に命令を発行する方式を制御することによって、命令スケジューリングにおける制約を減少させることができる。このような命令は、例えば、行アクティブ化命令、又は列アクセス命令を含んでいることができる。更には、オプションとして、複数のメモリ回路に関連付けられる個別のバスを使用して、メモリ回路に命令を発行することができる。個別のバスが関連付けられているメモリ回路の一例については、後から図８に関連して更に詳しく説明する。
【００３８】
[0069]一実施形態においては、仮想メモリ回路のシミュレーションに基づいてメモリ回路に命令を発行することによって、命令スケジューリングにおける制約を減少させることができる。例えば、複数のメモリ回路（すなわち物理メモリ回路）が仮想メモリ回路としてシステムに認識されるように、それら複数のメモリ回路、及びシステムをインターフェースすることができる。そのようなシミュレートされた仮想メモリ回路は、オプションとして、図１に関連して上述した仮想メモリ回路を含んでいることができる。
【００３９】
[0070]更に、仮想メモリ回路では、物理メモリ回路よりも命令スケジューリングにおける制約を少なくすることができる。例示的な一実施形態においては、メモリ回路を、命令スケジューリングにおける制約が存在しない１つ以上のメモリ回路から成るまとまりとして認識させることができる。従って、オプションとして、複数の異なる物理メモリ回路ではなく１つの仮想メモリ回路を対象とする命令を発行することによって、命令スケジューリングにおける制約を減少させることができる。このようにして、オプションとして、アイドル状態のデータバスサイクルを排除することができ、メモリシステムの帯域幅を高めることができる。
【００４０】
[0071]当然ながら、命令スケジューリングにおける制約は任意の望ましい方式において減少させることができる。従って、一実施形態においては、メモリ回路（例えば論理ＤＲＡＭデバイス）のデバイス間命令スケジューリングにおける制約若しくはデバイス内命令スケジューリングにおける制約、又はその両方の少なくとも一部を、本インタフェース回路を使用して排除することができる。更には、メモリ回路の命令スケジューリングにおける制約が減少する結果として、命令発行レートを高めることができる。例えば、命令スケジューリングにおける制約に関連付けられる制限を減少させることによって、より多くの命令をメモリ回路に発行することができる。命令スケジューリングにおける制約を減少させることによって命令発行レートを高めることに関しては、後から図１１に関連して更に詳しく説明する。
【００４１】
[0072]図３は、更に別の実施形態による、システムとメモリ回路との間で伝達される命令に関連付けられているアドレスを変換する方法３００を示している。オプションとして、方法３００は、図１若しくは図２、又はその両方のアーキテクチャ及び環境において実行することができる。当然ながら、方法３００は、任意の望ましい環境において実行することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００４２】
[0073]動作３０２に示したように、複数のメモリ回路、及びシステムをインターフェースする。一実施形態においては、インタフェース回路（例えば、図１に関連して上述したインタフェース回路）を使用して、メモリ回路及びシステムをインターフェースすることができる。一実施形態においては、インターフェースするステップは、メモリ回路とシステムとの間の通信を容易にするステップを含んでいることができる。ただし、当然ながら、メモリ回路及びシステムは、任意の望ましい方式においてインターフェースすることができる。
【００４３】
[0074]更に、動作３０４に示したように、システムとメモリ回路との間で伝達される命令に関連付けられているアドレスを変換する。このような命令は、例えば、行アクティブ化命令、列アクセス命令、或いはシステムとメモリ回路との間で伝達することのできるその他の任意の命令、のうちの１つ以上を含んでいることができる。オプションとして、この変換はシステムに透過的とすることができる。このようにして、システムはメモリ回路に命令を発行することができ、この場合、命令の変換は、システムが認識或いは入力することなく行うことができる。
【００４４】
[0075]更には、アドレスの変換は、任意の望ましい方式において行うことができる。このような変換は、任意の変換、変更、変形を含んでいることができる。一実施形態においては、アドレスを変換するステップは、アドレスをシフトさせるステップを含んでいることができる。別の実施形態においては、アドレスの変換は、アドレスをマッピングすることによって行うことができる。オプションとして、図１若しくは図２、又はその両方に関連して上述したように、メモリ回路は物理メモリ回路を含んでいることができ、インタフェース回路によって仮想メモリ回路をシミュレートすることができる。これを目的として、仮想メモリ回路は、オプションとして、自身に関連付けられる行アドレスを、物理メモリ回路とは異なる（例えば、より多くの）数だけ有することができる。
【００４５】
[0076]従って、別の実施形態においては、変換を、行アドレスの数の差異の関数として実行することができる。更に別の実施形態においては、変換では、仮想メモリ回路の行アドレスの数が反映されるようにアドレスを変換することができる。更に別の実施形態においては、変換では、オプションとして、列アドレス及び行アドレスの関数としてアドレスを変換することができる。
【００４６】
[0077]従って、命令が行アクセス命令を含んでいる例示的な一実施形態においては、列アクセス命令の予測到着タイムの関数として変換を実行することができる。命令が行アクセス命令を含んでいる別の例示的な実施形態においては、変換によって、列アクセス命令が必ず空きバンクにアドレッシングされるようにすることができる。オプションとして、インタフェース回路は、システムとメモリ回路との間で伝達される命令を遅らせるように動作することができる。これを目的として、変換の結果として、メモリ回路（例えば論理ＤＲＡＭデバイス）の行の一部をアクティブ化することができる。アドレスの変換の様々な例については、後から図８及び図１２に関連して更に詳しく説明する。
【００４７】
[0078]従って、一実施形態においては、行のサイズが小さいメモリ回路を使用して、行のサイズが大きい、より大きなメモリ回路をエミュレートすることができるように、アドレスマッピングにおいて、１つの命令と別の命令との間でアドレスをシフトするステップを使用することができる。従って、行の一部のアクティブ化を提供することができる。様々な実施形態においては、このような行の一部のアクティブ化によって消費電力を減少させることもでき、パフォーマンスを更に向上させることができる。
【００４８】
[0079]図４は、別の実施形態による、コンピュータプラットフォーム４００の論理コンポーネントを含んでいるブロック図を示している。オプションとして、コンピュータプラットフォーム４００は、図１〜図３のアーキテクチャ及び環境において実施することができる。当然ながら、コンピュータプラットフォーム４００は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００４９】
[0080]図示したように、コンピュータプラットフォーム４００は、システム４２０を含んでいる。システム４２０は、メモリインタフェース４２１と、外部メモリの属性の予測を取得及び格納するロジック４２２と、メモリインタラクション（ｍｅｍｏｒｙ  ｉｎｔｅｒａｃｔｉｏｎ）属性４２３と、データ処理エンジン４２４と、ユーザインタフェースを容易にする様々なメカニズム４２５とを含んでいる。コンピュータプラットフォーム４００は、完全に個別のコンポーネント、すなわち、システム４２０（例えばマザーボード）と、メモリ回路４１０（例えば物理メモリ回路）とから構成することができる。更に、コンピュータプラットフォーム４００は、オプションとして、１つ以上のソケットによってシステム４２０に直接接続されているメモリ回路４１０を含んでいることができる。
【００５０】
[0081]一実施形態においては、メモリ回路４１０は、様々な規格、例えば、メモリ回路４１０をＪＥＤＥＣ準拠の半導体メモリ（例えば、ＤＲＡＭ、ＳＤＲＡＭ、ＤＤＲ２、ＤＤＲ３）であるように定義する規格、の仕様に従って設計することができる。そのような規格の仕様は、物理的な相互接続と、メモリ回路４１０の論理機能とを規定していることがある。
【００５１】
[0082]別の実施形態においては、システム４２０は、物理メモリ回路４１０（例えばＤＩＭＭ）に問い合わせてメモリ属性４２２，４２３を取得及び格納することができるシステムＢＩＯＳプログラム（図示していない）を含んでいることができる。更に、様々なタイプの外部メモリ回路４１０（例えば、ＪＥＤＥＣに準拠するＤＩＭＭ）は、ＤＩＭＭのメモリ属性が格納されているＥＥＰＲＯＭデバイス（ＳＰＤ（ｓｅｒｉａｌ  ｐｒｅｓｅｎｃｅ  ｄｅｔｅｃｔ）として知られている）を含んでいることができる。ＢＩＯＳによるＳＰＤとのインタラクションと、物理属性についてのＢＩＯＳによる物理メモリ回路４１０とのインタラクションとによって、システム４２０のメモリ属性の予測４２２とメモリインタラクション属性４２３とをシステム４２０に認識させることができる。
【００５２】
[0083]様々な実施形態においては、コンピュータプラットフォーム４００は、電気的にはシステム４２０と物理メモリ回路４１０との間に配置されている１つ以上のインタフェース回路４７０を含んでいることができる。このインタフェース回路４７０は、システムに面しているいくつかのインタフェース（例えば、システムアドレス信号インタフェース４７１、システム制御信号インタフェース４７２、システムクロック信号インタフェース４７３、システムデータ信号インタフェース４７４）を含んでいることができる。同様に、インタフェース回路４７０は、メモリに面しているいくつかのインタフェース（例えば、メモリアドレス信号インタフェース４７５、メモリ制御信号インタフェース４７６、メモリクロック信号インタフェース４７７、メモリデータ信号インタフェース４７８）を含んでいることができる。
【００５３】
[0084]更には、インタフェース回路４７０は、エミュレーションロジック４８０を含んでいることができる。このエミュレーションロジック４８０は、システムに面しているインタフェースからの、又はシステムに面しているインタフェースを経由する電気信号（例えば、ロジックレベル、命令、信号、プロトコルシーケンス、通信）を受け取り、オプションとしてそれを格納するように動作することができ、更に、そのような電気信号を処理するように動作することができる。エミュレーションロジック４８０は、システム４２０に応答を返し、システム４２０に信号を供給することによって、システムに面しているインタフェースからの信号に応答することができ、更に、以前に格納されている別の情報を用いてその信号を処理することができる。別のオプションとして、エミュレーションロジック４８０は、物理メモリ回路４１０に信号を供給することができる。ただし、当然ながら、エミュレーションロジック４８０は、上述した任意の機能を任意の順序において実行することができる。
【００５４】
[0085]更には、エミュレーションロジック４８０は、パーソナリティ（ｐｅｒｓｏｎａｌｉｔｙ）を導入するように動作することができ、この場合のパーソナリティは、物理メモリ回路の属性を定義することができる。様々な実施形態においては、パーソナリティは、インタフェース回路４７０と物理メモリ回路４１０との間の配線、ボンディングオプション、ストラッピング（ｓｔｒａｐｐｉｎｇ）、プログラマブルなストラッピング、のうちの任意の組合せによって構成することができる。更には、インタフェース回路４７０に接続されている物理メモリ回路４１０の実際の物理属性（例えば、モードレジスタの値、拡張モードレジスタの値）（インタフェース回路４７０及び物理メモリ回路４１０がパワーアップされるときに決定される）によって、パーソナリティを構成することができる。
【００５５】
[0086]図５は、更に別の実施形態による、デバイス内の命令列（ｉｎｔｒａ−ｄｅｖｉｃｅ  ｃｏｍｍａｎｄ  ｓｅｑｕｅｎｃｅ）と、デバイス内のタイミング制約と、結果としてのアイドルサイクル（ＤＤＲ３  ＳＤＲＡＭメモリシステムにおいて帯域幅を完全に利用することを妨げる）とを示しているタイミング図５００を図解している。オプションとして、このタイミング図５００は、図１〜図４のアーキテクチャ及び環境に関連付けることができる。当然ながら、このタイミング図５００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００５６】
[0087]図示したように、タイミング図５００は、命令サイクルと、タイミング制約と、メモリのアイドルサイクルとを示している。例えば、ＤＤＲ３  ＳＤＲＡＭメモリシステムを含んでいる実施形態においては、１つのＤＲＡＭデバイスを対象としている任意の２つの行アクセス命令は、ｔＲＲＤよりも短い間隔でスケジューリングされるとは限らない。別の例として、ｔＦＡＷ以内に１つのＤＲＡＭデバイスにスケジューリングすることのできる行アクセス命令は、最大で４つである。更に、特定のＤＲＡＭデバイスに、連続する列読取りアクセス命令及び連続する列書込みアクセス命令をｔＣＣＤよりも短い間隔でスケジューリングされるとは限らない（ｔＣＣＤは、ＤＤＲ３  ＤＲＡＭデバイスにおいては４サイクル（データの半サイクル×８）に等しい）。
【００５７】
[0088]この実施形態においては、行アクセス命令若しくは行アクティブ化命令、又はその両方は、ＡＣＴとして示してある。更に、列アクセス命令は、「読取り」又は「書込み」として示してある。従って、例えば、図２に示したような、４つの半サイクルのデータバーストとしてのデータアクセスが要求されるメモリシステムにおいては、列アクセスを連続的にスケジューリングすることが、ｔＣＣＤ制約によって抑制されることがある。更には、特定のＤＲＡＭデバイスに送られるＤＲＡＭ命令に課されるこれらの制約５１０，５２０によって、命令レートが制限されることがあり、結果としてデータバス上にアイドルサイクル又はバブル５３０が発生し、従って、帯域幅が減少する。
【００５８】
[0089]ＤＤＲ３  ＳＤＲＡＭメモリシステムを含んでいる、オプションの別の実施形態においては、同じデータバス上の複数の異なるＤＲＡＭデバイスに送られる連続する列アクセス命令は、データバースト時間長と、ランク間のデータバスターンアラウンドタイムに起因する更なるアイドルサイクルとの合計である時間期間よりも短い間隔でスケジューリングされるとは限らない。列読取りアクセス命令の場合、同じデータバス上の２つのＤＲＡＭデバイスが、２つのバスマスターであることがある。オプションとして、１つのバスマスターが、メモリコントローラへのデータの供給を完了して共有データバスの制御を解放し、これにより別のバスマスターがデータバスの制御を取得してデータを送り始めるためには、バス上に少なくとも１つのアイドルサイクルが必要である。
【００５９】
[0090]図６は、更に別の実施形態による、デバイス間の命令列（ｉｎｔｅｒ−ｄｅｖｉｃｅ  ｃｏｍｍａｎｄ  ｓｅｑｕｅｎｃｅ）と、デバイス間のタイミング制約と、結果としてのアイドルサイクル（ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、又はＤＤＲ３  ＳＤＲＡＭメモリシステムにおいて帯域幅を完全に利用することを妨げる）とを示しているタイミング図６００を図解している。オプションとして、このタイミング図６００は、図１〜図４のアーキテクチャ及び環境に関連付けることができる。当然ながら、このタイミング図６００は任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００６０】
[0091]図示したように、タイミング図６００は、複数の異なるデバイスに発行される命令を示しており、この場合、同じデバイスに発行される命令に課される制約（例えば、ｔＲＲＤ、ｔＣＣＤ）は存在しない。しかしながら、図示したように、１つのデバイスから別のデバイスにデータバスを引き渡すために、データバス上に少なくとも１つのデータバスアイドルサイクル６１０が要求される。従って、このタイミング図６００は、ＤＤＲ３  ＳＤＲＡＭメモリシステムにおいて帯域幅を完全に利用することを妨げる制限を示している。この命令スケジューリングにおける制約の結果として、ＤＤＲ３  ＳＤＲＡＭメモリシステム（ｔＣＣＤよりも短いバーストを使用する）において帯域幅を完全に使用することのできる命令列が存在しないことがある。
【００６１】
[0092]図７は、別の実施形態による、メモリコントローラに接続されているＤＲＡＭデバイスのアレイを示しているブロック図７００を図解している。オプションとして、このブロック図７００は、図１〜図６のアーキテクチャ及び環境に関連付けることができる。当然ながら、このブロック図７００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００６２】
[0093]図示したように、８個のＤＲＡＭデバイスが共有データバス７１０を通じてメモリコントローラに直接接続されている。従って、ＤＲＡＭデバイスを対象とする、メモリコントローラからの命令は、命令スケジューリングにおける制約（例えば、ｔＲＲＤ、ｔＣＣＤ、ｔＦＡＷ、ｔＷＴＲ）の条件下で発行することができる。従って、このような命令スケジューリングにおける制約に基づき、命令の発行が遅れることがある。
【００６３】
[0094]図８は、更に別の実施形態による、ＤＲＡＭデバイスのアレイとメモリコントローラとの間に配置されているインタフェース回路を示しているブロック図８００を図解している。オプションとして、このブロック図８００は、図１〜図６のアーキテクチャ及び環境に関連付けることができる。当然ながら、このブロック図８００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００６４】
[0095]図示したように、インタフェース回路８１０は、メモリコントローラ８２０とのＤＲＡＭインタフェースを提供し、独立しているＤＲＡＭデバイス８３０に命令を渡す。メモリデバイス８３０のそれぞれに異なるデータバス５４０を関連付けることができ、従って、デバイス間制約が防止される。更に、個々の独立したメモリデバイス８３０を使用して、仮想メモリデバイスの要素（例えば列、行、バンク）をエミュレートすることができる。従って、デバイス内制約も防止することができる。これを目的として、インタフェース回路５１０に接続されているメモリデバイス８３０を、命令スケジューリングにおける制約が存在しない、１つ以上のメモリデバイス５３０から成るまとまりとして、メモリコントローラ８２０に認識させることができる。
【００６５】
[0096]例示的な一実施形態においては、インタフェース回路を使用することにより、Ｎ個の物理ＤＲＡＭデバイスを使用してＭ個の論理ＤＲＡＭデバイスをエミュレートすることができる。インタフェース回路は、Ｍ個の論理デバイスを対象とする、メモリコントローラからの命令ストリームを受け取ることができる。更に、インタフェース回路は、Ｐ本の独立したデータ経路を介してインタフェース回路に接続されているＮ個の物理デバイス向けに、これらの命令を変換することができる。命令の変換は、例えば、Ｍ個の論理デバイスのうちの１つを対象としている正しい命令を正しいデバイス（すなわち、Ｎ個の物理デバイスのうちの１つ）にルーティングするステップを含んでいることができる。全体として、Ｎ個の物理デバイスがＰ本のデータ経路によって接続されていることにより、オプションとして、インタフェース回路は、命令が並列且つ独立して実行されるように保証することができ、従って、Ｎ個の物理デバイスに関連付けられる命令スケジューリングにおける制約が防止される。このように、この方策がなければデバイス間命令スケジューリングにおける制約及びデバイス内命令スケジューリングにおける制約に起因して存在するはずの、データバスのアイドルサイクル或いはバブルを、インタフェース回路によって排除することができる。
【００６６】
[0097]図９は、別の実施形態による、ＤＲＡＭデバイスのアレイとメモリコントローラとの間に配置されているＤＤＲ３  ＳＤＲＡＭインタフェース回路を示しているブロック図９００を図解している。オプションとして、このブロック図９００は、図１〜図８のアーキテクチャ及び環境に関連付けることができる。当然ながら、このブロック図９００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００６７】
[0098]図示したように、ＤＤＲ３  ＳＤＲＡＭインタフェース回路９１０は、デバイス間のスケジューリング制約及びデバイス内のスケジューリング制約に起因する、データバスのアイドルサイクルを排除する。この実施形態においては、ＤＤＲ３  ＳＤＲＡＭインタフェース回路９１０は、複数のＤＤＲ３  ＳＤＲＡＭデバイスを複数の独立したデータバスに接続しているインタフェース回路の命令変換回路を含んでいることができる。例えば、ＤＤＲ３  ＳＤＲＡＭインタフェース回路９１０は、物理メモリ回路とシステムとの間の信号をインターセプトすることのできる命令・制御コンポーネント及びアドレスコンポーネントを含んでいることができる。更には、これら命令・制御コンポーネント及びアドレスコンポーネントによって、以下に図１０に関連して説明するように、バーストを融合することができる。
【００６８】
[0099]図１０は、更に別の実施形態による、複数の独立したデータバスによって複数のＤＲＡＭデバイスに接続されているバースト融合インタフェース回路を示しているブロック図１０００を図解している。オプションとして、このブロック図１０００は、図１〜図９のアーキテクチャ及び環境に関連付けることができる。当然ながら、このブロック図１０００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００６９】
[00100]バースト融合インタフェース回路１０１０は、複数のＤＲＡＭデバイス１０３０を複数の独立したデータバス１０４０に接続するインタフェース回路のデータコンポーネントを含んでいることができる。更に、バースト融合インタフェース回路１０１０は、ある時間期間内に受け取る複数のバースト命令を融合することができる。図示したように、バースト融合インタフェース回路１０１０には、８個のＤＲＡＭデバイス１０３０を８本の独立したデータ経路を介して接続することができる。更には、バースト融合インタフェース回路１０１０は、メモリコントローラ８２０への１本のデータ経路を使用することができる。なお、この実施形態においては８個のＤＲＡＭデバイス１０３０を示しているが、別の実施形態においては、１６個、２４個、３２個といったデバイスを８本の独立したデータ経路に接続することができる。更に別の実施形態においては、ＤＲＡＭデバイス１０３０には、２本、４本、８本、１６本、又はそれ以上の独立したデータ経路を関連付けることができる。
【００７０】
[00101]バースト融合インタフェース回路１０１０は、メモリコントローラ１０２０との１つの電気的インタフェースを提供することができ、従って、デバイス間制約（例えば、ランク間のターンアラウンドタイム）が排除される。一実施形態においては、メモリコントローラ１０２０は、自身がバースト融合インタフェース回路１０１０を通じてＤＲＡＭデバイス１０３０を間接的に制御していることと、バスのターンアラウンドタイムが必要ないこととを認識していることができる。別の実施形態においては、バースト融合インタフェース回路１０１０は、ＤＲＡＭデバイス１０３０を使用してＭ個の論理デバイスをエミュレートすることができる。更に、バースト融合インタフェース回路１０１０は、個々のＤＲＡＭデバイス１０３０のそれぞれによってデバイス間制約（例えば、ｔＲＲＤ、ｔＣＣＤ、ｔＦＡＷ、ｔＷＴＲ）が必ず満たされる一方で、バースト融合インタフェース回路１０１０が、デバイス間制約の存在しないＭ個の論理デバイスとして自身を定義できるようにする目的で、行アクティブ化命令及び列アクセス命令を、ＤＲＡＭデバイス１０３０のうちの１つを対象として変換することができる。
【００７１】
[00102]図１１は、別の実施形態による、命令列における複数の命令にわたる連続的なデータ転送を示しているタイミング図１１００を図解している。オプションとして、このタイミング図１１００は、図１〜図１０のアーキテクチャ及び環境に関連付けることができる。当然ながら、このタイミング図１１００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００７２】
[00103]図示したように、デバイス間制約及びデバイス内制約が排除されており、従って、バースト融合インタフェース回路は、データバス上での連続的なバーストデータ転送を許可することができ、従って、データ帯域幅が高まる。例えば、バースト融合インタフェース回路に関連付けられているインタフェース回路は、業界標準のＤＲＡＭインタフェースを、命令スケジューリングにおける制約の存在しない１つ以上のＤＲＡＭデバイスとしてメモリコントローラに提示することができる。更に、このインタフェース回路では、ＤＲＡＭメモリシステムの電気的インタフェース或いは命令セットを変更する必要なしに、ＤＲＡＭデバイスを、命令スケジューリングにおける制約が存在しないデバイスとしてエミュレートすることができる。なお、この実施形態に説明したインタフェース回路は、任意のタイプのメモリシステム（例えば、ＤＤＲ２、ＤＤＲ３）を含んでいることができる。
【００７３】
[00104]図１２は、更に別の実施形態による、複数の独立したデータバスによって複数のＤＲＡＭデバイスに接続されているプロトコル変換・インタフェース回路を示しているブロック図１２００を図解している。オプションとして、このブロック図１２００は、図１〜図１１のアーキテクチャ及び環境に関連付けることができる。当然ながら、このブロック図１２００は、任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００７４】
[00105]図示したように、プロトコル変換・インタフェース回路１２１０は、プロトコルの変換機能若しくは操作機能、又はその両方を実行することができ、更に、インタフェース回路として機能することができる。例えば、このプロトコル変換・インタフェース回路１２１０は、メモリコントローラを複数のメモリデバイスに接続しているインタフェース回路の中に含めることができる。
【００７５】
[00106]一実施形態においては、プロトコル変換・インタフェース回路１２１０は、行アクティブ化命令若しくは列アクセス命令、又はその両方を遅らせることができる。更に、プロトコル変換・インタフェース回路１２１０は、複数の異なる種類のアドレスマッピング方式（列アクセス命令の予測到着タイムに依存する）を透過的に実行することができる。１つの方式においては、メモリコントローラによって列アクセス命令を通常のタイミングにおいて送ることができる（すなわち、列アクセス命令が早期である方式と比較して遅れて到着する）。
【００７６】
[00107]第２の方式においては、ＤＲＡＭデバイスのインタフェースにおいて行アクセス命令が必要となる前に、メモリコントローラによって列アクセス命令を送ることができる（すなわち、早期に到着する）。ＤＤＲ２  ＳＤＲＡＭメモリシステム及びＤＤＲ３  ＳＤＲＡＭメモリシステムにおいては、早期に到着する列アクセス命令をポステッドＣＡＳ命令（Ｐｏｓｔｅｄ−ＣＡＳ  ｃｏｍｍａｎｄ）と称することがある。従って、必要に応じて行の一部をアクティブ化することができ、従って、行の一部のアクティブ化が提供される。更に、低電力も提供することができる。
【００７７】
[00108]なお、上述した方式の実施形態では、ピンを追加する、或いはメモリコントローラが新しい命令をプロトコル変換・インタフェース回路に送ることが必ずしも要求されない。このように、広帯域幅のＤＲＡＭデバイスを提供することができる。
【００７８】
[00109]図示したように、プロトコル変換・インタフェース回路１２１０には、８本の独立したデータ経路を介して８個のＤＲＡＭデバイスを接続することができる。例えば、プロトコル変換・インタフェース回路１２１０は、８個の１ＧＢ  ＤＲＡＭデバイスによって１つの８ＧＢ  ＤＲＡＭデバイスをエミュレートすることができる。従って、メモリコントローラは、８個のバンク、バンクあたり３２７６８行、行あたり４０９６列、列あたり４ビットが存在しているものと予測する。メモリコントローラは、行アクティブ化命令を発行するとき、後に続く列アクセス命令において４０９６列が使用可能であるものと予測するが、１ＧＢのデバイスは行あたり２０４８列を備えているのみである。同様に、２ＧＢのデバイスを使用して１６ＧＢのＤＲＡＭデバイスをエミュレートするとき、或いは、４ＧＢのデバイスを使用して３２ＧＢのデバイスをエミュレートするとき、行のサイズが一致しないという同じ問題が生じうる。
【００７９】
[00110]１ＧＢ  ＤＲＡＭデバイスと８ＧＢ  ＤＲＡＭデバイス、２ＧＢ  ＤＲＡＭデバイスと１６ＧＢ  ＤＲＡＭデバイス、４ＧＢ  ＤＲＡＭデバイスと３２ＧＢ  ＤＲＡＭデバイスなどにおいて、行のサイズが異なる状況に対応するため、プロトコル変換・インタフェース回路１２１０は、より大きな行の任意の部分にアクセスしうる次の列アクセス命令に備えて準備するため、適切な数の行アクティブ化命令を計算して発行することができる。特定の条件に応じて異なる挙動をとるように、プロトコル変換・インタフェース回路１２１０を構成設定することができる。
【００８０】
[00111]例示的な一実施形態においては、メモリコントローラは、列アクセス命令を早期に発行しない。プロトコル変換・インタフェース回路１２１０は、より大きな容量の論理ＤＲＡＭデバイスにおけるより大きな行サイズに一致するように、より小さい複数の行をアクティブ化することができる。
【００８１】
[00112]更には、プロトコル変換・インタフェース回路１２１０は、図示したように、メモリコントローラまでの１本のデータ経路を提供することができる。従って、プロトコル変換・インタフェース回路１２１０は、メモリコントローラとの１つの電気的インタフェースを備えている１つのＤＲＡＭデバイスとして自身を認識させることができる。例えば、プロトコル変換・インタフェース回路１２１０が８個の１ＧＢ  ＤＲＡＭデバイスを使用して１つの標準の８ＧＢ  ＤＲＡＭデバイスをエミュレートする場合、メモリコントローラは、８ＧＢの論理ＤＲＡＭデバイスがリフレッシュ命令を実行するのに３００ｎｓ以上かかるものと予測する。更に、プロトコル変換・インタフェース回路１２１０は、リフレッシュ命令をインテリジェント式にスケジューリングすることができる。すなわち、例えば、プロトコル変換・インタフェース回路１２１０は、１ＧＢ  ＤＲＡＭデバイスへのリフレッシュ命令を個別にスケジューリングする（リフレッシュ命令のそれぞれが１００ｎｓかかる）ことができる。
【００８２】
[00113]これを目的として、プロトコル変換・インタフェース回路１２１０が複数の物理ＤＲＡＭデバイスを使用して、より大きな１つのＤＲＡＭデバイスをエミュレートする場合、メモリコントローラは、リフレッシュ命令を実行するのに論理デバイスが比較的長い時間期間を要するものと予測する。プロトコル変換・インタフェース回路１２１０は、物理ＤＲＡＭデバイスのそれぞれへのリフレッシュ命令を個別にスケジューリングすることができる。従って、より大きな論理ＤＲＡＭデバイスのリフレッシュにかかる時間期間を、同じサイズの物理ＤＲＡＭデバイスのリフレッシュと比較して短くすることができる。更には、ＤＤＲ３メモリシステムでは、熱的な変動によって生じるタイミングのずれに対して高速データＩ／Ｏ回路が定期的に調整（較正）されるように、キャリブレーションシーケンスを必要とすることがある。更に、オプションとして、時間的にずらせたリフレッシュ命令によって、独立した物理ＤＲＡＭデバイスのそれぞれを個別に調整するうえで要求されるＩ／Ｏクワイエットタイム（Ｉ／Ｏ  ｑｕｉｅｔ  ｔｉｍｅ）を確保することもできる。
【００８３】
[00114]このように、一実施形態においては、プロトコル変換・インタフェース回路１２１０によって、論理ＤＲＡＭデバイスのリフレッシュタイムを時間的にずらすことができる。ＤＤＲ３デバイスでは、オプションとして、様々なレベルのＺＱ（ｚｅｒｏ  ｑｕｏｔｉｅｎｔ）キャリブレーションシーケンスが要求されることがある。このキャリブレーションシーケンスでは、保証されたシステムクワイエットタイムが必要とされることがあるが、電力消費量が多いことがあり、システム内の別のＩ／Ｏが同時にスイッチングされていないことが要求されることがある。従って、小さい容量の複数の異なる物理ＤＲＡＭデバイスへのリフレッシュ命令を時間的にずらすことによって、より大きな容量の論理ＤＲＡＭデバイスにおけるリフレッシュ命令をエミュレートすることができる。リフレッシュ命令を時間的にずらすことにより、オプションとして、独立した物理ＤＲＡＭデバイスのそれぞれを個別に調整するうえで要求されうる保証されたクワイエットタイムを提供することができる。
【００８４】
[00115]図１３は、別の実施形態による、メモリコントローラが列アクセス命令を遅らせて発行するときの効果を示しているタイミング図１３００を図解している。オプションとして、このタイミング図１３００は、図１〜図１２のアーキテクチャ及び環境に関連付けることができる。当然ながら、このタイミング図１３００は任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００８５】
[00116]図示したように、ＤＲＡＭデバイスの行アクセスのレイテンシ及び列アクセスのレイテンシの両方をカバーするだけの十分なレイテンシを確保せずに、メモリコントローラによって列アクセス命令が発行されるメモリシステムにおいては、インタフェース回路は、次の列アクセスが必ず空きバンクにアドレッシングされるように、複数の行アクセス命令を複数のＤＲＡＭデバイスに送ることができる。例示的な一実施形態においては、物理デバイスの行サイズが１キロバイト（ＫＢ）であり、論理デバイスの行サイズが２ＫＢである。この場合、インタフェース回路は、２つの異なる物理デバイスにおいて１ＫＢの２つの行をアクティブ化することができる（ｔＲＲＤの期間内に同じデバイスにおいて２行をアクティブ化することはできないため）。別の例示的な実施形態においては、物理デバイスの行サイズが１ＫＢであり、論理デバイスの行サイズが４ＫＢである。この場合、４ＫＢの行の任意の部分を対象としうる列アクセス命令の到着に備えて準備するため、１ＫＢの４つの行をオープンすることができる。
【００８６】
[00117]一実施形態においては、メモリコントローラは、列アクセス命令を早期に発行することができる。インタフェース回路は、このような早期の発行を、任意の望ましい方式において、例えば、ＤＤＲ２デバイス及びＤＤＲ３デバイスのアディティブレイテンシ（ａｄｄｉｔｉｖｅ  ｌａｔｅｎｃｙ）特性を使用して、行うことができる。更に、インタフェース回路は、１つの特定のＤＲＡＭデバイスにおける１つの特定の行をアクティブ化することができる。これにより、より大きな容量の論理ＤＲＡＭデバイスにおいて、行の一部をアクティブ化することができる。
【００８７】
[00118]図１４は、更に別の実施形態による、メモリコントローラが列アクセス命令を早期に発行するときの効果を示しているタイミング図１４００を図解している。オプションとして、このタイミング図１４００は、図１〜図１３のアーキテクチャ及び環境に関連付けることができる。当然ながら、このタイミング図１３００は任意の望ましい環境に関連付けることができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００８８】
[00119]この実施形態においては、メモリコントローラは、列アクセス命令を早期に、すなわち、行アクティブ化命令がＤＲＡＭデバイスに発行される前に、発行することができる。従って、インタフェース回路は、列アドレスの一部を取得し、それを行アドレスと結合して行の一部のアドレスを形成することができる。これを目的として、インタフェース回路は、列アクセス命令が対象としている行をアクティブ化することができる。単なる一例として、物理デバイスの行サイズが１ＫＢであり、論理デバイスの行サイズが２ＫＢである場合、早期の列アクセス命令によって、インタフェース回路は１ＫＢの１つの行をアクティブ化することができる。従って、インタフェース回路は、物理デバイスの行サイズよりも大きな行サイズを有する論理デバイスにおける行の一部のアクティブ化を、追加のピン或いは特殊な命令を使用する必要なしに実施することができる。
【００８９】
[00120]図１５の（Ａ）〜（Ｃ）は、別の実施形態による、複数のＤＲＡＭ積層体を備えているＤＩＭＭを示している。オプションとして、このＤＩＭＭは、図１〜図１４において実施することができる。当然ながら、このＤＩＭＭは任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００９０】
[00121]図示したように、複数のＤＲＡＭ積層体を備えているＤＩＭＭが提供されており、ＤＲＡＭ積層体のそれぞれが、複数のＤＩＭＭにまたがるビットスライス（ｂｉｔ  ｓｌｉｃｅ）を備えている。一例として、図１５の（Ａ）は、４つのＤＩＭＭ（例えば、ＤＩＭＭ  Ａ、ＤＩＭＭ  Ｂ、ＤＩＭＭ  Ｃ、ＤＩＭＭ  Ｄ）を示している。更に、この例においては、４つのＤＩＭＭにまたがる９個のビットスライス（識別符号ＤＡ０，．．．，ＤＡ６，．．．，ＤＡ８が付けられている）が存在している。ビットスライス「６」は、ブロック１５１０に囲んで示してある。図１５の（Ｂ）は、バッファ搭載ＤＲＡＭ積層体（ｂｕｆｆｅｒｅｄ  ＤＲＡＭ  ｓｔａｃｋ）を示している。バッファ搭載ＤＲＡＭ積層体１５３０は、バッファ集積回路（１５２０）と、ＤＲＡＭデバイスＤＡ６，ＤＢ６，ＤＣ６，ＤＤ６とを備えている。従って、ビットスライス６はデバイスＤＡ６，ＤＢ６，ＤＣ６，ＤＤ６から生成されている。図１５の（Ｃ）は、複数のバッファ搭載ＤＲＡＭ積層体を備えている高密度ＤＩＭＭの平面図である。高密度ＤＩＭＭ（１５４０）は、個々のＤＲＡＭの代わりに、バッファ搭載ＤＲＡＭ積層体（１５５０）を備えている。
【００９１】
[00122]以下に、いくつかの例示的な実施形態を示す。
【００９２】
[00123]より大きなＰＣＢ領域を必要とすることなくシステムの総記憶容量を増大させることのできる、ＤＩＭＭの密度が高い配置構成。従って、より高い密度のＤＩＭＭが、現在のＤＩＭＭの機械的制約及び空間的制約の中に収まる。
【００９３】
[00124]より高い密度のＤＩＭＭを、既存のＤＩＭＭの熱設計枠（ｔｈｅｒｍａｌ  ｅｎｖｅｌｏｐｅ）の中に収めることのできる、電力損失を分散させた配置構成。１枚のＤＩＭＭ上に複数のバッファを備えている実施形態においては、バッファリング機能の電力損失がＤＩＭＭ全体に拡散する。
【００９４】
[00125]システムのパフォーマンスを高めるため、レイテンシを累積させない（非アディティブ）方式の配置構成。レイテンシを累積させない方式の配置構成においては、特定のＤＩＭＭ上のバッファ集積回路を通じてのレイテンシは、そのＤＩＭＭにアクセスするときにのみ発生する。
【００９５】
[00126]バッファ搭載ＤＲＡＭ積層体の実施形態においては、積層体の複数のＤＲＡＭデバイスは、バッファ集積回路よりも電気的に後ろに位置している。言い換えれば、バッファ集積回路は、電気的には積層体の複数のＤＲＡＭデバイスとホスト電子システムとの間に配置されており、積層化されているＤＲＡＭデバイスとホストシステムとの間で渡される信号の一部又はすべてをバッファリングする。ＤＲＡＭデバイスは標準的な既製の高速デバイス（例えば、ＤＤＲ  ＳＤＲＡＭ或いはＤＤＲ２  ＳＤＲＡＭ）であるため、バッファ集積回路は、いくつかの信号（例えばクロック）を再生成しなければならないことがあり、その一方で、別の信号（例えばデータ信号）を、それらのジッタを最小にするためクロック又はデータストローブに再同期させなければならないことがある。更に別の信号（例えばアドレス信号）は、論理回路（例えば復号器）によって操作することができる。バッファ集積回路のいくつかの実施形態においては、ＤＲＡＭデバイスとホスト電子システムとの間の信号の一部又はすべてを再生成しない、又は再同期させない、又は論理的に操作しない。
【００９６】
[00127]バッファ集積回路及びＤＲＡＭデバイスは、多くの異なる方式において物理的に配置することができる。一実施形態においては、バッファ集積回路及びＤＲＡＭデバイスを、すべて同じ積層体に含めることができる。別の実施形態においては、バッファ集積回路を、ＤＲＡＭ集積回路の積層体とは個別にすることができる（すなわち、バッファ集積回路を積層体の外側とすることができる）。更に別の実施形態においては、バッファ集積回路よりも電気的に後ろに位置しているＤＲＡＭ集積回路を複数の積層体に含めることができる（すなわち、バッファ集積回路がＤＲＡＭ集積回路の複数の積層体をインターフェースすることができる）。
【００９７】
[00128]一実施形態においては、バッファ集積回路よりも電気的に後ろに位置しているＤＲＡＭデバイスが、積層体の全ＤＲＡＭデバイスの容量の合計値に等しい容量を有する１つのＤＲＡＭ集積回路として、ホストシステムによって認識されるように、バッファ集積回路を設計することができる。従って、例えば、積層体に８個の５１２ＭＢ  ＤＲＡＭ集積回路が含まれている場合、この積層体が１つの４ＧＢ  ＤＲＡＭ集積回路としてホストシステムに認識されるように、この実施形態のバッファ集積回路を設計する。この場合、アンバッファードＤＩＭＭ、レジスタードＤＩＭＭ、ＳＯ−ＤＩＭＭ、又はＦＢ−ＤＩＭＭを、個々のＤＲＡＭデバイスではなく、バッファを搭載したＤＲＡＭ積層体を使用して構築することができる。例えば、バッファ搭載ＤＲＡＭ積層体を使用するダブル（２）ランクのレジスタードＤＩＭＭでは、１８個の積層体を備えることができ、そのうちの９個の積層体をＤＩＭＭ  ＰＣＢの片面に配置し、ホスト電子システムからの第１の集積回路セレクト信号によって制御することができ、９個の積層体をＤＩＭＭ  ＰＣＢの反対面に配置し、ホスト電子システムからの第２の集積回路セレクト信号によって制御することができる。これらの積層体のそれぞれが、複数のＤＲＡＭデバイス、及びバッファ集積回路を含んでいることができる。
【００９８】
[00129]図１６Ａは、更に別の実施形態による、バッファ搭載ＤＲＡＭ積層体を備えているＤＩＭＭ  ＰＣＢを示している。オプションとして、このＤＩＭＭ  ＰＣＢは、図１〜図１５において実施することができる。当然ながら、このＤＩＭＭ  ＰＣＢは任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【００９９】
[00130]図示したように、ＤＩＭＭ  ＰＣＢの上面及び下面の両方が、複数のバッファ搭載ＤＲＡＭ積層体（例えば、１６１０及び１６２０）を備えている。なお、図を単純にするため、レジスタードＤＩＭＭのレジスタ及びクロックＰＬＬの集積回路は示していない。
【０１００】
[00131]図１６Ｂは、更に別の実施形態による、４ＧＢ  ＤＲＡＭをエミュレートするバッファ搭載ＤＲＡＭ積層体を示している。オプションとして、このバッファ搭載ＤＲＡＭ積層体は、図１〜図１６Ａにおいて実施することができる。当然ながら、このバッファ搭載ＤＲＡＭ積層体は任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１０１】
[00132]一実施形態においては、ＤＲＡＭデバイスのバッファ搭載積層体をホストシステムに１つのＤＲＡＭデバイスとして認識させる、又は１つのＤＲＡＭデバイスをエミュレートすることができる。このような場合、ホストシステムから認識されるメモリバンクの数を、積層体における利用可能なバンクの数よりも小さくすることができる。説明を目的として、積層体に８個の５１２ＭＢ  ＤＲＡＭ集積回路が含まれている場合、この実施形態のバッファ集積回路によって、ホストシステムからは積層体が１つの４ＧＢ  ＤＲＡＭ集積回路であるように認識される。従って、積層体に３２個のバンク（５１２ＭＢの集積回路あたり４つのバンク×８個の集積回路）が存在している場合であっても、この実施形態のバッファ集積回路では、ホストシステムには８個のバンクが認識されるのみであり、なぜなら、規格によると４ＧＢ  ＤＲＡＭは８個のバンクのみを有するためである。この例において、８個の５１２ＭＢ  ＤＲＡＭ集積回路を物理ＤＲＡＭデバイスと称することができ、１つの４ＧＢ  ＤＲＡＭ集積回路を仮想ＤＲＡＭデバイスと称することができる。同様に、物理ＤＲＡＭデバイスのバンクを物理バンクと称することができ、仮想ＤＲＡＭデバイスのバンクを仮想バンクと称することができる。
【０１０２】
[00133]本発明の別の実施形態においては、ｎ個のＤＲＡＭデバイスの積層体が、ｍランクのＤＲＡＭデバイス（ｎ?ｍ且つｍ?２）としてホストに認識されるように、バッファ集積回路が設計されている。説明を目的として、積層体に８個の５１２ＭＢ  ＤＲＡＭ集積回路が含まれている場合、この実施形態のバッファ集積回路によって、積層体を２ランクの２ＧＢ  ＤＲＡＭデバイスとして認識させる（ｍ＝２の場合）、又は４ランクの１ＧＢ  ＤＲＡＭデバイスとして認識させる（ｍ＝４の場合）、又は８ランクの５１２ＭＢ  ＤＲＡＭデバイスとして認識させる（ｍ＝８の場合）ことができる。結果として、８個の５１２ＭＢ  ＤＲＡＭデバイスの積層体は、１６個の仮想バンク（ｍ＝２、２ＧＢの仮想ＤＲＡＭあたり８個のバンク×２ランク）、又は３２個の仮想バンク（ｍ＝４、１ＧＢ  ＤＲＡＭあたり８個のバンク×４ランク）、又は３２個のバンク（ｍ＝８、５１２ＭＢ  ＤＲＡＭあたり４つのバンク×８ランク）を備えることができる。
【０１０３】
[00134]一実施形態においては、ランクの数は、ホストシステムからバッファ集積回路に接続されている集積回路セレクト信号の数によって決定することができる。例えば、最も広く使用されている、ＪＥＤＥＣ準拠のＤＩＭＭコネクタのピンアウトは、２つの集積回路セレクト信号を有する。従って、この実施形態においては、ＤＩＭＭコネクタからの２つの集積回路セレクト信号を、ＤＩＭＭ上のバッファ集積回路のそれぞれにルーティングすることによって、積層体のそれぞれを２つのＤＲＡＭデバイスとして認識させる（バッファ集積回路のそれぞれが異なるランクに属している）ことができる。説明を目的として、いま、ＤＲＡＭデバイスの積層体のそれぞれが専用のバッファ集積回路を備えており、マザーボード上のＤＩＭＭコネクタに接続されている２つの集積回路セレクト信号に識別符号ＣＳ０＃及びＣＳ１＃を付けるものと想定する。更に、積層体のそれぞれが８ビット幅であり（すなわち、８本のデータピンを備えている）、積層体には、バッファ集積回路と、８ビット幅の８個の５１２ＭＢ  ＤＲＡＭ集積回路とが含まれているものと想定する。この例においては、ＣＳ０＃及びＣＳ１＃の両方が、ＤＩＭＭ上のすべての積層体に接続されている。従って、９個の積層体を備えている、シングルサイドのレジスタードＤＩＭＭ（ＣＳ０＃及びＣＳ１＃が９個の積層体のすべてに接続されている）では、実質的に２つの２ＧＢランク（ランクのそれぞれが８個のバンクを有する）を備えている。
【０１０４】
[00135]別の実施形態においては、１８個の積層体（ＰＣＢの面のそれぞれに９個ずつ）を使用して、ダブルサイドのレジスタードＤＩＭＭを構築することができ、この場合、積層体のそれぞれは、４ビット幅であり、バッファ集積回路と、４ビット幅の８個の５１２ＭＢ  ＤＲＡＭデバイスとを含んでいる。上と同様に、２つの集積回路セレクト信号ＣＳ０＃及びＣＳ１＃がすべての積層体に接続されている場合、そのＤＩＭＭは、実質的に２つの４ＧＢランク（ランクのそれぞれが８個のバンクを有する）を備えている。しかしながら、ランクの容量の半分はＤＩＭＭ  ＰＣＢの片面に存在しており、残りの半分が反対面に存在している。例えば、いま、ＤＩＭＭ上の積層体に番号Ｓ０〜Ｓ１７を付け、積層体Ｓ０〜Ｓ８がＤＩＭＭ  ＰＣＢの片面に存在しており、積層体Ｓ９〜Ｓ１７がＰＣＢの反対面に存在しているものとする。積層体Ｓ０をホストシステムのデータ信号線ＤＱ［３：０］に接続し、積層体Ｓ９をホストシステムのデータ信号線ＤＱ［７：４］に接続し、積層体Ｓ１をデータ信号線ＤＱ［１１：８］に接続し、積層体Ｓ１０をデータ信号線ＤＱ［１５：１２］に接続し、以下同様に接続することができる。積層体Ｓ０の８個の５１２ＭＢ  ＤＲＡＭデバイスに識別符号Ｓ０＿Ｍ０〜Ｓ０＿Ｍ７を付けることができ、積層体Ｓ９の８個の５１２ＭＢ  ＤＲＡＭデバイスに識別符号Ｓ９＿Ｍ０〜Ｓ９＿Ｍ７を付けることができる。一例においては、積層体Ｓ０に関連付けられているバッファ集積回路は、集積回路Ｓ０＿Ｍ０〜Ｓ０＿Ｍ３を使用して、第１のランクに属している（すなわち、集積回路セレクト信号ＣＳ０＃によって制御される）２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができる。同様に、積層体Ｓ０に関連付けられているバッファ集積回路は、集積回路Ｓ０＿Ｍ４〜Ｓ０＿Ｍ７を使用して、第２のランクに属している（すなわち、集積回路セレクト信号ＣＳ１＃によって制御される）２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができる。従って、一般的には、集積回路Ｓｎ＿Ｍ０〜Ｓｎ＿Ｍ３を使用して、第１のランクに属している２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができ、その一方で、集積回路Ｓｎ＿Ｍ４〜Ｓｎ＿Ｍ７を使用して、第２のランクに属している２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができる（ｎは積層体の番号を表す（すなわち、０?ｎ?１７））。なお、上述した配置構成は、説明を目的としているに過ぎない。請求項の概念及び範囲から逸脱することなく、別の配置構成を使用して同じ結果を達成することができる。例えば、集積回路Ｓ０＿Ｍ０，Ｓ０＿Ｍ２，Ｓ０＿Ｍ４，Ｓ０＿Ｍ６を、これらに関連付けられるバッファ集積回路によって１つのグループとし、第１のランクにおける２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができ、その一方で、集積回路Ｓ０＿Ｍ１，Ｓ０＿Ｍ３，Ｓ０＿Ｍ５，Ｓ０＿Ｍ７を、これらに関連付けられるバッファ集積回路によって１つのグループとし、ＤＩＭＭの第２のランクにおける２ＧＢ  ＤＲＡＭ集積回路をエミュレートすることができる。
【０１０５】
[00136]図１７Ａは、別の実施形態による、バッファ集積回路とＤＲＡＭ積層体とを使用するＤＩＭＭの例を示している。オプションとして、このＤＩＭＭは、図１〜図１６において実施することができる。当然ながら、このＤＩＭＭは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１０６】
[00137]なお、図を単純にする目的で、レジスタードＤＩＭＭのレジスタ及びクロックＰＬＬの集積回路は示していない。ＤＩＭＭ  ＰＣＢ１７００は、ＤＩＭＭ  ＰＣＢ１７００の上面におけるバッファ搭載ＤＲＡＭ積層体（例えばＳ５）と、ＤＩＭＭ  ＰＣＢ１７００の下面におけるバッファ搭載ＤＲＡＭ積層体（例えばＳ１５）とを含んでいる。バッファ搭載積層体のそれぞれが２つのＤＲＡＭをエミュレートする。
【０１０７】
[00138]図１７Ｂは、更に別の一実施形態による、物理ＤＲＡＭ積層体を示している。オプションとして、この物理ＤＲＡＭ積層体は、図１〜図１７Ａにおいて実施することができる。当然ながら、この物理ＤＲＡＭ積層体は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１０８】
[00139]例えば、積層体１７２０は、４ビット幅の８個の５１２ＭＢ  ＤＲＡＭデバイスと、バッファ集積回路１７３０とを備えている。図示したように、Ｓｎ＿Ｍ０、Ｓｎ＿Ｍ１、Ｓｎ＿Ｍ２、及びＳｎ＿Ｍ３から成る第１のデバイスグループは、ＣＳ０＃によって制御される。Ｓｎ＿Ｍ４、Ｓｎ＿Ｍ５、Ｓｎ＿Ｍ６、及びＳｎ＿Ｍ７から成る第２のデバイスグループは、ＣＳ１＃によって制御される。なお、８個のＤＲＡＭデバイス及びバッファ集積回路が１つの積層体に属しているものとして示してあるが、これは単なる一例である。別の実施形態も可能である。例えば、バッファ集積回路１７３０をＤＲＡＭデバイスの積層体の外側とすることができる。更に、８個のＤＲＡＭデバイスを複数の積層体に編成することもできる。
【０１０９】
[00140]図１８Ａ及び図１８Ｂは、更に別の実施形態による、マルチランクのバッファ集積回路とＤＩＭＭとを示している。オプションとして、このマルチランクバッファ集積回路及びＤＩＭＭは、図１〜図１７において実施することができる。当然ながら、このマルチランクバッファ集積回路及びＤＩＭＭは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１１０】
[00141]マルチランクの実施形態のオプションとしての変形形態においては、ＤＲＡＭ集積回路の複数の積層体に１つのバッファ集積回路を関連付けることができる。図１８Ａ及び図１８Ｂに例示した実施形態においては、１つのバッファ集積回路がＤＲＡＭ集積回路の２つの積層体に専用となっている。図１８Ｂは、２つの積層体（ＤＩＭＭ  ＰＣＢの面のそれぞれに１つの積層体）と、ＤＩＭＭ  ＰＣＢの片面に配置されている１つのバッファ集積回路Ｂ０とを示している。しかしながら、この実施形態は、完全に説明を目的としているに過ぎない。バッファ集積回路が関連付けられている複数の積層体を、ＤＩＭＭ  ＰＣＢの同じ面に配置することができ、或いは、ＰＣＢの両面に配置することができる。
【０１１１】
[00142]図１８Ａ及び図１８Ｂに例示した実施形態においては、ＤＲＡＭデバイスの積層体のそれぞれが５１２ＭＢの８個の集積回路を含んでいる。積層体には番号Ｓ０〜Ｓ１７が付けられており、積層体のそれぞれの中で、集積回路に識別符号Ｓｎ＿Ｍ０〜Ｓｎ＿Ｍ７（ｎは０〜１７）が付けられている。更に、この例の場合、バッファ集積回路は８ビット幅であり、バッファ集積回路には番号Ｂ０〜Ｂ８が付けられている。バッファＢ０には、データ信号線ＤＱ［７：０］と同様に、２つの集積回路セレクト信号ＣＳ０＃及びＣＳ１＃が接続されている。図示したように、積層体Ｓ０〜Ｓ８が一次積層体であり、積層体Ｓ９〜Ｓ１７はオプションの積層体である。積層体Ｓ９は、ＤＩＭＭ  ＰＣＢの反対の面、積層体Ｓ０（及びバッファＢ０）のちょうど反対側に配置されている。積層体Ｓ９の集積回路はバッファＢ０に接続されている。言い換えれば、積層体Ｓ０及び積層体Ｓ９のＤＲＡＭデバイスがバッファＢ０に接続されており、バッファＢ０がホストシステムに接続されている。ＤＩＭＭが一次積層体Ｓ０〜Ｓ８のみを含んでいる場合、バッファ集積回路Ｂ０は、積層体Ｓ０の８個のＤＲＡＭデバイスをエミュレートしてホストシステムに２つの２ＧＢデバイスとして認識させ、この場合、一方の２ＧＢデバイスがＣＳ０＃によって制御され、他方の２ＧＢデバイスがＣＳ１＃によって制御される。ＤＩＭＭが一次積層体Ｓ０〜Ｓ８とオプションの積層体Ｓ９〜Ｓ１７の両方を含んでいる場合、バッファ集積回路Ｂ０は、積層体Ｓ０及び積層体Ｓ９の１６個の５１２ＭＢ  ＤＲＡＭデバイスをまとめてエミュレートしてホストシステムに２つの４ＧＢ  ＤＲＡＭデバイスとして認識させ、この場合、一方の４ＧＢ  ＤＲＡＭデバイスがＣＳ０＃によって制御され、他方の４ＧＢ  ＤＲＡＭデバイスがＣＳ１＃によって制御される。
【０１１２】
[00143]なお、上の説明から明らかであるように、このアーキテクチャでは、メモリバス上の電気的負荷とランクの数とが無関係になる。従って、９個の積層体（Ｓ０〜Ｓ８）と９個のバッファ集積回路（Ｂ０〜Ｂ８）とによって低密度のＤＩＭＭを構築することができ、１８個の積層体（Ｓ０〜Ｓ１７）と９個のバッファ集積回路（Ｂ０〜Ｂ８）とによって高密度のＤＩＭＭを構築することができる。なお、ＤＩＭＭ上のバッファ集積回路のそれぞれに集積回路セレクト信号ＣＳ０＃及びＣＳ１＃の両方を接続する必要はない。９個の積層体（Ｓ０〜Ｓ８）と９個のバッファ集積回路（Ｂ０〜Ｂ８）とによってシングルランクの低密度ＤＩＭＭを構築することができ、この場合、ＤＩＭＭ上のバッファ集積回路のそれぞれにＣＳ０＃が接続されている。同様に、１７個の積層体（Ｓ０〜Ｓ１７）と９個のバッファ集積回路とによってシングルランクの高密度ＤＩＭＭを構築することができ、この場合、ＤＩＭＭ上のバッファ集積回路のそれぞれにＣＳ０＃が接続されている。
【０１１３】
[00144]マルチランクバッファを使用してマルチランクの実施形態を実施するＤＩＭＭは、形状因子が小さくＤＩＭＭスロットの数が制限されるシステムにおいてオプションとして使用することができる。例えば、いま、８個の集積回路セレクト信号を有し、従って、最大８個のランクをサポートするプロセッサを考える。このようなプロセッサは、４つの２ランクＤＩＭＭ又は８個のシングルランクＤＩＭＭ、又は、８個のランクを提供するその他の任意の組合せをサポートすることができる。このとき、ランクのそれぞれがｙ個のバンクを有し、すべてのランクが同一であると想定すると、このプロセッサは、任意の瞬間に最大８＊ｙ個のメモリページをオープン状態に維持することができる。形状因子が小さいサーバ（例えば、ブレードサーバ或いは１Ｕサーバ）では、ＤＩＭＭスロットのための物理的空間がプロセッサあたり２つのみである場合がある。すなわち、そのような形状因子の小さいサーバにおけるプロセッサは、たとえ８＊ｙ個のページをオープン状態に維持する能力を備えていても、オープンすることができるメモリページは最大で４＊ｙ個である。そのようなシステムにおいては、ＤＲＡＭデバイス及びマルチランクバッファ集積回路の積層体を含んでいるＤＩＭＭを使用することにより、システム内のＤＩＭＭスロットの数が、そのプロセッサがサポートすることのできる最大のスロット数よりも少ない場合であっても、プロセッサが８＊ｙ個のメモリページをオープン状態に維持するようにＤＩＭＭを設計することができる。これを達成するための一方法は、ホストシステムの集積回路セレクト信号のすべてを、マザーボード上のすべてのＤＩＭＭスロットの間で割り当てることである。例えば、プロセッサが２つのみの専用ＤＩＭＭスロットを備えている場合、ＤＩＭＭコネクタのそれぞれに４つの集積回路セレクト信号を接続することができる。しかしながら、プロセッサが４つの専用ＤＩＭＭスロットを備えている場合、ＤＩＭＭコネクタのそれぞれに２つの集積回路セレクト信号を接続することができる。
【０１１４】
[00145]バッファ及びＤＩＭＭの設計を説明する目的で、いま、バッファ集積回路が、ホストシステムからアクセス可能である最大８個の集積回路セレクト信号入力を備えているように設計されているものとする。これらの集積回路セレクト信号入力のそれぞれに対して、ホストシステムの集積回路セレクト信号のロジックハイの電圧レベルとロジックローの電圧レベルとの間の電圧までの弱いプルアップ回路を設けることができる。例えば、ＶＤＤＱとＧＮＤ（グランド）との間の中間の電圧（ＶＴＴ）までのプルアップ抵抗器を接続することができる。これらのプルアップ抵抗器はＤＩＭＭ  ＰＣＢ上に配置することができる。マザーボードの設計に応じて、ホストシステムからの２つ以上の集積回路セレクト信号を、ＤＩＭＭコネクタ、従ってバッファ集積回路の集積回路セレクト信号入力に接続することができる。パワーアップ時、バッファ集積回路は、自身のいくつかの集積回路セレクト信号入力において有効なローロジックレベル又はハイロジックレベルを検出することができ、別のいくつかの集積回路セレクト信号入力においてＶＴＴを検出することができる。これにより、積層体におけるランクの数が、有効な集積回路セレクト信号入力の数に一致するように、バッファ集積回路によって積層体におけるＤＲＡＭを構成設定することができる。
【０１１５】
[00146]図１９Ａ及び図１９Ｂは、別の実施形態による、ホストシステムからの有効な集積回路セレクト信号の数に等しい数のランクをＤＩＭＭ上に提供するバッファを示している。オプションとして、このバッファは、図１〜図１８において実施することができる。当然ながら、このバッファは任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１１６】
[00147]図１９Ａは、２枚のＤＩＭＭに接続されているメモリコントローラを示している。ホストシステムのメモリコントローラ（１９００）は、８本の集積回路セレクト（ＣＳ）信号線（ＣＳ０＃〜ＣＳ７＃）を駆動する。最初の４本の信号線（ＣＳ０＃〜ＣＳ３＃）は、第１のＤＩＭＭ（１９１０）におけるメモリランクを選択するために使用され、残りの４本の信号線（ＣＳ４＃〜ＣＳ７＃）は、第２のＤＩＭＭ（１９２０）におけるメモリランクを選択するために使用される。図１９Ｂは、ＤＩＭＭのランクの数を構成設定するために使用される、ＤＩＭＭにおけるバッファ及びプルアップ回路を示している。この例の場合、バッファ１９３０は、８個の集積回路セレクト信号入力（ＣＳ０＃〜ＣＳ７＃）を含んでいる。ＤＩＭＭ１９１０上のプルアップ回路は、接続されている集積回路セレクト信号線の電圧を、中間電圧値（すなわち、ＶＤＤＱとＧＮＤとの中間、ＶＴＴ）まで吊り上げる。ＣＳ０＃〜ＣＳ３＃は、プルアップ回路を介してバッファ１９３０に接続されている。ＣＳ４＃〜ＣＳ７＃はＤＩＭＭ１９１０には接続されていない。従って、この例の場合、ＤＩＭＭ１９１０は、信号線ＣＳ０＃〜ＣＳ３＃に基づいてランクを構成設定する。
【０１１７】
[00148]従来のマザーボードの設計では、集積回路セレクト信号のサブセットがＤＩＭＭコネクタのそれぞれに配線によって接続されている。例えば、プロセッサあたり４つのＤＩＭＭコネクタが存在する場合、２つの集積回路セレクト信号をＤＩＭＭコネクタのそれぞれに配線によって接続することができる。しかしながら、４つのＤＩＭＭコネクタのうち２つのコネクタにのみ装着されている場合、たとえプロセッサが８＊ｙ個のバンクをサポートしている場合であっても、利用することのできるメモリバンクは４＊ｙ個のみであり、なぜなら、４つのＤＩＭＭコネクタのうち２つのコネクタのみにＤＩＭＭが装着されているためである。メモリバンクの動的な可用性を提供する一方法としては、ホストシステムからのすべての集積回路セレクト信号がマザーボード上のすべてのＤＩＭＭコネクタに接続されているように、マザーボードを構成設定する。パワーアップ時、ホストシステムは、システム内の装着済みＤＩＭＭコネクタの数を問い合わせ、次いで、すべての装着済みコネクタの間で集積回路セレクト信号を割り当てる。
【０１１８】
[00149]一実施形態においては、ＤＩＭＭのそれぞれにおけるバッファ集積回路を、特定の集積回路セレクト信号にのみ応答するようにプログラムすることができる。上と同じ例として、プロセッサが４つの専用ＤＩＭＭコネクタを備えており、４つのＤＩＭＭコネクタのうちの２つのみが装着されている場合を考える。最初の４つの集積回路セレクト信号（例えば、ＣＳ０＃〜ＣＳ３＃）が第１のＤＩＭＭコネクタに割り当てられ、残りの４つの集積回路セレクト信号（例えば、ＣＳ４＃〜ＣＳ７＃）が第２のＤＩＭＭコネクタに割り当てられるように、プロセッサをプログラムすることができる。プロセッサは、第１のＤＩＭＭ上のバッファ集積回路に、信号ＣＳ０＃〜ＣＳ３＃に対してのみ応答して信号ＣＳ４＃〜ＣＳ７＃を無視するように、命令することができる。更に、プロセッサは、第２のＤＩＭＭ上のバッファ集積回路に、信号ＣＳ４＃〜ＣＳ７＃に対してのみ応答して信号ＣＳ０＃〜ＣＳ３＃を無視するように、命令することができる。後の時点において、残りの２つのＤＩＭＭコネクタが装着された場合、プロセッサは、第１のＤＩＭＭ上のバッファ集積回路を、信号ＣＳ０＃及びＣＳ１＃に対してのみ応答するように再プログラムし、第２のＤＩＭＭ上のバッファ集積回路を、信号ＣＳ２＃及びＣＳ３＃に対してのみ応答するように再プログラムし、第３のＤＩＭＭ上のバッファ集積回路を、信号ＣＳ４＃及びＣＳ５＃に対してのみ応答するようにプログラムし、第４のＤＩＭＭ上のバッファ集積回路を、信号ＣＳ６＃及びＣＳ７＃に対してのみ応答するようにプログラムすることができる。この方法によると、この例のプロセッサは、装着されているＤＩＭＭコネクタの数には関係なく、８＊ｙ個のページをオープン状態に維持することができる（ＤＩＭＭのそれぞれが最大８個のメモリランクをサポートする能力を備えているものと想定する）。本質的に、この方法では、オープンされるメモリページの数と、システム内のＤＩＭＭの数とが無関係になる。
【０１１９】
[00150]図１９Ｃは、更に別の実施形態による、メモリの論理パーティションとメモリの物理パーティションとの間のマッピングを示している。オプションとして、このマッピングは、図１〜図１９Ｂにおいて実施することができる。当然ながら、このマッピングは任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１２０】
[00151]複数のオペレーティングシステム及びソフトウェアスレッドを共通のハードウェアプラットフォーム上で同時に実行することのできる実施形態においては、バッファ集積回路は、積層体の１つ以上のメモリデバイスのセットを特定のオペレーティングシステム又はソフトウェアスレッドに割り当てることができ、その一方で、メモリデバイスの別のセットを別のオペレーティングシステム又はスレッドに割り当てることができる。図１９Ｃの例においては、第１のオペレーティングシステムには、物理パーティション１９８０に対応する第１の論理アドレス範囲１９６０が割り当てられ、それ以外のすべてのオペレーティングシステムには、物理パーティション１９９０に対応する第２の論理アドレス範囲１９７０が割り当てられるように、ホストシステム（図示していない）が動作することができる。第１以外のオペレーティングシステム又はスレッドから第１のオペレーティングシステム又はスレッドへのコンテキストスイッチ時、ホストシステムは、１つ又は複数のＤＩＭＭ上のバッファに、コンテキストスイッチの特性を通知することができる。この通知は、例えば、ホストシステムが命令又は制御信号をメモリバスの信号線を通じて（すなわち、インバンドシグナリング）、又は個別の信号線を通じて（すなわちサイドバンドシグナリング（ｓｉｄｅ  ｂａｎｄ  ｓｉｇｎａｌｉｎｇ））バッファ集積回路に送ることによって、達成することができる。サイドバンドシグナリングの例として、命令をＳＭＢｕｓを通じてバッファ集積回路に送る。次いで、バッファ集積回路は、第１のオペレーティングシステム又はスレッドに割り当てられているメモリ集積回路１９８０をアクティブ状態にする一方で、（現在実行されていない）それ以外のオペレーティングシステム又はスレッドに割り当てられているそれ以外のすべてのメモリ集積回路１９９０を、低電力モード又はパワーダウンモードにする。このオプションの方法では、メモリ積層体における電力損失が減少するのみならず、ディスクへのアクセスも減少する。例えば、ホストシステムがオペレーティングシステム又はスレッドの実行を一時的に停止するとき、そのオペレーティングシステム又はスレッドに関連付けられているメモリが低電力モードにされるが、メモリの内容は保持される。後の時点においてホストシステムが再びそのオペレーティングシステム又はスレッドに切り換えるとき、関連付けられるメモリがバッファ集積回路によって低電力モードから脱してアクティブ状態にされ、オペレーティングシステム又はスレッドは、関連するデータについてディスクにアクセスする必要なしに、停止した箇所から実行を再開することができる。すなわち、オペレーティングシステム又はスレッドのそれぞれは、他のオペレーティングシステム又はスレッドによってアクセスすることができない自身専用のメインメモリを有する。なお、この実施形態は、シングルランクのバッファ集積回路とマルチランクのバッファ集積回路の両方に適用することができる。
【０１２１】
[00152]ユーザがホストシステムの記憶容量を増やすことを望むとき、通常の方法は、未使用のＤＩＭＭコネクタにメモリモジュールを装着することである。しかしながら、未装着のコネクタが存在しないときには、従来、ユーザは、小さい容量のメモリモジュールを取り外して、より大きい容量の新しいメモリモジュールと交換していた。取り外された小さいモジュールは、別のホストシステムにおいて使用することができるが、実際には一般に破棄される。オプションとして、ユーザは、未装着のＤＩＭＭコネクタが存在しないシステムの記憶容量を、現在使用されているモジュールを破棄する必要なしに増大させることができる。
【０１２２】
[00153]バッファ集積回路を採用する一実施形態においては、コネクタ又はそれ以外の何らかのインターポーザが、ＤＩＭＭ  ＰＣＢの面のうちバッファ集積回路と同じ面に、又はバッファ集積回路とは反対の面において、ＤＩＭＭ上に配置されている。より大きな記憶容量が望まれるとき、ユーザは、追加のメモリ積層体を含んでいるＰＣＢを、コネクタ又はインターポーザによってＤＩＭＭ  ＰＣＢに機械的及び電気的に結合することができる。説明を目的として、一例としてのマルチランクのレジスタードＤＩＭＭは、８ビット幅の９個の積層体を備えており、積層体のそれぞれが複数のＤＲＡＭデバイスとマルチランクバッファとを含んでいる。この例の場合、９個の積層体をＤＩＭＭ  ＰＣＢの一方の面に配置することができ、１つ以上のコネクタ又はインターポーザを、ＤＩＭＭ  ＰＣＢの反対の面に配置することができる。これにより、ＤＲＡＭデバイスの積層体を含んでいる追加のＰＣＢを、ＤＩＭＭ  ＰＣＢ上の１つ以上のコネクタ又は１つ以上のインターポーザを使用してＤＩＭＭ  ＰＣＢに機械的及び電気的に結合することによって、ＤＩＭＭの容量を増大させることができる。この実施形態の場合、ＤＩＭＭ  ＰＣＢ上のマルチランクバッファ集積回路は、追加の積層体の存在を検出し、それら追加の積層体を使用する１つ以上の配置構成に自身を構成設定することにより、追加の積層体を使用することができる。なお、追加のＰＣＢ上の積層体の記憶容量は、ＤＩＭＭ  ＰＣＢ上の積層体の記憶容量と同じである必要はない。更に、ＤＩＭＭ  ＰＣＢ上の積層体に１つの集積回路セレクト信号を接続する場合、追加のＰＣＢ上の積層体に別の集積回路セレクト信号を接続することができる。或いは、ＤＩＭＭ  ＰＣＢ上の積層体と追加のＰＣＢ上の積層体とを、集積回路セレクト信号の同じセットに接続することができる。
【０１２３】
[00154]図２０Ａは、更に別の実施形態による、メモリコントローラとＤＩＭＭとの間の接続構成を示している。オプションとして、このメモリコントローラ及びＤＩＭＭは、図１〜図１９において実施することができる。当然ながら、このメモリコントローラ及びＤＩＭＭは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１２４】
[00155]図２０Ａは、ＤＩＭＭにおけるランクの数を、ホストシステムからの命令に基づいて構成設定するメモリシステムを示している。この実施形態の場合、すべての集積回路セレクト信号線（例えば、ＣＳ０＃〜ＣＳ７＃）が、ＤＩＭＭ２０１０及び２０２０と、メモリコントローラ２０３０との間に接続されている。
【０１２５】
[00156]図２０Ｂは、別の実施形態による、ホストシステムからの命令に基づいてランクの数を構成設定するために、集積回路セレクト信号線をＤＩＭＭ上のバッファに接続する方法を示している。オプションとして、集積回路セレクト信号線をＤＩＭＭ上のバッファに接続するこの方法は、図１〜図２０Ａにおいて実施することができる。当然ながら、集積回路セレクト信号線をＤＩＭＭ上のバッファに接続するこの方法は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１２６】
[00157]図２０Ｂは、ＤＩＭＭにおけるランクの数をホストシステムからの命令に基づいて構成設定するメモリシステムを示している。この実施形態の場合、すべての集積回路セレクト信号線（ＣＳ０＃〜ＣＳ７＃）がＤＩＭＭ２０１０上のバッファ２０４０に接続されている。
【０１２７】
[00158]ビジュアライゼーションプロセッサ（ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ）及びマルチコアプロセッサを使用する場合、複数のオペレーティングシステム及びソフトウェアスレッドを共通のハードウェアプラットフォーム上で同時に実行することが可能である。すなわち、複数のオペレーティングシステム及びスレッドがサーバ内のメモリを共有しなくてはならず、結果としてのコンテキストスイッチに起因して、ハードディスクとメモリとの間での転送が増大することがある。
【０１２８】
[00159]図２１は、更に別の実施形態による、アップグレード能力を有する、コネクタ又はインターポーザを備えたＤＩＭＭ  ＰＣＢを示している。オプションとして、このＤＩＭＭ  ＰＣＢは、図１〜図２０において実施することができる。当然ながら、このＤＩＭＭ  ＰＣＢは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１２９】
[00160]ＤＩＭＭ  ＰＣＢ２１００は、複数のバッファ搭載積層体（例えばバッファ搭載積層体２１３０）を備えている。図示したように、バッファ搭載積層体２１３０は、バッファ集積回路２１４０とＤＲＡＭデバイス２１５０とを含んでいる。アップグレードモジュールＰＣＢ２１１０は、コネクタ又はインターポーザ２１８０及び２１７０を介してＤＩＭＭ  ＰＣＢ２１００に接続されており、ＤＲＡＭの積層体（例えばＤＲＡＭ積層体２１２０）を含んでいる。この例においては、図２１に示したように、アップグレードモジュールＰＣＢ２１１０は、８ビット幅の９個の積層体を含んでおり、積層体のそれぞれがＤＲＡＭ集積回路２１６０のみを含んでいる。ＤＩＭＭ  ＰＣＢ２１００上のマルチランクバッファ集積回路２１４０のそれぞれは、追加の積層体が検出された時点で、自身が電気的にホストシステムとＤＲＡＭ集積回路の２つの積層体との間に位置するように自身を再構成設定する。すなわち、再構成設定の後、バッファ集積回路は、ＤＩＭＭ  ＰＣＢ２１００上の積層体、及びアップグレードモジュールＰＣＢ２１１０上の対応する積層体と、ホストシステムとの間に、電気的に位置している。しかしながら、バッファ集積回路（２１４０）と、ＤＲＡＭ積層体（２１２０）と、ＤＩＭＭ  ＰＣＢ２１００と、アップグレードモジュールＰＣＢ２１１０は、請求項の概念及び範囲から逸脱することなく、同じ結果が達成される様々な方式における別の実施形態として構成設定することができる。例えば、追加のＰＣＢ上の積層体２１２０がバッファ集積回路を含んでいることもできる。従って、この例においては、アップグレードモジュール２１１０が１つ以上のバッファ集積回路を含んでいることができる。
【０１３０】
[00161]バッファ集積回路は、ホストシステムからのアドレスを、いくつかの方法において積層体のＤＲＡＭデバイスにマッピングすることができる。一実施形態においては、仮想（又はエミュレートされた）ＤＲＡＭの１つのバンクが物理バンクのセットにマッピングされるように、アドレスを線形的にマッピングすることができ、この場合、セット内の物理バンクのそれぞれが、相異なる物理ＤＲＡＭデバイスの一部である。説明を目的として、いま、それぞれが４つのメモリバンクを有する８個の５１２ＭＢ  ＤＲＡＭ集積回路（すなわち、物理ＤＲＡＭデバイス）を含んでいる積層体を考える。更に、バッファ集積回路がマルチランクの実施形態であり、ホストシステムには、それぞれが８個のバンクを有する２つの２ＧＢ  ＤＲＡＭデバイス（すなわち、仮想ＤＲＡＭデバイス）として認識されるものと想定する。物理ＤＲＡＭデバイスに識別符号Ｍ０〜Ｍ７を付けるならば、次の表１に示したような線形アドレスマッピングを実施することができる。
【表１】
0005730251.tif 000002
【０１３１】
[00162]図２２は、更に別の実施形態による、マルチランクバッファ集積回路において使用する線形アドレスマッピングの例を示している。オプションとして、この線形アドレスマッピングは、図１〜図２１において実施することができる。当然ながら、この線形アドレスマッピングは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１３２】
[00163]次の表２は、シングルランクバッファ集積回路による線形アドレスマッピングの例を示している。
【表２】
0005730251.tif 000003
【０１３３】
[00164]図２３は、別の実施形態による、シングルランクバッファ集積回路による線形アドレスマッピングの例を示している。オプションとして、この線形アドレスマッピングは、図１〜図２２において実施することができる。当然ながら、この線形アドレスマッピングは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１３４】
[00165]図２３に示した構成設定を使用すると、ＤＲＡＭデバイスの積層体は、８個のメモリバンクを有する１つの４ＧＢ集積回路として認識される。
【０１３５】
[00166]図２４は、更に別の実施形態による、マルチランクバッファ集積回路による「ビットスライス」アドレスマッピングの例を示している。オプションとして、この「ビットスライス」アドレスマッピングは、図１〜図２３において実施することができる。当然ながら、この「ビットスライス」アドレスマッピングは、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１３６】
[00167]別の実施形態においては、ホストシステムからのアドレスの１つ以上のバンク（仮想バンク）が積層体の１つの物理ＤＲＡＭ集積回路にマッピングされる（「バンクスライス（ｂａｎｋ  ｓｌｉｃｅ）」マッピング）ように、ホストシステムからのアドレスをバッファ集積回路によってマッピングすることができる。図２４は、マルチランクバッファ集積回路によるバンクスライスアドレスマッピングの例を示している。更に、次の表３は、バンクスライスアドレスマッピングの例を示している。
【表３】
0005730251.tif 000004
【０１３７】
[00168]この例の積層体は、それぞれが４つのメモリバンクを有する８個の５１２ＭＢ  ＤＲＡＭ集積回路を含んでいる。この例においては、マルチランクバッファ集積回路を想定しており、すなわち、ホストシステムは、それぞれが８個のバンクを有する２つの２ＧＢ  ＤＲＡＭデバイスとして積層体を認識する。
【０１３８】
[00169]バンクスライスアドレスマッピングにより、仮想ＤＲＡＭにおいて、それを構成する物理ＤＲＡＭデバイスに特有のいくつかのタイミング制約を低減又は排除することができる。例えば、物理ＤＲＡＭデバイスには、１つの物理ＤＲＡＭデバイスにアクティブ化操作を発行することのできる頻度を制限するｔＦＡＷ（４バンクアクティブ化ウィンドウ）制約が存在することがある。しかしながら、バンクスライスアドレスマッピングを使用する仮想ＤＲＡＭ回路には、この制約が存在しない。一例として、図２４におけるアドレスマッピングでは、仮想ＤＲＡＭデバイスの２つのバンクが１つの物理ＤＲＡＭデバイスにマッピングされる。従って、ホストシステムがｔＲＣウィンドウ以内に３つ以上の連続するアクティブ化命令を特定の物理ＤＲＡＭデバイスに発行することが、ｔＲＣタイミングパラメータによって防止されるため（ｔＲＣ＞ｔＦＡＷ）、ｔＦＡＷ制約が排除される。同様に、以下に図２５に関連して説明するように、このアドレスマッピングを使用する仮想ＤＲＡＭデバイスでは、それを構成する物理ＤＲＡＭデバイスのｔＲＲＤ制約が排除される。
【０１３９】
[00170]図２５は、更に別の実施形態による、シングルランクバッファ集積回路による「ビットスライス」アドレスマッピングの例を示している。オプションとして、この「ビットスライス」アドレスマッピングは、図１〜図２４において実施することができる。当然ながら、この「ビットスライス」アドレスマッピングは任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１４０】
[00171]次の表４は、シングルランクバッファ集積回路によるバンクスライスマッピングを示している。
【表４】
0005730251.tif 000005
【０１４１】
[00172]この例の積層体は、８個の５１２ＭＢ  ＤＲＡＭデバイスを含んでおり、従って、ホストシステムは、この積層体を、８個のバンクを有する１つの４ＧＢデバイスとして認識する。上に示したアドレスマッピングは、説明を目的としているに過ぎない。請求項の概念及び範囲から逸脱することなく、別のマッピングを実施することができる。
【０１４２】
[00173]更に、バンクスライスアドレスマッピング方式では、バッファ集積回路又はホストシステムは、ＤＩＭＭ上のＤＲＡＭデバイスの電力管理をより細かいレベルで行うことができる。これを説明するため、いま、図２５に示したアドレスマッピングを使用する仮想ＤＲＡＭデバイスを考え、仮想ＤＲＡＭデバイスのバンクのそれぞれが１つの物理ＤＲＡＭデバイスに対応しているものとする。従って、この仮想ＤＲＡＭデバイスのバンク０（すなわち、仮想バンク０）へのアクセスが行われるとき、対応する物理ＤＲＡＭデバイスＭ０をアクティブモードにすることができる。しかしながら、仮想バンク０への未処理アクセスが存在しないとき、バッファ集積回路又はホストシステム（或いはシステム内のその他の任意のエンティティ）によって、ＤＲＡＭデバイスＭ０を低電力（例えばパワーダウン）モードにすることができる。物理ＤＲＡＭデバイスを低電力モードにすることは可能であるが、物理ＤＲＡＭデバイスの特定のバンク（又は一部）を低電力モードにし、同時にＤＲＡＭデバイスの残りのバンク（又は一部）をアクティブモードにしておくことはできない。しかしながら、仮想ＤＲＡＭデバイスは複数の物理ＤＲＡＭデバイスを使用してエミュレートされているため、仮想ＤＲＡＭ回路のバンク又はバンクのセットを低電力モードにし、同時に仮想ＤＲＡＭ回路の別のバンクをアクティブモードにすることができる。例えば、図２５及び図２３から理解することができるように、バンクスライスマッピング（図２５）では、１つの物理ＤＲＡＭデバイスにマッピングされる仮想バンクが、線形マッピング（図２３）の場合よりも少ない。従って、任意の瞬間に物理ＤＲＡＭデバイスにおける（物理）バンクのすべてがプリチャージ状態にある確率は、線形マッピングの場合よりもバンクスライスマッピングの場合の方が高い。従って、バンクスライスマッピングを使用するときの方が、バッファ集積回路又はホストシステム（或いはシステム内のその他の何らかのエンティティ）によって物理ＤＲＡＭデバイスがより頻繁に低電力モードにされる。
【０１４３】
[00174]いくつかの市場分野においては、メインメモリ（通常はＤＲＡＭ）の内容を、定期的に、又は特定のイベントが起きたときに保持することが望ましいことがある。例えば、スーパーコンピュータの市場においては、ホストシステムがメインメモリの内容を定期的にハードドライブに書き込むことが一般的である。すなわち、ホストシステムは、定期的なチェックポイントを作成する。このようにチェックポイントを作成する方法により、システムクラッシュの場合に、システムは最初からではなく最後のチェックポイントからプログラムの実行を再開することができる。別の市場においては、電源障害或いはシステムクラッシュに対して保護するため、１つ以上のアドレス範囲の内容を定期的に不揮発性メモリに格納することが望ましいことがある。本文書に開示したバッファ集積回路においては、１つ以上の不揮発性メモリ集積回路（例えばフラッシュメモリ）を積層体に組み込むことによって、これらの機能のすべてをオプションとして実施することができる。いくつかの実施形態においては、バッファ集積回路は、ＤＲＡＭデバイス集積回路及び不揮発性メモリ集積回路を含んでいる１つ以上の積層体をインターフェースするように設計されている。なお、これらの積層体のそれぞれは、ＤＲＡＭデバイスのみを含んでいる、又は不揮発性メモリ集積回路のみを含んでいる、又はＤＲＡＭと不揮発性メモリ集積回路の両方を含んでいることができる。
【０１４４】
[00175]図２６Ａ及び図２６Ｂは、別の実施形態による、ＤＲＡＭ集積回路及び不揮発性メモリ集積回路を含んでいるバッファ搭載積層体の例を示している。オプションとして、このバッファ搭載積層体は、図１〜図２５において実施することができる。当然ながら、このバッファ搭載積層体は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１４５】
[00176]ＤＩＭＭ  ＰＣＢ２６００は、バッファ搭載積層体（バッファ２６１０及びＤＲＡＭ２６２０）と、フラッシュ２６３０とを含んでいる。図２６Ｂに示した別の実施形態においては、ＤＩＭＭ  ＰＣＢ２６４０は、バッファ搭載積層体（バッファ２６５０、ＤＲＡＭ２６６０、及びフラッシュ２６７０）を含んでいる。オプションのバッファ非搭載積層体は、少なくとも１つの不揮発性メモリデバイス（例えばフラッシュ２６９０）又はＤＲＡＭデバイス２６８０を含んでいる。バッファ集積回路に接続されているすべての積層体をバッファ集積回路と同じＰＣＢ上に載せることができ、或いは、積層体のいくつかを同じＰＣＢ上に載せ、それ以外の積層体を、バッファ集積回路を含んでいるＰＣＢにコネクタ又はインターポーザによって電気的且つ機械的に結合されている別のＰＣＢ上に載せることができる。
【０１４６】
[00177]いくつかの実施形態においては、バッファ集積回路は、自身がインターフェースする積層体のＤＲＡＭデバイスの内容の一部又はすべてを、自身がインターフェースする積層体の不揮発性メモリ集積回路にコピーする。このイベントは、例えば、ホストシステムからバッファ集積回路への命令又は信号によって、又はバッファ集積回路への外部信号によってトリガーする、若しくは、電源障害などのイベント又は致命的（ｃａｔａｓｔｒｏｐｈｉｃ）条件が（バッファ集積回路によって）検出されたときにトリガーすることができる。一例として、いま、バッファ集積回路が、４ＧＢのＤＲＡＭメモリと４ＧＢの不揮発性メモリとを含んでいる複数の積層体をインターフェースしているものと想定する。ホストシステムは、ＤＲＡＭメモリの内容を不揮発性メモリにコピーするための命令を、定期的にバッファ集積回路に発行することができる。すなわち、ホストシステムは、ＤＲＡＭメモリの内容のチェックポイントを定期的に作成する。システムクラッシュの場合、再起動時に、不揮発性メモリの内容をＤＲＡＭメモリにコピーして戻すことによって、ＤＲＡＭの内容を復元することができる。これにより、メモリのチェックポイントを定期的に作成する能力がホストシステムに提供される。
【０１４７】
[00178]別の実施形態においては、バッファ集積回路は、電源レール（すなわち、電圧レール又は電圧プレーン）を監視して、致命的なイベント（例えば電源障害）を検出することができる。バッファ集積回路は、致命的なイベントを検出した時点で、ＤＲＡＭメモリの内容の一部又はすべてを不揮発性メモリにコピーすることができる。更に、ホストシステムは、バッファ集積回路がＤＲＡＭメモリの内容の一部又はすべてを不揮発性メモリにコピーすることができるように、電源障害の後、少なくともいくらかの時間期間にわたり、無停電電源をバッファ集積回路及びメモリ積層体に提供することができる。別の実施形態においては、ホストシステムの電源障害の場合におけるバッファ集積回路及びメモリ積層体のための内蔵バックアップ電源を、メモリモジュールが備えていることができる。例えば、メモリモジュールは、ホストシステムの電源障害の場合にバッファ集積回路及びメモリ積層体にバックアップ電力を提供するため、バッテリ又は大型キャパシタと、絶縁スイッチ（ｉｓｏｌａｔｉｏｎ  ｓｗｉｔｃｈ）とをモジュール自身に備えていることができる。
【０１４８】
[00179]複数のバッファ（それぞれが、ＤＲＡＭ集積回路及び不揮発性メモリ集積回路を含んでいる１つ以上の積層体をインターフェースする）を備えている、上述したようなメモリモジュールを、インスタントオン（ｉｎｓｔａｎｔ−ｏｎ）機能を提供するように構成設定することもできる。このことは、オペレーティングシステムと、それ以外の重要なソフトウェアと、頻繁に使用されるデータとを不揮発性メモリに格納することによって、達成することができる。
【０１４９】
[00180]システムクラッシュの場合、メインメモリの内容を維持するうえで必要であるすべての必要な信号を、ホストシステムのメモリコントローラが供給できないことがある。例えば、メモリコントローラは、定期的なリフレッシュ命令をメインメモリに送ることができず、これに起因してメモリ内のデータが消失することがある。システムクラッシュの場合におけるそのようなデータ消失が防止されるように、バッファ集積回路を設計することができる。一実施形態においては、バッファ集積回路は、ホストシステムのメモリコントローラからの信号の状態を監視して、システムクラッシュを検出することができる。一例として、所定の時間長又はプログラム可能な時間長にわたりメモリバス上にアクティビティが存在していない場合、或いは、バッファ集積回路がメモリコントローラから不正又は無効な命令を受け取った場合に、システムクラッシュを検出するように、バッファ集積回路を設計することができる。或いは、システムエラー、システム停止、又はシステムクラッシュが起きたときにアサートされる１つ以上の信号を、バッファ集積回路が監視することができる。例えば、Ｏｐｔｅｒｏｎプロセッサをベースとするシステムにおいて、バッファ集積回路は、ＨＴ＿ＳｙｎｃＦｌｏｏｄ信号を監視してシステムエラーを検出することができる。バッファ集積回路は、このイベントを検出すると、ホストシステムのメモリバスを積層体のメモリ集積回路から切り離し、例えばホストシステムが動作可能となるまでメモリ集積回路の内容を保持するうえで必要な信号を、内部的に生成することができる。従って、例えば、システムクラッシュを検出した時点で、バッファ集積回路は、ホストシステムのメモリコントローラからの信号を無視し、代わりに、積層体のＤＲＡＭデバイスに格納されているデータを維持するため、信号（例えば、ＣＫＥ、ＣＳ＃、ＲＡＳ＃、ＣＡＳ＃、ＷＥ＃）の有効な組合せを生成することができ、更に、ＤＲＡＭ集積回路に対する定期的なリフレッシュ信号を生成することができる。なお、バッファ集積回路がシステムクラッシュを検出する方法は数多くあり、これらの変形形態のすべては請求項の範囲内に含まれる。
【０１５０】
[00181]メモリ集積回路の１つ以上の積層体とホストシステムとの間にバッファ集積回路を配置することによって、バッファ集積回路が、ホストシステムからメモリ集積回路への信号と、メモリ集積回路からホストシステムへの信号とにおけるスキュー又はタイミング変動を補正することができる。例えば、メモリバスの動作の高速動作時、ホストシステムのメモリコントローラとメモリ集積回路との間の信号のトレース長が一致することがしばしばある。トレース長の一致は、特に、形状因子が小さいシステムにおいて問題である。更に、ＤＲＡＭのプロセスは、高速Ｉ／Ｏ回路の設計にそのままでは対応しない。結果として、ＤＲＡＭ集積回路のＩ／Ｏ信号を互いに揃えることと、関連付けられるデータストローブ信号及びクロック信号に揃えることとがしばしば困難である。
【０１５１】
[00182]バッファ集積回路の一実施形態においては、Ｉ／Ｏ信号のタイミングを調整する回路を組み込むことができる。言い換えれば、バッファ集積回路は、ピンごとのタイミングキャリブレーション（ｐｅｒ−ｐｉｎ  ｔｉｍｉｎｇ  ｃａｌｉｂｒａｔｉｏｎ）を行って、Ｉ／Ｏ信号のスキュー又はタイミング変動を補正する能力を備えている。例えば、いま、バッファ集積回路とメモリコントローラとの間のデータ信号ＤＱ［０］が、別のデータ信号ＤＱ［７：１］よりもトレース長が短い、又は容量性負荷が小さいとする。結果として、すべての信号がバッファ集積回路（メモリへの書込み時）又はメモリコントローラ（メモリからの読取り時）に同時には到着しないため、データ信号のスキューが生じる。そのようなスキューが補正されないと、ホストシステムのメモリサブシステムの最大の動作周波数が制限される傾向にある。バッファ集積回路のＩ／Ｏ回路にピンごとのタイミングキャリブレーション回路及び補正回路を組み込むことによって、バッファ集積回路は、（メモリからの読取り時に）ＤＱ［０］信号を他のデータ信号よりも後から駆動して、ＤＱ［０］信号の短いトレース長を補正することができる。同様に、ピンごとのタイミングキャリブレーション回路及び補正回路によって、バッファ集積回路は、メモリへの書込み動作時にデータ信号ＤＱ［７：０］のすべてが揃えられてサンプリングされるように、ＤＱ［０］データ信号を遅らせることができる。更に、ピンごとのタイミングキャリブレーション回路及び補正回路によって、バッファ集積回路は、ＤＲＡＭデバイスのＩ／Ｏピンにおけるタイミング変動を補正することができる。バッファ集積回路は、ホストシステムのメモリコントローラに接続されている信号のピンごとのタイミングキャリブレーションと、積層体のメモリデバイスに接続されている信号のピンごとのタイミングキャリブレーションとを実行するため、特定のパターン又はシーケンスを使用することができる。
【０１５２】
[00183]ピンごとのタイミングキャリブレーション回路及び補正回路をバッファ集積回路に組み込むことによって、更に、バッファ集積回路は、低速の複数のＤＲＡＭデバイスをひとまとまりにして（ｇａｎｇ）、より高速のＤＲＡＭ集積回路をホストシステムに対してエミュレートすることができる。すなわち、バッファ集積回路にピンごとのタイミングキャリブレーション回路及び補正回路を組み込むことにより、バッファ集積回路が、第１のクロック速度において動作する複数のＤＲＡＭデバイスをひとまとまりにして、第２のクロック速度において動作する１つ以上のＤＲＡＭ集積回路をホストシステムに対してエミュレートすることも可能になる（第１のクロック速度は第２のクロック速度よりも遅い）。
【０１５３】
[00184]例えば、バッファ集積回路は、８ビット幅の２つのＤＤＲ２  ＳＤＲＡＭデバイスを、５３３ＭＨｚのデータレートにおいて並列に動作させることにより、１０６６ＭＨｚのデータレートにおいて動作する８ビット幅の１つのＤＤＲ２  ＳＤＲＡＭ集積回路としてホストシステムに認識させることができる。この例においては、２つのＤＲＡＭデバイスはＤＤＲ２デバイスであるため、これらのＤＲＡＭデバイスは、メモリからの読取り時、又はメモリへの書込み時にデータピンのそれぞれにおいて４つのデータビットを送る、又は受け取るように設計されている（バースト長が４である場合）。従って、並列に動作する２つのＤＲＡＭデバイスは、この例においては、メモリからの１回の読取り、又はメモリへの１回の書込みにおいて、データピンあたり６４個のビットを送る、又は受け取ることができる。ホストシステムはバッファの後ろに１つのＤＤＲ２集積回路を認識しているため、メモリからの１回の読取り、又はメモリへの１回の書込みにおいて、ホストシステムはピンあたり３２個のデータビットを受け取る、又は送るのみである。様々なデータ幅に対応する目的で、バッファ集積回路はＤＭ信号（データマスク）を利用することができる。いま、ホストシステムが、ＤＡ［７：０］、ＤＢ［７：０］、ＤＣ［７：０］、及びＤＤ［７：０］を、１０６６ＭＨｚのデータレートにおいてバッファ集積回路に送るものとする。バッファ集積回路は、ＤＡ［７：０］、ＤＣ［７：０］、ＸＸ、及びＸＸを第１のＤＤＲ２  ＳＤＲＡＭ集積回路に送り、ＤＢ［７：０］、ＤＤ［７：０］、ＸＸ、及びＸＸを第２のＤＤＲ２  ＳＤＲＡＭ集積回路に送ることができ、この場合、ＸＸは、ＤＤＲ２  ＳＤＲＡＭ集積回路へのＤＭ入力の（バッファ集積回路による）アサートによってマスクされているデータを表している。
【０１５４】
[00185]別の実施形態においては、バッファ集積回路は、２つの低速ＤＲＡＭデバイスを、よりビット幅が広く、且つ高速の１つのＤＲＡＭとして動作させる。説明を目的として、バッファ集積回路は、５３３ＭＨｚのデータレートにおいて動作する８ビット幅の２つのＤＤＲ２  ＳＤＲＡＭデバイスを、１０６６ＭＨｚのデータレートにおいて動作する１６ビット幅の１つのＤＤＲ２  ＳＤＲＡＭ集積回路としてホストシステムに認識されるように、動作させることができる。この実施形態においては、バッファ集積回路は、ＤＭ信号を使用しない。別の実施形態においては、２つのＤＤＲ２  ＳＤＲＡＭデバイス（この例においては、８ビット幅、データレート５３３ＭＨｚの集積回路）を、１つのＤＤＲ３  ＳＤＲＡＭ集積回路（この例においては、８ビット幅、データレート１０６６ＭＨｚのＤＤＲ３デバイス）としてホストシステムに認識されるように、並列に動作させるように、バッファ集積回路を設計することができる。別の実施形態においては、バッファ集積回路は、ＤＲＡＭ集積回路とのインタフェースよりもビット幅が狭く且つ高速である、ホストシステムとのインタフェースを提供することができる。例えば、バッファ集積回路は、１つ以上のＤＲＡＭデバイスとの、１６ビット幅、データレート５３３ＭＨｚのインタフェースを備えていることができ、一方で、ホストシステムとの、８ビット幅、データレート１０６６ＭＨｚのインタフェースを備えていることができる。
【０１５５】
[00186]ピンごとのタイミングキャリブレーション能力及び補正能力に加えて、スルーレート（すなわち立上り時間及び立下り時間）、プルアップの能力又は強さ、及びプルダウンの能力又は強さを制御する回路を、バッファ集積回路のＩ／Ｏピンのそれぞれに追加する、又はオプションとして、バッファ集積回路の一連のＩ／Ｏピンに共通回路として追加することができる。バッファ集積回路の出力ドライバ及び入力レシーバは、バッファ集積回路とホストシステムとの間、及びバッファ集積回路と積層体のメモリ集積回路との間を接続しているトレースにおける不均一性を補正することと、ホストシステム及び積層体のメモリ集積回路のＩ／Ｏピンの特性を補正することとを目的として、プリエンファシスを行う能力を備えていることができる。
【０１５６】
[00187]複数のメモリ集積回路（揮発性及び不揮発性の両方）を積層化することは、熱特性及び電力供給特性に影響する。積層体におけるすべてのメモリ集積回路が長時間にわたりアクティブモードにあることは極めて起こり得るため、これらのすべての集積回路によって消費される電力に起因して、メモリ集積回路の周囲温度、ケース温度（ｃａｓｅ  ｔｅｍｐｅｒａｔｕｒｅ）、及び接合部温度が上昇することがある。一般に、高い接合部温度は、ＩＣ、特にＤＲＡＭの動作に対してマイナスに影響する。更に、複数のＤＲＡＭデバイスが、電圧レール及びグランドレール（すなわち、電力トレース及びグランドトレース、又は電力プレーン及びグランドプレーン）が共有されるように上下に重ねて積層化されているときには、これらの集積回路を同時に動作させると、それに起因して電圧レール及びグランドレールに大きなスパイクが発生することがある。例えば、積層体のＤＲＡＭデバイスのすべてが同時にリフレッシュされると、電圧レールから大きな電流が流れ、これに起因して、電圧レール及びグランドレールに大きな変動（又はスパイク）が生じることがある。ノイズのある電圧レール及びグランドレールは、特に高速時にＤＲＡＭデバイスの動作に影響する。これらの現象の両方に対処する目的で、以下では、発明に相当する手法をいくつか開示する。
【０１５７】
[00188]一実施形態においては、積層体の１つ以上の層がメモリ集積回路ではなくデカップリングキャパシタを備えている積層化手法を使用する。例えば、積層体の５層ごとに電源デカップリング層とする（他の４層はメモリ集積回路を含んでいる）ことができる。メモリ集積回路を含んでいる層は、メモリ集積回路のピンアウトに存在しているよりも多くの電力ボール及びグランドボール（又は電力ボール及びグランドボール）を備えているように設計する。これらの余分な電力ボール及びグランドボールは、積層体の層の縁部のすべてに沿って配置されていることが好ましい。
【０１５８】
[00189]図２７の（Ａ）〜（Ｃ）は、更に別の実施形態による、電源デカップリング層を備えているバッファ搭載積層体を示している。オプションとして、このバッファ搭載積層体は、図１〜図２６において実施することができる。当然ながら、このバッファ搭載積層体は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１５９】
[00190]図２７の（Ａ）に示したように、ＤＩＭＭ  ＰＣＢ２７００は、デカップリング層を含んでいる、ＤＲＡＭのバッファ搭載積層体を含んでいる。具体的には、この実施形態の場合、バッファ搭載積層体は、バッファ２７１０と、ＤＲＡＭデバイスの第１のセット２７２０と、第１のデカップリング層２７３０と、ＤＲＡＭデバイスの第２のセット２７４０と、オプションの第２のデカップリング層２７５０とを含んでいる。更に、この積層体は、オプションのヒートシンク又はヒートスプレッダ２７５５を備えている。
【０１６０】
[00191]図２７の（Ｂ）は、ＤＲＡＭダイの一実施形態の平面図及び側面図を示している。ＤＲＡＭダイ２７６０は、信号／電力／ＧＮＤボール２７６２と、１つ以上の余分な電力／ＧＮＤボール２７６４とを備えているパッケージ（積層体の層）２７６６を含んでいる。余分な電力／ＧＮＤボール２７６４は熱伝導率を高める。
【０１６１】
[00192]図２７の（Ｃ）は、デカップリング層の一実施形態の平面図及び側面図を示している。デカップリング層２７７５は、１つ以上のデカップリングキャパシタ２７７０と、信号／電力／ＧＮＤボール２７８５と、１つ以上の余分な電力／ＧＮＤボール２７８０とを含んでいる。余分な電力／ＧＮＤボール２７８０は熱伝導率を高める。
【０１６２】
[00193]図２７の（Ｂ）及び（Ｃ）に示した余分な電力ボール及びＧＮＤボールは、メモリ集積回路と、積層体が含まれているＰＣＢとの間、及び、メモリ集積回路とオプションのヒートシンク又はヒートスプレッダとの間とに、熱伝導経路を形成している。電源デカップリング層におけるデカップリングキャパシタは、積層体のメモリデバイスまでの変動の少ない電圧レール及びグランドレールを提供する目的で、関連する電力ピン及びグランドピンに接続されている。上述した積層化手法は、積層体のメモリ集積回路までの変動の少ない電力レール及び変動の少ないグランドレールを提供し、更にメモリ集積回路から熱を逃がすための一方法である。
【０１６３】
[00194]別の実施形態においては、電力レール及びグランドレールにおけるノイズは、積層体のＤＲＡＭ集積回路が動作を同時に実行することを防止することによって減少させることができる。前述したように、積層体のＤＲＡＭ集積回路のすべてがリフレッシュ動作を同時に実行する場合、電力レールから大量の電流が流れる。電力レールから流れるピーク電流が低減するように、積層体のＤＲＡＭ集積回路へのリフレッシュ命令を時間的にずらせて発行する、又は分散させるように、バッファ集積回路を設計することができる。例えば、いま、積層体が４つの１ＧＢ  ＤＤＲ２  ＳＤＲＡＭ集積回路を備えており、これらが１つの４ＧＢ  ＤＤＲ２  ＳＤＲＡＭ集積回路としてホストシステムに認識されるようにバッファ集積回路によってエミュレートされるものとする。ＪＥＤＥＣ仕様では、４ＧＢ  ＤＲＡＭ集積回路のリフレッシュサイクルタイム（すなわちｔＲＦＣ）は４００ｎｓと規定されているが、１ＧＢ  ＤＲＡＭ集積回路のｔＲＦＣの仕様値は１１０ｎｓである。従って、ホストシステムは、エミュレートされた４ＧＢ  ＤＲＡＭ集積回路にリフレッシュ命令を発行するとき、リフレッシュが４００ｎｓ以内に行われるものと予測する。しかしながら、積層体には４つの１ＧＢ  ＤＲＡＭ集積回路が含まれているため、バッファ集積回路は、積層体の１ＧＢ  ＤＲＡＭ集積回路のそれぞれに、間隔を置いて個別のリフレッシュ命令を発行することができる。一例として、バッファ集積回路は、ホストシステムからのリフレッシュ命令を受け取った時点で、４つの１ＧＢ  ＤＲＡＭ集積回路のうちの２つにリフレッシュ命令を発行し、２００ｎｓの後、残りの２つの１ＧＢ  ＤＲＡＭ集積回路に別のリフレッシュ命令を発行することができる。１ＧＢ  ＤＲＡＭ集積回路は、リフレッシュ動作を実行するのに１１０ｎｓを要するため、積層体の４つの１ＧＢ  ＤＲＡＭ集積回路のすべては、（４ＧＢ  ＤＲＡＭ集積回路の）リフレッシュサイクルタイムである４００ｎｓが経過する前にリフレッシュ動作を実行する。この時差式のリフレッシュ動作によって、電力レールから流れうる最大電流が制限される。なお、同じ恩恵を提供する別の実施形態も可能であり、そのような実施形態も請求項の範囲に網羅される。
【０１６４】
[00195]一実施形態においては、メモリ集積回路の周囲温度、ケース温度、又は接合部温度を測定するデバイス（例えばサーマルダイオード）を積層体に埋め込むことができる。オプションとして、特定の積層体に関連付けられるバッファ集積回路は、メモリ集積回路の温度を監視することができる。温度が限界値を超えたとき、バッファ集積回路は、メモリ集積回路の過熱及び起こり得る損傷を防止するための適切な措置を講じることができる。オプションとして、測定された温度をホストシステムから利用できるようにすることができる。
【０１６５】
[00196]オプションの機能が提供されるように、その他の機能回路をバッファ集積回路に追加することができる。例えば、パワーアップ時、又はホストシステムがそのように命令したときに、メモリエラー又はメモリ障害のチェックを実行するように、バッファ集積回路を設計することができる。メモリのチェック時、バッファ集積回路は、積層体のメモリ集積回路に１つ以上のパターンを書き込み、内容を読み取り、読み取ったデータと書き込んだデータとを比較して、縮退故障又はその他のメモリ障害をチェックすることができる。
【０１６６】
[00197]図２８は、一実施形態による、代表的なハードウェア環境２８００を示している。オプションとして、このハードウェア環境２８００は、図１〜図２７において実施することができる。当然ながら、このハードウェア環境２８００は、任意の望ましい環境において実施することができる。更には、上述した定義は、以下の説明にも同様に適用される。
【０１６７】
[00198]例示的な一実施形態においては、ハードウェア環境２８００は、コンピュータシステムを含んでいることができる。図示したように、このハードウェア環境２８００は、通信バス２８０２に接続されている少なくとも１つの中央プロセッサ２８０１を含んでいる。更に、このハードウェア環境２８００はメインメモリ２８０４を含んでいる。メインメモリ２８０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）若しくはその他の望ましいタイプのメモリ、又はその両方を含んでいることができる。更には、様々な実施形態において、メインメモリ２８０４は、メモリ回路、インタフェース回路などを含んでいることができる。
【０１６８】
[00199]更に、ハードウェア環境２８００は、グラフィックスプロセッサ２８０６とディスプレイ１５０８とを含んでいる。更に、ハードウェア環境２８００は二次記憶装置２８１０を含んでいることができる。二次記憶装置２８１０は、例えば、ハードディスクドライブ若しくはリムーバブルストレージドライブ、又はその両方を含んでおり、リムーバブルストレージドライブは、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどである。リムーバブルストレージドライブは、リムーバブルストレージユニットからの読取り、若しくはリムーバブルストレージユニットへの書込み、又はその両方を、周知の方式において行う。
【０１６９】
[00200]コンピュータプログラム、又はコンピュータ制御ロジックアルゴリズムを、メインメモリ２８０４若しくは二次記憶装置２８１０、又はその両方に格納することができる。そのようなコンピュータプログラムが実行されることにより、コンピュータシステム２８００が様々な機能を実行することができる。なお、メモリ２８０４、記憶装置２８１０、又は任意のその他の記憶装置は、コンピュータ可読媒体として使用可能な例である。
【０１７０】
[00201]ここまで、様々な実施形態について説明したが、これらの実施形態は、本発明を制限するものではなく一例として提示してあるに過ぎないことを理解されたい。従って、好ましい実施形態の範囲は、上述した例示的な実施形態のいずれによっても制限されることはなく、請求項及びそれらの等価形態によってのみ定義されるものとする。
【図１】
0005730251.tif 000006
【図２】
0005730251.tif 000007
【図３】
0005730251.tif 000008
【図４】
0005730251.tif 000009
【図５】
0005730251.tif 000010
【図６】
0005730251.tif 000011
【図７】
0005730251.tif 000012
【図８】
0005730251.tif 000013
【図９】
0005730251.tif 000014
【図１０】
0005730251.tif 000015
【図１１】
0005730251.tif 000016
【図１２】
0005730251.tif 000017
【図１３】
0005730251.tif 000018
【図１４】
0005730251.tif 000019
【図１５】
0005730251.tif 000020
【図１６Ａ】
0005730251.tif 000021
【図１６Ｂ】
0005730251.tif 000022
【図１７Ａ】
0005730251.tif 000023
【図１７Ｂ】
0005730251.tif 000024
【図１８Ａ】
0005730251.tif 000025
【図１８Ｂ】
0005730251.tif 000026
【図１９Ａ】
0005730251.tif 000027
【図１９Ｂ】
0005730251.tif 000028
【図１９Ｃ】
0005730251.tif 000029
【図２０Ａ】
0005730251.tif 000030
【図２０Ｂ】
0005730251.tif 000031
【図２１】
0005730251.tif 000032
【図２２】
0005730251.tif 000033
【図２３】
0005730251.tif 000034
【図２４】
0005730251.tif 000035
【図２５】
0005730251.tif 000036
【図２６Ａ】
0005730251.tif 000037
【図２６Ｂ】
0005730251.tif 000038
【図２７】
0005730251.tif 000039
【図２８】
0005730251.tif 000040