计算机组成

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,这就是内部总线的作用。

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

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

在计算机结构的简化模型中,2.4 计算机结构的简化模型相关推荐

  1. 31.模型中的一些查询骚操作——模型中的聚合查询,Q查询,F查询,分组查询;

    模型中的一些查询骚操作: (1)聚合查询:aggregate()是QuerySet 的一个终止子句,它返回一个包含一些键值对的字典 from movie.models import User from ...

  2. html盒模型中border的写法,CSS盒模型--边框设置:border: 1px solid red(像素 样式 颜色 ),border-bottom:1px dotted #ccc...

    盒模型--边框(一) 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细.样式和颜色(边框三个属性). 如下面代码为div来设置边框粗细为2px.样式为实心的.颜色为红色的边框: div ...

  3. 信用评分模型中的滚动率分析

    信用评分模型中的滚动率分析 信用风险模型的目标是识别出应被拒之门外的潜在坏客户,因此给出合理的客户好坏分类是建模的基础.比如,信用卡逾期的"坏客户",究竟应该是所有逾期过的客户,还 ...

  4. 贷后催收评分模型中的数据清洗与数据治理细节介绍

    数据清洗是一个非常修炼身心的过程,途中你除了需要把所有的数据整业务合到一张宽表里.而这种宽表中所有的字段,是你理解完业务后,细心整理出来的所有适合建模的数据. 今天我们给大家介绍一下,在风控贷后评分模 ...

  5. 软件测试(概念Ⅱ) · 开发模型 · 软件的生命周期 · 瀑布模型 · 螺旋模型 · 增量模型 · 迭代模型 · 敏捷模型 · scrum · 软件测试模型之 V 模型 W 模型

    一.开发模型的由来 二.软件的生命周期 三.瀑布模型(Waterfall Model) 四.螺旋模型(Spiral Model) 五.增量模型(Incremental Model) 六.迭代模型(Ra ...

  6. Spring Security 中最流行的权限管理模型!

    前面和大家说了 ACL,讲了理论,也给了一个完整的案例,相信小伙伴们对于 ACL 权限控制模型都已经比较了解了. 本文我要和大家聊一聊另外一个非常流行的权限管理模型,那就是 RBAC. 1.RBAC ...

  7. 深度CTR预估模型中的特征自动组合机制演化简史

    文 | 杨旭东 源 | 知乎 众所周知,深度学习在计算机视觉.语音识别.自然语言处理等领域最先取得突破并成为主流方法.但是,深度学习为什么是在这些领域而不是其他领域最先成功呢?我想一个原因就是图像.语 ...

  8. comsol显示电场计算结果_在 COMSOL 中构建磁流体动力学多物理场模型

    COMSOL Multiphysics® 软件中的模型都是从零开始构建的,软件支持多物理场,因此用户可以按照自己的意愿轻松地组合代表不同物理场现象的模型.有时这可以通过使用软件的内置功能来实现,但有些 ...

  9. 【工大SCIR笔记】浅谈Transformer模型中的位置表示

    作者:哈工大SCIR 徐啸 0. 何为位置信息 首先简单谈一下位置信息.一般将位置信息简单分为绝对位置信息和相对位置信息,并且前者对句子语义的影响不大,更为重要的是后者. 以情感分析 (Sentime ...

最新文章

  1. 【转载】 Python 调整屏幕分辨率
  2. 可控制转速CSS3旋转风车特效
  3. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第3章-采样环境下带有领航者的二阶多智能体系统的一致性
  4. CSS3 渐变: 线性渐变 linear-gradient 和 径向渐变 radial-gradient
  5. 深入分析之Cluster层
  6. 电路板的信号完整性问题及原因
  7. 已经围上为何不算目_万达为何至今不上市,并非王健林真的钱多,许家印的境遇说明一切...
  8. Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
  9. chromium下载历史版本错误
  10. 云南开放大学《机械制造基础-形考作业1-6(主观题)》
  11. Springboot电商项目前后端搭建
  12. 网站被降权了怎么办?被降权后的正确处理方法
  13. Python - 装机系列30 AMD4650g+华擎A520+光威内存条3200MHZ频率设置
  14. 国外邮箱哪家好?好用的公司邮箱怎么申请?
  15. 安卓使用http下载文件
  16. 宝山区企业技术中心认定条件及奖励政策解读
  17. 千年虫 2038问题
  18. Excel地图插件(ExcelMaps)
  19. 手把手系列之二——手把手教你做春卷
  20. Net5环境下Aspose.cell与Aspose.pdf最新版21.3全系列 excel转pdf,pdf拼页打印,去水印等

热门文章

  1. [python] 字典 pop(key)函数:删除字典中key及其值,并返回该值
  2. 非华为电脑配对华为手机(RMB+5899¥)
  3. kubectl命令大全
  4. 贺利坚老师汇编课程34笔记:SI和DI复制字符串
  5. JS中对象赋值只传值不传对象(地址)的方法,改变新值不影响旧值的两种方法...
  6. 转:从框架看PHP的五种境界及各自的薪资待遇(仅限于二三线城市,一线除外)...
  7. iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转
  8. GO语言练习:网络编程 ICMP 示例
  9. inner join ,left join ,right join 以及java时间转换
  10. 发一个招聘软件开发人员的帖子