|
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 |
|