์ง๋ ํฌ์คํ ์์ โ์ปดํจํฐ ๋ด ๋ฉ๋ชจ๋ฆฌ์ ์ญํ ๊ณผ ์ข ๋ฅโ๋ฅผ ์์๋ดค์ต๋๋ค.
์ปดํจํฐ์ ๊ธฐ๋ณธ ๋์์ โI/O์ ์ธํฐํ์ด์คํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ๊ธฐํ ๋์(operate๋ผ๊ณ ์นญํ๊ฒ ์ต๋๋ค..)โ์ ๋๋ค.
โ
โ
โ
Memory๋ฅผ ์๊ธฐํ๊ธฐ์ ์ ISA, ์ด์ ๋ธ๋ฆฌ์ด์ ๋ํด ์งง๊ฒ ์ด์ผ๊ธฐ๋ฅผ ํ๊ฒ ์ต๋๋ค.
์ด์ ๋ธ๋ฆฌ์ด๋ Programming Language ์ค์ ๊ฐ์ฅ Low level์ด์์.
โ๊ฐ์ ๋ถ๋ฌ์โ
โ๊ฐ์ ์ ์ฅํดโ
โ๊ฐ๋ผ๋ฆฌ ๋ํดโ
์ด๋ฐ ๋จ์ ์ฐ์ฐ๋ค์ด ํฉ์ณ์ ธ์ High Level Language์ command ํ ์ค์ด ๋์ค๋๊ฑฐ์์.
โ
๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ๋ Programming, script ์ธ์ด๋ High Level Language๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ค์ Compiler ์ด์ ์คํ ๊น์ง๋ง ์ฝ๋ ์์ฑ ๋ฐ ์์ ์ ํ๊ณ ,
Assembler, Linker, Loader๋ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์ง์ ์์ฑ๊ณผ ์์ ์ ํ์ง ์์ต๋๋ค.(๊ทนํ์ ์ต์ ํ, ๋๋ฒ๊น ํ์์ ๋ณด๊ธด ํจ.)
์, ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ธ๋ฆฌ์ด๋ ํ๋ก์ธ์ ์ ์กฐ์ฌ๋ง๋ค ๋ค๋ฅด๊ณ , RISC๋ CISC๋์๋ฐ๋ผ ๊ตฌ์กฐ๋ ๋ค๋ฆ ๋๋ค.
โ
RISC๊ฐ ๋ณ๋ ฌ์ฒ๋ฆฌ์ ์ ๋ฆฌํ Pipeline์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์์ฆ ๋์ธ์. ๊ทธ๋์ ์ด ๊ธ๋ RISC๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ๊ฒ ์ต๋๋ค.
โ
โ
์ฐธ๊ณ ๋ก Compiler๋ ๋ณดํต โDebug mode, Release modeโ๊ฐ ์์ด์.
Debug mode๋ code ์์ฒด์์ ๊ทธ๋๋ก ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณํ์ ํ๋ ๋ฐ๋ฉด, release mode๋ ์ฝ๋ ์ต์ ํ๋ฅผ ๊ฑฐ์น ํ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณํ์ ํฉ๋๋ค.
โ
โ
Memory์ Loadํ๊ณ Storeํ๋ ๊ธฐ๋ณธ ๋จ์๋ Bit (1๊ณผ 0), Byte๋ (8bit), word๋ ์ ์กฐ์ฌ๋ง๋ค ๊ธฐ์ค์ด ์ข ๋ค๋ฅด์ง๋ง bit๋ byte์ ๋ฌถ์์ด๊ณ ,
์ด ๋จ์๋๋ก Load & Storeํ๋๋ก ๋์ด ์์ต๋๋ค.
0, 1, 2, 3, 4, 5, 6, 7โฆ ๊ฐ์ โ์ผ์ชฝ๋ถํฐ ์ ์ฅ(Big-endian)ํ๋์ง ์ค๋ฅธ์ชฝ๋ถํฐ(Little-endian)๋ถํฐ ์ ์ฅํ๋์งโ๋ ์ ์กฐ์ฌ๋ง๋ค ๋ค๋ฅด๊ณ , ํต์ ๋ฐฉ๋ฒ๋ง๋ค ๋ค๋ฆ ๋๋ค. (๋ค ์ฅ๋จ์ ์ด ์๋๋ฐ, ์ ํํ ์ค์ํ์ง ์์ ๋ด์ฉ์ด๋ผ ๊ธฐ์ต์ด ์๋๋ค์โฆใ ใ )
๊ทธ๋์ ์์ผํต์ ์ ํ๊ฑฐ๋, ์๋ฒ ๋๋ ์์คํ ์ ํ๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ด๋ค ์์๋ก Load/Storeํ๋์ง ์์๋ฌ์ผ ํฉ๋๋ค.
โ
โ
์๋ C์ธ์ด ์ฝ๋๋ก ์์ ์ endian ํ๊ธฐ ๋ฐฉ์์ ์ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ๊ฐ โ78563412โ๋ก ์ถ๋ ฅ๋์๋ค๋ฉด ๋ฆฌํ ์๋์
๊ฒฐ๊ณผ๊ฐ โ12345678โ๋ก ์ถ๋ ฅ๋์๋ค๋ฉด ๋น ์๋์
โ
int i;
int test = 0x12345678;
char* ptr = (char*)&test; // 1 ๋ฐ์ดํธ๋ง์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ์์ฑํจ.
for (i = 0; i < sizeof(int); i++)
{
printf(โ%xโ, ptr[i]); // 1 ๋ฐ์ดํธ์ฉ ์์๋๋ก ๊ทธ ๊ฐ์ ์ถ๋ ฅํจ.
}
โ
โ
โ
์๋ ๊ทธ๋ฆผ์์ ์ปดํจํฐ ๊ตฌ์กฐ+๋์๋ฐฉ์์ด ๋๊ฐ ๋ค ์ค๋ช ๋์ด์์ผ๋ ์์ธํ ์ฝ์ด๋ณด์ธ์!
โ
โ
โ
โ
โ
โ
Processor๊ฐ Memory์์ ์ด๋ค Address์์ ๊ฐ์ ๊ฐ์ ธ์ฌ์ง ๋ฐฉ๋ฒ์ โMemory Accessโ๋ผ๊ณ ํฉ๋๋ค.
Memory Access๋ Direct์ Indirect ๋ฐฉ๋ฒ์ด ์์ด์.
โ
์ฒ ์๊ฐ ๊ฐ์ง ๊ฐ์ Load ํด์ผํ๋ ๊ฒฝ์ฐ,
Direct : ์ฒ ์์ ์ขํ์ ๊ฐ์ ๊ฐ Load
Indirect : ์ฒ ์์ ์์น๋ฅผ ๊ฐ๊ณ ์๋ ์ํฌ์๊ฒ ์ ๊ทผ
โ
โ
โ
โ
์กธ๋ ค์ ์ฌ๊ธฐ๊น์ง๋ง ์ ์ต๋๋ค. ๊ถ๊ธํ์ ๊ฒ ์์ผ๋ฉด ๋๊ธ ๋ฌ์์ฃผ์ธ์.
ํด์ํ๊ทธ :