JP5962658B2 - 半導体装置とその制御方法 - Google Patents

半導体装置とその制御方法 Download PDF

Info

Publication number
JP5962658B2
JP5962658B2 JP2013532667A JP2013532667A JP5962658B2 JP 5962658 B2 JP5962658 B2 JP 5962658B2 JP 2013532667 A JP2013532667 A JP 2013532667A JP 2013532667 A JP2013532667 A JP 2013532667A JP 5962658 B2 JP5962658 B2 JP 5962658B2
Authority
JP
Japan
Prior art keywords
nonvolatile
register
data
instruction
volatile
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.)
Expired - Fee Related
Application number
JP2013532667A
Other languages
English (en)
Other versions
JPWO2013035836A1 (ja
Inventor
竜介 根橋
竜介 根橋
崎村 昇
昇 崎村
幸秀 辻
幸秀 辻
あゆ香 多田
あゆ香 多田
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
Publication of JPWO2013035836A1 publication Critical patent/JPWO2013035836A1/ja
Application granted granted Critical
Publication of JP5962658B2 publication Critical patent/JP5962658B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/161Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1693Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/0081Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/007Register arrays
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K17/00Electronic switching or gating, i.e. not by contact-making and –breaking
    • H03K17/22Modifications for ensuring a predetermined initial state when the supply voltage has been applied
    • H03K17/24Storing the actual state when the supply voltage fails

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2011−197517号(2011年9月9日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体装置とその制御方法に関し、特に、例えば不揮発なレジスタ等の記憶手段を備えた半導体装置とその制御方法に関する。
近年、半導体デバイスの集積度が向上するにつれ、トランジスタのリーク電流による、回路が動作していない時の電力消費の増大等が問題になっている。そこで、半導体集積回路を利用していないときに、当該回路(回路ブロック)の電源供給又はLSI(Large Scale Integrated Circuit)全体への電源供給を停止してリーク電流を低減する、低消費電力モードを備えた半導体集積回路が開発されている。
しかしながら、フリップフロップやラッチ等、あるいは容量にデータを蓄積するダイナミックメモリ等の揮発性メモリでは、電源オフで記憶情報は失われる。すなわち、揮発性メモリを備えた半導体集積回路は電源供給が停止されると、不揮発性メモリを除いて、その内部状態(記憶情報)は消去されてしまう。そのため、半導体集積回路は、電源供給停止に先立って、保持しておきたいデータを外部記憶等(例えば不揮発性のストレージデバイス)に退避する必要がある。
特許文献1には、コンピュータ・システム構成要素の状態を保存する方法および装置が開示されている。特許文献1では、バッテリ式コンピュータ・システム内の集積回路が完全に遮断された後のコンピュータ・システムの再開機能を提供するための構成として、内部状態をコンピュータシステム構成要素内の走査ラッチを使用して読み取り、読み取った内部状態は退避憶域に保存され、電源が遮断される。
特許文献1のように、内部状態を保持している回路部分から分離して配置されたメモリ素子を利用する場合、データ転送に伴う時間遅延と消費電力が発生する。特に、電源のオン/オフを高い頻度で行った場合には、データ転送に伴う時間遅延や消費電力が増大する可能性がある。
特許文献2には、内部情報を保持しつつ、消費電力が低減された待機モードに高速に移行できる半導体装置が開示されている。特許文献2において、電源制御部は、待機状態にする該当回路ブロックの電源オフまたはチップ全体の電源オフに先だって、該当回路ブロックに対して制御信号を活性化し、該当回路ブロックがデータを処理した演算結果をメモリ部に退避させる。電源制御部は、待機状態にしていた該当回路ブロックに再び電源を供給するときには、電源供給開始後制御信号を活性化して前記メモリ部に退避させていたデータを該当回路ブロックにリストアする。該当回路ブロック中のフリップフロップは、データの退避、リストアを行なうときは直列接続されて、通常時とは異なる経路で、データ転送を行なう構成とされる。特許文献2に記載の半導体装置は、不揮発メモリセルを付加することにより、複雑な転送動作が不要となり、高速にデータを退避できる。
しかしながら、特許文献2に記載の半導体装置は、モジュール毎に備えられた電源スイッチをオン・オフする度にそのモジュールに含まれる全ての揮発性のラッチの保持データを不揮発性のメモリ部に退避・復帰するため、不必要な書き込みやロードが発生し、消費電力の増大する、という問題がある。特に、不揮発メモリとして、例えば磁性素子を用いた場合、データを書き換えるのに必要な書き込み電流は1ビット当たり典型的には数100uAから数mAと大きい。このため、電源オフの度に、全ての不揮発メモリを書き換えると、書き換えに要する消費電力が大きくなる。また、障害等による予期せぬ電源停止に際して、上記特許文献1、2のコンピュータシステムでは、内部状態を保存する時間を確保することができない場合が生じる可能性がある。
なお、特許文献3には、ラッチ回路と第1、第2の磁気抵抗素子を備え、書き込み時、電流供給部はラッチ回路の状態に応じて第1、第2の磁気抵抗素子の磁化状態を相補に変化させ、読み出し時、第1、第2の磁気抵抗素子(例示:MTJ(Magnetic Tunnel Junction)素子)の磁化状態に対応するデータをラッチ回路が保持するデータとする不揮発性ラッチ回路を備えた構成が開示されている。特許文献4には、データを記憶する双安定回路と、双安定回路に記憶されたデータを強磁性電極フリー層の磁化方向に応じて不揮発的にストアする強磁性トンネル接合素子(MTJ1、MTJ2)を有し、強磁性トンネル接合素子(MTJ1、MTJ2)に不揮発的に記憶されたデータを双安定回路にリストア可能な記憶回路が開示されている。
特開2002−182803号公報 特開2004−133969号公報 国際公開第2009/078242号 国際公開第2009/028298号
なお、上記特許文献1乃至4の全開示内容はその引用をもって本書に繰込み記載する。以下の分析は本発明によって与えられる。関連技術の半導体装置(半導体集積回路)は、メモリ素子とロジック素子が分離して配置されることに起因するデータ転送の遅延や、データを転送する配線や回路の消費電力の増加が問題となっている。
そこで、本発明の目的は、データの退避と復帰に要する時間の短縮と消費電力の低減を可能とする半導体装置とその制御方法を提供することにある。
また、本発明は、上記目的を達成するとともに、不揮発メモリの書き換え回数、ロード回数を低減可能とし、書き換えやロードを行う不揮発素子の素子数を縮減可能とする半導体装置とその制御方法を提供することにある。
さらに本発明の目的は、電源障害等に対する耐性を高めることを可能とする半導体装置とその制御方法を提供することにある。
本発明によれば、記憶装置から読み出した命令を解釈する命令デコーダと、
データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子と、を含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた1つ又は複数の不揮発レジスタと、
前記1つ又は複数の不揮発レジスタを制御する不揮発レジスタ制御回路と、
を備え、
命令セットとして、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
を含み、
前記不揮発レジスタ制御回路は、
前記命令デコーダで解釈した命令が前記書き込み命令の場合、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行い、
前記命令デコーダで解釈した命令が前記ロード命令の場合、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる、制御を行う、半導体装置が提供される。
本発明によれば、データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子とを含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた、1つ又は複数の不揮発レジスタを備えた半導体装置の制御方法であって、
命令セットとして、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
を用意し、
命令デコーダで解釈した命令が、前記書き込み命令の場合、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行い、
前記命令デコーダで解釈した命令が前記ロード命令の場合、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる、半導体装置の制御方法が提供される。
本発明によれば、データの退避と復帰に要する時間の短縮と消費電力の低減を図ることができる。また、本発明によれば、不揮発メモリの書き換え回数、ロード回数を低減可能とし、書き換えやロードを行う不揮発素子の素子数を縮減可能としている。さらに、本発明によれば、電源障害等に対する耐性を高める、ことを可能としている。
本発明の例示的な第1実施形態の構成を例示する図である。 本発明の例示的な第1実施形態における命令形式の一例を例示する図である。 本発明の例示的な第1実施形態における不揮発レジスタのフリップフロップの構成を例示する図である。 本発明の例示的な第1実施形態における不揮発素子の断面構成を模式的に示す図である。 本発明の例示的な第1実施形態における不揮発レジスタと不揮発レジスタ制御回路の接続構成を例示する図である。 本発明の例示的な第1実施形態における不揮発素子への書き込み時の動作波形の一例を例示する図である。 本発明の例示的な第1実施形態における不揮発素子からのロード時の動作波形の一例を例示する図である。 本発明の例示的な第1実施形態における不揮発素子への書き込み時の動作波形の別の例を例示する図である。 本発明の例示的な第1実施形態における不揮発素子からロード時の動作波形の別の例を例示する図である。 本発明の例示的な第1実施形態における不揮発素子からロード時の動作波形の別の例を例示する図である。 本発明の例示的な第2実施形態の構成を例示する図である。 本発明の例示的な第2実施形態における命令形式の一例を例示する図である。 本発明の例示的な第2実施形態における不揮発素子への書き込み時の動作波形の一例を例示する図である。 本発明の例示的な第3実施形態の構成を例示する図である。 本発明の例示的な第3実施形態における命令形式の一例の一例を示す図である。 本発明の例示的な第4実施形態の構成を例示する図である。 本発明の例示的な第4実施形態におけるダーティビットの状態遷移を例示する図である。
本発明の実施形態の半導体装置によれば、m個の不揮発レジスタ(103:103〜103)と、命令デコーダ(101)と、不揮発レジスタ制御回路(102)を備えている。m個の不揮発レジスタ(103〜103)にはA1からAmまでのアドレスが与えられている。前記不揮発レジスタ(103)は、データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子を含むフリップフロップ(104:104〜104)を備えている。
命令デコーダ(101)は、命令を保持する記憶装置(100)から読み出した命令を解釈する。
前記命令は、一つの不揮発レジスタ(103x)のアドレスAx(1≦x≦m)を指定するビット(オペランド)や書き込み/ロードを指定するビット(オペコード)を含む。
命令デコーダ(101)で解釈した命令が、不揮発レジスタの不揮発素子への書き込み命令の場合、不揮発レジスタ制御回路(102)は、当該命令で指定されたアドレスAxの不揮発レジスタ(103x)において、保持回路のデータの不揮発素子への書き込みを行うように制御する。命令デコーダ(101)で解釈した命令が、不揮発素子からのロード命令の場合、不揮発レジスタ制御回路(102)は、当該命令で指定されたアドレスAxの不揮発レジスタ(103x)において、不揮発素子のデータの保持回路へのロードを行うように制御する。
本発明のいくつかの実施形態によれば、p個の不揮発素子書き込みモードビット(WMB1〜WMBp)を、命令内の所定のビットフィールドに備えている。あるいは、半導体装置は、不揮発素子書き込みモードビット(WMB1〜WMBp)を保持するレジスタ(106)を備えた構成としてもよい。m個の不揮発レジスタ(103〜103)のアドレスA1からAmは、q個のグループG1からGqに分けられる。それぞれのグループGyは、不揮発素子書き込みモードビットWMB1からWMBpのうちの一つWMBzと1対1に対応付けられるか、もしくは、対応する不揮発素子書き込みモードビットが存在しない。グループGyに属するアドレスAxの不揮発レジスタ(103x)の保持回路へ書き込みを行う際に、前記対応付けられた不揮発素子書き込みモードビットWMBzが活性状態(例えば論理値1)の場合、前記保持回路への書き込みデータを、前記指定されたアドレスAxの不揮発レジスタの不揮発素子へ書き込むようにしてもよい。前記対応付けられた不揮発素子書き込みモードビットWMBzが非活性状態(例えば論理値0)の場合、前記保持回路への書き込みデータは、前記指定されたアドレスAxの不揮発レジスタの不揮発素子への書き込みは行わない。前記対応付けられた不揮発素子書き込みモードビットWMBzが存在しない場合には、前記保持回路への書き込みデータの前記指定されたアドレスAxの不揮発レジスタの不揮発素子への書き込みは行わない。
本発明の別の実施形態によれば、半導体装置は、さらに、前記不揮発レジスタの前記保持回路と前記不揮発素子の内容が異なることを示すr個のフラグビット(ダーティビット)DTY1〜DTYrを保持するレジスタ(107)に備えた構成としてもよい。前記m個の不揮発レジスタのアドレスA1からAmは、s個のグループG1からGsに分割されている。それぞれのグループGyは、ダーティビットDTY1〜DTYrまでのうちの一つDTYzと1対1に対応付けられるか、もしくは、対応するダーティビットが存在しない。
不揮発レジスタ制御回路(102)は、グループGyに属する全ての不揮発レジスタの保持回路のデータと不揮発素子のデータが一致している場合に、グループGyに対応付けられた前記ダーティビットDTYzが存在していれば、前記ダーティビットDTYzを第1の値(例えば論理0)にセットする。グループGyに属する全ての不揮発レジスタの保持回路のデータと不揮発素子のデータが一致していない可能性がある場合に、前記ダーティビットDTYzが存在していれば、前記ダーティビットDTYzを第2の値(例えば論理1)にセットする。
前記デコーダが解釈した命令がアドレスAxの不揮発レジスタにおける不揮発素子への書き込み命令の時、アドレスAxの不揮発レジスタの属するグループGyに対応した前記ダーティビットDTYzが存在する場合、前記ダーティビットDTYzが第2の値(論理1)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込み、前記ダーティビットDTYzが第1の値(論理0)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込まない。
本発明の実施形態によれば、前記グループGyに属するアドレスAxの不揮発レジスタの保持回路は、電源オンに伴って、予め設定されている初期値に設定するようにしてもよい。不揮発レジスタ制御回路(102)は、前記グループGyに対応したダーティビットDTYzが存在するとき、ダーティビットDTYzを第2の値(論理1)に設定する、ようにしてもよい。不揮発レジスタ制御回路(102)は、グループGyに属するアドレスAxの不揮発レジスタの保持回路へ揮発データを書き込んだ際には、前記グループGyに対応したダーティビットDTYzが存在するとき、ダーティビットDTYzを第2の値(論理1)に設定する、ようにしてもよい。前記グループGyに属する全ての不揮発レジスタの保持回路へ、前記不揮発素子のデータをロードした際には、前記グループGyに対応したダーティビットDTYzが存在するとき、ダーティビットDTYzを第1の値(論理0)に設定する、ようにしてもよい。前記グループGyに属する全ての不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込んだ際には、前記グループGyに対応したダーティビットDTYzが存在するとき、ダーティビットDTYzを第2の値(論理1)に設定する、ようにしてもよい。
前記デコーダが解釈した命令がアドレスAxの不揮レジスタの不揮発素子への書き込み命令の時、アドレスAxの不揮発レジスタの属するグループGyに対応した前記ダーティビットDTYzが存在したとき、前記ダーティビットDTYzが第2の値(論理1)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込み、前記ダーティビットDTYzが第1の値(論理0)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込まない、ようにしてもよい。
本発明の実施形態によれば、さらに、前記m個の不揮発レジスタのアドレスA1からAmは、t個のグループG1からGtに分割され、前記命令は、グループGy(1≦y≦t)に属するひとつのアドレスAxを指定し、前記解釈した命令が不揮発素子への書き込み命令の場合、
前記不揮発レジスタ制御回路は前記グループGyに属する全ての不揮発レジスタにおいて、前記保持回路のデータを前記不揮発素子へ書き込みを行い、
前記解釈した命令が不揮発素子からのロード命令の場合、
前記不揮発レジスタ制御回路は前記グループGyに属する全ての不揮発レジスタにおいて、前記不揮発素子のデータを前記保持回路へロードを行う、ようにしてもよい。
本発明の実施形態によれば、第1サイクルで前記不揮発素子の書き込み命令を前記記憶装置から読み出し、前記第1サイクルの次の第2サイクルで、不揮発素子の書き込みを行うために書き込み電流を流すとともに、前記第2サイクルで、次の命令を前記記憶装置から読み出すパイプライン的な動作をする。
以下、図面を参照して本発明の例示的な実施形態について説明する。
(第1実施形態)
図1は、本発明の例示的な第1実施形態の構成を示す図である。図1を参照すると、第1の実施形態において、半導体集積回路(LSI)は、記憶装置100と、命令デコーダ101と、不揮発レジスタ制御回路102と、複数(m個)の不揮発レジスタ103〜103とを含む。
複数の不揮発レジスタ103〜103の各々は、複数(n個)の不揮発フリップフロップ104〜104を備えている。不揮発フリップフロップ104〜104は同一構成とされ、不揮発フリップフロップ104〜104の各単体は「不揮発フリップフロップ104」とも記載される。
不揮発フリップフロップ104は、データを揮発的に保持する保持回路(電源オフで保持データは消失する)と、データを不揮発的に保持する不揮発素子(電源オフでも保持データは保持される)と、を含む。
不揮発フリップフロップ104は、該不揮発フリップフロップ104内の保持回路と不揮発素子との間で、データを転送する機能を備える。
不揮発フリップフロップ104において、保持回路のデータを不揮発素子へ転送することを、不揮発素子の「書き込み」という。
不揮発フリップフロップ104において、不揮発素子のデータを保持回路へ転送することを不揮発素子の「ロード」という。
図1において、各不揮発レジスタ103〜103は、n個の不揮発フリップフロップ104〜104から構成されている。ただし、nの値は、各不揮発レジスタ103においてそれぞれ互いに異なっていてもよい。ただし、多くの場合、nの値は、各不揮発レジスタ103〜103で同じである。
m個の不揮発レジスタ103〜103には、アドレスA1からAmがそれぞれ与えられている。特に制限されるものでないが、図1では、例えば、アドレスA1、A2、A3の不揮発レジスタ103〜103として、
プログラムカウンタ(PC: Program Counter)、
スタックポイント(SP: Stack Pointer)、
ステータスレジスタ(SR: Status Register
が示されている。図示した以外に、不揮発レジスタ103は、汎用レジスタや、周辺モジュール内のレジスタも含む。これらの不揮発レジスタ103〜103の値は、例えば半導体集積回路の内部状態を表す。
つまり、不揮発レジスタ103の保持回路の値を、不揮発素子に退避させ、電源を落とし、しばらく後に電源を投入し、それらのデータを元に戻すことで、半導体集積回路の動作を中断前の状態に戻すことができる。
なお、関連技術の揮発性のフリップフロップのみを使用した半導体集積回路では、
・書き込みや読み出しを指定して行えるようにアドレスが割り振られているフリップフロップと、
・アドレスが割り振られていないフリップフロップと、
が存在する。
本実施形態において、アドレスが割り振られていないフリップフロップに対しても、電源投入後にデータを復帰したい場合、アドレスを割り振るようにしてもよい。
これらのフリップフロップは、例えばソフトウェアからアドレスを指定し、不揮発素子への書き込み、または、ロードを行える機能を備えているが、ソフトウェアから、直接、保持回路の書き込み、または、読み出しを行える機能は、必ずしも必要ない。
半導体集積回路における命令セット(半導体集積回路で実行できる命令の集合)は、不揮発レジスタを制御する不揮発レジスタ制御命令を含む。命令の読み出しから不揮発レジスタの制御までの過程を簡単に説明する。なお、詳細の動作説明は後述する。はじめに、中央処理装置は、プログラムカウンタPC(不揮発レジスタ103)で指定されるアドレスを出力し、そのアドレスに記憶されている命令を記憶装置100から読み出す。記憶装置100は、半導体集積回路内に設けられるが、半導体集積回路外部に設ける構成としてもよい。例えばDRAM(ダイナミックランダムアクセスメモリ)等からなるメモリモジュール等(例えばDIMM(Dual Inline Memory Module)モジュール)であってもよく、あるいは、SRAM(スタティックランダムアクセスメモリ)等からなるキャッシュメモリ、あるいは半導体集積回路内に設けられ、先読みされた命令を格納する命令キャッシュ等であってもよい。あるいは、半導体集積回路内又は外付けで設けられるROM(リードオンリメモリ)等であってもよく、さらに、命令を格納しアドレスを与えて読み出し可能なものであれば、他の任意のストレージデバイスであってもよい。
命令デコーダ101は、記憶装置100から読み出した命令を解読する。
命令コー101で解読した命令が、不揮発素子の書き込み命令の場合、不揮発レジスタ制御回路102は、当該命令で指定された不揮発レジスタ103の不揮発フリップフロップ104内の保持回路のデータを不揮発素子に書き込む。
命令コー101で解読した命令が、不揮発素子のロード命令の場合、不揮発レジスタ制御回路102は、該命令で指定された不揮発レジスタ103の不揮発フリップフロップ104内の不揮発素子のデータを保持回路にロードする。
不揮発レジスタの制御命令は、例えば、シングルオペランド(単一のオペランド)の命令形式を利用してもよい。図2に、シングルオペランドの命令形式の一例を示す。
(a+b+c)ビットからなる命令のうち、LSB(Least Significant Bit)からaビットは、レジスタ指定に利用される。
(a+1)ビットからa+bビットまでのbビットは、アドレッシングモードの指定に利用される。
a+b+1ビットからa+b+cビットまでのcビットは、命令コードの指定に利用される。
本実施形態によれば、命令コードに、不揮発レジスタの制御命令を追加することで、既存のアーキテクチャを大きく変更することなく、不揮発レジスタ103を制御することができる。
例えば、レジスタ番号4の不揮発レジスタの書き込みを行う場合には、
レジスタの指定ビットを、レジスタ番号4を指すように設定し、
アドレッシングモードは、通常用意されているレジスタを操作するモードに設定し、
命令コードは、新規に追加した不揮発レジスタの書き込み命令
に設定すればよい。なお、アドレッシングモードは、他のアドレッシングモードを利用することもできる。
また、本実施形態の変形例として、アドレスA1からAmまでのm個の不揮発レジスタ103〜103を複数のグループに分ける構成としてもよい。例えば、命令である不揮発アドレスを指定すると、そのアドレスの不揮発レジスタが属するグループの複数の不揮発レジスタを同時に制御できるようにしてもよい。
例えば、同一グループに属する連続するレジスタ番号4と5の2つの不揮発レジスタの書き込みを行う場合には、命令において、図2のレジスタを指定するビットフィールドは、レジスタ番号4を指すように設定し、アドレッシングモードは、通常用意されているレジスタを操作するモードに設定し、命令コードは、新規に追加した不揮発レジスタの書き込み命令に設定すればよい。
さらに、不揮発レジスタ制御回路102は、アドレスの例えば最下位ビット(LSB:Least Significant Bit)は無視して、アドレスのデコードをするように構成すればよい。この場合、レジスタ番号4の指定ビットである“100”とレジスタ番号の指定ビットである“101”は同時に選択される。このように、複数の不揮発レジスタを同時に操作することは、不揮発レジスタ制御回路102において、不揮発レジスタを制御する時間の節約(縮減)につながる。
上記した特許文献2においては、モジュール内の全てのレジスタを書き込み、ロードするため、書き込む必要のない不揮発素子への書き込み、ロードする必要のない不揮発素子からのロード動作が発生し、無駄な電力の消費されることになる。
これに対して、本実施形態によれば、指定したレジスタの属するグループに対して書き込み、ロードすることにより、データ退避・復帰に要する時間的なオーバーヘッドを抑えつつ、データ退避・復帰に要する無駄な電力を削減できる。
図3は、本発明の第1実施形態における揮発フリップフロップ104の構成の一例を示す図である。
図3を参照すると、不揮発フリップフロップ104は、不揮発素子(R1、R2)と、マスタラッチ(T1−T4、INV1、2、T5−T8)と、スレーブラッチ(T11、T12、T13、T14)とを含む。
本実施形態では、スレーブラッチと不揮発素子の間でデータをやり取りする。具体的には、不揮発フリップフロップ104は、スレーブラッチのデータを不揮発素子へ書き込む機能と、不揮発素子からスレーブラッチへデータをロードする機能を備えている。
また、不揮発フリップフロップ104は、以下のような他の形態として構成するようにしてもよい。他の形態の不揮発フリップフロップでは、マスタラッチの保持データを不揮発素子へ書き込む機能と、不揮発素子からマスタラッチへデータをロードする機能を備えていてもよい。あるいは、他の形態の不揮発フリップフロップでは、マスタラッチの保持データを不揮発素子へ書き込む機能と、不揮発素子からスレーブラッチへデータをロードする機能を備えていてもよい。あるいは、他の形態の不揮発フリップフロップでは、スレーブラッチの保持データを不揮発素子へ書き込む機能と、不揮発素子からマスタラッチへデータをロードする機能を備えていてもよい。
図3に示すように、マスタラッチは、第1のクロックドインバータ(T1−T4)、第1のインバータINV1、第2のクロックドインバータ(T5−T8)、第2のインバータINV2を備えている。第1のクロックドインバータは、
・電源(VDD)にソースが接続され、データ端子Dにゲートが接続されたPMOSトランジスタT1と、
・PMOSトランジスタT1のドレインにソースが接続され、P2(クロック信号CLKを反転させるインバータINV5、INV6の出力でありクロック信号CLKと同相)にゲートが接続されたPMOSトランジスタT2と、
・PMOSトランジスタT2のドレインにドレインが接続され、P1(クロック信号CLKを反転させるインバータINV5の出力)にゲートが接続されたNMOSトランジスタT3と、
・NMOSトランジスタT3のソースにドレインが接続され、グランド(GND)にソースが接続され、データ入力端子Dにゲートが接続されたNMOSトランジスタT4からなる。
第1のインバータINV1は、第1のクロックドインバータの出力(トランジスタT2、T3のドレインの接続点)に入力が接続されている。
第2のクロックドインバータは、
・電源にソースが接続され、第1のインバータINV1の出力にゲートが接続されたPMOSトランジスタT5と、
・PMOSトランジスタT5のドレインにソースが接続され、P1にゲートが接続されたPMOSトランジスタT6と、
・PMOSトランジスタT6のドレインにドレインが接続され、P2にゲートが接続されたNMOSトランジスタT7と、
・NMOSトランジスタT7のソースにドレインが接続され、グランド(GND)にソースが接続され、第1のインバータINV1の出力にゲートが接続されたNMOSトランジスタT8からなる。
第2のインバータINV2は、第1のインバータINV1の出力に入力が接続されている。第1のインバータINV1と、第2のクロックドインバータ(T5−T8)は、保持回路(双安定回路)を構成する。すなわち、クロック信号CLKがHighで、P1がLow、P2がHighのとき、第2のクロックドインバータ(トランジスタT5−T8)は活性化して(オンして)インバータとして作動し、第1のインバータINV1とともにフリップフロップを構成する。
クロック信号CLKがLowで、P1がHigh、P2がLowのとき、データ入力端子Dの信号は、第1のクロックドインバータ(T1−T4)で反転され、第1のインバータINV1に入力されて反転される。このとき、第2のクロックドインバータ(T5−T8)はオフ状態とされる。
P1がLow、P2がHighのとき、第1のクロックドインバータ(T1−T4)はオフとされ(データ入力端子Dの信号は第1のインバータINV1へ伝達されない)、第2のクロックドインバータ(T5−T8)がオンとされ、第1のインバータINV1とオン状態の第2のクロックドインバータ(T5−T8)とがフリップフロップ(双安定回路)を構成する。マスタラッチのデータはノードN1で保持される。また、第2のインバータインバータINV2で反転されたデータは、ノードN2で保持される。
ノードN1、N2に保持されるデータは、P2がHighのとき(クロック信号CLKがHighのとき)、オン状態とされるトランジスタ(パストランジスタ)T9とT10を介してスレーブラッチの保持ノードN3とN4にそれぞれ入力される。P2がLowのとき(クロック信号CLKがLowのとき)、トランジスタT9とT10はオフし、ノードN1とN2とスレーブラッチのノードN3とN4とは、それぞれ電気的に非接続とされる。
スレーブラッチは、
・電源(VDD)にソースが接続されたPMOSトランジスタT11、T13と、
・PMOSトランジスタT11、T13のドレインにドレインがそれぞれ接続されたNMOSトランジスタT12、T14と、
を備えている。トランジスタT11、T12(第1のCMOSインバータ)の共通接続されたゲート(第1のCMOSインバータの入力ノード)はノードN4に接続されている。
トランジスタT11、T12の共通接続されたドレイン(第1のCMOSインバータの出力ノード)はノードN3に接続されている。
トランジスタT13、T14(第2のCMOSインバータ)の共通接続されたゲート(第2のCMOSインバータの入力ノード)はノードN3に接続されている。
トランジスタT13、T14の共通接続されたドレイン(第のCMOSインバータの出力ノード)はノードN4に接続されている。トランジスタT11、T13、T12、T14は保持回路を構成する。
スレーブラッチは、さらに、
・第1端子がトランジスタT12のソースに接続され、第2端子が、トランジスタT15、T16の接続ノードN5に接続される不揮発素子R1と、
・第1端子がトランジスタT14のソースに接続され、第2端子がトランジスタT15、T16の接続ノードNとトランジスタT17、T18の接続ノードN6に接続された不揮発素子R2を備えている。なお、不揮発素子R1、R2を強磁性トンネル接合素子(MTJ)で構成する場合、第3端子同士は接続される。
スレーブラッチは、さらに、
・電源にドレインが接続されたNMOSトランジスタT15、T17と、
・NMOSトランジスタT15、T17のソースにドレインそれぞれ接続され、グランド(GND)にソースが接続されたNMOSトランジスタT16、T18と、を備えている。
トランジスタT15とT16の共通接続されたドレイン(N5)と、トランジスタT17とT18の共通接続されたドレイン(N6)は、互いに接続されている(後述される図4に示すように、不揮発素子のハード層を接続するメタル層を介して接続される)。
スレーブラッチは、さらに、
・ノードN5とN6の接続ノード(後述される図4のメタル層1(207))にドレインが接続され、ソースがGNDに接続され、制御信号WB(書き込み時にLow)をゲートに入力するNMOトランジスタT19をさらに備えている。トランジスタT19は、WBがHighのとき、すなわち、書き込み時以外は、オンし、トランジスタT12とT14のソースを不揮発素子R1、R2を介してGNDに接続する。トランジスタT15−18は、書き込み用トランジスタを構成している。
スレーブラッチは、さらに、
・トランジスタT16、T17のゲートに出力が接続された、書き込み用の2入力NOR回路NOR1と、
・トランジスタT18、T15のゲートに出力が接続された、書き込み用の2入力NOR回路NOR2と、を備えている。
2入力NOR回路NOR1の入力は、ノードN3とWBに接続されている。
2入力NOR回路NOR2の入力は、ノードN4とWBに接続されている。
WBがLowのとき、2入力NOR回路NOR1、NOR2は、ノードN3、N4を反転した信号を、それぞれ出力する。
スレーブラッチは、さらに、
・電源とノードN3間に接続されたPMOSトランジスタT21と、
・電源とノードN4間に接続されたPMOSトランジスタT22と、
・ノードN3、N4間に接続されたPMOSトランジスタT20と、を備えている。
トランジスタT20〜T22のゲートは、制御信号LBに共通接続されている。
トランジスタT20〜T22は、プリチャージ・イコライズ回路を構成しており、LBがLowのとき、ノードN3、N4を電源電位にプリチャージ・イコライズする。
スレーブラッチは、さらに、
・ノードN3、N4に入力端子が接続された出力用のインバータ(反転バッファ)INV3、INV4を備えている。
スレーブラッチにおいて、トランジスタT11−T14からなる保持回路にラッチされた相補のデータ(ノードN3、N4のデータ)は、2入力NOR回路NOR1、NOR2の第1の入力にそれぞれ入力される。書き込み制御信号WBは、トランジスタT19のゲートとNOR回路NOR1、NOR2の第2の入力に入力される。NOR回路NOR1、NOR2の出力は、トランジスタT17、T15のゲートにそれぞれ接続されている。
ロード信号LBは、トランジスタT20−22のゲートに入力される。ロード信号LBがLowのとき、ノードN3、N4は電源電位にプリチャージ・イコライズされる。
出力信号Qは、ノードN3に入力が接続されたインバータINV4から出力される。出力信号QBは、ノードN4に入力が接続されたインバータINV3から出力される。
クロック信号CLKは、縦続接続されたインバータINV5とインバータINV6に入力され、インバータINV5とインバータINV6でそれぞれ生成された相補のクロック信号P1とP2は各クロックドインバータに供給される。また、P2はトランジスタT9、T10のゲートに供給される。
図3に示した不揮発フリップフロップは、既存のフリップフロップの機能に加え、下記の機能を備えている。
・スレーブラッチの保持回路に電気的に記憶しているデータを不揮発素子へ書き込むことができる。
・不揮発素子に蓄えられているデータを読み出し、読み出したデータをスレーブラッチの保持回路で保持することができる。
不揮発素子は、例えば、磁気抵抗効果を利用した強磁性トンネル接合素子(MTJ(Magnetic Tunnel Junction)素子)が用いられる。
ここで、MTJ素子は、磁化方向が変化する強磁性層(フリー層)と、磁化方向が固定された強磁性層(固定層)と、フリー層と固定層の間に形成される絶縁層を含む構成を備えている。このようなMTJ素子に、膜面垂直方向に電流を流した際の抵抗値は、フリー層と固定層の磁化の方向によって変化する。
フリー層の磁化と固定層の磁化が平行の場合、抵抗値は低く、
フリー層の磁化と固定層の磁化が反平行の場合、抵抗値は高くなる。
この性質を利用して、MTJ素子では、この抵抗値、もしくは、フリー層の磁化の方向に、論理データを対応付ける。例えば、低抵抗状態を論理値‘0’、高抵抗状態を論理値‘1’とする。
MTJ素子の書き込みは、
電流磁界を用いてフリー層の磁化方向を制御する磁場書き込み方式と、
スピントルク効果を利用してフリー層の磁化方向を制御するスピントルク書き込み方式と、が知られている。
図4は、不揮発素子として、スピントルク効果を利用して書き込みを行う磁壁移動素子の素子近傍の断面を模式的に示す図である。なお、不揮発素子に接続されるトランジスタ(図3のトランジスタ、T12、T14、T15、T16、T17、T18)はいずれも回路図記号で示されている。この不揮発素子は、基板に近い順から、
メタル層1(206、207、216))、
ハード層1(204、214)、ハード層2(205、215)、
フリー層(203、213)、
絶縁層(202、212)、
リファレンス層(201、211)
を含む。
不揮発素子R1において、リファレンス層201は、不揮発レジスタのトランジスタT12に、ハード層1(204)はトランジスタT15とT16の接続点に接続される。
ハード層2(205)は、メタル層1(207)、ハード層2(215)、不揮発素子R2のハード層1(214)を介して、トランジスタT17、T18の接続点に接続される。
一例として、フリー層およびハード層は垂直磁気異方性を有する磁性薄膜を利用している。ハード層1(204)とハード層2(205)の磁化方向は逆向きに固定されている。フリー層(203)の磁化は、スピン偏極電流の向きによって、Z方向に沿って、上下にコントロールできる。例えば、ハード層1(204)からハード層2(205)に向かって電流を流した場合、偏極した電子は逆向きに流れ、ハード層2(205)と同じ向きにフリー層(203)の磁化は揃う。逆に、ハード層2(205)からハード層1(204)に向かって電流を流した場合、ハード層1(204)と同じ向きにフリー層(203)の磁化は揃う。不揮発素子R2についても同様である。
図3を参照して、不揮発レジスタの書き込み動作を説明する。書き込み動作時、書き込み制御信号WBはLow電位とされる。不揮発素子R1、R2への書き込みデータはスレーブラッチのデータQに対応する。インバータINV4の出力データQが‘0’(Low電位とする)の場合、ノードN4は電源電位(High電位)、ノードN3はLow電位となり、NOR2の出力はLow、NOR1の出力はHighとなり、トランジスタT16とT17がオン、トランジスタT15とT18がオフになる。このとき、ノードN6(High電位)からノードN5(Low電位)へ書き込み電流が流れる。これにより、不揮発素子の抵抗R1は低抵抗状態、抵抗R2は高抵抗状態になり、データQに対応したデータ‘0’を不揮発素子は記憶する。
一方、データQが‘1’(High電位)の場合、ノードN3は電源電位(High電位)、ノードN4はLow電位となり、NOR1の出力はLow、NOR2の出力はHighとなり、トランジスタT16とT17がオフ、トランジスタT15とT18がオンになる。このとき、ノードN5(High電位)からノードN6(Low電位)へ書き込み電流が流れる。これにより、不揮発素子の抵抗R1は高抵抗状態、抵抗R2は低抵抗状態になり、データQと対応したデータ‘1’を不揮発素子は記憶する。
図3を参照して、不揮発レジスタのロード動作を説明する。ロード動作時、ロード信号LBはLow電位とされる。また、クロック信号CLKはLow電位であり、P1はHigh電位、P2はLow電位である。トランジスタT20、T21、T22はオンとなり、ノードN3、N4はHigh電位(電源電位)にプリチャージ・イコライズされる。
ノードN4のHigh電位をゲートに受けるトランジスタT12はオン状態とされ、電源、ノードN3からトランジスタT12を介して不揮発素子R1に読み出し電流が流れる。また、ノードN3のHigh電位をゲートに受けるトランジスタT14はオン状態とされ、電源、ノードN4からトランジスタT14を介して不揮発素子R2に読み出し電流が流れる。なお、ロード時、WBはHighとされ、トランジスタT19がオンとされ、不揮発素子R1、R2に流れる読み出し電流はGNDに流れ込む。これらの読み出し電流の差に応じて、ノードN3とN4には微小な電位差が生じる。
次に、ロード信号LBがLowからHighに変化すると、トランジスタ20−22がオフし、トランジスタT11−14の保持回路(差動ラッチ)により、ノード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’となる。
図5は、本発明の例示的な第1実施形態に係る半導体集積回路における不揮発レジスタと不揮発レジスタ制御回路(図1の102)の構成を示す図である。n個のフリップフロップ104(不揮発レジスタ103毎にアドレスA1を与えている。nは、例えば、16ビットのワード単位、8ビットのバイト単位等である。
不揮発レジスタのアドレスは、アドレスA1からアドレスAmのm個である。典型的には、あるアドレスを指定すると、そのアドレスのn個のフリップフロップ104(不揮発レジスタを同時に制御することができる。また、あるアドレスを指定すると、あるアドレス領域の複数の不揮発レジスタを同時に制御できるようにしてもよい。
不揮発レジスタ制御回路102は、
システムのクロック信号:CLK_SYSと、
レジスタのアドレス信号:A_REGと、
レジスタの揮発性データの書き込みイネーブル信号:WE_REGと、
レジスタへの入力データ:D_REGと、
不揮発素子への書き込みイネーブル信号:NVWE_REGと、
不揮発素子からのロードイネーブル信号:NVLE_REGと
が入力される。
不揮発レジスタ制御回路102は、受け取った制御信号をもとに、各不揮発レジスタ103へ不揮発レジスタ制御信号を出力する。
アドレスA1の不揮発レジスタへの不揮発レジスタ制御信号は、
クロック信号:CLK_REG(A1)、
入力データ:D_REG(A1)、
ロード信号(Lowアクティブ):LB_REG(A1)、
書き込み制御信号(Lowアクティブ):WB_REG(A1)
である。
アドレスA1の不揮発レジスタ103は、出力信号Q_REG(A1)を出力する。アドレスA2からAmまでの不揮発レジスタ103 〜103 も同様である。
図6は、図5に示した本発明の例示的な第1実施形態に係る半導体集積回路において、命令コードが不揮発素子の書き込み命令の時の動作波形の一例を示す図である。図6には、
システムのクロック信号:CLK_SYS、
アドレス:A_RAM、
アドレスA_RAMのデータ:RD_RAM、
レジスタのアドレス:A_REG、
不揮発素子への書き込みイネーブル信号:NVWE_REG、
アドレスA1のクロック:CLK_REG(A1)、
アドレスA1への書き込み制御信号WB:WB_REG(A1)、
アドレスA1のデータ:Q_REG(A1)、
アドレスA1の不揮発素子の抵抗値:R_REG(A1)、
アドレスA2のクロック:CLK_REG(A2)、
アドレスA2への書き込み制御信号WB:WB_REG(A2)、
アドレスA2のデータ:Q_REG(A2)、
アドレスA2の不揮発素子の抵抗値:R_REG(A2)
のタイミング波形が示されている。
図5、図6を参照して、不揮発素子の書き込み時の動作を説明する。時刻T1の直後に、中央処理装置は、記憶装置(図1の100)へ、アドレスA_RAMとして、プログラムカウンタの値PC1を出力する。
時刻T2に、中央処理装置は、記憶装置(図1の100)のアドレスA_RAMのデータRD_RAMとして、命令OP1を受け取る。ここで、命令OP1は、図2に示した命令形式であり、命令コードは、不揮発素子の書き込み命令のコードである。
また、命令OP1のアドレッシングモードは、シングルオペランド形式であり、アドレスA1のレジスタを指定するものとする。
時刻T3に、中央処理装置の命令デコーダは、命令OP1を解釈して、レジスタのアドレスA_REGとしてA1を出力する。
時刻T4に、中央処理装置の命令デコーダ(図1の101)は、命令のオペコードOP1をデコードして、不揮発素子の書き込みイネーブル信号NVWE_REGを不揮発レジスタ制御回路102に出力し、時刻T5に出力を終了する。
時刻T6からT8までの間、不揮発レジスタ制御回路102は、選択されたアドレスA1のレジスタの書き込み制御信号WB_REG(A1)をLowレベルにし、不揮発レジスタ103に書き込み電流を流す。
時刻T7に、アドレスA1の不揮発レジスタにおける不揮発素子の抵抗値R_REG(A1)は、保持していたデータQ_REG(A1)に対応した抵抗値R1に書き換わる。
次のクロックサイクルでは、アドレスA2の不揮発レジスタにおける不揮発素子の書き込みが行われる動作波形を示しており、アドレスA1と同様の一連の過程で書き込みが行われる。
図6に示すように、不揮発素子への書き込みを行う時刻T6とT8は、次の命令を記憶装置(図1の100)からの読み出しサイクルの始まる時刻T11よりも後であってもよい。なんとなれば、不揮発素子への書き込みは、不揮発レジスタの出力を変化させずに行えるため、次の命令の読み出し動作への妨げにならないからである。
上記のようにパイプライン的に動作させることにより、不揮発素子への書き込みに対する十分なセットアップ時間を確保できるとともに、短い時間で複数の命令を実行することができる。
図7は、本発明の例示的な第1実施形態に係る半導体集積回路において、命令コード(OP1)が不揮発素子のロード命令の時の動作波形の一例を示す図である。図7には、CLK_SYS、A_RAM、RD_RAM、A_REG、NVE_REG、CLK_REG(A1)、LB_REG(A1)、Q_REG(A1)、R_REG(A1)のタイミング波形が示されている。図7を参照して、不揮発素子のロード時の動作を説明する。
時刻T1の直後に、中央処理装置は、記憶装置(図1の100)へ、アドレスA_RAMとして、プログラムカウンタの値PC1を出力する。
時刻T2に、中央処理装置は、記憶装置(図1の100)のアドレスA_RAMのデータRD_RAMとして、命令OP1を受け取る。ここで、命令OP1は、図2に示した命令形式であり、命令コードは不揮発素子のロード命令のコードである。また、アドレッシングモードはシングルオペランド形式であり、アドレスA1のレジスタを指定するものとする。
時刻T3に、中央処理装置の命令デコーダは、命令OP1を解釈して、レジスタのアドレスA_REGとしてA1を出力する。
時刻T4に、中央処理装置の命令デコーダは、命令OP1を解釈して、不揮発素子のロードイネーブル信号NVLE_REGを、不揮発レジスタ制御回路(図1の102)に出力し、時刻T5に出力を終了する。
時刻T6からT8までの間、不揮発レジスタ制御回路102は、選択されたアドレスA1のレジスタのロード信号LB_REG(A1)をLowレベルとし、不揮発レジスタのロード動作を行う。
時刻T7に、アドレスA1の不揮発レジスタにおける出力データQ_REG(A1)は、不揮発素子の抵抗値R_REG(A1)の抵抗値R1に対応した出力D1に書き換わる。なお、図8に示すように、書き込み動作は、次のサイクル時刻T11に入る前に完了していてもよい。
図8は、図6と時刻T1からT5まで同じである。図8において、図6と異なるのは、T11の前の時刻T6からT8までの間、不揮発レジスタ制御回路102は、選択されたアドレスA1のレジスタの書き込み制御信号WB_REG(A1)をLowレベルとし、不揮発レジスタ103に書き込み電流を流す。
時刻T7に、アドレスA1の不揮発レジスタにおける不揮発素子の抵抗値R_REG(A1)は、保持していたデータQ_REG(A1)に対応した抵抗値R1に書き換わる。
時刻T11に、不揮発レジスタのデータはシステムのクロックCLK_SYSと同期して変化し得る。図8では、時刻T11の前のデータを保存する。一方、図6では、時刻T11の後のデータを、不揮発素子に保存する。
あるいは、図9に示すように、ロード動作は1サイクルで行ってもよい。図7は、ロード動作に、2サイクル要していたのに対し、図9のロード動作は、1サイクル要する点が異なる。
図9は、図7と時刻T1からT7まで同じである。異なるのは、時刻T11以降の次のサイクルに、アドレスA2のレジスタのロード動作を行っている点である。
半導体集積回路がクロックCLK_SYSに同期している場合、レジスタの値はT11の直後に更新されうるが、ロード動作を行うレジスタは、遅延があり、ロード動作後のT7に更新される。この遅延を半導体集積回路が許容できる場合には、図9のようにロード命令を1サイクルとしてもよい。具体的には、ロードしたレジスタの後段のレジスタのセットアップマージンを十分確保できる場合に、図9のような動作が可能である。
また、図10に示すようにロード動作は、次のサイクル時刻T11に入る前に完了していてもよい。
図10は、図7と時刻T1からT5まで同じである。異なるのは、時刻T11の前の時刻T6からT7までの間、不揮発レジスタ制御回路102は、選択されたアドレスA1のレジスタのロード信号LB_REG(A1)をLowベルとし、不揮発レジスタ103の不揮発素子から保持回路にデータをロードする。
時刻T7に、アドレスA1の不揮発レジスタにおける出力データQ_REG(A1)は、不揮発素子の抵抗値R_REG(A1)の抵抗値R1に対応したD1(不揮発素子から保持回路に読み出されたデータ)に切り替わる。
上記のように、本実施形態の半導体装置(半導体集積回路)は、ロジック素子と不揮発メモリ素子を一体化することにより、電源オフに先立ってデータを退避する際に、データ転送遅延、及びデータ転送する配線や回路の消費電力を低減できる。
さらに、関連技術の半導体集積回路が、モジュール単位で不揮発レジスタの書き込みやロードを行っているため、不必要な書き込みやロードに要する電力を消費していたのに対し、本実施形態によれば、不揮発レジスタ単位で制御できるため、不必要なデータの退避、復帰に要する電力消費を低減できる。これは、不揮発レジスタにアドレスを付与し、そのアドレスの指定する命令中のビットと、不揮発レジスタの書き込みやロードの命令とを備えているためである。さらに、指定した不揮発レジスタの属するグループに対して書き込み、ロードすることにより、データの退避、復帰に必要な時間的なオーバーヘッドを抑えることができる。
(第2実施形態)
図11は、本発明の第2実施形態の構成を示す図である。本実施形態においては、図1を参照して説明した前記第1実施形態に加え、演算装置105が追加されている。
演算装置105は、命令のオペランドAとオペランドBを入力し、命令コードで指定される演算(例えばオペランドAとオペランドBに関する2項演算)を実行し、演算結果を出力する。
図11では、オペランドA、Bとしてレジスタの値が用いられ、演算結果がレジスタに書き戻される場合を示している。なお、オペランドとして、メモリのデータや、モジュール内のレジスタの値を使用することもできる。演算装置105は、2項演算以外にも、単項演算を行ってもよい。
図12は、命令フォーマットを示す図である。図12に示すように、第2の実施形態では、命令に、不揮発素子の書き込みモードを設定できるビット(ビットフィールド)を含む。
(a+b+c+d)ビットからなる命令のうち、
1からaビットまではレジスタの指定に利用される。
a+1ビットからa+bビットまでのbビットはアドレッシングモードの指定に利用される。
a+b+1ビットからa+b+cビットまでのcビットは、命令コードの指定に利用される。
a+b+c+1からa+b+c+dビットまでのdビットは、不揮発素子の書き込みモードビットWMB1からWMBdであり、不揮発素子の書き込みモードの指定に利用される。
不揮発レジスタの書き込みモードWMB1からWMBdの各ビットと、複数の不揮発レジスタが対応付けられる。
具体的には、アドレスA1からAmまでのm個の不揮発レジスタ103 〜103 は、q個のグループG1からGqに分割される。
それぞれのグループGy(1≦y≦q)は、不揮発素子書き込みモードビットWMB1からWMBdのうちの一つWMBz(1≦z≦d)と1対1に対応付けられるか、もしくは、対応する不揮発素子書き込みモードビットが存在しないとする。
グループGy(1≦y≦q)に属するアドレスAxの不揮発レジスタの保持回路へ書き込みを行う際に、対応付けられた不揮発素子書き込みモードビットWMBz(1≦z≦d)が‘1’の場合、保持回路への書き込みデータを、指定されたアドレスAxの不揮発レジスタの不揮発素子へも書き込む。
前記対応付けられた不揮発素子書き込みモードビットWMBzが‘0’の場合には、保持回路への書き込みデータを指定されたアドレスAxの不揮発レジスタの不揮発素子へ書き込むことはしない。
前記対応付けられた不揮発素子書き込みモードビットWMBzが存在しない場合、保持回路への書き込みデータを、前記指定されたアドレスAxの不揮発レジスタの不揮発素子へ書き込むことはしない(不揮発素子書き込みモードビットWMBzが‘0’の場合と同様)。
第2実施形態では、不揮発レジスタ制御回路102は、不揮発レジスタにデータが書き戻されると同時に、不揮発素子にも、そのデータを書き込むか、書き込まないかを、書き込みモードビットを元に判断する。
以下、簡単のため、d=1ビット、かつ、不揮発レジスタのグループ数q=1とし、不揮発素子書き込みモードビットWMB1がグループG1に対応付けられるとする。命令の読み出しから不揮発レジスタの制御までの過程を簡単に説明する。
はじめに、中央処理装置は、プログラムカウンタPCで指定されるアドレスを出力し、そのアドレスに記憶されている命令を記憶装置100から読み出す。
命令デコーダ101は、記憶装置100から読み出した命令を解読する。
命令コードの不揮発素子書き込みモードビットWMB1が1の場合、不揮発レジスタ制御回路102は、指定された不揮発レジスタ103の保持回路へ、演算結果を書き戻すと同時に、不揮発素子に演算結果を書き込む。例えば、アドレス(レジスタ番号4と、アドレス(レジスタ番号5の不揮発レジスタ103の加算結果を、アドレス(レジスタ番号5の不揮発レジスタ103に書き戻すと同時に、アドレス(レジスタ番号5の不揮発素子に、データを書き込む場合には、
レジスタの指定ビットを、アドレス(レジスタ番号4と、アドレス(レジスタ番号5に設定し、
アドレッシングモードを、レジスタとレジスタとの間で演算するダブルオペランドモードとし、
命令コードを加算命令とし、
不揮発レジスタの不揮発素子の書き込みモードに設定すればよい。
図13は、本発明の例示的な第2実施形態において、不揮発素子の書き込みモードの動作波形の一例を示す図である。図13、図11を参照して、不揮発レジスタへの書き込みと同時に、不揮発素子への書き込みを同時に行う際の動作について説明する。
時刻T1直後に、中央処理装置(プログラムカウンタ)は、記憶装置100へアドレスA_RAMとして、プログラムカウンタの値PC1を出力する。
時刻T2に、命令デコーダ101は、記憶装置100のアドレスA_RAMの読み出しデータRD_RAMとして、命令OP1を受け取る。ここで、命令OP1は、図12に示した命令形式である。不揮発素子の書き込みモードビットを1とする。
また、命令コードは、ある演算を指定し、不揮発レジスタAxとA1との間でその演算を実施し、その結果をレジスタA1に書き戻す。
時刻T3に、命令デコーダ101は、命令OP1を解釈して、レジスタのアドレスA_REGとして、A1を出力する。
また、時刻T3に演算装置105は、レジスタへの入力データD_REGとして演算結果D1を出力する。
時刻T4に、命令デコーダ101は、命令OP1を解釈して、不揮発素子の書き込みイネーブル信号NVWE_REGを、不揮発レジスタ制御回路102に出力し、時刻T5に出力を終了する。
時刻T9に、不揮発レジスタ制御回路102は、不揮発レジスタ103の揮発データの書き込み信号WB_REG(A1)をHighレベルとし、アドレスA1の不揮発レジスタの不揮発素子にデータD1を書き込む。
時刻T6からT8までの間、不揮発レジスタ制御回路102は、選択されたアドレスA1の不揮発レジスタ103の書き込み制御信号WB_REG(A1)をLowレベルとし、不揮発レジスタの不揮発素子の書き込み動作を行う。
時刻T7に、アドレスA1の不揮発レジスタにおける不揮発素子の抵抗値R_REG(A1)は、演算結果D1に対応した抵抗値R1に切り替えられる。
次のクロックサイクルでは、アドレスA2の不揮発レジスタ103における不揮発素子の書き込みが行われる動作波形を示しており、アドレスA1と同様の一連の過程で書き込みが行われる。
上記のように、第2の実施形態では、前記第1の実施形態と同様の効果を得ることができる。
さらに、前記第1の実施形態に比較して、不揮発レジスタの揮発性データの書き込みと同時に不揮発素子への書き込むことができる。したがって、前記第1実施形態では、揮発性データの書き込みと不揮発素子の書き込みの2つの命令を必要としていたのに対し、第2実施形態では、1つの命令サイクルで実施できるため、実行時間を短縮することができ、かつ、プログラム領域を縮小することができる。
さらに、不意の電源供給の停止に供え、常に揮発データと不揮発データの一貫性を保つことができるため、電源障害に対する耐性が高い半導体集積回路を提供することができる。
(第3実施形態)
図14は、本発明の第3実施形態の構成を示す図である。本実施形態の半導体集積回路は、図11を参照して説明した前記第2実施形態に、dビットの不揮発素子書き込みモードレジスタ106が追加されている。
ここで、不揮発素子書き込みモードレジスタ106は、必ずしも不揮発レジスタである必要はなく、揮発性データのみを保持するレジスタであってもよい。図15は、本発明の第3実施形態に係る不揮発レジスタを備えた半導体集積回路の命令形式を示す図である。
第3の実施形態は、前記第2の実施形態と比較し、命令内に、不揮発素子書き込みモードを設定するビットフィールドが存在しない。つまり、不揮発素子書き込みモードを指定するビットが、前記第2の実施形態では命令内に設けられているが、第3の実施形態では、レジスタとして用意されている。
不揮発レジスタの書き込みモードビットWMB1からWMBdの各ビットと、複数の不揮発レジスタが対応付けられる。具体的には、前記第2実施形態と同様、m個の不揮発レジスタ103 〜103 のアドレスA1からAmは、q個のグループG1からGqに分割される。それぞれのグループGy(1≦y≦q)は、不揮発素子書き込みモードビットWMB1からWMBdのうちのひとつWMBz(1≦z≦d)と1対1に対応付けられるか、もしくは、対応する不揮発素子書き込みモードビットが存在しないとする。
グループGy(1≦y≦q)に属するアドレスAxの不揮発レジスタの保持回路へ書き込みを行う際に、対応付けられた不揮発素子書き込みモードビットWMBz(1≦z≦z)が‘1’の場合、保持回路への書き込みデータを指定されたアドレスAxの不揮発レジスタの不揮発素子へも書き込む。
対応付けられた不揮発素子書き込みモードビットWMBzが‘0’の場合、保持回路への書き込みデータを指定されたアドレスAxの不揮発レジスタの不揮発素子へは書き込まない。
対応付けられた不揮発素子書き込みモードビットWMBzが存在しない場合、保持回路への書き込みデータを指定されたアドレスAxの不揮発レジスタの不揮発素子へは書き込まない。
このように、第3の実施形態では、不揮発レジスタ制御回路102は、不揮発レジスタ103にデータが書き戻されると同時に、不揮発レジスタ103の不揮発素子にも、そのデータを書き込むか書き込まないかを、書き込みモードレジスタ106の設定情報(不揮発素子書き込みモードビット情報)を基に、判断する。
簡単のため、d=1ビット、かつ、不揮発レジスタのグループ数q=1とし、不揮発素子書き込みモードビットWMB1がグループG1に対応付けられるものとする。不揮発素子書き込みモードレジスタの設定から、不揮発レジスタの制御までの過程を簡単に説明する。
はじめに、中央処理装置のプログラムカウンタPCで指定されるアドレスを出力し、そのアドレスに記憶されている命令を記憶装置100から読み出す。
命令デコーダ101は、記憶装置100から読み出した命令を解読する。
命令コードが、不揮発素子書き込みモードレジスタWMB1を‘1’に設定する命令である場合、不揮発素子書き込みモードレジスタの値は‘1’に設定され、そのレジスタ情報が不揮発レジスタ制御回路102に与えられる。
その後、あるクロックサイクルで読み出した命令が、演算結果を不揮発レジスタ103の保持回路に書き込む命令であった場合、不揮発レジスタ制御回路102は、不揮発素子書き込みモードレジスタ106の値を参照する。不揮発素子書き込みモードレジスタ106の対応するビットの値が‘1’であることを確認できれば、その選択されたアドレスの不揮発レジスタに揮発性データを書き込むと同時に、当該不揮発レジスタの不揮発素子のデータを書き換える。この場合、詳細な書き込み時の波形は、図13と同じであるため、説明を省略する。
上記のように、第3の実施形態によれば、前記第1の実施形態と同様の効果を得ることができる。
さらに、第3の実施形態によれば、前記第2の実施形態に比較し、既存のアーキテクチャとの親和性が高い。つまり、前記第2の実施形態において、不揮発レジスタの書き込みモードを指定するビットを加える必要があるが、既存の命令コードに空いているビットがない場合も有り得る。この場合、命令のビット幅を広げる、または、2つの命令に分ける必要があり、既存のアーキテクチャを大きく変更する必要がある。
それに対し、第3の実施形態によれば、不揮発素子書き込みモードレジスタ106を設けることで、命令コードを変更する必要がなく、既存のアーキテクチャをそのまま利用できるという利点がある。
(第4実施形態)
図16は、本発明の第4の実施形態の構成を示す図である。図16を参照すると、第4の実施形態は、前記第1実施形態に加え、演算装置105と、ダーティビット107が追加されている。ここで、ダーティビットは、必ずしも不揮発レジスタである必要はなく、従来の揮発性データのみを保持するレジスタであってもよい。
図16において、d個からなるダーティビットDTY1からDTYdまでをレジスタ107に備え、m個の不揮発レジスタのアドレスA1からAmは、s個のグループG1からGsに分割される。それぞれのグループGy(1≦y≦s)は、ダーティビットDTY1からDTYdのうちの一つDTYzと1対1に対応付けられるか、もしくは、対応する不揮発素子書き込みモードビットが存在しない。
グループGy(1≦y≦s)に属する全ての不揮発レジスタの保持回路のデータと不揮発素子のデータが一致している場合に、
グループGyに対応付けられたダーティビットDTYz(1≦z≦d)が存在していれば、DTYzを‘0’にセットする。
一致していない可能性がある場合に、ダーティビットDTYzが存在していれば、DTYzを‘1’にセットする。
命令デコーダ101が解釈した命令がアドレスAxの不揮発レジスタの不揮発素子への書き込み命令の時、アドレスAxの不揮発レジスタの属するグループGyに対応したダーティビットDTYzが存在したとき、
ダーティビットDTYzが‘1’の場合、アドレスAxの不揮発レジスタの不揮発素子へ、保持回路のデータを書き込み、
ダーティビットDTYzが‘0’の場合、アドレスAxの不揮発レジスタの不揮発素子へ、保持回路のデータを書き込まない。
図17は、本発明の第4実施形態における、ダーティビットの状態遷移を示す図である。不揮発レジスタ制御回路102は、下記のダーティビットの状態遷移を実現するように、データを書き込む。なお、各ダーティビットの値は、例えば、既存の揮発性のフリップフロップ(通常のフリップフロップ)に格納され、書き込みは、通常のフリップフロップの書き込みと同様に行われる。
グループGyに属するアドレスAxの不揮発レジスタの保持回路は、電源オンに伴って、予め設定されている初期値が設定される。
グループGyに対応したダーティビットDTYzが存在するとき、ダーティビットDTYzを‘1’に設定する。
アドレスAxの不揮発レジスタの保持回路へ揮発データを書き込んだ際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘1’に設定する。
グループGyに属する全ての不揮発レジスタの保持回路へ、不揮発素子のデータをロードした際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘0’に設定する。
グループGyに属する全ての不揮発レジスタの不揮発素子へ、保持回路のデータを書き込んだ際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘0’に設定する。
次にダーティビットの値の利用について詳細に説明する。上記のように不揮発レジスタ制御回路102は、不揮発素子への書き込み時にダーティビットの値を参照する必要がある。不揮発レジスタ制御回路102は、ダーティビットの出力のうち、所望のダーティビットの値を選択することができる。
例えば、アドレスAxの不揮発レジスタの不揮発素子への書き込みの場合、
命令デコーダ101から与えられたアドレスAxの情報を元にマルチプレクサ(不図示)等の回路により、複数あるダーティビットの出力の中から、アドレスAxの属するグループGyのダーティビットDTYzの値を選択する。
そして、不揮発レジスタ制御回路102は、当該ダーティビットDTYzの値に応じて、不揮発素子への書き込みを行うか否かを判断する。
ダーティビットは、不揮発素子の書き込み消費電力を低減するのに有用である。
前記第1実施形態では、電源オフに先立ち、データの退避をきめ細かに行うことができるが、どのデータが既に退避されており、どのデータがまだ退避されていないかを管理することが困難な場合がある。その場合、すべてのデータを退避することでその問題を解決しようとすると、書き込みの消費電力は大きくなる。
これに対して、第4の実施形態においては、電源のオフに先立ち、ダーティビットを用い、ダーティビットが‘1’の不揮発レジスタに対してのみ、不揮発素子にデータを書き込む。そのため、電源オフに先立ち、すべての不揮発レジスタにおいて、データを、不揮発レジスタの不揮発素子へ書き込む必要がなく、書き込みを行う不揮発素子の数を減らすことができる。
前記第2、第3実施形態では、常にデータを不揮発素子へ退避することを可能とするため、どのデータが退避されているか否かを管理する必要がない。
しかしながら、同じアドレスへ複数回書き込みがあった場合、その度に、不揮発素子へ書き込むことは、無駄に電力を消費することになる。
第4の実施形態では、上記のように、不揮発レジスタの揮発性の保持回路に書き込む度に不揮発素子のデータを書き換えることは行わないため、複数回同じアドレスのレジスタへ書き込みが起こった場合でも、無駄な不揮発素子の書き込みの回数を低減できる。
また、第4の実施形態では、不意の電源遮断に備えた復元ポイントの作成を、より低消費電力で実現できる。これは、上記のように、ダーティビットが1の不揮発レジスタのみ、不揮発素子への書き込みを行えばよいためである。
上記のように、第4の実施形態は、前記第1実施形態と同様の効果を得ることができるほか、さらに、ダーティビットを備えたことにより、書き込み行う不揮発素子の数や書き込みの回数を低減することができ、データ退避のための遅延や消費電力を容易に低減できる。
以上、いくつかの実施の形態に基づき本発明を具体的に説明したが、本発明は上述の実施の形態に限定されるものではない。本発明の要旨を逸脱しない範囲で種々の変更を施すことができ、これらの変形例も本発明に含まれる。例えば、上記は中央処理装置内のレジスタを中心に説明したが、周辺モジュール内のレジスタにも容易に拡張でき、本発明に含まれる。また、各実施形態を組み合わせた実施形態も、同様の効果が得られ、本発明に含まれる。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
100 記憶装置
101 命令デコーダ
102 不揮発レジスタ制御回路
103 不揮発レジスタ
104 不揮発フリップフロップ
105 演算装置
106 モードレジスタ
107 ダーティビット
201、211 リファレンス層
202、212 絶縁層
203、213 フリー層
204、214 ハード層1
205、215 ハード層2
206、216 メタル層1
207 メタル層1

Claims (10)

  1. 記憶装置から読み出した命令を解釈する命令デコーダと、
    データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子と、を含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた1つ又は複数の不揮発レジスタと、
    前記1つ又は複数の不揮発レジスタを制御する不揮発レジスタ制御回路と、
    を備え、
    前記命令デコーダでデコードされる命令セットとして、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
    少なくとも含み、
    前記不揮発レジスタ制御回路は、
    前記命令デコーダで解釈した命令が前記書き込み命令の場合、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行い、
    前記命令デコーダで解釈した命令が前記ロード命令の場合、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる、
    制御を行う、半導体装置。
  2. 前記不揮発レジスタとして、複数の不揮発レジスタを備え、
    前記不揮発レジスタの前記保持回路から前記不揮発素子への書き込みを指定する不揮発素子書き込みモードビット情報を、前記命令内の所定のビットフィールドに備えるか、又は、前記不揮発素子書き込みモードビット情報を保持するレジスタを備え、
    前記複数の不揮発レジスタのアドレスは複数のグループに分割され、
    それぞれのグループは、前記不揮発素子書き込みモードビット情報のうちの一つと1対1に対応付けされているか、又は、前記グループに対応する不揮発素子書き込みモードビット情報が設けられていないかの、いずれかであり、
    あるグループに属するアドレスの前記不揮発レジスタの前記保持回路へデータを書き込む際に、
    前記不揮発レジスタ制御回路は、
    前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータを、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子へ書き込み、
    前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が非活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子への書き込みは行わず、
    前記グループに対応付けられた前記不揮発素子書き込みモードビット情報が存在しない場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの不揮発レジスタの前記不揮発素子への書き込みは行わないように制御する、請求項1記載の半導体装置。
  3. 前記不揮発レジスタの前記保持回路と前記不揮発素子の内容が異なることを示すフラグビットを保持するレジスタを含み、
    前記不揮発レジスタのアドレスは複数のグループに分割され、それぞれのグループは、前記フラグビットのうちの一つのビットと1対1に対応付けされているか、又は、前記グループに対応するフラグビットが配設されていないか、のいずれかであり、
    1つのグループに属する全ての前記不揮発レジスタの各々において前記保持回路のデータと前記不揮発素子のデータが一致している場合に、前記1つのグループに対応付けられた前記フラグビットが存在していれば、前記フラグビットを第1の値にセットし、
    一致していない可能性がある場合に、前記フラグビットが存在していれば前記フラグビットを第2の値にセットし、
    前記不揮発レジスタ制御回路は、
    前記命令デコーダで解釈された命令が、前記命令で指定されるアドレスの不揮発レジスタにおける不揮発素子への書き込み命令であるとき、
    前記アドレスの前記不揮発レジスタの属するグループに対応した前記フラグビットが存在する場合、前記フラグビットが前記第2の値の場合には、
    前記アドレスの前記不揮発レジスタの前記保持回路のデータの前記不揮発レジスタの前記不揮発素子への書き込みを行い、
    前記フラグビットが前記第1の値の場合には、前記アドレスの前記不揮発レジスタの前記保持回路のデータの前記不揮発素子への書き込みを行わない、
    ように制御する、請求項1記載の半導体装置。
  4. 前記グループに属するアドレスの前記不揮発レジスタの前記保持回路には、電源オンに伴って、あらかじめ設定されている初期値が設定され、
    前記グループに対応したフラグビットが存在するとき、前記フラグビットを前記第2の値に設定し、
    前記不揮発レジスタ制御回路は、
    前記アドレスの不揮発レジスタの保持回路へ揮発データを書き込んだ際に、
    前記グループに対応するフラグビットが存在するとき、前記フラグビットを前記第2の値に設定し、
    前記グループに属する全ての前記不揮発レジスタの前記保持回路へ、前記不揮発素子のデータをロードした際に、前記グループに対応するフラグビットが存在するとき、前記グループに対応するフラグビットを第1の値に設定し、
    前記グループに属する全ての前記不揮発レジスタの前記不揮発素子へ、前記保持回路のデータを書き込んだ際には、前記グループに対応するフラグビットが存在するとき、前記グループに対応するフラグビットを前記第1の値に設定し、
    前記命令デコーダで解釈された命令が、前記命令で指定されるアドレスの前記不揮レジスタの前記不揮発素子への書き込み命令の時、前記アドレスの前記不揮発レジスタの属するグループに対応する前記フラグビットが存在するとき、
    前記フラグビットが前記第2の値の場合、前記アドレスの前記不揮発レジスタの前記不揮発素子へ、前記不揮発レジスタの前記保持回路のデータを書き込み、
    前記フラグビットが前記第1の値の場合、前記アドレスの前記不揮発レジスタの前記不揮発素子へ、前記不揮発レジスタの前記保持回路のデータを書き込まない、
    ように制御する請求項3記載の半導体装置。
  5. 前記複数の不揮発レジスタのアドレスは、複数のグループに分割され、
    前記命令は、グループに属する一つのアドレスを指定し、
    前記不揮発レジスタ制御回路は、
    前記命令デコーダで解釈した命令が前記不揮発レジスタの前記不揮発素子への書き込み命令の場合、
    前記グループに属する全ての前記不揮発レジスタの各々において、前記保持回路のデータの前記不揮発素子への書き込みを行い、
    前記命令デコーダで解釈した命令が、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロード命令の場合、
    前記グループに属する全ての前記不揮発レジスタにおいて前記不揮発素子のデータを前記保持回路へロードする制御を行う、請求項1乃至4のいずれか1項に記載の半導体装置。
  6. 第1サイクルで、前記書き込み命令を前記記憶装置から読み出し、
    前記第1サイクルの次の第2サイクルで、前記書き込み命令で指定されたアドレスの前記不揮発レジスタの前記不揮発素子の書き込みを行、前記第2サイクルで、次の命令を、前記記憶装置から読み出す、パイプライン動作を行う、請求項1記載の半導体装置。
  7. 前記フリップフロップは、
    前記保持回路として、第1と第2のノードに入力と出力がそれぞれ接続された第1の反転回路と、前記第1と第2のノードに出力と入力が接続された第2の反転回路とを備え、前記第1の反転回路は第1の電源と第3のノード間に配設され、前記第2の反転回路は前記第1の電源と第4のノード間に配設され、
    前記フリップフロップは、さらに、入力されたロード信号が活性状態のとき、前記第1と第2のノードを前記第1の電源の電源電圧にイコライズする回路を備え、
    前記フリップフロップは、
    前記不揮発素子として、
    前記第3と第4のノードに第1端がそれぞれ接続され、第5と第6のノードに第2端子がそれぞれ接続され、第3端子同士が接続された第1と第2の磁気抵抗素子を備え、
    前記第5及び第6のノードは、書き込み制御信号でオン・オフされる第1のスイッチを介して第2の電源に接続され、
    前記保持回路の前記第1と第2のノードの信号を、前記不揮発素子に書き込むとき、前記書き込み制御信号により前記第1のスイッチはオフとされ、前記第1と第2のノードがそれぞれ第1と第2の値のとき、前記第2の磁気抵抗素子の前記第2端を前記第1の電源電位とし、前記第1の磁気抵抗素子の前記第2端を前記第2の電源電位として前記第1と第2の磁気抵抗素子に第1の向きで電流を流し、
    前記第1と第2のノードがそれぞれ前記第2と第1の値のとき、前記第1の磁気抵抗素子の前記第2端を前記第1の電源電位とし、前記第2の磁気抵抗素子の前記第2端を前記第2の電源電位とし、前記第1と第2の磁気抵抗素子に第1の向きと逆の第2の向きに電流を流す書き込み回路を備え、
    前記第1と第2のノードは、前記保持回路の保持されるデータの前記不揮発素子への書き込み時、及び、前記不揮発素子に保持されるデータの前記保持回路へ転送するロード時に、オフされる第2と第3のスイッチにより入力データから遮断される、請求項1記載の半導体装置。
  8. 前記フリップフロップにおいて、前記保持回路は、マスタラッチとスレーブラッチを備えたマスタ・スレーブ方式のラッチを含み、
    前記不揮発素子は、磁気抵抗素子を含み、
    前記スレーブ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記スレーブ・ラッチへデータをロードする機能、
    前記マスタ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記マスタ・ラッチへデータをロードする機能、
    前記スレーブ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記マスタ・ラッチへデータをロードする機能、
    前記マスタ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記スレーブ・ラッチへデータをロードする機能、
    のうちのいずれか一の機能を有する、請求項1記載の半導体装置。
  9. データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子とを含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた、1つ又は複数の不揮発レジスタを備えた半導体装置の制御方法であって、
    命令セットとして、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
    を用意し、
    命令デコーダで解釈した命令が、前記書き込み命令の場合、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行い、
    前記命令デコーダで解釈した命令が前記ロード命令の場合、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる、半導体装置の制御方法。
  10. データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子と、を含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた1つ又は複数の不揮発レジスタと、
    前記1つ又は複数の不揮発レジスタを制御する不揮発レジスタ制御回路と、
    を備え、
    命令セットとして、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
    前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
    を少なくとも含み、
    前記書き込み命令の実行にあたり、前記不揮発レジスタ制御回路では、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行うように制御し、
    前記ロード命令の実行にあたり、前記不揮発レジスタ制御回路では、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる制御を行う、中央処理装置。
JP2013532667A 2011-09-09 2012-09-07 半導体装置とその制御方法 Expired - Fee Related JP5962658B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011197517 2011-09-09
JP2011197517 2011-09-09
PCT/JP2012/072874 WO2013035836A1 (ja) 2011-09-09 2012-09-07 半導体装置とその制御方法

Publications (2)

Publication Number Publication Date
JPWO2013035836A1 JPWO2013035836A1 (ja) 2015-03-23
JP5962658B2 true JP5962658B2 (ja) 2016-08-03

Family

ID=47832276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013532667A Expired - Fee Related JP5962658B2 (ja) 2011-09-09 2012-09-07 半導体装置とその制御方法

Country Status (3)

Country Link
US (1) US9135988B2 (ja)
JP (1) JP5962658B2 (ja)
WO (1) WO2013035836A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6396671B2 (ja) 2013-04-26 2018-09-26 株式会社半導体エネルギー研究所 半導体装置
EP3048123A4 (en) 2013-09-16 2017-05-03 LG Chem, Ltd. Copolymer and organic solar cell comprising same
TWI621127B (zh) * 2013-10-18 2018-04-11 半導體能源研究所股份有限公司 運算處理裝置及其驅動方法
KR102154352B1 (ko) 2019-03-08 2020-09-10 고려대학교 산학협력단 비휘발성 메모리 기반의 플립플롭 및 그 백업 동작방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53121435A (en) 1977-03-31 1978-10-23 Toshiba Corp Arithmetic operation control unit
KR20020026814A (ko) 2000-10-02 2002-04-12 포만 제프리 엘 컴퓨터 시스템의 중지 및 재개 동작을 위한 방법 및 장치
US7237156B1 (en) * 2001-08-03 2007-06-26 Netlogic Microsystems, Inc. Content addressable memory with error detection
JP3768504B2 (ja) 2002-04-10 2006-04-19 松下電器産業株式会社 不揮発性フリップフロップ
JP2004133969A (ja) 2002-10-08 2004-04-30 Renesas Technology Corp 半導体装置
US7319602B1 (en) * 2004-07-01 2008-01-15 Netlogic Microsystems, Inc Content addressable memory with twisted data lines
CN101821810B (zh) 2007-08-31 2013-05-01 国立大学法人东京工业大学 利用电流感应磁化反转mtj的非易失性sram/锁存电路
US8174872B2 (en) 2007-12-06 2012-05-08 Nec Corporation Nonvolatile latch circuit
WO2009078242A1 (ja) 2007-12-14 2009-06-25 Nec Corporation 不揮発性ラッチ回路及びそれを用いた論理回路
JP2010171772A (ja) * 2009-01-23 2010-08-05 Rohm Co Ltd 携帯電話
JP2010267136A (ja) * 2009-05-15 2010-11-25 Rohm Co Ltd データ処理装置

Also Published As

Publication number Publication date
US9135988B2 (en) 2015-09-15
US20140233304A1 (en) 2014-08-21
JPWO2013035836A1 (ja) 2015-03-23
WO2013035836A1 (ja) 2013-03-14

Similar Documents

Publication Publication Date Title
US7599210B2 (en) Nonvolatile memory cell, storage device and nonvolatile logic circuit
US10043563B2 (en) Flip-flop circuit, method of controlling a flip-flop circuit and memory device
US20140149773A1 (en) Latch circuit and data processing system
JP2004133969A (ja) 半導体装置
EP3437097B1 (en) Intelligent bit line precharge for reduced dynamic power consumption
JPWO2009072511A1 (ja) 不揮発性ラッチ回路
CN111902871A (zh) 用于耦合存储器装置中的数据线的设备及方法
JP5962658B2 (ja) 半導体装置とその制御方法
JP3754593B2 (ja) データビットを記憶するメモリーセルを有する集積回路および集積回路において書き込みデータビットをメモリーセルに書き込む方法
US8493811B2 (en) Memory having asynchronous read with fast read output
US7778105B2 (en) Memory with write port configured for double pump write
JP7430407B2 (ja) 電子回路
JP5999097B2 (ja) 半導体集積回路及びその制御方法
WO2016185903A1 (ja) 不揮発性記憶回路
KR20070029193A (ko) 데이터 유지 래치를 갖는 메모리 장치
JP2007066509A (ja) Sramのメモリシステムおよびその制御方法
JP2014222425A (ja) 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
JP2013034040A (ja) 不揮発性フリップフロップおよび不揮発性ラッチ
US8014211B2 (en) Keeperless fully complementary static selection circuit
WO2012042723A1 (ja) 半導体記憶装置
JP5257598B2 (ja) 磁気ランダムアクセスメモリ及びその動作方法
US7486542B2 (en) General purpose register circuit
CN112927737A (zh) 具使用磁性隧道结的非易失寄存器
KR20050040290A (ko) 불휘발성 강유전체 메모리 셀 및 이를 이용한 메모리 장치
JP2544027B2 (ja) 低消費電力型プログラマブルロジックアレイおよびそれを用いた情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R150 Certificate of patent or registration of utility model

Ref document number: 5962658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees