微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 认识多种处理芯片的特性和实战

认识多种处理芯片的特性和实战

时间:03-02 来源:腾云阁 点击:

)。束内包含的不同线程从同一程序地址开始,但它们有自己的指令地址计数器和寄存器状态,因此可自由分支和独立执行。

束每次执行一个相同的指令,所以如果束内所有32个线程在同一条路径上执行的话,会达到最高效率。如果由于数据依赖条件分支导致束分岔,束会顺序执行每个分支路径,而禁用不在此路径上的线程,直到所有路径完成,线程重新汇合到同一执行路径。分支岔开只会在同一束内发生,不同的束独立执行不管它们是执行相同或不同的代码路径。

需要注意的是,GPU的线程概念和CPU的线程概念不同,CPU有虚存概念,线程具有自己的线程空间和页表项,还包括CPU的诸多状态寄存器。因此CPU的线程功能更强大,切换线程的代价也更高,而GPU的线程可以被看做一些计算指令构成的计算块,它们的调度、执行和切换要简单的多。从一个线程的执行上下文切换到另一个线程的执行上下文没有消耗,线程之间的切换是硬件切换,消耗的时间几乎可以不考虑。

计算任务中可能存在串行的部分。串行指不可并行、必须顺序执行的计算部分。这种串行部分极大的降低了任务的并行度和计算性能。在后续的实践例子中,就遇到了这样的串行部分。

单独的GPU缺乏必要的环境,没有外部设备和操作系统的支持,不能和网络或者本地硬盘交换数据,因此在实际应用中,GPU总是要和CPU搭配使用,共同构成编程的环境,这种编程称为异构编程。异构编程不可避免CPU管理的内存和GPU管理的内存之间的数据交互,数据交互的效率极大程度上将影响GPU的运行效率。

1.5 FPGA的架构和编程设计

FPGA不采用指令和软件,是软硬件合一的器件。对FPGA进行编程要使用硬件描述语言,硬件描述语言描述的逻辑可以直接被编译为晶体管电路的组合。所以FPGA实际上直接用晶体管电路实现用户的算法,没有通过指令系统的翻译。

FPGA的英文缩写名翻译过来,全称是现场可编程逻辑门阵列,这个名称已经揭示了FPGA的功能,它就是一堆逻辑门电路的组合,可以编程,还可以重复编程。不能重复编程的FPGA也有,主要是基于反熔丝技术,主要用于军事用途。下图展示了可重复编程FPGA的内部原理图。

图 FPGA内部结构图

FPGA内部可以分为可配置逻辑模块CLB、输入输出模块IOB和内部连线等三个部分。IOB是FPGA输入输出的接口,提供芯片和外界电路的连接,完成不同电气特性对输入输出信号的驱动和匹配。

CLB是FPGA的基本逻辑单元。CLB的实际数量根据芯片种类的不同而不同,以xilinx公司生产的早期FPGA Virtex5系列为例,每个CLB包含两个silce。每个slice内部包含4个查找表(LUT)、4个触发器和多路开关等资源。

数字逻辑电路从原理上,是通过时序部件和组合逻辑来完成一系列的功能,而FPGA通过芯片内部众多的CLB单元提供了众多的组合逻辑和时序逻辑。因此通过配置CLB就可以实现各种不同的功能。

本文关注的重点不是FPGA的硬件原理,也不是FPGA逻辑设计的技巧和语法,而是从并行计算的角度分析多种芯片和CPU程序设计的特点。

1.5.1 FPGA编程和CPU编程的特点

CPU编程和FPGA编程最大的不同之处是前者是软件模式,而后者是硬件模式。软件模式意味着代码之间是串行模式,代码之间有严格的执行顺序(不考虑指令乱序执行的影响),而硬件模式则意味这代码之间是并行模式,每一条语句,经过编译(在硬件领域,编译被称为综合)之后就是一个真实的逻辑电路。通过一个具体的例子可以更准确观察到软件模式和硬件模式的区别:

对于上面软件模式的代码,这两条语句之间是串行执行的(不考虑指令流水),经过编译之后,CPU先执行第一条语句,完成a变量的赋值运算,然后执行第二条语句,执行d变量的赋值运算。

如果后续没有对变量a和d的再次赋值,那么变量将始终保持当前的赋值不变。

上面语句是FPGA硬件的赋值语句。和CPU软件模式的执行方式不同,上面语句经过综合后,将形成两个逻辑电路,一个电路的输入是b和c,输出是a,而另一个电路的输入是e和f,输出是d。这两者之间是完全独立的,彼此并行而没有任何的顺序关系。

另外一点和CPU执行模式不同的是,只要输入端b、c或者e、f有任何的变化,那么输出端a或者d也立即变化,不需要再次的赋值。从硬件角度很容易理解这一点,因为FPGA的硬件描述语句被生成为逻辑电路,它是实实在在的存在并且一直执行,而CPU的指令被执行之后,除非被加载到执行单元再次执行,否则不会自动再执行。

使用FPGA编程,最大的难点在于将原有的串行思路转变为并行思路。由于人脑的思维模式更接近串行模

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top