- 已加入
- 9/12/11
- 訊息
- 1,182
- 互動分數
- 1
- 點數
- 38
Exynos 5 Octa 所使用的新架構,不只消費者,也在開發者間造成熱烈討論。
日前 Samsung 最新發表的 GALAXY S 4,內藏的 Exynos 5 Octa SoC 為首顆使用 big.LITTLE 架構的 4+4 核心處理器,我們曾經報導過三星在 ISSSC 所發表的部分技術內容。當然在 GALAXY S 4 推出之後,Android 開發者社群間也有著相當程度的話題討論,當然也帶來了一部分的誤解。
XDA Developers 上一位 ID 為 AndreiLux 的開發者,對於他所觀察常被提到的 Exynos 5 Octa 誤解,作出相關的澄清與解說。
Exynos 5 Octa,或稱作是 Exynos 5410 使用了由 ARM 所設計出來的 big.LITTLE 架構,Samsung 是 ARM 諸多合作伙伴中最早將此架構用在商業產品中的其中一個;爾後,Renesas 也在 MWC 2013 上推出同樣使用 big.LITTLE 架構的 APE6 SoC。這澄清了最常被誤解的觀念,Exynos Octa 並非由 Samsung 所獨創的嶄新設計,而是由 ARM 所發展出的。
我們先前也報導過,big.LITTLE 的精髓在於使用兩種截然不同特性的處理器 Cortex-A7 與 Cortex-A15 針對不同 Workload 進行切換,以最佳化性能與耗電的平衡,Cortex-A7 性能比起 A9 略低但是能源效率相當的高,Cortex-A15 部分則是性能極強但是在現有的製程之下有著相當程度的耗電。
Qualcomm 當然也在尋求在省電與性能這天平的兩端達到最佳解,不過 Qualcomm 是以類似 Cortex-A15 的設計,但犧牲了部分性能與功能的方式來完成目標。要衡量能源效率與性能,最直接的方法就是參考兩種指標,分別為 IPC (Instructions Per Clock,每時脈下能執行的指令數量),與 Perf/W (Performance per Watt,每瓦性能),若是進行排序的話,則會得到下面的結果:
IPC : A15>> Krait 400 > Krait 300 > Krait 200 > A9 > A7 > A8
Perf/W: A7 >> A9 > Krait > A8 >> A15
根據 Samsung 所公布的 Die Photo,我們可以看到整個 SoC 內的 CPU Core 佈局:
目前官方設定的資料,Cortex-A7 叢集的運作時脈在 200 – 1200MHz 間,Cortex-A15 則是 200 – 1600MHz。布局上,兩種 CPU Core 可以說相當的獨立,這也代表著實際上的運作狀態有著更多的彈性。
目前 Exynos 5 Octa 的設計,就我們所看到的部分,它還是做為一顆四核心處理器來使用。每一顆 Cortex-A15 核心將與一顆 Cortex-A7 核心組成夥伴關係,但從 Die Photo 我們可以看到實際上 A15、A7 Core 並不是從布局的物理層面上來進行配對,實際上進行調配、切換的,是透過 In-Kernel Switcher (IKS) 來達成。IKS 和 Android 常會聽到的 CPU Governor 電源管理策略有些類似,同樣是軟體、驅動層的實作,透過量測工作負載進行切換。但 IKS 不只進行一般 CPU Governor 的頻率控制,而是包含了兩種完全不同耗能特性的 CPU Core 間作切換。
因此我們能夠得出幾種結論:
目前的實作並沒有辦法八顆核心同時 Online,最高同時 Online 運作的核心就只有 4 顆,這也是為什麼我們會堅持以 4+4 核心稱呼它的原因。正如同在重載時會直接啟動核心一樣,低負載的時候,IKS 會直接將不需要的核心配對關閉,因此不需要浪費電力進行 Power-Gating 來控制輕度負載下不需要用到的 CPU 核心對。切換的單位是以核心對來進行,並不是單純的在 Cortex-A7 與 Cortex-A15 叢集間切換,也就是說允許出現第一對使用 Cortex-A15 黑心、兩對使用 Cortex-A7 核心,而第四對完全關閉這樣的狀況。Cortex-A7 或是 Cortex-A15 叢集有各自的頻率切換策略,但是在相同的叢集內的切換策略是相同的,也就是說在 Cortex-A15 和 Cortex-A7 叢集都有核心在工作時,可能會出現運作時脈不同,但絕不會出現同一叢集內使用中的 CPU Core,工作頻率卻是不相同的狀況出現。不過我們前面提到這只是 big.LITTLE 架構的其中一種應用,未來當然會出現 Cortex-A15 和 Cortex-A7 一起協同運算的可能性,我們稱作為 Heterogeneous Multi-Processing (HMP)。
HMP 在實作上會顯得比目前 Octa 的切換更為複雜,因為目前 Linux 核心內的排程器並沒有辦法辨認出 Cortex-A7 和 Cortex-A15 是兩種性能不同的 CPU 來進行處理工作的調配,在核心內是一視同仁,也因此可能會出現可以讓 Cortex-A7 更有效率完成的簡易工作卻配排進 Cortex-A15 內造成無謂的浪費。
不過 Linaro 這間專攻 ARM SoC 軟體開發的非營利公司,已經針對 Linux 3.8 核心,開始進行 HMP 的修改。未來的核心排程器將會追蹤每一條處理程序的內容,以此為依據來更聰明的分配工作給不同能力的處理核心,以榨出所有核心同時進行工作時的運算效能。
所以最後一個結論也不辯自明,big.LITTLE 架構的 Exynos 5 Octa 是一個真八核心設計的 SoC 晶片,但現在礙於軟體實作的設定讓它只能當作 4+4 核心使用。
Source
日前 Samsung 最新發表的 GALAXY S 4,內藏的 Exynos 5 Octa SoC 為首顆使用 big.LITTLE 架構的 4+4 核心處理器,我們曾經報導過三星在 ISSSC 所發表的部分技術內容。當然在 GALAXY S 4 推出之後,Android 開發者社群間也有著相當程度的話題討論,當然也帶來了一部分的誤解。
XDA Developers 上一位 ID 為 AndreiLux 的開發者,對於他所觀察常被提到的 Exynos 5 Octa 誤解,作出相關的澄清與解說。
Exynos 5 Octa,或稱作是 Exynos 5410 使用了由 ARM 所設計出來的 big.LITTLE 架構,Samsung 是 ARM 諸多合作伙伴中最早將此架構用在商業產品中的其中一個;爾後,Renesas 也在 MWC 2013 上推出同樣使用 big.LITTLE 架構的 APE6 SoC。這澄清了最常被誤解的觀念,Exynos Octa 並非由 Samsung 所獨創的嶄新設計,而是由 ARM 所發展出的。
我們先前也報導過,big.LITTLE 的精髓在於使用兩種截然不同特性的處理器 Cortex-A7 與 Cortex-A15 針對不同 Workload 進行切換,以最佳化性能與耗電的平衡,Cortex-A7 性能比起 A9 略低但是能源效率相當的高,Cortex-A15 部分則是性能極強但是在現有的製程之下有著相當程度的耗電。
Qualcomm 當然也在尋求在省電與性能這天平的兩端達到最佳解,不過 Qualcomm 是以類似 Cortex-A15 的設計,但犧牲了部分性能與功能的方式來完成目標。要衡量能源效率與性能,最直接的方法就是參考兩種指標,分別為 IPC (Instructions Per Clock,每時脈下能執行的指令數量),與 Perf/W (Performance per Watt,每瓦性能),若是進行排序的話,則會得到下面的結果:
IPC : A15>> Krait 400 > Krait 300 > Krait 200 > A9 > A7 > A8
Perf/W: A7 >> A9 > Krait > A8 >> A15
根據 Samsung 所公布的 Die Photo,我們可以看到整個 SoC 內的 CPU Core 佈局:
目前官方設定的資料,Cortex-A7 叢集的運作時脈在 200 – 1200MHz 間,Cortex-A15 則是 200 – 1600MHz。布局上,兩種 CPU Core 可以說相當的獨立,這也代表著實際上的運作狀態有著更多的彈性。
目前 Exynos 5 Octa 的設計,就我們所看到的部分,它還是做為一顆四核心處理器來使用。每一顆 Cortex-A15 核心將與一顆 Cortex-A7 核心組成夥伴關係,但從 Die Photo 我們可以看到實際上 A15、A7 Core 並不是從布局的物理層面上來進行配對,實際上進行調配、切換的,是透過 In-Kernel Switcher (IKS) 來達成。IKS 和 Android 常會聽到的 CPU Governor 電源管理策略有些類似,同樣是軟體、驅動層的實作,透過量測工作負載進行切換。但 IKS 不只進行一般 CPU Governor 的頻率控制,而是包含了兩種完全不同耗能特性的 CPU Core 間作切換。
因此我們能夠得出幾種結論:
目前的實作並沒有辦法八顆核心同時 Online,最高同時 Online 運作的核心就只有 4 顆,這也是為什麼我們會堅持以 4+4 核心稱呼它的原因。正如同在重載時會直接啟動核心一樣,低負載的時候,IKS 會直接將不需要的核心配對關閉,因此不需要浪費電力進行 Power-Gating 來控制輕度負載下不需要用到的 CPU 核心對。切換的單位是以核心對來進行,並不是單純的在 Cortex-A7 與 Cortex-A15 叢集間切換,也就是說允許出現第一對使用 Cortex-A15 黑心、兩對使用 Cortex-A7 核心,而第四對完全關閉這樣的狀況。Cortex-A7 或是 Cortex-A15 叢集有各自的頻率切換策略,但是在相同的叢集內的切換策略是相同的,也就是說在 Cortex-A15 和 Cortex-A7 叢集都有核心在工作時,可能會出現運作時脈不同,但絕不會出現同一叢集內使用中的 CPU Core,工作頻率卻是不相同的狀況出現。不過我們前面提到這只是 big.LITTLE 架構的其中一種應用,未來當然會出現 Cortex-A15 和 Cortex-A7 一起協同運算的可能性,我們稱作為 Heterogeneous Multi-Processing (HMP)。
HMP 在實作上會顯得比目前 Octa 的切換更為複雜,因為目前 Linux 核心內的排程器並沒有辦法辨認出 Cortex-A7 和 Cortex-A15 是兩種性能不同的 CPU 來進行處理工作的調配,在核心內是一視同仁,也因此可能會出現可以讓 Cortex-A7 更有效率完成的簡易工作卻配排進 Cortex-A15 內造成無謂的浪費。
不過 Linaro 這間專攻 ARM SoC 軟體開發的非營利公司,已經針對 Linux 3.8 核心,開始進行 HMP 的修改。未來的核心排程器將會追蹤每一條處理程序的內容,以此為依據來更聰明的分配工作給不同能力的處理核心,以榨出所有核心同時進行工作時的運算效能。
所以最後一個結論也不辯自明,big.LITTLE 架構的 Exynos 5 Octa 是一個真八核心設計的 SoC 晶片,但現在礙於軟體實作的設定讓它只能當作 4+4 核心使用。
Source