JP5337277B1 - 磁気ランダムアクセスメモリ及びメモリシステム - Google Patents
磁気ランダムアクセスメモリ及びメモリシステム Download PDFInfo
- Publication number
- JP5337277B1 JP5337277B1 JP2012110720A JP2012110720A JP5337277B1 JP 5337277 B1 JP5337277 B1 JP 5337277B1 JP 2012110720 A JP2012110720 A JP 2012110720A JP 2012110720 A JP2012110720 A JP 2012110720A JP 5337277 B1 JP5337277 B1 JP 5337277B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- bits
- read
- bit
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 136
- 230000000694 effects Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 description 29
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 17
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000001514 detection method Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 9
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000005764 inhibitory process Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/1659—Cell access
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mram Or Spin Memory Techniques (AREA)
Abstract
【課題】複数の用途の切り替えを可能とし、かつ、各用途での低消費電力化を図る。
【解決手段】実施形態に係わる磁気ランダムアクセスメモリは、第1及び第2のモードのうちの1つをモード選択信号に基づいて選択し、第2のモードが選択されたときに、バッファメモリの空き容量が一定値以上であれば、読み出し回路14によって読み出しデータを読み出し、読み出しデータと書き込みデータに基づいて、書き込みデータと書き込みデータの反転データのいずれか一方を書き込み回路13によって書き込み、第2のモードが選択されたときに、バッファメモリの空き容量が一定値未満であれば、磁気抵抗効果素子を第1の抵抗値にするビット数が多くなるように書き込みデータと書き込みデータの反転データのいずれか一方を書き込み回路13によって書き込む。
【選択図】図1
【解決手段】実施形態に係わる磁気ランダムアクセスメモリは、第1及び第2のモードのうちの1つをモード選択信号に基づいて選択し、第2のモードが選択されたときに、バッファメモリの空き容量が一定値以上であれば、読み出し回路14によって読み出しデータを読み出し、読み出しデータと書き込みデータに基づいて、書き込みデータと書き込みデータの反転データのいずれか一方を書き込み回路13によって書き込み、第2のモードが選択されたときに、バッファメモリの空き容量が一定値未満であれば、磁気抵抗効果素子を第1の抵抗値にするビット数が多くなるように書き込みデータと書き込みデータの反転データのいずれか一方を書き込み回路13によって書き込む。
【選択図】図1
Description
実施形態は、磁気ランダムアクセスメモリ及びメモリシステムに関する。
近年、コンピュータ、携帯電話、デジタルカメラなどの電子機器に搭載されるメモリシステムを構成する揮発性メモリ(SRAM及びDRAM)を不揮発性メモリに置き換えて、メモリシステムの低消費電力化を図る技術の開発が進められている。この技術によれば、電源を遮断してもデータが消滅することがないため、例えば、データ処理中を除くスタンバイ時の消費電力をほぼ零にすることが可能である。
メモリシステム内の揮発性メモリに代わる不揮発性半導体メモリの有力候補は、磁気ランダムアクセスメモリ(Magnetic Random Access Memory: MRAM)である。磁気ランダムアクセスメモリは、その他の不揮発性半導体メモリに比べて、高速動作やデータ書き換え回数などのメモリ特性が優れているからである。
一方、メモリシステムの仕様によっては、従来と同様に、揮発性メモリをキャッシュメモリ又は主記憶メモリとして使用し、磁気ランダムアクセスメモリについては、NANDフラッシュメモリ、HDDなどのストレージデバイスの代替として使用するのが望ましい場合もある。
このように、現状は、例えば、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリとして使用するか、又は、ストレージデバイス(ファイルメモリ)として使用するか、を、メモリシステムの仕様に応じて決定している。
しかし、磁気ランダムアクセスメモリを頻繁に読み出し動作を行うキャッシュメモリ又は主記憶メモリとして開発するときは、読み出し時の低消費電力化を図ることが重要になるのに対し、磁気ランダムアクセスメモリをストレージデバイスとして開発するときは、書き込み時の低消費電力化を図ることが重要になる。
従って、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリの代替として開発したときは、これをストレージデバイスとして使用しようとすると、書き込み時の消費電力が増大する問題がある。逆に、磁気ランダムアクセスメモリをストレージデバイスの代替として開発したときは、これをキャッシュメモリ又は主記憶メモリとして使用しようとすると、読み出し時の消費電力が増大する問題がある。
Zhenyu Sun, Hai Li, Yiran Chen, and Xiaobin Wang, "Variation tolerant sensing scheme of spin-transfer torque memory for yield improvement,"Proceedings of the International Conference on Computer-Aided Design (ICCAD), pp. 432-437, November 2010.
Sangyeun Cho and Hyunjin Lee, "Flip-N-Write: A simple deterministic technique to improve PRAM write performance, energy and endurance,"Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42), pp. 347-357, December 2009.
実施形態は、複数の用途の切り替えが可能であり、かつ、各用途において低消費電力化を図ることができる磁気ランダムアクセスメモリを提案する。
実施形態によれば、磁気ランダムアクセスメモリは、第1の抵抗値及びこれと異なる第2の抵抗値のうちの1つを記憶可能な複数の磁気抵抗効果素子を備えるユニットと、前記ユニット内の前記複数の磁気抵抗効果素子にsビット(sは2以上の自然数)の書き込みデータを書き込むための書き込み回路と、前記ユニット内の前記複数の磁気抵抗効果素子からsビットの読み出しデータを読み出すための読み出し回路と、前記書き込み回路及び前記読み出し回路を制御する制御回路とを備え、前記書き込みデータは、バッファメモリから供給され、前記制御回路は、第1及び第2のモードのうちの1つをモード選択信号に基づいて選択し、前記第2のモードが選択されたときに、前記バッファメモリの空き容量が一定値以上であれば、前記読み出し回路によって読み出しデータを読み出し、前記読み出しデータと前記書き込みデータに基づいて、前記書き込みデータと前記書き込みデータの反転データのいずれか一方を前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込み、前記第2のモードが選択されたときに、前記バッファメモリの空き容量が前記一定値未満であれば、前記磁気抵抗効果素子を前記第1の抵抗値にするビット数が多くなるように前記書き込みデータと前記書き込みデータの反転データのいずれか一方を前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込むように構成される。
以下、図面を参照しながら実施形態を説明する。
[概要]
まず、以下の説明を分かり易くするために、以下の定義を行う。但し、以下の定義は、実施形態の説明を分かり易くするためのものであり、これに限定されるといった主旨のものではない。
まず、以下の説明を分かり易くするために、以下の定義を行う。但し、以下の定義は、実施形態の説明を分かり易くするためのものであり、これに限定されるといった主旨のものではない。
磁気ランダムアクセスメモリのメモリセルとしての磁気抵抗効果素子は、高抵抗状態(第1の値)及び低抵抗状態(第2の値)の1ビット(2値)を記憶する。また、高抵抗状態を“1”状態とし、低抵抗状態を“0”状態とする。磁気ランダムアクセスメモリの初期状態においては、全てのメモリセルは、“1”状態であるものとする。
読み出し時に磁気抵抗効果素子に流す読み出し電流は、磁気抵抗効果素子の抵抗状態に依存する。即ち、磁気抵抗効果素子が“1”状態のときの読み出し電流をIr-“1”とし、磁気抵抗効果素子が“0”状態のときの読み出し電流をIr-“0”としたとき、Ir-“1”<Ir-“0”の関係を有する。
また、書き込み時に磁気抵抗効果素子に流す書き込み電流は、その向きが書き込みデータの値“1”/“0”に応じて変化する双方向電流であり、かつ、読み出し電流よりも十分に大きな値を有する。即ち、1回の読み出し動作と1回の書き込み動作とを比較した場合、書き込み時の消費電力は、読み出し時の消費電力よりも大きくなる。
さらに、磁気抵抗効果素子に対する書き込みは、“1”−書き込みと“0”−書き込みが存在する。即ち、書き込みと言ったときは、磁気抵抗効果素子の抵抗状態を、“1”→“1”、“1”→“0”、“0”→“1”及び“0”→“0”にする4通りの書き込みが存在する。但し、単に書き込みと言ったときは、これらのうち、磁気抵抗効果素子の抵抗状態を変化させる書き込み(“1”→“0”及び“0”→“1”)を意味するものとする。
以上の前提の下、実施形態の磁気ランダムアクセスメモリについて説明する。
実施形態の磁気ランダムアクセスメモリは、読み出し時の低消費電力化を主眼にした用途(例えば、キャッシュメモリ又は主記憶メモリ用途)として、並びに、書き込み時の低消費電力化を主眼にした用途(例えば、ストレージデバイス用途)としての切り替えが可能な点に特徴を有する。
また、単に、2つの用途の切り替えが可能であるというだけではなく、各用途において、低消費電力化に最も適した書き込み動作を実行する点に、実施形態の磁気ランダムアクセスメモリとしての特徴を有する。
例えば、磁気ランダムアクセスメモリをストレージデバイス(ファイルメモリ)として使用するときは、書き込み時の消費電力を削減可能な書き込み動作を採用する(Write optimize)。
なぜなら、磁気ランダムアクセスメモリをストレージデバイス用途として使用するときは、磁気抵抗効果素子に記憶されたデータは、頻繁に読み出されることがなく、ユーザからのデータ読み出し要求があったときのみ読み出されるからである。この場合、書き込み時の消費電力が読み出し時の消費電力よりも大きくなる、という上述の磁気ランダムアクセスメモリの特徴を考慮すると、主に、書き込み時の消費電力を削減することがメモリシステム全体の消費電力を低減することになる。
書き込み時の消費電力を削減する技術としては、書き込みデータを上書きする物理アドレス(メモリセル)の抵抗状態(データ“1”/“0”)を読み出し、その読み出しデータと書き込みデータとを比較し、両者が一致するビットの書き込みを禁止することにより、書き込みビット数(抵抗値を変化させるビット数)を削減する、という手法を採用する。
例えば、書き込みデータは、sビット単位(sは、2以上の自然数)で書き込むものとする。
この場合、書き込みデータを上書きする物理アドレスから読み出されるsビットの読み出しデータとsビットの書き込みデータとが互いに一致するビット数をn1とし、sビットの読み出しデータとsビットの書き込みデータの反転データとが互いに一致するビット数をn2とする。
そして、n1>n2のときに、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、書き込みデータとしてのsビットのうち、互いに不一致のビットについて書き込み動作を実行する。
また、n1<n2のときに、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、書き込みデータの反転データとしてのsビットのうち、互いに不一致のビットについて書き込み動作を実行する。
尚、ストレージデバイス用途としての詳しい書き込み動作(Write optimize)については、以下の実施例で説明する。
これに対し、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリ用途として使用するときは、読み出し時の消費電力を削減可能な書き込み動作を採用する(Read optimize)。
なぜなら、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリ用途として使用するときは、磁気抵抗効果素子に記憶されたデータは、頻繁に読み出されるからである。この場合、書き込み時の消費電力が読み出し時の消費電力よりも大きくなる、という上述の磁気ランダムアクセスメモリの特徴を考慮したとしても、読み出し回数が書き込み回数よりも圧倒的に多いため、主に、読み出し時の消費電力を削減することがメモリシステム全体の消費電力を低減することになる。
読み出し時の消費電力を削減する技術としては、複数ビットの書き込みデータを、“1”が多い状態に設定し、書き込みデータを上書きする物理アドレス(メモリセル)に対して“1”が多く書き込まれるように書き込み制御する手法を採用する。
この場合、書き込みデータを記憶する複数の磁気抵抗効果素子は、“1”状態(高抵抗状態)であるものが多くなるため、読み出し時において、小さな読み出し電流Ir-“1”を流す磁気抵抗効果素子の数は、大きな読み出し電流Ir-“0”を流す磁気抵抗効果素子の数よりも多くなる。結果として、読み出し時の低消費電力化を図ることができる。
例えば、書き込みデータとしてのsビット(sは、2以上の自然数)のうち、磁気抵抗効果素子を第1の抵抗値(高抵抗状態)にするビット数をm1とし、磁気抵抗効果素子を第2の抵抗値(低抵抗状態)にするビット数をm2とする。
そして、m1>m2のときに、書き込みデータとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための書き込み動作を実行する。
また、m1<m2のときに、書き込みデータの反転データとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための書き込み動作を実行する。
尚、キャッシュメモリ又は主記憶メモリ用途としての詳しい書き込み動作(Read optimize)については、以下の実施例で説明する。
[実施例]
図1は、磁気ランダムアクセスメモリの主要部を示している。
図1は、磁気ランダムアクセスメモリの主要部を示している。
メモリセルアレイ10は、複数の磁気抵抗効果素子(メモリセル)のアレイを備える。デコーダ11は、アドレス信号ADDRESS_INに基づいて、メモリセルアレイ10内の磁気抵抗効果素子をランダムアクセスする。
書き込みデータDATA_INは、データ反転回路12に入力される。データ反転回路12は、例えば、sビット(sは、2以上の自然数)の書き込みデータDATA_INを、そのまま、書き込みデータWdataとして書き込み回路13に転送する機能、及び、sビットの書き込みデータDATA_INの各ビットの値を反転させた反転データを、書き込みデータWdataとして書き込み回路13に転送する機能を有する。
書き込み回路13は、書き込みデータWdataをメモリセルアレイ11内の選択された磁気抵抗効果素子に書き込む機能を有する。
読み出し回路14は、読み出しデータRdataをメモリセルアレイ11内の選択された磁気抵抗効果素子から読み出す機能を有する。
読み出しデータRdataは、データ反転回路15に入力される。データ反転回路15は、例えば、sビット(sは、2以上の自然数)の読み出しデータRdataを、そのまま、読み出しデータDATA_OUTとして出力する機能、及び、sビットの読み出しデータRdataの各ビットの値を反転させた反転データを、読み出しデータDATA_OUTとして出力する機能を有する。
比較回路16は、書き込みデータDATA_INと、書き込みデータDATA_IN が上書きされる選択された物理アドレス(メモリセル)から読み出された読み出しデータRdataとを互いに比較する機能を有する。具体的には、以下の機能のうち少なくとも1つを有する。
・ 書き込みデータDATA_INと読み出しデータRdataとを互いに比較する機能
・ 書き込みデータDATA_INの反転データと読み出しデータRdataとを互いに比較する機能
・ 書き込みデータDATA_INと読み出しデータRdataの反転データとを互いに比較する機能
・ 書き込みデータDATA_INの反転データと読み出しデータRdataの反転データとを互いに比較する機能
そして、比較回路16は、書き込みデータDATA_INと読み出しデータRdataとの比較結果に基づいて、反転制御信号COM及びマスク制御信号Mを出力する。
・ 書き込みデータDATA_INの反転データと読み出しデータRdataとを互いに比較する機能
・ 書き込みデータDATA_INと読み出しデータRdataの反転データとを互いに比較する機能
・ 書き込みデータDATA_INの反転データと読み出しデータRdataの反転データとを互いに比較する機能
そして、比較回路16は、書き込みデータDATA_INと読み出しデータRdataとの比較結果に基づいて、反転制御信号COM及びマスク制御信号Mを出力する。
反転制御信号COMは、データ反転回路12において、書き込みデータDATA_INの反転を行うか否かを決定する制御信号であり、マスク制御信号Mは、書き込み回路13において、書き込みデータDATA_INと読み出しデータRdataとが互いに一致するビットの書き込みを禁止する制御信号である。
制御回路17は、書き込みイネーブル信号WE、読み出しイネーブル信号RE、マスクイネーブル信号ME、モード選択信号φ1及びポリシー選択信号φ2に基づいて、デコーダ11、データ反転回路12、書き込み回路13、読み出し回路14、データ反転回路15及び比較回路16の動作を制御する。
書き込みイネーブル信号WEは、書き込み時にイネーブル状態になり、読み出しイネーブル信号REは、読み出し時にイネーブル状態になる。また、マスクイネーブル信号MEは、書き込みデータDATA_INと読み出しデータRdataとが互いに一致するビットの書き込みを禁止するマスク処理を行うときにイネーブル状態になる。
モード選択信号φ1は、キャッシュメモリ又は主記憶メモリ用途としての第1のモードと、ストレージデバイス用途としての第2のモードとを、選択的に切り替えるための制御信号である。
ポリシー選択信号φ2は、第1のモードが選択されているときに、書き込みデータWdataを“1”が多い状態にして書き込みを行うか、又は“0”が多い状態にして書き込みを行うか、を決定する。
書き込みデータWdataを“1”又は“0”の一方が多い状態に片寄らせるために、例えば、書き込みデータDATA_INを、そのまま、書き込みデータWdataとして書き込み回路13に転送するか、又は、書き込みデータDATA_INの各ビットの値を反転させた反転データを、書き込みデータWdataとして書き込み回路13に転送するか、を制御する。
図2は、メモリセルアレイ、書き込み回路及び読み出し回路の第1の例を示している。
メモリセルアレイ10内のメモリセルMCは、直列接続される磁気抵抗効果素子MTJと選択トランジスタ(FET)Tとを備える。選択トランジスタのゲート端子は、ワード線WLに接続される。ワード線WLは、ロウ方向に延び、その一端は、ロウデコーダ11aに接続される。
メモリセルMCの一端は、ビット線BLに接続され、他端は、ビット線bBLに接続される。ビット線BL,bBLは、共に、カラム方向に延び、その一端は、カラム選択トランジスタ(FET)CSWを経由して、書き込み回路13及び読み出し回路14に接続される。
カラム選択トランジスタCSWのゲート端子は、カラムデコーダ11bに接続される。
書き込み回路13は、書き込みドライバ/シンカーDS1,DS2を備える。書き込みドライバ/シンカーDS1は、ビット線BLの一端に接続され、書き込みドライバ/シンカーDS2は、ビット線bBLの一端に接続される。
また、書き込みドライバ/シンカーDS1,DS2は、例えば、電源端子Vddと接地端子Vssとの間に直列接続されるPチャネルFETとNチャネルFETとを備える。
そして、書き込みイネーブル信号WEが“H”であり、マスク制御信号Mの反転信号bMが“H”であるとき、NANDゲート回路ND1−1の出力信号は、“L”になるため、NANDゲート回路ND1−2,ND1−3及びNORゲート回路NR1−1,NR1−2は、書き込みデータWdataの値に応じた出力信号を出力する。
例えば、書き込みデータWdataが“1”のときは、NANDゲート回路ND1−2の出力信号及びNORゲート回路NR1−1の出力信号は、共に“1”となる。このため、書き込みドライバ/シンカーDS1は、ビット線BLを接地端子Vssに接続する。また、NANDゲート回路ND1−3の出力信号及びNORゲート回路NR1−2の出力信号は、共に“0”となる。このため、書き込みドライバ/シンカーDS2は、ビット線bBLを電源端子Vddに接続する。
従って、磁気抵抗効果素子MTJに、ドライバ/シンカーDS2からドライバ/シンカーDS1に向かう方向の書き込み電流Iw-“1”が流れる。
また、例えば、書き込みデータWdataが“0”のときは、NANDゲート回路ND1−2の出力信号及びNORゲート回路NR1−1の出力信号は、共に“0”となる。このため、書き込みドライバ/シンカーDS1は、ビット線BLを電源端子Vddに接続する。また、NANDゲート回路ND1−3の出力信号及びNORゲート回路NR1−2の出力信号は、共に“1”となる。このため、書き込みドライバ/シンカーDS2は、ビット線bBLを接地端子Vssに接続する。
従って、磁気抵抗効果素子MTJに、ドライバ/シンカーDS1からドライバ/シンカーDS2に向かう方向の書き込み電流Iw-“0”が流れる。
これに対し、書き込みイネーブル信号WEが“L”であるとき、及び、書き込みイネーブル信号WEが“H”であるが、マスク制御信号Mの反転信号bMが“L”であるときは、NANDゲート回路ND1−1の出力信号は、“H”になるため、NANDゲート回路ND1−2,ND1−3の出力信号は、書き込みデータWdataの値にかかわらず、常に“1”となり、NORゲート回路NR1−1,NR1−2の出力信号は、書き込みデータWdataの値にかかわらず、常に“0”となる。
従って、ドライバ/シンカーDS1,DS2は、非活性化され、磁気抵抗効果素子MTJに書き込み電流が流れることはない。
このように、マスク制御信号Mの値に応じて、ドライバ/シンカーDS1,DS2の活性化/非活性化を制御できることは、書き込みデータDATA_INと読み出しデータRdataとが互いに一致するビットの書き込み(抵抗値を変化させない書き込み“1”→“1”及び“0”→“0”)については、マスク制御信号Mの反転信号bMを“L”にすることにより、書き込みを禁止(マスク処理)し、低消費電力化を図ることができることを意味する。
読み出し回路14は、例えば、ビット線bBLに接続される接地トランジスタ(FET)GSWと、ビット線BLに接続されるセンスアンプS/Aとを備える。
但し、接地トランジスタGSWとセンスアンプS/Aとの位置関係は、逆であってもよい。即ち、接地トランジスタ(FET)GSWがビット線BLに接続され、センスアンプS/Aがビット線bBLに接続されていてもよい。
例えば、読み出しイネーブル信号REが“H”であるとき、接地トランジスタGSWがオン状態となり、センスアンプS/Aが活性化される。
従って、例えば、センスアンプS/Aを用いて、磁気抵抗効果素子MTJに流れる読み出し電流Ir-“0”,Ir-“1”を検出することにより、磁気抵抗効果素子MTJから読み出しデータRdataを読み出すことができる。
尚、本例では、データ“1”がロジック“H”に対応し、データ“0”がロジック“L”に対応することを前提に説明したが、データ“1”/“0”とロジック“H”/“L”との関係は、これに限られず、逆の関係を有していてもよい。
この場合、例えば、図2のWdataをbWdataに変更すれば、図2の回路をそのまま採用することができる。但し、bWdataは、Wdataの反転信号である。
図3は、メモリセルアレイ、書き込み回路及び読み出し回路の第2の例を示している。
本例は、図2に示す第1の例と比べると、書き込み回路13の構成が相違している。
書き込み回路13は、書き込みドライバ/シンカーDS1,DS2を備える。書き込みドライバ/シンカーDS1は、ビット線BLの一端に接続され、書き込みドライバ/シンカーDS2は、ビット線bBLの一端に接続される。
また、書き込みドライバ/シンカーDS1,DS2は、例えば、電源端子Vddと接地端子Vssとの間に直列接続される2つのPチャネルFETと2つのNチャネルFETとを備える。
本例によれば、書き込みドライバ/シンカーDS1,DS2が2つのPチャネルFETと2つのNチャネルFETとを備えるため、書き込みドライバ/シンカーDS1,DS2を制御するための信号の配線接続が容易になる利点がある。但し、電源端子Vddとビット線BLとの間に2つのFETが配置されるために、電圧降下が大きくなるため、電圧降下を小さくしたいときは、図2に示す第1の例を採用するのが望ましい。
本例によれば、書き込みイネーブル信号WEが“H”であり、マスク制御信号Mの反転信号bMが“H”であるとき、NANDゲート回路N1の出力信号は、“L”になり、ドライバ/シンカーDS1,DS2が活性化される。
従って、書き込みデータWdataが“1”のときは、磁気抵抗効果素子MTJに、ドライバ/シンカーDS2からドライバ/シンカーDS1に向かう方向の書き込み電流Iw-“1”が流れ、書き込みデータWdataが“0”のときは、磁気抵抗効果素子MTJに、ドライバ/シンカーDS1からドライバ/シンカーDS2に向かう方向の書き込み電流Iw-“0”が流れる。
また、例えば、書き込みイネーブル信号WEが“L”であるとき、及び、書き込みイネーブル信号WEが“H”であるが、マスク制御信号Mの反転信号bMが“L”であるときは、NANDゲート回路N1の出力信号は、“H”になり、ドライバ/シンカーDS1,DS2が非活性化される。
即ち、例えば、書き込みデータDATA_INと読み出しデータRdataとが互いに一致するビットの書き込み(抵抗値を変化させない書き込み“1”→“1”及び“0”→“0”)については、マスク制御信号Mの反転信号bMを“L”にすることにより、書き込みを禁止(マスク処理)し、低消費電力化を図ることができる。
読み出し回路14は、例えば、ビット線bBLに接続される接地トランジスタ(FET)GSWと、ビット線BLに接続されるセンスアンプS/Aとを備える。
但し、接地トランジスタGSWとセンスアンプS/Aとの位置関係は、逆であってもよい。即ち、接地トランジスタ(FET)GSWがビット線BLに接続され、センスアンプS/Aがビット線bBLに接続されていてもよい。
例えば、読み出しイネーブル信号REが“H”であるとき、接地トランジスタGSWがオン状態となり、センスアンプS/Aが活性化される。
従って、例えば、センスアンプS/Aを用いて、磁気抵抗効果素子MTJに流れる読み出し電流Ir-“0”,Ir-“1”を検出することにより、磁気抵抗効果素子MTJから読み出しデータRdataを読み出すことができる。
尚、本例においても、データ“1”がロジック“H”に対応し、データ“0”がロジック“L”に対応することを前提に説明したが、データ“1”/“0”とロジック“H”/“L”との関係は、これに限られず、逆の関係を有していてもよい。
この場合、例えば、図3のWdataをbWdataに変更すれば、図3の回路をそのまま採用することができる。但し、bWdataは、Wdataの反転信号である。
図4は、比較回路を示している。
比較回路16は、書き込みデータDATA_INと読み出しデータRdataの一致/不一致を、ビット毎に比較する。本例では、1ビットDATA_IN [0]と1ビットRdata [0]の比較により1ビットCOMP [0]を得る比較回路の例を示す。従って、sビットのデータを比較するには、例えば、図4の回路をs個用いてsビットのデータを同時に比較する。
比較回路16は、NANDゲート回路ND2と、NORゲート回路NR2−1,NR2−2とを備える。この回路は、エクスクルーシブオア回路と等価である。即ち、比較回路16は、sビットの書き込みデータDATA_IN [0:S-1]とsビットの読み出しデータRdata [0:S-1]とを、ビット毎に比較し、両者が一致しているビット数、又は、両者が不一致のビット数を検出する機能を備える。
例えば、書き込みデータ(1ビット)DATA_IN [0]と読み出しデータ(1ビット)Rdata [0]とが一致しているとき、比較信号COMP [0]は、“0”となる。
即ち、DATA_IN [0]=”1”, Rdata [0]=”1”のとき、NANDゲート回路ND2の出力信号は、“0”となり、NORゲート回路NR2−1の出力信号は、“0”となるため、NORゲート回路NR2−2から出力される比較信号COMP [0]は、“0”となる。また、DATA_IN [0]=”0”, Rdata [0]=”0”のとき、NANDゲート回路ND2の出力信号は、“1”となり、NORゲート回路NR2−1の出力信号は、“1”となるため、NORゲート回路NR2−2から出力される比較信号COMP [0]は、“0”となる。
これに対し、書き込みデータ(1ビット)DATA_IN [0]と読み出しデータ(1ビット)Rdata [0]とが不一致のとき、比較信号COMP [0]は、“1”となる。
即ち、DATA_IN [0]=”1”, Rdata [0]=”0”のとき、NANDゲート回路ND2の出力信号は、“1”となり、NORゲート回路NR2−1の出力信号は、“0”となるため、NORゲート回路NR2−2から出力される比較信号COMP [0]は、“1”となる。また、DATA_IN [0]=”0”, Rdata [0]=”1”のとき、NANDゲート回路ND2の出力信号は、“1”となり、NORゲート回路NR2−1の出力信号は、“0”となるため、NORゲート回路NR2−2から出力される比較信号COMP [0]は、“1”となる。
図5は、書き込み側のデータ反転回路を示している。
データ反転回路12は、“1”/“0”計算回路19を備える。“1”/“0”計算回路19は、モード選択信号φ1及びポリシー選択信号φ2の制御下で、書き込みデータDATA_IN [0:S-1]又は比較信号COMP [0:S-1]について、“1”状態のビット数、“0”状態のビット数、又は、“1”状態及び“0”状態のビット数を計算する。
例えば、表1に示すように、ストレージデバイス用途としての第2のモードが選択されるときは、モード選択信号φ1が“H”に設定され、モード選択信号φ1の反転信号bφ1が“L”に設定される。
この場合、“1”/“0”計算回路19には、比較信号COMP [0:S-1]が入力される。即ち、“1”/“0”計算回路19は、ポリシー選択信号φ2に基づき、比較信号COMP [0:S-1]について“1”の数、“0”の数、又は、その両方を計算する。
例えば、ポリシー選択信号φ2が“L”であるときは、比較信号COMP [0:S-1]について“0”の数を計算する。これは、図4の比較回路を想定すると、比較信号COMP [i]が“0”のとき、書き込みデータDATA_IN [i]と読み出しデータRdata [i]とが一致していることから、両者が一致しているビット数を計算する、ということを意味する。
従って、“1”/“0”計算回路19は、“0”が多い(両者が一致するビットが多い)と判断したときは、制御信号CNTとして“H”を出力する。
この時、セレクタSEL1内の転送トランジスタQ11がオンになり、転送トランジスタQ12がオフになるため、セレクタSEL1は、書き込みデータDATA_IN [0]を、そのまま、書き込みデータWdata [0]として書き込み回路13に転送する。
本例では、セレクタSEL1は、1ビットの書き込みデータDATA_IN [0]に対して1個設けられることを前提とする。従って、sビットの書き込みデータDATA_IN [0:S-1]をsビットの書き込みデータWdata [0:S-1]として出力するためには、例えば、図5の回路のセレクタをs個用いてsビットのデータ転送に使用する。以下、同じ。
これに対し、“1”/“0”計算回路19は、“1”が多い(両者が不一致のビットが多い)と判断したときは、制御信号CNTとして“L”を出力する。
この時、セレクタSEL1内の転送トランジスタQ11がオフになり、転送トランジスタQ12がオンになるため、セレクタSEL1は、書き込みデータDATA_INの反転データを、書き込みデータWdataとして書き込み回路13に転送する。
また、例えば、ポリシー選択信号φ2が“H”であるときは、比較信号COMP [0:S-1]について“1”の数を計算する。これは、図4の比較回路を想定すると、比較信号COMP [i]が“0”のとき、書き込みデータDATA_IN [i]と読み出しデータRdata [i]とが一致していることから、両者が不一致のビット数を計算する、ということを意味する。
従って、“1”/“0”計算回路19は、“1”が多い(両者が不一致のビットが多い)と判断したときは、制御信号CNTとして“H”を出力する。
この時、セレクタSEL1内の転送トランジスタQ11がオンになり、転送トランジスタQ12がオフになるため、セレクタSEL1は、書き込みデータDATA_IN [0]を、そのまま、書き込みデータWdata [0]として書き込み回路13に転送する。
これに対し、“1”/“0”計算回路19は、“0”が多い(両者が一致するビットが多い)と判断したときは、制御信号CNTとして“L”を出力する。
この時、セレクタSEL1内の転送トランジスタQ11がオフになり、転送トランジスタQ12がオンになるため、セレクタSEL1は、書き込みデータDATA_IN [0]の反転データを、書き込みデータWdata [0]として書き込み回路13に転送する。
ここで、モード選択信号φ1及びポリシー選択信号φ2が共に“H”のときは、結果として、不一致のビット数が多くなるように、書き込みデータDATA_IN [0]の反転/非反転を制御し、書き込みを実行することになる。
しかし、本実施例においては、書き込み時において、書き込みデータWdata [0:S-1]と読み出しデータRdata [0:S-1]とが一致するビット数を増やし、それら一致するビットの書き込みを禁止して低消費電力を図る、という主旨を有する。このため、本実施例の目的からすれば、モード選択信号φ1及びポリシー選択信号φ2が共に“H”にすることは不適切である。
従って、例えば、モード選択信号φ1が“H”のときは、常に、ポリシー選択信号φ2が“L”になるように制御するのが望ましい。
但し、必要に応じて、モード選択信号φ1が“H”のときに、ポリシー選択信号φ2を“H”又は“L”に切り替えることができるようにすることは可能である。
このように、図4及び図5の回路を用いれば、以下の制御が可能になる。
即ち、読み出しデータRdata [0:S-1]としてのsビットと書き込みデータDATA_IN [0:S-1]としてのsビットとが互いに一致するビット数をn1とし、読み出しデータRdata [0:S-1]としてのsビットと書き込みデータDATA_IN [0:S-1]の反転データとしてのsビットとが互いに一致するビット数をn2とする。
そして、n1>n2のときに、制御信号CNTを“H”にし、かつ、sビットの書き込みデータDATA_IN [0:S-1]のうち、書き込みデータDATA_IN [i]と読み出しデータRdata [i]とが一致しているビットについては、マスク制御信号Mを“H”(書き込み禁止:マスク処理実行)にし、書き込みデータDATA_IN [i]と読み出しデータRdata [i]とが一致していないビットについては、マスク制御信号Mを“L”(書き込み実行)にする。
即ち、制御信号CNTが“H”であるため、書き込みデータDATA_INの反転処理は、実行されない。
また、マスク制御信号Mは、sビットの書き込みデータDATA_IN [0:S-1]に対して、ビット毎に出力される。従って、書き込みイネーブル信号WE及びマスクイネーブル信号MEが共に“H”のとき、書き込みデータDATA_IN [i]と読み出しデータRdata [i]とが一致しているビットについては、マスク制御信号Mの反転信号bMは、“L”(書き込み禁止:マスク処理実行)になる。
また、n1<n2のときに、制御信号CNTを“L”にし、かつ、sビットの書き込みデータDATA_IN [0:S-1]の反転データうち、書き込みデータDATA_IN [i]の反転データと読み出しデータRdata [i]とが一致しているビットについては、マスク制御信号Mを“H”(書き込み禁止:マスク処理実行)にし、書き込みデータDATA_IN [i]の反転データと読み出しデータRdata [i]とが一致していないビットについては、マスク制御信号Mを“L”(書き込み実行)にする。
即ち、制御信号CNTが“L”であるため、書き込みデータDATA_IN [i]の反転処理は、実行される。
また、マスク制御信号Mは、sビットの書き込みデータDATA_IN [0:S-1]に対して、ビット毎に出力される。従って、書き込みイネーブル信号WE及びマスクイネーブル信号MEが共に“H”のとき、書き込みデータDATA_IN [i]の反転信号と読み出しデータRdata [i]とが一致しているビットについては、マスク制御信号Mの反転信号bMは、“L”(書き込み禁止:マスク処理実行)になる。
また、例えば、表1に示すように、キャッシュメモリ又は主記憶メモリ用途としての第1のモードが選択されるときは、モード選択信号φ1が“L”に設定され、モード選択信号φ1の反転信号bφ1が“H”に設定される。
この場合、“1”/“0”計算回路19には、書き込みデータDATA_IN [0:S-1]が入力される。即ち、“1”/“0”計算回路19は、ポリシー選択信号φ2に基づき、書き込みデータDATA_IN [0:S-1]について“1”の数、“0”の数、又は、その両方を計算する。
例えば、ポリシー選択信号φ2が、書き込みデータWdataを“0”が多い状態にする、というポリシーを示しているとき、即ち、ポリシー選択信号φ2が“L”であるときは、以下の書き込み制御を行う。
まず、書き込みデータ(sビット)DATA_IN [0:S-1]のうち、磁気抵抗効果素子を低抵抗値にする“0”−書き込みを行うビット数をm1とし、磁気抵抗効果素子を高抵抗値にする“1”−書き込みを行うビット数をm2とする。
そして、m1>m2のときに、“1”/“0”計算回路19は、書き込みデータDATA_IN [0:S-1]としてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子にそのまま書き込むための制御信号CNTとして“H”を出力する。
従って、セレクタSEL1内の転送トランジスタQ11がオンになり、転送トランジスタQ12がオフになるため、セレクタSEL1は、“0”が多い書き込みデータDATA_IN [0:S-1]を、そのまま、書き込みデータWdata [0:S-1]として書き込み回路13に転送する。
また、m1<m2のときに、“1”/“0”計算回路19は、書き込みデータDATA_IN [0:S-1]の反転データとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための制御信号CNTとして“L”を出力する。
従って、セレクタSEL1内の転送トランジスタQ11がオフになり、転送トランジスタQ12がオンになるため、セレクタSEL1は、“1”が多い書き込みデータDATA_IN [0:S-1]を反転することにより“0”が多い書き込みデータに変換し、これを書き込みデータWdata [0:S-1]として書き込み回路13に転送する。
また、例えば、ポリシー選択信号φ2が、書き込みデータWdata [0:S-1]を“1”が多い状態にする、というポリシーを示しているとき、即ち、ポリシー選択信号φ2が“H”であるときは、以下の書き込み制御を行う。
まず、書き込みデータ(sビット)DATA_IN [0:S-1]のうち、磁気抵抗効果素子を高抵抗値にする“1”−書き込みを行うビット数をm1とし、磁気抵抗効果素子を低抵抗値にする“0”−書き込みを行うビット数をm2とする。
そして、m1>m2のときに、“1”/“0”計算回路19は、書き込みデータDATA_IN [0:S-1]としてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子にそのまま書き込むための制御信号CNTとして“H”を出力する。
従って、セレクタSEL1内の転送トランジスタQ11がオンになり、転送トランジスタQ12がオフになるため、セレクタSEL1は、“1”が多い書き込みデータDATA_IN [0:S-1]を、そのまま、書き込みデータWdata [0:S-1]として書き込み回路13に転送する。
また、m1<m2のときに、“1”/“0”計算回路19は、書き込みデータDATA_IN [0:S-1]の反転データとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための制御信号CNTとして“L”を出力する。
従って、セレクタSEL1内の転送トランジスタQ11がオフになり、転送トランジスタQ12がオンになるため、セレクタSEL1は、“0”が多い書き込みデータDATA_IN [0:S-1]を反転することにより“1”が多い書き込みデータに変換し、これを書き込みデータWdata [0:S-1]として書き込み回路13に転送する。
ここで、図6に示すように、第1又は第2のモードにおいて、書き込みデータDATA_INを反転させたか否かを示すためのフラグビットを書き込みデータWdataに付加する。
これは、読み出し時に、メモリセルアレイに記憶された書き込みデータWdataが、書き込みデータDATA_INそのものであるか、又は、書き込みデータDATA_INを反転させたデータであるか、を明示しておくことにより、読み出し時に、書き込みデータDATA_INを読み出しデータDATA_OUTとして正確に読み出すことを目的とする。
例えば、第2のモードが選択されている場合を例に説明する。
まず、書き込みデータ(データ列)DATA_INは、一定単位のデータに分割される。そして、一定単位の書き込みデータ(sビット)DATA_INに対して、“1”状態のビット数と“0”状態のビット数を計算する。
また、ポリシー選択信号φ2が、書き込みデータWdataを“1”が多い状態にする、というポリシーを示しており、かつ、sビットの書き込みデータDATA_INが、“1”が多い状態にあるとき、書き込みデータDATA_INをそのまま書き込みデータWdataとして書き込んだことを示すために、例えば、フラグビットを“1”に設定する(同図(a)参照)。
これに対し、ポリシー選択信号φ2が、書き込みデータWdataを“1”が多い状態にする、というポリシーを示しており、かつ、sビットの書き込みデータDATA_INが、“0”が多い状態にあるとき、書き込みデータWdataが書き込みデータDATA_INを反転させたデータであることを示すために、例えば、フラグビットを“0”に設定する(同図(b)参照)。
これにより、読み出し時においては、フラグビットを参酌することにより、メモリセルアレイから読み出されたデータをそのまま読み出しデータとするか、又は、メモリセルアレイから読み出されたデータを反転したデータを読み出しデータとするか、を決定することができる。
図7は、読み出し側のデータ反転回路を示している。
データ反転回路15は、フラグ検出回路20を備える。
データ反転回路15は、フラグ検出回路20を備える。
フラグ検出回路20は、メモリセルアレイ内のs個の磁気抵抗効果素子から読み出されたsビットの読み出しデータRdataをそのまま読み出しデータDATA_OUTとして出力するか、又は、sビットの読み出しデータRdataの反転データを読み出しデータDATA_OUTとして出力するか、をフラグビットに基づいて決定する。
例えば、ストレージデバイス用途としての第2のモードが選択され、かつ、sビットの書き込みデータDATA_INがn1>n2を満たしているとき、フラグビットは、第1の値としての“1”に設定される。この場合、第2のモード後の読み出し動作において、前記フラグビットが“1”のときは、フラグ検出回路20は、“H”を出力する。
フラグ検出回路20の出力信号が“H”であるときは、セレクタSEL2内の転送トランジスタQ21がオンになり、転送トランジスタQ22がオフになる。従って、セレクタSEL2は、メモリセルアレイからのsビットの読み出しデータRdataをそのまま読み出しデータDATA_OUTとして出力する。
また、第2のモードが選択され、かつ、sビットの書き込みデータDATA_INがn1<n2を満たしているとき、フラグビットは、第2の値としての“0”に設定される。この場合、第2のモード後の読み出し動作において、前記フラグビットが“0”のときは、フラグ検出回路20は、“L”を出力する。
フラグ検出回路20の出力信号が“L”であるときは、セレクタSEL2内の転送トランジスタQ21がオフになり、転送トランジスタQ22がオンになる。従って、セレクタSEL2は、メモリセルアレイからのsビットの読み出しデータRdataの反転データとしての読み出しデータDATA_OUTを出力する。
また、キャッシュメモリ又は主記憶メモリ用途としての第1のモードが選択され、かつ、sビットの書き込みデータDATA_INがm1>m2を満たしているとき、フラグビットは、第1の値としての“1”に設定される。この場合、第1のモード後の読み出し動作において、前記フラグビットが“1”のときは、フラグ検出回路20は、“H”を出力する。
フラグ検出回路20の出力信号が“H”であるときは、セレクタSEL2内の転送トランジスタQ21がオンになり、転送トランジスタQ22がオフになる。従って、セレクタSEL2は、メモリセルアレイからのsビットの読み出しデータRdataをそのまま読み出しデータDATA_OUTとして出力する。
また、第1のモードが選択され、かつ、sビットの書き込みデータDATA_INがm1<m2を満たしているとき、フラグビットは、第2の値としての“0”に設定される。この場合、第1のモード後の読み出し動作において、前記フラグビットが“0”のときは、フラグ検出回路20は、“L”を出力する。
フラグ検出回路20の出力信号が“L”であるときは、セレクタSEL2内の転送トランジスタQ21がオフになり、転送トランジスタQ22がオンになる。従って、セレクタSEL2は、メモリセルアレイからのsビットの読み出しデータRdataの反転データとしての読み出しデータDATA_OUTを出力する。
尚、図8は、読み出しデータRdataの反転データを、読み出しデータDATA_OUTとして出力するときの読み出し波形図を示している。
この場合、読み出しデータRdataを反転して、読み出しデータDATA_OUTを生成するために、データ復元(反転)のための遅延時間tdが発生する。
図9は、磁気ランダムアクセスメモリを備えるメモリシステムを示している。
コントローラ21は、バッファメモリ(書き込みバッファ)22及び磁気ランダムアクセスメモリ23の動作を制御する。磁気ランダムアクセスメモリ23は、上述の実施例に係わる磁気ランダムアクセスメモリである。
このメモリシステムは、書き込みデータDATA_INのデータパスとして、コントローラ21から、バッファメモリ(例えば、DRAMなど)22を経由して、磁気ランダムアクセスメモリ23に接続されるデータパスを備える。
コントローラ21は、磁気ランダムアクセスメモリ23をストレージデバイス用途として使用するとき、ストレージデバイス用途としての第2のモードを選択するモード選択信号φ1を磁気ランダムアクセスメモリに供給する。
ここで、コントローラ21に以下の機能を付加することもできる。
その機能とは、バッファメモリ22の空き容量に基づき、上述の第2のモードに代えて、第3のモードを選択する機能である。
例えば、コントローラ21は、バッファメモリ22の空き容量を示す空き容量信号φcに基づいて、バッファメモリ22の空き容量を確認する。
そして、コントローラ21は、バッファメモリ22の空き容量が一定値以上であるときは、第2のモードの選択を指示するモード選択信号φ1を磁気ランダムアクセスメモリ23に供給する。
また、コントローラ21は、バッファメモリ22の空き容量が一定値未満であるときは、第2のモードに代えて、第3のモードの選択を指示するモード選択信号φ1を磁気ランダムアクセスメモリ23に供給する。
磁気ランダムアクセスメモリ23内の制御回路(図1の制御回路17)は、モード選択信号φ1により第3のモードが選択されたとき、書き込みデータDATA_INとしてのsビットのうち、磁気抵抗効果素子を第1の抵抗値(高抵抗状態)にするビット数をm1とし、磁気抵抗効果素子を第2の抵抗値(低抵抗状態)にするビット数をm2とする。
そして、m1>m2のときに、書き込みデータDATA_INとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための書き込み動作を実行する。
また、m1<m2のときに、書き込みデータDATA_INの反転データとしてのsビットを、選択された物理アドレスに存在するs個の磁気抵抗効果素子に書き込むための書き込み動作を実行する。
このように、磁気ランダムアクセスメモリをストレージデバイス用途として使用する場合において、バッファメモリ22の空き容量が十分に確保されているときは、第2のモードを選択し、書き込みデータを上書きするメモリセルのデータを読み出し、その読み出しデータと書き込みデータとを比較し、両者が一致するビットの書き込みを禁止することにより、書き込みビット数(抵抗値を変化させるビット数)を削減する。これにより、書き込み時における低消費電力化を実現できる。
ところで、第2のモードにより書き込み動作を実行しているときは、例えば、図10の(b)に示す波形図から明らかなように、データ書き込みを実行する前に、必ず、データ読み出し(プリ読み出し)を行わなければならない。このため、磁気ランダムアクセスメモリ23において、ビット比較及びデータ反転のための遅延時間(オーバーヘッド)tdが発生し、物理アドレス(メモリセル)に実際にデータを書き込むための書き込み時間(1サイクル)が長くなる。
一方、第2のモードによりコントローラ21からバッファメモリ22に書き込みデータDATA_INを書き込むための書き込み時間は、磁気ランダムアクセスメモリ23における書き込み時間に比べて、十分に短い。このため、第2のモードでは、バッファメモリ22の空き容量が次第に減少していくことが容易に推測できる。
この場合、バッファメモリ22の空き容量が十分に確保されているときは、コントローラ21からバッファメモリ22への書き込みが短い書き込みレイテンシで高速に行えるため、第2のモードで、書き込み動作を継続することが可能である。
しかし、バッファメモリ22の空き容量が十分に確保されていないときは、バッファメモリの空き容量が十分に確保されるまで、コントローラ21からバッファメモリ22への書き込みを待機しなければならず、書き込みレイテンシが長くなり、メモリシステムに悪影響を与える。
そこで、磁気ランダムアクセスメモリをストレージデバイス用途として使用する場合において、バッファメモリ22の空き容量が十分に確保されていないときは、第2のモードに代えて、第3のモードを選択する。
第3のモードにおける書き込み動作は、キャッシュメモリ用途としての第1のモードにおける書き込み動作と同じであり、書き込みデータと読み出しデータを比較することがないため、高速に書き込みを行うことができる。即ち、第3のモードでは、ポリシー選択信号φ2に基づいて、例えば、“1”が多くなるという条件を満たすように、sビットの書き込みデータDATA_INの反転/非反転を制御すればよい。
例えば、図10の(a)に示す波形図から明らかなように、第3のモードにおける書き込み動作では、書き込みデータDATA_INから書き込みデータWdataを生成するために必要なデータ反転のための遅延時間tdは、短い。
このように、ストレージデバイス用途において、バッファメモリ22の空き容量に基づき、第2のモードから第3のモードに変更することにより、バッファメモリ22の空き容量が零になり、コントローラ21からバッファメモリ22への書き込みが行えなくなる、といった事態を回避できる。
磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリ用途(Read optimize)として使用するときは、第1のモードが選択される。
第1のモードでは、書き込みデータDATA_INの状態を確認し、磁気抵抗効果素子を“1”状態にするビット数をm1とし、磁気抵抗効果素子を“0”状態にするビット数をm2とし、m1>m2のときは、書き込みデータをそのまま書き込み、m1<m2のときは、書き込みデータの反転データを書き込む。
磁気ランダムアクセスメモリをストレージデバイス用途(Write optimize)として使用するときは、バッファメモリの空き容量C-bufferが一定値Nb以上であることを条件として、第2のモードが選択される。
第2のモードでは、読み出しデータと書き込みデータとが互いに一致するビット数をn1とし、読み出しデータと書き込みデータの反転データとが互いに一致するビット数をn2とする。そして、n1>n2のときは、書き込みデータについて、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、互いに不一致のビットについて書き込みを行う。また、n1<n2のときは、書き込みデータの反転データについて、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、互いに不一致のビットについて書き込みを行う。
磁気ランダムアクセスメモリをストレージデバイス用途として使用する場合において、バッファメモリの空き容量C-bufferが一定値Nb未満となったときは、第2のモードに代えて、第3のモードが選択される。
第3のモードでは、書き込みデータDATA_INの状態を確認し、磁気抵抗効果素子を“1”状態にするビット数をm1とし、磁気抵抗効果素子を“0”状態にするビット数をm2とし、m1>m2のときは、書き込みデータをそのまま書き込み、m1<m2のときは、書き込みデータの反転データを書き込む。
本実施例によれば、キャッシュメモリ又は主記憶メモリ用途として、並びに、ストレージデバイス(ファイルメモリ)用途としての切り替えが可能であり、かつ、各用途において低消費電力化を図ることができる磁気ランダムアクセスメモリを実現できる。
図11は、マスク制御信号生成回路の例を示している。
モード選択信号φ1が“L”(=“0”)のときは、制御信号CNTの値(“L”又は“H”)にかかわらず、マスク制御信号Mの反転信号bMは、強制的に、“H”(=Vdd)に設定される。即ち、全ビットについて書き込みが実行される。
制御信号CNTが“L”(=“0”)であり、モード選択信号φ1が“H”(=“1”)であるとき、比較信号COMPの反転信号bCOMPがマスク制御信号Mの反転信号bMとして出力される。即ち、書き込みデータDATA_INと読み出しデータRdataとが一致しているビット(COMP=“0”)については、マスク制御信号Mの反転信号bMが“1”になるため、書き込みが実行される(反転書き込み)。
制御信号CNT及びモード選択信号φ1が共に“H”(=“1”)であるとき、比較信号COMPがマスク制御信号Mの反転信号bMとして出力される。即ち、書き込みデータDATA_INと読み出しデータRdataとが不一致のビット(COMP=“1”)については、マスク制御信号Mの反転信号bMが“1”になるため、書き込みが実行される(そのまま書き込み)。
[その他]
上述の実施例では、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリ用途として使用する場合に、第1のモードを選択するとした。これは、キャッシュメモリ又は主記憶メモリ用途では、一般的に、読み出しが書き込みよりも多くなるからである。しかし、メモリシステムにおける特性(磁気ランダムアクセスメモリにおいて、読み出しが多く発生するか、又は、書き込みが多く発生するかなど)に応じて、第1のモードではなく、第2のモード(さらには、第3のモード)を選択するようにしてもよい。
上述の実施例では、磁気ランダムアクセスメモリをキャッシュメモリ又は主記憶メモリ用途として使用する場合に、第1のモードを選択するとした。これは、キャッシュメモリ又は主記憶メモリ用途では、一般的に、読み出しが書き込みよりも多くなるからである。しかし、メモリシステムにおける特性(磁気ランダムアクセスメモリにおいて、読み出しが多く発生するか、又は、書き込みが多く発生するかなど)に応じて、第1のモードではなく、第2のモード(さらには、第3のモード)を選択するようにしてもよい。
例えば、磁気ランダムアクセスメモリをキャッシュメモリとして使用するときは、コントローラは、プログラム(ROM情報)から、磁気ランダムアクセスメモリにおいて、読み出しが多く発生するか、又は、書き込みが多く発生するか、を確認できる。書き込みが多く発生するような場合には、磁気ランダムアクセスメモリをキャッシュメモリとして使用するときであっても、第2のモードを選択する。
また、複数ウェイを有するキャッシュメモリのように、データ置き換え(リプレイスメント)を頻繁に行うモードと、データ置き換えを頻繁に行わないモードとを切り替えられるようなときは、データの置き換えを頻繁に行うときは、第2のモードを選択し、データの置き換えを頻繁に行わないときは、第1のモードを選択する、といったような制御方法も可能である。
さらに、磁気ランダムアクセスメモリを命令キャッシュとして使用するか、又は、データキャッシュとして使用するかに応じて、第1のモードを選択するか、又は、第2のモードを選択するか、を一義的に決めておくことも可能である。
即ち、本実施例においては、一般的には、読み出し時の消費電力を削減することを主眼に置いた用途においては、第1のモードを選択し、書き込み時の消費電力を削減することを主眼に置いた用途においては、第2のモード(さらには、第3のモード)を選択するように制御すればよい。
[適用例]
上述の実施例に係わる磁気ランダムアクセスメモリは、例えば、低消費電力プロセッサのキャッシュメモリに適用することができる。
上述の実施例に係わる磁気ランダムアクセスメモリは、例えば、低消費電力プロセッサのキャッシュメモリに適用することができる。
例えば、コンベンショナルな磁気ランダムアクセスメモリを単にキャッシュメモリとして使用しただけでは、SRAMによるキャッシュメモリ(SRAMキャッシュ)に比べて、特に、読み出し時の消費電力が大きくなる問題がある。
これに対し、本実施例に係わる磁気ランダムアクセスメモリによるキャッシュメモリ(MRAMキャッシュ)は、第1のモードにより読み出し時の低消費電力化を図ることができるため、SRAMキャッシュと同等又はそれ以上に、読み出し時の低消費電力化を図ることができる。
図12は、プロセッサ内のメモリの例を示している。
CPU31は、SRAM32、DRAM33、フラッシュメモリ34、ROM35及びMRAM(磁気ランダムアクセスメモリ)36を制御する。
MRAM36は、SRAM32、DRAM33、フラッシュメモリ34及びROM35のいずれの代替として使用することが可能である。これに伴い、SRAM32、DRAM33、フラッシュメモリ34及びROM35の少なくとも1つを省略してもよい。
MRAM36は、本実施例に従い、モードを切り替えることにより、読み出し時又は書き込み時の消費電力を削減することができる。
[むすび]
実施形態によれば、例えば、キャッシュメモリ又は主記憶メモリ用途として、並びに、ストレージデバイス用途としての切り替えが可能であり、かつ、各用途において低消費電力化を図ることができる磁気ランダムアクセスメモリを実現できる。
実施形態によれば、例えば、キャッシュメモリ又は主記憶メモリ用途として、並びに、ストレージデバイス用途としての切り替えが可能であり、かつ、各用途において低消費電力化を図ることができる磁気ランダムアクセスメモリを実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10: メモリセルアレイ、 11: デコーダ、 12,15: データ反転回路、 13: 書き込み回路、 14: 読み出し回路、 16: 比較回路、 17: 制御回路、 18: 比較器、 19: “0”/“1”計算回路、 20: フラグ検出回路。
Claims (8)
- 第1の抵抗値及びこれと異なる第2の抵抗値のうちの1つを記憶可能な複数の磁気抵抗効果素子を備えるユニットと、前記ユニット内の前記複数の磁気抵抗効果素子にsビット(sは2以上の自然数)の書き込みデータを書き込むための書き込み回路と、前記ユニット内の前記複数の磁気抵抗効果素子からsビットの読み出しデータを読み出すための読み出し回路と、前記書き込み回路及び前記読み出し回路を制御する制御回路とを具備し、
前記書き込みデータは、バッファメモリから供給され、
前記制御回路は、
第1及び第2のモードのうちの1つをモード選択信号に基づいて選択し、
前記第2のモードが選択されたときに、前記バッファメモリの空き容量が一定値以上であれば、前記読み出し回路によって読み出しデータを読み出し、前記読み出しデータと前記書き込みデータに基づいて、前記書き込みデータと前記書き込みデータの反転データのいずれか一方を前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込み、
前記第2のモードが選択されたときに、前記バッファメモリの空き容量が前記一定値未満であれば、前記磁気抵抗効果素子を前記第1の抵抗値にするビット数が多くなるように前記書き込みデータと前記書き込みデータの反転データのいずれか一方を前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込む
ように構成される
磁気ランダムアクセスメモリ。 - 前記制御回路は、
前記第2のモードが選択され、かつ、前記バッファメモリの空き容量が一定値以上であるときに、前記読み出しデータとしてのsビットと前記書き込みデータとしてのsビットとが互いに一致するビット数をn1とし、前記読み出しデータとしてのsビットと前記書き込みデータの反転データとしてのsビットとが互いに一致するビット数をn2とし、
n1>n2のときに、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、前記書き込みデータとしてのsビットのうち、互いに不一致のビットについて書き込み動作を実行し、
n1<n2のときに、互いに一致するビットの書き込みを禁止するマスク処理を行ったうえで、前記書き込みデータの前記反転データとしてのsビットのうち、互いに不一致のビットについて前記書き込み動作を実行する
ように構成される
請求項1に記載の磁気ランダムアクセスメモリ。
- 前記制御回路は、
前記第2のモードが選択され、かつ、前記バッファメモリの空き容量が一定値未満であるときに、前記書き込みデータとしてのsビットのうち、前記磁気抵抗効果素子を前記第1の抵抗値にするビット数をm1とし、前記磁気抵抗効果素子を前記第2の抵抗値にするビット数をm2とし、
m1>m2のときに、前記書き込みデータとしてのsビットを前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込み、
m1<m2のときに、前記書き込みデータの前記反転データとしてのsビットを前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込む
ように構成される
請求項1に記載の磁気ランダムアクセスメモリ。 - 前記制御回路は、
前記第1のモードが選択されたときに、前記書き込みデータとしてのsビットのうち、前記磁気抵抗効果素子を前記第1の抵抗値にするビット数をm1とし、前記磁気抵抗効果素子を前記第2の抵抗値にするビット数をm2とし、
m1>m2のときに、前記書き込みデータとしてのsビットを前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込み、
m1<m2のときに、前記書き込みデータの前記反転データとしてのsビットを前記書き込み回路によって前記複数の磁気抵抗効果素子に書き込む
ように構成される
請求項1に記載の磁気ランダムアクセスメモリ。 - 前記制御回路は、
前記書き込みデータとしてのsビットを前記複数の磁気抵抗効果素子に書き込むときに、前記ユニットに付随的に設けられるフラグビットを第1の値に設定し、
前記書き込みデータの前記反転データとしてのsビットを前記複数の磁気抵抗効果素子に書き込むときに、前記フラグビットを第2の値に設定し、
前記フラグビットが前記第1の値のときに、前記ユニット内の前記複数の磁気抵抗効果素子から前記読み出しデータとしてのsビットを読み出し、
前記フラグビットが前記第2の値のときに、前記ユニット内の前記複数の磁気抵抗効果素子から前記読み出しデータの反転データとしてのsビットを読み出す
ように構成される
請求項1乃至4のいずれか1項に記載の磁気ランダムアクセスメモリ。 - 前記第1のモードは、読み出し時の低消費電力化を主眼に置いた用途で選択され、前記第2のモードは、書き込み時の低消費電力化を主眼に置いた用途で選択される請求項1乃至5のいずれか1項に記載の磁気ランダムアクセスメモリ。
- 請求項1乃至6のいずれか1項に記載の磁気ランダムアクセスメモリと、前記磁気ランダムアクセスメモリの動作を制御するコントローラとを具備し、
前記コントローラは、前記モード選択信号を前記磁気ランダムアクセスメモリに供給するメモリシステム。 - 請求項1乃至6のいずれか1項に記載の磁気ランダムアクセスメモリと、前記書き込みデータを一時的に記憶する前記バッファメモリと、前記磁気ランダムアクセスメモリ及び前記バッファメモリの動作を制御するコントローラとを具備し、
前記コントローラは、前記バッファメモリの空き容量を示す空き容量信号に基づいて、前記空き容量が一定値以上であるか、又は、一定値未満であるか、を判定する
メモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012110720A JP5337277B1 (ja) | 2012-05-14 | 2012-05-14 | 磁気ランダムアクセスメモリ及びメモリシステム |
US13/763,068 US8824199B2 (en) | 2012-05-14 | 2013-02-08 | Magnetic random access memory and memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012110720A JP5337277B1 (ja) | 2012-05-14 | 2012-05-14 | 磁気ランダムアクセスメモリ及びメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5337277B1 true JP5337277B1 (ja) | 2013-11-06 |
JP2013239219A JP2013239219A (ja) | 2013-11-28 |
Family
ID=49548486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012110720A Active JP5337277B1 (ja) | 2012-05-14 | 2012-05-14 | 磁気ランダムアクセスメモリ及びメモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8824199B2 (ja) |
JP (1) | JP5337277B1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9299412B2 (en) * | 2014-02-26 | 2016-03-29 | Intel Corporation | Write operations in spin transfer torque memory |
US9529660B2 (en) | 2015-03-03 | 2016-12-27 | Intel Corporation | Apparatus and method for detecting single flip-error in a complementary resistive memory |
US9373395B1 (en) * | 2015-03-04 | 2016-06-21 | Intel Corporation | Apparatus to reduce retention failure in complementary resistive memory |
US20160276042A1 (en) * | 2015-03-20 | 2016-09-22 | Microchip Technology Incorporated | One Time Programmable Memory |
JP6151830B1 (ja) * | 2016-07-05 | 2017-06-21 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体記憶装置 |
US10657051B2 (en) * | 2017-12-14 | 2020-05-19 | Macronix International Co., Ltd. | Memory device and operation method thereof |
JP2020047352A (ja) * | 2018-09-20 | 2020-03-26 | キオクシア株式会社 | 半導体記憶装置 |
CN112037833B (zh) * | 2019-06-04 | 2023-06-06 | 华邦电子股份有限公司 | 电阻式存储器及其数据写入方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0845275A (ja) | 1994-07-29 | 1996-02-16 | Toshiba Corp | メモリリード/ライト制御方法およびその方法を使用したメモリ装置 |
JP4049604B2 (ja) * | 2002-04-03 | 2008-02-20 | 株式会社ルネサステクノロジ | 薄膜磁性体記憶装置 |
JP4134637B2 (ja) * | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | 半導体装置 |
JP4248911B2 (ja) * | 2003-03-28 | 2009-04-02 | Tdk株式会社 | 磁気メモリデバイスおよび磁気メモリデバイスの書込方法 |
JP5019223B2 (ja) * | 2007-11-21 | 2012-09-05 | 株式会社東芝 | 半導体記憶装置 |
JP2011008850A (ja) * | 2009-06-24 | 2011-01-13 | Sony Corp | メモリ及び情報処理方法 |
JP5467270B2 (ja) * | 2010-04-28 | 2014-04-09 | 国立大学法人 東京大学 | データ入出力制御装置および半導体記憶装置システム |
-
2012
- 2012-05-14 JP JP2012110720A patent/JP5337277B1/ja active Active
-
2013
- 2013-02-08 US US13/763,068 patent/US8824199B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8824199B2 (en) | 2014-09-02 |
US20130301345A1 (en) | 2013-11-14 |
JP2013239219A (ja) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5337277B1 (ja) | 磁気ランダムアクセスメモリ及びメモリシステム | |
JP3935150B2 (ja) | 磁気ランダムアクセスメモリ | |
TWI727350B (zh) | 記憶裝置以及驅動寫入電流的方法 | |
JP2015053096A (ja) | 半導体装置、及び誤り訂正方法 | |
US8059480B2 (en) | Semiconductor memory device | |
JP2013196740A (ja) | 半導体記憶装置およびその駆動方法 | |
US10452475B2 (en) | Memory system and resistance change type memory | |
JP2018152146A (ja) | 半導体記憶装置及びデータ読み出し方法 | |
US8724403B2 (en) | Cache system and information-processing device | |
US10453512B2 (en) | Memory device | |
KR20170086863A (ko) | 전자 장치 | |
KR20180063514A (ko) | 전자 장치 | |
KR20140107952A (ko) | 반도체 장치, 프로세서 및 시스템 | |
EP3459081A1 (en) | Semiconductor circuit, driving method and electronic apparatus | |
KR20140107948A (ko) | 반도체 장치 및 이를 포함하는 프로세서와 시스템 | |
US20140146603A1 (en) | Nonvolatile memory device including sudden power off detection circuit and sudden power off detection method thereof | |
US10734048B2 (en) | Sensing memory cells using array control lines | |
KR20150116072A (ko) | 전자 장치 | |
KR20150124033A (ko) | 전자 장치 | |
JP6179818B2 (ja) | 不揮発性連想メモリ | |
TWI790497B (zh) | 半導體記憶裝置 | |
KR20150117494A (ko) | 전자 장치 | |
JP2014229326A (ja) | 不揮発性メモリ、その書き込み方法および読み出し方法 | |
JP2015232772A (ja) | システムの制御方法及びシステム | |
US9619319B2 (en) | Semiconductor device and error correction information writing method |
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130802 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5337277 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 |