找回密码
 注册
关于网站域名变更的通知
查看: 221|回复: 2
打印 上一主题 下一主题

FPGA 为什么快?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-4-1 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
9 h. ^6 [; G" H: x
CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。
8 V# v% e; h7 t! b* j  V. C$ x1 dFPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利。+ n3 f" M. U0 {9 N
  X* v5 r9 I! \; a8 m
1.CPU与FPGA区别之(指令):! D* X% L# Q  p# C3 M1 [! v( q
CPU结构——有指令:# O6 n/ C% j& I: A7 A/ F- `( ]
冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令。; Z+ X% y& d: ?3 F
FPGA结构——无需指令:
2 H9 |) n3 }. U而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
7 p) U& Q% Y4 O5 A  h
, q: w+ Y, e1 C7 V  ~' ^2.CPU与FPGA区别之(内存)/ ]- T2 o6 y2 h8 F2 `
CPU结构——仲裁与共享内存:& r, M3 I" R8 t$ ]: ]
冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。2 o  v& t5 U2 [5 `* q
由于内存是共享的,就需要做访问仲裁;为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。
5 A! p* D8 |3 c" V+ Q* b+ q6 b
2 t& o% O5 @2 Q1 y% |FPGA结构——无需仲裁与共享内存:# t  {/ z0 w: \5 i" d
对于保存状态的需求,FPGA 中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。# y# {) h: ^: ]0 s+ ]7 d  N$ L4 J
对于通信的需求,FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。8 i$ b7 f/ Q  Q

! T5 b& h/ M6 r* a% a( O, w

该用户从未签到

2#
发表于 2022-4-1 13:08 | 只看该作者
FPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利
  • TA的每日心情

    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-4-1 14:21 | 只看该作者
    FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-29 06:05 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表