数据获取单元和应用于控制器的数据获取方法转让专利

申请号 : CN201810908767.2

文献号 : CN110825665B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王京刘翔

申请人 : 昆仑芯(北京)科技有限公司

摘要 :

本申请实施例公开了数据获取单元和应用于控制器的数据获取方法。该数据获取单元包括存储器、至少两个数据处理部件和控制器;数据处理部件被配置成:向控制器发送数据获取请求,以及接收存储器发送的数据,其中,数据获取请求包括数据地址信息;控制器被配置成:接收预设时间段内数据处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至存储器;存储器被配置成:从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息对应的数据处理部件。该实施方式可以节省访存带宽、节省数据获取单元内部的资源。

权利要求 :

1.一种数据获取单元,包括存储器、至少两个数据处理部件和控制器;

所述控制器与所述存储器和所述至少两个数据处理部件连接,所述至少两个数据处理部件与所述存储器连接;

数据处理部件被配置成:向所述控制器发送数据获取请求,以及接收所述存储器发送的数据,其中,所述数据获取请求包括数据地址信息;

所述控制器被配置成:接收预设时间段内数据处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至所述存储器;

所述存储器被配置成:从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息对应的数据处理部件。

2.根据权利要求1所述的数据获取单元,其中,所述控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,所述存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;

所述至少两个数据处理部件的地址信号输出端分别与所述控制器的至少两个地址信号输入端连接;

所述控制器的地址信号输出端与所述存储器的地址信号输入端连接。

3.根据权利要求2所述的数据获取单元,其中,数据处理部件还包括控制端,其中,所述至少两个数据处理部件的控制端与所述控制器的控制信号输出端连接;

所述至少两个数据处理部件的数据输入端与所述存储器的数据输出端连接。

4.根据权利要求2所述的数据获取单元,其中,所述数据获取单元还包括数据传输部件,所述数据传输部件包括控制信号端、数据输入端和至少两个数据输出端;

所述数据传输部件的控制信号端与所述控制器的控制信号输出端连接;

所述数据传输部件的至少两个数据输出端分别与所述至少两个数据处理部件的数据输入端连接;

所述数据传输部件的数据输入端与所述存储器的数据输出端连接。

5.根据权利要求4所述的数据获取单元,其中,所述数据传输部件包括与数据处理部件相同数目个开关,开关的控制端分别与所述数据传输部件的控制信号端连接,开关的输出端分别与所述数据传输部件的数据输出端连接,开关的输入端与所述数据传输部件的数据输入端连接。

6.根据权利要求4所述的数据获取单元,其中,所述数据传输部件包括与数据处理部件相同数目个开关,所述数据传输部件包括与数据处理部件相同数目个控制信号端,所述控制器包括与数据处理部件相同数目个控制信号输出端;

所述数据传输部件的控制信号端与所述控制器的控制信号输出端一一对应连接;

开关的控制端与所述数据传输部件的控制信号端一一对应连接;

开关的输出端与所述数据传输部件的数据输出端一一对应连接;

开关的输入端与所述数据传输部件的数据输入端连接。

7.根据权利要求1‑6之一所述的数据获取单元,其中,所述数据处理部件包括通用数据处理部件或专用数据处理部件,所述通用数据处理部件包括可编程通用计算图形处理器,所述专用数据处理部件包括以下至少一种:单数据处理器、平面数据处理器、通道数据处理器、专用内存和数据重构引擎。

8.一种应用于控制器的数据获取方法,所述控制器与存储器和至少两个数据处理部件连接,所述方法包括:

接收预设时间段内至少两个数据处理部件发送的数据获取请求,所述数据获取请求包括数据地址信息;

按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;

将所选择的数据地址信息发送至所述存储器,其中,所述存储器被配置成从接收到的数据地址信息指示的地址中获取数据,将数据发送至与所选择的数据地址信息对应的数据处理部件。

9.根据权利要求8所述的方法,其中,所述控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,所述存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;

所述至少两个数据处理部件的地址信号输出端分别与所述控制器的至少两个地址信号输入端连接;

所述控制器的地址信号输出端与所述存储器的地址信号输入端连接。

10.根据权利要求9所述的方法,其中,数据处理部件还包括控制端,所述至少两个数据处理部件的控制端与所述控制器的控制信号输出端连接;所述至少两个数据处理部件的数据输入端与所述存储器的数据输出端连接;以及所述方法还包括:通过所述控制信号输出端向所选择出的数据地址信息对应的数据处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接收到的使能信号,通过数据输入端接收所述存储器发送的数据。

11.一种人工智能芯片,所述人工智能芯片包括如权利要求1‑7之一所述的数据获取单元。

12.一种电子设备,包括中央处理单元、存储器和至少一个如权利要求11所述的人工智能芯片。

说明书 :

数据获取单元和应用于控制器的数据获取方法

技术领域

[0001] 本申请涉及计算机技术领域,具体涉及数据获取单元和应用于控制器的数据获取方法。

背景技术

[0002] 近年来,随着人工智能技术的兴起和发展,以深度学习为代表的模型算法以及以大数据为代表的数据处理算法已经广泛应用于各个领域,例如,语音识别、图像识别、自然
语言处理等领域。
[0003] 通常,深度学习模型中存在大量的计算密集型算子,例如,矩阵计算、卷积、池化、激活、标准化等;数据处理器中同样也存在大量的计算密集算子,例如,数据查询、数据过
滤、数据连接、数据排序等。由于这些运算非常耗时,传统CPU(Central Processing Unit,
中央处理单元)的运算能力难以满足需求,从而使得异构运算成为主流。并且因此开发出了
各种深度学习专用处理器、大数据专用处理器,诸如,GPU(Graphics Processing Unit,图
形处理器)、ASIC(Application Specific Integrated Circuits,专用集成电路)等。
[0004] 现有技术中,通常在专用处理器中设置多个单一的数据处理部件。例如,在深度学习专用处理器中,设置进行矩阵计算的数据处理部件、进行图像卷积计算的数据处理部件;
在大数据专用处理器中,设置进行数据过滤的数据处理部件、进行数据排序的数据处理部
件。每一个单一的数据处理部件需要从存储器中获取需要参与计算或者需要进行处理的数
据。

发明内容

[0005] 本申请实施例提出了数据获取单元、和应用于控制器的数据获取方法。
[0006] 第一方面,本申请实施例提供了一种信号转换单元,包括存储器、至少两个数据处理部件和控制器;控制器与存储器和至少两个数据处理部件连接,至少两个数据处理部件
与存储器连接;数据处理部件被配置成:向控制器发送数据获取请求,以及接收存储器发送
的数据,其中,数据获取请求包括数据地址信息;控制器被配置成:接收预设时间段内数据
处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中
选择预设数目个数据地址信息;将所选择的数据地址信息发送至存储器;存储器被配置成:
从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息
对应的数据处理部件。
[0007] 在一些实施例中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出
端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少两个地址
信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
[0008] 在一些实施例中,数据处理部件还包括控制端,其中,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器的数
据输出端连接。
[0009] 在一些实施例中,数据获取单元还包括数据传输部件,数据传输部件包括控制信号端、数据输入端和至少两个数据输出端;数据传输部件的控制信号端与控制器的控制信
号输出端连接;数据传输部件的至少两个数据输出端分别与至少两个数据处理部件的数据
输入端连接;数据传输部件的数据输入端与存储器的数据输出端连接。
[0010] 在一些实施例中,数据传输部件包括与数据处理部件相同数目个开关,开关的控制端分别与数据传输部件的控制信号端连接,开关的输出端分别与数据传输部件的数据输
出端连接,开关的输入端与数据传输部件的数据输入端连接。
[0011] 在一些实施例中,数据传输部件包括与数据处理部件相同数目个开关,数据传输部件包括与数据处理部件相同数目个控制信号端,控制器包括与数据处理部件相同数目个
控制信号输出端;数据传输部件的控制信号端与控制器的控制信号输出端一一对应连接;
开关的控制端与数据传输部件的控制信号端一一对应连接;开关的输出端与数据传输部件
的数据输出端一一对应连接;开关的输入端与数据传输部件的数据输入端连接。
[0012] 在一些实施例中,数据处理部件包括通用数据处理部件或专用数据处理部件,通用数据处理部件包括可编程通用计算图形处理器,专用数据处理部件包括以下至少一种:
单数据处理器、平面数据处理器、通道数据处理器、专用内存和数据重构引擎。
[0013] 第二方面,本申请实施例提供了一种应用于控制器的数据获取方法,控制器与存储器以及至少两个数据处理部件连接;方法包括:接收预设时间段内至少两个数据处理部
件发送的数据获取请求,数据获取请求包括数据地址信息;按照预先设置的优先级顺序,从
接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至
存储器,其中,存储器被配置成从接收到的数据地址信息指示的地址中获取数据,将数据发
送至与所选择的数据地址信息对应的数据处理部件。
[0014] 在一些实施例中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出
端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少两个地址
信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
[0015] 在一些实施例中,数据处理部件还包括控制端,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器的数据输
出端连接;以及方法还包括:通过控制信号输出端向所选择出的数据地址信息对应的数据
处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接收到的使能信号,
通过数据输入端接收存储器发送的数据。
[0016] 第三方面,本申请实施例提供了一种人工智能信息,包括如第一方面所述的数据获取单元。
[0017] 第四方面,本申请实施例提供了一种电子设备,包括中央处理单元、存储器和至少一个如第三方面所述的人工智能芯片。
[0018] 本申请实施例提供的数据获取单元和应用于控制器的数据获取方法,利用数据获取单元中的控制器可以按照预设的数据地址信息优先级顺序,从接收到的各数据处理部件
发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,然后将该地
址信息提供至存储器,同时利用与选取出的数据地址信息对应的数据处理部件从存储器中
接收数据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降低数据
处理部件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器中可以
存储多种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供数据,
在存储器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取单元
内部的资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件设置
的灵活性。

附图说明

[0019] 通过阅读参照以下附图所作的对非限制性实施例详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0020] 图1是根据本申请的数据获取单元的一个实施例的结构示意图;
[0021] 图2是根据本申请的数据获取单元的又一个实施例的结构示意图;
[0022] 图3是根据本申请的数据获取单元的再一个实施例的结构示意图;
[0023] 图4是根据本申请的数据传输部件的一个可选的实施例的内部结构示意图;
[0024] 图5是根据本申请的数据获取单元的一个应用场景的示意图;
[0025] 图6是根据本申请的应用于存储器的数据获取方法的一个实施例的流程图;
[0026] 图7是根据本申请的人工智能芯片的一个实施例的结构示意图;
[0027] 图8是根据本申请的电子设备的一个实施例的计算机系统的结构示意图。

具体实施方式

[0028] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了
便于描述,附图中仅示出了与有关发明相关的部分。
[0029] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0030] 请参看图1,图1示出了本申请提供的数据获取单元100的一个实施例的结构示意图。
[0031] 如图1所示,数据获取单元100包括控制器10、存储器11以及多个数据处理部件12,图中示意性的示出了三个数据处理部件12,分别为数据处理部件121、数据处理部件122、数
据处理部件123。本实施例不限于于此,可以根据应用场景的需要来增加或减少数据处理部
件的数目。
[0032] 在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123可以为宿主机(例如ASIC、GPU)内的专用执行部件。作为示例,当ASIC为卷积神经网络固化的集成电
路时,数据处理部件121、数据处理部件122、数据处理部件123可以分别为用于执行矩阵乘
法运算的固化电路、用于执行图像卷积操作的固化电路、用于执行图像池化操作的固化电
路等等。存储器10中可以存储有可供上述各数据处理部件执行相应特定操作的数据。举例
来说,当ASIC为卷积神经网络固化的集成电路时,存储器10中可以存储有用于进行矩阵乘
法运算的矩阵数据、用于进行卷积操作的图像等。
[0033] 在本实施例中,控制器10与存储器11连接,控制器10与数据处理部件121、数据处理部件122、数据处理部件123连接。数据处理部件121、数据处理部件122、数据处理部件123
与存储器11连接。在这里,存储器11可以存储有数据处理部件中需要进行数据处理的数据
或指令。每一个数据处理部件中可以通过与其连接的宿主机获取数据或指令的存储地址,
然后通过该存储地址从存储器11中获取数据。在这里,存储器11可以是能够实现信息存储
功能的电路或器件。例如可以是静态随机存取存储器(Static Random‑Access Memory,
SRAM)、随机访问存储器(RAM)、内存条、安全数码卡(Secure Digital Memory Card,SD卡)
或快闪存储器卡(TF卡,又称microSD)等。
[0034] 在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123具体被配置成:通过地址信号输出端addr_21、addr_22、addr_23分别向控制器10的地址信号输入端
addr_01、addr_02、addr_03发送数据获取请求。该数据获取请求中包括数据地址信息,该数
据地址信息用于指示所要获取的数据在存储器11中的地址。
[0035] 在本实施例中,控制器10中通常预先设置有数据地址信息的优先级顺序,该优先级顺序例如可以根据数据处理的先后顺序来设置。作为示例,当上述数据获取单元设置于
卷积神经网络固化于其上的人工智能芯片中时,可以按照卷积神经网络中数据处理步骤的
顺序,来设置数据地址信息的优先级。从而,控制器10被配置成:
[0036] 首先,接收预设时间段内数据处理部件121、数据处理部件122、数据处理部件123发送的数据获取请求。
[0037] 接着,根据预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息。在这里,该预设数目可以为1个,也可以为多个。当存储器11为通用存储器
时,其通常设置有一个数据信号输入端。控制器10可以从接收到的数据地址信息中选择1个
数据地址信息。在这里,当控制器10从接收到的数据地址信息中选择两个以上数据地址信
息时,控制器10内可以设置有缓存,从而可以将优先级最高的数据地址信息提供至存储器,
将其余数据地址信息放入缓存中。然后基于预设的工作周期,将缓冲的数据地址信息中优
先级最高的数据地址信息提供至存储器。这样一来,对于工作周期可以进行缺省设置的数
据获取单元,可以不需要数据处理部件实时向控制器10发送数据地址信息,提高存储器11
发送数据的效率。
[0038] 最后,将所选择的数据地址信息通过地址信号输出端addr_out发送至存储器11的地址信号输入端addr_in。
[0039] 在本实施例中,存储器11被配置成:通过地址信号输入端addr_in接收控制器10发送的数据地址信息。从接收到的数据地址信息指示的地址中获取数据。将获取的数据通过
数据输出端rdata发送至与控制器10选择出的数据地址信息对应的数据处理部件中。
[0040] 在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123被配置成:通过数据输入端data_1、data_2、data_3接收存储器11发送的数据。
[0041] 继续参看图1,在图1中,控制器10包括地址信号输出端addr_out、控制信号输出端en和至少两个地址信号输入端addr_01、addr_02、addr_03等,在这里示意性的示出了三个
地址信号输入端。在这里对地址信号输入端的数目不不做限定,可以根据应用场景的需要
来设置。在这里值得注意的是,控制器10的地址信号输入端的数目与数据处理部件的数目
相同。数据处理部件121、数据处理部件122、数据处理部件123分别包括地址信号输出端
addr_21、addr_22、addr_23、数据输入端data_1、data_2、data_3和控制端en_1、en_2、en_3。
存储器11包括地址信号输入端addr_in和数据输出端rdata。
[0042] 具体的,控制器10的地址信号输入端addr_01、addr_02、addr_03分别与数据处理部件121、数据处理部件122、数据处理部件123的地址信号输出端addr_21、addr_22、addr_
23一一对应连接。控制器10的地址信号输出端addr_out与存储器11的地址信号输入端
addr_in连接。数据处理部件121、数据处理部件122、数据处理部件123的控制端en_1、en_2、
en_3均与控制器10的控制端en连接。数据处理部件121、数据处理部件122、数据处理部件
123的数据输入端data_1、data_2、data_3均连接至存储器10的数据输出端rdata。
[0043] 在本实施例中,控制器10还可以被配置成通过控制信号输出端en向数据处理部件121、数据处理部件122、数据处理部件123中与所选择出的数据地址信息对应的数据处理部
件发送使能信号。在这里,上述所选择出的数据地址信息也即为提供至存储器11的地址信
号输入端addr_in的数据地址信息。作为一种具体的实现方式,上述使能信号可以为指令
码。当数据处理部件包括3个时,上述指令码例如可以包括3位,每一位分别与数据处理部件
对应,作为数据处理部件是否接收数据的指示位。例如,当上述指令码为“100”时,指令码的
指示位从左向右依次为数据处理部件121、数据处理部件122、数据处理部件123的指示位。
在这里,当其中某些位对应的信号为逻辑“1”时,可以将与该指示位对应的数据处理部件选
通。同样,也可以将逻辑“0”作为数据处理部件的选通信号。当控制器10的控制信号输出端
en将使能信号“100”分别提供至数据处理部件121、数据处理部件122、数据处理部件123的
控制端en_1、en_2、en_3时,数据处理部件121可以在使能信号的控制下导通,从而可以进一
步从存储器11中接收数据信号,数据处理部件122、数据处理部件123在使能信号的控制下
截止。同样,当逻辑“0”为选通信号时,数据处理部件121可以在使能信号的控制下截止,数
据处理部件122、数据处理部件123在使能信号的控制下导通。
[0044] 本实施例值得注意的是,当所选择出的数据地址信息是在预设时间端内由多个数据处理部件发送的时,上述控制器10可以同时向该多个数据处理部件发送选通信号,以接
收存储器11发送的数据。
[0045] 本申请实施例提供的数据获取单元中,控制器可以从接收到的各数据处理部件发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,然后将该地址
信息提供至存储器,同时与选取出的数据地址信息对应的数据处理部件从存储器中接收数
据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降低数据处理部
件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器中可以存储多
种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供数据,在存储
器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取单元内部的
资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件设置的灵活
性。
[0046] 请参看图2,图2示出了本申请提供的数据获取单元的又一个实施例的结构示意图。
[0047] 如图2所示,数据获取单元200包括控制器10、存储器11以及多个数据处理部件12,图中示意性的示出了数据处理部件121、数据处理部件122、数据处理部件123。其中,控制器
10包括地址信号输出端addr_out、控制信号输出端en和至少两个地址信号输入端,在这里
示意性的示出了三个地址信号输入端addr_01、addr_02、addr_03。数据处理部件121、数据
处理部件122、数据处理部件123分别包括地址信号输出端addr_21、addr_22、addr_23以及
数据输入端data_1、data_2、data_3。存储器11包括地址信号输入端addr_in以及数据输出
端rdata。在这里,与图1所示的实施例不同的是,本实施例所示的数据获取单元200还包括
数据传输部件13。其中,数据传输部件13包括控制信号端en_in、数据输入端data_in以及至
少两个数据输出端data_31、data_32、data_33。在这里,示意性的示出了数据传输部件13包
括三个数据输出端的情形。在这里,数据传输部件13的信号输出端的数目与数据处理部件
的数目相同。
[0048] 具体的,控制器10的地址信号输入端addr_01、addr_02、addr_03分别与数据处理部件121、数据处理部件122、数据处理部件123的地址信号输出端addr_21、addr_22、addr_
23一一对应连接。控制器10的地址信号输出端addr_out与存储器11的地址信号输入端
addr_in连接。数据传输部件13的控制信号端en_in与控制器10的控制信号输出端en连接。
数据传输部件13的数据输入端data_in与存储器11的数据输出端rdata连接。数据传输部件
13的数据输出端data_31、data_32、data_33分别与数据处理部件121、数据处理部件122、数
据处理部件123的数据输入端data_1、data_2、data_3一一对应连接。
[0049] 在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123具体被配置成:通过地址信号输出端addr_21、addr_22、addr_23分别向控制器10的地址信号输入端
addr_01、addr_02、addr_03发送数据获取请求。该数据获取请求中包括数据地址信息,该数
据地址信息用于指示所要获取的数据在存储器11中的地址。
[0050] 在本实施例中,控制器10被配置成:首先,接收预设时间段内数据处理部件121、数据处理部件122、数据处理部件123发送的数据获取请求。接着,根据预先设置的优先级顺
序,从接收到的数据地址信息中选择预设数目个数据地址信息。在这里,该预设数目可以为
1个,也可以为多个。最后,将所选择的数据地址信息通过地址信号输出端addr_out发送至
存储器11的地址信号输入端addr_in。在这里,控制器10的具体配置方式可参考图1所示的
的控制器10的配置方式。
[0051] 在本实施例中,存储器11被配置成:通过地址信号输入端addr_in接收控制器10发送的数据地址信息。从接收到的数据地址信息指示的地址中获取数据。将获取的数据通过
数据输出端rdata发送至与控制器10选择出的数据地址信息对应的数据处理部件中。
[0052] 在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123被配置成:通过数据输入端data_1、data_2、data_3接收存储器11发送的数据。
[0053] 与图1所示的实施例不同的是,控制器10还可以被配置成:通过控制信号输出端en向数据传输部件13的控制信号端en_in发送使能信号,该使能信号可以控制数据传输部件
13对某些数据输出端选通,该某数据输出端为与所选择出的数据地址信息对应的数据处理
部件的数据输入端连接的数据输出端。
[0054] 数据传输部件可以被配置成:通过控制信号端en_in接收控制器10发送的使能信号。基于所接收到的使能信号,从数据输出端data_31、data_32、data_33选择出使能信号控
制开启的数据输出端,以及控制该数据输出端开启,使得该数据输出端处于导通状态。通过
数据输入端data_in接收存储器11发送的数据,将接收到的数据传输至与导通的数据输出
端连接的数据处理部件。在这里,数据输出部件13可以为集成电路(例如单片机),同时将上
述各数据输出端data_31、data_32、data_33作为控制位。通过控制各控制位的状态来控制
数据输出端data_31、data_32、data_33导通或关断。
[0055] 从图2中可以看出,与图1所示的实施例不同的是,本实施例增加了数据传输部件13以及数据传输部件13与存储器11、控制器10、数据处理部件121、数据处理部件122和数据
处理部件123之间的连接关系。从而,数据获取单元100中的数据处理部件以及存储器11均
可以不需要改变端口状态以及各端口之间的通信协议,使得数据处理部件和存储器11均可
以为通用型号,或者数据处理部件和存储器11可以应用于多种应用场景中,不需要改变端
口设置,提高数据提取单元的数据提取效率,增加了数据处理单元的通用性以及灵活性。
[0056] 请继续参考图3,其示出了本申请提供的数据获取单元的再一个实施例的结构示意图。
[0057] 如图3所示,数据获取单元300包括控制器10、存储器11、数据传输部件13和多个数据处理部件12,图中示意性的示出了数据处理部件121、数据处理部件122、数据处理部件
123。其中,控制器10包括地址信号输出端addr_out、控制信号输出端en和至少两个地址信
号输入端addr_01、addr_02、addr_03,在这里示意性的示出了三个地址信号输入端。数据处
理部件121、数据处理部件122、数据处理部件123分别包括地址信号输出端addr_21、addr_
22、addr_23以及数据输入端data_1、data_2、data_3。存储器11包括地址信号输入端addr_
in以及数据输出端rdata。数据传输部件13包括控制信号端en_in、数据输入端data_in以及
至少两个数据输出端data_31、data_32、data_33。在这里,示意性的示出了数据传输部件13
包括三个数据输出端的情形。在这里,数据传输部件13的信号输出端的数目与数据处理部
件的数目相同。
[0058] 图3所示的数据获取单元各部件之间的连接关系可以参考图2所示的实施例,在此不再赘述。与图2所示的实施例不同的是,本实施例具体示出了数据传输部件的内部结构。
[0059] 在本实施例中,数据传输部件13可以包括至少两个开关,在这里示意性的示出了开关K1、K2、K3。在这里,开关的数目与数据处理部件的数目相同。图3中示意性的示出了包
括三个开关的情况。其中,开关K1、K2、K3的输入端均连接至数据传输部件13的数据输入端,
也即与存储器11的数据输出端rdata连接。开关K1、K2、K3的输出端与数据传输部件13的数
据输出端一一对应连接,也即分别与数据处理部件121、数据处理部件122、数据处理部件
123的数据输入端data_1、data_2、data_3连接。开关K1、K2、K3的控制端与数据传输部件13
的控制信号端连接,也即与控制器10的控制信号输出端en连接。从而数据传输部件13中的
各开关K1、K2、K3在控制器10发送的使能信号的控制下导通或关断。具体的,上述控制器10
的控制信号输出端en可以输出指令码,该指令码可以包括与开关K1、K2、K3的数目相同的控
制位,每一位用于控制一个开关的开启或关断。通过改变控制位的逻辑状态(例如“1”状态
或“0”状态)来改变各开关的状态。
[0060] 继续参考图4,图4示出了数据传输部件13的另一种可选的实现方式的内部结构示意图。
[0061] 与图3所示的数据传输部件13的内部结构示意图不同的是,图4所示的数据传输部件13可以包括与数据处理部件的数目相同的控制信号端(图中未示出),控制器10可以包括
与数据处理部件的数目相同的控制信号输出端en_1、en_2、en_3。在这里,数据传输部件13
的控制信号端与控制器10的控制信号输出端en_1、en_2、en_3一一对应连接。数据传输部件
13的开关K1、K2、K3的控制端与数据传输部件13的控制信号端一一对应连接,也即与控制器
10的控制信号输出端en_01、en_02、en_03一一对应连接。从而,控制器10可以通过控制信号
输出端en_01、en_02、en_03分别向开关K1、K2、K3的控制端发送使能信号。在这里,该使能信
号可以为电平信号,即高电平信号或低电平信号。在这里,上述各开关K1、K2、K3可以为晶体
管,例如场效应管、三极管、可控硅等等。以N型场效应晶体管为例,上述各开关K1、K2、K3的
控制端可以为场效应管的栅极,各开关K1、K2、K3的输入端可以为源极,各开关K1、K2、K3的
输出端可以为漏极。
[0062] 在这里值得注意的是,本申请所示的控制器10、存储器11、数据传输部件13、数据处理部件12的端口不仅限于图1‑图4中所示的端口,根据应用场景的需要还可以设置其他
端口。例如,存储器11中通常还设置有使能控制端、写数据信号接收端等等。其均为现有的
公知技术,在此不再赘述。
[0063] 在一些可选的实现方式中,图1‑图4所示的数据处理部件12包括通用数据处理部件或专用数据处理部件,所述通用数据处理部件包括可编程通用计算图形处理器,专用数
据处理部件包括以下至少一种:单数据处理器、平面数据处理器、通道数据处理器、专用内
存和数据重构引擎。
[0064] 通用数据处理部件可以是能够实现常用操作功能的电路或器件。这里的常用操作功能可以(但不限于)包括人工智能应用中通常会使用的算法,如前向传播算法、反向传播
算法等。这样,用户可以根据所需的操作功能,对各通用执行部件进行组合。从而有助于降
低芯片的开发周期和开发成本。专用数据处理部件可以是能够实现指定操作功能的电路或
器件。这里所说的指定操作功能可以与常用操作功能相对。即可以包括人工智能应用中不
常使用的算法因此。
[0065] 请继续参考图5,其示出了本申请提供的如图2‑图4之一所述的数据获取单元的一个应用场景的示意图。
[0066] 如图5所示,数据处理部件121、数据处理部件122、数据处理部件123为对字符串进行处理的数据处理部件。其中,数据处理部件121处理字符串1,数据处理部件122处理字符
串2,数据处理部件122处理字符串3。字符串1、字符串2和字符串3存储在存储器11中。其中,
字符串1占用存储器11中的地址①、地址②,字符串2占用存储器12中的地址②、地址③,字
符串3占用存储器11中的地址③。在这里,各字符串之间具有数据依赖关系,即对字符串2的
处理需要字符串1的处理结果,对字符串3的处理需要字符串2的处理结果。从而,字符串1、
字符串2和字符串3的优先级顺序依次从高至低。控制器10中预先存储的与各字符串对应的
数据地址信息的优先级顺序依次为①、②、③。
[0067] 在第一时刻,数据处理部件121向控制器10发送包括数据地址信息①的数据获取请求、数据处理部件122向控制器10发送包括数据地址信息②的数据获取请求、数据处理部
件123向控制器10发送包括数据地址信息③的数据获取请求。控制器10根据预先设置的优
先级顺序,将数据地址信息①转发至存储器11,同时向数据传输部件13发送控制与数据处
理部件121连接的端口打开的使能信号。从而,数据处理部件121可以接收到存储在数据地
址信息①对应的地址中的字符串1。
[0068] 在第二时刻,数据处理部件121、数据处理部件122向控制器10发送包括数据地址信息②的数据获取请求,数据处理部件123向控制器10发送包括数据地址信息③的数据获
取请求。控制器10根据预设设置的优先级顺序,将数据地址信息②转发至存储器11,同时向
数据传输部件13发送控制与数据处理部件121、数据处理部件122连接的端口打开的使能信
号。从而,数据处理部件121可以接收到存储在数据地址信息②对应的地址中的字符串1、数
据处理部件122可以接收到存储在数据地址信息②对应的地址中的字符串2。
[0069] 在第三时刻,数据处理部件122、数据处理部件123同时向控制器10发送包括数据地址信息③的数据获取请求。控制器10根据预设设置的优先级顺序,将数据地址信息③转
发至存储器11,同时向数据传输部件13发送控制与数据处理部件122、数据处理部件123连
接的端口打开的使能信号。从而,数据处理部件122可以接收到存储在数据地址信息③对应
的地址中的字符串2、数据处理部件122可以接收到存储在数据地址信息③对应的地址中的
字符串3。
[0070] 请继续参考图6,其示出了本申请提供的应用于控制器的数据获取方法的一个实施例的流程600。
[0071] 其中,控制器与存储器以及至少两个数据处理部件连接。
[0072] 步骤601,接收预设时间段内至少两个数据处理部件发送的数据获取请求。
[0073] 在本实施例中,控制器可以接收和其连接的数据处理部件在预设时间段发送的数据获取请求。在这里,该数据获取请求包括数据地址信息。
[0074] 步骤602,按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息。
[0075] 在本实施例中,控制器中通常预先设置有数据地址信息的优先级顺序,该优先级顺序例如可以根据数据处理的先后顺序来设置。作为示例,当上述数据获取单元设置于卷
积神经网络固化于其上的人工智能芯片中时,可以按照卷积神经网络中数据处理步骤的顺
序,来设置数据地址信息的优先级。
[0076] 在本实施例中,预设数目可以为1个,也可以为多个。当与控制器连接的存储器为通用存储器时,其通常设置有一个数据信号输入端。控制器可以从接收到的数据地址信息
中选择1个数据地址信息。在这里,当控制器从接收到的数据地址信息中选择两个以上数据
地址信息时,控制器内可以设置有缓存,从而可以将优先级最高的数据地址信息提供至存
储器,将其余数据地址信息放入缓存中。然后基于预设的工作周期,将缓冲的数据地址信息
中优先级最高的数据地址信息提供至存储器。这样一来,对于工作周期可以进行缺省设置
的数据单元,可以不需要数据处理部件实时向控制器发送数据地址信息,提高与控制器连
接的存储器发送数据的效率。
[0077] 步骤603,将所选择的数据地址信息发送至存储器。
[0078] 在本实施例中,存储器可以根据步骤602中所选择出的数据地址信息,可以将所选择的数据地址信息发送至与其连接的存储器。
[0079] 在一些可选的实现方式中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址
信号输出端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少
两个地址信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
[0080] 在一些可选的实现方式中,数据处理部件还包括控制端,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器
的数据输出端连接;以及数据获取方法还包括:通过控制信号输出端向所选择出的数据地
址信息对应的数据处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接
收到的使能信号,通过数据输入端接收存储器发送的数据。
[0081] 本申请实施例提供的应用于控制器的数据传输方法,控制器可以从接收到的各数据处理部件发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,
然后将该地址信息提供至存储器,同时与选取出的数据地址信息对应的数据处理部件从存
储器中接收数据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降
低数据处理部件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器
中可以存储多种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供
数据,在存储器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取
单元内部的资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件
设置的灵活性。
[0082] 本申请实施例还提出了一种人工智能芯片700。该人工智能芯片700的结构可以参见图7,其示出了本申请的人工智能芯片的一个实施例的结构示意图。如图7所示,本实施例
中的人工智能芯片700可以包括多个数据获取单元71、72。其中,数据获取单元71、72可以共
用同一个存储器11。数据获取单元71可以包括控制器101、数据传输部件131、数据处理部件
121、数据处理部件122、数据处理部件123。数据获取单元72可以包括控制器102、数据传输
部件132、数据处理部件124、数据处理部件125。上述各数据获取单元71、72的具体结构以及
配置方式参考图1‑图4所示的数据获取单元,在此不再赘述。
[0083] 在本实施例中,人工智能芯片700还包括调度部件14。调度部件14可以是能够实现指令的调度分发功能的电路或器件。调度部件14可以对待执行指令进行解析,从而确定执
行什么操作。之后,可以将待执行指令发送给对应的数据处理部件,即能够执行待执行指令
所指示的操作的数据处理部件。调度部件14可以设置在处理器中,也可以单独设置。需要说
明的是,待执行指令可以是其他电子设备或电子器件发送给人工智能芯片的。也可以是人
工智能芯片根据待处理数据而生成的。
[0084] 在一些应用场景中,为了提高数据处理效率,调度部件14、数据处理部件中也可以分别设置有存储器。并且不同部件中的存储器可以存储该部件所需的数据。
[0085] 本实施例中的人工智能芯片,针对深度学习训练和预测,能够满足高密度的计算和访存需求。
[0086] 本申请提供的人工智能芯片700中的数据获取单元的数目、调度部件的数目、每一个数据获取单元中的存储器、数据传输部件、控制器、数据处理部件的数目在此不做限定,
根据应用场景的需要设置。
[0087] 下面参见图8,其示出了适于用来实现本申请实施例的电子设备的计算机系统800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范
围带来任何限制。
[0088] 如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分804加载到随机访问存储器(RAM)803中的程序而
执行各种适当的动作和处理。在RAM803中,还存储有系统800操作所需的各种程序和数据。
CPU801也可以通过人工智能芯片805进行数据的处理分析。CPU801、ROM802、RAM803以及人
工智能芯片805通过总线806彼此相连。输入/输出(I/O)端口807也连接至总线806。
[0089] 特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例可以包括一种计算机程序产品,其包括承载在计
算机可读介质上的计算机程序。该计算机程序包含用于执行流程图所示的方法的程序代
码。在这样的实施例中,该计算机程序可以通过通信部分808从网络上被下载和安装,和/或
从可拆卸介质809被安装。在该计算机程序被人工智能芯片805执行时,执行本申请的方法
中限定的上述功能。
[0090] 可以理解的是,附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每
个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含
一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现
中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示
的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功
能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的
组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬
件与计算机指令的组合来实现。
[0091] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术
方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行
任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功
能的技术特征进行互相替换而形成的技术方案。