一种支持多种数据类型的单指令多数据算术单元,包括N个原子运算阵列,原子运算阵列包括:操作数准备单元,用于依据输入的操作类型与数据类型信息,对输入的源操作数进行操作,输出中间操作数;加法运算单元,用于接收中间操作数,完成加法运算,输出加法运算结果;舍入操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行舍入操作,输出舍入操作结果;饱和操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行饱和操作,输出饱和操作结果;结果封装单元,用于选择舍入操作单元或者饱和操作单元的输出结果,依据数据类型信息将中间结果封装为最终数据。本发明专利技术能有效支持多种数据宽度、适用性良好。
【技术实现步骤摘要】
本专利技术涉及多媒体运算部件,尤其是一种算术单元。
技术介绍
多媒体应用通常指针对多媒体对象如文本、音频、静态图像、二维图形、三维图形、动画以及全动态视频等的捕捉、存储、变换、传输、编解码等操作。多媒体信号,其最大特点反应在于小的数据位宽,大的数据吞吐量。单指令多数据(SMD)技术是指通过一个控制器同时控制两个或者多个平行的处理微元来实现多数据流运算,其并行性体现在能够利用一条指令实现对多个位宽较小的数据单元并行完成同一种操作,从而在时间上实现并行运算。现有的一个40位算术运算单元大多只能一次实现一个32位的运算或者I个16位的运算或者I个8位的运算,这样虽然实现简单,但是对多媒体应用的低数据位宽,大数据吞吐量特征没有很好的处理效率,通常认为采用SMD技术可以极大地提高相应多媒体处理应用程序的并行度,提高运算单元的多媒体处理性能,所以需要设计一种单指令多数据算术运算单元。由于视频、音频、图像的数据宽度不一样,而且随着多媒体技术的发展,可以预计在将来会有更多种的数据宽度需要支持,而当前的SIMD运算单元大多只支持一种数据宽度,或者8位,或者16位,对于多媒体应用的加速不具有普遍性,所以需要设计一种操作数长度可变的SIMD算术单元。
技术实现思路
为了克服已有算术单元的不能支持多种数据宽度、适用性较差的不足,本专利技术提供一种能有效支持多种数据宽度、适用性良好的支持多种数据类型的单指令多数据算术单J Li ο本专利技术解决其技术问题所采用的技术方案是:一种支持多种数据类型的单指令多数据算术单元,所述算术单元包括N个原子运算阵列,N为任意正整数,每个原子运算阵列使用一个加法器实现多种位宽的数据的算术运算,所述原子运算阵列包括:操作数准备单元,用于依据输入的操作类型与数据类型信息,对输入的源操作数进行取反、符号位扩展、位宽扩展与进位扩展操作,输出中间操作数;加法运算单元,用于接收来自操作数准备单元的中间操作数,完成加法运算,输出加法运算结果;舍入操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行舍入操作,输出舍入操作结果;饱和操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行饱和操作,输出饱和操作结果;结果封装单元,用于依据操作类型与数据类型信息,选择舍入操作单元或者饱和操作单元的输出结果,并依据数据类型信息,将中间结果封装为最终数据。进一步,所述算术单元支持有符号数与无符号数运算,支持不同元素宽度的运算,所述元素宽度包括字、半字或字节。优选的,所述操作数准备单元中,取反操作以元素为单位,依据操作类型对源操作数进行取反操作;若为加法运算,保持第一操作数与第二操作数不变;若为减法运算,保持第一操作数不变,对第二源操作数取反;若为绝对值运算则依据数据的符号位对负操作数取反,对正操作数保持不变。再进一步,所述操作数准备单元中,符号位扩展操作对第一源操作数和第二源操作数以元素为单位进行符号位扩展;对于有符号数,在每个元素的最高位扩展一位符号位,对于无符号数,在每个元素的最高位补一位O。更进一步,所述操作数准备单元中,位宽扩展操作依据操作类型与数据类型信息以元素为单位对第一源操作数或者第二源操作数扩展一倍位宽。所述操作数准备单元中,在第一操作数与第二操作数每个元素的最低位扩展一位进位扩展位,对于减法操作,进位扩展操作在第一源操作数和第二源操作数的每元素最低位扩展为1,与取反操作数准备一起构成对减数的取补码操作;对于加法运算,进位扩展操作在第一源操作数和第二源操作数的每元素最低位扩展为O。所述加法运算单元仅包含一个加法器,根据操作数的类型,对加法操作数的每个元素都增加一位精度扩展位,记录加法操作数的首位进位运算结果,得到一个扩展中间数据,从而隔离数据的进位,并在运算最后舍去进位扩展位,获得一个加法运算结果。所述舍入操作单元仅包含I个减法器,实现不同位宽的数据的舍入操作。所述饱和操作单元中,依据数据类型信息,以元素为单位利用加法运算单元结果和符号位扩展运算结果对加法运算结果进行饱和运算,表现为如果上溢出,取最大值,下溢出,取最小值,其它情况运算结果保持不变。所述结果封装单元中,根据指令类型信息,选取舍入操作单元或者饱和操作单元的结果,并依据数据类型信息,封装成为最终的运算结果。本专利技术的有益效果主要表现在:能有效支持多种数据宽度、适用性良好。附图说明图1是单指令多数据(SMD)算术单元结构框图。图2是原子运算单元结构框图。图3是操作数准备单元结构框图。图4是8位操作数扩展示意图。图5是16位操作数扩展示意图。图6是32位操作数扩展示意图。图7是加法操作数准备示意图。图8是舍入操作单元流程示意图。图9是饱和操作单元流程示意图。具体实施例方式下面结合附图对本专利技术作进一步描述。参照图1 图9,一种支持多种数据类型的单指令多数据算术单元,所述算术单元包括N个原子运算阵列(11 ),N为任意正整数,每个原子运算阵列使用一个加法器实现多种位宽的数据的算术运算,所述原子运算阵列(11)包括:操作数准备单元(21),用于依据输入的操作类型与数据类型信息,对输入的源操作数进行取反、符号位扩展、位宽扩展与进位扩展操作,输出中间操作数;加法运算单元(22),用于接收来自操作数准备单元的中间操作数,完成加法运算,输出加法运算结果;舍入操作单元(23),用于依据输入的操作类型与数据类型信息,对加法运算结果进行舍入操作,输出舍入操作结果;饱和操作单元(24),用于依据输入的操作类型与数据类型信息,对加法运算结果进行饱和操作,输出饱和操作结果;结果封装单元(25),用于依据操作类型与数据类型信息,选择舍入操作单元或者饱和操作单元的输出结果,并依据数据类型信息,将中间结果封装为最终数据。典型地,需要进行算术运算的2个32位操作数首先被送入操作数准备单元,产生相应的40位中间操作数,然后通过加法运算单元完成结果运算,再根据指令的类型选择舍入操作单元和饱和操作单元进行相应的操作,生成40位运算结果,最后将40位运算结果通过结果封装单元封装成最终结果。所述算术单元支持有符号数与无符号数运算,支持不同元素宽度的运算,支持的典型元素宽度为字、半字、字节。所述操作数准备单元(21)中,取反操作以元素为单位,依据操作类型对源操作数进行取反操作。若为加法运算,保持第一操作数与第二操作数不变;若为减法运算,保持第一操作数不变,对第二源操作数取反;若为绝对值运算则依据数据的符号位对负操作数取反,对正操作数保持不变。所述操作数准备单元(21)中,符号位扩展操作对第一源操作数和第二源操作数以元素为单位进行符号位扩展。对于有符号数,在每个元素的最高位扩展一位符号位,对于无符号数,在每个元素的最高位补一位O。所述操作数准备单元(21)中,位宽扩展操作依据操作类型与数据类型信息以元素为单位对第一源操作数或者第二源操作数扩展一倍位宽。所述操作数准备单元(21)中,在第一操作数与第二操作数每个元素的最低位扩展一位进位扩展位,对于减法操作,进位扩展操作在第一源操作数和第二源操作数的每元素最低位扩展为1,与取反操作数准备一起构成对减数的取补码操作;对于加法运算,进位扩展操作在第一源操作数和第二源操作数的每元素最低位扩展为O。所述加法运算单元(22)仅包含一个加法本文档来自技高网...
【技术保护点】
一种支持多种数据类型的单指令多数据算术单元,其特征在于:所述算术单元包括N个原子运算阵列,N为任意正整数,每个原子运算阵列使用一个加法器实现多种位宽的数据的算术运算,所述原子运算阵列包括:操作数准备单元,用于依据输入的操作类型与数据类型信息,对输入的源操作数进行取反、符号位扩展、位宽扩展与进位扩展操作,输出中间操作数;加法运算单元,用于接收来自操作数准备单元的中间操作数,完成加法运算,输出加法运算结果;舍入操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行舍入操作,输出舍入操作结果;饱和操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行饱和操作,输出饱和操作结果;结果封装单元,用于依据操作类型与数据类型信息,选择舍入操作单元或者饱和操作单元的输出结果,并依据数据类型信息,将中间结果封装为最终数据。
【技术特征摘要】
1.一种支持多种数据类型的单指令多数据算术单元,其特征在于:所述算术单元包括N个原子运算阵列,N为任意正整数,每个原子运算阵列使用一个加法器实现多种位宽的数据的算术运算,所述原子运算阵列包括: 操作数准备单元,用于依据输入的操作类型与数据类型信息,对输入的源操作数进行取反、符号位扩展、位宽扩展与进位扩展操作,输出中间操作数; 加法运算单元,用于接收来自操作数准备单元的中间操作数,完成加法运算,输出加法运算结果; 舍入操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行舍入操作,输出舍入操作结果; 饱和操作单元,用于依据输入的操作类型与数据类型信息,对加法运算结果进行饱和操作,输出饱和操作结果; 结果封装单元,用于依据操作类型与数据类型信息,选择舍入操作单元或者饱和操作单元的输出结果,并依据数据类型信息,将中间结果封装为最终数据。2.按权利要求1所述的支持多种数据类型的单指令多数据算术单元,其特征在于:所述算术单元支持有符号数与无符号数运算,支持不同元素宽度的运算,所述元素宽度包括字、半字或字节。3.按权利要求1或2所述的支持多种数据类型的单指令多数据算术单元,其特征在于:所述操作数准备单元中,取反 操作以元素为单位,依据操作类型对源操作数进行取反操作;若为加法运算,保持第一操作数与第二操作数不变;若为减法运算,保持第一操作数不变,对第二源操作数取反;若为绝对值运算则依据数据的符号位对负操作数取反,对正操作数保持不变。4.按权利要求1或2所述的支持多种数据类型的单指令多数据算术单元,其特征在于:所述操作数准备单元中,符号位扩展操作对第一源操作数和第二源操作数以元素为单位进行符号位扩展;对于有符号数,在每个元素的最高位扩展一位符号位,对于无符号数,在...
【专利技术属性】
技术研发人员:严晓浪,仇径,孟建熠,陈志坚,
申请(专利权)人:浙江大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。