์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Linux Kernel โ€“ 2 Kernel vendor, architecture ๐Ÿง 

CPU, SoC, ๋ณด๋“œ ๋ฒค๋”๋ณ„ ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ ์ฐจ์ด๋ฅผ ์ปค๋„ ๊ด€์ ์—์„œ ์„ค๋ช…

๊ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๋น„ํŠธ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌ

Vendor๋ณ„ ์ปค๋„ ๊ด€์ 

CPU Vendor

์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)๋ฅผ ์„ค๊ณ„ ๋ฐ ์ œ์กฐํ•˜๋Š” ์—…์ฒด, ๋ช…๋ น์–ด ์ง‘ํ•ฉ(ISA), ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์—ญํ• 

๋Œ€ํ‘œ ๊ธฐ์—… : Intel, AMD, ARM, Apple ๊ฐ€ ์žˆ๋‹ค.

์ปค๋„์€ ํ•ด๋‹น CPU์˜ ๋ช…๋ น์–ด ์ง‘ํ•ฉ(์˜ˆ: x86, ARM64 ๋“ฑ)์— ๋งž์ถฐ ๋นŒ๋“œ

System on Chip Vendor

ํ•˜๋‚˜์˜ ์นฉ ์•ˆ์— CPU, GPU, ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ, I/O ๋“ฑ์„ ํ†ตํ•ฉ ์„ค๊ณ„ ๋ฐ ์ œ์กฐ ์—…์ฒด

๋ชจ๋ฐ”์ผ ๋ฐ ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์šฉ ๊ณ ์ง‘์  ํ”„๋กœ์„ธ์„œ ์ œ๊ณต

๋Œ€ํ‘œ ๊ธฐ์—… : Qualcomm, MediaTek, Samsung, Apple, NXP

SoC ๋ฒค๋”๋Š” ๊ฐ SoC์— ๋งž๋Š” ๋””๋ฐ”์ด์Šค ํŠธ๋ฆฌ(Device Tree), ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•จ

Board Vendor

SoC๊ฐ€ ํƒ‘์žฌ๋œ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ๋ณด๋“œ๋ฅผ ์„ค๊ณ„ ๋ฐ ์ƒ์‚ฐํ•˜๋Š” ์—…์ฒด

์ „์› ์„ค๊ณ„, ์ธํ„ฐํŽ˜์ด์Šค ํšŒ๋กœ, I/O ํฌํŠธ ๋ฐฐ์น˜ ๋“ฑ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„

๋Œ€ํ‘œ ๊ธฐ์—… : Raspberry Pi Foundation, Hardkernel (Odroid), NVIDIA (Jetson), FriendlyARM

๋ณด๋“œ๋ณ„ ๋ถ€ํŠธ๋กœ๋” ์„ค์ •, ๋””๋ฐ”์ด์Šค ํŠธ๋ฆฌ ํŒŒ์ผ, ๋ณด๋“œ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ์ •์ƒ ๋ถ€ํŒ… ๊ฐ€๋Šฅ

CPU ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ• 

๊ตฌ์„ฑ ์š”์†Œ์—ญํ• 
ALU (์‚ฐ์ˆ  ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ์žฅ์น˜)๋ง์…ˆ, ๋บ„์…ˆ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋“ฑ ์ˆ˜ํ–‰
๋ ˆ์ง€์Šคํ„ฐCPU ๋‚ด๋ถ€์˜ ๊ณ ์† ์ž„์‹œ ์ €์žฅ์†Œ
๋ฉ”๋ชจ๋ฆฌ (RAM)์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

๋ฐ์ดํ„ฐ ์ „์†ก ํ๋ฆ„ (๋น„ํŠธ ๋‹จ์œ„)

1. ๋ฉ”๋ชจ๋ฆฌ โ†’ ๋ ˆ์ง€์Šคํ„ฐ

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ, **๋ฉ”๋ชจ๋ฆฌ(RAM)**์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ CPU๊ฐ€ ์ฝ์–ด์˜ฌ ๋•Œ,

๋ฉ”๋ชจ๋ฆฌ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „์†ก๋จ

์˜ˆ: LOAD R1, [0x1000] โ†’ ์ฃผ์†Œ 0x1000์˜ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ R1์— 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋‹จ์œ„๋กœ ๋กœ๋“œ

2. ๋ ˆ์ง€์Šคํ„ฐ โ†” ALU

์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ, ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’๋“ค์ด ALU๋กœ ์ „๋‹ฌ๋˜์–ด ๊ณ„์‚ฐ๋จ

๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์‹œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ

์˜ˆ :
R1 = 5  
R2 = 3  
ALU: R1 + R2 โ†’ R3 = 8  

3. ๋ ˆ์ง€์Šคํ„ฐ โ†’ ๋ฉ”๋ชจ๋ฆฌ

๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

์˜ˆ: STORE R3, [0x2000] โ†’ R3์˜ ๊ฐ’์„ ์ฃผ์†Œ 0x2000์— ์ €์žฅ

* ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” CPU์˜ ๋น„ํŠธ ์ˆ˜๋งŒํผ ๋‚˜๋‰˜์–ด ์ฒ˜๋ฆฌ๋จ

* (์˜ˆ: 64๋น„ํŠธ CPU์—์„œ๋Š” ํ•œ ๋ฒˆ์— 64๋น„ํŠธ = 8๋ฐ”์ดํŠธ ์ „์†ก ๊ฐ€๋Šฅ)

CPU ๋ฒ„์Šค

๋ฒ„์Šค ์ข…๋ฅ˜์„ค๋ช…
๋ฐ์ดํ„ฐ ๋ฒ„์Šค์‹ค์ œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ (32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋‹จ์œ„)
์ฃผ์†Œ ๋ฒ„์Šค๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ์ง€์ •
์ œ์–ด ๋ฒ„์Šค์ฝ๊ธฐ/์“ฐ๊ธฐ ๋“ฑ ์ œ์–ด ์‹ ํ˜ธ ์ „๋‹ฌ

๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ • ์ •๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ
  โ†“ (LOAD)
[0x1000] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ R1 (๋ ˆ์ง€์Šคํ„ฐ)

๋ ˆ์ง€์Šคํ„ฐ ๊ฐ„ ์—ฐ์‚ฐ
  R1 + R2 โ”€โ”€โ”€โ”€โ–บ ALU โ”€โ”€โ”€โ”€โ–บ R3

R3 ๊ฒฐ๊ณผ ์ €์žฅ
  R3 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ [0x2000] (๋ฉ”๋ชจ๋ฆฌ)
            (STORE)

์ฃผ์š” ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋น„ํŠธ ๊ตฌ์กฐ ๋น„๊ต

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋น„ํŠธ ๊ตฌ์กฐ๋ฅผ ๋น„๊ตํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.