半导体行业观察 · 2021年09月10日

独立DSP芯片兴衰史:FPGA吹响了丧钟!

来源:内容由半导体行业观察(ID:icbank)编译自「eejournal」,谢谢。



DSP 可以追溯到数字时代的开端,甚至可能更早一些。如果说 1946 年第一台数字计算机 ENIAC 的建造标志着 1946 年数字时代的开始,那么 DSP 则在两年后出现。

IEEE 于 1998 年出版了一本名为《Fifty Years of Signal Processing: The IEEE Signal Processing Society and its Technologies 1948-1998》的专著,将 DSP开始的时代1948年称为 DSP annus mirabilis。同年,贝尔电话实验室的 Claude Shannon 发表了题为“A Mathematical Theory of Communication”的具有里程碑意义的论文,该论文将可实现的比特率、信道带宽和信噪比之间的关系刻在石头上。

同一年,贝尔实验室的 Shannon、Bernard M. Oliver 和 John R. Pierce 发表了“The Philosophy of PCM”,记录了脉冲编码调制的实用性,并在 PCM 上打上了实用性的烙印,这个理论的首次设想是由Alec Reeves于 1937 年撰写。(伯纳德·奥利弗(Bernard Oliver)在更广的圈子中可能更为人所知的是巴尼·奥利弗(Barney Oliver),他是 1966 年创立惠普实验室的杰出人物,但那完全是另一回事。) Shannon、Bernard M. Oliver 和 John R. Pierce 正在记录一些 PCM用于构建绝密 SIGSALY 安全语音系统的概念,这是一个房间大小、重 50 吨的庞然大物,为二战期间盟军最重要的语音通信进行编码和加密。

巧合的是,贝尔实验室于 1948 年 6 月 30 日宣布开发晶体管,同年发表了两篇引发 DSP 革命的里程碑式论文。(晶体管的实际发展发生在前一年。)我们需要晶体管和固态电子设备将Shannon, Oliver和Pierce发表的论文中的概念转化为价格低廉的实用技术,以改变电子产品的世界,所以 1948 年确实是 DSP 的奇迹年。

1948 年之后,很长一段时间内 DSP 技术都没有发生太多变化。数字电子技术对于 DSP 来说太新了,无法实用,至少不能用于实时信号处理。在此期间,许多 DSP 涉及将数字手动输入 Friedan 和 Marchant 机械计算器,这对于音频或视频通信来说非常不切实际。DSP 的萌芽世界等待着关键的发展。实际上,有几个关键的发展。

这是 DSP 和单芯片 DSP 如何接管整个信号处理世界的故事。它与数字电子本身的历史相似,跨越了集成电路 (IC)、微处理器、DSP 和 FPGA 的发展。在我们看来,FPGA 最终大获全胜。

一些不稳定的步骤

使 DSP 实用化所需的第一个关键发展是 IC 的发明。几乎同时,德州仪器 (TI) 的 Jack Kilby 和仙童半导体的 Robert Noyce 设想了两种截然不同的方法来构建第一个集成电路。1959 年 2 月,TI 的 Kilby 首先申请了专利。Kilby 曾设想在一根硅棒上构建多个电子元件,然后使用小的金键合线将它们连接在一起。在申请专利之前,他实际上确实在 1958 年建造了这样的电路。然而,Kilby 错综复杂的手工组装过程是完全不切实际的,而且不太可能扩大到商业批量生产。

Noyce于 1959 年初提出的想法是使用光刻技术,仙童半导体已经使用这种技术制造硅晶体管,在一个芯片上对多个电子元件进行成像,然后使用相同的光刻技术将这些元件与金属互连层互连。他将细节留给 Jean Hoerni,后者开发了自那时以来一直用于制造 IC 的平面工艺。Noyce 和 Fairchild 比 Kilby 晚,但仍是在 1959 年就这些想法申请了专利。

用于制造 IC 的实用制造方法只是所需的许多关键发展中的第一个。早期的数字 IC 太原始,并且包含的晶体管太少,无法认真考虑将它们用于实际的 DSP。那是因为 DSP 涉及一个非常深奥的概念——称为数学。特别是,您需要两个关键的数学运算符——乘法和加法——并且您需要使用大量这些运算来执行 DSP。我们中的一些人成为了数字工程师,所以我们可以忘记数学。

DSP 工程并非如此。使用 DSP 时,无法逃避数学运算。

当电子世界正在等待足够的半导体技术进步使 DSP 成为一种实用技术时,世界其他地方已经迫不及待了。Bell System 需要开发方法来通过其庞大的线路安装基础来填充更多语音容量,而 PCM 显然是第一步。此外,二战后军队对雷达和声纳的使用蓬勃发展,DSP 显然是改进和提高这些系统能力的途径。通信卫星最初是在 1945 年由 Arthur C. Clarke 撰写的一篇论文中设想的,它将需要数字通信来解决一些可怕的信噪比问题,这些问题涉及向地球轨道发送信号和从地球轨道接收信号。

世界已准备就绪,但 IC 尚未准备就绪。

当 DSP 世界等待半导体技术迎头赶上时,信号处理理论家却没有。贝尔实验室的 Binshu Atal 和 Manfred Schroeder 于 1967 年开发了自适应预测编码 (Adaptive Predictive Coding:APC),这使得从 4.8kbps 比特流中获得适度的音频成为可能。

然后,Atal 开发了用于语音压缩的线性预测编码 (Linear Predictive Coding:LPC)。几乎同时,名古屋大学的 Fumitada Imakura 和 NTT 的 Shuzo Saito 开发了偏相关(partial correlation:PARCOR)编码,这是一种非常相似的算法。这些新的语音处理算法自然需要更多的计算——更多的乘法和加法——这使得需要专门的 IC 来使 DSP 实用且具有成本效益变得越来越明显。

但是,通过带宽受限的电话信道运行的语音并不是唯一需要 DSP 信号的地方。雷达和声纳信号处理算法也需要它。真正占用带宽的电视信号需要它。只要技术实用,生成和接收的每个信号都可以从 DSP 中受益。如果它不需要装满 TI 和许多其他供应商在 1960 年代销售的中型 IC 的机架和电路板机架就好了。

英特尔于 1971 年推出的第一个商用微处理器 4004 是对即将到来的事物的第一个暗示。Intel 4004微处理器当然可以进行乘法和加法运算,但是一次只能加四位,而且乘法是一个多步指令序列。硅是愿意的,但 ALU 和位宽很弱。

第一个DSP芯片并没有完全削减它

TRW 于 1976 年设法创建并销售了 16×16 位单芯片数字乘法器——MPY016H——这是一款采用 1 微米双极工艺技术制造的产品。TRW MPY016H 可以将两个 16 位数字相乘以在 45 纳秒内产生 32 位结果(dash-1 部分为 40 纳秒),但无法相加。您需要添加额外的 IC 以将累加器连接到乘法器。此外,您无法在一次操作中提取 32 位结果。您通过 IC 的 16 位输出端口将结果分成两部分。所以这个产品真的不是DSP。它只是 DSP 的一部分。此外,由于具有两个 16 位输入端口和一个 16 位输出端口,TRW MPY016H 必须封装在 64 引脚宽 DIP 中。它以 5V 电压运行,但它几乎需要一个放大器才能启动。在 5 瓦时,它也需要一点冷却。

AMI 于 1978 年推出了 S2811 信号处理外设,它是一个带有 12 位硬件乘法器、一个 16 位 ALU 和一个 16 位输出的 DSP,但它并不是作为单芯片 DSP 设计的。AMI 将 S2811 设计为用于 8 位 6800 微处理器的存储器映射外围设备,AMI 还制造该产品作为微处理器的创始人摩托罗拉半导体的替代来源。AMI 的 6800 微处理器版本被称为 S6800。

6800 微处理器通过一个小型和三个较大的片上多端口 RAM 配置和访问 AMI S2811。尽管 AMI S2811 于 1978 年发布,但它基于一种难以制造的 VMOS 工艺技术,因此推迟了几年的到来。到那时,已经发布了几款单芯片DSP;随着 Intel 8088、Zilog Z8000 和 Motorola 68000 的推出,16 位微处理器时代已经到来;6800微处理器外设市场开始迅速萎缩。那就使得过时的 AMI S2811 从未取得商业成功。

在AMI 推出 S2811 信号处理外设的同一年,TI 向消费者推出了一款基于 DSP 的玩具,即电池供电的“Speak & Spell”,该玩具采用 LPC 作为其核心语音编码技术。Speak & Spell 玩具采用了 TI TMC0280 语音合成器芯片,该芯片在硬件中实现了 Binshu Atal 的 LPC 算法。TO TMC0280 本质上是一个专用的 DSP。

尽管当时的半导体技术将 TI Speak & Spell 的词汇量限制在 165 个单词,但这款玩具的稀疏词汇量对于儿童玩具来说是一个巨大的技术飞跃,即使零售价高达(当时)50 美元。尽管 TI TMC0280 是一种专门的专用语音 DSP,但其低成本和电池运行时间的能力为即将到来的 DSP IC 指明了道路。

1979 年 2 月,英特尔试图通过宣布英特尔 2920“模拟信号处理器”来表达“是的,我们可以做到”。这个奇怪的集成 DSP 在前端有一个 9 位 ADC(8 位加符号)和一个四输入模拟多路复用器,一个 9 位 DAC 有一个 8 通道模拟采样保持电路和模拟多路复用器在前端后端,中间的数字 ALU 能够执行加法、减法和绝对值运算以产生 25 位结果。缺少乘法和除法指令迫使使用多指令序列来执行这些所需的 DSP 数学运算。每个乘法运算需要 12 条指令,除法运算需要 14 条指令。每条 Intel 2920 指令需要大约半微秒来执行,

Intel 2920 是为信号过滤应用而设计的,但它的执行速度慢、数据路径有限、指令集独特、缺少硬件乘法器、模拟输入和输出电压范围有限以及其他严重的限制,这些都注定了该 IC 的商业失败。

因此,尽管很少有人记得英特尔 2920,但它也预示着 DSP 的到来。

随着 1970 年代结束,世界显然已经准备好,甚至渴望真正的单芯片 DSP。多亏了理论家,算法才得以开发并准备就绪。许多信号处理应用都在乞求功能强大的 DSP 芯片。剩下的就是开发能够支持这些要求的芯片设计和工艺技术。AMI、AT&T、英特尔、松下、摩托罗拉、NEC、TI、ADI 公司和其他公司都在为这个问题而疯狂地工作。DSP 芯片的爆炸式增长迫在眉睫。

在 1948 年 DSP 的奇迹年之后,又过了三个十年,实际的、实用的 DSP 芯片才会出现。像 TRW 的 MPY016H 硬件乘法器和 TI 的 TMC0280 LPC 语音芯片这样的 DSP 零碎部件被戏弄了——真正的集成 DSP 指日可待——但直到 1980 年代,半导体技术才发展到足以使可编程 DSP 芯片实用化。1980 年代和 1990 年代,单芯片 DSP 的数量呈爆炸式增长。

然后,20年后,单芯片DSP的时代戛然而止。

Wally Rhines 在 1970 年代为德州仪器 (TI) 工作,他非常想离开 TI 在德克萨斯州Lubbock的工厂。当他有机会管理 TI 在休斯顿的微处理器业务时,他选择了这个职位,因为他发现休斯顿是一个更具吸引力的居住地。此外,没有人想要这份工作。TI 的 16 位 9900 微处理器由于其缺乏竞争力的 16 位地址空间而陷入困境。由于未能在通用微处理器市场上分得一杯羹,莱茵斯在休斯顿 TI 新采用的微处理器团队创建了一个四管齐下的专用处理器战略。TI 分叉战略的四个方面是:

  • TMS320 DSP 系列
  • TMS340 系列图形处理器
  • TMS360 大容量存储处理器(很快无处可去)
  • 用于 IBM 网络架构的 token-ring LAN 处理器TMS380

其中,TMS320 DSP 系列成为战略中的摇滚明星。正如Rhines在接受采访时所说,“……它给我们上了一课:绝望是创新之母。” 经过几年的酝酿,TI 于 1982 年 4 月推出了第一批 TMS320 DSP。然而,对于这样的新技术来说,仅仅构建芯片是不够的。多年来,TI 一直在宣传 DSP,并通过软件开发工具和培训为其新 DSP 提供支持,然后才看到这些部件取得重大成功。根据Rhines的说法,TI 又过了五六年才开始从这些产品中看到一些真正的收入。

TI 不是第一个

然而,TI 的 DSP 芯片肯定不是市场上的第一个。英特尔早在 1979 年就推出了命运多舛的 2920 模拟信号处理器,但该公司的另一款产品 16 位 8086 微处理器在其拥有 8 位外部数据总线的“弟弟”—— 8088 微处理器——成为 IBM PC 的核心。Intel 2920 从视线中消失了,很可能是因为 Intel 的全部注意力都被吸引到了通用微处理器市场。

TI 只是 1980 年代初期准备进入 DSP 领域的几家半导体公司之一。根据 Forward Concepts 总裁和数十年来一直聚焦在DSP的分析师 Will Strauss 的说法,第一批发布的带有硬件乘法器/累加器的“真正”单芯片 DSP 是 AT&T DSP-1——由贝尔实验室开发,并在1979 年 5 月的 AT&T 内部会议上亮相 。1980 年 2 月在 IEEE 固态电路会议上,NEC又带来了NEC µPD7720。AT&T 将 DSP-1 纳入其开创性的电话网络 5ESS 电子交换系统。随后,AT&T 继续开发了几代设备,其中包括 DSP16 和 DSP32(第一个浮点 DSP 芯片)。然而,AT&T DSP-1 及其后继者仍然被贝尔系统所拥有,

NEC µPD7720 有一个 16×16 位乘法器和两个 16 位累加器,因此它是一个真正的单芯片 DSP。尽管 NEC 在 1980 年初宣布了该设备,但它直到 1981 年才与所需的开发工具一起上市。Strauss 指出,NEC µPD7720 在日本取得了最大的成功,就像日本的许多可编程 IC 一样,这颗芯片在欧洲也很流行。

从 1986 年推出的 DSP56000 处理器开始,摩托罗拉半导体成为 1980 年代争夺 DSP 芯片主导地位的另一个早期竞争者。摩托罗拉 DSP56000 有一个 24 位硬件乘法器和两个可以再扩展 8 位的 48 位累加器使用一对扩展寄存器。这种大数据字能力使摩托罗拉 DSP56000 能够处理高精度音频,因此摩托罗拉 DSP56000 迅速受到高端音频系统开发商的欢迎。

在 1990 年代决斗

DSP 领域的主要参与者在 1980 年代和 1990 年代争夺主导地位。他们生产了多代越来越强大的设备,这些设备具有多个硬件乘法器、浮点硬件乘法器和更大容量的片上存储器。到 1990 年代后期,TI、摩托罗拉和飞利浦已经开发出具有 VLIW 架构、多个乘法器/累加器以及用于特殊操作(例如位混频)的附加功能单元的 DSP 怪兽处理器。

当竞争性芯片技术突然出现并让 DSP 供应商蒙蔽时,更大、更强大的独立 DSP 芯片的开发突然停止。正如希克苏鲁伯小行星在 6600 万年前消灭了恐龙,并在岩层中留下一层薄薄的铱作为名片一样,FPGA 在千禧年之交让单芯片 DSP 党崩溃了。

DSP 的一个基本原理和一些历史相结合,解释了 FPGA 如何以及为什么迅速消灭单芯片 DSP 作为一个充满活力的处理器类别。

首先,原理:DSP 全是数学,DSP 性能依赖于非常快速地执行大量乘法/累加运算 (MAC) 的能力。这就是为什么最新的单芯片 DSP 具有多个硬件乘法器/累加器单元和附加功能单元以从乘法器/累加器路由非 MAC 操作的原因。设备拥有的 MAC 单元越多,执行 DSP 操作的速度就越快,因为大多数 DSP 算法都包含多个 MAC 单元可以利用的许多固有并行性。

现在,回顾历史:FPGA 于 1984 年首次亮相,当时 Xilinx 推出 XC2064。第一个 FPGA 只不过是一堆非常慢的门(实际上是基于查找表的可编程逻辑块),周围有很多可编程互连。这种早期的架构设计使 FPGA 能够在电路板设计上吞噬许多 TTL 芯片的逻辑。但是最早的 FPGA 速度很慢。他们没有威胁到当时的处理器,当然也没有影响到 DSP 领域。反正一开始不是。

FPGA 扩张时代

由于从一开始FPGA就打算骑着摩尔定律,因此FPGA发展到2000年,就从原来的Xilinx XC2064 微不足道的64逻辑块增长到数以万计的逻辑块。在一篇题为“Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology”的文章中,前 Xilinx 研究员 Steve Trimberger 将 1990 年代的 FPGA 增长时期称为“扩展时代”。在这个时代,FPGA 沿着摩尔定律曲线发展,并通过集成越来越多的可编程逻辑块而变得越来越大。然而,与 ASIC 相比,在 FPGA 内用可编程逻辑构建的电路相对较慢,在硅片使用方面效率低下,而且价格更高。因此,使用可编程逻辑构建的 MAC 相对较慢且成本较高。

后来,在 Trimberger 的“积累时代”——当 FPGA 添加硬化 MAC 块时——FPGA 突然成为 DSP 的重要竞争对手。FPGA 并不仅仅增加了一两个硬件乘法器;在摩尔定律的慷慨支持下,他们增加了几十个。

第一个集成快速硬件乘法器的 FPGA 器件系列是 Xilinx Virtex-II FPGA 系列。2001 年 7 月,Xilinx 宣布它已经出货了价值 100 万美元的 Virtex-II XC2V6000 FPGA,每个 FPGA 都有 144 个硬化的片上 18×18 位乘法器。因此,第一个包含硬件乘法器的 FPGA 的性能已经超过了当时存在的每一个单芯片 DSP,而且很可能超过了所有将要存在的单芯片 DSP。

Altera 紧随 Xilinx 并于 2002 年发布了其第一代具有 36×36 位硬件乘法器的 Stratix FPGA。Stratix FPGA 中的硬件乘法器可拆分为 18×18 位或 9×9 位乘法器,以允许更多的 MAC 运算,尽管位分辨率较低。在本世纪的头几年,Xilinx 和 Altera FPGA 系列在可以执行的同步 MAC 操作数量上远远超过单芯片 DSP。

今天的 FPGA 有很多 MACS

今天,英特尔(2015 年收购了 Altera)和赛灵思的一些最小的 FPGA 提供了大量的硬件乘法器。较旧但仍然可用的 Intel Cyclone IV FPGA 系列的成员包含 80 到 532 个 18×18 位嵌入式乘法器。同样,较旧的 Xilinx Spartan 6 FPGA 系列包括具有 8 到 180 个 DSP48A1 slice 的器件,而较新的 Xilinx Artix FPGA 系列的成员包含多达 740 个 DSP48E1 slice。每个 DSP48A1 Slice 包含一个 18×18 位乘法器和一个 48 位累加器,而每个 DSP48E1 Slice 包含一个 25×18 位乘法器和一个 48 位累加器。DSP48 切片乘法器中的位数似乎随着时间的推移而增加。

Intel 和 Xilinx 的最大 FPGA 具有数千个 DSP 模块,并且能够比最快的 DSP 芯片每秒提供三个数量级的 MAC。例如,最大的 Intel Stratix 10 TX FPGA 系列的成员提供 5760 个精度可调 DSP 模块,每个模块包含两个 18×19 位硬件乘法器,可以配置为一个 27×27 位乘法器。在一个大芯片上多达 11,520 个硬件乘法器。最大的 Xilinx Virtex UltraScale Plus FPGA 包含 12,288 个 DSP48E2 slice,每个 slice 包含一个 27×18 位乘法器和一个 48 位累加器。

请注意,英特尔和赛灵思并不是唯一将硬件乘法器塞入其 FPGA 的 FPGA 供应商。您可以从 Achronix、Lattice 和 Microchip 获得 FPGA,这些 FPGA 具有内置在设备中的各种 DSP 硬件(MAC)。例如,最近发布的 Lattice CertusPRO-NX FPGA 有两种尺寸可供选择,具有 96 或 156 个片上 18×18 位乘法器。

如果您仍想编写 DSP 代码并在单片 DSP 上运行它,你可以使用恩智浦提供 DSP56300、DSP56700 和 MSC8000 DSP 系列。这些是摩托罗拉 DSP 系列最新的——也可能是最后的——单芯片后代。此外,您仍然可以购买现成的 TI TMS320 FPGA 系列成员。同时,硬件乘法器在通用处理器的设计中变得非常普遍,在那里您可以找到完全能够提供可观的 DSP 性能的巨型 512 位 SIMD 矢量单元,甚至在微控制器中,这样您就可以更轻松地将 DSP 集成到即使是最小的嵌入式设计。

对于这一切,要感谢摩尔定律。

然而,在这一点上根本没有可比性。如果您的高性能 DSP 应用需要大量快速 MAC 运算,那么具有成百上千个快速硬件乘法器的 FPGA 是独一无二的合格产品。

推荐阅读
关注数
11298
内容数
1936
最有深度的半导体新媒体,实讯、专业、原创、深度,50万半导体精英关注。专注观察全球半导体最新资讯、技术前沿、发展趋势。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息