Skip to content

Latest commit

ย 

History

History
153 lines (87 loc) ยท 6.28 KB

Cache.md

File metadata and controls

153 lines (87 loc) ยท 6.28 KB

์บ์‹œ์˜ ์ง€์—ญ์„ฑ

์บ์‹œ์˜ ์ง€์—ญ์„ฑ

Caching line


์บ์‹œ์˜ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ

  • ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์†๋„๊ฐ€ ๋น ๋ฅธ ์žฅ์น˜์™€ ๋Š๋ฆฐ ์žฅ์น˜๊ฐ„์˜ ์†๋„์ฐจ์— ๋”ฐ๋ฅธ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ณ ์† ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ
  • ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๋‚ด์—์„œ ์ž์ฃผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ฅผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ๋Ÿฌ์™€ ์†๋„ ์ฐจ์ด๋ฅผ ์ค„์ด๊ณ , ์ฃผ๊ธฐ์–ต์žฅ์น˜์™€ CPU ๊ฐ„ ์‹ ํ˜ธ ๊ตํ™˜์— ์ด์šฉ๋˜๋Š” Memory Bandwidth๋ฅผ I/O ์‚ฌ์šฉ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ถ๊ทน์ ์œผ๋กœ ์„ฑ๋Šฅ ํ–ฅ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ์บ์‹œ์˜ ์„ฑ๋Šฅ์€ ์ž‘์€ ์šฉ๋Ÿ‰์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— CPU๊ฐ€ ์ฐธ์กฐํ•  ์“ธ๋ชจ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์–ด๋Š ์ •๋„ ๋“ค์–ด์žˆ๋Š๋ƒ์— ๋”ฐ๋ผ ์ขŒ์šฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— CPU๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ์–ด๋Š์ •๋„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋•Œ ์ ์ค‘๋ฅ ์„ ๊ทน๋Œ€ํ™” ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ ์‚ฌ์šฉ
  • ์ง€์—ญ์„ฑ (Locality)์ด๋ž€ ๊ธฐ์–ต ์žฅ์น˜ ๋‚ด์˜ ์ •๋ณด๋ฅผ ๊ท ์ผํ•˜๊ฒŒ Access ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์–ด๋Š ํ•œ ์ˆœ๊ฐ„์— ํŠน์ • ๋ถ€๋ถ„์„ ์ง‘์ค‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ํŠน์„ฑ(๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ์‹œ๊ฐ„์ , ํ˜น์€ ๊ณต๊ฐ„์ ์œผ๋กœ ๊ฐ€๊น๊ฒŒ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ)

Cache์˜ ์ข…๋ฅ˜

IMAGES

  • L1 Cache

    • ํ”„๋กœ์„ธ์„œ์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์บ์‹œ
    • ์†๋„๋ฅผ ์œ„ํ•ด IC์™€ DC๋กœ ๋‚˜๋ˆ”
    • IC(instruction Cache):๋ฉ”๋ชจ๋ฆฌ์—์„œ text์˜์—ญ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์บ์‹œ
    • DC(DATA Cache): ๋ฉ”๋ชจ๋ฆฌ์—์„œ text์˜์—ญ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์บ์‹œ
  • L2 Cache

    • ์šฉ๋Ÿ‰์ด ํผ
  • L3 Cache

    • ๋ฉ€ํ‹ฐ ์ฝ”์–ด ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ์ฝ”์–ด๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์บ์‹œ

    ๋ ˆ์ง€์Šคํ„ฐโ†’L1 ์บ์‹œ(sram)โ†’L2์บ์‹œโ†’์ฃผ๊ธฐ์–ต์žฅ์น˜(Dram)โ†’๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(EEPROM)โ†’์ˆœ์œผ๋กœ ์บ์‹œ์— ์ ‘๊ทผ

์บ์‹œ ์ ์ค‘๋ฅ ,์‹คํŒจ์œจ

cpu๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์บ์‹œํžˆํŠธ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์„œ DRAM์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์บ์‹œ ๋ฏธ์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ ์ค‘๋ฅ : ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ ์ค‘ ํšŸ์ˆ˜/์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ํšŸ์ˆ˜

Miss Ratio(์‹คํŒจ์œจ): 1-์ ์ค‘๋ฅ 


๋Œ€ํ‘œ์ ์ธ ์ง€์—ญ์„ฑ 2๊ฐ€์ง€

  • ์‹œ๊ฐ„ ์ง€์—ญ์„ฑ: ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ๋ฒˆ ์ ‘๊ทผ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋˜ ํ•œ๋ฒˆ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
  • ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ: ์ฐธ์กฐ๋œ ๋ฐ์ดํ„ฐ ๊ทผ์ฒ˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž ์‹œ ํ›„ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

IMAGES

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ ์ •์ฑ…๊ณผ ์บ์‹œ ์ผ๊ด€์„ฑ

  • CPU์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋™์ž‘์ด ์•„๋‹ˆ๋ผ ์ž…๋ ฅํ•˜๋Š” ๋™์ž‘์ด ๋ฐœ์ƒํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ฃผ์†Œ๊ฐ€ ์บ์‹ฑ๋œ ์ƒํƒœ๋ผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๋Œ€์‹  ์บ์‹œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.

  • ๋”ฐ๋ผ์„œ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ์ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ์‹œ์ ์— ๋”ฐ๋ผ ์ •์ฑ…์ด ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  • Write Through ์ •์ฑ…

    • ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธ
    • ๋‹จ์ˆœํ•˜๊ณ  ์บ์‹œ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋งค๋ฒˆ ๋ฐ”๊ฟ”์ค˜์•ผ ๋˜๋ฏ€๋กœ ๋Š๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.
  • Write Back ์ •์ฑ…

    • ์บ์‹œ๋งŒ ์—…๋ฐ์ดํŠธ ํ•˜๋‹ค๊ฐ€, ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์—์„œ ๋น ์ง€๊ฒŒ ๋  ๋•Œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ
    • ์บ์‹œ์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„œ๋กœ ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ ๋ธ”๋ก๋งˆ๋‹ค dirty bit๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋ฉฐ ์บ์‹œ ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋ฉด 1๋กœ ๋ฐ”๊ฟ”์ค€ ํ›„ ํ•ด๋‹น ๋ธ”๋ก์ด ๊ต์ฒด๋  ๋•Œ dirty bit๊ฐ€ 1์ด๋ผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

Caching line

์บ์‹œ์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋“ฑ์„ ์“ด ํƒœ๊ทธ๋ฅผ ๋‹ฌ์•„๋†“์„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ์ดํ„ฐ ๋ฌถ์Œ(๋‹จ์œ„)๋ฅผ ์บ์‹ฑ ๋ผ์ธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ์บ์‹œ์— ๋ชฉ์  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ์บ์‹œ๊ฐ€ ์˜๋ฏธ์žˆ์–ด์ง

  • ์ฆ‰, ์บ์‹œ์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋ฐ์ดํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋“ฑ์„ ๊ธฐ๋กํ•ด ๋‘” ํƒœ๊ทธ๋ฅผ ๋‹ฌ์•„๋†“์•„์•ผ ํ•จ -> ์ด ๋ฌถ์Œ์„ ์บ์‹ฑ ๋ผ์ธ์ด๋ผ ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋„ ์บ์‹ฑ ๋ผ์ธ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์ ธ์˜ด

  • ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋งคํ•‘ ํ”„๋กœ์„ธ์Šค(Mapping Process) ๋งคํ•‘ ํ”„๋กœ์„ธ์Šค๋Š” ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ๋ถ€ํ„ฐ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•

    • Full Associative

      • ๋น„์–ด์žˆ๋Š” ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์•„๋ฌด ๊ณต๊ฐ„์— ์ €์žฅ
      • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด cache set์„ ๋ชจ๋‘ ํ™•์ธํ•ด๋ด์•ผ ํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„์ด ๊ฝค ๊ฑธ๋ฆผ
    • Set Associative(Fully+Dircet ์˜ ์ข‹์€์ ์„ ์ทจํ•œ ์ค‘๊ฐ„๋ฐฉ์‹)(ํ˜„์žฌ์˜ cpu ์บ์‹œ๋Š” ๋Œ€๋ถ€๋ถ„ ์ด๋ฐฉ์‹)

      • Direct+Fully ๋ฐฉ์‹์œผ๋กœ ํŠน์ • set์„ ์ •ํ•ด๋†“๊ณ (Cache line์„ ๋ฌถ์€๊ฒƒ์ด Cache set)
      • ๊ทธ์ค‘ ๋น„์–ด์žˆ๋Š”๊ณณ ์•„๋ฌด ๊ณณ์—๋‚˜ ์ €์žฅ
      • ์ฆ‰,ํŠน์ • ๋กœ์šฐ๋ฅผ ์ง€์ •ํ•ด ๊ทธ ๋กœ์šฐ ์•ˆ์˜ ์–ด๋–ค ์—ด์ด๋“  ๋น„์–ด์žˆ์œผ๋ฉด ์ €์žฅํ•จ
    • Direct Map

      IMAGES

      • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ index field๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— Mapping
      • ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅด์ง€๋งŒ Conflict Miss๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋‹จ์  ์กด์žฌ
      • Conflict Miss: ๋™์ผ ๊ณต๊ฐ„์— ๋งคํ•‘๋˜์–ด์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ๋ธ”๋ก์„ ์œ„ํ•ด ์ด๋ฏธ ๋งคํ•‘๋œ ์บ์‹œ ๊ณต๊ฐ„์ด ํ•„์š”ํ• ๋•Œ
      • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฃผ์†Œ๊ฐ€ ์บ์‹œ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ ์ฃผ์†Œ์— ๋Œ€์‘๋˜๋Š” ๋‹ค๋Œ€ ์ผ ๋ฐฉ์‹
  • ์บ์‹ฑ๋ผ์ธ์˜ ๊ตฌ์„ฑ์š”์†Œ

    • Tag
      • ๋ฉ”๋ชจ๋ฆฌ์™€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„ mapping
    • Data
      • ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ
    • Valid bit
      • Miss ์‹œ 0์œผ๋กœ ํ‘œ์‹œ
      • Invalidation portocol์—์„œ ์‚ฌ์šฉ
    • Dirty bit
      • ์–ด๋–ค block ์— ์“ฐ๊ธฐ ๋™์ž‘์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ. ๋ฉ”๋ชจ๋ฆฌ์™€ ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ํ‘œ์‹œ


๐Ÿ“š ์ฐธ๊ณ 

์บ์‹œ์˜ ์ง€์—ญ์„ฑ 1

์บ์‹œ์˜ ์ง€์—ญ์„ฑ 2

์บ์‹œ์˜ ์ง€์—ญ์„ฑ 3

์บ์‹œ์˜ ์ง€์—ญ์„ฑ 4



Summary



โ‰๏ธ ๋ฉด์ ‘ ์˜ˆ์ƒ ์งˆ๋ฌธ

  1. ์บ์‹œ์˜ ์ง€์—ญ์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์„ธ์š”.
  1. ์บ์‹œ ๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?