计算机系统结构
第一章:基本概念
一、计算机系统结构的概念
1.层次结构
- 计算机系统 = 硬件 + 软件
- 虚拟机: 由软件实现的机器
- 透明性: 计算机技术中,把本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性
2.定义
- 经典定义:计算机系统结构是程序员所看到的计算机属性,即概念性结构与功能特性
- 广义的系统结构定义:指令集结构、组成、硬件(计算机设计的三个方面)
- Amdahl提出的系统结构:传统机器语言级程序员所看到的计算机属性
- 计算机系统结构概念的实质:确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
3.计算机组成和计算机实现
- 计算机组成:计算机系统结构的逻辑实现
- 计算机实现:计算机组成的物理实现
- 系列机:由同一厂家生产的鞠咏相同系统结构,但具有不同组成和实现的一系列不同型号的计算机
4.分类
- 两种分类法:冯氏分类法、Flynn分类法
- Flynn分类法把计算机系统的结构分为4类:
IS(Instruction Stream):指令流
DS(Data Stream):数据流
CS(Control Stream):控制流
CU(Control Unit):控制部件
PU(Processing Unit):处理部件
MM和SM表示存储器
二、定量分析技术
1.计算机系统设计的定量原理
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的的加速比不超过 1 / (1-可改进比例)
- 有时经常用到下面计算CPU时钟周期总数的方法:
- CPU时间 =
∑
i
=
1
n
(
C
P
I
i
×
I
C
i
)
×
时
钟
周
期
时
间
\sum_{i=1}^n(CPI_i × IC_i)× 时钟周期时间
∑i=1n(CPIi×ICi)×时钟周期时间
2.计算机系统的性能测评
- CPU时间:CPU执行给定程序所花费的时间,不包括I/O等待时间以及运行其他程序的时间
- 用户看到的执行时间是程序完成任务所花费的全部时间,而不仅仅是CPU时间
3.计算机系统结构发展
3.1 冯·诺依曼结构
- 指令集的发展
3.2 软件对系统结构的影响
-
软件的可移植性(软件兼容):软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行,只有执行时间上的差别
-
实现可移植性的常用方法:采用系列机、模拟与仿真、统一高级语言
- 仿真:用一台现有计算机(宿主机)上的微程序(仿真微程序)去解释实现另一台计算机(目标机)的指令集
- 对于使用频率较高的指令,尽量采用仿真方法以提高之执行速度;对于使用频率较低和难以用仿真实现的指令,用模拟方法实现
3.3 器件发展对系统结构的影响
- 摩尔定律:继承电路芯片上所继承的晶体管数目每隔18个月就翻一番
3.4 应用对系统结构的影响
- 应用需求是促使计算机系统结构发展的最根本的动力
- 计算机性能随时间下降
4.计算机系统结构中并行性的发展
4.1 概念
4.2 提高并行性的技术途径
4.3 单机系统中并行性的发展
-
在发展高性能处理机过程中,其主导作用的是时间重叠原理
-
实现时间重叠的基础:部件功能专用化
-
资源重复:多体存储器和多操作部件
-
资源共享:用单处理剂模拟多处理机的功能,形成虚拟机的概念
4.4 多机系统中并行性的发展
- 多机系统遵循时间重叠、资源重复、资源共享原理,发展为3种不同的多处理机:异构型多处理机、同构型多处理机、分布式系统
- 耦合度:反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱
- 异构型多处理机系统:由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作
- 同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务
第二章:计算机指令集结构
一、指令集的分类
- 区别不同指令集结构的主要因素:CPU中用来存储操作数的存储单元的类型:主要有堆栈、累加器、通用寄存器组
二、寻址方式
- 指令集结构确定所要访问的数据的地址的方式