第1章 计算机系统结构的基本概念
1.1 引 言
-
第一台通用电子计算机诞生于1946年——ENIAC
-
计算机技术的飞速发展得益于两个方面
- 计算机制造技术的发展
- 计算机系统结构的创新
-
计算机技术经历了4个发展过程
时 间 | 原 因 | 每年性能增长 |
---|---|---|
1946年起的25年 | 两种因素都起着主要的作用 | 25% |
20世纪70年代末-80年代初 | 大规模集成电路和微处理器出现,以集成电路为代表的制造技术的发展 | 约35% |
20世纪80年代中开始 | RISC结构的出现,系统结构不断更新和变革,制造技术不断发展 | 50%以上 维持了约16年 |
2002年以来 | 1.功耗问题(已经很大) 2.可以进一步有效开发的指令级并行性已经很少 3.存储器访问速度的提高缓慢。 |
约20% |
系统结构的重大转折:
- 从单纯依靠指令级并行转向开发线程级并行和数据级并行
- 计算机系统结构在计算机的发展中有着极其重要的作用
1.2 计算机系统结构的概念
1.2.1 计算机系统的层次结构
-
计算机系统=硬件/固件+软件
-
计算机语言从低级向高级发展
- 微程序→机器语言→汇编语言→高级语言→应用语言
- 高一级语言的语句相对于低一级语言来说功能更强,更便于应用,但又都以低级语言为基础
-
从计算机语言的角度,把计算机系统按功能划分成多级层次结构
- 每一层以一种语言为特征
- 每一层以一种语言为特征
-
虚拟机:由软件实现的机器
-
语言实现的两种基本技术
-
翻译:先把N+1级程序全部转换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。
-
解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。
-
解释执行比编译后再执行所花的时间多,但占用的存储空间较少。
1.2.2 计算机系统结构的定义
-
计算机系统结构的经典定义
-
程序员所看到的计算机属性(即概念性结构与功能特性)。
-
程序员:系统程序员(包括:汇编语言、机器语言、编译程序、操作系统)
-
看到的:编写出能在机器上正确运行的程序所必须了解的
-
计算机属性:指令系统、数据表示、寻址方式
-
-
-
按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
-
透明性:把本来存在的事物或属性,从某种角度看似乎不存在
-
Amdahl提出的系统结构
- 传统机器语言级程序员所看到的计算机属性
-
广义的系统结构定义:指令集结构、组成、硬件(计算机设计的3个方面)
-
对于通用寄存器型机器来说,这些属性主要是指:
- 指令系统
- 数据表示
- 寻址规则
- 寄存器定义
- 中断系统
- 机器工作状态的定义和切换
- 存储系统
- 信息保护
- I/O结构
-
计算机系统结构概念的实质:
- 确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
-
计算机系统由软件、硬件和固件组成,它们在功能上是等价的。
- 同一种功能可以用硬件实现,也可以用软件或固件实现。
- 不同的实现只是性能和价格不同,他们的系统结构是相同的。
1.2.3 计算机组成和计算机实现
-
计算机系统结构:计算机系统的软、硬件的界面
- 即机器语言程序员所看到的传统机器级所具有的属性。
-
计算机组成:计算机系统结构的逻辑实现
-
从内部研究计算机系统。包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
-
计算机组成是指计算机主要部件的类型、数量、组成方式、控制方式和信息流动方式及其相互连接构成的系统。
-
着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。
-
计算机组成主要研究数据
-