首页 / 一种数据处理系统

一种数据处理系统有效专利 实用

技术领域

[0001] 本实用新型涉及芯片技术领域,尤其涉及一种数据处理系统。

相关背景技术

[0002] 科技的不断进步,使得芯片技术得到了迅速发展,伴随着集成电路工艺的不断提高,中央处理器(Central processing unit,CPU)在逻辑结构、运行效率以及功能外延上均取得了巨大发展。
[0003] 作为计算机系统的运算和控制核心,CPU是信息处理和程序运行的最终执行单元,可以解释计算机指令以及处理计算机软件中的数据,但CPU对于复杂数学运算的处理能力较低,现有技术中通常为CPU配备协处理器,用于处理复杂的数学运算。
[0004] 然而,现有的协处理器结构复杂,且只能处理单一类型的数学运算,同时,协处理器也只能与特定类型的CPU匹配,不具备普遍适用性。实用新型内容
[0005] 本实用新型提供了一种数据处理系统,包括:至少一个中央处理器和人工智能加速器;
[0006] 所述中央处理器基于RISC-V架构,所述中央处理器连接所述人工智能加速器,所述中央处理器与所述人工智能加速器通过RISC-V指令集和中断通信;
[0007] 所述中央处理器用于向所述人工智能加速器传输RISC-V指令,以使所述人工智能加速器执行目标数据运算;
[0008] 所述人工智能加速器用于根据所述中央处理器传输的RISC-V指令,执行目标数据运算,并向所述中央处理器传输中断通知。
[0009] 所述目标数据运算包括基于神经网络模型的数值计算。
[0010] 所述神经网络模型包括基于图像的神经网络模型和/或基于语音的神经网络模型。
[0011] 所述人工智能加速器包括读操作单元、权重单元、至少一个运算单元、写操作单元和指令调度单元;
[0012] 所述读操作单元,用于获取神经网络模型的输入数据,并将所述输入数据传输给所述运算单元;
[0013] 所述权重单元,用于获取神经网络模型的权重值,并将所述权重值传输给所述运算单元;
[0014] 至少一个所述运算单元,连接所述读操作单元、所述权重单元和所述写操作单元,用于根据所述输入数据和所述权重值,执行数值运算;
[0015] 所述写操作单元,用于获取所述运算单元的数据运算结果,并将所述数据运算结果发送给目标存储器;
[0016] 所述指令调度单元,连接所述读操作单元、所述权重单元、至少一个所述运算单元、所述写操作单元和所述中央处理器,用于根据所述中央处理器传输的RISC-V指令,控制匹配的运算单元执行数值运算,并在获取到运算结果后,向所述中央处理器发送中断。
[0017] 所述运算单元包括卷积运算子单元、线性整流函数运算子单元、Sigmoid函数运算子单元、双曲正切函数运算子单元、池化运算子单元、残差运算子单元和/或分批次标准化运算子单元。
[0018] 所述运算单元包括数据缓存子单元;
[0019] 所述数据缓存子单元用于存储所述输入数据和所述权重值。
[0020] 所述读操作单元包括第一令牌产生器,所述第一令牌产生器用于动态生成第一令牌信息,所述第一令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述读操作单元导通的第一运算单元;
[0021] 所述权重单元包括第二令牌产生器,所述第二令牌产生器用于动态生成第二令牌信息,所述第二令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述权重单元导通的第二运算单元;
[0022] 所述写操作单元包括第三令牌产生器,所述第三令牌产生器用于动态生成第三令牌信息,所述第三令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述写操作单元导通的第三运算单元。
[0023] 本实用新型中的AI加速器结构简单,可以实现多种类型的数学运算,解决了中央处理器计算能力不足的问题,同时,中央处理器与AI加速器通过RISC-V指令集和中断进行通信,使得数据处理系统可以根据不同的应用需求使用不同内核的中央处理器,极大地扩展了AI加速器的适配范围。

具体实施方式

[0028] 下面结合附图和实施例对本实用新型作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本实用新型,而非对本实用新型的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本实用新型相关的部分而非全部结构。
[0029] 实施例一
[0030] 图1A为本实用新型提供的一种数据处理系统的结构框图,包括:至少一个中央处理器100和人工智能加速器200;所述中央处理器100基于RISC-V架构,所述中央处理器100连接所述人工智能加速器200,所述中央处理器100与所述人工智能加速器通过RISC-V指令集和中断通信;所述中央处理器100用于向所述人工智能加速器200传输RISC-V指令,以使所述人工智能加速器200执行目标数据运算。
[0031] RISC-V是基于精简指令集(RISC)原则的第五代开源指令集架构(ISA),具有开源、简捷和易扩展的特点,相比于基于复杂指令集(CISC)架构的CPU,基于RISC-V架构的CPU可以将一条指令分成多个进程或线程,交由多个处理器同时执行,处理速度和处理效率均优于基于复杂指令集(CISC)架构的CPU。RISC-V指令集包括基本指令集和扩展指令集,在本实用新型中,中央处理器100通过RISC-V扩展指令集与人工智能(Artificial Intelligence,AI)加速器模块200通信,用以扩展中央处理器100的数据运算能力;由于中央处理器100与AI加速器200通过标准的RISC-V扩展指令集通信,任何基于RISC-V指令集的CPU均适用,因此,中央处理器100的实现方式灵活,可以根据不同的应用需求使用不同内核的CPU,极大的扩展了AI加速器200的适配范围。
[0032] 人工智能加速器,也即AI芯片,是用于处理人工智能应用中的大量计算任务的装置;中央处理器100本身具备一定的数据处理能力,但是对于特定的处理任务,例如,图像处理和语音处理,中央处理器100的执行效率较低、执行效果较差,因此,在本实用新型中,所述人工智能加速器200用于根据所述中央处理器100传输的RISC-V指令,执行目标数据运算,并向所述中央处理器100传输中断通知。具体的,AI加速器200作为中央处理器100的协处理器(coprocessor),执行数据计算,而其它非计算任务,例如,控制对应的终端设备的运行,仍由中央处理器100负责;在本实用新型中,对中央处理器100控制的终端设备的类型不作具体限定。
[0033] 可选的,所述目标数据运算包括基于神经网络模型的数值计算;神经网络,即人工神经网络(Artificial Neural Networks,ANNs),是通过模仿动物神经网络行为特征,进行分布式并行信息处理的算法模型,通过调整内部节点之间的互联关系进行数据处理;特别的,所述神经网络模型包括基于图像的神经网络模型和/或基于语音的神经网络模型;通过AI加速器200,利用基于图像的神经网络模型和/或基于语音的神经网络模型,执行图像和/或语音的数据处理操作,有效的弥补了中央处理器100在图像和/或语音处理能力上的不足。
[0034] 可选的,如图1B所示,所述人工智能加速器200包括读操作单元201、权重单元202、至少一个运算单元203、写操作单元204和指令调度单元205;
[0035] 所述读操作单元201用于获取神经网络模型的输入数据,并将所述输入数据传输给所述运算单元203;神经网络模型的输入数据,也即神经网络模型的待处理数据,具体的,读操作单元201通过AXI(Advanced eXtensible Interface)4协议的系统总线从外部装置,例如,双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,简称DDR)和静态随机存取存储器(Static Random-Access Memory,简称SRAM)中读取待处理数据,并将获取到的待处理数据传输给运算单元203,以此为运算单元203提供输入数据。
[0036] 所述权重单元202,用于获取所述神经网络模型的权重值,并将所述权重值传输给所述运算单元203;权重值是神经网络模型中各输入数据的权重数据,输入数据与权重值的乘积即为输入数据的变化值;具体的,权重单元202,通过AXI4协议的系统总线从存储有权重值的DDR或Flash(闪存芯片)中顺序读取各中间数据的权重值,并将该权重值传输给运算单元203;特别的,在本实用新型中,读操作单元201获取的输入数据和权重单元202获取的权重值来源于不同的DDR中。
[0037] 至少一个所述运算单元203,连接所述读操作单元201、所述权重单元202和所述写操作单元204,用于根据所述输入数据和所述权重值,执行数值运算;具体的,运算单元203根据读操作单元201获取的输入数据和权重单元202获取的权重值,执行数值计算,并将计算结果通过写操作单元203发送给目标存储器。不同的运算单元203可以具备不同的运算子单元,以执行不同的运算任务,可选的,所述运算单元包括卷积运算子单元、线性整流函数运算子单元、Sigmoid函数运算子单元、双曲正切函数运算子单元、池化运算子单元、残差运算子单元和/或分批次标准化运算子单元;其中,卷积(Convolution)是两个函数经过翻转和平移的重叠部分函数值的乘积对重叠长度的积分,是一种加权后的滑动平均运算,卷积运算子单元用于与卷积相关的数值计算;线性整流函数(Rectified Linear Unit,ReLU),即修正线性单元,是神经网络中的一种激活函数(activation function),包括斜坡函数等非线性函数,定义了神经元在线性变换下的非线性输出结果,线性整流函数运算子单元用于与线性整流函数相关的数值计算;Sigmoid函数是一种S型函数(即S型生长曲线),作为神经网络中的一种激活函数,其具有单调递增及反函数单调递增的特性,用于隐层神经元的输出,Sigmoid函数运算子单元用于与Sigmoid函数相关的数值计算;双曲正切(Tanh)函数,用于线性微分方程的求解,例如定义悬链线和拉普拉斯方程,双曲正切函数运算子单元用于与双曲正切函数相关的数值计算;池化(pooling)是在保证特征向量的特性(例如,旋转、平移和伸缩等)不变的前提下,减少特征向量的数量,以降低运算量的过程,池化运算子单元用于与池化相关的数值计算;残差是实际数值与估计值之间的差,用于确定数学模型的合理性和数据的可靠性,残差运算子单元用于与残差相关的数值计算;分批次标准化(Batch Normalization),是通过规范化计算,把神经网络模型中每层神经网络激活值的分布调整为均值为0且方差为1的标准正态分布,分批次标准化运算子单元用于与分批次标准化相关的数值计算。特别的,所述运算单元203还包括数据缓存子单元;所述数据缓存子单元用于存储所述输入数据和所述权重值;运算单元203在进行数值计算时,重复使用输入数据和权重值,因此,每个运算单元203中均包括数据缓存子单元,用于存储神经网络模型的输入数据和权重值。
[0038] 所述写操作单元204用于获取所述运算单元203的数据运算结果,并将所述数据运算结果发送给目标存储器;具体的,写操作单元204通过AXI4协议的系统总线将数据运算结果发送给目标存储器,其中,目标存储器可以是DDR或SRAM,也可以是其它类型的存储器,本实用新型对此不作具体限定。
[0039] 所述指令调度单元205,连接所述读操作单元201、所述权重单元202、至少一个所述运算单元203、所述写操作单元204和所述中央处理器100,用于根据所述中央处理器100传输的RISC-V指令,控制匹配的运算单元201执行数值运算,并在获取到运算结果后,向所述中央处理器100发送中断,以通知中央处理器100已完成目标数据运算。指令调度单元205是AI加速器200的控制中心,根据获取到的RISC-V指令,确定对应的目标运算单元203,并控制目标运算单元203与读操作单元201和权重单元202导通,以获取神经网络模型的输入数据和权重值,并在目标运算单元203获取到计算结果时,控制目标运算单元203与写操作单元204导通,以将计算结果通过写操作单元204输出,同时,以中断的形式向中央处理器100发送中断,以通知中央处理器100已完成目标数据运算。
[0040] 可选的,所述读操作单元包括第一令牌产生器,所述第一令牌产生器用于动态生成第一令牌信息,所述第一令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述读操作单元导通的第一运算单元;所述权重单元包括第二令牌产生器,所述第二令牌产生器用于动态生成第二令牌信息,所述第二令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述权重单元导通的第二运算单元;所述写操作单元包括第三令牌产生器,所述第三令牌产生器用于动态生成第三令牌信息,所述第三令牌信息用于与至少一个所述运算单元的令牌信息进行比对,以确定与所述写操作单元导通的第三运算单元。各运算单元203都有对应且固定的令牌信息(Token),不同的运算单元203令牌信息也是不同的,只有当不同的运算单元203之间存在共享数据时,那么存在共享数据的各运算单元203才会具备同样的Token。以读操作单元201中的第一令牌产生器为例,在指令调度单元205确定目标运算单元203后,会通知读操作单元201,使第一令牌产生器产生的第一令牌信息与目标运算单元203的令牌信息相匹配,使得目标运算单元203与读操作单元201导通,而其它运算单元203与读操作单元201不导通。
[0041] 本实用新型中的AI加速器结构简单,可以实现多种类型的数学运算,解决了中央处理器计算能力不足的问题,同时,中央处理器与AI加速器通过RISC-V指令集和中断进行通信,使得数据处理系统可以根据不同的应用需求使用不同内核的中央处理器,极大地扩展了AI加速器的适配范围。
[0042] 实施例二
[0043] 图2为本实用新型提供的一种数据处理方法的流程图,可适用于通过AI加速器进行数据运算的情况,该方法可以由本实用新型中的数据处理装置来执行,该装置可以通过软件和/或硬件的方式实现,并可以集成在实施例一所述的数据处理系统中,该方法具体包括如下步骤:
[0044] S210、指令调度单元根据获取到的由中央处理器传输的RISC-V指令,确定匹配的目标运算单元。
[0045] S220、指令调度单元控制读操作单元和权重单元分别与所述目标运算单元导通。
[0046] S230、目标运算单元根据所述读操作单元传输的神经网络模型的输入数据和所述权重单元传输的神经网络模型的权重值,获取数据运算结果。
[0047] S240、目标运算单元通过写操作单元,将所述数据运算结果发送给目标存储器,并向指令调度单元传输运算结束信号。
[0048] S250、指令调度单元在获取到所述运算结束信号后,向所述中央处理器发送中断,以通知所述中央处理器数据处理完毕。
[0049] 本实用新型的技术方案,在获取到中央处理器传输的RISC-V指令后,AI加速器控制目标运算单元根据读操作单元传输的输入数据和权重单元传输的权重值,获取数据运算结果,并以中断的形式通知中央处理器数据处理完毕,解决了中央处理器计算能力不足的问题,同时,中央处理器与AI加速器通过RISC-V指令集和中断进行通信,可以根据不同的应用需求使用不同内核的中央处理器,极大地扩展了AI加速器的适配范围。
[0050] 实施例三
[0051] 图3是本实用新型三所提供的数据处理装置,该装置具体包括:指令获取模块310、导通执行模块320、运算结果获取模块330、运算结果发送模块340和中断发送模块350。
[0052] 指令获取模块310,用于根据获取到的由中央处理器传输的RISC-V指令,确定匹配的目标运算单元;
[0053] 导通执行模块320,用于控制读操作单元和权重单元分别与所述目标运算单元导通;
[0054] 运算结果获取模块330,用于目标运算单元根据所述读操作单元传输的神经网络模型的输入数据和所述权重单元传输的神经网络模型的权重值,获取数据运算结果;
[0055] 运算结果发送模块340,用于通过写操作单元,将所述数据运算结果发送给目标存储器,并向指令调度单元传输运算结束信号;
[0056] 中断发送模块350,用于在获取到所述运算结束信号后,向所述中央处理器发送中断,以通知所述中央处理器数据处理完毕。
[0057] 本实用新型的技术方案,在获取到中央处理器传输的RISC-V指令后,AI加速器控制目标运算单元根据读操作单元传输的输入数据和权重单元传输的权重值,获取数据运算结果,并以中断的形式通知中央处理器数据处理完毕,解决了中央处理器计算能力不足的问题,同时,中央处理器与AI加速器通过RISC-V指令集和中断进行通信,可以根据不同的应用需求使用不同内核的中央处理器,极大地扩展了AI加速器的适配范围。
[0058] 上述装置可执行本实用新型任意实施例所提供的数据处理方法,具备执行方法相应的功能单元和有益效果。未在本实施例中详尽描述的技术细节,可参见本实用新型任意实施例提供的方法。
[0059] 实施例四
[0060] 本实用新型四还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本实用新型任意实施例所述的数据处理方法;该方法包括:
[0061] 指令调度单元根据获取到的由中央处理器传输的RISC-V指令,确定匹配的目标运算单元;
[0062] 指令调度单元控制读操作单元和权重单元分别与所述目标运算单元导通;
[0063] 目标运算单元根据所述读操作单元传输的神经网络模型的输入数据和所述权重单元传输的神经网络模型的权重值,获取数据运算结果;
[0064] 目标运算单元通过写操作单元,将所述数据运算结果发送给目标存储器,并向指令调度单元传输运算结束信号;
[0065] 指令调度单元在获取到所述运算结束信号后,向所述中央处理器发送中断,以通知所述中央处理器数据处理完毕。
[0066] 本实用新型的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0067] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0068] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0069] 可以以一种或多种程序设计语言或其组合来编写用于执行本实用新型操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0070] 注意,上述仅为本实用新型的较佳实施例及所运用技术原理。本领域技术人员会理解,本实用新型不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本实用新型的保护范围。因此,虽然通过以上实施例对本实用新型进行了较为详细的说明,但是本实用新型不仅仅限于以上实施例,在不脱离本实用新型构思的情况下,还可以包括更多其他等效实施例,而本实用新型的范围由所附的权利要求范围决定。

当前第1页 第1页 第2页 第3页
相关技术
数据处理相关技术
程雷发明人的其他相关专利技术