컴퓨터구조

1kbyte가 1024byte인 이유?

콘파냐 2015. 6. 15. 13:31
반응형

1kbyte는 1024byte라고 당연하게 여기는 분들이 많다. 또한 1Mbyte는 1024kbyte 여기고, Gbyte 또한 1024Mbyte.... 이런식으로 컴퓨터에서 다루는 단위로 치부한다. 하지만, 필자는 여기서 쓰이는 k,M,G가 무엇인지를 명확히 해야 할 필요가 있다고 생각해서 이 글을 작성한다.


흔히 인터넷 검색에서 흔히 찾을 수 있는 1Kbyte가 1024Byte인 이유

'컴퓨터는 2진수를 다루고 2의 승수(210=1024)로 단위를 맞추면 매우 편해지기 때문에 1Kbyte를 1024로 여기는 것이다.'

   


컴퓨터는 2진 수를 다루고 사람이 10진수를 다루면서 10의 승수 단위로 잘라서 생각하면 편하게 생각하는 것과 마찬가지라는 논리다.

그런데 위 말은 반은 맞고 반은 틀리다. 2진수 체계기 때문에 2의 승수로 단위를 맞추면 여러모로 편리는 것은 맞는 말이다.

하지만 이에 앞서 k,M,G라는 단위에 대해서 살펴볼 필요가 있다.


K(kilo),M(Mega),G(Giga)….

위 단위들은 국제단위계(International System of Unit)(약칭 SI)로 국제 표준 규격이다.

출처-wikipedia

k,M,G…은 국제 표준 규격으로서 1024와 관계없음을 알 수 있다. 각각 1,000, 1,000,000, 1,000,000,000 을 나타낸다.

따라서 국제 표준을 따르면 1kbyte는 1000byte가 되어야 한다.

 

그러면 지금까지 우리는 잘못 사용해 왔는가?

사실 이에 대해서는 명확하게 말하기 어렵다 생각한다. 국제 표준 규격이긴 하지만 우리는 관습적으로 1kbyte= 1024byte라고 사용해 왔고, 수 많은 책들이나 정보에서 1kbyte=1024byte라고 설명하기 때문이다.

먼저 다음 표를 살펴보자

출처-wikipedia

문서에 따르면 1998년에 International Electrotechnical Commission (IEC)와 다른 여려 표준에서 이에 대한 혼동의 여지가 있기 때문에 binary Prefixes로 2의 승수인 1024를 사용할 것을 권고했다. 이에 따르면 1kbyte는 1000kbyte여야 하고 이는 국제표준을 지키는 것으로 타당하다는 결론이다. 대신 binary Prefixes로 1kibibyte = 1024byte로 사용하도록 한다는 것이다.

   

그런데 표를 보면 JEDEC(메모리관련표준)에서는 1024를 K(kilo)로 그대로 사용하기로 한 모양이다.

"the IEEE/ASTM SI 10-1997 standard as stating, that "this practice frequently leads to confusion and is deprecated". However the JEDEC specification does not explicitly deprecate the common usage."

출처 - wikipedia

관습적인 사용을 계속 사용하겠다는 말이다.

이런 이유로 메모리의 사이즈(하디드스크는 국제표준을 따른다.)는 1024byte를 1kbyte가 된다. 이는 반도체 설계의 문제상 어쩔 수 없다고 알고 있다.

이유야 어쨌든 국제표준에 맞지 않는 표기다.

 

리눅스는 이런 국제 표준규격(SI)을 따른다고 알고 있다.

이에대한 논의 – 해외

위 링크에서 발췌하였다.

   

예를들어

윈도우에선 70GB 하드디스크가 65.1GB로 표시되고 1GB 메모리는 1GB로 표시된다.

이는 하드디스크 업체는 SI 표준에 따라 하드를 제조하여 70GB = 70,000,000,000byte가 되고 윈도우에선 관습적 표기에 따라 1kbyte=1024byte로 읽기 때문이고, 메모리 제조 또한 관습에 따라 1024byte = 1kbyte로 여기므로

   

반면에 70GB 하드디스크는 리눅스에서70GB표시되고, 1GB 메모리는 윈도우에서 1.07BG로 표시된다.

이는 리눅스는 2008년(년도는 확실치 않음)에 SI표기 법을 따르기로 했고, 때문에 위와 같은 결과가 나온다.

   

다음은 구글링으로 발췌한 글이다.

an error that's increasing as computers become more and more powerful (2.4% for k, 4.9% for M, 7.4% for G, 10.0% for T, etc.).

출처

승수가 거듭될수록 표시되는 수와 실제 용량은 차이가 난다는 뜻.

결국 우리는 경우에 따라 1kbyte를 1000byte  또는 1024byte로 생각해야 한다.

반응형