0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么时候片上网络 (NoC) 不够用?

半导体产业纵横 来源:半导体产业纵横 2023-06-11 10:16 次阅读

随着SoC的容量和复杂性不断增加,交叉开关带来了路由拥塞、硅芯片面积过度使用和功耗等挑战。

在不久的过去,片上系统 (SoC) 设备与今天的产品相比相对简单。早期的 SoC 通常由 10 到 20 个IP块组成,每个块通常由大约 10,000 到 50,000 个逻辑门组成。大多数这些 IP,包括处理器和外围功能,都是从第三方供应商处获得许可的。开发人员通常只创建一个或两个 IP,其中包含使他们的 SoC 区别于其他竞争产品的“秘密武器”。

当需要有限数量的 IP 来相互通信的互连相对简单时,会使用经典的总线架构方法。负责极少数启动器 IP 的设计人员使用了这种方法,这些启动器 IP 将数据事务请求与响应这些请求的多个目标 IP 相结合。 随着 IP 数量和规模的增加以及它们承担起发起者的角色,采用交叉开关形式的更复杂的互连架构变得很有必要。

交叉开关是有利的,因为它允许任何发起者 IP 与任何目标 IP 对话。然而,随着 SoC 的容量和复杂性不断增加,交叉开关带来了路由拥塞、硅芯片面积过度使用和功耗等挑战。

输入NoC

今天的 SoC 可以包含数百个 IP 块,每个块都比前几代具有更多的逻辑门。通常,第三方供应商提供大部分 IP。除了数据总线宽度、控制总线功能和工作频率的变化之外,每个 IP 还可以采用多种接口协议中的一种——OCP、APB、AHB、AXI、STBus 和 DTL——这些协议已被 SoC 设计人员定义和采用. 应对当今 SoC 中 IP 数量不断增加的挑战的解决方案是采用片上网络 (NoC)。

每个 IP 都配备了与 NoC 接口的套接字功能。在发起者触发写访问的情况下,套接字序列化和打包由该 IP 生成的数据,并将其传输到其预期目标。反过来,与目标关联的套接字将从数据包中提取要写入的数据,并将其转换为目标协议。可以同时有多个数据包。

什么是NoC?

NoC 可以通过多种拓扑结构实现,包括不规则树、规则环和网状或圆环结构。高维架构也可用于某些设计,包括三维立方体和四维和五维超立方体。

在大多数情况下,单个 NoC 是不够的,设计人员经常将其互连分解为数十个 NoC 的组合。虽然非高速缓存一致的 NoC 可以满足大多数外设的要求,但处理器和加速器等 IP 通常受益于高速缓存一致的 NoC 的功能。此外,SoC 的某些部分,例如人工智能/机器学习 (AI/ML) 处理节点阵列,可能会受益于网状 NoC 架构。

因此,SoC 可以轻松地结合多个 NoC 拓扑以实现最佳结果。 除了用于将 IP 连接到 NoC 的套接字之外,网络还将包括必要的交换机和缓冲区。此外,随着用于实现 SoC 的工艺节点不断缩小,走线的电阻增加,导致信号在通过器件时出现电阻-电容延迟。

因此,信号无法再在单个时钟周期内遍历设备的全部或部分。解决这个问题需要在信号通路中插入流水线寄存器。然而,优化它们的数量和位置是一项艰巨的任务。

45ada072-074e-11ee-962d-dac502259ad0.png

图 1这是典型 NoC 配置和实施流程的概览。来源:Arteris IP

SoC 的开发是双重的——前端(上游)和后端(下游)设计(见图1)。前端设计侧重于逻辑和功能方面,例如使用哪些 IP、如何连接它们以及如何构建网络以确保预期的吞吐量和延迟。另一方面,后端设计处理芯片的物理方面,包括 IP 相对于彼此的放置位置以及时序是否可以满足。只有在这个阶段,设计人员才会知道放置流水线寄存器的数量和位置。

执行完整的物理布局是一个耗时的过程。任何无法在后端解决的问题都必须在前端返工,这将重新启动耗时的物理布局过程(参见图 2)。能够在流程的早期主动插入流水线寄存器对于实现任务的收敛和整个项目的周转时间非常有价值。

45d5022a-074e-11ee-962d-dac502259ad0.png

图 2长时序路径可以跨越整个 SoC。

这给前端设计团队带来了很大压力,他们不一定拥有做出明智决策所需的所有信息。插入太少的流水线寄存器会导致 SoC 无法满足物理布局中的时序要求。这导致通过插入太多流水线阶段来过度设计问题的趋势。

尽管可能会满足时序要求,但级数过多会增加延迟和功耗。 所有这一切的结果是,仅拥有套接字、开关、缓冲区和流水线寄存器形式的原始 NoC。为了验证性能和实现时序,NoC 的实现工具有必要了解它们将服务的环境。

物理感知NoC

在“物理感知”NoC IP 中,前端设计人员可以使用来自物理布局团队的早期 IP 布局信息来预测实现能力并解决任何潜在的时序问题。作为其中的一部分,NoC 工具可以自动定义 RTL 中流水线寄存器的理想数量和位置,并生成相关的实现约束。

当今的 NoC 技术远远超出了许多设计人员的预期。例如,NoC 生成器利用特定于工艺技术节点的几何和延迟信息。此信息使我们能够进一步完善时序估计并确定流水线寄存器要求和位置。 通过以这种方式改进前端设计并向后端工具提供更详细的信息,可以显著改进整个过程,尤其是第一个物理实现。

这可以显著减少后端到前端的迭代次数,从而降低风险、提高生产率、降低成本并加快上市时间和资金周转时间。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19259

    浏览量

    229651
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • 片上网络
    +关注

    关注

    0

    文章

    33

    浏览量

    11804
  • OCP
    OCP
    +关注

    关注

    0

    文章

    79

    浏览量

    16424
  • 硅芯片
    +关注

    关注

    0

    文章

    90

    浏览量

    16964

原文标题:​SoC设计:什么时候片上网络 (NoC) 不够用?

文章出处:【微信号:ICViews,微信公众号:半导体产业纵横】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AMC1304L05 PWMx可以用晶振来替代吗?

    请问图中的PWMx可以用晶振来替代吗,芯片引脚不够用
    发表于 11-28 06:29

    一般运算放大器什么时候是数字电压供电什么时候是模拟电压供电?

    您好,我发现在有的电路中,运算放大器是数字电源,有时候又是模拟电源供电,请问一般运算放大器什么时候是数字电压供电什么时候是模拟电压供电?
    发表于 09-11 06:03

    ESP32-WROOM-32D gpio口不够,是否可以把D0-D4用作GPIO?

    现在我在设计中发现IO不够用,想把D0-D4用作常用的GPIO,请问需要在哪里设置?? 看资料D0为GPIO7 D1为GPIO8 D2为GPIO9 D3为GPIO10;现在设置为GPIO后,就会引起重启!
    发表于 06-24 08:39

    esp32c2同时开启wifi蓝牙内存ram会有点不够用,如何能够多节省点ram空间出来吗?

    如题 esp32c2 同时开启wifi蓝牙 内存ram会有点不够用,有大佬知道如何能够多节省点ram空间出来吗
    发表于 06-05 06:48

    stm32f103rbt6加上exfuns_init()函数就空间不够用了,有什么好的建议?

    主芯片用的stm32f103rbt6 加上exfuns_init()函数就空间不够用了,有什么好的建议? 板子已实现u盘功能。我想通过串口使用mf_scan_files(\"0:\")之类的命令。但主函数中加入初始化语句就已经容量不够了。
    发表于 05-17 07:23

    大模型不够用,还有“AI智能体”?

    前不久,在一场活动中有人工智能专家围绕“AI智能体”的话题展开了讨论,他们表示,AI智能体代表了人工智能的未来发展方向。有的小伙伴可能会问了,我们已经拥有了功能强大的、类似ChatGPT这样的大语言模型,为什么还需要发展AI智能体呢?这还需要从AI智能体是什么讲起。#01-AI智能体是什么?AI智能体(AIAgent),是一种能够感知环境、进行决策和执行动作
    的头像 发表于 05-12 08:04 344次阅读
    大模型<b class='flag-5'>不够用</b>,还有“AI智能体”?

    请问stm8s003f3装6050的dmp是不是内存会不够用

    stm8s003f3装6050的dmp是不是内存会不够用啊??
    发表于 05-08 07:35

    怎么解决MCU RAM空间不够用的问题?

    之前使用沁恒公司的一款BLE芯片CH573,随着代码量的增多,开发到后期时遇到了RAM空间不够用的问题,当时吓了我一跳,以为需要重新换更大RAM的芯片。
    的头像 发表于 05-01 09:57 1471次阅读
    怎么解决MCU RAM空间<b class='flag-5'>不够用</b>的问题?

    如果有六个独立的PWM通道都需要测量ADC,是不是单片的STM32H7不够用

    大家好, STM32H7 系列中 由三个ADC, 每个ADC的转换可以由 PWM Timer 触发转换。我的问题是,如果有六个独立的PWM 通道都需要 测量ADC,是不是单片的 STM32H7 不够用 (我的理解是,单个ADC只能设置一个 PWM timer 触发)? 只能用量
    发表于 04-18 07:49

    使用WB15CC蓝牙协议栈的时候,为什么广播数据总会在里面自动添加3个字节的0A的属性?

    请问大家知道怎么不让发这个吗?因为我不需要,我需要广播数据发送数据的,字节数不够用了 !
    发表于 03-28 06:42

    龙旗科技什么时候上市?

    龙旗科技什么时候上市?龙旗科技于2024年3月1日成功登陆上交所主板,开启全新发展阶段。
    的头像 发表于 03-01 11:43 1101次阅读

    FANUC外部I/O点数不够用了怎么办?可以扩展I/O点数吗?

    FANUC外部I/O点数不够用了怎么办?可以扩展I/O点数吗? 扩展FANUC的外部I/O点数是一种常见的需求,这可以通过一些方法来实现。 在FANUC控制系统中,I/O模块被用于将外部设备与控制器
    的头像 发表于 02-18 15:21 1863次阅读

    ATOM触发ADC采样中断是什么时候产生?

    ATOM触发ADC采样中断是什么时候产生?发生周期匹配的时候还是0匹配的时候,怎么进行设置
    发表于 02-06 06:27

    单片机RAM不够用怎么解决?

    来自一位用户的咨询,麻烦帮忙解答。越详细越好,有图有真相。如有相关的视频、文档也可以辅助说明,谢谢。 单片机RAM不够用怎么办? 单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样单片机还能运行吗?电脑出现这种问题是怎么解决的
    发表于 02-02 07:35

    内存不够用的处理方法

    内存不够用的处理方法 内存不够用是许多计算机用户普遍面临的问题。当我们的计算机内存不足时,会导致系统运行缓慢,应用程序无法正常运行,甚至直接导致计算机崩溃。然而,幸运的是,我们有很多
    的头像 发表于 12-28 11:15 1051次阅读