-
[OS] - MemoryCS/면접준비 2022. 9. 30. 14:26
Memory
Main Memory
- 주 기억장치라고도 불린다.
- CPU가 직접 Access 가능한 기억장치
- Process가 실행되려면, Program이 Memory에 올라와야 한다.
- Cpu는 Register가 지시하는데로 Memory에 접근하여 수행할 명령어를 가져온다.
- 명령어 수행 시 Memory에 필요한 Data가 없다면, 데이터를 가져와야 한다.
- 이 때 도움을 주는 것이 MMU
MMU ( Memory management Unit )
- Logical Address -> Physical Address로 변경하여 준다.
- Memory 보호, Cache 관리, Cpu Memory 접근 을 관리하여 준다.
- Base+Limit을 활용하여 접근가능한 메모리의 영역을 알고 이외의 영역에 접근 시 Trap이 발생
- 안정성을 위해 Base+Limit은 Kernel에서 관리한다.
- Physical Memory의 공간이 한정적이기 때문에 사용자에게 더 많은 메모리를 제공하기 위한 Virtual Memory가 나오게 되면서 Virtual Address라는 개념이 등장
- Virtual Address에서 Real Data(Physical Memory)가 있는 곳에 Access 하기 위해서는 빠른 주소 변환이 필요한데 이를 도와준다.
- MMU가 없다면, CPU는 Physical Memory에 직접 접근해야 하는 부담이 있다.
- 사용자가 기억장소를 일일히 할당해야 하는 불편을 겪는다.
- Process의 크기가 실제 메모리 용량을 초과해도 실행 가능하게 해준다.
캐시 메모리
- Main Memory에 저장된 내용 중 일부를 임시로 저장한다.
- Processor(CPU)와 Main memory의 성능 차이로 성능 저하를 방지 하기 위해 존재한다.
- CPU가 이미 보았던 것을 재참조 시 Memory 참조, 인출 과정을 줄여 Cost를 줄여준다.
- CPU 에서 Address를 Cache에 전달 -> 존재한다면 Hit 하고 Data 전달
- CPU 에서 Address를 Cache에 전달 -> 존재하지 않으면 Miss -> Main Memory 접근 -> 데이터 인출 -> Cache 저장 -> CPU 전송
Cache Hit
캐시의 적중률을 높이기 위해 지역성의 원리 사용
- 지역성 = 기억 장치 내에 정보를 균일하게 Access하지 않고 순간에 특정 부분을 집중적으로 참조
- Time 지역성 = 최근에 참조된 Address는 곧 참조
- Space 지역성 = 실제 프로그램이 참조한 주소와 인접한 주소 내용이 다시 참조
캐싱 라인
- 데이터들이 캐시에 저장한다 해도 모든 Data를 순회하는 것은 시간 낭비가 된다.
- 목적 Data가 저장되었을 때 바로 접근하여 출력할 수 있도록 특정 자료 구조를 사용하여 묶음으로 저장한것
- 결국 어떻게 Mapping하여 속도를 향상 시킬 것인가
1. Direct Mapping
- Main Memory를 일정한 크기의 Block으로 나누어 캐시의 정해진 위치에 Mapping
- 간단하며 구현이 쉽다.
- Hit Rate가 떨어진다.
- 동일한 캐시 메모리에 사용되는 여러 데이터들을 사용할 때 충돌이 발생한다.
2. Full Associative Mapping
- 캐시 메모리 빈 공간에 마음대로 주소를 저장하는 방식
- Insert는 빠르지만, 조회 시에는 모든 Tag를 탐색해야 할 수 있다.
3. Set Associative Mapping
- Direct Mapping과 Full Associative Mapping의 사이 단계로 빈공간에 저장하되, 특정 행에만 저장이 가능하다.
- Insert와 조회가 중간 속도를 거치기 때문에 가장 많이 사용
Cache Miss
- CPU가 참조하려는 Data가 Cache에 없을 때
1. Compulsory Miss
특정 Data에 처음 Accss
2. Capacity Miss
Cache Memory에 공간 부족
3. Conflict Miss
A와 B가 같은 Cache Memory에 Mapping
'CS > 면접준비' 카테고리의 다른 글
[컴구] - 컴퓨터의 구성 (0) 2022.09.30 [OS] - File System (1) 2022.09.30 [OS] - Paging Algorithm (0) 2022.09.30 [OS] - Paging / Segmentation (0) 2022.09.30 [OS] - Semaphore / Mutex (0) 2022.09.30