(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6200503
(24)【登録日】2017年9月1日
(45)【発行日】2017年9月20日
(54)【発明の名称】遅延ロック・ループを使用するメモリ・デバイスのための省電力の装置及び方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20170911BHJP
G06F 1/04 20060101ALI20170911BHJP
【FI】
G06F12/00 564A
G06F12/00 550E
G06F1/04 575
【請求項の数】20
【全頁数】10
(21)【出願番号】特願2015-525534(P2015-525534)
(86)(22)【出願日】2013年7月31日
(65)【公表番号】特表2015-530644(P2015-530644A)
(43)【公表日】2015年10月15日
(86)【国際出願番号】US2013052852
(87)【国際公開番号】WO2014022474
(87)【国際公開日】20140206
【審査請求日】2016年7月19日
(31)【優先権主張番号】13/566,187
(32)【優先日】2012年8月3日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】507364997
【氏名又は名称】サイプレス セミコンダクター コーポレーション
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ハサン,カムルル
(72)【発明者】
【氏名】ジトロウ,クリフォード
(72)【発明者】
【氏名】ロスナー,ステファン
(72)【発明者】
【氏名】デュボイス,シルヴァン
【審査官】
後藤 彰
(56)【参考文献】
【文献】
米国特許出願公開第2012/0020171(US,A1)
【文献】
特開2010−277666(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 1/04
(57)【特許請求の範囲】
【請求項1】
DLLロック時間を有する遅延ロック・ループ(DLL)と、
初期データ・アクセス待ち時間を有するメモリ・デバイスと、
コントローラ待ち時間を有し、メモリ・アクセス命令を受信するように構成された、メモリ・コントローラであって、前記メモリ・アクセス命令を受信すると、前記コントローラ待ち時間、前記初期データ・アクセス待ち時間、及び前記DLLロック時間に基づいて決定されたタイミングで、DLLターン・オン・コマンドをDLLに提供する、メモリ・コントローラと、
を備え、
前記コントローラ待ち時間及び初期データ・アクセス待ち時間の合計が、前記DLLロック時間を超える、メモリ装置。
【請求項2】
有効なデータがデータ・バス上にある場合、前記DLLはロック状態にあり、前記データ・バスは、前記メモリ・デバイスと前記メモリ・コントローラとの間に結合を提供するように構成される、請求項1に記載のメモリ装置。
【請求項3】
前記DLLは、クロック信号(clk0)と、前記クロック信号(clk0)に対して90度前の位相であるクロック90(clk90)とを出力する、請求項1に記載のメモリ装置。
【請求項4】
前記DLLは、リセット信号ポートを介して前記DLLターン・オン・コマンドを受信する、請求項1に記載のメモリ装置。
【請求項5】
前記DLLは複数の同期クロック信号を出力し、各クロック信号は他のクロック信号から位相シフトされ、前記複数の同期クロック信号は4、8、及び16の同期クロック信号のうちの1つである、請求項1に記載のメモリ装置。
【請求項6】
前記DLLは、前記メモリ・アクセス命令の完了後に電源オフ状態に戻る、請求項1に記載のメモリ装置。
【請求項7】
前記DLLに結合されたカウンタを更に備え、前記カウンタは、前記DLLロック時間に対する前記コントローラ待ち時間及び初期データ・アクセス待ち時間の合計の超過を超えない遅延だけ、前記DLLターン・オン・コマンドの受信を遅延させるように構成される、請求項1に記載のメモリ装置。
【請求項8】
前記メモリ・アクセス命令は、メモリ読み取り命令及びメモリ書き込み命令を含む、請求項1に記載のメモリ装置。
【請求項9】
内部システム・バスを介して前記メモリ・コントローラに結合されたCPUを更に備える、請求項1に記載のメモリ装置。
【請求項10】
メモリ装置でメモリ・アクセス命令を受信することであって、前記メモリ装置は、初期データ・アクセス待ち時間を有するメモリ・デバイスと、DLLロック時間を有する遅延ロック・ループ(DLL)と、コントローラ待ち時間を有するメモリ・コントローラとを備える、受信すること、
前記メモリ・アクセス命令を受信すると、前記コントローラ待ち時間、前記初期データ・アクセス待ち時間、及び前記DLLロック時間に基づいて決定されたタイミングで、DLLターン・オン・コマンドをDLLに提供すること、及び、
前記DLLターン・オン・コマンドの受信に応答して前記DLLをロックすること、
を含み、
前記コントローラ待ち時間及び初期データ・アクセス待ち時間の合計が、前記DLLロック時間を超える、
方法。
【請求項11】
前記DLLのロックが完了し、結果として、有効なデータがデータ・バス上にある場合、前記DLLはロック状態にあり、前記データ・バスは、前記メモリ・デバイスと前記メモリ・コントローラとの間に結合を提供するように構成される、請求項10に記載の方法。
【請求項12】
クロック信号(clk0)と、前記クロック信号(clk0)に対して90度前の位相であるクロック90(clk90)とを出力することを更に含む、請求項10に記載の方法。
【請求項13】
前記DLLターン・オン・コマンドの受信に応答して前記DLLをロックすることは、リセット信号ポートを介して前記DLLターン・オン・コマンドを受信することを含む、請求項10に記載の方法。
【請求項14】
複数の同期クロック信号を出力することを更に含み、各クロック信号は他のクロック信号から位相シフトされ、前記複数の同期クロック信号は4、8、及び16の同期クロック信号のうちの1つである、請求項10に記載の方法。
【請求項15】
前記DLLをロックすることが完了した後に、前記メモリ・デバイスにアクセスすることを更に含む、請求項10に記載の方法。
【請求項16】
前記メモリ・アクセス命令の完了後に前記DLLを電源オフ状態に戻すことを更に含む、請求項10に記載の方法。
【請求項17】
前記DLLロック時間に対する前記コントローラ待ち時間及び初期データ・アクセス待ち時間の合計の前記超過に基づいて、前記DLLのロックを遅延させることを更に含む、請求項10に記載の方法。
【請求項18】
前記遅延させることはカウンタを使用することを含む、請求項17に記載の方法。
【請求項19】
前記メモリ・アクセス命令を復号することを更に含む、請求項10に記載の方法。
【請求項20】
メモリ装置を備えるシステムであって、前記メモリ装置は、
DLLロック時間を有する遅延ロック・ループ(DLL)と、
初期データ・アクセス待ち時間を有するメモリ・デバイスと、
コントローラ待ち時間を有し、メモリ・アクセス命令を受信するように構成された、メモリ・コントローラであって、前記メモリ・アクセス命令を受信すると、前記コントローラ待ち時間、前記初期データ・アクセス待ち時間、及び前記DLLロック時間に基づいて決定されたタイミングで、DLLターン・オン・コマンドをDLLに提供する、メモリ・コントローラと、
を備え、
前記コントローラ待ち時間及び初期データ・アクセス待ち時間の合計が、前記DLLロック時間を超える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本発明は、一般にメモリ・システムに関し、より具体的には、メモリ・システム内で使用するための遅延ロック・ループ(DLL)回路に関する。
【背景技術】
【0002】
[0002] 近年、データ伝送速度要件は劇的に増加し、近い将来もその増加が続くことが予想される。こうした増加の一途をたどるデータ速度要件を満たすため、プロセッサ及びメモリ・デバイスはその性能を向上させてきており、近い将来もその向上が継続することが予想される。メモリ・デバイスの性能向上の課題のうちの1つは、データ転送の整合性を維持しながら、メモリ要素(例えばメモリ・コントローラとメモリ・デバイス)間での転送速度を上げ得ることである。
【0003】
[0003] メモリ要素間での高速データ転送には、転送の整合性を維持するための同期が必要である。こうした同期は、データ転送のためのタイミング基準信号を提供するクロック信号によって提供可能である。
【0004】
[0004] データ速度要件の増加に加えて、システム設計者は、少ない占有量及び少ない電力を維持しながら、この機能の増加を達成することも追及している。
【発明の概要】
【発明が解決しようとする課題】
【0005】
[0005] DLL(遅延ロック・ループ)回路は、メモリ内外へのデータの転送を同期及び容易にするために、タイミング基準信号を提供することができる。前述の機能要件の増加に応答し、実施形態において、DLL回路が、メモリ・デバイスとの間のデータ伝送の整合性を保証するためにタイミング基準信号の信頼性を維持しながら、電力消費量を低減させることが望ましい。したがって、電力消費量を低減させながら、高性能DLL回路を達成することが可能な装置及び方法が求められている。
【課題を解決するための手段】
【0006】
[0006] 本発明の一実施形態において、メモリ・コントローラ、及び、データ伝送同期のためにDLL回路を使用する関連付けられたメモリ・デバイスに関する、省電力の装置及び方法について説明する。電力消費量を低減させるために、DLL回路は、メモリ・データ転送をサポートするために必要な期間はオンに切り替えられるが、その他の時間はオフに切り替えられる。メモリ・コントローラ・アクティビティの典型的なデューティ・サイクルを機会主義的に活用することによって、高速データ転送をサポートするために必要な同期を損なうことなく、電力消費量を大幅に低減させることができる。
【0007】
[0007] 本発明の他の実施形態、機能、及び利点、並びに本発明の様々な実施形態の構造及び動作について、添付の図面を参照しながら以下で詳細に説明する。
【図面の簡単な説明】
【0008】
【
図1】[0008]本発明の実施形態に従った、メモリ・システムを示す図である。
【
図2】[0009]従来のメモリ・システムのデータ読み取りタイミング分析図である。
【
図3】[0010]本発明の実施形態に従った、メモリ・システムのデータ読み取りタイミング分析図である。
【
図4】[0011]本発明の実施形態に従った、DLL回路の電力消費量を低減させるための方法を示すフローチャートである。
【発明を実施するための形態】
【0009】
[0012]
図1は、本発明の例示的な実施形態を示す。
図1は、コンピューティング・デバイス100、典型的なCPU110、メモリ・コントローラ120、及びメモリ・デバイス140を示す。CPU110は、内部システム・バス130を介して1つ又は複数のコマンドをメモリ・コントローラ120に送信する。受信された各コマンドについて、メモリ・コントローラ120はコマンドを復号し、メモリ・コマンド・バス160を介して適切なメモリ・コマンドをメモリ・デバイス140に送信する。メモリ・デバイス140は、メモリ・コマンドを復号する。これが読み取りコマンドである場合、メモリ・デバイス140はメモリ・データ・バス150を介してデータをメモリ・コントローラ120に返送する。メモリ・コントローラ120はデータをバッファに入れ、内部システム・バス130を介してこれをCPU110に返送する。同様に、受信されたメモリ・コマンドが書込みコマンドである場合、データはメモリ・コントローラ120を通り、メモリ・データ・バス150を介してメモリ・デバイス140に送信される。コンピューティング・デバイス100は、コンピュータ、携帯電話、消費者家電、自動車などを(制限なく)含む、CPU110及びメモリ・デバイス140に関係するデータ処理及びメモリ・アクセスを含む、任意のシステム、製品、コンパクト・デバイス、装置、又はそれらの一部とすることができる。
【0010】
[0013] メモリからの高速データ・アクセスの場合、メモリ・コントローラ120は、同期のための1つ又は複数の位相ロック・クロック信号を生成するDLL180を含む。DLL180は、入力信号、リセット入力信号182及び基準クロック入力信号184を受信する。リセット入力信号182が適用される(例えば、リセット信号が上昇する)場合、DLL180は
無効化され、休止モードに入る。リセット入力信号182が除去される(例えば、リセット信号が低下する)場合、DLL180は有効(アクティブ)になり、ロッキング・プロセスを開始する。ロッキング・プロセスは、1つ又は複数の出力クロック信号を基準クロック入力信号184にロックする。したがって、例えばDLL180がそのロック状態に入った場合、クロック出力信号(Clk0)186が基準クロック入力信号184に対してロックされる。DLL180が2つ又はそれ以上のクロック入力信号をサポートしている場合、クロック出力信号186、188のすべてが基準クロック入力信号184に対してロックされる。
【0011】
[0014] リセット信号を除去した後、DLL180は、リセット入力信号182の除去後にそのロック状態に達するための有限時間を必要とする。この有限時間はDLLロック時間と呼ばれる。DLLがそのロック状態に達した後、DLL180からのすべてのクロック出力186、188が有効になる。出力クロック信号186、188の妥当性は、ロック信号出力190によって示すことができる。
【0012】
[0015]
図2では、従来の読み取り動作に関する高水準タイミング
図200が示される。CPU110は、内部システム・バス130上で読み取りコマンド220を送信することによって、読み取り動作を開始する。メモリ・コントローラ120は、コマンドを復号するための有限時間を必要とする。この有限時間は、
図2ではコントローラ待ち時間230として示される。復号後、メモリ・コントローラ120は、メモリ・コマンド・バス160上でメモリ・デバイス140に読み取りコマンド240を送信する。メモリ・データ・アクセス・プロセスをサポートするために、基準クロック入力信号210がDLL180に提供される。メモリ・デバイス140は、メモリ・デバイス140の初期データ・アクセス待ち時間260後に、データの返送を開始する。
図2に示されるように、メモリ・データ・バス150はごく短い時間でデータ270をアクティブに転送する。しかしながら出力クロック信号250は、常時連続してアクティブのままである。結果として、DLL180も常時アクティブのままである。この結果、DLL180からの出力クロック信号をかなりの時間の部分使用しない場合であっても、DLLはかなりの電力を消費する。
【0013】
[0016]
図3は、電力消費量を低減させることが可能な本発明の実施形態を示す。
図3において、DLL180は入力として、DLLリセット信号360及びクロック基準入力信号310を受信する。
図3に示されるように、DLL180は初期にはリセット又は非アクティブ・モード390であるため、クロック出力信号Clk90 350は駆動されていない。読み取りコマンド320が内部システム・バス130上に出現すると、メモリ・コントローラ120はリセット信号360を除去し(例えばリセット信号をローにし)、DLL180のロック・プロセス392を開始させる。前述のように、メモリ・コントローラ120は読み取りコマンド320を復号し、コントロール待ち時間期間330後に、メモリ・コマンド・バス160を介して読み取りコマンド340をメモリ・デバイス140に送信する。メモリ・デバイス140は読み取りコマンドを復号する。初期データ・アクセス待ち時間370の後、メモリ・デバイス140は、メモリ・データ・バス150を介してデータ380をメモリ・コントローラ120に返送する。このデータ転送プロセスの間、DLLはそのロック状態394にあり、そのクロック出力信号350は、クロック基準入力信号310に対して適切にロックされる。データ転送プロセスの完了に続き、DLLは、リセット信号360の入力により(例えば、リセット信号が上昇する)、その非アクティブ状態396に戻る。前述のように、メモリ・コントローラ120はデータをバッファに入れ、内部システム・バス130を介してこれをCPU110に返送する。
【0014】
[0017] DLL180はそのロック状態で、基準として基準クロック入力信号310を使用し、基準クロック入力信号310に対してロックされたClk0 186(
図3には図示せず)及びClk90 188(90度シフトされたClk0)を生成する。実施形態において、Clk0及びClk90は、データ転送プロセス中の同期に使用される。別の実施形態において、信号基準クロック出力信号Clk90 188を、データ転送プロセス中の同期に使用することができる。他の実施形態において、DLLクロック出力信号の数は1つ又は2つのクロック基準出力信号に限定されない。例えば本発明の他の例示的な実施形態において、DLL180は2つより多くのクロック信号を生成することができる。例えばDLL180は、4、8、16の同期クロック信号を含む、他の数の同期クロック信号を生成することができる。これらの複数クロック信号の実施形態において、各クロック信号は他のクロック信号から位相シフトされる。
【0015】
[0018] 上記の説明は読み取りコマンドを想定している。しかしながら、本発明の実施形態は読み取りコマンドに限定されておらず、任意のメモリ・アクセス・コマンドをカバーしている。例えば、受信されたメモリ・コマンドが書き込みコマンドの場合、同様のプロセスを実行するが、データはCPU110から始まり、DLL180のロック状態394の間にメモリ・デバイス140に書き込まれるが、これらに限定されない。
【0016】
[0019] この方式では、DLL180は、メモリ・データ・バス150上に有効なデータ380が存在する直前にロックされる。したがって、メモリ・コントローラ120は、DLL180のロック・プロセスを十分早く開始する必要があるため、DLL180からのすべての出力クロックはロックされ、データがキャプチャされる必要がある場合に実行する。上記の手法の原理は、DLLが同期データ転送のために適切な時間にロックされるように、DLLロック時間392がコントロール待ち時間330及び初期データ・アクセス待ち時間370の合計よりも少なくなければならないことである。特に、実施形態では、以下の式を満たしていなければならない。
【0017】
[0020] DLLロック時間392<コントローラ待ち時間330+初期アクセス待ち時間320 式(1)
【0018】
[0021] コントロール待ち時間330、初期データ・アクセス待ち時間370、及びDLLロック時間392は、すべて予めわかっているため、上記手法の妥当性は、DLL180、メモリ・コントローラ120、及びメモリ・デバイス140の任意の特定の選択のために容易に確立することができる。
【0019】
[0022] 前述のように、及び
図3に示されるように、DLL180のロックは、メモリ・コントローラ120によって(読み取りコマンド320などの)メモリ・アクセス・コマンドが受信されると即時に開始することができる。本発明の他の実施形態において、電力消費量を更に低減させるために、DLL180のロックを遅延させることができる。例えば、DLLロック時間392に対するコントロール待ち時間330及び初期データ・アクセス待ち時間370の合計の超過は、DLL180のロックを最も遅い可能時間まで遅延させることによって活用することができる。DLL180のロック392の開始を遅延させることによって、更に電力消費量が低減される。
【0020】
[0023] DLL180のロック開始の遅延を実行するために、様々な方式を採用することができる。例示の実施形態において、メモリ・コントローラ120内のカウンタ195を使用して、メモリ・アクセス・コマンド(例えば読み取りコマンド320)の受信からDLL180のロック開始までの間の時間遅延量(例えばクロック・サイクル)をカウントすることができる。カウンタ195を使用して所望の遅延までカウントすること、又は、カウンタ195を使用して既知の遅延からゼロまでをカウントすることのいずれかによって、カウンタ195は、リセット信号182を形成するために使用される信号をDLL180に出力する。
【0021】
[0024] 本発明の更に他の実施形態において、カウンタ195は、時間が動的に測定可能であり、カウンタ195に送信することができる限りは、コントローラ待ち時間330及び初期データ・アクセス待ち時間370におけるリアルタイムの変更に応答することが可能な、動的カウンタとすることができる。
【0022】
[0025] 例示の実施形態において、DLL180のロック時間は6サイクルから40サイクル又はそれ以上の範囲が可能である。こうした実施形態において、コントローラ待ち時間は典型的には4から10サイクルが可能であり、初期アクセス待ち時間は、高速DRAMタイプ・デバイスの場合の24ns(333MHzクロックに対して8サイクル)から、不揮発性メモリNORタイプ・デバイスの場合の120ns(133MHzクロックに対して17サイクル)まで、変更可能である。こうしたパラメータ値は、上記の式(1)を満たし、変更を組み込むための豊富な機会を、設計者に与える。
【0023】
[0026]
図4は、本発明の実施形態に従った、高速メモリ・アクセス装置において電力消費量を低減させるための例示的な方法400のフローチャート(並びに、発熱の低減、作業寿命の延長などの関係する利点)を提供する。
【0024】
[0027] プロセスはステップ410で開始される。ステップ410で、メモリ・コントローラによってメモリ・アクセス・コマンドが受信される。実施形態において、メモリ・コントローラ120は、内部システム・バス130を介してCPU110からメモリ・アクセス命令(例えば読み取りコマンド320、書き込みコマンドなど)を受信することになる。
【0025】
[0028] こうした受信に応答して、ステップ420で、DLL180はターン・オン時にオンに切り替えられる。実施形態において、DLL180のオンへの切り替えが、リセット信号360の除去(例えばリセット信号360が低下する)によって達成され、ロック・プロセスが開始され、DLL180がロック状態にある間に後続のデータ転送が発生する。DLLのターン・オン時間は、必要なメモリ・データ転送時に、又はそれに先立ってDLLがロックされるように決定される。実施形態において、DLL180のターン・オン時間は、DLLロック時間392、コントローラ待ち時間330、及び初期データ・アクセス待ち時間370に基づいて決定される。DLL180は、メモリ・コントローラ120によるメモリ・アクセス・コマンドの受信と同時にターン・オンすることができる。別の方法として、DLL180のターン・オンは、DLLロック時間392に対するコントローラ待ち時間330及び初期データ・アクセス待ち時間370の合計の超過に基づいて、遅延させることができる。例示的な実施形態において、カウンタ195を使用して、DLL180がターン・オンされる以前に遅延を実装することができる。
【0026】
[0029] ステップ430で、データ転送が完了し、DLL180がオフに切り替えられる。実施形態において、メモリ・コントローラ120はデータ転送の完了を認識し、リセット信号360をDLL180に適用する(例えばリセット信号360が上昇する)。
【0027】
[0030] ステップ440で、方法400は終了する。
【0028】
[0031] 前述したように、上記の説明は上記の手法が展開可能な例示のアーキテクチャを例示的に示したものである。例えば、低デューティ・サイクルのシナリオに同期クロック信号が必要な、他のシステム、方法、又は適用例も、上記手法を使用することができる。
【0029】
[0032] 発明の概要及び要約のセクションではなく、発明を実施するための形態のセクションは、特許請求の範囲を解釈するために使用されることが意図されていることを理解されよう。発明の概要及び要約のセクションは、発明者等によって企図された本発明のすべてではなく1つ又は複数の例示的な実施形態を示すことができるため、いかなる場合にも本発明及び添付の特許請求の範囲を制限することは意図されていない。
【0030】
[0033] 以上、指定された機能の実装及びそれらの関係を示す機能構築ブロックを用いて、本発明について説明してきた。これらの機能構築ブロックの境界は、本明細書では説明の便宜上、任意で画定されている。指定された機能及びそれらの関係が適切に実行される限り、代替の境界が画定可能である。
【0031】
[0034] 特定の実施形態の前述の説明は、当技術分野の範囲内の知識を適用することによって、過度の実験なしに、本発明の一般的な概念を逸脱することなく、他者がこうした特定の実施形態を様々な適用のために容易に修正及び/又は適合することが可能なように、本発明の一般的な性質を完全に公開することになる。したがって、こうした適合及び修正は、本明細書で提示された教示及び助言に基づき、開示された実施形態の等価物の意味及び範囲内にあるものと意図される。本明細書における表現又は用語は、制限ではなく説明を目的としているため、結果として本明細書の用語又は表現は、教示及び助言に照らして当業者によって解釈されるものであることを理解されよう。
【0032】
[0035] 本発明の幅及び範囲は、前述のいずれの例示的な実施形態によっても制限されるべきではなく、以下の特許請求の範囲及びそれらの等価物に従ってのみ画定されるべきである。
【0033】
[0036] 本出願における特許請求の範囲は、親出願又は他の関連出願のそれらとは異なる。したがって出願人は、本出願との関連で親出願又は任意の先行出願に記載された特許請求の範囲のいかなる特記事項をも撤回する。したがって審査官は、回避するように記載されたいずれのこうした以前の特記事項及び引用文献も、再検討の必要があり得るものと勧告される。更に審査官は、本出願に記載されたいずれの特記事項も親出願内に、又は親出願に対して読み取られるべきでないことも想起される。