본문 바로가기
스마트폰/삼성 SAMSUNG

엑시노스5410 하드웨어 이슈 탐구.

by gamma0burst 2013. 10. 14.
반응형

제목은 거창한데 대단한건 아니고요......
현재 엑시노스5410에 제기되고 있는 하드웨어적 문제가 있는지, 있다면 무엇인지, 그렇다면 그것이 빅리틀 모델 지원에 어떤 영향을 끼치는지 생각해보려고 합니다.


(1) 정말 하드웨어에 문제가 있는가?
몇 가지 상황설정이 가능합니다.
1. 원래 없었다.
2. 초기에 잠시 있었으나 금방 해결되었다.
3. 초기에 있었고 많은 시간이 지나서 비교적 최근에 해결되었다.
4. 여전히 존재한다.

저는 3번 상황을 가정하고 이야기를 진행하겠습니다.
다른 상황의 가능성도 충분히 있다는건 염두해두셨으면 합니다.


(2) 어디가 문제인가?
먼저 현재 상황을 정리해보겠습니다.
1. IKS를 시연했음에도 실제 출시된 제품은 클러스터 마이그레이션.
2. CCI-400 의 문제로 Disable되어서 나왔다는 얘기가 나왔으나 삼성측은 부정.
3. 파워, 설계 문제로 인한 발열 이슈가 있다고 언론에서 얘기함.


(CCI-400 문제를 삼성은 부정.)

우선 2번부터 따져볼까요.
2. CCI-400 의 문제로 Disable되어서 나왔다는 얘기가 나왔으나 삼성측은 부정.

CCI-400이 disable되었을 때 빅리틀이 효율적으로 이루어질 수 있을까요?



빅리틀의 태스크 마이그레이션에서 가장 중요한건 전환속도이고, 전환 속도에 가장 큰 영향을 끼치는건 CPU 간에 전환이 얼마나 빠르게 이루어지느냐, 캐시 일관성이 얼마나 빠르고 효율적으로 이루어지느냐 입니다.
빅리틀에서는 CCI-400을 통한 하드웨어 방식을 선택하고 있습니다.
소프트웨어 방식과 비교해서 가장 큰 장점은 Cache flush 혹은 Cache clean 단계가 생략되면서 전환시간을 크게 줄인다는겁니다.

CCI가 있으면 전환시간이 20~30us 이하이지만, CCI가 없으면 최악의 경우 1ms 이상입니다.
나오는 얘기대로 CCI에 결함이 있어서 Disable되었다면 성능 손실이 발생할 수 밖에 없는 구조입니다.
그렇다면 엑시노스5410에 그런 성능 손실이 보이는가.
만약 엑시노스5410에 CCI-400 문제가 있었다면 엑시노스5420에서는 그 문제가 수정됐을겁니다.
그런데 현재까지 보이는 테스트 결과들로 봐서는 이 둘의 동클럭 성능 차이는 오차범위 수준입니다.
완전히 가능성을 배제할 수는 없습니다만 CCI-400 문제의 가능성은 낮다고 봅니다.

나머지 상황을 보겠습니다.
1. IKS를 시연했음에도 실제 출시된 제품은 클러스터 마이그레이션.
3. 파워, 설계 문제로 인한 발열 이슈가 있다고 언론에서 얘기함.

여기서는 두 가지 의문이 해결되어야합니다.
- IKS는 안 되는데 클러스터 마이그레이션은 가능한 이유.
- 발열이 발생한 이유.

- IKS는 안 되는데 클러스터 마이그레이션은 가능한 이유.
클러스터 단위의 스위칭에서는 문제가 없는데 코어 단위의 스위칭에서 문제가 발생했다는 의미입니다.
코어 단위로 스위칭이 발생한다는건 한 클러스터 내에 있는 코어들의 동작 상태가 다 제각각이라는겁니다.
4개의 Cortex-A15 코어가 있다면 어떤 코어는 돌고 있고, 어떤 코어는 꺼져있는겁니다.
코어 단위의 스위칭에 문제가 발생한다면 가장 가능성이 높은건 각 코어의 파워, 클럭 on/off에 문제가 있을겁니다.
CPU의 클럭이 정지되는 상태(일반적으로 말하는 C2 state)에서의 동작에 문제가 있을 가능성이 있습니다.



(이렇게 그림처럼 코어가 on/off 되어줘야하는데 그게 잘 안 됐을 가능성.)

- 발열이 발생한 이유.
IKS가 안 되더라도 클러스터 마이그레이션도 빅리틀입니다.
발열의 원인인 클러스터 마이그레이션이라고 보기는 힘듭니다.
다른 부분에서 원인을 찾아야 합니다.
데이터는 CPU - L2 캐시 - CCI-400 - DRAM의 체인 속에서 움직이기때문에 소비전력과 그에 따른 발열 문제의 원인도 이 속에서 찾아야 합니다.
앞에서 언급하지 않은 요소는 DRAM뿐이니 원인은 일단 DRAM으로 생각할 수 있습니다.
엑시노스5410에서만 DRAM 자체의 소비전력이 특별히 높아지는 것이 아니니 정확히는 DRAM의 운용 방식에 원인이 있다고 봐야겠지요.

아마도 Row buffer 운용(관리) 정책이지 않을까 추측.

DRAM에서 데이터를 읽어들이는 과정을 보면,
데이터를 가져오기위해 해당 데이터의 메모리 주소 정보를 보냅니다.
여기에는 메모리의 Column(행), Row(열)에 대한 정보가 포함됩니다.
먼저 Column을 먼저 찾고 이를 Sense Amplifier로 복사, Sense Amp에서 행을 찾습니다.
만약 Sense Amp를 계속 Charge 시켜놓고 있다면 이를 Page(Row buffer)가 Open되어있다고 합니다.
(Open page policy 라고 합니다.)
만약 다음 데이터가 같은 Row에서 나온다면 이를 Page hit가 발생했다고 합니다.

Open page policy는 데이터의 Locality가 높을 때 유용합니다.
(동일 데이터나 그 근처 주소의 데이터를 집중적으로 액세스할 때을 Locality가 높다고 합니다.)
Open된 Page가 캐시와 같은 역할을 하기때문입니다.
장점으로는 레이턴시가 작아집니다. 빠른거지요.
단점은 소비전력이 높습니다. Sense Amp를 계속 Charge되어있기때문인데 Close page policy의 3배 이상입니다.

현재 대부분의 경우는 Open page policy와 Closed page policy의 중간쯤에 위치합니다.
Hybrid(adaptive) page policy 라고 부를 수 있겠네요.
어느 한 쪽만을 사용하는 극단적인 형태가 아닙니다.

만약 무언가의 이유로 엑시노스5410이 Open page policy로 고정되어 있다면 DRAM의 소비전력은 높아질 것이고 발열의 원인이 될 수 있을겁니다.


(3) HMP 지원이 가능한가.
결국 이런 얘기를 하는건 엑시노스5410이 HMP 지원이 가능한가에 대한 답을 내리기 위함일겁니다.
사람들이 궁금해하는 것도 그런거겠지요.

앞서 유추해 본 내용은 다음과 같습니다.
1. IKS가 아닌 클러스터 마이그레이션으로 동작하는건 코어단위의 파워, 클럭 on/off에 문제가 있을 가능성때문.
2. 발열 이슈는 메모리 정책이 Open page policy일 가능성때문.


(ADB-400이 문제??)

2번은 메모리에 해당하는 부분이기때문에 HMP 지원과 관련이 크게 없지만 1번은 그렇지 않지요.

코어단위의 파워, 클럭 on/off에 문제가 있다면 그 원인으로 지목될 수 있는 유닛은 ADB-400입니다.
Asynchronous Bridge라고도 합니다.
각 파트에 공급되는 클럭/파워 도메인을 관리합니다.

사실 코어단위의 파워, 클럭 on/off에 문제가 있다는 가정만 본다면 그 상태에서 HMP의 지원은 거의 불가능하고, 가능하다하더라도 상당히 제한된 방식으로 이루어질 수 밖에 없습니다.
사용하지 않는 코어를 완전히 끄는 것이 아니라 클럭과 전압을 최저로 낮추는 꼼수를 쓸 수 밖에 없을겁니다.
굳이 한다면 말이지요.
하드웨어적인 방식이 아닌 소프트웨어적인 방식이라고 볼 수도 있을겁니다.
문제는 이렇게 한다면 HMP를 통한 소비전력 절감효과가 크게 작아진다는겁니다.
좀 더 추측해보자면 메이쥬는 이런 점을 안고가더라도 소프트웨어적으로 HMP를 지원하겠다는 입장일지도 모르겠습니다.
삼성이라면......이렇게 할바에 그냥 안 할 것 같네요.


(4) 정리.
엑시노스5410이 IKS가 아닌 클러스터 마이그레이션이 적용된건 코어단위의 파워, 클럭 on/off에 문제가 있기때문일 가능성이 있습니다.
원인은 정황상 CCI-400가 아닌 Async Bridge에 있을 가능성이 있습니다.
만약 그렇다면 HMP 지원은 상당히 어려워집니다.
무리해서 지원한다하더라도 HMP 지원으로 인한 효과를 제대로 볼 수가 없습니다.

발열 이슈는 메모리 정책이 Open page policy이기때문인 것으로 추측됩니다.


p.s. 글쓰면서 매번 느끼는거지만 글이 참 무미건조하고 딱딱하네요. 




반응형

댓글