1.1 计算机发展历程
-
第一代计算机:
1946年,第1台通用电子计算机 ENIAC诞生。
-
-
特点:
由电子真空管组成。
美国宾夕法尼亚大学研制。
用十进制表示信息并运算。
采用手动编程。
-
-
第二代计算机:
-
-
特点:
晶体管代替电子管。
汇编语言代替机器语言。
-
-
第三代计算机:
-
-
特点:
中小规模集成电路代替晶体管。
操作系统问世。
-
-
第四代计算机:
-
-
特点:
采用集成度很高的电路。
微处理器问世。
-
-
智能计算机:
-
-
特点:
具备人工智能。
运算速度极快。
软件系统能够处理知识信息。
以神经网络计算机为代表。
-
-
计算机硬件的更新换代:
摩尔定律: 每平方英寸电路板上的晶体管数量每18个月翻一番。
微处理器的出现和发展:1971年intel公司开发第一个微处理器ntel 4004:,它把 运算器和控制器合并到了一块芯片上,经历了4位、8位、16位、32位和64位几个发展阶段。
-
计算机的分类:
1.2 计算机系统基本组成
-
现代计算机的原型:
1946年,普林斯顿高等研究院开始设计“存储程序”计算机,被称为IAS计算机。
其采用的计算机结构被称为冯·诺依曼结构。
几乎现代所有的通用计算机大都采用冯·诺依曼结构,因此,IAS计算机是现代计算机的原型机。
-
- 注:
IAS计算机1951年才完成,并不是第一台存储程序计算机,1949年由英国剑桥大学完成的EDSAC是第一台。
- 注:
-
冯·诺依曼结构:
冯·诺依曼结构最重要的思想是“存储程序”。
冯·诺依曼结构计算机也称为冯·诺依曼机器。
-
冯·诺依曼结构的主要思想:
1.计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。
2.各基本部件的功能是:
存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令 ;
控制器应能自动取出指令来执行 ;
运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算;
操作人员可以通过输入设备、输出设备和主机进行通信。
3.内部以二进制表示指令和数据。每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。
4.采用“存储程序”工作方式。
-
计算机定义:
计算机是一种能对数字化信息进行自动、高速算术和逻辑运算的处理装置。
-
计算机基本部件:
-
-
术语:
CPU : 中央处理器;
PC : 程序计数器
MAR : 存储器地址寄存器
ALU : 算术逻辑部件
IR : 指令寄存器
MDR : 存储器数据寄存器
GPRs: 通用寄存器组( 由若干通用寄存器组成,早期就是累加器 )
-
-
-
功能:
运算器( 数据运算): ALU、GPRS、标志寄存器等
存储器( 数据存储 ) : 存储阵列、地址译码器、读写控制电路
总线( 数据传送) : 数据(MDR)、地址(MAR)和控制线
控制器( 控制 ) : 对指令译码生成控制信号。
-
1.3 计算机系统的工作原理
-
存储程序的工作方式:
-
-
概述:
任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。
-
-
-
通过比喻理解存储程序的工作方式:
CPU对应厨房,控制器对应做菜人,GPRs对应盘,ALU等对应锅灶 ,存储器对应架子,程序对应菜单,指令对应菜谱。
程序由指令组成( 菜单由菜谱组成 )。
-
-
-
-
程序在执行前:
数据和指令事先存放在存储器中,每条指令和每个数据都有地址指令按序存放,指今由OP、ADDR字段组成,程序起始地址置PC。
(原材料和菜谱都放在厨房外的架子上,每个架子有编号。告诉做菜人从第5个架上指定菜谱开始做)。
-
-
-
-
-
开始执行程序:
第一步 : 根据PC取指令(从5号架上取菜谱)
第二步 : 指令译码(看菜谱)
第三步取操作数( 从架上或盘中取原材料)
第四步指令执行( 洗、切、炒等具体操作)
第五步: 回写结果( 装盘或直接送桌)
第六步 : 修改PC的值(算出下一菜谱所在架子号6=5+1)
继续执行下一条指令( 继续做下一道菜)
-
-
-
-
“存储程序”工作方式中的指令和数据:
程序启动前,指令和数据都存放在存储器中,形式上没有差别都是0/1序列。
程序由指令组成,程序被启动后,计算机能自动取出一条一条指令执行,在执行过程中无需人的干预。
指令执行过程中,指令和数据被从存储器取到CPU,存放在CPU内的寄存器中,指令在IR中,数据在GPR中。
-
-
从机器语言到高级语言:
用机器语言编写程序,并记录在纸带或卡片上。
-
-
汇编语言:
汇编语言(源)程序由汇编指令构成。
汇编指令是用助记符和标号来表示的指令(与机器指令一一对应)。
-
-
-
- 优点:
不会因为增减指令而需要修改其他指令
不需记忆指令编码,编写方便
可读性比机器语言强
- 优点:
-
-
-
机器级语言:
机器语言和汇编语言都是面向机器结构的语言,故它们统称为机器级语言。
-
-
-
高级编程语言:
高级编程语言有“面向过程”和“面向对象”之分,其处理逻辑分为三种结构: 顺序结构、选择结构、循环结构。
-
-
-
高级编程语言到机器语言程序的转换:
将高级编程语言转换为机器语言程序有两种转换方式:“编译”和“解释”。
编译程序: 将高级语言源程序转换为机器级目标程序,执行时只要启动目标程序即可
解释程序: 将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。
-
-
用高级语言开发程序需要的支撑环境:
1.需要编辑器编写源程序。
2.需要一套翻译转换软件处理各类源程序。
◇ 若通过编译方式进行翻译,则需要预处理程序、编译器、汇编器、链接器。
◇ 若通过解释方式进行翻译,则需要解释程序。
3.需要一个可以执行程序的界面(环境)。
最基本的环境是操作系统提供的人机接口和操作系统内核(如系统调用) 。
人机接口分为:
◇ GUI方式:图形用户界面。
◇ CUI方式:命令行用户界面。
-
-
总结:
编辑器和翻译转换软件构成语言处理程序。
语言处理程序和语言的运行时系统(如库函数,调试、优化等功能)构成语言处理系统。
支撑程序开发和运行的环境由系统软件提供,最重要的系统软件是操作系统和语言处理系统。
语言处理系统运行在操作系统之上,操作系统利用指令管理硬件。
-
1.4 计算机系统层次结构
-
计算机系统层次结构的发展:
◇ 最早的计算机用机器语言编程。机器语言称为第一代程序设计语言。
该计算机系统层次结构如下:
◇ 后来用汇编语言编程。汇编语言称为第二代程序设计语言。
该计算机系统层次结构如下:
◇ 现代计算机用高级语言编程。第三代程序设计语言 (3GL) 为过程式语言,编码时需要描述实现过程,即“如何做"。
第四代程序设计语言 (4GL) 为非过程化语言,编码时只需说明“做什么",不需要描述具体的算法实现细节。
该计算机系统层次结构如下:
-
计算机系统的不同用户:
最终用户工作在由应用程序提供的最上面的抽象层。
系统管理员工作在由操作系统提供的抽象层。
应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层。
语言处理系统建立在操作系统之上。系统程序员(实现系统软件)工作在指令集体系结构ISA层次,ISA处于软件和硬件的交界面(接口),是对硬件的抽象,所有软件功能都建立在ISA之上。
操作系统通过指令直接对硬件进行编程控制。
-
-
指令集体系结构ISA:
ISA规定了如何使用硬件。没有它,软件无法使用计算机硬件。没有它,一台计算机不能称为“通用计算机"。
-
-
-
ISA和计算机组成(微结构) 之间的关系:
不同ISA规定的指令集不同,如,IA-32、MIPS、ARM等。
计算机组成(微结构) 必须能够实现ISA规定的功能,如提供GPR、标志、运算电路等。
同一种ISA可以有不同的计算机组成(微结构) ,如乘法指令可用ALU或乘法器实现。
-
-
计算机软件的分类::
按其功能可以分为系统软件和应用软件。
系统软件:是一组保证计算机系统高效,正确运行的基础软件,通常作为系统资源提供给用户使用。主要有操作系统(OS)、数据库管理系统(DBMS) 、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务型程序等。
应用软件:是指用户为解决某个应用领域中的各类问题而编制的程序。
1.5 计算机的性能指标
-
概述:
计算机的性能指标主要为以MAR位数、MDR位数为代表的主存容量指标;以CPU主频(时钟频率) 、CPU时钟周期、CPI、CPU执行时间、IPS和FLOPS为代表的运算速度指标; 以数据通路带宽、吞吐量、响应时间为代表的系统整体性能指标。
-
主存容量指标:
-
-
MAR位数:
反映存储单元的个数。
-
-
-
-
理解记忆:
将MAR比作大楼的门牌号。比如MAR有10位,每一位0或1两种选择,那么组成门牌号的信息可能性就是222…*2=2的10次方,理论上可以存储1024个地址信息,也就是对应1024个存储单元。
-
-
-
-
-
MAR:
MAR全称memory address register,主存地址寄存器,用来保存数据被传输到的位置的地址或者数据来源位置的地址。
-
-
-
-
MDR位数:
存储单元中二进制代码的位数,即存储字长。
-
-
-
-
理解记忆:
将MDR比作快递柜,其大小就是MDR位数。通常每个存储单元能存储的二进制位数都是8个bit的整数倍 (8bit、 16bit、32、bit、64bit) 。
-
-
-
-
- MDR:
MDR全称 memory data register,主存数据寄存器,用来保存要被写入地址单元或者从地址单元读入的数据。
- MDR:
-
-
运算速度指标:
-
-
CPU主频 (时钟频率):
主频是机器内部主时钟的频率,主频越高,完成指令的一个执行步骤所用的时间就越短,速度越快。
-
-
-
-
理解记忆:
将主频比作广播体操的节拍,节拍越快,动作就需要越快,即主频越高,在计算机中完成相同步骤的速度就越。
主频高的CPU一定比主频低的CPU快吗?
在CPU中,执行每条指令所需要的时钟周期数量不同,比如在做广播体操时做同样的动作有时需要2个节拍,有时需要4个节拍,我们把CPU完成一套动作(指令)所需要的时钟周期数量称为CPI。
CPU执行时间 =(指令条数 X CPI)/主频,对于如下两个CPU:A的主频为2GHz,平均CPI=10;B的主频1GHz,平均CPI=1,B比A快。
-
-
-
-
CPU时钟周期:
CPU时钟周期是一个时间单位,即一个周期的时长。
CPU时钟周期=1/主频
-
-
-
CPI:
一条指令所需要的时钟周期数。
CPI = 程序所需时钟周期数/程序所含指令数
执行一条指令的耗时 = CPI*CPU时钟周期
-
-
-
-
若A、B两个CPU的平均CPI相同,那么A一定更快吗?:
不一定,还要看指令系统,如A不支持乘法指令,只能用多次加法实现乘法;而B支持乘法指令。
-
-
-
-
CPU 执行时间:
运行一个程序所花费的时间。
CPU 执行时间 = CPU时钟周期数/主频 = (指令条数*CPI)/主频
-
-
-
IPS:
每秒可以执行多少条指令。
IPS前面可以加入K或M。
KIPS: 每秒可以多少千条指令。
MIPS: 每秒可以执行多少百万条指令。
IPS= 主频/平均CPI
-
-
-
FLOPS:
每秒执行多少次浮点运算。
FLOPS前面加入M、G和T。
-
-
系统整体性能指标:
-
-
数据通路带宽:
指数据总线一次所能并行传送信息的位数。
-
-
-
吞吐量:
指信息流入、处理和流出系统的速率,主要取决于主存的存取周期。
-
-
-
响应时间:
指的是用户向计算机发送一个请求,到系统对该请求作出相应并获得所需结果的等待时间。通常包括CPU时间(运行程序花费)与等待时间 (例如I/O操作)。
-