인텔 80386
1. 개요
1985년 10월에 출시된 인텔 80286의 후속 기종. 정식 명칭은 80386이며 간혹 i386이라고 부를 때도 있다.
2. 상세
인텔의 이전 모델에 비하여 성능이 크게 향상된 CPU로, x86 계열에서 32비트 명령어(IA-32)를 처음 정의한 32비트 CPU이다. 그래서인지 'i386'을 'IA-32'와 동일한 의미로 사용하는 경우도 있다. 오늘날 널리 사용되는 x86-64 아키텍처도 결국 IA-32의 확장이라는 점을 생각하면 오늘날까지 사용되는 PC 아키텍처의 중간 시조 쯤 되는 중요한 CPU이다.
실제 모드(Real mode)에 동작하는 MS-DOS 응용 프로그램들을 보호 모드(Protected Mode)에서 구동할 수 있는 '가상 8086 모드'(Virtual 8086 Mode)를 탑재했으며, 보호 모드로 돌아가면 리셋할 때까지 실제 모드로 돌아오지 못하는 80286의 문제점을 개선했다. MS-DOS는 1989년 4.01에 EMM386을 탑재하면서 가상 8086 모드를 지원하기 시작했다. 윈도는 윈도 2.0의 VDM(Virtual DOS Machine)부터 현재 윈도 10 32비트의 NTVDM(NT Virtual DOS Machine)까지 가상 8086 모드를 사용하여 여전히 MS-DOS 응용 프로그램 호환을 지원한다. 다만 x86-64의 롱 모드(64비트 모드)에서 가상 8086 모드를 사용할 수 없기 때문에 윈도 비스타 64비트부터 NTVDM을 제거했다.
32비트 메모리 주소를 지원해 최대 4GB의 메모리를 지원했다. 시간이 흐르면서 2010년대 즈음에는 메모리 용량 한계에 도달하게 되었지만, 1985년 당시에는 메모리 크기가 커봐야 꼴랑 2MB니 4MB니 하던 시절이라서 4GB라는 메모리는 상상할 수 없는 수준의 크기였다. OS/2와 윈도 3.0이 보호 모드를 지원했다. MS-DOS는 '실제 모드'에서 동작했지만 그에 포함된 HIMEM.SYS의 연속 확장 메모리(Extended Memory) 관리 프로그램과 EMM386.EXE의 DPMI(DOS Protected Mode Interface)가 등장한 MS-DOS 5.0부터 지원하기 시작했고, 그리고 이를 이용한 DOS4GW 같은 DOS 익스텐더로 MS-DOS 응용 프로그램들이 더 많은 메모리를 사용할 수 있는 보호 모드 기능을 적극적으로 활용할 수 있게 됐다.
또한 선형 메모리 모델(Flat Memory Model)을 최초로 도입해 8086 시절의 세그먼트:오프셋이라는 복잡한 메모리 주소 체계를 사용하지 않고 모든 메모리 영역을 하나의 메모리 주소만으로 접근할 수 있게 됐다. 그러나 기존 응용프로그램들의 호환성을 위해 세그먼테이션도 지원했다. 오늘날의 x86-64 프로세서들도 CS, DS, SS, ES의 레지스터를 이용해 세그먼테이션을 지원하지만, 롱 모드에서는 선형 메모리 모델만 사용 가능하다.
'페이징'도 이 때부터 지원하기 시작했다. 페이징이란 주 기억장치를 효율적으로 사용하기 위해 운영 체제가 보조 기억 장치에 파일을 생성해 프로세서의 가상 메모리 기능을 이용해 주 기억 장치처럼 사용하도록 하는 기법을 말한다. 오늘날의 운영 체제는 전부 지원하고 있는 기능이다. 마이크로소프트는 윈도 3.0부터 지원하기 시작했고, 윈도 ME까지 WIN386.SWP이라는 파일로 페이징으로 사용했으며, NT 계열은 윈도 NT부터 오늘날의 윈도 10까지 PAGEFILE.SYS 파일을 페이징으로 쓰고 있다. OS/2는 윈도보다 조금 늦었지만 2.0부터 지원하기 시작했으며, SWAPPER.DAT 파일을 생성해 페이징으로 썼다.
CPU를 33MHz에서 40MHz로 오버클럭해서 사용할 수도 있었는데, 이것이 오버클럭의 초기 사례로 꼽힌다. 연산 능력은 33MHz 모델을 기준으로 11.4MIPS[1] 정도로 알려져 있다.
80386이 최초로 장착된 PC는 1986년 9월에 발매된 컴팩의 Deskpro 386. 이전까지는 IBM이 IBM PC XT, IBM PC AT를 먼저 내놓았고 다른 회사들이 이를 바탕으로 IBM PC 호환기종을 만들어온 데 비해 80386은 IBM PC 호환기종 제조 회사인 컴팩에서 먼저 발매되었다는 점에서 Deskpro 386은 PC 문화의 기념비로 볼 수 있다.[2] 이 컴퓨터의 발매는 IBM PC 아키텍처의 주도권이 IBM에서 IBM PC 호환기종 회사(이후 WinTel)로 넘어가게 된 분수령이 되었다.
아직 부동 소수점 연산 장치(FPU)를 CPU에 내장하지 않았기 때문에, 80387 또는 80287 보조 프로세서를 추가 장착하여 이용할 수 있었다. 물론 80287은 80387에 비해 느렸지만 FPU가 없는 것보다는 빨랐다. 80386이 처음 나왔을 때는 80387이 아직 없었기 때문에 80287과도 동작할 수 있도록 한 것이다. 이게 아니면 CAD도 못 돌렸다.
80386은 32비트 CPU에서 후발 주자였음에도 불구하고 전작인 8086과 80286이 구축해 놓은 x86 생태계와 당대 32비트 CPU 중에서는 뛰어난 성능을 발휘하던 덕택에 대단한 성공을 거두었고 오늘날의 IA-32 아키텍처와 호환하는 x86-64 프로세서들의 뼈대가 되었다.
3. 제품
3.1. 데스크톱
출시 시기에 따라서 다양한 클럭(12~40MHz)으로 동작하는 모델들이 존재하며, 아키텍처에 따라 SX와 DX 모델로 크게 나눌 수 있다. SX 모델은 외부 데이터 버스가 16비트이고 메모리 주소 버스가 24비트이며, DX 모델은 외부 데이터 버스와 메모리 주소 버스가 32비트다. 32비트 메인보드는 비쌌기 때문에, 80386 SX는 기존의 저렴한 80286용 메인보드에 탑재할 수 있게 만들었다. 그래서 SX는 DX보다 성능이 느린 대신에 값이 저렴했다. DX가 먼저 나오고 SX가 1988년에 나왔다. 즉 SX를 DX의 염가판으로 내놓은 셈이다.
- 80386 DX: 12, 16, 20, 25, 33MHz
- 80386 SX: 16, 20, 25MHz
3.1.1. 호환 CPU
AMD와 IBM 등에서 호환칩을 생산하였다. AMD는 5년이나 지난 1990년에야 인텔의 80386 33MHz보다 높은 클럭의 40MHz 모델을 발매했는데 이는 인텔이 1987년에 AMD와의 기술 라이선스 중단을 선언했기 때문이었다. AMD는 인텔과 긴 협상을 거쳤으나 1992년 결국 중단되었다. 그 동안 AMD는 체결되어 있는 계약으로 오랫동안 리버스 엔지니어링해서 내놓은 것이 Am386 프로세서군이다. 그 당시 인텔은 80486이 나와 있었으나 가격이 부담스러운 유저층에 크게 어필했다.
- AMD Am386 DX, SX, DE(임베디드): 25, 33, 40MHz
- Cyrix Cx486 제품군의 일부: 486이라 적혀 있지만, 각각 80386SX, DX에서 486 명령어 세트에 1KB 외부 캐시 메모리를 탑재한 CPU이다.
- Cx486SLC: 20, 25, 33, 40MHz
- Cx486DLC: 25, 33, 40MHz
- Chips Super 386: 25, 33MHz
- IBM: 486SLC는 486이라 적혀 있지만, 80386SX에서 486 명령어 세트에 16KB 내부 캐시 메모리, 클럭 증폭기(Clock Multiplier)를 탑재한 CPU이다.
- 386SLC: 16, 20, 25MHz
- 486SLC: 20, 25, 33MHz
- 486SLC2: 50, 66MHz
- 486SLC3: 60, 75, 100MHz
- Blue Lightning: 80386DX에서 486 명령어 세트와 16KB 내부 캐시 메모리, 클럭 증폭기를 탑재한 CPU이다.
- 486BLC2: 50MHz
- 486BLC3: 100MHz
- Texas Instruments: 486이라 적혀 있지만 사이릭스의 486SLC, 486DLC 시리즈를 세컨드 소스로 생산한 것이다.
- TX486SLC: 20, 25, 33, 40MHz
- TX486DLC: 25, 33, 40MHz
3.2. 랩톱
i386 SL. 1990년 10월에 발매했다. 전원 관리, 시스템 하드웨어 관리와 OEM이 만든 코드들의 동작 등의 기능을 위해 시스템 관리 모드(System Management Mode)를 추가했다.
4. 대한민국의 경우
대한민국에서는 1991~1992년에 주로 이용되면서 8088이나 80286보다도 현역으로 활약한 시기가 짧았다. 이유는 80386 컴퓨터를 구매하기에는 아직 한국의 소득 수준이 충분하지 못했다. 게다가 당시에 대부분의 응용 프로그램들은 실제 모드 기반이라 보호 모드로 만든 것은 찾기 어려웠으며, 640KB 기존 메모리를 확보하거나 중첩 확장 메모리(Expanded Memory)를 사용하기 위해 CONFIG.SYS에서 EMM386.EXE를 실행한 경우, 실제 모드 응용 프로그램들을 가상 8086 모드로 에뮬레이션해 구동했기 때문에 80286보다 느릴 수 밖에 없었다. 그래서 타사에서 만든 16~25MHz의 80286 CPU에 팀킬을 당하기도 하였다. 1989년 인텔에서 80486을 발매하면서 1993년부터 PC 시장에서 자취를 감췄다.
1992년 경 용산 전자상가에는 플래그십급으로 486이 나와있었고, 주로 권장되는 것은 386이었고, 286도 팔리고 있었다. 컬러 모니터와 SVGA, 마우스, 한글카드까지는 포함했지만 사운드카드는 옵션에 흑백프린터. 그런데, 1993년이 되면서 486PC, 컬러모니터, 윈도우 가속 VGA, 사운드블래스터 호환품 구성이 팔렸고 컬러프린터가 들어가기 시작했다. 그리고 이후 나온 윈도우 95는 486은 사용가능했으며 486DX2 이상이면 한글 97이나 오피스 97까지도 어느정도 실사용 가능한 수준이었으나, 386DX로는 설치만 가능한 수준이었으며 워드패드나 그림판 조차도 돌리기 버거운 수준이었다. 그래서 장구한 DOS시대를 함께 한 8086/8088/80286 PC와, x86컴퓨터에서 본격적인 멀티미디어를 구현해냈고[3][4] 윈도우 9x와 함께 한 486PC에 비해 386PC의 수명은 짧았으며 486DX2~DX4급이 2000년대 초반 까지 일부가 문서작성용 정도로 현역으로 쓰이던것과 달리, 386급은 386DX 조차도 2000년 이전에 거의 퇴출되면서 1998~1999년 정도만 되어도 현역으로 쓰이는 것을 찾아보기 어려울 정도였다.
'''한 세대를 가리키는 용어인 386세대가 이 CPU에서 비롯되었다. 이는 486도 마찬가지. '''
5. 여담
임베디드 시스템에서는 꾸준히 이용해 2007년까지 생산했고, 현재도 다른 회사에서 호환 CPU를 생산하고 있다. 인텔의 생산 기간만 해도 20년이 넘었는데, 라이선스 생산까지 합치면 30년이 넘는 장수만세 CPU. 대표적인 예로, KTX-1 시스템에는 안정성 확보를 위해 아직도 80386 호환 CPU를 사용한다. 이유는 파이프라인 문서에도 나와 있듯, 간단히 말해 처리 속도보다 '처리 시간 정확성'이 더 중요하기 때문이다.
80386은 인텔 최초의 32비트 CPU가 아니다. 1981년에 8086을 대체하기 위한 목적으로 자사 최초의 32비트 CPU인 iAPX 432를 개발했으나, 3개의 칩으로 이루어진 복잡한 구조와 뒤떨어지는 성능으로 인하여 실패하였고(32비트 CPU임에도 불구하고 성능은 동클럭 80286의 4분의 1 수준이었다.) 이듬해에 기존의 16비트 x86 아키텍처를 개량한 80286을 내놓고 이것이 대성공하면서 iAPX432는 완전히 묻혀 버리고 말았다.
둠의 최소사양이 80386 DX이다. 그러나 정말로 최소 사양이라, 원활하게 돌리려면 80486은 기본으로 갖추고 있어야 했다. 물론 486이라 해도 SX로는 택도 없고, DX2쯤은 되어야 했다.(실제로 Doom FAQ에서도 바닐라 둠1 기준으로 권장사양이 486DX라고 명시하고 있다.) 둠 2에서는 권장 사양이 더 높아져서, 486DX가 최소 사양에 근접할 정도라는 이야기도 있다.
아케이드 기판 세이부 SPI 시스템에서 이 CPU를 사용했다.[5]
[1] 참고로 1경번연산이 가능한 것을 1PFS, 1조번 가능한 것을 1GFS, 1억번 연산이 가능한 것을 1MPS라고 한다.[2] IBM은 인텔 80386의 가상 8086 모드로 인한 메인프레임 사업부의 방해로 1987년 IBM PS/2 Model 80에서야 인텔 80386을 탑재한 컴퓨터가 등장했다.[3] 국내에서 IBM PC을 게임을 즐길 수 있는 그래픽+사운드+모니터+주변기기 구성을 기본으로 해서 세일즈하기 시작한 것이 486PC가 출시된 이후다. 국내에 CD-ROM과 인터페이스가 보급된 것도 486PC가 출시된 이후의 이야기.[4] 30핀 SIMM을 쓰다보니 2MB 이상의 메모리 묘둘을 구하기 어려워서 10MB 이상의 메모리로 업그레이드 하기 어려웠던 386과 달리 486의 경우는 중반기인 486DX2 부터는 주로 72핀 FPM SIMM을 사용하면서 메모리 용량을 윈도우 95를 실사용 가능한 수준인 16MB 정도로 업그레이드 하기 수월했었으며 72핀 SIMM이 4개인 경우 32MB 이상으로 업그레이드 하는 경우도 드물게 있었다. 특히 386 시절에 쓰이던 16비트 ISA I/O 카드가 하드디스크 인식 한계가 대부분 540MB 미만 이라서 윈도우 95를 깔고 윈도우 95용 프로그램 몇개만 깔면 금방 꽉 차버렸던것과 달리 486 시절에 쓰이던 VLB 방식의 I/O 카드 중에서는 E-IDE 방식을 도입하여 하드디스크 용량이 윈도우 95가 현역이던 시절에 많이 쓰이던 2.1GB 까지 인식 가능한 것도 있었으며 심지어 끝물인 486DX4 시절(1995~1996년)에 나온 일부 I/O 카드들은 당시 기준으로 넘사벽 수준이었던 8.4GB 까지 인식 가능한것도 있었다. 더군다나 ISA 방식 그래픽카드들의 대부분이 윈도우 가속 기능이 없었던것과 달리 VLB나 PCI 방식 그래픽카드들은 기본적으로 윈도우 가속 기능이 있었던 만큼 이런 면에서도 체감 성능이 벌어지기도 하였다. 결국 386과 486은 CPU 그 자체 성능 뿐만 아니라 주변기기의 성능도 차이가 컸기 때문에 윈도우 95가 등장하면서 운명이 극명하게 갈리게 되었다.[5] 라이덴 파이터즈 시리즈와 바이퍼 페이즈 1이 출시된 기판.