趣谈Linux操作系统(4)——X86系统

背景

对于一台计算机来说, CPU、内存是重要的模块,以一个简单的程序流程图来说明各模块的工作方式:


CPU的工作模块

CPU是计算机的大脑,主要的工作伙伴是内存,工作模式为从内存中提取指令并执行它。此过程可分为三个关键阶段:提取、解码和执行。即CPU从内存中提取指令之后,解码该指令的实际内容,然后再由CPU的相关部分执行该指令。

PS.CPU执行完某程序包含的所有指令后,则可理解为程序执行完成。

CPU主要由两部分构成:控制单元和算术逻辑单元(ALU),其中控制单元主要负责从内存中提取指令并解码执行,算术逻辑单元(ALU)主要负责处理算数和逻辑运算。

从功能来说,CPU的内部由寄存器、控制器、运算器和时钟四部分组成,各部分之间是通过电信号连通,各模块功能分别如下:

寄存器:是中央处理器内的组成部分。它们可用来暂存指令、数据和地址,可看作是内存的一种。

控制器:负责把内存上的指令、数据读入寄存器,并根据指令的结果控制计算机

运算器:负责运算从内存中读入寄存器的数据

时钟:负责发出CPU开始计时的时钟信号

内存的工作模块

内存是存放CPU中的运算数据,以及与硬盘等外部存储设备交换的数据。

CPU与内存间的相互通信

内存通过控制芯片与CPU进行相连,由可读写的元素构成,每个字节都带有一个地址编号。CPU通过地址从内存中读取数据和指令,也可根据地址写入数据。

PS.当计算机关机时,内存中的指令和数据也会被清除。

计算器语言

计算器语言一般分为两种:低级语言(机器语言,汇编语言)和高级语言。

C/JAVA/C++等高级语言编写的程序,需经过编译转换成机器语言后才能运行。

汇编语言经过汇编器才能转换成机器语言。

注:计算机是由二进制构成的,只能明白的语言就是二进制,即机器语言。故所有编程语言想要在计算机内运行的话都需转化成机器语言。

CPU的详解——寄存器

一个CPU下包含多个寄存器,分别包括程序计数器/标志寄存器/累加寄存器/指令寄存器/栈寄存器/基址寄存器/变址寄存器/通用寄存器。

程序计数器:

CPU指令执行过程,分为5个阶段:取指令、指令编码、执行指令、访存取数、结果写回。

取指令阶段是将内存中的指令读取到CPU中寄存器的过程,程序寄存器用于存储下一条指令在的地址

指令编码阶段,在取指令完成后,立马进入指令译码阶段,在指令译码阶段,指令译码器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容