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

    文章

    3750

    浏览量

    215769
  • 片上网络
    +关注

    关注

    0

    文章

    33

    浏览量

    11748
  • OCP
    OCP
    +关注

    关注

    0

    文章

    68

    浏览量

    16147
  • NoC
    NoC
    +关注

    关注

    0

    文章

    34

    浏览量

    11682

原文标题:我的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

    医疗3D打印机到底有厉害?

      从最近很多新闻上可以看到,3D打印与医疗和生物行业的结合越来越紧密。医疗行业也在不断加紧引入全新的3D打印技术来辅助完成各种手术和一些高难度医学工作。最近,华森科技研发了一款专业适用于医疗行业的3D打印机,谁知道这款医疗3D打印机到底有厉害吗?  
    发表于 08-02 07:04

    SoC FPGA哪些作用?

     Altera公司意欲通过更先进的制程工艺和更紧密的产业合作,正逐步强化FPGA协同处理器,大幅提升SoC FPGA的整体性能,为抢攻嵌入式系统市场版图创造更大的差异化优势。随着SoC FPGA在
    发表于 08-26 07:15

    Linux与Unix到底有什么不同

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

    SOC设计的设计模式哪些?

    SOC设计的设计模式哪些?
    发表于 04-23 06:55

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

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

    SOC和MCU哪些不同之处

    CPU是什么?CPU是由哪些部分构成的?CPU何作用MPU是什么?MPU包括哪些?MCU是什么意思?SOC指的是什么?SOC何功能?
    发表于 08-09 07:09

    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越来越复杂,包含的IP越来越多,单个SOC上实现了CPU, 射频模块,相机模块,DDR控制模块,外设等等功能。
    发表于 01-03 06:41

    MCU和SOC什么区别吗?

    外设,高端的我也没用过,我猜的,今天我们低端的SOCSoc本质也是MCU,51内核的,也有复杂点ARM内核的。相对传统的8051单片机的,外设资源
    发表于 05-04 15:09

    ARM和DSP到底有什么区别?

    现在在学ARM,想知道ARM和DSP到底有什么区别?为什么有些地方用DSP有些用ARM
    发表于 10-19 07:20

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

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