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

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

3天内不再提示

排序算法在FPGA上的实现

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

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

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

优劣势

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

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

软硬件结合的经典设计

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

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

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

审核编辑:彭静

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

    关注

    1600

    文章

    21281

    浏览量

    592856
  • 硬件
    +关注

    关注

    11

    文章

    2918

    浏览量

    64720
  • 排序算法
    +关注

    关注

    0

    文章

    50

    浏览量

    10019

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    FPGA排序-冒泡排序介绍

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

    十大排序算法总结

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

    求助-FPGA实现retinex算法

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

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

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

    VHDL中的排序算法怎么实现

    大家好!我想基于几点来实现排序算法: - 我有一组存储BRAM中的号码。这些数字以单精度浮点格式表示,我可以拥有的最大数字是400; - 电路应该能够读取BRAM中的数字,对它们
    发表于 03-29 13:44

    四种FPGA 电源排序方案

    2 示出了一款典型的多通道复位IC。采用复位IC 来实现排序的优点是解决方案处于受监视的状态。必须在确认每个电源轨都处在稳压范围内之后再释放下一个电源轨,而且无需电源转换器
    发表于 09-17 14:22

    怎么利用CORDIC算法FPGA实现高速自然对数变换器?

    本文利用CORDIC算法FPGA实现了高速自然对数变换器。
    发表于 04-30 06:05

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

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

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

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

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

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

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

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

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

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

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

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

    排序算法有哪些

    1. 归并排序(递归版) 归并排序(MERGE-SORT)是利用归并的思想实现排序方法,该算法采用经典的分治策略,即分为两步:分与治。 分
    的头像 发表于 10-11 15:49 322次阅读
    <b class='flag-5'>排序</b><b class='flag-5'>算法</b>有哪些