컴퓨터 성능 개선을 위한 메모리 관리
* Cache 메모리 전송을 위한 다양한 매핑 기법
* 가상 메모리
* 메모리 관리 하드웨어
Cache 메모리 전송을 위한 다양한 매핑 기법
* Cache 메모리의 매핑 프로세스
- Associative mapping
- Direct mapping
- Set-associative mapping
* 상기의 내용을 설명하기 위해 다음과 같은 설정을 가정해본다
- 주 기억 장치 : 12bit 32K워드를 저장
- cache memory : 512 words/주어진 시간 내 저장
- CPU는 main/cache memory 모두 통신 가능
- 우선 15bit의 주소를 cache로 보내어 hit가 발생하면 cache로 부터 12bit의 데이터를 받아들인다
- 만약 miss가 발생하면 주기억장치로부터 워드를 읽고, 이를 cache로 이동 저장한다
* associative mapping
- 가장 빠르고 융통 있는 cache 구조
- CPU의 15bit 주소는 인자 레지스터에 놓여지며, associative memory내 주소와 같은 12bit의 데이터를 어 CPU로 보낸다
- Miss인 경우 CPU는 주 기억 장치에서 해당 자료를 찾아 cache로 옮긴다
- 만약 cache에 여유 공간이 있다면 그 공간에 주소와 데이터를 저장한다
- 하지만 cache가 꽉차 있을 경우 기존 cache의 주소와 데이터 쌍 중 주어진 알고리즘에 의해 해당 주소 데이터 쌍이 새로운 쌍으로 대체 된다
* 모든 숫자는 8진수
* Direct mapping
- RAM에 구현 한 cache memory
- 15bit (CPU address) = 6 bit (Tag field) + 9 bit (index field)
- Index field - cache의 색인 주소로 활용
- Tag field - cache에서 동일한 index로 충돌이 발생 시 활용
* 동일한 인덱스의 다른 태그를 보유한 두 개 이상의 워드가 반복하여 접근 할 경우 히트율이
현저히 떨어질 가능성이 높다 - locality of reference
* Set - associative mapping
- Cache의 각 워드는 같은 인덱스 주소 아래 두 개 이상의 메모리 워드를 저장할 수 있게 함으로써
직접 매핑의 단점을 보완한 논리이다.
- Cache 메모리의 크리 - 512 x 36 (= 2 x (6 + 12))
- 큰 규모의 cache는 히트율을 높일 수 있으나 좀 더 복잡한 비교 논리회로를 필요로 한다
- 기존 데이터의 대체 알고리즘이 복잡해 진다
* 다중 캐쉬 (Multilevel Caches)
- CPU와 메인 메모리 사이에 위치하는 프라이머리 캐쉬 - 작지만 매우 빠르다 (= CPU 속도)
- Level-2 캐쉬 - 프라이머리 캐쉬 보다는 크지만 여전히 D-RAM보다는 현저히 빠른 속도
- L-3 캐쉬
가상 메모리
* 가상 메모리 (Virtual memory) VS 캐쉬 메모리 (Cache memory)
* 가상 메모리 시스템 (Virtusl memory)
> 설치 위치 : 보조기억 장치와 주기억장치 사이에서 데이터 전송을 관리
> 사용 목적 : CPU에 의해 현재 사용되고 있지 않은 자료 및 프로그램을 보관
> 활용 방안 : 페이지를 사용하는 주소 매핑 / Associative 메모리 페이지표 / 페이지 교체
* 캐쉬 메모리 시스템 (Cache memory)
> 설치 위치 : 주기억장치와 CPU사이에서 정보교환
> 사용 목적 : 가장 사용 빈도가 높은 프로그램 및 데이터를 저장 활용
> 활용 방안 : Direct mapping / Associative mapping / Set-associative mapping
메모리 관리 하드웨어
* 메모리 관리 시스템
- 메모리 광역화 (가상 메모리 + 캐쉬 메모리)와 멀티 프로그램의 발달로 인한 시스탬내 상호 간섭도 시스템 기능 저하 요인의 중요한 부분이다
- 프로그램과 프로그램 사이의 데이터 흐름, 선후 데이터의 활용, 사용 메모리의 양 조절, 다른 프로그램의 흐름에 영향을 끼치지 못하게 하는 제어 등의 역할을 담당
- 메모리 내의 여러 프로그램을 관리하기 위한 H/W와 S/W 절차의 집합체로 메모리 관리 소프트웨어는 운영체제 (Operating System)의 일부이다
* 메모리 관리 하드웨어
- 논리 메모리 참조를 논리 메모리 주소로 변환하는 동적 저장장소 재배치를 위한 기능
- 메모리내에서 서로 다른 사용자가 하나의 프로그램을 같이 사용하기 위한 편의
- 사용자 간의 허락되지 않은 접근을 방지하고 사용자가 OS의 기능을 변경하지 못하도록 하는 정보의 보호
출처 : 제로베이스
'공부 Note > 컴퓨터 구조' 카테고리의 다른 글
Chapter 06 입출력 구조 (1) (0) | 2022.02.24 |
---|---|
Chapter 05 메모리 구조 (4) (0) | 2022.02.24 |
Chapter 05 메모리 구조 (2) (0) | 2022.02.24 |
Chapter 05 메모리 구조 (1) (0) | 2022.02.24 |
Chapter 04 파이프라인과 벡터처리(4) (0) | 2022.02.24 |