(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-13
(54)【発明の名称】メモリにおける拡張データクロック動作
(51)【国際特許分類】
G06F 12/00 20060101AFI20220406BHJP
G11C 7/10 20060101ALI20220406BHJP
G11C 7/22 20060101ALI20220406BHJP
G11C 11/4096 20060101ALI20220406BHJP
【FI】
G06F12/00 550E
G06F12/00 597C
G06F12/00 597D
G11C7/10 460
G11C7/22 100
G11C11/4096 550
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021550236
(86)(22)【出願日】2020-02-28
(85)【翻訳文提出日】2021-08-27
(86)【国際出願番号】 US2020020374
(87)【国際公開番号】W WO2020180677
(87)【国際公開日】2020-09-10
(32)【優先日】2019-03-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ジュンウォン・スー
(72)【発明者】
【氏名】デクスター・タミオ・チュン
(72)【発明者】
【氏名】マイケル・ハウジン・ロ
(72)【発明者】
【氏名】シャムクマール・ソジーア
(72)【発明者】
【氏名】ラヴィンドラ・クマール
【テーマコード(参考)】
5B160
5M024
【Fターム(参考)】
5B160CC03
5M024AA04
5M024BB37
5M024JJ04
5M024JJ32
5M024JJ56
5M024JJ58
5M024JJ59
5M024PP01
5M024PP07
(57)【要約】
データクロックを改善して電力消費を低減するための方法および装置が提示される。装置は、リンクを介してホストからデータクロックを受信し、データクロックをホストと同期させるように構成されたメモリを含む。メモリは、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックに基づいてトグルするように構成されたクロックツリーバッファと、データクロックがホストとメモリとの間で同期している間にデータクロックサスペンドコマンドを検出するように構成されたコマンドデコーダとを含む。クロックツリーバッファは、コマンドデコーダがデータクロックサスペンドコマンドを検出したことに応答して、データクロックに基づいてトグリングを無効化するように構成される。ホストは、データクロックがホストとメモリとの間で同期している間にデータクロックサスペンドコマンドをリンクを介してメモリに与えるように構成されたメモリコントローラを含む。
【特許請求の範囲】
【請求項1】
装置であって、
リンクを介してホストからデータクロックを受信し、前記データクロックを前記ホストと同期させるように構成されたメモリを備え、前記メモリが、
書込みデータをキャプチャするためにまたは読取りデータを出力するために前記データクロックに基づいてトグルするように構成されたクロックツリーバッファと、
前記データクロックが前記ホストと前記メモリとの間で同期している間にデータクロックサスペンドコマンドを検出するように構成されたコマンドデコーダとをさらに備え、前記クロックツリーバッファが、前記コマンドデコーダが前記データクロックサスペンドコマンドを検出したことに応答して、前記データクロックに基づいてトグリングを無効化するように構成される、
装置。
【請求項2】
前記コマンドデコーダが、前記データクロックサスペンドコマンドを検出することと読取りまたは書込みコマンドを検出することとの間の前記データクロックの同期を実行することなしに、前記データクロックサスペンドコマンドを検出した後に前記読取りまたは書込みコマンドを検出するようにさらに構成され、前記クロックツリーバッファが、前記コマンドデコーダが前記読取りまたは書込みコマンドを検出したことに応答して、前記データクロックに基づいてトグリングを開始するようにさらに構成される、請求項1に記載の装置。
【請求項3】
前記メモリが、前記読取りまたは書込みコマンドに応答して読取りまたは書込み動作を実行するように構成される、請求項2に記載の装置。
【請求項4】
前記メモリが、前記データクロックサスペンドコマンドの情報を記憶するように構成されたメモリモードレジスタをさらに備える、請求項1に記載の装置。
【請求項5】
前記データクロックサスペンドコマンドの前記情報が、前記メモリが前記データクロックサスペンドコマンドをサポートするかどうかを示す、請求項4に記載の装置。
【請求項6】
前記メモリが、低電力ダブルデータレートダイナミックランダムアクセスメモリ仕様に従って動作するように構成される、請求項3に記載の装置。
【請求項7】
前記データクロックサスペンドコマンドが、論理1におけるWS_WR、WS_RD、およびWS_FSのオペランドを含む、請求項6に記載の装置。
【請求項8】
前記ホスト、前記メモリ、および前記リンクを組み込んだ、コンピューティングシステム、モバイルコンピューティングシステム、モノのインターネットデバイス、仮想現実システム、または拡張現実システムのうちの1つをさらに備え、前記ホストが、前記コンピューティングシステム、前記モバイルコンピューティングシステム、前記モノのインターネットデバイス、前記仮想現実システム、または前記拡張現実システムのうちの前記1つのコンピューティング機能を実行するために前記メモリに結合された少なくとも1つのプロセッサをさらに備える、請求項6に記載の装置。
【請求項9】
前記メモリがLPDDR5メモリを含む、請求項8に記載の装置。
【請求項10】
前記クロックツリーバッファが、前記データクロックを受信するように構成されたデータクロックバッファから直接または間接的に出力を受信するように構成される、請求項8に記載の装置。
【請求項11】
装置であって、
リンクを介してメモリに結合されたホストを備え、前記ホストが、データクロックを前記メモリと同期させ、前記データクロックに基づいて書込みデータを出力するかまたは読取りデータをキャプチャするように構成され、
前記ホストが、
前記データクロックが前記ホストと前記メモリとの間で同期している間にデータクロックサスペンドコマンドを前記リンクを介して前記メモリに与えることであって、前記データクロックサスペンドコマンドが、クロックツリーバッファのトグリングを無効化するように前記メモリに通知し、前記クロックツリーバッファが、前記データクロックに基づいてトグルするように構成される、与えることと、
前記データクロックサスペンドコマンドを与えた後に前記データクロックをトグルすることと
を行うように構成されたメモリコントローラを備える、装置。
【請求項12】
前記メモリコントローラが、前記データクロックサスペンドコマンドを与えた後に読取りまたは書込みコマンドを前記リンクを介して前記メモリに与えるようにさらに構成され、前記読取りまたは書込みコマンドが、データクロックバッファのトグリングを開始するように前記メモリに通知する、請求項11に記載の装置。
【請求項13】
前記メモリコントローラが、前記データクロックサスペンドコマンドを与えることと前記読取りまたは書込みコマンドを与えることとの間の前記データクロックの同期を実行することなしに、前記メモリにアクセスするための前記読取りまたは書込みコマンドを与えるように構成される、請求項12に記載の装置。
【請求項14】
前記メモリコントローラが、前記データクロックサスペンドコマンドの情報についてのモードレジスタ読取りコマンドを前記リンクを介して前記メモリに与えるように構成され、前記データクロックサスペンドコマンドの前記情報に基づいて前記データクロックサスペンドコマンドを与えるように構成される、請求項13に記載の装置。
【請求項15】
前記データクロックサスペンドコマンドの前記情報が、前記メモリが前記データクロックサスペンドコマンドをサポートするかどうかを示す、請求項14に記載の装置。
【請求項16】
前記メモリコントローラが、低電力ダブルデータレートダイナミックランダムアクセスメモリ仕様に従って動作するように構成される、請求項14に記載の装置。
【請求項17】
前記データクロックサスペンドコマンドが、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランドを含む、請求項16に記載の装置。
【請求項18】
前記ホスト、前記メモリ、および前記リンクを組み込んだ、コンピューティングシステム、モバイルコンピューティングシステム、モノのインターネットデバイス、仮想現実システム、または拡張現実システムのうちの1つをさらに備え、前記ホストが、前記コンピューティングシステム、前記モバイルコンピューティングシステム、前記モノのインターネットデバイス、前記仮想現実システム、または前記拡張現実システムのうちの前記1つのコンピューティング機能を実行するために前記メモリに結合された少なくとも1つのプロセッサをさらに備える、請求項16に記載の装置。
【請求項19】
前記メモリがLPDDR5メモリを含む、請求項18に記載の装置。
【請求項20】
前記読取りまたは書込みコマンドが、前記データクロックサスペンドコマンドの後の第1の時間期間と第2の時間期間との間にある、請求項18に記載の装置。
【請求項21】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する方法であって、
前記メモリによって、前記リンクを介して前記ホストから前記データクロックを受信するステップと、
前記メモリによって、前記データクロックを前記ホストと同期させるステップと、
前記メモリのクロックツリーバッファによって、書込みデータをキャプチャするためにまたは読取りデータを出力するために前記データクロックに基づいてトグルするステップと、
前記メモリによって、前記データクロックが前記メモリと前記ホストとの間で同期している間にデータクロックサスペンドコマンドを検出するステップと、
前記データクロックサスペンドコマンドを検出したことに応答して、前記データクロックに基づいて前記クロックツリーバッファのトグリングを無効化するステップと
を含む方法。
【請求項22】
前記メモリによって、前記データクロックサスペンドコマンドを検出した後に読取りまたは書込みコマンドを検出するステップと、
前記クロックツリーバッファによって、前記読取りまたは書込みコマンドを検出したことに応答して、前記データクロックに基づいてトグリングを開始するステップと
をさらに含む、請求項21に記載の方法。
【請求項23】
前記メモリによって、前記読取りまたは書込みコマンドに応答して、前記データクロックサスペンドコマンドを検出することと前記読取りまたは書込みコマンドを検出することとの間の前記データクロックの同期を実行することなしに、読取りまたは書込み動作を実行するステップ
をさらに含む、請求項22に記載の方法。
【請求項24】
メモリモードレジスタによって、前記データクロックサスペンドコマンドの情報を記憶するステップ
をさらに含む、請求項21に記載の方法。
【請求項25】
前記データクロックサスペンドコマンドの前記情報が、前記メモリが前記データクロックサスペンドコマンドをサポートするかどうかを示す、請求項24に記載の方法。
【請求項26】
前記メモリが、低電力ダブルデータレートダイナミックランダムアクセスメモリ仕様に従って動作する、請求項23に記載の方法。
【請求項27】
前記データクロックサスペンドコマンドが、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランドを含む、請求項26に記載の方法。
【請求項28】
前記リンクがLPDDR5仕様に従って動作する、請求項27に記載の方法。
【請求項29】
前記メモリがLPDDR5メモリを含む、請求項28に記載の方法。
【請求項30】
前記ホストが前記LPDDR5仕様に従って動作する、請求項29に記載の方法。
【請求項31】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する方法であって、
前記リンクを介して前記ホストと前記メモリとの間で前記データクロックを同期させるステップと、
前記メモリのクロックツリーバッファによって、書込みデータをキャプチャするためにまたは読取りデータを出力するために前記データクロックに基づいてトグルするステップと、
前記リンクを介して前記ホストによって前記メモリに、前記データクロックが前記ホストと前記メモリとの間で同期している間にデータクロックサスペンドコマンドを与えるステップと、
前記クロックツリーバッファによって、前記データクロックサスペンドコマンドに応答して、前記データクロックに基づいてトグリングを無効化するステップと、
前記ホストによって、前記データクロックサスペンドコマンドを与えた後に前記データクロックをトグルするステップと
を含む方法。
【請求項32】
前記リンクを介して前記ホストによって前記メモリに、前記データクロックサスペンドコマンドを与えることと読取りまたは書込みコマンドを与えることとの間の前記データクロックの同期を実行することなしに、前記データクロックサスペンドコマンドの後に前記読取りまたは書込みコマンドを与えるステップをさらに含む、請求項31に記載の方法。
【請求項33】
前記メモリによって、前記読取りまたは書込みコマンドに応答して前記クロックツリーバッファのトグリングを開始するステップをさらに含む、請求項32に記載の方法。
【請求項34】
前記メモリによって、前記読取りまたは書込みコマンドに応答して前記読取りまたは書込み動作を実行するステップをさらに含む、請求項33に記載の方法。
【請求項35】
前記リンクを介して前記ホストによって前記メモリに、モードレジスタ読取りコマンドを与えるステップと、
前記リンクを介して前記メモリによって前記ホストに、前記モードレジスタ読取りコマンドに応答して前記データクロックサスペンドコマンドの情報を与えるステップと
をさらに含む、請求項31に記載の方法。
【請求項36】
前記データクロックサスペンドコマンドの前記情報が、前記メモリが前記データクロックサスペンドコマンドをサポートするかどうかを示す、請求項35に記載の方法。
【請求項37】
前記データクロックサスペンドコマンドを与えるステップが、前記データクロックサスペンドコマンドの前記情報に応答したものである、請求項36に記載の方法。
【請求項38】
前記ホスト、前記メモリ、および前記リンクが、低電力ダブルデータレートダイナミックランダムアクセスメモリ仕様に従って動作する、請求項37に記載の方法。
【請求項39】
前記データクロックサスペンドコマンドが、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランドを含む、請求項38に記載の方法。
【請求項40】
前記ホストがLPDDR5仕様に従って動作する、請求項39に記載の方法。
【請求項41】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する方法であって、
前記リンクを介して前記ホストによって前記メモリに、データクロック同期コマンドを与えるステップと、
前記リンクを介して前記ホストによって前記メモリに、前記データクロックを同期させた後にデータクロックサスペンドコマンドを与えるステップであって、前記データクロックサスペンドコマンドが、前記データクロックに基づいてトグルするデータクロックバッファを無効化するように前記メモリに通知する、ステップと、
前記ホストによって、前記データクロックサスペンドコマンドを与えた後に前記データクロックをトグルするステップと
を含む方法。
【請求項42】
前記リンクを介して前記ホストによって前記メモリに、前記データクロックサスペンドコマンドを与えることと読取りまたは書込みコマンドを与えることとの間の前記データクロックの同期を実行することなしに、前記データクロックサスペンドコマンドの後に前記読取りまたは書込みコマンドを与えるステップ
をさらに含む、請求項41に記載の方法。
【請求項43】
前記メモリが、前記読取りまたは書込みコマンドに応答して前記データクロックバッファのトグリングを開始する、請求項42に記載の方法。
【請求項44】
前記メモリが、前記読取りまたは書込みコマンドに応答して読取りまたは書込み動作を実行する、請求項43に記載の方法。
【請求項45】
前記リンクを介して前記ホストによって前記メモリに、前記データクロックサスペンドコマンドの情報についてのモードレジスタ読取りコマンドを与えるステップ
をさらに含む、請求項42に記載の方法。
【請求項46】
前記データクロックサスペンドコマンドの前記情報が、前記メモリが前記データクロックサスペンドコマンドをサポートするかどうかを示す、請求項45に記載の方法。
【請求項47】
前記データクロックサスペンドコマンドを与えるステップが、前記データクロックサスペンドコマンドの前記情報に応答したものである、請求項46に記載の方法。
【請求項48】
前記ホスト、前記メモリ、および前記リンクが、低電力ダブルデータレートダイナミックランダムアクセスメモリ仕様に従って動作する、請求項41に記載の方法。
【請求項49】
前記データクロックサスペンドコマンドが、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランドを含む、請求項41に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
米国特許法第119条に基づく優先権の主張
本特許出願は、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、2020年2月27日に出願された「ENHANCED DATA CLOCK OPERATIONS IN MEMORY」と題する非仮出願第16/803,977号、および2019年3月1日に出願された「ENHANCED DATA CLOCK OPERATIONS IN MEMORY」と題する仮出願第62/812,689号の優先権を主張する。
【0002】
本開示は、一般に、拡張データクロック動作を有する方法および装置に関し、より詳細には、データクロックが常時オンモードである間に電力消費を低減するためのデータクロックサスペンドモードを有する方法および装置に関する。
【背景技術】
【0003】
コンピューティングデバイス(たとえば、ラップトップ、モバイルフォンなど)は、テレフォニー、ワイヤレスデータアクセス、およびカメラ/ビデオ機能などの様々な機能を実行するための1つまたはいくつかのプロセッサを含み得る。メモリは、コンピューティングデバイスの重要な構成要素である。1つのプロセッサは、上述のコンピューティング機能を実行するためにメモリに結合され得る。たとえば、1つのプロセッサは、コンピューティング機能を実行する、および/またはこれらのコンピューティング機能などを処理するなどのための一時データをメモリ内に記憶するために、メモリから命令をフェッチし得る。
【0004】
メモリは、半導体ダイ上に1つのプロセッサとともに埋め込まれてもよく、または異なる半導体ダイの一部であってもよい。メモリは様々な機能を実行し得る。たとえば、メモリはキャッシュ、レジスタファイル、またはストレージとして使用され得る。メモリは様々な種類のものであり得る。たとえば、メモリは、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、NANDフラッシュ、またはNORフラッシュなどであり得る。
【0005】
コンピューティングデバイスが速度の増加とともにより多くの機能を実行するという需要が増大するにつれて、電力の問題も増大する。省電力化はモバイルコンピューティングデバイスにおいて特に関心の対象となり得るが、非モバイルデバイスも電力消費を低減して廃熱の発生を低減させることから利益を得る場合がある。したがって、様々な種類のコンピューティングデバイスが、電力消費を削減したメモリシステムから利益を得る場合がある。したがって、電力消費を低減するための方式が望ましい。
【発明の概要】
【課題を解決するための手段】
【0006】
この概要は、いくつかの例示的な態様の特徴を特定するものであり、開示する主題の排他的または包括的な説明ではない。以下の詳細な説明を読み、その一部を形成する図面を見れば、追加の特徴および態様が説明され、当業者に明らかになるであろう。
【0007】
少なくとも1つの実施形態による装置は、リンクを介してホストからデータクロックを受信し、データクロックをホストと同期させるように構成されたメモリを含み、メモリは、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックに基づいてトグルするように構成されたクロックツリーバッファと、データクロックがホストとメモリとの間で同期している間にデータクロックサスペンドコマンドを検出するように構成されたコマンドデコーダとをさらに備える。クロックツリーバッファは、コマンドデコーダがデータクロックサスペンドコマンドを検出したことに応答して、データクロックに基づいてトグリングを無効化するように構成される。
【0008】
少なくとも1つの実施形態による別の装置は、リンクを介してメモリに結合されたホストを含む。ホストは、データクロックをメモリと同期させ、データクロックに基づいて書込みデータを出力するかまたは読取りデータをキャプチャするように構成される。ホストは、データクロックがホストとメモリとの間で同期している間にデータクロックサスペンドコマンドをリンクを介してメモリに与えるように構成されたメモリコントローラを含む。データクロックサスペンドコマンドは、クロックツリーバッファのトグリングを無効化するようにメモリに通知し、クロックツリーバッファは、データクロックに基づいてトグルするように構成される。メモリコントローラは、データクロックサスペンドコマンドを与えた後にデータクロックをトグルするようにさらに構成される。
【0009】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する方法は、リンクを介してホストとメモリとの間でデータクロックを同期させるステップと、メモリのクロックツリーバッファによって、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックに基づいてトグルするステップと、リンクを介してホストによってメモリに、データクロックがホストとメモリとの間で同期している間にデータクロックサスペンドコマンドを与えるステップと、クロックツリーバッファによって、データクロックサスペンドコマンドに応答してデータクロックに基づいてトグリングを無効化するステップと、ホストによって、データクロックサスペンドコマンドを与えた後にデータクロックをトグルするステップとを含む。
【0010】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する別の方法は、リンクを介してホストによってメモリに、データクロック同期コマンドを与えるステップと、リンクを介してホストによってメモリに、データクロックを同期させた後にデータクロックサスペンドコマンドを与えるステップとを含む。データクロックサスペンドコマンドは、データクロックに基づいてトグルするデータクロックバッファを無効化するようにメモリに通知する。方法は、ホストによって、データクロックサスペンドコマンドを与えた後にデータクロックをトグルするステップをさらに含む。
【0011】
リンクを介してホストに結合されたメモリのためのデータクロックの電力を低減する別の方法は、メモリによって、リンクを介してホストからデータクロックを受信するステップと、メモリによって、データクロックをホストと同期させるステップと、メモリのクロックツリーバッファによって、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックに基づいてトグルするステップと、メモリによって、データクロックがメモリとホストとの間で同期している間にデータクロックサスペンドコマンドを検出するステップと、データクロックサスペンドコマンドを検出したことに応答して、データクロックに基づいてクロックツリーバッファのトグリングを無効化するステップとを含む。
【0012】
次に装置および方法の様々な態様が、例として、限定としてではなく、添付の図面を参照しながら詳細な説明において提示される。
【図面の簡単な説明】
【0013】
【
図1】本開示のいくつかの態様による、少なくとも1つのプロセッサと、メモリと、少なくとも1つのプロセッサおよびメモリを結合するリンクとを組み込んだ装置を示す図である。
【
図2】本開示のいくつかの態様による、
図1のリンクを介してホストによってメモリに与えられたデータクロック同期(WCK2CK)コマンドを示す図である。
【
図3】本開示のいくつかの態様による、データサスペンド(WCK SUSPEND)モードでのデータクロック(WCK)同期の波形を示す図である。
【
図4】本開示のいくつかの態様による、
図1のリンクを介したホストとメモリとの間のデータクロック(WCK)サスペンドモードの動作および通信を示す図である。
【
図5】本開示のいくつかの態様による、データクロック同期(WCK2CK)サスペンドモードを動作させる
図1の拡張データクロックモジュールを含むメモリコントローラの部分を示す図である。
【
図6】本開示のいくつかの態様による、データクロック(WCK)サスペンドモードを動作させる
図1のメモリI/Oモジュール160の部分を示す図である。
【
図7】本開示のいくつかの態様による、
図1のリンク190を介してホストに結合されたメモリのためのデータクロック(WCK)の電力を低減する方法を示す図である。
【
図8】本開示のいくつかの態様による、
図1のリンクを介してホストに結合されたメモリのためのデータクロック(WCK)の電力を低減する方法を示す図である。
【発明を実施するための形態】
【0014】
添付の図面に関して以下に記載する詳細な説明は、様々な構成について説明するものであり、本明細書で説明する概念が実践され得る唯一の構成を表すものではない。詳細な説明は、様々な概念の完全な理解を与えるための具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることは、当業者には明らかであろう。いくつかの事例では、そのような概念を不明瞭にすることを回避するために、よく知られている構造および構成要素がブロック図の形態で示される。
【0015】
本明細書で使用する場合、動詞「結合する」の様々な時制における「に結合された」という用語は、特定の意図された機能を動作させるために、要素Aが要素Bに直接接続されること、または他の要素が要素Aと要素Bとの間に接続され得ること(すなわち、要素Aが要素Bと間接的に接続されること)を意味することがある。電気的構成要素の場合、「に結合された」という用語は、ワイヤ、トレース、または他の導電性材料が要素Aおよび要素B(ならびにそれらの間で電気的に接続される任意の構成要素)を電気的に接続するために使用されることを意味するために本明細書で使用されることもある。いくつかの例では、「に結合された」という用語は、特定の意図された機能を動作させるための、要素Aと要素Bとの間の電気エネルギーの伝達を意味する。
【0016】
いくつかの例では、「電気的に接続された」という用語は、要素Aと要素Bとの間を流れる電流を有すること、またはそのような電流を有するように構成可能であることを意味する。たとえば、要素Aおよび要素Bは、ワイヤ、トレース、または他の導電性材料および構成要素に加えて、レジスタ、トランジスタ、またはインダクタを介して接続され得る。さらに、無線周波数機能の場合、要素Aおよび要素Bはキャパシタを介して「電気的に接続され」得る。
【0017】
「第1の」、「第2の」、「第3の」などの用語は、参照しやすいように用いられ、実質的な意味をもたないことがある。同様に、構成要素/モジュールの名称は、参照しやすいように採用されることがあり、構成要素/モジュールを限定しないことがある。たとえば、そのような非限定的な名称は、「クロックツリー」バッファ、「コマンド」デコーダ、「メモリモード」レジスタ、および/または「メモリ」コントローラを含み得る。本開示で提示するモジュールおよび構成要素は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せにおいて実装され得る。
【0018】
「バスシステム」という用語は、「バスシステム」に結合された要素が直接または間接的にそれらの間で情報を交換し得ることを規定し得る。そのような様式では、「バスシステム」は、複数の物理接続ならびにバッファ、ラッチ、レジスタなどの介在ステージを包含し得る。モジュールは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せにおいて実装され得る。
【0019】
拡張データクロック動作を有するメモリを組み込んだ方法および装置が提示される。ホストとメモリとの間のデータクロックは、ホストがメモリにアクセスする(たとえば、読み取るまたは書き込む)ために同期し得る。同期すると、データクロックは常時オンモードになり得るか、または同期を維持するために自走し得る。メモリはデータクロックによって駆動されるクロックツリーを含み得るので、ホストがメモリにアクセスしていないときでも、データクロックが常時オンモードで動作しているときには、クロックツリーは電力を消費する。
【0020】
拡張データクロック動作は、データクロックが常時オンモードであり、トグルしている間に、メモリがクロックツリーをゲート制御することを可能にするように提示される。データクロックは、ホストとメモリとの間で同期したままである。有利には、データクロックが同期したままであるので、再同期のためのサイクルを追加することなしに、メモリがクロックツリーをゲート制御するときの電力が低減される。
【0021】
低電力ダブルデータレート(LPDDR)シンクロナスダイナミックランダムアクセスメモリ(SDRAM)の非限定的な例として、方法および装置が本開示で提示される。たとえば、電子デバイス技術合同協議会(JEDEC:Joint Electronic Device Engineering Council)によって公表されたLPDDR仕様に従って動作するLPDDRメモリ。そのようなLPDDR仕様はLPDDR5であり得る。
【0022】
図1は、本開示のいくつかの態様による、ホスト110と、メモリ150と、ホスト110およびメモリ150を結合するリンク190とを組み込んだ装置100を示す。装置100は、たとえば、コンピューティングシステム(たとえば、サーバ、データセンタ、デスクトップコンピュータ)、モバイルコンピューティングデバイス(たとえば、ラップトップ、セルフォン、ビークルなど)、モノのインターネットデバイス、仮想現実(VR)システム、または拡張現実(AR)システムなどのうちの1つであり得る。ホスト110は、データ処理、データ通信、グラフィックディスプレイ、カメラ、ARまたはVRレンダリング、画像処理などのうちの1つなどのコンピューティング機能を実行するためにリンク190を介してメモリ150に結合された少なくとも1つのプロセッサ120を含み得る。たとえば、メモリ150は、少なくとも1つのプロセッサ120が上述のコンピューティング機能を実行するための命令またはデータを記憶し得る。少なくとも1つのプロセッサ120は、処理論理の集合または1つもしくは複数の中央処理ユニットであり得る。たとえば、少なくとも1つのプロセッサ120は、上述のコンピューティング機能を実装するように構成された、中央処理ユニット(CPU)122、グラフィック処理ユニット(GPU)123、またはデジタル信号プロセッサ(DSP)124であり得る。
【0023】
図1は、ホストがバスシステム115を介してメモリコントローラ130に結合された少なくとも1つのプロセッサ120を含み、少なくとも1つのプロセッサ120がメモリコントローラ130およびリンク190を介してメモリ150に結合されることを示す。メモリは、LPDDR DRAM(たとえば、LPDDR5)であり得る。ホスト110、メモリ150、および/またはリンク190は、LPDDR(たとえば、LPDDR5)仕様に従って動作し得る。以下で提示するように、メモリ150は、リンク190を介してホスト110からデータクロック(たとえば、WCK)を受信し、データクロックWCKをホスト110と同期させる(たとえば、ホスト110からのコマンドおよびアドレスクロックと同期させる)ように構成され得る。
【0024】
メモリコントローラ130は、拡張データクロックモジュール132およびホストI/Oモジュール134を含み得る。拡張データクロックモジュール132は、いつデータクロックサスペンドモードなどの拡張データクロック動作が有益であるかを決定し、データクロックサスペンドコマンドを発行してデータクロックサスペンドモードに入るように構成され得る。ホストI/Oモジュール134は、リンク190上で信号を駆動し、受信するように構成され得る。ホストI/Oモジュール134は、PHYレイヤとして知られていることがあり、電気的特性(たとえば、電圧レベル、位相、遅延、周波数など)を制御するか、またはリンク190上のシグナリングの電気的特性に基づいて信号を受信するように構成され得る。いくつかの例では、ホストI/Oモジュール134は、データクロックWCKに基づいてリンク190を介して書込みデータをメモリ150に出力するように構成され得る。たとえば、ホストI/Oモジュール134は、データクロックWCKと同期した書込みデータを出力するように構成され得る。いくつかの例では、ホストI/Oモジュール134は、データクロックWCKに基づいてリンク190を介してメモリ150から読取りデータをキャプチャするように構成され得る。たとえば、ホストI/Oモジュール134は、読取りデータをキャプチャするための(たとえば、サンプリングするための)バッファがクロック制御されるかまたはデータクロックWCKに基づくように構成され得る。
【0025】
いくつかの例では、リンク190は、ホスト110およびメモリ150が異なるダイ上にある、ホスト110とメモリ150との間のチップ間リンクまたはダイ間リンクであってもよい。いくつかの例では、リンク190は、ホスト110およびメモリ150が同じダイ上にある、ダイ内リンクであってもよい。たとえば、リンク190は、ホスト110からメモリ150への単方向信号(たとえば、データクロック(WCK)、コマンドおよびアドレス(CA)、CAクロック(CLK)など)と、双方向指向性信号(データ(DQ)、データストローブ(DQS)など)とを送信するための信号線を含む、複数の信号線を含んでもよい。たとえば、CAは、CASシグナリング/ピン、チップ選択(CS)シグナリング/ピン、および列アドレス(CA)シグナリングを含み得る。リンク190およびホスト110とメモリ150との間のシグナリングは、JEDEC DRAM仕様(たとえば、LPDDR5)に従い得る。いくつかの例では、メモリ150は、書込み動作の場合は(たとえば、DQにおいて受信された)書込みデータをキャプチャするためにまたはサンプリングするために、かつ読取り動作の場合は(たとえば、DQにおいて出力された)読取りデータをトグルするために、データクロックWCKを使用し得る。したがって、メモリ150は、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックWCKを利用し得る。
【0026】
図1は、バスシステム172を介して結合された、メモリI/Oモジュール160と、メモリアレイ162と、モードレジスタ170と、コマンドデコーダ173とを有するメモリ150を示す。メモリI/Oモジュール160は、リンク190上で信号を駆動し、受信するように構成され得る。メモリI/Oモジュール160は、PHYレイヤとして知られていることがあり、電気的特性(たとえば、電圧レベル、位相、遅延、周波数など)を制御するか、またはリンク190上のシグナリングの電気的特性に基づいて信号を受信するように構成され得る。たとえば、メモリI/Oモジュール160は、データクロックWCKに基づいてリンク190を介してホスト110から書込みデータをキャプチャする(たとえば、サンプリングする)ように構成され得る。いくつかの例では、メモリI/Oモジュール160は、データクロックWCKに基づいてクロック制御された書込みデータをキャプチャするためにバッファをクロック制御するように構成され得る。いくつかの例では、メモリI/Oモジュール160は、データクロックWCKに基づいてリンク190を介して読取りデータをホスト110に出力するように構成され得る。たとえば、ホストI/Oモジュール134は、出力する読取りデータをデータクロックWCKと同期させるように構成され得る。
【0027】
メモリアレイ162は、データを記憶する複数のメモリセル(たとえば、DRAMメモリセル)を含み得る。少なくとも1つのプロセッサは、リンク190を介して、メモリアレイ162に記憶されたデータを読み取りかつ/またはメモリアレイ162にデータを書き込み得る。メモリアレイ162は、複数のメモリバンク180-1~180-Mに配置され得る。メモリアレイ162は、READコマンドまたはWRITEコマンドを介してアクセスされ(たとえば、読み取られまたは書き込まれ)得る。
【0028】
モードレジスタ170は、メモリ150の動作、シグナリング特性、および/または情報についての値を記憶するレジスタまたはレジスタを含み得る。モードレジスタ170は、モードレジスタ読取り(MRR)コマンドまたはモードレジスタ書込み(MRW)コマンドを介してアクセスされ(たとえば、読み取られまたは書き込まれ)ることがあり、MRRコマンドおよびMRWコマンドは、READコマンドおよびWRITEコマンドとは異なる(たとえば、MRRコマンドおよびMRWコマンドはメモリアレイ162(
図1)にアクセスしない)。たとえば、メモリコントローラ130は、リンク190を介してMRWコマンドを発行して、読取りまたは書込み動作のためにメモリ150をセットアップし得る。MRWコマンドに応答して、メモリ150は、MRWコマンドによって与えられたオペランドまたはOPをモードレジスタ170に記憶する。
【0029】
いくつかの例では、MRRコマンドおよびMRWコマンドはメモリアレイ162にアクセスしない。たとえば、モードレジスタ170に書き込まれるまたはモードレジスタ170から読み取られるオペランドは、メモリアレイ162に書き込まれないまたはメモリアレイ162から読み取られない。モードレジスタ170はWCKサスペンドレジスタ171を含む。WCKサスペンドレジスタ171は、データクロック(WCK)サスペンドコマンドの情報を記憶するように構成され得る。たとえば、WCKサスペンドレジスタ171は、メモリ150がデータクロック(WCK)サスペンドコマンドなどの拡張データクロックWCK動作をサポートするまたは可能にするかどうかを示す値を記憶するように構成され得る。
【0030】
書込み動作の場合、少なくとも1つのプロセッサ120は、バスシステム115を介して書込み要求をメモリコントローラ130に発行し得る。メモリコントローラ130は、リンク190のCAおよびCLKを介してWRITEコマンドをメモリ150に発行し得る。書込みデータは、リンク190のDQを介してメモリコントローラ130によって与えられ、データクロックWCKによってクロック制御される。応答して、メモリ150は、WRITEコマンドによってアドレス指定されたメモリアレイ162に書込みデータを記憶する。
【0031】
読取り動作の場合、少なくとも1つのプロセッサ120は、バスシステム115を介して読取り要求をメモリコントローラ130に発行し得る。メモリコントローラ130は、リンク190のCA(たとえば、クロックCLK、アドレス、コマンド)を介してREADコマンドをメモリ150に発行し得る。応答して、メモリ150は、READコマンドによってアドレス指定されたメモリアレイ162に記憶されたデータを少なくとも1つのプロセッサ120に出力する。データは、リンク190のDQを介して出力され、データクロックWCK(および/またはRDQS)によってクロック制御され得る。メモリ150(たとえば、メモリI/Oモジュール160)は、ホスト110からデータクロックWCKを受信し、内部クロックツリーを使用して、DQをクロック制御するために内部データクロックWCKを駆動およびバッファし得る。
【0032】
データクロックWCKは、CAクロックCLKとは異なる周波数で動作し得る。たとえば、データクロックWCKは、LPDDR5に従って、CLKの周波数の2倍または4倍で動作し得る。メモリ150は、WCKクロックツリーの周波数をCLKと一致させるために周波数分割器を使用し得る。そのような機能は、CAクロックCLKの状態と内部WCKクロックツリーの状態の同期を必要とし得る。このプロセスは(たとえば、LPDDR5仕様では)WCK2CK同期として知られていることがあり、いくつかの同期サイクルを必要とし得る。
【0033】
ホスト110(たとえば、メモリコントローラ130)は、リンク190を介してWCK2CK SYNCコマンドを発行することによって、WCK2CK同期を開始し得る。WCK2CK SYNCコマンドはCASコマンドであり得る。たとえば、コマンドおよびアドレス(CA)のCAS信号をトグルすることは、読取りまたは書込みコマンドに先行する。たとえば、読取りまたは書込みコマンドは、WCK2CK SYNCコマンドのCASコマンドの直後に続くことができる。応答して、ホスト110およびメモリ150は、データクロックWCKクロッキング(たとえば、トグリング)との同期サイクルに関与する。
【0034】
WCK2CK同期を介して同期を確立すると、データクロックWCKは同期を保つために常時オン(たとえば、自走)になり得る。データクロックWCKがクロック制御する(たとえば、トグルする)限り、データクロックWCKはホスト110とメモリ150との間で同期したままとなるであろう。WCK2CK同期は、メモリ150が電源切断、自己リフレッシュ電源切断、ディープスリープ、またはリセットのためのコマンドを受信することによって終了され得る。データクロックWCKのそのような常時オンモードは、後続の読取りおよび書込みコマンドが再同期を必要としなくなるので、性能を改善するであろう。しかしながら、データクロックWCKがトグルすると、メモリ150がアイドルである(たとえば、読取りまたは書込みを行っていない)ときでも、メモリ150は内部WCKクロックツリーのトグリングに起因する電流を引き込み続ける。
【0035】
コマンドデコーダ173は、リンク190を介してホスト110(たとえば、メモリコントローラ130)によって与えられた様々なコマンドを復号するように構成され得る。たとえば、コマンドデコーダ173は、読取りコマンド、書込みコマンド、および上記で提示した様々なWCK2CKコマンドを復号するように構成され得る。
【0036】
図2は、本開示のいくつかの態様による、
図1のリンク190を介してホスト110によってメモリ150に与えられたデータクロック同期(WCK2CK SYNC)コマンドを示す図である。
図2は、CASコマンドとして発行されたWCK2CK SYNCコマンドの
図210と、(WCK2CK SYNC)CASコマンドのモードの
図220とを含む。
図210は、(WCK2CK SYNC)CASコマンドが任意のバンク構成上で動作可能であることを示す。クロックCK立上りエッジにおいて、CSピンは高であり、WCK2CK SYNCコマンドのオペランドはアドレスCA0~CA6において与えられる。クロックCK立下りエッジにおいて、追加のオペランドが入力される。オペランド(たとえば、WCK2CK SYNCコマンドのいくつかの態様を示す変数、フィールド、または値)は、LPDDR5仕様によって規定されるように、DC0~DC3、WS_WR、WS_RD、WS_FS、WRX、WXS、B3を含み得る。たとえば、論理1におけるWS_WRは、書込みコマンドがWCK2CK SYNCコマンドの直後に続くことを示し得る。論理1におけるWS_RDは、読取りコマンドがWCK2CK SYNCコマンドの直後に続くことを示し得る。WS_FSは、高速同期を示し得る。WRXおよびWXSは、Write X機能を示し得る(たとえば、WRXおよび/またはWXSは、Write X機能用のオペランドであり得る)。B3は、読取りバースト開始アドレスを示し得る。
【0037】
図220は、(WCK2CK SYNC)CASコマンドのモードがWRITE用のWCK2CK SYNC(たとえば、WS_WRは論理1である)、READ用のWCK2CK SYNC(たとえば、WS_RDは論理1である)、FAST WCK2CK SYNC(たとえば、WS_FSは論理1である)、およびWCK2CK SYNC OFF(WCK同期を終了し、メモリ150内の内部WCKクロックツリーをオフにするためのコマンド)を含み得ることを示す。(WCK2CK SYNC)CASコマンドは、データクロックサスペンド(WCK SUSPEND)モードでさらに拡張される。たとえば、(WCK2CK SYNC)CASコマンドは、論理1におけるWS_WR、論理0におけるWS_RD、および論理1におけるWS_FSによって、WCK SUSPENDモードに入り得る。参照しやすいように、そのようなWCK SUSPENDモードを有するWCK2CK SYNCコマンドは、データクロック(WCK)サスペンドコマンドと呼ばれることがある。データクロック(WCK)サスペンドコマンドは、データクロックWCKがクロック制御(たとえば、トグル)し続けていても、メモリ150に対する少なくとも1つの内部WCKクロックツリーをオフにするようにメモリ150にシグナリングする。そのような様式では、少なくとも1つの内部WCKクロックツリーがトグリングを停止し、WCK同期が維持されている間に電力消費が節約される。新しいWCK同期は、WCK SUSPENDモードの後に読取りまたは書込み動作を実行することを必要としない。
【0038】
LPDDR5デュアルランク構成の場合、メモリコントローラ130は、LPDDR5 WCK2CK SYNCブロードキャスト機能を有する拡張データクロック(WCK)動作を可能にするように構成され得る。たとえば、CAS-WCK_SUSは、より良いコマンドおよびアドレス(CA)バス効率のために、両方のランク(Rank 0および1)に一緒にブロードキャストされる。
【0039】
いくつかの例では、モードレジスタ170(
図1)は、データサスペンド(WCK SUSPEND)モードがサポートまたは有効化されることを示すためのフィールドを含み得る。たとえば、
図1のWCKサスペンドレジスタ171を参照されたい。ホスト110(たとえば、メモリコントローラ130)は、モードレジスタ170内のWCKサスペンドレジスタ171を読み取るために、かつメモリ150がクロックデータサスペンド(WCK SUSPEND)モードをサポートするかどうかをWCKサスペンドレジスタ171に記憶された値またはオペランドに基づいて決定するために、リンク190を介してモードレジスタ読取り(MRR)コマンドを発行し得る。
【0040】
いくつかの例では、クロックデータサスペンド(WCK SUSPEND)モードは、後続の読取りまたは書込みコマンドによって終了され得る。(クロックデータサスペンドモードである間の)後続の読取りまたは書込みコマンドに応答して、メモリ150は少なくとも1つの内部WCKクロックツリートグリングを再開し得る。クロックデータサスペンド(WCK SUSPEND)モードを終了するために追加のクロックサイクルが必要とされないので、性能は失われない。
【0041】
図3は、本開示のいくつかの態様による、WCK SUSPENDモードでのWCK同期の波形を示す。
図3では、読取り動作が例として与えられる。書込み動作は同様の様式で実装され得る。T
0において(およびクロックCKの立下りエッジであるT
0_fにおいて)、ホスト110(たとえば、メモリコントローラ130)は、論理1におけるWS_RDによって、リンク190を介してWCK2CK SYNCコマンドをメモリ150に発行する。直後のクロックサイクルT
1において、ホスト110(たとえば、メモリコントローラ130)は、リンク190を介して読取りコマンドをメモリ150に発行する。結果として、ホスト110およびメモリ150はデータクロックWCK同期(WCK2CK)サイクルに入る。T
b1において、データクロックWCKは、ホスト110とメモリ150との間で同期している。その後、ホスト110は、同期を保つためにデータクロックWCKをクロック制御(たとえば、トグル)し続ける。ホスト110(たとえば、メモリコントローラ130)は、さらなるデータクロックWCK同期なしに、リンク190を介して追加の読取りまたは書込みコマンドをメモリ150に発行し得る。
【0042】
Td0において(およびクロックCKの立下りエッジであるTd0_fにおいて)、ホスト110(たとえば、メモリコントローラ130)は、WCK SUSPENDモードに入るために、リンク190を介して(WCK SUSPENDモードを指定する)クロックデータサスペンド(WCK SUSPEND)コマンドをメモリ150に発行する。応答して、メモリ150は少なくとも1つの内部WCKクロックツリーがトグルするのを停止し得る。そのような様式では、メモリ150内の電力消費が低減される。
【0043】
WCK SUSPENDモードに入った後に、Te0において、ホスト110は(メモリコントローラ130を介して)読取りコマンド(または書込みコマンド)を発行する。読取り/書込みコマンドに応答して、メモリ150が1つまたは複数の内部WCKクロックツリートグリングを開始し、読取り/書込み動作が正常に始まる。読取り/書込み動作に対する変更はない。
【0044】
図4は、本開示のいくつかの態様による、
図1のリンク190を介したホスト110とメモリ150との間のデータクロック(WCK)サスペンドモードの動作および通信を示す。402において、ホスト110(たとえば、メモリコントローラ130)は、リンク190を介してモードレジスタ読取りコマンドをメモリ150に与える。たとえば、モードレジスタ読取りコマンドは、モードレジスタ170のWCKサスペンドレジスタ171を読み取るように指示され得る。404において、メモリ150は、たとえば、モードレジスタ170のWCKサスペンドレジスタ171に記憶されたデータクロック(WCK)サスペンドコマンドの情報をリンク190を介してホスト110に与える。データクロック(WCK)サスペンドコマンドの情報は、メモリ150がデータクロック(WCK)サスペンドコマンドをサポートするかどうかを示し得る。
【0045】
410において、ホスト110(たとえば、メモリコントローラ130)は、リンク190を介してデータクロック同期(WCK2CK SYNC)コマンドをメモリ150に与える。
図3のT
0を参照されたい。たとえば、
図2の
図220を参照すると、WCK2CK SYNCコマンドは、論理0におけるWS_WR、論理1におけるWS_RD、および論理0におけるWS_FSのオペランドを有する、READ用のWCK2CK SYNCであり得る。ホスト110(たとえば、メモリコントローラ130)は、書込みデータを出力するために(たとえば、書込みデータと同期させるために)および/または読取りデータをキャプチャするために(たとえば、読取りデータをサンプリングするために)データクロックWCKを使用するように構成され得る。メモリ150(たとえば、メモリI/Oモジュール160)は、データクロックWCKを受信するように構成され、書込みデータをキャプチャする(たとえば、書込みデータをサンプリングする)および/または読取りデータを出力する(たとえば、読取りデータと同期させる)ように構成され得る。メモリ150は、1つまたは複数のクロックツリーバッファを組み込んだ1つまたは複数の内部データクロックツリーを含み得る。クロックツリーバッファは、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックWCKに基づいてトグルする(たとえば、データクロックWCKを用いてトグルする)ように構成される。1つまたは複数のクロックツリーバッファは、たとえば、書込みデータをキャプチャすることおよび/または読取りデータを出力すること(たとえば、読取りデータと同期させること)を実行するために、メモリ150内の内部データクロックWCKを駆動するように構成される。
【0046】
420において、ホスト110およびメモリ150は(たとえば、WCK2CK同期において)同期している。たとえば、T
b0とT
b1との間の同期サイクルを参照されたい。たとえば、メモリコントローラ130は、データクロックWCKをメモリ150と同期させるために(たとえば、CAクロックCLKをメモリ150の内部データクロックと同期させるために、たとえば、両方が同じ状態になるように)、LPDDR5仕様に従って同期サイクルを実行するように構成され得る。430において、ホスト110(たとえば、メモリコントローラ130)はリンク190を介してデータクロック(WCK)サスペンドコマンドをメモリ150に与え、メモリ150はデータクロック(WCK)サスペンドモードに入る。たとえば、メモリ150は、ホスト110とメモリ150との間のデータクロック(たとえば、WCK)を同期させた後におよび/またはデータクロック(たとえば、WCK)がホスト110とメモリ150との間で同期している間に、データクロック(WCK)サスペンドコマンドを受信し復号するように構成され得る。
図3のT
d0を参照されたい。ホスト110(たとえば、メモリコントローラ130)は、データクロック(WCK)サスペンドコマンドを与えた後にデータクロックWCKをトグルし続けるように構成され得る。データクロック(WCK)サスペンドコマンドに応答して、メモリ150はデータクロック(WCK)サスペンドモードに入り得る。たとえば、メモリ150は、電力消費を低減するために、データクロックWCKに基づいてクロックツリートグリングを無効化するように構成され得る。
【0047】
440において、ホスト110(たとえば、メモリコントローラ130)は、データクロック(WCK)サスペンドコマンドを与えた後に、ホスト110とメモリ150との間の同期を実行することなしに、リンク190を介して読取り(または書込み)コマンドをメモリ150に与える。
図3のT
e0を参照されたい。T
e0における読取りコマンドは、T
d0においてデータクロック(WCK)サスペンドコマンドを与えた後にホスト110によって与えられる。ホスト110およびメモリ150は、(430において)T
d0においてデータクロック(WCK)サスペンドコマンドを与えることと(440において)T
d0において読取りまたは書込みコマンドを与えることとの間でデータクロックWCKの同期を実行しない(同期サイクルなし)。ホスト110がデータクロック(WCK)をトグルする限り、データクロックWCKがデータクロック(WCK)同期サスペンドモードにおいて同期したままであるので、430と440との間で同期サイクルが必要とされない。読取り(または書込み)コマンドに応答して、メモリ150は読取り(または書込み)動作を実行する。メモリ150は、読取りデータを出力する(たとえば、読取りデータと同期させる)ためにおよび/または書込みデータをキャプチャするために、データクロックWCKに基づいて1つまたは複数のクロックツリーバッファトグリングによって電力供給されるクロックを使用し得る。
【0048】
図5は、本開示のいくつかの態様による、データクロック同期(WCK2CK)サスペンドモードを動作させる
図1の拡張データクロックモジュール132を含むメモリコントローラ130の部分を示す。
図5は、メモリコントローラ130がメモリコマンドモジュール506と、メモリアクセスキューモジュール508と、拡張データクロックモジュール132とを含むことを示す。拡張データクロックモジュール132は、WCKサスペンドサポート決定モジュール502およびWCKサスペンド使用決定モジュール504のうちの一部または全部を含み得る。モジュールはバスシステム510によって結合され、モジュールはバスシステム510を介して通信する。バスシステム510はさらに、ホストI/Oモジュール134に結合される。
【0049】
メモリコマンドモジュール506は、リンク190を介して(およびホストI/Oモジュール134を介して)様々なコマンドをメモリ150に与えるように構成され得る。たとえば、メモリコマンドモジュール506は、モードレジスタ読取りコマンド(たとえば、データクロックサスペンドコマンドの情報用、
図4の402を参照)、データクロック(WCK)同期コマンド(
図4の410を参照)、データクロック(WCK)サスペンドコマンド(たとえば、データクロックサスペンドコマンドの情報に基づくおよび/またはデータクロックWCKがホスト110とメモリ150との間で同期している間、
図4の430を参照)、および/または読取り(もしくは書込み)動作を実行するようにメモリ150に命令するための読取り(もしくは書込み)コマンド(たとえば、データクロックサスペンドコマンドを与えた後におよび/またはデータクロックサスペンドコマンドを与えることと読取りもしくは書込みコマンドを与えることとの間でデータクロックWCKの同期を実行することなしに、
図4の440を参照)を与えるように構成され得る。メモリアクセスキューモジュール508は、たとえば、1つまたは複数の記憶要素であってもよく、1つまたは複数のメモリアクセスコマンドまたは命令を記憶するように構成され得る。
【0050】
WCKサスペンドサポート決定モジュール502は、メモリ150がデータクロック(WCK)サスペンドモードなどの拡張データクロック動作をサポートするかどうかを決定するように構成され得る。たとえば、
図4の402において、WCKサスペンドサポート決定モジュール502は、メモリ150のモードレジスタ170(たとえば、WCKサスペンドレジスタ171)に記憶されたデータクロック(WCK)サスペンドモジュールの情報を受信し得る。データクロック(WCK)サスペンドモジュールの情報は、メモリ150がデータクロックサスペンドコマンドをサポートするかどうかを示し得る。
【0051】
WCKサスペンド使用決定モジュール504は、データクロックサスペンドコマンドの情報に基づいて、データクロック(WCK)サスペンドモードを使用するかどうか(たとえば、データクロック(WCK)サスペンドコマンドを与えるかどうか)を決定するように構成され得る。メモリ150がデータクロック(WCK)サスペンドモードをサポートすることをデータクロックサスペンドコマンドの情報が示す場合、WCKサスペンド使用決定モジュール504は、データクロック(WCK)サスペンドモードによる省電力化がデータクロック(WCK)モードに入ることを正当化するのに十分であるかどうかを決定するために、メモリアクセスキューモジュール508を調査し得る。WCKサスペンド使用決定モジュール504は、メモリアクセスキューモジュール508に記憶されたコマンドまたは命令のタイプ、数、タイミング(たとえば、タイミングの差)に基づいてそのような決定を行い得る。
【0052】
たとえば、メモリアクセスコマンドまたは命令が頻繁に行われることが決定された場合、そのような場合の省電力化はデータクロック(WCK)サスペンドモードに入ることを正当化しないことがある。代替として、メモリアクセスキューモジュール508から、次のメモリアクセス(読取りまたは書込み)が第1の時間期間の後に必要であると決定された場合、ホスト110(たとえば、WCKサスペンド使用決定モジュール504)は、省電力化がデータクロック(WCK)サスペンドモードに入ることを正当化するであろうと決定し、リンク190を介して(およびホストI/Oモジュール134を介して)データクロック(WCK)サスペンドコマンド(たとえば、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランド)をメモリ150に与えることをメモリコマンドモジュール506に行わせることがある。言い換えれば、(次の)読取りまたは書込みコマンドは、データクロック(WCK)サスペンドコマンドの後の第1の時間期間にまたはそれよりも後に与えられ得る。たとえば、ホスト110は、データクロック(WCK)サスペンドコマンドを与えた後、第1の時間期間の後に(次の)読取りまたは書込みコマンドを与えるように構成され得る。
【0053】
代替として、(次の)読取りまたは書込みコマンドが第1の時間期間よりも長い第2の時間期間の後に与えられることになる場合、WCKサスペンド使用決定モジュール504は、データクロック同期(WCK2CK)を終了することがより多くの電力を節約する可能性があると決定するように構成され得る。そのような場合、ホスト110(たとえば、WCKサスペンド使用決定モジュール504)は、データクロック(WCK)サスペンドコマンドを与えることをメモリコマンドモジュール506に行わせないことを選ぶことがある。ホスト110(たとえば、WCKサスペンド使用決定モジュール504)は、データクロック同期(WCK2CK)を終了する(たとえば、電源切断する)命令をリンク190を介してメモリ150に与えることをメモリコマンドモジュール506に行わせることがある。そのような様式では、ホスト110は、データクロック(WCK)サスペンドコマンドを与えた後、第1の時間期間と第2の時間期間との間に(次の)読取りまたは書込みコマンドをリンク190を介してメモリ150に与えるように構成され得る。
【0054】
図6は、本開示のいくつかの態様による、データクロック(WCK)サスペンドモードを動作させる
図1のメモリI/Oモジュール160の部分を示す。
図6は、メモリI/Oモジュール160がWCKバッファ602と、CAバッファ606と、DQバッファ608とを含むことを示す(メモリI/Oモジュール160は、これらのバッファの複数のインスタンスを含み得る)。
図6はさらに、メモリI/Oモジュール160がクロックツリー603と、WCKサスペンド制御モジュール605とを含むことを示す。
【0055】
WCKバッファ602は、データクロックWCKを受信するように構成され、クロックツリー603に出力するように構成された入力バッファ/受信機であり得る。クロックツリー603は、受信されたデータクロックWCKを用いてトグルするように構成されてもよく、内部WCKをDQバッファ608に出力する。クロックツリー603は、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックWCKに基づいてトグルする(たとえば、データクロックWCKを用いてトグルする)ように構成された1つまたは複数のクロックツリーバッファ604を含む。いくつかの例では、クロックツリーバッファ604は、WCKバッファ602の後(たとえば、WCKバッファ602から直接または間接的に出力を受信した後)(すなわち、メモリI/Oモジュール160の後)であり得る。DQバッファ608は、リンク190のDQから書込みデータを受信し、リンク190のDQに読取りデータを出力するように構成された入力/出力バッファであってもよい。DQバッファ608は、内部WCKによってクロック制御される(または内部WCKに基づいてクロック制御される)ように構成され得る。たとえば、DQバッファ608は、(データクロックWCKに基づく)内部WCKに基づいて書込みデータをキャプチャする(たとえば、サンプリングする)ように構成され、かつ/または(データクロックWCKに基づく)内部WCKに基づいて出力する(たとえば、出力を内部WCKと同期させる)ように構成され得る。
【0056】
CAバッファ606は、リンク190からコマンドおよびアドレス入力を受信するように構成され、コマンドデコーダ173に出力するように構成された入力バッファ/受信機であり得る。コマンドデコーダ173は、たとえば、モードレジスタ読取りコマンド(たとえば、データクロックサスペンドコマンドの情報用、
図4の402を参照)、データクロック同期(たとえば、WCK2CK)コマンド(
図4の410を参照)、データクロック(WCK)サスペンドコマンド(たとえば、データクロック(WCK)サスペンドコマンドの情報に基づくおよび/またはデータクロックWCKがホスト110とメモリ150との間で同期している間、
図4の430を参照)、および/または読取り(もしくは書込み)動作を実行するようにメモリ150に命令するための読取り(もしくは書込み)コマンド(たとえば、データクロック(WCK)サスペンドコマンドを検出することと読取りまたは書込みコマンドを検出することとの間でデータクロックWCKの同期を実行することなしに、データクロック(WCK)サスペンドコマンドを検出した後に、
図4の440を参照)を検出するように構成され得る。
【0057】
いくつかの例では、データクロック(WCK)サスペンドコマンドは、クロックツリーバッファ604のトグリングを無効化するようにメモリ150に通知し、クロックツリーバッファ604は、データクロックWCKに基づいてトグルするように構成される。したがって、コマンドデコーダ173がデータクロック(WCK)サスペンドコマンドを検出したことに応答して、WCKサスペンド制御モジュール605はクロックツリーバッファ604がトグルするのを無効化する。したがって、クロックツリーバッファ604は、コマンドデコーダ173がデータクロック(WCK)サスペンドコマンドを検出したことに応答して、データクロックWCKに基づいてトグリングを無効化するように構成される。そのような様式では、クロックツリー603によって消費されるクロック制御電力が節約される。
【0058】
いくつかの例では、データクロック(WCK)サスペンドコマンドの後の読取りまたは書込みコマンドは、クロックツリーバッファ604のトグリングを開始するようにメモリ150に通知する。したがって、コマンドデコーダ173がデータクロック(WCK)サスペンドコマンドの後の読取りまたは書込みコマンドを検出したことに応答して、WCKサスペンド制御モジュール605はクロックツリーバッファ604がデータクロックWCKに基づいてトグリングを開始するのを有効化する。したがって、クロックツリーバッファ604は、コマンドデコーダ173が(データクロック(WCK)サスペンドコマンドの後の)読取りまたは書込みコマンドを検出したことに応答して、データクロックWCKに基づいてトグリングを開始するように構成される。さらに、メモリ150は、コマンドデコーダ173が読取りまたは書込みコマンドを検出したことに応答して、読取り(または書込み)動作を実行する(たとえば、
図1のメモリアレイ162から読み取るまたは
図1のメモリアレイ162に書き込む)ように構成される。そのような様式では、追加の同期サイクルが必要とされないので、メモリ150の性能は妨げられない。
【0059】
図7は、本開示のいくつかの態様による、
図1のリンク190を介してホスト110に結合されたメモリ150のためのデータクロック(WCK)の電力を低減する方法を示す。
図7の動作は、たとえば、
図1~
図6で提示された装置100(たとえば、メモリ150)によって実装され得る。矢印は動作の間の特定の関係を示すが、必ずしも逐次的な関係を示すとは限らない。
【0060】
710において、データクロックがリンクを介してホストからメモリによって受信される。たとえば、
図1および
図6を参照すると、WCKバッファは、リンク190を介してホスト110からデータクロックWCKを受信する。720において、データクロックがメモリによってホストと同期される。たとえば、
図3のT
b0とT
b1との間の同期サイクルおよび
図4の420を参照されたい。730において、メモリのクロックツリーバッファが、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックに基づいてトグルされる。たとえば、クロックツリーバッファ604は、書込みデータをキャプチャするためにまたは読取りデータを出力するためにデータクロックWCKに基づいてトグルすることを参照されたい。
【0061】
740において、データクロックがメモリとホストとの間で同期している間に、データクロックサスペンドコマンドがメモリによって検出される。たとえば、
図4の430を参照されたい。さらに、
図6を参照すると、コマンドデコーダ173は、データクロック(WCK)サスペンドコマンド(たとえば、論理1におけるWS_WRおよびWS_FSならびに論理0におけるWS_RDのオペランドを有するWCK2CKコマンド)を検出する。750において、データクロックサスペンドコマンドを検出したことに応答して、データクロックに基づいてクロックツリーバッファのトグリングが無効化される。
図6を参照すると、コマンドデコーダ173がデータクロック(WCK)サスペンドモードを検出したことに応答して、WCKサスペンド制御モジュール605によってクロックツリーバッファ604のトグリングが無効化される。
【0062】
760において、データクロックサスペンドコマンドを検出した後に、読取りまたは書込みコマンドがメモリによって検出される。たとえば、
図4の440を参照されたい。
図6を参照すると、コマンドデコーダ173は、データクロックWCKサスペンドコマンドを検出した後に読取り(または書込み)コマンドを検出する。770において、読取りまたは書込みコマンドを検出したことに応答して、クロックツリーバッファによってデータクロックに基づいてトグリングが開始される。
図6を参照すると、クロックツリーバッファ604は、コマンドデコーダ173が読取りまたは書込みコマンドを検出したことに応答して、(WCKサスペンド制御モジュール605によって有効化された)データクロックWCKに基づいてトグリングを開始する。
【0063】
780において、読取りまたは書込みコマンドに応答して、データクロックサスペンドコマンドを検出することと読取りまたは書込みコマンドを検出することとの間のデータクロックの同期を実行することなしに、読取りまたは書込み動作がメモリによって実行される。たとえば、
図4の440を参照されたい。メモリ150は、データクロック(WCK)サスペンドコマンドを検出することと読取りまたは書込みコマンドを検出することとの間のデータクロックWCKの同期を実行することなしに、読取りまたは書込みコマンドに従って読取りまたは書込み動作を実行する。ホスト110およびメモリ150はWCK2CKモード(データクロック同期モード)のままであるので、そのような同期は必要とされない。790において、データクロックサスペンドコマンドの情報がメモリモードレジスタによって記憶される。
図1を参照すると、モードレジスタ170は、メモリ150がデータクロック(WCK)サスペンドコマンドなどの拡張データクロックWCK動作をサポートするかどうかに関する情報を記憶するWCKサスペンドレジスタ171を含む。
【0064】
図8は、本開示のいくつかの態様による、
図1のリンク190を介してホスト110に結合されたメモリ150のためのデータクロック(WCK)の電力を低減する方法を示す。
図8の動作は、たとえば、
図1~
図6で提示された装置100(たとえば、ホスト110)によって実装され得る。矢印は動作の間の特定の関係を示すが、必ずしも逐次的な関係を示すとは限らない。
図7および
図8の動作は、本開示で提示されるように組み合わされ得る。
【0065】
810において、データクロック同期コマンドがリンクを介してホストによってメモリに与えられる。たとえば、
図4の410を参照されたい。
図5を参照すると、メモリコマンドモジュール506は、リンク190を介してデータクロック同期コマンド(たとえば、READ用のWCK2CKまたはWRITE用のWCK2CK、
図2を参照)をメモリ150に与える。820において、データクロックを同期させた後に、データクロックサスペンドコマンドがリンクを介してホストによってメモリに与えられる。データクロックサスペンドコマンドは、データクロックに基づいてトグルするデータクロックバッファを無効化するようにメモリに通知する。たとえば、
図4の430を参照されたい。
図5を参照すると、メモリコマンドモジュール506は、データクロックをメモリ150と同期(たとえば、
図4の420)した後に、リンク190を介してデータクロック(WCK)サスペンドコマンドをメモリ150に与える。
図6を参照すると、コマンドデコーダ173は、データクロック(WCK)サスペンドコマンドを検出し、データクロックWCKに基づいてトグルするクロックツリーバッファ604がトグルするのを無効化することをWCKサスペンド制御モジュール605に行わせる。
【0066】
830において、データクロックサスペンドコマンドを与えた後に、データクロックがホストによってトグルされる。
図3を参照すると、ホスト110は、T
d0においてデータクロックサスペンドコマンドを与えた後にデータクロックWCKをトグルし続ける。したがって、ホスト110およびメモリ150はデータクロック同期モード(WCK2CKモード)のままであり、後続の読取りまたは書込み動作のために同期サイクルが必要とされない。
【0067】
840において、データクロックサスペンドコマンドを与えることと読取りまたは書込みコマンドを与えることとの間のデータクロックの同期を実行することなしに、データクロックサスペンドコマンドの後に読取りまたは書込みコマンドがリンクを介してホストによってメモリに与えられる。たとえば、
図4の440を参照されたい。850において、データクロックサスペンドコマンドの情報に応答して、データクロックサスペンドコマンドが与えられる。たとえば、
図4の430を参照されたい。
【0068】
付録I、II、およびIIIが添付され、その全体が参照により組み込まれる。
【0069】
前述の説明は、いかなる当業者も本明細書で説明する様々な態様を実践することが可能になるように提供される。これらの態様の様々な修正は当業者に容易に明らかになり、本明細書で定義する一般原理は他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に示された態様に限定されるものではなく、クレーム文言と一致するすべての範囲を与えられるべきであり、単数形での要素への言及は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味するものとする。「例示的」という語は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる態様も、必ずしも他の態様よりも好ましいまたは有利なものと解釈されるべきではない。別段に明記されていない限り、「いくつかの」という用語は、1つまたは複数を指す。「A、B、またはCのうちの少なくとも1つ」、「A、B、またはCのうちの1つまたは複数」、「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、および「A、B、C、またはそれらの任意の組合せ」などの組合せは、A、B、および/またはCの任意の組合せを含み、複数のA、複数のB、または複数のCを含み得る。具体的には、「A、B、またはCのうちの少なくとも1つ」、「A、B、またはCのうちの1つまたは複数」、「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、および「A、B、C、またはそれらの任意の組合せ」などの組合せは、Aのみ、Bのみ、Cのみ、AおよびB、AおよびC、BおよびC、またはAおよびBおよびCであってもよく、任意のそのような組合せは、A、B、またはCのうちの1つまたは複数のメンバーを含み得る。当業者に知られているか、または後に知られることになる、本開示全体にわたって説明する様々な態様の要素に対するすべての構造的および機能的均等物が、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。さらに、本明細書で開示したものは、そのような開示が特許請求の範囲に明示的に列挙されているかどうかにかかわらず、公に供されるものではない。「モジュール」、「機構」、「要素」、「デバイス」などの語は、「手段」という語の代用ではないことがある。したがって、いかなるクレーム要素も、その要素が「のための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【0070】
100 装置
110 ホスト
115 バスシステム
120 プロセッサ
122 中央処理ユニット(CPU)
123 グラフィック処理ユニット(GPU)
124 デジタル信号プロセッサ(DSP)
130 メモリコントローラ
132 拡張データクロックモジュール
134 ホストI/Oモジュール
150 メモリ
160 メモリI/Oモジュール
162 メモリアレイ
170 モードレジスタ
171 WCKサスペンドレジスタ
172 バスシステム
173 コマンドデコーダ
180-1~180-M メモリバンク
190 リンク
210 図
220 図
502 WCKサスペンドサポート決定モジュール
504 WCKサスペンド使用決定モジュール
506 メモリコマンドモジュール
508 メモリアクセスキューモジュール
510 バスシステム
602 WCKバッファ
603 クロックツリー
604 クロックツリーバッファ
605 WCKサスペンド制御モジュール
606 CAバッファ
608 DQバッファ
【国際調査報告】