在非常低的級別談話,核心是如何初始化的?多核處理器如何啓動?
7
A
回答
6
你可以查看Intel specification中的所有血型細節。血淋淋的細節在第8.1章。
下面是一個摘錄:
繼上電或的 斷言的RESET#引腳時, 系統總線上的每個處理器執行硬件 初始化處理器(稱爲 作爲硬件的重置)以及可選的內置自測(BIST) 。 [剪斷]在 這一點上,所採取的行動取決於 在處理器家族:
•P6系列處理器-所有的 系統總線(包括單處理器系統中的單個 處理器)上的處理器 執行所述多個處理器(MP) 初始化協議穿過 APIC總線。該處理器是 通過該協議作爲 引導處理器(BSP)然後 立即開始在 當前代碼段執行 軟件初始化代碼在 在EIP寄存器偏移量開始選擇。
2
有引導多核SOC取決於架構,系統的多種方式 - AMP或SMP等 之一爲雙核SMP系統簡單的方法是,在CPU0復位向量開始(例如00000000指向閃存啓動監視程序存儲在哪裏)。在此期間,其他內核處於WFI(等待中斷)或啓動保持關閉狀態。 CPU0啓動並設置CPU1引導的接地。
進一步的細節 http://www.linux-arm.org/LinuxBootLoader/SMPBoot
freescale.com/files/32bit/doc/app_note/AN3542.pdf
相關問題
- 1. Python多處理啓動比核心更多的進程
- 2. 如何將代碼分散到核心多核處理器
- 3. 有關多核處理器與單核多處理器的說明
- 4. 多處理不啓動
- 5. 多核處理器上的多線程
- 6. 多核處理器的多線程
- 7. Python:多核處理?
- 8. 流多處理器,每個流處理器的核心cuda
- 9. 多核心處理器中的線程
- 10. 多核處理器上的Android錯誤
- 11. 多核處理器之間的區別
- 12. TPL如何在多核處理器中工作
- 13. 如何在多核處理器上進行基準測試
- 14. 如何讓mariadb 10充分利用多核處理器?
- 15. 如何在多個內核/處理器上分割工作
- 16. 在處理器內核上如何執行多個線程
- 17. python多處理,管理器啓動進程spawn循環
- 18. Python多處理池未啓動作業
- 19. 用批處理啓動多個mp3?
- 20. 如何使用織物啓動處理
- 21. 具有單核處理器和多核處理器的單線程代碼的多線程代碼
- 22. 教堂,語言環境和多核多處理器機器
- 23. 多核心處理器上有多少個CS:EIP寄存器?
- 24. 用於多個數據容器的多核處理器
- 25. 啓動多個內核cuda
- 26. 多核處理器核心通信速度
- 27. 確定多核處理器中特定內核的負載
- 28. 創建一個批處理以啓動多個批處理
- 29. 如何在python中使用多處理啓動守護進程
- 30. 如何從批處理文件啓動多個sqlcmd窗口?
我會位數的也知道最初的OS(在硬件級別)如何確定有多少核心/封裝/邏輯處理器 – PhiS 2010-10-30 12:14:22
@PhiS:它只是問道。查看cpuid ... – Bahbar 2010-10-31 08:41:11
@Bahbar如果系統中存在多個物理包,則由於您只收到包級別的信息(包內有多少個核心/日誌處理器),所以@Bahbar CPUID不提供所有必要的信息。 – PhiS 2010-10-31 10:59:12