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

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

3天内不再提示

SoC中有什么?SoC到底有多复杂?

ruikundianzi 来源:Michael Frank and Frank Schirr 2023-03-16 17:44 次阅读

使用 NoC 可以大大简化 SoC的开发,但这在很大程度上取决于谁在开发NoC

除了最简单的产品以外,几乎所有的现代系统级芯片 (SoC) 设备都将利用片上网络 (NoC) 来实现其片上通信。有些人质疑是否有必要使用 NoC,或者采用更基本的方法是否能足够满足需要。

SoC中有什么?

SoC 是一种集成电路 (IC),它集成了计算机或其他电子系统的大部分或全部组件。SoC 由称为知识产权 (IP) 模块的多个功能单元组成。其中有许多模块将来自第三方供应商;剩下的部分 - 那些提供“秘密武器”,将此SoC与竞争产品区分开来 - 将由自己内部开发创建。

这些 IP 模块可以包括处理器内核,如微处理器单元 (MPU)、图形处理单元 (GPU) 和神经处理单元 (NPU)。除了各种类型的存储器 IP 外,其他 IP 模块还可以执行通信、实用程序、外设和加速功能。

总线、crossbar switch和NoC

每个 IP 块都表示在系统内存空间中的某个位置。术语“事务” (transaction) 是指从系统内存空间的地址中写入或读取数据字节的操作。为了使SoC发挥其魔力,IP块必须使用事务通过某种形式的互连来相互“交谈”。术语“启动器” (initiator) 和“目标” (target) 是指生成或响应事务的 IP 块。

1990年代SoC上使用的主要互连机制是总线 (bus)。高度简化的表示如图 1 所示。请注意,标记为“总线”的线路将包括多条实现数据总线、地址总线和相关控制信号的线路。

868961fe-c3d7-11ed-bfe3-dac502259ad0.png

图1:简化的总线互连结构。

在许多早期的SoC设计中,只有一个中央处理器 (CPU) 形式的启动器IP块。当启动器在地址总线上放置一个地址时,所有的目标 IP 块都会看到它,其中一个会对自己说:“这是我”。当启动器随后发出读取命令时,或者当它将数据放在数据总线上并发出写命令时,相应的目标将做出响应。

有一些早期的 SoC 可能会使用多个启动器。例如,CPU 可能附带直接内存访问 (DMA) 功能,该功能可用于在不同内存区域和外围设备之间快速传输大型数据块。随着设计中启动器数量的增加,有必要实施某种形式的仲裁方案,允许它们协商总线的控制。

在 2000 年代初期,随着 SoC 设计变得越来越复杂 (包含越来越多的 IP 模块并采用多个启动器),使用基于 crossbar switch交叉开关的互连架构变得很普遍 (图 2)。同样,此图中的每一条线代表一条包含数据、地址和控制信号的多线总线。

86bc7526-c3d7-11ed-bfe3-dac502259ad0.png

图2:简化的 crossbar switch互连架构。

在这种情况下,任何启动器都可以与任何目标通信。当事务从启动器传递到目标并再次返回时,switch交叉开关对事务进行路由,并且多个事务可以随时在“进行中”。每个switch都具有缓冲事务的能力,因此如果许多事务同时到达,它可以决定哪个事务具有更高的优先级。

SoC 设计的规模和复杂性持续增长。大约在 1990 年代初期,SoC 可能只包含几十个 IP 模块,整个设备可能只包含 20,000 到 50,000 个逻辑门和寄存器。相比之下,如今,SoC 可以包含数百个 IP 模块,每个模块包含数十万甚至数百万个逻辑门和寄存器。

在同一时期,数据总线的宽度从8位增加到16位,32位,64位,甚至更高。事实上,目前数据传输的典型大小是 64 字节 (512 位) 缓存行,这很快就会导致路由拥塞问题。尽管硅芯片工艺的发展已经使晶体管缩小了几个数量级,但由于芯片上导线的宽度没有以同样的速度减小,这些问题变得更加严重。

为了解决这些问题,今天的设计人员采用了片上网络 (NoC) 的概念。图 3 是一个简单的 NoC 示例。在这种情况下,事务就由传递的信息包承担。每个数据包包含一个反映目标地址的标头和一个包含数据、指令、请求类型等的正文。

86cfd5b2-c3d7-11ed-bfe3-dac502259ad0.png

图3:简化的片上网络(NoC)互连架构。

多个信息包可以在任何特定时间“传输”,并且switch再次具有缓冲事务并确定事务优先级的能力。由于每个启动器不需要能够与每个目标通信,这可以反映在架构中,从而进一步降低了互连要求。

使用成品还是“自己动手”?

从一个角度来看,使用 NoC 极大地简化了 SoC 的设计,但这在很大程度上取决于谁在开发 NoC。术语“套接字” (socket) 是指IP块与NoC之间的物理接口 (例如,数据宽度) 和通信协议。SoC行业已经定义并采用了几种socket协议 (OCP,APB,AHB,AXI,STBus,DTL等)。

除了不同的数据宽度外,同一设计中的IP模块可能以不同的频率计时。由于 SoC 设计可能涉及数百个 IP 块,其中许多来自其他第三方供应商,因此 IP 可能使用不同的socket协议。为了适应这种多样性,可能需要在启动器和目标socket之间转换事务。

支持多个 SoC 项目的内部 NoC 需要多个维度的可配置性和灵活性。因此,从头开始开发 NoC 可能与设计 SoC 的其余部分一样复杂和耗时。此外,开发人员现在有两件事需要验证和调试 - NoC和设计的其余部分。

解决措施是使用现成的NoC解决方案,例如 Arteris的FlexNoC。在这种情况下,FlexNoC直观的界面使设计人员能够识别构成架构的IP模块以及每个模块的socket特性 (宽度、协议、频率等)。开发人员还可以指定哪些启动器需要与哪些目标通信。此时,生成NoC实际上是一个“按钮”操作。

SoC 到底有多复杂?

回到SoC设计何时需要片上网络的问题。直觉的答案可能是较小的设计可能被豁免。但是,在最近与Semico Research的Rich Wawrzyniak的讨论中,他证实我们已经在客户那里看到的情况是:即使在工业物联网领域的较小设计中,用户也经常面临数十到数百个必须组装和协调的IP块。

如图 4 所示,Semico 定义了四类 SoC。其中三种 - 具有100-200个离散模块和1+互连的基本SoC,具有200-275个模块和4+复杂互连的特定价值多核SoC,以及具有>275模块和5+复杂互连的高性能SoC - 是NoC自动化的明确靶心目标。但是除此之外,即使是最简单的商用控制器,设计人员也要面临着10到100个需要交互的离散模块。

对于较小的设计,工程师倾向于“自己做NoC”。但通常情况下,他们很快就会意识到:他们应该打电话给Arteris来利用NoC自动化。

86f9ada6-c3d7-11ed-bfe3-dac502259ad0.png

图4:Semico根据复杂性将SoC分为四类。






审核编辑:刘清

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

    关注

    38

    文章

    4122

    浏览量

    217942
  • 片上网络
    +关注

    关注

    0

    文章

    33

    浏览量

    11796
  • OCP
    OCP
    +关注

    关注

    0

    文章

    77

    浏览量

    16402
  • NoC
    NoC
    +关注

    关注

    0

    文章

    38

    浏览量

    11721

原文标题:我的SoC设计何时需要NoC ?

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ASIC、ASSP、SoC和FPGA之间到底有何区别?

    的区别是什么?以及高端FPGA应该归类为SoC吗?  这里几个难题,至少技术和术语随着时间而演变。牢记这一点,对于这些术语的起源以及它们现在的意义是什么,我对此做了高度简化的解释。ASIC——特定
    发表于 07-24 11:18

    业界最佳单芯片隔离驱动器解决方案到底有厉害?

    隔离门驱动器在许多系统中的电力传输扮演着重要角色。对此,世强代理的高性能模拟与混合信号IC厂商Silicon Labs推出可支持高达5KV隔离额定电压值的ISO driver隔离驱动IC Si823x。有谁知道这款业界最佳单芯片隔离驱动器解决方案到底有厉害吗?
    发表于 08-02 06:37

    Linux与Unix到底有什么不同

    Linux 与 Unix 到底有什么不同?
    发表于 05-08 14:36

    反码位是什么?到底有什么用?

    反码位是什么?到底有什么用?
    发表于 05-07 07:16

    SOC芯片供电系统简介

    随着SOC越来越复杂,包含的IP越来越多,单个SOC上实现了CPU、射频模块、DDR控制模块、外设等等功能。各种功能,多种IP也带来了档电源的需求。同时为了满足低功耗的要求,
    发表于 10-28 09:45

    SOC与微架构微架构与SOC什么区别?

    读书笔记 SOC与微架构微架构与SOC什么区别?指令集和微架构什么关系?为什么Cortex-M系列没有Chace?现代ARM的微架构主要有哪些系列?能否列举几种使用ARM微架构的同
    发表于 12-15 06:39

    设计与验证复杂SoC中可综合的模拟及射频模型

    设计与验证复杂SoC中可综合的模拟及射频模型 设计用于SoC集成的复杂模拟及射频模块是一项艰巨任务。本文介绍的采用基于性能指标规格来优化设计(如PLL或ADC等)的方
    发表于 12-26 14:38 636次阅读
    设计与验证<b class='flag-5'>复杂</b><b class='flag-5'>SoC</b>中可综合的模拟及射频模型

    ASIC、ASSP、SoC和FPGA之间到底有何区别?

    我经常收到关于各类设备之间的差异的问题,诸如ASIC、ASSP、SoC和FPGA之间的区别问题。例如是SoC是ASIC吗?或ASIC是SoC吗?ASIC和ASSP之间的区别是什么?以及高端FPGA应该归类为
    发表于 07-17 09:42 4.3w次阅读

    智能工厂到底有智能?看看这家工厂就知道了!

    整体交付周期从18天缩短至5-7天,生产效率提升30%,中国第一条信息化高端装备智能制造产线,到底有牛?
    的头像 发表于 07-17 14:41 1.7w次阅读

    一篇文章带你读懂5G到底有厉害

    5G到底有厉害?专家说,三个地方贼NB!
    的头像 发表于 01-19 09:42 1.7w次阅读

    PCB板颜色到底有什么讲究

    冷知识:PCB板颜色到底有哪些讲究?
    的头像 发表于 08-19 17:15 1.8w次阅读

    FPGA到底有厉害?资料下载

    电子发烧友网为你提供FPGA到底有厉害?资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-15 08:50 7次下载
    FPGA<b class='flag-5'>到底有</b><b class='flag-5'>多</b>厉害?资料下载

    soc 设计soc设计 uml实务手册_芯片设计进阶之路——SOC电源管理系统

    。------------------------------------------随着SOC越来越复杂,包含的IP越来越多,单个SOC上实现了CPU, 射频模块,相机模块,DDR控制模块,外设等等功能。
    发表于 01-11 15:43 7次下载
    <b class='flag-5'>soc</b> 设计<b class='flag-5'>soc</b>设计 uml实务手册_芯片设计进阶之路——<b class='flag-5'>SOC</b>电源管理系统

    芯片短缺到底有缺,何时才会缓解

    电子发烧友网报道(文/莫婷婷)芯片短缺到底有缺?汽车厂商因为元器件供应压力,无奈选择停产或者集中库存用于部分车型。更直接的影响是,芯片短缺直接影响了苹果智能手机、iPad和Mac的产能,让苹果在2021年第四财季损失了60亿美元。
    的头像 发表于 04-26 08:16 2305次阅读

    适用于复杂SoC的软件定义验证和验证环境

      拥有如此的利益相关者和优先事项正在推动迫切需要一种更好的方法来完成 SoC 验证。软件定义的验证和验证环境和方法将使工程团队能够交付复杂SoC,满足上市时间,提供更彻底的检查
    的头像 发表于 06-02 10:00 1283次阅读