๐ง Associative Cache
Associatvie Cache๋ ์ ์ฐํ ๋ธ๋ก ๋ฐฐ์น(placement)๋ฅผ ํตํด ์บ์ ์คํจ์จ(Miss rate)์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด์ ๊ธ ๊น์ง์์๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์บ์์ ๋ฃ์ ๋ ๊ฐ ๋ธ๋ก์ด ์บ์์ ๋ฑ ํ ์ฅ์์๋ง ๋ค์ด๊ฐ ์ ์๋๋ก ํ๋ ๋จ์ํ ๋ฐฐ์น ๋ฐฉ๋ฒ์ธ directed mapped๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
directed mapped๋ ๋ธ๋ก์ ๋ฐฐ์นํ๋ ๋ค์ํ ๋ฐฉ์๋ค ์ค, ๊ทน๋จ์ ์ผ๋ก ๋ธ๋ก์ ํ ๊ณณ์๋ง ๋ฃ์ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฐ๋์ชฝ ๊ทน๋จ์๋ ๋ธ๋ก์ด ์บ์์ ์ด๋ ๊ณณ์๋ ๋ค์ด๊ฐ ์ ์๋๋ก ํ๋ ๋ฐฉ์์ด ์์ต๋๋ค.
๐ fully associative
๋ธ๋ก์ด ์บ์์ ์ด๋ ๊ณณ์๋ ๋ค์ด๊ฐ ์ ์๋๋ก ํ๋ ์บ์ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์บ์ ๋ด์ ์ด๋ค ์ํธ๋ฆฌ์๋ ์ฐ๊ด(๋งคํ, ์ฌ์)์ํฌ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ fully associative ๋ฐฉ์์ด๋ผ ํฉ๋๋ค.
fully associative ์บ์์์๋ ๋ธ๋ก์ด ์ด๋ ๊ณณ์๋ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ํ๋ ๋ธ๋ก์ ์ฐพ๊ธฐ ์ํด์๋ ์บ์ ๋ด์ ๋ชจ๋ ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํด์ผ ํฉ๋๋ค.
๊ฒ์์ด ์ค์ฉ์ฑ์ด ์์ผ๋ ค๋ฉด, ๊ฐ ์บ์ ์ํธ๋ฆฌ์ ์ฐ๊ฒฐ๋ ๋น๊ต๊ธฐ(Comparator)๋ฅผ ์ด์ฉํ์ฌ์ ๋ณ๋ ฌ๋ก ๊ฒ์ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ํด๋น ๋น๊ต๊ธฐ๋ก ์ธํด ํ๋์จ์ด์ ๋น์ฉ์ด ํฌ๊ฒ ์ฆ๊ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ fully associative ๋ฐฉ์์ ๋ธ๋ก์ด ๋ช๊ฐ ๋์ง ์์ ์์ ์บ์์์๋ง ์ธ ์ ์์ต๋๋ค.
๐ set associative
๋ ์ ๊ทน๋จ์ ์ฌ์ ๋ฐฉ๋ฒ(directed mapped์ fully associative)์ ์ค๊ฐ์๋ set associative ๋ฐฉ์์ด ์์ต๋๋ค.
set associative ์บ์์์๋ ํ ๋ธ๋ก์ด ๋ค์ด๊ฐ ์ ์๋ ์๋ฆฌ์ ๊ฐ์๊ฐ ๊ณ ์ ๋์ด ์์ต๋๋ค.
๊ฐ ๋ธ๋ก๋น n๊ฐ์ ๋ฐฐ์น ๊ฐ๋ฅํ ์์น๋ฅผ ๊ฐ๋ set associative ์บ์๋ฅผ n-way set associative ์บ์๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
n-way ์งํฉ ์ฐ๊ด ์บ์๋ ๋ค์์ ์งํฉ๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๊ฐ ์งํฉ์๋ n๊ฐ์ ๋ธ๋ก์ด ์์ต๋๋ค.
(์งํฉ์ ๊ฐ์๊ฐ ์๋ ํ ์งํฉ ๋ด์ ๋ธ๋ก์ ๊ฐ์๊ฐ n๊ฐ์ ๋๋ค.)
๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๋ธ๋ก์ cache ์ธ๋ฑ์ค ํ๋์ ์ํด์ ์บ์ ๋ด์ ํ ์งํฉ์ผ๋ก ์ฌ์๋๊ณ , ํด๋น ์งํฉ ๋ด์์๋ ์๋ฌด ์ฅ์์๋ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
๊ฒ์ ์์๋ ๋ธ๋ก์ด ์กด์ฌํ๋ ์งํฉ์ผ๋ก ์ฌ์ํ ํ, ์งํฉ ๋ด์ ๋ชจ๋ ๋ธ๋ก์ ๊ฒ์ํ์ฌ ์ผ์นํ๋ ๊ฒ์ ์ฐพ์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋ ๊ทธ๋ฆผ์์๋ ์ด 8๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์บ์์์์ 3๊ฐ์ง ๋ธ๋ก ๋ฐฐ์น ๋ฐฉ๋ฒ์ ์ ์ฉํ์ ๋, ๋ธ๋ก ์ฃผ์๊ฐ 12์ธ ๋ธ๋ก์ด ์ด๋์ ์ฌ์๋๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
directed mapped ์บ์์์๋ 12 mod 8 = 4์ด๋ฏ๋ก, index๊ฐ 4์ธ ๋ธ๋ก์๋ง ์ฌ์๋ ์ ์์ต๋๋ค.
์์ set associative ์บ์๋ 2-way set associative ์บ์์ด๋ฏ๋ก ์งํฉ์ ์๋ (์ ์ฒด ๋ธ๋ก ์ / ์งํฉ๋น ๋ธ๋ก ์)์ธ 4๊ฐ์ด๋ฉฐ,
๋ธ๋ก ์ฃผ์๊ฐ 12์ด๋ฏ๋ก 12 mod 4 = 0๋ฒ ์งํฉ์ ์์ด์ผ ํฉ๋๋ค.
0๋ฒ ์งํฉ ๋ด์์๋ ์๋ฌด ์์น์๋ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
fully associative ์บ์์์๋ ์๋ฌด ์์น์๋ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
์บ์ ๋ด์ ๋ธ๋ก์ ์ธ๋ฑ์ค(์์น)๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ ์ ์์์ ์๊ธฐํ๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค.
directed mapped ์บ์
์บ์ ์ธ๋ฑ์ค = (๋ธ๋ก ์ฃผ์) modulo (์บ์ ๋ด์ ๋ธ๋ก ์)
set assosiavtive ์บ์
์บ์ ์ธ๋ฑ์ค(์งํฉ ๋ฒํธ) = (๋ธ๋ก ์ฃผ์) modulo (์บ์ ๋ด์ ์งํฉ ์)
set associative ์บ์์์๋ ๋ธ๋ก์ด ์งํฉ ๋ด์์ ์ด๋ ๊ณณ์๋ ์กด์ฌํ ์ ์๊ธฐ ๋๋ฌธ์, ์งํฉ ๋ด์ ๋ชจ๋ ๋ธ๋ก์ ํ๊ทธ๋ฅผ ์ ๋ถ ๊ฒ์ฌํด์ผ ํฉ๋๋ค.
fully associative ์บ์์์๋ ๋ธ๋ก์ด ์ด๋ ๊ณณ์๋ ์์นํ ์ ์์ผ๋ฏ๋ก, ์บ์ ๋ด ๋ชจ๋ ๋ธ๋ก์ ํ๊ทธ๋ฅผ ๋ค ๊ฒ์ํด์ผ ํฉ๋๋ค.
๋ชจ๋ ๋ธ๋ก ๋ฐฐ์น ๋ฐฉ์์ set associative ๋ฐฉ์์ ๋ณํ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฌ ๋ธ๋ก์ ๊ฐ์๊ฐ 8๊ฐ์ธ ์บ์์์ ๊ฐ๋ฅํ associativity(์ฐ๊ด ์ ๋) ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
associativity๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ ์ฅ์ ์ ๋๊ฒ ์คํจ์จ(miss rate)์ด ์ค์ด๋ ๋ค๋ ๊ฒ์ด๊ณ ,
๋จ์ ์ผ๋ก๋ ์ ์ค์๊ฐ(hit time)์ด ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค.
๐ง Associativity์ Miss rate์ ๊ด๊ณ
1์๋ ํฌ๊ธฐ์ ๋ธ๋ก 4๊ฐ๋ก ๊ตฌ์ฑ๋ ์ธ๊ฐ์ง ์ข ๋ฅ์ ์บ์์ ๋ํด ์๊ฐํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋๋ fully associative, ํ๋๋ 2-way set associative, ํ๋๋ directed mapped ์ ๋๋ค.
๋ธ๋ก ์ฃผ์๋ 0, 8, 0, 6, 8 ์์ผ๋ก ์ฐธ์กฐ๋๋ฉฐ, ์ด๋ฌํ ๊ฒฝ์ฐ ๊ฐ ์บ์ ๊ตฌ์ฑ์์ ์คํจ๋ ๋ช ๋ฒ์ฉ ๋ฐ์ํ๋์ง ํ์ธํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ directed mapped์ ๊ฒฝ์ฐ
์ฐ์ ๊ฐ ๋ธ๋ก์ ์ฃผ์๊ฐ ๊ฐ์ง๋ ์บ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Block Address | Cache Index |
0 | 0 mod 4 = 0 |
6 | 6 mod 4 = 2 |
8 | 8 mod 4 = 0 |
๋ค์๊ณผ ๊ฐ์ด ์ด 5๋ฒ์ Miss๊ฐ ๋ฐ์ํฉ๋๋ค.
๐ 2-way set associative์ ๊ฒฝ์ฐ
์บ์์ ๋ธ๋ก ์๊ฐ 4๊ฐ์ด๋ฏ๋ก, 2-way์ ๊ฒฝ์ฐ์๋ ์งํฉ์ ์๊ฐ 4 / 2 = 2๊ฐ(์ธ๋ฑ์ค 0๊ณผ 1)์ ๋๋ค.
๊ฐ ์งํฉ์๋ 2๊ฐ์ ์์(block)๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
๊ฐ ๋ธ๋ก์ ์ฃผ์๊ฐ ๊ฐ์ง๋ ์บ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Block Address | Cache Index |
0 | 0 mod 2 = 0 |
6 | 6 mod 2 = 0 |
8 | 8 mod 2 = 0 |
๋ค์๊ณผ ๊ฐ์ด ์ด 4๋ฒ์ Miss๊ฐ ๋ฐ์ํฉ๋๋ค.
๐ fully associative์ ๊ฒฝ์ฐ
fully associative ์บ์์ ๊ฒฝ์ฐ 4๊ฐ์ ์บ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ 1๊ฐ์ ์งํฉ์ ๊ฐ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ด 3๋ฒ์ Miss๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด๋ฅผ ํตํด ๋ค์์ ์ ์ ์์ต๋๋ค.
Associativity๊ฐ ์ปค์ง๋ค๋ฉด Miss rate๊ฐ ์ค์ด๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๐ง ์บ์์์ ๋ธ๋ก ์ฐพ๊ธฐ
set associative ์บ์์์ ๋ธ๋ก์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
directed mapped ์บ์์์์ ๊ฐ์ด set associative ์บ์ ๋ด์ ๋ธ๋ก๋ค์ ๋ธ๋ก ์ฃผ์๋ฅผ ๋ํ๋ด๋ ์ฃผ์ ํ๊ทธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ ํ๋ ์งํฉ ๋ด ๋ชจ๋ ๋ธ๋ก์ ํ๊ทธ๋ ํ๋ก์ธ์๊ฐ ๋ณด๋ธ ์ฃผ์์ ํ๊ทธ์ ์ผ์นํ๋์ง ๊ฒ์ฌํ๊ฒ ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ธ ๋ถ๋ถ์ผ๋ก ๋๋์ด์ง๋๋ค.
์ธ๋ฑ์ค ๊ฐ์ ์ด์ฉํ์ฌ ์ํ๋ ์ฃผ์๊ฐ ์ํ ์งํฉ์ ์ ์ ํฉ๋๋ค.
์ดํ ์ ์ ๋ ์งํฉ ๋ด์ ๋ชจ๋ ๋ธ๋ก์ ํ๊ทธ๋ฅผ ๊ฒ์ํฉ๋๋ค.
์๋๊ฐ ๋งค์ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์ ์ ์ ๋ ์งํฉ ๋ด์ ๋ชจ๋ ํ๊ทธ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฒ์ํฉ๋๋ค.
์บ์์ ์ ์ฒด ํฌ๊ธฐ๊ฐ ๊ฐ๋ค๋ฉด, Associativity๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ ํ๋์ ์งํฉ ๋ด ๋ธ๋ก์ ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
์งํฉ ๋ด ๋ธ๋ก์ ์๋ ๋ณ๋ ฌ ๊ฒ์์ ์ํด ํ์ํ ๋์ ๋น๊ต ํ์์ ๊ฐ์ต๋๋ค.
Associativity๋ฅผ 2๋ฐฐ ์ฆ๊ฐ์ํค๋ฉด, ์งํฉ๋น ๋ธ๋ก์ ์๊ฐ 2๋ฐฐ๊ฐ ๋๊ณ , ์งํฉ์ ์๋ $\frac{1}{2}$ ๋ฐฐ๊ฐ ๋ฉ๋๋ค.
๋ฐ๋ผ์ Associativity๋ฅผ 2๋ฐฐ ๋๋ฆด ๋ฐ๋ง๋ค, ํ๊ทธ์ ํฌ๊ธฐ๋ 1๋นํธ ๋์ด๋๊ณ , ์ธ๋ฑ์ค์ ํฌ๊ธฐ๋ 1๋นํธ ์ค์ด๋ญ๋๋ค.
Fully Associative ์บ์์ ๊ฒฝ์ฐ ์งํฉ์ด ๋จ 1๊ฐ๋ฐ์ ์๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์ด๋ฏ๋ก,
๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ ์์ผ๋ฉฐ, Block offset์ ์ ์ธํ ์ฃผ์ ์ ์ฒด๊ฐ ํ๊ทธ๊ฐ ๋์ด ๋ชจ๋ ๋ธ๋ก์ ํ๊ทธ์ ๋น๊ต๋์ด์ผ ํฉ๋๋ค.
์ง์ ์ฌ์ ์บ์์์๋ ์ํธ๋ฆฌ๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๋ธ๋ก์ด ํ๋๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ง ์ฌ์ฉํ์ฌ ์บ์์ ์ ๊ทผํ๋ฏ๋ก ๋น๊ต๊ธฐ๊ฐ ํ๋๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 4-way set associative ์บ์์์๋ ์ ์ ๋ ์งํฉ์ 4๊ฐ ์์ ์ค ํ๋๋ฅผ ์ ํํ๋๋ฐ 4:1 ๋ฉํฐํ๋ ์์ 4๊ฐ์ ๋น๊ต๊ธฐ๊ฐ ํ์ํฉ๋๋ค.
๐ง ๊ต์ฒด ์ ์ฑ
directed mapped ์บ์์์ ์คํจ๊ฐ ๋ฐ์๋๋ฉด ์๊ตฌ๋ ๋ธ๋ก์ ๋ฑ ํ ๊ณณ์ผ๋ก๋ง ๊ฐ ์ ์์ผ๋ฏ๋ก ๊ทธ ์๋ฆฌ์ ์์นํ ๋ธ๋ก์ ๊ต์ฒดํ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง set-associative ์บ์์์๋ ์๊ตฌ๋ ๋ธ๋ก์ ์งํฉ ๋ด ์ด๋ ์์น์ ๋ฃ์ด์ผ ํ ์ง ์ ํํ์ฌ์ผ ํ๋ฉฐ, ์ด๋ ๊ต์ฒดํ ๋ธ๋ก์ ์ ํํ๋๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
fully associative ์บ์์์๋ ๋ชจ๋ ๋ธ๋ก์ด ๊ต์ฒด์ ํ๋ณด๊ฐ ๋ฉ๋๋ค.
๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ์์ LRU(least recently used) ๋ฐฉ์์ ๋๋ค.
LRU ๋ฐฉ์์์ ๊ต์ฒด๋๋ ๋ธ๋ก์ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ ๋๋ค.
LRU ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ๋ธ๋ก์ ์ถ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
2-way set associative ์บ์์์๋ ๊ฐ ์งํฉ๋ง๋ค ํ ๋นํธ๋ฅผ ์ถ๊ฐ๋ก ๋๊ณ , ์์๊ฐ ์ฐธ์กฐ๋ ๋๋ง๋ค ํด๋น ๊ฐ์ ๋ณํ์ํด์ผ๋ก์จ ์๋์ ์ฌ์ฉ ์๊ธฐ๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ associativity๊ฐ ๋ ์ปค์ง๋ฉด LRU๋ฅผ ๊ตฌํํ๊ธฐ ํ๋ค์ด์ง๋๋ค.
LRU ๋ฐฉ์ ์ด์ธ์๋ ๋ฌด์์๋ก ๋ธ๋ก์ ๊ณจ๋ผ ๊ต์ฒดํ๋ Random ๋ฐฉ์๋ ์์ต๋๋ค.
Random ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ๊ฐ๋จํ ๋ฟ๋๋ฌ LRU์ ๋น์ทํ ์ฑ๋ฅ์ ๋ ๋๋ค.
'๐ฅ Computer Science > ์ปดํจํฐ ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ฉ๋ชจ๋ฆฌ[6] - ๊ฐ์๋ฉ๋ชจ๋ฆฌ(Virtual Memory) (0) | 2022.12.12 |
---|---|
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ฉ๋ชจ๋ฆฌ[5] - Multilevel Cache (0) | 2022.12.11 |
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ฉ๋ชจ๋ฆฌ[3] - ์บ์ ์ฑ๋ฅ ์ธก์ ํ๊ธฐ (1) | 2022.12.11 |
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ฉ๋ชจ๋ฆฌ[2] - ์บ์์ Miss์ Write ์ฒ๋ฆฌ (0) | 2022.12.04 |
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ฉ๋ชจ๋ฆฌ[1] - ์บ์(Cache) (0) | 2022.12.04 |