聊聊FPGA/CPU/PCIE/Cache-Coherency/CAPI

本文深入讨论了FPGA、GPCPU、PCIe、Cache Coherency和CAPI1.0在系统中的作用。通过CAPI技术,IBM旨在使FPGA更方便地融入OpenPower体系,优化FPGA的使用。内容涵盖了通用CPU的工作原理、FPGA的计算方式、FPGA如何通过PCIe与系统对接以及当前交互方式的不足和CAPI1.0如何改进这些问题。
摘要由CSDN通过智能技术生成

聊聊FPGA/GPCPU/PCIE/Cache-Coherency/CAPI1.0

2015-05-28 冬瓜哥 大话存储

看到Intel最近发布了QPI直连FPGA的架构,冬瓜哥回想起几个月前写的一篇文章,现在重新分享给大家。从中你可以了解为何需要FPGA,FPGA是怎么被连接到系统里的,怎么被使用的。

闲话少说,今天我们说一说 IBM 搞的 CAPI CAPI OpenPower 体系里的一个技术,其目的是让 FPGA 更好更方便的融入现有的系统。那么现有的 FPGA 是怎么被使用的呢?不如先说说什么是 FPGA ,要弄清楚什么是 FPGA ,就得先说说什么是 CPU 。可笑, CPU 大家都知道,冬瓜哥这逼格咋降低了?笑而不语。

· 通用 CPU 是怎么运算的?

我们都知道所谓 GPCPU (通用目的 CPU ),也就是什么都能算,但又什么都算不快的 CPU ,所以其 通用 ,比如 Intel x86 AMD x86 Power PowerPC MIPS ARM DragonSon/GodSon (国产)等。而 FPGA 就是专门为了某种某类计算而专门优化其内部的逻辑电路的一种专用 CPU GPCPU 内部的 ALU 包含多种运算器比如加减乘除以及逻辑(比如 xor and or not )运算以及整数和浮点运算,我们开始菜单计算器,算加减法,代码指令便会把对应的数据导入到 CPU 的寄存器, CPU 收到之后便会将操作数输入到运算器的输入端,并在下一个时钟周期获取到计算结果并输出到寄存器,然后写回到主存。当然, GPCPU 内部花费了大量的资源(逻辑电路)去做优化,包括缓存管理、流水线、多发射、分支预测、乱序执行等等,一条指令要最终得到执行,都要经过这些关卡的一层层处理,所以,对于那些遵纪守法的代码(比如,顺着来没有任何判断跳转)来讲其时延无疑会增加,但是目前随着业务越来越复杂,应用程序的判断条件越来越多,所以这些优化会增加最终性能,虽然时延相对上提高了,但是性能绝对上是增加了,因为如果误判了一个分支,那么整个流水线已经预读入的代码就会被冲刷走重新读入,这个时延反而会更大。

有人问了,我不打开计算器,就运行个 QQ ,难道还要算加减法么?如果没有什么加减乘除运算, CPU 运行 QQ 到底是运行了些什么东西?这问题问得好,问的逼格高,一般人是根本不去想 QQ 运行时候底层都做了什么的。其实 GPCPU 大多时候还真没有在算加减乘除,而更多地是做协调工作了,也就是把内存里某段数据读出来,稍加改动或者根本不动,又写到内存其他地方去。这不闲的么, CPU 就干这个?是的。比如 QQ 要发送一句话给某个好友,其需要调用 TCP 协议栈顶上的 soket API ,后者就是一段常驻内存的 OS 内核代码,那么 QQ.exe 如何将这句话传递给这段代码? QQ.exe 会让 CPU 把这句话在当前内存的地址告诉 socket API 代码,其会将这个地址以及其他参数写入到某个 CPU 寄存器,对应机器指令就是 “mov 内存地址寄存器 A” 类似这种,然后 QQ.ex

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值