30.07.2013 Views

利用BEE2 处理太空信号 - Xilinx

利用BEE2 处理太空信号 - Xilinx

利用BEE2 处理太空信号 - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

技 术 长 廊<br />

<strong>利用BEE2</strong><strong>处理太空信号</strong><br />

加州大学伯克利分校的天文学家通过利用由Linux、<strong>Xilinx</strong> System Generator<br />

for DSP以及<strong>Xilinx</strong>EDK搭建的编程环境开发了BEE2平台<br />

作者:Chen Chang<br />

BEEcube CTO<br />

chen@beecube.com<br />

Bob Brodersen<br />

加州大学伯克利分校名誉教授<br />

rb@eecs.berkeley.edu<br />

John Wawrzynek<br />

加州大学伯克利分校教授<br />

johnw@eecs.berkeley.edu<br />

Dan Werthimer<br />

加州大学伯克利分校 太空信号处理中心主管<br />

SETI@home 首席科学家<br />

danw@ssl.berkeley.edu<br />

Kees Vissers<br />

<strong>Xilinx</strong>公司<br />

高级工程师<br />

kees.vissers@xilinx.com<br />

现代射电望远镜观测宇宙的频带范围介于<br />

零到11GHz之间。经过处理,这些望远镜可<br />

以提供诸如黑洞碰撞等令人感兴趣的现象的相<br />

关信息,如图1所示。<br />

这类望远镜原来需要建造极其巨大的单碟<br />

天线,比如Arecibo望远镜。然而,由于建造<br />

费用太高,Arecibo至今仍是收集面积最大的<br />

望远镜,这一纪录已经保持了50多年。<br />

数字信号处理发明之后,大收集面积的射<br />

电望远镜设计转而采用小口径(6-12m)天<br />

线阵列(数百到数千根天线)。这种设计<br />

可以均衡建造费用和电子设备费用。这类天线<br />

可以分布在极广的地理范围内,提供极长但长<br />

度各异的基线以及更好的角度分辨率。加利福<br />

尼亚州北部Hat Creek附近的Allen望远镜阵列<br />

赛灵思中国通讯 27 期 © 2007 <strong>Xilinx</strong> Inc. 版权所有。XILINX、<strong>Xilinx</strong> 标志以及本文件中包括的其他品牌名称,是 <strong>Xilinx</strong>, Inc. 的商标。所有其他商标都是其各自所有者的财产。


图1 - 通过射电望远镜图像收集的<br />

黑洞方面的信息<br />

就是这类望远镜的代表。本文将关<br />

注利用被加州大学伯克利分校SETI研究<br />

所和射电天文学实验室应用于这类望<br />

远镜上的FPGA进行的信号处理。<br />

大数目小口径天线阵列相关器<br />

天线阵列给信号处理带来了很大的<br />

挑战。为了形成正确的图像,来自天线<br />

的所有信号必须彼此相关,因此要求计<br />

算复杂性为O ( N 2 )。为了得到1 平方<br />

公里的收集面积,需要8,000多根直径<br />

为12m的天线。<br />

为了使整个11GHz带宽内的信号相<br />

关,则每秒需要完 成的运 算数量 为<br />

10 18 ,超过目前最快的超级计算机性能<br />

的3,000倍。显然,为了以适当的代价<br />

实现该计算吞吐量,需要一种新的计算<br />

方法。<br />

此外,射电望远镜设计的使用寿命<br />

一般超过30年,因此,没有必要一开始<br />

就对电子设备进行高额投资以满足带宽<br />

要求;更合适的方法是每隔几年进行一<br />

次电子设备升级,逐步增加总的可观测<br />

带宽。借助于半导体技术成本的大幅下<br />

降,这种方法可以实现最佳的性价比。<br />

在如今的实际操作中,经常采用包<br />

含特殊软件的专用电子设备。本文中,<br />

我们将研究如何<strong>利用BEE2</strong>系统以及由可<br />

靠硬件以及商用路 由 器组成的编 程 环<br />

境。后端计算机以及系统显示设备可以<br />

采用商用计算机。当今基于FPGA的系<br />

统能够完成千兆赫模数转换器(ADC)<br />

与 后 端 计算机 之间的信号处理。这类<br />

FPGA系统会非常经济,而且极为可靠<br />

。<br />

BEE2系统<br />

在BEE2系统中,每个计算模块包含<br />

五个<strong>Xilinx</strong> VirtexTM-ⅡPro 70 FPGA芯<br />

片,每个FPGA都与四个DDR2 240引<br />

脚DRAM DIMM直接相 连,每片FPGA<br />

的最大容量为4GB。在本设计中,四个<br />

DIMM被布置在四路独立的DRAM通道<br />

中,每个DIMM都包含一个72位数据接<br />

口,工作频率为200MHz( 400<br />

DDR)。因此,每个FPGA的峰值总存<br />

储带宽可达12.8Gbps。每个模块包含<br />

4个用于实现计算功能的FPGA以及1个<br />

用于实现控制功能的 FPGA。 控制<br />

FPGA在 嵌入式PowerPC405上行<br />

Linux操 作 系统,管理每个用户 FPGA<br />

的计算进程,同时监视整个模块的 操<br />

作。<br />

如图2所示,4个用户FPGA在2D栅<br />

格上直接相连,每条链路的数据吞吐量<br />

高达40Gbps。从控制FPGA到各个计算<br />

FPGA有四条下行链路,每条链路的数<br />

据吞吐量高达20Gbps。所有模块外连<br />

接均采用FPGA片上MGT,将四个通道<br />

与10Gb Base-CX4 以太网接口绑定到<br />

一起。控制FPGA包含两个CX4接口,<br />

各个计算FPGA均包含四个CX4接口,<br />

因此每个BEE2模块包 含 18个 CX4接<br />

口,全双工带宽可达180Gbps。对于需<br />

要高对分带宽以便在多个计算模块间进<br />

行随机通信的应用,BEE2系统可以与商<br />

用 10Gb以太网交换机直 接 相 连 。此<br />

外,控制FPGA上的10/100 Base-T以<br />

太 网接口 能 为用户接口、低速系统控<br />

制 、 监控以及数据存档提供带外 通信<br />

网络。<br />

IB4X/CX4<br />

40 Gbps<br />

Five FPGAs<br />

XC2VP70FF1704<br />

IB4X/CX4<br />

40 Gbps<br />

MGT<br />

MGT<br />

DRAM<br />

DRAM<br />

DRAM<br />

DRAM<br />

Memory<br />

Controller<br />

FPGA<br />

Fabric<br />

FPGA<br />

Fabric<br />

Memory<br />

Controller<br />

DRAM<br />

DRAM<br />

DRAM<br />

DRAM<br />

100BT<br />

Ethernet<br />

DRAM<br />

BEE2 DSP编程环境<br />

在过去十年中,基于框图的算法描<br />

述方法十分流行,尤其在DSP领域。软<br />

件 仿真环境,比如MathWorks<br />

Simulink,可以提供并 行数据流执行<br />

模型, 与 DSP数 据流处理特 性 十 分 匹<br />

配。利用丰富的高级专用模块库,算法<br />

设计者能够迅速构建复杂的DSP和通<br />

信系统。<strong>Xilinx</strong> ® System Generator for<br />

DSP扩展了 Simulink建 模 以及仿真能<br />

力,可以实现核心DSP算法到FPGA实现<br />

的直接映射。<br />

然而,大多数实际的DSP设计并不<br />

仅仅需要核 心算法 。在最新 一代的<br />

<strong>Xilinx</strong> FPGA中,许多系统级元件可以<br />

直接集成到单个FPGA上,比如网络接<br />

口、嵌入式微处理器 、 存储器和 I/O设<br />

备等。随着这些硬件子系统的出现,FP<br />

GA设计不再仅仅是 硬 件设计,而是包<br />

含了硬件与软件的设计。其中,软件包<br />

括复杂的OS和应用软件。<br />

BEE2 DSP 编程环境,被称为BEE<br />

Platform Studio(BPS),如图3所<br />

示。在Simulink中,BPS提供了一个集<br />

成编程环境,可以降低FPGA软/硬件协<br />

同设计的复杂性。该环境是为BEE2平台<br />

特别设计的。这样,算法设计者就只需<br />

要关注核心DSP算法,而系统将自动生<br />

成复杂硬 件及软 件子系统的代<br />

码 和比特 文件。该环境建 立 在<br />

<strong>Xilinx</strong>现有的工具流程上。<strong>Xilinx</strong><br />

System Generator 为实现 DSP 算<br />

法映射提供了卓越的 模块集,<strong>Xilinx</strong><br />

嵌入式开发 套 件(EDK)可以提<br />

供 微 处理器 和 系统集成功能,而ISE TM<br />

IB4X/CX4<br />

20 Gbps<br />

MGT<br />

FPGA<br />

Fabric<br />

Memory<br />

Controller<br />

DRAM<br />

DRAM<br />

DRAM<br />

64 bits 300 at DD R<br />

138 bits 300 MHz DDR Gbps41.4<br />

图2 - 计算节点连接功能<br />

技 术 长 廊<br />

4 GB DDR2 DRAM<br />

12.8 GB/s (400 DDR)<br />

DRAM<br />

DRAM<br />

DRAM<br />

DRAM<br />

Memory<br />

Controller<br />

FPGA<br />

Fabric<br />

FPGA<br />

Fabric<br />

Memory<br />

Controller<br />

DRAM<br />

DRAM<br />

DRAM<br />

DRAM<br />

MGT MGT<br />

IB4X/CX4<br />

40 Gbps<br />

IB4X/CX4<br />

40 Gbps<br />

2007 年冬季刊


技 术 长 廊<br />

软 件可以提供用于实现逻辑综合的<br />

后 端 ,布局 和布线、以及生 成<br />

硬件比特文件等功能。<br />

在 BPS设计环境中,完 成一<br />

个典型的设计通常是从使用 <strong>Xilinx</strong><br />

System Generator for DSP 在<br />

Simulink中设计核 心算法开始<br />

的 。 从 终 端 用 户 的 观 点 看 ,<br />

Simulink设计仅仅是一个同步数<br />

据流执行 模型的理想化沙盒,<br />

通过BPS接 口 模块集 对核心算法<br />

外 的所有连接进行虚拟映射。典型设<br />

计如图4所示。BPS模块集是由FPGA专<br />

家 创 建的,用以代替充当Simulink中<br />

核 心算法 设计与系统级 器 件之间的接<br />

口的通用XSG“网关”。<br />

处理器核以 硬核( PowerPC<br />

405)或软核(MicroBlaze TM 处理器)<br />

的形式隐含于所有BPS设计中。处理<br />

器核可以通过软 件 寄存器、 FIFO或共<br />

享存储器与用 户 XSG设计通信。通过<br />

在 Simulink中 选择相应的BPS模块,<br />

用 户 就可以指定通信方式 。通过一个<br />

简单的FIFO抽取,所有的外部网络、I/<br />

O以及存储器件即可被抽取成 Simulink<br />

数据源或数据宿。<br />

对于支持的FPGA电路板平台,BPS<br />

架构提供一个基础系统软件包(作为完<br />

整的<strong>Xilinx</strong> Platform Studio(XPS)项<br />

目 ),以及用于所有外 部 器 件的<br />

Simulink BPS 模块集。基础系统软件<br />

包包含基本的系统器件IP核、初始的硬<br />

件 系统配置以及可用的软 件包。利用<br />

基于基础软件包的BPS工具,不断生成<br />

用户选择的外部器件的后端执行文件。<br />

接着,将这些文件与 所有必要的硬 件<br />

连接以及软件驱动整合和连接起来。<br />

算法简介<br />

射电天文学主要观测遥远的、发生<br />

于很久之前的现象,因此,到达地球的<br />

无线电波本质上是平行波。当采用彼此<br />

物理分离的两个或多个射电望远镜观测<br />

同一现象时,由于各个天线位置的切割<br />

角度的不同,每个天线接受到相同波<br />

阵面的时间不同。基于相关性的射电天<br />

文学成像的基本思路是通过将在不同位<br />

置接收到的无线电信号进行相关处理,<br />

重构感兴趣的波阵面图像。由于接收位<br />

置的不同,信号的延迟也不同。<br />

由于FX相关器方案的计算效率,对<br />

赛灵思中国通讯 27 期<br />

FPGA<br />

Experts<br />

HDL<br />

Algorithm<br />

Designer<br />

Simulink<br />

XSG<br />

BPS<br />

EDK<br />

ISE Software<br />

Linux<br />

BEE2 Hardware<br />

图3 - BEE2 Platform Studio设计抽取图<br />

图4 - BPS设计实例<br />

于大数目的天线,一般采用这种方案。<br />

首先,每个天线信号通过FFT(快速傅<br />

立叶变换)转换到频域内。接着,针对<br />

各个频道对几个天线的信号进行乘 累<br />

加处理(MAC)。基本的相关<br />

器系统如图5 所示。每个输入采样进行<br />

一 次 MAC计算,这与 频 道 的 总 数 无<br />

关。相对 于天线的总 数 目 , FX相关<br />

器中 FFT 计算增加量为N log 2 (N),而<br />

MAC 计 算增加量为1/2 N (N-1)。<br />

相关算法 的 第 一 步 是将从 天<br />

线 接 收到的模拟信号数字化 ,<br />

接着通过频率转换 将数字信号<br />

转 换 到频域 内,这个过程亦 称为F -<br />

引擎(F- engine)。在1 GSPS 下进行<br />

I/Q数字化 后,采用数字下变频<br />

( DDC) 模块将数字信号输 入 调谐<br />

为感兴趣的频带,然后利用多<br />

相 滤 波器组( PFB)进行预滤波 和<br />

FFT。由于输 入 信号的信噪 比(SNR)<br />

低 于 1 ,因此将PFB的 输 出量化为 精 度<br />

较 低 的 定点数(这里为4 位 实数和4 位<br />

虚 数),这样总体相关计算和网络带<br />

宽利用都更有效。最后,数据包格式程<br />

序(packet formatter)从每个通道收<br />

集大量 的频率数据 ,形成单个数据 包<br />

。这个带有时 间 戳 的数据 包通过<br />

10Gb以太网接口传输出去。<br />

如图6 所示,利用分块 结 构对来自<br />

于线性延迟链上各个天线的数据 包进<br />

行 交 叉 相关处理,这是一种最为有效<br />

的 X-引 擎 ( X-engine)实现方案 。<br />

对 于 N - 天线系统,每个X-引 擎 ( Xengine)均正好包含<br />

N 个 延迟部<br />

件,数据 采 样 深 度为m ,其中m 对 应<br />

着每个数据包中采样数据的数目。N /2<br />

个MAC单元用于计算交叉相关性,同时<br />

一个专 用 MAC单 元 用于计算自相关<br />

性。每个MAC单 元 均包含 一个多路 复<br />

用 器 ,用于从延迟链上的第 一个到最<br />

后一个数据 包中选择一个作为输 入 数<br />

据包。<br />

接收缓冲器中的数据包按照天线顺<br />

序 有 序移出 , 沿 着延迟链移 动 , 并 在<br />

MAC单元中进行相关处理。计算结果左<br />

移至DRAM控制器,以便进行长时累加<br />

运算。<br />

对于数据包中的特定频道,所有的<br />

1/2 N (N-1)个相关的计算步骤都刚好<br />

是N 时间步(每时间步均为m个时钟周<br />

期)。基于分块 结 构 的 X-引 擎 ( Xengine)设计使得在多个FPGA芯<br />

片 上 划 分单个X-引 擎 ( X-engine) 变<br />

得相当 轻松。多个相邻 的分块 可以配<br />

置 到每个FPGA中,数据流可以轻松地<br />

在 FPGA间 传输。相关双 极 化 天线时 ,<br />

每个MAC单 元并行计算所有的Stokes<br />

参数,因此每个时钟周期需要4 次复数<br />

乘法运算,或16次实数乘法运算和8次<br />

加法运算。最后,四个复数项(八个实<br />

数项)进行m次累加,然后移出到DRA<br />

M 中以便进行长时累加计算。<br />

可扩展性<br />

传统的FX相关器设计采用直连式背


Antenna #1<br />

FFT<br />

Antenna #2 FFT<br />

Antenna #N FFT<br />

板 和电缆 构 建 从 F-引 擎 ( F-engine)<br />

到 E-引 擎 ( E-engine)的交 叉 连<br />

接。这种方法要求整个硬件系统全局同<br />

步,限制了系统的扩展性。新的实现方<br />

法中,每个频率数据包上的时间戳能够<br />

有效地分离绝对采样时间和计算硬件时<br />

钟。当相应的数据包到达时,所有的X-<br />

引 擎 ( X-engine)计算均可进行。因<br />

此,具有不同数据包延迟的商用网络交<br />

换机可以作为虚拟交叉开关,而不是硬连<br />

线背板。<br />

LTX实现可以将256-天线X-引<br />

擎 ( X-engine)设计置入运行频率为<br />

250MHz的BEE2 FPGA中。为了保证高<br />

时钟速率路由所需的充足余量,包括全<br />

局控制以及存储接口在内的逻辑slice利<br />

用率应该 保持在最大slice数的80%左<br />

右。通过连接4个用户FPGA芯片可以在<br />

单个BEE2电 路板上实现1024-天线X-<br />

引 擎 ( X-engine)。其中每个用户<br />

FPGA芯片可以实现四 分之一LTX分<br />

块 。需要利用外 部 DRAM在中心控制<br />

FPGA上实现输入缓冲。1GB DRAM可<br />

以包含 4096个频道 ,每个频道存储<br />

256K数 据 包,从 而通过10Gb以太网<br />

交换机实现了最大超过2 秒的延迟偏差<br />

(跟F-引擎(F-engine)相比)。<br />

10Gb以太网交换机带宽跟 系统中<br />

的天线数目线性相关。由于X-引擎(Xengine)与F-引擎(F-engine)数目相<br />

同,所以交叉交换机基本上是将输出数<br />

据 包 逐 一 从 F-引 擎 ( F-engine)<br />

重新分 配 到相应的X-引 擎 ( Xengine)。在给定<br />

的 时 间 步 中,F-<br />

引 擎 ( F-engine) 输 出 数 据 包 能够以<br />

“ 一 对 一 ” 的方式 单 独 传输到 特定的<br />

X-引擎(X-engine)上。每个天线频<br />

道的循环旋转,阻止了交叉交换机的长<br />

Crossbar<br />

图5 - N-天线频分FX相关器示意图<br />

XMAC (f=0)<br />

XMAC (f=1)<br />

XMAC (f=2)<br />

XMAC (f=3)<br />

XMAC (f=k)<br />

Back-End Computer Servers<br />

期 阻塞。由于所有的F-引 擎 ( Fengine)都与<br />

ADC板 上的采样时钟 同<br />

步,因此即使是暂时的信息包阻塞也很<br />

少发生。<br />

结论<br />

到目前为止,我们已经利用该解决<br />

方案实现了几个相关器,包括采用四个<br />

BEE2模块的Allan望远镜阵列中的200M<br />

Hz带宽、32-天线相关器 。在弗吉<br />

尼亚西部的Green Bank以及世界其他<br />

射电天文工程中,几位科学家已经采<br />

用过16-天线版相关器。<br />

因为整个相关器采用BEE Platform<br />

Studio环境设计而成,在Simulink设计<br />

中,只需要重新编译新的硬件平台即可<br />

将设计移植到新的FPGA硬件中,如即将<br />

推出的使用<strong>Xilinx</strong> Virtex-5 FPGA的<br />

BEE3系统, 从 而 减少了用户 移植工作<br />

量。Virtex-5 FPGA能够以一半的价格<br />

实现高达四倍的计算吞吐量,因此,<br />

对 于实现采用8,000多根天线达 到 1 平<br />

方公里收集面积的目标而言,快速的设<br />

计移植是关键。<br />

Packet<br />

Receive<br />

Buffer<br />

DRAM<br />

Accumulator<br />

Z -m<br />

MAC<br />

经过加州大学伯克利分校长达六年<br />

的研究,一家新 成 立 的公司BEECube<br />

Inc.已经实现了BEE2相关软件和硬件的<br />

商用化,可以进一步支持更为广泛的应<br />

用,从高性能DSP到其他新兴生物信息<br />

学应用。了解 编 程 环境以及未 来 硬 件<br />

系统开发方面的更多信息,敬请联系<br />

chen@beecube. com。<br />

致谢:<br />

BEE2项目的射电天文学应用开发是<br />

与加州大学伯克利分校空间科学实验室<br />

(Dan Werthimer, Aaron Parsons,<br />

Henry Chen)和加州大学伯克利分校<br />

射电天文学实验室(Melvyn Wright,<br />

Dave MacMahon, Matt Dexter, Don<br />

Backer)的SETI@Home和 Serendip<br />

项目(寻找外太空高智慧生物无线电信<br />

号)合作完成。<strong>Xilinx</strong>公司慷慨捐赠了<br />

FPGA和软件工具,并且提供了工程支<br />

持。<br />

非常感谢辛勤工作的BEE2团队的所<br />

有 同 学和员 工:Pierre-Yves<br />

Droz,Greg Gibeling,Nan Zhou,<br />

Yury Markovskiy,Zohair Hyder,<br />

Adam Megacz,Alexander Krasnov,<br />

Hayden So,Kevin Camera,Brian<br />

Richards,Dan Burke,Ken Lutz和<br />

Susan Mellers。BEE2项目受到GSRC和<br />

C2S2科技中心(半导体研究公司计划<br />

PCRP的一部分,国家科学基金 编 号为<br />

CNS-0551739和CNS- 0403427)以及<br />

BWRC 及其赞助公司的资助。<br />

X-tile #0 X-tile #1 X-tile #2 X-tile #3 X-tile #N/2<br />

MAC<br />

Z -m<br />

Z -m<br />

Z -m<br />

技 术 长 廊<br />

Z -m<br />

Z -m<br />

Z -m<br />

Z -m<br />

sel sel<br />

sel sel<br />

MAC MAC MAC<br />

Reg Reg Reg Reg Reg<br />

图6 - 线性分块的X-引擎(X-engine)(简化示意图)<br />

2007 年冬季刊

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!