• 感悟:FPGA的并行处理与PC的多线程处理


    前言

    FPGA的并行设计是其高速处理的核心之一, 通过并行地处理大量的数据实现预期的功能;

    PC的多线程设计则是处理大量的内容而衍生出的一种处理方式, 其本质是利用CPU的高速处理能力, 将单个线程以难以察觉的速度处理, 从而实现多线程的稳步运行;

    两者的目标有所不同, 实现的手段也是存在差异;


    内容

    FPGA的并行处理

    FPGA的并行处理依靠的是数字电路的时钟构建的时序, 通过时钟不停地触发不同地模块, 实现数据按照预期地目标推进; 期间各个模块地推进只通过信号进行控制, 不依赖于其他地资源;

    这种处理模式, 可以保证FPGA的并行是实时且不干扰的发生的, 从而达到处理效率的提升; 换言之, FPGA处理的数据量取决于逻辑资源的量, 处理的速度取决于时钟及对应的时序资源;

    这样做的好处显而易见, 速度可以随着资源的增加而快速提升; 与之对应的缺点是资源利用率的降低; FPGA中的逻辑资源一旦确定, 就无法修改, 也就是说其他模块无法调用已经分配的

    逻辑资源;

    PC的多线程处理

    PC的CPU属于ASIC, 通过各种版图构建的高速处理模块; 一般而言, ASIC的时钟及时序要远高于FPGA; ASIC可以在设计时对时序进行MOS层次的优化, 所能实现的效果是FPGA将时序以

    固定的模块约束所不能比的; CPU每个模块的资源是固定的, 在设计之初就将所有的资源按照需求进行了完整的分配, 在底层逻辑及操作系统的控制下, 硬件资源进行高速地处理;

    目前地多核技术可以提高数据地处理速度, 但是操作系统还是需要按照指令进行解析, 所有底层的执行逻辑还是单线程的; 利用单线程的高速处理能力, 实现多个短时任务的合并处理;

    PC的优势在于资源利用率高, CPU可以将大量的重复操作交给指定的模块, 实现资源的高效利用; 其缺点在于过早固化的硬件难以满足一些特定的情形, 比如高并发数据的处理;

    两者对比

    FPGA追求硬件的灵活性, 利用硬件的并发处理能力处理特定的需求;

    PC追求软件的速度, 利用硬件的重复利用提高处理的能力, 满足大部分的需求;

    一般而言, FPGA中比较常用的模块会慢慢转化为一些专用模块, PC中一些比较极端的需求也会以独立的芯片脱离出CPU;

    两者在专用和通用的两面发挥重要的作用;


    总结

    对比, 才能知道优劣所在;

    欢迎在下方评论、转发、分享。
  • 相关阅读:
    分布式任务调度系统xxl-job相关问题补充
    分布式任务调度系统xxl-job源码探究(一、客户端)
    分布式任务调度系统xxl-job源码探究(二、服务中心)
    分布式任务调度系统xxl-job搭建
    Rocketmq日志收集与logback集成Demo
    [JavaWeb基础] 006.Struts1的配置和简单使用
    [JavaWeb基础] 005.Hibernate的配置和简单使用
    [工具推荐]003.Tortoisegit使用教程
    移动推广关键指标
    [Objective-C] 009_Foundation框架之NSDictionary与NSMutableDictionary
  • 原文地址:https://www.cnblogs.com/electricdream/p/15685692.html
Copyright © 2020-2023  润新知