超线程技术是Intel引入的一种同时多线程技术的形式。
这些资源包括执行引擎,缓存和系统总线接口。资源共享使两个逻辑处理器可以更有效地相互协作,并且使停滞的逻辑处理器可以从另一个逻辑处理器借用资源。
在具有超线程功能的英特尔CPU中,一个CPU内核(带有多个ALU)可以在同一时钟执行来自2个线程的指令。两个线程共享:存储缓冲区,缓存L1 / L2和系统总线。
但是,如果两个线程在一个Core上同时执行,线程1存储原子值,线程2加载该值,那么该交换将使用什么:共享存储缓冲区,共享缓存L1 / L2或通常的缓存L3?
如果两个线程来自同一进程(相同的虚拟地址空间),并且来自两个不同进程(不同的虚拟地址空间),将会发生什么?
Sandy Bridge Intel CPU-缓存L1:
32 KB-缓存大小
64 B-缓存行大小
512行(512 = 32 KB / 64 B)
8路
64-路数集(64 = 512行/ 8路)
虚拟地址(索引)的6位[11:6]-定义当前设置的编号(这是标签)
4 K-每个相同(虚拟地址/ 4 K)争夺同一组(32 KB / 8路)
低12位-对确定当前设置的数字有效
4 KB-标准页面大小
低12位-每个地址的虚拟和物理地址相同
慕码人2483693
明月笑刀无情