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

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

by UKHYUN22 2021. 11. 29.
728x90


๋ฐ์ดํ„ฐ item ์ด ์บ์‹œ์— ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ ์žˆ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ์ง€...?!?!?!?!?!
์ฒซ ์˜ˆ์‹œ
block size๋กœ ์กด์žฌํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. block์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ word์ด์ง€๋งŒ ํ•˜๋‚˜์˜ word๋งŒ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. block (word)๊ฐ€ ์บ์‹œ์— ๋“ค์–ด๊ฐ€๋ฉด ์–ด๋””์— ์ €์žฅ๋  ๊ฒƒ์ธ๊ฐ€??

 


๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ๊ฐœ block์ด ์žˆ๋‹ค(1block 1word).

์บ์‹œ๋Š” ์˜ค์„๊ด€์˜ ์ž๋ฆฌ. ํ•™์ƒ์€ ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ  ํ•˜์ž. ํ•™๋ฒˆ ๋Œ€๋กœ ์˜ค์„์˜ ํŠน์ • ์ž๋ฆฌ์— ์•‰์•„์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์ž. ํ•™์ƒ์ด ๋” ๋งŽ์€๋ฐ ๊ฐ™์€ ์ž๋ฆฌ์— ์–ด๋–ป๊ฒŒ ์•‰๋Š”๊ฐ€? (์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋Ÿญ์ด ๊ฐ™์€ ๊ณต๊ฐ„์„ share ํ•ด์•ผ ํ•œ๋‹ค. ์œ„์น˜๋Š” ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์ •ํ•˜๋Š”๊ฐ€?
์บ์‹œ์˜ ์ฃผ์†Œ = ๋ธ”๋ก ์ฃผ์†Œ๋ฅผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.


์–ด๋–ค ํŒจํ„ด์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
๋งŒ์•ฝ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์ด 8์ด๋ผ๋ฉด ๋์ด 001๋กœ ๋๋‚˜๋Š” ๋ธ”๋Ÿญ ๋“ค์€ ๊ฐ™์€ ๊ณต๊ฐ„์— ๋„ฃ์–ด์ง€๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 001 ๋Š” 10001 00001 ๋“ฑ์ด ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋–ค ๊ฒƒ์ด ๋ฉ”๋ชจ๋ฆฌ๋ถ€ํ„ฐ ์˜จ ๋ฐ์ดํ„ฐ ์ธ์ง€๋Š” tag๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” 001 ์„ ์ œ์™ธํ•œ ์™ผ์ชฝ์— ์กด์žฌํ•˜๋Š” ๋น„ํŠธ๋“ค์„ ํ†ตํ•ด์„œ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.  valid bit ์ด๋ž€ ์กด์žฌํ•˜๋Š” bit ๋“ค์ด ์˜๋ฏธ์žˆ๋Š” ๊ฐ’์ธ์ง€๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•„์š”ํ•ด์„œ ๊ฐ€์ ธ์™€ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ์ธ์ง€ ํŒ๋‹จํ•ด์ฃผ๋Š” bit๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

 


์‹ค์ œ๋กœ cache์—๋Š” index block์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ธฐ ์œ„ํ•ด ํฌํ•จ ํ•œ ๊ฒƒ์ด๊ณ  ์–ด๋–ค ๊ฐ’๋“ค๋กœ ์ฑ„์›Œ์ ธ ์ž‡์ง€๋งŒ ๊ทธ๊ฒƒ์ด validํ•œ bit๋“ค์ด ์•„๋‹ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ๋จผ์ € valid ํ•œ์ง€ ํ™•์ธ์„ ํ•˜๊ณ  N ์ด๋ผ๋ฉด Y๋กœ ๋ฐ”๊พธ๊ณ  Tag์™€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ €์žฅํ•œ๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ์— ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” Y๊ฐ€ ํ‘œ์‹œ๋˜์–ด์žˆ์ง€๋งŒ Tag๋ฅผ ํ™•์ธํ•ด์„œ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๊ฐ€์ ธ์˜จ๋‹คTag๊ฐ€ ์ผ์น˜ํ•ด์•ผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋Š” ์–˜๊ธฐ์ด๋‹ค.

 

 


Direct Mapped cache example 1024๊ฐœ์˜ word๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค(Cache)
MIPS๋Š” Byte addressable์ด๋ฏ€๋กœ ๋ฐ”์ดํŠธ ๋งˆ๋‹ค ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ  Cache๋Š” 1word 4byte ๋‹จ์œ„๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— LSB 2bit๋Š” ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ shift left 2๋ฅผ ํ•œ๋‹ค. ๋งจ ์˜ค๋ฅธ์ชฝ 2bit๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค. 10bit์€ index(2์˜ 10์Šน == 1024)์ด๊ณ  ๋บ€ ๋‚˜๋จธ์ง€ 20bit๊ฐ€ tag ์‚ฌ์ด์ฆˆ๊ฐ€ ๋œ๋‹ค. valid bit๋Š” 1bit์ด๋‹ค.

 

 



Cache๊ฐ€ 1024 word์ด๋ฉด
1024*(32+20+1)์ด Total size๊ฐ€ ๋œ๋‹ค.