程序是怎样跑起来的1.1 CPU的内部结构解析_程序是怎样跑起来的1.1 CPU的内部结构解析试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 程序是怎样跑起来的 > 1.1 CPU的内部结构解析

程序是怎样跑起来的——1.1 CPU的内部结构解析

热身问题 阅读正文前,让我们先回答下面的问题来热热身吧。 问题 1. 程序是什么? 2. 程序是由什么组成的? 3. 什么是机器_语言? 4. 正在运行的程序存储在什么位置? 5. 什么是内存地址? 6. 计算机的构成元件中,负责程序的解释和运行的是哪个? 怎么样?是不是发现有一些问题无法简单地解释清楚呢?下面是笔者的答案和解析,供大家参考。 答案 1. 指示计算机每一步动作的一组指令 2. 指令和数据 3. CPU可以直接识别并使用的语言 4. 内存 5. 内存中,用来表示命令和数据存储位置的数值 6. CPU 解析 1. 一般所说的程序,譬如运动会、音乐会的程序等,指的是“行事的先后次序”。计算机程序也是一样的道理。 2. 程序是指令和数据的组合体。例如,C语言“printf ("你好");”这个简单的程序中,printf是指令,"你好"是数据。 3. CPU能够直接识别和执行的只有机器语言。使用C、Java等语言编写的程序,最后都会转化成机器语言。 4. 硬盘和磁盘等媒介上保存的程序被复制到内存后才能运行。 5. 内存中保存命令和数据的场所,通过地址来标记和指定。地址由整数值表示。 6. 计算机的构成元件中,根据程序的指令来进行数据运算,并控制整个计算机的设备称作CPU。大家熟知的奔腾(Pentium)就是CPU的一种。 本章重点 首先让我们来看一下解释和运行程序的CPU。CPU是英文Central Processing Unit(中央处理器)的缩写,相当于计算机的大脑,它的内部由数百万至数亿个晶体管构成,这些都是大家所熟知的。不过,对CPU的了解如果只限于此的话,对编程是没有任何帮助的。程序员还需要理解CPU是如何运行的,特别是要弄清楚负责保存指令和数据的寄存器的机制。了解了寄存器,也就自然而然地理解了程序的运行机制。可能有很多读者会认为CPU的运行机制比较难,其实它非常简单。所以,不妨放松心情,跟随笔者一起往下阅读吧。 1.1 CPU的内部结构解析 图1-1展示了程序运行的一般流程。可以说了解程序的运行流程是掌握程序运行机制的基础和前提。详细内容会在接下来的章节中逐渐展开,这里主要是希望大家先有个大致印象。在这一流程中, CPU ①所负责的就是解释和运行最终转换成机器语言的程序内容。 CPU和内存是由许多晶体管组成的电子部件,通常称为IC(Integrated Circuit,集成电路)。从功能方面来看,如图1-2所示,CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。 寄存器_可用来暂存指令、数据等处理对象,可以将其看作是内存的一种。根据种类的不同,一个CPU内部会有20~100个寄存器。 控制器_负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。 运算器_负责运算从内存读入寄存器的数据。 时钟_负责发出CPU开始计时的时钟信号②。不过,也有些计算机的时钟位于CPU的外部。 ① CPU是用来表示计算机内部元件功能的术语。另一方面,奔腾等半导体芯片,通常称为微处理器。不过,由于大部分计算机通常只有一个微处理器来承担CPU的功能,所以本章不对此进行区分,统一使用CPU这一称呼。CPU由具有ON/OFF开关功能的晶体管构成。另外,有的CPU在一个集成电路中集成了两个CPU芯片,我们称之为双核(dual core)CPU。 ② 时钟信号英文叫作clock puzzle。Pentium 2 GHz表示时钟信号的频率为2 GHz(1 GHz = 10亿次/秒)。也就是说,时钟信号的频率越高,CPU的运行速度越快。 接下来简单地解释一下内存。通常所说的内存指的是计算机的主存储器(main memory)①,简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。主存由可读写的元素构成,每个字节(1字节 = 8位 )都带有一个地址编号。CPU可以通过该地址读取主存中的指令和数据,当然也可以写入数据。但有一点需要注意,主存中存储的指令和数据会随着计算机的关机而自动清除。 ① 主存位于计算机机体内部,是负责存储程序、数据等的装置。主存通常使用DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片。DRAM可以对任何地址进行数据的读写操作,但需要保持稳定的电源供给并时常刷新(确保是最新数据),关机后内容将自动清除。关于内存IC,第4章有详细介绍。 了解了CPU的构造后,大家对程序的运行机制的理解是不是也加深了一些?程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。看到“控制”一词时,大家可能会将事情想象得过于复杂,其实所谓的控制就是指数据运算以外的处理(主要是数据输入输出的时机控制)。比如内存和磁盘等媒介的输入输出、键盘和鼠标的输入、显示器和打印机的输出等,这些都是控制的内容。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《程序是怎样跑起来的》其他试读目录

• 1.1 CPU的内部结构解析 [当前]
• 1.2 CPU是寄存器的集合体
• 1.3 决定程序流程的程序计数器
• 1.4 条件分支和循环机制
• 1.5 函数的调用机制
• 1.6 通过地址和索引实现数组
• 1.7 CPU的处理其实很简单