计算机组成原理
一、计算机系统概述
有处理器的电子设备,其实都可以叫做计算机
处理器+内存=计算机
计算机系统由硬件和软件构成
计算机的基本功能主要包括数据加工、数据保存、数据传送和操作控制等
五大功能部件:
运算器、控制器
存储器(存储系统)(高速缓存、主存储器、虚拟存储器)
输入设备、输出设备
这些设备和部件通过总线和接口连结在一起,构成一台完整的计算机
现也有认为五大组成部分是CPU、存储器、输入设备、输出设备、总线
1.运算器
进行算术运算和逻辑运算
字节与字长(注意区分),字长与位数有关
2.存储器
保存或“记忆“解题的程序(指令)和数据
在运算前把参加运算的数据和解体步骤通过输入输出设备送到存储器中保存起来
不论是数据还是指令,存储器存储的全是0或1表示的二进制代码
目前采用半导体器件来作为存储器。一个半导体触发器可以记忆一个二进制代码,一个数假定用16位二进制代码表示,那么就需要有16个触发器来保存这些代码
存储元:保存一个二进制位的触发器,称为一个存储元
存储单元:若干存储元构成一个存储单元,一般以一个字节(8位二进制数)为一个存储单元
地址:存储器是由许多存储单元组成,每个存储单元的编号,成为地址
存储容量:存储器所有存储单元的总数,通常用单位“KB、MB、GB、TB”表示
外存储器:计算机中又配备的存储容量更大的磁盘存储器、光盘存储器等。相对而言,半导体存储器成为内存储器,磁盘存储器、光盘存储器等成为外存储器
由高速缓冲存储器、主存储器、虚拟存储器所组成为多级存储器系统,是计算机中用于存储程序和数据的部件
3.控制器
控制器是计算机中发号施令的部件,向计算机各功能部件提供每一时刻协同运行所需要的控制信号:它控制计算机的所有部件有条不紊地进行工作
本质:执行程序
任务:从内存中取出解题步骤加以分析,然后执行某种操作
1.正确分析与执行每条指令
取指令 -> 分析指令(译码) -> 执行指令
2.保证指令按规定序列自动连续地执行
3.对各种异常情况和请求及时响应和处理
(1)计算程序
运算器只能完成加减乘除四则运算及其他一些辅助操作。对于比较复杂的算题,计算机在运算前必须化成多步简单的加减乘除等基本操作来做
每一个基本操作就叫做一条指令,而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序
冯·诺依曼结构:程序和数据在同一个存储器中
哈佛结构:程序和数据分别在两个存储器中
指令的存储和数据一样存储在存储器中成为指令数码化
(2)指令的形式
指令的内容由两部分组成,即操作的性质和操作的地址。前者成为操作码,后者成为地址码
操作码:指出指令所进行的操作,如加减乘除、取数、存数等等
地址码:表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元
操作码+地址码=一条指令(机器语言、机器码)
把机器码中的操作码用人能看懂的英文表示——汇编语言,如LOAD 9;汇编语言与机器语言一一对应
将指令存放到存储器中叫存储程序
存储器的任何位置既可以存储数据也可以存指令,但是一般将指令和数据分开存
控制器依靠存储的程序来控制全机协调完成计算任务叫做程序控制
存储程序并按地址执行就是冯·诺依曼型计算机的设计思想,也是机器自动化工作的关键
(3)控制器的基本任务
计算机进行运算时,指令必须是按一定的顺序一条接一条地进行
控制器基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作
接着从存储器取出第二条指令,再执行这第二条指令,以此类推
通常把取指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期
因此,控制器反复交替地处在取指周期与执行周期之中。每取出一条指令,控制器中的指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储器中顺序存放的原因
区分从内存中取出的是指令还是数据的方法:根据时间来区分,取指周期->一定是指令,执行周期->一定是数据
指令(程序)计数器(PC):存储的是下一条将要执行的指令的地址,通过“自动+1”的形式实现顺序执行,PC不一定是+1,与一条指令占的存储单元的个数有关
指令寄存器(IR):存储的是当前正在执行的指令
4.适配器与输入输出设备
计算机的输入/输出设备通常称为外围设备(简称外设)
由于种类繁多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相连接
冯·诺依曼思想的基本要点:
(1)采用二进制形式表示数据和指令
(2)由输入设备、输出设备、运算器、存储器和控制器五大部件组成
(3)采用存储程序方式
存储程序方式是冯·诺依曼思想的核心
(4)指令和数据以同等地位存于存储器,可按地址寻访,程序和数据统一存储
(5)指令由操作码和地址码组成
(6)以运算器为中心
1.目的程序
用机器语言书写的程序,计算机完全可以“识别”并能执行
2.汇编程序
用一些约定的文字、符号和数字按规定的格式来表示不同的指令,再用这些特殊符号表示的指令来编写程序
3.源程序
算法语言比较接近数学语言,直观通用,与具体机器无关,便于学习
a.把源程序翻译成目的程序,然后机器执行目的程序,得出计算结果。通常,把编译程序和运行系统合成为编译系统,如C、C++等
b.逐个解释并立即执行源程序的语句,它不是编出目的程序后再执行,而是直接逐一解释语句并得出计算结果,叫解释系统,如BASIC、VB等
高级语言经过编译成为汇编语言,汇编语言经过汇编成为机器语言
计算机的性能指标
机器字长:指处理机运算器中一次能够完成二进制数运算的位数。当前处理机的字长有8位、16位、32位、64位,字长越长,表示计算的精度越高,与CPU中的寄存器位数有关
吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量,单位是字节/秒(B/S)
响应时间:表征从输入有效到系统产生相应之间的时间度量,用时间单位来度量,例如微秒、纳秒
利用率:表示在给定的时间间隔内,系统被实际使用的时间所占的比率,一般用百分比表示
总线宽度:一般指CPU中运算器与存储器之间进行互联的内部总线二进制位数
存储器容量:存储器中所有存储单元的总数目,通常用KB、MB、GB、TB来表示,存储器容量越大,记忆的二进制数越多
存储器带宽:存储器的速度指标,单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示
主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频,度量单位是MHz、GHz,主频的倒数称为CPU时钟周期(T),即T=1/f,度量单位是微秒、纳秒
CPU执行时间:表示CPU执行一段程序所占用的CPU时间,可用下式计算:
CPU执行时间=CPU时钟周期数*CPU时钟周期长
CPI: 表示每条指令周期数,即执行一条指令所需的平均时钟周期数,用下式计算:
CPI=执行某段程序所需的CPU时钟周期数/该程序包含的指令条数
MIPS:表示每秒百万条指令数,用下式计算:
MIPS=指令条数/(程序执行时间*10^6)
MFLOPS:表示每秒百万次浮点操作次数,用下式计算:
MFLOPS=程序中的浮点操作次数/(程序执行时间*10^6)
TFLOPS:表示每秒万亿次浮点操作次数,该技术指标一般在超级计算机中使用
2的n次方:描述容量
10的n次方:描述速度
硬件描述语言:用来描述电路,不是用来执行的语言
MIPS*:表示每秒百万条指令数,用下式计算:
MIPS=指令条数/(程序执行时间*10^6)
MFLOPS:表示每秒百万次浮点操作次数,用下式计算:
MFLOPS=程序中的浮点操作次数/(程序执行时间*10^6)
TFLOPS:表示每秒万亿次浮点操作次数,该技术指标一般在超级计算机中使用
2的n次方:描述容量
10的n次方:描述速度
硬件描述语言:用来描述电路,不是用来执行的语言