前言

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;

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

总结

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

感悟:FPGA的并行处理与PC的多线程处理的更多相关文章

  1. FPGA IN 金融领域

    何为金融: 金融指货币的发行.流通和回笼,贷款的发放和收回,存款的存入和提取,汇兑的往来等经济活动.金融(FIN)就是对现有资源进行重新整合之后,实现价值和利润的等效流通. 金融主要包括银行.证券.基 ...

  2. PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植

    PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...

  3. AC6102开发板USB3.0测试和使用说明

    AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲, ...

  4. 串口发送浮点型数据及int(2个字节)long int(4个字节)的方法

    方法一: 直接把float数据拆分为4个unsigned char(由于数字没法拆分,所以只能用指针的),发过去,在合并为float. 其中有两点要注意. (1)大端存储,小端存储:如果搞错读取数据就 ...

  5. Virtex6 PCIe 超简版基础概念学习(二)

    Virtex6 PCIe 超简版基础概念学习(二) 分类:FPGAPCIe (2081)  (0)  举报  收藏 文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 ise14.7 ...

  6. USB3.0测试和使用说明

    概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲,功能强大,接口简单,非常适合用于各种需要高速数 ...

  7. 基于FPGA的红外遥控解码与PC串口通信

    基于FPGA的红外遥控解码与PC串口通信 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<电子设计EDA>的课程设计作业(呵呵,这个月都拿 ...

  8. PC和FPGA间的串口通信实现

    应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现   概述   本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制. ...

  9. 如何保证FPGA PCIe唤醒能满足PC的100ms 的时间要求(Autonomous Mode)?

    原创By DeeZeng [ Intel FPGA笔记 ]  PC 需要PCIe设备在 100ms 内启动,这样PC 才能扫描到PCIe 设备.对于 FPGA PCIe 板卡,同样也需要满足这个时间要 ...

  10. PHP PC端接入支付宝和微信感悟

    想着中秋节的时候把异步线程学习完,同事说有个PHP的支付要帮忙做一下,虽然中秋节计划是把C#的异步学完,不过还是喜欢挑战,好久没有像大学一样这么认真的熬夜解决问题了.由于在大学学过asp,它和php有 ...

随机推荐

  1. 【Android】使用 ContentObserver 监控统状态信息

    1 前言 使用ContentProvider实现跨进程通讯 中介绍了自定义 ContentProvider,为外界提供操作 SQLite 的接口.但是大多数情况下,服务端的 ContentProvid ...

  2. Js模块化导入导出

    Js模块化导入导出 CommonJs.AMD.CMD.ES6都是用于模块化定义中使用的规范,其为了规范化模块的引入与处理模块之间的依赖关系以及解决命名冲突问题,并使用模块化方案来使复杂系统分解为代码结 ...

  3. eclipse配置Maven本地仓库

    一.首先下载maven插件并配置maven的环境变量,可参考:http://jingyan.baidu.com/article/cb5d61050b8ee7005d2fe04e.html 二.打开ec ...

  4. P1536 村村通(并查集)

    村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接 ...

  5. SpringBoot整合Groovy脚本,实现动态编程

    Groovy简介 Groovy 是增强 Java 平台的唯一的脚本语言.它提供了类似于 Java 的语法,内置映射(Map).列表(List).方法.类.闭包(closure)以及生成器.脚本语言不会 ...

  6. 【LeetCode二叉树#10】从中序与后序(或者前序)遍历序列构造二叉树(首次构造二叉树)

    从中序与后序遍历序列构造二叉树 力扣题目链接(opens new window) 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorde ...

  7. OpenCV计数应用 c++(QT)

    一.前言 为了挑战一下OpenCV的学习成果,最经一直在找各类项目进行实践.机缘巧合之下,得到了以下的需求: 要求从以下图片中找出所有的近似矩形的点并计数,重叠点需要拆分单独计数. 二.解题思路 1. ...

  8. 第129篇:JS模块化开发

    好家伙,本篇为<JS高级程序设计>第二十六章"模块"学习笔记 JS开发会遇到代码量大和广泛使用第三方库的问题. 解决这个问题的方案通 常需要把代码拆分成很多部分,然后再 ...

  9. Elasticsearch使用实战以及代码详解

    Elasticsearch 是一个使用 Java 语言编写.遵守 Apache 协议.支持 RESTful 风格的分布式全文搜索和分析引擎,它基于 Lucene 库构建,并提供多种语言的 API.El ...

  10. 精贴总结 - Serverless 的承诺都兑现了吗

    原文 - Serverless 的承诺都兑现了吗? 一.个人看法 serverless根本目的是降低成本,所以baas是核心 冷启动是关键的技术难点,也限制了faas的作用域 供应商锁定是个坑,标准化 ...