未来数字芯片的发展趋势

    

未来数字芯片的发展趋势

        谈到数字处理芯片,单片机、DSP、微处理器、FPGA,这几样芯片可谓是数字处理领域内无法永远无法缺少的角色了。当我们认真的去理解这几个芯片的时候,又可以发现前三样(单片机、DSP、微处理器),在无论是架构还是工作模式上他们都大同小异,其基本原理是:从RAM中取出编码的代码,通过译码控制ALU、数据RAM、寄存器等等实现逻辑和数字运算,或者是在前一个指令代码中修改下一个指令代码地址完成跳转等控制功能。正因为这样,笔者一般习惯性的将它们统称为处理器芯片。任何一个比较复杂的运算任务都可以被拆分为N个简单的基本指令,例如:for循环语句可以使用loop指令完成,乘法可以通过循环相加来实现(当然了,DSP就不用考虑这种乘法的拆分,它内部复杂的运算指令可以直接进行乘法等复杂运算)。这种芯片的工作模式最大的特点就是任务的顺序进行:两个模块无法完成同时进行工作。虽然现代的操作系统有了分时调用和多线程并行处理的功能,但是在事实上,这种所谓的并行处理其实仍然是顺序进行的,只是调用时间比较短让人看起来显得是两个或者是多个程序在同时进行工作。总而言之,这种处理器的优点是它的通用性,即基本上能实现任何的算法功能。但是这种通用性牺牲了它的高性能。而且,顺序处理的行为很难满足某些场合下需要极强的实时性和并行性的要求,比如在一些需要短时间内高速处理大量的图片运算的时候,就会显得“忙不过来”。

相比之下,FPGA就显得跟前者完全不同。学过数字电路的同学想必都会有些许的搭建逻辑电路的经历,流水灯、计数器、数码管等等都是这种数字电路的产物。这种搭建电路的方式有着极大的局限性:搭建一个复杂的逻辑电路需要很多的逻辑门,通过搭建数字逻辑芯片来实现基本上是不可能的。在这种情况下,FPGA就出现了,它的作用就是以快捷简单的方式实现这种数字逻辑电路的搭建。FPGA芯片里面包含很多的门电路和寄存器,我们需要做的事情就是详细的说明里面的门电路和寄存器应该如何连接和实现这种连接。前者称为写代码(事实上,称为写编码比较恰当),后者是烧写代码。可以通过组合复杂的逻辑电路来完成一个比较复杂的功能电路——其实之前我们所说的处理器芯片就是一种比较复杂的逻辑电路,因为笔者本科时期曾经在一块FPGA上实现了一个简单的处理器内核。不光是用来实现处理器,FPGA搭建的逻辑电路还可以用来实现高性能的数值运算的功能模块(我们又将这种模块称为IP核),比如说滤波器、FFT运算等等。FPGA的最大的优点就是吞吐量大、实时性强、完全的并行性。一个优秀的运算IP核能提供超快的数值处理,逻辑电路的基本性决定了它的实时性和并行性。但是,这种逻辑电路致命的缺点是:它的设计是为了专门的场合而设计的,无法满足一般场合的要求,换一个场合就要重新烧写另外的代码。

数字化时代对于数字芯片的要求显得格外的明显:在任何场合下的高性能的运算、超大的数据吞吐。对于运算吞吐,毫无疑问的是FPGA可以简单的满足这一要求。但是正如上面所说的,FPGA的专用型无法满足场合的要求。正好的是通用处理器却可以满足这一条件!那么是否可以将两者结合起来互相弥补对方的不足呢?答案是:可以!而且,笔者可以预料的是:这正是未来数字芯片的发展趋势。

假使有这么一个芯片:上面有一个通用的处理器,还有无数个用来实现各自功能的IP核。那么这个芯片的工作模式应该是这样的:芯片的I/O口获取到大量的数据需要处理,通用处理器通过控制寄存器,将数据交由IP核来处理,高速的IP核模块可以实现很大的数据吞吐,处理完毕后,IP核发送一个中断信号交给通用处理器,处理器再根据具体情况将处理后的数据发送出去,或者是再交给其他IP核再次处理,或是将其存放起来。通用处理器可以的功能是控制这些IP之间的协调性,使它们能够保持相互的合作。除此之外,处理器还可以完成IP无法完成的功能,例如数值排序等等算法。这种组合方式最大的优点是,以前处理器为了进行大量的数字运算,将复杂任务拆分为很多小的指令,不得不使用大量的时间来完成这些运算,而现在,硬件的运算优势——快,可以彻底的弥补这方面的不足。而且,以前FPGA的IP核虽然可以提供高性能运算,但却缺少必要的控制逻辑(虽然可以有简单的逻辑控制)来将众多的IP核功能组合起来实现更加高级的功能。马克思在自然辩证法里面说道:整体具有部分所不具备的功能,当部分以有序合理优化的结构形成整体时,整体功能大于局部功能之和。众多的IP核可以实现各自的功能,如果没有一个系统将其组合起来,一个个的IP核仍然是一个个的IP核。但是,当有一个处理器能够为它们提供逻辑和流程的组合的时候就可以完成之前IP核无法完成的功能了。在此,通用处理器就是用来提供这种由于合理优化的结构的。

举一个简单的例子:现在我需要现场转播自己唱的歌送给远方的一个网友,大体的工作流程如下:microphone将声音信号转换为数字信号,数字信号通过滤波处理得到比较的音质,再进行一次加密编码,还通过压缩,最后通过TCP报文封装发送到网络上的IP地址去。若是在之前,无论是滤波,加密还是压缩封装都需要计算机大量的计算资源。现在直接可以将这几种功能在IP上实现并集成在芯片上,通用处理器需要做的只是简单控制每一个IP工作的流程即可。

硬件的运算优势使得将来的运算任务越来越多的由IP核来承担,也就是说IP核的设计将会称为计算机运算性能提升最为关键的地方,而通用处理器的功能越来越向控制流程方向发展。这样,以前”程序=数据结构+算法”的思想将会慢慢的转变为“计算机=通用处理器(控制流程)+IP核(数字运算)。

世界上无论以intel为首的通用处理器的生产商还是以xilinx和altera为首的FPGA生产商,还继续想要在自己的单一的领域内无限提升芯片性能。虽然说不是不可以,但是,也许本文提供的新的数字芯片的架构会称为未来芯片的真正出路。

 

   作于2015.5.13晚(南京理工大学)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值