TI科学家谈浮点DSP未来发展
自十多年前浮点数字信号处理器(DSP)诞生以来,便为实时信号处理提供了算术上更为先进的备选方案。不过,定点器件至今仍是业界的主流。当然低成本是主要原因。定点DSP每器件产品的价格很低,这对大规模大众市场应用而言是相当重要的优势。 相比较而言,浮点DSP能够实现更快速而简便的开发,因此对开发成本比单位制造成本重要的小规模应用而言,更是最佳的选择。 最近几年,高密度集成与支持改善使两种DSP在使用方便性与成本上都较为接近。目前,器件类型的选择越来越取决于应用数据集是否要求浮点格式的更多计算功能。因此,设计大规模量产信号处理应用的开发人员现在开始发现浮点格式更多的内在价值。他们将视线投向传统定点DSP开发模式之外的领域,并探索浮点 DSP 所带来的设计机遇。
不同的数字格式
定点与浮点DSP的基本差异在于它们各自对数据的数字表示法不同。定点硬件严格执行整数运算,而浮点 DSP 既支持整数运算又支持实数运算,后者以科学计数法进行了标准化。字长为 16 位的定点 DSP 实现 (rovide) 6?K 的精度,带符号整数值范围为 -215 至 215-1。 与此相对比,浮点DSP将数据路径分为两部分:一是可用作整数值或实数基数的尾数,二是指数。在支持业界标准单一精确运算的32位浮点DSP中,尾数为24位,指数为8位。由于其较长的字长与取幂范围,该器件支持 16M 的精度范围,这样的动态范围大大高于定点格式可提供的精确度。实施业界标准双精度(6? 位,包括一个 53 位的尾数与 11 位的指数)的器件还可实现更高的精确度。
成本与方便易用性
浮点 DSP 提供的计算能力更高,这也是其区别于定点 DSP 功能的最大差异所在。但在浮点 DSP 刚刚出现的20世纪90年代初期,其它因素往往掩盖了基本的数学计算问题。浮点功能需要的内部电路多,而 32位数据路径比当时可用的定点器件要宽一倍。晶片面积越大,引脚数量就越多,封装也越大,这就大大提高了新款浮点器件的成本,因此数字化语音与电信集成卡(concentration card)等高产量应用仍更倾向于采用较低成本的定点器件。 当时,方便易用性抵消了成本问题带来的不利影响。浮点器件是最早支持 C 语言的 DSP 之一,而定点 DSP则仍须在汇编代码级上进行编程。此外,对浮点格式而言,实数运算可直接通过代码加入硬件运算中,而定点器件则必须通过软件才能间接执行实数运算,这就增加了算法指令并延长了开发时间。由于浮点 DSP 易于编程,因此其最初主要用于开发工作强度较大的情况,如研究、原型开发、影像识别、工作站的三维图像加速器以及雷达等军用系统。
逐渐趋同
目前,早先的成本与易用性间的差异已经不那么明显了。总体说来,定点DSP仍然在成本上有优势,而浮点 DSP 仍然在易用性上有优势,但差别已经缩小很多,因此上述因素已经不再起决定作用了。成本日益成为片上系统(SoC)集成与产量的问题,而不是DSP内核本身大小的问题。在十年前还只能放置单个晶体管的空间,目前可放置数十个晶体管。目前,占据晶片面积最多的是存储器,而不是逻辑,而且许多基于DSP的产品都充分利用再扩展(rescaling)的优势,针对具体市场的需求集成了不只一个内核。定点DSP的成本仍然较低,因为其针对大众市场应用的产量很高;但是,如果大规模量产的需求出现,那么浮点器件也将受益于规模效益带来的同样的成本降低。 早期在易用性方面的差异也已经减小。高效的C编译程序与工具早已能支持定点DSP,为代码执行带来了可视性。直接采用浮点硬件实施实数运算仍有优势;但目前先进的建模工具、完整的数学函数库以及现成的算法降低了为定点器件开发复杂应用的难度。
浮点的精确度
目前,选用定点DSP还是浮点DSP归根结底在于应用数据集是否需要浮点算术功能。总体说来,设计人员应解决两个问题:数据集要求多高的精确度?数据集的可预见度有多大? 三个因素影响着浮点格式的内在高精度。首先,浮点DSP的24位I/O字长在整数与实数值方面可实现比定点器件中常用的16位字长更高的精确度。第二,取幂大幅提高了应用可用的动态范围,较大的动态范围对处理极大数据集以及难以方便预计数据集范围的情况相当重要。第三,浮点硬件内部的数据表示法比定点器件更为精确,这就保证了最终结果的精确度更高。 最后一点应稍做解释。在DSP的内部架构中,三种数据字长相当重要,应当考虑。第一是I/O信号字长,正如我们已经说过的那样,其就浮点而言为24位,就定点DSP而言通常为16位。第二就是用于乘法的系数字长。定点系数为16位,与信号数据相同;但浮点系数则可能为24位或53位,这取决于所用的是单宽度精度还是双宽度精度。如果指数表示有意义的零,则精确度实际上会超过上述位数。 最后,就是保存乘加器(MAC)运算中间结果的字长,通常称作寄存器文件。对单一16位乘以16位的乘法而言,将需要32位的乘积;而就单一24位乘以24位的尾数乘法而言,则需48位的乘积(指数有不同的数据路径)。但是,MAC 需要额外的位用于溢出空间 (overflow headroom)。在16位定点器件中,溢出空间通常为 8 位,这就使总的中间结果字长为 40 位(16 个信号+16 个系数+8 个溢出)。 将相同大小的溢出空间集成到浮点DSP中将需要60个中间结果位(24个信号+24个系数+12个溢出),这将超过大多数应用对精度的要求。但就取幂而言,我们将结果标准化,这样所有24位或53位都有效,溢出位就不必要了。TI的TMS320C67x系列等浮点DSP允许开发人员在双精度内部运算与单精度I/O结合的模式下优化精确度与性能。其结果是得到的精确度比定点或单精度浮点运算提供的精确度高得多,但又不会产生完全双精度 I/O 带来的周期问题。
视频与音频数据集要求
将视频与音频应用的数据集要求加以对比,就很容易看出使用浮点格式的优势。视频的采样率很高,其像素数据采样率相当于每秒数十乃至数百个兆位 (Mbps),具体的值决于应用。像素数据通常以 8 至 12 位的短字表示,每一位代表影像的红、绿、蓝(RGB)位面。业界标准的MPEG视频压缩算法的关键数??算包括离散余弦变换(DCT)与量化,且过滤有限。DCT与量化采用整数运算就能有效处理,它与短数据字相结合使得视频成为定点DSP很自然的应用,特别对那些设计有大量并行数据路径与片上视频接口的情况更是如此。另一方面,音频的数据流更为有限,对 24 位采样且每秒 48 千个采样 (ksps) 的速度而言,约为1Mbps的速度。新兴的采样率为192ksps,为该数据速率的四倍,但其数据流仍然大大低于视频流。不过音频数据的处理必须比视频精确得多。眼睛很容易就被欺骗,特别当影像运动时更是如此;但耳朵就很难欺骗了。因此音频需要浮点硬件提供的更大的字长。 使用完全24位浮点I/O精度来进行声音采样,这就得到144dB的动态范围,大大超出了声音复制所需的全振幅范围。此外,音频还要求宽系数与中间结果提供的精确度,其原因有二。首先,音频应用通常使用串联无限脉冲响应滤波器(IIR)以实现最低时延与最高性能。但串联过滤每一级都会传播上一级的错误。信号与系数字长越长,精确度越高,上述传播错误的影响就越小。 第二,在接近于零时必须保持信号精确度,以避免人耳可以分辨的谐波失真。浮点格式从本质上说与人耳的敏感度配合得很好,因为它在分数趋近于零时会变得更精确。相反,定点系统在分数极小的情况下会取近似值等于零,这就降低了精确度。所有上述浮点实数算法方面都对真实复制音频信号至关重要。 尽管过去常用定点器件实现高保真音频,但目前则转向采用精确度更高的浮点格式。某些浮点DSP集成了多通道音频串行端口(McASP),从而简化了音频系统的设计,这就为上述发展趋势提供了支持。随着最新型音频创新在消费类电子产品中的日益普及,对浮点DSP的需求也将上升,这也有助于让其成本更接近于定点 DSP。
其他数据集
其它类型应用的数据集也可受益于浮点的精确度。在医疗影像识别中,更高的精确度能够支持许多层次的信号输入,包括光、X射线、超声波与其它来源的输入等,它们都必须进行定义与处理,以生成提供有用诊断信息的输出影像。动态范围较大对雷达至关重要,这种情况下,系统应能够在从零到无穷大的范围内进行跟踪,而只用整个范围的一个较小的子集进行目标捕获与识别。动态范围较大也有助于让机器人处理不可预见的情况,如在机器人正常有限的运动范围中遇到的障碍等。与上述应用形成对比的是,定点器件为巨大的通信市场提供更好的服务,因为大多数通信数据都是以八位字节串行传输,随后进行内部扩展以根据整数运算进行 16 位处理。 近年来,随着数字信号处理领域不断发展,DSP也由应用推动发展。SoC集成意味着更多的存储器和不同的内核与专用外设一起均能集成到同一器件上,这就使DSP产品能够按特定市场的需求进行定制。在此环境中,浮点功能已成为整体 DSP 产品组合中的另一要素。
定点DSP与浮点 DSP
之间在成本与易用性方面仍有某些差异,但随着时间的推移,上述差异已经不大。对设计人员最具重要性的特性在于浮点格式具有更高的算术灵活性与精确度。对高保真音频以及需要实数运算、更高精确度与较大动态范围的其它数据集应用而言,浮点 DSP 是最佳的解决方案。
TI科学家谈浮点DSP未来发展的更多相关文章
- 马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象
马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象 “未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,将很难生存下去.” 9月 ...
- Unity 脚本的未来发展
新技术之IL2CPP 最近,我们谈到了Unity 的WebGL . 在那篇文中我们简要谈论到脚本在 WebGL 中的运行的新技术称为"IL2CPP" .然而IL2CPP 所代表的 ...
- 基于INTEL FPGA硬浮点DSP实现卷积运算
概述 卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波.而随着人工智能及深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络.本参考设计主要介绍如何基于INTEL 硬浮点的DS ...
- 专家谈国产CPU最新发展态势:需强化标准建设(很全面)
一.国产CPU发展现状与成就 国内已开启多技术路线并行的CPU技术产业新格局.在国家科技重大专项和国家级集成电路产业投资资金的推动之下,我国CPU产品技术研发已进入多技术路线同步推进的高速发展阶段,并 ...
- 编程学习笔记(第四篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(4)meta、元与元模型、软件方法的未来发展
一.meta.元与元模型 1.元. "元" 英语是 Meta,meta在不同的行业领域有不同的翻译,在 IT 领域一般来说 Meta 是翻译成元,主要因为在 IT 中Meta ...
- HBase--阿里未来发展
最近家里没网络,在公司加班写哈博客. HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性.高性能.高伸缩的分布式存储系统,使用HBase技术可在廉 ...
- [转帖]2018年SaaS行业收入结构及未来发展预测[图]
2018年SaaS行业收入结构及未来发展预测[图] http://www.chyxx.com/industry/201908/774792.html 2019年08月23日 14:34:47字号:T| ...
- 谈谈我对 Flutter 未来发展 和 “嵌套地狱” 的浅显看法
Flutter 未来发展 提到 Flutter 就不得不提到 Fuchsia 系统,这是一个尚未正式发布的操作的系统,引用 Android 和 Chrome 的高级副总裁 Hiroshi Lockhe ...
- 从Gartner与IDC三大行业报告,看国产RPA的市场规模与未来发展
从Gartner与IDC三大行业报告,看国产RPA的市场规模与未来发展 Gartner与IDC的三份报告,描绘出中国RPA的市场规模与未来宏图 文/王吉伟 近期的国产RPA,可谓捷报频频.三个重量级行 ...
随机推荐
- awk例子
ls |awk -F . '{print $1}'|awk -F '-[0-9]' '{print $1}'
- php设计模式之工厂设计模式
概念: 工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类步骤. 很多高级模式都是依赖于工厂模式. 好处: PHP中能够创建基于变量内容 ...
- python核心编程笔记——Chapter5
好吧,开始第五章习题: 5-2.又是老调重谈,raw_input这个函数真是非常麻烦,返回是str类型,没办法,只能在函数里面使用int内建.(就只是一道简单的两数相乘,哭了) #!/usr/bin/ ...
- don't run elasticsearch as root.
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户 第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX ...
- 27、增强for循环
增强for循环 使用增强for循环可以简化数组和Collection集合的遍历,格式: for(元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素 } 例: ...
- python基础——python解析yaml类型文件
一.yaml介绍 yaml全称Yet Another Markup Language(另一种标记语言).采用yaml作为配置文件,文件看起来直观.简洁.方便理解.yaml文件可以解析字典.列表和一些基 ...
- 弗罗贝尼乌斯範数(Frobenius norm)
弗罗贝尼乌斯範数 对 p = 2,这称为弗罗贝尼乌斯範数(Frobenius norm)或希尔伯特-施密特範数( Hilbert–Schmidt norm),不过后面这个术语通常只用于希尔伯特空间.这 ...
- hdu 5438 Ponds(长春网络赛 拓扑+bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5438 Ponds Time Limit: 1500/1000 MS (Java/Others) ...
- Win7下VS2010不能链接问题
装了2012准备学VC++窗体开发,然后发现手边只有VS2010的教程,于是卸掉VS2012改装VS2010,结果发现不管写啥,链接时都报错“error Link1123 转到coff期间失败”. 于 ...
- POI读取Excel数据保存到数据库,并反馈给用户处理信息(导入带模板的数据)
今天遇到这么一个需求,将课程信息以Excel的形式导入数据库,并且课程编号再数据库中不能重复,也就是我们需要先读取Excel提取信息之后保存到数据库,并将处理的信息反馈给用户.于是想到了POI读取文件 ...