Memory Structure

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ผ๊ณ  ๋งํ•˜๋Š” ๋‹จ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๋˜๋Š” ์ˆซ์ž์ด๋‹ค. ํฌ๊ฒŒ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ๋…ผ๋ฆฌ์  ์ฃผ์†Œ : CPU ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์ฃผ์†Œ๋กœ, ํ”„๋กœ์„ธ์Šค ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ์ฃผ์†Œ์ด๋‹ค. (0๋ถ€ํ„ฐ ์‹œ์ž‘)

  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ : ์‹ค์ œ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ์œ„์น˜

๊ทธ๋Ÿฐ๋ฐ "๊ตณ์ด ์™œ 2๊ฐœ์˜ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ์ง€?" ๋ผ๋Š” ์˜๋ฌธ์ด ์ƒ๊ธด๋‹ค.

๋งŒ์•ฝ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด์•ผ ํ• ๋•Œ๋งˆ๋‹ค CPU ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์šด์˜์ฒด์ œ์˜ ์˜์—ญ์„ ํ™•์ธํ•ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์ƒ๊ธฐ๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜๋กœ ์ ‘๊ทผํ•˜์—ฌ ์กฐ์ž‘ํ• ์ˆ˜ ์žˆ๋‹ค๋Š” ์œ„ํ—˜์„ฑ์ด ์กด์žฌํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ฉด, CPU ๋Š” ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋””์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์ผ์ผํžˆ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธธ์–ด์งˆ์ˆ˜ ์žˆ๋‹ค. (์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋Š” ๊ฐ„ํŽธํ•˜๊ฒŒ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.)

๋ฉ”๋ชจ๋ฆฌ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์šด์˜์ฒด์ œ ์˜์—ญ๊ณผ ์‚ฌ์šฉ์ž ์˜์—ญ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ๋”ฐ๋ผ์„œ, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.

๋”ฐ๋ผ์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ• ๋•Œ, ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•œ๋ฐ,์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์ด๋‹ค.

Address Binding

์‰ฝ๊ฒŒ ๋งํ•ด ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ์–ธ์ œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ€๊ฒƒ์ธ๊ฐ€? ์ด๋‹ค. ์ด ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์€ ์–ด๋А ์‹œ์ ์— ๋ฐ”์ธ๋”ฉ (๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •) ๋˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‚˜๋‰˜๋ฉฐ ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

Compile Time Binding

์ปดํŒŒ์ผ ํ• ๋•Œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋А ์œ„์น˜์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋ ์ง€ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ์ดํ›„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ณ ์ •๋œ ์ฃผ์†Œ (Absoulte address) ๋ฅผ ์ƒ์„ฑ ํ•˜๋ฉฐ, ๋งŒ์•ฝ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ๋‹ค์‹œ ์ปดํŒŒ์ผ์„ ์‹คํ–‰ํ•ด์•ผํ•œ๋‹ค. ํŠน์ง•์œผ๋กœ๋Š” ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•˜๋‹ค.

Load Time Binding

๋งŒ์•ฝ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์œ„์น˜ํ• ์ง€ ์•Œ์ˆ˜ ์—†๋‹ค๋ฉด, ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ฌ๋ ค ์‹คํ–‰์‹œ์— ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์กฐ๊ธˆ๋” ์ž์„ธํžˆ ๋งํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ Loader ๊ฐ€ ์‹คํ–‰๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ์‹œ์ ์—์„œ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋งŽ๋‹ค๋ฉด ์ด๊ฒƒ๋“ค์˜ ์ฃผ์†Œ๋ฅผ ๋‹ค ๋ฐ”๊ฟ”์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๋”ฉ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

Execution Time Binding (Run Time)

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

  • MMU ๊ธฐ๋ฒ• : CPU์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” ์ฃผ์†Œ์— ๋Œ€ํ•ด Base Register ๊ฐ’์„ ๋”ํ•ด์„œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ฒ•

  • Limit Register : ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์˜ ๋ฒ”์œ„๋กœ, ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋„๋ก ๋ง‰์•„์ฃผ๋ฉฐ, Base Register๋กœ ์ ‘๊ทผ ํ• ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Last updated