JP2018120589A - 揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部 - Google Patents

揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部 Download PDF

Info

Publication number
JP2018120589A
JP2018120589A JP2018005751A JP2018005751A JP2018120589A JP 2018120589 A JP2018120589 A JP 2018120589A JP 2018005751 A JP2018005751 A JP 2018005751A JP 2018005751 A JP2018005751 A JP 2018005751A JP 2018120589 A JP2018120589 A JP 2018120589A
Authority
JP
Japan
Prior art keywords
refresh
cache
management unit
bank
alternative
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
JP2018005751A
Other languages
English (en)
Other versions
JP7164951B2 (ja
Inventor
牧 天 張
Mu-Tien Chang
牧 天 張
迪 民 牛
Dimin Niu
迪 民 牛
宏 忠 鄭
Hongzhong Zheng
宏 忠 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018120589A publication Critical patent/JP2018120589A/ja
Application granted granted Critical
Publication of JP7164951B2 publication Critical patent/JP7164951B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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
    • 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
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部を提供する。
【解決手段】各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する際に、代替される複数のメモリラインの中の少なくとも1つに対する代替IDを識別する段階と、リフレッシュされるメモリバンクの中の1つに対するリフレッシュバンクIDを識別する段階と、代替IDとリフレッシュバンクIDとの間に衝突が存在するか否かを判別する段階と、衝突が存在する場合、新たな代替IDを選択する段階と、を有する。
【選択図】図9

Description

本発明は、揮発性メモリキャッシュに関し、より詳細には、揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部に関する。
既存のキャッシュ(cache)代替ポリシーは、一般的に2つの主要設計考慮事項、即ち最高のキャッシュヒット率(cache hit ratio)を達成し、合理的な具現費用を維持することを考慮する。このような設計考慮事項は一般的にオンチップ(on−chip)SRAMキャッシュが使用されることを仮定する。SRAMキャッシュは不揮発性メモリ(non−volatile memory:NVM)であるため、リフレッシュ(refresh)は一般的にSRAMキャッシュに用いられない。具現費用及び/又はチップサイズを減らすために、オンチップキャッシュにDRAMを使用する傾向がある。DRAMキャッシュは揮発性メモリであるため、リフレッシュがDRAMキャッシュで用いられる。また、SRAMキャッシュは一般的にDRAMキャッシュよりも速いが、DRAMキャッシュは、一般的にSRAMキャッシュよりも安く、一般的にSRAMキャッシュよりも単位面積当たりより高い格納容量を有する。
米国特許第8,072,829号明細書 米国特許第9,293,187号明細書 米国特許出願公開第2008/0270683号明細書 米国特許出願公開第2016/0188222号明細書 米国特許出願公開第2016/0188490号明細書
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、揮発性メモリキャッシュのためのリフレッシュを認識する代替ポリシーに基づく揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部を提供することにある。
本明細書の実施形態の一側面はリフレッシュを用いる揮発性メモリキャッシュに対する代替ポリシーに関する。本発明の実施形態に関し、衝突が代替IDとリフレッシュバンクIDとの間に存在する場合、代替ID又はリフレッシュバンクIDの中のいずれか1つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替IDを選択する。また、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、リフレッシュバンクIDが変更可能であるか否かを確認し、リフレッシュバンクIDが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクIDを選択する。
上記目的を達成するためになされた本発明の一態様による方法は、各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュ(volatile memory cache)のデータを代替する方法であって、前記方法は、代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する段階と、リフレッシュ(refresh)される前記メモリバンクの中の1つに対するリフレッシュバンク(bank)IDを識別する段階と、前記代替IDと前記リフレッシュバンクIDとの間に衝突が存在するか否かを判別する段階と、前記衝突が存在する場合、新たな代替IDを選択する段階と、を有する。
前記揮発性メモリキャッシュは、DRAM(Dynamic Random−Access Memory)キャッシュを含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され得る。
前記キャッシュ管理部は、前記代替IDを識別する代替管理部と、前記リフレッシュバンクIDを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、を含み得る。
前記代替管理部は、前記比較器から受信された代替フィードバック(replacement feedback)に基づいて新たな代替IDを更に選択し得る。
上記目的を達成するためになされた本発明の他の態様による方法は、各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュ(volatile memory cache)のデータを代替する方法であって、前記方法は、代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する段階と、リフレッシュ(refresh)される前記メモリバンクの中の1つに対する第1リフレッシュバンク(bank)IDを識別する段階と、前記代替IDと前記第1リフレッシュバンクIDとの間に衝突が存在するか否かを判別する段階と、前記衝突が存在する場合、前記第1リフレッシュバンクIDが変更可能であるか否かを判別する段階と、前記衝突が存在し、前記第1リフレッシュバンクIDが変更可能である場合、第2リフレッシュバンクIDを選択する段階と、を有する。
前記揮発性メモリキャッシュは、DRAM(Dynamic Random−Access Memory)キャッシュを含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され得る。
前記キャッシュ管理部は、前記代替IDを識別する代替管理部と、前記第1リフレッシュバンクIDを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、含み得る。
前記リフレッシュコントローラは、前記比較器から受信されたリフレッシュフィードバック(refresh feedback)に基づいて前記第2リフレッシュバンクIDを更に選択し得る。
前記方法は、前記衝突が存在し、前記第1リフレッシュバンクIDが変更不可能である場合、新たな代替IDを選択する段階を更に含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され、前記キャッシュ管理部は、前記代替IDを識別する代替管理部と、前記第1リフレッシュバンクIDを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、含み得る。
前記第2リフレッシュバンクIDが選択された場合、前記第1リフレッシュバンクIDのリフレッシュは、前記第1リフレッシュバンクIDの定期的に計画された次のリフレッシュまで延期され得る。
前記第2リフレッシュバンクIDが選択された場合、前記第1リフレッシュバンクIDのリフレッシュは、前記第2リフレッシュバンクIDがリフレッシュされる時点まで延期され得る。
上記目的を達成するためになされた本発明の一態様によるキャッシュ管理部は、各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュを含むキャッシュを管理するキャッシュ管理部であって、前記キャッシュ管理部は、代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する代替管理部と、リフレッシュ(refresh)される前記メモリバンクの中の1つに対するリフレッシュバンク(bank)IDを識別するリフレッシュコントローラと、前記代替IDと前記リフレッシュバンクIDとの間の衝突が存在するか否かを判別し、前記衝突が存在する場合、新たな代替IDを選択させるための代替フィードバック(replacement feedback)を前記代替管理部に伝送するか、又は新たなリフレッシュバンクIDを選択させるためのリフレッシュフィードバック(refresh feedback)を前記リフレッシュコントローラに伝送する比較器と、を備える。
前記揮発性メモリキャッシュは、DRAM(Dynamic Random−Access Memory)キャッシュを含み得る。
前記比較器は、前記代替フィードバックを前記代替管理部に更に伝送し得る。
前記比較器は、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送し得る。
前記比較器は、前記衝突が存在する場合、前記リフレッシュバンクIDが変更可能であるか否かを判別し、前記リフレッシュバンクIDが変更可能である場合、前記リフレッシュフィードバックをリフレッシュコントローラに更に伝送し、前記リフレッシュバンクIDが変更不可能である場合、前記代替フィードバックを前記代替管理部に更に伝送し得る。
前記キャッシュは、不揮発性メモリを更に含み得る。
本発明の上記特徴及び他の特徴並びにその側面は明細書、請求項、及び図面に関して認識され、理解される。
本発明の揮発性メモリキャッシュのデータを代替する方法によれば、衝突が代替IDとリフレッシュバンクIDとの間に存在する場合、代替ID又はリフレッシュバンクIDの中のいずれか1つを変更することで遅延を防止することができる。
本発明の一実施形態による広帯域幅メモリスタックの斜視図である。 本発明の一実施形態による広帯域幅メモリスタックをレベル3キャッシュとして使用するプロセシングシステムのブロック図である。 本発明の一実施形態による広帯域幅メモリスタックのブロック図である。 一実施形態によるバックサイドDRAMキャッシュを含むNVDIMMの一例を示す。 本発明の一実施形態によるロジックダイのブロック図である。 本発明の他の実施形態によるロジックダイのブロック図である。 本発明の更に他の実施形態によるロジックダイのブロック図である。 本発明の一実施形態によるNVM/キャッシュコントローラのブロック図である。 本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの一方法を説明するフローチャートである。 本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの他の方法を説明するフローチャートである。 本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの更に他の方法を説明するフローチャートである。
本発明の実施形態において、衝突(conflict)が代替ID(replacement ID(identification))とリフレッシュバンクID(refresh bank ID)との間に存在する場合、代替ID又はリフレッシュバンクIDの中のいずれか1つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替IDを選択する。また、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、リフレッシュバンクIDが変更可能であるか否かを確認し、リフレッシュバンクIDが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクIDを選択する。
図面に関連して以下に説明する詳細な説明は、本発明によって提供される揮発性メモリキャッシュ(caches)のためのリフレッシュを認識する代替ポリシーの例示的な実施形態に対する説明として意図し、本発明が構成されるか、或いは利用可能な唯一の形態を示すために意図するものではない。本明細書は図示する実施形態に関連して本発明の特徴を説明する。しかし、本発明の実施形態は、本発明の思想及び範囲内に含まれ、また意図された他の実施形態と同一であるか、或いは同等な機能及び構造が達成されることが理解される。本明細書の他の箇所で言及するように、同じ要素符号は同じ要素又は特徴を示すものと意図する。
2016年11月11日付で出願し、「Byte−Addressable Flash−Based Module」という名称の米国特許出願15/349,949号、2016年9月21日付で出願し、「HBM with In−Memory Cache」という名称の米国特許出願15/272,339号、そして2016年10月4日付で出願し、「System and Method for operating a DDR−Compatible Asynchronous Memory module」という名称の米国特許出願15/285,423号の全体内容は全体的に参照文献として本明細書に引用される。
広帯域幅メモリ(high bandwidth memory:HBM)は高性能の3DスタックされたDRAM(three dimensional(3D)−stacked dynamic random access memory)である。第2世代広帯域幅メモリはスタック(stack)当たり8個のダイ(dies)まで含むことができ、2GT/s(giga transfers per second)までピン伝送速度(pin transfer rates)を提供する。インターフェイス(interface)は、総1024ビット幅アクセスのために、8個のチャンネルを含み、各チャンネルは128ビット幅である。第2世代広帯域幅メモリは、パッケージ(package)当たり256GB/sメモリ帯域幅に到達し、パッケージ当たり8GBまでの格納容量を有する。第2世代広帯域幅メモリのインターフェイスはJEDEC(Joint Electron Device Engineering Council)によって受け入れられた標準に準拠する。
図1は、本発明の一実施形態による広帯域幅メモリスタックの斜視図である。図1を参照すると、広帯域幅メモリスタック(HBM stack)105の物理的な構成は、ロジックダイ(logic die)110、及びロジックダイ110上にスタックされた(stacked)複数のDRAMダイ(例えば、8個のダイ)を含む3D DRAM又はDRAMスタック(three dimensional DRAM or DRAM stack)115を有する。相互連結(interconnections)はTSVs(through−silicon vias)を利用してスタック内に形成される。他の広帯域幅メモリスタックは、ロジックダイ内に接続及び信号処理回路を含み、その結果としてDRAMチャンネルインターフェイスが実質的に変更されずに広帯域幅メモリの外部インターフェイスからホストプロセッサに提供される。
図2は、本発明の一実施形態による広帯域幅メモリスタックをレベル3キャッシュとして使用するプロセシングシステムのブロック図である。図2を参照すると、広帯域幅メモリスタック(HBM/CM)105は、ホストプロセッサ155(host processor、CPU又はGPU)に連結される。ホストプロセッサ155は複数のコア(C)160を含み、各コアはレベル1(L1)キャッシュ150を有する。レベル2(L2)キャッシュ120はレベル1(L1)キャッシュ150に連結され、第1メモリコントローラ(MC1)125はオフチップメインメモリ(off−chip main memory)130にインターフェイスを提供する。第2メモリコントローラ(MC2)135は広帯域幅メモリスタック105にインターフェイスを提供する。広帯域幅メモリスタック105は広帯域幅メモリスタック105のロジックダイ内にキャッシュ管理部(cache manager:CM)を含む。広帯域幅メモリスタック105は、その中に集積されたキャッシュマネージャ(manager)(CM)と共に、ホストプロセッサ155によってレベル3キャッシュとして(又は、例えばレベル3キャッシュも有するシステムのレベル4キャッシュとして)使用される。広帯域幅メモリインターフェイス145はJEDECに準拠するインターフェイスである。即ち、広帯域幅メモリインターフェイス145は導電体(conductors)及びJEDEC標準によって明示されたシグナリングプロトコル(signaling protocols)を提供する。一実施形態において、広帯域幅メモリスタック105及びホストプロセッサ155はシリコンインターポーザ(silicon interposer)140内に配置される。シリコンインターポーザ140は広帯域幅メモリスタック105とホストプロセッサ155とを連結する。
図3は、本発明の一実施形態による広帯域幅メモリスタックのブロック図である。図3を参照すると、一部の実施形態において、広帯域幅メモリスタック105は、チャンネルと称され、Ch0−Ch7として図3で示した8個の内部インターフェイスを通じて、DRAMスタック115(例えば、図1参照)内のDRAMに連結されるロジックダイ110を含む。各レベルはダイと称される。例えば、Ch0及びCh1はDRAMダイ0にあり、Ch2及びCh3はDRAMダイ1にあり、Ch4及びCh5はDRAMダイ2にあり、Ch6及びCh7はDRAMダイ3にある。
そして、全てのDRAMダイの下に、ロジックを追加できるロジックダイがある。ロジックダイは第2メモリコントローラ135(例えば、図2参照)と通信する。ロジックダイと第2メモリコントローラ135との間のインターフェイスはJEDEC標準によって定義される。
一実施形態において、一部のキャッシュ管理ロジックは、広帯域幅メモリ自体が全体として自体的に管理されるキャッシュ(self−managed cache)として扱うことができるように、ロジックダイに追加される。このような実施形態により、ホストプロセッサ155はキャッシュを制御するための追加的な作業を遂行する必要がない。
図4は、一実施形態によるバックサイドDRAMキャッシュを含むNVDIMM(Non−Volatile Dual In−Line Memory Module)の一例を示す。図4を参照すると、NVDIMM201aは、不揮発性メモリ(non−volatile memory:NVM)210、バックサイドDRAMキャッシュ(backside DRAM cache)211a、及びNVM/キャッシュコントローラ(NVM/cache controller)220を含む。NVDIMM201aのデータバッファ(data buffer)230はホストメモリコントローラによって要請されるNVDIMM201aの状態のデータをデータ(DQ)バスを通じて提供する。NVDIMM201aのRCD(registering clock driver)231はデータバッファ230に命令シークェンス(command sequences)を生成する制御及びアドレスバッファ(control and address(CA) buffer)を提供する。バックサイドDRAMキャッシュ211aは、NVM/キャッシュコントローラ220に連結され、NVM/キャッシュコントローラ220を通じてデータバッファ230からのデータ及びRCD231からの制御及びアドレスを受信する。これは、ホストメモリコントローラによるバックサイドDRAMキャッシュ211aへの直接的なアクセスを禁止する。ホストメモリコントローラは、直接的なモード(direct mode)ではバックサイドDRAMキャッシュ211aにアクセスできるが、キャッシュモード(cache mode)ではバックサイドDRAMキャッシュ211aに直接アクセスできない。バックサイドDRAMキャッシュ211aへのアクセスは、従来のDRAMへのアクセス時間よりも長いアクセス時間を引き起こすメモリコントローラとメモリモジュールとの間のハンドシェーキング(handshaking)を要求する。
DRAM(例えば、8GB広帯域幅メモリ)をキャッシュとして利用する場合、リフレッシュの影響は無視できない。これは、キャッシュライン(cache line)が追い出されるか(evict、又は除去されるか)又は挿入されるために選択され、選択されたキャッシュラインがリフレッシュされ始めたばかりのバンク内にもあるため、選択されたキャッシュラインが追い出されるか又は挿入される前に遅延が要求されることを意味する。この待ちは次の動作に対してより高い待機行列(queuing)の遅延を引き起こす。
本実施形態によるリフレッシュを認識するキャッシュ代替ポリシーは既存の代替ポリシーに基づいて構築される。例えば、既存の代替ポリシーは本実施形態をその内に含むように修正される。本実施形態は、LRU基礎(Least−Recently−Used−based:LRU−based)代替ポリシー、ランダム(random)代替ポリシー、FIFO(First−In−First−Out)代替ポリシー、nMRU(not−Most−Recently−Used)代替ポリシー、及び/又はその他の種類の中の任意のものに基づく。
一般的な代替ポリシーは代替IDを確認する。本実施形態によるリフレッシュを認識するキャッシュ代替ポリシーは代替ID及びリフレッシュバンクIDの両方を確認する。代替ID及びリフレッシュバンクIDに基づいて、本実施形態は、代替するためのより良いラインを判別するか、或いはリフレッシュするためのより良いバンクを判別する。
一部の実施形態において、代替IDがリフレッシュバンクIDと衝突すると、これは代替されるラインがリフレッシュによって影響を受けることを意味し、これにより、その次の最適な代替IDが選択される。一部の実施形態において、代替IDがリフレッシュIDと衝突すると、リフレッシュされる次のリフレッシュバンクが選択される。延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで延期される。
図5は、本発明の一実施形態によるロジックダイのブロック図である。図5を参照すると、ロジックダイ(例えば、図1〜図3参照)110はキャッシュ管理部(cache manager)600を含む。キャッシュ管理部600は揮発性メモリキャッシュを管理する。キャッシュ管理部600は、代替管理部(replacement manager)300、リフレッシュコントローラ(refresh controller)400、及び比較器(comparator)500を含む。揮発性メモリキャッシュは3D DRAMキャッシュ(例えば、図1のDRAMスタック115参照)である。揮発性メモリキャッシュは1つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
代替管理部300は代替ポリシーに基づいて代替ID320を判別する(又は識別する)。代替管理部300は代替ID320を比較器500に提供する。
リフレッシュコントローラ400は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ400はリフレッシュポリシーに基づいてリフレッシュバンクID420を判別する(又は識別する)。リフレッシュコントローラ400はリフレッシュバンクID420を比較器500に提供する。また、リフレッシュコントローラ400は最終リフレッシュバンクID460としてリフレッシュバンクID420を出力する。
リフレッシュが必要でない場合、リフレッシュコントローラ400は、リフレッシュバンクID420を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器500に伝送することができるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ400は比較器500に何も伝送しない。
比較器500は代替ID320とリフレッシュバンクID420とを比較する。比較器500は代替ID320とリフレッシュバンクID420との間に衝突があるか否かを判別する。比較器500は衝突が存在するか否かを示す代替フィードバック(replacement feedback)340を代替管理部300に提供する。一実施形態において、代替フィードバック340は、衝突が存在する場合に比較器500によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器500は、衝突が存在しない場合に第1レベルで代替フィードバック340を提供し、衝突が存在する場合に第2レベルで代替フィードバック340を提供する。
代替管理部300が、衝突が存在しないことを示す代替フィードバック340を受信した場合(又は代替管理部300が代替フィードバック340を受信しない場合)、代替管理部300は最終代替ID360として代替ID320を出力する。
代替管理部300が、衝突が存在することを示す代替フィードバック340を受信した場合、代替管理部300は、代替ポリシーに基づいて次の代替IDを選択し、最終代替ID360として次の代替IDを出力する。次の代替IDは、次の最適代替ID、次の最も古い(oldest)代替ID等である。
即ち、代替管理部300は比較器500から受信された代替フィードバック340に基づいて新たな代替IDを選択する。
図6は、本発明の他の実施形態によるロジックダイのブロック図である。図6を参照すると、ロジックダイ112はキャッシュ管理部602を含む。キャッシュ管理部602は揮発性メモリキャッシュを管理する。キャッシュ管理部602は、代替管理部302、リフレッシュコントローラ402、及び比較器502を含む。揮発性メモリキャッシュは3D DRAMキャッシュ(例えば、図1のDRAMスタック115参照)である。揮発性メモリキャッシュは1つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
代替管理部302は代替ポリシーに基づいて代替ID322を判別する(又は識別する)。代替管理部302は代替ID322を比較器502に提供する。また、代替管理部302は最終代替ID362として代替ID322を出力する。
リフレッシュコントローラ402は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ402はリフレッシュポリシーに基づいてリフレッシュバンクID422を判別する(又は識別する)。リフレッシュコントローラ402はリフレッシュバンクID422を比較器502に提供する。
リフレッシュが必要でない場合、リフレッシュコントローラ402は、リフレッシュバンクID422を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器502に伝送できるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ402は比較器502に何も伝送しない。
比較器502は代替ID322とリフレッシュバンクID422とを比較する。比較器502は代替ID322とリフレッシュバンクID422との間に衝突があるか否かを判別する。比較器502は衝突が存在するか否かを示すリフレッシュフィードバック442をリフレッシュコントローラ402に提供する。一実施形態において、リフレッシュフィードバック442は、衝突が存在する場合に比較器502によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器502は、衝突が存在しない場合に第1レベルでリフレッシュフィードバック442を提供し、衝突が存在する場合に第2レベルでリフレッシュフィードバック442を提供する。
リフレッシュコントローラ402が、衝突が存在しないことを示すリフレッシュフィードバック442を受信した場合(又はリフレッシュコントローラ402がリフレッシュフィードバック442を受信しない場合)、リフレッシュコントローラ402は最終リフレッシュバンクID462としてリフレッシュバンクID422を出力する。
リフレッシュコントローラ402が、衝突が存在することを示すリフレッシュフィードバック442を受信した場合、リフレッシュコントローラ402は、リフレッシュバンクID422が延期(又は変更)可能であるか否かを判別し、リフレッシュバンクID422が延期(又は変更)可能である場合に、リフレッシュポリシーに基づいて次のリフレッシュバンクIDを選択し、最終リフレッシュバンクID462として次のリフレッシュバンクIDを出力する。次のリフレッシュバンクIDは、次の最適リフレッシュバンクID、次の最も古いリフレッシュバンクID等である。
即ち、リフレッシュコントローラ402は比較器502から受信されたリフレッシュフィードバック442に基づいて次のリフレッシュバンクIDを選択する。
延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで遅延される。
図7は、本発明の更に他の実施形態によるロジックダイのブロック図である。図7を参照すると、ロジックダイ114はキャッシュ管理部604を含む。キャッシュ管理部604は揮発性メモリキャッシュを管理する。キャッシュ管理部604は、代替管理部304、リフレッシュコントローラ404、及び比較器504を含む。揮発性メモリキャッシュは3D DRAMキャッシュ(例えば、図1のDRAMスタック115参照)である。揮発性メモリキャッシュは1つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
代替管理部304は代替ポリシーに基づいて代替ID324を判別する(又は識別する)。代替管理部304は代替ID324を比較器504に提供する。
リフレッシュコントローラ404は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ404はリフレッシュポリシーに基づいてリフレッシュバンクID424を判別する(又は識別する)。リフレッシュコントローラ404はリフレッシュバンクID424を比較器504に提供する。
リフレッシュが必要でない場合、リフレッシュコントローラ404は、リフレッシュバンクID424を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器504に伝送することができるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ404は比較器504に何も伝送しない。
比較器504は代替ID324とリフレッシュバンクID424とを比較する。比較器504は代替ID324とリフレッシュバンクID424との間に衝突があるか否かを判別する。衝突が存在する場合、比較器504はリフレッシュバンクID424が延期可能であるか否かを判別する。
リフレッシュバンクID424が延期され、衝突が存在する場合、比較器504はリフレッシュバンクID424が変更されなければならないことを示すリフレッシュフィードバック444をリフレッシュコントローラ404に提供する。一実施形態において、リフレッシュフィードバック444は、リフレッシュバンクID424が変更されなければならない場合に比較器504によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器504は、リフレッシュバンクID424が変更されてはならない場合に第1レベルでリフレッシュフィードバック444を提供し、リフレッシュバンクID424が変更されなければならない場合に第2レベルでリフレッシュフィードバック444を提供する。
リフレッシュバンクID424が延期されず、衝突が存在する場合、比較器504は代替ID324が変更されなければならないことを示す代替フィードバック344を代替管理部304に提供する。一実施形態において、代替フィードバック344は代替ID324が変更されなければならない場合に比較器504によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器504は、代替ID324が変更されてはならない場合に第1レベルで代替フィードバック344を提供し、代替ID324が変更されなければならない場合に第2レベルで代替フィードバック344を提供する。
リフレッシュコントローラ404が、リフレッシュバンクID424が変更されてはならないことを示すリフレッシュフィードバック444を受信した場合(又はリフレッシュコントローラ404がリフレッシュフィードバック444を受信しない場合)、リフレッシュコントローラ404は最終リフレッシュバンクID464としてリフレッシュバンクID424を出力する。
リフレッシュコントローラ404が、リフレッシュバンクID424が変更されなければならないことを示すリフレッシュフィードバック444を受信した場合、リフレッシュコントローラ404は、リフレッシュポリシーに基づいて次のリフレッシュバンクIDを選択し、最終リフレッシュバンクID464として次のリフレッシュバンクIDを出力する。次のリフレッシュバンクIDは、次の最適リフレッシュバンクID、次の最も古いリフレッシュバンクID等である。
即ち、リフレッシュコントローラ404は比較器504から受信されたリフレッシュフィードバック444に基づいて次のリフレッシュバンクIDを選択する。
延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで延期される。即ち、第2リフレッシュバンクIDが選択された場合、第1リフレッシュバンクIDのリフレッシュは第2リフレッシュバンクIDがリフレッシュされる時点まで延期される。
代替管理部304が、代替ID324が変更されてはならないことを示す代替フィードバック344を受信した場合(又は代替管理部304が代替フィードバック344を受信しない場合)、代替管理部304は最終代替ID364として代替ID324を出力する。
代替管理部304が、代替ID324が変更されなければならないことを示す代替フィードバック344を受信した場合、代替管理部304は、代替ポリシーに基づいて次の代替IDを選択し、最終代替ID364として次の代替IDを出力する。次の代替IDは、次の最適代替ID、次の最も古い代替ID等である。
即ち、代替管理部304は比較器504から受信された代替フィードバック344に基づいて新たな代替IDを選択する。
図8は、本発明の一実施形態によるNVM/キャッシュコントローラのブロック図である。図8を参照すると、NVM/キャッシュコントローラ220(図4参照)は、代替管理部306、リフレッシュコントローラ406、及び比較器506を含む。NVM/キャッシュコントローラ220は揮発性メモリキャッシュを管理する。揮発性メモリキャッシュはバックサイドDRAMキャッシュ(例えば、図4のバックサイドDRAMキャッシュ211a参照)である。揮発性メモリキャッシュは1つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
本実施形態において、NVM/キャッシュコントローラ220の代替管理部306、リフレッシュコントローラ406、及び比較器506は、それぞれ図5の代替管理部300、リフレッシュコントローラ400、及び比較器500と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
例えば、比較器506は、代替管理部306から代替ID326を受信し、リフレッシュコントローラ406からリフレッシュバンクID426を受信する。比較器506は衝突が存在するか否かに基づいて代替フィードバック346を出力する。代替管理部306は最終代替ID366を出力し、リフレッシュコントローラ406は最終リフレッシュバンクID466を出力する。
他の実施形態において、NVM/キャッシュコントローラ220の代替管理部306、リフレッシュコントローラ406、及び比較器506は、それぞれ図6の代替管理部302、リフレッシュコントローラ402、及び比較器502と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
例えば、比較器506は、代替管理部306から代替ID326を受信し、リフレッシュコントローラ406からリフレッシュバンクID426を受信する。比較器506は衝突が存在するか否かに基づいてリフレッシュフィードバック446を出力する。代替管理部306は最終代替ID366を出力し、リフレッシュコントローラ406は最終リフレッシュバンクID466を出力する。
更に他の実施形態において、NVM/キャッシュコントローラ220の代替管理部306、リフレッシュコントローラ406、及び比較器506は、それぞれ図7の代替管理部304、リフレッシュコントローラ404、及び比較器504と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
例えば、比較器506は、代替管理部306から代替ID326を受信し、リフレッシュコントローラ406からリフレッシュバンクID426を受信する。比較器506は、衝突が存在し、リフレッシュバンクID426が変更可能である場合、リフレッシュフィードバック446を出力する。比較器506は、衝突が存在し、リフレッシュバンクID426が変更不可能である場合、代替フィードバック346を出力する。代替管理部306は最終代替ID366を出力し、リフレッシュコントローラ406は最終リフレッシュバンクID466を出力する。
図9は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの一方法を説明するフローチャートである。揮発性メモリキャッシュは1つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはDRAM(Dynamic Random−Access Memory)キャッシュである。
図9を参照すると、本実施形態において、1000段階で、代替される複数のメモリラインの中の少なくとも1つに対する代替IDが識別される。1010段階で、リフレッシュされるメモリバンクの中の1つに対するリフレッシュバンクIDが識別される。
1020段階で、衝突が代替IDとリフレッシュバンクIDとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階1030で、代替ID又はリフレッシュバンクIDを変更するための動作は行われない。衝突が存在すると判別された場合、段階1040で、新たな代替IDが選択される。
図9の方法はロジックダイのキャッシュ管理部によって遂行される(例えば、図1〜図3及び図5〜図7参照)。また、図9の方法はNVM/キャッシュコントローラによって遂行される(例えば、図4及び図8参照)。
図10は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの他の方法を説明するフローチャートである。揮発性メモリキャッシュは1つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはDRAM(Dynamic Random−Access Memory)キャッシュである。
図10を参照すると、本実施形態において、1100段階で、代替される複数のメモリラインの中の少なくとも1つに対する代替IDが識別される。1110段階で、リフレッシュされるメモリバンクの中の1つに対するリフレッシュバンクID(例えば、第1リフレッシュバンクID)が識別される。
1120段階で、衝突が代替IDとリフレッシュバンクIDとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階1130で、代替ID又はリフレッシュバンクIDを変更するための動作は行われない。衝突が存在すると判別された場合、段階1140で、リフレッシュバンクIDが変更可能であるか否かが判別される。また、衝突が存在し、リフレッシュバンクIDが変更されないと判別された場合、1130段階で、代替ID又はリフレッシュバンクIDを変更するための動作は行われない。衝突が存在し、リフレッシュバンクIDが変更可能であると判別された場合、1150段階で、新たなリフレッシュバンクID(例えば、第2リフレッシュバンクID)が選択される。
図10の方法はロジックダイのキャッシュ管理部によって遂行される(例えば、図1〜図3及び図5〜図7参照)。また、図10の方法はNVM/キャッシュコントローラによって遂行される(例えば、図4及び図8参照)。
図11は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの更に他の方法を説明するフローチャートである。揮発性メモリキャッシュは1つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはDRAM(Dynamic Random−Access Memory)キャッシュである。
図11を参照すると、本実施形態において、1200段階で、代替される複数のメモリラインの中の少なくとも1つに対する代替IDが識別される。1210段階で、リフレッシュされるメモリバンクの中の1つに対するリフレッシュバンクIDが識別される。
1220段階で、衝突が代替IDとリフレッシュバンクIDとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階1230で、代替ID又はリフレッシュバンクIDを変更するための動作は行われない。衝突が存在すると判別された場合、段階1240で、リフレッシュバンクIDが変更可能であるか否かが判別される。衝突が存在し、リフレッシュバンクIDが変更可能であると判別された場合、1250段階で、新たなリフレッシュバンクIDが選択される。衝突が存在し、リフレッシュバンクIDが変更されないと判別された場合、1260段階で、新たな代替IDが選択される。
図11の方法はロジックダイのキャッシュ管理部によって遂行される(例えば、図1〜図3及び図5〜図7参照)。また、図11の方法はNVM/キャッシュコントローラによって遂行される(例えば、図4及び図8参照)。
このように、本発明の実施形態において、衝突が代替IDとリフレッシュバンクIDとの間に存在する場合、代替ID又はリフレッシュバンクIDの中のいずれか1つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替IDを選択する。また、本発明の一部の実施形態は、代替ID及びリフレッシュバンクIDを識別し、衝突がある場合、リフレッシュバンクIDが変更可能であるか否かを確認し、リフレッシュバンクIDが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクIDを選択する。
ここで、第1、第2、第3等の用語を多様な要素、成分、領域、層、及び/又はセクションを説明するために使用したとしても、このような要素、成分、領域、層、及び/又はセクションはこのような用語によって制限されないものと理解すべきである。このような用語は、他の要素、成分、領域、層、又はセクションから1つの要素、構成、領域、層又はセクションを区別するために使用される。従って、上述の第1要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱せずに、第2要素、成分、領域、層、又はセクションを指称することができる。
本明細書で説明した本発明の実施形態において、関連する装置又は成分は任意の適切なハードウェア(例えば、ASIC(application−specific integrated circuit))、ファームウェア(例えば、DSP又はFPGA)、ソフトウェア、或いはソフトウェア、ファームウェア、及びハードウェアの適切な組合せを利用して具現される。例えば、関連する装置の多様な要素は1つの集積回路(integrated circuit;IC)又は分離されたICチップで形成される。また、関連する装置の多様な構成要素はフレキシブル印刷回路フィルム(flexible printed circuit film)、TCP(tape carrier package)、PCB(printed circuit board)で具現されるか、或いは1つ以上の回路及び/又は他の装置として同じ基板上に形成される。また、関連する装置の多様な構成要素は、1つ以上のプロセッサ及び1つ以上のコンピューティング装置で実行され、コンピュータプログラム命令語を実行し、本明細書で説明した多様な機能を遂行するための他のシステム構成要素と相互作用するプロセス又はスレッド(thread)である。コンピュータプログラム命令語は、例えばRAM(random access memory)のような、標準メモリ装置を利用してコンピューティング装置で具現されるメモリに格納される。コンピュータプログラム命令語は、例えばCD−ROM、フラッシュドライブ(flash drive)等のような他の一時的ではない(non−transitory)コンピュータ読み取り可能な記録媒体に格納される。また、当業者は、本発明の例示的な実施形態の思想及び範囲を逸脱せずに、多様なコンピューティング装置の機能が1つのコンピューティング装置に統合されるか、集積されるか、或いは特定コンピューティング装置の機能が1つ以上の他のコンピューティング装置に亘って分散されることを認識する。
図面を参照しながら説明したものとして他の要素又は特徴に対する1つの要素又は特徴の関係を説明することを容易にするために“最上”、“最下”、“下に”、“下部に”、“更に下の”、“更に下部に”、“上に”、“更に上に”のような空間的であり相対的な用語を本明細書で使用した。空間的であり相対的な用語は図面で示した方向に加えて使用又は動作で装置の他の方向を含むように意図したことが理解されるべきである。例えば、図面の装置を裏返した場合、他の構成要素又は特徴に対して“下に”、“最下”、又は“下部に”と説明した要素は他の要素又は特徴の“上に”合わせることになる。従って、“下部に”及び“下に”の例示的な用語は上又は下方向の両方を含む。装置は異なって合わせることができ(例えば、90°又は他の方向に回転させること)、本明細書で使用した空間的であり相対的な記述はそれに合わせて解釈されなければならない。
また、1つの要素、構成要素、領域、層、及び/又はセクションが2つの要素、構成要素、領域、層、及び/又はセクションの間にあると言及した場合、2つの要素、構成要素、領域、層、及び/又はセクションの間に単に要素、構成要素、領域、層、及び/又はセクションがあるか、或いは1つ以上の間の要素、構成要素、領域、層、及び/又はセクションがまた存在することが理解されるべきである。
本明細書で使用した用語は、特定の実施形態を説明するためのものであり、本発明を制限しようとする意図はない。本明細書で使用したように、単数形態は文脈上で明確に異なって示さない限り、複数形態も含むように意図する。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語を本明細書で使用した場合、記述した特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の特徴、整数、段階、動作、要素、要素、構成要素、及び/又はこれらのグループの存在を不可にしないことと更に理解されるべきである。
本明細書で使用したように、“及び/又は”という用語は1つ以上の関連する列挙した項目の任意のこと又は全ての組合せを含む。“少なくとも1つ”、“中の1つ”、及び“から選択された”のような表現は要素の全体リストを修正し、そしてリストの個別要素を修正しない。また、本発明の実施形態を記述する場合、“することができる”の使用は“本発明の1つ以上の実施形態”を意味する。また、“例示”の用語は例又は図面を意味する。
要素又は層が他の要素又は層“に”、“に連結された”、“に結合された”、“と関係がある”、“と結合された”、又は“と隣接する”場合として言及した場合、要素又は層は他の要素又は層“に直接的に”、“に直接的に連結された”、“に直接的に結合された”、“と直接的に関係がある”、“と直接的に結合された”、又は“と直接的に隣接する”ことであるか、或いは1つ以上の間の要素又は層が存在する。また、“連結”、“連結された”、等は、当業者によって理解されるものとして用語が使用される文脈に従って“電気的な連結”、“電気的に連結された”、等を示す。要素又は層が他の要素又は層“に直接的に”、“に直接的に連結された”、“に直接的に結合された”、“と直接的に関係がある”、“と直接的に結合された”、又は“と直接的に隣接する”として言及した場合、その間の要素及び層が存在しない。
本明細書で使用したように、“実質的に”、“約”、及びこれと類似な用語は近似値の用語として使用され、程度の用語として使用されず、当業者によって認識される測定された又は計算された値の固有な偏差を説明するために意図する。
本明細書で使用したように、“使用”、“使用される”、及び“使用された”の用語は“利用”、“利用される”、及び“利用された”用語と密接なものと各々看做される。
本発明の1つ以上の実施形態に関して説明した特徴は本発明の他の実施形態の特徴と共に使用することを可能する。例えば、第3実施形態が本明細書で明確に説明されなくても、第1実施形態において説明した特徴は第3実施形態を形成するために第2実施形態で説明した特徴と結合される。
当業者は、プロセスがハードウェア、ファームウェア(例えば、ASICを通じて)、或いはソフトウェア、ファームウェア、及び/又はハードウェアの任意の組合せを通じて実行されることを認識しなければならない。また、プロセスの段階のシークェンスは固定されず、当業者によって認識されたものとして任意の所望するシークェンスに変更される。変更されたシークェンスは全ての段階又は段階の部分を含む。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
105 広帯域幅メモリスタック(HBM/CM)
110、112、114 ロジックダイ
115 3D DRAM(DRAMスタック)
120 レベル2(L2)キャッシュ
125 第1メモリコントローラ(MC1)
130 オフチップメインメモリ
135 第2メモリコントローラ(MC2)
140 シリコンインターポーザ
145 広帯域幅メモリインターフェイス
150 レベル1(L1)キャッシュ
155 ホストプロセッサ
160 コア(C)
201a NVDIMM 210 不揮発性メモリ(NVM)
211a バックサイドDRAMキャッシュ
220 NVM/キャッシュコントローラ
230 データバッファ
231 RCD(registering clock driver)
300、302、304、306 代替管理部
320、322、324、326 代替ID
340、344、346 代替フィードバック
360、362、364、366 最終代替ID
400、402、404、406 リフレッシュコントローラ
420、422、424、426 リフレッシュバンクID
442、444、446 リフレッシュフィードバック
460、462、464、466 最終リフレッシュバンクID
500、502、504、506 比較器
600、602、604 キャッシュ管理部

Claims (19)

  1. 各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する方法であって、
    前記方法は、
    代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する段階と、
    リフレッシュされる前記メモリバンクの中の1つに対するリフレッシュバンクIDを識別する段階と、
    前記代替IDと前記リフレッシュバンクIDとの間に衝突が存在するか否かを判別する段階と、
    前記衝突が存在する場合、新たな代替IDを選択する段階と、を有することを特徴とする方法。
  2. 前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行されることを特徴とする請求項1に記載の方法。
  3. 前記キャッシュ管理部は、
    前記代替IDを識別する代替管理部と、
    前記リフレッシュバンクIDを識別するリフレッシュコントローラと、
    前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項2に記載の方法。
  4. 前記代替管理部は、前記比較器から受信された代替フィードバックに基づいて新たな代替IDを更に選択することを特徴とする請求項3に記載の方法。
  5. 各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する方法であって、
    前記方法は、
    代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する段階と、
    リフレッシュされる前記メモリバンクの中の1つに対する第1リフレッシュバンクIDを識別する段階と、
    前記代替IDと前記第1リフレッシュバンクIDとの間に衝突が存在するか否かを判別する段階と、
    前記衝突が存在する場合、前記第1リフレッシュバンクIDが変更可能であるか否かを判別する段階と、
    前記衝突が存在し、前記第1リフレッシュバンクIDが変更可能である場合、第2リフレッシュバンクIDを選択する段階と、を有することを特徴とする方法。
  6. 前記揮発性メモリキャッシュは、DRAMキャッシュを含むことを特徴とする請求項1又は5に記載の方法。
  7. 前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行されることを特徴とする請求項5に記載の方法。
  8. 前記キャッシュ管理部は、
    前記代替IDを識別する代替管理部と、
    前記第1リフレッシュバンクIDを識別するリフレッシュコントローラと、
    前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項7に記載の方法。
  9. 前記リフレッシュコントローラは、前記比較器から受信されたリフレッシュフィードバックに基づいて前記第2リフレッシュバンクIDを更に選択することを特徴とする請求項8に記載の方法。
  10. 前記衝突が存在し、前記第1リフレッシュバンクIDが変更不可能である場合、新たな代替IDを選択する段階を更に含むことを特徴とする請求項5に記載の方法。
  11. 前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され、
    前記キャッシュ管理部は、
    前記代替IDを識別する代替管理部と、
    前記第1リフレッシュバンクIDを識別するリフレッシュコントローラと、
    前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項10に記載の方法。
  12. 前記第2リフレッシュバンクIDが選択された場合、前記第1リフレッシュバンクIDのリフレッシュは、前記第1リフレッシュバンクIDの定期的に計画された次のリフレッシュまで延期されることを特徴とする請求項5に記載の方法。
  13. 前記第2リフレッシュバンクIDが選択された場合、前記第1リフレッシュバンクIDのリフレッシュは、前記第2リフレッシュバンクIDがリフレッシュされる時点まで延期されることを特徴とする請求項5に記載の方法。
  14. 各々が複数のメモリラインを含む1つ以上のメモリバンクを有する揮発性メモリキャッシュを含むキャッシュを管理するキャッシュ管理部であって、
    前記キャッシュ管理部は、
    代替される前記複数のメモリラインの中の少なくとも1つに対する代替IDを識別する代替管理部と、
    リフレッシュされる前記メモリバンクの中の1つに対するリフレッシュバンクIDを識別するリフレッシュコントローラと、
    前記代替IDと前記リフレッシュバンクIDとの間に衝突が存在するか否かを判別し、前記衝突が存在する場合、新たな代替IDを選択させるための代替フィードバックを前記代替管理部に伝送するか、又は新たなリフレッシュバンクIDを選択させるためのリフレッシュフィードバックを前記リフレッシュコントローラに伝送する比較器と、を備えることを特徴とするキャッシュ管理部。
  15. 前記揮発性メモリキャッシュは、DRAMキャッシュを含むことを特徴とする請求項14に記載のキャッシュ管理部。
  16. 前記比較器は、前記代替フィードバックを前記代替管理部に更に伝送することを特徴とする請求項14に記載のキャッシュ管理部。
  17. 前記比較器は、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送することを特徴とする請求項14に記載のキャッシュ管理部。
  18. 前記比較器は、
    前記衝突が存在する場合、前記リフレッシュバンクIDが変更可能であるか否かを判別し、
    前記リフレッシュバンクIDが変更可能である場合、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送し、
    前記リフレッシュバンクIDが変更不可能である場合、前記代替フィードバックを前記代替管理部に更に伝送することを特徴とする請求項14に記載のキャッシュ管理部。
  19. 前記キャッシュは、不揮発性メモリを更に含むことを特徴とする請求項14に記載のキャッシュ管理部。

JP2018005751A 2017-01-25 2018-01-17 揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部 Active JP7164951B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762450505P 2017-01-25 2017-01-25
US62/450,505 2017-01-25
US15/457,813 US10394719B2 (en) 2017-01-25 2017-03-13 Refresh aware replacement policy for volatile memory cache
US15/457,813 2017-03-13

Publications (2)

Publication Number Publication Date
JP2018120589A true JP2018120589A (ja) 2018-08-02
JP7164951B2 JP7164951B2 (ja) 2022-11-02

Family

ID=62906271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018005751A Active JP7164951B2 (ja) 2017-01-25 2018-01-17 揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部

Country Status (5)

Country Link
US (1) US10394719B2 (ja)
JP (1) JP7164951B2 (ja)
KR (1) KR102245310B1 (ja)
CN (1) CN108345548B (ja)
TW (1) TWI756314B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12007935B2 (en) 2020-03-14 2024-06-11 Intel Corporation Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10271205B1 (en) * 2017-12-01 2019-04-23 At&T Intellectual Property I, L.P. Methods and devices for resolving conflicts between identifiers for communication devices
US10431305B2 (en) * 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
TWI688859B (zh) 2018-12-19 2020-03-21 財團法人工業技術研究院 記憶體控制器與記憶體頁面管理方法
US10991413B2 (en) * 2019-07-03 2021-04-27 Micron Technology, Inc. Memory with programmable die refresh stagger
CN111026682B (zh) * 2019-12-26 2022-03-08 浪潮(北京)电子信息产业有限公司 板卡芯片的数据访存方法、装置及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09213072A (ja) * 1996-02-09 1997-08-15 Nec Corp Dramリフレッシュ制御方式
JPH11511872A (ja) * 1994-11-22 1999-10-12 モノリシック・システム・テクノロジー・インコーポレイテッド 第2レベルのキャシュメモリとしてdramアレイを用いる方法及び構成
JP2002150771A (ja) * 2000-09-12 2002-05-24 Internatl Business Mach Corp <Ibm> Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
JP2007272938A (ja) * 2006-03-30 2007-10-18 Fujitsu Ltd ダイナミック型半導体メモリおよびそのリフレッシュ制御方法
JP2010049708A (ja) * 1999-01-19 2010-03-04 Arm Ltd データ処理システムに於けるメモリ制御
US20120173809A1 (en) * 2011-01-05 2012-07-05 Tae-Kyeong Ko Memory Device Having DRAM Cache and System Including the Memory Device

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172341A (en) 1990-01-19 1992-12-15 Dallas Semiconductor Corporation Serial dram controller with multi generation interface
US5802560A (en) 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US6028804A (en) 1998-03-09 2000-02-22 Monolithic System Technology, Inc. Method and apparatus for 1-T SRAM compatible memory
US6496437B2 (en) 1999-01-20 2002-12-17 Monolithic Systems Technology, Inc. Method and apparatus for forcing idle cycles to enable refresh operations in a semiconductor memory
US6151664A (en) * 1999-06-09 2000-11-21 International Business Machines Corporation Programmable SRAM and DRAM cache interface with preset access priorities
US6941415B1 (en) * 2000-08-21 2005-09-06 Micron Technology, Inc. DRAM with hidden refresh
JP3985889B2 (ja) 2001-08-08 2007-10-03 株式会社ルネサステクノロジ 半導体装置
US6757784B2 (en) 2001-09-28 2004-06-29 Intel Corporation Hiding refresh of memory and refresh-hidden memory
US6625077B2 (en) 2001-10-11 2003-09-23 Cascade Semiconductor Corporation Asynchronous hidden refresh of semiconductor memory
US6912623B2 (en) * 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US7284095B2 (en) 2004-08-18 2007-10-16 International Business Machines Corporation Latency-aware replacement system and method for cache memories
US7313047B2 (en) 2006-02-23 2007-12-25 Hynix Semiconductor Inc. Dynamic semiconductor memory with improved refresh mechanism
US20080270683A1 (en) 2007-04-25 2008-10-30 International Business Machines Corporation Systems and methods for a dram concurrent refresh engine with processor interface
US7882302B2 (en) 2007-12-04 2011-02-01 International Business Machines Corporation Method and system for implementing prioritized refresh of DRAM based cache
US8024513B2 (en) * 2007-12-04 2011-09-20 International Business Machines Corporation Method and system for implementing dynamic refresh protocols for DRAM based cache
US8266408B2 (en) * 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
CN102081964B (zh) * 2009-11-30 2014-12-10 国际商业机器公司 动态随机访问存储器刷新的方法和系统
US8601216B2 (en) * 2010-08-31 2013-12-03 Oracle International Corporation Method and system for removing cache blocks
US9293187B2 (en) 2011-09-26 2016-03-22 Cisco Technology, Inc. Methods and apparatus for refreshing digital memory circuits
KR102048407B1 (ko) * 2012-10-19 2019-11-25 삼성전자주식회사 리프레쉬 어드레스 생성기 및 휘발성 메모리 장치
WO2015101827A1 (en) 2013-12-31 2015-07-09 Mosys, Inc. Integrated main memory and coprocessor with low latency
CN103811048B (zh) 2014-02-26 2017-01-11 上海新储集成电路有限公司 一种混合存储器结构的低功耗刷新方法
US9990293B2 (en) * 2014-08-12 2018-06-05 Empire Technology Development Llc Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US20160188490A1 (en) 2014-12-26 2016-06-30 Intel Corporation Cost-aware page swap and replacement in a memory
KR20170057704A (ko) * 2015-11-17 2017-05-25 삼성전자주식회사 액세스 동작과 리프레쉬 동작의 충돌을 제어하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR102329673B1 (ko) * 2016-01-25 2021-11-22 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR101913914B1 (ko) * 2016-10-31 2018-10-31 경북대학교 산학협력단 메모리 셀에 대한 리프레시 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11511872A (ja) * 1994-11-22 1999-10-12 モノリシック・システム・テクノロジー・インコーポレイテッド 第2レベルのキャシュメモリとしてdramアレイを用いる方法及び構成
JPH09213072A (ja) * 1996-02-09 1997-08-15 Nec Corp Dramリフレッシュ制御方式
JP2010049708A (ja) * 1999-01-19 2010-03-04 Arm Ltd データ処理システムに於けるメモリ制御
JP2002150771A (ja) * 2000-09-12 2002-05-24 Internatl Business Mach Corp <Ibm> Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
JP2007272938A (ja) * 2006-03-30 2007-10-18 Fujitsu Ltd ダイナミック型半導体メモリおよびそのリフレッシュ制御方法
US20120173809A1 (en) * 2011-01-05 2012-07-05 Tae-Kyeong Ko Memory Device Having DRAM Cache and System Including the Memory Device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12007935B2 (en) 2020-03-14 2024-06-11 Intel Corporation Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format

Also Published As

Publication number Publication date
TW201841119A (zh) 2018-11-16
KR102245310B1 (ko) 2021-04-27
TWI756314B (zh) 2022-03-01
CN108345548B (zh) 2022-12-20
US20180210843A1 (en) 2018-07-26
KR20180087817A (ko) 2018-08-02
CN108345548A (zh) 2018-07-31
US10394719B2 (en) 2019-08-27
JP7164951B2 (ja) 2022-11-02

Similar Documents

Publication Publication Date Title
JP2018120589A (ja) 揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部
CN109840223B (zh) 存储器装置、包括其的电子装置和电子装置的操作方法
US11211105B2 (en) Memory device comprising programmable command-and-address and/or data interfaces
US10002668B2 (en) Memory device, memory module, and memory system
USRE49151E1 (en) Memory system and electronic device
US9569144B2 (en) DRAM with SDRAM interface, and hybrid flash memory module
TWI681525B (zh) 具有一控制器及一記憶體堆疊之彈性記憶體系統
US7865674B2 (en) System for enhancing the memory bandwidth available through a memory module
US10180906B2 (en) HBM with in-memory cache manager
US20090063785A1 (en) Buffered Memory Module Supporting Double the Memory Device Data Width in the Same Physical Space as a Conventional Memory Module
US9990143B2 (en) Memory system
US9658783B2 (en) DRAM having SDRAM interface and flash memory consolidated memory module
US20130314968A1 (en) Offsetting clock package pins in a clamshell topology to improve signal integrity
US20190042095A1 (en) Memory module designed to conform to a first memory chip specification having memory chips designed to conform to a second memory chip specification
US8687439B2 (en) Semiconductor apparatus and memory system including the same
US20130238841A1 (en) Data processing device and method for preventing data loss thereof
US8788748B2 (en) Implementing memory interface with configurable bandwidth
US20220012126A1 (en) Translation cache and configurable ecc memory for reducing ecc memory overhead
KR102617843B1 (ko) 메모리 시스템 및 이의 동작 방법
CN114610665A (zh) 存储器扩展卡
US20170185352A1 (en) Memory device
US20240028531A1 (en) Dynamic switch for memory devices
KR20170032032A (ko) 메모리 장치 및 메모리 시스템
JP2009181221A (ja) メモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220824

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: 20220927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221021

R150 Certificate of patent or registration of utility model

Ref document number: 7164951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150