SlideShare a Scribd company logo
Page 1
Dive Into
Cache
by 레쓰비
Page 2
Direct Mapping
31 Tag 15 14 Index 6 5 Offset 0
Page 3
Fully Associative
31 Tag
6
5 Offset 0
Page 4
N-Way Set Associative
31 Tag 12 11 Set 6 5 Offset 0
Page 5
Mapping method Summary
종류 장점 단점
Direct Mapping
구조가 간단 (Cheap) 해당 Index 에 하나의
주소만 넣을 수 있기에 ,
Cache 공간을 효율적으
로 사용하지 못한다 .
Fully Associative
Cache 의 남는 공간 어
디에든 주소를 넣을 수
있어서 Cache 공간을 효
율적으로 사용한다
구조가 복잡하고
(Expensive) 해당 주소
가 Cache 에 있는지 검
사할 때마다 모든 Slot
을 검사해야 한다 .
N-Way Associative
Direct Mapping 과
Fully Associative 의
타협점으로 , Fully
Associative 보다
덜 복잡하고 (less
expensive)
Direct Mapping 보다
공간을 보다 효율적으로
사용한다
Direct Mapping 처럼
Index 를 통해서 한번에
접근할 수 있지만 여전히
N 번의 비교가 필요하
며 , 여전히 공간을 완전
히 효율적으로 사용하지
는 못한다 .
Page 6
Direct Mapping
Page 7
Page 8
Page 9
Page 10
Page 11
4-Way Associative
Page 12
4-Way Associative
Page 13
4-Way Associative
Page 14
4-Way Associative
Page 15
4-Way Associative
Page 16
Write-Through & No-Write-Allocate
Read:
1.Cache 내 해당 Memory 존재여부 검
사
2. 있을 때는 Cache 값을 사용
3. 없을 때는 Memory 에서 읽어서 할
당
Write:
1.Cache 내 해당 Memory 존재여부
검사
2. 있을 때는 Cache 와 Memory 동시
기록
3. 없을 때는 Memory 에만 기록
[No-Write-Allocate 방식 ]
Page 17
Write-Back & Write-Allocate
Read:
1.Cache 내 해당 Memory 존재여부 검
사
2. 있을 때는 Cache 값을 사용
3. 없을때는 사용할 Cache 블럭 할당
4. 할당된 블록이 Dirty-Flag-Setted
라면 해당블럭 Memory 에 쓰기 수행
5. 방금 쓰기를 수행한 Memory 를 다
시
Cache 에 적재
[Write-Allocate 방식 ]
6. 해당 Cache 블록의 Dirty-Flag 를
해제
Write:
1.Cache 내 해당 Memory 존재여부
검사
2. 있을 때는 Cache 에만 기록하고
Dirty-Flag 를 할당
3. 없을때는 사용할 Cache 블럭 할당
4. 할당된 블록이 Dirty-Flag-Setted
라면 해당블럭 Memory 에 쓰기 수행
5. 방금 쓰기를 수행한 Memory 를 다
시
Cache 에 적재
[Write-Allocate 방식 ]
Page 18
Write on Cache :
Write-Through : 바로 Memory 에 접근하여 쓰기를 수행
-> 매번 Stall 을 유발
Write-Back : Cache 에만 쓰기를 하며 해당 Cache Slot 에는 Dirty-Bit 를 Set
한다 .
-> 실제로 Memory 에 쓰기를 수행할 때만 Stall 이 발생
실제로 Memory 에 변경 사항이 적용되는 경우는 다음과 같다 .
1) Dirty-Bit 가 Set 된 Cache 를 읽으려 시도한 경우 ,
2) Dirty-Bit 가 Set 된 Cache 를 대상으로 쓰기를 시도한 경우 ,
Write-Allocate : 만약 어떤 Memory 에 대해 쓰기를 수행하려 할때
해당 Memory 가 Cache 에 없는 경우 Memory 에 쓰기를 완료한 후 ,
이를 다시 읽어들여 Cache 에 할당해 준다 . [Write-Back 과 함께 사용 ]
No-Write-Allocate : Memory 에 대한 쓰기가 완료된 후
해당 내용을 Cache 로 다시 가져오지 않는다 . [Write-Through 와 함께 사
용 ]
Page 19
Thank You

More Related Content

PDF
[I/O Extended 2019 Incheon] What's new in the Web
PDF
WebAssembly 101
PPTX
[자바카페] Infra CI (2018)
PDF
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - CI/CD
PDF
2014.04.24.nrise 개발환경
PDF
NRISE 개발스택
PPTX
110.JAVA MEMORY TROUBLESHOOTING
PPTX
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
[I/O Extended 2019 Incheon] What's new in the Web
WebAssembly 101
[자바카페] Infra CI (2018)
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - CI/CD
2014.04.24.nrise 개발환경
NRISE 개발스택
110.JAVA MEMORY TROUBLESHOOTING
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가

Similar to Cache, Set Associative, Write-Through, Write-Back (20)

PDF
Cache
PPT
Mem cached
PDF
Webservice cache strategy
PDF
프로그래머가 알아야 하는 메모리 관리 기법
PPTX
Windows viac cpp_15장_16장
DOCX
TestBCD2014-1(Answer)
PDF
Memcached의 확장성 개선
PDF
redis 소개자료 - 네오클로바
PDF
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
PPTX
No sql 이해 및 활용 공개용
PPTX
오라클 DB 아키텍처와 튜닝
PPTX
About memcached
PPTX
Vectorized processing in_a_nutshell_DeView2014
PPTX
Windows system - memory개념잡기
PPTX
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
DOC
OracleHistory1
PPTX
amugona study 1회
PDF
PPTX
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
PDF
Main memory
Cache
Mem cached
Webservice cache strategy
프로그래머가 알아야 하는 메모리 관리 기법
Windows viac cpp_15장_16장
TestBCD2014-1(Answer)
Memcached의 확장성 개선
redis 소개자료 - 네오클로바
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
No sql 이해 및 활용 공개용
오라클 DB 아키텍처와 튜닝
About memcached
Vectorized processing in_a_nutshell_DeView2014
Windows system - memory개념잡기
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
OracleHistory1
amugona study 1회
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
Main memory
Ad

Cache, Set Associative, Write-Through, Write-Back

  • 2. Page 2 Direct Mapping 31 Tag 15 14 Index 6 5 Offset 0
  • 3. Page 3 Fully Associative 31 Tag 6 5 Offset 0
  • 4. Page 4 N-Way Set Associative 31 Tag 12 11 Set 6 5 Offset 0
  • 5. Page 5 Mapping method Summary 종류 장점 단점 Direct Mapping 구조가 간단 (Cheap) 해당 Index 에 하나의 주소만 넣을 수 있기에 , Cache 공간을 효율적으 로 사용하지 못한다 . Fully Associative Cache 의 남는 공간 어 디에든 주소를 넣을 수 있어서 Cache 공간을 효 율적으로 사용한다 구조가 복잡하고 (Expensive) 해당 주소 가 Cache 에 있는지 검 사할 때마다 모든 Slot 을 검사해야 한다 . N-Way Associative Direct Mapping 과 Fully Associative 의 타협점으로 , Fully Associative 보다 덜 복잡하고 (less expensive) Direct Mapping 보다 공간을 보다 효율적으로 사용한다 Direct Mapping 처럼 Index 를 통해서 한번에 접근할 수 있지만 여전히 N 번의 비교가 필요하 며 , 여전히 공간을 완전 히 효율적으로 사용하지 는 못한다 .
  • 16. Page 16 Write-Through & No-Write-Allocate Read: 1.Cache 내 해당 Memory 존재여부 검 사 2. 있을 때는 Cache 값을 사용 3. 없을 때는 Memory 에서 읽어서 할 당 Write: 1.Cache 내 해당 Memory 존재여부 검사 2. 있을 때는 Cache 와 Memory 동시 기록 3. 없을 때는 Memory 에만 기록 [No-Write-Allocate 방식 ]
  • 17. Page 17 Write-Back & Write-Allocate Read: 1.Cache 내 해당 Memory 존재여부 검 사 2. 있을 때는 Cache 값을 사용 3. 없을때는 사용할 Cache 블럭 할당 4. 할당된 블록이 Dirty-Flag-Setted 라면 해당블럭 Memory 에 쓰기 수행 5. 방금 쓰기를 수행한 Memory 를 다 시 Cache 에 적재 [Write-Allocate 방식 ] 6. 해당 Cache 블록의 Dirty-Flag 를 해제 Write: 1.Cache 내 해당 Memory 존재여부 검사 2. 있을 때는 Cache 에만 기록하고 Dirty-Flag 를 할당 3. 없을때는 사용할 Cache 블럭 할당 4. 할당된 블록이 Dirty-Flag-Setted 라면 해당블럭 Memory 에 쓰기 수행 5. 방금 쓰기를 수행한 Memory 를 다 시 Cache 에 적재 [Write-Allocate 방식 ]
  • 18. Page 18 Write on Cache : Write-Through : 바로 Memory 에 접근하여 쓰기를 수행 -> 매번 Stall 을 유발 Write-Back : Cache 에만 쓰기를 하며 해당 Cache Slot 에는 Dirty-Bit 를 Set 한다 . -> 실제로 Memory 에 쓰기를 수행할 때만 Stall 이 발생 실제로 Memory 에 변경 사항이 적용되는 경우는 다음과 같다 . 1) Dirty-Bit 가 Set 된 Cache 를 읽으려 시도한 경우 , 2) Dirty-Bit 가 Set 된 Cache 를 대상으로 쓰기를 시도한 경우 , Write-Allocate : 만약 어떤 Memory 에 대해 쓰기를 수행하려 할때 해당 Memory 가 Cache 에 없는 경우 Memory 에 쓰기를 완료한 후 , 이를 다시 읽어들여 Cache 에 할당해 준다 . [Write-Back 과 함께 사용 ] No-Write-Allocate : Memory 에 대한 쓰기가 완료된 후 해당 내용을 Cache 로 다시 가져오지 않는다 . [Write-Through 와 함께 사 용 ]

Editor's Notes

  • #2: 0. 소개 1. 캐쉬와 메모리간의 매핑 방법 설명 1. Direct Mapping 방법 2. n-Way mapping 방법 3. Write-through, Write-back, Write-allocate, No-write-allocate 용어 설명 4. Write-through, No-write-allocate 방식 캐쉬의 읽고 쓰기(순서도) 5. Write-back, Write-allocate 방식 캐쉬의 읽고 쓰기(순서도) 0. 소개 1. Cache 의 정의 2. 인텔씨퓨 다이 사진 3. CPUID 사진 4. 캐시 메모리 벤치마크 사진 5. 씨퓨가 메모리를 읽을때 순서도(단순화한) 6. 캐시상에 메모리가 매핑되는 방법돠 TAG 등의 언급(그림) 7. Direct Mapping 방법 (1:1) [그림] 8. n-Way Mapping (Set-Asocciative) [그림] 9. 쓰기를 일어날때 캐쉬를 활용하는 법 [Write-through, Write-back, Write-allocate, No-write-allocate 설명] 10. Write-Through [순서도] 11. Write-Back [순서도] 12. 멀티코어를 위한 MESSI 알고리즘 13. 레퍼런스 안녕하세요,, 이번에 요약발표를 맡게된 레쓰비의 이동호 입니다. 전체적인 요약은 다른 조에서 잘 요약해 주실 거라고 생각되어, 저희조는 교수님이 강의하신 캐쉬의 동작에 대한 내용을 주된 주제로 삼아 발표를 하기로 했습니다.
  • #20: 0. 소개 1. 캐쉬와 메모리간의 매핑 방법 설명 1. Direct Mapping 방법 2. n-Way mapping 방법 3. Write-through, Write-back, Write-allocate, No-write-allocate 용어 설명 4. Write-through, No-write-allocate 방식 캐쉬의 읽고 쓰기(순서도) 5. Write-back, Write-allocate 방식 캐쉬의 읽고 쓰기(순서도) 0. 소개 1. Cache 의 정의 2. 인텔씨퓨 다이 사진 3. CPUID 사진 4. 캐시 메모리 벤치마크 사진 5. 씨퓨가 메모리를 읽을때 순서도(단순화한) 6. 캐시상에 메모리가 매핑되는 방법돠 TAG 등의 언급(그림) 7. Direct Mapping 방법 (1:1) [그림] 8. n-Way Mapping (Set-Asocciative) [그림] 9. 쓰기를 일어날때 캐쉬를 활용하는 법 [Write-through, Write-back, Write-allocate, No-write-allocate 설명] 10. Write-Through [순서도] 11. Write-Back [순서도] 12. 멀티코어를 위한 MESSI 알고리즘 13. 레퍼런스 안녕하세요,, 이번에 요약발표를 맡게된 레쓰비의 이동호 입니다. 전체적인 요약은 다른 조에서 잘 요약해 주실 거라고 생각되어, 저희조는 교수님이 강의하신 캐쉬의 동작에 대한 내용을 주된 주제로 삼아 발표를 하기로 했습니다.