
cpu工作原理的介绍。CPU读取并执行。Java程序,写出来是.java 源代码文件,编译得到.class二进制文件(仍然是在硬盘上),运行程序的时候,jvm会把这个.class 加载到内存中,再进一步翻译成cpu能识别的二进制指令。冯诺依曼体系结构规定:一个程序,指令和依赖的数据,都是要在存储器中保存的,cpu如果要执行,都是要自动的从存储器中读取相应的指令。cpu的寄存器中) cpu上也能存数据,存储数据的模块就叫做寄存器,速度比内存更快,但是存储空间更小,更贵。指令表:是cpu内部写死的一个内容,已经内置在里面了。

CPU被设计出来都会提供对应的指令表,
指令:由八位二进制数字组成,包括操作码和操作数。 cpu一条指令都是更长的,不仅仅是8位,但是大体也是由操作码和操作数构成。

LOAD_A指令。

A寄存器中
14地址这里的数据(00000011 = 3)取出来,放入到A寄存器中。

LOAD_B指令。


B寄存器中。15地址这里的数据(00001110 = 14)取出来,放到B寄存器中。

ADD指令。


add指令后面的操作数不再是内存地址了,而是寄存器的编号。
两个寄存器的id分别是01和00
我们假设01是A寄存器的id,00是B寄存器的id。现在我们通过操作码对应的ADD指令,把这两个寄存器中的数值进行相加,并将结果放入到第二个寄存器(00 —> A)当中。


STORE_A指令。


A寄存器中的数据(17)保存到后面操作数(13对应的单元中)描述的内存中



虽然计算步骤非常繁琐,但是由于拥有强大的cpu,使其一秒钟能运行3GHz - > 30亿轮。
地址:是管理数据的方式,管理和存储数据都是根据地址展开的(eg:宿管根据门牌号进行宿舍的管理)内存核心特性:随机访问是内存的核心特性,它使得宿管具有闪现功能,能够在极短时间内访问到任意房间的数据。之所以数组能够以O(1)复杂度取下标,本质上就是内存提供了随机访问的能力。 cpu中有 一个专门的寄存器,保存接下来要从哪个内存地址来取指令(不同的 cpu 叫法不同),有些操作系统上称为“程序计数器”简称pc。