tech-sjh

2012年3月24日 星期六

Linux 支援 ARM big.LITTLE 架構的方式

摘譯 http://lwn.net/Articles/481055/

這篇文章中提出了兩種支援 ARM 新雙核架構 Coretex-A15 & Cortex-A7 的可能實作方式。
原本 ARM big.LITTLE 期望達到可以使用 Coretex-A15 的高效能與 Coretex-A7 的低功耗,
達到兩種市場通吃的多核 cpu cluster 系統。

Linux scheduler 原本預期的多核系統,都是假設每顆核心的工作效能相等,因此要在 Linux
支援 ARM big.LITTLE 的異質多核,勢必需要改變原有的 Linux kernel,才可能決定何時
將哪一個 kernel task 交由 Coretex-A15 或 Coretex-A7 執行?以享受到 ARM big.LITTLE 的
高效能與省電的雙效果。

針對 Linux 整合 ARM big.LITTLE 架構的可能性,文中提出兩種可實作方式。

第一種是 ARM 的參考實作使用了 Coretex-A15 與 Coretex-A7 的虛擬化功能,讓作業
系統 ARM big.LITTLE 的多核心硬體只有一組 Coretex-A15 cluster (4 核)的虛擬核心。

對於 Linux scheduler 來說因為仍可以安全的套用多核心的硬體都是同等效能與耗電量
,如此 hypervisor 可以在作業系統不知情的狀態下,將整個執行狀態從某一個 cluster
suspend,再搬移到另一個 cluster resume 繼續執行。對作業系統來說差異是會發現速度
的改變(看是在 big Coretex-A15 或是 LITTLE Coretex-A7 執行)。

優點是對已經支援 Coretex-A15 多核的作業系統可無痛轉換,但缺點是 hypervisor
需要多考慮 Coretex-A15 與 Coretex-A7 的 cache 等系統實作細節的差異。另一個衍生
問題是每次 hypervisor 轉換 cluster 的 performance penalty 是否造成另一種資源浪費?

第二種是利用 Linux Kernel 原有的 cpu driver cpufreq 的架構,將不同的 Coretex-A15 與
Coretex-A7 工作頻率排列組合後,當作一個虛擬的 cpu freq 設定。這方法的好處是上
層 user space 控制 kernel cpu 工作頻率的操作介面不用改變。

沒有留言:

張貼留言

版權宣告、免責聲明


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。