Memory
Memory
Memory
CPU가 직접 접근 할 수 있는 기억 장치 (RAM)
- CPU는 언제나 RAM에 데이터가 있길 바라지만… 없을 때도 있다.
- 그러면 해당 데이터를 가지고 와야한다! → MMU
MMU
- CPU는 언제나 논리 주소만을 가지고 있다.
- 이런 논리 주소와 물리 주소는 차이가 있음
- 그렇기에 논리 주소 → 매핑 확인 → 물리 주소로 재 요청 등 오버헤드가 있음
- 그렇기에 TLB라는 캐시가 존재 (바로 메인 메모리에 접근 가능!)
- 하지만 메모리의 주소는 한정적 가장 메모리라는 개념의 등장
- 메모리 보호
- 프로세스는 각각 독립된 메모리 공간을 가져야한다.
- 잘못된 접근이 오면 trap을 발생시켜 보호한다. (base와 limit으로 주소를 제한)
가상 메모리
- 하드 디스크의 swap 영역에 메모리를 올려놓고 paging table에서 쉽게 swap in 할 수 있게 설정 해놓은 것
메모리 교체
메모리 과할당
- 페이지 폴트 (원하는 page가 메인 메모리 없을 경우) 발생 시 디스크에서 찾아야함
- 프로세스 하나를 swap out하고 빈 공간을 만들어야함
- 어떤 페이지를 교체할 것인가?
메모리 교체
- 다른 부분에서 설명
캐시 메모리
- CPU도 어느정도는 메모리를 기억 할 수 있다. → cache
- cache에 적중한다면 hit → 매우 속도가 빠름
- 얼마나 hit rate를 높일 수 있을까 → 지역성 으로~
- 캐싱 라인
- 캐시 데이터를 더욱 빠르게 참조 할 수 있도록 hashmap처럼 사용
지역성
기억 장치 내의 정보를 균일하게 액세스 하는 것이 아니라 한 순간에 특정부분을 집중적으로 참조하는 특성
- 시간 지역성
- 최근에 참조된 주소는 곧 다음에도 참조된다.
- 공간 지역성
- 방금 참조된 주소와 인접한 주소는 또 다시 참조 된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.