[์ปดํจํฐ๊ตฌ์กฐ] Instruction Cycle
๐ค ํต์ฌ์ ๋ฆฌ
๊ณต๋ถ๋ฅผ ํ๋ฉฐ ํต์ฌ์ด๋ผ๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ ๋ฝ์์ ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
6๋จ์๊น์ง์ ํต์ฌ์ ๋ฆฌ์ด๋ฉฐ ๋ค์ ๋จ์์ ํต์ฌ์ ๋ฆฌ๋ ๋ค์ ๊ธฐํ์ ์งํํ๊ฒ ์ต๋๋ค.
์ปดํจํฐ ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ๋ฉฐ ํฌ์คํ ์ ํ์ง ์์ ์ดํด๊ฐ ๋ ๋์๊ธฐ์ ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ง์ ํด์ฃผ์ธ์!
๐ Instruction Cycle
CPU๊ฐ memory๋ก๋ถํฐ ํ๋ก๊ทธ๋จ๋ ํ ๊ฐ์ ๊ธฐ๊ณ์ด ๋ช ๋ น์ ๊ฐ์ ธ์ ์ด๋ ํ ๋์์ ์๊ตฌํ๋ ์ง ๊ฒฐ์ ํ๊ณ ๋ช ๋ น์ด๊ฐ ์๊ตฌํ๋ ๋์๋ค์ ์ํํ๋ ๊ณผ์ ์ Instruction Cycle์ด๋ผ๊ณ ํฉ๋๋ค.
Instruction Cycle์ ์ค๋ช ํ๊ธฐ ์ ์ปจํธ๋กค๋ฌ์ ๋ ์ง์คํฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด 8๊ฐ์ง์ ๋ ์ง์คํฐ๋ก ๋ช ๋ น์ด๊ฐ ์ด ๋ ์ง์คํฐ๋ฅผ ํตํด์ CPU๋ด์์ ์ด๋ป๊ฒ ์คํ๋๋์ง ๋ณผ ์์์ต๋๋ค.
Registers
PC(Program Counter) : ํ๋ก๊ทธ๋จ ์์ ์ ์์์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ , ๋ค์ ํ ํ๋ก๊ทธ๋จ์ ์ฃผ์๋ฅผ ๊ฐ์ง๋๋ค.
AR(Address Register) : PC๋ก ๋ถํฐ ์คํํ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋๊ฒจ ๋ฐ์ต๋๋ค.
IR(Instruction Register) : AR์ด ๊ฐ์ง ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ฐ์ ๊ทธ๊ณณ์ ๋ด์ฉ(๋ช ๋ น์ด)๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ช ๋ น์ด์์ operation code ๋ถ๋ถ์ ALU๋ก, operand(์ฃผ์) ๋ถ๋ถ์ ๋ค์ AR๋ก ์ค๋๋ค.
๊ทธ๋ฌ๋ฉด AR์ ๋ฉ๋ชจ๋ฆฌ์ operand๋ก ๊ฐ์ ๊ทธ ๋ด์ฉ์ DR์๊ฒ ์ค๋๋ค.
DR(Data Register) : AR์๊ฒ ๋ฐ์ ๊ฐ์ ALU์๊ฒ ์ค๋๋ค.
์ฐ์ฐ์ ๊ฐ์ ์ ์ ์ ์ฅํ ๋ ์ฐ์ด๊ธฐ๋ ํฉ๋๋ค.
AC(Accumulater) : ALU์ฐ์ฐ์ ์ฐ์ ๋๋ค.
TR(Temporary Register) : ์ฐ์ฐ์ ๊ฐ์ ์ ์ ์ ์ฅํ ๋ ์ฐ์ด๊ธฐ๋ ํฉ๋๋ค.
ALU๋ IR์์ op code๋ฅผ ๋ฐ์์ DR๊ณผ AC์ ์ ์ฅ๋ ๊ฐ์ผ๋ก ์ฐ์ฐ์ ํฉ๋๋ค.
์ฆ, ALU๋ IR์์ opcode๋ฅผ ๋ฐ์์ DR๊ณผ AD์ ์ ์ฅ๋ ๊ฐ์ผ๋ก ์ฐ์ฐ์ ํฉ๋๋ค.
ALU๋ Arithmetic & Logic Unit์ผ๋ก ์ํ, ๋ ผ๋ฆฌ ์ฐ์ฐ์ ํ๋ ํ๋ก์ ๋๋ค.
์ถ๊ฐ๋ก R1์ processor register ์ ๋๋ค.
Instruction Cycle ๊ณผ์
๊ฐ instruction cycle์ ๋ค์๊ณผ ๊ฐ์ subcycle๋ก ๋๋์ด ์ง๋๋ค.
1. fetch and instruction from memory (T1)
fetch๋ ๊ฐ์ ธ์จ๋ค๋ ๋ป์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๋ค์์ ์คํํ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์จ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
2. decode the instruction (T2)
๋ค์์ decoding ๊ณผ์ ์ผ๋ก IR์ AR์๊ฒ ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ก ๊ฐ์ ๊ทธ๊ณณ์ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
ํด๋น ๋ช ๋ น์ด๋ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์๋๋ฐ mode bit / operation code / operand๋ก ๋๋ ์ ์์ต๋๋ค.
์ด ๊ณผ์ ์ ๋์ฝ๋ฉ ๊ณผ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
์ด๋ $D_0 ~ D_7$์ ๋ช ๋ น์ ๋ํ ์ ๋ณด๋ก Control unit์ ๋์ ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
Control unit
control unit์ ์ปดํจํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ๊ฐ์ง ์ค ํ๋์ ๋๋ค.
์ปดํจํฐ๋ control signal(instruction์ ์ ํ)์ด ๋ฐ์๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ ์ง์คํฐ๋ control signal์ด ํ์ฑํ๋์ด ์์ ๋ clock์ด ์ผ์ง๋ฉด ๋ฐ๋๋๋ฐ, ํด๋ญ์ ์์ฃผ ๋น ๋ฅด๊ฒ ์ผ์ก๋ค ๊บผ์ก๋ค ํ๋ฏ๋ก control signal์ด ํ์ด๋ฐ์ ๋ง๊ฒ ํ์ฑํ ๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ control signal์ด control unit์ ์ํด ๋ฐ์๋ฉ๋๋ค.
Instruction register์ ๋ช ๋ น์ด๊ฐ ํด๋ ๋์ด Control Logic gates๋ก ๋ค์ด๊ฐ๊ณ Sequence Counter๊ฐ ์ผ์ผํค๋ ๋ค์๊ฐ์ด Control Logic gates๋ก ๋ค์ด๊ฐ์ ๊ฒฐ๊ณผ์ ์ผ๋ก control signal์ด ๋์ถ๋ฉ๋๋ค.
3. read the effective address from memory in indirect addressing mode (T3)
memory reference ๋ช ๋ น์ด๋ ํผ์ฐ์ฌ์๊ฐ ์กด์ฌํ์ฌ ํผ์ฐ์ฐ์์ ์ฃผ์์ ๋ณด๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ effective address๋ฅผ ์ฝ๊ธฐ ๋จ๊ณ๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
ํ์ง๋ง register reference ๋ช ๋ น์ด ๋๋ I/O ๋ช ๋ น์ด๋ ํผ์ฐ์ฌ์๊ฐ ์ ์ด์ ํ์ฉใ ๊ธฐ ๋๋ฌธ์ ์ฃผ์ ์์ฒด๊ฐ ํ์์๊ธฐ ๋๋ฌธ์ effective address ์ฝ๊ธฐ ๋จ๊ณ๋ฅผ ๋ฐ์ ํ์๊ฐ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ์ T3์์ instruction์ ์คํํฉ๋๋ค.
IR์ fetch๋ ๋ช ๋ น์ด๊ฐ T2์์ decode ๋๊ณ ๋์ $D_0 ~ D_7$์ด ์์ฑ๋ฉ๋๋ค.($D_0 ~ D_7$์ ๋ช ๋ น์ด์ ๋ํ ์ ๋ณด์ ๋๋ค.)
์ด๋ ์ 8๊ฐ์ง์ ์ ํธ๋ ๋ช ๋ น์ด ์ฝ๋์ 15 ~ 0 ๋นํธ ์ค์์ 14, 13, 12๋ฒ์งธ ์๋ฆฌ์ ์๋ ๋นํธ๊ฐ ๋ง๋ค์ด๋ด๋ ๊ฐ์ด์์ต๋๋ค.
์ด ๊ฐ์ผ๋ก ๋ช ๋ น์ด์ ํ์ ์ ์์๋ผ ์ ์๋ค๋ ๋ป์ ๋๋ค.
๊ทธ๊ฒ์ ํ๋จํ๋ ๊ณผ์ ์ ์๋์ flow chart๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ก๋ฅผ ์ค๋ช ํ๋ ๊ณผ์ ์ ์ค์ํ๋ฏ๋ก ์๋์ ๋ฐ๋ก ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
4. execute the instruction (T4)
๋ค์์ ์คํ ๊ณผ์ ์ผ๋ก ์ด๋ค ๋ช ๋ น์ด๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ฐ์ mode bit๋ฅผ ํ๋จํฉ๋๋ค.
mode bit๋ Direct๋ชจ๋์ธ์ง Indirect ๋ชจ๋์ธ์ง ํ๋จํ๋๋ฐ, Direct ๋ชจ๋์ธ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ์ธ oprand๊ฐ์ ๋ฐ๋ผ๊ฐ์ ๊ทธ๊ณณ์ ์ ์ฅ๋ ๊ฐ์ DR์ ์ค๋๋ค.
๋ฐ๋๋ก Indirect๋ชจ๋๋ผ๋ฉด ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๊ฐ์ ๊ทธ๊ณณ์ ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ฒ ๋ ๊ทธ ๊ฐ์ ์ฃผ์๋ก ๊ฐ์ง๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ๋ถ์ผ๋ก ๊ฐ๋๋ค.
์ฆ Direct๋ชจ๋์์ DR์๊ฒ ์ค ๊ฐ์ ๋ค์ ํ ๋ฒ AR์๊ฒ ๋ณด๋ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ ์ฃผ์๋ก ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ์ฐพ์ ๊ฐ์ DR์๊ฒ ๋๊ฒจ์ค๋๋ค.
์ดํ์ ๊ณผ์ ์ ๋์ผํ๋๋ค.
IR์์ ๋์ฝ๋ฉ ๊ณผ์ ์ ํตํด ์ป์ operation code๋ ALU๋ก ๋๊ฒจ์ง๋๋ค.
์ด๋ค ์ฐ์ฐ์ธ์ง๋ opeartion code์ ๋ฐ๋ผ ๊ฒฐ์ ๋๊ณ ๊ทธ ์ฐ์ฐ์ ๋ฐ๋ผ DR์ ๊ฐ, AC์ ์๋ ๊ฐ์ ํตํด ์ฐ์ฐ์ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ AC์ ์ ์ฅํฉ๋๋ค.
ํ์ํ ๋ช ๋ น์ด๋ค์ ๋ชจ์๋์ ๊ฒ์ instruction set์ด๋ผ๊ณ ํ๊ณ ์ด instruction set์ผ๋ก ๋ชจ๋ ์ฐ์ฐ์ ํ ์ ์์ผ๋ฉด Complete instruction set์ด๋ผ๊ณ ํฉ๋๋ค.
๋ช ๋ น์ด๋ ํฌ๊ฒ MRI / RRI / I/O instruction์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
๋ช ๋ น์ด์ ์ข ๋ฅ๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ต๋๋ค.
๋ช ๋ น์ด์ ๋ํ ์ค๋ช ์ ์๋ Reference์ ์ฐธ๊ณ ๋ธ๋ก๊ทธ๋ฅผ ํ์ธํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
Instruction Cycle์ flow chart๋ฅผ ์ด์ฉํ์ฌ ์ค๋ช (์์ 3์ ์์ธํ๊ฒ ์ค๋ช )
์์์ ๋งํ๋ Instruction Cycle์ ์๋ ๋ค ๊ฐ์ subcycle๋ก ์ด๋ฃจ์ด์ง๋๋ค.
1. ๋ฉ๋ชจ๋ฆฌ์์ ๋ช ๋ น์ด ๊ฐ์ ธ์ค๊ธฐ
2. ๋ช ๋ น์ด๋ฅผ ๋์ฝ๋ฉํ๊ธฐ
3. Indirect addressing mode์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ํจ ์ฃผ์ ์ฝ๊ธฐ
4. ๋ช ๋ น ์คํํ๊ธฐ
์์ ํ๋ก์์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ fetch, decodeํ์ effective address๋ฅผ ์ฝ๊ฑฐ๋ ์ฝ์ง ์๊ณ ์ต์ข ์ ์ผ๋ก execute ํ๋ ๊ณผ์ ์ ๋๋ค.
ํ๋ก์์๋ fetch, decode๊ฐ ์ํ๋ ๋ค๋ฅผ ๋ณด๋ฉด $D_7$์ด 0์ธ์ง 1์ธ์ง๋ฅผ ํ๋จํ๊ณ ์์ต๋๋ค.
๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๋๋์ด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1) $D_7$์ด 1์ธ ๊ฒฝ์ฐ
์ธ ๋นํธ(14, 13, 12)๊ฐ '1 1 1'์ด๋ผ๋ ๋ป์ด๋ฉฐ ํผ์ฐ์ฐ์์ ์ฃผ์๋ฅผ ๋ค๋ฃฐ ํ์๊ฐ ์๋ ๋ช ๋ น์ด๊ธฐ ๋๋ฌธ์ AR ← M[AR] ๊ณผ์ ์ ์คํตํฉ๋๋ค.
๋ฐ๋ผ์ $T_3$์ executeํฉ๋๋ค.
2) $D_7$์ด 0์ธ ๊ฒฝ์ฐ
์ธ ๋นํธ(14, 13, 12)๊ฐ '1 1 1'์ด ์๋ '0 0 0' ~ '0 1 1'์ ๊ฐ ์ค ํ๋๋ผ๋ ๋ป์ด๋ฉฐ, memory-reference instruction์ด๋ผ์ ๋ง์ฝ indirect๋ชจ๋์ผ ๊ฒฝ์ฐ AR ←M[AR] ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
direct๋ชจ๋๋ผ๋ฉด ์๋ฌด micro ์ฐ์ฐ์ด ์ผ์ด๋์ง ์๊ธฐ ๋๋ฌธ์ $T_3$์ ์ฌ์ด๊ฐ๋ ํด๋ฝ์ด ๋ฉ๋๋ค.
์ฆ, indirect๋ชจ๋๋ผ๋ฉด $T_3$์ AR์ ์ต์ข ์ ์ผ๋ก ๊ฐ์ด ๋ด๊ธฐ๊ณ , direct ๋ชจ๋๋ผ๋ฉด $T_2$์ decoding์ ํ๋ ๊ณผ์ ์์ AR์ ์ต์ข ์ ์ผ๋ก ๊ฐ์ด ์ ์ฅ๋ฉ๋๋ค.
$T_3$์ AR←M[AR]์ ์งํํ ๋ค $T_4$์ executeํฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ Interrupt Cycle์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๐ Reference
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sanghun0318&logNo=220071961671
-๋ช ๋ น์ด์ ์ํ ๊ณผ์
๊ฐ๋จํ ๋ง๋ ์ปดํจํฐ์ CPU ๋ด๋ถ ์ ๋๋ค. ์ฌ์ค ์ ๋ฒ ๊ธ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์๋ฐ ์ข ์ธ๋ถํ ์์ผฐ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์...
blog.naver.com
https://splendidlolli.tistory.com/391
[์ปดํจํฐ๊ตฌ์กฐ] 16๋นํธ ์ปดํจํฐ ์ค๊ณํ๊ธฐ - Instruction Cycles
์ฐ๋ฆฌ๋ 16๋นํธ ์ปดํจํฐ๋ฅผ ์ค๊ณํ๊ณ ์๋ค. ์ด์ ํฌ์คํ ([์ปดํจํฐ๊ตฌ์กฐ] 16๋นํธ ์ปดํจํฐ ์ค๊ณํ๊ธฐ - Control unit ์ค๊ณ)์์๋ Control unit์ ๊ณต๋ถํ๋๋ฐ ์ฌ๊ธฐ์ timeT0, T1, ...์ ๋ฐ์์ ๋ณด์๊ณ , ํนํ fetch์ decode
splendidlolli.tistory.com
https://splendidlolli.tistory.com/392
[์ปดํจํฐ๊ตฌ์กฐ] 16๋นํธ ์ปดํจํฐ ์ค๊ณํ๊ธฐ - ๋ช ๋ น์ด์ ์คํ๋จ๊ณ์์ ๋ฒ์ด์ง๋ ์ผ๋ค
๋ฐฐ๊ฒฝ์ง์ [์ปดํจํฐ๊ตฌ์กฐ] 16๋นํธ ์ปดํจํฐ ์ค๊ณํ๊ธฐ - Instruction Cycles ์ ๊ธ์์ ๋ช ๋ น์ด๊ฐ ์ํ๋๋ ์ฌ์ดํด์ ๊ณต๋ถํ๋ค. โ ํ์ด๋ฐ T0, T1์์ ์ผ์ด๋๋ fetch๊ณผ์ , โ ํ์ด๋ฐ T2์์ ์ผ์ด๋๋ decode๊ณผ์ ,
splendidlolli.tistory.com