CN117666935A - 数据处理装置、方法、人工智能处理器、芯片和电子设备 - Google Patents
数据处理装置、方法、人工智能处理器、芯片和电子设备 Download PDFInfo
- Publication number
- CN117666935A CN117666935A CN202211066127.4A CN202211066127A CN117666935A CN 117666935 A CN117666935 A CN 117666935A CN 202211066127 A CN202211066127 A CN 202211066127A CN 117666935 A CN117666935 A CN 117666935A
- Authority
- CN
- China
- Prior art keywords
- data
- command
- compressed
- memory
- compressed data
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims description 34
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 238000013500 data storage Methods 0.000 claims description 34
- 230000006837 decompression Effects 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 13
- 238000007906 compression Methods 0.000 claims description 13
- 238000003672 processing method Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
本公开提供了一种数据处理装置、数据处理方法、人工智能处理器、计算芯片和电子设备,涉及计算机技术领域。一种数据处理装置包括:命令下发模块,用于响应计算引擎发送的寄存器配置命令,对命令下发模块包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令;数据读取模块,用于接收存储器响应压缩数据读取命令而上传且经由总线传输的压缩数据,对压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎。本公开可以降低人工智能处理器的功耗。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理装置、数据处理方法、人工智能处理器、计算芯片和电子设备。
背景技术
人工智能处理器通常包括多个计算引擎,各计算引擎负责人工智能算法的不同数据处理过程。
各计算引擎与存储器之间存在大量的数据交互,巨大的数据传输量会导致整个人工智能处理器功耗较高。
发明内容
本公开提供一种数据处理装置、数据处理方法、人工智能处理器、计算芯片和电子设备,进而至少在一定程度上克服人工智能处理器功耗高的问题。
根据本公开的第一方面,提供了一种数据处理装置,包括:命令下发模块,用于响应计算引擎发送的寄存器配置命令,对命令下发模块包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令;数据读取模块,用于接收存储器响应压缩数据读取命令而上传且经由总线传输的压缩数据,对压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎。
根据本公开的第二方面,提供了另一种数据处理装置,包括:命令下发模块,用于响应计算引擎发送的寄存器配置命令,对命令下发模块包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据存储命令;数据写入模块,用于接收计算引擎发送的待压缩的数据,对待压缩的数据进行压缩以得到压缩数据,并响应压缩数据存储命令将压缩数据传输至总线以便写入存储器。
根据本公开的第三方面,提供了一种数据处理方法,包括:响应计算引擎发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令;接收存储器响应压缩数据读取命令而上传且经由总线传输的压缩数据,对压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎。
根据本公开的第四方面,提供了另一种数据处理方法,包括:响应计算引擎发送的寄存器配置命令,对命令下发模块包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据存储命令;接收计算引擎发送的待压缩的数据,对待压缩的数据进行压缩以得到压缩数据,并响应压缩数据存储命令将压缩数据传输至总线以便写入存储器。
根据本公开的第五方面,提供了一种人工智能处理器,包括:计算引擎、存储器以及上述任一种或多种数据处理装置。
根据本公开的第六方面,提供了一种计算芯片,包括上述人工智能处理器。
根据本公开的第七方面,提供了一种电子设备,包括上述人工智能处理器。
在本公开的一些实施例所提供的技术方案中,针对从存储器读取数据以供计算引擎使用的情况,命令下发模块可以用于响应计算引擎发送的寄存器配置命令,对命令下发模块包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令,数据读取模块可以用于接收存储器响应压缩数据读取命令而上传且经由总线传输的压缩数据,对压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎。针对将计算引擎输出的数据写入存储器的情况,命令下发模块可以用于响应计算引擎发送的寄存器配置命令,对写寄存器包括的命令寄存器进行配置,并通过命令寄存器发送压缩数据存储命令,数据写入模块可以用于接收计算引擎发送的待压缩的数据,对待压缩的数据进行压缩以得到压缩数据,并响应压缩数据存储命令将压缩数据传输至总线以便写入存储器。通过本公开的人工智能处理器中的上述压缩和解压缩过程,使得计算引擎获取到的数据为非压缩的数据,而存储器存储的数据为压缩数据,一方面,总线上传输的是压缩数据,大大减小了总线上的数据传输量,降低了功耗;另一方面,总线上传输的是压缩数据,也降低了总线带宽的需求量,同时减小数据传输的延迟;再一方面,由于存储器中存储的是压缩数据,因此,也减少了存储器的数据占用空间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本公开实施例的包括计算引擎和存储器的人工智能处理器的示意图;
图2示出了本公开一些技术的计算引擎与存储器进行数据交互的示意图;
图3示出了本公开一些实施例的实现计算引擎与存储器之间数据交互的示意图;
图4示出了本公开实施例的针对计算引擎读取数据情况的人工智能处理器的示意图;
图5示出了本公开实施例的针对计算引擎读取数据情况的数据处理装置的示意图;
图6示出了本公开实施例的针对计算引擎读取数据情况的人工智能处理器的细节的示意图;
图7示意性示出了根据本公开示例性实施方式的数据处理方法的流程图;
图8示出了本公开实施例的针对计算引擎向存储器写入数据情况的人工智能处理器的示意图;
图9示出了本公开实施例的针对计算引擎向存储器写入数据情况的数据处理装置的示意图;
图10示出了本公开实施例的针对计算引擎向存储器写入数据情况的人工智能处理器的细节的示意图;
图11示意性示出了根据本公开另一示例性实施方式的数据处理方法的流程图;
图12示意性示出了根据本公开的示例性实施方式的电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”仅是为了区分的目的,不应作为本公开内容的限制。
需要说明的是,本公开实施方式的数据处理方案可以由电子设备实现,具体的,本公开实施方式的人工智能处理器可以配置在电子设备中,可以由电子设备执行本公开实施方式的数据处理方法的各个步骤。该电子设备除例如是智能手机、平板电脑、个人计算机等终端设备之外,还可以是服务器,本公开对此不做限制。
图1示出了本公开实施例的包括计算引擎和存储器的人工智能处理器的示意图。
计算引擎110可以是电子设备包括的神经网络处理器(Neural-networkProcessing Unit,NPU)中的计算引擎,包括但不限于向量处理引擎和张量处理引擎。其中,向量处理引擎可以用于处理一维数组的运算。张量处理引擎可以用于面向多维数组之间的运算,在人工智能(Artificial Intelligence,AI)加速器中,负责大规模卷积的并行运算,可以显著提升运算性能。
另外,计算引擎110还可以是人工智能加速器、数字信号处理器(Digital SignalProcessor,DSP)等。
以计算引擎110针对人工智能网络中的卷积运算为例进行说明,卷积运算包括将特征图像与对应位置的权重数据相乘,再将一个通道上所有乘法结果进行累加。
参考图1,首先,计算引擎110可以将特征图像和权重数据从存储器120中读出,可以存入计算引擎110内部的寄存器文件中。接下来,乘累加阵列从寄存器文件中读取数据,经由乘法及加法的运算处理,生成数据处理结果。然后,计算引擎110可以将数据处理结果回写至存储器120中。
除图1所示一个计算引擎对应一个存储器之外,通常,多个计算引擎可以从一个存储器获取数据,并将处理后的数据写入该存储器。
参考图2,计算引擎210和计算引擎220各自负责例如算法网络中的不同计算层,计算引擎210和计算引擎220均与存储器200存在数据交互。
由于数据在传输的过程中使用的是原始数据,这就导致系统功耗较高,需要大的传输带宽,并且存储器由于存储原始数据造成存储压力较大。
为了解决人工智能处理器中现实存在的这些问题,本公开提供了一种新的数据处理方案。本公开提供的数据处理方案为在线压缩以及解压缩的方案。从计算引擎的角度来看,使用的数据为原始数据;从存储器的角度来看,存储的是压缩后的数据。
参考图3,存储器300存储的是压缩数据,计算引擎310或计算引擎320需要从存储器300读取数据时,经历总线传输后,再经过解压缩的过程被计算引擎310或计算引擎320获取。计算引擎310或计算引擎320需要将数据写入存储器300时,先经过数据压缩的过程,再经历总线传输,以写入存储器300。
例如,存储器300响应计算引擎310的数据获取请求,上传压缩后的数据A,数据A经过总线传输,到达解压缩模块,进行在线解压缩的操作,得到解压缩后的数据B,数据B进入计算引擎310进行计算,得到数据C。数据C在向存储器300写入时,先经过压缩模块进行压缩,得到压缩后的数据D,压缩后的数据D在总线上传输并写入存储器300中。
图4示出了本公开实施例的针对计算引擎读取数据情况的人工智能处理器的示意图。参考图4,此情况的人工智能处理器可以包括计算引擎410、总线420、存储器430以及应用于读取过程的数据处理装置400。其中,数据处理装置400通过总线420与存储器430进行数据交互。
数据处理装置400可以独立于计算引擎410配置,数据处理装置400与计算引擎410可以通过有线或无线的方式进行数据交互。另外,数据处理装置400还可以配置于计算引擎410内,作为计算引擎410数据处理的一部分,本公开对此不做限制。
参考图5对本公开实施方式的应用于读取过程的数据处理装置400进行说明。参考图5,数据处理装置400可以包括命令下发模块51和数据读取模块53。
命令下发模块51包括命令寄存器。命令下发模块51可以用于响应计算引擎410发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令。
数据读取模块53可以用于接收存储器430响应压缩数据读取命令而上传且经由总线420传输的压缩数据,对该压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎410,以便计算引擎410利用该解压缩后的数据进行计算操作。
应当注意的是,压缩数据可以是特征数据或权重数据经压缩后得到的数据,也就是说,计算引擎410获取到的数据为特征数据或权重数据。其中,特征数据可以包括图像特征数据、文本特征数据、音频特征数据等,权重数据可以是对特征数据进行计算时所需的权重数据。本公开对数据的具体内容不做限制。
根据本公开的一些实施例,数据读取模块53可以包括解压缩单元和缓存单元。
具体的,解压缩单元用于接收压缩数据,对压缩数据进行解压缩以得到解压缩后的数据。
此处的缓存单元又可被称为解压缩缓存单元,用于对解压缩后的数据进行缓存,以及响应计算引擎410发送的缓存读取命令,将解压缩后的数据发送至计算引擎410。
由于在实际的解压缩过程中,解压缩单元会不断地向缓存单元中写入解压缩后的数据,计算引擎410可以不断读取缓存单元中的数据,就像是一个水桶,一个流入一个流出,缓存单元起到了一个缓冲的作用,保证了解压缩输入和计算引擎输出的数据平缓。
根据本公开的一些实施例,压缩数据包括头数据(header)和负载数据(payload),其中,头数据包括压缩数据总长度、压缩数据的结构、压缩算法等信息。负载数据包括压缩的数据本身。
解压缩单元用于接收头数据和负载数据,基于头数据对负载数据进行解压缩以得到解压缩后的数据。例如,解压缩单元包括多种解压缩算法,解压缩单元可以根据头数据中包括的压缩算法确定出对应的解压缩算法,以采用该解压缩算法对负载数据进行解压缩,以得到解压缩后的数据。
根据本公开的一些实施例,命令下发模块51还可以用于传输计算引擎410发送的非压缩数据读取命令。数据读取模块53还可以用于接收存储器430响应非压缩数据读取命令而上传的非压缩数据,并将非压缩数据发送至计算引擎410。
本公开所说的非压缩数据可以预先人为定义,也可以通过数据量进行划分,通常非压缩数据为数据量小于一数据量阈值的数据,本公开对数据量阈值的具体取值不做限制。
在这些实施例中,可以根据上层软件的输入来判断计算引擎410要获取的是压缩数据还是非压缩数据,本公开实施方式的数据处理装置400既可以实现压缩数据进行解压缩后上传的处理过程,又可以实现非压缩数据直接上传的处理过程。
图6示出了本公开实施例的针对计算引擎读取数据情况的人工智能处理器的细节的示意图。
针对计算引擎读取存储器中非压缩数据的过程:
计算引擎可以发出非压缩数据读取命令,非压缩数据读取命令至少包括读取指示以及要读取数据的地址。参考图6,该非压缩数据读取命令通过路径a、路径b和路径e传递到总线,通过总线将该非压缩数据读取命令传输给存储器,存储器可以响应该非压缩数据读取命令将对应的非压缩数据返回给总线,再经过路径f、路径g和路径h输入到计算引擎,由计算引擎对非压缩数据进行处理。
针对计算引擎读取存储器中压缩数据的过程:
首先,计算引擎可以配置命令寄存器,通过命令寄存器发送压缩数据读取命令。具体的,计算引擎发出寄存器配置命令,该寄存器配置命令通过路径a、路径b、路径e和路径c传递至命令寄存器。命令寄存器发出压缩数据读取命令的路径为路径d和路径e。
例如,计算引擎需要读取10笔压缩数据,那么计算引擎可以发出10个寄存器配置命令来配置命令寄存器,10个寄存器配置命令分别是读取10笔压缩数据的命令,即10个压缩数据读取命令,具体可以通过slave cfg端口来进行配置。配置完成后,命令寄存器中的10个命令依次发出,相应的压缩数据就会通过总线返回。
接下来,存储器可以响应压缩数据读取命令返回压缩数据,经由总线传输后,通过路径f返回。压缩数据可以被分成头数据和负载数据,头数据和负载数据被输入到解压缩单元中进行解压缩,解压缩后的数据被存入缓存单元中。缓存单元可以响应计算引擎发出的缓存读取命令,将解压缩后的数据经由路径h输入至计算引擎,由计算引擎对解压缩后的数据进行处理。
在图6示例性示出的结构中,可以理解的是,数据选择器1、数据选择器2、数据选择器3和数据选择器4用于基于上层软件的输入控制人工智能处理器执行针对计算引擎读取存储器中压缩数据的过程还是针对计算引擎读取存储器中压缩数据的过程。另外,还可以利用数据选择器1,实现计算引擎对缓存单元的控制。
图7示意性示出了根据本公开示例性实施方式的数据处理方法的流程图。参考图7,本公开的一种数据处理方法包括:
S72.响应计算引擎发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令。
S74.接收存储器响应压缩数据读取命令而上传且经由总线传输的压缩数据,对压缩数据进行解压缩以得到解压缩后的数据,并将解压缩后的数据发送至计算引擎。
根据本公开的示例性实施例,该数据处理方法还包括:将解压缩后的数据存入缓存单元,通过缓存读取命令读取缓存单元中的解压缩后的数据,并将解压缩后的数据发送至计算引擎。
根据本公开的示例性实施例,压缩数据包括头数据和负载数据。对压缩数据进行解压缩以得到解压缩后的数据包括基于头数据对负载数据进行解压缩以得到解压缩后的数据。
根据本公开的示例性实施例,该数据处理方法还包括:传输计算引擎发送的非压缩数据读取命令;接收存储器响应非压缩数据读取命令而上传的非压缩数据,并将非压缩数据发送至计算引擎。
图8示出了本公开实施例的针对计算引擎向存储器写入数据情况的人工智能处理器的示意图。参考图8,此情况的人工智能处理器可以包括计算引擎810、总线820、存储器830以及应用于写入过程的数据处理装置800。其中,数据处理装置800通过总线820与存储器830进行数据交互。
数据处理装置800可以独立于计算引擎810配置,数据处理装置800与计算引擎810可以通过有线或无线的方式进行数据交互。另外,数据处理装置800还可以配置于计算引擎810内,作为计算引擎810数据处理的一部分,本公开对此不做限制。
参考图9对本公开实施方式的应用于读取过程的数据处理装置800进行说明。参考图9,数据处理装置800可以包括命令下发模块91和数据写入模块93。
命令下发模块91包括命令寄存器,此处所说的命令寄存器可以与应用于读取过程的数据处理装置中的命令寄存器不同。命令下发模块91可以用于响应计算引擎810发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据存储命令。
数据写入模块93可以用于接收计算引擎810发送的待压缩的数据,对该待压缩的数据进行压缩以得到压缩数据,并响应压缩数据存储命令将压缩数据传输至总线820以便写入存储器830。
应当注意的是,待压缩的数据是计算引擎810计算后输出的数据。
根据本公开的一些实施例,压缩数据可以包括头数据和负载数据,压缩数据存储命令可以包括头数据存储命令和负载数据存储命令。命令下发模块91还可以包括状态控制单元,该状态控制单元可以为状态机(Fsm)。状态控制单元可以用于接收由命令寄存器发送的负载数据存储命令以及负载数据的存储地址,在向数据写入模块93发送负载数据存储命令的情况下,向总线820发送该负载数据的存储地址。
根据本公开的一些实施例,状态控制单元还用于根据压缩数据的统计结果控制数据写入模块93输出头数据,以及向总线820发送头数据的存储地址。
根据本公开的一些实施例,数据写入模块93还可以包括缓存单元和压缩单元。类似地,此处所说的缓存单元与上述应用于读取过程的数据处理装置中的缓存单元可以不是同一缓存单元。
具体的,缓存单元用于对待压缩的数据进行缓存。压缩单元用于接收由缓存单元发送的待压缩的数据,并对待压缩的数据进行压缩以得到压缩数据。类似的,此处的缓存单元用于平缓数据流。
根据本公开的一些实施例,数据写入模块93还用于接收计算引擎810发送的非待压缩的数据,并将非待压缩的数据传输至总线820以便写入所述存储器830。其中,非待压缩的数据指的是计算引擎810输出的无需进行压缩的数据,通常是数据量较小的数据,例如,是数据量小于数据量阈值的数据。
对于此情况的命令寄存器,例如,需要写出10笔的压缩数据,那么计算引擎需要配置命令寄存器,以告诉需要写10笔数据的命令,然后命令寄存器会自动发出10笔写命令,以便对压缩好的数据进行写出操作。
对于上述状态控制单元,例如,待压缩的数据是1000个字节,也就是说,计算引擎810输出1000个字节,压缩单元开始压缩。首先,状态控制单元在接收到命令寄存器输出的负载数据存储命令之后,控制数据写入模块93输出负载数据,同时向总线820发送负载数据的存储地址,由此,负载数据和负载数据的存储地址均进入总线820,到达存储器830实现数据存储。接下来,在1000个数据压缩结束之后,例如压缩完成之后是500个数据,那么需要在存储器830的500个数据的头部加上头数据,以表征这个压缩数据的长度是500个字节,此时,需要状态控制单元选择头数据作为输出,同时向总线820发送将头数据对应的存储地址,这样,头数据也被存储器830存储。
图10示出了本公开实施例的针对计算引擎向存储器写入数据情况的人工智能处理器的细节的示意图。
参考图10,写过程可以被划分为写寄存器和写数据两部分。针对写寄存器,指的是计算引擎对外部的寄存器进行写操作,例如,通知外部处理器,表示自身的任务已经完成等,也可以是对图中命令寄存器的写操作。
针对计算引擎输出非待压缩的数据的过程:
计算引擎可以发送非待压缩的数据,并通过路径g、路径k和路径d传输至总线。另外,计算引擎通过将该非待压缩的数据的存储地址经由总线发送给存储器,以便存储器对该非待压缩的数据进行存储。
针对计算引擎输出待压缩的数据的过程:
一方面,计算引擎可以配置命令寄存器,通过命令寄存器发送压缩数据存储命令。具体的,计算引擎发出寄存器配置命令,该寄存器配置命令通过路径a、路径b、路径c和路径v传递至命令寄存器。命令寄存器通过路径n发出压缩数据存储命令至状态机。
另一方面,首先,计算引擎发出待压缩的数据,通过路径g和路径f在缓存单元中进行缓存;接下来,压缩单元可以通过路径e从缓存单元获取待压缩的数据,并对待压缩的数据进行压缩。压缩后的数据可以分为头数据和负载数据进行缓存。
状态机通过路径m控制输出的是头数据还是负载数据,具体的,控制数据选择器3输出的是头数据还是负载数据。应当理解的是,同一时间点仅能输出头数据和负载数据中的一个,例如,先输出头数据,后输出负载数据;或者先输出负载数据,后输出头数据。
另外,状态机可以通过路径p和路径c将数据存储地址经由总线发送给存储器。由此,存储器可以利用存储地址实现压缩数据的存储。
在图10示例性示出的结构中,可以理解的是,数据选择器1、数据选择器2、是数据选择器3和数据选择器4用于基于上层软件的输入控制人工智能处理器执行针对计算引擎输出非待压缩的数据的过程还是执行计算引擎输出待压缩的数据的过程。另外,还可以利用数据选择器3,实现头数据还是负载数据的存储控制。
图11示意性示出了根据本公开另一示例性实施方式的数据处理方法的流程图。参考图11,本公开的另一种数据处理方法包括:
S112.响应计算引擎发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据存储命令。
S114.接收计算引擎发送的待压缩的数据,对待压缩的数据进行压缩以得到压缩数据,并响应压缩数据存储命令将压缩数据传输至总线以便写入存储器。
根据本公开的示例性实施例,压缩数据包括头数据和负载数据,压缩数据存储命令包括头数据存储命令和负载数据存储命令。该数据处理方法还包括:接收由命令寄存器发送的负载数据存储命令以及负载数据的存储地址,在向数据写入模块发送负载数据存储命令的情况下,向总线发送负载数据的存储地址。
根据本公开的示例性实施例,该数据处理方法还包括:根据压缩数据的统计结果控制数据写入模块输出头数据,以及向总线发送头数据的存储地址。
根据本公开的示例性实施例,在对待压缩的数据进行压缩之前,还对待压缩的数据进行缓存,以平稳数据流。
根据本公开的示例性实施例,该数据处理方法还包括:接收计算引擎发送的非待压缩的数据,并将非待压缩的数据传输至总线以便写入存储器。
进一步的,本公开还提供了一种计算芯片,该计算芯片可以包括人工智能处理器,该人工智能处理器可以包括计算引擎、存储器以及上述任一种数据处理装置。
进一步的,本公开还提供了一种电子设备,该电子设备可以包括人工智能处理器,该人工智能处理器可以包括计算引擎、存储器以及上述任一种数据处理装置。
图12示出了适于用来实现本公开示例性实施方式的电子设备的示意图。需要说明的是,图12示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
具体的,如图12所示,电子设备120可以包括:处理器1210、内部存储器1221、外部存储器接口1222、通用串行总线(Universal Serial Bus,USB)接口1230、充电管理模块1240、电源管理模块1241、电池1242、天线1、天线2、移动通信模块1250、无线通信模块1260、音频模块1270、传感器模块1280、显示屏1290、摄像模组1291、指示器1292、马达1293、按键1294以及用户标识模块(Subscriber Identification Module,SIM)卡接口1295等。其中传感器模块1280可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。
可以理解的是,本公开实施例示意的结构并不构成对电子设备120的具体限定。在本公开另一些实施例中,电子设备120可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
处理器1210可以包括一个或多个处理单元,例如:处理器1210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器1210中还可以设置存储器,用于存储指令和数据。
电子设备120可以通过ISP、摄像模组1291、视频编解码器、GPU、显示屏1290及应用处理器等实现拍摄功能。在一些实施例中,电子设备120可以包括1个或N个摄像模组1291,N为大于1的正整数,若电子设备120包括N个摄像头,N个摄像头中有一个是主摄像头。
内部存储器1221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1221可以包括存储程序区和存储数据区。外部存储器接口1222可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备120的存储能力。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (14)
1.一种数据处理装置,其特征在于,包括:
命令下发模块,用于响应计算引擎发送的寄存器配置命令,对所述命令下发模块包括的命令寄存器进行配置,并通过所述命令寄存器发送压缩数据读取命令;
数据读取模块,用于接收存储器响应所述压缩数据读取命令而上传且经由总线传输的压缩数据,对所述压缩数据进行解压缩以得到解压缩后的数据,并将所述解压缩后的数据发送至所述计算引擎。
2.根据权利要求1所述的数据处理装置,其特征在于,所述数据读取模块包括:
解压缩单元,用于接收所述压缩数据,对所述压缩数据进行解压缩以得到解压缩后的数据;
缓存单元,用于对所述解压缩后的数据进行缓存,以及响应所述计算引擎发送的缓存读取命令,将所述解压缩后的数据发送至所述计算引擎。
3.根据权利要求2所述的数据处理装置,其特征在于,所述压缩数据包括头数据和负载数据;其中,所述解压缩单元用于接收所述头数据和所述负载数据,基于所述头数据对所述负载数据进行解压缩以得到解压缩后的数据。
4.根据权利要求1所述的数据处理装置,其特征在于,所述命令下发模块还用于传输所述计算引擎发送的非压缩数据读取命令;
所述数据读取模块还用于接收所述存储器响应所述非压缩数据读取命令而上传的非压缩数据,并将所述非压缩数据发送至所述计算引擎。
5.一种数据处理装置,其特征在于,包括:
命令下发模块,用于响应计算引擎发送的寄存器配置命令,对所述命令下发模块包括的命令寄存器进行配置,并通过所述命令寄存器发送压缩数据存储命令;
数据写入模块,用于接收所述计算引擎发送的待压缩的数据,对所述待压缩的数据进行压缩以得到压缩数据,并响应所述压缩数据存储命令将所述压缩数据传输至总线以便写入存储器。
6.根据权利要求5所述的数据处理装置,其特征在于,所述压缩数据包括头数据和负载数据,所述压缩数据存储命令包括头数据存储命令和负载数据存储命令,所述命令下发模块还包括:
状态控制单元,用于接收由所述命令寄存器发送的所述负载数据存储命令以及所述负载数据的存储地址,在向所述数据写入模块发送所述负载数据存储命令的情况下,向所述总线发送所述负载数据的存储地址。
7.根据权利要求6所述的数据处理装置,其特征在于,所述状态控制单元还用于根据所述压缩数据的统计结果控制所述数据写入模块输出所述头数据,以及向所述总线发送所述头数据的存储地址。
8.根据权利要求5所述的数据处理装置,其特征在于,所述数据写入模块包括:
缓存单元,用于对所述待压缩的数据进行缓存;
压缩单元,用于接收由所述缓存单元发送的所述待压缩的数据,并对所述待压缩的数据进行压缩以得到压缩数据。
9.根据权利要求5所述的数据处理装置,其特征在于,所述数据写入模块还用于接收所述计算引擎发送的非待压缩的数据,并将所述非待压缩的数据传输至总线以便写入所述存储器。
10.一种数据处理方法,其特征在于,包括:
响应计算引擎发送的寄存器配置命令,对命令寄存器进行配置,并通过命令寄存器发送压缩数据读取命令;
接收存储器响应所述压缩数据读取命令而上传且经由总线传输的压缩数据,对所述压缩数据进行解压缩以得到解压缩后的数据,并将所述解压缩后的数据发送至所述计算引擎。
11.一种数据处理方法,其特征在于,包括:
响应计算引擎发送的寄存器配置命令,对命令寄存器进行配置,并通过所述命令寄存器发送压缩数据存储命令;
接收所述计算引擎发送的待压缩的数据,对所述待压缩的数据进行压缩以得到压缩数据,并响应所述压缩数据存储命令将所述压缩数据传输至总线以便写入存储器。
12.一种人工智能处理器,其特征在于,包括:
计算引擎;
权利要求1至9中任一项所述的数据处理装置;以及
存储器。
13.一种计算芯片,其特征在于,包括如权利要求12所述的人工智能处理器。
14.一种电子设备,其特征在于,包括如权利要求12所述的人工智能处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211066127.4A CN117666935A (zh) | 2022-09-01 | 2022-09-01 | 数据处理装置、方法、人工智能处理器、芯片和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211066127.4A CN117666935A (zh) | 2022-09-01 | 2022-09-01 | 数据处理装置、方法、人工智能处理器、芯片和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117666935A true CN117666935A (zh) | 2024-03-08 |
Family
ID=90066917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211066127.4A Pending CN117666935A (zh) | 2022-09-01 | 2022-09-01 | 数据处理装置、方法、人工智能处理器、芯片和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117666935A (zh) |
-
2022
- 2022-09-01 CN CN202211066127.4A patent/CN117666935A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147251B (zh) | 用于计算神经网络模型的系统、芯片及计算方法 | |
CN110909870B (zh) | 训练装置及方法 | |
CN108604211B (zh) | 用于片上系统中的多区块数据事务的系统和方法 | |
CN109451317A (zh) | 一种基于fpga的图像压缩系统及方法 | |
US9508109B2 (en) | Graphics processing | |
CN111966647A (zh) | 一种小文件的云存储方法、装置、服务器及存储介质 | |
CN106227506A (zh) | 一种内存压缩系统中的多通道并行压缩解压系统及方法 | |
CN117666935A (zh) | 数据处理装置、方法、人工智能处理器、芯片和电子设备 | |
CN114254563A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111626035A (zh) | 一种版面分析方法及电子设备 | |
CN103927269B (zh) | 一种基于块匹配的可重构配置信息缓存系统及压缩方法 | |
KR102642744B1 (ko) | 외부 메모리의 협력 액세스 방법 및 시스템, 협력 액세스 아키텍처 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
US6473527B1 (en) | Module and method for interfacing analog/digital converting means and JPEG compression means | |
WO2021237513A1 (zh) | 数据压缩存储的系统、方法、处理器及计算机存储介质 | |
CN111405293B (zh) | 一种视频传输方法及装置 | |
CN115062340A (zh) | 设备访问方法、接口处理方法及设备 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN112637602A (zh) | 一种jpeg接口及数字图像处理系统 | |
CN111832692A (zh) | 数据处理方法、装置、终端及存储介质 | |
US11048413B2 (en) | Method for reducing read ports and accelerating decompression in memory systems | |
JP7481167B2 (ja) | 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
WO2021237518A1 (zh) | 数据存储的方法、装置、处理器及计算机存储介质 | |
CN111382855B (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 |