互联网络导论
互联网络的三个问题
数字系统的三个基本构件:
数字系统由3个基本构件组成:逻辑(logic)、内存(memory)、通信(communication)。
本书关注点——通信
这本书所关注的是数字系统的通信 ,因为随着技术的进步,处理器与存储器变得更小、更快,大部分时钟周期
用于导线延迟。组件之间的通信频率远远落后于现代处理器的时钟频率。
关注通信(communication),就是关注互联(interconnection)
原本互联是采用总线的形式,但是目前的模式是直接把计算机网络中的路由相关的知识搬移到SoC上来用了,比如拓扑结构、路由等。
①什么是互联网络?
互联网络是终端之间传输数据的可编程系统。
这里网络的可编程指的是在不同的时间点可以建立不同的连接。
②哪里有互联网络?
从小尺度到大尺度,网络无处不在:
根据互联网络的定义,我们发现,它不仅仅出现在台式电脑/笔记本等终端之间的通信上,放在更小的尺度,在芯片上网络也遵循该定义。
- 在处理器内的存储器、寄存器、算术单元之间的通信;
- 处理器和内存等IP的通信;
- 局域网和广域网级别的系统级的通信;
从多点总线到互联网络:
1990s前,使用的是多点总线(Multi drop bus),按照我的理解,这个总线是共享的,同一时刻只能有一对终端占用通信信道。
但目前的高性能互联都使用的是**点对点互联网络(point to point interconnection)**而不是总线。
Fabric的概念:
有时互联网络也叫Fabric
③互联网络的意义?
情况①:
图中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)
可靠性指的是要无损传输,这涉及到检错纠错。
可用性指的是网络可用且正常运行的时间,该挑战在于快速检测故障,从故障中恢复。
①处理器-存储器的互联
②I/O互联
③包交换互联网络(Pakcet Switching Fabric)
网络基础
互联网络有效的关键是认为通信资源是共享的,而不是在每对可能的终端间都建立专用通道。
一旦选定了拓扑结构,消息有多条可能的路径通过网络到达目的地,好的路径选择平衡通道资源的占用和消息延迟。
比如大量路径都有一条公共路径,那么该通道被过度利用,而某些通道处于空闲状态,则网络传递的总带宽会减少。