๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸฉ Computer Architecture

์ปดํ“จํ„ฐ ๊ตฌ์กฐ 5_Cache Performace

by UKHYUN22 2021. 12. 1.
728x90

 

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๋˜๋Š” ์‹œ๊ฐ„๊นŒ์ง€ ๊ณ ๋ คํ•ด์„œ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ๋‹ค.