入门:排序算法在FPGA上的实现

  做项目实现某个feature时经常会考虑一个问题,硬件实现还是软件实现,还是软硬件结合。

  要想回答好这个问题,就要理解硬件和软件的各自的优劣势。

  优劣势

  软件程序其实是运行在CPU上的,所有的程序都要分解为一条一条的机器指令去运行。CPU作为一种通用的架构,它最大的优势自然也是通用,擅长复杂的逻辑和运算操作。但也因为其通用的架构,使得CPU在某些特定的应用场景性能不足,比如视频渲染,不然也不会出现GPU。

  FPGA则恰恰相反。FPGA非常擅长并行计算,同时能够提供极低的延迟。但是却不擅长复杂的逻辑和数学运算操作,比如调度算法,甚至某些看起来比较简单的排序算法在FPGA上实现也比较麻烦。

  软硬件结合的经典设计

  计算机系统中的地址翻译可以看做一个经典设计。

  地址翻译是将虚拟地址转换为物理地址。这个过程是通过查找表(页表)的方式实现的。页表中存储着物理地址,那么要存储哪些物理地址,哪个物理地址存储在哪一个表项,是一个比较复杂的逻辑,这个过程是通过操作系统即软件来实现的。当程序或者进程在运行期间需要访问某一个地址,我们希望用最快的速度来实现地址翻译,这个过程用到的便是硬件,硬件读取页表的内容获得物理地址即可。

  最后回到最初的问题,用硬件还是用软件,一句话总结,复杂的对性能要求较低的交给软件,简单的性能要求高的交给硬件。



更多信息可以来这里获取==>>电子技术应用-AET<<  

mmexport1621241704608.jpg


通知公告
编辑观点
理事会
参考资料
版权声明

凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。

《网络安全与数据治理》(原《信息技术与网络安全》)编辑部