打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android线程篇(六):CPU内存架构

作者:Android开发者社区
地址:https://www.jianshu.com/p/3d1eb589b48e
声明:本文是 Android开发者社区 原创投稿,转发等请联系原作者授权。

有人会问,为什么要讲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:
int i=i+1
当线程执行这个语句时,会先从主内存中读取i的值,然后复制一份到CPU的高速缓存中,然后CPU执行指令对i进行加1的操作,然后将数据写入高速缓存,最后将最新的i值刷新到主存当重。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
多核的CPU可以运行一个进程下的多个线程吗?
新名词|什么是「电源」程序员?
《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
01、操作系统底层工作原理
Intel核芯显卡微架构浅析
GPU设计原理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服