计算机是如何执行运算的呢?在之前的一篇分享中|计算机中的计算机是如何运行的?

计算机是如何执行运算的呢?在之前的一篇分享中|计算机中的计算机是如何运行的?】计算机是如何执行运算的呢?在之前的一篇分享中 , 我们提到了“二进制”(计算机里的“0”和“1”:二进制演绎了计算机的大千世界!) , 也就是说计算机是以二进制来进行通信的 , 使用“0”和“1” 。 计算机所讲的是一种“机器语言” , 而我们人类所使用的语言是如中文、英语、西班牙语等的语言 。 若要同计算机进行沟通 , 我们则必须有类似于翻译字典的东西 。 正如在想要用英语表达当前所说的中文时 , 我们或许要查一下中英对照的字典 , 而计算机也有其内置的翻译参考书 。
计算机是如何执行运算的呢?在之前的一篇分享中|计算机中的计算机是如何运行的?
文章图片
我们将深入探讨一下计算机如何将提供的信息转化为它能理解的指令 。 现在 , 你可能正在计算机上使用网络浏览器、音乐播放器、文本设置器或其他应用 。 我们每天都与这些应用进行交互 , 称之为(应用)程序(Programs) 。 程序是告诉计算机该做什么的基本指令 。
从技术上讲 , 我们将程序存储在硬盘等持久介质上 。 我们可以想象一下各式各样菜肴的食谱 , 这些食谱都存储在一本烹饪书中 , 就像应用程序存储在硬盘上一样 。
假如我们需要做很多不同的食物 , 因而雇了一位厨师 , 厨师会按照所提供的食谱制作出美味的佳肴 。 可想而知 , 厨师工作得越快 , 所能准备的食物就越多 。 在这里 , 厨师就好比计算机中的CPU , 不停地处理我们发给他的食谱并制作出相应的食物 。 但是 , 厨师工作速度非常快 , 以至于其烹饪的速度超过了其阅读食谱的速度 。 所以 , 我们复制食谱 , 把它们放入RAM中 。 RAM是计算机的短期内存 , 将信息存储在CPU可以访问的位置 , 并且速度比使用硬盘更快 。 现在我们可以一次给到厨师一至两份食谱 , 而不是向他列举出整个食谱 。 例如 , 我们想做一个花生酱果冻三明治 , 在发现一个很好的食谱后 , 把它发送给厨师去制作 。
因为厨师需要快速获取到制作的指令 , 所以这时并不是将整个食谱发给他 , 而是一次发送一行 , 如下所示:
1.准备两片面包 。
2.将花生酱铺在其中一片面包上 。
3.将果冻铺在另一片面包上 。
4.将两片面包合在一起 。
计算机是如何执行运算的呢?在之前的一篇分享中|计算机中的计算机是如何运行的?
文章图片
我们将视线从食物的制作转到计算机上 , 在计算机中 , “厨师”只能通过“0”和“1”和我们进行沟通 , 因此我们需要向其发送的是一串“0”和“1”组成的代码(10001000、10101010、10101111、10101011……) , 而不是我们可直接理解的食谱(花生酱、果冻、面包……) 。
实际上 , 这个过程还要更复杂一些 。 CPU不断地接收指令并执行它们 , 这些指令是用二进制编写的 , 但它们如何在计算机中传送呢?在计算机中 , 有一种叫做外部数据总线或EDB(ExternalDataBus) 。 这是一排连接计算机各部分的电线 , 就像我们身体中的静脉一样 。 当向其中一根导线发送电压时 , 导线的状态为“开” , 或用“1”表示;如果没有电压 , 那么其状态是关闭的 , 用“0”表示 。 二进制信息也就在这个过程中不断地被计算机读取并进行处理 。 在之前的一篇文章(现代计算机的成长发展之路 , 一个从大到小的蜕变历程!)中 , 我们也简单了解了电压是通过晶体管进行传送的 。
现在我们知道了“0”和“1”(或者“位”bit)信息是如何在计算机上传播的 。 EDB有不同大小的类型 , 8位、16位、32位甚至64位 。 如果有64根电线 , 那么可传输的数据也更多 。