简述CPU,内存,硬盘,指令之间的关系

版权声明:水平有限,如有补充或更正,望大家评论指正 https://blog.csdn.net/yangfengjueqi/article/details/82841794

几年前记录在云笔记上的东西,整理过来。

1、基础介绍

  • CPU:中央处理器(Central Processing Unit),是用来表示计算机内部元件功能的术语,CPU内部由数百万至数亿个晶体管构成。

在程序运行时,CPU负责解析和运行程序内容。

从功能方面来看,CPU内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可以用来暂存指令、数据等处理对象;控制器负责把内存中的指令和数据读入寄存器,并且根据指令的执行结果来控制整个计算机;运算器负责运算从内存读入寄存器的数据;时钟负责发出CPU开始计时的时钟信号。

  • 内存:内存实际上是一种名为内存IC(Integrated Circuit)的电子元件。内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚(IC的引脚),通过为其指定地址,来进行数据的读写。
  • 硬盘:硬盘是计算机主要的存储媒介之一,由一个或多个铝制或者玻璃制的碟片组成,瓷片外覆盖有铁磁性材料。
  • 指令:即计算机指令,是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。计算机程序由指令和数据组成。

2、相互关系

  • 内存和CPU的关系:通常所说的内存指的是计算机的主存储器(main memory ),简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。CPU通过内部程序计数器来指定内存地址,然后才能读出程序。
  • 内存和硬盘的关系:内存和硬盘都具有存储命令和数据的功能,在硬盘中保存的原始程序是无法直接运行的,必须要加载到内存后才能运行。
  • 指令和硬盘的关系:指令作为程序的组成部分,存储在硬盘上对应的可执行文件中。
  • 指令和内存的关系:程序运行时,会在内存中生成程序副本,指令被加载进内存。
  • 指令和CPU的关系:CPU的控制器将内存中的指令读入CPU的寄存器中。

3、通过Windows环境中HelloWord程序来理解CPU、内存、硬盘、指令之间的关系

首先,程序员利用计算机高级语言编写了helloword程序,称为源代码,存放源代码的文件称为源文件;

其次,通过编译器转换源代码,生成本地文件(helloword.obj文件,即目标文件,此时的本地文件尚不能被运行,还需通过第三步转换成可执行文件);

然后,通过链接器的链接操作,将第二步生成的本地文件通过链接生成可执行的helloword.exe文件,EXE文件作为单独文件存储在硬盘上,称为本地代码(如图8-4,本地代码是数值的罗列,每个数值表示一个命令或数据,CPU种类不同,本地代码的类型也不同)。

扫描二维码关注公众号,回复: 3679830 查看本文章

然后,当用户双击EXE文件时,计算机就会把EXE文件的内容加载到内存中运行。

程序被加载到内存后,还会额外生成两个组,即栈和堆。栈是用来存储函数内部临时使用的变量(局部变量),以及函数调用时所用的参数的内存区域。堆是用来存储程序运行时的任意数据及对象的内存区域。栈和堆需要的内存空间是在EXE文件加载到内存后并且程序开始运行时得到分配的。

内存中的程序是由用于变量的内存空间、用于函数的内存空间、用于栈的内存空间、用于堆的内存空间这4部分够成的。

最后,程序运行过程中,CPU中的控制器会将内存中的程序指令和数据读入CPU的寄存器,运算器对寄存器中的数据进行运算,控制器根据运算器的运算结果控制计算机的下一步操作。

猜你喜欢

转载自blog.csdn.net/yangfengjueqi/article/details/82841794
今日推荐