WO2019048982A1 - 演算装置および電子機器 - Google Patents

演算装置および電子機器 Download PDF

Info

Publication number
WO2019048982A1
WO2019048982A1 PCT/IB2018/056531 IB2018056531W WO2019048982A1 WO 2019048982 A1 WO2019048982 A1 WO 2019048982A1 IB 2018056531 W IB2018056531 W IB 2018056531W WO 2019048982 A1 WO2019048982 A1 WO 2019048982A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
data
core
gpu
transistor
Prior art date
Application number
PCT/IB2018/056531
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 JP2019540728A priority Critical patent/JP7237839B2/ja
Priority to DE112018004814.4T priority patent/DE112018004814T5/de
Priority to US16/641,821 priority patent/US11275993B2/en
Priority to KR1020207004000A priority patent/KR20200050949A/ko
Priority to CN201880054259.0A priority patent/CN111033438B/zh
Priority to CN202311475196.5A priority patent/CN117519454A/zh
Publication of WO2019048982A1 publication Critical patent/WO2019048982A1/ja
Priority to US17/588,613 priority patent/US11868877B2/en
Priority to JP2023030844A priority patent/JP7502503B2/ja
Priority to US18/510,784 priority patent/US20240095507A1/en

Links

Images

Classifications

    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue 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/3243Power saving in microcontroller unit
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/48Analogue computers for specific processes, systems or devices, e.g. simulators
    • G06G7/60Analogue computers for specific processes, systems or devices, e.g. simulators for living beings, e.g. their nervous systems ; for problems in the medical field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/66Types of semiconductor device ; Multistep manufacturing processes therefor
    • H01L29/68Types of semiconductor device ; Multistep manufacturing processes therefor controllable by only the electric current supplied, or only the electric potential applied, to an electrode which does not carry the current to be rectified, amplified or switched
    • H01L29/76Unipolar devices, e.g. field effect transistors
    • H01L29/772Field effect transistors
    • H01L29/78Field effect transistors with field effect produced by an insulated gate
    • H01L29/786Thin film transistors, i.e. transistors with a channel being at least partly a thin film
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/66Types of semiconductor device ; Multistep manufacturing processes therefor
    • H01L29/68Types of semiconductor device ; Multistep manufacturing processes therefor controllable by only the electric current supplied, or only the electric potential applied, to an electrode which does not carry the current to be rectified, amplified or switched
    • H01L29/76Unipolar devices, e.g. field effect transistors
    • H01L29/772Field effect transistors
    • H01L29/78Field effect transistors with field effect produced by an insulated gate
    • H01L29/786Thin film transistors, i.e. transistors with a channel being at least partly a thin film
    • H01L29/7869Thin film transistors, i.e. transistors with a channel being at least partly a thin film having a semiconductor body comprising an oxide semiconductor material, e.g. zinc oxide, copper aluminium oxide, cadmium stannate
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B10/00Static random access memory [SRAM] devices
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B12/00Dynamic random access memory [DRAM] devices
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • H10B41/35Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/30EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region
    • H10B43/35EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region with cell select transistors, e.g. NAND
    • 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

  • One embodiment of the present invention relates to a computing device and an electronic device.
  • the technical field of one embodiment of the present invention disclosed in this specification and the like includes a semiconductor device, an imaging device, a display device, a light emitting device, a power storage device, a memory device, a display system, an electronic device, a lighting device, an input device, and an input / output.
  • An apparatus, a method of driving them, or a method of manufacturing them can be mentioned as an example.
  • a semiconductor device refers to any device that can function by utilizing semiconductor characteristics.
  • a transistor, a semiconductor circuit, an arithmetic device, a memory device, and the like are one embodiment of a semiconductor device.
  • a display device, an imaging device, an electro-optical device, a power generation device (including a thin film solar cell, an organic thin film solar cell, and the like), and an electronic device may include a semiconductor device.
  • Electronic devices having an arithmetic device such as a CPU (central processing unit) are in widespread use.
  • arithmetic device such as a CPU (central processing unit)
  • CPU central processing unit
  • technological development on performance improvement of computing devices is active.
  • technologies for achieving high performance include multi-core technology and Dynamic Voltage and Frequency Scaling (DVFS) technology.
  • DVFS Dynamic Voltage and Frequency Scaling
  • Patent Document 1 discloses an invention relating to a method and a system for reducing a thermal load by monitoring and controlling the current of a computer in which a computing device is mounted.
  • the multi-core technology and the DVFS technology are effective for enhancing the performance of the computing device.
  • it is difficult to perform power gating for each core, and leakage current flows, resulting in an increase in power consumption.
  • an object of one embodiment of the present invention is to provide a novel arithmetic device and an electronic device.
  • an object of one embodiment of the present invention is to provide an arithmetic device and an electronic device with low power consumption.
  • an object of one embodiment of the present invention is to provide a computing device and an electronic device which can operate at high speed.
  • an object of one embodiment of the present invention is to provide a computing device and an electronic device capable of suppressing heat generation.
  • one aspect of the present invention does not necessarily have to solve all the problems described above, as long as at least one problem can be solved.
  • the above description of the problems does not disturb the existence of other problems. Problems other than these are naturally apparent from the description of the specification, claims, drawings, and the like, and the extraction of problems other than these is apparent from the descriptions of the specification, claims, drawings, and the like. Is possible.
  • One embodiment of the present invention includes a first arithmetic unit and a second arithmetic unit, and the first arithmetic unit includes a first CPU core and a second CPU core.
  • the second operation unit has a first GPU core and a second GPU core, and the first CPU core and the second CPU core each have a function that can be power gated.
  • the first CPU core and the second CPU core each have a first data holding circuit electrically connected to the flip flop, and the first GPU core holds an analog value;
  • a second data holding circuit that can read out as digital data of more than a bit, and a second data holding circuit that holds a digital value and that can be read out as 1-bit digital data
  • the circuit includes a first transistor and a capacitor, and the first transistor has a function of controlling writing of data to the capacitor, and a nonconductive state between a source and a drain of the first transistor.
  • the channel formation region is a computing device including an oxide semiconductor.
  • One embodiment of the present invention includes a first operation unit and a plurality of second operation units, and the first operation unit includes a first CPU core and a second CPU core. And the plurality of second operation units have a first GPU core and a second GPU core, respectively, and the first CPU core and the second CPU core respectively perform power gating , And the first CPU core and the second CPU core each have a first data holding circuit electrically connected to the flip flop, and the first GPU core has an analog value. , And the second GPU core holds a digital value and can be read out as 1-bit digital data.
  • the third to third data holding circuits each include a first transistor and a capacitor, and the first transistor has a function of controlling writing of data to the capacitor, and a source and a drain of the first transistor.
  • An arithmetic device which has a function of holding a charge corresponding to written data by setting a non-conduction state, and in which the channel formation region in the first transistor includes an oxide semiconductor.
  • each of the second data holding circuit and the third data holding circuit includes a second transistor, and one of the source or the drain of the first transistor and one electrode of the capacitive element. It is preferable that the arithmetic device have a function of holding a potential corresponding to an analog value or a digital value at a node to which the gate of the second transistor is electrically connected.
  • the first CPU core and the second CPU core are switched between a state in which one of them executes arithmetic processing and a state in which one of the other performs power gating.
  • An arithmetic device controlled according to the temperature of the area where the CPU core or the second CPU core is provided is preferable.
  • the first GPU core and the second GPU core are switched between a state in which one of them performs arithmetic processing and a state in which the other is power gating, and the switching is scientific computing
  • An arithmetic device controlled according to whether it is arithmetic processing based on (1) or arithmetic processing based on inference using a neural network is preferable.
  • a novel arithmetic device and electronic device can be provided.
  • an arithmetic device and an electronic device with low power consumption can be provided.
  • a computing device and an electronic device which can operate at high speed can be provided.
  • an arithmetic device and an electronic device capable of suppressing heat generation can be provided.
  • FIG. 6 is a block diagram for describing a structure of one embodiment of the present invention.
  • FIG. 6 is a block diagram for describing a structure of one embodiment of the present invention.
  • FIG. 6 is a block diagram for describing a structure of one embodiment of the present invention.
  • FIG. 6 is a state transition diagram for illustrating the structure of one embodiment of the present invention.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • 5 is a flowchart illustrating the structure of one embodiment of the present invention.
  • 5 is a flowchart illustrating the structure of one embodiment of the present invention.
  • FIG. 6 is a block diagram for describing a structure of one embodiment of the present invention.
  • FIG. 6 is a block diagram for describing a structure of one embodiment of the present invention.
  • A A circuit diagram showing a configuration example of a flip flop.
  • B A diagram showing an example of a stacked structure of flip flops.
  • 7 is a timing chart showing an operation example of a flip flop.
  • the functional block diagram which shows the structural example of an osAI chip.
  • the circuit diagram which shows the structural example of MAC array.
  • FIG. 2 is a block diagram showing an exemplary configuration of an arithmetic array.
  • FIG. 2 is a circuit diagram showing a configuration example of an arithmetic circuit.
  • A A circuit diagram showing a configuration example of a memory circuit.
  • B A circuit diagram showing a configuration example of a memory cell.
  • FIG. 2 is a circuit diagram showing a configuration example of a memory circuit.
  • A, B A circuit diagram showing a configuration example of a switch circuit.
  • B A circuit diagram showing a configuration example of a memory cell.
  • B, C A circuit diagram showing a configuration example of a memory cell.
  • the timing chart which shows the operation example of NOSRAM.
  • the functional block diagram which shows the structural example of OSSRAM.
  • FIG. 6 is a circuit diagram showing an example of a circuit configuration of an A-D: os memory. The schematic diagram which shows the structural example of the circuit part of osAI chip.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • FIG. 6 illustrates a structure of one embodiment of the present invention.
  • the metal oxide is a metal oxide in a broad sense.
  • Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also referred to as oxide semiconductors), and the like.
  • oxide semiconductors also referred to as oxide semiconductors
  • the metal oxide may be referred to as an oxide semiconductor. That is, in the case where the metal oxide has at least one of an amplification action, a rectification action, and a switching action, the metal oxide can be called a metal oxide semiconductor.
  • a transistor including a metal oxide in a channel formation region is also referred to as an os transistor.
  • Embodiment 1 The configuration, operation, and the like of the arithmetic device which is one embodiment of the present invention will be described.
  • FIG. 1 is a block diagram of the arithmetic unit 100A.
  • the arithmetic device 100A illustrated in FIG. 1 includes a host 10 (Host in FIG. 1), a bus 20 (Bus in FIG. 1), and a GPU 30.
  • the host 10 and the GPU 30 have a function of performing an operation for executing a program.
  • the host 10 has a function of performing general-purpose processing such as execution of an operating system (OS), control of data, and execution of various operations and programs.
  • the host 10 has a plurality of CPU cores. In FIG. 1, two CPU cores of the CPU core 11A and the CPU core 11B are illustrated as an example.
  • the host 10 has a memory 12.
  • the memory 12 has a function as a main memory or a function as a data cache.
  • the CPU core 11A and the CPU core 11B have a function of executing a process performed by the host 10. It is preferable that the CPU core 11A and the CPU core 11B have different processing performance.
  • the CPU core 11A is a core having lower processing performance and lower power consumption than the CPU core 11B
  • the CPU core 11B is a core having higher processing performance and higher power consumption than the CPU core 11A. Certain configurations are preferred. With this configuration, either or both of the CPU core 11A and the CPU core 11B can be selected according to the amount and type of processing performed by the host 10, and processing can be efficiently executed.
  • the CPU core 11A and the CPU core 11B can be configured to differ in processing capacity and power consumption by different circuit designs.
  • two identical CPU cores may be prepared, and DFVS technology may be applied to either one or both of the CPU cores, so that processing power and power consumption can be made different.
  • the processing performance is improved by raising the voltage and frequency for one CPU core, and the power consumption is suppressed by lowering the voltage and frequency for the other CPU core. It is possible to realize a configuration in which the processing capacity and the power consumption are different.
  • the CPU core 11A and the CPU core 11B each have a data holding circuit 13.
  • the data holding circuit 13 is a circuit capable of holding data even if the supply of the power supply voltage is stopped.
  • the supply of the power supply voltage can be controlled by electrical disconnection from the power supply domain (power domain) by a power switch or the like.
  • the power supply voltage may be referred to as a drive voltage.
  • a memory hereinafter also referred to as an os memory
  • os transistor having an oxide semiconductor in a channel formation region is preferable.
  • the os transistor Since the band gap of the metal oxide is 2.5 eV or more, the os transistor has a minimum off current. As an example, when the voltage between the source and the drain is 3.5 V at room temperature (25 ° C.), the off current per 1 ⁇ m of the channel width is less than 1 ⁇ 10 ⁇ 20 A, less than 1 ⁇ 10 ⁇ 22 A, or 1 ⁇ 10 6 It can be less than -24 A. That is, the on / off current ratio of the drain current can be made to be 20 digits or more and 150 digits or less. Therefore, in the os memory, the amount of charge leaking from the holding node via the os transistor is extremely small. Therefore, since the os memory can function as a non-volatile memory circuit, power gating of the arithmetic device becomes possible.
  • the metal oxide applied to the os transistor is Zn oxide, Zn-Sn oxide, Ga-Sn oxide, In-Ga oxide, In-Zn oxide, In-M-Zn oxide (M is Ti, Ga, Y, Zr, La, Ce, Nd, Sn or Hf) and the like.
  • oxides containing indium and zinc include aluminum, gallium, yttrium, copper, vanadium, beryllium, boron, silicon, titanium, iron, nickel, germanium, zirconium, molybdenum, lanthanum, cerium, neodymium, hafnium, tantalum, tungsten And one or more selected from magnesium and the like.
  • the metal oxide applied to the semiconductor layer is preferably a metal oxide having a crystal part such as CAAC-OS, CAC-OS, or nc-OS.
  • CAAC-OS is an abbreviation for c-axis-aligned crystalline oxide semiconductor.
  • CAC-OS is an abbreviation of Cloud-Aligned Composite oxide semiconductor.
  • the nc-OS is an abbreviation of nanocrystalline oxide semiconductor.
  • the CAAC-OS has c-axis orientation, and a plurality of nanocrystals are connected in the a-b plane direction to form a strained crystal structure.
  • distortion shows the location where direction of the lattice arrangement
  • the CAC-OS has a function of flowing electrons (or holes) serving as carriers and a function of not flowing electrons serving as carriers. By separating the function of flowing electrons and the function of not flowing electrons, both functions can be maximized. That is, by using the CAC-OS in the channel formation region of the os transistor, both high on current and extremely low off current can be realized.
  • the os transistor Since the metal oxide has a large band gap, is hard to excite electrons, and has a large effective mass of holes, the os transistor may be less likely to cause avalanche collapse or the like compared to a general Si transistor. . Therefore, it is possible to suppress, for example, hot carrier deterioration and the like caused by avalanche collapse. Since the hot carrier deterioration can be suppressed, the os transistor can be driven with a high drain voltage.
  • the os transistor is a storage type transistor having electrons as majority carriers. Therefore, the influence of DIBL (Drain-Induced Barrier Lowering), which is one of the short channel effects, is small as compared with an inverted transistor (typically, a Si transistor) having a pn junction. That is, the os transistor has higher resistance to the short channel effect than the Si transistor.
  • DIBL Drain-Induced Barrier Lowering
  • the os transistor Since the os transistor has high resistance to the short channel effect, the channel length can be reduced without deteriorating the reliability of the os transistor, and therefore, the degree of integration of the circuit can be increased by using the os transistor.
  • the drain electric field is strengthened as the channel length is miniaturized, but as described above, the avalanche breakdown is less likely to occur in the os transistor than the Si transistor.
  • the gate insulating film can be made thicker than the Si transistor. For example, even in a minute transistor having a channel length and a channel width of 50 nm or less, it may be possible to provide a thick gate insulating film of about 10 nm. Since the parasitic capacitance can be reduced by thickening the gate insulating film, the operating speed of the circuit can be improved. Further, by thickening the gate insulating film, the leak current through the gate insulating film is reduced, which leads to a reduction in static current consumption.
  • the CPU core 11A and the CPU core 11B can hold data even if the supply of the power supply voltage is stopped by having the data holding circuit 13 which is the os memory. Therefore, power gating of the CPU core 11A and the CPU core 11B becomes possible, and power consumption can be significantly reduced.
  • the memory 12 has a function of storing data necessary for processing performed by the CPU core 11A and the CPU core 11B.
  • the memory 12 may be configured to include volatile memory or non-volatile memory such as random access memory (RAM).
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • flash memory or the like can be used.
  • NOSRAM or DOSRAM can be used.
  • NOSRAM nonvolatile oxide semiconductor RAM
  • the NOSRAM refers to a memory in which a memory cell is a two-transistor (2T) or three-transistor (3T) gain cell and an access transistor is an os transistor.
  • DOSRAM registered trademark
  • the DOSRAM is a memory in which a memory cell is a one-transistor / one-capacitance type (1T1C) including an os transistor and a capacitive element, and an access transistor is an os transistor.
  • the access transistor is an os transistor.
  • the os transistor has an extremely small current flowing between the source and the drain in the off state, that is, a leak current.
  • the NOSRAM and DOSRAM can be used as non-volatile memories by holding charges corresponding to data in memory cells using characteristics with extremely small leak current.
  • the memory 12 is electrically connected to the CPU core 11A and the CPU core 11B via a memory bus (not shown). Since the arithmetic unit 100A is a heterogeneous system in which a CPU and a GPU are mounted, the memory 12 may be called a host memory.
  • the host 10 is electrically connected to the GPU 30 via the bus 20. That is, the host 10 and the GPU 30 can perform data transmission via the bus 20.
  • the GPU 30 has a device memory 31, a shared memory 32A, a shared memory 32B, a GPU core 33A, and a GPU core 33B.
  • the device memory 31, the shared memory 32A, and the shared memory 32B may be referred to as on-site memory.
  • the GPU 30 has a function of executing a program called from a host program.
  • the GPU 30 can perform parallel processing of matrix operations in graphic processing, parallel processing of product-sum operations of neural networks, parallel processing of floating point operations in scientific and technical calculations, and the like.
  • the device memory 31 stores a program executed by the GPU 30 (also called a kernel or a kernel program) and data processed by the GPU 30.
  • the device memory 31 is electrically connected to the shared memory 32A and the shared memory 32B via a memory bus (not shown). Data transfer between the device memory 31 and the memory 12 is performed via the bus 20.
  • the shared memory 32A is electrically connected to the GPU core 33A, and has a function of holding digital values.
  • the shared memory 32B is electrically connected to the GPU core 33B and has a function of holding analog values.
  • the digital value is binary, that is, 1-bit digital data.
  • the analog value is data of four or more values, and can be treated as digital data of two or more bits by quantization. Therefore, the shared memory 32B can increase the memory capacity per unit area more than the shared memory 32A.
  • the GPU core 33A has a function of performing arithmetic processing using digital values. Digital values are less susceptible to noise. Therefore, the GPU core 33A is suitable for performing an operation process that requires a highly accurate operation result.
  • the GPU core 33A has a plurality of arithmetic units 34A.
  • the arithmetic unit 34A includes a data holding unit 35A that holds digital values.
  • Each operation unit 34A has a function of performing any one of processing such as integer operation, single precision floating point operation, and double precision floating point operation using the digital value held in the data holding unit 35A.
  • the plurality of arithmetic units 34A mounted on the GPU core 33A basically execute the same instruction.
  • the GPU core 33B has a function of performing arithmetic processing using analog values. By using the quantized analog value as digital data for arithmetic processing, it is not necessary to perform a huge amount of arithmetic processing, and the circuit scale can be reduced. Therefore, the GPU core 33B can suppress heat generation while suppressing power consumption.
  • the GPU core 33B has a plurality of arithmetic units 34B.
  • the arithmetic unit 34B includes a data holding unit 35B that holds analog values. Each arithmetic unit 34B uses digital data obtained by quantizing the analog value held in the data holding unit 35B to perform any one of integer arithmetic, single precision floating point arithmetic, double precision floating point arithmetic, and the like. Have a function to The plurality of arithmetic units 34B mounted on the GPU core 33B basically execute the same instruction.
  • the elements with consumption of power in the computing device 100A shown in FIG. 1 are the host 10 and the GPU 30.
  • the ratio of the host 10 and the GPU 30 to the overall power consumption of the computing device 100A is relatively large.
  • the power consumption of the arithmetic device 100A significantly increases. Therefore, it is preferable to reduce the power consumption of the GPU 30 as much as possible.
  • the arithmetic device 100A shown in FIG. 1 uses the quantized analog value in the GPU, switches the operation using a digital value, and switches the CPU core 11A and the CPU core 11B to reduce power consumption. Arithmetic processing can be performed at high speed while suppressing heat generation.
  • the configuration is particularly effective in a SoC equipped with multiple CPU cores and multiple GPU cores.
  • FIG. 2 is a block diagram of a modification of the arithmetic device 100A shown in FIG.
  • the computing device 100B illustrated in FIG. 2 differs from the computing device 100A illustrated in FIG. 1 in that the computing device 100B includes two or more GPUs (GPU 30_1 to GPU 30 — n (n is a natural number of 2 or more)).
  • the bus 20 is electrically connected to the host 10 and the GPUs 30_1 to 30_n.
  • the host 10 and the GPUs 30_1 to 30_n can perform data transmission via the bus 20.
  • the configuration of the arithmetic device 100A is referred to for other configurations.
  • the computing device 100 ⁇ / b> B can execute processing faster than the computing device 100 ⁇ / b> A by including a plurality of GPUs. In addition, it is possible to suppress an increase in the temperature of the arithmetic device 100B by appropriately switching the GPU that performs the process.
  • FIG. 3 is a block diagram of a modification of the arithmetic unit 100A shown in FIG.
  • the arithmetic device 100C shown in FIG. 3 includes the CPU 10A (CPU 1), the CPU 10B (CPU 2), the bus 20, the GPU 30A (GPU 1), and the GPU 30B (GPU 2). It is different.
  • the CPU 10A has a CPU core 11A and a memory 12, and the CPU 10B has a CPU core 11B and a memory 12.
  • the GPU 30A also has a device memory 31, a shared memory 32A, and a GPU core 33A, and the GPU 30B has a device memory 31, a shared memory 32B, and a GPU core 33B.
  • the bus 20 is electrically connected to the CPU 10A, the CPU 10B, the GPU 30A, and the GPU 30B.
  • the CPU 10A and the CPU 10B, and the GPU 30A and the GPU 30B can perform data transmission via the bus 20.
  • the configuration of the arithmetic device 100A is referred to for other configurations.
  • FIG. 4 is a state transition diagram for explaining a plurality of states that can be taken by the arithmetic device 100A shown in FIG.
  • the arithmetic device 100A shown in FIG. 4 has a state SC1, a state SC2, a state SG1, a state SG2, and states SPG1 to SPG4.
  • a state SC1 shown in FIG. 4 corresponds to a state (shown as CPU Core1 in the drawing) in which processing is executed using the CPU core 11A.
  • the state SC2 corresponds to the state in which processing is executed using the CPU core 11B (CPU Core 2 and illustrated in the drawing).
  • the state SG1 corresponds to the state of executing processing using the GPU core 33B (shown as GPU Core1 in the drawing).
  • the state SG2 corresponds to the state of executing processing using the GPU core 33A (shown as GPU Core 2 in the drawing).
  • the states SPG1 to SPG4 shown in FIG. 4 have a function of setting the cores in the states SC1, SC2, SG1, and SG2 to the power gating state (PG state, denoted as PG mode in the figure).
  • Power gating is a technology for stopping the supply of power supply voltage to circuits not in use, for example, by controlling the supply of power supply voltage to the circuit.
  • the CPU core 11A shifts from the state SC1 to the state SPG1, and the CPU core 11B, the GPU core 33A, and the GPU core 33B having other configurations supply the power supply voltage.
  • the state SC2, the state SG2, and the state SG1 remain.
  • the CPU core 11A and the GPU core 33B are put in the PG state, the CPU core 11A transitions from the state SC1 to the state SPG1, and the GPU core 33B transitions from the state SG1 to the state SPG3 with other configurations.
  • the certain CPU core 11B and the GPU core 33A remain in the state SC2 and the state SG2 where the supply of the power supply voltage is performed.
  • state SC1 or state SPG1, and state SC2 or state SPG2 is selected based on the type and amount of instruction written in the host program, that is, either CPU core 11A or CPU core 11B or Select whether to perform processing using both.
  • the state SG1 or state SPG3 and the selection of the state SG2 or state SPG4 based on the type and calculation amount of the kernel program, that is, either GPU core 33A or GPU core 33B Select whether to perform processing using one or both.
  • FIG. 5 is a diagram for explaining an example of transition to each state shown in the state transition diagram described in FIG. Specifically, the operation of each core for five instructions (instruction 1 to instruction 5) will be described.
  • the core in a state in which the power supply voltage is supplied and can be calculated is denoted as “EXE.”
  • PG the core in which the supply of the power supply voltage is stopped and in the PG state.
  • the CPU core 1 (shown as CPU Core 1) is lower in arithmetic performance and lower in power consumption than the CPU core 2 (shown as CPU Core 2).
  • the CPU core 2 is a core having high arithmetic performance and large power consumption as compared with the CPU core 1.
  • GPU core 1 (shown as GPU Core 1) is a GPU core that performs arithmetic processing using digital values (multi-value data) obtained by quantizing analog values, and the processing speed and accuracy of the calculation are low. It is assumed that the fever is small.
  • the GPU core 2 (shown as GPU Core 2) is a GPU core that performs arithmetic processing using digital values, and it is assumed that the processing speed and accuracy of the arithmetic are high but heat generation is large.
  • Instruction 1 in the figure is an instruction for which high processing performance is not required without executing processing in parallel.
  • the electronic device or parallel computer in which the computing device is mounted is in the sleep mode (sleep in the figure).
  • the CPU core 1 is operated, and the other cores are put in the PG state. Since the CPU core 1 consumes less power and the other cores are in the PG state and do not consume power, the instruction 1 can be executed while suppressing the power consumption and heat generation of the arithmetic device 100A.
  • Instruction 2 is an instruction that can not execute processing in parallel and requires high-speed processing.
  • the operating system may be activated, or a plurality of normal program execution may be performed (busy in the drawing).
  • a plurality of normal program execution may be performed (busy in the drawing).
  • only the CPU core 2 is operated, and the other cores are put in the PG state.
  • the CPU core 2 has high processing performance, and the other cores are in the PG state and do not consume power. Therefore, instruction 2 can be executed at high speed while suppressing the power consumption of the arithmetic device 100A.
  • Instruction 3 is an instruction that can execute processing in parallel and does not require high processing performance. For example, there may be a case where inference processing based on machine learning is performed (in difference in the figure). In such a case, the CPU core 1 and the GPU core 1 are operated, and the other cores are put in the PG state. The CPU core 1 transfers input data to the memory on the GPU core 1 and calls a kernel program to cause the GPU core 1 to execute processing. When the processing is completed, the output data is transferred to the memory on the CPU core. The CPU core 1 and the GPU core 1 consume less power, and the other cores are in the PG state and do not consume power.
  • the instruction 3 can be executed while suppressing the power consumption and heat generation of the arithmetic device 100A.
  • the CPU core 1 may be switched to the PG state during the processing. By switching to the PG state frequently, power consumption and heat generation can be suppressed.
  • Instruction 4 is an instruction that can execute processing in parallel and requires high-speed processing. For example, there are cases where scientific and technological calculations are performed (in the figure, calculation) and the like. In such a case, the CPU core 2 and the GPU core 2 are operated, and the other cores are put in the PG state. The CPU core 2 transfers input data to the memory on the GPU core 2 and calls a kernel program to cause the GPU core 2 to execute processing. When the processing is completed, the output data is transferred to the memory on the CPU core. The CPU core 2 may execute part of the processing. The CPU core 2 and the GPU core 2 have high processing performance, and the other cores are in the PG state and do not consume power.
  • the instruction 4 can be executed at high speed while suppressing the power consumption of the arithmetic device 100A.
  • the CPU core 2 may be switched to the PG state during the processing. By switching to the PG state frequently, power consumption and heat generation can be suppressed.
  • Instruction 5 is an instruction that requires a larger amount of operation and faster processing than Instruction 4.
  • these cores generate heat, and the temperature of the substrate rises, which may cause the arithmetic device to be broken.
  • driving cooling in the figure
  • it is effective to perform driving (cooling in the figure) that can suppress the temperature rise of the substrate. For example, frequent switching between the PG state and the state in which the power supply voltage is supplied to all the cores (CPU core 1, CPU core 2, GPU core 1, and GPU core 2) suppresses heat generation, You can keep executing the instruction.
  • the core combination to be used is appropriately selected and the cores not selected are PG By setting the state, it is possible to execute an instruction at high speed while suppressing power consumption.
  • FIGS. 6A and 6B in the case of using a plurality of CPU cores or a plurality of GPU cores according to the temperature of the substrate, it is possible to switch from the operation state to the PG state and to perform the operation from the PG state It is a figure explaining operation about switching of.
  • FIG. 6A shows an example of how the two CPU cores (CPU Core 1 and CPU Core 2) operate to switch between the operation state and the PG state.
  • supply of power supply voltage to the CPU Core 1 is performed to make calculation possible (CPU Core 1 Exe.)
  • Supply of power supply voltage to the CPU Core 2 is stopped, and PG is set.
  • the horizontal axis represents time
  • the vertical axis represents the surface temperature of the area where the CPU core is arranged.
  • the heat is generated around the area where the CPU Core1 is arranged.
  • the heat increases the temperature of the area where the CPU Core 1 is arranged.
  • T th the temperature of the area where the CPU Core 1 is arranged reaches the threshold temperature T th .
  • the CPU Core 2 switches from the PG state to the state of supplying the power supply voltage, and switches to the standby state for calculation (CPU Core 2 Exe.).
  • the computing capacity of the CPU Core1 is preferably smaller than that of the CPU Core2.
  • the CPU Core 2 is configured to apply the DVFS technology to improve the computing capacity over the CPU Core 1.
  • the heat increases the temperature of the area where the CPU Core 2 is arranged. While the temperature of the area where the CPU Core 2 is arranged rises, by setting the CPU Core 1 in the PG state, the area where the CPU Core 1 is arranged can be cooled. Therefore, the temperature rise of CPU Core2 can be suppressed. As a result, since the temperature rise can be suppressed in the entire arithmetic device, the cooling mechanism such as the fan can be reduced. Then, when the temperature of the area where the CPU Core 2 is arranged reaches the threshold temperature T th , the CPU Core 1 switches from the PG state to the state of supplying the power supply voltage, and switches to the standby state for performing computation (CPU Core 1 Exe. ).
  • the temperature of the area where the CPU Core 1 is arranged rises again.
  • the area where the CPU Core 2 is arranged can be cooled. Therefore, the temperature rise of CPU Core1 can be suppressed.
  • the cooling mechanism such as the fan can be reduced.
  • FIG. 6 (B) shows an example of how to operate by switching the operation state and the PG state of two GPU cores (GPU Core 1 and GPU Core 2).
  • the power supply voltage is supplied to the GPU Core 1 and the calculation can be performed (GPU Core 1 Exe.), And the supply of the power supply voltage to the GPU Core 2 is stopped to set the PG state.
  • the horizontal axis represents time
  • the vertical axis represents the surface temperature of the area where the GPU core is arranged.
  • GPU Core1 since current flows by operation, heat is generated centering on the area where GPU Core1 is arranged. The heat raises the temperature of the arranged area of GPU Core1.
  • T th the threshold temperature
  • the calculation using GPU Core 1 can reduce the amount of calculation compared to the calculation using GPU Core 2. Therefore, reducing the power consumption, suppressing the heat generation, and switching to the PG state can be reduced by using the GPU Core 1 more positively than the GPU Core 2.
  • the heat raises the temperature of the arranged area of GPU Core 2. While the temperature of the area where the GPU Core 2 is arranged rises, by setting the GPU Core 1 in the PG state, the area where the GPU Core 1 is arranged can be cooled. Therefore, the temperature rise of GPU Core2 can be suppressed. As a result, since the temperature rise can be suppressed in the entire arithmetic device, the cooling mechanism such as the fan can be reduced. Then, when the temperature of the area where the GPU Core 2 is arranged reaches the threshold temperature T th , the GPU Core 1 switches from the PG state to the state of supplying the power supply voltage, and switches to the standby state for performing computation (GPU Core 1 Exe. ).
  • the supply of power supply voltage to the GPU Core 2 is stopped and the PG state is established (GPU Core 2 PG) . Then, the operation is started on GPU Core1.
  • the GPU Core 1 generates heat around a region where the GPU Core 1 is disposed because current flows by operation.
  • the GPU Core 1 is switched from the PG state to the state of supplying the power supply voltage in a period t4 illustrated in FIG. 6B, the heat generation is small because the GPU Core 1 is in the standby state.
  • the heat again raises the temperature of the area where the GPU Core 1 is arranged. While the temperature of the area where the GPU Core 1 is arranged rises, the area where the GPU Core 2 is arranged can be cooled by setting the GPU Core 2 to the PG state. Therefore, the temperature rise of GPU Core1 can be suppressed. As a result, since the temperature rise can be suppressed in the entire arithmetic device, the cooling mechanism such as the fan can be reduced.
  • FIG. 7 shows a part of calculation of a program executed by CPU core 1 (or CPU core 2; hereinafter described as CPU core 1 in the description of FIG. 7) as GPU core 1 (or GPU core 2; in the description of FIG. 7 below)
  • FIG. 6 is a diagram for explaining an example of the operation when executed by the GPU core 1).
  • a host program is executed by the CPU core 1 (CPU Core 1) (step S1).
  • the GPU core 1 GPU Core 1
  • the PG state state in which the supply of the power supply voltage is stopped).
  • the CPU core 1 secures the data area on the device memory when confirming an instruction to secure the data area required for performing computation using the GPU in the device memory (step S2) (Step S3).
  • the CPU core 1 transmits input data from the main memory to the device memory (step S4).
  • the device memory receives the input data, and stores the input data in the area secured at step S2 (step S5).
  • step S6 When the CPU core 1 confirms the instruction to start the kernel program (step S6), the GPU core 1 is switched from the PG state to the state of performing the operation (the state where the power supply voltage is supplied), and the kernel program is executed Is started (step S7).
  • the CPU core 1 may be switched from the calculation state to the PG state (step S8). In that case, the CPU core 1 is switched from the PG state to the state in which calculation is performed immediately before the GPU core ends the execution of the kernel program (step S9).
  • the CPU core 1 By setting the CPU core 1 to the PG state in the period from step S8 to step S9, it is possible to suppress power consumption and heat generation of the entire arithmetic device.
  • step S10 When the GPU core 1 finishes executing the kernel program, output data is stored in the device memory (step S10). After that, the GPU core 1 is switched from the state in which the operation is performed to the PG state.
  • step S11 After completion of execution of the kernel program, when the CPU core 1 confirms an instruction to transmit the output data stored in the device memory to the main memory (step S11), the above output data is transmitted to the main memory , And stored in the main memory (step S12).
  • step S13 When the CPU core 1 confirms the instruction to release the data area secured on the device memory (step S13), the area secured on the device memory is released (step S14).
  • step S1 By repeating the above-described operations from step S1 to step S14, while suppressing power consumption and heat generation of the CPU core 1 and the GPU core 1, the GPU core 1 executes part of the calculation of the program executed by the CPU core 1 can do.
  • FIG. 8 shows a GPU core in the case where a part of the operation of the program executed by the CPU core 1 (or the CPU core 2; hereinafter explained as the CPU core 1 in the description of FIG. It is a figure explaining an example of operation at the time of changing a GPU core used for operation according to a kind of operation to perform.
  • one GPU core for example, GPU core 1
  • the other GPU core for example, GPU core 2
  • step S1 to step S5 shown in FIG. 7 The description of the operation from step S1 to step S5 shown in FIG. 7 can be referred to for the operation from step S21 to step S25 shown in FIG.
  • the CPU core 1 (CPU Core 1) confirms an instruction to start a kernel program (step S26)
  • the CPU core 1 selects an optimal GPU core for executing an operation according to the type of kernel program.
  • the selected GPU core is switched from the PG state to the operation state to start execution of the kernel program.
  • the GPU core is switched from the operation state to the PG state.
  • the CPU core 1 may be in the PG state while the GPU core is performing calculations. With this configuration, power consumption and heat generation can be suppressed in the entire arithmetic device.
  • GPU core 1 GPU Core 1
  • execution of the kernel program is started (step S29).
  • output data is stored on the device memory (step S31).
  • the GPU core 1 is switched from the state in which the operation is performed to the PG state.
  • GPU core 2 GPU Core 2
  • execution of the kernel program is started (step S30).
  • output data is stored on the device memory (step S32). After that, the GPU core 2 is switched from the operation state to the PG state.
  • step S33 to step S36 shown in FIG. 8 the description of the operations from step S11 to step S14 shown in FIG. 7 can be referred to.
  • part of the operation of the program executed by the CPU core 1 can be performed by the GPU core.
  • FIG. 9 is an example of a block diagram for describing a more specific configuration of the arithmetic device.
  • the arithmetic device 100D illustrated in FIG. 9 includes a CPU 110, a GPU 120, an on-chip memory 131, a direct memory access controller (DMAC) 141, a power supply circuit 160, a power management unit (PMU) 142, a security circuit 147, a memory controller 143, and a DDR SDRAM.
  • DMAC direct memory access controller
  • PMU power management unit
  • security circuit 147 a memory controller 143
  • a DDR SDRAM DDR SDRAM.
  • controller 144 USB (Universal Serial Bus) interface circuit 145
  • display interface circuit 146 bridge circuit 150
  • interrupt control circuit 151 interface circuit 152
  • battery control circuit 153 battery control circuit 153
  • ADC Having nalog-to-digital converter
  • DAC Digital-to-analog converter
  • the CPU 110 has a CPU core 111, an instruction cache 112, a data cache 113, and a bus interface circuit 114.
  • the GPU 120 includes a GPU core 121, an on-site memory 122, an ADC / DAC 123, and a control circuit 124.
  • the CPU core 111 has a plurality of CPU cores.
  • the CPU core 11A and the CPU core 11B may be provided.
  • the instruction cache 112 may have a circuit configuration that temporarily stores instructions to be executed by the CPU core 11A and the CPU core 11B.
  • the data cache 113 may have a circuit configuration that temporarily stores data processed by the CPU core 11A and the CPU core 11B or data obtained by the processing.
  • the bus interface circuit 114 may have a circuit configuration capable of transmitting and receiving signals such as data and an address to a bus for connecting the CPU 110 to other circuits in the arithmetic device.
  • the GPU core 121 has a plurality of GPU cores.
  • the configuration may include the GPU core 33A and the GPU core 33B.
  • the on-site memory 122 may have a circuit configuration that temporarily stores data processed by the GPU core 33A and the GPU core 33B and a program executed by the GPU 30.
  • the ADC / DAC 123 may have a circuit configuration for mutually converting analog values and digital values of data to be processed.
  • the control circuit 124 may have a circuit configuration for controlling a circuit in the GPU 120.
  • the high-speed bus 140A includes various signals between the CPU 110, GPU 120, on-chip memory 131, DMAC 141, power management unit 142, security circuit 147, memory controller 143, DDR SDRAM controller 144, USB interface circuit 145, and display interface circuit 146. It is a bus for high-speed transmission and reception. As one example, Advanced Microcontoroller Bus Artitecture (AMBA) -Advanced High-perfermancy Bus (AHB) can be used as a bus.
  • AMBA Advanced Microcontoroller Bus Artitecture
  • HAB Advanced High-perfermancy Bus
  • the on-chip memory 131 has a circuit configuration for storing data or a program input / output to / from a circuit included in the arithmetic device 100D, such as the CPU 110 or the GPU 120.
  • the DMAC 141 is a direct memory access controller. By including the DMAC 141, peripheral devices other than the CPU 110 can access the on-chip memory 131 without going through the CPU 110.
  • the power management unit 142 has a circuit configuration for controlling power gating of circuits such as a GPU core and a CPU core of the arithmetic device 100D.
  • the security circuit 147 has a circuit configuration for enhancing the confidentiality of a signal, such as encrypting and transmitting / receiving a signal between the arithmetic device 100D and an external circuit.
  • the memory controller 143 has a circuit configuration for writing or reading a program to be executed by the CPU 110 or the GPU 120 from program memory outside the arithmetic device 100D.
  • the DDR SDRAM controller 144 has a circuit configuration for writing or reading data to / from a main memory such as a DRAM external to the arithmetic device 100D.
  • the USB interface circuit 145 has a circuit configuration for transmitting and receiving data via a USB terminal and a circuit outside the computing device 100D.
  • the display interface circuit 146 has a circuit configuration for transmitting and receiving data to and from a display device outside the computing device 100D.
  • the power supply circuit 160 is a circuit for generating a voltage used in the arithmetic device 100D. For example, it is a circuit that generates a negative voltage for stabilizing the electrical characteristics, which is given to the back gate of the os transistor.
  • the low speed bus 140B is a bus for transmitting and receiving various signals between the interrupt control circuit 151, the interface circuit 152, the battery control circuit 153, and the ADC / DAC interface circuit 154 at low speed.
  • AMBA-APB Advanced Peripheral Bus
  • Transmission and reception of various signals between the high-speed bus 140A and the low-speed bus 140B are performed via the bridge circuit 150.
  • the interrupt control circuit 151 has a circuit configuration for performing interrupt processing in response to a request received from a peripheral device.
  • the interface circuit 152 has a circuit configuration for causing an interface such as a Universal Asynchronous Receiver / Transmitter (UART), an Inter-Integrated Circuit (I2C), or a Serial Peripheral Interface (SPI) to function.
  • UART Universal Asynchronous Receiver / Transmitter
  • I2C Inter-Integrated Circuit
  • SPI Serial Peripheral Interface
  • the battery control circuit 153 has a circuit configuration for transmitting and receiving data relating to charging and discharging of a battery outside the arithmetic device 100D.
  • the ADC / DAC interface circuit 154 has a circuit configuration for transmitting / receiving data to / from a device that outputs an analog signal such as a MEMS (Micro Electro Mechanical Systems) device outside the arithmetic device 100D.
  • MEMS Micro Electro Mechanical Systems
  • FIGS. 10A and 10B are diagrams showing an example of the arrangement of circuit blocks when converted to SoC. Like the arithmetic device 100D illustrated in FIG. 10A, the components illustrated in the block diagram of FIG. 9 can be arranged by dividing an area on a chip.
  • the on-chip memory 131 described in FIG. 9 and the on-site memory 122 included in the GPU 120 can be configured by an os memory, for example, a NOSRAM or the like. That is, the on-chip memory 131 and the on-site memory 122 have the same circuit configuration. Therefore, it is possible to integrate the on-chip memory 131 and the on-site memory 122 and arrange them in the same area as in the arithmetic device 100E illustrated in FIG. 10B when the SoC is formed.
  • a novel arithmetic device and an electronic device can be provided.
  • an arithmetic device and an electronic device with low power consumption can be provided.
  • a computing device and an electronic device which can operate at high speed can be provided.
  • an arithmetic device and an electronic device capable of suppressing heat generation can be provided.
  • the CPU 190 includes a CPU core (CPU Core) 200, an L1 (level 1) cache memory device (L1 Cache) 202, an L2 cache memory device (L2 Cache) 203, a bus interface unit (Bus I / F) 205, and power switches 210 to 212. , Level shifter (LS) 214.
  • the CPU core 200 has a flip flop 220.
  • the CPU core 200, the L1 cache memory device 202, and the L2 cache memory device 203 are electrically connected to each other by the bus interface unit 205.
  • the PMU 193 generates a clock signal GCLK1 and various PG (power control) control signals (PG control signals) according to signals such as an interrupt signal (Interrupts) input from the outside and a signal SLEEP1 issued by the CPU 190.
  • the clock signal GCLK1 and the PG control signal are input to the CPU 190.
  • the PG control signal controls the power switches 210 to 212 and the flip flop 220.
  • the power switches 210 and 211 respectively control the supply of the voltages VDDD and VDD1 to the virtual power supply line V_VDD (hereinafter referred to as a V_VDD line).
  • Power switch 212 controls supply of voltage VDDH to virtual power supply line V_VDH (hereinafter referred to as V_VDH line).
  • the voltage VSSS is input to the CPU 190 and the PMU 193 without passing through the power switch.
  • the voltage VDDD is input to the PMU 193 without passing through the power switch.
  • the voltages VDDD and VDD1 are drive voltages for the CMOS circuit.
  • the voltage VDD1 is lower than the voltage VDDD and is a drive voltage in the sleep state.
  • the voltage VDDH is a drive voltage for the os transistor, which is higher than the voltage VDDD.
  • Each of the L1 cache memory device 202, the L2 cache memory device 203, and the bus interface unit 205 has at least one power domain capable of power gating.
  • One or more power switches are provided in the power gateable power domain. These power switches are controlled by the PG control signal.
  • the flip flop 220 is used as a register.
  • the flip flop 220 is provided with a backup circuit.
  • the backup circuit is configured of the os memory.
  • the flip flop 220 will be described.
  • FIG. 12 shows an example of the circuit configuration of the flip flop 220.
  • the flip flop 220 includes a scan flip flop (Scan Flip-flop) 221 and a backup circuit (Buckup Circuit) 222.
  • the scan flip flop 221 includes nodes D1, Q1, SD, SE, RT, CK, and a clock buffer circuit 221A.
  • the node D1 is a data (data) input node
  • the node Q1 is a data output node
  • the node SD is an input node for scan test data.
  • Node SE is an input node of signal SCE.
  • the node CK is an input node of the clock signal GCLK1.
  • the clock signal GCLK1 is input to the clock buffer circuit 221A.
  • the analog switch of the scan flip flop 221 is electrically connected to the nodes CK1 and CKB1 of the clock buffer circuit 221A.
  • the node RT is an input node of a reset signal.
  • the signal SCE is a scan enable signal and is generated by the PMU 193.
  • PMU 193 generates signals BK and RC.
  • Level shifter 214 level shifts signals BK and RC to generate signals BKH and RCH.
  • Signals BK and RC are backup signals and recovery signals.
  • the circuit configuration of the scan flip flop 221 is not limited to that shown in FIG.
  • the flip flops provided in the standard circuit library can be applied.
  • the backup circuit 222 includes nodes SD_IN and SN11, transistors M11 to M13, and a capacitive element C11.
  • the node SD_IN is an input node of scan test data, and is electrically connected to the node Q1 of the scan flip flop 221.
  • the node SN11 is a holding node of the backup circuit 222.
  • the capacitive element C11 is a holding capacitance for holding the voltage of the node SN11.
  • Transistor M11 controls conduction between node Q1 and node SN11.
  • Transistor M12 controls conduction between node SN11 and node SD.
  • Transistor M13 controls conduction between nodes SD_IN and SD. The on / off of the transistors M11 and M13 is controlled by the signal BKH, and the on / off of the transistor M12 is controlled by the signal RCH.
  • the transistors M11 to M13 are os transistors having a back gate similarly to the transistor M1 described later.
  • the back gates of the transistors M11 to M13 are electrically connected to the power supply line supplying the voltage VBG1.
  • At least the transistors M11 and M12 be os transistors.
  • the feature of the os transistor that the off current is extremely small can suppress the voltage drop of the node SN11, and the backup circuit 222 has non-volatile characteristics because it consumes little power for data retention. Since data is rewritten by charging / discharging of the capacitive element C11, the number of times of rewriting is in principle not limited in the backup circuit 222, and data can be written and read with low energy.
  • the backup circuit 222 can be stacked over the scan flip-flop 221 formed of a silicon CMOS circuit.
  • the backup circuit 222 Since the number of elements of the backup circuit 222 is very small compared to the scan flip flop 221, there is no need to change the circuit configuration and layout of the scan flip flop 221 in order to stack the backup circuit 222. That is, the backup circuit 222 is a highly versatile backup circuit. Further, since the backup circuit 222 can be provided in the area where the scan flip flop 221 is formed, the area overhead of the flip flop 220 can be made zero even if the backup circuit 222 is incorporated. Therefore, by providing the backup circuit 222 in the flip flop 220, power gating of the CPU core 200 becomes possible. Since the energy required for power gating is small, the CPU core 200 can be power gated with high efficiency.
  • the backup circuit 222 By providing the backup circuit 222, a parasitic capacitance due to the transistor M11 is added to the node Q1, but the parasitic capacitance due to the logic circuit connected to the node Q1 is smaller than the parasitic capacitance due to the logic circuit. There is no impact. That is, even if the backup circuit 222 is provided, the performance of the flip flop 220 does not substantially decrease.
  • ⁇ Low power consumption state As the low power consumption state of the CPU core 200, for example, a clock gating state, a power gating state, and a hibernation state can be set.
  • the PMU 193 selects the low power consumption mode of the CPU core 200 based on the interrupt signal, the signal SLEEP1, and the like. For example, when transitioning from the normal operation state to the clock gating state, the PMU 193 stops generating the clock signal GCLK1.
  • the PMU 193 when transitioning from the normal operation state to the hibernation state, the PMU 193 performs voltage and / or frequency scaling. For example, when performing voltage scaling, the PMU 193 turns off the power switch 210 and turns on the power switch 211 in order to input the voltage VDD 1 to the CPU core 200.
  • the voltage VDD1 is a voltage that does not cause the data of the scan flip flop 221 to disappear.
  • PMU 193 reduces the frequency of clock signal GCLK1.
  • FIG. 13 An example of the power gating sequence of the CPU core 200 is shown in FIG. In FIG. 13, t1 to t7 represent time.
  • Signals PSE 0 to PSE 2 are control signals of the power switches 210 to 212, and are generated by the PMU 193. When the signal PSE0 is "H” / "L", the power switch 210 is on / off. The same applies to the signals PSE1 and PSE2.
  • the transistor M11 of the backup circuit 222 is turned on, and the data of the node Q1 of the scan flip-flop 221 is written to the node SN11 of the backup circuit 222. If the node Q1 of the scan flip-flop 221 is "L”, the node SN11 remains “L”, and if the node Q1 is "H”, the node SN11 becomes "H”.
  • the PMU 193 sets the signals PSE 2 and BK to “L” at time t 2 and sets the signal PSE 0 to “L” at time t 3. At time t3, the state of the CPU core 200 shifts to the power gating state. Note that the signal PSE0 may fall at the timing when the signal BK falls.
  • the PMU 193 sets the signal PSE0 to “H” to shift from the power gating state to the recovery state.
  • the PMU 193 sets the signals PSE2, RC, and SCE to "H".
  • the transistor M12 is turned on, and the charge of the capacitive element C11 is distributed to the node SN11 and the node SD. If the node SN11 is "H”, the voltage of the node SD rises. Since the node SE is "H”, the data of the node SD is written to the input side latch circuit of the scan flip flop 221. When clock signal GCLK1 is input to node CK at time t6, data of the input-side latch circuit is written to node Q1. That is, the data of the node SN11 is written to the node Q1.
  • the PMU 193 sets the signals PSE2, SCE, and RC to "L", and the recovery operation ends.
  • the backup circuit 222 using the os transistor is very suitable for normally-off computing because both dynamic and static low power consumption are small. Even if the flip flop 220 is mounted, the performance degradation of the CPU core 200 and the increase of the dynamic power can be hardly generated.
  • the CPU core 200 may have a plurality of power gatable power domains.
  • the plurality of power domains are provided with one or more power switches for controlling input of voltage.
  • the CPU core 200 may have one or more power domains in which power gating is not performed.
  • a power gating control circuit for controlling the flip flop 220 and the power switches 210 to 212 may be provided in a power domain in which power gating is not performed.
  • flip flop 220 is not limited to the CPU 190.
  • flip flop 220 can be applied to a register provided in a power domain capable of power gating.
  • an osAI chip an integrated circuit obtained by converting the arithmetic device described in the above embodiments into a SoC
  • an osAI chip an analog osAI chip
  • the analog osAI chip is an osAI chip (programmable osAI chip), which performs arithmetic processing (also referred to as digital operation) by holding digital values in a data holding circuit, which will be described later in the fourth embodiment. It can be a chip.
  • FCNN fully coupled neural network
  • FCNN has one hidden layer.
  • the number of units of the input layer, the hidden layer and the output layer is 1024, 128 and 32, respectively.
  • ReLU Rectified Linear Unit
  • the FCNN of the osAI chip 400 is applied to, for example, handwriting recognition and general purpose AI.
  • FIG. 14 is a functional block diagram showing a configuration example of the osAI chip 400.
  • the osAI chip (osAI chip) 400 shown in FIG. 14 includes a receiver (RX) 401, digital-analog converters (DACs) 403 and 404, product-sum operation circuit (MAC) arrays (shown as MAC) 405 and 406, and a gate driver (MAC).
  • RX receiver
  • DACs digital-analog converters
  • MAC product-sum operation circuit
  • MAC product-sum operation circuit
  • MAC gate driver
  • a gate driver 407, an analog-to-digital converter (ADC) 408, and a transmitter (TX) 409 are included.
  • the data transmission method of the osAI chip 400 is a differential transmission method.
  • a low voltage differential signaling (LVDS) receiver is used as the receiver 401, and an LVDS transmitter is used as the transmitter 409.
  • LVDS low voltage differential signaling
  • the reset signal reset_n resets the osAI chip 400.
  • Data in_w [7: 0] is learned data. For example, an 8-bit digital signal representing a weighting factor.
  • the DAC 404 converts the data in_w [7: 0] into analog data according to the enable signal en_la_w and the clock signal dclk_w.
  • the gate driver 407 controls the writing of analog data to the MAC array 405, 406.
  • the clock signal gclk, the pulse width control signal gpwc, and the start pulse signal gsp are input to the gate driver 407.
  • the data processed by the osAI chip 400 is 8-bit digital data, which is input by the differential transmission method.
  • an LVDS receiver is used as the receiver 401.
  • the receiver 401 converts the input data rx_dp [7: 0] and rx_dn [7: 0] into single-ended 8-bit data according to the differential clock signals rx_clp and rx_cln.
  • the DAC 403 converts this 8-bit data into analog data. Analog data output from the DAC 403 is sequentially written to the MAC array 405.
  • ⁇ MAC Array 405, 406> An exemplary circuit configuration of the MAC array 405 will be described with reference to FIG.
  • multiplication circuits 40 are provided in a matrix of 1024 rows and 144 columns.
  • the multiplication circuit 40 has the same circuit configuration as the os memory 382 of FIG. That is, the multiplication circuit 40 has both functions of an arithmetic circuit and a non-volatile local memory circuit that stores weighting factors.
  • the osAI chip 400 can implement massively parallel operation with a very small number of transistors compared to the GPU. The reduction in the number of transistors leads to downsizing of the osAI chip 400 and reduction in power consumption.
  • gate lines GL1 and data lines RX1, WD1, and RD1 are provided in accordance with the arrangement of the multiplying circuits 40.
  • the data line WD1 is a wiring for inputting weighting coefficient data to the multiplication circuit 40.
  • Analog data is input from the DAC 404 to the data line WD1.
  • the gate line GL1 is a signal line for selecting the multiplication circuit 40 to which weight coefficient data is input.
  • the gate line GL1 is driven by the gate driver 407.
  • the voltage of the holding node (gate of the read transistor) of the multiplication circuit 40 becomes the voltage Vw0 according to the weight coefficient data.
  • the data line RX1 is a wiring for input of data processed by the CFNN.
  • Analog data is input from the DAC 403 to the data line RX1.
  • the calculation result of the multiplication circuit 40 is read out to the data line RD1.
  • a current source 42 and an offset circuit 43 are electrically connected to the data line RD1.
  • the current I0 flowing through the multiplication circuit 40 is proportional to the product of the voltage Vw0 of the holding node and the voltage Vx0 of the data line RX1. That is, the current I0 represents the product of the weighting factor and the input data.
  • the current I1 is proportional to the product of the voltage Vw1 of the holding node and the voltage Vx1. That is, the multiplication circuit 40 can calculate the product of the weighting factor data and the input data.
  • the 1024 multiplication circuits 40 are electrically connected per data line RD1.
  • the current source 42 generates a reference current Iref.
  • the current Iout input to the offset circuit 43 is the difference between the reference current Iref and the current Imac.
  • the current Imac is the sum of the currents flowing through the 1024 multiplier circuits 40, and represents the product of the weighting factor and the input data.
  • the noise component of the current Iout can be reduced by taking the difference between the reference current Iref and Imac.
  • the offset circuit 43 converts the current Iout into a voltage Vout, and takes the difference between the reference voltage Vref and the voltage Vout. Thereby, the noise component of the voltage Vout is reduced.
  • the offset circuit 43 amplifies the differential voltage between Vref and Vout and outputs the amplified voltage to the activation function circuit 44.
  • the activation function circuit 44 outputs the processed data to the MAC array 406.
  • 16 of the 144 columns of the MAC array 405 do not contribute to the generation of the current Iout and hold reference data used for product-sum operations.
  • the MAC array 406 has the same configuration as the MAC array 405.
  • Multiplication circuits 40 are arranged in a matrix of 36 rows and 128 columns. In the MAC array 406, four out of 36 rows do not contribute to the generation of the current Iout, and are used to hold reference data.
  • the enable signal en_cm shown in FIG. 14 is an enable signal for the current source 42 of the MAC array 405, 406.
  • the enable signal en_abs is an enable signal for the offset circuit 43 of the MAC array 405, 406, the signals osp1, osn1, en_res1 are control signals of the offset circuit 43 of the MAC array 405, and the signals osp2, osn2, en_res2 are MAC array It is a control signal of the offset circuit 43 of 406.
  • ⁇ ADC 408, Transmitter 409> The analog data of 32 from the MAC array 406 is input in parallel to the ADC 408.
  • the ADC 408 includes a register in the output stage to perform serial-to-parallel conversion.
  • the ADC 408 outputs one channel of 8-bit digital data.
  • Signals clk_sar, res_ser, go and stby_adc are a clock signal for the ADC 408, a reset signal, an enable signal and a standby signal, respectively.
  • Signals dclk_p2s, en_p2s_per, and en_p2s_ser are a clock signal for a register, a latch signal, and an output enable signal, respectively.
  • the ADC 408 receives 32 analog data and outputs 8-bit digital data to the transmitter 409.
  • Signal stby_tx is a standby signal for transmitter 409.
  • the transmitter 409 converts 8-bit digital data into differential format data tx_dp [7: 0], tx_dn [7: 0] according to the signal dclk_p2s, and outputs the data dclk_p2s as differential clock signal tx_clp, tx_cln. Convert to and output.
  • the difference data tx_dp [7: 0] and tx_dn [7: 0] are 32 types of inference data acquired by the FCNN.
  • the multiplication circuit 40 Since the input and output data of the MAC arrays 405 and 406 are analog data, the number of wires of the MAC arrays 405 and 406 can be significantly reduced as compared to the case where input / output data is digital data.
  • the multiplication circuit 40 has both a multiplication function and a holding function of weight coefficient data, and therefore does not read data at the time of operation. That is, the multiplication circuit 40 has substantially no time penalty and power penalty for data transfer.
  • the GPU is known as a processor having a parallel processing architecture. Similarly to the CPU, in the GPU, data exchange between the operation unit and the memory unit is considered as a bottleneck of operation efficiency. On the other hand, the osAI chip 400 does not have such a problem.
  • the multiplication circuit 40 has the same circuit configuration as that of the 2T gain cell, and can perform multiplication of analog data with a small number of transistors. Therefore, by configuring the product-sum operation unit using a large number of multiplication circuits 40, it is possible to provide the osAI chip 400 capable of performing massively parallel processing with low power consumption. For example, when the number of multiplication circuits 40 is about 10 6 to 10 8 and the operating frequency is 3 MHz or 30 MHz, the computing performance of the osAI chip 400 is about 3 TOPS (Tera Operations Per Second) to 3 POPS (Peta OPS). is there.
  • Embodiment 4 Programmable os AI chip
  • the osAI chip 450 shown here can constitute a programmable neural network.
  • the format of data calculated by the osAI chip 450 is digital.
  • the arithmetic circuit of the osAI chip 450 has a dedicated non-volatile local memory circuit, and the non-volatile local memory is composed of the os memory.
  • the neural network configured on the osAI chip 450 can be used, for example, as various image processing (for example, noise removal, resolution enhancement), object recognition, and general purpose AI.
  • FIG. 16 is a functional block diagram showing a configuration example of the osAI chip 450.
  • the osAI chip (osAI chip) 450 includes a controller (Controller) 460, an I2C module (I2C) 462, a receiver (RX) 463, a transmitter (TX) 464, a data driver (Data driver) 466, and a word driver (Word driver) 467 Have.
  • the controller 460 includes an arithmetic circuit array 470, an arithmetic unit 471, an SRAM 472, selectors 474 and 475, and a demultiplexer 476.
  • the input data of the osAI chip 450 includes operation setting data (Operation setting data), learned data (Learned data), pipeline structure data (Pipeline construction data), and data to be processed by the arithmetic circuit array 470 (Input data). .
  • the learned data and pipeline structure data are input to the osAI chip 450 as configuration data of the controller 460.
  • Data sda is operation setting data in a serial format, and is written to the I2C module 462.
  • the I2C module 462 outputs the written operation setting data to the controller 460.
  • Signals i2c_clk, i2c_resetb, and scl are an I2C controller clock signal, an I2C reset signal, and an I2C clock signal, respectively.
  • the signals O_SAVE, O_LOAD, and OS_USE are used for backup control of operation setting data.
  • the data DATA0 is input to the data driver 466.
  • Data DATA0 is configuration data.
  • the data driver 466 outputs a signal nSTATUS.
  • the signal nSTATUS is a signal representing a configuration state.
  • Data din [7: 0] is single-ended input data and is input to the selector 474.
  • the receiver 463 has the same configuration as the receiver of the osAI chip 400, and according to the differential clock signals rx_clp and rx_cln, the differential input data rx_dp [7: 0] and rx_dn [7: 0] are single-ended data rx_ds [ Convert to 7: 0] and output to the selector 474.
  • the signals stby_rx and hpe_rx are standby signals of the receiver 463 respectively.
  • the signals nCONFIG and DCLK are input to the controller 460, and the controller 460 outputs the signal CONF_DONE.
  • Signals nCONFIG and DCLK are a configuration start signal and a configuration clock signal, respectively.
  • the signal CONF_DONE is a signal indicating that the configuration is completed.
  • Signals sys_clk, sys_resetb, user_resetb, and context_ex [5: 0] are a system clock signal, a system reset signal, a user reset signal, and an external context signal, respectively.
  • the signal data_en is a signal for setting a period for executing transmission of input data to the controller 460. These signals are input to the controller 460.
  • the controller 460 outputs signals State [2: 0] and substate [2: 0]. Signals State [2: 0] and substate [2: 0] indicate the internal state and substate of controller 460, respectively.
  • Output data of the selector 475 is input to the arithmetic circuit array 470.
  • the arithmetic circuit array 470 outputs the processed data to the arithmetic unit 471.
  • the output data of the calculation unit 471 is temporarily stored in the SRAM 472.
  • the data read from the SRAM 472 is output to the selector 475 and the demultiplexer 476.
  • the selector 475 outputs one of the output data of the selector 474 and the output data of the SRAM 472 to the arithmetic circuit array 470.
  • the demultiplexer 476 has a function of selecting an output format of data.
  • One output data of the demultiplexer 476 is output to the outside of the osAI chip 450 as single-ended data dout [7: 0].
  • the other output data is processed by the transmitter 464, converted into differential data tx_dp [7: 0], tx_dn [7: 0], and output to the outside of the osAI chip 450.
  • the arithmetic circuit array 470 will be described with reference to FIGS. 17 to 21. As shown in FIG. 17, in the arithmetic circuit array 470, a plurality of arithmetic circuits 61 and a plurality of switch circuits 62 are provided in a matrix. The arithmetic circuit 61 and the switch circuit 62 are programmable circuits. Arithmetic circuit 61 is configured in accordance with the processing contents of arithmetic circuit array 470. By changing the circuit configuration of the switch circuit 62 in accordance with the processing content of the arithmetic circuit array 470, the connection relationship of the arithmetic circuit 61 is changed.
  • FIG. 17 are the names of the wirings of the switch circuit 62, and represent the connection directions (upper, lower, left, right).
  • the arithmetic circuit 61 includes an input register 51, a memory circuit 52, a multiplying circuit 53, an adding circuit 54, output registers 55A and 55B, selectors 56A to 56D, and memory circuits 57A to 57C.
  • the memory circuits 52, 57A to 57C are nonvolatile local memory circuits of the arithmetic circuit 61, and os memory is applied.
  • Data sin is input to the input register 51.
  • the input register 51 holds data sin under control of the latch signal slat.
  • the input register 51 outputs the held data as data sot to the selector 56A.
  • selector 56A selects either data sin or data sout, and outputs the selected data as data sdata to multiplication circuit 53.
  • the data sot is output to the outside of the arithmetic circuit 61.
  • the memory circuit 52 receives the context signal context_W [1: 0].
  • the context signal context_W [1: 0] is an internal signal generated by decoding the signal context_ex [5: 0].
  • the memory circuit 52 stores a plurality of weight coefficient data.
  • the weighting factor data is written to the memory circuit 52 as configuration data. Configuration data is transmitted from the data driver 466.
  • the memory circuit 52 includes a flip flop 71, a decoder 72, memory cells 73_0 to 73_3, a transistor 77, and a latch circuit 78.
  • the memory cells 73_0 to 73_3 have the same circuit configuration as the os memory 383 (see FIG. 27C), and are gain cells formed of three os transistors.
  • the signals word0 to word3 are generated by the word driver 467.
  • One memory cell is selected by signals word0 to word3, and configuration data is written to the selected memory cell.
  • the flip flop 71 holds the context signal context_W [1: 0].
  • the decoder 72 decodes the context signal context_W [1: 0] to generate and output switching signals context_W0 to context_W3.
  • the switching signals context_W0 to context_W3 have a function of selecting a memory cell to which weight coefficient data is output.
  • the weight data read from the selected memory cell is output to the multiplication circuit 53 as data cmout.
  • the transistor 77 has a function of precharging the wiring from which the data cmout is read to the voltage Vpr. The transistor 77 precharges the wiring according to the signal prch.
  • FIG. 19B shows another configuration example of the memory cell.
  • the memory cell 74 shown in FIG. 19B is a modification of the memory cell 73_0, and a latch circuit formed of two inverter circuits is provided at the gate of the read transistor.
  • these inverter circuits are CMOS circuits formed of an n-channel Si transistor and a p-channel Si transistor.
  • FIG. 20 shows a configuration example of the memory circuit 57A.
  • the memory circuit 57A includes memory cells 91_0 and 91_1 and transistors 92_0, 92_1, and 93.
  • Configuration data configuration data
  • switching signals context_A0 and context_A1 switching signals context_A0 and context_A1
  • signals wordA0, wordB0, wordA1 and wordB1 are input to the memory circuit 57A.
  • Each of the memory cells 91_0 and 91_1 is configured by two os memories 382 (FIG. 27B).
  • the signal wordA0 is set to "H”
  • the signals wordB0, wordA1, and wordB1 are set to "L”.
  • the signal wordB0 is set to "H”
  • the signals wordA0, wordA1, and wordB1 are set to "L”.
  • One of the transistors 92_0 and 92_1 is turned on by the switching signals context_A0 and context_A1. For example, when the transistor 92_0 is turned on, a control signal of a logic according to data held by the memory cell 91_0 is output to the selector 56A.
  • Memory circuits 57B and 57C have the same circuit configuration as memory circuit 57A.
  • the multiplication circuit 53 calculates the product of the data sdata and the data cmout, and generates data mout representing the calculation result.
  • the data mout is output to the adder circuit 54 and the selector 56B.
  • Data ain is the output data of another arithmetic circuit 61 or the output data of the selector 475.
  • the adder circuit 54 calculates the sum of the data ain and the data mout, and generates data aout representing the calculation result.
  • the data aout is output to the selectors 56B and 56C.
  • the output register 55A holds output data of the selector 56B, and the output register 55B holds output data of the selector 56C.
  • the signal res_rg is a reset signal of the output registers 55A and 55B.
  • the output register 55A outputs the held data to the selector 56D.
  • Output data of the selector 56D or the output register 55B is output from the arithmetic circuit 61 as data acout.
  • the arithmetic circuit array can function as a product-sum operation device.
  • the output data of the arithmetic circuit array 470 is input to the arithmetic unit 471.
  • the computing unit 471 has a function of an activation function and / or a function of a pooling layer.
  • the switch circuit 62 will be described with reference to FIGS. 21 (A) and 21 (B). As shown in FIG. 21A, in the switch circuit 62, eight switch circuits 65 are provided.
  • the output wiring 66S for the data sot is electrically connected to any one of the wirings U, D, L, and R. The same applies to the output wiring 67A of the data acout.
  • the switch circuit 65 includes a flip flop 80, a decoder 81, memory cells 83_0 and 83_1, and a wiring 87.
  • the wiring 87 is any of the wirings L, R, U, and D.
  • FIG. 21B shows a switch circuit 65 for transmitting 4-bit data.
  • the flip flop 80 holds the context signal context_C.
  • the decoder 81 decodes the context signal context_C to generate switching signals context_C0 and context_C1. Signals context_C0 and word0 are input to the memory cell 83_0, and signals context_C1 and word1 are input to the memory cell 83_1.
  • the write transistor of the memory cell 83_0 is an os transistor having a back gate.
  • the transistors other than the write transistor are n-channel Si transistors having no back gate. Note that all the transistors of the memory cell 83_0 may be os transistors. The same applies to the memory cell 83_1.
  • the configuration data (configuration data) is written to the memory cell 83_0 by turning on the write transistor by the signal word0.
  • the memory cell 83_0 is selected by the switching signal context_C0, the connection state between the wiring 87 and the arithmetic circuit 61 is determined in accordance with the configuration data held by the memory cell 83_0.
  • the arithmetic circuit 61 and the switch circuit 62 incorporate a non-volatile local memory circuit, the arithmetic circuit 61 and the switch circuit 62 do not need to access a memory device external to the osAI chip 450 during arithmetic. Therefore, in the osAI chip 450 as well as the osAI chip 400, data exchange between the operation unit and the memory unit does not become a bottleneck of the operation efficiency. Since data exchange and arithmetic processing are sequentially performed between the arithmetic circuits 61, the arithmetic can be performed with high efficiency.
  • the arithmetic circuit 61 and the switch circuit 62 are programmable circuits of the multi-context method, it is possible to efficiently execute massively parallel arithmetic processing with less hardware resources. Also, various neural networks can be realized by the hardware of the osAI chip 450.
  • the L1 cache memory device 202 and the L2 cache memory device 203 are configured by the os memory.
  • the os memory refers to a memory in which an os transistor is used in a memory cell.
  • the L1 cache memory device 202 and the L2 cache memory device 203 are configured of NOSRAM (registered trademark) or OSSRAM.
  • the OSSRAM is an SRAM provided with a backup circuit composed of an os transistor.
  • NOSRAM registered trademark
  • OSSRAM is an SRAM provided with a backup circuit composed of an os transistor.
  • FIG. 22A is a block diagram showing a configuration example of the NOSRAM.
  • the NOSRAM 240 is provided with power domains 242 and 243, and power switches 245 to 247.
  • a memory cell array (Memory Cell Array) 250 is provided in the power domain 242, and a peripheral circuit of the NOSRAM 240 is provided in the power domain 243.
  • the peripheral circuit includes a control circuit (Control Circuit) 251, a row circuit (Row Circuit) 252, and a column circuit (Column Circuit) 253.
  • the voltages VDDD, VSSS, VDHW, VDHR, and VBG2, the clock signal GCLK2, the address signal Address, and the signals CE, WE, and PSE5 are input to the NOSRAM 240 from the outside.
  • Signals CE and WE are a chip enable signal and a write enable signal, respectively.
  • the signal PSE5 is generated by the PMU 193 and controls on / off of the power switches 245 to 247.
  • the power switches 245 to 247 control the input of the voltages VDDD, VDHW, and VDHR to the power domain 243, respectively.
  • the voltages, signals and the like input to the NOSRAM 240 are appropriately discarded according to the circuit configuration and operation method of the NOSRAM 240.
  • the power domain without power gating may be provided in the NOSRAM 240, and a power gating control circuit for generating the signal PSE5 may be provided.
  • the memory cell array 250 includes memory cells 260, a write word line WWL, a read word line RWL, a write bit line WBL, a read bit line RBL, and a source line SL.
  • the memory cell 260 is a 2T1C (2-transistor / 1-capacitance) type gain cell, and has a node SN1, transistors M1 and M2, and a capacitive element C1.
  • the transistor M1 is a write transistor and is an os transistor having a back gate.
  • the back gate of the transistor M1 is electrically connected to the wiring BGL2 which supplies the voltage VBG2.
  • the transistor M2 is a read transistor, and is a p-channel Si transistor.
  • Capacitive element C1 is a storage capacitor that holds the voltage of node SN1.
  • the voltages VDDD and VSSS are voltages representing data “1” and “0”.
  • the high level voltages of the write word line WWL and the read word RWL are VDHW and VDHR, respectively.
  • FIG. 23A A configuration example of the memory cell array 250 is shown in FIG. In the memory cell array 250 shown in FIG. 23A, one source line is supplied in two adjacent columns.
  • the number of rewrites in the memory cell 260 is not limited in principle, data rewrite can be performed with low energy, and power is not consumed for data retention.
  • the memory cell 260 can hold data for a long time because the transistor M1 is a very small off-current os transistor. Therefore, by configuring the L1 cache memory device 202 and the L2 cache memory device 203 with the NOSRAM 240, it is possible to make the L1 cache memory device 202 and the L2 cache memory device 203 a non-volatile low power consumption memory device.
  • the circuit configuration of the memory cell 260 is not limited to the circuit configuration of FIG.
  • the read transistor M2 may be an os transistor having a back gate or an n-channel Si transistor.
  • the memory cell 260 may be a 3T gain cell.
  • FIGS. 23B and 23C show examples of 3T-type gain cells.
  • the memory cell 262 shown in FIG. 23B includes transistors M3 to M5, a capacitive element C3, and a node SN3.
  • the transistors M3 to M5 are a write transistor, a read transistor, and a selection transistor.
  • the transistor M3 is an os transistor having a back gate
  • the transistors M4 and M5 are p-channel Si transistors.
  • the transistors M4 and M5 may be composed of an n-channel Si transistor or an os transistor having a back gate.
  • the three transistors are formed of os transistors having back gates.
  • the node SN3 is a holding node.
  • Capacitive element C3 is a holding capacitance for holding the voltage of node SN3.
  • the storage capacitor may be configured by the gate capacitance of the transistor M4 or the like without intentionally providing the capacitive element C3.
  • the wiring PDL is a wiring replacing the source line SL, and a fixed voltage (for example, voltage VDDD) is input to the wiring PLD.
  • the control circuit 251 has a function of controlling the overall operation of the NOSRAM 240. For example, the control circuit 251 performs a logical operation on the signals CE and WE to determine whether the external access is a write access or a read access.
  • the row circuit 252 has a function of selecting the write word line WWL and the read word line RWL of the selected row designated by the address signal Address.
  • the column circuit 253 has a function of writing data to the write bit line WBL of the column designated by the address signal, and a function of reading data from the read bit line RBL of the column.
  • FIG. 24 is a timing chart showing an operation example of the NOSRAM 240.
  • the power switches 245 to 247 are on, and voltages VDDD, VDHW, and VDHR are input to the power domain 243.
  • the NOSRAM 240 performs a read operation.
  • the column circuit 253 precharges the bit line RBL to the voltage VSSS, and then sets the source line SL to “H”. Then, word line RWL of the row selected by row circuit 252 attains "L”.
  • the memory cell 260 in the selected row holds data “0”
  • the voltage VSSS is input to the gate of the transistor M2, so a large current flows between the source and drain of the transistor M2. Therefore, bit line RBL is charged quickly, and the potential of bit line RBL rises.
  • the bit line RBL maintains the precharge voltage (VSSS).
  • the PMU 193 turns off the power switches 245 to 247 and stops the input of the clock signal GCLK2. As a result, the power domain 243 is power gated, and standby power of the NOSRAM 240 can be reduced.
  • the power domain 301 is a power domain that is not power gated, and a power gating control circuit 330 is provided.
  • the power domains 302 and 303 are power gatable power domains.
  • the power domain 302 is provided with a memory cell array 320, and the power domain 303 is provided with a control circuit 331, a row circuit 332, a column circuit 333, and a backup and recovery driver 335.
  • the memory cell array 320 has cells 270, word lines WL, bit lines BL and BLB, and gate lines OGL.
  • the bit lines BL and BLB can also be called local bit lines.
  • a pair of wires formed by the bit lines BL and the bit lines BLB provided in the same column may be called a bit line pair (BL, BLB).
  • VDDD voltages VDDD, VSSS, VDDM, VDML, VSSM, VDHB, VBG3, a clock signal GCLK3, an address signal Address, and signals RST, CE, GW, BW are input.
  • Signals RST, CE, GW, and BW are a reset signal, a chip enable signal, a global write enable signal, and a byte write enable signal, respectively.
  • the control circuit 331 controls the OSSRAM 300 based on these signals.
  • the control circuit 331 may be provided with a register for temporarily storing an input signal.
  • the row circuit 332 has a function of selecting the word line WL of the selected row designated by the address signal Address.
  • the column circuit 333 has a function of writing data in a bit line pair (BL, BLB) of a column designated by an address signal, and a function of reading data from the bit line pair (BL, BLB).
  • each circuit, each signal, and each voltage can be appropriately discarded as needed. Alternatively, other circuits or other signals may be added.
  • the structure of the input signal and the output signal of the OSSRAM 300 is set based on the operation mode of the OSSRAM 300, the configuration of the memory cell array 320, and the like.
  • the power gating control circuit 330 generates signals PSE11 to PSE13 and control signals for the row circuit 332, the column circuit 333, and the backup and recovery driver 335 based on the PG control signal generated by the PMU 193. Signals PSE11 to PSE13 control on / off of the power switches 310 to 314.
  • the power switches 310, 311 control the input of the voltages VDDD, VDHB to the power domain 303, respectively.
  • the power switches 312 to 314 control inputs of the voltages VDDM, VDML, and VSSM to the power domain 302, respectively.
  • FIG. 26A shows a circuit configuration example of the cell 270.
  • the cell 270 includes a memory cell 271 and a backup circuit 272.
  • the memory cell 271 has the same circuit configuration as a standard 6T (transistor) SRAM cell, and includes a bistable circuit 275 and transistors MT1 and MT2.
  • the bistable circuit 275 is electrically connected to a word line WL, bit lines BL and BLB, virtual power supply lines V_VDM (hereinafter referred to as V_VDM lines), and V_VSM (hereinafter referred to as V_VSM lines).
  • the V_VDM line is a virtual power supply line whose input of voltage is controlled by the power switches 312 and 313, and the V_VSM line is a virtual power supply line whose input of voltage is controlled by the power switch 314.
  • the voltage VDHB is a high level voltage of the gate line OGL, which is higher than the voltage VDDM.
  • the bistable circuit 275 is a latch circuit formed of two CMOS inverter circuits. Nodes Q and Qb are connections between input terminals and output terminals of two CMOS inverters, respectively, and are nodes for holding complementary data.
  • the bistable circuit 275 becomes stable when the node Q / Qb becomes "H” / "L” or the node Q / Qb becomes "L” / "H”.
  • the transistors MT1 and MT2 are transfer transistors. The conduction state between bit line BL and node Q is controlled by transistor MT1, and the conduction state between bit line BLB and node Qb is controlled by transistor MT2.
  • the backup circuit 272 is a circuit for backing up data of the memory cell 271. Providing the backup circuit 272 in each cell 270 enables power gating of the power domain 302.
  • the backup circuit 272 includes transistors M21 and M22 and capacitive elements C21 and C22. That is, the backup circuit 272 has two 1T1C type memory cells, and the holding nodes of these memory cells are the nodes SN21 and SN22.
  • the transistors M21 and M22 are os transistors having back gates, and the voltage VBG3 is input to these back gates. Since the transistors M21 and M22 are os transistors, the backup circuit 272 can hold data for a long time. Since the transistors M21 and M22 are os transistors, the backup circuit 272 can be stacked on the memory cell 271 made of a Si transistor, so that the area overhead of the cell 270 due to the provision of the backup circuit 272 can be suppressed. it can.
  • the OSSRAM 300 has four types of low power consumption states: (1) bit line floating state, (2) inactive state, (3) cell array domain PG state, and (4) all domain PG state.
  • the power gating control circuit 330 manages the operation of the OSSRAM 300 in the low power consumption state based on the PG signal of the PMU 193 or the like.
  • Bit line floating state In the bit line floating state, the bit line pair (BL, BLB) is brought into the floating state. The data in the memory cell 271 is not lost.
  • the power domain 302 In the sleep state, the power domain 302 is supplied with a voltage VDML lower than the voltage VDDM.
  • the voltage VDML is a size that does not cause the data in the memory cell 271 to disappear.
  • the bit line pair (BL, BLB) is in a floating state.
  • Cell array domain PG state Cell array domain PG state
  • the power switches 312 to 314 are turned off to stop the supply of the voltages VDDM, VDML, and VSSM to the power domain 302.
  • the bit line pair (BL, BLB) is in a floating state. The data in the memory cell 271 is lost.
  • the all-domain PG state is a state in which power gating is performed on all domains that can be power gated.
  • the power switches 310 to 314 are off.
  • the four types of low power consumption states differ in the profit and loss branching time (BET) at which the power consumption reduction effect can be obtained.
  • BET profit and loss branching time
  • ⁇ Power gating sequence> An example of a power gating sequence for the power domain 302 is shown in FIG. In FIG. 26 (B), t1, t2, etc. represent time.
  • the state of the OSSRAM 300 is a normal operation state (write state or read state).
  • the OSSRAM 300 performs the same normal operation as the single port SRAM.
  • the power switches 310 to 312, 314 are on, and the power switch 313 is off.
  • the backup operation starts at time t1.
  • the backup and recovery driver 335 sets all the wiring OGL to “H”.
  • node Q / Qb is "H” / "L”
  • node SN21 / SN22 is "L” / "H”. Therefore, when transistors M21 and M22 are turned on, the voltage of node SN21 Increases from VSSM to VDDM, and the voltage of the node SN22 drops from VDDM to VSSM.
  • the backup operation is completed by setting the wiring OGL to "L” at time t2. Data of node Q / Qb at time t1 is written to node SN21 / SN22.
  • the power gating control circuit 330 turns the signal PSE12 to "L" to turn off the power switches 312 and 314, whereby power gating of the power domain 302 is started.
  • the memory cell 271 becomes inactive. Although the data in the memory cell 271 is lost, the backup circuit 272 keeps holding the data.
  • the bit line pair (BL, BLB) is in a floating state.
  • the power gating control circuit 330 transmits a control signal for that purpose to the column circuit 333.
  • the row circuit 332, the column circuit 333, and the backup and recovery driver 335 perform the recovery operation according to the control signal of the power gating control circuit 330.
  • bistable circuit 275 functions as a sense amplifier for detecting data of nodes Q / Qb.
  • the reset operation of the nodes Q and Qb is performed.
  • the column circuit 333 performs a precharge operation of all bit line pairs (BL, BLB). All bit line pairs (BL, BLB) are precharged to voltage Vpr2.
  • Row circuit 332 brings all word lines WL into a selected state.
  • the V_VDM line and the V_VSM line are precharged to the voltage Vpr2, and the voltages of the nodes Q and Qb are fixed to Vpr2.
  • the backup and recovery driver 335 sets all the wiring OGL to "H".
  • the transistors M21 and M22 are turned on.
  • the charge of the capacitive element C21 is distributed to the node Q and the node SN21
  • the charge of the capacitive element C22 is distributed to the node Qb and the node SN22
  • a voltage difference occurs between the node Q and the node Qb.
  • bistable circuit 275 amplifies the voltage difference between node Q and node Qb.
  • the voltages of the nodes Q and SN21 become VDDM, and the voltages of the nodes Qb and SN22 become VSSM. That is, the state of the node Q / Qb returns to the state ("H" / "L") at time t1.
  • the recovery operation ends at time t7.
  • the configurations of the L1 cache memory device 202 and the L2 cache memory device 203 may be different.
  • an OSSRAM is used for the L1 cache memory device 202
  • a NOSRAM is used for the L2 cache memory device 203.
  • an NOSRAM composed of memory cells 260 is used for the L1 cache memory device 202
  • an NOSRAM composed of memory cells 263 is used for the L1 cache memory device 202
  • the L2 cache memory device 203 since the memory cell array can be stacked on the peripheral circuit, the area of the L2 cache memory device 203 can be reduced, which is advantageous for increasing the capacity.
  • the memory cell 260 is suitable for the L1 cache memory device 202 because the read speed is high because the read transistor is a Si transistor.
  • the osAI chip 390 is an IC chip capable of arithmetic processing of AI using an os transistor.
  • the data used by the osAI chip 390 includes weight coefficient data (learnable data), image data, teacher data, and the like.
  • the calculation result of the osAI chip 390 is output, for example, as inference data.
  • a feature of the osAI chip 390 is that a memory circuit for storing data (typically, weighting factor data) used for the operation is provided in proximity to the operation circuit.
  • An os transistor is used in this memory circuit.
  • a memory having an os transistor may be referred to as an "os memory”.
  • the os memory 381 shown in FIG. 27A has the same circuit configuration as that of the 2T gain cell, and includes a write transistor MW1, a read transistor MR1, and a capacitive element CS1.
  • the gate of the read transistor MR1 is a holding node SN.
  • Each of the write transistor MW1 and the read transistor MR1 is an os transistor.
  • the node SN of the os memory 381 is charged via the write transistor MW1. Since the os transistor has a minimal off current, the write transistor MW1 hardly leaks the charge of the node SN. Therefore, the os memory 381 can function as a non-volatile memory circuit and can be easily multi-valued. Therefore, the os memory 381 can be provided in the osAI chip 390 as a non-volatile analog memory circuit.
  • the write transistor MW1 may be an os transistor without a back gate. The same applies to the read transistor MR1.
  • the metal oxide has a large energy gap, is hard to excite electrons, has a large effective mass of holes, etc.
  • the avalanche breakdown or the like may be less likely to occur in the os transistor compared to a general Si transistor. . Therefore, it is possible to suppress, for example, hot carrier deterioration and the like caused by avalanche collapse. Since the hot carrier deterioration can be suppressed, the os transistor can be driven with a high drain voltage. Therefore, since the write transistor MW1 is an os transistor, it becomes possible to apply a high voltage to the node SN, so that the multilevel memory of the os memory 381 is easy.
  • the os memory 382 shown in FIG. 27B is a modified example of the os memory 381, and the read transistor MR2 is an n-channel Si transistor.
  • the read transistor MR2 may be a p-channel Si transistor.
  • the os memory 383 illustrated in FIG. 27C is a three-transistor gain cell, and includes a write transistor MW3, a read transistor MR3, a selection transistor MS3, and a capacitive element CS3.
  • the write transistor MW3, the read transistor MR3, and the select transistor MS3 are os transistors each having a back gate. Some or all of these transistors may be back gateless os transistors.
  • the os memory 384 illustrated in FIG. 27D is a modification of the os memory 383.
  • the read transistor MR4 and the select transistor MS4 are n-channel Si transistors, respectively.
  • One or both of the read transistor MR4 and the select transistor MS4 may be a p-channel Si transistor.
  • the os memory 381 Since the data is rewritten by the charge and discharge of the capacitive element CS1, the os memory 381 has no restriction in principle on the number of times of rewriting, data can be written and read with low energy, and power is not consumed for data retention. Therefore, by incorporating the os memory 381 into the osAI chip 390, it is possible to provide an AI chip with low power consumption.
  • the os memories 382 to 384 have the same features as the os memory 381.
  • FIG. 28A schematically shows a laminated structure of the circuit portion 391A of the osAI chip 390.
  • the circuit portion 391A has a stacked structure and is roughly divided into a Si transistor layer 1011, a wiring layer 1012, and an os transistor layer 1013. Since the os transistor layer 1013 can be stacked on the Si transistor layer 1011, the area of the osAI chip 390 can be reduced.
  • a plurality of os transistor layers 1013 may be provided. Unlike the circuit units 391A and 391B, the circuit unit 391C is not provided with the Si transistor layer 1011. The number of os transistor layers 1013 in the circuit portion 391C may be one.
  • a more specific circuit configuration of the osAI chip 390 has been described in the third and fourth embodiments.
  • the operation unit of the osAI chip 390 can be configured with a small number of elements and the number of wires, which is advantageous for integration. Since the number of parallel processes can be increased by integration of arithmetic circuits, the osAI chip 390 has the possibility of realizing the same or higher arithmetic performance as commercially available GPU chips.
  • the osAI chip 390 can be provided with approximately 10 6 to 10 8 arithmetic circuits, and the number of parallel processing of multiplication can be 10 6 to 10 8 .
  • the computing performance of the osAI chip 390 is comparable to that of the GPU. The reduction of the operating frequency is very effective in reducing the dynamic power consumption of the IC chip.
  • the GPU chip is driven at a high frequency to perform large-scale arithmetic processing such as AI arithmetic. Therefore, a large amount of power is consumed and the temperature is high. Since the osAI chip 390 can reduce the operating frequency, the heat generation of the osAI chip 390 can be suppressed. Therefore, in the arithmetic device, the heat dissipation mechanism of the osAI chip 390 can be made simpler than the heat dissipation mechanism of the GPU chip.
  • the relation between the improvement of the arithmetic performance and the power saving and the heat generation suppression is a trade-off relation.
  • the osAI chip 390 can reduce the deterioration of the arithmetic performance even if the operating frequency is reduced. Therefore, the osAI chip 390 can perform large-scale arithmetic processing with high efficiency with respect to time and power.
  • FIG. 29A shows an external view of a car as an example of a moving body.
  • FIG. 29B is a diagram in which data exchange in a car is simplified.
  • the car 590 has a plurality of cameras 591 and the like.
  • the automobile 590 also includes various sensors (not shown) such as an infrared radar, a millimeter wave radar, a laser radar, and the like.
  • the osAI chip 390 can be used as the camera 591 or the like.
  • a plurality of images obtained by the camera 591 in a plurality of imaging directions 592 are processed by the osAI chip 390 described in the above embodiment, and the plurality of images are put together by the host controller 594 via the bus 593 or the like.
  • the host controller 594 By analyzing the data, it is possible to determine the surrounding traffic conditions such as the presence of guardrails and pedestrians and to perform automatic driving. Moreover, it can be used for a system that performs road guidance, danger prediction, and the like.
  • the osAI chip 390 performs arithmetic processing such as neural network on the obtained image data, for example, increases the resolution of the image, reduces image noise, face recognition (for crime prevention etc.), object recognition (for automatic driving) And so on), image compression, image correction (wide dynamic range), image restoration of lensless image sensor, positioning, character recognition, reflection reflection reduction, etc. can be performed.
  • arithmetic processing such as neural network on the obtained image data, for example, increases the resolution of the image, reduces image noise, face recognition (for crime prevention etc.), object recognition (for automatic driving) And so on), image compression, image correction (wide dynamic range), image restoration of lensless image sensor, positioning, character recognition, reflection reflection reduction, etc. can be performed.
  • the motor vehicle is demonstrated as an example of a mobile body above, a mobile body is not limited to a motor vehicle.
  • the moving object may also be a train, a monorail, a ship, a flying object (helicopter, unmanned aircraft (drone), airplane, rocket) or the like, and the computer of one embodiment of the present invention is applied to these moving objects.
  • a system using artificial intelligence can be provided.
  • FIG. 30A is an external view showing an example of a portable electronic device.
  • FIG. 30B is a diagram in which data exchange in the portable electronic device is simplified.
  • the portable electronic device 595 includes a printed wiring board 596, a speaker 597, a camera 598, a microphone 599, and the like.
  • the osAI chip 390 can be provided over the printed wiring board 596.
  • the portable electronic device 595 improves the convenience of the user by processing and analyzing a plurality of data obtained by the speaker 597, the camera 598, the microphone 599, and the like using the osAI chip 390 described in the above embodiment. be able to. Further, it can be used for a system that performs voice guidance, image search and the like.
  • the osAI chip 390 performs arithmetic processing such as neural network on the obtained image data, for example, increases the resolution of the image, reduces image noise, face recognition (for crime prevention etc.), object recognition (for automatic driving) And so on), image compression, image correction (wide dynamic range), image restoration of lensless image sensor, positioning, character recognition, reflection reflection reduction, etc. can be performed.
  • arithmetic processing such as neural network on the obtained image data, for example, increases the resolution of the image, reduces image noise, face recognition (for crime prevention etc.), object recognition (for automatic driving) And so on), image compression, image correction (wide dynamic range), image restoration of lensless image sensor, positioning, character recognition, reflection reflection reduction, etc. can be performed.
  • a portable game console 1100 illustrated in FIG. 31A includes a housing 1101, a housing 1102, a housing 1103, a display portion 1104, a connection portion 1105, an operation key 1107, and the like.
  • the housing 1101, the housing 1102, and the housing 1103 can be removed.
  • the connection portion 1105 provided in the housing 1101 to the housing 1108 the video output to the display portion 1104 can be output to another video device.
  • the housing 1102 and the housing 1103 to the housing 1109, the housing 1102 and the housing 1103 are integrated and function as an operation portion.
  • the osAI chip 390 described in the above embodiment can be incorporated in a chip provided on the housings 1102 and 1103 and the like.
  • FIG. 31B illustrates a stick-type electronic device 1120 of a USB connection type.
  • the electronic device 1120 includes a housing 1121, a cap 1122, a USB connector 1123, and a substrate 1124.
  • the substrate 1124 is housed in a housing 1121.
  • the memory chip 1125 and the controller chip 1126 are attached to the substrate 1124.
  • the osAI chip 390 described in the above embodiment can be incorporated in the controller chip 1126 of the substrate 1124 or the like.
  • FIG. 31C shows a humanoid robot 1130.
  • the robot 1130 includes sensors 2101 to 2106 and a control circuit 2110.
  • the osAI chip 390 described in the above embodiment can be incorporated in the control circuit 2110.
  • the osAI chip 390 described in the above embodiment may be used in a server that communicates with an electronic device instead of being built in the electronic device.
  • the electronic device and the server constitute a computing system.
  • FIG. 32 shows a configuration example of a system 3000.
  • the system 3000 includes an electronic device 3001 and a server 3002. Communication between the electronic device 3001 and the server 3002 can be performed via the Internet line 3003.
  • the server 3002 has a plurality of racks 3004.
  • a plurality of substrates 3005 are provided in the plurality of racks, and the osAI chip 390 described in the above embodiment can be mounted on the substrates 3005.
  • a neural network is configured in the server 3002.
  • the server 3002 can perform neural network calculations using data input from the electronic device 3001 via the Internet line 3003.
  • the result of the calculation by the server 3002 can be transmitted to the electronic device 3001 via the Internet line 3003 as necessary. Thereby, the load of calculation in the electronic device 3001 can be reduced.
  • SC1 state, SC2: state, SG1: state, SG2: state, SPG1: state, SPG2: state, SPG3: state, SPG4: state, 10: host, 10A: CPU, 10B: CPU, 11A: CPU core, 11B : CPU core, 12: memory, 13: data holding circuit, 20: bus, 30: GPU, 30_1: GPU, 30_n: GPU, 30A: GPU, 30B: GPU, 31: device memory, 32A: shared memory, 32B: Shared memory, 33A: GPU core, 33B: GPU core, 34A: arithmetic unit, 34B: arithmetic unit, 35A: data holding unit, 35B: data holding unit, 40: multiplication circuit, 42: current source, 43: offset circuit, 44: activation function circuit, 51: input register, 52: memory circuit, 53: multiplication circuit, 54: addition time , 55A: output register, 55B: output register, 56A: selector, 56B: selector, 56C: selector, 56D:

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computing Systems (AREA)
  • Physiology (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Ceramic Engineering (AREA)
  • Neurosurgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Power Sources (AREA)
  • Thin Film Transistor (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Metal-Oxide And Bipolar Metal-Oxide Semiconductor Integrated Circuits (AREA)
  • Semiconductor Memories (AREA)

Abstract

要約書 消費電力の小さい演算装置および電子機器を提供すること。高速動作が可能な演算装置および電子機器 を提供すること。発熱の抑制が可能な演算装置および電子機器を提供すること。 演算装置は、第1の演算部と、第2の演算部と、を有する。第1の演算部は、第1のCPUコアと、第2のCPU コアと、を有する。第2の演算部は、第1のGPUコアと、第2のGPUコアと、を有する。CPUコアは、パワー ゲーティング機能を有し、フリップフロップに接続されている第1のデータ保持回路を有する。第1のGPUコ アは、アナログ値を保持し、2ビット以上のデジタルデータとして読み出すことができる第2のデータ保持回 路を有する。第2のGPUコアは、デジタル値を保持し、1ビットのデジタルデータとして読み出すことができる 第3のデータ保持回路を有する。第1乃至第3のデータ保持回路は、それぞれ酸化物半導体を有するトラン ジスタおよび容量素子を有する。

Description

演算装置および電子機器
本発明の一態様は、演算装置および電子機器に関する。
なお、本発明の一態様は、上記の技術分野に限定されない。本明細書等で開示する本発明の一態様の技術分野としては、半導体装置、撮像装置、表示装置、発光装置、蓄電装置、記憶装置、表示システム、電子機器、照明装置、入力装置、入出力装置、それらの駆動方法、又はそれらの製造方法、を一例として挙げることができる。
また、本明細書等において、半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。トランジスタ、半導体回路、演算装置、記憶装置等は半導体装置の一態様である。また、表示装置、撮像装置、電気光学装置、発電装置(薄膜太陽電池、有機薄膜太陽電池等を含む)、及び電子機器は半導体装置を有している場合がある。
CPU(Central Processing Unit)等の演算装置を有する電子機器が普及している。このような電子機器では、大量のデータを高速に処理するため、演算装置の性能向上に関する技術開発が活発である。高性能化を実現する技術としては、例えば、マルチコア技術、DVFS(Dynamic Voltage and Frequency Scaling)技術がある。
また演算装置は、GPU(Graphics Processing Unit)等のアクセラレータとCPUとを密結合させた、所謂SoC(System on Chip)化によって演算処理性能の向上を実現している。SoC化によって高性能化した演算装置では、発熱、及び消費電力の増加が問題となってくる。そのため特許文献1では、演算装置が搭載されたコンピュータの電流を監視し制御することによって、熱負荷を低減するための方法およびシステムに関する発明が開示されている。
特表2014−516446号公報
マルチコア技術およびDVFS技術は、演算装置の高性能化を図るために有効である。しかしながらSoC化した演算装置において、マルチコア技術およびDVFS技術を適用する場合、コアごとにパワーゲーティングすることが難しく、リーク電流が流れるため消費電力が増加してしまう。
そこで、本発明の一態様は、新規な演算装置および電子機器を提供することを課題の一とする。又は、本発明の一態様は、消費電力の小さい演算装置および電子機器を提供することを課題の一とする。又は、本発明の一態様は、高速動作が可能な演算装置および電子機器を提供することを課題の一とする。又は、本発明の一態様は、発熱の抑制が可能な演算装置および電子機器を提供することを課題の一とする。
なお、本発明の一態様は、必ずしも上記の課題の全てを解決する必要はなく、少なくとも一の課題を解決できるものであればよい。また、上記の課題の記載は、他の課題の存在を妨げるものではない。これら以外の課題は、明細書、特許請求の範囲、図面などの記載から、自ずと明らかとなるものであり、明細書、特許請求の範囲、図面などの記載から、これら以外の課題を抽出することが可能である。
本発明の一態様は、第1の演算部と、第2の演算部と、を有し、第1の演算部は、第1のCPUコアと、第2のCPUコアと、を有し、第2の演算部は、第1のGPUコアと、第2のGPUコアと、を有し、第1のCPUコアおよび第2のCPUコアと、は、それぞれパワーゲーティングすることができる機能を有し、第1のCPUコアおよび第2のCPUコアは、それぞれフリップフロップに電気的に接続されている第1のデータ保持回路を有し、第1のGPUコアは、アナログ値を保持し、2ビット以上のデジタルデータとして読み出すことができる第2のデータ保持回路を有し、第2のGPUコアは、デジタル値を保持し、1ビットのデジタルデータとして読み出すことができる第3のデータ保持回路を有し、第1乃至第3のデータ保持回路は、それぞれ第1のトランジスタおよび容量素子を有し、第1のトランジスタは、容量素子へのデータの書き込みを制御する機能、および第1のトランジスタのソースとドレインとの間を非導通状態とすることで書き込まれたデータに応じた電荷を保持する機能を有し、第1のトランジスタにおいて、チャネル形成領域は酸化物半導体を有する演算装置である。
本発明の一態様は、第1の演算部と、複数の第2の演算部と、を有し、第1の演算部は、第1のCPUコアと、第2のCPUコアと、を有し、複数の第2の演算部は、それぞれ第1のGPUコアと、第2のGPUコアと、を有し、第1のCPUコアおよび第2のCPUコアと、は、それぞれパワーゲーティングすることができる機能を有し、第1のCPUコアおよび第2のCPUコアは、それぞれフリップフロップに電気的に接続されている第1のデータ保持回路を有し、第1のGPUコアは、アナログ値を保持し、2ビット以上のデジタルデータとして読み出すことができる第2のデータ保持回路を有し、第2のGPUコアは、デジタル値を保持し、1ビットのデジタルデータとして読み出すことができる第3のデータ保持回路を有し、第1乃至第3のデータ保持回路は、それぞれ第1のトランジスタおよび容量素子を有し、第1のトランジスタは、容量素子へのデータの書き込みを制御する機能、および第1のトランジスタのソースとドレインとの間を非導通状態とすることで書き込まれたデータに応じた電荷を保持する機能を有し、第1のトランジスタにおいて、チャネル形成領域は酸化物半導体を有する演算装置である。
本発明の一態様において、第2のデータ保持回路および第3のデータ保持回路は、それぞれ第2のトランジスタを有し、第1のトランジスタのソースまたはドレインの一方と、容量素子の一方の電極と、第2のトランジスタのゲートと、が電気的に接続されたノードにアナログ値またはデジタル値に応じた電位を保持する機能を有する演算装置が好ましい。
本発明の一態様において、第1のCPUコアおよび第2のCPUコアは、いずれか一方が演算処理を実行する状態と、いずれか他方がパワーゲーティングする状態とが切り替えられ、切り替えは第1のCPUコアまたは第2のCPUコアが設けられた領域の温度に応じて制御される演算装置が好ましい。
本発明の一態様において、第1のGPUコアおよび第2のGPUコアは、いずれか一方が演算処理を実行する状態と、いずれか他方がパワーゲーティングする状態とが切り替えられ、切り替えは科学技術計算に基づく演算処理であるか、またはニューラルネットワークを利用した推論に基づく演算処理であるか、に応じて制御される演算装置が好ましい。
なおその他の本発明の一態様については、以下で述べる実施の形態における説明、および図面に記載されている。
本発明の一態様により、新規な演算装置および電子機器を提供することができる。又は、本発明の一態様により、消費電力の小さい演算装置および電子機器を提供することができる。又は、本発明の一態様により、高速動作が可能な演算装置および電子機器を提供することができる。又は、本発明の一態様により、発熱の抑制が可能な演算装置および電子機器を提供することができる。
なお、これらの効果の記載は、他の効果の存在を妨げるものではない。また、本発明の一態様は、必ずしも、これらの効果の全てを有する必要はない。これら以外の効果は、明細書、特許請求の範囲、図面などの記載から、自ずと明らかとなるものであり、明細書、特許請求の範囲、図面などの記載から、これら以外の効果を抽出することが可能である。
本発明の一態様の構成を説明するためのブロック図。 本発明の一態様の構成を説明するためのブロック図。 本発明の一態様の構成を説明するためのブロック図。 本発明の一態様の構成を説明するための状態遷移図。 本発明の一態様の構成を説明するための図。 本発明の一態様の構成を説明するための図。 本発明の一態様の構成を説明するためのフローチャート。 本発明の一態様の構成を説明するためのフローチャート。 本発明の一態様の構成を説明するためのブロック図。 本発明の一態様の構成を説明するためのブロック図。 CPUのパワーゲーティング機構の例を示すブロック図。 A:フリップフロップの構成例を示す回路図。B:フリップフロップの積層構造例を示す図。 フリップフロップの動作例を示すタイミングチャート。 osAIチップの構成例を示す機能ブロック図。 MACアレイの構成例を示す回路図。 osAIチップの構成例を示す機能ブロック図。 演算アレイの構成例を示すブロック図。 演算回路の構成例を示す回路図。 A:メモリ回路の構成例を示す回路図。B:メモリセルの構成例を示す回路図。 メモリ回路の構成例を示す回路図。 A、B:スイッチ回路の構成例を示す回路図。 A:NOSRAMの構成例を示す機能ブロック図。B:メモリセルの構成例を示す回路図。 A:メモリセルアレイの構成例を示す回路図。B、C:メモリセルの構成例を示す回路図。 NOSRAMの動作例を示すタイミングチャート。 OSSRAMの構成例を示す機能ブロック図。 A:メモリセルの構成例を示す回路図。B:OSSRAMの動作例を示すタイミングチャート。 A−D:osメモリの回路構成例を示す回路図。 osAIチップの回路部の構成例を示す模式図。 本発明の一態様の構成を説明するための図。 本発明の一態様の構成を説明するための図。 本発明の一態様の構成を説明するための図。 本発明の一態様の構成を説明するための図。
以下に、本発明の実施の形態を説明する。ただし、本発明の一形態は、以下の説明に限定されず、本発明の趣旨およびその範囲から逸脱することなくその形態および詳細を様々に変更し得ることは、当業者であれば容易に理解される。したがって、本発明の一形態は、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
以下に示される複数の実施の形態は適宜組み合わせることが可能である。また1の実施の形態の中に、複数の構成例(作製方法例、動作方法例、使用方法例等も含む。)が示される場合は、互いの構成例を適宜組み合わせること、および他の実施の形態に記載された1または複数の構成例と適宜組み合わせることも可能である。
図面において、大きさ、層の厚さ、又は領域は、明瞭化のために誇張されている場合がある。よって、必ずしもそのスケールに限定されない。なお図面は、理想的な例を模式的に示したものであり、図面に示す形状又は値などに限定されない。例えば、ノイズによる信号、電圧、若しくは電流のばらつき、又は、タイミングのずれによる信号、電圧、若しくは電流のばらつきなどを含むことが可能である。
本明細書等において、金属酸化物(metal oxide)とは、広い意味での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductorともいう)などに分類される。例えば、トランジスタのチャネル形成領域に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも1つを有する場合、当該金属酸化物を、金属酸化物半導体(metal oxide semiconductor)と呼ぶことができる。以下、チャネル形成領域に金属酸化物を含むトランジスタを、osトランジスタとも表記する。
(実施の形態1)
本発明の一態様である演算装置の構成、および動作等について説明する。
図1は、演算装置100Aのブロック図である。図1に示す演算装置100Aは、ホスト10(図中、Host)と、バス20(図中、Bus)と、GPU30と、を有する。ホスト10およびGPU30は、プログラムを実行するための演算を行う機能を有する。
ホスト10は、OS(Operating System)の実行、データの制御、各種演算やプログラムの実行など、汎用の処理を行う機能を有する。ホスト10は、複数のCPUコアを有する。図1では、一例としてCPUコア11AおよびCPUコア11Bの2つのCPUコアを図示している。ホスト10は、メモリ12を有する。メモリ12は、メインメモリとしての機能、またはデータキャッシュとしての機能を有する。
CPUコア11AおよびCPUコア11Bは、ホスト10で行われる処理を実行する機能を有する。CPUコア11AとCPUコア11Bとは、処理性能が異なることが好ましい。例えば、CPUコア11Aは、CPUコア11Bと比べて、処理性能が低く且つ消費電力が小さいコアであり、CPUコア11Bは、CPUコア11Aと比べて、処理性能が高く且つ消費電力が大きいコアである構成が好ましい。当該構成とすることで、ホスト10で行われる処理の量や種類に応じて、CPUコア11AまたはCPUコア11Bのいずれか一方または双方を選択し、効率的に処理を実行することができる。
なお、CPUコア11AとCPUコア11Bは異なる回路設計により、処理能力および消費電力を異ならせる構成とすることができる。または、同一のCPUコアを2つ用意し、該CPUコアのいずれか一方、または双方に対してDFVS技術を適用することで、処理能力および消費電力を異ならせる構成とすることができる。具体的な一例としては、一方のCPUコアに対しては電圧および周波数を上げることで処理性能を向上させ、他方のCPUコアに対しては電圧及び周波数を下げることで消費電力を抑制し、上述した処理能力および消費電力を異ならせる構成を実現できる。
CPUコア11AおよびCPUコア11Bは、それぞれデータ保持回路13を有する。データ保持回路13は、電源電圧の供給が停止してもデータを保持できる回路である。なお電源電圧の供給は、電源ドメイン(パワードメイン)からのパワースイッチ等による電気的な切り離しによって制御することができる。なお電源電圧は、駆動電圧という場合がある。データ保持回路13として、例えば、酸化物半導体(oxide semiconductor)をチャネル形成領域に有するトランジスタ(osトランジスタ)を有するメモリ(以下、osメモリともいう。)が好適である。
金属酸化物のバンドギャップは2.5eV以上あるため、osトランジスタは極小のオフ電流をもつ。一例として、ソースとドレイン間の電圧が3.5V、室温(25℃)下において、チャネル幅1μm当たりのオフ電流を1×10−20A未満、1×10−22A未満、あるいは1×10−24A未満とすることができる。すなわち、ドレイン電流のオン/オフ電流比を20桁以上150桁以下とすることができる。そのため、osメモリは、osトランジスタを介して保持ノードからリークする電荷量が極めて少ない。従って、osメモリは不揮発性メモリ回路として機能できるため、演算装置のパワーゲーティングが可能となる。
osトランジスタに適用される金属酸化物は、Zn酸化物、Zn−Sn酸化物、Ga−Sn酸化物、In−Ga酸化物、In−Zn酸化物、In−M−Zn酸化物(Mは、Ti、Ga、Y、Zr、La、Ce、Nd、SnまたはHf)などがある。また、インジウムおよび亜鉛を含む酸化物に、アルミニウム、ガリウム、イットリウム、銅、バナジウム、ベリリウム、ホウ素、シリコン、チタン、鉄、ニッケル、ゲルマニウム、ジルコニウム、モリブデン、ランタン、セリウム、ネオジム、ハフニウム、タンタル、タングステン、マグネシウムなどから選ばれた一種、または複数種が含まれていてもよい。
osトランジスタの信頼性、電気特性の向上のため、半導体層に適用される金属酸化物は、CAAC−OS、CAC−OS、nc−OSなどの結晶部を有する金属酸化物であることが好ましい。CAAC−OSとは、c−axis−aligned crystalline oxide semiconductorの略称である。CAC−OSとは、Cloud−Aligned Composite oxide semiconductorの略称である。nc−OSとは、nanocrystalline oxide semiconductorの略称である。
CAAC−OSは、c軸配向性を有し、かつa−b面方向において複数のナノ結晶が連結し、歪みを有した結晶構造となっている。なお、歪みとは、複数のナノ結晶が連結する領域において、格子配列の揃った領域と、別の格子配列の揃った領域との間で格子配列の向きが変化している箇所を指す。
CAC−OSは、キャリアとなる電子(または正孔)を流す機能と、キャリアとなる電子を流さない機能とを有する。電子を流す機能と、電子を流さない機能とを分離させることで、双方の機能を最大限に高めることができる。つまり、CAC−OSをosトランジスタのチャネル形成領域に用いることで、高いオン電流と、極めて低いオフ電流との双方を実現できる。
金属酸化物は、バンドギャップが大きく、電子が励起されにくいこと、ホールの有効質量が大きいことなどから、osトランジスタは、一般的なSiトランジスタと比較して、アバランシェ崩壊等が生じにくい場合がある。従って、例えばアバランシェ崩壊に起因するホットキャリア劣化等を抑制できる。ホットキャリア劣化を抑制できることで、高いドレイン電圧でosトランジスタを駆動することができる。
osトランジスタは、電子を多数キャリアとする蓄積型トランジスタである。そのため、pn接合を有する反転型トランジスタ(代表的には、Siトランジスタ)と比較して短チャネル効果の一つであるDIBL(Drain−Induced Barrier Lowering)の影響が小さい。つまり、osトランジスタは、Siトランジスタよりも短チャネル効果に対する高い耐性を有する。
osトランジスタは、短チャネル効果に対する耐性が高いために、osトランジスタの信頼性を劣化させずに、チャネル長を縮小できるので、osトランジスタを用いることで回路の集積度を高めることができる。チャネル長が微細化するのに伴いドレイン電界が強まるが、上掲したように、osトランジスタはSiトランジスタよりもアバランシェ崩壊が起きにくい。
また、osトランジスタは、短チャネル効果に対する耐性が高いために、Siトランジスタよりもゲート絶縁膜を厚くすることが可能となる。例えば、チャネル長及びチャネル幅が50nm以下の微細なトランジスタにおいても、10nm程度の厚いゲート絶縁膜を設けることが可能な場合がある。ゲート絶縁膜を厚くすることで、寄生容量を低減することができるので、回路の動作速度を向上できる。またゲート絶縁膜を厚くすることで、ゲート絶縁膜を介したリーク電流が低減されるため、静的消費電流の低減につながる。
以上より、CPUコア11AおよびCPUコア11Bは、osメモリであるデータ保持回路13を有することで電源電圧の供給が停止してもデータを保持できる。そのため、CPUコア11AおよびCPUコア11Bのパワーゲーティングが可能となり、消費電力の大幅な低減を図ることができる。
メモリ12は、CPUコア11AおよびCPUコア11Bが行う処理において必要なデータを格納する機能を有する。メモリ12は、RAM(Random Access Memory)、などの揮発性メモリまたは不揮発性メモリを備える構成とすることができる。具体的には、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、およびフラッシュメモリなどを用いることができる。またはNOSRAM、またはDOSRAMを用いることもできる。
「NOSRAM(登録商標)」とは、「Nonvolatile Oxide Semiconductor RAM」の略称である。NOSRAMは、メモリセルが2トランジスタ型(2T)、又は3トランジスタ型(3T)ゲインセルであり、アクセストランジスタがosトランジスタであるメモリのことをいう。「DOSRAM(登録商標)」とは、「Dynamic Oxide Semiconductor RAM」の略称である。DOSRAMは、メモリセルがosトランジスタと容量素子とでなる1トランジスタ1容量型(1T1C)であり、アクセストランジスタがosトランジスタであるメモリのことをいう。NOSRAMおよびDOSRAMは、アクセストランジスタがosトランジスタである。osトランジスタはオフ状態でソースとドレインとの間を流れる電流、つまりリーク電流が極めて小さい。NOSRAMおよびDOSRAMは、リーク電流が極めて小さい特性を用いてデータに応じた電荷をメモリセル内に保持することで、不揮発性メモリとして用いることができる。
メモリ12は、メモリバス(図示せず)経由でCPUコア11AおよびCPUコア11Bと電気的に接続されている。なお、演算装置100Aは、CPUとGPUとが搭載されたヘテロジニアスシステムであることから、メモリ12をホストメモリと呼ぶ場合がある。
ホスト10は、バス20を介してGPU30と電気的に接続される。つまりホスト10とGPU30とは、バス20を介してデータ伝送を行うことができる。
GPU30は、デバイスメモリ31と、共有メモリ32Aと、共有メモリ32Bと、GPUコア33Aと、GPUコア33Bと、を有する。デバイスメモリ31、共有メモリ32A、および共有メモリ32Bは、オンサイトメモリという場合がある。
GPU30は、ホストプログラムから呼び出されたプログラムを実行する機能を有する。GPU30は、例えば、グラフィック処理における行列演算の並列処理、ニューラルネットワークの積和演算の並列処理、科学技術計算における浮動小数点演算の並列処理などを行うことができる。
デバイスメモリ31は、GPU30が実行するプログラム(カーネル、またはカーネルプログラムとも呼ばれる。)、およびGPU30が処理するデータを記憶する。デバイスメモリ31は、メモリバス(図示せず)経由で共有メモリ32Aおよび共有メモリ32Bと電気的に接続されている。なお、デバイスメモリ31とメモリ12との間のデータ転送は、バス20を経由して行われる。
共有メモリ32Aは、GPUコア33Aと電気的に接続され、デジタル値を保持する機能を有する。共有メモリ32Bは、GPUコア33Bと電気的に接続され、アナログ値を保持する機能を有する。なおデジタル値は二値、つまり1ビットのデジタルデータである。アナログ値は、4値以上のデータであり、量子化することで2ビット以上のデジタルデータとして扱うことができる。そのため、共有メモリ32Bは、共有メモリ32Aよりも単位面積当たりのメモリ容量を増やすことができる。
GPUコア33Aは、デジタル値を用いた演算処理を行う機能を有する。デジタル値はノイズの影響を受けにくい。そのためGPUコア33Aは、高い精度の演算結果が要求される演算処理を行うのに適している。GPUコア33Aは、複数の演算ユニット34Aを有する。
演算ユニット34Aは、デジタル値を保持するデータ保持部35Aを有する。各演算ユニット34Aは、データ保持部35Aに保持されたデジタル値を用いて、整数演算、単精度浮動小数点演算、倍精度浮動小数点演算などの処理のいずれか一を行う機能を有する。GPUコア33Aに搭載されている複数の演算ユニット34Aは、基本的には同じ命令を実行する。
GPUコア33Bは、アナログ値を用いた演算処理を行う機能を有する。量子化されたアナログ値をデジタルデータとして演算処理に用いることで、膨大な量の演算処理を行う必要がなくなり、回路規模を小さく抑えることができる。そのためGPUコア33Bは、消費電力を抑えつつ、発熱を抑制することができる。GPUコア33Bは、複数の演算ユニット34Bを有する。
演算ユニット34Bは、アナログ値を保持するデータ保持部35Bを有する。各演算ユニット34Bは、データ保持部35Bに保持されたアナログ値を量子化して得られるデジタルデータを用いて、整数演算、単精度浮動小数点演算、倍精度浮動小数点演算などの処理のいずれか一を行う機能を有する。GPUコア33Bに搭載されている複数の演算ユニット34Bは、基本的には同じ命令を実行する。
図1に示す、演算装置100Aにおいて電力の消費を伴う要素は、ホスト10およびGPU30である。演算装置100Aの全体の消費電力に対する、ホスト10およびGPU30の割合は比較的大きい。特に、GPU30が、ディープニューラルネットワークの学習(深層学習)、浮動小数点演算を行う科学技術計算などの膨大な演算処理を行う場合、演算装置100Aの消費電力は著しく増大する。そのため、GPU30の消費電力を可能な限り小さくすることが好ましい。
図1に示す演算装置100Aは、GPUにおける、量子化したアナログ値を用いた演算、およびデジタル値を用いた演算の切り替え、ならびに、CPUコア11AおよびCPUコア11Bの切り替えを行うことで、消費電力および発熱を抑制しつつ、演算処理を高速に行うことができる。当該構成は、複数のCPUコア、および複数のGPUコアを搭載したSoCにおいて特に有効である。
図2は、図1に図示した演算装置100Aの変形例のブロック図である。図2に示す演算装置100Bは、2以上のGPU(GPU30_1乃至GPU30_n(nは、2以上の自然数。))を有する点において、図1に示す演算装置100Aと異なる。
バス20は、ホスト10、およびGPU30_1乃至GPU30_nと電気的に接続している。ホスト10とGPU30_1乃至GPU30_nとは、バス20を介してデータ伝送を行うことができる。その他の構成については、演算装置100Aの構成を参酌する。
演算装置100Bは、複数のGPUを有することで、演算装置100Aと比べて、処理をより高速に実行することができる。また、処理を行うGPUを適宜切り替えることで、演算装置100Bの温度が上昇するのを抑制することができる。
図3は、図1に図示した演算装置100Aの変形例のブロック図である。図3に示す演算装置100Cは、CPU10A(CPU1)と、CPU10B(CPU2)と、バス20と、GPU30A(GPU1)と、GPU30B(GPU2)と、を有する点において、図1に示す演算装置100Aと異なる。
CPU10Aは、CPUコア11Aおよびメモリ12を有し、CPU10Bは、CPUコア11Bおよびメモリ12を有する。また、GPU30Aは、デバイスメモリ31、共有メモリ32A、およびGPUコア33Aを有し、GPU30Bは、デバイスメモリ31、共有メモリ32B、およびGPUコア33Bを有する。
バス20は、CPU10A、CPU10B、GPU30A、およびGPU30Bと電気的に接続している。CPU10AおよびCPU10Bと、GPU30AとGPU30Bとは、バス20を介してデータ伝送を行うことができる。その他の構成については、演算装置100Aの構成を参酌する。
図4は、図1で示す演算装置100Aが取り得る複数の状態を説明するための状態遷移図である。図4に示す演算装置100Aは、状態SC1、状態SC2、状態SG1、状態SG2、および状態SPG1乃至SPG4を有する。
図4に示す状態SC1はCPUコア11Aを用いて処理を実行する状態(図中、CPU Core1と図示)に対応する。状態SC2はCPUコア11Bを用いて処理を実行する状態(図中、CPU Core2と図示)に対応する。状態SG1はGPUコア33Bを用いて処理を実行する状態(図中、GPU Core1と図示)に対応する。状態SG2はGPUコア33Aを用いて処理を実行する状態(図中、GPU Core2と図示)に対応する。
図4に示す状態SPG1乃至SPG4は、状態SC1、状態SC2、状態SG1、状態SG2の各状態にあるコアに対して、パワーゲーティング状態(PG状態、図中PG Modeと表記)にする機能を有する。パワーゲーティングとは、回路に対する電源電圧の供給を制御することにより、例えば使用しない回路に対する電源電圧の供給を停止させる技術である。
例えばCPUコア11AのみPG状態にする場合、CPUコア11Aが状態SC1から状態SPG1に移行し、その他の構成であるCPUコア11B、GPUコア33A、およびGPUコア33Bは、電源電圧の供給が行われる状態SC2、状態SG2、状態SG1のままとなる。また別の例としてCPUコア11AおよびGPUコア33BをPG状態にする場合、CPUコア11Aが状態SC1から状態SPG1に移行するとともに、GPUコア33Bが状態SG1から状態SPG3に移行し、その他の構成であるCPUコア11BおよびGPUコア33Aは、電源電圧の供給が行われる状態SC2および状態SG2のままとなる。
演算装置100Aでは、ホストプログラムに記載されている命令の種類および演算量を元に、状態SC1または状態SPG1、および状態SC2または状態SPG2の選択、つまりCPUコア11AまたはCPUコア11Bのいずれか一方または双方を用いて処理を行うかを選択する。また、ホストプログラムにカーネルプログラムが記載されている場合、カーネルプログラムの種類および演算量を元に、状態SG1または状態SPG3、および状態SG2または状態SPG4の選択、つまりGPUコア33AまたはGPUコア33Bのいずれか一方又は双方を用いて処理を行うかを選択する。当該構成によって、各コアが独立してPG状態とすることが可能となるため、演算装置全体として消費電力を抑制することができる。
図5は、図4で説明した状態遷移図で示す各状態に移行する例を説明する図である。具体的には、5つの命令(命令1乃至命令5)に対する、各コアの動作について説明する。図5において、電源電圧が供給され演算可能な状態のコアを、「EXE.」と表記し、電源電圧の供給が停止されPG状態であるコアを、「PG」と表記する。
なお図5の説明でCPUコア1(CPU Core1と図示)は、CPUコア2(CPU Core2と図示)と比べて、演算性能が低く消費電力が小さいコアとする。また、CPUコア2は、CPUコア1と比べて、演算性能が高く消費電力が大きいコアとする。また、GPUコア1(GPU Core1と図示)は、アナログ値を量子化して得られるデジタル値(多値データ)を用いた演算処理を行うGPUコアであり、演算の処理速度および精度が低いが、発熱は小さいとする。また、GPUコア2(GPU Core2と図示)は、デジタル値を用いた演算処理を行うGPUコアであり、演算の処理速度および精度は高いが、発熱が大きいとする。

命令1(図中、Instruction1)は、処理を並列に実行することなく、高い処理性能が要求されない命令である。例えば、演算装置を搭載している電子機器または並列計算機がスリープモードの場合(図中、sleep)等がある。このような場合、CPUコア1のみを動作させ、他のコアはPG状態にする。CPUコア1は消費電力が小さく、他のコアはPG状態であり電力を消費しないため、演算装置100Aの消費電力および発熱を抑制しつつ、命令1を実行することができる。
命令2(図中、Instruction2)は、処理を並列に実行することができず、高速な処理が要求される命令である。例えば、オペレーティングシステムの起動時や、通常のプログラム実行を複数行う場合(図中、busy)等がある。このような場合、CPUコア2のみを動作させ、他のコアはPG状態にする。CPUコア2は処理性能が高く、他のコアはPG状態であり電力を消費しない。よって、演算装置100Aの消費電力を抑制しつつ、命令2を高速に実行することができる。
命令3(図中、Instruction3)は、処理を並列に実行することができ、高い処理性能が要求されない命令である。例えば、機械学習に基づく推論処理を行う場合(図中、inference)等がある。このような場合、CPUコア1およびGPUコア1を動作させ、他のコアはPG状態にする。CPUコア1はGPUコア1上のメモリに入力データを転送し、カーネルプログラムを呼び出すことで、GPUコア1に処理を実行させる。処理が終了したら、出力データをCPUコア上のメモリに転送する。CPUコア1およびGPUコア1は消費電力が小さく、他のコアはPG状態であり電力を消費しない。よって、演算装置100Aの消費電力および発熱を抑制しつつ、命令3を実行することができる。なお、GPUコア1が処理を行っている際、CPUコア1の動作が不要な場合は、該処理を行っている期間中、CPUコア1をPG状態に切り替えてもよい。PG状態への切り替えを頻繁に行うことで、消費電力および発熱を抑制することができる。
命令4(図中、Instruction4)は、処理を並列に実行することができ、高速な処理が要求される命令である。例えば、科学技術計算を行う場合(図中、calculation)等がある。このような場合、CPUコア2およびGPUコア2を動作させ、他のコアはPG状態にする。CPUコア2はGPUコア2上のメモリに入力データを転送し、カーネルプログラムを呼び出すことで、GPUコア2に処理を実行させる。処理が終了したら、出力データをCPUコア上のメモリに転送する。なお、CPUコア2にて処理の一部を実行してもよい。CPUコア2およびGPUコア2は処理性能が高く、他のコアはPG状態であり電力を消費しないため、演算装置100Aの消費電力を抑制しつつ、命令4を高速に実行することができる。なお、GPUコア2が処理を行っている際、CPUコア2の動作が不要な場合は、該処理を行っている期間中、CPUコア2をPG状態に切り替えてもよい。PG状態への切り替えを頻繁に行うことで、消費電力および発熱を抑制することができる。
命令5(図中、Instruction5)は、命令4と比較して、演算量が多く、より高速な処理が要求される命令である。この場合、CPUコア2と、GPUコア2と、の2つのみで処理を行うと、これらのコアが発熱し、基板の温度が上昇することで、演算装置が壊れてしまう恐れがある。このような場合、基板の温度上昇を抑制できる駆動(図中、cooling)を行うことが有効である。例えば全てのコア(CPUコア1、CPUコア2、GPUコア1、およびGPUコア2)に対して、PG状態と電源電圧を供給する状態の切り替えを頻繁に行うことで、発熱を抑制しつつ、命令を実行し続けることができる。
以上のように、ホストプログラムに記載されている命令の種類および演算量、ならびに、カーネルプログラムの種類および演算量を元に、使用するコアの組み合わせを適切に選択し、選択されなかったコアをPG状態にすることで、消費電力を抑制しつつ、命令を高速に実行することができる。
図6(A)、(B)は、基板の温度に応じて複数のCPUコアまたは複数のGPUコアを用いる際の、演算する状態からPG状態への切り替え、およびPG状態から演算を行う状態への切り替えについての動作を説明する図である。
図6(A)では、2つのCPUコア(CPU Core1、CPU Core2)の演算する状態、PG状態を切り替えて動作させる様子の一例である。初め、CPU Core1への電源電圧の供給をして演算できる状態(CPU Core1 Exe.)とし、CPU Core2への電源電圧の供給を停止してPG状態とする。なお図6(A)に示すグラフは、横軸が時間、縦軸がCPUコアの配置された領域の表面温度を表している。
CPU Core1では、演算によって電流が流れるため、CPU Core1の配置された領域を中心に発熱する。発熱によってCPU Core1の配置された領域の温度が上昇する。CPU Core1の配置された領域の温度が閾値温度Tthに達すると、CPU Core2では、PG状態から電源電圧を供給する状態に切り替え、演算を行うための待機状態に切り替える(CPU Core2 Exe.)。
なおCPU Core1の演算能力は、CPU Core2の演算能力より小さい構成とすることが好ましい。具体的にはCPU Core2ではDVFS技術を適用してCPU Core1よりも演算能力を向上させておく構成とする。該構成とすることで、CPU Core1をCPU Core2に比べて積極的に用いる場合に、CPU Core1が配置された領域の発熱をCPU Core2が配置された領域の発熱よりも抑えることができるため、消費電力の低減、発熱の抑制、およびPG状態への切り替えをおこなう頻度を低減することができる。
やがてCPU Core1の配置された領域の発熱によってCPU Core1の配置された領域の温度が限界温度Tlimに達すると、CPU Core1への電源電圧の供給を停止してPG状態とする(CPU Core1 PG)。そして、CPU Core2で演算を開始する。CPU Core2は、演算によって電流が流れるため、CPU Core2の配置された領域を中心に発熱する。なお図6(A)に図示する期間t1で、CPU Core2はPG状態から電源電圧の供給をする状態に切り替えられているが、待機状態であるため、発熱が小さい。
発熱によってCPU Core2の配置された領域の温度が上昇する。このCPU Core2の配置された領域の温度が上昇する間、CPU Core1をPG状態とすることで、CPU Core1の配置された領域を冷却することができる。そのため、CPU Core2の温度上昇を抑制することができる。その結果、演算装置全体として温度の上昇を抑制することができるため、ファンなどの冷却機構の削減を可能とすることができる。そして、CPU Core2の配置された領域の温度が閾値温度Tthに達すると、CPU Core1では、PG状態から電源電圧を供給する状態に切り替え、演算を行うための待機状態に切り替える(CPU Core1 Exe.)。
やがてCPU Core2の配置された領域の発熱によってCPU Core2の配置された領域の温度が限界温度Tlimに達すると、CPU Core2への電源電圧の供給を停止してPG状態とする(CPU Core2 PG)。そして、CPU Core1で演算を開始する。CPU Core1は、演算によって電流が流れるため、CPU Core1の配置された領域を中心に発熱する。なお図6(A)に図示する期間t2で、CPU Core1はPG状態から電源電圧を供給する状態に切り替えられているが、待機状態であるため、発熱が小さい。
発熱によって、再度CPU Core1の配置された領域の温度が上昇する。このCPU Core1の配置された領域の温度が上昇する間、CPU Core2をPG状態とすることで、CPU Core2の配置された領域を冷却することができる。そのため、CPU Core1の温度上昇を抑制することができる。その結果、演算装置全体として温度の上昇を抑制することができるため、ファンなどの冷却機構の削減を可能とすることができる。
同様に図6(B)では、2つのGPUコア(GPU Core1、GPU Core2)の演算する状態、PG状態を切り替えて動作させる様子の一例である。初め、GPU Core1に電源電圧の供給をして演算できる状態(GPU Core1 Exe.)とし、GPU Core2への電源電圧の供給を停止してPG状態とする。なお図6(B)に示すグラフは、横軸が時間、縦軸がGPUコアの配置された領域の表面温度を表している。
GPU Core1では、演算によって電流が流れるため、GPU Core1の配置された領域を中心に発熱する。発熱によってGPU Core1の配置された領域の温度が上昇する。GPU Core1の配置された領域の温度が閾値温度Tthに達すると、GPU Core2では、PG状態から電源電圧を供給する状態に切り替え、演算を行うための待機状態に切り替える(GPU Core2 Exe.)。
なおGPU Core1を用いた演算は、GPU Core2を用いた演算より演算量を小さくすることができる。そのため、GPU Core1をGPU Core2に比べて積極的に用いるようにすることで、消費電力の低減、発熱の抑制、およびPG状態への切り替えをおこなう頻度を低減することができる。
やがてGPU Core1の配置された領域の発熱によってGPU Core1の配置された領域の温度が限界温度Tlimに達すると、GPU Core1への電源電圧の供給を停止してPG状態とする(GPU Core1 PG)。そして、GPU Core2で演算を開始する。GPU Core2は、演算によって電流が流れるため、GPU Core2の配置された領域を中心に発熱する。なお図6(B)に図示する期間t3で、GPU Core2はPG状態から電源電圧の供給をする状態に切り替えられているが、待機状態であるため、発熱が小さい。
発熱によってGPU Core2の配置された領域の温度が上昇する。このGPU Core2の配置された領域の温度が上昇する間、GPU Core1をPG状態とすることで、GPU Core1の配置された領域を冷却することができる。そのため、GPU Core2の温度上昇を抑制することができる。その結果、演算装置全体として温度の上昇を抑制することができるため、ファンなどの冷却機構の削減を可能とすることができる。そして、GPU Core2の配置された領域の温度が閾値温度Tthに達すると、GPU Core1では、PG状態から電源電圧を供給する状態に切り替え、演算を行うための待機状態に切り替える(GPU Core1 Exe.)。
やがてGPU Core2の配置された領域の発熱によってGPU Core2の配置された領域の温度が限界温度Tlimに達すると、GPU Core2への電源電圧の供給を停止してPG状態とする(GPU Core2 PG)。そして、GPU Core1で演算を開始する。GPU Core1は、演算によって電流が流れるため、GPU Core1の配置された領域を中心に発熱する。なお図6(B)に図示する期間t4で、GPU Core1はPG状態から電源電圧の供給する状態に切り替えられているが、待機状態であるため、発熱が小さい。
発熱によって、再度GPU Core1の配置された領域の温度が上昇する。このGPU Core1の配置された領域の温度が上昇する間、GPU Core2をPG状態とすることで、GPU Core2の配置された領域を冷却することができる。そのため、GPU Core1の温度上昇を抑制することができる。その結果、演算装置全体として温度の上昇を抑制することができるため、ファンなどの冷却機構の削減を可能とすることができる。
図7は、CPUコア1(またはCPUコア2。以下図7の説明ではCPUコア1として説明)で実行するプログラムの演算の一部をGPUコア1(またはGPUコア2。以下図7の説明ではGPUコア1として説明)で実行する場合の、動作の一例を説明する図である。
CPUコア1(CPU Core1)にて、ホストプログラムが実行される(ステップS1)。このとき、GPUコア1(GPU Core1)はPG状態(電源電圧の供給が停止される状態)である。
CPUコア1は、GPUを用いて演算を行う際に必要とされるデータ用領域を、デバイスメモリに確保するとの命令を確認した場合(ステップS2)、該データ用領域を、デバイスメモリ上に確保する(ステップS3)。
次に、CPUコア1は、メインメモリから上記デバイスメモリへ入力データを送信する(ステップS4)。上記デバイスメモリは該入力データを受信し、該入力データを、ステップS2で確保された領域に格納する(ステップS5)。
CPUコア1は、カーネルプログラムを起動するとの命令を確認した場合(ステップS6)、GPUコア1は、PG状態から演算を行う状態(電源電圧が供給される状態)へ切り替えられ、カーネルプログラムの実行を開始する(ステップS7)。
GPUコア1がカーネルプログラムの実行を開始した直後、CPUコア1を、演算を行う状態からPG状態へと切り替えてもよい(ステップS8)。その場合、GPUコアがカーネルプログラムの実行を終了する直前に、CPUコア1は、PG状態から演算を行う状態へ切り替えられる(ステップS9)。ステップS8からステップS9までの期間、CPUコア1をPG状態にすることで、演算装置全体として消費電力および発熱を抑制することができる。
GPUコア1がカーネルプログラムの実行を終了すると、出力データが上記デバイスメモリに格納される(ステップS10)。その後、GPUコア1は、演算を行う状態からPG状態へと切り替えられる。
カーネルプログラムの実行が終了した後、CPUコア1は、デバイスメモリに格納された出力データをメインメモリへ送信するとの命令を確認した場合(ステップS11)、上記の出力データが上記メインメモリへ送信され、上記メインメモリに格納される(ステップS12)。
CPUコア1は、デバイスメモリ上に確保されたデータ用領域を解放するとの指示を確認した場合(ステップS13)、上記デバイスメモリ上に確保された領域が解放される(ステップS14)。
以上のステップS1からステップS14までの動作を繰り返すことにより、CPUコア1およびGPUコア1の消費電力および発熱を抑制しつつ、CPUコア1で実行するプログラムの演算の一部をGPUコア1で実行することができる。
図8は、図7と同様にCPUコア1(またはCPUコア2。以下図8の説明ではCPUコア1として説明)で実行するプログラムの演算の一部をGPUコアで行う場合において、GPUコアで行う演算の種類に応じて演算に用いるGPUコアを切り替える際の動作の一例を説明する図である。ここで、一方のGPUコア(例えばGPUコア1)を、アナログ値を量子化することで2ビット以上のデジタルデータとして演算処理を行うことのできるGPUコアとし、他方のGPUコア(例えばGPUコア2)を、デジタル値を用いた演算処理を行うことのできるGPUコアとする。
図8に示すステップS21からステップS25までの動作については、図7に示すステップS1からステップS5までの動作の説明を参酌することができる。
CPUコア1(CPU Core1)は、カーネルプログラムを起動するとの命令を確認した場合(ステップS26)、カーネルプログラムの種類によって、演算を実行するのに最適なGPUコアを選択する。選択されたGPUコアは、PG状態から演算を行う状態へと切り替えられ、カーネルプログラムの実行を開始する。カーネルプログラムの実行が終了した後、該GPUコアは、演算を行う状態からPG状態へと切り替えられる。なお、該GPUコアが演算を行っている期間、CPUコア1をPG状態にしてもよい。当該構成とすることで、演算装置全体として消費電力および発熱を抑制することができる。
例えば、カーネルプログラムが、機械学習に基づく推論処理である場合(ステップS27)、GPUコア1(GPU Core1)が選択され、カーネルプログラムの実行を開始する(ステップS29)。カーネルプログラムの実行が終了すると、出力データがデバイスメモリ上に格納される(ステップS31)。その後、GPUコア1は、演算を行う状態からPG状態へと切り替えられる。
また、例えば、カーネルプログラムが、科学技術計算である場合(ステップS28)、GPUコア2(GPU Core2)が選択され、カーネルプログラムの実行を開始する(ステップS30)。カーネルプログラムの実行が終了すると、出力データがデバイスメモリ上に格納される(ステップS32)。その後、GPUコア2は、演算を行う状態からPG状態へと切り替えられる。
図8に示すステップS33からステップS36までの動作については、図7に示すステップS11からステップS14までの動作の説明を参酌することができる。
以上のステップにより、GPUコアで行う演算の種類に応じて演算に用いるGPUコアを切り替えることで、CPUコア1で実行するプログラムの演算の一部をGPUコアで行うことができる。
図9は、より具体的な演算装置の構成を説明するためのブロック図の一例である。
図9に図示する演算装置100Dは、CPU110、GPU120、オンチップメモリ131、DMAC(Direct Memory Access Controller)141、電源回路160、パワーマネジメントユニット(PMU)142、セキュリティー回路147、メモリコントローラ143、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)コントローラ144、USB(Universal Serial Bus)インターフェース回路145、ディスプレイインターフェース回路146、ブリッジ回路150、割り込み制御回路151、インターフェース回路152、バッテリー制御回路153、およびADC(Analog−to−digital converter)/DAC(Digital−to−analog converter)インターフェース回路154を有する。
CPU110は、CPUコア111、命令キャッシュ112、データキャッシュ113、およびバスインターフェース回路114を有する。GPU120は、GPUコア121、オンサイトメモリ122、ADC/DAC123、および制御回路124を有する。
CPUコア111は、複数のCPUコアを有する。例えば、図1で説明したようにCPUコア11AおよびCPUコア11Bを有する構成とすればよい。命令キャッシュ112は、CPUコア11AおよびCPUコア11Bで実行する命令を一時的に記憶する回路構成とすればよい。データキャッシュ113は、CPUコア11AおよびCPUコア11Bで処理するデータまたは処理によって得られたデータを一時的に記憶する回路構成とすればよい。バスインターフェース回路114は、CPU110と、演算装置内の他の回路とを接続するためのバスとデータやアドレス等の信号を送受信することができる回路構成であればよい。
GPUコア121は、複数のGPUコアを有する。例えば、図1で説明したようにGPUコア33AおよびGPUコア33Bを有する構成とすればよい。オンサイトメモリ122は、GPUコア33AおよびGPUコア33Bで処理するデータおよびGPU30が実行するプログラムを一時的に記憶する回路構成とすればよい。ADC/DAC123は、処理するデータのアナログ値とデジタル値の変換を相互に行うための回路構成とすればよい。制御回路124は、GPU120内の回路を制御するための回路構成とすればよい。
高速バス140Aは、CPU110、GPU120、オンチップメモリ131、DMAC141、パワーマネジメントユニット142、セキュリティー回路147、メモリコントローラ143、DDR SDRAMコントローラ144、USBインターフェース回路145、およびディスプレイインターフェース回路146の間の各種信号を高速で送受信するためのバスである。一例としては、AMBA(Advanced Microcontoroller Bus Artcitecture)−AHB(Advanced High−perfermance Bus)をバスとして用いることができる。
オンチップメモリ131は、演算装置100Dが有する回路、例えばCPU110またはGPU120に入出力するデータまたはプログラムを記憶するための回路構成を有する。
DMAC141は、ダイレクトメモリアクセスコントローラである。DMAC141を有することで、CPU110以外の周辺機器は、CPU110を介さずにオンチップメモリ131にアクセスすることができる。
パワーマネジメントユニット142は、演算装置100Dが有するGPUコアやCPUコア等の回路のパワーゲーティングを制御するための回路構成を有する。
セキュリティー回路147は、演算装置100Dと外部の回路との間で暗号化して信号を送受信するなど、信号の秘匿性を高めるための回路構成を有する。
メモリコントローラ143は、演算装置100Dの外部にあるプログラムメモリからCPU110またはGPU120で実行するためのプログラムを書き込みまたは読み出しを行うための回路構成を有する。
DDR SDRAMコントローラ144は、演算装置100Dの外部にあるDRAM等のメインメモリとの間でデータを書き込みまたは読み出しを行うための回路構成を有する。
USBインターフェース回路145は、演算装置100Dの外部にある回路とUSB端子を介してデータの送受信を行うための回路構成を有する。
ディスプレイインターフェース回路146は、演算装置100Dの外部にあるディスプレイデバイスとデータの送受信を行うための回路構成を有する。
電源回路160は、演算装置100D内で用いる電圧を生成するための回路である。例えば、osトランジスタのバックゲートに与える、電気的特性を安定化するための負電圧を生成する回路である。
低速バス140Bは、割り込み制御回路151、インターフェース回路152、バッテリー制御回路153、およびADC/DACインターフェース回路154の間の各種信号を低速で送受信するためのバスである。一例としては、AMBA−APB(Advanced Peripheral Bus)をバスとして用いることができる。高速バス140Aと低速バス140Bとの間の各種信号の送受信は、ブリッジ回路150を介して行う。
割り込み制御回路151は、周辺機器から受け取る要求に対して、割り込み処理を行うための回路構成を有する。
インターフェース回路152は、UART(Universal Asynchronous Receiver/Transmitter)や、I2C(Inter−Integrated Circuit)、SPI(Serial Peripheral Interface)などのインターフェースを機能させるための回路構成を有する。
バッテリー制御回路153は、演算装置100Dの外部にあるバッテリーの充放電に関するデータを送受信するための回路構成を有する。
ADC/DACインターフェース回路154は、演算装置100Dの外部にあるMEMS(Micro Electro Mechanical Systems)デバイス等のアナログ信号を出力するデバイスとの間でデータを送受信するための回路構成を有する。
図10(A)、(B)は、SoC化した際の回路ブロックの配置の一例を示す図である。図10(A)に図示する演算装置100Dのように図9のブロック図で図示した各構成は、チップ上で領域を区切って配置することができる。
なお図9で説明したオンチップメモリ131や、GPU120が有するオンサイトメモリ122は、osメモリ、例えばNOSRAM等で構成することができる。つまりオンチップメモリ131とオンサイトメモリ122とは、同じ回路構成を有する。そのため、SoC化した際、図10(B)に図示する演算装置100Eのようにオンチップメモリ131とオンサイトメモリ122とを一体化して同じ領域内に配置することも可能である。
以上説明した本発明の一態様により、新規な演算装置および電子機器を提供することができる。又は、本発明の一態様により、消費電力の小さい演算装置および電子機器を提供することができる。又は、本発明の一態様により、高速動作が可能な演算装置および電子機器を提供することができる。又は、本発明の一態様により、発熱の抑制が可能な演算装置および電子機器を提供することができる。
(実施の形態2)
本実施の形態では、パワーゲーティングが可能なCPUコアを有するCPUの一例について説明する。
<<CPU190>>
図11に、CPU190の構成例を示す。CPU190は、CPUコア(CPU Core)200、L1(レベル1)キャッシュメモリ装置(L1 Cache)202、L2キャッシュメモリ装置(L2 Cache)203、バスインターフェース部(BusI/F)205、パワースイッチ210~212、レベルシフタ(LS)214を有する。CPUコア200はフリップフロップ220を有する。
バスインターフェース部205によって、CPUコア200、L1キャッシュメモリ装置202、L2キャッシュメモリ装置203が相互に電気的に接続される。
外部から入力される割り込み信号(Interrupts)、CPU190が発行する信号SLEEP1等の信号に応じて、PMU193はクロック信号GCLK1、各種のPG(パワーゲーティング)制御信号(PG control signals)の生成を行う。クロック信号GCLK1、PG制御信号はCPU190に入力される。PG制御信号は、パワースイッチ210~212、フリップフロップ220を制御する。
パワースイッチ210、211は、仮想電源線V_VDD(以下、V_VDD線と呼ぶ)への電圧VDDD、VDD1の供給をそれぞれ制御する。パワースイッチ212は、仮想電源線V_VDH(以下、V_VDH線と呼ぶ。)への電圧VDDHの供給を制御する。CPU190、PMU193には、パワースイッチを介さずに電圧VSSSが入力される。PMU193には、パワースイッチを介さずに電圧VDDDが入力される。
電圧VDDD、VDD1はCMOS回路用の駆動電圧である。電圧VDD1は電圧VDDDよりも低く、スリープ状態での駆動電圧である。電圧VDDHはosトランジスタ用の駆動電圧であり、電圧VDDDよりも高い。
L1キャッシュメモリ装置202、L2キャッシュメモリ装置203、バスインターフェース部205それぞれは、少なくとも1つパワーゲーティング可能なパワードメインを有する。パワーゲーティング可能なパワードメインには、1または複数のパワースイッチが設けられている。これらのパワースイッチは、PG制御信号によって制御される。
フリップフロップ220は、レジスタに用いられる。フリップフロップ220には、バックアップ回路が設けられている。バックアップ回路は、osメモリで構成されている。以下、フリップフロップ220について説明する。
<フリップフロップ(Flip−flop)220>
図12にフリップフロップ220の回路構成例を示す。フリップフロップ220はスキャンフリップフロップ(Scan Flip−flop)221、バックアップ回路(Buckup Circuit)222を有する。
(スキャンフリップフロップ221)
スキャンフリップフロップ221は、ノードD1、Q1、SD、SE、RT、CK、クロックバッファ回路221Aを有する。
ノードD1はデータ(data)入力ノードであり、ノードQ1はデータ出力ノードであり、ノードSDはスキャンテスト用データの入力ノードである。ノードSEは信号SCEの入力ノードである。ノードCKはクロック信号GCLK1の入力ノードである。クロック信号GCLK1はクロックバッファ回路221Aに入力される。スキャンフリップフロップ221のアナログスイッチは、クロックバッファ回路221AのノードCK1、CKB1に電気的に接続される。ノードRTはリセット信号(reset signal)の入力ノードである。
信号SCEは、スキャンイネーブル信号であり、PMU193で生成される。PMU193は信号BK、RCを生成する。レベルシフタ214は信号BK、RCをレベルシフトし、信号BKH、RCHを生成する。信号BK、RCはバックアップ信号、リカバリ信号である。
スキャンフリップフロップ221の回路構成は、図12に限定されない。標準的な回路ライブラリに用意されているフリップフロップを適用することができる。
(バックアップ回路222)
バックアップ回路222は、ノードSD_IN、SN11、トランジスタM11~M13、容量素子C11を有する。
ノードSD_INは、スキャンテストデータの入力ノードであり、スキャンフリップフロップ221のノードQ1に電気的に接続される。ノードSN11は、バックアップ回路222の保持ノードである。容量素子C11はノードSN11の電圧を保持するための保持容量である。
トランジスタM11はノードQ1とノードSN11間の導通状態を制御する。トランジスタM12はノードSN11とノードSD間の導通状態を制御する。トランジスタM13はノードSD_INとノードSD間の導通状態を制御する。トランジスタM11、M13のオンオフは信号BKHで制御され、トランジスタM12のオンオフは信号RCHで制御される。
トランジスタM11~M13は、後述するトランジスタM1と同様に、バックゲートを有するosトランジスタである。トランジスタM11~M13のバックゲートは、電圧VBG1を供給する電源線に電気的に接続されている。
少なくともトランジスタM11、M12がosトランジスタであることが好ましい。オフ電流が極めて小さいというosトランジスタの特長によって、ノードSN11の電圧の低下を抑えることができること、データの保持に電力を殆んど消費しないことから、バックアップ回路222は不揮発性の特性をもつ。容量素子C11の充放電によってデータを書き換えるため、バックアップ回路222は原理的には書き換え回数に制約はなく、低エネルギーで、データの書き込みおよび読み出しが可能である。
バックアップ回路222の全てのトランジスタはosトランジスタであることが非常に好ましい。図12(B)に示すように、シリコンCMOS回路で構成されるスキャンフリップフロップ221上にバックアップ回路222を積層することができる。
バックアップ回路222は、スキャンフリップフロップ221と比較して素子数が非常に少ないので、バックアップ回路222を積層するためにスキャンフリップフロップ221の回路構成およびレイアウトの変更が必要ない。つまり、バックアップ回路222は、汎用性が非常に高いバックアップ回路である。また、スキャンフリップフロップ221が形成されている領域内にバックアップ回路222を設けることができるので、バックアップ回路222を組み込んでも、フリップフロップ220の面積オーバーヘッドはゼロにすることが可能である。よって、バックアップ回路222をフリップフロップ220に設けることで、CPUコア200のパワーゲーティングが可能となる。パワーゲーティングに必要なエネルギーが少ないため、CPUコア200を高効率にパワーゲーティングすることが可能である。
バックアップ回路222を設けることによって、トランジスタM11による寄生容量がノードQ1に付加されることになるが、ノードQ1に接続される論理回路による寄生容量と比較して小さいので、スキャンフリップフロップ221の動作に影響はない。つまり、バックアップ回路222を設けても、フリップフロップ220の性能は実質的に低下しない。
<低消費電力状態>
CPUコア200の低消費電力状態として、例えば、クロックゲーティング状態、パワーゲーティング状態、休止状態を設定することができる。PMU193は、割り込み信号、信号SLEEP1等に基づき、CPUコア200の低消費電力モードを選択する。例えば、通常動作状態からクロックゲーティング状態に移行する場合、PMU193はクロック信号GCLK1の生成を停止する。
例えば、通常動作状態から休止状態に移行する場合は、PMU193は、電圧および/または周波数スケーリングを行う。例えば、電圧スケーリングを行う場合、PMU193は、電圧VDD1をCPUコア200に入力するため、パワースイッチ210をオフにし、パワースイッチ211をオンにする。電圧VDD1は、スキャンフリップフロップ221のデータを消失させない電圧である。周波数スケーリングを行う場合、PMU193はクロック信号GCLK1の周波数を低下させる。
CPUコア200を通常動作状態からパワーゲーティング状態に移行する場合には、スキャンフリップフロップ221のデータをバックアップ回路222にバックアップする動作が行われる。CPUコア200をパワーゲーティング状態から通常動作状態に復帰する際には、バックアップ回路222のデータをスキャンフリップフロップ221に書き戻すリカバリ動作が行われる。
図13に、CPUコア200のパワーゲーティングシーケンスの一例を示す。なお、図13において、t1~t7は時刻を表している。信号PSE0~PSE2は、パワースイッチ210~212の制御信号であり、PMU193で生成される。信号PSE0が“H”/“L”のとき、パワースイッチ210はオン/オフである。信号PSE1、PSE2についても同様である。
(通常動作(Normal Operation))
時刻t1以前は、通常動作状態である。パワースイッチ210はオンであり、CPUコア200には電圧VDDDが入力される。スキャンフリップフロップ221は通常動作を行う。このとき、レベルシフタ214は動作させる必要がないため、パワースイッチ212はオフであり、信号SCE、BK、RCは“L”である。ノードSEが“L”であるため、スキャンフリップフロップ221はノードD1のデータを記憶する。なお、図13の例では、時刻t1において、バックアップ回路222のノードSN11は“L”である。
(バックアップ(Backup))
時刻t1で、PMU193はクロック信号GCLK1を停止し、信号PSE2、BKを“H”にする。レベルシフタ214はアクティブになり、“H”の信号BKHをバックアップ回路222に出力する。
バックアップ回路222のトランジスタM11がオンになり、スキャンフリップフロップ221のノードQ1のデータがバックアップ回路222のノードSN11に書き込まれる。スキャンフリップフロップ221のノードQ1が“L”であれば、ノードSN11は“L”のままであり、ノードQ1が“H”であれば、ノードSN11は“H”になる。
PMU193は、時刻t2で信号PSE2、BKを“L”にし、時刻t3で信号PSE0を“L”にする。時刻t3で、CPUコア200の状態はパワーゲーティング状態に移行する。なお、信号BKを立ち下げるタイミングで信号PSE0を立ち下げてもよい。
(パワーゲーティング(Power−gating))
信号PSE0が“Lになることで、V_VDD線の電圧が低下するため、ノードQ1のデータは失われる。ノードSN11は、時刻t3でのノードQ1のデータを保持し続ける。
(リカバリ(Recovery))
時刻t4で、PMU193が信号PSE0を“H”にすることで、パワーゲーティング状態からリカバリ状態に移行する。V_VDD線の充電が開始され、V_VDD線の電圧がVDDDになった状態(時刻t5)で、PMU193は信号PSE2、RC、SCEを“H”にする。
トランジスタM12はオンになり、容量素子C11の電荷がノードSN11とノードSDとに分配される。ノードSN11が“H”であれば、ノードSDの電圧は上昇する。ノードSEは“H”であるので、スキャンフリップフロップ221の入力側ラッチ回路にノードSDのデータが書き込まれる。時刻t6でノードCKにクロック信号GCLK1が入力されると、入力側ラッチ回路のデータがノードQ1に書き込まれる。つまり、ノードSN11のデータがノードQ1に書き込まれたことになる。
時刻t7で、PMU193は信号PSE2、SCE、RCを“L”にし、リカバリ動作が終了する。
osトランジスタを用いたバックアップ回路222は、動的および静的低消費電力双方が小さいため、ノーマリオフ・コンピューティングに非常に好適である。フリップフロップ220を搭載しても、CPUコア200の性能低下、動的電力の増加をほとんど発生させないようにできる。
なお、CPUコア200は複数のパワーゲーティング可能なパワードメインを有してもよい。複数のパワードメインには、電圧の入力を制御するための1または複数のパワースイッチが設けられる。また、CPUコア200は、1または複数のパワーゲーティングが行われないパワードメインを有していてもよい。例えば、パワーゲーティングが行われないパワードメインに、フリップフロップ220、パワースイッチ210~212の制御を行うためのパワーゲーティング制御回路を設けてもよい。
なお、フリップフロップ220の適用はCPU190に限定されない。演算装置において、パワーゲーティング可能なパワードメインに設けられるレジスタに、フリップフロップ220を適用できる。
(実施の形態3)
本実施の形態では、上記実施の形態で説明した演算装置をSoC化した集積回路(以下、osAIチップ)について、具体的な構成例を説明する。以下では、データ保持回路にアナログ値を保持して演算処理(アナログ演算ともいう)を行うosAIチップ(アナログosAIチップ)として説明する。なおアナログosAIチップは、実施の形態4で後述する、データ保持回路にデジタル値を保持して演算処理(デジタル演算ともいう)を行うosAIチップ(プログラマブルosAIチップ)と、を1つのSoC化したosAIチップとすることができる。
<<アナログosAIチップ>>
ここでは、アナログ演算を利用した超並列コンピューティングが可能なosAIチップ400について説明する。osAIチップ400は、全結合型ニューラルネットワーク(FCNN)に非常に有利である。osAIチップ400の構成例、動作方法例の理解を容易にするため、FCNNが回路によって構成されているとする。FCNNは、1個の隠れ層をもつ。入力層、隠れ層、出力層のユニット数はそれぞれ1024、128、32である。活性化関数にはReLU(Rectified Linear Unit)が用いられている。osAIチップ400のFCNNは、例えば、手書き文字認識、汎用AIに適用される。
図14は、osAIチップ400の構成例を示す機能ブロック図である。図14に示すosAIチップ(osAI chip)400は、レシーバ(RX)401、デジタル−アナログコンバータ(DAC)403、404、積和演算回路(MAC)アレイ(MACと図示)405、406、ゲートドライバ(Gate driver)407、アナログ−デジタルコンバータ(ADC)408、トランスミッタ(TX)409を有する。
osAIチップ400のデータ伝送方式は差動伝送方式である。例えば、レシーバ401として、LVDS(小振幅差動伝送方式:Low Voltage Differential Signaling)レシーバが用いられ、トランスミッタ409としてLVDSトランスミッタが用いられる。
リセット信号reset_nは、osAIチップ400をリセットする。
データin_w[7:0]は、学習済みデータ(Learned data)である。例えば、重み係数を表す8ビットデジタル信号である。イネーブル信号en_la_w、クロック信号dclk_wに従い、DAC404は、データin_w[7:0]をアナログデータに変換する。ゲートドライバ407は、MACアレイ405、406へのアナログデータの書込みを制御する。ゲートドライバ407には、クロック信号gclk、パルス幅制御信号gpwc、スタートパルス信号gspが入力される。
osAIチップ400が処理するデータは8ビットデジタルデータであり、差動伝送方式で入力される。例えば、レシーバ401として、LVDSレシーバが用いられる。レシーバ401は、差動クロック信号rx_clp、rx_clnに従い、入力データrx_dp[7:0]、rx_dn[7:0]をシングルエンド形式の8ビットデータに変換する。DAC403は、この8ビットデータをアナログデータに変換する。DAC403から出力されるアナログデータは、逐次MACアレイ405に書き込まれる。
<MACアレイ405、406>
図15を参照して、MACアレイ405の回路構成例を説明する。MACアレイ405には、1024行144列の行列状に乗算回路40が設けられている。乗算回路40は、図27(B)のosメモリ382と同じ回路構成である。つまり、乗算回路40は、演算回路と、重み係数を記憶する不揮発性ローカルメモリ回路双方の機能を持つ。このことにより、osAIチップ400は、GPUと比べて非常に少ないトランジスタ数によって、超並列演算を実現できる。トランジスタ数の低減は、osAIチップ400の小型化、消費電力の低減につながる。
MACアレイ405には、乗算回路40の配列に応じて、ゲート線GL1、データ線RX1、WD1、RD1が設けられている。データ線WD1は重み係数データを乗算回路40に入力するための配線である。データ線WD1には、DAC404からアナログデータが入力される。ゲート線GL1は、重み係数データを入力する乗算回路40を選択するための信号線である、ゲート線GL1は、ゲートドライバ407によって駆動される。
乗算回路40に重み係数データw0を書き込むことで、乗算回路40の保持ノード(読出しトランジスタのゲート)の電圧は、重み係数データに応じた電圧Vw0となる。
データ線RX1は、CFNNが処理するデータの入力用配線である。データ線RX1には、DAC403からアナログデータが入力される。データ線RD1には、乗算回路40の演算結果が読みだされる。データ線RD1には、電流源42、オフセット回路43が電気的に接続されている。
乗算回路40に流れる電流I0は、保持ノードの電圧Vw0とデータ線RX1の電圧Vx0の積に比例する。つまり、電流I0は、重み係数と入力データの積を表している。同様に、電流I1は、保持ノードの電圧Vw1と電圧Vx1との積に比例する。つまり乗算回路40は、重み係数データと入力データとの積を計算することができる。
データ線RD1あたり1024個の乗算回路40が電気的に接続されている。電流源42は参照電流Irefを生成する。オフセット回路43に入力される電流Ioutは、参照電流Irefと電流Imacとの差分である。電流Imacは、1024個の乗算回路40を流れる電流の総和であり、重み係数と入力データとの積和した値を表す。参照電流IrefとImacとの差分をとることで、電流Ioutのノイズ成分を低減できる。
オフセット回路43は、電流Ioutを電圧Voutに変換し、参照電圧Vrefと電圧Voutとの差分をとる。これにより、電圧Voutのノイズ成分が低減される。オフセット回路43は、VrefとVoutとの差分電圧を増幅して、活性化関数回路44に出力する。活性化関数回路44は処理したデータをMACアレイ406に出力する。
なお、MACアレイ405の144列のうちの16列は、電流Ioutの生成に寄与せず積和演算に用いられる参照データを保持する。
MACアレイ406は、MACアレイ405と同様の構成である。乗算回路40が36行128列の行列状に配置されている。MACアレイ406において、36行のうちの4行は、電流Ioutの生成に寄与せず、参照データの保持に用いられる。
図14に示すイネーブル信号en_cmは、MACアレイ405、406の電流源42用のイネーブル信号である。イネーブル信号en_absは、MACアレイ405、406のオフセット回路43用のイネーブル信号であり、信号osp1、osn1、en_res1はMACアレイ405のオフセット回路43の制御信号であり、信号osp2、osn2、en_res2はMACアレイ406のオフセット回路43の制御信号である。
<ADC408、トランスミッタ409>
ADC408には、MACアレイ406から32のアナログデータが並列に入力される。ADC408は、シリアルパラレル変換を行うため、出力段にレジスタを備える。ADC408は、1チャネルの8ビットデジタルデータを出力する。
信号clk_sar、res_ser、go、stby_adcは、それぞれ、ADC408用のクロック信号、リセット信号、イネーブル信号、スタンバイ信号である。信号dclk_p2s、en_p2s_per、en_p2s_serは、それぞれ、レジスタ用のクロック信号、ラッチ信号、出力イネーブル信号である。ADC408には、32のアナログデータが入力され、8ビットデジタルデータをトランスミッタ409へ出力する。信号stby_txはトランスミッタ409用のスタンバイ信号である。
トランスミッタ409は、信号dclk_p2sに応じて、8ビットデジタルデータを差分形式のデータtx_dp[7:0]、tx_dn[7:0]に変換し、出力し、信号dclk_p2sを差分形式のクロック信号tx_clp、tx_clnに変換し、出力する。差分データtx_dp[7:0]、tx_dn[7:0]は、FCNNが取得した32種類の推論データである。
MACアレイ405、406の入力および出力データはアナログデータであるので、入出力データがデジタルデータである場合と比較し、MACアレイ405、406の配線数を大幅に低減することができる。乗算回路40は、乗算機能と、重み係数データの保持機能双方を備えるため、演算時にデータを読み込むことがない。つまり、乗算回路40は、データの授受の時間ペナルティーおよび電力ペナルティーが実質的にない。
並列処理アーキテクチャをもつプロセッサとしてGPUが知られている。GPUも、CPUと同様に、演算部とメモリ部間のデータ授受が演算効率のボトルネックとされている。これに対して、osAIチップ400はこのような問題点がない。
乗算回路40は、2Tゲインセルと同じ回路構成であり、少ないトランジスタ数によって、アナログデータの掛け算を行うことができる。したがって、多数の乗算回路40を用いて、積和演算部を構成することで、低消費電力で、超並列演算処理が可能なosAIチップ400を提供することができる。例えば、乗算回路40の数が10乃至10個程度であり、動作周波数3MHz又は30MHzである場合、osAIチップ400の演算性能は、3TOPS(Tera Operations Per Second)乃至3POPS(Peta OPS)程度である。
(実施の形態4)
<<プログラマブルosAIチップ>>
ここで示すosAIチップ450は、プログラマブルニューラルネットワークを構成できる。osAIチップ450が演算するデータの形式はデジタルである。osAIチップ450の演算回路は、専用の不揮発性ローカルメモリ回路を有し、不揮発性ローカルメモリはosメモリで構成されている。osAIチップ450上に構成されたニューラルネットワークは、例えば、各種画像処理(例えば、ノイズ除去、高解像度化)、物体認識、汎用AIとして用いることができる。
図16は、osAIチップ450の構成例を示す機能ブロック図である。osAIチップ(osAI chip)450は、コントローラ(Controller)460、I2Cモジュール(I2C)462、レシーバ(RX)463、トランスミッタ(TX)464、データドライバ(Data driver)466、ワードドライバ(Word driver)467を有する。コントローラ460は、演算回路アレイ470、演算部471、SRAM472、セレクタ474、475、デマルチプレクサ476を有する。
osAIチップ450の入力データには、動作設定データ(Operation setting data)、学習済みデータ(Learned data)、パイプライン構造データ(Pipeline construction data)、演算回路アレイ470が処理するデータ(Input data)がある。学習済みデータ、パイプライン構造データは、コントローラ460のコンフィギュレーションデータとして、osAIチップ450に入力される。
データsdaはシリアル形式の動作設定データであり、I2Cモジュール462に書き込まれる。I2Cモジュール462は、書き込まれた動作設定データをコントローラ460に出力する。信号i2c_clk、i2c_resetb、sclは、それぞれ、I2Cコントローラ用クロック信号、I2Cリセット信号、I2Cクロック信号である。信号O_SAVE、O_LOAD、OS_USEは、動作設定データのバックアップ制御に用いられる。
データDATA0は、データドライバ466に入力される。データDATA0はコンフィグレーションデータである。データドライバ466からは信号nSTATUSが出力される。信号nSTATUSは、コンフィギュレーション状態をあらわす信号である。
osAIチップ450へのデータ伝送方式には、シングルエンド方式と、LVDS方式とが可能である。データdin[7:0]はシングルエンド方式の入力データであり、セレクタ474に入力される。レシーバ463は、osAIチップ400のレシーバと同様の構成であり、差動クロック信号rx_clp、rx_clnに従い、差動入力データrx_dp[7:0]、rx_dn[7:0]をシングルエンド方式のデータrx_ds[7:0]に変換し、セレクタ474に出力する。信号stby_rx、hpe_rxはそれぞれ、レシーバ463のスタンバイ信号である。
信号nCONFIG、DCLKがコントローラ460に入力され、コントローラ460は信号CONF_DONEを出力する。信号nCONFIG、DCLKはそれぞれ、コンフィギュレーション開始信号、コンフィギュレーション用クロック信号である。信号CONF_DONEはコンフィギュレーションが完了したことを表す信号である。
信号sys_clk、sys_resetb、user_resetb、context_ex[5:0]は、それぞれ、システムクロック信号、システムリセット信号、ユーザリセット信号、外部コンテキスト信号である。信号data_enは、コントローラ460への入力データの伝送を実行する期間を設定する信号である。これらの信号は、コントローラ460に入力される。コントローラ460は信号State[2:0]、substate[2:0]を出力する。信号State[2:0]、substate[2:0]はそれぞれコントローラ460内部の状態、サブ状態をあらわす。
演算回路アレイ470には、セレクタ475の出力データが入力される。演算回路アレイ470は処理したデータを演算部471に出力する。演算部471の出力データはSRAM472で一時的に記憶される。SRAM472から読み出されたデータは、セレクタ475、デマルチプレクサ476に出力される。セレクタ475は、セレクタ474の出力データ、SRAM472の出力データの何れか一方を演算回路アレイ470に出力する。
デマルチプレクサ476は、データの出力形式を選択する機能をもつ。デマルチプレクサ476の一方の出力データは、シングルエンド形式のデータdout[7:0]としてosAIチップ450外部に出力される。他方の出力データはトランスミッタ464で処理され、差動形式のデータtx_dp[7:0]、tx_dn[7:0]に変換され、osAIチップ450外部に出力される。
<演算回路アレイ470>
図17~図21を参照して、演算回路アレイ470について説明する。図17に示すように、演算回路アレイ470は、複数の演算回路61、複数のスイッチ回路62が行列状に設けられている。演算回路61、スイッチ回路62はプログラマブル回路である。演算回路アレイ470の処理内容に合わせて、演算回路61は回路構成される。演算回路アレイ470の処理内容に合わせて、スイッチ回路62の回路構成を変更することにより、演算回路61の接続関係が変更される。
なお、図17中の「U」、「D、「L」、「R」はスイッチ回路62の配線の名称であり、かつ接続方向(上、下、左、右)を表している。
図18に演算回路61の構成例を示す。演算回路61は、入力レジスタ51、メモリ回路52、乗算回路53、加算回路54、出力レジスタ55A、55B、セレクタ56A~56D、メモリ回路57A~57Cを有する。メモリ回路52、57A~57Cは、演算回路61の不揮発性ローカルメモリ回路であり、osメモリが適用されている。
入力レジスタ51には、データsinが入力される。入力レジスタ51はラッチ信号slatの制御でデータsinを保持する。入力レジスタ51は、保持データをデータsoutとして、セレクタ56Aに出力する。メモリ回路57Aの出力信号に従い、セレクタ56Aは、データsinとデータsoutの何れか一方を選択し、選択したデータをデータsdataとして、乗算回路53に出力する。データsoutは、演算回路61の外部に出力される。入力レジスタ51を設けることで、データsinを入力レジスタ51で一時的に保持することで、データsinをシフトしたデータsoutを出力することができる。
メモリ回路52は、コンテキスト信号context_W[1:0]が入力される。コンテキスト信号context_W[1:0]は、信号context_ex[5:0]をデコードすることで生成される内部信号である。メモリ回路52は複数の重み係数データを記憶している。重み係数データは、コンフィギュレーションデータ(configuration data)として、メモリ回路52に書き込まれている。コンフィギュレーションデータはデータドライバ466から伝送される。
図19(A)に示すように、メモリ回路52は、フリップフロップ71、デコーダ72、メモリセル73_0~73_3、トランジスタ77、ラッチ回路78を有する。メモリセル73_0~73_3は、osメモリ383(図27(C)参照)と同じ回路構成であり、3個のosトランジスタでなるゲインセルである。
信号word0~word3はワードドライバ467で生成される。信号word0~word3によって1個のメモリセルが選択され、選択されたメモリセルにコンフィギュレーションデータ(configuration data)が書き込まれる。
フリップフロップ71は、コンテキスト信号context_W[1:0]を保持する。デコーダ72は、コンテキスト信号context_W[1:0]をデコードして、切替え信号context_W0~context_W3を生成し、出力する。切替え信号context_W0~context_W3は、重み係数データを出力するメモリセルを選択する機能を持つ。選択されたメモリセルから読み出された重みデータは、データcmoutとして、乗算回路53へ出力される。トランジスタ77は、データcmoutが読みだされる配線を電圧Vprにプリチャージする機能を持つ。信号prchに従い、トランジスタ77は当該配線をプリチャージする。
図19(B)にメモリセルの他の構成例を示す。図19(B)に示すメモリセル74は、メモリセル73_0の変形例であり、読出しトランジスタのゲートに2個のインバータ回路でなるラッチ回路が設けられている。例えば、これらインバータ回路は、nチャネル型Siトランジスタとpチャネル型SiトランジスタでなるCMOS回路である。
図20にメモリ回路57Aの構成例を示す。メモリ回路57Aは、メモリセル91_0、91_1、トランジスタ92_0、92_1、93を有する。メモリ回路57Aには、コンフィギュレーションデータ(configuration data)、切替え信号context_A0、context_A1、信号wordA0、wordB0、wordA1、wordB1が入力される。
メモリセル91_0、91_1は、それぞれ、2個のosメモリ382(図27(B))で構成される。メモリセル91_0にコンフィギュレーションデータ“1”を書き込む場合は、信号wordA0を“H”にし、信号wordB0、wordA1、wordB1を“L”にする。メモリセル91_0にコンフィギュレーションデータ“0”を書き込む場合は、信号wordB0を“H”にし、信号wordA0、wordA1、wordB1を“L”にする。
セレクタ56Aへ制御信号が出力される間は、トランジスタ93はオフ状態である。切替え信号context_A0、context_A1により、トランジスタ92_0、92_1の何れか一方がオン状態になる。例えば、トランジスタ92_0がオンになると、メモリセル91_0の保持データに応じた論理の制御信号が、セレクタ56Aに出力される。
メモリ回路57B、57Cは、メモリ回路57Aと同じ回路構成をもつ。
乗算回路53は、データsdataとデータcmoutとの積を計算し、計算結果を表すデータmoutを生成する。データmoutは、加算回路54およびセレクタ56Bに出力される。
データainは、他の演算回路61の出力データ、または、セレクタ475の出力データである。加算回路54は、データainとデータmoutとの和を計算し、計算結果を表すデータaoutを生成する。データaoutはセレクタ56B、56Cに出力される。
出力レジスタ55Aはセレクタ56Bの出力データを保持し、出力レジスタ55Bはセレクタ56Cの出力データを保持する。出力レジスタ55A、55Bを設けることで、信号遅延による演算エラーを防ぐことができる。信号res_rgは、出力レジスタ55A、55Bのリセット信号である。
出力レジスタ55Aは保持データをセレクタ56Dに出力する。セレクタ56Dまたは出力レジスタ55Bの出力データが、データacoutとして演算回路61から出力される。
演算回路アレイ470には演算回路61が行列状に配列されているので、演算回路アレイは、積和演算装置として機能させることができる。
演算回路アレイ470の出力データは、演算部471に入力される。例えば、演算部471は、活性化関数の機能および/またはプーリング層の機能を持つ。
<スイッチ回路62の構成>
図21(A)、図21(B)を参照して、スイッチ回路62を説明する。図21(A)に示すように、スイッチ回路62には、8個のスイッチ回路65が設けられている。データsoutの出力用配線66Sは、配線U、D、L、Rのうちの何れか1に電気的に接続される。データacoutの出力用配線67Aについても同様である。
図21(B)に示すように、スイッチ回路65は、フリップフロップ80、デコーダ81、メモリセル83_0、83_1、配線87を有する。配線87は、配線L、R、UまたはDのいずれかの配線である。図21(B)には、4ビットデータを伝えるためのスイッチ回路65を図示している。
フリップフロップ80は、コンテキスト信号context_Cを保持する。デコーダ81は、コンテキスト信号context_Cをデコードして、切替え信号context_C0、context_C1を生成する。メモリセル83_0には信号context_C0、word0が入力され、メモリセル83_1には信号context_C1、word1が入力される。
メモリセル83_0の書込みトランジスタは、バックゲートを有するosトランジスタである。メモリセル83_0において、書込みトランジスタ以外のトランジスタは、バックゲートを有さないnチャネル型Siトランジスタである。なお、メモリセル83_0の全てのトランジスタがosトランジスタであってもよい。メモリセル83_1についても同様である。
信号word0によって、書込みトランジスタをオン状態にすることで、メモリセル83_0へコンフィギュレーションデータ(configuration data)が書き込まれる。切替え信号context_C0によって、メモリセル83_0が選択される場合、メモリセル83_0が保持しているコンフィギュレーションデータに応じて、配線87と演算回路61間の接続状態が決定される。
演算回路61およびスイッチ回路62は不揮発性ローカルメモリ回路を内蔵しているため、演算回路61およびスイッチ回路62は、演算中にosAIチップ450の外部のメモリ装置にアクセスする必要がない。よって、osAIチップ450もosAIチップ400と同様に演算部とメモリ部間のデータ授受が演算効率のボトルネックにならない。演算回路61間でデータの受け渡しと、演算処理とが逐次実行されるため、演算を高効率に行える。
演算回路61およびスイッチ回路62がマルチコンテキスト方式のプログラマブルな回路であるため、少ないハードウエア資源で、超並列演算処理を効率よく実行することが可能である。また、様々なニューラルネットワークをosAIチップ450のハードウエアによって実現することができる。
(実施の形態5)
L1キャッシュメモリ装置202、L2キャッシュメモリ装置203は、osメモリで構成される。osメモリとは、メモリセルにosトランジスタが用いられているメモリのことを指す。例えば、L1キャッシュメモリ装置202、L2キャッシュメモリ装置203は、NOSRAM(登録商標)、またはOSSRAMで構成される。OSSRAMとは、osトランジスタで構成されるバックアップ回路が設けられているSRAMのことである。以下に、NOSRAM、OSSRAMの構成例を示す。
<NOSRAM>
図22(A)はNOSRAMの構成例を示すブロック図である。NOSRAM240には、パワードメイン242、243、パワースイッチ245~247が設けられている。パワードメイン242には、メモリセルアレイ(Memory Cell Array)250が設けられ、パワードメイン243にはNOSRAM240の周辺回路が設けられている。周辺回路は、制御回路(Control Circuit)251、行回路(Row Circuit)252、列回路(Column Circuit)253を有する。
外部からNOSRAM240に電圧VDDD、VSSS、VDHW、VDHR、VBG2、クロック信号GCLK2、アドレス信号Address、信号CE、WE、PSE5が入力される。信号CE、WEは、それぞれ、チップイネーブル信号、書き込みイネーブル信号である。信号PSE5はPMU193で生成され、パワースイッチ245~247のオンオフを制御する。パワースイッチ245~247は、パワードメイン243への電圧VDDD、VDHW、VDHRの入力をそれぞれ制御する。
なお、NOSRAM240に入力される電圧、信号等は、NOSRAM240の回路構成、動作方法に応じて適宜取捨される。例えば、NOSRAM240にパワーゲーティングされないパワードメインを設け、信号PSE5を生成するパワーゲーティング制御回路を設けてもよい。
メモリセルアレイ250は、メモリセル260、書込みワード線WWL、読出しワード線RWL、書込みビット線WBL、読出しビット線RBL、ソース線SLを有する。
図22(B)に示すように、メモリセル260は2T1C(2トランジスタ1容量)型のゲインセルであり、ノードSN1、トランジスタM1、M2、容量素子C1を有する。トランジスタM1は書き込みトランジスタであり、バックゲートを有するosトランジスタである。トランジスタM1のバックゲートは、電圧VBG2を供給する配線BGL2に電気的に接続されている。トランジスタM2は読出しトランジスタであり、pチャネル型Siトランジスタである。容量素子C1はノードSN1の電圧を保持する保持容量である。
電圧VDDD、VSSSはデータ“1”、“0”を表す電圧である。なお、書込みワード線WWL、読み出しワードRWLの高レベル電圧は、それぞれ、VDHW、VDHRである。
図23(A)にメモリセルアレイ250の構成例を示す。図23(A)に示すメモリセルアレイ250では、隣接する2列で1本のソース線が供給されている。
メモリセル260は原理的に書き換え回数に制限はなく、データの書き換えを低エネルギーで行え、データの保持に電力を消費しない。トランジスタM1が極小オフ電流のosトランジスタであるため、メモリセル260は長時間データを保持することが可能である。よって、NOSRAM240で、L1キャッシュメモリ装置202、L2キャッシュメモリ装置203を構成することで、L1キャッシュメモリ装置202、L2キャッシュメモリ装置203を、不揮発性の低消費電力なメモリ装置とすることができる。
メモリセル260の回路構成は、図22(B)の回路構成に限定されない。例えば、読出しトランジスタM2は、バックゲートを有するosトランジスタ、またはnチャネル型Siトランジスタでもよい。或いは、メモリセル260は3T型ゲインセルでもよい。図23(B)、図23(C)に3T型ゲインセルの例を示す。図23(B)に示すメモリセル262は、トランジスタM3~M5、容量素子C3、ノードSN3を有する。トランジスタM3~M5は、書込みトランジスタ、読出しトランジスタ、選択トランジスタである。トランジスタM3はバックゲートを有するosトランジスタであり、トランジスタM4、M5はpチャネル型Siトランジスタである。トランジスタM4、M5を、nチャネル型Siトランジスタまたはバックゲートを有するosトランジスタで構成してもよい。図23(C)に示すメモリセル263では、3個のトランジスタはバックゲートを有するosトランジスタで構成されている。
ノードSN3は保持ノードである。容量素子C3はノードSN3の電圧を保持するための保持容量である。容量素子C3を意図的に設けず、トランジスタM4のゲート容量などで保持容量を構成してもよい。配線PDLはソース線SLに代わる配線であり、配線PLDには固定電圧(例えば、電圧VDDD)が入力される。
制御回路251は、NOSRAM240の動作全般を制御する機能を有する。例えば、制御回路251は、信号CE、WEを論理演算して、外部からのアクセスが書き込みアクセスであるか読み出しアクセスであるかを判断する。
行回路252は、アドレス信号Addressが指定する選択された行の書込みワード線WWL、読出しワード線RWLを選択する機能をもつ。列回路253は、アドレス信号が指定する列の書込みビット線WBLにデータを書き込む機能、および当該列の読出しビット線RBLからデータを読み出す機能をもつ。
<動作例>
図24を参照して、NOSRAM240の動作例を説明する。図24は、NOSRAM240の動作例を示すタイミングチャートである。書込み動作状態(Write)、読出し動作状態(Read)、およびスタンバイ状態(Stand−by)において、パワースイッチ245~247はオンであり、パワードメイン243には電圧VDDD、VDHW、VDHRが入力される。
<書き込み>
“H”の信号CEと、“H”の信号WEとが入力されると、NOSRAM240は書き込み動作を行う。行回路252によって選択された行のワード線WWLは“H”であり、ワード線RWLは“L”である。列回路253によって選択されたビット線WBLには、データに応じた電圧が入力される。選択されたメモリセル260のノードSN1の電圧は、データ“1”が書き込まれた場合VDDDとなり、データ“0”が書き込まれた場合VSSSとなる。
<読み出し>
“H”の信号CEと、“L”の信号WEとが入力されると、NOSRAM240は読み出し動作を行う。列回路253は、ビット線RBLを電圧VSSSにプリチャージし、次に、ソース線SLを“H”にする。次いで、行回路252によって選択された行のワード線RWLは“L”となる。選択行のメモリセル260がデータ“0”を保持している場合、トランジスタM2のゲートには電圧VSSSが入力されているため、トランジスタM2のソース−ドレイン間には大きな電流が流れる。したがって、ビット線RBLは速やかに充電され、ビット線RBLの電位は上昇する。選択行のメモリセル260がデータ“1”を保持している場合、トランジスタM2のゲートには電位VDDDが入力されているため、トランジスタM2はドレイン電流を殆んど流さない。そのため、ビット線RBLはプリチャージ電圧(VSSS)を維持する。
<スタンバイ>
書込みワード線WWL、ソース線SLは“L”であり、読出しワード線RWLは“H”である。メモリセル260のトランジスタM1はオフ状態である。
例えば、NOSRAM240がスタンバイ状態である時間が一定時間を超えると、PMU193はパワースイッチ245~247をオフ状態にし、かつクロック信号GCLK2の入力を停止する。これにより、パワードメイン243はパワーゲーティングされ、NOSRAM240の待機電力を低減できる。
<OSSRAM>
次に、図25、図26を参照して、OSSRAMについて説明する。
図25に示すように、OSSRAM300には、パワードメイン301~303、パワースイッチ310~314が設けられている。パワードメイン301はパワーゲーティングされないパワードメインであり、パワーゲーティング制御回路330が設けられる。パワードメイン302、303はパワーゲーティング可能なパワードメインである。パワードメイン302には、メモリセルアレイ320が設けられ、パワードメイン303には、制御回路331、行回路332、列回路333、バックアップ及びリカバリドライバ335が設けられている。
メモリセルアレイ320は、セル270、ワード線WL、ビット線BL、BLB、ゲート線OGLを有する。なお、ビット線BL、BLBはローカルビット線と呼ぶこともできる。同じ列に設けられているビット線BLとビット線BLBとでなる配線対をビット線対(BL、BLB)と呼ぶ場合がある。
OSSRAM300には、電圧VDDD、VSSS、VDDM、VDML、VSSM、VDHB、VBG3、クロック信号GCLK3、アドドレス信号Address、信号RST、CE、GW、BWが入力される。
信号RST、CE、GW、BWは、それぞれ、リセット信号、チップイネーブル信号、グローバル書き込みイネーブル信号、バイト書き込みイネーブル信号である。これら信号に基づき、制御回路331はOSSRAM300を制御する。制御回路331に、入力信号を一時的に格納するレジスタを設けてもよい。
行回路332は、アドレス信号Addressが指定する選択された行のワード線WLを選択する機能をもつ。列回路333は、アドレス信号が指定する列のビット線対(BL、BLB)にデータを書き込む機能、および当該ビット線対(BL、BLB)からデータを読み出す機能をもつ。
OSSRAM300において、各回路、各信号および各電圧は、必要に応じて、適宜取捨することができる。あるいは、他の回路または他の信号を追加してもよい。また、OSSRAM300の入力信号および出力信号の構造は、OSSRAM300の動作モード、およびメモリセルアレイ320の構成等に基づいて設定される。
パワーゲーティング制御回路330は、PMU193が生成するPG制御信号に基づき、信号PSE11~PSE13、ならびに行回路332、列回路333、バックアップ及びリカバリドライバ335の制御信号を生成する。信号PSE11~PSE13は、パワースイッチ310~314のオンオフを制御する。パワースイッチ310、311は、それぞれ、電圧VDDD、VDHBのパワードメイン303への入力を制御する。パワースイッチ312~314はそれぞれ電圧VDDM、VDML、VSSMのパワードメイン302への入力を制御する。
(セル270)
図26(A)にセル270の回路構成例を示す。セル270は、メモリセル271、バックアップ回路272を有する。メモリセル271は、標準的な6T(トランジスタ)SRAMセルと同じ回路構成であり、双安定回路275、トランジスタMT1、MT2を有する。双安定回路275は、ワード線WL、ビット線BL、BLB、仮想電源線V_VDM(以下、V_VDM線と呼ぶ)、V_VSM(以下、V_VSM線と呼ぶ)に電気的に接続されている。なお、V_VDM線は、パワースイッチ312、313によって、電圧の入力が制御される仮想電源線であり、V_VSM線は、パワースイッチ314によって、電圧の入力が制御される仮想電源線である。電圧VDHBは、ゲート線OGLの高レベル電圧であり、電圧VDDMよりも高い電圧である。
図26(A)の例では、双安定回路275は、2個のCMOSインバータ回路でなるラッチ回路である。ノードQ、Qbはそれぞれ、2個のCMOSインバータの入力端子と出力端子との接続部であり、相補データの保持ノードである。ノードQ/Qbが“H”/“L”になる、またはノードQ/Qbが“L”/“H”になることで、双安定回路275は安定状態となる。トランジスタMT1、MT2は転送トランジスタである。トランジスタMT1によって、ビット線BLとノードQ間の導通状態が制御され、トランジスタMT2によってビット線BLBとノードQb間の導通状態が制御される。
バックアップ回路272は、メモリセル271のデータをバックアップするための回路である。各セル270にバックアップ回路272を設けることで、パワードメイン302のパワーゲーティングが可能になる。
バックアップ回路272は、トランジスタM21、M22、容量素子C21、C22を有する。つまり、バックアップ回路272は2個の1T1C型メモリセルを有しており、これらメモリセルの保持ノードが、ノードSN21、SN22である。
トランジスタM21、M22はバックゲートを有するosトランジスタであり、これらバックゲートには電圧VBG3が入力される。トランジスタM21、M22がosトランジスタであるので、バックアップ回路272はデータを長時間保持することが可能である。トランジスタM21、M22がosトランジスタであることで、Siトランジスタでなるメモリセル271にバックアップ回路272を積層して設けることができるので、バックアップ回路272を設けたことによるセル270の面積オーバーヘッドを抑えることができる。
<低消費電力状態>
OSSRAM300には4種類の低消費電力状態、(1)ビット線フローティング状態、(2)休止状態、(3)セルアレイドメインPG状態、(4)全ドメインPG状態がある。パワーゲーティング制御回路330は、PMU193のPG信号等にもとづき、低消費電力状態でのOSSRAM300の動作を管理する。
(ビット線フローティング状態)
ビット線フローティング状態では、ビット線対(BL、BLB)をフローティング状態にする。メモリセル271のデータは消失しない。
(スリープ状態)
スリープ状態では、パワードメイン302に電圧VDDMよりも低い電圧VDMLを供給する。電圧VDMLは、メモリセル271のデータが消失しない大きさである。ビット線対(BL、BLB)はフローティング状態である。
(セルアレイドメインPG状態)
パワースイッチ312~314をオフにして、パワードメイン302への電圧VDDM、VDML、VSSMの供給を停止する。ビット線対(BL、BLB)はフローティング状態である。メモリセル271のデータは消失する。
(全ドメインPG状態)
全ドメインPG状態とは、パワーゲーティング可能な全てのドメインをパワーゲーティングする状態ある。パワースイッチ310~314はオフである。
4種類の低消費電力状態は消費電力削減効果が得られる損益分岐時間(BET)が異なる。BETの異なる複数の低消費電力状態を有することで、OSSRAM300の消費電力を効率良く低減することができる。
<パワーゲーティングシーケンス>
図26(B)に、パワードメイン302に対するパワーゲーティングシーケンスの一例を示す。図26(B)において、t1、t2等は時刻を表している。
(通常動作(Normal Operation))
時刻t1以前では、OSSRAM300の状態は、通常動作状態(書き込み状態または読み出し状態)である。OSSRAM300はシングルポートSRAMと同様の通常動作を行う。パワースイッチ310~312、314はオンであり、パワースイッチ313はオフである。
(バックアップ(Backup))
パワーゲーティング制御回路330の制御信号に基づき、時刻t1でバックアップ動作が開始する。バックアップ及びリカバリドライバ335は、全配線OGLを“H”にする。ここでは、時刻t1でノードQ/Qbは“H”/“L”であり、ノードSN21/SN22は“L”/“H”であるので、トランジスタM21、M22がオンになると、ノードSN21の電圧はVSSMからVDDMに上昇し、ノードSN22の電圧はVDDMからVSSMに低下する。時刻t2で配線OGLを“L”にすることで、バックアップ動作が終了する。ノードSN21/SN22には、時刻t1でのノードQ/Qbのデータが書き込まれる。
(パワーゲーティング(Power−gating))
時刻t2で、パワーゲーティング制御回路330が信号PSE12を“L”にしてパワースイッチ312、314をオフすることで、パワードメイン302のパワーゲーティングが開始する。V_VDM線とV_VSM線の電圧差が低下することで、メモリセル271は非アクティブになる。メモリセル271のデータは消失するが、バックアップ回路272はデータを保持し続ける。
例えば、パワードメイン302が電源オフである間、ビット線対(BL、BLB)をフローティング状態にする。そのための制御信号を、パワーゲーティング制御回路330は列回路333に送信する。
(リカバリ(Recovery))
行回路332、列回路333、バックアップ及びリカバリドライバ335は、パワーゲーティング制御回路330の制御信号に従い、リカバリ動作を行う。リカバリ動作では、双安定回路275は、ノードQ/Qbのデータを検知するためのセンスアンプとして機能する。まず、ノードQ、Qbのリセット動作が行われる。時刻t3で、列回路333は、全ビット線対(BL、BLB)のプリチャージ動作を行う。全ビット線対(BL、BLB)は電圧Vpr2にプリチャージされる。行回路332は、全ワード線WLを選択状態にする。V_VDM線、V_VSM線は電圧Vpr2にプリチャージされ、ノードQ、Qbの電圧はVpr2に固定される。
時刻t4で、バックアップ及びリカバリドライバ335は、全配線OGLを“H”にする。トランジスタM21、M22がオンになる。容量素子C21の電荷がノードQ、ノードSN21に分配され、容量素子C22の電荷がノードQb、ノードSN22に分配され、ノードQとノードQbとに電圧差が生じる。
時刻t5で、パワースイッチ312、314をオンにして、パワードメイン302への電圧VDDM、VSSMの入力を再開する。双安定回路275はアクティブになると、ノードQとノードQbの電圧差を増幅する。最終的にノードQ、SN21の電圧はVDDMとなり、ノードQb、SN22の電圧はVSSMとなる。つまり、ノードQ/Qbの状態は、時刻t1での状態(“H”/“L”)に復帰する。時刻t7でリカバリ動作が終了する。
L1キャッシュメモリ装置202と、L2キャッシュメモリ装置203の構成は異なっていてもよい。例えば、L1キャッシュメモリ装置202にはOSSRAMを用い、L2キャッシュメモリ装置203にはNOSRAMを用いる。または、L1キャッシュメモリ装置202には、メモリセル260で構成されるNOSRAMを用い、L2キャッシュメモリ装置203には、メモリセル263で構成されるNOSRAMを用いる。この場合、L2キャッシュメモリ装置203において、メモリセルアレイは、周辺回路上に積層することが可能となるので、L2キャッシュメモリ装置203の面積を小さくでき、大容量化に有利である。メモリセル260は読出しトランジスタがSiトランジスタであるので読み出し速度が速いため、L1キャッシュメモリ装置202に好適である。
<osAIチップ390>
osAIチップ390は、osトランジスタが用いられたAIの演算処理が可能なICチップである。osAIチップ390が使用するデータには、重み係数データ(学習可能なデータ)、画像データ、教師データなどがある。osAIチップ390の演算結果は、例えば、推論データとして出力される。
osAIチップ390の特長は、演算に用いられるデータ(代表的には、重み係数データ)を記憶するメモリ回路が演算回路と近接して設けられていることである。このメモリ回路に、osトランジスタが用いられている。本明細書では、osトランジスタを有するメモリを、「osメモリ」と呼ぶ場合がある。図27(A)~図27(D)にosメモリの回路構成例を示す。
図27(A)に示すosメモリ381は、2Tゲインセルと同じ回路構成であり、書込みトランジスタMW1、読出しトランジスタMR1、容量素子CS1を有する。読出しトランジスタMR1のゲートが保持ノードSNである。書込みトランジスタMW1、読出しトランジスタMR1はそれぞれosトランジスタである。
osメモリ381のノードSNには、書込みトランジスタMW1を介して電荷が充電される。osトランジスタが極小オフ電流であることから、書込みトランジスタMW1は、ノードSNの電荷を殆んどリークさせない。従って、osメモリ381は不揮発性メモリ回路として機能でき、かつ多値化が容易である。よって、osメモリ381を不揮発性アナログメモリ回路として、osAIチップ390に設けることができる。
書込みトランジスタMW1のバックゲート電圧を変化させることで、書込みトランジスタMW1のしきい値電圧を変化させることができる。書込みトランジスタMW1はバックゲートの無いosトランジスタでもよい。読出しトランジスタMR1についても同様である。
金属酸化物は、エネルギーギャップが大きく、電子が励起されにくいこと、ホールの有効質量が大きいことなどから、osトランジスタは、一般的なSiトランジスタと比較して、アバランシェ崩壊等が生じにくい場合がある。従って、例えばアバランシェ崩壊に起因するホットキャリア劣化等を抑制できる。ホットキャリア劣化を抑制できることで、高いドレイン電圧でosトランジスタを駆動することができる。従って、書込みトランジスタMW1がosトランジスタであることで、ノードSNに高い電圧を印加することが可能になるため、osメモリ381の多値化が容易である。
図27(B)に示すosメモリ382はosメモリ381の変形例であり、読出しトランジスタMR2がnチャネル型Siトランジスタである。読出しトランジスタMR2はpチャネル型Siトランジスタでもよい。
図27(C)に示すosメモリ383は、3トランジスタ型ゲインセルであり、書込みトランジスタMW3、読出しトランジスタMR3、選択トランジスタMS3、容量素子CS3を有する。書込みトランジスタMW3、読出しトランジスタMR3、選択トランジスタMS3はそれぞれバックゲートを有するosトランジスタである。これらトランジスタの一部、または全てがバックゲートの無いosトランジスタでもよい。
図27(D)に示すosメモリ384は、osメモリ383の変形例である。読出しトランジスタMR4、選択トランジスタMS4はそれぞれnチャネル型Siトランジスタである。読出しトランジスタMR4、選択トランジスタMS4の一方または双方はpチャネル型Siトランジスタでもよい。
容量素子CS1の充放電によってデータを書き換えるため、osメモリ381は原理的には書き換え回数に制約はなく、低エネルギーで、データの書き込みおよび読み出しが可能であり、データの保持に電力を消費しない。よって、osメモリ381をosAIチップ390に組み込むことで、低消費電力なAIチップを提供することが可能になる。osメモリ382~384もosメモリ381と同様の特長を有する。
図28(A)に、osAIチップ390の回路部391Aの積層構造を模式的に示す。回路部391Aは積層構造をもち、Siトランジスタ層1011、配線層1012、osトランジスタ層1013に大別される。osトランジスタ層1013をSiトランジスタ層1011に積層して設けることができるため、osAIチップ390の面積を小さくすることができる。
回路部391B(図28(B)参照)、回路部391C(図28(C)参照)のように、複数のosトランジスタ層1013を設けてもよい。回路部391Cは、回路部391A、391Bと異なり、Siトランジスタ層1011が設けられていない。回路部391Cのosトランジスタ層1013の数は、1層の場合がある。
osAIチップ390のより具体的な回路構成は、実施の形態3および実施の形態4で説明した。前述したように、osAIチップ390の演算部を少ない素子数、配線数で演算部を構成することができるため、集積化に有利である。演算回路の集積化により、並列処理数を増やすことができるので、osAIチップ390は、市販のGPUチップと同様、もしくはそれ以上の演算性能を実現できる可能性をもつ。
例えば、市販のGPUチップの動作周波数が3GHz、乗算の並列処理数が10である場合、GPUチップの演算性能は3×1012OPS=3Tera OPS(TOPS)である。例えば、osAIチップ390は、10乃至10個程度の演算回路を設けることができ、乗算の並列処理数を10乃至10とすることができる。この場合、osAIの動作周波数を3MHz又は30MHzに低下しても、osAIチップ390の演算性能はGPUと同程度である。動作周波数の低減は、ICチップの動的消費電力の削減に非常に有効である。
また、AIの演算など大規模な演算処理を行うため、GPUチップは高い周波数で駆動する。そのため、大電力を消費し、高温となる。osAIチップ390は、動作周波数を低減できるため、osAIチップ390の発熱を抑えることができる。したがって、演算装置において、osAIチップ390の放熱機構をGPUチップの放熱機構よりも簡素にすることができる。
上掲したように、GPUチップでは、演算性能の向上と、省電力化および発熱抑制との関係はトレードオフの関係である。これに対して、osAIチップ390は、動作周波数を低減しても演算性能の劣化を少なくできる。したがって、osAIチップ390は、時間および電力に対して高効率に、大規模な演算処理を実行することができる。
(実施の形態6)
本実施の形態では、上記実施の形態に記載の演算装置を適用することが可能な電子機器、移動体、演算システムについて、図29乃至図32を参照しながら説明する。
図29(A)は、移動体の一例として自動車の外観図を図示している。図29(B)は、自動車内でのデータのやり取りを簡略化した図である。自動車590は、複数のカメラ591等を有する。また、自動車590は、赤外線レーダー、ミリ波レーダー、レーザーレーダーなど各種センサ(図示せず)などを備える。
自動車590において、カメラ591等に上記osAIチップ390を用いることができる。自動車590は、カメラ591が複数の撮像方向592で得られた複数の画像を上記実施の形態で説明したosAIチップ390で処理し、バス593等を介してホストコントローラ594等により複数の画像をまとめて解析することで、ガードレールや歩行者の有無など、周囲の交通状況を判断し、自動運転を行うことができる。また、道路案内、危険予測などを行うシステムに用いることができる。
osAIチップ390では、得られた画像データをニューラルネットワークなどの演算処理を行うことで、例えば、画像の高解像度化、画像ノイズの低減、顔認識(防犯目的など)、物体認識(自動運転の目的など)、画像圧縮、画像補正(広ダイナミックレンジ化)、レンズレスイメージセンサの画像復元、位置決め、文字認識、反射映り込み低減などの処理を行うことができる。
なお、上述では、移動体の一例として自動車について説明しているが、移動体は自動車に限定されない。例えば、移動体としては、電車、モノレール、船、飛行体(ヘリコプター、無人航空機(ドローン)、飛行機、ロケット)なども挙げることができ、これらの移動体に本発明の一態様のコンピュータを適用して、人工知能を利用したシステムを付与することができる。
図30(A)は、携帯型電子機器の一例を示す外観図である。図30(B)は、携帯型電子機器内でのデータのやり取りを簡略化した図である。携帯型電子機器595は、プリント配線基板596、スピーカー597、カメラ598、マイクロフォン599等を有する。
携帯型電子機器595において、プリント配線基板596に上記osAIチップ390を設けることができる。携帯型電子機器595は、スピーカー597、カメラ598、マイクロフォン599等で得られる複数のデータを上記実施の形態で説明したosAIチップ390を用いて処理・解析することで、ユーザの利便性を向上させることができる。また、音声案内、画像検索などを行うシステムに用いることができる。
osAIチップ390では、得られた画像データをニューラルネットワークなどの演算処理を行うことで、例えば、画像の高解像度化、画像ノイズの低減、顔認識(防犯目的など)、物体認識(自動運転の目的など)、画像圧縮、画像補正(広ダイナミックレンジ化)、レンズレスイメージセンサの画像復元、位置決め、文字認識、反射映り込み低減などの処理を行うことができる。
図31(A)に示す携帯型ゲーム機1100は、筐体1101、筐体1102、筐体1103、表示部1104、接続部1105、操作キー1107等を有する。筐体1101、筐体1102および筐体1103は、取り外すことが可能である。筐体1101に設けられている接続部1105を筐体1108に取り付けることで、表示部1104に出力される映像を、別の映像機器に出力することができる。他方、筐体1102および筐体1103を筐体1109に取り付けることで、筐体1102および筐体1103を一体化し、操作部として機能させる。筐体1102および筐体1103の基板に設けられているチップなどに先の実施の形態に示すosAIチップ390を組み込むことができる。
図31(B)はUSB接続タイプのスティック型の電子機器1120である。電子機器1120は、筐体1121、キャップ1122、USBコネクタ1123および基板1124を有する。基板1124は、筐体1121に収納されている。例えば、基板1124には、メモリチップ1125、コントローラチップ1126が取り付けられている。基板1124のコントローラチップ1126などに先の実施の形態に示すosAIチップ390を組み込むことができる。
図31(C)は人型のロボット1130である。ロボット1130は、センサ2101乃至2106、および制御回路2110を有する。例えば、制御回路2110には、先の実施の形態に示すosAIチップ390を組み込むことができる。
上記実施の形態で説明したosAIチップ390は、電子機器に内蔵する代わりに、電子機器と通信を行うサーバーに用いることもできる。この場合、電子機器とサーバーによって演算システムが構成される。図32に、システム3000の構成例を示す。
システム3000は、電子機器3001と、サーバー3002によって構成される。電子機器3001とサーバー3002間の通信は、インターネット回線3003を介して行うことができる。
サーバー3002には、複数のラック3004を有する。複数のラックには、複数の基板3005が設けられ、当該基板3005上に上記実施の形態で説明したosAIチップ390を搭載することができる。これにより、サーバー3002にニューラルネットワークが構成される。そして、サーバー3002は、電子機器3001からインターネット回線3003を介して入力されたデータを用いて、ニューラルネットワークの演算を行うことができる。サーバー3002による演算の結果は必要に応じて、インターネット回線3003を介して電子機器3001に送信することができる。これにより、電子機器3001における演算の負担を低減することができる。
本実施の形態は、他の実施の形態の記載と適宜組み合わせることができる。
SC1:状態、SC2:状態、SG1:状態、SG2:状態、SPG1:状態、SPG2:状態、SPG3:状態、SPG4:状態、10:ホスト、10A:CPU、10B:CPU、11A:CPUコア、11B:CPUコア、12:メモリ、13:データ保持回路、20:バス、30:GPU、30_1:GPU、30_n:GPU、30A:GPU、30B:GPU、31:デバイスメモリ、32A:共有メモリ、32B:共有メモリ、33A:GPUコア、33B:GPUコア、34A:演算ユニット、34B:演算ユニット、35A:データ保持部、35B:データ保持部、40:乗算回路、42:電流源、43:オフセット回路、44:活性化関数回路、51:入力レジスタ、52:メモリ回路、53:乗算回路、54:加算回路、55A:出力レジスタ、55B:出力レジスタ、56A:セレクタ、56B:セレクタ、56C:セレクタ、56D:セレクタ、57A:メモリ回路、57B:メモリ回路、57C:メモリ回路、61:演算回路、62:スイッチ回路、65:スイッチ回路、66S:配線、67A:配線、71:フリップフロップ、72:デコーダ、73_0:メモリセル、73_1:メモリセル、73_2:メモリセル、73_3:メモリセル、74:メモリセル、77:トランジスタ、78:ラッチ回路、80:フリップフロップ、81:デコーダ、83_0:メモリセル、83_1:メモリセル、87:配線、91_0:メモリセル、91_1:メモリセル、92_0:トランジスタ、92_1:トランジスタ、93:トランジスタ、100A:演算装置、100B:演算装置、100C:演算装置、100D:演算装置、100E:演算装置、110:CPU、111:CPUコア、112:命令キャッシュ、113:データキャッシュ、114:バスインターフェース回路、120:GPU、121:GPUコア、122:オンサイトメモリ、123:ADC/DAC、124:制御回路、131:オンチップメモリ、140A:高速バス、140B:低速バス、141:DMAC、142:パワーマネジメントユニット、143:メモリコントローラ、144:DDR SDRAMコントローラ、145:USBインターフェース回路、146:ディスプレイインターフェース回路、147:セキュリティー回路、150:ブリッジ回路、151:割り込み制御回路、152:インターフェース回路、153:バッテリー制御回路、154:ADC/DACインターフェース回路、160:電源回路、190:CPU、193:PMU、200:CPUコア、202:L1キャッシュメモリ装置、203:L2キャッシュメモリ装置、205:バスインターフェース部、210:パワースイッチ、211:パワースイッチ、212:パワースイッチ、214:レベルシフタ、220:フリップフロップ、221:スキャンフリップフロップ、221A:クロックバッファ回路、222:バックアップ回路、240:NOSRAM、242:パワードメイン、243:パワードメイン、245:パワースイッチ、246:パワースイッチ、247:パワースイッチ、250:メモリセルアレイ、251:制御回路、252:行回路、253:列回路、260:メモリセル、262:メモリセル、263:メモリセル、270:セル、271:メモリセル、272:バックアップ回路、275:双安定回路、300:OSSRAM、301:パワードメイン、302:パワードメイン、303:パワードメイン、310:パワースイッチ、311:パワースイッチ、312:パワースイッチ、313:パワースイッチ、314:パワースイッチ、320:メモリセルアレイ、330:パワーゲーティング制御回路、331:制御回路、332:行回路、333:列回路、335:バックアップ及びリカバリドライバ、381:osメモリ、382:osメモリ、383:osメモリ、384:osメモリ、390:osAIチップ、391A:回路部、391B:回路部、391C:回路部、400:osAIチップ、401:レシーバ、403:DAC、404:DAC、405:MACアレイ、406:MACアレイ、407:ゲートドライバ、408:ADC、409:トランスミッタ、450:osAIチップ、460:コントローラ、462:I2Cモジュール、463:レシーバ、464:トランスミッタ、466:データドライバ、467:ワードドライバ、470:演算回路アレイ、471:演算部、472:SRAM、474:セレクタ、475:セレクタ、476:デマルチプレクサ、590:自動車、591:カメラ、592:撮像方向、593:バス、594:ホストコントローラ、595:携帯型電子機器、596:プリント配線基板、597:スピーカー、598:カメラ、599:マイクロフォン、1100:携帯型ゲーム機、1101:筐体、1102:筐体、1103:筐体、1104:表示部、115:接続部、1107:操作キー、1108:筐体、1109:筐体、1120:電子機器、1121:筐体、1122:キャップ、1123:USBコネクタ、1124:基板、1125:メモリチップ、1126:コントローラチップ、1130:ロボット、2101:センサ、2106:センサ、2110:制御回路、3000:システム、3001:電子機器、3002:サーバー、3003:インターネット回線、3004:ラック、

Claims (5)

  1.  第1の演算部と、
     第2の演算部と、を有し、
     前記第1の演算部は、第1のCPUコアと、第2のCPUコアと、を有し、
     前記第2の演算部は、第1のGPUコアと、第2のGPUコアと、を有し、
     前記第1のCPUコアおよび前記第2のCPUコアと、は、それぞれパワーゲーティングすることができる機能を有し、
     前記第1のCPUコアおよび前記第2のCPUコアは、それぞれフリップフロップに電気的に接続されている第1のデータ保持回路を有し、
     前記第1のGPUコアは、アナログ値を保持し、前記アナログ値を2ビット以上のデジタルデータとして読み出すことができる第2のデータ保持回路を有し、
     前記第2のGPUコアは、デジタル値を保持し、1ビットのデジタルデータとして読み出すことができる第3のデータ保持回路を有し、
     前記第1乃至第3のデータ保持回路は、それぞれ第1のトランジスタおよび容量素子を有し、
     前記第1のトランジスタは、前記容量素子に電気的に接続され
     前記第1のトランジスタにおいて、チャネル形成領域は酸化物半導体を有することを特徴とする演算装置。
  2.  請求項1において、
     前記第2のデータ保持回路および前記第3のデータ保持回路は、それぞれ第2のトランジスタを有し、
     前記第1のトランジスタのソースまたはドレインの一方と、前記容量素子の一方の電極と、前記第2のトランジスタのゲートと、が電気的に接続されたノードに前記アナログ値または前記デジタル値に応じた電位を保持する機能を有することを特徴とする演算装置。
  3.  請求項1または請求項2において、
     前記第1のCPUコアおよび前記第2のCPUコアは、いずれか一方が演算処理を実行する状態へ、いずれか他方がパワーゲーティングする状態への切り替えが行われ、前記切り替えは前記第1のCPUコアまたは前記第2のCPUコアが設けられた領域の温度に応じて制御されることを特徴とする演算装置。
  4.  請求項1乃至3のいずれか一において、
     前記第1のGPUコアおよび前記第2のGPUコアは、いずれか一方が演算処理を実行する状態へ、いずれか他方がパワーゲーティングする状態への切り替えが行われ、前記切り替えは科学技術計算基づく演算処理であるか、またはニューラルネットワークを利用した推論に基づく演算処理であるか、に応じて制御されることを特徴とする演算装置。
  5.  請求項1乃至4のいずれか一に記載の演算装置を有する電子機器。
PCT/IB2018/056531 2017-09-06 2018-08-28 演算装置および電子機器 WO2019048982A1 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2019540728A JP7237839B2 (ja) 2017-09-06 2018-08-28 演算装置および電子機器
DE112018004814.4T DE112018004814T5 (de) 2017-09-06 2018-08-28 Arithmetische Vorrichtung und elektronisches Gerät
US16/641,821 US11275993B2 (en) 2017-09-06 2018-08-28 Arithmetic device and electronic device
KR1020207004000A KR20200050949A (ko) 2017-09-06 2018-08-28 연산 장치 및 전자 기기
CN201880054259.0A CN111033438B (zh) 2017-09-06 2018-08-28 运算装置及电子设备
CN202311475196.5A CN117519454A (zh) 2017-09-06 2018-08-28 运算装置及电子设备
US17/588,613 US11868877B2 (en) 2017-09-06 2022-01-31 Arithmetic device and electronic device
JP2023030844A JP7502503B2 (ja) 2017-09-06 2023-03-01 演算装置
US18/510,784 US20240095507A1 (en) 2017-09-06 2023-11-16 Arithmetic device and electronic device

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2017171511 2017-09-06
JP2017171524 2017-09-06
JP2017-171509 2017-09-06
JP2017171509 2017-09-06
JP2017-171511 2017-09-06
JP2017-171524 2017-09-06

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/641,821 A-371-Of-International US11275993B2 (en) 2017-09-06 2018-08-28 Arithmetic device and electronic device
US17/588,613 Continuation US11868877B2 (en) 2017-09-06 2022-01-31 Arithmetic device and electronic device

Publications (1)

Publication Number Publication Date
WO2019048982A1 true WO2019048982A1 (ja) 2019-03-14

Family

ID=65633699

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2018/056531 WO2019048982A1 (ja) 2017-09-06 2018-08-28 演算装置および電子機器

Country Status (6)

Country Link
US (3) US11275993B2 (ja)
JP (2) JP7237839B2 (ja)
KR (1) KR20200050949A (ja)
CN (2) CN117519454A (ja)
DE (1) DE112018004814T5 (ja)
WO (1) WO2019048982A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021064502A1 (ja) * 2019-10-04 2021-04-08 株式会社半導体エネルギー研究所 半導体装置
WO2021178585A1 (en) * 2020-03-05 2021-09-10 Qualcomm Incorporated Compute-in-memory dynamic random access memory
WO2022064316A1 (ja) * 2020-09-22 2022-03-31 株式会社半導体エネルギー研究所 半導体装置
WO2024095109A1 (ja) * 2022-11-04 2024-05-10 株式会社半導体エネルギー研究所 半導体装置および半導体装置の動作方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11112849B2 (en) * 2018-10-26 2021-09-07 Silicon Laboratories Inc. Method and apparatus for selectable high performance or low power processor system
US11238557B2 (en) * 2019-03-29 2022-02-01 Intel Corporation Workload-based maximum current
WO2021130590A1 (ja) * 2019-12-27 2021-07-01 株式会社半導体エネルギー研究所 撮像装置、および電子機器
CN112153139B (zh) * 2020-09-23 2022-06-14 成都市深思创芯科技有限公司 基于传感器网络和存内计算神经网络的控制系统及方法
CN112214450A (zh) * 2020-10-12 2021-01-12 湃方科技(天津)有限责任公司 一种边缘智能soc处理器、电子设备
CN116547755A (zh) * 2021-02-07 2023-08-04 华为技术有限公司 存储电路及存储器
TWI783854B (zh) * 2021-03-17 2022-11-11 神盾股份有限公司 乘積和運算裝置
CN113360323A (zh) * 2021-07-02 2021-09-07 西安紫光国芯半导体有限公司 一种众核计算电路、堆叠芯片和容错控制方法
CN113778211A (zh) * 2021-08-24 2021-12-10 联想(北京)有限公司 一种电源电路的控制方法、装置及电子设备
CN116450216B (zh) * 2023-06-12 2023-08-29 上海灵动微电子股份有限公司 共享硬件运算单元的局部缓存方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8786130B1 (en) * 2013-08-23 2014-07-22 Inoso, Llc Method of forming an electromechanical power switch for controlling power to integrated circuit devices and related devices
JP2015035073A (ja) * 2013-08-08 2015-02-19 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の制御方法
JP2015195331A (ja) * 2013-09-11 2015-11-05 株式会社半導体エネルギー研究所 記憶装置、半導体装置、及び電子機器
US20160054782A1 (en) * 2014-08-19 2016-02-25 Nikos Kaburlasos Dynamic scaling of graphics processor execution resources

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726934A (en) * 1996-04-09 1998-03-10 Information Storage Devices, Inc. Method and apparatus for analog reading values stored in floating gate structures
US7843725B2 (en) 2008-06-11 2010-11-30 Micron Technology, Inc. M+L bit read column architecture for M bit memory cells
US9128849B2 (en) * 2010-04-13 2015-09-08 Apple Inc. Coherent memory scheme for heterogeneous processors
US8788866B2 (en) 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device
US9256535B2 (en) * 2013-04-04 2016-02-09 Advanced Micro Devices, Inc. Conditional notification mechanism
US9793080B2 (en) 2013-08-23 2017-10-17 Inoso, Llc Electromechanical power switch integrated circuits and devices and methods thereof
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
WO2015193777A1 (en) 2014-06-20 2015-12-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP6722986B2 (ja) 2014-07-04 2020-07-15 株式会社半導体エネルギー研究所 半導体装置
US9443564B2 (en) 2015-01-26 2016-09-13 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, electronic component, and electronic device
TWI662792B (zh) * 2015-01-29 2019-06-11 日商半導體能源研究所股份有限公司 半導體裝置、電子組件及電子裝置
US10571993B2 (en) 2015-03-20 2020-02-25 Sanken Electric Co., Ltd. Micro controller unit
KR102505279B1 (ko) 2015-07-24 2023-03-02 삼성전자주식회사 복수의 cpu 및 복수의 gpu를 지원하는 컴퓨팅 환경에서의 연산 방법
US9990024B2 (en) * 2015-09-09 2018-06-05 Qualcomm Incorporated Circuits and methods providing voltage adjustment as processor cores become active based on an observed number of ring oscillator clock ticks
CN108352837A (zh) 2015-11-13 2018-07-31 株式会社半导体能源研究所 半导体装置、电子构件及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015035073A (ja) * 2013-08-08 2015-02-19 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の制御方法
US8786130B1 (en) * 2013-08-23 2014-07-22 Inoso, Llc Method of forming an electromechanical power switch for controlling power to integrated circuit devices and related devices
JP2015195331A (ja) * 2013-09-11 2015-11-05 株式会社半導体エネルギー研究所 記憶装置、半導体装置、及び電子機器
US20160054782A1 (en) * 2014-08-19 2016-02-25 Nikos Kaburlasos Dynamic scaling of graphics processor execution resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021064502A1 (ja) * 2019-10-04 2021-04-08 株式会社半導体エネルギー研究所 半導体装置
WO2021178585A1 (en) * 2020-03-05 2021-09-10 Qualcomm Incorporated Compute-in-memory dynamic random access memory
WO2022064316A1 (ja) * 2020-09-22 2022-03-31 株式会社半導体エネルギー研究所 半導体装置
WO2024095109A1 (ja) * 2022-11-04 2024-05-10 株式会社半導体エネルギー研究所 半導体装置および半導体装置の動作方法

Also Published As

Publication number Publication date
JP2023078182A (ja) 2023-06-06
US20240095507A1 (en) 2024-03-21
JP7237839B2 (ja) 2023-03-13
JP7502503B2 (ja) 2024-06-18
CN111033438B (zh) 2023-12-05
US20220164641A1 (en) 2022-05-26
US11275993B2 (en) 2022-03-15
DE112018004814T5 (de) 2020-06-10
US20200250521A1 (en) 2020-08-06
JPWO2019048982A1 (ja) 2020-11-26
CN117519454A (zh) 2024-02-06
KR20200050949A (ko) 2020-05-12
CN111033438A (zh) 2020-04-17
US11868877B2 (en) 2024-01-09

Similar Documents

Publication Publication Date Title
JP7502503B2 (ja) 演算装置
JP2019046199A (ja) プロセッサ、および電子機器
US8289048B2 (en) State transitioning clock gating
WO2007099841A1 (ja) 半導体装置
CN204791989U (zh) 耐高电压的字线驱动器和包含该字线驱动器的存储器及其系统
US10908669B2 (en) Methods and apparatus for power management of a memory cell
US9935634B2 (en) Communication between voltage domains
JP2019033233A (ja) 半導体装置、および電子機器
US20210150328A1 (en) Hierarchical Hybrid Network on Chip Architecture for Compute-in-memory Probabilistic Machine Learning Accelerator
WO2023138219A1 (zh) 一种存储器、时序控制方法及电子设备
US9876500B2 (en) Semiconductor circuit
US20230040508A1 (en) Semiconductor device
US20220276839A1 (en) Semiconductor device
US11908947B2 (en) Semiconductor device
CN116821048A (zh) 一种存算一体芯片及其操作方法
JP6953229B2 (ja) 半導体装置
US20230055062A1 (en) Semiconductor device
US20230297339A1 (en) Semiconductor device
US20230099168A1 (en) Semiconductor device
US20230109354A1 (en) Semiconductor device
US20220384433A1 (en) Semiconductor device
US20220326962A1 (en) Accelerator capable of executing fast dynamic change in acceleration type
Zhao et al. Analysis and design of energy-efficient data-dependent SRAM

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019540728

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 18854516

Country of ref document: EP

Kind code of ref document: A1