흔히 넷북을 쓰는 사람들의 소감평 중 하나는 '넷북은 느리다' 입니다.

그것도 가끔 잘 나가다가 이해와 용서를 구하기 힘들정도로. ㄱ-;


오늘 순차실행 듀얼이슈작동방식을 탐구하다 원하는건 못건졌지만

엔하위키에서 우연히 이런 대목을 봤습니다.


http://mirror.enha.kr/wiki/%EC%9D%B8%ED%85%94%20%EC%95%84%ED%86%B0%20%EC%8B%9C%EB%A6%AC%EC%A6%88



마지막문단을 보면 때때로 특정 어플리케이션에선 펜티엄2 300mhz보다 느린 경우도 발생한다는 부분,


아톰이 일반 CPU에 비해 느린건 사실이지만 이론벤치마크성능에서

완전체 콘로 시리즈와 비교해도 동클럭 평균 절반의 성능을 보입니다.

더 느려질 때도 있지만 왠만해서 절반의 범위를 유지하는 벤치성능.


훨씬 더 구시대의 유물인 펜티엄2은 비순차실행방식이란 장점이 있지만

뒤떨어진 분기예측, 느린외장캐시, SSE 명령셋조차 없는 기본적인 구조로

왠만해서는 좋게봐줘야 동급클럭 아톰정도의 평가를 받고 있습니다.


어째서 아득하게 먼 클럭차이가 있음에도 이론성능과는 별도로

순차실행 프로세서는 이런 체감성능 저평가를 받게되는 것일까요?


머릿속에서 곰곰히 스케치하다가 

우연히 떠오른 비교대상이 있다면 그것은 게임입니다.


아래와 같은 그림으로 그 예를 찾아볼 수 있습니다.




느린이유.png 




게임의 체감성능을 좌우하는 것은 프레임 유지율 입니다.

아무리 높은 평균프레임을 가져도 특정상황에서 무척 느린 최소프레임을 가지면

멈추거나 끊겨보인 것 처럼 느끼게되고 느리다고 평가하게 되지요.


순차실행(InOrder)도 마찬가지입니다. 비순차실행(OutofOrder)와는 다르게

매우 무겁고 느린명령어를 처리하게되면 파이프라인을 따라 뒤따라오던 모든 명령어도 멈추게됩니다.

[A]와 비슷한 예로 64비트 정수나눗셈이 걸린다면 1~2클럭안에 처리할 수 있는 다른 [B,C,D] 같은

덧셈,뺄셈,로드,스토어,분기,시프트의 대부분의 명령어들이 수십, 많게는 수백클럭씩 지연되어집니다.


순차실행CPU가 비순차에 비해 2~3배 빠르다고 해도,

최악으로 꼬이는 경우에 100배 가까이 느려질 수도 있는게 순차실행구조입니다.

과학연산, 그리드컴퓨팅 용도에 보탠다던지 하는 PC끼리 짜고치는 활동이라면 몰라도

사람이 쓰기엔 무척 환경 정신건강에 악영향을 끼치게 만들 수도 있는게 이 순차구조인 셈이지요. ㄱ-

싱글코어니 듀얼코어니의 차원을 넘어 한 쓰레드에 얼마나 순간적으로 발목을 잡느냐를 말합니다.

성능 외에도 단일프로그램의 불규칙한 처리흐름을 고르게 해주는게 비순차의 역할인 것입니다.




결론은 '성능을 떠나서 인오더는 아웃오브오더의 상대가 될 수 없다' 입니다.


아톰과 비아나노를 비교대상으로 삼을 수도 있고, 곧 나올 밥캣을 대상으로 삼을 수도 있습니다.


심지어 휴대폰 임베디드에서 아웃오브오더를 택한 Cortex-A시리즈에게도 굴욕을 당할 소지가 잇습니다.


인텔이 차세대 넷북CPU에는 비순차실행구조를 도입할거라고 하니 그 때까지 지켜봐야겠습니다.




이론과 실제.png


출 처 : http://gigglehd.com/zbxe/4795843#8

+ Recent posts