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

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

Info

Publication number
WO2013035836A1
WO2013035836A1 PCT/JP2012/072874 JP2012072874W WO2013035836A1 WO 2013035836 A1 WO2013035836 A1 WO 2013035836A1 JP 2012072874 W JP2012072874 W JP 2012072874W WO 2013035836 A1 WO2013035836 A1 WO 2013035836A1
Authority
WO
WIPO (PCT)
Prior art keywords
nonvolatile
register
data
instruction
address
Prior art date
Application number
PCT/JP2012/072874
Other languages
English (en)
French (fr)
Inventor
竜介 根橋
崎村 昇
幸秀 辻
あゆ香 多田
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/343,325 priority Critical patent/US9135988B2/en
Priority to JP2013532667A priority patent/JP5962658B2/ja
Publication of WO2013035836A1 publication Critical patent/WO2013035836A1/ja

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

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2011-197517 (filed on September 9, 2011), the entire description of which is incorporated herein by reference. Shall.
  • the present invention relates to a semiconductor device and a control method thereof, and more particularly, to a semiconductor device provided with storage means such as a nonvolatile register and a control method thereof.
  • a volatile memory such as a flip-flop, a latch, or a dynamic memory that accumulates data in a capacity
  • stored information is lost when the power is turned off. That is, when power supply to a semiconductor integrated circuit including a volatile memory is stopped, its internal state (stored information) is erased except for the nonvolatile memory. For this reason, the semiconductor integrated circuit needs to save data to be retained to an external storage or the like (for example, a non-volatile storage device) prior to stopping the power supply.
  • Patent Document 1 discloses a method and apparatus for saving the state of a computer system component.
  • a scan latch in a computer system component is used for the internal state as a configuration for providing a restart function of the computer system after the integrated circuit in the battery-powered computer system is completely shut down.
  • the internal state read is saved in the save area and the power is turned off.
  • Patent Document 1 when using a memory element arranged separately from a circuit portion holding an internal state, a time delay and power consumption associated with data transfer occur. In particular, when power is turned on / off at a high frequency, there is a possibility that time delay and power consumption associated with data transfer increase.
  • Patent Document 2 discloses a semiconductor device that can quickly shift to a standby mode with reduced power consumption while retaining internal information.
  • the power supply control unit activates a control signal for a corresponding circuit block prior to powering off the corresponding circuit block to be put into a standby state or powering off the entire chip, and the corresponding circuit block processes data. The result is saved in the memory unit.
  • the power control unit activates the control signal after the start of power supply and restores the data saved in the memory unit to the corresponding circuit block.
  • the flip-flops in the circuit block are connected in series when data is saved and restored, and the data is transferred via a path different from the normal time.
  • a complicated transfer operation is unnecessary, and data can be saved at high speed.
  • the semiconductor device described in Patent Document 2 saves / stores all data stored in the volatile latch included in the module in the nonvolatile memory unit each time the power switch provided for each module is turned on / off.
  • the semiconductor device described in Patent Document 2 saves / stores all data stored in the volatile latch included in the module in the nonvolatile memory unit each time the power switch provided for each module is turned on / off.
  • unnecessary writing or loading occurs and power consumption increases.
  • the write current required to rewrite data is typically as high as several hundred uA to several mA per bit. For this reason, if all the nonvolatile memories are rewritten every time the power is turned off, the power consumption required for the rewriting increases.
  • the computer systems of Patent Documents 1 and 2 cannot secure a time for saving the internal state.
  • Patent Document 3 includes a latch circuit and first and second magnetoresistive elements, and during writing, the current supply unit changes the magnetization states of the first and second magnetoresistive elements according to the state of the latch circuit.
  • a non-volatile latch circuit that changes the data in a complementary manner and uses data corresponding to the magnetization state of the first and second magnetoresistive elements (example: MTJ (Magnetic Tunnel Junction) element) at the time of reading is stored in the latch circuit.
  • the configuration is disclosed.
  • Patent Document 4 discloses a bistable circuit that stores data, and a ferromagnetic tunnel junction element (MTJ1, MTJ2) that stores data stored in the bistable circuit in a nonvolatile manner according to the magnetization direction of the ferromagnetic electrode free layer. And a memory circuit capable of restoring the data stored in the ferromagnetic tunnel junction elements (MTJ1, MTJ2) in a nonvolatile manner into a bistable circuit.
  • JP 2002-182803 A JP 2004-133969 A International Publication No. 2009/078242 International Publication No. 2009/028298
  • an object of the present invention is to provide a semiconductor device and a control method thereof that can shorten the time required for saving and restoring data and reduce power consumption.
  • the present invention provides a semiconductor device and a control method therefor that achieve the above-described object, reduce the number of rewrites and loads of a nonvolatile memory, and reduce the number of nonvolatile elements to be rewritten and loaded. There is.
  • an instruction decoder for interpreting an instruction read from a storage device;
  • a non-volatile register including at least one flip-flop including a holding circuit that holds data in a volatile manner and a non-volatile element that holds data in a non-volatile manner, each of which is provided with one or more addresses Non-volatile registers,
  • a nonvolatile register control circuit for controlling the one or more nonvolatile registers;
  • a write command including information specifying an address of the nonvolatile register, and information specifying data writing from the holding circuit of the nonvolatile register to the nonvolatile element;
  • the nonvolatile register control circuit includes: When the instruction interpreted by the instruction decoder is the write instruction, in the nonvolatile register at the address specified by the write instruction, the data held in the holding circuit is
  • a nonvolatile register including at least one flip-flop including a holding circuit that holds data in a volatile manner and a nonvolatile element that holds data in a nonvolatile manner, and an address is given to each of the flip-flops.
  • a method for controlling a semiconductor device including one or more nonvolatile registers As instruction set, A write command including information specifying an address of the nonvolatile register, and information specifying data writing from the holding circuit of the nonvolatile register to the nonvolatile element; Information specifying the address of the non-volatile register, a load instruction including information specifying the load from the non-volatile element of the non-volatile register to the holding circuit, Prepare If the instruction interpreted by the instruction decoder is the write instruction, in the nonvolatile register at the address specified by the write instruction, the data held in the holding circuit is transferred and written to the nonvolatile element, When the instruction interpreted by the instruction decoder is the load instruction, the data held in the nonvolatile element is transferred and held in the holding circuit in the nonvolatile register at the address specified by the load instruction.
  • a control method is provided.
  • the present invention it is possible to shorten the time required for saving and restoring data and to reduce power consumption.
  • FIG. 1 It is a figure which illustrates another example of the operation waveform at the time of loading from the non-volatile element in illustrative first embodiment of the present invention. It is a figure which illustrates the structure of illustrative 2nd Embodiment of this invention. It is a figure which illustrates an example of the command format in 2nd exemplary embodiment of this invention. It is a figure which illustrates an example of the operation waveform at the time of the write-in to the non-volatile element in exemplary 2nd Embodiment of this invention. It is a figure which illustrates the structure of illustrative 3rd Embodiment of this invention.
  • the semiconductor device includes m non-volatile registers (103: 103 1 to 103 m ), an instruction decoder (101), and a non-volatile register control circuit (102).
  • the addresses from A1 to Am are given to the m non-volatile registers (103 1 to 103 m ).
  • the nonvolatile register (103) includes a holding circuit that holds data in a volatile manner and a flip-flop (104: 104 1 to 104 n ) that includes a nonvolatile element that holds the data in a nonvolatile manner.
  • the instruction decoder (101) interprets the instruction read from the storage device (100) holding the instruction.
  • the instruction includes a bit (operand) for designating an address Ax (1 ⁇ x ⁇ m) of one nonvolatile register (103x) and a bit (opcode) for designating writing / loading.
  • the nonvolatile register control circuit (102) When the instruction interpreted by the instruction decoder (101) is a write instruction to the nonvolatile element of the nonvolatile register, the nonvolatile register control circuit (102) includes a holding circuit in the nonvolatile register (103x) of the address Ax specified by the instruction. Control is performed so as to write the data to the nonvolatile element.
  • the instruction interpreted by the instruction decoder (101) is a load instruction from a non-volatile element
  • the non-volatile register control circuit (102) stores the data of the non-volatile element in the non-volatile register (103x) of the address Ax specified by the instruction. Control to load to the holding circuit.
  • non-volatile element write mode bits are provided in a predetermined bit field in the instruction.
  • the semiconductor device may include a register (106) that holds nonvolatile element write mode bits (WMB1 to WMBp).
  • the addresses A1 to Am of the m non-volatile registers (103 1 to 103 m ) are divided into q groups G1 to Gq. Each group Gy is associated one-to-one with one of the non-volatile element write mode bits WMB1 to WMBp, or there is no corresponding non-volatile element write mode bit.
  • the associated non-volatile element write mode bit WMBz When writing to the holding circuit of the non-volatile register (103x) of the address Ax belonging to the group Gy, if the associated non-volatile element write mode bit WMBz is in an active state (for example, logical value 1), The write data may be written to the nonvolatile element of the nonvolatile register at the designated address Ax. When the associated nonvolatile element write mode bit WMBz is in an inactive state (for example, logical value 0), write data to the holding circuit is written to the nonvolatile element of the nonvolatile register at the designated address Ax. Absent. When the associated nonvolatile element write mode bit WMBz does not exist, the write data to the holding circuit is not written to the nonvolatile element of the designated address Ax.
  • the semiconductor device further holds r flag bits (dirty bits) DTY1 to DTYr indicating that the contents of the nonvolatile element and the holding circuit of the nonvolatile register are different. It is good also as a structure with which the register
  • the addresses A1 to Am of the m non-volatile registers are divided into s groups G1 to Gs. Each group Gy has one-to-one correspondence with one of the dirty bits DTY1 to DTYr, or there is no corresponding dirty bit.
  • the nonvolatile register control circuit (102) has the dirty bit DTYz associated with the group Gy when the data of the holding circuits of all the nonvolatile registers belonging to the group Gy match the data of the nonvolatile elements. Then, the dirty bit DTYz is set to a first value (eg, logic 0). If there is a possibility that the data of the holding circuits of all the nonvolatile registers belonging to the group Gy and the data of the nonvolatile elements do not match, if the dirty bit DTYz exists, the dirty bit DTYz is set to a second value. (For example, logic 1).
  • the instruction interpreted by the decoder is a write instruction to a nonvolatile element in the nonvolatile register at the address Ax
  • the dirty bit DTYz corresponding to the group Gy to which the nonvolatile register at the address Ax belongs the dirty bit DTYz is the second Of the address Ax is written to the nonvolatile element of the nonvolatile register of the address Ax, and when the dirty bit DTYz is the first value (logic 0), the address Ax
  • the data of the holding circuit is not written to the nonvolatile element of the nonvolatile register.
  • the holding circuit of the nonvolatile register of the address Ax belonging to the group Gy may be set to a preset initial value when the power is turned on.
  • the nonvolatile register control circuit (102) may set the dirty bit DTYz to a second value (logic 1) when there is a dirty bit DTYz corresponding to the group Gy.
  • the nonvolatile register control circuit (102) writes the volatile data to the holding circuit of the nonvolatile register of the address Ax belonging to the group Gy, if the dirty bit DTYz corresponding to the group Gy exists, the nonvolatile register control circuit (102) sets the dirty bit DTYz.
  • a value of 2 (logic 1) may be set.
  • the dirty bit DTYz corresponding to the group Gy exists, the dirty bit DTYz is set to the first value (logic 0) may be set.
  • the dirty bit DTYz is set to the second value (logic You may make it set to 1).
  • the dirty bit DTYz When the instruction interpreted by the decoder is a write instruction to the nonvolatile element of the non-volatile register at the address Ax, when the dirty bit DTYz corresponding to the group Gy to which the nonvolatile register at the address Ax belongs, the dirty bit DTYz is When the value is 2 (logic 1), the data of the holding circuit is written to the nonvolatile element of the nonvolatile register at the address Ax. When the dirty bit DTYz is the first value (logic 0), the address Ax The data of the holding circuit may not be written to the nonvolatile element of the nonvolatile register.
  • the addresses A1 to Am of the m non-volatile registers are further divided into t groups G1 to Gt, and the instruction specifies one address Ax belonging to the group Gy.
  • the interpreted instruction is a write instruction to the nonvolatile element
  • the nonvolatile register control circuit writes the data of the holding circuit to the nonvolatile element in all nonvolatile registers belonging to the group Gy
  • the interpreted instruction is a load instruction from a nonvolatile element
  • the nonvolatile register control circuit may load data of the nonvolatile elements into the holding circuit in all nonvolatile registers belonging to the group Gy.
  • a write command for the non-volatile element is read from the storage device in a first cycle, and a write current is supplied to write the non-volatile element in a second cycle subsequent to the first cycle.
  • a pipeline operation for reading the next instruction from the storage device is performed.
  • FIG. 1 is a diagram showing a configuration of a first exemplary embodiment of the present invention.
  • a semiconductor integrated circuit includes a storage device 100, an instruction decoder 101, a nonvolatile register control circuit 102, and a plurality (m) of nonvolatile registers 103 1 to 103. m .
  • Each of the plurality of nonvolatile registers 103 1 to 103 m includes a plurality (n) of nonvolatile flip-flops 104 1 to 104 n .
  • the nonvolatile flip-flops 104 1 to 104 n have the same configuration, and each of the nonvolatile flip-flops 104 1 to 104 n is also referred to as “nonvolatile flip-flop 104”.
  • the nonvolatile flip-flop 104 includes a holding circuit that holds data in a volatile manner (holding data is lost when the power is turned off), and a nonvolatile element that holds data in a nonvolatile manner (holding data is held even when the power is turned off). Including.
  • the nonvolatile flip-flop 104 has a function of transferring data between a holding circuit in the nonvolatile flip-flop 104 and a nonvolatile element.
  • Transferring data in the holding circuit to the nonvolatile element in the nonvolatile flip-flop 104 is referred to as “writing” of the nonvolatile element.
  • Transferring the data of the nonvolatile element to the holding circuit in the nonvolatile flip-flop 104 is called “loading” of the nonvolatile element.
  • each of the nonvolatile registers 103 1 to 103 m is composed of n nonvolatile flip-flops 104 1 to 104 n .
  • the values of n may be different from each other in each nonvolatile register 103.
  • the value of n is the same in each of the nonvolatile registers 103 1 to 103 m .
  • Nonvolatile registers 103 1 to 103 m Addresses A1 to Am are respectively given to the m non-volatile registers 103 1 to 103 m .
  • FIG. 1 For example, as nonvolatile registers 103 1 to 103 3 of addresses A1, A2, and A3, Program counter (PC), Stack point (SP), Status register (SR: Stack Pointer) It is shown.
  • the nonvolatile register 103 includes a general-purpose register and a register in a peripheral module. The values of these nonvolatile registers 103 1 to 103 m represent the internal state of the semiconductor integrated circuit, for example.
  • the value of the holding circuit of the nonvolatile register 103 is saved in the nonvolatile element, the power is turned off, the power is turned on after a while, and the data is restored to return the data to the state before the interruption. Can be returned.
  • an address may be allocated to a flip-flop to which an address is not allocated when data is to be restored after the power is turned on.
  • flip-flops for example, have a function to specify an address from software and write or load to a non-volatile element, but a function to write or read a holding circuit directly from software is as follows: Not necessarily required.
  • An instruction set in the semiconductor integrated circuit (a set of instructions that can be executed in the semiconductor integrated circuit) includes a nonvolatile register control instruction that controls the nonvolatile register. The process from reading an instruction to controlling a nonvolatile register will be briefly described. Details of the operation will be described later.
  • the central processing unit outputs an address specified by the program counter PC (nonvolatile register 103 1 ), and reads an instruction stored at the address from the storage device 100.
  • the storage device 100 is provided in the semiconductor integrated circuit, but may be provided outside the semiconductor integrated circuit.
  • the memory module may be a DRAM (Dynamic Random Access Memory) or the like (for example, a DIMM (Dual Inline Memory Module) module), or the cache memory may be an SRAM (Static Random Access Memory) or a semiconductor integrated circuit. It may be an instruction cache or the like that is provided inside and stores prefetched instructions. Alternatively, it may be a ROM (Read Only Memory) or the like provided in the semiconductor integrated circuit or externally, and any other storage device can be used as long as it can store instructions and can be read by giving an address. There may be.
  • the instruction decoder 101 decodes the instruction read from the storage device 100.
  • the nonvolatile register control circuit 102 When the instruction decoded by the instruction code 101 is a nonvolatile element write instruction, the nonvolatile register control circuit 102 writes the data of the holding circuit in the nonvolatile flip-flop 104 of the nonvolatile register 103 designated by the instruction to the nonvolatile element.
  • the nonvolatile register control circuit 102 loads the data of the nonvolatile element in the nonvolatile flip-flop 104 of the nonvolatile register 103 designated by the instruction to the holding circuit. .
  • a single-operand (single operand) instruction format may be used as the nonvolatile register control instruction.
  • FIG. 2 shows an example of a single operand instruction format.
  • B bits from (a + 1) bit to a + b bit are used to specify an addressing mode.
  • C bits from a + b + 1 bit to a + b + c bit are used for specifying an instruction code.
  • the nonvolatile register 103 can be controlled without largely changing the existing architecture by adding a nonvolatile register control instruction to the instruction code.
  • the addressing mode is set to the mode that operates the register that is usually prepared.
  • the instruction code may be set in a newly added nonvolatile register write instruction. Note that other addressing modes can be used as the addressing mode.
  • m nonvolatile registers 103 1 to 103 m from addresses A1 to Am may be divided into a plurality of groups. For example, when a nonvolatile address that is an instruction is designated, a plurality of nonvolatile registers in a group to which the nonvolatile register at that address belongs may be controlled simultaneously.
  • the bit field specifying the register of FIG. 2 is set to point to the register number 4,
  • the addressing mode may be set to a mode in which a normally prepared register is operated, and the instruction code may be set to a newly added nonvolatile register write instruction.
  • the nonvolatile register control circuit 102 may be configured to decode the address while ignoring, for example, the least significant bit (LSB: Least Significant Bit) of the address. In this case, “100” which is the designated bit of register number 4 and “101” which is the designated bit of register number 4 are simultaneously selected. As described above, simultaneous operation of a plurality of nonvolatile registers leads to time saving (reduction) in controlling the nonvolatile registers in the nonvolatile register control circuit 102.
  • LSB least significant bit
  • the present embodiment by writing to and loading the group to which the specified register belongs, the time overhead required for data saving / restoring is suppressed, and wasteful data saving / restoring is unnecessary. Electric power can be reduced.
  • FIG. 3 is a diagram showing an example of the configuration of the volatile flip-flop 104 according to the first embodiment of the present invention.
  • the nonvolatile flip-flop 104 includes nonvolatile elements (R1, R2), master latches (T1-T4, INV1, 2, T5-T8), and slave latches (T11, T12, T13, T14). Including.
  • data is exchanged between the slave latch and the nonvolatile element.
  • the nonvolatile flip-flop 104 has a function of writing data of the slave latch into the nonvolatile element and a function of loading data from the nonvolatile element to the slave latch.
  • nonvolatile flip-flop 104 may be configured as other forms as described below.
  • Other forms of nonvolatile flip-flops may have a function of writing data held in the master latch to the nonvolatile element and a function of loading data from the nonvolatile element to the master latch.
  • other types of nonvolatile flip-flops may have a function of writing data held in the master latch to the nonvolatile element and a function of loading data from the nonvolatile element to the slave latch.
  • the nonvolatile flip-flop of another form may have a function of writing data held in the slave latch into the nonvolatile element and a function of loading data from the nonvolatile element to the master latch.
  • the master latch includes a first clocked inverter (T1-T4), a first inverter INV1, a second clocked inverter (T5-T8), and a second inverter INV2.
  • the first clocked inverter is A PMOS transistor T1 having a source connected to the power supply (VDD) and a gate connected to the data terminal D;
  • a PMOS transistor T2 having a source connected to the drain of the PMOS transistor T1 and a gate connected to P2 (the outputs of the inverters INV5 and INV6 that invert the clock signal CLK and in phase with the clock signal CLK);
  • An NMOS transistor T3 having a drain connected to the drain of the PMOS transistor T2 and a gate connected to P1 (output of the inverter INV5 that inverts the clock signal CLK);
  • the NMOS transistor T3 includes an NMOS transistor T4 having a drain connected to the source, a source connected to the ground (GND), and a
  • the input of the first inverter INV1 is connected to the output of the first clocked inverter (the connection point of the drains of the transistors T2 and T3).
  • the second clocked inverter is A PMOS transistor T5 having a source connected to the power supply and a gate connected to the output of the first inverter INV1, A PMOS transistor T6 having a source connected to the drain of the PMOS transistor T5 and a gate connected to P1;
  • An NMOS transistor T7 having a drain connected to the drain of the PMOS transistor T6 and a gate connected to P2,
  • the NMOS transistor T7 comprises an NMOS transistor T8 having a drain connected to the source, a ground connected to the ground (GND), and a gate connected to the output of the first inverter INV1.
  • the second inverter INV2 has an input connected to the output of the first inverter INV1.
  • the first inverter INV1 and the second clocked inverter (T5-T8) constitute a holding circuit (bistable circuit). That is, when the clock signal CLK is High, P1 is Low, and P2 is High, the second clocked inverter (transistors T5-T8) is activated (turned on) to operate as an inverter, and the first inverter INV1 Together with this, a flip-flop is formed.
  • the first clocked inverter (T1-T4) is turned off (the signal at the data input terminal D is not transmitted to the first inverter INV1), and the second clocked inverter ( T5-T8) is turned on, and the first inverter INV1 and the second clocked inverter (T5-T8) in the on state constitute a flip-flop (bistable circuit).
  • the data of the master latch is held at the node N1. Further, the data inverted by the second inverter INV2 is held at the node N2.
  • the data held in the nodes N1 and N2 are stored in the slave latch holding nodes N3 and N4 via transistors (pass transistors) T9 and T10 which are turned on when P2 is High (when the clock signal CLK is High). Respectively. When P2 is Low (when the clock signal CLK is Low), the transistors T9 and T10 are turned off, and the nodes N1 and N2 and the nodes N3 and N4 of the slave latch are electrically disconnected from each other.
  • Slave latch PMOS transistors T11 and T13 whose sources are connected to the power supply (VDD), NMOS transistors T12, T14 having drains connected to the drains of the PMOS transistors T11, T13, respectively It has.
  • the commonly connected gates (input nodes of the first CMOS inverter) of the transistors T11 and T12 are connected to the node N4.
  • the commonly connected drains (the output nodes of the first CMOS inverter) of the transistors T11 and T12 are connected to the node N3.
  • the commonly connected gates (input nodes of the second CMOS inverter) of the transistors T13 and T14 (second CMOS inverter) are connected to the node N3.
  • the commonly connected drains (the output nodes of the first CMOS inverter) of the transistors T13 and T14 are connected to the node N4.
  • Transistors T11, T13, T12, and T14 constitute a holding circuit.
  • the slave latch A non-volatile element R1 having a first terminal connected to the source of the transistor T12 and a second terminal connected to a connection node N5 of the transistors T15 and T16;
  • the nonvolatile elements R1 and R2 are formed of ferromagnetic tunnel junction elements (MTJ), the third terminals are connected to each other.
  • MTJ ferromagnetic tunnel junction elements
  • the slave latch NMOS transistors T15 and T17 having drains connected to the power supply, NMOS transistors T16 and T18 having drains connected to the sources of the NMOS transistors T15 and T17, respectively, and having sources connected to the ground (GND).
  • the commonly connected drain (N5) of the transistors T15 and T16 and the commonly connected drain (N6) of the transistors T17 and T18 are connected to each other (as shown in FIG. 4, which will be described later). Connected through metal layers connecting layers).
  • a source is connected to GND, and a control signal WB (Low at the time of writing) is input to the gate T19 is further provided.
  • the transistor T19 is turned on when WB is High, that is, except during writing, and connects the sources of the transistors T12 and T14 to GND via the nonvolatile elements R1 and R2.
  • the transistor T15-18 constitutes a writing transistor.
  • the slave latch A two-input NOR circuit NOR1 for writing, the output of which is connected to the gates of the transistors T16 and T17; A two-input NOR circuit NOR2 for writing, the output of which is connected to the gates of the transistors T18 and T15.
  • the input of the 2-input NOR circuit NOR1 is connected to the nodes N3 and WB.
  • the input of the 2-input NOR circuit NOR2 is connected to the nodes N4 and WB.
  • WB is Low, the two-input NOR circuits NOR1 and NOR2 output signals obtained by inverting the nodes N3 and N4, respectively.
  • the slave latch A PMOS transistor T21 connected between the power supply and the node N3; A PMOS transistor T22 connected between the power supply and the node N4; A PMOS transistor T20 connected between the nodes N3 and N4.
  • the gates of the transistors T20 to T22 are commonly connected to the control signal LB.
  • the transistors T20 to T22 form a precharge / equalize circuit, and precharge / equalize the nodes N3 and N4 to the power supply potential when LB is Low.
  • the slave latch -Output inverters (inversion buffers) INV3 and INV4 having input terminals connected to nodes N3 and N4 are provided.
  • the complementary data (data of the nodes N3 and N4) latched in the holding circuit including the transistors T11 to T14 are input to the first inputs of the two-input NOR circuits NOR1 and NOR2, respectively.
  • the write control signal WB is input to the gate of the transistor T19 and the second inputs of the NOR circuits NOR1 and NOR2.
  • the outputs of the NOR circuits NOR1 and NOR2 are connected to the gates of the transistors T17 and T15, respectively.
  • the load signal LB is input to the gate of the transistor T20-22.
  • the load signal LB is Low, the nodes N3 and N4 are precharged and equalized to the power supply potential.
  • the output signal Q is output from the inverter INV4 whose input is connected to the node N3.
  • the output signal QB is output from the inverter INV3 whose input is connected to the node N4.
  • the clock signal CLK is input to the cascaded inverters INV5 and INV6, and complementary clock signals P1 and P2 respectively generated by the inverters INV5 and INV6 are supplied to the clocked inverters.
  • P2 is supplied to the gates of the transistors T9 and T10.
  • the nonvolatile flip-flop shown in FIG. 3 has the following functions in addition to the functions of the existing flip-flops.
  • -Data stored in a nonvolatile element can be read and the read data can be held by a holding circuit of a slave latch.
  • nonvolatile element for example, a ferromagnetic tunnel junction element (MTJ (Magnetic Tunnel Junction) element) using a magnetoresistive effect is used.
  • MTJ Magnetic Tunnel Junction
  • the MTJ element includes a ferromagnetic layer (free layer) whose magnetization direction changes, a ferromagnetic layer (fixed layer) whose magnetization direction is fixed, and an insulating layer formed between the free layer and the fixed layer. It has a configuration that includes. The resistance value when a current is passed through the MTJ element in the direction perpendicular to the film surface varies depending on the magnetization directions of the free layer and the fixed layer.
  • the MTJ element associates logical data with this resistance value or the magnetization direction of the free layer. For example, a low resistance state is a logical value “0”, and a high resistance state is a logical value “1”.
  • the writing of MTJ element is Magnetic field writing method for controlling the magnetization direction of the free layer using a current magnetic field, A spin torque writing method that controls the magnetization direction of the free layer by utilizing the spin torque effect is known.
  • FIG. 4 is a diagram schematically showing a cross section in the vicinity of a domain wall motion element that performs writing using the spin torque effect as a nonvolatile element.
  • the transistors transistors in FIG. 3, T12, T14, T15, T16, T17, and T18
  • This non-volatile element is in order from the closest to the substrate, Metal layer 1 (206, 207, 216)), Hard layer 1 (204, 214), hard layer 2 (205, 215), Free layer (203, 213), Insulating layers (202, 212), Reference layer (201, 211) including.
  • the reference layer 201 is connected to the transistor T12 of the nonvolatile register, and the hard layer 1 (204) is connected to a connection point between the transistors T15 and T16.
  • the hard layer 2 (205) is connected to the connection point of the transistors T17 and T18 via the metal layer 1 (207), the hard layer 2 (215), and the hard layer 1 (214) of the nonvolatile element R2.
  • the free layer and the hard layer use magnetic thin films having perpendicular magnetic anisotropy.
  • the magnetization directions of the hard layer 1 (204) and the hard layer 2 (205) are fixed in opposite directions.
  • the magnetization of the free layer (203) can be controlled up and down along the Z direction by the direction of the spin-polarized current. For example, when a current is passed from the hard layer 1 (204) toward the hard layer 2 (205), the polarized electrons flow in the opposite direction, and the free layer (203) has the same direction as the hard layer 2 (205). Magnetization is aligned. Conversely, when a current is passed from the hard layer 2 (205) toward the hard layer 1 (204), the magnetization of the free layer (203) is aligned in the same direction as the hard layer 1 (204). The same applies to the nonvolatile element R2.
  • the write control signal WB is set to the low potential.
  • Write data to the nonvolatile elements R1 and R2 corresponds to the data Q of the slave latch.
  • the node N4 has a power supply potential (High potential)
  • the node N3 has a Low potential
  • the output of NOR2 is Low
  • the output of NOR1 is High
  • the transistor T16 and T17 are turned on
  • transistors T15 and T18 are turned off.
  • a write current flows from the node N6 (High potential) to the node N5 (Low potential).
  • the resistance R1 of the nonvolatile element is in the low resistance state and the resistance R2 is in the high resistance state
  • the nonvolatile element stores data “0” corresponding to the data Q.
  • the load operation of the nonvolatile register will be described.
  • the load signal LB is set to the low potential.
  • the clock signal CLK is at a low potential
  • P1 is at a high potential
  • P2 is at a low potential.
  • the transistors T20, T21, and T22 are turned on, and the nodes N3 and N4 are precharged and equalized to a high potential (power supply potential).
  • the transistor T12 that receives the High potential of the node N4 at its gate is turned on, and a read current flows from the power source, the node N3 to the nonvolatile element R1 via the transistor T12. Further, the transistor T14 that receives the High potential of the node N3 at the gate is turned on, and a read current flows from the power source, the node N4 to the nonvolatile element R2 through the transistor T14.
  • WB is set to High
  • the transistor T19 is turned on, and the read current flowing through the nonvolatile elements R1 and R2 flows into GND. A small potential difference occurs between the nodes N3 and N4 according to the difference between these read currents.
  • the transistor 20-22 is turned off, and the potential difference between the nodes N3 and N4 is amplified by the holding circuit (differential latch) of the transistor T11-14.
  • the holding circuit differential latch
  • the resistance R1 of the nonvolatile element is in the low resistance state and R2 is in the high resistance state, so that the node N3 is at the low level and the node N4 is at the high level.
  • the potential of the node N4 is inverted by the inverter INV4, and the output terminal Q becomes a low level. That is, the data of the output terminal Q becomes “0” corresponding to the data of the nonvolatile element.
  • the resistance R1 of the nonvolatile element is in a high resistance state and R2 is in a low resistance state, so that the node N3 is at a high level and the node N4 is at a low level.
  • the output terminal Q becomes High level. That is, the data at the output terminal Q is “1” corresponding to the data of the nonvolatile element.
  • FIG. 5 is a diagram showing a configuration of a nonvolatile register and a nonvolatile register control circuit (102 in FIG. 1) in the semiconductor integrated circuit according to the first exemplary embodiment of the present invention.
  • An address A1 is given to each of the n non-volatile registers 103.
  • n is, for example, a 16-bit word unit, an 8-bit byte unit, or the like.
  • Non-volatile registers have m addresses from address A1 to address Am. Typically, when an address is designated, n nonvolatile registers at the address can be controlled simultaneously. Further, when a certain address is designated, a plurality of nonvolatile registers in a certain address area may be controlled simultaneously.
  • the nonvolatile register control circuit 102 System clock signal: CLK_SYS, Register address signal: A_REG, Write enable signal for register volatile data: WE_REG, Input data to the register: D_REG Write enable signal to nonvolatile element: NVWE_REG, Load enable signal: NVLE_REG is input from the nonvolatile element.
  • the nonvolatile register control circuit 102 outputs a nonvolatile register control signal to each nonvolatile register 103 based on the received control signal.
  • the nonvolatile register control signal to the nonvolatile register at address A1 is Clock signal: CLK_REG (A1), Input data: D_REG (A1), Load signal (Low active): LB_REG (A1), Write control signal (low active): WB_REG (A1) It is.
  • the nonvolatile register 103 at the address A1 outputs the output signal Q_REG (A1). The same applies to the registers from addresses A2 to Am.
  • FIG. 6 is a diagram showing an example of operation waveforms when the instruction code is a nonvolatile element write command in the semiconductor integrated circuit according to the first exemplary embodiment of the present invention shown in FIG.
  • System clock signal CLK_SYS, Address: A_RAM, Address A_RAM data: RD_RAM, Register address: A_REG, Write enable signal to nonvolatile element: NVWE_REG, Address A1 clock: CLK_REG (A1), Write control signal WB to address A1: WB_REG (A1), Data of address A1: Q_REG (A1), Resistance value of nonvolatile element at address A1: R_REG (A1), Address A2 clock: CLK_REG (A2), Write control signal WB to address A2: WB_REG (A2), Data at address A2: Q_REG (A2), Resistance value of nonvolatile element at address A2: R_REG (A2)
  • the timing waveform is shown.
  • the central processing unit (not shown) outputs the value PC1 of the program counter as the address A_RAM to the storage device (100 in FIG. 1).
  • the central processing unit receives the instruction OP1 as the data RD_RAM of the address A_RAM of the storage device (100 in FIG. 1).
  • the instruction OP1 has the instruction format shown in FIG. 2, and the instruction code is a code of a nonvolatile element write instruction.
  • the addressing mode is a single operand format, and the register at address A1 is designated.
  • the instruction decoder of the central processing unit interprets the instruction OP1 and outputs A1 as the register address A_REG.
  • the instruction decoder (101 in FIG. 1) of the central processing unit decodes the instruction operation code OP1, outputs the nonvolatile element write signal NVWE_REG to the nonvolatile register control circuit 102, and ends the output at time T5. .
  • the nonvolatile register control circuit 102 sets the write control signal WB_REG (A1) of the register at the selected address A1 to the low level, and causes the write current to flow through the nonvolatile register 103.
  • the resistance value R_REG (A1) of the nonvolatile element in the nonvolatile register at the address A1 is rewritten to the resistance value R1 corresponding to the stored data Q_REG (A1).
  • the times T6 and T8 for writing to the non-volatile element may be after the time T11 when the read cycle of the next command from the storage device (100 in FIG. 1) starts. This is because writing to the non-volatile element can be performed without changing the output of the non-volatile register, which does not hinder the reading operation of the next instruction.
  • a sufficient setup time for writing to the nonvolatile element can be secured and a plurality of instructions can be executed in a short time.
  • FIG. 7 is a diagram showing an example of operation waveforms when the instruction code (OP1) is a load instruction for a nonvolatile element in the semiconductor integrated circuit according to the first exemplary embodiment of the present invention.
  • FIG. 7 shows timing waveforms of CLK_SYS, A_RAM, RD_RAM, A_REG, NVWE_REG, CLK_REG (A1), LB_REG (A1), Q_REG (A1), and R_REG (A1).
  • CLK_SYS CLK_SYS
  • A_RAM RD_RAM
  • A_REG NVWE_REG
  • CLK_REG A1
  • LB_REG A1
  • Q_REG Q_REG
  • R_REG R_REG
  • the central processing unit (not shown) outputs the value PC1 of the program counter as the address A_RAM to the storage device (100 in FIG. 1).
  • the central processing unit receives the instruction OP1 as the data RD_RAM of the address A_RAM of the storage device (100 in FIG. 1).
  • the instruction OP1 has the instruction format shown in FIG. 2, and the instruction code is a code of a load instruction of the nonvolatile element.
  • the addressing mode is a single operand format, and the register at the address A1 is designated.
  • the instruction decoder of the central processing unit interprets the instruction OP1 and outputs A1 as the register address A_REG.
  • the instruction decoder of the central processing unit interprets the instruction OP1, outputs the nonvolatile element write enable signal NVLE_REG to the nonvolatile register control circuit (102 in FIG. 1), and ends the output at time T5.
  • the nonvolatile register control circuit 102 sets the load signal LB_REG (A1) of the register at the selected address A1 to the Low level, and performs the nonvolatile register loading operation.
  • the output data Q_REG (A1) in the nonvolatile register at address A1 is rewritten to the output D1 corresponding to the resistance value R1 of the resistance value R_REG (A1) of the nonvolatile element.
  • the write operation may be completed before entering the next cycle time T11.
  • FIG. 8 is the same as FIG. 6 from time T1 to T5. 8 differs from FIG. 6 in the period from time T6 to T8 before T11, the nonvolatile register control circuit 102 sets the write control signal WB_REG (A1) of the register at the selected address A1 to the low level. A write current is passed through the nonvolatile register 103.
  • the resistance value R_REG (A1) of the nonvolatile element in the nonvolatile register at the address A1 is rewritten to the resistance value R1 corresponding to the stored data Q_REG (A1).
  • the data in the nonvolatile register can change in synchronization with the system clock CLK_SYS.
  • the data before time T11 is stored.
  • the data after time T11 is stored in a nonvolatile element.
  • the loading operation may be performed in one cycle. 7 differs from the load operation in FIG. 7 in that the load operation in FIG. 9 requires one cycle.
  • FIG. 9 is the same as FIG. 7 from time T1 to time T7. The difference is that the load operation of the register at address A2 is performed in the next cycle after time T11.
  • the load instruction may be one cycle as shown in FIG. Specifically, the operation as shown in FIG. 9 can be performed when a sufficient setup margin can be secured for the register after the loaded register.
  • the loading operation may be completed before entering the next cycle time T11.
  • FIG. 10 is the same as FIG. 7 from time T1 to T5. The difference is that from time T 6 to time T 7 before time T 11, the nonvolatile register control circuit 102 sets the load signal LB_REG (A 1) of the register at the selected address A 1 to the low level, and from the nonvolatile element of the nonvolatile register 103. Load data into the holding circuit.
  • the output data Q_REG (A1) in the nonvolatile register at the address A1 is switched to D1 (data read from the nonvolatile element to the holding circuit) corresponding to the resistance value R1 of the resistance value R_REG (A1) of the nonvolatile element. .
  • the semiconductor device (semiconductor integrated circuit) of the present embodiment integrates a logic element and a nonvolatile memory element, so that data transfer delay and data transfer are performed when data is saved prior to power-off. Power consumption of wiring and circuits to be reduced can be reduced.
  • the semiconductor integrated circuit of the related technology performs writing and loading of the nonvolatile register in units of modules, it consumes power required for unnecessary writing and loading. Since control is possible in units of nonvolatile registers, power consumption required for saving and restoring unnecessary data can be reduced. This is because an address is assigned to the nonvolatile register, and a bit in an instruction designated by the address and an instruction for writing or loading the nonvolatile register are provided. Furthermore, the time overhead required for saving and restoring data can be suppressed by writing and loading to the group to which the designated nonvolatile register belongs.
  • FIG. 11 is a diagram showing a configuration of the second exemplary embodiment of the present invention.
  • an arithmetic device 105 is added.
  • the arithmetic unit 105 inputs the operands A and B of the instruction, executes an operation specified by the instruction code (for example, a binary operation relating to the operand A and the operand B), and outputs an operation result.
  • an operation specified by the instruction code for example, a binary operation relating to the operand A and the operand B
  • FIG. 11 shows a case where register values are used as operands A and B, and the operation result is written back to the register. Note that memory data and register values in the module can also be used as operands.
  • the arithmetic unit 105 may perform a single term operation other than the binary operation.
  • FIG. 12 is a diagram showing an instruction format. As shown in FIG. 12, in the second embodiment, the instruction includes a bit (bit field) that can set the write mode of the nonvolatile element.
  • bit field bit that can set the write mode of the nonvolatile element.
  • B bits from a + 1 bit to a + b bit are used to specify an addressing mode.
  • C bits from a + b + 1 bit to a + b + c bit are used for specifying an instruction code.
  • D bits from a + b + c + 1 to a + b + c + d bits are non-volatile element write mode bits WMB1 to WMBd, and are used to specify the non-volatile element write mode.
  • Non-volatile register write modes Each bit of WMB1 to WMBd is associated with a plurality of non-volatile registers.
  • m non-volatile registers 103 from addresses A1 to Am are divided into q groups G1 to Gq.
  • Each group Gy (1 ⁇ y ⁇ q) is associated one-to-one with one of WMBz (1 ⁇ z ⁇ d) of the nonvolatile element write mode bits WMB1 to WMBd, or a corresponding nonvolatile element Assume that there is no write mode bit.
  • the write data to the holding circuit is not written to the nonvolatile element of the nonvolatile register at the designated address Ax (the nonvolatile element write mode bit WMBz is “ Same as 0 ').
  • the nonvolatile register control circuit 102 determines whether or not to write the data in the nonvolatile element based on the write mode bit at the same time as the data is written back to the nonvolatile register.
  • the central processing unit outputs an address specified by the program counter PC, and reads an instruction stored in the address from the storage device.
  • the instruction decoder 101 decodes the instruction read from the storage device 100.
  • the nonvolatile register control circuit 102 When the nonvolatile element write mode bit WMB1 of the instruction code is 1, the nonvolatile register control circuit 102 writes the operation result back to the holding circuit of the designated nonvolatile register 103 and simultaneously writes the operation result to the nonvolatile element. For example, when the addition result of the register number 4 and the register number 5 of the nonvolatile register 103 is written back to the register number 5 and the data is written to the register number 5 nonvolatile element, Set the register designation bits to register number 4 and register number 5, The addressing mode is a double operand mode that operates between registers.
  • the instruction code is an addition instruction, What is necessary is just to set to the writing mode of the non-volatile element of a non-volatile register.
  • FIG. 13 is a diagram showing an example of operation waveforms in the write mode of the nonvolatile element in the second exemplary embodiment of the present invention. With reference to FIG. 13 and FIG. 11, the operation when writing to the nonvolatile element at the same time as writing to the nonvolatile register will be described.
  • the central processing unit (program counter) outputs the value PC1 of the program counter to the storage device 100 as an address A_RAM.
  • the instruction decoder 101 receives the instruction OP1 as read data RD_RAM of the address A_RAM of the storage device 100.
  • the instruction OP1 has the instruction format shown in FIG.
  • the write mode bit of the nonvolatile element is set to 1.
  • the instruction code designates a certain operation, performs the operation between the registers Ax and A1, and writes the result back to the register A1.
  • the instruction decoder 101 interprets the instruction OP1 and outputs A1 as the register address A_REG.
  • the arithmetic unit 105 outputs the arithmetic result D1 as input data D_REG to the register.
  • the instruction decoder 101 interprets the instruction OP1, outputs the nonvolatile element write enable signal NVWE_REG to the nonvolatile register control circuit 102, and ends the output at time T5.
  • the nonvolatile register control circuit 102 sets the volatile data write signal CLK_REG (A1) of the nonvolatile register 103 to the high level, and writes the data D1 to the nonvolatile element of the nonvolatile register at the address A1.
  • the nonvolatile register control circuit 102 sets the write control signal WB_REG (A1) of the selected nonvolatile register 103 at the address A1 to the low level, and performs the writing operation of the nonvolatile element of the nonvolatile register.
  • the resistance value R_REG (A1) of the nonvolatile element in the nonvolatile register at the address A1 is switched to the resistance value R1 corresponding to the calculation result D1.
  • the volatile data in the nonvolatile register can be written into the nonvolatile element at the same time. Accordingly, in the first embodiment, two instructions, that is, volatile data writing and nonvolatile element writing are required, whereas in the second embodiment, the execution time is shortened because it can be executed in one instruction cycle. And the program area can be reduced.
  • the volatile data and the non-volatile data can always be kept consistent in preparation for unexpected power supply stop, it is possible to provide a semiconductor integrated circuit highly resistant to power failure.
  • FIG. 14 is a diagram showing the configuration of the third exemplary embodiment of the present invention.
  • a d-bit nonvolatile element write mode register 106 is added to the second embodiment described with reference to FIG.
  • the nonvolatile element writing mode register 106 is not necessarily a nonvolatile register, and may be a register that holds only volatile data.
  • FIG. 15 is a diagram showing an instruction format of a semiconductor integrated circuit including a nonvolatile register according to the third embodiment of the present invention.
  • the third embodiment has no bit field for setting the nonvolatile element write mode in the instruction. That is, the bit for designating the nonvolatile element writing mode is provided in the instruction in the second embodiment, but is provided as a register in the third embodiment.
  • Each bit of the nonvolatile register write mode bits WMB1 to WMBd is associated with a plurality of nonvolatile registers. Specifically, as in the second embodiment, the addresses A1 to Am of the m non-volatile registers are divided into q groups G1 to Gq. Each group Gy is associated with one WMBz of the nonvolatile element write mode bits WMB1 to WMBd on a one-to-one basis, or there is no corresponding nonvolatile element write mode bit.
  • the nonvolatile register control circuit 102 writes whether data is written or not written to the nonvolatile element of the nonvolatile register 103 at the same time as the data is written back to the nonvolatile register 103. The determination is made based on the setting information (nonvolatile element write mode bit information) of the mode register 106.
  • an address specified by the program counter PC of the central processing unit is output, and an instruction stored at the address is read from the storage device.
  • the instruction decoder 101 decodes the instruction read from the storage device 100.
  • the instruction code is an instruction to set the nonvolatile element write mode register WMB1 to ‘1’
  • the value of the nonvolatile element write mode register is set to ‘1’, and the register information is given to the nonvolatile register control circuit 102.
  • the nonvolatile register control circuit 102 refers to the value of the nonvolatile element write mode register 106. If it can be confirmed that the value of the corresponding bit in the nonvolatile element write mode register 106 is “1”, the volatile data is written to the nonvolatile register at the selected address, and at the same time, the nonvolatile element data in the nonvolatile register is rewritten. . In this case, the detailed waveform at the time of writing is the same as that in FIG.
  • the compatibility with the existing architecture is higher than that of the second embodiment. That is, in the second embodiment, it is necessary to add a bit for designating the write mode of the nonvolatile register, but there may be a case where there is no free bit in the existing instruction code. In this case, it is necessary to widen the bit width of the instruction or to divide it into two instructions, and it is necessary to greatly change the existing architecture.
  • the nonvolatile element write mode register 106 by providing the nonvolatile element write mode register 106, there is an advantage that the existing architecture can be used as it is without changing the instruction code.
  • FIG. 16 is a diagram showing the configuration of the fourth exemplary embodiment of the present invention.
  • an arithmetic unit 105 and a dirty bit 107 are added.
  • the dirty bit is not necessarily a non-volatile register, and may be a conventional register that holds only volatile data.
  • the register 107 includes d dirty bits DTY1 to DTYd consisting of d pieces, and the addresses A1 to Am of the m nonvolatile registers are divided into s groups G1 to Gs. Each group Gy (1 ⁇ y ⁇ s) is associated one-to-one with one of the dirty bits DTY1 to DTYd, or there is no corresponding non-volatile element write mode bit.
  • the instruction interpreted by the instruction decoder 101 is a write instruction to the non-volatile element of the non-volatile register at the address Ax
  • when there is a dirty bit DTYz corresponding to the group Gy to which the non-volatile register at the address Ax belongs When the dirty bit DTYz is “1”, the data of the holding circuit is written to the nonvolatile element of the nonvolatile register of the address Ax, When the dirty bit DTYz is “0”, the data of the holding circuit is not written to the nonvolatile element of the nonvolatile register at the address Ax.
  • FIG. 17 is a diagram showing the state transition of dirty bits in the fourth embodiment of the present invention.
  • the nonvolatile register control circuit 102 writes data so as to realize the following dirty bit state transition.
  • the value of each dirty bit is stored in, for example, an existing volatile flip-flop (ordinary flip-flop), and writing is performed in the same manner as normal flip-flop writing.
  • the holding circuit of the nonvolatile register of the address Ax belonging to the group Gy is set with a preset initial value when the power is turned on.
  • the dirty bit DTYz When the dirty bit DTYz corresponding to the group Gy exists, the dirty bit DTYz is set to “1”. When volatile data is written to the holding circuit of the nonvolatile register at the address Ax, if the dirty bit DTYz exists, the dirty bit DTYz is set to “1”. When the nonvolatile element data is loaded to the holding circuits of all the nonvolatile registers belonging to the group Gy, if the dirty bit DTYz exists, the dirty bit DTYz is set to “0”. When the data of the holding circuit is written to the nonvolatile elements of all the nonvolatile registers belonging to the group Gy, the dirty bit DTYz is set to “0” when the dirty bit DTYz exists.
  • the nonvolatile register control circuit 102 needs to refer to the value of the dirty bit when writing to the nonvolatile element.
  • the nonvolatile register control circuit 102 can select a desired dirty bit value from the dirty bit outputs.
  • the value of the dirty bit DTYz of the group Gy to which the address Ax belongs is selected from a plurality of dirty bit outputs by a circuit such as a multiplexer (not shown).
  • the nonvolatile register control circuit 102 determines whether or not to write to the nonvolatile element according to the value of the dirty bit DTYz.
  • Dirty bits are useful for reducing the write power consumption of nonvolatile elements.
  • the first embodiment it is possible to finely save data before powering off, but it is difficult to manage which data has been saved and which data has not been saved yet. There is. In that case, if it is attempted to solve the problem by saving all data, the power consumption for writing increases.
  • the dirty bit prior to turning off the power, the dirty bit is used, and data is written to the nonvolatile element only in the nonvolatile register whose dirty bit is “1”. Therefore, it is not necessary to write data to the nonvolatile elements of the nonvolatile registers in all nonvolatile registers prior to power off, and the number of nonvolatile elements to be written can be reduced.
  • data can always be saved to a nonvolatile element, so it is not necessary to manage which data is saved.
  • creation of a restoration point in preparation for unexpected power shutdown can be realized with lower power consumption. This is because only the register having the dirty bit of 1 needs to be written to the nonvolatile element as described above.
  • the fourth embodiment can obtain the same effects as those of the first embodiment, and further includes a dirty bit to reduce the number of nonvolatile elements to be written and the number of times of writing. Thus, delay for saving data and power consumption can be easily reduced.
  • the present invention has been specifically described based on several embodiments, but the present invention is not limited to the above-described embodiments. Various modifications can be made without departing from the scope of the present invention, and these modifications are also included in the present invention.
  • the above description has focused on the registers in the central processing unit.
  • the registers can be easily expanded to registers in the peripheral modules, and are included in the present invention.
  • an embodiment obtained by combining the embodiments can achieve the same effect and is included in the present invention.
  • the disclosures of the above patent documents are incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept.

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)

Abstract

 データを揮発的に保持する保持回路と不揮発素子とを含むフリップフロップ(104)を少なくとも1つ備え、各々にアドレスが与えられた不揮発レジスタ(103)と、不揮発レジスタ(103)を制御する不揮発レジスタ制御回路(102)を備え、不揮発レジスタ制御回路は、命令デコーダ(101)で解釈した命令が、不揮発レジスタの保持回路から不揮発素子へのデータの書き込みを指定する書き込み命令の場合、該命令で指定されたアドレスの不揮発レジスタの保持回路に保持されるデータの不揮発素子への書き込みを行い、命令デコーダで解釈した命令が、不揮発レジスタの不揮発素子から保持回路へのロードを指定するロード命令の場合、該命令で指定されたアドレスの前記不揮発レジスタの不揮発素子に保持されるデータを、保持回路に保持させる制御を行う。

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に属するひとつのアドレス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:Stack Pointer)
が示されている。図示した以外に、不揮発レジスタ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”とレジスタ番号4の指定ビットである“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の共通接続されたドレイン(第1の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個の不揮発レジスタ103毎にアドレスA1を与えている。nは、例えば、16ビットのワード単位、8ビットのバイト単位等である。
 不揮発レジスタのアドレスは、アドレスA1からアドレスAmのm個である。典型的には、あるアドレスを指定すると、そのアドレスのn個の不揮発レジスタを同時に制御することができる。また、あるアドレスを指定すると、あるアドレス領域の複数の不揮発レジスタを同時に制御できるようにしてもよい。
 不揮発レジスタ制御回路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までのレジスタも同様である。
 図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に示した命令形式であり、命令コードは、不揮発素子の書き込み命令のコードである。
 また、アドレッシングモードは、シングルオペランド形式であり、アドレス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、NVWE_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は、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で指定されるアドレスを出力し、そのアドレスに記憶されている命令を記憶装置から読み出す。
 命令デコーダ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の揮発データの書き込み信号CLK_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個の不揮発レジスタのアドレスA1からAmは、q個のグループG1からGqに分割される。それぞれのグループGyは、不揮発素子書き込みモードビットWMB1からWMBdのうちのひとつWMBzと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で指定されるアドレスを出力し、そのアドレスに記憶されている命令を記憶装置から読み出す。
 命令デコーダ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に対応付けされているか、又は、前記グループに対応する不揮発素子書き込みモードビット情報が設けられていないかの、いずれかであり、
     あるグループに属するアドレスの前記不揮発レジスタの前記保持回路へデータを書き込む際に、
     前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータを、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子へ書き込み、
     前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が非活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子への書き込みは行わず、
     前記グループに対応付けられた前記不揮発素子書き込みモードビット情報が存在しない場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの不揮発レジスタの前記不揮発素子への書き込みは行わないように制御する、請求項9記載の半導体装置の制御方法。
PCT/JP2012/072874 2011-09-09 2012-09-07 半導体装置とその制御方法 WO2013035836A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/343,325 US9135988B2 (en) 2011-09-09 2012-09-07 Semiconductor device and control method of the same
JP2013532667A JP5962658B2 (ja) 2011-09-09 2012-09-07 半導体装置とその制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-197517 2011-09-09
JP2011197517 2011-09-09

Publications (1)

Publication Number Publication Date
WO2013035836A1 true WO2013035836A1 (ja) 2013-03-14

Family

ID=47832276

Family Applications (1)

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

Country Status (3)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014225251A (ja) * 2013-04-26 2014-12-04 株式会社半導体エネルギー研究所 半導体装置
JP2015099628A (ja) * 2013-10-18 2015-05-28 株式会社半導体エネルギー研究所 演算処理装置およびその駆動方法
US9777108B2 (en) 2013-09-16 2017-10-03 Lg Chem, Ltd. Copolymer and organic solar cell comprising same
KR102154352B1 (ko) * 2019-03-08 2020-09-10 고려대학교 산학협력단 비휘발성 메모리 기반의 플립플롭 및 그 백업 동작방법

Citations (3)

* 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
WO2003085741A1 (fr) * 2002-04-10 2003-10-16 Matsushita Electric Industrial Co., Ltd. Bascule bistable non volatile
WO2009072511A1 (ja) * 2007-12-06 2009-06-11 Nec Corporation 不揮発性ラッチ回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US8295079B2 (en) 2007-08-31 2012-10-23 Tokyo Institute Of Technology Nonvolatile SRAM/latch circuit using current-induced magnetization reversal MTJ
US8243502B2 (en) 2007-12-14 2012-08-14 Nec Corporation Nonvolatile latch circuit and logic circuit using the same
JP2010171772A (ja) * 2009-01-23 2010-08-05 Rohm Co Ltd 携帯電話
JP2010267136A (ja) * 2009-05-15 2010-11-25 Rohm Co Ltd データ処理装置

Patent Citations (3)

* 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
WO2003085741A1 (fr) * 2002-04-10 2003-10-16 Matsushita Electric Industrial Co., Ltd. Bascule bistable non volatile
WO2009072511A1 (ja) * 2007-12-06 2009-06-11 Nec Corporation 不揮発性ラッチ回路

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014225251A (ja) * 2013-04-26 2014-12-04 株式会社半導体エネルギー研究所 半導体装置
US10095584B2 (en) 2013-04-26 2018-10-09 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US9777108B2 (en) 2013-09-16 2017-10-03 Lg Chem, Ltd. Copolymer and organic solar cell comprising same
JP2015099628A (ja) * 2013-10-18 2015-05-28 株式会社半導体エネルギー研究所 演算処理装置およびその駆動方法
JP2020113360A (ja) * 2013-10-18 2020-07-27 株式会社半導体エネルギー研究所 演算処理装置の駆動方法
KR102154352B1 (ko) * 2019-03-08 2020-09-10 고려대학교 산학협력단 비휘발성 메모리 기반의 플립플롭 및 그 백업 동작방법
US11048431B2 (en) 2019-03-08 2021-06-29 Korea University Research And Business Foundation Flip-flop based on nonvolatile memory and backup operation method thereof

Also Published As

Publication number Publication date
US20140233304A1 (en) 2014-08-21
JP5962658B2 (ja) 2016-08-03
US9135988B2 (en) 2015-09-15
JPWO2013035836A1 (ja) 2015-03-23

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
US6958948B2 (en) Semiconductor device having a data latching or storing function
US20140149773A1 (en) Latch circuit and data processing system
CN107408409B (zh) 低功率、面向行的存储器写辅助电路
JP2004133969A (ja) 半導体装置
TWI620195B (zh) 組合電路及操作此種組合電路的方法
CN108885889B (zh) 用于智能位线预充电的写驱动器和方法
CN111902871A (zh) 用于耦合存储器装置中的数据线的设备及方法
JP5962658B2 (ja) 半導体装置とその制御方法
JP3754593B2 (ja) データビットを記憶するメモリーセルを有する集積回路および集積回路において書き込みデータビットをメモリーセルに書き込む方法
US7778105B2 (en) Memory with write port configured for double pump write
JP5999097B2 (ja) 半導体集積回路及びその制御方法
JP6816716B2 (ja) 不揮発性記憶回路
JP7430407B2 (ja) 電子回路
KR20070029193A (ko) 데이터 유지 래치를 갖는 메모리 장치
JP2009302254A (ja) 半導体装置
JP2007066509A (ja) Sramのメモリシステムおよびその制御方法
JP2014222425A (ja) 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
US8014211B2 (en) Keeperless fully complementary static selection circuit
JP2016062503A (ja) メモリシステムおよびキャッシュメモリ
JP5257598B2 (ja) 磁気ランダムアクセスメモリ及びその動作方法
US8547778B2 (en) Apparatus and method for converting static memory address to memory address pulse
CN112927737A (zh) 具使用磁性隧道结的非易失寄存器
KR20050040290A (ko) 불휘발성 강유전체 메모리 셀 및 이를 이용한 메모리 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12830148

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013532667

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14343325

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12830148

Country of ref document: EP

Kind code of ref document: A1