컴퓨터아키텍처
Computer Architecture
2016-05-19
Memory Hierarchy, Cache 관련 용어/개념
과제 제출 안내
- Google Drive 공유 폴더를 통해 (종이 X, 메일 X)
-
[새로 만들기] 버튼을 눌러
CA16<이름><학번> 폴더를 만들고 (예: CA16김연아123456)
만들어진 폴더를 우클릭하여 나오는 드롭메뉴에서
폴더 공유설정으로 kyagrd@gmail.com 에게 공유 (편집권한) - Google 메일 계정만 있으면 Google Drive 서비스 이용 가능
- Google 메일 계정은 무료로 만들 수 있으며
참고로 안드로이드 스마트폰 사용자는 누구나 이미 보유
MIPS 파이프라인 실습 도구
- WinMIPS64 활용 http://indigo.ie/~mscott/
- 문법이 책의 32-bit MIPS 시뮬레이터인 SIPM과 약간 다름
메모리 계층구조
Memory Heirachy
- CPU의 연산 유닛(ALU)에 가까울수록
빠르게 접근할 수 있지만
용량이 제한되어 있다 (비싸다) - CPU에서 멀수록 용량은 크지만 (싸다)
접근 시간이 많이 걸린다 - CPU의 연산 유닛에 가까운 순서로
- 레지스터
- CPU 내부 캐시 (SRAM)
- 메인 메모리 (DRAM)
- 플래시 메모리
- HDD 및 테이프 등의 자기 디스크
캐시 관련 용어
- block (또는 line): 캐시하기 위한 메모리의 최소 단위
- 캐시에 필요한 데이타가 있이면 hit 없으면 miss
- hit rate (또는 hit ration):
필요한 데이터에 접근하려 할 때 캐시되어 있는 비율 - miss rate (또는 miss ration):
필요한 데이터에 접근하려 할 때 캐시되지 않은 비율 - hit rate + miss rate = 1
- hit time: 캐시된 데이타에 접근하는 데 걸리는 시간
- miss penalty:
캐시되지 않은 데이타를 캐시하는 데 걸리는 시간 - Average Memory Access Time 평균 메모리 접근 시간
AMAT = hit time + miss rate x miss penalty
Direct-Mapped Cache
- 가장 단순무식한 캐시 구성
- 1000 블럭의 메모리가 있는데 캐시 크기는 100블럭이라면
1000 블럭 순서대로 번호를 매겼을 때 100으로 나눈 나머지에 해당하는 캐시 위치에 캐시 해당 블럭이 캐시됨 - 즉 3번 블럭과 103번 블럭과 203번 블럭은 항상
캐시 메모리의 3번째 블럭 위치에 캐시됨 - 장점: 단순
- 단점
- 메모리 블럭마다 캐시되는 위치가 항상 고정되어 있어
성능에 문제가 생길 가능성 - 예를 들면 3번 블럭과 103번 블럭을 동시에 캐시 불가능
즉 나머지가 같은 블럭을 같이 자주 사용하면 성능 저하
- 메모리 블럭마다 캐시되는 위치가 항상 고정되어 있어
캐시 관련 용어/개념
- valid bit: 캐시 메모리의 블럭이 하위 메모리 블럭에 대응되어 있는 유효한 캐시인지 나타내는 비트
- (read access 에 대한) cache miss가 났을 때는 메모리에서 해당 블럭을 캐시의 적절한 위치로 불러옴
- write를 할 때 어떻게 처리하는지는 캐시 설계마다 다름
캐시 메모리에 write를 했는데 하위 메모리에는 아직 같은 내용을 write되지 않은 상태를 inconsistent 혹은 dirty라고 함- write-through:
캐시에 write하자마자 즉시 하위 메모리에도 write - write buffer: 버퍼를 두어 write-thrugh의 성능을 보완
- write-back:
캐시가 invalidate될 때까지 기다렸다 덮어씀
성능을 높일 수 있지만 더 복잡한 설계 (dirty bit 필요)
- write-through:
- dirty bit: 캐시 메모리의 블럭에 write가 일어나서 하위 메모리의 내용과 달라진 상태
컴퓨터아키텍처
By 안기영 (Ahn, Ki Yung)
컴퓨터아키텍처
2016-05-19
- 2,077