本周我想进一步探究可编程逻辑(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. 扛把子组20191031-8 alpha week 1/2 Scrum立会报告+燃尽图 06

    此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9916 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 ...

  2. Learning Markov Clustering Networks for Scene Text Detection

    Learning Markov Clustering Networks for Scene Text Detection 论文下载:https://arxiv.org/pdf/1805.08365v1 ...

  3. 2019-9-28:渗透测试,基础学习,pgp常量,逻辑运算,DNS投毒,笔记

    sunny.exe clientid 隧道ID route -n 查看网关netstat -rn 查看网关 DNS劫持ettercap用来内网渗透测试使用,可以嗅探内网,DNS劫持等攻击1,在攻击者电 ...

  4. HTML字符实体(Character Entities)与 转义字符串(Escape Sequence)(转)

    为什么要用转义字符串?HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望 ...

  5. js对象的直接赋值、浅拷贝与深拷贝

    最近Vue项目中写到一个业务,就是需要把对话框的表单中的数据,每次点击提交之后,就存进一个el-table表格中,待多次需要的表单数据都提交进表格之后,再将这个表格提交,实现多个表单数据的同时提交,期 ...

  6. selenium常用命令之页面元素定位

    WebDriver driver= new ChromeDriver();   <input type="text" id="phone" name=&q ...

  7. Virtualbox修改虚拟机分配内存的大小

    起因:因为虚拟机刚开始分配的内存太小,导致太卡, 解决方法:修改虚拟机分配内存的大小 方法一:必须在关闭ubuntu的前提下进行,否则无法修改 点击设置 系统选项 主板中的内存大小 之后开启即可 方法 ...

  8. Vue-Property-Decorator源码分析

    概述 vue-property-decorator是基于vue组织里vue-class-component所做的拓展,先来了解一下vue-class-component Vue-Class-Compo ...

  9. phpStudy搭建PHP服务器

    目录 1 下载 2 安装 3 新建站点 4 配置host phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的 Apache+Nginx+LightTPD PHP MySQL+php ...

  10. Word表格斜线怎么弄?这里有三种方法很实用

    有些时候我们也会在Word文档中插入表格,因为这样可以准确的表达出文档中的内容.大家应该都知道Excel表格斜线怎么弄,那么Word表格斜线怎么弄吗?今天呢小编就帮大家总结了三种方法哦,有需要的小伙伴 ...