WO2013077316A1 - 半導体集積回路及びその制御方法 - Google Patents

半導体集積回路及びその制御方法 Download PDF

Info

Publication number
WO2013077316A1
WO2013077316A1 PCT/JP2012/080050 JP2012080050W WO2013077316A1 WO 2013077316 A1 WO2013077316 A1 WO 2013077316A1 JP 2012080050 W JP2012080050 W JP 2012080050W WO 2013077316 A1 WO2013077316 A1 WO 2013077316A1
Authority
WO
WIPO (PCT)
Prior art keywords
nonvolatile
data
register
semiconductor integrated
load
Prior art date
Application number
PCT/JP2012/080050
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 JP2013545926A priority Critical patent/JP5999097B2/ja
Priority to US14/359,879 priority patent/US20140313843A1/en
Publication of WO2013077316A1 publication Critical patent/WO2013077316A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention is based on a Japanese patent application: Japanese Patent Application No. 2011-254028 (filed on November 21, 2011), and the entire description of the application is incorporated herein by reference.
  • the present invention relates to a semiconductor integrated circuit and a control method thereof.
  • the present invention relates to a semiconductor integrated circuit including a nonvolatile register and a control method thereof.
  • Patent Document 1 discloses a method for saving the state of a component and a computer system having a restart function after the power supply is completely shut off.
  • the computer system disclosed in Patent Document 1 reads an internal state using a scan latch in a computer system component.
  • the read internal state is stored in the save area, and then the power is shut off.
  • Patent Document 2 discloses a semiconductor device including a latch circuit including a nonvolatile memory and a write circuit.
  • the semiconductor device disclosed in Patent Document 2 writes latch circuit data (volatile data) into a nonvolatile memory before turning off the power.
  • the semiconductor device disclosed in Patent Document 2 uses a nonvolatile memory cell, so that a complicated transfer operation is not required and data can be saved at high speed.
  • Patent Document 1 when a memory element arranged separately from a circuit holding an internal state is used, time delay and power consumption associated with data transfer occur. In particular, when power is frequently turned on and off, problems related to time delay and power consumption associated with data transfer become significant.
  • Patent Document 2 is unnecessary because the data of all the nonvolatile latches included in the module is saved and restored each time the power switch provided for each module is turned on / off. There is a problem that power consumption increases due to writing and loading. In addition, when the power is turned on, there is a problem from the viewpoint of system flexibility because the power is always restored to the state before being turned off.
  • a plurality of first nonvolatile registers including a holding circuit that holds volatile data, a nonvolatile element capable of holding nonvolatile data, and the plurality of first elements Among the non-volatile registers, a second non-volatile register that holds a load enable bit that determines from which first non-volatile register data is loaded, and when the power is supplied from the outside, the second non-volatile register
  • a semiconductor integrated circuit comprising: a nonvolatile register control circuit that loads data held in a nonvolatile element included in a first nonvolatile register designated by the loaded load enable bit into the holding circuit.
  • a method for controlling a semiconductor integrated circuit including a plurality of first nonvolatile registers including a retention circuit that retains volatile data and a nonvolatile element that can retain nonvolatile data.
  • a semiconductor integrated circuit that can contribute to suppressing time and power consumption required to restore saved data when the power of the semiconductor integrated circuit is restored. Provided.
  • FIG. 1 is a diagram illustrating an example of an internal configuration of a semiconductor integrated circuit 1 according to a first embodiment.
  • 4 is a diagram illustrating an example of an instruction format employed by the semiconductor integrated circuit 1.
  • FIG. 3 is a diagram illustrating an example of a circuit configuration of a nonvolatile flip-flop 60.
  • FIG. 2 is a diagram illustrating an example of connection between nonvolatile registers R1 to Rm included in a semiconductor integrated circuit 1 and a nonvolatile register control circuit 30 that is a control circuit thereof.
  • FIG. 14 is a flowchart illustrating an example of an operation at the time of system startup of the semiconductor integrated circuit 3 according to the third embodiment.
  • FIG. 14 is a flowchart illustrating an example of an operation at the time of system startup of the semiconductor integrated circuit 4 according to the fourth embodiment. It is a figure which shows an example of the circuit structure of the non-volatile flip-flop 60a which concerns on 5th Embodiment.
  • 3 is a diagram showing an example of connection between nonvolatile registers R1 to Rm included in a semiconductor integrated circuit 5 and a nonvolatile register control circuit 30b that is a control circuit thereof.
  • the data transfer delay and the power consumption of the wiring and circuit for transferring data increase when the power supply is restored from the cut-off state. . Therefore, there is a demand for a semiconductor integrated circuit and a control method therefor that suppress the time and power consumption required to restore the saved data when the power of the semiconductor integrated circuit is restored.
  • a semiconductor integrated circuit 100 shown in FIG. 1 includes a plurality of first nonvolatile registers 103 including a retention circuit 101 that retains volatile data, a nonvolatile element 102 that can retain nonvolatile data, and a plurality of first circuits.
  • the second non-volatile register 104 that holds a load enable bit that determines which of the first non-volatile registers 103 is loaded with data, and the second non-volatile register 104 when the power is supplied from the outside.
  • a nonvolatile register control circuit 105 that loads data held in the nonvolatile element 102 included in the first nonvolatile register 103 specified by the load enable bit loaded from the nonvolatile register 104 into the holding circuit 101.
  • the first nonvolatile register 103 included in the semiconductor integrated circuit 100 is configured by integrating a holding circuit 101 as a logic element and a nonvolatile element 102 as a memory element. Since the logic element and the memory element are integrated, a data transfer delay before the interrupted power supply is restored can be prevented, and power consumption of wirings and circuits used for data transfer can be reduced. Furthermore, by limiting the number of nonvolatile elements 102 to which data is loaded (specified by the load enable bit), it is possible to reduce the power required for data restoration and quickly return to the intended state after restoration.
  • the plurality of first nonvolatile registers are divided into a plurality of groups, and each group is associated with the load enable bit or not associated with the load enable bit.
  • the nonvolatile register control circuit preferably loads the data held by the nonvolatile element included in the first nonvolatile register belonging to the group specified by the load enable bit into the holding circuit.
  • the semiconductor integrated circuit includes an instruction decoder that decodes an instruction for a central processing unit, and a storage device that stores the instruction, and each of the plurality of first nonvolatile registers is provided with an address,
  • the instruction is divided into a plurality of groups, and the instruction includes an address bit for specifying an address corresponding to the plurality of first nonvolatile registers, and a load bit for instructing loading of data from the plurality of first nonvolatile registers
  • the nonvolatile register control circuit includes a first nonvolatile register belonging to the same group as the first nonvolatile register specified by the address bit as a result of decoding the instruction read from the storage device by the instruction decoder. Data of a first nonvolatile register in which the corresponding load bit is activated. It is preferable to perform the load.
  • the plurality of first nonvolatile registers may be divided into a plurality of groups, and a plurality of load signals may be supplied to determine which group to which the plurality of first nonvolatile registers belong is to be activated.
  • the nonvolatile register control circuit is a first nonvolatile register belonging to a group corresponding to a load signal supplied by the power supply control circuit, and the corresponding load enable bit is activated It is preferable to load data in the first nonvolatile register.
  • the non-volatile register control circuit loads data held by the non-volatile element included in the first non-volatile register into the holding circuit based on a branching flag for loading when power is supplied from the outside. It is preferable to perform either a system startup that does not include an operation to perform or a system startup that includes an operation of loading data held by a nonvolatile element included in the first nonvolatile register into the holding circuit.
  • any one of the plurality of first nonvolatile registers data related to a program counter is held, and the nonvolatile register control circuit stores the program counter when power is supplied from the outside. Does not include an operation of loading data from the nonvolatile element included in the storage circuit into the holding circuit and loading data held in the nonvolatile element included in the first nonvolatile register into the holding circuit based on the value of the program counter It is preferable to perform either system startup or system startup including an operation of loading data held by the nonvolatile element included in the first nonvolatile register into the holding circuit.
  • the plurality of nonvolatile registers accept the first and second write signals and one data input, and when the first write signal is activated, the data of the holding circuit When the second write signal is activated, it is preferable that the data held by the holding circuit is not changed while the data input is written to the non-volatile element.
  • the second step when power is supplied from the outside, the data held by the nonvolatile element included in the first nonvolatile register is loaded into the holding circuit based on the load branch flag. It is preferable to include either a step of starting up the system without loading, or a step of starting up the system by loading data held in the nonvolatile element included in the first nonvolatile register into the holding circuit.
  • the second step is based on a step of loading a program counter to the holding circuit included in the first nonvolatile register when power is supplied from the outside, and a value of the program counter Starting the system without loading the data held by the nonvolatile elements included in the first nonvolatile register into the holding circuit, or the data held by the nonvolatile elements included in the first nonvolatile register
  • the method includes any of the steps of loading the holding circuit and starting the system.
  • FIG. 2 is a diagram illustrating an example of the internal configuration of the semiconductor integrated circuit 1 according to the first embodiment.
  • FIG. 2 for simplification of description, modules related to recovery from power shutdown are shown.
  • the semiconductor integrated circuit 1 includes a nonvolatile register group 10, a load enable register 20, a nonvolatile register control circuit 30, a storage device 40, and an instruction decoder 50.
  • the nonvolatile register group 10 includes a plurality of nonvolatile registers R1 to Rm (where m is an integer of 2 or more, and so on). Further, each nonvolatile register can hold n-bit information (where n is an integer of 2 or more, and so on). Each nonvolatile register is composed of a plurality of nonvolatile flip-flops, and one nonvolatile flip-flop holds 1-bit information. That is, each nonvolatile register can hold n bits of information, and thus includes n nonvolatile flip-flops. Note that the number of bits n of each nonvolatile register may vary depending on each nonvolatile register. In the semiconductor integrated circuit 1 according to the present embodiment, the value of n is the same for each nonvolatile register.
  • Each nonvolatile flip-flop includes a holding circuit that holds volatile data and a nonvolatile element that holds nonvolatile data. Note that details of the holding circuit and the nonvolatile element will be described later.
  • the nonvolatile flip-flop has a function of transferring data between the holding circuit and the nonvolatile element.
  • transferring data of the holding circuit to the nonvolatile element is defined as writing of the nonvolatile element.
  • transferring the data of the nonvolatile element to the holding circuit is defined as loading of the nonvolatile element.
  • the semiconductor integrated circuit 1 includes m non-volatile registers. Further, addresses A1 to Am are assigned to each nonvolatile register.
  • a program counter PC As an example of the nonvolatile register, a program counter PC, a stack point SP, a status register SR, a general-purpose register, a register used in a peripheral module, and the like are conceivable.
  • the values held by these nonvolatile registers express the internal state of the semiconductor integrated circuit 1. Therefore, after the value of the holding circuit is saved in the nonvolatile element, the power supply to the semiconductor integrated circuit 1 is cut off, and then, when these data are restored when the power is supplied, the semiconductor integrated circuit 1 is turned off. It is possible to return to the previous state (before the interruption of operation).
  • the load enable register 20 includes a plurality of bits.
  • the load enable register 20 includes d bits (where d is an integer of 2 or more, and so on).
  • the bits included in the load enable register 20 are referred to as load enable bits LEB1 to LEBd and will be described below.
  • the load enable bit LEB is used to determine which non-volatile register data is to be loaded among the non-volatile registers R1 to Rm.
  • the correspondence between each load enable bit LEB and the nonvolatile register is as follows.
  • the m non-volatile registers included in the non-volatile register group 10 are divided into q groups G1 to Gq (where q is an integer of 2 or more, and so on).
  • Each group G does not have a load enable bit LEB associated with any one of the load enable bits LEB among the plurality of load enable bits LEB1 to LEBd, or does not have a corresponding load enable bit LEB.
  • the load enable bit LEB is loaded into the nonvolatile register control circuit 30 immediately after the power is supplied to the semiconductor integrated circuit 1 (loaded before loading the nonvolatile registers R1 to Rm). Therefore, the nonvolatile register control circuit 30 can refer to the load enable bit LEB prior to the nonvolatile registers R1 to Rm.
  • the nonvolatile register control circuit 30 When loading the nonvolatile registers R1 to Rm, the nonvolatile register control circuit 30 designates one of the nonvolatile registers R1 to Rm, and refers to the load enable bit LEB corresponding to the group including the designated nonvolatile register.
  • the value of the referenced load enable bit LEB is “1” (when activated)
  • the data of the nonvolatile element is loaded into the holding circuit in the designated nonvolatile register.
  • the value of the referenced load enable bit LEB is “0”, the data of the nonvolatile element of the designated nonvolatile register is not loaded into the holding circuit.
  • the semiconductor integrated circuit 1 includes an instruction set.
  • This instruction set includes nonvolatile register control instructions that allow control of the nonvolatile registers R1 to Rm.
  • the central processing unit (not shown in FIG. 2) of the semiconductor integrated circuit 1 reads the instruction stored at the address from the storage device 40 in accordance with the address specified by the program counter PC.
  • the read instruction is sent to the instruction decoder 50 and decoded.
  • the instruction code is a write command for the nonvolatile element
  • the nonvolatile register control circuit 30 writes the data held by the holding circuit included in the designated nonvolatile register to the nonvolatile element.
  • the instruction code is a load instruction for a nonvolatile element
  • the nonvolatile register control circuit 30 loads the data of the nonvolatile element included in the designated nonvolatile register into the holding circuit.
  • FIG. 3 is a diagram illustrating an example of an instruction format employed by the semiconductor integrated circuit 1.
  • the instruction shown in FIG. 3 has a bit length of a + b + c (a to c are all integers, and so on).
  • the 1 to a bits are used for register specification.
  • Bits a + 1 to a + b are used to specify an addressing mode.
  • Bits a + b + 1 to a + b + c are used for specifying an instruction code.
  • the nonvolatile register can be controlled without changing the existing architecture. For example, when writing to the nonvolatile register R4 with register number 4, the register designation bit is set to designate register number 4.
  • the addressing mode is set in the same manner as the mode for operating a normally prepared register. Then, a newly added nonvolatile register write command is set in the command code. The addressing mode may be different from the normally prepared mode.
  • m nonvolatile registers from addresses A1 to Am are divided into t groups (where t is an integer of 2 or more, the same shall apply hereinafter), and when a certain address is specified, the nonvolatile registers of the group to which the nonvolatile register of that address belongs
  • the registers may be controlled simultaneously. For example, when each of the nonvolatile registers R1 to Rm has one load enable bit LEB and only the nonvolatile register having the load enable bit LEB “1” among all the nonvolatile registers is loaded, the load operation target The number of groups t is 1, the number d of load enable bits LEB is m, and the number of groups q associated with the load enable bits LEB is m. Then, the register designation bit is not taken into consideration, and the addressing mode may be set to the mode for operating the nonvolatile register, and the instruction code may be set.
  • FIG. 4 is a diagram illustrating an example of a circuit configuration of the nonvolatile flip-flop 60.
  • the nonvolatile flip-flop 60 includes a master latch 61 and a slave latch 62. Further, the slave latch 62 includes nonvolatile elements 63 and 64.
  • the master latch 61 and the slave latch 62 can hold volatile data.
  • the nonvolatile flip-flop 60 exchanges data between the slave latch 62 and the nonvolatile elements 63 and 64. More specifically, the nonvolatile flip-flop 60 has a function of writing data of the holding circuit included in the slave latch 62 to the nonvolatile elements 63 and 64 and a function of loading data from the nonvolatile elements 63 and 64 to the slave latch 62. ing.
  • the master latch 61 includes N-channel MOS transistors N01 and N02, P-channel MOS transistors P01 and P02, a clocked inverter 65, N-channel MOS transistors N03 and N04, and P-channel MOS transistors P03 and P04. And a clocked inverter 66 and an inverter INV01 and an inverter INV02. Further, a holding circuit 67 is configured by a clocked inverter 66 including an inverter INV01, N-channel MOS transistors N03 and N04, and P-channel MOS transistors P03 and P04.
  • the input data D is input to the master latch 61 via the clocked inverter 65 and latched by the holding circuit 67.
  • the data input to the master latch 61 is held at the node T01, and the data inverted by the inverter INV02 is held at the node T02.
  • the data held at these nodes T01 and T02 are input to the nodes T03 and T04 of the slave latch 62 via the N-channel MOS transistors N05 and N06.
  • the slave latch 62 includes a holding circuit 68 including N-channel MOS transistors N07 and N08, P-channel MOS transistors P05 and P06, a write transistor including N-channel MOS transistors N09 to N12, and a NOR circuit NOR01. And NOR02, an N-channel MOS transistor N13, P-channel MOS transistors P07 to P09, output inverters INV03 and INV04, and nonvolatile elements 63 and 64.
  • the N-channel MOS transistor N13 grounds the N-channel MOS transistors 07 and N08 except when data is written.
  • P-channel MOS transistors P07 to P09 are used as precharge transistors.
  • One end of the nonvolatile element 63 is connected to the source of the N-channel MOS transistor 07, and the other end is commonly connected to the drains of the N-channel MOS transistors N09 to N12.
  • One end of the nonvolatile element 63 is connected to the source of the N-channel MOS transistor 08, and the other end is commonly connected to the drains of the N-channel MOS transistors N09 to N12.
  • Complementary data latched by the N-channel MOS transistors N07 and N08 and the P-channel MOS transistors P05 and P06 are input to the NOR circuits NOR01 and NOR02.
  • the write signal WB is input to the N-channel MOS transistor N13 and the NOR circuits NOR01 and NOR02.
  • the load signal LB is input to the gates of the P-channel MOS transistors P07 to P09.
  • a signal output from the inverter INV04 is a data output Q
  • a signal output from the inverter INV03 is a data output QB.
  • the clock CLK is inverted by an inverter (not shown) and input to the clocked inverters 65 and 66 as the clock P1. Further, the clock P1 is inverted by an inverter (not shown) and input to the clocked inverters 65 and 66 as the clock P2.
  • the nonvolatile flip-flop 60 has the following functions in addition to the functions of the original flip-flop. First, it has a function of writing data electrically stored in the slave latch 62 to the nonvolatile elements 63 and 64. Second, it has a function of reading data stored in the nonvolatile elements 63 and 64 and holding the data by the slave latch 62.
  • Non-volatile elements 63 and 64 may be, for example, MTJ (Magnetic Tunnel Junction) elements that are ferromagnetic tunnel junction elements utilizing the magnetoresistive effect.
  • 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. , Including.
  • 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 resistance value decreases.
  • the magnetization of the free layer and the magnetization of the fixed layer are antiparallel, the resistance value increases.
  • logic data is associated with this resistance value or the direction of magnetization of the free layer. For example, a low resistance state is associated with a logical value “0”, and a high resistance state is associated with a logical value “1”.
  • the writing of the MTJ element includes a magnetic field writing method that controls the magnetization direction of the free layer using a current magnetic field, and a spin torque writing method that controls the magnetization direction of the free layer using the spin torque effect.
  • FIG. 5 is a cross-sectional view of the vicinity of a domain wall motion element that performs writing using the spin torque effect as a nonvolatile element. Note that transistors connected to the nonvolatile elements 63 and 64 are indicated by circuit symbols for easy understanding.
  • the nonvolatile elements 63 and 64 are configured by laminating a metal layer 70, a first hard layer 71 or a second hard layer 72, a free layer 73, an insulating layer 74, and a reference layer 75 in this order with respect to the semiconductor substrate.
  • the reference layer 75 is connected to the N channel type MOS transistor N 07
  • the first hard layer 71 is connected to the N channel type MOS transistors N 09 and N 10
  • the second hard layer 72 is connected to the first hard layer 71 of the nonvolatile element 64.
  • a magnetic thin film having perpendicular magnetic anisotropy can be used for the free layer 73.
  • the magnetization directions of the first hard layer 71 and the second hard layer 72 are fixed in opposite directions.
  • the magnetization of the free layer 73 can be controlled up and down along the Z direction in FIG.
  • FIG. 6 is a diagram showing an example of the connection between the nonvolatile registers R1 to Rm included in the semiconductor integrated circuit 1 and the nonvolatile register control circuit 30 that is a control circuit thereof.
  • an address is given to each of the n nonvolatile registers.
  • n 16
  • 8-bit byte unit 8
  • the addresses of the nonvolatile registers are m addresses A1 to Am.
  • n nonvolatile registers associated with the designated address can be controlled simultaneously.
  • a certain address is designated, a plurality of nonvolatile registers in a certain address area may be controlled simultaneously.
  • the nonvolatile register control circuit 30 includes a system clock CLK_SYS, a register address A_REG, a register volatile data write signal WE_REG, a register input data D_REG, a write signal NVWE_REG to the nonvolatile elements 63 and 64, A load signal NVLE_REG and a load enable bit LEB from the nonvolatile elements 63 and 64 are received.
  • the load enable register 20 and the instruction decoder 50 supply these control signals.
  • the nonvolatile register control circuit 30 outputs a nonvolatile register control signal to each nonvolatile register in accordance with the received control signal.
  • the nonvolatile register control signal supplied to the nonvolatile register R1 corresponding to the address A1 includes a clock CLK_REG (A1), input data D_REG (A1), a load signal LB_REG (A1), a write signal WB_REG (A1), Is included.
  • the nonvolatile register R1 that receives these control signals outputs a data output Q_REG (A1).
  • the nonvolatile registers R2 to Rm corresponding to the addresses A2 to Am perform the same operation.
  • one nonvolatile flip-flop (for example, the n-th nonvolatile flip-flop) is illustrated as a representative among the nonvolatile flip-flops included in the nonvolatile register.
  • the write signal WB is set to L level.
  • the write data to the nonvolatile element matches the data output Q of the slave latch 62.
  • the data output Q is “0”
  • the N-channel MOS transistors N10 and N11 are turned on, and the N-channel MOS transistors N09 and N12 are turned off.
  • a write current flows from the node T06 to the node T05.
  • the nonvolatile element 63 is in a low resistance state
  • the nonvolatile element 64 is in a high resistance state
  • the nonvolatile elements 63 and 64 store data “0” corresponding to the data output Q.
  • the nonvolatile element 63 is in a high resistance state and the nonvolatile element 64 is in a low resistance state, and the nonvolatile element stores data “1” corresponding to the data output Q.
  • the load signal LB is set to L level.
  • the clock CLK is at L level.
  • the P channel type MOS transistors P07 to P09 are turned on, and the nodes T03 and T04 are set to the H level.
  • a read current flows through the nonvolatile element 63 through the N-channel MOS transistor N07.
  • a read current also flows through the nonvolatile element 64 via the N-channel MOS transistor N08.
  • a small potential difference occurs between the nodes T03 and T04 in accordance with the difference between the current values of these read currents.
  • the load signal LB is set to H level
  • the potential difference is amplified.
  • the nonvolatile element 63 is in the low resistance state and the nonvolatile element 64 is in the high resistance state, so that the node T03 is at the L level and the node T04 Becomes H level.
  • the data output Q corresponds to the data of the nonvolatile element and outputs “0”.
  • the data stored in the nonvolatile elements 63 and 64 is “1”, since the nonvolatile element 63 is in a high resistance state and the nonvolatile element 64 is in a low resistance state, the node T03 is at the H level and the node T04 is Becomes L level. As a result, the data output Q corresponds to the data of the nonvolatile element and outputs “1”.
  • FIG. 7 is an example of an operation waveform when the instruction code is a nonvolatile element write instruction.
  • the central processing unit included in the semiconductor integrated circuit 1 outputs PC1 that is the value of the program counter PC to the storage device 40 as the address A_RAM.
  • the central processing unit receives the instruction OP1 from the storage device 40 as data RD_RAM corresponding to the address A_RAM.
  • the instruction OP1 has the instruction format shown in FIG. 3, and the instruction code is a code of a write instruction for the nonvolatile element.
  • the addressing mode is a single operand format, and the register at the address A1 is designated.
  • the instruction decoder 50 included in the central processing unit decodes the instruction OP1 and outputs an address A1 as a register address A_REG.
  • the instruction decoder 50 decodes the instruction OP1, outputs the nonvolatile element write signal NVWE_REG to the nonvolatile register control circuit 30, and ends the output at time T5.
  • the nonvolatile register control circuit 30 sets the write signal WB_REG (A1) of the register at the selected address A1 to L level from time T6 to T8, and causes a write current to flow through the nonvolatile register R1.
  • the nonvolatile element in the nonvolatile register R1 corresponding to the address A1 is rewritten to the value Ra1 (resistance value R_REG (A1)) corresponding to the retained data output Q_REG (A1).
  • the period (T6 to T8) in which writing to the nonvolatile element is performed may be after the time Ta at which the cycle for reading the next instruction from the storage device 40 starts. This is because writing to the non-volatile element can be performed without changing the output of the non-volatile register, so that the reading operation of the next instruction is not hindered.
  • the instruction code is a load instruction for a nonvolatile element in the semiconductor integrated circuit 1 .
  • FIG. 8 is an example of an operation waveform when the instruction code is a load instruction for a nonvolatile element.
  • the central processing unit included in the semiconductor integrated circuit 1 outputs PC1 that is the value of the program counter PC to the storage device 40 as the address A_RAM.
  • the central processing unit receives the instruction OP1 from the storage device 40 as data RD_RAM corresponding to the address A_RAM.
  • the instruction OP1 has the instruction format shown in FIG. 3, and the instruction code is a code of a write instruction for the nonvolatile element.
  • the addressing mode is a single operand format, and the register at the address A1 is designated.
  • the instruction decoder 50 decodes the instruction OP1 and outputs the address A1 as the register address A_REG.
  • the instruction decoder 50 decodes the instruction OP1, outputs the load signal NVLE_REG of the nonvolatile element to the nonvolatile register control circuit 30, and ends the output at time T5.
  • the nonvolatile register control circuit 30 sets the load signal LB_REG (A1) of the register at the selected address A1 to L level from time T6 to T7, and performs the load operation of the nonvolatile register.
  • the semiconductor integrated circuit 1 includes the nonvolatile register in which the logic element and the nonvolatile element are integrated. For this reason, when the power supply of the semiconductor integrated circuit 1 is restored, the time and power consumption required to restore the saved data can be suppressed. Furthermore, by using the load enable bit LEB, it is possible to load only the intended register. Thereby, the number of non-volatile elements to be loaded can be reduced, and the power consumption required for loading can be reduced.
  • FIG. 9 is a diagram showing an example of the internal configuration of the semiconductor integrated circuit 2 according to the present embodiment. 9, the same components as those in FIG. 2 are denoted by the same reference numerals, and description thereof is omitted.
  • the difference between the semiconductor integrated circuits 1 and 2 is that a power supply control circuit 80 supplies a control signal instead of the storage device 40 and the instruction decoder 50.
  • the semiconductor integrated circuit 2 does not control the nonvolatile register by the program (software) written in the storage device 40 unlike the semiconductor integrated circuit 1.
  • the semiconductor integrated circuit 2 also suppresses power consumption by using the load enable bit LEB even in the case of controlling a nonvolatile register by hardware such as the power supply control circuit 80.
  • FIG. 10 is a diagram showing an example of the connection between the nonvolatile registers R1 to Rm included in the semiconductor integrated circuit 2 and the nonvolatile register control circuit 30a which is a control circuit thereof. 10, the same components as those in FIG. 6 are denoted by the same reference numerals, and the description thereof is omitted.
  • the difference between FIG. 10 and FIG. 6 is that the write signal NVWE_REG sent from the instruction decoder 50 and the load signal NVLE_REG from the nonvolatile element are deleted, and the write signal NVWE_PWR sent from the power supply control circuit 80. And a load signal NVLE_PWR from the nonvolatile element is added.
  • the m non-volatile registers are divided into q groups G1 to Gq, and each group is associated with or corresponds to one load enable bit LEB among the load enable bits LEB1 to LEBd. There is no load enable bit.
  • the load enable bit LEB is loaded into the nonvolatile register control circuit 30 immediately after the power is supplied to the semiconductor integrated circuit 2 (loaded before the nonvolatile registers R1 to Rm are loaded). Therefore, the nonvolatile register control circuit 30a can refer to the load enable bit LEB prior to the nonvolatile registers R1 to Rm.
  • nonvolatile registers are divided into t groups G1 to Gt.
  • the nonvolatile register control circuit 30a can accept s (where s is an integer of 2 or more, and the same applies hereinafter) load signals NVLE_PWR1 to NVLE_PWRs.
  • Each group of nonvolatile registers is associated one-to-one with one load signal NVLE_PWR among the load signals NVLE_PWR1 to NVLE_PWRs, or there is no corresponding load signal NVLE_PWR.
  • the nonvolatile register control circuit 30a designates all nonvolatile registers belonging to the group corresponding to the activated load signal based on the s load signals NVLE_PWR supplied from the power supply control circuit 80 after the power is restored.
  • the nonvolatile register control circuit 30a refers to the load enable bit LEB of the group including the designated nonvolatile register.
  • the load enable bit LEB When the value of the referenced load enable bit LEB is “1”, the data of the nonvolatile element is loaded into the holding circuit in the designated nonvolatile register.
  • the value of the referenced load enable bit LEB is “0”, the data of the nonvolatile element is not loaded into the holding circuit in the designated nonvolatile register. If the corresponding load enable bit LEB does not exist, whether or not to load the data of the nonvolatile element into the holding circuit in the designated nonvolatile register is fixedly set in advance in the nonvolatile register control circuit 30.
  • the m nonvolatile registers are divided into t groups G1 to Gt.
  • the nonvolatile register control circuit 30a accepts s write signals NVWE_PWR1 to NVWE_PWRs.
  • Each group of nonvolatile registers is associated with one write signal NVWE_PWR among the write signals NVWE_PWR1 to NVWE_PWRs on a one-to-one basis, or there is no corresponding write signal.
  • the non-volatile register control circuit 30a corresponds to the activated write signal NVWE_PWR based on the s write signals NVWE_PWR received from the power control circuit 80 before the power supplied to the semiconductor integrated circuit 2 is cut off. Specify all nonvolatile registers belonging to the group. Data of the holding circuit included in the designated nonvolatile register is written to the nonvolatile element.
  • the nonvolatile registers R1 to Rm do not necessarily have to be associated with addresses. This is because a write signal or a read signal is given in units of groups as described above.
  • the semiconductor integrated circuit 2 when the power is restored, the time and power consumption required to restore the saved data can be suppressed. Further, by using the power supply control circuit 80 (hardware) instead of the control by the central processing unit (program), the delay time caused by the instruction fetch from the storage device 40 and the effect of reducing the power consumption are further enhanced. be able to.
  • the area of the corresponding program in the storage device 40 can be reduced (the program size is reduced).
  • the semiconductor integrated circuit 3 according to the present embodiment differs from the semiconductor integrated circuit 1 in operation at the time of system startup. Therefore, description of the semiconductor integrated circuit 3 corresponding to FIGS. 2 to 6 is omitted.
  • the semiconductor integrated circuit 3 uses a load branch flag.
  • the load branch flag is used to select an operation mode when the system is restored. Further, the load branch flag is held by a nonvolatile register, and the data is written in advance in the nonvolatile element prior to power-off. Note that the nonvolatile register that stores the load branch flag can be controlled by the nonvolatile register control circuit 30 in the same manner as other nonvolatile registers.
  • FIG. 11 is a flowchart showing an example of the operation of the semiconductor integrated circuit 3 when the system is started.
  • step S01 the system is reset prior to power supply.
  • step S02 data corresponding to the load branch flag is loaded from the nonvolatile register storing the load branch flag.
  • step S03 it is determined whether or not the load branch flag is “1”. If the load branch flag is “0”, the process proceeds to step S04. If the load branch flag is “1”, the process proceeds to step S05.
  • step S04 the default system that does not include the nonvolatile register loading operation is started.
  • step S05 the system is started including the load operation of the nonvolatile register.
  • the activation of the system including the load operation of the above-described nonvolatile register can use the address designation by the load enable bit LEB and the instruction code disclosed in the first embodiment. As a result, only the intended register can be loaded.
  • the unit for turning on / off the power supply is not limited to the entire semiconductor integrated circuit 3, and may be a module unit constituting the semiconductor integrated circuit 3. In the case of module units, the reset after power is supplied to a certain module may be limited to only that module.
  • the semiconductor integrated circuit 3 includes the nonvolatile register in which the logic element and the nonvolatile element are integrated. Therefore, when the power supply of the semiconductor integrated circuit 3 is restored, the time and power consumption required to restore the saved data can be suppressed.
  • the load branch flag is stored in the non-volatile register, it is not necessary to transfer the load branch flag from the storage device 40 as compared to the case where the load branch flag is stored in the storage device 40. Therefore, the delay time and power consumption required for data transfer can be reduced, and the control (procedure) for using the load branch flag becomes simpler.
  • the semiconductor integrated circuit 4 according to the present embodiment differs from the semiconductor integrated circuit 1 in operation at the time of system startup. Therefore, the description corresponding to FIGS. 2 to 6 is omitted for the semiconductor integrated circuit 4.
  • the nonvolatile register of the semiconductor integrated circuit 4 stores data of the program counter PC.
  • the program counter PC is address information of the storage device 40 in which an instruction to be executed next is stored.
  • the semiconductor integrated circuit 4 writes the value of the program counter PC that is to be started when the power is restored next time in the nonvolatile element before the power is turned off.
  • FIG. 12 is a flowchart showing an example of the operation of the semiconductor integrated circuit 4 when the system is activated.
  • step S11 the system is reset prior to power supply.
  • step S12 in the nonvolatile register that stores the value of the program counter PC, the data of the program counter PC of the nonvolatile element is loaded into the holding circuit.
  • step S13 it is determined whether or not the value of the loaded program counter PC is a default value. If it is the default value, the process proceeds to step S14. If it is not the default value, the process proceeds to step S15.
  • step S14 a default system that does not include a nonvolatile register load operation is started.
  • step S15 the system is started including the load operation of the nonvolatile register. At that time, addressing is performed by the load enable bit LEB and the instruction code described in the first embodiment. As a result, only the intended register can be loaded.
  • the load enable bit is not necessarily provided.
  • the unit for turning on / off the power supply is not limited to the entire semiconductor integrated circuit 4, and may be a module unit constituting the semiconductor integrated circuit 4. In the case of module units, the reset after power is supplied to a certain module may be limited to only that module.
  • the semiconductor integrated circuit 4 by combining with the load enable bit LEB and the load instruction, it is possible to load only the data of the difference between the intended system state and the reset state. Can reduce power consumption required.
  • the semiconductor integrated circuit 4 that stores the program counter PC in the nonvolatile register has been described.
  • a point to be noted when writing the value of the program counter PC to the nonvolatile element will be described.
  • the nonvolatile flip-flop 60 described in FIG. 4 can write the data of the slave latch 62 into the nonvolatile elements 63 and 64.
  • the value of the program counter PC that is to be started when returning from the power shutdown is the same as the value stored in the slave latch 62.
  • a problem occurs when the value of the program counter PC that is to be started when it is restored next time is different from the value stored in the slave latch 62. That is, if the address when the next return is written to the nonvolatile elements 63 and 64 is written, the value held by the slave latch 62 is updated. At this time, not the address that should be accessed in the next cycle, but the address to be started after the return from the power shutdown is accessed.
  • the semiconductor integrated circuit 5 includes a nonvolatile flip-flop 60a in which such measures are taken.
  • FIG. 13 is a diagram illustrating an example of a circuit configuration of the nonvolatile flip-flop 60a.
  • the same components as those in FIG. 4 are denoted by the same reference numerals, and the description thereof is omitted.
  • the non-volatile flip-flops 60 and 60a have different peripheral circuits for controlling the N-channel MOS transistors N09 to N12 which are write transistors.
  • multiplexers MUX01 and 02 are added, and it is possible to select which of the data of the slave latch 62a and the input data D is adopted as the data to be written in accordance with the write signals WB1 and WB2.
  • the nonvolatile flip-flop 60a receives two write signals WB1 and WB2 and one input data D.
  • the write signal WB1 When the write signal WB1 is activated, the data of the holding circuit 68 is written into the nonvolatile elements 63 and 64.
  • the write signal WB2 When the write signal WB2 is activated, the data of the input data D is written to the nonvolatile elements 63 and 64, and the data of the holding circuit 68 is not changed.
  • the clock CLK is set to the L level. Thereby, the input data D can be written to the nonvolatile elements 63 and 64 without changing the data of the slave latch 62a.
  • FIG. 14 is a diagram showing an example of connection between the nonvolatile registers R1 to Rm included in the semiconductor integrated circuit 5 and the nonvolatile register control circuit 30b which is a control circuit thereof.
  • the nonvolatile register control circuit 30b accepts two nonvolatile element write signals NVWE1_REG and NVWE2_REG. Further, the nonvolatile register control circuit 30b outputs two nonvolatile element write signals WB1_REG (A1) and WB2_REG (A1) to the nonvolatile register R1 corresponding to the address A1.
  • WB1_REG A1
  • WB2_REG A1
  • the data of the slave latch of the selected nonvolatile register is written into the nonvolatile element by activating the nonvolatile element write signal NVWE1_REG.
  • the nonvolatile element write signal NVWE2_REG by activating the nonvolatile element write signal NVWE2_REG, the input data D_REG is written to the nonvolatile element.
  • the nonvolatile flip-flop 60a shown in FIG. 13 can select two data and write either data. However, when FIG. 6 is compared with FIG. 13, no wiring for write data is added. Therefore, the overhead of the area occupied by the wiring can be suppressed.
  • all the nonvolatile flip-flops are the nonvolatile flip-flops 60a.
  • the nonvolatile flip-flops 60 and the nonvolatile flip-flops 60a described in the first embodiment may be mixed and used at a certain ratio. .
  • nonvolatile flip-flop 60a can be applied to a register that is not intended to be changed by data of the slave latch besides the program counter PC.
  • the semiconductor integrated circuit 5 includes the nonvolatile register in which the logic element and the nonvolatile element are integrated. Therefore, when the power supply of the semiconductor integrated circuit 5 is restored, the time and power consumption required to restore the saved data can be suppressed.
  • the power is shut off without changing the internal state of the system stored in the holding circuit. It is possible to write the value of the program counter PC to be started when returning from the state or the value of another nonvolatile register to the nonvolatile element. As a result, it is possible to return to the intended state more flexibly.
  • writing and reading of a nonvolatile element can be applied to a register to which no address is given. That is, since no address is given, even if the data in the holding circuit cannot be directly read and written from the program, it can belong to the above-described group, so that writing and reading of the nonvolatile element can be executed.
  • any numerical value or small range included in the range should be construed as being specifically described even if there is no specific description.
  • Nonvolatile register group 20 Load enable registers 30, 30a, 30b, 105 Nonvolatile register control circuit 40 Storage device 50 Instruction decoder 60, 60a Nonvolatile flip-flop 61 Master latch 62, 62a Slave latch 63, 64, 102 Nonvolatile elements 65, 66 Clocked inverters 67, 68, 101 Holding circuit 70 Metal layer 71 First hard layer 72 Second hard layer 73 Free layer 74 Insulating layer 75 Reference layer 80 Power supply control circuit 103 First nonvolatile register 104 First 2 non-volatile registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Static Random-Access Memory (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 半導体集積回路は、揮発性データを保持する保持回路と、不揮発性データの保持が可能な不揮発素子と、を含む複数の第1の不揮発レジスタと、複数の第1の不揮発レジスタのうち、いずれの第1の不揮発レジスタからデータをロードするかを定めるロードイネーブルビットを保持する第2の不揮発レジスタと、外部から電源供給がなされた際に、第2の不揮発レジスタからロードしたロードイネーブルビットが指定する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、保持回路にロードする不揮発レジスタ制御回路と、を備える(図1)。

Description

半導体集積回路及びその制御方法
 [関連出願についての記載]
 本発明は、日本国特許出願:特願2011-254028号(2011年11月21日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、半導体集積回路及びその制御方法に関する。特に、不揮発レジスタを備えた半導体集積回路及びその制御方法に関する。
 近年、半導体集積回路における集積度の向上に伴い、内部に含まれるトランジスタのリーク電流が問題となる。特に、半導体集積回路が動作していない状態でのリーク電流が増加し、その消費電力が無視できない状況にある。そのため、半導体集積回路が動作していなければ、半導体集積回路に供給する電源を遮断し、リーク電流を低減する低消費電力モードを備える半導体集積回路が存在する。
 しかし、半導体集積回路に対する電源供給が遮断されると、その内部状態を保持するレジスタ等の値は消去されてしまう。このようなことから、半導体集積回路には、電源供給が遮断される前に保持しておきたいデータを外部記憶装置等に退避する必要がある。
 ここで、特許文献1において、構成要素の状態を保存する方法と、電源が完全に遮断された後の再開機能を持つコンピュータシステムが開示されている。特許文献1が開示するコンピュータシステムは、内部状態をコンピュータシステム構成要素内の走査ラッチを使用して読み取る。読み取った内部状態は退避領域に保存され、その後、電源が遮断される。
 さらに、特許文献2において、不揮発メモリと書き込み回路を備えたラッチ回路を備える半導体装置が開示されている。特許文献2が開示する半導体装置は、電源をオフする前に、ラッチ回路のデータ(揮発的なデータ)を不揮発メモリに書き込む。このように、特許文献2が開示する半導体装置は、不揮発メモリセルを使用することにより、煩雑な転送動作を必要とせず、かつ、高速にデータの退避が可能である。
特開2002-182803号公報 特開2004-133969号公報
 なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
 ここで、特許文献1が開示するように、内部状態を保持している回路から分離して配置されているメモリ素子を使用する場合には、データ転送に伴う時間遅延及び電力消費が発生する。特に、電源のオン・オフを頻繁に行った場合には、データ転送に伴う時間遅延や電力消費に関する問題が顕著になる。
 さらに、特許文献2が開示する半導体装置には、モジュール毎に備えられた電源スイッチをオン・オフするたびに、そのモジュールに含まれる全ての不揮発ラッチのデータを退避・復帰するため、不必要な書き込みやロードが発生し、消費電力が大きくなるという問題がある。また、電源をオンする際に、常に電源をオフの前の状態に復帰させるため、システムの柔軟性という観点からも問題がある。
 そのため、半導体集積回路の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制した半導体集積回路及びその制御方法が、望まれる。
 本発明の第1の視点によれば、揮発性データを保持する保持回路と、不揮発性データの保持が可能な不揮発素子と、を含む複数の第1の不揮発レジスタと、前記複数の第1の不揮発レジスタのうち、いずれの第1の不揮発レジスタからデータをロードするかを定めるロードイネーブルビットを保持する第2の不揮発レジスタと、外部から電源供給がなされた際に、前記第2の不揮発レジスタからロードした前記ロードイネーブルビットが指定する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードする不揮発レジスタ制御回路と、を備える半導体集積回路が提供される。
 本発明の第2の視点によれば、揮発性データを保持する保持回路と、不揮発性データの保持が可能な不揮発素子と、を含む複数の第1の不揮発レジスタを備える半導体集積回路の制御方法であって、前記複数の第1の不揮発レジスタのうち、いずれの第1の不揮発レジスタからデータをロードするかを定めるロードイネーブルビットを参照する第1の工程と、外部から電源供給がなされた際に、前記ロードイネーブルビットが指定する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードする第2の工程と、を含む半導体集積回路の制御方法が提供される。
 本発明の各視点によれば、半導体集積回路の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制することに貢献しうる半導体集積回路及びその制御方法が、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係る半導体集積回路1の内部構成の一例を示す図である。 半導体集積回路1が採用する命令形式の一例を示す図である。 不揮発フリップフロップ60の回路構成の一例を示す図である。 不揮発素子としてスピントルク効果を利用して書き込みを行う磁壁移動素子の素子近傍の断面図である。 半導体集積回路1に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30の接続の一例を示す図である。 命令コードが不揮発素子の書き込み命令である場合の動作波形の一例である。 命令コードが不揮発素子のロード命令である場合の動作波形の一例である。 第2の実施形態に係る半導体集積回路2の内部構成の一例を示す図である。 半導体集積回路2に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30aの接続の一例を示す図である。 第3の実施形態に係る半導体集積回路3のシステム起動時の動作の一例を示すフローチャートである。 第4の実施形態に係る半導体集積回路4のシステム起動時の動作の一例を示すフローチャートである。 第5の実施形態に係る不揮発フリップフロップ60aの回路構成の一例を示す図である。 半導体集積回路5に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30bの接続の一例を示す図である。
 初めに、図1を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載は何らの限定を意図するものではない。
 上述のように、メモリ素子とロジック素子が分離して配置されることによって、電源が遮断されている状態からの復帰に際し、データ転送遅延、及びデータを転送する配線や回路の電力消費が増加する。そのため、半導体集積回路の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制した半導体集積回路及びその制御方法が、望まれる。
 そこで、一例として図1に示す半導体集積回路100を提供する。図1に示す半導体集積回路100は、揮発性データを保持する保持回路101と、不揮発性データの保持が可能な不揮発素子102と、を含む複数の第1の不揮発レジスタ103と、複数の第1の不揮発レジスタ103のうち、いずれの第1の不揮発レジスタ103からデータをロードするかを定めるロードイネーブルビットを保持する第2の不揮発レジスタ104と、外部から電源供給がなされた際に、第2の不揮発レジスタ104からロードしたロードイネーブルビットが指定する第1の不揮発レジスタ103に含まれる不揮発素子102が保持するデータを、保持回路101にロードする不揮発レジスタ制御回路105と、を備える。
 半導体集積回路100に含まれる第1の不揮発レジスタ103は、ロジック素子である保持回路101と、メモリ素子である不揮発素子102が一体化されて構成されている。ロジック素子とメモリ素子が一体化されているために、遮断されていた電源が復帰する前のデータ転送遅延が防止でき、データ転送に使用する配線や回路の電力消費を削減することができる。さらに、データのロードを行う不揮発素子102の数を限定(ロードイネーブルビットにより指定)することで、データ復帰に要する電力を低減すると共に、意図した復帰後の状態に迅速に復帰することができる。
 さらに、下記の形態が可能である。
 [形態1]上記第1の視点に係る半導体集積回路のとおりである。
 [形態2]前記複数の第1の不揮発レジスタは複数のグループに分割され、それぞれのグループは、前記ロードイネーブルビットと対応付けられているか、又は、対応付けられていないか、のいずれかであって、前記不揮発レジスタ制御回路は、前記ロードイネーブルビットが指定するグループに属する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードすることが好ましい。
 [形態3]前記半導体集積回路は、前記ロードイネーブルビットに対応付けられていないグループに属する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードするか否かは予め定められた規則に従うことが好ましい。
 [形態4]前記半導体集積回路は、中央処理装置に対する命令をデコードする命令デコーダと、前記命令を記憶する記憶装置と、を備え、前記複数の第1の不揮発レジスタはそれぞれアドレスが付与されと共に、複数のグループに分割されており、前記命令には、前記複数の第1の不揮発レジスタに対応するアドレスを指定するアドレスビットと、前記複数の第1の不揮発レジスタからデータのロードを指示するロードビットと、が含まれ、前記不揮発レジスタ制御回路は、前記命令デコーダが前記記憶装置から読み出した命令をデコードした結果、前記アドレスビットが指定する第1の不揮発レジスタと同一のグループに属する第1の不揮発レジスタであって、対応する前記ロードビットが活性化されている第1の不揮発レジスタのデータのロードを行うことが好ましい。
 [形態5]前記複数の第1の不揮発レジスタは、複数のグループに分割され、前記複数の第1の不揮発レジスタが属するいずれのグループを活性化するか否かを定める複数のロード信号の供給が可能である電源制御回路を備え、前記不揮発レジスタ制御回路は、前記電源制御回路が供給するロード信号に対応したグループに属する第1の不揮発レジスタであって、対応する前記ロードイネーブルビットが活性化されている第1の不揮発レジスタのデータのロードを行うことが好ましい。
 [形態6]前記不揮発レジスタ制御回路は、外部から電源供給がなされた際に、ロード用分岐フラグに基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含まないシステム起動、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含むシステム起動、のいずれかを行うことが好ましい。
 [形態7]前記複数の第1の不揮発レジスタのいずれかにおいて、プログラムカウンタに関するデータを保持し、前記不揮発レジスタ制御回路は、外部から電源供給がなされた際に、前記プログラムカウンタを記憶する不揮発レジスタに含まれる不揮発素子から前記保持回路にデータをロードし、前記プログラムカウンタの値に基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含まないシステム起動、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含むシステム起動、のいずれかを行うことが好ましい。
 [形態8]前記複数の不揮発レジスタは、第1及び第2の書き込み信号と、1つのデータ入力と、を受け付け、前記第1の書き込み信号が活性化された場合には、前記保持回路のデータを前記不揮発素子へ書き込み、前記第2の書き込み信号が活性化された場合には、前記データ入力を前記不揮発素子へ書き込みつつ、前記保持回路が保持するデータの変更を行わないことが好ましい。
 [形態9]上記第2の視点に係る半導体集積回路の制御方法のとおりである。
 [形態10]前記第2の工程は、外部から電源供給がなされた際に、ロード用分岐フラグに基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードせずにシステムを起動する工程、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードしてシステムを起動する工程、のいずれかを含むことが好ましい。
 [形態11]前記第2の工程は、外部から電源供給がなされた際に、プログラムカウンタを前記第1の不揮発レジスタに含まれる前記保持回路にロードする工程と、前記プログラムカウンタの値に基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードせずにシステムを起動する工程、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードしてシステムを起動する工程、のいずれかを含むことが好ましい。
 以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
[第1の実施形態]
 第1の実施形態について、図面を用いてより詳細に説明する。
 図2は、第1の実施形態に係る半導体集積回路1の内部構成の一例を示す図である。なお、図2では、説明の簡略化のため電源遮断からの復帰に関連するモジュールを記載している。
 半導体集積回路1は、不揮発レジスタ群10と、ロードイネーブルレジスタ20と、不揮発レジスタ制御回路30と、記憶装置40と、命令デコーダ50から構成されている。
 不揮発レジスタ群10には、複数の不揮発レジスタR1~Rm(但し、mは2以上の整数、以下同じ)が含まれている。さらに、各不揮発レジスタは、nビットの情報が保持可能である(但し、nは2以上の整数、以下同じ)。各不揮発レジスタは複数の不揮発フリップフロップから構成され、1つの不揮発フリップフロップで1ビットの情報を保持する。即ち、各不揮発レジスタは、nビットの情報が保持可能であるので、n個の不揮発フリップフロップを含んで構成される。なお、各不揮発レジスタのビット数nは、各不揮発レジスタによって異なっていてもよい。本実施形態に係る半導体集積回路1では、nの値は各不揮発レジスタで同一とする。
 また、各不揮発フリップフロップは、揮発性データを保持する保持回路と、不揮発性データを保持する不揮発素子を含む。なお、保持回路と不揮発素子の詳細については、後述する。
 不揮発フリップフロップは、保持回路と不揮発素子との間でデータを転送する機能を備えている。本書では、保持回路のデータを不揮発素子へ転送することを不揮発素子の書き込みと定義する。一方、不揮発素子のデータを保持回路へ転送することを不揮発素子のロードと定義する。
 上述のように、半導体集積回路1には、m個の不揮発レジスタが含まれている。さらに、各不揮発レジスタには、アドレスA1~Amまでが付与されている。不揮発レジスタの一例としては、プログラムカウンタPC、スタックポイントSP、ステータスレジスタSR、汎用レジスタ、周辺モジュールで使用するレジスタ等が考えられる。これらの各不揮発レジスタが保持する値は、半導体集積回路1の内部状態を表現するものである。従って、保持回路の値を不揮発素子に退避させた後、半導体集積回路1への電源供給を遮断し、その後、電源を供給した際にこれらのデータを復元すれば、半導体集積回路1を電源遮断前(動作の中断前)の状態に戻すことができる。
 ロードイネーブルレジスタ20には、複数のビットが含まれている。ここでは、ロードイネーブルレジスタ20には、d個のビットが含まれるものとする(但し、dは2以上の整数、以下同じ)。なお、ロードイネーブルレジスタ20に含まれるビットを、ロードイネーブルビットLEB1~LEBdと呼び、以下説明する。
 ロードイネーブルビットLEBは、複数の不揮発レジスタR1~Rmのうち、いずれの不揮発レジスタのデータをロードするかを判断する際に使用する。各ロードイネーブルビットLEBと不揮発レジスタの対応関係は次のとおりである。不揮発レジスタ群10に含まれるm個の不揮発レジスタは、q個のグループG1からGqに分割される(但し、qは2以上の整数、以下同じ)。それぞれのグループGは、複数のロードイネーブルビットLEB1~LEBdのうち、いずれかのロードイネーブルビットLEBと1対1に対応付けされる、又は、対応するロードイネーブルビットLEBを有しない。
 次に、ロードイネーブルビットLEBの使用方法を概説する。
 ロードイネーブルビットLEBは、半導体集積回路1に電源が供給された直後に不揮発レジスタ制御回路30にロードされる(不揮発レジスタR1~Rmのロードの前にロードされる)。従って、不揮発レジスタ制御回路30は、不揮発レジスタR1~Rmに先立ち、このロードイネーブルビットLEBの参照が可能である。
 不揮発レジスタ制御回路30は、不揮発レジスタR1~Rmをロードする際、不揮発レジスタR1~Rmのいずれかを指定し、指定した不揮発レジスタを含むグループに対応したロードイネーブルビットLEBを参照する。参照したロードイネーブルビットLEBの値が「1」の場合には(活性化している場合には)、指定した不揮発レジスタにおいて、不揮発素子のデータを保持回路へロードする。参照したロードイネーブルビットLEBの値が「0」の場合には、指定された不揮発レジスタの不揮発素子のデータを保持回路にロードしない。対応するロードイネーブルビットLEBが存在しない場合には、指定した不揮発レジスタの不揮発素子のデータを保持回路にロードするか否かは、予め不揮発レジスタ制御回路30に固定的に設定しておく。なお、不揮発レジスタ制御回路30による不揮発レジスタR1~Rmの指定方法については、後述する。
 ここで、本実施形態に係る半導体集積回路1は、命令セットを備えている。この命令セットは、不揮発レジスタR1~Rmの制御を可能にする不揮発レジスタ制御命令を含む。
 次に、命令の読み出しから不揮発レジスタの制御までの手順を概説する。
 初めに、半導体集積回路1の中央処理装置(図2において図示せず)は、プログラムカウンタPCで指定されるアドレスに従って、そのアドレスに記憶されている命令を記憶装置40から読み出す。読み出された命令は、命令デコーダ50に送られ、デコードされる。その際、命令コードが不揮発素子に対する書き込み命令の場合であれば、不揮発レジスタ制御回路30は、指定された不揮発レジスタに含まれる保持回路が保持するデータを不揮発素子に書き込む。一方、命令コードが不揮発素子に対するロード命令の場合であれば、不揮発レジスタ制御回路30は、指定された不揮発レジスタに含まれる不揮発素子のデータを保持回路にロードする。
 続いて、不揮発レジスタの制御命令の詳細について説明する。
 本実施形態に係る半導体集積回路1では、シングルオペランドの命令形式を使用するものとする。図3は、半導体集積回路1が採用する命令形式の一例を示す図である。図3に示す命令は、a+b+cのビット長を持っている(a~cは、いずれも整数、以下同じ)。1~aビットは、レジスタの指定に使用する。a+1~a+bビットは、アドレッシングモードの指定に使用する。a+b+1~a+b+cビットは、命令コードの指定に使用する。
 この命令コードに不揮発レジスタの制御命令を追加することで、既存のアーキテクチャを変更することなく、不揮発レジスタを制御することができる。例えば、レジスタ番号4の不揮発レジスタR4の書き込みを行う場合には、レジスタの指定ビットはレジスタ番号4を指定するように設定する。アドレッシングモードについては、通常用意されているレジスタを操作するモードと同様に設定する。そして、命令コードに、新規に追加した不揮発レジスタの書き込み命令を設定する。なお、アドレッシングモードは、通常用意されているモードとは異なるものを使用することもできる。
 さらに、アドレスA1~Amまでのm個の不揮発レジスタをt個(但し、tは2以上の整数、以下同じ)のグループに分け、あるアドレスを指定すると、そのアドレスの不揮発レジスタが属するグループの不揮発レジスタを同時に制御できるようにしてもよい。例えば、不揮発レジスタR1~Rmが、それぞれ1つのロードイネーブルビットLEBを備え、全ての不揮発レジスタのうち、ロードイネーブルビットLEBが「1」の不揮発レジスタに対してのみロードを行う場合、ロード動作の対象となるグループ数tは1、ロードイネーブルビットLEBの数dはm、ロードイネーブルビットLEBと対応付けられるグループ数qもmとする。そして、レジスタの指定ビットは考慮せず、アドレッシングモードについては不揮発レジスタを操作するモードに設定し、命令コードを設定すればよい。
 このように、複数の不揮発レジスタR1~Rmを同時に操作すれば、不揮発レジスタの制御時間を短縮することができる。特許文献2が開示する半導体装置においては、モジュール内の全てのレジスタをロードするため、ロードする必要のない不揮発素子からのロード動作が発生し、無駄な電力が消費されてしまう。しかし、ロードイネーブルビットLEBによってロードする不揮発レジスタを制限することにより、データ復帰に要するオーバーヘッドを抑えつつ、データ復帰に要する電力消費も削減することができる。なお、不揮発レジスタの制御命令として、シングルオペランドの命令形式を使用することができることを説明したが、これに限定する趣旨ではない。
 次に、不揮発レジスタを構成する不揮発フリップフロップについて説明する。
 図4は、不揮発フリップフロップ60の回路構成の一例を示す図である。不揮発フリップフロップ60は、マスタラッチ61と、スレーブラッチ62と、を含んで構成される。さらに、スレーブラッチ62には、不揮発素子63及び64が含まれる。
 マスタラッチ61とスレーブラッチ62は、揮発性データの保持が可能である。不揮発フリップフロップ60は、スレーブラッチ62と不揮発素子63及び64の間でデータをやり取りする。より具体的には、不揮発フリップフロップ60は、スレーブラッチ62に含まれる保持回路のデータを不揮発素子63及び64に書き込む機能と、不揮発素子63及び64からスレーブラッチ62へデータをロードする機能を備えている。
 マスタラッチ61は、Nチャンネル型MOSトランジスタN01及びN02と、Pチャンネル型MOSトランジスタP01及びP02と、からなるクロックドインバータ65と、Nチャンネル型MOSトランジスタN03及びN04と、Pチャンネル型MOSトランジスタP03及びP04と、からなるクロックドインバータ66と、インバータINV01及びインバータINV02と、から構成される。さらに、インバータINV01と、Nチャンネル型MOSトランジスタN03及びN04と、Pチャンネル型MOSトランジスタP03及びP04と、からなるクロックドインバータ66によって保持回路67を構成する。
 入力データDは、クロックドインバータ65を介してマスタラッチ61に入力され、保持回路67でラッチされる。マスタラッチ61に入力されたデータは、ノードT01で保持され、インバータINV02で反転されたデータがノードT02で保持される。これらのノードT01及びT02で保持するデータは、Nチャンネル型MOSトランジスタN05及びN06を介してスレーブラッチ62のノードT03及びT04に入力される。
 スレーブラッチ62は、Nチャンネル型MOSトランジスタN07及びN08と、Pチャンネル型MOSトランジスタP05及びP06と、からなる保持回路68と、Nチャンネル型MOSトランジスタN09~N12からなる書き込み用トランジスタと、NOR回路NOR01及びNOR02と、Nチャンネル型MOSトランジスタN13と、Pチャンネル型MOSトランジスタP07~P09と、出力用インバータINV03及びINV04と、不揮発素子63及び64と、を含む。
 Nチャンネル型MOSトランジスタN13は、データの書き込み時以外は、Nチャンネル型MOSトランジスタ07及びN08を接地する。Pチャンネル型MOSトランジスタP07~P09は、プリチャージ用のトランジスタとして使用する。
 不揮発素子63の一端は、Nチャンネル型MOSトランジスタ07のソースに接続され、他の一端は、Nチャンネル型MOSトランジスタN09~N12のドレインに共通接続される。不揮発素子63の一端は、Nチャンネル型MOSトランジスタ08のソースに接続され、他の一端は、Nチャンネル型MOSトランジスタN09~N12のドレインに共通接続される。Nチャンネル型MOSトランジスタN07及びN08と、Pチャンネル型MOSトランジスタP05及びP06にラッチされた相補のデータはNOR回路NOR01及びNOR02に入力される。
 書き込み信号WBは、Nチャンネル型MOSトランジスタN13と、NOR回路NOR01とNOR02に入力される。ロード信号LBは、Pチャンネル型MOSトランジスタP07~P09のゲートに入力される。インバータINV04が出力する信号をデータ出力Qとし、インバータINV03が出力する信号をデータ出力QBとする。クロックCLKは、インバータ(図示せず)により反転されてクロックP1としてクロックドインバータ65及び66に入力される。さらに、クロックP1は、インバータ(図示せず)により反転されてクロックP2としてクロックドインバータ65及び66に入力される。
 ここで不揮発フリップフロップ60は、本来のフリップフロップとしての機能に加えて、以下の機能を備えている。第1に、スレーブラッチ62に電気的に記憶しているデータを不揮発素子63及び64に書き込む機能を備えている。第2に、不揮発素子63及び64に蓄えられているデータを読み出し、そのデータをスレーブラッチ62で保持する機能を備えている。
 不揮発素子63及び64には、例えば、磁気抵抗効果を利用した強磁性トンネル接合素子であるMTJ(Magnetic Tunnel Junction)素子が考えられる。ここで、MTJ素子は、磁化方向が変化する強磁性層(フリー層)と、磁化方向が固定された強磁性層(固定層)と、フリー層と固定層の間に形成される絶縁層と、を含んで構成される。
 このようなMTJ素子に、膜面垂直方向に電流を流した際の抵抗値は、フリー層と固定層の磁化の方向によって変化する。フリー層の磁化と固定層の磁化が平行の場合には、抵抗値は低下する。一方、フリー層の磁化と固定層の磁化が反平行の場合には、抵抗値は上昇する。このような性質を利用し、MTJ素子では、この抵抗値、又は、フリー層の磁化の方向に、論理データを対応付ける。例えば、低抵抗な状態を論理値「0」、高抵抗な状態を論理値「1」と対応付ける。MTJ素子の書き込みは、電流磁界を用いてフリー層の磁化方向を制御する磁場書き込み方式と、スピントルク効果を利用してフリー層の磁化方向を制御するスピントルク書き込み方式と、が存在する。
 図5は、不揮発素子として、スピントルク効果を利用して書き込みを行う磁壁移動素子の素子近傍の断面図である。なお、不揮発素子63及び64に接続されるトランジスタについては、理解を容易にするため回路記号で示している。
 不揮発素子63及び64は、半導体基板を基準にして、メタル層70、第1ハード層71又は第2ハード層72、フリー層73、絶縁層74、リファレンス層75の順に積層され構成されている。
 不揮発素子63に関する接続は、リファレンス層75はNチャンネル型MOSトランジスタN07に、第1ハード層71はNチャンネル型MOSトランジスタN09とN10に、第2ハード層72は不揮発素子64の第1ハード層71を介して、Nチャンネル型MOSトランジスタN11及びN12に接続される。フリー層73、第1ハード層71及び第2ハード層72には、例えば、垂直磁気異方性を有する磁性薄膜を利用することができる。第1ハード層71と第2ハード層72の磁化方向は逆向きに固定されている。フリー層73の磁化は、スピン偏極電流の向きによって、図5のZ方向に沿って、上下に制御可能である。より具体的には、第1ハード層71から第2ハード層72に向かって電流を流した場合、偏極した電子は逆向きに流れ、第2ハード層72と同じ向きにフリー層73は揃う。逆に、第2ハード層72から第1ハード層71に向かって電流を流した場合、第1ハード層71と同じ向きにフリー層は揃う。
 図6は、半導体集積回路1に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30の接続の一例を示す図である。
 本実施形態に係る半導体集積回路1では、n個の不揮発レジスタ毎にアドレスを付与している。例えば、16ビットのワード単位(n=16)、8ビットのバイト単位(n=8)などである。不揮発レジスタのアドレスは、アドレスA1~Amのm個である。
 半導体集積回路1では、アドレスを指定すると、指定されたアドレスに対応付けられたn個の不揮発レジスタを同時に制御できるものとする。若しくは、あるアドレスを指定すると、あるアドレス領域の複数の不揮発レジスタを同時に制御できるようにしてもよい。
 不揮発レジスタ制御回路30は、システムのクロックCLK_SYSと、レジスタのアドレスA_REGと、レジスタの揮発性データの書き込み信号WE_REGと、レジスタへの入力データD_REGと、不揮発素子63及び64への書き込み信号NVWE_REGと、不揮発素子63及び64からのロード信号NVLE_REGと、ロードイネーブルビットLEBを受け付ける。これらの制御信号を供給するのは、ロードイネーブルレジスタ20及び命令デコーダ50である。
 不揮発レジスタ制御回路30は、受け取った制御信号に応じて、各不揮発レジスタに対し、不揮発レジスタ制御信号を出力する。例えば、アドレスA1に対応する不揮発レジスタR1に供給する不揮発レジスタ制御信号は、クロックCLK_REG(A1)と、入力データD_REG(A1)と、ロード信号LB_REG(A1)と、書き込み信号WB_REG(A1)と、が含まれる。これらの制御信号を受け取った不揮発レジスタR1は、データ出力Q_REG(A1)を出力する。アドレスA2~Amに対応する不揮発レジスタR2~Rmも同様の動作を行う。なお、図6においては、不揮発レジスタに含まれる不揮発フリップフロップのうち、1つの不揮発フリップフロップ(例えば、nビット目の不揮発フリップフロップ)を代表して記載している。
 次に、図4を参照しつつ、不揮発レジスタに対する書き込み動作について概説する。
 半導体集積回路1の書き込み動作時には、書き込み信号WBがLレベルに設定される。その際、不揮発素子への書き込みデータはスレーブラッチ62のデータ出力Qに一致する。データ出力Qが「0」の場合には、Nチャンネル型MOSトランジスタN10及びN11がオン、Nチャンネル型MOSトランジスタN09及びN12はオフになる。このとき、ノードT06からノードT05へ書き込み電流が流れる。これにより、不揮発素子63は低抵抗状態、不揮発素子64は高抵抗状態になり、データ出力Qと対応したデータ「0」を不揮発素子63及び64は記憶する。
 一方、データ出力Qが「1」の場合、Nチャンネル型MOSトランジスタN10及びN11がオフ、Nチャンネル型MOSトランジスタN09とN12がオンになる。この場合には、ノードT05からT06に向けて書き込み電流が流れる。その結果、不揮発素子63は高抵抗状態、不揮発素子64は低抵抗状態になり、データ出力Qに対応したデータ「1」を不揮発素子は記憶する。
 続いて、図4を参照しつつ、不揮発レジスタからのロード動作について概説する
 半導体集積回路1のロード動作時には、ロード信号LBがLレベルに設定される。また、クロックCLKはLレベルである。すると、Pチャンネル型MOSトランジスタP07~P09はオンとなり、ノードT03及びT04はHレベルになる。その結果、Nチャンネル型MOSトランジスタN07を介して不揮発素子63に読み出し電流が流れる。また、Nチャンネル型MOSトランジスタN08を介して、不揮発素子64にも読み出し電流が流れる。これらの読み出し電流の電流値の差に応じて、ノードT03及びT04には微小な電位差が生じる。
 そして、ロード信号LBがHレベルに設定されると、その電位差が増幅される。その際、不揮発素子63及び64に記憶しているデータが「0」である場合には、不揮発素子63は低抵抗状態、不揮発素子64は高抵抗状態のため、ノードT03はLレベル、ノードT04はHレベルになる。その結果、データ出力Qは不揮発素子のデータに対応し、「0」を出力する。一方、不揮発素子63及び64に記憶しているデータが「1」である場合には、不揮発素子63は高抵抗状態、不揮発素子64は低抵抗状態のため、ノードT03はHレベル、ノードT04はLレベルになる。その結果、データ出力Qは、不揮発素子のデータに対応し、「1」を出力する。
 次に、半導体集積回路1において、命令コードが不揮発素子の書き込み命令である場合の詳細について説明する。
 図7は、命令コードが不揮発素子の書き込み命令である場合の動作波形の一例である。
 時刻T1において、半導体集積回路1に含まれる中央処理装置は、記憶装置40へアドレスA_RAMとして、プログラムカウンタPCの値であるPC1を出力する。
 時刻T2において、中央処理装置は、記憶装置40から、アドレスA_RAMに対応するデータRD_RAMとして、命令OP1を受け取る。なお、命令OP1は、図3に示す命令形式であり、命令コードは不揮発素子の書き込み命令のコードとする。また、アドレッシングモードはシングルオペランド形式であり、アドレスA1のレジスタを指定するものとする。
 時刻T3おいて、中央処理装置に含まれる命令デコーダ50は、命令OP1をデコードし、レジスタのアドレスA_REGとして、アドレスA1を出力する。
 時刻T4において、命令デコーダ50は、命令OP1をデコードし、不揮発素子の書き込み信号NVWE_REGを不揮発レジスタ制御回路30に出力し、時刻T5に出力を終了する。
 不揮発レジスタ制御回路30は、時刻T6からT8までの間、選択されたアドレスA1のレジスタの書き込み信号WB_REG(A1)をLレベルに設定し、不揮発レジスタR1に書き込み電流を流す。
 時刻T7において、アドレスA1に対応した不揮発レジスタR1における不揮発素子は、保持していたデータ出力Q_REG(A1)に対応した値Ra1(抵抗値R_REG(A1))に書き換わる。
 次のクロックサイクルでは、アドレスA2に対応した不揮発レジスタR2における不揮発素子の書き込みが行われる動作波形を示しており、アドレスA1と同様の一連の過程で書き込みが行われる。ここで、図7に示すように、不揮発素子への書き込みを行う期間(T6~T8)は、次の命令を記憶装置40から読み出すサイクルの始まる時刻Taより後であってもよい。不揮発素子への書き込みは、不揮発レジスタの出力を変化させずに行えるため、次の命令の読み出し動作を妨げることはないからである。このようにパイプライン的な動作を行うことで、不揮発素子への書き込みに対する十分なセットアップ時間を確保できると同時に、短い時間で複数の命令を実行することができる。
 続いて、半導体集積回路1において、命令コードが不揮発素子のロード命令である場合の詳細について説明する。
 図8は、命令コードが不揮発素子のロード命令である場合の動作波形の一例である。
 時刻T1において、半導体集積回路1に含まれる中央処理装置は、記憶装置40へアドレスA_RAMとして、プログラムカウンタPCの値であるPC1を出力する。
 時刻T2において、中央処理装置は、記憶装置40から、アドレスA_RAMに対応するデータRD_RAMとして、命令OP1を受け取る。なお、命令OP1は、図3に示す命令形式であり、命令コードは不揮発素子の書き込み命令のコードとする。また、アドレッシングモードはシングルオペランド形式であり、アドレスA1のレジスタを指定するものとする。
 以下、アドレスA1に対応したロードイネーブルビットLEBはすでにロードされており、かつ、その値は「1」とし、アドレスA1に対応した不揮発レジスタR1のロードが行われる場合の動作を示す。
 時刻T3おいて、命令デコーダ50は、命令OP1をデコードして、レジスタのアドレスA_REGとして、アドレスA1を出力する。
 時刻T4において、命令デコーダ50は、命令OP1をデコードし、不揮発素子のロード信号NVLE_REGを不揮発レジスタ制御回路30に出力し、時刻T5に出力を終了する。
 不揮発レジスタ制御回路30は、時刻T6からT7までの間、選択されたアドレスA1のレジスタのロード信号LB_REG(A1)をLレベルに設定し、不揮発レジスタのロード動作を行う。
 時刻T8において、アドレスA1に対応した不揮発レジスタR1のデータ出力Q_REG(A1)は、不揮発素子が保持する値Ra1(抵抗値R_REG(A1))に対応した値D1に書き換わる。
 以上のように、本実施形態に係る半導体集積回路1は、ロジック素子と不揮発素子を一体化した不揮発レジスタを備えている。そのため、半導体集積回路1の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制することができる。さらに、ロードイネーブルビットLEBを利用することで、意図したレジスタに限りロードを行うことができる。これにより、ロードを行う不揮発素子の素子数を減らすことができ、ロードに要する消費電力が低減できる。
[第2の実施形態]
 続いて、第2の実施形態について図面を参照して詳細に説明する。
 図9は、本実施形態に係る半導体集積回路2の内部構成の一例を示す図である。図9において図2と同一構成要素には、同一の符号を付し、その説明を省略する。半導体集積回路1及び2の相違点は、記憶装置40と命令デコーダ50に代えて、電源制御回路80が制御信号を供給する点である。
 本実施形態に係る半導体集積回路2は、半導体集積回路1のように記憶装置40に書き込まれたプログラム(ソフトウェア)による不揮発レジスタの制御を行わない。半導体集積回路2は、電源制御回路80のようなハードウェアによる不揮発レジスタの制御の場合においても、ロードイネーブルビットLEBを用いることで電力消費を抑制する。
 図10は、半導体集積回路2に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30aの接続の一例を示す図である。図10において図6と同一構成要素には、同一の符号を付し、その説明を省略する。図10と図6の相違点は、命令デコーダ50から送られてくる書き込み信号NVWE_REGと、不揮発素子からのロード信号NVLE_REGが削除されている点と、電源制御回路80から送られてくる書き込み信号NVWE_PWRと、不揮発素子からのロード信号NVLE_PWRが追加されている点である。
 m個の不揮発レジスタはq個のグループG1~Gqに分割され、それぞれのグループはロードイネーブルビットLEB1~LEBdのうちの1つのロードイネーブルビットLEBと1対1に対応付けられるか、又は、対応するロードイネーブルビットが存在しない。
 ロードイネーブルビットLEBは、半導体集積回路2に電源が供給された直後に不揮発レジスタ制御回路30にロードされる(不揮発レジスタR1~Rmのロードの前にロードされる)。従って、不揮発レジスタ制御回路30aは、不揮発レジスタR1~Rmに先立ち、このロードイネーブルビットLEBの参照が可能である。
 さらに、m個の不揮発レジスタは、t個のグループG1~Gtに分割される。また、不揮発レジスタ制御回路30aは、s(但し、sは2以上の整数、以下同じ)個のロード信号NVLE_PWR1~NVLE_PWRsを受け付け可能である。それぞれの不揮発レジスタのグループは、ロード信号NVLE_PWR1~NVLE_PWRsのうちの1つのロード信号NVLE_PWRと1対1に対応付けられるか、又は、対応するロード信号NVLE_PWRが存在しない。
 不揮発レジスタ制御回路30aは、電源復帰後、電源制御回路80から供給されたs個のロード信号NVLE_PWRに基づき、活性化されたロード信号に対応したグループに属する全ての不揮発レジスタを指定する。不揮発レジスタ制御回路30aは、この指定された不揮発レジスタを含むグループのロードイネーブルビットLEBを参照する。参照したロードイネーブルビットLEBの値が「1」の場合には、指定した不揮発レジスタにおいて、不揮発素子のデータを保持回路へロードする。参照したロードイネーブルビットLEBの値が「0」の場合には、指定した不揮発レジスタにおいて、不揮発素子のデータを保持回路にロードしない。対応するロードイネーブルビットLEBが存在しない場合には、指定した不揮発レジスタにおいて、不揮発素子のデータを保持回路にロードするか否かを、予め不揮発レジスタ制御回路30に固定的に設定しておく。
 書き込み時も同様に、m個の不揮発レジスタは、t個のグループG1~Gtに分割される。また、不揮発レジスタ制御回路30aは、s個の書き込み信号NVWE_PWR1~NVWE_PWRsを受け付ける。それぞれの不揮発レジスタのグループは、書き込み信号NVWE_PWR1~NVWE_PWRsのうち、1つの書き込み信号NVWE_PWRと1対1に対応付けられるか、又は、対応する書き込み信号が存在しない。
 不揮発レジスタ制御回路30aは、半導体集積回路2に供給されている電源が遮断される前に、電源制御回路80から受け付けたs個の書き込み信号NVWE_PWRに基づき、活性化された書き込み信号NVWE_PWRに対応したグループに属する全ての不揮発レジスタを指定する。指定された不揮発レジスタに含まれる保持回路のデータは不揮発素子に書き込まれる。
 なお、本実施形態に係る半導体集積回路2において、不揮発レジスタR1~Rmは必ずしもアドレスに対応付けされていなくてもよい。上述のように、グループ単位での書き込み信号、又は、読み出し信号が与えられるためである。
 本実施形態に係る半導体集積回路2においても、電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制することができる。さらに、中央処理装置(プログラム)による制御ではなく、電源制御回路80(ハードウェア)を使用することで、記憶装置40からの命令フェッチに起因する遅延時間、及び、電力消費の削減効果をより高めることができる。
 また、プログラムによる制御ではないため、記憶装置40における該当プログラムの領域を削減することができる(プログラムサイズが縮小する)。
[第3の実施形態]
 続いて、第3の実施形態について図面を参照して詳細に説明する。
 本実施形態に係る半導体集積回路3は、半導体集積回路1とはシステム起動時の動作が異なる。従って、半導体集積回路3について、図2~図6に相当する説明は省略する。
 半導体集積回路3は、ロード用分岐フラグを使用する。ロード用分岐フラグは、システム復帰時の動作モードを選択するために使用される。さらに、ロード用分岐フラグは不揮発レジスタにより保持され、そのデータは、電源遮断に先立ち、予め不揮発素子に書き込まれる。なお、ロード用分岐フラグを記憶する不揮発レジスタは、他の不揮発レジスタと同様に、不揮発レジスタ制御回路30により制御することが可能である。
 図11は、半導体集積回路3のシステム起動時の動作の一例を示すフローチャートである。
 ステップS01において、電源供給に先立ちシステムがリセットされる。
 ステップS02において、ロード用分岐フラグを記憶する不揮発レジスタからロード用分岐フラグに相当するデータをロードする。
 ステップS03において、ロード用分岐フラグが「1」であるか否かを判断する。ロード用分岐フラグが「0」である場合には、ステップS04に遷移する。ロード用分岐フラグが「1」である場合には、ステップS05に遷移する。
 ステップS04において、不揮発レジスタのロード動作を含まないデフォルトのシステムの起動を行う。
 ステップS05において、不揮発レジスタのロード動作を含むシステムの起動を行う。
 上述の不揮発レジスタのロード動作を含むシステムの起動は、第1の実施形態において開示したロードイネーブルビットLEBや命令コードによるアドレス指定を利用できる。これにより、意図したレジスタのみをロードすることができる。
 なお、電源のオン・オフをする単位は、半導体集積回路3の全体である場合に限られず、半導体集積回路3を構成するモジュール単位であってもよい。モジュール単位である場合には、あるモジュールに電源供給された後のリセットは、そのモジュールのみに限定されてもよい。
 以上のように、本実施形態に係る半導体集積回路3は、ロジック素子と不揮発素子を一体化した不揮発レジスタを備えている。そのため、半導体集積回路3の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制することができる。
 さらに、電源をオンする際に、常に電源をオフの前の状態に復帰する必要はなく、より柔軟に意図した状態にすぐに復帰できる。また、ロード用分岐フラグは不揮発レジスタに記憶されているため、記憶装置40にロード用分岐フラグを記憶する場合と比較すると、記憶装置40からのロード用分岐フラグの転送が不要ある。そのため、データ転送に要する遅延時間と消費電力を低減できると共に、ロード用分岐フラグを利用するための制御(手続き)がより簡便になる。
 また、ロードイネーブルビットLEBやロード命令と組み合わせることで、意図したシステムの状態とリセット状態の差分のデータのみをロードすることが可能であり、不揮発素子のロードに要する消費電力を低減できる。
[第4の実施形態]
 続いて、第4の実施形態について図面を参照して詳細に説明する。
 本実施形態に係る半導体集積回路4は、半導体集積回路1とはシステム起動時の動作が異なる。従って、半導体集積回路4について、図2~図6に相当する説明は省略する。
 半導体集積回路4の不揮発レジスタは、プログラムカウンタPCのデータを記憶する。プログラムカウンタPCは、次に実行すべき命令が記憶されている記憶装置40のアドレス情報である。半導体集積回路4は、その電源が遮断される前に、次回復帰したときに開始したいプログラムカウンタPCの値を不揮発素子に書き込む。
 図12は、半導体集積回路4のシステム起動時の動作の一例を示すフローチャートである。
 ステップS11において、電源供給に先立ちシステムがリセットされる。
 ステップS12において、プログラムカウンタPCの値を記憶する不揮発レジスタにおいて、不揮発素子のプログラムカウンタPCのデータを保持回路へロードする。
 ステップS13において、ロードされたプログラムカウンタPCの値がデフォルト値か否かを判断する。デフォルト値である場合には、ステップS14に遷移する。デフォルト値でない場合には、ステップS15に遷移する。
 ステップS14では、不揮発レジスタのロード動作を含まないデフォルトのシステムの起動を行う。
 ステップS15では、不揮発レジスタのロード動作を含むシステムの起動を行う。その際、第1の実施形態において説明したロードイネーブルビットLEBや命令コードによるアドレス指定を行う。これにより、意図したレジスタのみをロードすることができる。
 なお、本実施形態における説明では、ロードイネーブルビットを用いる場合について説明したが、必ずしも、ロードイネーブルビットを備えている必要はない。さらに、電源のオン・オフをする単位は、半導体集積回路4の全体である場合に限られず、半導体集積回路4を構成するモジュール単位であってもよい。モジュール単位である場合には、あるモジュールに電源供給された後のリセットは、そのモジュールのみに限定されてもよい。
 本実施形態に係る半導体集積回路4においても、ロードイネーブルビットLEBやロード命令と組み合わせることで、意図したシステムの状態とリセット状態の差分のデータのみをロードすることが可能であり、不揮発素子のロードに要する消費電力を低減できる。
[第5の実施形態]
 続いて、第5の実施形態について図面を参照して詳細に説明する。
 第4の実施形態においてプログラムカウンタPCを不揮発レジスタに記憶する半導体集積回路4について説明した。本実施形態においては、プログラムカウンタPCの値を不揮発素子へ書き込む際に注意しなければならない点について説明する。
 ここで、図4において説明した不揮発フリップフロップ60は、スレーブラッチ62のデータを不揮発素子63及び64に書き込むことができる。その際、電源遮断から復帰した際に開始したいプログラムカウンタPCの値が、スレーブラッチ62が記憶している値と同一である場合には問題ない。しかし、次回復帰した際に開始したいプログラムカウンタPCの値が、スレーブラッチ62が記憶している値と異なる場合に問題が発生する。即ち、不揮発素子63及び64に次回復帰したときのアドレスを書き込むと、スレーブラッチ62が保持する値が更新されてしまう。このとき、次のサイクルでアクセスするはずのアドレスではなく、電源遮断からの復帰後に開始したいアドレスにアクセスしてしまうことになる。
 この問題を解決するために、スレーブラッチ62のデータを更新せず直接、不揮発素子のデータを書き込める手段を不揮発フリップフロップ60に追加することが考えられる。本実施形態に係る半導体集積回路5は、このような対策を施した不揮発フリップフロップ60aを備えている。
 図13は、不揮発フリップフロップ60aの回路構成の一例を示す図である。図13において図4と同一構成要素には、同一の符号を付し、その説明を省略する。不揮発フリップフロップ60と60aでは、書き込み用のトランジスタであるNチャンネル型MOSトランジスタN09~N12を制御する周辺回路が異なっている。
 具体的には、マルチプレクサMUX01及び02が追加され、書き込み信号WB1とWB2に従い、書き込むデータとして、スレーブラッチ62aのデータと入力データDのいずれを採用するか選択できるようになっている。
 不揮発フリップフロップ60aは、2つの書き込み信号WB1とWB2と、1つの入力データDを受け付ける。書き込み信号WB1が活性化された場合には、保持回路68のデータを不揮発素子63及び64に書き込む。書き込み信号WB2が活性化された場合には、入力データDのデータを不揮発素子63及び64に書き込み、かつ、保持回路68のデータは変更しない。なお、入力データDを不揮発素子63及び64に書き込む際には、クロックCLKはLレベルとする。これにより、入力データDを、スレーブラッチ62aのデータは変更せずに、不揮発素子63及び64に書き込むことができる。
 図14は、半導体集積回路5に含まれる不揮発レジスタR1~Rmとその制御回路である不揮発レジスタ制御回路30bの接続の一例を示す図である。図6と図14の相違点は、不揮発レジスタ制御回路30bは、2つの不揮発素子書き込み信号NVWE1_REG及びNVWE2_REGを受け付ける点である。また、不揮発レジスタ制御回路30bは、アドレスA1に対応する不揮発レジスタR1へ2つの不揮発素子書き込み信号WB1_REG(A1)及びWB2_REG(A1)を出力する。アドレスA2~Amに対応する不揮発レジスタR2~Rmについても同様である。
 半導体集積回路5では、不揮発素子書き込み信号NVWE1_REGを活性化することにより、選択した不揮発レジスタのスレーブラッチのデータを不揮発素子に書き込む。一方、不揮発素子書き込み信号NVWE2_REGを活性化することにより、入力データD_REGを不揮発素子へ書き込む。図13に示す不揮発フリップフロップ60aは、2つのデータを選択して、いずれかのデータを書き込むことができる。しかし、図6と図13を比較すると、書き込みデータの配線は追加されていない。従って、配線が占める面積のオーバーヘッドを抑えることができる。
 なお、図14においては、全ての不揮発フリップフロップを不揮発フリップフロップ60aとしたが、第1の実施形態において説明した不揮発フリップフロップ60と不揮発フリップフロップ60aをある割合で混合して使用してもよい。
 さらに、本実施形態に係る不揮発フリップフロップ60aは、プログラムカウンタPC以外にも、スレーブラッチのデータによる変更を意図しないレジスタに適用することができる。
 以上のように、本実施形態に係る半導体集積回路5は、ロジック素子と不揮発素子を一体化した不揮発レジスタを備えている。そのため、半導体集積回路5の電源を復帰する際に、退避したデータを復帰させるために要する時間及び電力消費を抑制することができる。
 さらに、不揮発フリップフロップ60aの保持回路のデータと不揮発素子のデータをそれぞれ独立に書き込むことができるため、保持回路に記憶されているシステムの内部状態を変更せずに、電源が遮断されている状態から復帰したときに開始したいプログラムカウンタPCの値や、他の不揮発レジスタの値を不揮発素子へ書き込むことができる。その結果、より柔軟に意図した状態に復帰可能である。
 なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。例えば、本書では中央処理装置内のレジスタを中心に説明したが、周辺モジュール内のレジスタにも容易に拡張することができる。また、各実施形態においては、各レジスタにはアドレスが与えられるとしたが、アドレスが与えられないレジスタに対しても不揮発素子の書き込みと読み出しを適用することができる。即ち、アドレスが与えられていないため、プログラムから直接、保持回路のデータを読み書きできなくとも、上述のあるグループに属することができるため、不揮発素子の書き込みと読み出しを実行することができる。本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
1~5、100 半導体集積回路
10 不揮発レジスタ群
20 ロードイネーブルレジスタ
30、30a、30b、105 不揮発レジスタ制御回路
40 記憶装置
50 命令デコーダ
60、60a 不揮発フリップフロップ
61 マスタラッチ
62、62a スレーブラッチ
63、64、102 不揮発素子
65、66 クロックドインバータ
67、68、101 保持回路
70 メタル層
71 第1ハード層
72 第2ハード層
73 フリー層
74 絶縁層
75 リファレンス層
80 電源制御回路
103 第1の不揮発レジスタ
104 第2の不揮発レジスタ

Claims (10)

  1.  揮発性データを保持する保持回路と、不揮発性データの保持が可能な不揮発素子と、を含む複数の第1の不揮発レジスタと、
     前記複数の第1の不揮発レジスタのうち、いずれの第1の不揮発レジスタからデータをロードするかを定めるロードイネーブルビットを保持する第2の不揮発レジスタと、
     外部から電源供給がなされた際に、前記第2の不揮発レジスタからロードした前記ロードイネーブルビットが指定する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードする不揮発レジスタ制御回路と、
     を備えることを特徴とする半導体集積回路。
  2.  前記複数の第1の不揮発レジスタは複数のグループに分割され、それぞれのグループは、前記ロードイネーブルビットと対応付けられているか、又は、対応付けられていないか、のいずれかであって、
     前記不揮発レジスタ制御回路は、前記ロードイネーブルビットが指定するグループに属する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードする請求項1の半導体集積回路。
  3.  前記ロードイネーブルビットに対応付けられていないグループに属する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードするか否かは予め定められた規則に従う請求項2の半導体集積回路。
  4.  中央処理装置に対する命令をデコードする命令デコーダと、
     前記命令を記憶する記憶装置と、
     を備え、
     前記複数の第1の不揮発レジスタはそれぞれアドレスが付与されと共に、複数のグループに分割されており、
     前記命令には、前記複数の第1の不揮発レジスタに対応するアドレスを指定するアドレスビットと、前記複数の第1の不揮発レジスタからデータのロードを指示するロードビットと、が含まれ、
     前記不揮発レジスタ制御回路は、前記命令デコーダが前記記憶装置から読み出した命令をデコードした結果、前記アドレスビットが指定する第1の不揮発レジスタと同一のグループに属する第1の不揮発レジスタであって、対応する前記ロードビットが活性化されている第1の不揮発レジスタのデータのロードを行う請求項1乃至3のいずれか一に記載の半導体集積回路。
  5.  前記複数の第1の不揮発レジスタは、複数のグループに分割され、
     前記複数の第1の不揮発レジスタが属するいずれのグループを活性化するか否かを定める複数のロード信号の供給が可能である電源制御回路を備え、
     前記不揮発レジスタ制御回路は、前記電源制御回路が供給するロード信号に対応したグループに属する第1の不揮発レジスタであって、対応する前記ロードイネーブルビットが活性化されている第1の不揮発レジスタのデータのロードを行う請求項1の半導体集積回路。
  6.  前記不揮発レジスタ制御回路は、外部から電源供給がなされた際に、ロード用分岐フラグに基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含まないシステム起動、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含むシステム起動、のいずれかを行う請求項1乃至5のいずれか一に記載の半導体集積回路。
  7.  前記複数の第1の不揮発レジスタのいずれかにおいて、プログラムカウンタに関するデータを保持し、
     前記不揮発レジスタ制御回路は、外部から電源供給がなされた際に、前記プログラムカウンタを記憶する不揮発レジスタに含まれる不揮発素子から前記保持回路にデータをロードし、
     前記プログラムカウンタの値に基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含まないシステム起動、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードする動作を含むシステム起動、のいずれかを行う請求項1乃至5のいずれか一に記載の半導体集積回路。
  8.  前記複数の不揮発レジスタは、第1及び第2の書き込み信号と、1つのデータ入力と、を受け付け、
     前記第1の書き込み信号が活性化された場合には、前記保持回路のデータを前記不揮発素子へ書き込み、
     前記第2の書き込み信号が活性化された場合には、前記データ入力を前記不揮発素子へ書き込みつつ、前記保持回路が保持するデータの変更を行わない請求項1乃至7のいずれか一に記載の半導体集積回路。
  9.  揮発性データを保持する保持回路と、不揮発性データの保持が可能な不揮発素子と、を含む複数の第1の不揮発レジスタを備える半導体集積回路の制御方法であって、
     前記複数の第1の不揮発レジスタのうち、いずれの第1の不揮発レジスタからデータをロードするかを定めるロードイネーブルビットを参照する第1の工程と、
     外部から電源供給がなされた際に、前記ロードイネーブルビットが指定する第1の不揮発レジスタに含まれる不揮発素子が保持するデータを、前記保持回路にロードする第2の工程と、
     を含むことを特徴とする半導体集積回路の制御方法。
  10.  前記第2の工程は、外部から電源供給がなされた際に、ロード用分岐フラグに基づいて、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードせずにシステムを起動する工程、又は、前記第1の不揮発レジスタに含まれる不揮発素子が保持するデータを前記保持回路にロードしてシステムを起動する工程、のいずれかを含む請求項9の半導体集積回路の制御方法。
PCT/JP2012/080050 2011-11-21 2012-11-20 半導体集積回路及びその制御方法 WO2013077316A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013545926A JP5999097B2 (ja) 2011-11-21 2012-11-20 半導体集積回路及びその制御方法
US14/359,879 US20140313843A1 (en) 2011-11-21 2012-11-20 Semiconductor integrated circuit and control method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-254028 2011-11-21
JP2011254028 2011-11-21

Publications (1)

Publication Number Publication Date
WO2013077316A1 true WO2013077316A1 (ja) 2013-05-30

Family

ID=48469760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/080050 WO2013077316A1 (ja) 2011-11-21 2012-11-20 半導体集積回路及びその制御方法

Country Status (3)

Country Link
US (1) US20140313843A1 (ja)
JP (1) JP5999097B2 (ja)
WO (1) WO2013077316A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123134A (ja) * 2016-01-06 2017-07-13 国立大学法人東北大学 半導体装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9524007B2 (en) * 2014-02-04 2016-12-20 Qualcomm Incorporated Diagnostic systems and methods of finite state machines
US9728241B2 (en) * 2015-04-30 2017-08-08 University Of South Florida Non-volatile flip-flop with enhanced-scan capability to sustain sudden power failure
JP6885797B2 (ja) * 2017-06-12 2021-06-16 昭和電工株式会社 磁気センサ及び磁気センサの製造方法
CN109185190B (zh) * 2018-09-25 2020-11-27 西迪技术股份有限公司 一种对旋风机及对旋风机的轴功匹配方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182803A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> コンピュータ・システムの動作のサスペンドとレジュームを行う方法および装置
JP2004133969A (ja) * 2002-10-08 2004-04-30 Renesas Technology Corp 半導体装置
US20090172350A1 (en) * 2007-12-28 2009-07-02 Unity Semiconductor Corporation Non-volatile processor register
WO2010038671A1 (ja) * 2008-10-01 2010-04-08 ローム株式会社 電子機器

Family Cites Families (4)

* 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
JPH0728692A (ja) * 1993-07-09 1995-01-31 Fuji Facom Corp 読み書き可能なレジスタ回路
JP4935231B2 (ja) * 2006-08-04 2012-05-23 ソニー株式会社 メモリセル及び不揮発性記憶装置
JP5201487B2 (ja) * 2007-12-06 2013-06-05 日本電気株式会社 不揮発性ラッチ回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182803A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> コンピュータ・システムの動作のサスペンドとレジュームを行う方法および装置
JP2004133969A (ja) * 2002-10-08 2004-04-30 Renesas Technology Corp 半導体装置
US20090172350A1 (en) * 2007-12-28 2009-07-02 Unity Semiconductor Corporation Non-volatile processor register
WO2010038671A1 (ja) * 2008-10-01 2010-04-08 ローム株式会社 電子機器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123134A (ja) * 2016-01-06 2017-07-13 国立大学法人東北大学 半導体装置

Also Published As

Publication number Publication date
JPWO2013077316A1 (ja) 2015-04-27
JP5999097B2 (ja) 2016-09-28
US20140313843A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
US7990780B2 (en) Multiple threshold voltage register file cell
JP5999097B2 (ja) 半導体集積回路及びその制御方法
US20140149773A1 (en) Latch circuit and data processing system
US7743237B2 (en) Register file bit and method for fast context switch
JP2004133969A (ja) 半導体装置
JP2003162453A (ja) 不揮発性半導体記憶装置
US10068664B1 (en) Column repair in memory
US8462533B2 (en) System for retaining state data
US20040037110A1 (en) Thin film magnetic memory device conducting read operation and write operation in parallel
JP5274069B2 (ja) 低電力モードにおける漏洩電力削減
KR100751841B1 (ko) 내장된 mram을 갖는 처리 장비와 데이터 처리 장비를 제조하는 방법
US7778105B2 (en) Memory with write port configured for double pump write
RU2400804C2 (ru) Способ и система для предоставления энергетически эффективного регистрового файла
US7644223B2 (en) Circuit and method for patching for program ROM
JP5962658B2 (ja) 半導体装置とその制御方法
US20050030796A1 (en) Circuit and/or method for implementing a patch mechanism for embedded program ROM
US20120324175A1 (en) Multi-Port Register File with an Input Pipelined Architecture with Asynchronous Reads and Localized Feedback
JP2014222425A (ja) 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
US8014211B2 (en) Keeperless fully complementary static selection circuit
US20170011797A1 (en) Multistate register having a flip flop and multiple memristive devices
US8837226B2 (en) Memory including a reduced leakage wordline driver
Ikezoe et al. A coarse grained-reconfigurable accelerator with energy efficient MTJ-based non-volatile flip-flops
US20140112429A1 (en) Low Voltage Register File Cell Structure
US7882406B2 (en) Built in test controller with a downloadable testing program
JP2010102800A (ja) 磁気ランダムアクセスメモリ及びその動作方法

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: 12851068

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013545926

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14359879

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12851068

Country of ref document: EP

Kind code of ref document: A1