程序是怎样跑起来的
上QQ阅读APP看书,第一时间看更新

1.1 CPU的内部结构解析

图1-1展示了程序运行的一般流程。可以说了解程序的运行流程是掌握程序运行机制的基础和前提。详细内容会在接下来的章节中逐渐展开,这里主要是希望大家先有个大致印象。在这一流程中,CPUCPU是用来表示计算机内部元件功能的术语。另一方面,奔腾等半导体芯片,通常称为微处理器。不过,由于大部分计算机通常只有一个微处理器来承担CPU的功能,所以本章不对此进行区分,统一使用CPU这一称呼。CPU由具有ON/OFF开关功能的晶体管构成。另外,有的CPU在一个集成电路中集成了两个CPU芯片,我们称之为双核(dual core)CPU。所负责的就是解释和运行最终转换成机器语言的程序内容。

图1-1 程序运行流程示例

CPU和内存是由许多晶体管组成的电子部件,通常称为IC (Integrated Circuit,集成电路)。从功能方面来看,如图1-2所示,CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可用来暂存指令、数据等处理对象,可以将其看作是内存的一种。根据种类的不同,一个CPU内部会有20~100个寄存器。控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。运算器负责运算从内存读入寄存器的数据。时钟负责发出CPU开始计时的时钟信号时钟信号英文叫作clock puzzle。Pentium 2 GHz表示时钟信号的频率为2 GHz(1 GHz=10亿次/秒)。也就是说,时钟信号的频率越高,CPU的运行速度越快。。不过,也有些计算机的时钟位于CPU的外部。

图1-2 CPU的四个构成部分

接下来简单地解释一下内存。通常所说的内存指的是计算机的主存储器(main memory)主存位于计算机机体内部,是负责存储程序、数据等的装置。主存通常使用DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片。DRAM可以对任何地址进行数据的读写操作,但需要保持稳定的电源供给并时常刷新(确保是最新数据),关机后内容将自动清除。关于内存IC,第4章有详细介绍。,简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。主存由可读写的元素构成,每个字节(1字节=8位)都带有一个地址编号。CPU可以通过该地址读取主存中的指令和数据,当然也可以写入数据。但有一点需要注意,主存中存储的指令和数据会随着计算机的关机而自动清除。

了解了CPU的构造后,大家对程序的运行机制的理解是不是也加深了一些?程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。看到“控制”一词时,大家可能会将事情想象得过于复杂,其实所谓的控制就是指数据运算以外的处理(主要是数据输入输出的时机控制)。比如内存和磁盘等媒介的输入输出、键盘和鼠标的输入、显示器和打印机的输出等,这些都是控制的内容。