-
[์ปดํจํฐ๊ตฌ์กฐ] ์์คํ ์บ์๋? (feat. L1, L2, L3)General/๐ฅ Computer Architecture 2021. 9. 25. 00:59
1์ฐจ ์์ : 21.09.28
์๋ ํ์ธ์๐ถ
์ด๋ฒ ์๊ฐ์๋ ์บ์์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ปดํจํฐ๊ณตํ์์ ๋นผ๋์ ์ ์์ ๊ฐ๋ ์ด ๋ฐ๋ก ์บ์์ธ๋ฐ์.
๊ทธ ์ค CPU ์ ๊ฐ๊น์ด ๋ถ์ด์๋ ์์คํ ์บ์์ ๋ํด์ ๋ค๋ฃจ์ด๋ณด๋ ค๊ณ ํฉ๋๋ค.
๊ทธ๋ผ ์์ํ๊ฒ ์ต๋๋ค๐ฅ
๊ฐ์
์บ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ ์ ์ต์๋จ ํฐ์ด์ ์์นํ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํจ์ฌ ์๊ณ ๊ฐ๊ฒฉ์ด ๋งค์ฐ ๋น์ธ๋ฉฐ, ๊ทธ๋งํผ ์๋๊ฐ ๋น ๋ฅธ ๊ฒ์ด ํน์ง์ ๋๋ค.
์ ํผ๋ผ๋ฏธ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ํํํ ๊ทธ๋ํ์ ๋๋ค.
10 ํด๋ญ ์ฌ์ดํด ๋ฏธ๋ง์ ์ ๊ทผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋
์บ์ฌ(Caches) ๊ฐ ๋๋ฒ์งธ์ธ ๋ฑ๊ธ์ ์์นํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ ์ง์คํฐ ๋ค์์ผ๋ก ์บ์๋ CPU ์ฝ์ด ๊ฐ๊น์ด์ ์์นํด์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์บ์๋ ํ๋ก๊ทธ๋จ์์ ์ง์ ์ฝ๊ฑฐ๋ ์ธ์ ์๊ณ , ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์คํ ์์ ๋ด๋ถ์ ์ผ๋ก ์ ์ดํฉ๋๋ค.
๋ฐ๋ผ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฝ๋์์์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์บ์๋ฅผ ๊ดํตํ๋ ์ค์ํ ๊ฐ๋ ์ ๋ฐ์ดํฐ ์ง์ญ์ฑ์ ๋๋ค.
๋ฐ์ดํฐ ์ง์ญ์ฑ์ ํ์ฉํ์ฌ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ๋ฌ์๋๊ณ ,
CPU ๊ฐ ์๋์ ์ผ๋ก ์ ๊ทผ ์๊ฐ์ด ๋๋ฆฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ๋์
์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ ์ ์ผ๋ก ์ ๊ทผํ๊ฒ ํ๋ฉด ์ฑ๋ฅ์ ํฅ์์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
๋ฐฐ๊ฒฝ
์ปดํจํฐ๋ ๊พธ์คํ ๋ฐ์ ํด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ๋ก์ธ์์ ๋ฐ์ ์๋๋ฅผ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ์ต๋๋ค.
ํ๋ก์ธ์๊ฐ ์๋ฌด๋ฆฌ ๋นจ๋ผ๋ ๊ณ์ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด์๋
์๋์ ์ผ๋ก ๋๋ฆฐ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ์์คํ ์ฑ๋ฅ ํฅ์์ ํ๊ณ๊ฐ ์๊ฒผ์ต๋๋ค.
๊ทธ๋์ CPU ์ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์บ์๋ฅผ ๋๊ฒ ๋์์ต๋๋ค.
CPU -> ์บ์-> ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ
์บ์๋ CPU ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์๋ ๊ฐ๊ทน์ ์ค์ฌ์ฃผ๋ ์์ถฉ์ฌ์ด๋ฉฐ, ๋ฐ๋ผ์ ๋ฒํผ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค.
(์ด ์๋ ๊ฐ๊ทน ๋๋ฌธ์ ๋ณ๋ชฉํ์์ด ๋ฐ์ํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋ฒํผ๋ ์์ถฉ์ฌ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์)
์บ์์๋ ๋ณดํต ๊ฐ๊ฒฉ์ด ๋น์ธ๊ณ ์๋๊ฐ ๋น ๋ฅด์ง๋ง ์ฉ๋ ๋๋น ํฌ๊ธฐ๊ฐ ํฐ SRAM ์ ์ฌ์ฉํ๊ณ ,
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์๋ ๊ฐ๊ฒฉ์ด ์ธ๊ณ ์๋๊ฐ ๋๋ฆฐ DRAM ์ ์ฌ์ฉํฉ๋๋ค.
ํน์ ํ๊ฒฝ์์ SRAM ์ ์ ๊ทผ ์๋๊ฐ ์ด๋น ์ ๋ฐฑ GB/s๋ฅผ ๊ฐ๋ฟํ ๋๊ธด๋ค๊ณ ํ๋ ์ ๋ง ์ด๋ง๋ฌด์ํ๋ค์;;;;;;;
๋ํ SRAM์ DRAM์ 100๋ฐฐ ์ด์์ผ๋ก ์ ๊ทผ ์๋๊ฐ ๋น ๋ฅด์ง๋ง ๊ตฌ์กฐ๊ฐ ๋ณต์กํ์ฌ ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๋ฏ๋ก ์ง์ ๋๋ฅผ ๋์ด๊ธฐ ์ด๋ ค์ ๊ฐ๊ฒฉ์ด ๋น์ธ๊ณ ๋์ฉ๋์ผ๋ก ์ ์ํ๊ธฐ๊ฐ ์ด๋ ต๋ค๊ณ ํฉ๋๋ค.
์๋์๋ฆฌ: ๋ฐ์ดํฐ ์ง์ญ์ฑ
์์ ๋ด์ฉ์ ์์ ์์ค ์ ๋์ด๊ณ , ์ด์ ๋ถํฐ๊ฐ ์ปดํจํฐ ๊ณตํ์ ์ผ๋ก ์ค์ํ ๋ด์ฉ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ดํตํ๋ ํต์ฌ ๊ฐ๋ ์ ๋ฐ์ดํฐ ์ง์ญ์ฑ (Locality) ์ ๋๋ค. ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด ์๋ฆฌ๋ก ์๋ํฉ๋๋ค.
"๋ฏธ๋ฆฌ ์ธ๋งํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ์บ์์ ์ฎ๊ฒจ๋์"
๋ฐ์ดํฐ ์ง์ญ์ฑ์ ์๊ฐ ์ง์ญ์ฑ( Temporal Locality), ๊ณต๊ฐ ์ง์ญ์ฑ ( Spatial Locality), ์์ฐจ์ ์ง์ญ์ฑ( Sequential Locality) ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
์๊ฐ ์ง์ญ์ฑ์ ํ๋ฒ ์ฐธ์กฐ๋ ๋ฐ์ดํฐ๋ ์ ์ ํ์ ๋ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ณต๊ฐ ์ง์ญ์ฑ์ A[0], A[1] ๋ก ๊ตฌ์ฑ๋๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์ฐธ์กฐ๋ ๋ฐ์ดํฐ ๊ทผ์ฒ์ ๋ฐ์ดํฐ๊ฐ ์ ์ํ์ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค. ํด๋น ๋ฐฐ์ด์ด ์์นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ด์ฉ์ for-in ์ํ๊ฐ ๋๋๊ธฐ ์ ๊น์ง ๊ณ์ ์ฐ์ผ ํ๋ฅ ์ด ๋์ต๋๋ค.
์์ฐจ์ ์ง์ญ์ฑ์ ๋น์์ฐจ์ ์คํ์ด ์๋ ์ด์ ๋ช ๋ น์ด๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์์๋๋ก ์คํ๋๋ ํน์ฑ์ ๊ณ ๋ คํ์ฌ ๋ค์ ์์์ ๋ฐ์ดํฐ๊ฐ ๊ณง ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค.
L1 ์บ์๋ Level-1 ์บ์?
์์คํ ์ ์ฅ์ฐฉ๋ ์บ์์ ์ฉ๋๊ณผ ์ฑ๋ฅ์ด ์ ์ ์ฆ๊ฐํ๋ฉด์ ์บ์์ ์บ์๋ก ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
์ด๊ฒ์ ์ ์ฉ๋ ์์๋๋ก L(Level) 1, L2, L3 ... ๋ผ๊ณ ํธ์นญํฉ๋๋ค.
์ฐ๋ฆฌ ๋ง๋ก ํ๋ฉด '1์ฐจ ์บ์', '2์ฐจ ์บ์', '3์ฐจ ์บ์ ๋ฉ๋ชจ๋ฆฌ'๊ฐ ๋ฉ๋๋ค.
L1์ ๊ฐ์ฅ ๊ณ ์ฑ๋ฅ์ด์ ๊ณ ๊ฐ์ธ ์์ ์ฉ๋์ ์ง์ ํ๋ก๊ฐ ์ฌ์ฉ๋๊ณ , L1์บ์์์ ๋ฐ์ดํฐ๋ฅผ ํผ๊ฐ๊ธฐ ์ํ ์บ์๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๊ทธ๋ณด๋ค๋ ์ฉ๋์ด ํฌ์ง๋ง ๊ทธ ๋์ ์ฝ๊ฐ ๋ ๋๋ฆฐ ์ ์ฅ๊ณต๊ฐ L2๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
๋ณดํต L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ์๋ ๋ช ๋ น์ด ์บ์์ ๋ฐ์ดํฐ ์บ์๊ฐ ๋ฐ๋ก ์์ต๋๋ค.
๊ทธ ์ค ๋ฐ์ดํฐ ์บ์๋ CPU ๊ฐ ์ง์ ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋, ๋ฐ๋ก ์คํ๋์ด์ผ ํ๋ ์ค์ํ ํ์ผ์ ์ ์ฅํด ๋๋๋ฐ์ ์ฌ์ฉํฉ๋๋ค.
" It is used to store data that was accessed by the processor recently, critical files that need to be executed immediately and it is the first cache to be accessed and processed when the processor itself performs a computer instruction. "
L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ CPU์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ธํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ์ ๊ทผ ์ง์ฐ ์๊ฐ(Access latency)์ด ๋งค์ฐ ์ค์ํ๋ฐ,
๋ช ๋ น์ด๋ ๋ณดํต ๊ณต๊ฐ ์ง์ญ์ฑ์ด ๋๊ณ ๋ฐ์ดํฐ๋ ๋ณดํต ์๊ฐ ์ง์ญ์ฑ์ด ๋์ต๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ด ๋์ ๋๋์ด ์๋ก ๋ค๋ฅธ ์ง์ญ์ฑ์ ์ด์ฉํ ์ ์์ต๋๋ค.
๋ํ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ฝ์ด์ฌ ์ ์๊ฒ ํจ์ผ๋ก์จ CPU์ ํ์ดํ๋ผ์ด๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๊ฒ ๋ฉ๋๋ค.
L2 ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฑํ ๋์ ๊ตฌ๋ถ ์์ด ํ๋์ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
L1 ์บ์๋ ๋ณดํต 8~64KB ์ ๋์ ์ฉ๋์ผ๋ก CPU๊ฐ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ฒ ๋๋ฉฐ, ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ์ด์ L2 ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋์ด๊ฐ์ ์ฐพ์ต๋๋ค.
ARM Cortext -A72 CPU ์ ์ ์ ๋๋ค. ํ๋ก์ธ์๊ฐ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ๋ L1 ์บ์ฌ์, ๋ชจ๋ ํ๋ก์ธ์๊ฐ ๊ณต์ ํ๋ L2 ์บ์๋ฅผ ์ฟ๋ณผ์ ์๋ ๊ทธ๋ํฝ์ ๋๋ค.๋ํ, I-Cache, D-Cache ๋ก 1์ฐจ ์บ์๊ฐ ๋๋์ด ์๋ค์!
์บ์์ ๋ด๋ถ๊ตฌ์กฐ๋?
์บ์ ๋ฉ๋ชจ๋ฆฌ๋ S ๊ฐ์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ ์งํฉ์ E ๊ฐ์ ์บ์ ๋ผ์ธ์ ์ ์ฅํ๊ณ ์์ต๋๋ค.
ํ๋์ ์บ์๋ผ์ธ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ค๋ ๋ธ๋ก ํ๋์, ๊ทธ๊ฒ์ด ์ ํจํ์ง ๋ํ๋ด๋ ์ ํจ ๋นํธ(Valid bit),
๊ทธ๋ฆฌ๊ณ ๋์ผํ ์งํฉ์ ๋ค์ด์ฌ ์ ์๋ ๋ค๋ฅธ ๋ธ๋ก๋ค๊ณผ ๊ตฌ๋ณํ๊ธฐ ์ํ ํ๊ทธ(Tag)๋ฅผ ์ ์ฅํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๋ธ๋ก์ด B ๋ฐ์ดํธ๋ผ๊ณ ํ ๋, ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์ด ์ฌ์ด์ฆ๋ (S x B x E) ๋ฐ์ดํธ๊ฐ ๋ฉ๋๋ค.
์ด ๋, ์ธํธ ๋น ์บ์๋ผ์ธ ์ (E) = 1 ์ด๋ฉด Direct-Mapped Cache, E > 1 ์ด๋ฉด E-way Set Associative Cache ๋ผ๊ณ ํฉ๋๋ค.
์บ์ ์ ์ฑ ( ์๊ณ ๋ฆฌ์ฆ )
์บ์ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋ฅ ํฅ์์ ์ํด ์ ์ ํ ์บ์ ์ ์ฑ ์ ์ทจํด์ผ ๋ ์ดํด์๋ฅผ ์ค์ด๋ฉด์ ๋์ญํญ์ ๋์ด์ฌ๋ฆด ์ ์์ต๋๋ค.
๋ ์ดํด์๋ ์ ์ถ๋ ฅ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ฉฐ, ๋์ญํญ์ ๋จ์ ์๊ฐ๋น ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ์ ์์ ๋๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๋ธ๋ก์ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์งํฉ์๋ง ๋ค์ด๊ฐ ์ ์๋๋ก ๋์ด ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ 2๋ฒ์งธ ๋ธ๋ก (00001) ์ ์บ์์ 2๋ฒ์งธ ์งํฉ(001) ์๋ง ๋ค์ด๊ฐ ์ ์๋ค๋ ์์ ๋๋ค.
์? CPU ๊ฐ ์ฐธ์กฐํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์บ์์ ์ ๋ฌํ ๋, ์บ์๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ญ์ด ์บ์์ ์๋์ง ํ์ํด์ผ ํฉ๋๋ค.
์ด ๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ญ์ด ๋ง๊ตฌ์ก์ด๋ก ์ ์ฅ๋์ด ์๋ค๋ฉด ์ ํ์ผ๋ก ํ์ํด์ผ ํ ๊ฒ์ ๋๋ค. = O(N x E)
๊ทธ๋ฐ๋ฐ ์์ ๊ฐ์ด ํด์ ๋ฐฉ์์ผ๋ก ์ ์ฅ๋์ด์์ผ๋ฉด O(E) ๋ก ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ E๋ ํ์ ๋ ์ซ์์ด๋ฏ๋ก O(1)์ ์๋ ดํฉ๋๋ค.
CPU ๊ฐ ์บ์์ ์ ๋ฌํ๋ ์ฐธ์กฐํ๊ณ ์ถ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ m = (t + s + b) ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
์ด ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ด ์ฌ์ด์ฆ๋ M = ( 2^m ) ๋ฐ์ดํธ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํธ ์ด๋๋ ์ฑ์ผ๋ก 1 ๋ฐ์ดํธ๋น ํ๋์ ์ฃผ์๋ฅผ ๊ฐ์ง๋๋ฐ,
์ฃผ์์ ๊ฐ์๊ฐ 2^m ๊ฐ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ๊ธฐ์ 2^s ๋ Set ์ ๊ฐ์, 2^b ๋ B(๋ธ๋ก)์ ํฌ๊ธฐ๊ฐ ๋๊ฒ ์ต๋๋ค.
์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๋ธ๋ก์ ํฌ๊ธฐ๊ฐ B ์ด๋ฏ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ์ด M / B ๊ฐ์ ๋ธ๋ก ๊ฐ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
2^m / 2^b ์ด๋ฏ๋ก 2^(m-b), ์ฆ ์์ m-b ๊ฐ์ ๋นํธ๊ฐ ๋ธ๋ก์ ์์น๋ฅผ ์ง์ ํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ( t ์ s ์์ญ์ ํด๋น)
ํ์ b ๋นํธ๋ ํด๋น ๋ธ๋ก ๋ด ๋ฐ์ดํธ ์คํ์ ์ ๋ํ๋ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ (m-b) ๋นํธ ์ค ํ์ s๋นํธ๊ฐ ๋์ผํ ๋ธ๋ก๋ค์ ๋์ผํ ์งํฉ์ ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ผ ๋๋จธ์ง t ๋นํธ ์์ญ์ ๋์ผํ ์งํฉ์ ๋ค์ด๊ฐ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋ก๋ค์ ๊ตฌ๋ณํด์ฃผ๋ ๋นํธ๊ฐ ๋ฉ๋๋ค.
์ด๊ฒ์ด ์บ์๋ผ์ธ์ ์ ์ฅ๋๋ ํ๊ทธ(Tag) ์ ๋๋ค.
Set index = ํ, Tag Index = ์ด ๋ก ์๊ฐํ๋ฉด ํธํ ๋ ค๋์?
Block offset ์ ํด๋น ๋ธ๋ก์ ์ฒซ๋ฒ์งธ ๋ถํฐ ์ผ๋ง๋ ๋จ์ด์ ธ์๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ์ด๊ตฌ์.
์บ์ ์ฝ๊ธฐ ๋์
CPU ๊ฐ ์ฐธ์กฐํ๊ณ ์ถ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ( m = t + s = b ) ๋ฅผ ์ ๋ฌํ๋ฉด, ์บ์๋ ์ฐ์ s ๋นํธ ์์ญ๋ฅผ ํตํด ์บ์์ ํด๋น ์ธํธ๋ก ์ด๋ ํฉ๋๋ค.
์ดํ t ๋นํธ ์์ญ ๊ณผ ์บ์๋ผ์ธ์ tag ๋ฅผ ๋น๊ตํ๊ณ , ๋ง์ง๋ง์ผ๋ก valid bit ๋ฅผ ํตํด ์ ํจ์ฑ ์ฒดํฌ๋ฅผ ํ๊ณ ํต๊ณผํ๋ค๋ฉด ์บ์ ํํธ ( HIT ) ์ ๋๋ค!
๋ฐ๋๋ก ์ ๊ณผ์ ์ค ํ์์ ์คํจํ๋ค๋ฉด ์บ์ ๋ฏธ์ค ( miss ) ์ ๋๋ค.
์บ์ ํํธ์ผ ๊ฒฝ์ฐ ์ฐพ์ ๋ฐ์ดํฐ ๋ธ๋ก์์ ํ์ b๋นํธ์ ์ฝ์ ๋ฐ์ดํธ์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ปจํธ๋กค ์ ํธ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฒญ๋ ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
์บ์ ๋ฏธ์ค์ธ ๊ฒฝ์ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ํ์ํ ๋ธ๋ก๋ฅผ ์บ์๋ก ๊ฐ์ ธ์จ ๋ค์, ์บ์ ํํธ์ผ ๋์ ๋์ผํ๊ฒ ๋ฐํํฉ๋๋ค.
๋ฐ์ดํฐ ๋จ์๊ฐ ์๋, ํ์ํ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ๋ธ๋ก์ ํต์งธ๋ก ๊ฐ์ ธ์จ๋ค๋ ๊ฒ์ ์ ๋ ํ์!
1 ๋ธ๋ก = 1 ์บ์ ๋ผ์ธ
๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ํด๋น ์ธํธ์ ์ถ๊ฐํ๋๋ฐ, ์ด ๋ ์ธํธ์ ๋์ด์ ๊ณต๊ฐ์ด ์์ ๋ ๊ธฐ์กด์ ๋ธ๋ก์ ๋น์์ผํฉ๋๋ค.
์ด๋ ํ์ํ ๊ฒ์ด Replacement Policy ์ด๊ณ ,
Random ์ ์ฑ , FIFO(First-In-First-Out) ์ ์ฑ , LRU(Least Recently Used) ์ ์ฑ ,LFU(Least Frequently Used) ์ ์ฑ ์ด ์์ต๋๋ค.
์บ์ ์ฐ๊ธฐ ์ ์ฑ
์์ ํ๋ ค๊ณ ํ๋ ๋ธ๋ก์ด ์บ์ ํํธ์ธ ๊ฒฝ์ฐ
Write-through ์ ์ฑ : ์บ์์ ๋ด์ฉ๋ ์์ ํ๊ณ ๊ณง๋ฐ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ๋ ์์ ํฉ๋๋ค. ์บ์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋์ง๋ง ๋ฒ์ค ๋ณ๋ชฉํ์์ด ์กด์ฌํฉ๋๋ค.
Write-back (Write-behind) ์ ์ฑ : ์บ์์ ๋ด์ฉ๋ง ์์ ํ๊ณ , ํด๋น ์บ์๋ผ์ธ์ด Replacement ๋ ๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ๋ ์์ ํฉ๋๋ค. ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ธฐ ๋์์ด ์ต์ํ ๋๊ธฐ ๋๋ฌธ์ ์๋ ์ธก๋ฉด์์ ์ด๋์ด ์์ต๋๋ค. ์บ์๋ผ์ธ์์ ๋ด๋ ค์ฌ ๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ๋นํธ (VI bit) ๊ฐ ํ์ํฉ๋๋ค.
์บ์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ผ๊ด์ฑ (Cache Coherency) ์ด์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์บ์ ์ผ๊ด์ฑ ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋ฉ๋๋ค.
์บ์ ์ผ๊ด์ฑ ํ๋กํ ์ฝ์ ๋ฐ๋ก ๊ธ์ ์์ฑํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค...^^
์์ ํ๋ ค๊ณ ํ๋ ๋ธ๋ก์ด ์บ์ ๋ฏธ์ค์ธ ๊ฒฝ์ฐ
Write allocate (Fetch on write) ์ ์ฑ : ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ธ๋ก์ ์์ ํด์ค ๋ค์ ์บ์๋ก Fetch ํด์ฃผ๋ ๋ฐฉ์.
ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ฃผ ์์ ๋๋ค๋ฉด ์ด ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ์บ์์ ์ฌ๋ ค๋๋ ๊ฒ์ด ์ฑ๋ฅ์์ ์ด๋์ผ ๊ฒ์ ๋๋ค.
No-write allocate (Write-no-allocate ๋๋ Write around) ์ ์ฑ : ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ธ๋ก๋ง ์์ ๋ง ํ๋ ์ ์ฑ . ์บ์์ ๋ฐ๋ก ์ฌ๋ฆฌ์ง ์์ต๋๋ค.
์บ์ ์ฑ๋ฅ์ ์์
Cache Hit Ratio = '(์บ์ ์ ์ค ํ์) / [ (์บ์ ์ ์ค ํ์) ๏ผ (์บ์ ์ ์ค ์คํจ ํ์) ]× 100'
Cache Miss Ratio = 1 - (Cahe Hit Ratio)
Hit Time = ์บ์ ๋ผ์ธ์ ๋ฐ์ดํฐ๋ฅผ CPU๋ก ์ ๋ฌํ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
Miss Penalty = ์บ์ ๋ฏธ์ค๋ก ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์์ ๋ธ๋ก์ ์บ์๋ผ์ธ์ ๊ฐ์ ธ์ค๋ ์๊ฐ. ์บ์ ๋ฏธ์ค์ Hit Time + Miss Penalty ๊ฐ ์บ์ ๋ ์ดํด์๊ฐ ๋๋ค.
Cache Size ์ ๋ธ๋ก์ ํฌ๊ธฐ, E ์์ ๊ด๊ณ (E - Associative)
Cache Size ๊ฐ ์ปค์ง๋ฉด Miss Ratio ๋ ๊ฐ์ํ๋ค.
์ฌ์ด์ฆ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ๋ธ๋ก์ ๋ฃ์ ์ ์์ ๊ฒ์ด๊ณ , ์๊ฐ์ ์ง์ญ์ฑ์ ๋ ํ๋ณดํ ์ ์๋ค.
๋ฐฉ๊ธ ์ ์ฐธ์กฐ๋ ๋ฐ์ดํฐ๋ ๋ค์ ์ฐธ์กฐ๋ ํ๋ฅ ์ด ๋๋ค๋ ๊ฒ์ด ์๊ฐ์ ์ง์ญ์ฑ์ด์๋ค.
Cache Size ๊ฐ ๊ณ ์ ์ผ ๋, ๋ธ๋ก ์ฌ์ด์ฆ๊ฐ ์ปค์ง๋ฉด ๊ณต๊ฐ์ ์ง์ญ์ฑ์ ๋ ํ๋ณดํ ์ ์๋ค.
๋ธ๋ก ์ฌ์ด์ฆ๊ฐ ์์์ง๋ฉด ์๊ฐ์ ์ง์ญ์ฑ์ ๋ ํ๋ณดํ ์ ์๋ค. ์ค๊ฐ ์ง์ ์์ Miss Ratio ๊ฐ ์ต์ ํ๋๋ค.
N-Asscociative Set ์ ๋ฐฐ์น๋ฐฉ์์์ N์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก Full-Associative ์ ๊ฐ๊น์์ง๋ค.
์ด ๋ ๊ณต๊ฐ์ ๋ญ๋น ์์ด ๋ธ๋ก์ ๋ฃ์ ์ ์๊ฒ ๋๋ฏ๋ก Confilct Miss ๊ฐ ์ค์ด๋ ๋ค.
ํ์ง๋ง ์บ์ ์ ์ฒด๋ฅผ ์ํํด์ผ ํ๋ฏ๋ก Hit Time ์ด ์ฆ๊ฐํ ๊ฒ์ด๋ค.
N์ ํฌ๊ธฐ๊ฐ ์์์ง์๋ก Direct-Mapped Cache ์ ๊ฐ๊น์์ง๋ค.
์บ์์ ๋ญ๋นํ๋ ๊ณต๊ฐ์ด ๋์ด๋๊ฒ ๋๊ณ Conflict Miss ๊ฐ ์ฆ๊ฐํ์ง๋ง Hit Time ์ ๊ฐ์ํ ๊ฒ์ด๋ค.
Hit Time ์ด ์ค์ํ ๊ณณ์๋ N ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ , Miss Rate ์ด ์ค์ํ ๊ณณ์๋ N์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ฉด ์ต์ ํ ๋๋ค.
A14 Bionic ์์์ ์บ์๋?
๊ณ ๋งคํ ๊ฐํ๐๋ ๊ป์๋ ์์ ๋ค์ด ์ค๊ณํ ์นฉ์ ๋ํ ์ ๋ณด๋ฅผ ์ต์ํ๋ง ๋ ธ์ถํฉ๋๋ค.
๋ค๋ฅธ ๊ณณ์ ํ๋งคํ ์นฉ์ด ์๋๋ผ, ์์ ์ ๊ธฐ๊ธฐ์์๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ๋ผ์ ์ ํํ ์ค๊ณ ๊ตฌ์กฐ๋ ์ ์ ์๊ณ , ๊ฐ ํํธ์ ์คํ ์ ๋๋ง ์ ์ ์๋๋ฐ, ์คํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์คํ
Apple Firestorm MP2 2.99GHz + Apple Icestorm MP4 1.82GHz
192KB + 128KB L1 Cache(Firestorm) / 128KB + 64KB L1 Cache(Icestorm)
8MB L2 Cache(Firestorm) / 4MB L2 Cache(Icestorm)
16MB System CacheCPU ๋ ARM ์ฌ์ big.Little ๊ตฌ์กฐ๋ฅผ ์ฑ์ฉํ์ฌ 2์ฝ์ด Apple Firestorm ๊ณผ 4์ฝ์ด Apple IceStorm ์ผ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
192KB ๋ L1 ๋ช ๋ น์ด ์บ์์ ํด๋นํ๋๋ฐ, ๋ ์ดํด์๊ฐ 3์ฌ์ดํด์ ๋ถ๊ณผํ๋ค๊ณ ํฉ๋๋ค....
" ์ด๋ ๊ฒฝ์ ARM ์ฝ์ด ๋๋น 3๋ฐฐ๋ ๋๋ ํฌ๊ธฐ์ด๋ฉฐ ํ๋์ x86 ์ํคํ ์ฒ ๋๋น 6๋ฐฐ๋ ๋๋ ํฌ๊ธฐ์ด๋ค. ๊ฒ๋ค๊ฐ ๊ฑฐ๋ํ ์ฉ๋์๋ ๋ถ๊ตฌํ๊ณ ์บ์ ์ก์ธ์ค ์๊ฐ์ด 3 ์ฌ์ดํด์ ๋ถ๊ณผํ๋ค. AMD์ 32KB ์บ์๋ ์ก์ธ์ค ์๊ฐ์ด 4 ์ฌ์ดํด์ด๋ฉฐ ์ธํ ์๋์ฝ๋ธ์ 48KB ์บ์๋ 5 ์ฌ์ดํด์ ์ก์ธ์ค ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๋ํ ๋ฆฌํ ์ฝ์ด์ ๋ช ๋ น์ด ์บ์๋ 128KB๋ก ๊ฒฝ์์ฌ ๋น ์ฝ์ด๋ณด๋ค๋ ํจ์ฌ ํฐ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค. " - ์๋๋ํ -
์ ํ์ ํ์ ์๋ค๊ณ ํ๋ ์ฌ๋๋ค์ ์ ํ์ ์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค... ๐ค
๋ญ ์๋ฌดํผ ๋ฐฐ์ด๋ฐ์ ๋ฐ๋ฅด๋ฉด 128KB ๋ ๋ฐ์ดํฐ ์บ์๊ฐ ๋๊ฒ ์ต๋๋ค.
Apple Silicon ์ ๋ ์์ธํ ์ ๋ณด๊ฐ ๋์ค๋ฉด ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค!
์ค๋๋ ๋๋ ์ฑ์ฅํ๋ค!!! โ๐ป
๐ค๐ข[์ฐ์งฑ์ iOS ๋ธ๋ก๊ทธ]๐ต๐ป
iOS๋ฅผ ๊ณต๋ถํ๋ฉด์ ๋ฐฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ ์์ต๋๋ค.์ฐธ๊ณ ์๋ฃ
https://namu.wiki/w/์บ์%20๋ฉ๋ชจ๋ฆฌ?from=Cache
https://www.techopedia.com/definition/8048/level-1-cache-l1-cache