[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2018049387A - メモリシステム及びプロセッサシステム - Google Patents

メモリシステム及びプロセッサシステム Download PDF

Info

Publication number
JP2018049387A
JP2018049387A JP2016183393A JP2016183393A JP2018049387A JP 2018049387 A JP2018049387 A JP 2018049387A JP 2016183393 A JP2016183393 A JP 2016183393A JP 2016183393 A JP2016183393 A JP 2016183393A JP 2018049387 A JP2018049387 A JP 2018049387A
Authority
JP
Japan
Prior art keywords
memory
data
address
dram
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016183393A
Other languages
English (en)
Inventor
紘希 野口
Hiroki Noguchi
紘希 野口
藤田 忍
Shinobu Fujita
忍 藤田
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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2016183393A priority Critical patent/JP2018049387A/ja
Priority to US15/457,557 priority patent/US20180081801A1/en
Priority to TW106108162A priority patent/TWI612466B/zh
Priority to CN201710177591.3A priority patent/CN107844430B/zh
Publication of JP2018049387A publication Critical patent/JP2018049387A/ja
Pending legal-status Critical Current

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
    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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
    • 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/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • 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/4076Timing 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/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods

Landscapes

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

Abstract

【課題】ホストプロセッサ及びメインメモリ間のデータ転送能力を向上させるメモリシステムを提供する。【解決手段】メモリシステムは、第1のアドレスを含む第1のメモリMDと、第1のメモリMDのデータを記憶可能な第2のメモリMBと、第3のメモリMRと、第1、第2及び第3のメモリMD、MB、MRへのアクセスを制御するコントローラ14と、を備える。コントローラ14は、第1のアドレスへのアクセスを行うコマンドが発行され、そのコマンドが第1のアドレスへの書き込み動作を指示し、かつ、第1のアドレスのデータが第2及び第3のメモリMB,MRに記憶されていない場合、第1のアクセスに代えて第3のメモリMRへのアクセスを行う。【選択図】図1

Description

実施形態は、メモリシステム及びプロセッサシステムに関する。
ホストプロセッサと、メインメモリと、を含むメモリシステムにおいて、メインメモリは、例えば、DRAM(ダイナミックランダムアクセスメモリ)を備える。しかし、DRAMは、データ保持のために、定期的にリフレッシュを行わなければならない、という特質を有する。従って、DRAMをメインメモリとする場合、ホストプロセッサ及びメインメモリ間のデータ転送能力がDRAMのリフレッシュにより制限される。
米国特許出願公開第2013/0329491号明細書 米国特許出願公開第2012/0317376号明細書
実施形態は、ホストプロセッサ及びメインメモリ間のデータ転送能力を向上させる技術を提案する。
実施形態によれば、メモリシステムは、第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、を備え、前記コントローラは、前記第1のアドレスへの第1のアクセスを行うコマンドが発行され、かつ、前記第1のアドレスのデータが前記第2のメモリ内に記憶される第1の場合、前記第1のアクセスに代えて前記第2のメモリへの第2のアクセスを行い、前記コマンドが発行され、かつ、前記第1のアドレスの前記データが前記第3のメモリの第2のアドレス内に記憶される第2の場合、前記第1のアクセスに代えて前記第2のアドレスへの第3のアクセスを行い、前記コマンドが発行され、前記コマンドが前記第1のアドレスへの書き込み動作を指示し、かつ、前記第1及び第2の場合以外の第3の場合、前記第1のアクセスに代えて前記第3のメモリの第3のアドレスへの第4のアクセスを行う。
メモリシステムの例を示す図。 メモリシステムの例を示す図。 メモリシステムの例を示す図。 メモリシステムの例を示す図。 3つのメモリ間でのデータ移動の例を示す図。 DRAMの例を示す図。 バッファメモリ(DRAMのセンスアンプ)の例を示す図。 リディームメモリの例を示す図。 リディームメモリのセンスアンプの例を示す図。 メモリアクセス制御(memory access controlling)の例を示すフローチャート。 図10のメモリアクセス制御を視覚化(visualize)した図。 図10のメモリアクセス制御を視覚化した図。 図10のメモリアクセス制御を視覚化した図。 比較例としてのメモリアクセス制御を示すフローチャート。 リディームメモリの空き制御(memory space controlling)の例を示すフローチャート。 図13のリディームメモリの空き制御を視覚化した図。 リディームメモリの空き制御の条件を示すフローチャート。 リディームメモリの空き制御の条件を示すフローチャート。 リディームメモリからDRAMへの書き戻し動作(write back operation)の例を示すフローチャート。 第1の適用例を示す図。 第2の適用例を示す図。 第3の適用例を示す図。 第4の適用例を示す図。 LUT(バッファメモリヒットテーブル)の例を示す図。 LUT(リディームメモリヒットテーブル)の例を示す図。 LUT(リディームメモリヒットテーブル)の例を示す図。
以下、図面を参照しながら実施例を説明する。
(メモリシステム)
図1乃至図4は、メモリシステムの例を示している。
本実施例が適用されるメモリシステムは、プロセッサ(ホスト)10と、メインメモリ11と、を備える。
メモリシステムは、例えば、パーソナルコンピュータ、携帯端末を含む電子機器、デジタルスチルカメラ及びビデオカメラを含む撮像装置、タブレットコンピュータ、スマートフォン、ゲーム機器、カーナビゲーションシステム、プリンタ機器、スキャナ機器や、サーバーシステムなど、である。
図1の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、コントローラ14と、を備え、かつ、コントローラ14は、LUT(look-up table)15を備える。また、メインメモリ11は、DRAM Mと、バッファメモリMと、リディームメモリ(redeem memory)Mと、を備える。
図2の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、コントローラ14と、を備え、かつ、コントローラ14は、LUT15と、リディームメモリMと、を備える。また、メインメモリ11は、DRAM Mと、バッファメモリMと、を備える。
図3の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、を備える。また、メインメモリ11は、DRAM Mと、バッファメモリMと、リディームメモリMと、を備える。コントローラ14は、プロセッサ10及びメインメモリ11間に接続され、かつ、LUT15を備える。
図4の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、を備える。また、メインメモリ11は、DRAM Mと、バッファメモリMと、を備える。コントローラ14は、プロセッサ10及びメインメモリ11間に接続され、かつ、LUT15と、リディームメモリMと、を備える。
CPU12は、例えば、複数のCPUコアを備える。複数のCPUコアは、異なるデータ処理を互いに並行して行うことができる要素のことである。近年、CPUコア数の増加(例えば、8コア、16コアなど)によりプロセッサ10の処理能力が向上し、かつ、メインメモリ11のメモリ容量が増大したため(例えば、100ギガバイトなど)、プロセッサ10及びメインメモリ11間のデータ転送能力の向上が緊急の課題となっている。
キャッシュメモリ12は、この課題を解決する一つの技術である。キャッシュメモリ12は、例えば、高速アクセスが可能なSRAM(スタティックランダムアクセスメモリ)を備え、DRAM M内に記憶されたデータをキャッシュすることにより、この課題を解決する。しかし、SRAMは、待機電力が大きく、かつ、セル面積が大きいため、大容量化することができない。
そこで、本実施例のメモリシステムは、3種類のメモリ、例えば、DRAM M、バッファメモリM、及び、リディームメモリMを備える。
DRAM Mは、メインメモリ11におけるデータの正式な格納場所である。バッファメモリM及びリディームメモリMは、プロセッサ10がDRAM M内に記憶されたデータに高速アクセスするための要素である。
バッファメモリMは、例えば、SRAMである。バッファメモリMは、例えば、DRAM Mのセンスアンプとして機能する。
DRAM M及びバッファメモリMは、以下の特徴を有する。
DRAM Mへのアクセスは、メモリセルアレイ内の1つのロウをアクティベート(activate)することにより行う。1つのロウをアクティベートするとは、1つのロウ、即ち、1本のワード線に接続されるメモリセル内の選択トランジスタをオンにすることを意味する。1つのロウをアクティベートする動作は、例えば、ロウオープン動作(row-open operation)又はページオープン動作(page-open operation)と称される。また、アクティベートされた1つのロウは、例えば、オープンロウ(opened row)又はオープンページ(opened page)と称される。
一方、DRAM Mにおいて、1つのロウをデアクティベート(deactivate)するとは、1つのロウ、即ち、1本のワード線に接続されるメモリセル内の選択トランジスタをオフにすることを意味する。1つのロウをデアクティベートする動作は、例えば、ロウクローズ動作(row-close operation)又はページクローズ動作(page-close operation)と称される。また、デアクティベートされた1つのロウは、例えば、クローズロウ(closed row)又はクローズページ(closed page)と称される。1つのロウがデアクティベートされた状態では、次のアクセスに備えて、ビット線のプリチャージ動作などが行われる。
バッファメモリMは、例えば、DRAM Mのアクティベートされた1つのロウ内の複数のメモリセル(1本のワード線に接続される複数のメモリセル)内に記憶されるデータ(以下、ページデータと称する)を記憶可能である。バッファメモリMは、プロセッサ10内のキャッシュメモリ(例えば、L1〜L3キャッシュ)13のメモリ階層と、メインメモリ11内のDRAM Mのメモリ階層と、の間のメモリ階層を有するキャッシュメモリとして機能する。
例えば、プロセッサ10は、アクセス対象となるデータがバッファメモリM内に記憶されている場合(バッファメモリヒットの場合)、DRAM Mにアクセスすることなく、バッファメモリMにアクセスすることにより、メインメモリ11へのアクセスを高速化する。
リディームメモリMは、アクセス対象となるデータがバッファメモリM内に記憶されていない場合(バッファメモリミスの場合)でも、DRAM Mにアクセスすることなく、即ち、DRAM Mにおいてページオープン/クローズ動作(ロウオープン/クローズ動作)を行うことなく、アクセス対象となるデータの読み出し/書き込み動作を可能とする要素である。
例えば、バッファメモリミスの場合、一般的には、DRAM Mにおいて、まず、ページクローズ動作を行い、この後、アクセス対象となる新たなページ(ロウ)をアクセスするためにページオープン動作を行わなければならない。しかし、このようなページオープン/クローズ動作は、メインメモリ11へのアクセスを遅くする。
そこで、バッファメモリミスの場合であっても、アクセス対象となるデータがリディームメモリM内に記憶されている場合(リディームメモリヒットの場合)には、DRAM Mへのアクセスを先延ばしし、即ち、DRAM Mにおいてページオープン/クローズ動作(ロウオープン/クローズ動作)を先延ばしし、現時点では、アクセス対象となるデータの読み出し/書き込み動作をリディームメモリMにおいて実行可能とする。
また、書き込み動作において、バッファメモリミスの場合で、かつ、アクセス対象となるデータがリディームメモリM内に記憶されていない場合(リディームメモリミスの場合)にも、現時点では、書き込みデータをリディームメモリMに記憶させることにより、DRAM Mへのアクセス、即ち、DRAM Mにおけるページオープン/クローズ動作(ロウオープン/クローズ動作)を先延ばしすることができる。
リディームメモリMは、バッファメモリMのメモリ階層と同じメモリ階層を有する。即ち、リディームメモリMは、バッファメモリMと同様に、プロセッサ10内のキャッシュメモリ13のメモリ階層と、メインメモリ11内のDRAM Mのメモリ階層と、の間のメモリ階層を有するキャッシュメモリとして機能する。
リディームメモリMのメモリ階層とバッファメモリMのメモリ階層は、同じであるため、プロセッサ10が管理する同一アドレスのデータがこれら2つのメモリ内に同時期に記憶されることはない。
即ち、メインメモリ11におけるデータの正式な格納場所であるDRAM M及びキャッシュメモリとしてのバッファメモリMの両者、又は、メインメモリ11におけるデータの正式な格納場所であるDRAM M及びキャッシュメモリとしてのリディームメモリMの両者が、同時期に、同一アドレスのデータを記憶することはあっても、リディームメモリM及びバッファメモリMの両者が、同時期に、同一アドレスのデータを記憶しない。
リディームメモリMは、メインメモリ11内のキャッシュメモリとして機能するため、高速アクセスが可能なメモリであるのが望ましい。また、リディームメモリMは、後述するメモリアクセス制御の関係上、バッファメモリMのメモリ容量よりも大きなメモリ容量を有しているのが望ましい。さらに、メモリシステムの低消費電力化を図り、かつ、リフレッシュなどによるアクセス制限を無くすため、リディームメモリMは、不揮発性メモリ、又は、非常に長いデータリテンションタイムを有する揮発性メモリであるのが望ましい。
そのようなメモリとしては、例えば、MRAM(マグネティックランダムアクセスメモリ)、ReRAM(抵抗変化メモリ)など、の不揮発性RAM、又は、メモリセル内の選択トランジスタのチャネルを酸化物半導体(例えば、IGZOなど)としたDRAM(ULR DRAM: Ultra Long Retention DRAM)がある。
バッファメモリM内に記憶されるページデータは、例えば、書き込み動作において、バッファメモリヒットである場合に更新される。従って、バッファメモリM内のページデータは、例えば、書き込み動作により更新される一方、正式な格納場所であるDRAM Mに書き戻されていない、いわゆるダーティーデータ(dirty data)である。
同様に、リディームメモリM内に記憶されるページデータも、例えば、書き込み動作において、リディームメモリヒットである場合に更新される。従って、リディームメモリM内のページデータも、例えば、書き込み動作により更新される一方、正式な格納場所であるDRAM Mに書き戻されていない、いわゆるダーティーデータである。
これらダーティーデータは、最終的には、正式な格納場所であるDRAM Mに書き戻し、クリーンデータ(clean data)にする。
本実施例のメモリシステムでは、例えば、図5に示すように、3種類のメモリ、即ち、DRAM M、バッファメモリM、及び、リディームメモリM間のデータの移動は、ループ状に制御される。
まず、DRAM M内のページデータは、例えば、ページオープン動作により、バッファメモリM内に移動する(図5の矢印T1)。次に、バッファメモリM内のページデータは、例えば、ページクローズ動作により、リディームメモリM内に移動する(図5の矢印T2)。最後に、リディームメモリM内のページデータは、所定時期に、DRAM M内に書き戻される(図5の矢印T3)。
リディームメモリM内のページデータをDRAM M内に書き戻す所定時期は、例えば、リディームメモリMに空きが無くなった後とする。また、リディームメモリMに空きが無くなった後であっても、直ちに、新たなページデータをリディームメモリMに書き込む必要がないときは、プロセッサ10のパフォーマンス(データ処理能力)に影響を与えないため、リディームメモリMに空きが無くなった後、所定条件を満たしたときに、リディームメモリM内のページデータをDRAM M内に書き戻す。
この所定条件は、例えば、メインメモリ11へのアクセスが一定期間無いとか、又は、DRAM Mにおいてリフレッシュが行われ、かつ、リフレッシュ対象のページがリディームメモリM内に存在するとか、である。
リディームメモリM内のページデータをDRAM M内に書き戻す所定時期は、上記以外に、例えば、プロセッサ10内でのデータ処理量が少ない時期としてもよい。そのような時期は、プロセッサ10及びメインメモリ11間のデータ転送量も少なく、DRAM M内でのページオープン/クローズ動作がプロセッサ10のパフォーマンスに影響を与えることがないからである。
そのような時期は、例えば、プロセッサ(複数のCPUコア)10が低消費電力モードに入った後であるとか、プロセッサ10内の複数のCPUコアのうち動作状態のCPUコア数が所定数以下となった後であるとか、プロセッサ(複数のCPUコア)10の最大データ処理量を100%としたときに現在のデータ処理量が所定%以下であるとか、又は、メモリシステム(DRAM M)の電源を遮断するなど、DRAM Mのデータをストレージデバイス(HDD、SSDなど)に書き戻す必要性が生じた後とか、である。
DRAM Mのデータをストレージデバイスに書き戻す必要性が生じた場合、バッファメモリM内のページデータは、ページクローズ動作によりリディームメモリM内に移動させない。この場合、バッファメモリM内のページデータは、ページクローズ動作前に、DRAM M内に書き戻される(図5の矢印T4)。また、ページクローズ動作後に、リディームメモリM内のページデータがDRAM M内に書き戻される(図5の矢印T3)。
このような一連のデータ制御によれば、例えば、プロセッサ10がデータ処理を行っている期間においては、DRAM Mでのページオープン/クローズ動作の発生が抑制される。従って、その期間において、プロセッサ10及びメインメモリ11間のデータ転送能力が向上し、メモリシステムのパフォーマンスが向上する。
以上のデータ制御は、コントローラ14により制御される。コントローラ14は、このようなデータ制御を行うため、有効データが何処にあるかを示すLUT15を備える。LUT15は、プロセッサ10内のRAMに記憶しておき、そこから取得してもよいし、又は、DRAM M内に記憶しておき、そこから取得してもよい。コントローラ14によるデータ制御の具体例は、後述する。
(DRAM)
図6は、DRAMの例を示している。
DRAM Mは、アレイ状に配置される複数のメモリセルU00〜Uijを備える。バッファメモリMは、DRAM MのセンスアンプSAである。
1つのメモリセルUijは、直列接続されるキャパシタCij及びトランジスタ(FET: Field Effect Transistor)Tijを備える。但し、iは、例えば、0,1,2,…1023であり、jは、例えば、0,1,2,…4095である。
キャパシタCijは、第1及び第2の電極を備え、トランジスタTijは、第1及び第2の端子を有する電流経路と、この電流経路のオン/オフを制御する制御端子と、を備える。トランジスタTijの第1の端子は、キャパシタCijの第1の電極に接続される。
ビット線BLは、トランジスタTijの第2の端子に接続され、第1の方向に延びる。ビット線BLは、バッファメモリM、即ち、センスアンプSAに接続される。ワード線WLは、トランジスタTijの制御端子に接続され、第1の方向に交差する第2の方向に延びる。キャパシタCijの第2の電極は、例えば、接地電位Vssに設定される。
ワード線WLに接続される複数のメモリセルUi0〜Uijは、1つのグループ、例えば、ページPG内に属する。ページPG内のメモリセルUi0〜Uijに記憶されるデータは、ページデータである。また、DRAM Mにおいて、ページオープン/クローズ動作は、ページ単位で行われる。
複数のセンスアンプSA〜SAは、複数のカラムCoL〜CoLに対応して設けられる。
このようなDRAM Mにおいて、書き込み動作は、例えば、ビット線BLをプリチャージ電位(例えば、Vdd/2)から書き込みデータの値に応じた電位に変化させることにより行う。
例えば、メモリセルUijに1ビットデータ(0又は1)を書き込む場合、書き込みデータが0のときは、センスアンプSAからビット線BLに接地電位Vssを転送し、書き込みデータが1のときは、センスアンプSAからビット線BLに電源電位Vddを転送すればよい。
また、読み出し動作は、例えば、ビット線BLをプリチャージ電位(例えば、Vdd/2)、かつ、フローティングとすればよい。この場合、ワード線WLをアクティブにすると、メモリセルUij内に記憶されたデータ、即ち、キャパシタCijに蓄積された電荷量に応じてビット線BLの電位が変化する。
メモリセルUij内に記憶されたデータ(読み出しデータ)は、このビット線BLの電位変化をセンスアンプSAによりセンスすることにより、検出できる。
図7は、バッファメモリの例を示している。
バッファメモリMは、DRAM MのセンスアンプSAである。
メモリセルUij、キャパシタCij、トランジスタTij、ワード線WL、及び、ビット線BLは、それぞれ、図6に示すメモリセルUij、キャパシタCij、トランジスタTij、ワード線WL、及び、ビット線BLに対応する。
preは、読み出し/書き込み動作(ページクローズ動作)において、プリチャージ電位Vpreをビット線BLに印加するためのトランジスタ(例えば、NチャネルFET)である。例えば、読み出し/書き込み動作では、制御信号φpreがアクティブ(例えば、ハイレベル)になると、トランジスタQpreがオンとなり、Vpre=Vdd/2がビット線BLjに転送される。制御信号φpreがノンアクティブ(例えば、ロウレベル)になると、トランジスタQpreは、オフとなる。
clampは、読み出し/書き込み動作において、ビット線BLjをセンスアンプSAに電気的に接続するためのスイッチ素子(クランプ回路)として機能する。Qclampは、例えば、NチャネルFETである。読み出し/書き込み動作において、制御信号φclampがアクティブになると、トランジスタQclampがオンとなり、ビット線BLjとセンスアンプSAが電気的に接続される。制御信号φclampがノンアクティブになると、トランジスタQclampは、オフとなる。
センスアンプSAは、SRAM、即ち、フリップフロップ接続される2つのインバータ回路を備える。制御信号(センスアンプイネーブル信号)φSEがアクティブになると、センスアンプSAが動作状態になる。また、制御信号φSEがノンアクティブになると、センスアンプSAが非動作状態になる。
センスアンプSAは、2つの入出力ノードS1,S2を備える。読み出し/書き込みデータは、例えば、入出力ノードS1から入出力される。
eqは、2つの入出力ノードS1,S2の電位をイコライズするトランジスタ(イコライズ回路)である。Qeqは、例えば、NチャネルFETである。制御信号φeqがアクティブになると、トランジスタQeqがオンとなり、2つの入出力ノードS1,S2の電位がイコライズされる。制御信号φeqがノンアクティブになると、トランジスタQeqがオフとなる。
rstは、2つの入出力ノードS1,S2の電位をリセットするトランジスタ(例えば、NチャネルFET)である。制御信号φrstがアクティブになると、トランジスタQrstがオンとなり、2つの入出力ノードS1,S2の電位がリセットされる。制御信号φrstがノンアクティブになると、トランジスタQrstがオフとなる。
(リディームメモリ)
図8は、リディームメモリの例を示している。
本例では、リディームメモリMは、MRAMである。また、リディームメモリMのセンスアンプSAは、上述のDRAM Mと同様に、バッファメモリMとして使用可能である。但し、リディームメモリMのセンスアンプSAは、バッファメモリMとして使用しなくてもよい。
リディームメモリ Mは、アレイ状に配置される複数のメモリセルX00〜Xijを備える。1つのメモリセルXijは、直列接続される磁気抵抗効果素子MTJij及びトランジスタ(FET)Qijを備える。但し、iは、例えば、0,1,2,…1023であり、jは、例えば、0,1,2,…4095である。
磁気抵抗効果素子MTJijは、第1及び第2の電極を備え、トランジスタQijは、第1及び第2の端子を有する電流経路と、この電流経路のオン/オフを制御する制御端子と、を備える。トランジスタQijの第1の端子は、磁気抵抗効果素子MTJijの第1の電極に接続される。
ビット線BLは、磁気抵抗効果素子MTJijの第2の電極に接続され、第1の方向に延びる。ビット線BLは、バッファメモリM、即ち、センスアンプSAに接続される。ソース線SLは、トランジスタQijの第2の端子に接続され、第1の方向に延びる。ワード線WLは、トランジスタQijの制御端子に接続され、第1の方向に交差する第2の方向に延びる。
ワード線WLに接続される複数のメモリセルXi0〜Xijは、1つのグループ、例えば、ページPG内に属する。ページPG内のメモリセルXi0〜Xijに記憶されるデータは、ページデータである。
複数のセンスアンプSA〜SAは、複数のカラムCoL〜CoLに対応して設けられる。
図9は、リディームメモリのセンスアンプの例を示している。
メモリセルXij、磁気抵抗効果素子MTJij、トランジスタQij、ワード線WL、ビット線BL、及び、ソース線SLは、それぞれ、図8に示すメモリセルXij、磁気抵抗効果素子MTJij、トランジスタQij、ワード線WL、ビット線BL、及び、ソース線SLに対応する。
pre及びQclampは、図7におけるQpre及びQclampに対応する。
但し、Qpreは、読み出し動作において、プリチャージ電位Vpreをビット線BLに印加するためのトランジスタ(例えば、NチャネルFET)であり、書き込み動作においては、オフを維持する。
また、Qclampは、読み出し動作において、ビット線BLjをセンスアンプSAに電気的に接続するためのスイッチ素子(クランプ回路)として機能する。即ち、書き込み動作においては、Qclampは、オフを維持する。
センスアンプSAは、図7のセンスアンプSAと同じである。
但し、リディームメモリMのセンスアンプSAは、読み出し動作で使用し、書き込み動作で使用しない。
eq及びQrstは、図7におけるQeq及びQrstに対応する。これらトランジスタQeq,Qrstの機能は、図7におけるトランジスタQeq,Qrstの機能と同じであるため、ここでの説明を省略する。
リディームメモリMは、書き込みドライバ/シンカー16を備える。
書き込みドライバ/シンカー16は、第1のドライバ/シンカーD/S_aと、第2のドライバ/シンカーD/S_bと、を備える。
第1のドライバ/シンカーD/S_aは、制御信号φにより制御され、かつ、直列接続されるPチャネルFET Qa_p及びNチャネルFET Qa_nを備える。第2のドライバ/シンカーD/S_bは、制御信号φにより制御され、かつ、直列接続されるPチャネルFET Qb_p及びNチャネルFET Qb_nを備える。
書き込み動作において、制御信号φがアクティブになると、第1のドライバ/シンカーD/S_aがビット線BLに電気的に接続される。
例えば、“0”−書き込みでは、書き込みパルスは、制御信号φを“0”に設定し、制御信号φを“1”に設定することにより発生させる。但し、“0”は、接地電位Vssに対応し、“1”は、電源電位Vddに対応する。以下、同じ。
この場合、書き込み電流は、磁気抵抗効果素子MTJijからトランジスタTijに向かう方向に流れ、かつ、磁気抵抗効果素子MTJijは、低抵抗状態に変化する。結果として、メモリセルUijに“0”が書き込まれる。
また、“1”−書き込みでは、書き込みパルスは、制御信号φを“1”に設定し、制御信号φを“0”に設定することにより発生させる。
この場合、書き込み電流は、トランジスタTijから磁気抵抗効果素子MTJijに向かう方向に流れ、かつ、磁気抵抗効果素子MTJijは、高抵抗状態に変化する。結果として、メモリセルUijに“1”が書き込まれる。
一方、読み出し動作では、制御信号φがノンアクティブに設定され、第1のドライバ/シンカーD/S_aがビット線BLから電気的に切断される。また、制御信号φが“1”に設定される。この場合、接地電位Vssがソース線SLに印加される。
(メモリアクセス制御)
図1乃至図4のコントローラ14によるメモリアクセス制御の例を説明する。
図10は、メモリアクセス制御の例を示すフローチャートである。
まず、コントローラ14は、DRAMにアクセスするコマンドが発行されたか否かをチェックする(ステップST00)。
コントローラ14は、DRAMにアクセスするコマンドが発行されたことを確認すると、LUT15に基づいて、アクセス対象となるデータがバッファメモリ内に記憶されているか否かをチェックする(ステップST01)。
コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されていること(バッファメモリヒット)を確認すると、バッファメモリにアクセスし、読み出し/書き込み動作を実行する(ステップST02)。
例えば、図11Aに示すように、アクセス対象となるデータがロウアドレスRA_xにより指定され、かつ、ロウアドレスRA_xのデータ(ページデータ)PG_xがバッファメモリM内に読み出されている場合、バッファメモリMにアクセスし、ページデータPG_xの全て又は一部に対して読み出し/書き込み動作を実行可能である。
一方、コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されていないこと(バッファメモリミス)を確認すると、LUT15に基づいて、アクセス対象となるデータがリディームメモリ内に記憶されているか否かをチェックする(ステップST03)。
コントローラ14は、アクセス対象となるデータがリディームメモリ内に記憶されていること(リディームメモリヒット)を確認すると、リディームメモリにアクセスし、読み出し/書き込み動作を実行する(ステップST04)。
例えば、図11Aに示すように、アクセス対象となるデータがロウアドレスRA_yにより指定され、かつ、ロウアドレスRA_yのデータ(ページデータ)PG_yがリディームメモリMのロウアドレスReA_yに読み出されている場合、リディームメモリMのロウアドレスReA_yにアクセスし、ページデータPG_yの全て又は一部に対して読み出し/書き込み動作を実行可能である。
尚、ステップST01とステップST03の順序を入れ替えることも可能である。
また、コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されておらず(バッファメモリミス)、かつ、リディームメモリ内にも記憶されていないこと(リディームメモリミス)を確認すると、プロセッサからの指示が書き込み動作であるか、又は、読み出し動作であるか、をチェックする(ステップST05)。
プロセッサからの指示が書き込み動作である場合、コントローラ14は、リディームメモリにアクセスし、書き込み動作を実行する(ステップST06)。
例えば、図11Bに示すように、アクセス対象となるデータがロウアドレスRA_zにより指定され、かつ、ロウアドレスRA_zのデータ(ページデータ)PG_zがバッファメモリM及びリディームメモリMに読み出されていない場合、ロウアドレスRA_zのデータをリディームメモリMのアドレスReA_zに書き込む。
ここで、バッファメモリ及びリディームメモリにおけるデータ管理は、ページ単位、又は、マスク付きのページ単位で行う。
例えば、ページオープン動作によりDRAMからバッファメモリに読み出されたデータは、ページ単位で管理される。また、ページクローズ動作によりバッファメモリからリディームメモリに移動したデータも、ページ単位で管理される。このような経路によりバッファメモリ内又はリディームメモリ内に記憶されたページデータの全ては、有効データとして使用可能だからである。
これに対し、バッファメモリミス及びリディームメモリミスの書き込み動作において、プロセッサからリディームメモリに書き込まれたデータは、ページ単位、又は、マスク付きのページ単位で管理される。
即ち、アクセス対象となるページ(ロウ)内の全てのビットにデータを書き込む場合、リディームメモリに書き込まれるページデータの全ては、有効データである。従って、この場合、リディームメモリに書き込まれたデータは、ページ単位で管理される。
また、アクセス対象となるページ(ロウ)内の一部のビットにデータを書き込む場合、リディームメモリに書き込まれるページデータの全ては、有効データとならない。例えば、アクセス対象となるページ内の一部のビット(有効データ)がリディームメモリ内に書き込まれ、残りのビット(有効データ)は、DRAM内に存在する場合もあり得る。
従って、この場合、リディームメモリに書き込まれたデータは、マスク付きのページ単位で管理される。マスク付きのページ単位で管理するとは、ページデータの一部のビットを有効データとして管理し、残りのビットを無効データ(マスク付き)として管理することを意味する。
バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が書き込み動作である場合、リディームメモリに対する書き込み動作を終えた後、リディームメモリに空きがあるか否かをチェックする(ステップST07)。
リディームメモリに対する書き込み動作により、リディームメモリに空きがなくなった場合、リディームメモリの空き制御を実行する(ステップST08)。
リディームメモリの空き制御について図13を参照しながら説明する。
まず、DRAMがページオープン状態にあるか否かチェックする(ステップST21)。DRAMがページオープン状態にある場合、ページクローズ動作を実行する(ステップST22)。ページオープン状態のときにバッファメモリ内に記憶されていたデータ(ダーティーデータ)は、ページクローズ動作を行う前にDRAM内に書き戻される。
例えば、図14に示すように、ロウアドレスRA_xのページデータPG_xがバッファメモリMに読み出されている場合、コントローラ14は、ページデータPG_xをバッファメモリMからDRAM Mに書き戻した後、ページクローズ動作を実行する。
次に、リディームメモリから追い出す(evict)データを決める(ステップST23)。
リディームメモリから追い出すデータは、リディームメモリのロウアドレス単位、即ち、ページ単位、又は、マスク付のページ単位で行う。
例えば、コントローラ14は、リディームメモリ内に記憶されているデータの使用頻度を、リディームメモリのロウアドレス単位で管理する。使用頻度は、例えば、MRU(most recently used)や、LRU(least recently used)など、の指標を利用する。
MRUは、最近、最も使用されたデータ、即ち、最終アクセス時点から現時点までの期間(a period from a final access time to a present time)が最小であるデータを意味する。また、LRUは、最近、最も使用されなかったデータ、即ち、最終アクセス時点から現時点までの期間が最大であるデータを意味する。
コントローラ14は、例えば、LRUを含むロウアドレスに係わるデータを、リディームメモリからの追い出しの対象、即ち、リディームメモリからDRAMへの書き戻しの対象として選択する。
尚、ステップST23は、ステップST21〜ST22と並行して行ってもよいし、又は、それらのステップより前に行ってもよい。
次に、コントローラ14は、リディームメモリからの追い出しの対象となったロウアドレスのデータが1ページ全て有効であるか否かをチェックする(ステップST24)。
リディームメモリからの追い出しの対象となったロウアドレスのデータが1ページ全て有効でない場合、即ち、リディームメモリからの追い出しの対象となったロウアドレスのデータがマスク付きのページデータである場合、LUT15に基づいて、そのロウアドレスに対応するDRAMのロウアドレスをアクセスし、ページオープン動作により、DRAMからバッファメモリにページデータを読み出す(ステップST25)。
例えば、図14に示すように、追い出しの対象となったリディームメモリMのロウアドレスReA_yのデータがマスク付きのページデータであり、かつ、ロウアドレスReA_yに対応するDRAM MのロウアドレスがRA_yである場合、ロウアドレスRA_yのデータをDRAM MからバッファメモリMに読み出す。
この後、コントローラ14は、追い出しの対象となったデータを、リディームメモリからバッファメモリに移動させる(ステップST26)。
例えば、ステップST25を経由しない場合、ページデータ(有効データ)の全てがリディームメモリからバッファメモリに転送される。また、ステップST25を経由する場合、ページデータの一部(有効データ)がリディームメモリからバッファメモリに転送され、バッファメモリ内のページデータに上書きされる。
また、バッファメモリのデータは、DRAMに書き戻される。
ここで、図14に示すように、例えば、リディームメモリMからバッファメモリMへのデータの移動は、コントローラ14を経由して行うのが望ましい。
この後、ページクローズ動作が実行される(ステップST27)。
例えば、図14に示すように、コントローラ14は、ロウアドレスRA_yのデータをバッファメモリMからDRAM Mに書き戻した後、ページクローズ動作を実行する。
最後に、ステップST21においてページオープン状態であった場合、コントローラ14は、ステップST22においてクローズされたページを、再び、DRAMからバッファメモリに読み出し、リディームメモリの空き制御を実行する前の状態に戻すため、ページオープン動作を実行する(ステップST28〜ST29)。
例えば、図14に示すように、ステップST22においてクローズされたロウアドレスがReA_xである場合、コントローラ14は、ロウアドレスRA_xのページデータPG_xをDRAM MからバッフメモリMに読み出す。
以上のステップにより、リディームメモリの空き制御が完了する。
図10のメモリアクセス制御の説明に戻る。
バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が読み出し動作である場合、コントローラ14は、DRAMにアクセスし、読み出し動作を実行する(ステップST09〜ST13)。
具体的には、まず、DRAMがページオープン状態にあるか否かチェックする(ステップST09)。DRAMがページオープン状態にある場合、コントローラ14は、バッファメモリ内に読み出されているページデータをリディームに移動させる(ステップST10)。また、コントローラ14は、DRAMのロウアドレスとリディームメモリのロウアドレスとの対応関係を示すLUTを作成する。
バッファメモリのデータをリディームメモリに移動させるのは、バッファメモリに読み出されていたデータは、近いうちに、再び、アクセス対象となる可能性が高いため、DRAMに書き戻すよりは、ページオープン/クローズ動作が無い高速アクセス可能なリディームメモリに移動させるのが好都合であるからである。
コントローラ14は、ページデータをバッファメモリからリディームメモリに移動させた後、ページクローズ動作を実行する(ステップST11)。
例えば、図11Cに示すように、ロウアドレスRA_xのページデータPG_xがバッファメモリMに読み出されている場合、コントローラ14は、ページデータPG_xをバッファメモリMからリディームメモリMに移動させた後、ページクローズ動作を実行する。ページデータPG_xは、バッファメモリMから、コントローラ14を経由して、リディームメモリMのロウアドレスReA_xに書き込むのが望ましい。
次に、コントローラ14は、ページオープン動作により、アクセス対象となるDRAMのロウアドレスに係わるページデータをDRAMからバッファメモリに読み出す(ステップST12)。
例えば、図11Cに示すように、アクセス対象となるDRAMのロウアドレスがRA_yである場合、コントローラ14は、ページオープン動作により、ロウアドレスRA_yに係わるページデータPG_yをDRAM MからバッファメモリMに読み出す。
この後、コントローラ14は、バッファメモリMにアクセスし、プロセッサが必要とするデータをバッファメモリMBから読み出す(ステップST13)。
例えば、図11Cに示すように、プロセッサが必要とするデータ、即ち、アクセス対象となるデータがページデータPG_yの一部である場合、コントローラは、そのページデータPG_yの一部をバッファメモリMから読み出す。
このように、バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が読み出し動作である場合のみ、DRAMにアクセスし、ページオープン/クローズ動作が実行される。
これは、言い換えれば、それ以外の場合、即ち、バッファメモリヒット(ステップST01)、リディームメモリヒット(ステップST03)、及び、バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が書き込み動作である場合、現時点では、DRAMにおけるページオープン/クローズ動作を行わず、これらを先延ばしすることができることを意味する。
従って、プロセッサがメインメモリへのアクセスを必要としているときに、ページオープン/クローズ動作により、メインメモリへのアクセス速度が低下する、という事態が発生することがない。
図12は、比較例を示している。
比較例では、バッファメモリミスの場合、必ず、DRAMにおけるページオープン/クローズ動作が発生する。
本実施例では、図12のバッファメモリミスの場合を、図11A、図11B、及び、図11Cの3つの場合に分け、これらのうち、図11A及び図11Bの場合においては、ページオープン/クローズ動作を先延ばしできる点に特徴を有する。
最後に、リディームメモリに開きがあるか否かをチェックする(ステップST07)。
これは、ステップST09においてページオープン状態であった場合、コントローラ14は、バッファメモリのページデータをリディームメモリに移動させるため、リディームメモリに空きがなくなる可能性が生じるためである。
そこで、リディームメモリに空きがなくなる場合を想定し、コントローラ14は、プロセッサが必要とするデータをバッファメモリから読み出した後(ステップST13)、リディームメモリに空きがあるか否かをチェックする(ステップST07)。
そして、リディームメモリに空きが無い場合、上述したように、リディームメモリの空き制御(図13)を実行する(ステップST08)。
以上のステップにより、メモリアクセス制御が完了する。
上述のメモリアクセス制御(図10)において、リディームメモリの空き制御(図13)は、ステップST07の時点でリディームメモリに空きがない場合に実行される。
しかし、コントローラ14は、それ以外の場合に、リディームメモリの空き制御を実行することもできる。
例えば、図15に示すように、プロセッサからメインメモリへのアクセスが一定期間無い場合、コントローラ14は、リディームメモリの空き制御(図13)を実行することも可能である(ステップST31〜ST32)。
また、図16に示すように、DRAMのリフレッシュが行われ、かつ、リフレッシュ対象のロウアドレス(ページ)がリディームメモリ内に存在する場合、コントローラ14は、リディームメモリの空き制御(図13)を実行することも可能である(ステップST41〜ST42)。
また、上述したように、リディームメモリ内に記憶されたデータは、ダーティーデータである。従って、最終的には、リディームメモリ内に記憶されたデータは、正式な格納場所であるDRAMに書き戻し、クリーンデータにしなければならない。
図17は、リディームメモリからDRAMへの書き戻し動作の例を示している。
まず、コントローラ14は、所定条件が満たされているか否かをチェックする(ステップST51)。
この所定条件は、例えば、プロセッサ(複数のCPUコア)が低消費電力モードに入ったこと、プロセッサ内の複数のCPUコアのうち動作状態のCPUコア数が所定数以下であること、プロセッサ(複数のCPUコア)の最大データ処理量を100%としたときに現在のデータ処理量が所定%以下であること、又は、メモリシステム(DRAM)の電源を遮断するなど、DRAMのデータをストレージデバイスに書き戻す必要性が生じていること、などがある。
次に、コントローラ14は、所定条件が満たされていることを確認すると、DRAMがページオープン状態にあるか否かチェックする(ステップST52)。DRAMがページオープン状態にある場合、ページクローズ動作を実行する(ステップST53)。ページオープン状態のときにバッファメモリ内に記憶されていたデータ(ダーティーデータ)は、ページクローズ動作を行う前にDRAM内に書き戻される。
この後、コントローラ14は、ページ単位、又は、マスク付きのページ単位で、リディームメモリからDRAMにページデータを書き戻す(ステップST54)。
尚、リディームメモリ内の全てのページデータをDRAMに書き戻す場合、コントローラ14は、ページオープン/クローズ動作を繰り返し行う。
(適用例)
図18乃至図21は、適用例に係わるメモリシステムを示している。
これらの適用例は、例えば、DIMM(dual-inline memory module)などのメモリモジュールにDRAM(バッファメモリを含む)を搭載したコンベンショナルな技術に、本実施例を適用した場合の例である。
図18の例では、メインメモリ(DRAMモジュール)11は、複数のバンクBA,BA,…BA(nは2以上の自然数)を備える。例えば、1つのバンクBAは、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAは、1つのパッケージ製品(チップ)に対応していてもよいし、又は、複数のバンクBA,BA,…BAは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
また、コントローラ14は、プロセッサ10内に搭載され、かつ、リディームメモリMは、コントローラ14内に搭載される。
この場合、メインメモリ11は、例えば、コンベンショナルなDRAMモジュールとし、本実施例は、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより実行可能となる。
図19の例では、メインメモリ11は、DRAMモジュール11と、リディームメモリモジュール11と、を備える。
DRAMモジュール11は、複数のバンクBA,BA,…BAを備える。例えば、1つのバンクBAは、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA,BA,…BAは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
リディームメモリモジュール11も、複数のバンクBA,BA,…BAを備える。例えば、1つのバンクBAは、リディームメモリMR_kと、センスアンプ(バッファメモリとして用いてもよい)SAと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA,BA,…BAは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
この場合、本実施例は、コンベンショナルなDRAMモジュール11に新たなリディームメモリモジュール11を追加し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図20の例では、メインメモリ(DRAMモジュール)11は、コントローラ14と、複数のバンクBA,BA,…BAと、リディームメモリMと、を備える。
コントローラ14は、例えば、1つのパッケージ製品に対応する。
1つのバンクBAは、例えば、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA,BA,…BAは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
リディームメモリMは、例えば、1つのパッケージ製品に対応する。
この場合、本実施例は、例えば、DRAMモジュール11内に、コントローラ14及びリディームメモリMを混載し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図21の例では、メインメモリ(DRAMモジュール)11は、コントローラ14と、複数のバンクBA,BA,…BAと、を備える。また、コントローラ14は、リディームメモリMを備える。
コントローラ14は、例えば、1つのパッケージ製品に対応する。
1つのバンクBAは、例えば、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA,BA,…BAは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
この場合、本実施例は、例えば、DRAMモジュール11内に、リディームメモリMを含むコントローラ14を混載し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図22乃至図24は、それぞれ、図18乃至図21のコントローラ14内のLUT15の例を示している。
図22は、バッファメモリヒットテーブルの例である。
バッファメモリヒットテーブルは、複数のバンクBA,BA,…BAの各々について、バッファメモリM内にページデータがキャッシュされているか否か、及び、バッファメモリM内にページデータがキャッシュされている場合は、バッファメモリM内にキャッシュされているページデータのDRAMアドレス(ロウアドレス)を規定する。
例えば、バンクBAのバッファメモリMにロウアドレスRA0_xのページデータが読み出されている場合、バンクBAに対応するフラグは、1に設定され、バンクBAに対応するDRAMアドレスは、RA0_xとなる。
また、バンクBAのバッファメモリMにロウアドレスRA0_yのページデータが読み出されている場合、バンクBAに対応するフラグは、1に設定され、バンクBAに対応するDRAMアドレスは、RA0_yとなる。
さらに、バンクBAのバッファメモリMにロウアドレスRA0_zのページデータが読み出されている場合、バンクBAに対応するフラグは、1に設定され、バンクBAに対応するDRAMアドレスは、RA0_zとなる。
図23は、リディームメモリヒットテーブルの例である。
このテーブルは、図18、図20、及び、図21の適用例に対応する。
即ち、図18、図20、及び、図21に示されるリディームメモリアドレスReA_0,…ReA_7、及び、DRAMアドレスRA0_a,RA0_b,RA0_c,RA1_d,RA1_e,…RAn_f,RAn_gと、図23に示されるリディームメモリアドレスReA_0,…ReA_7、及び、DRAMアドレスRA0_a,RA0_b,RA0_c,RA1_d,RA1_e,…RAn_f,RAn_gと、は互いに対応する。
リディームメモリヒットテーブルは、複数のリディームメモリアドレス(ロウアドレス)ReA_0,ReA_1,…ReA_7の各々について、そのアドレス内に記憶されているページデータが、何処のDRAM(バンク)の何処のロウアドレスのページデータであるか、を規定する。
例えば、リディームメモリアドレスReA_0に記憶されているページデータがバンクBA内のDRAMアドレス(ロウアドレス)RA0_aのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、リディームメモリアドレスReA_0に対応するバンクは、BAとなり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA0_aとなる。
また、リディームメモリアドレスReA_1に記憶されているページデータがバンクBA内のDRAMアドレス(ロウアドレス)RA0_bのページデータである場合、リディームメモリアドレスReA_1に対応するフラグは、1となり、リディームメモリアドレスReA_1に対応するバンクは、BAとなり、かつ、リディームメモリアドレスReA_1に対応するDRAMアドレスは、RA0_bとなる。
さらに、リディームメモリアドレスReA_6に記憶されているページデータがバンクBA内のDRAMアドレス(ロウアドレス)RAn_gのページデータである場合、リディームメモリアドレスReA_6に対応するフラグは、1となり、リディームメモリアドレスReA_6に対応するバンクは、BAとなり、かつ、リディームメモリアドレスReA_6に対応するDRAMアドレスは、RAn_gとなる。
尚、リディームメモリアドレスReA_7にページデータが記憶されていない場合、即ち、リディームメモリアドレスReA_7に空きがある場合、リディームメモリアドレスReA_7に対応するフラグは、0となり、リディームメモリアドレスReA_7に対応するバンク及びDRAMアドレスは、無効となる。
図24は、リディームメモリヒットテーブルの例である。
このテーブルは、図19の適用例に対応する。
即ち、図19に示されるリディームメモリアドレスReA_0,…ReA_7、及び、DRAMアドレスRA0_a,RA0_b,RA0_c,RA1_d,RA1_e,…RAn_f,RAn_gと、図24に示されるリディームメモリアドレスReA_0,…ReA_7、及び、DRAMアドレスRA0_a,RA0_b,RA0_c,RA1_d,RA1_e,…RAn_f,RAn_gと、は互いに対応する。
図19の適用例では、DRAMモジュール11の複数のバンクBA,BA,…BAと、リディームメモリモジュール11の複数のバンクBA,BA,…BAと、が一対一に対応する。従って、リディームメモリヒットテーブルは、バンク毎に設けられる。
各バンクにおいて、リディームメモリヒットテーブルは、リディームメモリアドレス(ロウアドレス)とDRAMアドレスとの関係を規定する。
例えば、バンクBAにおいて、リディームメモリアドレスReA_0に記憶されているページデータがDRAMアドレス(ロウアドレス)RA0_aのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA0_aとなる。
また、バンクBAにおいて、リディームメモリアドレスReA_0に記憶されているページデータがDRAMアドレス(ロウアドレス)RA1_dのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA1_dとなる。
さらに、バンクBAにおいて、リディームメモリアドレスReA_0に記憶されているページデータがDRAMアドレス(ロウアドレス)RAn_fのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RAn_fとなる。
尚、各バンクにおいて、リディームメモリアドレスにページデータが記憶されていない場合、即ち、リディームメモリアドレスに空きがある場合、そのリディームメモリアドレスに対応するフラグは、0となり、そのリディームメモリアドレスに対応するDRAMアドレスは、無効となる。
(むすび)
以上、実施形態によれば、ホストプロセッサ及びメインメモリ間のデータ転送能力を向上させることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10: プロセッサ、 11: メインメモリ、 12: CPU、 13: キャッシュメモリ、 14: コントローラ、 15: LUT、 16: 書き込みドライバ/シンカー、 17: インターフェース部、 18: コマンド処理部、 19: アドレス処理部、 20: データバッファ、 M: DRAM、 M: バッファメモリ、 M: リディームメモリ。

Claims (6)

  1. 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、を具備し、
    前記コントローラは、
    前記第1のアドレスへの第1のアクセスを行うコマンドが発行され、かつ、前記第1のアドレスのデータが前記第2のメモリ内に記憶される第1の場合、前記第1のアクセスに代えて前記第2のメモリへの第2のアクセスを行い、
    前記コマンドが発行され、かつ、前記第1のアドレスの前記データが前記第3のメモリの第2のアドレス内に記憶される第2の場合、前記第1のアクセスに代えて前記第2のアドレスへの第3のアクセスを行い、
    前記コマンドが発行され、前記コマンドが前記第1のアドレスへの書き込み動作を指示し、かつ、前記第1及び第2の場合以外の第3の場合、前記第1のアクセスに代えて前記第3のメモリの第3のアドレスへの第4のアクセスを行う、
    メモリシステム。
  2. 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、CPUコアを含むプロセッサと、を具備し、
    前記コントローラは、
    前記プロセッサにより前記第1のアドレスへの第1のアクセスを行うコマンドが発行され、かつ、前記第1のアドレスのデータが前記第2のメモリ内に記憶される第1の場合、前記第1のアクセスに代えて前記第2のメモリへの第2のアクセスを行い、
    前記プロセッサにより前記コマンドが発行され、かつ、前記第1のアドレスの前記データが前記第3のメモリの第2のアドレス内に記憶される第2の場合、前記第1のアクセスに代えて前記第2のアドレスへの第3のアクセスを行い、
    前記プロセッサにより前記コマンドが発行され、前記コマンドが前記第1のアドレスへの書き込み動作を指示し、かつ、前記第1及び第2の場合以外の第3の場合、前記第1のアクセスに代えて前記第3のメモリの第3のアドレスへの第4のアクセスを行う、
    プロセッサシステム。
  3. 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1のメモリにアクセスするコマンドに基づいて、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、を具備し、
    前記第2及び第3のメモリは、同一のメモリ階層内に配置される、前記第1のメモリのキャッシュメモリであり、
    前記第1のアドレスの前記データが前記第2のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第3のメモリ内に記憶されず、かつ、前記第1のアドレスの前記データが前記第3のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第2のメモリ内に記憶されない、
    メモリシステム。
  4. 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1のメモリにアクセスするコマンドに基づいて、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、前記コマンドを発行するプロセッサと、を具備し、
    前記第2及び第3のメモリは、同一のメモリ階層内に配置される、前記第1のメモリのキャッシュメモリであり、
    前記第1のアドレスの前記データが前記第2のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第3のメモリ内に記憶されず、かつ、前記第1のアドレスの前記データが前記第3のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第2のメモリ内に記憶されない、
    プロセッサシステム。
  5. 前記第2のメモリは、前記第1のメモリのセンスアンプとして機能する、請求項1又は3に記載のメモリシステム。
  6. 前記第2のメモリは、前記第1のメモリのセンスアンプとして機能する、請求項2又は4に記載のプロセッサシステム。
JP2016183393A 2016-09-20 2016-09-20 メモリシステム及びプロセッサシステム Pending JP2018049387A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016183393A JP2018049387A (ja) 2016-09-20 2016-09-20 メモリシステム及びプロセッサシステム
US15/457,557 US20180081801A1 (en) 2016-09-20 2017-03-13 Memory system and processing system
TW106108162A TWI612466B (zh) 2016-09-20 2017-03-13 記憶體系統及處理器系統
CN201710177591.3A CN107844430B (zh) 2016-09-20 2017-03-23 存储器系统和处理器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016183393A JP2018049387A (ja) 2016-09-20 2016-09-20 メモリシステム及びプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2018049387A true JP2018049387A (ja) 2018-03-29

Family

ID=61621105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016183393A Pending JP2018049387A (ja) 2016-09-20 2016-09-20 メモリシステム及びプロセッサシステム

Country Status (4)

Country Link
US (1) US20180081801A1 (ja)
JP (1) JP2018049387A (ja)
CN (1) CN107844430B (ja)
TW (1) TWI612466B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500886A (zh) * 2022-01-28 2022-05-13 北京拙河科技有限公司 一种按列分段的图像处理系统与方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408832B2 (en) * 2006-03-21 2008-08-05 Mediatek Inc. Memory control method and apparatuses
US7761656B2 (en) * 2007-08-22 2010-07-20 Advanced Micro Devices, Inc. Detection of speculative precharge
CN102385503B (zh) * 2010-09-01 2014-03-19 络达科技股份有限公司 可执行外部程序码的集成电路和方法
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
US8874852B2 (en) * 2012-03-28 2014-10-28 International Business Machines Corporation Data cache block deallocate requests in a multi-level cache hierarchy
CN102664041B (zh) * 2012-05-22 2015-01-21 安徽大学 一种基于bist控制的可编程sram时序控制系统
JP6130758B2 (ja) * 2013-09-06 2017-05-17 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US9696920B2 (en) * 2014-06-02 2017-07-04 Micron Technology, Inc. Systems and methods for improving efficiencies of a memory system
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
TWI587302B (zh) * 2014-12-09 2017-06-11 華邦電子股份有限公司 記憶體編程方法以及記憶體裝置

Also Published As

Publication number Publication date
CN107844430B (zh) 2021-07-30
CN107844430A (zh) 2018-03-27
US20180081801A1 (en) 2018-03-22
TW201814495A (zh) 2018-04-16
TWI612466B (zh) 2018-01-21

Similar Documents

Publication Publication Date Title
US9412443B2 (en) Processor system having variable capacity memory
US8954672B2 (en) System and method for cache organization in row-based memories
US11580029B2 (en) Memory system, computing system, and methods thereof for cache invalidation with dummy address space
US20190042145A1 (en) Method and apparatus for multi-level memory early page demotion
US9786389B2 (en) Memory system
US10657065B2 (en) Delayed write-back in memory
JP6364365B2 (ja) 半導体記憶装置
CN107783910B (zh) 存储器系统以及处理器系统
JP5498526B2 (ja) キャッシュシステム
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
JP5337277B1 (ja) 磁気ランダムアクセスメモリ及びメモリシステム
US10496546B2 (en) Cache memory and processor system
JP5992592B1 (ja) キャッシュメモリシステム
JP2018049387A (ja) メモリシステム及びプロセッサシステム
CN107038126A (zh) 存储系统
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법
US20090144504A1 (en) STRUCTURE FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830