0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

排序算法在FPGA上的实现

lhl545545 来源:FPGA开发之路 作者:FPGA开发之路 2022-09-05 10:31 次阅读

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

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

优劣势

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

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

软硬件结合的经典设计

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

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

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

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21751

    浏览量

    604114
  • 硬件
    +关注

    关注

    11

    文章

    3342

    浏览量

    66279
  • 排序算法
    +关注

    关注

    0

    文章

    53

    浏览量

    10085

原文标题:硬件(FPGA)vs 软件

文章出处:【微信号:FPGA开发之路,微信公众号:FPGA开发之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python实现的常见内部排序算法

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部
    发表于 07-06 12:35 358次阅读
    Python<b class='flag-5'>实现</b>的常见内部<b class='flag-5'>排序</b><b class='flag-5'>算法</b>

    FPGA排序-冒泡排序介绍

    排序算法是图像处理中经常使用一种算法,常见的排序算法有插入排序、希尔
    发表于 07-17 10:12 1112次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>排序</b>-冒泡<b class='flag-5'>排序</b>介绍

    十大排序算法总结

    排序算法是最经典的算法知识。因为其实现代码短,应该广,面试中经常会问到排序
    的头像 发表于 12-20 10:39 1136次阅读

    求助-FPGA实现retinex算法

    求助大神,FPGA实现retinex算法 。。。
    发表于 05-08 23:29

    基于FPGA的中值滤波算法实现

    ` 本帖最后由 ninghechuan 于 2017-9-1 07:04 编辑 在这一篇开篇之前,我需要解决一个问题,一篇我们实现了基于FPGA的均值滤波算法
    发表于 09-01 07:04

    算法的原理是什么?基数排序是如何实现的?

    算法的原理是什么?基数排序是如何实现的?有哪几种方法可以实现基数排序
    发表于 07-05 07:42

    C语言实现常用排序算法是什么?

    C语言实现常用排序算法是什么?
    发表于 10-19 06:41

    雷达视频积累算法FPGA实现

    雷达视频积累算法FPGA实现 1 引 言 由于雷达所处的环境的复杂性,除了地物、云雨、鸟群等干扰外,还可能来自临近的雷达异步干扰、
    发表于 11-09 16:08 753次阅读
    雷达视频积累<b class='flag-5'>算法</b><b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>上</b>的<b class='flag-5'>实现</b>

    FPGA实现CRC算法的程序

    Xilinx FPGA工程例子源码:FPGA实现CRC算法的程序
    发表于 06-07 15:07 28次下载

    实用的排序算法 - 交换排序

    实用的排序算法 - 交换排序
    的头像 发表于 03-20 09:53 1752次阅读
    实用的<b class='flag-5'>排序</b><b class='flag-5'>算法</b> -  交换<b class='flag-5'>排序</b>

    排序算法分享:归并排序说明

    我们今天继续给大家分享排序算法里面的另外一种排序算法:归并排序
    的头像 发表于 12-24 14:34 780次阅读

    浅谈希尔排序算法思想以及如何实现

    01 希尔排序算法思想 希尔排序也是一种插入排序,是简单插入排序改进后的一个更高效版本,同时也是首批突破O(n^2)
    的头像 发表于 06-30 10:05 2038次阅读

    php版冒泡排序是如何实现的?

    无论学习哪一种编程语言,进行算法方面的训练时都绕不开“排序”。排序进阶编程中有非常广泛的应用,要想成为编程高手,排序
    的头像 发表于 01-20 10:39 952次阅读
    php版冒泡<b class='flag-5'>排序</b>是如何<b class='flag-5'>实现</b>的?

    怎么用FPGA算法 如何在FPGA实现最大公约数算法

    FPGA算法是指在FPGA(现场可编程门阵列)实现算法
    的头像 发表于 08-16 14:31 2919次阅读
    怎么用<b class='flag-5'>FPGA</b>做<b class='flag-5'>算法</b> 如何在<b class='flag-5'>FPGA</b><b class='flag-5'>上</b><b class='flag-5'>实现</b>最大公约数<b class='flag-5'>算法</b>

    FPGA实现双调排序算法的探索与实践

    双调排序(BitonicSort)是数据独立(Data-independent)的排序算法,即比较顺序与数据无关,特别适合并行执行。了解双调排序
    发表于 03-14 09:50 666次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>双调<b class='flag-5'>排序</b><b class='flag-5'>算法</b>的探索与实践