Cache Memory
CPU 근처 혹은 내부에 있는 소형 저장 장치로 CPU가 곧 필요로 할 데이터를 저장한다.
메모리에서 성능 평가 방법
1. 시간적 성능
- Access time : 할당된 주소에 접근하여 해당하는 데이터를 받아 오기 까지 걸리는 시간
- Cycle time : 하나의 요청 뒤 그 다음 요청까지 걸리는 시간 access time + α
2. 처리율(throughput)
- Transfer rate (전송률, bps) : 초당 몇 비트 (혹은 바이트)를 전송하는가
Cache의 성능 평가
히트율이 높을 수록, 캐시가 메인메모리에 비해 빠를 수록 성능이 좋다.
Cache의 종류
- Unified Cache : 명령어와 데이터가 같이 저장되는 캐시
- Split Cache : 명령어와 데이터를 따로 분리하여 저장하는 캐시
Unified cache의 경우 Instruction cycle이 파이프라인 구조로 실행될 때 cache에 의해 resource hazard가 발생하는 문제가 있다. 그 해결책으로 주로 Level 1 cache에서 split cache를 사용한다.
Memory Hierarchy (메모리 계층 구조)
CPU에 비해 느린 메인 메모리를 보완하기 위해 메모리에 계층을 둔다. 가격 대비해서 큰 용량과 빠른 속도를 얻는 것을 목적으로 하는 구조이다.
메모리 접근 방법
- Sequential Acccess : 순차적인 데이터 접근 방식으로 접근 시간이 가변적이다.
- Direct Access : 직접 접근하는 방식으로 디스크 헤드가 해당 데이터 위치까지 이동하는 시간에 의해 가변적이다.
- Random Access : 무작위로 데이터를 접근하는 방식이다. 데이터 접근 시간이 같다.
- Associative : 주소가 없고 메모리에 저장된 내용으로 데이터를 찾는 방식. 극히 일부 메모리에서 사용한다.
MMU(Memory Management Unit)
CPU가 처리하는 논리주소와 메모리가 처리할 수 있는 물리 주소를 중간에서 맞춰주는 작업을 한다.
Mapping
메인 메모리의 물리 주소를 통해 캐시의 값을 읽기 위한 방법.
Mapping의 종류
- Direct Mapping : 메모리 주소와 캐시의 순서를 일치 시킨다. 단순하다는 장점이 있지만 히트율이 낮다.
- Associative Mapping : 메모리가 캐시의 어느 곳에나 접근할 수 있다. 히트율이 높지만 검색 과정이 느리다.
- Set associative : 위 두 방식을 합쳐 그룹간의 순서는 direct mapping과 같이 일치 시키고 일정 그룹 내에서는 아무associative mapping과 같이 아무 곳에나 저장이 가능하다. 효율적이고 히트율이 높아 가장 대중적이다.
Mapping 방식도 중요하지만 결국 성능에 큰 영향을 미치는건 Cache의 용량이다.
Replacement Algorithm
캐시의 용량이 부족할 경우 어떤 값을 제거(대체)할 지 결정하는 알고리즘
- LRU(Least Recently Used) : 가장 참조한지 오래된 블럭을 제거한다. 대중적이고 효율적이다.
- FIFO : 저장되었던 순서대로 제거한다.
- LFU(Least Frequently Used) : 가장 참조가 적었던 블럭을 제거한다.
매핑 별 대체, 제거
- Direct Mapping : 순서대로 값이 저장되기 때문에 알고리즘을 고려할 필요가 없다.
- Associative Mapping : 전체 값 중에 제일 필요 없는 값을 지운다.
- Set Associative Mapping : 그룹은 순서대로, 그룹 내에서는 가장 필요 없는 값을 지운다.
Write Policy
데이터를 저장하게 될 경우에는 cache와 memory에 값을 모두 쓰는 방식이다.
- Write through : 데이터를 저장할 경우 cache를 통해서 쓰는 방식. cache를 거쳐 쓰므로 더 느리다.
- Write back : write를 최소하 하는 방법이다. write 한 값은 메인 메모리에서 사용이 불가능하게 하고 캐시를 통해서만 접근하게 한다. 그리고 해당 블럭이 replace 될 때, 해당 블럭을 메모리에 저장한다.
'Domain > 컴퓨터구조' 카테고리의 다른 글
2. Performance Issue (0) | 2020.03.14 |
---|---|
3. A Top-Level of Computer Function and Interconnection (0) | 2020.03.14 |
5. Internal Memory (0) | 2020.03.14 |
6. External Memory (0) | 2020.03.14 |
7. I/O (Input/Output) (0) | 2020.03.12 |