CPU工作原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CPU工作原理相关的知识,希望对你有一定的参考价值。

参考技术A

CPU工作原理

该代码的功能是在屏幕上打印"hello os",这里不再过多解释这个代码,这段代码主要是为了后文介绍几个基础概念。

启动以后效果如下:

如何加载操作系统 已经讲到了如何加载我们的操作系统,在加载操作系统是我们提到了主引导程序,上述代码其实就是相当于MBR程序(但这里并不是去引导加载操作系统,只是在屏幕上打印一句话)。

Bios在完成自检等初始化操作以后,会跳转到固定0x7c00处执行主引导程序,因此我们的代码使用vstart=0x7c00来表明我的代码会被初始化在内存的0x7c00处。

因此在我们启动虚拟机后,BIOS完成操作以后会跳转到我们的程序,CPU然后根据我们程序的指令执行,最终在屏幕打印了hello os。

地址是源码文件中各符号偏移文件开头的距离,一般一个文件的默认开始地址为0。

我们的应用程序使用vstart以后,应用程序便被赋予了一个虚拟的起始地址,不管是虚拟地址还是真实地址,只要将这个地址交给了地址总线,地址总线便会去 查找该地址处的内容。因此如果在开发中使用了vstart,必须要保证程序会出现在物理内存的该地址处。

CPU的工作模式分为实模式和保护模式,实模式的最大寻址空间为1M。关于实模式和保护模式在后续我们会讲解。在介绍这两种模式之前,我们还是先讲CPU的工作原理。

CPU的唯一任务就是执行指令 ,在执行指令的过程中,需要CPU的是三个部件共同协作完成:

控制单元 是CPU的核心,只有通过控制单元CPU才能知道自己下一步需要做啥,控制单元大致由三部分组成:

当我们的应用程序(也就是指令)被加载至内存以后, 指令指针寄存器IP 指向内存中下一条待执行的指令,该指令被送上地址总线以后,控制单元会获取指令 然后将其加载到 指令寄存器IR中 ,此时的指令只是一串数字和字母,CPU如果要知道其真正的执行含义必须借助 指令译码器ID 对这串数字和字母按照 指令的格式进行解码分析。IA32(x86)指令格式如下:

前缀 在指令格式中是可选模块, 操作码 对着我们应用程序中的mov,jmp等, 寻址方式 又分为基址寻址、变址寻址等(后续细讲), 操作数类型 记录的是 使用的寄存器。 立即数和偏移量 分别对应我们在寻址过程中用到的是立即数还是偏移量。

存储单元 是指CPU中的L1、L2缓存和寄存器,用于存储指令中用到的数据。

在指令和数据都完善以后,控制单元中的操作控制器会给相关部件发送信号开始执行。

CPU的工作原理

CPU的工作原理

其实CPU主要就是做运算,那么运算的本质其实就是加减乘除。也就是说你在电脑上做得任何操作,对于计算机来说,都是加减乘除。

晶体管的组成

首先CPU有个很重要的电子元件:晶体管,晶体管由半导体组成,大概长下面这样

我们把1称为输入端,3称为输出端,2处称为栅极。这个元件的巧妙之处在于,只有在1和2都通电的情况下,3才会通电。

为什么只有1和2通电3才会通电?
首先,图中绿色部分和白色部分可以认为是绝缘体,图中标号部分才是具有导电性的金属。当只给1通电时,电路只会到达4,此时给2通电时,电流大到一定的层度会把2中的电子析出来,在白色的绝缘体的表面形成一个导电沟道,即5。这样4-6的电路就可以打通,从而使得3处也通电。这个装置仅仅通过电流的通断,就可以决定输出端的输出情况。又什么用呢?

或门电路

利用这个装置,可以制作一个门电路。

在两个晶体管的输入端都接上电源,并且输出端接上小灯泡,然后在中间处接上开关,其中开关关为0,开为1,小灯泡的开为1,关为0。这样,任何一个开关为1的时候小灯泡也就亮,即1。

与门电路

当把上面的电路图改一下,既可以得到一个与门电路。

只有在两个开关都为1的时候,电灯泡才为1.

全加器

通过这些电路,就可以开始做运算了。比如对于加法,电路图是下面这样,其中NAND是异或门,即输入不同的输出1,输入相同的输出0.

当如何一个开关输入为1时,另一个输入为0时,只会有右边的灯泡亮,即这样

不亮的表示为0,亮的表示为1,也就是说上面只有一个输入端为1的时候,输出端恒为01,即可以得出运算。

01 + 00 = 01 = 1
00 + 01 = 01 = 1

那么如果输入端两个都是为1,即01+01,我们需要得到10这个结果,通电图如下

总结

上面这个加法器的运算,应该是最简单的运算了,他只算0+1=1,1+1=2,如果是运算结果大于2的运算,用这个就无法运算了,需要加原件。
其实CPU就是由大量这样的晶体管构成,从而进行复杂的运算。

参考:https://baike.baidu.com/item/%E5%85%A8%E5%8A%A0%E5%99%A8

以上是关于CPU工作原理的主要内容,如果未能解决你的问题,请参考以下文章

CPU的工作原理

CPU工作原理

CPU的工作原理是啥?

CPU工作原理

cpu的工作原理是啥?

cpu的基本结构及其工作原理