์ปดํจํฐ ๊ตฌ์กฐ 5_Cache Performance
์ด๋ป๊ฒ ํด์ผ 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๊ฐ ๋์ด๋ ์๋ ์๋ค.)