一、内存模型

主要内容

1、计算机的主要组成部分;

2、CPU由那几部分组成;

3、高速缓存存在的意义及数据流转流程;

4、为什么JVM创建线程、销毁线程是重型操作;

一、冯诺依曼计算机模型

现代的计算机模型都是-冯诺依曼计算机模型

冯诺依曼计算机模型:计算机在运行时,先从内存中取出第一条指令,再通过控制器编译,按指令的要求从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来再取第二条指令,在控制器的指挥下完成规定的操作,依次进行下去直到遇到停止指令。

程序和数据一样存储,按程序编排的顺序,一步一步的取出指令,自动的完成指令规定的操作是计算机最基本的工作原理。这是冯.诺依曼于1945年提出的。

计算机五大核心部分:

1、控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解析,根据其要求进行控制。调度程序、数据、内存,协调计算机各部分工作及外设访问等。

2、运算器:对数据进行各种算数运算和逻辑运算,即对数据进行加工处理。

3、存储器:存储程序、数据和各种信息、命令等信息,并在需要时提供这些信息。

4、输入设备:与输出设备统称为外部设备,简称外设。是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

5、输出设备:把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

具体模型如下图

而CPU内部主要有控制单元、运算单元和数据单元。

存储单元包含CPU片内缓存Cache和寄存器组,是CPU中暂时存放数据的地方,里面存放着等待处理或已经处理过的数据。CPU访问寄存器的效率要比访问内存的效率高很多,寄存器是CPU内的元件,寄存器具有很高的读写速度,所以在寄存器之间的数据传递传送速度非常快,采用寄存器,可以减少CPU访问内存的次数,从而大大提高CPU的工作效率。寄存器组分别专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据,而通用寄存器的用途广泛并可以由程序员规定其用途。

为提升CPU执行效率,减少CPU与内存的交互次数(交互影响CPU效率),一般会在CPU上集成多级缓存架构,常见的为三级缓存架构。

L1 Cache:分为数据缓存和指令缓存,逻辑核独占;

L2 Cache:物理核独占,逻辑核共享;

L3 Cache:所有物理核共享。

缓存是由最小存储区块-缓存行(cacheline)组成,缓存行的大小通常为64byte。

比如你L1的缓存大小为256kb,每个缓存行大小为64byte,那么缓存行数量为256*1024/64个cacheline。

CPU是怎么读取一个数据的呢?比如数据X

如果从寄存器中,可以直接读取;

如果是在L1缓存中,则需先锁住对应的cache行,取值,再解锁;

如果在L2中,则先从L1中查,没有再到L2中查,锁住对应的缓存行,取值并复制到L1中,再执行读L1的过程,如果在L3中,逻辑与L2一致;

如果在主内存中,则需通知内存控制器占用总线带宽,通知内存加锁,发起内存读请求,等待回应并将数据保存在L3中,如果没有L3则保存在L2中,再从L1到内存中,之后解除总线锁定。

高速缓存存在的意义

CPU的发展非常快,其执行效率也是非常高的,然后告诉的CPU需要的数据,为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存,已解决I/O速度与CPU运算速度不匹配的问题。

带有高速缓存的CPU执行计算的流程如下:

1、程序和数据加载到主内存中;

2、执行和数据加载到高速缓存中;

3、CPU执行指令,将运算结果写入高速缓存;

4、缓存中的数据写回主内存。

CPU的运行级别

CPU有四个运行级别:ring0、ring1、ring2、ring3,但linux和windows都只用了ring0、ring3两个运行级别。

操作系统内部程序指令通常运行在ring0,操作系统外的第三方程序运行是ring3级别,第三方程序如果要调用操作系统函数,由于运行级别不够,CPU需要切换运行状态,由ring3级别切换到ring0级别,然后执行函数,这也是为什么JVM创建线程、唤醒线程是重型操作了,因为需要切换CPU运行状态。

JVM创建线程的主要流程如下:

1、CPU从ring3状态切换到ring0,创建线程;

2、创建完毕,从ring0切换回ring3;

3、执行JVM程序;

4、执行完毕,再切换回ring0销毁线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值