(57)【要約】【課題】  バンク衝突を防止できる高帯域幅メモリーシステムを提供する。【解決手段】  高帯域幅メモリー（ＨＢＭ＋）システムにおいて、メモリーコマンドを調整する方法は、ホストメモリーコントローラーコマンドをホストメモリーコントローラーからメモリーへ伝送するステップ、調整メモリーコントローラーから前記ホストメモリーコントローラーコマンドを受信するステップ、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーから前記メモリーへ伝達するステップ及び前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドに基づいて調整メモリコントローラーコマンドをスケジューリングするステップを包含する。【選択図】図２
2019029004.tif 000002
【特許請求の範囲】
【請求項１】
高帯域幅メモリー（ＨＢＭ＋）システムにおいて、メモリーコマンドを調整する方法であって、
ホストメモリーコントローラーコマンドをホストメモリーコントローラーからメモリーへ伝送する場合、
調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドを受信するステップと、
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達するステップと、
前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドに基づいて調整メモリコントローラーコマンドをスケジューリングするステップと、を包含する、ことを特徴とする方法。
【請求項２】
前記ホストメモリーコントローラーコマンドに基づいて、前記調整メモリーコントローラーコマンドをスケジューリングするステップは、
前記ホストメモリーコントローラーコマンドを調整メモリーコントローラーコマンドキューに有る前記調整メモリーコントローラーコマンドと比較するステップと、
前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジューリングを調整するステップと、を包含する、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーコマンドと比較するステップは、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を決定するステップを包含し、
前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが、前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたと示されるまで、追加メモリーコマンドが前記ホストメモリーコントローラーから前記共通バンクへ伝送されることを防止するステップをさらに包含する、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するステップをさらに包含し、
前記設定合意は同一のアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが、前記メモリー内の同一の位置を示す前記ホストメモリコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記ホストメモリコントローラーコマンドとして前記ホストメモリコントローラーからＰＩＭ（Ｐｒｏｃｅｓｓ−Ｉｎ−Ｍｅｍｏｒｙ）コマンドを伝送するステップと、
前記ホストメモリコントローラーが前記調整メモリコントローラー及び前記ホストメモリコントローラー間のデータバスをモニターするステップと、
前記モニターする間に、前記ＰＩＭコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのＰＩＭ完了応答を感知するステップと、をさらに包含する、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記調整メモリーコントローラーが前記ＰＩＭコマンドを処理するための推定残余時間を判断するステップを包含し、
ＰＩＭ完了応答で前記ＰＩＭコマンドが処理されなかった場合、
前記ＰＩＭ完了応答で前記推定残余時間を示すステップと、
前記ＰＩＭ完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するステップと、をさらに包含する、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記推定残余時間を判断するステップは、
前記調整メモリーコントローラーの調整メモリーコントローラーコマンドのキューをスキャンするステップと、
前記調整メモリーコントローラーコマンドのキューにおいて処理されていない未処理メモリーコマンドを識別するステップと、
前記未処理メモリーコマンドのそれぞれに対する推定時間を判別するステップと、
前記推定残余時間を判別するため、前記推定時間を合算するステップと、を包含する、ことを特徴とする請求項６に記載の方法。
【請求項８】
前記ＰＩＭコマンドと時間終了値を連関させるステップと、
前記時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されない場合、前記ホストメモリーコントローラーからのメモリー要請の伝送を防止するステップと、をさらに包含することを特徴とする、請求項６に記載の方法。
【請求項９】
前記ホストメモリーコントローラーが、前記ＰＩＭコマンドを処理するための推定残余時間を示す前記ＰＩＭ完了応答を要請するポーリング（ｐｏｌｌｉｎｇ）コマンドを伝送することで、前記調整メモリーコントローラーをポーリングするステップをさらに包含し、
前記ポーリングコマンドは、前記調整メモリーコントローラーが前記ＰＩＭ完了応答を通常伝送するより、もっと速く前記調整メモリーコントローラーが前記ＰＩＭ完了応答を伝送するように惹起させる、ことを特徴とする請求項５に記載の方法。
【請求項１０】
前記ホストメモリーコントローラーが前記ＰＩＭコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定するステップを包含し、
時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されないと判断する場合、
前記ホストメモリーコントローラーが前記ＰＩＭコマンドの優先順位を上げるように前記優先順位フィールドを変更するステップと、
前記調整メモリーコントローラーが調整メモリーコントローラーコマンドのキューから前記ＰＩＭコマンドの優先順位を上げるステップと、
他のメモリーコマンドを処理する前に、前記ＰＩＭコマンドを処理するステップと、を包含する、ことを特徴とする請求項９に記載の方法。
【請求項１１】
調整メモリーコントローラーと、
ホストメモリーコントローラーと、
メモリーと、
命令語を実行するように構成されるプロセッサと、を包含し、
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
ホストメモリーコントローラーコマンドを前記ホストメモリーコントローラーから前記メモリーへ伝送する場合、
前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドを受信し、
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達し、
前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーにより調整メモリーコントローラーコマンドをスケジュールするように惹起する、ことを特徴とする高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１２】
前記プロセッサは、前記ホストメモリーコントローラーコマンドと調整メモリーコントローラーコマンドのキューに存在する前記調整メモリーコントローラーコマンドとを比較し、前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジュールを調整することにより、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーコマンドをスケジュールするように構成される、ことを特徴とする請求項１１に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１３】
前記プロセッサは、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を判断して、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーと比較するように構成され、
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたと示されるまで、前記プロセッサが追加メモリーコマンドの前記ホストメモリーコントローラーから前記共通バンクへの伝送を防止するように、さらに惹起する、ことを特徴とする請求項１２に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１４】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するようにさらに惹起し、
前記設定合意は同一のアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが前記メモリー内の同一の位置を示す前記ホストメモリーコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する、ことを特徴とする請求項１１に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１５】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記ホストメモリーコントローラーコマンドとして前記ホストメモリーコントローラーからＰＩＭ（Ｐｒｏｃｅｓｓ−Ｉｎ−Ｍｅｍｏｒｙ）コマンドを伝送し、
前記ホストメモリーコントローラーが前記調整メモリーコントローラー及び前記ホストメモリーコントローラー間のデータバスをモニターし、
前記モニターする間、前記ＰＩＭコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのＰＩＭ完了応答を感知するように、さらに惹起する、ことを特徴とする請求項１１に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１６】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記調整メモリーコントローラーに前記ＰＩＭコマンドを処理するための推定残余時間を判断し、
前記ＰＩＭ完了応答で前記ＰＩＭコマンドが処理されなかったことを示す場合、
前記ＰＩＭ完了応答で前記推定残余時間を示し、
前記ＰＩＭ完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するように、さらに惹起する、ことを特徴とする請求項１５に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１７】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記ＰＩＭコマンドと時間終了値を連関させ、
前記時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されなかったことを判断した場合、
前記ホストメモリーコントローラーからのメモリー要請を伝送することを防止するように、さらに惹起する、ことを特徴とする請求項１６に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１８】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが前記ホストメモリーコントローラーを用いて、前記ホストメモリーコントローラーが前記ＰＩＭコマンドを処理するための推定残余時間を示す前記ＰＩＭ完了応答を要請するポーリング（ｐｏｌｌｉｎｇ）コマンドを伝送して、前記調整メモリーコントローラーをポーリングするようにさらに惹起し、
前記ポーリングコマンドは前記調整メモリーコントローラーが前記ＰＩＭ完了応答の通常伝送より、もっと速く前記調整メモリーコントローラーが前記ＰＩＭ完了応答を伝送するように惹起させる、ことを特徴とする請求項１５に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項１９】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが、
前記ホストメモリーコントローラーに前記ＰＩＭコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定し、
時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されないと判断した場合、
前記ホストメモリーコントローラーに前記ＰＩＭコマンドの優先順位を上げるように前記優先順位フィールドを変更し、
前記調整メモリーコントローラーに調整メモリーコントローラーコマンドキューから前記ＰＩＭコマンドの優先順位を上げ、
他のメモリーコマンドを処理する前に、前記ＰＩＭコマンドを処理するように、さらに惹起する、ことを特徴とする請求項１８に記載の高帯域幅メモリー（ＨＢＭ＋）システム。
【請求項２０】
ＨＢＭと、
ホストメモリーコントローラーと、を包含し、
前記ＨＢＭは、
ＤＲＡＭを含むＤＲＡＭダイと、
プロセッサ、比較器、スケジューラ（ｓｃｈｅｄｕｌｅｒ）及びコマンドキューを含む調整メモリーコントローラーを含むロジックダイと、を包含し、
前記ホストメモリーコントローラーは前記ＨＢＭから分離されてメモリーコマンドを前記ＤＲＡＭダイ上の前記ＤＲＡＭへ伝送するように構成され、
前記調整メモリーコントローラーは前記メモリーコマンドを受信し、前記メモリーコマンドを前記ＤＲＡＭダイ上の前記ＤＲＡＭへ伝達するように構成され、
前記比較器は前記調整メモリーコントローラーからの他のメモリーコマンドを前記ホストメモリーコントローラーからの前記メモリーコマンドと比較するように構成され、
前記スケジューラは前記比較器による比較によって前記コマンドキューの前記メモリーコマンドをスケジュールするように構成された、ことを特徴とする高帯域幅メモリー（ＨＢＭ＋）システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリー帯域幅の管理に係り、より詳しくは、ロジックダイ（ｌｏｇｉｃ  ｄｉｅ）上のプロセッサ及びメモリーコントローラーを含む高帯域幅メモリーシステム（ＨＢＭ：  Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ）でのプロセシング方法に関する。
【背景技術】
【０００２】
図１は高帯域幅メモリー（ＨＢＭ＋）システムのブロック図である。
【０００３】
図１を参照すれば、従来のＨＢＭシステムは一般的に１つのマスター（ｍａｓｔｅｒ）を使用して、マスターは一般的に対応するメモリーをコントロールするため使用されるオフ（ｏｆｆ）−メモリーホストコントローラーである。
【０００４】
しかし、ＨＢＭ＋システム１００において、１つのスレーブ（ｓｌａｖｅ）（例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）ダイ１１０上の動的ランダムアクセスメモリー（ＤＲＡＭ）のような揮発生メモリーであるメインメモリー）はマスターとして２つのメモリーコントローラー１２０を有する。２つのマスターはオフ−ＨＢＭメモリーコントローラー及びＨＢＭ１６０のＨＢＭロジックダイ１４０に位置するオン（ｏｎ）−ＨＢＭメモリーコントローラーである。ＨＢＭロジックダイ１４０はＨＢＭ１６０である３Ｄ−スタック（ｓｔａｃｋ）メモリーの最下位レイヤー（ｌａｙｅｒ）に対応できる。一方、ＤＲＡＭダイ１１０はＨＢＭ１６０の上位レイヤーの中の１つに対応できる。ＨＢＭロジックダイ１４０は「ニア（ｎｅａｒ）」メモリーコントローラー（ＮＭＣ）を使用してＤＲＡＭダイ１１０をコントロールでき、ＤＲＡＭダイ１１０をコントロールするためにプロセッサ（ＰＵ）１７０により指示される。
【０００５】
オフ−ＨＢＭメモリーコントローラーは、ホストメモリーコントローラー１２０ａ（例えば、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）又は加速処理装置（ＡＰＵ）１３０のホストメモリーコントローラー１２０ａ）と称される。オン−ＨＢＭメモリーコントローラーは調整メモリーコントローラー１２０ｂと称され、ＨＢＭロジックダイ１４０に位置する。
【０００６】
ホストメモリーコントローラー１２０ａは、調整メモリーコントローラー１２０ｂよりＤＲＡＭダイから遠く離れた位置にあるので、遠隔メモリーコントローラー又は「ファー（ｆａｒ）」メモリーコントローラー（ＦＭＣ）と見なされる。調整メモリーコントローラー１２０ｂはＤＲＡＭダイ１１０に対する接近性に起因して、ローカルメモリーコントローラー又は「ニア（ｎｅａｒ）」メモリーコントローラー（ＮＭＣ）１２０ｂと見なされる。ホストメモリーコントローラー１２０ａ及び調整メモリーコントローラー１２０ｂの中の１つ又は両者は、一般的なメモリーコントローラーとして示される。
【０００７】
なお、ホストメモリーコントローラー１２０ａ及び調整メモリーコントローラー１２０ｂは非同期的に通信できる。従って、ホストメモリーコントローラー１２０ａ及び調整メモリーコントローラー１２０ｂが、両者同時にＤＲＡＭにアクセスを試みる場合、問題が発生する。
【０００８】
他の分野（例えば、ＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）のようなトランザクション（ｔｒａｎｓａｃｔｉｏｎ）基盤のプロトコルを使用するシステム−オン−チップ（ＳｏＣ））において、２つの他の全てのメモリーコントローラーによる同時アクセスの試みから発生する衝突に対する潜在的な解決策は、中央アービター（ａｒｂｉｔｅｒ）／中央集権されたコントローラーとしてバスアービターを用いることを包含する。バスアービターは、各バスサイクル（ｃｙｃｌｅ）に対しバスをコントロールするため許容されるバスマスターを決定し、全ての構成要素の状態を追跡できる。従って、２つの他のメモリーコントローラーはメモリーにアクセスするための許可をバスアービターへ要請でき、バスアービターはメモリーコントローラーの中の１つにアクセスを許可できる（即ち、選択されないマスターから干渉なしに選択されたマスター及びスレーブ間の通信を可能にする時において、ひたすら１つのマスターに対するアクセスを許可する）。以後、アクセスが許可された、選択されたメモリーコントローラーはメモリーにアクセスすることができ、そして／又はメモリーはメモリーコントローラーに応答できる。
【０００９】
しかし、前記潜在的解決策はＨＢＭ＋システム１００に適用できない。トランザクション基盤のプロトコルと異なり、ＨＢＭはハンドシェーキング（ｈａｎｄｓｈａｋｉｎｇ）の動作を支援せず、これはＨＢＭ１６０から任意のメモリーコントローラー１２０へフィードバック信号がないことを意味する。なお、従来のＨＢＭのＨＢＭロジックダイは、ＨＢＭロジックダイ内で単独にコンピューティング機能を遂行できない。
【００１０】
なお、これはトランザクション基盤のプロトコルと異なり、ＨＢＭは非決定論的タイミングを支援せず、これはホストメモリーコントローラー１２０ａがＨＢＭ１６０へ要請を伝送すれば、ＨＢＭ１６０が予測可能な時間内に応答することを、ホストメモリーコントローラー１２０ａが期待することを意味する。即ち、メモリコントローラー１２０中の１つが命令又は要請を伝送すれば、ＨＢＭ１６０が適切に要請されたデータの提供を確実にするため、ＨＢＭ１６０は与えられた時間内（例えば、約３０ナノセカンド（ｎａｎｏｓｅｃｏｎｄ）以内）に応答しなければならない。
【００１１】
前記の情報は、専ら本発明の実施例の背景技術に対する理解を増進させるためのものであり、これによって先行技術にはない情報を包含する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国登録特許第７８７７５５８Ｂ２号公報
【特許文献２】米国登録特許第８２６６３９３Ｂ２号公報
【特許文献３】米国登録特許第８８５４３８７Ｂ２号公報
【特許文献４】米国登録特許第９３１７４２９Ｂ２号公報
【特許文献５】米国登録特許第９６１９４０８Ｂ２号公報
【特許文献６】米国登録特許第９６３２７７５Ｂ２号公報
【特許文献７】米国公開特許第２０１５／０２９３８６４Ａ１号公報
【特許文献８】米国公開特許第２０１７／０１４７４２９Ａ１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、前述した技術的課題を解決するためのものとして、ホストメモリーコントローラーと調整メモリーコントローラーがメモリーの同一のアドレスにアクセスする場合、バンク衝突（ｂａｎｋ  ｃｏｎｆｌｉｃｔ）を防止できる高帯域幅メモリーシステムを提供できる。
【課題を解決するための手段】
【００１４】
本発明の実施例によると、高帯域幅メモリー（ＨＢＭ＋）システムにおいて、メモリーコマンドを調整する方法は、ホストメモリーコントローラーコマンドをホストメモリーコントローラーからメモリーへ伝送する場合、調整メモリーコントローラーから前記ホストメモリーコントローラーコマンドを受信するステップと、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達するステップと、前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドに基づいて調整メモリコントローラーコマンドをスケジューリングするステップと、を包含する。
【００１５】
前記ホストメモリーコントローラーコマンドに基づいて、前記調整メモリーコントローラーコマンドをスケジューリングするステップは、前記ホストメモリーコントローラーコマンドを調整メモリーコントローラーコマンドキューに有る前記調整メモリーコントローラーコマンドと比較するステップと、前記比較に基づいて、前記調整メモリーコントローラーコマンドのスケジューリングを調整するステップと、を包含する。
【００１６】
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーコマンドと比較するステップは、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を決定するステップを包含し、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが、前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたことで示されるまで、追加メモリーコマンドが前記ホストメモリーコントローラーから前記共通バンクへ伝送されることを防止するステップをさらに包含する。
【００１７】
前記方法は、前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するステップをさらに包含し、前記設定合意は同一なアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが、前記メモリー内の同一の位置を示す前記ホストメモリコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する。
【００１８】
前記方法は、前記ホストメモリコントローラーコマンドとして前記ホストメモリコントローラーからＰＩＭ（Ｐｒｏｃｅｓｓ−Ｉｎ−Ｍｅｍｏｒｙ）コマンドを伝送するステップと、前記ホストメモリコントローラーが前記調整メモリコントローラー及び前記ホストメモリコントローラー間のデータバスをモニターするステップと、前記モニターする間に、前記ＰＩＭコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのＰＩＭ完了応答を感知するステップと、をさらに包含する。
【００１９】
前記方法は、前記調整メモリーコントローラーが前記ＰＩＭコマンドを処理するための推定残余時間を判断するステップを包含し、ＰＩＭ完了応答で前記ＰＩＭコマンドが処理されなかった場合、前記ＰＩＭ完了応答で前記推定残余時間を示すステップと、前記ＰＩＭ完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するステップと、をさらに包含する。
【００２０】
前記推定残余時間を判断するステップは、前記調整メモリーコントローラーの調整メモリーコントローラーコマンドのキューをスキャンするステップと、前記調整メモリーコントローラーコマンドのキューにおいて処理されていない未処理メモリーコマンドを識別するステップと、前記未処理メモリーコマンドのそれぞれに対する推定時間を判別するステップと、前記推定残余時間を決定するため、前記推定時間を合算するステップと、を包含する。
【００２１】
前記方法は、前記ＰＩＭコマンドと時間終了値を連結するステップと、前記時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されない場合、前記ホストメモリーコントローラーからのメモリー要請の伝送を防止するステップと、をさらに包含する。
【００２２】
前記方法は、前記ホストメモリーコントローラーが、前記ＰＩＭコマンドを処理するための推定残余時間示す前期ＰＩＭ完了応答を要請するポーリング（ｐｏｌｌｉｎｇ）コマンドを伝送することで、前記調整メモリーコントローラーをポーリングするステップをさらに包含し、前記ポーリングコマンドは、前記調整メモリーコントローラーが前記ＰＩＭ完了応答を通常伝送するより、もっと速く前記調整メモリーコントローラーが前記ＰＩＭ完了応答を伝送するように惹起させる。
【００２３】
前記方法は、前記ホストメモリーコントローラーが前記ＰＩＭコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定するステップを包含し、時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されないことを判断する場合、前記ホストメモリーコントローラーが前記ＰＩＭコマンドの優先順位を上げるように前記優先順位フィールドを変更するステップと、前記調整メモリーコントローラーが調整メモリーコントローラーコマンドのキューから前記ＰＩＭコマンドの優先順位を上げるステップと、他のメモリーコマンドを処理する前に、前記ＰＩＭコマンドを処理するステップと、を包含する。
【００２４】
本発明の実施例によると、高帯域幅メモリー（ＨＢＭ＋）システムは、調整メモリーコントローラーと、ホストメモリーコントローラーと、メモリーと、命令語を実行するように構成されるプロセッサと、を含んで、前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、ホストメモリーコントローラーのコマンドを前記ホストメモリーコントローラーから前記メモリーへ伝送する場合、前記調整メモリーコントローラーから前記ホストメモリーコントローラーのコマンドを受信し、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達し、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーにより調整メモリコントローラーのコマンドをスケジュールするように惹起する。
【００２５】
前記プロセッサは、前記ホストメモリーコントローラーのコマンドと調整メモリーコントローラーコマンドのキューに存在する前記調整メモリーコントローラーのコマンドとを比較し、前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジュールを調整することにより、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーのコマンドをスケジュールするように構成される。
【００２６】
前記プロセッサは、前記ホストメモリーコントローラーコマンド及び調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を判断して、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーと比較するように構成され、前記プロセッサにより前記命令語が実行される時、前記命令語は、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーのコマンドが処理されたと示されるまで、前記プロセッサが追加メモリーコマンドを前記ホストメモリーコントローラーから前記共通バンクへの伝送を防止するように、さらに惹起する。
【００２７】
前記プロセッサにより前記命令語が実行される場合、前記命令語は前記プロセッサが前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するようにもっと惹起でき、前記設定合意は同一なアドレスをデコーディングする時、前記ホストメモリーコントローラー及び調整メモリーコントローラーの全てが前記メモリー内の同一な位置を示すように前記ホストメモリーコントローラー及び調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する。
【００２８】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが前記ホストメモリーコントローラーコマンドとして前記ホストメモリーコントローラーからＰＩＭ（Ｐｒｏｃｅｓｓ−Ｉｎ−Ｍｅｍｏｒｙ）コマンドを伝送し、前記ホストメモリーコントローラーが前記調整メモリーコントローラー及び前記ホストメモリーコントローラー間のデータバスをモニターし、前記モニターする間、前記ＰＩＭコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのＰＩＭ完了応答を感知するように、さらに惹起する。
【００２９】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、前記調整メモリーコントローラーに前記ＰＩＭコマンドを処理するための推定残余時間を判断し、前記ＰＩＭ完了応答で前記ＰＩＭコマンドが処理されなかったことを示す場合、前記ＰＩＭ完了応答で前記推定残余時間を表し、前記ＰＩＭ完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するように、さらに惹起する。
【００３０】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、前記ＰＩＭコマンドと時間終了値を連関させ、前記時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されなかったことを判断した場合、前記ホストメモリーコントローラーからのメモリー要請を伝送することを防止するように、さらに惹起する。
【００３１】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが前記ホストメモリーコントローラーを用いて、前記ホストメモリーコントローラーが前記ＰＩＭコマンドを処理するための推定残余時間を示す前記ＰＩＭ完了応答を要請するポーリング（ｐｏｌｌｉｎｇ）コマンドを伝送して、前記調整メモリーコントローラーをポーリングするようにさらに惹起し、前記ポーリングコマンドは調整メモリーコントローラーが前記ＰＩＭ完了応答ぼ通常伝送より、もっと速く前記調整メモリーコントローラーが前記ＰＩＭ完了応答を伝送するように惹起させる。
【００３２】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが、前記ホストメモリーコントローラーに前記ＰＩＭコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定し、時間終了値に対応する時間以内に前記ＰＩＭコマンドが処理されないことを判断した場合、前記ホストメモリーコントローラーに前記ＰＩＭコマンドの優先順位を上げるように前記優先順位フィールドを変更し、前記調整メモリーコントローラーに調整メモリーコントローラーコマンドキューから前記ＰＩＭコマンドの優先順位を上げ、他のメモリコマンドを処理する前に、前記ＰＩＭコマンドを処理するように、さらに惹起する。
【００３３】
本発明の実施例によると、高帯域幅メモリー（ＨＢＭ＋）システムは、ＨＢＭと、ホストメモリーコントローラーと、を含んで、前記ＨＢＭは、ＤＲＡＭを含むＤＲＡＭダイと、プロセッサ、比較器、スケジューラ（ｓｃｈｅｄｕｌｅｒ）及びコマンドキューを含む調整メモリーコントローラーを含むロジックダイと、を含み、前記ＨＢＭから分離されてメモリーコマンドを前記ＤＲＡＭダイ上の前記ＤＲＡＭへ伝送するように構成されたメモリーコントローラーを含み、前記調整メモリーコントローラーは前記メモリーコマンドを受信し、前記メモリーコマンドを前記ＤＲＡＭダイ上の前記ＤＲＡＭへ伝達するように構成され、前記比較器は前記調整メモリーコントローラーからの他のメモリーコマンドを前記ホストメモリーコントローラーからの前記メモリーコマンドと比較するように構成され、前記スケジューラは前記比較器による比較によって前記コマンドキューの前記メモリーコマンドをスケジュールするように構成される。
【発明の効果】
【００３４】
本発明によると、ホストメモリーコントローラー及び調整メモリーコントローラーが同一のメモリーバンクにアクセスする場合、バンク衝突を防止できる。
【００３５】
本発明によると、ホストメモリーコントローラーのコマンドと調整メモリーコントローラーのコマンドを効率的にスケジュールして高帯域幅メモリーシステムの性能を向上できる。
【図面の簡単な説明】
【００３６】
【図１】高帯域幅メモリー（ＨＢＭ＋）システムのブロック図である。
【図２】本発明の１つの実施例による高帯域幅メモリー（ＨＢＭ＋）システムのブロック図である。
【図３】ＰＩＭ完了応答の伝達を示すタイミング図である。
【図４】ポーリング（ｐｏｌｌｉｎｇ）コマンドに応答してＰＩＭ完了応答の伝達を示すタイミング図である。
【発明を実施するための形態】
【００３７】
以下の詳細な説明においては、本発明の特定の実施例が図面を通じて図示説明する。当業者が認識するのと同じように、本発明は多様な形式で具現でき、本明細書に記載された実施例に制限されるものと解釈されてはいけない。各実施例の特徴又は態様の説明は、典型的に他の実施例において他の類似した特徴又は態様に利用されうるものと考慮されなければならない。同一の参照番号は本明細書で同一の要素を示す。
【００３８】
本発明の思想の特徴及び本発明の思想を達成する方法は、次の実施例の詳細な説明及び添付した図面を参照することにより、より容易に理解できる。本明細書において、添付した図面を参照して実施例を詳細に説明し、図面において同一の参照番号は同一の要素を示す。しかし、本発明は多様な他の形態で具現でき、本明細書において説明する実施例に制限、解釈されてはならない。尚、斯かる実施例を、本発明が徹底かつ完璧になるための例示として提供し、当技術分野の熟練した技術者に本発明の態様及び特徴を完全に伝達できる。従って、本発明の態様及び特徴の完璧な理解のため、当技術分野で通常の知識を有する者（当業者）に必要ではないプロセス、要素及び技法は説明しない。別に言及しない限り、同一の参照番号は添付した図面及び詳細な説明の全体にかけて同一の要素を示し、よってその説明は反復しない。図面において、要素、レイヤー及び領域の相対的な大きさは明確性のため誇張する。
【００３９】
以下において、説明の目的のため、多様な実施例の完璧な理解を提供するため多様な特定の細部事項を記載する。しかし、多様な実施例は、斯かる特定の細部事項なしに又は１つ以上の同等な方式を有して実行できる。他の例示において、多様な実施例が不必要に曖昧になることを防止するため、よく知られた構造及び装置はブロック形態で示す。
【００４０】
要素、レイヤー、領域又は構成要素が他の要素、レイヤー、領域又は構成要素と「連結」されるとか「上」にあるとかと示す場合、他の要素、レイヤー、領域又は構成要素と直接連結されるとかすぐ上に有り、又は１つ以上の間に入る要素、レイヤー、領域又は構成要素が存在できる。しかし、「直接連結」は、１つの構成要素が中間の構成要素なしに他の構成要素と直接連結されることを示す。一方、「間の」、「隣接した」又は「すぐ隣接した」のような構成要素間の関係を説明する他の表現は同様に解釈されるべきである。なお、要素又はレイヤーが２つの要素又はレイヤーの「間」にあると言及する場合、２つの要素又はレイヤーの間の唯一の要素又はレイヤーであり、又は１つ以上の間に入る要素及びレイヤーが、なお存在できる。
【００４１】
本明細書において、使用する用語は、特定の実施例を説明するための目的だけであり、本発明を制限するためのものではない。本明細書で使用されるように、文脈が明確に他のものを示さない限り、単数形は複数形を包含する。「包含する」、「包含する〜」、「有する」、「有する〜」の用語は、本明細書で使用される場合、明示した特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を明示するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれのグループの存在又は追加を制限するものではない。本明細書で使用する「及び／又は」の用語は、連関された羅列項目の中の１つ以上のある組み合わせ又は全ての組み合わせを包含する。
【００４２】
本明細書で使用する「相当に」、「約」、「大略的に」の用語と類似の用語は、近似の用語として使用され、程度の用語として使用されるものではなく、技術分野で当業者により認識されうる測定又は計算された値に内在された偏差を説明する。「約」又は「大略的に」は、特定の量の測定と連関した測定及びエラーを考慮して（例えば、測定システムの限界）、本明細書で使用するように、技術分野で通常の技術の中の１つにより決定されたもので特定の値に対する許容可能な偏差の範囲以内の値及び手段を包含する。例えば、「約」は、１つ以上の標準偏差以内又は記述された値の３０％、２０％、１０％、５％以内を意味する。なお、本発明の実施例を説明する場合、「できる」の使用は「本発明の１つ以上の実施例」を示す。本明細書で使用する「使用する」、「使用する〜」及び「使用された〜」の用語は、「活用する」、「活用する〜」及び「活用された〜」の用語とそれぞれ同義語と考慮できる。なお、「例示的な」の用語は、例示又は説明を示す。
【００４３】
特定の実施例が、異なるように具現されうる場合、特定のプロセスの順序は、説明した順序と異なるように遂行できる。例えば、２つの連続的に説明したプロセスは、ほぼ同一の時間に遂行されうるか説明した順序と反対の順序に遂行されうる。
【００４４】
実施例の図式化された図面及び／又は中間構造である断面図を参照して、本明細書で多様な実施例を説明する。これによって、例えば、製造技法及び／又は誤差の結果として図面の形状からの変形が予想される。なお、本明細書において開示する特定の構造的又は機能的説明は、単に本発明の概念に沿って実施例を説明するための目的で説明する。従って、本明細書で開示する実施例は、領域の特定の図示形状に制限されると解釈されてはならないが、例えば、製造による形状の偏差を包含する。例えば、四角形として図示する埋入領域は、一般的に、円形又は曲線でできた特徴および／又は注入された領域から注入されない領域までのバイナリー（ｂｉｎａｒｙ）変化より領域の端で埋入集中の傾き（ｇｒａｄｉｅｎｔ：グラジエント）を有するはずである。同様に、注入によって形成された埋入領域は、埋入領域および注入が発生した表面間の領域で注入を惹起できる。従って、図面に図示した領域は、本質的に図式化されたものであり、図示された領域の形状は、装置の領域の実際の形状を示すためのものではないし、制限するためのものでもない。
【００４５】
本発明の実施例による電子又は電気装置および／又は他の関連された装置又は構成要素は、任意の適切なハードウェア、ファームウェア（例えば、応用注文型集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ソフトウェア又はソフトウェア、ファームウェア及びハードウェアの組み合わせを活用して具現できる。例えば、斯かる装置の多様な構成要素は一つの集積回路（ＩＣ：  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップ又は別のＩＣチップ上に形成できる。なお、斯かる装置の多様な構成要素は、フレキシブル印刷回路フィルム（ｆｌｅｘｉｂｌｅ  ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｆｉｌｍ）、テープキャリアパッケージ（ＴＣＰ：  Ｔａｐｅ  Ｃａｒｒｉｅｒ  Ｐａｃｋａｇｅ）、印刷回路基板（ＰＣＢ：  Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ）上に具現でき、又は一つの基板上に形成できる。なお、斯かる装置の多様な構成要素は、一つ以上のコンピューティング装置において一つ以上のプロセッサにより実行されて、コンピュータプログラムの命令を実行して、本明細書で説明する多様な機能を遂行するための他のシステムの構成要素と相互作用するプロセス又はスレッド（ｔｈｒｅａｄ）である。コンピュータプログラムの命令は、例えば、ランダムアクセスメモリー（ＲＡＭ：  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような標準メモリー装置を用いて、コンピューティング装置で具現されるメモリーに貯蔵される。なお、コンピュータプログラムの命令は、例えば、ＣＤ−ＲＯＭ、フラッシュドライブなどの他の非一時的コンピュータ判読可能なメディアに貯蔵できる。なお、当技術分野において通常の技術者（当業者）にとって多様なコンピューティング装置の機能は、一つのコンピューティング装置に結合されるか統合されうるのは自明であり、又は特定のコンピューティング装置の機能は、本発明の実施例の思想及び範囲から逸脱しない一つ以上のコンピューティング装置を通じて分散されうるのは自明である。
【００４６】
別に定義しない場合、本明細書で使用する全ての用語（技術的及び科学的用語を含む）は、本発明が属する技術分野の通常の技術者（当業者）により、一般的に理解されるのと同一の意味を有する。一般的に、使用される辞典に定義された用語は、関連された技術及び／又は本明細書の文脈での意味と一致する意味を有すると解釈されるべきであり、本明細書において特別に定義しない場合、理想的又は形式的に解釈し過ぎてはならない。
【００４７】
図２は、本発明の一つの実施例による高帯域幅メモリー（ＨＢＭ＋）システムのブロック図である。
【００４８】
図２を参照すると、本発明の実施例は、ＨＢＭ＋システム２００の環境においてホストメモリーコントローラー２２０ａ及び調整メモリーコントローラー２２０ｂの活動を調整するためのシステム及び方法を提供する。従って、プロセシングタイプのメモリー活動（ＤＲＡＭ及びＰＩＭ（Ｐｒｏｃｅｓｓｉｎｇ−Ｉｎ−Ｍｅｍｏｒｙ）活動）は、機能の正確性を保障するため適切にスケジュールされ、これによってメモリーシステムの性能を向上させる。
【００４９】
本発明のＨＢＭ＋システム２００において、調整メモリーコントローラー２２０ｂはＤＲＡＭ２１０に対する補助マスターとして動作し、ホストメモリーコントローラー２２０ａは基本マスターとして動作する。調整メモリーコントローラー２２０ｂは、ＤＲＡＭ２１０へ伝送されるホストメモリーコントローラー２２０ａのコマンドをインターセプト（ｉｎｔｅｒｃｅｐｔ）でき、ホストメモリーコントローラー２２０ａからのコマンドを全てＤＲＡＭ２１０へ伝達でき、これによってＤＲＡＭ２１０に意図された方式によりホストメモリーコントローラー２２０ａへ応答させる。
【００５０】
調整メモリーコントローラー２２０ｂは、ホストメモリーコントローラー２２０ａのコマンドを受信しながら、調整メモリーコントローラー２２０ｂのコマンドをスケジュールするためスケジューラ２７５を使用する。他のメモリーコントローラー２２０からメモリーコマンドがＤＲＡＭ２１０の他のバンクへ伝送されると、他のメモリーコマンドは互いに独立的である。しかし、ＤＲＡＭ２１０の同一のＤＲＡＭバンクに対し他のメモリーコントローラー２２０からのメモリーコマンドがスケジュールされた場合、複数のメモリーコマンドは衝突し、これはシステムの性能に否定的な影響を与える。
【００５１】
メモリーコマンドの衝突から発生する問題を防止するため、調整メモリーコントローラー２２０ｂは、調整メモリーコントローラー２２０ｂのスケジューリング決定を調整するため、ホストメモリーコントローラー２２０ａからのコマンドを利用する。例えば、ホストメモリーコントローラー２２０ａのコマンドには、調整メモリーコントロ−ラー２２０ｂのコマンドより高い優先順位が与えられる。従って、調整メモリーコントローラー２２０ｂのスケジューラ２７５は、設定合意によるホストメモリーコントローラー２２０ａのコマンドに基づいてＤＲＡＭ２１０へ伝送されるＤＲＡＭコマンドをスケジュールし、これによって、ホストメモリーコントローラー２２０ａからの普通のＤＲＡＭ要請は、ホストメモリーコントローラー２２０ａにより予想されたように、ＤＲＡＭ２１０がホストメモリーコントローラー２２０ａに応答するようにさせる。即ち、以下に説明するように、設定されて、同意されたアドレスマッピング技法によってバンク衝突を防止するため、調整メモリーコントローラー２２０ｂ及びホストメモリーコントローラー２２０ａは、設定合意の共通規則に従う。
【００５２】
調整メモリーコントローラー２２０ｂのスケジューラ２７５は、調整メモリーコントローラー２２０ｂのコマンドキュー２８０とホストメモリーコントローラー２２０ａからのコマンドを比較するため、比較器２７８を利用し、比較結果に基づいてコマンドスケジューリングを調整し決定することでスケジューリングを遂行できる。従って、２つのメモリーコントローラー２２０からのコマンドの衝突がある場合、メモリーコントローラーの中の１つは、競合コマンドの完了を待機する。調整メモリーコントローラー２２０ｂの比較器２７８は、２つのコマンドのセット（例えば、調整メモリーコントローラー２２０ｂからの１つのコマンドセット及びホストメモリーコントローラー２２０ａからの他のコマンドセット）を比較する。調整メモリーコントローラー２２０ｂが両者のコマンドセットがＤＲＡＭ２１０の同一のバンクにスケジュールされたと判断する場合、調整メモリーコントローラー２２０ｂは、ホストメモリーコントローラー２２０ａのコマンドが完了されるまで待機し、以後調整メモリーコントローラー２２０ｂに対応するコマンドをスケジュールするためスケジューラを利用できる。
【００５３】
又は、ホストメモリーコントローラー２２０ａは、基本マスターとして使用されるので、調整メモリーコントローラー２２０ｂは、一般的にホストメモリーコントローラー２２０ａによりどのような要請が伝送されるかを見守り、調整メモリーコントローラー２２０ｂのスケジューラ２７５はバンク衝突を防止するための責任が有る。例えば、ホストメモリーコントローラー２２０ａは、ＰＩＭ（Ｐｒｏｃｅｓｓｉｎｇ−Ｉｎ−Ｍｅｍｏｒｙ）要請をＤＲＡＭ２１０の第１バンクへ伝送でき、第１バンクに対応するＰＩＭの処理が完了するまで調整メモリーコントローラー２２０ｂの同一の第１バンクへのコマンドの伝送を防止でき、これによって機能的正確性を保障し、調整メモリーコントローラー２２０ｂに対するスケジューリング複雑度及びリソース要求事項を減少させる。
【００５４】
従って、ホストメモリーコントローラー２２０ａ及び調整メモリーコントローラー２２０ｂ間の設定合意は、機能的正確性を保障してＨＢＭインターフェース及びプロトコルを維持しながらバンク衝突を防止する。なお、ホスト２３０からの一般的なメモリー要請は、希望どおり持続的に進行できる。
【００５５】
前述したように、特定のアドレスに対して、ホストメモリーコントローラー２２０ａ及び調整メモリーコントローラー２２０ｂのそれぞれは、ＤＲＡＭ２１０内部の実際の対応位置を正確に探し出すか示すため、共通アドレスマッピングの技法を使用する。ＤＲＡＭ２１０は、チャンネル、バンク、行及び列で構成されるから、異なるタイプのアドレスマッピングの技法は、特定のアドレスに対応するＤＲＡＭ２１０での位置を決定するために使用されるかもしれない。設定合意により、ホストメモリーコントローラー２２０ａ及び調整メモリーコントローラー２２０ｂは、メモリー要請が「間違って理解」されないように同一のアドレスマッピングの技法を使用する。
【００５６】
アドレスマッピングによると、ホストメモリーコントローラー２２０ａは、行（Ｒｏｗ＿ＣＡ）２５２に対するコマンドアドレス及び列（Ｃｏｌ＿ＣＡ）２５４に対するコマンドアドレスを伝送できる。そうして、調整メモリーコントローラー２２０ｂは、調整メモリーコントローラー２２０ｂのコマンドアドレスデコーダー２７７に基づいて、ホストメモリーコントローラー２２０ａからのコマンドが示すものを判断できる。そうして、調整メモリーコントローラー２２０ｂのコマンドアドレスデコーダー２７７は、実際の行コマンドアドレス２５６及び／又は実際の列コマンドアドレス２５８を判別でき、又はコマンドがＰＩＭコマンドアドレス２６２に対応するかを判別できる。
【００５７】
コマンドがＰＩＭコマンドに対応しない場合、比較器２７８で比較が遂行され、入力されるＲｏｗ＿ＣＡ２５６及びＣｏｌ＿ＣＡ２５８は、コマンドキュー２８０内のコマンドと比較される。比較に基づいて、調整メモリーコントローラー２２０ｂのスケジューラ２７５は、コマンドキュー２８０内でコマンドのスケジューリングを調整できる。本発明の実施例において、コマンドキュー２８０にあるコマンドは、活性化コマンド（ＡＣＴ）、リードコマンド（ＲＤ）、ライトコマンド（ＷＲ）及びプリチャージ（ＰＲＥ）に該当し、これはＤＲＡＭ２１０が理解できるコマンドを示す。それぞれのコマンドに対応するのは、「準備（Ｒ）」又は「準備されないこと（Ｎ）」を示す状態指示子であり、これはスケジューラ２７５が、いつコマンドがスケジュールされるかを判別するのに利用される。
【００５８】
又は、ホストメモリーコントローラー２２０ａは、一般的なＤＲＡＭアクセスコマンドから区別されるように、ＰＩＭコマンド／ＰＩＭ要請の伝送を試みる。調整メモリーコントローラー２２０ｂのコマンドアドレスデコーダー２７７によりデコーディング動作が遂行された後、コマンドが一般的なＤＲＡＭコマンドであれば、コマンドはＤＲＡＭ２１０へ直接伝達されるはずである。対照的に、調整メモリーコントローラー２２０ｂにより受信されたコマンドがＰＩＭコマンドに変換されると、ＰＩＭコマンドはＰＩＭデコーダー２６４により追加的に復号化され、コマンドキュー２８０内で処理される（例えば、コマンドアドレスデコーダー２７７から、ＰＩＭコマンドはＰＩＭコマンドアドレス（ＰＩＭ＿ＣＡ）２６２に変換され、ＰＩＭデコーダー２６４が復号したＰＩＭコマンドをコマンドキュー２８０へ伝送できるようにＰＩＭデコーダー２６４へ伝送される。
【００５９】
図３は、ＰＩＭ完了応答の伝達を示すタイミング図である。
【００６０】
図２及び図３を参照すれば、調整メモリーコントローラー２２０ｂは補助マスターであるから、調整メモリーコントローラー２２０ｂはコマンドをスケジュールしようとする場合、より低い優先順位となる。従って、調整メモリーコントローラー２２０ｂは動作を遂行してスケジュールされたコマンドを完了するため、より多くの時間を必要とする。調整メモリーコントローラー２２０ｂでの処理は非決定的であり、調整メモリーコントローラー２２０ｂは決定された時間内にＰＩＭコマンドを完了できないから（ＰＩＭコマンドは基本マスターであるホストメモリーコントローラー２２０ａからの普通のメモリー要請により遅延されるから）、調整メモリーコントローラー２２０ｂは任意のＰＩＭ要請／ＰＩＭコマンドの状態をホストメモリーコントローラー２２０ａに明示的に知らせる。
【００６１】
よって、ＰＩＭコマンド３１０がホストメモリーコントローラー２２０ａから伝送された後、ホストメモリーコントローラー２２０ａは、毎ＰＩＭ時間間隔３２０／ＰＩＭ＿ＡＣＫ時間（ｔＰＩＭ）ごとに一回ずつデータバス（ＤＱバス）２８４をモニターでき、これはＨＢＭ＋システム２００の一貫したクロックサイクル数に対応する時間間隔であり、これは同期式ダブルデータレート（ＤＤＲ：  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）に対応できる。ホストメモリーコントローラー２２０ａは、ＰＩＭ完了応答３３０／ＰＩＭ応答パケット（ＰＩＭ＿ＡＣＫ）を感知するためＤＱバス２８４をモニターし続け、ＰＩＭ完了応答３３０はＰＩＭコマンド３１０の処理が完了されたかの可否を示す。ＰＩＭ完了応答３３０は調整メモリーコントローラー２２０ｂのＰＩＭ完了応答生成器２８８により生成される。
【００６２】
ＤＱバス２８４において、調整メモリーコントローラ２２０ｂはＰＩＭ完了応答３３０に対応する情報を含むパケットに応答できる。ＰＩＭ完了応答３３０は、サンプリングされた時間（例えば、毎ＰＩＭ時間間隔３２０ごとに一回ずつ）に調整メモリーコントローラー２２０ｂにより伝送される。ＰＩＭ完了応答３３０は、完了状態ビットに対応する一つのビットを含む２５６ビットのメッセージとしてインスタンス化され、これは調整メモリーコントローラー２２０ｂのＰＩＭ完了状態レジスター２８６により設定され、関連されたＤＲＡＭ活動が終了される時、設定される。ＰＩＭ完了応答３３０の完了状態ビットが「間違い」（ｆａｌｓｅ）を示す場合、ＤＱバス２８４をモニターし続ける。しかし、ＰＩＭ完了応答３３０が、完了状態ビットが「真実」（ｔｒｕｅ）を示すと、ホストメモリーコントローラー２２０ａは伝送されたＰＩＭコマンド３１０が完了され、成功的に表示されたことを知る。
【００６３】
なお、ＰＩＭ完了応答３３０の一部又は全ての残りのビットは完了まで残っている推定時間を提供するのに利用される（例えば、ＰＩＭ完了応答３３０の完了状態ビットがＰＩＭコマンド３１０がまだ完了されなかったことを示す場合）。例えば、調整メモリーコントローラー２２０ｂは、ＰＩＭコマンド３１０の完了までに残っている推定時間を推定するため、推定器２９２を包含する。調整メモリーコントローラー２２０ｂは内部動作の状態を知ることができるので、調整メモリーコントローラー２２０ｂの推定器２９２はコマンドキュー２８０をスキャンして、コマンドキュー２８０の未処理のコマンドのそれぞれに対する推定時間の量を決定して推定された時間を全て合算し、調整メモリーコントローラー２２０ｂが、ＰＩＭコマンド３１０を完了するためどれぐらいの追加時間が予想されるかを推定できる。その後、ＰＩＭ完了状態レジスター２８６はＤＲＡＭ完了状態指示子２６８が示されると、関連ＤＲＡＭ活動が終了されたと設定する。従って、調整メモリーコントローラー２２０ｂはＰＩＭ完了応答３３０で示される推定残余時間でホストメモリーコントローラー２２０ａに応答できる。
【００６４】
従って、一部の追加ＤＱバスの帯域幅は、各ＰＩＭ時間間隔３２０に対するＰＩＭコマンド３１０の完了指示のためＤＱバス２８４へのパケット伝送に使用されるが、ＨＢＭインターフェース及びプロトコルはコマンドバスの帯域幅を浪費せずに維持される。
【００６５】
図４は、ポーリングコマンドに応答してＰＩＭ完了応答の伝達を示すタイミング図である。
【００６６】
図２及び図４を参照すれば、調整メモリーコントローラー２２０ｂにより伝送されたＰＩＭ完了応答３３０で示された推定残余時間が少ない場合、ホスト２３０はポーリングコマンド（ＰＩＭ＿ＰＯＬＬ）４１０を用いてＰＩＭ完了状態を能動的にポーリング（ｐｏｌｌｉｎｇ）するため、ホストメモリーコントローラー２２０ａを利用する。これによって、ホスト２３０はホストメモリーコントローラー２２０ａがＰＩＭコマンド３１０の処理のため、残っている時間をもっと正確に知ることができる。
【００６７】
ポーリングコマンド４１０を受信した後、調整メモリーコントローラー２２０ｂはＰＩＭ完了応答３３０を返信する（例えば、ＰＩＭ時間間隔３２０より短い間隔であり得るｔＰＩＭ＿ＰＯＬＬ時間４２０以内）。従って、ホストメモリーコントローラー２２０ａは、調整メモリーコントローラー２２０ｂにより伝送される任意のＰＩＭ完了応答３３０で、通常より速くＰＩＭコマンド３１０の予想完了に関する情報を受信できる。任意のＰＩＭ完了応答３３０は、前述したように、毎ＰＩＭ時間間隔３２０ごとにただ一回ずつ発生する。例えば、ＨＢＭシステムに対する現在のスペックに基づいてｔＰＩＭ＿ＰＯＬＬ時間４２０は約３ナノセカンドと推定されるが、ＰＩＭ時間間隔３２０は約５０ナノセカンド以上と推定される。サンプル完了時間が約５０ナノセカンドであり、推定残余時間がたまに極めて短いことも有り得るから、実際の応答状態を受信するため追加的に５０ナノセカンドを待機するのは適切でない。従って、ポーリングコマンド４１０はＨＢＭ＋システム２００の効率性及び性能を向上させる。
【００６８】
能動的なポーリングにより提供される利点は、サンプル完了時間が提供されながら、なおホストメモリーコントローラー２２０ａにもっと速く応答状態を受信させるものである。しかし、能動的なポーリングを具現するため新たなコマンドが使用されるので、新たなコマンドを具現するため余分のコマンドバス帯域幅が使用される。
【００６９】
上述したＰＩＭ完了応答３３０及びポーリングコマンド４１０と関連して、ＤＲＡＭ２１０からのデータ経路は、ＭＵＸ２８２により制御される。ＭＵＸ２８２はデータをＤＲＡＭ２１０からホストメモリーコントローラー２２０ａへ再び伝送するか、データを調整メモリーコントローラー２２０ｂ内部のプロセッサ２７０へ再び伝送する。データが調整メモリーコントローラー２２０ｂの内部動作のため使用される場合、データはプロセッサ２７０へ送られる。しかし、データがホストメモリーコントローラー２２０ａに対する応答の場合、データはホストメモリーコントローラー２２０ａへ送られる。ＤＱバス２８４は、普通のデータ又はＰＩＭ完了応答３３０を伝達するため使用される。
【００７０】
ＨＢＭインターフェース及びプロトコルが維持されて、ホストからの普通のメモリーアプリケーション要請が希望通り進行されても、調整メモリーコントローラー２２０ｂの優先順位は低いので、対応するコマンドは適切なものより遅く完了する。なお、ホストメモリーコントローラー２２０ａからのコマンドをデコーディングするための追加サイクルが使用される。
【００７１】
本発明によると、与えられたＰＩＭコマンド３１０の優先順位は、ＰＩＭコマンド３１０が願う時間以内に完了されるように設定される。優先順位を設定するための、斯かる優先順位の情報はＰＩＭコマンド３１０及び／又はポーリングコマンド４１０に内蔵される。
【００７２】
例えば、調整メモリーコントローラー２２０ｂが永久的にＰＩＭコマンド３１０の処理完了を失敗する状況を防止するため、ホストメモリーコントローラー２２０ａは適切なスケジューリングを決定し、及び／又は調整メモリーコントローラー２２０ｂへ優先順位の情報を伝送できる。調整メモリーコントローラー２２０ｂは、補助マスターとして、一般的にホストメモリーコントローラー２２０ａの命令をスケジュールするから、ホストメモリーコントローラー２２０ａが命令を伝送し続ける状況は、調整メモリーコントローラー２２０ｂが調整メモリーコントローラー２２０ｂのＰＩＭコマンド３１０に対する動作をスケジュールできないようにする。従って、それぞれのＰＩＭコマンド３１０は時間終了値と連関される。時間終了値に到達した後（例えば、十分な時間が過ぎた後）ホストメモリーコントローラー２２０ａにより受信されたＰＩＭ完了応答３３０が相変わらず失敗であれば、ホストメモリーコントローラー２２０ａはＨＢＭチャンネルへ普通のメモリー要請の伝送を中断し順序を変え、ＰＩＭコマンド３１０をスケジュールできる調整メモリーコントローラー２２０ｂに対する機会を提供し、従ってＰＩＭコマンド３１０の完了が可能となる。
【００７３】
なお、調整メモリーコントローラー２２０ｂは、向上された性能のため順序が変わり、ＰＩＭコマンド３１０をスケジュールできる。これはＰＩＭコマンド３１０の中の遅く要請されたコマンド以後、発生したＰＩＭコマンド３１０（先に要請された）の中の一部の実行を惹起できる。調整メモリーコントローラー２２０ｂが相対的に高い優先順位を有するＰＩＭコマンドを実行できるように、ＰＩＭコマンド３１０において優先順位のフィールドはホストメモリーコントローラー２２０ａにより設定される。即ち、ホストメモリーコントローラー２２０ａは、調整メモリーコントローラー２２０ｂが優先順位のフィールドをデコーディングするとすぐに、ＰＩＭコマンド３１０を即時実行すべきかを知ることができるように、優先順位のフィールドを設定できる。
【００７４】
なお、ポーリングコマンド４１０に優先順位のためのフィールドが有る。従って、ホストメモリーコントローラー２２０ａは、以前発行されたＰＩＭコマンド３１０の優先順位を変更できる。例えば、ホストメモリーコントローラー２２０ａが、ＰＩＭコマンド３１０完了のため許容できない長い時間の所要を認識すれば、ホストメモリーコントローラー２２０ａは、ＰＩＭコマンド３１０がもっと速く完了されるようにするため、優先順位のフィールドを用いることによりＰＩＭコマンド３１０の優先順位を速くし、調整メモリーコントローラー２２０ｂは高い優先順位でＰＩＭコマンドの実行を始める。
【００７５】
従って、本発明の前述した実施例は、高帯域幅（ＨＢＭ＋）システムを提供する。
【００７６】
前述した内容は、実施例を示すものであり、これに限定されるものではない。いくつかの実施例を説明したが、当技術分野の通常の技術者（当業者）は実施例の新規な開示及び利点から実質的に逸脱しないながら、実施例から多様な修正が可能であることを容易に認識するはずである。従って、このような全ての修正は、請求項に定義されたように実施例の範囲内に含まれると意図する。請求の範囲において、機能的請求項は記述した機能を遂行する本明細書で説明した構造及び構造的等価物だけではなく、等価構造を包含するように意図する。従って、前述した内容は実施例を示すものであり、開示した特定の実施例に制限されるものと解釈されるべきでないことは自明であり、他の実施例だけではなく開示した実施例に対する修正は添付した請求項の範囲に含まれるものと意図する。本発明の思想は特許請求の範囲により定義される。
【産業上の利用可能性】
【００７７】
本発明は、メモリーコントローラーを含む高帯域幅システムにおいて、バンク衝突の防止に有用である。
【符号の説明】
【００７８】
１００，２００  ＨＢＭ＋システム
１１０，２１０  ＤＲＡＭ
１２０、２２０  メモリーコントローラー
１２０ａ、２２０ａ  ホストメモリーコントローラー
１２０ｂ、２２０ｂ  調整メモリーコントローラー
１３０  加速処理装置
１４０  ＨＢＭロジックダイ
１６０  ＨＢＭ
１７０，２７０  プロセッサ
２３０  ホスト
２５２  行
２５４  列
２５６  行コマンドアドレス
２５８  列コマンドアドレス
２６２  ＰＩＭコマンドアドレス
２６４  ＰＩＭデコーダー
２６８  ＤＲＡＭ完了状態指示子
２７５  スケジューラ
２７７  コマンドアドレスデコーダー
２７８  比較器
２８０  コマンドキュー
２８２  ＭＵＸ
２８４  ＤＱバス
２８６  ＰＩＭ完了状態レジスター
２８８  ＰＩＭ完了応答生成器
２９２  推定器
３１０  ＰＩＭコマンド
３２０  ＰＩＭ時間間隔
３３０  ＰＩＭ完了応答
４１０  ポーリングコマンド
４２０  ｔＰＩＭ＿ＰＯＬＬ時間
【図１】
2019029004.tif 000003
【図２】
2019029004.tif 000004
【図３】
2019029004.tif 000005
【図４】
2019029004.tif 000006