大家的C语言-101-计算机的核心CPU

什么是程序

上一篇介绍了计算机是如何工作的。但同学们已经发现了使用计算器的过程十分麻烦。谁也不会为了求2+1去摆弄一大堆开关。现在想另外一个问题,现在要计算一万个加法。即便再简单,一个人算完一万条估计也会吐血,而且还不能保证全对。一般遇到这种大量的重复性的工作,机器的优势就体现出来了。因此,我们就要想办法让计算器自动计算,并在计算完后将结果保存在某个地方,以便我们可以获取。

继续以上一篇的2+1为例,按步骤指令和数据的顺序如下

顺序 数字 指令/数据
0 000 指令
1 010 数据
2 001 指令
3 010 指令
4 001 数据
5 011 指令

在计算不同数据的加法时,只需要对其中数据部分做修改即可。比如想计算3+3只需要将表格修改成

因此计算一万条加法,我们只需要将以上序列复制一万份,然后修改其中的数据部分便可。

最终我们可以得到一连串数字,这些数字有的是指令有的是数据,如下:

                                                                                           

而这种有一定顺序的,指令和数据的集合就叫做程序

内存和控制器

有了程序之后,下一步就是让计算器自动工作了。因此引入两个新的设备,一个叫做控制器,一个叫做主存储器。

主存储器的作用是保存程序,并且可以供控制器读取指令和数据,并允许控制器将计算结果保存到主存储器中。我们最常见的主存储是内存。内存的特点是只能在通电的条件下保存程序。控制器从主存储器中读取程序的操作叫做读操作,将结果保存到主存储器的操作叫做写操作。对于内存的读写操作,分别叫做读内存写内存

控制器作用是从主存储器中读指令和数据,然后将指令设置到计算器的控制端上,将数据设置到计算器的输入端上,并将计算器输出端的状态保存到主存储中。即代替人来完成设置计算器开关,和测量计算器输出端电压的工作。

最后整个装置如下图:

控制器和计算器合并在一起被称为CPU,即中央控制单元。实际上完整的CPU不仅仅包括控制器和计算器。CPU通常还有IO控制器,如控制键盘、鼠标、硬盘、显示器等。

CPU和主存储器通过总线链接。总线实际上就是一组导线,只不过它被嵌入在主板中。

指令集

 

上表只是举个例子。真实的CPU支持的指令可不仅仅有4个。而且同样的指令,对于不同的CPU对应的二进制数也不一样。比如,A品牌CPU的加法指令对应11110000,B品牌CPU的加法指令对应00001111。CPU支持多少指令和每个指令对应的二进制数被称为指令集。目前最流行的指令集有两个,一个是以Intel和AMD为代表的X86指令集(主要用于服务器和桌面系统平台),另一个是ARM指令集(主要用于移动端,如华为、骁龙、苹果的收集CPU)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章