分类列表
新闻分类
如何定义虚拟空间

当英特尔线程处理器成为Linux时,Linux发生了一个问题可用。启东SMT贴片加工用户堆栈分配在64kB边界上,这意味着它们从处理器的8kB(2kB x 4路)数据缓存中的同一位置开始。应用程序使用少量堆栈,由于限制,导致缓存冲突缓存的关联性。对于单处理器上下文切换,这不是问题,因为与调度相比,上下文切换后重新填充缓存的开销小量子。使用SMT时,连续争用地增加了缓存未命中率。叠放在Linux的较高版本中,通过偏移每个进程的起始地址出现别名堆栈以增加同时线程访问高速缓存的不相交区域的可能性。英特尔奔腾4处理器对其缓存使用部分虚拟标记方案。访问权限来自不同线程的映射到相同的局部标签将导致争用。减少英特尔将每个逻辑处理器的上下文标识符位引入Prescott处理器,并保持带有部分标签[Boggs04]。这些位的设置或取决于逻辑处理器共享一个公共地址空间;如果它们相同,则位相同,如果不同,则位不同。在不同地址空间中执行的线程具有不同的部分标记,并且

因此不要以这种方式竞争Lo等人在有关SMT处理器上数据库系统性能的工作中描述了一些为了地使用SMT处理器考虑的缓存问题[Lo98]。的论文描述了缓存干扰,数据共享和页面放置方案。构造性干扰是线程可以从共享缓存内容中受益的地方。这是当的多线程工作负载在其中运行代码和数据的情况下,有可能看到可能会被分享。在多程序任务集的情况下,这种影响可能存在的程度较小共享通用库代码。与多个物理处理器相比,SMT有一个额外的。如果一个线程正在写入高速缓存行,其他线程可以读取或写入同一行而不会导致无效性损失在传统的多处理器系统中会发生这种情况。

启东SMT贴片加工


分享到