为了账号安全,请及时绑定邮箱和手机立即绑定

在具有HT的一个Core上执行的线程之间的数据交换将使用什么?

/ 猿问

在具有HT的一个Core上执行的线程之间的数据交换将使用什么?

超线程技术是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位-每个地址的虚拟和物理地址相同

http://img1.sycdn.imooc.com/5de75eb7000193bb04070392.jpg

查看完整描述

3 回答

?
明月笑刀无情

现在,我对CPU架构有了更多的了解,我只是重新编写了很多这个答案(特别是,存储退役时不会提交给L1 ,而是在存储缓冲区到达时才提交给L1 。) ,我们可以排除超线程之间的存储转发,因为存储缓冲区是静态分区的。另外,我认为我做得更好,解释了为什么可以共享L1d,即VIPT高速缓存的特殊情况,即页面偏移量以下的索引位(设置选择,而不是选路,注释中的另一个错误),因此它像被物理索引一样工作。

查看完整回答
反对 2019-12-04
  • 3 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信