“一个芯片上集成多核的系统使得设计师们在基础层面上来考虑计算机的架构,”麻省理工大学的教授同时也是2007年(3月份)多核技术博览会的主要发言者之一的Anant Agarwal说道,“Agarwal讨论了多核技术会给设计师们带来的影响,例如分配资源,核心互联,多核技术编程方法。”
Agarwal还说道:“多核技术彻底打破了计算机行业,当今的多核系统已经可以拥有2到16个核心,在未来的3年中核心数目将会达到100个,未来10年内会有1000核心的产品面试。有3个很重要的问题:如何分配资源?核心怎样互联?多核技术的编程如何发展?”
“以往设计师们只是简单地增加缓存核管道的容量就可以提升计算速度,现在我们有了其它的选择,它会为处理器带来新的东西。” Agarwal说道,“在很多情况下增加处理器和减小缓存容量将会比用同样多的处理器和大容量缓存在性能上提升的更多。”
Agarwa介绍了KILL规则-如果不是线性的就被KILL掉,只有在核心的性能按比例增长的区域才会增加它的资源。按照这个规则Agarwa指出这样就可能找到在指定的多核系统内最优化的缓存容量,这个普遍适用的规则使得我们使用比目前更少的缓存。
当时钟速率变得更低缓存容量也能被大幅减小, Agarwal指出如果时钟速率从4G降低到1G的时候单位缓存的错误率增加4倍这样缓存的容量就可以减小16倍。
第二个问题是核心之间如何互联,Agarwal讨论分布式的网状结构而不是总线和环状结构。网状结构是可扩展的因为它的等分频宽随着核心数量的增加而增长,将来网状结构能够比目前的总线型16核心技术节能89-90%同时它还支持简单的布局。
未来的趋势是‘tiled’的多核结构使得资源均匀的分布从而避免了资源的集中。Agarwal主持着一个叫做‘RAW’的项目就是研究这一结构的, Agarwal预测基于总线结构的多核系统将在一两年内退出历史舞台。
当讨论到编程技术将如何发展时, Agarwal提出一个问题:为什么多核系统编程会很复杂? 他指出首先是因为它是全新的技术,是一个认知的问题。他指出,串行程序在很多的层次上比并行处理程序要复杂的多。
Agarwal指出目前针对多核的并行程序设计工具就像在19世纪80年代超大规模集成电路VLSI设计使用的工具一样,仍然处在一个不明朗的阶段。他还指出:“我们需要这些工具,标准和体系。我们有机会建立多核时代的基础API(应用编程接口),谁将是多核时代的Microsoft, Cadence和 Synopsys?”
Agarwal指出原来的程序设计方法已经不能达到标准,Pthreads将会在短期内使用,但是它没有提供软件的封装和和模块化。 在共享内存的结构中直接存储器存取DMA技术浪费了带宽和能耗,消息传递并行程序设计接口MPI需要大的总体花销和大内存支持。
Agarwal指出一个很有前途的概念是使用专用途集成电路ASIC芯片-使数据从一台机器流向另外一台,这是十分高速和节省能源的。它是在硬件设计时就被很好的开发出来,如同一个软件结构因为它和网络应用程序中的套接字是十分类似的。
Agarwal指出核心之间的数据传输比内存访问更加经济,缓存之间的延迟可以低到50个周期,寄存器之间的延迟低到5个周期。一个像套接字并且基于流的程序设计API为多核系统到来很大益处,他还指出:多核协会Multicore Association提议的CAPI标准就是这个API。
拥有缓存容量减小,网状结构的互联和基于流的程序设计等技术,多核系统架构在短期内不会有很大的变化。 Agarwal指出“成功的解决方案将提供革命性的道路,那里有我们的挑战。”