KR20200050949A - 연산 장치 및 전자 기기 - Google Patents
연산 장치 및 전자 기기 Download PDFInfo
- Publication number
- KR20200050949A KR20200050949A KR1020207004000A KR20207004000A KR20200050949A KR 20200050949 A KR20200050949 A KR 20200050949A KR 1020207004000 A KR1020207004000 A KR 1020207004000A KR 20207004000 A KR20207004000 A KR 20207004000A KR 20200050949 A KR20200050949 A KR 20200050949A
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- data
- gpu
- transistor
- core
- Prior art date
Links
- 239000004065 semiconductor Substances 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 89
- 238000004364 calculation method Methods 0.000 claims description 51
- 238000000034 method Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 230000020169 heat generation Effects 0.000 abstract description 30
- 230000015654 memory Effects 0.000 description 242
- 230000006870 function Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 41
- 229910044991 metal oxide Inorganic materials 0.000 description 15
- 150000004706 metal oxides Chemical class 0.000 description 15
- 238000011084 recovery Methods 0.000 description 15
- 230000009467 reduction Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 239000003990 capacitor Substances 0.000 description 9
- 230000010354 integration Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 230000001965 increasing effect Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 102100036285 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Human genes 0.000 description 5
- 101000875403 Homo sapiens 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Proteins 0.000 description 5
- 230000004913 activation Effects 0.000 description 5
- 239000000969 carrier Substances 0.000 description 5
- 238000001816 cooling Methods 0.000 description 5
- 239000010408 film Substances 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 239000011701 zinc Substances 0.000 description 4
- 102100027766 Atlastin-1 Human genes 0.000 description 3
- 101000825172 Dictyostelium discoideum Spore germination protein 3 Proteins 0.000 description 3
- 101100127285 Drosophila melanogaster unc-104 gene Proteins 0.000 description 3
- 101000936983 Homo sapiens Atlastin-1 Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 238000007599 discharging Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000003071 parasitic effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 229910052684 Cerium Inorganic materials 0.000 description 2
- 101000885321 Homo sapiens Serine/threonine-protein kinase DCLK1 Proteins 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 229910052779 Neodymium Inorganic materials 0.000 description 2
- PXHVJJICTQNCMI-UHFFFAOYSA-N Nickel Chemical compound [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 2
- 102100039758 Serine/threonine-protein kinase DCLK1 Human genes 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000002542 deteriorative effect Effects 0.000 description 2
- 230000004313 glare Effects 0.000 description 2
- 238000003702 image correction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 229910052746 lanthanum Inorganic materials 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002159 nanocrystal Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000010409 thin film Substances 0.000 description 2
- 229910052727 yttrium Inorganic materials 0.000 description 2
- 229910052726 zirconium Inorganic materials 0.000 description 2
- 101150046766 BGL2 gene Proteins 0.000 description 1
- ZOXJGFHDIHLPTG-UHFFFAOYSA-N Boron Chemical compound [B] ZOXJGFHDIHLPTG-UHFFFAOYSA-N 0.000 description 1
- 102100027992 Casein kinase II subunit beta Human genes 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- GYHNNYVSQQEPJS-UHFFFAOYSA-N Gallium Chemical compound [Ga] GYHNNYVSQQEPJS-UHFFFAOYSA-N 0.000 description 1
- 101000858625 Homo sapiens Casein kinase II subunit beta Proteins 0.000 description 1
- 101000852539 Homo sapiens Importin-5 Proteins 0.000 description 1
- 102100036340 Importin-5 Human genes 0.000 description 1
- FYYHWMGAXLPEAU-UHFFFAOYSA-N Magnesium Chemical compound [Mg] FYYHWMGAXLPEAU-UHFFFAOYSA-N 0.000 description 1
- ZOKXTWBITQBERF-UHFFFAOYSA-N Molybdenum Chemical compound [Mo] ZOKXTWBITQBERF-UHFFFAOYSA-N 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- HCHKCACWOHOZIP-UHFFFAOYSA-N Zinc Chemical compound [Zn] HCHKCACWOHOZIP-UHFFFAOYSA-N 0.000 description 1
- QCWXUUIWCKQGHC-UHFFFAOYSA-N Zirconium Chemical compound [Zr] QCWXUUIWCKQGHC-UHFFFAOYSA-N 0.000 description 1
- 229910007610 Zn—Sn Inorganic materials 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 229910052790 beryllium Inorganic materials 0.000 description 1
- ATBAMAFKBVZNFJ-UHFFFAOYSA-N beryllium atom Chemical compound [Be] ATBAMAFKBVZNFJ-UHFFFAOYSA-N 0.000 description 1
- 229910052796 boron Inorganic materials 0.000 description 1
- GWXLDORMOJMVQZ-UHFFFAOYSA-N cerium Chemical compound [Ce] GWXLDORMOJMVQZ-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 229910052733 gallium Inorganic materials 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 229910052735 hafnium Inorganic materials 0.000 description 1
- VBJZVLUMGGDVMO-UHFFFAOYSA-N hafnium atom Chemical compound [Hf] VBJZVLUMGGDVMO-UHFFFAOYSA-N 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- APFVFJFRJDLVQX-UHFFFAOYSA-N indium atom Chemical compound [In] APFVFJFRJDLVQX-UHFFFAOYSA-N 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- FZLIPJUXYLNCLC-UHFFFAOYSA-N lanthanum atom Chemical compound [La] FZLIPJUXYLNCLC-UHFFFAOYSA-N 0.000 description 1
- 229910052749 magnesium Inorganic materials 0.000 description 1
- 239000011777 magnesium Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 229910052750 molybdenum Inorganic materials 0.000 description 1
- 239000011733 molybdenum Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- QEFYFXOXNSNQGX-UHFFFAOYSA-N neodymium atom Chemical compound [Nd] QEFYFXOXNSNQGX-UHFFFAOYSA-N 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
- 229910052718 tin Inorganic materials 0.000 description 1
- 229910052719 titanium Inorganic materials 0.000 description 1
- 239000010936 titanium Substances 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
- 229910052720 vanadium Inorganic materials 0.000 description 1
- LEONUFNNVUYDNQ-UHFFFAOYSA-N vanadium atom Chemical compound [V] LEONUFNNVUYDNQ-UHFFFAOYSA-N 0.000 description 1
- 238000003079 width control Methods 0.000 description 1
- VWQVUPCCIRVNHF-UHFFFAOYSA-N yttrium atom Chemical compound [Y] VWQVUPCCIRVNHF-UHFFFAOYSA-N 0.000 description 1
- 229910052725 zinc Inorganic materials 0.000 description 1
- OIWCYIUQAVBPGV-DAQGAKHBSA-N {1-O-hexadecanoyl-2-O-[(Z)-octadec-9-enoyl]-sn-glycero-3-phospho}serine Chemical compound CCCCCCCCCCCCCCCC(=O)OC[C@H](COP(O)(=O)OC[C@H](N)C(O)=O)OC(=O)CCCCCCC\C=C/CCCCCCCC OIWCYIUQAVBPGV-DAQGAKHBSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/48—Analogue computers for specific processes, systems or devices, e.g. simulators
- G06G7/60—Analogue computers for specific processes, systems or devices, e.g. simulators for living beings, e.g. their nervous systems ; for problems in the medical field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H01L27/108—
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L29/00—Semiconductor 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/66—Types of semiconductor device ; Multistep manufacturing processes therefor
- H01L29/68—Types 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/76—Unipolar devices, e.g. field effect transistors
- H01L29/772—Field effect transistors
- H01L29/78—Field effect transistors with field effect produced by an insulated gate
- H01L29/786—Thin film transistors, i.e. transistors with a channel being at least partly a thin film
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L29/00—Semiconductor 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/66—Types of semiconductor device ; Multistep manufacturing processes therefor
- H01L29/68—Types 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/76—Unipolar devices, e.g. field effect transistors
- H01L29/772—Field effect transistors
- H01L29/78—Field effect transistors with field effect produced by an insulated gate
- H01L29/786—Thin film transistors, i.e. transistors with a channel being at least partly a thin film
- H01L29/7869—Thin 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B10/00—Static random access memory [SRAM] devices
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B12/00—Dynamic random access memory [DRAM] devices
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B41/00—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
- H10B41/30—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
- H10B41/35—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B43/00—EEPROM devices comprising charge-trapping gate insulators
- H10B43/30—EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region
- H10B43/35—EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region with cell select transistors, e.g. NAND
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Computing Systems (AREA)
- Ceramic Engineering (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Neurosurgery (AREA)
- Physiology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (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에서는, 연산 장치가 탑재된 컴퓨터의 전류를 감시하고 제어함으로써, 열부하를 저감하기 위한 방법 및 시스템에 관한 발명이 개시되어 있다.
멀티 코어 기술 및 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 코어 중 어느 한쪽이 연산 처리를 실행하는 상태로, 다른 쪽이 파워 게이팅하는 상태로 전환되고, 전환은 과학 기술 계산에 의거한 연산 처리인지, 또는 뉴럴 네트워크를 이용한 추론에 의거한 연산 처리인지에 따라 제어되는 연산 장치가 바람직하다.
또한, 이 이외의 본 발명의 일 형태에 대해서는, 이하에 기술되는 실시형태에서의 설명, 및 도면에 기재된다.
본 발명의 일 형태에 의하여 신규 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 소비전력이 작은 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 고속 동작이 가능한 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 발열을 억제할 수 있는 연산 장치 및 전자 기기를 제공할 수 있다.
또한, 이들 효과의 기재는 다른 효과의 존재를 방해하는 것은 아니다. 또한, 본 발명의 일 형태는 반드시 이들 효과의 모두를 가질 필요는 없다. 이들 이외의 효과는 명세서, 청구범위, 도면 등의 기재로부터 저절로 명백해지는 것이며, 명세서, 청구범위, 도면 등의 기재로부터 이들 이외의 효과를 추출할 수 있다.
도 1은 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 2는 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 3은 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 4는 본 발명의 일 형태의 구성을 설명하기 위한 상태 천이도.
도 5는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 6은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 7은 본 발명의 일 형태의 구성을 설명하기 위한 흐름도.
도 8은 본 발명의 일 형태의 구성을 설명하기 위한 흐름도.
도 9는 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 10은 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 11은 CPU의 파워 게이팅 기구의 예를 도시한 블록도.
도 12의 (A)는 플립플롭의 구성예를 도시한 회로도이고, 도 12의 (B)는 플립플롭의 적층 구조예를 도시한 도면.
도 13은 플립플롭의 동작예를 나타낸 타이밍 차트.
도 14는 osAI 칩의 구성예를 나타낸 기능 블록도.
도 15는 MAC 어레이의 구성예를 도시한 회로도.
도 16은 osAI 칩의 구성예를 나타낸 기능 블록도.
도 17은 연산 어레이의 구성예를 도시한 블록도.
도 18은 연산 회로의 구성예를 도시한 회로도.
도 19의 (A)는 메모리 회로의 구성예를 도시한 회로도이고, 도 19의 (B)는 메모리 셀의 구성예를 도시한 회로도.
도 20은 메모리 회로의 구성예를 도시한 회로도.
도 21의 (A), (B)는 스위치 회로의 구성예를 도시한 회로도.
도 22의 (A)는 NOSRAM의 구성예를 나타낸 기능 블록도이고, 도 22의 (B)는 메모리 셀의 구성예를 도시한 회로도.
도 23의 (A)는 메모리 셀 어레이의 구성예를 도시한 회로도이고, 도 23의 (B), (C)는 메모리 셀의 구성예를 도시한 회로도.
도 24는 NOSRAM의 동작예를 나타낸 타이밍 차트.
도 25는 OSSRAM의 구성예를 나타낸 기능 블록도.
도 26의 (A)는 메모리 셀의 구성예를 도시한 회로도이고, 도 26의 (B)는 OSSRAM의 동작예를 나타낸 타이밍 차트.
도 27의 (A) 내지 (D)는 os 메모리의 회로 구성예를 도시한 회로도.
도 28은 osAI 칩의 회로부의 구성예를 도시한 모식도.
도 29는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 30은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 31은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 32는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 2는 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 3은 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 4는 본 발명의 일 형태의 구성을 설명하기 위한 상태 천이도.
도 5는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 6은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 7은 본 발명의 일 형태의 구성을 설명하기 위한 흐름도.
도 8은 본 발명의 일 형태의 구성을 설명하기 위한 흐름도.
도 9는 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 10은 본 발명의 일 형태의 구성을 설명하기 위한 블록도.
도 11은 CPU의 파워 게이팅 기구의 예를 도시한 블록도.
도 12의 (A)는 플립플롭의 구성예를 도시한 회로도이고, 도 12의 (B)는 플립플롭의 적층 구조예를 도시한 도면.
도 13은 플립플롭의 동작예를 나타낸 타이밍 차트.
도 14는 osAI 칩의 구성예를 나타낸 기능 블록도.
도 15는 MAC 어레이의 구성예를 도시한 회로도.
도 16은 osAI 칩의 구성예를 나타낸 기능 블록도.
도 17은 연산 어레이의 구성예를 도시한 블록도.
도 18은 연산 회로의 구성예를 도시한 회로도.
도 19의 (A)는 메모리 회로의 구성예를 도시한 회로도이고, 도 19의 (B)는 메모리 셀의 구성예를 도시한 회로도.
도 20은 메모리 회로의 구성예를 도시한 회로도.
도 21의 (A), (B)는 스위치 회로의 구성예를 도시한 회로도.
도 22의 (A)는 NOSRAM의 구성예를 나타낸 기능 블록도이고, 도 22의 (B)는 메모리 셀의 구성예를 도시한 회로도.
도 23의 (A)는 메모리 셀 어레이의 구성예를 도시한 회로도이고, 도 23의 (B), (C)는 메모리 셀의 구성예를 도시한 회로도.
도 24는 NOSRAM의 동작예를 나타낸 타이밍 차트.
도 25는 OSSRAM의 구성예를 나타낸 기능 블록도.
도 26의 (A)는 메모리 셀의 구성예를 도시한 회로도이고, 도 26의 (B)는 OSSRAM의 동작예를 나타낸 타이밍 차트.
도 27의 (A) 내지 (D)는 os 메모리의 회로 구성예를 도시한 회로도.
도 28은 osAI 칩의 회로부의 구성예를 도시한 모식도.
도 29는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 30은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 31은 본 발명의 일 형태의 구성을 설명하기 위한 도면.
도 32는 본 발명의 일 형태의 구성을 설명하기 위한 도면.
이하에서 본 발명의 실시형태에 대하여 설명한다. 다만, 본 발명의 일 형태는 이하의 설명에 한정되지 않고, 본 발명의 취지 및 그 범위에서 벗어남이 없이 그 형태 및 자세한 사항을 다양하게 변경할 수 있다는 것은 통상의 기술자라면 용이하게 이해된다. 따라서, 본 발명의 일 형태는 이하에 나타내는 실시형태의 기재 내용에 한정하여 해석되는 것은 아니다.
이하에 나타내는 복수의 실시형태는 적절히 조합할 수 있다. 또한, 하나의 실시형태 중에 복수의 구성예(제작 방법예, 동작 방법예, 사용 방법예 등도 포함함)가 나타내어지는 경우에는 서로의 구성예를 적절히 조합하거나, 또한 다른 실시형태에 기재된 하나 또는 복수의 구성예와 적절히 조합할 수도 있다.
도면에서, 크기, 층의 두께, 또는 영역은 명료화를 위하여 과장되어 있는 경우가 있다. 따라서, 반드시 그 스케일에 한정되는 것은 아니다. 또한, 도면은 이상적인 예를 모식적으로 도시한 것이고, 도면에 도시된 형상 또는 값 등에 한정되지 않는다. 예를 들어, 노이즈로 인한 신호, 전압, 또는 전류의 편차, 혹은 타이밍의 어긋남으로 인한 신호, 전압, 또는 전류의 편차 등을 포함할 수 있다.
본 명세서 등에서, 금속 산화물(metal oxide)이란, 넓은 의미로의 금속의 산화물이다. 금속 산화물은, 산화물 절연체, 산화물 도전체(투명 산화물 도전체를 포함함), 산화물 반도체(Oxide Semiconductor라고도 함) 등으로 분류된다. 예를 들어, 트랜지스터의 채널 형성 영역에 금속 산화물을 사용한 경우, 상기 금속 산화물을 산화물 반도체라고 부르는 경우가 있다. 즉, 금속 산화물이 증폭 작용, 정류 작용, 및 스위칭 작용 중 적어도 하나를 갖는 경우, 상기 금속 산화물을 금속 산화물 반도체(metal oxide semiconductor)라고 부를 수 있다. 이하에서, 채널 형성 영역에 금속 산화물을 포함하는 트랜지스터를 os 트랜지스터라고도 표기한다.
(실시형태 1)
본 발명의 일 형태인 연산 장치의 구성 및 동작 등에 대하여 설명한다.
도 1은 연산 장치(100A)의 블록도이다. 도 1에 도시된 연산 장치(100A)는 호스트(10)(도면에서 Host)와, 버스(20)(도면에서 Bus)와, GPU(30)를 갖는다. 호스트(10) 및 GPU(30)는 프로그램을 실행하기 위한 연산을 수행하는 기능을 갖는다.
호스트(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) 등이 있다. 또한, 인듐 및 아연을 포함하는 산화물에 알루미늄, 갈륨, 이트륨, 구리, 바나듐, 베릴륨, 붕소, 실리콘, 타이타늄, 철, 니켈, 저마늄, 지르코늄, 몰리브데넘, 란타넘, 세륨, 네오디뮴, 하프늄, 탄탈럼, 텅스텐, 마그네슘 등으로부터 선택된 1종류 또는 복수 종류가 포함되어도 좋다.
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는 캐리어가 되는 전자(또는 정공)를 흘리는 기능과, 캐리어가 되는 전자를 흘리지 않는 기능을 갖는다. 전자를 흘리는 기능과 전자를 흘리지 않는 기능을 분리시킴으로써, 양쪽의 기능을 최대한 높일 수 있다. 즉, os 트랜지스터의 채널 형성 영역에 CAC-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)를 통하여 GPU(30)와 전기적으로 접속된다. 즉, 호스트(10)와 GPU(30)는 버스(20)를 통하여 데이터 전송을 수행할 수 있다.
GPU(30)는 디바이스 메모리(31)와, 공유 메모리(32A)와, 공유 메모리(32B)와, GPU 코어(33A)와, GPU 코어(33B)를 갖는다. 디바이스 메모리(31), 공유 메모리(32A), 및 공유 메모리(32B)를 온사이트 메모리라고 하는 경우가 있다.
GPU(30)는 호스트 프로그램으로부터 호출된 프로그램을 실행하는 기능을 갖는다. GPU(30)는, 예를 들어, 그래픽스 처리에서의 행렬 연산의 병렬 처리, 뉴럴 네트워크의 적화 연산의 병렬 처리, 과학 기술 계산에서의 부동 소수점 연산의 병렬 처리 등을 수행할 수 있다.
디바이스 메모리(31)는 GPU(30)가 실행하는 프로그램(커널 또는 커널 프로그램이라고도 불림) 및 GPU(30)가 처리하는 데이터를 기억한다. 디바이스 메모리(31)는 메모리 버스(도시하지 않았음)를 경유하여 공유 메모리(32A) 및 공유 메모리(32B)와 전기적으로 접속된다. 또한, 디바이스 메모리(31)와 메모리(12) 사이의 데이터 전송은 버스(20)를 경유하여 수행된다.
공유 메모리(32A)는 GPU 코어(33A)와 전기적으로 접속되고, 디지털 값을 유지하는 기능을 갖는다. 공유 메모리(32B)는 GPU 코어(33B)와 전기적으로 접속되고, 아날로그 값을 유지하는 기능을 갖는다. 또한, 디지털 값은 2치, 즉, 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) 및 GPU(30)이다. 연산 장치(100A) 전체의 소비전력에 대한 호스트(10) 및 GPU(30)의 비율은 비교적 크다. 특히, GPU(30)가 딥 뉴럴 네트워크의 학습(심층 학습), 부동 소수점 연산을 수행하는 과학 기술 연산 등의 방대한 연산 처리를 수행하는 경우, 연산 장치(100A)의 소비전력은 현저히 증대된다. 그러므로, GPU(30)의 소비전력을 가능한 한 작게 하는 것이 바람직하다.
도 1에 도시된 연산 장치(100A)는 GPU에서의, 양자화된 아날로그 값을 사용한 연산 및 디지털 값을 사용한 연산의 전환, 그리고 CPU 코어(11A) 및 CPU 코어(11B)의 전환을 수행함으로써, 소비전력 및 발열을 억제하면서, 연산 처리를 고속으로 수행할 수 있다. 상기 구성은 복수의 CPU 코어 및 복수의 GPU 코어를 탑재한 SoC에 특히 효과적이다.
도 2는 도 1에 도시된 연산 장치(100A)의 변형예의 블록도이다. 도 2에 도시된 연산 장치(100B)는 2개 이상의 GPU(GPU(30_1) 내지 GPU(30_n)(n은 2 이상의 자연수))를 갖는다는 점에서, 도 1에 도시된 연산 장치(100A)와 상이하다.
버스(20)는 호스트(10) 및 GPU(30_1) 내지 GPU(30_n)와 전기적으로 접속된다. 호스트(10)와 GPU(30_1) 내지 GPU(30_n)는 버스(20)를 통하여 데이터 전송을 수행할 수 있다. 이 이외의 구성에 대해서는 연산 장치(100A)의 구성을 참조한다.
연산 장치(100B)는 복수의 GPU를 가짐으로써, 연산 장치(100A)와 비교하여, 더 고속으로 처리를 실행할 수 있다. 또한, 처리를 수행하는 GPU를 적절히 전환함으로써, 연산 장치(100B)의 온도가 상승되는 것을 억제할 수 있다.
도 3은 도 1에 도시된 연산 장치(100A)의 변형예의 블록도이다. 도 3에 도시된 연산 장치(100C)는 CPU(10A)(CPU1)와, CPU(10B)(CPU2)와, 버스(20)와, GPU(30A)(GPU1)와, GPU(30B)(GPU2)를 갖는다는 점에서, 도 1에 도시된 연산 장치(100A)와 상이하다.
CPU(10A)는 CPU 코어(11A) 및 메모리(12)를 갖고, CPU(10B)는 CPU 코어(11B) 및 메모리(12)를 갖는다. 또한, GPU(30A)는 디바이스 메모리(31), 공유 메모리(32A), 및 GPU 코어(33A)를 갖고, GPU(30B)는 디바이스 메모리(31), 공유 메모리(32B), 및 GPU 코어(33B)를 갖는다.
버스(20)는 CPU(10A), CPU(10B), GPU(30A), 및 GPU(30B)와 전기적으로 접속된다. CPU(10A) 및 CPU(10B), GPU(30A) 및 GPU(30B)는 버스(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 코어(2)(CPU Core2라고 도시함)와 비교하여, CPU 코어(1)(CPU Core1이라고 도시함)를 연산 성능이 낮고 소비전력이 작은 코어로 한다. 또한, CPU 코어(1)와 비교하여, CPU 코어(2)를 연산 성능이 높고 소비전력이 큰 코어로 한다. 또한, 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 Core2와 비교하여 CPU Core1을 적극적으로 사용하는 경우에, 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 Core2와 비교하여 GPU Core1을 적극적으로 사용하도록 함으로써, 소비전력의 저감, 발열의 억제, 및 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)는 CPU(110), GPU(120), 온칩 메모리(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)를 갖는다.
CPU(110)는 CPU 코어(111), 명령 캐시(112), 데이터 캐시(113), 및 버스 인터페이스 회로(114)를 갖는다. GPU(120)는 GPU 코어(121), 온사이트 메모리(122), ADC/DAC(123), 및 제어 회로(124)를 갖는다.
CPU 코어(111)는 복수의 CPU 코어를 갖는다. 예를 들어, 도 1에서 설명한 바와 같이, CPU 코어(11A) 및 CPU 코어(11B)를 갖는 구성으로 하면 좋다. 명령 캐시(112)는 CPU 코어(11A) 및 CPU 코어(11B)로 실행되는 명령을 일시적으로 기억하는 회로 구성으로 하면 좋다. 데이터 캐시(113)는 CPU 코어(11A) 및 CPU 코어(11B)에 의하여 처리되는 데이터 또는 처리에 의하여 얻어진 데이터를 일시적으로 기억하는 회로 구성으로 하면 좋다. 버스 인터페이스 회로(114)는 CPU(110)와 연산 장치 내의 다른 회로를 접속하기 위한 버스와, 데이터나 어드레스 등의 신호를 송수신할 수 있는 회로 구성이면 좋다.
GPU 코어(121)는 복수의 GPU 코어를 갖는다. 예를 들어, 도 1에서 설명한 바와 같이, GPU 코어(33A) 및 GPU 코어(33B)를 갖는 구성으로 하면 좋다. 온사이트 메모리(122)는 GPU 코어(33A) 및 GPU 코어(33B)에 의하여 처리되는 데이터 및 GPU(30)가 실행하는 프로그램을 일시적으로 기억하는 회로 구성으로 하면 좋다. ADC/DAC(123)는 처리되는 데이터의 아날로그 값과 디지털 값의 변환을 서로 수행하기 위한 회로 구성으로 하면 좋다. 제어 회로(124)는 GPU(120) 내의 회로를 제어하기 위한 회로 구성으로 하면 좋다.
고속 버스(140A)는, CPU(110), GPU(120), 온칩 메모리(131), DMAC(141), 파워 매니지먼트 유닛(142), 보안 회로(147), 메모리 컨트롤러(143), DDR SDRAM 컨트롤러(144), USB 인터페이스 회로(145), 및 디스플레이 인터페이스 회로(146) 사이의 각종 신호를 고속으로 송수신하기 위한 버스이다. 일례로서는, AMBA(Advanced Microcontoroller Bus Artcitecture)-AHB(Advanced High-perfermance Bus)를 버스로서 사용할 수 있다.
온칩 메모리(131)는 연산 장치(100D)가 갖는 회로, 예를 들어, CPU(110) 또는 GPU(120)에 입출력되는 데이터 또는 프로그램을 기억하기 위한 회로 구성을 갖는다.
DMAC(141)는 다이렉트 메모리 액세스 컨트롤러이다. DMAC(141)를 가짐으로써, CPU(110) 이외의 주변 기기는 CPU(110)를 통하지 않고, 온칩 메모리(131)에 액세스할 수 있다.
파워 매니지먼트 유닛(142)은 연산 장치(100D)가 갖는 GPU 코어나 CPU 코어 등의 회로의 파워 게이팅을 제어하기 위한 회로 구성을 갖는다.
보안 회로(147)는 연산 장치(100D)와 외부의 회로 사이에서 암호화하여 신호를 송수신하는 등 신호의 비밀성을 높이기 위한 회로 구성을 갖는다.
메모리 컨트롤러(143)는 연산 장치(100D)의 외부에 있는 프로그램 메모리로부터 CPU(110) 또는 GPU(120)로 실행하기 위한 프로그램을 기록하거나, 또는 판독하기 위한 회로 구성을 갖는다.
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)나, GPU(120)가 갖는 온사이트 메모리(122)를 os 메모리, 예를 들어, NOSRAM 등으로 구성할 수 있다. 즉, 온칩 메모리(131)와 온사이트 메모리(122)는 같은 회로 구성을 갖는다. 그러므로, SoC화할 때, 도 10의 (B)에 도시된 연산 장치(100E)와 같이, 온칩 메모리(131)와 온사이트 메모리(122)를 일체화하여 같은 영역 내에 배치할 수도 있다.
이상에서 설명한 본 발명의 일 형태에 의하여 신규 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 소비전력이 작은 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 고속 동작이 가능한 연산 장치 및 전자 기기를 제공할 수 있다. 또는, 본 발명의 일 형태에 의하여 발열을 억제할 수 있는 연산 장치 및 전자 기기를 제공할 수 있다.
(실시형태 2)
본 실시형태에서는, 파워 게이팅할 수 있는 CPU 코어를 갖는 CPU의 일례에 대하여 설명한다.
≪CPU(190)≫
도 11에 CPU(190)의 구성예를 도시하였다. CPU(190)는 CPU 코어(CPU Core)(200), L1(레벨 1) 캐시 메모리 장치(L1 Cache)(202), L2 캐시 메모리 장치(L2 Cache)(203), 버스 인터페이스부(Bus I/F)(205), 파워 스위치(210) 내지 파워 스위치(212), 레벨 시프터(LS)(214)를 갖는다. CPU 코어(200)는 플립플롭(220)을 갖는다.
버스 인터페이스부(205)에 의하여 CPU 코어(200), L1 캐시 메모리 장치(202), L2 캐시 메모리 장치(203)가 서로 전기적으로 접속된다.
외부로부터 입력되는 인터럽트 신호(Interrupts), CPU(190)가 발행하는 신호(SLEEP1) 등의 신호에 따라, PMU(193)는 클록 신호(GCLK1), 각종의 PG(파워 게이팅) 제어 신호(PG control signals)의 생성을 수행한다. 클록 신호(GCLK1), PG 제어 신호는 CPU(190)에 입력된다. PG 제어 신호는 파워 스위치(210) 내지 파워 스위치(212), 플립플롭(220)을 제어한다.
파워 스위치(210), 파워 스위치(211)는 가상 전원선(V_VDD)(이하에서, V_VDD선이라고 부름)으로의 전압(VDDD), 전압(VDD1)의 공급을 각각 제어한다. 파워 스위치(212)는 가상 전압선(V_VDH)(이하에서, V_VDH선이라고 부름)으로의 전압(VDDH)의 공급을 제어한다. CPU(190), PMU(193)에는 파워 스위치를 통하지 않고 전압(VSSS)이 입력된다. PMU(193)에는 파워 스위치를 통하지 않고 전압(VDDD)이 입력된다.
전압(VDDD), 전압(VDD1)은 CMOS 회로용 구동 전압이다. 전압(VDD1)은 전압(VDDD)보다 낮고, 슬리프 상태에서의 구동 전압이다. 전압(VDDH)은 os 트랜지스터용 구동 전압이고, 전압(VDDD)보다 높다.
L1 캐시 메모리 장치(202), L2 캐시 메모리 장치(203), 및 버스 인터페이스부(205) 각각은 파워 게이팅할 수 있는 파워 도메인을 적어도 하나 갖는다. 파워 게이팅할 수 있는 파워 도메인에는 하나 또는 복수의 파워 스위치가 제공된다. 이들 파워 스위치는 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)는 스캔 인에이블 신호이고, PMU(193)에서 생성된다. PMU(193)는 신호(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)의 면적 오버헤드를 0로 할 수 있다. 따라서, 백업 회로(222)를 플립플롭(220)에 제공함으로써 CPU 코어(200)의 파워 게이팅이 가능해진다. 파워 게이팅에 필요한 에너지가 적기 때문에, CPU 코어(200)를 고효율로 파워 게이팅할 수 있다.
백업 회로(222)를 제공함으로써 트랜지스터(M11)로 인한 기생 용량이 노드(Q1)에 부가되지만, 노드(Q1)와 접속되는 논리 회로로 인한 기생 용량과 비교하여 작기 때문에, 스캔 플립플롭(221)의 동작에 영향을 미치지 않는다. 즉, 백업 회로(222)를 제공하더라도 플립플롭(220)의 성능은 실질적으로 저하되지 않는다.
<저소비전력 상태>
CPU 코어(200)의 저소비전력 상태로서, 예를 들어, 클록 게이팅 상태, 파워 게이팅 상태, 휴지 상태를 설정할 수 있다. PMU(193)는 인터럽트 신호, 신호(SLEEP1) 등에 의거하여, CPU 코어(200)의 저소비전력 모드를 선택한다. 예를 들어, 통상 동작 상태로부터 클록 게이팅 상태로 이행하는 경우, PMU(193)는 클록 신호(GCLK1)의 생성을 정지한다.
예를 들어, 통상 동작 상태로부터 휴지 상태로 이행하는 경우에, PMU(193)는 전압 및/또는 주파수 스케일링을 수행한다. 예를 들어, 전압 스케일링을 수행하는 경우, PMU(193)는 전압(VDD1)을 CPU 코어(200)에 입력하기 위하여, 파워 스위치(210)를 오프로 하고, 파워 스위치(211)를 온으로 한다. 전압(VDD1)은 스캔 플립플롭(221)의 데이터를 소실시키지 않는 전압이다. 주파수 스케일링을 수행하는 경우, PMU(193)는 클록 신호(GCLK1)의 주파수를 저하시킨다.
CPU 코어(200)를 통상 동작 상태로부터 파워 게이팅 상태로 이행하는 경우에는, 스캔 플립플롭(221)의 데이터를 백업 회로(222)에 백업하는 동작이 수행된다. CPU 코어(200)를 파워 게이팅 상태로부터 통상 동작 상태로 복귀할 때에는, 백업 회로(222)의 데이터를 스캔 플립플롭(221)에 다시 기록하는 리커버리 동작이 수행된다.
도 13에 CPU 코어(200)의 파워 게이팅 시퀀스의 일례를 나타내었다. 또한, 도 13에서, t1 내지 t7은 시각을 나타낸다. 신호(PSE0) 내지 신호(PSE2)는 파워 스위치(210) 내지 파워 스위치(212)의 제어 신호이고, PMU(193)에서 생성된다. 신호(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)에서 PMU(193)는 클록 신호(GCLK1)를 정지하여, 신호(PSE2), 신호(BK)를 "H"로 한다. 레벨 시프터(214)는 액티브가 되어, "H"의 신호(BKH)를 백억 회로(222)에 출력한다.
백업 회로(222)의 트랜지스터(M11)가 온이 되어, 스캔 플립플롭(221)의 노드(Q1)의 데이터가 백업 회로(222)의 노드(SN11)에 기록된다. 스캔 플립플롭(221)의 노드(Q1)가 "L"이면 노드(SN11)는 그대로 "L"이고, 노드(Q1)가 "H"이면 노드(SN11)는 "H"가 된다.
PMU(193)는, 시각(t2)에서 신호(PSE2), 신호(BK)를 "L"로 하고, 시각(t3)에서 신호(PSE0)를 "L"로 한다. 시각(t3)에서, CPU 코어(200)의 상태는 파워 게이팅 상태로 이행하다. 또한, 신호(BK)를 하강시키는 타이밍에서 신호(PSE0)를 하강시켜도 좋다.
(파워 게이팅(Power-gating))
신호(PSE0)가 "L"이 됨으로써, V_VDD선의 전압이 저하되기 때문에, 노드(Q1)의 데이터는 소실된다. 노드(SN11)는 시각(t3)에서의 노드(Q1)의 데이터를 계속 유지한다.
(리커버리(Recovery))
시각(t4)에서, PMU(193)가 신호(PSE0)를 "H"로 함으로써, 파워 게이팅 상태로부터 리커버리 상태로 이행한다. V_VDD선의 충전이 시작되고, V_VDD선의 전압이 VDDD가 된 상태(시각(t5))에서, PMU(193)는 신호(PSE2), 신호(RC), 신호(SCE)를 "H"로 한다.
트랜지스터(M12)는 온이 되고, 용량 소자(C11)의 전하가 노드(SN11)와 노드(SD)에 분배된다. 노드(SN11)가 "H"이면, 노드(SD)의 전압은 상승된다. 노드(SE)는 "H"이기 때문에, 스캔 플립플롭(221)의 입력 측 래치 회로에 노드(SD)의 데이터가 기록된다. 시각(t6)에서 노드(CK)에 클록 신호(GCLK1)가 입력되면, 입력 측 래치 회로의 데이터가 노드(Q1)에 기록된다. 즉, 노드(SN11)의 데이터가 노드(Q1)에 기록된 것으로 된다.
시각(t7)에서, PMU(193)는 신호(PSE2), 신호(SCE), 신호(RC)를 "L"로 하여, 리커버리 동작이 종료된다.
os 트랜지스터를 사용한 백업 회로(222)는 동적 및 정적 저소비전력이 양쪽 작기 때문에, 노멀리 오프·컴퓨팅에 매우 적합하다. 플립플롭(220)을 탑재하더라도 CPU 코어(200)의 성능 저하, 동적 전력의 증가를 거의 발생시키지 않도록 할 수 있다.
또한, CPU 코어(200)는 파워 게이팅할 수 있는 복수의 파워 도메인을 가져도 좋다. 복수의 파워 도메인에는 전압의 입력을 제어하기 위한 하나 또는 복수의 파워 스위치가 제공된다. 또한, CPU 코어(200)는 파워 게이팅이 수행되지 않는 하나 또는 복수의 파워 도메인을 가져도 좋다. 예를 들어, 파워 게이팅이 수행되지 않는 도메인에 플립플롭(220), 파워 스위치(210) 내지 파워 스위치(212)의 제어를 수행하기 위한 파워 게이팅 제어 회로를 제공하여도 좋다.
또한, 플립플롭(220)의 적용은 CPU(190)에 한정되지 않는다. 연산 장치에서, 파워 게이팅할 수 있는 파워 도메인에 제공되는 레지스터에 플립플롭(220)을 적용할 수 있다.
(실시형태 3)
본 실시형태에서는, 상기 실시형태에서 설명한 연산 장치를 SoC화한 집적 회로(이하에서, osAI 칩)의 구체적인 구성예에 대하여 설명한다. 이하에서는, 데이터 유지 회로에 아날로그 값을 유지하고 연산 처리(아날로그 연산이라고도 함)를 수행하는 osAI 칩(아날로그 osAI 칩)으로서 설명한다. 또한, 아날로그 osAI 칩은, 실시형태 4에서 후술하는, 데이터 유지 회로에 디지털 값을 유지하고 연산 처리(디지털 연산이라고도 함)를 수행하는 osAI 칩(프로그래머블 osAI 칩)과 조합하여 SoC화한 하나의 osAI 칩으로 할 수 있다.
≪아날로그 osAI 칩≫
여기서는, 아날로그 연산을 이용한 초병렬 컴퓨팅이 가능한 osAI 칩(400)에 대하여 설명한다. osAI 칩(400)은 전결합형 뉴럴 네트워크(FCNN)에 매우 유리하다. osAI 칩(400)의 구성예, 동작 방법예에 대한 이해를 용이하게 하기 위하여, FCNN이 회로로 구성되는 것으로 한다. FCNN은 하나의 은닉층을 갖는다. 입력층, 은닉층, 출력층의 유닛 수는 각각 1024, 128, 32이다. 활성화 함수에는 ReLU(Rectified Linear Unit)가 사용된다. osAI 칩(400)의 FCNN은, 예를 들어, 손으로 쓴 문자의 인식, 범용 AI에 적용된다.
도 14는 osAI 칩(400)의 구성예를 나타낸 기능 블록도이다. 도 14에 나타낸 osAI 칩(osAI chip)(400)은 리시버(RX)(401), 디지털-아날로그 컨버터(DAC)(403), 디지털-아날로그 컨버터(DAC)(404), 적화 연산 회로(MAC) 어레이(MAC라고 도시함)(405), 적화 연산 회로(MAC) 어레이(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)에 따라, DAC(404)는 데이터(in_w[7:0])를 아날로그 데이터로 변환한다. 게이트 드라이버(407)는 MAC 어레이(405), MAC 어레이(406)로의 아날로그 데이터의 기록을 제어한다. 게이트 드라이버(407)에는 클록 신호(gclk), 펄스폭 제어 신호(gpwc), 스타트 펄스 신호(gsp)가 입력된다.
osAI 칩(400)이 처리하는 데이터는 8비트 디지털 데이터이고, 차동 전송 방식으로 입력된다. 예를 들어, 리시버(401)로서 LVDS 리시버가 사용된다. 리시버(401)는 차동 클록 신호(rx_clp), 차동 클록 신호(rx_cln)에 따라, 입력 데이터(rx_dp[7:0]), 입력 데이터(rx_dn[7:0])를 싱글 앤드 형식의 8비트 데이터로 변환한다. DAC(403)는 이 8비트 데이터를 아날로그 데이터로 변환한다. DAC(403)로부터 출력되는 아날로그 데이터는 차례차례 MAC 어레이(405)에 기록된다.
<MAC 어레이(405), MAC 어레이(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)에는 DAC(404)로부터 아날로그 데이터가 입력된다. 게이트선(GL1)은 가중 계수 데이터를 입력하는 곱셈 회로(40)를 선택하기 위한 신호선이며, 게이트 드라이버(407)에 의하여 구동된다.
곱셈 회로(40)에 가중 계수 데이터(w0)를 기록함으로써, 곱셈 회로(40)의 유지 노드(판독 트랜지스터의 게이트)의 전압은 가중 계수 데이터에 대응하는 전압(Vw0)이 된다.
데이터선(RX1)은 CFNN이 처리하는 데이터의 입력용 배선이다. 데이터선(RX1)에는, DAC(403)로부터 아날로그 데이터가 입력된다. 데이터선(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), MAC 어레이(406)의 전류원(42)용 인에이블 신호이다. 인에이블 신호(en_abs)는 MAC 어레이(405), MAC 어레이(406)의 오프셋 회로(43)용 인에이블 신호이고, 신호(osp1), 신호(osn1), 신호(en_res1)는 MAC 어레이(405)의 오프셋 회로(43)의 제어 신호이고, 신호(osp2), 신호(osn2), 신호(en_res2)는 MAC 어레이(406)의 오프셋 회로(43)의 제어 신호이다.
<ADC(408), 트랜스미터(409)>
ADC(408)에는 MAC 어레이(406)로부터 32개의 아날로그 데이터가 병렬로 입력된다. ADC(408)는 직렬 병렬 변환을 수행하기 위하여, 출력단(output stage)에 레지스터를 구비한다. ADC(408)는 1채널의 8비트 디지털 데이터를 출력한다.
신호(clk_sar), 신호(res_ser), 신호(go), 신호(stby_adc)는 각각 ADC(408)용 클록 신호, 리셋 신호, 인에이블 신호, 스탠바이 신호이다. 신호(dclk_p2s), 신호(en_p2s_per), 신호(en_p2s_ser)는 각각 레지스터용 클록 신호, 래치 신호, 출력 인에이블 신호이다. ADC(408)에는 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), MAC 어레이(406)의 입력 및 출력 데이터는 아날로그 데이터이기 때문에, 입출력 데이터가 디지털 데이터인 경우와 비교하여, MAC 어레이(405), MAC 어레이(406)의 배선 수를 대폭적으로 저감할 수 있다. 곱셈 회로(40)는 승산 기능과 가중 계수 데이터의 유지 기능 양쪽을 구비하기 때문에, 연산 시에 데이터를 판독하지 않는다. 즉, 집적 회로(40)에는 데이터의 수수의 시간 페널티 및 전력 페널티가 실질적으로 없다.
병렬 처리 아키텍처를 갖는 프로세서로서 GPU가 알려져 있다. GPU도 CPU와 마찬가지로 연산부와 메모리부 사이의 데이터 수수가 연산 효율의 보틀넥이 된다. 한편, osAI 칩(400)에는 이러한 문제점이 없다.
곱셈 회로(40)는 2T 게인 셀과 같은 회로 구성이고, 적은 트랜지스터 수에 의하여 아날로그 데이터의 곱하기를 수행할 수 있다. 따라서, 다수의 곱셈 회로(40)를 사용하여 적화 연산부를 구성함으로써, 낮은 소비전력으로 초병렬 연산 처리할 수 있는 osAI 칩(400)을 제공할 수 있다. 예를 들어, 곱셈 회로(40)의 개수가 106 내지 108개 정도이고, 동작 주파수가 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 칩(osAl chip)(450)은 컨트롤러(Controller)(460), I2C 모듈(I2C)(462), 리시버(RX)(463), 트랜스미터(TX)(464), 데이터 드라이버(Data driver)(466), 워드 드라이버(Word driver)(467)를 갖는다. 컨트롤러(460)는 연산 회로 어레이(470), 연산부(471), SRAM(472), 실렉터(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)의 출력 데이터는 SRAM(472)에서 일시적으로 기억된다. SRAM(472)으로부터 판독된 데이터는 실렉터(475), 디멀티플렉서(476)에 출력된다. 실렉터(475)는 실렉터(474)의 출력 데이터 및 SRAM(472)의 출력 데이터 중 어느 한쪽을 연산 회로 어레이(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)는 프로그래머블 회로이다. 연산 회로(61)는, 연산 회로 어레이(470)의 처리 내용에 맞추어 회로 구성된다. 스위치 회로(62)의 회로 구성을 연산 회로 어레이(470)의 처리 내용에 맞추어 변경함으로써, 연산 회로(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)에 출력한다. 실렉터(56A)는 메모리 회로(57A)의 출력 신호에 따라 데이터(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)에 프리차지하는 기능을 갖는다. 트랜지스터(77)는 신호(prch)에 따라 상기 배선을 프리차지한다.
도 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), (B)를 참조하여, 스위치 회로(62)에 대하여 설명한다. 도 21의 (A)에 도시된 바와 같이, 스위치 회로(62)에는 8개의 스위치 회로(65)가 제공된다. 데이터(sout)의 출력용 배선(66S)은 배선(U), 배선(D), 배선(L), 및 배선(R) 중 어느 하나와 전기적으로 접속된다. 데이터(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의 구성예를 나타낸 블록도이다. NOSRAM(240)에는 파워 도메인(242), 파워 도메인(243), 파워 스위치(245) 내지 파워 스위치(247)가 제공된다. 파워 도메인(242)에는 메모리 셀 어레이(Memory Cell Array)(250)가 제공되고, 파워 도메인(243)에는 NOSRAM(240)의 주변 회로가 제공된다. 주변 회로는 제어 회로(Control Circuit)(251), 행 회로(Row Circuit)(252), 열 회로(Column Circuit)(253)를 갖는다.
외부로부터 NOSRAM(240)에 전압(VDDD), 전압(VSSS), 전압(VDHW), 전압(VDHR), 전압(VBG2), 클록 신호(GCLK2), 어드레스 신호(Address), 신호(CE), 신호(WE), 신호(PSE5)가 입력된다. 신호(CE), 신호(WE)는 각각 칩 인에이블 신호, 기록 인에이블 신호이다. 신호(PSE5)는 PMU(193)에서 생성되고, 파워 스위치(245) 내지 파워 스위치(247)의 온 오프를 제어한다. 파워 스위치(245) 내지 파워 스위치(247)는 파워 도메인(243)으로의 전압(VDDD), 전압(VDHW), 전압(VDHR)의 입력을 각각 제어한다.
또한, NOSRAM(240)에 입력되는 전압, 신호 등은 NOSRAM(240)의 회로 구성, 동작 방법에 따라 적절히 취사된다. 예를 들어, NOSRAM(240)에 파워 게이팅되지 않는 파워 도메인을 제공하고, 신호(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열에 하나의 소스선이 공급된다.
메모리 셀(260)은 원리적으로 재기록 횟수에 제한은 없고, 데이터의 재기록을 낮은 에너지로 수행할 수 있고 데이터의 유지에 전력을 소비하지 않는다. 트랜지스터(M1)는 오프 전류가 매우 작은 os 트랜지스터이기 때문에, 메모리 셀(260)은 데이터를 장시간 유지할 수 있다. 따라서, NOSRAM(240)으로 L1 캐시 메모리 장치(202), L2 캐시 메모리 장치(203)를 구성함으로써, L1 캐시 메모리 장치(202), L2 캐시 메모리 장치(203)를 소비전력이 낮은, 비휘발성 메모리 장치로 할 수 있다.
메모리 셀(260)의 회로 구성은 도 22의 (B)의 회로 구성에 한정되지 않는다. 예를 들어, 판독 트랜지스터(M2)는 백 게이트를 갖는 os 트랜지스터 또는 n채널형 Si 트랜지스터이어도 좋다. 또는, 메모리 셀(260)은 3T형 게인 셀이어도 좋다. 도 23의 (B), (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)는 NOSRAM(240)의 동작 전반을 제어하는 기능을 갖는다. 예를 들어, 제어 회로(251)는 신호(CE), 신호(WE)를 논리 연산하여, 외부로부터의 액세스가 기록 액세스인지 판독 액세스인지를 판단한다.
행 회로(252)는 어드레스 신호(Address)가 지정하는 선택된 행의 기록 워드선(WWL), 판독 워드선(RWL)을 선택하는 기능을 갖는다. 열 회로(253)는 어드레스 신호가 지정하는 열의 기록 비트선(WBL)에 데이터를 기록하는 기능, 및 상기 열의 판독 비트선(RBL)으로부터 데이터를 판독하는 기능을 갖는다.
<동작예>
도 24를 참조하여 NOSRAM(240)의 동작예에 대하여 설명한다. 도 24는 NOSRAM(240)의 동작예를 나타내는 타이밍 차트이다. 기록 동작 상태(Write), 판독 동작 상태(Read), 및 스탠바이 상태(Stand-by)에서, 파워 스위치(245) 내지 파워 스위치(247)는 온이고, 파워 도메인(243)에는 전압(VDDD), 전압(VDHW), 전압(VDHR)이 입력된다.
<기록>
"H"의 신호(CE)와 "H"의 신호(WE)가 입력되면, NOSRAM(240)은 기록 동작을 수행한다. 행 회로(252)에 의하여 선택된 행의 워드선(WWL)은 "H"이고, 워드선(RWL)은 "L"이다. 열 회로(253)에 의하여 선택된 비트선(WBL)에는 데이터에 대응하는 전압이 입력된다. 선택된 메모리 셀(260)의 노드(SN1)의 전압은 데이터 "1"이 기록된 경우에 VDDD가 되고, 데이터 "0"가 기록된 경우에 VSSS이 된다.
<판독>
"H"의 신호(CE)와 "L"의 신호(WE)가 입력되면, NOSRAM(240)은 판독 동작을 수행한다. 열 회로(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)는 오프 상태이다.
예를 들어, NOSRAM(240)이 스탠바이 상태인 시간이 일정 시간을 넘으면, PMU(193)는 파워 스위치(245) 내지 파워 스위치(247)를 오프 상태로 하고, 또한 클록 신호(GCLK2)의 입력을 정지한다. 이로써, 파워 도메인(243)은 파워 게이팅되어, NOSRAM(240)의 대기 전력을 저감할 수 있다.
<OSSRAM>
다음으로, 도 25, 도 26을 참조하여 OSSRAM에 대하여 설명한다.
도 25에 나타낸 바와 같이, OSSRAM(300)에는 파워 도메인(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)이라고 부르는 경우가 있다.
OSSRAM(300)에는, 전압(VDDD), 전압(VSSS), 전압(VDDM), 전압(VDML), 전압(VSSM), 전압(VDHB), 전압(VBG3), 클록 신호(GCLK3), 어드레스 신호(Address), 신호(RST), 신호(CE), 신호(GW), 신호(BW)가 입력된다.
신호(RST), 신호(CE), 신호(GW), 신호(BW)는 각각 리셋 신호, 칩 인에이블 신호, 글로벌 기록 인에이블 신호, 바이트 기록 인에이블 신호이다. 이들 신호에 의거하여, 제어 회로(331)는 OSSRAM(300)을 제어한다. 제어 회로(331)에 입력 신호를 일시적으로 저장하는 레지스터를 제공하여도 좋다.
행 회로(332)는 어드레스 신호(Address)가 지정하는 선택된 행의 워드선(WL)을 선택하는 기능을 갖는다. 열 회로(333)는 어드레스 신호가 지정하는 열의 비트선쌍(BL, BLB)에 데이터를 기록하는 기능, 및 상기 비트선쌍(BL, BLB)으로부터 데이터를 판독하는 기능을 갖는다.
OSSRAM(300)에서, 각 회로, 각 신호, 및 각 전압을 필요에 따라 적절히 취사할 수 있다. 또는, 다른 회로 또는 다른 신호를 추가하여도 좋다. 또한, OSSRAM(300)의 입력 신호 및 출력 신호의 구조는 OSSRAM(300)의 동작 모드 및 메모리 셀 어레이(320)의 구성 등에 의거하여 설정된다.
파워 게이팅 제어 회로(330)는 PMU(193)가 생성하는 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)의 면적 오버헤드를 억제할 수 있다.
<저소비전력 상태>
OSSRAM(300)에는 4종류의 저소비전력 상태, (1)비트선 플로팅 상태, (2)휴지 상태, (3)셀 어레이 도메인 PG 상태, (4)전 도메인 PG 상태가 있다. 파워 게이팅 제어 회로(330)는 PMU(193)의 PG 신호 등에 의거하여, 저소비전력 상태에서의 OSSRAM(300)의 동작을 관리한다.
(비트선 플로팅 상태)
비트선 플로팅 상태에서는, 비트선쌍(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가 상이한, 복수의 저소비전력 상태를 가짐으로써, OSSRAM(300)의 소비전력을 효율적으로 저감할 수 있다.
<파워 게이팅 시퀀스>
도 26의 (B)에, 파워 도메인(302)에 대한 파워 게이팅 시퀀스의 일례를 나타내었다. 도 26의 (B)에서 t1, t2 등은 시각을 나타낸다.
(통상 동작(Normal Operation))
시각(t1) 이전에는 OSSRAM(300)의 상태는 통상 동작 상태(기록 상태 또는 판독 상태)이다. OSSRAM(300)은 싱글 포트 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) 내지 (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) 내지 os 메모리(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, 승산의 병렬 처리 수가 103인 경우, GPU 칩의 연산 성능은 3×1012OPS=3Tera OPS(TOPS)이다. 예를 들어, osAI 칩(390)에는 106 내지 108개 정도의 연산 회로를 제공할 수 있고, 승산의 병렬 처리 수를 106 내지 108로 할 수 있다. 이 경우, 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 연산부와 제 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 항 또는 제 2 항에 있어서,
상기 제 1 CPU 코어 및 상기 제 2 CPU 코어 중 어느 한쪽이 연산 처리를 실행하는 상태로, 다른 쪽이 파워 게이팅하는 상태로 전환되고, 상기 전환은 상기 제 1 CPU 코어 또는 상기 제 2 CPU 코어가 제공된 영역의 온도에 따라 제어되는 것을 특징으로 하는, 연산 장치. - 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 제 1 GPU 코어 및 상기 제 2 GPU 코어 중 어느 한쪽이 연산 처리를 실행하는 상태로, 다른 쪽이 파워 게이팅하는 상태로 전환되고, 상기 전환은 과학 기술 계산에 의거한 연산 처리인지, 또는 뉴럴 네트워크를 이용한 추론에 의거한 연산 처리인지에 따라 제어되는 것을 특징으로 하는, 연산 장치. - 전자 기기로서,
제 1 항 내지 제 4 항 중 어느 한 항에 기재된 연산 장치를 갖는, 전자 기기.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2017-171511 | 2017-09-06 | ||
JP2017171509 | 2017-09-06 | ||
JPJP-P-2017-171524 | 2017-09-06 | ||
JPJP-P-2017-171509 | 2017-09-06 | ||
JP2017171511 | 2017-09-06 | ||
JP2017171524 | 2017-09-06 | ||
PCT/IB2018/056531 WO2019048982A1 (ja) | 2017-09-06 | 2018-08-28 | 演算装置および電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200050949A true KR20200050949A (ko) | 2020-05-12 |
Family
ID=65633699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207004000A KR20200050949A (ko) | 2017-09-06 | 2018-08-28 | 연산 장치 및 전자 기기 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11275993B2 (ko) |
JP (2) | JP7237839B2 (ko) |
KR (1) | KR20200050949A (ko) |
CN (2) | CN111033438B (ko) |
DE (1) | DE112018004814T5 (ko) |
WO (1) | WO2019048982A1 (ko) |
Families Citing this family (14)
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 |
WO2021064502A1 (ja) * | 2019-10-04 | 2021-04-08 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US20220415941A1 (en) * | 2019-12-27 | 2022-12-29 | Semiconductor Energy Laboratory Co., Ltd. | Imaging device and electronic device |
US11011216B1 (en) * | 2020-03-05 | 2021-05-18 | Qualcomm Incorporated | Compute-in-memory dynamic random access memory |
WO2022064316A1 (ja) * | 2020-09-22 | 2022-03-31 | 株式会社半導体エネルギー研究所 | 半導体装置 |
CN112153139B (zh) * | 2020-09-23 | 2022-06-14 | 成都市深思创芯科技有限公司 | 基于传感器网络和存内计算神经网络的控制系统及方法 |
CN112214450A (zh) * | 2020-10-12 | 2021-01-12 | 湃方科技(天津)有限责任公司 | 一种边缘智能soc处理器、电子设备 |
WO2022165808A1 (zh) * | 2021-02-07 | 2022-08-11 | 华为技术有限公司 | 存储电路及存储器 |
TWI783854B (zh) * | 2021-03-17 | 2022-11-11 | 神盾股份有限公司 | 乘積和運算裝置 |
CN113360323A (zh) * | 2021-07-02 | 2021-09-07 | 西安紫光国芯半导体有限公司 | 一种众核计算电路、堆叠芯片和容错控制方法 |
CN113778211A (zh) * | 2021-08-24 | 2021-12-10 | 联想(北京)有限公司 | 一种电源电路的控制方法、装置及电子设备 |
WO2024095109A1 (ja) * | 2022-11-04 | 2024-05-10 | 株式会社半導体エネルギー研究所 | 半導体装置および半導体装置の動作方法 |
CN116450216B (zh) * | 2023-06-12 | 2023-08-29 | 上海灵动微电子股份有限公司 | 共享硬件运算单元的局部缓存方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014516446A (ja) | 2011-04-25 | 2014-07-10 | クアルコム,インコーポレイテッド | ポータブルコンピューティングデバイスにおいて電流を監視し制御することによって熱負荷を低減するための方法およびシステム |
Family Cites Families (18)
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 |
US9256535B2 (en) * | 2013-04-04 | 2016-02-09 | Advanced Micro Devices, Inc. | Conditional notification mechanism |
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 |
US9793080B2 (en) | 2013-08-23 | 2017-10-17 | Inoso, Llc | Electromechanical power switch integrated circuits and devices and methods thereof |
TWI640014B (zh) | 2013-09-11 | 2018-11-01 | 半導體能源研究所股份有限公司 | 記憶體裝置、半導體裝置及電子裝置 |
KR20150050135A (ko) | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
WO2015193777A1 (en) * | 2014-06-20 | 2015-12-23 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
KR20160004936A (ko) | 2014-07-04 | 2016-01-13 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치, 및 전자 기기 |
US10025367B2 (en) | 2014-08-19 | 2018-07-17 | Intel Corporation | Dynamic scaling of graphics processor execution resources |
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 |
KR20180081732A (ko) * | 2015-11-13 | 2018-07-17 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치, 전자 부품, 및 전자 기기 |
-
2018
- 2018-08-28 CN CN201880054259.0A patent/CN111033438B/zh active Active
- 2018-08-28 KR KR1020207004000A patent/KR20200050949A/ko not_active Application Discontinuation
- 2018-08-28 CN CN202311475196.5A patent/CN117519454A/zh active Pending
- 2018-08-28 DE DE112018004814.4T patent/DE112018004814T5/de active Pending
- 2018-08-28 WO PCT/IB2018/056531 patent/WO2019048982A1/ja active Application Filing
- 2018-08-28 JP JP2019540728A patent/JP7237839B2/ja active Active
- 2018-08-28 US US16/641,821 patent/US11275993B2/en active Active
-
2022
- 2022-01-31 US US17/588,613 patent/US11868877B2/en active Active
-
2023
- 2023-03-01 JP JP2023030844A patent/JP2023078182A/ja active Pending
- 2023-11-16 US US18/510,784 patent/US20240095507A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014516446A (ja) | 2011-04-25 | 2014-07-10 | クアルコム,インコーポレイテッド | ポータブルコンピューティングデバイスにおいて電流を監視し制御することによって熱負荷を低減するための方法およびシステム |
Also Published As
Publication number | Publication date |
---|---|
DE112018004814T5 (de) | 2020-06-10 |
US20200250521A1 (en) | 2020-08-06 |
US20220164641A1 (en) | 2022-05-26 |
JPWO2019048982A1 (ja) | 2020-11-26 |
CN111033438B (zh) | 2023-12-05 |
US20240095507A1 (en) | 2024-03-21 |
JP2023078182A (ja) | 2023-06-06 |
JP7237839B2 (ja) | 2023-03-13 |
WO2019048982A1 (ja) | 2019-03-14 |
CN117519454A (zh) | 2024-02-06 |
US11275993B2 (en) | 2022-03-15 |
US11868877B2 (en) | 2024-01-09 |
CN111033438A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868877B2 (en) | Arithmetic device and electronic device | |
US8289048B2 (en) | State transitioning clock gating | |
JP2019046199A (ja) | プロセッサ、および電子機器 | |
WO2007099841A1 (ja) | 半導体装置 | |
JP6487115B2 (ja) | フリップフロップを用いた電力管理 | |
US7924650B2 (en) | Dynamically controlled voltage regulator for a memory | |
US10908669B2 (en) | Methods and apparatus for power management of a memory cell | |
JP2019033233A (ja) | 半導体装置、および電子機器 | |
US10614865B1 (en) | Boost generation circuitry for memory | |
US20220334801A1 (en) | Weight stationary in-memory-computing neural network accelerator with localized data multiplexing | |
US20230040508A1 (en) | Semiconductor device | |
US11705171B2 (en) | Switched capacitor multiplier for compute in-memory applications | |
US20220276839A1 (en) | Semiconductor device | |
US11908947B2 (en) | Semiconductor device | |
US20170317676A1 (en) | Semiconductor circuit | |
US8451640B2 (en) | System for reducing power consumption and increasing speed of content-addressable memory | |
JP6953229B2 (ja) | 半導体装置 | |
CN110837355B (zh) | 一种基于NOR flash阵列的逻辑电路及操作方法 | |
US20230055062A1 (en) | Semiconductor device | |
Zhao et al. | Analysis and design of energy-efficient data-dependent SRAM | |
US20230099168A1 (en) | Semiconductor device | |
Chen et al. | A novel architecture of local memory for programmable SIMD vision chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |