第一章:计算机系统结构的基础知识
链接:https://pan.baidu.com/s/1WyftXZzso0_ePWaMDDCUPw
提取码:hu2b
1.1 计算机系统结构的基本概念
从2002年以来,计算机的性能的年增长率下降了约20%,其主要原因是:
-
大功率问题
-
可以进一步有效开发的指令集级并行性已经很少
-
存储器的访问速度的提高缓慢。这使得单个处理机性能的提高收到了严峻的挑战,于是,intel于2004年放弃其高性能单处理器项目,转向多核的研究和开发。这是通过在单个芯片上实现多个处理器核来提高性能的。
重大转折: 从单纯依靠指令级并行转向开发线程级并行和数据级并行。
1.1.1 计算机系统的层次结构
从语言的角度出发,可把计算机系统按功能划分为如图所示的多级层次结构。
各机器级的实现主要靠翻译或者red解释,或两者的结合。
翻译:是先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在该低一级机器上运行,实现程序的功能。
解释:对高一级机器上的程序中的每一条语句或指令,都转去执行低一级机器上的一段等效程序。
解释执行比编译后在执行所花的实现多,但占用的存储空间少。
1.1.2 计算机系统结构的定义
计算机系统结构是指传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
在 计算机技术中,把这种本来存在的事物或属性。但从某种角度看又好像不存在的概念称之为透明性
1.1.3 计算机组成和计算机实现
- 计算机组成:计算机系统结构的逻辑实现包含物理机器级中的数据流和控制流的组成以及逻辑设计等。它着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。
- 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于:器件技术(起主导作用)、微组装技术。
- 具有相同系统结构的计算机可以采用不同的计算机组成。同一种计算机组成又可以采用多种不同的计算机实现。系列机的出现刚好反映了这一点。如Intel公司的x86系列。
1.1.4 计算机系统结构的分类
分类法有三种:Flynn分类法,冯氏分类法,和Handler分类法
-
Flynn分类法
-
按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为4类:
1.单指令流单数据流SISD、2.单指令流多数据流SIMD、3.多指令流单数据流MISD、4.多指令流多数据流MIMD。
-
4类计算机的基本结构为:IS:指令流,DS:数据流,CS:控制流,CU:控制部件,PU:处理部件,MM和SM:存储器。
-
指令流:计算机执行的指令序列
-
数据流:由指令流调用的数据序列
-
多倍性:在系统最受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。
-
-
冯氏分类法
- 用系统的最大并行度对计算机进行分类。
- 4类不同最大并行度的计算机系统结构
- 字串位串:n=1,m=1。(第一代计算机发展初期的纯串行计算机)
- 字串位并: n>1,m=1。这是传统的单处理机,同时处理单个字的多个位,如16位、32位等。
- 字并位串:n=1,m>1。同时处理多个字的同一位(位片)。
- 字并位并:n>1,m>1。同时处理多个字的多个位。
- 最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数。
-
Handler分类法
- 根据并行度和流水线对计算机进行分类。把计算机的硬件结构分成3个层次:程序控制部件(PCU)的个数k、算术逻辑部件(ALU)或处理部件(PE)的个数d、每个算术逻辑部件包含基本逻辑线路(ELC)的套数w。
- 用公式表示:t(系统型号)=(k,d,w)
- 进一步改进:t (系统型号)=(k×k’,d×d’,w×w’) 其中:k’:宏流水线中程序控制部件的个数、d’:指令流水线中算术逻辑部件的个数、w’:操作流水线中基本逻辑线路的套数。
1.2 计算机系统的设计
1.2.1 计算机系统设计的定量原理
1.加快经常性事件:
对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。这里的优化是指分配更多的资源,达到更高的性能等。
2.Amdahl定律:
加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比
3.CPU性能公式:
执行一个程序所需的CPU时间
CPU时间 = 执行程序所需要的时钟周期数 X 时钟周期时间 = IC X CPI X 时钟周期时间
CPI: 每条指令的时钟周期数,有时简称为指令的平均时钟周期数。IC: 指令条数。
对CPU性能公式进行进一步细化
假设:计算机系统有n种指令;
CPIi :第i种指令的处理时间;
ICi :在程序中第i种指令出现的次数;
则:
4.程序的局部性原理:
程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚
局部性包括时间局部性和空间局部性。
1.2.2 计算机设计者的主要任务
计算机系统设计者的任务包括指令系统的设计,数据表示的设计,功能的组织,逻辑设计以及物理实现。设计一个计算机系统大致要完成以下三个方面的工作。
-
确定用户对计算机系统的功能,价格和性能要求
-
软硬件功能分配
1)应用领域
2)软件兼容
3)操作系统需求
4)标准
确定系统中有哪些方面要采用标准以及采用什么标准。如浮点数标准,I/O总线标准,网络标准(Ethernet,ATM等),程序设计语言标准。
-
设计出生命周期长的系统结构
1.2.3 计算机系统设计的主要方法
计算机系统设计的主要方法:
-
“由上往下”(top-down) 设计(适合于专用机的设计,而不适合通用机的设计)。
-
“由下往上”(bottom-up) 设计(以硬件为主,软件几乎全被动)。
-
“从中间开始”(middle-out) 设计(综合考虑软、硬件的分工)。
1.3 计算机系统性能评测
-
执行时间和吞吐率,
执行时间:执行单个程序所花的时间;吞吐率:在单位时间里能够完成的任务很多。
CPU时间:CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其它程序的时间。
- 用户CPU时间:用户程序所耗费的CPU时间。
- 系统CPU时间:用户程序运行期间操作系统耗费的CPU时间。
-
基准测试程序,
用于测试和比较性能的基准测试程序的最佳选择是真实应用程序。(例如编译器)
桌面计算机的基准测试程序套件可以分为两大类:处理器性能测试程序,图形性能测试程序。
-
性能比较(总执行时间、平均执行时间、调和平均值、几何平均值)。
1.4 计算机系统结构的发展
1.4.1 冯·诺依曼结构结构及其演进
存储程序原理的基本点是指令驱动。程序预先存放在计算机存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
在系统结构方面有了很大的进展,主要包括以下几个方面。
- 对输入输出方式的改进
- 采用并行处理技术
- 存储器组织结构的发展
- 指令系统的发展
1.4.2 软件对系统结构的影响
-
统一高级语言
-
采用系列机
系列机的软件兼容有四种:向上兼容,向下兼容,向前兼容,向后兼容。
-
模拟和仿真
模拟:用软件的方法在一台现有的机器(称为宿主机)上实现另一台机器(称为虚拟机)的指令集。通常用解释的方法来实现。运行速度较慢,性能较差。
仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。
1.4.3 器件发展对系统结构的影响
高性能,低价格CPU芯片的出现使得大规模并行处理系统的实现成为可能。
1.5 计算机系统结构中并行性的发展
1.5.1 并行性的概念
并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。
同时性和并行性的区别:
- 同时性:两个或两个以上的事件在同一时刻发生。
- 并发性:两个或两个以上的事件在同一时间间隔内发生。
从处理数据的角度来看,并行性等级从低到高可分为以下几种。
- 字串位串 2.字串位并 3.字并位串 4.全并行
从执行程序的角度来看,并行性等级从低到高可分为以下5种。
- 指令内部并行 2.指令级并行 3.线程级并行 4.任务级或过程级并行 5. 作业或程序级并行
1.5.2 提高并行性的技术途径
- 时间重叠
- 资源重复
- 资源共享
1.5.3 单机系统中并行性的发展
1.5.4 多机系统中并行性的发展
多机系统也遵循时间重叠,资源重复,资源共享原理,向着三种不同的多处理机方向发展。
这三种不同的多处理机是:同构型多处理机,异构型多处理机和分布式系统。不过,所采用的技术措施与单处理机系统有点区别。
多机系统的耦合度可以分为紧密耦合和松散耦合两大类。
1.5.5 并行机的发展变化
- 并行机的萌芽阶段(1964 - 1975)
- 向量机的发展和鼎盛阶段 (1976 - 1990)
- MPP出现和蓬勃发展阶段(1990 - 1995)
- 各种体系结构并存阶段(1995 - 2000)
同的多处理机方向发展。
这三种不同的多处理机是:同构型多处理机,异构型多处理机和分布式系统。不过,所采用的技术措施与单处理机系统有点区别。
多机系统的耦合度可以分为紧密耦合和松散耦合两大类。
1.5.5 并行机的发展变化
- 并行机的萌芽阶段(1964 - 1975)
- 向量机的发展和鼎盛阶段 (1976 - 1990)
- MPP出现和蓬勃发展阶段(1990 - 1995)
- 各种体系结构并存阶段(1995 - 2000)
- 机群蓬勃发展阶段(2000年以后)