인텔 CPU, 8086부터 80286까지 프로세서


1. 8086

1978년에 출시된 8086은 인텔에서 개발한 최초의 16bit 프로세서입니다. 8086의 20bit 어드레스 버스를 이용해 최대 1MB까지의 메모리 영역을 사용할 수 있었으며, 이를 위해 세그먼트 : 오프셋 방식을 도입하게 됩니다. 이 1MB의 영역중 384KB는 롬 영역으로 사용할 수 없었으며 실제로는 640KB의 영역만을 사용할 수 있었습니다.

8086은 크게 BIU(Bus Interface Unit)과 EU(Excution Unit)으로 나눌 수 있습니다. BIU는 프로세서와 외부 장치간의 데이터 전송을 담당하고 EU는 BIU로부터 받아들인 데이터와 명령을 수행합니다.

8086은 4.7MHz 부터 10MHz까지 제품에 따라 다양한 클럭 속도를 가지고 있으며 부동 소수점 계산 기능이 없어 보조 프로세서(코프로세서)인 8087을 장착해야만 부동소수점 계산이 가능했습니다. x86의 코프로세서에 대해서는 다음 블로그를 참조하시기 바랍니다. http://dojeun.egloos.com/318998

8080에 비해 8086은 10배 정도의 연산 성능을 보여주었습니다. 이는 이전의 8bit 프로세서와는 상대가 되지 않을 정도로 빠른 속도였으며, 이때부터 16bit 프로세서의 시대가 도래하게 됩니다. 8086 이후부터 x86이라는 개념이 도입되며 이후 시리즈는 80286, 80386 등으로 이어지게 됩니다.

(출처 - http://blog.naver.com/whiteeklim/70082423353)



2. 8088

8086이 발표된 1년 후인 1979년 인텔은 8088을 출시합니다. 8088은 86과 마찬가지로 주소 지정에 20bit을 사용해 1MB 메모리 영역을 사용할 수 있었고 내부적으로는 16bit의 버스를 가지고 있었지만, 프로세서의 생산 단가를 더 낮추고 8086의 문제점이던 8bit 8080과 같이 사용되던 주변기기들과의 호환을 위해 외부 버스를 16bit->8bit로 낮추어 설계된 프로세서입니다. 8088은 IBM PC/XT (eXtra Technology)에 탑재되어 판매되었습니다.



3. 80186 / 80188

80186과 80188은 각각 8086과 8088의 후속 제품입니다. 뒤이어 개발된 80286과 같이 기능의 추가로 인한 아키텍처 변경은 없이 8086 시리즈에 주변 IC가 더욱 집적화되고 프로그램의 소형화가 이루어졌으며 명령어가 몇가지 추가되었습니다. 80188은 8088과 같이 80186에서 외부 데이터버스만 8bit로 줄여 출시된 제품입니다.

80186에 대해서는 다음 위키를 참조하시기 바랍니다.

http://ko.wikipedia.org/wiki/%EC%9D%B8%ED%85%94_80186








4. 80286

80286은 1982년 개발된 16bit 프로세서로 16bit 데이터 버스, 24bit 어드레스 버스를 가지고 있습니다. 1984년부터 IBM PC/AT (Advanced Technology)에 탑재됩니다. 80286은 이전 8086에 비해서 같은 클럭에서 수행속도가 2배정도 향상되었으며 주소 지정에 24bit를 사용하므로 최대 16MB까지 메모리를 사용할 수 있었습니다.

80286에서는 8086/8088과의 호환성을 위해 Real Mode를 제공했으며, Protected Mode도 추가적으로 제공해 멀티 태스킹과 최대 1GB의 가상 메모리도 지원하기 시작했습니다. 하지만 BIOS와 DOS의 서비스를 사용할때마다 보호모드와 실제모드를 오가는 동작 메커니즘을 가지고 있었으므로(286 Standard Mode) CPU의 지속적인 모드 전환으로 인해 성능이 떨어지게 됩니다. (이로인해 윈도우는 보호모드에서 동작하는 디바이스 드라이버를 만들고 동작하도록 함으로써 문제를 해결했습니다. *.drv).

또한 80286에서은 24개의 어드레스 라인중 20번을 키보드 컨트롤러 칩(8042)의 하나의 핀과 함께 AND 게이트로 묶습니다. 이러한 286 프로세서의 칩 설계구조 상의 특수함때문에 CPU의 모드를 보호모드로 교체하지 않아도 1025 - 1088 에 해당하는 64KB(실제로는 0xFFFF:0x0010 - 0xFFFF:0xFFFF 까지의 64KB - 16byte)인 HMA(High Memory Area)을 사용할 수 있게 되었습니다.

이에 대해서는 아래의 블로그를 참고하시기 바랍니다.

http://leejil.egloos.com/586646

8086이 EU과 BIU로 구성되어있는것에 비해 80286은 독립적으로 동작하는 4가지 모듈(Bus Unit, Address Unit, Instruction Unit, Excution Unit)으로 구성되어 있습니다. 버스 유닛은 외부 장치와의 인터페이스를 담당하고 어드레스 유닛은 논리주소로부터 물리주소를 생성합니다. 명령 유닛은 받은 명령을 해석하고, 실행 유닛이 해당 명령을 실행하게 됩니다. 8086이 코프로세서로 8087을 사용했다면, 80286은 80287을 사용합니다. 하지만 8086 / 8087과는 다르게 80287은 IO 버스를 통해서 CPU에 연결되므로 명령이 CPU용인지 아니면 NDP(Numercal Data Processor)용인지를 조사할 필요가 없었고, 부동 소수점 연산이 필요할 경우에만 작동했기때문에 CPU와 병행 동작이 가능했습니다.

자세한 내용은 다음 블로그를 참고하시기 바랍니다.

http://dojeun.egloos.com/318994






덧글

  • DFD 2011/11/15 19:24 # 삭제 답글

    사진 ,자료 퍼갑니다
댓글 입력 영역


시계

라운드 시계

위키피디아