第一章 多核体系结构概述
一、两种基本的体系结构
(一)冯·诺依曼体系结构中,计算机内部使用二进制,计算机采用五大模块:控制器、运算器、存储器、输入输出设备。 程序能够存储并自动执行。数据通过输入设备进入计算机存储器,在控制器的指挥下在运算器进行逻辑运算和算术运算处理,通过输出设备把结果告诉计算机用户。程序是按顺序存放在计算机存储器中的指令序列,程序中的指令以线性和单线程的模式串行执行。
(二)图灵机不是一种具体的机器,而是一种思想模型,是一种十分简单但运算能力极强的计算机装置 。装置由一个控制器和一根假设两端无界的工作带(起存储器的作用)组成。工作带被划分为大小相同的方格,每一格上可书写一个给定字母表上的符号。控制器可以在带上左右移动,并给出一个你期待的结果。
二、促成软件并发的因素。
(一)促成软件并发的因素
1、外因: 随着人类文明进程的发展,人对外界的需求也越来越高。因此客户需求是引发软件并发的因素之一。
2、内因:
(1)充分利用现有的计算机资源,尽可能的让计算机繁忙。
(2)软件具有先天的并发特性。
(二)软件并发的作用和意义
1、并发能够让系统资源得到最有效的利用。
2、并发为实现具有天然并行特征的软件算法和应用程序提供了一种非常直接有效的途径。
(三)并发(concurrent)与并行(parallel)的区别。
1、并发:多个软件线程并发执行的时候,这些线程在同一硬件资源上交替执行的过程,所有活动线程在某段时间内同时执行,但在某一个特定时刻,只有一个线程在执行。
2、并行:多个软件线程并发执行的时候,这些线程在多个硬件资源上交替执行的过程,所有活动线程在某段时间内同时执行,但在某一个特定时刻,有多个线程在执行。
三、并行计算平台
(一)计算机体系结构分类——Flynn(1972年)分类法。
1、分类依据。
(1)依据计算机在单个时间点能够处理的指令流(instruction streams)数量。
(2)依据计算机在单个时间点能够处理的数据流(data streams)数量。
2、分类。
(1)单指令单数据流机器(SISD):是一种传统的串行计算机,其硬件不支持任何的并行,所有指令都串行执行。在某个时钟周期内,CPU只能处理一个数据流。
(2)多指令单数据流机器(MISD):采用多个指令流同时对一个数据流进行处理。但是这是一种理论模型,没有投入应用。
(3)单指令多数据流机器(SIMD):采用一个指令流同时处理多个数据流。此类及其在诸如数字信号处理、图像处理以及多媒体信息处理等应用领域非常有效。时至今日,几乎所有的计算机也都以各种各样的指令集形式实现了SIMD功能。
(4)多指令多数据流机器(MIMD):能够同时执行多个指令流,这些指令流分别对不同数据流进行操作。MIMD是目前最流行的并行计算平台。
3、目前的计算机一般都属于SIMD机器或者MIMD机器。
(二)微处理器中的并行计算
1、摩尔定理:半导体厂商能够集成在芯片中的晶体数量大约每18~24个月翻一番。
(1)摩尔定理一直引导着计算机设计人员的思维和计算机产业的发展。
(2)许多人错误地认为摩尔定律只是预测CPU时钟频率的工具。
(3)另一部分人认为不应该只通过提高直线指令的吞吐量以及时钟速度来提高性能,还可以通过其他一些途径来利用数量不断增长的晶体管。
2、充分利用处理器资源的方法。
(1)