FPGA在面向未来的军事应用中的应用
2010-12-20 14:23:19
来源:半导体器件应用网
点击:1598
1. 前言
在过去十年,技术切入(将已部署或即将部署的系统的关键技术组件进行渐进升级)这一概念已经成为航空航天与国防(A&D)领域的一种福音,为现场系统提供了最新、最高级的技术,同时实现延迟的最小化。技术创新的快速步伐以及随之而来的技术淘汰使得技术切入成为航空航天与国防项目长期开发、测试和部署成功的关键因素。
无人机(UAV)、雷达和信号情报(SIGINT)正是受益于技术切入的典型尖端平台代表。为全面了解技术切入所面临的包括复杂度和成本在内的挑战,有必要思考成功运用这种方式对旧有系统进行升级所涉及的要素。在可重新配置计算应用中实施FPGA可以很好地说明成功的技术切入将会带来什么样的好处以及可能会面临什么样的挑战。这种实例还可以让我们研究与技术切入相关的一些常见问题,商用通用组件(COTS)厂商如何能够最好地帮助他们的客户解决这些问题,以及如何通过规划大幅削减技术切入中存在的问题。
2. 运用FPGA的技术切入
技术切入所涉及的基本问题可以大体分为以下两类:
(1) 设备的物理连接方式(硬件);
(2) 运行环境、系统库和工具、驱动器以及中间件如何为应用(系统软件)提供基础架构。
在嵌入式多计算系统中运用FPGA技术是一个有意思的案例,因为这同时涉及硬件和系统软件类问题。FPGA属于硬件,因为它是与硬件进行物理集成的。在设计一种应用时,开发人员必须非常深入地运用这些元件。
FPGA也提出了软件问题,因为它必须进行编程,而且通常需要集成厂商或第三方提供的功能块或IP核。另外,运用系统库调用的通用处理器往往用来配置FPGA并发布命令,以实现与系统中其他处理器和设备的通信。这样的系统通常是复杂、非类似的,如图1所示。
对于技术切入来说,理想的应用场景是运用无需变更硬件或软件的插入式备件模块。但这对于基于FPGA的计算产品非常少见,这种情况通常不具吸引力,因为尖端计算平台有全新更高级的特性可以为系统集成商所用。因此,对于系统集成商来说,目标必须是在实现技术切入最大化优越性的同时将其对旧有系统的影响减少到最低。在硬件和软件方面的灵活度可能会直接受到初期设计选择以及商用通用组件厂商产品的影响。
商用通用组件厂商减轻技术切入硬件问题的最简单方法是在不同代际的平台上采用通用硬件型号,同时确保连接器引脚变化降到最低程度。通过规定固定尺寸大小以及总线或交换结构互连等板卡输入/输出的引脚界定,VME、VPX-REDI(VITA 46/48)、PMC(VITA 32)和XMC(VITA 42)等行业板卡和模块标准能够在大体上解决这一问题。通过在各代产品上为串联端口和以太网等通用接口维持引脚尺寸,厂商可以实现这种硬件型号的拓展。这种方法同样适用于FPGA。通用的或至少近似的输入/输出尺寸将使得技术切入项目期间大规模重新设计的需要降到最低。
3. 软件的需要性
尽管FPGA开发与目标组件和平台硬件的设计紧密相关,但没有标准的或业内普通接受的工具和框架来对这种关系进行抽象化。结果是,通常软件对技术切入项目的影响较硬件更高。
通过使用VxWorks或Linux等标准商用操作系统配上全特性BSP、通信中间件和应用框架,通用处理器面临的软件挑战在某种程度上可以减轻。要实现FPGA产品的商用通用,厂商面临的挑战是向集成商提供开发工具以支持技术切入,同时维持应用开发商所要求的性能水平。
同理,商用通用组件厂商可以开发实质上代表静态基础架构的标准Wrapper或Gasket程序,如模数转换器(ADC)、存储器、以太网等器件的接口。应该设计功能块和基础架构以最高效方式支持一套通用实施的用例,以实现Wrapper程序的最小化。理想状况下,这种基础架构应该只占到FPGA芯片大小的5%至10%。
4. 软件支持
对于一个技术切入项目来说,将基于FPGA的应用集成至更大的多计算机系统与集成现有应用代码至全新FPGA平台同样重要。通过执行各种命令和DMA引擎控制等控制功能,通用计算元件通常与系统的FPGA紧密相关。
因此,是否能轻松实现技术切入将直接受到厂商在产品代际之间维持API能力的影响。而这种能力又往往是与API的抽象水平相关。抽象水平越高,API在产品代际之间变化的可能性就越低。外部处理器的一个关键任务是在FPGA内部以及FPGA与其他通用处理节点之间对数据流进行命令和控制。
5. 使技术切入成为现实
一些商用通用组件厂商已经在提供通用硬件战略支持技术切入。Curtiss-Wright推出的最新一代基于VPX的板卡产品就是其中一个例子。这个产品线的三个主要计算平台共享一套通用硬件设计元件,并特别设计了面向通用输入/输出元件的通用引脚尺寸(参见图2和图3)。这三个平台分别是基于双核8641的SBC、基于四核8641的DSP引擎以及基于双核Xilinx® VirtexTM-5 FPGA的CHAMP-FX2板卡。例如,FPGA板卡不仅与其他两个VPX板卡共享PowerPC节点设计元件,而且在输入/输出以及储存器配置上与以前的VME版本极其相似。
为了实现最大化的技术切入价值和最少的技术切入工作量,VPX FPGA板卡的设计充分考虑到与其前身VME的平衡。Curtiss-Wriqht的Continuum FXt00ls设计套件提供了一套面向外设输入/输出和存储器的高度优化型IP功能块,仅搭载一个轻质、可伸缩的交换功能块和一些额外的工具块以实现轻松的应用集成。通过提供最小化但高度优化的基础架构,FXtools将这些通用输入/输出和存储器对象进行抽象,而不会降低性能。运用这些IP块设计并采用基本用例将帮助减轻未来技术切入的难度。
为了减轻FPGA计算元件的集成和技术切入难度,该板卡的Continuum IPC通信中间件进行了拓展,以直接控制涉及FPGA的基于DMA的数据传送。IPC软件能够支持应用开发商创建出系统可全面辨别的命名缓冲器和数据传送目标。因此,IPC系统中的任何处理器都可以创建命名缓冲器、连接已经创建好的命名缓冲器并在缓冲器之间创建数据传送目标,而不用借助代码操控,复杂的存储器映射译码或DMA命令包创建。
6. 避免技术切入难题
尽管在成功规划技术切入项目时,产品代际之间硬件和系统软件的通用性是一个重要的因素,但应用开发商和系统集成商自身也能在界定未来技术切入项目难度方面发挥重要作用。例如,如果系统开发商越过厂商或操作系统API,直接操纵硬件,开发出来的代码与未来硬件平台的可移植性将大打折扣。但应用开发商或系统集成商能够通过一系列方式界定他们应用/系统的结构来尽可能避免技术切入难题。
面向未来技术切入设计的第一条原则应当是:不要和系统软件或操作系统对着干。大多数软件架构,如BSP、工具库或Continuum IPC等通信中间件在设计时都考虑到了一个或多个基本用例或设计模式。最容易为未来技术切入造成问题的方法就是改变软件基础架构以适应他们最青眯的设计模式。这样做意味着以后的开发商将不得不以不同方式做出改变。
这一原则也同样适用于FPGA IP开发商。尽管实施的具体细节和接口在代际之间会有所改变,但是基本的设计模式通常不变。按照厂商最初计划的方式运用厂商提的IP块和数据流将使技术切入项目再编码工作量减到最低。
对于软件和FPGA IP,另外一个有用的技术是分析厂商提的API和块接口,确定在未来产品中可能会发生变迁的接口,并在接口和应用代码之间创建抽象层或中介层(Shim)。一个有用的经验是,如果API或块接口紧密地反映出基础硬件,很可能会在产品代际之间发生变迁。
尽管创建这样的层会造成系统添加不必要的代码和性能延时,但总体的性能影响是很小的,而对于未来技术切入项目的好处是巨大的。改变一个中介层要比改变多个API呼叫或IP块实例要简单得多。但重要的是不要滥用这种办法,因为增加中介层或抽象层会使设计复杂化,而且有时会使测试变得更困难。
7. 结论
技术切入能够适应未来需求,但一开始必须充分规划。大多数商用通用组件厂商在牢记这点的同时已经开发了好几代产品。要想充分把握这种价值,系统集成商需要在设计周期早期就与这样的厂商展开密切合作。
在过去十年,技术切入(将已部署或即将部署的系统的关键技术组件进行渐进升级)这一概念已经成为航空航天与国防(A&D)领域的一种福音,为现场系统提供了最新、最高级的技术,同时实现延迟的最小化。技术创新的快速步伐以及随之而来的技术淘汰使得技术切入成为航空航天与国防项目长期开发、测试和部署成功的关键因素。
无人机(UAV)、雷达和信号情报(SIGINT)正是受益于技术切入的典型尖端平台代表。为全面了解技术切入所面临的包括复杂度和成本在内的挑战,有必要思考成功运用这种方式对旧有系统进行升级所涉及的要素。在可重新配置计算应用中实施FPGA可以很好地说明成功的技术切入将会带来什么样的好处以及可能会面临什么样的挑战。这种实例还可以让我们研究与技术切入相关的一些常见问题,商用通用组件(COTS)厂商如何能够最好地帮助他们的客户解决这些问题,以及如何通过规划大幅削减技术切入中存在的问题。
2. 运用FPGA的技术切入
技术切入所涉及的基本问题可以大体分为以下两类:
(1) 设备的物理连接方式(硬件);
(2) 运行环境、系统库和工具、驱动器以及中间件如何为应用(系统软件)提供基础架构。
在嵌入式多计算系统中运用FPGA技术是一个有意思的案例,因为这同时涉及硬件和系统软件类问题。FPGA属于硬件,因为它是与硬件进行物理集成的。在设计一种应用时,开发人员必须非常深入地运用这些元件。
FPGA也提出了软件问题,因为它必须进行编程,而且通常需要集成厂商或第三方提供的功能块或IP核。另外,运用系统库调用的通用处理器往往用来配置FPGA并发布命令,以实现与系统中其他处理器和设备的通信。这样的系统通常是复杂、非类似的,如图1所示。
对于技术切入来说,理想的应用场景是运用无需变更硬件或软件的插入式备件模块。但这对于基于FPGA的计算产品非常少见,这种情况通常不具吸引力,因为尖端计算平台有全新更高级的特性可以为系统集成商所用。因此,对于系统集成商来说,目标必须是在实现技术切入最大化优越性的同时将其对旧有系统的影响减少到最低。在硬件和软件方面的灵活度可能会直接受到初期设计选择以及商用通用组件厂商产品的影响。
商用通用组件厂商减轻技术切入硬件问题的最简单方法是在不同代际的平台上采用通用硬件型号,同时确保连接器引脚变化降到最低程度。通过规定固定尺寸大小以及总线或交换结构互连等板卡输入/输出的引脚界定,VME、VPX-REDI(VITA 46/48)、PMC(VITA 32)和XMC(VITA 42)等行业板卡和模块标准能够在大体上解决这一问题。通过在各代产品上为串联端口和以太网等通用接口维持引脚尺寸,厂商可以实现这种硬件型号的拓展。这种方法同样适用于FPGA。通用的或至少近似的输入/输出尺寸将使得技术切入项目期间大规模重新设计的需要降到最低。
3. 软件的需要性
尽管FPGA开发与目标组件和平台硬件的设计紧密相关,但没有标准的或业内普通接受的工具和框架来对这种关系进行抽象化。结果是,通常软件对技术切入项目的影响较硬件更高。
通过使用VxWorks或Linux等标准商用操作系统配上全特性BSP、通信中间件和应用框架,通用处理器面临的软件挑战在某种程度上可以减轻。要实现FPGA产品的商用通用,厂商面临的挑战是向集成商提供开发工具以支持技术切入,同时维持应用开发商所要求的性能水平。
同理,商用通用组件厂商可以开发实质上代表静态基础架构的标准Wrapper或Gasket程序,如模数转换器(ADC)、存储器、以太网等器件的接口。应该设计功能块和基础架构以最高效方式支持一套通用实施的用例,以实现Wrapper程序的最小化。理想状况下,这种基础架构应该只占到FPGA芯片大小的5%至10%。
4. 软件支持
对于一个技术切入项目来说,将基于FPGA的应用集成至更大的多计算机系统与集成现有应用代码至全新FPGA平台同样重要。通过执行各种命令和DMA引擎控制等控制功能,通用计算元件通常与系统的FPGA紧密相关。
因此,是否能轻松实现技术切入将直接受到厂商在产品代际之间维持API能力的影响。而这种能力又往往是与API的抽象水平相关。抽象水平越高,API在产品代际之间变化的可能性就越低。外部处理器的一个关键任务是在FPGA内部以及FPGA与其他通用处理节点之间对数据流进行命令和控制。
5. 使技术切入成为现实
一些商用通用组件厂商已经在提供通用硬件战略支持技术切入。Curtiss-Wright推出的最新一代基于VPX的板卡产品就是其中一个例子。这个产品线的三个主要计算平台共享一套通用硬件设计元件,并特别设计了面向通用输入/输出元件的通用引脚尺寸(参见图2和图3)。这三个平台分别是基于双核8641的SBC、基于四核8641的DSP引擎以及基于双核Xilinx® VirtexTM-5 FPGA的CHAMP-FX2板卡。例如,FPGA板卡不仅与其他两个VPX板卡共享PowerPC节点设计元件,而且在输入/输出以及储存器配置上与以前的VME版本极其相似。
为了实现最大化的技术切入价值和最少的技术切入工作量,VPX FPGA板卡的设计充分考虑到与其前身VME的平衡。Curtiss-Wriqht的Continuum FXt00ls设计套件提供了一套面向外设输入/输出和存储器的高度优化型IP功能块,仅搭载一个轻质、可伸缩的交换功能块和一些额外的工具块以实现轻松的应用集成。通过提供最小化但高度优化的基础架构,FXtools将这些通用输入/输出和存储器对象进行抽象,而不会降低性能。运用这些IP块设计并采用基本用例将帮助减轻未来技术切入的难度。
为了减轻FPGA计算元件的集成和技术切入难度,该板卡的Continuum IPC通信中间件进行了拓展,以直接控制涉及FPGA的基于DMA的数据传送。IPC软件能够支持应用开发商创建出系统可全面辨别的命名缓冲器和数据传送目标。因此,IPC系统中的任何处理器都可以创建命名缓冲器、连接已经创建好的命名缓冲器并在缓冲器之间创建数据传送目标,而不用借助代码操控,复杂的存储器映射译码或DMA命令包创建。
6. 避免技术切入难题
尽管在成功规划技术切入项目时,产品代际之间硬件和系统软件的通用性是一个重要的因素,但应用开发商和系统集成商自身也能在界定未来技术切入项目难度方面发挥重要作用。例如,如果系统开发商越过厂商或操作系统API,直接操纵硬件,开发出来的代码与未来硬件平台的可移植性将大打折扣。但应用开发商或系统集成商能够通过一系列方式界定他们应用/系统的结构来尽可能避免技术切入难题。
面向未来技术切入设计的第一条原则应当是:不要和系统软件或操作系统对着干。大多数软件架构,如BSP、工具库或Continuum IPC等通信中间件在设计时都考虑到了一个或多个基本用例或设计模式。最容易为未来技术切入造成问题的方法就是改变软件基础架构以适应他们最青眯的设计模式。这样做意味着以后的开发商将不得不以不同方式做出改变。
这一原则也同样适用于FPGA IP开发商。尽管实施的具体细节和接口在代际之间会有所改变,但是基本的设计模式通常不变。按照厂商最初计划的方式运用厂商提的IP块和数据流将使技术切入项目再编码工作量减到最低。
对于软件和FPGA IP,另外一个有用的技术是分析厂商提的API和块接口,确定在未来产品中可能会发生变迁的接口,并在接口和应用代码之间创建抽象层或中介层(Shim)。一个有用的经验是,如果API或块接口紧密地反映出基础硬件,很可能会在产品代际之间发生变迁。
尽管创建这样的层会造成系统添加不必要的代码和性能延时,但总体的性能影响是很小的,而对于未来技术切入项目的好处是巨大的。改变一个中介层要比改变多个API呼叫或IP块实例要简单得多。但重要的是不要滥用这种办法,因为增加中介层或抽象层会使设计复杂化,而且有时会使测试变得更困难。
7. 结论
技术切入能够适应未来需求,但一开始必须充分规划。大多数商用通用组件厂商在牢记这点的同时已经开发了好几代产品。要想充分把握这种价值,系统集成商需要在设计周期早期就与这样的厂商展开密切合作。
本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
暂无评论