(57)【要約】集積回路デバイスは、メモリに接続可能なメモリコントローラを含む。メモリコントローラは、メモリの領域へのメモリアクセスを、領域に特有なメモリタイミングパラメータに基づいてスケジューリングする。方法は、メモリデバイスでメモリアクセス要求を受信することを含む。方法は、メモリアクセス要求によって目標とされるメモリセル回路の領域に特有のメモリタイミングパラメータを表すデータに対して、メモリデバイスのタイミングデータストアからアクセスすることを更に含む。また、方法は、メモリコントローラで、前記データに基づいてメモリアクセス要求をスケジューリングすることを含む。【選択図】図１
2016520226.tif 000002
【特許請求の範囲】
【請求項１】
メモリの複数の領域のうちある領域へのメモリアクセスを、前記領域に特有のメモリタイミングパラメータに基づいてスケジューリングすること、
を備える方法。
【請求項２】
前記領域について対応するメモリタイミングパラメータを測定することと、
測定された前記メモリタイミングパラメータを表すタイミング情報をデータストアに保持することと、を更に備え、
前記領域への前記メモリアクセスをスケジューリングすることは、前記領域に特有の前記メモリタイミングパラメータを表すデータに対して前記データストアからアクセスすることを含む、請求項１に記載の方法。
【請求項３】
前記領域について対応するメモリタイミングパラメータを測定することは、電力投入リセット、タイマの経過、検知された温度変化、及び、コントローラからのトリガ、のうち少なくとも１つに応じて、前記領域について対応するメモリタイミングパラメータを測定することを含む、請求項２に記載の方法。
【請求項４】
前記領域について対応するメモリタイミングパラメータを測定することは、
前記領域の複数のサブ領域の各々について対応するメモリタイミングパラメータを測定することと、
前記領域についての前記メモリタイミングパラメータとして、前記サブ領域の最も遅いメモリタイミングパラメータを識別することと、を含む、請求項２に記載の方法。
【請求項５】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記メモリタイミングパラメータは、行−列間コマンド遅延（ｔＲＣＤ）、列コマンドとデータ出力との間の時間（ｔＣＬ）、列コマンド間の時間（ｔＣＣＤ）、事前充電時間（ｔＲＰ）、最小行開放時間（ｔＲＡＳ）、マルチバンク活性化ウィンドウ（ｔＦＡＷ）、読出しと書込みとの間の時間（ｔＷＴＲ）及び書込み回復時間（ｔＷＲ）のうち少なくとも１つを備える、請求項１に記載の方法。
【請求項６】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記領域は、一組の１つ以上のセル、一組の１つ以上の行、一組の１つ以上のアレイ、一組の１つ以上のバンク、一組の１つ以上のランク、一組の１つ以上のチップ、及び、一組の１つ以上のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）、のうち１つを備える、請求項１に記載の方法。
【請求項７】
集積回路（ＩＣ）デバイスであって、
メモリに接続可能なメモリコントローラを備え、
前記メモリコントローラは、前記メモリの領域へのメモリアクセスを、対応する領域に特有のメモリタイミングパラメータに基づいてスケジューリングする、ＩＣデバイス。
【請求項８】
前記メモリの少なくとも１つの領域について対応するメモリタイミングパラメータを測定するプロファリングロジックと、
測定された前記メモリタイミングパラメータを表すタイミング情報を保持するタイミングデータストアと、を更に備え、
前記メモリコントローラは、対応する領域に関して実行されるメモリアクセスに応じて、前記領域に特有のメモリタイミングパラメータを表すデータにアクセスし、アクセスされた前記データに基づいて前記メモリアクセスをスケジューリングする、請求項７に記載のＩＣデバイス。
【請求項９】
前記メモリを備える一組の１つ以上の積層メモリダイと、
前記積層メモリダイに電気的に接続された一組の１つ以上のロジックダイであって、前記メモリコントローラ及び前記プロファリングロジックを備える一組の１つ以上のロジックダイと、を含む積層ダイメモリデバイスを更に備える、請求項８に記載のＩＣデバイス。
【請求項１０】
前記一組の１つ以上のロジックダイは、前記タイミングデータストアを実装する、請求項９に記載のＩＣデバイス。
【請求項１１】
前記一組の１つ以上の積層メモリダイは、前記タイミングデータストアを実装する、請求項９に記載のＩＣデバイス。
【請求項１２】
前記一組の１つ以上の積層メモリダイ及び前記一組の１つ以上のロジックダイは、前記一組の１つ以上のロジックダイが前記一組の１つ以上の積層メモリダイに対して一組のスルーシリコンビアを介して接続された積層構造体に配置されている、請求項９に記載のＩＣデバイス。
【請求項１３】
前記プロファイリングロジックは、対応する領域について前記対応するメモリタイミングパラメータを、
前記対応する領域の複数のサブ領域の各々について対応するメモリタイミングパラメータを測定することと、
前記対応する領域についての前記メモリタイミングパラメータとして、前記サブ領域の最も遅いメモリタイミングパラメータを識別することと、
によって測定する、請求項８に記載のＩＣデバイス。
【請求項１４】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記領域は、一組の１つ以上のセル、一組の１つ以上の行、一組の１つ以上のアレイ、一組の１つ以上のバンク、一組の１つ以上のランク、一組の１つ以上のチップ、及び、一組の１つ以上のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）、のうち１つを備える、請求項７に記載のＩＣデバイス。
【請求項１５】
積層ダイメモリデバイスにおいてメモリアクセス要求を受信することであって、前記積層ダイメモリデバイスは、メモリセル回路を備える一組の１つ以上の積層メモリダイと、前記一組の１つ以上の積層メモリダイに電気的に接続された一組の１つ以上のロジックダイとを備え、前記一組の１つ以上のロジックダイはメモリコントローラを備える、ことと、
前記メモリアクセス要求によって目標とされる前記メモリセル回路の領域に特有のメモリタイミングパラメータを表すデータに対して前記積層ダイメモリデバイスのタイミングデータストアからアクセスすることと、
前記メモリコントローラにおいて、前記データに基づいて前記メモリアクセス要求をスケジューリングすることと、
を備える方法。
【請求項１６】
前記メモリセル回路の一組の１つ以上の領域ごとに、前記領域について対応するメモリ性能パラメータを測定し、前記領域について測定された前記メモリ性能パラメータを表すデータを前記タイミングデータストアに記憶すること、
を更に含む、請求項１５に記載の方法。
【請求項１７】
前記領域について前記メモリ性能パラメータを測定することは、電力投入リセット、タイマの経過、検知された温度変化、及び、コントローラからのトリガ、のうち少なくとも１つに応じることを含む、請求項１６に記載の方法。
【請求項１８】
前記領域について前記対応するメモリタイミングパラメータを測定することは、
前記領域の複数のサブ領域の各々について対応するメモリタイミングパラメータを測定することと、
前記領域についての前記メモリタイミングパラメータとして、前記サブ領域の最も遅いメモリタイミングパラメータを特定することと、を含む、請求項１６に記載の方法。
【請求項１９】
前記タイミングデータストアは、前記一組の１つ以上の積層メモリダイに実装されている、請求項１５に記載の方法。
【請求項２０】
前記タイミングデータストアは、前記一組の１つ以上のロジックダイに実装されている、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してメモリデバイスに関し、より詳細には、メモリデバイスへのメモリアクセスをスケジューリングすることに関する。
【背景技術】
【０００２】
メモリレイテンシ（ｍｅｍｏｒｙ  ｌａｔｅｎｃｙ）及び帯域幅は、多くの処理システムにおける重大な性能ボトルネックである。これらの性能ファクタは、通常、メモリセルアクセス時間と、メモリ内の種々の相互接続を通過する信号の伝搬遅延と、から影響を受ける。従来のメモリコントローラの実装では、メモリサブシステムへのメモリアクセスをスケジューリングするために最悪ケースの手法が採られ、これによりメモリコントローラは、メモリサブシステム全体に適合するような固定の最悪ケースのメモリタイミングパラメータを想定している。
【０００３】
本開示は、添付図面を参照することでより良く理解され、その多数の構成及び有利な効果が当業者に明らかなものとなる。異なる図面における同様の符号の使用は、類似または同一のものを示している。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態による、領域特有のメモリアクセススケジューリングを有するメモリを採用した、例示的な処理システムを示す図である。
【図２】いくつかの実施形態による、図１の処理システムの例示的な縦型積層ダイ実装の分解斜視図である。
【図３】いくつかの実施形態による、図１の処理システムの他の例示的な縦型積層ダイ実装の分解斜視図である。
【図４】いくつかの実施形態による、タイミングプロファイラを採用した例示的なメモリコントローラを示す図である。
【図５】いくつかの実施形態による、メモリのメモリタイミングパラメータをプロファイリングするための方法を示すフロー図である。
【図６】いくつかの実施形態による、領域特有のメモリタイミングパラメータに基づいてメモリアクセスをスケジューリングする処理を示すタイミング図である。
【図７】いくつかの実施形態による、領域特有のメモリタイミングパラメータに基づいてメモリアクセスをスケジューリングするメモリコントローラを実装した集積回路（ＩＣ）デバイスを設計及び製造するための方法を示すフロー図である。
【発明を実施するための形態】
【０００５】
図１〜７は、領域特有のメモリタイミングパラメータに基づくメモリアクセススケジューリングの使用によって、処理システムまたは他の電子装置のメモリサブシステムの呼出し時間（ｌａｔｅｎｃｙ）を低減し、帯域幅及び電力効率を改善するための例示的な技術を示している。半導体製造プロセス、デバイス温度及び経時変化のばらつき（ｖａｒｉａｔｉｏｎ）などの種々の要因によって、メモリの異なる領域へのメモリアクセスに対するメモリセルアクセス時間及び信号伝搬時間が大きく変動する。この要因は、電力削減のために供給電圧をトランジスタの閾値電圧（Ｖｔｈ）レベルまで低下させる場合に特に有害なものとなる。従来のシステムでは、これらの性能のばらつきは、通常、メモリアクセスの目標の領域にかかわらず、最悪ケースのシナリオに基づく保守的なタイミングパラメータを選択し、メモリアクセスごとにこれらと同様の保守的なタイミングパラメータを用いることによって管理されている。一方、いくつかの実施形態では、メモリコントローラは、メモリの複数の領域ごとに１つ以上のメモリタイミングパラメータをプロファイリングし、測定されたタイミングパラメータをタイミングデータストアに記憶し、メモリアクセスの目標の領域に対応する、プロファイリングされた領域特有のメモリタイミングパラメータに基づいて、メモリへのメモリアクセスをスケジューリングすることによって、メモリアクセスをより効率的にスケジューリングする。したがって、メモリコントローラは、異なるメモリ領域によって示される異なるメモリタイミングをメモリアクセスのタイミング及び順序付け（ｓｅｑｕｅｎｃｉｎｇ）が反映するように、メモリの異なる領域間の性能のばらつきを利用することによって、呼出し時間を低減し、メモリサブシステムの電力効率を向上することができる。プロファイリングされたメモリ領域の粒度（ｇｒａｎｕｌａｒｉｔｙ）は、例えば、１つ以上のセル、行、バンク、ランク、チップ、メモリモジュール（例えば、デュアルインラインメモリモジュール、すなわち「ＤＩＭＭＳ」）、チャネルなどの組を含むことができる。
【０００６】
積層ダイ、すなわち三次元（３Ｄ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）に基づくメモリサブシステムは、大きなオンチップキャッシュとしての使用のために検討されることが多い。しかし、ＤＲＡＭアーキテクチャの所定の態様に起因して、ダイ間のプロセスのばらつきに起因して、及び、積層ダイメモリにおけるメモリダイの積層配置を結果として生じさせる相互接続構成に起因して、かかるメモリサブシステムは、領域間のメモリタイミングの大きなばらつきを示すことが多い。これにより、領域ごとのメモリタイミング情報を局所的に記憶する能力との関係で、積層ダイメモリは、領域ベースのメモリアクセススケジューリングに適したものとなる。したがって、積層ダイＤＲＡＭメモリの例示的な状況における例示的な領域ベースのメモリアクセススケジューリング技術が、本明細書に記載される。ただし、かかる技術は、この例示的な状況に限定されることなく、例えばスタティックランダムアクセスメモリ（ＳＲＡＭ）、強誘電体ＲＡＭ（ＦＲＡＭ（登録商標））、磁気抵抗ＲＡＭ（ＭＲＡＭ）、相変化ＲＡＭ、抵抗変化型ＲＡＭ、フラッシュメモリなどを含む（が、これらに限定されない）任意の様々な積層型または非積層型メモリアーキテクチャにも同様に適用可能である。
【０００７】
いくつかの実施形態による、領域ベースのメモリアクセススケジューリングを行う例示的な処理システム１００を図１に示す。処理システム１００は、ノートブックまたはタブレットコンピュータ、デスクトップコンピュータ、サーバ、ネットワークルータ、スイッチまたはハブ、演算処理可能な携帯電話、パーソナルデジタルアシスタント、ゲームコンソールなどを含む様々な処理システムの何れかを有している。処理システム１００は、単一のダイ上、または、後述する例に示す複数の積層ダイを含む複数のダイ上に実装される。
【０００８】
図示した例では、処理システム１００は、１つ以上のプロセッサ１０１と、１つ以上のメモリコントローラ１０２と、メモリアレイ１０４と、を含む。プロセッサ１０１は、例えば１つ以上の中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）などの、１つ以上のプロセッサコア１１６を含む。プロセッサ１０１は、集積ノースブリッジ１２０と、入出力（Ｉ／Ｏ）コントローラ１２２と、１以上のレベルのキャッシュ１１８と、などを更に含む。ノースブリッジ１２０は、ホストバス１２６を介してメモリコントローラ１０２に接続されている。ホストバス１２６は、例えばＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−Ｅｘｐｒｅｓｓ（ＰＣＬ−Ｅ）アーキテクチャ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔアーキテクチャ、ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＱＰＩ）アーキテクチャなどの、様々な従来的な相互接続またはバスアーキテクチャの何れかによって実装されてもよい。代替的に、ホストバス１２６は、独自のバスアーキテクチャによって実装されてもよい。Ｉ／Ｏコントローラ１２２は、例えばディスプレイコンポーネント、記憶装置、入力装置（例えば、マウスまたはキーボード）などへの１つ以上の外部インターフェイスなどの、１つ以上の外部装置１２４に接続されてもよい。
【０００９】
システム１００の処理コンポーネントは、メモリコントローラ１０２とメモリアレイ１０４とを有するメモリサブシステムに接続されている。メモリアレイ１０４は、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、フェロエレクトリックＲＡＭ（Ｆ−ＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）など（これらに限定されない）のメモリアーキテクチャを含む様々な記憶装置の何れかを実装してもよい。本開示の目的上、ＤＲＡＭアレイ及びＤＲＡＭメモリコントローラを含む環境における種々の実施形態を説明する。この例示的な環境では、メモリアレイ１０４は、複数のＤＲＡＭアレイ１０６を備えている。後述するように、メモリサブシステムは、積層ダイメモリデバイスとして実装されており、これにより、ＤＲＡＭアレイ１０６は、例えば、積層ダイメモリ内で独立したメモリダイとして実装され得る。
【００１０】
動作中、メモリコントローラ１０２は、処理システム１００の処理コンポーネントによって発行されたメモリ読出し及びメモリ書込み要求を処理する。この目的のため、メモリコントローラ１０２は、ＤＲＡＭアレイ１０６にアクセスするためのコントローラロジック１０８であって、ホストバス１２６とのインターフェイスのためのコントローラロジック１０８を実装する。コントローラロジック１０８は、メモリアクセス要求に応じて、ＤＲＡＭアレイ１０６に対してコマンドを発行する。コントローラロジック１０８は、対応するアドレスへの読出し要求に応じて、アドレス指定された位置で記憶データを読み出すように信号をＤＲＡＭアレイ１０６に送信する。コントローラロジック１０８は、書込み要求に応じて、アドレス指定された位置にデータを書き込むように信号をＤＲＡＭアレイ１０６に送信する。
【００１１】
各メモリトランザクションの正しい動作は、例えば、特定のラインのデータへのアクセスを無効化することと、他のラインのデータへのアクセスを有効化することと、の間で必要とされる時間を反映するＲＡＳプリチャージ、すなわち「ｔＲＰ」タイミングパラメータなどの、所定のメモリタイミングパラメータに従うコントローラロジック１０８に基づいている。実装において、メモリタイミングパラメータの一部または全部は、アクセスされているメモリアレイ１０４の領域に応じて変動し得る。したがって、いくつかの実施形態では、コントローラロジック１０８は、性能及び効率が向上するように、領域特有のメモリタイミングパラメータに基づいて、メモリ要求を、バッファリングし、再順序付けし、または、スケジューリングするように構成されている。また、この目的のため、メモリコントローラ１０２は、プロファイリングロジック１１０とタイミングデータストア１１２とを実装しており、領域特有のメモリタイミング情報を決定して記憶する。図４及び図６を参照して詳細を後述するように、いくつかの実施形態では、プロファイリングロジック１１０は、メモリアレイ１０４の１つ以上のメモリ領域の組の各々のメモリ領域を評価して、その領域特有の１つ以上のメモリタイミングパラメータを決定する。そして、その領域に関するメモリタイミング情報は、例えばメモリアレイ、一組のレジスタまたはキャッシュ、ブルームフィルタ、連想記憶装置（ＣＡＭ）などの、様々な記憶機構の何れかを備えるタイミングデータストア１１２で保持され得る。そのように解析されたメモリアレイ１０４の領域の粒度（ｇｒａｎｕｌａｒｉｔｙ）は、セルベースの領域と、バンクベースの領域と、行（ｒｏｗ）ベースの領域と、チャネルベースの領域と、チップベースの領域と、メモリモジュールベースの領域などと、これらの組合せと、を含み得るが、これらに限定されない。
【００１２】
プロファイリングロジック１１０は、トリガイベントに応じて、メモリアレイ１０４のうち適用可能な領域ごとに、対応するメモリタイミングパラメータを測定するテスト処理を開始する。このトリガイベントは、例えば、電源投入リセット、タイマの経過、プロセッサ１０１または他のコントローラからのコマンド、閾値を超えて検知された温度変化（これにより、温度によって誘発され得るタイミングパラメータの変化が示される）、動的電圧及び周波数スケーリング（ＤＶＦＳ）の動作中に起きたトリガ、などを含み得る。テスト処理は、例えば、適用可能なメモリタイミングパラメータの値を変化させつつ、対応する領域に対するテストパターンを繰り返し書込んで順次アクセスすることを含み得る。また、タイミングパラメータは、異なる温度若しくは処理時間の下での呼出し時間値を保持し、または、温度及び処理時間を入力として用いて呼出し時間を計算するのに使用される数式の記述を記憶するテーブルへの参照を行うことによって、更新され得る。信頼性のある最小のメモリタイミングパラメータが、このテスト処理を介して領域に対して識別されると、プロファイリングロジック１１０は、これらの識別されたメモリタイミングパラメータを表すデータをタイミングデータストア１１２に記憶し得る。いくつかの実施形態では、タイミングデータストア１１２は、一組のレジスタ、キャッシュまたはＣＡＭとして実現され、データは、領域に対応付けられた位置に記憶される。他の実施形態では、タイミングデータストア１１２は、ブルームフィルタまたは他の圧縮データ構造体として実現され、これに応じて、当該データは圧縮データ構造体に含まれる。
【００１３】
標準的な動作の過程において、メモリパラメータタイミング情報は、コントローラロジック１０８によってタイミングデータストア１１２でアクセス可能である。コントローラロジック１０８は、プロセッサ１０１からメモリアクセス要求を受信したことに応じて、メモリアクセス要求によって目標とされたアドレスを用いて、目標アドレスに対応付けられた領域に対応付けられているメモリタイミング情報にアクセスする。この領域特有のメモリタイミング情報があれば、コントローラロジック１０８は、より効率的にメモリアクセスをスケジューリングするように、メモリの所与の領域について記憶されたメモリタイミングパラメータに従ってメモリアレイ１０４に送られたメモリコマンドのタイミングを管理することができる。例えば、コントローラロジック１０８は、メモリ読出し要求がメモリコントローラ１０２によって受信されると、メモリ読出し要求のアドレスに基づいてアクセスされるメモリの領域を識別し、プロファイリングロジック１１０及びタイミングデータストア１１２と通信して、当該領域についてのメモリタイミングパラメータを特定する。そして、コントローラロジックは、記憶されたタイミングパラメータに従ってコマンドをスケジューリングし、ＤＲＡＭアレイ１０６に送信する。図４を参照して後述するように、このコマンドのスケジューリングは、異なるタイミングでの多重アクセスに起因するデータバス衝突などのリソース衝突がないことを確実にすることを含む。
【００１４】
メモリダイの積層配置では、メモリタイミングパラメータの大きなばらつきに直面することがある。領域ベースのメモリアクセススケジューリング技術を実装するメモリコントローラは、これらのばらつきを利用してメモリリクエストをより効率的にスケジューリングすることができ、これによりメモリダイの積層配置に適したものとなる。
【００１５】
図２は、いくつかの実施形態による、積層ダイ処理システム２００としての処理システム１００の例示的な実装の分解斜視図を示している。図示した例では、積層ダイ処理システム２００は、図示した縦型配置で積層されており、スルーシリコンビア（ＴＳＶ）２１８を介して相互接続されたダイ２０２，２０４，２０６，２０８，２１０及び２１２（ここでは、まとめて「ダイ２０２−２１２」という）などの複数のダイを含む。図示した例では、積層メモリダイ２０６，２０８，２１０及び２１２は、メモリアレイ１０４（図１）のＤＲＡＭアレイ１０６（図１）を形成するメモリセル回路２３０を実装している。したがって、ダイ２０６−２１２を、ここでは「メモリダイ」という。メモリセル回路２３０は、ＤＲＡＭという例示の構成で記載されているが、ＤＲＡＭ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、読出し専用メモリ（ＲＯＭ）、フラッシュメモリ、フェロエレクトリックＲＡＭ（Ｆ−ＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）など（これらに限定されない）を含む様々なメモリアーキテクチャの何れかを実現するものであればよい。
【００１６】
ダイ２０２は、１つ以上のプロセッサコア２２１，２２２とキャッシュ２２４とを含む、上述したプロセッサ１０１の処理コンポーネントを実装しており、ここでは「プロセッサダイ２０２」という。ダイ２０４は、メモリコントローラ１０２を実装しており、メモリコントローラ１０２は、プロファイリングロジック１１０を含む。メモリコントローラ１０２は、積層ダイ２０６−２１２のメモリ回路にアクセスするとともに、読出し及び書込みメモリアクセス要求を処理するダイ２０２に対するインターフェイスとなる有線ロジックを実装している。また、ダイ２０２，２０４は、ノースブリッジ、サウスブリッジ、入出力コントローラ、ネットワークインターフェイスなどの様々な周辺デバイスの何れかを含むことができる。したがって、ダイ２０２，２０４を、ここでは「ロジックダイ」という。
【００１７】
タイミングデータストア１１２は、キャッシュ、ＣＡＭ、ブルームフィルタまたはレジスタセットとして、積層ダイ処理システム２００のロジックダイに実装され得る。例示すると、タイミングデータストア１１２は、不揮発性メモリ（例えば、フラッシュメモリ）として、メモリコントローラ１０２の他のコンポーネントとともにダイ２０４に実装され、メモリコントローラ１０２のプロファイリングロジック及びコントローラロジック１０８によるメモリタイミング情報への適時的なアクセスを促進する。他の実施形態では、積層ダイ処理システム２００は、１つ以上のメモリダイのメモリセル回路２３０にタイミングデータストア１１２を実装することによって、メモリアレイ１０４の大量の記憶容量を活かすことができる。更に他の実施形態では、タイミングデータストア１１２は、ロジックダイ及びメモリダイの双方を用いて実装されてもよい。例示すると、タイミングデータストア１１２は、ロジックダイ上の小型キャッシュ及びメモリダイ上の大型キャッシュとして実装され、小型キャッシュがメモリの最新のアクセスに係る領域についてのメモリタイミング情報を記憶し、大型キャッシュが全メモリ領域についてのメモリタイミング情報を記憶することができる。
【００１８】
いくつかの実施形態では、プロセッサ１０１及びメモリコントローラ１０２のコンポーネントは、複数のダイにわたって他の組合せで区画されてもよいし、単一のダイに実装されてもよい。例示すると、メモリコントローラ１０２及びプロセッサ１０１は、同じダイに実装されてもよい。他の実施例として、プロセッサ１０１があるダイに実装され、コントローラロジック１０８（図１）及びメモリインターフェイス１１４（図１）が第２のダイに実装され、プロファイリングロジック１１０及びタイミングデータストアが第３のダイに実装されてもよい。
【００１９】
積層メモリサブシステムは、通常、メモリレイヤ２０６−２１２を製造するのとは異なる半導体製造プロセスがロジックダイ２０４を製造するのに用いられるように、個別のロジックレイヤを採用してメモリコントローラ及び関連するロジック機能を実現する。したがって、処理システム２００の縦型ダイ積層体は、様々な３Ｄ集積回路製造プロセスの何れかを用いて製造されればよい。ある手法では、ダイ２０２−２１２の各々は、能動デバイスと、活性表面（ａｃｔｉｖｅ  ｓｕｒｆａｃｅ）に形成された１つ以上の金属結線レイヤと、を有する個別の基板（例えば、バルクシリコン）として実現される。この手法は、ダイのマトリクスを備えたウエハが製造及び薄型化されるウエハ・オン・ウエハプロセスを含むことができ、ＴＳＶがバルクシリコンを介してエッチングされる。そして、複数のウエハが積層されて、図示のレイヤ構成（例えば、３層のメモリレイヤのためのメモリ回路ダイを備えた４枚のウエハ及びロジックレイヤのためのロジックダイを備えた１枚のウエハからなる積層体）となり、整列され、熱圧縮を介して接合される。得られた積層ウエハのセットは、個々の３ＤのＩＣデバイスを分離するように個別化される。
【００２０】
ダイ・オン・ダイプロセスでは、３ＤのＩＣデバイスを製造するために、対応するレイヤをそれぞれ実装するウエハがまず個別化されてから、ダイが個別に積層及び接合される。ダイ・オン・ウエハ手法では、１つ以上のレイヤ用のダイを生成するために、１つ以上のレイヤのためのウエハが個別化されてから、これらのダイが整列され、他のウエハの対応する領域に結合され、その後に個々の３ＤのＩＣデバイスを製造するために個別化される。ダイ２０２−２１２を個別のウエハ上で製造することの１つの利点は、メモリダイ（ダイ２０６−２１２）を製造するために使用されるものとは異なる製造プロセスを用いて、ロジックレイヤ（ダイ２０２−２０４）を製造することができる点である。したがって、ダイ２０２，２０４を製造するために、向上した性能及びより低い電力消費を与える製造プロセスを用いる（したがって、より速く且つより低い電力のインターフェイスロジック及び回路を、メモリコントローラ２１４及びプロファイラ２１６に与える）ことができ、一方で、ダイ２０６−２１２を製造するために、向上したセル密度及び向上した漏れ制御を与える製造プロセスを用いる（したがって、より高密度な低漏れビットセルを、積層メモリに与える）ことができる。
【００２１】
他の手法では、レイヤ２０２−２１２は、単一の基板を用いて、先行のダイのレイヤ上に各ダイのレイヤをイオンカットプロセスなどのレイヤ移動プロセスを用いて形成するというモノリシック３Ｄ製造プロセスを用いて製造される。積層されたメモリデバイスは、技術の組合せを用いて製造されてもよい。例えば、ロジックレイヤ（ダイ２０４，２０６）がモノリシック３Ｄ技術を用いて製造されてもよいし、メモリレイヤ（ダイ２０６−２１２）がダイ・オン・ダイまたはウエハ・オン・ウエハ技術を用いて製造されてもよいし、その逆であってもよい。その後、得られたロジックレイヤ積層体及びメモリレイヤ積層体が相互に結合され、インターポーザ基板に結合されてもよい。
【００２２】
処理システム１００及び処理システム２００の各々は、メモリコントローラ１０２の単一の構成を実装するが、他の実施形態では、システム性能を高めるために、複数のメモリコントローラが実装され、各メモリコントローラがシステムメモリの個別の部分を制御してもよい。複数のメモリコントローラの各々は、本明細書に記載された、領域ベースのメモリアクセススケジューリング技術の個別の構成を実装してもよい。
【００２３】
図３は、いくつかの実施形態による、複数のメモリコントローラを有する積層ダイ処理システム３００としての処理システム１００の例示的な分解斜視図である。図示した例では、積層ダイ処理システム３００は、ダイ３０２と、ダイ３０４，３０６，３０８，３１０，３１２（まとめて「ダイ３０４−３１２」という）からなる縦型積層メモリサブシステムと、を含む側方分割配置で構成されている。ダイ３０２は、１つ以上のプロセッサコア３０１，３０３と、キャッシュ３０５などとを含むプロセッサ１０１の構成要素を実装している。図示した例では、ダイ３０６−３１２は、メモリアレイ１０４（図１）のメモリセル回路３３０を実装している。ホストバス３２２は、ダイ３０２とダイ３０４とを接続している。ダイ３０４は、２つのメモリコントローラ３１４，３１６（図１のメモリコントローラ１０２の実施形態）とともにプロファイリングロジック３１８及びプロファイリングロジック３２０（図１のプロファイリングロジック１１０の実施形態）を実装している。メモリコントローラ３１４，３１６の各々は、メモリ帯域幅及びスループットを増加させるために、取り付けられたメモリアレイのうち対応する独立した部分を制御する。プロファイリングロジック３１８は、メモリコントローラ３１４によって処理されるメモリアレイ１０４の領域についてのメモリタイミング情報を保持するように動作し、プロファイリングロジック３２０は、メモリコントローラ３１６によって処理されるメモリアレイ１０４の領域についてのメモリタイミング情報を保持するように動作する。
【００２４】
図示した処理システム３００は、様々なパッケージ化技術で実現され得る。いくつかの実施形態では、ダイ３０４−３１２として実現されるメモリサブシステムは、ダイ３０２とともにインターポーザの表面上に水平に配置された個別の縦型積層体として実現される。本実施形態では、ホストバス３２２は、インターポーザの金属レイヤで実装されたコンダクタを含み得る。他の実施形態では、プロセッサダイ３０２と、ダイ３０４−３１２の積層体とは、個別の集積回路（ＩＣ）パッケージに含まれてもよい。かかる例では、ＩＣパッケージは、回路基板または同様の基板と、パッド、ピン、トレース、ビア、半田バンプなどと、を含む回路基板のコンダクタを用いて実現されたホストバス３２２上に載置され得る。
【００２５】
図４は、いくつかの実施形態による、メモリコントローラ１０２のより詳細な例を示す図である。図示した例では、メモリコントローラ１０２は、ホストインターフェイス４０４と、アービタ４０６と、プロファイリングロジック４１０（図１のプロファイリングロジック１１０に対応）と、タイミングデータストア４１２（図１のタイミングデータストア１１２に対応）と、コマンド（ＣＭＤ）入力キュー４１３と、書込みキュー４１４と、読出しキュー４１５と、スケジューラ４２０と、物理インターフェイス（ＰＨＹ）４２２と、を含む。アービタ４０６、キュー４１３，４１４，４１５、スケジューラ４２０は、ともにコントローラロジック１０８（図１）を形成している。ホストバス４０２は、ホストインターフェイス４０４をプロセッサ１０１（図１）に結合しており、これにより、ホストインターフェイス４０４は、メモリコントローラ１０２に送信されるメモリアクセス要求を表す信号を、ホストバス４０２を介して受信及びバッファリングする。また、ホストインターフェイスは、プロセッサ１０１に対するメモリアクセス要求応答を、ホストバス４０２を介して送信する。アービタ４０６は、ホストインターフェイス４０４及びプロファイリングロジック４１０からメモリアクセス要求を受信し、複数のコマンド及びメモリ書込み要求をそれぞれバッファリングするコマンド入力キュー４１３及び書込みキュー４１４における衝突を解決する。これらのコマンド及び書込み要求は順に記憶されるが、性能を向上するために、順番通りに選択及び実行されなくてもよい。読出しキュー４１５は、ホストインターフェイス４０４への送信のためにアービタ４０６によって選択される前に、メモリ読出し要求に対する応答をバッファリングする。
【００２６】
スケジューラ４２０は、キュー４１３，４１４からメモリアクセス要求を選択し、これらの要求をＤＲＡＭコマンドシーケンスに変換する。いくつかの実施形態では、スケジューラ４２０は、キューに入れられたメモリアクセス要求を再順序付けするための一組のアルゴリズム及びヒューリスティックを実行する。これらのアルゴリズム及びヒューリスティックは、メモリアレイ１０４（図１）へのＰＨＹ４２２を介したアクセスのスケジュールを生成するために、例えば、バンク、行及び列、領域特有のメモリタイミングパラメータなどのＤＲＡＭ構造を考慮することができる。スケジューラ４２０は、メモリ要求を再順序付けすることによって、メモリサブシステムの呼出し時間を短縮し、帯域幅を改善することができる。
【００２７】
ＤＲＡＭ動作の各々は、例えば内部バンク、アドレスライン及びデータラインなどの種々のＤＲＡＭリソースにおいて異なる要求及び請求を生成する。スケジューラ４２０は、メモリアクセス要求のスケジュールを生成する場合に、可能性のあるリソース衝突を考慮し、必要なリソースが適時に利用可能となることを確実にする。また、スケジューラ４２０は、リソース制約を考慮することに加えて、正しい動作を確実にするために、ＤＲＡＭタイミング制約及びタイミングパラメータに準拠するスケジュールを生成する。スケジューラ４２０によって考慮されるＤＲＡＭタイミングパラメータの例は、以下に限定されないが、行−列間コマンド遅延（ｔＲＣＤ）パラメータ、列コマンドとデータ出力との間の時間（ｔＣＬ）パラメータ、列コマンド間の時間（ｔＣＣＤ）パラメータ、事前充電時間（ｔＲＰ）パラメータ及び最小行開放時間（ｔＲＡＳ）パラメータを含む。
【００２８】
従来のシステムでは、これらのメモリタイミングパラメータは、通常、アクセスされているメモリの領域を特に考慮することなくメモリコントローラに読み込まれ、メモリアクセス要求をスケジューリングするために適用される。一方、上述したように、メモリコントローラ１０２は、いくつかの実施形態において、メモリアクセス要求をスケジューリングする場合に、領域ごとにメモリタイミングパラメータを考慮する。この目的のため、プロファイリングロジック４１０は、メモリアレイ１０４の一組の領域の各領域についてのメモリタイミングパラメータの１つ以上をテスト及び測定するロジックを実装している。ＤＲＡＭの例では、測定されるＤＲＡＭタイミングパラメータは、以下に限定されないが、ｔＲＣＤ（行−列間コマンド遅延）、ｔＣＬ（列コマンドとデータ出力の間の時間）、ｔＣＣＤ（列コマンド間の時間）、ｔＲＰ（事前充電時間）、ｔＲＡＳ（最小行開放時間）、ｔＦＡＷ（マルチバンク活性化ウィンドウ）、ｔＷＴＲ（読出しと書込みとの間の時間）、ｔＷＲ（書込み回復時間）などを含み得る。ＤＲＡＭ以外のメモリ技術を利用するアレイにおいては、タイミング情報は、それらのタイプのメモリについての他のタイミングパラメータを適宜含み得る。プロファイリングロジック４１０は、メモリ読出し及びメモリ書込みコマンドのシーケンスを生成し、テストされているパラメータを変動させつつ結果を観測することによって、タイミングパラメータの測定を実現することができる。図示した例では、プロファイリングロジック４１０は、コマンドのシーケンスを生成し、最終的にはキュー４１３，４１４に入るようにコマンドのシーケンスをアービタ４０６に送信する。他の実施形態では、メモリコントローラ１０２は、プロファイリングロジック４１０によって生成されたテスト用シーケンスのための個別のキューを実装している。メモリアレイ１０４の領域は、セルに基づくもの、行に基づくもの、バンクに基づくもの、ランクに基づくもの、チップに基づくものなどであってよい。さらに、プロファイリングロジック４１０は、異なるレベルの領域粒度性を保持する。例えば、プロファイリングロジック４１０は、あるバンクの各行に適合するＤＲＡＭタイミングパラメータを特定することができるが、他のバンクのサブ領域上で（例えば、他方のバンクについて行ごとの基準に基づいて）ＤＲＡＭタイミングパラメータを特定することができる。かかる構成では、サブ領域は、対応する領域（例えば、バンク領域のサブ領域が行であり、行領域のサブ領域がビットセルまたはその行のビットセルのサブ集合となるなど）と比べて小さい単位の粒度性となる。さらに、メモリ領域の粒度性は、メモリタイミングパラメータに依存し得る。例えば、プロファイリングロジック４１０は、ｔＲＣＤパラメータを行ごとに追跡しつつ、ｔＲＰパラメータをバンクごとに追跡し得る。
【００２９】
領域ごとのタイミングパラメータ解析は、様々なトリガイベントの何れかによってトリガされてもよい。例えば、プロファイリングロジック４１０は、周期的な再評価を開始する１つ以上の静的または構成可能なトリガタイマを含んでもよい。他の例として、トリガイベントは、所定のシステムイベント、または、例えばオペレーティングシステム、ハイパーバイザ、基本入出力システム（ＢＩＯＳ）、ファームウェア若しくはこれらの組合せによって開始された再評価信号などの、他のシステム構成要素によって誘導された信号を含むことができる。例えば、ＢＩＯＳは、システム起動時に、プロファイリングロジック４１０に対して、起動処理の早い段階で、その後周期的に所定の間隔で、測定の初期設定を実行させてもよい。他の例では、修正可能または修正不能なメモリエラーの検出によって、オペレーティングシステムまたはハイパーバイザがプロファイリングロジック４１０をトリガさせるようにしてもよい。プロファイリングロジック４１０は、回路動作が温度に影響されることが多いことから、温度閾値または温度変化閾値トリガを用いて、メモリタイミングパラメータの再評価を開始するようにしてもよい。
【００３０】
タイミングデータストア４１２は、スケジューラ４２０によって順次アクセス可能となるように、プロファイリングロジック４１０によって生成されたＤＲＡＭタイミングパラメータを受信及び記憶する。いくつかの実施形態では、このタイミング情報は、パラメータの実際の値として記憶されてもよい。例えば、所定の行に対して記憶されたｔＲＰパラメータは、当該所定の行を再充電するのに必要な実際のサイクル数であってもよい。代替的に、タイミング情報がいくつかのレベルまたはビン（ｂｉｎｓ）に分類されてもよく、ビン番号の指標が記憶される。例えば、ｔＲＰパラメータは、７サイクル以下、８−９サイクル、１０−１１サイクル及び１２−１３サイクルという４つのレベルまたはビンに分類され得る。
【００３１】
タイミングデータストア４１２は、以下に限定されないが、ブルームフィルタ、連想記憶装置（ＣＡＭ）、キャッシュ、レジスタなどを含む任意の数の記憶機構によって実装されてもよい。記憶機構は、記憶スペースを減少させるために、記憶されたパラメータのサイズ及び数に基づいて選択されてもよい。いくつかの実施形態では、タイミングデータストア４１２は、プロファイリングロジック４１０によって追跡されるタイミングパラメータの各々に対して異なるタイプのストレージ（ブルームフィルタ、ＣＡＭアレイなど）を実装してもよい。例えば、上述したようなビンに入れられたｔＲＰ値を記憶するためにブルームフィルタが使用されてもよい。１つのブルームフィルタがｔＲＰビンごとに実装される。ブルームフィルタ１はビン１、ブルームフィルタ２はビン２、などのように表される。動作において、プロファイリングロジック４１０は、例えば行５に対するｔＲＰが第２のビンに分類されたことを特定する。プロファイリングロジック４１０は、行番号及びビン番号をタイミングデータストア４１２に送る。タイミングデータストア４１２は、行５のインデックスを第２のｔＲＰブルームフィルタに入れる。後続の動作において、スケジューラ４２０は、行５に対するｔＲＰを特定するためにタイミングデータストア４１２を参照することができる。スケジューラ４２０は、行番号（５）及び要求されたパラメータ（ｔＲＰ）の指標をタイミングデータストア４１２に送る。タイミングデータストア４１２は、ｔＲＰブルームフィルタを参照して、行５に対するｔＲＰビンをスケジューラ４２０に返す。
【００３２】
識別され且つタイミングデータストア４１２に記憶された領域ごとのメモリタイミングパラメータがあれば、スケジューラ４２０は、記憶された領域ベースのメモリタイミングパラメータを利用して、それらパラメータが目標とする領域に基づいてメモリアクセス要求をより最適にスケジューリングすることができる。したがって、スケジューラ４２０は、目標アドレスへのメモリアクセス要求を受信したことに応じて、目標アドレスを含む領域に対応付けられたＤＲＡＭタイミングパラメータに対してタイミングデータストア４１２からアクセスし、メモリ全域のタイミングパラメータではなく（またはこれに加えて）アクセスされたＤＲＡＭタイミングパラメータを用いて、より最適化されたメモリアクセススケジュールを生成する。例えば、ｔＲＣＤ（行−列間コマンド遅延）タイミングパラメータは、ＤＲＡＭ読出し動作の全体的な呼出し時間の基本部分となる。ｔＲＣＤは、「アクティベーション行（ａｃｔｉｖａｔｉｏｎ  ｒｏｗ）」ＤＲＡＭコマンドと後続の「列読出し（ｃｏｌｕｍｎ  ｒｅａｄ）」ＤＲＡＭコマンドとの間に必要な最小遅延を表す。所定のバンクがあるとして、ｔＲＤＣは、いくつかの行に対しては５サイクルであり、より速い他の行に対しては４サイクルである。従来のメモリコントローラでは、全ての行に対してｔＲＣＤ＝５の最も保守的なタイミングを用いていた。これに対して、タイミングデータストア４１２に行ごとに記憶されたｔＲＣＤを表すデータを有する本発明では、スケジューラ４２０は、より速い行に対してｔＲＣＤ＝４を利用することが可能となるので、それらの行に対するＤＲＡＭ読出し動作の呼出し時間を１サイクル減少させることができる。プロファイリングロジック４１０は、メモリアレイ１０４の一組の領域の各領域についてのメモリタイミングパラメータの１つ以上をテスト及び測定するロジックを実装している。
【００３３】
図５は、いくつかの実施形態による、領域ごとの性能パラメータについてメモリをプロファイリングする方法５００を示すフロー図である。説明の容易化のために、図４に示すようなメモリコントローラブロック１０２の例示的な環境において、且つ、ＤＲＡＭアーキテクチャに対して指定されたｔＣＬメモリタイミングパラメータを特定することについて、方法５００を説明する。同様の処理を、ｔＲＣＤ、ｔＣＣＤ、ｔＲＰ、及び、ｔＲＡＳ、ｔＦＡＷ、ｔＷＴＲ、並びに、ｔＷＲパラメータなどの他のメモリタイミングパラメータを測定するのに実行することができる。
【００３４】
ブロック５０２において、プロファイリングロジック４１０は、時間間隔の時間切れまたは前述した他のシステムイベントなどのトリガイベントに応じて、領域ごとのメモリプロファイリングを開始する。ブロック５０４において、プロファイリングロジック４１０は、テスト対象のＤＲＡＭアレイ１０６（図１）のＤＲＡＭ行バッファを選択し、選択されたＤＲＡＭ行バッファに対するｔＣＬパラメータを最大値に設定する。ブロック５０６において、プロファイリングロジック４１０は、行バッファが所定のｔＣＬ値において正しく機能していることを検証するのに使用される第１のテストデータパターンを選択する。データテストパターンは、「全て１」、「全て０」、「交互の１と０」、「ウォーキングワン」などのような、メモリエラーを検出するのに使用される任意の数の周知のテストパターンを含むことができる。データテストパターンは、ＤＲＡＭアレイ１０６の特定の実施に対して特異的に設計されたパターンを更に含んでいてもよい。ブロック５０８において、プロファイリングロジック４１０は、テスト下の行バッファに対応するアドレスへのメモリ書込み要求を生成する。書込み要求は、書込みキュー４１４（図４）及びアービタ４０６（図４）を介して、スケジューラ４２０（図４）に送信される。ブロック５１０において、プロファイリングロジック４１０は、設定されたｔＣＬ値の下で同じアドレスへのメモリ読出し要求を生成する。読出し要求は、読出しキュー４１５（図４）を介して、スケジューラ４２０に同様に送信される。ブロック５１２において、プロファイリングロジック４１０は、行バッファから読み戻されたデータをテストパターンと比較する。読み戻されたデータが一致しない場合には、ブロック５１４において、プロファリングロジック４１０は、最後の既知の良好なｔＣＬを、タイミングデータストア４１２に記憶する。上述したように、タイミングデータストア４１２は、記憶要件を軽減するために、ブルームフィルタとして実装されてもよい。一方、読み戻されたデータが一致する場合には、テストはブロック５１６に移行し、ここでテスト処理がループバックして次のテストパターンを選択する。ブロック５０６−５１６の処理は、最後のパターンがテストされるまで（ブロック５１８）、選択された各テストパターンを反復する。全てのテストパターンが終わった場合には、ブロック５２０において、プロファイリングロジック４１０は、ｔＣＬパラメータについて次に低い値を選択し、ブロック５０６−５１８の処理は、このｔＣＬパラメータに対する値について反復される。この処理は、ｔＣＬパラメータに対する失敗値がブロック５１２で検出されるまで続き、その時点で、最後の既知の良好なｔＣＬ値は、ブロック５２２でのテスト下の行についての行特有のｔＣＬパラメータとして記憶される。したがって、方法５００の完了時には、タイミングデータストア４１２は、テスト下の特定の行についての最速のｔＣＬ値で更新されている。説明の容易化のために、方法は、１つの行バッファについてｔＣＬを測定しているが、実際には、方法５００は、任意の数のメモリ領域についてｔＣＬを測定するように反復されることになる。したがって、方法５００は、最速のｔＣＬ値が、識別され且つメモリアレイ１０４の全体のうち一部の行の各々について記憶されるまで、テスト下の次の行についても反復されてもよく、以下同様に続く。
【００３５】
所与の領域に対して識別されタイミングデータストア４１２に記憶されたメモリタイミングパラメータがあれば、スケジューラ４２０は、記憶された領域ベースのメモリタイミングパラメータを利用して、メモリアクセス要求をより最適にスケジューリングすることができる。メモリ呼出し時間及び帯域幅において得られる改善は、ＤＲＡＭ「読出し」動作についてのタイミング図を検討することによって、より良く理解できる。
【００３６】
図６は、メモリ呼出し時間を改善するようにメモリアクセス要求をスケジューリングするための、メモリコントローラ１０２（図４）による、プロファイリングされた領域ベースのメモリタイミングパラメータの例示的な使用を示すタイミング図である。説明の容易化のために、プロファイリングされた値ｔＲＣＤ及びｔＣＬを用いてＤＲＡＭ読出し動作のスケジューリング及びタイミングを示すが、メモリコントローラは、プロファイリングされたＤＲＡＭタイミングパラメータの何れか１つまたはその組合せを用いて、それに応じてコマンドをスケジューリングすることができる。事前に開放されていない行に対する読出し動作の全体的な呼出し時間は、ｔＲＣＤ及びｔＣＬタイミングパラメータの合計となる。ｔＲＣＤは、「アクティベーション行」ＤＲＡＭコマンドと、後続の「列読出し」ＤＲＡＭコマンドとの間で必要な最小遅延を表す。ｔＣＬは、「列読出し」コマンドと、戻されるデータの最初のワードの利用との間の最小遅延を表す。
【００３７】
図６では、２つの個別のＤＲＡＭ読出し動作についてのタイミングを比較しており、第１の読出し動作が位置「Ｘ」に対するものであり、第２の読出し動作が位置「Ｙ」に対するものである。プロファイリングロジック４１０（図４）は、本実施例で使用されるＤＲＡＭ行「Ｘ」及び「Ｙ」を含む種々のメモリ領域についてのｔＲＣＤ及びｔＣＬタイミングパラメータを事前に測定及び記憶しているものとし、これにより、行「Ｘ」については、ｔＲＣＤパラメータは６サイクルに設定され（ｔＲＣＤＸ＝６）、ｔＣＬパラメータは６サイクル（ｔＣＬＸ＝６）に設定され、行「Ｙ」については、ｔＲＣＤパラメータは４サイクルに設定され（ｔＲＣＤＹ＝４）、ｔＣＬパラメータは５サイクル（ｔＣＬＹ＝５）に設定されている。
【００３８】
クロックサイクルＴ０において、メモリコントローラ１０２は、「アクティベーション行」コマンド６００を、メモリアレイ１０４（図１）の行Ｘに送信する。６サイクル後、クロックサイクルＴ６において、メモリコントローラ１０２は、行「Ｘ」についてプロファイリングされた値ｔＲＣＤＸ＝６を用いて、「列読出し」コマンド６０２を送信する。次に、メモリコントローラは、行「Ｘ」についてのプロファイリングされた値ｔＣＬＸ＝６を用いて、クロックサイクルＴ１２において、戻されるメモリデータ６０４を６サイクル待つ。したがって、位置Ｘに対する合計読出し呼出し時間は１２サイクルとなる。メモリコントローラ１０２は、クロックサイクルＴ０において同時に、行Ｙに対して「アクティベーション行」コマンド６０６を送信する。メモリコントローラ１０２は、行「Ｙ」についてプロファイリングされた値ｔＲＣＤＹ＝４を用いて、４サイクル後のクロックサイクルＴ４において「列読出し」コマンド６０８を送信する。次に、メモリコントローラ１０２は、行「Ｙ」についてプロファイリングされた値ｔＣＬＹ＝５を用いて、合計９サイクルの呼出し時間について、クロックサイクルＴ９において、戻されるメモリデータ６１０を５サイクル待つ。
【００３９】
メモリコントローラ１０２が従来の最悪ケースのタイミングパラメータをメモリ全体にわたって用いたとすると、メモリ全体に対するｔＲＣＤパラメータが６に設定されており、これにより、「読出し」コマンド６０８は、「アクティベーション行」コマンド６０６の６サイクル後まで送信されないことになる。同様に、メモリコントローラ１０２は、「列読出し」コマンド６０８が送信されてから６サイクル後までメモリデータ６１０が戻されないことを前提とする。一方、プロファイリングロジック４１０を用いて行ごとのｔＲＣＤ及びｔＣＬタイミングパラメータにおけるばらつきを利用することによって、メモリコントローラ１０２は、「列読出し」コマンド６０８を行Ｙに２サイクル早く送信し、得られるメモリデータ６１０に対して１サイクル早くアクセスでき、これにより、行Ｙに対する「読出し」コマンド６０８に対して戻されるメモリデータ６１０の呼出し時間を３サイクル短縮し、それにより、システムの全体的な処理性能を高めることができる。
【００４０】
いくつかの実施形態では、上述した装置及び技術が、図１−３の処理システムなどの１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージまたはマイクロチップともいう）を備えるシステムで実装される。ＥＤＡ（ｅｌｅｃｔｒｏｎｉｃ  ｄｅｓｉｇｎ  ａｕｔｏｍａｔｉｏｎ）及びＣＡＤ（ｃｏｍｐｕｔｅｒ  ａｉｄｅｄ  ｄｅｓｉｇｎ）ソフトウェアツールが、これらのＩＣデバイスの設計及び製造で使用されてもよい。これらの設計ツールは、通常、１つ以上のソフトウェアプログラムで記述される。１つ以上のソフトウェアプログラムは、少なくとも一部の処理を実行して回路を製造する製造システムを設計し、または適合させるように、１つ以上のＩＣデバイスの回路を表すコードで動作するコンピュータシステムを操作するために、コンピュータシステムによって実行可能なコードを備える。このコードは、命令、データ、または、命令とデータとの組合せを含むことができる。設計ツールまたは製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶されている。同様に、ＩＣデバイスの設計または製造の１つ以上の工程を表すコードは、同じコンピュータ可読記憶媒体または異なるコンピュータ可読記憶媒体に記憶され、及び、そこからアクセスされ得る。
【００４１】
コンピュータ可読記憶媒体は、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体または記憶媒体の組合せを含み、命令及び／またはデータをコンピュータシステムに供給する。かかる記憶媒体は、以下に限定されないが、光学媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープまたは磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）またはキャッシュ）、不揮発性メモリ（例えば、読出し専用メモリ（ＲＯＭ）またはフラッシュメモリ）、または、微小電気機械システム（ＭＥＭＳ）に基づく記憶媒体を含む。コンピュータ可読記憶媒体は、コンピューティングシステムに組み込まれてもよいし（例えば、システムＲＡＭまたはＲＯＭ）、コンピューティングシステムに固定的に取り付けられてもよいし（例えば、磁気ハードドライブ）、コンピューティングシステムに取外し可能に取り付けられてもよいし（例えば、光ディスクまたはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）に基づくフラッシュメモリ）、コンピュータシステムに有線または無線ネットワークを介して接続されてもよい（例えば、ネットワーク接続記憶装置（ＮＡＳ））。
【００４２】
図７は、上述した１つ以上の態様を実現するＩＣデバイスの設計及び製造のための例示的な方法７００を示すフロー図である。上述したように、以降の各処理のために生成されるコードは、対応する設計ツールまたは製造ツールによるアクセス及び使用のためにコンピュータ可読記憶媒体に記憶され、あるいは組み込まれる。
【００４３】
ブロック７０２において、ＩＣデバイスに対する機能的仕様が生成される。機能的仕様（マイクロアーキテクチャ仕様（ＭＡＳ）と呼ばれることがある）は、Ｃ、Ｃ＋＋、ＳｙｓｔｅｍＣ、ＳｉｍｕｌｉｎｋまたはＭＡＴＬＡＢを含む様々なプログラミング言語またはモデリング言語の何れかによって表され得る。
【００４４】
ブロック７０４において、機能的仕様は、ＩＣデバイスのハードウェアを表すハードウェア記述コードを生成するために使用される。いくつかの実施形態では、ハードウェア記述コードは、ＩＣデバイスの回路の形式的記述及び設計のための様々なコンピュータ言語、仕様言語またはモデリング言語の何れかを備える少なくとも１つのＨａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＨＤＬ）を用いて表されている。生成されたＨＤＬコードは、通常、ＩＣデバイスの回路の動作、回路の設計及び組織、並びに、シミュレーションを介してＩＣデバイスの正しい動作を検証するテストを表す。ＨＤＬの例としては、アナログＨＤＬ（ＡＨＤＬ）、Ｖｅｒｉｌｏｇ  ＨＤＬ、ＳｙｓｔｅｍＶｅｒｉｌｏｇ  ＨＤＬ及びＶＨＤＬを含む。同期デジタル回路を実現するＩＣデバイスについては、ハードウェアディスクリプタコードは、同期デジタル回路の動作の概要記述を与えるためのレジスタ転送レベル（ＲＴＬ）コードを含み得る。他のタイプの回路については、ハードウェアディスクリプタは、回路の動作の概要記述を与えるための動作レベルコードを含み得る。ハードウェア記述コードによって表されるＨＤＬモデルは、通常、設計検証を通過するために、１つ以上のラウンドのシミュレーション及びデバッグを受ける。
【００４５】
ハードウェア記述コードによって表される設計を検証した後、ブロック７０６において、ハードウェア記述コードを合成して、ＩＣデバイスの回路の初期物理実装を表現または規定するコードを生成するために、合成ツールが使用される。いくつかの実施形態では、合成ツールは、回路デバイス構成（例えば、ゲート、トランジスタ、レジスタ、コンデンサ、インダクタ、ダイオードなど）及び回路デバイス構成間のネット、すなわち接続を備える１つ以上のネットリストを生成する。代替的に、ネットリストの全てまたは一部が、合成ツールを使用することなく手動で生成されてもよい。ハードウェア記述コードがあるため、ネットリストは、１つ以上のネットリストの最終設定が生成される前に１つ以上のテスト及び検証処理を受けることになる。
【００４６】
代替的に、ＩＣデバイスの回路の回路図を記述するために回路図エディタツールを使用することができ、そして、得られた回路図を捕捉し、回路図の構成部品及び接続を表す（コンピュータ可読媒体に記憶された）１つ以上のネットリストを生成するために回路図キャプチャツールを使用することができる。そして、捕捉された回路図は、テスト及び検証のための１つ以上のラウンドのシミュレーションを受けることになる。
【００４７】
ブロック７０８において、１つ以上のＥＤＡツールは、ブロック７０６で生成されたネットリストを用いて、ＩＣデバイスの回路の物理的レイアウトを表すコードを生成する。この処理は、例えば、ネットリストを用いてＩＣデバイスの回路の各要素の位置を決定または確定する配置ツールを含み得る。また、結線（ｒｏｕｔｉｎｇ）ツールは、配置処理を基にして、ネットリストによる回路要素を接続するのに必要な配線を追加及び結線する。得られたコードは、ＩＣデバイスの三次元モデルを表す。コードは、例えば、グラフィックデータベースシステム２（ＧＤＳ２）形式などのデータベースファイル形式で表すことができる。この形式のデータは、通常、階層的形式における回路レイアウトについての幾何的形状、テキストラベル及び他の情報を表す。
【００４８】
ブロック７１０において、物理レイアウトコード（例えば、ＧＤＳ２コード）が製造設備に供給される。ここでは、物理レイアウトコードを用いて、ＩＣデバイスを製造する製造設備の製造ツールを（例えば、マスク作業を介して）構成し、あるいは適合させる。すなわち、物理レイアウトコードは、１つ以上のコンピュータシステムにプログラムされることができ、製造設備のツールの動作またはそこで実行される製造工程を、全体的にまたは部分的に制御することができる。
【００４９】
なお、概略説明において上述した動作または要素の全てが必要なわけではなく、特定の動作またはデバイスの一部が不要な場合もあり、記載されたものに加えて１以上の更つなる動作が実行され、または１つ以上の更なる要素が含まれ得る。さらにまた、動作が列挙される順序は、必ずしもそれらが実行される順序ではない。
【００５０】
また、特定の実施形態を参照して概要を説明した。しかし、当業者であれば、以下の特許請求の範囲に記載される本開示の範囲から逸脱することなく、種々の変形及び変更がなされ得ることが分かるはずである。したがって、明細書及び図面は、限定的な意味ではなく例示的なものとしてみなされ、全てのかかる変形例は、本開示の範囲内に含まれるものである。
【００５１】
利点、他の有利な効果及び問題点に対する解決手段を特定の実施形態に関して上述した。しかし、利点、有利な効果、問題点に対する解決手段、何れかの利点、有利な効果若しくは解決手段を発生させまたはより顕著なものとする何れかの構成は、特許請求の範囲の何れか若しくは全ての、決定的な、必須の、または、不可欠な構成として解釈されてはならない。
【図１】
2016520226.tif 000003
【図２】
2016520226.tif 000004
【図３】
2016520226.tif 000005
【図４】
2016520226.tif 000006
【図５】
2016520226.tif 000007
【図６】
2016520226.tif 000008
【図７】
2016520226.tif 000009
【手続補正書】
【提出日】平成28年5月13日(2016.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリの複数の領域のうちある領域へのメモリアクセスを、前記領域に特有のメモリタイミングパラメータに基づいてスケジューリングすること、
を備える方法。
【請求項２】
前記領域について対応するメモリタイミングパラメータを測定することと、
測定された前記メモリタイミングパラメータを表すタイミング情報をデータストアに保持することと、を更に備え、
前記領域への前記メモリアクセスをスケジューリングすることは、前記領域に特有の前記メモリタイミングパラメータを表すデータに対して前記データストアからアクセスすることを含む、請求項１に記載の方法。
【請求項３】
前記領域について対応するメモリタイミングパラメータを測定することは、電力投入リセット、タイマの経過、検知された温度変化、及び、コントローラからのトリガ、のうち少なくとも１つに応じて、前記領域について対応するメモリタイミングパラメータを測定することを含む、請求項２に記載の方法。
【請求項４】
前記領域について対応するメモリタイミングパラメータを測定することは、
前記領域の複数のサブ領域の各々について対応するメモリタイミングパラメータを測定することと、
前記領域についての前記メモリタイミングパラメータとして、前記サブ領域の最も遅いメモリタイミングパラメータを識別することと、を含む、請求項２に記載の方法。
【請求項５】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記メモリタイミングパラメータは、行−列間コマンド遅延（ｔＲＣＤ）、行コマンドとデータ出力との間の時間（ｔＣＬ）、行コマンド間の時間（ｔＣＣＤ）、事前充電時間（ｔＲＰ）、最小行開放時間（ｔＲＡＳ）、マルチバンク活性化ウィンドウ（ｔＦＡＷ）、読出しと書込みとの間の時間（ｔＷＴＲ）及び書込み回復時間（ｔＷＲ）のうち少なくとも１つを備える、請求項１に記載の方法。
【請求項６】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記領域は、一組の１つ以上のセル、一組の１つ以上の行、一組の１つ以上のアレイ、一組の１つ以上のバンク、一組の１つ以上のランク、一組の１つ以上のチップ、及び、一組の１つ以上のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）、のうち１つを備える、請求項１に記載の方法。
【請求項７】
前記メモリは、複数の積層メモリダイを有する積層ダイメモリデバイスを備え、
前記領域の各々は、前記複数の積層メモリダイのうち対応するメモリダイである、請求項１に記載の方法。
【請求項８】
集積回路（ＩＣ）デバイスであって、
メモリに接続可能なメモリコントローラを備え、
前記メモリコントローラは、前記メモリの領域へのメモリアクセスを、対応する領域に特有のメモリタイミングパラメータに基づいてスケジューリングする、ＩＣデバイス。
【請求項９】
前記メモリの少なくとも１つの領域について対応するメモリタイミングパラメータを測定するプロファリングロジックと、
測定された前記メモリタイミングパラメータを表すタイミング情報を保持するタイミングデータストアと、を更に備え、
前記メモリコントローラは、対応する領域に関して実行されるメモリアクセスに応じて、前記領域に特有のメモリタイミングパラメータを表すデータにアクセスし、アクセスされた前記データに基づいて前記メモリアクセスをスケジューリングする、請求項８に記載のＩＣデバイス。
【請求項１０】
前記メモリを備える一組の１つ以上の積層メモリダイと、
前記積層メモリダイに電気的に接続された一組の１つ以上のロジックダイであって、前記メモリコントローラ及び前記プロファリングロジックを備える一組の１つ以上のロジックダイと、を含む積層ダイメモリデバイスを更に備える、請求項９に記載のＩＣデバイス。
【請求項１１】
前記一組の１つ以上のロジックダイは、前記タイミングデータストアを実装する、請求項１０に記載のＩＣデバイス。
【請求項１２】
前記一組の１つ以上の積層メモリダイは、前記タイミングデータストアを実装する、請求項１０に記載のＩＣデバイス。
【請求項１３】
前記一組の１つ以上の積層メモリダイ及び前記一組の１つ以上のロジックダイは、前記一組の１つ以上のロジックダイが前記一組の１つ以上の積層メモリダイに対して一組のスルーシリコンビアを介して接続された積層構造体に配置されている、請求項１０に記載のＩＣデバイス。
【請求項１４】
前記プロファイリングロジックは、対応する領域について前記対応するメモリタイミングパラメータを、
前記対応する領域の複数のサブ領域の各々について対応するメモリタイミングパラメータを測定することと、
前記対応する領域についての前記メモリタイミングパラメータとして、前記サブ領域の最も遅いメモリタイミングパラメータを識別することと、
によって測定する、請求項９に記載のＩＣデバイス。
【請求項１５】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備え、
前記領域は、一組の１つ以上のセル、一組の１つ以上の行、一組の１つ以上のアレイ、一組の１つ以上のバンク、一組の１つ以上のランク、一組の１つ以上のチップ、及び、一組の１つ以上のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）、のうち１つを備える、請求項８に記載のＩＣデバイス。
【国際調査報告】
2016520226.tif 000010
2016520226.tif 000011