NoC (Network on chip) 基础 (1) : 片上网络的简介
本系列的文章是我在学习NoC经典书籍:Principles and Practices of Interconnection Networks 以及相关的论文过程中所作的总结和归纳。在敦促自己建立更全面知识体系的同时,希望也能够帮助到对这一领域想作快速了解的同学。
文章目录
- 背景介绍
- 片上网络是什么
- 设计NoC时的考虑因素
- 一个典型的应用场景:Processor-Memory Interconnect
- NoC的组成部分
- 拓扑结构(Topology)
- 路由算法 (Routing)
- 流控制(Flow Control)
背景介绍
随着数字电路规模的不断增大,传统的总线型数据交换方式导致的数据传输速率低下,越来越成为限制性能提升的瓶颈。通过互联的片上网络进行各部件的数据交流开始普遍。
数字电路由三个基本部分组成:
- 逻辑(logic)
- 存储(memory)
- 通信(communication)
片上网络是什么
片上网络是数字电路中各子系统之间进行通信的一种手段。即在硬件层面上搭建类似于“计算机网络”的电路结构,进行各组成部分之间的数据交换。发展相对悠久的“计算机网络”中的诸多概念在片上网络中也能找到对应:如拓扑、路由、流控制等等。
可以先这样简单的理解:片上网络就是在数字电路中一个简化版的“网络”
连接网络的各组件抽象为terminal,互联网络负责各terminal之间通过channel传递数据。与更高维度的“计算机网络”相比,信道距离短、数据传输速率快是硬件层面的片上网络的根本特点。
在片上网络中,各terminal多为processor、memory这一级别的组件。
设计NoC时的考虑因素
和“计算机网路”类似,我们要根据用户实际场景来设计对应的片上网络。可以考虑的点如下:
- 连接网络的终端数(Terminal)
- 终端所需的峰值带宽(peak bandwidth)和平均带宽(average bandwidth)
- 延迟的要求(latency)
- 单条信息的长度的分布(message size)
- 交通模式(traffic pattern):指每个terminal发送数据的目标terminal的分布(就朝着一个目标terminal使劲发 还是 这个发几条那个发几条)
- 服务质量(quality of service):是否考虑信息优先级设置
- 可靠性(reliability):指消息能否正确可靠的发送到目的地。一般情况下要求100%的可靠性。
- 可用性(availability):指网络的可用且操作正确的时间占比。
一个典型的应用场景:Processor-Memory Interconnect
以下展示了两种连接processor和memory的互联网络。
- Dance-hall architecture
- Integrated-node architecture
其中第二种架构在现代的机器中更为常见。它将单个processor和单个memory通过communication swtich组成一个节点。这样processor既可以快速访问local memory,同时也能够通过互联网络访问其他memory。
在这种互联网络中传递的消息类型有以下四种:
- Read request
- Read reply
- Write request
- Write reply
根据他们各自的功能要求,将message格式分为如下两种。
在这里有必要区分message和packet的不同。message是在各接入网络的terminal 视角的数据格式,而packet是数据在网络中实际传输时的包格式。单个message可以切分为多个packet,加上协议的包头在网络中传输。这取决于互联网络中采用的协议。(比如为了简化网络中对于不等长message的数据交换,将它们切分为固定长度的packet在网络中传输,到达目的地之后再拼装起来)
NoC的组成部分
为了满足上述所提的各实际场景的不同需求,对NoC各部分的设计均要有所考虑。
为了提升通信质量(时延、带宽、能耗、电路面积),通信资源的共享可以作为互联网络的出发点。就和“计算机网络”一样,我们不会对任意两个Terminal进行点到点的连接,我们通过一系列共享channel和一系列共享的router完成互联。
拓扑结构(Topology)
拓扑结构即是指,一系列共享的router和channel的排列组合形式。
Torus topology:
Ring topology:
路由算法 (Routing)
路由算法决定了从出发地到目的地packet传递的路径。因此路由算法一定建立在Topology的基础上。
一个好的路由算法,能够适应可能面对的 traffic pattern,均衡各个channel的压力,保证通信质量。
流控制(Flow Control)
流控制指的是,当packet从源地址到目的地址的过程中,所经过路径上各种资源的分配过程。其中最关键的资源有两个:
- Channel:就是node之间通信的信道。
- Buffer:使用register或memory,让packet能暂存在node中。
一条很恰当的比喻:The topology determines the roadmap, the routing method steers the car, and the flow control controls the traffic lights, determining when a car can advance over the next stretch of road (channels) or when it must pull off into a parking lot (buffer) to allow other cars to pass.
流控制算法应该要做到,在分配buffer资源时,尽量避免因资源冲突导致的channel资源闲置。
比如当一个packet希望通过一条空闲的channel发走时,他却由于buffer占用被迫等待,这个buffer中的packet此时在等待另一条非空闲的channel。这便是flow control不希望看到的情景。
一个简单且有效的解决方法是,为将要选择从不同channel发走的packets,各自分配不同的buffer。这就好像在红绿灯路口分别设置左转、直行、右转车道,直行车辆和右转车辆不必因为向左走的路堵死了而无法直行和右转。
一个好的流控制策略应该做到公平且无死锁。它不应该造成一个packet无休止的等待下去。
以下列举了两种流控制策略的time-space图。
- Store-and-forward flow control
- Cut-through flow control
Cut-through方法因为将packet划分为flits,作为流控制的最小单位。因此对于Channel的利用率更高。
下一篇:NoC (Network on chip) 基础知识 (2) :片上网络的拓扑结构(Topology) 将从网络拓扑的基本概念开始介绍 NoC。
NoC (Network on chip) 基础 (1) : 片上网络的简介相关推荐
- NoC(Network on Chip)基础 (3):网络拓扑结构 Butterfly、Torus、Mesh
上一篇:NoC (Network on chip) 基础知识 (2) :片上网络的拓扑结构(Topology) 介绍了网络拓扑中的常见概念. 本篇文章将重点介绍 Butterfly 和 Torus 网 ...
- NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing
上一篇:NoC(Network on Chip)基础知识 (5):网络路由(Routing)介绍了 NoC 中路由的基础概念并列举了确定性路由的例子. 本篇文章将介绍 Oblivious Routin ...
- bt协议详解 基础篇(上)
bt协议详解 基础篇(上) 最近开发了一个免费教程的网站,产生了仔细了解bt协议的想法,所以写了这一篇文章,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的技术,敬请期待. 1 ...
- net中c#教程 network的常用操作,包括上传、下载
现在互联网这么发达,我们做的项目也是需要从网络上获取信息(即下载数据),或者将本地的数据上传到服务器上(即上传数据).所以,对网络的操作也很重要和基础,今天分享的教程,就是关于网络编程(network ...
- 计算机网络基础学习笔记(上)
学习视频 在观看学习视频前,可以先了解一下大概:互联网是如何运作的 随看随记 TCP和UDP MAC和IP地址,从几个不同的角度讲的: CSDN博客 知乎 博客园 从我的角度来看,MAC地址是区分IP ...
- Pass Infrastructure基础架构(上)
Pass Infrastructure基础架构(上) Operation Pass OperationPass Op-Specific OperationPass Op-Agnostic Depend ...
- ARM Cortex-M嵌入式C基础编程(上)
ARM Cortex-M嵌入式C基础编程(上) ARM Cortex-M Embedded C Fundamentals/Tutorial -Aviral Mittal 此技术是关于从编写简单的嵌入式 ...
- 常见JavaScript基础面试题上(附答案)
常见JavaScript基础面试题上(附答案) 1.JavaScript有哪些垃圾回收机制? 有以下垃圾回收机制. 标记清除( mark and sweep) 这是 JavaScript最常见的垃圾回 ...
- 片上网络NoC(一)—— 概述
也许人们比较熟悉的是片上系统SoC(system-on-chip),却对片上网络NoC(networ-on-chip)相对陌生一点.其实可以简单的理解为NoC是SoC的"升级版"或 ...
最新文章
- 录音喊话器的故障修理_碳膜电位器故障检测及解决
- 2021年泰晤士世界大学学科排名公布!清北均有学科位居世界前10
- 值得关注!一种新型脑机接口--集成光子芯片的脑机接口是否可行?
- 【GAN优化】解决模式崩溃的两条思路:改进优化和网络架构
- JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力。。...
- boost::core::is_same用法测试实例
- flash、div、iframe的层级
- java请求接口示例_用示例解释Java接口
- 在 Mac OS X Lion 下修改 Hosts 的四种方法
- 在 windows 下使用 Xming+Putty 显示 Linux 下软件图形界面
- 山西计算机工程师职称英语,山西中级工程师职称在线查询
- Python中三个双引号的作用是什么?
- xlsx表格怎么筛选重复数据_怎样在excel2010中筛选出重复数据呢?
- 仿爱奇艺加载dialog
- 1235813找规律第100个数_2013年全国中考数学规律探索试题汇编
- 华为全球发布六款全场景新品;西门子加速在华发展数字化创新 | 美通企业日报...
- [JMeter]java.net.URISyntaxException: Malformed escape pair at index 83
- 这几种常见的伪学习,看下你是不是也中招了?
- mysql dsn设置_[分享]用数据源(用数据源(ODBC)创建数据库连接DSN设置)创建数据库连接DSN设置...
- ios epub电子书阅读器demo
热门文章
- 9.6-全栈Java笔记:二叉树和红黑二叉树
- UIDynamicItemBehavior-动画效果:增加各种物理特性
- 汇编语言--键盘输入两个一位十进制数 ,以十进制数的形式输出其和
- 搜索引擎之分词器学习
- python学习小记--取整/取余
- Uber创始人清华大学演讲:杰出创业者 8 大特质
- [玩转C语言]---函数的递归
- 关于laravel的最热门问题合集
- 开发者论坛一周精粹(第四十四期) 天池竞赛 Oracle修正
- 设计难题|设计难题《一》单火取电开关---“鬼火”