C Exynos5410 task switching

tp 2013.08.07 10:56 조회 수 : 5388

주말에 스터디 쉬면 5420 기사를 보다가 커널분석시 참고해야 할 몇가지 사실이 있어 정리합니다.

ARM 커널 스터디 10차는 세 팀 모두 target을 exynos 5410으로 잡고 스터디 중이시니 참고하세요.

(exynos5410을 선정한 이유가 대부분 big.LITTLE 프로세싱 때문이므로 이와 관련 부분만 정리합니다.)


일단 결론은 아래와 같습니다.

1. exynos5410은 IKS를 지원하지 않을 것이다.

2. IKS(Core migration) 관련 코드는 3.11 또는 3.12에서 지원 예정이라하나 현재 3.11rc에는 포함되어 있지 않다.

IKS 분석을 위해서는 linaro에서 source를 pull할 필요가 있다.

3. GTS(HMP) 또한 linaro 사이트 참고 필요


<상세내용>

1. exynos5410은 IKS를 지원하지 않을 것이다.

현재 exynos5410은 CCI-400의 bug로 cluster간 HW coherence를 보장하지 못하여 CCI를 disable하여 사용한다.

"In the case of the 5410, the bus was functional but coherency was broken and manually disabled on the Galaxy S 4"

ref: http://www.anandtech.com/show/7164/samsung-exynos-5-octa-5420-switches-back-to-arm-gpu

따라서 A15와 A7의 L2 cache의 memory coherence를 맞추기 위해 core migration이 발생할 때 source cluster의 경우 해당 task의 data를 모두 main memory로 clean시키고 target cluster에서 해당 task관련 memory를 invalidate하여야한다.

이말의 의미는 core migration이 빈번하게 발생하는 경우 불필요한 clean & invalidation으로 성능이 열화되기 쉬우므로 IKS의 지원이 어렵다.

현재의 cluster migration의 경우 상대적으로 드물게 발생한다. 그러나 exynos5420의 경우 이같은 coherence가 필요한 경우에만 HW에 의해 자동으로 이루어지므로 성능 향상이 크다.

(삼성 측에 따르면 core 성능이 20%향상되었다고 발표. clock은 1.6GHz->1.8GHz로 13%정도 향상, 이외에 CCI 수정, core revision 등에 의해 나머지 성능 향상(core revision은 성능보다는 bug와 power 효율 측면이 주된 것임을 감안할 때 CCI에 의한 성능 향상 이득이 5% 이상을 될 것으로 추측됨)


2&3. IKS & GTS

일단 Cluster Migration, IKS, GTS의 개념을 모르시는 분은 ARM tech symposium자료를 찾아보세요.

간단히 얘기 하면

cpu busy(computation intensive)한 경우와 CPU Idle 한 경우에 대해

Cluster migration은 big core cluster와 little core cluster를 통째로 switching (cluster는 MPCore단위로 보통 2 또는 4 core)

  즉 exynos 5410의 경우 동작이 big core 4개 이거나 little core 4개로만 동작

IKS(Core migration)은  cluster migration의 fine granularity version으로 big+little을 virtual core 1개로 보고 virtual core내에서 big <-> little간 전환은 자유롭게 가능

  즉 4big, 4little 뿐만 아니라 1big+3little 같은 조합도 가능

GTS(HMP)는 big과 little을 모두 가용 자원으로 사용가능

  즉 4big+4little와 같이 모든 코어를 동시에 사용가능

  참고로 IKS의 경우 big little core의 수가 같아야 하지만 HMP의 경우 4big+1little 같이 비대칭 big.LITTLE도 지원 가능.


IKS GTS 참고: http://www.linaro.org/linaro-blog/2013/07/10/big-little-software-update/


3.11 또는 3.12에서 IKS 지원예정 ref: http://en.wikipedia.org/wiki/Big.LITTLE

linaro iks, hmp 관련 reference

https://wiki.linaro.org/projects/big.LITTLE.MP

참고로 리나로 site에서는 iks와 gts를 각각 big.LITTLE switcher, big.LITTLE MP로 지칭


IKS 관련 커널 코드

(관련 link)

http://www.linaro.org/linaro-blog/2013/05/02/the-linaro-iks-code-now-publicly-available/

(source description)

https://wiki.linaro.org/projects/big.LITTLE.MP/Big.Little.Switcher/Docs/in-kernel-code


HMP 관련 커널 코드

https://wiki.linaro.org/WorkingGroups/PowerManagement/Process/bigLittleMPTree



ps1: IKS나 HMP를 시험하시고 싶은 분들은 기다리셨다가 5420을 구입하셔야 합니다.

ps2: big.LITTLE때문에 5410을 선정했는데 big.LITTLE관련 스케쥴러는 linaro 소스코드를 따로 분석해야할 것 같네요.

ps3: 지금은 거의 상관이 없으나 나중에 스케줄러나 cpu 설정 (cpufreq등) 을 분석할 때는 target을 5420으로 IKS 관련 코드를 분석하는 것에 대해 여론 수렴이 필요해보입니다.


번호 제목 글쓴이 날짜 조회 수
공지 [공지] 커널 스터디 관련 Q&A 게시판 입니다. [5] woos 2016.04.09 2194
76 이클립스에서 ARM Linux 개발 툴 사용하기(DS-5) [1] file 와사 2013.08.15 12870
75 TTBCR과 TTBR 정리 [9] 신C 2013.07.17 9442
74 GNU global 추천합니다. (설치방법 추가) [8] 리누즈박 2013.07.02 6544
73 github에 ssh key 등록하기 [2] 리누즈박 2013.06.30 5723
72 [커널 14차C] 1주차(20170513) 스터디 로그 - 스터디 장소 관련 내용 추가 [3] 목태양 2017.05.14 5592
» Exynos5410 task switching [7] tp 2013.08.07 5388
70 리눅스 커널 강의 추천 [8] 민준홍 2016.05.01 3960
69 ARM Tech Symposium 2013 후기 [5] tp 2013.11.20 3793
68 Booting ARM Linux (한글) [6] 리누즈박 2013.08.09 3716
67 EXYNOS5440 Config 파일 만들기. [5] 신C 2013.06.30 3472
66 zImage 수행순서 [10] file 조성진 2013.07.01 3348
65 vmlinux의 .got 섹션 [4] 쿨쿨 2013.07.29 2664
64 arm tech symposium 2013 seoul, 19 Nov. (화) [1] tp 2013.11.09 2459
63 head.S에서 page table 초기화 후 2M영역에 다시 설정하는 이유? [5] 신C 2013.07.07 2388
62 오늘 말하고 싶었던 것이 있었는데.. 타이밍을 놓쳤네요. [9] 신C 2013.06.30 2118
61 [커널 14차C] 2주차(20170520) 스터디 로그 [6] 목태양 2017.05.21 1988
60 C조 의견 정리, 오픈채팅방 개설 및 30일 오프라인모임 참석자 조사 [51] 뒷북 2016.04.26 1025
59 [커널 14차C] 3주차(20170527) 스터디 로그 [7] 목태양 2017.05.28 780
58 C조 교재 및 장소 선정 의견접수 [40] 뒷북 2016.04.24 605
57 C조 5월7일 오프라인모임 참석자 조사 [39] file 뒷북 2016.04.30 592
XE Login