펜티엄 프로세서 부동 소수점 에러 사고

쌍둥이 소수(twin prime)의 역수의 합은 수렴하는데, 그 수렴값을 브런 상수(Brun’s constant)라고 부른다. 이 값의 수렴성에 관해서는 일전의 포스트에서 언급한 바가 있다.

이 값을 계산하는 도중 펜티엄 프로세서의 부동 소수점 연산 에러를 발견한 이야기도 익히 들은 바가 있을 것이다. 이 오류 발견의 수학적 배경은 여기를 참조하기 바란다. 이 사건에 관한 당시 인텔 회장 앤드류 그로브의 이야기를 옮겨본다.

앤드류 그로브 저/유영수 역, “승자의 법칙”, 한국경제신문, 2003

나는 인텔의 책임경영자로 일하기 시작한 초기부터 스탠퍼드 비즈니스 스쿨에서 시간제로 경영전략에 관한 강의를 하고 있다. 함께 강의를 하는 로버트 버겔먼(Robert Burgelman)교수와 나는 학생들에게 학점을 줄 때, 학기가 끝나자마자 학생들의 명단을 훑어내려 가면서 아직 기억이 생생할 때 그 학생의 학업성과를 평가하는 방식을 고수하고 있다.

1994년 추수감사절이 끼여 있는 주의 화요일인 11월 22일 아침 나절에 시작한 학점평가는 평소 때보다 조금 길어지고 있었다. 사무실에 전화할 생각으로 양해를 구하고 일어서는데 마침 전화벨이 울렸다. 우리 회사의 보도담당이 나와, 그것도 긴급히 통화를 하고 싶다는 것이었다. CNN(Cable News Network) 기자가 곧 인텔에 들이닥칠 것이라는 말을 전하기 위해서였다. CNN은 펜티엄 프로세서의 부동 소수점 에러에 대한 정보를 어디선가 듣고 이를 폭로하려 하고 있었다.

잠시 여기에서 짚고 넘어갈 것이 있다. 우선 인텔에 관해서다. 인텔은 1994년 당시 매출액 100억 달러가 넘는 컴퓨터 칩 제작사로서 세계에서 가장 큰 규모였다. 창사 이래 26년 동안 인텔은 현대 기술발전에서 가장 중요한 두 가지의 디딤돌을 놓았다. 바로 메모리칩과 마이크로프로세서다. 1994년에는 사업의 대부분이 마이크로프로세서를 중심으로 운영되었고, 그것도 아주 순탄했다. 그리고 이들 사업은 많은 이윤을 창출했고, 해마다 30% 가량 성장하고 있었다.1)

1994년은 우리에게 또 다른 특별한 의미가 있다. 최신형 마이크로프로세서인 펜티엄 프로세서 생산에 총력을 기울이기 시작한 시기가 바로 1994년이었던 것이다. 이것은 수많은 우리의 직접적인 거래처, 즉 컴퓨터 생산업자들이 관련된 문제였다. 컴퓨터 생산업자 중 일부는 이 새로운 프로세서를 적극적으로 도입했지만, 일부는 그렇지가 않았다. 우리는 전력을 다해 그 일에 매달렸고, 막대한 광고비를 들여 컴퓨터 구매자들의 관심을 끌기 위해 노력하는 한편, 내부적으로는 전세계에 걸쳐 네 곳의 생산공장을 가동하기 시작했다. 이 프로젝트는 「Job 1」으로 명명되었는데, 이름이 말해주듯이 사원들에게 사업의 우선 순위를 일깨워주었다.

이러한 와중에 곤란한 일이 벌어졌다. 몇 주 전에 한 사원이 인터넷상의 포럼에 줄줄이 올라온 고객들의 의견을 발견하게 되었다. 그 포럼은 인텔 제품의 완성도에 관심 있는 사람들이 만든 것이었는데, 다음과 같은 제목의 의견이 있었던 것이다. 『펜티엄 FPU에 오류 있음.』 [FPU(Floating Point Unit)는 부동 소수점 장치의 줄임말로 복잡한 산술계산에 쓰인다.] 이 문제는 한 수학교수가 최초로 제기했는데, 그 교수는 복잡한 수학 문제를 연구하는 도중 펜티업 칩이 나눗셈에서 오류를 유발시킨다는 사실을 알게 되었던 것이다.

당시 우리는 몇 달 전에 이 문제를 발견해 이미 알고 있던 상태였다. 이는 칩 설계상의 사소한 오류로서, 90억 번 만에 한 번씩 나눗셈에서의 근사값 오류를 일으키는 것이었다. 처음에는 우리도 이 문제를 심각히 받아들이고 「90억 번 만에 한 번」의 의미를 파악하기 위해 연구를 거듭했다. 결과는 안심할 만한 수준이었다. 예를 들어, 일반적인 스프레드시트 사용자가 2만 7000년 만에 한 번씩 마주치게 되는 그런 것이었다. 이러한 결론을 얻기까지는 상당한 시간이 걸렸는데, 일반적으로 새로운 칩 개발에서 부딪치게 되는 문제보다 훨씬 더 긴 시간을 요구했다. 그래서 우리는 이 결점을 보완할 방법을 강구하는 동시에 사업 진행에 전념했다.

한편 인터넷상의 의견과 논의가 언론의 주목을 끌기 시작하면서 결국엔 이 내용이 한 경제 주간지의 머리기사로 상세히 실렸고, 그 다음 주에는 다른 경제지에도 자그마하게 실리게 되었다. 추수감사절 주간의 화요일 아침까지만해도 그 정도로 그친 듯이 보였다.

사정이 달라진 것은 CNN이 온통 불을 지를 듯한 기세로 찾아와 취재를 요구했을 때였다. 이미 담당 PD는 다분히 공격적이면서 비난하는 자세로 우리 회사의 홍보담당자들과 이야기를 나누고 있었고, 전화상으로 들려오는 보도담당의 얘기로 보아 그냥 넘길 상태가 아니라는 생각이 들었다. 나는 서류를 챙겨 사무실로 돌아왔다. 실제로 상황은 좋지 않았다. CNN은 매우 불쾌한 기사를 제작했고, 그 기사는 이튿날 방송되었다.

그 이후로 한동안은, 모든 주요 일간지에 「펜티엄 칩 정확도에 문제」, 「펜티엄에 관한 명제 : 구매할 것인가 말 것인가」 등의 머리기사가 온통 장식되었다.2) 텔레비전 리포터들이 인텔 본사 앞에서 진을 쳤고, 인터넷으로 각종 메시지가 빗발쳤다. 마치 모든 미국 시민들이 이 일에 주목하는 것 처럼 보였고, 곧 이어 세계의 모든 나라들도 그렇게 보였다.

고객들은 대체할 수 있는 칩을 요구했고, 우리는 이 문제의 경중을 따져 이에 응하려 했다. 즉 나눗셈 계산 작업을 많이 수행하는 사람들에게는 칩을 대체해주기로 하고, 다른 고객들에게는 우리의 연구결과와 분석결과를 설명하고 자료를 편지로 보내기도 함으로써 진정시키려 했던 것이다. 한 주 정도 지났을 때, 이런 두 가지 방향에서의 접근은 상당히 효과를 발휘하는 듯 했고, 매일 같이 걸려오던 전화의 양도 줄어들기 시작했다. 우리는 칩 대체에 관한 세부사항을 정하는 일에 착수했고, 언론의 줄기찬 공방에도 불구하고 판매량과 대체 칩 요구량에서의 모든 정보는 이 난관을 우리가 잘 헤쳐가고 있음을 입증해주고 있었다.

12월 12일 월요일이 되었다. 그 날 아침 8시에 출근했을 때, 전화 메세지를 놓아두는 자리에 인쇄된 서류가 접혀진 채로 놓여 있었다. 그것은 속보를 전할 때 제목만 있듯이 제목만 있는 전보였는데, IBM이 모든 펜티엄 장착 컴퓨터의 판매를 중단한다는 내용이엇다.

다시 지옥과 같은 상황이 재연되었다. IBM의 결정은 그 주체가 IBM이라는 사실만으로도 치명적이었다. 비록 근래에 와서는 IBM의 PC사업이 예전만 못한 것이 사실이지만, 그들은 「IBM PC」의 원조이자 IBM PC를 인텔 기술에 기초함으로써(by basing it on Intel’s technology) 인텔의 마이크로프로세서를 세계적인 제품으로 도약시킨 장본인이기도 하다. PC라는 개념이 도입되기 시작한 후 지금까지 13년이라는 시간 동안, IBM은 PC업계에서 가장 중요한 역할을 해왔다. 따라서 IBM의 결정은 항상 주목의 대상이었다.

부서마다 다시 전화가 폭주하기 시작했고 전용회선으로도 전화가 빗발쳤다. 한 주 전만 해도 희망적인 태도를 보이던 거래처들은 혼란과 우려의 목소리로 사건의 진행상황을 문의해왔다. 우리가 할 일은 다시 최선의 방어를 하는 것 뿐이었다.

이 사태를 다루는 직원들의 대부분은 인텔이 꾸준한 성장세를 보이던 기간인, 지난 10년 전부터 일해온 사람들이었다. 그들은 열심히 일하는 것, 다른 사람보다 한 발 앞섬으로써 좋은 결과를 만들어 내는 방법 등을 경험했을 뿐이다. 하지만 갑자기 미래의 번영을 기대하기는커녕, 아무것도 기대하기 어려운 상황이 전개되었고, 목표를 잃은 것은 물론 감정적으로도 불안해지고 겁을 먹게 되었다.

이 사태의 여파는 인텔이라는 회사에만 그치지 않았다. 우리 사원들은 가족과 친구들에게서 『도대체 지금 뭐가 어떻게 되고 있는 거야? TV에서 나도 다 봤다고. 자네 회사는 자기 잇속만 차리고 너무 거만해』하는 식의 따지는 듯한, 의아해하는 시선을 받아야 했다. 자신이 일하는 인텔에 대해 언제나 긍정적인 평가와 태도에 익숙해 있던 종업원들이 갑자기 반전된 상황에 처하게 되었고, 『펜티엄과 수학자를 접목하면 뭐가 나올까? 미친 과학자겠지』 따위의 농담을 참아야만 했다. 각 가정의 식탁에서, 주말 모임에서 인텔은 화제의 대상이었고, 누구도 이런 상황을 피할 수 없었다. 이러한 변화는 그들에게 가혹했다. 또한 다음 날 출근해 빗발치는 전화를 받고, 생산 라인을 계획하는 일을 수행해야 할 사원들의 사기를 더욱 저하시켰다.

나 개인으로서도 결코 쉬운 상황이 아니었다. 인텔의 창업 초기부터 일해온 것을 비롯해 30년이 넘도록 한 업계에 종사해온 나는 여러 번의 위기를 겪고 역경을 헤쳐왔지만, 이번은 경우가 달랐다. 다른 어떤 위기보다도 가혹했다. 이전에 겪은 위기와는 매순간이 달랐고 알 수 없는 것뿐이었다. 내가 하루종일 아무리 열심히 일하고 애를 써도, 집으로 향하는 순간 기운이 빠지는 것은 어쩔 수 없었다. 마치 적의 무자비한 포격에 에워싸인 기분이었다. 왜 이런 일이 일어난 것일까?

내 방에서 20피트 정도 떨어져 있는 528호 회의실은 인텔의 전략사령부가 되었다. 30명이 넘는 사람들이 중앙에 놓인 12인용 타원형 탁자에 하루에도 몇 번씩 몰려들어 팔걸이에 앉기도 하고 벽에 기대선 채, 한편으로는 문건을 검토하고 다른 한편으로는 결정된 사항을 실행하기 위해 분주히 움직였다.

며칠 동안 여론과 폭주하는 전화, 비난조의 사설과 고군분투하면서 마침내 우리는, 이젠 근본적으로 변해야 할 때라는 결론에 다다랐다.

다음 주 월요일인 12월 19일 우리는 완전히 새로운 정책을 세웠다. 펜티엄 칩의 사용 목적이 통계분석이든 오락이든 또는 그 무엇이든 간에, 원하는 사람에게는 누구나 새로운 칩을 대체해주기로 결정한 것이다. 이 결정은 결코 쉬운 일이 아니었다. 당시 이미 수백만 개의 칩이 팔려나간 상태였고, 얼마나 많은 요구가 있을지는 아무도 예측할 수 없었다. 그저 서너 개 정도일 수도 있고, 전부일 수도 있을 것이다.

곧이어 문의전화를 전담하는 부서를 새로 만들었다. 이전까지 소비자들과 직접 거래가 드물었던 우리로서는 고객의 질문에 대답해야 하는 일에 익숙지 않았지만, 이제는 그것이 주요한 임무가 되어 있었다. 처음에는 디자이너, 영업사원, 소프트웨어 개발자 할 것 없이 인텔의 각 부서에서 자원한 사람들로 전담부서를 꾸몄다. 이전에 자기가 하던 일을 놓고, 간이책상에 앉아 전화를 받고, 상대방의 이름과 주소를 적는 일에 매달리게 된 것이다. 또한 우리는 수십만개의 칩을 대체하는 작업을 좀 더 체계적으로 관리하는 일에 착수했다. 칩의 입ㆍ출고를 관리하는 시스템을 개발하고, 직접 칩을 갈아끼우기를 꺼리는 사람들을 대신해 칩 갈아끼우기 작업을 수행할 네트워크를 구성했다.

처음 펜티엄에 부동 소수점 오류가 있다는 사실을 발견한 지난 여름에, 우리는 이미 칩을 새로 디자인하고 다른 오류가 발생하지 않는지를 철저히 검색해두었었고, 이번 사태가 닥칠 즈음에는 이미 수정된 설계대로 생산하고 있던 상태였다. 각 공장은 크리스마스 휴가도 반납하고 수정된 칩을 생산하는 데 매달렸고, 이미 생산딘 옛날 칩은 모두 폐기처분시켰다.

결과적으로 4억 7,500만 달러라는 엄청난 결손이 발생했다. 이 결손금액은 대체에 드는 비용과 폐기된 칩 가격을 합한 것으로, 반년 분의 기술개발 예산, 또는 5년 분의 펜티엄 프로세서 광고비와 비슷했다.

이제 우리는 새로운 방식으로 사업을 해나가기 시작한 것이다.

(중략)

한 해 정도가 지나 다시 되돌아보니 마이크로프로세서에서 생긴 아주 자그마한 오류가, 6주도 안 되는 기간에 5억 달러가 넘는 손실을 초래하게 한 원동력임을 알 수 있었다. 거기에는 거대하고도 장기적인 두 가지 원인이 있었다.

첫 번째 이유는 인텔이 추진해 온 제품 인지도 변화 노력과 관련이 있다. 3,4년 전부터 우리는 「인텔 인사이드(Intel Inside)」 캠페인을 대대적으로 펼쳐왔다. 이 캠페인의 규모는 일반 소비자를 대상으로 하는 여느 구매광고와도 맞먹을 만큼 대규모였고, 컴퓨터 사용자들에게 자신의 컴퓨터에 장착된 마이크로프로세서가 결국 자신의 컴퓨터 자체라는 사실을 인식시키는 것을 목적으로 하고 있었다.

여느 구매 캠페인과 마찬가지로, 우리 캠페인도 기존의 사실을 소비자들에게 재인식시키는 효과가 있었다. 이 캠페인 전에라도 『어떤 종류의 컴퓨터를 사용하지?』라는 질문을 받으면, 대부분 『내 컴퓨터는 386이야』하는 식으로 대답하곤 했을 것이다. 386이란 컴퓨터에 장착된 마이크로프로세서 칩을 가리키는 말이며, 소프트웨어라든가 하는 것은 그 다음 얘기다. 사용자들은 본능적으로 컴퓨터의 종류를 결정짓는 요체는 장착된 마이크로프로세서와 직결된다는 사실을 알고 있었다. 이러한 사실은 우리로서는 더없이 좋은 일이다. 사용자들 사이에 우리의 고유한 이미지를 심어주고, 우리 회사 제품에 대한 인지도를 높일 수 있으니까 말이다.

우리는 지엽적인 면에서 벗어나 잠재적인 구매자를 비롯해 더욱 광범위한 소비자층을 주안점으로 캠페인을 전개해나갔다. 시선을 끄는 독특한 로고를 제작하고, 스티커등을 사용해 인텔의 마이크로프로세서를 장착한 컴퓨터에 이 로고를 홍보상 부착하도록 컴퓨터 제작업체들의 협력을 구했다. 국내, 국외 할 것 없이 수많은 생산업체들이 우리의 캠페인에 동참했다.

우리는 막대한 예산을 들여 「Intel Inside」가 새겨진 광고판을 세계 곳곳에 설치하고, 각국 언어로 제작된 TV광고를 내보냈다. 또한 「Intel Inside」가 새겨진 자전거 거울 반사 수천 개를 중국에 보내기도 했다. 1994년 실시한 자체 조사에서, 인텔은 코카콜라(Coca-Cola)나 나이키(Nike)와 다를 바 없이 소비자들에게 가장 인지도가 높은 회사로 부각되어 있었다. 그러니 펜티엄 칩의 오류가 알려졌을 때, 소비자들이 우리를 향해 직접적인 반응을 보일 수 밖에 없었다.

 


1) 1986~94년까지 인텔의 성장율은 31.3%였다. Intel Annual Report, 1994
2) New York Times, 1994년 11월 24일, p.D1. Wall Street Journal, 1994년 12월 14일, p.B1

앤드류 그로브의 ’90억번 만에 한 번’이라는 발언은 약간 변명조의 과장이 아닌가 하는 의구심이 드는데, 위키피디아에서는 실제로 계산 오류를 일으키는 계산식을 소개하고 있다.

2 thoughts on “펜티엄 프로세서 부동 소수점 에러 사고

  1. 90억번만에 한 번이라는 것은 실제 가능한 비트 패턴 중 에러를 내는 것이 그만큼이라는 얘기입니다. (다만 에러를 내는 비트 패턴을 모두 나열할 수는 없기 때문에, 실제로 이 버그를 둘러갈 때는 훨씬 많은 수의 — 제가 본 것은 5/256 확률로 — 패턴을 위험한 것으로 판정합니다.) 10^-4 이상의 오류가 나는 경우는 그보다도 더 낮습니다 (위키백과에 소개된 예제는 그러한 최악의 경우 중 하나입니다).

    확실히 이 버그가 부동소숫점 연산에 민감한 작업을 하고 있는 사람들한테는 머리털이 뽑히는 일이었겠지만, 매우 세심하게 입력을 조정하지 않는 한 일반적인 경우에서는 별 문제를 발생시키지 않으니 언론의 반응이 좀 지나친 감은 있지요. 참고로 이 사건 뒤 인텔에서는 부동소숫점 연산에 대한 정적 분석으로 알고리즘이 올바르게 작동함을 “증명”했기 때문에 프로그래밍 에러로 이런 류의 버그가 발생할 일은 더 이상 없을 것 같습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중