2.4 计算机结构的简化模型

计算机组成

2 计算机基本结构

2.4 计算机结构的简化模型

为了掌握计算机的内部结构,我们要先来构建一个计算机的简化模型。这个模型能够体现计算机内部的关键之处,又足够的简单,便于理解。

这个冯诺依曼结构的餐馆,我们已经非常熟悉了。我们都可以根据这个餐馆的结构几乎一一对应的来构造出我们的计算机结构的模型。

这个计算机结构的简化模型我们又称之为模型机。目前包含了CPU和存储器两大布局,中间通过系统总线相连。系统总线又被细化为控制总线、地址总线和数据总线三个部分。CPU和存储器内部各有相应的结构。我们现在就来逐个部件的说明这个模型机是如何构建的。

首先来看存储器。在设计计算机时要确定存储器的编址方式,如果存储器按字节编制,那每一个存储单元就能存放8位的二进制数,而且每个存储单元的地址是唯一的。CPU要想访问某个存储单元,必须要通过地址总线给出相应的地址,因此如果地址总线的宽度为n,则CPU能管理的存储单元数最多为2的n次方个。假设地址总线的宽度为32位, 那么CPU能管理的存储单元数就是2的32次方,也就是4G。CPU发来的地址将会存放在存储器地址寄存器, 简称为MAR。CPU要读写的数据则会通过数据总线传送,数据总线的宽度一般为存储单元位宽的整数倍,对应的数据则会放在一个被称为存储器数据寄存器,简称为MDR的结构中。最后控制总线与存储器当中的控制逻辑相连,用于接收来自于CPU的读写信号或者向CPU反馈传输已经完成的信号。

我们再来看模型机的CPU。首先来看其中的控制器。控制器是用于控制计算机各个部件完成取指令分析指令执行指令等功能。在我们的模型机中主要包含如上的部分,我们逐个来进行分析。

  • 首先是指令寄存器,简称为IR。用于存放正在执行或者即将执行的指令。这个指令是从存储器中取来的,暂时存放在这个寄存器里。
  • 程序计数器PC。用于存放下一条指令的存储单元地址。我们还记得在餐馆那个例子中厨师要去取下一张任务单的时候就会检查他下一张任务单的位置,那么其实对应的就是这个寄存器的功能。取完下一条指令之后,这个程序计数器需要自动递增以指向接下来那一条指令的地址。
  • CPU当中也有访存相关的寄存器。访问存储器的地址,存放在MAR寄存器中;用于写到存储器或者从存储器读回的数据在MDR寄存器中。

指令译码部件则是用于对IR,也就是指令寄存器当中的指令进行译码,以确定其中存放的是哪一条指令。当确定了是哪条指令之后,控制电路就可以产生对应的控制信号,这些控制信号在持续脉冲的同步下去控制CPU当中各个控制部件的动作。

然后我们来看模型机的运算器。运算器顾名思义是用来完成运算的。运算主要可分为算术运算和逻辑运算。常见最基本的算术运算就是加法和减法,稍微复杂一些还有乘法和除法等等。常见的逻辑运算包括非、与、或等等。

运算器主要有如下的部件构成。其核心部分是ALU,也就是算数逻辑单元的简称。它用于完成算数运算和逻辑运算,我们从图中可以看出这个ALU有两个输入,一个输出。比如我们要完成一个加法,那么加法的两个操作数也就是被加数和加数分别从A端口和B端口输入,经过ALU计算后,将加法的运算结果送到输出端口。

为了便于描述,我们将ALU的输入和输出分别设置了暂时保存数据用的寄存器,分别记为X,Y和Z,也就说ALU将会对X和Y所保存的数据进行控制器所指定的运算,并将结果输出到Z。此外,ALU在运算时还会产生相应的状态,比如这个运算的结果是否产生进位,是否会有溢出等等。这样的运算结果的状态会保存在F这个寄存器,F是标志的简称。

那运算器所要运算的数据实际是从存储器来的,但是不能每一次运算都去存储器取数,这样的话效率就太低了,所以有一些常用的数需要提前从存储器中取出来。那我们就需要在运算器中有临时存放这些数的部件,这就是通用寄存器。在我们的模型机中设置了n个通用寄存器,其编号从 \(R_0\) 一直到 \(R_{n-1}\)。通用寄存器当中的数据可以来自于存储器,也可以来自于其他通用寄存器,或者来自于ALU的输出,也就说我们可以在两个不同的通用寄存器之间传递数据,也可以在ALU和通用寄存器之间传递数据。

在通用寄存器和ALU,以及刚才提到的控制器当中的若干寄存器之间要传递数据的话,就必须要经过CPU的内部总线。内部总线是用于在CPU内部跟各个部件之间传递数据的装置。我们举一个例子,例如我们需要将数据从 \(R_0\) 传送到 X,也就是可能为下一次运算进行准备,那么数据会通过内部总线从 \(R_0\) 传到了 X。那么所谓这个传送的过程指的是什么呢?在之后我们具体讲电路实现的时候会为大家详细解释,在这里为了便于理解,我先为大家打一个比方,如果我们把内部总线看作是输水的水管的话,那我们可以把这些通用寄存器等部件看作是蓄水的水池。比如在这个例子中我们要从 \(R_0\) 传送数据到 X, \(R_0\) 和 X 都可以看做两个蓄水池,它们分别有自己的进水口和出水口。 \(R_0\) 我们看它有个双向的箭头,证明它既可以输入又可以输出,所以它既有进水口又有出水口。而 X 就一个单向的箭头,说明它只有进水口没有出水口,因为我们知道 X 和 Y 作为ALU的数据输入的临时寄存器的,所以它不需要输出。从 \(R_0\) 传送数据到 X,我们可以理解成在控制电路的控制下,将 \(R_0\) 的出水管打开,再将 X 的入水管打开,与此同时将其他所有部件的出水管和入水管都关闭,这样 \(R_0\) 里面保存的数据就像水流一样,经过了内部总线会流到X中,那么经过一段时间之后,X中所保存的数就跟 \(R_0\) 当中的数一样了。这个我们就可以用来形象的理解,从 \(R_0\) 传送输入到X,这就是内部总线的作用。

那这样,我们这个计算机结构的简化模型就构造完成了。

现在我们已经构建完成了这个模型机的核心部分,想要了解这个静态的结构,一个有效的方法 是观察其动态的运行过程。下一节我们就来一起分析模型机是如何运行的。

原文地址:https://www.cnblogs.com/narisu/p/9093820.html

时间: 2024-10-24 11:14:17

2.4 计算机结构的简化模型的相关文章

1-4 计算机结构的简化模型

一.计算机结构的简化模型(模型机) 1.模型机包含了CPU和存储器两大部分,中间通过系统总线相连 2.系统总线又被细化为控制总线.地址总线和数据总线三个部分 3.CPU和存储器(内存,不是硬盘)内部各有自己相应的结构 二.先来看存储器(即内存) 1.存储单元的位宽由设计计算机时对存储器的编址方法确定. 如果存储器按字节编址,则每个存储单元可以存放8位二进制数 2.存储单元的地址是唯一的,不同存储单元的地址互不相同, CPU若要想访问某个存储单元,必须要通过地址总线给出相应的地址 3.若地址总线的

计算机组成一简化模型

1.冯诺依曼结构 ①计算机应由运算器,控制器,存储器,输入设备和输出设备5部分组成 ②数据和程序均以二进制代码形式不加区别的存放在存储器中,存放位置由存储器的地址指定. ③计算机在工作时能够自动从存储器中取出指令加以执行 ... 控制器发送地址给存储器,存储器吧地址里面存储指令返回给控制器,控制器获得指令并编译然后 让运算器运行,运算器得到命令进行执行并把执行状态返回给控制器. 2.计算机简化模型 2.1存储器模型 2.2控制器模型 2.3运算器模型 2.4输入输出 硬盘既可以视为输入也可以视为

计算机组成原理之计算机的简化结构

首先,我们开门见山 先来了解模型机的概念 模型机:计算机结构的简化模型.(这样有利于计算机结构的理解) 如图,我们可以知道:计算机主要由两个部件和系统总线拼成 [系统总线:如图] CPU和存储器之间: 1.访问 -- 内存 -- 地址总线 -- 地址总线决定了CPU可以访问的物理地址空间(cpu到底使用多大容量的内存) cpu发来的地址存放的位置在MAR -—— 存储器地址寄存器 顾名思义,存放的是cpu正在读或写的存储单元 对应的数据存放的位置在MDR —— 接受来自cpu的读写信号 或者向c

模型选择

继续上节内容介绍学习理论,介绍模型选择算法,大纲内容为: 交叉验证 特征选择 回顾上节的偏差方差权衡现象,若选择过于简单的模型,偏差过高,可能会导致欠拟合:若选择过于复杂的模型,方差过高,可能会导致过拟合,同样模型的一般适用性不好. 模型复杂度:多项式的次数或参数的个数. (1)尝试选择多项式的次数 (2)尝试选择参数 τ:局部加权线性回归带宽参数 C:支持向量机中的权衡参数 ------------------------------------------------------------

Unity3D模型制作规范[转]

本文提到的所有数字模型制作,全部是用3D MAX建立的模型,即使是不同的驱动引擎,对模型的要求基本是相同的.当一个VR模型制作完成时,它所包含的基本内容包括:场景尺寸.单位,模型归类塌陷.命名.节点编辑,纹理.坐标.纹理尺寸.纹理格式.材质球等必须是符合制作规范的.一个归类清晰.面数节省.制作规范的模型文件对于程序控制管理是十分必要的. 首先对制作流程作简单介绍:素材采集-模型制作-贴图制作-场景塌陷.命名.展UV坐标-灯光渲染测试-场景烘培-场景调整导出. 第一章.模型制作规范 1.在模型分工

概率图模型(PGM)学习笔记(五)——模板模型

模板模型(Template Models)主要包括模板变量(TemplateVariables)和语言(Language). 模板模型可以应用于无限大的贝叶斯网络: 模板变量是被多次复用的变量: 如:地点(时间).基因型(人物).标签(像素).难度(课程),等等. 语言用来描述模板变量如何从模板中继承依赖关系. 语言有很多种,各种语言都有各种应用条件,从而构造出大量非常有用的语言. 模板模型可以用紧凑的方式描述 1.时序上的重复(如动态贝叶斯网络Dynamic Bayesian Networks

TF-IDF模型的概率解释

信息检索概述 信息检索是当前应用十分广泛的一种技术,论文检索.搜索引擎都属于信息检索的范畴.通常,人们把信息检索问题抽象为:在文档集合D上,对于由关键词w[1] … w[k]组成的查询串q,返回一个按查询q和文档d匹配度relevance(q, d)排序的相关文档列表D’. 对于这一问题,先后出现了布尔模型.向量模型等各种经典的信息检索模型,它们从不同的角度提出了自己的一套解决方案.布尔模型以集合的布尔运算为基础,查询效率高,但模型过于简单,无法有效地对不同文档进行排序,查询效果不佳.向量模型把

XForms设计器----模型管理

在模型视图中进行模型管理. 模型配置 属性名称 描述 Schema 一个模型可以有多个schema文件,开发人员可以通过schema文件选择器选择多个文件,如果手动录入,则多个schema文件以空格分隔:文件的位置为相对于WebContent目录的绝对路径. schema文本 模型的schema文本,必须是完整的schema文件内容 标识 模型的ID,是运行时访问模型的重要配置 名称空间 模型所有的名称空间列表,从schema文件或schema文本中抽取 注意:所配置的schema文件需要同步到

django 自定义用户user模型的三种方法

来源:http://www.jb51.net/article/57527.htm django version: 1.7.1 最简单的推荐:使用abstractuser扩充fields 复制代码代码如下: profiles/models.py from django.db import modelsfrom django.contrib.auth.models import AbstractUserfrom django.utils.translation import ugettext_laz