本文共 654 字,大约阅读时间需要 2 分钟。
1、计算机的核心组成:CPU、内存
2、CPU核心组成
CPU的组成书上和网上也都有很多介绍,在此只记录跟JAVA相关的核心组成:
PC----> Program Counter 程序计数器 用来记录内存中指令的地址,一次只能计数一个线程的指令地址,线程指令切换的时候会额外存储之前执行的线程及指令。
Registers -> 寄存器 用来暂时存储CPU计算需要用到的数据。
ALU ---> Arithmetic & Logic Unit 是用来执行PC的指令,操作寄存器中的数据。
cache---> 缓存 是缓存数据用,寄存器中的数据优先从缓存查,缓存查不到去内存取。
3、CPU的核和线程
一般一颗CPU是单核单线程,即一个ALU对应一对Registers和PC。 一颗CPU也可以有多核多线程或者多核超线程,比如:
2核2线程 ,即有2组ALU/Registers/PC。如图:
而对于多核超线程的话,比如2核4线程,即有2组ALU,每组ALU对应2对Registers/PC。如图:
4、CPU缓存cache
CPU的缓存有三级,1/2级缓存是核层级隔离的,3级缓存是CPU层级隔离的。见图:
5、CPU数据读取方式
CPU为了提高效率,读取数据会按块读取到缓存中,即按缓存行读取数据。
英特尔CPU的缓存行大小是64字节,也就是每次CPU读取64字节大小的数据块,存入到缓存中。
缓存行数据遵从MESI(modified, exclusive, shared, invalid)缓存一致性协议。
转载地址:http://lqcdi.baihongyu.com/