0%

我是一个一生仅被执行五次的命令

我是一条指令,我现在慌得一批

我是一条指令,在被CPU处理5次后,即将被销毁释放,我现在慌得一批。

毕竟,主存的空间是有限的,被执行完的我也失去了存在的价值。

我十分羡慕那些能够被持久化到内存中的指令,因为等待他们的是永生。

听前辈们说,人类在一生即将结束的时候,脑海中就会跑马灯般浮现自己这一生的场景,从出生的第一刻起,到幼年、青年、壮年、老年,直至此时。

虽然我不是人类,但是前辈也说了,指令们在即将被释放的时候,也会有记忆的跑马灯出现。

我想,我的跑马灯也要出现了吧……

image.png

当我出生时

我出生在主存中,听说这个部件是冯·诺依曼体系的核心,我听了十分开心。q

虽然年幼的我并不知道冯·诺依曼体系代表着什么。但当时的我认为,既然出生在核心,那就意味着重要,没有什么比这更使得指令快乐的了。

我是一条二地址指令,虽然我也不明白什么是二地址指令,但是大家都这么叫我。

不过我是一个好学的指令,没过多久,我就明白了为什么大家叫我二地址指令了。

原来,在冯·诺依曼体系的世界中,组成我们指令的元素是二进制数。而这些二进制数在组成指令的时候,是被划分成两个部分的,即操作码字段地址码字段

image.png

每一个指令都有其存在的意义,有的指令存在的意义是加法、有的是乘法、有的是除法,还有一些指令代表着程序返回操作等。这种存在的意义就被称作操作码。而等待被操作的数据或者数据地址则构成了地址码字段。

我看了看我自己,1100011101010001 01111011 10100001。

我恍然大悟,原来1100011101010001代表的是操作码,也就是我一生存在的意义;而01111011和**10100001则是我要操作的两个数据。之所以被大家称作二地址指令,是因为我有两个数据地址。**

等待被执行

在冯·诺依曼体系中,一切事物的表现形式都是二进制数据,所以我看了看前后左右的朋友,他们的模样的确都和我类似。

正当我思考要不要认识一下大家的时候,我收到了来自控制器老大的命令——请前往指令寄存器。

当时我十分懵逼,还在思考这到底是怎么一回事,控制器老大见我疑惑,便主动解释起了冯·诺依曼体系世界的基本构成。

整个冯·诺依曼体系世界,主要由五大部分构成:控制器、运算器、存储器、输入输出设备

image.png

控制器老大的主要作用是统一指挥并控制这个世界中的所有部件。

运算器的主要作用是对数据进行算数运算和逻辑运算。

存储器是保存待操作的信息和中间结果,就包括我们这些指令和我刚才看到的朋友——其他数据。

至于输入输出设备,他们其一存在的意义是把人类能识别的信息输入到计算机中,另一个则是把数据输出成人类能够识别的信息。

这下我想起来了,在我出现在主存之前,我曾见到过我的上一世:

1
123+321

开始执行

我是一条指令,我已进入指令寄存器,感觉良好。

image.png

经过控制器老大使用命令解释器解释后,我了解到,我是一个加法指令,我存在的意义就是把我操作地址中的两个数据加起来,当然,我自己是无法完成这个操作的,需要依靠其他的冯·诺依曼世界中的部件老哥们。

image.png

在控制器老哥大得知我的作用后,将我存储的两个数据地址发送到运算器中的数据暂存器暂存

紧接着,控制器老大使用控制信号产生器将操作信号发送给运算器中的计算电路

计算电路将按照严格的逻辑执行加法运算,将两个数据加在一起求和,当然,结果也是二进制的形式。

最终,这个结果到底是被持久化到存储器中还是到了输出设备中就不得而知了……

我的一生

用最简单的图像语言来描述我的一生,那肯定是像下面这个样子。

image.png

我的一生,仅仅被处理了五次。

我依稀记得:

  • 第一次,我在控制器老大的指挥下,进入了指令暂存器
  • 第二次,在命令解释器的作用下,计算命令和待操作的数据被存储到相关的寄存器中。
  • 第三次,根据数据地址,从存储器上取出了我的两个待计算数。
  • 第四次,运算器通过计算得出结果。
  • 第五次,数据被输出。

虽然是仅仅5次的生命,但我存在的意义,却永不凋零。

因为我最后明白,要想成就伟大的事业,必须从点滴开始。

就像《人类群星闪耀时》写的那样:

一个民族,千百万人里面才出一个天才,人世间数百万个闲暇的小时流逝过去,方始出现一个真正的历史性时刻,人类星光璀璨的时辰。

写在最后

希望你能喜欢我的这篇文章。

更多有趣的文章、JAVA、Python、人工智能相关图书、视频资源、面试资料,尽在公众号最高权限比特流

欢迎交流!

公众号-引导关注.png

坚持原创技术分享,您的支持将鼓励我继续创作!