掌桥专利:专业的专利平台
掌桥专利
首页

运算装置及电子设备

文献发布时间:2024-04-18 19:59:31


运算装置及电子设备

本申请是于2018年8月28日提交、于2020年2月21日进入中国国家阶段、国家申请号为201880054259.0、发明名称为“运算装置及电子设备”的申请之分案申请。

技术领域

本发明的一个方式涉及一种运算装置及电子设备。

注意,本发明的一个方式不局限于上述技术领域。作为本说明书等所公开的本发明的一个方式的技术领域的例子,可以举出半导体装置、摄像装置、显示装置、发光装置、蓄电装置、存储装置、显示系统、电子设备、照明装置、输入装置、输入输出装置、其驱动方法或者其制造方法。

此外,在本说明书等中,半导体装置是指能够通过利用半导体特性而工作的所有装置。晶体管、半导体电路、运算装置及存储装置等都是半导体装置的一个方式。另外,显示装置、摄像装置、电光装置、发电装置(包括薄膜太阳能电池、有机薄膜太阳能电池等)以及电子设备有时包括半导体装置。

背景技术

包括CPU(Central Processing Unit:中央处理器)等运算装置的电子设备已经被普及。上述电子设备以高速处理大量数据,所以与提高运算装置的性能有关的技术研发日益火热。作为实现高性能化的技术,例如可以举出多核技术、DVFS(Dynamic Voltage andFrequency Scaling:动态电压频率调整)技术。

另外,运算装置通过使GPU(Graphics Processing Unit:图形处理器)等加速器与CPU紧密结合实现所谓的SoC(System on Chip:系统芯片)化来提高运算处理性能。在通过SoC化实现了高性能化的运算装置中,发热及功耗增大成为问题。由此,专利文献1公开了一种通过监视安装有运算装置的计算机的电流并对其进行控制来减少热负荷的方法及系统的发明。

[先行技术文献]

[专利文献]

[专利文献1]日本PCT国际申请翻译第2014-516446号公报

发明内容

发明所要解决的技术问题

多核技术及DVFS技术对实现运算装置的高性能化十分有效。然而,当在被SoC化的运算装置中采用多核技术及DVFS技术时,不容易对每个核心进行电源门控,并且流过泄漏电流,导致功耗增大。

于是,本发明的一个方式的目的之一是提供一种新颖的运算装置及电子设备。另外,本发明的一个方式的目的之一是提供一种功耗小的运算装置及电子设备。另外,本发明的一个方式的目的之一是提供一种能够进行高速工作的运算装置及电子设备。另外,本发明的一个方式的目的之一是提供一种能够抑制发热的运算装置及电子设备。

注意,本发明的一个方式并不需要实现所有上述目的,只要可以实现至少一个目的即可。另外,上述目的的记载不妨碍其他目的的存在。可以从说明书、权利要求书、附图等的记载显而易见地看出并抽出上述以外的目的。

解决技术问题的手段

本发明的一个方式是一种运算装置,包括第一运算部、第二运算部,其中第一运算部包括第一CPU核心及第二CPU核心,第二运算部包括第一GPU核心及第二GPU核心,第一CPU核心及第二CPU核心都具有能够进行电源门控的功能,第一CPU核心及第二CPU核心各自包括电连接于触发器的第一数据保持电路,第一GPU核心包括保持模拟值而可以作为2位以上的数字数据读出的第二数据保持电路,第二GPU核心包括保持数字值而可以作为1位的数字数据读出的第三数据保持电路,第一至第三数据保持电路各自包括第一晶体管及电容器,第一晶体管具有控制数据写入电容器的功能以及通过使第一晶体管的源极与漏极间变为非导通状态而保持对应于被写入的数据的电荷的功能,在第一晶体管中,沟道形成区域包括氧化物半导体。

本发明的一个方式是一种运算装置,包括第一运算部、多个第二运算部,其中第一运算部包括第一CPU核心及第二CPU核心,多个第二运算部的每一个包括第一GPU核心及第二GPU核心,第一CPU核心及第二CPU核心都具有能够进行电源门控的功能,第一CPU核心及第二CPU核心各自包括电连接于触发器的第一数据保持电路,第一GPU核心包括保持模拟值而可以作为2位以上的数字数据读出的第二数据保持电路,第二GPU核心包括保持数字值而可以作为1位的数字数据读出的第三数据保持电路,第一至第三数据保持电路各自包括第一晶体管及电容器,第一晶体管具有控制数据写入电容器的功能以及通过使第一晶体管的源极与漏极间变为非导通状态而保持对应于被写入的数据的电荷的功能,在第一晶体管中,沟道形成区域包括氧化物半导体。

在本发明的一个方式中,优选的是,第二数据保持电路及第三数据保持电路分别包括第二晶体管且具有使第一晶体管的源极和漏极中的一方、电容器的一方电极与第二晶体管的栅极电连接的节点保持对应于模拟值或数字值的电位的功能。

在本发明的一个方式中,优选的是,第一CPU核心和第二CPU核心在其中任一方执行运算处理的状态和另一方进行电源门控的状态间切换,该切换根据设置有第一CPU核心或第二CPU核心的区域的温度进行控制。

在本发明的一个方式中,优选的是,第一GPU核心和第二GPU核心在其中一方执行运算处理的状态和另一方进行电源门控的状态间切换,该切换按照根据科学计算的运算处理或根据利用神经网络的推论的运算处理进行控制。

注意,本发明的其他方式记载于下面所述的实施方式中的说明及附图中。

发明效果

根据本发明的一个方式,可以提供一种新颖的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种功耗小的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种能够进行高速工作的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种能够抑制发热的运算装置及电子设备。

注意,这些效果的记载不妨碍其他效果的存在。此外,本发明的一个方式并不需要具有所有上述效果。可以从说明书、权利要求书、附图等的记载显而易见地看出并抽出上述以外的效果。

附图简要说明

[图1]是说明本发明的一个方式的结构的方框图。

[图2]是说明本发明的一个方式的结构的方框图。

[图3]是说明本发明的一个方式的结构的方框图。

[图4]是说明本发明的一个方式的结构的状态迁移图。

[图5]是说明本发明的一个方式的结构的图。

[图6]是说明本发明的一个方式的结构的图。

[图7]是说明本发明的一个方式的结构的流程图。

[图8]是说明本发明的一个方式的结构的流程图。

[图9]是说明本发明的一个方式的结构的方框图。

[图10]是说明本发明的一个方式的结构的方框图。

[图11]是示出CPU的电源门控机构的例子的方框图。

[图12]A:示出触发器的结构例子的电路图。B:示出触发器的叠层结构例子的图。

[图13]是示出触发器的工作例子时序图。

[图14]是示出osAI芯片的结构例子的功能框图。

[图15]是示出MAC阵列的结构例子的电路图。

[图16]是示出osAI芯片的结构例子的功能框图。

[图17]是示出运算阵列的结构例子的方框图。

[图18]是示出运算电路的结构例子的电路图。

[图19]A:示出存储电路的结构例子的电路图。B:示出存储单元的结构例子的电路图。

[图20]是示出存储电路的结构例子的电路图。

[图21]A、B:示出开关电路的结构例子的电路图。

[图22]A:示出NOSRAM的结构例子的功能框图。B:示出存储单元的结构例子的电路图。

[图23]A:示出存储单元阵列的结构例子的电路图。B、C:示出存储单元的结构例子的电路图。

[图24]是示出NOSRAM的工作例子的时序图。

[图25]是示出OSSRAM的结构例子的功能框图。

[图26]A:示出存储单元的结构例子的电路图。B:示出OSSRAM的工作例子的时序图。

[图27]A至D:示出os存储器的电路结构例子的电路图。

[图28]是示出osAI芯片的电路部的结构例子的示意图。

[图29]是说明本发明的一个方式的结构的图。

[图30]是说明本发明的一个方式的结构的图。

[图31]是说明本发明的一个方式的结构的图。

[图32]是说明本发明的一个方式的结构的图。

实施发明的方式

以下说明本发明的实施方式。注意,本发明的一个实施方式不局限于以下说明,所属技术领域的普通技术人员可以很容易地理解一个事实,就是本发明在不脱离其宗旨及其范围的条件下,其方式及详细内容可以被变换为各种各样的形式。因此,本发明的一个方式不应该被解释为仅局限在以下所示的实施方式所记载的内容中。

下面所示的多个实施方式可以适当地组合。另外,当在一个实施方式中示出多个结构例子(包括制造方法例子、工作方法例子和使用方法例子等)时,可以适当地相互组合这些结构例子,并且也可以适当地与其他实施方式中的一个或多个结构例子组合。

在附图中,为便于清楚地说明,有时夸大表示大小、层的厚度或区域。因此,本发明并不局限于附图中的尺寸。此外,在附图中,示意性地示出理想的例子,因此本发明不局限于附图所示的形状或数值等。例如,可以包括噪声引起的信号、电压或电流的不均匀、或者定时偏差引起的信号、电压或电流的不均匀等。

在本说明书等中,金属氧化物(metal oxide)是指广义上的金属的氧化物。金属氧化物被分类为氧化物绝缘体、氧化物导电体(包括透明氧化物导电体)和氧化物半导体(也称为Oxide Semiconductor)等。例如,在将金属氧化物用于晶体管的沟道形成区域的情况下,有时将该金属氧化物称为氧化物半导体。换言之,在金属氧化物具有放大作用、整流作用和开关作用中的至少一个的情况下,可以将该金属氧化物称为金属氧化物半导体(metaloxide semiconductor)。下面,将在沟道形成区域中包含金属氧化物的晶体管也称为os晶体管。

(实施方式1)

说明本发明的一个方式的运算装置的结构及工作等。

图1是运算装置100A的方框图。图1所示的运算装置100A包括主体10(附图中的Host)、总线20(附图中的Bus)及GPU30。主体10及GPU30具有执行程序的运算的功能。

主体10具有执行通用处理的功能,如执行OS(Operating System:操作系统)、控制数据、执行各种运算及程序等。主体10包括多个CPU核心。在图1中,作为一个例子示出CPU核心11A及CPU核心11B的两个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核心且对该CPU核心的任一方或双方采用DFVS技术而具有处理能力及功耗不同的结构。作为一个具体例子,一方的CPU核心通过增高电压及频率来提高处理性能,另一方的CPU核心通过降低电压及频率来抑制功耗,由此可以实现上述处理能力及功耗不同的结构。

CPU核心11A及CPU核心11B各自包括数据保持电路13。数据保持电路13是电源电压的供应停止时也能够保持数据的电路。注意,电源电压的供应可以利用电力开关等从电源域进行电切离来进行控制。电源电压有时被称为驱动电压。作为数据保持电路13,例如优选使用包括沟道形成区域中包含氧化物半导体(oxide semiconductor)的晶体管(os晶体管)的存储器(以下,也称为os存储器)。

由于金属氧化物的带隙为2.5eV以上,所以os晶体管具有极小的关态电流(on-state current)。作为一个例子,可以将源极与漏极间的电压为3.5V且室温(25℃)下的每沟道宽度为1μm的关态电流设定为低于1×10

作为应用于os晶体管的金属氧化物,有Zn氧化物、Zn-Sn氧化物、Ga-Sn氧化物、In-Ga氧化物、In-Zn氧化物及In-M-Zn氧化物(M是Ti、Ga、Y、Zr、La、Ce、Nd、Sn或Hf)等。此外,包含铟和锌的氧化物也可以还包含选自铝、镓、钇、铜、钒、铍、硼、硅、钛、铁、镍、锗、锆、钼、镧、铈、钕、铪、钽、钨和镁等中的一种或多种。

为了提高os晶体管的可靠性、电特性,用于半导体层的金属氧化物优选为CAAC-OS、CAC-OS、nc-OS等的具有结晶部的金属氧化物。CAAC-OS是c-axis-aligned crystallineoxide semiconductor的简称。CAC-OS是Cloud-Aligned Composite oxide semiconductor的简称。nc-OS是nanocrystalline oxide semiconductor的简称。

CAAC-OS具有c轴取向性,其多个纳米晶在a-b面方向上连结而结晶结构具有畸变。注意,畸变是指在多个纳米晶连结的区域中晶格排列一致的区域与其他晶格排列一致的区域之间的晶格排列的方向变化的部分。

CAC-OS具有使成为载流子的电子(或空穴)流过的功能以及不使成为载流子的电子流过的功能。通过分离使电子流过的功能和不使电子流过的功能,可以最大限度地提高双方的功能。换言之,通过将CAC-OS用于os晶体管的沟道形成区域,可以实现高通态电流及极低关态电流的双方。

因为金属氧化物的带隙大,电子不容易被激发,空穴的有效质量大,所以os晶体管与一般的Si晶体管相比有时不容易发生雪崩击穿等。因此,例如有时可以抑制起因于雪崩击穿的热载流子劣化等。通过能够抑制热载流子劣化,可以以高漏极电压驱动os晶体管。

os晶体管是以电子为多数载流子的积累型晶体管。由此,该OS晶体管与具有pn结的反转型晶体管(典型的是,Si晶体管)相比作为短沟道效果之一的DIBL(Drain-InducedBarrier Lowering,漏极导致的势垒降低)的影响小。换言之,与Si晶体管相比,os晶体管对短沟道效果具有高耐性。

由于对短沟道效果具有高耐性,可以缩小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是指存储单元为两个晶体管型(2T)或三个晶体管型(3T)增益单元且存取晶体管为os晶体管的存储器。“DOSRAM(注册商标)”是“Dynamic Oxide Semiconductor RAM”的简称。DOSRAM是指存储单元由os晶体管及电容器构成的一个晶体管一个电容器型(1T1C)且存取晶体管为os晶体管的存储器。NOSRAM及DOSRAM的存取晶体管为os晶体管。os晶体管在关闭状态下流过源极和漏极间的电流,即,泄漏电流极小。NOSRAM及DOSRAM通过利用泄漏电流极小这一特性将对应于数据的电荷保持在存储单元内,而可以用作非易失性存储器。

存储器12通过存储器总线(未图示)与CPU核心11A及CPU核心11B电连接。注意,运算装置100A是安装有CPU及GPU的异构系统,所以有时将存储器12称为主体存储器。

主体10通过总线20与GPU30电连接。换言之,主体10及GPU30可以通过总线20传送数据。

GPU30包括器件存储器31、共用存储器32A、共用存储器32B、GPU核心33A以及GPU核心33B。器件存储器31、共用存储器32A及共用存储器32B有时被称为现场存储器(on-sitememory)。

GPU30具有执行从主程序呼叫的程序的功能。例如,GPU30可以进行图像处理中的行列运算的并行处理、神经网络的积和运算的并行处理、科学计算中的浮点运算的并行处理等。

器件存储器31储存GPU30所执行的程序(也称为内核(kernel)或内核程序)及GPU30所处理的数据。器件存储器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及GPU30。在运算装置100A整体的功耗中主体10及GPU30所占的比例较大。尤其是,在GPU30进行深度神经网络的学习(深层学习)、浮点运算的科学计算等的庞大运算处理时,运算装置100A的功耗显著地增大。因此,优选是尽量降低GPU30的功耗。

图1所示的运算装置100A通过进行GPU中的利用被量子化的模拟值的运算和利用数字值的运算的切换以及CPU核心11A及CPU核心11B的切换,可以在抑制功耗及发热的同时高速地进行运算处理。该结构对安装有多个CPU核心及多个GPU核心的SoC尤其有效。

图2是图1所图示的运算装置100A的变形例子的方框图。图2所示的运算装置100B包括两个以上的GPU(GPU30_1至GPU30_n(n为2以上的自然数)),这一点与图1所示的运算装置100A不同。

总线20与主体10及GPU30_1至GPU30_n电连接。主体10及GPU30_1至GPU30_n可以通过总线20进行数据的传送。关于其他结构,参照运算装置100A的结构。

运算装置100B通过包括多个GPU可以比运算装置100A更高速地进行处理。另外,通过适当地切换进行处理的GPU,可以抑制运算装置100B的温度上升。

图3是图1所图示的运算装置100A的变形例子的方框图。图3所示的运算装置100C包括CPU10A(CPU1)、CPU10B(CPU2)、总线20、GPU30A(GPU1)、GPU30B(GPU2),这一点与图1所示的运算装置100A不同。

CPU10A包括CPU核心11A及存储器12,CPU10B包括CPU核心11B及存储器12。另外,GPU30A包括器件存储器31、共用存储器32A及GPU核心33A,GPU30B包括器件存储器31、共用存储器32B及GPU核心33B。

总线20与CPU10A、CPU10B、GPU30A及GPU30B电连接。CPU10A、CPU10B、GPU30A及GPU30B可以通过总线20进行数据的传送。关于其他结构,参照运算装置100A的结构。

图4是说明图1所示的运算装置100A可能变成的多个状态的状态迁移图。图4所示的运算装置100A包括状态SC1、状态SC2、状态SG1、状态SG2及状态SPG1至SPG4。

图4所示的状态SC1相当于利用CPU核心11A进行处理的状态(附图中记为CPUCore1)。状态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中说明的状态迁移图所示出的各状态的例子的图。具体而言,说明对应于五个指令(指令1至指令5)的各核心的工作。在图5中,将被供应电源电压而能够进行运算的状态的核心记为“EXE.”,将停止供应电源电压而处于PG状态的核心记为“PG”。

注意,在图5的说明中,CPU核心1(表示为CPU Core1)是与CPU核心2(表示为CPUCore2)相比运算性能低且功耗小的核心。另外,CPU核心2是与CPU核心1相比运算性能高且功耗大的核心。另外,GPU核心1(表示为GPU Core1)为利用通过使模拟值量子化而得到的数字值(多值数据)进行运算处理的GPU核心,其运算处理速度及精度低但是发热小。另外,GPU核心2(表示为GPU Core2)为利用数字值进行运算处理的GPU核心,其运算处理速度及精度高但是发热大。

指令1(附图中的Instruction1)是不进行并行处理且不需要高处理性能的指令。例如,可以举出安装有运算装置的电子设备或并行计算机处于休眠模式的情况(附图中的sleep)等。在此情况下,只使CPU核心1工作而使其他核心处于PG状态。CPU核心1的功耗小,其他核心处于PG状态而不消耗电力,所以可以在抑制运算装置100A的功耗及发热的同时执行指令1。

指令2(附图中的Instruction2)是不能进行并行处理且需要高速处理的指令。例如,可以举出启动操作系统的情况或执行多个通常程序的情况(附图中的busy)等。在此情况下,只使CPU核心2工作而使其他核心处于PG状态。CPU核心2的处理性能高,其他核心处于PG状态而不消耗电力。因此,可以在抑制运算装置100A的功耗的同时高速地执行指令2。

指令3(附图中的Instruction3)是能够进行并行处理且不需要高速处理的指令。例如,可以举出根据机械学习进行推论处理的情况(附图中的inference)等。在此情况下,使CPU核心1及GPU核心1工作而使其他核心处于PG状态。CPU核心1通过向GPU核心1上的存储器传送输入数据而呼叫内核程序,使GPU核心1进行处理。处理结束后,将输出数据传送到CPU核心上的存储器。CPU核心1及GPU核心1的功耗小,其他核心处于PG状态而不消耗电力。因此,可以在抑制运算装置100A的功耗及发热的同时高速地执行指令3。另外,在GPU核心1进行处理时,当不需要CPU核心1工作时,也可以在进行该处理的期间将CPU核心1切换为PG状态。通过频繁地切换为PG状态,可以抑制功耗及发热。

指令4(附图中的Instruction4)是能够进行并行处理且需要高速处理的指令。例如,可以举出进行科学计算的情况(附图中的calculation)等。在此情况下,使CPU核心2及GPU核心2工作而使其他核心处于PG状态。CPU核心2通过向GPU核心2上的存储器传送输入数据而呼叫内核程序,使GPU核心2进行处理。处理结束后,将输出数据传送到CPU核心上的存储器。另外,也可以在CPU核心2进行处理的一部分。CPU核心2及GPU核心2的处理性能高,其他核心处于PG状态而不消耗电力,所以可以在抑制运算装置100A的功耗的同时高速地执行指令4。另外,在GPU核心2进行处理时,当不需要CPU核心2工作时,也可以在进行该处理的期间将CPU核心2切换为PG状态。通过频繁地切换为PG状态,可以抑制功耗及发热。

指令5(附图中的Instruction5)是与指令4相比运算量多且需要更高速的处理的指令。在此情况下,在只使用CPU核心2及GPU核心2这两个核心进行处理时,该核心发热而使衬底温度上升,有可能导致运算装置故障。在此情况下,进行能够抑制衬底的温度上升的驱动(附图中的cooling)是有效的。例如,通过对所有核心(CPU核心1、CPU核心2、GPU核心1及GPU核心2)频繁地进行PG状态与供应电源电压的状态的切换,可以在抑制发热的同时继续执行指令。

如上所述,通过根据主程序中记载的指令的种类及运算量以及内核程序的种类及运算量适当地选择所使用的核心的组合并使没被选择的核心处于PG状态,可以在抑制功耗的同时高速地执行指令。

图6A、图6B是说明在根据衬底的温度使用多个CPU核心或多个GPU核心的情况下从进行运算状态切换到PG状态以及从PG状态切换到进行运算的状态的工作的图。

图6A示出切换两个CPU核心(CPU Core1、CPU Core2)的运算状态和PG状态而使其工作的情况的一个例子。首先,对CPU Core1供应电源电压使其变为能够进行运算的状态(CPU Core1 Exe.),停止对CPU Core2供应电源电压使其变为PG状态。注意,在图6A所示的图表中,横轴表示时间,纵轴表示配置有CPU核心的区域的表面温度。

在CPU Core1中,通过运算电流流过,所以以配置有CPU Core1的区域为中心发热。由于发热,配置有CPU Core1的区域的温度上升。在配置有CPU Core1的区域的温度到达阈值温度T

注意,优选采用CPU Core1的运算能力小于CPU Core2的运算能力的结构。具体而言,采用对CPU Core2应用DVFS技术而使其运算能力比CPU Core1高的结构。通过采用该结构,在与CPU Core2相比更积极地使用CPU Core1时,与配置有CPU Core2的区域相比可以进一步抑制配置有CPU Core1的区域的发热,由此可以降低功耗、抑制发热并降低切换为PG状态的频率。

当因配置有CPU Core1的区域的发热配置有CPU Core1的区域的温度到达极限温度T

配置有CPU Core2的区域的温度因发热而上升。通过在该配置有CPU Core2的区域的温度上升期间使CPU Core1处于PG状态,可以冷却配置有CPU Core1的区域。由此,可以抑制CPU Core2的温度上升。其结果,可以抑制运算装置整体的温度上升,所以可以减少风扇等冷却机构。当配置有CPU Core2的区域的温度到达阈值温度T

当因配置有CPU Core2的区域的发热配置有CPU Core2的区域的温度到达极限温度T

配置有CPU Core1的区域的温度因发热而上升。通过在该配置有CPU Core1的区域的温度上升期间使CPU Core2处于PG状态,可以冷却配置有CPU Core2的区域。由此,可以抑制CPU Core1的温度上升。其结果,可以抑制运算装置整体的温度上升,所以可以减少风扇等冷却机构。

同样地,图6B示出切换两个GPU核心(GPU Core1、GPU Core2)的运算状态和PG状态而工作的情况的一个例子。首先,对GPU Core1供应电源电压使其变为进行运算的状态(GPUCore1 Exe.),停止对GPU Core2供应电源电压使其变为处于PG状态。注意,在图6B所示的图表中,横轴表示时间,纵轴表示配置有GPU核心的区域的表面温度。

在GPU Core1中,通过运算电流流过,所以以配置有GPU Core1的区域为中心发热。由于发热,配置有GPU Core1的区域的温度上升。在配置有GPU Core1的区域的温度到达阈值温度T

注意,利用GPU Core1进行运算的运算量小于利用GPU Core2进行运算的运算量。因此,通过与GPU Core2相比更积极地使用GPU Core1,可以降低功耗、抑制发热并降低切换为PG状态的频率。

当因配置有GPU Core1的区域的发热通过配置有GPU Core1的区域的温度到达极限温度T

配置有GPU Core2的区域的温度因发热而上升。通过在该配置有GPU Core2的区域的温度上升期间使GPU Core1处于PG状态,可以冷却配置有GPU Core1的区域。由此,可以抑制GPU Core2的温度上升。其结果,可以抑制运算装置整体的温度上升,所以可以减少省略风扇等冷却机构。当配置有GPU Core2的区域的温度到达阈值温度T

当因配置有GPU Core2的区域的发热配置有GPU Core2的区域的温度到达极限温度T

配置有GPU Core1的区域的温度通过发热而上升。通过在上述配置有GPU Core1的区域的温度上升的期间使GPU Core2处于PG状态,可以冷却配置有GPU Core2的区域。因此,可以抑制GPU Core1的温度上升。其结果,可以抑制运算装置整体的温度的上升,所以可以减少风扇等的冷却机构。

图7是说明在GPU核心1(或GPU核心2。以下,图7的说明中作为GPU核心1进行说明)执行CPU核心1(或CPU核心2。以下,图7的说明中作为CPU核心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的功耗及发热,同时可以在GPU核心1执行CPU核心1所执行的程序的运算的一部分。

图8是说明与图7同样地在GPU核心执行CPU核心1(或CPU核心2。以下,图8的说明中作为CPU核心1进行说明)所执行的程序的运算的一部分时的根据在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(GPUCore1)被选择而开始执行内核程序(步骤S29)。在内核程序的执行结束后,输出数据储存在器件存储器上(步骤S31)。然后,GPU核心1从进行运算的状态切换为PG状态。

另外,例如,当内核程序为科学计算时(步骤S28),GPU核心2(GPU Core2)被选择而开始执行内核程序(步骤S30)。在内核程序结束后,输出数据被储存于器件存储器上(步骤S32)。然后,GPU核心2从进行运算的状态切换为PG状态。

关于图8所示的步骤S33至步骤S36的工作,可以参照图7所示的步骤S11至步骤S14的工作的说明。

通过上述步骤,通过根据在GPU核心进行的运算的种类切换用于运算的GPU核心,可以在GPU核心进行CPU核心1所进行的程序的运算的一部分。

图9是说明更具体的运算装置的结构的方框图的一个例子。

图9所图示的运算装置100D包括CPU110、GPU120、片上存储器131、DMAC(DirectMemory Access Controller)141、电源电路160、电源管理单元(PMU)142、安全用电路147、存储控制器143、DDR SDRAM(Double Data Rate Synchronous Dynamic Random AccessMemory)控制器144、USB(Universal Serial Bus)接口电路145、显示器接口电路146、电桥电路150、中断控制电路151、接口电路152、电池控制电路153及ADC(Analog-to-digitalconverter)/DAC(Digital-to-analog converter)接口电路154。

CPU110包括CPU核心111、指令高速缓存112、数据高速缓存113及总线接口电路114。GPU120包括GPU核心121、现场存储器122、ADC/DAC123及控制电路124。

CPU核心111包括多个CPU核心。例如,可以如图1所说明地采用具有CPU核心11A及CPU核心11B的结构。指令高速缓存112可以具有暂时性地储存CPU核心11A及CPU核心11B所执行的指令的电路结构。数据高速缓存113可以具有暂时性地储存CPU核心11A及CPU核心11B所处理的数据或通过处理得到的数据的电路结构。总线接口电路114可以具有能够传送及接收用来使CPU110与运算装置内的其他电路连接的总线的数据或地址等的信号的电路结构。

GPU核心121包括多个GPU核心。例如,可以如图1所说明地采用包括具有GPU核心33A及GPU核心33B的结构。现场存储器122可以具有暂时性地储存在GPU核心33A及GPU核心33B处理的数据及GPU30所执行的程序的电路结构。ADC/DAC123可以具有交替进行要处理的数据的模拟值与数字值的变换的电路结构。控制电路124可以具有控制GPU120内的电路的电路结构。

高速总线140A是用来高速地进行CPU110、GPU120、片上存储器131、DMAC141、电源管理单元142、安全用电路147、存储控制器143、DDR SDRAM控制器144、USB接口电路145和显示器接口电路146间的各种信号的传送及接收的总线。例如,可以将AMBA(AdvancedMicrocontoroller Bus Artcitecture:高级微控制器总线架构)-AHB(Advanced High-perfermance Bus:高级高性能总线)作为总线使用。

片上存储器131具有储存运算装置100D所包括的电路,例如对CPU110或GPU120输入或从CPU110或GPU120输出的数据或程序的电路结构。

DMAC141是直接内存访问控制器。在包括DMAC141时,CPU110以外的外围设备可以不通过CPU110访问片上存储器131。

电源管理单元142具有控制运算装置100D所包括的GPU核心或CPU核心等的电路的电源门控的电路结构。

安全用电路147具有在运算装置100D与外部的电路间进行加密后进行信号的传送和接收等提高信号的保密性的电路结构。

存储控制器143具有从运算装置100D的外部的程序存储器进行CPU110或GPU120所执行的程序的写入或读出的电路结构。

DDR SDRAM控制器144具有与运算装置100D的外部的DRAM等的主存储器间进行数据的写入或读出的电路结构。

USB接口电路145具有与运算装置100D的外部的电路通过USB端子进行数据的传送及接收的电路结构。

显示器接口电路146具有与运算装置100D的外部的显示装置进行数据的传送及接收的电路结构。

电源电路160是用来生成在运算装置100D内使用的电压的电路。例如,电源电路160是用来生成供应给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(SerialPeripheral Interface:串行外设接口)等接口工作的电路结构。

电池控制电路153具有用来传送及接收与运算装置100D的外部的电池的充放电有关的数据的电路结构。

ADC/DAC接口电路154具有在运算装置100D的外部的MEMS(Micro ElectroMechanical Systems:微电子机械系统)装置等输出模拟信号的装置间进行数据的传送和接收的电路结构。

图10A、图10B是示出被SoC化时的电路区块的配置的一个例子的图。如图10A所图示的运算装置100D那样在图9的方框图中示出的各结构可以在芯片上分区域配置。

另外,在图9中说明的片上存储器131、GPU120所包括的现场存储器122可以由os存储器诸如NOSRAM等构成。换言之,片上存储器131和现场存储器122具有相同的电路结构。因此,在被SoC化时,如图10B所示的运算装置100E那样,可以将片上存储器131和现场存储器122一体化地配置在相同区域内。

根据上述说明的本发明的一个方式,可以提供一种新颖的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种功耗小的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种能够进行高速工作的运算装置及电子设备。另外,根据本发明的一个方式,可以提供一种能够抑制发热的运算装置及电子设备。

(实施方式2)

在本实施方式中,说明包括能够进行电源门控的CPU核心的CPU的一个例子。

《CPU190》

图11示出CPU190的结构例子。CPU190包括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)、CPU190所生成的信号SLEEP1等的信号,PMU193进行时钟信号GCLK1、各种的PG(电源门控)控制信号(PG control signals)的生成。时钟信号GCLK1、PG控制信号被输入到CPU190。PG控制信号控制电力开关210至212、触发器220。

电力开关210、211分别控制向虚拟电源线V_VDD(以下,称为V_VDD线)供应电压VDDD、VDD1。电力开关212控制向虚拟电源线V_VDH(以下,称为V_VDH线)供应电压VDDH。CPU190、PMU193不通过电力开关被输入电压VSSS。PMU193不通过电力开关被输入电压VDDD。

电压VDDD、VDD1是CMOS电路用驱动电压。电压VDD1是低于电压VDDD的休眠状态下的驱动电压。电压VDDH是os晶体管用驱动电压且高于电压VDDD。

L1高速缓冲存储装置202、L2高速缓冲存储装置203和总线接口部205的每一个至少包括一个能够进行电源门控的电源定域。能够进行电源门控的电源定域设置有一个或多个电力开关。上述电力开关被PG控制信号控制。

触发器220用于寄存器。触发器220设置有备份电路。备份电路由os存储器构成。以下,说明触发器220。

<触发器(Flip-flop)220>

图12示出触发器220的电路结构例子。触发器220包括扫描触发器(Scan Flip-flop)221、备份电路(Buckup Circuit)222。

(扫描触发器221)

扫描触发器221包括节点D1、Q1、SD、SE、RT、CK、时钟缓冲电路221A。

节点D1是数据(data)输入节点,节点Q1是数据输出节点,节点SD是扫描测试用数据的输入节点。节点SE是信号SCE的输入节点。节点CK是时钟信号GCLK1的输入节点。时钟信号GCLK1被输入到时钟缓冲电路221A。扫描触发器221的模拟开关与时钟缓冲电路221A的节点CK1、CKB1电连接。节点RT是复位信号(reset signal)的输入节点。

信号SCE是扫描使能信号,在PMU193生成。PMU193生成信号BK、RC。电平转换器214对信号BK、RC进行电平转移,生成信号BKH、RCH。信号BK、RC是备份信号、恢复信号。

扫描触发器221的电路结构不局限于图12。也可以使用在标准的电路库中准备的触发器。

(备份电路222)

备份电路222包括节点SD_IN、SN11、晶体管M11至M13及电容器C11。

节点SD_IN是扫描测试数据的输入节点,电连接于扫描触发器221的节点Q1。节点SN11是备份电路222的保持节点。电容器C11是用来保持节点SN11的电压的存储电容器。

晶体管M11控制节点Q1与节点SN11之间的导通状态。晶体管M12控制节点SN11与节点SD之间的导通状态。晶体管M13控制节点SD_IN与节点SD之间的导通状态。晶体管M11、M13的开启/关闭被信号BKH控制,晶体管M12的开启/关闭被信号RCH控制。

与后述的晶体管M1同样,晶体管M11至M13是包括背栅极的os晶体管。晶体管M11至M13的背栅极与供应电压VBG1的电源线电连接。

优选的是,至少晶体管M11、M12为os晶体管。由于os晶体管的关态电流极小的特征,因此可以抑制节点SN11的电压下降。因为os晶体管在保持数据时几乎不耗电,所以备份电路222具有非易失性特性。由于通过电容器C11的充放电改写数据,所以备份电路222在原理上对改写次数没有限制,可以以低能量进行数据的写入及读出。

特别优选的是,备份电路222的所有晶体管为os晶体管。如图12B所示,可以在由硅CMOS电路构成的扫描触发器221上层叠备份电路222。

与扫描触发器221相比,备份电路222的元件个数非常少,由此不需要为了层叠备份电路222改变扫描触发器221的电路结构及布局。也就是说,备份电路222是通用性非常高的备份电路。另外,可以在形成有扫描触发器221的区域内设置备份电路222,由此即使安装备份电路222也可以使触发器220的面积开销为0。因此,通过将备份电路222设置在触发器220,可以进行CPU核心200的电源门控。电源门控所需要的能量少,所以能够高效地对CPU核心200进行电源门控。

通过设置备份电路222,虽然晶体管M11所产生的寄生电容附加到节点Q1,但是其小于与节点Q1连接的逻辑电路所产生的寄生电容,因此不影响到扫描触发器221的工作。也就是说,即使设置备份电路222,实质上触发器220的性能也不会下降。

<低功耗状态>

作为CPU核心200的低功耗状态,例如,可以设定时钟门控状态、电源门控状态及休眠状态。PMU193根据中断信号、信号SLEEP1等选择CPU核心200的低功耗模式。例如,在从正常工作状态转移到时钟门控状态时,PMU193停止生成时钟信号GCLK1。

例如,在从正常工作状态转移到休眠状态时,PMU193进行电压及/或频率调节。例如,在进行电压调节时,为了将电压VDD1输入到CPU核心200,PMU193使电力开关210开启并使电力开关211关闭。电压VDD1是不使扫描触发器221的数据消失的电压。在进行频率调节时,PMU193使时钟信号GCLK1的频率下降。

在将CPU核心200从正常工作状态转移到电源门控状态时,进行将扫描触发器221的数据备份到备份电路222的工作。在将CPU核心200从电源门控状态恢复到正常工作状态时进行将备份电路222的数据再次写入到触发器221的恢复工作。

图13示出CPU核心200的电源门控序列的一个例子。注意,在图13中,t1至t7表示时刻。信号PSE0至PSE2是电力开关210至212的控制信号,在PMU193生成。在信号PSE0为“H”/“L”时,电力开关210为开启/关闭。信号PSE1、PSE2也是同样的。

(正常工作(Normal Operation))

时刻t1之前是正常工作状态。电力开关210开启,CPU核心200被输入电压VDDD。扫描触发器221进行正常工作。此时,不需要使电平转换器214工作,所以电力开关212关闭,信号SCE、BK、RC处于“L”。节点SE处于“L”,所以扫描触发器221储存节点D1的数据。注意,在图13的例子中,在时刻t1备份电路222的节点SN11处于“L”。

(备份(Backup))

在时刻t1,PMU193停止时钟信号GCLK1而使信号PSE2、BK处于“H”。电平转换器214变为活动状态且将“H”的信号BKH输出到备份电路222。

备份电路222的晶体管M11成为开启状态,扫描触发器221的节点Q1的数据写入到备份电路222的节点SN11。若扫描触发器221的节点Q1为“L”,节点SN11则保持“L”,若节点Q1为“H”,节点SN11则成为“H”。

在时刻t2,PMU193使信号PSE2、BK成为“L”,在时刻t3,PMU193使信号PSE0成为“L。在时刻t3,CPU核心200的状态转移到电源门控状态。另外,也可以在信号BK下降的时序使信号PSE0下降。

(电源门控(Power-gating))

在信号PSE0处于“L时V_VDD线的电压下降,所以节点Q1的数据消失。节点SN11继续保持时刻t3的节点Q1的数据。

(恢复(Recovery))

在时刻t4,PMU193使信号PSE0成为“H”,因此从电源门控状态转移到恢复状态。开始V_VDD线的充电,在V_VDD线的电压成为VDDD的状态(时刻t5)时,PMU193使信号PSE2、RC、SCE变为“H”。

晶体管M12开启,电容器C11的电荷分配于节点SN11和节点SD。若节点SN11是“H”,节点SD的电压则上升。节点SE是“H”,节点SD的数据被写入到扫描触发器221的输入侧锁存电路。在时刻t6,向节点CK输入时钟信号GCLK1,输入侧锁存电路的数据被写入到节点Q1。也就是说,节点SN11的数据被写入到节点Q1。

在时刻t7,PMU193使信号PSE2、SCE、RC变为“L”结束恢复工作。

使用os晶体管的备份电路222的动态及静态功耗都小,所以非常适合于常闭运算。即便安装触发器220,也几乎不会发生CPU核心200的性能下降以及动态电力的增加。

另外,CPU核心200也可以包括能够进行电源门控的多个电源定域。多个电源定域设置有用来控制电压的输入的一个或多个电力开关。另外,CPU核心200也可以具有一个或多个不进行电源门控的电源定域。例如,可以在不进行电源门控的电源定域设置用来控制触发器220、电力开关210至212的控制的电源门控控制电路。

注意,触发器220的应用不局限于CPU190。在运算装置中,也可以将触发器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芯片(osAIchip)400包括接收器(RX)401、数字-模拟转换器(DAC)403、404、积和运算电路(MAC)阵列(表示为MAC)405、406、栅极驱动器(Gate driver)407、模拟-数字转换器(ADC)408、发送器(TX)409。

作为osAI芯片400的数据传送方式采用差分传输方式。例如,作为接收器401使用LVDS(Low Voltage Differential Signaling:低压差分信号)接收器,作为发送器409使用LVDS发送器。

复位信号reset_n使osAI芯片400复位。

数据in_w[7:0]是已学完的数据(Learned data)。例如,是表示权系数的8位数字信号。DAC404根据使能信号en_la_w、时钟信号dclk_w将数据in_w[7:0]转换为模拟数据。栅极驱动器407控制向MAC阵列405、406写入模拟数据。栅极驱动器407被输入时钟信号gclk、脉冲宽度控制信号gpwc、起始脉冲信号gsp。

osAI芯片400所处理的数据为8位数字数据,以差分传输方式输入。例如,作为接收器401使用LVDS接收器。接收器401根据差分时钟信号rx_clp、rx_cln将输入数据rx_dp[7:0]、rx_dn[7:0]转换为单端形式的8位数据。DAC403将该8位数据转换为模拟数据。从DAC403输出的模拟数据被逐次写入到MAC阵列405。

参照图15说明MAC阵列405的电路结构例子。在MAC阵列405以1024行144列的矩阵状设置有乘法电路40。乘法电路40具有与图27B的os存储器382相同的电路结构。换言之,乘法电路40具有运算电路和储存权系数的非易失性局部存储电路双方的功能。因此,与GPU相比,osAI芯片400可以以数量非常少的晶体管实现大规模并行运算。通过减少晶体管数量,可以实现osAI芯片400的小型化并降低功耗。

MAC阵列405中根据乘法电路40的配列设置有栅极线GL1、数据线RX1、WD1、RD1。数据线WD1是用来将权系数数据输入到乘法电路40的布线。从DAC404向数据线WD1输入模拟数据。栅极线GL1是用来选择输入权系数数据的乘法电路40的信号线,栅极线GL1被栅极驱动器407驱动。

通过将权系数数据w0写入乘法电路40,乘法电路40的保持节点(读出晶体管的栅极)的电压变为对应于权系数数据的电压Vw0。

数据线RX1是CFNN所处理的数据的输入用布线。从DAC403向数据线RX1输入模拟数据。乘法电路40的运算结果被读出到数据线RD1。数据线RD1电连接有电流源42、偏置电路43。

流过乘法电路40的电流I0与保持节点的电压Vw0和数据线RX1的电压Vx0之积成正比。换言之,电流I0表示权系数与输入数据之积。同样地,电流I1与保持节点的电压Vw1和电压Vx1之积成正比。换言之,乘法电路40可以计算权系数数据和输入数据之积。

每个数据线RD1与1024个乘法电路40电连接。电流源42生成参考电流Iref。输入到偏置电路43的电流Iout是参考电流Iref与电流Imac之差。电流Imac是流过1024个乘法电路40的电流的总和且表示对权系数和输入数据之积的总和的值。通过取得参考电流Iref与Imac之差,可以减少电流Iout的噪声成分。

偏置电路43将电流Iout转换为电压Vout且取得参考电压Vref与电压Vout之差。由此,电压Vout的噪声成分减少。偏置电路43放大Vref与Vout的差分电压并将其输出到激活函数电路44。激活函数电路44将经过处理的数据输出到MAC阵列406。

另外,MAC阵列405的144列中的16列保持与电流Iout的生成无关的用于积和运算的参考数据。

MAC阵列406具有与MAC阵列405同样的结构。乘法电路40配置为36行128列的矩阵状。在MAC阵列406中,36行中的4行与电流Iout的生成无关而用于参考数据的保持。

图14所示的使能信号en_cm是用于MAC阵列405、406的电流源42的使能信号。使能信号en_abs是用于MAC阵列405、406的偏置电路43的使能信号,信号osp1、osn1、en_res1是MAC阵列405的偏置电路43的控制信号,信号osp2、osn2、en_res2是MAC阵列406的偏置电路43的控制信号。

从MAC阵列406向ADC408并行输入32个模拟数据。ADC408在输出级设置有进行串并行转换的寄存器。ADC408输出一个通道的8位数字数据。

信号clk_sar、res_ser、go、stby_adc分别为ADC408用时钟信号、复位信号、使能信号、待机信号。信号dclk_p2s、en_p2s_per、en_p2s_ser分别为寄存器用时钟信号、锁存信号、输出使能信号。对ADC408输入32的模拟数据,将8位数字数据输出到发送器409。信号stby_tx是发送器409用待机信号。

发送器409根据信号dclk_p2s将8位数字数据转换为差分方式的数据tx_dp[7:0]、tx_dn[7:0]而输出,将信号dclk_p2s转换为差分方式的时钟信号tx_clp、tx_cln而输出。差分数据tx_dp[7:0]、tx_dn[7:0]是FCNN所取得的32种推论数据。

MAC阵列405、406的输入及输出数据是模拟数据,所以与输入输出数据为数字数据的情况相比,可以大幅度地减少MAC阵列405、406的布线数量。乘法电路40具有乘法运算功能和权系数数据的保持功能的双方,所以在运算时不读出数据。换言之,乘法电路40实际上没有数据的发送及接收时的时间损失及电力损失。

作为具有并行处理结构的处理器,已知有GPU。与CPU同样,GPU的运算部与存储器部间的数据的发送及接收是运算效率的瓶颈。相对于此,osAI芯片400没有上述问题。

乘法电路40具有与2T增益单元相同的电路结构且可以以数量少的晶体管进行模拟数据的乘法运算。因此,通过使用多个乘法电路40构成积和运算部,可以提供能够以低功耗进行大规模并行运算处理的osAI芯片400。例如,当乘法电路40的数量为10

(实施方式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、SRAM472、选择器474、475、解复用器476。

作为osAI芯片450的输入数据,可以举出工作设定数据(Operation settingdata)、已学完的数据(Learned data)、流水线结构数据(Pipeline construction data)、运算电路阵列470所处理的数据(Input data)。已学完的数据、流水线结构数据作为控制器460的配置数据输入到osAI芯片450。

数据sda是串行形式的工作设定数据被写入到I2C模块462。I2C模块462将所写入的工作设定数据输出到控制器460。信号i2c_clk、i2c_resetb、scl分别为I2C控制器用时钟信号、I2C复位信号、I2C时钟信号。信号O_SAVE、O_LOAD、OS_USE用于工作设定数据的备份控制。

数据DATA0输入到数据驱动器466。数据DATA0是配置数据。从数据驱动器466输出信号nSTATUS。信号nSTATUS是表示配置状态的信号。

作为向osAI芯片450传送数据的方式,可以使用单端方式、LVDS方式。数据din[7:0]是单端方式的输入数据,被输入到选择器474。接收器463具有与osAI芯片400的接收器同样的结构,根据差分时钟信号rx_clp、rx_cln将差分输入数据rx_dp[7:0]、rx_dn[7:0]转换为单端方式的数据rx_ds[7:0]而输出到选择器474。信号stby_rx、hpe_rx各自为接收器463的待机信号。

信号nCONFIG、DCLK输入到控制器460,控制器460输出信号CONF_DONE。信号nCONFIG、DCLK分别为配置开始信号、配置用时钟信号。信号CONF_DONE是表示结束配置的信号。

信号sys_clk、sys_resetb、user_resetb、context_ex[5:0]分别为系统时钟信号、系统复位信号、使用者复位信号、外部上下文信号。信号data_en是设定执行向控制器460传送输入数据的期间的信号。上述信号被输入到控制器460。控制器460输出信号State[2:0]、substate[2:0]。信号State[2:0]、substate[2:0]分别示出控制器460内部的状态、子状态。

运算电路阵列470被输入选择器475的输出数据。运算电路阵列470将所处理的数据输出到运算部471。运算部471的输出数据暂时储存在SRAM472。从SRAM472读出的数据输出到选择器475、解复用器476。选择器475将选择器474的输出数据和SRAM472的输出数据中的任一方输出到运算电路阵列470。

解复用器476具有选择数据的输出形式的功能。解复用器476的一方的输出数据作为单端形式的数据dout[7:0]输出到osAI芯片450的外部。另一方的输出数据经发送器464处理被转换为差分形式的数据tx_dp[7:0]、tx_dn[7:0]而输出到osAI芯片450的外部。

<运算电路阵列470>

参照图17至图21说明运算电路阵列470。如图17所示,运算电路阵列470以矩阵状设置有多个运算电路61、多个开关电路62。运算电路61、开关电路62是可编程电路。运算电路61根据运算电路阵列470的处理内容构成。当根据运算电路阵列470的处理内容改变开关电路62的电路结构时,运算电路61的连接关系改变。

注意,图17中的“U”、“D、“L”、“R”是开关电路62的布线的名称且表示连接方向(上、下、左、右)。

图18示出运算电路61的结构例子。运算电路61包括输入寄存器51、存储电路52、乘法电路53、加法电路54、输出寄存器55A、55B、选择器56A至56D、存储电路57A至57C。存储电路52、57A至57C是运算电路61的非易失性局部存储电路,使用os存储器。

输入寄存器51被输入数据sin。输入寄存器51利用锁存信号slat进行控制保持数据sin。输入寄存器51将保持数据作为数据sout输出到选择器56A。选择器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传送。

如图19A所示,存储电路52包括触发器71、译码器72、存储单元73_0至73_3、晶体管77、锁存电路78。存储单元73_0至73_3具有与os存储器383(参照图27C)相同的电路结构且是由三个os晶体管构成的增益单元。

信号word0至word3在字线驱动器467生成。一个存储单元被信号word0至word3选择,对被选择的存储单元写入配置数据(configuration data)。

触发器71保持上下文信号context_W[1:0]。译码器72对上下文信号context_W[1:0]进行编码而生成切换信号context_W0至context_W3并输出。切换信号context_W0至context_W3具有选择输出权系数数据的存储单元的功能。从被选择的存储单元读出的权系数作为数据cmout输出到乘法电路53。晶体管77具有将读出数据cmout的布线预充电到电压Vpr的功能。根据信号prch,晶体管77对该布线进行预充电。

图19B示出存储单元的其他结构例子。图19B所示的存储单元74是存储单元73_0的变形例子,在读出晶体管的栅极设置有由两个反相器电路构成的锁存电路。例如,上述反相器电路是由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分别由两个os存储器382(图27B)构成。在对存储单元91_0写入配置数据“1”时,使信号wordA0处于“H”且使信号wordB0、wordA1、wordB1处于“L”。在对存储单元91_0写入配置数据“0”时,使信号wordB0处于“H”且使信号wordA0、wordA1、wordB1处于“L”。

在对选择器56A输出控制信号的期间,晶体管93处于关闭状态。晶体管92_0、92_1中的任一方因切换信号context_A0、context_A1变为开启状态。例如,在晶体管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的结构>

参照图21A、图21B说明开关电路62。如图21A所示,开关电路62设置有8个开关电路65。数据sout的输出用布线66S与布线U、D、L、R中的任一个电连接。数据acout的输出用布线67A也是同样的。

如图21B所示,开关电路65包括触发器80、译码器81、存储单元83_0、83_1、布线87。布线87是布线L、R、U或D的任意布线。图21B示出用来传送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芯片400同样,osAI芯片450的运算部与存储器部间的数据的发送及接收不会成为运算效率的瓶颈。在运算电路61间逐次进行数据的递送和运算处理,所以可以高效地进行运算。

运算电路61及开关电路62为多上下文方式的可编程电路,所以可以以少量硬件资源高效地进行大规模并行运算处理。另外,可以使用osAI芯片450的硬件实现各种神经网络。

(实施方式5)

L1高速缓冲存储装置202、L2高速缓冲存储装置203由os存储器构成。os存储器是指将os晶体管用于存储单元的存储器。例如,L1高速缓冲存储装置202、L2高速缓冲存储装置203由NOSRAM(注册商标)或OSSRAM构成。OSSRAM是指设置有由os晶体管构成的备份电路的SRAM。以下示出NOSRAM、OSSRAM的结构例子。

图22A是示出NOSRAM的结构例子的方框图。在NOSRAM240中设置电源定域242、243、电力开关245至247。在电源定域242中设置存储单元阵列(Memory Cell Array)250,在电源定域243中设置NOSRAM240的外围电路。外围电路包括控制电路(Control Circuit)251、行电路(Row Circuit)252、列电路(Column Circuit)253。

从外部对NOSRAM240输入电压VDDD、VSSS、VDHW、VDHR、VBG2、时钟信号GCLK2、地址信号Address、信号CE、WE、PSE5。信号CE、WE分别是芯片使能信号、写入使能信号。信号PSE5由PMU193生成且控制电力开关245至247的开启及关闭。电力开关245至247分别控制向电源定域243的电压VDDD、VDHW、VDHR的输入。

另外,根据NOSRAM240的电路结构及工作方法适当地选择输入到NOSRAM240的电压、信号等。例如,NOSRAM240也可以设有不受到电源门控的电源定域并设有生成信号PSE5的电源门控控制电路。

存储单元阵列250包括存储单元260、写入字线WWL、读出字线RWL、写入位线WBL、读出位线RBL及源极线SL。

如图22B所示,存储单元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。

图23A示出存储单元阵列250的结构例子。在图23A所示的存储单元阵列250中,对邻接的2列提供一个源极线。

在存储单元260中,原理上其写入次数没有限制,并能够以低能量进行数据改写,因此数据的保持不消耗电力。因为晶体管M1是具有极小的关态电流的os晶体管,所以存储单元260能够长时间地保持数据。因此,通过由NOSRAM240构成L1高速缓冲存储装置202、L2高速缓冲存储装置203,可以使L1高速缓冲存储装置202、L2高速缓冲存储装置203成为非易失性的低功耗的存储装置。

存储单元260的电路结构不局限于图22B的电路结构。例如,读出晶体管M2可以为包括背栅极的os晶体管或n沟道型Si晶体管。或者,存储单元260也可以为3T型增益单元。图23B、图23C示出3T型增益单元的例子。图23B所示的存储单元262包括晶体管M3至M5、电容器C3及节点SN3。晶体管M3至M5分别是写入晶体管、读出晶体管、选择晶体管。晶体管M3为包括背栅极的os晶体管,晶体管M4、M5为p沟道型Si晶体管。晶体管M4、M5可以由n沟道型Si晶体管或包括背栅极的os晶体管构成。在图23C所示的存储单元263中,三个晶体管由包括背栅极的os晶体管构成。

节点SN3是保持节点。电容器C3是用来保持节点SN3的电压的存储电容器。可以意图性地不设置电容器C3,由晶体管M4的栅极电容等构成存储电容器。布线PDL是代替源极线SL的布线,布线PLD被输入固定电位(例如电压VDDD)。

控制电路251是具有对NOSRAM240的所有工作进行控制的功能。例如,控制电路251对信号CE、WE进行逻辑运算而判断来自外部的访问是写入访问还是读出访问。

行电路252具有选择地址信号Address所指定的被选择的行的写入字线WWL、读出字线RWL的功能。列电路253具有对地址信号所指定的列的写入位线WBL写入数据的功能及从该列的读出位线RBL读出数据的功能。

<工作例子>

参照图24说明NOSRAM240的工作例子。图24是示出NOSRAM240的工作例子的时序图。在写入工作状态(Write)、读出工作状态(Read)及待机状态(Stand-by)下,电力开关245至247开启而对电源定域243输入电压VDDD、VDHW、VDHR。

<写入>

当被输入“H”的信号CE、“H”的信号WE时,NOSRAM240进行写入工作。被行电路252选择的行的字线WWL处于“H”且字线RWL处于“L”。由列电路253选择的位线WBL被输入对应于数据的电压。选择的存储单元260的节点SN1的电压在数据“1”被写入时成为VDDD,在数据“0”被写入时成为VSSS。

<读出>

当被输入“H”的信号CE、“L”的信号WE时,NOSRAM240进行读出工作。列电路253将位线RBL预充电至电压VSSS,然后使源极线SL处于“H”。接着,被行电路252选择的行的字线RWL处于“L”。当选择行的存储单元260保持数据“0”时,晶体管M2的栅极被输入电压VSSS,所以较大电流流过晶体管M2的源极与漏极间。因此,位线RBL被快速地充电,位线RBL的电位提高。当选择行的存储单元260保持数据“1”时,晶体管M2的栅极被输入电位VDDD,所以晶体管M2几乎不流过漏极电流。由此,位线RBL保持预充电电压(VSSS)。

<待机>

写入字线WWL、源极线SL处于“L”,读出字线RWL处于“H”。存储单元260的晶体管M1处于关闭状态。

例如,在NOSRAM240处于待机状态的时间超过一定时间时,PMU193使电力开关245至247处于关闭状态且停止时钟信号GCLK2的输入。由此,电源定域243受到电源门控,可以降低NOSRAM240的待机电力。

接着,参照图25、图26说明OSSRAM。

如图25所示,在OSSRAM300设置有电源定域301至303、电力开关310至314。电源定域301是不受到电源门控的电源定域且设置有电源门控控制电路330。电源定域302、303是能够进行电源门控的电源定域。电源定域302设置有存储单元阵列320,电源定域303设置有控制电路331、行电路332、列电路333、备份及恢复驱动器335。

存储单元阵列320包括单元270、字线WL、位线BL、BLB、栅极线OGL。另外,位线BL、BLB也可以被称为局部位线。有时将设置在相同的列中的位线BL和位线BLB所构成的布线对称为位线对(BL、BLB)。

OSSRAM300被输入电压VDDD、VSSS、VDDM、VDML、VSSM、VDHB、VBG3、时钟信号GCLK3、地址信号Address、信号RST、CE、GW、BW。

信号RST、CE、GW、BW分别为复位信号、芯片使能信号、全局写入使能信号、字节写入使能信号。控制电路331根据上述信号控制OSSRAM300。也可以对控制电路331设置暂时储存输入信号的寄存器。

行电路332具有选择地址信号Address所指定的被选择的行的写入字线WL的功能。列电路333具有对地址信号所指定的列的位线对(BL、BLB)写入数据的功能及从该位线对(BL、BLB)读出数据的功能。

在OSSRAM300中,根据需要可以适当地选择各电路、各信号及各电压。或者,也可以增加其它电路或其它信号。此外,OSSRAM300的输入信号及输出信号的结构根据OSSRAM300的工作模式及存储单元阵列320的结构等设定。

电源门控控制电路330根据PMU193所生成的PG控制信号生成信号PSE11至PSE13以及行电路332、列电路333、备份及恢复驱动器335的控制信号。信号PSE11至PSE13控制电力开关310至314的开启/关闭。电力开关310、311分别控制对电源定域303输入电压VDDD、VDHB。电力开关312至314分别控制对电源定域302输入电压VDDM、VDML、VSSM。

(单元270)

图26A示出单元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的电压。

在图26A的例子中,双稳态电路275是由两个CMOS反相器电路构成的锁存电路。节点Q、Qb分别是两个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包括两个1T1C型存储单元,这些存储单元的保持节点是节点SN21、SN22。

晶体管M21、M22是包括背栅极的os晶体管,上述背栅极被输入电压VBG3。由于晶体管M21、M22使用os晶体管,所以备份电路272可以长时间保持数据。通过作为晶体管M21、M22使用os晶体管,可以将备份电路272层叠于由Si晶体管构成的存储单元271上,由此可以抑制因设置备份电路272而发生的单元270的面积开销。

<低功耗状态>

OSSRAM300具有四种低功耗状态:(1)位线浮动状态;(2)休眠状态;(3)单元阵列定域PG状态;(4)全部定域PG状态。电源门控控制电路330根据PMU193的PG信号等以低功耗状态管理OSSRAM300的工作。

(位线浮动状态)

在位线浮动状态下,使位线对(BL、BLB)处于浮动状态。存储单元271的数据不消失。

(休眠状态)

在休眠状态下,对电源定域302供应低于电压VDDM的电压VDML。电压VDML是不使存储单元271的数据消失的电压。位线对(BL、BLB)处于浮动状态。

(单元阵列定域PG状态)

使电力开关312至314关闭,停止向电源定域302供应电压VDDM、VDML、VSSM。位线对(BL、BLB)处于浮动状态。存储单元271的数据消失。

(全部定域PG状态)

全部定域PG状态是指对能够进行电源门控的全部定域进行电源门控的状态。电力开关310至314关闭。

四种低功耗状态的能够获得功耗降低效果的损益平衡时间(BET)不同。通过具有BET不同的多个低功耗状态,可以高效地降低OSSRAM300的功耗。

<电源门控序列>

图26B示出相对于电源定域302的电源门控序列的一个例子。在图26B中,t1、t2等表示时刻。

(正常工作(Normal Operation))

在时刻t1之前,OSSRAM300的状态为正常工作状态(写入状态或读出状态)。OSSRAM300进行与单端口SRAM同样的正常工作。电力开关310至312、314开启,电力开关313关闭。

(备份(Backup))

根据电源门控控制电路330的控制信号,在时刻t1开始备份工作。备份及恢复驱动器335使所有布线OGL处于“H”。在此,在时刻t1,节点Q/Qb处于“H”/“L”且节点SN21/SN22处于“L”/“H”,所以在晶体管M21、M22开启时,节点SN21的电压从VSSM上升到VDDM且节点SN22的电压从VDDM下降到VSSM。通过在时刻t2使布线OGL处于“L”,备份工作结束。对节点SN21/SN22写入时刻t1的节点Q/Qb的数据。

(电源门控(Power-gating))

当在时刻t2电源门控控制电路330使信号PSE12处于“L”且使电力开关312、314关闭时,电源定域302的电源门控开始。当V_VDM线与V_VSM线之间的电压差下降时,存储单元271成为非活动状态。存储单元271的数据消失,但是备份电路272继续保持数据。

例如,在电源定域302不被供应电源时,使位线对(BL、BLB)处于浮动状态。电源门控控制电路330向列电路333传送用于进行上述工作的控制信号

(恢复(Recovery))

行电路332、列电路333、备份及恢复驱动器335根据电源门控控制电路330的控制信号进行恢复工作。在恢复工作中,双稳态电路275被用作检测节点Q/Qb的数据的读出放大器。首先,进行节点Q、Qb的复位工作。在时刻t3,列电路333对所有位线对(BL、BLB)进行预充电工作。所有位线对(BL、BLB)预充电至电压Vpr2。行电路332使所有字线WL处于选择状态。V_VDM线和V_VSM线预充电至电压Vpr2,节点Q、Qb的电压固定为Vpr2。

在时刻t4,备份及恢复驱动器335使所有布线OGL处于“H”。晶体管M21、M22开启。电容器C21的电荷分配于节点Q、节点SN21,电容器C22的电荷分配于节点Qb、节点SN22,在节点Q与节点Qb间产生电压差。

在时间t5,使电力开关312、314开启,再次开始向电源定域302输入电压VDDM、VSSM。双稳态电路275成为活动状态且放大节点Q与节点Qb间的电压差。最终,节点Q、SN21的电压成为VDDM,节点Qb、SN22的电压成为VSSM。也就是说,节点Q/Qb的状态恢复到时间t1时的状态(“H”/“L”)。在时刻t7恢复工作结束。

L1高速缓冲存储装置202与L2高速缓冲存储装置203的结构也可以不同。例如,作为L1高速缓冲存储装置202使用OSSRAM,作为L2高速缓冲存储装置203使用NOSRAM。或者,作为L1高速缓冲存储装置202使用由存储单元260构成的NOSRAM,作为L2高速缓冲存储装置203使用由存储单元263构成的NOSRAM。在此情况下,在L2高速缓冲存储装置203中,存储单元阵列可以层叠于外围电路上,所以可以减小L2高速缓冲存储装置203的面积,有利于大容量化。存储单元260的读出晶体管为Si晶体管,所以读出速度快,适合于L1高速缓冲存储装置202。

osAI芯片390是使用os晶体管且能够进行AI的运算处理的IC芯片。osAI芯片390所使用的数据有权系数数据(能够学习的数据)、图像数据、监督数据等。osAI芯片390的运算结果例如作为推论数据输出。

osAI芯片390的特征为:储存用于运算的数据(典型的是,权系数数据)的存储电路设置在运算电路附近。上述存储电路使用os晶体管。在本说明书中,有时将包括os晶体管的存储器称为“os存储器”。图27A至图27D示出os存储器的电路结构例子。

图27A所示的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晶体管相比有时不容易发生雪崩击穿(avalanche breakdown)等。因此,例如有时可以抑制起因于雪崩击穿的热载流子劣化等。通过能够抑制热载流子劣化,可以以高漏极电压驱动os晶体管。由此,在写入晶体管MW1使用os晶体管时,可以对节点SN施加高电压,所以易于实现os存储器381的多值化。

图27B所示的os存储器382是os存储器381的变形例子,读出晶体管MR2为n沟道型Si晶体管。读出晶体管MR2也可以为p沟道型Si晶体管。

图27C所示的os存储器383是3晶体管型增益单元,包括写入晶体管MW3、读出晶体管MR3、选择晶体管MS3、电容器CS3。写入晶体管MW3、读出晶体管MR3、选择晶体管MS3都是包括背栅极的os晶体管。上述晶体管中的部分晶体管或所有晶体管也可以是不包括背栅极的os晶体管。

图27D所示的os存储器384是os存储器383的变形例子。读出晶体管MR4、选择晶体管MS4都是n沟道型Si晶体管。读出晶体管MR4和选择晶体管MS4中的一方或双方也可以为p沟道型Si晶体管。

由于通过电容器CS1的充放电改写数据,所以原理上os存储器381的改写次数没有限制,可以以低能量进行数据的写入及读出,在保持数据时不消耗电力。因此,通过将os存储器381组合于osAI芯片390,可以实现低功耗的AI芯片。os存储器382至384也具有与os存储器381同样的特征。

图28A示意性地示出osAI芯片390的电路部391A的叠层结构。电路部391A具有叠层结构,大致分为Si晶体管层1011、布线层1012、os晶体管层1013。可以将os晶体管层1013层叠地设置在Si晶体管层1011上,由此可以减小osAI芯片390的面积。

如电路部391B(参照图28B)、电路部391C(参照图28C)那样,也可以设置多个os晶体管层1013。与电路部391A、391B不同,电路部391C不设置有Si晶体管层1011。电路部391C的os晶体管层1013的数量有时为1层。

osAI芯片390的更具体的电路结构在实施方式3及实施方式4中进行了说明。如上所述,可以由少量元件及布线构成osAI芯片390的运算部,所以有利于集成化。可以通过运算电路的集成化增加并行处理的次数,所以osAI芯片390具有可以实现与市售的GPU芯片同样的或其以上的运算性能的可能性。

例如,在市售的GPU芯片的工作频率为3GHz、乘法并行处理的次数为10

另外,由于进行AI的运算等大规模的运算处理,所以GPU芯片以高频率驱动。因此,消耗大电力而成为高温。osAI芯片390可以降低工作频率,所以可以抑制osAI芯片390的发热。因此,在运算装置中,osAI芯片390的散热机构可以比GPU芯片的散热机构简化。

如上所述,在GPU芯片中,运算性能的提高和低功耗化及发热抑制具有权衡(trade-off)的关系。相对于此,osAI芯片390即使降低工作频率也可以减少运算性能的劣化。因此,osAI芯片390可以在时间及电力的方面高效地进行大规模的运算处理。

(实施方式6)

在本实施方式中,参照图29至图32说明能够使用上述实施方式中记载的运算装置的电子设备、移动体、运算系统。

图29A示出作为移动体的一个例子的汽车的外观。图29B是汽车内的数据的递送的简图。汽车590包括多个照相机591等。另外,汽车590包括红外线雷达、毫米波雷达、激光雷达等各种传感器(未图示)等。

汽车590的照相机591等可以使用上述osAI芯片390。汽车590通过将照相机591从多个拍摄方向592拍摄的多个图像在上述实施方式中说明的osAI芯片390中进行处理并通过总线593等利用主体控制器594等对多个图像进行综合分析,来判断周围的交通状況诸如护栏或行人的有无等,由此可以进行自动驾驶。另外,还可以将上述osAI芯片390用于进行导航、危险预测等的系统。

在osAI芯片390中,通过对所得到的图像数据进行神经网络等的运算处理,例如可以进行图像的高分辨率化、图像噪声的减少、人脸识别(以安全防范等为目的)、物体识别(以自动驾驶等为目的)、图像压缩、图像校正(宽动态范围化)、无透镜图像传感器的图像恢复、位置对准、文字识别、反射眩光等的降低等处理。

虽然在上述例子中作为移动体的一个例子说明汽车,但是移动体不局限于汽车。例如,作为移动体,也可以举出电车、单轨铁路、船舶、飞行物(直升机、无人驾驶飞机(无人机)、飞机、火箭)等,可以对这些移动体应用本发明的一个方式的计算机,以提供利用人工智能的系统。

图30A是示出便携式电子设备的一个例子的外观图。图30B是便携式电子设备内的数据的递送的简图。便携式电子设备595包括印刷线路板596、扬声器597、照相机598、麦克风599等。

在便携式电子设备595中,可以在印刷线路板596上设置上述osAI芯片390。便携式电子设备595通过利用上述实施方式中说明的osAI芯片390对通过扬声器597、照相机598、麦克风599等获得的多个数据进行处理及分析,可以提高使用者的方便性。另外,还可以将上述osAI芯片390用于进行声音指南、图像检索等系统。

在osAI芯片390中,通过对所得到的图像数据进行神经网络等的运算处理,例如可以进行图像的高分辨率化、图像噪声的减少、人脸识别(安全目的等)、物体识别(自动驾驶的目的等)、图像压缩、图像校正(宽动态范围化)、无透镜图像传感器的图像恢复、位置对准、文字识别、反射眩光等的降低等处理。

图31A所示的便携式游戏机1100包括外壳1101、外壳1102、外壳1103、显示部1104、连接部1105、操作键1107等。外壳1101、外壳1102及外壳1103可以卸下。通过将设置在外壳1101的连接部1105安装在外壳1108,可以将输出到显示部1104的影像输出到其他视频显示设备。另一方面,通过将外壳1102及外壳1103安装在外壳1109,可以使外壳1102及外壳1103一体化而作为操作部使用。上述实施方式所示的osAI芯片390可以组合到设置在外壳1102及外壳1103的衬底上的芯片等。

图31B是USB连接型的条状的电子设备1120。电子设备1120包括外壳1121、盖子1122、USB连接器1123及基板1124。基板1124收纳在外壳1121内。例如,基板1124安装有存储芯片1125、控制芯片1126。上述实施方式所示的osAI芯片390可以组合到基板1124的控制芯片1126等。

图31C是人型机器人1130。机器人1130包括传感器2101至2106及控制电路2110。例如,上述实施方式所示的osAI芯片390可以组合到控制电路2110。

在上述实施方式中说明的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:机架。

技术分类

06120116523616