存档

文章标签 ‘芯片设计’

MIT Angstrom 项目(一)-为多核芯片设计新一代核间互连通路

2011年2月26日 sigma 5 条评论 20,041 views

今天从博客园新闻新闻频道看到了关于MIT的Angstrom项目的介绍,感觉这东西很有必要,也很有前途,于是去MIT官网看了下。这篇文章就介绍一下Angstrom硬件部分,为多核(Multicore)众核(Manycore)芯片设计新一代的高速互连通路(注意,这里讲的是通路,而没说是电路)。

随着摩尔定律日渐式微,提高性能的主要道路主频之路几乎走到了尽头(不过前几天IBM还在ISSCC2011上发布了 5.2GHz 的z196,顺便打下广告,原文的标题是ISSCC: China eyes petaflops, IBM hits 5 GHz,有咱龙芯哈),但天无绝人之路,主频不能提高了,于是出现了多核(Multicore)和众核(Manycore), 但是,多核使得原来已经很明显的存储墙(Memory Wall)愈加明显。并且多核的存储墙往往是不可以通过增加存储层次(如数级Cache)来消除或者减小,因为多核的存储墙的一个重要原因是存储(包括Cache)一致性(memory coherence)导致了核间通讯的增加,这部分通讯是没有办法通过多级存储结构减小的。

为此,美国国防部高级研究计划署(DARPA)在MIT和几个大公司里面推进了一个叫Angstrom的项目,该项目的硬件部分主要目的就是为多喝芯片设计新一代的核内核间互联通路。现在,主要有两种方法提高互连通路的Performance。

第一种方法没有对通信介质进行改进,还是基于电子(electrical),其基本思想是受互联网启发,每个核相当于网路中的一台机器,为了维护存储一致性,不是采用之前的广播算法,而是只把新的数据发给需要的核心,并且每个核心维护一张路由表(router),找到最近的最快的路径发至目标核心,这样的话,可以大大减少核间通讯,提高核间通讯性能。(不过个人感觉,如何决定那些核心需要更新的数据,以及每个核心如何维护一张路由表不出错是一个很难解决的问题)

第二种方法是改进通信介质,用光互连(light)替代现有的电互连,而计算电路保持原来的电子结构。由于光的带宽极大,因此,这种方法是革命性的,将彻底改变整个计算机的结构,因为这是存储墙将不再存在,现在很多为了提高访存的结构将从计算机体系结构中消失。很多优化访存的编译技术也将从编译器中消失。但是该技术现在技术不是很成熟,成本也极其高昂。

第三种方法是改进数据结构,比如对某些不变(只读)的数据,就可以不关心其一致性问题。

在下一篇文章中,将介绍下Angstrom的软件部分,设计新一代多核操作系统

更多阅读:MIT News的英文原文.

最后,附上之前看到(可能有点老了)一张龙芯众核Godson-T的结构图:

 

芯片设计中的测试(Test)

2011年2月6日 sigma 8 条评论 6,717 views

这几天Intel Sandy Bridge 所用芯片组的缺陷的事情闹得沸沸扬扬,其比较早的说法如下:

The flaw, which is found in the comany’s recently released Intel 6-series “Cougar Point” chipset, could cause the Serial-ATA(SATA) ports within the chipset to degrade over time, according to Intel. This could potentially affect the performance or functionality of any hard drive, DVD drive, and other device connected to the SATA port.

上文的大概意思是Intel确认了其6系列(学名“Cougar Point”?)的芯片组存在缺陷。会导致SATA接口老化,会影响所有的SATA设备,如硬盘,DVD等。

作为一个以后很可能在芯片领域混的码农,对这件事还是比较关注的,但是,貌似具体的技术细节没有透露(当然,也可能是因为我搜索能力不行),但可以肯定的是,除了设计者外,测试者的责任最大。因此,在这里,顺便谈谈芯片中的测试:

在现代的芯片设计中,质量保证(Qualification assurance,QA)的两个重要环节是验证和测试,验证一般和设计同步进行,并且一般是硅前的。而测试,往往是硅后的,是工程样片回来后进行的,是芯片投入市场-量产前的最后一道QA程序。

测试的目的就是保证产品不存在或者尽量少存在缺陷(fault),其基本方法就是通过大量的测试向量来发现缺陷从而进行修复。因此,测试向量的好坏直接关系到测试的质量,评价测试向量的两个主要指标有测试向量的覆盖率(Coverage)以及测试向量的大小。覆盖率直接关系着测试的质量,覆盖率越高,意味着测试越充分,被测物未测出的缺陷越少;测试向量越小,意味着测试所需要的时间越少,从样片到量产的时间越短,对一个商业公司来说,这也是非常重要的,提早一个月发布往往意味着抢占了市场先机。在当今的学术界和工业界,测试向量生成一直是一个热门的话题。

另外一个缩短测试时间的方法是提高测试本身的可测性,包括可控制性和可观测性,这需要额外的可测性设计,具体见之前的可测性设计DFT

CMP读书笔记一:CMP的提出

2010年10月17日 sigma 没有评论 5,375 views

这段时间,天天上午睡觉,下午去实验室,晚上三国杀,很久没有静下心来看书了,感觉继续这样下去会不行的。于是打算开始看些体系结构领域相关的书籍,为了提高效率,尽量写写读书笔记。

我选的第一本书是《Chip Multiprocessor Architecture:Techniques to Improve Throughput and Latency》。这是一本刚出不久的,关于片上多核处理器(Chip Multiprocessor,CMP)的设计技术的书,由Kunle Olukotun,Lance Hammond,James Laudon合著的,其中前两位作者都是斯坦福TCC(Transactional coherency and consistency)小组的大牛,第三位作者Sun公司的工程师,Sun公司是我最敬佩的技术类公司,没有之一,只是可惜死了。这本书主要关注的是如何提高处理器的吞吐量以及降低延时。里面涉及了很多新的技术(包括一些没有在工业界实现的技术,如线程级预测TLS-Thread Level Speculation、事务内存-TRANSACTIONAL MEMORY),个人觉得对做多核芯片和并行程序设计的人来说还是不错的一本书。

本书的第一章回顾了整个CPU的发展史,从指令集并行(Instruction-Level Parallelism,ILP)引出了线程级并行(Thread-Level Parallelism),从而导出了CMP的话题。

2006年之前,CPU的性能基本上是按着摩尔定律发展的,这得益于两个方面,一个是集成电路的发展,另外是处理器结构的优化,如超标量技术(Superscalar),动态流水线技术(Dynamic Pipeline),乱序执行技术(Out-of-order Execution)。

但是,在2006年左右,摩尔定律出现了一次危机,ILP也几乎走到了尽头,主要原因是:

  • 集成电路已经发展到了极限,再要提高集成度非常困难,尤其是现在28nm的情况下。
  • 功耗问题的突出,为了提高单核心的速度,提高ILP,现在的处理器花了很大一部分面积用于这些技术的调度,如动态流水线的调度,乱序执行的调度,这些面积的功耗已经远远超过了运算器件的功耗。导致处理器的效率(性能功耗比)急剧下降。
  • 设计验证难度的增加,要想在单核情况下提高处理器的性能,需要设计更复杂的超标量乱序执行动态流水线结构,这导致芯片的设计,尤其是验证呈指数增加,很难再一两年内设计出一款商业的芯片。
    于是,学术界和工业界就提出了更粗粒度的并行,线程级并行TLP。于是有了多核处理器的诞生,多核处理器的主要思想就是,一个芯片内集成几个核,每个核可以做的简单点,每个核的性能功耗比就能做的比较好,从而总的性能功耗比也得到了提高。
    之前的单核超标量处理器的并且,主要都是在ILP层面,通过多发射,分支预测技术,只能处理器一些基本的,很小的并行块,无法进行线程级甚至任务级的并行。各种粒度的并行和各种体系结构的关系如下图:

image

接着作者举了个CMP和Uniprocessor的比较的例子,并做了性能,效率的比较分析。

最后,作者指出了本书主要讨论的问题,一个处理器的吞吐量,一个是延时。前者主要针对并行粒度大,并行度高的应用,如互联网应用;后者主要针对一些延时敏感的应用,如各种实时系统以及各种桌面应用。

无觅相关文章插件,快速提升流量