컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (1)

나빌레라의 이미지

#1. 영과 일

이 책을 읽는 사람들 중 디지털이 무언지 모르는 사람이 과연 있겠냐만은 나는 이 장대한 이야기의 처음에는 꼭 디지털에 대한 이야기를 하고 싶다. 디지털 기술이니 IT 기술이니 하는 많은 복잡한 기술들이 결국엔 영과 일로 표현되는 아주 단순한 개념에서 부터 출발한다는 것을 말하고 싶기 때문이다.

흔히 디지털을 이진수와 동일한 개념이라고 생각하는 사람들도 있다. 디지털을 표현하는 가장 적합한 수 체계가 이진법이기 때문에 그렇게 생각할 수도 있다. 하지만 디지털은 그런 형상적인 개념이 아니라 보다 추상적인 개념이다. 디지털은 어떤 존재의 상태를 확실히 구분되는 두 개의 상태로 인식한다. 전등의 경우 켜짐과 꺼짐으로 구분하고 숫자는 0과 1로 구분한다. 전등은 전원이 들어와서 어느 정도 수준의 밝기에 도달할 때까지 분명 순차적으로 전등은 밝아진다. 전원이 들어오자마자 중간 단계없이 한번에 밝아지지 않는다. 미세하게 구분하자면 전등이 완전히 밝아 질 때까지 밝기 구분을 수십 단계에서 수백 단계까지 나눌 수도 있다. 하지만 디지털은 꺼짐과 켜짐으로만 구분한다. 마찬가지로 0과 1사이에도 0.1, 0.2421, 0.33838293 등 무한히 많은 수가 존재한다. 하지만 디지털은 오로지 0과 1만 존재한다.

분명히 존재하는 중간 상태를 무시하고 오로지 아무것도 없는 상태와 있는 상태에만 의미를 부여한다는 것이 디지털을 이해하는데 가장 중요한 요소라고 생각한다. 전자 회로에서 디지털은 특정 전압값은 1, 전압이 없거나 접지에 연결되면 0으로 인식되는 것을 기본으로 삼기 때문이다. 예를 들면 일반적으로 5V나 3.3V의 전압을 1로 인식하고, 0V를 0으로 인식한다. 5V를 1로 인식할 때는 3.3V도 0이다. 중간 상태를 무시하기 때문이다. 하지만 3.3V를 1로 인식할 때는 3.3V라는 전압 값이 1이라는 의미를 가지게 된다. 즉 디지털이란 체계는 절대적인 것이 아니라 설계자가 정해 놓은 특정 조건에 맞을 때 0과 1을 인식하는 상대적인 것이다.

위 그림은 간단히 전등을 스위치로 켜는 회로도다. 스위치를 누르면 전등이 켜지고 스위치에서 손을 떼면 전등이 꺼진다. 나는 전등이 켜졌을 때를 1, 전등이 꺼졌을 때를 0으로 간주하도록 하겠다. 스위치를 눌렀다 뗏다를 반복해서 그 결과를 그래프로 표현하면 아래 그림과 같을 것이다.

그 래프가 위로 올라갔을 때를 전등이 켜졌을 때, 1로 볼 수 있고, 그래프가 아래에 있을 때가 전등이 꺼졌을 때, 0으로 볼 수 있다. 디지털로 인식했을 때 전등에 걸리는 전압 값도 위 그래프와 일치한다. 전등이 1.5V가 걸렸을 때 켜진다면(보통 AA 배터리는 1.5V다.) 그래프 높은 값은 1.5V가 될 것이고 그래프의 낮은 값은 0V가 될 것이다. 하지만 실제 회로에서 전압 값을 측정하면 위 그림과는 약간 다른 그래프가 그려진다.

전 압은 위 그래프처럼 서서히 상승했다가 서서히 떨어진다. 분면 중간 값이 존재한다. 다시 강조하지만 디지털 세상에서 중간이란 없다. 오로지 있다/없다만 존재 할 뿐이다. 0과 1이 존재할 뿐 0.5는 디지털 세계에서 존재하지 않는다. 물론 이진법으로 0.5를 표현할 수는 있다. 하지만 지금 내가 이야기하고 있는 것은 이진법이 아니라 디지털이란 개념 그 자체다.

디지 털 세상에서 중간을 인식하지 않는 다는 것이 언뜻 생각하면 현상을 보다 자세하게 표현하지 못할 수도 있을 거란 의문을 가지게 된다. 당연히 가질 수 있는 의문이다. 분명히 존재하는 중간 상태를 모조리 싸잡아 0으로 표현해 버리는 것이 어찌 정확할 수 있단 말인가. 하지만 이렇게 중간을 인식하지 않는 것이 디지털이 가지는 가장 큰 장점이라는 것을 앞으로 내가 계속 이야기 해나가는 과정에서 여러분을 스스로 알게 될 것이다.

중간을 모두 인식하는 아날로그에서 생기는 문제를 디지털은 아주 간단한 방법으로 해결해 버렸고 그 과정에서 생겨난 많은 기술들이 발전을 거듭하여 지금 이 글을 보고 있는 컴퓨터 시스템을 이루게 되었다.

정 리해보자. 디지털은 이진법이 아니다. 디지털은 하나의 개념이다. 디지털은 중간을 인식하지 않는다. 디지털은 오로지 두 개의 상태만 존재하는 체계다. 그 두 개의 상태는 있다/없다, 켜다/끄다, 0/1, 진실/거짓같이 완전히 구분되는 개념이다.

우리는 실생활에서 많은 디지털적 요소들을 접하고 산다. 그리고 그런 요소들은 아주 오래 전부터 우리와 함께했다. 디지털은 결코 최신 기술이나 개념이 아니다. 인간의 오랜 수수께끼중 하나인 남과 여 조차도 결국 디지털이다.

File attachments: 
첨부파일 크기
Image icon _01_01_lamp_circuit.png857바이트
Image icon _01_02_one_and_zero_graph.png596바이트
Image icon _01_03_real_voltage_graph.png1.17 KB

댓글

gurugio의 이미지


질문이 있습니다.
디지털 회로와 논리 회로의 차이가 궁금합니다.

제 기억에 디지털 회로 수업시간에는 High-Z 상태에 대해서 배웠던것 같습니다.
강한 임피던스나 플로팅 상태 등등에 대해서 배운걸로 기억이 나고
논리 회로 시간에는 플로팅 상태를 없애고 논리적인 0/1로만 구성된 회로나 연산에 대해서
배운걸로 기억이 납니다.

제가 수업 내용을 반대로 기억하고 있는것 같습니다만
어쨌든 디지털 회로와 논리 회로에 플로팅을 생각하는지에 대한 차이가 있는게 맞나요?

----
섬기며 사랑하면 더 행복해집니다.
몸에 좋은 칼슘이 듬뿍담긴 OS 프로젝트 - 칼슘OS http://asmlove.co.kr/wiki/wiki.php/gurugio

나빌레라의 이미지

으허허허...

저도 모르겠습니다...^^;

제 글에서는 둘을 거의 구분없이 사용한것 같은데...

나중에 전자과 전공한 친구한테 물어봐야 겠습니다...

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

grassman의 이미지

논리 회로는 이산 수학을 사용하여 논리 연산을 다루는 회로를 말합니다.
디지털 회로는 이산 신호를 다루는 모든 회로를 통칭한다고 알고 있습니다.

고 임피던스 상태(High-Z)는 Bus 구조에서 회로를 차단시키기 위해 쓰는
상태인데 논리 회로에서 다루었는지는 기억이 나지 않는군요.

엠브리오의 이미지

새 강좌를 시작하시는 건가요?

임베디드 시스템으로 밥 먹고 사는 입장에서 반가운 소식이로군요.
좋은 강좌 기대하겠습니다. ^^;

나빌레라의 이미지

감사합니다.

글 내용에 오류가 좀 많을겁니다.

그때마다 지적해주세요~ ^^

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

Fe.head의 이미지

잘 보고 있습니다^^
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
-----------------------
내가 쓰는 글은 틀릴 수 있습니다.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

sangho9306의 이미지

 

dg의 이미지

0V가 0이고 5V가 1이라고 하면 3.3V라면 5V쪽에 더 가까우니까 일반적인 경우라면 1로 인식되지 않을까요?
중간상태를 싸잡아 0으로 인식하는게 아니라 중간상태라도 0또는 1로 인식한다가 맞을거 같습니다.

익명 사용자의 이미지

필자가 설명하려는 의도는,

중간에 무엇이 있던 반올림의 개념이 아니라, 요구 조건에 충족하지 않으면 버림. 충족 이상이되면 1

즉 버림으로 처리하자는 이야기 같은데요?

djjang19의 이미지

좋은 내용의 글 잘 보고 있습니다.

ubtaptt의 이미지

컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (0) : http://kldp.org/node/109764
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (1) : http://kldp.org/node/109814
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (2) : http://kldp.org/node/109901
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (3) : http://kldp.org/node/110005
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (4) : http://kldp.org/node/110137
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (5) : http://kldp.org/node/110214
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (6) : http://kldp.org/node/110311
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (7) : http://kldp.org/node/110440
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (8) : http://kldp.org/node/110515
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (9) : http://kldp.org/node/110602
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (10) : http://kldp.org/node/110670
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (11) : http://kldp.org/node/110850
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (12) : http://kldp.org/node/111015
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (13) : http://kldp.org/node/111192
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (14) : http://kldp.org/node/111678
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (15) : http://kldp.org/node/112152
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (16) : http://kldp.org/node/112552
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (17) : http://kldp.org/node/112832
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (18) : http://kldp.org/node/113385
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (19) : http://kldp.org/node/113754
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (20) : http://kldp.org/node/113854
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (21) : http://kldp.org/node/113950
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (22) : http://kldp.org/node/114146
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (23) : http://kldp.org/node/114407
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (24) : http://kldp.org/node/114537
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (25) : http://kldp.org/node/114666
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (26) : http://kldp.org/node/114667

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.