[Pintos] Project02 _ User Programs | Keyword | Register VS Memory

๋ ˆ์ง€์Šคํ„ฐ(Register)

  1. ์œ„์น˜์™€ ํŠน์„ฑ
    • ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด๋ถ€์— ์œ„์น˜ํ•œ ๋งค์šฐ ์ž‘์€ ์ €์žฅ ์žฅ์น˜์ž…๋‹ˆ๋‹ค.
    • ์šฉ๋Ÿ‰์€ ๋งค์šฐ ์ž‘์ง€๋งŒ(๋ช‡ ๋น„ํŠธ์—์„œ ์ˆ˜์‹ญ ๋น„ํŠธ ์ •๋„), ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  2. ๋ชฉ์ 
    • ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ , ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • CPU๊ฐ€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰๊ฐ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ, ์—ฐ์‚ฐ ์†๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  3. ์žฅ์ ๊ณผ ๋‹จ์ 
    • ์žฅ์ : ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ์„ ์ˆ˜ ์žˆ์–ด ์—ฐ์‚ฐ ์†๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
    • ๋‹จ์ : ์šฉ๋Ÿ‰์ด ๋งค์šฐ ์ž‘์•„, ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ์ข…๋ฅ˜

Address Registers 

  1. PC (Program Counter, ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ)
    • PC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰
    • ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด์˜ ๋‹ค์Œ ์œ„์น˜ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ ์ €์žฅ
    • ์ˆœ์ฐจ์  ์‹คํ–‰ ํ๋ฆ„์ด ๋Š๊ธฐ๋Š” ๊ฒฝ์šฐ
      • ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ์‹คํ–‰ ํ๋ฆ„์„ ์ด๋™ํ•˜๋Š” ๋ช…๋ น์–ด
      • ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
    • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ PC ๊ฐ’์„ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ , ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋๋‚˜๋ฉด ์Šคํƒ์— ์ €์žฅ๋œ ๊ฐ’์ด ๋‹ค์‹œ PC๋กœ ๋ณต๊ท€
  2. MAR (Memory Address Register, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ)
    • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋•Œ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ์ €์žฅ
  3. SP (Stack Pointer, ์Šคํƒ ํฌ์ธํ„ฐ)
    • ์Šคํƒ ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ ์ฃผ์†Œ ๊ฐ€๋ฅดํ‚ด
    • ์Šคํƒ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ๋Š” ๊ฐ€์ƒ์ฃผ์†Œ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋†’์€ ์ฃผ์†Œ์—์„œ ๋‚ฎ์€ ์ฃผ์†Œ๋กœ ํ™•์žฅ
    • ์Šคํƒ ํฌ์ธํ„ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ƒํ™ฉ
      • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ
        • ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ, ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์Šคํƒ์— ์ €์žฅ
        • ์Šคํƒ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ๊ฐ€๋ฅดํ‚ด
      • ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ์‹œ
        • ์Šคํƒ์— ์ €์žฅ๋œ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋กœ ์ด๋™
        • ์Šคํƒ ํฌ์ธํ„ฐ๋ฅผ ์ด์ „ ์œ„์น˜๋กœ ๋˜๋Œ๋ฆผ
      • ์ง€์—ญ ๋ณ€์ˆ˜ ๋˜๋Š” ์ž„์‹œ ๋ฐ์ดํ„ฐ
  4. Base Register (๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ)
    • ์Šคํƒ ๋‚ด์—์„œ ๊ธฐ์ค€ ์œ„์น˜
    • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๊ณ ์ •๋œ ๊ธฐ์ค€์  ์—ญํ• 
    • ํ•จ์ˆ˜ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ ํฌ์ธํ„ฐ ๊ฐ’์ด ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์— ๋ณต์‚ฌ (๊ณ ์ • ๊ธฐ์ค€์ )
  5. Segment Register (์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ)
    • ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌ
    • Code / Data / Stack / Extra Segment ๋“ฑ๋“ฑDate Registers

Date Registers

  • IR (Instruction Register, ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ)
    • ํ˜„์žฌ CPU๊ฐ€ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋ช…๋ น์–ด
    • PC๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์—์„œ ๋ช…๋ น์–ด ๊ฐ€์ ธ์˜ด
    • ๋ช…๋ น์–ด = ์—ฐ์‚ฐ์ž + ์˜คํผ๋žœ๋“œ
  • MBR (MBR, ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ)
    • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์–ด์˜จ ๋ฐ์ดํ„ฐ ๋˜๋Š” ์“ธ ๋ฐ์ดํ„ฐ ์ž„์‹œ ์ €์žฅ
    • ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ •์— ์ค‘์š”
  • General Purpose Register (๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ)
    • CPU ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋‹ค๋ชฉ์  ๋ ˆ์ง€์Šคํ„ฐ
    • ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋˜๋Š” ์—ฐ์‚ฐ์— ์ˆ˜ํ–‰
  • Flag Register (ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ)
    • ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์ƒํƒœ ํ”Œ๋ž˜๊ทธ
    • Zero / Sign / Carry / Overflow ๋“ฑ
  •  

๋ฉ”๋ชจ๋ฆฌ(Memory)

  1. ์œ„์น˜์™€ ํŠน์„ฑ
    • ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU ์™ธ๋ถ€์— ์œ„์น˜ํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • RAM(Random Access Memory)์„ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ, ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์ด๋ฏ€๋กœ ์ „์›์ด ๊บผ์ง€๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  2. ๋ชฉ์ 
    • ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์™€ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์–ด, ๋ณ€์ˆ˜, ์Šคํƒ, ํž™ ๋“ฑ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • CPU๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์™€ ๋ช…๋ น์–ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•˜๊ณ , ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  3. ์ข…๋ฅ˜
    • ์ฃผ ๋ฉ”๋ชจ๋ฆฌ(Main Memory, RAM): ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ(Cache Memory): CPU์™€ RAM ์‚ฌ์ด์— ์œ„์น˜ํ•˜๋ฉฐ, ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์ ‘๊ทผ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
    • ๋ณด์กฐ ์ €์žฅ ์žฅ์น˜(Storage): ํ•˜๋“œ ๋””์Šคํฌ๋‚˜ SSD์™€ ๊ฐ™์€ ์žฅ์น˜๋กœ, ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ๊ธฐ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. ์žฅ์ ๊ณผ ๋‹จ์ 
    • ์žฅ์ : ์ €์žฅ ์šฉ๋Ÿ‰์ด ํฌ๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋‹จ์ : ์†๋„๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋ณด๋‹ค ๋А๋ฆฌ๋ฉฐ, CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ์‹œ๊ฐ„์ด ๋” ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฐจ์ด์ 

  ๋ ˆ์ง€์Šคํ„ฐ(Register) ๋ฉ”๋ชจ๋ฆฌ(Memory)
์œ„์น˜ CPU ๋‚ด๋ถ€ CPU ์™ธ๋ถ€, RAM, ๋ณด์กฐ ์ €์žฅ ์žฅ์น˜
์†๋„ ๋งค์šฐ ๋น ๋ฆ„ ๋ ˆ์ง€์Šคํ„ฐ๋ณด๋‹ค ๋А๋ฆผ, ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
์šฉ๋Ÿ‰ ๋งค์šฐ ์ž‘์Œ (๋ช‡ ๋ฐ”์ดํŠธ) ์ƒ๋Œ€์ ์œผ๋กœ ํผ (์ˆ˜์‹ญ MB์—์„œ ์ˆ˜ GB ์ด์ƒ)
๋ชฉ์  ์—ฐ์‚ฐ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ ์ €์žฅ, ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ, ์‹คํ–‰ ๋ฐ์ดํ„ฐ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅ
๋ฐ์ดํ„ฐ ์œ ์ง€ ๋น„ํœ˜๋ฐœ์„ฑ (CPU๊ฐ€ ํ™œ์„ฑํ™”๋œ ๋™์•ˆ ์œ ์ง€) RAM์€ ํœ˜๋ฐœ์„ฑ, ์ €์žฅ ์žฅ์น˜๋Š” ๋น„ํœ˜๋ฐœ์„ฑ
์ ‘๊ทผ ๋ฐฉ์‹ CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ CPU๊ฐ€ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ