|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; ?8 R' I( r2 Q- j5 j% @CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。
2 T0 z* o* g0 ~- o" M; d) h/ BFPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利。' ~4 o5 u* ?- N- v" o
7 s$ X% L. j. T! V4 Y1.CPU与FPGA区别之(指令):
. b& C H; j$ J; TCPU结构——有指令:
+ l1 ?5 o% A" c5 T, z) C冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令。8 H, [; i/ P( A/ E
FPGA结构——无需指令:
# H, X" R, y8 f: ^5 i而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。8 W$ r& T# R! T n' a! d5 m: }8 t' A
/ B2 ~) U3 u5 y9 x5 q
2.CPU与FPGA区别之(内存)
# c) ~: G5 C0 t5 `CPU结构——仲裁与共享内存:. n' H: `8 `0 Q0 n3 G8 @9 Z
冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。
& U0 x1 }( K$ X1 z% r- y由于内存是共享的,就需要做访问仲裁;为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。
6 z& q% X/ {6 e9 X) t6 G- y' i2 a) U* B) j! j! e! c3 i7 y5 l
FPGA结构——无需仲裁与共享内存: Q1 o# f' r1 a H
对于保存状态的需求,FPGA 中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。
% B) ], E( U9 I对于通信的需求,FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。
# H4 `) F% ^9 e7 S5 \8 x3 ]- P" a5 p' Q. Y0 t( o
|
|