JP2018049387A - メモリシステム及びプロセッサシステム - Google Patents
メモリシステム及びプロセッサシステム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/165—Auxiliary circuits
- G11C11/1675—Writing 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のリフレッシュにより制限される。
実施形態は、ホストプロセッサ及びメインメモリ間のデータ転送能力を向上させる技術を提案する。
実施形態によれば、メモリシステムは、第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のアクセスを行う。
以下、図面を参照しながら実施例を説明する。
(メモリシステム)
図1乃至図4は、メモリシステムの例を示している。
(メモリシステム)
図1乃至図4は、メモリシステムの例を示している。
本実施例が適用されるメモリシステムは、プロセッサ(ホスト)10と、メインメモリ11と、を備える。
メモリシステムは、例えば、パーソナルコンピュータ、携帯端末を含む電子機器、デジタルスチルカメラ及びビデオカメラを含む撮像装置、タブレットコンピュータ、スマートフォン、ゲーム機器、カーナビゲーションシステム、プリンタ機器、スキャナ機器や、サーバーシステムなど、である。
図1の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、コントローラ14と、を備え、かつ、コントローラ14は、LUT(look-up table)15を備える。また、メインメモリ11は、DRAM MDと、バッファメモリMBと、リディームメモリ(redeem memory)MRと、を備える。
図2の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、コントローラ14と、を備え、かつ、コントローラ14は、LUT15と、リディームメモリMRと、を備える。また、メインメモリ11は、DRAM MDと、バッファメモリMBと、を備える。
図3の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、を備える。また、メインメモリ11は、DRAM MDと、バッファメモリMBと、リディームメモリMRと、を備える。コントローラ14は、プロセッサ10及びメインメモリ11間に接続され、かつ、LUT15を備える。
図4の例では、プロセッサ10は、CPU12と、キャッシュメモリ13と、を備える。また、メインメモリ11は、DRAM MDと、バッファメモリMBと、を備える。コントローラ14は、プロセッサ10及びメインメモリ11間に接続され、かつ、LUT15と、リディームメモリMRと、を備える。
CPU12は、例えば、複数のCPUコアを備える。複数のCPUコアは、異なるデータ処理を互いに並行して行うことができる要素のことである。近年、CPUコア数の増加(例えば、8コア、16コアなど)によりプロセッサ10の処理能力が向上し、かつ、メインメモリ11のメモリ容量が増大したため(例えば、100ギガバイトなど)、プロセッサ10及びメインメモリ11間のデータ転送能力の向上が緊急の課題となっている。
キャッシュメモリ12は、この課題を解決する一つの技術である。キャッシュメモリ12は、例えば、高速アクセスが可能なSRAM(スタティックランダムアクセスメモリ)を備え、DRAM MD内に記憶されたデータをキャッシュすることにより、この課題を解決する。しかし、SRAMは、待機電力が大きく、かつ、セル面積が大きいため、大容量化することができない。
そこで、本実施例のメモリシステムは、3種類のメモリ、例えば、DRAM MD、バッファメモリMB、及び、リディームメモリMRを備える。
DRAM MDは、メインメモリ11におけるデータの正式な格納場所である。バッファメモリMB及びリディームメモリMRは、プロセッサ10がDRAM MD内に記憶されたデータに高速アクセスするための要素である。
バッファメモリMBは、例えば、SRAMである。バッファメモリMBは、例えば、DRAM MDのセンスアンプとして機能する。
DRAM MD及びバッファメモリMBは、以下の特徴を有する。
DRAM MDへのアクセスは、メモリセルアレイ内の1つのロウをアクティベート(activate)することにより行う。1つのロウをアクティベートするとは、1つのロウ、即ち、1本のワード線に接続されるメモリセル内の選択トランジスタをオンにすることを意味する。1つのロウをアクティベートする動作は、例えば、ロウオープン動作(row-open operation)又はページオープン動作(page-open operation)と称される。また、アクティベートされた1つのロウは、例えば、オープンロウ(opened row)又はオープンページ(opened page)と称される。
一方、DRAM MDにおいて、1つのロウをデアクティベート(deactivate)するとは、1つのロウ、即ち、1本のワード線に接続されるメモリセル内の選択トランジスタをオフにすることを意味する。1つのロウをデアクティベートする動作は、例えば、ロウクローズ動作(row-close operation)又はページクローズ動作(page-close operation)と称される。また、デアクティベートされた1つのロウは、例えば、クローズロウ(closed row)又はクローズページ(closed page)と称される。1つのロウがデアクティベートされた状態では、次のアクセスに備えて、ビット線のプリチャージ動作などが行われる。
バッファメモリMBは、例えば、DRAM MDのアクティベートされた1つのロウ内の複数のメモリセル(1本のワード線に接続される複数のメモリセル)内に記憶されるデータ(以下、ページデータと称する)を記憶可能である。バッファメモリMBは、プロセッサ10内のキャッシュメモリ(例えば、L1〜L3キャッシュ)13のメモリ階層と、メインメモリ11内のDRAM MDのメモリ階層と、の間のメモリ階層を有するキャッシュメモリとして機能する。
例えば、プロセッサ10は、アクセス対象となるデータがバッファメモリMB内に記憶されている場合(バッファメモリヒットの場合)、DRAM MDにアクセスすることなく、バッファメモリMBにアクセスすることにより、メインメモリ11へのアクセスを高速化する。
リディームメモリMRは、アクセス対象となるデータがバッファメモリMB内に記憶されていない場合(バッファメモリミスの場合)でも、DRAM MDにアクセスすることなく、即ち、DRAM MDにおいてページオープン/クローズ動作(ロウオープン/クローズ動作)を行うことなく、アクセス対象となるデータの読み出し/書き込み動作を可能とする要素である。
例えば、バッファメモリミスの場合、一般的には、DRAM MDにおいて、まず、ページクローズ動作を行い、この後、アクセス対象となる新たなページ(ロウ)をアクセスするためにページオープン動作を行わなければならない。しかし、このようなページオープン/クローズ動作は、メインメモリ11へのアクセスを遅くする。
そこで、バッファメモリミスの場合であっても、アクセス対象となるデータがリディームメモリMR内に記憶されている場合(リディームメモリヒットの場合)には、DRAM MDへのアクセスを先延ばしし、即ち、DRAM MDにおいてページオープン/クローズ動作(ロウオープン/クローズ動作)を先延ばしし、現時点では、アクセス対象となるデータの読み出し/書き込み動作をリディームメモリMRにおいて実行可能とする。
また、書き込み動作において、バッファメモリミスの場合で、かつ、アクセス対象となるデータがリディームメモリMR内に記憶されていない場合(リディームメモリミスの場合)にも、現時点では、書き込みデータをリディームメモリMRに記憶させることにより、DRAM MDへのアクセス、即ち、DRAM MDにおけるページオープン/クローズ動作(ロウオープン/クローズ動作)を先延ばしすることができる。
リディームメモリMRは、バッファメモリMBのメモリ階層と同じメモリ階層を有する。即ち、リディームメモリMRは、バッファメモリMBと同様に、プロセッサ10内のキャッシュメモリ13のメモリ階層と、メインメモリ11内のDRAM MDのメモリ階層と、の間のメモリ階層を有するキャッシュメモリとして機能する。
リディームメモリMRのメモリ階層とバッファメモリMBのメモリ階層は、同じであるため、プロセッサ10が管理する同一アドレスのデータがこれら2つのメモリ内に同時期に記憶されることはない。
即ち、メインメモリ11におけるデータの正式な格納場所であるDRAM MD及びキャッシュメモリとしてのバッファメモリMBの両者、又は、メインメモリ11におけるデータの正式な格納場所であるDRAM MD及びキャッシュメモリとしてのリディームメモリMRの両者が、同時期に、同一アドレスのデータを記憶することはあっても、リディームメモリMR及びバッファメモリMBの両者が、同時期に、同一アドレスのデータを記憶しない。
リディームメモリMRは、メインメモリ11内のキャッシュメモリとして機能するため、高速アクセスが可能なメモリであるのが望ましい。また、リディームメモリMRは、後述するメモリアクセス制御の関係上、バッファメモリMBのメモリ容量よりも大きなメモリ容量を有しているのが望ましい。さらに、メモリシステムの低消費電力化を図り、かつ、リフレッシュなどによるアクセス制限を無くすため、リディームメモリMRは、不揮発性メモリ、又は、非常に長いデータリテンションタイムを有する揮発性メモリであるのが望ましい。
そのようなメモリとしては、例えば、MRAM(マグネティックランダムアクセスメモリ)、ReRAM(抵抗変化メモリ)など、の不揮発性RAM、又は、メモリセル内の選択トランジスタのチャネルを酸化物半導体(例えば、IGZOなど)としたDRAM(ULR DRAM: Ultra Long Retention DRAM)がある。
バッファメモリMB内に記憶されるページデータは、例えば、書き込み動作において、バッファメモリヒットである場合に更新される。従って、バッファメモリMB内のページデータは、例えば、書き込み動作により更新される一方、正式な格納場所であるDRAM MDに書き戻されていない、いわゆるダーティーデータ(dirty data)である。
同様に、リディームメモリMR内に記憶されるページデータも、例えば、書き込み動作において、リディームメモリヒットである場合に更新される。従って、リディームメモリMR内のページデータも、例えば、書き込み動作により更新される一方、正式な格納場所であるDRAM MDに書き戻されていない、いわゆるダーティーデータである。
これらダーティーデータは、最終的には、正式な格納場所であるDRAM MDに書き戻し、クリーンデータ(clean data)にする。
本実施例のメモリシステムでは、例えば、図5に示すように、3種類のメモリ、即ち、DRAM MD、バッファメモリMB、及び、リディームメモリMR間のデータの移動は、ループ状に制御される。
まず、DRAM MD内のページデータは、例えば、ページオープン動作により、バッファメモリMB内に移動する(図5の矢印T1)。次に、バッファメモリMB内のページデータは、例えば、ページクローズ動作により、リディームメモリMR内に移動する(図5の矢印T2)。最後に、リディームメモリMR内のページデータは、所定時期に、DRAM MD内に書き戻される(図5の矢印T3)。
リディームメモリMR内のページデータをDRAM MD内に書き戻す所定時期は、例えば、リディームメモリMRに空きが無くなった後とする。また、リディームメモリMRに空きが無くなった後であっても、直ちに、新たなページデータをリディームメモリMRに書き込む必要がないときは、プロセッサ10のパフォーマンス(データ処理能力)に影響を与えないため、リディームメモリMRに空きが無くなった後、所定条件を満たしたときに、リディームメモリMR内のページデータをDRAM MD内に書き戻す。
この所定条件は、例えば、メインメモリ11へのアクセスが一定期間無いとか、又は、DRAM MDにおいてリフレッシュが行われ、かつ、リフレッシュ対象のページがリディームメモリMR内に存在するとか、である。
リディームメモリMR内のページデータをDRAM MD内に書き戻す所定時期は、上記以外に、例えば、プロセッサ10内でのデータ処理量が少ない時期としてもよい。そのような時期は、プロセッサ10及びメインメモリ11間のデータ転送量も少なく、DRAM MD内でのページオープン/クローズ動作がプロセッサ10のパフォーマンスに影響を与えることがないからである。
そのような時期は、例えば、プロセッサ(複数のCPUコア)10が低消費電力モードに入った後であるとか、プロセッサ10内の複数のCPUコアのうち動作状態のCPUコア数が所定数以下となった後であるとか、プロセッサ(複数のCPUコア)10の最大データ処理量を100%としたときに現在のデータ処理量が所定%以下であるとか、又は、メモリシステム(DRAM MD)の電源を遮断するなど、DRAM MDのデータをストレージデバイス(HDD、SSDなど)に書き戻す必要性が生じた後とか、である。
DRAM MDのデータをストレージデバイスに書き戻す必要性が生じた場合、バッファメモリMB内のページデータは、ページクローズ動作によりリディームメモリMR内に移動させない。この場合、バッファメモリMB内のページデータは、ページクローズ動作前に、DRAM MD内に書き戻される(図5の矢印T4)。また、ページクローズ動作後に、リディームメモリMR内のページデータがDRAM MD内に書き戻される(図5の矢印T3)。
このような一連のデータ制御によれば、例えば、プロセッサ10がデータ処理を行っている期間においては、DRAM MDでのページオープン/クローズ動作の発生が抑制される。従って、その期間において、プロセッサ10及びメインメモリ11間のデータ転送能力が向上し、メモリシステムのパフォーマンスが向上する。
以上のデータ制御は、コントローラ14により制御される。コントローラ14は、このようなデータ制御を行うため、有効データが何処にあるかを示すLUT15を備える。LUT15は、プロセッサ10内のRAMに記憶しておき、そこから取得してもよいし、又は、DRAM MD内に記憶しておき、そこから取得してもよい。コントローラ14によるデータ制御の具体例は、後述する。
(DRAM)
図6は、DRAMの例を示している。
図6は、DRAMの例を示している。
DRAM MDは、アレイ状に配置される複数のメモリセルU00〜Uijを備える。バッファメモリMBは、DRAM MDのセンスアンプSAjである。
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の電極に接続される。
ビット線BLjは、トランジスタTijの第2の端子に接続され、第1の方向に延びる。ビット線BLjは、バッファメモリMB、即ち、センスアンプSAjに接続される。ワード線WLiは、トランジスタTijの制御端子に接続され、第1の方向に交差する第2の方向に延びる。キャパシタCijの第2の電極は、例えば、接地電位Vssに設定される。
ワード線WLiに接続される複数のメモリセルUi0〜Uijは、1つのグループ、例えば、ページPGi内に属する。ページPGi内のメモリセルUi0〜Uijに記憶されるデータは、ページデータである。また、DRAM MDにおいて、ページオープン/クローズ動作は、ページ単位で行われる。
複数のセンスアンプSA0〜SAjは、複数のカラムCoL0〜CoLjに対応して設けられる。
このようなDRAM MDにおいて、書き込み動作は、例えば、ビット線BLjをプリチャージ電位(例えば、Vdd/2)から書き込みデータの値に応じた電位に変化させることにより行う。
例えば、メモリセルUijに1ビットデータ(0又は1)を書き込む場合、書き込みデータが0のときは、センスアンプSAjからビット線BLjに接地電位Vssを転送し、書き込みデータが1のときは、センスアンプSAjからビット線BLjに電源電位Vddを転送すればよい。
また、読み出し動作は、例えば、ビット線BLjをプリチャージ電位(例えば、Vdd/2)、かつ、フローティングとすればよい。この場合、ワード線WLiをアクティブにすると、メモリセルUij内に記憶されたデータ、即ち、キャパシタCijに蓄積された電荷量に応じてビット線BLjの電位が変化する。
メモリセルUij内に記憶されたデータ(読み出しデータ)は、このビット線BLjの電位変化をセンスアンプSAjによりセンスすることにより、検出できる。
図7は、バッファメモリの例を示している。
バッファメモリMBは、DRAM MDのセンスアンプSAjである。
メモリセルUij、キャパシタCij、トランジスタTij、ワード線WLi、及び、ビット線BLjは、それぞれ、図6に示すメモリセルUij、キャパシタCij、トランジスタTij、ワード線WLi、及び、ビット線BLjに対応する。
Qpreは、読み出し/書き込み動作(ページクローズ動作)において、プリチャージ電位Vpreをビット線BLjに印加するためのトランジスタ(例えば、NチャネルFET)である。例えば、読み出し/書き込み動作では、制御信号φpreがアクティブ(例えば、ハイレベル)になると、トランジスタQpreがオンとなり、Vpre=Vdd/2がビット線BLjに転送される。制御信号φpreがノンアクティブ(例えば、ロウレベル)になると、トランジスタQpreは、オフとなる。
Qclampは、読み出し/書き込み動作において、ビット線BLjをセンスアンプSAjに電気的に接続するためのスイッチ素子(クランプ回路)として機能する。Qclampは、例えば、NチャネルFETである。読み出し/書き込み動作において、制御信号φclampがアクティブになると、トランジスタQclampがオンとなり、ビット線BLjとセンスアンプSAjが電気的に接続される。制御信号φclampがノンアクティブになると、トランジスタQclampは、オフとなる。
センスアンプSAjは、SRAM、即ち、フリップフロップ接続される2つのインバータ回路を備える。制御信号(センスアンプイネーブル信号)φSEがアクティブになると、センスアンプSAjが動作状態になる。また、制御信号φSEがノンアクティブになると、センスアンプSAjが非動作状態になる。
センスアンプSAjは、2つの入出力ノードS1,S2を備える。読み出し/書き込みデータは、例えば、入出力ノードS1から入出力される。
Qeqは、2つの入出力ノードS1,S2の電位をイコライズするトランジスタ(イコライズ回路)である。Qeqは、例えば、NチャネルFETである。制御信号φeqがアクティブになると、トランジスタQeqがオンとなり、2つの入出力ノードS1,S2の電位がイコライズされる。制御信号φeqがノンアクティブになると、トランジスタQeqがオフとなる。
Qrstは、2つの入出力ノードS1,S2の電位をリセットするトランジスタ(例えば、NチャネルFET)である。制御信号φrstがアクティブになると、トランジスタQrstがオンとなり、2つの入出力ノードS1,S2の電位がリセットされる。制御信号φrstがノンアクティブになると、トランジスタQrstがオフとなる。
(リディームメモリ)
図8は、リディームメモリの例を示している。
図8は、リディームメモリの例を示している。
本例では、リディームメモリMRは、MRAMである。また、リディームメモリMRのセンスアンプSAjは、上述のDRAM MDと同様に、バッファメモリMBとして使用可能である。但し、リディームメモリMRのセンスアンプSAjは、バッファメモリMBとして使用しなくてもよい。
リディームメモリ MRは、アレイ状に配置される複数のメモリセル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の電極に接続される。
ビット線BLjは、磁気抵抗効果素子MTJijの第2の電極に接続され、第1の方向に延びる。ビット線BLjは、バッファメモリMB、即ち、センスアンプSAjに接続される。ソース線SLjは、トランジスタQijの第2の端子に接続され、第1の方向に延びる。ワード線WLiは、トランジスタQijの制御端子に接続され、第1の方向に交差する第2の方向に延びる。
ワード線WLiに接続される複数のメモリセルXi0〜Xijは、1つのグループ、例えば、ページPGi内に属する。ページPGi内のメモリセルXi0〜Xijに記憶されるデータは、ページデータである。
複数のセンスアンプSA0〜SAjは、複数のカラムCoL0〜CoLjに対応して設けられる。
図9は、リディームメモリのセンスアンプの例を示している。
メモリセルXij、磁気抵抗効果素子MTJij、トランジスタQij、ワード線WLi、ビット線BLj、及び、ソース線SLjは、それぞれ、図8に示すメモリセルXij、磁気抵抗効果素子MTJij、トランジスタQij、ワード線WLi、ビット線BLj、及び、ソース線SLjに対応する。
Qpre及びQclampは、図7におけるQpre及びQclampに対応する。
但し、Qpreは、読み出し動作において、プリチャージ電位Vpreをビット線BLjに印加するためのトランジスタ(例えば、NチャネルFET)であり、書き込み動作においては、オフを維持する。
また、Qclampは、読み出し動作において、ビット線BLjをセンスアンプSAjに電気的に接続するためのスイッチ素子(クランプ回路)として機能する。即ち、書き込み動作においては、Qclampは、オフを維持する。
センスアンプSAjは、図7のセンスアンプSAjと同じである。
但し、リディームメモリMRのセンスアンプSAjは、読み出し動作で使用し、書き込み動作で使用しない。
Qeq及びQrstは、図7におけるQeq及びQrstに対応する。これらトランジスタQeq,Qrstの機能は、図7におけるトランジスタQeq,Qrstの機能と同じであるため、ここでの説明を省略する。
リディームメモリMRは、書き込みドライバ/シンカー16を備える。
書き込みドライバ/シンカー16は、第1のドライバ/シンカーD/S_aと、第2のドライバ/シンカーD/S_bと、を備える。
第1のドライバ/シンカーD/S_aは、制御信号φaにより制御され、かつ、直列接続されるPチャネルFET Qa_p及びNチャネルFET Qa_nを備える。第2のドライバ/シンカーD/S_bは、制御信号φbにより制御され、かつ、直列接続されるPチャネルFET Qb_p及びNチャネルFET Qb_nを備える。
書き込み動作において、制御信号φwがアクティブになると、第1のドライバ/シンカーD/S_aがビット線BLjに電気的に接続される。
例えば、“0”−書き込みでは、書き込みパルスは、制御信号φaを“0”に設定し、制御信号φbを“1”に設定することにより発生させる。但し、“0”は、接地電位Vssに対応し、“1”は、電源電位Vddに対応する。以下、同じ。
この場合、書き込み電流は、磁気抵抗効果素子MTJijからトランジスタTijに向かう方向に流れ、かつ、磁気抵抗効果素子MTJijは、低抵抗状態に変化する。結果として、メモリセルUijに“0”が書き込まれる。
また、“1”−書き込みでは、書き込みパルスは、制御信号φaを“1”に設定し、制御信号φbを“0”に設定することにより発生させる。
この場合、書き込み電流は、トランジスタTijから磁気抵抗効果素子MTJijに向かう方向に流れ、かつ、磁気抵抗効果素子MTJijは、高抵抗状態に変化する。結果として、メモリセルUijに“1”が書き込まれる。
一方、読み出し動作では、制御信号φwがノンアクティブに設定され、第1のドライバ/シンカーD/S_aがビット線BLjから電気的に切断される。また、制御信号φbが“1”に設定される。この場合、接地電位Vssがソース線SLjに印加される。
(メモリアクセス制御)
図1乃至図4のコントローラ14によるメモリアクセス制御の例を説明する。
図1乃至図4のコントローラ14によるメモリアクセス制御の例を説明する。
図10は、メモリアクセス制御の例を示すフローチャートである。
まず、コントローラ14は、DRAMにアクセスするコマンドが発行されたか否かをチェックする(ステップST00)。
コントローラ14は、DRAMにアクセスするコマンドが発行されたことを確認すると、LUT15に基づいて、アクセス対象となるデータがバッファメモリ内に記憶されているか否かをチェックする(ステップST01)。
コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されていること(バッファメモリヒット)を確認すると、バッファメモリにアクセスし、読み出し/書き込み動作を実行する(ステップST02)。
例えば、図11Aに示すように、アクセス対象となるデータがロウアドレスRA_xにより指定され、かつ、ロウアドレスRA_xのデータ(ページデータ)PG_xがバッファメモリMB内に読み出されている場合、バッファメモリMBにアクセスし、ページデータPG_xの全て又は一部に対して読み出し/書き込み動作を実行可能である。
一方、コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されていないこと(バッファメモリミス)を確認すると、LUT15に基づいて、アクセス対象となるデータがリディームメモリ内に記憶されているか否かをチェックする(ステップST03)。
コントローラ14は、アクセス対象となるデータがリディームメモリ内に記憶されていること(リディームメモリヒット)を確認すると、リディームメモリにアクセスし、読み出し/書き込み動作を実行する(ステップST04)。
例えば、図11Aに示すように、アクセス対象となるデータがロウアドレスRA_yにより指定され、かつ、ロウアドレスRA_yのデータ(ページデータ)PG_yがリディームメモリMRのロウアドレスReA_yに読み出されている場合、リディームメモリMRのロウアドレスReA_yにアクセスし、ページデータPG_yの全て又は一部に対して読み出し/書き込み動作を実行可能である。
尚、ステップST01とステップST03の順序を入れ替えることも可能である。
また、コントローラ14は、アクセス対象となるデータがバッファメモリ内に記憶されておらず(バッファメモリミス)、かつ、リディームメモリ内にも記憶されていないこと(リディームメモリミス)を確認すると、プロセッサからの指示が書き込み動作であるか、又は、読み出し動作であるか、をチェックする(ステップST05)。
プロセッサからの指示が書き込み動作である場合、コントローラ14は、リディームメモリにアクセスし、書き込み動作を実行する(ステップST06)。
例えば、図11Bに示すように、アクセス対象となるデータがロウアドレスRA_zにより指定され、かつ、ロウアドレスRA_zのデータ(ページデータ)PG_zがバッファメモリMB及びリディームメモリMRに読み出されていない場合、ロウアドレスRA_zのデータをリディームメモリMRのアドレスReA_zに書き込む。
ここで、バッファメモリ及びリディームメモリにおけるデータ管理は、ページ単位、又は、マスク付きのページ単位で行う。
例えば、ページオープン動作によりDRAMからバッファメモリに読み出されたデータは、ページ単位で管理される。また、ページクローズ動作によりバッファメモリからリディームメモリに移動したデータも、ページ単位で管理される。このような経路によりバッファメモリ内又はリディームメモリ内に記憶されたページデータの全ては、有効データとして使用可能だからである。
これに対し、バッファメモリミス及びリディームメモリミスの書き込み動作において、プロセッサからリディームメモリに書き込まれたデータは、ページ単位、又は、マスク付きのページ単位で管理される。
即ち、アクセス対象となるページ(ロウ)内の全てのビットにデータを書き込む場合、リディームメモリに書き込まれるページデータの全ては、有効データである。従って、この場合、リディームメモリに書き込まれたデータは、ページ単位で管理される。
また、アクセス対象となるページ(ロウ)内の一部のビットにデータを書き込む場合、リディームメモリに書き込まれるページデータの全ては、有効データとならない。例えば、アクセス対象となるページ内の一部のビット(有効データ)がリディームメモリ内に書き込まれ、残りのビット(有効データ)は、DRAM内に存在する場合もあり得る。
従って、この場合、リディームメモリに書き込まれたデータは、マスク付きのページ単位で管理される。マスク付きのページ単位で管理するとは、ページデータの一部のビットを有効データとして管理し、残りのビットを無効データ(マスク付き)として管理することを意味する。
バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が書き込み動作である場合、リディームメモリに対する書き込み動作を終えた後、リディームメモリに空きがあるか否かをチェックする(ステップST07)。
リディームメモリに対する書き込み動作により、リディームメモリに空きがなくなった場合、リディームメモリの空き制御を実行する(ステップST08)。
リディームメモリの空き制御について図13を参照しながら説明する。
まず、DRAMがページオープン状態にあるか否かチェックする(ステップST21)。DRAMがページオープン状態にある場合、ページクローズ動作を実行する(ステップST22)。ページオープン状態のときにバッファメモリ内に記憶されていたデータ(ダーティーデータ)は、ページクローズ動作を行う前にDRAM内に書き戻される。
例えば、図14に示すように、ロウアドレスRA_xのページデータPG_xがバッファメモリMBに読み出されている場合、コントローラ14は、ページデータPG_xをバッファメモリMBからDRAM MDに書き戻した後、ページクローズ動作を実行する。
次に、リディームメモリから追い出す(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に示すように、追い出しの対象となったリディームメモリMRのロウアドレスReA_yのデータがマスク付きのページデータであり、かつ、ロウアドレスReA_yに対応するDRAM MDのロウアドレスがRA_yである場合、ロウアドレスRA_yのデータをDRAM MDからバッファメモリMBに読み出す。
この後、コントローラ14は、追い出しの対象となったデータを、リディームメモリからバッファメモリに移動させる(ステップST26)。
例えば、ステップST25を経由しない場合、ページデータ(有効データ)の全てがリディームメモリからバッファメモリに転送される。また、ステップST25を経由する場合、ページデータの一部(有効データ)がリディームメモリからバッファメモリに転送され、バッファメモリ内のページデータに上書きされる。
また、バッファメモリのデータは、DRAMに書き戻される。
ここで、図14に示すように、例えば、リディームメモリMRからバッファメモリMBへのデータの移動は、コントローラ14を経由して行うのが望ましい。
この後、ページクローズ動作が実行される(ステップST27)。
例えば、図14に示すように、コントローラ14は、ロウアドレスRA_yのデータをバッファメモリMBからDRAM MDに書き戻した後、ページクローズ動作を実行する。
最後に、ステップST21においてページオープン状態であった場合、コントローラ14は、ステップST22においてクローズされたページを、再び、DRAMからバッファメモリに読み出し、リディームメモリの空き制御を実行する前の状態に戻すため、ページオープン動作を実行する(ステップST28〜ST29)。
例えば、図14に示すように、ステップST22においてクローズされたロウアドレスがReA_xである場合、コントローラ14は、ロウアドレスRA_xのページデータPG_xをDRAM MDからバッフメモリMBに読み出す。
以上のステップにより、リディームメモリの空き制御が完了する。
図10のメモリアクセス制御の説明に戻る。
バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が読み出し動作である場合、コントローラ14は、DRAMにアクセスし、読み出し動作を実行する(ステップST09〜ST13)。
具体的には、まず、DRAMがページオープン状態にあるか否かチェックする(ステップST09)。DRAMがページオープン状態にある場合、コントローラ14は、バッファメモリ内に読み出されているページデータをリディームに移動させる(ステップST10)。また、コントローラ14は、DRAMのロウアドレスとリディームメモリのロウアドレスとの対応関係を示すLUTを作成する。
バッファメモリのデータをリディームメモリに移動させるのは、バッファメモリに読み出されていたデータは、近いうちに、再び、アクセス対象となる可能性が高いため、DRAMに書き戻すよりは、ページオープン/クローズ動作が無い高速アクセス可能なリディームメモリに移動させるのが好都合であるからである。
コントローラ14は、ページデータをバッファメモリからリディームメモリに移動させた後、ページクローズ動作を実行する(ステップST11)。
例えば、図11Cに示すように、ロウアドレスRA_xのページデータPG_xがバッファメモリMBに読み出されている場合、コントローラ14は、ページデータPG_xをバッファメモリMBからリディームメモリMRに移動させた後、ページクローズ動作を実行する。ページデータPG_xは、バッファメモリMBから、コントローラ14を経由して、リディームメモリMRのロウアドレスReA_xに書き込むのが望ましい。
次に、コントローラ14は、ページオープン動作により、アクセス対象となるDRAMのロウアドレスに係わるページデータをDRAMからバッファメモリに読み出す(ステップST12)。
例えば、図11Cに示すように、アクセス対象となるDRAMのロウアドレスがRA_yである場合、コントローラ14は、ページオープン動作により、ロウアドレスRA_yに係わるページデータPG_yをDRAM MDからバッファメモリMBに読み出す。
この後、コントローラ14は、バッファメモリMBにアクセスし、プロセッサが必要とするデータをバッファメモリMBから読み出す(ステップST13)。
例えば、図11Cに示すように、プロセッサが必要とするデータ、即ち、アクセス対象となるデータがページデータPG_yの一部である場合、コントローラは、そのページデータPG_yの一部をバッファメモリMBから読み出す。
このように、バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が読み出し動作である場合のみ、DRAMにアクセスし、ページオープン/クローズ動作が実行される。
これは、言い換えれば、それ以外の場合、即ち、バッファメモリヒット(ステップST01)、リディームメモリヒット(ステップST03)、及び、バッファメモリミス、リディームメモリミス、かつ、プロセッサからの指示が書き込み動作である場合、現時点では、DRAMにおけるページオープン/クローズ動作を行わず、これらを先延ばしすることができることを意味する。
従って、プロセッサがメインメモリへのアクセスを必要としているときに、ページオープン/クローズ動作により、メインメモリへのアクセス速度が低下する、という事態が発生することがない。
図12は、比較例を示している。
比較例では、バッファメモリミスの場合、必ず、DRAMにおけるページオープン/クローズ動作が発生する。
比較例では、バッファメモリミスの場合、必ず、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は、適用例に係わるメモリシステムを示している。
図18乃至図21は、適用例に係わるメモリシステムを示している。
これらの適用例は、例えば、DIMM(dual-inline memory module)などのメモリモジュールにDRAM(バッファメモリを含む)を搭載したコンベンショナルな技術に、本実施例を適用した場合の例である。
図18の例では、メインメモリ(DRAMモジュール)11Dは、複数のバンクBA0,BA1,…BAn(nは2以上の自然数)を備える。例えば、1つのバンクBAkは、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAkは、1つのパッケージ製品(チップ)に対応していてもよいし、又は、複数のバンクBA0,BA1,…BAnは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
また、コントローラ14は、プロセッサ10内に搭載され、かつ、リディームメモリMRは、コントローラ14内に搭載される。
この場合、メインメモリ11Dは、例えば、コンベンショナルなDRAMモジュールとし、本実施例は、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより実行可能となる。
図19の例では、メインメモリ11は、DRAMモジュール11Dと、リディームメモリモジュール11Rと、を備える。
DRAMモジュール11Dは、複数のバンクBA0,BA1,…BAnを備える。例えば、1つのバンクBAkは、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAkは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA0,BA1,…BAnは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
リディームメモリモジュール11Rも、複数のバンクBA0,BA1,…BAnを備える。例えば、1つのバンクBAkは、リディームメモリMR_kと、センスアンプ(バッファメモリとして用いてもよい)SAkと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAkは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA0,BA1,…BAnは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
この場合、本実施例は、コンベンショナルなDRAMモジュール11Dに新たなリディームメモリモジュール11Rを追加し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図20の例では、メインメモリ(DRAMモジュール)11Dは、コントローラ14と、複数のバンクBA0,BA1,…BAnと、リディームメモリMRと、を備える。
コントローラ14は、例えば、1つのパッケージ製品に対応する。
1つのバンクBAkは、例えば、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAkは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA0,BA1,…BAnは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
リディームメモリMRは、例えば、1つのパッケージ製品に対応する。
この場合、本実施例は、例えば、DRAMモジュール11D内に、コントローラ14及びリディームメモリMRを混載し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図21の例では、メインメモリ(DRAMモジュール)11Dは、コントローラ14と、複数のバンクBA0,BA1,…BAnと、を備える。また、コントローラ14は、リディームメモリMRを備える。
コントローラ14は、例えば、1つのパッケージ製品に対応する。
1つのバンクBAkは、例えば、DRAM MD_kと、バッファメモリMB_kと、を備える。但し、kは、1〜nのうちの1つである。1つのバンクBAkは、1つのパッケージ製品に対応していてもよいし、又は、複数のバンクBA0,BA1,…BAnは、1つのパッケージ製品、又は、複数のパッケージ製品のなかに含まれていてもよい。
この場合、本実施例は、例えば、DRAMモジュール11D内に、リディームメモリMRを含むコントローラ14を混載し、かつ、コントローラ14の構造及びメモリアクセス制御(アルゴリズム)を変更することにより、実行可能となる。
図22乃至図24は、それぞれ、図18乃至図21のコントローラ14内のLUT15の例を示している。
図22は、バッファメモリヒットテーブルの例である。
バッファメモリヒットテーブルは、複数のバンクBA0,BA1,…BAnの各々について、バッファメモリMB内にページデータがキャッシュされているか否か、及び、バッファメモリMB内にページデータがキャッシュされている場合は、バッファメモリMB内にキャッシュされているページデータのDRAMアドレス(ロウアドレス)を規定する。
例えば、バンクBA0のバッファメモリMBにロウアドレスRA0_xのページデータが読み出されている場合、バンクBA0に対応するフラグは、1に設定され、バンクBA0に対応するDRAMアドレスは、RA0_xとなる。
また、バンクBA1のバッファメモリMBにロウアドレスRA0_yのページデータが読み出されている場合、バンクBA1に対応するフラグは、1に設定され、バンクBA1に対応するDRAMアドレスは、RA0_yとなる。
さらに、バンクBAnのバッファメモリMBにロウアドレスRA0_zのページデータが読み出されている場合、バンクBAnに対応するフラグは、1に設定され、バンクBAnに対応する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に記憶されているページデータがバンクBA0内のDRAMアドレス(ロウアドレス)RA0_aのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、リディームメモリアドレスReA_0に対応するバンクは、BA0となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA0_aとなる。
また、リディームメモリアドレスReA_1に記憶されているページデータがバンクBA0内のDRAMアドレス(ロウアドレス)RA0_bのページデータである場合、リディームメモリアドレスReA_1に対応するフラグは、1となり、リディームメモリアドレスReA_1に対応するバンクは、BA0となり、かつ、リディームメモリアドレスReA_1に対応するDRAMアドレスは、RA0_bとなる。
さらに、リディームメモリアドレスReA_6に記憶されているページデータがバンクBAn内のDRAMアドレス(ロウアドレス)RAn_gのページデータである場合、リディームメモリアドレスReA_6に対応するフラグは、1となり、リディームメモリアドレスReA_6に対応するバンクは、BAnとなり、かつ、リディームメモリアドレス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モジュール11Dの複数のバンクBA0,BA1,…BAnと、リディームメモリモジュール11Rの複数のバンクBA0,BA1,…BAnと、が一対一に対応する。従って、リディームメモリヒットテーブルは、バンク毎に設けられる。
各バンクにおいて、リディームメモリヒットテーブルは、リディームメモリアドレス(ロウアドレス)とDRAMアドレスとの関係を規定する。
例えば、バンクBA0において、リディームメモリアドレスReA_0に記憶されているページデータがDRAMアドレス(ロウアドレス)RA0_aのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA0_aとなる。
また、バンクBA1において、リディームメモリアドレスReA_0に記憶されているページデータがDRAMアドレス(ロウアドレス)RA1_dのページデータである場合、リディームメモリアドレスReA_0に対応するフラグは、1となり、かつ、リディームメモリアドレスReA_0に対応するDRAMアドレスは、RA1_dとなる。
さらに、バンクBAnにおいて、リディームメモリアドレス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: データバッファ、 MD: DRAM、 MB: バッファメモリ、 MR: リディームメモリ。
Claims (6)
- 第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のアクセスを行う、
メモリシステム。 - 第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のアクセスを行う、
プロセッサシステム。 - 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1のメモリにアクセスするコマンドに基づいて、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、を具備し、
前記第2及び第3のメモリは、同一のメモリ階層内に配置される、前記第1のメモリのキャッシュメモリであり、
前記第1のアドレスの前記データが前記第2のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第3のメモリ内に記憶されず、かつ、前記第1のアドレスの前記データが前記第3のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第2のメモリ内に記憶されない、
メモリシステム。 - 第1のアドレスを含む第1のメモリと、前記第1のメモリのデータを記憶可能な第2のメモリと、第3のメモリと、前記第1のメモリにアクセスするコマンドに基づいて、前記第1、第2、及び、第3のメモリへのアクセスを制御するコントローラと、前記コマンドを発行するプロセッサと、を具備し、
前記第2及び第3のメモリは、同一のメモリ階層内に配置される、前記第1のメモリのキャッシュメモリであり、
前記第1のアドレスの前記データが前記第2のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第3のメモリ内に記憶されず、かつ、前記第1のアドレスの前記データが前記第3のメモリ内に記憶される場合、前記第1のアドレスの前記データは、前記第2のメモリ内に記憶されない、
プロセッサシステム。 - 前記第2のメモリは、前記第1のメモリのセンスアンプとして機能する、請求項1又は3に記載のメモリシステム。
- 前記第2のメモリは、前記第1のメモリのセンスアンプとして機能する、請求項2又は4に記載のプロセッサシステム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500886A (zh) * | 2022-01-28 | 2022-05-13 | 北京拙河科技有限公司 | 一种按列分段的图像处理系统与方法 |
Family Cites Families (11)
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 | 華邦電子股份有限公司 | 記憶體編程方法以及記憶體裝置 |
-
2016
- 2016-09-20 JP JP2016183393A patent/JP2018049387A/ja active Pending
-
2017
- 2017-03-13 US US15/457,557 patent/US20180081801A1/en not_active Abandoned
- 2017-03-13 TW TW106108162A patent/TWI612466B/zh active
- 2017-03-23 CN CN201710177591.3A patent/CN107844430B/zh active Active
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 |