计算机组成原理

164 阅读3分钟

一.对程序员来说CPU是什么

本章重点: 首先让我们来看一下解释和运行程序的CPU。CPU是英文 Central Processing Unit (中央处理器)的缩写,相当于计算机的大脑,它的内部由数百万至数亿个晶体管构成,这些都是大家所熟知的。不过,对CPU的了解如果只限于此的话,对编程是没有任何帮助的。程序员还需要理解CPU是如何运行的,特别是要弄清楚负责保存指令和数据的寄存器的机制。了解了寄存器,也就自然而然地理解了程序的运行机制。可能有很多读者会认为CPU的运行机制比较难,其实它非常简单。所以,不放放松心情,跟随笔者一起往下阅读吧。

1.1CPU的内部结构解析

CPU:中央处理器,计算机的大脑 CPU的内部由寄存器,控制器,运算器,时钟四部分构成,各部分之间由电流信号相互连通。那么,我们接下来了解一下这四个部分: 寄存器:暂存指令、数据等处理对象,可将其看成内存的一种,一个CPU内部会有20-100个寄存器。 控制器:负责把内存上的指令、数据等读入寄存器。并根据指令结果控制整个计算机。 运算器:负责运算从内存读入寄存器的数据。 时钟:负责发出CPU开始计时的时钟信号。时钟信号频率越高,CPU的运行速度越快。不过,有些计算机的时钟位于CPU外部。

1.png

了解完CPU的构造之后,那CPU到底是如何运行的? 接下来,我们一起来看一下程序流程图:

2.png 看完这个流程图,你对程序运行是不是有深一点了呢?

接下来,我们简单介绍一下内存。通常所说的的内存指的是计算机的主存储器(main memory),简称主存。 内存通过控制芯片与CPU相连,主要负责存储指令和数据。主存由可读写元素构成,每个字节都带有地址编号(1字节=8位)。但有一点需要注意,主存中存储的指令和数据会随着计算机的关机而自动清除。

了解了CPU构造后,大家对程序的运行机制的理解是不是也加深了一些?程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。(这段建议结合上面两个图来理解)

1.2CPU是寄存器的集合体

CPU的四个构成部分中,程序员只需了解寄存器即可,其余三个都不用太过关注。那么,为什么要了解寄存器呢?这是因为程序是把寄存器作为对象来描述的。而机器语言级别的程序是通过寄存器来处理的。也就是说,在程序员看来“CPU是寄存器的集合体”。至于控制器、运算器和时钟,程序员只需要知道CPU中还有这几部分就够了。同时,机器语言级别的程序是通过寄存器来处理的。

使用高级语言(例如 C)编写的程序会在编译后转化成机器语言,然后在通过CPU内部的寄存器来处理。

寄存器中存储的内容既可以是指令也可以是数据。数据分为“用于运算的数值”和“表示内存地址的数值”。但在程序员眼中,CPU是具有各种功能的寄存器的集合体。

寄存器的主要种类和功能:

3.png