几篇务虚的文章系列之六……ZYNQ向何处去2?
0赞Bingo小朋友果然有料,这么快就开始爆料了。做的工作也确实不少,七七八八的量也很大。
不过年轻人嘛,遇事激动是很正常的。一来就是惊天动地XXXX。
这个嘛,作为ZedBoard这个新板子,在资料不齐的情况下做到今天这样,应该是做了很多工作的。但是这就算是惊天动地了,只能说:此语言之尚早。原因还是三个字:差异化。
到目前为止,Binggo秀的仍然是一些接口,包括前面他对ZEDBoard的赞扬,基本上都是在夸可以做这样接口可以做那样接口……前文我已经提到,接口差异化这个玩意,对用户的吸引力是有限的,尤其是常用接口。用ZedBoard上的那些接口,高端点的ARM芯片或多或少都集成了,如果单单是接口定制的话,以更低的价格买到完全满足接口要求的片子是完全可能的。而且通常还有IC设计公司提供的设计参考样例之类的设计资源。还是那句话,差异化不够明显的前提下,新的设计方法学要取代老的是缺乏推动力。
Binggo在文中言必称可重构,不过目前他做的这些与其称为可重构计算机,不如称为定制化计算机。可重构这个词虽然被滥用了,但是仍然有其基本含义。可重构-在硬件设计中的可重构英文是reconfigurable。而我们在对FPGA等可编程逻辑下载编程的过程称为configuration,而把配置方式(AS、PS、JTAG)等称为configuration modes。
Re这个词根在英语中就是重复的含义,configurable前面加了Re的意思就是可以重复的configurable。从广义上来说,所以的可编程逻辑都可以被重复的configurable,只要没有超过器件使用寿命。但是这里的可重复的configurable只是在系统工作前做的上电初始化而已,对于类似于开发板这样的开发平台,初始化配置不同的代码进去让这个平台做成不同的逻辑电路。这个是FPGA天生就有的功能,没有什么特别的。以前把FPGA分离在处理器外面可以这样干,今天把FPGA和处理器集成在一起也是这样干,设计方法并没有什么不同。只不过是分离和集成的关系,并没有带来设计方法上的改进。能带来的好处依然是把两个片子合成一个片子的好处,如原来在板子上不能高速通信的现在能了,总功耗小了,板子面积变小了,物料清单变少了等等。对于此,把任意两个原本分离的片子放到一起,都会带来这些好处。何况前面说了,仅仅只实现接口差异化的话,不一定非要用这种方案。对于这种原始的“重构方式”(姑且也称之为重构吧),以前有个冠冕堂皇的词叫“静态重构”。
“静态重构”有用吗?有用。什么时候用,当开发板用的时候有用。利用这种“静态重构”特性,一块FPGA开发板可以快速的定制出不同的系统原型来。然后呢?就没有然后了。这种“重构”,也就是方便开发人员做实验用。利用FPGA的产品,一旦开机上电配置初始化完毕,就开始单调重复的干起活来了,通常不会被再次重新配置成别的功能区干别的。
我这里说的是通常,那有异常吗?当然有。应用场景还是我上一篇提到的数据分析和科学计算的场景。在这种场景中,FPGA是作为一种运算加速器来使用的。数据分析和科学计算往往要处理海量数据,而且需要高的处理速度,这样就需呀硬件加速。因此由用CPU+GPU+FPGA混合在一起做数据分析和科学计算的方案。因为可以定制化做算法加速,通常这种加速平台采用FPGA加速时可以按以下流程进行:配置FPGA-取数据-运算并存储结果-运算完成-再配置-取数-做下一步运算。这种在系统运行不同时间段内把可编程逻辑“配置成”不同的逻辑功能电路,实现了可编程逻辑的复用,这才是真正意义上的reconfiguration。
今天先到这里,等会还有个会。