学习FPGA之一:初识FPGA

一:什么是FPGA?

Field Programable Gate Array,现场可编程门阵列。当然,它和 CPU,GPU一样,都是半导体芯片的一种。

1.1 先看看最复杂的,什么是逻辑门阵列?

它由大量的逻辑门阵列组成,逻辑门阵列是什么,用来做什么?我们来看一个全加器的逻辑结构图就明白了。

        

上面就是一个完成 Cin + A + B 的一个 二进制的加法运算器,也就是说逻辑门是用来完成1,0运算的电路设计。

使用这些最基本的逻辑门,就可以组合成复杂的运算模块,最终形成一个个功能特异的 IP( Intellectual Property)。

实际上,正常的芯片都是通过逻辑门组成的,但FPGA的逻辑门有什么不同吗?

不同,FPGA的逻辑运算式是通过查找表(Lookup-Table LUT)方式实现的。这有点象我们写软件时,使用的索引表,先把所有的结果放到索引表对应的库中,输入参数,直接获取结果。这个很神奇,大概的意思就是,如果你是 2 个输入,那就用 4个bit来存储所有的结果,如果是 3 个,那就是 8bit,如果是 6 输入,那就是使用 64 bit 来存储结果。

总结:

        N个输入项的逻辑函数可以由一个2^N为容量的SRAM来实现

        N个输入的查找表可以实现任意N个输入变量的组合逻辑函数

        我好象是明白了,但又没有完全搞懂,但大概知道查找表是什么了吧。但通过查找表来实现真实的运算,我还是没有想太明白。

1.2 什么是可编程

        这个可编程和 CPU,GPU的编程是不同的。CPU编程对于电脑CPU,那就是纯数据处理方面的,不可以把一颗CPU通过编程后变成网络交换芯片(干的事情不一样),但FGPA可以通过编程更改逻辑阵列,也就是芯片的作用可以在编程中发生变动。比如:将网络芯片变成视频处理芯片。

1.3 现场代表什么?

        这指的是可以在运行时更改程序,这个好象对于凡是支持可擦除的ROM都可以做到。

那FPGA的应用场景有哪些呢?

        1: 专用芯片流片前的硬件仿真或原型验证平台。这是早期的应用。

        2:作为乐高积木,可以灵活的组成任何的数据电路。当然,这是理论上,因为受限于它的性能,其实它适用的还是数据中心,数据处理相关的功能。

二:FPGA的发展阶段

        它被分成了三个阶段:

        1: 1984年 Xilinx 推出了第一款商用的FPGA,这标志着第一阶段开始:发明阶段,为了解决流片成本高的问题,用来做流片前的验证工作。

        2: 20世界90年代,迎来扩张阶段。专用于FPGA的EDA软件产生,

        3: 进入21世界,进入累积阶段,FPGA也从可编程门阵列 转变为 功能复杂的可编程片上系统。为了易用性,为它提供了诸多可重用的IP。

2.1 3D FPGA的发展

        为了突破摩尔定律的质疑,芯片从平面向立体发展,FPGA芯片也向垂直方向上扩展。

        向3D方向探索的方案,主要有两个:Xilinx 的 SSI, Intel 的 EMIB

2.1.1 堆叠片互联(SSI)技术

        由于越大面积的芯片的成功率越低,所以,将面积缩小然后通过别的方式连接起来,自然是一个很容易想到的选择,当然需要一系列手段保证各片之间的联通。于是,有了 SSI技术。

        原理很简单,加了一层无源硅中介层,在中介层上可以放置多枚硅片,这些硅片通过中介层里的硅通孔,微凸块以及大量连线进行互联。

        优点:能更快速生成良率更高的大型FPGA(因为面积变小了)。

        缺点:缺点好象很多

        1: 随着工艺成熟,在大的硅片上的良品率大大提高,SSI必要性降低。

        2: 性能大大降低,因为有了更多的连接环节。

        3: 多块芯片的逻辑划分,为了尽量使硅片不散落在各个区,导致设计难度增加。

        4:  设计工具的复杂度升高。

2.1.2 嵌入式多管桥联(EMIB)技术

        对于不同IP(功能)的芯片,要让它们异构整合,英特尔提出了EMIB技术。

        原理是增加硅桥接层,重新定制硅边缘的I/O引脚,以配合桥接标准。

        优点:与SSI相比,降低了设计难度和传输时延。实际上,英特尔对EMIB的使用目前只是将FPGA与收发器以及高带宽存储器HBM进行连接。可编程模型只针对一枚完整的FPGA。

        缺陷:

        1: 如果要做较大的晶片时,良品率有问题。

        2: 不同IP混一起,造成不规则的晶片结构,芯片工作时,两端的一致性可能会成为问题,比如:发热问题。

实际上,上面两种技术,很多认为并非真正的3D,最多能算作 2.5D。

2.2 从FPGA 到 ACAP

        与FPGA相比,ACAP的不同点:AdapTIve Compute AcceleraTIon Platform

        1: 芯片中固化了一组AI加速引擎阵列,可以加速神经网络的推断计算和一些常见数学计算和信号处理。每个AI加速引擎中,内置32位的RISC处理器,和一个有512位总线的向量处理器。每个AI引擎有32KB分布式内存,每个AI引擎之间以DMA方式共享传输数据。

        2: 采用NoC(Network on Chip)技术,提高数据传输速率,减少布线。

        3: FPGA 相对于CPU有一个较大缺点,FPGA的编译时间很长。所以,ACAP采用了更加规整的可编程逻辑阵列和时钟域分布。这样,提升IP接口复用性,这样IP移动位置时,不需要整个设计重新编译。

        4: CLB(Configurable Logic Block)是FPGA的基本单元,在ACAP中,加大了CLB的面积,减轻了全局布线的压力。每个LUT也新增了一个额外的输出,这样可以合并部分LUT,另外,原有加法器中的进位链被替换(为什么要替换?)

        5: 针对SSI技术做了优化,采用了更多的硅片间的互联通道。

        6: 引入固化的NoC网络,将数据传输与计算分离,缓解布线压力,提升速度。

2.3 英特尔 Agilex FPGA

        对了,这并不是新的一种FPGA,只是基于10nm工艺的最新 FPGA。

        Agilex 有敏捷和灵活的含义。灵活指的是可编程性,这里就不再多提了。敏捷指的是异构,它既可以是逻辑单元之间的异构,也可以是不同工艺的异构。

        英特尔有两个绝技:一是x86架构,一是半导体制造工艺。

        从2011年开始,英特尔为了巩固自己的大哥地位,推出Tick-Tock战略发展模式: 即Tick奇数年提升晶体管的制造工艺;Tock 偶数年改进处理器微架构。
        2011年是Tick年,如今十年过去了,今年处是Tick年,工艺提升至10nm!

        Agilex 使用了EMIB 技术,用来连接周边各类其它芯片。

        芯片布局做了变化,变成流行的间隔排列,这样简化了设计过程中的硬件资源布局规划。在布局上会有更高的灵活性。

        对芯片最小单元ALM做了架构优化。

        增加了片上内存(MLAB)的逻辑密度。

        对布线单元做了重新设计,对逻辑单元间的延迟做优化

2.3.1 CPU加速器方案

        FPGA有一个主要应用场景是在数据中心作CPU的硬件加速器,用来加速各类应用。为了更好服务于CPU,首先要考虑就是与 至强CPU的兼容性问题。

        首先是缓存一致性的问题,因为传输一定会用到缓存,而缓存协议,英特尔联合微软,阿里,思科,戴尔,EMC,Facebook, google,Hp , 华为 搞了一个,名为 CXL。与 AMD发起的CCIX(联合高通,ARM,华为,Xilinx),IBM发起的OpenCAPI(联合AMD,ARM,Xilinx,nvidia,google)  ,看得出来,英特联合的厂商更多元,包含了更多的互联网与数据中心应用相关的厂商。

2.3.2 增强版HyperFlex架构

        因为FPGA的时钟频率很低,所以需要使用更高的数据总线宽度,弥补时钟频率的不足。主要思路是加入很多名为Hyper-Register的小型寄存器,把原来比较长的时序分割成多个较短的路径,从而达到提升工作频率的目的。

        但其实这有较多的问题,造成流水线算法变复杂,因此,Intel 升级架构。解决类似的问题。

2.3.3 OneAPI

        Intel 使用OneAPI 来支持旗下所有芯片产品:CPU,GPU,FPGA,以及各种AI和其它应用的硬件加速器,提供统一的软件编程接口,使得开发者可以随意在底层硬件之间切换和优化。

FPGA这里只是科普了一下行业背景,后面再继续学习……

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值