1.1 看一看CPU的内部构造
大家编写的程序在运行时需要经历图1-1所示的流程。这张图是了解程序运行原理所必备的基础知识。详细内容笔者接下来会进行讲解,这里希望大家先有一个大概的印象。CPU是负责对最终转换为机器语言的程序内容进行解释和执行的设备。
图1-1 程序运行的图示
CPU和内存本质上都是名为集成电路(Integrated Circuit,IC)的电子部件,由大量晶体管构成。从功能上来说,如图1-2所示,CPU内部是由寄存器、控制器(control unit)、运算器(arithmetic unit)和时钟(clock)四个部分组成的,它们之间通过电流信号相互连通。寄存器是用来存放指令、数据这些操作对象的空间。一个CPU内部通常有几个到几十个不等的寄存器。控制器负责将内存中的指令和数据读入寄存器,并根据指令的执行结果对计算机进行控制。运算器负责运算从内存中读入寄存器的数据。时钟负责产生控制CPU工作节律的时钟信号,也有一些计算机将时钟放在CPU的外部。
图1-2 构成CPU的四个部分
下面来简单介绍一下内存。在计算机中我们通常所说的内存指的是主存储器(main memory),简称主存。它通过一些控制电路与CPU相连,用于存储指令和数据。内存由一些可读写的存储元件构成,每个字节(1字节8比特)都分配了一个被称为地址的编号。CPU通过地址就可以读取存放在内存中的指令和数据,也可以将数据写入内存。关闭计算机电源后,内存中存储的指令和数据就会消失。
弄清楚CPU的构造之后,大家是不是对程序运行的原理有一点概念了呢?当程序启动时,CPU中的控制器会根据时钟信号从内存中读取指令和数据。通过对指令进行解释和执行,运算器会对数据进行运算,控制器根据运算结果控制计算机进行指定的操作。“控制”这个词可能有点让人难以理解,其实它指的就是除运算之外的操作(主要是数据输入输出的时机控制)。内存和磁盘的输入输出、键盘和鼠标的输入,以及显示器和打印机的输出等操作,都属于控制。