神经网络微处理器与宏指令处理方法技术

技术编号:18713392 阅读:31 留言:0更新日期:2018-08-21 23:03
本发明专利技术提供一种神经网络微处理器与宏指令处理方法。该神经网络微处理器包括一映射表、一微码存储器以及一微码解码有限状态机。该映射表将一宏指令映射至该微码存储器上一微码存储器地址。根据该微码存储器上该微码存储器地址所指示的内容,该微码解码有限状态机解码产生多个微指令。上述多个微指令包括至少一微指令循环。上述微指令循环反复操作一数据路径以完成该宏指令。

Neural network microprocessor and macroinstruction processing method

The invention provides a neural network microprocessor and a macroinstruction processing method. The neural network microprocessor consists of a mapping table, a microcode memory and a microcode decoding finite state machine. The mapping table maps a macro instruction to a microcode memory address on the microcode memory. According to the contents indicated by the microcode memory address on the microcode memory, the microcode decoding finite state machine decoding generates a plurality of microcode instructions. The above microinstructions include at least one microinstruction cycle. The above microinstructions loop repeatedly to operate a data path to complete the macroinstruction.

【技术实现步骤摘要】
神经网络微处理器与宏指令处理方法
本专利技术涉及处理器,特别涉及实现类神经网络算法的神经网络处理器或加速器。
技术介绍
人工智能技术常使用类神经网络建立机器学习架构。类神经网络涉及复杂且大量的运算,尤其涉及大量的张量(tensor)乘法和乘加运算。如何根据神经网络算法的特殊性,设计适用于神经网络算法的处理器架构,为本
一项重要课题。
技术实现思路
根据本申请一种实施方式所实现的一种神经网络微处理器,包括一映射表、一微码存储器以及一微码解码有限状态机。该映射表将一宏指令映射至该微码存储器上一微码存储器地址。根据该微码存储器上该微码存储器地址所指示的内容,该微码解码有限状态机解码产生多个微指令。上述多个微指令包括至少一微指令循环。上述微指令循环反复操作一数据路径以完成该宏指令。一种实施方式有关于一种神经网络微处理器对宏指令处理方法,包括:经一映射表将一宏指令映射至一微码存储器上一微码存储器地址;以及根据该微码存储器上该微码存储器地址所指示的内容解码产生多个微指令。上述多个微指令包括至少一微指令循环。上述微指令循环反复操作一数据路径以完成该宏指令。根据本申请技术,一条宏指令可以实现颗粒度更高的运算而不受限于数据路径的物理位宽(例如128bit)。该宏指令的操作数可以达到向量或矩阵级别。例如,两个256*256个元素的矩阵(每个元素的大小为16bit)乘法可以直接以一条宏指令实现。神经网络算法编程的复杂度大大简化。当数据路径的硬件设计更改,宏指令也无需改动,更新微码存储器中对应的微指令即可。一种实施方式中,上述微指令循环还包括至少一载入微指令和至少一运算微指令。上述载入微指令用于将上述运算微指令对应的运算元载入。该宏指令可指示张量相加,且上述运算微指令包括一加法微指令。该宏指令可指示张量相乘,且上述运算微指令包括一乘累加微指令及一累加指令。下文特举实施例,并配合所附图示,详细说明本
技术实现思路
。附图说明图1根据本申请一种实施方式图解一微处理器100为类神经网络演算所提供的硬件架构;图2图解该数据位宽调整器108的一种实施方式;图3为流程图,根据本申请一种实施方式说明差值监控模块216以及小数位宽FL调整模块204的运作逻辑;图4为流程图,根据本申请一种实施方式说明判断模块224以及字长WL调整208的运作逻辑;图5根据本申请一种实施方式图解一微指令(μop)的格式;图6为方块图,根据本申请一种实施方式图解一微处理器600,其中聚焦于宏指令转换为微指令的技术;图7根据本申请一种实施方式图解微码解码有限状态机612如何解码一宏指令以及所对应的多个微指令如何执行的流程图;图8特别图解一二阶张量(即矩阵)相乘所对应的多个微指令如何执行;图9图解图5微指令(μop)字段A与B所指示的各32位数据的各种数据位宽(WL);图10根据本申请一种实施方式图解乘加运算的一数据路径1000;图11以字长WL为8位为例,说明乘加运算所获得的数据M以及S;图12A-1、图12A-2、图12B-1以及图12B-2因应字长WL不定,图解32位数据B的各种三位内容bn+1bnbn-1;图13根据本申请一种实施方式图解乘法器1002的硬件架构;且图14根据本申请一种实施方式图解数据路径1000执行的一微指令(可为SIMD微指令)1400。【符号说明】100~处理器;102~数据路径;104~数据位宽(WL,FL)寄存器;106~统计用寄存器;108~数据位宽(WL,FL)调整器;110~数据,提供输入运算元;202~溢位监控模块;204~小数位宽FL调整模块;206~数值分布分析模块;208~字长WL调整模块;212~最高位(MSB)溢位计数器;214~次高位(MSB-1)溢位计数器;216~差值监控模块;222~直方图数据建立模块;224~判断模块;600~微处理器;602~指令抓取模块;604~初解码器;606~队列;608~映射表;610~微码存储器;612~微码解码有限状态机;614~寄存器;1002~乘法器;1004~加法器树;1302、1304~寄存器;1306~移位加法器;1400~微指令;A与B~源操作数/包含一或多个输入运算元的数据;A0…A7、B0…B7~输入运算元;B0_4bit…B7_4bit、B0_8bit…B3_8bit、B0_16bit、B1_16bit、B0_32bit~乘数;B_PP0…B_PP23_2~数据B的三位bn+1bnbn-1取值;C~目的操作数/包含输出运算元的数据;CS~控制信号;Dst~目的操作数;FL~小数位宽;M~数据,载有乘积M0…Mm;M0…Mm~乘积;Mux2、Mux3、Mux5~多工器;OF_1~最高位MSB溢位发生次数;OF_2~次高位MSB-1溢位发生次数;opcode~字段,填写操作码;Operation~有/无符号的乘法或乘加运算;PP0…PP23_2~部分乘积/部分乘积候选;S~数据,乘积M0…Mm加总;signed/unsigned~有/无符号;size1~SIMD位宽;size2~字长WL;S302…S312、S402…S410、S701、S702…S708、S801、S802…S814~步骤;subopcode~字段,填写副操作码;WL~字长;WLFLin~字段,填写该数据路径102使用的数据位宽(WL,FL)来源;以及WLFLout~字段,填写该数据位宽(WL,FL)调整器108所调适出的字长WL以及小数位宽FL暂存目标。具体实施方式以下叙述列举本专利技术的多种实施例。以下叙述介绍本专利技术的基本概念,且并非意图限制本
技术实现思路
。实际专利技术范围应依照权利要求书界定。人工智能为科技领域重大发展,其中常使用类神经网络(neuralnetwork)作为机器学习架构。类神经网络包括多层运算,其中,在每层的运算中,需要进行大量的卷积(convolution)运算,因此乘累加(multiply-accumulate)和乘法(multiply)运算占据了大部分运算量。本专利技术设计的神经网络微处理器架构特别为了适配海量的乘累加和乘法运算进行了硬件优化。此外,其中运算的定点数(fixedpointnumber)包括一整数部分和一小数部分,该整数部分与该小数部分的总位宽为字长(wordwidth,以WL代号),该小数部分的位宽为小数位宽(fractionlength,以FL代号),后面将字长和小数位宽统称为数据位宽(bitlength)。通常处理器的定点数的数据位宽在算法编程完毕后就是固定的,而在本专利技术中,数据位宽,包括小数位宽(fractionlength,以FL代号)以及字长(wordwidth,以WL代号),并不固定。本申请在硬件实现上考虑如此数据位宽(WL,FL)调适需求,以逼近类神经网络演算。图1根据本申请一种实施方式图解一微处理器100为类神经网络演算所提供的硬件架构,包括一数据路径(datapath)102、一数据位宽(WL,FL)寄存器104、一统计用寄存器106、以及一数据位宽(WL,FL)调整器108。数据路径102为算术逻辑运算单元的组合,可用来实现类神经网络常使用的乘加运算或乘法运算,也可以实现最大池化(maxpool)、平均(average)运算。数据路径102所本文档来自技高网
...

【技术保护点】
1.一种神经网络微处理器,包括:映射表以及微码存储器,该映射表将宏指令映射至该微码存储器上一微码存储器地址;以及微码解码有限状态机,其根据该微码存储器上该微码存储器地址所指示的内容解码产生多个微指令,其中上述多个微指令包括至少一微指令循环,上述微指令循环反复操作数据路径以完成该宏指令。

【技术特征摘要】
1.一种神经网络微处理器,包括:映射表以及微码存储器,该映射表将宏指令映射至该微码存储器上一微码存储器地址;以及微码解码有限状态机,其根据该微码存储器上该微码存储器地址所指示的内容解码产生多个微指令,其中上述多个微指令包括至少一微指令循环,上述微指令循环反复操作数据路径以完成该宏指令。2.如权利要求1所述的神经网络微处理器,其中:该微码解码有限状态机还解码出该宏指令的信息;且所解码出的该宏指令的信息还指示该宏指令的至少一来源操作数尺寸及运算元尺寸,供该微码解码有限状态机将该来源操作数划分为多个运算元;且上述运算元尺寸由上述数据路径的数据位宽决定。3.如权利要求2所述的神经网络微处理器,其中:所解码出的该宏指令的信息存储上述来源操作数尺寸及上述运算元尺寸的多个寄存器的地址。4.如权利要求1所述的神经网络微处理器,其中上述微指令循环还包括至少一载入微指令和至少一运算微指令,其中上述载入微指令用于将上述运算微指令对应的运算元载入。5.如权利要求4所述的神经网络微处理器,其中:该宏指令指示张量相加,上述运算微指令包括加法微指令。6.如权利要求4所述的神经网络微处理器,其中:该宏指令指示张量相乘,上述运算微指令包括乘累加微指令及累加指令。7.如权利要求6所述的神经网络微处理器,其中:上述乘累加微指令将数量的上述运算元相乘后再累加,该数量由该数据路径的物理位宽和该运算元尺寸决定。8.如权利要求7所述的神经网络微处理器,其中:该微码解码有限状态机还解码出至少宏指令一张量一维大小;上述微指令还包括至少一累加微指令,该数据路径每次操作,上述累加微指令即指示累加该数据路径的运算结果;且上述微指令还包括至少一输出微指令,该数据路径反复操作至满足该张量一维大小时,上述输出微指令输出上述累加结果为一张量元素。9.如权利要求8所述的神经网络微处理器,其中:该微码解码有限状态机还解码出至少宏指令一张量二维大小;且该数据路径被反复操作至既满足该张量一维大小、又满足该张量二维大小。10.如权利要求1所述的神经网络微处理器,还包括:指令抓取模块以及初解码器,其中:该宏指令是经该指令抓取模...

【专利技术属性】
技术研发人员:陈静李晓阳宋娟丽黄振华王惟林赖瑾
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1