本周我想进一步探究可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构。我发现了三种主要方式,它们是如何映射并处理通信的,哪些组件需要管控时序并且有访问权限。

AXI Bridge

为了能够实现HPS与FPGA之间的通信接口,衍生出了AXI bridge协议。AXI bridge协议能够处理带宽适应和时钟控制,支持HPS与FPGA之间双向的逻辑和数据交互。

 

HPS到FPGA

HPS到FPGA有两种类型:高吞吐量和低吞吐量。高吞吐量的数据带宽可以使32位、64位或128位,它是专门为高带宽数据传输而设计的,HPS作为主,处在L3层。

轻量级(或低吞吐量)通道被限制为32位,然而它进行了优化,延迟最低。它的主要功能是将控制和状态寄存器传递给FPGA。此外它也对HPS到FPGA的通信通道进行了一定的分流,具体类比描述见图1,从HPS到FPGA有两条通道:第一个是32位数据通道具有更高的速度限制,另一个则设计了很多个通道,在同一时刻支持更高的带宽和更多的数据传输。

FPGA到HPS

图1的第三个通道是实现FPGA到HPS的数据传输,它设计的目的是访问HP slave接口或在HPS程序端等待数据的输入。它可以配置为32位、64位或者128位的数据带宽,是由HPS L3主切换时钟来控制。

为了将这些通信通道结合在一起,我开始翻阅Intel开发者社区的黄金硬件参考设计指南(GHRD),它提供了一些例子来说明如何在FPGA和HPS之间建立AXI bridge通道,正是借助它我真正体会到了“配置向导”的强大功能,只需要鼠标点击六次我就完成了三个通信通道的配置,同时还可以配置内存分配。最后我了解到HPS bridge是映射到片上内存,实现尽可能少的延迟。而FPGA部分则映射到从内存地址,当有数据时将数据写入内存。

将它们整合在一起

那么这意味着什么?通信通道和不同传输层对于我这种对小型低功耗的MCU经验丰富的人来说也不是有太多的机会应用它们。尽管如此,那些习惯ARM MCU编程的开发者来说可能会熟悉这些通信通道(Bridge)。实际上这些通信通道是一系列的控制寄存器和内存映射,会以非常高的速度被访问,这对于多线程、多核系统非常的有用,因为这类系统需要高速、多用途的数据传输。当然这种内部互联的想法对于MCU爱好者来说是非常普遍的。使用内部互联通信通道来分担任务是非常熟悉的,但是将它们当做内存或RAM来访问则有些新奇了。简单来说,L3层是实现从FPGA到HPS通信机制而设计的,支持不同处理器核之间的数据传输。它开放了FPGA资源执行一些HPS所要完成的任务,否则HPS会有极大的阻碍,最终从整体上提升了系统性能。

可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构的更多相关文章

  1. FPGA的软核与硬核

    硬核 zynq和pynq系列的fpga都是双ARM/Cortex-A9构成,这里的ARM处理器为硬核,Cortex-A9部分为FPGA部分.即整体分为两部分:PS/PL.PS部分为A9处理器部分,PL ...

  2. 嵌入ARM硬核的FPGA

    目前,在FPGA上嵌入ARM硬核的包括Xilinx的zynq系列以及Intel 的CYCLONEV系列. Zynq出来有一定市场,但是这个市场不是传统FPGA的主流市场,而是为了和微处理抢一些控制领域 ...

  3. 各种软核处理器二进制文件FPGA初始化文件生成程序

    不管是MIPS, Nios II, MicroBlaze, MSP430, 8051, OpenRISC, OpenSPARC, LEON2/LEON3等等软核处理器,在FPGA上实现的时候我们通常需 ...

  4. 程序员需要了解的硬核知识之CPU

    大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CP ...

  5. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?

    封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...

  6. 重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用

    欢迎关注公众号:bin的技术小屋 大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章<从内核角度看IO模型的演变>,在这篇文章中我们通过图解的方式以 ...

  7. 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

  8. Colder框架硬核更新(Sharding+IOC)

    目录 引言 控制反转 读写分离分库分表 理论基础 设计目标 现状调研 设计思路 实现之过五关斩六将 动态对象 动态模型缓存 数据源移植 查询表达式树深度移植 数据合并算法 事务支持 实际使用 展望未来 ...

  9. 阿里P7整理“硬核”面试文档:Java基础+数据库+算法+框架技术等

    现在的程序员越来越多,大部分的程序员都想着自己能够进入大厂工作,但每个人的能力都是有差距的,所以并不是人人都能跨进BATJ.即使如此,但身在职场的我们一刻也不能懈怠,既然对BATJ好奇,那么就要朝这个 ...

随机推荐

  1. ACL2019: 《GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction》源码解析

    论文地址:<GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction> G ...

  2. Vue使用element上传

    <el-upload action v-if="IsUpload" style="display:inline" list-type="pict ...

  3. Flex调用JavaScript获取文件路径

    Flex的Web中有FileReference的类可以对文件操作,实现上传.下载的功能,但是没有办法获取到文件的路径. 普遍的方法是Flex调用JavaScript的文件浏览功能来获取文件路径. 1. ...

  4. nginx支持wss配置

    nginx证书 nginx.conf配置

  5. (一)OpenStack---M版---双节点搭建---基础环境配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 配置如下 本次搭建采用2台4核4G的虚拟机,也可以用2台2核4G 主机名 配置 网络 Contr ...

  6. 闲来无事写了一套 Jenkins 主题样式:刀锋

    背景 Jenkins 的前端 CSS 样式坚挺了这么多年已经觉得腻的不行了,于是想换个风格缓解一下视觉疲劳,便有了这个项目.由于本人不是前端,所以很多只是随便改改,有些复杂的需求也实现不了,但是总的来 ...

  7. 【笔记】vue+springboot前后端分离实现token登录验证和状态保存的简单实现方案

    简单实现 token可用于登录验证和权限管理. 大致步骤分为: 前端登录,post用户名和密码到后端. 后端验证用户名和密码,若通过,生成一个token返回给前端. 前端拿到token用vuex和lo ...

  8. 两个对象值相同(x.equals(y)==true),但却可有不同的hashcode这句话对吗?

    1.这句话当然不对啦,请参看官方文档给出的解释! hashCode public int hashCode()返回该对象的哈希码值.支持此方法是为了提高哈希表(例如 java.util.Hashtab ...

  9. sql语句查询结果合并union all用法_数据库技巧

    --合并重复行 select * from A union select * from B --不合并重复行 select * from A union all select * from B 按某个 ...

  10. jsp html 实现隐藏输入框,点击可以取消隐藏&&弹出输入框

    jsp代码: <script language="javascript" type="text/javascript"> function chg ...