Loading the catalog…
Loading the catalog…
최소 단위 움직이는 최소 단위 전기 컴퓨터는 결국 전기를 통해 움직이는 기계이다. 컴퓨터 내부에서는 전압의 변화와 전류의 흐름으로 신호를 주고 받는다. 그런데 전압은 0V , 1V 처럼 딱 떨어지는 값만 존재하지 않는다. 현실의 전압은 아주 다양한 크기를 가질 수 있다. 그렇다면 의문이 생긴다. 왜 컴퓨터는 다양한 전압을 세밀하게 나누어 십진법처럼 더 많은 값을 표현하지 않고 굳이 0 과 1 의 두 상태만 사용하는가? 단순하다. 그게 하드웨어가 훨씬 안정적으로 동작하는 방향이기 때문이다. 전압을 세밀하게 구분하면 지금 들어온 전압이 정확히 어느 구간에 속하는지 판단해야 한다. 하지만 실제 하드웨어는 완벽하고 동일한 환경에서 동작하지 않는다. 열이 발생하고, 전기적 노이즈가 생기고, 부품마다 제조 공정에서 생기는 어쩔 수 없는 오차도 존재한다. 상태를 아주 촘촘하게 나눈다면 작은 흔들림만으로도 원래 값과 다른 값으로 읽힐 수 있다. 이를 종합적으로 판단하여 결국 컴퓨터는 단순한 방식을 선택했다. 전압이 충분히 높다면 1 , 충분히 낮다면 0 사이의 애매한 전압도 물리적으로는 하나의 상태로 구분할 수 있다. 하지만 컴퓨터는 그 상태를 유효한 논리값으로 채택하지 않는다. 그 전압을 0 으로 읽을지 1 로 읽을지 항상 보장할 수 없기 때문이다. 결국 하드웨어는 안정적으로 구분할 수 있는 두 상태를 선택했고, 우리는 그 두 상태를 비트라고 부른다. 판단하는 최소 단위 비트 이제 전압의 높고 낮음으로 컴퓨터가 0 과 1 을 표현한다는 사실을 이해하게 되었다. 그렇다면 비트는 어디에서 사용되나? 처음에는 CPU가 모든 비트를 직접 다룰 것처럼 보인다. 하지만 조금 더 보다 보면 계산 뿐만 아니라 저장, 화면 변환, 전송 등에도 비트를 사용한다. 각 역할을 해당하는 장치들은 따로 존재하고 서로 다른 일을 하지만, 결국 전기적 상태를 0 과 1 로 구분하고 그 상태를 읽고, 바꾸고, 전달한다는 공통점을 가진다. CPU: 계산, 비교, 분기, 제어 GPU: 대량 병렬 계산 RAM: 실행 중인 데이터 보관 저장장치(HDD, SSD): 데이터를 장기간 저장 네트워크 장치: 비트 전달 입출력 장치: 외부 신호를 비트로 변환하거나 비트를 외부 신호로 변환 트랜지스터 - 부품의 기본 소자 위 장치들을 구성하는 기본 소자가 있다. 전자 장치가 전기 신호를 선택하고, 증폭하고, 다음 회로를 제어할 수 있게 하는 전기 스위치가 트랜지스터다. CPU, GPU, RAM 처럼 서로 다른 역할을 하는 장치도 트랜지스터가 전류의 흐름을 제어한다는 공통된 기반 위에 만들어진다. 이 트랜지스터를 여러 개 연결했을 때, 어떻게 단순한 전기 스위치가 boolean 값을 판단하고 숫자를 계산하는 회로가 될 수 있는가? 비트의 판단 컴퓨터는 어떻게 두 상태만으로 복잡한 조건을 판단하고, 계산하고, 동작을 할까? 핵심은 비트 하나가 단순한 숫자만 표현하는 것이 아니라는 점이다. 같은 비트열도 어떤 규칙으로 해석하느냐에 따라 숫자일 수도 있지만, 조건이 맞는지에 대한 답을 가지고 있을 수도 있다. 참과 거짓은 나타내는 상태일 뿐, 조합을 통해 더 복잡한 판단을 만들어 낸다. 컴퓨터가 사용하는 논리 연산은 몇 가지 단순한 질문에서 시작한다. 입력과 반대되는 결과가 필요한가? 모든 조건이 만족되어야 하는가? 여러 조건 중 하나만 만족해도 되는가? 두 상태가 서로 다른가? 이 질문을 전기 회로로 만든 것이 논리 게이트다. 논리 게이트는 들어온 0 과 1 을 정해진 규칙에 따라 계산해서 새로운 0 과 1 로 내보내는 회로다. 이제부터는 우리가 많이 들어오고 사용해온 그 연산자가 나온다. NOT - 입력과 반대되는 값을 출력 가장 단순한 연산으로 값을 뒤집는 연산처럼 보인다. 하지만 어떤 조건이 만족되지 않았을 때만 동작해야 하는 회로나, 어떤 상태의 반대 조건을 만들어야 하는 모든 판단의 시작점이 되는 연산이다. 입력 출력 0 1 1 0 AND - 모든 입력이 1일 때 1을 출력 여러 입력 값이 동시에 만족되는지 확인한다. 조건 중 하나라도 부족하면 실행하지 않는다는 의사결정의 규칙이 되는 연산이다. A B 출력 0 0 0 0 1 0 1 0 0 1 1 1 OR - 하나 이상의 입력이 1일 때 1을 출력 여러 입력 값 중 하나 이상이 만족되는지 확인한다. AND 가 모두 필요함이라면 OR 는 하나면 충분함이라는 판단의 규칙이 되는 연산이다. A B 출력 0 0 0 0 1 1 1 0 1 1 1 1 XOR - 입력 값이 서로 다를 때 1을 출력 두 입력을 다루며 서로 다름을 확인한다. 둘 중 정확히 하나만 참인가를 판단할 때 사용할 수 있고, 이진수 덧셈에서 두 비트의 합 자리를 계산하는 데도 사용된다. A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 복잡한 논리 판단 논리 게이트 하나는 아주 단순한 규칙만을 처리한다. 하지만 게이트의 출력이 다시 다른 게이트의 입력으로 이어지는 순간, 거대한 의사결정을 단순한 0 과 1 의 규칙으로 풀리기 시작한다. 수많은 논리 연산이 있지만 사실 독립된 개별 규칙이 아니다. 일부 게이트를 조합하는 것만으로도 다른 모든 연산을 표현해낼 수 있는 성질을 품고 있다. 특히 NAND 연산자 단 하나만 있어도 컴퓨터에 필요한 모든 논리 연산자를 만들어낼 수 있는데 이를 기능적 완전성 이라고 한다. 컴퓨터가 복잡한 판단을 할 수 있는 이유는 처음부터 모든 판단 규칙이 존재해서가 아니다. 그저 아주 적고 단순한 규칙들을 원하는 만큼 촘촘하게 연결할 수 있는 완결성을 가졌기 때문이다. 마치며 이제 컴퓨터는 연속적인 전기 신호를 안정적으로 구분 가능한 0 과 1 의 상태로 다루도록 설계됨을 이해했다. 하지만 아직 해결되지 않은 문제가 있다. 01000001 이라는 비트열은 무엇을 의미할까? 부호 없는 8비트 정수로 해석하면 65가 되고 ASCII 또는 UTF-8의 한 바이트로 해석하면 문제 A 다. 또 다른 규칙 아래에서는 CPU가 실행할 명령어의 일부일 수도 있다. 비트는 상태를 표현할 뿐 그 상태의 의미를 스스로 결정하지 않는다. 다음에서는 같은 비트열이 상황에 따라 전혀 다른 데이터가 되는 규칙을 살펴볼거다. 오늘의 한마디 내가 건넨 손을 잡을지 말지, 나를 어떻게 평가할지는 100% 상대방의 과제이다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[261006] 컴퓨터가 일하는 근본적인 원리. 최소 단위 움직이는 최소 단위 전기 컴퓨터는 결국 전기를 통해 움직이는 기계이다. 컴퓨터 내부에서는 전압의 변화와 전류의 흐름으로 신호를 주고 받는다. 그런데 전압은 0V , 1V 처럼 딱 떨어지는 값만 존재하지 않는다. 현실의 전압은 아주 다양한 크기를 가질 수 있다. 그렇다면 의문이 생긴다. 왜 컴퓨터는 다양한 전압을 세밀하게 나누어 십진법처럼 더 많은 값을 표현하지 않고 굳이 0 과 1 의 두 상태만 사용하는가? 단순하다. 그게 하드웨어가 훨씬 안정적으로 동작하는 방향이기 때문이다. 전압을 세밀하게 구분하면 지금 들어온 전압이 정확히 어느 구간에 속하는지 판단해야 한다. 하지만 실제 하드웨어는 완벽하고 동일한 환경에서 동작하지 않는다. 열이 발생하고,…
Open source