1. 计算机体系结构的基本概念
1.1引言
- 第一台通用电子计算机诞生于1946年
- 系统结构不断的更新变革,制造技术也不断发展,是计算机的性能高速增长
- 4个progress:
- both
- 大规模集成电路和微处理器
- RISC结构的出现,系统结构更新和变革,制造业发展
- 能耗;指令集并行进一步开发;存储器访问speed的提升变慢
- 系统结构的重大转折:从单纯依靠指令级并行转向开发线程级并行和数据级并行
1.2 计算机系统结构的概念
1.2.1 计算机系统的层次结构
从计算机语言的角度出发,把计算机系统按功能分成多级层次结构:
对于某一层的程序员来说,在该层编写的代码都可以得到一个直接的结果,把每层看成一台虚拟的计算机,那么这一层的语言就是该层的机器语言,该层机器能执行这层语言编写的全部程序。
- 微程序机器级L1
这一级的机器语言是微指令集,其使用者是计算机硬件的设计人员,它们使用微指令编写的微程序直接由固件/硬件来解释实现。 - 传统机器级
在L1级上可以有多个能够在它上面运行的解释程序,每一个解释程序定义了一种指令集。可以通过仿真在一台计算机上实现多种指令集。
有的计算机中没有采用微程序技术,因此没有L1级,这时L2的指令集是由硬连逻辑直接解释执行的(速度快)。RISC处理器经常采用这种实现因为其指令集比较简单。
【注:硬接线方式即传统的接线方式。硬接线系统具有可见的接线、接线端子、测试点. 相对硬接线控制,也可采用先进的可编程控制器、计算机的软连接编程控制等就叫做软接线。】
- 操作系统虚拟机
机器语言由两部分组成:传统的机器语言;操作系统级的指令(对操作系统功能的调用)
由L3和L2共同执行,其中操作系统级由操作系统解释执行。 - 汇编语言虚拟机
先翻译成L3和L2然后再执行,翻译的程序叫汇编程序 - 高级语言虚拟机
编译器翻译到L4和L3然后执行,BASIC解释执行 - 应用语言虚拟机
python
1.2.2 计算机系统结构的定义
在计算机层次结构的各级上的都有其系统结构。
透明性:本来存在的事物或属性,但从某种角度看又不存在的特性。【存在但是你看不见】
系统结构包含的属性:【9】(均由硬件或固件实现)
计算机系统结构的实质:
确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
1.2.3 计算机组成和实现
系统结构:仅考虑是否应该具有这项功能(功能)
组成:考虑这项功能应该使用什么样的方式实现(逻辑)
实现:如何用物理器件去真正的实现组成的逻辑(变现)
1.2.4计算机系统结构的分类
Flynn分类法把计算机分成4类:
实际上就是对多少个数据集使用多少种操作,分别对应。MISD不存在。
标量流水线处理机:SISD
向量流水线处理机:SIMD
1.3 定量分析技术
1.3.1计算机系统设计的定量原理
- 以经常性事件为重点
- Amdahl定律
- 内容:加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。
- 用途:可以具体计算当对计算机系统中的某个部分进行改进后,能获得多少总性能的提高。
- 加速比公式:
- 加速比影响因素
- 可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。(<=1)
-
部件加速比:可改进部分改进后性能提高的倍数(>1)
改进后的总执行时间:
- 系统加速比公式:
- 性能改进的递减规则:如果仅针对计算任务中的一部分进行性能改进,则改进的越多,所得到的整体的性能提高就越有限。(可以从公式分析,可改进的比例逐步减小,对系统总时间的影响越来越小。)
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获的的加速比不超过1/(1-可改进比例)
- CPU性能公式(针对可改进比例难以计算的问题)
⚠️每个影响因素后面的决定条件
只要改进任何一个性能都可以提高CPU的性能。不过参数具有关联性,把关联性限制在可控范围内即可。
计算CPU时钟周期的方法:
ICi是程序执行过程中第i种指令出现的次数,CPIi是执行第i种指令所需的时钟周期数,n为指令总数。
- 程序的局部性原理
- 时间局部性和空间局部性
- 存储层次的基础
1.3.2 计算机系统的性能评测
- 执行时间和吞吐率
执行时间:对于台式机来说用户在乎
吞吐率:数据中心的管理员在乎(单位时间内完成的任务数)
目前广泛采用的一致性和可靠性的性能评价方法是使用真实程序的执行时间来衡量。
执行时间最直观的定义是计算机完成某一任务所花费的全部时间,但是如果是在多任务系统中,如果CPU去执行其他程序会导致当前程序的计时不准确。所以使用CPU时间:指CPU执行给定程序所花费的时间,不包含I/O等待时间以及运行其他程序的时间以及运行其他程序的时间。
CPU时间可以分为:用户CPU时间和系统CPU时间 - 基准测试程序
- 性能比较
1.4 计算机体系结构的发展
1.4.1 冯诺伊曼结构
由运算器、控制器、存储器、输入设备和输出设备五部分组成
存储程序原理的基本点是指令驱动。程序存储在存储器中,计算机一旦开始工作即按照规定逻辑顺序执行相关指令。
- 冯诺依曼结构的主要特点:
指令和数据一样可以进行运算,由指令组成的程序是可以修改的。 - 对相关特点的改进
-
对输入输出方式的改进
DMA(direct memory access)直接访问存储,在外设和存储器之间建立数据通路,使它们可以直接传送数据,而不必经过运算器。在主存和外设之间增加DMA控制器。 - 采用并行技术
可以在不同的级别采用并行技术
微指令:1条指令会有很多的操作组成,有的微指令可同时执行
线程:共享地址空间
进程:独立地址空间
任务:多个进程
把Address放在AB上,把Data放在DB上也是并行。 - 存储器组织结构的发展
- 指令集的发展
-
对输入输出方式的改进
1.4.2 软件对系统结构的影响
1. 系列机
系列机:由同一厂家生产的具有相同的体系结构,但具有不同的组成和实现的一系列不同型号的计算机。
兼容机:由不同公司或厂家生产的具有相同系统结构的计算机。
向后兼容是肯定要做到的,它是系列机的根本特征。
系列机的兼容软件有4种:
2. 模拟和仿真
- 解决问题:系列机只能解决同一系列计算机之间的软件移植。为了使软件在不同体系结构计算机之间进行相互移植,要求
在一种体系结构之上实现另一种体系结构
。 - 模拟(simulation):使用软件的方法在一台现有的计算机(宿主机host)上实现另一台计算机(虚拟机)的指令集,通常用解释的方法实现。
- 仿真:用一台现有计算机(宿主机)上的微程序去解释实现另一台计算机(目标机)的指令集。这个微程序是专门实现目标机指令集而设计的,称为仿真微程序。
⚠️除了仿真指令集,还需要仿真存储系统、I/O系统和控制台操作等 - 仿真和模拟的区别:
- 模拟程序存放在主存中,仿真微程序放在控制存储器中,仿真的运行速度比模拟快。
- 仿真只能在系统结构差距不大的计算机之间使用
- 两种方法混合,使用频度高的使用仿真,频度低和难以使用仿真实现用模拟
3. 统一高级语言
1.4.3 硬件对系统结构的影响
超大规模集成电路(VLSI)技术
1.4.4 应用对系统结构的影响
1.5 计算机系统结构中并行性的发展
1.5.1 并行性的概念
- 并行性(parallelism):计算机系统在同一时刻或同一时间间隔内进行多种运算或操作。只要时间上重叠就存在并行性(这里的并行性比os定义要广泛),包括同时性和并发性。
- 同时性(simultaneity):两个或两个以上的事件在同一时刻发生。
- 并发性(concurrency):两个或两个以上的事件在同一时间间隔 内发生。
- 对于单处理机来说,并行性提高到一定的级别就难以进行了,这时候更高级的并行由软件实现,但是多处理器的并行性由硬件实现。
- 在一个计算机系统中可以采取多种提高并行性的措施,既可以有数据处理方面的也可以有执行程序方面的并行性。当并行性提高到一定级别时,称为进入并行处理parallel processing
1.5.2 提高并行性的技术途径
- 时间重叠(time interleaving):流水线技术是实现时间重叠的典型实例
- 资源重复(resource replication):重复设置硬件资源,单处理机中重复设置多个运算部件或处理部件;重复设置多个处理机,构成多处理机系统。
- 资源共享(resource sharing):软件方法,使多个任务按照一定的时间轮流使用同一套硬件设备。多道程序、分时系统
1.5.3 单机系统中并行性的发展
单处理机起主导作用的是时间重叠原理,实现时间重叠的基础是“部件功能专用化”
1.5.4 多机系统中并行性的发展
- 多机系统根据三个原理向着三种不同的多处理机方向发展——同构型多处理机、异构型多处理机、分布式系统
- 耦合度:反应多机系统中个计算机之间的物理连接的紧密程度和交互作用能力的强弱。
- 同构性多处理器系统homogeneous multiprocessor system
由多个同类型或至少负担同等功能的处理机组成,它们同时处理统一作业中能并行执行的多个任务。 - 异构型多处理器系统heterogeneous multiprocessor system
为了实现时间重叠,按处理功能分散给各专用处理机去完成,即功能专用化,各个功能分离出来,交由专用处理机完成,处理机之间的耦合程度逐渐加强,发展成以后异构型多处理机系统。