(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】シミュレートされた書き込み動作を実行するための方法及び装置
(51)【国際特許分類】
G06F 13/16 20060101AFI20241128BHJP
G11C 7/22 20060101ALI20241128BHJP
【FI】
G06F13/16 510E
G06F13/16 520B
G11C7/22
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535341
(86)(22)【出願日】2022-10-26
(85)【翻訳文提出日】2024-06-25
(86)【国際出願番号】 US2022047902
(87)【国際公開番号】W WO2023121760
(87)【国際公開日】2023-06-29
(32)【優先日】2021-12-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アンワル カシェム
(72)【発明者】
【氏名】ポウヤ ナジャフィ アシュティアニ
(72)【発明者】
【氏名】クレイグ ダニエル イートン
(72)【発明者】
【氏名】ケダーナシュ バラクリシュナン
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160MB06
(57)【要約】
コンピュータシステムにおいてシミュレートされた書き込みを実行するための方法及び装置は、メモリコントローラによって決定されたスケジュールされたメモリ動作に応じて、シミュレートされた書き込み動作を物理層回路(PHY)に送信して、メモリ動作が開始するまでPHYの出力を有効にすることなく回路電力を増加させることを含む。メモリ動作が完了したことに応じて、シミュレートされた書き込み動作をPHYに送信して、回路電力を減少させる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
コンピュータシステムにおいてシミュレートされた書き込みを実行するための方法であって、
シミュレートされた書き込み動作を物理層回路(PHY)に送信して、メモリ動作が開始するまで前記PHYの出力を有効にすることなく回路電力を増加させることと、
前記メモリ動作が完了したことに応じて、シミュレートされた書き込み動作を前記PHYに送信して、回路電力を減少させることと、を含む、
方法。
【請求項2】
前記シミュレートされた書き込みは、前記メモリ動作の電力レベル状態よりも低いアイドル状態を上回るレベルまで回路電力を増加させるように前記PHYに命令する、
請求項1の方法。
【請求項3】
第1のシミュレートされた書き込みは、前記PHYの回路電力を、前記アイドル状態を上回る第1の電力レベルに増加させる、
請求項2の方法。
【請求項4】
第2のシミュレートされた書き込みは、前記PHYの回路電力を、前記第1の電力レベルよりも上の第2の電力レベルに増加させる、
請求項3の方法。
【請求項5】
前記第2のシミュレートされた書き込みの前に前記第1のシミュレートされた書き込みを実行することを含む、
請求項4の方法。
【請求項6】
前記第1のシミュレートされた書き込み及び前記第2のシミュレートされた書き込みは、メモリ動作の前に実行される、
請求項5の方法。
【請求項7】
前記第2のシミュレートされた書き込みの後に前記第1のシミュレートされた書き込みを実行することを含む、
請求項4の方法。
【請求項8】
前記第1のシミュレートされた書き込み及び前記第2のシミュレートされた書き込みは、メモリ動作の完了時に実行される、
請求項7の方法。
【請求項9】
前記第1のシミュレートされた書き込みは、第1の数のデータバイトを含み、前記第2のシミュレートされた書き込みは、前記第1の数のデータバイトよりも多い第2の数のデータバイトを含む、
請求項4の方法。
【請求項10】
基準に基づいて、前記シミュレートされた書き込みをスケジューリングすることを含む、
請求項1の方法。
【請求項11】
前記基準は、メモリ動作のロード工程とロード解放との間、読み取り動作と書き込み動作との間のスケジュールされた時間、又は、読み取り動作又は書き込み動作の間の所定の期間のうち1つ以上を含む、
請求項10の方法。
【請求項12】
シミュレートされた書き込みを実行するためのコンピュータシステムであって、
物理層回路(PHY)と、
前記PHYと動作可能に結合され、前記PHYと通信するメモリコントローラと、を備え、
前記メモリコントローラは、
スケジュールされたメモリ動作に応じて、シミュレートされた書き込み動作を前記PHYに送信して、前記メモリ動作が開始するまで前記PHYの出力を有効にすることなく回路電力を増加させることと、
前記メモリ動作が完了したことに応じて、シミュレートされた書き込み動作を前記PHYに送信して、回路電力を減少させることと、
を行うように構成されている、
コンピュータシステム。
【請求項13】
前記シミュレートされた書き込みは、前記メモリ動作の電力レベル状態よりも低いアイドル状態を上回るレベルまで回路電力を増加させるように前記PHYに命令する、
請求項12のコンピュータシステム。
【請求項14】
第1のシミュレートされた書き込みは、前記PHYの回路電力を、前記アイドル状態を上回る第1の電力レベルに増加させる、
請求項13のコンピュータシステム。
【請求項15】
第2のシミュレートされた書き込みは、前記PHYの回路電力を、前記第1の電力レベルより上の第2の電力レベルに増加させる、
請求項14のコンピュータシステム。
【請求項16】
前記メモリコントローラは、前記第2のシミュレートされた書き込みの前に前記第1のシミュレートされた書き込みを送信する、
請求項15のコンピュータシステム。
【請求項17】
前記第1のシミュレートされた書き込み及び前記第2のシミュレートされた書き込みは、メモリ動作の前に送信される、
請求項16のコンピュータシステム。
【請求項18】
前記メモリコントローラは、前記第2のシミュレートされた書き込みの後に前記第1のシミュレートされた書き込みを送信する、
請求項15のコンピュータシステム。
【請求項19】
前記第1のシミュレートされた書き込み及び前記第2のシミュレートされた書き込みは、メモリ動作の完了時に送信される、
請求項18のコンピュータシステム。
【請求項20】
物理層回路(PHY)と動作可能に結合されて通信するメモリコントローラであって、
前記メモリコントローラは、
プロセッサを備え、
前記プロセッサは、
スケジュールされたメモリ動作に応じて、シミュレートされた書き込み動作を前記PHYに送信して、前記メモリ動作が開始するまで前記PHYの出力を有効にすることなく回路電力を増加させることと、
前記メモリ動作が完了したことに応じて、シミュレートされた書き込み動作を前記PHYに送信して、回路電力を減少させることと、
を行うように構成されている、
メモリコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2021年12月20日に出願された米国特許出願第17/556,958号の利益を主張するものであり、その内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
アイドル期間からメモリへのデータ書き込み又は読み取りが行われる期間中、読み取り又は書き込みを実行するために行う必要がある電力増加が存在する。いくつのメモリチャネルが読み取り又は書き込みをある程度同時に行うことを必要とするかに応じて、アイドル状態から読み取り又は書き込み状態に進むための電力ランプアップ(power ramp up)の量が非常に大きくなる可能性がある。
【0003】
添付の図面と共に例として与えられる以下の説明から、より詳細な理解を得ることができる。
【図面の簡単な説明】
【0004】
【
図1】本開示の1つ以上の特徴が実装され得る例示的なデバイスのブロック図である。
【
図2】
図1の例示的なシステムの一部のブロック図である。
【
図3】
図1の例示的なシステムのメモリ領域に対する読み取り及び書き込み動作を示す例示的なタイミング図である。
【
図4】一連のシミュレートされた書き込みを含むメモリ領域への読み取り及び書き込み動作を示す例示的なタイミング図である。
【
図5】シミュレートされた書き込み動作の間の物理(PHY)層の例示的なブロック図である。
【
図6】一実施形態による、シミュレートされた書き込み動作を実行する例示的な方法のフロー図である。
【発明を実施するための形態】
【0005】
この方法及び装置は、以下で更に詳細に拡張されるが、シミュレートされた書き込み(本明細書ではファントム書き込み(phantom write)とも称される)を実行するための方法が本明細書で簡単に説明される。アイドル動作からの読み取り又は書き込み動作中に、動作を実行するために電力の増加が生じる。
【0006】
複数のメモリチャネルにわたって実質的に同時に発生し得る読み取り/書き込みの数に応じて、読み取り又は書き込みを実行するために必要とされる回路を、動作を実行するためのレベルに上げるための電力量は、非常に短い期間にわたって著しい変動を有する場合がある。すなわち、多くの読み取り又は書き込み動作が一度に実行される場合、メモリ内のメモリバンクにアクセスする物理層(PHY)内の回路は、電源システムから直ちに利用可能であるよりも多くの電力を引き出す必要があり、潜在的なエラーが発生する結果となる可能性がある。
【0007】
この発生を軽減するために、本明細書では、従来の書き込み動作の属性の全てを含まないシミュレートされた書き込み動作であるファントム書き込みを導入するための技術について説明する。ファントム書き込み動作は、PHYにおける読み取り書き込みイベントの前又は後にアイドル状態からの電力を増分的に増加させて、電力の大きな個々の増加又は減少を回避する。
【0008】
更に、以下で詳細に説明するが、SOCは、システム全体の多くの構成要素がチップ上に存在するデバイスである。例えば、SOCは、プロセッサ、メモリ、ストレージ、入力及び出力ドライバ、並びに、他の構成要素を単一のチップ上に含むことができる。
【0009】
コンピュータシステムにおいてシミュレートされた書き込みを実行するための方法は、メモリコントローラによって決定されたスケジューリングされたメモリ動作に応じて、シミュレートされた書き込み動作を物理層回路(PHY)に送信して、メモリ動作が開始するまでPHYの出力を有効にすることなく回路電力を増加させることを含む。メモリ動作が完了したことに応じて、回路電力を減少させるために、シミュレートされた書き込み動作をPHYに送信する。
【0010】
シミュレートされた書き込みを実行するためのコンピュータシステムは、物理層回路(PHY)と、PHYに動作可能に結合され、PHYと通信するメモリコントローラと、を含む。メモリコントローラは、スケジュールされたメモリ動作に応じて、メモリ動作が開始するまでPHYの出力を有効にすることなく回路電力を増加させるために、シミュレートされた書き込み動作をPHYに送信する。メモリコントローラは、メモリ動作が完了したことに応じて、回路電力を低減するために、シミュレートされた書き込み動作をPHYに送信する。
【0011】
物理層回路(PHY)と動作可能に結合され、それと通信するメモリコントローラは、プロセッサを含む。プロセッサは、スケジュールされたメモリ動作に応じて、メモリ動作が開始するまでPHYの出力を有効にすることなく回路電力を増加させるために、シミュレートされた書き込み動作をPHYに送信する。プロセッサは、メモリ動作が完了したことに応じて、回路電力を低減するために、シミュレートされた書き込み動作をPHYに送信する。
【0012】
図1は、本開示の1つ以上の特徴を実装することができる例示的なデバイス100のブロック図である。デバイス100は、例えば、コンピュータ、サーバ、ゲームデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話、又は、タブレットコンピュータを含み得る。デバイス100は、プロセッサ102、メモリ104、ストレージ106、1つ以上の入力デバイス108、及び、1つ以上の出力デバイス110を含む。例示のために、出力デバイス110は、ディスプレイ110として示されているが、他の出力デバイスが含まれ得ることを理解されたい。
【0013】
また、デバイス100は、オプションで、入力ドライバ112及び出力ドライバ114を含み得る。追加的に、デバイス100は、プロセッサ102及びメモリ104と通信し、外部メモリ116とも通信することができるメモリコントローラ115を含む。一部の実施形態では、メモリコントローラ115は、プロセッサ102内に含まれる。デバイス100は、
図1に示されていない追加の構成要素を含むことができることを理解されたい。
【0014】
上述したように、プロセッサ102、メモリ104、ストレージ106、入力ドライバ112、出力ドライバ114、及び、メモリコントローラ115は、SOC101上に含まれてもよい。加えて、メモリコントローラ115は、動作を実行するためのプロセッサ又は処理回路を含み得る。
【0015】
様々な代替例では、プロセッサ102は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、同じダイ上に配置されたCPU及びGPU、又は、1つ以上のダイを含み、各プロセッサダイは、CPU又はGPUであり得る。様々な代替例では、メモリ104は、プロセッサ102と同じダイ上に位置するか、又は、プロセッサ102とは別に位置する。メモリ104は、揮発性又は不揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory、RAM)、ダイナミックRAM、キャッシュ)を含む。
【0016】
ストレージ106は、固定若しくはリムーバブルストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、フラッシュドライブ)を含む。入力デバイス108は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体認証スキャナ、又は、ネットワーク接続(例えば、無線IEEE802シグナルの送信及び/又は受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。出力デバイス110は、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上の光、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802シグナルの送信及び/又は受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。
【0017】
入力ドライバ112は、プロセッサ102及び入力デバイス108と通信し、プロセッサ102が入力デバイス108から入力を受信することを可能にする。出力ドライバ114は、プロセッサ102及び出力デバイス110と通信し、プロセッサ102が出力デバイス110に出力を送信することを可能にする。入力ドライバ112及び出力ドライバ114は、オプションの構成要素であること、並びに、デバイス100は、入力ドライバ112及び出力ドライバ114が存在しない場合に、同じ方式で動作することに留意されたい。
【0018】
外部メモリ116は、メモリ104と同様であってもよく、オフチップメモリの形態で存在し得る。追加的に、外部メモリは、メモリコントローラ115が外部メモリ116にアクセスするためにネットワークインターフェースを介して通信するサーバ内に常駐するメモリであり得る。例えば、外部メモリは、SOC101の外部にあるダイナミックランダムアクセスメモリ(DRAM)であり得る。加えて、外部メモリ116は、システム100の外部にあってもよい。
【0019】
図2は、
図1の例示的なシステム100の一部のブロック図である。特に、
図2は、SOC101の一部として、メモリコントローラ115(例えば、MCとして示される)と物理層回路(PHY)119とを示している。PHY119は、外部メモリ116のメモリバンク(B0、B1、...、Bnで示される)と通信する。MC115は、PHY119へのデータフローを制御し、次いで、バスワイヤ210を介して、メモリ104のメモリバンクへの読み取り及び書き込みを達成する。
【0020】
バスワイヤ210の各々は、PHY119から外部メモリ116のメモリバンクBに通信して、データを書き込むためのコマンドがPHY119によって受信された場合にデータがメモリバンクBに書き込まれるのを可能にする。更に、バスワイヤ210の各々は、データを読み取るためのコマンドがPHY119によって受信された場合に、データがメモリバンクBからPHYに返送されるのを可能にする。
【0021】
メモリコントローラ115は、外部メモリ116(DRAM)と通信するものとして示されているが、メモリコントローラは、以下の説明のコンテキストにおいて、メモリ104又はシステム100によって利用される任意の他のメモリと通信していてもよいことに留意されたい。
【0022】
図2に示すように、メモリ116内のデータに対して動作を実行するために、メモリコントローラ115からPHY119に動作が要求されると、例えば、動作を実行するために、メモリコントローラ115によってPHY119に信号が送信される。例えば、読み取り又は書き込み動作がMC115からPHY119に渡される場合、PHY119は、バスワイヤ210を介してメモリ104から送信及び受信する。これらの動作は、
図3において以下で説明するように、アイドル状態から読み取り状態又は書き込み状態に遷移する場合に電力を利用する。
【0023】
より具体的には、
図1及び
図2をともに参照すると、読み取り又は書き込み動作を実行するためにメモリコントローラ115によってコマンドが発効されると、メモリコントローラ115は、データの実際の送信又は受信のためにPHY119にコマンドを渡す。バスワイヤ210の各々は、メモリバンクBに接続され、PHY119は、読み取り又は書き込み動作の必要性に応じて、データがメモリバンクBのうち1つ以上に送信されるのを可能にする。
【0024】
上述したように、各バスワイヤ210は、互いに独立して情報を送信/搬送する。したがって、各バスワイヤ210は、そのバスワイヤ210がデータを送信するために利用される場合に、電力増加を招く。
【0025】
例えば、バスワイヤ210のうち第1のバスワイヤが、PHY119から外部メモリ116中のメモリバンクBにデータを送信するために通電される場合に、送信に電力供給するための電力増加が発生する。追加のバスワイヤ210が通電されると、追加のバスワイヤに電力を供給するために追加の電力増加が発生する。
【0026】
発生する書き込み又は読み取りの数に応じて、PHY119は、異なる電力要件を招く。すなわち、追加の同時読み取り又は書き込みが行われると、バスワイヤ210を介して送信するためにPHY119に電力供給するために、又は、DRAMからデータを受信するためにバスワイヤ210に電力供給するために、電力が増加される。
【0027】
図3は、例えばPHY119における、
図1の例示的なシステム100のメモリ領域への読み取り及び書き込み動作を示す例示的なタイミング図である。
図3に示されるように、x軸は時間の経過を示し、y軸は電力(電流)を示している。
【0028】
図3に見られるように、アイドル期間中、PHY119における電力利用は低レベルである。この状態では、PHY119における電力要件は、PHY119内の回路がデータを書き込む又は読み取るために通電される必要がないため、低い。
【0029】
書き込み動作又は読み取り動作が実行される場合、電力レベルはより高いレベルに増加する。
図3に示されるように、書き込み動作は、読み取り動作よりも少ない電力を利用するが、これは一例としてのみ示される。例えば、メモリコントローラ115が書き込みを実行するためにPHY119にコマンドを送信すると、PHY119における電力要件が増加する。
【0030】
上述したこの増加は、DRAMバンクBにデータを送信するために、PHY119回路が電源投入されることを可能にする。加えて、メモリコントローラ115が、読み取り動作を実行するためのコマンドをPHY119に送信する場合、DRAMバンクBからデータを受信することに向けられたPHY119回路が通電されることを可能にするために、PHYにおける電力が増加される。
【0031】
更に、バスワイヤ210は、ワイヤに沿ってデータを送信するために、読み取り動作又は書き込み動作の何れかにおいて通電される。バスワイヤ210の追加のワイヤがデータを送信又は受信するために利用されるため、より多くの電力が発生する。
【0032】
図3に示されるアイドル期間中、PHY119がデータを送信又は受信することを可能にするために回路が通電されないため、電流要件(したがって、電力要件)は低い。この場合も、書き込み動作中、電流は、書き込みを実施するためのPHY119内の回路要件に対応するために、より高いレベルに増加する。
図3にも示されるように、読み取り動作の間、電流は、PHY119における読み取りよりも更に高いレベルで増加される。
【0033】
例えば、書き込みが行われる場合、ワイヤ210を介してデータを送信するためのPHY119内の回路は、電流を増加させることによって通電される。読み取り動作が行われる場合には、PHY119回路において電流が増加し、ワイヤ210を介してDRAMバンクBからデータを受信するように回路を通電する。
【0034】
図3に見られるように、アイドル状態から読み取り動作状態又は書き込み動作状態の何れかに進む電流の増加は、電源からの電流引き込みを著しく増加させる。また、書き込み動作及び読み取り動作のそれぞれが完了した後に電力要件が除去されると、電流の電力降下が大幅に減少してアイドルレベルに戻る。
【0035】
これらの大きな増加及び減少は、特にバスワイヤ210上での多くの同時の読み取り又は書き込みが必要とされる場合に、電源が増加の全てに対して電力を適切に供給することができないようにし得る。すなわち、バスワイヤ210の各々上の各読み取り及び書き込みは、アイドル状態から読み取り又は書き込み状態への電力のそれ自体の増加を必要とする。
【0036】
DRAMバンクBの各々は、一部のトランザクション(例えば、読み取り又は書き込み)のみを見ることがあるが、PHY119は、トランザクションの全てのために利用され、したがって、全てのトランザクションのための回路電力要件を増加又は減少させることが必要とされる。したがって、スケジュールされた全てのDRAMバンク上の読み取り及び書き込みの各々についての電流要件を平滑化することによって、アイドル状態から読み取り又は書き込み動作を実行するために必要とされる電力のレベルへの電流の増加又はジャンプは、電源上の大きいドレインを回避するのに役立ち得る。
【0037】
すなわち、読み取り又は書き込み動作の前に、PHY119内の電流レベルをアイドル電力レベルから読み取りレベル又は書き込みレベル電力要件まで増分的に増加させることによって、電源上の歪みが低減される。更に、PHY119における電流レベルを読み取り又は書き込み電力レベルの何れかからアイドル状態電力レベルまで低下させることによって、電源上の電力歪みが更に管理される。
【0038】
読み取り及び書き込み動作の前後の電力の増減を管理するために、シミュレートされた書き込み(ファントム書き込み)が実行されてもよい。シミュレートされた書き込みは、アイドル状態を超えるレベルでアイドル状態からの電力を増加させるために書き込み動作をシミュレートする。しかしながら、シミュレートされた書き込みは、PHY119における現在のレベルを、読み取り動作又は書き込み動作の何れかに利用される完全なレベルまで増加させなくてもよい。
【0039】
図2に戻って参照すると、メモリコントローラ115は、シミュレートされた書き込み(ファントム書き込み)をPHY119に送信し、これは、以下でより詳細に説明される。しかしながら、再び簡単に言えば、シミュレートされた書き込みは、PHY119の出力がメモリバンク(例えば、メモリ104内)に送信することを可能にすることなく、PHY119に部分的に電力を増加させる動作である。
【0040】
更に、以下でより詳細に説明されるように、シミュレートされた書き込みは、アイドル状態電力レベルを上回るが、実際の読み取り又は書き込み動作を実行するために利用されるフル電流レベルではないレベルまで電力レベル電流を増加させ得る。これは、サブチャネルスロットリングの技術によって実行することができ、実際の増加は、電流レベルを読み取り又は書き込み電力レベルまで上げるための電流レベルの増加中、あるいは電流レベルをアイドル電流レベルまで下げるための読み取り又は書き込み動作からの電流レベルの減少中に、増分的にスロットリングされる。
【0041】
図4は、一連のシミュレートされた書き込みを含むメモリ領域への読み取り及び書き込み動作を示す例示的なタイミング図である。
図4は、
図3のタイミング図と同様の図を示している。しかしながら、
図4のタイミング図は、シミュレートされた書き込み動作をPHY119に送信する効果を示している。
【0042】
例えば、
図4に示されるように、平滑化された一連の破線410は、シミュレートされた書き込み(PW)420を送信することによって電力レベルを増分的に上げるための意図された三角形を示す。
【0043】
シミュレートされた書き込みを実行するための方法のより詳細な説明を以下で簡単に説明するが、これは、書き込み又は読み取りが何処で発生しようとしているかを検出し、読み取り又は書き込みイベントの前に電力レベルを増分的に上げるように一連のシミュレートされた書き込み(420)をスケジュールすることによって行われる。
【0044】
これらのシミュレートされた書き込みは、実際の読み取りトランザクション及び書き込みトランザクションと干渉しないように、また、実際の読み取りトランザクション及び書き込みトランザクションにレイテンシを生じさせないように、メモリコントローラ115によって内部でスケジュールされる。
図4に見られるように、各シミュレートされた書き込み420は、電源電力レベルからアイドル状態電力レベルよりも高いレベルに電力レベルを増加させるアイドル状態から電流を引き出すことによって電力増加を引き起こす。
【0045】
しかしながら、
図4にも見られるように、各シミュレートされた書き込み420は、アイドル電力状態レベルから読み取り又は書き込み状態電力レベルまで追加のステップだけ増加する。各シミュレートされた書き込み420による電力レベルのこの増分ステップアップは、電源からの電流引き込みを平滑化し、三角形410を効果的に複製し、アイドル状態電力レベルから読み取り又は書き込み電力レベルへの電力のより平滑な増加を引き起こす。
【0046】
電力レベルのこの増分的な増加は、PHY119の送信機の出力を有効にすることなく、メモリコントローラから所定の値のデータを送信することによって達成され得る(以下で説明される)。すなわち、第1のシミュレートされた書き込み420を達成するために、第1の数のバイトが使用され/メモリコントローラ115からPHY119に転送され得る。現在のレベルを実際の読み取り又は書き込み動作の現在のレベルまで上げるために、第2のより大きい量のバイトを利用して、第2のシミュレートされた書き込み420等において電力をより増加させることができる。
【0047】
イベントが完了すると、電力レベルをアイドルに遷移させるために、一連のシミュレートされた書き込みがスケジューリングされる。すなわち、シミュレートされた書き込み420は、読み取り又は書き込みイベントが完了すると、実際の読み取り又は書き込み動作よりも低いバイトレベルで導入される。各後続のシミュレートされた書き込み420は、次いで、現在のレベルがアイドル電力レベルに遷移して戻るまで、前のシミュレートされた書き込み410よりも低いバイトレベルで導入される。
【0048】
したがって、電力レベルは、より多くの電力を引き出すために各シミュレートされた書き込み420のバイトサイズが増分的に増加されるにつれて、傾斜410に沿ってかなり滑らかな増加で増加し、次いで、バイトサイズが増分的に減少される各シミュレートされた書き込み420によって読み取りイベント又は書き込みイベントが発生した後、下降する傾斜410に沿って減少する。各読み取り又は書き込み動作までランプアップし、各読み取り又は書き込みイベントの終わりにアイドル電力状態に遷移して戻る電力曲線の平滑化は、電源システムに対する負担を軽減する。
【0049】
シミュレートされた書き込みの動作を更に説明するために、
図5は、シミュレートされた書き込み動作中のPHY層119の例示的なブロック図である。PHY119は、送信機121をオン又はオフにする出力イネーブル入力を含む送信機121を含む。また、PHY119は、終端回路122及び受信機123を有する。
【0050】
送信機121、終端回路122及び受信機123は、DRAMメモリ116(例えば、DDRバンク)と通信して、書き込み動作中に情報を送信し、読み取り動作中に情報を受信する。通信は、
図2に示すバスワイヤ210を介して行うことができる。PHY119は、読み取り動作、書き込み動作及び出力イネーブルをトグルしないシミュレートされた書き込み動作を含むデータフローをメモリコントローラ115から受信する。
【0051】
上述したように、実際の読み取り又は書き込み動作の間、PHY119の出力イネーブルは、PHY119がDRAMバンクからデータを送信及び受信することを可能にするために有効にされる(例えば、1に設定される)。シミュレートされた書き込みの間、データはメモリコントローラ115とPHY119との間で転送され、PHY119において何らかの電力増加を引き起こすが、出力イネーブルは有効にされない(例えば、0に設定されるか又は0のままである)。したがって、送信及び受信回路は、実際の読み取り及び書き込み動作のために通電されず、アクティブではない。
【0052】
図6は、一実施形態による、シミュレートされた書き込み動作を実行する例示的な方法600のフロー図である。
【0053】
ステップ610において、アイドル状態が(例えば、メモリコントローラ115によって)検出又は決定される。アイドル状態からのシミュレートされた書き込みを適切にスケジューリングするために、メモリコントローラ115は、次に、読み取り又は書き込みが発生するかどうかを検出する(ステップ620)。
【0054】
読み取り又は書き込みが発生する場合(ステップ620)、シミュレートされた書き込みが実行され、読み取り又は書き込みイベントの前に電力を増加させる(ステップ630)。シミュレートされた書き込みは、アイドル電力状態からより高い電力レベル状態に電力を増加させるようにPHY119に命令する。しかしながら、シミュレートされた書き込みは、PHY119の送信機121の出力イネーブルビットを有効にしない。例えば、ステップ630におけるシミュレートされた書き込みは、出力イネーブルビットを0から1にトグルせず、PHY119とDRAMとの間の内部インターフェースの状態を変更しない。
【0055】
PHY119の電力レベルが読み取り又は書き込み動作に必要なレベルに近くない場合(ステップ640)、メモリコントローラ115は、別のシミュレートされた書き込み動作を実行する(ステップ630)。後続のシミュレートされた書き込み動作において、電力レベルは、第1のシミュレートされた書き込み動作の電力レベルよりも高く増加される。
【0056】
このようにして、
図4に示す傾斜410のような、滑らかに増加する傾斜に沿った電力の増分的な増加が効果的に生成される。すなわち、ステップ630における各後続のシミュレートされた書き込みは、読み取り又は書き込み動作の前に、
図4に示される例示的なシミュレートされた書き込み420と同様に、その電力を増加させる。
【0057】
すなわち、各後続のシミュレートされた書き込み420は、前のシミュレートされた書き込み420よりも高い電力レベルの増加を引き起こす。これにより、実際の読み取り又は書き込み動作を実行するのに必要な電力レベルに向かって電力を段階的にランプアップさせることができる。
【0058】
ステップ640において、電力レベルが読み取り又は書き込み動作に必要な電力レベルに近く、読み取り又は書き込みイベントが完了した場合(ステップ650)、メモリコントローラ115は、電力レベルがアイドル電力レベルに近くなるまで、電力レベルをアイドル電力レベルまで下げ戻すために、シミュレートされた書き込み動作660を実行する(ステップ670)。
【0059】
すなわち、各後続のシミュレートされた書き込み660は、読み取り又は書き込み動作後の
図4に示された例示的なシミュレートされた書き込み420と同様に、前のシミュレートされた書き込み動作よりも電力が少ない。
【0060】
上述したように、シミュレートされた書き込み動作は、シミュレートされた書き込みを実行するためにデータピンの数を変調するようにPHYに命令するメモリコントローラを介して、電力が変更され得る。例えば、個々のバイトイネーブルを利用して、シミュレートされた書き込みを実行するために8つのデータピンの粒度がもたらされ得る。すなわち、各ステップアップ又はダウンは、後続のシミュレートされた書き込みにおける8つのデータピンの増加又は減少であり得る。
【0061】
シミュレートされた書き込みをスケジューリングするために基準が利用され得ることにも留意されたい。例えば、シミュレートされた書き込みは、ロード工程とロード解放(アイドル読み取り)工程との間にスケジュールされ得る。メモリコントローラは、アクティブ状態(読み取り対書き込み)内に従ってシミュレート書き込みをスケジューリングすることができるように、電流がアクティブからアイドルになるときを認識してもよい。また、メモリコントローラは、シミュレートされた書き込みのために、読み取り動作と書き込み動作との間の所定の期間をスケジューリングすることができる。
【0062】
DDRプロトコルのために、読み取り動作と書き込み動作との間にギャップが必要とされる。したがって、メモリコントローラは、シミュレートされた書き込みが実行され得る読み取り動作と書き込み動作との間のギャップをスケジュールし得る。シミュレートされた書き込みはメモリコントローラ及びPHYの内部であるため、シミュレートされた書き込みの通信はDRAMに通信されない。したがって、シミュレートされた書き込みは、そうでなければDDRプロトコルによって許可されない場合であってもスケジュールされ得る。
【0063】
更に、シミュレートされた書き込み動作は、シミュレートされた書き込みを実行するためにデータピンの数を変調するようにPHYに命令するメモリコントローラを介して、電力が変更され得る。これは、例えば、8データピンの粒度を可能にする個々のバイトイネーブルを用いて実装されてもよい。
【0064】
提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアにおいて実装することができる。好適なプロセッサとしては、例として、汎用プロセッサ、目的プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ(digital signal processor、DSP)、複数のマイクロプロセッサ、DSPコアと関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)回路、任意の他のタイプの集積回路(integrated circuit、IC)、及び/又は、状態マシンが挙げられる。そのようなプロセッサは、処理されたハードウェア記述言語(hardware description language、HDL)命令及びネットリストを含む他の中間データ(コンピュータ可読媒体に記憶させることが可能な命令)の結果を使用して製造プロセスを構成することによって製造することができる。そのような処理の結果はマスクワークとすることができ、このマスクワークをその後の半導体製造プロセスにおいて使用して、本開示の特徴を実装するプロセッサを製造する。更に、上述した方法及び装置は、メモリ物理リンクを制御及び構成するコンテキストで説明されるが、方法及び装置は、リンク幅がネゴシエートされる任意の相互接続プロトコルにおいて利用されてもよい。
【0065】
本明細書に提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェア又はファームウェアにおいて実装することができる。非一時的なコンピュータ可読記憶媒体の例としては、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(DVD)等の光学媒体が挙げられる。例えば、上述した方法は、プロセッサ102において、又は、コンピュータシステム100内の任意の他のプロセッサ上で実装され得る。加えて、上述した方法は、任意の構成要素(例えば、SOC101の構成要素)内のコントローラ、プロセッサ又は回路において実行され得る。
【国際調査報告】