여러분들은 손 쉽게 데이터를 주고받습니다.
친구한테 카톡을 보내거나
영상을 내려받거나
사진을 전송하는 등등.
지금이야 기술의 발전으로
사진이나 영상 등 자유롭게 주고받을 수 있지만
컴퓨터 초기에는 그런 건 꿈도 못꿨죠.
가장 기본이 되는 근본 통신,
0과 1 데이터를 보내는 씨리얼 통신.
현재는 HW제어에 쓰이는 통신방법입니다.
왜 씨리얼 통신을 써야하는지 알아보기에 앞서
컴퓨터는 이진수의 언어를 다룬다는 걸 알아야합니다.
왜 컴퓨터는 사람이 쓰는 10진수가 아니라
하필 해석하기 어려운 2진수를 쓸까.
그런 논리적으로 가장 편하기 때문입니다.
컴퓨터에 수 많은 핀이 있는데
0은 핀을 off
1은 핀을 on
이렇게 이해해볼까요?
0110이런 숫자가 들어오면 컴퓨터는
"첫번째 네번째 핀은 off시키고, 두번째 세번째는 on해야겠구나"
라고 판단하고 명령을 수행합니다.
우리가 쓰는 컴퓨터의 수 많은 메모리칩은 이런 과정으로 동작을 합니다.
여러분들이 컴퓨터 스팩이야기할 때
16비트,32비트,64비트 이런 이야기 들어보신 적 있나요?
이 비트가 바로 한 자리수.
명령가짓수는
2^(비트수)가 되어서
64비트->2^64->18,446,744,073,709,551,616개의 명령어를 처리할 수 있다
이런 의미가 됩니다.
통신과정이 세세하게 들어가면 복잡하니깐
최대한 간단하게 설명하겠습니다.
위의 그림은 개념을 이해하는 용도로 활용해주시면 됩니다.
디지털 신호를 전송하는데 Clk,클락이라는 신호가 있습니다.
이 클락이란 뭐냐하면
신호를 받는 주기라고 보시면 됩니다.
이 클락 주기가 촘촘하면 촘촘할 수록
더 많은 명령을 처리할 수 있습니다.
주기적으로 클락이 딸깍딸깍하는데
신호를 보낼 때 클락에 맞춰서 신호를 조절합니다.
위의 사진대로 설명하면
앞에 두 개는 0이 되는 이유는
클락이 뛸 때, 신호가 내려가 있기 때문입니다.
그 뒤에는 신호가 1에 가있는데
clk이 올라올 때 신호가 1을 계속 가리키기 때문에
계속 1로 입력이 됩니다.
이렇게 그림을 보면
굳이 clk을 쓸 필요가 있을지 의문이 듭니다.
그런데, 제가 쓰려는 신호가 하나가 아니라
수 십개가 된다고 생각해볼까요?
각각의 신호가 정확하게 '아다리'가 맞아야 동작해야하는 케이스가 있다고 해보겠습니다.
제가 위에서 그린 신호는 아주 '이상적'인 케이스지만
현실에서는 신호 파형이 별별 지저분하게 많이 나옵니다.
만약 clk이 없다면 각 신호를 받고 동작해야할 때에
기준이 없기 때문에 동작이 힘들 수 있습니다.
하지만 일정한 수준으로 펄스가 오르는 clk이 있기 때문에
다양한 신호를 복합적으로 받아도
디지털 시스템이 동작할 수 있습니다.
함수형 프로그래밍은 왜 필요할까? (0) | 2023.07.18 |
---|---|
객체지향은 왜 필요할까? (2) | 2023.07.17 |
IOT시대?? IOT란 대체 무엇일까?? (0) | 2023.05.25 |
개발자라고 다 같은 개발자가 아니다??개발자는 어떤 종류가 있을까?(프론트엔드,백엔드,풀스택,앱,임베디드) (0) | 2023.05.22 |
삼성페이 vs 애플페이, 둘의 결제방식이 다르다고?? (0) | 2023.03.29 |
댓글 영역