문제부터 하나 내보겠다. 원시 코드 길이가 470만 행이고, 수백만 달러라는 돈을 들여 마이크로소프트에서 XBox 360을 위해 개발한 소프트웨어가 있다. 무엇일까?
XBox 360 운영체제? 천만의 말씀. 놀랍게도 XBoX 360 HD-DVD 재생을 위한 소프트웨어이다. 아니 HD-DVD 재생기에 무슨 소프트웨어가 필요해? 여기서부터 정말 눈물나는 이야기가 펼쳐진다. 하드웨어로 하기 힘들거나 돈이 많이 드는 작업을 소프트웨어에 맡긴다는 평범한 진리가 그대로 드러나는 순간인데, XBox 360은 DSP를 사용하지 않고 트리플 코어가 내장된 PowerPC CPU 화력으로 H.264, MPEG, VC1, DTS, 돌비 디지털 코덱을 풀어낸다고 한다. HD-DVD를 구성하는 소프트웨어 부품을 나열해보았다.
- 비디오 코덱: H.264, MPEG-2, VC1
- 오디오 코덱: 돌비 디지탈+, DTS, TrueHD, LPCM, MPEG
- HDi: HD DVD 런타임 엔진(HD DVD 전용 네비게이터)
- GDI: 메뉴
- AACS: 암호/DRM
- MF: 오디오/비디오 파이프라인
별거 아닌 것처럼 보이지? 하지만 이 바닥에서 일하는 사람이라면 윈도우 세상부터 텃밭으로 자리 잡아왔던 x86도 아니고 신형 코어인 PowerPC 환경에서 몇 개월동안 이 엄청난 삽질 + 최적화를 몸으로 때운 마이크로소프트 개발자에게 경의를 표하지 않을 수 없다. jrogue군이 리눅스 관련 개발을 진행하고 있음에도 불구하고, 마이크로소프트 사가 소프트웨어 개발에 약하다는 소리는 바람둥이가 여자에게 인기 없다는 속설만큼이나 말이 안된다는 생각을 해본다.
관련 URL: http://blogs.msdn.com/xboxteam/archive/2006/11/03/emergence-day.aspx
뱀다리: 물론 이렇게 소프트웨어로 개발한 HD-DVD 성능은 실제 물건을 손에 쥐기 전에는 아무도 모른다.
EOB
오랜만에 들러 재미있는 글 읽고 갑니다. 확실히 경쟁업체가 별로 없는 최전방 쪽은 여전히 후끈한 듯(맨땅에 헤딩하느라)...^^
답글삭제'왜 그랬을까?'가 무지하게 궁금해지네요. 재호님 말씀대로 마이크로소프트 사람들이 바보라서 그러진 않았을텐데... 트리플코어 mc도 만만찮을텐데... 그 정도 돈이면 필요한 기능 왠만큼 다 넣어서 ASIC을 할 수도 있지 않았을까 싶네요. 혹시 하다 보니까 이제까지 한 게 아까워서? :-)
답글삭제대당 하드웨어 가격이 문제가 아니었을까요? 소프트웨어어는 복사하기만 하면 되지만 하드웨어는 다시 단가라는게 존재해 버리니까요.
답글삭제한 1억대 팔수만 있다면 수백만 달러를 들여서라도 개발할만 하죠.
470만행을 만드는데 수백만달라가 들었다에서 MS 인건비를 산출해봅니다. 수백만달러를 470만달러라고 한다면, 한행당 1$, 개발자들은 하루에 20줄정도 코딩합니다.(통계상) 그러면 하루 수입이 20$가 되어서는 곤란하니까, 일을 더 많이 하겠죠. 평균 연간 10만$받고, 200일 일하면, 하루 500$ 수익을 얻어야합니다. 그러면 하루 500줄을 짜야하니까,, 평균개발자보다, 25배나 일을 잘하는군요.. MS 개발자 훌륭하네요.
답글삭제xbox는 대당 150달러의 손실은 본다는 이야기가 있던데 비용 절감차원에서 해볼만 하다는 생각이 듭니다.
답글삭제XBOX360은 적자가 아니려나???
궁금하네요 :-)
다양한 의견이 아주 보기 좋습니다. 저의 뚱딴지 같은 생각은...
답글삭제i) 처음부터 HD-DVD를 고려한 설계가 이뤄지지 않았다.
ii) BUT, 경쟁사(먼산...)도 하는데, 당근 우리도 소프트웨어만으로 할 수 있다.
같습니다.
뱀다리) no warranty!
원인이 단가(mc, material cost)라고 생각하신다면...
답글삭제트리플코어 PPC를 썼다면 거기에 따른 메모리며 부가 장치들을 고려할 때 그야말로 mc가 만만찮아 보입니다. 그 돈으로 ASIC을 뜨면 양산 비용도 절감하고, 기술적 장벽도 높이고 하는 효과가 있지 않을까 하는 생각이었습니다. (470만불이라길래..)
제가 요즘 beta reading하고 있는 책 저자의 말에 따르면 소프트웨어 개발 비용보다 유지보수 비용이 어떤 경우에는 초기 개발 비용보다 훨씬 많이 든다고 합니다.
초도 제품 개발에 470만불이면 이제 시장에 풀리기 시작하고, 겨울잠자던 벌레들이 스물스물 기어나오기 시작하면... ㅜㅜ
PC와 달리 게임기는 하드웨어 판매에서는 이익이 없음으로 오랬동안 사용 할 수록 회사로선 이익이라고 알고 있습니다. PS3도 그래서 상당히 고사양으로 만든것으로 생각됩니다만...(ps3와의 관계를 생각해 보더라도 고사양은 어쩔수 없다고 보여지네요 ^_^)
답글삭제그리고 칩을 사용해도 많은 램이 필요한건 마찬가지로 알고 있는데요. 제가 잘못 생각하고 있다면 댓글 부탁드려요. :-)
석우님. 잘못 생각하고 계시다니요... 천만의 말씀입니다. :-) 저도 아는 게 별로 없지만, 그냥 제 짧은 생각을 나눠보려고 하는 것이지요.
답글삭제말씀하신 관점에서 보자면 범용 processor와 software로 구현하는 것이 더 오래도록 사용하는 것에는 유리하겠네요. Firmware upgrade의 risk는 있겠지만, (저같은 사람을 포함한) 요즘 사용자들이 많이들 똑똑해져서.. :-)
다만, convolution 연산(DSP 동작의 핵심이지요.)을 소프트웨어적으로 구현하는 것보다 하드웨어로 입력단에서 바로 처리하도록 구현하게 되면 메모리(RAM) 요구량은 좀 줄지 않을까 생각됩니다.
HW로 할 수 있는 것이 있고, SW로 할 수밖에 없는 영역이 있죠.코덱을 HW로 박아버리더라도 SW가 같이 구동되어야 하는 것이고....
답글삭제단순 CD R/W를 위한 프로그램만으로도 수십만줄의 F/W가 들어갑니다.
HD-DVD면 CD, DVD, HD-DVD를 모두 포괄해서 포함해야하고, 여기서 다시 Title 재생을 위한 SW가 추가로 들어가야되죠. 그것이 HDi나 GDI가 되는 것이고 재생을 위해 AACS로 DRM 제거도 해야할 것이고....
집에 가지고 계신 DVD-Player의 코드 길이를 아신다면 저 470만행은 별로 놀랠 만한 길이도 아니랍니다.