[์šด์˜์ฒด์ œ] 8. ์žฅ์น˜ ๊ด€๋ฆฌ

1. ์žฅ์น˜์˜ ๊ฐœ๋…

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—๋Š” ๋‹ค์–‘ํ•œ ์žฅ์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค ๊ด€์ ์—์„œ ๋ณด๋ฉด CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์‹คํ–‰์— ํ•„์ˆ˜์ ์ธ ์žฅ์น˜๊ฐ€ ์žˆ๋Š” ๋ฐ˜๋ฉด ์žฅ์น˜๋“ค์€ ๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ์— ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๊ฐ€์ ์ธ ์žฅ์น˜์ด๋‹ค.

 

์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ค์€ ์žฅ์น˜์˜ ๊ธฐ๋Šฅ์  ํŠน์ง• ๋ฐ ์žฅ์น˜ ๊ด€๋ฆฌ์ž์˜ ๊ด€๋ฆฌ ํŠน์„ฑ์— ๋”ฐ๋ผ ์„ธ ๊ฐ€์ง€ ๋ฒ”์ฃผ๋กœ ๋‚˜๋ˆˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—๋งŒ ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ์ „์šฉ์žฅ์น˜, ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ๊ณต์šฉ์žฅ์น˜, ๊ทธ๋ฆฌ๊ณ  ์ „์šฉ์žฅ์น˜์™€ ๊ณต์šฉ์žฅ์น˜์˜ ์กฐํ•ฉ์ธ ๊ฐ€์ƒ์žฅ์น˜ ๋“ฑ์ด ์žˆ๋‹ค.

2. ์žฅ์น˜์˜ ๊ตฌ์„ฑ

1. ๋…ผ๋ฆฌ์  ๊ตฌ์„ฑ

์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ - ์žฅ์น˜ ์ œ์–ด๊ธฐ - ์žฅ์น˜ ์ˆœ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.

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

2. ๋ฌผ๋ฆฌ์  ๊ตฌ์„ฑ

์ž…๋ ฅ์žฅ์น˜์˜ ๋ฌผ๋ฆฌ์  ๊ตฌ์„ฑ

์žฅ์น˜์˜ ๋ฌผ๋ฆฌ์  ๊ตฌ์„ฑ์€ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€ ์žฅ์น˜๋“ค์ด ๋ฒ„์Šค(bus) ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค.

3. ์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ ์œ ํ˜•

1. ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ๋ฒ•

ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ๋ฒ•์€, CPU๋งŒ์„ ์ด์šฉํ•˜์—ฌ ์ž…์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํด๋ง(polling) ์„ ์ด์šฉํ•œ๋‹ค.

 

ํด๋ง์ด๋ž€ CPU๊ฐ€ ์ž…์ถœ๋ ฅ์žฅ์น˜์˜ ์ƒํƒœ๋ฅผ ์ง€์†์ ์œผ๋กœ ํ™•์ธํ•˜์—ฌ CPU๊ฐ€ ์›ํ•˜๋Š” ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.

2. ์ธํ„ฐ๋ŸฝํŠธ ๋ฐฉ๋ฒ•

์ธํ„ฐ๋ŸฝํŠธ ๋ฐฉ๋ฒ•์€ ์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ์— ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

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

3. DMA ๋ฐฉ๋ฒ•

DMA(Direct Memory Access)๋Š” DMA ์ œ์–ด๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ CPU๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

CPU์™€ DMA ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—‘์„ธ์Šคํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ์— ์—‘์„ธ์Šค ํ•˜๋Š” ๊ฒฝ์šฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋‚˜, ์ด ๊ฒฝ์šฐ DMA ์ œ์–ด๊ธฐ์— ์šฐ์„ ๊ถŒ์ด ์žˆ๋‹ค.

4. ์ž…์ถœ๋ ฅ ๊ด€๋ฆฌ

1. ๋ฒ„ํผ๋ง

๋ฒ„ํผ(buffer)๋ž€ ์ž…์ถœ๋ ฅ ๋ฐ์ดํ„ฐ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ „์†กํ•  ๋•Œ ์ž„์‹œ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค. CPU์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„์™€ ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„์˜ ์ฐจ์ด๋กœ ์ธํ•œ ๋ฌธ์ œ๋ฅผ ๋ฒ„ํผ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•œ๋‹ค.

 

์ˆœํ™˜๋ฒ„ํผ์˜ ์˜ˆ์‹œ

 

2. ์Šคํ’€๋ง

์Šคํ’€๋ง(Simultaneous Peripheral Operation On Line, SPOOLing)์€ ์ž…์ถœ๋ ฅ ํ”„๋กœ์„ธ์Šค์™€ ์ €์† ์ž…์ถœ๋ ฅ์žฅ์น˜ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ž๊ธฐ ๋””์Šคํฌ์™€ ๊ฐ™์€ ๊ณ ์† ์žฅ์น˜๋ฅผ ํ†ตํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ผ์ข…์˜ ๋ฒ„ํผ๋ง์ด๋‹ค.

 

ํ”„๋ฆฐํ„ฐ๋“ฑ์˜ ์žฅ์น˜์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.