CN110825665A - 数据获取单元和应用于控制器的数据获取方法 - Google Patents
数据获取单元和应用于控制器的数据获取方法 Download PDFInfo
- Publication number
- CN110825665A CN110825665A CN201810908767.2A CN201810908767A CN110825665A CN 110825665 A CN110825665 A CN 110825665A CN 201810908767 A CN201810908767 A CN 201810908767A CN 110825665 A CN110825665 A CN 110825665A
- Authority
- CN
- China
- Prior art keywords
- data
- data processing
- memory
- controller
- address information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/16—Memory access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Programmable Controllers (AREA)
Abstract
本申请实施例公开了数据获取单元和应用于控制器的数据获取方法。该数据获取单元包括存储器、至少两个数据处理部件和控制器;数据处理部件被配置成:向控制器发送数据获取请求,以及接收存储器发送的数据,其中,数据获取请求包括数据地址信息;控制器被配置成:接收预设时间段内数据处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至存储器;存储器被配置成:从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息对应的数据处理部件。该实施方式可以节省访存带宽、节省数据获取单元内部的资源。
Description
技术领域
本申请涉及计算机技术领域,具体涉及数据获取单元和应用于控制器的数据获取方法。
背景技术
近年来,随着人工智能技术的兴起和发展,以深度学习为代表的模型算法以及以大数据为代表的数据处理算法已经广泛应用于各个领域,例如,语音识别、图像识别、自然语言处理等领域。
通常,深度学习模型中存在大量的计算密集型算子,例如,矩阵计算、卷积、池化、激活、标准化等;数据处理器中同样也存在大量的计算密集算子,例如,数据查询、数据过滤、数据连接、数据排序等。由于这些运算非常耗时,传统CPU(Central Processing Unit,中央处理单元)的运算能力难以满足需求,从而使得异构运算成为主流。并且因此开发出了各种深度学习专用处理器、大数据专用处理器,诸如,GPU(Graphics Processing Unit,图形处理器)、ASIC(Application Specific Integrated Circuits,专用集成电路)等。
现有技术中,通常在专用处理器中设置多个单一的数据处理部件。例如,在深度学习专用处理器中,设置进行矩阵计算的数据处理部件、进行图像卷积计算的数据处理部件;在大数据专用处理器中,设置进行数据过滤的数据处理部件、进行数据排序的数据处理部件。每一个单一的数据处理部件需要从存储器中获取需要参与计算或者需要进行处理的数据。
发明内容
本申请实施例提出了数据获取单元、和应用于控制器的数据获取方法。
第一方面,本申请实施例提供了一种信号转换单元,包括存储器、至少两个数据处理部件和控制器;控制器与存储器和至少两个数据处理部件连接,至少两个数据处理部件与存储器连接;数据处理部件被配置成:向控制器发送数据获取请求,以及接收存储器发送的数据,其中,数据获取请求包括数据地址信息;控制器被配置成:接收预设时间段内数据处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至存储器;存储器被配置成:从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息对应的数据处理部件。
在一些实施例中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少两个地址信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
在一些实施例中,数据处理部件还包括控制端,其中,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器的数据输出端连接。
在一些实施例中,数据获取单元还包括数据传输部件,数据传输部件包括控制信号端、数据输入端和至少两个数据输出端;数据传输部件的控制信号端与控制器的控制信号输出端连接;数据传输部件的至少两个数据输出端分别与至少两个数据处理部件的数据输入端连接;数据传输部件的数据输入端与存储器的数据输出端连接。
在一些实施例中,数据传输部件包括与数据处理部件相同数目个开关,开关的控制端分别与数据传输部件的控制信号端连接,开关的输出端分别与数据传输部件的数据输出端连接,开关的输入端与数据传输部件的数据输入端连接。
在一些实施例中,数据传输部件包括与数据处理部件相同数目个开关,数据传输部件包括与数据处理部件相同数目个控制信号端,控制器包括与数据处理部件相同数目个控制信号输出端;数据传输部件的控制信号端与控制器的控制信号输出端一一对应连接;开关的控制端与数据传输部件的控制信号端一一对应连接;开关的输出端与数据传输部件的数据输出端一一对应连接;开关的输入端与数据传输部件的数据输入端连接。
在一些实施例中,数据处理部件包括通用数据处理部件或专用数据处理部件,通用数据处理部件包括可编程通用计算图形处理器,专用数据处理部件包括以下至少一种:单数据处理器、平面数据处理器、通道数据处理器、专用内存和数据重构引擎。
第二方面,本申请实施例提供了一种应用于控制器的数据获取方法,控制器与存储器以及至少两个数据处理部件连接;方法包括:接收预设时间段内至少两个数据处理部件发送的数据获取请求,数据获取请求包括数据地址信息;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至存储器,其中,存储器被配置成从接收到的数据地址信息指示的地址中获取数据,将数据发送至与所选择的数据地址信息对应的数据处理部件。
在一些实施例中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少两个地址信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
在一些实施例中,数据处理部件还包括控制端,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器的数据输出端连接;以及方法还包括:通过控制信号输出端向所选择出的数据地址信息对应的数据处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接收到的使能信号,通过数据输入端接收存储器发送的数据。
第三方面,本申请实施例提供了一种人工智能信息,包括如第一方面所述的数据获取单元。
第四方面,本申请实施例提供了一种电子设备,包括中央处理单元、存储器和至少一个如第三方面所述的人工智能芯片。
本申请实施例提供的数据获取单元和应用于控制器的数据获取方法,利用数据获取单元中的控制器可以按照预设的数据地址信息优先级顺序,从接收到的各数据处理部件发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,然后将该地址信息提供至存储器,同时利用与选取出的数据地址信息对应的数据处理部件从存储器中接收数据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降低数据处理部件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器中可以存储多种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供数据,在存储器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取单元内部的资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件设置的灵活性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的数据获取单元的一个实施例的结构示意图;
图2是根据本申请的数据获取单元的又一个实施例的结构示意图;
图3是根据本申请的数据获取单元的再一个实施例的结构示意图;
图4是根据本申请的数据传输部件的一个可选的实施例的内部结构示意图;
图5是根据本申请的数据获取单元的一个应用场景的示意图;
图6是根据本申请的应用于存储器的数据获取方法的一个实施例的流程图;
图7是根据本申请的人工智能芯片的一个实施例的结构示意图;
图8是根据本申请的电子设备的一个实施例的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参看图1,图1示出了本申请提供的数据获取单元100的一个实施例的结构示意图。
如图1所示,数据获取单元100包括控制器10、存储器11以及多个数据处理部件12,图中示意性的示出了三个数据处理部件12,分别为数据处理部件121、数据处理部件122、数据处理部件123。本实施例不限于于此,可以根据应用场景的需要来增加或减少数据处理部件的数目。
在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123可以为宿主机(例如ASIC、GPU)内的专用执行部件。作为示例,当ASIC为卷积神经网络固化的集成电路时,数据处理部件121、数据处理部件122、数据处理部件123可以分别为用于执行矩阵乘法运算的固化电路、用于执行图像卷积操作的固化电路、用于执行图像池化操作的固化电路等等。存储器10中可以存储有可供上述各数据处理部件执行相应特定操作的数据。举例来说,当ASIC为卷积神经网络固化的集成电路时,存储器10中可以存储有用于进行矩阵乘法运算的矩阵数据、用于进行卷积操作的图像等。
在本实施例中,控制器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)等。
在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123具体被配置成:通过地址信号输出端addr_21、addr_22、addr_23分别向控制器10的地址信号输入端addr_01、addr_02、addr_03发送数据获取请求。该数据获取请求中包括数据地址信息,该数据地址信息用于指示所要获取的数据在存储器11中的地址。
在本实施例中,控制器10中通常预先设置有数据地址信息的优先级顺序,该优先级顺序例如可以根据数据处理的先后顺序来设置。作为示例,当上述数据获取单元设置于卷积神经网络固化于其上的人工智能芯片中时,可以按照卷积神经网络中数据处理步骤的顺序,来设置数据地址信息的优先级。从而,控制器10被配置成:
首先,接收预设时间段内数据处理部件121、数据处理部件122、数据处理部件123发送的数据获取请求。
接着,根据预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息。在这里,该预设数目可以为1个,也可以为多个。当存储器11为通用存储器时,其通常设置有一个数据信号输入端。控制器10可以从接收到的数据地址信息中选择1个数据地址信息。在这里,当控制器10从接收到的数据地址信息中选择两个以上数据地址信息时,控制器10内可以设置有缓存,从而可以将优先级最高的数据地址信息提供至存储器,将其余数据地址信息放入缓存中。然后基于预设的工作周期,将缓冲的数据地址信息中优先级最高的数据地址信息提供至存储器。这样一来,对于工作周期可以进行缺省设置的数据获取单元,可以不需要数据处理部件实时向控制器10发送数据地址信息,提高存储器11发送数据的效率。
最后,将所选择的数据地址信息通过地址信号输出端addr_out发送至存储器11的地址信号输入端addr_in。
在本实施例中,存储器11被配置成:通过地址信号输入端addr_in接收控制器10发送的数据地址信息。从接收到的数据地址信息指示的地址中获取数据。将获取的数据通过数据输出端rdata发送至与控制器10选择出的数据地址信息对应的数据处理部件中。
在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123被配置成:通过数据输入端data_1、data_2、data_3接收存储器11发送的数据。
继续参看图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。
具体的,控制器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。
在本实施例中,控制器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在使能信号的控制下导通。
本实施例值得注意的是,当所选择出的数据地址信息是在预设时间端内由多个数据处理部件发送的时,上述控制器10可以同时向该多个数据处理部件发送选通信号,以接收存储器11发送的数据。
本申请实施例提供的数据获取单元中,控制器可以从接收到的各数据处理部件发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,然后将该地址信息提供至存储器,同时与选取出的数据地址信息对应的数据处理部件从存储器中接收数据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降低数据处理部件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器中可以存储多种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供数据,在存储器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取单元内部的资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件设置的灵活性。
请参看图2,图2示出了本申请提供的数据获取单元的又一个实施例的结构示意图。
如图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的信号输出端的数目与数据处理部件的数目相同。
具体的,控制器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一一对应连接。
在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123具体被配置成:通过地址信号输出端addr_21、addr_22、addr_23分别向控制器10的地址信号输入端addr_01、addr_02、addr_03发送数据获取请求。该数据获取请求中包括数据地址信息,该数据地址信息用于指示所要获取的数据在存储器11中的地址。
在本实施例中,控制器10被配置成:首先,接收预设时间段内数据处理部件121、数据处理部件122、数据处理部件123发送的数据获取请求。接着,根据预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息。在这里,该预设数目可以为1个,也可以为多个。最后,将所选择的数据地址信息通过地址信号输出端addr_out发送至存储器11的地址信号输入端addr_in。在这里,控制器10的具体配置方式可参考图1所示的的控制器10的配置方式。
在本实施例中,存储器11被配置成:通过地址信号输入端addr_in接收控制器10发送的数据地址信息。从接收到的数据地址信息指示的地址中获取数据。将获取的数据通过数据输出端rdata发送至与控制器10选择出的数据地址信息对应的数据处理部件中。
在本实施例中,数据处理部件121、数据处理部件122、数据处理部件123被配置成:通过数据输入端data_1、data_2、data_3接收存储器11发送的数据。
与图1所示的实施例不同的是,控制器10还可以被配置成:通过控制信号输出端en向数据传输部件13的控制信号端en_in发送使能信号,该使能信号可以控制数据传输部件13对某些数据输出端选通,该某数据输出端为与所选择出的数据地址信息对应的数据处理部件的数据输入端连接的数据输出端。
数据传输部件可以被配置成:通过控制信号端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导通或关断。
从图2中可以看出,与图1所示的实施例不同的是,本实施例增加了数据传输部件13以及数据传输部件13与存储器11、控制器10、数据处理部件121、数据处理部件122和数据处理部件123之间的连接关系。从而,数据获取单元100中的数据处理部件以及存储器11均可以不需要改变端口状态以及各端口之间的通信协议,使得数据处理部件和存储器11均可以为通用型号,或者数据处理部件和存储器11可以应用于多种应用场景中,不需要改变端口设置,提高数据提取单元的数据提取效率,增加了数据处理单元的通用性以及灵活性。
请继续参考图3,其示出了本申请提供的数据获取单元的再一个实施例的结构示意图。
如图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的信号输出端的数目与数据处理部件的数目相同。
图3所示的数据获取单元各部件之间的连接关系可以参考图2所示的实施例,在此不再赘述。与图2所示的实施例不同的是,本实施例具体示出了数据传输部件的内部结构。
在本实施例中,数据传输部件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”状态)来改变各开关的状态。
继续参考图4,图4示出了数据传输部件13的另一种可选的实现方式的内部结构示意图。
与图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的输出端可以为漏极。
在这里值得注意的是,本申请所示的控制器10、存储器11、数据传输部件13、数据处理部件12的端口不仅限于图1-图4中所示的端口,根据应用场景的需要还可以设置其他端口。例如,存储器11中通常还设置有使能控制端、写数据信号接收端等等。其均为现有的公知技术,在此不再赘述。
在一些可选的实现方式中,图1-图4所示的数据处理部件12包括通用数据处理部件或专用数据处理部件,所述通用数据处理部件包括可编程通用计算图形处理器,专用数据处理部件包括以下至少一种:单数据处理器、平面数据处理器、通道数据处理器、专用内存和数据重构引擎。
通用数据处理部件可以是能够实现常用操作功能的电路或器件。这里的常用操作功能可以(但不限于)包括人工智能应用中通常会使用的算法,如前向传播算法、反向传播算法等。这样,用户可以根据所需的操作功能,对各通用执行部件进行组合。从而有助于降低芯片的开发周期和开发成本。专用数据处理部件可以是能够实现指定操作功能的电路或器件。这里所说的指定操作功能可以与常用操作功能相对。即可以包括人工智能应用中不常使用的算法因此。
请继续参考图5,其示出了本申请提供的如图2-图4之一所述的数据获取单元的一个应用场景的示意图。
如图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中预先存储的与各字符串对应的数据地址信息的优先级顺序依次为①、②、③。
在第一时刻,数据处理部件121向控制器10发送包括数据地址信息①的数据获取请求、数据处理部件122向控制器10发送包括数据地址信息②的数据获取请求、数据处理部件123向控制器10发送包括数据地址信息③的数据获取请求。控制器10根据预先设置的优先级顺序,将数据地址信息①转发至存储器11,同时向数据传输部件13发送控制与数据处理部件121连接的端口打开的使能信号。从而,数据处理部件121可以接收到存储在数据地址信息①对应的地址中的字符串1。
在第二时刻,数据处理部件121、数据处理部件122向控制器10发送包括数据地址信息②的数据获取请求,数据处理部件123向控制器10发送包括数据地址信息③的数据获取请求。控制器10根据预设设置的优先级顺序,将数据地址信息②转发至存储器11,同时向数据传输部件13发送控制与数据处理部件121、数据处理部件122连接的端口打开的使能信号。从而,数据处理部件121可以接收到存储在数据地址信息②对应的地址中的字符串1、数据处理部件122可以接收到存储在数据地址信息②对应的地址中的字符串2。
在第三时刻,数据处理部件122、数据处理部件123同时向控制器10发送包括数据地址信息③的数据获取请求。控制器10根据预设设置的优先级顺序,将数据地址信息③转发至存储器11,同时向数据传输部件13发送控制与数据处理部件122、数据处理部件123连接的端口打开的使能信号。从而,数据处理部件122可以接收到存储在数据地址信息③对应的地址中的字符串2、数据处理部件122可以接收到存储在数据地址信息③对应的地址中的字符串3。
请继续参考图6,其示出了本申请提供的应用于控制器的数据获取方法的一个实施例的流程600。
其中,控制器与存储器以及至少两个数据处理部件连接。
步骤601,接收预设时间段内至少两个数据处理部件发送的数据获取请求。
在本实施例中,控制器可以接收和其连接的数据处理部件在预设时间段发送的数据获取请求。在这里,该数据获取请求包括数据地址信息。
步骤602,按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息。
在本实施例中,控制器中通常预先设置有数据地址信息的优先级顺序,该优先级顺序例如可以根据数据处理的先后顺序来设置。作为示例,当上述数据获取单元设置于卷积神经网络固化于其上的人工智能芯片中时,可以按照卷积神经网络中数据处理步骤的顺序,来设置数据地址信息的优先级。
在本实施例中,预设数目可以为1个,也可以为多个。当与控制器连接的存储器为通用存储器时,其通常设置有一个数据信号输入端。控制器可以从接收到的数据地址信息中选择1个数据地址信息。在这里,当控制器从接收到的数据地址信息中选择两个以上数据地址信息时,控制器内可以设置有缓存,从而可以将优先级最高的数据地址信息提供至存储器,将其余数据地址信息放入缓存中。然后基于预设的工作周期,将缓冲的数据地址信息中优先级最高的数据地址信息提供至存储器。这样一来,对于工作周期可以进行缺省设置的数据单元,可以不需要数据处理部件实时向控制器发送数据地址信息,提高与控制器连接的存储器发送数据的效率。
步骤603,将所选择的数据地址信息发送至存储器。
在本实施例中,存储器可以根据步骤602中所选择出的数据地址信息,可以将所选择的数据地址信息发送至与其连接的存储器。
在一些可选的实现方式中,控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;至少两个数据处理部件的地址信号输出端分别与控制器的至少两个地址信号输入端连接;控制器的地址信号输出端与存储器的地址信号输入端连接。
在一些可选的实现方式中,数据处理部件还包括控制端,至少两个数据处理部件的控制端与控制器的控制信号输出端连接;至少两个数据处理部件的数据输入端与存储器的数据输出端连接;以及数据获取方法还包括:通过控制信号输出端向所选择出的数据地址信息对应的数据处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接收到的使能信号,通过数据输入端接收存储器发送的数据。
本申请实施例提供的应用于控制器的数据传输方法,控制器可以从接收到的各数据处理部件发送的包括数据地址信息的数据获取请求中选取出预设数目个数据地址信息,然后将该地址信息提供至存储器,同时与选取出的数据地址信息对应的数据处理部件从存储器中接收数据,从而可以使得当不同的数据处理部件之间存在数据复用时,能够有效降低数据处理部件对存储器的访问次数,节省访存带宽;其次,由于本申请中,同一个存储器中可以存储多种类型的数据,可以基于控制器输入的地址信号向不同的数据处理部件提供数据,在存储器的存储容量满足需求时,不需要设置额外的数据存储器,可以节省数据获取单元内部的资源;再次,本申请中各数据处理部件之间相互独立,还可以提高数据处理部件设置的灵活性。
本申请实施例还提出了一种人工智能芯片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所示的数据获取单元,在此不再赘述。
在本实施例中,人工智能芯片700还包括调度部件14。调度部件14可以是能够实现指令的调度分发功能的电路或器件。调度部件14可以对待执行指令进行解析,从而确定执行什么操作。之后,可以将待执行指令发送给对应的数据处理部件,即能够执行待执行指令所指示的操作的数据处理部件。调度部件14可以设置在处理器中,也可以单独设置。需要说明的是,待执行指令可以是其他电子设备或电子器件发送给人工智能芯片的。也可以是人工智能芯片根据待处理数据而生成的。
在一些应用场景中,为了提高数据处理效率,调度部件14、数据处理部件中也可以分别设置有存储器。并且不同部件中的存储器可以存储该部件所需的数据。
本实施例中的人工智能芯片,针对深度学习训练和预测,能够满足高密度的计算和访存需求。
本申请提供的人工智能芯片700中的数据获取单元的数目、调度部件的数目、每一个数据获取单元中的存储器、数据传输部件、控制器、数据处理部件的数目在此不做限定,根据应用场景的需要设置。
下面参见图8,其示出了适于用来实现本申请实施例的电子设备的计算机系统800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分804加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有系统800操作所需的各种程序和数据。CPU801也可以通过人工智能芯片805进行数据的处理分析。CPU801、ROM802、RAM803以及人工智能芯片805通过总线806彼此相连。输入/输出(I/O)端口807也连接至总线806。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例可以包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序。该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分808从网络上被下载和安装,和/或从可拆卸介质809被安装。在该计算机程序被人工智能芯片805执行时,执行本申请的方法中限定的上述功能。
可以理解的是,附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种数据获取单元,包括存储器、至少两个数据处理部件和控制器;
所述控制器与所述存储器和所述至少两个数据处理部件连接,所述至少两个数据处理部件与所述存储器连接;
数据处理部件被配置成:向所述控制器发送数据获取请求,以及接收所述存储器发送的数据,其中,所述数据获取请求包括数据地址信息;
所述控制器被配置成:接收预设时间段内数据处理部件发送的数据获取请求;按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;将所选择的数据地址信息发送至所述存储器;
所述存储器被配置成:从接收到的数据地址信息指示的地址中获取数据,将数据发送至与选择出的数据地址信息对应的数据处理部件。
2.根据权利要求1所述的数据获取单元,其中,所述控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,所述存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;
所述至少两个数据处理部件的地址信号输出端分别与所述控制器的至少两个地址信号输入端连接;
所述控制器的地址信号输出端与所述存储器的地址信号输入端连接。
3.根据权利要求2所述的数据获取单元,其中,数据处理部件还包括控制端,其中,
所述至少两个数据处理部件的控制端与所述控制器的控制信号输出端连接;
所述至少两个数据处理部件的数据输入端与所述存储器的数据输出端连接。
4.根据权利要求2所述的数据获取单元,其中,所述数据获取单元还包括数据传输部件,所述数据传输部件包括控制信号端、数据输入端和至少两个数据输出端;
所述数据传输部件的控制信号端与所述控制器的控制信号输出端连接;
所述数据传输部件的至少两个数据输出端分别与所述至少两个数据处理部件的数据输入端连接;
所述数据传输部件的数据输入端与所述存储器的数据输出端连接。
5.根据权利要求4所述的数据获取单元,其中,所述数据传输部件包括与数据处理部件相同数目个开关,开关的控制端分别与所述数据传输部件的控制信号端连接,开关的输出端分别与所述数据传输部件的数据输出端连接,开关的输入端与所述数据传输部件的数据输入端连接。
6.根据权利要求4所述的数据获取单元,其中,所述数据传输部件包括与数据处理部件相同数目个开关,所述数据传输部件包括与数据处理部件相同数目个控制信号端,所述控制器包括与数据处理部件相同数目个控制信号输出端;
所述数据传输部件的控制信号端与所述控制器的控制信号输出端一一对应连接;
开关的控制端与所述数据传输部件的控制信号端一一对应连接;
开关的输出端与所述数据传输部件的数据输出端一一对应连接;
开关的输入端与所述数据传输部件的数据输入端连接。
7.根据权利要求1-6之一所述的数据获取单元,其中,所述数据处理部件包括通用数据处理部件或专用数据处理部件,所述通用数据处理部件包括可编程通用计算图形处理器,所述专用数据处理部件包括以下至少一种:单数据处理器、平面数据处理器、通道数据处理器、专用内存和数据重构引擎。
8.一种应用于控制器的数据获取方法,所述控制器与存储器和至少两个数据处理部件连接,所述方法包括:
接收预设时间段内至少两个数据处理部件发送的数据获取请求,所述数据获取请求包括数据地址信息;
按照预先设置的优先级顺序,从接收到的数据地址信息中选择预设数目个数据地址信息;
将所选择的数据地址信息发送至所述存储器,其中,所述存储器被配置成从接收到的数据地址信息指示的地址中获取数据,将数据发送至与所选择的数据地址信息对应的数据处理部件。
9.根据权利要求8所述的方法,其中,所述控制器包括地址信号输出端、控制信号输出端和至少两个地址信号输入端,所述存储器包括地址信号输入端和数据输出端,数据处理部件包括地址信号输出端和数据输入端;
所述至少两个数据处理部件的地址信号输出端分别与所述控制器的至少两个地址信号输入端连接;
所述控制器的地址信号输出端与所述存储器的地址信号输入端连接。
10.根据权利要求9所述的方法,其中,数据处理部件还包括控制端,所述至少两个数据处理部件的控制端与所述控制器的控制信号输出端连接;所述至少两个数据处理部件的数据输入端与所述存储器的数据输出端连接;以及
所述方法还包括:通过所述控制信号输出端向所选择出的数据地址信息对应的数据处理部件的控制端发送使能信号;其中,数据处理部件被配置成:基于接收到的使能信号,通过数据输入端接收所述存储器发送的数据。
11.一种人工智能芯片,所述人工智能芯片包括如权利要求1-7之一所述的数据获取单元。
12.一种电子设备,包括中央处理单元、存储器和至少一个如权利要求11所述的人工智能芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810908767.2A CN110825665B (zh) | 2018-08-10 | 2018-08-10 | 数据获取单元和应用于控制器的数据获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810908767.2A CN110825665B (zh) | 2018-08-10 | 2018-08-10 | 数据获取单元和应用于控制器的数据获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825665A true CN110825665A (zh) | 2020-02-21 |
CN110825665B CN110825665B (zh) | 2021-11-05 |
Family
ID=69541603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810908767.2A Active CN110825665B (zh) | 2018-08-10 | 2018-08-10 | 数据获取单元和应用于控制器的数据获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825665B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765376A (zh) * | 2011-06-16 | 2014-04-30 | 柯斯提克绘图公司 | 具有无阻塞并行架构的图形处理器 |
CN104679678A (zh) * | 2013-12-02 | 2015-06-03 | 鸿富锦精密工业(深圳)有限公司 | 机架式服务器数据管理系统及方法 |
CN105637492A (zh) * | 2013-10-04 | 2016-06-01 | 高通股份有限公司 | 多核异构系统转换后备缓冲器相干性 |
US20160234317A1 (en) * | 2012-08-02 | 2016-08-11 | Facebook, Inc. | Network interface device having general-purpose computing capability |
CN106354451A (zh) * | 2015-07-14 | 2017-01-25 | 三星电子株式会社 | 用于操作电子设备的方法和电子设备 |
CN106462510A (zh) * | 2014-03-06 | 2017-02-22 | 伊姆西公司 | 具有独立直接接入大量固态存储资源的多处理器系统 |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
CN107408111A (zh) * | 2015-11-25 | 2017-11-28 | 百度(美国)有限责任公司 | 端对端语音识别 |
CN107980118A (zh) * | 2015-06-10 | 2018-05-01 | 无比视视觉技术有限公司 | 使用多线程处理的多核处理器设备 |
-
2018
- 2018-08-10 CN CN201810908767.2A patent/CN110825665B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765376A (zh) * | 2011-06-16 | 2014-04-30 | 柯斯提克绘图公司 | 具有无阻塞并行架构的图形处理器 |
US20160234317A1 (en) * | 2012-08-02 | 2016-08-11 | Facebook, Inc. | Network interface device having general-purpose computing capability |
CN105637492A (zh) * | 2013-10-04 | 2016-06-01 | 高通股份有限公司 | 多核异构系统转换后备缓冲器相干性 |
CN104679678A (zh) * | 2013-12-02 | 2015-06-03 | 鸿富锦精密工业(深圳)有限公司 | 机架式服务器数据管理系统及方法 |
CN106462510A (zh) * | 2014-03-06 | 2017-02-22 | 伊姆西公司 | 具有独立直接接入大量固态存储资源的多处理器系统 |
CN107980118A (zh) * | 2015-06-10 | 2018-05-01 | 无比视视觉技术有限公司 | 使用多线程处理的多核处理器设备 |
CN106354451A (zh) * | 2015-07-14 | 2017-01-25 | 三星电子株式会社 | 用于操作电子设备的方法和电子设备 |
CN107408111A (zh) * | 2015-11-25 | 2017-11-28 | 百度(美国)有限责任公司 | 端对端语音识别 |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110825665B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110007961B (zh) | 一种基于risc-v的边缘计算硬件架构 | |
US11023391B2 (en) | Apparatus for data processing, artificial intelligence chip and electronic device | |
US10678479B1 (en) | Registers for restricted memory | |
CN109885857B (zh) | 指令发射控制方法、指令执行验证方法、系统及存储介质 | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
WO2021115208A1 (zh) | 神经网络处理器、芯片和电子设备 | |
CN111459856B (zh) | 一种数据传输装置及传输方法 | |
CN112905530A (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
US7376762B2 (en) | Systems and methods for direct memory access | |
US20170337246A1 (en) | Big-data processing accelerator and big-data processing system thereof | |
CN110825435B (zh) | 用于处理数据的方法和装置 | |
US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
CN111752879A (zh) | 一种基于卷积神经网络的加速系统、方法及存储介质 | |
WO2021115149A1 (zh) | 神经网络处理器、芯片和电子设备 | |
CN110825665B (zh) | 数据获取单元和应用于控制器的数据获取方法 | |
US10127040B2 (en) | Processor and method for executing memory access and computing instructions for host matrix operations | |
CN108388943B (zh) | 一种适用于神经网络的池化装置及方法 | |
CN115994040A (zh) | 计算系统以及进行数据广播和数据归约的方法及存储介质 | |
CN114970848A (zh) | 用于并行处理器的数据搬运装置及相应处理器 | |
CN111078286A (zh) | 数据通信方法、计算系统和存储介质 | |
CN115344393A (zh) | 业务处理方法及相关设备 | |
US11552892B2 (en) | Dynamic control of latency tolerance reporting values | |
CN116324741A (zh) | 用于可配置硬件加速器的方法和装置 | |
CN117851306B (zh) | 一种运行模式的确定方法、芯片、芯片模组及存储介质 | |
CN118296084B (zh) | 数据处理设备、指令同步方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210930 Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086 Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |