TI C6000系列DSP与摩托罗拉AltiVec PowerPC的比较
来源:电子工程专辑 作者: 时间:2003-03-17 18:23
传统的DSP芯片带有专门的片上硬件资源,如乘法器和复杂地址发生器等,以便使数字信号处理算法更容易实现。不过现在这一类的芯片受到新一代RISC微处理器的挑战。特别是摩托罗拉公司带有新AltiVec引擎的G4 PowerPC,它可提供一些流行DSP算法的评测,令人印象深刻。与此同时,TI公司最新的C64X系列产品则体现出DSP芯片的计算能力也有显著的提升。
本文通过考察上述两种截然不同的处理器的硬件和软件资源,并特别针对各自的优点和缺点来对它们进行比较。其中涉及的内容包括:处理器架构、存储器的使用、数据移动、软件和开发工具。通过了解这些信息,系统设计师在为特定的应用选择最合适的处理器时,应该能够做出最佳的选择。
芯片架构的差异
尽管新的处理器层出不穷,但本文仅关注TI的C6701、C6203、C6415和摩托罗拉的MPC7410,它们都是目前确实能买到或有样片提供的处理器。虽然它们都是瞄准高性能计算应用,但各自又是锁定极不相同的市场。C6000系列是专为诸如无线通信、宽带调制解调器和实时图像处理等高度嵌入、实时性应用而开发。另一方面,PowerPC主要的市场目标是苹果计算机公司的最高性能G4工作站,这里要求它必须支持一个完整操作系统、用户接口和网络外设。
为满足这些要求,两种处理器都必须很好地完成这两项工作,即处理数据和移动数据。为了将它们内在的能力发挥到极致,需要深入考察各自的架构。
![]() |
新的C64X系列DSP包括三个最初成员:C6414、C6415和C6416。它们具有相同的处理器速度和内核架构资源,区别只体现在外围接口上。这里仅选择C6415作为代表进行分析。
为了利用强大的VLIW资源,TI开发了C优化编译器和汇编器,以使每个时钟周期内都有尽可能多的功能单元在做有用的运算。为帮助实现这一过程,需使8个单元中任一个的指令集都处于正交状态,使许多典型运算能运行于不止一个功能单元中。这使得优化工具在资源分配方面更加灵活。新C6415扩展了这种正交性,增加了寄存器数据路径数量,其寄存器堆栈的深度是C62X和C67X系列芯片的两倍。
![]() |
AltiVec单元能处理包括8、16和32位有符号和无符号整数,以及32位IEEE浮点字等若干种数据格式。在每个处理器时钟周期内,该单元处理一个完整向量,无论其数据类型如何。
图3对比了C6000系列芯片与7410器件的峰值处理速率。C6000利用其超长指令字架构在每个周期能运行8条指令;7410 PowerPC 通过采用某些像“乘-加-存”这样的复合指令,每周期能完成3条指令。
因为C6203是带有32位标量执行单元的定点处理器,所以每秒的定点运算数量等于每秒的指令数。C6701可执行定点和浮点两种指令,但只有6个执行单元可进行浮点运算,其峰值速率可达1,000次运算/秒。
除了其固有的32位操作,新的C6415中对8个执行单元中的6个实施了功能强化,使其可对打包的数据字执行8位和16位功能。这使C6415在处理图3所示的数据类型方面较C62X和C67X更有优势。
![]() |
[page]
C6000令人印象深刻的运算能力来源于它的VLIW架构。7410的强大功能则得益于AltiVec引擎—有时也称为单指令多数据(SIMD)架构。值得注意的是,这两种方式截然不同,但它们在提升性能方面都很有效。
处理器存储资源比较
虽然峰值处理速率也许是一个有用的比较,但影响性能的另一个关键因素就是内部存储器的大小。对C62X和C67X系列产品而言,利用VLIW优势的唯一途径是将程序代码放在片内程序存储器中。在内部,该存储器是256位/字的结构,所以在每一时钟周期,所有256位被并行地送至执行单元。如某一关键循环的程序代码太大,装不进片内程序存储器,这些处理器必须从外部程序存储器通过32位总线读取程序代码。对超长指令字来说,每字要完成8次32位的取指操作,执行速度受到极大影响。而C6203的片内程序存储器是C6201和C6701的6倍,该问题得到极大地缓解。
C64X系列通过在片上集成了充裕的1024kB的L2高速缓存,来支持两个小一些的16 kB用于存放程序和数据的L1高速缓存,使得在充分施展VLIW架构的优势方面取得了很大的进展。
7410的片内存储器相对更小一些,而要依赖下面要介绍的外部L2高速缓存。
外部数据总线
数据到外部存储器和I/O器件的传输速度也许比内部存储器资源更重要。在这方面,C6000 和7410再次显示出明显的不同。C6701只有一条32位的数据总线,以167 MHz的全处理器时钟速度运行。
该外部存储器接口(EMIF)总线,对所有C6000器件都是通用的,凭借其可编程特性,能相当灵活地与多种不同外部存储器,包括SRAM、SDRAM、Sync-FIFO、闪存和EEPROM等,实现无胶合(glueless)接口。在C6701和C6203中,该总线的宽度是32位,在C6415中是64位。
C6203的第二个32位总线XBUS用于支持直接连接SDRAM和Sync-FIFO等高速同步器件。C6415的第二个总线是一个16位的I/O通道,也是专门为快速FIFO量身定制的。
7410使用64位的MPX总线作为它的首要接口,该接口必须连至称为“节点控制器”的外部器件。节点控制器包括特定器件与不同种类存储器和外围器件的接口。7410的第二个总线是与高达2MB的外部缓存的64位L2高速缓存接口。这用来支持到CPU和AltiVec引擎内部L1缓存的高速传输。
只有C6415拥有第三个重要总线,即适合于直接连接各种系统接口、突发速度高达33MHz的PCI总线。
与许多DSP芯片一样,C6000系列DSP具有内置的可编程DMA控制器,使其可以快速在内部和外部存储器之间传输数据而无需CPU的介入。C6415因具有64通道增强DMA控制器,所以极大地丰富了它的DMA资源,并能通过交织数据通道的方式来支持极其高效运算所需的同步数据流。PowerPC则必须依赖外部器件(即节点控制器)来处理这一功能。
执行FFT的性能评测
![]() |
造成C6701和7410之间浮点评测差距的原因可主要归结为AltiVec引擎可在一个指令周期内完成4次32位浮点运算。
本文小结
当在C6000系列DSP与PowerPC G4架构之间进行选择时,需要考虑以下一些因素。对带有高速数据流接口的严格实时应用来说,C6000的片上DMA控制器就显得特别有用。同样地,如果系统需要对若干异步外部事件做出迅速响应,那么C6000的片上中断处理器能减少中断延迟时间。
PowerPC芯片没有片上DMA控制器或中断处理器,它依靠节点控制器来实现这些功能。的确,对特定的板级设计来说,因所有处理器的输入输出首先都要经过节点控制器,所以,选择节点控制器就像选择PowerPC本身一样重要。必须为节点控制器特别定制用于处理中断、DMA传输和串行并行外设接口等底层库,因为PowerPC不具备这些功能。
C6000的出色表现得益于其VLIW架构,该架构规定了关键代码必须装进并从片内程序存储器执行。通过C6415的片上大容量L2缓存,这变得更容易实现。对TI编译器和汇编器优化特征的精通程度对有效地将代码填充进这8个执行单元而言至关重要。7410的优势则来源于其AltiVec引擎的单指令多数据架构,但在实现令人瞩目的测评指标之前,数据必须先被装载进高速缓存。
最后,对需要高速数据接口的系统,线路板和系统架构能保持来往于每个处理器的数据能达到峰值和平均速率是必要的。除非在板间和处理器之间建立起快速连接,否则这些新的高性能处理器拥有的强大计算能力受到I/O瓶颈的箝制就不足为奇了。
作者:Rodger H. Hosking
副总裁
Pentek, Inc.
上一篇:柔性印制板SMT工艺探讨
下一篇:在后工序中采用自动化异型装配