有人会问,为什么要讲CPU的内存架构呢?代码的运行他离不开CUP,理解好CUP内存架构,才能明白Java虚拟机是如何和CUP联合工作的。So,这篇文章给大家粗浅的来讲解一下CPU的内存架构,如有不当之处,还忘各位读者指正…… 来一张,现在大多数计算机硬件架构的简图: 现在的计算机,基本都是多个CPU,并且有些CPU还是多核的,因此你的Java程序中,每个CUP执行一个线程,并且俩个或者俩个以上的CPU在同时执行任务,这种情况就是我么所说的:并发。 什么是寄存器,点击访问,百度百科:寄存器 每个CPU都有自己的寄存器,CPU在寄存器上执行操作的速度,远远大于在主内存中。 每个CPU还有自己的高速缓存层,CPU访问缓存层的速度快于访问主存的速度,但比访问内部寄存器的速度还要慢一点。 一个计算机还包含一个主存。所有的CPU都可以访问主存。主存通常比CPU中的缓存大得多。 通常情况下,当CPU需要读取主内存的时候,他会将部分数据读到,CPU缓存中,甚至可以将CPU缓存中的部分数据读到寄存器中,然后在寄存器中操作,操作完成后,需要将数据写入主存中的时候,先将数据刷新至CPU缓存中,然后在某个时间点将数据刷新到主存中。 当CPU需要在缓存层存放一些东西的时候,存放在缓存中的内容通常会被刷新回主存。CPU缓存可以在某一时刻将数据局部写到它的内存中,和在某一时刻局部刷新它的内存。它不会再某一时刻读/写整个缓存。 For example:
|
|
来自: codingSmart > 《待分类》