首页
学习
活动
专区
工具
TVP
发布

网络交换FPGA

专栏作者
113
文章
292463
阅读量
100
订阅数
【开源】手把手教你写支持RMT架构的P4语言后端编译器!
摘要:P4语言已成为编程基于可重构匹配动作表的可编程交换机的主要选择。V1Model架构是匹配动作架构最广泛可用的实现。P4联盟开发的开源编译器前端可以执行语法分析,并导出使用最新版本的P4(也称为P416)编写的程序的硬件独立表示。但是还需要后端编译器将此硬件表示映射到V1Model交换机的硬件资源。然而,没有开源后端编译器可用于检查P416程序在V1Model交换机上的可实现性。不同硬件供应商提供的专有工具完成上述映射过程。但是,它们是封闭源代码,我们看不到内部的映射机制。这抑制了针对可重构匹配动作表架构的新映射算法和创新指令集的实验。此外,专用后端编译器成本高昂,并附带各种保密协议。这些因素对可编程交换机相关研究提出了严峻挑战。在这项工作中,我们为基于V1Model架构的可编程交换机提供了一个开源P416后端编译器。它使用基于启发式的映射算法将P416程序映射到V1Model交换机的硬件资源上。它允许开发人员快速原型化不同的映射算法。它还提供了P416程序的各种资源使用统计信息,从而能够在多个P416方案之间进行比较。
网络交换FPGA
2022-11-23
1.6K0
SIGCOMM2022:一种采用非流水线架构的P4网络可编程芯片-Trio
摘要:本文介绍了Trio,一种用于瞻博(Juniper)网络MX系列路由器和交换机的可编程芯片组。Trio的架构基于一个多线程的可编程数据包处理引擎和一个分层的大容量内存系统,这使得它与基于流水线的架构有着根本的不同。Trio可以优雅地处理各种网络用例和协议的非同质包处理率,使其成为新兴网络内应用的理想平台。我们首先描述了Trio芯片组的基本构件,包括其多线程的包转发和包处理引擎。然后,我们讨论Trio的编程语言,称为微代码。为了展示Trio灵活的基于Microcode的编程环境,我们描述了两个使用案例。首先,我们展示了Trio为分布式机器学习执行网络内聚合的能力。其次,我们提出并设计了一种使用Trio的定时器线程的网络内滞留者缓解技术。我们在测试平台上使用三个真实的DNN模型(ResNet50、DenseNet161和VGG11)对这两个用例进行了原型测试,以证明Trio在执行网络内聚合的同时缓解串扰的能力。我们的评估表明,当集群中出现散工问题时,Trio的性能比目前基于流水线的解决方案高1.8倍。
网络交换FPGA
2022-11-23
1.3K0
【实测】基于开源硬加速平台RIFFA架构的PCIe DMA性能测试及分析
RIFFA 是一种开源通信架构,它允许通过 PCIe 在用户的 FPGA IP 内核和 CPU 的主存储器之间实时交换数据。为了建立其逻辑通道,RIFFA 在 CPU 端拥有一系列软件库,在 FPGA 端拥有 IP 核。本文主要针对其中的DMA性能(Scatter-Gather DMA)进行测试。
网络交换FPGA
2022-03-30
3K0
在高速网卡中实现可编程传输协议
摘要:数据中心网络协议栈正在转向硬件,以在低延迟和低CPU利用率的情况下实现100 Gbps甚至更高的数据速率。但是,NIC中络协议栈的硬连线方式扼杀了传输协议的创新。本文通过设计Tonic(一种用于传输逻辑的灵活硬件架构)来实现高速网卡中的可编程传输协议。在100Gbps的速率下,传输协议必须每隔几纳秒在NIC上仅使用每个流状态的几千比特生成一个数据段。通过识别跨不同传输协议的传输逻辑的通用模式,我们为传输逻辑设计了一个高效的硬件“模板”,该模板在使用简单的API编程的同时可以满足这些约束。基于FPGA的原型系统实验表明,Tonic能够支持多种协议的传输逻辑,并能满足100Gbps背靠背128字节数据包的时序要求。也就是说,每隔10 ns,我们的原型就会为下游DMA流水线的一千多个活动流中的一个生成一个数据段的地址,以便获取和传输数据包。
网络交换FPGA
2021-10-11
2.6K1
1024bit以上大位宽可重构包处理器可编程CRC算法的设计与实现
循环冗余码校验(CRC)是一种众所周知的错误检测代码,已广泛用于以太网,PCIe和其他传输协议中。现有的基于FPGA的实现解决方案在高性能场景中会遇到资源过度利用的问题。填充零问题和可编程性的引入进一步加剧了这个问题。在本文中,提出了stride-by-5算法,以实现FPGA资源的最佳利用。提出了pipelining go back算法来解决填充零问题。提出了使用HWICAP进行重编程的方法,以实现资源占用少且恒定的可编程性。实验结果表明,所提出的非分段架构的资源利用率与两种基于FPGA的最新CRC实现相比,降低80.7%-87.5%和25.1%-46.2%,并且所提出的分段架构具有比两种最新状态更低的资源利用率,分别降低了81.7%-85.9%和2.9%-20.8%艺术建筑。此外,保证了吞吐量和可编程性。源代码已在GitHub开源。
网络交换FPGA
2021-01-12
9990
"小爱同学"之类语音唤醒芯片相关技术介绍
作为新兴信息产业的重要应用领域,物联网的万亿级别市场正在逐步形成,超万亿级的设备和节点将通过物联网技术实现万物互联和万物智联。受限于体积、重量和成本等因素,物联网节点(如可穿戴设备、智能家居节点、无线传感器节点、环境监测节点等)需要在微型电池或能量收集技术进行供电的情况下,能够持续工作数年乃至十年以上,这对芯片提出了苛刻的低功耗要求。 目前,降低物联网芯片功耗的主要研究方向是基于周期性工作模式的专用型唤醒芯片(例如:专用语音识别唤醒芯片),通过让芯片处于周期性的“休眠-唤醒”的切换状态,来实现降低功耗的目的;然而,物联网节点通常工作在“随机稀疏事件”场景下,为了避免丢失随时可能发生的事件,通常需要“休眠-唤醒”的频率远高于事件的真实发生率,从而导致了严重的功耗浪费。
网络交换FPGA
2020-07-13
2.2K0
一文学会使用全球第四大数字芯片仿真器iverilog!
Icarus Verilog(以下简称iverilog )号称“全球第四大”数字芯片仿真器,也是一个完全开源的仿真器。由于Synopsys、Cadence、Mentor版权的关系,国外很多高校在数字芯片设计的教学中都采用iverilog。
网络交换FPGA
2020-06-22
1.3K0
目前学术界最先进的数据包调度器介绍!
随着链路速度的提高和CPU速度缩放速度的降低,软件中的数据包调度会导致较低的精度和较高的CPU利用率。通过将数据包调度卸载到诸如NIC之类的硬件,可以潜在地克服这些缺点。然而,为了保持软件分组调度器的灵活性,硬件中的分组调度器必须是可编程的,同时还必须快速且可扩展。硬件中最先进的数据包调度程序要么折衷了可扩展性(Push-In-First-Out(PIFO)),要么表达了各种数据包调度算法的能力(先进先出(FIFO)))。此外,即使是像PIFO这样的通用调度原语,其表达能力也不足以表达分组调度算法的某些关键类别。因此,在本文中,我们提出了PIFO原语的泛化,称为Push-In-Extract-Out(PIEO),它与PIFO一样,维护元素的有序列表,但与PIFO不同,PIFO只允许从列表的开头出队,PIEO通过在出队时支持基于断言的可编程过滤,允许从列表中的任意位置出队。接下来,我们介绍PIEO调度程序的快速且可扩展的硬件设计,并在FPGA上进行原型设计。总体而言,PIEO调度程序比PIFO具有更高的表达力和30倍以上的可伸缩性。
网络交换FPGA
2020-06-07
3.6K0
Google芯片自动布局论文解读
四月初,谷歌大脑团队使用 AI 进行芯片布局的一篇相关研究论文《Chip Placement with Deep Reinforcement Learning》在 ArXiv 上公布。在 Azalia Mirhoseini 这篇 ArXiv 论文中,她和谷歌高级软件工程师 Anna Goldie 表示,对芯片设计进行了足够长时间的学习之后,团队开发的算法可在不到 24 小时的时间内为谷歌 TPU 完成设计,且在功耗、性能、面积都超过了人类专家数周的设计成果。她们认为,理想情况下,新设计出的芯片应该能够很好地满足当今 AI 算法的需求,“如果 AI 能够缩短芯片的设计周期,在硬件与 AI 算法之间建立共生关系,会进一步推动彼此的进步”。
网络交换FPGA
2020-05-26
1.1K0
谷歌会超越三大巨头垄断芯片EDA设计工具吗?
文章开头提到的谷歌研究论文题目为《芯片布局与深度强化学习 (Chip Placement with Deep Reinforcement Learning)》。文中研究人员针对芯片设计流程中最复杂耗时的布局布线阶段提出了一种基于深度强化学习的芯片布局方法,目标是将宏(如SRAM)和标准单元(逻辑门,如NAND、NOR和XOR)的网表节点映射到一个芯片版图上,从而优化功率、性能和面积(PPA),同时遵守对布局密度和布线拥塞的约束。
网络交换FPGA
2020-05-08
1.7K0
HLS与RTL语言使用情况调查
数十年来,寄存器传输级别(RTL)一直是描述超大规模集成(VLSI)系统及其组成知识产权块的主要方法。尽管RTL工具只是逐步发展的,但VLSI系统的复杂性却呈指数级增长,这使设计和验证过程成为生产力的瓶颈[1]。
网络交换FPGA
2020-04-21
2.3K0
【实测】网络中可以传小于64字节的数据包吗?
电磁波在双绞线上传输的速度为0.7倍光速,在1km电缆的传播时延约为5us。传统的网络信道比较差,需要有重传机制保障可靠性。于是,在节点A向节点B发送数据进行通信的时候,要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit 时间。(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。因此,传统以太网有如下特点:
网络交换FPGA
2020-04-21
2.9K0
PCIe接口中断驱动寄存器被覆盖问题的发现与解决
我们在Windows下使用WDF框架开发PCIe驱动的DMA读写功能。驱动要启动一次DMA传输包括两个步骤
网络交换FPGA
2019-10-29
1.5K0
从gem5到ASIP,如何打造一款自己的交换芯片模拟器?
长期以来,在设计芯片时经常遇到这样的困惑,采用传统流程设计某种类型的芯片时周期很长,某些模块的特点至少等到进行FPGA验证阶段才能分析其性能,如果不合适,还需要推翻原来的架构重新设计,给设计流程和设计复杂度带来很大的困扰。为了在芯片真正开始写代码设计之前就把上述问题解决掉,芯片模拟器的思想应运而生了。
网络交换FPGA
2019-10-29
2.4K0
一种动态调整RGMII接口时序的方法
第一种是功能性的,仿真一下就能查到原因,并且这类问题往往是确定性的,也容易重现和解决,比如本公众号之前介绍的搭建仿真环境的一些方法:Modelsim的安装与使用,用Modelsim独立仿真带Vivado IP核的仿真工程,如何用ModelSim 独立仿真ISE的仿真工程。这类问题中稍微有难度的就是仿真环境不容易重现的,或者需要跑很长时间仿真才能重现的,这一类问题本公众号之前介绍过一种解决方案,详见:Vivado进行FPGA调试“犯罪现场”,在仿真环境中重现方法;
网络交换FPGA
2019-10-29
3.1K0
EDA算法探究--20世纪10个影响最大的算法在EDA领域的应用
21世纪初,科研人员总结了上个世纪对工业界影响最大的10个算法,其中大多数算法都在EDA领域有重要应用。我们今天来看一下,这10大算法,你在大学期间学过哪些?在工作中学过和用到哪些?如果10个算法你全部在工作中应用到,说明你已经对人类一个世纪以来研究的精华掌握得很好了。
网络交换FPGA
2019-10-29
2.6K0
IC工程师的通用技能:文本处理
以上摘录自【The Pragmatic Programmer: From Journeyman to Master】,中文译名“程序员修炼之道——从小工到专家”。 值得借鉴。
网络交换FPGA
2019-10-29
8910
经典ASIC开发流程
最近收拾书架,翻出一张多年以前的ASIC项目开发流程图,一起回顾一下。典型的瀑布式开发流程:
网络交换FPGA
2019-10-29
1.3K0
Python3实现ICMP远控后门(下)之“Boss”出场
熬到最后一篇了,本系列的Boss要出场了,实现了一个有意思的ICMP后门,暂时使用pyinstaller打包成了一个win32和64版本,如下图所示。
网络交换FPGA
2019-10-29
9930
网络处理器概述
曾几何时,网络处理器是高性能的代名词。为数众多的核心,强大的转发能力,定制的总线拓扑,专用的的指令和微结构,许多优秀设计思想沿用至今。Tilera,Freescale,Netlogic,Cavium,Marvell各显神通。但是到了2018年,这些公司却大多被收购,新闻上也不见了他们的身影,倒是交换芯片时不时冒出一些新秀。
网络交换FPGA
2019-10-29
2.6K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档