64GB 메모리 샀는데 왜 59.6GB?

Posted by 콜라맛홍삼
2016. 8. 23. 15:46 주요 부품

제가 글을 쓰게 이유는 때문입니다.


 

이런 용량에 대한 차이를 느끼신 분이 많을 겁니다.

분명 구매한 용량은 이랬는데, 샀더니 이렇게 작아??

 

이유 알려드리겠습니다.

메모리가 잘못 되었거나, 저장 장치 제조사에서 일부 사용 불가능하게 막았거나 그런거 아닙니다.

 

귀하의 컴퓨터에 설치된 운영체제가 윈도라서 그렇습니다.

정말입니다? 윈도 아니면 절대 저렇게 나오지 않는다구요?

 

MacOS 리눅스의 터미널에서는 GiB 단위로 표시됩니다.

(Gibi Byte, 기비 바이트, Giga binary Byte, 기가 이진 바이트라고 읽습니다.)

운영체제의 GUI에서는 이진 단위를 10 단위로 바꿔서 1000TB라고 표시됩니다.

궁금하시다면 설치해보세요.

 

지금 가지고 있는 하드디스크가 750 GB짜리 웨스턴 디지털 블랙 뿐이라, 제품으로 예를 들었습니다.


MacOS GUI에서는 보시다 시피 750.16GB


리눅스 GUI에서도 750.


그리고 리눅스 터미널에서는 최상단에 698.7 GiB

 

제품 윈도에 꽂으면 기가 바이트라고 나올까요??

보시다 시피 698.64인데, 단위는 GB.

(제가 파티션이 되어있어서, 컴퓨터 파티션 속성 이미지는 구할 없었습니다.)

이는 마치 30센티미터 자를 보면서, 저건 30 피트야! 라고 하는 것과 같습니다.

값은 맞는데, 단위가 틀리니깐요.

(이 회사에 있는 컴퓨터가 윈도 7이라서 7 사진이지만, 현재 글 작성일 기준으로 윈도 10도 GiB 값에 GB라고 표기하고 있습니다)

 

그냥 윈도가 가장 문제입니다.

 

 

이제 이진 바이트 바이트에 대해 설명해드리겠습니다.

먼저 SI 접두어에 대해 설명해 드리겠습니다.

SI 접두어는 International System of Units에서 정의된 단위입니다.

10^3 1000이면 다음 접두어로 바뀝니다.

그러니까 1000K 1M 되는 것이죠. 1000Km 1Mm 되고, 1000KB 1MB 됩니다.

1000Kb(킬로 비트) 1Mb(메가 비트) 됩죠.

 

그래서 숫자에 3개마다 반점을 찍는 거죠.

그러니까 반점 아래로 있는 숫자를 전부 버리면 K M 되는거죠.

한국에서는 만에서 억이 되는데는 10^4 필요합니다.

그러니까 한국에서는 4자리마다 , 찍어줘야 읽기 편하죠.

 

문제는 컴퓨터는 2진법을 사용하는데, 여기에 사용할 단위가 없었다는 점입니다

하드디스크 같은 저장장치는 단위를 준수해서 생산되지만, 컴퓨터가 용량을 확인할 때는 이진수로 확인합니다.

처음에는 대부분의 운영체제가 이런 계산법을 사용했지요.

Byte 앞에 SI 접두어를 붙이고, 앞에 값에는 2진법으로 계산한 수를 넣는 것입니다.

당시에는 이런 계산이 크게 문제가 없었습니다.

기가바이트라는 단위를 상상하지 못할 시기였으니깐요.

 

문제는 메가바이트가 당연시 되고, 기가바이트 단위의 용량을 가진 제품들이 나오면서 문제가 커졌습니다.

64기가는 59.6 기비바이트입니다.

그러니 윈도에서는 아무리 뒤져봐도 5기가 바이트가 사라진 것처럼 나오죠.

(64 기가 바이트의 용량이 탑재된 스마트 폰은 59.6 기비 바이트에다가 운영체제 설치공간 일부 제외하고 거의 50~ 55 기비 바이트 사용 가능합니다)

1테라바이트는 컴퓨터에 들어가면 고작 931.32 기비 바이트가 됩니다

 

아무것도 모르는 윈도 사용자는 갑자기 70 기가바이트가 증발해버린 것처럼 보이죠.

70기가면 GTA5 하나 설치 있는 용량입니다!!!

이거 중요해요!

심지어 페타바이트 단위로 가게 되면, 1페타 바이트는 91 테라바이트가 사라져요!

아마 이진 바이트 정의할 기가 바이트는 지금 우리가 보는 페타바이트 만큼 용량이였다는 점을 생각해보면, 엄청 차이입니다.

 

그러면서 이런 혼동을 줄이기 위해 새로운 단위인 이진 바이트 정의하게 됩니다.

이진 바이트 IEC 1998년 11월에 정의한 단위입니다.

(그러나 윈도는 아직 98년에 머물러 계십니다. 역시 하드웨어 명가 다운 소프트웨어 수준입니다.)

 

이진 바이트는 앞에 붙는 SI 접두어와 바이트 사이에 '이진(binary)' 붙인 접두어입니다.

Giga Byte Giga binary Byte(줄여서 Gibi Byte라고 읽고, GiB라고 씁니다) 되죠.

페타 바이트도 페비 바이트라고 읽습니다.

그리고 접두어는는 2^10 채워질 때마다 바뀝니다.

 

 

결론입니다.

가장 간단하게 설명 드리자면

1 KiB = 1024 B = 1024 / 1000 KB입니다.

64 GB = 64 * 1000 MB = 64 * 1000 * 1000 KB = 64 * 1000 * 1000 * 1000 B

= 64 * 1000 * 1000 * 1000 / 1024 KiB

= 64 * 1000 * 1000 * 1000 / 1024 / 1024 MiB

= 64 * 1000 * 1000 * 1000 / 1024 / 1024 / 1024 GiB

= 59.6 GiB입니다.

 



사실 이런 쓰게 되는 가장 원인은 짤도 있지만..

대학 교재입니다.

분명 윈도를 제외한 모든 운영체제에서 2 바이트와 10 바이트를 구분하는데

우리 나라의 대학 교재는 KB 1024 B라고 표시합니다.

(ActiveX부터 이런 단위까지 마이크로소프트가 소유한 나라 아닌가 싶은 곳이죠)

대학교 배움 수준 보세요. 벌써 1998년으로 다른 나라보다 -18년 앞선, 엄청난 IT 강대국 아닌가요?

 

대학교 교재에서 사용하는 한빛 교재는 원문에서는 분명 구분할텐데 번역하면서 다시 10진으로 돌아오는건지.

아니면 98 이전에 쓰여진 글로 아직까지 교재를 만들고 있는건지.

이것도 아니면 해외 원문이 아니라 본인이 아는 98 이전 지식으로 글을 작성하고 있는건지 모르겠습니다.


교재가 잘못되었으면 정정하는 교수라도 나타나야 하는데, 아직 그런거 정정하는 교수님 본적 없습니다.

여전히 1 MB = 1024 KB입니다.

아직도 98 이전에 이미 '배움'이란걸 끝마친 교수들이 학생을 가르칩니다.

계속 끊임 없이 배움을 갈구 하는 교수들이 수업한다면, 과연 이런 품질의 강의가 진행 있는지 의문입니다.

 

이딴 틀린 정보를 배우고 삼성에 들어가니까 삼성 폰도 이진을 구분하지 않는거죠.

(지금은 구분 하나요? 갤럭시 s 안하던데)

외산 운영체제 한번 올려보세요.

루팅해서 커롬 올려보세요. 구분 합니다.



대학에서도 잘못된 정보를 가르치고 배우는데, 초중고는 어떻겠습니까.

당연히 틀린 정보로 배우고 있겠죠.

이유는 간단합니다.

윈도거든요. 삼성이거든요.

공립 초중고 교에 있는 컴퓨터는 삼성이여야 하고, 삼성에는 맥이 설치 될 수 없거든요.


제가 이진 바이트를 처음 접한 곳은 안드로이드의 티타늄 백업이라는 앱입니다.

이상하게 SI 접두어와 용량 단위인 B 사이에 i 있어서 검색해봤었죠.

용량 계산은 컴퓨터에 있어서 정말 기초적인 부분인데,

이걸 가르쳐 주는 곳이 인터넷의 위키 백과 뿐이라는 대한민국 교육 현실이 너무 마음이 아픕니다.

IT 선진국, IT 강대국 답게 98년에 이전에 정의된 단위로 배우고 있다는 부분이 씁쓸하네요.

이제는 바꿔야 하지 않을까요!

 

이제는 용량에 혼란 없으시길 바랍니다!

 

 

IT 선진국, 대한민국을 위하여!

 

출처

https://en.wikipedia.org/wiki/Mebibyte

https://ko.wikipedia.org/wiki/메비바이트



저의 티스토리 : http://chcola.net/

저의 티스토리 구독하기 : http://chcola.net/rss

'주요 부품' 카테고리의 다른 글

래안텍 32C144 모니터 후기  (1) 2016.10.15
5차원 유리 디스크  (0) 2016.02.22
SSD 데이터 저장 기간  (0) 2016.01.24
M.2 SSD의 문제점  (0) 2016.01.24

Adsense

서든어택 2는 멀티 코어 지원 게임?

Posted by 콜라맛홍삼
2016. 8. 16. 14:16 소프트웨어

AotS(Ashes of the Singularity) 벤치마킹 자료를 가지고 비교해보려고 합니다.

일부 사용자들이 서든어택 2 멀티 코어 게임이고, 심지어 AotS 8코어 지원이라고 하던데,

조금 많이 혼란을 일으키는 용어가 아닌가 싶습니다.

 

 

저는 게임에서 사용하는 코어와 DX에서 사용하는 코어를 분류해서 보아야 하고,

실제로 게임의 성능에 영향을 미치는 것이 무엇인지 정리해 필요가 있다고 생각합니다.

그리고 DX에서 사용하는 CPU 비중을 많이 차지하는 DX9, 10 무조건 싱글 코어라고 생각합니다.

실제로 코어가 많아지는 것보다 코어 하나의 클럭이 성능을 좌우하는 게임이기 때문입니다.

 


그래프는 DX 11 DX 12 지원하는 AotS에서의 벤치마크입니다.

DX 12 그래프를 보시면 코어 7 코어 8 게임 코드는 보이지 않습니다.

게임 자체는 엄연히 6코어. 엄연히 나머지 코어는 윈도의 DX에서 사용하는 것입니다.

 

그럼 DX 11 볼까요?

DX 4코어만 지원하는 모습. 게다가 DirectX Driver 코어1 사용합니다.

만약 DX9, 10이라면? 그래서 모든 DX 관련된 것이 하나의 코어에만 할당 된다면?

 

이젠 기본 쿼드코어, 인텔 코어i 시리즈나 AMD FX/라이젠을 보나 가장 낮은 사양의 CPU도 2코어 4쓰레드입니다.

한마디로 코어수는 아무 것이나 굴러가는 주워와도 고작 4쓰레드 지원 게임은 코어 때문에 성능이 저하되는 일은 거의 없습니다.

DX9DX10에서는 멀티코어를 지원 지라도 게이밍 성능은 하나의 코어에 부하를 걸어버리는 DX Runtime DX Driver 의해 결정 될것입니다.

그렇다면 코어수와 코어 성능 무엇이 성능을 좌우할까요?

 

당연히 코어 성능이 중요하죠.

결국 DX 9 게임은 싱글 코어 게임이라고 말할 있습니다.

DX 9 게임은 코어수가 크게 문제 되지 않습니다.

현재 구할 수 있는 최소 사양인 4쓰레드 CPU 되도 DX 9 게임이 요구하는 멀티코어 조건은 충족합니다.

다시 말해 DX9 게임은 무조건 코어 하나의 성능만 보면 됩니다.


물론 DX 수준이 증가하면 상대적으로 코드가 중요해지죠.

하지만 DX 9 무조건 싱글 코어 게임입니다.

DX 9이면서 4 초과 쓰레드를 지원하는 게임 없습니다.

있어도 코어 수보다 코어당 성능이 중요합니다.

 

그리고 DX11 지원하는 오버워치가 최상옵션으로 하면 마우스 반응이 늦는 이유도 여기에 있지요.

주사율 60으로 카메라로 찍어보면 마우스 딸깍 거리는 소리에 비해 2~3 프레임이 늦습니다. 최소 13ms 지연이죠.

DX Driver 첫번째 코어에 부하가 걸리면서 지연되는 겁니다.

 

심지어 오버워치 마저도 코어 하나의 성능에 좌우 된다는 이야깁니다.

물론 최상옵션만 아니면 코어 수로 좌우 되지만요.

프레임 수는 90이 나오는데도 지연 됩니다.

FX에서도 90 프레임 나온다고 태클 걸어주진 말아 주세요.

저도 제온 1231v3에서 90프레임 나왔습니다. 그러고도 지연 된겁니다.


 

 

또한 멀티 코어 미지원 게임에서는 하이퍼쓰레딩을 성능이 향상되곤 합니다.

이유는 윈도가 core 0 core1 게임의 쓰레드를 할당해주지 않기 때문입니다.

하나의 게임을 core 0 core 1 할당할 경우, 하나의 코어가 게임 하나를 처리하게 됩니다.

그래서 윈도는 core 0다음에는 core 2 할당하게 됩니다.

 


문제는 윈도입니다.

그렇다면 윈도가 게임을 core 0 core 2 할당하면, core 1 아무것도 할당하지 않을까요?

아닙니다. 백그라운드 프로그램이 할당 됩니다.

물리적인 첫번째 코어가 게임과 다른 백그라운드 프로그램을 번갈아가며 처리하게 된다는 이야깁니다.

여기서 HT 사용시 성능에 저하가 발생합니다.

 

이미지가 확실하게 증명해줍니다.

AotS에서 사용된 DX12가 멀티코어를 미지원 하지는 않지만, 8코어까지만 지원하기 때문에 8코어에 HT 꺼져있을 , 성능이 증가함을 보여줍니다.

요즘이야 저 정도 차이지만, 싱글 코어만 지원하는 게임에서 싱글코어 하이퍼 쓰레딩은 성능 많이 하락시켰습니다.

물론 다른 프로그램을 많이 켜둬서 8코어 + no HT도 하나의 코어가 3번의 사이클 중 2번만 게임을 처리하고 번은 다른 프로그램을 처리하게 되면, 하이퍼 쓰레딩이 존재할 성능이 증가할 것입니다엄연히 하이퍼 쓰레딩은 디코딩 시간을 단축 시켜주는 기술이기 때문이죠.


다르게 말해 벤치는 벤치일 , 실제로는 하이퍼쓰레딩은 켜면 무조건(?) 우수합니다.

특히 저처럼 백그라운드에 10 이상의 프로그램을 켜두고, 부팅 완료 메모리 사용량이 3.9기가 가까이 된다면 말이죠.

제가 컴퓨터를 많이 혹사 시킵니다.^^

 

 

"멀티코어 지원"이라는 것을 "코어 수가 코어당 성능보다 성능에 주는 영향이 크다"라고 해석 해서도 안되며, "멀티코어 지원" 단순히 작업관리자의 CPU 사용량으로 판단해서도 안된다는 점입니다.

작업 관리자로 판단 하더라도, 하나는 50% 사용하고 다른 하나가 30% 밖에 안쓰는데도 멀티코어 지원이라 하기도 어렵구요.

것을 "멀티코어 지원하는 게임"이라 해도 이것은 결국 싱글 코어가 중요한 게임이라는 점은 확실하거든요.

이런 게임(실제론 코어 수보다 코어 당 성능이 중요한 게임)까지 멀티코어 지원이라고 묶어버리면서 코어 수가 많은 CPU가 그 게임에서 우수하다고 여겨서도 안되는 점이죠.

 

멀티코어 지원 게임이라는 단어가 코어수만 많으면 되는 게임이 되려면 좀더 까다로운 조건이 필요합니다.

적어도 멀티 코어지원 게임이라 함은 현재 4쓰레드 이상 처리 가능한 CPU 나오는 시점에서 최소 4쓰레드가 활동하며, 한쪽에 치중 되서 하나의 코어로 성능이 좌우되지 않아야 합니다.

그리고 덤으로.. DX 12 사용하면 어떻게 발로 만들어도, 최적화 엄청 열심히 DX 9 게임보다 멀티 코어 지원이 확실하다는 점도 눈여겨 봐야 합니다.

 

서든 2 코어 30개까지 지원한다 해도, DX9 32비트에다가 게임 로딩이 없어서 사람이 들어올때마다 보조 저장 장치에서 불러오는, 마치 보조 저장장치를 주저장장치 처럼 사용하도록 만든 시점에서 발적화의 끝판왕입니다.

어디에 300억원이 소비 되었는지 감이 안잡히네요.

게임 코드 짜는데도 돈 안쓰고, 그래픽 품질 향상에도 돈 안쓰고.

300억이 그렇게 작은 돈인 줄 몰랐습니다.

 

 

참고 : http://semiaccurate.com/2016/03/01/investigating-directx-12-cpu-scaling/


저의 티스토리 : http://chcola.net/

저의 티스토리 구독하기 : http://chcola.net/rss

Adsense