1. 80x86 계열 프로세서
ㅇ 인텔社, AMD社 제품의 프로세서 계열들을 총칭
- 인텔社
. IA-16 : Intel 8086 (1978년,16 비트 : 최초 단일칩 MPU), 8088 (16 비트)
. IA-32 : 80386 (32 비트), 80486 (32 비트), Pentium (586,64 비트), Core i7 등
. x86-64 : Intel® 64
- AMD社
2. 프로세서별 특징
ㅇ 16 비트 프로세서
- 메모리 세그먼트 구조에 기반을 둠
ㅇ 32 비트 프로세서
- 기존 16 비트 프로세서와의 호환성 유지
- 최대 64 GB의 물리 주소 공간
- 8개의 32 비트 범용 레지스터
- 6개의 16 비트 세그먼트 레지스터
- eflags 플래그 레지스터
- eip 포인터 레지스터
ㅇ Pentium 프로세서
- Super Scalar Structure
. 단일 클럭 동안 2개 명령어 실행 가능
. (CPU 내 다수 명령어 파이프라인을 두어, 동시에 명령어들을 수행 가능케한 구조)
- 내부 버스 : 32 비트
- 외부 데이터 버스 (메모리 연결) : 64 비트
. 단일 버스 클럭 동안 64 비트 전송 가능
ㅇ 프로세서 변천
- 단일 코어 (single-core) -> 멀티 코어 (multi-core) -> 매니 코어 (many-core)
3. 메모리 접근 방식
※ ☞ 세그먼트 참조
- (Segment-register : Byte-address)
- IA-32 : CPU -(논리주소)-> 세그먼트 장치 -(선형주소)-> 페이지 장치 -(물리주소)-> 물리메모리
4. 레지스터
ㅇ x86 - 32 비트 계열
- General Purpose Register (32 비트는 8개)
. eax, ebx, ecx, edx, esi, edi, ebp, esp
- Segment Register (16 비트 6개) : 메모리 세그먼트의 식별용 ☞ 세그먼트(Segment) 참조
. cs, ds, ss, es, fs, gs
- Floating Point Register
- Control Register
- Debug Register
- eip (Instruction Pointer Register) ☞ Program Counter 참조
. 다음에 실행될 명령어의 코드 세그먼트 내 오프셋
- eflags Register (Status Flag Register) (32 비트)
. 프로그램 실행 상태 및 제어 정보
- ...
ㅇ x64 - 64 비트 계열
- GPRs (General Purpose Register) : 64 비트용 16개 (32 비트는 8개)
. r0 ~ r15
. r0 (rax), r1 (rcx), r2 (rdx), r3 (rbx), r4 (rsp), r5 (rbp), r6 (rsi), r7 (rdi)
.. rsp (Stack Pointer Register)
.. rbp (Base Pointer Register)
- rip (instruction pointer register) ☞ Program Counter 참조
- rflags (Status Flag Register)
. 프로그램 실행 상태 및 제어 정보
. 例) 방금 연산 결과가 음수이냐, 오버플로우가 발생되었는가 등
- XMM Reister
- ...
5. 동작 모드
ㅇ 구분
- Protected mode
. 프로그램들이 분리/격리된 메모리 공간(Segment) 내 국한케 함
- Real-address mode
- System management mode
. 전력 관리,시스템 안정성 제고 등을 위함 (주로, 초기 셋업 시 많이 활용)
- long mode
. 기존 모델 호환성 없이, 단지, x64에서 만 가능
ㅇ 리얼 모드 (Real Mode)
- 부팅시 일단 리얼 모드로 동작 시작
- 20 비트 메모리 주소 공간 (220 = 1,048,576 ≒ 1 MB)
- 직접 BIOS,주변장치까지도 접근 가능
. 단, 메모리 페이징,리얼타임 멀티태스킹을 위한 하드웨어 지원 불가
ㅇ ... (작성중) ...