alswlfl 2026. 4. 22. 21:11

2026.04.19 - [CS๊ณต๋ถ€/์ปดํ“จํ„ฐ ๊ตฌ์กฐ] - ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด์™€ ํ•ต์‹ฌ ๋ถ€ํ’ˆ

๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ: CPU๊ฐ€ ์‹คํ–‰ํ•  ๋Œ€์ƒ์„ ์ €์žฅํ•˜๋Š” ๋ถ€ํ’ˆ์œผ๋กœ ํœ˜๋ฐœ์„ฑ ์ €์žฅ์žฅ์น˜์ด๋‹ค. ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์—๋Š” RAM๊ณผ ROM์ด ์žˆ๋‹ค.

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜: ๋ณด๊ด€ํ•  ๋Œ€์ƒ์„ ์ €์žฅํ•˜๋Š” ๋ถ€ํ’ˆ์œผ๋กœ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ์žฅ์น˜์ด๋‹ค.

  • CPU๋Š” ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ”๋กœ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์—์„œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ณต์‚ฌํ•ด์™€์•ผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • RAM์˜ ์šฉ๋Ÿ‰์ด ์ž‘์œผ๋ฉด ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋กœ๋ถ€ํ„ฐ ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ํšŸ์ˆ˜๊ฐ€ ์žฆ์•„์ ธ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€์ง€๋งŒ, RAM์˜ ์šฉ๋Ÿ‰์ด ์ถฉ๋ถ„ํžˆ ํฌ๋ฉด ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์—์„œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ฏธ๋ฆฌ RAM์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์œ ๋ฆฌํ•˜๋‹ค.
    ํ•˜์ง€๋งŒ, RAM์˜ ์šฉ๋Ÿ‰์ด ํ•„์š” ์ด์ƒ์œผ๋กœ ํฌ๋‹ค๊ณ  ์ปดํ“จํ„ฐ์˜ ์„ฑ๋Šฅ์ด ๋น„๋ก€ํ•ด์„œ ํ–ฅ์ƒ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค.

RAM(Randon Access Memory, ์ž„์˜ ์ ‘๊ทผ ๋ฉ”๋ชจ๋ฆฌ)

์ž„์˜ ์ ‘๊ทผ(=์ง์ ‘ ์ ‘๊ทผ): ์ €์žฅ๋œ ์š”์†Œ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•  ํ•„์š” ์—†์ด ์ž„์˜์˜ ์œ„์น˜์— ๊ณง์žฅ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹

- ์˜ˆ๋ฅผ ๋“ค์–ด 100๋ฒˆ์ง€์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•  ๋•Œ, 1๋ฒˆ์ง€, 2๋ฒˆ์ง€, ..., 100๋ฒˆ์ง€ ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•  ํ•„์š” ์—†์ด ๊ณง์žฅ 100๋ฒˆ์ง€๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์–ด๋””์— ์œ„์น˜ํ•˜๋“  ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์‹œ๊ฐ„์ด ๋™์ผํ•˜๋‹ค.

์ˆœ์ฐจ ์ ‘๊ทผ: ํŠน์ • ์œ„์น˜์— ์ €์žฅ๋œ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์–ด๋–ค ์œ„์น˜์— ์ ‘๊ทผํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์‹œ๊ฐ„์ด ๋‹ค๋ฅด๋‹ค.

RAM ์ข…๋ฅ˜

1. DRAM(Dynamic RAM)

์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š”(์‚ฌ๋ผ์ง€๋Š”) ํŠน์„ฑ์„ ๊ฐ€์ง„ RAM์ด๋‹ค.

  • ๋ฐ์ดํ„ฐ์˜ ์†Œ๋ฉธ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ผ์ • ์ฃผ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌํ™œ์„ฑํ™”(๋‹ค์‹œ ์ €์žฅ)ํ•ด์•ผ ํ•œ๋‹ค.
  • ์†Œ๋น„ ์ „๋ ฅ์ด ๋‚ฎ๊ณ , ์ €๋ ดํ•˜๋ฉฐ, ์ง‘์ ๋„๊ฐ€ ๋†’์•„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Œ€์šฉ๋Ÿ‰์œผ๋กœ ์„ค๊ณ„ํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค.

2. SRAM(Static RAM)

์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”(์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”) ํŠน์„ฑ์„ ๊ฐ€์ง„ RAM์ด๋‹ค.

  • ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ์žฅ์น˜๋ผ๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค. SRAM๋„ ์ „์›์ด ๊ณต๊ธ‰๋˜์ง€ ์•Š์œผ๋ฉด ์ €์žฅ๋œ ๋‚ด์šฉ์ด ์†Œ์‹ค๋œ๋‹ค.
  • ์†๋„๋Š” DRAM๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ, ์†Œ๋น„ ์ „๋ ฅ์ด ํฌ๊ณ , ๋น„์‹ธ๊ณ , ์ง‘์ ๋„๋„ ๋‚ฎ๋‹ค. ๋Œ€์šฉ๋Ÿ‰์œผ๋กœ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†์ง€๋งŒ ์†๋„๊ฐ€ ๋นจ๋ผ์•ผ ํ•˜๋Š” ์ €์žฅ์žฅ์น˜(ex: ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ)์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.
โ“ '์ง‘์ ๋„๊ฐ€ ๋†’๋‹ค'์˜ ์˜๋ฏธ
์ง‘์ ๋„๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์€ ๋” ์ž‘๊ณ  ๋นฝ๋นฝํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
1๋น„ํŠธ ์ €์žฅ ๊ณต๊ฐ„์„ ๋งŒ๋“œ๋Š”๋ฐ DRAM์€ ํŠธ๋žœ์ง€์Šคํ„ฐ๊ฐ€ 1๊ฐœ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, SRAM์€ ํŠธ๋žœ์ง€์Šคํ„ฐ๊ฐ€ 4๊ฐœ ํ•„์š”ํ•˜๋‹ค.
- ํŠธ๋žœ์ง€์Šคํ„ฐ: ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•ด ํŠน์ • ์ปคํŒจ์‹œํ„ฐ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋‹ด๋‹นํ•ด Access Transistor๋ผ๊ณ  ํ•œ๋‹ค.
- ์ปคํŒจ์‹œํ„ฐ: ์ „ํ•˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€, ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ 0๊ณผ 1์„ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์†Œ์ž

 

3. SDRAM(Synchronous Dynamic RAM)

ํด๋Ÿญ ์‹ ํ˜ธ์™€ ๋™๊ธฐํ™”๋œ, ๋ณด๋‹ค ๋ฐœ์ „๋œ ํ˜•ํƒœ์˜ DRAM์ด๋‹ค.

  • ํด๋Ÿญ  ํƒ€์ด๋ฐ์— ๋งž์ถฐ CPU์™€ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” DRAM์ด๋‹ค.

4. DDR SDRAM(Double Data Rate SDRAM)

๋Œ€์—ญํญ์„ ๋„“ํ˜€ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“  SDRAM์œผ๋กœ, SDRAM์ด ํ•œ ํด๋Ÿญ๋‹น ํ•œ ๋ฒˆ์”ฉ CPU์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, DDR SDRAM์€ ๋‘ ๋ฐฐ์˜ ๋Œ€์—ญํญ์œผ๋กœ ํ•œ ํด๋Ÿญ๋‹น ๋‘ ๋ฒˆ์”ฉ CPU์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, DDR SDRAM์€ SDRAM๋ณด๋‹ค ์ „์†ก ์†๋„๊ฐ€ ๋‘ ๋ฐฐ ๊ฐ€๋Ÿ‰ ๋น ๋ฅด๋‹ค.

- ํ•œ ํด๋Ÿญ๋‹น ํ•˜๋‚˜์”ฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” SDRAM์€ SDR SDRAM(Single Data Rate SDRAM)๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

๋Œ€์—ญํญ(data rate): ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๊ธธ์˜ ๋„ˆ๋น„

 

DDR2 SDRAM์€ DDR SDRAM๋ณด๋‹ค ๋Œ€์—ญํญ์ด ๋‘ ๋ฐฐ ๋„“์€ SDRAM์„ ์˜๋ฏธํ•˜๊ณ , DDR3 SDRAM์€ ๋Œ€์—ญํญ์ด DDR2 SDRAM๋ณด๋‹ค ๋‘ ๋ฐฐ ๋„“๊ณ , SDR SDRAM๋ณด๋‹ค ์—ฌ๋Ÿ ๋ฐฐ ๋„“์€ SDRAM์ด๋‹ค.

์ตœ๊ทผ์— ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” DDR4 SDRAM์ด๋‹ค.


๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”์ดํŠธ๋ฅผ ๋ฐ€์–ด ๋„ฃ๋Š” ์ˆœ์„œ - ๋น… ์—”๋””์•ˆ๊ณผ ๋ฆฌํ‹€ ์—”๋””์•ˆ

ํ˜„๋Œ€์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ 4๋ฐ”์ดํŠธ(32๋น„ํŠธ), 8๋ฐ”์ดํŠธ(64๋น„ํŠธ)์ธ ์›Œ๋“œ ๋‹จ์œ„๋กœ ๋ฐ›์•„๋“ค์ธ๋‹ค.

์—ฌ๋Ÿฌ ๋ฐ”์ดํŠธ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์ฃผ์†Œ์— ๊ฑธ์ณ ์ €์žฅํ•œ๋‹ค. ์ฆ‰, ํ•œ ์ฃผ์†Œ์— 1๋ฐ”์ดํŠธ์”ฉ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” 4๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ 4๊ฐœ์˜ ์ฃผ์†Œ์— ์ €์žฅํ•˜๊ณ , 8๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ 8๊ฐœ์˜ ์ฃผ์†Œ์— ์ €์žฅํ•œ๋‹ค.

ex) 16์ง„์ˆ˜ 1A2B3C4D๋Š” 1A, 2B, 3C, 4D๋กœ ๋‚œ์›Œ 4๊ฐœ์˜ ์ฃผ์†Œ์— ์ €์žฅ๋œ๋‹ค. (16์ง„์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ 4๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 16์ง„์ˆ˜ 2๊ฐœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ 8๋น„ํŠธ์ธ 1๋ฐ”์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.)

 

๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”์ดํŠธ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์€ ์—ฐ์†ํ•ด์„œ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๋ฐ”์ดํŠธ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ €์žฅํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋น… ์—”๋””์•ˆ๊ณผ ๋ฆฌํ‹€ ์—”๋””์•ˆ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

MSB(Most Significant Bit): ์ˆซ์ž์˜ ํฌ๊ธฐ์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์œ ํšจ ์ˆซ์ž์ธ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” ๋น„ํŠธ
LSB(Least Significant Bit): ์ˆซ์ž์˜ ํฌ๊ธฐ์— ๊ฐ€์žฅ ์ ์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์œ ํšจ ์ˆซ์ž์ธ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋น„ํŠธ
ex) 10์ง„์ˆ˜ 123์—์„œ MSB๋Š” 1์ด๊ณ , LSB๋Š” 3์ด๋‹ค.

 

๋น… ์—”๋””์•ˆ(big endian)

๋‚ฎ์€ ๋ฒˆ์ง€์˜ ์ฃผ์†Œ์— ์ƒ์œ„ ๋ฐ”์ดํŠธ๋ถ€ํ„ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

ex) 16์ง„์ˆ˜ 1A2B3C4D์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜, ์ฆ‰ ์ตœ์ƒ์œ„ ๋ฐ”์ดํŠธ๋Š” 1A์ด๋‹ค. ๋‚ฎ์€ ๋ฒˆ์ง€์— ์ตœ์ƒ์œ„ ๋ฐ”์ดํŠธ ๋จผ์ € ์ €์žฅํ•œ๋‹ค.

  • ์ผ์ƒ์ ์œผ๋กœ ์ˆซ์ž ์ฒด๊ณ„๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ˆœ์„œ์™€ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์„ ์ง์ ‘ ์ฝ๊ฑฐ๋‚˜, ๋””๋ฒ„๊น…ํ•  ๋•Œ ํŽธํ•˜๋‹ค.

๋น… ์—”๋””์•ˆ ์ €์žฅ ๋ฐฉ์‹

๋ฆฌํ‹€ ์—”๋””์•ˆ(little endian)

๋‚ฎ์€ ๋ฒˆ์ง€์˜ ์ฃผ์†Œ์— ํ•˜์œ„ ๋ฐ”์ดํŠธ๋ถ€ํ„ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

ex) 16์ง„์ˆ˜ 1A2B3C4D์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜, ์ฆ‰ ์ตœํ•˜์œ„ ๋ฐ”์ดํŠธ๋Š” 4D์ด๋‹ค. ๋‚ฎ์€ ๋ฒˆ์ง€์— ์ตœํ•˜์œ„ ๋ฐ”์ดํŠธ ๋จผ์ € ์ €์žฅํ•œ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์„ ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๊ธฐ๋Š” ๋ถˆํŽธํ•˜์ง€๋งŒ, ์ˆ˜์น˜ ๊ณ„์‚ฐํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๋‹ค.
    ex) 123+456 ๋ง์…ˆ์„ ํ•  ๋•Œ, ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ธ ์ผ์˜ ์ž๋ฆฟ์ˆ˜ 3๊ณผ 6๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•ด ๋‚˜๊ฐ€๋“ฏ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘์ ์—์„œ ์ˆ˜์น˜ ๊ณ„์‚ฐํ•ด ๋‚˜๊ฐ€๊ฑฐ๋‚˜ ์ž๋ฆฌ์˜ฌ๋ฆผํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌํ‹€ ์—”๋””์•ˆ ์ €์žฅ ๋ฐฉ์‹


์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ

CPU๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •์—์„œ ์ž์ฃผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๋Š” CPU๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๋ณด๋‹ค ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— CPU์˜ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ์•„๋ฌด๋ฆฌ ๋นจ๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๋ฉด CPU์˜ ๋น ๋ฅธ ์—ฐ์‚ฐ ์†๋„๋Š” ์•„๋ฌด๋Ÿฐ ํšจ์šฉ์ด ์—†๋‹ค.

์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด '์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ'์ด๋‹ค.

 

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ(cache memory)๋Š” CPU์˜ ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์†๋„์˜ ์ฐจ์ด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ•œ ์ €์žฅ์žฅ์น˜๋กœ, CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์— ์œ„์น˜ํ•œ SRAM ๊ธฐ๋ฐ˜์˜ ์ €์žฅ์žฅ์น˜์ด๋‹ค.

 

- ๋ฉ”๋ชจ๋ฆฌ์—์„œ CPU๊ฐ€ ์‚ฌ์šฉํ•  ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์™€ ํ™œ์šฉํ•œ๋‹ค.

- ์ฝ”์–ด์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ L1 ์บ์‹œ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ€๊นŒ์šด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ L2 ์บ์‹œ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ€๊นŒ์šด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ L3 ์บ์‹œ๋ผ๊ณ  ํ•œ๋‹ค.

- ์ผ๋ฐ˜์ ์œผ๋กœ L1 ์บ์‹œ์™€ L2 ์บ์‹œ๋Š” ์ฝ”์–ด ๋‚ด๋ถ€์—, L3 ์บ์‹œ๋Š” ์ฝ”์–ด ์™ธ๋ถ€์— ์œ„์น˜ํ•ด ์žˆ๋‹ค. ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ: L1 < L2 < L3, ์†๋„: L3 < L2 < L1

- CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ์šฐ์„  L1 ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ณ , ์—†๋‹ค๋ฉด L2, L3 ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

- ๋ฉ€ํ‹ฐ ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ์˜ ๊ฒฝ์šฐ, ์ผ๋ฐ˜์ ์œผ๋กœ L1 ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€ L2 ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฝ”์–ด๋งˆ๋‹ค ๊ณ ์œ ํ•œ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ํ• ๋‹นํ•˜๊ณ , L3 ์บ์‹œ๋Š” ์—ฌ๋Ÿฌ ์ฝ”์–ด๊ฐ€ ๊ณต์œ ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋œ๋‹ค.

๋ฉ€ํ‹ฐ ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ

 

- L1 ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ช…๋ น์–ด๋งŒ ์ €์žฅํ•˜๋Š” L1I ์บ์‹œ์™€ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•˜๋Š” L1D ์บ์‹œ๋กœ ๊ตฌ๋ถ„๋˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์„ ๋ถ„๋ฆฌํ˜• ์บ์‹œ๋ผ๊ณ  ํ•œ๋‹ค.

๋ถ„๋ฆฌํ˜• ์บ์‹œ

์บ์‹œ ํžˆํŠธ์™€ ์บ์‹œ ๋ฏธ์Šค

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ์„ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ ธ์™€ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์˜ ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•ด ์ €์žฅํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•ด ์ €์žฅํ•œ๋‹ค.

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU๊ฐ€ ์‚ฌ์šฉํ•  ๋ฒ•ํ•œ ๊ฒƒ์„ ์ €์žฅํ•œ๋‹ค.

์บ์‹œ ํžˆํŠธ: ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์˜ˆ์ธกํ•ด ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ CPU์— ์˜ํ•ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ

์บ์‹œ ๋ฏธ์Šค: ์ž์ฃผ ์‚ฌ์šฉ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ•ด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ–ˆ์ง€๋งŒ ํ‹€๋ฆฐ ์˜ˆ์ธก์œผ๋กœ ์ธํ•ด CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

์บ์‹œ ์ ์ค‘๋ฅ : ์บ์‹œ๊ฐ€ ํžˆํŠธ๋˜๋Š” ๋น„์œจ

$$์บ์‹œ ์ ์ค‘๋ฅ  =  \frac{์บ์‹œ ํžˆํŠธ ํšŸ์ˆ˜}{(์บ์‹œ ํžˆํŠธ ํšŸ์ˆ˜ + ์บ์‹œ ๋ฏธ์Šค ํšŸ์ˆ˜)}$$

์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ๋ผ๋Š” ํŠน์ •ํ•œ ์›์น™์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ: CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ๋•Œ ๋ณด์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ๋œ ๊ฒฝํ–ฅ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ์‹œ๊ฐ„ ์ง€์—ญ์„ฑ: CPU๋Š” ์ตœ๊ทผ์— ์ ‘๊ทผํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.
  • ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ: CPU๋Š” ์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๊ทผ์ฒ˜์— ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

์‹œ๊ฐ„ ์ง€์—ญ์„ฑ

์ตœ๊ทผ์— ์ ‘๊ทผํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ

ex) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ณ€์ˆ˜์ด๋‹ค. ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์€ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ๋œ๋‹ค.

์ฆ‰, CPU๋Š” ์ตœ๊ทผ์— ์ ‘๊ทผํ–ˆ๋˜ (๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ)๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์—ฌ๋Ÿฌ ๋ฒˆ ๋‹ค์‹œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ณต๊ฐ„ ์ง€์—ญ์„ฑ

์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๊ทผ์ฒ˜์— ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ

ex) ๋ฐฐ์—ด

const matrix = Array.from({ length: 20000 }, () => Array.from({ length: 20000 }, () => 0));

// ํ•œ ์—ด์˜ ๋ชจ๋“  ํ–‰์„ ์ˆœํšŒํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ์—ด์˜ ๋ชจ๋“  ์—ด์„ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด ์ ‘๊ทผ
for (let i = 0; i < 20000; i++) {
    for (let j = 0; j < 20000; j++) {
        matrix[i][j] = 1;
    }
}

// ํ•œ ํ–‰์˜ ๋ชจ๋“  ์—ด์„ ์ˆœํšŒํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ํ–‰์˜ ๋ชจ๋“  ์—ด์„ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด ์ ‘๊ทผ
for (let i = 0; i < 20000; i++) {
    for (let j = 0; j < 20000; j++) {
        matrix[j][i] = 1;
    }
}

 

์ฒซ ๋ฒˆ์งธ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋‘ ๋ฒˆ์งธ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์€ ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ ์ธก๋ฉด์—์„œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•ด ์‹ค์ œ ์‹คํ–‰ ์†๋„๊ฐ€ ํฌ๊ฒŒ ์ฐจ์ด๋‚œ๋‹ค.

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

CPU๊ฐ€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ๋•Œ๋Š” ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กญ๊ฒŒ ์“ฐ์—ฌ์ง„ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

 

ex) ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ 1000๋ฒˆ์ง€์— 200์ด๋ผ๋Š” ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๊ณ , ์ด ๊ฐ’์ด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์ €์žฅ๋˜์–ด ์žˆ์„ ๋•Œ, CPU๊ฐ€ ์ด ๊ฐ’์„ 200์—์„œ 300์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ 1000๋ฒˆ์ง€๋กœ ๊ฐ€์„œ 300์„ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์€ ์˜ณ์ง€ ์•Š๋‹ค. ๊ทธ ์ด์œ ๋Š” ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 1000๋ฒˆ์ง€ ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋ช…๋ น์–ด 1: 1000๋ฒˆ์ง€ ๊ฐ’์„ 300์œผ๋กœ ๋ฐ”๊พธ๊ธฐ → ๋ฉ”๋ชจ๋ฆฌ 1000๋ฒˆ์ง€ ๊ฐ’: 300, ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ๊ฐ’: 200

- ๋ช…๋ น์–ด 2: 1000๋ฒˆ์ง€ ๊ฐ’ ์ถœ๋ ฅ → ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ฝ์–ด ๋“ค์ผ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ 200 ์ถœ๋ ฅ

 

์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ ์ •์ฑ… 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  1. ์ฆ‰์‹œ ์“ฐ๊ธฐ(write-through)
    ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฉ”๋ชจ๋ฆฌ์— ๋™์‹œ์— ์“ฐ๋Š” ๋ฐฉ๋ฒ•
    ์žฅ์ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์—ฌ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ผ๊ด€์„ฑ์ด ๊นจ์ง€๋Š” ์ƒํ™ฉ ๋ฐฉ์ง€
    ๋‹จ์ : ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฒ„์Šค์˜ ์‚ฌ์šฉ ์‹œ๊ฐ„๊ณผ ์“ฐ๊ธฐ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚จ
  2. ์ง€์—ฐ ์“ฐ๊ธฐ(write-back)
    ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ๊ฐ’์„ ์จ ๋‘์—ˆ๋‹ค๊ฐ€ ์ถ”ํ›„ ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
    ์žฅ์ : ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด ์ฆ‰์‹œ ์“ฐ๊ธฐ๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฆ„
    ๋‹จ์ : ๋ฉ”๋ชจ๋ฆฌ์™€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ผ๊ด€์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ์Œ

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค๋ฅธ ์ฝ”์–ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€์˜ ๋ถˆ์ผ์น˜๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์บ์‹ฑ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์— ์žˆ์–ด ์–ด๋А ์ •๋„ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ์™€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ฑ…์ž„์ด ๋”ฐ๋ฅด๋Š” ๋ฐฉ์‹์ด๋‹ค.

 


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค.