인텔이 만든 태풍의 눈 마이크로프로세서 전쟁

DISLab
이동: 둘러보기, 찾기

인텔이 만든 태풍의 눈 마이크로프로세서 전쟁


상상력이 풍부했던 시인 윌리엄 블레이크의 ‘한 송이 꽃에서 나는 천국을 본다’라는 구절은 자연의 섭리에 대해 무엇인가 개안을 시켜줄 것 같은 느낌을 주곤 한다. 블레이크의 시 ‘호랑이(The Tyger)’는 양을 만든 조물주가 호랑이를 만들었다는 이야기를 하고 있다. 시인은 같은 재료와 섭리로 호랑이가 되기도 하고 양이 되기도 하는 어둡고 무서운 신비를 이야기한다.


안윤호 | mindengine@freechal.com


실리콘으로 무엇인가를 만드는 반도체 회사들은 8비트부터 64비트의 수퍼칩까지 무엇이든 만들어 낼 수 있다. 메모리가 될 수도 있고 CPU가 될 수도 있다. 생물과 마찬가지로 어떤 시기와 인연이 겹치면 결정적인 그러니까 제품이라기보다는 문화나 문명이라고 부르는 편이 나을 정도의 존재가 나온다.

필자는 80386이 일종의 결정적 제품이라는 생각을 갖고 있다. 오늘날의 PC라는 문명은 20년 이상 80386을 바탕으로 만들어 온 것이다. 그 이전의 PC와 80386 이후의 PC는 단절적으로 다르다. 언젠가는 새로운 아키텍처가 나오겠지만 아직은 80386의 아키텍처의 DNA로 PC 문명이 돌아가고 있다. 64비트의 버전이나 듀얼 코어가 나왔어도 80386 진화의 가지가 퍼져나간 것뿐이다. 베이스 DNA와 그 기전은 변한 것이 없다. 핵심적인 그림을 그린 80386의 영향은 결정적이고 절대적이다. 정말로 오늘날의 PC 문명이 킥 스타트 한 것이다.

인텔의 386을 만든 실리콘과 같은 시기에 나온 다른 회사의 32비트 마이크로프로세서는 같은 실리콘으로 비슷한 제조 방법으로 만들어진 것이다. 다만 진화 계통이 다르다. 386과 그 후손들은 널리 퍼졌고 다른 칩들은 그 만큼 번성하지는 못했다. 386의 클론과 그 후손들까지 포함한다면 실제 개인용 컴퓨터의 대부분이 이른바 x86의 기반에서 운영되는 셈이다. 최근에는 독자적으로 프로세서를 만들어오던 애플마저 x86을 채택했다.


하나의 통일이며 생태학에서 말하는 이른바 우점종의 출현이다. 물론 다른 칩 제조자들도 자신의 칩들을 포기하지 않고 소량이긴 하지만 계속 칩을 생산하고 있다. 다른 칩들의 수요는 더욱 줄어들어 일부는 MIPS나 ARM처럼 아키텍처를 과감하게 단순화시킨 후 임베디드 시장을 타깃으로 삼게 되었다. 물론 반대의 시장인 임베디드 마켓도 급속하게 성장했다.


목차

하나의 CPU에서 기술문명을 보는 느낌

된 선택의 순간 이후에 다른 우연들과 겹치고 겹치며 x86은 XT, AT를 거쳐 386을 채용한 PC를 내놓게 되고 너무 빠른 변화에 IBM은 통제력을 잃고 말았다. 운영체제는 작은 협력 업체에 불과했던 MS가 독식하게 되었다. 80286 시절부터 IBM이 집요하게 추구했던 OS/2의 부진으로 운영체제에서도 통제력을 잃었다.

IBM은 90년대 후반부터 리눅스 운영체제를 지원하기 시작하였으나 초기에 리눅스기업에 투자할 때(레드햇 IPO에 대한 A라운드 투자)에서는 과거의 뼈아픈 경험을 되살려 매우 신경질적인 모습을 보인 적도 있다.

인텔은 1985년경에 휘청거리다가 80386을 발표하면서 1980년대 말에 가까스로 다시 안정을 되찾게 되었는데 메모리 사업에서 손을 뗀 인텔에게는 80386이 유일한 돈줄이었다. 그 전까지 인텔은 메모리 제조회사에 가까웠다. 오늘날의 인텔의 이미지는 프로세서와 칩셋의 제작자이다. 대중들이 인텔의 이미지를 강하게 인식한 것은 90년대에 들어와 반도체 작업복을 입은 사람들이 나오는 광고가 나오면서 부터다. 그 이전까지는 인텔을 모르는 사람들이 더 많았다.

인텔은 초기부터 80386을 독식하기 위한 일에 많은 비중을 두었다. 인텔의 CEO였던 앤디 그로브는 관리자들에게 인텔을 보물이 가득 찬성에 비유하고 주변에는 보물을 빼앗으려는 괴물들이 그려진 그림을 보여주면서 성의 최고 보물은 바로 80386 이라고 설명했다는 일화가 있다. 관리자들은 이 보물을 지켜야 한다는 것이다.

초기에는 고가정책으로 판매되던 80386이 얼마간 저렴한 가격으로 내려오자 386의 급속한 보급이 일어났다. 다시 얼마 지나서는 AMD나 다른 회사들이 법적인 투쟁을 벌여 가면서 클론을 만들기 시작했다.

이미 80년대에 NEC가 V30같은 8086을 리버스 엔지니어링한 클론을 만들면서 원래의 회로나 마이크로코드를 사용하지 않고 새로운 칩을 만들었을 때 이러한 일이 불법이 아니라는 판례를 만들었기 때문에 인텔은 공식적으로 이들을 저지하기가 어려웠다. 호환 프로세서를 막기 위해 집요한 노력을 하다가 결국은 포기하고 말았다.

아무튼 도처에서 사람들이 32비트 CPU가 장착된 기계를 갖기 시작하자 컴퓨터를 사용하는 소비자의 욕구가 증가되기 시작했다. 대중적인 x86용 32비트 운영체제(말이 어렵지만 윈도 95가 나오면서야 32비트를 간신히 지원했다)는 32비트 x86 CPU가 나오고 거의 10년 정도가 지나서야 나타났다.


메모리 사용에 640K의 한계를 부여했던 DOS시절 XMS와 EMS 등을 동원하는 편법을 사용하면서도 서서히 본격적인 어플리케이션들이 PC에 새로이 구현되거나 이식되기 시작했다. 귀찮기는 했지만 연산속도는 그럭저럭 사용자들이 실전에 사용할 만큼 빨라졌기 때문이다.


정작 중요한 사실은 우수한 성능을 갖는 PC가 흔해지면서 널리 퍼지게 되었다는 것이다. PC가 성능이 좋아지자 부분적인 많은 불편함을 갖고 있다고 할지라도 약간의 편법으로 아들을 우회할 수 있게 되었다. 넷스케이프 같은 프로그램이 개발되었을 때에도 만약 그 당시 사람들의 PC의 성능이 8비트나 16비트에 머물러 있었다면, 또 낮은 성능이긴 해도 컬러 모니터나 마우스가 없었다면 지금과는 다른 형태의 보급이 일어났을 것이다.

성능과 보급대수가 일정한 규모를 넘어서면서 이른바 복잡성 과학에서 말하는 창발(emerge)현상이 일어났다. 다른 표현을 빌면 바로 이러한 사항들이 맥루헌이 말한 <미디어는 메시지이다>와 같은 미디어론의 핵심이다. 맥루언에 따르면 역사적으로 인쇄물의 보급 자체가 인쇄물의 내용보다 중요했다. 미디어의 하부구조 위에 상부구조가 쌓여간다. 과거의 예를 보면 책이 보급되자 사람들의 표현방법과 사고방식 그리고 지식이라고 부르는 것의 정의 자체가 바뀌었다.

80386에서 i486을 거쳐 펜티엄과 그 이후의 계열들이 10여 년간 발전했다. 클럭의 속도는 이 기간 중에 16MHz에서 GHz대까지 증가하였다. 필자가 그동안 사용했던 PC의 숫자 역시 중요한 성능 변화가 있을 때마다 한 대에서 두 대 정도가 증가하였다. 시간이 압축되는 느낌이 들 정도다. 양적인 팽창은 시장의 세분화를 가져와 거의 파악 불능 수준에 까지 이르렀다.

최신 프로세서의 클럭이 내부적으로 얼마인지도 모른다. 물론 메이커들은 이런 칩셋이 하나 나올 때마다 새로운 상품을 만들기 위해 개발팀을 가동하겠지만 어쩌면 너무 일상화되어 개발자들도 새로운 칩셋의 메이저 변화가 아니라면 별로 신경을 쓰지 않을지도 모른다, 이러한 다양성은 x86계열이 아닌 CPU 메이커에는 유감스럽게도 없다.

예외라면 ARM 마이크로프로세서 정도인데 ARM은 핸드폰 같은 임베디드 제품의 프로세서다. 이 모든 일은 태풍의 눈과 같은 80386이 나오면서 시작되었고 PC 메이커들의 운명도 갈라졌다. 출발은 기구한 편이었다.

아키텍트와 팀

8비트 시절 인텔에서는 한사람이 일 년에 칩을 한 개씩 디자인한다는 이야기가 있었으나 16비트를 거쳐 32비트에 이르러서는 팀이 이루어지지 않으면 복잡한 칩의 설계는 불가능하다는 것이 거의 확실한 사실이 되었다.

80386의 설계팀의 중요 멤버였던 John Crawford는 인텔에 1977년에 합류했다. 처음에는 8086에 관한 소프트웨어 개발에 종사하다가 1982년 i386을 위한 프로젝트의 주설계자(chief architect)로 임명되었다. 크로포드는 처음에는 칩의 주요 설계를 디자인하고 마이크로프로그래밍과 칩을 테스트하는 프로그램을 만드는 과정에서 386의 개발에 크게 공헌했다.

i486의 개발 과정에서도 같은 일을 했다. 얼마 후 Pentium의 개발에서는 여러 명의 아키텍트와 마이크로프래밍 담당자, 칩 설계자를 모두 관리하는 공동 관리자의 역할을 했으며 그 후에는 HP와 함께 개발한 아이태니엄 아키텍처 개발의 최고 책임자였다.

80386은 275,000개의 트랜지스터로 만들어져 당시로서는 거의 경이적인 수준의 설계를 구현하였다. 선폭은 1.5 마이크론, 마스크층은 10층으로 되어 있고 다이의 면적은 104평방 밀리미터 (약 1cm * 1cm 정도의 크기이다) 정도로 요즘 기준으로 보면 매우 작은 규모의 칩이다.

머지않아 80386은 80486에 자리를 내어 줄 것이다. 하지만 이 칩은 앞으로도 오랫동안 우리와 함께 할 것으로 보이는데 이 점에 대해서는 아무도 즐겁지 않을 것이다.


Pat Gelsinger

8088과 8086이 비교적 성공적으로 시장에 데뷔하기는 하였으나 아직 PC 자체의 성공이 확실시되지 않던 1982년에 80386은 아직도 대안으로 존재했다. PC에 탑재된 8086이 1970년대 말 차세대칩인 iAPX 432가 완성될 때까지의 대안으로 출발한 것처럼 1982년에도 인텔은 앞으로 나올 차세대의 칩을 위해 회사의 최고 엘리트들을 오레곤 연구소에 배치하고 있었다.

대신 시간을 벌기 위해 존재한 80386팀은 초기에는 비교적 낮은 레벨의 엔지니어들로 구성되었다. 인텔의 경영진은 80386에 대해 높은 기대를 하지 않았다. 차세대 칩이 나올 때까지 시간을 벌어 주었으면 하는 심경으로 몇 명의 엔지니어를 캘리포니아의 산타클라라에 있던 연구소에서 진행하는 386 프로젝트에 투입하였다.

John Crawford와 함께 Pat Gelsinger도 이 당시 이 프로젝트에 참가하였다. 인텔로서는 거의 재앙에 가깝던 80286의 개발에도 부분적으로 참여한 바 있던 겔싱거는 하나의 땜빵(gap filler) 프로젝트의 분위기를 갖던 80386에도 참여하게 되었다.

80386칩의 최초 개념은 호환성

80386칩의 최초 개념은 일단 8086과 80286에서 실행하던 프로그램과 모두 호환되어야 한다는 것이다. 이 개념은 1981년 말에 처음으로 등장한 후 프로젝트의 중요 개념이 되었다. 크로포드는 애초에 80386의 소프트웨어를 담당하는 기술자로 영입되었고 겔싱거는 유닉스 운영체제에 경험이 있어 80386개발진에 의해 고용된 기술자였다.

회사에서 별로 인정받지 못하는 아키텍트와 유닉스의 운영자 사이에서 80386의 개발이 시작되었다. 8명의 개발자로 시작한 386팀은 시간이 갈수록 점차 중요성을 인정받게 되어 개발 막바지 단계에서는 100명까지 인원이 늘어났다. 지난 호의 내용처럼 길을 찾지 못하고 헤매던 인텔은 엉뚱한 곳에서 대안 정도가 아니라 해답을 찾기 시작했다. 천재적인 엔지니어 출신으로 인해 경영진들도 예상하지 못했던 답이 나온 셈이었다. 원래의 이상은 훨씬 더 강력한 아키텍처의 프로세서였다.

과거의 프로세서와 호환성을 유지하면서도 본격적인 32비트 시스템을 만드는 일은 타협과 새로운 기준을 정의하는 작업의 연속이었다. 처음부터 최고급 인력을 투입한 것도 아니고 엉성하게 출발한데다 과거의 칩들과도 호환성을 유지해야 하며 본격적인 32비트 프로세서의 보호모드까지 구현하게 된 80386은 개발 막바지에 이르게 되자 거의 숨 막히는 지경에 이르렀다.


개발자들은 칩에 한 개의 에러라도 있으면 다시 모든 일을 그 단계부터 다시 시행해야 하는 무거운 압박감에 시달렸다. 회사는 경영이 어려웠다. 겔싱거는 “코끼리를 출산시키는”것 같은 심경이었다고 회고했다. 개발진들이 할 일이란 그저 모든 일들이 완벽하게 수행되도록 하는 것이 전부였고 잘 되어나가기를 빌 수밖에 없었다. 할 일이 너무 많았기 때문에 잠도 못자면서 쉬는 날도 없이 개발의 연속이었다고 한다.

전쟁과 같던 몇 년간의 작업으로 개발이 일단락되자 파일럿 생산된 웨이퍼를 본사에 넘기는 일이 남아 있었다. 웨이퍼를 넘기기 직전 개발팀들은 웨이퍼를 땅에 떨어뜨리고 마구 부수기 시작했다. 그리고는 사용할 수 있을 만큼 남아 있는 웨이퍼 조각을 찾기 위해 부스러기들을 뒤지며 줍기 시작했다. 관리자들은 모두 숨을 죽이고 긴장했다. 관리자들은 첫 생산된 웨이퍼들을 테스트조차 걸어 보지 못할까 하는 걱정으로 아연 실색했다. 얼마 후 숨겨 놓았던 온전한 웨이퍼들을 본사 팀에게 건네주었다. 먼저 부순 것들은 모두 잘못된 웨이퍼들로 웨이퍼를 부순 것은 모두 단순한 장난이었던 것이다. 하지만 그 이후의 생산과 판매는 장난이 아니었다고 한다. 처음으로 생산된 웨이퍼들이 테스트에 들어가도 문제가 없었다.

1985년 10월 80386이 시장에 출하되었다. 시장의 반응은 대단히 좋았다. 없어서 못 팔 정도였으며 얼마 후 컴팩에서 80386을 장착한 PC의 광고가 나오자 개발팀은 정말로 자랑스러워했다. 80386의 매출신장은 컴팩의 발표 이후 급속도로 증가하였다.

원래 32비트 PC를 발매할 것처럼 보였던 IBM은 32비트는 미니 컴퓨터의 영역이며 퍼스널 컴퓨터 시장은 16비트로 충분하다고 보았기 때문에 개발에 주력하지 않았다. 제품을 발표할 예정이라는 예측만을 내놓았다. 그리고 개발 중이던 운영체제인 OS/2 역시 80286을 고집하여 많은 시간지연과 MS와의 불화가 있었다.

모두들 IBM 때문에 제품을 내놓기를 꺼려했지만 기다리다 지친 신생기업 컴팩이 32비트 PC를 처음으로 선보였다. 겔싱거 회고에 따르면 이로서 PC 업계 자체가 완전히 바뀌었다고 했다. 결국 얼마 후 IBM도 386을 장착한 PC를 생산하게 되었다. 그 사이에 PC 업계의 주도권도 클론 업체로 넘어갔다.

기본적으로 386은 286에서 진화한 것이다. 보호모드 같은 것들은 불완전하지만 80286에도 있던 것들이다. 여기에 32비트의 능력을 더하고 조금 더 완전하게 만든 것이다. 일종의 대타협과 같은 80386의 개발은 당시로서는 큰 득이 될 수도 있었다. 우선 기존의 소프트웨어가 모두 수행되므로 새로운 소프트웨어를 구입하지 않아도 되서 좋았고 과거보다 높은 연산성능을 보일 뿐만 아니라 운영체제만 지원한다면 넓은 범위의 어드레싱이 가능했다.

운영체제는 업체들이 금방이라도 강력한 보호모드를 지원할 것 같은 분위기를 지원할 것처럼 이야기했지만 업체마다 반응은 달랐다. MS 측에서는 윈도 95가 나올 때까지 10년 가까이 지연되었다. 그 전에는 Win32라는 과도기적인 운영체제가 GUI를 지원했다. 사용자들은 빠른 80286이나 8088처럼 386을 이용했다. 유닉스는 80386 플랫폼의 중요성을 인식하고 80년대 후반부터 80386을 지원하기 시작했다.

리눅스는 당시 대학생이던 리누스 토발즈에 의해 1991년부터 32비트 보호모드를 지원하기 시작했다. 토발즈가 보았던 80386 교과서가 바로 겔싱거와 크로포드가 쓴 <Programming the 80386>이었다. 리눅스는 토발즈가 80386을 이해하려고 시도했던 와중에 미닉스의 소스코드와 크로포드가 쓴 책의 예제를 바탕으로 우연히 출발하였다. VMS를 바탕으로 만들었다는 윈도 NT가 포팅된 것도 바로 80386이었다.

80386은 이런 칩이 꼭 필요하던 시기에 나타나서 시장을 휩쓸었고 망할 뻔 했던 반도체 회사 인텔을 구했다. 다른 칩들보다 특별한 우위에 있던 것도 아니다. 적절한 시기에 나타나 다른 프로세서들의 의표를 찔렀다. 뛰어나지도 않고 기괴했지만 성능이 나쁜 것도 아니었다.


i386 의 의미

속도는 빨라도 명령어 세트가(Instruction Set Architecture) 같기 때에 사실상 같은 프로세서로 볼 수 있다. 이른바 IA-32 아키텍처를 갖는 x86 칩들은 기본적인 구조가 거의 같다. 이러한 보편성이 필자가 이야기했던 ISA(Instruction Set Architecture)의 존재 의미이기도 하다. 프로그래머에게는 칩의 내부는 보이지 않는다. 명령어와 레지스터만이 보일 뿐이다. ISA가 같은 칩이라면 프로그래머는 칩이 바뀌어도 별로 사용에 큰 어려움이 없다.

인텔이나 다른 메이커들도 전부 고유의 ISA를 형성하다. 내부에서 아무리 복잡한 동작이 일어나도 프로그래머는 일반적으로 레지스터와 명령어를 살피는 것 이외에는 할 일이 없다. 만약 ISA를 잘 준수해도 문제가 있다면 칩에 문제가 있다고 볼 수 있다. 그러나 IA32는 별로 변한 것이 없다. 얼마 전에 와서야 IA32의 64비트 버전이 나왔을 정도다. 논란이 많던 새로운 아키텍처 Itanium을 예외로 하면 아직은 이 정도로 서버나 개인용 PC를 돌리는데 큰 문제가 없다고 볼 수 있다.

인텔 CPU의 경우 필자가 지금까지 설명했던 프로세서 개발의 역사를 읽고 곰곰이 생각해 본다면 명령어의 체계나 사용방법이 무척 혼란스러운 이유를 어느 정도는 즉각 알 수 있다. 만약 독자들이 공부를 하기 위해 인텔의 IA-32 Intel  Architecture Software Developer's Manual을 보면 처음에는 매우 혼란스럽게 느끼는 과정은 당연한 일일 것이다. 학습에 큰 방해가 될 정도로 혼란스럽다. 운영체제는 그나마 혼란스러운 구조의 일부만을 사용한다. 그래도 문제가 없었다.

인텔의 프로세서는 적어도 퍼스널 컴퓨터에서는 사람들이 가장 많이 사용한 칩임에 분명하다. 80386의 개발이 있은 후에도 인텔은 때로는 조심스럽게 때로는 미친 듯이 후속 모델을 개발하였다, 이들의 ISA는 거의 동일하다. 그러면서 20년 동안 PC와 컴퓨터 세계를 지배했다. 불합리해 보이던 부분들도 너무 익숙해지니 별다른 문제가 없게 되었다.

혼란스러운 것들도 너무 자세히 알게 되면 더 이상 문제될 것도 없다. 그런 상태로 20년을 독과점 했으며 다른 기술적 유전자를 가진 프로세서들이 도전장을 내밀다가는 사라지고 말았다.

DNA가 고정되자 그 다음은 속도의 경쟁이 있게 되었다. 80386이 나오고 몇 년 동안 클럭은 2배가량 빨라졌을 뿐이다.

이른바 군비경쟁과 같은 것으로 칩의 속도를 몇 퍼센트 빠르게 만들기 위해 같은 무수히 많은 트랜지스터가 투입되기 시작했다. 수십만 개로도 부족하여 수백만 개 그리고 1억 개를 돌파해도 아무도 놀라지 않는다. 좋지 않게 보이는 설계라도 엄청난 개발자들을 동원하여 칩의 성능을 개선할 수 있었다. 설계가 복잡해지고 트랜지스터가 증가하는 것은 개발비와 설계비의 증가를 의미한다.

제공 : DB포탈사이트 DBguide.net

출처 : 경영과컴퓨터 [2008년 2월호]

개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
도구모음
인쇄/내보내기