JP2023040898A - 半導体装置及びメモリセル回路 - Google Patents

半導体装置及びメモリセル回路 Download PDF

Info

Publication number
JP2023040898A
JP2023040898A JP2021148090A JP2021148090A JP2023040898A JP 2023040898 A JP2023040898 A JP 2023040898A JP 2021148090 A JP2021148090 A JP 2021148090A JP 2021148090 A JP2021148090 A JP 2021148090A JP 2023040898 A JP2023040898 A JP 2023040898A
Authority
JP
Japan
Prior art keywords
data
memory cell
storage unit
stored
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021148090A
Other languages
English (en)
Inventor
公良 宇佐美
Masayoshi Usami
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shibaura Institute of Technology
Original Assignee
Shibaura Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shibaura Institute of Technology filed Critical Shibaura Institute of Technology
Priority to JP2021148090A priority Critical patent/JP2023040898A/ja
Publication of JP2023040898A publication Critical patent/JP2023040898A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)

Abstract

【課題】メモリセルと不揮発性記憶部とを備えた半導体装置において消費電力を抑制することができる。【解決手段】半導体装置は、1ビットのデータを保持するメモリセルと、前記メモリセルにデータを書き込む、または読み出すための一対のビット線と、前記メモリセルが保持するデータを記憶する不揮発性記憶部と、前記メモリセルが現在保持しているデータを第1格納部に格納させ、前記不揮発性記憶部が現在記憶しているデータを第2格納部に格納させ、前記第1格納部が格納するデータと前記第2格納部が格納するデータとが異なる場合、前記第1格納部が格納するデータを前記一対のビット線を介して前記不揮発性記憶部に書き込ませ、かつ前記第1格納部が格納するデータと前記第2格納部が格納するデータとが同一の場合、前記第1格納部が格納するデータを前記不揮発性記憶部に書き込ませない書込制御部とを備える。【選択図】図3

Description

本開示は、半導体装置及びメモリセル回路に関する。
揮発性のメモリに、不揮発性の記憶部を用いることにより、高速、かつ不揮発性を有する不揮発性メモリ回路となる半導体装置が知られている。例えば、非特許文献1、2には、磁気抵抗素子であるMTJ(Magnetic Tunnel Junction:磁気トンネル接合)素子を用いた、NV-SRAM(Non-Volatile Static Random Access Memory)のメモリセル回路に関する技術が記載されている。
非特許文献1、2に記載された技術では、半導体装置のスリープ時には、パワーゲーティングにより電源遮断を行う前に、SRAMのメモリセルに保持されているデータをMTJ素子にストアし、メモリセルに保持されていたデータを記憶させる。また、スリープから復帰して電源の供給が開始されると、MTJ素子に記憶されているデータを、メモリセルにリストアし書き込む。これにより、非特許文献1、2に記載された技術では、低消費電力化が実現できる。
Y. Shuto, S. Yamamoto, S. Sugahara, Comparative study of power-gating architectures for nonvolatile SRAM cells based on spintronics technology", 2014 IEEE Asia Pacific Conference on Circuits and Systems (APCCAS), 17-20 Nov. 2014. Y. Gong, N. Gong, L. Hou, J. Wang, MTJ Based Data Restoration in Non-Volatile SRAM", 2016 13th IEEE International Conference on Solid-State and Integrated Circuit Technology (ICSICT), 25-28 Oct. 2016.
しかしながら、上記非特許文献1、2に記載の技術では、SRAMのメモリセルに記憶されているデータをMTJ素子に書き込む際に、無駄な電力を消費する場合があり、消費電力を十分には抑制できない場合があった。
本開示は上記問題点を解決するためになされたものであり、メモリセルと不揮発性記憶部とを備えた半導体装置において消費電力を抑制することができることを目的とする。
本開示の技術の第1の態様は、半導体装置であって、1ビットのデータを保持するメモリセルと、前記メモリセルにデータを書き込む、または読み出すための一対のビット線と、前記メモリセルが保持するデータを記憶する不揮発性記憶部と、前記メモリセルが現在保持しているデータを第1格納部に格納させ、前記不揮発性記憶部が現在記憶しているデータを第2格納部に格納させ、前記第1格納部が格納するデータと前記第2格納部が格納するデータとが異なる場合、前記第1格納部が格納するデータを前記一対のビット線を介して前記不揮発性記憶部に書き込ませ、かつ前記第1格納部が格納するデータと前記第2格納部が格納するデータとが同一の場合、前記第1格納部が格納するデータを前記不揮発性記憶部に書き込ませない書込制御部と、を備える。
また、本開示の技術の第2の態様は、上記第1の態様の半導体装置において、前記第2格納部は、前記一対のビット線間の電位差を検出し、前記電位差に基づいて、前記メモリセルから読み出したデータの論理値を判定した判定結果を前記第1格納部に出力する。
また、本開示の技術の第3の態様は、上記第1の態様または第2の態様の半導体装置において、前記書込制御部は、前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオン状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオフ状態とされる前記不揮発性記憶部と前記第2格納部とを接続する第1のスイッチと、前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオフ状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオン状態とされる前記不揮発性記憶部と前記メモリセルとを接続する第2のスイッチと、を含む。
また、本開示の技術の第4の態様は、上記第1の態様から第3の態様のいずれか1態様の半導体装置において、前記メモリセルから読み出されたデータは、第2格納部を介して、第1格納部に格納される。
また、本開示の技術の第5の態様は、上記第1の態様から第4の態様のいずれか1態様の半導体装置において、前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させるストア時間を第1の時間、及び前記第1の時間よりも短い第2の時間のいずれかとする制御を行うストア時間制御部をさらに備える。
また、本開示の技術の第6の態様は、上記第5の態様の半導体装置において、前記ストア時間制御部は、前記第1の時間と前記第2の時間とで異なる論理値が設定される設定部を備え、前記設定部に備えられた前記論理値と、前記第1の時間及び前記第2の時間を制御するストア時間制御信号の論理値と、に応じて前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる。
また、本開示の技術の第7の態様は、上記第5の態様または第6の態様の半導体装置において、前記ストア時間制御部は、前記メモリセルが保持するデータが、複数ビットのデータのうちの予め定められた上位ビットである場合は前記第1の時間とする制御を行い、前記複数ビットのデータのうちの予め定められた下位ビットである場合は、前記第2の時間とする制御を行う。
また、本開示の技術の第8の態様は、上記第1の態様から第7の態様のいずれか1態様の半導体装置において、前記不揮発性記憶部は、磁気トンネル接合素子である。
また、本開示の技術の第9の態様は、メモリセル回路であって、1ビットのデータを保持するメモリセルと、前記メモリセルにデータを書き込む、または読み出すための一対のビット線と、前記メモリセルが保持するデータを記憶する不揮発性記憶部と、前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオン状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオフ状態とされる前記不揮発性記憶部と前記ビット線とを接続する第1のスイッチと、前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオフ状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオン状態とされる前記不揮発性記憶部と前記メモリセルとを接続する第2のスイッチと、を含む。
本開示によれば、メモリセルと不揮発性記憶部とを備えた半導体装置において消費電力を抑制することができることを。
実施形態の半導体集積回路の一例を示すブロック図である。 実施形態の不揮発性メモリ回路群の一例を示すブロック図である。 実施形態のパワースイッチの一例の回路図である。 第1実施形態の不揮発性メモリ回路の一例の回路図である。 実施形態のトライステートドライバの一例の回路図である。 実施形態のセンスアンプの一例の回路図である。 第1実施形態のメモリセル回路の読み出し動作におけるタイミングチャートである。 第1実施形態のメモリセル回路の書き込み動作におけるタイミングチャートである。 第1実施形態のMTJ素子の初期化動作におけるタイミングチャートである。 第1実施形態のメモリセル回路のストア動作におけるタイミングチャートである。 第1実施形態のメモリセル回路のリストア動作におけるタイミングチャートである。 第2実施形態の不揮発性メモリ回路の一例の回路図である。 第2実施形態のメモリセル回路のストア動作におけるタイミングチャートである。
以下、図面を参照して本発明に係る実施形態の例を説明する。なお、各図面において同一機能を有する部分には同一符号が付されており、重複する説明は適宜、省略する。
[第1実施形態]
まず、本実施形態の半導体集積回路の構成について説明する。図1Aは、本実施形態の半導体集積回路10の一例を示すブロック図である。
本実施形態の半導体集積回路10は、制御回路12、パワースイッチ14、不揮発性メモリ回路群15、及び内部回路18を備えている。
図1Bに示すように、一例として本実施形態の不揮発性メモリ回路群15は、いずれも詳細を後述する、m×n個のメモリセル回路22(2211~22mn)と、n個の周辺回路24(24~24)と、n対のビット線bit,bit_bとを含む。1対のビット線bit,bit_b毎に、不揮発性メモリ回路16(16~16)が設けられている。すなわち、図1Bに示すように、各不揮発性メモリ回路16は、m個のメモリセル回路22と、1個の周辺回路24とを含む。なお、本実施形態では、m×n個のメモリセル回路22を総称する場合、個々を示す符号「m」、「n」を付与せず単に「メモリセル回路22」という。また、本実施形態では、n個の周辺回路24を総称する場合、個々を示す符号「n」を付与せず単に「周辺回路24」という。図3には、不揮発性メモリ回路16として、m個のメモリセル回路22のうちの1つのメモリセル回路22と、周辺回路24との回路構成を表す回路図が示されている。図3に示した本実施形態の不揮発性メモリ回路16が本開示の半導体装置の一例である。
制御回路12は、不揮発性メモリ回路群15に詳細を後述する各種信号を供給する機能を有する。また、制御回路12は、アドレスデコーダ20を有し、アドレスデコーダ20と不揮発性メモリ回路群15とは、グローバルワード線Glb_WLで接続されている。グローバルワード線Glb_WLには、不揮発性メモリ回路群15に含まれる複数のメモリセル回路22のメモリセル21にデータの書き込みまたは読み出しを指示するための指示信号が流れる。また、本実施形態の制御回路12は、電源電圧の供給を制御するための制御信号VPGをパワースイッチ14へ出力する。
図2に示した一例のように、本実施形態のパワースイッチ14は、PMOSトランジスタP4を用いている。PMOSトランジスタP4の制御端子には制御回路12から出力される制御信号VPGが入力され、制御信号VPGに応じて、いわゆるパワーゲーティングが行われる。
PMOSトランジスタP4の一方の端子は正規の電源であるVDD電圧を供給する電源線に接続され、他方の端子は仮想的な電源であるVVDD電圧を供給する電源線に接続されている。パワースイッチ14は、制御信号VPGが「0」の場合、PMOSトランジスタP4がオン状態となり、VDD電圧により得られたVVDD電圧を不揮発性メモリ回路群15に出力する。一方、パワースイッチ14は、制御信号VPGが「1」の場合、PMOSトランジスタP4がオフ状態となる。これにより、不揮発性メモリ回路群15へのVVDD電圧の供給が遮断される。このように、不揮発性メモリ回路群15、具体的には、不揮発性メモリ回路16のメモリセル回路22及び周辺回路24へのVVDD電圧の供給が遮断されることで、リーク電流による電力消費が削減される。なお、以下では、各素子等において、VVDD電圧を供給する電源線に接続されていることを、「VVDD電圧に接続」と表現する場合がある。
内部回路18は、不揮発性メモリ回路群15の各不揮発性メモリ回路16に保持されているデータ(出力Q)を処理する機能を有し、半導体集積回路10内に配置された回路である。内部回路18は特に限定されるものではなく、ユーザ等の要求に応じた機能を有する回路であればよい。例えば、不揮発性メモリ回路群15が画像データを保持する場合、内部回路18としては画像処理回路が挙げられる。なお、内部回路18は、複数の機能(回路)を含んでいてもよい。
不揮発性メモリ回路16は、入力信号Dを保持(ラッチ)して、入力信号Dに応じた(同じ論理値(レベル)の)出力Qを出力する機能を有する。本実施形態の不揮発性メモリ回路16は、SRAM(Static Random Access Memory)である。
図3を参照して、本実施形態の不揮発性メモリ回路16について詳細に説明する。上述したように、図3には、不揮発性メモリ回路16に含まれるm個のメモリセル回路22のうちの1つのメモリセル回路22と、周辺回路24との回路構成を表す回路図が示されている。なお、図3には、本実施形態の不揮発性メモリ回路16と共に、不揮発性メモリ回路16の動作に関わる制御回路12内の一部の回路の一例を表す回路図も示されている。
不揮発性メモリ回路16のメモリセル回路22の前段には、制御回路12のAND回路AND1~4、OR回路OR1,OR2、及びNOR回路NOR1が接続されている。
不揮発性メモリ回路群15は、データを読み書きする不揮発性のメモリセル21に対応するメモリセル回路22を選択するためのm本のグローバルワード線Glb_WLを備えている。図3に示すように、アドレスデコーダ20に接続されたワードmに対するグローバルワード線Glb_WLは、AND回路AND1,AND4、及びOR回路OR1,OR2の入力端子に接続されている。また、AND回路AND1には、制御回路12からRW_EN信号が入力される。AND回路AND1からは、RW_EN信号と、グローバルワード線Glb_WLを流れる信号との論理積が出力としてワードmに対応するワード線Local_WLに出力される。
OR回路OR1には、制御回路12から詳細を後述するリストア動作を制御するためのRestore_All信号が入力される。AND回路AND2からは、グローバルワード線Glb_WLを流れる信号と、Restore_All信号との論理和がAND回路AND2に入力される。AND回路AND2には、さらに制御回路12からGlB_LPG信号が入力される。AND回路AND2からは、OR回路OR1の論理和と、GlB_LPG信号との論理積が出力として信号線Local_LPGに出力される。
また、OR回路OR2には、制御回路12からRestore_All信号が入力される。AND回路AND3からは、グローバルワード線Glb_WLを流れる信号と、Restore_All信号との論理和がAND回路AND3に入力される。AND回路AND3には、さらに制御回路12からGlB_SR1信号が入力される。AND回路AND3からは、OR回路OR2の論理和と、GlB_SR1信号との論理積が出力として信号線Local_SR1に出力される。
また、AND回路AND4には、制御回路12からGlb_SR2信号が入力される。AND回路AND4からは、グローバルワード線Glb_WLを流れる信号と、Glb_SR2信号との論理積がNOR回路NOR1に入力される。NOR回路NOR1には、さらに制御回路12から詳細を後述するストア動作を制御するためのStr_Burst信号が入力される。NOR回路NOR1からは、AND回路AND4の論理積と、Str_Burst信号との否定論理和が出力として信号線Local_SR2に出力される。
一方、図3に示すように、不揮発性メモリ回路16の一対のビット線bit,bit_bのうち、ビット線bitには、PMOSトランジスタP1が接続されている。PMOSトランジスタP1は、一方の端子がVVDD電圧に接続され、他方の端子がビット線bitに接続されている。また、一対のビット線bit,bit_bのうち、ビット線bit_bには、PMOSトランジスタP2が接続されている。PMOSトランジスタP2は、一方の端子がVVDD電圧に接続され、他方の端子がビット線bit_bに接続されている。PMOSトランジスタP1,P2各々の制御端子は、制御回路12によりPRE信号が供給される信号線に接続されている。また、PRE信号が供給される信号線には、PMOSトランジスタP3の制御端子が接続されている。PMOSトランジスタP3は、一方の端子がビット線bitに接続され、他方の端子がビット線bit_bに接続されている。
不揮発性メモリ回路16のメモリセル回路22は、インバータINV1,INV2を含む。インバータINV1,INV2は、1ビットのデータを保持するインバータループによるメモリセル21として機能する。
インバータINV1は、入力端子が記憶ノードd_bに接続され、かつ出力端子が記憶ノードdに接続されている。また、インバータINV1には、PMOSトランジスタP4を介してVVDD電圧が電源として供給される。PMOSトランジスタP4の制御端子は、信号線Local_LPGに接続されている。一方、インバータINV2は、入力端子が記憶ノードdに接続され、かつ出力端子が記憶ノードd_bに接続されている。また、インバータINV2には、PMOSトランジスタP5を介してVVDD電圧が電源として供給される。PMOSトランジスタP5の制御端子は、信号線Local_LPGに接続されている。
また、メモリセル回路22は、メモリセル21にデータを読み書きするために制御されるトランジスタTR1,TR2を含む。トランジスタTR1は、一方の端子がビット線bitに接続されており、他方の端子が記憶ノードdに接続されている。また、トランジスタTR2は、一方の端子がビット線bit_bに接続されており、他方の端子が記憶ノードd_bに接続されている。トランジスタTR1,TR2各々の制御端子は、ワード線Local_WLに接続されており、ワード線Local_WLを流れる信号により、オン、オフが制御される。
また、メモリセル回路22は、詳細を後述するリストアを行う際に制御されるNMOSトランジスタRstrTR1,RstrTR2を含む。本実施形態のNMOSトランジスタRstrTR1,RstrTR2が、本開示の第2のスイッチの一例である。NMOSトランジスタRstrTR1は、一方の端子が記憶ノードdに接続されており、他方の端子がMTJ素子MTJ1に接続されている。また、NMOSトランジスタRstrTR1は、制御端子が信号線Local_SR1に接続されている。一方、NMOSトランジスタRstrTR2は、一方の端子が記憶ノードd_bに接続されており、他方の端子がMTJ素子MTJ2に接続されている。また、NMOSトランジスタRstrTR2は、制御端子が信号線Local_SR1に接続されている。NMOSトランジスタRstrTR1,RstrTR2は、信号線Local_SR1を流れる信号により、オン、オフが制御される。具体的には、NMOSトランジスタRstrTR1,RstrTR2は、リストアを行う際に、オン状態とされ、ストアを行う際にオフ状態とされる。
また、メモリセル回路22は、詳細を後述するストアを行う際に制御されるPMOSトランジスタStrTR1,StrTR2を含む。本実施形態のPMOSトランジスタStrTR1,StrTR2が、本開示の第1のスイッチの一例である。PMOSトランジスタStrTR1は、一方の端子がビット線bitに接続されており、他方の端子がNMOSトランジスタRstrTR1の他方の端子及びMTJ素子MTJ1に接続されている。また、PMOSトランジスタStrTR1は、制御端子が信号線Local_SR2に接続されている。また、PMOSトランジスタStrTR2は、一方の端子がビット線bit_bに接続されており、他方の端子がNMOSトランジスタRstrTR2の他方の端子及びMTJ素子MTJ2に接続されている。また、PMOSトランジスタStrTR2は、制御端子が信号線Local_SR2に接続されている。PMOSトランジスタStrTR1,StrTR2は、信号線Local_SR2を流れる信号により、オン、オフが制御される。具体的には、PMOSトランジスタStrTR1,StrTR2は、ストアを行う際にオン状態とされ、リストアを行う際にオフ状態とされる。
さらに、図3に示すように本実施形態のメモリセル回路22は、MTJ素子MTJ1,MTJ2を備える。本実施形態のMTJ素子MTJ1,MTJ2が、本開示の不揮発性記憶部の一例である。MTJ素子MTJ1,MTJ2は、印加される電圧の大きさに応じて抵抗値が変化する。自由層fからピン層pへ向かう方向に電流を流すと、自由層fの磁化方向がピン層pと同一になってMTJ素子は低抵抗となり、論理値が「1」のデータを記憶した状態となる。一方、ピン層pから自由層fへ向かう方向に電流を流すと、自由層fの磁化方向がピン層pと反対になってMTJ素子は高抵抗となり、論理値が「0」のデータを記憶した状態となる。
MTJ素子MTJ1,MTJ2に記憶されたデータは、VVDD電圧給が停止した後も保持される。そのため本実施形態の不揮発性メモリ回路16は、パワーゲーティングを行う場合、スリープ状態に移行する前に、メモリセル21により保持されているデータをMTJ素子MTJ1,MTJ2に書き込んで記憶させる。また、不揮発性メモリ回路16は、スリープ状態から復帰する場合は、MTJ素子MTJ1,MTJ2に書き込まれているデータを記憶ノードd、d_bへ読み出してメモリセル21にデータを復元する。
なお、本実施形態では、メモリセル21(記憶ノードd、d_b)が保持しているデータをMTJ素子MTJ1,MTJ2に記憶させる動作を「ストア」という。また、MTJ素子MTJ1,MTJ2からデータを読み出し記憶ノードd,d_bに復元させる動作を「リストア」という。
本実施形態のMTJ素子MTJ1,MTJ2は、ピン層p側がメモリセル21に接続されている。MTJ素子MTJ1,MTJ2の自由層f側はCTRL信号が流れる信号線に接続されている。
一方、周辺回路24は、書き込みレジスタ(Write_reg)30,トライステートドライバTSDRV1,TSDRV2、センスアンプ32、及び読み出しレジスタ(Read_reg)34を含む。
なお、本実施形態のトライステートドライバTSDRV1,TSDRV2、インバータIV2、AND回路AND5,AND6、XOR回路XOR1、OR回路OR3、NMOSトランジスタRstrTR1,RstrTR2、及びPMOSトランジスタStrTR1,StrTR2が、本開示の書込制御部の一例である。また、本実施形態のセンスアンプ32が本開示の第2格納部の一例であり、本実施形態のRead_reg34が本開示の第1格納部の一例である。
Write_reg30はメモリセル回路22に書き込むデータQが一時的に格納される。Write_reg30は、インバータIV1、NMOSトランジスタN3,N4を介して、ビット線bitに接続されている。
インバータIV1は入力端子にはWrite_regが接続され、出力端子にはNMOSトランジスタN3の制御端子が接続されている。NMOSトランジスタN3の一方の端子はグランドに接続されており、他方の端子がNMOSトランジスタN4の一方の端子に接続されている。NMOSトランジスタN4は、他方の端子がビット線bitに接続されている。NMOSトランジスタN4の制御端子は、制御回路12により信号WEが供給される信号線に接続されている。
また、Write_reg30は、NMOSトランジスタN5,N6を介して、ビット線bit_bに接続されている。NMOSトランジスタN5は、一方の端子がグランドに接続されており、他方の端子がNMOSトランジスタN6の一方の端子に接続されている。NMOSトランジスタN6は、他方の端子がビット線bit_bに接続されている。NMOSトランジスタN6の制御端子は、信号WEが供給される信号線に接続されている。
一方、トライステートドライバTSDRV1の出力端子と、トライステートドライバTSDRV2の出力端子とは、インバータIV2を介して接続されている。具体的にはインバータIV2の入力端子とトライステートドライバTSDRV1の入力端子とが接続されており、インバータIV2の出力端子とトライステートドライバTSDRV2の入力端子とが接続されている。トライステートドライバTSDRV1の出力は、ビット線bitに接続されており、トライステートドライバTSDRV2の出力は、ビット線bit_bに接続されている。トライステートドライバTSDRV1,TSDRV2の各々には、TSEN信号が入力される。トライステートドライバTSDRV1,TSDRV2は、TSEN信号に応じて駆動する。
図4には、本実施形態のトライステートドライバTSDRV1,TSDRV2の一例を示した回路図が示されている。図4に示すように、トライステートドライバTSDRV1,TSDRV2の各々は、NAND回路NAND1、インバータIV3、NOR回路NOR2、PMOSトランジスタP5、及びNMOSトランジスタN7を含む。
NAND回路NAND1には、TSEN信号及び信号Aが入力される。NAND回路NAND1の否定論理積は、PMOSトランジスタP5の制御端子に入力される。PMOSトランジスタP5は、一方の端子がVVDD電圧に接続され、他方の端子がNMOSトランジスタN7の一方の端子に接続されている。
NOR回路NOR2には、インバータIV3の出力及び信号Aが入力される。NOR回路NOR2の否定論理和は、NMOSトランジスタN7の制御端子に入力される。NMOSトランジスタN7の他方の端子はグランドに接続されている。PMOSトランジスタP5とNMOSトランジスタN7との中間ノードが、出力YとしてトライステートドライバTSDRV1,TSDRV2から出力される。
具体的には、TSEN信号の論理値が「0」である場合、信号Aの論理値に係わらず、PMOSトランジスタP5及びNMOSトランジスタN7がオフ状態となり、出力Yが不定となる。一方、TSEN信号の論理値が「0」である場合、信号Aの論理値が「1」ならば、PMOSトランジスタP5がオン状態に、NMOSトランジスタN7がオフ状態となり、出力YがVVDD電圧(論理値が「1」)となる。また、信号Aの論理値が「0」ならば、PMOSトランジスタP5がオフ状態に、NMOSトランジスタN7がオン状態となり、出力Yがグランド電位(論理値が「0」)となる。
一方、センスアンプ32は、メモリセル21に記憶されているデータの読み出し時にビット線bit,bit_bの電位を検出し、検出した電位差に基づいて、メモリセル21から読み出したデータの論理値を判定する機能、及び読み出したデータを格納する機能を有する。具体的には、センスアンプ32は、ビット線bit,bit_bの電位差に基づいて、メモリセル21から読み出したデータの論理値が「0」及び「1」の何れであるかを判定した判定結果を、センスアンプ出力SAOとして出力する。
センスアンプ32には、NMOSトランジスタN1を介してビット線bitが接続されており、NMOSトランジスタN2を介してビット線bit_bが接続されている。NMOSトランジスタN1,N2の各々の制御端子には、制御回路12から出力されたSA_BD信号が流れる信号線が接続されている。また、センスアンプ32には、制御回路12から出力されたGLB_PRE信号、及びSA_EN信号が入力される。図5には、センスアンプ32の一例を示した回路図が示されている。図5に示したセンスアンプ32は、PMOSトランジスタP6~P14と、NMOSトランジスタN8~N11と、センスアンプ出力SAOを出力するIV4とを含み、GLB_PRE信号、GBL信号、GBLB信号、及び信号SA_ENによって制御される。
センスアンプ32の出力であるセンスアンプ出力SAOは、Read_reg34に入力される。また、Read_reg34には、制御回路12から出力されたクロック信号CLK及びUpdate_EN1信号が入力される。
一方、AND回路AND5には、センスアンプ32のセンスアンプ出力SAO及びGlb_SR2信号が入力され、センスアンプ出力SAOとGLB_SR2信号との論理積を出力する。一方、AND回路AND6には、Read_reg34の出力である出力Q及びGlb_SR2信号が入力され、出力QとGLB_SR2信号との論理積を出力する。
XOR回路XOR1には、AND回路AND5の出力及びAND回路AND6の出力が入力される。OR回路OR3には、XOR回路XOR1の排他的論理和、及び制御回路12から出力されたSF(Store_Forcibly)信号が入力される。OR回路OR3の論理和が、TSEN信号として出力される。
次に、本実施形態の不揮発性メモリ回路16の動作について説明する。
(通常動作モード)
まず、メモリセル回路22がSRAMとして機能する通常動作について説明する。通常動作には、メモリセル回路22にデータを書き込む動作と、メモリセル回路22からデータを読み出す動作とがある。
メモリセル回路22が通常動作を行う場合、データの読み書きにかかわらず、制御回路12から出力される、GlB_SR2信号、Str_Burst信号、SF信号、GlB_SR1信号、及びRestore_All信号の論理値は「0」である。
GlB_SR2信号及びStr_Burst信号の論理値が「0」であるため、AND回路AND4の論理積が「0」、NOR回路NOR1の否定論理和が「1」になる。そのため、PMOSトランジスタStrTR1,StrTR2はオフ状態となる。
また、GlB_SR2信号及びSFの論理値が「0」であるため、AND回路AND5,AND6の論理積が「0」、XOR回路XOR1の排他的論理和が「0」、OR回路OR3の論理和が「0」となる。そのため、TSEN信号の電位が「0」となり、上述したようにトライステートドライバTSDRV1,TSDRV2では、PMOSトランジスタP5及びNMOSトランジスタN7がオフ状態となって出力Yが不定となる。
また、GlB_SR1信号及びRestore_All信号の論理値が「0」であるため、OR回路OR2の論理和がグローバルワード線Glb_WLの論理値と等しくなり、AND回路AND3の論理積が「0」となる。そのため、NMOSトランジスタRstrTR1,RstrTR2はオフ状態となる。
(通常動作モード:読み出し動作)
まず、メモリセル回路22からデータを読み出す動作(Read動作)について説明する。図6には、メモリセル回路22の読み出し動作におけるタイミングチャートの一例が示されている。なお、読み出し動作の際は、WE信号の論理値を「0」とする。WE信号の論理値が「0」であるため、NMOSトランジスタN4,N6はオフ状態となる。
クロック信号CLKの立ち上がりのタイミングt11に同期して、RW_EN信号の論理値を「0」にする。これにより、AND回路AND1の論理積が「0」となるため、ワード線Local_WLの論理値が「0」となる。ワード線Local_WLの論理値が「0」の状態でPRE信号の論理値を「0」とすることにより、PMOSトランジスタP1,P2をオン状態にし、ビット線bit,bit_bをプリチャージする。また、SA_BD信号の論理値を「1」とし、NMOSトランジスタN1、N2をオン状態にする。
さらに、アドレスデコーダ20でのデコード動作もこのプリチャージ期間に行う。ここで、ワードmに対するグローバルワード線Glb_WLのみが選択されて、「1」となった場合を想定する。
続いて、クロック信号CLKの立ち下がりのタイミングt12に同期して、プリチャージ動作を終了して、RW_EN信号の論理値を「1」にする。これにより、グローバルワード線Glb_WLの論理値と、ワード線Local_WLの論理値が等しくなる。ここでは、グローバルワード線Glb_WLの論理値が「1」であるため、ワード線Local_WLの論理値が「1」となり、トランジスタTR1,TR2がオン状態となる。これにより、ワードmのデータ、具体的には、メモリセル21により保持されたデータの読み出しを開始する。
読み出しが開始されると、記憶ノードdのデータがビット線bitに読み出され、また、記憶ノードd_bのデータがビット線bit_bに読み出され、センスアンプ32を介してセンシングされる。記憶ノードdのデータが「1」である場合は、センスアンプ32のセンスアンプ出力SAOの論理値が「1」になる。一方、記憶ノードdのデータが「0」である場合は、センスアンプ32のセンスアンプ出力SAOの論理値が「0」になる。すなわち、センスアンプ32は、メモリセル21から読み出したデータの論理値を判定した判定結果として、読み出したデータの論理値と論理値が一致するセンスアンプ出力SAOを出力する。メモリセル21とセンスアンプ32のセンスアンプ出力SAOは、次のクロック信号CLKの立ち上がりのタイミングt13でRead_reg34に格納され、(図6「VALID」参照)読み出しが終了する。
(通常動作モード:書き込み動作)
次に、メモリセル回路22にデータを書き込む動作(Write動作)について説明する。図7には、メモリセル回路22への書き込み動作におけるタイミングチャートの一例が示されている。なお、書き込み動作を行う場合、SA_BD信号の論理値を「0」のままとし、NMOSトランジスタN1,N2をオフ状態としている。
まず、メモリセル21に書き込むべきデータを予めWrite_reg30にセットしておく(図7、タイミングt21~t23参照)。
次のクロック信号CLKの立ち上がりのタイミングt23により、ビット線bit,bit_bのプリチャージ動作を行う。
続いて、クロック信号CLKの立ち下がりのタイミングt24に同期して、プリチャージ動作を終了して、WE信号の論理値を「1」にし、NMOSトランジスタN4,N6をオン状態にする。これにより、Write_reg30にセットされているデータが、ビット線bit,bit_bに伝達される。
さらに、図7に示すように、RW_EN信号の論理値を「1」とし、かつ書き込みを行いたいワード(例えば、ワードm)のワード線Local_WLの論理値を「1」とする。これにより、トランジスタTR1,TR2がオン状態となり、ビット線bitのデータが記憶ノードdに伝達され、ビット線bit_bのデータが記憶ノードd_bに伝達されることで、メモリセル21に論理値「1」のデータが書き込まれる。次のクロック信号CLKの立ち下がりタイミングt25でWE信号の論理値を「0」とし、NMOSトランジスタN4,N6をオフ状態にする。また、RW_EN信号の論理値を「0」とし、AND回路AND1の論理積を「0」とすることで、ワード線Local_WLの論理値を「0」として、書き込み動作を終了する。
(ストア動作モード)
次に、メモリセル回路22におけるストア動作モードについて説明する。ストア動作モードには、MTJ素子MTJ1,MTJ2の初期化動作と、通常のストア動作とが含まれる。
(ストア動作モード:MTJ素子MTJ1,MTJ2の初期化動作)
まず、MTJ素子MTJ1,MTJ2の初期化動作について説明する。図8には、MTJ素子MTJ1,MTJ2の初期化動作におけるタイミングチャートの一例が示されている。なお、図8のタイミングt33~t35は、CTL信号の論理値が「0」である場合を示しており、タイミングt35~t37は、CTL信号の論理値が「1」である場合を示している。
まず、第1ステップとして、上述した書き込み動作を行い、メモリセル21の書き込み動作(図7参照)を行い、メモリセル21に、MTJ素子MTJ1,MTJ2を初期化したい値(論理値)を書き込む。MTJ素子MTJ1,MTJ2を「0」で初期化したい場合、メモリセル21に「0」を書き込む。また、MTJ素子MTJ1,MTJ2を「1」で初期化したい場合、メモリセル21に「1」を書き込む。
次に、第2ステップとして、メモリセル21に書き込まれているデータの読み出しを行って、ワードmに保持されたデータを読み出し、Read_reg34に格納する(図8のタイミングチャートのタイミングt31~t33の期間参照)。なお、Read_reg34に直接データをセットする手段が別にある場合には、その手段でRead_reg34の値を設定してもよい。その場合、上記第1及び第2ステップは不要となる。
次に、第3ステップとして、Read_reg34に格納されているデータをMTJ素子MTJ1,MTJ2に書き込む(ストアする)。図8のタイミングt33~t37に示すように、RW_EN信号、Glb_SR1信号、Restore_all信号、SA_BD信号の論理値を「0」とする。
RW_EN信号の論理値を「0」とすることにより、AND回路AND1の論理積が0となり、Local_WLの論理値が「0」となる。また、Glb_SR1信号の論理値を「0」とすることにより、AND回路AND3の論理積が0となり、信号線Local_SR1の論理値が「0」となる。そのため、NMOSトランジスタRstrTR1,RstrTR2がオフ状態となる。Restore_all信号の論理値を「0」とすることにより、OR回路OR1,OR2の論理和がグローバルワード線Glb_WLと等しくなる。SA_BD信号の論理値を「0」とすることにより、NMOSトランジスタN1,N2がオフ状態となる。
また、SF信号及びStr_Burst信号の論理値を「1」とする。SF信号の論理値を「1」とすることにより、OR回路OR3の論理和が「1」となり、TSEN信号の論理値が「1」となる。また、Str_Burst信号の論理を「1」とすることにより、NOR回路NOR1の否定論理和が「0」となり、信号線Local_SR2の論理値が「0」となる。そのため、PMOSトランジスタStrTR1,StrTR2がオン状態となる。
これにより、トライステートドライバTSDRV1,TSDRV2が活性化し、かつPMOSトランジスタStrTR1,StrTR2がオン状態となるため、Read_reg34に格納されたデータが、ビット線bit,bit_b、及びPMOSトランジスタStrTR1,StrTR2を介して、MTJ素子MTJ1,MTJ2に書き込まれる(ストアされる)。
(ストア動作モード:通常のストア動作)
次に、通常のストア動作について説明する。本実施形態の不揮発性メモリ回路16では、通常のストア動作は、1ワード毎に行う。Str_Burst信号の論理値は「0」とする。なお、ここでは、MTJ素子MTJ1,MTJ2には何らかのデータが既にストアされている状態であり、また、上述した通常動作における書き込み動作(図7参照)を行ってメモリセル回路22に何からかのデータが保持されている状態を想定する。メモリセル回路22のメモリセル21に保持されているデータをMTJ素子MTJ1,MTJ2にストアする動作について図9を参照して説明する。図9には、メモリセル回路22のストア動作におけるタイミングチャートの一例が示されている。
まず、第1ステップとして、図9のタイミングt41~t43に示すように、上述したメモリセル21の読み出し動作(図6参照)を行って、ワードmに保持されたデータを、センスアンプ32を介して読み出して、Read_reg34に格納する。すなわち、メモリセル21に保持されたデータをRead_reg34に退避させる。
次に、第2ステップとして、図9のタイミングt43~t47に示すように、MTJ素子MTJ1,MTJ2に記憶されているデータをメモリセル21に読み出すリストア動作を行う。リストア動作では、トランジスタTR1,TR2及びPMOSトランジスタStrTR1,StrTR2をオフ状態にし、かつNMOSトランジスタRstrTR1,RstrTR2をオン状態にする。具体的には、図9に示したように、クロック信号CLKの立ち上がりのタイミングt43に同期して、GlB_SR1信号の論理値を「1」にする。また、グローバルワード線Glb_WLの論理値を「1」にする。そのため、OR回路OR2の論理和が「1」となり、AND回路AND3の論理積が「1」となることで、ワードmの信号線Local_SR1の論理値が「1」となり、NMOSトランジスタRstrTR1,RstrTR2がオン状態となる。これにより、MTJ素子MTJ1,MTJ2に記憶されているデータがメモリセル21に読み出されるリストア動作が行われる。なお、リストア動作については、詳細を後述する。
リストア動作を行うことにより、MTJ素子MTJ1,MTJ2に記憶されているデータがメモリセル21に読み出され保持された状態となる。これにより、メモリセル21にもともと保持されていたデータは壊れるが、上述したように、本実施形態では、第1ステップにおいてメモリセル21にもともと保持されていたデータを退避させているので、メモリセル21にもともと保持されていたデータが不明となることがない。
次に、第3ステップとして、図9のタイミングt47~t49に示すように、MTJ素子MTJ1,MTJ2に記憶させたデータを、センスアンプ32に格納する。本動作では、トランジスタTR1,TR2及びNMOSトランジスタN1,N2をオン状態にし、かつNMOSトランジスタRstrTR1,RstrTR2及びPMOSトランジスタStrTR1,StrTR2をオフ状態にする。具体的には、図9に示したように、クロック信号CLKの立ち上がりのタイミングt47に同期して、RW_EN信号及びグローバルワード線Glb_WLの論理値を「1」にする。これにより、AND回路AND1の論理積が「1」となり、ワード線Local_WLの論理値が「1」となり、トランジスタTR1,TR2がオン状態となる。また、SA_BD信号の論理値を「1」にすることにより、NMOSトランジスタN1,N2がオン状態になる。また、信号線Local_SR1の論理値を「0」とすることにより、NMOSトランジスタRstrTR1,RstrTR2がオフ状態になる。また、信号線Local_SR2の論理値を「1」とすることにより、PMOSトランジスタStrTR1,StrTR2がオフ状態になる。
これにより、メモリセル21に保持されているワードmのMTJ素子MTJ1,MTJ2のデータが、ビット線bit,bit_bに読み出され、センスアンプ32を介してセンシングされ、センスアンプ32のセンスアンプ出力SAOとして出力される。換言すると、センスアンプ32のセンスアンプ出力SAOの値が、MTJ素子MTJ1,MTJ2に記憶されているデータの論理値と同等となる。センスアンプ出力SAOの値は、新たに、センスアンプ32が活性化するまで保持される。なお、センスアンプ出力SAOの値は、Read_reg34には格納されない。一例として本実施形態では、Update_EN1信号の論理値を「0」にしておくことで、Read_reg34にセンスアンプ出力SAOの値を格納しないようにしている。
次に、第4ステップとして、図9のタイミングt49~t413に示すように、Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とを比較し、出力Qの論理値とセンスアンプ出力SAOの論理値とが一致しない場合は、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。一方、Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とが一致する場合は、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアしない。以降、このストアの方式をData-Aware Storing(DAS)と称する。
ここで、Read_reg34には、メモリセル21が保持していたデータが格納されており、出力Qとされる。また、センスアンプ32には、MTJ素子MTJ1,MTJ2に記憶されているデータが格納されており、センスアンプ出力SAOとされる。従って、メモリセル21が保持していたデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとが一致しない場合、メモリセル21に保持されていたデータがMTJ素子MTJ1,MTJ2にストアされる。一方、メモリセル21が保持していたデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとが一致する場合、メモリセル21に保持されていたデータがMTJ素子MTJ1,MTJ2にストアされない。
以下、本動作について具体的に説明する。本動作では、トランジスタTR1,TR2、NMOSトランジスタN1,N2、及びNMOSトランジスタRstrTR1,RstrTR2をオフ状態にし、かつPMOSトランジスタStrTR1,StrTR2をオン状態にする。
具体的には、図9に示したように、クロック信号CLKの立ち上がりのタイミングt49に同期して、SA_BD信号の論理値を「0」にし、NMOSトランジスタN1,N2がオフ状態となる。また、Glb_SR2信号の論理値を「1」にする。これにより、AND回路AND5の論理積は、センスアンプ32のセンスアンプ出力SAOの論理値となる。すなわち、AND回路AND5の論理積は、MTJ素子MTJ1,MTJ2に記憶されているデータの論理値となる。一方、AND回路AND6の論理積は、Read_reg34の出力Qの論理値となる。すなわち、AND回路AND6の論理積は、メモリセル21に保持されていたデータの論理値となる。
XOR回路XOR1は、センスアンプ出力SAOの論理値と、出力Qの論理値とが同一であるかどうかを比較し、比較結果を出力する。すなわち、XOR回路XOR1は、MTJ素子MTJ1,MTJ2に記憶されているデータの論理値と、メモリセル21に保持されていたデータの論理値とを比較し、比較結果を出力する。
センスアンプ出力SAOの論理値と出力Qの論理値とが異なる場合、すなわち、MTJ素子MTJ1,MTJ2に記憶されているデータの論理値とメモリセル21に保持されていたデータの論理値とが異なる場合、XOR回路XOR1の排他的論理和が「1」となる。これにより、OR回路OR3の論理和が「1」となりTSEN信号の論理値が「1」となり、トライステートドライバTSDRV1,TSDRV2が活性化される。また、トライステートドライバTSDRV1には、Read_reg34の出力Qが入力される。また、トライステートドライバTSDRV2には、Read_reg34の出力Qの反転値QBが入力される。一方、Glb_SR2信号の論理値が「1」であるため、Str_Burst信号の論理値は「0」だが、NOR回路NOR1の否定論理積が「0」となり、信号線Local_SR2の論理値が「0」となるため、PMOSトランジスタStrTR1,StrTR2がオン状態となる。これにより、ビット線bit,bit_bを介して、ワードmのMTJ素子MTJ1,MTJ2に、メモリセル21に保持されていたデータであるRead_reg34の出力Qがストアされる。
一方、センスアンプ出力SAOの論理値と出力Qの論理値とが同一の場合、すなわち、MTJ素子MTJ1,MTJ2に記憶されているデータの論理値とメモリセル21に保持されていたデータの論理値とが同一の場合、XOR回路XOR1の排他的論理和が「0」となる。このとき、SF信号の論理値は「0」である。これにより、OR回路OR3の論理和が「0」となりTSEN信号の論理値が「0」となるため、トライステートドライバTSDRV1,TSDRV2が活性化されない。よって、ビット線bit,bit_bが駆動されず、ワードmのMTJ素子MTJ1,MTJ2に、メモリセル21に保持されていたデータである、Read_reg34の出力Qがストアされない。
なお、この場合、ビット線bit,bit_bには、1つ前のステップ(第3ステップ)における電位(論理値)の状態が残ったままの状態で、PMOSトランジスタStrTR1,StrTR2がオン状態となるが、問題は生じない。これは、上述したように、第3ステップでは、メモリセル21に保持されているワードmのMTJ素子MTJ1,MTJ2のデータが、ビット線bit,bit_bに読み出されるためである。ビット線bit,bit_bのデータと、MTJ素子MTJ1,MTJ2のデータとが同一であるため、MTJ素子MTJ1,MTJ2のデータは書き換わらない。
このように、本実施形態の不揮発性メモリ回路16では、メモリセル21に保持されているデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとが同一の場合、メモリセル21に保持されているデータをMTJ素子MTJ1,MTJ2にストアするのを抑制することができる。
ストアを行うワード毎に、上記第1ステップ~第4ステップの動作を繰り返し行うことにより、上述したように、メモリセル21に保持されているデータのMTJ素子MTJ1,MTJ2へのストア動作が行われる。
(電源遮断モード)
電源遮断モードでは、上述したように制御信号VPGを「1」とし、パワースイッチ14をオフ状態にして、メモリセル回路22及び周辺回路24へのVVDD電圧の供給を遮断する。不揮発性メモリ回路16では、これにより、リーク電流による電力消費が削減される。
(リストア動作モード)
次に、メモリセル回路22におけるリストア動作モードについて説明する。図10には、リストア動作におけるタイミングチャートの一例が示されている。なお、リストア動作を行う前に、パワースイッチ14をオン状態にし、メモリセル回路22及び周辺回路24のVVDD電圧の供給を開始しておく。
クロック信号CLKの立ち上がりのタイミングt51に同期して、Restore_All信号の論理値を「1」にする。これにより、OR回路OR1,OR2の論理和が「1」になる。また、Glb_LPG信号の論理値を「1」にする。これにより、AND回路AND2の論理積が「1」となり、信号線Local_LPGの論理値が「1」となって、PMOSトランジスタP4,P5がオフ状態となる。
さらに、GlB_SR1信号の論理値を「1」とすることで、AND回路AND3の出力が「1」となり、信号線Local_SR1の論理値が「1」となって、RstrTR1,RstrTR2がオン状態となる。CTRL信号の論理値が「0」であるため、記憶ノードd,d_bが「0」となる。
次に、クロック信号CLKの立ち上がりのタイミングt53に同期して、Local_LPG信号の論理値を「0」にする。これにより、AND回路AND2の論理積が「0」となり、信号線Local_LPGの論理値が「0」となって、PMOSトランジスタP4,P5がオン状態となる。
MTJ素子MTJ1とMTJ素子MTJ2との抵抗の違いにより、記憶ノードdと記憶ノードd_bとに僅かな電位差が生じる。この電位差が、インバータINV1,INV2からなるインバータループにより増幅され、記憶ノードd,d_bの電位が確定する。この結果として、MTJ素子MTJ1,MTJ2に記憶されていたデータが、メモリセル21に読み出される(リストアされる)。
なお、このリストア動作は、ビット線bit,bit_bを介さずに、全てのワードの全てのビットにおいて同時に並列して行われるため、電源遮断モードからの復帰が高速に行われる。
以上説明したように、本実施形態の不揮発性メモリ回路16は、メモリセル21を含み、メモリセル21を不揮発性メモリとして用いることを可能とさせるためのメモリセル回路22を備える。詳細には、不揮発性メモリ回路16は、1ビットのデータを保持するメモリセル21と、メモリセル21にデータを書き込む、または読み出すための一対のビット線bit,bit_bと、メモリセル21が保持するデータを記憶するMTJ素子MTJ1,MTJ2と、を備える。また、不揮発性メモリ回路16は、メモリセル21が現在保持しているデータをRead_reg34に格納させ、MTJ素子MTJ1,MTJ2が現在記憶しているデータをセンスアンプ32に格納させ、Read_reg34が格納するデータとセンスアンプ32が格納するデータとが異なる場合、Read_reg34が格納するデータを一対のビット線bit,bit_bを介してMTJ素子MTJ1,MTJ2に書き込ませ、かつRead_reg34が格納するデータとセンスアンプ32が格納するデータとが同一の場合、Read_reg34が格納するデータをMTJ素子MTJ1,MTJ2に書き込ませない。
このように、本実施形態では、メモリセル21に保持されているデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとが同一の場合、メモリセル21に保持されているデータをMTJ素子MTJ1,MTJ2に書き込むストアを行わない。そのため、本実施形態のメモリセル回路22を用いた不揮発性メモリ回路16によれば、メモリセル21に保持されているデータのMTJ素子MTJ1,MTJ2への書き込みに要する消費電力を抑制することができ、低消費電力化を実現することができる。
また、例えば、非特許文献1、2に記載の技術では、MTJ素子に記憶されているデータを読み出す場合、SRAMのメモリセルにMTJ素子に記憶されているデータが読み出される。そのため、非特許文献1、2に記載の技術では、SRAMのメモリセルがもともと保持するデータが壊れてしまい、SRAMのメモリセルに保持されているデータと、MTJ素子に記憶されているデータとの同一性を判定するのは困難であった。
これに対して、本実施形態の不揮発性メモリ回路16は、メモリセル21がもともと保持するデータをRead_reg34に退避させた後、MTJ素子MTJ1,MTJ2に記憶されているデータをメモリセル21に読み出す。MTJ素子MTJ1,MTJ2に記憶されているデータをメモリセル21に読み出すことにより、メモリセル21が保持するデータは、MTJ素子MTJ1,MTJ2に記憶されているデータに上書きされてしまう。しかしながら、本実施形態の不揮発性メモリ回路16では、Read_reg34に退避させたメモリセル21にもともと保持されていたデータを用いることにより、メモリセル21に保持されているデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとの同一性の判定を容易に行うことができる。
[第2実施形態]
本実施形態は、不揮発性メモリ回路16の一部の構成及び動作が第1実施形態の不揮発性メモリ回路16(図3参照)と異なるため、異なる構成及び動作について説明する。
不揮発性メモリを画像処理や機械学習といったアプリケーションで使用する場合、ストアするデータの上位ビットは十分に長い時間をかけてストア動作を行う一方、下位ビットは短い時間でストアを行う手法が提案され、有効性が示唆されている(非特許文献3,4参照)。
Y. Ono, K. Usami,"Energy Efficient Approximate Storing of Image Data for MTJ Based Non-volatile Memory", The 9th IEEE Non-Volatile Memory Systems and Applications Symposium (NVMSA 2020), Korea, Aug. 20, 2020. Y. Ono, K. Usami,"Energy Efficient Approximate Storing to MRAM for Deep Neural Network Tasks in Edge Computing", The 23rd Workshop on Synthesis And System Integration of Mixed Information technologies (SASIMI 2021), Hirosaki, Japan, Mar. 29-30, 2021.
この手法はApproximate Computing(AC)の一つの発展形であり、データの下位ビットでは正確にストアできない状況が確率的に発生する。しかしながら、下位ビットは、データの重要度が上位ビットに比べて小さい。そのため、誤った値がストアされた場合でも、人間の眼には画像データの劣化が認識できない(非特許文献3参照)、あるいは、機械学習での精度がさほど劣化しない(非特許文献4参照)、という結果が報告されている。ストア時の消費エネルギーは消費電力とストア時間の積で決まる。そのため、下位ビットに対しては上位ビットに比べて短い時間でストアする制御を行うことにより、全てのビットを十分に長い時間でストアする場合に比べて、ストア時の消費エネルギーを低減することができる。
その一方で、長い時間でストアするビット幅と、短い時間でストアするビット幅をそれぞれ何ビットにすれば最適なのかが、アプリケーションによって異なることも非特許文献3、4に示唆されている。ストアする1ワードの中で、長い時間でストアするビット(上位ビット)と短い時間でストアするビット(下位ビット)の境目は、Bit Split Position(BSP)と呼ばれる。実行するアプリケーションが動作中に切り替わる場合、BSPを動的に変更する必要があるが、非特許文献3、4には、その具体的な実現方法については全く示唆されていない。
そこで、本実施形態では、BSPを動的に変更することが可能な不揮発性メモリ回路16について説明する。図11には、本実施形態の不揮発性メモリ回路16の一例の回路図を示す。図11に示すように本実施形態の不揮発性メモリ回路16は、周辺回路24の構成が、第1実施形態の周辺回路24(図3参照)と異なっている。本実施形態の周辺回路24は、AND回路AND7、OR回路OR4、及びAC(Approximate Computing)制御レジスタ(AC_reg)36をさらに備える。本実施形態のAND回路AND7、OR回路OR4、及びAC_reg36が本開示のストア時間制御部の一例であり、本実施形態のAC_reg36が本開示の設定部の一例である。
AC_reg36には、制御回路12からクロック信号CLK及びUpdate_EN2信号が入力される。また、不揮発性メモリ回路16には、制御回路12からAC_MSK信号が入力される。OR回路OR4には、AC_reg36の出力Qと、AC_MSK信号が入力される。また、OR回路OR4の論理和と、XOR1の排他的論理和とがAND回路AND7に入力され、AND回路AND7の論理積がOR回路OR3に入力される。
なお、一例として本実施形態では、ストア時間はクロックサイクル単位で切り替えることができるものと仮定し、短い時間でのストアは、N_shortサイクルで行い、長い時間でのストアはN_long(N_short<N_long)サイクルで行うものとする。本実施形態のN_shortサイクルが本開示の第2の時間の一例であり、本実施形態のN_longが本開示の第1の時間の一例である。
次に、本実施形態の不揮発性メモリ回路16の動作について説明する。本実施形態の不揮発性メモリ回路16の動作は、ストア動作モードにおける通常のストア動作の一部が、第1実施形態の不揮発性メモリ回路16のストア動作モードにおける通常のストア動作(図9参照)と異なっている。そのため、ストア動作モードにおける通常のストア動作について説明する。
(ストア動作モード:通常のストア動作)
第1実施形態と同様に、ここでは、MTJ素子MTJ1,MTJ2には何らかのデータが既にストアされている状態であり、また、上述した通常動作における書き込み動作(図7参照)を行ってメモリセル回路22に何からかのデータが保持されている状態を想定する。図12には、メモリセル回路22のストア動作におけるタイミングチャートの一例が示されている。
まず、第1ステップとして、図12のタイミングt61~t63に示すように、Update_EN2信号に応じて、ストア時間に応じた値をAC_reg36に設定する。長い時間でストアするビットのメモリセル回路22に対応する周辺回路24のAC_reg36には、「1」を設定する。また、短い時間でストアするビットのメモリセル回路22に対応する周辺回路24のAC_reg36には、「0」を設定する。例えば、ストアするデータが1語、nビットであり、nビット中の下位のk(k<n)ビットを短い時間でストアする場合、下位のkビットに対応するメモリセル回路22の周辺回路24のAC_reg36には、「0」を設定する。一方、上位のn-kビットは長い時間でストアするために、上位のn-kビットに対応するメモリセル回路22の周辺回路24のAC_reg36には、「1」を設定する。
なお、短い時間でストアする下位のビット数nもしくは長い時間でストアする上位のビット数n-kの定め方は限定されない。例えば、半導体集積回路10の内部回路18において処理するデータの種類や、所望とされるデータの精度に応じて自動で、またはユーザの所望により定められる形態としてもよい。本実施形態では、下位のビット数nまたは上位のビット数n-kは、制御回路12によって指示される。
次に、第2ステップとして、図12のタイミングt63~t65に示すように、メモリセル21の読み出し動作を行って、ワードmに保持されたデータを読み出して、Read_reg34に格納する。本動作は、第1実施形態の不揮発性メモリ回路16のストア動作モードにおける通常のストア動作(図9参照)の第1ステップと同様の動作である。
次に、第3ステップとして、図12のタイミングt65~t69に示すように、MTJ素子MTJ1,MTJ2に記憶されているデータをメモリセル21に読み出すリストア動作を行う。本動作は、第1実施形態の不揮発性メモリ回路16のストア動作モードにおける通常のストア動作(図9参照)の第2ステップと同様の動作である。
次に、第4ステップとして、図12のタイミングt69~t611に示すように、MTJ素子MTJ1,MTJ2に記憶させたデータを、センスアンプ32に格納する。本動作は、第1実施形態の不揮発性メモリ回路16のストア動作モードにおける通常のストア動作(図9参照)の第3ステップと同様の動作である。
次に、第5ステップとして、図12のタイミングt611~t619に示すように、Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とを比較し、出力Qの論理値とセンスアンプ出力SAOの論理値とが一致しない場合は、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。一方、Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とが一致する場合は、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアしない。
本動作は、第1実施形態の不揮発性メモリ回路16のストア動作モードにおける通常のストア動作(図9参照)の第4ステップと同様にして、XOR回路XOR1により、Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とを比較する。
Read_reg34の出力Qの論理値と、センスアンプ32のセンスアンプ出力SAOの論理値とが異なる場合、N_shortサイクルの期間、AC_MSK信号の論理値を「1」として、上述したようにストア動作を行う。
まず、N_shortサイクルの期間、AC_MSK信号の論理値が「1」となる。図12では、タイミングt611~t613の期間、及びタイミングt615~617の期間が、N_shortサイクルの期間に対応する。AC_MSK信号の論理値が「1」であるため、OR回路OR4の論理和が「1」となる。ここで、上述したようにXOR回路XOR1の排他的論理和が「1」であるため、AND回路AND7の論理積が「1」となる。そのため、トライステートドライバTSDRV1,TSDRV2が活性化され、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。
N_shortサイクルの期間が終了すると、直ちに、AC_MSK信号の論理値が「0」となる。N_longサイクルとN_shortサイクルとの差の期間(N_longサイクル-N_shortサイクル)に応じたクロックサイクルの期間、引き続きストア動作を行う。
ここで、AC_reg36に「1」が設定されているビットの周辺回路24では、上述したように、トライステートドライバTSDRV1,TSDRV2が活性化され、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。
一方、AC_reg36に「0」が設定されているビットの周辺回路24では、OR回路OR4の論理和が「0」となり、AND回路AND7の論理積が「0」となり、OR回路OR3の論理和が「0」となり、TSEN信号の論理値が「0」となる。そのため、トライステートドライバTSDRV1,TSDRV2が活性化されず、Read_reg34の出力Qが、MTJ素子MTJ1,MTJ2にストアされない。
従って、AC_reg36に「1」が設定されているビットでは、N_longサイクルの期間、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。一方、AC_reg36に「0」が設定されているビットでは、N_shotサイクルの期間のみ、Read_reg34の出力Qを、MTJ素子MTJ1,MTJ2にストアする。
なお、BSPの位置を変更する場合、換言すると、ストア時間を短い時間とするビットと、ストア時間を長い時間とするビットの設定を変更する場合、AC_reg36に設定する値を変更するだけでよい。例えば、8ビットのデータに対し、下位の5ビットのストア時間を短い時間とするには、AC_reg36に、「11100000」を設定しておく。このように設定された後に、アプリケーションが代わる等により、下位の2ビットのストア時間を短い時間とするように変更する場合は、AC_reg36に「11111100」を設定するだけでよい。AC_reg36に設定する値の変更は、上述した第1ステップにより行えばよいため、実行中に動的にBSPを変更することが容易にできる。
以上説明したように、本実施形態の不揮発性メモリ回路16も、第1実施形態の不揮発性メモリ回路16と同様に、メモリセル21に保持されているデータと、MTJ素子MTJ1,MTJ2に記憶されているデータとが同一の場合、メモリセル21に保持されているデータをMTJ素子MTJ1,MTJ2に書き込むストアを行わない。そのため、本実施形態のメモリセル回路22を用いた不揮発性メモリ回路16においても、メモリセル21に保持されているデータのMTJ素子MTJ1,MTJ2への書き込みに要する消費電力を抑制することができ、低消費電力化を実現することができる。
また、本実施形態の不揮発性メモリ回路16によれば、簡易な構成により、BSPの位置を設定、及び動作時に変更することができるため、より消費電力を低減することができる。
なお、上記各実施形態では、不揮発性記憶部の一例としてMTJ素子MTJ1、MTJ2を用いた形態について説明したが本形態に限定されない。不揮発性記憶部としては、パワースイッチ14によりVVDD電圧の供給が遮断された後も、記憶しているデータが消えない(不揮発性)記憶部であれば特に限定されない。
また、上記各実施形態では、第1格納部の一例として、Read_reg34を用いた形態について説明したが、第1格納部は本形態に限定されない。第1格納部としては、レジスタや、半導体記憶回路であればよい。また、上記各形態では、第2格納部の一例として、センスアンプ32を用いた形態について説明したが、第2格納部は本形態に限定されない。第2格納部としては、メモリセル21に記憶されているデータの読み出し時にビット線bit,bit_bの電位を検出し、検出した電位差に基づいて、メモリセル21から読み出したデータの論理値を判定する機能、及び読み出したデータを格納する機能を有する半導体回路であればよい。
また、上記各形態では、不揮発性メモリ回路群15の不揮発性メモリ回路16に保持されているデータを内部回路18に出力する形態について説明したが、本形態に限定されず、不揮発性メモリ回路群15の不揮発性メモリ回路16に保持されているデータを半導体集積回路10の外部に出力する形態であってもよい。
また、上記各実施形態で説明した半導体集積回路10、不揮発性メモリ回路16等の構成及び動作等は一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることは言うまでもない。
10 半導体集積回路
12 制御回路
14 パワースイッチ
15 不揮発性メモリ回路群
16 不揮発性メモリ回路
20 アドレスデコーダ
21 メモリセル
22 メモリセル回路
24 周辺回路
30 Write_reg
32 センスアンプ
34 Read_reg
36 AC制御レジスタ(AC_reg)
AND1~AND7 AND回路
bit、bit_b ビット線
d、d_b 記憶ノード
Glb_WL グローバルワード線
INV1、INV2、IV1~IV4 インバータ
Local_WL ワード線
Local_LPG、Local_SR1、Local_SR2 信号線
MTJ1、MTJ2 MTJ素子
NOR1 NOR回路
OR1~OR4 OR回路
RstrTR1、RstrTR2、TR1、TR2、N1~N11 NMOSトランジスタ
StrTR1、StrTR2、P1~P14 PMOSトランジスタ
TSDRV1、TSDRV2 トライステートドライバ
XOR1 XOR回路

Claims (9)

  1. 1ビットのデータを保持するメモリセルと、
    前記メモリセルにデータを書き込む、または読み出すための一対のビット線と、
    前記メモリセルが保持するデータを記憶する不揮発性記憶部と、
    前記メモリセルが現在保持しているデータを第1格納部に格納させ、前記不揮発性記憶部が現在記憶しているデータを第2格納部に格納させ、前記第1格納部が格納するデータと前記第2格納部が格納するデータとが異なる場合、前記第1格納部が格納するデータを前記一対のビット線を介して前記不揮発性記憶部に書き込ませ、かつ前記第1格納部が格納するデータと前記第2格納部が格納するデータとが同一の場合、前記第1格納部が格納するデータを前記不揮発性記憶部に書き込ませない書込制御部と、
    を備えた半導体装置。
  2. 前記第2格納部は、前記一対のビット線間の電位差を検出し、前記電位差に基づいて、前記メモリセルから読み出したデータの論理値を判定した判定結果を前記第1格納部に出力する
    請求項1に記載の半導体装置。
  3. 前記書込制御部は、
    前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオン状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオフ状態とされる前記不揮発性記憶部と前記第2格納部とを接続する第1のスイッチと、
    前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオフ状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオン状態とされる前記不揮発性記憶部と前記メモリセルとを接続する第2のスイッチと、を含む
    請求項1または請求項2に記載の半導体装置。
  4. 前記メモリセルから読み出されたデータは、第2格納部を介して、第1格納部に格納される、
    請求項1から請求項3のいずれか1項に記載の半導体装置。
  5. 前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させるストア時間を第1の時間、及び前記第1の時間よりも短い第2の時間のいずれかとする制御を行うストア時間制御部をさらに備えた、
    請求項1から請求項4のいずれか1項に記載の半導体装置。
  6. 前記ストア時間制御部は、前記第1の時間と前記第2の時間とで異なる論理値が設定される設定部を備え、前記設定部に備えられた前記論理値と、前記第1の時間及び前記第2の時間を制御するストア時間制御信号の論理値と、に応じて前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる
    請求項5に記載の半導体装置。
  7. 前記ストア時間制御部は、前記メモリセルが保持するデータが、複数ビットのデータのうちの予め定められた上位ビットである場合は前記第1の時間とする制御を行い、前記複数ビットのデータのうちの予め定められた下位ビットである場合は、前記第2の時間とする制御を行う
    請求項5または請求項6に記載の半導体装置。
  8. 前記不揮発性記憶部は、磁気トンネル接合素子である、
    請求項1から請求項7のいずれか1項に記載の半導体装置。
  9. 1ビットのデータを保持するメモリセルと、
    前記メモリセルにデータを書き込む、または読み出すための一対のビット線と、
    前記メモリセルが保持するデータを記憶する不揮発性記憶部と、
    前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオン状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオフ状態とされる前記不揮発性記憶部と前記ビット線とを接続する第1のスイッチと、
    前記メモリセルに保持されているデータを前記不揮発性記憶部に記憶させる際にオフ状態とされ、かつ前記不揮発性記憶部に記憶されているデータを前記メモリセルに書き込む際にオン状態とされる前記不揮発性記憶部と前記メモリセルとを接続する第2のスイッチと、を含む
    メモリセル回路。
JP2021148090A 2021-09-10 2021-09-10 半導体装置及びメモリセル回路 Pending JP2023040898A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021148090A JP2023040898A (ja) 2021-09-10 2021-09-10 半導体装置及びメモリセル回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021148090A JP2023040898A (ja) 2021-09-10 2021-09-10 半導体装置及びメモリセル回路

Publications (1)

Publication Number Publication Date
JP2023040898A true JP2023040898A (ja) 2023-03-23

Family

ID=85632179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021148090A Pending JP2023040898A (ja) 2021-09-10 2021-09-10 半導体装置及びメモリセル回路

Country Status (1)

Country Link
JP (1) JP2023040898A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024038676A1 (ja) * 2022-08-17 2024-02-22 ソニーセミコンダクタソリューションズ株式会社 記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024038676A1 (ja) * 2022-08-17 2024-02-22 ソニーセミコンダクタソリューションズ株式会社 記憶装置

Similar Documents

Publication Publication Date Title
JP4932856B2 (ja) 集積回路の動作パラメータを調整するための装置及び方法
TWI489472B (zh) 記憶體寫入錯誤修正電路
JP6012876B2 (ja) ツインセルの記憶データをマスクして出力する半導体装置
US5828612A (en) Method and circuit for controlling a precharge cycle of a memory device
US8488363B2 (en) Write energy conservation in memory
US5717653A (en) Late-write type SRAM in which address-decoding time for reading data differs from address-decoding time for writing data
JP2005044456A (ja) 半導体記憶装置
US9286971B1 (en) Method and circuits for low latency initialization of static random access memory
TWI646542B (zh) 半導體記憶體裝置
JP2013239219A (ja) 磁気ランダムアクセスメモリ及びメモリシステム
KR20160045595A (ko) 비트 라인 컨트롤 기능을 갖는 메모리
JP6372203B2 (ja) データ保持回路および保持データ復元方法
JP2023040898A (ja) 半導体装置及びメモリセル回路
US20140313843A1 (en) Semiconductor integrated circuit and control method therefor
US9135988B2 (en) Semiconductor device and control method of the same
US20140201547A1 (en) Selective Precharge for Power Savings
CN110718245A (zh) 半导体器件
JP6801654B2 (ja) 半導体装置
TWI386951B (zh) 記憶體寫入時序系統
JP4731798B2 (ja) ライト保護領域を備えた不揮発性メモリ装置
US11676659B2 (en) Memory with expandable row width
US9619319B2 (en) Semiconductor device and error correction information writing method
US7339845B2 (en) Memory device
KR100837801B1 (ko) 반도체 메모리 장치
US11435815B2 (en) Semiconductor devices providing a power-down mode and methods of controlling the power-down mode using the semiconductor devices