반응형
참고 사이트: 메모리 관리 장치 - 위키백과, 우리 모두의 백과사전
MMU(Memory Management Unit)
MMU는 일반적으로 CPU내부에 위치해 있으며, 가상 메모리 주소를 물리 메모리 주소로 변환하는 하드웨어입니다. 또한 메모리 관리와 보호를 강화하고 효율적인 메모리 접근을 보장하는 데 중요한 역할을 합니다.
TLB(Translation Lookaside Buffer)
TLB는 MMU의 내부에 위치해 있으며, 자주 사용하는 페이지 테이블 엔트리를 저장하여 빠르게 읽을 수 있게 해주는 캐시 하드웨어입니다.
MMU가 가상 메모리 주소를 물리 메모리 주소로 변환하는 과정에서 만약 TLB에 변환 정보가 있다면 MMU에게 바로 변환된 물리 주소를 넘겨줍니다.
MMU의 동작 원리
MMU는 다음과 같은 방식으로 동작합니다.
- CPU가 가상 주소를 생성하여 MMU에 전달:
- 프로그램이 메모리에 접근할 때 CPU는 페이지 번호와 페이지 오프셋으로 구성된 가상 주소를 생성합니다.
- CPU는 이 가상 주소를 MMU에 전달하여 물리 주소로 변환을 요청합니다.
- MMU가 TLB를 참조하여 페이지 변환 정보 조회:
- MMU는 가상 주소를 물리 주소로 빠르게 변환하기 위해 TLB(Translation Lookaside Buffer)를 먼저 참조합니다.
- TLB 히트일 경우 TLB에 변환 정보가 있다면 MMU는 변환된 물리 주소를 바로 가져옵니다.
- TLB 미스일 경우 페이지 테이블 참조:
- TLB에 원하는 페이지의 변환 정보가 없다면, MMU는 페이지 테이블(Page Table)을 참조합니다. 이 경우를 페이지 폴트(Page Fault)라고 합니다.
- 페이지 테이블에서 해당 가상 페이지 번호에 대응하는 물리 프레임 번호를 찾습니다.
- 물리 주소 생성:
- 변환된 물리 프레임 번호와 가상 주소의 페이지 오프셋을 결합하여 최종 물리 주소를 생성합니다.
- TLB에 변환 정보 캐싱:
- 변환된 페이지와 프레임 정보를 TLB에 저장하여, 이후에 동일한 가상 주소 접근 시 TLB를 참조하여 빠르게 변환할 수 있도록 합니다.
반응형
'프로그래밍 > CS' 카테고리의 다른 글
[CS] 데드락(Deadlock) (0) | 2024.11.25 |
---|---|
[CS] 뮤텍스(Mutex)와 세마포어(Semaphore) (2) | 2024.11.19 |
[CS] 세그멘테이션 (0) | 2024.11.04 |
[CS] 물리 메모리와 가상 메모리 (0) | 2024.11.04 |
[CS] 페이징(Paging) (0) | 2024.10.22 |