特許第6974260号(P6974260)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特許6974260高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法
<>
  • 特許6974260-高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法 図000002
  • 特許6974260-高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法 図000003
  • 特許6974260-高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法 図000004
  • 特許6974260-高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6974260
(24)【登録日】2021年11月8日
(45)【発行日】2021年12月1日
(54)【発明の名称】高帯域幅メモリー(HBM+)システム、及び高帯域幅メモリーシステムにおいてメモリーコマンドを調整する方法
(51)【国際特許分類】
   G06F 12/06 20060101AFI20211118BHJP
   G06F 12/00 20060101ALI20211118BHJP
   G11C 5/02 20060101ALI20211118BHJP
【FI】
   G06F12/06 550B
   G06F12/00 560F
   G11C5/02 100
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2018-114778(P2018-114778)
(22)【出願日】2018年6月15日
(65)【公開番号】特開2019-29004(P2019-29004A)
(43)【公開日】2019年2月21日
【審査請求日】2021年6月8日
(31)【優先権主張番号】62/536919
(32)【優先日】2017年7月25日
(33)【優先権主張国】US
(31)【優先権主張番号】15/723014
(32)【優先日】2017年10月2日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】張, 牧 天
(72)【発明者】
【氏名】牛, 迪 民
(72)【発明者】
【氏名】ズン, 宏 忠
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特表2019−505910(JP,A)
【文献】 国際公開第2017/123413(WO,A1)
【文献】 特開2008−117109(JP,A)
【文献】 米国特許出願公開第2016/0070483(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/06
G06F 12/00
G11C 5/02
(57)【特許請求の範囲】
【請求項1】
高帯域幅メモリー(HBM+)システムにおいて、メモリーコマンドを調整する方法であって、
ホストメモリーコントローラーコマンドをホストメモリーコントローラーからメモリーへ伝送するステップと
調整メモリーコントローラー前記ホストメモリーコントローラーコマンドを受信するステップと、
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーから前記メモリーへ伝達するステップと、
前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドに基づいて調整メモリコントローラーコマンドをスケジューリングするステップと、
前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を決定するステップと、
前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが、前記共通バンクに対しスケジュールされた場合、追加メモリーコマンドが前記ホストメモリーコントローラーから前記共通バンクへ伝送されることを防止するステップと、を包含する、ことを特徴とする方法。
【請求項2】
前記ホストメモリーコントローラーコマンドに基づいて、前記調整メモリーコントローラーコマンドをスケジューリングするステップは、
前記ホストメモリーコントローラーコマンドを調整メモリーコントローラーコマンドキューに存在する前記調整メモリーコントローラーコマンドと比較するステップと、
前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジューリングを調整するステップと、を包含する、ことを特徴とする請求項1に記載の方法。
【請求項3】
記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが、前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたと示された後に、追加メモリーコマンドが前記ホストメモリーコントローラーから前記共通バンクへ伝送されるステップをさらに包含する、ことを特徴とする請求項2に記載の方法。
【請求項4】
前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するステップをさらに包含し、
前記設定合意は同一のアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが、前記メモリー内の同一の位置を示すように、前記ホストメモリコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する、ことを特徴とする請求項1に記載の方法。
【請求項5】
前記ホストメモリコントローラーコマンドとして前記ホストメモリコントローラーからPIM(Process−In−Memory)コマンドを伝送するステップと、
前記ホストメモリコントローラーが前記調整メモリコントローラー及び前記ホストメモリコントローラー間のデータバスをモニターするステップと、
前記モニターする間に、前記PIMコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのPIM完了応答を感知するステップと、をさらに包含する、ことを特徴とする請求項1に記載の方法。
【請求項6】
前記調整メモリーコントローラーが前記PIMコマンドを処理するための推定残余時間を判断するステップ
前記PIM完了応答で前記PIMコマンドが処理されなかったことを示すステップと
前記PIM完了応答で前記推定残余時間を示すステップと、
前記PIM完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するステップと、をさらに包含する、ことを特徴とする請求項5に記載の方法。
【請求項7】
前記推定残余時間を判断するステップは、
前記調整メモリーコントローラーの調整メモリーコントローラーコマンドキューをスキャンするステップと、
前記調整メモリーコントローラーコマンドキューにおいて処理されていない未処理メモリーコマンドを識別するステップと、
前記未処理メモリーコマンドのそれぞれに対する推定時間を判別するステップと、
前記推定残余時間を判別するため、前記推定時間を合算するステップと、を包含する、ことを特徴とする請求項6に記載の方法。
【請求項8】
前記PIMコマンドと時間終了値を連関させるステップと、
前記時間終了値に対応する時間以内に前記PIMコマンドが処理されないことを判断するステップと
前記ホストメモリーコントローラーからのメモリー要請の伝送を防止するステップと、をさらに包含することを特徴とする、請求項6に記載の方法。
【請求項9】
前記ホストメモリーコントローラーが、前記PIMコマンドを処理するための推定残余時間を示す前記PIM完了応答を要請するポーリング(polling)コマンドを伝送することで、前記調整メモリーコントローラーをポーリングするステップをさらに包含し、
前記ポーリングコマンドは、前記調整メモリーコントローラーが前記PIM完了応答を通常伝送するより、もっと速く前記調整メモリーコントローラーが前記PIM完了応答を伝送するように惹起させる、ことを特徴とする請求項5に記載の方法。
【請求項10】
前記ホストメモリーコントローラーが前記PIMコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定するステップ
時間終了値に対応する時間以内に前記PIMコマンドが処理されないと判断するステップと
前記ホストメモリーコントローラーが前記PIMコマンドの優先順位を上げるように前記優先順位フィールドを変更するステップと、
前記調整メモリーコントローラーが調整メモリーコントローラーコマンドキュー前記PIMコマンドを伝送するステップと、
他のメモリーコマンドを処理する前に、前記PIMコマンドを処理するステップと、を包含する、ことを特徴とする請求項9に記載の方法。
【請求項11】
調整メモリーコントローラーと、
ホストメモリーコントローラーと、
メモリーと、
命令語を実行するように構成されプロセッサと、を包含し、
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
ホストメモリーコントローラーコマンドを前記ホストメモリーコントローラーから前記メモリーへ伝送
前記調整メモリーコントローラー前記ホストメモリーコントローラーコマンドを受信し、
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーから前記メモリーへ伝達し、
前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーにより調整メモリーコントローラーコマンドをスケジュールし、
前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するように惹起し、
前記設定合意は、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する、ことを特徴とする高帯域幅メモリー(HBM+)システム。
【請求項12】
前記プロセッサは、前記ホストメモリーコントローラーコマンドと調整メモリーコントローラーコマンドキューに存在する前記調整メモリーコントローラーコマンドとを比較し、前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジュールを調整することにより、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーコマンドをスケジュールするように構成される、ことを特徴とする請求項11に記載の高帯域幅メモリー(HBM+)システム。
【請求項13】
前記プロセッサは、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を判断して、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーと比較するように構成され、
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたと示されるまで、前記プロセッサが追加メモリーコマンドの前記ホストメモリーコントローラーから前記共通バンクへの伝送を防止するように、さらに惹起する、ことを特徴とする請求項12に記載の高帯域幅メモリー(HBM+)システム。
【請求項14】
共通アドレスマッピングの技法同一のアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが前記メモリー内の同一の位置を示すように、惹起する、ことを特徴とする請求項11に記載の高帯域幅メモリー(HBM+)システム。
【請求項15】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記ホストメモリーコントローラーコマンドとして前記ホストメモリーコントローラーからPIM(Process−In−Memory)コマンドを伝送し、
前記ホストメモリーコントローラーが前記調整メモリーコントローラー及び前記ホストメモリーコントローラー間のデータバスをモニターし、
前記モニターする間、前記PIMコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのPIM完了応答を感知するように、さらに惹起する、ことを特徴とする請求項11に記載の高帯域幅メモリー(HBM+)システム。
【請求項16】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記調整メモリーコントローラー前記PIMコマンドを処理するための推定残余時間を判断し、
前記PIM完了応答で前記PIMコマンドが処理されなかったことを示
前記PIM完了応答で前記推定残余時間を示し、
前記PIM完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するように、さらに惹起する、ことを特徴とする請求項15に記載の高帯域幅メモリー(HBM+)システム。
【請求項17】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、
前記PIMコマンドと時間終了値を連関させ、
前記時間終了値に対応する時間以内に前記PIMコマンドが処理されなかったことを判断し、
前記ホストメモリーコントローラーからのメモリー要請を伝送することを防止するように、さらに惹起する、ことを特徴とする請求項16に記載の高帯域幅メモリー(HBM+)システム。
【請求項18】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが前記ホストメモリーコントローラーを用いて、前記ホストメモリーコントローラーが前記PIMコマンドを処理するための推定残余時間を示す前記PIM完了応答を要請するポーリング(polling)コマンドを伝送して、前記調整メモリーコントローラーをポーリングするようにさらに惹起し、
前記ポーリングコマンドは前記調整メモリーコントローラーが前記PIM完了応答の通常伝送より、もっと速く前記調整メモリーコントローラーが前記PIM完了応答を伝送するように惹起させる、ことを特徴とする請求項15に記載の高帯域幅メモリー(HBM+)システム。
【請求項19】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが、
前記ホストメモリーコントローラーに前記PIMコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定し、
時間終了値に対応する時間以内に前記PIMコマンドが処理されないと判断し、
前記ホストメモリーコントローラーに前記PIMコマンドの優先順位を上げるように前記優先順位フィールドを変更し、
前記調整メモリーコントローラーに調整メモリーコントローラーコマンドキュー前記PIMコマンドを伝送させ
他のメモリーコマンドを処理する前に、前記PIMコマンドを処理するように、さらに惹起する、ことを特徴とする請求項18に記載の高帯域幅メモリー(HBM+)システム。
【請求項20】
HBMと、
ホストメモリーコントローラーと、を包含し、
前記HBMは、
DRAMを含むDRAMダイ、並びに
前記DRAMダイをコントロールするためのプロセッサと、内部プロセッサ、比較器、スケジューラ(scheduler)、及びコマンドキューを含む調整メモリーコントローラーとを含むロジックダイを包含し、
前記ホストメモリーコントローラーは、前記HBMから分離されてメモリーコマンドを前記DRAMダイ上の前記DRAMへ伝送するように構成され、
前記調整メモリーコントローラーは、前記メモリーコマンドを受信して、前記メモリーコマンドを前記DRAMダイ上の前記DRAMへ伝達するように構成され、
前記比較器は、前記内部プロセッサからの他のメモリーコマンドを前記ホストメモリーコントローラーからの前記メモリーコマンドと比較するように構成され、
前記スケジューラは、前記比較器による比較によって、前記コマンドキューの前記内部プロセッサからの前記メモリーコマンドと前記ホストメモリーコントローラーからの前記メモリーコマンドをスケジュールするように構成された、ことを特徴とする高帯域幅メモリー(HBM+)システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリー帯域幅の管理に係り、より詳しくは、ロジックダイ(logic die)上のプロセッサ及びメモリーコントローラーを含む高帯域幅メモリーシステム(HBM: High Bandwidth Memory)でのプロセシング方法に関する。
【背景技術】
【0002】
図1は高帯域幅メモリー(HBM+)システムのブロック図である。
【0003】
図1を参照すれば、従来のHBMシステムは一般的に1つのマスター(master)を使用して、マスターは一般的に対応するメモリーをコントロールするため使用されるオフ(off)−メモリーホストコントローラーである。
【0004】
しかし、HBM+システム100において、1つのスレーブ(slave)(例えば、DRAM(Dynamic Random Access Memory)ダイ110上の動的ランダムアクセスメモリー(DRAM)のような揮発生メモリーであるメインメモリー)はマスターとして2つのメモリーコントローラー120を有する。2つのマスターはオフ−HBMメモリーコントローラー及びHBM160のHBMロジックダイ140に位置するオン(on)−HBMメモリーコントローラーである。HBMロジックダイ140はHBM160である3D−スタック(stack)メモリーの最下位レイヤー(layer)に対応できる。一方、DRAMダイ110はHBM160の上位レイヤーの中の1つに対応できる。HBMロジックダイ140は「ニア(near)」メモリーコントローラー(NMC)を使用してDRAMダイ110をコントロールでき、DRAMダイ110をコントロールするためにプロセッサ(PU)170により指示される。
【0005】
オフ−HBMメモリーコントローラーは、ホストメモリーコントローラー120a(例えば、中央処理装置(CPU)、グラフィック処理装置(GPU)又は加速処理装置(APU)130のホストメモリーコントローラー120a)と称される。オン−HBMメモリーコントローラーは調整メモリーコントローラー120bと称され、HBMロジックダイ140に位置する。
【0006】
ホストメモリーコントローラー120aは、調整メモリーコントローラー120bよりDRAMダイから遠く離れた位置にあるので、遠隔メモリーコントローラー又は「ファー(far)」メモリーコントローラー(FMC)と見なされる。調整メモリーコントローラー120bはDRAMダイ110に対する接近性に起因して、ローカルメモリーコントローラー又は「ニア(near)」メモリーコントローラー(NMC)120bと見なされる。ホストメモリーコントローラー120a及び調整メモリーコントローラー120bの中の1つ又は両者は、一般的なメモリーコントローラーとして示される。
【0007】
なお、ホストメモリーコントローラー120a及び調整メモリーコントローラー120bは非同期的に通信できる。従って、ホストメモリーコントローラー120a及び調整メモリーコントローラー120bが、両者同時にDRAMにアクセスを試みる場合、問題が発生する。
【0008】
他の分野(例えば、AXI(Advanced eXtensible Interface)のようなトランザクション(transaction)基盤のプロトコルを使用するシステム−オン−チップ(SoC))において、2つの他の全てのメモリーコントローラーによる同時アクセスの試みから発生する衝突に対する潜在的な解決策は、中央アービター(arbiter)/中央集権されたコントローラーとしてバスアービターを用いることを包含する。バスアービターは、各バスサイクル(cycle)に対しバスをコントロールするため許容されるバスマスターを決定し、全ての構成要素の状態を追跡できる。従って、2つの他のメモリーコントローラーはメモリーにアクセスするための許可をバスアービターへ要請でき、バスアービターはメモリーコントローラーの中の1つにアクセスを許可できる(即ち、選択されないマスターから干渉なしに選択されたマスター及びスレーブ間の通信を可能にする時において、ひたすら1つのマスターに対するアクセスを許可する)。以後、アクセスが許可された、選択されたメモリーコントローラーはメモリーにアクセスすることができ、そして/又はメモリーはメモリーコントローラーに応答できる。
【0009】
しかし、前記潜在的解決策はHBM+システム100に適用できない。トランザクション基盤のプロトコルと異なり、HBMはハンドシェーキング(handshaking)の動作を支援せず、これはHBM160から任意のメモリーコントローラー120へフィードバック信号がないことを意味する。なお、従来のHBMのHBMロジックダイは、HBMロジックダイ内で単独にコンピューティング機能を遂行できない。
【0010】
なお、これはトランザクション基盤のプロトコルと異なり、HBMは非決定論的タイミングを支援せず、これはホストメモリーコントローラー120aがHBM160へ要請を伝送すれば、HBM160が予測可能な時間内に応答することを、ホストメモリーコントローラー120aが期待することを意味する。即ち、メモリコントローラー120中の1つが命令又は要請を伝送すれば、HBM160が適切に要請されたデータの提供を確実にするため、HBM160は与えられた時間内(例えば、約30ナノセカンド(nanosecond)以内)に応答しなければならない。
【0011】
前記の情報は、専ら本発明の実施例の背景技術に対する理解を増進させるためのものであり、これによって先行技術にはない情報を包含する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国登録特許第7877558B2号公報
【特許文献2】米国登録特許第8266393B2号公報
【特許文献3】米国登録特許第8854387B2号公報
【特許文献4】米国登録特許第9317429B2号公報
【特許文献5】米国登録特許第9619408B2号公報
【特許文献6】米国登録特許第9632775B2号公報
【特許文献7】米国公開特許第2015/0293864A1号公報
【特許文献8】米国公開特許第2017/0147429A1号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明は、前述した技術的課題を解決するためのものとして、ホストメモリーコントローラーと調整メモリーコントローラーがメモリーの同一のアドレスにアクセスする場合、バンク衝突(bank conflict)を防止できる高帯域幅メモリーシステムを提供できる。
【課題を解決するための手段】
【0014】
本発明の実施例によると、高帯域幅メモリー(HBM+)システムにおいて、メモリーコマンドを調整する方法は、ホストメモリーコントローラーコマンドをホストメモリーコントローラーからメモリーへ伝送する場合、調整メモリーコントローラーから前記ホストメモリーコントローラーコマンドを受信するステップと、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達するステップと、前記調整メモリーコントローラーが前記ホストメモリーコントローラーコマンドに基づいて調整メモリコントローラーコマンドをスケジューリングするステップと、を包含する。
【0015】
前記ホストメモリーコントローラーコマンドに基づいて、前記調整メモリーコントローラーコマンドをスケジューリングするステップは、前記ホストメモリーコントローラーコマンドを調整メモリーコントローラーコマンドキューに有る前記調整メモリーコントローラーコマンドと比較するステップと、前記比較に基づいて、前記調整メモリーコントローラーコマンドのスケジューリングを調整するステップと、を包含する。
【0016】
前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーコマンドと比較するステップは、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を決定するステップを包含し、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが、前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーコマンドが処理されたことで示されるまで、追加メモリーコマンドが前記ホストメモリーコントローラーから前記共通バンクへ伝送されることを防止するステップをさらに包含する。
【0017】
前記方法は、前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するステップをさらに包含し、前記設定合意は同一なアドレスをデコーディングする時、前記ホストメモリーコントローラー及び前記調整メモリーコントローラーの全てが、前記メモリー内の同一の位置を示す前記ホストメモリコントローラー及び前記調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する。
【0018】
前記方法は、前記ホストメモリコントローラーコマンドとして前記ホストメモリコントローラーからPIM(Process−In−Memory)コマンドを伝送するステップと、前記ホストメモリコントローラーが前記調整メモリコントローラー及び前記ホストメモリコントローラー間のデータバスをモニターするステップと、前記モニターする間に、前記PIMコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのPIM完了応答を感知するステップと、をさらに包含する。
【0019】
前記方法は、前記調整メモリーコントローラーが前記PIMコマンドを処理するための推定残余時間を判断するステップを包含し、PIM完了応答で前記PIMコマンドが処理されなかった場合、前記PIM完了応答で前記推定残余時間を示すステップと、前記PIM完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するステップと、をさらに包含する。
【0020】
前記推定残余時間を判断するステップは、前記調整メモリーコントローラーの調整メモリーコントローラーコマンドのキューをスキャンするステップと、前記調整メモリーコントローラーコマンドのキューにおいて処理されていない未処理メモリーコマンドを識別するステップと、前記未処理メモリーコマンドのそれぞれに対する推定時間を判別するステップと、前記推定残余時間を決定するため、前記推定時間を合算するステップと、を包含する。
【0021】
前記方法は、前記PIMコマンドと時間終了値を連結するステップと、前記時間終了値に対応する時間以内に前記PIMコマンドが処理されない場合、前記ホストメモリーコントローラーからのメモリー要請の伝送を防止するステップと、をさらに包含する。
【0022】
前記方法は、前記ホストメモリーコントローラーが、前記PIMコマンドを処理するための推定残余時間示す前期PIM完了応答を要請するポーリング(polling)コマンドを伝送することで、前記調整メモリーコントローラーをポーリングするステップをさらに包含し、前記ポーリングコマンドは、前記調整メモリーコントローラーが前記PIM完了応答を通常伝送するより、もっと速く前記調整メモリーコントローラーが前記PIM完了応答を伝送するように惹起させる。
【0023】
前記方法は、前記ホストメモリーコントローラーが前記PIMコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定するステップを包含し、時間終了値に対応する時間以内に前記PIMコマンドが処理されないことを判断する場合、前記ホストメモリーコントローラーが前記PIMコマンドの優先順位を上げるように前記優先順位フィールドを変更するステップと、前記調整メモリーコントローラーが調整メモリーコントローラーコマンドのキューから前記PIMコマンドの優先順位を上げるステップと、他のメモリーコマンドを処理する前に、前記PIMコマンドを処理するステップと、を包含する。
【0024】
本発明の実施例によると、高帯域幅メモリー(HBM+)システムは、調整メモリーコントローラーと、ホストメモリーコントローラーと、メモリーと、命令語を実行するように構成されるプロセッサと、を含んで、前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、ホストメモリーコントローラーのコマンドを前記ホストメモリーコントローラーから前記メモリーへ伝送する場合、前記調整メモリーコントローラーから前記ホストメモリーコントローラーのコマンドを受信し、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーが前記メモリーへ伝達し、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーにより調整メモリコントローラーのコマンドをスケジュールするように惹起する。
【0025】
前記プロセッサは、前記ホストメモリーコントローラーのコマンドと調整メモリーコントローラーコマンドのキューに存在する前記調整メモリーコントローラーのコマンドとを比較し、前記比較に基づいて前記調整メモリーコントローラーコマンドのスケジュールを調整することにより、前記ホストメモリーコントローラーコマンドに基づいて前記調整メモリーコントローラーのコマンドをスケジュールするように構成される。
【0026】
前記プロセッサは、前記ホストメモリーコントローラーコマンド及び調整メモリーコントローラーコマンドが前記メモリーの共通バンクに対しスケジュールされたかの可否を判断して、前記ホストメモリーコントローラーコマンドを前記調整メモリーコントローラーと比較するように構成され、前記プロセッサにより前記命令語が実行される時、前記命令語は、前記ホストメモリーコントローラーコマンド及び前記調整メモリーコントローラーコマンドが前記共通バンクに対しスケジュールされた場合、前記調整メモリーコントローラーのコマンドが処理されたと示されるまで、前記プロセッサが追加メモリーコマンドを前記ホストメモリーコントローラーから前記共通バンクへの伝送を防止するように、さらに惹起する。
【0027】
前記プロセッサにより前記命令語が実行される場合、前記命令語は前記プロセッサが前記ホストメモリーコントローラー及び前記調整メモリーコントローラー間の設定合意を設定するようにもっと惹起でき、前記設定合意は同一なアドレスをデコーディングする時、前記ホストメモリーコントローラー及び調整メモリーコントローラーの全てが前記メモリー内の同一な位置を示すように前記ホストメモリーコントローラー及び調整メモリーコントローラーが従う共通アドレスマッピングの技法を包含する。
【0028】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが前記ホストメモリーコントローラーコマンドとして前記ホストメモリーコントローラーからPIM(Process−In−Memory)コマンドを伝送し、前記ホストメモリーコントローラーが前記調整メモリーコントローラー及び前記ホストメモリーコントローラー間のデータバスをモニターし、前記モニターする間、前記PIMコマンドが処理されたかの可否を示す前記調整メモリーコントローラーからのPIM完了応答を感知するように、さらに惹起する。
【0029】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、前記調整メモリーコントローラーに前記PIMコマンドを処理するための推定残余時間を判断し、前記PIM完了応答で前記PIMコマンドが処理されなかったことを示す場合、前記PIM完了応答で前記推定残余時間を表し、前記PIM完了応答を前記調整メモリーコントローラーから前記ホストメモリーコントローラーへ伝送するように、さらに惹起する。
【0030】
前記プロセッサにより前記命令語が実行される時、前記命令語は前記プロセッサが、前記PIMコマンドと時間終了値を連関させ、前記時間終了値に対応する時間以内に前記PIMコマンドが処理されなかったことを判断した場合、前記ホストメモリーコントローラーからのメモリー要請を伝送することを防止するように、さらに惹起する。
【0031】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが前記ホストメモリーコントローラーを用いて、前記ホストメモリーコントローラーが前記PIMコマンドを処理するための推定残余時間を示す前記PIM完了応答を要請するポーリング(polling)コマンドを伝送して、前記調整メモリーコントローラーをポーリングするようにさらに惹起し、前記ポーリングコマンドは調整メモリーコントローラーが前記PIM完了応答ぼ通常伝送より、もっと速く前記調整メモリーコントローラーが前記PIM完了応答を伝送するように惹起させる。
【0032】
前記プロセッサにより前記命令語が実行される時、前記命令語は、前記プロセッサが、前記ホストメモリーコントローラーに前記PIMコマンドの優先順位を示す前記ポーリングコマンドの優先順位フィールドを設定し、時間終了値に対応する時間以内に前記PIMコマンドが処理されないことを判断した場合、前記ホストメモリーコントローラーに前記PIMコマンドの優先順位を上げるように前記優先順位フィールドを変更し、前記調整メモリーコントローラーに調整メモリーコントローラーコマンドキューから前記PIMコマンドの優先順位を上げ、他のメモリコマンドを処理する前に、前記PIMコマンドを処理するように、さらに惹起する。
【0033】
本発明の実施例によると、高帯域幅メモリー(HBM+)システムは、HBMと、ホストメモリーコントローラーと、を含んで、前記HBMは、DRAMを含むDRAMダイと、前記DRAMダイをコントロールするためのプロセッサ、内部プロセッサ、比較器、スケジューラ(scheduler)及びコマンドキューを含む調整メモリーコントローラーを含むロジックダイと、を含み、前記HBMから分離されてメモリーコマンドを前記DRAMダイ上の前記DRAMへ伝送するように構成されたメモリーコントローラーを含み、前記調整メモリーコントローラーは前記メモリーコマンドを受信し、前記メモリーコマンドを前記DRAMダイ上の前記DRAMへ伝達するように構成され、前記比較器は前内部プロセッサからの他のメモリーコマンドを前記ホストメモリーコントローラーからの前記メモリーコマンドと比較するように構成され、前記スケジューラは前記比較器による比較によって前記コマンドキューの前記内部プロセッサからの前記メモリーコマンドと前記ホストメモリーコントローラーからの前記メモリーコマンドをスケジュールするように構成される。
【発明の効果】
【0034】
本発明によると、ホストメモリーコントローラー及び調整メモリーコントローラーが同一のメモリーバンクにアクセスする場合、バンク衝突を防止できる。
【0035】
本発明によると、ホストメモリーコントローラーのコマンドと調整メモリーコントローラーのコマンドを効率的にスケジュールして高帯域幅メモリーシステムの性能を向上できる。
【図面の簡単な説明】
【0036】
図1】高帯域幅メモリー(HBM+)システムのブロック図である。
図2】本発明の1つの実施例による高帯域幅メモリー(HBM+)システムのブロック図である。
図3】PIM完了応答の伝達を示すタイミング図である。
図4】ポーリング(polling)コマンドに応答してPIM完了応答の伝達を示すタイミング図である。
【発明を実施するための形態】
【0037】
以下の詳細な説明においては、本発明の特定の実施例が図面を通じて図示説明する。当業者が認識するのと同じように、本発明は多様な形式で具現でき、本明細書に記載された実施例に制限されるものと解釈されてはいけない。各実施例の特徴又は態様の説明は、典型的に他の実施例において他の類似した特徴又は態様に利用されうるものと考慮されなければならない。同一の参照番号は本明細書で同一の要素を示す。
【0038】
本発明の思想の特徴及び本発明の思想を達成する方法は、次の実施例の詳細な説明及び添付した図面を参照することにより、より容易に理解できる。本明細書において、添付した図面を参照して実施例を詳細に説明し、図面において同一の参照番号は同一の要素を示す。しかし、本発明は多様な他の形態で具現でき、本明細書において説明する実施例に制限、解釈されてはならない。尚、斯かる実施例を、本発明が徹底かつ完璧になるための例示として提供し、当技術分野の熟練した技術者に本発明の態様及び特徴を完全に伝達できる。従って、本発明の態様及び特徴の完璧な理解のため、当技術分野で通常の知識を有する者(当業者)に必要ではないプロセス、要素及び技法は説明しない。別に言及しない限り、同一の参照番号は添付した図面及び詳細な説明の全体にかけて同一の要素を示し、よってその説明は反復しない。図面において、要素、レイヤー及び領域の相対的な大きさは明確性のため誇張する。
【0039】
以下において、説明の目的のため、多様な実施例の完璧な理解を提供するため多様な特定の細部事項を記載する。しかし、多様な実施例は、斯かる特定の細部事項なしに又は1つ以上の同等な方式を有して実行できる。他の例示において、多様な実施例が不必要に曖昧になることを防止するため、よく知られた構造及び装置はブロック形態で示す。
【0040】
要素、レイヤー、領域又は構成要素が他の要素、レイヤー、領域又は構成要素と「連結」されるとか「上」にあるとかと示す場合、他の要素、レイヤー、領域又は構成要素と直接連結されるとかすぐ上に有り、又は1つ以上の間に入る要素、レイヤー、領域又は構成要素が存在できる。しかし、「直接連結」は、1つの構成要素が中間の構成要素なしに他の構成要素と直接連結されることを示す。一方、「間の」、「隣接した」又は「すぐ隣接した」のような構成要素間の関係を説明する他の表現は同様に解釈されるべきである。なお、要素又はレイヤーが2つの要素又はレイヤーの「間」にあると言及する場合、2つの要素又はレイヤーの間の唯一の要素又はレイヤーであり、又は1つ以上の間に入る要素及びレイヤーが、なお存在できる。
【0041】
本明細書において、使用する用語は、特定の実施例を説明するための目的だけであり、本発明を制限するためのものではない。本明細書で使用されるように、文脈が明確に他のものを示さない限り、単数形は複数形を包含する。「包含する」、「包含する〜」、「有する」、「有する〜」の用語は、本明細書で使用される場合、明示した特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれのグループの存在又は追加を制限するものではない。本明細書で使用する「及び/又は」の用語は、連関された羅列項目の中の1つ以上のある組み合わせ又は全ての組み合わせを包含する。
【0042】
本明細書で使用する「相当に」、「約」、「大略的に」の用語と類似の用語は、近似の用語として使用され、程度の用語として使用されるものではなく、技術分野で当業者により認識されうる測定又は計算された値に内在された偏差を説明する。「約」又は「大略的に」は、特定の量の測定と連関した測定及びエラーを考慮して(例えば、測定システムの限界)、本明細書で使用するように、技術分野で通常の技術の中の1つにより決定されたもので特定の値に対する許容可能な偏差の範囲以内の値及び手段を包含する。例えば、「約」は、1つ以上の標準偏差以内又は記述された値の30%、20%、10%、5%以内を意味する。なお、本発明の実施例を説明する場合、「できる」の使用は「本発明の1つ以上の実施例」を示す。本明細書で使用する「使用する」、「使用する〜」及び「使用された〜」の用語は、「活用する」、「活用する〜」及び「活用された〜」の用語とそれぞれ同義語と考慮できる。なお、「例示的な」の用語は、例示又は説明を示す。
【0043】
特定の実施例が、異なるように具現されうる場合、特定のプロセスの順序は、説明した順序と異なるように遂行できる。例えば、2つの連続的に説明したプロセスは、ほぼ同一の時間に遂行されうるか説明した順序と反対の順序に遂行されうる。
【0044】
実施例の図式化された図面及び/又は中間構造である断面図を参照して、本明細書で多様な実施例を説明する。これによって、例えば、製造技法及び/又は誤差の結果として図面の形状からの変形が予想される。なお、本明細書において開示する特定の構造的又は機能的説明は、単に本発明の概念に沿って実施例を説明するための目的で説明する。従って、本明細書で開示する実施例は、領域の特定の図示形状に制限されると解釈されてはならないが、例えば、製造による形状の偏差を包含する。例えば、四角形として図示する埋入領域は、一般的に、円形又は曲線でできた特徴および/又は注入された領域から注入されない領域までのバイナリー(binary)変化より領域の端で埋入集中の傾き(gradient:グラジエント)を有するはずである。同様に、注入によって形成された埋入領域は、埋入領域および注入が発生した表面間の領域で注入を惹起できる。従って、図面に図示した領域は、本質的に図式化されたものであり、図示された領域の形状は、装置の領域の実際の形状を示すためのものではないし、制限するためのものでもない。
【0045】
本発明の実施例による電子又は電気装置および/又は他の関連された装置又は構成要素は、任意の適切なハードウェア、ファームウェア(例えば、応用注文型集積回路(application−specific integrated circuit)、ソフトウェア又はソフトウェア、ファームウェア及びハードウェアの組み合わせを活用して具現できる。例えば、斯かる装置の多様な構成要素は一つの集積回路(IC: Integrated Circuit)チップ又は別のICチップ上に形成できる。なお、斯かる装置の多様な構成要素は、フレキシブル印刷回路フィルム(flexible printed circuit film)、テープキャリアパッケージ(TCP: Tape Carrier Package)、印刷回路基板(PCB: Printed Circuit Board)上に具現でき、又は一つの基板上に形成できる。なお、斯かる装置の多様な構成要素は、一つ以上のコンピューティング装置において一つ以上のプロセッサにより実行されて、コンピュータプログラムの命令を実行して、本明細書で説明する多様な機能を遂行するための他のシステムの構成要素と相互作用するプロセス又はスレッド(thread)である。コンピュータプログラムの命令は、例えば、ランダムアクセスメモリー(RAM: Random Access Memory)のような標準メモリー装置を用いて、コンピューティング装置で具現されるメモリーに貯蔵される。なお、コンピュータプログラムの命令は、例えば、CD−ROM、フラッシュドライブなどの他の非一時的コンピュータ判読可能なメディアに貯蔵できる。なお、当技術分野において通常の技術者(当業者)にとって多様なコンピューティング装置の機能は、一つのコンピューティング装置に結合されるか統合されうるのは自明であり、又は特定のコンピューティング装置の機能は、本発明の実施例の思想及び範囲から逸脱しない一つ以上のコンピューティング装置を通じて分散されうるのは自明である。
【0046】
別に定義しない場合、本明細書で使用する全ての用語(技術的及び科学的用語を含む)は、本発明が属する技術分野の通常の技術者(当業者)により、一般的に理解されるのと同一の意味を有する。一般的に、使用される辞典に定義された用語は、関連された技術及び/又は本明細書の文脈での意味と一致する意味を有すると解釈されるべきであり、本明細書において特別に定義しない場合、理想的又は形式的に解釈し過ぎてはならない。
【0047】
図2は、本発明の一つの実施例による高帯域幅メモリー(HBM+)システムのブロック図である。
【0048】
図2を参照すると、本発明の実施例は、HBM+システム200の環境においてホストメモリーコントローラー220a及び調整メモリーコントローラー220bの活動を調整するためのシステム及び方法を提供する。従って、プロセシングタイプのメモリー活動(DRAM及びPIM(Processing−In−Memory)活動)は、機能の正確性を保障するため適切にスケジュールされ、これによってメモリーシステムの性能を向上させる。
【0049】
本発明のHBM+システム200において、調整メモリーコントローラー220bはDRAM210に対する補助マスターとして動作し、ホストメモリーコントローラー220aは基本マスターとして動作する。調整メモリーコントローラー220bは、DRAM210へ伝送されるホストメモリーコントローラー220aのコマンドをインターセプト(intercept)でき、ホストメモリーコントローラー220aからのコマンドを全てDRAM210へ伝達でき、これによってDRAM210に意図された方式によりホストメモリーコントローラー220aへ応答させる。
【0050】
調整メモリーコントローラー220bは、ホストメモリーコントローラー220aのコマンドを受信しながら、調整メモリーコントローラー220bのコマンドをスケジュールするためスケジューラ275を使用する。他のメモリーコントローラー220からメモリーコマンドがDRAM210の他のバンクへ伝送されると、他のメモリーコマンドは互いに独立的である。しかし、DRAM210の同一のDRAMバンクに対し他のメモリーコントローラー220からのメモリーコマンドがスケジュールされた場合、複数のメモリーコマンドは衝突し、これはシステムの性能に否定的な影響を与える。
【0051】
メモリーコマンドの衝突から発生する問題を防止するため、調整メモリーコントローラー220bは、調整メモリーコントローラー220bのスケジューリング決定を調整するため、ホストメモリーコントローラー220aからのコマンドを利用する。例えば、ホストメモリーコントローラー220aのコマンドには、調整メモリーコントロ−ラー220bのコマンドより高い優先順位が与えられる。従って、調整メモリーコントローラー220bのスケジューラ275は、設定合意によるホストメモリーコントローラー220aのコマンドに基づいてDRAM210へ伝送されるDRAMコマンドをスケジュールし、これによって、ホストメモリーコントローラー220aからの普通のDRAM要請は、ホストメモリーコントローラー220aにより予想されたように、DRAM210がホストメモリーコントローラー220aに応答するようにさせる。即ち、以下に説明するように、設定されて、同意されたアドレスマッピング技法によってバンク衝突を防止するため、調整メモリーコントローラー220b及びホストメモリーコントローラー220aは、設定合意の共通規則に従う。
【0052】
調整メモリーコントローラー220bのスケジューラ275は、調整メモリーコントローラー220bのコマンドキュー280とホストメモリーコントローラー220aからのコマンドを比較するため、比較器278を利用し、比較結果に基づいてコマンドスケジューリングを調整し決定することでスケジューリングを遂行できる。従って、2つのメモリーコントローラー220からのコマンドの衝突がある場合、メモリーコントローラーの中の1つは、競合コマンドの完了を待機する。調整メモリーコントローラー220bの比較器278は、2つのコマンドのセット(例えば、調整メモリーコントローラー220bからの1つのコマンドセット及びホストメモリーコントローラー220aからの他のコマンドセット)を比較する。調整メモリーコントローラー220bが両者のコマンドセットがDRAM210の同一のバンクにスケジュールされたと判断する場合、調整メモリーコントローラー220bは、ホストメモリーコントローラー220aのコマンドが完了されるまで待機し、以後調整メモリーコントローラー220bに対応するコマンドをスケジュールするためスケジューラを利用できる。
【0053】
又は、ホストメモリーコントローラー220aは、基本マスターとして使用されるので、調整メモリーコントローラー220bは、一般的にホストメモリーコントローラー220aによりどのような要請が伝送されるかを見守り、調整メモリーコントローラー220bのスケジューラ275はバンク衝突を防止するための責任が有る。例えば、ホストメモリーコントローラー220aは、PIM(Processing−In−Memory)要請をDRAM210の第1バンクへ伝送でき、第1バンクに対応するPIMの処理が完了するまで調整メモリーコントローラー220bの同一の第1バンクへのコマンドの伝送を防止でき、これによって機能的正確性を保障し、調整メモリーコントローラー220bに対するスケジューリング複雑度及びリソース要求事項を減少させる。
【0054】
従って、ホストメモリーコントローラー220a及び調整メモリーコントローラー220b間の設定合意は、機能的正確性を保障してHBMインターフェース及びプロトコルを維持しながらバンク衝突を防止する。なお、ホスト230からの一般的なメモリー要請は、希望どおり持続的に進行できる。
【0055】
前述したように、特定のアドレスに対して、ホストメモリーコントローラー220a及び調整メモリーコントローラー220bのそれぞれは、DRAM210内部の実際の対応位置を正確に探し出すか示すため、共通アドレスマッピングの技法を使用する。DRAM210は、チャンネル、バンク、行及び列で構成されるから、異なるタイプのアドレスマッピングの技法は、特定のアドレスに対応するDRAM210での位置を決定するために使用されるかもしれない。設定合意により、ホストメモリーコントローラー220a及び調整メモリーコントローラー220bは、メモリー要請が「間違って理解」されないように同一のアドレスマッピングの技法を使用する。
【0056】
アドレスマッピングによると、ホストメモリーコントローラー220aは、行(Row_CA)252に対するコマンドアドレス及び列(Col_CA)254に対するコマンドアドレスを伝送できる。そうして、調整メモリーコントローラー220bは、調整メモリーコントローラー220bのコマンドアドレスデコーダー277に基づいて、ホストメモリーコントローラー220aからのコマンドが示すものを判断できる。そうして、調整メモリーコントローラー220bのコマンドアドレスデコーダー277は、実際の行コマンドアドレス256及び/又は実際の列コマンドアドレス258を判別でき、又はコマンドがPIMコマンドアドレス262に対応するかを判別できる。
【0057】
コマンドがPIMコマンドに対応しない場合、比較器278で比較が遂行され、入力されるRow_CA256及びCol_CA258は、コマンドキュー280内のコマンドと比較される。比較に基づいて、調整メモリーコントローラー220bのスケジューラ275は、コマンドキュー280内でコマンドのスケジューリングを調整できる。本発明の実施例において、コマンドキュー280にあるコマンドは、活性化コマンド(ACT)、リードコマンド(RD)、ライトコマンド(WR)及びプリチャージ(PRE)に該当し、これはDRAM210が理解できるコマンドを示す。それぞれのコマンドに対応するのは、「準備(R)」又は「準備されないこと(N)」を示す状態指示子であり、これはスケジューラ275が、いつコマンドがスケジュールされるかを判別するのに利用される。
【0058】
又は、ホストメモリーコントローラー220aは、一般的なDRAMアクセスコマンドから区別されるように、PIMコマンド/PIM要請の伝送を試みる。調整メモリーコントローラー220bのコマンドアドレスデコーダー277によりデコーディング動作が遂行された後、コマンドが一般的なDRAMコマンドであれば、コマンドはDRAM210へ直接伝達されるはずである。対照的に、調整メモリーコントローラー220bにより受信されたコマンドがPIMコマンドに変換されると、PIMコマンドはPIMデコーダー264により追加的に復号化され、コマンドキュー280内で処理される(例えば、コマンドアドレスデコーダー277から、PIMコマンドはPIMコマンドアドレス(PIM_CA)262に変換され、PIMデコーダー264が復号したPIMコマンドをコマンドキュー280へ伝送できるようにPIMデコーダー264へ伝送される。
【0059】
図3は、PIM完了応答の伝達を示すタイミング図である。
【0060】
図2及び図3を参照すれば、調整メモリーコントローラー220bは補助マスターであるから、調整メモリーコントローラー220bはコマンドをスケジュールしようとする場合、より低い優先順位となる。従って、調整メモリーコントローラー220bは動作を遂行してスケジュールされたコマンドを完了するため、より多くの時間を必要とする。調整メモリーコントローラー220bでの処理は非決定的であり、調整メモリーコントローラー220bは決定された時間内にPIMコマンドを完了できないから(PIMコマンドは基本マスターであるホストメモリーコントローラー220aからの普通のメモリー要請により遅延されるから)、調整メモリーコントローラー220bは任意のPIM要請/PIMコマンドの状態をホストメモリーコントローラー220aに明示的に知らせる。
【0061】
よって、PIMコマンド310がホストメモリーコントローラー220aから伝送された後、ホストメモリーコントローラー220aは、毎PIM時間間隔320/PIM_ACK時間(tPIM)ごとに一回ずつデータバス(DQバス)284をモニターでき、これはHBM+システム200の一貫したクロックサイクル数に対応する時間間隔であり、これは同期式ダブルデータレート(DDR: Double Data Rate)に対応できる。ホストメモリーコントローラー220aは、PIM完了応答330/PIM応答パケット(PIM_ACK)を感知するためDQバス284をモニターし続け、PIM完了応答330はPIMコマンド310の処理が完了されたかの可否を示す。PIM完了応答330は調整メモリーコントローラー220bのPIM完了応答生成器288により生成される。
【0062】
DQバス284において、調整メモリーコントローラ220bはPIM完了応答330に対応する情報を含むパケットに応答できる。PIM完了応答330は、サンプリングされた時間(例えば、毎PIM時間間隔320ごとに一回ずつ)に調整メモリーコントローラー220bにより伝送される。PIM完了応答330は、完了状態ビットに対応する一つのビットを含む256ビットのメッセージとしてインスタンス化され、これは調整メモリーコントローラー220bのPIM完了状態レジスター286により設定され、関連されたDRAM活動が終了される時、設定される。PIM完了応答330の完了状態ビットが「間違い」(false)を示す場合、DQバス284をモニターし続ける。しかし、PIM完了応答330が、完了状態ビットが「真実」(true)を示すと、ホストメモリーコントローラー220aは伝送されたPIMコマンド310が完了され、成功的に表示されたことを知る。
【0063】
なお、PIM完了応答330の一部又は全ての残りのビットは完了まで残っている推定時間を提供するのに利用される(例えば、PIM完了応答330の完了状態ビットがPIMコマンド310がまだ完了されなかったことを示す場合)。例えば、調整メモリーコントローラー220bは、PIMコマンド310の完了までに残っている推定時間を推定するため、推定器292を包含する。調整メモリーコントローラー220bは内部動作の状態を知ることができるので、調整メモリーコントローラー220bの推定器292はコマンドキュー280をスキャンして、コマンドキュー280の未処理のコマンドのそれぞれに対する推定時間の量を決定して推定された時間を全て合算し、調整メモリーコントローラー220bが、PIMコマンド310を完了するためどれぐらいの追加時間が予想されるかを推定できる。その後、PIM完了状態レジスター286はDRAM完了状態指示子268が示されると、関連DRAM活動が終了されたと設定する。従って、調整メモリーコントローラー220bはPIM完了応答330で示される推定残余時間でホストメモリーコントローラー220aに応答できる。
【0064】
従って、一部の追加DQバスの帯域幅は、各PIM時間間隔320に対するPIMコマンド310の完了指示のためDQバス284へのパケット伝送に使用されるが、HBMインターフェース及びプロトコルはコマンドバスの帯域幅を浪費せずに維持される。
【0065】
図4は、ポーリングコマンドに応答してPIM完了応答の伝達を示すタイミング図である。
【0066】
図2及び図4を参照すれば、調整メモリーコントローラー220bにより伝送されたPIM完了応答330で示された推定残余時間が少ない場合、ホスト230はポーリングコマンド(PIM_POLL)410を用いてPIM完了状態を能動的にポーリング(polling)するため、ホストメモリーコントローラー220aを利用する。これによって、ホスト230はホストメモリーコントローラー220aがPIMコマンド310の処理のため、残っている時間をもっと正確に知ることができる。
【0067】
ポーリングコマンド410を受信した後、調整メモリーコントローラー220bはPIM完了応答330を返信する(例えば、PIM時間間隔320より短い間隔であり得るtPIM_POLL時間420以内)。従って、ホストメモリーコントローラー220aは、調整メモリーコントローラー220bにより伝送される任意のPIM完了応答330で、通常より速くPIMコマンド310の予想完了に関する情報を受信できる。任意のPIM完了応答330は、前述したように、毎PIM時間間隔320ごとにただ一回ずつ発生する。例えば、HBMシステムに対する現在のスペックに基づいてtPIM_POLL時間420は約3ナノセカンドと推定されるが、PIM時間間隔320は約50ナノセカンド以上と推定される。サンプル完了時間が約50ナノセカンドであり、推定残余時間がたまに極めて短いことも有り得るから、実際の応答状態を受信するため追加的に50ナノセカンドを待機するのは適切でない。従って、ポーリングコマンド410はHBM+システム200の効率性及び性能を向上させる。
【0068】
能動的なポーリングにより提供される利点は、サンプル完了時間が提供されながら、なおホストメモリーコントローラー220aにもっと速く応答状態を受信させるものである。しかし、能動的なポーリングを具現するため新たなコマンドが使用されるので、新たなコマンドを具現するため余分のコマンドバス帯域幅が使用される。
【0069】
上述したPIM完了応答330及びポーリングコマンド410と関連して、DRAM210からのデータ経路は、MUX282により制御される。MUX282はデータをDRAM210からホストメモリーコントローラー220aへ再び伝送するか、データを調整メモリーコントローラー220b内部のプロセッサ270へ再び伝送する。データが調整メモリーコントローラー220bの内部動作のため使用される場合、データはプロセッサ270へ送られる。しかし、データがホストメモリーコントローラー220aに対する応答の場合、データはホストメモリーコントローラー220aへ送られる。DQバス284は、普通のデータ又はPIM完了応答330を伝達するため使用される。
【0070】
HBMインターフェース及びプロトコルが維持されて、ホストからの普通のメモリーアプリケーション要請が希望通り進行されても、調整メモリーコントローラー220bの優先順位は低いので、対応するコマンドは適切なものより遅く完了する。なお、ホストメモリーコントローラー220aからのコマンドをデコーディングするための追加サイクルが使用される。
【0071】
本発明によると、与えられたPIMコマンド310の優先順位は、PIMコマンド310が願う時間以内に完了されるように設定される。優先順位を設定するための、斯かる優先順位の情報はPIMコマンド310及び/又はポーリングコマンド410に内蔵される。
【0072】
例えば、調整メモリーコントローラー220bが永久的にPIMコマンド310の処理完了を失敗する状況を防止するため、ホストメモリーコントローラー220aは適切なスケジューリングを決定し、及び/又は調整メモリーコントローラー220bへ優先順位の情報を伝送できる。調整メモリーコントローラー220bは、補助マスターとして、一般的にホストメモリーコントローラー220aの命令をスケジュールするから、ホストメモリーコントローラー220aが命令を伝送し続ける状況は、調整メモリーコントローラー220bが調整メモリーコントローラー220bのPIMコマンド310に対する動作をスケジュールできないようにする。従って、それぞれのPIMコマンド310は時間終了値と連関される。時間終了値に到達した後(例えば、十分な時間が過ぎた後)ホストメモリーコントローラー220aにより受信されたPIM完了応答330が相変わらず失敗であれば、ホストメモリーコントローラー220aはHBMチャンネルへ普通のメモリー要請の伝送を中断し順序を変え、PIMコマンド310をスケジュールできる調整メモリーコントローラー220bに対する機会を提供し、従ってPIMコマンド310の完了が可能となる。
【0073】
なお、調整メモリーコントローラー220bは、向上された性能のため順序が変わり、PIMコマンド310をスケジュールできる。これはPIMコマンド310の中の遅く要請されたコマンド以後、発生したPIMコマンド310(先に要請された)の中の一部の実行を惹起できる。調整メモリーコントローラー220bが相対的に高い優先順位を有するPIMコマンドを実行できるように、PIMコマンド310において優先順位のフィールドはホストメモリーコントローラー220aにより設定される。即ち、ホストメモリーコントローラー220aは、調整メモリーコントローラー220bが優先順位のフィールドをデコーディングするとすぐに、PIMコマンド310を即時実行すべきかを知ることができるように、優先順位のフィールドを設定できる。
【0074】
なお、ポーリングコマンド410に優先順位のためのフィールドが有る。従って、ホストメモリーコントローラー220aは、以前発行されたPIMコマンド310の優先順位を変更できる。例えば、ホストメモリーコントローラー220aが、PIMコマンド310完了のため許容できない長い時間の所要を認識すれば、ホストメモリーコントローラー220aは、PIMコマンド310がもっと速く完了されるようにするため、優先順位のフィールドを用いることによりPIMコマンド310の優先順位を速くし、調整メモリーコントローラー220bは高い優先順位でPIMコマンドの実行を始める。
【0075】
従って、本発明の前述した実施例は、高帯域幅(HBM+)システムを提供する。
【0076】
前述した内容は、実施例を示すものであり、これに限定されるものではない。いくつかの実施例を説明したが、当技術分野の通常の技術者(当業者)は実施例の新規な開示及び利点から実質的に逸脱しないながら、実施例から多様な修正が可能であることを容易に認識するはずである。従って、このような全ての修正は、請求項に定義されたように実施例の範囲内に含まれると意図する。請求の範囲において、機能的請求項は記述した機能を遂行する本明細書で説明した構造及び構造的等価物だけではなく、等価構造を包含するように意図する。従って、前述した内容は実施例を示すものであり、開示した特定の実施例に制限されるものと解釈されるべきでないことは自明であり、他の実施例だけではなく開示した実施例に対する修正は添付した請求項の範囲に含まれるものと意図する。本発明の思想は特許請求の範囲により定義される。
【産業上の利用可能性】
【0077】
本発明は、メモリーコントローラーを含む高帯域幅システムにおいて、バンク衝突の防止に有用である。
【符号の説明】
【0078】
100,200 HBM+システム
110,210 DRAM
120、220 メモリーコントローラー
120a、220a ホストメモリーコントローラー
120b、220b 調整メモリーコントローラー
130 加速処理装置
140 HBMロジックダイ
160 HBM
170,270 プロセッサ
230 ホスト
252 行
254 列
256 行コマンドアドレス
258 列コマンドアドレス
262 PIMコマンドアドレス
264 PIMデコーダー
268 DRAM完了状態指示子
275 スケジューラ
277 コマンドアドレスデコーダー
278 比較器
280 コマンドキュー
282 MUX
284 DQバス
286 PIM完了状態レジスター
288 PIM完了応答生成器
292 推定器
310 PIMコマンド
320 PIM時間間隔
330 PIM完了応答
410 ポーリングコマンド
420 tPIM_POLL時間
図1
図2
図3
図4