FPGA学习笔记

写在前面

  1. FPGA : Field Programmable Gate Array ,可编程逻辑门电路
  2. FPGA可用的资源比较多,文中也只是说了其中一个方面

一、FPGA简介

  1. FPGA并不是整个开发板,而是板上的一小块芯片,整个开发板的其余部件协同它工作,让它发挥出最佳性能而存在

  2. 如果把FPGA的位置换成CPU,整个开发板看起来就变成一块普通的电脑主板了,貌似接上硬盘和输入输出设备就是一台PC了。不管从外形上还是实际功能,FPGA和CPU都表现得太像了,但是在两者相似的外表之下,其内部构造有着根本性的差别

二、CPU的结构

  1. 首先需要强调:处理我们指令的计算机元件本身是无法理解我们的指令的,它们只能理解作为组成CPU最基本的元件’晶体管’ 能实现的两种状态:“开”和“关”的含义,对应的就是1和0这两个机器码数字,这也是计算机的整个体系都基于二进制建立的原因

  2. 为了让我们下达的各种各样的指令变成CPU能理解的0和1,CPU需要一个专门的译码器来翻译指令。这个过程分为两步:“取指”(从一个专门存放指令的存储器中提取指令)和“译码”(根据特定的规则将指令翻译成计算单元能够理解的数据)。CPU的结构概图如下:
    在这里插入图片描述

  3. Control就是控制取指、译码等整个流程的部分,Cache是在高速的CPU与相对低速的内存间为了提高从内存获得指令的效率而设置的一个临时指令存储器,DRAM则是速度比较慢的那一部分指令存储器。可以看到,真正的计算单元ALU只占了CPU结构中不大的一部分。这样的设计是有原因的。CPU存在的目的是作为通用计算机的处理核心,注意“通用”二字,这意味着这块核心必须具备处理各式各样千奇百怪的指令要求的能力,并且因为要处理来自多个设备的请求,它必须拥有随时中止目前的运算转而进行其他运算,完成后再从中断点继续当前运算的能力。

  4. 上述流程在CPU内会在一瞬间完成。所以CPU需要有非常复杂的逻辑控制单元和这套独特的指令翻译结构。这都是保证CPU能顺利完成它的使命的必须的东西。可以说,在计算效率和通用性上CPU牺牲前者选择了后者

三、FPGA的结构

  1. 而FPGA最早是从专用集成电路发展而来的半定制化的可编程电路。从诞生的那一天起:FPGA不像CPU那样可以灵活的处理各种没有见过的指令,而只能根据一个固定的模式来处理输入的数据然后输出。FPGA的大概结构如下
    在这里插入图片描述

  2. FPGA中绝大部分都是计算单元(上图中黄色部分其实就相当于CPU结构图中的ALU),但没有控制单元并不代表FPGA就不会执行指令了,事实上FPGA里控制单元的角色就是由图中的每个控制单元和单元之间可编程的逻辑连接线来完成的,通过FPGA编程,开发者可以更改FPGA的每个单元的运算逻辑和单元之间的连接方式,从而使其达到和一般的运行程序差不多的效果。FPGA与CPU的不同,在于它无法应对没有被编程过的指令,只能处理特定的数据

  3. 编程方式一旦确定,FPGA就只能根据被编程的处理逻辑和方式来处理特定的数据输入。但这样的架构换来的是FPGA内部几乎全是计算单元,因此FPGA的实际运算能力会比看起来强得多,尤其是在运行简单但重复性高的任务的时候,由于简单,因此很少的几个逻辑单元,甚至一个就能独立输出这个运算的结果。而由于FPGA省去了CPU的取指和译码两个步骤,FPGA重复运行相同代码的效率得到了极大的提高

  4. 一个比喻:CPU就像大学里一位德高望重的老教授,积分微分啥都会算,但毕竟它只有一个人,当计算任务太重的时候也会被累趴下,而FPGA这样的结构,就像是整个小学里所有小学生组成的队列,每个人都只会算简单的加减乘除,但有些量大但不复杂的运算任务交给他们就是会比较快。

  5. 具体表现在性能上,很明显的一点就是一般的CPU只能同时处理4到8个指令,而不算太差的只要FPGA优化得当,可以同时处理256个甚至更多的指令。其实GPU的设计思路同FPGA类似,都是为了处理大量简单重复的运算而出现的设备,但GPU的性能强悍的同时耗能也很高,而FPGA因为编程和优化都是直接在硬件层面进行的,能耗会低很多

参考资料

  1. 《被捧上天的FPGA将取代CPU和GPU成为机器人开发的新宠儿?》,作者:雷锋网 黄鑫
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值