程序运行硬件流程学习记录

本人记性太差,这篇博客主要是作为学习笔记,所以没有什么条理,大伙愿意看就看吧,如果有错误也万望指正。
在这里插入图片描述

运行一个程序主要依赖两个部分,CPU和内存,CUP负责计算,内存负责程序的存储。cpu内部也有存储单元,存储当前运行线程的各种数据。cpu内部的读写速度非常快,与内存相差了大约一百倍,为了提升两者间的数据交换效率,使用了缓存。
在这里插入图片描述
一级缓存,二级缓存在cpu内部三级缓存在主板上。一颗cpu对应一个三级缓存,cpu内的每一个核心都有自己的一级,二级缓存。多核心共用一个三级缓存,主板上有几颗CPU就有几个三级缓存。
在这里插入图片描述
多核心cpu

一个cpu核心主要由控制单元,运算单元与存储单元组成,一般来说cpu有几颗核心就能同时运行几个线程,存储单元也就是L1,L2(一级缓存,二级缓存)。当cpu切换线程的时候需要将当前运行的线程的数据移出然后从L3读入新的线程数据。
在这里插入图片描述
现在cpu有一种超线程技术,就是n核心2*n线程,之所以翻了两倍是在同一颗核心里面放了两套存储单元,这样在线程切换的时候避免了与内存的交互,大大提升了速度。

CPU在读数据的时候是一块一块读的,CPU的GPRS(通用存储器)指的是CPU一次性可以处理的数据的位数,也就是一次性读取的数据最大宽度,在这个基础上操作系统分为了32位和64位,cpu里面存的是物理寻找地址,232是4 294 967 296b也就是 4gb,就是说32位cpu最大支持4GB的内存,超过的话就找不到了,而64位也就是264,2的64次方字节=17179869184G=16777216T,不知道有生之年计算机发展内存能不能到达这个瓶颈在这里插入图片描述