数据位宽可调适的处理器制造技术

技术编号:18399741 阅读:30 留言:0更新日期:2018-07-08 19:55
本发明专利技术提供一种数据位宽可调适的微处理器,该微处理器数据位宽动态可调、且包括一数据位宽寄存器、一数据路径、一统计用寄存器以及一数据位宽调整器。该数据位宽寄存器存储至少一数据位宽。根据该数据位宽寄存器所存储的该数据位宽,该数据路径自该数据路径所接收的数据取得输入运算元并进行运算。该统计用寄存器收集该数据路径的运算结果。根据该统计用寄存器,该数据位宽调整器更新该数据位宽寄存器。

【技术实现步骤摘要】
数据位宽可调适的处理器
本专利技术涉及处理器,特别涉及实现类神经网络算法的神经网络处理器或加速器。
技术介绍
人工智能技术常使用类神经网络建立机器学习架构。类神经网络涉及复杂且大量的运算,尤其涉及大量的张量(tensor)乘法和乘加运算。如何根据神经网络算法的特殊性,设计适用于神经网络算法的处理器架构,为本
一项重要课题。
技术实现思路
根据本申请一种实施方式所实现的一种微处理器,数据位宽动态可调,且包括一数据位宽寄存器、一数据路径、一统计用寄存器以及一数据位宽调整器。该数据位宽寄存器存储至少一数据位宽。根据该数据位宽寄存器所存储的该数据位宽,该数据路径自该数据路径所接收的数据取得输入运算元并进行运算。该统计用寄存器收集该数据路径的运算结果。根据该统计用寄存器,该数据位宽调整器,更新该数据位宽寄存器。本专利技术的上述实施方式的微处理器在硬件实现上考虑类神经网络演算中数据位宽(WL,FL)需动态可变的需求,数据位宽可调适显著加速类神经网络的运算。一种实施方式中,该数据位宽包括一字长。该数据包括一整数部分和一小数部分。该字长为该整数部分与该小数部分的总位宽。一种实施方式中,该数据位宽包括一小数位宽。该数据包括一整数部分和一小数部分。该小数位宽为该小数部分的位宽。下文特举实施例,并配合所附图示,详细说明本
技术实现思路
。附图说明图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所接收的数据110是根据一微指令(μop)自寄存器或是存储器(未显示在图中)获得,内含输入运算元。特别是,数据路径102是根据该数据位宽寄存器104存储的数据位宽(bitlength),包括一字长(wordwidth)WL以及一小数位宽(fractionlength)FL,来对数据110进行运算。以乘加运算为例,数据路径102内的乘法器是以字长WL决定乘加运算微指令的运算元长度,而乘加过程中,小数点位置则是由小数位宽FL决定。一种实施方式中,数据位宽寄存器104是为该数据路径102提供本文档来自技高网
...

【技术保护点】
1.一种数据位宽动态可调的微处理器,包括:数据位宽寄存器,存储至少一数据位宽;数据路径,根据该数据位宽寄存器所存储的该数据位宽自该数据路径所接收的数据取得输入运算元并进行运算;统计用寄存器,收集该数据路径的运算结果;以及数据位宽调整器,根据该统计用寄存器更新该数据位宽寄存器。

【技术特征摘要】
1.一种数据位宽动态可调的微处理器,包括:数据位宽寄存器,存储至少一数据位宽;数据路径,根据该数据位宽寄存器所存储的该数据位宽自该数据路径所接收的数据取得输入运算元并进行运算;统计用寄存器,收集该数据路径的运算结果;以及数据位宽调整器,根据该统计用寄存器更新该数据位宽寄存器。2.如权利要求1所述的微处理器,其中:该数据位宽包括字长,其中该数据包括整数部分和小数部分,该字长为该整数部分与该小数部分的总位宽。3.如权利要求1所述的微处理器,其中:该数据位宽包括小数位宽,其中该数据包括整数部分和小数部分,该小数位宽为该小数部分的位宽。4.如权利要求1所述的微处理器,其中:该数据位宽调整器对该统计用寄存器进行溢位监控,据以调整该数据位宽。5.如权利要求4所述的微处理器,其中:当该统计用寄存器所收集的运算结果发生溢位的次数超过阈值时,该数据位宽调整器减小该数据位宽的小数位宽。6.如权利要求1所述的微处理器,其中:该数据位宽调整器包括最高位溢位计数器、次高位溢位计数器、以及差值监控模块;该最高位溢位计数器计数该统计用寄存器所收集的运算结果发生最高位溢位的次数,得到最高位溢位发生次数;该次高位溢位计数器计数该统计用寄存器所收集的运算结果发生次高位溢位的次数,得到次高位溢位发生次数;该差值监控模块,监控该最高位溢位发生次数以及该次高位溢位发生次数之间的差值,该数据位宽调整器根据该差值调整该数据位宽。7.如权利要求6所述的微处理器,其中:当该最高位溢位发生次数大于该次高位溢位发生次数第一阈值时,该数据位宽调整器减小该数据位宽的小数位宽;且当该次高位溢位发生次数大于该最高位溢位发生次数第二阈值时,该数据位宽调整器增加该小数位宽。8.如权利要求1所述的微处理器,其中:该数据位宽调整器对该统计用寄存器进行数据分布监控,据以调整该数据位宽的字长。9.如权利要求8所述的微处理器,其中:当该统计用寄存器所收集的运算结果的稀疏度较高,该数据位宽调整器减小该数据位宽的该字长;以及当该统计用寄存器所收集的运算结果的稀疏度较低,该数据位宽调整器增加该数据位宽的该字长。10.如权利要求8所述的微处理器,其中:该数据位宽调整器包括一直方图数据的建立模块以及判断模块;该直方图数据的建立模块统计该统计用寄存器所收集的运算结果的数值分布;如果该判断模块根据上述数值分布判读出稀疏度较高的状况,该数据位宽调整器减小该字长;且如果该阈值判断模块根据上述数值分布判读出均匀分布的状况,该数据位宽调整器增加该字长。11.如权利要求1所述的微处理器,其中:该数据位宽寄存器暂存第一组数据位宽、第二组数据位宽、第三组数据位宽及第四组数据位宽;该数据路径根据该第一组数据位宽自该数据路径所接收的数据取得该输入运算元、并根据该第二组数据位宽进行运算时,该数据路径是根据该第三组数据位宽输出...

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

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

1