![程序是怎样跑起来的](https://wfqqreader-1252317822.image.myqcloud.com/cover/761/907761/b_907761.jpg)
1.1 CPU的内部结构解析
图1-1展示了程序运行的一般流程。可以说了解程序的运行流程是掌握程序运行机制的基础和前提。详细内容会在接下来的章节中逐渐展开,这里主要是希望大家先有个大致印象。在这一流程中,CPU所负责的就是解释和运行最终转换成机器语言的程序内容。
![](https://epubservercos.yuewen.com/8B9C34/7963434303657401/epubprivate/OEBPS/Images/figure_0019_0001.jpg?sign=1738871097-9zp4N2znAQCvNGg7xWZkaLlO0tqh0t4M-0-76746cb67a8122985a2b84aadfd1a4b7)
图1-1 程序运行流程示例
CPU和内存是由许多晶体管组成的电子部件,通常称为IC (Integrated Circuit,集成电路)。从功能方面来看,如图1-2所示,CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可用来暂存指令、数据等处理对象,可以将其看作是内存的一种。根据种类的不同,一个CPU内部会有20~100个寄存器。控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。运算器负责运算从内存读入寄存器的数据。时钟负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。
![](https://epubservercos.yuewen.com/8B9C34/7963434303657401/epubprivate/OEBPS/Images/figure_0020_0001.jpg?sign=1738871097-neNGJT7Fu1SVh6614FdblMdm8xHRUM2t-0-f40c3aba10d9054d42c52b7d924def34)
图1-2 CPU的四个构成部分
接下来简单地解释一下内存。通常所说的内存指的是计算机的主存储器(main memory),简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。主存由可读写的元素构成,每个字节(1字节=8位)都带有一个地址编号。CPU可以通过该地址读取主存中的指令和数据,当然也可以写入数据。但有一点需要注意,主存中存储的指令和数据会随着计算机的关机而自动清除。
了解了CPU的构造后,大家对程序的运行机制的理解是不是也加深了一些?程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。看到“控制”一词时,大家可能会将事情想象得过于复杂,其实所谓的控制就是指数据运算以外的处理(主要是数据输入输出的时机控制)。比如内存和磁盘等媒介的输入输出、键盘和鼠标的输入、显示器和打印机的输出等,这些都是控制的内容。