728x90
반응형

1. 컴퓨터는 왜 사람이 사용하는 수 체계와 다른 2진수를 사용하게 되었는지, 그리고 왜 기술이 진보한 지금까지도 2진수를 사용하고 있을지 조사와 논의를 통해 정리해봅시다.

컴퓨터는 사람과 달리 정보를 표현하고 이해하는 방식이 다르다.
사람은 자유로운 표현이 가능하지만 컴퓨터는 ON 또는 OFF의 2가지 형태의 전기적 신호를 통해 표현한다.
전기적 신호가 있을 때 1, 없을 때 0으로 표현하기 때문에 2진수를 사용하는 것이다.

 

그럼 3진수, 5진수를 사용하면 안되는지에 대한 의문을 가질 수 있다.

 

예를 들어 3진수를 사용한다고 생각해보자.
컴퓨터는 수많은 트랜지스터를 통해 0 또는 1로 표현한다.
만약 3진수를 사용한다고 하면 트랜지스터를 통해 3가지의 표현을 할 수 있어야 하고
더 많은 표현을 해주어야 하기 때문에 그만큼 처리과정이 복잡해지고 시간 또한 늘어날 것이다.
뿐만 아니라 신호를 구분해주는 트랜지스터 또한 3가지 종류의 신호를 구분해야 하기 때문에
만드는 비용이 증가할 것이고 때문에 컴퓨터도 비싸질 것이다.
3진수를 사용하게 되면 당연히 단순하게 0과 1를 구분하는 2진수보다 더 복잡해지기 때문에
성능도 안 좋을 수 밖에 없다고 생각한다.

 

그리고 3진수를 사용하게 되면 메모리 공간을 더 차지하게 된다.
그렇기에 2진수보다 효율적으로 사용할 수 없게 된다.

 

그리고 2진수는 true and false, yes or no, on and off 와 같이 명확한 구분이 가능하기 때문에
문제를 해결하기 위한 컴퓨터 과학에서 더 효율적일 수 밖에 없다고 생각한다.

 

그럼 왜 기술이 발전된 지금까지 2진수를 사용하고 있을까?

 

개인적인 생각으로는 비용적인 측면과 효율적인 측면으로 인해
단순하고 효율적인 2진수를 사용하고 있다고 생각한다.
예를 들어, 대기업들은 서버를 구축해서 회사의 서비스를 제공하고 운영한다.
그럼 서버를 구축하기 위한 비용이 들어가게 되고, 더 많은 서비스를 제공하기 위해서는
더 많은 서버를 구축해야하고 그만큼 많은 비용이 들어가게 된다.
위에서 말했듯이 2진수가 아닌 3진수, 5진수를 사용하게 되면
그만큼 처리과정이 복잡해지고 처리 시간이 늘어난다.
그리고 3진수나 5진수를 처리하기 위한 하드웨어 또한 복잡해지고 가격이 증가하기 때문에
서버를 구축하기 위한 비용이 증가하고 성능도 떨어지기 때문에 효율성 또한 떨어진다고 생각한다.
이러한 이유에서 2진수를 계속해서 사용하고 있는 것이 아닐까 생각한다.

 

클라우드 서비스가 계속해서 발전되면서 비용을 줄이고 효율적인 서비스를 제공하고자 많은 변화가 이루어지고 있다고 한다.
그만큼 비용과 효율성에 초점이 맞추어지고 있는 지금 더 단순하고 효율적인 처리가 필요하지 않을까 생각한다.

 

 

2. 컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장하는 걸까요?

검색을 통해 알아보니 아날로그 신호를 디지털 신호로 변환하기 위해서는
표본화 -> 양자화-> 부호화 과정을 거쳐야 한다고 생각한다.
예전에 대학을 다닐 때 반도체 강의에서 들었던 기억이 난다.

 

표본화
아날로그 신호를 일정 구간마다 샘플 신호를 선택하는 것을 말한다. 일정한 규칙을 통해 표본 값을 추출하는 것이다.

 

양자화
표본화에서 선택된 신호의 y 축 값을 결정하는 것이다. 그럼 선택된 신호마다 각각의 값들이 정해진다.
표본화된 신호의 크기를 몇 비트의 크기로 표현할 것인가를 결정하는 단계라고 한다.
8bit 로 표현하게 되면 256 가지의 소리의 크기로 구분할 수 있고
16bit 로 표현하게 되면 65536 가지의 소리의 크기로 구분할 수 있다고 한다.

 

부호화
표본화와 양자화를 통해 결정된 정보들을 2진수로 표현하는 단계라고 한다.
원본 파일의 용량이 크기 때문에 압축해서 저장한다고 한다.
이 때, 디지털 오디오 크기는 표본화율 * 양자화 bit 수 * 신호의 경과 시간 으로 구할 수 있다고 한다.

 

3. 내가 사용하는 모니터는 1초에 몇 개의 bit(0과 1)를 사용하여 화면을 표현하고 있을까요? 또, 내가 사용하는 컴퓨터의 CPU는 1초에 몇 개의 bit(0과 1)를 처리할 수 있을까요?

내가 지금 사용하고 있는 모니터는 8bit 로 화면을 표현한다.
컴퓨터는 2진수인 0 또는 1로 데이터를 표현한다.
8bit 는 8자리의 비트열, 즉 8개의 비트를 통해  2의 8승인 256 가지의 색을 모니터로 보여준다.

 

지난 강의에서 컴퓨터는 색상을 RGB (Red, Green, Blue) 라는 3가지 색을 통해서 보여준다고 했다.
모니터에서 R, G, B 을 각 SubPixel 이라고 부르는데 SubPixel 은 각 8비트를 통해 256가지의 색상을 표현하기 때문에
R(256) * G(256) * B(256) = 총 16,777,216 가지의 색상을 표현할 수 있다.
비트로 계산하면 R(8bit) + G(8bit) + B(8bit) = 24bit 를 사용하고
주사율이 60Hz 라면 1초에 60번 화면에 보여주기 때문에 1초에 60 * 24  = 1440개의 비트를 보여준다.
그리고 해상도는 가로오 세로의 픽셀 수로 표시된다 .
내 노트북의 해상도는 3072 * 1920 이므로 총 5898240 개의 픽셀로 화면올 보여준다.
그럼 한 픽셀 당 1440개의 비트를 보여주기 때문에 1초당 1440 * 3072 * 1920 개의 비트를 화면에 표현하고 있는 것이다.

 

다시 말해 지금 내가 사용하고 있는 모니터는 총 16,777,216 가지의 색상을 통해 화면을 보여주고 있다.

 

내가 사용하는 컴퓨터의 CPU는 1초에 몇 개의 비트를 처리할 수 있을까?

 

데이터 전송 속도 단위인 헤르츠에 대해서 먼저 알아야 한다.
헤르츠(Hz)0 또는 1 신호가 한 번 씩 실행되는 주기(사이클)를(을) 말한다.
즉, 1Hz 는 1초에 0 또는 1 신호를 한 번 실행하는 것이다.
CPU 에서 처리 속도에 대해 이야기할 때 클럭(clock)에 대해서 알아야 한다.
클럭이란 1초에 처리하는 횟수를 말한다.

 

따라서, 클럭이 1Hz 라면 1초에 1번 처리한다는 말이다.
지금 내가 사용하고 있는 CPU는 2.3GHz 이다.
그럼 1초에 23억번의 데이터를 처리한다는 뜻이다.
그리고 요즘 나오는 컴퓨터는 대부분 64비트를 지원하기 때문에
한 번에 처리할 수 있는 데이터의 크기는 64비트를 지원해주니까 2의 64승 이 된다.
정리해보자면 64비트의 컴퓨터에서 2.3GHz 클럭인 CPU를 사용한다면
최대 2의 64승 크기의 데이터(64비트)1초에 23억 번 처리(2,3GHz) 할 수 있다.

 

 

- 참고 사이트 - 

steemit.com/kr-science/@bryanrhee/-3-32-64-cpu--1517833259

it.donga.com/93/

 

 

728x90
반응형
복사했습니다!