[๊ณ ์„ฑ๋Šฅ] Cache Memory์™€ Cache locality(์บ์‹œ ์ง€์—ญ์„ฑ), False sharing(๊ฑฐ์ง“ ๊ณต์œ )
ยท
์ปดํ“จํ„ฐ ๊ตฌ์กฐ & ์šด์˜์ฒด์ œ
๋“ค์–ด๊ฐ€๋ฉฐ๊ณ ์„ฑ๋Šฅ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์ค‘์— ๊ธฐ๋ณธ์ธ Cache(์บ์‹œ)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” CPU ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ Cache hit ํ™•๋ฅ ๋งŒ ๋†’์—ฌ์ค˜๋„ ๋งค์šฐ ๋นจ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— Cache Memory์˜ ์ค‘์š”๋„๋Š” ๋†’๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์บ์‹œ ์ง€์—ญ์„ฑ(Cache Locality)๋ผ๋Š” ๊ฒƒ์€ '์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ / ์—ฐ์†์ ์œผ๋กœ ์ ‘๊ทผ๋˜๋А๋ƒ'์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Cache์— ๋Œ€ํ•ด ์‹ฌ์ธต์ ์œผ๋กœ ํŒŒ์•…ํ•ด๋ด…์‹œ๋‹ค. Cache Memoryํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜์–ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์„œ ์šด์˜์ฒด์ œ์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด ์ž‘์—…์€ ๋ชจ๋‘ ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ ๋•Œ๋ฌธ์—(์‹ฌ์ง€์–ด ์šด์˜์ฒด์ œ๋„) ํ”„๋กœ๊ทธ๋žจ ์ž‘๋™ ๋ฐฉ์‹์„ ์•Œ์•„๋‘๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค..