논리회로

논리회로라는 어려운 이름에 비해서 하는 일은 매우 단순하다. 논리회로를 구성하는 기본 소자에는 OR, AND, NOT의 세가지가 있고, 여기서 NOR, NAND, XOR의 세가지 파생형태가 나타난다. 이 회로들은 0이나 1에 해당하는 값을 입력받고, 0이나 1에 해당하는 값을 출력한다. 특히 NOT을 제외하면 모두 2개의 값을 받아서 1개의 값을 내놓는 회로들이다.

먼저, 1개의 값을 받아서 1개의 값을 내놓는 회로를 생각해 보자. 들어오는 값에 상관 없이 0이나 1을 내놓는 회로는 그냥 상수함수라고 한다. 이것들은 입력이 변해도 출력이 바뀌지 않으므로 컴퓨터의 작동에 별다른 역할을 하기 어렵다. (아주 없지는 않지만.) 들어오는 값에 따라 출력이 달라지는 함수는 두가지가 가능한데, 하나는 들어오는 값을 그대로 내보내는 것과, 들어오는 값의 0과 1을 바꿔서 내보내는 것이다. 들어오는 값을 그대로 내보내는 것은 항등함수(Identity)라고 부르는데, 어려운 이름이 붙어있지만 하는 역할은 단순히 0이 들어오면 0을 내보내고 1이 들어오면 1을 내보내는 일이다. 그리고 들어오는 값을 바꿔서 내보내는 것을 NOT이라고 부르는데, 이것은 0이 들어오면 1이 나가고 1이 들어오면 0이 나간다.

OR, AND는 2개의 값을 받아서 1개의 값을 내놓는 회로이다. OR은 그 영어 단어가 알려주듯이 “또는”이다. 2개의 값이 모두 0이면 0을 내놓고, 그 외에는 1을 내놓는다. AND는 “그리고”이다. 2개의 값이 모두 1이면 1을 내놓고, 그 외에는 0을 내놓는다. OR은 논리합, AND는 논리곱이라고 부르기도 한다.

NOR, NAND는 OR과 AND에 NOT이 붙은 것이다. 즉, NOR은 2개의 값이 모두 0이면 1을 내놓고, 그 외에는 0을 내놓는다. NAND는 2개의 값이 모두 1이면 0을 내놓고, 그 외에는 1을 내놓는다.

그리고 XOR은 Exclusive OR인데, 2개의 값이 같으면 1을 내놓고, 다르면 0을 내놓는다. XOR에 NOT이 붙은건 없냐고 물으신다면, 그런게 필요하면 그냥 NOT을 붙여서 쓰면 되는 것이 인지상정이다.

여기서, NOR과 NAND의 가장 중요한 특성은, 이 것 중 한 종류만 잘 만들 수 있으면 나머지 다른 소자들을 모두 만들어 낼 수 있다는 것이다. 즉, OR, AND, NOT, NOR, NAND, XOR은 NOR만 갖고 조합해서 만들거나, NAND만 갖고 조합해서 만들어 낼 수 있다. 언론에서 자주 등장하는 NAND플래시 소자가 바로 그것이다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d 블로거가 이것을 좋아합니다: