JP2019071577A - 半導体回路およびその制御方法 - Google Patents

半導体回路およびその制御方法 Download PDF

Info

Publication number
JP2019071577A
JP2019071577A JP2017197486A JP2017197486A JP2019071577A JP 2019071577 A JP2019071577 A JP 2019071577A JP 2017197486 A JP2017197486 A JP 2017197486A JP 2017197486 A JP2017197486 A JP 2017197486A JP 2019071577 A JP2019071577 A JP 2019071577A
Authority
JP
Japan
Prior art keywords
storage unit
signal
data stored
circuit
period
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
JP2017197486A
Other languages
English (en)
Inventor
啓三 平賀
Keizo Hiraga
啓三 平賀
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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions 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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2017197486A priority Critical patent/JP2019071577A/ja
Priority to US16/753,137 priority patent/US11038494B2/en
Priority to CN201880064733.8A priority patent/CN111164892B/zh
Priority to PCT/JP2018/035382 priority patent/WO2019073788A1/ja
Publication of JP2019071577A publication Critical patent/JP2019071577A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/353Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of field-effect transistors with internal or external positive feedback
    • H03K3/356Bistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0372Bistable circuits of the master-slave type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0375Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails

Abstract

【課題】消費電力を低減することができる半導体回路を得る。【解決手段】本開示の半導体回路は、揮発性の第1の記憶部と、第1の制御信号に基づいて、第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部と、第2の制御信号に基づいて、第2の記憶部に記憶されたデータに応じたデータを記憶するとともに、第3の制御信号に基づいて、自らに記憶されたデータを第1の記憶部に記憶させる、不揮発性の第3の記憶部と、第1の制御信号および第3の制御信号を生成するとともに、第1の記憶部に記憶されたデータと第2の記憶部に記憶されたデータとを比較し、その比較結果に基づいて第2の制御信号を生成する制御部とを備える。【選択図】図2

Description

本開示は、不揮発性の記憶素子を有する半導体回路、およびそのような半導体回路の制御方法に関する。
電子機器は、エコロジーの観点から消費電力が低いことが望まれている。半導体回路では、例えば、一部の回路への電源供給を選択的に停止することにより消費電力の低減を図る、いわゆるパワーゲーティングという技術がしばしば用いられる。このように電源供給が停止された回路では、電源供給が再開された後に、すぐに、電源供給が停止される前の動作状態に復帰することが望まれる。そのような短時間での復帰動作を実現する方法の一つに、回路に不揮発性の記憶素子を内蔵する方法がある(例えば特許文献1など)。
米国特許出願公開第2011/0273925号明細書
このように、電子機器では、消費電力の低減が望まれており、半導体回路においても、さらなる消費電力の低減が期待されている。
消費電力を低減することができる半導体回路および半導体回路の制御方法を提供することが望ましい。
本開示の一実施の形態における半導体回路は、第1の記憶部と、第2の記憶部と、第3の記憶部と、制御部とを備えている。第1の記憶部は、揮発性のものである。第2の記憶部は、第1の制御信号に基づいて、第1の記憶部に記憶されたデータを記憶する揮発性のものである。第3の記憶部は、第2の制御信号に基づいて、第2の記憶部に記憶されたデータに応じたデータを記憶するとともに、第3の制御信号に基づいて、自らに記憶されたデータを第1の記憶部に記憶させる、不揮発性のものである。制御部は、第1の制御信号および第3の制御信号を生成するとともに、第1の記憶部に記憶されたデータと第2の記憶部に記憶されたデータとを比較し、その比較結果に基づいて第2の制御信号を生成するものである。
本開示の一実施の形態における半導体回路の制御方法は、揮発性の第1の記憶部に記憶されたデータと、第1の制御信号に基づいて第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部に記憶されたデータとを比較し、第1の記憶部に記憶されたデータと、第2の記憶部に記憶されたデータとの比較結果に基づいて、第2の制御信号を不揮発性の第3の記憶部に供給することにより、第2の記憶部に記憶されたデータに応じたデータを第3の記憶部に記憶させるものである。
本開示の一実施の形態における半導体回路および半導体回路の制御方法では、揮発性の第1の記憶部にデータが記憶される。また、第1の制御信号に基づいて、揮発性の第2の記憶部に、第1の記憶部に記憶されたデータが記憶され、第2の制御信号に基づいて、不揮発性の第3の記憶部に、第2の記憶部に記憶されたデータに応じたデータが記憶される。第2の制御信号は、第1の記憶部に記憶されたデータと第2の記憶部に記憶されたデータとの比較結果に基づいて生成される。
本開示の一実施の形態における半導体回路および半導体回路の制御方法によれば、第1の記憶部に記憶されたデータと第2の記憶部に記憶されたデータとを比較し、その比較結果に基づいて第2の制御信号を生成したので、消費電力を低減することができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれの効果があってもよい。
本開示の一実施の形態に係る半導体回路の一構成例を表すブロック図である。 図1に示したフリップフロップの一構成例を表す回路図である。 図2に示した排他的論理和回路の一動作例を表す真理値表である。 図2に示したモード制御回路の一構成例を表す回路図である。 図4に示したモード制御回路の一動作例を表す真理値表である。 図4に示したモード制御回路の一動作例を表す他の真理値表である。 図4に示したモード制御回路の一動作例を表す他の真理値表である。 図2に示したフリップフロップの一動作例を表す説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図2に示したフリップフロップの一動作例を表す他の説明図である。 図1に示した半導体回路の一動作例を表す波形図である。 図1に示した半導体回路の他の動作例を表す波形図である。 図1に示した半導体回路の他の動作例を表す波形図である。 図1に示した半導体回路の他の動作例を表す波形図である。 図1に示した半導体回路の他の動作例を表す波形図である。 図1に示した半導体回路の一動作例を表すフローチャートである。 図1に示した半導体回路の一動作例を表す他のフローチャートである。 変形例に係る半導体回路の一構成例を表すブロック図である。 図11に示したフリップフロップの一構成例を表す回路図である。 図12に示したモード制御回路の一構成例を表す回路図である。 他の変形例に係るフリップフロップの一構成例を表す回路図である。 実施の形態を適用したスマートフォンの外観構成を表す斜視図である。
以下、本開示の実施の形態について、図面を参照して詳細に説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.適用例
<1.実施の形態>
[構成例]
図1は、一実施の形態に係る半導体回路(半導体回路1)の一構成例を表すものである。半導体回路1は、不揮発性の記憶素子を有し、電源供給が再開された後に、電源供給が停止される前の動作状態に復帰することができるように構成されたものである。なお、本開示の実施の形態に係る半導体回路の駆動方法は、本実施の形態により具現化されるので、併せて説明する。半導体回路1は、回路10と、電源トランジスタ8と、CPU(Central Processing Unit)7と、制御部9とを備えている。なお、これに限定されるものではなく、例えば、回路10が制御部9の一部の回路を含むようにしてもよい。
回路10は、所定の動作を行う回路である。この回路10の電源端子T1には電源電圧VDDが供給され、接地端子T2は、電源トランジスタ8を介して接地されている。これにより、回路10内の各回路の接地端子には、電源トランジスタ8がオン状態であるときに接地電圧VGNDが供給されるようになっている。回路10は、複数のフリップフロップ(F/F)20と、判定回路11とを有している。
フリップフロップ20は、アクティブモードM1において、クロック信号CLKの立ち上がりエッジに基づいて、データ入力端子Dに入力された信号をサンプリングして、そのサンプリング結果をデータ出力端子Qから出力するものである。このフリップフロップ20は、後述するように、不揮発性の記憶素子67,68を含む記憶回路60(後述)を有し、電源供給を停止している間、フリップフロップ20の動作状態をこの記憶回路60に記憶させる(スリープモードM2)。これにより、フリップフロップ20は、電源供給が再開した後に、すぐに、電源供給が停止される前の動作状態に復帰することができるようになっている。
動作モードをアクティブモードM1からスリープモードM2に移行させる場合には、フリップフロップ20は、制御部9から供給された、複数の信号を含む制御信号SIGに基づいて、フリップフロップ20のスレーブラッチ40(後述)に記憶された情報を記憶回路60(後述)に書き込む(ストアモードM3)。そして、フリップフロップ20は、記憶回路60に正常に情報を書き込むことができたかどうかを検証し(ベリファイモードM4)、記憶回路60に正常に情報を書き込むことができなかった場合には、正常に情報を書き込むことができるまで、書込条件を変えつつ、情報の書き込みを繰り返す(リトライモードM5)。一方、動作モードをスリープモードM2からアクティブモードM1に移行させる場合には、フリップフロップ20は、記憶回路60からスレーブラッチ40に情報を読み出す(リストアモードM6)ようになっている。さらに、フリップフロップ20は、スレーブラッチ40およびバルーン回路50(後述)をリセットする機能(リセットモードM7)、および、例えば工場出荷時などにおいて記憶回路60を初期化する機能(イニシャライズモードM8)をも有している。このように、フリップフロップ20は、8つの動作モード(アクティブモードM1、スリープモードM2、ストアモードM3、ベリファイモードM4、リトライモードM5、リストアモードM6、リセットモードM7、およびイニシャライズモードM8)で動作を行うようになっている。また、フリップフロップ20は、詳細は後述するが、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報とを比較し、その比較結果を信号CMP_OUTとして出力する機能をも有している。
判定回路11は、ベリファイモードM4において、複数のフリップフロップ20から供給された信号CMP_OUTに基づいて、全てのフリップフロップ20において、スレーブラッチ40(後述)に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを判定するものである。そして、判定回路11は、その判定結果をCPU7に供給するようになっている。
電源トランジスタ8は、電源制御信号SPGに基づいてオンオフするものである。この例では、電源トランジスタ8は、N型のMOS(Metal Oxide Semiconductor)トランジスタである。電源トランジスタ8のゲートには電源制御信号SPGが供給され、ドレインは回路10の接地端子T2に接続され、ソースには接地電圧VGNDが供給されている。半導体回路1では、回路10を動作させる場合には、電源トランジスタ8をオン状態にし、回路10を動作させない場合には、電源トランジスタ8をオフ状態にする。これにより、半導体回路1では、消費電力を低減することができるようになっている。
CPU7は、半導体回路1の動作を制御するものである。また、CPU7は、電源トランジスタ8に電源制御信号SPGを供給して電源トランジスタ8をオンオフすることにより、いわゆるパワーゲーティングを行う機能をも有している。
このパワーゲーティングにおいて、CPU7は、制御部9に制御信号を供給することにより、半導体回路1の動作モードを指示する。具体的には、CPU7は、動作モードをアクティブモードM1からスリープモードM2に移行させる場合には、まず、半導体回路1がストアモードM3で動作すべき旨を指示し、次に、半導体回路1がベリファイモードM4で動作すべき旨を指示する。判定回路11は、ベリファイモードM4において、複数のフリップフロップ20から供給された信号CMP_OUTに基づいて、全てのフリップフロップ20において、スレーブラッチ40(後述)に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを判定する。CPU7は、判定回路11における判定結果に基づいて、複数のフリップフロップ20のうちの一部のフリップフロップ20が、記憶回路60に情報を正常に書き込むことができなかったことを把握した場合には、半導体回路1がリトライモードM5で動作すべき旨を指示する。これにより、記憶回路60に情報を正常に書き込むことができなかったフリップフロップ20は、書込条件を変えつつ、記憶回路60への情報の書き込みを繰り返す。そして、全てのフリップフロップ20が記憶回路60に情報を正常に書き込んだ場合には、CPU7は、電源トランジスタ8をオフ状態にする。一方、CPU7は、動作モードをスリープモードM2からアクティブモードM1に移行させる場合には、まず、半導体回路1がリストアモードM6で動作すべき旨を指示し、その次に、電源トランジスタ8をオン状態にするようになっている。
なお、以上に示した例では、動作モードをアクティブモードM1からスリープモードM2に移行させる場合に、半導体回路1をストアモードM3で動作させるようにしたが、これに限定されるものではなく、例えば、ストアモードM3を経ずに、アクティブモードM1からスリープモードM2に直接移行することができるようにしてもよい。すなわち、半導体回路1では、これらの動作モードを自由に組み合わせることにより、様々な動作を行うことができるようになっている。
制御部9は、CPU7から指示された動作モードに基づいて、回路10の各フリップフロップ20に対して制御信号SIGを供給するものである。制御信号SIGは、8つの信号STORE,RESTORE,INITIALIZE,RESET,VERIFY,EQL,SAVE,CTRLを含んでいる。
図2は、フリップフロップ20の一構成例を表すものである。フリップフロップ20は、インバータ21,22と、マスタラッチ30と、スレーブラッチ40と、バルーン回路50と、記憶回路60と、排他的論理和(EX−OR)回路23と、モード制御回路70とを有している。また、フリップフロップ20は、図示しないが、制御部9から供給された信号RESET,EQL,SAVEに基づいて、これらの信号の反転信号である信号RESETB,EQLB,SAVEBをそれぞれ生成する回路をも有している。
インバータ21は、クロック信号CLKを反転することによりクロック信号CBを生成するものである。インバータ22は、クロック信号CBを反転することによりクロック信号Cを生成するものである。
(マスタラッチ30)
マスタラッチ30は、インバータ31と、トランスミッションゲート32と、インバータ33,34と、トランスミッションゲート35とを有している。
インバータ31の入力端子はフリップフロップ20のデータ入力端子Dに接続され、出力端子はトランスミッションゲート32の一端に接続されている。トランスミッションゲート32の一端はインバータ31の出力端子に接続され、他端はノードN31に接続されている。このトランスミッションゲート32は、クロック信号Cが“0”(低レベル)であるときに一端と他端との間をオン状態にし、クロック信号Cが“1”(高レベル)であるときに一端と他端との間をオフ状態にするものである。
インバータ33の入力端子はノードN31に接続され、出力端子はノードN32に接続されている。
インバータ34の入力端子はノードN32に接続され、出力端子はトランスミッションゲート35の一端に接続されている。トランスミッションゲート35の一端はインバータ34の出力端子に接続され、他端はノードN31に接続されている。このトランスミッションゲート35は、クロック信号Cが“1”であるときに一端と他端との間をオン状態にし、クロック信号Cが“0”であるときに一端と他端との間をオフ状態にするものである。
(スレーブラッチ40)
スレーブラッチ40は、トランスミッションゲート41と、反転論理積(NAND)回路42と、トランジスタ43と、インバータ44と、トランジスタ45と、トランスミッションゲート46と、トランジスタ47と、トランジスタ48と、インバータ49とを有している。
トランスミッションゲート41の一端はノードN32に接続され、他端はノードN41に接続されている。このトランスミッションゲート41は、クロック信号Cが“1”であるときに一端と他端との間をオン状態にし、クロック信号Cが“0”であるときに一端と他端との間をオフ状態にするものである。ノードN41における電圧は、以下、信号SLAVEとして参照する。
反転論理積回路42の第1入力端子には信号RESETBが供給され、第2入力端子はノードN41に接続され、出力端子はノードN42に接続され、接地端子はトランジスタ43のドレインに接続されている。トランジスタ43は、N型のMOSトランジスタであり、ゲートには信号EQLBが供給され、ドレインは反転論理積回路42の接地端子に接続され、ソースは回路10の接地端子T2に接続されている。この構成により、反転論理積回路42は、信号EQLが“0”であるときに、第1入力端子における信号RESETBおよび第2入力端子における信号SLAVEの反転論理積を出力し、信号EQLが“1”であるときに、出力インピーダンスをハイインピーダンス状態にするようになっている。ノードN42における電圧は、以下、信号SLAVEBとして参照する。
インバータ44の入力端子はノードN42に接続され、出力端子はトランスミッションゲート46の一端に接続され、接地端子はトランジスタ45のドレインに接続されている。トランジスタ45は、N型のMOSトランジスタであり、ゲートには信号EQLBが供給され、ドレインはインバータ44の接地端子に接続され、ソースは回路10の接地端子T2に接続されている。この構成により、インバータ44は、信号EQLが“0”であるときに、入力端子における信号SLAVEBの反転信号を出力し、信号EQLが“1”であるときに、出力インピーダンスをハイインピーダンス状態にするようになっている。
トランスミッションゲート46の一端はインバータ44の出力端子に接続され、他端はノードN41に接続されている。このトランスミッションゲート46は、クロック信号Cが“0”であるときに一端と他端との間をオン状態にし、クロック信号Cが“1”であるときに一端と他端との間をオフ状態にするものである。トランジスタ47は、P型のMOSトランジスタであり、ゲートには信号RESTOREが供給され、ソースはインバータ44の出力端子およびトランスミッションゲート46の一端に接続され、他端はノードN41に接続されている。
トランジスタ48は、N型のMOSトランジスタであり、ゲートには信号EQLが供給され、ソースはノードN42に接続され、ドレインはノードN41に接続されている。
インバータ49の入力端子はノードN42に接続され、出力端子はフリップフロップ20のデータ出力端子Qに接続されている。
(バルーン回路50)
バルーン回路50は、トランスミッションゲート51と、反転論理和(NOR)回路52と、インバータ53と、トランスミッションゲート54とを有している。
トランスミッションゲート51の一端はノードN41に接続され、他端はノードN51に接続されている。このトランスミッションゲート51は、信号SAVEが“1”であるときに一端と他端との間をオン状態にし、信号SAVEが“0”であるときに一端と他端との間をオフ状態にするものである。ノードN51における電圧は、以下、信号BALOONとして参照する。
反転論理和回路52の第1入力端子には信号RESETが供給され、第2入力端子はノードN51に接続され、出力端子はノードN52に接続されている。ノードN52における電圧は、以下、信号BALOONBとして参照する。
インバータ53の入力端子はノードN52に接続され、出力端子はトランスミッションゲート54の一端に接続されている。トランスミッションゲート54の一端はインバータ53の出力端子に接続され、他端はノードN51に接続されている。このトランスミッションゲート54は、信号SAVEが“0”であるときに一端と他端との間をオン状態にし、信号SAVEが“1”であるときに一端と他端との間をオフ状態にするものである。
(記憶回路60)
記憶回路60は、インバータ61,62と、トランジスタ63〜66と、記憶素子67,68とを有している。
インバータ61の入力端子はバルーン回路50のノードN51に接続され、出力端子はトランジスタ63のドレインに接続されている。インバータ62の入力端子はバルーン回路50のノードN52に接続され、出力端子はトランジスタ64のドレインに接続されている。
トランジスタ63,64は、N型のMOSトランジスタである。トランジスタ63のゲートには信号SRが供給され、ドレインはインバータ61の出力端子に接続され、ソースはノードN61に接続されている。トランジスタ64のゲートには信号SRが供給され、ドレインはインバータ62の出力端子に接続され、ソースはノードN62に接続されている。トランジスタ63,64は、後述するように、情報を記憶素子67,68に書き込む場合に、それぞれオン状態になるものである。
トランジスタ65,66は、P型のMOSトランジスタである。トランジスタ65のゲートには信号RESTOREが供給され、ソースはノードN41に接続され、ドレインはノードN61に接続されている。トランジスタ66のゲートには信号RESTOREが供給され、ソースはノードN42に接続され、ドレインはノードN62に接続されている。トランジスタ65,66は、後述するように、情報を記憶素子67,68から読み出す場合に、それぞれオン状態になるものである。
記憶素子67,68は、不揮発性の記憶素子であり、この例では、スピン注入により、フリー層F(後述)の磁化の向きを変えることにより情報の記憶を行う、スピン注入磁化反転型(STT;Spin Transfer Torque)の磁気トンネル接合(MTJ;Magnetic Tunnel Junction)素子である。記憶素子67の一端はノードN61に接続され、他端には信号CTRLが供給されている。記憶素子68の一端はノードN62に接続され、他端には信号CTRLが供給されている。
以下、記憶素子67を例に説明する。なお、記憶素子68についても同様である。記憶素子67は、フリー層Fと、トンネルバリア層Tと、ピンド層Pとを有している。フリー層Fは、磁化の方向が、流入するスピン偏極電流に応じて、例えば膜面垂直方向において変化する強磁性体により構成されるものである。ピンド層Pは、磁化の方向が、例えば膜面垂直方向に固定された強磁性体により構成されるものである。トンネルバリア層Tは、フリー層Fとピンド層Pとの間の磁気的結合を切るとともに、トンネル電流を流すように機能するものである。この例では、フリー層FはノードN61に接続され、ピンド層Pには信号CTRLが供給される。
この構成により、記憶素子67では、例えば電流をフリー層Fからピンド層Pに流すと、記憶素子67の両端間の抵抗値が低くなる(高抵抗状態RH)。この高抵抗状態RHは、“1”(高レベル)に対応する状態である。反対に、例えば電流をピンド層Pからフリー層Fに流すと、記憶素子67の両端間の抵抗値が低くなる(低抵抗状態RL)。この低抵抗状態RLは、“0”(高レベル)に対応する状態である。
このように、記憶素子67,68では、電流を流す方向に応じて、抵抗状態が高抵抗状態RHと低抵抗状態RLとの間で変化する。記憶素子67,68は、このようにして抵抗状態を設定することにより、情報を記憶することができるようになっている。
(排他的論理和回路23)
排他的論理和回路23の第1入力端子はノードN52に接続され、第2入力端子はノードN42に接続される。そして、排他的論理和回路23は、第1入力端子での信号BALOONBおよび第2入力端子での信号SLAVEBの排他的論理和を、信号CMP_OUTとして出力するようになっている。この排他的論理和回路23は、図3に示したように動作する。
(モード制御回路70)
モード制御回路70は、信号STORE,INITIALIZE,VERIFY、および信号CMP_OUTに基づいて、信号SRを生成するものである。
図4は、モード制御回路70の一構成例を表すものである。この図4には、説明の便宜上、図2に示した排他的論理和回路23をも描いている。モード制御回路70は、排他的論理和回路71と、論理和(OR)回路72と、論理積回路73とを有している。図5Aは、モード制御回路70の排他的論理和回路71の真理値表を、その動作とともに表すものであり、図5Bは、論理和回路72の真理値表を表すものであり、図5Cは、論理積回路73の真理値表を、その動作とともに表すものである。
排他的論理和回路71は、信号CMP_OUTと信号VERIFYとの排他的論理和を求め、その結果を信号CMP_OUT_Vとして出力するものである。論理和回路72は、信号STOREと信号INITIALIZEとの論理和を求め、その結果を信号WRITEとして出力するものである。論理積回路73は、信号CMP_OUT_Vと信号WRITEとの論理積を求め、その結果を信号SRとして出力するものである。
ここで、スレーブラッチ40は、本開示における「第1の記憶部」の一具体例に対応する。バルーン回路50は、本開示における「第2の記憶部」の一具体例に対応する。記憶回路60は、本開示における「第3の記憶部」の一具体例に対応する。排他的論理和回路23、モード制御回路70、判定回路11、CPU7、および制御部9は、本開示における「制御部」の一具体例に対応する。信号SAVEは、本開示における「第1の制御信号」の一具体例に対応する。信号SRおよび信号CTRLは、本開示における「第2の制御信号」の一具体例に対応する。信号CTRLは、本開示における「駆動信号」の一具体例に対応する。信号RESTOREは、本開示における「第3の制御信号」の一具体例に対応する。
[動作および作用]
続いて、本実施の形態の半導体回路1の動作および作用について説明する。
(全体動作概要)
まず、図1,2を参照して、半導体回路1の全体動作概要を説明する。CPU7は、制御部9に制御信号を供給することにより、半導体回路1の動作モードを指示する。制御部9は、CPU7から指示された動作モードに基づいて、回路10の各フリップフロップ20に対して、制御信号SIG(8つの信号STORE,RESTORE,INITIALIZE,RESET,VERIFY,EQL,SAVE,CTRL)を供給する。回路10のフリップフロップ20は、アクティブモードM1において、クロック信号CLKの立ち上がりエッジに基づいて、データ入力端子Dに入力された信号をサンプリングして、そのサンプリング結果をデータ出力端子Qから出力する。
CPU7は、動作モードをアクティブモードM1からスリープモードM2に移行させる場合には、まず、半導体回路1がストアモードM3で動作すべき旨を指示し、その後に半導体回路1がベリファイモードM4で動作すべき旨を指示する。判定回路11は、ベリファイモードM4において、複数のフリップフロップ20から供給された信号CMP_OUTに基づいて、全てのフリップフロップ20において、スレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを判定する。CPU7は、判定回路11における判定結果に基づいて、複数のフリップフロップ20のうちの一部のフリップフロップ20が、記憶回路60に情報を正常に書き込むことができなかったことを把握した場合には、半導体回路1がリトライモードM5で動作すべき旨を指示する。これにより、記憶回路60に情報を正常に書き込むことができなかったフリップフロップ20は、書込条件を変えつつ、記憶回路60への情報の書き込みを繰り返す。そして、全てのフリップフロップ20が記憶回路60に情報を正常に書き込んだ場合には、CPU7は、電源トランジスタ8をオフ状態にする。
一方、CPU7は、動作モードをスリープモードM2からアクティブモードM1に移行させる場合には、まず、半導体回路1がリストアモードM6で動作すべき旨を指示し、その次に、電源トランジスタ8をオン状態にする。
(詳細動作)
次に、半導体回路1の動作を、動作モードがスリープモードM2からアクティブモードM1に移行し、スリープモードM2に戻るまでの一連の動作を例に挙げて、詳細に説明する。
図6A〜6Jは、フリップフロップ20における、スレーブラッチ40、バルーン回路50、および記憶回路60の一動作例を表すものである。この図6A〜6Jにおいて、スレーブラッチ40におけるトランスミッションゲート41,46、およびバルーン回路50におけるトランスミッションゲート51,54を、適宜、そのトランスミッションゲートの動作状態を表すスイッチを用いて示している。同様に、スレーブラッチ40におけるトランジスタ43,45,47,48、および記憶回路60のトランジスタ63〜66を、適宜、そのトランジスタの動作状態を表すスイッチを用いて示している。
(スリープモードM2からアクティブモードM1へ移行する場合)
動作モードをスリープモードM2からアクティブモードM1に移行させる場合には、CPU7は、まず、半導体回路1がリストアモードM6で動作すべき旨を指示する。このとき、電源トランジスタ8はオフ状態である。制御部9は、CPU7からの指示に基づいて、信号RESTOREを“0”(アクティブ)にする。これにより、トランジスタ47,65,66はオン状態になり、スレーブラッチ40のノードN41が、トランジスタ65を介して記憶素子67に接続されるとともに、スレーブラッチ40のノードN42が、トランジスタ66を介して記憶素子68と接続される。次に、CPU7は、電源トランジスタ8をオン状態にする。このとき、図6Aに示したように、信号CTRLは“0”であり、信号RESETは“0”(非アクティブ)であり、トランスミッションゲート41はオフ状態であり、トランスミッションゲート46はオン状態である。また、信号EQLは“0”(非アクティブ)であるので、トランジスタ43,45はオン状態であり、トランジスタ48はオフ状態である。よって、スレーブラッチ40では、負帰還動作が行われ、反転論理積回路42は、ノードN41における信号SLAVEの反転信号をノードN42に出力しようとし、インバータ44は、ノードN42における信号SLAVEBの反転信号をノードN41に出力しようとする。この例では、記憶素子67の抵抗状態は高抵抗状態RH(“1”)であり、記憶素子68の抵抗状態は低抵抗状態RL(“0”)である。よって、ノードN41は高い抵抗値でプルダウンされ、ノードN42は低い抵抗値でプルダウンされるため、ノードN41における信号SLAVEは“1”になり、ノードN42における信号SLAVEBは“0”になる。すなわち、信号SLAVEは、高抵抗状態RH(“1”)に応じて“1”になり、信号SLAVEBは、低抵抗状態RL(“0”)に応じて“0”になる。このようにして、フリップフロップ20は、記憶回路60に記憶された情報を、スレーブラッチ40に読み出す。
次に、制御部9は、信号RESTOREを“1”(非アクティブ)にする。これにより、図6Bに示したように、トランジスタ47,65,66がオフ状態になり、スレーブラッチ40のノードN41が記憶素子67から切り離されるとともに、ノードN42が記憶素子68から切り離される。また、制御部9は、信号SAVEを“1”(アクティブ)にする。これにより、トランスミッションゲート51がオン状態になるとともに、トランスミッションゲート54がオフ状態になり、スレーブラッチ40のノードN41はトランスミッションゲート51を介してバルーン回路50のノードN51に接続される。その結果、この例では、ノードN51の信号BALOONは“1”になり、ノードN52の信号BALOONBは“0”になる。
次に、制御部9は、信号SAVEを“0”(非アクティブ)にする。これにより、図6Cに示したように、トランスミッションゲート51がオフ状態になるとともに、トランスミッションゲート54がオン状態になり、スレーブラッチ40のノードN41がバルーン回路50から切り離される。そして、バルーン回路50では、負帰還動作が行われ、情報が記憶される。この例では、信号BALOONは“1”であり、信号BALOONBは“0”である。このようにして、フリップフロップ20は、スレーブラッチ40に記憶された情報をバルーン回路50に移す。
このようにして、半導体回路1の動作モードは、スリープモードM2からアクティブモードM1(図6D)に移行する。例えば、クロック信号CLKがトグルし始めると、フリップフロップ20は、クロック信号C,CBに応じて動作する。例えば、クロック信号Cが“1”であるときに、トランスミッションゲート41がオン状態になるとともに、トランスミッションゲート46がオフ状態になる。これにより、マスタラッチ30のノードN32がスレーブラッチ40のN41と接続される。そして、クロック信号Cが“0”であるときに、トランスミッションゲート41がオフ状態になるとともに、トランスミッションゲート46がオン状態になる。これにより、スレーブラッチ40において、負帰還動作が行われ、情報が記憶される。この動作において、図6Dに示したように、トランスミッションゲート51はオフ状態を維持する。これにより、バルーン回路50に記憶された情報は維持される。
(アクティブモードM1からスリープモードM2へ移行する場合)
動作モードをアクティブモードM1からスリープモードM2に移行させる場合には、CPU7は、まず、半導体回路1がストアモードM3で動作すべき旨を指示する。制御部9は、CPU7からの指示に基づいて、信号STOREを“1”(アクティブ)にする。また、制御部9は、クロック信号CLKを停止させ、このクロック信号CLKを“0”にする。これ以降、フリップフロップ20は、スレーブラッチ40に記憶された情報に応じて、異なる動作を行う。
スレーブラッチ40に記憶された情報(例えば信号SLAVE)が、バルーン回路50に記憶された情報(例えば信号BALOON)と同じである場合には、図6Eに示したように、信号CMP_OUTが“0”になる。この場合、モード制御回路70は、信号SRを“0”にする。すなわち、モード制御回路70(図4)では、信号VERIFYが“0”(非アクティブ)であり、信号CMP_OUTが“0”であるので、信号CMP_OUTVは“0”になり、信号SRは“0”になる。よって、トランジスタ63,64はオフ状態を維持する。その結果、フリップフロップ20は、情報を記憶回路60に書き込まない。すなわち、この場合には、図6Eに示したように、記憶素子67の抵抗状態は、スレーブラッチ40のノードN41における信号SLAVE(“1”)に対応した高抵抗状態RHであり、記憶素子68の抵抗状態は、ノードN42における信号SLAVEB(“0”)に対応した低抵抗状態RLである。このように、記憶回路60では、記憶素子67,68の抵抗状態は、すでに、スレーブラッチ40のノードN41,N42に応じた抵抗状態になっているので、フリップフロップ20は、情報を記憶回路60に書き込まない。
一方、スレーブラッチ40に記憶された情報(例えば信号SLAVE)が、バルーン回路50に記憶された情報(例えば信号BALOON)と異なる場合には、図6F,6Gに示したように、信号CMP_OUTが“1”になる。この場合には、フリップフロップ20は、スレーブラッチ40に記憶された情報を記憶回路60に書き込む。具体的には、フリップフロップ20は、記憶素子67の抵抗状態を、ノードN41における信号SLAVE(“0”)に対応した低抵抗状態RLにすべく、そして、記憶素子68の抵抗状態を、ノードN42における信号SLAVEB(“1”)に対応した高抵抗状態RHにすべく、スレーブラッチ40に記憶された情報を記憶回路60に書き込む。
まず、図6F,6Gに示したように、モード制御回路70は、信号SRを“1”にする。すなわち、モード制御回路70(図4)では、信号VERIFYが“0”(非アクティブ)であり、信号CMP_OUTが“1”であるので、信号CMP_OUTVは“1”になる。また、信号STOREが“1”(アクティブ)であり、信号INITIALIZEが“0”(非アクティブ)であるので、信号WRITEは“1”になる。その結果、信号SRは“1”になる。よって、図6F,6Gに示したように、トランジスタ63,64はオン状態になる。そして、フリップフロップ20は、バルーン回路50のノードN51における信号BALOONおよびノードN52における信号BALOONBを用いて、2ステップで、情報を記憶回路60に書き込む。
制御部9は、第1ステップにおいて、図6Fに示したように、信号CTRLを“1”にする。これにより、記憶回路60では、バルーン回路50に記憶された情報に応じて、記憶素子67,68のうちの一方に電流が流れる。この例では、信号BALOONが“1”であり、信号BALOONBが“0”である。よって、記憶素子67、トランジスタ63、インバータ61の順に、ストア電流Istore1が流れる。このとき、記憶素子67では、ストア電流Istore1がピンド層Pからフリー層Fに流れるので、記憶素子67の抵抗状態は、低抵抗状態RL(“0”)になる。
次に、制御部9は、第2ステップにおいて、図6Gに示したように、信号CTRLを“0にする。これにより、記憶回路60では、バルーン回路50に記憶された情報に応じて、記憶素子67,68のうちの他方に電流が流れる。この例では、インバータ62、トランジスタ64、記憶素子68の順に、ストア電流Istore2が流れる。このとき、記憶素子67では、ストア電流Istore2がフリー層Fからピンド層Pに流れるので、記憶素子68の抵抗状態は、高抵抗状態RH(“1”)になる。
この2つのステップにより、図6Gに示したように、記憶素子67の抵抗状態は、ノードN41における信号SLAVE(“0”)に対応した低抵抗状態RLになり、記憶素子68の抵抗状態は、ノードN42における信号SLAVEB(“1”)に対応した高抵抗状態RHになる。
この例では、このフリップフロップ20は、記憶回路60に情報を正常に書き込むことができたと仮定したが、複数のフリップフロップ20のうちのあるフリップフロップ20が、記憶回路60に情報を正常に書き込むことができない場合もあり得る。そこで、半導体回路1は、次に、全てのフリップフロップ20において、スレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを確認する(ベリファイモードM4)。そして、複数のフリップフロップ20のうちのあるフリップフロップ20が、記憶回路60に情報を正常に書き込むことができなかった場合には、そのフリップフロップ20は、例えば、正常に情報を書き込むことができるまで、書込条件を変えつつ、情報の書き込みを繰り返す(リトライモードM5)。
まず、CPU7は、半導体回路1がベリファイモードM4で動作すべき旨を指示する。制御部9は、CPU7からの指示に基づいて、信号STOREを“0”(非アクティブ)にするとともに、信号VERIFYを“1”(アクティブ)にする。これにより、モード制御回路70は、信号SRを“0”にする。すなわち、モード制御回路70(図4)では、信号STOREおよび信号INITIALIZEが“0”(非アクティブ)であるので、信号WRITEが“0”になり、信号SRは“0”になる。よって、図6Hに示したように、トランジスタ63,64はオフ状態になる。また、制御部9は、CPU7からの指示に基づいて、信号EQLを“1”(アクティブ)にする。これにより、図6Hに示したように、トランジスタ43,45はオフ状態になり、トランジスタ48はオン状態になる。このとき、スレーブラッチ40では、ノードN41,N42は、互いに接続されるとともに、フローティング状態になる。つまり、スレーブラッチ40は電源電圧VDDに充電される。なお、更に、信号CTRLを“1”にするとともに、トランジスタ65,66をオン状態にすることにより、スレーブラッチ40を電源電圧VDDにより短い時間で充電することができる。
次に、制御部9は、信号RESTOREを“0”(アクティブ)にする。これにより、トランジスタ47,65,66はオン状態になり、スレーブラッチ40のノードN41が、トランジスタ65を介して記憶素子67に接続されるとともに、スレーブラッチ40のノードN42が、トランジスタ66を介して記憶素子68と接続される。次に、制御部9は、信号EQLを“0”(非アクティブ)にする。これにより、以下に説明するように、フリップフロップ20は、上述したリストアモードM6における動作(図6A)と同様に、記憶回路60に記憶された情報を、スレーブラッチ40に読み出す。
例えば、上述したストアモードM3における動作(図6F,6G)により、情報が記憶回路60に正常に書き込まれたフリップフロップ20では、図6Iに示したように、記憶素子67の抵抗状態は低抵抗状態RL(“0”)であり、記憶素子68の抵抗状態は高抵抗状態RH(“1”)である。よって、ノードN41は低い抵抗値でプルダウンされ、ノードN42は高い抵抗値でプルダウンされるため、ノードN41における信号SLAVEは“0”になり、ノードN42における信号SLAVEBは“1”になる。この場合には、スレーブラッチ40に記憶された情報(例えば信号SLAVE)が、バルーン回路50に記憶された情報(例えば信号BALOON)と異なるので、信号CMP_OUTが“1”になる。
一方、上述したストアモードM3における動作(図6F,6G)により、情報が記憶回路60に正常に書き込まれていないフリップフロップ20では、図6Jに示したように、この例では、記憶素子67の抵抗状態は高抵抗状態RH(“1”)であり、記憶素子68の抵抗状態は低抵抗状態RL(“0”)である。よって、ノードN41は高い抵抗値でプルダウンされ、ノードN42は低い抵抗値でプルダウンされるため、ノードN41における信号SLAVEは“1”になり、ノードN42における信号SLAVEBは“0”になる。この場合には、スレーブラッチ40に記憶された情報(例えば信号SLAVE)が、バルーン回路50に記憶された情報(例えば信号BALOON)と同じになるので、信号CMP_OUTが“0”になる。
そして、制御部9は、信号RESTOREを“1”(非アクティブ)にする。これにより、フリップフロップ20では、トランジスタ47,65,66がオフ状態になり、スレーブラッチ40のノードN41が記憶素子67から切り離されるとともに、ノードN42が記憶素子68から切り離される。
判定回路11は、このベリファイモードM4において、複数のフリップフロップ20から供給された信号CMP_OUTに基づいて、全てのフリップフロップ20において、スレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを判定する。具体的には、判定回路11は、全てのフリップフロップ20から供給された信号CMP_OUTが“1”である場合には、全てのフリップフロップ20において、情報を記憶回路60に正常に書き込むことができたと判定する。
CPU7は、判定回路11が、全てのフリップフロップ20のスレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたと判定した場合には、電源トランジスタ8をオフ状態にする。これにより、半導体回路1は、動作モードをスリープモードM2に移行させる。
また、CPU7は、判定回路11が、例えば一部のフリップフロップ20のスレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができていないと判定した場合には、そのフリップフロップ20がリトライモードM5で動作すべき旨を指示する。制御部9は、CPU7からの指示に基づいて、信号STOREを“1”(アクティブ)にする。
ストアモードM3における動作(図6F,6G)において情報が記憶回路60に正常に書き込まれているフリップフロップ20(図6I)では、モード制御回路70は、信号SRを“0”にする。すなわち、モード制御回路70(図4)では、信号VERIFYが“1”(アクティブ)であり、信号CMP_OUTが“1”であるので、信号CMP_OUT_Vが“0”になり、信号SRは“0”になる。よって、トランジスタ63,64はオフ状態を維持する。その結果、フリップフロップ20は、情報を記憶回路60に書き込まない。すなわち、この場合には、情報が記憶回路60に正常に書き込まれているので、このフリップフロップ20は、再度書き込みを行わない。
一方、ストアモードM3における動作(図6F,6G)において情報が記憶回路60に正常に書き込まれなかったフリップフロップ20(図6J)では、モード制御回路70は、信号SRを“1”にする。すなわち、モード制御回路70(図4)では、信号VERIFYが“1”(アクティブ)であり、信号CMP_OUTが“0”であるので、信号CMP_OUT_Vが“1”になる。また、信号STOREが“1”(アクティブ)であり、信号INITIALIZEが“0”(非アクティブ)であるので、信号WRITEが“1”になる。よって、信号SRは“1”になる。これにより、トランジスタ63,64はオン状態になる。そして、フリップフロップ20は、ストアモードM3における動作(図6F,6G)と同様に、バルーン回路50のノードN51における信号BALOONおよびノードN52における信号BALOONBを用いて、2ステップで、情報を記憶回路60に書き込む。具体的には、制御部9は、ストアモードM3における動作と同様に、第1ステップにおいて、信号CTRLを“1”にし、第2ステップにおいて、信号CTRLを“0”にする。その際、例えば、制御部9は、情報を記憶回路60に正常に書き込むことができるように、書込条件を変更する。具体的には、制御部9は、例えば、信号CTRLの電圧やパルス幅を変更する。そして、フリップフロップ20は、図6H〜6Jに示した動作と同様に、記憶回路60に記憶された情報を、スレーブラッチ40に読み出す。そして、判定回路11は、このフリップフロップ20が出力した信号CMP_OUTに基づいて、スレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたかどうかを判定する。このようにして、半導体回路1は、情報を記憶回路60に正常に書き込むことができるまで、書込条件を変えつつ、情報の書き込みを繰り返す。
図7A,7Bは、信号CTRLの電圧を変更する場合における信号CTRLの波形例を表すものである。図7Aの例では、信号CTRLを“1”にするときの信号CTRLの電圧を、情報の書き込みを繰り返す度に徐々に高くしている。図7Bの例では、さらに、信号CTRLを“0”にするときの信号CTRLの電圧をも、情報の書き込みを繰り返す度に徐々に低くしている。
図8A,8Bは、信号CTRLのパルス幅を変更する場合における信号CTRLの波形例を表すものである。図8Aの例では、信号CTRLを“1”にするときの信号CTRLのパルス幅を、情報の書き込みを繰り返す度に徐々に長くしている。図8Bの例では、さらに、信号CTRLを“0”にするときの信号CTRLのパルス幅をも、情報の書き込みを繰り返す度に長くしている。
図9は、信号CTRLの電圧およびパルス幅を変更する場合における信号CTRLの波形例を表すものである。この例では、信号CTRLを“1”にするときの信号CTRLの電圧を、情報の書き込みを繰り返す度に徐々に高くするとともに、信号CTRLを“1”にするときの信号CTRLのパルス幅を、情報の書き込みを繰り返す度に徐々に長くしている。
このようにして、制御部9は、書込条件を変更し、フリップフロップ20は、情報を記憶回路60に正常に書き込むことができるまで、情報の書き込みを繰り返す。半導体回路1は、全てのフリップフロップ20が正常に情報を書き込むことができるまで、書込条件を変えつつ、情報の書き込みを繰り返す。
そして、CPU7は、判定回路11が、全てのフリップフロップ20のスレーブラッチ40に記憶された情報を記憶回路60に正常に書き込むことができたと判定した場合には、電源トランジスタ8をオフ状態にする。これにより、半導体回路1は、動作モードをスリープモードM2に移行させる。
図10A,10Bは、半導体回路1の他の動作例を表すフローチャートである。この例では、半導体回路1は、まず、フリップフロップ20の記憶回路60を初期化し(イニシャライズモードM8)、スレーブラッチ40およびバルーン回路50をリセットする(リセットモードM7)。そして、半導体回路1は、アクティブモードM1で動作する。そして、半導体回路1は、その後、動作モードをアクティブモードM1からスリープモードM2に移行させる。その際、半導体回路1は、まず、フリップフロップ20のスレーブラッチ40に記憶された情報を記憶回路60に書き込み(ストアモードM3)、記憶回路60に正常に情報を書き込むことができたかどうかを検証し(ベリファイモードM4)、記憶回路60に正常に情報を書き込むことができなかった場合には、書込条件を変更し(リトライモードM5)、再度情報の書き込みを行う。そして、半導体回路1は、記憶回路60に正常に情報を書き込むことができた場合には、動作モードをスリープモードM2に移行させる。そして、半導体回路1は、その後、動作モードをスリープモードM2からアクティブモードM1に移行させる。その際、半導体回路1は、記憶回路60からスレーブラッチ40に情報を読み出す(リストアモードM6)。以下に、この動作について詳細に説明する。
(イニシャライズモードM8)
まず、制御部9は、信号RESETを“1”(アクティブ)にする(ステップS101)。これにより、半導体回路1は、フリップフロップ20のスレーブラッチ40に記憶された情報およびバルーン回路50に記憶された情報を初期化する。これにより、信号SLAVEは“0”になり、信号SLAVEBは“1”になる。また、信号BALOONは“1”になり、信号BALOONBは“0”になる。その結果、信号CMP_OUTは“1”になる。
次に、制御部9は、信号INITIALIZEを“1”(アクティブ)にし、モード制御回路70は、信号SRを“1”にする(ステップS102)。すなわち、モード制御回路70(図4)では、信号VERIFYが“0”(非アクティブ)であり、信号CMP_OUTが“1”であるので、信号CMP_OUT_Vが“1”になる。また、信号STOREが“0”(非アクティブ)であり、信号INITIALIZEが“1”(アクティブ)であるので、信号WRITEが“1”になる。よって、信号SRは“1”になる。これにより、フリップフロップ20は、情報を記憶回路60に書き込む。
次に、制御部9は、信号SAVEを“0”(非アクティブ)にし、信号EQLを“1”(アクティブ)にし、信号VERIFYを“1”(アクティブ)にする(ステップS103)。これにより、フリップフロップ20は、スレーブラッチ40のノードN41,N42を互いに接続するとともにフローティング状態にする。
次に、制御部9は、信号EQLを“0”(非アクティブ)にするとともに、信号RESTOREを“0”(アクティブ)にする(ステップS104)。これにより、フリップフロップ20は、記憶回路60に記憶された情報をスレーブラッチ40に読み出す。そして、排他的論理和回路23は、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報とを比較することにより、信号CMP_OUTを生成する。ステップS102において情報を記憶回路60に正常に書き込むことができた場合には、ノードN41における信号SLAVEは“0”になり、ノードN42における信号SLAVEBは“1”になる。このとき、信号BALOONBは“0”であるので、信号CMP_OUTは“1”になる。一方、情報を正常に書き込むことができなかった場合には、例えば、ノードN41における信号SLAVEは“1”であり、ノードN42における信号SLAVEBは“0”になる。このとき、信号CMP_OUTは“0”になる。
(リトライモードM5)
信号CMP_OUTが“0”である場合(ステップS105において“N”)には、制御部9は、書込条件を変更する(ステップS106)。すなわち、この場合には、ステップS102において情報を記憶回路60に正常に書き込むことができなかったので、制御部9は、書込条件を変更する。具体的には、制御部9は、例えば、図7A,7B,8A,8B,9に示したように、信号CTRLの電圧やパルス幅を変更する。そして、ステップS102に戻る。そして、半導体回路1は、信号CMP_OUTが“1”になるまで、このステップS102〜S106の動作を繰り返す。
(リセットモードM7)
ステップS105において、信号CMP_OUTが“1”である場合(ステップS105において“Y”)には、制御部9は、信号INITIALIZEを“0”(非アクティブ)にし、信号VERIFYを“0”(非アクティブ)にし、信号RESETを“1”(アクティブ)にする(ステップS111)。これにより、半導体回路1は、フリップフロップ20のスレーブラッチ40に記憶された情報およびバルーン回路50に記憶された情報を初期化する。これにより、信号SLAVEは“0”になり、信号SLAVEBは“1”になる。また、信号BALOONは“1”になり、信号BALOONBは“0”になる。
(アクティブモードM1)
次に、制御部9は、信号RESETを“0”(非アクティブ)にする(ステップS121)。これにより、フリップフロップ20は、通常動作を行う。
そして、しばらくの間、アクティブモードM1で動作を行った後に、半導体回路1は、動作モードをアクティブモードM1からスリープモードM2に移行させる。具体的には、以下に示すように、半導体回路1は、ストアモードM3およびベリファイモードM4を経て、動作モードをスリープモードM2に移行させる。
(ストアモードM3)
まず、制御部9は、信号STOREを“1”(アクティブ)にするとともに、クロック信号CLKを停止させ、このクロック信号CLKを“0”にする(ステップS131)。排他的論理和回路23は、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報とを比較することにより、信号CMP_OUTを生成する。
信号CMP_OUTが“0”である場合(ステップS132において“Y”)には、ステップS141に進む。すなわち、この場合には、記憶素子67,68の抵抗状態は、すでに、スレーブラッチ40のノードN41,N42に応じた抵抗状態になっているので、フリップフロップ20は、情報を記憶回路60に書き込まない。この動作は、図6Eに対応する。
信号CMP_OUTが“1”である場合(ステップS132において“N”)には、モード制御回路70は、信号SRを“1”にする(ステップS133)。すなわち、モード制御回路70(図4)では、信号VERIFYが“0”(非アクティブ)であり、信号CMP_OUTが“1”であるので、信号CMP_OUT_Vが“1”になる。また、信号STOREが“1”(アクティブ)であり、信号INITIALIZEが“0”(非アクティブ)であるので、信号WRITEが“1”になる。よって、信号SRは“1”になる。これにより、フリップフロップ20は、情報を記憶回路60に書き込む。この動作は、図6F,6Gに対応する。
(ベリファイモードM4)
次に、制御部9は、信号SAVEを“0”(非アクティブ)にし、信号EQLを“1”(アクティブ)にし、信号VERIFYを“1”(アクティブ)にする(ステップS134)。これにより、フリップフロップ20は、スレーブラッチ40のノードN41,N42を互いに接続するとともにフローティング状態にする。この動作は、図6Hに対応する。
次に、制御部9は、信号EQLを“0”(非アクティブ)にするとともに、信号RESTOREを“0”(アクティブ)にする(ステップS135)。これにより、フリップフロップ20は、記憶回路60に記憶された情報をスレーブラッチ40に読み出す。ステップS133において情報を記憶回路60に正常に書き込むことができた場合には、信号CMP_OUTは“1”になる。この動作は、図6Iに対応する。一方、情報を正常に書き込むことができなかった場合には、信号CMP_OUTは“0”になる。この動作は、図6Jに対応する。
(リトライモードM5)
信号CMP_OUTが“0”である場合(ステップS136において“N”)には、制御部9は、書込条件を変更する(ステップS137)。具体的には、制御部9は、例えば、図7A,7B,8A,8B,9に示したように、信号CTRLの電圧やパルス幅を変更する。そして、ステップS133に戻る。そして、半導体回路1は、信号CMP_OUTが“1”になるまで、このステップS102〜S106の動作を繰り返す。
(スリープモードM2)
次に、制御部9は、信号STOREおよび信号VERIFYを“0”(非アクティブ)にするとともに、モード制御回路70は、信号SRを“0”にする(ステップS141)。すなわち、モード制御回路70(図4)では、信号STOREが“0”(非アクティブ)であり、信号INITIALIZEが“0”(非アクティブ)であるので、信号WRITEが“0”になり、信号SRは“0”になる。そして、CPU7は、電源トランジスタ8をオフ状態にする。このようにして、半導体回路1は、回路10をスリープ状態にする。
その後、しばらくしてから、半導体回路1は、動作モードをスリープモードM2からアクティブモードM1に移行させる。具体的には、半導体回路1は、リストアモードM6を経て、動作モードをアクティブモードM1に移行させる。
(リストアモードM6)
まず、制御部9は、信号RESTOREを“0”(アクティブ)にする(ステップS151)。そして、CPU7は、電源トランジスタ8をオン状態にする。これにより、フリップフロップ20は、記憶回路60に記憶された情報をスレーブラッチ40に読み出す。
そして、制御部9は、信号SAVEを“1”(アクティブ)にする(ステップS152)。これにより、フリップフロップ20は、スレーブラッチ40に記憶された情報をバルーン回路50に移す。そして、ステップS121に戻る。
このようにして、動作モードがアクティブモードM1に移行する。
以上のように、半導体回路1では、複数のフリップフロップ20のそれぞれにバルーン回路50を設けるようにした。そして、ストアモードM3において、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報との比較結果に基づいて、情報を記憶回路60に書き込むようにした。具体的には、半導体回路1では、ストアモードM3において、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報とが互いに異なる場合(ステップS132において“N”)に、図6F,6Gに示したように、情報を記憶回路60に書き込むようにした。これにより、半導体回路1では、複数のフリップフロップ20のうちの、情報を記憶回路60に書き込む必要があるフリップフロップ20においてのみ、情報を書き込むことができるので、消費電力を低減することができる。
また、半導体回路1では、ベリファイモードM4およびリトライモードM5において、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報との比較結果に基づいて、情報を記憶回路60に再び書き込むようにした。具体的には、半導体回路1では、ベリファイモードM4およびリトライモードM5において、図6Jに示したように、スレーブラッチ40に記憶された情報とバルーン回路50に記憶された情報とが同じである場合(ステップS136において“N”)に、情報を記憶回路60に再び書き込むようにした。これにより、半導体回路1では、直前の書き込み動作において、情報を記憶回路60に正常に書き込むことができなかったフリップフロップ20においてのみ、情報を書き込むことができるので、消費電力を低減することができる。
また、半導体回路1では、ベリファイモードM4およびリトライモードM5において、情報を記憶回路60に繰り返し書き込むようにした。これにより、半導体回路1では、書込エラーレートを低減することができる。
また、半導体回路1では、ベリファイモードM4およびリトライモードM5において、情報を記憶回路60に繰り返し書き込む際、書込条件を変更するようにしたので、例えば半導体回路1が搭載される電子機器に応じて、書込時間を適切に設定することができる。
[効果]
以上のように本実施の形態では、複数のフリップフロップのそれぞれにバルーン回路を設け、ストアモードにおいて、スレーブラッチに記憶された情報とバルーン回路に記憶された情報との比較結果に基づいて、情報を記憶回路に書き込むようにしたので、消費電力を低減することができる。
本実施の形態では、ベリファイモードおよびリトライモードにおいて、スレーブラッチに記憶された情報とバルーン回路に記憶された情報との比較結果に基づいて、情報を記憶回路に再び書き込むようにしたので、消費電力を低減することができる。
本実施の形態では、ベリファイモードおよびリトライモードにおいて、情報を記憶回路に繰り返し書き込むようにしたので、書込エラーレートを低減することができる。
本実施の形態では、ベリファイモードおよびリトライモードにおいて、情報を記憶回路に繰り返し書き込む際、書込条件を変更するようにしたので、書込時間を適切に設定することができる。
[変形例1]
上記実施の形態では、N型のMOSトランジスタを用いて電源トランジスタ8を構成したが、これに限定されるものではなく、これに代えて、例えば、P型のMOSトランジスタを用いて電源トランジスタを構成してもよい。以下に、本変形例に係る半導体回路1Aについて詳細に説明する。
図11は、半導体回路1Aの一構成例を表すものである。半導体回路1Aは、回路10Aと、電源トランジスタ8Aと、CPU7Aと、制御部9Aとを備えている。
回路10Aは、所定の動作を行う回路である。この回路10の電源端子T1には、電源トランジスタ8Aを介して電源電圧VDDが供給され、接地端子T2には接地電圧VGNDが供給されている。これにより、回路10内の各回路の電源端子には、電源トランジスタ8Aがオン状態であるときに電源電圧VDDが供給されるようになっている。この回路10Aは、複数のフリップフロップ20Aを有している。
電源トランジスタ8Aは、電源制御信号SPGBに基づいてオンオフするものであり、この例では、P型のMOSトランジスタである。電源制御信号SPGBは、上記実施の形態に係る電源制御信号SPGの反転信号に対応するものである。電源トランジスタ8Aのゲートには電源制御信号SPGBが供給され、ソースには電源電圧VDDが供給され、ドレインは、回路10Aの電源端子T1に接続されている。
CPU7Aは、半導体回路1Aの動作を制御するものである。また、CPU7Aは、電源トランジスタ8Aに電源制御信号SPGBを供給して電源トランジスタ8Aをオンオフすることにより、いわゆるパワーゲーティングを行う機能をも有している。
制御部9Aは、CPU7Aから指示された動作モードに基づいて、回路10Aの各フリップフロップ20Aに対して制御信号SIGを供給するものである。制御信号SIGは、8つの信号STORE,RESTOREB,INITIALIZE,RESET,VERIFY,EQL,SAVE,CTRLを含んでいる。信号RESTOREBは、上記実施の形態に係る信号RESTOREの反転信号に対応するものである。
図12は、フリップフロップ20Aの一構成例を表すものである。フリップフロップ20Aは、スレーブラッチ40Aと、記憶回路60Aと、モード制御回路70Aとを有している。
スレーブラッチ40Aは、反転論理積回路42Aと、トランジスタ43Aと、インバータ44Aと、トランジスタ45Aと、トランジスタ47Aとを有している。
反転論理積回路42Aの第1入力端子には信号RESETBが供給され、第2入力端子はノードN41に接続され、出力端子はノードN42に接続され、電源端子はトランジスタ43Aのドレインに接続されている。トランジスタ43Aは、P型のMOSトランジスタであり、ゲートには信号EQLが供給され、ソースは回路10Aの電源端子T1に接続され、ドレインは反転論理積回路42Aの電源端子に接続されている。
インバータ44Aの入力端子はノードN42に接続され、出力端子はトランスミッションゲート46の一端に接続され、電源端子はトランジスタ45Aのドレインに接続されている。トランジスタ45Aは、P型のMOSトランジスタであり、ゲートには信号EQLが供給され、ソースは回路10Aの電源端子T1に接続され、ドレインはインバータ44Aの電源端子に接続されている。
トランジスタ47Aは、N型のMOSトランジスタであり、ゲートには信号RESTOREBが供給され、ソースはインバータ44Aの出力端子およびトランスミッションゲート46の一端に接続され、他端はノードN41に接続されている。
記憶回路60Aは、インバータ61,62と、トランジスタ63A〜66Aと、記憶素子67A,68Aとを有している。
インバータ61の入力端子はバルーン回路50のノードN51に接続され、出力端子はトランジスタ63Aのソースに接続されている。インバータ62の入力端子はバルーン回路50のノードN52に接続され、出力端子はトランジスタ64Aのソースに接続されている。
トランジスタ63A,64Aは、P型のMOSトランジスタである。トランジスタ63Aのゲートには信号SRBが供給され、ソースはインバータ61Aの出力端子に接続され、ドレインはノードN61に接続されている。トランジスタ64Aのゲートには信号SRBが供給され、ソースはインバータ62の出力端子に接続され、ドレインはノードN62に接続されている。信号SRBは、上記実施の形態に係る信号SRの反転信号に対応するものである。
トランジスタ65A,66Aは、N型のMOSトランジスタである。トランジスタ65Aのゲートには信号RESTOREBが供給され、ドレインはノードN41に接続され、ソースはノードN61に接続されている。トランジスタ66Aのゲートには信号RESTOREBが供給され、ドレインはノードN42に接続され、ソースはノードN62に接続されている。
記憶素子67A,68Aは、上記実施の形態に係る記憶素子67,68と同様に、スピン注入磁化反転型の磁気トンネル接合素子である。この例では、記憶素子67Aのピンド層PはノードN61に接続され、フリー層Fには信号CTRLが供給される。同様に、記憶素子68Aのピンド層PはノードN62に接続され、フリー層Fには信号CTRLが供給される。
図13は、モード制御回路70Aの一構成例を表すものである。モード制御回路70Aは、反転論理積回路73Aを有している。反転論理積回路73Aは、信号CMP_OUT_Vと信号WRITEとの論理積を求め、その結果を信号SRBとして出力するものである。
[変形例2]
上記実施の形態では、図2に示したようにフリップフロップ20を構成したが、これに限定されるものではない。例えば、フリップフロップ20では、ノードN51をインバータ61を介してトランジスタ63のドレインに接続するとともに、ノードN52をインバータ62を介してトランジスタ64に接続したが、これに代えて、インバータ61,62を削除し、ノードN51をトランジスタ64のドレインに接続するとともに、ノードN52をトランジスタ63のドレインに接続してもよい。また、例えば、フリップフロップ20では、トランジスタ48を設けたが、これに代えて、トランジスタ48を削除してもよい。また、フリップフロップ20では、反転論理和回路52を用いてバルーン回路50をリセットできるようにしたが、これに限定されるものではなく、他の回路を用いてバルーン回路50をリセットしてもよい。
以上の例では、上記実施の形態に係るフリップフロップ20に本変形例を適用したが、これに限定されるものではなく、変形例1に係るフリップフロップ20A(図12)に、本変形例を適用してもよい。図14は、フリップフロップ20Aに本変形例を適用したフリップフロップ(フリップフロップ20B)の一構成例を表すものである。このフリップフロップ20Bは、スレーブラッチ40Bと、バルーン回路50Bと、記憶回路60Bとを有している。
スレーブラッチ40Bは、トランスミッションゲート41と、反転論理積回路42Aと、トランジスタ43Aと、インバータ44Aと、トランジスタ45Aと、トランスミッションゲート46と、トランジスタ47Aと、インバータ49とを有している。すなわち、スレーブラッチ40Bは、スレーブラッチ40A(図12)からトランジスタ48を省いたものである。
バルーン回路50Bは、トランスミッションゲート51と、インバータ55Bと、反転論理積回路56Bと、トランスミッションゲート54とを有している。インバータ55Bの入力端子はノードN51に接続され、出力端子はノードN52に接続されている。反転論理積回路56Bの第1入力端子には信号RESETBが供給され、第2入力端子はノードN52に接続され、出力端子はトランスミッションゲート54の一端に接続されている。
記憶回路60Bは、トランジスタ63A〜66Aと、記憶素子67A,68Aとを有している。トランジスタ63AのドレインはノードN52に接続されている。トランジスタ64Aのドレインは、ノードN51に接続されている。
[変形例3]
上記実施の形態では、あるフリップフロップ20において、記憶回路60に情報を正常に書き込むことができなかった場合には、そのフリップフロップ20は、正常に情報を書き込むことができるまで、情報の書き込みを繰り返すようにしたが、これに限定されるものではない。例えば、情報の書き込み回数に上限を設け、例えば、その上限回数まで情報の書き込みを繰り返しても、正常に情報を書き込むことができない場合には、情報の書き込みを停止してもよい。
[変形例4]
上記実施の形態では、磁気トンネル接合素子を用いて記憶素子67,68を構成したが、これに限定されるものではなく、抵抗状態が可逆的に変化する様々な記憶素子を用いることができる。具体的には、記憶素子は、例えば、抵抗変化型記憶素子、相変化型記憶素子、および強誘電体記憶素子などを使用することができる。
<2.適用例>
次に、上記実施の形態および変形例で説明した半導体回路の適用例について説明する。
図15は、上記実施の形態等の半導体回路が適用されるスマートフォンの外観を表すものである。このスマートフォンは、例えば、本体部310、表示部320、およびバッテリ330を有している。
上記実施の形態等の半導体回路は、このようなスマートフォンの他、デジタルカメラ、ノート型パーソナルコンピュータ、携帯型ゲーム機、ビデオカメラなどのあらゆる分野の電子機器に適用することが可能である。特に、本技術は、バッテリを有する携帯型の電子機器に適用すると効果的である。
以上、いくつかの実施の形態および変形例、ならびにそれらの具体的な応用例および電子機器への適用例を挙げて本技術を説明したが、本技術はこれらの実施の形態等には限定されず、種々の変形が可能である。
例えば、上記の実施の形態等では、書込条件を変更する際、信号CTRLの電圧やパルス幅を変更したが、これに限定されるものではない。例えば、信号SRの電圧をも変更してもよい。
また、例えば、上記の実施の形態等では、本技術をフリップフロップ20のスレーブラッチ40に適用したが、これに限定されるものではない。例えば、マスタラッチ30に適用してもよい。また、上記の実施の形態等では、本技術をD型のフリップフロップ20に適用したが、これに限定されるものではなく、例えばT型などの他のフリップフロップに適用してもよい。また、ラッチに適用してもよい。
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
なお、本技術は以下のような構成とすることができる。
(1)揮発性の第1の記憶部と、
第1の制御信号に基づいて、前記第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部と、
第2の制御信号に基づいて、前記第2の記憶部に記憶されたデータに応じたデータを記憶するとともに、第3の制御信号に基づいて、自らに記憶されたデータを前記第1の記憶部に記憶させる、不揮発性の第3の記憶部と、
前記第1の制御信号および前記第3の制御信号を生成するとともに、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとを比較し、その比較結果に基づいて前記第2の制御信号を生成する制御部と
を備えた半導体回路。
(2)前記制御部は、
第1の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させるとともに、前記第1の制御信号を用いて、前記第1の記憶部に記憶されたデータを前記第2の記憶部に記憶させ、
前記第1の期間の後の第2の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
前記(1)に記載の半導体回路。
(3)前記制御部は、
前記第2の期間の後の第3の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させ、
前記第3の期間の後の第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが一致していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
前記(2)に記載の半導体回路。
(4)前記制御部は、前記第4の期間において、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる際の動作条件を、前記第2の期間において、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる際の動作条件と異なる条件に設定する
前記(3)に記載の半導体回路。
(5)前記第3の記憶部は、駆動信号が印加される不揮発性の記憶素子を有し、
前記第2の制御信号は、前記駆動信号を含み、
前記制御部は、前記第2の期間において前記駆動信号の振幅を第1の電圧に設定し、前記第4の期間における前記駆動信号の振幅を第2の電圧に設定する
前記(4)に記載の半導体回路。
(6)前記第2の電圧は、前記第1の電圧よりも大きい
前記(5)に記載の半導体回路。
(7)前記第3の記憶部は、駆動信号が印加される不揮発性の記憶素子を有し、
前記第2の制御信号は、前記駆動信号を含み、
前記制御部は、前記第2の期間において前記駆動信号のパルス幅を第1のパルス幅に設定し、前記第4の期間における前記駆動信号のパルス幅を第2のパルス幅に設定する
前記(4)から(6)のいずれかに記載の半導体回路。
(8)前記第2のパルス幅は、前記第1のパルス幅よりも広い
前記(7)に記載の半導体回路。
(9)前記制御部は、前記第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第1の記憶部および前記第2の記憶部への電源供給を停止するように電源制御を行う
前記(3)から(8)のいずれかに記載の半導体回路。
(10)前記制御部は、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示すまで、前記第3の期間における動作と、前記第4の期間における動作とを繰り返す
前記(3)から(9)のいずれかに記載の半導体回路。
(11)第1の回路および第2の回路をさらに備え、
前記第1の期間と前記第2の期間との間の第5の期間において、
前記第1の記憶部は、前記第1の回路から供給されたデータを記憶するとともに、記憶されたデータを前記第2の回路に供給する
前記(2)から(10)のいずれかに記載の半導体回路。
(12)揮発性の第1の記憶部に記憶されたデータと、第1の制御信号に基づいて前記第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部に記憶されたデータとを比較し、
前記第1の記憶部に記憶されたデータと、前記第2の記憶部に記憶されたデータとの比較結果に基づいて、第2の制御信号を不揮発性の第3の記憶部に供給することにより、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
半導体回路の制御方法。
(13)第1の期間において、第3の制御信号を前記第3の記憶部に供給することにより、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させるとともに、前記第1の制御信号を用いて、前記第1の記憶部に記憶されたデータを前記第2の記憶部に記憶させ、
前記第1の期間の後の第2の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
前記(12)に記載の半導体回路の制御方法。
(14)前記第2の期間の後の第3の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させ、
前記第3の期間の後の第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが一致していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
前記(13)に記載の半導体回路の制御方法。
1,1A…半導体回路、7,7A…CPU、8,8A…電源トランジスタ、9,9A…制御部、10,10A…回路、11…判定回路、20,20A,20B…フリップフロップ、21,22…インバータ、23…排他的論理和回路、30…マスタラッチ、31,33,34…インバータ、32,35…トランスミッションゲート、40,40A,40B…スレーブラッチ、41,46…トランスミッションゲート、42,42A…反転論理積回路、43,43A,45,45A,47,47A,48…トランジスタ、44,44A,49…インバータ、50,50B…バルーン回路、51,54…トランスミッションゲート、52…反転論理和回路、53…インバータ、55B…インバータ、56B…反転論理積回路、60,60A,60B…記憶回路、61A,62A…インバータ、63〜66,63A〜66A…トランジスタ、67,67A,68,68A…記憶素子、70,70A…モード制御回路、71…排他的論理和回路、72…論理和回路、73…論理積回路、73A…反転論理積回路、BALOON,BALOONB,CMP_OUT,CMP_OUT_V,CTRL,EQL,EQLB,INITIALIZE,RESET,RESETB,RESTORE,RESTOREB,SAVE,SAVEB,SLAVE,SLAVEB,SR,SRB,STORE,VERIFY,WRITE…信号、CLK,C,CB…クロック信号、D…データ入力端子、M1…アクティブモード、M2…スリープモード、M3…ストアモード、M4…ベリファイモード、M5…リトライモード、M6…リストアモード、M7…リセットモード、M8…イニシャライズモード、Q…データ出力端子、SIG…制御信号、SPG,SPGB…電源制御信号、T1…電源端子、T2…接地端子、VDD…電源電圧、VGND…接地電圧。

Claims (14)

  1. 揮発性の第1の記憶部と、
    第1の制御信号に基づいて、前記第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部と、
    第2の制御信号に基づいて、前記第2の記憶部に記憶されたデータに応じたデータを記憶するとともに、第3の制御信号に基づいて、自らに記憶されたデータを前記第1の記憶部に記憶させる、不揮発性の第3の記憶部と、
    前記第1の制御信号および前記第3の制御信号を生成するとともに、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとを比較し、その比較結果に基づいて前記第2の制御信号を生成する制御部と
    を備えた半導体回路。
  2. 前記制御部は、
    第1の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させるとともに、前記第1の制御信号を用いて、前記第1の記憶部に記憶されたデータを前記第2の記憶部に記憶させ、
    前記第1の期間の後の第2の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
    請求項1に記載の半導体回路。
  3. 前記制御部は、
    前記第2の期間の後の第3の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させ、
    前記第3の期間の後の第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが一致していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
    請求項2に記載の半導体回路。
  4. 前記制御部は、前記第4の期間において、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる際の動作条件を、前記第2の期間において、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる際の動作条件と異なる条件に設定する
    請求項3に記載の半導体回路。
  5. 前記第3の記憶部は、駆動信号が印加される不揮発性の記憶素子を有し、
    前記第2の制御信号は、前記駆動信号を含み、
    前記制御部は、前記第2の期間において前記駆動信号の振幅を第1の電圧に設定し、前記第4の期間における前記駆動信号の振幅を第2の電圧に設定する
    請求項4に記載の半導体回路。
  6. 前記第2の電圧は、前記第1の電圧よりも大きい
    請求項5に記載の半導体回路。
  7. 前記第3の記憶部は、駆動信号が印加される不揮発性の記憶素子を有し、
    前記第2の制御信号は、前記駆動信号を含み、
    前記制御部は、前記第2の期間において前記駆動信号のパルス幅を第1のパルス幅に設定し、前記第4の期間における前記駆動信号のパルス幅を第2のパルス幅に設定する
    請求項4に記載の半導体回路。
  8. 前記第2のパルス幅は、前記第1のパルス幅よりも広い
    請求項7に記載の半導体回路。
  9. 前記制御部は、前記第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第1の記憶部および前記第2の記憶部への電源供給を停止するように電源制御を行う
    請求項3に記載の半導体回路。
  10. 前記制御部は、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示すまで、前記第3の期間における動作と、前記第4の期間における動作とを繰り返す
    請求項3に記載の半導体回路。
  11. 第1の回路および第2の回路をさらに備え、
    前記第1の期間と前記第2の期間との間の第5の期間において、
    前記第1の記憶部は、前記第1の回路から供給されたデータを記憶するとともに、記憶されたデータを前記第2の回路に供給する
    請求項2に記載の半導体回路。
  12. 揮発性の第1の記憶部に記憶されたデータと、第1の制御信号に基づいて前記第1の記憶部に記憶されたデータを記憶する揮発性の第2の記憶部に記憶されたデータとを比較し、
    前記第1の記憶部に記憶されたデータと、前記第2の記憶部に記憶されたデータとの比較結果に基づいて、第2の制御信号を不揮発性の第3の記憶部に供給することにより、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
    半導体回路の制御方法。
  13. 第1の期間において、第3の制御信号を前記第3の記憶部に供給することにより、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させるとともに、前記第1の制御信号を用いて、前記第1の記憶部に記憶されたデータを前記第2の記憶部に記憶させ、
    前記第1の期間の後の第2の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが相違していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
    請求項12に記載の半導体回路の制御方法。
  14. 前記第2の期間の後の第3の期間において、前記第3の制御信号を用いて、前記第3の記憶部に記憶されたデータを前記第1の記憶部に記憶させ、
    前記第3の期間の後の第4の期間において、前記比較結果が、前記第1の記憶部に記憶されたデータと前記第2の記憶部に記憶されたデータとが一致していることを示す場合に、前記第2の制御信号を用いて、前記第2の記憶部に記憶されたデータに応じたデータを前記第3の記憶部に記憶させる
    請求項13に記載の半導体回路の制御方法。
JP2017197486A 2017-10-11 2017-10-11 半導体回路およびその制御方法 Pending JP2019071577A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017197486A JP2019071577A (ja) 2017-10-11 2017-10-11 半導体回路およびその制御方法
US16/753,137 US11038494B2 (en) 2017-10-11 2018-09-25 Semiconductor circuit and method of controlling same
CN201880064733.8A CN111164892B (zh) 2017-10-11 2018-09-25 半导体电路及其控制方法
PCT/JP2018/035382 WO2019073788A1 (ja) 2017-10-11 2018-09-25 半導体回路およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017197486A JP2019071577A (ja) 2017-10-11 2017-10-11 半導体回路およびその制御方法

Publications (1)

Publication Number Publication Date
JP2019071577A true JP2019071577A (ja) 2019-05-09

Family

ID=66100592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017197486A Pending JP2019071577A (ja) 2017-10-11 2017-10-11 半導体回路およびその制御方法

Country Status (4)

Country Link
US (1) US11038494B2 (ja)
JP (1) JP2019071577A (ja)
CN (1) CN111164892B (ja)
WO (1) WO2019073788A1 (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870332A (en) * 1996-04-22 1999-02-09 United Technologies Corporation High reliability logic circuit for radiation environment
US6642763B2 (en) * 2001-12-19 2003-11-04 Intel Corporation Long setup flip-flop for improved synchronization capabilities
KR100487652B1 (ko) * 2002-08-22 2005-05-03 삼성전자주식회사 클럭신호 라인에 대한 부하를 줄일 수 있는 플립플롭
US6965261B2 (en) * 2003-11-13 2005-11-15 Texas Instruments Incorporated Ultra low-power data retention latch
US8295079B2 (en) 2007-08-31 2012-10-23 Tokyo Institute Of Technology Nonvolatile SRAM/latch circuit using current-induced magnetization reversal MTJ
JP4464462B2 (ja) * 2007-10-29 2010-05-19 パナソニック株式会社 不揮発性記憶装置および不揮発性データ記録メディア
US8085076B2 (en) * 2008-07-03 2011-12-27 Broadcom Corporation Data retention flip flop for low power applications
KR20110057601A (ko) 2009-11-24 2011-06-01 삼성전자주식회사 비휘발성 논리 회로, 상기 비휘발성 논리 회로를 포함하는 집적 회로 및 상기 집적 회로의 동작 방법
KR101611416B1 (ko) 2009-12-09 2016-04-12 삼성전자주식회사 비휘발성 논리 회로, 상기 비휘발성 논리 회로를 포함하는 집적 회로 및 상기 집적 회로의 동작 방법
JP2012243328A (ja) * 2011-05-16 2012-12-10 Renesas Electronics Corp 不揮発性半導体記憶装置、および不揮発性半導体記憶装置の保持マージン検査方法
JP5886496B2 (ja) 2011-05-20 2016-03-16 株式会社半導体エネルギー研究所 半導体装置
JP5807076B2 (ja) * 2013-01-24 2015-11-10 株式会社半導体エネルギー研究所 半導体装置
JP6316630B2 (ja) 2013-03-26 2018-04-25 株式会社半導体エネルギー研究所 半導体装置
JP2014222425A (ja) * 2013-05-14 2014-11-27 日本電気株式会社 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
JP6364365B2 (ja) * 2015-02-25 2018-07-25 株式会社東芝 半導体記憶装置
US9559671B1 (en) * 2015-12-17 2017-01-31 Nxp Usa, Inc. Devices and methods with capacitive storage for latch redundancy
US11012057B2 (en) * 2018-04-03 2021-05-18 Taiwan Semiconductor Manufacturing Company, Ltd. Data retention circuit and method
US10742201B2 (en) * 2018-09-27 2020-08-11 Apple Inc. Hybrid pulse/master-slave data latch

Also Published As

Publication number Publication date
WO2019073788A1 (ja) 2019-04-18
US20200252058A1 (en) 2020-08-06
US11038494B2 (en) 2021-06-15
CN111164892A (zh) 2020-05-15
CN111164892B (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
TWI579841B (zh) Memory circuit
TWI616875B (zh) 記憶體儲存電路及驅動記憶體儲存電路之方法
JP6521643B2 (ja) 半導体装置
TW201727630A (zh) 閂鎖裝置及方法
TWI732865B (zh) 半導體電路、驅動方法、及電子裝置
JP2008085770A (ja) 不揮発ラッチ回路および不揮発性フリップフロップ回路
TW201521022A (zh) 使用電阻性記憶體具有保存能力的記憶胞
CN107134292B (zh) 可编程多功能自旋逻辑电路
JP2008103044A (ja) 半導体集積回路装置
JP5234547B2 (ja) 電子回路
US10818369B2 (en) Semiconductor circuit, control method of semiconductor circuit, and electronic apparatus
JP6816716B2 (ja) 不揮発性記憶回路
JP6981401B2 (ja) 半導体回路、半導体回路の駆動方法、および電子機器
JP2013034040A (ja) 不揮発性フリップフロップおよび不揮発性ラッチ
US11048431B2 (en) Flip-flop based on nonvolatile memory and backup operation method thereof
JP2019071577A (ja) 半導体回路およびその制御方法
US20170131910A1 (en) Register having non-volatile memory for backing up and restoring volatile memory
US9984750B2 (en) Non-volatile memory device and operating method thereof
US9087573B2 (en) Memory device and driving method thereof
JP6555256B2 (ja) 磁性体素子とその初期化方法および半導体集積回路