目录
一、计算机系统概论
1.计算机的发展历程
1.1什么是计算机系统
计算机系统 = 硬件 + 软件;
硬件:计算机的实体,如主机,外设等
软件:由各类具有特殊功能的程序组成;
注:数据库管理系统(DBMS)和数据库系统(DBS)是有区别的。DBMS是位于用户和操作系统之间的一层数据管理软件,是系统软件;而DBS是指计算机系统中引入数据库后的系统,一般由数据库,数据库管理系统,数据库管理员(DBA)和应用系统构成。所以数据库系统不是系统软件。
1.2硬件的发展
特点:
第一代: 机器语言,体积大,成本高;
第二代:开始使用高级语言,操作系统雏形;
第三代:高级语言发展迅速,分时操作系统;
第四代:微处理器,并行,高速缓存等等你能想到的高技术
微型计算机的发展以微处理器技术为标志;
机器字长:计算机一次整数运算所能处理的二进制位数;
摩尔定律(揭示了信息技术进步的速度):
集成电路上可容纳的晶体管数目,约每隔18个月就会增加一倍,性能整体也将提升一倍;
1.3软件的发展
面向机器的机器语言和汇编语言 ---->面向问题的高级语言
高级语言:
科学工程计算的FORTRAN -->结构化设计的PASCAL --> 面向对象的C++ -->适应网络的Java
1.4目前的发展趋势
2.计算机硬件的基本组成
2.1 五大部分
输入设备:将信息转换成机器能识别的形式
输出设备:将结果转换成人们熟悉的形式
运算器:算术运算,逻辑运算
控制器:指挥程序运行
存储器:存放数据和程序
2.2 冯洛伊曼结构
冯诺依曼计算机的特点:
- 计算机由五大部件组成;
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令有操作码和地址码组成
- 存储程序
- 以运算器为中心
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
在计算机系统中,软件和硬件在逻辑上是等效的。注意不是等价的。
2.3 现代计算机结构
由于冯诺依曼计算机类似一个加工厂,按常理应该采购部门采购好原材料后先放到仓储部门,可是在冯诺依曼结构中却要经过生产部门才能到达仓储部门,造成了不合理的地方。
所以现代计算机结构改为如下图所示:
3.认识各个硬件部件
3.1 主存
主存储器的结构类似取快递的菜鸟驿站结构:当需要取指令或者数据的时候首先将地址给MAR(相当于取快递时将取件码给店员),然后MAR就根据地址码去存储体中取出指令或者数据放到MDR等待CPU取走(相当于店员根据取件码去货架上取货后放在柜台等待用户取走)
不同的是主存储器既可以进行读操作又可以进行写操作:执行写操作的时候给MAR地址码,给MDR数据,再给主存储器一个写信号,主存储器就可以根据要存放的地址将数据保存到该地址
存储体:
存储体相当于取件智能柜,存储单元就相当于一个柜盒,用来存放需要保存的数据,由于每个柜盒是事先制定的,所以就有个固定大小,即存储字长,在计算机中存储字长可以根据计算机本身的性能确定,不同性能的计算机存储字长不同。
由于MAR是存放地址码的,所以有多少个存储单元,MAR就能表示多大的数,又MAR中的数是二进制,所以MAR位数反映存储单元的个数
而MDR相当于柜台,要放置从存储体中取出的货物(指令或数据),所以按理只要MDR大小跟存储单元一样,就可以恰好放置所有取出的货物,所以MDR位数=存储字长
3.2 运算器
首先明确,ACC和MQ和X都是用来存放数据或结果的,而ALU是用来执行算术的
且运算器的核心是ALU(算术逻辑单元)
以3*2+1为例:
- 首先执行取数指令,取到3这时没有任何运算,所以自动将3作为结果放到ACC中
- 然后再从存储器中取到*号,这时,控制器会识别出这是一个乘法运算,从而后面必有一个乘数需要取出放到MQ中,于是执行取数指令从存储器中取出2放到MQ中
- 然后执行乘法运算,执行过程中要先将ACC中的结果放到X中作为操作数,与MQ中的乘数通过ALU相乘后将结果放到ACC中,这时ACC中存放的就是6(如果结果过大,ACC中可能存不下,会利用MQ辅助存储)
- 然后再从存储器中取到+号,这时,控制器会识别出这是一个加法运算,从而后面必有一个加数需要取出放到X中,于是执行取数指令从存储器中取出2放到X中
- 这时执行加法运算,直接利用ALU将ACC中的上一步结果与X中的加数相加,得到的结果依旧放到ACC中
由以上过程可以看出:
- 每一步运算结果都是放到ACC中
- 若取到运算符,接下来就是先取数放到相应的寄存器中(乘法放到MQ,加法放到X),然后执行运算操作
- 乘法和加法的运算操作不同(即乘法需要先将ACC中的上一步结果放到X中再执行)是因为在硬件中乘法操作是通过多次加法来实现的,所以需要X这么一个中间寄存器
3.3 控制器
- 首先PC指向当前需要执行的指令
- 然后从存储器中取出指令后放到IR(指令寄存器)中,取出指令前半部分的操作码放到CU中
- CU(控制单元)就会分析这条指令需要做什么操作:如果是取数操作,就会将IR中指令后半部分的地址码发送给存储器取出数据放到运算器中;如果是运算操作,就会取出运算数放到运算器中然后控制运算器执行运算操作
3.4 工作过程
以下是具体的计算机工作过程,其中一些指令意义:
(PC)→ MAR:将PC指向的主存地址发送给MAR
M(MAR)→ MDR:取出M(主存储器)中MAR中主存地址对应的数据或指令交给MDR
(MDR)→ IR:将取出的指令发送到IR(指令寄存器)
OP(IR)→ CU:将IR中当前欲执行指令的操作码交给CU(控制单元)进行分析
AD(IR)→ MAR:将IR中当前欲执行指令的地址码交给MAR,取出对应地址码的数据或指令
MDR → ACC :将取出的数据发送到运算器中的结果寄存器ACC
3.计算机系统的层次结构
3.1 五层
所谓虚拟机器就是当使用高级程序语言时,点击运行,电脑就直接将运行出来的结果展示给你看,而没有让你体会到先编译成汇编语言,在汇编成机器语言最后执行结果的过程,这就好像你正在操作一台可以直接使用高级程序语言的机器一样,于是把这种机器称为虚拟机器。
3.2 三种级别的语言
4.计算机的性能指标
4.1 存储器的容量
4.2 CPU
(1)时钟周期是CPU中最小的时间单位,每个动作至少要1个时钟周期
(2)CPU主频(时钟频率)是时钟周期的倒数,反映每秒出现多少个数字脉冲(时钟周期)
(3)CPI:执行一条指令需要的时钟周期数
(4)IPS,每秒执行多少条指令
IPS = 主频(每秒多少个时钟周期)/ CPI(执行一条指令的时钟周期数)
4.3 其他
- 数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
- 吞吐量:指系统在单位时间内处理请求的数量。
- 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
- 基准程序是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其它计算机性能进行比较。