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

    文章

    18304

    浏览量

    222320
  • 寄存器
    +关注

    关注

    30

    文章

    5042

    浏览量

    117766
  • 片上网络
    +关注

    关注

    0

    文章

    33

    浏览量

    11748
  • OCP
    OCP
    +关注

    关注

    0

    文章

    68

    浏览量

    16145
  • 硅芯片
    +关注

    关注

    0

    文章

    85

    浏览量

    16831

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    内存不够用的处理方法

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

    局域网IP地址不够用怎么解决

    如果是在一个小型的局域网里可能完全不必要考虑IP地址不够的情况,但是在超过“255台”电脑的大型局域网里,就必须要考虑电脑IP地址不够用该如何解决了。
    的头像 发表于 12-05 10:13 442次阅读
    局域网IP地址<b class='flag-5'>不够用</b>怎么解决

    请问BF592用于做音频处理RAM不够用可以外挂SDRAM或者SRAM吗?

    1:请问下BF592 用于做音频处理RAM不够用可以外挂SDRAM或者SRAM吗?如果可以有没有相关的原理图和软件下载? 2:592是定点DSP,那对音频采样数据存储时要定义成float类型好呢
    发表于 11-30 07:20

    分享一种单片机IO口测量外部电阻的方法

    在以前的有些单片机应用中,有的时候会遇到 AD 端口资源不够用的情况,但又需要测量电阻的大小。
    的头像 发表于 11-24 16:42 1262次阅读
    分享一种单片机IO口测量外部电阻的方法

    stc51单片机程序存储区不够用,可否在程序存储区写一个bootloader,用户程序放入自身的EEPROM?

    stc51单片机程序存储区不够用,可否在程序存储区写一个bootloader,用户程序放入自身的EEPROM?如何实现?
    发表于 11-09 07:09

    嵌入式系统中,内存不够用了怎么办?

    嵌入式系统中,内存不够用了怎么办? 随着技术的不断发展,微型化、便携化的智能化设备正逐渐成为人们生活中不可或缺的一部分。然而,在这些设备中,嵌入式系统的内存空间通常都非常有限,并且需要同时支持多种
    的头像 发表于 10-29 16:33 640次阅读

    不增加扩展芯片,如何解决51单片机端口不够用的问题?

    为了实现51单片机的多功能控制,不增加扩展芯片要如何解决51单片机端口不够用的情况?
    发表于 10-26 07:41

    单片机的IO口不够用了怎么办?如何扩展单片机的IO口?

    单片机的IO口不够用了怎么办?如何扩展单片机的IO口? 单片机是应用广泛的微处理器,其具有较高的可编程性、灵活性和成本效益等优点,在嵌入式系统中得到了广泛的应用。然而,由于每一个单片机的IO口数量
    的头像 发表于 10-24 11:49 5365次阅读

    如何解决局域网ip地址不够用问题?

    如果是在一个小型的局域网里可能完全不必要考虑IP地址不够的情况,但是在超过“255台”电脑的大型局域网里,就必须要考虑电脑IP地址不够用该如何解决了。
    发表于 10-23 10:16 778次阅读
    如何解决局域网ip地址<b class='flag-5'>不够用</b>问题?

    PCB面积总是不够用?试试这个方案呗~

    PCB面积总是不够用?试试这个方案呗~
    的头像 发表于 10-17 15:14 622次阅读
    PCB面积总是<b class='flag-5'>不够用</b>?试试这个方案呗~

    什么时候需要进行网络线缆测试?

    什么时候需要进行网络线缆测试?值得思考,以及测试方案如何?
    发表于 10-09 11:01 0次下载

    求助,芯片耐压650V做的buck电路够不够用

    650V耐压的buck电路够不够用
    发表于 08-01 14:38