CMP架构 NoC traffic model - embedclub/Lavender GitHub Wiki

《Efficient Synthetic Traffic Models for Large, Complex SoCs》

摘要

在处理器中,互联或者片上网络是一个逐渐重要的组件。随着系统在尺度和功能上的扩增,有效建模大规模的和更复杂的NoC能力对于设计和评估复杂的系统日趋重要。最近研究提出“SynFull”方法——通过统计分析一个负载的NoC流量,来创建基于马尔科夫链模型的compact流量生成器。流量在统计学上类似于原始的trace,并且可以用于快速的NoC仿真。**However, the original SynFull work only evaluated multi-core CPU scenarios with a very simple cache coherence protocol (MESI).**我们发现“SynFull”方法不足以建模负载的片上系统(SoC)。我们标识和分析了异构SoC中使用“SynFull”方法的缺点,这个异构SoC有一个更加复杂的缓存层次结构——包括支持CPU和GPU之间的全部一致性协议,共享cache和异构负载。本论文引进新的技术来克服这些缺点。此外,早期的“SynFull”方法针对N各节点的NoC和固定尺寸的应用建模。最后,我们提出了一个新颖的合成内存引用模型来替换固定的延迟模型;这使得内存子系统和NoC的迭代的评估更加真实。我们的方法很适合大尺寸,异构SoC架构。

1, 介绍

现代计算机系统已经从相对简单微处理器到复杂系统芯片(Soc)。当前系统已经集成了 Cpu,Gpu,网络上芯片 (Noc),内存控制器 [1,2]等。未来是异构SoC的世界,大数据,云计算。

全面的NoC和内存建模方法可以应对异构系统、大尺寸、可扩展系统和真实的内存系统的完整组合。

2, Synfull方法

Synfull生成合成流量,该流量类似含有一致性缓存协议的同构多核CPU的真实流量。第一步,找到一些执行片段,该片段可以精确的反应整个执行过程中的网络流量特征。这个通过使用层次聚类的方法实现,分为大尺度和小尺度,聚类的数据来源是一个记录整个网络注入情况的应用程序的trace。按照固定时间尺寸划分trace。通过聚类算法,把macrophase段聚成一类,不同的流量特征被用作聚类的依据。,这些特征有节点注入率,和源目的流。

回写与透写

对于cache的算法。大方面有两种,Write-Through(通写)和Write-Back(回写).
Write-Through,也就是说OS发送的处理data的请求,一直要等到全部memory里面的data正确写到稳定存储media(如硬盘)中,然后返回给OS报告处理完毕,然后OS才会去update其状态;这种情况下,通常不会有dirty cache.
而Write-Back,就是在OS发送处理data的请求后,该算法会将它用buffer存起来,并在没有正确写到稳定存储media(如硬盘)中前,就告诉OS处理完毕,然后OS就会去update;但是要是此时掉电或其他故障,buffer的数据没有被写入稳定存储media(如硬盘),那么os update的信息就和media中的信息不一致.为了避免这样,所以才用NVRAM,它在调电后数据仍然不丢失,但是在被重新上电后,其数据会是dirty的,也就是楼主所提到的dirty cache(如何将dirty cache更新到media,这是Write-Back应该做的事)。
这和买卖东西相似,Write-Through就相当于你亲自去买东西,你买到什么就可以亲手拿到;而Write-Back就和中介差不多,你给了中介钱,然后它告诉你说你的东西买到了,然后就相信拿到这个东西了,但是要是出现特殊情况中介跑了(掉链子了),你再去检查,东西原来没有真正到手。 白皮书规定: ========================================== 在回写式规定中,高速缓存将充当缓冲区。处理器开始写入循环时,高速缓存将接收数据并停止循环。当系统总线可用时,高速缓存再将数据写回主内存 在直写式规定中,处理器会直接将高速缓存中的数据写入主内存。直至将数据存储至主内存,写入循环才能完成。