計算機架構與加速器

多核心處理器(Multicore processor)

多核心處理器在一顆晶片上放進好幾個完整的 CPU(核心),讓它們能真正同時執行不同任務——或同一任務的不同片段。與其讓一位廚師越煮越快,不如請四位廚師。這轉變約在 2005 年發生,並非出於選擇而是迫於無奈:時脈撞上功耗與發熱的牆(Dennard 縮放終結),加核心成了讓每顆晶片持續提供更多效能的唯一辦法。

難處在於軟體必須寫成能平行利用多核心,而多數問題無法完美切分。Amdahl 定律是當頭冷水:若程式中哪怕只有 10% 必須循序執行,再多核心也無法加速超過 10 倍。核心之間還必須一致地共用快取與主記憶體,使某核心寫入一個值時其他核心能看到更新——快取一致性協定與連接各核心的晶片網路,正是如今許多工程難度的所在。

speedup ≤ 1 / (s + (1−s)/N) — Amdahl's law, s = serial fraction, N = cores

現代晶片常把大型高效能核心與小型節能核心混在一起(Arm big.LITTLE、Apple 的 P/E 核心),讓作業系統為每項任務配上合適的核心——需要時拚效能,不需要時省電力。

又稱
multicoremanycore多核心並行處理