【片上网络专题讨论一】 片上总线的发展历程

闲言稍叙

我在研二的2023年10月开始接触片上网络,中间也学习过一段时间超标量CPU设计,也算都是相关的课题。随着研究生毕业,也许以后不一定能再用到这块的知识,就想着趁着最近有时间,把这块的知识整理整理输出到社区,发挥一点余热也好过留在我的脑子里,在岁月的橱柜中逐渐吃灰。相比于写学位论文所要求的格式完美、结果丰满,我可能更喜欢写博客,因为可以更加充分和完整地表述在研究过程中经历的种种思考,而不是只是给出一个完美的答案。我希望用相对口语化的表述来讲清楚我理解的片上总线以及片上网络,并无偿分享所做的片上网络仿真器设计以及电路设计,因此这个系列会带有比较多的个人观点,可能有许多未必正确,有兴趣的朋友点个关注不迷路。

片上总线的发展

随着芯片上晶体管数量的变多,对于连接片上各模块的总线要求也在提高。高带宽、高可靠、低延迟、可扩展、低功耗是片上总线关心的重点指标。

首先出现的总线应当是点到点互联,也就是将需要通信的模块直接连起来,比如CPU和内存之间用一个512bits的总线连接。从芯片后端物理实现的角度来说,总线的本质是金属,可以传导信号。但是点到点互联的问题是,在不进行数据传输的时候,显然总线带宽是被浪费了。

为了更充分地利用总线,就出现了共享总线。将所有IP核接入到共享总线下,共享总线在同一时间只能被一对主从设备使用(这里的设备和IP核意思一样,后面不再区分),其他设备需要通信则必须要等待总线仲裁获胜并授权。从底层电路角度来说,共享总线的组成部分首先是金属互连线本身,然后还有仲裁电路以及译码电路。仲裁电路用来对申请通信的设备按照一定的算法来授权,译码电路则是用来判断读写请求的地址,并发送到对应的设备。

共享总线的问题是随着接入设备的变多,显然会出现因为仲裁失败而导致的时延问题,优先级比较低的设备可能有饥饿现象。有人可能会说,那你只要频率够高,位宽够大,那就可以很快轮到低优先级设备呀,不一定就会饥饿。这么说也有道理,但共享总线的位宽是固定的,比如CPU访存可能需要位宽比较大的总线,而中断或者外设可能就只需要位宽很小的总线,这时候就只能按照大位宽来设计。那么小设备占用共享总线的时候,就会存在带宽浪费的情况。此外,由于大家共享同一个总线,采用同一个clk,此时随着接入设备的增多,由于时钟源链接到各个模块的互连线长度不同,进而互连线造成的延迟也不同,进而造成了时钟偏斜问题。为了让大家的时钟都是同一个clk,在芯片后端实现时就需要解决时钟偏斜问题,通过插buffer来加延迟(即时钟树综合),让大家时钟一致。而插入了buffer就会有功耗,所以高频电路设计中,共享总线也会面临时序收敛以及功耗问题。

共享总线的下一个发展形态是交叉开关总线。共享总线的问题就是全局时钟同步、只有一个大位宽总线、分时复用的仲裁机制,交叉开关总线的本质就是将每个主机和每个从机连接起来,通过多路选择器来选通。如果不需要通信的主从对,就可以去掉那根线。由于可以通信的线多了,并行度就会好一些,并且位宽也可以分别设定。在实际应用中,往往会分级处理,将高速设备和低速设备挂载在不同频率的交叉开关下,通过Bridge来连接交叉开关,这样做也有助于降功耗。

片上网络是在进入21世纪以后就被提出的课题。随着单CPU核在指令级并行上的提升遇到瓶颈,而且互联网的发展增强了并行计算的需求,从而多核架构成为主流。既然核数变多了,互联需求也就增加了,CPU核、缓存、DDR之间需要互联,片上网络作为一种新型总线形态应运而生。片上网络其实是借鉴了计算机网络的概念,在片上采用路由转发的方式来进行IP之间的通信。这里面增加的电路设计工作有两个,一个是路由器电路设计,另一个是网络接口设计。前者需要考虑路由算法、仲裁机制、原子、死锁等等,网络接口设计则需要适配各个现有的协议,比如AXI/AHB/CHI等等。以CPU访存为例,先通过网络接口接入到路由网络中,将AXI转化为NoC内部的flit格式,经过若干跳路由转发到达Slave端的网络接口,然后再做格式转化,阿巴阿巴。目前标准的片上网络主要还是应用在CPU场景为主,会基于CHI协议来做缓存一致性的各种事务,也有少数公司用在GPU互联上。不过片上网络这个词被滥用的厉害,现在很多公司里是个互联IP就用片上网络来指代,实际上可能就是个交叉开关,但这也无所谓了。。

后续会分享的

后面打算分享下基于C语言设计的NoC仿真器,支持各种流量模式,支持时延/链路利用率/吞吐量的统计,支持自定义路由算法。会详细说明这里面时延的统计方法,以及如何在没用多线程的情况下仿真数字电路的并行特性。
然后分享电路设计,这个后面再说吧。

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
内容概要:本文介绍了福建亘川科技有限公司及其研发的“亘川管网降雨量智能监测系统”。该公司专注于智慧水务领域,融合物联网、大数据、云计算和人工智能技术,打造了覆盖“水库、水厂、管网、泵站、排口、河湖”的“六位体”智慧水务监测运维系统。该降雨量监测系统采用高精度传感器,支持总降雨量、瞬时降雨量和24小时累积雨量的实时监测,具备多维度数据采集、联动预警、太阳能绿色供电和4G稳定通信等功能,广泛应用于城市内涝、山洪、水库及边坡等灾害预警场景。系统依托“亘川智慧云”平台,实现远程数据监控、历史数据查询、多设备接入和自动报警,提升城市排水管理智能化水平。; 适合人群:从事智慧水务、城市防汛、环境监测等相关领域的技术人员、市政管理人员及系统集成商;具备定物联网或水务行业背景的专业人员。; 使用场景及目标:①用于城市合流管网区域的降雨实时监测,评估排水能力,预防内涝;②在山洪、水库、边坡等场景中实现灾害早期预警;③通过云端平台实现多设备统管理与数据可视化分析,提升运维效率。; 阅读建议:本资料侧重系统功能与应用场景介绍,建议结合实际项目需求,进步了解设备参数、平台接口及定制化服务能力,以便更好地应用于智慧城市建设与应急管理中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值