WO2013035836A1 - 半導体装置とその制御方法 - Google Patents
半導体装置とその制御方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital 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/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/161—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/165—Auxiliary circuits
- G11C11/1659—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital 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/165—Auxiliary circuits
- G11C11/1693—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0054—Digital 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/0081—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/007—Register arrays
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K17/00—Electronic switching or gating, i.e. not by contact-making and –breaking
- H03K17/22—Modifications for ensuring a predetermined initial state when the supply voltage has been applied
- H03K17/24—Storing 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
Description
本発明は、日本国特許出願:特願2011-197517号(2011年9月9日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体装置とその制御方法に関し、特に、例えば不揮発なレジスタ等の記憶手段を備えた半導体装置とその制御方法に関する。
データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子と、を含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた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の不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込まない。
前記デコーダが解釈した命令がアドレスAxの不揮レジスタの不揮発素子への書き込み命令の時、アドレスAxの不揮発レジスタの属するグループGyに対応した前記ダーティビットDTYzが存在したとき、前記ダーティビットDTYzが第2の値(論理1)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込み、前記ダーティビットDTYzが第1の値(論理0)の場合は、前記アドレスAxの不揮発レジスタの不揮発素子へ、前記保持回路のデータを書き込まない、ようにしてもよい。
前記不揮発レジスタ制御回路は前記グループGyに属する全ての不揮発レジスタにおいて、前記保持回路のデータを前記不揮発素子へ書き込みを行い、
前記解釈した命令が不揮発素子からのロード命令の場合、
前記不揮発レジスタ制御回路は前記グループGyに属する全ての不揮発レジスタにおいて、前記不揮発素子のデータを前記保持回路へロードを行う、ようにしてもよい。
図1は、本発明の例示的な第1実施形態の構成を示す図である。図1を参照すると、第1の実施形態において、半導体集積回路(LSI)は、記憶装置100と、命令デコーダ101と、不揮発レジスタ制御回路102と、複数(m個)の不揮発レジスタ1031~103mとを含む。
プログラムカウンタ(PC: Program Counter)、
スタックポイント(SP: Stack Pointer)、
ステータスレジスタ(SR:Stack Pointer)
が示されている。図示した以外に、不揮発レジスタ103は、汎用レジスタや、周辺モジュール内のレジスタも含む。これらの不揮発レジスタ1031~103mの値は、例えば半導体集積回路の内部状態を表す。
・書き込みや読み出しを指定して行えるようにアドレスが割り振られているフリップフロップと、
・アドレスが割り振られていないフリップフロップと、
が存在する。
レジスタの指定ビットを、レジスタ番号4を指すように設定し、
アドレッシングモードは、通常用意されているレジスタを操作するモードに設定し、
命令コードは、新規に追加した不揮発レジスタの書き込み命令
に設定すればよい。なお、アドレッシングモードは、他のアドレッシングモードを利用することもできる。
・電源(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とともにフリップフロップを構成する。
・電源(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を備えている。
フリー層の磁化と固定層の磁化が反平行の場合、抵抗値は高くなる。
電流磁界を用いてフリー層の磁化方向を制御する磁場書き込み方式と、
スピントルク効果を利用してフリー層の磁化方向を制御するスピントルク書き込み方式と、が知られている。
メタル層1(206、207、216))、
ハード層1(204、214)、ハード層2(205、215)、
フリー層(203、213)、
絶縁層(202、212)、
リファレンス層(201、211)
を含む。
システムのクロック信号:CLK_SYSと、
レジスタのアドレス信号:A_REGと、
レジスタの揮発性データの書き込みイネーブル信号:WE_REGと、
レジスタへの入力データ:D_REGと、
不揮発素子への書き込みイネーブル信号:NVWE_REGと、
不揮発素子からのロードイネーブル信号:NVLE_REGと
が入力される。
クロック信号:CLK_REG(A1)、
入力データ:D_REG(A1)、
ロード信号(Lowアクティブ):LB_REG(A1)、
書き込み制御信号(Lowアクティブ):WB_REG(A1)
である。
システムのクロック信号: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)
のタイミング波形が示されている。
図11は、本発明の第2実施形態の構成を示す図である。本実施形態においては、図1を参照して説明した前記第1実施形態に加え、演算装置105が追加されている。
1からaビットまではレジスタの指定に利用される。
レジスタの指定ビットを、レジスタ番号4と、レジスタ番号5に設定し、
アドレッシングモードを、レジスタとレジスタとの間で演算するダブルオペランドモードとし、
命令コードを加算命令とし、
不揮発レジスタの不揮発素子の書き込みモードに設定すればよい。
図14は、本発明の第3実施形態の構成を示す図である。本実施形態の半導体集積回路は、図11を参照して説明した前記第2実施形態に、dビットの不揮発素子書き込みモードレジスタ106が追加されている。
図16は、本発明の第4の実施形態の構成を示す図である。図16を参照すると、第4の実施形態は、前記第1実施形態に加え、演算装置105と、ダーティビット107が追加されている。ここで、ダーティビットは、必ずしも不揮発レジスタである必要はなく、従来の揮発性データのみを保持するレジスタであってもよい。
グループGyに対応付けられたダーティビットDTYz(1≦z≦d)が存在していれば、DTYzを‘0’にセットする。
一致していない可能性がある場合に、ダーティビットDTYzが存在していれば、DTYzを‘1’にセットする。
ダーティビットDTYzが‘1’の場合、アドレスAxの不揮発レジスタの不揮発素子へ、保持回路のデータを書き込み、
ダーティビットDTYzが‘0’の場合、アドレスAxの不揮発レジスタの不揮発素子へ、保持回路のデータを書き込まない。
アドレスAxの不揮発レジスタの保持回路へ揮発データを書き込んだ際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘1’に設定する。
グループGyに属する全ての不揮発レジスタの保持回路へ、不揮発素子のデータをロードした際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘0’に設定する。
グループGyに属する全ての不揮発レジスタの不揮発素子へ、保持回路のデータを書き込んだ際には、ダーティビットDTYzが存在するとき、ダーティビットDTYzを‘0’に設定する。
命令デコーダ101から与えられたアドレスAxの情報を元にマルチプレクサ(不図示)等の回路により、複数あるダーティビットの出力の中から、アドレスAxの属するグループGyのダーティビットDTYzの値を選択する。
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対1に対応付けされているか、又は、前記グループに対応する不揮発素子書き込みモードビット情報が設けられていないかの、いずれかであり、
あるグループに属するアドレスの前記不揮発レジスタの前記保持回路へデータを書き込む際に、
前記不揮発レジスタ制御回路は、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータを、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子へ書き込み、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が非活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子への書き込みは行わず、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報が存在しない場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの不揮発レジスタの前記不揮発素子への書き込みは行わないように制御する、請求項1記載の半導体装置。 - 前記不揮発レジスタの前記保持回路と前記不揮発素子の内容が異なることを示すフラグビットを保持するレジスタを含み、
前記不揮発レジスタのアドレスは複数のグループに分割され、それぞれのグループは、前記フラグビットのうちの一つのビットと1対1に対応付けされているか、又は、前記グループに対応するフラグビットが配設されていないか、のいずれかであり、
1つのグループに属する全ての前記不揮発レジスタの前記保持回路のデータと前記不揮発素子のデータが一致している場合に、前記1つのグループに対応付けられた前記フラグビットが存在していれば、前記フラグビットを第1の値にセットし、
一致していない可能性がある場合に、前記フラグビットが存在していれば前記フラグビットを第2の値にセットし、
前記不揮発レジスタ制御回路は、
前記命令デコーダで解釈された命令が、前記命令で指定されるアドレスの不揮発レジスタにおける不揮発素子への書き込み命令であるとき、
前記アドレスの前記不揮発レジスタの属するグループに対応した前記フラグビットが存在する場合、前記フラグビットが前記第2の値の場合には、
前記アドレスの前記不揮発レジスタの前記保持回路のデータの前記不揮発レジスタの前記不揮発素子への書き込みを行い、
前記フラグビットが前記第1の値の場合には、前記アドレスの前記不揮発レジスタの前記保持回路のデータの前記不揮発素子への書き込みを行わない、
ように制御する、請求項1記載の半導体装置。 - 前記グループに属するアドレスの前記不揮発レジスタの前記保持回路には、電源オンに伴って、あらかじめ設定されている初期値が設定され、
前記グループに対応したフラグビットが存在するとき、前記フラグビットを前記第2の値に設定し、
前記不揮発レジスタ制御回路は、
前記アドレスの不揮発レジスタの保持回路へ揮発データを書き込んだ際に、
前記グループに対応するフラグビットが存在するとき、前記フラグビットを前記第2の値に設定し、
前記グループに属する全ての前記不揮発レジスタの前記保持回路へ、前記不揮発素子のデータをロードした際に、前記グループに対応するフラグビットが存在するとき、前記グループに対応するフラグビットを第1の値に設定し、
前記グループに属する全ての前記不揮発レジスタの前記不揮発素子へ、前記保持回路のデータを書き込んだ際には、前記グループに対応するフラグビットが存在するとき、前記グループに対応するフラグビットを前記第1の値に設定し、
前記命令デコーダで解釈された命令が、前記命令で指定されるアドレスの前記不揮レジスタの前記不揮発素子への書き込み命令の時、前記アドレスの前記不揮発レジスタの属するグループに対応する前記フラグビットが存在するとき、
前記フラグビットが前記第2の値の場合、前記アドレスの前記不揮発レジスタの前記不揮発素子へ、前記不揮発レジスタの前記保持回路のデータを書き込み、
前記フラグビットが前記第1の値の場合、前記アドレスの前記不揮発レジスタの前記不揮発素子へ、前記不揮発レジスタの前記保持回路のデータを書き込まない、
ように制御する請求項3記載の半導体装置。 - 前記複数の不揮発レジスタのアドレスは、複数のグループに分割され、
前記命令は、グループに属する一つのアドレスを指定し、
前記不揮発レジスタ制御回路は、
前記命令デコーダで解釈した命令が前記不揮発レジスタの前記不揮発素子への書き込み命令の場合、
前記グループに属する全ての前記不揮発レジスタの各々において、前記保持回路のデータの前記不揮発素子への書き込みを行い、
前記命令デコーダで解釈した命令が、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロード命令の場合、
前記グループに属する全ての前記不揮発レジスタにおいて前記不揮発素子のデータを前記保持回路へロードする制御を行う、請求項1乃至4のいずれか1項に記載の半導体装置。 - 第1サイクルで、前記書き込み命令を前記記憶装置から読み出し、
前記第1サイクルの次の第2サイクルで、前記書き込み命令で指定されたアドレスの前記不揮発レジスタの前記不揮発素子の書き込みを行うために、書き込み電流を流すとともに、前記第2サイクルで、次の命令を、前記記憶装置から読み出す、パイプライン動作を行う、請求項1記載の半導体装置。 - 前記フリップフロップは、
前記保持回路として、第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記載の半導体装置。 - 前記フリップフロップにおいて、前記保持回路は、データを保持するマスタ・スレーブ方式のラッチを含み、
前記不揮発素子は、磁気抵抗素子を含み、
前記スレーブ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記スレーブ・ラッチへデータをロードする機能、
前記マスタ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記マスタ・ラッチへデータをロードする機能、
前記スレーブ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記マスタ・ラッチへデータをロードする機能、
前記マスタ・ラッチに保持されるデータを前記不揮発素子へ書き込み、前記不揮発素子から前記スレーブ・ラッチへデータをロードする機能、
のうちのいずれか一の機能を有する、請求項1記載の半導体装置。 - データを揮発的に保持する保持回路と、データを不揮発的に保持する不揮発素子とを含むフリップフロップを少なくとも1つ備えた不揮発レジスタであって、各々に、アドレスが与えられた、1つ又は複数の不揮発レジスタを備えた半導体装置の制御方法であって、
命令セットとして、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記保持回路から前記不揮発素子へのデータの書き込みを指定する情報を含む書き込み命令と、
前記不揮発レジスタのアドレスを指定する情報と、前記不揮発レジスタの前記不揮発素子から前記保持回路へのロードを指定する情報を含むロード命令と、
を用意し、
命令デコーダで解釈した命令が、前記書き込み命令の場合、前記書き込み命令で指定されたアドレスの前記不揮発レジスタにおいて、前記保持回路に保持されるデータを転送して前記不揮発素子への書き込みを行い、
前記命令デコーダで解釈した命令が前記ロード命令の場合、前記ロード命令で指定されたアドレスの前記不揮発レジスタにおいて、前記不揮発素子に保持されるデータを転送して前記保持回路に保持させる、半導体装置の制御方法。 - 前記不揮発レジスタの前記保持回路から前記不揮発素子への書き込みを指定する不揮発素子書き込みモードビット情報を、前記命令内の所定のビットフィールドに備えるか、又は、前記不揮発素子書き込みモードビット情報をレジスタで保持し、
前記複数の不揮発レジスタのアドレスを複数のグループに分割し、
それぞれのグループは、前記不揮発素子書き込みモードビット情報のうちの一つと1対1に対応付けされているか、又は、前記グループに対応する不揮発素子書き込みモードビット情報が設けられていないかの、いずれかであり、
あるグループに属するアドレスの前記不揮発レジスタの前記保持回路へデータを書き込む際に、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータを、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子へ書き込み、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報の値が非活性の場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの前記不揮発レジスタの前記不揮発素子への書き込みは行わず、
前記グループに対応付けられた前記不揮発素子書き込みモードビット情報が存在しない場合、前記指定されたアドレスの前記不揮発レジスタの前記保持回路への書き込みデータの、前記指定されたアドレスの不揮発レジスタの前記不揮発素子への書き込みは行わないように制御する、請求項9記載の半導体装置の制御方法。
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)
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)
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)
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 | データ処理装置 |
-
2012
- 2012-09-07 US US14/343,325 patent/US9135988B2/en active Active
- 2012-09-07 JP JP2013532667A patent/JP5962658B2/ja not_active Expired - Fee Related
- 2012-09-07 WO PCT/JP2012/072874 patent/WO2013035836A1/ja active Application Filing
Patent Citations (3)
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)
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 |