第一章 概述

一、计算机组成

1.1、计算机系统整体的性能指标:

数据通路带宽:数据总线一次所能并性传送信息的位数(个硬部件通过数据总线传输数据),数据通络带宽过大过少都一定好,这需要和内部寄存器位数匹配才能最大限度发挥作用

吞吐量:系统单位时间内处理请求的数量,它取决于信息能够多快的输入内存,CPU能多块的取指令,数据能够多块的从内存中取出或存入,以及所得的结果能多块的从内存送给另一台外部设备,这都关系到吞吐量,引起系统吞吐量取决于主存的存取周期

响应时间:指从用户向计算机发出一个请求,到系统对该请求作出相应并获取它所需的结果的等待时间,这包括了CPU时间与等待时间(磁盘访问、存储器访问、IO操作、系统开销等时间)

计算机的总体性能指标一般会通过基准程序(跑分)测试计算机的实际效果,这是最直观的比较全面的性能体现

二、主存储器

 

2.1、存储器简介

存储器是计算机的存储设备,分为主存(运算内存)和辅存(硬盘),这些存储设备都是使用电磁原理实现状态的存储的即二进制的存储。大致说一下存储原理:写数据:系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;读数据:系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据

存储体是一个个存储单元组成的,每一个存储单元存储一串二进制的数据,存储单元中二进制代码的组合称为一个字,存储单元中二进制数据的位数称为存储体的存储字长

MAR(Memory Address Register)地址寄存器,如果地址寄存器是4位的,那么能寻找的最大的地址位2^4,向地址寄存器中传入数据就能找到对应的存储体存储单元

MDR(Memory Data Register)数据寄存器,通过地址寄存器找到对应的存储单元后,通过控制总线控制存储器是读操作还是写操作,如果是读操作,存储器根据MAR的地址将存储体中对应地址的存储单元的数据放到MDR中供CPU使用,如果是写操作,CPU会将数据写入MDR寄存器,这时候存储器根据MAR地址将MDR中的数据写入到存储体对应的地址单元中

2.2、存储器的性能指标

存储器容量:MAR的位数表示最多支持存储器的地址个数(注意是最多),而MDR的位数表示存储器的存储单元的大小,所以:

存储器最大容量=2^MAR*MDR

三、运算器

 

3.1、CPU的性能指标:

CPU主频:CPU内数字脉冲信号震荡的频率

主频是计算机内一个有规律的频率,指挥CPU内部指令的有序进行,频率越高并不一定执行的指令就多,这还要看CPU的CPI:执行一条指令所需的时钟周期数。不同的指令,CPI不同,甚至相同的指令,因为不同CPU内部逻辑实现电路的不同,CPI可能也不同

CPU内部每一步微指令的进行都是根据时钟周期有序进行的,CPU主频即时钟频率等于CPU时钟周期的倒数。

IPS:每秒执行多少条指令

FLOPS:每秒执行多少次浮点运算

四、控制器

 

例子:

 

我们的程序经过编译器的一系列操作生成了二进制指令数据,图示的指令字长是16比特,除了原始数据,CPU自动将指令分解位操作码和地址码

 

程序指令0的运行步骤:(取指令、分析指令、执行指令)

程序执行初:PC寄存器存放0地址,即第一条指令的地址

#1:PC通过地址总线将地址0输入到MAR中,此时(MAR)=0,控制器通过控制总线告诉存储器这次的操作是读操作,然后存储器通过控制命令和MAR中的地址,找到指令并放在MDR中,此时(MDR)=第一条指令:000001 0000000101

#2:IR使用数据总线获得MDR中的指令,此时(IR)=000001 0000000101

#3:IR存储的前6个操作码会被送到CU,CU分析这个操作码得知这是一个"取数"操作

#4:CU得知是取数操作,就将地址码输入到MAR中,此时(MAR)=5,主存储器根据控制总线的控制命令和MAR中的地址,获取数据并存放到MDR中,此时(MDR)=000...0010=2

#5:CU根据操作码控制MDR中的数据送到ACC中,此时(ACC)=2

这就完成了一条机器指令,执行完这条指令后,PC自动加1,重复上面的指令执行步骤,完成一系列的操作

程序指令1的运行步骤:(取指令、分析指令、执行指令)

#1:(PC)->MAR,(MAR)=1

#2:CU通过控制总线给存储器发出控制命令,存储器根据控制命令和MAR中的地址,将数据放在MDR中,此时(MDR)=000100 0000000110

#3:IR获取MAR中的数据,(IR)=000100 0000000110

#4:CU分析IR中的操作码得知这是一个"乘法指令",IR将数据放到MAR中(MAR)=6,存储器根据此时CU的控制信号和MAR中的地址,将数据放到MDR中,此时(MDR)=3

#5:MDR的值会通过数据总线送到MQ寄存器,此时(MQ)=3

#6:ACC的值会被送到通用寄存器X中,此时(X)=2

#7:CU控制ALU进行乘法运算,将运算结果放在ACC中,如果乘积太大,则需要MQ辅助存储

程序指令执行完毕PC+1,此时(ACC)=6

程序指令2的运行步骤:(取指令、分析指令、执行指令)

#1:(PC)->MAR,(MAR)=2

#2:CU通过控制总线给存储器发出控制命令,存储器根据控制命令和MAR中的地址,将数据放在MDR中,此时(MDR)=000011 0000000111

#3:IR获取MAR中的数据,(IR)=000011 0000000111

#4:CU分析IR中的操作码得知这是一个"加法指令",IR将数据放到MAR中(MAR)=7,存储器根据此时CU的控制信号和MAR中的地址,将数据放到MDR中,此时(MDR)=1

#5:MDR的值会通过数据总线送到X寄存器,此时(X)=3

#6:ALU得到CU的加法命令,将X中的数据和ACC中的数据完成加法运算并重新放在ACC寄存器中,此时(ACC)=7

程序指令3的运行步骤:(取指令、分析指令、执行指令)

#1:(PC)->MAR,(MAR)=3

#2:CU通过控制总线给存储器发出控制命令,存储器根据控制命令和MAR中的地址,将数据放在MDR中,此时(MDR)=000010 0000001000

#3:IR获取MAR中的数据,(IR)=000010 0000001000

#4:CU分析IR中的操作码得知这是一个"存数指令",IR将地址放到MAR中(MAR)=8

#5:(ACC)->MDR,(MDR)=7

#6:存储器根据控制总线的CU命令将MDR中的数据存放在MAR对应的地址中去,此时存储器中的8对应的地址存储着y即8

程序指令4的运行步骤:(取指令、分析指令、执行指令)

#1:(PC)->MAR,(MAR)=3

#2:CU通过控制总线给存储器发出控制命令,存储器根据控制命令和MAR中的地址,将数据放在MDR中,此时(MDR)=000110 0000000000

#3:IR获取MAR中的数据,(IR)=000110 0000000000

#4:CU分析IR中的操作码得知这是一个"停机指令",然后利用中断机制通知操作系统终止该进程,然后计算机会执行操作系统的指令

CPU根据指令周期的不同阶段,区分得到的是指令还是数据,通过指令周期将这些步骤有序进行(大致步骤)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值