JP2017521808A - ダイナミック・ランダム・アクセス・メモリ(dram)をリフレッシュするための方法およびシステム、およびデバイス - Google Patents

ダイナミック・ランダム・アクセス・メモリ(dram)をリフレッシュするための方法およびシステム、およびデバイス Download PDF

Info

Publication number
JP2017521808A
JP2017521808A JP2016572231A JP2016572231A JP2017521808A JP 2017521808 A JP2017521808 A JP 2017521808A JP 2016572231 A JP2016572231 A JP 2016572231A JP 2016572231 A JP2016572231 A JP 2016572231A JP 2017521808 A JP2017521808 A JP 2017521808A
Authority
JP
Japan
Prior art keywords
refresh
unit
dram
information
address
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
JP2016572231A
Other languages
English (en)
Other versions
JP6429258B2 (ja
Inventor
▲澤▼▲漢▼ 崔
▲澤▼▲漢▼ 崔
明宇 ▲陳▼
明宇 ▲陳▼
永兵 黄
永兵 黄
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017521808A publication Critical patent/JP2017521808A/ja
Application granted granted Critical
Publication of JP6429258B2 publication Critical patent/JP6429258B2/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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; 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/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; CALCULATING OR 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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
    • 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/408Address circuits
    • 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 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本発明の実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステム、およびデバイスを提供する。DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とが取得され、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含み、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とがDRAMアクセス要求としてカプセル化され、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とがリフレッシュデータ空間に書き込まれ、ここで、リフレッシュデータ空間は、DRAM内で事前に設定され、且つ、少なくとも1つのリフレッシュユニットのアドレスと少なくとも1つのリフレッシュユニットのリフレッシュ情報とを記憶するために使用される記憶空間である。前述の解決手段によると、同じ周期に従って実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を解決するために、リフレッシュユニットのリフレッシュ情報に従って、適切なリフレッシュが実行されることができる。

Description

本願は、2014年6月9日に中国特許庁に出願された、「METHOD AND SYSTEM FOR REFRESHING DYNAMIC RANDOM ACCESS MEMORY DRAM AND DEVICE」と題する、中国特許出願番号201410253514.8に対して優先権を主張し、その全体が参照によって組み込まれる。
本発明はコンピュータの分野に関し、詳細には、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステム、およびデバイスに関する。
既存のコンピュータシステムでは、安価で高密度のDRAM(Dynamic Random Access Memory, ダイナミック・ランダム・アクセス・メモリ)は一般に、システムメインメモリとして使用され、メモリとも呼ばれる。DRAMは、キャパシタ内の電荷を使用することによってデータを記憶する。しかしながら、これらの電荷は、漏電の存在により、絶えず漏れ出ている。従って、キャパシタ内のデータは、漏れ出る電荷を補うために、定期的に読み出され、且つ、再書き込みされる必要があり、このような操作はリフレッシュ(Refresh)と呼ばれる。
DRAMは複数のバンク(Bank)を含み、且つ、各Bankは、2次元記憶アレイであり、ここで、水平線は行(Row)と呼ばれ、且つ、垂直線は列(Column)と呼ばれる。リフレッシュプロセスでは、DRAMは1つの行(メモリ行とも呼ばれる)を毎回選択し、行内の全てのデータをセンス増幅器(行バッファ, Row Bufferとも呼ばれる)に抽出し、このようなプロセスは、活性化操作(Active)と呼ばれる。次いで、DRAMは、行バッファ内で、対応するデータの読み出しおよび書き込みを完了し、且つ、行バッファにおけるデータは記憶アレイに再書き込みされ、このことは、プレチャージ操作(Pre-charge)と呼ばれる。活性化操作およびプレチャージ操作によって、リフレッシュプロセス全体が実施される。DRAMリフレッシュは、コンピュータシステムに対して比較的大きなオーバヘッドを引き起こす。DRAMは、リフレッシュプロセスにおいて、正常なメモリアクセス要求に応答することはできないため、性能オーバヘッドが引き起こされ、そのうえ、リフレッシュ操作は電力消費操作であり、このことはエネルギー消費オーバヘッドを引き起こす。
既存のリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、DRAM内の全ての行をリフレッシュすることである。
本発明を完成するプロセスにおいて、従来技術は、DRAMの容量は連続的に増加するため、同じ周期を使用することによって全てのメモリ行をリフレッシュする方式は、ますます大きな性能オーバヘッドおよびエネルギー消費オーバヘッドを有し、このことは、システムのエネルギー効率に著しく影響を与えるという問題を有すると分かった。
これに基づいて、本発明の実施形態は、リフレッシュプロセスにおけるオーバヘッドを有効に低減するために、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステム、およびデバイスを提供する。
本発明の実施形態の第1の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するステップであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップであって、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である、ステップとを含む。
第1の態様を参照すると、第1の可能な実施方式では、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップの前に、方法は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるステップをさらに含む。
第1の態様および第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
第1の態様および第1の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するステップの前に、方法は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するステップをさらに含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
本発明の実施形態の第2の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、且つ、装置は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニットであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニットと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニットと、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニットであって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニットとを含む。
第2の態様を参照すると、第1の可能な実施方式では、装置は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニットをさらに含む。
第2の態様および第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
第2の態様および第2の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニットをさらに含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
本発明の実施形態の第3の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、ここで、処理装置は、
プロセッサ、メモリ、通信インタフェースおよびバスを含み、ここで、プロセッサ、メモリおよび通信インタフェースは、バスを使用することによって通信を実行し、
メモリは、プログラムを記憶するように構成され、
通信インタフェースは、DRAMと通信するように構成され、
処理装置が動作しているとき、プロセッサは、第1の態様および第1の態様の可能な実施方式のうちのいずれか1つに記載の方法を実行するために、メモリに記憶されたプログラムを実行するように構成される。
本発明の実施形態の第4の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するステップであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、ステップと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するステップとを含む。
第4の態様を参照すると、第1の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定し、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップを含む。
第4の態様および第4の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュデータ空間は、DRAM内に事前に設定された、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、且つ、方法は、
リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップをさらに含む。
第4の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を読み出すステップの後、方法は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するステップと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するステップと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するステップ、または
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するステップとをさらに含む。
本発明の実施形態の第5の態様は、DRAMコントローラを提供し、且つ、DRAMコントローラは、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュールであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュールと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュールであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュールと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュールとを含む。
第5の態様を参照すると、第1の可能な実施方式では、取得モジュールは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニットと、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニットとを含む。
第5の態様および第5の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得モジュールは、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
第5の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、実行モジュールは、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニットと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニットと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニットとを含む。
本発明の実施形態の第6の態様はダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするためのシステムを提供し、ここで、システムは、少なくとも1つのリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)と、第5の態様および第5の態様の可能な実施方式のうちのいずれか1つに記載のDRAMコントローラとを含む。
本発明の実施形態で提供されるダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステムおよびデバイスによると、DRAM内のリフレッシュユニットのリフレッシュ情報が取得され、ここで、リフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含み、且つ、リフレッシュ情報は、DRAM内の、1個の事前に設定された記憶空間、すなわちリフレッシュデータ空間に書き込まれ、DRAM内のリフレッシュユニットをリフレッシュするプロセスでは、DRAMコントローラは、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットに対応するリフレッシュ情報を読み出し、且つ、リフレッシュ情報を使用することによって、対応するリフレッシュユニットに対してリフレッシュ操作を実行する。前述の方式によって、DRAM容量が連続的に増加する場合、一方では、リフレッシュユニットのリフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期に従って実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避し、且つ、他方では、リフレッシュユニットのリフレッシュ情報はDRAM空間に記憶され、その結果、DRAMの記憶容量が連続的に増加する場合、リフレッシュ情報のデータ量における増加から生じる記憶空間に対する要件が満たされることができる。
本発明の実施形態における技術的解決手段をより明確に説明するために、以下では、実施形態を説明するために必要とされる添付図面を簡潔に導入する。明らかに、以下の説明における添付図面は単に、本発明のいくつかの実施形態を示し、且つ、当業者は、創造的努力無しにこれらの添付図面から他の図面をさらに導出することができる。
図1は、本発明の実施形態が基づくシステムアーキテクチャの図である。 図2Aは、本発明に係る方法の実施形態1の第1の実施方式のフローチャートである。 図2Bは、本発明に係る方法の実施形態1の第2の実施方式のフローチャートである。 図2Cは、本発明に係る方法の実施形態1のステップ230の第1の実施方式のフローチャートである。 図2Dは、本発明に係る方法の実施形態1のステップ230の第2の実施方式のフローチャートである。 図3Aは、本発明に係る方法の実施形態2のフローチャートである。 図3Bは、本発明に係る方法の実施形態2のステップ330の実施方式のフローチャートである。 図3Cは、本発明に係る方法の実施形態2の追加のステップの実施方式のフローチャートである。 図4は、本発明に係るデバイスの実施形態1の構成図である。 図5は、本発明に係るデバイスの実施形態2の構成図である。 図6Aは、本発明に係るデバイスの実施形態2の構成図である。 図6Bは、本発明に係るデバイスの実施形態2における取得モジュールの実施方式の構成図である。 図6Cは、本発明に係るデバイスの実施形態2における実行モジュールの実施方式の構成図である。 図7は、本発明のシステムの実施形態のネットワーキング接続図である。
以下では、本発明の実施形態における技術的解決手段を、本発明の実施形態における添付図面を参照して、明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく一部である。創造的努力無しに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
以下の説明はDRAMデバイスに集中するが、当業者は、主張される本発明は、複数のユニットを含むとともに、それらの内容を確保するために、規則的な間隔でリフレッシュされるか、または別の方式で維持される必要がある任意のタイプの記憶デバイスに適用されることができることを理解する。当業者はまた、以下の説明は、記憶ユニットが2次元行列アレイに組織される記憶デバイスに集中するが、記憶ユニットは、複数のバンク(Bank)に組織されることおよびインタリーブされるかまたはインタリーブされないこと、2次元よりも多いアレイに組織されること、アドレス指定可能な内容に組織されること等を含む、複数の方式で組織されてよいことを理解する。加えて、以下の議論の少なくとも一部はコンピュータシステム内のメモリに集中するが、当業者は、主張される本発明は、メモリデバイスを有する別の電子デバイスまたはシステムと組み合わせて実施されてよいことを理解する。
本発明の実施形態のシステムアーキテクチャ
図1は、本発明の実施形態に係るメモリリフレッシュシステムの概略ネットワーキング図を示す。メモリリフレッシュシステムは、プロセッサ100、メモリコントローラ200およびメモリチップ300を含む。プロセッサ100は、メモリコントローラ200を使用することによって、メモリチップ300からデータを読み出すとともにメモリチップ300にデータを書き込む。具体的な実施中、プロセッサ100およびメモリコントローラ200は、同じチップに統合されてよく、または、2つの異なるチップによって別々に実施されてもまたよい。
メモリチップ300では、1個の記憶空間は、リフレッシュデータ空間310として事前に設定され、且つ、リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリをアプリケーションプログラムに割り当てるとき、オペレーティングシステムはこれらのメモリ領域を使用することはできない。
メモリチップ300は一般に、DRAMチップによって実施され、且つ、メモリチップ300がDRAMチップによって実施されるとき、メモリコントローラ200は、DRAMコントローラによって実施されてよい。
本発明の実施形態
現在、メモリの記憶容量における連続的な増加によって、メモリリフレッシュの性能オーバヘッドおよび電力消費オーバヘッドを低減する方法が課題となっている。
業界で一般に使用されるリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、メモリ内の全ての行をリフレッシュすることである。具体的には、以下のような2つのリフレッシュ方式がある:
(1) AR(Auto Refresh, 自動リフレッシュ)方式:計数器RACはメモリチップ内で維持されるとともに、次のリフレッシュされるべき行を指示する。メモリコントローラはtREFI時間の間隔でリフレッシュコマンドを送信し、且つ、メモリチップがコマンドを受信した後、リフレッシュ操作は、全てのBank内で、RACによって指示された行のグループ(行の数は、メモリチップの密度によって決定される)に対して同時に実行される。リフレッシュ操作の持続時間はtRFCであり、この期間中、メモリチップは通常のメモリアクセス要求に応答することはできない。tRFC時間の後、メモリチップは、計数器の値を更新するとともに、計数器に、リフレッシュされるべき行の次のグループを指示させる。
(2) ROR(RAS-Only Refresh)方式:メモリコントローラは、行のデータのリフレッシュを完了するために、行アドレスストローブ(RAS, Row Address Strobe)コマンドを送信するとともに、メモリから1つの行内のデータを行バッファに抽出し、次いで、行のデータは、次のプレチャージコマンドによって、記憶ユニットに再書き込みされる。この場合、メモリコントローラは、その中で計数器RACを維持するとともに、RASコマンドを周期的に送信する。このようなリフレッシュ方式では、1つの行のみが毎回リフレッシュされ、且つ、行がリフレッシュされるとき、他のBankは依然としてアクセスされることができる。
前述のAR方式では、リフレッシュの粒度は比較的大きく、且つ、各行の平均のリフレッシュオーバヘッドは比較的小さく、しかしながら、メモリ内のいくつかの行が無効データを記憶するか(すなわち、無効データはリフレッシュされる必要がない)、または、非クリティカルなデータを記憶する(非クリティカルなデータは比較的高い頻度でリフレッシュされる必要がない)とき、前述のAR方式のオーバヘッドは比較的大きい。ROR方式では、リフレッシュの粒度は比較的小さく、且つ、リフレッシュされるべき行はメモリコントローラによって指定され、このことは、メモリコントローラが柔軟な制御を行うことを可能にし、しかしながら、ROR方式における各行の平均のリフレッシュオーバヘッドは比較的大きい。
前述の方式では、リフレッシュされるべきデータの各行は、リフレッシュユニット(Refresh Unit)を構成する。具体的な実施では、リフレッシュユニットは1つのメモリ行であってよく、または、複数のメモリ行であってよく、または、メモリ行よりも小さい粒度であってよく、このことは、本発明のいずれの実施形態においても限定されない。
メモリデータをリフレッシュする効率を改善するとともにリフレッシュオーバヘッドを低減するために、各リフレッシュユニットのリフレッシュパラメータは、以下の3つのパラメータを使用することによって決定されてよい:
(1) データ保持時間:データ保持時間は、T0によって表されるとともに、リフレッシュユニットの事前に設定されたリフレッシュ周期である。例えば、リフレッシュユニットが64ミリ秒の間隔でリフレッシュされる場合、事前に設定されたリフレッシュ周期T0 = 64 msである。
(2) データ有効性:データ有効性はμによって表されるとともに、リフレッシュユニットに記憶されたデータの有効性を測定するために使用される。リフレッシュユニットに記憶されたデータが有効データである場合、μ=1であり、且つ、リフレッシュユニットに記憶されたデータが無効データである場合、μ=0である。データ有効性は、オペレーティングシステムによって決定される。
(3) データクリティカル性:データクリティカル性は、λによって表されるとともに、リフレッシュユニットに記憶されたデータのクリティカル性を測定するために使用される。データクリティカル性のレベルによると、リフレッシュユニットに記憶されたデータのデータクリティカル性の値の範囲は0<λ≦1である。データクリティカル性はオペレーティングシステムによって設定されてよく、または、データクリティカル性はユーザによって設定されてオペレーティングシステムに通知されてよい。
リフレッシュ周期=事前に設定されたリフレッシュ周期*データ有効性/データクリティカル性という関係は、リフレッシュユニットのリフレッシュ周期と前述の3つのパラメータとの間に存在し、このことは、記号を使用することによって、リフレッシュ周期T=T0*μ/λ(これは、μ≠0である場合に適用可能である)のように表現される。リフレッシュユニットのリフレッシュデータが無効データであるとき、この場合、リフレッシュユニットのリフレッシュ周期は無限であり、すなわち、リフレッシュユニットはリフレッシュされないことは留意されるべきである。
説明は、1のデータクリティカル性を有する有効データを記憶するリフレッシュユニットについては、リフレッシュユニットのリフレッシュ周期= T0*1/1 = Tであり、非クリティカルな有効データを記憶するリフレッシュユニットについては、データクリティカル性λ(ここで、0<λ≦1)は、オペレーティングシステムによって設定されたデータクリティカル性に従って決定されてよく、且つ、システムによって選択された事前に設定されたリフレッシュ周期と調整因子との積、すなわち、T0*(1/λ)を使用することによって、リフレッシュが実行されるという例を使用することによって提供される。
例として、リフレッシュユニットについては、リフレッシュユニットのデータ保持時間T0(すなわち、事前に設定されたリフレッシュ周期)は64ミリ秒であり、データ有効性μは1であり、データクリティカル性λは0.5であり、従って、前述の計算式に従って、リフレッシュユニットのリフレッシュ周期が64*2(ミリ秒)であると決定される。
例として、1つの情報記憶フォーマットを使用することによって、異なるデータクリティカル性を有するリフレッシュユニットのリフレッシュ情報が表1を使用することによって表現されることができる。以下の表では、1つのリフレッシュユニットのリフレッシュ情報の記憶フォーマットは、4bitを使用することによって表されてよい。リフレッシュ情報を表すためにいくつのbitが使用されるかは、ユーザ定義の設定に基づくことは留意されるべきである。より多くのbitによって、リフレッシュ周期のより多くのオプションが表されることができる。当業者のために、リフレッシュ情報を表すためのbitの数は具体的なリフレッシュ要件に従って選択され、このことは、本発明のいずれの実施形態においても限定されない。以下の表1は単に、説明のための例として使用される。
以下の表1から、4bitを使用することによって表されるリフレッシュ情報は、リフレッシュユニットに対応するリフレッシュ周期を実際に含むことがわかる。
Figure 2017521808
方法の実施形態1
図2Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法を提供する。方法のプロセスは以下の通りである:
210: DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得し、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む。
具体的には、この方法の実施形態は、オペレーティングシステムによって実行されてよい。
リフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスであってよく、または、リフレッシュユニットの仮想アドレスであってよい。
従来技術では、リフレッシュ情報は、多くの取得方式で取得されてよい。例えば、ソフトウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、ページ割り当て/解放に対する監視またはユーザのマークによって決定されてよく、且つ、ハードウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、データへの最近のアクセスの履歴等によって決定されてよい。このことは、本発明の本実施形態では詳細には説明されない。
具体的には、DRAM内のリフレッシュユニットのリフレッシュ情報を取得するステップの前に、方法は、データ保持時間、データ有効性およびデータクリティカル性等の、リフレッシュユニットのパラメータを、リフレッシュユニットのリフレッシュ情報に変換するステップをさらに含む。具体的な変換プロセスについては、前述の表1における関連する説明に対して参照が行われてよい。
リフレッシュユニットの前述のリフレッシュ情報に含まれる情報は、リフレッシュユニットのリフレッシュ周期である。
230: リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込み、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である。
具体的には、オペレーティングシステムは、既存のDRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込んでよい。
さらに、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップ230の前に、図2Bを参照すると、方法は以下をさらに含む:
220: DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てる。
ステップ220とステップ210との間に厳密な順序的な関係はないことは留意されるべきである。具体的な実施プロセスでは、ステップ210が最初に実行されてよいとともに、次いで、ステップ220が実行され、または、ステップ220が最初に実行されてよいとともに、次いで、ステップ210が実行され、このことは、本発明の本実施形態では限定されない。
DRAM内で、1個の記憶空間をリフレッシュデータ空間として割り当てる前述のステップ220は、以下の方式を使用することによって実施されてよい:
(1) オペレーティングシステムは、メモリ空間にリフレッシュ情報を記憶するための領域を適用するとともに、領域のアドレス範囲をメモリコントローラに通知する。
(2) BIOS(Basic Input/Output System, すなわち、基本入力/出力システム)は、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムおよびメモリコントローラに通知する。
(3) メモリコントローラは、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムに通知する。
リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリがアプリケーションプログラムに割り当てられるとき、オペレーティングシステムはこれらのメモリ領域を使用することはできない。
リフレッシュユニットのアドレスおよびリフレッシュユニットのリフレッシュ情報はリフレッシュデータ空間に書き込まれ、且つ、このようにして、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係がリフレッシュデータ空間内に確立されることは留意されるべきである。例えば、リフレッシュデータ空間の構造は表2に示される(ここで、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係をテーブルの形態で記憶することは、単に1つの実施方式であり、且つ、本発明の本実施形態は、他の実施方式を排除しないことは理解されることができる)。
Figure 2017521808
さらに、異なる具体的な実施プロセスに従って、ステップ230を実行するプロセスには2つの実施方式がある:
方式1:この方式は、ステップ231からステップ232の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含む。図2Cを参照すると、ステップ230の具体的なプロセスは以下である:
231: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
232: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
具体的には、前述の実施プロセスでは、オペレーティングシステムが、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とを取得するとき、オペレーティングシステムは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込んでよい。
方式2:この方式は、ステップ233からステップ235の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含む。図2Dを参照すると、ステップ230の具体的なプロセスは以下である:
233: ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換する。
234: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
235: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
具体的には、前述の実施プロセスでは、リフレッシュユニットのリフレッシュ情報とリフレッシュユニットの仮想アドレスとがユーザモードアプリケーションを使用することによって取得される。この場合、ユーザモードアプリケーションは、リフレッシュユニットの仮想アドレスとリフレッシュユニットのリフレッシュ情報とをオペレーティングシステムに送信し、且つ、オペレーティングシステムは、リフレッシュユニットの仮想アドレスに従って、且つ、ページテーブル(Page Table)に問い合わせることによって、リフレッシュユニットの物理アドレスを取得するとともに、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法の前述の実施形態によると、リフレッシュ情報は、既存のDRAMアクセス要求を使用することによって、DRAM内の前もって割り当てられたリフレッシュデータ空間に書き込まれることができ、その結果、方法は、リフレッシュ情報のための記憶空間を連続的に拡張するという要件を満たすことができ、ここで、要件は、DRAMの記憶容量における連続的な増加から生じる。さらに、リフレッシュ情報の記憶は、既存のDRAMアクセス要求を使用することによって実施され、このことは、単純で且つ実用的な実施の解決手段である。
方法の実施形態2
図3Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法を提供する。この方法の実施形態はメモリコントローラによって実行され、且つ、そのプロセスは以下である:
310: DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成し、ここで、リフレッシュコマンドは、リフレッシュユニットを指す物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である。
具体的には、メモリコントローラは、リフレッシュコマンドを周期的に生成し、且つ、リフレッシュコマンドはリフレッシュされるべきユニットの物理アドレスを含む。
330: リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、リフレッシュユニットのリフレッシュ情報を読み出し、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む。
350: リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行する。
具体的には、メモリコントローラが、リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するとき、表2を参照して、異なるリフレッシュ情報に対して、メモリコントローラは異なるリフレッシュ操作を実行する:
(1) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が0である場合、リフレッシュ情報に対応するリフレッシュユニットに記憶されたデータは無効データであると示し、且つ、メモリコントローラはリフレッシュコマンドを破棄する。
(2) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が1であり、且つ、リフレッシュ周期識別子がabcである場合(ここで、a、bおよびcの全ての値が1または0である)、表2および表1における内容に従って、リフレッシュユニットのリフレッシュ周期が決定され、且つ、リフレッシュユニットは、リフレッシュ周期に従ってリフレッシュされる。
さらに、図3Bを参照すると、リフレッシュユニットのポインタに従って、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットに対応するリフレッシュ情報を読み出す前述のステップ330は以下を含む:
331: リフレッシュユニットの物理アドレスに従って、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係を問い合わせ、リフレッシュユニットのリフレッシュ情報を決定する。
332: リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
リフレッシュユニットの物理アドレスに従って、メモリコントローラは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
さらに、リフレッシュデータ空間は、DRAM内で事前に設定され、且つ、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、方法はさらに以下を含む:
340:リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得する。
DRAMデータの読み出し/書き込み粒度は比較的大きく、これは一般に64バイトであり、前述の実施形態に従って、1つのリフレッシュユニットのリフレッシュ情報の記憶は、4個のビットを使用することによって表され、且つ、従って、DRAMは128個のリフレッシュユニットのリフレッシュ情報を一度に読み出すことは留意されるべきである。
さらに、リフレッシュデータ空間から、リフレッシュユニットの後にある複数のリフレッシュユニットのリフレッシュ情報を読み出すステップの後、図3Cを参照すると、方法は以下をさらに含む:
341: リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信する。
342: 複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定する。
343: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行する。
344: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行する。
具体的な実施プロセスでは、リフレッシュ操作が、Auto Refresh方式を使用することによって複数の連続するリフレッシュユニットに対して実行されるとき、メモリコントローラは、サイレントリフレッシュ(silent refresh)コマンドをDRAMにさらに送信する。コマンドによって、複数の連続するリフレッシュユニットをリフレッシュするプロセスでは、無効データを記憶するリフレッシュユニットはスキップされることができ、さらに、リフレッシュが実行されるアドレスについて、計数器が次のリフレッシュされるべき行を続いて指示することを確実にするために、計数器は1インクリメントされる。
Auto Refreshを使用すること、および、RAS-Only Refreshを使用することは、当業者にとって共通の知識であり、且つ、具体的な実行プロセスは、ここでは繰り返し詳細に説明されないことは留意されるべきである。
前述の実施形態では、リフレッシュデータ空間に記憶されたリフレッシュユニットのリフレッシュ情報にアクセスすることによって、リフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期を使用することによって実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避する。さらに、リフレッシュユニットのリフレッシュ情報は、既存のメモリアクセスコマンドを使用することによって、リフレッシュデータ空間から直接読み出され、その結果、リフレッシュプロセスは単純で且つ実用的である。
デバイスの実施形態1
図4を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、且つ、装置400は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニット410であって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニット410と、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニット420と、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニット430であって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニット430とを含む。
さらに、装置400は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニット440をさらに含む。
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニット420は、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するようにさらに構成され、且つ、
書き込みユニット430は、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニット450をさらに含み、
カプセル化ユニット420は、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とリフレッシュユニットの物理アドレスとをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニット430は、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
デバイスの実施形態2
図5を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置をさらに提供し、且つ、処理装置500は、
プロセッサ510、メモリ520、通信インタフェース530およびバス540を含み、ここで、プロセッサ510、メモリ520および通信インタフェース530は、バスを使用することによって通信を実行し、
メモリ520は、プログラムを記憶するように構成され、
通信インタフェース530は、DRAMと通信するように構成され、
処理装置500が動作しているとき、プロセッサ510は、方法の実施形態1の任意の可能な実施方式に記載の方法を実行するために、メモリ520に記憶されたプログラムを実行するように構成される。
デバイスの実施形態3
図6Aを参照すると、本実施形態は、DRAMコントローラを提供し、且つ、コントローラ600は、
リフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュール610であって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュール610と、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュール620であって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュール620と、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュール630とを含む。
さらに、図6Bを参照すると、取得モジュール620は、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニット621と、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニット622とを含む。
さらに、取得モジュール620は、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
さらに、図6Cを参照すると、実行モジュール630は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニット631と、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニット632と、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニット633とを含む。
前述の実施方式では、複数の連続するリフレッシュユニットの全てがリフレッシュされる必要があるときに、Auto Refreshのリフレッシュ方式はリフレッシュオーバヘッドを低減することができるとともに比較的高い効率を有するという特徴と、RAS-Only Refreshのリフレッシュ方式は1つのリフレッシュユニットのリフレッシュに適用可能であるという特徴とを考慮すると、リフレッシュ操作が実際に実行される必要があるリフレッシュユニットの数がリフレッシュユニットの数のための閾値を超えるかどうかに従って、Auto Refresh方式またはRAS-Only Refresh方式がリフレッシュを実行するために選択され、それによって、リフレッシュの効率を改善する。
システムの実施形態
図7を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするためのシステムを提供する。システム700は、複数のリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)710とデバイスの実施形態3に記載されているようなDRAMコントローラ720とを含む。
本発明で提供されるいくつかの実施形態では、開示されるシステム、装置および方法は、他の方式で実施されてよいことは理解されるべきである。例えば、説明される装置の実施形態は単なる例示である。例えば、ユニットの分割は、単に、論理的な機能の分割であるとともに、実際の実施では他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステムに結合されるかまたは統合されてよく、または、いくつかの特徴は無視されるかまたは実行されなくてよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを介して実施されてよい。装置間またはユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
分離した部分として説明されたユニットは、物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示された部分は、物理的なユニットであってもなくてもよく、1つの位置に配置されてよく、または、複数のネットワークユニットに分散されてよい。ユニットの一部または全ては、本発明の実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に孤立して存在してよく、または、2つ以上のユニットは1つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実施されてよく、またはソフトウェア機能ユニットの形態で実施されてよい。
統合されたユニットがソフトウェア機能ユニットの形態で実施され、且つ、独立した製品として販売または使用されるとき、統合されたユニットは、コンピュータ可読記憶媒体に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体に記憶されるとともに、コンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスであってよい)に、本発明の実施形態で説明される方法のステップの全てまたは一部を実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(ROM, Read-Only Memory)、ランダムアクセスメモリ(RAM, Random Access Memory)、磁気ディスクまたは光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。
前述の説明は単に、本発明の具体的な実施形態であるが、本発明の保護範囲を限定することは意図されない。本発明で開示される技術的範囲内で当業者によって容易に理解されるいかなる修正または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
100 プロセッサ
200 メモリコントローラ
300 メモリチップ
310 リフレッシュデータ空間
410 取得ユニット
420 カプセル化ユニット
430 書き込みユニット
440 割り当てユニット
450 変換処理ユニット
510 プロセッサ
520 メモリ
530 通信インタフェース
610 リフレッシュコマンド生成モジュール
620 取得モジュール
621 クエリユニット
622 読み出しユニット
630 実行モジュール
631 受信ユニット
632 決定ユニット
633 実行ユニット
710 DRAM
720 DRAMコントローラ
本願は、2014年6月9日に中国特許庁に出願された、「METHOD AND SYSTEM FOR REFRESHING DYNAMIC RANDOM ACCESS MEMORY DRAM AND DEVICE」と題する、中国特許出願番号201410253514.8に対して優先権を主張し、その全体が参照によって組み込まれる。
本発明はコンピュータの分野に関し、詳細には、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステム、およびデバイスに関する。
既存のコンピュータシステムでは、安価で高密度のDRAM(Dynamic Random Access Memory, dynamic random access memory)は一般に、システムメインメモリとして使用され、メモリとも呼ばれる。DRAMは、キャパシタ内の電荷を使用することによってデータを記憶する。しかしながら、これらの電荷は、漏電の存在により、絶えず漏れ出ている。従って、DRAM内のデータは、漏れ出る電荷を補うために、定期的に読み出され、且つ、再書き込みされる必要があり、このような操作はリフレッシュ(Refresh)と呼ばれる。
DRAMは複数のバンク(Bank)を含み、且つ、各Bankは、2次元記憶アレイであり、ここで、水平線は行(Row)と呼ばれ、且つ、垂直線は列(Column)と呼ばれる。リフレッシュプロセスでは、DRAMは1つの行(メモリ行とも呼ばれる)を毎回選択し、行内の全てのデータをセンス増幅器(行バッファ, Row Bufferとも呼ばれる)に抽出し、このようなプロセスは、活性化(Activation)作と呼ばれる。次いで、DRAMは、行バッファ内で、対応するデータの読み出しおよび書き込みを完了し、且つ、行バッファにおけるデータは記憶アレイに再書き込みされ、このことは、プレチャージ(Pre-charge)作と呼ばれる。活性化操作およびプレチャージ操作によって、リフレッシュプロセス全体が実施される。DRAMリフレッシュは、コンピュータシステムに対して比較的大きなオーバヘッドを引き起こす。DRAMは、リフレッシュプロセスにおいて、正常なメモリアクセス要求に応答することはできないため、性能オーバヘッドが引き起こされ、そのうえ、リフレッシュ操作は電力消費操作であり、このことはエネルギー消費オーバヘッドを引き起こす。
既存のリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、DRAM内の全ての行をリフレッシュすることである。
本発明を完成するプロセスにおいて、従来技術は、DRAMの容量は連続的に増加するため、同じ周期を使用することによって全てのメモリ行をリフレッシュする方式は、ますます大きな性能オーバヘッドおよびエネルギー消費オーバヘッドを有し、このことは、システムのエネルギー効率に著しく影響を与えるという問題を有すると分かった。
これに基づいて、本発明の実施形態は、リフレッシュプロセスにおけるオーバヘッドを有効に低減するために、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステム、およびデバイスを提供する。
本発明の実施形態の第1の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するステップであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップであって、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である、ステップとを含む。
第1の態様を参照すると、第1の可能な実施方式では、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップの前に、方法は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるステップをさらに含む。
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するステップの前に、方法は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するステップをさらに含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
本発明の実施形態の第2の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、且つ、装置は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニットであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニットと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニットと、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニットであって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニットとを含む。
第2の態様を参照すると、第1の可能な実施方式では、装置は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニットをさらに含む。
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニットをさらに含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
本発明の実施形態の第3の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、ここで、処理装置は、
プロセッサ、メモリ、通信インタフェースおよびバスを含み、ここで、プロセッサ、メモリおよび通信インタフェースは、バスを使用することによって通信を実行し、
メモリは、プログラムを記憶するように構成され、
通信インタフェースは、DRAMと通信するように構成され、
処理装置が動作しているとき、プロセッサは、第1の態様または第1の態様の可能な実施方式のうちのいずれか1つに記載の方法を実行するために、メモリに記憶されたプログラムを実行するように構成される。
本発明の実施形態の第4の態様は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するステップであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、ステップと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するステップとを含む。
第4の態様を参照すると、第1の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定し、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップを含む。
第4の態様または第4の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュデータ空間は、DRAM内に事前に設定された、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、且つ、方法は、
リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップをさらに含む。
第4の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップの後、方法は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するステップと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するステップと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するステップ、または
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するステップとをさらに含む。
本発明の実施形態の第5の態様は、DRAMコントローラを提供し、且つ、DRAMコントローラは、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュールであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュールと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュールであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュールと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュールとを含む。
第5の態様を参照すると、第1の可能な実施方式では、取得モジュールは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニットと、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニットとを含む。
第5の態様または第5の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得モジュールは、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
第5の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、実行モジュールは、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニットと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニットと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニットとを含む。
本発明の実施形態の第6の態様はダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするためのシステムを提供し、ここで、システムは、少なくとも1つのリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)と、第5の態様または第5の態様の可能な実施方式のうちのいずれか1つに記載のDRAMコントローラとを含む。
本発明の実施形態で提供されるダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法およびシステムおよびデバイスによると、DRAM内のリフレッシュユニットのリフレッシュ情報が取得され、ここで、リフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含み、且つ、リフレッシュ情報は、DRAM内の、1個の事前に設定された記憶空間、すなわちリフレッシュデータ空間に書き込まれ、DRAM内のリフレッシュユニットをリフレッシュするプロセスでは、DRAMコントローラは、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットに対応するリフレッシュ情報を読み出し、且つ、リフレッシュ情報を使用することによって、対応するリフレッシュユニットに対してリフレッシュ操作を実行する。前述の方式によって、DRAM容量が連続的に増加する場合、一方では、リフレッシュユニットのリフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期に従って実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避し、且つ、他方では、リフレッシュユニットのリフレッシュ情報はDRAM空間に記憶され、その結果、DRAMの記憶容量が連続的に増加する場合、リフレッシュ情報のデータ量における増加から生じる記憶空間に対する要件が満たされることができる。
本発明の実施形態における技術的解決手段をより明確に説明するために、以下では、実施形態を説明するために必要とされる添付図面を簡潔に導入する。明らかに、以下の説明における添付図面は単に、本発明のいくつかの実施形態を示し、且つ、当業者は、創造的努力無しにこれらの添付図面から他の図面をさらに導出することができる。
図1は、本発明の実施形態が基づくシステムアーキテクチャの図である。 図2Aは、本発明に係る方法の実施形態1の第1の実施方式のフローチャートである。 図2Bは、本発明に係る方法の実施形態1の第2の実施方式のフローチャートである。 図2Cは、本発明に係る方法の実施形態1のステップ230の第1の実施方式のフローチャートである。 図2Dは、本発明に係る方法の実施形態1のステップ230の第2の実施方式のフローチャートである。 図3Aは、本発明に係る方法の実施形態2のフローチャートである。 図3Bは、本発明に係る方法の実施形態2のステップ330の実施方式のフローチャートである。 図3Cは、本発明に係る方法の実施形態2の追加のステップの実施方式のフローチャートである。 図4は、本発明に係るデバイスの実施形態1の構成図である。 図5は、本発明に係るデバイスの実施形態2の構成図である。 図6Aは、本発明に係るデバイスの実施形態2の構成図である。 図6Bは、本発明に係るデバイスの実施形態2における取得モジュールの実施方式の構成図である。 図6Cは、本発明に係るデバイスの実施形態2における実行モジュールの実施方式の構成図である。 図7は、本発明のシステムの実施形態のネットワーキング接続図である。
以下では、本発明の実施形態における技術的解決手段を、本発明の実施形態における添付図面を参照して、明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく一部である。創造的努力無しに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
以下の説明はDRAMデバイスに集中するが、当業者は、本発明は、複数のユニットを含むとともに、それらの内容を確保するために、規則的な間隔でリフレッシュされるか、または別の方式で維持される必要がある任意のタイプの記憶デバイスに適用されることができることを理解する。当業者はまた、以下の説明は、記憶ユニットが2次元行列アレイに組織される記憶デバイスに集中するが、記憶ユニットは、複数のバンク(Bank)に組織されることおよびインタリーブされるかまたはインタリーブされないこと、2次元よりも多いアレイに組織されること、アドレス指定可能な内容に組織されること等を含む、複数の方式で組織されてよいことを理解する。加えて、以下の議論の少なくとも一部はコンピュータシステム内のメモリに集中するが、当業者は、主張される本発明は、メモリデバイスを有する別の電子デバイスまたはシステムと組み合わせて実施されてよいことを理解する。
本発明の実施形態のシステムアーキテクチャ
図1は、本発明の実施形態に係るメモリリフレッシュシステムの概略ネットワーキング図を示す。メモリリフレッシュシステムは、プロセッサ100、メモリコントローラ200およびメモリチップ300を含む。プロセッサ100は、メモリコントローラ200を使用することによって、メモリチップ300からデータを読み出すとともにメモリチップ300にデータを書き込む。具体的な実施中、プロセッサ100およびメモリコントローラ200は、同じチップに統合されてよく、または、2つの異なるチップによって別々に実施されてもまたよい。
メモリチップ300では、1個の記憶空間は、リフレッシュデータ空間310として事前に設定され、且つ、リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリをアプリケーションプログラムに割り当てるとき、オペレーティングシステムは前述の領域を割り当てることはできない。
メモリチップ300は一般に、DRAMチップによって実施され、且つ、メモリチップ300がDRAMチップによって実施されるとき、メモリコントローラ200は、DRAMコントローラによって実施されてよい。
本発明の実施形態
現在、メモリの記憶容量における連続的な増加によって、メモリリフレッシュの性能オーバヘッドおよび電力消費オーバヘッドを低減する方法が課題となっている。
業界で一般に使用されるリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、メモリ内の全ての行をリフレッシュすることである。具体的には、以下のような2つのリフレッシュ方式がある:
(1) AR(Auto Refresh, auto refresh)方式:計数器RACはメモリチップ内で維持されるとともに、次のリフレッシュされるべき行を指示する。メモリコントローラはtREFI時間の間隔でリフレッシュコマンドを送信し、且つ、メモリチップがコマンドを受信した後、リフレッシュ操作は、全てのBank内で、RACによって指示された行のグループ(行の数は、メモリチップの密度によって決定される)に対して同時に実行される。リフレッシュ操作の持続時間はtRFCであり、この期間中、メモリチップは通常のメモリアクセス要求に応答することはできない。tRFC時間の後、メモリチップは、計数器の値を更新するとともに、計数器に、リフレッシュされるべき行の次のグループを指示させる。
(2) ROR(RAS-Only Refresh)方式:メモリコントローラは、行のデータのリフレッシュを完了するために、行アドレスストローブ(RAS, Row Address Strobe)コマンドを送信するとともに、メモリから1つの行内のデータを行バッファに抽出し、次いで、行のデータは、次のプレチャージコマンドによって、記憶ユニットに再書き込みされる。この場合、メモリコントローラは、その中で計数器RACを維持するとともに、RASコマンドを周期的に送信する。このようなリフレッシュ方式では、1つの行のみが毎回リフレッシュされ、且つ、行がリフレッシュされるとき、他のBankは依然としてアクセスされることができる。
前述のAR方式では、リフレッシュの粒度は比較的大きく、且つ、各行の平均のリフレッシュオーバヘッドは比較的小さく、しかしながら、メモリ内のいくつかの行が無効データを記憶するか(すなわち、無効データはリフレッシュされる必要がない)、または、非クリティカルなデータを記憶する(非クリティカルなデータは比較的高い頻度でリフレッシュされる必要がない)とき、前述のAR方式のオーバヘッドは比較的大きい。ROR方式では、リフレッシュの粒度は比較的小さく、且つ、リフレッシュされるべき行はメモリコントローラによって指定され、このことは、メモリコントローラが柔軟な制御を行うことを可能にし、しかしながら、ROR方式における各行の平均のリフレッシュオーバヘッドは比較的大きい。
前述の方式では、リフレッシュされるべきデータの各行は、リフレッシュユニット(Refresh Unit)を構成する。具体的な実施では、リフレッシュユニットは1つのメモリ行であってよく、または、複数のメモリ行であってよく、または、メモリ行よりも小さい粒度であってよく、このことは、本発明のいずれの実施形態においても限定されない。
メモリデータをリフレッシュする効率を改善するとともにリフレッシュオーバヘッドを低減するために、各リフレッシュユニットのリフレッシュパラメータは、以下の3つのパラメータを使用することによって決定されてよい:
(1) データ保持時間:データ保持時間は、T0によって表されるとともに、リフレッシュユニットの事前に設定されたリフレッシュ周期である。例えば、リフレッシュユニットが64ミリ秒の間隔でリフレッシュされる場合、事前に設定されたリフレッシュ周期T0 = 64 msである。
(2) データ有効性:データ有効性はμによって表されるとともに、リフレッシュユニットに記憶されたデータの有効性を測定するために使用される。リフレッシュユニットに記憶されたデータが有効データである場合、μ=1であり、且つ、リフレッシュユニットに記憶されたデータが無効データである場合、μ=0である。データ有効性は、オペレーティングシステムによって決定される。
(3) データクリティカル性:データクリティカル性は、λによって表されるとともに、リフレッシュユニットに記憶されたデータのクリティカル性を測定するために使用される。データクリティカル性のレベルによると、リフレッシュユニットに記憶されたデータのデータクリティカル性の値の範囲は0<λ≦1である。データクリティカル性はオペレーティングシステムによって設定されてよく、または、データクリティカル性はユーザによって設定されてオペレーティングシステムに通知されてよい。
リフレッシュ周期=事前に設定されたリフレッシュ周期*データ有効性/データクリティカル性という関係は、リフレッシュユニットのリフレッシュ周期と前述の3つのパラメータとの間に存在し、このことは、記号を使用することによって、リフレッシュ周期T=T0*μ/λ(これは、μ≠0である場合に適用可能である)のように表現される。リフレッシュユニットのリフレッシュデータが無効データであるとき、この場合、リフレッシュユニットのリフレッシュ周期は無限であり、すなわち、リフレッシュユニットはリフレッシュされないことは留意されるべきである。
説明は、1のデータクリティカル性を有する有効データを記憶するリフレッシュユニットについては、リフレッシュユニットのリフレッシュ周期= T0*1/1 = Tであり、非クリティカルな有効データを記憶するリフレッシュユニットについては、データクリティカル性λ(ここで、0<λ≦1)は、オペレーティングシステムによって設定されたデータクリティカル性に従って決定されてよく、且つ、システムによって選択された事前に設定されたリフレッシュ周期と調整因子との積、すなわち、T0*(1/λ)を使用することによって、リフレッシュが実行されるという例を使用することによって提供される。
例として、リフレッシュユニットについては、リフレッシュユニットのデータ保持時間T0(すなわち、事前に設定されたリフレッシュ周期)は64ミリ秒であり、データ有効性μは1であり、データクリティカル性λは0.5であり、従って、前述の計算式に従って、リフレッシュユニットのリフレッシュ周期が64*2(milliseconds)であると決定される。
例として、1つの情報記憶フォーマットを使用することによって、異なるデータクリティカル性を有するリフレッシュユニットのリフレッシュ情報が表1を使用することによって表現されることができる。以下の表では、1つのリフレッシュユニットのリフレッシュ情報は、4bitを使用することによって表されてよい。リフレッシュ情報を表すためにいくつのbitが使用されるかは、ユーザ定義の設定に基づくことは留意されるべきである。より多くのbitによって、リフレッシュ周期のより多くのオプションが表されることができる。当業者のために、リフレッシュ情報を表すためのbitの数は具体的なリフレッシュ要件に従って選択され、このことは、本発明のいずれの実施形態においても限定されない。以下の表1は単に、説明のための例として使用される。
以下の表1から、4bitを使用することによって表されるリフレッシュ情報は、リフレッシュユニットに対応するリフレッシュ周期を実際に含むことがわかる。
Figure 2017521808
方法の実施形態1
図2Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法を提供する。方法のプロセスは以下の通りである:
210: DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得し、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む。
具体的には、この方法の実施形態は、オペレーティングシステムによって実行されてよい。
リフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスであってよく、または、リフレッシュユニットの仮想アドレスであってよい。
従来技術では、リフレッシュ情報は、多くの取得方式で取得されてよい。例えば、ソフトウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、ページ割り当て/解放に対する監視またはユーザのマークによって決定されてよく、且つ、ハードウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、データへの最近のアクセスの履歴等によって決定されてよい。このことは、本発明の本実施形態では詳細には説明されない。
具体的には、DRAM内のリフレッシュユニットのリフレッシュ情報を取得するステップの前に、方法は、データ保持時間、データ有効性およびデータクリティカル性等の、リフレッシュユニットのパラメータを、リフレッシュユニットのリフレッシュ情報に変換するステップをさらに含む。具体的な変換プロセスについては、前述の表1における関連する説明に対して参照が行われてよい。
リフレッシュユニットの前述のリフレッシュ情報に含まれる情報は、リフレッシュユニットのリフレッシュ周期である。
230: リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込み、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である。
具体的には、オペレーティングシステムは、既存のDRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込んでよい。
さらに、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップ230の前に、図2Bを参照すると、方法は以下をさらに含む:
220: DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てる。
ステップ220とステップ210との間に厳密な順序的な関係はないことは留意されるべきである。具体的な実施プロセスでは、ステップ210が最初に実行されてよいとともに、次いで、ステップ220が実行され、または、ステップ220が最初に実行されてよいとともに、次いで、ステップ210が実行され、このことは、本発明の本実施形態では限定されない。
DRAM内で、1個の記憶空間をリフレッシュデータ空間として割り当てる前述のステップ220は、以下の方式を使用することによって実施されてよい:
(1) オペレーティングシステムは、メモリ空間にリフレッシュ情報を記憶するための領域を適用するとともに、領域のアドレス範囲をメモリコントローラに通知する。
(2) BIOS(Basic Input/Output System, すなわち、basic input/output system)は、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムおよびメモリコントローラに通知する。
(3) メモリコントローラは、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムに通知する。
リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリがアプリケーションプログラムに割り当てられるとき、オペレーティングシステムは前述の領域を割り当てることはできない。
リフレッシュユニットのアドレスおよびリフレッシュユニットのリフレッシュ情報はリフレッシュデータ空間に書き込まれ、且つ、このようにして、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係がリフレッシュデータ空間内に確立されることは留意されるべきである。例えば、リフレッシュデータ空間の構造は表2に示される(ここで、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係をテーブルの形態で記憶することは、単に1つの実施方式であり、且つ、本発明の本実施形態は、他の実施方式を排除しないことは理解されることができる)。
Figure 2017521808
さらに、異なる具体的な実施プロセスに従って、ステップ230を実行するプロセスには2つの実施方式がある:
方式1:この方式は、ステップ231からステップ232の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含む。図2Cを参照すると、ステップ230の具体的なプロセスは以下である:
231: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
232: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
具体的には、前述の実施プロセスでは、オペレーティングシステムが、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とを取得するとき、オペレーティングシステムは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込んでよい。
方式2:この方式は、ステップ233からステップ235の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含む。図2Dを参照すると、ステップ230の具体的なプロセスは以下である:
233: ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換する。
234: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
235: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
具体的には、前述の実施プロセスでは、リフレッシュユニットのリフレッシュ情報とリフレッシュユニットの仮想アドレスとがユーザモードアプリケーションを使用することによって取得される。この場合、ユーザモードアプリケーションは、リフレッシュユニットの仮想アドレスとリフレッシュユニットのリフレッシュ情報とをオペレーティングシステムに送信し、且つ、オペレーティングシステムは、リフレッシュユニットの仮想アドレスに従って、且つ、ページテーブル(Page Table)に問い合わせることによって、リフレッシュユニットの物理アドレスを取得するとともに、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法の前述の実施形態によると、リフレッシュ情報は、既存のDRAMアクセス要求を使用することによって、DRAM内の前もって割り当てられたリフレッシュデータ空間に書き込まれることができ、その結果、方法は、リフレッシュ情報のための記憶空間を連続的に拡張するという要件を満たすことができ、ここで、要件は、DRAMの記憶容量における連続的な増加から生じる。さらに、リフレッシュ情報の記憶は、既存のDRAMアクセス要求を使用することによって実施され、このことは、単純で且つ実用的な実施の解決手段である。
方法の実施形態2
図3Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法を提供する。この方法の実施形態はメモリコントローラによって実行され、且つ、そのプロセスは以下である:
310: DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成し、ここで、リフレッシュコマンドは、リフレッシュユニットを指す物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である。
具体的には、メモリコントローラは、リフレッシュコマンドを周期的に生成し、且つ、リフレッシュコマンドはリフレッシュされるべきユニットの物理アドレスを含む。
330: リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、リフレッシュユニットのリフレッシュ情報を読み出し、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む。
350: リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行する。
具体的には、メモリコントローラが、リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するとき、表2を参照して、異なるリフレッシュ情報に対して、メモリコントローラは異なるリフレッシュ操作を実行する:
(1) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が0である場合、リフレッシュ情報に対応するリフレッシュユニットに記憶されたデータは無効データであると示し、且つ、メモリコントローラはリフレッシュコマンドを破棄する。
(2) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が1であり、且つ、リフレッシュ周期識別子がabcである場合(ここで、a、bおよびcの全ての値が1または0である)、表2および表1における内容に従って、リフレッシュユニットのリフレッシュ周期が決定され、且つ、リフレッシュユニットは、リフレッシュ周期に従ってリフレッシュされる。
さらに、図3Bを参照すると、リフレッシュユニットの物理アドレスに従って、リフレッシュデータ空間から、リフレッシュユニットに対応するリフレッシュ情報を読み出す前述のステップ330は以下を含む:
331: リフレッシュユニットの物理アドレスに従って、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係を問い合わせ、リフレッシュユニットのリフレッシュ情報を決定する。
332: リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
リフレッシュユニットの物理アドレスに従って、メモリコントローラは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
さらに、リフレッシュデータ空間は、DRAM内で事前に設定され、且つ、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、方法はさらに以下を含む:
340:リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得する。
DRAMデータの読み出し/書き込み粒度は比較的大きく、これは一般に64バイトであり、前述の実施形態に従って、1つのリフレッシュユニットのリフレッシュ情報の記憶は、4個のビットを使用することによって表され、且つ、従って、DRAMは128個のリフレッシュユニットのリフレッシュ情報を一度に読み出すことは留意されるべきである。
さらに、リフレッシュデータ空間から、リフレッシュユニットの後にある複数のリフレッシュユニットのリフレッシュ情報を読み出すステップの後、図3Cを参照すると、方法は以下をさらに含む:
341: リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信する。
342: 複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定する。
343: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行する。
344: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行する。
具体的な実施プロセスでは、リフレッシュ操作が、Auto Refresh方式を使用することによって複数の連続するリフレッシュユニットに対して実行されるとき、メモリコントローラは、サイレントリフレッシュ(silent refresh)コマンドをDRAMにさらに送信する。コマンドによって、複数の連続するリフレッシュユニットをリフレッシュするプロセスでは、無効データを記憶するリフレッシュユニットはスキップされることができ、さらに、リフレッシュが実行されるアドレスについて、計数器が次のリフレッシュされるべき行を続いて指示することを確実にするために、計数器は1インクリメントされる。
Auto Refreshを使用すること、および、RAS-Only Refreshを使用することは、当業者にとって共通の知識であり、且つ、具体的な実行プロセスは、ここでは繰り返し詳細に説明されないことは留意されるべきである。
前述の実施形態では、リフレッシュデータ空間に記憶されたリフレッシュユニットのリフレッシュ情報にアクセスすることによって、リフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期を使用することによって実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避する。さらに、リフレッシュユニットのリフレッシュ情報は、既存のメモリアクセスコマンドを使用することによって、リフレッシュデータ空間から直接読み出され、その結果、リフレッシュプロセスは単純で且つ実用的である。
デバイスの実施形態1
図4を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置を提供し、且つ、装置400は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニット410であって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニット410と、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニット420と、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニット430であって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニット430とを含む。
さらに、装置400は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニット440をさらに含む。
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニット420は、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するようにさらに構成され、且つ、
書き込みユニット430は、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニット450をさらに含み、
カプセル化ユニット420は、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニット430は、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
デバイスの実施形態2
図5を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置をさらに提供し、且つ、処理装置500は、
プロセッサ510、メモリ520、通信インタフェース530およびバス540を含み、ここで、プロセッサ510、メモリ520および通信インタフェース530は、バスを使用することによって通信を実行し、
メモリ520は、プログラムを記憶するように構成され、
通信インタフェース530は、DRAMと通信するように構成され、
処理装置500が動作しているとき、プロセッサ510は、方法の実施形態1の任意の可能な実施方式に記載の方法を実行するために、メモリ520に記憶されたプログラムを実行するように構成される。
デバイスの実施形態3
図6Aを参照すると、本実施形態は、DRAMコントローラを提供し、且つ、コントローラ600は、
リフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュール610であって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュール610と、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュール620であって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュール620と、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュール630とを含む。
さらに、図6Bを参照すると、取得モジュール620は、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニット621と、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニット622とを含む。
さらに、取得モジュール620は、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
さらに、図6Cを参照すると、実行モジュール630は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニット631と、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニット632と、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニット633とを含む。
前述の実施方式では、複数の連続するリフレッシュユニットの全てがリフレッシュされる必要があるときに、Auto Refreshのリフレッシュ方式はリフレッシュオーバヘッドを低減することができるとともに比較的高い効率を有するという特徴と、RAS-Only Refreshのリフレッシュ方式は1つのリフレッシュユニットのリフレッシュに適用可能であるという特徴とを考慮すると、リフレッシュ操作が実際に実行される必要があるリフレッシュユニットの数がリフレッシュユニットの数のための閾値を超えるかどうかに従って、Auto Refresh方式またはRAS-Only Refresh方式がリフレッシュを実行するために選択され、それによって、リフレッシュの効率を改善する。
システムの実施形態
図7を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするためのシステムを提供する。システム700は、複数のリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)710とデバイスの実施形態3に記載されているようなDRAMコントローラ720とを含む。
本発明で提供されるいくつかの実施形態では、開示されるシステム、装置および方法は、他の方式で実施されてよいことは理解されるべきである。例えば、説明される装置の実施形態は単なる例示である。例えば、ユニットの分割は、単に、論理的な機能の分割であるとともに、実際の実施では他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステムに結合されるかまたは統合されてよく、または、いくつかの特徴は無視されるかまたは実行されなくてよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを介して実施されてよい。装置間またはユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
分離した部分として説明されたユニットは、物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示された部分は、物理的なユニットであってもなくてもよく、1つの位置に配置されてよく、または、複数のネットワークユニットに分散されてよい。ユニットの一部または全ては、本発明の実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に孤立して存在してよく、または、2つ以上のユニットは1つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実施されてよく、またはソフトウェア機能ユニットの形態で実施されてよい。
統合されたユニットがソフトウェア機能ユニットの形態で実施され、且つ、独立した製品として販売または使用されるとき、統合されたユニットは、コンピュータ可読記憶媒体に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体に記憶されるとともに、コンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスであってよい)に、本発明の実施形態で説明される方法のステップの全てまたは一部を実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(ROM, Read-Only Memory)、ランダムアクセスメモリ(RAM, Random Access Memory)、磁気ディスクまたは光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。
前述の説明は単に、本発明の具体的な実施形態であるが、本発明の保護範囲を限定することは意図されない。本発明で開示される技術的範囲内で当業者によって容易に理解されるいかなる修正または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
100 プロセッサ
200 メモリコントローラ
300 メモリチップ
310 リフレッシュデータ空間
410 取得ユニット
420 カプセル化ユニット
430 書き込みユニット
440 割り当てユニット
450 変換処理ユニット
510 プロセッサ
520 メモリ
530 通信インタフェース
610 リフレッシュコマンド生成モジュール
620 取得モジュール
621 クエリユニット
622 読み出しユニット
630 実行モジュール
631 受信ユニット
632 決定ユニット
633 実行ユニット
710 DRAM
720 DRAMコントローラ

Claims (18)

  1. ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理方法であって、
    DRAM内のリフレッシュユニットのアドレスと前記リフレッシュユニットのリフレッシュ情報とを取得するステップであって、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、前記リフレッシュユニットの前記リフレッシュ情報は、前記リフレッシュユニットのリフレッシュ周期を含む、ステップと、
    前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化し、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込むステップであって、前記リフレッシュデータ空間は、前記DRAM内の事前に設定された記憶空間である、ステップとを含む、方法。
  2. 前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込む前記ステップの前に、前記方法は、
    前記DRAM内で、前記事前に設定された記憶空間を前記リフレッシュデータ空間として割り当てるステップをさらに含む、請求項1に記載の方法。
  3. 前記リフレッシュユニットの前記取得されたアドレスは、前記リフレッシュユニットの物理アドレスを含み、且つ、
    前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化し、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記リフレッシュデータ空間に書き込む前記ステップは、
    前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記DRAMアクセス要求としてカプセル化し、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスおよび前記リフレッシュ情報を前記リフレッシュデータ空間に書き込むステップを含む、請求項1または2に記載の方法。
  4. 前記リフレッシュユニットの前記取得されたアドレスは、前記リフレッシュユニットの仮想アドレスを含み、且つ、
    前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化する前記ステップの前に、前記方法は、
    ページテーブルに問い合わせることによって、前記リフレッシュユニットの前記仮想アドレスを前記リフレッシュユニットの物理アドレスに変換するステップをさらに含み、且つ、
    前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化し、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記リフレッシュデータ空間に書き込む前記ステップは、
    前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記DRAMアクセス要求としてカプセル化し、前記DRAMアクセス要求を使用することによって、前記リフレッシュ情報を前記リフレッシュデータ空間に書き込むステップを含む、請求項1または2に記載の方法。
  5. ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置であって、前記装置は、
    DRAM内のリフレッシュユニットのアドレスと前記リフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニットであって、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、前記リフレッシュユニットの前記リフレッシュ情報は、前記リフレッシュユニットのリフレッシュ周期を含む、取得ユニットと、
    前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニットと、
    前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニットであって、前記リフレッシュデータ空間は、前記DRAM内の事前に設定された記憶空間である、書き込みユニットとを含む、装置。
  6. 前記装置は、
    前記DRAM内で、前記事前に設定された記憶空間を前記リフレッシュデータ空間として割り当てるように構成される割り当てユニットをさらに含む、請求項5に記載の装置。
  7. 前記取得ユニットによって取得された前記リフレッシュユニットの前記アドレスは、前記リフレッシュユニットの物理アドレスを含み、
    前記カプセル化ユニットは、具体的には、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記DRAMアクセス要求としてカプセル化するように構成され、且つ、
    前記書き込みユニットは、具体的には、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスおよび前記リフレッシュ情報を前記リフレッシュデータ空間に書き込むように構成される、請求項5または6に記載の装置。
  8. 前記取得ユニットによって取得された前記リフレッシュユニットの前記アドレスは、前記リフレッシュユニットの仮想アドレスを含み、
    前記装置は、ページテーブルに問い合わせることによって、前記リフレッシュユニットの前記仮想アドレスを前記リフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニットをさらに含み、
    前記カプセル化ユニットは、具体的には、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とを前記DRAMアクセス要求としてカプセル化するように構成され、且つ、
    前記書き込みユニットは、具体的には、前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスおよび前記リフレッシュ情報を前記リフレッシュデータ空間に書き込むように構成される、請求項5または6に記載の装置。
  9. ダイナミック・ランダム・アクセス・メモリ(DRAM)の情報をリフレッシュするための処理装置であって、前記処理装置は、
    プロセッサ、メモリ、通信インタフェースおよびバスを含み、前記プロセッサ、前記メモリおよび前記通信インタフェースは、前記バスを使用することによって通信を実行し、
    前記メモリは、プログラムを記憶するように構成され、
    前記通信インタフェースは、DRAMと通信するように構成され、
    前記処理装置が動作しているとき、前記プロセッサは、請求項1乃至4のいずれか1項に記載の前記方法を実行するために、前記メモリに記憶される前記プログラムを実行するように構成される、処理装置。
  10. ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするための方法であって、
    DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するステップであって、前記リフレッシュコマンドは、前記リフレッシュユニットの物理アドレスを含み、且つ、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間である、ステップと、
    リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を読み出すステップであって、前記リフレッシュユニットの前記リフレッシュ情報は前記リフレッシュユニットのリフレッシュ周期を含む、ステップと、
    前記リフレッシュ情報に従って、前記リフレッシュユニットに対してリフレッシュ操作を実行するステップとを含む方法。
  11. リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を読み出す前記ステップは、
    前記リフレッシュユニットの前記物理アドレスと、前記リフレッシュデータ空間に記憶された、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報との間の対応関係とに従って、前記リフレッシュユニットの前記リフレッシュ情報を決定し、前記リフレッシュデータ空間から、前記DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットの前記リフレッシュ情報を読み出すステップを含む、請求項10に記載の方法。
  12. 前記リフレッシュデータ空間は、前記DRAM内に事前に設定された、前記DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、且つ、前記方法は、
    前記リフレッシュデータ空間から、前記リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップをさらに含む、請求項10または11に記載の方法。
  13. 前記リフレッシュデータ空間から、前記リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を読み出す前記ステップの後、前記方法は、
    前記リフレッシュユニットの後にある前記複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するステップと、
    前記複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するステップと、
    リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えると決定されたとき、前記複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するステップ、または
    リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えないと決定されたとき、前記複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するステップとをさらに含む、請求項12に記載の方法。
  14. DRAMコントローラであって、前記コントローラは、
    DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュールであって、前記リフレッシュコマンドは、前記リフレッシュユニットの物理アドレスを含み、且つ、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュールと、
    リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュールであって、前記リフレッシュユニットの前記リフレッシュ情報は前記リフレッシュユニットのリフレッシュ周期を含む、取得モジュールと、
    前記リフレッシュ情報に従って、前記リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュールとを含むコントローラ。
  15. 前記取得モジュールは、
    前記リフレッシュユニットの前記物理アドレスと、前記リフレッシュデータ空間に記憶された、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報との間の対応関係とに従って、前記リフレッシュユニットの前記リフレッシュ情報を決定するように構成されるクエリユニットと、
    前記リフレッシュデータ空間から、前記DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットの前記リフレッシュ情報を読み出すように構成される読み出しユニットとを含む、請求項14に記載のコントローラ。
  16. 前記取得モジュールは、前記リフレッシュデータ空間から、前記リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される、請求項14または15に記載のコントローラ。
  17. 前記実行モジュールは、
    前記リフレッシュユニットの後にある前記複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニットと、
    前記複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニットと、
    リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えると決定されたとき、前記複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えないと決定されたとき、前記複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニットとを含む、請求項16に記載のコントローラ。
  18. ダイナミック・ランダム・アクセス・メモリ(DRAM)をリフレッシュするためのシステムであって、前記システムは、少なくとも1つのリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)と、請求項14乃至17のいずれか1項に記載のDRAMコントローラとを含むシステム。
JP2016572231A 2014-06-09 2015-06-08 ダイナミック・ランダム・アクセス・メモリ(dram)をリフレッシュするための方法およびシステム、およびデバイス Active JP6429258B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410253514.8A CN105280215B (zh) 2014-06-09 2014-06-09 动态随机存取存储器dram的刷新方法、设备以及系统
CN201410253514.8 2014-06-09
PCT/CN2015/080989 WO2015188732A1 (zh) 2014-06-09 2015-06-08 动态随机存取存储器dram的刷新方法、设备以及系统

Publications (2)

Publication Number Publication Date
JP2017521808A true JP2017521808A (ja) 2017-08-03
JP6429258B2 JP6429258B2 (ja) 2018-11-28

Family

ID=54832906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016572231A Active JP6429258B2 (ja) 2014-06-09 2015-06-08 ダイナミック・ランダム・アクセス・メモリ(dram)をリフレッシュするための方法およびシステム、およびデバイス

Country Status (10)

Country Link
US (1) US10007599B2 (ja)
EP (1) EP3142120B1 (ja)
JP (1) JP6429258B2 (ja)
KR (2) KR20160148700A (ja)
CN (2) CN105280215B (ja)
CA (1) CA2949282C (ja)
MX (1) MX357812B (ja)
RU (1) RU2665883C2 (ja)
SG (1) SG11201609766RA (ja)
WO (1) WO2015188732A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105552735A (zh) * 2016-01-29 2016-05-04 成都绿迪科技有限公司 一种开关柜
CN106297890A (zh) * 2016-07-21 2017-01-04 浪潮电子信息产业股份有限公司 一种内存目标刷新参数的确定方法及装置
GB2560968B (en) * 2017-03-30 2020-07-29 Advanced Risc Mach Ltd Control of refresh operation for memory regions
CA3058778C (en) * 2017-04-14 2023-02-21 Huawei Technologies Co., Ltd. Memory refresh technology and computer system
JP6780897B2 (ja) 2017-04-14 2020-11-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリリフレッシュ技術及びコンピュータシステム
TWI639920B (zh) * 2017-11-17 2018-11-01 財團法人工業技術研究院 記憶體控制器及其控制方法以及記憶體及其控制方法
CN108710584B (zh) * 2018-05-22 2021-08-31 郑州云海信息技术有限公司 一种提高tlb刷新效率的方法
US10878880B2 (en) * 2018-09-20 2020-12-29 Qualcomm Incorporated Selective volatile memory refresh via memory-side data valid indication
WO2020097868A1 (zh) * 2018-11-15 2020-05-22 华为技术有限公司 控制从动态随机存储器中预取数据的方法、装置及系统
KR20200079885A (ko) 2018-12-26 2020-07-06 한양대학교 산학협력단 리플레시 오버헤드를 줄일 수 있는 메모리 장치 및 이의 리플레시 방법
CN110187835B (zh) * 2019-05-24 2023-02-03 北京百度网讯科技有限公司 用于管理访问请求的方法、装置、设备和存储介质
CN111880732A (zh) * 2020-07-18 2020-11-03 Oppo广东移动通信有限公司 一种闪存数据刷新方法及装置
CN115148248B (zh) * 2022-09-06 2022-11-08 北京奎芯集成电路设计有限公司 基于深度学习的dram刷新方法和装置
CN117806809A (zh) * 2022-09-26 2024-04-02 华为技术有限公司 内存刷新方法和装置
CN117935874A (zh) * 2022-10-17 2024-04-26 长鑫存储技术有限公司 内存刷新参数确定、内存刷新方法、装置、介质和设备
KR102631193B1 (ko) * 2023-10-23 2024-01-31 주식회사 뷰웍스 방사선 검출기의 리프레시 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216429A (ja) * 2004-01-30 2005-08-11 Elpida Memory Inc 半導体記憶装置及びそのリフレッシュ制御方法
US20120099389A1 (en) * 2010-10-20 2012-04-26 Samsung Electronics Co., Ltd. Memory circuits, systems, and modules for performing dram refresh operations and methods of operating the same
US20120300568A1 (en) * 2011-05-25 2012-11-29 Samsung Electronics Co., Ltd. Method of Refreshing a Memory Device, Refresh Address Generator and Memory Device
US20130282973A1 (en) * 2012-04-24 2013-10-24 Sang-yun Kim Volatile memory device and a memory controller
US20140016421A1 (en) * 2012-07-12 2014-01-16 Samsung Electronics Co., Ltd. Semiconductor memory device storing refresh period information and operating method thereof
US20140241093A1 (en) * 2013-02-25 2014-08-28 Samsung Electronics Co., Ltd. Devices, systems and methods with improved refresh address generation

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102696A (ja) * 1989-09-16 1991-04-30 Nec Home Electron Ltd リフレッシュ制御装置
JP3102696B2 (ja) * 1990-09-10 2000-10-23 日本エーアールシー株式会社 被覆組成物および該組成物を用いる被覆樹脂成形品
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
US5825706A (en) * 1997-10-27 1998-10-20 Motorola, Inc. Circuit and method for retaining data in DRAM in a portable electronic device
CN1137491C (zh) * 1998-03-30 2004-02-04 西门子公司 动态随机存取存储器中的译码自动刷新模式
JP4056173B2 (ja) * 1999-04-14 2008-03-05 富士通株式会社 半導体記憶装置および該半導体記憶装置のリフレッシュ方法
JP2002373489A (ja) * 2001-06-15 2002-12-26 Mitsubishi Electric Corp 半導体記憶装置
CN1232266C (zh) * 2001-08-20 2005-12-21 赵步长 一种可用于治疗中风和胸痹的中药制剂及其制法
CN1215865C (zh) * 2003-04-09 2005-08-24 江西汇仁药业有限公司 一种补肾中药
KR100652380B1 (ko) * 2004-10-25 2006-12-01 삼성전자주식회사 버퍼를 이용하여 리프레쉬하는 메모리 장치 및 그 방법
CN101000798B (zh) * 2007-01-12 2010-05-19 威盛电子股份有限公司 存储器刷新方法及存储器刷新系统
US7590021B2 (en) 2007-07-26 2009-09-15 Qualcomm Incorporated System and method to reduce dynamic RAM power consumption via the use of valid data indicators
KR20110074285A (ko) * 2009-12-24 2011-06-30 삼성전자주식회사 부분 셀프 리프레쉬를 수행하는 반도체 메모리 장치 및 이를 구비하는 반도체 메모리 시스템
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
US9269418B2 (en) 2012-02-06 2016-02-23 Arm Limited Apparatus and method for controlling refreshing of data in a DRAM
KR20130117198A (ko) 2012-04-18 2013-10-25 삼성전자주식회사 메모리 셀의 리프레쉬 방법 및 이를 이용한 반도체 메모리 장치
WO2013183155A1 (ja) * 2012-06-07 2013-12-12 富士通株式会社 選択的にメモリのリフレッシュを行う制御装置
CN104143355B (zh) * 2013-05-09 2018-01-23 华为技术有限公司 一种刷新动态随机存取存储器的方法和装置
CN103440208B (zh) * 2013-08-12 2016-02-03 华为技术有限公司 一种数据存储的方法及装置
CN103811048B (zh) * 2014-02-26 2017-01-11 上海新储集成电路有限公司 一种混合存储器结构的低功耗刷新方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216429A (ja) * 2004-01-30 2005-08-11 Elpida Memory Inc 半導体記憶装置及びそのリフレッシュ制御方法
US20120099389A1 (en) * 2010-10-20 2012-04-26 Samsung Electronics Co., Ltd. Memory circuits, systems, and modules for performing dram refresh operations and methods of operating the same
JP2012089137A (ja) * 2010-10-20 2012-05-10 Samsung Electronics Co Ltd 半導体装置、これを含むメモリモジュール、メモリシステム及びその動作方法
US20120300568A1 (en) * 2011-05-25 2012-11-29 Samsung Electronics Co., Ltd. Method of Refreshing a Memory Device, Refresh Address Generator and Memory Device
JP2012248265A (ja) * 2011-05-25 2012-12-13 Samsung Electronics Co Ltd メモリ装置のリフレッシュ方法、リフレッシュアドレス生成器及びメモリ装置
US20130282973A1 (en) * 2012-04-24 2013-10-24 Sang-yun Kim Volatile memory device and a memory controller
JP2013229096A (ja) * 2012-04-24 2013-11-07 Samsung Electronics Co Ltd メモリ装置及びメモリコントローラ並びにメモリシステム
US20140016421A1 (en) * 2012-07-12 2014-01-16 Samsung Electronics Co., Ltd. Semiconductor memory device storing refresh period information and operating method thereof
US20140241093A1 (en) * 2013-02-25 2014-08-28 Samsung Electronics Co., Ltd. Devices, systems and methods with improved refresh address generation

Also Published As

Publication number Publication date
MX2016016024A (es) 2017-03-28
CN105280215A (zh) 2016-01-27
RU2016151308A (ru) 2018-07-17
KR102048762B1 (ko) 2019-11-26
KR20180137613A (ko) 2018-12-27
US10007599B2 (en) 2018-06-26
SG11201609766RA (en) 2016-12-29
EP3142120B1 (en) 2019-09-11
CA2949282C (en) 2018-10-23
EP3142120A4 (en) 2017-04-26
MX357812B (es) 2018-07-25
CN108231109A (zh) 2018-06-29
CA2949282A1 (en) 2015-12-17
JP6429258B2 (ja) 2018-11-28
WO2015188732A1 (zh) 2015-12-17
CN108231109B (zh) 2021-01-29
CN105280215B (zh) 2018-01-23
EP3142120A1 (en) 2017-03-15
RU2665883C2 (ru) 2018-09-04
US20170091087A1 (en) 2017-03-30
RU2016151308A3 (ja) 2018-07-17
KR20160148700A (ko) 2016-12-26

Similar Documents

Publication Publication Date Title
JP6429258B2 (ja) ダイナミック・ランダム・アクセス・メモリ(dram)をリフレッシュするための方法およびシステム、およびデバイス
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
KR102061079B1 (ko) 파일 액세스 방법 및 관련 기기
KR100429872B1 (ko) 반도체 메모리 장치의 이용 효율을 높이는 메모리 시스템및 상기 반도체 메모리 장치의 리프레쉬 방법
KR102369402B1 (ko) 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템
CN114185818B (zh) 基于扩展页表的gpu访存自适应优化方法及装置
US20160062909A1 (en) Systems and methods for accessing memory
US20130132704A1 (en) Memory controller and method for tuned address mapping
KR20160122440A (ko) 반도체 장치의 동작 방법 및 반도체 시스템
CN112506823A (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
KR20230056772A (ko) 효율적인 프로세싱 인 메모리 시스템을 위한 하드웨어-소프트웨어 협력 어드레스 맵핑 기법
CN111899774A (zh) 存储器件和包括其的系统
WO2014158177A1 (en) Shared memory system
US20100058025A1 (en) Method, apparatus and software product for distributed address-channel calculator for multi-channel memory
CN108959106B (zh) 内存访问方法和装置
CN110489061B (zh) 一种低资源消耗的trim实现方法
CN117393013B (zh) 统计应用中的高效ddr控制方法及相关装置
KR102322593B1 (ko) 메모리 액세스 제어를 위한 방법, 장치 및 전자 장치
CN107688494B (zh) 一种内存分配方法和装置
JP2011060201A (ja) メモリシステム
JPH10222459A (ja) 機能メモリとそれを用いたデータ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181024

R150 Certificate of patent or registration of utility model

Ref document number: 6429258

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