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

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

by UKHYUN22 2021. 12. 1.
728x90

์–ด๋–ป๊ฒŒ ํ•ด์•ผ Cache์˜ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์„ ์ง€์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ํ•˜๋Š” ๊ฐ•์˜

 


Interleaved Memory Memory Interleaving ์šฉ์–ด ์ƒˆ๋กœ ๋“ฑ์žฅ!!
๋ฐ์ดํ„ฐ๊ฐ€ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ๊ฒƒ์„ Bus๋ผ๊ณ  ์–˜๊ธฐํ•œ๋‹ค.
32์ธ์Šน์งœ๋ฆฌ ๋ฒ„์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ์—์„œ Cache๋กœ ๊ฐ€๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๊บผ๋ฒˆ์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
128์ธ์Šน์งœ๋ฆฌ ๋ฒ„์Šค๋ฅผ ํƒ€๊ณ  ๋ณด๋‚ด๋ฉด ํ›จ์”ฌ ๋น ๋ฅธ Access๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ข‹๊ธด ์ข‹์ง€๋งŒ ๋ฌธ์ œ๋Š” ๋ˆ์ด ๋งŽ์ด ๋“œ๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค. ๋ˆ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ๋ฐฉ๋ฒ•์ด๊ธด ํ•˜์ง€๋งŒ ๊ฐ€๊ฒฉ์ด ๋งŽ์ด๋“ ๋‹ค
Interleaved Memory
CPU๊ฐ€ ์ฃผ์†Œ๋ฅผ issueํ•œ๋‹ค. 10๋ฒˆ์ง€์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ!! ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์„œ 10๋ฒˆ์ง€๋ฅผ ์ฐพ๋Š”๋‹ค.
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ฐ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ 10๋ฒˆ์ง€์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ Interleaved Memory๋ผ๊ณ  ํ•œ๋‹ค.

 


1 cycle: sending address
15 cycle: reading one word data
1 cycle: sending one word data

 

1)
1 (CPU์—์„œ Cache๋กœ ์ฃผ์†Œ๋ฅผ ๋ณด๋‚ด๋Š” ์‹œ๊ฐ„)
+ 4 word๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 15cycle์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ 4๋ฒˆ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค.
+ ๋‹ค์‹œ CPU๋กœ 4 word๋ฅผ ๋ณด๋‚ด๋ฏ€๋กœ ์ด 65 cycle์ด ๋œ๋‹ค.
2)
1 + 15 + 1์ด๋ฉด ๋œ๋‹ค. 4word๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ์˜ค๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๋น„์‹ธ๋‹ค.
3)
์ฃผ์†Œ๋ฅผ ๋ณด๋‚ด๋Š” 1cycle
๊ฐ๊ฐ์˜ 10๋ฒˆ์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„์‹œํ‚ค๊ณ  (๋™์‹œ์ ์œผ๋กœ ์ผ์–ด๋‚œ๋‹ค) 15 cycle์ด ๊ฑธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” 4๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ „๋‹ฌ ๋˜๋ฏ€๋กœ 4 cycle์ด ๊ฑธ๋ฆฐ๋‹ค. => 22 cycle
4๊ฐœ์˜ bank๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฐ๊ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•ด์„œ ๋ณด๋‚ด๋„๋ก ๋งŒ๋“ค์–ด์ค€ ํ•˜๋“œ์›จ์–ด ๋ณ€๊ฒฝ๋ฐ–์— ์—†๋‹ค. ๋น„์‹ผ ๊ฒƒ์„ ์‚ฌ์šฉํ•  ํ•„์š” ์—†์ด 4๊ฐœ์˜ bank๋กœ ๋งŒ๋“ค์–ด 17์—์„œ 20์œผ๋กœ ๋–จ์–ด์ง„ ๊ฐ์ด ์žˆ์ง€๋งŒ ๊ฐ€๊ฒฉ์ ์ธ ๋ฉด์—์„œ ๋”์šฑ ํšจ์œจ์ ์ด๋‹ค.

 

 

์–ด๋–ค Block์€ ๋ฐ˜๋“œ์‹œ Cache์˜ ์š”์ž๋ฆฌ์— ๋“ค์–ด๊ฐ€์•ผ ๋œ๋‹ค๋ผ๋Š” ๊ฒƒ์ด๋‹ค. (ํ•™๋ฒˆ ๋‚˜๋ˆ„๊ธฐ ๋„์„œ๊ด€ ์˜์ž์˜ ๊ฐœ์ˆ˜์˜ ๋ฐฉ์‹์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค๋ผ๋Š” ๊ฒƒ) ๊ทธ๋ž˜์„œ Fully associative๋ฅผ ์“ด๋‹ค. ๋นˆ ๊ณณ์ด ์žˆ์œผ๋ฉด ์•„๋ฌด๋ฐ๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.
Set associative๋ž€?
1 ์—ด๋žŒ์‹ค์—๋Š” ์ „์ „ํ•™์ƒ,  2 ์—ด๋žŒ์‹ค์—๋Š” ์ƒ๋ช…ํ•™์ƒ.. ๋“ฑ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ. ์—ด๋žŒ์‹ค์€ ์ •ํ–ˆ์ง€๋งŒ ๋นˆ ์ž๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ฌด๋ฐ๋‚˜ ์•‰์•„๋„ ๋œ๋‹ค๋Š” ๊ฒƒ ์ฆ‰ ํ•ด๋‹น ๊ณต๊ฐ„์—๋Š” ๋“ค์–ด๊ฐ€์•ผ ํ•˜์ง€๋งŒ ๋นˆ ๊ณณ์ด ์žˆ๋‹ค๋ฉด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Direct์™€ Fully ์˜ ์ค‘๊ฐ„ ๋ฐฉ์‹์ด ๋  ๊ฒƒ์ด๋‹ค.

 


Direct Mapped
index์— ๋”ฐ๋ผ์„œ Block offset์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ. Tag๋„ ๋งž๊ณ  Validํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , Block offset์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๋‚ด๊ฒŒ ๋œ๋‹ค.

 

 


Fully Associate
Index๊ฐ€ ์—†๋‹ค. ์–ด๋–ค ํ•œ ๊ณณ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•„๋ฌด๋ฐ๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. Tagd์™€ Block offeset๊ณผ byte offset์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. block์€ Cache์˜ ์–ด๋Š ๊ณณ์ด๋“  ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํŠน์ •ํ•œ block์ด ์žˆ๋Š”์ง€ ์ฐพ์œผ๋ ค๊ณ  Cache์— ๊ฐ€๊ฒŒ ๋˜๋ฉด ์–ด๋””์—๋“ ์ง€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ Cache์˜ ๋ชจ๋“  ์œ„์น˜๋ฅผ ๋’ค์ ธ์•ผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”๊ฐ€ ๋‚ด๊ฐ€ ์ฐพ์œผ๋ ค๋Š” Tag์™€ Fully Associate์˜ Tag๋ฅผ Parallelํ•˜๊ฒŒ ๋น„๊ตํ•œ๋‹ค. ๋งŒ์•ฝ Sequentialํ•˜๊ฒŒ ๋น„๊ตํ•˜๊ฒŒ ๋˜๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ ์—†์„ ๋•Œ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. parallel ํ•˜๊ฒŒ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน์ˆ˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. (๋น„์‹ผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ Associative Memory๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ตฌ์กฐ ์ž์ฒด๊ฐ€ ๋‹ค๋ฆ„. ๋™์‹œ์— Tag๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค๋ผ๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ์žˆ๊ธฐ๋กœ ํ•จ)

 

 


Set Associative
๋น„์–ด ์žˆ๋Š” ๊ณณ์ด ์žˆ์œผ๋ฉด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.  Cache์˜ block์˜ ๊ฐœ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ set์˜ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆ ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹นํ•˜๋Š” ๊ณณ์˜
๋น„์–ด์žˆ๋Š” ๊ณณ์— ์•„๋ฌด๋ฐ๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. 

 


์•„์ฃผ ๋””ํ…Œ์ผํ•œ ๊ฒƒ๊นŒ์ง€ ์š”๊ตฌํ•˜์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค...ใ…Žใ…‹ใ…Žใ…‹

 

 


์–ด๋Š๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์„๊นŒ? miss rate๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์ด ์ข‹๊ฒŸ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Fully Associativity๊ฐ€ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 
๋‹จ์ง€ ์ƒ๊ฐํ•  ๊ฒƒ์€ hit time (๋™์‹œ์— Tag๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ hardware์˜ complexity๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜๋„ ์žˆ๋‹ค.)