JP2019513264A - ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現 - Google Patents

ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現 Download PDF

Info

Publication number
JP2019513264A
JP2019513264A JP2018548770A JP2018548770A JP2019513264A JP 2019513264 A JP2019513264 A JP 2019513264A JP 2018548770 A JP2018548770 A JP 2018548770A JP 2018548770 A JP2018548770 A JP 2018548770A JP 2019513264 A JP2019513264 A JP 2019513264A
Authority
JP
Japan
Prior art keywords
cache
cache entry
data
dram
error
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.)
Pending
Application number
JP2018548770A
Other languages
English (en)
Other versions
JP2019513264A5 (ja
Inventor
ナタラジャン・ヴァイディアナサン
マテウス・コーネリス・アントニウス・アドリアヌス・ヘッデス
コリン・ビートン・ヴェリリ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2019513264A publication Critical patent/JP2019513264A/ja
Publication of JP2019513264A5 publication Critical patent/JP2019513264A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶の実現がもたらされる。一態様では、DRAMキャッシュ管理回路は複数のキャッシュエントリを提供し、それらの各々がタグ記憶領域、データ記憶領域、および誤り防止領域を含む。DRAMキャッシュ管理回路は、各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。このようにして、キャッシュエントリの誤り検出を実現しながらも、各キャッシュエントリのタグ記憶領域の必要を回避することによって、DRAMキャッシュの容量は増大し得る。

Description

優先出願
本出願は、その全体が参照により本明細書に組み込まれている、2016年3月30日に出願した「PROVIDING SPACE-EFFICIENT STORAGE FOR DYNAMIC RANDOM ACCESS MEMORY (DRAM) CACHE TAGS」と題する米国特許出願第15/085,350号の優先権を主張するものである。
本開示の技術は、一般に、ダイナミックランダムアクセスメモリ(DRAM)管理に関し、詳細には、DRAMキャッシュの管理に関する。
垂直に相互接続されている積み重ねられた複数のダイから構成されるダイ積層型集積回路(IC)の出現が、ダイ積層型ダイナミックランダムアクセスメモリ(DRAM)の発展を可能にしている。ダイ積層型DRAMは、本明細書では「高帯域幅メモリ」と呼ばれるものを実装するために使用され得る。高帯域幅メモリは、同様のアクセスレイテンシを提供しながら、従来のシステムメモリDRAMよりも高い帯域幅を提供する。いくつかの実装形態では、高帯域幅メモリはまた、「ニア」メモリ、または、他のシステムメモリDRAMよりもメモリインターフェースのより近くに物理的に位置するメモリでもあり得る。非限定的な例として、以前にシステムメモリDRAMから読み取られ、かつ/またはレベル3(L3)キャッシュなどの高位レベルキャッシュから追い出された、頻繁にアクセスされるデータを記憶するために、DRAMキャッシュを実装するために高帯域幅メモリが使用され得る。高帯域幅メモリの中にDRAMキャッシュを設けることにより、システムメモリDRAMにおけるメモリ競合が低減し得、したがって、事実上、全体的なメモリ帯域幅が増大し得る。
他の従来のキャッシュと同様に、DRAMキャッシュ内の各キャッシュエントリは、タグ記憶領域、データ記憶領域、および誤り防止領域を含む。タグ記憶領域は、タグを記憶するために使用され得、タグは、キャッシュエントリの一意の識別子としての働きをする。キャッシュされたデータがキャッシュエントリのデータ記憶領域に記憶される一方、誤り防止領域は、DRAMキャッシュがキャッシュエントリ内のキャッシュされたデータの破損を検出し訂正することを可能にする誤り訂正コード(ECC)を記憶し得る。非限定的な例として、ECCは、単一誤り訂正および二重誤り検出(SECDED:single-error correction and double-error detection)コードを含むことができ、それによりDRAMキャッシュは、キャッシュされたデータ内のシングルビット誤りを訂正し、キャッシュされたデータ内のダブルビット誤りを検出することができる。
しかしながら、DRAMキャッシュ内に記憶できるデータの量は、タグ記憶に専用のDRAMキャッシュの量によって悪影響を及ぼされることがある。たとえば、各キャッシュエントリが64バイト長であるDRAMキャッシュ実装形態では、各タグは、サイズが5バイトであり得、そのため、DRAMキャッシュにとって利用可能なメモリの8パーセント近くを消費することがある。DRAMキャッシュ実装形態のメモリアクセス粒度は、タグにキャッシュエントリの5バイト超を占有させることによって、この問題を悪化させ得る。したがって、DRAMキャッシュの有効メモリ容量を増大させるためにDRAMキャッシュタグを記憶するための空間効率的な機構を提供することが望ましい。
詳細な説明において開示される態様は、ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶を実現することを含む。いくつかの態様では、高帯域幅メモリの一部であるDRAMキャッシュへのアクセスを管理するために、DRAMキャッシュ管理回路が提供される。DRAMキャッシュは複数のキャッシュエントリを含み、それらの各々がタグ記憶領域、データ記憶領域、および誤り防止領域を含む。DRAMキャッシュのいくつかの態様では、タグ記憶領域は5バイト長であり得、データ記憶領域は64バイト長であり得、誤り防止領域は8バイト長であり得る。いくつかの態様では、タグ記憶領域は、5バイトよりも大きいかまたは小さい場合がある一方、いくつかの態様では、データ記憶領域がより大きいかまたは小さく(たとえば、非限定的な例として32バイトまたは128バイト)、誤り防止領域が相応してサイズ決定される場合がある。DRAMキャッシュ管理回路は、各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。非限定的な例として、EDCは、11ビットを占有する巡回冗長検査(CRC)を備えることができ、キャッシュエントリの誤り防止領域の残りの53ビットは、キャッシュエントリのタグおよび/またはキャッシュエントリに記憶されるデータに関係するメタデータ(たとえば、非限定的な例として圧縮および/またはセキュリティ属性)を記憶するために使用される。このようにして、キャッシュエントリの誤り検出を実現しながらも、各キャッシュエントリのタグ記憶領域を除去するか、またはタグ記憶領域のサイズを縮小することによって、DRAMキャッシュの容量は増大し得る。
DRAMキャッシュ管理回路のさらなる態様は、ライトスルーモードまたはライトバックモードで動作するように構成され得る。ライトスルーモードで動作するDRAMキャッシュ管理回路の態様では、DRAMキャッシュに記憶されるデータは、ECCによって保護されるシステムメモリDRAMにも書き込まれるので、DRAMキャッシュおよびシステムメモリDRAMが常に同期すること、およびシステムメモリDRAMが破損していないデータを含むことが保証される。したがって、キャッシュエントリのEDCが、キャッシュエントリに記憶されたデータ内で誤りが検出されていることを示す場合、DRAMキャッシュ管理回路は、破損していないデータを取得するために、キャッシュエントリに対応するシステムメモリDRAMにおけるメモリラインを読み取ることができる。ライトバックモードで動作するDRAMキャッシュ管理回路の態様では、DRAMキャッシュ管理回路は、DRAMキャッシュの複数のキャッシュエントリに対応する複数のダーティインジケータをさらに提供し得る。キャッシュエントリがアクセスされたとき、DRAMキャッシュ管理回路は、キャッシュエントリのダーティインジケータを使用して、キャッシュエントリがクリーンな(すなわち、変更されていない)データを記憶しているか、またはダーティな(すなわち、変更された)データを記憶しているかを判断し得る。DRAMキャッシュ管理回路は、クリーンなデータを記憶しているキャッシュエントリに関して上記で説明したようにEDCを使用してタグ記憶領域を利用し得る。ダーティなデータを記憶しているキャッシュエントリに関しては、DRAMキャッシュ管理回路は従来のキャッシュと同様にECCを使用し得る。DRAMキャッシュ管理回路はまた、各キャッシュエントリの誤り防止領域内に、キャッシュエントリが誤り検出にEDCを使用するか、またはECCを使用するかを示す誤りコードインジケータを記憶し得る。
別の態様では、プロセッサベースシステムが提供される。プロセッサベースシステムは、高帯域幅メモリの一部であるDRAMキャッシュを備える。DRAMキャッシュは、データ記憶領域および誤り防止領域をそれぞれが提供する複数のキャッシュエントリを備える。プロセッサベースシステムは、プロセッサベースシステムのコンピュートダイの上に配置され、DRAMキャッシュに通信可能に結合されるDRAMキャッシュ管理回路をさらに備える。DRAMキャッシュ管理回路は、DRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むように構成される。DRAMキャッシュ管理回路は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むようにさらに構成される。
別の態様では、DRAMキャッシュ管理回路を含むプロセッサベースシステムが提供される。DRAMキャッシュ管理回路は、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段を備える。DRAMキャッシュ管理回路は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むための手段をさらに備える。
別の態様では、DRAMキャッシュにおけるDRAMキャッシュタグの空間効率的記憶を実現するための方法が提供される。本方法は、DRAMキャッシュ管理回路によって、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むステップを含む。本方法は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むステップをさらに含む。
別の態様では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むことを行わせるコンピュータ実行可能命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むことを行わせるコンピュータ実行可能命令をさらに記憶する。
ダイナミックランダムアクセスメモリ(DRAM)キャッシュを提供する高帯域幅メモリと、DRAMキャッシュにアクセスするための従来のDRAMキャッシュ管理回路とを含む、例示的なプロセッサベースシステムのブロック図である。 DRAMキャッシュ内のDRAMキャッシュタグの空間効率的記憶を実現するように構成されたDRAMキャッシュ管理回路を含む、例示的なプロセッサベースシステムのブロック図である。 図1のDRAMキャッシュを使用してメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。 図1のDRAMキャッシュを使用してメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。 ライトバックモードでメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。 ライトバックモードでメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。 ライトバックモードでメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。 図2のDRAMキャッシュ管理回路を含み得る、例示的なプロセッサベースシステムのブロック図である。
ここで図面を参照して、本開示のいくつかの例示的な態様について説明する。「例示的」という語は、本明細書では「例、事例、または例示としての働きをすること」を意味するために使用される。本明細書で「例示的」と記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
詳細な説明において開示される態様は、ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶を実現することを含む。この点について、いくつかの態様では、DRAMキャッシュ管理回路が提供される。DRAMキャッシュ管理回路は、DRAMキャッシュ内の各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。このようにして、各キャッシュエントリのタグ記憶領域の必要を除去または低減することができるので、誤り検出機能を提供しながらも、DRAMキャッシュの有効メモリ容量を増大させることができる。
空間効率的なDRAMキャッシュタグを提供するためのDRAMキャッシュ管理回路の例示的な要素および動作について述べる前に、従来のDRAMキャッシュの構造について説明する。したがって、この点について、図1は、高帯域幅メモリ106の一部であるDRAMキャッシュ104を管理するためのDRAMキャッシュ管理回路102を提供するプロセッサベースシステム100のブロック図である。プロセッサベースシステム100は、システムメモリDRAM108を含み、システムメモリDRAM108は、いくつかの態様では、1つまたは複数のデュアルインラインメモリモジュール(DIMM)を備え得る。システムメモリDRAM108は、データが記憶されるメモリライン110(0)〜110(Y)に再分割される。プロセッサベースシステム100は、コンピュートダイ112をさらに提供し、コンピュートダイ112の上に高位レベルキャッシュ114が配置される。いくつかの態様では、高位レベルキャッシュ114は、非限定的な例として、レベル3(L3)キャッシュを備え得る。DRAMキャッシュ管理回路102は、コンピュートダイ112の上に配置され、双方向矢印116および118によって示されるように、高帯域幅メモリ106およびシステムメモリDRAM108に通信可能に結合される。DRAMキャッシュ管理回路102はまた、双方向矢印120によって示されるように、高位レベルキャッシュ114から読み取られ、かつ高位レベルキャッシュ114に書き込まれ得る。
図1のプロセッサベースシステム100は、要素の中でも、知られているデジタル論理要素、半導体回路、処理コア、および/もしくはメモリ構造のうちのいずれか1つ、またはそれらの組合せを包含し得る。本明細書で説明する態様は、要素の任意の特定の構成に限定されず、開示する技法は、半導体ダイまたはパッケージ上の様々な構造およびレイアウトに容易に拡張され得る。プロセッサベースシステム100のいくつかの態様が、図1に示すものに加えて要素を含んでよいことを理解されたい。
メモリ帯域幅を改善するために、プロセッサベースシステム100の高帯域幅メモリ106内のDRAMキャッシュ104は、システムメモリDRAM108のメモリライン110(0)〜110(Y)のうちの1つもしくは複数から以前に読み取られ、かつ/または高位レベルキャッシュ114から追い出された、データ(図示せず)をキャッシュするために、DRAMキャッシュ管理回路102によって使用され得る。非限定的な例として、いくつかの態様は、システムメモリDRAM108からデータを読み取るときのみ、DRAMキャッシュ104にデータがキャッシュされ得ることを実現してよく、いくつかの態様では、データは、高位レベルキャッシュ114から追い出されたときのみ、DRAMキャッシュ104にキャッシュされ得る。いくつかの態様によれば、プロセッサ負荷、および高位レベルキャッシュ114からのダーティなエビクションによってトリガされる読取りに対して、システムメモリDRAM108からデータを読み取るときにDRAMキャッシュ104にデータがキャッシュされ得る。
高帯域幅メモリ106内のDRAMキャッシュ104は、システムメモリDRAM108とは無関係にアクセスされ得る。その結果、メモリ帯域幅は、DRAMキャッシュ104とシステムメモリDRAM108の両方から同時に読み取ることによって事実上増大し得る。いくつかの態様では、DRAMキャッシュ104は、DRAMキャッシュ104内のエビクションの候補を決定するために、ランダムな置換ポリシーを実装し得る。
DRAMキャッシュ104は、キャッシュされたデータが記憶され得る複数のキャッシュエントリ122(0)〜122(X)を提供する。キャッシュエントリ122(0)〜122(X)の各々は、タグ記憶領域124、データ記憶領域126、および誤り防止領域128からなる。タグ記憶領域124、データ記憶領域126、および誤り防止領域128は図1において、説明のためにのみ連続して記憶されるものとして示されていることを理解されたい。いくつかの態様では、タグ記憶領域124、データ記憶領域126、および誤り防止領域128は、別個のデータ構造またはメモリ領域として実装され得る。DRAMキャッシュ104のいくつかの態様によれば、キャッシュエントリ122(0)〜122(X)の各々は、5バイトを占有するタグ記憶領域124、64バイトを占有するデータ記憶領域126、および8バイトを占有する誤り防止領域128に関連付けられる。いくつかの態様では、タグ記憶領域124は、図1の例に示すよりも大きいかまたは小さい場合があることを理解されたい。いくつかの態様によるデータ記憶領域126は、図1の例に示すよりも大きいかまたは小さく(たとえば、非限定的な例として32バイトまたは128バイト)、誤り防止領域128が相応してサイズ決定される場合があることをさらに理解されたい。
キャッシュエントリ122(0)〜122(X)のタグ記憶領域124は通常、対応するタグ130(0)〜130(X)を記憶するために使用され、これらのタグは、キャッシュエントリ122(0)〜122(X)の一意の識別子としての働きをする。キャッシュエントリ122(0)〜122(X)のデータ記憶領域126にデータ132(0)〜132(X)が記憶される。キャッシュエントリ122(0)〜122(X)の誤り防止領域128は、キャッシュエントリ122(0)〜122(X)内のデータ132(0)〜132(X)の破損の検出および訂正を可能にするECC134(0)〜134(X)を記憶し得る。非限定的な例として、ECC134(0)〜134(X)はそれぞれ、単一誤り訂正および二重誤り検出(SECDED)コードを含むことができ、それにより、対応するデータ132(0)〜132(X)内のシングルビット誤りを訂正し、データ132(0)〜132(X)内のダブルビット誤りを検出することができる。
しかしながら、DRAMキャッシュ104内に記憶できるデータ132(0)〜132(X)の量は、タグ130(0)〜130(X)の記憶に専用のDRAMキャッシュ104の量によって制限されることがある。たとえば、キャッシュエントリ122(0)〜122(X)の各々が64バイト長であるDRAMキャッシュ104の実装形態では、タグ130(0)〜130(X)の各々は5バイトに達することがあり、そのため、DRAMキャッシュ104にとって利用可能なメモリの8パーセント近くを消費することがある。DRAMキャッシュ104のメモリアクセス粒度が5バイトよりも大きいDRAMキャッシュ104の態様では、タグ130(0)〜130(X)の各々は実際には、その対応するキャッシュエントリ122(0)〜122(X)の5バイト超を占めることがある。したがって、DRAMキャッシュ104の有効メモリ容量を増大させるためにタグ130(0)〜130(X)を記憶するための空間効率的な機構を提供することが望ましい。
この点について、DRAMキャッシュ104内のタグ130(0)〜130(X)の空間効率的記憶を実現するように構成されたDRAMキャッシュ管理回路202を含む例示的なプロセッサベースシステム200を示すために、図2が提供される。明快にするために、図2について説明する際に、図1の要素が参照される。図2に見られるように、DRAMキャッシュ管理回路202は、データ132(0)〜132(X)のためのより大きい記憶容量およびタグ130(0)〜130(X)のより効率的な記憶をもたらすために、誤り防止領域128を再利用するように構成される。これらの目標を達成するために、DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)〜122(X)に記憶されたデータ132(0)〜132(X)の誤りを検出するために、図1のECC134(0)〜134(X)の代わりにEDC204(0)〜204(X)に依拠する。非限定的な例として、EDC204(0)〜204(X)は、11ビットを占める巡回冗長検査(CRC)を備え得る。EDC204(0)〜204(X)の各々はECC134(0)〜134(X)よりもはるかに小さい(たとえば、いくつかの態様では64ビットに対して11ビット)ので、DRAMキャッシュ管理回路202は誤り防止領域128に、対応するキャッシュエントリ122(0)〜122(X)のEDC204(0)〜204(X)とタグ130(0)〜130(X)の両方を記憶することができる。このようにして、DRAMキャッシュ管理回路202は、図1のタグ記憶領域124を設ける必要を回避または低減し得るので、DRAMキャッシュ104の容量が事実上増大し得る。
ECC134(0)〜134(X)とは異なり、EDC204(0)〜204(X)は、データ132(0)〜132(X)の検出された誤りを訂正するためには使用できず、そのような誤りを検出するためにのみ使用できる。キャッシュエントリ122(0)〜122(X)のうちの1つの中で誤りを検出すると、DRAMキャッシュ管理回路202は、破損していないデータを取り出すために、システムメモリDRAM108からキャッシュエントリ122(0)〜122(X)に対応するメモリライン110(0)〜110(Y)のうちの1つを読み取り得る。このために、DRAMキャッシュ管理回路202のいくつかの態様では、図2に示す例は、クリーンであることが知られているデータをDRAMキャッシュ104に書き込むときのみ使用され得る。たとえば、DRAMキャッシュ管理回路202のいくつかの態様は、ライトスルーモードで動作するように構成されてよく、ライトスルーモードでは、DRAMキャッシュ104に記憶されるすべてのデータは、システムメモリDRAM108にも書き込まれる。DRAMキャッシュ104およびシステムメモリDRAM108は常に同期するので、図2に示す例は、DRAMキャッシュ104に書き込まれ、DRAMキャッシュ104から読み取られるすべてのデータ132(0)〜132(X)に使用され得る。
ライトバックモードで動作するDRAMキャッシュ管理回路202のいくつかの態様では、DRAMキャッシュ104のキャッシュエントリ122(0)〜122(X)の各々に記憶されたデータ132(0)〜132(X)は、クリーンであるか、またはダーティであり得る。したがって、そのような態様におけるDRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)に対応する複数のダーティインジケータ206(0)〜206(X)を提供し得る。DRAMキャッシュ104のキャッシュエントリ122(0)などのキャッシュエントリ122(0)〜122(X)に書き込むとき、DRAMキャッシュ管理回路202は、書き込まれるデータ132(0)がクリーン(たとえば、システムメモリDRAM108から読み取られたデータ132(0)および/または高位レベルキャッシュ114から追い出されたクリーンなデータ132(0))であるか、またはダーティ(たとえば、高位レベルキャッシュ114から追い出されたダーティなデータ132(0))であるかを判断し得る。DRAMキャッシュ管理回路202は次いで、それに応じてキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定し得る。データ132(0)がクリーンである場合、図2に示すようにキャッシュエントリ122(0)にデータ132(0)、タグ130(0)、およびEDC204(0)が記憶され得る。一方、データ132(0)がダーティである場合、図1に示すように従来の方法でキャッシュエントリ122(0)にデータ132(0)、タグ130(0)、およびECC134(0)が記憶され得る。ダーティインジケータ206(0)〜206(X)はまた、データ132(0)およびタグ130(0)がキャッシュエントリ122(0)内にどのように記憶されているかを判断するために、またどの形式の誤り防止(EDC204(0)またはECC134(0))がキャッシュエントリ122(0)に使用されているかを示すために、DRAMキャッシュ104からキャッシュエントリ122(0)を読み取るときに、DRAMキャッシュ管理回路202によって使用され得る。
プロセッサベースシステム200のいくつかの態様では、他のプロセスがプロセッサベースシステム200によって実行され、DRAMキャッシュ104にアクセスすることは、どの形式の誤り防止がDRAMキャッシュ104のキャッシュエントリ122(0)〜122(X)の各々に使用されているかを判断するための機構を必要とし得る。非限定的な例として、プロセッサベースシステム200は、シングルビットデータ誤りがないかキャッシュエントリ122(0)〜122(X)をチェックするために、また検出された誤りを訂正するために周期的または連続的に実行される「スクラバ」プロセス(図示せず)を提供し得る。そのようなプロセスを容易にするために、DRAMキャッシュ104の各キャッシュエントリ122(0)〜122(X)は、キャッシュエントリ122(0)〜122(X)が誤り検出にEDC204(0)〜204(X)を使用するか、またはECC134(0)〜134(X)を使用するかを示す、対応する誤りコードインジケータ(IND)208(0)〜208(X)を記憶し得る。
いくつかの態様によれば、DRAMキャッシュ管理回路202は、ECC134(0)〜134(X)としてリードソロモンコードを使用するように構成され得る。リードソロモンコードは、他の従来型ECCコードよりも小さくてよいので、ECC134(0)〜134(X)が使用される態様では、誤りコードインジケータ208(0)〜208(X)を記憶するために誤り防止領域128内に追加ビットを提供し得る。いくつかの態様では、誤りコードインジケータ208(0)〜208(X)の各々は、すべて同じ値に設定された奇数の複数のビット(図示せず)を備え得る。奇数の複数のビットのうちの1つが破損した場合、誤り防止の形式は依然として、複数のビットの大部分の値によって決定され得る。
図3は、図1のDRAMキャッシュ104を使用してメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すフローチャートである。明快にするために、図3について説明する際に図1および図2の要素が参照される。図3では、DRAMキャッシュ管理回路202が、高帯域幅メモリ106の一部であるDRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック300)ことで、動作が始まる。この点について、DRAMキャッシュ管理回路202は本明細書において、「高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段」と呼ばれることがある。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のタグ130(0)およびEDC204(0)を書き込む(ブロック302)。したがって、DRAMキャッシュ管理回路202は本明細書において、「キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むための手段」と呼ばれることがある。このようにして、DRAMキャッシュ管理回路202は、DRAMキャッシュ104のメモリ容量を増大させる一方でタグ130(0)の空間効率的記憶を実現する。
上記で説明したように、DRAMキャッシュ管理回路202のいくつかの態様は、ライトスルーモードで動作するときなど、クリーンであることが知られているデータ132(0)の書込みを実行するときに、図3の動作を利用し得る。ライトスルーモードを実装する態様では、DRAMキャッシュ管理回路202はさらに、キャッシュされるべきデータ132(0)を、データ132(0)のECCとともにシステムメモリDRAM108に書き込む(ブロック304)。このようにして、DRAMキャッシュ104およびシステムメモリDRAM108のコンテンツは常に同期し、システムメモリDRAM108は破損していないデータを含む。
図1のDRAMキャッシュ104を使用してメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すために、図4が提供される。図4について説明する際に、明快にするために図1および図2の要素が参照される。DRAMキャッシュ管理回路202が、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)を読み取る(ブロック400)ことで、図4の動作が始まる。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すかどうかを判断する(ブロック402)。EDC204(0)がデータ誤りを示す場合、DRAMキャッシュ管理回路202は、システムメモリDRAM108からキャッシュエントリ122(0)に対応するメモリライン110(0)を読み取り得る(ブロック404)。システムメモリDRAM108はECCによって保護されているので、データ132(0)の破損していないコピーがシステムメモリDRAM108から取得され得る。このようにして、DRAMキャッシュ管理回路202のパフォーマンスは、データ破損という比較的まれな場合にシステムメモリDRAM108から読み取るときに不利益を被る一方で、データ破損が発生していないより一般的な場合に最適化され得る。
DRAMキャッシュ管理回路202は次いで、(たとえば、要求側キャッシュまたはプロセスにデータ132(0)を提供することによって)データ132(0)を処理し続ける(ブロック406)。決定ブロック402において、DRAMキャッシュ管理回路202が、EDC204(0)がデータ誤りを示さないと判断した場合、処理はブロック406において再開する。図3と同様に、DRAMキャッシュ管理回路202のいくつかの態様は、クリーンであることが知られているデータ132(0)の読取りを実行するときに、図4の動作を利用し得る。
図5Aおよび図5Bは、ライトバックモードで動作するように構成されたときにメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すフローチャートである。明快にするために、図5Aおよび図5Bについて説明する際に図1および図2の要素が参照される。ここで図5Aを参照すると、DRAMキャッシュ管理回路202が、キャッシュされるべきデータ132(0)が変更されているかどうかを判断する(ブロック500)ことで、動作が始まる。非限定的な例として、キャッシュされるべきデータ132(0)は、高位レベルキャッシュ114から追い出されたダーティなデータ132(0)を含み得る。データ132(0)が変更されている(すなわち、データ132(0)がダーティである)場合、DRAMキャッシュ管理回路202は、従来の書込み動作と同様のメモリ書込み動作に進む。DRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック502)。DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)のタグ記憶領域124にキャッシュエントリ122(0)のタグ130(0)を書き込む(ブロック504)。DRAMキャッシュ管理回路202はまた、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のECC134(0)を書き込む(ブロック506)。いくつかの態様では、DRAMキャッシュ管理回路202は、リードソロモンコードを書き込む(ブロック508)ことによってECC134(0)を書き込むためのブロック506の動作を実行し得る。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)が変更されたデータ132(0)を含むことを示すように、DRAMキャッシュ管理回路202の複数のダーティインジケータ206(0)〜206(X)のうちのキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定する(ブロック510)。処理は次いで、図5Bのブロック514において再開する。
ここで図5Bを参照すると、図5Aの決定ブロック500において、DRAMキャッシュ管理回路202が、データ132(0)が変更されていない(すなわち、データ132(0)がクリーンである)と判断した場合、DRAMキャッシュ管理回路202は、図3に示すものと同様のメモリ書込み動作に進む。DRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック516)。DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のタグ130(0)およびEDC204(0)を書き込む(ブロック518)。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)が変更されていないデータ132(0)を含むことを示すように、複数のダーティインジケータ206(0)〜206(X)のうちのキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定する(ブロック520)。いくつかの態様では、DRAMキャッシュ管理回路202はまた、キャッシュエントリ122(0)の誤り防止領域128に、キャッシュエントリ122(0)の誤り防止領域128がキャッシュエントリ122(0)のEDC204(0)を含むか、またはECC134(0)を含むかを示す誤りコードインジケータ208(0)を書き込み得る(ブロック514)。
ライトバックモードで動作するように構成されたときにメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すために、図6が提供される。図6について説明する際に、明快にするために図1および図2の要素が参照される。図6では、DRAMキャッシュ管理回路202が、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)を読み取る(ブロック600)ことで、動作が始まる。DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)に対応する複数のダーティインジケータ206(0)〜206(X)のうちのダーティインジケータ206(0)に基づいて、キャッシュエントリ122(0)が変更されたデータ132(0)(すなわち、ダーティなデータ132(0))を含むかどうかを判断する(ブロック602)。キャッシュエントリ122(0)が変更されたデータ132(0)を含まない場合、DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すかどうかを判断する(ブロック604)。データ誤りを示さない場合、処理はブロック608において再開する。一方、決定ブロック604において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すと判断した場合、DRAMキャッシュ管理回路202は、システムメモリDRAM108からキャッシュエントリ122(0)に対応するメモリライン110(0)を読み取る(ブロック606)。このようにして、データ132(0)の破損していないコピーがシステムメモリDRAM108から取得され得る。DRAMキャッシュ管理回路202は次いで、(たとえば、要求側キャッシュまたはプロセスにデータ132(0)を提供することによって)データ132(0)を処理し続ける(ブロック608)。
決定ブロック602において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)が変更されたデータ132(0)を含むと判断した場合、DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)の誤り防止領域128におけるECC134(0)がデータ誤りを示すかどうかを判断する(ブロック610)。データ誤りを示さない場合、処理はブロック608において再開する。決定ブロック610において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)の誤り防止領域128におけるECC134(0)がデータ誤りを示すと判断した場合、DRAMキャッシュ管理回路202は、データ誤りが訂正可能である(たとえば、SECDED ECC134(0)によって訂正可能なシングルビット誤り)かどうかを判断する(ブロック612)。データ誤りが訂正できない場合、DRAMキャッシュ管理回路202は、訂正不可能な誤りが発生したことを示すために、中断を引き起こし得る(ブロック613)。一方、データ誤りが訂正可能である場合、DRAMキャッシュ管理回路202は、ECC134(0)に基づいてデータ誤りを訂正する(ブロック614)。次いで、ブロック608において処理が再開する。
本明細書で開示する態様による、DRAMキャッシュタグの空間効率的記憶の実現は、任意のプロセッサベースデバイスにおいてもたらされてよく、または任意のプロセッサベースデバイスに組み込まれてもよい。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車が含まれる。
この点について、図7は、高帯域幅メモリ(HBM)106の一部であるDRAMキャッシュ104を管理するための、図1に示すDRAMキャッシュ管理回路(DCMC)102を採用できるプロセッサベースシステム700の一例を示す。プロセッサベースシステム700は、図1のコンピュートダイ112を含み、各々が1つまたは複数のプロセッサ704を含む1つまたは複数の中央処理装置(CPU)702がコンピュートダイ112の上に設けられる。CPU702は、一時的に記憶されているデータに迅速にアクセスするために、プロセッサ704に結合されたキャッシュメモリ706を有してもよい。CPU702は、システムバス708に結合され、プロセッサベースシステム700に含まれるマスタデバイスとスレーブデバイスとを相互結合することができる。よく知られているように、CPU702は、システムバス708を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU702は、スレーブデバイスの一例としてメモリコントローラ710に、バストランザクション要求を通信することができる。
他のマスタデバイスおよびスレーブデバイスがシステムバス708に接続されてよい。図7に示すように、これらのデバイスは、例として、メモリシステム712、1つまたは複数の入力デバイス714、1つまたは複数の出力デバイス716、1つまたは複数のネットワークインターフェースデバイス718、および1つまたは複数のディスプレイコントローラ720を含むことができる。入力デバイス714は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含むことができる。出力デバイス716は、限定はしないが、オーディオ、ビデオ、他の視覚的インジケータなどを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス718は、ネットワーク722との間のデータの交換を可能にするように構成された、任意のデバイスとすることができる。ネットワーク722は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス718は、任意のタイプの所望の通信プロトコルをサポートするように構成され得る。メモリシステム712は、1つまたは複数のメモリユニット724(0)〜724(N)を含むことができる。
CPU702はまた、1つまたは複数のディスプレイ726に送られる情報を制御するために、システムバス708を介してディスプレイコントローラ720にアクセスするように構成されてもよい。ディスプレイコントローラ720は、1つまたは複数のビデオプロセッサ728を介して表示されるべき情報をディスプレイ726に送り、ビデオプロセッサ728は、表示されるべき情報をディスプレイ726に適したフォーマットになるように処理する。ディスプレイ726は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができる。
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリの中もしくは別のコンピュータ可読媒体の中に記憶されるとともにプロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることを、当業者はさらに諒解されよう。本明細書で説明するマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて使用されてもよい。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、任意のタイプの所望の情報を記憶するように構成されてもよい。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記において説明した。そのような機能がどのように実装されるのかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装決定が本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサは、マイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装されてもよい。
本明細書で開示する態様は、ハードウェアにおいて具現化されてもよく、かつハードウェアに記憶され、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体の中に存在し得る命令において具現化されてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取りかつ記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化してもよい。プロセッサおよび記憶媒体は、ASICの中に存在する場合がある。ASICは、リモート局の中に存在する場合がある。代替として、プロセッサおよび記憶媒体は、個別構成要素としてリモート局、基地局、またはサーバの中に存在する場合がある。
本明細書の例示的な態様のいずれかにおいて説明する動作ステップが、例示および説明のために記載されていることにも留意されたい。説明する動作は、図示のシーケンス以外の数多くの異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明する動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様で説明した1つまたは複数の動作ステップは、組み合わせられてよい。当業者には容易に明らかになるように、フローチャート図に示される動作ステップが数多くの異なる変更を受ける場合があることを理解されたい。情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることも当業者は理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
本開示のこれまでの説明は、任意の当業者が本開示を作製または使用できるようにするために提供される。本開示の様々な変更が当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものでなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
100 プロセッサベースシステム
102 DRAMキャッシュ管理回路(DCMC)
104 DRAMキャッシュ
106 高帯域幅メモリ(HBM)
108 システムメモリDRAM
110(0)〜110(Y) メモリライン
112 コンピュートダイ
114 高位レベルキャッシュ
116 双方向矢印
118 双方向矢印
120 双方向矢印
122(0)〜122(X) キャッシュエントリ
124 タグ記憶領域
126 データ記憶領域
128 誤り防止領域
130(0)〜130(X) タグ
132(0)〜132(X) データ
134(0)〜134(X) ECC
200 プロセッサベースシステム
202 DRAMキャッシュ管理回路
204(0)〜204(X) EDC
206(0)〜206(X) ダーティインジケータ
208(0)〜208(X) 誤りコードインジケータ(IND)
700 プロセッサベースシステム
702 中央処理装置(CPU)
704 プロセッサ
706 キャッシュメモリ
708 システムバス
710 メモリコントローラ
712 メモリシステム
714 入力デバイス
716 出力デバイス
718 ネットワークインターフェースデバイス
720 ディスプレイコントローラ
722 ネットワーク
724(0)〜724(N) メモリユニット
726 ディスプレイ
728 ビデオプロセッサ

Claims (20)

  1. プロセッサベースシステムであって、
    データ記憶領域および誤り防止領域をそれぞれが提供する複数のキャッシュエントリを備える、高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュと、
    前記プロセッサベースシステムのコンピュートダイの上に配置され、前記DRAMキャッシュに通信可能に結合されたDRAMキャッシュ管理回路と
    を備え、
    前記DRAMキャッシュ管理回路は、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちのキャッシュエントリの前記データ記憶領域にキャッシュされるべきデータを書き込み、
    前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
    ように構成される、プロセッサベースシステム。
  2. 前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項1に記載のプロセッサベースシステム。
  3. 前記DRAMキャッシュ管理回路は、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
    ようにさらに構成される、請求項2に記載のプロセッサベースシステム。
  4. 前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
    前記DRAMキャッシュ管理回路は、前記DRAMキャッシュの前記複数のキャッシュエントリに対応する複数のダーティインジケータを備え、
    前記DRAMキャッシュ管理回路は、
    キャッシュされるべき前記データが変更されているかどうかを判断し、
    キャッシュされるべき前記データが変更されているとの判断に応答して、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
    前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
    前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込み、
    前記キャッシュエントリが変更されたデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定し、
    キャッシュされるべき前記データが変更されていないとの判断に応答して、
    前記キャッシュエントリが変更されていないデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定する
    ようにさらに構成され、
    前記DRAMキャッシュ管理回路は、キャッシュされるべき前記データが変更されていないとの判断にさらに応答して、前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むように構成される、請求項1に記載のプロセッサベースシステム。
  5. 前記DRAMキャッシュ管理回路は、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
    前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
    前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
    前記データ誤りが訂正可能であるかどうかを判断し、
    前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
    前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
    前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
    ようにさらに構成される、請求項4に記載のプロセッサベースシステム。
  6. 前記DRAMキャッシュ管理回路は、リードソロモンコードとして前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むように構成され、
    前記DRAMキャッシュ管理回路は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むようにさらに構成される、請求項4に記載のプロセッサベースシステム。
  7. 集積回路(IC)に統合された、請求項1に記載のプロセッサベースシステム。
  8. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されたデバイスに統合された、請求項1に記載のプロセッサベースシステム。
  9. ダイナミックランダムアクセスメモリ(DRAM)キャッシュ管理回路を含むプロセッサベースシステムであって、前記DRAMキャッシュ管理回路は、
    高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段と、
    前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むための手段と
    を備える、プロセッサベースシステム。
  10. ダイナミックランダムアクセスメモリ(DRAM)キャッシュにおけるDRAMキャッシュタグの空間効率的記憶を実現するための方法であって、
    DRAMキャッシュ管理回路によって、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むステップと、
    前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むステップと
    を含む方法。
  11. 前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項10に記載の方法。
  12. 前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと
    をさらに含む、請求項11に記載の方法。
  13. 前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
    前記方法は、
    キャッシュされるべき前記データが変更されているかどうかを判断するステップと、
    キャッシュされるべき前記データが変更されているとの判断に応答して、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップと、
    前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込むステップと、
    前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込むステップと、
    前記キャッシュエントリが変更されたデータを含むことを示すように、前記DRAMキャッシュ管理回路の複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定するステップと、
    キャッシュされるべき前記データが変更されていないとの判断に応答して、
    前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定するステップと
    をさらに含み、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップ、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むステップは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項10に記載の方法。
  14. 前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
    前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断するステップと、
    前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断するステップと、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
    前記データ誤りが訂正可能であるかどうかを判断するステップと、
    前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正するステップと、
    前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと、
    前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取るステップと
    をさらに含む、請求項13に記載の方法。
  15. 前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むステップは、リードソロモンコードを書き込むステップを含み、
    前記方法は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むステップをさらに含む、請求項13に記載の方法。
  16. プロセッサによって実行されると、前記プロセッサに、
    高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込み、
    前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
    ことを行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読記憶媒体。
  17. 前記プロセッサによって実行されると、前記プロセッサに、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
    ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記プロセッサによって実行されると、前記プロセッサに、
    キャッシュされるべき前記データが変更されているかどうかを判断し、
    キャッシュされるべき前記データが変更されているとの判断に応答して、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
    前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
    前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込み、
    前記キャッシュエントリが変更されたデータを含むことを示すように、複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定し、
    キャッシュされるべき前記データが変更されていないとの判断に応答して、
    前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定する
    ことをさらに行わせるコンピュータ実行可能命令を記憶し、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むこと、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むことは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記プロセッサによって実行されると、前記プロセッサに、
    前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
    前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
    前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
    前記データ誤りが訂正可能であるかどうかを判断し、
    前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
    前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
    前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
    前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
    ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記プロセッサによって実行されると、前記プロセッサに、
    リードソロモンコードを書き込むことによって、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込み、
    前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込む
    ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
JP2018548770A 2016-03-30 2017-03-03 ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現 Pending JP2019513264A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/085,350 US10467092B2 (en) 2016-03-30 2016-03-30 Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US15/085,350 2016-03-30
PCT/US2017/020620 WO2017172258A1 (en) 2016-03-30 2017-03-03 Providing space-efficient storage for dynamic random access memory (dram) cache tags

Publications (2)

Publication Number Publication Date
JP2019513264A true JP2019513264A (ja) 2019-05-23
JP2019513264A5 JP2019513264A5 (ja) 2020-03-26

Family

ID=58347984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018548770A Pending JP2019513264A (ja) 2016-03-30 2017-03-03 ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現

Country Status (7)

Country Link
US (1) US10467092B2 (ja)
EP (1) EP3436957A1 (ja)
JP (1) JP2019513264A (ja)
KR (1) KR102457671B1 (ja)
CN (1) CN108780424B (ja)
BR (1) BR112018069663A2 (ja)
WO (1) WO2017172258A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3453022B1 (en) 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10866900B2 (en) * 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
US11568932B2 (en) * 2021-02-22 2023-01-31 Micron Technology, Inc. Read cache for reset read disturb mitigation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149290A (ja) * 2003-11-18 2005-06-09 Seiko Epson Corp 情報処理装置およびキャッシュメモリ制御方法
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US20120117428A1 (en) * 2010-11-09 2012-05-10 Fujitsu Limited Cache memory system
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
JP2015052938A (ja) * 2013-09-06 2015-03-19 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US20150149865A1 (en) * 2013-11-26 2015-05-28 Qualcomm Incorporated Cache structure with parity-protected clean data and ecc-protected dirty data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2815735B1 (fr) * 2000-10-25 2005-11-11 Centre Nat Etd Spatiales Dispositif et procede de detection et correction d'erreurs memoire dans un systeme electronique
US7650557B2 (en) 2005-09-19 2010-01-19 Network Appliance, Inc. Memory scrubbing of expanded memory
US7606980B2 (en) * 2006-02-27 2009-10-20 Intel Corporation Demand-based error correction
US8464007B2 (en) 2007-03-26 2013-06-11 Cray Inc. Systems and methods for read/write phase request servicing
US8291305B2 (en) * 2008-09-05 2012-10-16 Freescale Semiconductor, Inc. Error detection schemes for a cache in a data processing system
US8145985B2 (en) * 2008-09-05 2012-03-27 Freescale Semiconductor, Inc. Error detection schemes for a unified cache in a data processing system
US8266498B2 (en) * 2009-03-31 2012-09-11 Freescale Semiconductor, Inc. Implementation of multiple error detection schemes for a cache
US8826097B2 (en) 2011-03-30 2014-09-02 Arm Limited Memory scrubbing
US8719664B1 (en) 2011-04-12 2014-05-06 Sk Hynix Memory Solutions Inc. Memory protection cache
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
WO2013095525A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Content-aware caches for reliability
US9444496B2 (en) 2012-04-04 2016-09-13 University Of Southern California Correctable parity protected memory
CN104246898B (zh) * 2012-05-31 2017-03-22 慧与发展有限责任合伙企业 局部错误检测和全局错误纠正
US20130346695A1 (en) * 2012-06-25 2013-12-26 Advanced Micro Devices, Inc. Integrated circuit with high reliability cache controller and method therefor
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US20140244932A1 (en) * 2013-02-27 2014-08-28 Advanced Micro Devices, Inc. Method and apparatus for caching and indexing victim pre-decode information
WO2015016880A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Global error correction

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149290A (ja) * 2003-11-18 2005-06-09 Seiko Epson Corp 情報処理装置およびキャッシュメモリ制御方法
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US20120117428A1 (en) * 2010-11-09 2012-05-10 Fujitsu Limited Cache memory system
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
JP2015503160A (ja) * 2011-11-30 2015-01-29 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 物理的な行に共に記憶されたタグ及びデータを有するdramキャッシュ
JP2015052938A (ja) * 2013-09-06 2015-03-19 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US20150149865A1 (en) * 2013-11-26 2015-05-28 Qualcomm Incorporated Cache structure with parity-protected clean data and ecc-protected dirty data

Also Published As

Publication number Publication date
WO2017172258A1 (en) 2017-10-05
BR112018069663A2 (pt) 2019-02-05
EP3436957A1 (en) 2019-02-06
KR20180127378A (ko) 2018-11-28
CN108780424B (zh) 2022-10-28
KR102457671B1 (ko) 2022-10-20
US20170286214A1 (en) 2017-10-05
US10467092B2 (en) 2019-11-05
CN108780424A (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
KR102143517B1 (ko) 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9710324B2 (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
TWI631569B (zh) 用於解決動態隨機存取記憶體缺陷之系統,方法及電腦程式
US9071281B2 (en) Selective provision of error correction for memory
KR20160124794A (ko) Dram 결함들의 커널 마스킹
US20180074893A1 (en) Providing memory bandwidth compression in chipkill-correct memory architectures
US9065481B2 (en) Bad wordline/array detection in memory
US20180032394A1 (en) Systems and methods for implementing error correcting code regions in a memory
TW201222254A (en) Method for protecting data in damaged memory cells by dynamically switching memory mode
US9612908B2 (en) Performing memory data scrubbing operations in processor-based memory in response to periodic memory controller wake-up periods
US10115444B1 (en) Data bit inversion tracking in cache memory to reduce data bits written for write operations
EP3371702B1 (en) Systems and methods for implementing error correcting code in a memory
JP2018503924A (ja) 中央処理ユニット(cpu)ベースのシステム内の圧縮メモリコントローラ(cmc)による連続読取り動作を使用するメモリ帯域幅圧縮の提供
KR102457671B1 (ko) 동적 랜덤 액세스 메모리(dram) 캐시 태그들을 위한 공간 효율적인 저장소의 제공
US9401226B1 (en) MRAM initialization devices and methods
EP3021222B1 (en) Method, device and system for memory access
JP2019513264A5 (ja)
JP2017511547A (ja) 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム
US20140032855A1 (en) Information processing apparatus and method
US20210182135A1 (en) Method and apparatus for fault prediction and management
CN108664417B (zh) 一种目录更新方法及装置
EP4193262A1 (en) Method, apparatus, and system for run-time checking of memory tags in a processor-based system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220725