본문 바로가기
전공수업/컴퓨터 구조

x86 Architecture - 8086, 80386 CPU

by JooRi 2024. 4. 10.
728x90
SMALL

* 8086 CPU

Intel 8086 CPU
8086 내부구조

8086 CPU의 내부구조는 EU와 BIU로 구분된다.

 

EU(Execution Unit)

명령 실행을 담당한다.

- ALU

- Flag Resister

- General Resister: Ax, Bx, Cx, Dx

- Pointer Resister: SP(Stack Pointer), BP(Base Pointer) 

- Index Resister: SI(Source Index), DI(Destination Index)

 

BIU(Bus Interface Unit)

CPU가 외부 memory 및 I/O controller와의 통신을 위한 Address bus + Data bus + Control bus 신호를 generate 한다.

- Segment Resisters: CS, DS, SS, ES

- IP(Instruction Pointer) 또는 PC(Program Counter)

 

위 내용을 정리하면 아래와 같다.

 

구분 종류 기능
범용 레지스터(General Resister) AX, BX, CX, DX 데이터 저장
포인터 레지스터(Pointer Resister) SP(Stack Pointer)
BP(Base Pointer)
스택 위치 가리킴
Stack Frame 가리킴
인덱스 레지스터(Index Resister) SI(Source Index)
DI(Destination Index)
데이터의 근원지 가리킴
데이터의 목적지 가리킴
플래그 레지스터(Flag Resister) Flag Resister ALU 연산 결과 반영
세그먼트 레지스터(Segment Resister) CS(Code Segment)
DS(Data Segment)
SS(Stack Segment)
ES(Extra Segment)
코드 영역 주소 저장
데이터 영역 주소 저장
스택 영역 주소 저장
기타 영역들 주소 저장
IP(Instruction Pointer) IP 다음에 실행될 명령어 주소 저장

 

 

Instruction

명령어는 operation code와 operand로 구성된다.

ex) add ax, bx에서 add는 operation code, ax와 bx는 ㅐoperand이다.

 

 

IP(Instruction Pointer)

IP는 다음에 실행될 명령어 주소(offset address)를 가리키고 있다.

Intruction Pointer

program이란 특정 기능을 수행하기 위해 일련의 순서를 가지고 모여 있는 명령어의 집합이다.

 

Program이 실행되는 과정은 아래와 같다.

1. Memory에 저장된 명령어 fetch

2. CPU 내부에서 해석(instruction decoding)

3. Run

 

 

Segment

프로그램은 크게 code(또는 text) 부분과 data 부분으로 분리할 수 있다.

- Code 부분: 프로그램의 logic

- Data 부분: logic 수행 시 필요한 대상

segment

위 사진을 보면 'Memory address = Segment base address + offset'이다.

 

memory는 physical memory와 virtual memory로 나눌 수 있다.

virtual memory는 멀티태스킹을 지원하기 위해 개발된 메모리 기법으로, 모든 process는 자신만의 virtual memory를 가지고 있다.

 

Address는 physical address와 logical address로 나눌 수 있다.

Logical address는 실행하고 있는 프로그램의 관점에서 참조하는 주소이다.

 

* 80386 CPU

32비트 CPU로, 멀티태스킹 지원을 위한 기능이 내부적으로 구현되어 있다.

80386 CPU

 

Running Modes

1. Real Mode(RM)

Power on 되면 RM으로 동작한다.

8086으로 동작하지만 내부의 32비트 레지스터를 사용할 수 있다.

한 번에 하나의 프로그램만 수행한다.(멀티태스킹 지원 x)

 

2. Protected Mode(보호모드)

멀티태스킹, protection 기능이 CPU에 의해 지원된다.

 

 

Address Translation

- Physical Address(PA): 메인 메모리의 주소, 주소 버스로 전달되는 주소

- Logical Address(LA): 프로그램의 code에서 사용하는 주소, 메인 메모리와 상관x

 

주소 변환

80386에서 LA

LA가 Translation 되어 Linear Address로 변환된다.

즉, Protected mode에서의 Linear Address는 base address와 offset으로 나타낸 가상주소 Virtual Address이다.

 

8086에서 LA

세그먼트 레지스터와 오프셋으로 구성된 논리적 주소이다.

이 LA는 세그먼트를 4bit 시프트(shift)하고 오프셋을 더하여 물리주소로 변환한다.(Real mode에서의 Linear Address)

 

728x90
LIST

댓글