x86 프로세서의 구조 - 7화
마라톤 준비겸 매일 뛰는데... 이거 장난 아니게 힘드네요 ;;;
그 만큼 뛰는 걸 게을리 했다는 반증이겠지요.. 반성하고 있습니다. 조금만 나태해지면 생기는 현상이며
또한 한가지 교훈은, 자신이 포기했던 부분은 결국 시간이 지나서 다시 그 지점부터 시작해야 한다는 점입니다.
아무튼 이번 시간에는 x86프로세서의 구조에 대해서 계속 스터디를 이어가겠습니다.
세그먼트와 주소 지정
- 선형주소: 8086(또는 real mode)에서 20 bit 크기 => 최대 1MB 메모리 참조 가능
80286 보호모드에서 24bit 크기 => 최대 16MB 메모리 참조 가능
80386 이상 보호모드에서 32 bit 크기 => 최대 4GB 메모리 참조 가능
- 선형주소와 물리적 메모리 주소의 관계
: paging을 사용하지 않으면 선형주소 = 메모리 주소
paging을 사용하면: 선형주소 ≠ 메모리주소
- 세그먼트 레지스터와 세그먼트 시작 주소 지정
동작모드 |
Segment register 값의 내용 |
8086 또는 80286 이상 real mode |
20-bit segment 시작주소의 상위 16-bit |
80286 보호모드 |
24-bit segment 시작주소들을 저장한 테이블의 인덱스(-> segment selector 라고 부름) |
80386 이상 보호모드 |
32-bit segment 시작주소들을 저장한 테이블의 인덱스 (그리고 32-bit offset 사용) |
real address mode 에서의 주소지정
- segment 와 offset을 사용한 주소 지정
: 8086의 register는 16 bit 크기 => 최대 64KB 메모리 참조 가능
8086에서 16 bit segment register 들을 추가로 사용하여 => 20 bit 메모리 주소 제공
이상 지금까지 x86 프로세서의 구조 - 7화 였습니다. 감사합니다 :)