详解异构计算FPGA基础知识


原标题:详细讲解异构计算的基础知识FPGA

author | Hao Zi

editor | Atud

随着云计算、大数据和人工智能技术的应用,仅靠CPU已经不能满足各行各业的计算能力要求。大规模数据分析、机器学习和边缘计算等场景需要多种计算架构。不同的处理器体系结构和不同的计算技术,如GPU、NPU和FPGA,需要协同工作来满足特定领域的算法和专用计算的需求。今天,我将向你们详细展示FPGA技术。

现场可编程门阵列是现场可编程门阵列的英文缩写,即现场可编程门阵列。它是基于可编程器件如可编程逻辑器件、可编程逻辑器件、可编程逻辑器件、可编程逻辑器件等进一步发展的产物。作为专用集成电路(ASIC)领域的半定制电路,它不仅解决了定制电路的不足,还克服了原有可编程器件门电路数量有限的缺陷。

1。介绍FPGA

FPGA常用于实现数字电路模块。用户可以在现场可编程门阵列内部重新配置逻辑模块和输入输出模块,以满足用户的需求。它还具有系统静态可重复编程和动态可重构的特点,使得硬件的功能可以像软件一样通过编程进行修改。可以毫不夸张地说,FPGA可以完成任何数字设备的功能,从简单的74路电路到高性能的CPU,都可以通过FPGA实现。FPGA就像一张白纸或一堆积木。工程师可以通过传统的原理图输入方法或硬件描述语言自由设计数字系统。

2。现场可编程门阵列发展历史

现场可编程门阵列的发展历史如下图所示。与可编程只读存储器、可编程逻辑器件和可编程逻辑器件相比,可编程逻辑器件具有更大的规模和更高的性能。

图1现场可编程门阵列发展历史

现场可编程门阵列芯片的主要制造商包括Xilinx、Altera、Lattice和Microsemi,前两家占总市场份额的88%。目前,主流的FPGA制造商都是美国制造商。由于国内FPGA的研发起步比美国晚了至少20年,目前仍处于成长期,局限于低端,尚未在通信市场得到充分应用。

2015年12月,英特尔以167亿美元收购了Altera。在收购Altera后不久,它开发了一个将英特尔处理器与FPGA集成的产品路线图。集成这两种产品的优势在于,它可以提供创新的异构多核架构,以满足人工智能等新市场的需求,同时大大降低功耗。

图2现场可编程门阵列在电信领域的应用历史

现场可编程门阵列在航空航天、军事和电信领域有着非常成熟和广泛的应用。例如,在电信领域,由于其在电信设备一体化阶段的编程灵活性和高性能,可编程门阵列被用于网络协议分析和接口转换。

在NFV(网络功能虚拟化)阶段,基于通用服务器和虚拟机管理程序的现场可编程门阵列可以将网络元数据的性能提高5倍,同时可以通过通用Openstack框架进行管理和安排。

在云时代,现场可编程门阵列已经被用作一种基本的IaaS资源,在公共云中提供开发服务和加速服务。AWS、华为和英美烟草都有类似的综合服务。

到目前为止,英特尔的Stratix 10设备已经成功应用于微软的实时人工智能云平台脑波项目。

3。两家主流FPGA公司

Xilinx Focus芯片领先和丰富的加速解决方案的最新发展,通过开放战略获得主流云平台的支持,确立了其在数据中心的领先地位。其UltraScale系列现场可编程门阵列领先其朋友一年多,使其在云平台竞争中处于领先地位。其VU9P设备广泛应用于许多公司的云计算平台,包括AWS、百度、阿里、腾讯和华为。

为了满足加速器领域对现场可编程门阵列芯片日益增长的性能要求,Xilinx发布了下一代ACAP数据中心芯片架构,并推出了7纳米珠穆朗玛峰设备。该器件不再是传统的FPGA,它集成了ARM、DSP、数学引擎处理器阵列等核心,将于2019年批量生产。与VU9P相比,珠穆朗玛峰支持的人工智能处理性能将提高20倍。

英特尔提供从硬件到

2.集成是困难的:现场可编程门阵列的开发和应用需要软件和硬件的合作,包括使用高级语言的系统建模、硬件代码(电路)设计、硬件代码模拟以及底层驱动软件和硬件逻辑的协调。

3。开发周期比软件长:硬件开发比软件开发更复杂,调试周期也更长。

4。很难获得独立的逻辑知识产权。

4。FPGA总体结构

FPGA架构主要包括CLB(可配置逻辑块CLB、输入输出块IOB、互连等嵌入式单元。

CLB是FPGA的基本逻辑单元。实际数量和特性因器件而异,但每个CLB包含一个由4或6个输入、几个选择电路(多路复用器等)组成的可配置开关矩阵。)和触发器。开关矩阵非常灵活,可以配置为处理组合逻辑、移位寄存器或随机存取存储器。

现场可编程门阵列可以支持许多输入/输出标准,从而为系统设计提供理想的接口桥接。现场可编程门阵列中的输入/输出是按存储体分组的,每个存储体可以独立支持不同的输入/输出标准。目前,最先进的现场可编程门阵列(FPGA)提供十多个输入输出库,可以提供灵活的输入输出支持。

CLB提供逻辑性能,而灵活的互连布线负责在CLB和输入/输出之间传递信号。有几种类型的布线,从专为实现CLB互连而设计的全局低偏斜布线(全局专用布线资源),到设备内的高速水平和垂直长线(长线资源),以及时钟和其他全局信号。一般来说,各厂商的设计软件会对用户隐藏互连和布线任务,从而大大降低了设计的复杂度。

嵌入式硬核单元包括内存、数字信号处理器、数字时钟管理模块和其他特定接口的硬核等。FPGA器件的内部结构如下图所示。

图5现场可编程门阵列器件内部结构图

一般来说,器件型号越多,器件能够提供的逻辑资源规模就越大。在选择现场可编程门阵列器件时,用户需要根据逻辑资源(CLB)、内部块内存、接口(高速串行对数)、数字信号处理(数字信号处理器硬核数)和未来扩展等服务需求,综合考虑最适合本项目的逻辑器件。

5。FPGA开发过程:FPGA设计过程是利用EDA开发软件和编程工具开发FPGA芯片的过程。FPGA的开发过程大致如下图所示,包括功能定义/器件选择、设计输入、功能仿真、逻辑综合、布局与实现、编程与调试等主要步骤。

1。功能定义/器件选择:在FPGA设计项目开始之前,必须有系统功能的定义和模块的划分。此外,必须根据任务要求,如系统功能和复杂性、工作速度以及设备本身的资源、成本和布线可分配性进行权衡,以选择合适的设计方案和设备类型。

2。设计输入:设计输入是指用硬件描述语言,用代码表达设计的系统或电路。Verilog HDL是最常用的硬件描述语言。

3。功能仿真:功能仿真是指在逻辑综合之前,对用户设计的电路的逻辑功能进行验证。在仿真之前,需要搭建一个测试平台,准备测试激励。仿真结果将生成报告文件和输出信号波形,从中可以观察到每个节点的信号变化。如果发现错误,则返回设计修改逻辑设计。常见的仿真工具包括模型技术公司的模型模拟和系统公司的VCS。

4。逻辑综合:所谓的综合是将较高层次的抽象描述转化为较低层次的描述。综合优化根据目标和要求对生成的逻辑连接进行优化,并对FPGA布局软件的分层设计进行平面化。在当前级别,综合优化指的是将设计输入编译成由基本逻辑单元(如与门、或门、非门、随机存取存储器、触发器等)组成的逻辑连接网表,而不是真正的门级电路。

需要根据使用布局和布线功能合成后生成的标准门级结构网表生成真实的和特定的门级电路

5.布局和实现:布局可以理解为通过实现工具将逻辑映射到目标设备结构的资源,确定逻辑的最佳布局,选择具有输入和输出功能的路由通道链接逻辑,并生成相应的文件(如配置文件和相关报告);实现是将综合生成的逻辑网表配置到特定的现场可编程门阵列芯片上。因为只有FPGA芯片制造商最了解芯片结构,所以布局和布线必须选择芯片开发商提供的工具。

6。编程调试:设计的最后一步是编程调试。芯片编程指的是生成使用过的数据文件(比特流生成)并将编程数据加载到现场可编程门阵列芯片中;之后,可以进行上板测试。最后,FPGA文件(如。位文件)从计算机下载到单板上的现场可编程门阵列芯片。

6。如何使用现场可编程门阵列

现场可编程门阵列来完成开发,并最终得到经过验证的加载文件。输出加载的文件后,可以开始正常的业务处理和验证(以软件加载方法为例来描述整个过程)

1。逻辑加载;

2。单板软件加载逻辑后需要复位逻辑;

3。复位完成后,软件需要等待一段时间,直到逻辑锁相环稳定工作。

4。软件开始对逻辑的外部内存、内部块内存、DDRC等进行自检操作。

5。软件完成自检后,初始化所有可写内存空间和逻辑寄存器;

6。初始化后,软件参考逻辑芯片手册中的配置表项目和寄存器。

7。逻辑已经准备好开始处理业务。

7。FPGA应用场景

FPGA适用于不规则的多并发、密集型计算和协议分析处理场景,如人工智能加速、基因测序、视频编码、数据压缩、图像处理、网络处理等领域。

[终点]

精彩推荐

2020 Python开发者日在线公益峰会隆重开幕!

“抗击疫情,开发商采取行动”

时间:2月15日上午9:30

疫情正在肆虐。目前,CSDN与PyCon China、武汉2020、新馆2020等力量共同组织了“巨蟒开发者日”在线公益峰会。在本次活动中,邀请了几位一线的Python技术专家来关注Python在流行项目中的具体应用,并分享如何使用Python来应对真实项目环境中的挑战的见解。

注册链接(请复制到浏览器):

两种注册方法:

1。点击“立即注册”-使用折扣代码“pythonday”进行结算,价格更改为“0”元-提交订单并免费参与

2。点击“立即注册”支付“19元”注册在官方网站上公布你的名字返回搜狐向疫区捐款,查看更多

责任编辑:

-