I/O Management
Instruction Set Completeness๋ฅผ ํ ๋ ๋ค๋ฃจ์๋ ๋ด์ฉ
์ด๋์ ๋ ์นดํ
๊ณ ๋ฆฌ์ Instruction์ด ์์ด์ผ ์ ๋๋ก ์๋ํ ์ ์๋ค๋ผ๋ ๊ฒ.
ALU / Data Transfer / Control Transfer
๊ทธ ์ค Data Transfer์์ IO์ Processor ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ Instruction์ด ์กด์ฌํ๋ค๊ณ ์ธ๊ธ์ ํ์๋ค.
Memory Mapped I/O๊ฐ
๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ lw, sw๋ฅผ ์ด์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ ์ผ๋ถ๋ฅผ IO ์ฅ์น์ ํ ๋นํด์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ IO๊ฐ ์๋ค๊ฐ๋ค ํ๋ ๊ฒ ์ฒ๋ผ ์ฌ์ฉํ๊ฒ ๋ค๋ผ๋ ๊ฒ์ด ๋๋ค.
Memory-Mapped IO
๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ IO์ ๋ฐฐ์ ์ ํด๋์๋ค.
๋ฉ๋ชจ๋ฆฌ ์ด ๋ถ๋ถ์ load ํ๋ค๋ ๊ฒ์ด IO Device๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ค๋ผ๋ ๊ฒ์ด ๋๋ค. ์ด ์ํ๋ฅผ ์๋ ค์ฃผ๋ ๋์ง์คํฐ๊ฐ ์๋ค. MIPS์ ๊ฐ์ ๊ณณ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๊ณ ๋ง์ CPU์์ ์ด์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
OS๋ IO ๊ฐ ์ด๋ค ์ผ์ ํ๊ณ ๋๋์์ ์๋ ค์ฃผ๋ ๊ฒ์ ์์์ผ ํ๋ค.
IO ์ฅ์น๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ ๋งํ ๋ฅ๋ ฅ์ด ์๊ธฐ ๋๋ฌธ์ IO์ ๋ณํ๋ฅผ Processor ๊ฐ ์ธ์ํ ํ์๊ฐ ์๋ค.
Polling
CPU๊ฐ IO ์ฅ์น๊ฐ ์ด๋ค ์ํ์ธ์ง ํ์ธ์ ํ๋ ๊ฒ. IO ์ฅ์น๊ฐ ์ด๋ค ์ผ์ ํ ๊ฒ์ธ๊ฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ณํ๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋งํ๋ค.
Device -> IO (๋ฐฉํฅ์ฑ)
Interrupt
์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋๋ฉด IO๊ฐ CPUํํ
์๋ ค์ฃผ๋ ๊ฒ์ ๋งํ๋ค.
IO -> Device (๋ฐฉํฅ์ฑ)
Polling: Programmed IO
CPU๊ฐ IO Device ์์ ์๋ ๋์ง์คํฐ(IOC)๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฒดํฌํ๋ค.
Processor๊ฐ ๋ชจ๋ ๊ฒ์ Controllํ๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํ์ง๋ง ์ด๊ณณ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๋ง์ด ์์๋๋ค๋ผ๋ ๋จ์ ์ด ์๋ค. CPU๊ฐ ๊ต์ฅํ ์์ฃผ ํ์ธ์ ํด์ผ ํ๋ค.
Processor Checks Status before Acting
Control Register
์จ๋ ์ข๋ค, ์ฐ๋ฉด ์๋๋ค์ ์ํ๋ฅผ ์๋ ค์ฃผ๋ ๋์ง์คํฐ
Data Register
์ค์ ์ ์ผ๋ก IO ์ฅ์น์ ๋ํ๋ Information์ ํด๋นํ๋ค.
Control Register๊ฐ 0์์ 1๋ก ์ฌ๋ผ๊ฐ๋ฉด ์ฝ์ด๋ ์ข๋ค๋ผ๊ณ ์ฝ๊ณ Processor๊ฐ ์งํ์ ํ๊ณ
Spin waiting
IO Device์ ๋ณํ๊ฐ ์์ด๋ ๊ณ์ ํ์ธ์ ํด์ผ ํ๋ค๋ ๊ฒ
Processor๋ CPU์์ ๊ฐ์ฅ ์ค์ํ ์์์ด๋ฏ๋ก Interrupt๋ฅผ ํด์ผ ํ๋ค.
Exception mechanism ์ ์ฌ์ฉํด์ผ ํ๋ค.
Exception and Interrupts (ํ๊บผ๋ฒ์ ๋ฌถ์ด์ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ ๊ตฌ๋ถํ๊ธฐ๋ ํ๋ค.)
Unexpected events requiring change in flow of contol
CPU ์์์ ์ผ์ด๋๋ค. INstruction์ ์ฒ๋ฆฌํ๋ค ๋ณด๋๊น opcode๊ฐ ์ ์๋์ง ์์๊ฒ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์ด๋ค.
์ด๋ฐ ๊ฒฝ์ฐ CPU๋ ์๋ฌด๊ฒ๋ ํ ์ ์๋ ์ํฉ์ด ๋๋ ๋ฐ ์ด๊ฒ์ Exception์ด๋ผ๊ณ ํ๋ค
Interrupt๋ IO controller๋ก๋ถํฐ ์ ํธ๊ฐ ์จ ๊ฒ์ด๋ค. (**๊ตฌ๋ถํ ๊ฒ**)
Interrupts
CPU์ ํน๋ณํ Attention์ด ํ์ํ๋ค. ํ์ฌ Executeํ๊ณ ์๋ Process๋ฅผ ๋ฉ์ถ๊ณ Interrupt service routine์ผ๋ก ์ด๋์ ํ๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ๋ ๋์ฑ
๋ฉ๋ด์ผ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ ๊ฒ์ด๋ค.
CPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ค.
1) ํ์ฌ ์ํ๋ฅผ ์ ์ฅํ๋ค.
2) Interrupt์ ์ฒ๋ฆฌํ๋ค
3) ์ ์ฅํ PC๋ก ๋์์์ ๋ค์ ๋์ํ๋ค.
Handling Exception
MIPS์์ Exception์ ์ฒ๋ฆฌํ๊ธฐ ์ํ Processor๊ฐ ์กด์ฌํ๋ค. = Coprocessor
Exception์ด๋ผ๋ ๊ฒ์๋ overflow๊ฐ ์์ ์ ์๊ณ ๋ง์ฝ ๋ฐ์ํ๋ฉด PC๋ฅผ EPC ๋ผ๋ ๊ณณ์ ์ ์ฅ์ ํ๋ค. EPC๋ Program counter๋ฅผ ์ ์ฅํ๋ ์ฅ์
์ด๋ค Exception์ด ๋ฐ์ํ๋์ง Cause ๋์ง์คํฐ๋ฅผ ๋๋ค. ํ์์ ์ฌ์ฉํ๋ data Path์์ ์ด๋ฃจ์ด์ง๋ค.
IO Interrupt
Instruction Execution์ด ์๋๋ผ IO Execution๊ณผ ๊ด๋ จ์ด ์๋ค(*****)
1) IO Interrupt , CPU๊ฐ IO ์ฅ์นํํ
์ผ์ ์ํค๊ณ CPU๋ ์๊ธฐ ํ ์ผ์ ๊ณ์ ํ๊ณ ์๋๋ค.
2) IO๊ฐ ์ผ์ ๋๋ด๋ฉด ์ผ์ ๋๋๋ค๊ณ Interruptํ๋ ๊ฒ์ด IO Interrupt์ ์์๊ฐ ๋๋ค.
Interrupt service routine์ด ์กด์ฌํ๋ค.
์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ Special Hardware๊ฐ ํ์ํ๋ค๋ ๋จ์ ์ด ์๋ค,
IO Responsibility
CPU๊ฐ IOํํ
์ผ์ ๋งก๊ธฐ๊ณ ๋ค์ Interrupt ๊ณ์ ์ด๋ฐ ๋ฐ๋ณต์ ์ธ ์ผ์ ํด์ผ ํ๋๋ฐ DMA ๋ผ๋ ๊ฒ์ ๋๋ค.
DMACํํ
Starting address๋ฅผ Transferํ๋ ์ญํ ์ ํด์ค๋ค.
'๐ Major Study (Bachelor) > ๐ฉ Computer Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํจํฐ ๊ตฌ์กฐ๋ฅผ ๋ง๋ฌด๋ฆฌ ํ๋ฉด์.. (0) | 2022.01.02 |
---|---|
I/O Device, Synchronous & Asynchronous Bus (0) | 2021.12.15 |
์ปดํจํฐ ๊ตฌ์กฐ 6_I/O (0) | 2021.12.06 |
์ปดํจํฐ ๊ตฌ์กฐ CH5_Virtual Memory (0) | 2021.12.06 |
์ปดํจํฐ ๊ตฌ์กฐ 5_Cache Performace (0) | 2021.12.01 |