前言
《计算机体系结构量化研究方法(第六版)》John L. Hennessy David A. Patterson
个人总结
1.2 计算机的分类
计算机使用方式的变化促进了5种计算市场的形成,其中每一种都有自己不同的应用、需求和计算技术。表1-1总结了主流计算环境及其主要特征。
1.2.1 物联网/嵌入式计算机
1.物联网(Internet of Things, IoT)指的是通常以无线方式连接到互联网的嵌入式计算机,可辅以传感器和驱动器收集有用数据,与物理世界进行互动,从而实现各种智能应用。
1.2.2 个人移动设备
1.个人移动设备(personal mobile device, PMD)是指带有多媒体用户界面的无线设备,包括手机和平板计算机等。由于整个产品的零售价格为数百美元,所以成本是一个很关键的因素;经常使用电池也强调能效;但需要使用相对便宜的外壳,缺少风扇而限制了总功耗。
2.PMD上的应用程序经常是基于Web、面向媒体的;能耗与尺寸要求决定了要采用闪存而不是磁盘作为存储方式。
3.PMD中的处理器经常被视作嵌入式计算机,但是我们将其看做作一个单独的类别,这是因为PMD是可以运行外部开发软件的平台,它们与桌面计算机有许多共同特征。其他嵌入式设备在硬件和软件复杂性方面都有很大的限制。我们将能否运行第三方软件作为区分嵌入式计算机和非嵌入式计算机的标准。
4.响应性能和可预测性能是多媒体应用程序的关键特征。实时性能需求是指应用程序的一个程序段有一个确定的最大执行时间。某些应用程序还有更具体的需求:当超出某一最大时间时,会限制特定任务的平均时间和实例数目。如果仅仅偶尔违反一个事件的时间约束条件,而非频繁发生这种情况,就可以采用软实时的方法。实时性能往往严重依赖于具体的应用程序。
5.PMD其他的关键特征:需要将存储器占用减至最小;需要高效利用能源。电池容量和散热问题决定了需要提高能效。存储器成本在系统成本中占很大的比例,优化存储容量非常重要。由于应用程序决定了数据规模的大小,因此对存储容量的重视转化为对代码规模的重视。
1.2.3 桌面计算机
1.以资金论,第一个市场(很有可能仍然是最大的市场)是桌面计算机市场。桌面计算机覆盖了低端到高端的整个产品范围,从不到300美元的低端上网本到可达2500美元的高端高配工作站。从2008年开始,每年生产的个人计算机有一半以上是由电池供电的笔记本计算机,台式机的销量正在下降。
2.在整个价格与性能范围内,桌面计算机市场趋向于寻求最优性价比。系统的性能(主要计算性能和图形性能)和价格对客户最重要,因此也对计算机设计人员最重要。最新、最高性能的微处理器和低成本处理器经常首先出现在桌面系统中。
3.尽管以Web为中心的交互式应用程序的使用日益增多,为性能评估带来了新的挑战,但是应用程序和基准测试还是能够很好地体现桌面计算机的特征。
1.2.4 服务器
1.服务器的角色逐渐变为提供更大规模、更可靠的文件和计算服务。这些服务已经替代了传统的大型机,称为大规模企业计算的中枢。
2.服务器的关键特征不同于桌面计算机。首先,可用性至关重要。服务器应用程序因宕机所造成的损失和后果远比单台计算机发生故障严重。
3.服务器系统的第二个关键特征是可扩展性。服务器系统经常需要扩展,以满足对支持的服务日益增长的需求,或者应对日益增加的功能需求。因此,服务器扩展计算能力、内存、存储和I/O带宽的能力极为重要。
4.最后一个特征是,服务器的设计应使其具有很高的吞吐能力。服务器的整体性能(每分钟处理的事务数或者每秒钟提供的网页数)很重要。尽管响应单个请求的速度依然重要,但总体效率和成本效益(单位时间内能够处理的请求数决定)才是大多数服务器的关键指标。
1.2.5 集群/仓库级计算机
1.软件即服务(Software-as-a-service, SaaS)应用(比如搜索、社交网络、视频分享、多人游戏、在线销售等)的发展促进了一类被称为集群的计算机的发展。集群是指一组桌面计算机或服务器通过局域网连接在一起,其运转方式类似于一台更大型的计算机。每个节点都运行自己的操作系统,节点之间使用网络协议进行通信。最大规模的集群称为仓库级计算机(Warehouse Scale Computers, WSC), 其设计方式使数百万台服务器像一台服务器一样运行。
2.WSC的大部分成本与仓库内计算机的功耗和冷却技术有关。这些按年摊销的计算机和网络设备的年费用高达4000万美元,因为它们通常每隔几年就必须更换一次。性价比提高10%就意味着每个WSC每年可以节省400万美元。
3.WSC与服务器的相似之处在于,可用性对它们非常重要。例如,Amazon美国网站2016年的销售额为1360亿美元,一年接近8800个小时,所以每小时的平均收入大概是1500万美元。WSC与服务器的区别在于,WSC以很多廉价组件为模块进行构建,依靠软件层来捕获和隔离在这一级别进行计算时发生的许多故障,从而提供这类应用程序所需的可用性。注意:WSC的可扩展性是由连接这些计算机的局域网实现的,而不是像服务器那样通过集成计算机硬件来实现。
4.超级计算机与WSC的相似之处在于它们都很昂贵,需要花费上千万美元。二者不同之处在于,超级计算机强调浮点性能,运行大型的、通信密集的批程序,这些程序可能会一次运行几个星期;而WSC强调交互式应用程序、大规模存储、可靠性和高互联网带宽。
5.批程序:批处理程序,一个ASCII(无格式文本)文件,它包含一个或多个操作系统命令。?
1.2.6 并行度和并行体系结构的分类
1.在上述计算机类别中,多种级别的并行度已成为计算机设计的驱动力,而能耗和成本则是主要约束。应用程序中主要有以下两种并行:
(1)数据级并行(DLP)之所以出现是因为许多数据项可以同时操作。
(2)任务级并行(TLP)之所以出现是因为创建的工作任务可以单独执行并且主要采用并行方式执行。
2.计算机硬件又以以下4种主要方式来利用这两种类型的应用并行:
(1)指令级并行在两个层面对数据级并行进行了利用,首先在编译器的帮助下,借助流水线之类的思想适度利用,其次借助推测执行(speculative execution)之类的思想进一步利用。
(2)向量体系结构、图形处理器(graphic processor unit, GPU)和多媒体指令集(multimedia instruction set)将单条指令并行应用于一组数据,以利用数据级并行。
(3)线程级并行,在一种紧耦合硬件模型中利用数据级并行或任务级并行,这种模型允许并行线程之间进行交互。
(4)请求级并行利用程序员或操作系统指定的大量解耦任务之间的并行性。
3.Michael Flynn在20世纪60年代研究并行计算工作量时,提出了一种简单的分类方式,我们今天仍在使用这种分类的缩写。它们针对的是数据级并行和任务级并行。他对指令流和数据流中的并行进行了研究,在多处理器受限制最多的组件中,指令非常需要上述并行。根据研究结果,他将所有计算机划分为以下4类:
(1)单指令流单数据流(single instruction stream, single data stream, SISD):单处理器。标准的顺序计算机,但可以利用指令级并行。
(2)单指令流多数据流(single instruction stream, multiple data stream, SIMD):同一指令由多个使用不同数据流的处理器执行。SIMD利用数据级并行,对多个数据项并行执行相同的操作。每个处理器都有自己的数据存储器(MD),但是只有一个指令存储器和控制处理器,用来提取和分派指令。
(3)多指令流单数据流(multiple instruction stream, single data stream, MISD):到目前为止,还没有这种类型的商用多处理器,但包含这种类型之后,分类方式才算完整。
(4)多指令流多数据流(multiple instruction stream, multiple data stream, MIMD):每个处理器都提取自己的指令,对自己的数据进行操作,它针对的是任务级并行。一般来说MIMD比SIMD更灵活,适用性也更强,也更贵一些。MIMD也可以利用数据级并行,但开销会比SIMD计算机高一些。这种开销意味着粒度要足够大,以便高效地利用并行度。
这种分类模型很粗略,许多并行处理器其实是SISD、SIMD和MIMD的混合类型。