【IC设计】NoC(Network on Chip)调研

news2024/11/27 16:29:30

文章目录

    • SoC(System on Chip)片上系统
      • SoC的概念
      • SoC总线架构存在的问题
    • 互联网络基础
      • ①什么是互联网络?
      • ②哪里有互联网络?
      • ③互联网络的意义?
      • ④互联网络的参数有哪些
    • NoC(Network on Chip)片上互联网络
      • 什么是NoC?
      • NoC的引入
      • NoC相比于总线架构的优势
      • NoC常见的拓扑结构
        • 2D Mesh
        • 2D Torus
        • 3D Mesh
        • Octagon/Spidergon结构
        • Cluster Mesh结构
        • 树状结构
        • 蝶状结构
      • 各种结构之间的比较

SoC(System on Chip)片上系统

SoC的概念

SOC(System on Chip,片上系统)指在单一芯片上实现的数字计算机系统,总线架构是该系统的主要特征。

在 ASIC 设计的早期,由于制造工艺和性能等的约束,大部分芯片都单纯地实现某个特定功能,如处理器内核、总线、内存控制器、蓝牙等都由各自独立的芯片分别实现

随着制造工艺的提升,以及设计能力的增强,单颗 ASIC 的功能越来越全面和强大,在一颗芯片内完全可以实现诸如处理器内核、总线、内存控制器、蓝牙等所有的功能。同时,ASIC 规模增大导致设计愈来愈复杂,因此,以 IP 核互连为核心的设计方法学应运而生。

这样,就出现了在一颗芯片里集成了大量的处理器内核、总线、控制器等 IP,而处理器内核数量也由曾经的单核增大到多核、众核。在这种情况下,设计方法学完全不同于以往 ASIC 的设计方法学。因此,诞生了 SoC 的概念,以和 ASIC 进行区别。不严格地说,一颗 SoC 可以实现以前多颗 ASIC 构成的系统。

SoC总线架构存在的问题

目前,SoC通讯架构的设计相对比较成熟。大部分芯片公司芯片制造都采用SoC架构。
然而,随着商业应用开始不断追求指令运行并存性和预测性,芯片中集成的核数目不断增多,基于总线架构的SoC将逐渐难以应对不断增长的计算需求。其主要表现为:
1.可扩展性差
基于总线架构的SoC,由于总线架构固有的仲裁通信机制,即同一时刻只能有一对处理器核心进行通信,限制了可以在其上扩展的处理器核心的数量。在众核体系结构下网络互联也就成为了重要的问题。

2.平均通信效率低
SoC中采用基于独占机制的总线架构,其各个功能模块只有在获得总线控制权后才能和系统中其他模块进行通信。从整体来看,一个模块取得总线仲裁权进行通信时,系统中的其他模块必须等待,直到总线空闲。
因此通信效率低。

3.单一时钟同步问题。
总线结构要求全局同步,然而随着工艺特征尺寸越来越小,工作频率迅速上升,达到10GHz以后,连线延时造成的影响将严重到无法设计全局时钟树的程度,而且由于时钟网络庞大,其功耗将占据芯片总功耗的大部分。

互联网络基础

①什么是互联网络?

互联网络是终端之间传输数据的可编程系统。
在这里插入图片描述

②哪里有互联网络?

从小尺度到大尺度,网络无处不在:
根据互联网络的定义,我们发现,它不仅仅出现在台式电脑/笔记本等终端之间的通信上,放在更小的尺度,在芯片上网络也遵循该定义。

  • 在处理器内的存储器、寄存器、算术单元之间的通信;
  • 处理器和内存等IP的通信;
  • 局域网和广域网级别的系统级的通信;

③互联网络的意义?

情况①:
图中6个终端如果建立一对一独占信道,且信道是有方向的,那么需要多少条信道?
该问题等价于6个顶点的有向图最多有多少边,6*5=30条边。
然而,可能其中T1-T5的通信较为频繁,而T6几乎不与其他终端通信,因此为T6建立那么多独享信道是浪费的!

情况②:
如果我们将6个终端连成一个环,那么可能损失一点性能,但换来的是节省了大量资源。

从情况①和情况②的对比可以发现,互联网络的意义在于可以平衡建立信道的资源消耗通信性能
在这里插入图片描述

④互联网络的参数有哪些

  1. 终端数量
  2. 每个终端的峰值带宽
  3. 每个终端的平均带宽
  4. 所需的延时
  5. 消息大小或消息大小的分布
  6. 交互模式(traffic pattern)
  7. 所需的服务质量(Quality of Service)
  8. 所需的可靠性和可用性

解释:
在不特殊说明下,输入和输出带宽相等,单位是bits/秒。
传递单个消息所需的时间称为消息延时,消息延时和带宽是一对矛盾。
如果消息很小,网络所产生的开销就相对比较大。
每个终端以相同的概率向所有其他终端发送消息,这是random traffic pattern。
QoS和服务策略相关,
例如:

  • 先来先服务(FCFS)
  • 短作业优先(Shortest Job First,SJF)
  • 最高响应比优先(Hight Response Ratio Next,HRRN)
    可靠性指的是要无损传输,这涉及到检错纠错。
    可用性指的是网络可用且正常运行的时间,该挑战在于快速检测故障,从故障中恢复。

NoC(Network on Chip)片上互联网络

什么是NoC?

在SoC上的互联网络我们称NoC(Networks on Chip)。

NoC的引入

随着 SoC 技术的发展,芯片内部的 IP 核越来越多,有可能在一颗芯片中集成了数以百记的处理器内核(包括同构处理器内核和异构处理器内核)、数以千计控制器 IP 核等等,那么这种情况下,为了实现IP核间的通信能够高效、高吞吐量、低功耗, IP 核之间的互联就成为 需要考虑的重要问题。

借鉴于计算机网络中的OSI(Open System Interconnection)分层模型并行计算机的互联网络,NoC将宏观网络的通讯理念应用于芯片上,将每个当做一个独立的单元,IP核经过网络接口与特定的路由器相连。将IP核之间的通信转换为路由器与路由器的通信。

举例:
一个典型的NoC拓扑结构(2D-Mesh)如图所示,图中R是路由器,NI是网络接口,NoC拓扑将IP核之间的通信转换为路由器之间的通信。
在这里插入图片描述

NoC相比于总线架构的优势

NoC(Network on Chip,片上网络)网络的出现,相比于总线架构优势如下:

  • 采用异步时钟,多个IP之间的时钟网络解耦,布局布线容易;
  • 可扩展性好,增加互联IP数量时,代码改动工作量小;
  • 支持多个IP并行交互,通信效率高;

NoC常见的拓扑结构

在这里插入图片描述
NoC常见的拓扑结构可以分为规则拓扑不规则拓扑两种。
规则拓扑主要包括:

  • 2D Mesh
  • 2D Torus
  • 3D Mesh
  • Octagon
  • Cluster Mesh
  • Spidergon
  • 超立方
  • 蜂窝式
  • 树形
  • 蝶形

不规则拓扑包括:专用网络、分层网络、网络-总线混合拓扑、基于规则拓扑组合而成的拓扑结构。

2D Mesh

2D Mesh结构为二维网格架构,路由器节点按二维网格的方式排列,每个节点上再连接网络适配器和IP核。下图所示为一个4×4的2D Mesh结构。
在这里插入图片描述
在 N×N 的2D Mesh中,每个节点与相邻的节点连接(边界节点除外)。该结构具有结构简单,易于实现,可扩展性好等优点,较为广泛使用。

2D Torus

将2D Mesh结构的每行首尾节点连接起来,每列的首位节点也连接起来,便是2D Torus结构,该结构每个节点在几何上都是等价的,缩短了节点间的平均距离,减小了网络直径,同时该结构可能因为过长的环形链路而产生额外的延迟。
在这里插入图片描述

3D Mesh

3D Mesh为三维的网格结构,将多个2D Mesh叠加并对应节点连接起来,这样做进一步降低了网络直径和平均距离,但物理实现难度比较大。
在这里插入图片描述

Octagon/Spidergon结构

Octagon为八边形结构,共包含8个IP核,每个节点与三个节点相连,分别是序号相邻的节点和最远的节点。该结构也可以扩展为8个以上节点,变为Spidergon结构。
在这里插入图片描述

Cluster Mesh结构

Cluster Mesh 结构改变了传统的一个IP核连接一个路由器,将4个IP核连接1个路由器。这样做减少了路由器数量,简化了拓扑结构,但更容易造成数据拥塞。
在这里插入图片描述

树状结构

该结构类似于数据结构中的树结构,IP为叶子节点,路由器节点作为父节点,在父节点之上可以在增加父节点,层层相扣。降低了设计难度,也降低了物理设计的复杂度。

SPIN结构是一种树状结构,具有16个叶子节点以及8个路由器节点。每个节点拥有4个父节点,通过增加路由节点冗余度的方式,增加多路径选择性,提高系统性能。但是该结构的路由节点复杂,芯片实现难度大。
在这里插入图片描述

蝶状结构

该结构有些类似于FFT中的结构,是一种对数结构。一个n维的蝶形拓扑结构由2n个IP核和n×(2n-1)个路由器的节点组成,路由器分为n层,每层有N/2个路由器。
在这里插入图片描述

各种结构之间的比较

拓扑结构节点数节点度网络直径链路数
2D MeshN=n^242n-22(N-n)
2D TorusN=n^24n2N
3D MeshN=3n4n2(N-n)
OctagonN=n^23[N/4][(N mod 8) +1]×12
SpidergonN=n^23[N/4]3N/2
Cluster MeshN=n^242n-25N-2n
SpinN=2n4N/85N/2
蝶形结构N=2n2n+1(n-1)×N

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL基础】--- 约束

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、什么…

近距离看GPU计算-2

文章目录 前言1.SIMT和硬件多线程3.GPU的Memory Hierarchy 前言 本文转自公众号 GPU and Computing 在《近距离看GPU计算》系列第一篇里我们介绍了GPU的一些基础知识及其如何从图形加速设备演化到通用计算平台。本文我们会具体从处理单元设计和存储层次结构两个方面探讨GPU不…

多元化工具汇聚:企业如何提升协同效率?

在现代企业中,协同工作是不可或缺的。然而,随着企业规模的扩大,协同工作的难度也随之增加。针对这些挑战,我们推荐一款多元化工具—J2L3x。在这篇文章中,我们将介绍J2L3x的主要功能和如何利用它来提高企业的协同效率。…

UG\NX二次开发 一个分割曲线的工具

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: 今天有群友发了一个工具演示,是一个分割曲线的工具: 我当时想这位好兄弟怎么这么牛逼,原来啊,他跟你们一样喜欢看我的博客。他用我分享的分割曲线的…

go学习-GMP模型

GMP 好理解还是 GPM 好理解? 按照上述图,从上往下,GPM更适合理解 GMP 模型: Go 语言运行时系统中的 Goroutine、用于管理 Goroutine 调度的 Go Scheduler(P)、机器可用的逻辑处理器数量(M&#…

【数据结构复习之路】线性表(严蔚敏版)万字详解主打基础

专栏:数据结构复习之路 数据结构的三要数:逻辑结构、数据的运算、存储结构(物理结构)。 我接下来要介绍的线性表,顾名思义也将从这三个大方向进行阐述: 一、线性表的定义——逻辑结构 线性表是具有相同…

Flutter绘制拖尾效果

演示: 代码: import dart:ui;import package:flutter/material.dart; import package:kq_flutter_widgets/widgets/chart/ex/extension.dart;class TrailingView extends StatelessWidget {const TrailingView({super.key});overrideWidget build(Build…

成绩发布系统攻略

作为一名教师,管理学生成绩是我们工作中的重要任务之一。传统的手工成绩记录和发布方式已经无法满足现代教育的需求。因此,制作一个高效、安全、便捷的学生成绩发布系统是至关重要的。本文将为您介绍如何制作学生成绩发布系统,以提高教学效率…

MyBatis-Plus的常用注解

一、TableName 在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表,由此得出结论,MyBatis-Plus在确定操作的表时&#xf…

Flutter实现PS钢笔工具,实现高精度抠图的效果。

演示: 代码: import dart:ui;import package:flutter/material.dart hide Image; import package:flutter/services.dart; import package:flutter_screenutil/flutter_screenutil.dart; import package:kq_flutter_widgets/widgets/animate/stack.dart…

react如何根据变量渲染组件

三元运算符useMemo 第一种方法的缺点&#xff1a;其他变量更改时&#xff0c;会再次进入三元运算符,例子如下&#xff1a; //这里有一个父组件:Father { n0 ? <Father><div>{111}</div></Father> : <div>{111}</div> }第二种方法如图 …

apk获取MD5方式记录

1&#xff0c;低版本android studio 我这里是Android studio Arctic Fox 直接使用keytool -printcert -jarfile xxx.apk获取 获取得到的效果&#xff1a; 2&#xff0c;高版本android studio 在高版本下&#xff0c;按照如下图点击打开到gradle。在③步骤下直接输入signning…

《向量数据库指南》——火山引擎向量数据库对正式外开放服务

向量数据库技术全景 经过长期的内部探索和优化,抖音采用的向量数据库产品结构如下图所示:基于云基础设施,提供经过深度打磨和优化的各个引擎,提供从多模态数据写入,到向量生成,再到在线检索,以及上线后的弹性调度和监控的一整套全链路解决方案。 火山引擎向量数据库的场…

C++ 里 ++i 是原子操作吗?

1.什么是原子操作 在多线程环境下,原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。 原子操作可以确保某些特定操作在多线程条件下,不会由于线程切换而导致数据污染。比如,对一个变量的读/写…

ASEMI快恢复二极管S1FD40A180H参数,S1FD40A180H应用

编辑-Z S1FD40A180H参数描述&#xff1a; 型号&#xff1a;S1FD40A180H 最大直流反向电压VR&#xff1a;1800V 最大工作峰值反向电压VRWM&#xff1a;1440V 最大平均正向电流IF&#xff1a;40A 非重复正向浪涌电流IFSM&#xff1a;500A 操作和储存温度范围TJ ,TSTG&…

洞察2023:中国心室辅助装置行业竞争格局及市场份额

本文核心数据&#xff1a;代表性企业排名 ; 代表性企业优势分析等 1、中国心室辅助装置行业竞争梯队 人工心脏 ( Artificial Heart, AH ) 是机械辅助类器械的代表&#xff0c;用于替代或辅助心脏泵血功能。按照功能可分为心室辅助装置 ( Ventricular Assist Device&#xff0…

Python与数据分析--每天绘制Matplotlib库实例图片3张-第1天

目录 1.实例1--Bar color demo 2.实例2--Bar Label Demo 3.实例3--Grouped bar chart with labels 1.实例1--Bar color demo import matplotlib.pyplot as plt # 支持中文 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus…

Node.js环境安装与服务设置,结合内网穿透随时随地公网访问!

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

spring boot +vue 博客系统,开源的资源网站

spring boot vue 博客系统&#xff0c;开源的资源网站&#xff08;Aurora前后端分离博客) 体验地址&#xff1a;http://blog.tlzcf.vip/ 相关技术 前端&#xff1a; 样式来自于&#xff1a;hexo的aurora主题基础框架&#xff1a;vue3(前台) vue2(后台)状态管理&#xff1a;…

蓝桥杯每日一题2023.9.21

蓝桥杯2021年第十二届省赛真题-异或数列 - C语言网 (dotcpp.com) 题目描述 Alice 和 Bob 正在玩一个异或数列的游戏。初始时&#xff0c;Alice 和 Bob 分别有一个整数 a 和 b&#xff0c;有一个给定的长度为 n 的公共数列 X1, X2, , Xn。 Alice 和 Bob 轮流操作&#xff0…