本文介绍了如何在Intel环形和网状架构上选择引导处理器(BSP)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

第2.13.2节提到仲裁ID用于确定哪个处理器首先发出无操作周期,我已经在多个来源和英特尔手册上看到了这一点.当有系统总线"且之前有"APIC总线"时,引用MP初始化序列的英特尔手册仅针对奔腾4.我的印象是,仅在多个CPU共享同一总线的那些体系结构中才需要仲裁ID.但是现在,使用环形总线体系结构,可以通过检测环形总线上的空插槽并将事务置于其上来完成仲裁,并且该事务在每个周期一站地移动,这意味着不再需要仲裁.

Section 2.13.2 mentions that the arbitration ID is used to determine which processor issues the no-op cycle first and I have seen this on multiple sources and the intel manual. The intel manual that references the MP initialisation sequence only addresses Pentium 4 when when there was a 'system bus' and before that there was originally an 'APIC bus'. I am under the impression that arbitration ID was only needed in those architectures where multiple cpus shared the same bus. But now, with the ring bus architecture, arbitration is done by sensing an empty slot on the ring bus and placing the transaction on it and it moves round at one stop per cycle meaning arbitration is no longer required.

有趣的是,第2.13.2节是有关英特尔ME和PCH的文档的一部分,因此显然是在谈论Nehalem和最近,但要说使用了APIC ArbID,也许实际上只是在谈论Nehalem或Westmere.

What's interesting is Section 2.13.2 is part of a document that speaks about Intel ME and the PCH, so it is obviously speaking about Nehalem and recent but to say that the APIC ArbID is used, perhaps it is indeed only talking about Nehalem or Westmere.

所以我问,如何在环网架构和网状架构上选择BSP?我的想法是,它可以将高速缓存用作RAM,并且如果高速缓存一致性确实在无填充模式下起作用,则它们可以争用互斥体

So I ask, how is the BSP selected on ring and indeed mesh architectures? My thought was that it could use cache as RAM and if cache coherency does function in no fill mode then they could race for a mutex

推荐答案

我认为BSP的核心之一就是硬道理.我认为在您向它们发送IPI之前,它们的其他内核都不会启动,并且它们肯定不会运行试图在缓存中获取互斥锁的代码,以解决这些问题.其他内核可能会处于类似HALT的状态,等待中断.

I assume it's just hard-wired that one of the cores is the BSP. I don't think they other cores even power up until you send them an IPI, and they certainly wouldn't be running code that tries to take a mutex in cache to sort this out. The other cores probably come up in a HALT-like state that waits for an interrupt.

(但是可能像C7之类的深度睡眠C状态,与实际的HALT指令不同,因此,如果OS从不唤醒某些内核,则将唤醒的内核置于睡眠状态可以使整个程序包进入深度状态睡眠状态.)

(But probably a deep sleep C-state like C7 or something, unlike the actual HALT instruction, so if the OS never wakes up some of the cores, putting the woken cores to sleep can let the whole package go into a deep sleep state.)

对于多插槽系统,大概一个插槽是特殊的.

For multi-socket systems, presumably one socket is special somehow.

这篇关于如何在Intel环形和网状架构上选择引导处理器(BSP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-14 02:00