【发布时间】:2015-03-04 01:07:50
【问题描述】:
超线程是否允许使用 L1-cache 在两个线程之间交换数据,这两个线程同时在单个物理核心上执行,但在两个虚拟核心上执行?
前提是两者属于同一个进程,即在同一个地址空间中。
第 85 页 (2-55) - 英特尔® 64 和 IA-32 架构优化参考手册:http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf
2.5.9 英特尔® 微架构代号 Nehalem 中的超线程技术支持
...
更深层次的缓冲和增强的资源共享/分区策略:
用于 HT 操作的复制资源:寄存器状态、重命名的返回堆栈缓冲区、大页面 ITLB。
用于 HT 操作的分区资源:加载缓冲区、存储缓冲区、重新排序缓冲区、小页面 ITLB 在两个逻辑处理器之间静态分配。
HT 操作期间的竞争共享资源:保留站、缓存层次结构、填充缓冲区、DTLB0 和 STLB。
在 HT 操作期间交替:前端操作通常在两个逻辑处理器之间交替以确保公平。
HT 不知道的资源:执行单元。
【问题讨论】:
-
与stackoverflow.com/questions/32979067/… 重复,其答案相似。
标签: multithreading x86 x86-64 smt hyperthreading