一种数据处理装置和方法与流程

文档序号:16627555发布日期:2019-01-16 06:15阅读:108来源:国知局
一种数据处理装置和方法与流程

本公开涉及一种数据处理装置和方法。



背景技术:

在传统的处理器芯片上,中央处理器输送启动配置指令到专用处理器核的指令存储器中,启动专用处理器核完成任务,直到结束指令被执行后结束整个任务,这种启动任务的方式被称为普通启动。在普通启动模式下存在如下问题:很难动态监测到当前任务的执行状态,对当前的任务很难进行调度。



技术实现要素:

(一)要解决的技术问题

有鉴于此,本公开的主要目的在于提供一种数据处理装置和方法,可以实现任务队列的配置、调度等功能,以解决上述问题。

(二)技术方案

本公开提供了一种数据处理装置,包括:任务配置信息存储单元,用于存储任务的配置信息;任务队列配置单元,用于根据所述任务配置信息存储单元的配置信息对任务队列进行配置。

在一些实施例中,所述任务配置信息存储单元包括:多个存储单元,用于根据配置信息将多个任务队列分别存储至各个存储单元。

在一些实施例中,所述配置信息包括任务的开始标志、和/或任务的结束标志、和/或任务的优先级、和/或任务的启动方式。

在一些实施例中,所述配置信息包括:存储单元的优先级。

在一些实施例中,所述多个存储单元包括:第一存储单元,具有第一优先级,用于存储第一任务队列;第二存储单元,具有第二优先级,用于存储第二任务队列。

在一些实施例中,所述第一优先级高于第二优先级,第一任务队列包括高优先级任务队列,所述第二任务队列包括低优先级任务队列。

在一些实施例中,所述配置信息还包括:存储单元内部的每个任务的优先级。

在一些实施例中,存储单元的任务队列中的任务按照所述存储单元内部的每个任务的优先级存储。

在一些实施例中,还包括:外部装置,用于提供配置信息以及执行任务队列。

在一些实施例中,所述外部装置用于将配置信息发送给任务配置信息存储单元。

在一些实施例中,所述任务队列配置单元用于按照配置信息中的优先级信息将任务依次发送至外部装置;所述外部装置用于执行任务队列中的任务,每执行完一个任务向所述任务配置信息存储单元发送一个第一结束信号。

在一些实施例中,所述任务配置信息存储单元用于每接收到一个第一结束信号向所述外部装置发送中断信号;所述外部装置用于处理中断信号并发送第二结束信号给任务配置信息存储单元。

在一些实施例中,所述任务配置信息存储单元用于接收到第一结束信号后,修改存储的任务配置信息。

在一些实施例中,所述外部装置还用于在任意时刻动态修改尚未发送至外部装置的任务的配置信息,所述任意时刻包括任务队列执行过程中和任务结束时刻。

在一些实施例中,所述外部装置包括一个或多个处理器核。

在一些实施例中,多个处理器核包括:控制模块,用于提供配置信息以及动态修改尚未执行的任务的配置信息;运算模块,用于执行任务队列。

在一些实施例中,所述控制模块用于将配置信息发送给任务配置信息存储单元。

在一些实施例中,所述运算模块包括控制单元、运算单元和存储单元;所述任务队列配置单元用于按照配置信息中的优先级信息将任务依次发送至控制单元;所述控制单元用于监测自启动任务队列装置的配置信息,对存储单元的运算指令进行配置,控制运算单元和存储单元执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号。

在一些实施例中,所述任务配置信息存储单元用于每接收到一个第一结束信号后向控制单元发送中断信号;所述控制单元用于处理中断信号并发送第二结束信号给任务配置信息存储单元。

在一些实施例中,所述存储单元包括外部存储模块和指令存储模块;所述控制单元用于对存储单元的运算指令进行配置包括:将所述外部存储模块的指令输入到指令存储模块中。

在一些实施例中,存储单元,用于存储神经网络运算的数据和指令;控制单元,用于控制存储单元和神经网络运算单元执行任务队列中的任务;所述运算单元包括神经网络运算单元,用于根据所述存储单元存储的指令对数据执行神经网络计算。

在一些实施例中,存储单元,用于存储通用运算的数据和指令;控制单元,用于控制存储单元和通用运算单元执行任务队列中的任务;所述运算单元包括通用运算单元,用于根据所述存储单元存储的指令对数据执行通用运算。

在一些实施例中,还包括:数据缓存,用于缓存数据、中间结果和运算结果;指令缓存,用于缓存指令;dma,用于存储单元与数据缓存、指令缓存之间的数据接口。

在一些实施例中,所述数据缓存包括:输入神经元缓存,用于缓存输入神经元;权值缓存,用于缓存权值;输出神经元缓存,用于缓存输出神经元。

在一些实施例中,所述神经网络运算单元包括至少一个运算部件,所述运算部件包括至少一个乘法器、和/或至少一个加法器、和/或至少一个激活函数单元、和/或至少一个池化单元。

在一些实施例中,所述多个加法器组成加法树。

在一些实施例中,所述神经网络运算单元包括多个pe、和/或一或多个alu。

在一些实施例中,所述pe包括一个乘法器、一个加法器、一个比较器和一个寄存器或寄存器组。

在一些实施例中,所述乘法器用于将第一输入数据和第二输入数据相乘得到输出。

本公开还提供了一种芯片,包括上述任一数据处理装置。

本公开还提供了一种芯片封装结构,包括上述芯片。

本公开还提供了一种板卡,包括上述芯片封装结构。

本公开还提供了一种电子装置,包括上述板卡。

本公开还提供了一种数据处理方法,包括:任务配置信息存储单元存储任务的配置信息;任务队列配置单元根据所述任务配置信息存储单元的配置信息对任务队列进行配置。

在一些实施例中,所述任务配置信息存储单元根据配置信息将多个任务队列分别存储至其各个存储单元。

在一些实施例中,所述配置信息包括任务的开始标志、和/或任务的结束标志、和/或任务的优先级、和/或任务的启动方式。

在一些实施例中,所述配置信息包括:存储单元的优先级。

在一些实施例中,所述存储单元的第一存储单元具有第一优先级,存储第一任务队列,第二存储单元具有第二优先级,存储第二任务队列。

在一些实施例中,所述第一优先级高于第二优先级,第一任务队列包括高优先级任务队列,所述第二任务队列包括低优先级任务队列。

在一些实施例中,所述配置信息还包括:存储单元内部的每个任务的优先级。

在一些实施例中,所述存储单元按照所述存储单元内部的每个任务的优先级存储任务队列中的任务。

在一些实施例中,其中,外部装置提供配置信息以及执行任务队列。

在一些实施例中,所述外部装置将配置信息发送给任务配置信息存储单元。

在一些实施例中,所述任务队列配置单元按照配置信息中的优先级信息将任务依次发送至外部装置;所述外部装置执行任务队列中的任务,每执行完一个任务向所述任务配置信息存储单元发送一个第一结束信号。

在一些实施例中,所述任务配置信息存储单元每接收到一个第一结束信号向外部装置发送中断信号;所述外部装置处理中断信号并发送第二结束信号给任务配置信息存储单元。

在一些实施例中,所述任务配置信息存储单元接收到第一结束信号后修改存储的任务配置信息。

在一些实施例中,所述外部装置还用于在任意时刻动态修改尚未发送至外部装置的任务的配置信息,所述任意时刻包括任务队列执行过程中和任务结束时刻。

在一些实施例中,所述外部装置包括一个或多个处理器核。

在一些实施例中,多个处理器核中的控制模块提供配置信息以及动态修改尚未执行的任务的配置信息,运算模块执行任务队列。

在一些实施例中,所述控制模块将配置信息发送给任务配置信息存储单元。

在一些实施例中,所述任务队列配置单元按照配置信息中的优先级信息将任务依次发送至控制单元;所述控制单元监测自启动任务队列装置的配置信息,对存储单元的运算指令进行配置,控制运算单元和存储单元执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号。

在一些实施例中,所述任务配置信息存储单元每接收到一个第一结束信号后向控制单元发送中断信号;所述控制单元处理中断信号并发送第二结束信号给任务配置信息存储单元。

在一些实施例中,所述控制单元对存储单元的运算指令进行配置包括:将所述存储单元中的外部存储模块的指令输入到指令存储模块中。

在一些实施例中,存储单元存储神经网络运算的数据和指令;控制单元控制存储单元和神经网络运算单元执行任务队列中的任务;所述运算单元包括神经网络运算单元,根据所述存储单元存储的指令对数据执行神经网络计算。

在一些实施例中,存储单元存储通用运算的数据和指令;控制单元控制存储单元和通用运算单元执行任务队列中的任务;所述运算单元包括通用运算单元,根据所述存储单元存储的指令对数据执行通用运算。

在一些实施例中,数据缓存缓存数据、中间结果和运算结果;指令缓存缓存指令;dma作为存储单元与数据缓存、指令缓存之间的数据接口。

在一些实施例中,使用输入神经元缓存缓存输入神经元;使用权值缓存缓存权值;使用输出神经元缓存缓存输出神经元。

在一些实施例中,所述神经网络运算包括乘法运算、和/或加法运算、和/或激活运算、和/或池化运算、和/或卷积运算、和/或全链接运算、和/或向量内积运算、和/或非线性运算。

在一些实施例中,所述乘法运算将第一输入数据和第二输入数据相乘得到输出。

(三)有益效果

从上述技术方案可以看出,本公开具有以下有益效果:

(1)外部装置可以随时访问自启动任务队列装置的任务配置信息存储单元来查看当前的任务状态,实现了对当前任务执行状态的有效监控。

(2)外部装置可以随时修改自启动任务队列装置的任务配置信息存储单元,实现了对任务的调度。

附图说明

图1为本公开一实施例数据处理装置的结构示意图。

图2为本公开一实施例数据处理方法的流程图。

图3为本公开另一实施例数据处理装置的结构示意图。

图4为本公开另一实施例数据处理方法的流程图。

图5为本公开另一实施例数据处理装置的结构示意图。

图6为本公开另一实施例数据处理方法的流程图。

图7和图8为本公开另一实施例数据处理装置的结构示意图。

图9为本公开另一实施例数据处理装置的结构示意图。

图10为本公开一实施例数据处理装置的数据缓存的结构示意图。

图11为本公开另一实施例数据处理方法的流程图。

具体实施方式

本公开提供了一种数据处理装置,当有任务信息被配置且输入到其中时,其与外部装置比如处理器核完成交互,自动实现处理器核的任务的执行。通过使用该数据处理装置,处理器核的多个任务及其配置信息可以预先被设置,并且在任意时刻包括任务队列执行过程中和任务结束时刻,可以动态地调整所有任务的配置信息,完成所有任务的自动执行,达到自启动的目的。

本公开一实施例提供了一种数据处理装置,如图1所示,该数据处理装置包括自启动任务队列装置,如图1所示,自启动任务队列装置包括任务配置信息存储单元和任务队列配置单元,其中,

任务配置信息存储单元用于存储任务的配置信息,该配置信息是预设设置的,包括但不限于:任务的开始标志、结束标志、任务的优先级信息、任务的启动方式等。

任务队列配置单元用于根据任务配置信息存储单元的配置信息对任务队列进行配置,完成动态地任务配置和对外通信。

自启动任务队列装置用于配合外部装置工作,接收外部装置发来的配置信息,对任务队列进行配置,外部装置根据配置后的任务队列执行各个任务,期间自启动任务队列装置与外部装置交互通信。

本公开另一实施例提供了一种数据处理方法,参见图2,显示了自启动任务队列装置的工作流程,包括:

步骤s201:外部装置将启动参数发送给自启动任务队列装置。

启动参数存储至自启动任务队列装置的任务配置信息存储单元中,启动参数包括启动信息和启动命令,启动信息可以是上述配置信息。该配置信息是预设设置的,通过该步骤将预先设置的配置信息发送给自启动任务队列装置。

步骤s202:任务队列配置单元根据启动参数配置任务队列,并按照配置信息中的优先级信息将任务依次发送至外部装置。

在该步骤中,任务队列配置单元通过如下方式将任务依次发送至外部装置:根据任务的优先级信息,将目前待执行的优先级最高的任务发送至外部装置。

步骤s203:外部装置执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号。

如图2所示,可选的,数据处理方法还可以包括:

步骤s204:任务配置信息存储单元每接收到一个第一结束信号向外部装置发送一中断信号,外部装置处理中断信号并发送第二结束信号给任务配置信息存储单元,标记对应任务为结束。

针对任务队列中的每一任务执行步骤s203和s204,直到任务队列中的任务全部完成。

其中,任务配置信息存储单元收到第一结束信号后,可以修改其中存储的任务配置信息,以实现对任务的调度。

本公开另一实施例的数据处理装置,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

本实施例的任务配置信息存储单元包括:多个存储单元。

所述的任务配置信息还包括:存储单元的优先级信息、存储单元内部的每个任务的优先级信息、以及每个任务的基本信息等。任务队列配置单元根据任务配置信息存储单元的上述配置信息对任务队列进行配置,按照存储单元的优先级信息依次将各个存储单元中的任务队列发送至外部装置,同一存储单元中的任务队列的多个任务按照存储单元内部的每个任务的优先级信息发送至外部装置。外部装置执行任务队列中的各个任务。

如图3所示,该任务配置信息存储单元包括:第一存储单元和第二存储单元。第一存储单元存储第一任务队列,第二存储单元存储第二任务队列。此时所述配置信息包括:第一、第二存储单元的优先级信息,第一、第二存储单元内部的每个任务的优先级信息、以及每个任务的基本信息等。举例来说,当第一存储单元的优先级高于第二存储单元的优先级时,任务队列配置单元先将第一存储单元存储的任务队列发送至外部装置,再将第二存储单元存储的任务队列发送至外部装置。在将第一、第二存储单元的任务队列发送至外部装置时,先将各存储单元内待执行的优先级最高的任务发送至外部装置。

本公开另一实施例的数据处理方法,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

如图4所示,该数据处理方法包括:

步骤s401:外部装置将启动参数发送给自启动任务队列装置。

启动参数存储至自启动任务队列装置的任务配置信息存储单元中,启动参数包括启动信息和启动命令,启动信息可以是上述配置信息。该配置信息是预设设置的,通过该步骤将预先设置的配置信息发送给自启动任务队列装置。

步骤s402:任务队列配置单元根据启动参数配置任务队列,并按照配置信息中的优先级信息将任务依次发送至外部装置。

在该步骤中,任务队列配置单元通过如下方式将任务依次发送至外部装置:根据存储单元的优先级信息,将优先级最高的任务队列发送至外部装置;根据存储单元内部的每个任务的优先级信息,将存储单元的任务队列中目前待执行的优先级最高的任务发送至外部装置。

步骤s403:外部装置执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号。

如图4所示,可选的,数据处理方法还可以包括:

步骤s404:任务配置信息存储单元每接收到一个第一结束信号向外部装置发送一中断信号,外部装置处理中断信号并发送第二结束信号给任务配置信息存储单元,标记对应任务为结束。

本公开另一实施例的数据处理装置,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

如图5所示,该数据处理装置还包括处理器核,处理器核作为外部装置与自启动任务队列装置配合工作。

输入自启动任务队列装置的配置信息包括任务的启动模式和优先级等。处理器核执行的任务有多种,根据任务本身的性质和应用场景可以将任务分为不同的任务队列,例如高优先级队列和低优先级队列。

本公开另一实施例的数据处理方法,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

参见图6,数据处理方法包括:

步骤s601:处理器核将任务队列的配置信息发送给自启动任务队列装置。

步骤s602:任务队列配置单元根据配置信息配置任务队列,并按照配置信息中的优先级信息将任务依次发送至处理器核。

在该步骤中,当第一存储单元的优先级高于第二存储单元的优先级时。先将第一存储单元存储的高优先级任务队列发送至处理器核,再将第二存储单元存储的低优先级任务队列发送至处理器核。

步骤s603:处理器核执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号,完成任务队列配置。

如图6所示,可选的,数据处理方法还可以包括:

步骤s604:任务配置信息存储单元每接收到一个第一结束信号向处理器核发送一中断信号,处理器核处理中断信号并发送第二结束信号给任务配置信息存储单元,标记对应任务为结束。

在本公开中,外部装置还可以是多个,例如多个处理器核,处理器核可以是各种运算模块、控制模块等。

本公开另一实施例的数据处理装置,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

该数据处理装置的处理器核在执行任务队列中的任务时,处理器核可以动态地修改所述配置信息,包括:任务的优先级信息、存储单元的优先级信息、存储单元内部的每个任务的优先级信息等,从而可在任务执行过程中动态修改尚未发送至处理器核的任务的优先级信息,以达到动态调度任务的目的。

本公开另一实施例的数据处理方法,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

本实施例的数据处理方法包括图6所示数据处理方法的步骤,并且还包括:在步骤s601到s604之间的任意时刻,该任意时刻可以是任务执行中和任务执行结束,处理器核都可以动态地修改尚未发送至处理器核的任务的配置信息,以实现改变后续任务的目的。

本公开另一实施例的数据处理装置,为了达到简要说明的目的,上述实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。

参见图7和图8,该数据处理装置的处理器核包括一控制模块和一神经网络运算模块。神经网络运算模块包括控制单元、神经网络运算单元和存储单元。

存储单元,用于存储神经网络运算的数据和指令,其中所述数据包括输入神经元、输出神经元、权值、评分、错误模式判断结果等,所述指令包括神经网络运算中加法、乘法、激活等各种运算指令。

控制单元用于控制存储单元和神经网络运算单元的动作。

神经运算单元,在控制单元的控制下,根据所述存储单元中存储的指令对所述数据执行神经网络计算。

控制模块用于提供任务的配置信息。

控制模块和神经网络运算模块各相当于一个处理器核。控制模块将任务队列的配置信息发送给自启动任务队列装置。自启动队列装置接收到配置信息后,任务队列配置单元根据配置信息配置任务队列,将各个任务队列存储至其各个存储单元,并将各个任务队列发送至神经网络运算模块的控制单元。控制单元会监测自启动任务队列装置的配置,将存储单元的神经网络运算指令配置到正确的位置,即将存储单元中外部存储模块的指令输入到指令存储模块中,如图8所示,控制单元控制神经网络运算单元和存储单元根据配置信息执行各个任务,任务执行的过程需要神经网络运算单元和存储单元协作完成。

在神经网络运算单元和存储单元执行任务的过程中,控制模块可以修改自启动任务队列装置中的任务配置信息,以实现改变后续任务的目的。控制单元每执行完一个任务向任务配置信息存储单元发送一个第一结束信号,完成任务队列配置。自启动任务队列装置每接收控制单元的一个第一结束信号后修改内部的配置信息,并发送中断信号到控制单元,控制单元处理中断信号后发送第二结束信号到自启动任务队列装置。

通常将存储单元的神经网络运算指令配置到正确位置的操作需要控制单元启动后发送取指指令来完成,即控制单元通常包括取指指令缓存模块,而在本公开中控制单元并不需要发送取指指令,也即控制单元可以去除取指指令缓存模块,装置的结构得以精简,成本降低并节约资源。

在本实施例的数据处理装置中,参见图9,还包括数据缓存、指令缓存和dma(directmemoryaccess,直接内存存取),存储单元经dma连接指令缓存和数据缓存,指令缓存连接控制单元,数据缓存连接运算单元。

存储单元接收输入数据,将其中的神经网络运算数据和指令通过dma分别传输至数据缓存和指令缓存。

数据缓存,用于缓存神经网络运算数据。更具体的,如图10所示,数据缓存包括输入神经元缓存,权值缓存、输出神经元缓存,分别用于缓存dma发送的输入神经元、权值、输出神经元。数据缓存进一步还可以包括评分缓存和错误模式判断结果缓存等,用于缓存评分和错误模式判断结果,并将上述数据发送至运算单元。

指令缓存,用于缓存神经网络运算指令,神经网络运算的加法、乘法、激活等指令经dma存储至指令缓存。

控制单元,用于从指令缓存中读取神经网络运算指令,并将其译码成运算单元可执行的指令并发送至运算单元。

神经网络运算单元,用于根据可执行指令对神经网络运算数据执行相应的神经网络计算,运算过程中的中间结果以及最终结果可缓存至数据缓存,并经dma存储至存储单元,作为输出数据输出。

参见图11,显示了上述实施例的自启动任务队列装置的工作流程,作为本公开另一实施例的数据处理方法,包括:

步骤s1101:控制模块将任务队列的配置信息发送给自启动任务队列装置。

步骤s1102:任务队列配置单元根据配置信息配置任务队列,并按照配置信息中的优先级信息将任务依次发送至神经网络运算模块。

自启动队列装置接收到配置信息后,任务队列配置单元根据配置信息配置任务队列,将各个任务队列存储至其各个存储单元,并将各个任务队列发送至神经网络运算模块的控制单元。

步骤s1103:控制单元监测自启动任务队列装置的配置,控制神经网络运算单元和存储单元根据配置信息执行任务队列中的任务,每执行完一个任务向任务配置信息存储单元发送一个第一结束信号,完成任务队列配置。

如图11所示,可选的,还可以包括:

步骤s1104:自启动任务队列装置每接收到控制单元的一个第一结束信号后发送中断信到控制单元,控制单元处理中断信号后发送第二结束信号到自启动任务队列装置。

本实施例的数据处理方法还包括:在步骤s1101到s1104之间的任意时刻,该任意时刻可以是任务执行中和任务执行结束,控制模块都可以动态地修改尚未执行的任务的配置信息,以实现改变后续任务的目的。

步骤s1103中的控制单元控制神经网络运算单元和存储单元根据配置信息执行各个任务可以包括:

控制单元根据配置信息从存储单元读取神经网络运算指令,神经网络运算指令经dma存储至指令缓存;

控制单元从指令缓存中读取神经网络运算指令,并将其译码成运算单元可执行的指令并发送至运算单元;

神经网络运算单元从数据缓存读取神经网络运算数据,根据可执行指令对神经网络运算数据执行相应的神经网络计算,将运算结果存储至数据缓存和/或存储单元。

在本实施例中,神经网络运算包括输入神经元与权值向量相乘、加偏置后激活得到输出神经元。在一个示例中,神经网络运算单元包括一个或多个运算部件,运算部件例如但不仅限于是一个或多个乘法器、个或多个加法器和一个或多个激活函数单元。

乘法器将输入数据1(in1)和输入数据2(in2)相乘得到输出(out),该过程为:out=in1*in2。

优选的,神经网络运算单元包括多个加法器,多个加法器组成加法树。加法树将输入数据(in1)通过逐级相加得到输出数据(out),其中in1是一个长度为n的向量,n大于1,该过程为:out=in1[1]+in1[2]+...+in1[n];和/或将输入数据(in1)累加之后和输入数据(in2)相加得到输出数据(out),该过程为:out=in1[1]+in1[2]+...+in1[n]+in2,或者将输入数据(in1)和输入数据(in2)相加得到输出数据(out),该过程为:out=in1+in2。

激活函数单元将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),该过程为:out=active(in),激活函数(active)例如但不限于sigmoid、tanh、relu、softmax等。除了做激活操作,激活函数单元还可以实现其他的非线性运算,可将输入数据(in)通过运算(f)得到输出数据(out),该过程为:out=f(in)。运算部件还可以是池化单元,池化单元将输入数据(int)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化、最大值池化、中值池化,输入数据in是和输出数据out相关的一个池化核中的数据。

相应地,神经网络运算包括但不仅限于:乘法运算、加法运算和激活函数运算。乘法运算是将所述输入数据1和输入数据2相乘,得到相乘之后的数据;和/或加法运算用于将输入数据1通过加法树逐级相加,或者将输入数据(in1)累加之后和输入数据(in2)相加,或者将输入数据1和输入数据2相加得到输出数据;和/或激活函数运算对输入数据通过激活函数(active)运算得到输出数据;和/或池化运算,out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化、最大值池化、中值池化,输入数据in是和输出数据out相关的一个池化核中的数据。以上几种运算可以自由选择一或多种进行不同顺序的组合,从而实现各种不同功能的运算。

在另一个示例中,神经网络运算单元包括但不仅限于:多个pe和一或多个alu。每个pe包含一个乘法器、一个加法器、一个比较器和一个寄存器/寄存器组。每个pe能够接受来自各个方向的pe传来的数据,例如接受来自水平方向(如右边)和/或垂直方向(如下面)的pe传来的数据,同时能够向相反的水平方向(如左边)和/或相反的垂直方向(如上面)的pe传递数据;和/或每个pe能够接受来自对角线方向的pe传来的数据,同时能够向相反的水平方向的对角线的pe传递数据。每个alu可以完成激活操作、乘法、加法等基本运算和其他非线性运算。

相应地,所述神经网络运算单元执行的运算包括pe执行的运算和alu执行的运算。pe将输入数据1和输入数据2相乘,与寄存器内保存的数据或其他pe中传来的数据进行相加,写回寄存器或写回存储部分中,同时将某个输λ数据或者运算结果传递给其他pe中;和/或pe将输入数据1和输入数据2或寄存器内保存的数据进行累加或比较。alu完成激活运算或非线性运算。

当神经网络运算单元处理卷积、全链接等运算时,对每个pe而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2;将寄存器中的数据取出(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data;out2可以被写回寄存器/寄存器组或写回存储部分。同时,可以将某个输入数据(in1/in2)向水平方向或竖直方向传递。

当神经网络运算单元处理向量内积时,对每个pe而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2;将从其他pe传入来的数据(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data;而后可以将运算结果(out2)向水平方向或竖直方向传递。

当神经网络运算单元处理池化运算时,对每个pe而言,还可以跳过乘法部分,直接利用加法器或比较器完成池化运算,out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据,中间产生的临时数据可以保存在寄存器中。

alu用于完成激活操作、乘法、加法等基本运算或非线性运算。激活操作即为将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等;其他的非线性运算,即可将将输入数据(in)通过运算(f)得到输出数据(out),过程为:out=f(in)。

以上仅是示例性的说明,但本发明并不限于此,上述神经网络运算单元可以用非神经网络运算单元代替,非神经网络运算单元例如是通用运算单元,通用运算具有相应的通用运算指令和数据,其运算过程与神经网络运算类似,通用运算可以是例如标量算数运算、标量逻辑运算等,通用运算单元例如但不仅限于包括一个或多个乘法器、一个或多个加法器,执行例如加法、乘法等基本运算。

本公开另一实施例提供了一种芯片,其包括了上述实施例的数据处理装置。

本公开另一实施例提供了一种芯片封装结构,其包括了上述实施例的芯片。

本公开另一实施例提供了一种板卡,其包括了上述实施例的芯片封装结构。

本公开另一实施例提供了一种电子装置,其包括了上述实施例的板卡。该电子装置包括、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。

所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

在本公开中,所有的单元和模块都可以是硬件结构,硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管、忆阻器、dna计算机。

至此,已经结合附图对本公开实施例进行了详细描述。依据以上描述,本领域技术人员应当对本公开有了清楚的认识。

需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件的定义并不仅限于实施例中提到的各种具体结构、形状,本领域普通技术人员可对其进行简单地更改或替换;本文可提供包含特定值的参数的示范,但这些参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应值上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1