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

处理器、电子装置及其控制方法

文献发布时间:2023-06-19 09:29:07


处理器、电子装置及其控制方法

技术领域

本公开涉及处理器、电子装置及其控制方法,更具体地,涉及用于对输入数据执行卷积计算的处理器、电子装置及其控制方法。

背景技术

近年来,实现人类智能水平的人工智能(AI)系统应用于各个领域。与传统的基于规则的智能系统不同,AI系统是指机器学习、确定并变得更智能的系统。随着执行迭代,AI系统显示出更高的识别率,并且变得能更准确地理解用户偏好。因此,传统的基于规则的智能系统逐渐被基于深度学习的AI系统所取代。

人工智能技术由机器学习(如深度学习)和使用机器学习的基本技术组成。

机器学习是指对输入数据的特征进行分类/学习的技术,而基本技术是利用机器学习算法(诸如深度学习)来模拟人类大脑功能(诸如识别或确定)的技术,并且包括诸如语言理解、视觉理解、推理/预测、知识表示和操作控制的技术领域。

应用AI技术的各种领域的示例如下。语言理解,指识别人类语言/字符并对其进行应用/处理的技术,包括自然语音处理、机器翻译、通信系统、问答、语音识别/合成等。视觉理解,指以类似于人类视觉的方式来识别物体并对其进行处理的技术,包括物体识别、物体跟踪、图像搜索、人体识别、场景理解、空间理解、图像改进等。推理/预测,指确定信息并对其进行逻辑推理和预测的技术,包括基于知识/可能性的推理、优化预测、基于喜好的规划、推荐等。知识表示,指将人类的实验信息自动处理为知识数据的技术,包括知识构建(数据生成/分类)、知识管理(数据应用)等。操作控制,指控制车辆自动驾驶和机器人运动的技术,包括运动控制(导航、碰撞或驾驶)、操作控制(行为控制)等。

上述AI应用可在能处理深度神经网络(DNN)的处理器中执行。但是,由于处理针对输入存储器的DNN所需的内部存储器的容量是有限的,因此存在处理器必须与外部存储器进行通信以输入和输出数据的问题。特别地,由于从外部存储器读取数据和向外部存储器写入数据需要时间,所以存在处理针对输入数据的DNN所需的时间成比例地增加的问题。

因此,需要通过有效地使用具有有限容量的内部存储器来处理针对输入数据的DNN的方法。

发明内容

本公开旨在提供对输入数据执行卷积计算并将获得的数据存储在内部存储器中的处理器、电子装置及其控制方法。

多个实施例可克服以上缺点和以上未描述的其他缺点。另外,实施例并非一定需要克服上述缺点,实施例可不必解决上述任一问题。

处理器,包括:存储器;卷积计算单元;以及控制器,配置为:基于从缓冲器输入的、与对应于第一内核数据行数的行一样多的数据存储在所述存储器中,将所存储的输入数据提供至所述卷积计算单元,基于第一计算数据由所述卷积计算单元输出,在所述存储器中存储所接收的第一计算数据,以及基于与对应于第二内核数据的行数一样多的第一计算数据存储在所述存储器中,将所存储的第一计算数据提供至所述卷积计算单元,所述卷积计算单元配置为:通过基于所述输入数据和所述第一内核数据执行卷积计算,获得所述第一计算数据,以及通过基于所述第一计算数据和所述第二内核数据执行卷积计算,获得第二计算数据,所述控制器在将所述第一计算数据提供至所述卷积计算单元之后,将从所述缓冲器输入的数据存储在所述存储器中存储的所述第一计算数据中存储最先存储的数据的位置处。

所述控制器可将所述第一计算数据提供至所述卷积计算单元,基于从所述卷积计算单元接收所述第二计算数据,在所述存储器中存储所接收的第二计算数据,以及基于与对应于第三内核数据的行数一样多的第二计算数据被存储,将所存储的第二计算数据提供至所述卷积计算单元;在将所述第一计算数据提供至所述卷积计算单元之后,基于从所述缓冲器输入的一行数据存储在所述存储器中,将与对应于第一内核数据的行数一样多的、包括对应行的数据提供至所述卷积计算单元;以及基于所述第一计算数据被接收,将所接收的第一计算数据存储在所述第二计算数据中存储最先存储的数据的位置处。

所述存储器最少能存储与所述第一内核数据至第M内核数据的行数对应的行一样多的数据

所述控制器可将第M-1计算数据提供至所述卷积计算单元;在将所述第一计算数据提供至所述卷积计算单元之后,在基于从所述缓冲器输入的数据的第M-2计算数据被接收的基础上,将所接收的第M-2计算数据存储在所述第M-1计算数据中存储最先存储的数据的位置处;以及在将包括所述第M-2计算数据的、与对应于第M-1内核数据行数的行一样多的第M-2计算数据提供至所述卷积计算单元之后,基于第M-1计算数据被接收,将所接收的第M-1计算数据存储在所述输入数据中存储最先存储的数据的位置处。

所述控制器可基于与对应于第M内核数据行数的行一样多的第M-1计算数据被存储,将所述第M-1计算数据提供至所述卷积计算单元,以及输出从所述卷积计算单元接收的所述第M计算数据。

所述控制器可以:当与对应于第M-2内核数据行数的行一样多的第M-3计算数据被存储时,将从所述卷积计算单元接收的第M-2计算数据存储在所述存储器中存储的第M-1计算数据中存储最先存储的数据的位置处;以及当与对应于第M-1内核数据行数的行一样多的第M-2计算数据被存储时,将从所述卷积计算单元接收的第M-1计算数据存储在所述存储器中存储的输入数据中存储最先存储的数据的位置处。

所述存储器是循环存储器。

从所述缓冲器输入的所述数据包括逻辑地址,以及所述控制器基于所述逻辑地址将所述输入数据存储在所述存储器中。

根据实施例,电子装置,包括:缓冲器,配置为以行为单位对输入数据进行分组以及分配逻辑地址;以及处理器,包括存储器和卷积计算单元,处理器基于所述逻辑地址存储从所述缓冲器输入的数据;基于与对应于第一内核数据行数的行一样多的所述数据被存储在所述存储器中,将所存储的输入数据提供至所述卷积计算单元;基于第一计算数据由所述卷积计算单元输出,在所述存储器中存储所接收的第一计算数据;基于与对应于第二内核数据的行一样多的第一计算数据被存储,将所存储的第一计算数据提供至所述卷积计算单元;以及在将所述第一计算数据提供至所述卷积计算单元之后,将从所述缓冲器输入的数据存储在所述存储器中存储的所述第一计算数据中存储最先存储的数据的位置处。

所述卷积计算单元可通过基于所述输入数据和所述第一内核数据执行卷积计算,获得所述第一计算数据;以及通过基于所述第一计算数据和所述第二内核数据执行卷积计算,获得所述第二计算数据。

根据实施例,包括存储器和卷积计算单元的处理器的控制方法包括:基于从缓冲器输入的、与对应于第一内核数据行数的行一样多的数据存储在所述存储器中,将所存储的输入数据提供至所述卷积计算单元;通过基于所述输入数据和所述第一内核数据执行卷积计算,获得第一计算数据;基于所述第一计算数据由所述卷积计算单元输出,在所述存储器中存储所接收的第一计算数据;基于与对应于第二内核数据的行数一样多的第一计算数据存储在所述存储器中,将所存储的第一计算数据提供至所述卷积计算单元;通过基于所述第一计算数据和所述第二内核数据执行卷积计算,获得第二计算数据;以及在将所述第一计算数据提供至所述卷积计算单元之后,将从所述缓冲器输入的数据存储在所述存储器中存储的所述第一计算数据中存储最先存储的数据的位置处。

所述方法可包括:将所述第一计算数据提供至所述卷积计算单元,以及基于从所述卷积计算单元接收的所述第二计算数据,在所述存储器中存储所接收的第二计算数据;基于与对应于第三内核数据的行数一样多的第二计算数据被存储,将所存储的第二计算数据提供至所述卷积计算单元;在将所述第一计算数据提供至所述卷积计算单元之后,基于从所述缓冲器输入的一行数据存储在所述存储器中,将与对应于所述第一内核数据的行数一样多的、包括对应行的数据提供至所述卷积计算单元;以及基于所述第一计算数据被接收,将所接收的第一计算数据存储在所述第二计算数据中存储最先存储的数据的位置处。

所述存储器最少能存储与所述第一内核数据至第M内核数据的行数对应的行一样多的数据。

所述方法可包括:将第M-1计算数据提供至所述卷积计算单元;在将所述第一计算数据提供至所述卷积计算单元之后,在基于从所述缓冲器输入的数据的第M-2计算数据被接收的基础上,将所接收的第M-2计算数据存储在所述第M-1计算数据中存储最先存储的数据的位置处;以及在将与包括所述第M-2计算数据的、与对应于第M-1内核数据行数的行一样多的第M-2计算数据提供至所述卷积计算单元之后,基于第M-1计算数据被接收,将所接收的第M-1计算数据存储在所述输入数据中存储最先存储的数据的位置处。

所述方法可包括:基于与对应于所述第M内核数据行数的行一样多的第M-1计算数据被存储,将所述第M-1计算数据提供至所述卷积计算单元,以及输出从所述卷积计算单元接收的所述第M计算数据。

所述方法可包括:当与对应于第M-2内核数据行数的行一样多的第M-3计算数据被存储时,将从所述卷积计算单元接收的第M-2计算数据存储在所述存储器中存储的第M-1计算数据中存储最先存储的数据的位置处;以及当与对应于第M-1内核数据行数的行一样多的第M-2计算数据被存储时,将从所述卷积计算单元接收的第M-1计算数据存储在所述存储器中存储的输入数据中存储最先存储的数据的位置处。

所述存储器可以是循环存储器。

从所述缓冲器输入的所述数据包括逻辑地址,将输入数据提供至提供至所述卷积计算单元可包括:基于所述逻辑地址将所述输入数据存储在所述存储器中

根据各种实施例,由于通过执行卷积计算获得的数据存储在内部存储器中,并且执行卷积计算所需的数据是从内部存储器中检索的,因此处理器可以对输入数据执行DNN,而与处理器与外部存储器之间的带宽无关。

实施例的另外的方面和优点在详细描述中阐述,并且将通过详细描述而显而易见,或者可以通过实践实施例来获悉。

附图说明

根据以下结合附图的描述,本公开的某些实施例的上述和/或其他方面、特征和优点将变得更加显而易见,其中:

图1是示出了根据本公开实施例的处理器的配置的框图;

图2是示出了根据实施例的电子装置的配置的框图;

图3是提供用于描述根据实施例的卷积的视图;

图4是提供用于描述传统技术的问题的视图;

图5是提供用于描述根据实施例的深度神经网络的视图;

图6是提供用于描述根据实施例的存储器的视图;

图7是提供用于描述根据实施例的存储器的视图;

图8是提供用于描述根据另一实施例的存储器的视图;以及

图9是描述根据实施例的控制方法的流程图。

实现本发明的最佳方式

具体实施方式

在简要描述说明书中使用的术语之后,将详细描述本公开。

考虑到本公开的功能,选择当前广泛使用的通用术语作为本公开实施例中使用的术语,但是可根据本领域技术人员的意图或司法先例、新技术等改变。另外,在具体情况下,可能存在申请人任意选择的术语。在这种情况下,这些术语的含义将在本公开的对应描述部分中详细提及。因此,在本公开实施例中使用的术语应该基于整个公开中的术语的含义和内容的含义而非术语的简单名称而定义。

由于可以对本公开进行各种修改且具有多个实施例,所以将在附图中示出并且在详细描述中详细描述本公开的具体实施例。然而,应理解,本公开不限于具体实施例,而是在不脱离本公开的范围和精神的情况下包括所有修改、等同和替代方案。当确定与本公开相关的已知技术的详细描述可能会掩盖本公开的要点时,将省略该详细描述。

术语“第一”、“第二”等可用于描述各种组件,但这些组件不应解释为受这些术语的限制。这些术语仅用于将一个组件与另一组件区分开。

单数形式旨在包括复数形式,除非上下文另有明确说明。将进一步理解的是,本说明书中使用的术语“包括”或“由…形成”具体指本说明书中提及的特征、数字、步骤、操作、组件、部件或其组合的存在,但并不排除一个或多个其他特征、数字、步骤、操作、组件、部件或其组合的存在或增加。

在本公开的实施例中,“模块”或“~器/~件”可执行至少一个功能或操作,并且由硬件或软件实现,或者由硬件和软件的组合实现。另外,可将多个“模块”或多个“~器/~件”集成在至少一个模块中,并由除“模块”或“~器/~件”(由特定的硬件实现)以外的至少一个处理器实现。

在下文中,将参照附图详细描述本公开的实施例,使得与本公开有关的本领域技术人员可容易地实现本公开。然而,本公开可以各种不同的形式来实现,并且不限于此处描述的实施例。另外,在附图中,将省略与描述无关的部分以明显地描述本公开,并且在整个说明书中由相似的附图标记表示相似的部分。

图1是示出了根据本公开实施例的处理器的配置的框图。

如图1所示,处理器100包括存储器110、卷积计算单元120和控制器130。

存储器110可存储从诸如缓冲器的源输入的数据。此处,输入数据可以是图像的至少一部分。缓冲器可以是流输入缓冲器,并且可以为从流环境的前一级输入的数据分配逻辑地址。例如,缓冲器可以行为单位为从前一级输入的图像中的像素数据分配地址。

根据实施例的存储器110可存储从外部缓冲器输入的数据。此处,存储器110可以基于逻辑地址将输入数据存储在存储器中。

根据实施例,存储器110可实现为能存储与预定行数对应的数据的存储器。例如,存储器110可存储与垂直方向上20行的容量对应的数据。然而,实施例不限于此,可以各种方式实现存储器的存储容量。例如,如果输入1080p的全HD图像(分辨率为1920×1080),则与全HD图像中的20行图像区域对应的像素数据可存储在存储器110中。由于硬件的限制,处理器100中的存储器的存储容量是有限的,因此可将输入图像帧的一部分区域存储在存储器110中。

例如假设这样的情况:传统的处理器以32×32(1像素大小为2字节)的图块大小对720p(分辨率为1280×720)的HD图像执行图像处理。为了使传统的处理器使用内部存储器执行图像处理,存在需提供大小为1280×10×32×2字节(800KB)的相对较大的内部存储器的问题。

另外,由于内存带宽是有限的,将数据存储在相对于内部存储器尺寸较大的外部存储器中的方法难以对超高清(UHD)和高性能(每秒60帧(FPS))图像进行图像处理。此处,数据可以指在图像处理过程期间生成或获得的多个层。

根据实施例的处理器100可将从前一级输入的流数据有效地存储在内部存储器110中并执行图像处理,而与外部存储器有限的存储器带宽无关(独立于外部存储器有限的存储器带宽)。

卷积计算单元120可以基于接收的数据和内核数据执行卷积计算。此处,在存储器110中存储的数据中,接收的数据可以是在控制器130的控制下提供至卷积计算单元120的数据。

内核数据可以是使用深度神经网络(DNN)训练的权重数据。此处,DNN是具有设计用于语音处理、图像处理等特殊连接结构的多层神经网络。例如,卷积神经网络(CNN)可以通过像素的预处理来过滤图像,并识别图像的特征。例如,内核数据可以是Nx*Ny*Cin*Cout数据。此处,Cin是网络的具体层的输入通道,Cout可以指网络的具体层的输出通道。卷积计算单元120可以基于由存储器110提供的数据和内核数据来执行卷积计算,并获得计算数据。内核数据可以不同地称为如滤波器、权重矩阵或学习矩阵等,但是为了便于描述,在下文中将称为内核数据。卷积计算单元120可以是处理器中提供的用于执行卷积计算的处理元件。

根据实施例,卷积计算单元可以基于第一内核数据至第M内核数据,获得第一计算数据至第M计算数据。例如,可以基于输入数据和第一内核数据执行卷积计算,并可获得第一计算数据。另外,可以基于第一计算数据和第二内核数据执行卷积计算,并可获得第二计算数据。此处,第一内核数据至第M内核数据中的每一个可称为第一滤波器至第M滤波器。

卷积计算单元120可在输入数据或计算数据被循环时,执行卷积计算。根据实施例,第一内核数据至第M内核数据中的每一个可以是不同大小的矩阵格式。另外,第一内核数据至第M内核数据中的每一个可由不同的值组成。根据实施例,处理器100可在执行卷积计算以获得第一计算数据至第M计算数据时使用不同的滤波器。例如,当执行卷积计算以获得第一计算数据时,可使用第一内核数据;而当执行卷积计算以获得第M计算数据时,可使用第M内核数据。此处,第一内核数据至第M内核数据中的每一个可以是不同的过滤器集。

根据实施例,卷积计算单元120可将获得的计算数据发送到控制器130。此处,计算数据可以是由卷积计算单元120执行卷积计算的数据。计算数据可意味着根据DNN的多个隐藏层。在下文中,为了便于描述,将第一隐藏层至第M-1隐藏层统称为第一计算数据至第M-1计算数据,并将输出层称为第M计算数据。

控制器130控制处理器100的总体操作。

控制器130可将从缓冲器输入的数据存储在存储器110中。根据实施例,当将与第一内核数据的行数对应的行一样多的输入数据存储在存储器110中时,控制器130可将存储的输入数据提供至卷积计算单元120。例如,当第一内核数据是Nx*Ny*Cin*Cout数据且Ny个输入数据存储在存储器110中时,控制器130可将Ny个输入数据提供至卷积计算单元120。

根据一个实施例,卷积计算单元120可以基于Ny个输入数据和第一内核数据,执行卷积计算并获得第一计算数据。控制器130可将从卷积计算单元120接收的第一计算数据存储在存储器110中。

当存储了与第二内核数据对应的行数一样多的第一计算数据时,控制器130可将存储的第一计算数据提供至卷积计算单元120。例如,第一内核数据可以是3×3矩阵的格式,第二内核数据可以是5×5矩阵的形式。即,第一内核数据和第二内核数据的大小可以不同。当存储了与第二内核数据对应的行数一样多的第一计算数据(例如,5)时,卷积计算单元120可使用存储的第一计算数据和第二内核数据,执行卷积计算并获得第二计算数据。

同时,在将第一计算数据提供至卷积计算单元120之后,控制器130可将从外部缓冲器输入的数据存储在存储器110中存储的第一计算数据中存储最先存储的数据的位置处。

根据实施例的控制器130可将第一计算数据提供至卷积计算单元120;当从卷积计算单元120接收到第二计算数据时,可将接收的第二计算数据存储在存储器110中。然后,当在存储器110中存储了与存储的第三内核数据对应的行数一样多的第二计算数据时,控制器130可将存储的第二计算数据提供至卷积计算单元120。

同时,在将第一计算数据提供至卷积计算单元120之后,当从外部缓冲器输入的数据在存储器110中存储了一行时,控制器130可将与第一内核数据对应的行数一样多的、包括对应行的数据提供至卷积计算单元120。例如,控制器130可以基于逻辑地址将新近从外部缓冲器输入的数据存储到存储器110中。当新存储的数据被存储了一行时,控制器130可将与第一内核数据对应的行数一样多的数据提供至卷积计算单元120。例如,如果第一内核数据是5×5矩阵的格式,控制器130可将包括了新存储的数据的五行数据提供至卷积计算单元120。然后,当从卷积计算单元120接收到第一计算数据时,控制器130可将新接收的第一计算数据存储在第二计算数据中存储最先存储的数据的位置处。

根据实施例的控制器130可控制卷积计算单元120的卷积计算次数。例如,控制器130可顺序地将输入数据、第一计算数据、…、第M-1计算数据等提供至卷积计算单元120。根据一个实施例,卷积计算单元120可以对从控制器130提供的第M-1计算数据执行卷积计算,并获得第M计算数据。此处,第M计算数据可以是通过对输入数据(或输入层)执行DNN而获得的输出层。具体地,卷积计算单元120可以对输入数据执行卷积计算以获得第一计算数据,对第一计算数据执行卷积以获得第二计算数据。卷积计算单元120可执行卷积计算并依次获得第一计算数据、…、第M-2计算数据和第M-1计算数据,并且基于第M-1计算数据和第M内核数据执行卷积并获得第M计算数据。

根据实施例,卷积计算单元120可以基于第一内核数据至第M内核数据中的每一个,获得第一计算数据至第M计算数据。此处,第一内核数据至第M内核数据可具有不同的大小或形状。然而,实施例不限于此,卷积计算单元120可取决于图像处理等目的,通过使用各种类型的内核数据而获得操作数据(或隐藏层)。

当存储了与第M内核数据对应的行数一样多的第M-1计算数据时,根据实施例的控制器130可将第M-1计算数据提供至卷积计算单元120。当从卷积计算单元120接收到第M计算数据时,控制器130可将第M计算数据输出至输出缓冲器。此处,第M计算数据是通过用DNN处理对第M计算数据进行连续处理而获得的输出层。根据实施例,如果输入数据是图像,则处理器100可在流环境中连续图像处理并输出图像帧。此处,图像处理可以指降噪(NR)、隔行至逐行转换(IPC)、细节增强(DE)、对比度增强(CE)等。根据一个实施例的输出缓冲器可称作流输出缓冲器,但是为了便于描述,在下文中将称作输出缓冲器。输出缓冲器可以行的形式接收特征图输出数据的输入。此处,特征图输出数据可以指第M计算数据。然后,输出缓冲器可以基于每秒所需的帧(FPS)以像素为单位输出数据。

同时,根据实施例的控制器130可将第M-1计算数据提供至卷积计算单元120,并且在将第一计算数据提供至卷积计算单元120然后基于从缓冲器输入的数据接收第M-2计算数据之后,控制器130可将接收的第M-2计算数据存储在存储器110中存储的第M-1计算数据中存储最先存储的数据的位置处。

根据实施例,控制器130可以在将包括第M-2计算数据、与第M-1内核数据的行数对应的行一样多的第M-2计算数据提供至卷积计算单元120之后,当接收到第M-1计算数据时,可将接收的第M-1计算数据存储在存储器110中存储的输入数据中存储最先存储的数据的位置处。此处,第M-1计算数据可以指基于新输入的数据的、包括第M-1计算数据的数据。

当存储了与第M-2内核数据的行数对应的行一样多的第M-3计算数据时,控制器130可以将从卷积计算单元120接收的第M-2计算数据存储在存储器110中存储的第M-1计算数据中存储最先存储的数据的位置处。

另外,当存储了与第M-1内核数据的行数对应的行一样多的第M-2计算数据时,控制器130可以将从卷积计算单元120存储的第M-1计算数据存储在存储器110存储中的输入数据中存储最先存储的数据的位置处。

此处,存储器110可以是循环存储器。存储器110至少可存储与第一内核数据至第M内核数据的行数对应的行一样多的数据。

控制器130可控制存储器110以在存储最先存储的数据的位置处存储新数据。在具有有限尺寸的存储器110中,数据可以以圆形结构存储。同时,图1中所示的存储器110可以指处理器100中提供的存储空间,诸如静态随机存取存储器(SRAM)。

图2是示出了根据实施例的电子装置的配置的框图。

如图2所示,电子装置1000包括处理器100和缓冲器200。处理器100的配置与图1中所述相同,将不再描述。

电子装置1000可以是能对输入数据执行DNN处理的装置。例如,用户终端设备、显示设备、机顶盒、平板个人计算机、智能电话、电子书阅读器、台式PC、膝上PC、工作站、服务器、个人数字助手(PDA)、便携式多媒体播放器(PMP)、MP3播放器等。可替代地,电子装置1000可以指建立有云计算环境的系统本身。然而,实施例不限于此,电子装置1000可以是能进行人工智能(AI)学习的任何装置。

连接至处理器100的输入/输出的缓冲器200可缓冲并将输入数据提供至处理器100。根据另一实施例,缓冲器200连接至处理器100的另一输入/输出,并且可缓冲由处理器100输出的计算数据(或输出层),并将计算数据提供至电子装置1000中的另一元件。

特别地,缓冲器200可以以像素为单元接收不包括存储器地址信息的特征图数据的输入。缓冲器200可以以行为单位将输入像素分组以执行卷积计算。然后,缓冲器200可以以行为单位为数据分配逻辑地址。处理器100可以基于逻辑地址将从缓冲器200输入的数据存储在存储器110中。

例如,缓冲器200可以以行(卷积计算处理的单位)为单位缓冲以像素为单位输入的数据。随后,当用像素数据形成行时,缓冲器200可分配逻辑地址并将逻辑地址提供至处理器100。处理器100可以基于逻辑地址存储输入数据。根据实施例,缓冲器200可称为流输入缓冲器,但是为了便于描述,在下文中将称为缓冲器200。在图4中将描述缓冲器200将计算数据提供至电子装置1000中的另一元件的具体实施例。

处理器100控制电子装置1000的总体操作。

根据实施例,处理器100可实现为数字信号处理器(DSP)、微处理器和时间控制器(TCON),但是不限于此。处理器100可包括中央处理器(CPU)、微控制器单元(MCU)、微处理单元(MPU)、控制器、应用处理器(AP)、通信处理器(CP)和高级精简指令集计算(RISC)机器(ARM)处理器中的一个或多个,或者可定义为对应术语。处理器100可以实现为内置有处理算法的片上系统(SoC)类型或大规模集成(LSI)类型或可以实现为现场可编程门阵列(FPGA)。

根据实施例,电子装置1000可包括处理器100外部的存储器。外部存储器连接至处理器100,并且可从处理器100接收数据输入或者向处理器100输出数据。

根据实施例,外部存储器可存储输入数据和卷积计算信息。此处,输入数据可以是图像数据。构成从存储器接收的图像数据的图像帧可如下所述通过缓冲器200进行缓冲,并提供至处理器100。

根据实施例,处理器100可存储DNN训练的内核数据。例如,电子装置1000可使用第一内核数据至第M内核数据执行卷积,并且通过输入数据的多个隐藏层获得最终输出层。此处,输出层可以指图像处理数据,并且可将输出层提供至下一级。

另外,处理器100可存储卷积计算信息。此处,卷积计算信息可包括关于与执行卷积计算的数量有关的信息等。处理器100可以基于卷积计算信息,对输入数据执行卷积计算。

图3是提供用于描述根据实施例的卷积的视图。

根据实施例的处理器100可以通过对以行为单位输入的输入数据执行卷积,获得计算数据并输出计算数据。

如图3所示,控制器130可将从缓冲器200输入的数据10存储在存储器110中。当存储了与第一内核数据11的行数对应的行一样多的输入数据10时,控制器130可将输入数据10提供至卷积计算单元120并获得第一计算数据20。

例如,当第一内核数据11是3×3,且存储在存储器110中的输入数据10达到三行时,处理器100可以基于输入数据10和第一内核数据11获得一个第一计算数据20。参照图3,当输入数据10存储在存储器110中时形成行I2、I3和I4的,处理器100可使用第一内核数据执行卷积并获得第一计算数据20(O3)。同时,第一内核数据11仅是示例性的,而且处理器100可使用各种类型的内核数据执行卷积。

图4是提供用于描述传统技术的问题的视图。

如图4所示,可以由经过多个级中的每级对输入数据进行图像处理。特别地,每级可以对输入数据执行与降噪(NR)、隔行至逐行转换(IPC)、细节增强(DE)、对比度增强(CE)等中的至少一个对应的图像处理。

根据实施例,DNN用于在特定级中对输入数据执行图像处理。

在传统处理器的情况下,将在级2中输出的数据提供至下一级(级3)。然后,当在级3中执行图像处理时,由于设置在处理器100内部的存储器的容量是有限的,因此处理器100将根据对输入数据执行卷积而生成的多层存储在外部存储器(外部DRAM)中。由于用于与外部存储器收发数据的带宽是有限的,因此存在处理器100执行卷积计算所需的时间增加或不能生成多层的问题。另外,传统存储器的容量不适于高清图像的图像处理。

根据实施例的处理器100可将根据卷积计算生成的多层有效地存储在存储器110中。

在下文中,将描述当处理器100执行卷积计算时生成多层的实施例。

图5是提供用于描述根据实施例的深度神经网络(DNN)的视图。

参照图5,当将输入数据10存储在存储器110中,且存储了与第一内核数据11的行数对应数量的行的输入数据10时,处理器100可以对输入数据10执行卷积计算。如图5所示,可以通过对输入数据10(I4、I5和I6)执行卷积,获得第一计算数据20(a4)。为了便于描述,假设第一内核数据至第M内核数据为3×3格式,但是实施例不限于此,处理器100可以基于各种大小的内核数据执行卷积。例如,如果第一内核数据是3×3格式的矩阵且存储在存储器110上的输入数据10达到三行,则处理器100可以基于输入数据10和第一内核数据执行卷积并获得第一计算数据20。

当获得了与第二内核数据对应的行数一样多的第一计算数据20时,处理器100可以对第一计算数据20执行卷积计算并获得第二计算数据30。如图5所示,可以通过对第一计算数据20(a3、a4和a5)执行卷积而获得第二计算数据30b4。此处,第二内核数据的大小可以与第一内核数据的大小不同。例如,如果第二内核数据是5×5格式的矩阵,则可以通过对第一计算数据20(a3至a7)执行卷积而获得第二计算数据30。

根据实施例,处理器100可以基于第二计算数据30(b2、b3和b4)和第三内核数据执行卷积计算,并获得第三计算数据(或输出数据)30(O3)。处理器100可获得并输出第三计算数据30(O1至O9)。

此处,处理器100中提供的、用于处理器100获得第三计算数据30的存储器110可存储输入数据10、第一计算数据20和第二计算数据30中的每一个。在传统处理器的情况下,因为处理器中提供的内部存储器的容量(或大小)对于存储所有输入数据10、第一计算数据20和第二计算数据30而言是有限的,因此数据或隐藏层等需要存储在外部存储器中,难以获得多层。

图6和图7是提供用于描述根据实施例的存储器的视图。

处理器100可将从缓冲器输入的数据10存储在存储器110中,并且当存储了与第一内核数据的行数对应的行一样多的输入数据10时,处理器100可以对存储的输入数据10执行卷积计算以获得并存储第一计算数据20。

处理器100在存储了与第二内核数据对应的行数一样多的第一计算数据20时,可以对第一计算数据20执行卷积计算以获得并存储第二计算数据30。

例如,处理器100可以基于输入数据10(I1、I2和I3)和第一内核数据执行卷积计算,并获得第一计算数据20(a1);并且基于第一计算数据20(a1、a2和a3)和第二内核数据执行卷积,并获得第二计算数据30(b1)。此处,存储器110可存储I1、I2、I3、a1、a2、a3和b1。

输入数据10、第一计算数据20和第二计算数据30可存储在存储器110中。例如,如果存储器110的存储空间表示为行,则可以通过对存储在第一行至第三行中的输入数据10(I4、I5和I6)执行卷积计算,而获得和存储第一计算数据20(a5);并且可以通过对存储在第四行至第六行中的第一计算数据20(a3、a4和a5)执行卷积计算,而获得并存储第二计算数据30(b4)。如图6所示,存储器110可存储输入数据10(I4、I5和I6)、第一计算数据20(a3、a4和a5)、第二计算数据30(b2、b3和b4)。此处,行可以指当处理器100基于逻辑地址在存储器110上存储第一存储数据时形成的数据处理单元。

同时,假设这种情况:处理器100对第一计算数据执行卷积计算并获得第二计算数据,然后将从缓冲器输入的新数据存储在存储器110中。

参照图6,当输入数据或计算数据存储在存储器110的第一行至第九行的每行中时,可将从缓冲器新输入的数据存储在第一行至第九行中的一行中。

如图6和图7所示,当接收到下一行的输入数据10I7时,在处理器100对第一计算数据20(a3、a4和a5)执行卷积计算之后,处理器100可以将从缓冲器新输入的数据10(I7)存储在存储器110中存储的第一计算数据20中存储最先存储的数据a3的位置处。

根据实施例,当在对第二计算数据30(b2,b3和b4)执行卷积之后,通过对包括新输入数据10(I7)的三行输入数据10(I5、I6和I7)执行卷积计算而获得第一计算数据20时,处理器100可将第一计算数据20a6存储在第二计算数据30(b2、b3和b4)中存储最先存储的数据b2的位置处。

参照图7,尽管第二计算数据30存储的数量为N-1即两行,但是当根据实施例的处理器100对第一计算数据20(a3、a4和a5)执行卷积计算且获得第二计算数据30(b5)30-1时,处理器100可将第二计算数据30(b5)30-1存储在第一行中。第一行中存储的输入数据10(I4)可替换为第二计算数据30(b5)30-1。具体而言,处理器100可以对由输入数据10形成的行I5、I6和I7执行卷积计算,并获得第一计算数据20(a6)。然后,处理器100可以对第一计算数据20(a4、a5和a6)执行卷积计算,并获得第二计算数据30(b5)30-1。此处,当存储器110以行为单位划分时,第二计算数据30(b5)30-1可以不存储在第二计算数据30b4的下一行中。因此,当存储器100以行为单位划分时,处理器100可在第一行中存储第二计算数据30(b5)30-1。例如,可将由存储在第一行中的输入数据形成的行I4替换为第二计算数据30(b5)30-1。然后,将从缓冲器输入的新数据存储在第一计算数据20的位置(a4)处,并且可形成行I8。

根据实施例,当行I8形成为从缓冲器新输入的数据存储在存储器110中时,处理器100可将输入数据10I8存储在存储器110中存储的第一计算数据20(a4、a5和a6)中存储最先存储的数据a4的位置处。

处理器100可以通过对输入数据10(I6、I7和I8)执行卷积计算而获得第一计算数据20(a7),并将第一计算数据10(a7)存储在第二计算数据20(b3,b4和b5)中存储最先存储的数据b3的位置处。当从缓冲器新输入的数据形成一行时,处理器100可以基于包括该行的输入数据和第一内核数据而获得第一计算数据20,并且从第一计算数据20顺序地获得第二计算数据30。

根据实施例,输入数据10、第一计算数据20、…、第M-1计算数据可以存储在具有循环结构的存储器110中。例如,存储器110可实现为循环存储器。

根据实施例,当第M-3计算数据存储为与第M-2内核数据的行数对应的行一样多时,控制器130可将从卷积计算单元120接收的第M-2计算数据存储在存储器110中存储的第M-1计算数据中存储最先存储的数据的位置处;当第M-2计算数据存储为与第M-1内核数据的行数对应的行一样多时,处理器100可将从卷积计算单元120接收的第M-1计算数据存储在存储器110中存储的输入数据中存储最先存储的数据的位置处。

图8是提供用于描述根据另一实施例的存储器的视图。

参照图8,当第二内核数据是3×3格式的矩阵时,处理器100可在存储的第一计算数据20达到三行时,基于第一计算数据20(a3、a4、a5)和第二内核数据执行卷积计算,并获得第二计算数据30(b4)。然后,当第三内核数据是3×3格式的矩阵时,处理器100可以基于第二计算数据30(b2、b3和b4)和第三内核数据执行卷积计算,并获得第三计算数据40(c3)。

根据实施例,控制器130可以对输入数据执行卷积计算以获得第一计算数据至第三计算数据,并最终获得第四计算数据。此处,第四计算数据是输出数据(或输出层),并可输出至缓冲器。例如,处理器100可以基于第三计算数据40(c1、c2和c3)和第四内核数据获得第四计算数据,并将第四计算数据O1输出至缓冲器。

参照图8中的(b),当从缓冲器新输入的数据存储在存储器110中时形成一行I7,处理器100可以基于输入数据10(I5、I6和I7)和第一内核数据获得第一计算数据20(a6)。根据一个实施例,处理器100可以用存储在存储器110中的第二计算数据20(b2、b3和b4)中的数据b2覆盖第一计算数据20a6。而且,根据实施例的新获得的第M-1计算数据可存储在存储器110中存储的输入数据中的最先存储的数据中。如图8B所示,新获得的第三计算数据40-1(c4)可存储在输入数据10(I4)所存储的位置处。

根据实施例的存储器110可存储与第一内核数据至第M内核数据的行数对应的行一样多的数据。根据一个实施例,从缓冲器新输入的数据可存储在存储器110中存储的第一计算数据中的最先存储的数据中,新获得的第M-2计算数据可存储在第M-1计算数据中最先存储的数据中。即,作为循环存储器的存储器110可具有循环存储的输入数据和第一计算数据至第M-1计算数据,如图8所示。

根据一个实施例,尽管处理器100中提供的存储器110的大小是有限的,但是通过DNN执行图像处理时获得的多个隐藏层和计算数据可存储在内部存储器110中而非外部存储器中。处理器100可以在不限制带宽等情况下用外部存储器执行图像处理。对于高清图像(例如4K)和高性能图像(60FPS),根据实施例的处理器100可仅使用内部存储器110执行DNN。

图9是描述根据实施例的控制方法的流程图。

根据实施例,一种包括存储器和卷积计算单元的处理器的控制方法:在步骤S910中,当存储了从缓冲器输入的、与第一内核数据的行数对应的行一样多的数据时,可以将存储的输入数据提供至卷积计算单元。然后,在步骤S920中,当从卷积计算单元接收到第一计算数据时,可以在存储器中存储接收的第一计算数据。在步骤S930中,当存储了与第二内核数据对应的行数一样多的第一计算数据时,可以将存储的第一计算数据提供至卷积计算单元。

在将第一计算数据提供至卷积计算单元之后,在步骤S940中,从缓冲器输入的数据可存储在存储器中存储的第一计算数据中存储最先存储的数据的位置处。

根据实施例的控制方法,包括以下步骤:将第一操作数据提供至卷积计算单元,基于从卷积计算单元接收第二计算数据,在存储器中存储接收的第二计算数据;基于与第三内核数据对应的行数一样多的第二计算数据被存储,将存储的第二计算数据提供至卷积计算单元;在将第一计算数据提供至卷积计算单元之后,基于从缓冲器输入的、存储在存储器中的输入数据达到一行,将包括该行的、与第一内核数据对应的行数一样多的数据提供至卷积计算单元;以及基于接收到第一计算数据,将接收的第一计算数据存储在第二计算数据中存储最先存储的数据的位置处。

此处,存储器最少能存储与第一内核数据至第M内核数据的行数对应的行一样多的数据。

此处,根据实施例的控制方法可包括以下步骤:将第M-1计算数据提供至卷积计算单元;在将第M-1计算数据提供至卷积计算单元之后,基于在从缓冲器输入的数据基础上接收第M-2计算数据,将接收的第M-2计算数据存储在第M-1计算数据中存储最先存储的数据的位置处;以及在提供了包括第M-2计算数据的、与第M-1内核数据的行数对应的行一样多的第M-2计算数据之后,当接收了第M-1计算数据时,将接收的第M-1计算数据存储在输入数据中存储最先存储的数据的位置处。

另外,根据实施例的控制方法可包括:基于与第M内核数据的行数对应的行一样多的第M-1计算数据被存储,将第M-1计算数据提供至卷积计算单元,并且将从卷积计算单元接收的第M计算数据输出至输出缓冲器。

另外,当存储了与第M-2内核数据的行数对应的行一样多的第M-3计算数据时,将从卷积计算单元接收的第M-2计算数据存储在存储器中存储的第M-1计算数据中最先存储的数据的位置处的步骤;当存储了与第M-1内核数据的行数对应的行一样多的第M-2计算数据时,将从卷积计算数据接收的第M-1计算数据存储在存储器中存储的输入数据中存储最先存储的数据的位置处。

根据实施例,存储器可以是循环存储器。

另外,在根据实施例的控制方法中,从缓冲器输入的数据可包括逻辑地址,并且将输入数据提供至卷积计算单元的步骤S910可包括基于逻辑地址将输入数据存储在存储器中。

同时,上述各种实施例可以在由计算机或使用软件、硬件或其组合的类似设备可读的记录介质中实现。在一些情况下,本文描述的实施例可由处理器本身实现。关于软件的实现,诸如本文描述的过程和功能的实施例可用单独的软件模块实现。软件模块的每一个可执行本文描述的功能和操作中的一个或多个。

同时,根据上述各种实施例的执行处理操作的计算机指令可存储在非暂存性的计算机可读介质中。当存储在这种非暂存性的计算机可读介质中的计算机指令被处理器执行时,计算机指令可使特定的机器根据上述实施例执行处理操作。

非暂存性计算机可读介质是指半永久性存储数据,而非短时间存储数据的介质,诸如寄存器、缓存、存储器等,并可由装置读取。详细地,非暂时性计算机可读介质的具体示例有光盘(CD)、数字多功能光盘(DVD)、硬盘、蓝光光盘、通用串行总行(USB)、存储器卡、只读存储器(ROM)等。

虽然已参照本公开的实施例具体示出和描述了本公开,但是应当理解,本公开不限于公开的实施例,而是应当理解,本领域技术人员可以在不脱离本公开的精神和范围的情况下进行各种修改。

相关技术
  • 处理器功耗的控制方法、装置、处理器及电子装置
  • 由电子装置的处理器实施的方法和操作电子装置的处理器
技术分类

06120112181465