JP5492324B1 - プロセッサシステム - Google Patents
プロセッサシステム Download PDFInfo
- Publication number
- JP5492324B1 JP5492324B1 JP2013053661A JP2013053661A JP5492324B1 JP 5492324 B1 JP5492324 B1 JP 5492324B1 JP 2013053661 A JP2013053661 A JP 2013053661A JP 2013053661 A JP2013053661 A JP 2013053661A JP 5492324 B1 JP5492324 B1 JP 5492324B1
- Authority
- JP
- Japan
- Prior art keywords
- mode
- memory
- bit
- data
- basic units
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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/1693—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0054—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
- G11C14/0081—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Mram Or Spin Memory Techniques (AREA)
Abstract
【課題】メモリ容量を再構成可能な容量可変メモリを実現する。
【解決手段】実施形態に係わる容量可変メモリは、複数の基本単位を有し、各基本単位が1つのセルトランジスタT0と1つの抵抗変化素子R0を備えるメモリセルアレイと、1ビットの読み出し/書き込みを複数の基本単位のうちの2n個(nは整数)に対して行う第1のモード、及び、1ビットの読み出し/書き込みを複数の基本単位のうちの2m個(mは整数、かつ、n≠m)に対して行う第2のモードを、選択的に切り替えるモードセレクタ1Bと、第1及び第2のモードの切り替えを制御する制御回路とを備える。
【選択図】図7
【解決手段】実施形態に係わる容量可変メモリは、複数の基本単位を有し、各基本単位が1つのセルトランジスタT0と1つの抵抗変化素子R0を備えるメモリセルアレイと、1ビットの読み出し/書き込みを複数の基本単位のうちの2n個(nは整数)に対して行う第1のモード、及び、1ビットの読み出し/書き込みを複数の基本単位のうちの2m個(mは整数、かつ、n≠m)に対して行う第2のモードを、選択的に切り替えるモードセレクタ1Bと、第1及び第2のモードの切り替えを制御する制御回路とを備える。
【選択図】図7
Description
実施形態は、プロセッサシステムに関する。
例えば、磁気ランダムアクセスメモリ(MRAM)をキャッシュメモリとして使用することにより、低消費電力プロセッサを実現しようとする試みが検討されている。しかし、磁気ランダムアクセスメモリは、従来のキャッシュメモリであるスタティックランダムアクセスメモリ(SRAM)と比べると、動作速度が遅い。そこで、磁気ランダムアクセスメモリにおいて、高速動作を実現するためのセル構成が検討されている。
また、近年、モバイル製品などに使用されるプロセッサにおいては、低消費電力に加えて高性能化が著しく進んでおり、実行しているアプリケーションに応じて、キャッシュメモリに要求される性能も異なるのが実情である。
実施形態は、メモリ容量を再構成可能な容量可変メモリを備えるプロセッサシステムを提案する。
実施形態によれば、プロセッサシステムは、容量可変メモリと、前記容量可変メモリに対する1ビットの読み出し/書き込みを制御するプロセッサとを具備し、容量可変メモリは、複数の基本単位を有し、各基本単位が1つのセルトランジスタと1つの抵抗変化素子を備えるメモリセルアレイと、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2n個(nは整数)に対して行う第1のモード、及び、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2m個(mは整数、かつ、n≠m)に対して行う第2のモードを、選択的に切り替えるモードセレクタと、前記第1及び第2のモードの切り替えを制御する制御回路とを備え、前記プロセッサは、タグ情報を記憶するタグメモリと、前記第1及び第2のモードの切り替えを決定するコントローラとを備え、前記タグ情報は、前記1ビットの前記読み出し/書き込みを前記第1及び第2のモードのいずれで行ったかを示すモード情報を含み、前記プロセッサは、前記タグ情報に基づいて前記1ビットが前記容量可変メモリ内に記憶されているか否かを確認し、かつ、前記1ビットが前記容量可変メモリ内に記憶されているとき、前記モード情報に基づいて、前記1ビットを前記第1及び第2のモードのうちの1つを用いて読み出し、前記第1のモードにおいて、前記2 n 個の第1の基本単位内に、前記1ビットとしての第1のビットが記憶され、前記2 n 個の第2の基本単位内に、前記1ビットとしての第2のビットが記憶されているとき、前記第2のモードにおいて、前記2 m 個の前記第1及び第2の基本単位内に、前記第1のビットが記憶され、前記2 n 個の第2の基本単位内に記憶されていた前記第2のビットが消去され、前記第1及び第2のビットに関する前記タグ情報は、前記タグメモリ内にゴースト情報としてそのまま記憶される。但し、2 m =2 n ×2の関係を有する。
以下、図面を参照しながら実施形態を説明する。
1. 概要
以下の実施例では、メモリ容量(又は動作速度)を選択的に変えることができる容量可変メモリを提案する。メモリ容量の変化は、1ビットを記憶するためのセル構成を変える(再構成する)ことにより実現するため、容量可変メモリは、セル構成可変メモリと称することもできる。以下に説明する容量可変メモリは、主に、抵抗変化素子にデータを記憶する不揮発メモリに関する。但し、以下では、説明を容易化するため、例えば、キャッシュメモリへの適用が最も有力視されているSpin Transfer Torque(STT)−MRAMの実施例について説明する。
以下の実施例では、メモリ容量(又は動作速度)を選択的に変えることができる容量可変メモリを提案する。メモリ容量の変化は、1ビットを記憶するためのセル構成を変える(再構成する)ことにより実現するため、容量可変メモリは、セル構成可変メモリと称することもできる。以下に説明する容量可変メモリは、主に、抵抗変化素子にデータを記憶する不揮発メモリに関する。但し、以下では、説明を容易化するため、例えば、キャッシュメモリへの適用が最も有力視されているSpin Transfer Torque(STT)−MRAMの実施例について説明する。
以下で説明するメモリ容量(又はセル構成)を再構成可能なSTT−MRAMは、容量可変STT−MRAMと称する。容量可変STT−MRAMは、例えば、Advanced perpendicular magnetic tunnel junction(Advanced p-MTJ)をメモリ素子とし、同一の回路構成(1つのチップ)により、即ち、再設計を行うことなく、小容量から大容量までのアプリケーションに対応可能という特徴を有する。
また、以下の実施例では、容量可変STT−MRAMを用いた適応容量制御(ASC:Adaptive storage control)キャッシュアーキテクチャについても提案する。この適応容量制御キャッシュアーキテクチャによれば、上述の容量可変STT−MRAMの特徴を最大限に活用することが可能である。
本実施例で提案する内容は、主に下記の3点である。
第一に、容量可変STT−MRAMの設計(回路構成)について提案する。
一般的に、MRAMは、メモリ容量と動作速度とがトレードオフの関係にある。これに対し、容量可変STT−MRAMでは、アプリケーションに応じて、メモリ容量及び動作速度を選択的に変えることができるため、消費電力の削減と高性能化とを同時に実現可能である。
一般的に、MRAMは、メモリ容量と動作速度とがトレードオフの関係にある。これに対し、容量可変STT−MRAMでは、アプリケーションに応じて、メモリ容量及び動作速度を選択的に変えることができるため、消費電力の削減と高性能化とを同時に実現可能である。
例えば、容量可変STT−MRAMをL2キャッシュメモリに適用するときは、Operating system(OS)により最適なキャッシュ容量を選択する。即ち、現在、実行しているアプリケーションが動作速度(レイテンシー)を重視するときは、容量可変STT−MRAMのキャッシュ容量を減少させ、動作速度を向上させる。一方、現在、実行しているアプリケーションがキャッシュ容量を重視するときは、容量可変STT−MRAMのキャッシュ容量を増加させる。
このように、容量可変STT−MRAMは、動作速度を重視するアプリケーションとキャッシュ容量を重視するアプリケーションの両方に効果を発揮する。
第二に、容量可変STT−MRAMを最大限に活用する適応容量制御キャッシュアーキテクチャを提案する。
容量可変STT−MRAMは、現在、実行しているアプリケーションに応じて、最適なキャッシュ容量を選択することにより、キャッシュメモリとしてのパフォーマンスを最大化することができる。即ち、そのアプリケーションにおいて、キャッシュメモリへのアクセスパターンを判定し、それに基づいて、キャッシュ容量を選択する。
例えば、キャッシュメモリへのアクセスパターンから数種類の動作フェーズを設定し、これら動作フェーズの遷移に伴いキャッシュ容量を動的に変更する適応容量制御キャッシュアーキテクチャを提案する。
第三に、アプリケーション内で使用される変数によりメモリアクセスのパターンが異なる点に着目し、キャッシュメモリのアドレスに応じてキャッシュ容量を変える手法を提案する。
これは、所定のタグアドレスに対してアクセスが集中すると、スラッシングによるラッシュが発生することを考慮したものである。これを防ぐために、アプリケーションのセット毎にキャッシュメモリのウェイ数(Way number)を可変にし、セット毎のアクセスパターンに応じた最適なウェイ数を選択する。
例えば、動作速度(レイテンシー)を重視するセットにおいては、キャッシュ容量を小さくし、高速なメモリアクセスを実現する。一方、キャッシュ容量を重視するセットにおいては、キャッシュ容量を大きくする。
ここで、動作速度を重視するとは、キャッシュ容量を小さくしても、キャッシュメモリ内に、アクセスするデータが存在する確率(ヒット確率)が大きく、かつ、メインメモリとしてDRAMからデータを取得するときに生じるレイテンシーペナルティー(動作速度の低下)を、キャッシュメモリ内にアクセスするデータが存在しないミスペナルティーよりも重視する、という意味である。
即ち、小容量のキャッシュメモリのヒット確率が大きいときは、メインメモリにアクセスすることがほとんどないため、キャッシュメモリの動作速度を最大にすることが、結果として、システム全体の高速動作に貢献する。
また、メモリ容量(キャッシュ容量)を重視するとは、キャッシュ容量を小さくすると、キャッシュメモリ内に、アクセスするデータが存在しない確率(ミス確率)が大きく、キャッシュメモリ内にアクセスするデータが存在しないミスペナルティー(動作速度の低下)を、キャッシュメモリとしてMRAMの動作速度を低下させなければならないというレイテンシーペナルティーよりも重視する、という意味である。
即ち、小容量のキャッシュメモリのミス確率が大きいときは、キャッシュメモリの動作速度を落としても、キャッシュ容量を最大にすることが、メインメモリへのアクセスをなくすことに繋がるため、結果として、システム全体の高速動作に貢献する。
2. 読み出し速度のシミュレーション
本例では、STT−MRAMの回路構成と読み出し速度とを説明する。
本例では、STT−MRAMの回路構成と読み出し速度とを説明する。
図1は、1T−1MTJタイプSTT−MRAMのメモリセルアレイの例を示し、図2は、図1のメモリセルアレイからデータを読み出すときに使用されるセンスアンプの例を示している。
メモリセルMCは、セルトランジスタ(FET)T及びMTJ素子Rを備える。
セルトランジスタTのゲートは、ワード線WLi(i=0〜nのうちの1つ)に接続される。メモリセルMCは、ビット線BLjとソース線SLj(j=0〜7のうちの1つ)との間に接続される。カラムセレクタ1は、カラム選択信号CSLに基づいて、8カラムCOL0〜COL7のうちの1つを選択する。選択された1つのカラムCOLj内のビット線BLjは、センスアンプ2に電気的に接続される。
センスアンプ2は、ビット線BLjの電位とリファレンス電位Refとを比較し、選択されたメモリセルMCのデータを判定し、読み出しデータOutを出力する。センスアンプ2は、初期化回路(プリチャージ/イコライズ回路)3により初期化される。制御信号SE1が“L”のとき、センスアンプ2が初期化され、制御信号SE2が“H”のとき、センスアンプ2が活性化される。
本例では、選択されたメモリセルMCが接続されるワード線WLiに、リファレンスセルRC内のセルトランジスタTが接続される。リファレンスセルRCは、パラレル状態(P)のMTJ素子RPとアンチパラレル状態(AP)のMTJ素子RAPを備えることにより、リファレンス電位Refを生成する。
このようなSTT−MRAMにおいて、ダイナミック電力を削減するためには、読み出し電力を削減する必要がある。しかし、読み出し電力を削減するために読み出し電流Irを小さくすると、読み出し速度が低下する(読み出し遅延が増加する)。
読み出し電流と読み出し遅延の関係を調べるために、図1及び図2の回路を用いてシミュレーションを行った。その結果を図3に示す。
図3において、横軸は、読み出し電流、縦軸は、リードアクセスタイムである。読み出し電流は、アンチパラレル状態のMTJ素子からデータを読み出す場合を示している。また、リードアクセスタイムは、選択されたワード線が電源電位の半分(Vdd/2)になってから、センスアンプがデータを出力するまでの時間とする。
また、パラメータとして、1本のビット線に接続されるメモリセル数(ビット数)を採用した。本例では、1本のビット線に接続されるメモリセル数(アレイ構造)は、128ビット、256ビット、512ビット、及び、1024ビットの4通りとした。
SPICEを用いた回路レベルのシミュレーションによれば、2nsのリードアクセスタイムを実現するためには、128ビット、256ビット、512ビット、及び、1024ビットの4通りのアレイ構造に対して、それぞれ、8μA、13μA、20μA、50μAの読み出し電流が必要であった。
この結果から分かることは、アレイ構造が大きくなるにつれて、所定の読み出し速度を維持するための読み出し電流が大きくなる、ということである。これは、所定の読み出し速度を維持するために、1本のビット線に接続可能なメモリセル数に上限が存在することを意味する。これは、即ち、面積ペナルティーに繋がる。
数メガバイトクラスの容量を持つメモリマクロを備えるMRAMにおいては、面積効率が重要な設計基準であるため、面積効率を向上させるためには、設計ルールが許す範囲内で、セルトランジスタを可能な限り最小サイズで設計することが重要である。
図4は、2T−2MTJタイプSTT−MRAMのメモリセルアレイの例を示し、図5は、図4のメモリセルアレイからデータを読み出すときに使用されるセンスアンプの例を示している。
メモリセルMCは、2つのセルトランジスタ(FET)T0,T1及び2つのMTJ素子R0,R1を備える。
セルトランジスタT0,T1のゲートは、ワード線WLi(i=0〜nのうちの1つ)に接続される。メモリセルMCは、ビット線BLj/bBLjとソース線SLj/bSLj(j=0〜3のうちの1つ)との間に接続される。カラムセレクタ1は、カラム選択信号CSLに基づいて、4カラムCOL0〜COL3のうちの1つを選択する。選択された1つのカラムCOLj内のビット線BLjは、センスアンプ2に電気的に接続される。
センスアンプ2は、ビット線BLjの電位とビット線bBLjの電位とを比較し、選択されたメモリセルMCのデータを判定し、読み出しデータOutを出力する。センスアンプ2は、初期化回路(プリチャージ/イコライズ回路)3により初期化される。制御信号SE1が“L”のとき、センスアンプ2が初期化され、制御信号SE2が“H”のとき、センスアンプ2が活性化される。
本例では、1つのメモリセルMC内の2つのMTJ素子R0,R1に相補データを記憶する。即ち、2つのMTJ素子R0,R1の一方をパラレル状態(例えば、低抵抗状態)とし、他方をアンチパラレル状態(例えば、高抵抗状態)とする。これにより、読み出し時には、ビット線BLjの電位とビット線bBLjの電位とを比較する差動読み出しが可能になり、図1及び図2に示すアレイ構造に比べて、高速な読み出し動作を実現することができる。
しかし、1ビットを記憶するために必要なメモリセルのサイズが、図1及び図2のアレイ構造のメモリセルのサイズの2倍となるため、キャッシュ容量を大きくするには不利である。また、読み出しマージンの向上によるリードアクセスタイムの向上が図れる反面、読み出し時に、2つのMTJ素子R0,R1に読み出し電流を流す必要があるため、読み出し電流が大きくなる。
3. 基本構成
図6は、容量可変STT−MRAMの全体構成を示している。
図6は、容量可変STT−MRAMの全体構成を示している。
メモリセルアレイ10は、複数のMTJ素子(メモリセル)のアレイを備える。ロウデコーダ11a及びカラムデコーダ11bは、アドレス信号Addに基づいて、メモリセルアレイ10内のMTJ素子をランダムアクセスする。
カラムセレクタ1Aは、カラムデコーダ11bからの信号に基づいて、メモリセルアレイ10とセンスアンプ2とを互いに電気的に接続する役割を有する。モードセレクタ1Bは、1ビット(データ)の書き込み/読み出しを行う基本単位(セル構成)を変化させる役割を有する。センスアンプ2は、メモリセルアレイ10からデータOutを読み出すときに使用される。
制御回路14は、ロウデコーダ11a、カラムデコーダ11b、モードセレクタ1B、及び、センスアンプ2の動作を制御する。例えば、制御回路14は、キャッシュコントローラ(CPU)の制御の下で、以下で説明する適応容量制御を行う。
尚、カラムセレクタ1Aとモードセレクタ1Bの位置関係は、逆でもよい。
図7は、容量可変STT−MRAMのセル構成の切り替え部を示している。
メモリセルアレイは、セルトランジスタT0,T1,T2,T3及びMTJ素子R0,R1,R2,R3を備える。
セルトランジスタT0,T1のゲートは、ワード線WL0に接続され、セルトランジスタT2,T3のゲートは、ワード線WL1に接続される。セルトランジスタT0,T1,T2,T3は、それぞれ、MTJ素子R0,R1,R2,R3に直列接続される。
セルトランジスタT0,T2は、ビット線BL0に接続され、MTJ素子R0,R2は、ソース線SL0に接続される。セルトランジスタT1,T3は、ビット線BL1に接続され、MTJ素子R1,R3は、ソース線SL1に接続される。
ビット線BL0,BL1は、カラムセレクタ1Aを経由して、モードセレクタ1B(SEL0,SEL1)に接続される。
リファレンスセルRCは、セルトランジスタTdを備える。また、リファレンスセルRCは、並列接続されるパラレル状態(P)のMTJ素子RPとアンチパラレル状態(AP)のMTJ素子RAPを備える。セルトランジスタTdは、ダミービット線DBLに接続され、MTJ素子RP,RAPは、ダミーソース線DSLに接続される。
ダミービット線DBLは、モードセレクタ1B(SEL0,SEL1)に接続される。
モードセレクタSEL0は、制御信号φ0に基づいて、ビット線BL0の電位VBL0及びダミービット線DBLのリファレンス電位Refのうちの1つを、センスアンプ2に転送する。また、モードセレクタSEL1は、制御信号φ1に基づいて、ビット線BL1の電位VBL1及びダミービット線DBLのリファレンス電位Refのうちの1つを、センスアンプ2に転送する。
センスアンプ2は、モードセレクタSEL0の出力とモードセレクタSEL1の出力とを比較し、選択されたメモリセルMCのデータを判定し、読み出しデータOutを出力する。センスアンプ2は、初期化回路(プリチャージ/イコライズ回路)3により初期化される。制御信号SE1が“L”のとき、センスアンプ2が初期化され、制御信号SE2が“H”のとき、センスアンプ2が活性化される。
このような容量可変STT−MRAMによれば、例えば、図8に示すように、メモリセルMCの構成(動作モード)を、(a)1T−1MTJセル、(b)2T−2MTJセル、及び、(c)4T−4MTJセルのうちから1つを選択することが可能である。
1T−1MTJセルモードでは、リードメカニズムとしてリファレンス電位Refを使用する(with reference)。これに対し、2T−2MTJセルモード、及び、4T−4MTJセルモードでは、リードメカニズムとして差動読み出しを採用するため、リファレンス電位Refを使用しない(without reference)。
表1は、1T−1MTJセルモードでの読み出し電流を1とし、4T−4MTJセルモードでのメモリ容量(セルサイズに反比例)を1としたときの比較結果である。
1T−1MTJセルモードでは、メモリセルのサイズが最小であるため、メモリ容量としては、4T−4MTJセルモードの4倍である。しかし、読み出し電流が小さいため、センスマージンは低い(Low)。
4T−4MTJセルモードでは、メモリセルのサイズが最大で、読み出し電流が大きいため、センスマージンは高い(High)。しかし、メモリセルのサイズが大きいため、メモリ容量としては、1T−1MTJセルモードの1/4倍である。
2T−2MTJセルモードでは、1T−1MTJセルモードと4T−4MTJセルモードとの中間の性質を有する。即ち、メモリ容量としては、4T−4MTJセルモードの2倍であり、センスマージンは中間である(Middle)。
これらのモードを、例えば、キャッシュコントローラにより、現在、実行しているアプリケーションに応じて変化させる。これにより、MRAMキャッシュにおける低消費電力と高性能化とを両立することができる。
尚、本例では、セル構成(動作モード)を、(a)1T−1MTJセル、(b)2T−2MTJセル、及び、(c)4T−4MTJセルの3つとしたが、これに限られることはない。例えば、これら以外のセル構成、例えば、6T−6MTJセル、8T−8MTJセルなどのxT−xMTJセル(xは偶数)を採用してもよい。また、モードの数についても、3つに限られない。モードの数は、2つ以上であればよい。
以下、上述の3つのモードにおける動作を詳細に説明する。
(a)1T−1MTJセルモード
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0は、“H”に設定され、ワード線(非選択ワード線)WL1は、“L”に設定される。ビット線(選択ビット線)BL0は、“H”に設定され、ビット線(非選択ビット線)BL1は、“L”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0は、“H”に設定され、ワード線(非選択ワード線)WL1は、“L”に設定される。ビット線(選択ビット線)BL0は、“H”に設定され、ビット線(非選択ビット線)BL1は、“L”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
モードセレクタSEL0は、ビット線BL0の電位VBL0を選択し、電位VBL0をセンスアンプ2に転送する。モードセレクタSEL1は、リファレンス電位Refを選択し、リファレンス電位Refをセンスアンプ2に転送する。読み出し電流Irは、選択されたメモリセルMC内の1つのMTJ素子R0に流れる。
1T−1MTJセルモードは、上述の3つのモードの中でセル密度が最も高くなるモードである。読み出し動作は、例えば、アクセスの対象となるメモリセル(選択されたメモリセル)MCに流れる読み出し電流Irと、リファレンスセルに流れるリファレンス電流との差を増幅することにより行われる。
リファレンスセルは、既に述べたように、例えば、パラレル状態(P)のスピンを持つ低抵抗MTJ素子RPと、アンチパラレル状態(AP)のスピンを持つ高抵抗MTJ素子RAPとを、並列接続した構成を有する。即ち、低抵抗MTJ素子RPと高抵抗MTJ素子RAPとにより生成される抵抗値rrefは、低抵抗MTJ素子RPの抵抗値rPと高抵抗MTJ素子RAPの抵抗値rAPの半分(rP+rAP)/2である。
ここで、読み出しマージンは、磁気抵抗比(MR比)RA、即ち、(rAP−rP)/rPによって定まる。しかし、1T−1MTJセルモードでは、選択されたメモリセル内のMTJ素子の抵抗値rP又はrAPと、リファレンスセル内のMTJ素子の抵抗値rref=(rP+rAP)/2とを比較するため、実質的なMR比は、RAの半分になる。
従って、このモードでは、SRAMに比べて、読み出し遅延が非常に大きくなってしまう。一方、キャッシュ容量(メモリ容量)については、セル密度がSRAMの約4倍となるため、SRAMの約4倍のキャッシュ容量を実現することが可能である。
(b)2T−2MTJセルモード
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0は、“H”に設定され、ワード線(非選択ワード線)WL1は、“L”に設定される。ビット線(選択ビット線)BL0,BL1は、共に、“H”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0は、“H”に設定され、ワード線(非選択ワード線)WL1は、“L”に設定される。ビット線(選択ビット線)BL0,BL1は、共に、“H”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
モードセレクタSEL0は、ビット線BL0の電位VBL0を選択し、電位VBL0をセンスアンプ2に転送する。モードセレクタSEL1は、ビット線BL1の電位VBL1を選択し、電位VBL1をセンスアンプ2に転送する。読み出し電流Irは、選択されたメモリセルMC内の2つのMTJ素子R0,R1に流れる。
2T−2MTJセルモードは、1ビットのデータを、2つのMTJ素子R0,R1に相補データとして記憶する。即ち、センスアンプ2は、2つのMTJ素子R0,R1の一方(高抵抗状態)に流れる電流と、他方(低抵抗状態)に流れる電流とを比較すること(差動読み出し)により、選択されたメモリセルMCに記憶されたデータを判定する。このため、リファレンスセルは不要である。
このモードは、1T−1MTJセルモードに比べて、キャッシュ容量(メモリ容量)が半分になるが、それでも、SRAMに比べて、約2倍のキャッシュ容量を実現することが可能である。また、リファレンスセルを使用せずに読み出し動作を行うため、1T−1MTJセルモードに比べて、読み出しマージンが2倍になり、かつ、高速読み出しが可能になる。さらに、リファレンスセルを使用しないことから、1T−1MTJセルモードに比べて、読み出し時のダイナミック電力が小さいという特徴を有する。
(c)4T−4MTJセルモード
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0,WL1は、共に、“H”に設定される。ビット線(選択ビット線)BL0,BL1は、共に、“H”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
このモードでは、読み出し時、例えば、ワード線(選択ワード線)WL0,WL1は、共に、“H”に設定される。ビット線(選択ビット線)BL0,BL1は、共に、“H”に設定される。ソース線SL0,SL1は、共に、“L”に設定される。
モードセレクタSEL0は、ビット線BL0の電位VBL0を選択し、電位VBL0をセンスアンプ2に転送する。モードセレクタSEL1は、ビット線BL1の電位VBL1を選択し、電位VBL1をセンスアンプ2に転送する。読み出し電流Irは、選択されたメモリセルMC内の4つのMTJ素子R0,R1,R2,R3に流れる。
4T−4MTJセルモードは、高速読み出しを実現するためのモードである。高速読み出しを行うために、1ビットのデータを4つMTJ素子R0,R1,R2,R3を用いて記憶する。読み出し時には、2本のワード線WL0,WL1を立ち上げる。読み出し電流Irは、センスアンプ2から、4つの電流パスを経由して、ソース線SL0,SL1)に流れる。
従って、このモードでは、読み出し電流は、2T−2MTJセルモードに比べて、2倍になるため、高速読み出しが可能になる。しかし、読み出し電流が増えるため、読み出し時のダイナミック電力は増加する。また、1ビットのデータを4つMTJ素子R0,R1,R2,R3を用いて記憶するため、セル密度は、1T−1MTJセルモードの1/4となる。即ち、キャパシタ容量は、SRAMとほぼ同じになる。
4. 動作メカニズム(タグメモリの更新)
本例では、上述の容量可変STT−MRAMをL2キャッシュメモリに使用したときの動作メカニズムについて述べる。
本例では、上述の容量可変STT−MRAMをL2キャッシュメモリに使用したときの動作メカニズムについて述べる。
図9は、プロセッサシステムを示している。
プロセッサ4は、現在、実行しているアプリケーションで使用されるデータをキャッシュメモリとしてのMRAM5に一時的に記憶させる。また、プロセッサ4は、そのデータがキャッシュメモリとしてのMRAM5のどこに記憶されているかを示すアドレス情報やその履歴を記憶するタグメモリ(RAM)6を備える。
プロセッサ4は、MRAM5に対してデータを要求するときに、タグメモリ6を参照し、要求されるデータがMRAM5内に記憶されている(ヒット)ことを確認した後に、MRAM5からデータを読み出す。タグメモリ6を参照した結果、要求されるデータがMRAM5内に記憶されていないときは(ミス)、例えば、メインメモリとしてのDRAMからデータを読み出す。
ここで、上述の容量可変STT−MRAMでは、複数のセル構成(動作モード)のうちから、現在、実行しているアプリケーションに最適な1つのモードを選択する。従って、MRAM5に対する書き込み/読み出しを制御するプロセッサ4は、データが複数のモードのうちのどのモードでMRAM5内に記憶されているかを知る必要がある。
このため、例えば、プロセッサ4内のタグメモリ6内に、MRAM5に記憶されたデータのモード情報、例えば、上述の(a)1T−1MTJセルモード、(b)2T−2MTJセルモード、(c)4T−4MTJセルモードのうちのどのモードで記憶されたか、を追加で記憶させる。
また、このモード情報は、モードが変更されると、更新される。
本例では、タグメモリ6内に、アドレス情報、セキュリティ情報、有効/無効情報、ダーティ情報、モード情報、及び、LRU(least resent update)情報を記憶させる。
アドレス情報は、データがMRAM5内に記憶されていることを示す情報である。本例では、アドレス情報は、18ビットであるが、このビット数は、メモリセルアレイ内の1ウェイのサイズに応じて変化する。
セキュリティ情報(1ビット)は、例えば、OSで保護されているか否かを示す情報のことである。有効/無効情報(1ビット)は、アドレス情報が有効か又は無効かを示す情報である。即ち、アドレス情報が有効であるとは、MRAM5内に実際にデータが記憶されていることを意味する。また、アドレス情報が無効であるとは、MRAM5内にデータが記憶されていたが、キャッシュラインからの追い出しにより、現在は、MRAM5内にデータが記憶されていないこと(履歴情報又はゴースト情報)を意味する。
ダーティ情報(1ビット)は、キャッシュメモリとしてのMRAM5内において更新されたデータが、例えば、メインメモリとしてのDRAMに反映されているかを示す情報である。更新データがメインメモリに反映されていないときは、所定の時期に、更新データをメインメモリに反映させる処理を行う。
モード情報は、上述の容量可変STT−MRAMを有効にするために新たに設けた情報である。例えば、容量可変STT−MRAMのセル構成(動作モード)が、上述の(a)1T−1MTJセルモード、(b)2T−2MTJセルモード、(c)4T−4MTJセルモードの3つである場合には、表2に示すように、2ビットのモード情報を設ける。
モード情報のビット数は、再構成可能なセル構成の数により変化する。再構成可能なセル構成の数が2y通り以下の場合には、yビットのモード情報により、データが2y通り以下のモードのうちのどのモードでMRAM5内に記憶されたかを知ることができる。
LRUポジション情報は、MRAM5内に記憶されたデータの新旧を知るための情報である。キャッシュメモリとしてのMRAM5内には、常に新しいデータが記憶されるため、使用頻度が少ない古いデータについては、順次、MRAM5から削除(追い出し)をする必要がある。そこで、LRUポジション情報により、データの新旧の相対的な位置を把握する。
尚、MRAM5内に記憶された時期が古いデータのことを、LRU側のデータといい、MRAM5内に記憶された時期が新しいデータのことを、MRU(most recent update)側のデータという。
そして、プロセッサ4内のキャッシュコントローラ(CPU)7は、タグメモリ6の情報、例えば、MRAM5内のメモリセルアレイのセット毎に設定されたセル構成又はモードに基づいて、MRAM5に対するデータアクセスを制御する。
また、カウンター8は、例えば、後述する適応容量制御、即ち、モード選択の判定条件となる各ビットに対するアクセス回数をカウントする。
図10は、MRAMにデータアクセスするときのフローを示している。
まず、要求されるデータがL1キャッシュメモリ内に存在しないとき(L1 miss)、L2キャッシュメモリとしてのMRAM内にそのデータが存在するか否かを、タグメモリを参照することにより確認する(ステップST1: L2 tag access)。
L2キャッシュメモリとしてのMRAM内に、要求されるデータが存在すると判明したときは(ヒット)、タグメモリ内のモード情報に基づいて、そのデータをMRAM内に記憶させたときのモードをチェックする(ステップST3〜ST4)。
そして、モード情報に基づいて、例えば、図8に示すように、読み出し方式を切り替えることにより、L2キャッシュメモリとしてのMRAMからデータを読み出す(ステップST5: L2 data access)。
一方、L2キャッシュメモリとしてのMRAM内に、要求されるデータが存在しないと判明したときは(L2 miss)、そのデータが過去にMRAM内に記憶されたことがあるデータであるか否かをチェックする処理(Ghost hit)などを行った後、メインメモリからデータを読み出す。
5. 適応容量制御(ASC:Adaptive storage control)
本例では、上述の容量可変STT−MRAMを最大限に活用するために、適応容量制御について説明する。適応容量制御は、容量可変STT−MRAMへのアクセスパターンを予測するカウンターを用いることにより、現在、実行しいているアプリケーションに応じて、容量可変STT−MRAMのキャッシュ容量を変化させる。
本例では、上述の容量可変STT−MRAMを最大限に活用するために、適応容量制御について説明する。適応容量制御は、容量可変STT−MRAMへのアクセスパターンを予測するカウンターを用いることにより、現在、実行しいているアプリケーションに応じて、容量可変STT−MRAMのキャッシュ容量を変化させる。
本例では、2レベルのキャッシュ階層を想定する。L1キャッシュメモリとしては、SRAMを使用し、L2キャッシュメモリとしては、上述の容量可変STT−MRAMを使用する。容量可変STT−MRAMにおいては、メモリ容量(キャッシュ容量)と動作速度(レイテンシー)とがトレードオフの関係にある。
このため、メモリ容量を大きくすると、動作速度が遅くなる。また、メモリ容量が大きいため、L2キャッシュメモリ内にデータが存在しない確率(ミス率)が低下する。これに対し、メモリ容量を小さくすると、動作速度が速くなる。また、メモリ容量が小さいため、L2キャッシュメモリ内にデータが存在しない確率が増加する。
ところで、ラストレベルキャッシュLLCにおいてキャッシュミスが発生すると、オフチップのメインメモリにアクセスし、メインメモリからデータを取得しなければならないため、消費電力の面からも、また、レイテンシーの面からも、重大なペナルティーとなる。従って、L2キャッシュメモリとしてのMRAMにおいて、最適なキャッシュ容量を選択することにより、このようなペナルティーを回避し、システム全体のキャッシュ性能を最大化することが可能となる。
図11は、セル構成(動作モード)とウェイ数の例を示している。
セル構成とウェイ数は、例えば、キャッシュコントローラ(CPU)により制御される。ここで、ウェイ数とは、MRAMキャッシュの1ブロックサイズに対応させるキャッシュラインの数を意味する。ウェイ数が多いほどデータの競合が少なく、ヒット率が高くなる。即ち、ミスペナルティーが減少する。
1T−1MTJセルモードにおいて4ウェイのとき、例えば、2T−2MTJセルモードでは、2ウェイに変更し、4T−4MTJセルモードでは、1ウェイに変更する。
このように、適応容量制御を行うことにより、キャッシュメモリとしてのパフォーマンスを最大化することができる。
尚、例えば、図12に示すように、メモリマクロ内のセット毎にMRAM(キャッシュメモリ)のウェイ数を可変にし、セット毎のアクセスパターンに応じた最適なウェイ数を選択することが可能である。
6. 適応容量制御のための最適容量予測
適応容量制御は、例えば、現在、実行しているアプリケーションに応じて、自動的に最適なL2キャッシュサイズを確定する。そのアプリケーションのMRAMキャッシュへのアクセス傾向を予測するために、例えば、カウンターを導入する。
適応容量制御は、例えば、現在、実行しているアプリケーションに応じて、自動的に最適なL2キャッシュサイズを確定する。そのアプリケーションのMRAMキャッシュへのアクセス傾向を予測するために、例えば、カウンターを導入する。
モードの変更は、“キャッシュ容量の拡大(Expanding)”と“キャッシュ容量の縮小(Shrinking)”の2つに分類される。モードの変更のフローを図13に示す。“キャッシュ容量の拡大”を行う基準は、次の不等式が成立したときである。
キャッシュ容量を拡大するメリット > キャッシュ容量を拡大するデメリット
キャッシュ容量を拡大するメリットの大きさを示す指標として、“Avoidable misses × L2 miss penalty”を挙げることができる。また、キャッシュ容量を拡大するデメリットの大きさを示す指標として、“Current hits × Expanding hit penalty”を挙げることができる。
キャッシュ容量を拡大するメリットの大きさを示す指標として、“Avoidable misses × L2 miss penalty”を挙げることができる。また、キャッシュ容量を拡大するデメリットの大きさを示す指標として、“Current hits × Expanding hit penalty”を挙げることができる。
ここで、“Avoidable misses”とは、キャッシュ容量を拡大することで回避できるミスの回数を表す。“L2 miss penalty”は、L2キャッシュメモリ(MRAM)でのミスにより発生するメインメモリへのアクセスによって生じる動作遅延とエネルギーを表す。
また、“Current hits”とは、キャッシュ容量を拡大することで増加するヒットの回数を表す。“Expanding hit penalty”は、キャッシュ容量を拡大することで増加するヒット時の動作遅延とエネルギーを表す。
尚、“L2 miss penalty”とExpanding hit penaltyは、プロセッサの構成によって変化する。
本例では、MRAM(L2キャッシュメモリ)は、1T−1MTJセルモード、2T−2MTJセルモード、及び、4T−4MTJセルモードのうちの1つを選択する。ウェイ数は、セット毎に変更可能であり(set associative)、書き込みレイテンシーは、16サイクルであり、ブロックサイズは、64バイトである。また、MRAMキャッシュ内においてデータの更新があっても、直ちに、これをメインメモリに反映させないライトバック方式を採用する。
・ 1T−1MTJセルモード(Slow mode)
メモリ容量は、2メガバイト、ウェイ数は、16ウェイ、読み出しレイテンシー(hit latency)は、18サイクルである。
メモリ容量は、2メガバイト、ウェイ数は、16ウェイ、読み出しレイテンシー(hit latency)は、18サイクルである。
・ 2T−2MTJセルモード(Middle mode)
メモリ容量は、1メガバイト、ウェイ数は、8ウェイ、読み出しレイテンシー(hit latency)は、15サイクルである。
メモリ容量は、1メガバイト、ウェイ数は、8ウェイ、読み出しレイテンシー(hit latency)は、15サイクルである。
・ 4T−4MTJセルモード(Fast mode)
メモリ容量は、512キロバイト、ウェイ数は、4ウェイ、読み出しレイテンシー(hit latency)は、13サイクルである。
メモリ容量は、512キロバイト、ウェイ数は、4ウェイ、読み出しレイテンシー(hit latency)は、13サイクルである。
これに対し、メインメモリとしてのDRAMでは、例えば、メモリ容量は、2ギガバイト、読み出しレイテンシーは、100サイクルである。
ここで、MRAMキャッシュにおける18/15/13サイクルのレイテンシー(動作遅延)は、“Expanding hit penalty”に含まれる。また、メインメモリにおける100サイクルのレイテンシー(動作遅延)は、“L2 miss penalty”に含まれる。
以下、最適なL2キャッシュサイズを決定する例を、図13に基づき説明する。
ここでは、例えば、カウンターを用いて、Nhit−A、Nhit−B、及び、Nhit−Cをカウントし、1T−1MTJセルモード(Slow mode)、2T−2MTJセルモード(Middle mode)、4T−4MTJセルモード(Fast mode)のうちの1つを選択する例を説明する。
図13において、□で表記される領域A,B,C1,C2は、1つのデータを記憶するための基本単位を意味する。
Nhit−Aは、4つの領域A,B,C1,C2のうち、MRU(Most recent update)側の1つの領域Aに対するアクセス頻度を表している。Nhit−Bは、4つの領域A,B,C1,C2のうち、MRU側から2つめに存在する1つの領域Bに対するアクセス頻度を表している。Nhit−Cは、4つの領域A,B,C1,C2のうち、LRU(Least recent update)側の2つの領域C1,C2に対するアクセス頻度を表している。
但し、アクセス頻度とは、例えば、一定時間内におけるアクセス回数を意味する。また、Nhit−Cについては、2つの領域C1,C2のアクセス頻度の平均値又は合計値を意味する。
・ “1T−1MTJセルモード”から“2T−2MTJセルモード”への変更
1T−1MTJセルモードでは、4つの領域A,B,C1,C2にそれぞれ異なるデータが記憶される。この状態において、例えば、Nhit−C<α×(Nhit−A+Nhit−B)を満たしたときは、キャッシュコントローラ(CPU)により、1T−1MTJセルモードから2T−2MTJセルモードに変更する。即ち、キャッシュ容量(メモリ容量)を縮小する(shrinking)。
1T−1MTJセルモードでは、4つの領域A,B,C1,C2にそれぞれ異なるデータが記憶される。この状態において、例えば、Nhit−C<α×(Nhit−A+Nhit−B)を満たしたときは、キャッシュコントローラ(CPU)により、1T−1MTJセルモードから2T−2MTJセルモードに変更する。即ち、キャッシュ容量(メモリ容量)を縮小する(shrinking)。
この条件式は、2つの領域A,Bのアクセス頻度(α×(Nhit−A+Nhit−B))が、2つの領域C1,C2のアクセス頻度(Nhit−C)よりも高いため、キャッシュ容量を縮小するメリット(2つの領域A,Bに記憶されたデータのレイテンシーの向上)が、キャッシュ容量を縮小するデメリット(2つの領域C1,C2に記憶されていたデータをメインメモリからアクセスするときのアクセスタイムの増加)よりも大きい、ということを意味する。
ここで、条件式中のαは、メリットとデメリットのどちらが勝っているかを判断するための指標であり、具体的には、2つの領域A,Bのアクセス頻度と2つの領域C1,C2のアクセス頻度との差を決める値である。この値は、プロセッサシステム、又は、そのシステム内で実行するアプリケーションの種類などによって決定される。
・ “2T−2MTJセルモード”から“4T−4MTJセルモード”への変更
2T−2MTJセルモードでは、実質的に2つの領域A,Bにそれぞれ異なるデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、2つの領域B,C2に1つのデータ(相補データ)が記憶される。
2T−2MTJセルモードでは、実質的に2つの領域A,Bにそれぞれ異なるデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、2つの領域B,C2に1つのデータ(相補データ)が記憶される。
即ち、2T−2MTJセルモードでは、1T−1MTJセルモードで2つの領域C1,C2に記憶されていたデータが消去されている。但し、1T−1MTJセルモードで2つの領域C1,C2に記憶されていたデータに関する情報は、履歴(ゴースト情報)として、タグメモリ内に引き続き記憶されている。
この状態において、例えば、Nhit−B<β×Nhit−Aを満たしたときは、キャッシュコントローラ(CPU)により、2T−2MTJセルモードから4T−4MTJセルモードに変更する。即ち、キャッシュ容量(メモリ容量)を縮小する(shrinking)。
この条件式は、1つの領域Aのアクセス頻度(β×Nhit−A)が、1つの領域Bのアクセス頻度(Nhit−B)よりも高いため、キャッシュ容量を縮小するメリット(1つの領域Aに記憶されたデータのレイテンシーの向上)が、キャッシュ容量を縮小するデメリット(1つの領域Bに記憶されていたデータをメインメモリからアクセスするときのアクセスタイムの増加)よりも大きい、ということを意味する。
ここで、条件式中のβは、メリットとデメリットのどちらが勝っているかを判断するための指標であり、具体的には、1つの領域Aのアクセス頻度と1つの領域Bのアクセス頻度との差を決める値である。この値は、プロセッサシステム、又は、そのシステム内で実行するアプリケーションの種類などによって決定される。
・ “4T−4MTJセルモード”から“2T−2MTJセルモード”への変更
4T−4MTJセルモードでは、実質的に1つの領域Aにデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、かつ、そのデータと同じデータ(相補データ)が2つの領域B,C2に記憶される。
4T−4MTJセルモードでは、実質的に1つの領域Aにデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、かつ、そのデータと同じデータ(相補データ)が2つの領域B,C2に記憶される。
即ち、4T−4MTJセルモードでは、1T−1MTJセルモードで2つの領域C1,C2に記憶されていたデータ及び2T−2MTJセルモードで1つの領域Bに記憶されていたデータがそれぞれ消去されている。但し、これらの3つの領域B,C1,C2に記憶されていたデータに関する情報は、履歴(ゴースト情報)として、タグメモリ内に引き続き記憶されている。
この状態において、例えば、Nhit−B>β×Nhit−Aを満たしたときは、キャッシュコントローラ(CPU)により、4T−4MTJセルモードから2T−2MTJセルモードに変更する。即ち、キャッシュ容量(メモリ容量)を拡大する(expanding)。
この条件式は、1つの領域Aのアクセス頻度(β×Nhit−A)が、1つの領域Bのアクセス頻度(Nhit−B)よりも低いため、キャッシュ容量を拡大するメリット(2つの領域A,Bのデータをキャッシュメモリからアクセス可能になることによるアクセスタイムの短縮)が、キャッシュ容量を拡大するデメリット(2つの領域A,Bに記憶されるデータのレイテンシーの低下)よりも大きい、ということを意味する。
ここで、条件式中のβは、メリットとデメリットのどちらが勝っているかを判断するための指標であり、具体的には、1つの領域Aのアクセス頻度と1つの領域Bのアクセス頻度との差を決める値である。この値は、プロセッサシステム、又は、そのシステム内で実行するアプリケーションの種類などによって決定される。
・ “2T−2MTJセルモード”から“1T−1MTJセルモード”への変更
2T−2MTJセルモードでは、実質的に2つの領域A,Bにそれぞれ異なるデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、2つの領域B,C2に1つのデータ(相補データ)が記憶される。
2T−2MTJセルモードでは、実質的に2つの領域A,Bにそれぞれ異なるデータが記憶される。例えば、2つの領域A,C1に1つのデータ(相補データ)が記憶され、2つの領域B,C2に1つのデータ(相補データ)が記憶される。
即ち、2T−2MTJセルモードでは、1T−1MTJセルモードで2つの領域C1,C2に記憶されていたデータが消去されている。但し、これらの2つの領域C1,C2に記憶されていたデータに関する情報は、履歴(ゴースト情報)として、タグメモリ内に引き続き記憶されている。
この状態において、例えば、Nhit−C>α×(Nhit−A+Nhit−B)を満たしたときは、キャッシュコントローラ(CPU)により、2T−2MTJセルモードから1T−1MTJセルモードに変更する。即ち、キャッシュ容量(メモリ容量)を拡大する(expanding)。
この条件式は、2つの領域A,Bのアクセス頻度(α×(Nhit−A+Nhit−B))が、2つの領域C1,C2のアクセス頻度(Nhit−C)よりも低いため、キャッシュ容量を拡大するメリット(4つの領域A,B,C1,C2のデータをキャッシュメモリからアクセス可能になることによるアクセスタイムの短縮)が、キャッシュ容量を拡大するデメリット(4つの領域A,B,C1,C2に記憶されるデータのレイテンシーの低下)よりも大きい、ということを意味する。
ここで、条件式中のαは、メリットとデメリットのどちらが勝っているかを判断するための指標であり、具体的には、2つの領域A,Bのアクセス頻度と2つの領域C1,C2のアクセス頻度との差を決める値である。この値は、プロセッサシステム、又は、そのシステム内で実行するアプリケーションの種類などによって決定される。
このように、MRAMキャッシュに対する過去のアクセスパターン、即ち、Nhit−A、Nhit−B、及び、Nhit−Cの大小関係に基づいて、モードの選択/変更(キャッシュ容量の変更)を行う。
7. 適応容量制御のハードウェア構成
図14は、適応容量制御のハードウェア構成の例を示している。
図14は、適応容量制御のハードウェア構成の例を示している。
タグメモリ(タグアレイ)は、例えば、SRAMであり、データメモリ(データアレイ)は、例えば、容量可変STT−MRAM(MRAMキャッシュ)である。タグメモリは、既に述べたように、通常のタグデータに加えて、容量可変STT−MRAMに、どのモードでデータが記憶されているかを示すモード情報を記憶する。
タグメモリにおいて、□で表記される領域A,B,C1,C2は、MRAMキャッシュに記憶された1つのデータのタグ情報を記憶するためのメモリ領域を意味する。nは、A,B,C1,C2のうちの1つを意味している。
ノーマル(Normal)とは、有効データが記憶される1つの領域、又は、有効データが記憶される複数の領域のうち、過去から継続してその有効データを記憶している1つの領域を意味する。また、ゴースト(Ghost)とは、有効データが記憶される複数の領域のうち、過去に有効データ以外のデータを記憶していた1つ又は複数の領域を意味する。
本例では、3つの領域B,C1,C2がゴーストとなり得る。
MRAMキャッシュにおいて、□で表記される領域w,x,y,zは、1つのデータを記憶するためのメモリ領域を意味する。bxは、領域xに記憶されたデータの反転データが記憶されることを意味し、byは、領域yに記憶されたデータの反転データが記憶されることを意味する。
MRAMキャッシュにおいて、数値0〜15は、それぞれ、データを意味する。b0,b1,b2,b3,b4,b5,b6,b7は、それぞれ、データ0,1,2,3,4,5,6,7の反転データを意味する。タグメモリにおいて、数値0〜15は、それぞれ、データ0〜15のタグデータを意味する。
容量可変STT−MRAMのモードは、メモリセルアレイ(メモリ領域)の全てにおいて同時に変化させることも可能であるし、メモリセルアレイ内のセット毎(図12参照)に変化させることも可能である。
1T−1MTJセルモードでは、例えば、データメモリ(MRAM)内の16個の領域内に、データ0〜15が記憶される。これに対応して、タグメモリ内の16個の領域内に、データ0〜15のタグデータ0〜15が記憶される。
2T−2MTJセルモードでは、例えば、データメモリ(MRAM)内の16個の領域内に、データ0〜7,b0〜b7が記憶される。即ち、2つの領域内に、1つのデータ(相補データ)、例えば、0とb0、1とb1、2とb2、3とb3、4とb4、5とb5、6とb6、又は、7とb7が、記憶される。
これに対応して、タグメモリ内の8個の領域内に、データ0〜7のタグデータ0〜7がノーマルデータとして記憶される。また、タグメモリ内の8個の領域内に、データ8〜15のタグデータ8〜15がゴーストデータとして記憶される。
即ち、2T−2MTJセルモードでは、データメモリ内において、データ8〜15が消去されるが、タグメモリ内において、データ8〜15のタグデータ8〜15は、ゴーストデータとしてそのまま保持される。
4T−4MTJセルモードでは、例えば、データメモリ(MRAM)内の16個の領域内に、データ0〜3,b0〜b3が記憶される。即ち、4つの領域内に、1つのデータ(相補データ×2)、例えば、(0とb0)×2、(1とb1)×2、(2とb2)×2、又は、(3とb3)×2が、記憶される。
これに対応して、タグメモリ内の4個の領域内に、データ0〜3のタグデータ0〜3がノーマルデータとして記憶される。また、タグメモリ内の12個の領域内に、データ4〜15のタグデータ4〜15がゴーストデータとして記憶される。
即ち、4T−4MTJセルモードでは、データメモリ内において、データ4〜15が消去されるが、タグメモリ内において、データ4〜15のタグデータ4〜15は、ゴーストデータとしてそのまま保持される。
このように、タグメモリは、適応容量制御の動作モードに関わらず、16個の領域内に記憶されていた16個のデータ1〜16の全てのタグデータ1〜16を常に保持する。このため、このタグデータを参照することにより、図13に示すNhit−A、Nhit−B、及び、Nhit−Cを何時でもカウントすることができる。
尚、本例のハードウェア構成は、例えば、データアレイの2行×2列の4つ領域w,x,y,z内でデータのマッピングを行うことにより、3つのモード(容量可変動作)を実現する。また、2つの領域w,y内のメモリセルは、互いに1本のワード線を共有し、2つの領域x,z内のメモリセルは、互いに1本のワード線を共有する。
このような構成にすることにより、メモリセルアレイのセット毎に、メモリ容量を制御することが可能となる。
MRAMキャッシュの読み出し遅延のオーバーヘッドを隠蔽し、キャッシュミスのペナルティーを減らすためには、上述の適応容量制御が非常に有効である。MRAMキャッシュへのアクセスパターンは、現在、実行しているアプリケーションに応じて変化し、さらに、同じベンチマークであっても、現在、実行しているフェーズによっても変化するからである。
特に、予期しないスラッシングアクセスパターンや、ストリーミングアクセスパターンなどにより、キャッシュメモリ内のデータがメインメモリに反映されない状態(Dirty)が長く続くと、キャッシュメモリ内のデータ量が増加し、キャッシュミスが頻発する恐れが発生する。
本例の適応容量制御によれば、例えば、セット毎に、容量可変STT−MRAMのキャッシュ容量を可変にすることができるため、このようなキャッシュミスを減らすと共に、過剰なレイテンシーの増加を防ぐこともできる。
8. モードチェンジにおけるデータ入れ替えポリシー
適応容量制御において、モードの変更は、電力と性能の両方の面でオーバーヘッドになり得る。キャッシュサイズ(キャッシュ容量)を拡大するときは、キャッシュコントローラは、冗長なデータを無効にするだけなので、スムーズにモード変更することができる。しかし、キャッシュサイズを縮小するときは、キャッシュメモリから有効データを退避させる必要があるため、大きな性能低下を招きかねない。
適応容量制御において、モードの変更は、電力と性能の両方の面でオーバーヘッドになり得る。キャッシュサイズ(キャッシュ容量)を拡大するときは、キャッシュコントローラは、冗長なデータを無効にするだけなので、スムーズにモード変更することができる。しかし、キャッシュサイズを縮小するときは、キャッシュメモリから有効データを退避させる必要があるため、大きな性能低下を招きかねない。
そこで、キャッシュサイズを縮小するときは、キャッシュメモリ内のどのデータを退避させるか、を選択する必要がある。キャッシュサイズを縮小するとき(モードの変更時)のポリシーとしては、以下の2通りが考えられる。
ポリシー1: 総当たりベースのデータ選択ポリシー
データ入れ替えの対称となるセット内の全てのデータのうち、MRU側にあるデータを残し、LRU側にあるデータを破棄する。以下のトーナメントタイプよりもモードの変更に伴うペナルティーは大きくなるが、L2キャッシュのヒット数を高く維持することが可能である。
データ入れ替えの対称となるセット内の全てのデータのうち、MRU側にあるデータを残し、LRU側にあるデータを破棄する。以下のトーナメントタイプよりもモードの変更に伴うペナルティーは大きくなるが、L2キャッシュのヒット数を高く維持することが可能である。
データの破棄は、キャッシュサイズを縮小するという決定がなされた後に、セット内に残す有効データに対するアクセスが行われたときに行われる。即ち、そのアクセス時に、有効データを、破棄すべきデータに上書きすることにより、データの破棄が行われる。
ポリシー2: トーナメントタイプのデータ選択ポリシー
データ入れ替えの対称となるセット内の全てのデータから1つのペアを構成する2つのデータを選択し、その2つのデータのうち、MRU側にあるデータを残し、LRU側にあるデータを破棄する。上述の総当たりベースよりもモードの変更に伴うペナルティーは小さくなるが、L2キャッシュのヒット数が劣化する可能性がある。
データ入れ替えの対称となるセット内の全てのデータから1つのペアを構成する2つのデータを選択し、その2つのデータのうち、MRU側にあるデータを残し、LRU側にあるデータを破棄する。上述の総当たりベースよりもモードの変更に伴うペナルティーは小さくなるが、L2キャッシュのヒット数が劣化する可能性がある。
データの破棄は、上述の総当たりベースと同様に、キャッシュサイズを縮小するという決定がなされた後に、セット内に残す有効データに対するアクセスが行われたときに行われる。即ち、そのアクセス時に、有効データを、破棄すべきデータに上書きすることにより、データの破棄が行われる。
9. 静的適応制御(Static)
本例では、容量可変STT−MRAMを静的に制御した場合の性能について述べる。
本例では、容量可変STT−MRAMを静的に制御した場合の性能について述べる。
容量可変STT−MRAMは、メモリ容量(大容量化)と動作速度(高速動作)の2つの性能のうち、どちらを優先するか、を選択することができる。容量可変STT−MRAMのシンプルな使い方は、予め、実行する予定のあるアプリケーション毎にメモリアクセスパターンを分析しておき、それを元に容量可変STT−MRAMの動作モードを変更する。
例えば、L2キャッシュのヒットレイテンシーに敏感なアプリケーションに対しては、アクセスレイテンシーが最も短いモードを選択することにより、容量可変STT−MRAMのヒットレイテンシーのオーバーヘッドを抑えることができる。また、L2キャッシュのミス回数に敏感なアプリケーションに対しては、キャッシュサイズを大きくするモードを選択することにより、L2キャッシュ内にデータが存在しないキャッシュミスを減らすことができる。
ここでは、オペレーションシステム(OS)がL2キャッシュへのアクセスパターンに基づき、キャッシュコントローラ(CPU)に対して容量可変STT−MRAMの動作モードの変更を要求できると仮定する。
この場合、例えば、L2キャッシュの容量を、4T−4MTJセルモードで512キロバイト、2T−2MTJセルモードで1メガバイト、1T−1MTJセルモードで2メガバイトという具合に、変更可能である。
ほとんどのアプリケーションでは、L2キャッシュの容量を増やすことにより、ヒット率が向上し、かつ、CPUの命令実行効率(IPC:Instruction per cycle)が向上する。しかし、いくつかのベンチマークでは、L2キャッシュのヒットレイテンシーが長くなってしまう影響で、CPUの命令実行効率IPCが逆に劣化してしまうものもある。
このようなアプリケーションに対しては、適応容量制御により、キャッシュ容量が小さいモードを選択することにより、L2キャッシュの性能が改善される。また、ほとんどのベンチマークでは、L2キャッシュの容量を大きくすることにより、オフチップとしてのメインメモリ(例えば、DRAM)に対するアクセス回数が削減され、CPUの命令実行時の平均エネルギー(EPI:Energy per instruction)を削減することができる。
10. 動的適応制御(Dynamic)
L2キャッシュに対するアクセスパターンが、現在、実行しているアプリケーションに応じて変化することを、さらに効果的に活用するために、容量可変STT−MRAMのモードの変更を、動的(適応的)に変えることを検討する。
L2キャッシュに対するアクセスパターンが、現在、実行しているアプリケーションに応じて変化することを、さらに効果的に活用するために、容量可変STT−MRAMのモードの変更を、動的(適応的)に変えることを検討する。
動的にモードを変更するポリシーとしては、以下の2通りが考えられる。
ポリシー1: 時間粒度によるモードの変更
L2キャッシュに対するアクセスパターンは、各ベンチマークで、刻一刻と変化する。このポリシーでは、キャッシュコントローラ(CPU)に、例えば、メモリマクロ内の複数の領域の各々に対するアクセス回数を確認する機能を付加する。各領域のアクセス回数は、例えば、カウンターによりカウントする。
L2キャッシュに対するアクセスパターンは、各ベンチマークで、刻一刻と変化する。このポリシーでは、キャッシュコントローラ(CPU)に、例えば、メモリマクロ内の複数の領域の各々に対するアクセス回数を確認する機能を付加する。各領域のアクセス回数は、例えば、カウンターによりカウントする。
そして、上述の適応容量制御のための最適容量予測により、例えば、セットよりも大きい単位であるメモリマクロ単位でモードを選択する。
ポリシー2: アドレス(空間)粒度によるモードの変更
このポリシーは、例えば、セット毎に容量可変STT−MRAMの容量を制御する。適応容量制御のための最適容量予測は、セット毎に行い、かつ、セット毎に動作モードを変更する。これにより、例えば、L2キャッシュ内の全セットのうち、アクセスが集中しているセットに対しては、モードの変更により、部分的にキャッシュ容量を増やすことができる。また、アクセスが集中していないセットでは、高速アクセス、即ち、動作遅延(レイテンシー)を短くできるモードを選択することができる。
このポリシーは、例えば、セット毎に容量可変STT−MRAMの容量を制御する。適応容量制御のための最適容量予測は、セット毎に行い、かつ、セット毎に動作モードを変更する。これにより、例えば、L2キャッシュ内の全セットのうち、アクセスが集中しているセットに対しては、モードの変更により、部分的にキャッシュ容量を増やすことができる。また、アクセスが集中していないセットでは、高速アクセス、即ち、動作遅延(レイテンシー)を短くできるモードを選択することができる。
このポリシーでは、モードの変更に伴うオーバーヘッドが増える反面、上述のポリシー1に比べて、きめ細かい制御(モードの変更)が可能になる。
尚、動的に適応容量制御を行ったときの性能のシミュレーション結果によると、アクセスが集中するアドレスに偏りのあるようなベンチマーク、例えば、“perl script”、“bzip2圧縮”、“gccコンパイル”、“Networkコントローラ”などでは、セット毎にモードの変更を行い、CPUの命令実行効率IPCを向上させるのが望ましい。
また、オフチップとしてのメインメモリ(例えば、DRAM)にライトバック(write-back)するデータが存在するときは、L2キャッシュとしてのSTT−MRAMのモードの変更が行われる度に、メインメモリにデータをライトバックするのが望ましい。
例えば、“量子力学の計算”のような、アプリケーションの動作フェーズが頻繁に変わるようなベンチマークでは、モードの変更が短期間に度々行われる。このような場合には、モードの変更が行われるときに、メインメモリにデータをライトバックする。
これは、ライトスルー(write-through)により、その都度、メインメモリに更新データを反映させると、エネルギーの増加を招き、CPUによる命令実行時の平均エネルギーEPIを劣化させるからである。
11. 適用例
上述の実施例に係わる磁気ランダムアクセスメモリは、例えば、低消費電力プロセッサのキャッシュメモリに適用することができる。
上述の実施例に係わる磁気ランダムアクセスメモリは、例えば、低消費電力プロセッサのキャッシュメモリに適用することができる。
近年、スマートフォンに代表されるような携帯機器に搭載されるプロセッサの高性能化が急速に進んでおり、モバイルアプリケーションであるにも関わらず、マルチコアプロセッサが主流になりつつある。一方、このような高性能モバイルプロセッサにおいて、バッテリーの駆動時間が短くなるという問題点が顕著に表れており、プロセッサの処理性能だけでなく、消費電力が重要な指標となっている。即ち、チップ面積の増加に伴い、消費電力の増大が懸念されている。
従って、このような高性能モバイルプロセッサには、「最大のパフォーマンス」だけでなく、「最小の消費電力」が要求される。ここで、「最大のパフォーマンス」には、ストレスのない操作性、高性能なグラフィックなどが含まれ、「最小の消費電力」には、薄いボディ、低温度、長いバッテリー寿命などが含まれる。
プロセッサの消費電力を効果的に削減する手法として、近年、注目されている技術に、Spin Transfer Torque(STT)−MRAMをはじめとする不揮発メモリをプロセッサのキャッシュメモリとして利用する研究が注目されている。不揮発メモリは、電源が遮断された状態でデータを保持することができるためスタンバイ時の消費電力を“ゼロ”にすることが可能である。
不揮発メモリとして研究開発されている素子は、MRAM以外にも、Phase-change RAM (PCRAM)、Resistive RAM (ReRAM)、NANDフラッシュメモリなどが検討されている。しかし、これらの不揮発メモリの中でも、特に、STT−MRAMが最も実用化に近い不揮発メモリとして注目されている。その理由は、SRAMに匹敵する高速動作(<10ns)、高い書き換え耐性(>1015回)や、低電力向けCMOSロジックプロセスとの高い親和性などがある。
従って、上述の実施例に係わる磁気ランダムアクセスメモリは、このような高性能化と省電力化とを両立することが求められている高性能モバイルプロセッサに適用するのが有効と考えられる。
12. むすび
実施形態によれば、メモリ容量及び動作速度を再構成可能な磁気ランダムアクセスメモリを実現できる。
実施形態によれば、メモリ容量及び動作速度を再構成可能な磁気ランダムアクセスメモリを実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1A: カラムセレクタ、 2: センスアンプ、 3: 初期化回路、 4: プロセッサ、 5: MRAM、 6: タグメモリ、 7: キャッシュコントローラ、 MC: メモリセル、 RC: リファレンスセル、 T: セルトランジスタ、 R: MTJ素子、 1B,SEL0,SEL1: モードセレクタ。
Claims (13)
- 容量可変メモリと、前記容量可変メモリに対する1ビットの読み出し/書き込みを制御するプロセッサとを具備し、
前記容量可変メモリは、
複数の基本単位を有し、各基本単位が1つのセルトランジスタと1つの抵抗変化素子を備えるメモリセルアレイと、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2n個(nは整数)に対して行う第1のモード、及び、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2m個(mは整数、かつ、n≠m)に対して行う第2のモードを、選択的に切り替えるモードセレクタと、前記第1及び第2のモードの切り替えを制御する制御回路とを備え、
前記プロセッサは、
タグ情報を記憶するタグメモリと、前記第1及び第2のモードの切り替えを決定するコントローラとを備え、
前記タグ情報は、
前記1ビットの前記読み出し/書き込みを前記第1及び第2のモードのいずれで行ったかを示すモード情報を含み、
前記プロセッサは、
前記タグ情報に基づいて前記1ビットが前記容量可変メモリ内に記憶されているか否かを確認し、かつ、前記1ビットが前記容量可変メモリ内に記憶されているとき、前記モード情報に基づいて、前記1ビットを前記第1及び第2のモードのうちの1つを用いて読み出し、
前記第1のモードにおいて、前記2 n 個の第1の基本単位内に、前記1ビットとしての第1のビットが記憶され、前記2 n 個の第2の基本単位内に、前記1ビットとしての第2のビットが記憶されているとき、前記第2のモードにおいて、前記2 m 個の前記第1及び第2の基本単位内に、前記第1のビットが記憶され、前記2 n 個の第2の基本単位内に記憶されていた前記第2のビットが消去され、前記第1及び第2のビットに関する前記タグ情報は、前記タグメモリ内にゴースト情報としてそのまま記憶される、
但し、2 m =2 n ×2の関係を有する
プロセッサシステム。 - 第1のモードから第2のモードへの切り替えは、
N hit-B <β×N hit-A
の条件式を満たすときに行われ、
第2のモードから第1のモードへの切り替えは、
N hit-B >β×N hit-A
の条件式を満たすときに行われる、
但し、N hit-A は、前記第1のビットのアクセス頻度、N hit-B は、前記第2のビットのアクセス頻度、βは、前記第1及び第2のビットのアクセス頻度の差を決める値である
請求項1に記載のプロセッサシステム。 - 前記プロセッサは、前記N hit-A 及びN hit-B をカウントするカウンターを備え、かつ、前記第1及び第2のビットに対するアクセスが発生したとき、前記タグ情報(前記ゴースト情報としての前記タグ情報を含む)に基づいて前記N hit-A 及びN hit-B の値を更新する
請求項2に記載のプロセッサシステム。 - 前記容量可変メモリ内に記憶される前記第1及び第2のビットを含む複数のビットは、アップデートの新旧の順序でMRU側からLRU側に並べられ、かつ、
前記第2のモードにおいて消去される前記2n個の第2の基本単位内に記憶されていた前記第2のビットは、前記第1のビットよりもLRU側にあるビットである
請求項1に記載のプロセッサシステム。 - 前記プロセッサは、アプリケーション及び動作フェーズに応じて、前記第1及び第2のモードの切り替えを前記容量可変メモリに指示する請求項1に記載のプロセッサシステム。
- 前記容量可変メモリは、複数のセットを有するメモリマクロを備え、かつ、
前記プロセッサは、前記メモリマクロ又は前記複数のセットのうちの1つに対して、前記第1及び第2のモードの切り替えを指示する
請求項1に記載のプロセッサシステム。 - 前記プロセッサは、前記第1及び第2のモードの切り替えに応じて、前記容量可変メモリのウェイ数を変化させる請求項1に記載のプロセッサシステム。
- 前記容量可変メモリは、L2キャッシュとして使用される請求項1に記載のプロセッサシステム。
- 前記第1のモードは、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの1個の基本単位に対して行い、かつ、
前記モードセレクタは、前記第1のモードのときに、リファレンス電位、及び、前記1個の基本単位により決まる読み出し電位を、それぞれ、センスアンプに転送する
請求項1に記載のプロセッサシステム。 - 前記第2のモードは、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2個の基本単位に対して行い、
前記2個の基本単位は、相補データを記憶し、かつ、
前記モードセレクタは、前記第2のモードのときに、前記2個の基本単位の1つにより決まる第1の読み出し電位、及び、前記2個の基本単位の他の1つにより決まる第2の読み出し電位を、それぞれ、センスアンプに転送する
請求項1に記載のプロセッサシステム。 - 前記第1のモードは、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの2個の基本単位に対して行い、
前記2個の基本単位は、相補データを記憶し、かつ、
前記モードセレクタは、前記第1のモードのときに、前記2個の基本単位の1つにより決まる第1の読み出し電位、及び、前記2個の基本単位の他の1つにより決まる第2の読み出し電位を、それぞれ、センスアンプに転送する
請求項1に記載のプロセッサシステム。 - 前記第2のモードは、前記1ビットの前記読み出し/書き込みを前記複数の基本単位のうちの4個の基本単位に対して行い、
前記4個の基本単位のうちの第1及び第2の基本単位は、相補データを記憶し、
前記4個の基本単位のうちの第3及び第4の基本単位は、相補データを記憶し、かつ、
前記モードセレクタは、前記第2のモードのときに、前記第1及び第3の基本単位により決まる第1の読み出し電位、及び、前記第2及び第4の基本単位により決まる第2の読み出し電位を、それぞれ、センスアンプに転送する
請求項1に記載のプロセッサシステム。 - 前記1つのセルトランジスタと前記1つの抵抗変化素子は、直列接続され、かつ、前記1つの抵抗変化素子は、MTJ素子である請求項1に記載のプロセッサシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013053661A JP5492324B1 (ja) | 2013-03-15 | 2013-03-15 | プロセッサシステム |
US14/205,817 US9412443B2 (en) | 2013-03-15 | 2014-03-12 | Processor system having variable capacity memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013053661A JP5492324B1 (ja) | 2013-03-15 | 2013-03-15 | プロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5492324B1 true JP5492324B1 (ja) | 2014-05-14 |
JP2014179150A JP2014179150A (ja) | 2014-09-25 |
Family
ID=50792295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013053661A Active JP5492324B1 (ja) | 2013-03-15 | 2013-03-15 | プロセッサシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9412443B2 (ja) |
JP (1) | JP5492324B1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015083754A1 (ja) * | 2013-12-05 | 2015-06-11 | 国立大学法人東北大学 | Stt-mramを使用した半導体記憶装置 |
JP2017523546A (ja) * | 2014-05-15 | 2017-08-17 | クアルコム,インコーポレイテッド | シングルエンドセンシングと差動センシングとを混合するハイブリッド磁気抵抗ランダムアクセスメモリ(mram)キャッシュ |
US11514964B2 (en) | 2017-12-08 | 2022-11-29 | Tohoku University | Storage circuit provided with variable resistance elements, reference voltage circuit and sense amplifier |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015092879A1 (ja) | 2013-12-18 | 2015-06-25 | 株式会社 東芝 | 半導体記憶装置 |
WO2015136740A1 (en) | 2014-03-11 | 2015-09-17 | Masahiro Takahashi | Semiconductor memory device |
WO2015136738A1 (en) | 2014-03-12 | 2015-09-17 | Akira Katayama | Semiconductor storage device |
WO2016018503A1 (en) * | 2014-07-30 | 2016-02-04 | University Of South Florida | Magnetic memory physically unclonable functions |
JP6364365B2 (ja) * | 2015-02-25 | 2018-07-25 | 株式会社東芝 | 半導体記憶装置 |
JP5992592B1 (ja) * | 2015-09-16 | 2016-09-14 | 株式会社東芝 | キャッシュメモリシステム |
WO2018151088A1 (ja) * | 2017-02-14 | 2018-08-23 | 国立大学法人東北大学 | メモリ装置 |
JP7241068B2 (ja) | 2018-05-02 | 2023-03-16 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US11107530B2 (en) * | 2019-12-31 | 2021-08-31 | Taiwan Semiconductor Manufacturing Company Limited | Non-volatile static random access memory (nvSRAM) with multiple magnetic tunnel junction cells |
US11508436B2 (en) | 2020-09-29 | 2022-11-22 | Sharp Semiconductor Innovation Corporation | Memory device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003030047A (ja) * | 2001-07-16 | 2003-01-31 | Fujitsu Ltd | キャッシュ装置およびキャッシュ方法 |
JP2004127347A (ja) * | 2002-09-30 | 2004-04-22 | Renesas Technology Corp | 不揮発性記憶装置および半導体集積回路装置 |
JP2009064498A (ja) * | 2007-09-05 | 2009-03-26 | Renesas Technology Corp | 半導体装置 |
JP2011508356A (ja) * | 2007-12-19 | 2011-03-10 | クゥアルコム・インコーポレイテッド | 共有ソース線を備えたmramデバイス |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549483B2 (en) * | 2001-03-30 | 2003-04-15 | Atmos Corporation | RAM having dynamically switchable access modes |
ITTO20010529A1 (it) * | 2001-06-01 | 2002-12-01 | St Microelectronics Srl | Metodo di controllo dell'errore in celle di memoria multilivello con numero di bit memorizzati configurabile. |
JP2003273252A (ja) * | 2002-03-12 | 2003-09-26 | Mitsubishi Electric Corp | 半導体記憶装置 |
WO2005078732A1 (en) * | 2004-02-05 | 2005-08-25 | Iota Technology, Inc. | Electronic memory with tri-level cell pair |
US7352619B2 (en) * | 2004-02-05 | 2008-04-01 | Iota Technology, Inc. | Electronic memory with binary storage elements |
KR100610008B1 (ko) * | 2004-07-19 | 2006-08-08 | 삼성전자주식회사 | 버스트 리드동작에 적합한 상변화 메모리 장치 및 그에따른 데이터 리딩방법 |
US7002874B1 (en) * | 2005-03-16 | 2006-02-21 | United Memories, Inc. | Dual word line mode for DRAMs |
JP4864549B2 (ja) | 2006-05-30 | 2012-02-01 | 株式会社東芝 | センスアンプ |
JP5311784B2 (ja) * | 2006-10-11 | 2013-10-09 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7961534B2 (en) * | 2007-09-10 | 2011-06-14 | Hynix Semiconductor Inc. | Semiconductor memory device for writing data to multiple cells simultaneously and refresh method thereof |
US8077501B2 (en) | 2009-09-11 | 2011-12-13 | Grandis, Inc. | Differential read and write architecture |
JP2011192345A (ja) | 2010-03-15 | 2011-09-29 | Fujitsu Ltd | スピン注入型mram、並びにその書き込み方法及び読み出し方法 |
US8400804B2 (en) * | 2010-08-30 | 2013-03-19 | Taiwan Semiconductor Manufacturing Co., Ltd. | Memory devices having break cells |
KR101797106B1 (ko) * | 2010-10-26 | 2017-11-13 | 삼성전자주식회사 | 저항성 메모리 장치와 상기 저항성 메모리 장치를 포함하는 전자 장치들 |
US9767890B2 (en) * | 2011-12-31 | 2017-09-19 | Intel Corporation | Operation aware auto-feedback SRAM |
EP2988305B8 (en) * | 2014-08-18 | 2020-03-11 | Synopsys, Inc. | Memory device using a two phas write scheme to improve low voltage write ability |
-
2013
- 2013-03-15 JP JP2013053661A patent/JP5492324B1/ja active Active
-
2014
- 2014-03-12 US US14/205,817 patent/US9412443B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003030047A (ja) * | 2001-07-16 | 2003-01-31 | Fujitsu Ltd | キャッシュ装置およびキャッシュ方法 |
JP2004127347A (ja) * | 2002-09-30 | 2004-04-22 | Renesas Technology Corp | 不揮発性記憶装置および半導体集積回路装置 |
JP2009064498A (ja) * | 2007-09-05 | 2009-03-26 | Renesas Technology Corp | 半導体装置 |
JP2011508356A (ja) * | 2007-12-19 | 2011-03-10 | クゥアルコム・インコーポレイテッド | 共有ソース線を備えたmramデバイス |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015083754A1 (ja) * | 2013-12-05 | 2015-06-11 | 国立大学法人東北大学 | Stt-mramを使用した半導体記憶装置 |
US9633708B2 (en) | 2013-12-05 | 2017-04-25 | Tohoku University | Semiconductor storage device using STT-MRAM |
JP2017523546A (ja) * | 2014-05-15 | 2017-08-17 | クアルコム,インコーポレイテッド | シングルエンドセンシングと差動センシングとを混合するハイブリッド磁気抵抗ランダムアクセスメモリ(mram)キャッシュ |
US11514964B2 (en) | 2017-12-08 | 2022-11-29 | Tohoku University | Storage circuit provided with variable resistance elements, reference voltage circuit and sense amplifier |
Also Published As
Publication number | Publication date |
---|---|
US20140281189A1 (en) | 2014-09-18 |
US9412443B2 (en) | 2016-08-09 |
JP2014179150A (ja) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5492324B1 (ja) | プロセッサシステム | |
Mittal et al. | A survey of architectural approaches for managing embedded DRAM and non-volatile on-chip caches | |
US9817758B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
US8966181B2 (en) | Memory hierarchy with non-volatile filter and victim caches | |
US9286205B2 (en) | Apparatus and method for phase change memory drift management | |
US8954672B2 (en) | System and method for cache organization in row-based memories | |
Sun et al. | A frequent-value based PRAM memory architecture | |
JP6130758B2 (ja) | メモリ制御回路およびキャッシュメモリ | |
US9786389B2 (en) | Memory system | |
US10102908B2 (en) | Method and device to reduce leakage and dynamic energy consumption in high-speed memories | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
Bi et al. | Cross-layer optimization for multilevel cell STT-RAM caches | |
Agarwal et al. | Targeting inter set write variation to improve the lifetime of non-volatile cache using fellow sets | |
Luo et al. | TAP: Reducing the energy of asymmetric hybrid last-level cache via thrashing aware placement and migration | |
Valero et al. | Design, performance, and energy consumption of eDRAM/SRAM macrocells for L1 data caches | |
US10467137B2 (en) | Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache | |
JP5992592B1 (ja) | キャッシュメモリシステム | |
Noguchi et al. | D-MRAM cache: Enhancing energy efficiency with 3T-1MTJ DRAM/MRAM hybrid memory | |
KR101831226B1 (ko) | 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 | |
Sato et al. | An adjacent-line-merging writeback scheme for STT-RAM-based last-level caches | |
US20200051634A1 (en) | Resistive address decoder and virtually addressed memory | |
US11526448B2 (en) | Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning | |
RAMAVATH | Performance Study of Design Optimizations on STTMRAM L1 Cache | |
CN107844430A (zh) | 存储器系统和处理器系统 | |
Pandey et al. | Exploration of Design Optimizations for STTMRAM as L1 Cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140228 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5492324 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |