计算机组成原理

目录

计算机系统组成

软件的分类

硬件的发展

微处理器的发展

软件的发展

目前计算机的发展趋势

计算机硬件的基本组成

早期的冯诺依曼结构

前言

冯诺依曼机的硬件结构

冯诺依曼计算机的特点

现代计算机的运算结构

前言

各个硬件部件的工作原理

主存储器的基本组成

MAR和MDR

存储体

运算器的基本组成

控制器的基本组成

数据总线和地址总线

RAM大小的确定

计算机的位数

计算机的工作过程

具体流程

​编辑

计算机系统的层次结构

汇编与机器指令

前言

代码控制电路的原因 

汇编的执行过程

性能指标

计算机系统组成

  • 计算机系统由硬件和软件这两大部分组成
  • 所谓的硬件就是计算机的实体部分,就是我们看得见摸得着的东西(主机、外设);软件就是我们看得见但是摸不着的东西。
  • 硬件是计算机系统的物理基础,他决定该计算机系统的天花板(瓶颈在哪);软件决定了我们可以把该硬件的性能发挥到什么程度
  • 计算机性能的好坏取决于软硬件功能的总和

软件的分类

  • 系统软件:用来管理整个计算机系统(操作系统)
  • 应用软件:按任务需要编制成的各种程序(一些app)

硬件的发展

逻辑元件:用来处理这些电信号的最小的基本单元

微处理器的发展

机器字长:计算机一次整数运算所能处理的二进制位数

摩尔定律:集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将翻了一番

注意:

  • 微型计算机的发展以微处理器技术为标志
  • 摩尔定律揭示了信息技术进步的速度

软件的发展

前言:所有的软件其实都是用编程语言来编写的,所以编程语言的发展直接就决定了我们的软件世界有多丰富

目前计算机的发展趋势

两极分化

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

计算机硬件的基本组成

  • 早期的冯诺伊曼结构
  • 现代计算机结构 

早期的冯诺依曼结构

前言

世界上第一台计算机是ENIAC,当实冯诺依曼就是这台计算机设计的一个顾问;该计算机很大的一个缺点就是每一步的计算需要执行什么指令都需要这些操作员手动接线来告诉计算机,所以,虽然这台计算机的执行运算速度很快,但是由于这些程序员们都需要手动接线来告诉它下一步该怎么做,因此该计算机的计算速度就被手工操作所需要的耗时给抵消了,为了解决这个问题,冯诺依曼第一次提出存储程序这个概念,基于它提出的这个思想,世界上第一台具有冯诺依曼结构的计算机就诞生了

存储程序: 将指令以二进制代码的形式事先输入计算机的主存储器,然后按照其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束

冯诺依曼机的硬件结构

理解:

  • 我们的计算机是用来处理数据的,所以要让计算机处理数据,那么首先要有一个输入设备把数据输入到计算机中,输入的这些程序通过输入设备处理之后,这些数据是先流向运算器的;通过运算器的中转才会把这些程序数据放到内存(存储器中);控制器从存储器中读取一条指令,读到该指令后将其解析,之后指挥运算器来执行这条指令;这条指令经过运算器处理之后,这些数据的运算结果会通过输出设备,将其转换成我们人类比较熟悉的形式。
  • 控制器会用一些电信号来协调其他部件相互配合的工作,另外控制器也会负责解析控制器里存储的那些程序指令

冯诺依曼计算机的特点

  1. 计算机由5大部件组成(输入设备、输出设备、存储器、运算器、控制器)
  2. 指令和数据以同等的地位存放在存储器中,可以按址寻访
  3. 指令和数据都用二进制表示
  4. 指令由操作码和地址码组成
  5. 冯诺依曼计算机以运算器为核心(输入设备和输出设备与存储器之间的数据传送都是以运算器为中转)

现代计算机的运算结构

前言

传统的冯诺依曼计算机都是以运算器为核心,数据的传输都需要经过运算器作为中转;但是现代计算机通常都以存储器作为中心,输入设备的数据直接放到存储器中,当运算器处理完这些数据后,输出设备也会直接从存储器中取走最终的数据进行计算结果的输出;这样就可以更多的解放运算器的时间,可以让运算器进行更多的运算

注意:由于运算器和控制器之间的逻辑关系十分紧密,所以在大规模集成电路出现了之后,这两个部件通常是被集成在同一个芯片上的(CPU)

注意:这里的辅存就是我们所说的硬盘,其应该归为IO设备;我们平时安装的APP其就是是存放在辅存里面的,只有这个APP需要启动运行的时候才会把辅存里面的APP相关的程序数据读到主存中,所以其应归结为IO设备

各个硬件部件的工作原理

主存储器的基本组成

前言:主存储器中用于存放数据部分叫存储体(由一系列的存储元件构成的,可以存放二进制数据)除了存储体还有两个重要的寄存器(MAR、MDR)

MAR和MDR

  • MAR:memory address register(存储地址寄存器)存放和地址相关的二进制数据
  • MDR:memory data register(存储数据寄存器)存放和数据相关的二进制数据

理解:

  • CPU既可以向存储器中读出数据,也可以从存储器中写入数据
  • CPU想要存储器中读取数据,那么他会把它想要的数据存地址放在MAR中,之后主存储器就会根据MAR接收到的地址信息去存储体中拿出CPU想要的数据,并把该数据写到MDR中,之后CPU就可以通过数据线路从MDR中取走它想要的数据
  • CPU想要向存储器中写入数据,那么他会把它想要写入的数据放入到MDR中,最后CPU会通过控制总线告诉主存储器此次想要执行的操作为写操作。那么主存储器就会根据CPU发送的信息(MAR[写入数据的地址]、MDR[写入的数据]、为写操作)往对应的位置写入CPU想要写的数据

存储体

理解:我们要的二进制数据是存放在存储体中的,并且是按照地址来存储的;我们的整个存储体会被分成一个个的存储单元,每个存储单元会存放一串二进制代码;每个存储单元存放的这一串二进制代码我们就将其称为一个存储字;而每个存储字中包含多少个二进制位我们就将他称为存储字长;每个存储单元会对应一个地址信息(地址从0开始)就是在MAR中指明的信息

注意:

  • 由多个存储元(即存储二进制的电子元件,每个存储元可存1bit)还有相应的线路就构成了一个存储单元
  • MAR的位数就直接反映了存储体里有多少个存储单元
  • MDR的二进制位数=存储单元的字长

运算器的基本组成

控制器的基本组成

注意:每完成一条指令需要先从PC内取出要执行指令的地址,然后根据指令地址从内存中取出这条指令;取出的指令会被放到IR中,然后CU就可以分析该指令的作用,分析完之后CU就会控制其他部件来配合着完成指令的具体执行。

数据总线和地址总线

前言:数据总线是传输数据的,比如数据总线传输的是01010000,那么RAM的某一个字节就会存储01010000,但是RAM有很多字节怎么确定要给哪个字节存储数据呢,这就需要地址总线了,它可以指定给RAM存储器的哪个字节存储数据,在RAM存储器的最开始有个地址译码器(主要用于判断地址总线的电平的不同状态来确定要给RAM中哪个字节存储数据)

地址总线2根,那么对应的不同状态位如下

  • 00——第一字节存储数据
  • 01——第二字节存储数据
  • 10——第三字节存储数据
  • 11——第四字节存储数据

RAM大小的确定

在最开始,8位单片机的地址总线是8位的,那么对应的RAM存储器的译码器也是8位的,则它最多可以寻址2^8(256)*1字节=256字节,那么这种单片机的RAM大小为256字节。

注意:一般情况下我们给1字节分配一个对应地址。 

计算机的位数

前言:

  • 真正决定计算机或处理器的位数主要取决于ALU,ALU(逻辑运算单元)为CPU的核心,CPU的所有的运算靠的都是ALU,其专门执行算数和逻辑运算(算数运算:加减乘除、逻辑运算:与或非)
  • ALU和其他部件的数据传输靠的是数据总线,所以我们的一般说法是8位单片机的8是指数据总线的位宽是8位,但是其本质上还是他的ALU一次性最多能够处理多少位数据
  • 存在地址总线和数据总线位数不同的情况,实际单片机的位数以数据总线的位数为准

举例:计算2个8位二进制相加,只需要给a和b输入两个8位二进制数,他的输出端就能计算两个8位二进制相加得和。

注意:

  • 8位单片机的ALU位数为8位,8位的ALU一次性最多可以处理8位数据,32位单片机的ALU位数为32位,32位的ALU一次性最多可以处理32位数据
  • 8位单片机也可以进行16位或32位的计算(将16位或32位的数据分成多个8位分别计算)
  • 对于计算8位数据,8位、16位或32位单片机在速度上几乎差不多

计算机的工作过程

具体案例:执行以下代码

先将以上高级语言翻译成机器能够读懂的机器语言,同时会把该程序装入主存

具体流程

理解:

  1. 我们的程序都是放在存储体中的;这个程序要执行的第一个指令是存放在0号位置,所以在程序运行之前PC会指向0号位置,然后将0号指令取出(通过MAR和MDR);这条指令会通过数据总线放到IR(指令寄存器)中,接下来该指令的操作码(前6比特)会被送到CU(控制单元)CU分析该操作码分析到其为取数指令;于是将该地址码(5号地址)所指明的内存单元里的数据取出放到ACC中;之后PC值自动加一。
  2. 之后PC指向了1号位置,然后将1号指令取出;这条指令放到IR中,CU根据指令的操作码分析该为乘法操作;于是将该地址码所指明的内存单元里的数据(6号地址)放到MQ中,a的值放入通用寄存器x中,接下来CU会通过控制线告诉ALU让他进行乘法运算ab算出结果后放入ACC中;PC加一
  3. PC指向2,然后将2号指令取出;这条指令放到IR中,CU根据指令的操作码分析其为相加操作;于是将该地址码所指向的内存单元数据(7号地址)放到通用寄存器x中,CU会向ALU发送信号执行加法操作,然后ALU就会将ACC内ab和x内c进行相加,并且将结果再次放入ACC;PC加一
  4. PC指向3,然后将3号指令取出;这条指令放到IR中,CU根据指令的操作码分析其为存储操作(将ACC中的数据存放到特定的地址单元y中)于是将指令的地址码部分(8)送到MAR,并将ACC的结果通过数据总线送到MDR中;CU就会通过控制总线告诉主存,此次进行的就是写操作;于是主存储器就会根据MAR指明的地址将MDR中的数据放到相应的位置;PC加一
  5. PC指向4,然后将4号指令取出;这条指令放到IR中,CU根据指令的操作码分析其为停止操作;然后就知道程序运行结束,执行操作系统中断指令(中断机制来告诉操作系统中止该进程)

计算机系统的层次结构

汇编与机器指令

前言

计算机指令:机器语言 

汇编的本质:机器语言的助记符。

注意:

  • 所谓的汇编语言就是机器语言,所谓的汇编器就是将助记符通过一张表来翻译成特定的0/1的一串数字进而执行,但是后来人们为了方便记忆,便将具有特定功能的一串0/1的数字打包起来,用特定的助记符来表示。
  • 上面的汇编符号就相当于操作码

代码控制电路的原因 

前言:电脑硬盘里面的无论是文字,图像,视频,声音等主要是以电信号或磁信号的行式存在;存代码的存储器储存的就是电子,读的时候读到的也是电子,这些电子就像键盘中的信号一样转化为对应的逻辑门开关。

理解:硬盘和键盘都属于电脑的外接设备,从硬盘中读取数据就和从键盘中读取到的数据一样,只不过从硬盘中读取到的数据是我们事先录入好的,而从键盘读取的数据是我们可以实时控制的。

汇编的执行过程

注意:时钟发生器每通一次电,断一次电称作一个时钟周期。(时钟发生器每通一次电,cpu就会往前算一步)

性能指标

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值