一、冯·诺依曼结构计算机的组成
1、冯·诺依曼是“计算机之父”
2、冯·诺依曼计算机的工作原理
(1)存储程序:将程序存放在计算机的存储器中;
(2)程序控制:按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算机的控制,完成指令的功能。
3、冯·诺依曼计算机和现代计算机的特点
(1)冯·诺依曼计算机
- 计算机由运算器、存储器、控制器、输入设备、输出设备五个部分组成
- 存储器以二进制形式存储指令和数据;
-指令由操作码和地址码组成;
- 计算机能够存储程序并按地址顺序执行
- 以运算器为中心
(2)现代计算机
-将运算器、控制器和片内高速缓存,统称为CPU,而将CPU、主存储器、输入输出接口和系统总线统称为主机,其余设备为外设。(主机仅包含主存储器,即内存。硬盘、光盘等辅助存储器属于I/O设备)
- 以存储器为中心:减少CPU的数据传送负担,提高系统的整体性能。
4、冯·诺依曼计算机的组成(硬件+软件)
(1)硬件系统
主机:CPU(运算器+控制器)、内存
外设:输入设备、输出设备、外存设备
总线:地址线、数据线、控制线
(2)硬件系统 - 运算器:处理所有的算术及逻辑运算
特点:& 采用二进制数据进行运算;
& 运算器依次可以处理的数据位数称为机器字长
& 机器字长一般为8、16、32/64位,直接决定着运算的精度和能力。
(3)硬件系统 - 存储器:保存所有的程序和数据
特点:& 二进制形式保存程序和数据;
& 存储器是按存储单元组织的,读写存储单元必须给出单元地址;
相关的概念:& 存储元:用于保存一位0/1二进制数据的物理器件;
& 存储单元:能够保存一个字数据的器件,由若干个存储元构成;
& 单元地址:能区分每一个存储单元的编号,一般从0开始编号;
& 存储容量:一个存储器能够保存的二进制信息的总量;
(注意:不同系统中的存储器组织方式并不一定相同)
分类:& 外存(辅助存储器):磁盘存储器、光盘存储器。CPU不可直接访问。
& 内存(主存储器):半导体存储器。CPU直接访问,存放当前系统运行所需要的所有的程序和数据。
两个与主存相关的寄存器:
MAR(存储器地址寄存器):接收由CPU送来的信息。
MDR(存储器数据寄存器):作为外界与存储器之间的数据通路。
(4)硬件系统 - 控制器:根据所要执行指令的功能,按顺序发出各种控制命令,协调计算机而各部件的工作。
主要任务:- 解释并执行指令;
- 控制指令的执行顺序;
- 负责指令执行过程中,操作数的寻址;
- 根据指令的执行,协调相关部件的工作(如运算类执行指令对标致寄存器的影响设置)
指令形式:- 操作码:指出指令所进行的操作,如加、减、数据传送等;
- 地址码:指出进行以上操作的数据存放位置。
控制器工作的周期:- 取指周期:取指令的一段时间
- 执行周期:执行指令的一段时间。
指令按顺序执行的控制部件:指令计数器
- 每取出一条指令,指令计数器就加1;
- 遇到转移类指令,控制器根据指令设置指令计数器的值。
相关概念:- 数据字:该字表示要处理的数据;
- 指令字:该字为一条指令;
- 指令流:取指周期中,从内存读出的信息流;
- 数据流:执行周期中,从内存读出的信息流。
(5)硬件系统 - 输入/输出设备:
输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)
输出设备:输出结果处理(显示器、声卡、网卡、打印机等)
(6)软件系统:(软件:可运行的思想和内容的数字化,核心:算法)
(7)硬件和软件之间的联系:相互依存,协同发展(逻辑等效性)
5、计算机系统性能评价
(1)非时间指标
1)吞吐量:表征一台计算机在某时间间隔内能够处理的信息量
2)响应时间:从输入有效到系统产生响应之间的时间度量,用时间单位表示。
3)利用率:在给定时间间隔内,系统被实际使用的时间所占的比率,用百分比表示。
4)处理机字长(机器字长):处理机运算中以此能够完成的二进制运算的为数,如32、64位。机器字长与系统数据总线宽度具有一定相关性。
5)总线宽度:数据总线一次能并行传送的最大信息的为数
6) 存储器容量:指一台计算机主存所包含的存储单元总数。
7)存储宽度:单位时间内与主存交换的二进制信息量,常用单位B/s(字节/每秒)
(2)时间指标
1)主频f:CPU主时钟的频率,其倒数为时钟周期。f越高,T越小(f=100MHz时T=10ns)
2)外频:指CPU(内存)与主板之间同步到时钟频率(系统总线的工作频率)
3)倍频:CPU主频与外频之间的倍数(主频=外频x倍频)
4)CPU执行时间:CPU执行一段程序所占用的CPU时间;
CPU执行时间 = 程序总的CPU时钟周期数 x CPU时钟周期
5)CPI:执行一条指令所需的平均时钟周期数
CPI = 程序中断CPU时钟周期数 / 程序包含的指令条数
6)MIPS:每秒白万指令数,即单位时间内执行的指令数;
MIPS = 指令数 / 程序执行时间