关于CPU和FPGA的概念以及两者之间的联系详解.docx
- 133****2345个人认证 |
- 2021-09-28 发布|
- 265.98 KB|
- 8页
关于CPU和FPGA的概念以及两者之间的联系详解
看到In(te)l最近发布了Q(PI)直连FPGA的架构,冬瓜哥回想起几个月前写的一篇文章,现在重新分享给大家。从中你可以了解为何需要FPGA,FPGA是怎么被连接到系统里的,怎么被使用的。
闲话少说,今天我们说一说IBM搞的CAPI,CAPI是OpenPower体系里的一个技术,其目的是让FPGA更好更方便的融入现有的系统。那么现有的FPGA是怎么被使用的呢?不如先说说什么是FPGA,要弄清楚什么是FPGA,就得先说说什么是CPU。可笑,CPU大家都知道,冬瓜哥这逼格咋降低了?笑而不语。
通用CPU是怎么运算的?
我们都知道所谓GPCPU(通用目的CPU),也就是什么都能算,但又什么都算不快的CPU,所以其"通用',比如Intelx86,AMDx86,Power,PowerPC,MIPS,ARM,DragonSon/GodSon(国产)等。而FPGA就是专门为了某种某类计算而专门优化其内部的逻辑电路的一种专用CPU。GPCPU内部的ALU包含多种运算器比如加减乘除以及逻辑(比如xor,and,or,not)运算以及整数和浮点运算,我们开始菜单计算器,算加减法,代码指令便会把对应的数据导入到CPU的(寄存器),CPU收到之后便会将操作数输入到运算器的输入端,并在下一个(时钟)周期获取到计算结果并输出到寄存器,然后写回到主存。当然,GPCPU内部花费了大量的资源(逻辑电路)去做优化,包括缓存管理、流水线、多发射、分支预测、乱序执行等等,一条指令要最终得到执行,都要经过这些关卡的一层层处理,所以,对于那些遵纪守法的代码(比如,顺着来没有任何判断跳转)来讲其时延无疑会增加,但是目前随着业务越来越复杂,应用程序的判断条件越来越多,所以这些优化会增加最终性能,虽然时延相对上提高了,但是性能绝对上是增加了,因为如果误