JP2022040150A - メモリシステムのための省電力化技法 - Google Patents

メモリシステムのための省電力化技法 Download PDF

Info

Publication number
JP2022040150A
JP2022040150A JP2021207223A JP2021207223A JP2022040150A JP 2022040150 A JP2022040150 A JP 2022040150A JP 2021207223 A JP2021207223 A JP 2021207223A JP 2021207223 A JP2021207223 A JP 2021207223A JP 2022040150 A JP2022040150 A JP 2022040150A
Authority
JP
Japan
Prior art keywords
data
memory
host processor
memory system
lanes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021207223A
Other languages
English (en)
Other versions
JP7417576B2 (ja
Inventor
ジュンウォン・スー
Jungwon Suh
デクスター・タミオ・チュン
Tamio Chun Dexter
マイケル・ハウジン・ロ
Hawjing Lo Michael
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2022040150A publication Critical patent/JP2022040150A/ja
Application granted granted Critical
Publication of JP7417576B2 publication Critical patent/JP7417576B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/102Compression or decompression of data before storage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Power Sources (AREA)

Abstract

Figure 2022040150000001
【課題】メモリシステムのための省電力化技法を提供する。
【解決手段】本開示の例示的な態様では、メモリ要素内に存在する場合があるパターンを利用し、重複したデータ転送を排除することを企図している。具体的には、データが繰り返されている場合、同じデータを繰り返し送るのではなく、データを受信端において複製させてデータの元の反復状態に復元させる命令とともにデータを1回のみ送ってもよい。ホストとメモリ要素との間で転送されるデータの量を減らすことによって、電力消費量が削減される。
【選択図】図6

Description

優先権主張
本出願は、参照により内容全体が本明細書に組み込まれる、2016年3月3日出願の「POWER SAVING TECHNIQUES FOR MEMORY SYSTEMS」と題する米国仮特許出願第62/302,891号の優先権を主張する。
本出願は、参照により内容全体が本明細書に組み込まれる、2017年3月2日出願の「POWER SAVING TECHNIQUES FOR MEMORY SYSTEMS」と題する米国特許出願第15/448,327号の優先権も主張する。
本開示の技術は概して、コンピューティングデバイスにおけるメモリシステムに関し、詳細には、メモリシステムのための省電力化技法に関する。
コンピューティングデバイスが現在の社会において一般的になっている。特にモバイルコンピューティングデバイスは、日常生活の多くの局面にわたって普及している。そのようなモバイルコンピューティングデバイスは、周期的に再充電されるバッテリーによって電力を供給される。バッテリー技術の進歩によって、バッテリーを再充電することが必要になるまでの時間が延びているが、そのような進歩は、モバイルコンピューティングデバイスの機能が増大することによって相殺されている。すなわち、追加の機能によってバッテリーの使用量が増し、それによって、より頻繁に充電を行う必要が生じる。したがって、依然として、モバイルコンピューティングデバイス全体における電力消費量を削減することが強く求められている。
ほぼすべてのコンピューティングデバイスが何らかの種類のメモリ要素を動作させる必要があることを諒解されたい。メモリ電力消費量は、低電力ダブルデータレート(LPDDR)メモリ規格を連続的に反復することによる電圧スケーリングによって削減されているが(たとえば、LPDDR1は1.8ボルトに設定され、LPDDR2およびLPDDR3は1.2ボルトに設定され、LPDDR4は1.1ボルトに設定された)、現在の技術制約を考慮すると電圧スケーリングは頭打ちになったように思われる。特に、リフレッシュ制限およびその他の回路性能問題によってLPDDR4では1.1ボルトが必要になっている。現在、低電力メモリの次の世代(すなわち、LPDDR5)が検討されており、LPDDR5では、電圧を1.05ボルトまで低下させることが考えられているが、この削減は、限界的な省電力化にすぎない。
省電力化は特にモバイルコンピューティングデバイスにおいて関心の対象となり得るが、モバイルデバイス以外も電力消費量を削減して廃熱の発生を低減させることから利益を得る場合がある。したがって、様々な種類のコンピューティングデバイスが、電力消費量を削減したメモリシステムから利益を得る場合がある。
詳細な説明において開示される態様は、メモリシステムのための省電力化技法を含む。詳細には、本開示の例示的な態様では、メモリ要素内に存在する場合があるパターンを利用し、重複したデータ転送をなくすことを企図している。具体的には、データが繰り返されている場合、同じデータを繰り返し送るのではなく、データを受信端において複製させてデータの元の反復状態に復元させる命令とともにデータを1回のみ送ってもよい。ホストとメモリ要素との間で転送されるデータの量を減らすことによって、電力消費量が削減される。
この点に関して、一態様では、ホストプロセッサが開示される。ホストプロセッサは、メモリバスの複数のデータレーンに結合されるように構成された物理層(PHY)インターフェースを含む。ホストプロセッサは、PHYインターフェースに結合されたメモリコントローラも含む。メモリコントローラは、データパターンチェッカー論理回路を含む。メモリコントローラは、データパターンチェッカー論理回路を使用して、メモリバスを介してメモリ要素に書き込むべきデータに繰り返し可能なデータのパターンが存在するかどうかを判定するように構成される。メモリコントローラはまた、データをより少ないレーン内に統合し、メモリバスの複数のデータレーンのうちのいくつかのデータレーンのみを介してデータを送るように構成される。
別の態様では、メモリシステムが開示される。メモリシステムは、メモリバスに結合されるように構成された入出力(IO)ブロックを含む。メモリシステムは、メモリ要素を含むメモリバンクも含む。メモリバンクは、IOブロックに通信可能に結合される。メモリシステムは、IOブロックを介してメモリバスからデータを受信し、ホストプロセッサからのコマンドに応じた回数だけデータを複製するように動作可能な書込みレジスタも含む。
別の態様では、ホストプロセッサが開示される。ホストプロセッサは、メモリバスの複数のデータレーンに結合されるように構成されたPHYインターフェースを含む。ホストプロセッサは、読取りレジスタも含む。ホストプロセッサは、PHYインターフェースに結合されたメモリコントローラも含む。メモリコントローラは、PHYインターフェースを介してメモリシステムからデータを受信するように構成される。メモリコントローラはまた、メモリシステムから受信された情報に基づいて読取りレジスタ内のデータを複製させるように構成される。
別の態様では、メモリシステムが開示される。メモリシステムは、メモリバスに結合されるように構成されたIOブロックを含む。メモリシステムは、メモリ要素を含むメモリバンクも含む。メモリバンクは、IOブロックに通信可能に結合される。メモリバンクは、統合されたデータをメモリバスを介してホストプロセッサに送ることによって読取りコマンドに応答するように構成される。
別の態様では、装置が開示される。この装置は、メモリコントローラとPHYインターフェースとを含むホストプロセッサを含む。この装置は、メモリシステムも含む。この装置は、メモリバスも含む。ホストプロセッサは、メモリシステムに書き込むべきデータをPHYインターフェースおよびメモリバスを介して送る。メモリコントローラは、データパターンチェッカー論理回路を含む。メモリコントローラは、データパターンチェッカー論理回路を使用して、メモリバスを介してメモリ要素に書き込むべきデータに繰り返し可能なデータのパターンが存在するかどうかを判定するように動作可能である。メモリコントローラはまた、データを統合して、メモリバスを介して送られるデータを減らすように動作可能である。
別の態様では、装置が開示される。この装置は、メモリコントローラとPHYインターフェースとを含むホストプロセッサを含む。この装置は、メモリシステムも含む。この装置は、メモリバスも含む。ホストプロセッサは、メモリシステムから読み取られたデータをPHYインターフェースおよびメモリバスを介して受信する。メモリシステムは、メモリシステムから読み取られているデータに繰り返し可能なデータのパターンが存在するかどうかを判定し、ホストプロセッサからの読取りコマンドに応答してデータを統合して、メモリバスを介して送られるデータを減らすように動作可能である。
ホストプロセッサとメモリシステムとを有する例示的な従来のコンピューティングデバイスの簡略ブロック図である。 メモリ要素内に記憶されたコードの例示的な画像である。 メモリ要素内に記憶された未圧縮データの例示的な画像である。 本開示の利点を有さない、ホストプロセッサとメモリシステムとの間の8つのデータレーンを介した例示的なデータフローを示す図である。 本開示の例示的な態様によるホストプロセッサとメモリシステムとの間の例示的なデータフローを示す図である。 本開示の例示的な態様によるホストプロセッサとメモリシステムとの間の例示的なデータフローを示す図である。 本開示の例示的な態様によるホストプロセッサとメモリシステムとの間の例示的なデータフローを示す図である。 本開示の例示的な態様による、ホストプロセッサとメモリシステムとを有する例示的なコンピューティングデバイスの簡略ブロック図である。 本開示の第2の例示的な態様による、ホストプロセッサとメモリシステムとを有する例示的なコンピューティングデバイスの簡略ブロック図である。 本開示の第3の例示的な態様による、ホストプロセッサとメモリシステムとを有する例示的なコンピューティングデバイスの簡略ブロック図である。 本開示の例示的な態様による書込みプロセスを示すフローチャートである。 本開示の例示的な態様による読取りプロセスを示すフローチャートである。 メモリシステムにおける書込みパス回路の簡略ブロック図である。 メモリコントローラにおけるデータパターンチェッカー論理回路の簡略ブロック図である。 読取りコマンドおよび書込みコマンドをバス上のクロックに対するタイミングとともに示す図である。 例示的な書込みおよび読取りコマンド真理値表を示す図である。 データレーンの間でデータを統合するための代替方法を示すデータフローの図である。 図4~図6のホストプロセッサとメモリシステムとを含むことができる例示的なプロセッサベースのシステムを示すブロック図である。
次に図面を参照して、本開示のいくつかの例示的な態様について説明する。「例示的」という単語は、本明細書では「例、事例、または例示としての働きをすること」を意味するために使用される。本明細書で「例示的」と記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
詳細な説明において開示される態様は、メモリシステムのための省電力化技法を含む。詳細には、本開示の例示的な態様では、メモリ要素内に存在する場合があるパターンを利用し、重複したデータ転送を排除することを企図している。具体的には、データが繰り返されている場合、同じデータを繰り返し送るのではなく、データを受信端において複製させてデータの元の反復状態に復元させる命令とともにデータを1回のみ送ってもよい。ホストとメモリ要素との間で転送されるデータの量を減らすことによって、電力消費量が削減される。
本開示の特定の態様について説明する前に、ホストプロセッサとメモリシステムとを有する従来のコンピューティングデバイスについて、図1~図3Aに示されている繰り返しデータおよびその電力消費量に対する影響に関して説明しながら概略的に説明する。以下に、本開示の例示的な態様についての説明を図3Bを参照しながら開始する。
この点に関して、図1は、ホストプロセッサ12とメモリシステム14とを有する従来のコンピューティングデバイス10の簡略ブロック図である。ホストプロセッサ12は、同じ機能を実現するためのシステムオンチップ(SoC)または集積回路(IC)の組合せであってもよい。詳細には、ホストプロセッサ12は、デジタル信号プロセッサ(DSP)16と、グラフィック処理ユニット(GPU)およびマルチメディアエンジン18と、マルチコア中央処理ユニット(CPU)20と、メモリコントローラ22とを含んでもよい。DSP16、GPUおよびマルチメディアエンジン18、マルチコアCPU20、ならびにメモリコントローラ22は、システムバス24を介して互いに通信してもよい。メモリコントローラ22は、メモリインターフェース物理層(PHY)26と協働してメモリバス28に結合する。メモリバス28は、メモリシステム14にも結合される。例示的な態様では、メモリバス28は、第1の8つのデータレーン(DQ0~DQ7と呼ばれることがある)と、クロック(図面ではCLKと参照されている)、コマンド、およびアドレスレーン(コマンドレーンおよびアドレスレーンはCAと示されることがある)と、第2の8つのデータレーン(DQ8~DQ15と呼ばれることがある)とを含む。クロック、コマンド、およびアドレスレーンが必要または所望に応じて3つの別々のレーンであってもよく、2つのレーンであってもよく(たとえば、一方のレーンがクロックで他方のレーンがコマンドおよびアドレス)、または単一のレーンであってもよいことに留意されたい。本明細書で使用するレーンは物理的導体(たとえば、ワイヤトレース)である。一般に、各レーンは、ホストプロセッサ12上のメモリインターフェースPHY26に関連するレーン自体のピンと、メモリシステム14用のそれぞれのピンとを有する。
引き続き図1を参照するとわかるように、メモリシステム14は、データレーンIOブロック30(1)~30(2)などの1つまたは複数のデータレーン入出力(IO)ブロックと、コマンド/アドレス/クロック(図面ではCA&CLKと参照されている)ブロック32とを含んでもよい。さらに、メモリシステム14は、メモリバンク36(1)~36(N)(4つが図示されている)のメモリバンクごとにデコーダおよびデータラッチ34を含んでもよい。よく理解されるように、「ブロック」という用語が使用されるときに、この文脈におけるブロックが論理回路または他のハードウェア要素であることを諒解されたい。
同じくよく理解されるように、ホストプロセッサ12は、メモリシステム14に対して読取りおよび書込みを行う。多くの例では、読取り/書込み活動はデータに関係するが、いくつかの例では、読取り/書込み活動はコードに関係する。いずれの場合も、メモリバンク36(1)~36(N)内に記憶されたコンテンツはしばしば重複する。コードは、一般にメモリバンク36(1)~36(N)のうちの約10%を占めるにすぎないが、しばしば重複する。例示的なコードスニペット200が図2Aに示されている。すでに明らかなように、コードスニペット200は、この例では「00」である繰り返されるコンテンツを含む(コードスニペット200内の領域202および204を概略参照されたい)。同様に、このデータは、メモリバンク36(1)~36(N)の残りの部分を消費する場合があるが、同じくしばしば重複する。例示的なデータブロック210が図2Bに示されている。すでに明らかなように、データブロック210は、繰り返される「00」(たとえば、領域212を参照されたい)および繰り返される「FF」(たとえば、領域214を参照されたい)を含む。データとコードが概念的に異なるとき、「データ」は、メモリバンク36(1)~36(N)内に存在し、メモリバンク36(1)~36(N)に書き込まれ、メモリバンク36(1)~36(N)から読み取られるコンテンツを指す。同様に、例示的な繰り返されるコンテンツが「00」または「FF」であるとき、実際のデータが、他の繰り返されるコンテンツを含み、および/または繰り返しの頻度を変化させる場合があることを諒解されたい。
図1のコンピューティングデバイス10などの従来のシステムでは、読取りコマンドまたは書込みコマンドが実行されるときに、読取りコマンドまたは書込みコマンドのデータがデータレーン(すなわち、DQ0~DQ15)を介して分散され、受信エンティティ(すなわち、読取りコマンドの場合のホストプロセッサ12または書込みコマンドの場合のメモリシステム14)に送られる。この構成は図3Aに示されており、図3Aにはデータバースト300が示されている。データバースト300は、図2Aのコンテンツに対応し、第1の8つのデータレーンDQ0~DQ7におけるスロット(D0~D127)の各々に対応するデータが存在する(D39までのみ示されている)。容易に明らかなように、多くの例では、スロットD0~D127内のデータの多くが重複する。メモリバス28を介した電力消費量がデータ速度およびデータの量の関数であることを諒解されたい。したがって、メモリバス28を介して重複するデータを送ると電力が消費される。
本開示の例示的な態様は、読取りコマンドおよび書込みコマンドにおけるデータの重複を利用して、複数のデータレーンを介して複数のコピーを送るのではなく、重複するデータを単一のデータレーン上に統合し、その後重複するデータの単一のコピーのみをメモリバス28を介して送る。本開示の例示的な態様は、メモリバス28を介して送られるデータの量を減らすことによって、さらなる電圧スケーリングを実行することができなくても省電力化を可能にする。この省電力化によってモバイルコンピューティングデバイス用のバッテリー寿命が延び得るが、モバイルデバイス以外において発生する廃熱が少なくなり得、本開示からあらゆるコンピューティングデバイスが利益を得る場合がある。
この点に関して、図3Bは、データブロック310内のデータが8つのスロットグループにわたって同じである第1の態様を示す。たとえば、スロットD0~D7に入るデータ(312を全体的に参照されたい)はすべて「00」であり、スロットD16~D23に入るデータ(314を全体的に参照されたい)はすべて「01」であり、スロットD24~D31に入るデータ(316を全体的に参照されたい)はすべて「FF」である。しかし、同じデータを8回送る(各データレーンDQ0~DQ7を介して1回)のではなく、データはデータレーンDQ0上でのみ送られ、データレーンDQ1~DQ7はオフにされる。すなわち、たとえば、データレーンDQ0~DQ7上のスロットD8~D15において「00」を送るのではなく、データレーンDQ1~DQ7に関するデータがスロットD8と同じであるという指示とともに、データレーンDQ0のみがスロットD8を送る。受信端において、レシーバがデータレーンDQ0からスロットを受信し、データを複製して複製したデータを再構成する。
あらゆるデータの集合が同じデータを有する8つのスロットを有するとは限らないことを諒解されたい。このことに関して、図3Cは、データブロック320が同じ4つのスロットを有する状況を示している。たとえば、スロットD0~D3に対応するグループ322内のデータは同じであり、スロットD4~D7に対応するグループ324内のデータは、同じであるが、グループ322内のデータと同じではない。したがって、データレーンDQ0およびDQ4上でデータが送られ、重複するデータレーンDQ1~DQ3およびDQ5~DQ7はオフにされる。2つのアクティブレーンを有すると、1つのアクティブレーンを有するよりも多くの電力が消費されるが、それでも、2つのアクティブレーンを有する場合、8つのアクティブレーンを有する場合よりも電力消費量が少ない。
同様に、図3Dは、データブロック330が同じ2つのスロットを有する状況を示す。たとえば、スロットD0~D1に対応するグループ332内のデータは同じであり、スロットD2~D3に対応するグループ334内のデータは同じであり、スロットD4~D5に対応するグループ336内のデータは同じであり、スロットD6~D7に対応するグループ338内のデータは同じである。したがって、データレーンDQ0、DQ2、DQ4、およびDQ6上でデータが送られ、データレーンDQ1、DQ3、DQ5、およびDQ7はオフにされる。この場合も、4つのアクティブレーンを有すると、1つまたは2つのアクティブレーンを有するよりも多くの電力が消費されるが、それでも、4つのアクティブレーンを有する場合、8つのアクティブレーンを有する場合よりも電力消費量が少ない。データレーンDQ8~DQ15を介して送られるデータについて別個のパターン検査を使用することができる。
本開示の重複データ技法が使用されることを伝えるには、修正された読取りコマンドおよび書込みコマンドが使用されてもよい。たとえば、7つの重複に対して1つのデータレーンのみが使用される場合、コマンドはRD_X1およびWR_X1であってもよい。2つのデータレーンが使用され、データレーンごとに3つの重複が使用される場合、コマンドはRD_X2およびWR_X2であってもよい。同様に、4つのデータレーンが使用され、レーンごとに1つの重複が使用される場合、コマンドはRD_X4およびWR_X4であってもよい。上記の符号が任意のものであり、説明のために使用されていることを諒解されたい。実際には、読取りコマンドおよび書込みコマンドは列アドレス選択(CAS)コマンドによって修正されることがある。CASコマンド内のデータは、読取りコマンドまたは書込みコマンドがどのように修正されるか(たとえば、読取りコマンドをRD_X1、RD_X2、またはRD_X4に修正する)を符号化することができる。読取りコマンドまたは書込みコマンドに対するCASコマンドについて、図11を参照しながら以下でさらに詳細に検討する。CASコマンドを使用することは修正された読取りコマンドおよび書込みコマンドを知らせる1つの方法であるが、本開示の範囲から逸脱せずに他の技法が使用されてもよい。
重複するデータレーンの統合を実行するには、重複するデータを検出することと、非アクティブデータレーンが存在していたスロットに重複するデータをコピーすることを可能にする何らかの修正を図1のコンピューティングデバイス10に施さなければならない。図4~図6は、これらの修正が実施される場合がある例示的な代替方法を示す。この点に関して、図4は、ホストプロセッサ402とメモリシステム404とを有する例示的なコンピューティングデバイス400を示す。ホストプロセッサ402は、同じ機能を実現するためのロバストなSoCまたはICの組合せであってもよい。詳細には、ホストプロセッサ402は、DSP406と、GPUおよびマルチメディアエンジン408と、マルチコアCPU410と、メモリコントローラ412とを含んでもよい。DSP406、GPUおよびマルチメディアエンジン408、マルチコアCPU410、ならびにメモリコントローラ412は、システムバス414を介して互いに通信してもよい。メモリコントローラ412は、メモリインターフェースPHY416と協働してメモリバス418に結合し、メモリバス418はメモリシステム404にも結合する。例示的な態様では、メモリバス418は、第1の8つのデータレーン(DQ0~DQ7と呼ばれることがある)と、クロック(CLKと呼ばれることがある)、コマンド、およびアドレスレーン(CAと呼ばれることがある)と、第2の8つのデータレーン(DQ8~DQ15と呼ばれることがある)とを含む。クロック、コマンド、およびアドレスレーンが必要または所望に応じて3つの別々のレーンであってもよく、2つのレーンであってもよく(たとえば、一方のレーンがクロックで他方のレーンがコマンドおよびアドレス)、または単一のレーンであってもよいことに留意されたい。さらに、さらなるバックチャネルレーンが存在してもよい(具体的には図示されていない)。上述のように、各レーンは一般に、それ自体の物理的ピンに結合され、かつ物理的導体である。
引き続き図4を参照するとわかるように、メモリシステム404は、データレーンIOブロック420(1)~420(2)などの1つまたは複数のデータレーンIOブロックと、コマンド/アドレス/クロックブロック422とを含んでもよい。さらに、メモリシステム404は、メモリバンク426(1)~426(N)(4つが図示されている)のメモリバンクごとにデコーダおよびデータラッチ424を含んでもよい。
引き続き図4を参照するとわかるように、メモリコントローラ412は、データパターンチェッカー論理回路430とメモリアドレスルックアップテーブル432とを含んでもよい。同様に、メモリインターフェースPHY416は、1つまたは複数の読取りデータコピーレジスタ434を含んでもよい。1つまたは複数の読取りデータコピーレジスタ434のうちの1つがデータレーンの各バンドル(DQ0~DQ7またはDQ8~DQ15)に結合されてもよい。メモリシステム404は、それぞれのデータレーンIOブロック420(1)~420(2)に結合された書込みデータコピーレジスタ436(1)~436(2)を含む。書込みデータコピーレジスタ436(1)~436(2)の各々にコマンド/アドレス/クロックブロック422からの出力が与えられる。受信されたコマンド(たとえば、WR_X1、WR_X2、またはWR_X4)に基づいて、このコマンドが、書込みデータコピーレジスタ436(1)~436(2)に渡され、書込みデータコピーレジスタ436(1)~436(2)に、データセット全体をメモリバンク426(1)~426(N)に書き込むために各デコーダおよびデータラッチ424に渡す前にデータを複製させる。
メモリシステム404にデータが書き込まれるとき、データパターンチェッカー論理回路430は、データが特定のパターンで繰り返されているかどうかを確認し、繰り返されている場合、重複するデータをすべての8つのデータレーンを介して送るのではなく、適切な書込みコマンド(たとえば、WR_X1、WR_X2、またはWR_X4)によってデータをより少ないレーン上で束ねさせてもよい。同時に、重複するデータの表示は、メモリアドレスルックアップテーブル432に記憶される。メモリシステム404において、書込みデータコピーレジスタ436(1)~436(2)は、受信されたデータを得て複製し、データの元の8つのスロットを再作成し、それによって、再作成されたデータは、コマンド/アドレス/クロックブロック422から受信されたコマンドに基づいて適切な数のメモリスロットを消費する。拡張されたデータは、メモリバンク426(1)~426(N)に書き込まれる。
読取りコマンドが生成されると、ホストプロセッサ402はメモリアドレスルックアップテーブル432を参照して重複するデータがあるかどうかを確認してもよい。重複するデータがある場合、メモリシステム404に適切な読取りコマンド(たとえば、RD_X1、RD_X2、またはRD_X4)が送られる。メモリシステム404は次いで、束ねられたデータのみをメモリバス418上のアクティブレーンを介して送る。次いで、1つまたは複数の読取りデータコピーレジスタ434は、束ねられたデータを得て適切な回数だけ複製し、元のデータを再作成する。
なお、本開示の態様を使用しない場合、図1のメモリコントローラ22は、2*nビットのデータを生成してもよい。データレーンの各バンドル(DQ0~DQ7およびDQ8~DQ15)は、nビットのデータを受信し、ビート長(BL)が完成するまでnビットのデータをデータレーンを介して順次拡散させる。したがって、8DQ*BL=nである。データレーンIOブロック30(1)~30(2)の各々は、nビットのデータをメモリバンク36(1)~36(N)に記憶できるようにデコーダおよびデータラッチ34に送る。これに対して、図4のコンピューティングデバイス400では、同じ2*n個のデータがメモリインターフェースPHY416に渡されてもよいが、(書込みコマンドとしてWR_X1が使用されるか、WR_X2が使用されるか、それともWR_X4が使用されるかに応じて)n/8ビット、n/4ビット、またはn/2ビットのデータがデータレーンの特定のグループを介して送られる。書込みデータコピーレジスタ436(1)~436(2)は、コマンド/アドレス/クロックブロック422からのコマンド(data_copy_k、ここでkは統合の逆数である(すなわち、WR_X1の場合kは8であり、WR_X2の場合kは4であり、WR_X4の場合kは2である))に基づいて、統合されたデータを拡張してnビットのデータに戻し、次にnビットをデコーダおよびデータラッチ424に渡す。(たとえば、データが反復的ではないという理由で)コンピューティングデバイス400においてデータ統合が行われない場合でも、コンピューティングデバイス400が、8つのレーン全部を介して2*n個のデータを送ることによってコンピューティングデバイス10と同様に機能する場合があることに留意されたい。
書込みデータコピーレジスタ436(1)~436(2)をデータレーンIOブロック420(1)~420(2)とともに配置するのではなく、1つの書込みデータコピーレジスタをコンピューティングデバイスのメモリシステムの各デコーダおよびデータラッチ内に配置してもよい。この例示的な態様が図5に示されている。具体的には、図4のホストプロセッサ402と同一のホストプロセッサ502を有する例示的なコンピューティングデバイス500が示されている。同様に、ホストプロセッサ502は、メモリバス418に結合される。コンピューティングデバイス500は、メモリシステム404の代わりにメモリシステム504を含む。
引き続き図5を参照するとわかるように、メモリシステム504は、データレーンIOブロック520(1)~520(2)などの1つまたは複数のデータレーンIOブロックと、コマンド/アドレス/クロックブロック522とを含んでもよい。さらに、メモリシステム504は、メモリバンク526(1)~526(N)(4つが図示されている)のメモリバンクごとにデコーダおよびデータラッチ524を含んでもよい。
コマンド/アドレス/クロックブロック522は、書込みデータコピーレジスタ528にコマンドを与える。データレーンIOブロック520(1)~520(2)と各デコーダおよびデータラッチ524との間で伝達されるデータが少なくなる(n/kビットのデータ)ので、この態様が、さらなる省電力化を可能にする場合があることに留意されたい。これらの内部バスを介して伝達されるデータが少なくなるので、消費される電力が少なくなる。したがって、図4のメモリシステム404とは対照的に、メモリシステム504は、メモリバンク526(1)~526(N)にn/kビットのデータを伝達するにすぎず、各内部書込みデータコピーレジスタ528は、data_copy_kコマンドを受信し、データを拡張して元の2*nビットのデータに戻す。
メモリアドレスルックアップテーブル432は、実際のシリコン実装形態を考慮すると、比較的高価なハードウェアであり、アドレス空間が限定されることを諒解されたい。したがって、さらなる例示的な態様として、図6に示す例示的なコンピューティングデバイス600では、メモリアドレスルックアップテーブル432をなくし、各デコーダおよびデータラッチ内に読取りデータパターンチェッカー論理回路を配置するとともに、メモリシステム内に書込みデータコピーレジスタを配置する。この点に関して、図6は、ホストプロセッサ602とメモリシステム604とを有するコンピューティングデバイス600を示す。ホストプロセッサ602は、同じ機能を実現するためのロバストなSoCまたはICの組合せであってもよい。詳細には、ホストプロセッサ602は、DSP606と、GPUおよびマルチメディアエンジン608と、マルチコアCPU610と、メモリコントローラ612とを含んでもよい。DSP606、GPUおよびマルチメディアエンジン608、マルチコアCPU610、ならびにメモリコントローラ612は、システムバス614を介して互いに通信してもよい。メモリコントローラ612は、メモリインターフェースPHY616と協働してメモリバス618に結合し、メモリバス618はメモリシステム604にも結合する。例示的な態様では、メモリバス618は、第1の8つのデータレーン(DQ0~DQ7と呼ばれることがある)と、クロック(CLKと呼ばれることがある)、コマンド、およびアドレスレーン(CAと呼ばれることがある)と、第2の8つのデータレーン(DQ8~DQ15と呼ばれることがある)とを含む。クロック、コマンド、およびアドレスレーンが必要または所望に応じて3つの別々のレーンであってもよく、2つのレーンであってもよく(たとえば、一方のレーンがクロックで他方のレーンがコマンドおよびアドレス)、または単一のレーンであってもよいことに留意されたい。さらに、さらなるバックチャネルレーン634が存在してもよい。上述のように、各レーンは一般に、それ自体の物理的ピンに結合され、かつ物理的導体である。
引き続き図6を参照するとわかるように、メモリシステム604は、データレーンIOブロック620(1)~620(2)などの1つまたは複数のデータレーンIOブロックと、コマンド/アドレス/クロックブロック622とを含んでもよい。さらに、メモリシステム604は、メモリバンク626(1)~626(N)(4つが図示されている)のメモリバンクごとにデコーダおよびデータラッチ624を含んでもよい。
メモリシステム604にデータが書き込まれるとき、メモリコントローラ612内のデータパターンチェッカー論理回路630は、データが特定のパターンで繰り返されているかどうかを確認し、繰り返されている場合、重複するデータをすべての8つのデータレーンを介して送るのではなく、適切な書込みコマンド(たとえば、WR_X1、WR_X2、またはWR_X4)によってデータをより少ないレーン上に束ねさせてもよい。書込みデータコピーレジスタ628は、data_copy_kコマンドを受信し、データを拡張して元の2*nビットのデータに戻す。
この例示的な態様では、メモリアドレスルックアップテーブルがないので、ホストプロセッサ602は、パターンをメモリアドレスルックアップテーブルには記憶しない。しかし、書込みコマンド(WR_X1、WR_X2、WR_X4)は前述のように発行される。読取りコマンドは常に、重複するデータを束ねるかまたは統合するための要求なしに通常の読取りコマンドとして開始する。しかし、メモリシステム604は、読取りコマンドを受信すると、読取りデータパターンチェッカー論理回路632を使用して、上述のように統合できる重複するデータのインスタンスがあるかどうかを確認する。重複するデータのインスタンスがある場合、読取りデータパターンチェッカー論理回路632は、コマンド/アドレス/クロックブロック622に通知し、コマンド/アドレス/クロックブロック622は、読取りコマンドに対する応答が統合されたデータの形になることを、メモリバス618上のバックチャネルレーン634を介して示す。したがって、メモリシステム604は、統合されたデータに関する情報をホストプロセッサ602に送るのを可能にするバックチャネル出力(標示されていない)を含む。ホストプロセッサ602、および特に1つまたは複数の読取りデータコピーレジスタ636は次いで、受信されたデータを複製して元のデータを再作成する。
図4~図6を参照しながら上記で説明したハードウェアに基づいて、図7および図8は、本開示の例示的な態様を実施する例示的なプロセスのフローチャートを提示する。この点に関して、図7は、本開示の例示的な態様による書込み動作プロセス700のフローチャートである。書込み動作プロセス700は、メモリコントローラ412または612がメモリシステム404、504、または604に書き込むべき2*nビットの書込みデータを生成することによって開始する(ブロック702)。データパターンチェッカー論理回路430または630は、データパターンの繰り返しがあるかどうかを確認する(ブロック704)。ブロック704に対する応答がnoである場合、データパターンの繰り返しはなく、メモリコントローラ412または612は、通常の書込みコマンドを発行する(ブロック706)。
引き続き図7を参照するとわかるように、ブロック704に対する応答がyesである場合、データパターンの繰り返しがあり、データパターンチェッカー論理回路430または630は、検出されたパターンに鑑みてどの書込みコマンドが適切であるか(たとえば、WR_X1、WR_X2、またはWR_X4)を判定する(ブロック708)。メモリアドレスルックアップテーブル432が存在する場合、メモリコントローラ412はメモリアドレスルックアップテーブル432を更新する(ブロック710)。ホストプロセッサ402、502、または602は次いで、メモリバス418または618を介してn/kビットの書込みデータおよび適切な書込みコマンド(WR_X1、WR_X2、またはWR_X4、その場合、kはそれぞれ8、4、または2である)を送る(ブロック712)。したがって、本開示の例示的な態様は、データをメモリバス418または618のデータレーンのうちのいくつかのみを介して送るのを可能にする。本明細書で使用する「いくつかのデータレーン」が1つのデータレーンのみを使用することを含むことを諒解されたい。通常の書込みコマンドが使用される場合、kは1に等しい(すなわち、nビットの書込みデータが送られる)ことに留意されたい。メモリシステム404、504、または604は、n/kビットの書込みデータおよび書込みコマンドを受信する(ブロック714)。コマンド/アドレス/クロックブロック422、522、または622は、書込みコマンドが通常の書込みコマンドであるかどうかを判定する(ブロック716)。ブロック716に対する応答がnoである場合、書込みデータコピーレジスタ436(1)~436(2)、528、または628は、元のデータが復元されるまで書込みデータを複製する(ブロック718)。しかし、ブロック716において通常の書込みコマンドが判定された場合(またはブロック718の複製の後)、メモリシステム404、504、または604は、メモリバンク426(1)~426(N)、526(1)~526(N)、または626(1)~626(N)への書込み動作を実行する。
同様に、図8は読取り動作プロセス800のフローチャートを示す。読取り動作プロセス800は、メモリコントローラ412(または612)が、メモリシステム404または504におけるデータが必要であると判定することによって開始する。メモリコントローラ412は、メモリ読取りアドレスをメモリアドレスルックアップテーブル432と比較して(ブロック802)、メモリアドレスヒットがあるかどうかを確認する(ブロック804)。ブロック804においてヒットがない場合、通常の読取りコマンドが送られる(ブロック806)。コンピューティングデバイス600では、メモリアドレスルックアップテーブル432がない場合、ブロック806において通常の読取りコマンドが送られることに留意されたい。しかし、ブロック804においてメモリアドレスヒットがあった(すなわち、メモリ読取りアドレスに対応するエントリがメモリアドレスルックアップテーブル432内にある)場合、メモリアドレスルックアップテーブル432内のエントリに基づいて、メモリコントローラ412は適切な読取りコマンド(すなわち、RD_X1、RD_X2、またはRD_X4)を判定する(ブロック808)。ホストプロセッサ402は次いで、メモリバス418を介して適切な読取りコマンドを送出する(ブロック810)。メモリシステム404、504、または604は、ホストプロセッサ402、502、または602から読取りコマンドを受信する(ブロック812)。
引き続き図8を参照するとわかるように、読取りコマンドが受信された後、コマンド/アドレス/クロックブロック422、522、または622は、読取りコマンドが通常の読取りコマンドであるかどうかを判定する(ブロック814)。ブロック814に対する応答がnoである場合、読取りコマンドは通常の読取りコマンドではなく(すなわち、RD_X1、RD_X2、またはRD_X4)、その場合、デコーダおよびデータラッチ424または524は、メモリバンク426(1)~426(N)または526(1)~526(N)からn/kビットを取り出す(ブロック816)。コンピューティングデバイス600の場合、ブロック814に対する応答がyesである場合でも、読取りデータパターンチェッカー論理回路632は、パターンの有無を確認し(ブロック818)、どの程度の統合が可能であるかを判定することに留意されたい。メモリシステム604は、統合された読取りデータセットがホストプロセッサ602に送られることを示すバックチャネルコマンドをバックチャネルレーン634を介して送る(ブロック820)。通常ならば、読取りコマンドが通常の読取りコマンドである場合、デコーダおよびデータラッチ424、524、または624は通常のnビット読取り動作を実行する(ブロック822)。ブロック816、820、または822の後で、メモリシステム404、504、または604は、メモリバス418または618を介してホストプロセッサ402、502、または602にn/kビットの読取りデータを送出する(ブロック824)。n/kビットの読取りデータは次いで、必要に応じてメモリインターフェースPHY416または616内の1つまたは複数の読取りデータコピーレジスタ434または636によって複製され(ブロック826)、必要に応じて使用される。
図9は、図4のメモリシステム404、図5のメモリシステム504、または図6のメモリシステム604内の例示的な書込みデータパス900を示す。しかし、例示を目的として、書込みデータパス900がメモリシステム404内に存在すると仮定する。したがって、データレーンDQ0~DQ7およびCAレーンは、メモリバス418を介して達する。図示されていないが、メモリバス418にはデータレーンDQ8~DQ15も存在してもよい。CAレーンは、コマンド/アドレス/クロックブロック422に達し、一方、データレーンDQ0~DQ7はデータレーンIOブロック420(1)に結合される。CAレーン内の命令およびコマンドはコマンドデコーダ902に渡され、コマンドデコーダ902は、ホストプロセッサ402によって通常の書込みコマンドが発行されたかそれともWR_X1、WR_X2、またはWR_X4が発行されたかを判定する。コマンドデコーダ902は、受信されたコマンドに基づいて、データコピー制御ブロック回路904に命令する。データコピー制御ブロック回路904は、書込みデータコピーレジスタ436(1)内のレジスタ908(1)~908(M)に結合されたゲーティング論理回路906(1)~906(M)を制御する。同時に、書込みデータ先入れ先出し(FIFO)バッファ910が、nビットのデータを書込みデータコピーレジスタ436(1)へのデータ入力として与える。
図9に示すように、nビットのデータは通常、レジスタ908(1)~908(M)のうちのM個のレジスタに送られる。データコピー制御ブロック回路904がno_data_copyをアサートすると、レジスタ908(1)~908(M)のうちの1つに1データビットが送られる。しかし、データコピー制御ブロック回路904がdata_copy_8線、data_copy_4線、またはdata_copy_2線のうちの1つをアサートすると、ゲーティング論理回路906(1)~906(M)は、データをレジスタ908(1)~908(M)のうちのそれぞれの数のレジスタにコピーさせるように動作する。本開示の範囲から逸脱せずに書込みデータパス900に他の構造が使用されてもよいことを諒解されたい。
図10は、図4または図6のデータパターンチェッカー論理回路430または630に対応するデータパターンチェッカー論理回路1000の例示的なブロック図を示す。データパターンチェッカー論理回路1000は、たとえば64ビットのデータを伝達するデータバス1002を含む。これらの64ビットのデータはバイトチェッカー1004(1)~1004(8)に与えられる。図示のように、データレーンDQ0~DQ7の各々についての1ビットに対応する8ビットがバイトチェッカー1004(1)~1004(8)の各々に与えられる。バイトチェッカー1004(1)~1004(8)は、たとえば、通常の書込み、WR_X4、WR_X2、またはWR_X1にそれぞれ対応する0ビット、2ビット、4ビット、または8ビットの一致を示す2ビットコードを出力する。これらの2ビットコードはパケットチェッカー1006に与えられる。パケットチェッカー1006は、パケット全体に関するすべての出力を比較して、伝播すべきデータの最小値を判定する。最小値が一致しない場合、データが統合されないことを意味する偽の結果が返される。肯定的結果が返された場合、トランザクション開始アドレスが存在する場合、図4のメモリアドレスルックアップテーブル432に記憶される。制御論理1008は、トランザクションの開始および終了を記録する。パケットチェッカー1006は、ヒット信号およびdata_copy(1:0)をメモリインターフェースPHY416または616に出力する。これらの信号は、メモリインターフェースPHY416または616内のコマンドおよびアドレス符号化ブロック(図示せず)に送られる。アドレスバス(35:0)もコマンドおよびアドレス符号化ブロックに送られる。コマンドおよびアドレス符号化ブロックは、これらの信号を使用して、メモリバス418または618を介してメモリシステム404、504、または604に送るべき適切なアドレスを有する適切なコマンドを構成する。データバス63:0は、メモリインターフェースPHY416または616に送られ、メモリシステム404、504、または604に送られる前に適宜統合される(または統合されない)データである。
図11は、例示的な書込みおよび読取りコマンドアドレスバスタイミングを示す。すでに明らかなように、通常の書込みコマンド1102および通常の読取りコマンド1104には2クロックティック必要である。本開示の修正されたコマンドは、読取りコマンドおよび書込みコマンドをCASコマンドによって修正する。2ビットのCASコマンドおよび2ビットの読取りコマンドまたは書込みコマンドを得るには合計で4ティック必要である。したがって、図示のように、修正された書込みコマンド1106はWR、WR、CAS、CASとして提示され、修正された読取りコマンド1108はRD、RD、CAS、CASとして提示される。しかし、メモリバス418を介して送られるデータの純減によって、コマンドがわずかに多くのビットを使用するにもかかわらず、電力が削減される。修正された書込みコマンド1106および修正された読取りコマンド1108が例示的なものであり、代替コマンドが使用されてもよいことを諒解されたい。同様に、CASコマンドは、本開示の範囲から逸脱せずに書込みコマンドまたは読取りコマンドの前に位置させることができる。さらに、修正された読取りコマンドを使用する代わりに、ホストプロセッサ602が通常の読取りコマンドを送ってもよく、メモリシステム604が、バックチャネルレーン634を使用して、統合されたデータがホストプロセッサ602に送られることをホストプロセッサ602に対して示すことに留意されたい。バックチャネルレーン634はコマンド/アドレス/クロックブロック622から延びるように示されているが、他のバックチャネルを使用できることを諒解されたい。たとえば、バックチャネルはデータレーンIOブロック(たとえば、データレーンIOブロック620(1)または620(2))からの追加のDQレーンであってもよい。
図12は、例示的な書込みおよび読取りコマンド真理値表である。コマンドバスは、チップセレクト(CS)とコマンドアドレスバスの6つのレーン(CA0~CA5)とからなる。通常の書込みおよび読取りコマンドプロトコル(コマンドコード、バンクアドレス(BA)、列アドレス(C4~C9))が2クロックティックにわたって転送される。低減IOレーン書込みおよび読取りの場合、書込みコマンドおよび読取りコマンドは、図11に示す修正されたコマンド1106および1108のような低減IOレーンコマンド(書込みコマンドの場合はWR_X1またはWR_X2またはWR_X4、読取りコマンドの場合はRD_X1またはRD_X2またはRD_X4)の種類を通知するためにCASコマンドによって修正されてもよい。CASコマンドは、コマンドコードと、DQバイト当たりの低減IO(下位DQバイト(DQ0~DQ7)の場合はLB-D0、LB-D1、上位DQバイト(DQ8~DQ15)の場合はUB-D0、UB-D1)とを含む。たとえば、書込みコマンドおよびCASコマンドに関して(LB-D0, LB-D1)=00および(UB-D0, UB-D1)=10であるとき、メモリシステムは、下位DQバイトの場合は通常の書込みを行い、上位DQバイトの場合は低減IOレーン書込み(たとえば、WR_X1)を行う。本開示の例示的な態様を実行するようにさらに他の真理値表が構成されてもよい。
さらに、それぞれに異なる書込みコマンド間の差を示す代わりに(またはそれぞれに異なる書込みコマンド間の差を示すことに加えて)、CASコマンドを使用して、より大きい書込みコマンドからどのくらいの長さのデータ統合が行われるかを示すことができることに留意されたい。たとえば、データ統合は、16BLの第1または第2の8つのビートあるいは32BLの第1、第2、第3、または第4の8つのビートに対して行われる。
同様に、バックチャネルレーン634を使用すると、修正された読取りコマンド1108をなくすことが可能になる場合があることを諒解されたい。例示的な態様では、バックチャネルレーン634はデータマスク(DM)レーンであってもよい。DMレーンは、データレーンIOブロック620(1)および620(2)に結合されてもよい。通常、DMビートが「H」である場合、対応するDQバイトはメモリアレイに書き込まれないが、従来、DMレーンは書込みコマンドの間にのみ使用される。したがって、DMレーンは、読取りコマンドに対する応答の間使用できるようにオープンされる。そのような場合、特定のDMレーンがアサートされると、そのことは、読取りコマンドに応答してデータ統合が行われることを示す。
上記の説明は転送中のデータ内の垂直繰り返しに基づくデータ統合を企図しているが、本開示がそのように限定されないことに留意されたい。この点に関して、図13は、8ビットごとに繰り返される状況を示す。データ統合はそのような場合でも行われてもよく、第1の繰り返しビットがD0、D8、D16、D24などにマップされ、第2の繰り返しビットがD1、D9、D17、D25などにマップされ、以下同様である。しかし、繰り返しビットはデータレーンDQ0上でのみ送られ、上記で略述したように電力が節約される。
本明細書で開示する態様による、メモリシステムのための省電力化技法は、任意のプロセッサベースのデバイス内に設けられるか、またはその中に組み込まれてもよい。例には、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、全地球測位システム(GPS)デバイス、モバイルフォン、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)フォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、モバイルコンピューティングデバイス、装着型コンピューティングデバイス(たとえば、スマートウォッチ、ヘルスまたはフィットネストラッカー、アイウェアなど)、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、自動車、車両構成要素、アビオニクスシステム、ドローン、およびマルチコプターが含まれる。
これに関して、図14は、図4~図6に示すホストプロセッサ402、502、および602、ならびにメモリシステム404、504、および604を使用することができるプロセッサベースのシステム1400の一例を示す。この例では、プロセッサベースのシステム1400は、ホストプロセッサ402、502、または602であってもよい1つまたは複数のプロセッサ1404を各々が含む1つまたは複数のCPU1402を含む。CPU1402は、一時的に記憶されているデータに迅速にアクセスするために、プロセッサ1404に結合されたキャッシュメモリ1406を有してもよい。CPU1402は、プロセッサベースのシステム1400内に含まれるデバイスを相互結合することができるシステムバス1408に結合される。システムバス1408は、システムバス414または614であってもよい。よく知られているように、CPU1402は、システムバス1408を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU1402は、メモリコントローラ412または612であってもよいメモリコントローラ1410にバストランザクション要求を伝達することができる。図14には示していないが、複数のシステムバス1408を設けることができる。
他のデバイスをシステムバス1408に接続することができる。図14に示すように、これらのデバイスは、例として、メモリシステム404、504、または604であってもよいメモリシステム1412と、1つまたは複数の入力デバイス1414と、1つまたは複数の出力デバイス1416と、1つまたは複数のネットワークインターフェースデバイス1418と、1つまたは複数のディスプレイコントローラ1420とを含むことができる。入力デバイス1414は、入力キー、スイッチ、音声プロセッサなどを含むが、これらに限定されない、任意のタイプの入力デバイスを含むことができる。出力デバイス1416は、限定はしないが、オーディオ、ビデオ、他の視覚的インジケータなどを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス1418は、ネットワーク1422との間のデータの交換を可能にするように構成される任意のデバイスとすることができる。ネットワーク1422は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス1418は、所望の任意のタイプの通信プロトコルをサポートするように構成することが可能である。
CPU1402はまた、1つまたは複数のディスプレイ1424に送信される情報を制御するために、システムバス1408を介してディスプレイコントローラ1420にアクセスするように構成されてもよい。ディスプレイコントローラ1420は、1つまたは複数のビデオプロセッサ1426を介して表示されるように情報をディスプレイ1424へ送り、ビデオプロセッサ1426は、表示すべき情報を処理してディスプレイ1424に適したフォーマットにする。ディスプレイ1424は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリの中もしくは別のコンピュータ可読媒体の中に記憶されるとともにプロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装されてもよいことを、当業者はさらに諒解されよう。本明細書で説明するデバイスは、例として、回路、ハードウェア構成要素、IC、またはICチップにおいて利用されてもよい。本明細書で開示されるメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成されてもよい。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記において説明した。そのような機能がどのように実装されるのかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、特定の応用例ごとに様々な方式で記載の機能を実装してもよいが、そのような実装の決定が、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示される態様とともに説明した様々な例示的論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実施するように設計されたそれらの任意の組合せとともに実装または実施されてもよい。プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)としても実装されてもよい。
本明細書で開示する態様は、ハードウェアにおいて具現化されてもよく、かつハードウェアに記憶され、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体の中に存在してもよい命令において具現化されてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態において、記憶媒体は、プロセッサと一体化してもよい。プロセッサおよび記憶媒体は、ASICの中に存在する場合がある。ASICは、リモート局の中に存在する場合がある。代替形態において、プロセッサおよび記憶媒体は、個別構成要素としてリモート局、基地局、またはサーバ内に存在する場合がある。
本明細書の例示的な態様のいずれかにおいて説明する動作ステップが、例示および説明のために記載されていることにも留意されたい。説明する動作は、図示のシーケンス以外の数多くの異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明する動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様において説明する1つまたは複数の動作ステップは組み合わせられる場合がある。当業者には容易に明らかになるように、流れ図に示される動作ステップが数多くの異なる変更を受ける場合があることを理解されたい。情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることも当業者は理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
本開示のこれまでの説明は、任意の当業者が本開示を作製または使用できるようにするために提供される。本開示の様々な変更が当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものでなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
10 従来のコンピューティングデバイス
12 ホストプロセッサ
14 メモリシステム
16 デジタル信号プロセッサ(DSP)
18 マルチメディアエンジン
20 マルチコア中央処理ユニット(CPU)
22 メモリコントローラ
24 システムバス
26 メモリインターフェース物理層
28 メモリバス
30(1)~30(2) データレーンIOブロック
32 コマンド/アドレス/クロックブロック
34 デコーダおよびデータラッチ
36(1)~36(N) メモリバンク
200 コードスニペット
202、204 領域
210 データブロック
212、214 領域
300 データバースト
310 データブロック
312 スロットD0~D7
314 スロットD16~D23
316 スロットD24~D31
322、324 グループ
330 データブロック
332、334、336、338 グループ
400 コンピューティングデバイス
402 ホストプロセッサ
404 メモリシステム
406 DSP
408 GPUおよびマルチメディアエンジン
410 マルチコアCPU
412 メモリコントローラ
414 システムバス
416 メモリインターフェースPHY
418 メモリバス
420(1)~420(2) データレーンIOブロック
422 コマンド/アドレス/クロックブロック
424 デコーダおよびデータラッチ
426(1)~426(N) メモリバンク
430 データパターンチェッカー論理回路
432 メモリアドレスルックアップテーブル
434 読取りデータコピーレジスタ
436(1)~436(2) 書込みデータコピーレジスタ
500 コンピューティングデバイス
502 ホストプロセッサ
504 メモリシステム
520(1)~520(2) データレーンIOブロック
522 コマンド/アドレス/クロックブロック
524 デコーダおよびデータラッチ
526(1)~526(N) メモリバンク
528 内部書込みデータコピーレジスタ
600 コンピューティングデバイス
602 ホストプロセッサ
604 メモリシステム
606 DSP
608 GPUおよびマルチメディアエンジン
610 マルチコアCPU
612 メモリコントローラ
614 システムバス
616 メモリインターフェースPHY
618 メモリバス
620(1)~620(2) データレーンIOブロック
622 コマンド/アドレス/クロックブロック
624 デコーダおよびデータラッチ
626(1)~626(N) メモリバンク
628 書込みデータコピーレジスタ
630 データパターンチェッカー論理回路
632 読取りデータパターンチェッカー論理回路
634 バックチャネルレーン
636 読取りデータコピーレジスタ
700 書込み動作プロセス
800 読取り動作プロセス
900 書込みデータパス
902 コマンドデコーダ
904 データコピー制御ブロック回路
906(1)~906(M) ゲーティング論理回路
908(1)~908(M) レジスタ
910 書込みデータ先入れ先出し(FIFO)バッファ
1000 データパターンチェッカー論理回路
1002 データバス
1004(1)~1004(8) バイトチェッカー
1006 パケットチェッカー
1008 制御論理
1102 通常の書込みコマンド
1104 通常の読取りコマンド
1106 修正された書込みコマンド
1108 修正された読取りコマンド
1400 プロセッサベースのシステム
1402 CPU
1404 プロセッサ
1406 キャッシュメモリ
1408 システムバス
1410 メモリコントローラ
1412 メモリシステム
1414 入力デバイス
1416 出力デバイス
1418 ネットワークインターフェースデバイス
1420 ディスプレイコントローラ
1422 ネットワーク
1424 ディスプレイ
1426 ビデオプロセッサ
C4~C9 列アドレス
CA0~CA5 レーン
D0~D127 スロット
DQ0~DQ15 データレーン

Claims (33)

  1. メモリバスの複数のデータレーンに結合されるように構成された物理層(PHY)インターフェースと、
    前記PHYインターフェースに結合されたメモリコントローラであって、データパターンチェッカー論理回路を備え、
    前記データパターンチェッカー論理回路を使用して、前記メモリバスを介してメモリ要素に書き込むべきデータに繰り返し可能なデータのパターンが存在するかどうかを判定し、
    前記データをより少ないレーン内に統合し、前記データを前記メモリバスの前記複数のデータレーンのうちのいくつかのデータレーンのみを介して送る
    ように構成された、メモリコントローラと
    を備えるホストプロセッサ。
  2. 前記メモリコントローラは、ルックアップテーブルをさらに備え、前記メモリコントローラは、前記メモリ要素に書き込まれるデータに関するアドレス情報を前記ルックアップテーブルに書き込む、請求項1に記載のホストプロセッサ。
  3. 前記メモリコントローラは、前記ルックアップテーブルを使用して、統合された読取りコマンドが使用されてもよいように、前記メモリ要素から読み取られるデータが繰り返し可能なデータの前記パターンを有するかどうかを判定するように構成される、請求項2に記載のホストプロセッサ。
  4. 前記PHYインターフェースに結合された読取りデータコピーレジスタをさらに備え、前記読取りデータコピーレジスタは、読取りデータを複製するように構成される、請求項1に記載のホストプロセッサ。
  5. 前記メモリコントローラは、8つのレーンからの複製されたデータを1つのデータレーン上に統合するように構成される、請求項1に記載のホストプロセッサ。
  6. 前記メモリコントローラは、8つのレーンからの複製されたデータを2つまたは4つのデータレーン上に統合するように構成される、請求項1に記載のホストプロセッサ。
  7. 前記PHYインターフェースはバックチャネルレーンを備える、請求項1に記載のホストプロセッサ。
  8. 前記メモリコントローラは、前記メモリコントローラからのデータが統合されたデータであることの表示を受信するように構成される、請求項7に記載のホストプロセッサ。
  9. 集積回路(IC)に組み込まれた、請求項1に記載のホストプロセッサ。
  10. メモリバスに結合されるように構成された入出力(IO)ブロックと、
    メモリ要素を備え、前記IOブロックに通信可能に結合されたメモリバンクと、
    前記IOブロックを介して前記メモリバスからデータを受信し、ホストプロセッサからのコマンドに応じた回数だけ前記データを複製するように動作可能な書込みレジスタと
    を備えるメモリシステム。
  11. 前記メモリバンクは、前記メモリ要素内の前記書込みレジスタからの前記複製されたデータを記憶するように構成される、請求項10に記載のメモリシステム。
  12. 前記メモリバンクに結合されたデータパターンチェッカー論理回路をさらに備える、請求項10に記載のメモリシステム。
  13. 前記データパターンチェッカー論理回路は、前記メモリ要素から読み取られたデータに繰り返し可能なデータのパターンが存在するかどうかを判定し、前記データをより少ないレーン内に統合し、前記メモリバスの複数のデータレーンのうちのいくつかのデータレーンのみを介して前記データを送るように構成される、請求項12に記載のメモリシステム。
  14. バックチャネルレーン出力をさらに含む、請求項10に記載のメモリシステム。
  15. 前記メモリシステムは、複製されたデータの表示をバックチャネルレーンを介して前記バックチャネルレーン出力によって前記ホストプロセッサに送るように構成される、請求項14に記載のメモリシステム。
  16. メモリバスの複数のデータレーンに結合されるように構成された物理層(PHY)インターフェースと、
    読取りレジスタと、
    前記PHYインターフェースに結合されたメモリコントローラであって、
    前記PHYインターフェースを介してメモリシステムからデータを受信し、
    前記メモリシステムから受信された情報に基づいて前記読取りレジスタ内のデータを複製させる
    ように構成された、メモリコントローラと
    を備えるホストプロセッサ。
  17. 前記メモリコントローラは、読取りコマンドに応答して前記メモリシステムから受信されたデータが統合されたデータであることの表示を受信するように構成される、請求項16に記載のホストプロセッサ。
  18. 前記メモリコントローラは、前記メモリバスのバックチャネルレーンを介して受信された情報に基づいて前記読取りレジスタ内の前記データを複製させる、請求項16に記載のホストプロセッサ。
  19. メモリバスに結合されるように構成された入出力(IO)ブロックと、
    メモリ要素を備えるメモリバンクであって、前記IOブロックに通信可能に結合され、統合されたデータを前記メモリバスを介してホストプロセッサに送ることによって読取りコマンドに応答するように構成された、メモリバンクと
    を備えるメモリシステム。
  20. 前記統合されたデータが前記読取りコマンドに応答して送られることを示す情報を前記ホストプロセッサに与えるように構成されたバックチャネル出力をさらに備える、請求項19に記載のメモリシステム。
  21. 前記メモリバンクに結合されたデータパターンチェッカー論理回路をさらに備える、請求項19に記載のメモリシステム。
  22. データパターンチェッカー論理回路は、前記ホストプロセッサに送られるデータに、前記統合されたデータとして統合される繰り返しがないかどうかを確認するように構成される、請求項21に記載のメモリシステム。
  23. 前記メモリシステムは、前記ホストプロセッサに送られる統合されたデータの表示を送るように構成される、請求項19に記載のメモリシステム。
  24. メモリコントローラと物理層(PHY)インターフェースとを備えるホストプロセッサと、
    メモリシステムと、
    メモリバスとを備え、前記ホストプロセッサは、前記メモリシステムに書き込むべきデータを前記PHYインターフェースおよび前記メモリバスを介して送り、
    前記メモリコントローラは、データパターンチェッカー論理回路を備え、
    前記データパターンチェッカー論理回路を使用して、前記メモリバスを介して前記メモリシステムに書き込むべき前記データに繰り返し可能なデータのパターンが存在するかどうかを判定し、
    前記データを統合して前記メモリバスを介して送られるデータを減らす
    ように動作可能である装置。
  25. 前記メモリコントローラは、ルックアップテーブルをさらに備え、前記メモリコントローラは、前記メモリシステムに書き込まれるデータに関するアドレス情報を前記ルックアップテーブルに書き込む、請求項24に記載の装置。
  26. 前記メモリコントローラは、8つのレーンからの複製されたデータを1つのデータレーン、2つのデータレーン、または4つのデータレーン上に統合するように構成される、請求項24に記載の装置。
  27. 前記メモリコントローラは、前記メモリバスを介して送られる前記データが統合されたデータであることの表示を前記メモリシステムに与えるようにさらに動作可能である、請求項24に記載の装置。
  28. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、全地球測位システム(GPS)デバイス、モバイルフォン、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)フォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、モバイルコンピューティングデバイス、装着型コンピューティングデバイス、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、自動車、車両構成要素、アビオニクスシステム、ドローン、およびマルチコプターからなるグループから選択されたデバイスに組み込まれる、請求項24に記載の装置。
  29. メモリコントローラと物理層(PHY)インターフェースとを備えるホストプロセッサと、
    メモリシステムと、
    メモリバスとを備え、前記ホストプロセッサは、前記メモリシステムから読み取られたデータを前記PHYインターフェースおよび前記メモリバスを介して受信し、
    前記メモリシステムは、前記メモリシステムから読み取られる前記データに繰り返し可能なデータのパターンが存在するかどうかを判定し、前記ホストプロセッサからの読取りコマンドに応答して前記データを統合して前記メモリバスを介して送られるデータを減らすように動作可能である装置。
  30. 前記統合されたデータが前記読取りコマンドに応答して送られることを示す情報を前記メモリシステムが前記ホストプロセッサに送るためのバックチャネルレーンをさらに備える、請求項29に記載の装置。
  31. 前記メモリシステムは、データパターンチェッカー論理回路をさらに備える、請求項29に記載の装置。
  32. 前記データパターンチェッカー論理回路は、前記ホストプロセッサに送られるデータに、前記統合されたデータとして統合される繰り返しがないかどうかを確認する、請求項31に記載の装置。
  33. 前記メモリシステムは、前記ホストプロセッサに送られる統合されたデータの表示を送る、請求項29に記載の装置。
JP2021207223A 2016-03-03 2021-12-21 メモリシステムのための省電力化技法 Active JP7417576B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662302891P 2016-03-03 2016-03-03
US62/302,891 2016-03-03
US15/448,327 US10222853B2 (en) 2016-03-03 2017-03-02 Power saving techniques for memory systems by consolidating data in data lanes of a memory bus
US15/448,327 2017-03-02
JP2018544830A JP6999565B2 (ja) 2016-03-03 2017-03-03 メモリシステムのための省電力化技法
PCT/US2017/020582 WO2017152005A1 (en) 2016-03-03 2017-03-03 Power saving techniques for memory systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018544830A Division JP6999565B2 (ja) 2016-03-03 2017-03-03 メモリシステムのための省電力化技法

Publications (2)

Publication Number Publication Date
JP2022040150A true JP2022040150A (ja) 2022-03-10
JP7417576B2 JP7417576B2 (ja) 2024-01-18

Family

ID=59722700

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018544830A Active JP6999565B2 (ja) 2016-03-03 2017-03-03 メモリシステムのための省電力化技法
JP2021207223A Active JP7417576B2 (ja) 2016-03-03 2021-12-21 メモリシステムのための省電力化技法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018544830A Active JP6999565B2 (ja) 2016-03-03 2017-03-03 メモリシステムのための省電力化技法

Country Status (9)

Country Link
US (2) US10222853B2 (ja)
EP (1) EP3423947B1 (ja)
JP (2) JP6999565B2 (ja)
KR (1) KR102420909B1 (ja)
CN (1) CN108701099B (ja)
CA (1) CA3013090A1 (ja)
ES (1) ES2804604T3 (ja)
HU (1) HUE049615T2 (ja)
WO (1) WO2017152005A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10222853B2 (en) 2016-03-03 2019-03-05 Qualcomm Incorporated Power saving techniques for memory systems by consolidating data in data lanes of a memory bus
US10394724B2 (en) * 2016-08-22 2019-08-27 Qualcomm Incorporated Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns
KR20190035392A (ko) * 2017-09-26 2019-04-03 삼성전자주식회사 데이터 다중 기록을 수행하는 메모리 장치, 메모리 장치의 동작방법 및 메모리 컨트롤러의 동작방법
KR102731057B1 (ko) * 2018-09-21 2024-11-15 삼성전자주식회사 메모리 장치와 통신하는 데이터 처리 장치 및 방법
KR20200071396A (ko) * 2018-12-11 2020-06-19 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR102698036B1 (ko) * 2019-04-10 2024-08-22 에스케이하이닉스 주식회사 반도체장치
US11722152B1 (en) 2020-11-25 2023-08-08 Astera Labs, Inc. Capacity-expanding memory control component
US12061793B1 (en) * 2020-11-25 2024-08-13 Astera Labs, Inc. Capacity-expanding memory control component
KR20220135504A (ko) 2021-03-30 2022-10-07 삼성전자주식회사 데이터 처리 시스템 및 데이터 처리 장치의 동작 방법
US11785424B1 (en) 2021-06-28 2023-10-10 Wm Intellectual Property Holdings, L.L.C. System and method for asset tracking for waste and recycling containers
CN116264085B (zh) * 2021-12-14 2025-08-15 长鑫存储技术有限公司 存储系统以及存储系统的数据写入方法
CN116264083B (zh) * 2021-12-14 2025-08-15 长鑫存储技术有限公司 存储系统以及存储系统的数据读取方法
US20230197123A1 (en) * 2021-12-20 2023-06-22 Advanced Micro Devices, Inc. Method and apparatus for performing a simulated write operation
US11899598B2 (en) * 2022-05-31 2024-02-13 Western Digital Technologies, Inc. Data storage device and method for lane selection based on thermal conditions
KR20240009813A (ko) 2022-07-14 2024-01-23 삼성전자주식회사 단일 직렬 쓰기 인터페이싱 방식을 지원하는 스토리지 모듈 및 그것의 동작 방법
US12356292B1 (en) 2023-07-21 2025-07-08 Wm Intellectual Property Holdings, L.L.C. Apparatus and method for asset tracking for metal waste and recycling containers
US12277350B1 (en) 2023-10-30 2025-04-15 Astera Labs, Inc. Virtual metadata storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011360A (ja) * 1996-06-24 1998-01-16 Toshiba Corp キャッシュメモリ
US7631207B1 (en) * 2006-04-21 2009-12-08 Sun Microsystems, Inc. Reducing power consumption for processing of common values in microprocessor registers and execution units
WO2015042469A1 (en) * 2013-09-20 2015-03-26 Qualcomm Incorporated System and method for conserving memory power using dynamic memory i/o resizing
US20150186282A1 (en) * 2013-12-28 2015-07-02 Saher Abu Rahme Representing a cache line bit pattern via meta signaling

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
JP2921505B2 (ja) * 1996-08-09 1999-07-19 日本電気株式会社 半導体記憶装置
US6009026A (en) * 1997-07-28 1999-12-28 International Business Machines Corporation Compressed input/output test mode
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
GB2457667B (en) 2008-02-19 2012-01-11 Advanced Risc Mach Ltd Data transfer between devices within an integrated circuit
US8694703B2 (en) * 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
MX2013002773A (es) 2010-09-16 2013-04-05 Apple Inc Controlador de memoria con multiples puertos con puertos asociados con las clases de trafico.
KR101854251B1 (ko) 2010-11-30 2018-05-03 삼성전자주식회사 멀티 채널 반도체 메모리 장치 및 그를 구비하는 반도체 장치
US9189394B2 (en) * 2012-08-08 2015-11-17 Wisconsin Alumni Research Foundation Memory-link compression for graphic processor unit
JP2014053058A (ja) * 2012-09-06 2014-03-20 Toshiba Corp 半導体記憶装置
EP2979188A4 (en) 2013-06-28 2016-12-07 Hewlett Packard Entpr Dev Lp MEMORY COMPONENT THAT MAY COMMUNICATE TO A PLURALITY OF DATA WIDTHS
US9568542B2 (en) * 2013-09-25 2017-02-14 Cavium, Inc. Memory interface with integrated tester
US20150121111A1 (en) * 2013-10-24 2015-04-30 Qualcomm Incorporated System and method for providing multi-user power saving codebook optmization
US9864536B2 (en) * 2013-10-24 2018-01-09 Qualcomm Incorporated System and method for conserving power consumption in a memory system
KR102017808B1 (ko) 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법
CN103714026B (zh) * 2014-01-14 2016-09-28 中国人民解放军国防科学技术大学 一种支持原址数据交换的存储器访问方法及装置
KR102616804B1 (ko) * 2015-05-21 2023-12-26 제로포인트 테크놀로지 에이비 시맨틱 값 데이터 압축 및 압축해제를 위한 방법, 장치 및 시스템
US20170115900A1 (en) * 2015-10-23 2017-04-27 International Business Machines Corporation Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US10222853B2 (en) * 2016-03-03 2019-03-05 Qualcomm Incorporated Power saving techniques for memory systems by consolidating data in data lanes of a memory bus
US10394724B2 (en) * 2016-08-22 2019-08-27 Qualcomm Incorporated Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011360A (ja) * 1996-06-24 1998-01-16 Toshiba Corp キャッシュメモリ
US7631207B1 (en) * 2006-04-21 2009-12-08 Sun Microsystems, Inc. Reducing power consumption for processing of common values in microprocessor registers and execution units
WO2015042469A1 (en) * 2013-09-20 2015-03-26 Qualcomm Incorporated System and method for conserving memory power using dynamic memory i/o resizing
US20150186282A1 (en) * 2013-12-28 2015-07-02 Saher Abu Rahme Representing a cache line bit pattern via meta signaling

Also Published As

Publication number Publication date
WO2017152005A1 (en) 2017-09-08
JP7417576B2 (ja) 2024-01-18
CA3013090A1 (en) 2017-09-08
JP6999565B2 (ja) 2022-01-18
US20170255394A1 (en) 2017-09-07
US20190179399A1 (en) 2019-06-13
EP3423947A1 (en) 2019-01-09
JP2019507436A (ja) 2019-03-14
KR20180119584A (ko) 2018-11-02
CN108701099A (zh) 2018-10-23
KR102420909B1 (ko) 2022-07-13
HUE049615T2 (hu) 2020-09-28
EP3423947B1 (en) 2020-04-22
ES2804604T3 (es) 2021-02-08
US10222853B2 (en) 2019-03-05
US10852809B2 (en) 2020-12-01
BR112018067531A2 (pt) 2019-01-02
CN108701099B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
JP7417576B2 (ja) メモリシステムのための省電力化技法
US7907470B2 (en) Multi-column addressing mode memory system including an integrated circuit memory device
US7636272B2 (en) Multi-port memory device
CN109964213B (zh) 在基于处理器的系统中提供经扩展动态随机存取存储器突发长度
CN114365225B (zh) 具有系统ecc的存储器
US20160224414A1 (en) DUAL IN-LINE MEMORY MODULES (DIMMs) SUPPORTING STORAGE OF A DATA INDICATOR(S) IN AN ERROR CORRECTING CODE (ECC) STORAGE UNIT DEDICATED TO STORING AN ECC
KR20130119545A (ko) 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법
US10236917B2 (en) Providing memory bandwidth compression in chipkill-correct memory architectures
CN102282619B (zh) 用以在ddr dram写入期间三态控制未使用数据字节的方法、系统及设备
US10156887B2 (en) Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
CN110720126B (zh) 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
CN101568970B (zh) 存储器装置、存储系统及用于存储系统的方法
CN100354814C (zh) 存储器写入方法与控制装置
US12047302B2 (en) Data encoding and packet sharing in a parallel communication interface
BR112018067531B1 (pt) Processador hospedeiro e sistema de memória

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240105

R150 Certificate of patent or registration of utility model

Ref document number: 7417576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150