模型计算机简单介绍


本文主要简单了解计算机的构成和模型计算机中的指令流和数据流

计算机结构

伟大的电子数字计算机发明人:冯诺依曼,他和他的团队制造出了世界上第一台电子数字计算机ENIAC。到现在为止,计算机的体系虽然有重大发展与进步,但仍然没有完全脱离冯氏计算机体系结构。

1、冯氏计算机体系结构:
a)构成:控制器、运算器、存储器、输入设备、输出设备五大件

b)冯氏计算机两个重要特点

  • 指令和数据均用二进制表示;
  • 程序按顺序事先存放在存储器中,并可以逐一取出。

c)冯氏计算机体系结构图:
冯氏计算机体系结构
图中方框代表五大功能部件,虚线表示控制信号线(即发送指令或报告状态的信号线),实线是被处理的数据或对象流动的信号线。

2、从更高的抽象层次来讲
现代计算机可以用这样一个框图来表示,它由存储器,中央处理器、输入输出设备组成
现代计算机抽象图

a) 存储器:程序、输入和输出数据以及计算过程中产生的中间结果都存放在存储器中
b) 中央处理器:数据通道和控制器

  • 控制器或控制单元:控制各个模块的工作并监视它们的状态
  • 数据通路:按程序的设定进行计算和数据处理

c) 输入输出设备:负责程序与数据的输入与输出

比如此模型机图,左边部分相当于存储器,右边部分相当于数据通路,上面部分相当于控制器(没有包括输入输出设备,很容易添加)
在这里插入图片描述
简单介绍一下工作流程(类似大脑与器官的关系):
该模型机分两个阶段工作,取指与执行
取指:从RAM里取出指令,然后进入指令寄存器,通过指令译码器产生各种控制信号来控制各个模块;
执行:根据控制信号,各个模块进行自己的工作。

模型计算机中的指令流和数据流

以上图模型机来讲述:
最外围是总线,是指令与数据传输的公共通道。(指令和数据可以先以字面意思理解)。1

指令流:存储器取出——指令寄存器——指令译码器——向其他各个电路模块发出各种各样的控制信号。这些信号包括(上图为例):

  • 通用寄存器的控制信号 /WE,RAA1,RAA0,RWNA1,RWBA0
  • 函数发生器控制信号 S0~S3,M
  • 移位逻辑控制信号 F->BUS,FL->BUS.FR->BUS
  • 指令计数器控制信号 LD_PC,IN_PC
  • 选择器控制信号 MADD
  • 存储器控制信号 DL,XL,/CS
  • 指令寄存器控制信号 LD_IR

数据流:四种路路径:

  • 存储器——总线——通用寄存器组——函数发生器——移位逻辑——通用寄存器
  • 存储器——总线——通用寄存器组——函数发生器——移位逻辑——存储器
  • 通用寄存器组——函数发生器——移位逻辑——总线——存储器
  • 通用寄存器组——函数发生器——移位逻辑——总线——通用寄存器

不管是哪种情况,数据流都要经过数据通路(通用寄存器组——函数发生器——移位逻辑),数据通路的作用决定了数据必须经过数据通路
在这里插入图片描述

下面聊一下程序执行顺序不同时,指令流的不同流动情况,因为指令来源于存储器,我们先把存储器了解一下,做个比喻:
存储器——大楼
存储单元——房间(编号0-某个最大值)
存储单元的地址——房间号码
存储单元中存放着一条指令,从哪个单元取出指令,是由指令计数器PC决定的;正如一个房间号码对应一个房间一样。

两种流动情况:

  1. 计数器顺序技术,按照顺序读取指令。当语句执行时,意味着指令要从存储器中按顺序取出来,先取出第一条,再取出第二条,指令计数器从0开始按顺序进行加1计数,先是0,然后是1,再然后是2等等。计数值作为指令存放的地址送到存储器的地址端口,供取指令时使用。
  2. 当需要分支时,指令计数器中的计数值失效,程序分支的目的地址从存储器取出来,然后再送到计数器中,计数器从新的初始值开始继续计数。

这两种情况具体采用哪种是由控制器产生的控制信号LD_PC和IN_PC决定的,当LD_PC控制时,新的指令地址导入计数器;当IN_PC控制时,计数器正常+1。(模型机正常工作情况下IN_PC和LD_PC不能同时控制)

注意:当需要从存储器中取出数据,注意是数据不是指令,或者要向存储器存放运算结果时,存储单元的地址是由通用寄存器组提供的。就是图中的选择器的1和2端口(由MADD决定)。


  1. 指令:一般由操作数和操作码组成
    操作码
    计算机程序所规定的的要执行的那一部分指令或字段(通常用代码表示),其实就是指令序列号,用来告诉CPU需要执行哪一条指令。
    指令系统的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。不同的指令用操作码这个字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。
    操作数
    操作数指出指令执行的操作所需要的数据的来源。操作数是汇编语言指令的一个字段。在操作数这个字段中可以放操作数本身,也可以放操作地址,还可以放操作地址的计算方法。
    操作数是指令执行的参与者,也就是各种操作的对象。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Toser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值