可重配置架构使设备能够适合不同应用和协议的需要
作者:Stephan Ohr
对于倡导可重配置计算的人来说,这就像传经布道一样为人们勾勒美好图画:电池供电的便携手持设备具有超级计算机的性能。世界在他们眼里被简单地分为两种人,相信者和不相信者。但如果每个人都相信的话,那就再好不过了--至少对于第三方开发工具来说是这样。
他们期待着这样的前景:与通用软件可编程的微处理器相比,一个专用硬连接的功能处理器将有更高的性能--有高出几个数量级的性能指标以及低得多的功耗。从ROM中调入和编译指令时不再浪费时钟周期,并且并行资源在等待执行时也不会被闲置。
但是,除了特定的集成电路、硬连线设备之外,它不能被用作任何其它用途。Belief System认为,如果在空闲的时候,硬连线设备能够根据运行需求如变魔术般地把将其自身变为另外一种硬连线设备,则将是非常棒的事情。某个时候它可能是你的W-CDMA手机,为你在忙碌的城市街道上搜寻最清晰的通话信道;当到了乡下,它转变为GSM手机;而当进入办公室之后,又可以变为IEEE802.11g媒介接入控制器,从你的办公室服务器上以54Mbps的速度获取数据。在使用时可以重配置,这是多么美妙的事情。这将不再需要装入令人讨厌的软件了。
大多数上述构想的支持者,比如QuickSilver Technology、picoChip、Morphics Technology等都把应用目标瞄准了无线基站和手机。
由于受到日益增多的多重射频标准和3G手机数字基带调制技术的困扰,这些制造商正在研制可取代各种DSP和ASIC的基站处理器和IP,它们所具有的集成器件将能够在工作现场重新配置自己。例如,picoChip希望使用一个可重配置器件来完成芯片速率和符号速率的处理任务,甚至完成某些呼叫控制功能。
enVia的CEO Los Gatos称,软件无线电设备实际上是可重配置计算非常理想的应用目标。软件无线电论坛指导委员会主席Mark Cummings称,DSP和微处理器仅仅给无线电信号链的低速部分增加了可编程性。ASIC给信号链增加了高频处理部分,但是射频发射机和天线则既没有被集成也没有任何可编程能力,他补充到:因此,一个多标准射频设备必须同时使用复杂的基带处理器和多重开关射频部件。EnVia公司希望将来能够把射频链的所有部分变为集成的和可重配置的。
QuickSilver Technology认为,同密集计算任务一样,3G信号处理功能,比如CDMA2000系统捕获、耙指信号测定和设置维护等,都是需要首先采用自适应计算机(ACM)模型的地方。该公司称,ACM能比传统的IC更有效率地运用晶体管。结果就是获得更高的性能、更低的功耗、更小的裸片面积和更低的成本。
QuickSilver的节点结构由许多比DSP部件如算术逻辑单元(ALU)或累加器模块更小的晶体管构建单元组成。事实上它们比构成可编程逻辑器件(PLD)或现场可编程门阵列(FPGA)的逻辑门更小。可以先配置这些模块来执行某个功能,然后再配置这些模块执行另外的功能,这些模块可以采用比FPGA逻辑电路更紧密的封装。该公司声称,更高的封装密度带来更高的性能和效率。
去年展示的测试芯片性能要胜过硬连接ASIC,在一项CDMA系统捕获任务中,需要检测215个不同相位偏移量,同时要对捕获到的数据流在8倍芯片速率(相当于八个并行相关器实时操作)下进行512个复数相关计算,ASIC器件完成系统捕获需要3.4秒。QuickSilver的测试芯片(4个节点,工作于相对低速的25MHz)只需要1秒。另外的一个测试芯片(16个节点,工作于100MHz)则只需要0.06秒。
没有人怀疑QuickSilver的芯片能够获得上述性能。但是,DSP和FPGA行业的分析员,BDTI的Jeff Bier指出,如果没有一系列的精心测试过的编程工具,上述具有细粒度架构的芯片将很难进行优化。(编者注:粒度原用于数据库软件,指一个构件或一组构件能提供的功能多少,这里引申到硬件结构中)
某些制造商,如picoChip和Elixent Ltd.则试图通过牺牲粒度和应用更高级结构单元来解决可编程性问题。picoChip的PC101 picoArray是一个高效率的大规模并行异质DSP处理器阵列,每个处理器的性能大致相当于ARM9,每个芯片有数百个处理器, picoChip的董事长兼CEO Rodger Sykes称:运行于160MHz时,PC101的处理能力是运行于600 MHz的德州仪器的C6415 DSP的19倍。
PicoChip希望通过提供一个能被映射到picoChip阵列的UMTS功能库来解决编程问题。这个冗长的功能库包括:搜索器、耙式接收器(rake receiver)、耙指管理器(rake finger manager)、通道估算器(channel estimator)、接收帧处理(receive frame processing)、解交织器(de-interleavers)、维特比解码器(Viterbi decoder)和NBAP测量设备(NBAP measurement device)等。picoChip没有就困扰定制逻辑阵列如FPGA和门阵列的晶片利用率的问题发表评论。
Elixent将可再配置的图像处理(例如JPEG、MPEG编码)视为非常有希望的市场,同时也认为并行处理是一个用于可重配置计算的适当模型。Elixent的CEO兼创始人Kenn Lamb解释到,传统的冯诺依曼处理器是顺序处理机,通过运算寄存器链曲折传送的数据浪费了许多机器周期。而通过分布式处理器平行处理,则将给运算速度带来“极大的提升”。
Elixent的可再配置算法处理器(RAP)阵列采用了一个更高级的粒度。该公司的D-Fabrix结构是一个由4位算术逻辑单元(ALU)、寄存器,以及可以支持不同数据字宽度( variable data word width)的存储块构成的阵列。Lamb认为该阵列是一个“超级VLIW”处理器,但是它的资源是可变的,就象德州仪器的C6000并行DSP一样。Elixent的阵列(类似一个棋盘)的50%的硅面积是ALU,50%是可再配置逻辑电路,但集成度要比TI的6000器件要高,Lamb称。
配置向导
对于任何具体应用,其数据流通路决定了配置的硬件描述(HDL)。VLIW字实际上变成该阵列的配置向导,Lamb称。
还可以使用ANSI C语言完成配置。但是即使是最佳数据通路结构(比如维特比解码器)也有分支和控制指令,Lamb说。“你需要八个并行的4位ALU?”他反问道,“还是一个具有八个环回操作的4位ALU......你想在下一个100微秒做什么呢?”
窍门是找到并使用C语言所固有的并行性--这对第三方的编译器开发商是一件好差事。AccelChip Inc正同Elixent合作来提供一个基于MatLab函数的配置图。该阵列集成了东芝以0.13微米CMOS工艺生产的MeP可配置处理器内核。
Elixent的研究最初得到了惠普公司的资助。最初的研究集中在可编程模式FPGA(在该模式中用于逻辑电路的配置文件被装入),以及运行时模式FPGA(在该模式中执行函数处理功能)。
除此之外还有许多高端成果:加州大学伯克利无线研究中心(BWRC)助理主任Bob Brodersen在论文中称,使用MatLab primitives编程的Xilinx Virtex FPGA阵列,他可以获得近似超级计算机的性能。(Brodersen称目前只能在MatLab里实现。)
同时,另一家英国公司Nallatech Inc.公司通过使用可再配置的板级计算机和赛灵思Vertex-II FPGA实现了高性能军事图像处理应用。Nallatech是英国宇航公司(BAE Systems)的子公司,该公司开发的可重配置计算平台可以避免硬件重新设计的问题,这个问题几乎困扰着每个新的军事项目。
赛灵思并不是唯一提供硬连接产品的可编程序逻辑制造商。Altera公司很久之前就展示了其将DSP和通信功能硬连接进FPGA的性能。通过收购Hammercores,Altera不断地扩展其逻辑功能的范围。不过,运行时的功耗和再配置性仍然存在问题。
“动态可重配置问题是一个软件噩梦,”Altera的Neos平台的销售经理Bob Garrett称,“还没有任何人对此发表看法。工程师们都极力避开这个问题。”Stratix FPGA支持80,000个逻辑单元以用于较大的处理任务,Garrett称,Altera的“Hardcopy”设计流程使FPGA可以被迅速转变为一个更紧凑的ASIC器件。
“有两种类型的可重配置性,”ARC International的技术市场副总裁David Fritz提到,“静态可重配置性和动态可重配置性。” FPGA属于静态可重配置器件,他解释说。动态可重配置器件包括具有SRAM配置提示的逻辑节点。
粒度的级别 -- 状态机、位片式处理器或者完全处理器-- 是主要的关注点。粒度级别越精细,性能越好,但是给机器编程就越困难。“还没有人找到合适的粒度级别,”Fritz称。他比较赞赏QuickSilver技术模型,在该模型里,“数据波(waves of data)”可以转换成“逻辑波(waves of logic)”。“这是一个非常有意思的想法,”他称,“但是对这样一个厉害的家伙,你如何编程呢?”
热点
但是,他对位片式处理器有不同看法,认为它没有必要如QuickSilver的细粒度机器那样复杂。他建议找到一个具体应用的热点,并将处理技术(以Verilog或者其它的HDL形式)移植到常规的微处理器、FPGA内核或者硬连线设备。
“ARC并不保证现在就能生产可重配置的器件,”Fritz说,“但是我们正在研究。”当前的研究主要集中在支持SRAM的嵌入式处理节点上,它可以用于数字消费电子产品,比如机顶盒和DSL网关、MPEG视频和MP3音频解码器。
和Altera的Garrett一样,Fritz对重配置性本身的应用范围存在疑虑。除了需要一定量的异常处理之外,你总是知道你的应用领域需要些什么。使用一个微处理器来处理越来越少的不可靠问题有意义吗?基于这个原因,Leopard Logic Inc.公司将自己定位在FPGA和ASIC中间角色。这个成立刚3年的新兴公司的营销副总裁Stefan Tamme指出:FPGA提供了设计灵活性和快速周期,但是它们的体积越来越大、功耗越来越高,而且价格昂贵。另一方面,ASIC--甚至是结构化的ASIC已经被复杂的设计、甚长的研发周期和昂贵流片费用所困扰。ASIC通常是实现新通信接口的最好方法 -- 但在标准仍然处于测试阶段时,还不能使用ASIC,Tamme指出。
Leopard Logic的解决方案(将在2004年早期做详细说明)是在专用标准产品(application specific standard product, ASSP)上嵌入可再配置逻辑电路。该可重配置阵列比传统的FPGA的粒度更精细,并且因此能节省硅面积、功耗和成本。它将得到与可编程和RTL开发工具相类似工具的支持。虽然它的性能接近(确切的说是高于)完全ASIC器件,但是它的低成本将使它适用于产量在5千到50万片之间的低量产产品,该公司称。
总之,通用微处理器是一个复杂的设备。它就像一个巨型的铁路调车场的道岔控制,有许多轨道和开关以及成千上万的交叉组合。
每个处理器指令告诉处理器到哪里去寻找数据以及在找到之后如何处理数据。与铁路调车场类似,指令打开一排道岔并且关闭其它道岔。
从芯片的角度来看,像英特尔的奔腾或者Sun Microsystems的Ultrasparc这样的复杂指令系统计算机(或者称为CISC处理器),为很少使用的指令浪费了许多时间和硅面积(多少与调车场类似)。精简指令集计算的提倡者建议,“不要过于增加复杂度;为什么不使用你所需要的指令呢?”
完全可以做到将指令集精简到比ARM处理器的更小。这个想法和东芝美国电子集团的ASIC小组比较接近。该公司的ASSP业务经理Farhad Mafie建议,如果可能,就让软件来完成移动电话或者手持便携设备上的DSP操作。
一旦你已经决定这样做了,Mafie称,那么你就可以制造完全针对特定应用的硬件了。如果拣选操作的功能已经植入控制器,挑选可用硬件资源的功能也植入了控制器,那么还需要什么可重配置性呢?