On-Chip Networks第二版第二章阅读笔记(与系统架构的接口)

时间:2021年10月30日

作者:一只想要上天的猪

原书:[On-Chip-Network](…\on-chip networks & booksim\OnChip Networks Second Edition.pdf) [第一版](…\on-chip networks & booksim\On-Chip Networks (Synthesis Lectures on Computer Architecture) by Li-Shiuan Peh, Natalie Enright Jerger (z-lib.org).pdf)

第二章:与系统体系的接口

体系架构的变化:

单处理器核心计算机芯片逐渐转为多核芯片。对于一个计算机系统而言:**多核(mutli-core)众核(many-core)**结构已经是计算机系统的主要构建块,这一个重要的变化。

***性能上的增益将主要依靠***:

  • 消除处理机与存储器件之间的通信瓶颈
  • 执行单元(core)之间的高效通信越来越成为关键因素

本章讨论了几个主要的计算机系统类型,其中片上网络都发挥了关键作用(form a critical backbone)

  • shared-memory chip multiprocessors(CMP)【高端服务器、嵌入式产品】
  • message passing system
  • multiprocessor System on Chip(Mp-socs)【移动设备】

必须要说一句,章节前开始说要讨论三个

但是只说了第一个,后面两个要不没提到,要不就带过

这本书还是不行啊😲

多处理器芯片上的共享主存网络(CMP)

并行编程很难,但是越来越重要。

维持一个全局共享地址空间能够缓解并行程序编程人员的工作负担(这个是相较于PGAS而言的,但是并没有详细解释)。

分割全局地址空间(PGAS)在现代对称多处理机(SMP)中很常见,高位地址用于选择内存地址关联的socket(这个socket可能就是一个物理上与其他存储器分离的存储器)

这里还提到了,SMP和CMP的异同

  • 同:二者都是共享主存
  • 异:CMP不像SMP的UMA性质,而显示出了NUMA(非均匀存储器访问)

关于PGAS, 可以查看链接:PGAS.pdf

PGAS是一种并行编程模型,它假定一个全局地址空间逻辑上被分割,分割出来的每一份都作为某个进程、线程或者是处理元素(指的就是一个处理核心)局部所有。这种情况可以充分利用局部性原理(locality of reference)

PGAS还有一个变种:异步PGAS(APGAS)

共享存储模型下,通信隐含地发生在数据存取以及取指令过程中

  • 逻辑上讲,所有的处理器都存取同一个主存,每个都能看到最新的数据

  • 但是实际上,存储层次结构要使用cache改善性能

使用cache要考虑一个很重要的事情,cache一致性,在CMP中(通常每个core都至少有一个私有的L1Cache)cache尤其多。在这里就出现了cache一致性协议来保证所有cache之间数据的一致性,以及要求它是最新的。

这里有一句很有意思的话:

With the shared-memory model, communication occurs implicitly through the loading and storing of data and the accessing of instructions. As a result, the shared-memory model is an intuitive way to realize this sharing.

很奇怪啊,what is “this sharing”??

要不就是这句话不完整;要不就是完整的,share-memory model既做了条件,又做了结果,这句话有什么意思呢;再或者this sharing其实代指前文提到的某个玩意,但是找不到呀

然后这里的communication到底指的是什么?node与node之间,node与memory之间的通信

**Cache一致性协议 ** [主存与cache](…\A Primer on Memory Consistency and Cache Coherence.pdf)

  • 单写多读
  • 保证每次只有一个处理器写cache行
  • 多个处理器可以同时读一个cache行

是cache一致性协议决定了shared memory CMP中哪些信息交流是必要的

shared-memory CMP中的两个关键特征就是:

  • cache一致性协议
  • cache层次结构

一致性协议对网络性能的影响

memory consistency 和 cache coherence是不一样的,cache coherence是要求多个cache中保存的主存副本是最新的,而memory consistency是定义的存储器存取的规则以及如何应用

如果一个结点想要往某个cache行中写,那么必须确保其他节点没有缓存这个地址

可是这句话真的对吗?凭啥,那不是耽误事儿吗,可能是想说,其他node必须要有权限给它。反正就是讨论嘛,这个里面关于cache一致性的描述不一定正确

需要通信的数据有

  • 数据请求
  • 数据响应
  • 一致性权限/请求、响应

一致性权限要在一个node读/写cache块之前获取

多处理器系统的一致性协议有以下两种:

  • 广播协议
  • 目录协议

对于广播协议,一致性请求需要发送到芯片上的所有结点,因此产生了**高带宽要求;**数据响应是点对点传输的,不需要排序

广播系统依赖两个物理网络:

  • 需要排序的内联网络,高带宽,用于一致性请求、响应
  • 不需要排序的内联网络,用于数据传送

可以选用多个虚拟链路保证一致性流量(即一致性请求、响应等)传输过程中的顺序,请求和响应可以使用不同的虚拟链路。

目录协议,不需要依靠任何隐式网络排序,并且能够映射到任意拓扑结构

依靠点对点传输而不是广播,这种情况下的扩展性显然是更好的,可以添加更多的结点。对带宽的要求没有广播协议高

目录包含了信息:哪些core(node)拥有某个cache block,以及一致性状态信息(like MESI protocol的4个状态)

可以想象一下这个目录是一个什么样的结构:

  • 是不是要包含一个cache block的信息,能够唯一索引的
  • 还得缓存了这个块的结点信息,内联系统或许将这些结点也编址了

目录保存在主存中,所以也可以使用cache对它的访问进行加速。

对目录的cache同样的可以分散到各个node中去,也可以共享的,可以是任意数量的,当要查某个块的目录信息时,需要根据地址做正确的映射。

home node:每个地址与一个home node相互关联,这个home node用于处理所有对该地址的一致性请求,等一下,home node实际上还是一个core所在的tile,home node还是一个node啊

这个地方对于home node的说明不清晰,可以参考另一本书

总结一下,两种协议最大的区别可能只是通信量方面了,至少在这本书里是这样的。

一致性协议对OCN提出的要求

其实前面已经讲了一部分了

缓存一致性协议需要几种信息:

  • 单播(点对点)
  • 多播(one-to-many,比如目录协议中cache行的不合法信息传播到所有的共享者)
  • 广播(one-to-all)

目录一致性协议大部分情况下是单播,带宽要求低,不能避免多播

广播协议存在大量的广播,需要高带宽,数据响应是单播的

对于信息大小尺寸的要求:

  • 一种是一致性请求及响应(不带数据的响应)
    • 包括主存地址、一致性命令等
    • 信息量小
  • 一种是数据信息,数据响应,完整的cache block以及地址(一致性协议主要是用于保证所有的cache数据都是up-to-date的)这种情况可以避免大量的访存,比如一个cache miss,可以直接去其他缓存了的cache中读取。

协议级网络死锁

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ceO0mLQh-1635601969408)(On-ChipNetwork第二章.assets/image-20211030213112001.png)]

除了要考虑信息大小以及种类,共享主存系统还要考虑网络免受协议级死锁。

by the way,这个图可能画的不好哦,两边的cache发出不同名字的请求可能更好一点

协议可以请求几个不同的信息类,每个类包含一组互相独立的一致性动作,也就是说:某类队列中的一个请求信息不会导致同一类另一个请求信息的产生,但是可能触发另一个类的信息

只有当不同类的信息发生了资源依赖才可能产生死锁。

三种典型的类:

  • 请求:load store 更新,写回等
  • intervention(中转):就是把请求转发到最新数据缓存部分
  • 响应:包括invalidation acknowledgements,negative acknowledgements(请求失败),数据(指的是cache block)

可以用大量虚拟链路避免出现死锁。不同的类使用不同的虚链路,循环占有就不会产生了。

虚链路部分还没有开始看,这个问题也是待复现的那篇论文要讨论的事情(死锁避免)


上面一部分基本介绍了关于一致性协议的各种问题

下面一部分开始讨论与cache一致性相关的硬件层次排布带来的影响


cache层次实现对网络性能的影响

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
来自MIT大佬Natalie Enright Jerger、Tushar Krishna、以及Li-Shiuan Peh总结的体系结构片上网络(onchip network)的学习材料(目前主要用于MIT相关课程教学)。 英文摘要:This book targets engineers and researchers familiar with basic computer architecture concepts who are interested in learning about on-chip networks. This work is designed to be a short synthesis of the most critical concepts in on-chip network design. It is a resource for both understanding on-chip network basics and for providing an overview of state of-the-art research in on-chip networks. We believe that an overview that teaches both fundamental concepts and highlights state-of-the-art designs will be of great value to both graduate students and industry engineers. While not an exhaustive text, we hope to illuminate fundamental concepts for the reader as well as identify trends and gaps in on-chip network research. With the rapid advances in this field, we felt it was timely to update and review the state of the art in this second edition. We introduce two new chapters at the end of the book. We have updated the latest research of the past years throughout the book and also expanded our coverage of fundamental concepts to include several research ideas that have now made their way into products and, in our opinion, should be textbook concepts that all on-chip network practitioners should know. For example, these fundamental concepts include message passing, multicast routing, and bubble flow control schemes. Table of Contents: Preface / Acknowledgments / Introduction / Interface with System Architecture / Topology / Routing / Flow Control / Router Microarchitecture / Modeling and Evaluation / Case Studies / Conclusions / References / Authors' Biographies 是学习NOC等领域的非常好的材料。
### 回答1: On-Chip Networks(OCNs)是一种在集成电路上实现的网络结构,用于连接芯片上的各个功能单元。OCNs的设计目标是提供高带宽、低延迟和低功耗的网络通信,以满足现代芯片上日益增长的通信需求。 OCNs使用的基本组件包括:路由器、交换机和链路。这些组件被分布在芯片上,通过互连架构连接起来。OCNs使用的路由算法可以根据不同的设计目标进行优化,如最小化延迟、最大化吞吐量等。 OCNs的优势包括灵活性、可扩展性和能耗效率。由于OCNs可以根据需要进行调整和增强,因此可以适应不同芯片的需求和特性。此外,OCNs还可以通过增加更多的路由器和链路来扩展网络,以满足更高的通信要求。相比传统的总线结构,OCNs能够提供更高的带宽和更低的延迟,从而改善系统性能和响应时间。 在OCNs中,通信的有效性和可靠性是关键考虑因素。通过使用错误检测和纠正机制,OCNs可以提供可靠的通信,防止数据传输中的错误。此外,OCNs还可以通过流控制和拥塞管理来实现网络拥塞的有效控制,以保持网络的高性能和可靠性。 综上所述,On-Chip Networks(OCNs)是一种在集成电路上实现的高带宽、低延迟和低功耗的网络结构。OCNs通过灵活性、可扩展性和能耗效率等优势,为现代芯片提供高效的通信解决方案。通过合适的设计和优化,OCNs可以满足不同芯片的通信需求,提高系统性能和响应时间。 ### 回答2: on-chip networks(片上网络)是指在单个芯片上构建的网络结构,用于实现芯片内不同功能模块之间的通信和数据交换。这些网络提供了高带宽、低延迟和可扩展性等特点,使得芯片内各个模块可以高效地协同工作。 在过去,大多数芯片上的通信使用总线结构进行,但随着芯片规模的扩大和功能需求的增加,总线结构逐渐暴露出瓶颈和限制。因此,研究人员提出了on-chip networks的概念,以解决这些问题。 on-chip networks采用了分布式交换结构,将芯片内的通信划分为多个通道,通过网络交换节点进行数据的转发和路由选择。这种结构可以提供比总线结构更大的带宽和更低的延迟,同时还能够实现并行通信,提高芯片整体的性能。 在设计on-chip networks时,需要考虑网络拓扑结构、交换节点的数量和位置、路由算法等因素。常见的拓扑结构包括网格、环形、星型等,每种结构都有优缺点,需要根据具体应用场景选择合适的拓扑。 除了提高性能,on-chip networks还有助于提高芯片的可扩展性和灵活性。通过增加网络节点和通道的数量,可以支持更多的功能模块和任务,并且可以根据需求进行灵活的节点配置和拓扑重构。 总之,on-chip networks是一种新型的芯片内通信结构,可以提高芯片的性能、可扩展性和灵活性。随着芯片设计的发展和需求的变化,on-chip networks的研究和应用将得到进一步的推进和发展。 ### 回答3: On-chip networks (OCNs) are high-performance interconnects that are designed to be integrated into a single chip. They are used to connect different components and subsystems within a chip, such as processors, memory units, and input/output interfaces. OCNs provide a scalable and efficient communication infrastructure within a chip, allowing for fast and reliable data transfer between various components. They consist of a network of interconnected routers, which direct the flow of data packets between different nodes on the chip. The benefits of using OCNs include improved overall chip performance, increased functionality, and reduced power consumption. By providing a dedicated communication infrastructure, OCNs reduce the dependency on shared buses and enable better parallelism and concurrency in chip designs. OCNs are also highly configurable and can be customized to meet the specific requirements of a chip design. They can be optimized for different communication patterns, such as point-to-point, multicast, or broadcast, depending on the needs of the system. Furthermore, OCNs are designed to be highly scalable, allowing for the integration of more components on a chip without compromising performance. They can handle increasing data traffic and bandwidth requirements as the number of cores and subsystems on a chip continues to grow. Research and development in the field of OCNs have led to advancements in network-on-chip architectures, routing algorithms, and fault tolerance mechanisms. These advancements have made it possible to design more complex and powerful chips, such as multi-core processors and system-on-chip designs. In conclusion, on-chip networks are an essential component of modern chip designs, enabling efficient and reliable communication between different components. They contribute to improved chip performance, increased functionality, and reduced power consumption. OCNs will continue to play a crucial role in the development of future high-performance chips.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值