计算机系统的概述

本文概述了计算机系统的发展历程,从电子管到大规模集成电路,再到现代计算机的特点。深入探讨了冯诺依曼计算机的组成,包括运算器、控制器、主存储器和输入输出设备。详细解释了计算机的工作过程,从取数、分析指令到执行指令的过程。最后,介绍了计算机的性能指标,如存储器、CPU和系统整体的性能衡量标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机系统的概述

1.1发展历程

1.1.1计算机硬件发展

  • 第一阶段**:电子管**计算机 ;
  • 第二阶段:晶体管计算机 从1960年到1964年,在计算机中采用了比电子管更先进的晶体管,晶体管比电子管小得多,不需要暖机时间,消耗能量较少,处理更迅速、更可靠。

  • 第三阶段:中小规模集成电路计算机 。第三代计算机的特点是体积更小、价格更低、可靠性更高、计算速度更快。

  • 第四阶段:大规模集成电路计算机。

1.1.2计算机软件发展

  • 机器语言
  • 汇编语言
  • 高级编程语言

1.1.3计算机发展方向

  • 微型计算机朝着更微型化、网络化、高性能、多用途方向发展
  • 巨型计算机向更巨型化、 超高速、并行处理、智能化方向发展

1.2计算机系统层次结构

计算机由硬件和软件构成,在计算机系统中,软件和硬件在逻辑上是等效的,软件成本更低,硬件速度更快

1.2.1 早期冯诺依曼计算机特点

  1. 计算机由五大部分组成
  2. 指令和数据以同等地位存于存储器,可以按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码和地址码组成
  5. 存储程序
  6. 以运算器为核心(数据传送必须经过运算器)

1.2.2 现代计算机特点

  1. 以存储器为核心
  2. CPU=运算器和控制器

1.2.3计算机的组成

Ⅰ运算器–实现算术运算和逻辑运算
  • ACC(累加器):用于存放操作数或运算结果
  • MQ(乘商寄存器):在乘除运算时存放操作数和运算结果
  • X(通用的操作数寄存器):存放操作数
  • ALU(算术逻辑单元):通过内部复杂的电路实现算数运算、逻辑运算
ACC被加数、和被减数、差乘积高位被除数、余数
MQ乘数、乘积地位
X加数减数被乘数除数
Ⅱ控制器–指挥程序运行
  • PC(程序计数器):存放下一条指令,有自动加一的功能,完成取指令的功能
  • IR(指令寄存器):存放当前执行的指令
  • CU(控制单元):给出控制信号,分析指令,控制执行指令
Ⅲ主存储器–存放数据和程序
  • 存储体:存放数据**,分成一个个存储单元(每个存储单元放一串二进制代码,存储单元中二进制代码的位数叫存储字长
  • MAR(存储地址寄存器)**:MAR位数=存储单元的个数(如,4位的MAR表示总共由2^4个存储单元)
  • MDR(存储数据寄存器)**:MDR位数=存储字长(如,16位的MDR表示每个存储单元放16bit,也就是1个字=16bit) 1B=一个字节=8bit 1b=1bit
Ⅳ 输入输出设备
  • 输入设备:把信息转成机器能识别的形式、

  • 输出设备:将结果转换成人们熟悉的形式

1.2.4 计算机工作过程

比如这段代码的工作过程

int a=2,b=3,c=1,y=0;
void main()
{
	y=a*b+c;
}
把代码编译之后装入主存的存储体当中
主存地址指令(操作码)指令(地址码)注释
00000010000000101取数a至ACC
10001000000000110乘b的ab,存于ACC中
20000110000000111加c的ab+c,存于acc中
30000100000001000将ab+c,存于主存单元
40001100000000000停机
50000000000000010原始数据a=2
60000000000000011原始数据b=3
70000000000000001原始数据c=1
80000000000000000原始数据y=0

注意5-8行是合在一起表示数据的,不分操作码地址码,这里写到一起了

取数(#1-#4 取指令,#5分析指令, #6-#9 执行取数的指令)

#0 首先pc指向第0条指令的存储地址0
#1 把第0条指令地址放到地址寄存器MAR中,使得MAR=0
#2 MAR读出了第0条指令的地址是0,去存储体中找到0号位置
#3 找到之后,把0号位置的指令放到MDR中,(MDR)=000001 0000000101
#4 把找到的指令放到IR中,使得IR=000001 0000000101
#5 把指令的操作码000001放到CU中,CU分析指令后得知这是取数的指令,所取的数字地址在0000000101,也就是5中
#6 AD(IR)->MAR, 把指令的地址码送到MAR中,MAR=5
#7 去存储体中找5号地址对应的数为a=2
#8 M(MAR)->MDR, 把2号地址的数放到MDR中,MDR=0000000010=2
#9 (MDR)->ACC, 把取出来的数字放到ACC中,(ACC)=000000 0000000010=2

③pc自动加1,指向第1条指令(1-4取数指令,5分析指令,6-11乘法指令)

#1 (PC)->MAR, 把pc的指令放到MAR中,使得MAR=1
#2 到存储体中找到1号位置存放的指令
#3 把存储体中找到的指令放到MDR中,MDR=000100 0000000110
#4(MDR)->IR 把MDR中的指令放到指令寄存器中,IR=000100 0000000110
#5 OP(IR)->CU,指令的操作码送到CU,CU分析知道了这是乘法指令
#6 Ad(IR)->MAR,指令的地址码送到MAR,告诉MAR接下来要取地址为6的数,导致MAR=6
#7 到存储体中找地址为6的指令
#8 把地址为6的指令放到MDR中,MDR=000000 0000000011=3
#9 (MDR)->MQ,把乘数3放到MQ中,导致(MQ)=000000 0000000011=3
#10 (ACC)->x,把被乘数2放到操作数寄存器中,(X)=2
#11 (MQ)*(X)->ACC,由ALU实现乘法运算,使得ACC=6,如果乘积太大,需要MQ辅助存储

④pc加1,指向第2条指令(6-10加法指令)

#1 (PC)->MAR, 把pc的指令放到MAR中,使得MAR=2
#2 到存储体中找到2号位置存放的指令
#3 把存储体中找到的指令放到MDR中,MDR=000011 0000000111
#4(MDR)->IR 把MDR中的指令放到指令寄存器中,IR=000011 0000000111
#5 OP(IR)->CU,指令的操作码送到CU,CU分析知道了这是加法指令
#6 Ad(IR)->MAR,指令的地址码送到MAR,告诉MAR接下来要取地址为6的数,导致MAR=7
#7 到存储体中找地址为7的指令
#8 把地址为7的指令放到MDR中,MDR=000000 0000000001=1
#9 (MDR)->X,把乘数3放到X中,导致(X)=000000 0000000001=1
#10(ACC)+(X)->ACC,由ALU实现加法运算,使得ACC=7

⑤pc加1指向第3条指令(存数6-9)

#1 (PC)->MAR, 把pc的指令放到MAR中,使得MAR=3
#2 到存储体中找到3号位置存放的指令
#3 把存储体中找到的指令放到MDR中,MDR=000010 0000001000
#4(MDR)->IR 把MDR中的指令放到指令寄存器中,IR=000010 0000001000
#5 OP(IR)->CU,指令的操作码送到CU,CU分析知道了这是存数的指令
#6 Ad(IR)->MAR,指令的地址码送到MAR,告诉MAR接下来要存地址为1000=8的数,导致MAR=8
#7 (ACC)->MDR,把要存的数据放到MDR当中,导致(MDR)=7
#8 在存储其中找到8号位置
#9 把7这个数存在地址为8的存储单元中,也就得到了结果y=7

⑥pc加1指向第4条指令

#1 (PC)->MAR, 把pc的指令放到MAR中,使得MAR=4
#2 到存储体中找到4号位置存放的指令
#3 把存储体中找到的指令放到MDR中,MDR=000110 0000000000
#4(MDR)->IR 把MDR中的指令放到指令寄存器中,IR=000110 0000000000
#5 OP(IR)->CU,指令的操作码送到CU,CU分析知道了这是停机指令 通过中断机制通知操作系统终止该进程

计算机工作过程总结
  1. 取数指令 (把pc指令中的地址送到MAR,存储体中找到MAR中的地址对应的指令,把指令送到MDR,MDR再把指令放到IR)
  2. 分析指令(把IR中的指令送到CU中分析)
  3. 执行指令 (分析完之后,把IR中的地址码送到MDR,根据需要把数送到运算器对应的地方)

1.2.5计算机系统的层次结构

  • 微程序机器M0(微指令系统)–硬件直接执行微指令
  • 传统机器M1(机器语言机器)–执行二进制机器指令
  • 虚拟机器M2(操作系统机器)–向上提供广义指令
  • 虚拟机器M3(汇编语言机器)–用汇编程序把汇编语言翻译成机器语言程序
  • 虚拟机器M4(高级语言机器)–用编译程序把高级语言翻译成汇编语言程序

1.3 计算机的性能指标

存储器的性能指标

  • 总容量=存储单位个数*存储字长
  • MAR位数=存数单位个数
  • MDR位数=存储字长=每个存储单位的大小
  • 1K=2^10 1M=2^20 1G=2^30 1T=2^40

CPU的性能指标

  • CPU主频:CPU内数字脉冲信号振荡的频率,每秒出现多少时钟周期
    CPU主频=1/CPU时钟周期

  • CPI:执行一条指令所需要的时钟周期数
    执行一条指令的耗时=CPICPU时钟周期
    CPU执行时间=CPU时钟周期数/主频=(指令条数
    CPI)/主频

  • IPS:每秒执行多少条指令
    IPS=主频/平均CPI

  • ** FLOPS:每秒钟执行多少次浮点运算**
    k=1000 M=100000 G=1000 000 000 T=1 000 000 000 000

系统整体的性能指标

  • 数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件不见通过数据总线传输数据)
  • 吞吐量:系统在单位时间内处理请求的数量
  • 响应时间:指用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值