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
。