CPU ๋ ์ง์คํฐ
CPU ๋ ์ง์คํฐ (Register)
๐ก CPU๋ด์ ์์นํ ๊ธฐ์ต์ฅ์น๋ก ๋ง์ ์์ ๋ ์ง์คํฐ๋ฅผ CPU๋ด์ ํฌํจ์ํค๋ ๊ฒ์
์ด๋ ต๊ธฐ ๋๋ฌธ์ ํน์ ๋ชฉ์ ์ฉ ๋ ์ง์คํฐ๋ค๊ณผ ๋ช๋ช ์ผ๋ฐ ๋ชฉ์ ์ฉ ๋ ์ง์คํฐ๋ง ์กด์ฌํ๋ค.
๋ํ์ ์ธ ๋ ์ง์คํฐ | |
PC (Program Counter) | ๋ค์ ์ธ์ถ(Fetch) ๋ ๋ช ๋ น์ด์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ ์ง์คํฐ |
AC (Accumulator) | ์ฐ์ฐ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๋ ์ง์คํฐ |
IR (Instruction Register) | ๊ฐ์ฅ ์ต๊ทผ์ ์ธ์ถ๋ ๋ช ๋ น์ด(ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด)๊ฐ ์ ์ฅ๋์ด ์๋ ๋ ์ง์คํฐ |
SR (Status Register) | ํ์ฌ CPU ์ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ ์ง์คํฐ |
MAR (Memory Address Register) | PC์ ์ ์ฅ๋ ๋ช ๋ น์ด ์ฃผ์๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์ ์ผ์์ ์ผ๋ก ์ ์ฅ๋๋ ์ฃผ์ ๋ ์ง์คํฐ |
MBR (Memory Buffer Register) | ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋ ๋ฐ์ดํฐ ํน์ ์ฝํ์ง ๋ฐ์ดํฐ๊ฐ ์ผ์์ ์ผ๋ก ์ ์ฅ๋๋ ๋ฒํผ ๋ ์ง์คํฐ |
์ผ๋ฐ ๋ชฉ์ ์ฉ ๋ ์ง์คํฐ
์ ์ด ๋ฒ์ค : IR / SR(โrip)
์ฃผ์ ๋ฒ์ค : PC(r1..14 or rbx) / MAR(โ r1..14)
๋ฐ์ดํฐ ๋ฒ์ค : AC(โ rax) / MBR(โ rsp, rbp)
ํน์ ๋ชฉ์ ๋ ์ง์คํฐ
Computer Architecture
1. ์ปดํจํฐ ๊ตฌ์กฐ(Computer Architecture) ์ปดํจํฐ ๊ณผํ์์๋ PC์ค๊ณ๋ฅผ ์ฌ๋ฌ ํ๋์จ์ด๊ฐ ๊ฐ๋ฐ๋๊ณ , ์ด๋ค์ ์กฐ๋ฆฝํด์ ์ปดํจํฐ๊ฐ ์์ฑํ ๊ฒ์ด ์ปดํจํฐ ๊ตฌ์กฐ! ๋๋ณด๊ธฐ ๐๊ฐ์๐ ์ปดํจํฐ ๊ตฌ์กฐ(Computer Architecture)
dystopia050119.tistory.com
์ ๋งํฌ์์๋ ๋ถ์กฑํ์๋ค๋ฉด ๊ฐ๋จํ๊ฒ๋ผ๋(๋ถ์กฑํ ๋ฆฌ๊ฐ ์์๊น์?)
ch02 - ์ปดํจํฐ ์์คํ ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ตฌ์กฐ
1. ๋ฐ์ดํฐ ํํ ๋ฐฉ์ 2. ํ๋ก๊ทธ๋จ์ ์์ฑ 3. ํ๋ก์ธ์ค 4. ๋ ์ง์คํฐ์ ๊ตฌ์ฑ๊ณผ ์ญํ 1. ๋ฐ์ดํฐ ํํ ๋ฐฉ์ 1.1 ๋ฐ์ดํฐ ํํ ๋จ์ - ์ปดํจํฐ์์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํ. ๋ฐ์ดํธ๋ ์ปดํจ
choimungu.tistory.com
๋ช ๋ น์ด ์ฌ์ดํด
๋ช ๋ น์ด ์ธ์ถ, ๋ช ๋ น์ด ํด๋ , ๋ฐ์ดํฐ ์ธ์ถ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ฐ์ดํฐ ์ ์ฅ
์ธ์ถ ์ฌ์ดํด : CPU๊ฐ ์ฃผ๊ธฐ์ต์ฅ์น(RAM)์ ๋ช ๋ น์ด๋ฅผ ์ฝ๋ ๋จ๊ณ(โ I/O ์ฅ์น)
์คํ ์ฌ์ดํด : ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋จ๊ณ(๋ช ๋ น์ด ํด์ + ๋ช ๋ น์ด ์ธ์ถ ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ)
๊ทธ๋ผ ์ด์ ์๋ ์ฝ๋๋ฅผ ํด์ํ๊ณ ๋ช ๋ น์ด ์ฌ์ดํด์ ๋ํ์ฌ ์์ธํ ์์๋ณผ๊น์
#include <stdio.h>
int main(int* argc, char** argv[]){
int D2, D3, sum;
sum = D2 + D3;
printf("%d", sum);
}
์ธ์ถ ์ฌ์ดํด
PC(์คํ์ด ์ฃผ์) → MAR(์ฃผ์)๋ก ๋ฃ์ด์ ์ฃผ๊ธฐ์ต์ฅ์น(RAM)์ ์ ์ฌ → MBR(๋ฒํผ)์ ์ ์ฅ → IR(์คํ)
์คํ ์ฌ์ดํด
IR(ํ์ฌ ์คํ๋ช ๋ น์ด) → MAR(์ฃผ์)๋ก ๋ฃ์ด ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ ํ MBR(๋ฒํผ)์ ์ ์ ํ ๊ณ์ฐ(ALU → AC)
๋ ์์ธํ๋ ์ฌ๊ธฐ๋ก.. ํ๋ก๊ทธ๋จ์ ์คํํ์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์
Background: Binary
Program ์ฐ์ฐ์ฅ์น๊ฐ ์ํํ๋ ๋์์ ์ ์ํ ์ผ์ข ์ ๋ฌธ์! ์ฐ์ฐ ์ฅ์น์ ์ ๋ฌํ๋ฉด, CPU๋ ์ ํ์๋ ๋ช ๋ น๋ค์ ์ฒ๋ฆฌํ์ฌ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ํ ๋์ ์ํ ์ฌ์ฉ์๊ฐ ์ ์ํ ํ๋ก๊ทธ๋จ์ ํด์ํ์ฌ ๋ช ๋ น์ด
dystopia050119.tistory.com
๋ฉ๋ชจ๋ฆฌ ์ ์ฌ ๊ธฐ์ค(๋ฆฌ๋ ์ค)
๋ณด์์ชฝ์ ๊ฐ๊น๋ค๊ณ ํด์ผํ๋์? ๊ตณ์ด ๋ชฐ๋ผ๋ ๋๊ธดํด์
Linux Memory Layout
1. ๋ฆฌ๋ ์ค ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ(Memory Layout) ํ๋ก์ธ์ค ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๊ตฌ์ญ์ด ์ด๋ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋์ง ์ดํดํ๋ ๊ฒ์ด ํต์ฌ! ๋๋ณด๊ธฐ ๐๊ฐ์๐ ์ธ๊ทธ๋จผํธ๋ ์ฝ๋ ์ธ๊ทธ๋จผํธ ๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ BSS ์ธ๊ทธ๋จผํธ
dystopia050119.tistory.com
์ฐธ๊ณ ์๋ฃ
CPU ๋ ์ง์คํฐ (Register) ์ ์ดํด ๋ฐ ์ข ๋ฅ
CPU ๋ ์ง์คํฐ : ์ค์์ฒ๋ฆฌ์ฅ์น(CPU) ๋ด์ ์์นํ ๊ธฐ์ต์ฅ์น๋ก ๋ง์ ์์ ๋ ์ง์คํฐ๋ฅผ CPU๋ด์ ํฌํจ์ํค๋ ๊ฒ์ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ํน์ ๋ชฉ์ ์ฉ ๋ ์ง์คํฐ๋ค๊ณผ ๋ช๋ช ์ผ๋ฐ ๋ชฉ์ ์ฉ ๋ ์ง์คํฐ๋ง ์กด์ฌํ๋ค. ๋ํ
technote.kr
์ปดํจํฐ ๊ตฌ์กฐ - ๋ช ๋ น์ด ์คํ
๋ช ๋ น์ด ์คํ์ ๋ํด์ ์์ธํ๊ฒ ์์๋ณด๊ฒ ์ต๋๋ค. . . . ๋ช ๋ น์ด์ ์คํ ๋ช ๋ น์ด์ ์คํ์ ์ ํฌ์คํธ์์ ๋ช ๋ น...
blog.naver.com
[OS] ๋ฒ์ค(Bus) ๋
๋ฒ์ค(Bus) ๋? -๋ฒ์ค(Bus)๋ ์ปดํจํฐ ์์ ๋ถํ๋ค ๊ฐ์, ๋๋ ์ปดํจํฐ ๊ฐ์ ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ์ ์กํ๋ ํต๋ก(ํต์ ์์คํ )์ด๋ค. ๋ฒ์ค(Bus)์ ์ข ๋ฅ ๋ฒ์ค(Bus)์ ์ข ๋ฅ์๋ ์๋ 3๊ฐ๊ฐ ์๋ค ๋ค์ ์์ ์ ์ง์
coooding.tistory.com
์ฐธ๊ณ ์ด๋ฏธ์ง