计算机系统概述
目录
通用微处理器发展历程
第一代
- 字长是4或8位
- 典型的是美国 Intel 4004和Intel 8008微处理器。
- Intel 4004是一种4位微处理器,可进行4位二进制的并行运算,有45条指令,速度0.05MIPS
- 该阶段计算机工作速度较慢,微处理器的指令系统不完整,存储器容量很小,只有几百字节,没有操作系统,只有汇编语言
第二代
- 典型的微处理器有Intel 8080/8085
- 与第一代微处理器相比,集成度提高了1~4倍,运算速度提高了10~15倍,指令系统相对比较完善,已具备典型的计算机体系结构及中断、直接存储器存取(DMA)等功能
第三代
- 16位微处理器
- 1978 年,Intel公司率先推出16位微处理器8086,同时,为了方便原来的8位机用户,Intel公司又提出了一种准16位微处理器8088 (外部引出8根数据线,但内部为16位)
- 8086微处理器最高主频速度为8MHz,具有16位数据通道,内存寻址能力为1MB (20根地址线)
第四代
- 32位微处理器
- 1985年10月17日,英特尔划时代的产品—80386DX正式发布了,其内部包含27.5万个晶体管,时钟频率为12.5MHz,后逐步提高到20MHz、25MHz、33MHz,最后还有少量的40MHz产品
- 1989年,80486芯片由英特尔推出。80486的时钟频率从25MHz逐步提高到33MHz、40MHz、50MHz
第五代
- 奔腾(Pentium)系列微处理器时代,通常称为第5代
- 早期的奔腾75MHz~120MHz使用0.5微米的制造工艺,后期120MHz频率以上的奔腾则改用0.35微米工艺。经典奔腾的性能相当平均,整数运算和浮点运算都不错
- 2000年推出的Pentium 4处理器内建了4200万个晶体管,以及采用0.18微米的电路,Pentium 4初期推出版本的速度就高达1.5GHz,晶体管约为4200万颗,翌年8月,Pentium 4 处理器达到2GHz的里程碑
第六代
- 酷睿(core)系列微处理器时代,通常称为第6代
- “酷睿”是一款领先节能的新型微架构,设计的出发点是提供出众的性能和能效,提高每瓦特性能,即所谓的能效比
- 发布Intel Core i7处理器,是一款45nm原生四核处理器,处理器拥有8MB三级缓存,支持三通道DDR3内存。采用四核八线程或六核十二线程架构。
- 典型主频:2.66GHz、2.93GHz、3.2GHz等
趋势:从单处理器向多处理器发展
- 80486有一个定点处理器,一个浮点处理器
- Pentium有二个定点处理器,一个浮点处理器
- Pentium Pro有四个定点处理器,二个浮点处理器,支持多CPU
- Pentium II片内集成了二级Cache
- Pentium MMX芯片增加入了57条多媒体指令
- i7采用四核八线程或六核十二线程架构
发展方向:采用并行处理技术
- 对传统冯诺依曼机进行改造,如采用多个处理部件形成流水线处理,依靠时间上的重叠提高处理效率;又如:组成阵列机结构,形成单指令流多数据流,提高处理速度
- 用多个冯诺依曼机组成多机系统,支持并行算法结构
- 从根本上改变诺依曼机的控制流驱动方式。如:采用数据流驱动方式,只要数据准备好,有关的指令就可并行执行
计算机系统层次结构
计算机系统硬件组成
- 运算器:完成数据的暂存、变换、算术运算和逻辑运算功能
- 控制器:完成对计算机各部件协同运行的指挥控制,保证了指令按照预定次序、步骤执行
- 存储器:存放程序和数据。存储器可与CPU、输入输出设备交换信息
- 输入设备
- 输出设备
冯.诺依曼机的基本特点
冯.诺依曼机体系结构属于典型的单指令流单数据流的系统:
- 计算机由运算器、控制器、存储器、输入设备和输出设备五部分组成
- 以二进制代码表示程序和数据
- 采用存储程序的工作方式:程序和数据事先放在同一存储器中,由指令组成的程序可以修改
- 指令在存储器中按执行顺序存放,由指令计数器指明要执行的指令所在的单元地址,一般按顺序递增
- 机器以运算器为中心,数据传送都经过运算器
- 软硬件完全分开
存储程序,并且按照地址顺序执行,是冯•诺依曼计算机设计的关键思想
计算机软件组成
软件按照面向对象的不同可分为:
-
系统软件:面向系统,用于管理整个计算机系统,合理分配系统资源,确保计算机正常高效运行
包括:操作系统或管理软件、汇编程序 (将汇编程序编译为机器指令)、高级语言的编译或解释程序、故障诊断或检验程序、系统调试程序、数据库管理程序 -
应用软件:面向用户,根据用户的特殊要求编制的应用程序
计算机系统层次结构
计算机系统通常由6个(或5个)不同的级组成,在每一级都能够进行程序设计——虚拟机
站在不同层次上编程的程序员所看到的计算机属性各不相同
计算机性能指标
字长
指计算机内,表示一个操作数或一条指令所用的基本二进制位数
- 是CPU一次能处理的数据宽度,与加法器、寄存器的位数和内部数据总线的宽度等有关
- 通常字长越长,运算精度越高
- 通常选字节的整数倍:2、4、8倍等
运算速度
- 可以根据不同类型指令在计算过程中出现的频率乘上不同的系数求得统计平均值,这时的运算速度是平均运算速度
- 也可以直接给出每条指令的实际执行时间
参数
-
响应时间:执行时间
-
主频: F C F_C FC
-
CPU 时钟周期: T C = 1 F C T_C=\frac{1}{F_C} TC=FC1
-
C P I CPI CPI (Cycle per instruction):执行一条指令所需平均时钟周期数
C P I = ∑ i = 1 n ( C P I i × I i ) I N CPI=\frac{\sum_{i=1}^n(CPI_i\times I_i)}{I_N} CPI=IN∑i=1n(CPIi×Ii)其中 I i I_i Ii 表示第 i i i 类指令在程序中执行条数; C P I i CPI_i CPIi 表示执行一条第 i i i 类指令所需要的平均周期数; n n n 表示程序中所有指令类数; I N I_N IN 表示执行程序中指令的总数
也可改写为
C P I = ∑ i = 1 n ( C P I i × I i I N ) CPI=\sum_{i=1}^n(CPI_i\times \frac{I_i}{I_N}) CPI=i=1∑n(CPIi×INIi)其中 I i I N \frac{I_i}{I_N} INIi 表示第 i i i 类指令在程序中所占的比例 -
CPU执行时间: T C P U = I N × C P I × T C T_{CPU}=I_N\times CPI\times T_C TCPU=IN×CPI×TC
-
M I P S MIPS MIPS (Million Instructions Per Second)
M I P S = I N T C P U × 1 0 6 = 1 C P I × T C × 1 0 6 = F C C P I × 1 0 6 MIPS=\frac{I_N}{T_{CPU}\times 10^6}=\frac{1}{CPI\times T_C\times 10^6}=\frac{F_C}{CPI\times10^6} MIPS=TCPU×106IN=CPI×TC×1061=CPI×106FC
M I P S MIPS MIPS只适合评价标量机,不适合评价向量机
标量机执行一条指令,得到一个运行结果。向量机执行一条指令,可以得到多个运算结果 -
M F L O P S MFLOPS MFLOPS (Million Floating Point Operations Per Second)
M F L O P S = I f n T C P U × 1 0 6 MFLOPS=\frac{I_{f_n}}{T_{CPU}\times10^6} MFLOPS=TCPU×106Ifn
I f n I_{f_n} Ifn:程序中浮点数的运算次数
M F L O P S MFLOPS MFLOPS比较适合衡量向量机的性能。
一般,同一程序运行在不同的计算机上往往会执行不同数量的指令数,但所执行的浮点运算次数常常是相同的
通常以 M I P S MIPS MIPS 和 M F L O P S MFLOPS MFLOPS 等作为计量单位来衡量运算速度