흔히 넷북을 쓰는 사람들의 소감평 중 하나는 '넷북은 느리다' 입니다. 그것도 가끔 잘 나가다가 이해와 용서를 구하기 힘들정도로. ㄱ-; 오늘 순차실행 듀얼이슈작동방식을 탐구하다 원하는건 못건졌지만 엔하위키에서 우연히 이런 대목을 봤습니다. 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 아톰이 일반 CPU에 비해 느린건 사실이지만 이론벤치마크성능에서 완전체 콘로 시리즈와 비교해도 동클럭 평균 절반의 성능을 보입니다. 더 느려질 때도 있지만 왠만해서 절반의 범위를 유지하는 벤치성능. 훨씬 더 구시대의 유물인 펜티엄2은 비순차실행방식이란 장점이 있지만 뒤떨어진 분기예측, 느린외장캐시, SSE 명령셋조차 없는 기본적인 구조로 왠만해서는 좋게봐줘야 동급클럭 아톰정도의 평가를 받고 있습니다. 어째서 아득하게 먼 클럭차이가 있음에도 이론성능과는 별도로 순차실행 프로세서는 이런 체감성능 저평가를 받게되는 것일까요? 우연히 떠오른 비교대상이 있다면 그것은 게임입니다. 아래와 같은 그림으로 그 예를 찾아볼 수 있습니다. 게임의 체감성능을 좌우하는 것은 프레임 유지율 입니다. 아무리 높은 평균프레임을 가져도 특정상황에서 무척 느린 최소프레임을 가지면 멈추거나 끊겨보인 것 처럼 느끼게되고 느리다고 평가하게 되지요. 순차실행(InOrder)도 마찬가지입니다. 비순차실행(OutofOrder)와는 다르게 매우 무겁고 느린명령어를 처리하게되면 파이프라인을 따라 뒤따라오던 모든 명령어도 멈추게됩니다. [A]와 비슷한 예로 64비트 정수나눗셈이 걸린다면 1~2클럭안에 처리할 수 있는 다른 [B,C,D] 같은 덧셈,뺄셈,로드,스토어,분기,시프트의 대부분의 명령어들이 수십, 많게는 수백클럭씩 지연되어집니다. 순차실행CPU가 비순차에 비해 2~3배 빠르다고 해도, 최악으로 꼬이는 경우에 100배 가까이 느려질 수도 있는게 순차실행구조입니다. 과학연산, 그리드컴퓨팅 용도에 보탠다던지 하는 PC끼리 짜고치는 활동이라면 몰라도 사람이 쓰기엔 무척 환경 정신건강에 악영향을 끼치게 만들 수도 있는게 이 순차구조인 셈이지요. ㄱ- 싱글코어니 듀얼코어니의 차원을 넘어 한 쓰레드에 얼마나 순간적으로 발목을 잡느냐를 말합니다. 성능 외에도 단일프로그램의 불규칙한 처리흐름을 고르게 해주는게 비순차의 역할인 것입니다. 결론은 '성능을 떠나서 인오더는 아웃오브오더의 상대가 될 수 없다' 입니다. 아톰과 비아나노를 비교대상으로 삼을 수도 있고, 곧 나올 밥캣을 대상으로 삼을 수도 있습니다. 심지어 휴대폰 임베디드에서 아웃오브오더를 택한 Cortex-A시리즈에게도 굴욕을 당할 소지가 잇습니다. 인텔이 차세대 넷북CPU에는 비순차실행구조를 도입할거라고 하니 그 때까지 지켜봐야겠습니다.
마지막문단을 보면 때때로 특정 어플리케이션에선 펜티엄2 300mhz보다 느린 경우도 발생한다는 부분,
머릿속에서 곰곰히 스케치하다가
Out of Order / InOrder (아톰)
2011. 1. 14. 15:04