2장. 80386 프로세서 (1/3) 

 

2.1. 개요

 8086/88의 후속작은 보호모드를 최초로 지원하는 CPU 80286이다. 이때 당시 MS-DOS가 주로 사용되었기 때문에 80286에서 보호모드를 사용하는 경우는 거의 없었다. 80286은 8086과 같이 16비트 CPU이다. 보호모드를 지원하는 것과 주소 버스가 24비트(16MB 메모리 지원)인 것을 빼면 8086과 다를 빠 없었다. (속도가 빠른 8086 이라고 보면 된다.) 그래서 80286은 그냥 이 정도 설명에서 넘어가도록 하겠다.

 

 80386(Intel386 DX)은 싱글유저 응용프로그램과 MS-DOS나 Windows같은 운영체제를 위해 디자인된 32비트 프로세서이다. 32비트 레지스터들과 32비트의 데이터버스, 주소버스를 가지고 있다.

이 프로세서는 4기가의 물리적 메모리(2의 32승)와 64테라바이트(2의 48승)의 가상 메모리를 지원한다. 80386이 중요한 이유는 이후 등장하는 모든 32비트 CPU가 80386을 근간으로 개발되었기 때문이다. 이를 IA-32 프로세서라고 한다. 때문에 80386은 모든 8086 family(8086, 8088, 80186, 80188, 80286)들과 하위 호환성을 지원한다. 또한 80386은 실제모드, 보호모드, 가상 8086모드 의 3가지 동작 모드를 지원한다. 여러모로 8086이나 80286의 내부구조에 비해 많은 부분이 변하였다.

 

 

[표 2-1-1] 참고

CPU 출시년도 트랜지스터수 제조 공정 패키지 최대 클럭 외부 데이터 버스 레지스터 주소 버스 L1 Cache L2 Cache
80286 1982 134,000 1.0 microns 68 pin PLCC or PGA 12.5 MHz 16 16 24 none none
80386 1985 275,000 1.0 microns 132 pin PGA or QFP 33 MHz 32 32 32 none external

 

2.2. 기본 구조 (Base Architecture)

 80386은 중앙 처리 장치(CPU, a central processing unit)과, 메모리 관리 장치(MMU, a memory management unit), 그리고 버스 인터페이스 장치(BIU, Bus Interface Unit)로 구성된다.

 

CPU(Central Processing Unit) 중앙처리장치는 실행장치(EU, execution unit)와 명령어 장치(instruction unit)로 구성된다. 실행장치(EU)는 ALU(arithmetic logic unit)와 8개의 32비트 범용 레지스트를 가지고 있다. (8086의 레지스터는 16비트) 80386도 8086처럼 명령어의 인출과 실행을 겹치도록하여(파이프라인 구조), 시스템의 성능을 최적화 시킨다.

 

MMU(Memory Management Unit) 메모리 관리 장치는 세그멘테이션 장치와 페이징 장치로 구성된다. 자세한 내용은 세그먼테이션 기법, 페이징기법에서 다룬다.

 

BIU(Bus Interface Unit) 이 장치는 여러 제어 신호와 함께, 386의 32비트 주소 버스와 데이터 버스를 관리한다. 8086의 BIU처럼 프로세서가 명령어 인출을 기다리지 않도록 명령어 큐를 가득채우는 일을 한다.(80386에서는 명령어 큐 16바이트로 확장)

 

[그림 2-2-1] 80386의 기본 구조

 

  

2.3. 동작모드 

 

2.3.1. 실제모드 (real mode)

 CPU에 처음 전원이 들어오면 80386은 실제 모드에서 시작된다. 이 모드의 80386은 8086과 기능이 완전히 동일하다.

주소 선은 20개의 하위 비트 A0-A19만 사용 되서 주소 공간이 1MB로 제한된다. 상위 주소선 A20-A31은 비활성화 된다. 그리고 8086의 세그먼티드 메모리 주소 지정 방식이 사용되며, 각 세그먼트의 크기는 64K로 제한된다. 또한 프로그래머는 80386의 32비트 레지스터를 사용할 수 있다.

 

2.3.2. 보호모드 (protected mode)

 80386의 강력하고, 고유한 기능을 사요하기 위해서는 보호모드에서 작동 되어야 한다. 보호모드에서는 가상메모리(세그먼테이션과 페이징 기법)을 지원하고, 개별 테스크에 특권 수준을 부여 하는 기능을 제공한다. 하위 특권 수준의 테스크는 상위 특권 수준을 가지고 있는 세그먼트의 프로그램이나 데이터를 엑세스 할 수 없다. 이 방식으로 운영체제는 각각으로부터 자신이 보호되도록 여러 개의 프로그램을 수행 시킬 수 있다. 자세한 부분은 보호 모드에서 알아 보도록 하자.

 

2.3.3. 가상 8086 모드(virtual 8086 mode)

 이 모드에서는 80386은 각각의 실제 모드 프로그램에 자신의 1MB 메모리 블록을 할당한다. 이러한 방식으로 여러 개의 8086/88 프로그램을 각각으로부터 보호하면서 동시에 실행할 수 있다. 동시에 실행시킬 수 있는 프로그램의 수는 제한이 없다. 가상 386모드는 보호 모드의 특징이다. (동시에 보호모드와 가상 8086모드를 동작 시킬 수 있다.) 각 8086테스크에는 가장 낮은 특권 수준이 부여되므로 다른 세그먼트에 있는 프로그램이나 데이터는 엑세스할 수 없으며, 따라서 각 테스크가 보호된다.

 

'80x86 프로세서' 카테고리의 다른 글

3장. 일반적인 개념들  (0) 2010.04.12
2장. 80386 프로세서 (3/3)  (0) 2010.04.12
2장. 80386 프로세서 (2/3)  (0) 2010.04.12
1장. 8086/8088 프로세서 (2/2)  (2) 2010.04.12
1장. 8086/8088 프로세서 (1/2)  (3) 2010.04.12

+ Recent posts