编程基础1——计算机组成与数据的存储

极客剑寮2019-06-29 04:50:26

计算机的组成



基于冯诺依曼架构的计算机组成:

计算机是用于计算的机器!!!所以计算机的核心是运算器,运算器能够对数据进行运算。

运算需要“输入和输出”,比如一个函数y = f(x),其中的自变量x就是输入,而通过计算得到的y可以看成输出。为了能够把数据交给运算器,我们就需要输入设备,为了得到运算的结果,我们需要输出设备。

运算器只能运算,至于进行何种运算(如加减乘除),需要别人告诉它,这个“别人”就是控制器。

但控制器只负责传递信息,不负责存储信息,也就是说,具体的运算过程,需要另外一种设备来存储,这就是存储器。

 

控制器从存储器中获取运算的过程,从输入设备获取数据,让运算器按照规定的运算过程,对获取的数据进行运算。

运算的过程(事实上是一种函数)被称为程序,程序也可以视为数据的一种(能够被人类认知的都是数据)。

我们写程序,其实就是实现一种能够实现特定任务的函数(比如让一个数翻倍)。

 

数据在存储器中的存储



计算机只认识01.所有的数据都是以01的形式存储在计算机中,包括程序。

 

地址:存储器在逻辑层面上,是由许多小格子组成的,每一个“小格子”能够存储一个01.我们称这样的一个小格子叫一个“位”,8个位作为一个整体,被称为一个“字节”,每个位存储两种可能(01),那么,一个字节就有28次方种可能。我们把一个字节作为一个“房子”,一个房子就有8个房间,那么,存储器就可以看成一个城市(甚至是国家),那一个城市那么多“房子”,我们怎么找到自己的数据存在哪里呢?我们就需要一串数字来标记每一个房子,也就是“地址”,这里的“地址”和现实生活中的地址完全是一个概念。地址也是一种数据。

 

指令:在很久很久以前,我们的祖先发明了“语言”,就是用特定的符号、声音来存储和传递消息。要是计算机也能会我们的语言就好了,可惜,它们只会01,那我们就用10来新造一种语言吧,每一个“单词”用一个字节来存储,从0000000011111111分别代表一种动作(事实上我们用不到那么多),这就是所谓的指令。指令也是一种数据。

 

寄存器:在众多的“小房子”里,有一类是很特殊的,它们有着自己特定的功能,甚至还有自己的名字,比如“邮局、警察局”,这就是寄存器。寄存器有着特定的功能,负责存储特定含义的数据。

比如在控制器中就有一个寄存器,叫作地址寄存器,它的里面就是存储着控制器目前正在访问(就是从存储器指定的位置获取数据)的存储器的地址。控制器里还有一个叫做指令寄存器,存储着目前正在进行的指令。


如果这篇文章对你有帮助,请点个赞,你的支持就是我的动力!

点击扫描二维码,关注极客剑寮!