JP2014222425A - 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法 - Google Patents

半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法 Download PDF

Info

Publication number
JP2014222425A
JP2014222425A JP2013101822A JP2013101822A JP2014222425A JP 2014222425 A JP2014222425 A JP 2014222425A JP 2013101822 A JP2013101822 A JP 2013101822A JP 2013101822 A JP2013101822 A JP 2013101822A JP 2014222425 A JP2014222425 A JP 2014222425A
Authority
JP
Japan
Prior art keywords
nonvolatile
data
volatile
circuit
state
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
JP2013101822A
Other languages
English (en)
Inventor
幸秀 辻
Yukihide Tsuji
幸秀 辻
崎村 昇
Noboru Sakimura
昇 崎村
竜介 根橋
Ryusuke Nehashi
竜介 根橋
あゆ香 多田
Ayuka Tada
あゆ香 多田
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013101822A priority Critical patent/JP2014222425A/ja
Publication of JP2014222425A publication Critical patent/JP2014222425A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Mram Or Spin Memory Techniques (AREA)
  • Power Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Hall/Mr Elements (AREA)

Abstract

【課題】予期せずにシステムが電源供給停止状態になった場合であっても、正常にシステムの動作を再開することが可能な半導体集積回路を提供する。
【解決手段】揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、不揮発レジスタの内部における揮発性データと不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、不揮発性メモリの不揮発レジスタの内部における一致・不一致の状態をモニターし、不揮発性メモリの状態に応じた信号を出力する監視回路と、監視回路からの信号を内部演算装置又は外部装置に出力するノードと、を備え、電源立ち上げ動作時において、不揮発性メモリが第2の値を保持する場合に、監視回路がノードにアクティブな信号を供給する半導体集積回路とする。
【選択図】 図1

Description

本発明は、半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法に関する。特に、不揮発なレジスタを備えた半導体集積回路に関する。
近年、半導体の集積度が向上するにつれ、回路が動作していないときのトランジスタのリーク電流による電力消費が問題になっている。そこで、半導体集積回路を利用していないときに、その回路の電源をオフにしてリーク電流を低減する低消費電力モードを備えた半導体集積回路が開発されている。しかしながら、半導体集積回路への電源供給が停止されると、不揮発性メモリを除いて半導体集積回路の内部状態は消去されてしまう。そのため、電源オフに先立って保持しておきたいデータを外部記憶装置等に退避する必要がある。
特許文献1には、電源停止時にコンピュータシステムの構成要素の状態を保存する方法と、電源が完全に遮断された後の再開機能を有するコンピュータシステムについて開示されている。特許文献1のコンピュータシステムでは、コンピュータシステム構成要素内の走査ラッチを使用して内部状態を読み取る。読み取った内部状態は、不揮発性記憶域に保存され、電源が遮断される。
特許文献2には、不揮発性メモリと書き込み回路とを備えたラッチ回路を備え、電源オフに先立ち、ラッチ回路の揮発的なデータを、不揮発性メモリに書き込むことを特徴とする半導体装置について開示されている。特許文献2の半導体装置では、不揮発性メモリセルを付加することにより、複雑な転送動作が不要で高速にデータを退避できる。
特許文献3には、不揮発ラッチの他に、ラッチへの書き込み・ロードなどの動作を監視又は制御する不揮発性メモリを備えた半導体集積回路について記載されている。特許文献3の半導体集積回路では、書き込み・ロードを行う不揮発素子の素子数を削減し、データの退避・復帰に要する電力を削減している。また、特許文献3の半導体集積回路に設けられた制御用の不揮発性メモリは、動作時にデータを書き換えることによって、意図した復帰後の状態に復帰することも可能である。
特開2002−182803号公報 特開2004−133969号公報 特願2011−197517号公報
特許文献1のように、内部状態を保持している回路部分から分離して配置されたメモリ素子を利用する場合、データ転送に伴う時間遅延と消費電力が発生する。特に、電源のオン/オフを高頻度で行った場合には、データ転送に伴う時間遅延や消費電力が大きくなってしまうという課題がある。
特許文献2の半導体集積回路では、モジュールごとに備えられた電源スイッチをオン・オフする度にそのモジュールに含まれる全ての不揮発ラッチのデータを退避・復帰する。そのため、不必要な書き込みやロードが発生し、消費する電力が大きくなるという課題がある。
特許文献3の半導体集積回路では、外的な要因による電源停止などによってプログラム動作時に意図せぬタイミングで停止した場合、その後の復帰は電源停止前の復帰状態と同じ状態から開始することになる。そのため、電源停止前の動作によってデータが書き換わっているときに再度プログラムコードを重複して開始すると、データの不整合などが発生する可能性もある。
本発明は、予期せずにシステムが電源供給停止状態になった場合であっても、正常にシステムの動作を再開することが可能な半導体集積回路を提供することを目的とする。
本発明の半導体集積回路は、揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、不揮発レジスタの内部における揮発性データと不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、不揮発性メモリの後段に設けられ、不揮発レジスタの内部における一致・不一致の状態をモニターし、不揮発性メモリの状態に応じた信号を出力する監視回路と、監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備え、電源立ち上げ動作時において、不揮発性メモリが有する記憶領域のうち少なくとも一つが第2の値を保持する場合に、監視回路がノードにアクティブな信号を供給する。
本発明の半導体集積回路は、揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む複数の不揮発レジスタと、不揮発レジスタの内部における揮発性データと不揮発性データとの一致・不一致の状態を保持する記憶領域を有する不揮発性メモリと、不揮発レジスタ及び不揮発性メモリの内部の状態をモニターするとともにノードを制御する検出回路と、検出回路からの出力を内部演算装置又は外部装置に出力するノードと、を備え、検出回路は、電源立ち上げ動作時に、不揮発性メモリ内部における揮発性データと不揮発性データとの一致・不一致の状態をモニターし、一致・不一致の状態が不一致である場合にノードをアクティブとする制御を実行する。
本発明の半導体集積回路の制御方法は、揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
不揮発レジスタの内部における揮発性データと不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、不揮発性メモリの後段に設けられ、不揮発レジスタの内部における一致・不一致の状態をモニターし、不揮発性メモリの状態に応じた信号を出力する監視回路と、監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御方法であって、電源立ち上げ動作時において、不揮発性メモリが有する記憶領域のうち少なくとも一つが第2の値を保持する場合に、監視回路がノードにアクティブな信号を供給する。
本発明の半導体集積回路によれば、予期せずにシステムの電源がオフ状態になった際であっても、不揮発レジスタ内の揮発性データが不揮発素子に正常に退避されたか否かを判定することができ、正常にシステムの動作を再開することが可能となる。
本発明の第1の実施形態に係る半導体集積回路の一例の概念図である。 本発明の第1の実施形態に係る不揮発性フリップフロップの概念図である。 本発明の第2の実施形態に係る半導体集積回路における入力信号とValidビットからの出力信号との対応を示す関係図である。 本発明の第2の実施形態に係る半導体集積回路における入力信号とValidビットからの出力信号との対応を示す関係図である。 本発明の第2の実施形態に係る半導体集積回路の正常動作時の信号チャート図である。 本発明の第2の実施形態に係る半導体集積回路において電源障害が発生した場合の信号チャート図である。 本発明の第3の実施形態に係る不揮発性フリップフロップの一例の概念図である。 本発明の第3の実施形態に係る不揮発性フリップフロップの一例の概念図である。 本発明の第4の実施形態に係る半導体集積回路の一例の概念図である。 本発明の第5の実施形態に係る半導体集積回路の概念図である。 本発明の第5の実施形態に係る検出回路の概念図である。 本発明の第6の実施形態に係るコンピュータシステムの概念図である。 本発明の実施形態に係る不揮発性フリップフロップの回路図の一例である。 本発明の実施形態に係る半導体集積回路へのCLK発生回路の概念図である。 本発明の実施形態に係る不揮発性素子の一例を示す図である。
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
(構成)
まず、図1を用いて、本発明の第1の実施形態に係る半導体集積回路1の概要について説明する。
図1に示したように、本実施形態に係る半導体集積回路1は、不揮発レジスタ10と、制御回路20と、ノード30と、を備えている。ノードから出力された信号は、半導体集積回路1には含まれない内部演算装置又は外部装置(内部演算装置/外部装置60)に向けて出力される。
不揮発レジスタ10は、同様の構成をもつ複数の不揮発性のレジスタR1〜Rmで構成されている(mは自然数)。なお、これ以降、不揮発レジスタ10に含まれるレジスタR1〜Rmのうち特定のレジスタもしくは任意のレジスタを表す場合、レジスタRxと記載する(xは自然数)。
本実施形態に係る不揮発レジスタ10は、中央演算装置であれば、プログラムカウンタやステータスレジスタ、スタックポインタなどの特殊なレジスタ、演算のオペランドに使われる汎用レジスタを含む。また、ある機能ブロック(内部モジュール)やメモリマップドIOのような外部モジュールを制御し、データを読み出すための周辺レジスタも含む(IO:Input Output)。
不揮発レジスタ10に含まれるそれぞれのレジスタR1〜Rmは、1個又は複数(n個)の不揮発性フリップフロップ11で構成されている(nは自然数)。なお、不揮発レジスタ10は、不揮発ラッチで構成されていてもよい。また、これ以降、不揮発性メモリ21は複数のレジスタを含むものとして説明する。
レジスタに含まれる不揮発性フリップフロップ11に対する制御信号は、少なくとも各レジスタにおいては共通化されている。また、全てのレジスタR1〜Rmが共通の制御信号で動作してもよい。
不揮発レジスタ10に対する共通のCLK信号によって、n個の不揮発性フリップフロップ11の書き込みが実行される。また、WB信号でストアが実行され、LB信号でリストアが実行される。一般に、それぞれの不揮発レジスタ10においてnの値は同じであるが、場合によっては異なっていてもよい。
(不揮発性フリップフロップ)
図2には、不揮発性フリップフロップ11の内部構成の一例を示した。
図2の不揮発性フリップフロップ11は、外部から入力されたデータを揮発データとして保持する保持回路13と、保持回路13に保持されたデータを書き込むための不揮発素子13と、を備えている。保持回路13と不揮発素子14との間では、相互にデータを転送し合う。
ロジック回路である保持回路13の保持データは、電源をオフすると消失する。それに対し、メモリ素子である不揮発素子14の保持データは、電源をオフしても保持される。
図2の不揮発性フリップフロップ11では、ロジック回路である保持回路13と、メモリ素子である不揮発素子14とが一体として配置しているため、電源の遮断状態から復帰する前のデータ転送遅延が防止できる。そのため、データ転送に使用する配線や回路の電力消費を削減することができる。
不揮発性フリップフロップ11には、システムのクロック信号(CLK信号)を入力するクロック端子31と、外部からデータを入力するための入力端子32と、保持回路13に保持されたデータを出力するための出力端子33と、が設けられている。また、不揮発性フリップフロップ11は、保持回路13に保持されたデータを揮発性素子14へストアすることを指示するWB信号を入力するストア端子34と、揮発素子14に保持されたデータをリストアすることを指示するLB信号を入力するリストア端子35と、を有する。
なお、保持回路13のデータQを不揮発素子14へ転送することを、不揮発素子14へのストアという。ストアは、外部からのWB信号によって実行される。また、不揮発素子14のデータを保持回路13の出力端子Qへ転送することを不揮発素子14のリストアという。リストアは、外部からのLB信号によって実行される。
また、不揮発性フリップフロップ11の揮発性データのみを書き換えることを、書き込みという。書き込みにおいては、外部からのデータDは、外部からのCLK信号の立ち上がりエッジもしくは立ち下りエッジをトリガーとして、不揮発性フリップフロップ11の出力端子33から出力されるデータQに反映される。
不揮発性フリップフロップ11で構成された不揮発レジスタ10は、後段の制御回路20に含まれる不揮発性メモリ21と接続される。不揮発レジスタ10の内部状態は、不揮発性メモリ21内部にValidビットとして記憶される。
(制御回路)
制御回路20は、不揮発性メモリ21と、監視回路22と、を含む。制御回路20は、不揮発レジスタ10を構成するレジスタRxが保持する揮発データと不揮発データとの一致・不一致に関する情報(Validビット)を保持し、そのValidビットの論理和を取る回路となる。
(不揮発性メモリ)
不揮発性メモリ21は、不揮発レジスタ10の内部データの状態を保持する。具体的には、保持回路13が揮発的に保持する揮発データと、不揮発素子14が不揮発的に保持する不揮発データとの一致・不一致に関する情報(Validビット)を保持する。
保持回路13が保持する揮発データと、不揮発素子14が保持する不揮発データとが一致していると判断される場合、不揮発性メモリ21は0の状態(第1の値)を保持する。また、保持回路13が保持する揮発データと、不揮発素子14が保持する不揮発データとが一致しないと判断される場合、不揮発性メモリ21は1の状態(第2の値)を保持する。すなわち、Validビットとしては、不揮発データと揮発データとが一致する場合は0、一致していない場合は1が記録される。
不揮発性メモリ21は、不揮発レジスタ10が有するm個の不揮発性のレジスタR1〜Rmに対応するように、複数の記憶領域を有する。なお、不揮発性メモリ21を構成する記憶領域は1個であってもよい。
不揮発性メモリ21が複数の記憶領域を備えている場合、m個のレジスタR1〜Rmに対して別個の記憶領域を設けてもよいし、m個のレジスタR1〜Rmのうちいくつかをグループ化したものに対して記憶領域が共有されるようにしてもよい。
1つの不揮発性メモリ21を複数のレジスタR1〜Rmで共有させる場合、複数のレジスタR1〜Rmの中に1つでもデータが不一致となるレジスタRxがあると判断されれば、不揮発性メモリ21は1の状態を記憶する。また、揮発的データと不揮発データとを読み出して比較後、一致していれば0の状態を、不一致であれば1の状態を、不揮発性メモリ21に書き込んでもよい。
さらに、不揮発レジスタ10への書き込み、ストア及びリストアの動作をモニターすることによって、比較処理を省略することが可能である。そのため、不揮発レジスタRxへの書き込み動作が行われたときに1状態になり、ストア・リストア動作が実行されたときに0状態にする方がより望ましい。
不揮発性メモリ21の複数の記憶領域には、不揮発レジスタ10に備えられた不揮発性フリップフロップ11内において、保持回路13に保持された揮発データと、揮発性素子14に保持された不揮発データとが一致するか否かを示すValidビット(一致・不一致判定ビット)が保持される。また、各レジスタR1〜Rmのそれぞれに対してValidビットを設ける場合、図10のように、それぞれのValidビットをVB1、VB2、・・・、VBmのように表記する。
(監視回路)
また、不揮発性メモリ21は、図1の半導体集積回路1Aのように、監視回路22を含む。監視回路22は、不揮発レジスタ10を構成するレジスタから出力される信号に対してOR演算を行ってラッチする論理回路である。すなわち、監視回路22は、Validビットを評価し、エラー判定を実施する。
監視回路22は、Validビット信号を入力とし、少なくとも一つの1が入力されれば1を出力する論理回路を構成する。すなわち、電源立ち上げ動作時において、揮発性メモリ21が1の状態を保持する場合に、アクティブな信号を出力する。
なお、不揮発性メモリ21の各Validビットの出力を入力とした論理回路(OR回路)を組み、電源立ち上げのタイミングで論理回路の出力をラッチすることによって、エラー検出回路になる。また、エラーを抱えたままシステムが動作し続けてValidビットを書き換え続けると、Validビットが全部0になるため、ラッチ回路を最終段に入れ、エラー出力がノンアクティブになってしまうのを防いでいる。
図1のような構成にすれば、制御回路20は、監視回路22によって一つにまとめられたValidビット情報を基にノード30には単一の信号を出力すればよく、全てのValidビットから信号を出力する必要がなくなる。そのため、半導体集積回路1の動作時間や消費電力を低減することができる。
(ノード)
ノード30は、外部への出力信号、もしくは、内部CPUへの割り込み要求信号をアクティブにする端子である(CPU:Central Processing Unit)。
例えば、ノード30からの出力信号がアクティブになったことを通知するデバイスが設けられていれば、そのデバイスによる情報によって、システムのユーザは不揮発レジスタ10の内部情報を知ることができる。また、内部CPUへの割り込み要求信号がアクティブになると、エラーとなってシステム動作を停止させる構成とすれば、システムが誤作動することを防止することができる。
本実施形態において、ノード30は、半導体集積回路1への電源がONになるとき、すなわち、電源立ち上げ動作時に、不揮発性メモリ21の状態が1であれば、アクティブとなって信号を出力する。ノード30から出力された信号は、外部への出力信号又は内部CPUへの割り込み要求信号である。本実施形態においては、電源立ち上げ時に、ノード30がアクティブとなって、この信号を出力する点に特徴を有する。
(動作)
次に、本発明の第1の実施形態に係る半導体集積回路1の動作について説明する。
図10に示したように、レジスタRxに含まれる不揮発性フリップフロップ11では、保持回路13が保持する揮発性データと、不揮発素子14が保持する不揮発性データとが異なると、不揮発性メモリ21のValidビットは0から1に変更される。例えば、あるレジスタRxに含まれる不揮発性フリップフロップ11のうち少なくとも一つで揮発データと不揮発データとが異なれば、レジスタRxに対応するValidビットを1の状態とする。また、不揮発性メモリ21が含む一つの記憶領域を複数のレジスタRxで共有する場合、いずれかのレジスタRxで不揮発データと揮発データとの不一致があれば、その記憶領域に1を状態とすればよい。
不揮発性フリップフロップ11が保持する揮発性データと不揮発性データとが一致し、そのレジスタRxに対応するValidビットを状態0にセットする場合は2通りある。
一つは、ある不揮発性フリップフロップ11において、不揮発素子14から保持回路13にデータをストアする場合である。もう一つは、不揮発性フリップフロップ11の揮発性データを不揮発素子14にリストアする場合である。
また、あるレジスタRxが含む不揮発性フリップフロップ11の揮発性データと不揮発性データとが異なる場合、その不揮発性フリップフロップ11を含むレジスタRxに対応するValidビットは状態1にセットされる。これは、書き込み動作によって不揮発性フリップフロップ11にデータを入力し、保持回路13の揮発データを更新したものの、その揮発データを不揮発素子14にストアしていない場合に相当する。すなわち、あるレジスタRxが含む少なくとも一つの不揮発性フリップフロップ11の揮発性データを更新する動作によって、その不揮発性フリップフロップ11が保持する不揮発性データと揮発性データとが異なっている場合に、対応するValidビットは状態1にセットされる。
通常のシステム動作においては、保持回路13へのデータの書き込み、保持回路13から不揮発素子14へのデータのストア、不揮発素子14から保持回路13へのデータのリストアが定常的に実行される。特に、電源停止動作時において、保持回路13から不揮発素子14へデータをストアすることによって、電源が立ち下げられても、不揮発性レジスタ10内部にデータが保持されることになる。そのため、正常に電源が立ち下げられていれば、不揮発性メモリ21は、0の状態を保持していることになる。それに対し、電源立ち下げが正常に実行されなかった場合、不揮発性メモリ21は、1の状態を保持することになる。
(データ制御方法)
不揮発レジスタ10の制御信号であるWB信号・LB信号は、電源制御回路への電源のオン・オフ信号から生成されればよい。なお、CPUなどの中央演算回路を含み、プログラムメモリに格納された命令コードに従って、WB信号とLB信号を発生させるタイミングを単一もしくは複数のコードで指定するソフトウェア制御としてもよい。その場合、コードは、図示しない記憶装置に格納しておけばよい。
また、ソフトウェア(プログラムコード)からも信号制御できるようにすると、意図した復帰後の状態にすることができるなど、制御の柔軟性が向上する。
なお、半導体集積回路1内全ての不揮発レジスタ10を一律に制御するのではなく、不揮発レジスタ10に所定のアドレスを割り付け、それぞれのレジスタRxの書き込み(WE_x)、ストア(WB_x)、リストア(LB_x)の動作を個別に制御するようにしてもよい(xはレジスタRxの末尾の番号に対応)。
(電源停止からの復帰動作)
次に、システムの電源を停止するときの動作について、意図した電源停止(正常時)と意図しない電源停止(異常時)との場合に分けて説明する。
まず、正常な電源停止においては、不揮発性メモリ21を含む半導体集積回路1の電源をオフし、次のオン状態からの開始(復帰)に備える。そのために、正常時の電源停止では、あるレジスタRxが含む不揮発性フリップフロップ11の揮発性データと不揮発性データとを一致させ、不揮発性メモリ21を状態0にする動作をプログラムに従って実行させる。電源停止時もしくは投入時において、不揮発性メモリ21が状態0である場合には、前回の電源停止が正常に実行されたことになる。この場合、ノード30はアクティブとならないため、通常の電源立ち上げ動作が実行される。
それに対し、電源の復帰直後に不揮発性メモリ21が状態1であった場合は、前回の電源停止が意図しないものであったと判定される。そのため、不揮発性メモリ21が状態1であった場合、ノード30がアクティブとなり、ノード30から信号が出力される。ノード殻出力される信号は、外部への出力信号又は内部CPUへの割り込み要求信号である。
一般に、不揮発レジスタ10に含まれる保持回路13のデータを不揮発素子14に退避させれば、電源を落としてもデータは不揮発レジスタ10に保持される。また、電源を再度投入し、不揮発素子14のデータを保持回路13に戻すことによって、半導体集積回路1の動作を電源停止前の状態に戻すことができる。
しかしながら、意図せずに、保持回路13中の揮発データを不揮発素子14中に不揮発データとしてストアする前に電源停止した場合、レジスタR1〜Rmが含む不揮発素子14の中には更新前のデータが残っていることになる。このような状態で、通常時と同様に電源投入してしまうと、更新されていないデータを含む不揮発素子14と、更新されたデータを含む不揮発素子14と、から同時にデータをリストアしてしまうため、システム動作に異常が生じる可能性がある。
それに対し、本発明の第1の実施形態に係る半導体集積回路1によれば、意図しない電源停止があったことを、電源停止中もしくは電源投入時に、不揮発性メモリ21の状態によって判定できる。そのため、意図しない電源停止後の電源投入時において、誤作動を引き起こさないようにシステムを起動することができ、システム全体が誤作動することを防止することができる。
本発明の第1の実施形態に係る半導体集積回路によれば、不揮発レジスタ内のデータが正常に退避される前にシステムの電源がオフ状態になると、ノードから信号が出力される。その信号は、外部への出力信号又は内部CPUへの割り込み要求信号である。
外部への出力信号が出力されれば、システムの電源が正常に停止されたか否かを、その出力信号によってユーザに通知することができる。そのため、ユーザに通知されたノードの状態に応じて、電源復帰後にシステムを動作させるか否かを判断できる。ノードがアクティブであった場合、電源復帰後にシステムを動作させなければ、システム全体が誤動作することを未然に防ぐことができる。
また、ノードから内部CPUへの割り込み要求信号が出力されれば、その割り込み要求信号によってシステム動作を自動的に停止することができる。そのため、エラーがありながらシステムを稼働させ続けることによって起こりうるシステムの誤動作を防止することができる。
(第2の実施形態)
次に、本発明の第2の実施形態に係る半導体集積回路2について、図3及び図4を用いて説明する。
図3及び図4のように、本発明の第2の実施形態に係る半導体集積回路2は、最終段にラッチ回路24を備えたエラー検出回路25を構成する。その他の構成は、第1の実施形態と同様である。
ラッチ回路24は、電源立ち上げの瞬間に発生したエラーを保持することができる。電源投入時に不揮発性メモリ21が1の状態であれば、ラッチ回路24へのLB信号の入力タイミングで、ノード30がアクティブとなってノード30を介してエラーフラッグ信号が出力される。なお、LB信号の入力タイミングは、電源をONしたタイミングとなる。また、LB信号のタイミングでエラーフラッグ信号を出力すればよいため、ラッチ回路24がノード30の機能を兼ねてもよい。
例えば、半導体集積回路2に記憶装置(図示しない)を設ければ、電源をオフする前に全ての不揮発性メモリ21からの出力が0になるようなプログラムコードを記憶装置に格納できる。記憶装置に格納されたプログラムコードによって、システムが意図しない電源停止をした際に、自動的にシステム動作を停止することができる。
不揮発性メモリ21の状態は、不揮発レジスタRxへの書き込み(WE_x)動作が行われたときに1状態とし、ストア(WB_x)、リストア(LB_x)動作が実行されたときに0状態とすることが好ましい。
ラッチ回路24は、不揮発レジスタ10とは別個に設けられてもよいし、不揮発レジスタ10が含む任意のレジスタRxに含まれるスレーブラッチであってもよい。不揮発性メモリ21が1の状態で電源投入されると、ラッチ回路24にLB信号が入力され、LB信号ラッチ回路24の有するいずれかのノードがアクティブとなり、ラッチ回路24からエラーフラッグ信号が出力されることになる。
ラッチ回路24は、電源立ち上げの瞬間に発生したエラーを保持する。そのため、Validビットが1となってエラーが発生していれば、システム動作が停止される。その結果、Validビットが1でエラーが発生しているにもかかわらず、エラーのままシステム動作が継続されてValidビットを0にしてしまうという不具合を防止することができる。
システムの電源を正常に停止した場合、全ての不揮発レジスタ10からの出力が0の状態になって停止する。そのため、電源再投入時には、不揮発性メモリ21には0の状態が保持される。すなわち、電源再投入後、不揮発性メモリ21が0を保持していることを確認すれば、システムが正常に停止されたことを把握することができる。この場合、LB信号の入力に応じて通常のリストア動作を行えばよい。
それに対し、意図しないシステムへの電源供給障害が発生した場合は、全ての不揮発性メモリからの出力が0にならずに電源供給が停止する。1の状態がある場合、レジスタRxへのストア動作(WB_x)を実行してレジスタRx内部の揮発データと不揮発的データを一致させる前に、電源供給障害が発生する。そのため、電源再投入時には、不揮発性メモリ21に含まれるいずれかのValidビットVBxから1の出力が得られる。すなわち、電源再投入後、不揮発性メモリ21が1を保持していることを確認すれば、システムが異常停止したことを把握することができる。
また、電源投入時に不揮発性メモリ21が1を保持している場合、LB信号の入力タイミングでエラーフラッグ信号によって割り込み動作を開始し、システム動作を一時停止すれば、システム誤動作を自動で防止できる。
本実施形態では、図3及び図4のように、エラーを保持するラッチ回路が設けられている。そのため、不揮発性メモリ21中のValidビットVBxから、1つでも1が出力されていれば、エラーが検出されてシステム動作を停止し、アクティブ状態となったノード30からエラーフラッグ信号を出力することができる。
なお、ある機能ブロック単位・実レイアウト上の回路ブロック単位でValidビットをグルーピングし、そのグループ内のいずれかのValidビットが1を出力していればアクティブになるノード30を複数設定してもよい。すなわち、エラーフラッグ信号は複数あってもよい。
上述のエラーフラッグ信号は、外部の表示デバイスなどに接続してユーザに通知するようにしてもよい。また、エラーフラッグ信号を特定のアドレスのレジスタRxにデータとして保持させて、特定のアドレスのデータに関するエラーフラッグ信号をユーザに通知するようにしてもよい。さらに、エラーフラッグ信号のアクティブ状態を確認した時刻を、別途あるアドレスのデータとして記録してもよい。
割り込み処理に対応したCPUなどの中央演算装置を有する場合は、割り込み信号をエラーフラッグ信号から生成してもよく、データの不整合などが発生しないプログラムコードのスタート時点まで戻ってシステム動作を開始するようにしてもよい。
(タイミングチャート)
ここで、図5及び図6のターミングチャートを用いて、信号の入力タイミングにおける保持回路13と揮発素子14とのデータ授受について説明する。
なお、図5及び図6に示すチャート図では、各信号を入力又は出力する端子がアクティブ状態になったことを、Y軸方向の順方向と対応させている。したがって、図5及び図6のチャート図におけるY軸方向は、回路上の信号の電位(High、Low)を限定するものではない。
図5及び図6において、V信号は、電源がONの場合にアクティブとする。また、WE_x信号、VB_x信号、WB_x信号、LB_x信号は、それぞれ、不揮発レジスタ10が含むレジスタRxへの入出力信号を示し、アクティブとなったときに信号が入力される。さらに、Q_x[n]は、レジスタRxの保持回路13における揮発データの保持状況を示し、R_x[n]は、レジスタRxの不揮発素子14における不揮発データの保持状況を示す。また、図6におけるError信号は、エラーフラッグ信号が出力されている場合にアクティブとなる。
(意図した電源停止)
図5は、意図した電源停止時(正常な電源停止時)におけるタイミングチャートである。図5においては、初期状態として、電源がアクティブ(ON)であり、揮発データと不揮発データとが一致する(状態0)状態にあったものとする。
まず、レジスタRxにWE_x信号が入力され(T1)、レジスタRxに対して新たなるデータを保持回路13に書き込む指示が出されると、保持回路13にデータが書き込まれ、保持回路13の揮発データが更新される。図5には、WE_x信号に応じて、Q_x[n]のデータが更新される様子を示している(T2)。
このとき、揮発データと不揮発データは異なるため、不揮発性メモリ21のValidビットは1の状態になる。図5では、VB_xがアクティブとなるように示している。なお、VB_xがアクティブになるタイミングは、T1とT2のいずれでもよい。
次に、システムの電源停止指示が出されると、WB_x信号がレジスタRxに入力される(T3)。WB_x信号によって、保持回路13から不揮発素子14へのストア指示が出されると、保持回路13から不揮発素子14にデータがストアされる。図5には、Q_x[n]からR_x[n]にデータがストアされる様子を示している(T4)。
ここで、電源が投入されると、リストア指示がLB_x信号としてレジスタRxに入力され(T5)、不揮発素子14から保持回路14へとデータがリストアされる(T6)。
このように、意図した電源停止においては、保持回路13から不揮発素子14へのデータのストア、電源投入における不揮発素子14から保持回路13へのデータのリストアが正常に実行される。
(意図しない電源停止)
次に、図6を用いて、意図しない電源停止の場合について説明する。
図6は、意図しない電源停止時(異常な電源停止時)におけるタイミングチャートである。図6においては、初期状態として、電源がアクティブ(ON)であり、揮発データと不揮発データとが一致する状態(状態0)にあったものとする。
まず、レジスタRxにWE_x信号が入力され(T11)、レジスタRxに対して新たなるデータを保持回路13に書き込む指示が出されると、保持回路13にデータが書き込まれ、保持回路13の揮発データが更新される。図6には、Q_x[n]のデータが更新される様子で示している(T12)。Q_x[n]のデータ更新は、意図した電源停止時と同様である。
このとき、揮発データと不揮発データが異なることになるため、不揮発性メモリ21のVlaidビットは1の状態になる。図6では、VB_xがアクティブとなるように示している。VB_xがアクティブになる動作は、意図した電源停止時と同様である。なお、VB_xがアクティブになるタイミングは、T11とT12のいずれでもよい。
ここで、何らかの異常によって、電源が異常停止されたとする。このとき、意図した電源停止とは異なり、WB_x信号がレジスタに入力されず、不揮発素子14に保持された不揮発データは、電源停止時にストアされるべきデータに更新されていない状態を維持していることになる。この状態は、電源停止時においては、VB_x信号がアクティブであることによって確認できる。
本実施形態に係る半導体集積回路1では、レジスタRxの不揮発フリップフロップ11内部において、電源停止時にストアされるべきであった揮発データと、不揮発素子14に保持された不揮発データと、が異なることを、レジスタRxのValidビットVB_xが1の状態であることから確認できる。この情報が半導体集積回路1を含むシステムを利用するユーザに通知されれば、ユーザは次回の電源投入時に通常のシステム動作を実行させないように処置することができる。そのため、保持回路13は、一部の不揮発素子14に保持された間違った不揮発データ(R_x[n])を、揮発データ(Q_x[n])として保持回路13にリストアすることを防止でき、システム上の誤動作が起こらないようにすることできる。
また、意図しない電源停止が起こったことに気づかずに電源を投入したとしても、電源投入時にVB_x信号がアクティブであれば、いずれかのノードをアクティブとすることによってエラーフラッグ信号(Error信号)が出力され(T15)、システム動作が実行されない。すなわち、不揮発素子14のデータが間違ってリストアされたとしてもエラーフラグが立つために、システムが誤動作しないように対処される。なお、T16において、一部の不揮発データ(R_x[n])が揮発データ(Q_x[n])としてリストアされると、システムの誤動作につながる。
ただし、全ての不揮発データ(R_x[n])が正常であることが確認され、その全ての不揮発データ(R_x[n])を揮発データ(Q_x[n])としてリストアすれば、T11においてデータ更新する前の状態にシステムを復帰することができる。
なお、不揮発性メモリ21は、複数個の不揮発性メモリ21を1つのセットとして不揮発レジスタを構成し、その不揮発レジスタにアドレスを割り付けてもよい。このようにすることで、コード(ソフトウェアプログラム)上から直接動作を制御したり、データを読み出したりできる。
コード上から直接制御・読み出しできれば、電源再投入後の動作において、不揮発素子14のデータを揮発性データとしてリストアする必要のない不揮発レジスタ10に対しては、ストア、リストア動作を実行せずに、不揮発性メモリ21のみを0状態に書き換えることが可能である。nビットの不揮発レジスタ10にストアを実行するための電力をnxPとすると、不揮発性メモリ21のみを0状態にすれば、1/nの消費電力でオフ前の処理を済ませることができる。なお、Pは1つの不揮発素子14を書き換えるために必要な電力である。
本発明の第2の実施形態によれば、制御回路の最終段にラッチ回路を入れたエラー検出回路を設けることにより、電源投入時に検出したエラー判定を保持し続けることができる。したがって、電源投入後にシステムが動作を続けて、Validビットを書き換え続けてしまい、Validビットが全部0になることでエラー出力がノンアクティブになってしまうことを防止できる。
また、本発明の第2の実施形態に係る半導体集積回路によれば、エラーの発生時刻や、電源復帰後に得られたデータが正常動作の下で得られたか否かを判断することもできる。また、電源復帰後にエラービットの信号を割り込み信号として利用すれば、別途用意した復帰シーケンスを実行することによって、データ不整合が発生せずに正常動作が確保できる復帰プログラムから開始させることもできる。
(第3の実施形態)
本発明の第3の実施形態に係る半導体集積回路では、不揮発メモリ20が有する記憶領域に所定のアドレスを割り付ける。その他の構成については、第1の実施形態と同様である。
なお、WE信号とは、書き込み動作を指示するイネーブル信号(EN信号)と、アドレスデータが上記の所定アドレスと一致したことを示すMatch信号との論理積を取った信号である。すなわち、WE信号は、所定アドレスを有するレジスタRxへの書き込み動作指示信号となる。
不揮発メモリ20が有する記憶領域にアドレスが割り付けられている場合において、揮発素子14が保持する揮発データを更新する方法としては、図7及び図8に示すような方法を挙げられる。なお、以下の信号入力以外の動作は、第1の実施形態と同様である。
図7では、不揮発性フリップフロップ11の前段に論理積回路15を設けている。図7では、不揮発性フリップフロップ11に直接CLK信号を入力するのではなく、論理積回路15を介してCLK信号を入力する。すなわち、論理積回路15にCLK信号とWE信号とを入力し、それらの論理積を取ったゲーティングクロック信号を保持回路13に入力する。
図8では、不揮発性フリップフロップ11の前段にセレクタ16を設けている。図8では、不揮発性フリップフロップ11に直接データD[n]を入力するのではなく、セレクタ16を介してデータD[n]が入力される。すなわち、外部からのデータD[n]と不揮発レジスタの出力Q[n]をセレクタ16に入力し、WE信号によって出力を切り替えて、Q[n]のデータを更新する。
なお、WE信号の入力によってアドレスを指定する方法は、ここで挙げた限りではなく、不揮発メモリ20内部の記憶領域に所定のアドレスを指定できるような方法でありさえすればよい。
本発明の第3の実施形態に係る半導体集積回路によれば、不揮発メモリ20が有する記憶領域にアドレスを割り付け、WE信号をトリガーとして、指定されたアドレスのValidビット情報を所定のタイミングで更新することができる。そのため、所定のタイミングで揮発データを不揮発データとしてストアすることができ、よりシステムを安定化することができる。また、エラー発生時には、エラーが発生したレジスタRxを特定し、そのレジスタRxのみを更新することが可能となるため、システムの復旧を早めることが可能となる。
(第4の実施形態)
本発明の第4の実施形態に係る半導体集積回路4の制御回路27では、図9のように、不揮発性メモリ21と監視回路22との間に、不揮発性のマスク動作用メモリ26を追加している。その他の構成は、第1の実施形態と同様である。不揮発性メモリ21と、マスク動作用メモリ26と、監視回路22とは、制御回路27を構成する。
マスク動作用メモリ26は、各Validビットの後段に追加され、図9のように不揮発性メモリ21と別個に設けてもよいし、不揮発性メモリ21の内部の構成要素としてもよい。
マスク動作用メモリ26は、全てのレジスタR1〜Rmの後段に、それぞれのレジスタR1〜Rmに対応するマスク動作用メモリ26を設けておき、動作させるマスク動作用メモリ26をコード上で指定すればよい。例えば、図9のように、それぞれのレジスタR1〜Rmに対応するように、マスクMSK1〜MSKmを設ければよい。
また、全てのレジスタR1〜Rmに共通なマスク動作用メモリ26を設け、プログラム指定によってマスクするレジスタR1〜Rmを選択するようにしてもよい。また、半導体集積回路4の製造段階で、予め特定のレジスタRxのみをマスクするように設計し、マスクするレジスタRxの後段のみにマスク動作用メモリ26を設けてもよい。
マスク動作用メモリ26を含む制御回路27では、以下の式1の論理演算が実行され、その演算結果がノード30に出力される。なお、式1中の*は論理積を示し、+は論理和を示す。
(出力)=(VB1*MSK1)+(VB2*MSK2)+・・・(VBx*MSKx)+・・・(VBm*MSKm)(1)
すなわち、マスク動作用メモリ26を0の状態とするとマスクが機能し(ローアクティブ)、実際のレジスタRxの状態に関わらず、マスク対象となるValidビットは0の状態とみなされる。
電源再投入後の動作に対して、必ずしも不揮発素子14の不揮発データをリストアする必要のないレジスタRxに対しては、そのレジスタRxに対応するマスク動作用メモリ26(マスクMSKx)を0の状態にセットする。そうすれば、不揮発性メモリ21(ValidビットVBx)が1の状態を保持することを隠蔽して0の状態とみなされる。
本発明に係る第4の実施形態によれば、不揮発素子14のデータをリストアする必要のない不揮発レジスタ10が、各種電源のオン・オフパターンにおいて同一であるならば、不揮発素子14を書き換える回数がさらに減り、さらに省電力効果が高まる。
(第5の実施形態)
本発明の第5の実施形態に係る半導体集積回路5は、図10に示したように、不揮発レジスタ10と不揮発性メモリ21とノード30とに接続された検出回路50を備えている。不揮発性メモリ21及び検出回路50は、制御回路29を構成する。
検出回路50は、不揮発性メモリ21のValidビットを監視して不揮発レジスタ10の内部状態を検知し、その内部状態に応じてノード30を制御する。
検出回路50は、不揮発性メモリ21のValidビットが0ならば正常であると判定する。また、検出回路50は、Validビットが1であるならば異常があると判定し、ノード30をアクティブにする。
検出回路50は、図11のように、監視回路51と、判定回路52と、ノード制御回路53と、記憶装置54と、を有する。なお、検出回路50は、Validビットが1である場合に、半導体集積回路1が有するノード30をアクティブにしさえすれば、その内部構成は図11のとおりでなくてもよい。検出回路50は、半導体集積回路1に設けられた図示しない中央演算装置の構成要素に、図11の構成要素がもつ機能を割り当てることによって実現することができる。
監視回路51は、不揮発性メモリ21内部のValidビットを取得し、Validビットが0であるか1であるかを監視する。監視回路51は、第1〜4の実施形態に係る監視回路22と同様の構成とすればよく、少なくともOR回路を含む回路である。
監視回路51による監視結果は、判定回路31に送られる。すなわち、監視回路51は、Validビットが1の状態であれば、Validビットが1の状態であることを判定回路52に伝える。
判定回路52は、監視回路51の監視結果を基に、後述する不揮発性フリップフロップ11のノードを制御するか否かを判定する。本実施形態に係る判定回路52は、監視回路51の監視結果を受け、不揮発性メモリ21が含むValidビットのうち少なくとも一つが1である場合、ノードをアクティブとする制御を実行すると判定する。
ノード制御回路53は、判定回路52の判定結果を基に、ノード30を制御する。本実施形態に係るノード制御回路53は、判定回路52の判定結果が1である場合、ノード30をアクティブとする制御を実行する。なお、ノード制御回路53の出力をノード30そのものとみなしてもよい。
記憶装置54は、不揮発レジスタ10や不揮発性メモリ21、ノードを制御するためのプログラムコードを格納する。なお、記憶装置54は、プログラムコード以外のデータであっても格納することができる。
なお、監視回路22がなくても、判定回路52が、ノード30(出力ノード)と不揮発レジスタ10との相関を判定する機能を有し、電源投入時のみならず、あるレジスタRxが特定の値になったときにエラー判定の有無を実施する構成としてもよい。あるレジスタRxが特定になるタイミングとは、例えば、プログラムカウンタがあるコード番地に到達したときなどに設定することができる。
第5の実施形態の半導体集積回路によれば、ノードの動作を検出回路が有するノード制御回路によって制御する。そのため、第2の実施形態のラッチ回路や第4の実施形態のマスク動作用メモリがなくても、プログラムコードによって、ノードから出力する信号をValidビットの状態に応じて制御することができる。
また、第2の実施形態のラッチ回路や第4の実施形態のマスク動作用メモリと検出回路を共存させてもよい。その場合、検出回路には、ラッチ回路やマスク動作用メモリの動作を保障する役割をもたせることができる。
(第6の実施形態)
図12に示した第6の実施形態に係るコンピュータシステム6は、本発明の第1の実施形態に係る半導体集積回路1のノード30からの出力信号を受信し、その出力信号の情報を表示する表示手段61を有する。なお、第6の実施形態に係るコンピュータシステム6は、第1の実施形態に係る半導体集積回路5のみならず、第2〜5の実施形態に係る半導体集積回路のいずれかとしてもよい。
表示手段61は、不揮発性メモリ21の内部の状態(0か1)を表示し、不揮発性メモリ21内部の状態をモニターできるようにする。特定のレジスタRxの状態を区別できるようにモニターできることが好ましい。例えば、コンピュータや携帯端末装置などのモニターなどを表示手段61とし、不揮発レジスタ10の内部情報を表示するコンピュータシステムとすることができる。
表示手段61によれば、本実施形態の半導体集積回路1を含むコンピュータシステムを使用するユーザに対して、不揮発レジスタ10の内部情報を通知することができる。
表示手段61に0が表示されていれば、正常にシステムが停止されたことが確認できる。また、表示手段61に1が表示されていれば、意図しない電源停止が起きたことを確認できる。
表示手段61によって通知された情報をユーザが確認できれば、次の電源投入時において、1が表示された半導体集積回路のシステム動作を止めることによって、その半導体集積回路を含むシステム全体が誤作動することを防止することができる。
なお、表示手段61は、視覚情報のみならず、聴覚情報や触覚情報、嗅覚情報、味覚情報を通知するデバイスであってもよい。
(半導体集積回路の製造方法)
本発明の実施形態に係る半導体集積回路において、電源停止状態からの動作復帰には、製造直後のプログラムコードやデータが全く入っていない半導体集積回路1の初動時も含む。そのため、半導体集積回路1の製造工程の最終段階において、不揮発レジスタ10を監視する不揮発性メモリ21の状態を1とするように不揮発素子14に外部磁場を印加しておいてもよい。この場合、製造直後は、初期設定でエラーが発生しているという前提で不揮発性メモリ21の状態を1とする。
不揮発性メモリ21の状態を1にしておけば、1の状態にあるレジスタRxを操作しないと1が残ることになる。そのため、初期プログラムをロードして、全てのValidビットが0になっていることを確認できれば、逆説的に、不揮発レジスタ10への初期の書き込みが終了したことを確認できる。
また、製造工程終了時点において不揮発性メモリ21の状態が1になるように不揮発素子14に外部磁場を印加しておかなくても、少なくとも初期プログラムをロードしていない工場出荷段階において不揮発レジスタへの初期の書き込みを実行し、不揮発性メモリ21の状態を1としてもよい。工場出荷後に初期プログラムがロードされていれば、不揮発性メモリ21の状態が0に変わっていることから、不揮発レジスタ10への初期の書き込みが終了したことを確認できることになる。
(実施例)
ここで、本発明の第1の実施形態に係る不揮発性フリップフロップ11の一例として、図13の不揮発性フリップフロップ110について説明する。なお、図13に示した不揮発性フリップフロップ110は、特許文献3に記載されたものと同様の構成である。
図13を参照すると、本実施例に係る不揮発性フリップフロップ110は、マスタラッチ111と、不揮発素子140を含むスレーブラッチ112と、を備える。不揮発性フリップフロップ110は、通常のフリップフロップと同様に、前段のマスタラッチ111と、後段のスレーブラッチ112と、を備えるラッチ回路から成る。特に、不揮発素子140を含む不揮発性フリップフロップの後段回路(スレーブラッチ112)を不揮発ラッチともよぶ。不揮発素子140は、不揮発素子R1及びR2で構成される。
(クロック発生回路)
図14に示したクロック発生回路113は、本実施例に係る不揮発性フリップフロップ110の外部に設けられ、CLK信号を発生させる。クロック発生回路113は、インバータINV5及びINV6を有する。なお、クロック発生回路113は、半導体集積回路1に含まれてもよいし、半導体集積回路1の外部に設けられたものであってもよい。
不揮発性フリップフロップ110には、インバータINV5の出力であるP1信号と、インバータINV5及びINV6の出力であるP2信号とが入力される。P1信号はCLK信号と逆相であり、P2信号はCLK信号と同相であり、それぞれ不揮発性フリップフロップ110のクロック信号として機能する。
(マスタラッチ)
図13に示すように、マスタラッチ111は、第1のクロックドインバータ121と、第1のインバータINV1と、第2のクロックドインバータ122と、第2のインバータINV2と、を備えている。
第1のクロックドインバータ121は、PMOSトランジスタT1及びT2、NMOSトランジスタT3及びT4を含む(PMOS: p−Channel Metal−Oxide Semiconductor、NMOS:n−Channel Metal−Oxide Semiconductor)。
PMOSトランジスタT1は、ソースが電源端(VDD)に、ドレインがPMOSトランジスタT2のソースに、ゲートがデータ端子Dに接続されている。PMOSトランジスタT2は、ソースがPMOSトランジスタT1のドレインに、ドレインがNMOSトランジスタT3のドレインに、ゲートがP2ノードに接続されている。
NMOSトランジスタT3は、ドレインがPMOSトランジスタT2のドレインに、ソースがNMOSトランジスタT4のドレインに、ゲートがP1ノードに接続されている。NMOSトランジスタT4は、ドレインがNMOSトランジスタT3のソースに、ソースがグランド(GND)に、ゲートがデータ入力端子Dに接続されている。
第1のインバータINV1は、第1のクロックドインバータの出力となるトランジスタT2とT3のドレインの接続点に入力が接続されている。
第2のクロックドインバータ122は、PMOSトランジスタT5及びT6、NMOSトランジスタT7及びT8からなる。
PMOSトランジスタT5は、ソースが電源端(VDD)に、ドレインがPMOSトランジスタT6のソースに、ゲートが第1のインバータINV1の出力に接続されている。PMOSトランジスタT6は、ソースがPMOSトランジスタT5のドレインに、ドレインがNOMSトランジスタT7のドレインに、ゲートがP1ノードに接続されている。
NMOSトランジスタT7は、ドレインがPMOSトランジスタT6のドレインに、ソースがNMOSトランジスタT8のドレインに、ゲートがP2ノードに接続されている。NMOSトランジスタT8は、ドレインがNMOSトランジスタT7のソースに、ソースがグランド(GND)に、ゲートが第1のインバータINV1の出力に接続されている。
第2のインバータINV2の入力には、第1のインバータINV1の出力が接続されている。
第1のインバータINV1と、第2のクロックドインバータ122とは、保持回路131(双安定回路)を構成する。なお、保持回路131は、揮発的にデータを保持する機能を有するものの、本実施例でいうところの保持回路ではなく、マスタラッチの構成要素となる。
CLK信号がHigh(P1信号:Low、P2信号:High)のとき、第2のクロックドインバータ122はオンとなり、インバータとして作動する。すなわち、第2のクロックドインバータ122は、第1のインバータINV1とともにフリップフロップを構成する。
CLK信号がLow(P1信号:High、P2信号:Low)のとき、第2のクロックドインバータ122はオフとなり、インバータINV1のみが機能する。このとき、データ入力端子Dの信号は、第1のクロックドインバータ121で反転され、インバータINV1に入力されて反転される。
また、CLK信号がHigh(P1信号:Low、P2信号:High)のとき、第1のクロックドインバータ121はオフとなり、データ入力端子Dの信号は第1のインバータINV1へ伝達されない。このとき、第2のクロックドインバータ122がオンとなり、インバータINV1とオン状態の第2のクロックドインバータとがフリップフロップ(双安定回路)を構成する。
マスタラッチ111のデータは、ノードN1で保持される。また、インバータINV2で反転されたデータは、ノードN2で保持される。
ノードN1及びN2に保持されるデータは、P2信号がHigh(CLK信号:High)のときにオン状態とされるトランジスタT9とT10を介して、スレーブラッチ112の保持ノードN3及びN4にそれぞれ入力される。P2信号がLow(CLK信号:Low)のとき、トランジスタT9及びT10はオフし、ノードN1及びN2とスレーブラッチのノードN3及びN4とはそれぞれ電気的に非接続とされる。
(スレーブラッチ)
図13に示すように、スレーブラッチ112は、保持回路132と、不揮発素子140と、書き込み用トランジスタ125と、プリチャージ・イコライズ回路126と、を備えている。
(保持回路)
保持回路132は、PMOSトランジスタT11及びT13、NMOSトランジスタT12及びT14を有する。トランジスタT11−T14は、本発明の実施形態に係る保持回路である保持回路132を形成する。
保持回路132と不揮発素子140との間ではデータの授受が行われる。不揮発性フリップフロップ110は、保持回路132のデータを不揮発素子140へ書き込む機能と、不揮発素子14から保持回路132へデータをロードする機能と、を有する。
保持回路132は、PMOSトランジスタT11及びNMOSトランジスタT12からなる第1のCMOSインバータ123と、PMOSトランジスタT13及びNMOSトランジスタT14からなる第2のCMOSインバータ124と、を備えている。PMOSトランジスタT11及びT13のソースは電源端(VDD)に接続され、PMOSトランジスタT11とT13のドレインは、それぞれNMOSトランジスタT12とT14のドレインに接続される。NMOSトランジスタT13とT15のソースは、それぞれ後述する不揮発素子R1及びR2の第1端子に接続される。
トランジスタT11及びT12との共通接続されたゲートは、第1のCMOSインバータ123の入力ノードとなり、ノードN4に接続されている。トランジスタT11及びT12の共通接続されたドレインは、第1のCMOSインバータ123の出力ノードとなり、ノードN3に接続されている。
トランジスタT13及びT14の共通接続されたゲートは、第2のCMOSインバータ124の入力ノードとなり、ノードN3に接続されている。トランジスタT13及びT14の共通接続されたドレインは、第2のCMOSインバータ124の出力ノードとなり、ノードN4に接続されている。
(書き込み用トランジスタ)
書き込み用トランジスタ125は、NMOSトランジスタT15、T16、T17及びT18を有している。NMOSトランジスタT15とT17では、ドレインが電源端(VDD)に接続され、ソースがNMOSトランジスタT16とT18のドレインに接続されている。NMOSトランジスタT16とT18のドレインは、NMOSトランジスタT15とT17のソースに接続され、ソースはグランド(GND)に接続される。
(不揮発素子)
不揮発素子140は、不揮発素子R1及びR2を有している。
不揮発素子R1の第1端子はトランジスタT12のソースに接続され、第2端子はトランジスタT15とT16の接続ノードN5に接続される。不揮発素子R2の第1端子はトランジスタT14のソースに接続され、第2端子はトランジスタT15とT16の接続ノードN5と、トランジスタT17とT18の接続ノードN6と、に接続される。なお、不揮発素子R1とR2を強磁性トンネル接合素子(MTJ:Magnetic Tunnel Junction)で構成する場合、互いの第3端子同士を接続する。
トランジスタT15及びT16の共通接続されたドレイン(ノードN5)と、トランジスタT17及びT18の共通接続されたドレイン(ノードN6)は、互いに接続される。
ノードN5及びN6の接続ノードは、NMOSトランジスタT19のドレインに接続される。NOMSトランジスタT19は、ドレインがノードN5及びN6の接続ノードに接続され、ソースがGNDに接続され、ゲートが書き込み時にLowとなるWB信号の入力に接続される。
トランジスタT19は、WB信号がHighのとき、すなわち書き込みしないときはオンとなり、トランジスタT12とT14のソースを不揮発素子R1とR2を介してGNDに接続する。
(プリチャージ・イコライズ回路)
スレーブラッチ112は、さらに、電源端(VDD)とノードN3との間に接続されたPMOSトランジスタT21と、電源端(VDD)とノードN4との間に接続されたPMOSトランジスタT22と、ノードN3とN4との間に接続されたPMOSトランジスタT20を備える。トランジスタT20〜T22のゲートは、LB信号の入力に共通接続されている。
トランジスタT20〜T22は、プリチャージ・イコライズ回路126を構成し、制御信号LBがLowのとき、ノードN3とN4を電源電位にプリチャージ・イコライズする。
(2入力NOR回路)
スレーブラッチ112は、さらに、書き込み用の2入力NOR回路NOR1及びNOR2とを備える。2入力NOR回路NOR1は、ノードN3及びWBノードに入力が接続され、トランジスタT16及びT17のゲートに出力が接続される。2入力NOR回路NOR2は、ノードN4及びWBノードに入力が接続され、トランジスタT18及びT15のゲートに出力が接続される。WB信号がLowのとき、2入力NOR回路NOR1及びNOR2は、それぞれノードN3及びN4を反転した信号を出力する。
(反転バッファ)
スレーブラッチ112は、さらに、ノードN3とN4のそれぞれに入力端子が接続された出力用のインバータINV3とINV4を備えている。インバータINV3とINV4は、反転バッファとなる。
(信号)
スレーブラッチ112において、保持回路132にラッチされた相補のデータ(ノードN3とN4のデータ)は、2入力NOR回路NOR1及びNOR2それぞれの第1の入力に入力される。
WB信号は、トランジスタT19のゲートと、2入力NOR回路NOR1及びNOR2の第2の入力に入力される。
2入力NOR回路NOR1の出力は、トランジスタT17のゲートに接続されている。2入力NOR回路NOR2の出力は、トランジスタT15のゲートに接続されている。
LB信号は、トランジスタT20−22のゲートに入力される。LB信号がLowのとき、ノードN3及びN4は電源電位にプリチャージ・イコライズされる。
出力信号Qは、ノードN3に入力が接続されたインバータINV4から出力される。出力信号QBは、ノードN4に入力が接続されたインバータINV3から出力される。
図14に示したインバータINV5及びINV6でそれぞれ生成された相補のクロック信号となるP1信号及びP2信号は、第1及び第2のクロックドインバータに供給される。また、P2信号はトランジスタT9及びT10のゲートにも供給される。
図13に示した不揮発性フリップフロップ110は、既存のフリップフロップの機能に加え、下記の2つの機能を備えている。
第1に、スレーブラッチ112の保持回路132に電気的に記憶しているデータを不揮発素子R1及びR2へ書き込むことができる(ストア)。第2に、不揮発素子140(R1・R2)に蓄えられているデータを読み出し、読み出したデータをスレーブラッチ112の保持回路で保持することができる(リストア)。
(MTJ素子)
不揮発素子R1・R2には、例えば、磁気抵抗効果を利用した強磁性トンネル接合素子(MTJ素子)が用いられる(MTJ:Magnetic Tunnel Junction)。
MTJ素子とは、磁化方向が変化する強磁性層(フリー層)と、磁化方向が固定された強磁性層(固定層)と、フリー層と固定層の間に形成される絶縁層を含む構成を備えている素子である。MTJ素子に対して膜面垂直方向に電流を流した際の抵抗値は、フリー層と固定層の磁化の方向によって変化する。フリー層の磁化と固定層の磁化が平行の場合、抵抗値は低く、フリー層の磁化と固定層の磁化が反平行の場合、抵抗値は高くなる。
この性質を利用して、MTJ素子では、抵抗値もしくはフリー層の磁化の方向に論理データを対応付ける。例えば、低抵抗状態を論理値0、高抵抗状態を論理値1とすることができる。MTJ素子の書き込みは、電流磁界を用いてフリー層の磁化方向を制御する磁場書き込み方式や、スピントルク効果を利用してフリー層の磁化方向を制御するスピントルク書き込み方式によって行うことができる。
なお、不揮発性フリップフロップ及び不揮発ラッチとして用いる不揮発性素子は、MTJ素子に限らず、電源をオフにした状態でも記憶状態を保持する不揮発素子でありさえすればよい。例えば、不揮発素子として、フラッシュメモリや強誘電体メモリ(FeRAM)、抵抗変化型メモリ(ReRAM)、相変化型メモリ(PRAM)を用いることができる(FeRAM:Ferroelectric Random Access Memory、ReRAM:Resistance Random Access Memory、PRAM:Phase change Random Access Memory)。ただし、不揮発性フリップフロップ及び不揮発ラッチとして用いる不揮発性素子は、論理回路上に配置されるため、高い書き換え性能が要求される。そのため、磁気抵抗メモリ(MRAM)のように、劣化なく何度でも変化させることが可能な磁性状態を記憶データとして対応させるメモリが不揮発性素子として最適である。
図13の不揮発性フリップフロップ112に含まれる不揮発素子140としては、例えば、図15に示したような磁壁移動型素子を用いることができる。図15に断面を示した磁壁移動型素子では、スピントルク効果を利用して書き込みを行う。なお、図15に示した磁壁移動型素子は、特許文献3に示されたものと同様の構成である。また、不揮発素子に接続されるトランジスタ(図13のトランジスタT12、T14、T15、T16、T17及びT18)は、図15においてはいずれも回路図記号で示されている。
図15に示した不揮発素子140は、フリー層(203、213)内の磁壁移動によってデータを保持し、磁気トンネル接合(MTJ)を利用してフリー層(203、213)の磁化状態を読み出す、3端子構造の磁壁移動型素子である。
図15の不揮発素子140(磁壁移動型素子)は、基板の表面又は内部に形成され、メタル層(206、207、216)、第1ハード層(204、214)、第2ハード層(205、215)、フリー層(203、213)、絶縁層(202、212)、リファレンス層(201、211)を含む。
図15の不揮発素子R1において、リファレンス層201は不揮発レジスタのトランジスタT12に、第1ハード層204はトランジスタT15とT16の接続点に接続される。例えば、不揮発素子としてMTJを用いる場合、図13のノードN5(N6)は、不揮発素子の第1ハード層204(214)を接続するメタル層206(216)を介して接続される。
第2ハード層205は、メタル層207、第2ハード層215及び不揮発素子R2の第1ハード層214を介して、トランジスタT17及びT18の接続点に接続される。例えば、不揮発素子としてMTJを用いる場合、メタル層207は、図13のノードN5及びN6の接続ノードとなって、NMOSトランジスタT19のドレインに接続される。
例えば、フリー層及びハード層として垂直磁気異方性を有する磁性薄膜を利用すると、第1ハード層204と第2ハード層205の磁化方向は逆向きに固定されている。
フリー層203の磁化は、スピン偏極電流の向きによって、図15のZ方向に沿って上下にコントロールできる。例えば、第1ハード層204から第2ハード層205に向かって電流を流した場合、偏極した電子は逆向きに流れ、第2ハード層205と同じ向きにフリー層203の磁化は揃う。逆に、第2ハード層205から第1ハード層204に向かって電流を流した場合、第1ハード層204と同じ向きにフリー層203の磁化は揃う。以上の作用は、不揮発素子R2についても同様である。
(変形例)
本発明の別の実施例に係る不揮発性フリップフロップ11は、マスタラッチ111のデータを不揮発素子14へ書き込む機能と、不揮発素子14からマスタラッチ111へデータをロードする機能を有していてもよい。また、別の実施例に係る不揮発性フリップフロップ11は、マスタラッチ111のデータを不揮発素子14へ書き込む機能と、不揮発素子14からスレーブラッチ112へデータをロードする機能を有していてもよい。また、別の実施例に係る不揮発性フリップフロップ11は、スレーブラッチ112のデータを不揮発素子14へ書き込む機能と、不揮発素子14からマスタラッチ111へデータをロードする機能を有していてもよい。
(ストア動作)
ここで、図13を参照して、不揮発レジスタへのストア動作を説明する。
WB信号をLowとすることで、ストア動作を実行できる。
不揮発素子R1及びR2への書き込みデータは、スレーブラッチ112のデータQに対応する。
インバータINV4の出力データQが0の場合(Low)の場合、ノードN4はHigh(電源電位)、ノードN3はLowとなり、2入力NOR回路NOR2の出力はLow、2入力NOR回路NOR1の出力はHighとなる。このとき、トランジスタT16とT17がオン、トランジスタT15とT18がオフになり、ノードN6(High)からノードN5(Low)へ書き込み電流が流れる。
その結果、不揮発素子R1は低抵抗状態、不揮発素子R2は高抵抗状態になり、不揮発素子は、データQに対応したデータ0を記憶する。
一方、データQが1の場合(High)、ノードN3は電源電位(High)、ノードN4はLowとなり、2入力回路NOR1の出力はLow、2入力回路NOR2の出力はHighとなる。このとき、トランジスタT16とT17がオフ、トランジスタT15とT18がオンになり、ノードN5(High)からノードN6(Low)へ書き込み電流が流れる。
その結果、不揮発素子R1は高抵抗状態、不揮発素子R2は低抵抗状態になり、不揮発素子は、データQと対応したデータ1を記憶する。
(リストア動作)
次に、図13を参照して、不揮発レジスタからのリストア動作を説明する。
LB信号をLowとすることで、リストア動作を実行できる。このとき、CLK信号はLowである(P1信号:High、P2信号:Low)。そのため、トランジスタT20、T21及びT22はオンとなり、ノードN3及びN4はHigh(電源電位)にプリチャージ・イコライズされる。
ノードN4がHighとなると、ノードN4の電位(High)をゲートに受けるトランジスタT12はオン状態とされ、電源端(VDD)、ノードN3からトランジスタT12を介して不揮発素子R1に読み出し電流が流れる。
また、ノードN4がHighとなると、ノードN3の電位(High)をゲートに受けるトランジスタT14はオン状態とされ、電源、ノードN4からトランジスタT14を介して不揮発素子R2に読み出し電流が流れる。
なお、リストア動作において、WB信号はHighとされ、トランジスタT19がオンとされ、不揮発素子R1とR2に流れる読み出し電流はGNDに流れ込む。これらの読み出し電流の差に応じて、ノードN3とノードN4には微小な電位差が生じる。
次に、LB信号がLowからHighに変化すると、トランジスタ20−22がオフし、トランジスタT11−14の保持回路132(差動ラッチ)により、ノードN3とN4との間の電位差が増幅される。不揮発素子に記憶しているデータが0の場合、不揮発素子R1は低抵抗状態、不揮発素子R2は高抵抗状態であるため、ノードN3はLowレベル、ノードN4はHighレベルになる。ノードN4の電位は、インバータINV4で反転され、出力端子QはLowレベルとなる。すなわち、出力端子Qのデータは、不揮発素子のデータに対応した0となる。
一方、不揮発素子に記憶しているデータが1の場合、不揮発素子R1は高抵抗状態、不揮発素子R2は低抵抗状態であるため、ノードN3はHighレベル、ノードN4はLowレベルになり、出力端子QはHighレベルとなる。すなわち、出力端子Qのデータは、不揮発素子のデータに対応した1となる。
以上が、本発明の第1の実施形態に係る実施例1の不揮発性フリップフロップ110に関する説明である。なお、本発明の実施形態に係る半導体集積回路は、実施例で説明した不揮発性フリップフロップ110を含む構成となる。
以上、実施形態及び実施例を参照して本発明を説明してきたが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態・実施例の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、
前記不揮発性メモリの後段に設けられ、前記不揮発レジスタの内部における前記一致・不一致の状態をモニターし、前記不揮発性メモリの状態に応じた信号を出力する監視回路と、
前記監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備え、
電源立ち上げ動作時において、前記不揮発性メモリが前記第2の値を保持する場合、前記監視回路が前記ノードにアクティブな信号を供給することを特徴とする半導体集積回路。
(付記2)
前記不揮発性メモリは、
前記揮発性データを更新すると前記第2の値を保持し、
更新した前記揮発性データを前記不揮発性データとして前記不揮発素子に記憶させると前記第1の値を保持し、
前記不揮発素子に記憶されている前記不揮発性データを前記保持回路に復帰させると前記第1の値を保持する、ことを特徴とする付記1に記載の半導体集積回路。
(付記3)
前記電源立ち上げ動作時に、前記アクティブ状態の信号が割り込み信号として前記内部演算装置に供給され、
前記内部演算装置は、
前記割り込み信号に応じて割り込み処理を開始することを特徴とする付記1又は2に記載の半導体集積回路。
(付記4)
前記不揮発性メモリが有する記憶領域にはメモリ空間上のアドレスが割り付けられ、
前記不揮発性メモリは、
前記アドレスを指定する書き込み信号に応じて、指定された前記アドレスが割り付けられた前記記憶領域に保持された状態を書き換えることを特徴とする付記1乃至3のいずれか一項に記載の半導体集積回路。
(付記5)
前記不揮発性メモリは、
前記割り込み信号に応じて、所定の前記アドレスを割り付けられた前記記憶領域のデータを書き換えることを特徴とする付記4に記載の半導体集積回路。
(付記6)
前記不揮発性メモリは、
前記割り込み信号に応じて、所定の前記アドレスを割り付けられた前記記憶領域に前記ノードにアクティブ状態の信号が供給された時刻を記録することを特徴とする付記4又は5のいずれか一項に記載の半導体集積装置。
(付記7)
電源の立ち下げ前の動作において、前記不揮発性メモリの前記記憶領域のうち少なくとも一つを前記第1の値にする処理を行うことを特徴とする付記1乃至6のいずれか一項に記載の半導体集積回路。
(付記8)
前記電源の立ち下げ前の動作において、前記不揮発性メモリの前記記憶領域のうち全てを前記第1の値にする処理を行うことを特徴とする付記1乃至7のいずれか一項に記載の半導体集積回路。
(付記9)
前記不揮発性メモリが含む前記記憶領域のうち少なくとも一つを隠蔽するマスク動作用不揮発性メモリを前記不揮発性メモリの後段に備え、
前記監視回路は、
前記マスク動作用不揮発性メモリが前記第1の値にセットされると、前記マスク動作用不揮発性メモリの前段にある前記記憶領域の状態は、前記記憶領域の状態に関わらず前記マスク動作用不揮発性メモリを介して前記第1の値を保持するものとみなすことを特徴とする付記1乃至8のいずれか一項に記載の半導体集積回路。
(付記10)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む複数の不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態を保持する記憶領域を有する不揮発性メモリと、
前記不揮発レジスタ及び前記不揮発性メモリの内部の状態をモニターするとともに前記ノードを制御する検出回路と、
前記検出回路からの出力を内部演算装置又は外部装置に出力するノードと、を備え、
前記検出回路は、
電源立ち上げ動作時に、前記不揮発性メモリ内部における前記揮発性データと前記不揮発性データとの前記一致・不一致の状態をモニターし、前記一致・不一致の状態が不一致である場合に前記ノードをアクティブとする制御を実行することを特徴とする半導体集積回路。
(付記11)
前記検出回路は、
前記電源立ち上げ動作時に前記不揮発性メモリの内部状態を監視する監視回路と、
前記監視回路の監視結果に基づいて前記揮発性データと前記不揮発性データとの前記一致・不一致の状態を判定する判定回路と、
前記判定回路の判定結果に基づいて前記ノードを制御するノード制御回路と、
前記監視回路、前記判定回路及び前記ノード制御回路の設定条件を格納する記憶回路と、を含むことを特徴とする請求項10に記載の半導体集積回路。
(付記12)
出荷時点において前記不揮発性メモリの有する前記記憶領域の全てが前記第2の値であることを特徴とする付記1乃至11のいずれか一項に記載の半導体集積回路。
(付記13)
製造工程終了時点において前記不揮発性メモリの有する前記記憶領域の全てが前記第2の値であることを特徴とする付記1乃至11のいずれか一項に記載の半導体集積回路。
(付記14)
製造工程終了時点において前記不揮発性メモリの有する前記記憶領域の全てを前記第2の値にセットすることを特徴とする付記1乃至11のいずれか一項に記載の半導体集積回路の製造方法。
(付記15)
請求項1乃至13のいずれか一項に記載の半導体集積回路を含み、
前記不揮発性メモリの内部状態を表示する表示手段を備えることを特徴とするコンピュータシステム。
(付記16)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、
前記不揮発性メモリの後段に設けられ、前記不揮発レジスタの内部における前記一致・不一致の状態をモニターし、前記不揮発性メモリの状態に応じた信号を出力する監視回路と、
前記監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御方法であって、
電源立ち上げ動作時において、前記不揮発性メモリが前記第2の値を保持する場合に、前記監視回路から前記ノードにアクティブな信号を供給させることを特徴とする半導体集積回路の制御方法。
(付記17)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む複数の不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態を保持する記憶領域を有する不揮発性メモリと、
前記不揮発レジスタ及び前記不揮発性メモリの内部の状態をモニターするとともに前記ノードを制御する検出回路と、
前記検出回路からの出力を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御方法であって、

電源立ち上げ動作時に、前記不揮発性メモリ内部における前記揮発性データと前記不揮発性データとの前記一致・不一致の状態をモニターし、前記一致・不一致の状態が不一致である場合に前記ノードをアクティブとする制御を前記検出回路に実行させることを特徴とする半導体集積回路の制御方法。
(付記18)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、
前記不揮発性メモリの後段に設けられ、前記不揮発レジスタの内部における前記一致・不一致の状態をモニターし、前記不揮発性メモリの状態に応じた信号を出力する監視回路と、
前記監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御プログラムであって、
電源立ち上げ動作時において、前記不揮発性メモリが前記第2の値を保持する場合、前記監視回路から前記ノードにアクティブな信号を供給させる処理をコンピュータに実行させることを特徴とする半導体集積回路の制御プログラム。
(付記19)
揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む複数の不揮発レジスタと、
前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態を保持する記憶領域を有する不揮発性メモリと、
前記不揮発レジスタ及び前記不揮発性メモリの内部の状態をモニターするとともに前記ノードを制御する検出回路と、
前記検出回路からの出力を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御プログラムであって、
電源立ち上げ動作時に、前記不揮発性メモリ内部における前記揮発性データと前記不揮発性データとの前記一致・不一致の状態をモニターし、前記一致・不一致の状態が不一致である場合、前記ノードをアクティブとする制御を実行する処理をコンピュータに実行させることを特徴とする半導体集積回路の制御プログラム。
1、2、4、5 半導体集積回路
10 不揮発レジスタ
11 不揮発性フリップフロップ
13 保持回路
14 不揮発素子
15 論理積回路
16 セレクタ
20 制御回路
21 不揮発性メモリ
22 監視回路
24 ラッチ回路
25 エラー検出回路
26 マスク動作用メモリ
27、29 制御回路
30 ノード
31 クロック端子
32 入力端子
33 出力端子
34 ストア端子
35 リストア端子
50 検出回路
51 監視回路
52 判定回路
53 ノード制御回路
54 記憶装置
60 内部演算装置/外部装置
61 表示手段
110 不揮発性フリップフロップ
111 マスタラッチ
112 スレーブラッチ
113 クロック発生回路
121 第1のクロックドインバータ
122 第2のクロックドインバータ
123 第1のCMOSインバータ
124 第2のCMOSインバータ
125 書き込み用トランジスタ
126 プリチャージ・イコライズ回路
131、132 保持回路
140 不揮発素子
201 リファレンス層
203 フリー層
204、214 第1ハード層
205、215 第2ハード層
206、207 メタル層

Claims (10)

  1. 揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
    前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、
    前記不揮発性メモリの後段に設けられ、前記不揮発レジスタの内部における前記一致・不一致の状態をモニターし、前記不揮発性メモリの状態に応じた信号を出力する監視回路と、
    前記監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備え、
    電源立ち上げ動作時において、前記不揮発性メモリが前記第2の値を保持する場合、前記監視回路が前記ノードにアクティブな信号を供給することを特徴とする半導体集積回路。
  2. 前記電源立ち上げ動作時に、前記アクティブ状態の信号が割り込み信号として前記内部演算装置に供給され、
    前記内部演算装置は、
    前記割り込み信号に応じて割り込み処理を開始することを特徴とする請求項1に記載の半導体集積回路。
  3. 前記不揮発性メモリが有する記憶領域にはメモリ空間上のアドレスが割り付けられ、
    前記不揮発性メモリは、
    前記アドレスを指定する書き込み信号に応じて、指定された前記アドレスが割り付けられた前記記憶領域に保持された状態を書き換えることを特徴とする請求項1又は2に記載の半導体集積回路。
  4. 前記不揮発性メモリは、
    前記割り込み信号に応じて、所定のアドレスを割り付けられた前記記憶領域のデータを書き換えることを特徴とする請求項3に記載の半導体集積回路。
  5. 電源の立ち下げ前の動作において、前記不揮発性メモリの前記記憶領域のうち少なくとも一つを前記第1の値にする処理を行うことを特徴とする請求項1乃至4のいずれか一項に記載の半導体集積回路。
  6. 前記不揮発性メモリが含む前記記憶領域のうち少なくとも一つを隠蔽するマスク動作用不揮発性メモリを前記不揮発性メモリの後段に備え、
    前記監視回路は、
    前記マスク動作用不揮発性メモリが前記第1の値にセットされると、前記マスク動作用不揮発性メモリの前段にある前記記憶領域の状態は、前記記憶領域の状態に関わらず前記マスク動作用不揮発性メモリを介して前記第1の値を保持するものとみなすことを特徴とする請求項1乃至5のいずれか一項に記載の半導体集積回路。
  7. 揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む複数の不揮発レジスタと、
    前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態を保持する記憶領域を有する不揮発性メモリと、
    前記不揮発レジスタ及び前記不揮発性メモリの内部の状態をモニターするとともに前記ノードを制御する検出回路と、
    前記検出回路からの出力を内部演算装置又は外部装置に出力するノードと、を備え、
    前記検出回路は、
    電源立ち上げ動作時に、前記不揮発性メモリ内部における前記揮発性データと前記不揮発性データとの前記一致・不一致の状態をモニターし、前記一致・不一致の状態が不一致である場合に前記ノードをアクティブとする制御を実行することを特徴とする半導体集積回路。
  8. 製造工程終了時点において前記不揮発性メモリが含む前記記憶領域の全てを前記第2の値にセットすることを特徴とする請求項1乃至7のいずれか一項に記載の半導体集積回路の製造方法。
  9. 請求項1乃至7のいずれか一項に記載の半導体集積回路を含み、
    前記不揮発性メモリの内部状態を表示する表示手段を備えることを特徴とするコンピュータシステム。
  10. 揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子と、を含む少なくとも一つの不揮発レジスタと、
    前記不揮発レジスタの内部における前記揮発性データと前記不揮発性データとの一致・不一致の状態として、一致するならば第1の値を保持し、不一致ならば第2の値を保持する記憶領域を有する不揮発性メモリと、
    前記不揮発性メモリの後段に設けられ、前記不揮発レジスタの内部における前記一致・不一致の状態をモニターし、前記不揮発性メモリの状態に応じた信号を出力する監視回路と、
    前記監視回路から供給された信号を内部演算装置又は外部装置に出力するノードと、を備えた半導体集積回路の制御方法であって、
    電源立ち上げ動作時において、前記不揮発性メモリが前記第2の値を保持する場合、前記監視回路から前記ノードにアクティブな信号を供給させることを特徴とする半導体集積回路の制御方法。
JP2013101822A 2013-05-14 2013-05-14 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法 Pending JP2014222425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013101822A JP2014222425A (ja) 2013-05-14 2013-05-14 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013101822A JP2014222425A (ja) 2013-05-14 2013-05-14 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法

Publications (1)

Publication Number Publication Date
JP2014222425A true JP2014222425A (ja) 2014-11-27

Family

ID=52121922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013101822A Pending JP2014222425A (ja) 2013-05-14 2013-05-14 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法

Country Status (1)

Country Link
JP (1) JP2014222425A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123134A (ja) * 2016-01-06 2017-07-13 国立大学法人東北大学 半導体装置
JP2018107626A (ja) * 2016-12-26 2018-07-05 国立大学法人東北大学 不揮発性ラッチ装置及び不揮発性フリップフロップ装置
WO2019073788A1 (ja) * 2017-10-11 2019-04-18 ソニーセミコンダクタソリューションズ株式会社 半導体回路およびその制御方法
CN113644193A (zh) * 2021-06-29 2021-11-12 北京大学 阻变存储器件的制备方法、装置、电子设备和存储介质
WO2022107670A1 (ja) * 2020-11-17 2022-05-27 ソニーセミコンダクタソリューションズ株式会社 半導体回路

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123134A (ja) * 2016-01-06 2017-07-13 国立大学法人東北大学 半導体装置
JP2018107626A (ja) * 2016-12-26 2018-07-05 国立大学法人東北大学 不揮発性ラッチ装置及び不揮発性フリップフロップ装置
WO2019073788A1 (ja) * 2017-10-11 2019-04-18 ソニーセミコンダクタソリューションズ株式会社 半導体回路およびその制御方法
CN111164892A (zh) * 2017-10-11 2020-05-15 索尼半导体解决方案公司 半导体电路及其控制方法
US11038494B2 (en) 2017-10-11 2021-06-15 Sony Semiconductor Solutions Corporation Semiconductor circuit and method of controlling same
CN111164892B (zh) * 2017-10-11 2023-11-28 索尼半导体解决方案公司 半导体电路及其控制方法
WO2022107670A1 (ja) * 2020-11-17 2022-05-27 ソニーセミコンダクタソリューションズ株式会社 半導体回路
CN113644193A (zh) * 2021-06-29 2021-11-12 北京大学 阻变存储器件的制备方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
JP6030085B2 (ja) キャッシュメモリおよびプロセッサシステム
US6639834B2 (en) Data register and access method thereof
US20140149773A1 (en) Latch circuit and data processing system
US9780788B2 (en) Muller C-element as majority gate for self-correcting triple modular redundant logic with low-overhead modes
JP2014222425A (ja) 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
JP2010282411A (ja) 半導体集積回路、半導体集積回路の内部状態退避回復方法
JP2016054472A (ja) 半導体装置
JP6372203B2 (ja) データ保持回路および保持データ復元方法
TW201447905A (zh) 整合式位準移位鎖存電路及這種鎖存電路的操作方法
WO2016185903A1 (ja) 不揮発性記憶回路
JP4883621B2 (ja) 半導体集積回路
US9135988B2 (en) Semiconductor device and control method of the same
JP5999097B2 (ja) 半導体集積回路及びその制御方法
JP2009302254A (ja) 半導体装置
CN107683506B (zh) 半导体设备
US20230017888A1 (en) Low-power retention flip-flop
US11990909B2 (en) Low power retention flip-flop
JP2004078772A (ja) マイクロコンピュータ装置の待機時の処理方法およびマイクロコンピュータ装置
US9013218B2 (en) Dual-port negative level sensitive reset data retention latch
US10613617B2 (en) Semiconductor apparatus
JP2016031768A (ja) データ転送回路
US9270257B2 (en) Dual-port positive level sensitive reset data retention latch
US9088271B2 (en) Dual-port positive level sensitive data retention latch
US9007091B2 (en) Dual-port positive level sensitive preset data retention latch
JP2012242287A (ja) 試験可能な不揮発論理ゲート