计算机的工作机制

当今计算机基本遵循冯诺依曼体系,那么什么是冯诺依曼体系呢?(本文仅涉及一些简单的模数电和单片机基础知识,主要是为了软件工程师更好地理解计算机是如何工作的)

      冯诺依曼提出的:把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺依曼体系结构冯·诺伊曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。说白了指令只不过是一种特殊得数据,需要存储在内存中。这个体系当中最核心的几个器件是CPU 中央处理器 、存储器、 输入设备、输出设备和控制器。他们分别的作用是:CPU 中央处理器: 进行算术运算和逻辑判断.,即 CPU = 运算器 + 控制器。存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储),也就是说:存储器 = 内存。 输入设备: 用户给计算机发号施令的设备,外部数据就是通过输入设备传入存储器的。 输出设备: 计算机给用户汇报结果的设备,存储器内的数据通过输出设备传送到外部。

冯诺依曼体系的一个很大特点是计算机处理的数据和指令一律用二进制数表示,实际上我们的数据并不都是数,还有非数在内存中用何种方式存储呢?像字符串、图片、声音等等在内存中都会通过编码表来转化成数类型存储,这就需要我们局限在整型中表示一切广义数据。此处就要涉及到CPU究竟是如何做运算的呢?

CPU的基本工作原理:

CPU作为逻辑算术运算器可以完成与或非加减乘除取余这一系列计算,还作为控制器,相当于人的大脑,还可以作为寄存器以临时存储数据,现代的CPU更为高级一般都带有缓存。自此我们由简入繁一点点了解CPU的基本工作流程。首先对逻辑门做一个简单的了解,机械继电器:当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器,相当于一个电子开关,通过电子开关,我们可以实现 1 位(bit) 的逻辑运算,现在我们就可以利用一个个小小的电子开关来完成与或非,异或门电路。下面再说ALU:算术逻辑单元,是能实现多组算术运算和逻辑运算的组合逻辑电路,是CPU的执行单元,是所有中央处理器的核心组成部分,由与门和或门构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。

接下来我们以一个八位加法器为例来演示计算机的数字操作,在此之前先来了解一下半加器和全加器,通俗点说,半加器不用考虑来自低位的进位,只需要将两个一位二进制做加法即可,而全加器就需要考虑来自低位的进位,由此我们便可得知,八位加法器就是由一个半加器和七个全加器构成的。其他的算术运算在此不多做赘述。

寄存器和内存(RAM)

CPU是计算机的核心,而ALU是CPU的核心,但光有ALU是不够的,我们无法为 ALU 提供存储的部件,所以接下来,我们利用门电路简单说明下存储。使能线置位时,输入为 1,保存 1;输入为 0,保存0。使能线不置位时,则写入无效。内存的构建会更复杂一些,但是基本原理是一致的,如此构建的内存被称为 RAM(Random Access Memory),可以支持 O(1) 时间复杂度访问任意位置的数据,这也就是我们数组下标访问操作是 O(1)的硬件支持。说白了就是当使能线置位时,输入什么输出什么,使能线不置位时,写入无效。

控制单元CU

CU就是一个指挥,它会控制ALU究竟进行何种运算。

指令

所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成,指令本身也是一个数字,用二进制形式保存在内存的某个区域中。那么指令周期又有哪几个阶段呢?

1、取码阶段:CU根据PC寄存器的值,去内存的响应位置把数据读取到IR寄存器中,PC寄存器中的值会自动 + 1;2、解码阶段:CU按照预先设定的指令集解读指令数据(opcode + 操作数);3、执行阶段:LOAD指令由CU执行。注意,由于硬件中PC自动 + 1,所以我们的代码变成的指令才能顺序的往下进行,这也是冯诺依曼体系的特点之一。电子计算机中的 CPU 可不需要靠自己来驱动这个周期的运转,而是靠背后一个时钟来进行周期驱动的,相关时钟的问题我们可以简单理解为有一些电路或者外部晶振提供一定频率。最后,ALU + CU + 寄存器 + 时钟就组成了我们平时经常看到的一个词汇:中央处理器,简称CPU。通过CPU中预先规定的指令,可以修改PC中的值,进而影响执行流。我们写的程序启动,就像电脑将程序翻译出来的指令的第一条地址放到PC中,程序就顺序执行得跑起来了。

简单来说:1. CPU 中的 PC 寄存器,是决定 CPU 要执行哪条指令的关键

                  2. 指令是由 动作 + 操作对象组成

                  3. CPU 眼中只有指令,没有其他的概念

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值