JP2017191594A - サニタイズ認識dramコントローラ - Google Patents

サニタイズ認識dramコントローラ Download PDF

Info

Publication number
JP2017191594A
JP2017191594A JP2016249420A JP2016249420A JP2017191594A JP 2017191594 A JP2017191594 A JP 2017191594A JP 2016249420 A JP2016249420 A JP 2016249420A JP 2016249420 A JP2016249420 A JP 2016249420A JP 2017191594 A JP2017191594 A JP 2017191594A
Authority
JP
Japan
Prior art keywords
block
dram
controller
flag
blocks
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
JP2016249420A
Other languages
English (en)
Other versions
JP6373336B2 (ja
Inventor
パークス テリー
Parks Terry
パークス テリー
イー フッカー ロドニー
E Hooker Rodney
イー フッカー ロドニー
アール リード ダグラス
R Reed Douglas
アール リード ダグラス
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.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
VIA Alliance Semiconductor 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 VIA Alliance Semiconductor Co Ltd filed Critical VIA Alliance Semiconductor Co Ltd
Publication of JP2017191594A publication Critical patent/JP2017191594A/ja
Application granted granted Critical
Publication of JP6373336B2 publication Critical patent/JP6373336B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/40622Partial refresh of memory arrays
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1052Security improvement
    • 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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】無効なデータへの不要なリフレッシュによって消費される電力を削減する。
【解決手段】DRAMコントローラは、それぞれがDRAMの複数のブロックのうちの1つのブロックとの関連付けのための複数のフラグを含む。サニタイズコントローラは、1つのブロックがサニタイズされるべきであると判定し、それに応答して複数のブロックのうちの1つのブロックと関連する1つのフラグをセットし、該ブロックのリフレッシュをディセーブルする。引き続くブロック内のロケーションからのデータ読み取り要求の受信に応答して、フラグがクリアされていない場合には、DRAMコントローラはロケーションを読み出し、そこから読み出されたデータを返す。フラグがセットされている場合には、DRAMコントローラはDRAMの読み出しを行わず、ゼロの値を返さない。
【選択図】図4

Description

関連出願への相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、SANITIZE−AWARE DRAM CONTROLLERと題する米国仮出願第62/323,177号(2006年4月15日出願)に基づく優先権を主張する。
ダイナミック・ランダム・アクセス・メモリ(DRAM)は、現代のコンピューティングシステムにおいて普及している。DRAMは、コストが低く、容量/密度が高く、高速であるため、普及している。密度の利点は、主に、データビットを記憶するための各セルがコンデンサおよび単一トランジスタのみを必要とするという事実に由来する。これは、例えば、スタティック・ランダム・アクセス・メモリ(SRAM)でセル当たりに必要とされるよりも著しく少ないハードウェアである。しかしながら、セルのキャパシタへのデータビットの記憶は、電力消費コストを意味する。これは、コンデンサの電荷が時間とともにリークし、セルに値の喪失を引き起こす。したがって、その値を保持するために、コンデンサは定期的に「リフレッシュ」されねばならない。これは、セルから現在の値を読み取り、その値を「リフレッシュ」するためにセルに書き戻すことを含む。リフレッシュ動作は、リフレッシュを必要としない他のメモリ技術以上の追加の電力を消費する。リフレッシュは、システムによるDRAMアクセスの需要に応じて、DRAMのエネルギー消費のかなりの割合、例えば約20%に寄与し、システム性能を、例えば約30%低下させる可能性がある。
本発明の共同発明者の一人による米国特許第5,469,559号には、DRAMの有効なデータを含まない選択された部分をリフレッシュするためのメモリコントローラおよび方法が記載されている。これは、無効なデータへの不要なリフレッシュによって消費される電力の量が削減される可能性がある。
米国仮出願第62/323,177号明細書 米国特許第5469559号明細書
本発明の発明者らは、さらなる利点を提供するDRAMコントローラの実施形態を提供する。追加の利点は、多くのオペレーティングシステムが、例えばハッカー及び/又はメモリが割り当てられた次のユーザが第1のユーザのデータを見ることを防止することによってシステムセキュリティを高めるために、割り当てを解除されたメモリにゼロに書き込むことによってそのメモリを「サニタイズ」するということを本発明者が見出したことによって主に享受される
図1は、コンピューティングシステムを示すブロック図である。 図2は、別の実施形態によるコンピューティングシステムを示すブロック図である。 図3は、システムの動作を示すフローチャートである。 図4は、システムの動作を示すフローチャートである。 図5は、システムの動作を示すフローチャートである。 図6は、一実施形態によるサニタイズされたDRAMブロックの選択的リフレッシュを実行するオペレーションシステムの動作を示すフローチャートである。 図7は、サニタイズ検出ハードウェア(SDH)インスタンスを示すブロック図である。 図8は、図7のSDHインスタンスを使用することによってDRAMブロックがサニタイズされるべきであることを検出するDRAMコントローラの動作を示すフローチャートである。
DRAMのブロックは、DRAM内の1つ又は複数のストレージユニットであり、DRAMコントローラは、それに対してリフレッシュを選択的にイネーブル又はディセーブルすることができる。例えば、データRAM122の「行」と一般に称されるものがリフレッシュ可能である。いくつかのDRAMでは、例えば、1行は512バイトのストレージである。
DRAMのブロックをサニタイズすることは、ブロック内のすべてのロケーションをゼロ値にクリアすることを意味する。
ここで図1を参照すると、コンピューティングシステム100を示すブロック図が示されている。コンピューティングシステム100は、プロセッサ102と、DRAM104と、プロセッサ102をDRAM104に接続するDRAMコントローラ103と、DRAMコントローラ103を介してDRAM104にアクセスする他のバスマスタ106、例えばバスマスタリングI/Oデバイスと、を含む。プロセッサ102は、マルチコアプロセッサであってもよい。プロセッサ102は、オペレーティングシステム及び/又は基本入出力システム(BIOS)又は拡張ファームウェアなどのシステムファームウェア並びにユーティリティ及びアプリケーションプログラムなどのシステムソフトウェアを含むプログラムを実行する。DRAM104は、複数のDRAMブロック142として構成される。システムソフトウェアは、とりわけ、DRAMブロック142全体を含むDRAM104の一部をサニタイズする。多くのオペレーティングシステムは、プロセッサ102にサポートされる仮想メモリシステムに従ってサイズが判定されているページの粒度でメモリをサニタイズする。例えば、共通のページサイズは、4KB、64KB、1MB、16MB、256MB、1GB及び2GBである。
DRAMコントローラ103は、DRAMブロック142としての、例えばDRAM104の行のリフレッシュを、DRAMコントローラが選択的にイネーブル又はディセーブルできるDRAM104内の1つ又は複数のストレージの単位を考慮する。いくつかの実施形態では、DRAMブロック142のサイズは、プロセッサ102の仮想メモリシステムによってサポートされる最小のページのサイズに対応する。例えば、DRAMコントローラがリフレッシュを選択的にイネーブル又はディセーブルすることができるストレージの単位が512バイト行であり、プロセッサ102によってサポートされる最小ページサイズが4KBである場合、DRAMコントローラ103は、DRAM104の8つの連続する行をDRAMブロック142として考慮する。
DRAMコントローラ103は、サニタイズビット132とも呼ばれる複数のサニタイズフラグ132及びサニタイズコントローラ134を含む。一実施形態では、DRAMコントローラ103は、DRAM104の対応する各DRAMブロック142について、サニタイズビット132を含む。
ここではサニタイズ範囲の実施形態と称される代替的実施形態において、各サニタイズビット132は、一緒にサニタイズペアを構成する対応する範囲レジスタを有する。範囲レジスタは、アドレスおよび連続するDRAMブロック142の範囲を指定するカウントを保持する。アドレスは、範囲内の第1または開始のDRAMブロック142を指定し、カウントはその範囲内の連続するDRAMブロック142の数を指定する。サニタイズビット132がセットされている場合、対応する範囲レジスタで指定されたDRAMブロック142の範囲は、以下により詳細に説明するように、サニタイズされたとみなされる。サニタイズコントローラ134は、複数のサニタイズペアを、プールとして扱い、そのプールから一連の連続したDRAMブロック142に対する割り当てを行うことができ(例えば図3のブロック304)、そのプールへ割り当て解除することができる(例えば、図5のブロック508)。サニタイズビット132がセットされている場合、サニタイズペアが割り当てられていることを示し、サニタイズビット132がクリアされている場合、これは、サニタイズペアが割り当てのために空いていることを示す。
ここで図2を参照すると、代替的実施形態によるコンピューティングシステム100を示すブロック図が示されている。図2のコンピューティングシステム100は、図1のコンピューティングシステム100と類似であり、類似の要素を含む。しかしながら、図2のコンピューティングシステム100では、DRAMコントローラ103がプロセッサ102に組み込まれている。より具体的には、プロセッサ102は、DRAMコントローラ103が接続されたリングバス226を含む。プロセッサ102はまた、リングバス226に接続された複数の処理コア222を含む。プロセッサ102はまた、コア222によって共有されるリングバス226に接続されたラストレベルキャッシュ(LLC)224を含む。好ましくは、DRAMコントローラ103、LLC224、及び各コア222は、それをリングバス226に接続する関連するリングストップ228を有する。最後に、プロセッサ102は、I/Oデバイス106をリングバス226に接続するI/Oリングストップ228を含む。
ここで図3を参照すると、システム100の動作を示すフローチャートが示されている。フローはブロック302で開始する。
ブロック302において、DRAMコントローラ103は、DRAMブロック142がサニタイズされるべきであると判定する。一実施形態では、システムソフトウェアは、例えば、図6に関して以下に説明するように、DRAMブロック142がサニタイズされるべきであることをDRAMコントローラ103に通知する。別の実施形態では、DRAMコントローラ103は、例えば、図7および図8に関して以下に説明するように、DRAMブロック142に対するゼロ値書き込みを監視することによって判定を行うハードウェアを含む。DRAMブロック142がサニタイズされるべきであることを判定するための他の実施形態も考えられる。フローはブロック304に進む。
ブロック304において、DRAMコントローラ103は、ブロック302で判定されたDRAMブロック142に関連付けられたサニタイズビット132をセットする。さらに、DRAMコントローラ103は、そのDRAMブロック142のリフレッシュをディセーブルする。サニタイズ範囲の実施形態では、DRAMコントローラ103は、サニタイズペアを割り当て、サニタイズビット132をセットし、範囲内の第1のDRAMブロック142のアドレスと、範囲内のDRAMブロック142の数の総数とを範囲レジスタに投入する。さらに、DRAMコントローラ103は、その範囲のすべてのDRAMブロック142のリフレッシュをディセーブルする。フローはブロック304で終了する。
ここで図4を参照すると、システム100の動作を示すフローチャートが示されている。フローはブロック402で開始する。
ブロック402において、DRAMコントローラ103は、DRAM104のロケーションからの読み出し要求を受信する。このロケーションは、DRAMブロック142に関係し、即ちそのアドレスに基づいてDRAMブロック142内にある。フローは判断ブロック404に進む。
判断ブロック404において、DRAMコントローラ103は、関係するDRAMブロック142に対応するサニタイズビット132がセットされているかどうかを判定する。そうであれば、フローはブロック408に進み、そうでなければフローはブロック406に進む。サニタイズ範囲の実施形態では、サニタイズコントローラ134は、読み出し要求のアドレスが、サニタイズビット132がセットされたサニタイズペアの範囲レジスタで指定された範囲に入ることを判定する。
ブロック406において、DRAMコントローラ103は、指定されたロケーションをDRAM104から読み出し、DRAMコントローラ103の通常動作に従って、読み出されたデータを返す。フローはブロック406で終了する。
ブロック408において、DRAMコントローラ103は、DRAM104を読み出さず、その代わりに読み出し要求にゼロ値を返す。これは、読み出し要求によって関係付けられたDRAMブロック142が判断ブロック404でサニタイズされると判定されたためである。フローはブロック408で終了する。
(例えば、ブロック408において)ブロックがサニタイズされているときDRAMを読み取らないことの利点は、(1)ゼロ値を維持するためにDRAMブロックをリフレッシュする必要がないので、より少ない電力が消費されうること、(2)ソフトウェアがデータの読み出しを要求しても、DRAMがデータを読み取るためにアクセスされないので、より少ない電力が消費されうること、(3)要求されたデータを読み取るためにDRAMにアクセスする必要がないので、リード要求の待ち時間が短くなるため性能が向上しうること、があり、それらのすべてはデータの要求されている値がゼロであることが分かっていることにより可能となる。
ここで図5を参照すると、システム100の動作を示すフローチャートが示されている。フローはブロック502で開始する。
ブロック502において、DRAMコントローラ103は、DRAM104のロケーションへのデータ書き込み要求を受信する。より具体的には、DRAMコントローラ103は、書き込まれるデータが非ゼロ値であると判定する。このロケーションは、DRAMブロック142に関係し、即ち、そのアドレスに基づいてDRAMブロック142内にあるか、又は、サニタイズ範囲の実施形態におけるDRAMブロック142の範囲に関係する。代替的実施形態では、DRAMコントローラ103は、書き込まれるデータが非ゼロであるかどうかをチェックするのではなく、代わりにデータ値に関係なく図5の動作を実行する。DRAMコントローラ103がDRAM104のロケーションにゼロ値を有するデータを書き込む要求を受信した場合には、サニタイズビット132がセットされていればDRAMコントローラ103はDRAM104に書き込まないのに対して、サニタイズビット132がクリアされていれば、DRAMコントローラ103がゼロ値をDRAM104の指定されたロケーションに書き込む。フローは判断ブロック504に進む。
判断ブロック504において、DRAMコントローラ103は、関係するDRAMブロック142に又はDRAMブロック142の範囲に対応するサニタイズビット132が設定されているかどうかを判定する。そうであれば、フローはブロック508に進む。そうでない場合、フローはブロック506に進む。サニタイズ範囲の実施形態では、サニタイズコントローラ134は、書き込み要求のアドレスが、サニタイズビット132がセットされたサニタイズペアの範囲レジスタに指定された範囲に入ると判定する。
ブロック506において、DRAMコントローラ103は、指定されたデータをDRAM104の特定の場所に、即ちDRAMコントローラ103の通常の動作に従って書き込む。フローはブロック506で終了する。
ブロック508において、DRAMコントローラ103は、関係するDRAMブロック142に対応するサニタイズビット132をクリアする。さらに、DRAMコントローラ103は、関係するDRAMブロック142のリフレッシュ、又は、サニタイズ範囲の実施形態において範囲レジスタによって関係付けられたDRAMブロック142の範囲のリフレッシュを再びイネーブルする。さらに、DRAMコントローラ103は、指定されたデータをDRAM104の指定されたロケーションに書き込む。最後に、DRAMコントローラ103は、書き込み要求によって指定されたロケーション以外の、DRAMブロック142のすべてのロケーション又はDRAMブロック142の関係する範囲に、ゼロを書き込む。フローはブロック508で終了する。
サニタイズされたブロックへの第1の非ゼロ書き込みが行われるまで、ブロックの他のロケーションにゼロ値を書き込むのを待つことの長所は、(1)そのブロックが割り当てられたことをオペレーティングシステムが示すとすぐにリフレッシュが開始される場合(例えば、米国特許第5,469,559号)に比べて、DRAMブロックが追加の回数量だけリフレッシュされず、場合によってそれは、そのブロックが割り当てられた後、ソフトウェアがそのブロックに書き込む前に、かなりの回数量となりうるので、より少ない電力が消費されるかもしれないという点、(2)オペレーティングシステムは、ブロックにゼロを書き込むために、プロセッサ102が数十から数百のオーダーに及びうる命令を実行することを含む、ブロックへのゼロ書き込みを、全ては実行する必要がない、という点である。この後者の考察は、次のよう利点を有する。(a)多くの書き込み命令を実行する必要がないので、プロセッサ102によってより少ない電力が消費される、(b)プロセッサ102が多くの書き込み命令を実行する必要がなくなり、したがって他の命令を実行する空きができるので、システム性能が改善され得る、(c)DRAMコントローラ103は、プロセッサ102が書き込み命令を実行し、かつ、DRAMコントローラ103への書き込み要求を作成しなければならない場合に生じる、余分な待ち時間なしでブロックへのゼロ書き込みを実行するのでシステム性能が改善され得る。第2の利点(2)は、図7及び図8のサニタイズ検出ハードウェア(SDH)の実施形態によっては実現されないことがあると理解されるべきである。
ここで図6を参照すると、一実施形態による、サニタイズされたDRAMブロック142の選択的リフレッシュを実行するシステム100の動作を示すフローチャートが示されている。フローはブロック602で開始する。
ブロック602において、(例えば、オペレーティングシステム又は他のエグゼクティブなどの)システムソフトウェアは、DRAMブロック142をサニタイズすることを判定する。例えば、いくつかのオペレーティングシステムは、メモリロケーションのシークエンス、即ち、所定のメモリアドレスから始まる所定の数の連続するメモリロケーションをサニタイズするために呼び出されるシステムコールであって、UNIX(登録商標)オペレーティングシステム及び、MacOSX並びにMicrosoftWindowsの後のバージョンのような同種のオペレーティングシステムで見られるbzero()やmemset()のようなシステムコールを提供する。慣習的に、それらのシステムコールを実行するルーチンは、所定のシークエンスで全てのメモリロケーションへのゼロ値の一連の書き込みを行う。一実施形態では、システムコールを実行するルーチンは、DRAMコントローラ103の能力を利用して変更される。より具体的には、ルーチンは、1つ又は複数のDRAMブロック142全体が一連のメモリロケーションによって含まれるかどうかをチェックする。そうであれば、従来のように含まれているブロック142への一連のゼロ値書き込みを実行する代わりに、ルーチンは、ブロック604に関して説明するように、DRAMコントローラ103へ、含まれているブロック142をサニタイズするように要求する書き込みをする。フローはブロック604へ進む。
ブロック604において、システムソフトウェアは、サニタイズすべきブロック142のアドレスをDRAMコントローラ103に書き込む。好ましくは、DRAMコントローラ103は、アドレスを受け取るコントロールレジスタを含む。即ち、コントロールレジスタは、DRAM104及びDRAMコントローラ103を含むシステム100上(例えば、プロセッサ102上)で実行されるシステムソフトウェアによって書き込み可能である。サニタイズ範囲の実施形態では、システムソフトウェアは、アドレス及びその範囲のDRAMブロック142の数の両方を書き込む。フローはブロック606に進む。
ブロック606において、DRAMコントローラ103は、指定されたブロック142又はブロック142の範囲に対して図3の動作を実行する、即ち、ブロック142又はブロック142の範囲に関連するサニタイズビット132を設定し、ブロック142又はブロック142の範囲に対してリフレッシュをディセーブルする。フローはブロック606で終了する。
ここで図7を参照すると、サニタイズ検出ハードウェア(SDH)インスタンス700を示すブロック図が示されている。一実施形態では、DRAMコントローラ103は複数のSDHインスタンス700を含み、そこからDRAMコントローラ103が割り当てを行い(例えば、図8のブロック806)、その中へDRAMコントローラ103が割り当てを解除する(例えば、図8のブロック818)。SDHインスタンス700は、有効ビット702、ビットマップ704、アドレスレジスタ708、及びコントロールロジック706を含む。有効ビット702は、真の場合にSDHインスタンス700が割り当てられていることを示し、偽の場合にSDHインスタンス700が空いていることを示す。ビットマップ704は、そのアドレスがアドレスレジスタ708に保持されているDRAMブロック142の各ロケーションに対するビットを含む。様々な実施形態では、DRAMブロック142内のロケーションは、整列バイト、16ビットハーフワード、32ビットワード、64ビットダブルワード、128ビットクワドワード、又は256ビットオクタワードに対応する。一実施形態では、ロケーションは、例えばプロセッサ102のラストレベルキャッシュの整列キャッシュラインに対応する。図8を参照して以下に説明するように、コントロールロジック706は、有効ビット702、ビットマップ704、及び、アドレスレジスタ708の読み出し及び更新に関連する動作を実行する。
ここで図8を参照すると、図7のSDHインスタンス700を使用することによってDRAMブロック142がサニタイズされることを検出するDRAMコントローラ103の動作を示すフローチャートが示されている。フローはブロック802で開始する。
ブロック802において、DRAMコントローラ103は、DRAM104のロケーションにデータを書き込む要求を受信する。そのロケーションは、DRAMブロック142を表し、即ち、そのアドレスに基づいてDRAMブロック142内にあるか、又は、サニタイズ範囲の実施形態におけるDRAMブロック142を表す。フローは判断ブロック804に進む。
判断ブロック804において、DRAMコントローラ103は、SDHインスタンス700が、書き込み要求によって関係付けられたDRAMブロック142又はDRAMブロック142の範囲に対して割り当てられているかどうかを判定する。より具体的には、DRAMコントローラ103は、読み出し要求アドレスの関連部分が、SDHインスタンス700の有効ビット702のアドレス708と一致するかどうかを判定する。そうであれば、フローは判断ブロック808に進み、そうでなければ、フローはブロック806に進む。
ブロック806において、サニタイズコントローラ134は空きSDHインスタンス700を割り当てる。好ましくは、SDHインスタンス700を割り当てることは、空きSDHインスタンス700(即ち、有効ビット702が偽である)を見つけること、有効ビットを真に初期化すること、ビットマップ704の全てのビットをゼロへとクリーニングすること、及び、書き込み要求アドレスの関連部分をアドレスレジスタ708に書き込むことを含む。好ましくは、割り当てるべき空きSDH700がない場合、DRAMコントローラ103は単に通常通り継続する、即ち、ブロックがサニタイズされていることを検出することを試みない。フローはブロック806で終了する。
判断ブロック808において、サニタイズコントローラ134は、書き込まれるべき値がゼロであるかどうかを判定する。そうであれば、フローはブロック814に進む。そうでなければ、フローはブロック812に進む。
ブロック812において、サニタイズコントローラ134は、DRAMブロック142に対して以前に(即ち、ブロック806において)割り当てられたSDHインスタンス700を割り当て解除する。好ましくは、SDHインスタンス700の割り当てを解除することは、後の割り当てのためにSDHインスタンス700を解放する、有効なビット702をクリアすることを含む。フローは、ブロック812で終了する。
ブロック814において、サニタイズコントローラ134は、ブロック802で受信された要求によって書き込まれたDRAMブロック142内のロケーションに関連するビットマップ704のビットをセットする。フローは、判断ブロック816に進む。
判断ブロック816において、サニタイズコントローラ134は、ビットマップ704が一杯であるかどうか、即ち、ビットマップ704のビットがすべてセットされているかどうかを判定する。そうであれば、フローはブロック818に進む。そうでなければ、フローは終了する。
ブロック818において、サニタイズコントローラ134は、DRAMブロック142に対して以前に割り当てられたSDHインスタンス700を割り当て解除し、図3を参照して説明したDRAMブロック142の動作の実行を開始する。なぜなら、サニタイズコントローラ134は、システムソフトウェアがDRAMブロック142をサニタイズしたと判定したからである。
SDHインスタンスの他の実施形態も考えられる。一実施形態では、DRAMコントローラ103は、ブロック142をサニタイズするための一連のゼロ値書き込みが固定サイズワードであり、ブロック142の第1のロケーションから始まると仮定する。この実施形態はビットマップ704を必要とせず、その代わりに、最も新しくゼロ値が書き込まれたブロック142のワードの後のブロック142内の固定サイズワードのインデックスを保持するレジスタを必要とする。動作中、DRAMコントローラ103は、ブロック142における第1のロケーションへのデータ値の書き込みを検出する。SDHインスタンスがブロック142に対して割り当てられておらず、書き込みが固定サイズのゼロ値ワードである場合、DRAMコントローラ103は、SDHインスタンスを割り当てる。SDHインスタンスの割り当ては、レジスタを1の値に初期化することが含まれる。SDHインスタンスがブロック142に割り当てられている場合、DRAMコントローラ103は、データ値がゼロであり、レジスタのインデックスが現在のゼロ値書き込みのインデックスと一致するかどうかを判定する。そうでなければ、DRAMコントローラ103はSDHインスタンスを割り当て解除する。そうでない場合、DRAMコントローラ103は、レジスタのインデックスがブロック142で最高のインデックスであるかどうかを判定する。そうであれば、DRAMコントローラ103はSDHインスタンスを割り当て解除し、ブロックに対して図3の動作を実行する。そうでなければ、DRAMコントローラ103はレジスタをインクリメントする。
本発明の様々な実施形態をここで説明してきたが、それらは例として提示されおり、限定ではないことを理解されたい。関連するコンピュータ技術の当業者には、本発明の範囲から逸脱することなく、形態及び詳細の様々な変更を行うことができることが明らかであろう。例えば、ソフトウェアは、ここで説明された装置及び方法の、例えば、機能、製造、モデリング、シムレーション、ディスクリプション及び/又は試験を可能にすることができる。これは、一般的なプログラミング言語(例えば、C、C++)、VerilogHDL、VHDLなどを含むハードウェア記述言語(HDL)、又は他の利用可能なプログラムを使用して達成することができる。そのようなソフトウェアは、磁気テープ、半導体、磁気ディスク、又は光ディスク(例えば、CD−ROM、DVD−ROMなど)、ネットワーク、有線、無線又は他の通信媒体のような、公知のコンピュータ読取可能媒体に配列され得る。ここで説明された装置及び方法の実施形態は、(例えば、HDLで具体化又は指定され)集積回路の製造においてハードウェアに変換されるプロセッサコアなどの半導体知的財産コアに含まれてもよい。さらに、個々で説明される装置及び方法は、ハードウェアとソフトウェアとの組み合わせとして実施されてもよい。したがって、本発明は、ここで説明された例示的実施形態のいずれによっても制限されるべきではなく、添付の特許請求の範囲及びそれらの均等物に従ってのみ定義されるべきである。具体的には、本発明は、汎用コンピュータで使用可能なプロセッサ装置内で実施することができる。最後に、当業者は、添付の特許請求の範囲によって定義された本発明の範囲を逸脱することなく、本発明と同じ目的を実現するための他の構造を設計し又は改変するための基礎として、開示された概念を容易に使用することができることを評価すべきである。

Claims (20)

  1. 複数のブロックを含むダイナミック・ランダム・アクセス・メモリ(DRAM)を制御するためのDRAMコントローラであって、ブロックは前記DRAM内の1つ又は複数のストレージ・ユニットであり、当該DRAMコントローラは前記DRAMに対するリフレッシュを選択的にイネーブル又はディセーブルすることができ、
    当該DRAMコントローラは、
    それぞれが前記DRAMの複数のブロックのうちの1つのブロックと関連する複数のフラグと、
    前記複数のブロックのうちの1つのブロックがサニタイズされるべきであると判定し、それに応答して前記複数のブロックのうちの1つのブロックと関連する、前記複数のフラグのうちの1つのフラグをセットし、該ブロックのリフレッシュをディセーブルするサニタイズコントローラと、を含み、
    引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、前記フラグがクリアされている場合には、当該DRAMコントローラは前記ロケーションを読み出し、そこから読み出されたデータを返し、前記フラグがセットされている場合には、当該DRAMコントローラはゼロ値を返し、DRAMの読み出しを行わない、DRAMコントローラ。
  2. 引き続く前記ブロック内のロケーションへのデータ書き込み要求の受信に応答して、
    (a)前記フラグがクリアされている場合には、当該DRAMコントローラは前記データを前記ロケーションに書き込み、
    (b)前記フラグがセットされている場合には、当該DRAMコントローラは前記ブロックのリフレッシュをイネーブルし、前記データを前記ロケーションへ書き込むことをさらに含む、請求項1記載のDRAMコントローラ。
  3. 引き続く前記ブロック内の前記ロケーションへのデータ書き込み要求の受信に応答して、
    (b)前記フラグがセットされている場合には、当該DRAMコントローラはさらに前記フラグをクリアし、前記ブロック内の全ての他のロケーションにゼロ値を書き込むことをさらに含む、請求項2記載のDRAMコントローラ。
  4. 引き続く前記ブロック内の前記ロケーションへのデータ書き込み要求の受信に応答して、
    前記フラグがセットされている場合には、当該DRAMコントローラは、書き込まれるべきデータが非ゼロである場合にのみ、動作(a)及び(b)を実行することをさらに含む、請求項2記載のDRAMコントローラ。
  5. コントロールレジスタをさらに含み、
    前記サニタイズコントローラは、前記DRAM及び当該DRAMコントローラを含むシステムのシステムソフトウェアにより前記コントロールレジスタへの書き込みを検出することによって、前記ブロックがサニタイズされるべきであると判定する、請求項1に記載のDRAMコントローラ。
  6. 前記サニタイズコントローラは、前記ブロックの全てのロケーションへ、前記ブロックのロケーションへの非ゼロ値の書き込みの介入なしに、一連のゼロ値書き込みを検出することによって、前記ブロックがサニタイズされるべきであると判断するハードウェアをさらに備える、請求項1に記載のDRAMコントローラ。
  7. 前記ハードウェアは、
    前記DRAMの前記複数のブロックの異なるブロックに対し、前記サニタイズコントローラによって別個に割り当て可能な複数のサニタイズ検出ハードウェアインスタンスを含む、請求項6記載のDRAMコントローラ。
  8. 各サニタイズ検出ハードウェアインスタンスは、
    DRAMコントローラがブロック内のどのロケーションにゼロ値が書き込まれたかを追跡するために使用するビットマップと、
    前記ビットマップが全て真のビットを有するときを検出するロジックとを備える、請求項7に記載のDRAMコントローラ。
  9. 各サニタイズ検出ハードウェアインスタンスは、
    最も新しくゼロ値が書き込まれた前記ブロック内の固定サイズのワードの後の次の固定長のワードのインデックスを保持するレジスタであって、当該インデックスが現在のゼロ値の固定長ワード書き込みのインデックスと一致するとインクリメントされるレジスタと、
    前記現在のゼロ値の固定長ワード書き込みのインデックスが前記ブロック内の最高インデックスとなるときを検出するロジックとを備える、請求項7に記載のDRAMコントローラ。
  10. 複数のブロックを含むダイナミック・ランダム・アクセス・メモリ(DRAM)を制御するための方法であって、ブロックは前記DRAM内の1つ又は複数のストレージ・ユニットであり、DRAMコントローラは前記DRAMに対するリフレッシュを選択的にイネーブル又はディセーブルすることができ、
    当該方法は、
    前記複数のブロックのうちの1つのブロックがサニタイズされるべきであると判定するステップであり、それに応答して、前記複数のブロックのうちの1つのブロックと関連するフラグをセットし、該ブロックのリフレッシュをディセーブルする、判定ステップを備え、
    前記フラグは、それぞれがDRAMの複数のブロックのうちの1つのブロックと関連する複数のフラグのうちの1つのフラグであり、
    当該方法はさらに、
    引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、
    前記フラグがクリアされている場合に、前記ロケーションを読み出し、そこから読み取られたデータを返すステップと、
    前記フラグがセットされている場合に、前記DRAMの読み出しを行わず、ゼロ値を返すステップと、を備える方法。
  11. 引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、
    (a)前記フラグがクリアされている場合に、前記データを前記ロケーションに書き込むステップと、
    (b)前記フラグがセットされている場合に、前記ブロックのリフレッシュをイネーブルし、前記ロケーションに前記データを書き込むステップと、をさらに備える、請求項10に記載の方法。
  12. 引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、
    (b)前記フラグがセットされている場合に、さらに、前記フラグをクリアし、前記ブロック内の全ての他のロケーションにゼロ値を書き込むステップをさらに備える、請求項11に記載の方法。
  13. 引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、
    前記フラグがセットされている場合に、書き込まれるべきデータが非ゼロである場合にのみ、動作(a)及び(b)を実行するステップをさらに備える、請求項11に記載の方法。
  14. 前記ブロックがサニタイズされるべきであると判定する前記判定ステップは、前記DRAM及びコントロールレジスタを含むDRAMコントローラを有するシステムのシステムソフトウェアによって前記コントロールレジスタへの書き込みを検出するステップをさらに備える、請求項10に記載の方法。
  15. 前記ブロックがサニタイズされるべきであると判定する前記判定ステップは、前記ブロックのロケーションへの非ゼロ値の書き込みの介入なしに、前記ブロックの全てのロケーションへの一連のゼロ値書き込みを検出するステップをさらに備える、請求項10に記載の方法。
  16. 当該方法は、前記DRAMの前記複数のブロックの異なるブロックに対し、別個に割り当て可能な複数のサニタイズ検出ハードウェアインスタンスを備えたDRAMコントローラによって実行されることをさらに含む、請求項15に記載の方法。
  17. 前記ブロック内のロケーションへのゼロ値の書き込みの検出に応答してビットマップのビットを真にセットするステップであって、前記ビットマップの各ビットが前記ブロック内の異なるロケーションと関連しているステップをさらに備え、
    前記ブロックがサニタイズされるべきであると判定する判定ステップは、前記ビットマップが全て真のビットを有することを検出するステップをさらに備える、請求項16に記載の方法。
  18. インデックスが現在のゼロ値の固定長ワード書き込みのインデックスと一致すると、レジスタをインクリメントすることによって、前記ブロック内の最も新しくゼロ値が書き込まれた固定サイズのワードの後の次の固定長ワードのインデックスを保持するようにレジスタを維持するステップをさらに備え、
    前記ブロックがサニタイズされるべきであると判定する前記判定ステップは、前記現在のゼロ値の固定長ワード書き込みのインデックスが前記ブロック内の最高インデックスとなるときを検出するステップを備える、請求項16に記載の方法。
  19. コンピューティングデバイスと共に使用するための少なくとも1つの非揮発性コンピュータ使用可能媒体において符号化されたコンピュータプログラムであって、
    当該コンピュータプログラムは、
    複数のブロックを含むダイナミック・ランダム・アクセス・メモリ(DRAM)を制御するためのコントローラを指定するための前記媒体内に具現化されたコンピュータ使用可能プログラムコードを含み、ブロックは前記DRAM内の1つ又は複数のストレージ・ユニットであり、DRAMコントローラは前記DRAMに対するリフレッシュを選択的にイネーブル又はディセーブルすることができ、
    前記コンピュータ使用可能プログラムコードは、
    それぞれが前記DRAMの複数のブロックのうちの1つのブロックと関連する複数のフラグを指定する第1のプログラムコードと、
    前記複数のブロックのうちの1つのブロックがサニタイズされるべきであると判定し、それに応答して前記複数のブロックのうちの1つのブロックと関連する、前記複数のフラグのうちの1つのフラグをセットし、該ブロックのリフレッシュをディセーブルするサニタイズコントローラを指定する第2のプログラムコードとを備え、
    引き続く前記ブロック内のロケーションからのデータ読み取り要求の受信に応答して、前記フラグがクリアされている場合に、当該DRAMコントローラは前記ロケーションを読み出し、そこから読み出されたデータを返し、前記フラグがセットされている場合に、当該DRAMコントローラはDRAMの読み出しを行わず、ゼロ値を返す、コンピュータプログラム。
  20. 前記少なくとも1つの非揮発性コンピュータ使用可能媒体は、ディスク、テープ、又は他の磁気、光学、又は電子記憶媒体の群から選択される、請求項19に記載のコンピュータプログラム。
JP2016249420A 2016-04-15 2016-12-22 サニタイズ認識dramコントローラ Active JP6373336B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662323177P 2016-04-15 2016-04-15
US62/323,177 2016-04-15
US15/335,141 2016-10-26
US15/335,141 US9972375B2 (en) 2016-04-15 2016-10-26 Sanitize-aware DRAM controller

Publications (2)

Publication Number Publication Date
JP2017191594A true JP2017191594A (ja) 2017-10-19
JP6373336B2 JP6373336B2 (ja) 2018-08-15

Family

ID=57838118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016249420A Active JP6373336B2 (ja) 2016-04-15 2016-12-22 サニタイズ認識dramコントローラ

Country Status (5)

Country Link
US (1) US9972375B2 (ja)
EP (1) EP3232330B1 (ja)
JP (1) JP6373336B2 (ja)
KR (1) KR101902650B1 (ja)
CN (1) CN106782642B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250355579A1 (en) * 2024-05-17 2025-11-20 Samsung Electronics Co., Ltd. Storage controller performing partial refresh operation, storage device including the same, and method of operating the same

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10185509B1 (en) 2017-06-01 2019-01-22 Amazon Technologies, Inc. Secure storage device sanitization
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US11182106B2 (en) * 2018-03-21 2021-11-23 Arm Limited Refresh circuit for use with integrated circuits
US11143684B2 (en) 2019-03-25 2021-10-12 Lg Energy Solution, Ltd. Diagnostic system for a vehicle electrical system
US10996279B2 (en) 2019-04-08 2021-05-04 Lg Chem, Ltd. Diagnostic system for a battery management system
US11221949B2 (en) * 2020-02-10 2022-01-11 Micron Technology, Inc. Multi state purgatory for media management for a memory subsystem
US11442654B2 (en) * 2020-10-15 2022-09-13 Microsoft Technology Licensing, Llc Managing and ranking memory resources
KR102825952B1 (ko) 2021-06-25 2025-06-26 삼성전자주식회사 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법
US12380033B2 (en) * 2022-01-21 2025-08-05 Centaur Technology, Inc. Refreshing cache regions using a memory controller and multiple tables
KR20240104989A (ko) 2022-12-28 2024-07-05 삼성전자주식회사 저장 장치, 이의 동작 방법, 및 전자 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469559A (en) * 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
JP2013080560A (ja) * 2006-04-28 2013-05-02 Mosaid Technologies Inc 完全に独立のパーシャルアレイリフレッシュ機能を有するダイナミックランダムアクセスメモリ
WO2013183155A1 (ja) * 2012-06-07 2013-12-12 富士通株式会社 選択的にメモリのリフレッシュを行う制御装置
JP2014197446A (ja) * 2007-07-26 2014-10-16 クゥアルコム・インコーポレイテッドQualcomm Incorporated 有効データインジケータの使用によってダイナミックram電力消費を減らすシステムおよび方法
WO2014186229A1 (en) * 2013-05-14 2014-11-20 Qualcomm Incorporated Methods and systems for smart refresh of dynamic random access memory

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524248A (en) 1993-07-06 1996-06-04 Dell Usa, L.P. Random access memory power management system
CN100452239C (zh) * 2003-04-24 2009-01-14 富士通微电子株式会社 半导体存储器
US20060181949A1 (en) 2004-12-31 2006-08-17 Kini M V Operating system-independent memory power management
US7292490B1 (en) 2005-09-08 2007-11-06 Gsi Technology, Inc. System and method for refreshing a DRAM device
US20070180187A1 (en) 2006-02-01 2007-08-02 Keith Olson Reducing power consumption by disabling refresh of unused portions of DRAM during periods of device inactivity
JP4299848B2 (ja) * 2006-08-09 2009-07-22 エルピーダメモリ株式会社 半導体記憶装置
US7613061B2 (en) 2007-11-30 2009-11-03 Agere Systems Inc. Method and apparatus for idle cycle refresh request in DRAM
US20090172251A1 (en) 2007-12-26 2009-07-02 Unity Semiconductor Corporation Memory Sanitization
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
US20130036256A1 (en) * 2011-08-05 2013-02-07 Hitachi, Ltd. Method and apparatus of sanitizing storage device
KR101155451B1 (ko) * 2011-08-31 2012-06-15 테세라, 인코포레이티드 Dram 보안 소거
WO2014018038A1 (en) * 2012-07-26 2014-01-30 Empire Technology Development Llc Energy conservation in a multicore chip
US10157657B2 (en) 2012-08-28 2018-12-18 Rambus Inc. Selective refresh with software components
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469559A (en) * 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
JP2013080560A (ja) * 2006-04-28 2013-05-02 Mosaid Technologies Inc 完全に独立のパーシャルアレイリフレッシュ機能を有するダイナミックランダムアクセスメモリ
JP2014197446A (ja) * 2007-07-26 2014-10-16 クゥアルコム・インコーポレイテッドQualcomm Incorporated 有効データインジケータの使用によってダイナミックram電力消費を減らすシステムおよび方法
WO2013183155A1 (ja) * 2012-06-07 2013-12-12 富士通株式会社 選択的にメモリのリフレッシュを行う制御装置
WO2014186229A1 (en) * 2013-05-14 2014-11-20 Qualcomm Incorporated Methods and systems for smart refresh of dynamic random access memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250355579A1 (en) * 2024-05-17 2025-11-20 Samsung Electronics Co., Ltd. Storage controller performing partial refresh operation, storage device including the same, and method of operating the same

Also Published As

Publication number Publication date
KR101902650B1 (ko) 2018-09-28
US9972375B2 (en) 2018-05-15
CN106782642A (zh) 2017-05-31
EP3232330A1 (en) 2017-10-18
CN106782642B (zh) 2020-02-07
JP6373336B2 (ja) 2018-08-15
EP3232330B1 (en) 2018-11-07
US20170301386A1 (en) 2017-10-19
KR20170118583A (ko) 2017-10-25

Similar Documents

Publication Publication Date Title
JP6373336B2 (ja) サニタイズ認識dramコントローラ
US9104581B2 (en) eDRAM refresh in a high performance cache architecture
US9727471B2 (en) Method and apparatus for stream buffer management instructions
US11003606B2 (en) DMA-scatter and gather operations for non-contiguous memory
US8312227B2 (en) Method and apparatus for MPI program optimization
CN109952565B (zh) 内存访问技术
CN110647475B (zh) 存储装置和包括存储装置的存储系统
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
KR101414035B1 (ko) 저장 효율적인 섹터형 캐시
BR112015001988B1 (pt) Método e equipamento para mapeamento de endereços virtuais para endereços físicos, e memória legível por computador
US11749332B2 (en) Effective DRAM interleaving for asymmetric size channels or ranks while supporting improved partial array self-refresh
US9135187B2 (en) Apparatus and method for protecting memory in multi-processor system
US10324760B2 (en) Leases for blocks of memory in a multi-level memory
US20110225369A1 (en) Multiport data cache apparatus and method of controlling the same
CN107577614B (zh) 数据写入方法及内存系统
JP2018500697A (ja) トランザクションコンフリクトを検出するための方法および装置、ならびにコンピュータシステム
WO2024198954A1 (zh) 基于光线追踪的数据调度方法、装置、系统、设备、存储介质和计算机程序产品
CN110196819B (zh) 内存访问方法与硬件
US20080162782A1 (en) Using Transacted Writes and Caching Mechanism to Improve Write Performance in Multi-Level Cell Flash Memory
CN113253939B (zh) 数据处理方法、装置、电子设备及存储介质
US20170031811A1 (en) Control method for non-volatile memory and associated computer system
CN113490923A (zh) 加速对数据存储系统中的存储器组的访问
US20150186240A1 (en) Extensible i/o activity logs
US8521951B2 (en) Content addressable memory augmented memory
CN105224467B (zh) 一种全局内存访问的方法和设备

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180717

R150 Certificate of patent or registration of utility model

Ref document number: 6373336

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250