
베이스 바운드 레지스터 사용 시그림과 같이
스택 - 힙 사이 공간은 사용되지 않아도 주소 공간을 재배치 할 때 물리 메모리를 차지함
위 문제를 해결하기 위해 탄생한 아이디어
세그멘테이션: MMU안에 오직 하나의 베이스&파운드 쌍이 존재하는 것이 아닌 주소 공간의 논리적인 세그먼트 마다 베이스와 바운드 쌍이 존재
세그멘트: 특정 길이를 가지는 연속적인 주소 공간
기준으로 삼은 주소 공간에는 코드, 스택, 힙 이 세 가지의 세그먼트 존재

HW는 가상주소가 어느 세그멘트를 참조하는지, 세그멘트 안에서 오프셋은 얼마인지 어떻개 알까?
일반적인 접근법은 가상 주소의 최상이 몇 비트를 기준으로 주소 공간을 여러 세그먼트로 나눔
위의 예시에서는 세그먼트가 3개
주소공간을 세그먼트로 나누기 위해 2비트 필요
00이면 코드
01이면 힙
이런 식으로

가상 주소 4200을 변환해보면 아래와 같음

01이니 힙
0000 0110 1000 는 104
스택은 다른 세그멘트와 다르게 반대 방향으로 확장
베이스가 10이고 바운드가 4면
끝이 14가 아니라 6임
증가 방향을 0/1로 설정해줘야


문제 해결
