Fully associativity์ set associativity์ ํด๋นํ๋ ๋ด์ฉ์ด๋ค.
Fully ์ ํด๋นํ๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ Cache์ ๋น์๋ฆฌ์ ๋ค์ด๊ฐ๋ฉด ๋๋๋ฐ
๋น์๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด์ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋์์ผ ํ๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋
์๋ฌด๊ณณ์ด๋ ๋ค์ด๊ฐ ์ ์์ผ๋ฏ๋ก ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋์ค๊ฒ ํด์ผํ๋ ๊ฒ์ธ๊ฐ? ํ๋
๋ฌธ์ ๊ฐ ์๋ค.
Which block should be replaced on a cache miss?
1. ๋๋คํ๊ฒ ๋๊ฐ๋ค. ์ด๊ฒ๋ ๋ฐฉ๋ฒ์ด๊ธด ํ์ง๋ง ๊ณตํ์ ํ๋ ์
์ฅ์์
๊ทธ๋ ๊ฒ ์ข์ ๋ฐฉ๋ฒ ๊ฐ์ ๋ณด์ด์ง๋ ์๋๋ค.
2. FIFO(First In First Out), ๋ฐ์ดํฐ ๊ตฌ์กฐ Queue์์ ๋ดค๋ ๋์ ์๋ฆฌ์ด๋ค.
์ฌ๋ฌ ๊ฐ์ block์ด ์๋ค๋ฉด Cache์ ๊ฐ์ฅ ์ค๋ฌ๋์ ์์๋ block์ด ๋๊ฐ๊ฒ ํ๋ค.
์๋ฅผ ๋ค์ด ๋์๊ด์ ๊ณต๋ถํ๋ฌ ์๋๋ฐ ์๋ฆฌ๊ฐ ์์ด์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํฉ์ด๋ผ๊ณ ํด๋ณด์
๊ธฐ์กด์ ์๋ ํ์ ์ค ํ ๋ช
์ด ๋ฌด์กฐ๊ฑด ๋๊ฐ์ผ ํ๊ณ ์ด๋ค ํ์์ด ๋๊ฐ๋ ๊ฒ์ด
fair ํ ๊ฒ์ผ๊น? ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉํ ํ์์ ๋ด๋ณด๋ด๋ ๊ฒ์ด ๊ทธ๋๋ง ๊ณต์ ํด๋ณด์ธ๋ค.
Time stamp๊ฐ ํ์ํ๋ค. ์๋ํ๋ฉด ๋๊ฐ ๊ฐ์ฅ ์ค๋ ์ฌ์ฉํ๋์ง ํ์งํ ์ ์๋ ๊ฒ์ด
์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฝค ๊ณต์ ํด๋ณด์ด๊ธฐ๋ ํ์ง๋ง ์์ฃผ ์ฌ์ฉ๋๋ block์ด ์ ๊ฑฐ๋ ์ ์๋
์ํ์ฑ์ด ์กด์ฌํ๋ค.
3. LRU(Least Recently Used)
๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉํ์ง ์์ ๊ฒ.
Cache์ ์ค๋ ์์์ง๋ง reference ๋์ง ์์ ๊ฒ์ ํ์งํ์ฌ ๋ด๋ณด๋ด๋ ๊ฒ.
๋์๊ด์ ์ธ์ ์จ์ง์ ์๊ด์์ด ๊ณต๋ถ๋ฅผ ๊ฐ์ฅ ํ์ง ์์ ํ์์ ๋ด๋ณด๋ด๋ ๊ฒ.
์ด ๊ฒฝ์ฐ๋ Time stamp๊ฐ ์กด์ฌํด์ผ ํ๋ค.(ํ์ํจ)
ํ์ง๋ง Time stamp๋ฅผ ๊ณ์์ ์ผ๋ก ์ฐ์ด์ผ ํด์ overhead๊ฐ ์ปค์ง ํ๋ฅ ์ด ๋ง๋ค.
4. LFU(Least Frequently Used)
Referenceํ ํ์๋ฅผ countํ์ฌ ๊ฐ์ฅ ์ฌ์ฉ์ด ์๋ ๊ฒ์ ๋ด๋ณด๋ด๋ ๊ฒ
Counter๊ฐ ํ์ํ๋ค. ํ์ง๋ง 1๋ฒ ๋ฐ์ reference๋์ง ์์์ง๋ง ๋ฐฉ๊ธ ์ ์
๋ค์ด์จ Block์ด ๋๊ฐ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด ๋ฐฉ๊ธ ์ ์ ๋์๊ด์ ๋ค์ด์จ ํ์์ด ์ ์ผ ์ ๊ฒ ๊ณต๋ถํ์ผ๋ฏ๋ก ๋๊ฐ๋ผ๋
fairํ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฏธ๋์ ๊ฐ์ฅ ์ฌ์ฉํ์ง ์์ Block์ ๋ด๋ณด๋ด๋ ๊ฒ์ด ์ข๋ค.
ํ์ง๋ง ๋ฏธ๋๋ ์ ์ ์์ผ๋ฏ๋ก ๊ณผ์ฐ ์ด Optimalํ ๊ฒ์ ๊ฐ๊น์ด ๊ฒ์ด ๋ฌด์์ธ๊ฐ??
์ด ์ค์๋ LRU๊ฐ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ๊ฒ์ผ๋ก ์๋ ค์ ธ์๋ค.
(OS ์์
์๊ฐ์ ์์ธํ ๋ค๋ฃฐ ๊ฒ์)
Assuming we use the LRU strategy
: directed mapped, 2-way set associative, fully associative
Cache๋ฅผ Multi Level๋ก ๋๋ ๋ฐฉ๋ฒ์ด ์๋ค.
Cache level1 ๊ณผ level2 ์ด๋ ๊ฒ ๋๋๋ ๊ฒ์ด๋ค.
2 level์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฉด 1๋ฒ์งธ level์ CPU ์์ ์๋ ๊ฒ์ด๊ณ
2๋ฒ์งธ level์ SRAM ์์ ์๋ ๊ฒ์ด๋ค.
Example์์ ์ซ์๋ ์ค์ํ์ง ์์ผ๋๊น ๊ตณ์ด ํ์ง ์์๋ ๋๋ค.
Block size๋ฅผ ์กฐ์ ํ๋ ๊ฒ
Direct, Set, Fully ์ค Fully๋ ๊ฐ์ฅ ๋ณต์กํ์ง๋ง ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๋ธ๋ค๊ณ ์๋ ค์ ธ์๋ค.
LRU๊ฐ Optimal์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
์์ฆ์ Cache๋ฅผ Multi level๋ก ๋๋ ์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
Cache: Summary
locality ํน์ฑ์ผ๋ก hierachy ๋ฅผ ๋ง๋ค์ด ๊ตฌํํ ์ ์๋ค.
block size์ ๋ฐ๋ผ์ miss ratio์ miss penalty๊ฐ ์๋ค๊ฐ๋ค ํ๊ธฐ ๋๋ฌธ์ ์ ๋นํ
ํฌ๊ธฐ๋ฅผ ์ฐพ์์ผ ํ๋ค๋ ๊ฒ. block size๊ฐ ์ปค์ง์ ๋ฐ๋ผ performance๊ฐ ๋ฎ์์ง ์ ์๋๋ฐ
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Wide Bus๋ฅผ ํ๋ค๋ ๋ฑ interleaving์ด ๋ฐฉ๋ฒ์ด ๋ ์ ์๋ค.
Cache Structure
: direct, fully, set
fully๋ miss rate๋ฅผ ์ค์ด์ง๋ง ๋ณต์กํ๊ณ ๊ฐ์ด ๋น์ธ๋ค.
CPU time์ด๋ผ๋ ๊ฒ์ ์์ฆ Cache์ miss๋๋ ์๊ฐ๊น์ง ๊ณ ๋ คํด์ ๊ณ์ฐํ๊ณ ์๋ค.
'๐ Major Study (Bachelor) > ๐ฉ Computer Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํจํฐ ๊ตฌ์กฐ 6_I/O (0) | 2021.12.06 |
---|---|
์ปดํจํฐ ๊ตฌ์กฐ CH5_Virtual Memory (0) | 2021.12.06 |
์ปดํจํฐ ๊ตฌ์กฐ 5_Cache Performance (0) | 2021.12.01 |
์ปดํจํฐ ๊ตฌ์กฐ 5_Cache Performance (0) | 2021.12.01 |
์ปดํจํฐ ๊ตฌ์กฐ 5_Cache Memory (0) | 2021.11.29 |