Chip multiprocessor architecture techniques to improve throughput and latency
作者: (美)Kunle Olukotun,(美)Lance Hammond,(美)James Laudon著;汪东升,王海霞,李鹏等译
出版社:机械工业出版社,2009
简介: 由于受诸多因素的影响,片上多处理器(chip multiprocessor),又称
多核微处理器或简称CMP,已成为构造现代高性能微处理器的唯一技术途径
。传统超标量指令发射技术无法从典型程序指令流中发掘出足够多的并行
性,使得单核微处理器的性能再无法有效扩展。另外,处理器的功耗与散
热问题日趋严重,除非使用水冷散热系统,否则很难继续依靠简单提高时
钟频率的方法来改善微处理器性能。综合这些问题可以得到一个简单结论
:目前单个微处理器芯片集成了数量空前的晶体管,如果继续保持每年或
两年就完成新一代更大规模处理器的设计与调试工作,将会使成本直线上
升以至无法完成设计工作。
CMP通过在单个芯片中放入多个结构相对简单的处理器内核而不是使用
一个巨大的处理器内核避免了上述问题。CMP内核既可采用简单流水线结构
,又可以使用中度复杂的超标量处理器,无论选定哪种内核,CMP系统都可
以随着半导体工艺的进步,在每一代新版处理器芯片中加入更多数量的高
速处理器内核,来有效扩展处理器性能。此外,并行程序将多线程任务分
发给CMP系统中几个内核并行执行,与单内核处理器相比可以取得显著的性
能提升。尽管在许多实用的应用负载中并行线程已经非常常见,但仍有一
些很重要的应用负载很难被划分为几个线程来并行执行。与传统多处理器
系统相比,CMP系统中内核之间的通信延迟更低,从而使更多应用负载适于
并行执行。但是某些关键应用中缺乏足够的并行度,可能成为这些系统中
推广CMP应用的主要障碍。
通过对比CMP与传统单处理器的优缺点,本书仔细研究了如何针对两种
常见但截然不同的工作负载来更好地设计CMP;并行度较高且对吞吐率敏感
的应用和并行度较低且对延迟敏感的应用。对吞吐率敏感的应用,如可迅
速处理多个独立事务的服务器工作负载,需要综合考虑CMP中所有可能限制
吞吐率的部件,如处理器核心、片上缓存和片外存储器接口。书中展示了
在几个研究与实例系统(如Sun Niagara)中如何进行设计折中。对延迟较敏
感的应用,如桌面应用,其关注的焦点是如何降低内核之间的通信延迟,
以及如何帮助程序员简化已有程序代码多线程化。本书介绍了多种可用于
CMP系统的并行编程简化技术,并重点讨论了斯坦福大学在该领域的相关研
究工作。为了证明CMP的潜在优势,书中给出了一些典型例子来加以说明。
本书的其它关注焦点还包括线程级猜测(thread-level speculation,简称
TLS)和事务型内存(transactional memory)。线程级猜测是一种将标准的
串行程序自动切分成CMP上多个并行线程的方法。事务型内存模型使用硬件
而非传统软件锁机制来保证一段指令的原子代码执行,可以显著简化并行
编程工作量,有效降低并行代码的出错概率。