ํฌ์ŠคํŠธ

๐ŸŒ‘ Bit Byte Word

2020-10-12 03:33:00
๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์“ธ ๋‹น์‹œ 32-Bit, 64-Bit ๊ด€๋ จ ๊ธ€์„ ๊ณต์œ  ๋ชฉ์ ์œผ๋กœ ์Šคํฌ๋žฉ ํ–ˆ๋˜ ๊ธ€ ๊ณ„์Šน


๐Ÿ’ซ ์™œ 2์ง„์ˆ˜?


๐Ÿซง Digit, Decimal - ์‹ญ์ง„๋ฒ•

๊ณ ๋Œ€ ๋ผํ‹ด์–ด๋กœ Digita๋Š” โ€˜์†๊ฐ€๋ฝโ€™์„ ๋œปํ–ˆ๊ณ ,
์—ฌ๋Ÿฌ ์–ธ์–ด์—์„œ Digit์€ โ€˜์†๊ฐ€๋ฝโ€™๊ณผ โ€˜๋ฐœ๊ฐ€๋ฝโ€™์„ ๋œปํ•œ๋‹ค.

์†๊ฐ€๋ฝ๊ณผ ๋ฐœ๊ฐ€๋ฝ์˜ ์ˆ˜ 10๊ฐœ = 10

๊ทธ๋ฆฌ์Šค์–ด๋กœ Deci, Deca๋Š” 10์„ ๋œปํ•˜๋Š” ์ ‘๋‘์–ด๋‹ค.
Decimal์€ โ€˜์‹ญ์ง„๋ฒ•์˜โ€™, โ€˜์†Œ์ˆ˜์˜โ€™ ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง„๋‹ค.

๐Ÿซง ์™œ 2์ง„์ˆ˜?

10์ง„์ˆ˜๋Š” ์ „์ž์  ๊ตฌํ˜„์— ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค.

  1. ์ €์žฅ/์ „์†ก์˜ ์–ด๋ ค์›€
    • ์ตœ์ดˆ์˜ ์ปดํ“จํ„ฐ ENIAC์€ 10์ง„์ˆ˜๋ฅผ ์ผ๋Š”๋ฐ, ํ•œ ๋‹จ์œ„์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 10๊ฐœ์˜ ๋ฐฐ๊ด€์ด ํ•„์š”ํ–ˆ๋‹ค. (0 ~ 9)
  2. ๋””์ง€ํ„ธ ๋…ผ๋ฆฌ ํ•จ์ˆ˜ ๊ตฌํ˜„์˜ ์–ด๋ ค์›€
    • Addition, Multipplication, โ€ฆ

์ตœ์ดˆ์˜ ์ปดํ“จํ„ฐ ENIAC์€ 10์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ํฐ ๋…ธ์ด๋งŒ์— ์˜ํ•ด 2์ง„์ˆ˜๊ฐ€ ๊ณ ์•ˆ๋๋‹ค.

  1. ์ €์žฅ/์ „์†ก์˜ ๊ฐ„ํŽธํ™”
    • 2์ง„์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด, ํ•œ ๋‹จ์œ„์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 1๊ฐœ์˜ ๋ฐฐ๊ด€๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค. (0๊ณผ 1, ๋ฐฐ๊ด€์ด ๋ผ์›Œ์ ธ์žˆ๋ƒ ๋งˆ๋Š๋ƒ)
    • ์žก์Œ๊ณผ ๋ถ€์ •ํ™•ํ•œ ์™€์ด์–ด์—๋„ ๋ฌธ์ œ์—†์ด ์•ˆ์ •์ ์œผ๋กœ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„
    • ๊ฐ„๋‹จํ•œ ์‚ฐ์ˆ ํ•จ์ˆ˜
    • ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ/๋ฒˆ์—ญ ๊ฐ€๋Šฅ

๐Ÿ’ซ Byte = 8 Bit ?


Byte๋Š” ์ค‘์š”ํ•˜๋‹ค.
Byte๋Š” CPU๊ฐ€ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ = Word(TDU)์˜ ๊ธฐ์ค€์ด ๋˜๊ณ ,
์ด๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ํฌ๊ธฐ์˜ ๊ธฐ์ค€์ด ๋œ๋‹ค.

Byte์˜ ํฌ๊ธฐ ์—ญ์‹œ ์ค‘์š”ํ•˜๋‹ค.
ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ณ์—์„œ, Byte = 8 Bit ๊ฐ€ ํ‘œ์ค€.

๋ณธ๋ž˜ Byte๋Š” ์ปดํ“จํ„ฐ์—์„œ ๋ฌธ์ž Character ํ•˜๋‚˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ Bit ์ˆ˜์˜€๋Š”๋ฐ,
์ด๊ฐ€ ํ™•์žฅ๋˜์–ด, โ€˜๋””์ง€ํ„ธ ์ •๋ณด์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„โ€™๊ฐ€ ๋˜์—ˆ๋‹ค.

๊ณผ๊ฑฐ Byte์˜ ํฌ๊ธฐ๋Š” HW์— ์ข…์†๋˜์—ˆ๊ณ , ๋ช…ํ™•ํ•œ ํ‘œ์ค€์ด ์—†์–ด, ๊ณณ์— ๋”ฐ๋ผ 1 ~ 48 Bit ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ ์ค‘์—์„œ๋„, 6-Bit๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž ํ‘œํ˜„ ๋ฐฉ์‹์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๊ณ , 1960๋…„๋Œ€์—๋Š” 6-Bit, 9-Bit ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ผ๋ฐ˜์ ์ด์—ˆ๋‹ค๊ณ  ํ•จ.
์ด๋Ÿฐ ์ปดํ“จํ„ฐ๋“ค์€ 2, 3, 4, 5, 6, 8, 10 6-Bit Byte์— ์ƒ์‘ํ•˜๋Š”, 12, 18, 24, 30, 36, 48, 60 Bit์˜ Memory Word๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ–ˆ์Œ.
์ด ์‹œ๋Œ€์—” ์ด๋Ÿฐ Bit Groupings๋ฅผ Syllables, Slab ๋“ฑ์œผ๋กœ ๋ถˆ๋ €์Œ. (Byte๊ฐ€ ์ผ๋ฐ˜ํ™”๋˜๊ธฐ ์ „๊นŒ์ง€)

ASCII Code๋Š” 7-Bit๋งŒ์œผ๋กœ๋„ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ,
2-์ง„์ˆ˜ Binary๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ณ ํŠน์„ฑ์ƒ, ํŽธ๋ฆฌํ•˜๊ฒŒ 2-๋ฐฐ์ˆ˜๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด,
7-Bit์— 1-Bit๋ฅผ ๋”ํ•˜์—ฌ 8-Bit๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ

IBM์˜ System/360 ์ปดํ“จํ„ฐ๊ฐ€ ์ด๋Ÿฐ 8-Bit Byte์˜ ์‹œ์ดˆ.
ISO/IEC 2382-1:1933 ์— ๋ฌธ์„œํ™” ๋˜์—ˆ์œผ๋ฉฐ,
8-Bit Byte ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ๊ฐ€ ๋“์„ธํ•œ 70๋…„๋Œ€๋ถ€ํ„ฐ ํ‘œ์ค€์œผ๋กœ ๊ตณ์–ด์ง€๊ธฐ ์‹œ์ž‘ํ•จ (์‚ฌ์‹ค์ƒ ํ‘œ์ค€ De Facto Standard)

์ด๋Ÿฐ 8-Biy Byte์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ 8์˜ ๋ฐฐ์ˆ˜์ธ, 8-Bit, 16-Bit, 32-Bit, 64-Bit Words๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ.

ISO International Organization for Standardization
IEC International Electrotechnical Organization

์ฐธ๊ณ -0
์ฐธ๊ณ -1

๐Ÿ’ซ 32-Bit, 64-Bit ?


Program Counter
32-Bit = 2^32 = 4,294,967,296
64-Bit = 2^64 = 18,446,744,073,709,551,616
32-Bit = ์•ฝ 4-GB ๋ฉ”๋ชจ๋ฆฌ
64-Bit = ์•ฝ 256-TB ๋ฉ”๋ชจ๋ฆฌ (48-Bit๋งŒ ์‚ฌ์šฉ)

์™œ 48-Bit๋งŒ ์‚ฌ์šฉํ•˜๋ƒ๋ฉด, โ€˜์ผ๋ฐ˜์ ์œผ๋กœโ€™, 256-TB ์ด์ƒ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์šด์˜์ฒด์ œ๋„ 32-Bit, 64-Bit ๋กœ ๋‚˜๋‰œ๋‹ค.
32-Bit CPU ์—๋Š” 64-Bit ์šด์˜์ฒด์ œ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
64-Bit CPU ์—๋Š” 32-Bit ์šด์˜์ฒด์ œ๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ํ•˜์œ„ ํ˜ธํ™˜ Backward Compatibility ๋œ๋‹ค.

์•ฑ ์—ญ์‹œ 32-Bit, 64-Bit ๋กœ ๋‚˜๋‰œ๋‹ค.
32-Bit ์šด์˜์ฒด์ œ์—๋Š” 64-Bit ์•ฑ (Programs File)์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
64-Bit ์šด์˜์ฒด์ œ์—๋Š” 32-Bit ์•ฑ (Programs File (x86))์ด ๋™์ž‘ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ํ•˜์œ„ ํ˜ธํ™˜ Backward Compatibility ๋œ๋‹ค.

์ฐธ๊ณ -0
์ฐธ๊ณ -1

๐Ÿ’ซ x86, x64 (x86-64) ?


x85 = 8-bit
x86 = 32-Bit (์ผ๋ฐ˜์ ์œผ๋กœ)
x64 = 64-Bit (x86-64)

x86 (80x86) =
1978๋…„ ์ธํ…”์ด ๊ฐœ๋ฐœํ•œ ์ธํ…” 8086์— ์ ์šฉ๋œ ์•„ํ‚คํ…์ณ,
๊ทธ ํ˜ธํ™˜ ํ”„๋กœ์„ธ์„œ์™€ ํ›„์†์ž‘ (8086์˜ ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํ™•์žฅํ•œ, 386, 486, โ€ฆ )

IA-16, IA-32, IA-64 ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๋‹จ์–ด์ด์ง€๋งŒ,
์ผ๋ฐ˜์ ์œผ๋กœ x86์ด๋ผ ํ•˜๋ฉด IA-32์„ ์ง€์นญ

IA = Intel Architecture

์ฐธ๊ณ -0

๐Ÿ’ซ ์›Œ๋“œ WORD ?


๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด๋‚˜ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ €์žฅ๋œ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ฎ๊ฒจ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋‹จ์œ„
= CPU๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”, ๋ฒ„์Šค์— ํ•œ ๋ฒˆ์— ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์˜ ๋‹จ์œ„
= DTU Data Transport Unit (DTU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๊ฐ€ ๋งŽ์•˜๊ธฐ์— WORD๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘)

์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ณ์—์„œ,
32-Bit = WORD : 32-Bit
64-Bit = WORD : 64-Bit

๋ฐ˜๋จ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ,
Win32 API์˜ WORD๋Š” 16-Bit๋‹ค.

์™œ Why

IA = Intel Architecture
IA-16์˜ ๊ธฐ๋ณธ ์ฒ˜๋ฆฌ ๋‹จ์œ„ DTU = WORD = 16-Bit
์ถ”ํ›„ 32-Bit, 64-Bit ๋“ฑ์˜ ํ”„๋กœ์„ธ์„œ (IA-32, IA-64 ๋“ฑ) ๋“ฑ์žฅ

ํ˜ธํ™˜์„ฑ์˜ ๋ฌธ์ œ์œผ๋กœ ์ธํ•ด, ๊ธฐ์กด ๋‹จ์œ„ ํฌ๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†๊ณ ,
๋•Œ๋ฌธ์— ๊ธฐ์กด 16-Bit Word๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ƒˆ๋กœ์šด ๋‹จ์œ„๋ฅผ ๋งŒ๋“ค์–ด ์ผ๋‹ค.

DWORD = Double Word = 32-Bit
QWORD = Quad/Quotable Word = 64-Bit

์ฐธ๊ณ -0

๐Ÿ’ซ ์ปดํ“จํ„ฐ์—์„œ์˜ 1K = 1024 ?


I.E. 1 KB = 1024 Byte
์™œ Why

k, Kilo, 10^3, SI ์ ‘๋‘์–ด
1 KM, 1 KG ๋“ฑ ์—ฌ๋Ÿฌ ๋‹จ์œ„์— ์“ฐ์ด๋Š” ํ‚ฌ๋กœ

์ปดํ“จํ„ฐ์—์„œ๋„ ํฐ ๋‹จ์œ„๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ‚ฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ,
2์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ 1000์€ ๋‹ค๋ฃจ๊ธฐ ๋ณต์žกํ•œ ์ˆซ์ž
1000 = b1111101000

๋•Œ๋ฌธ์— 2์ง„์ˆ˜ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋‹ค๋ฃจ๊ธฐ ์‰ฝ๋„๋ก 2์˜ ๋ฐฐ์ˆ˜์ด๋ฉด์„œ,
๊ฐ€์žฅ ์›๋ž˜ 1K = 1000 ์— ๊ฐ€๊นŒ์šด, 2^10 = 1024๋ฅผ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ์˜ 1K๋กœ ์‚ฌ์šฉ
1024 = b10000000000

๊ธฐ์–ต์žฅ์น˜๋ฅผ ํŒ” ๋•Œ์—๋Š”,
๊ธฐ์กด 1K = 1000 ๋‹จ์œ„๋กœ ๊ด‘๊ณ ํ•˜์—ฌ ํŒ”๊ธฐ ๋•Œ๋ฌธ์—,
500GB ๋ถ€ํ’ˆ์„ ์‚ฌ๋„ ์ปดํ“จํ„ฐ๋Š” 466GB๋กœ ์ธ์‹

์ธํ„ฐ๋„ท ์†๋„๋„ ๋น„์Šทํ•œ ์ด์œ ๋กœ,
MB๊ฐ€ ์•„๋‹Œ Mb๋กœ ํŒ”๊ธฐ ๋•Œ๋ฌธ์—,
100Mb ์„œ๋น„์Šค๋ฅผ ์‚ฌ๋„ 12.5MB๋กœ ์ธ์‹

์ฐธ๊ณ -0

๐Ÿ’ซ @์—ฌ์น˜


CPU๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋” ํฐ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์งค ์ˆ˜ ์žˆ๋‹ค. ๊ณ ๊ธ‰ ์–ธ์–ด์˜ ๊ฒฝ์šฐ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. ๋‹น์—ฐํžˆ ์ฝ”๋“œ๊ฐ€ ๋Š๋ฆฌ๊ณ  ๋ณต์žกํ•ด์ง„๋‹ค.

โ€˜์•„ ๋ฒ„์Šค์„ ์ด 32๊ฐœ๋ฉด 32๋น„ํŠธ CPU๊ฒ ๊ตฐ!โ€™
์•„์ฃผ ํ‹€๋ฆฐ ์†Œ๋ฆฐ ์•„๋‹ˆ์ง€๋งŒ ๋˜ ์ •๋‹ต์€ ์•„๋‹ˆ๋‹ค.
์ธํ…” ํŽœํ‹ฐ์—„์˜ ๊ฒฝ์šฐ 32๋น„ํŠธ CPU์ง€๋งŒ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ๋ฒ„์Šค๋Š” 64๋น„ํŠธ๋‹ค. ๊ณผ๊ฑฐ ์ธํ…” 8086 CPU๋˜ํ•œ 16๋น„ํŠธ CPU์˜€์ง€๋งŒ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ„์Šค๋Š” 8๋น„ํŠธ์งœ๋ฆฌ์˜€๋‹ค.

  • N-Bit CPU
    • N-Bit = CPU ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์œ„
    • = ์—ฐ์‚ฐ, (์ œ์–ด = ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ต์„ธ์Šค = ์ฃผ์†Œ = ์–ด๋“œ๋ ˆ์Šค ๋ฒ„์Šค)

HEX

32๋น„ํŠธ CPU๋ผ๋ฉด ๊ทธ ์•ˆ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ชจ๋‘ 32๋น„ํŠธ์งœ๋ฆฌ์ด๋‹ค.
๊ฐ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์€ ํ•œ๋ฒˆ์— 32๋น„ํŠธ์งœ๋ฆฌ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฌผ๋ก  ๋ฉ”๋ชจ๋ฆฌ ์–ด๋“œ๋ ˆ์‹ฑ์„ ์œ„ํ•œ ํŠน์ˆ˜ํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋‚˜ SIMD(Single Instrunction Multiple Data)์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์€ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ œ๊ฐ๊ฐ์ด๋‹ค)

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.