디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[싱글벙글] 논리연산에 대해 알아보자

lduna갤로그로 이동합니다. 2023.07.27 23:24:49
조회 19606 추천 118 댓글 99
														


a65614aa1f06b3679234254958c12a3ae31061529cdd2b03ec2d25c3




대부분의 사람들은 이진법이 뭔지는 몰라도 들어본 적은 있을 것이다.


컴퓨터공학에서 이진법을 쓴다는 것 까지는 아는 사람이 많은데,


왜 이진법을 쓰는지는 잘 모르는 경우가 많다.


좀 아는 사람들은 반도체의 전기신호가 0 또는 1로만 구성되기 때문이라고 대답 할 것이다.


이 글에선 논리연산을 반도체, 그리고 논리회로를 통하여 설명할 것이다.








24b0d768f5dc3f8650bbd58b36837c6d0f79




우선 이진법이 컴퓨터반도체와 논리회로에서 어떻게 쓰이는지 이해하려면


부울 대수라는 것에 대해서 알아야 한다.


위의 표는 참고용으로 올린 것이니, 다 이해하려 하지 않아도 된다. 어차피 전공생들도 자주 까먹는다.



쉽게 말해서 부울 대수란, 연산체계라고 생각하면 된다.


우리가 십진법의 연산체계를 사용하듯이, 반도체는 0 또는 1의 경우만 존재하므로


이진법을 표현 하는데 매우 적절하고


부울 대수로 연산하기 매우 적절하다.


예를 들어보자


1+1 = 2 이다.


하지만 부울 대수에서는 1+1 = 1 이다.


왜냐? 전기 신호가 있는 곳에 전기 신호를 또 줘봤자 달라지는 건 없기 때문이다.




7ce8877fb7816ff637eb82e3449f2e2dd2fd21fcdadc3b751dee2c57


"엥? 전기 신호를 2배로 주면 크기가 2배가 되지 않습니까?"



맞는 말이다. 하지만 반도체 입장에선 그런 건 의미가 없다.


있느냐 ? 없느냐 ? 그것만 중요하다.


전압이 8볼트든 10볼트든 100볼트든 그냥 1인것이다. 전기가 들어와 있기 때문에.





저 논리를 이해했다면 부울 대수의 법칙에 대해 이해하기가 훨씬 편할 것이다.





그럼 부울 대수와 반도체의 관계에 대해서 알아보자.





7fee8203b3f36bf13be780e435807c1f5d5b90b1c6bd00dd7d7900218f1d3d2e30

(이것은 논리연산소자 기호인데, 글을 읽으면서 보면 된다. 외울 필요 없다)








7fed8275b5856af151ed84e54781767365290aa9dd3e51747a0ab32b014f38

이것은 반도체 두 개를 직렬연결 한 것이다.


이것은 부울 대수에서 곱셈에 해당한다.


왜일까?


생각 해 보자.


A 소자가 1이고, B 소자가 0이라고 쳐보자.



A 소자에는 전기가 흘러서 B로 향할 것이다.


하지만 B는 0이기 때문에 전류가 흐를 수 없다. 즉, 결과는 0이다


마찬가지로 0 / 1이라면?

A에 전류가 흐를 수 없어서 B에 도달할 수 없다. 즉, 결과는 0이다



즉, 부울 대수에서의 곱셈과 정확하게 일치한다.




이러한 반도체 배열을 공학자들은 AND 게이트라고 명명했다.







7fed8275b5856af151ed84e54284737336c0abf1eb7025683530676427fda6




또 다른 예로 이번엔 병렬 연결을 생각 해 보자.



A나 B 둘 중 하나만 1이기만 한다면, 전기는 흘러서 결과값이 1이 될 것이다.


반면에 둘 다 0이라면 전기가 통과하지 못 해 결과가 0이 될 것이다



이는 부울 대수에서의 덧셈과 완벽하게 일치한다.


이를 OR 게이트라고 한다.






자 그럼 정리해보자



부울 대수라는 것이 있고, 이는 연산체계이다.


그런데 반도체를 병렬 직렬 연결 해보니까, 부울 대수에서의 덧셈 곱셈과 정확하게 똑같은 결과다.


이러한 배열을 AND 와 OR 게이트 라고 명명했다.



그러면, 여기서는 원리를 생략하겠지만 NOT 게이트 (부정연산) 와 AND , OR 를 합쳐서


저기 나오는 부울 대수의 모든 연산을 수행 가능하다.


궁금하면 한 번 검색 해보길 바라고 예시 사진을 첨부하겠다.





a16711aa372a76b660b8f68b12d21a1dd185d933



(XOR 게이트의 회로 모습이다. 이렇듯이 AND , OR , NOT 세 개 조합으로 저 위의 표에 나온 모든 연산이 가능하다. 궁금하면 한 번 계산 해 보길 바란다)





지금까지 내용의 핵심은




1. 반도체를 병렬 직렬 연결하면 부울 대수에서의 합연산 곱연산과 일치하며


2. 이 두 연산과 NOT 연산을 조합하면 부울 대수에 나오는 모든 연산을 수행 가능하다. 즉, 어떠한 계산도 할 수 있다


3. 그렇다면 우리는 이제 부울 대수로 현실의 문제를 해석하면 반도체를 이용하여 구현할 수 있다!



말인 즉, 현실의 문제를 부울 대수로 해석 해 낼 수만 있다면,


반도체로 얼마든지 표현 할 수 있다는 것이다.


이제 그 해석하는 방법에 대해서 알아볼 것이다.








만일 3개의 신호가 있고, 이를 abc 라고 정해보자.


그럼 나올 수 있는 경우의 수는 8가지 일 것이다.


000 / 001 / 010 / 011 .... / 111



그런데 우리는, 다른거 말고 딱 3일때만 불이 들어오게 하고 싶다.


그럼 어떡해야 할까?



011 일 때만 불이 들어오고



000 / 001 .... / 111 과 같은 나머지 모든 경우는 불이 안들어오면 된다.



그러면 a가 0 / b가 1 / c가 1일때만 불이 들어와야 하는데,


역으로 말하면 a의 역수가 1이고 b가 1이고 c가 1일때 불이 들어와야 한다는 소리다



a의 역수 x b x c 인 경우가 우리가 구하고자 하는 경우가 된다.




논리소자로 구현하면 이렇게 될 것이다.




a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3f675eabfa

(병신같이 그린건 이해좀)










자, 그럼 좀 더 어려운 문제로, 우리가 만약 4개의 신호가 있고, 이를 abcd 라고 정해보자.


그럼 나올 수 있는 경우의 수는 16가지 일 것이다.


0000 / 0001 / 0010 / .... / 1111




그러면, 짝수만 출력하는 어떤 장치를 만들고 싶다.



그럼 어떡해야 할까?



저 16개의 숫자 중에서 짝수는


0010 (2)

0100 (4)

0110 (6)

1000 (8)

1010 (10)

1100 (12)

1110 (14)


이렇게 7개이다.




1c968305b29f2b9146bbf78c3beb251521ca105be9db7a9046395b4605a142cfe29e86e181e2ccdc35200219421ff88ce977b78bca2efe2c51cb6d08b32cdc5e7278b1cacfb5a66b4b71da4ef8ba6f752ef330aee664214b4699326f161db1327248e914


"아 시발 저걸 어떻게 표현함?"






08abd528aed336a22590d2b15dfd2b3abf243ec4f928bc5dd238e1fb0a606febba46c38bbc0c052af9a3



물론 대가리 박아가서 첫번째 처럼 하나하나 싹 다 만들어도 되는데 그럼 너무 비효율적이다.


이 문제를 해결하기 위해서는 간소화 원리와


퀸-맥클러스키 방법과 카르노 맵 이라는 것에 대해 알아야 한다.


그러나 설명이 너무 길어지기 때문에 흥미가 있다면 검색해보길 바란다. 그다지 어렵지는 않다


핵심은, 저러한 문제도 아주 쉽게 구현이 가능하다는 것.



그래도 하나 예를 들자면


1과 0를 둘 다 표현하고 싶은 경우


맨 뒷자리는 고려하지 않는 것이다.


왜냐? 어차피 0이나 1이나 둘 다 표현해야 한다면, 맨 뒷자리는 0이든 1이든 상관없기 때문이다


0001 / 0000 즉, 앞 세자리가 000인 경우 뒤의 자리는 1이든 0이든 상관없다.


카르노 맵과 퀸-맥클러스키 방법은 이것이 핵심이다. 이것이 이해된다면 저 둘도 이해 할 수 있을 것이다.









앞에서 아주 간단한 두 가지 예시를 제시했다.


5만 출력하는 회로를 만드는 법


짝수만 출력하는 회로를 만드는 법



둘 다 부울 대수를 통해 논리소자로 구현할 수 있었다.





그럼 좀 더 복잡한 문제를 표현할 수는 없을까? 혹은 신호를 저장할 순 없을까?


뭐 예를 들어서


타이머라든지, 메모리 같은 것들 말이다.



하지만 우리는 여태껏 시간은 고려를 하지 않았다.


시간에 따른 변화를 표현하려면 어떻게 해야할까?




이를 위해선 플립플롭과 클락 이라는 것에 대해 알아야 한다.





3eb8c468e2db3e8650bbd58b3680766978b3



플립플롭이란 쉽게 말해서 "저장" 하는 기능을 가진 장치다


위의 움짤은 그중에서 매우매우 기본적인 SR래치 라는 것을 나타낸 것이다


움짤에서 보이듯이, 한 번 0 / 1이 저장되니까 바뀌지 않는다.



여기에다가 클락 이라는 신호를 더하면 플립플롭이 된다.


클락은 쉽게 말해 "박자" 라고 생각하면 될 것 같다.



클락이 0에서 1로 바뀌거나 1에서 0으로 바뀌는 순간마다


짤깍 짤깍 하면서 신호가 작동한다고 생각하면 된다.




1f8e9d20e9db28eb68b3d9a55b806a3a09eded8139eb4e1ee223632fb1f3



위 그림에서 clk 신호가 0이라면, R과 S는 뒤로 전달되지 못 할 것이다. 무조건 00만 전달 될 것이다


하지만 1이라면?


전달이 될 것이다.


클락은 이 원리를 이용해, 주기적으로 전달했다가 끊었다가를 반복하기 위해 있는 것이다.






자 그러면 이제 1이 주기적으로 뒤로 전달되는 장치를 만들어 보자







24b0d121e09c28a8699fe8b115ef046c65f8214a



가장 간단한 D 플립플롭으로 구현한 4비트 직렬 레지스터이다.


D플립플롭이니 뭐니 다필요없고 그냥 0이면 0, 1이면 1이 출력되는 플립플롭이라고 생각하면 된다


(shift는 무시해도 좋다)



자 한 번 보자. 클락 신호는 주기적으로 움직일 것이다


1. D3에 1이 들어가면, 첫번째 클락이 바뀌는 순간 Q3의 출력은 1이 될 것이다.


2. 그러면 그 출력이 다음 플립플롭의 입력으로 전달된다.


3. 그다음 D2에 1이 들어가면 클락이 바뀌면 Q2의 출력은 1이 될 것이다.


4. 똑같은 방법으로 D1 , D0로 전달 될 것이고, 첫 입력신호가 0으로 유지된다면,


1000 > 0100 > 0010 > 0001



만일 주기적으로 들어왔다 안들어왔다 하면



1000 > 0100 > 1010 >0101 이 될 것이다.



이렇게 아주 간단한 메모리를 만들 수 있었다.


우리가 쓰는 컴퓨터에 들어가는 메모리 또한


저러한 레지스터들이 수십억개 모인것들 이라고 생각하면 된다.


물론 훨씬 복잡하고 난해하다.









우리는 이제 플립플롭, 앞에서 말 한 부울 대수를 통한 논리연산이라는 강력한 도구 두 가지를 안다.


이를 활용한다면 어떠한 것도 표현이 가능하다


우리 실생활에서 가장 쉽게 찾아볼 수 있는 논리연산 장치는




7cec877eb4ed69ff39e8828a4785756c1103ba0f1ebd50cfb254856f4a77c41a




바로 신호등이다.


정해진 시간동안 초록불이 들어오고, 빨간불로 바뀌었다가, 또다시 초록불


여러분도 이를 만들 수 있다


생각 해 보자. 신호 5개면 32까지 숫자가 표현 가능하므로


abcde 라고 한다면


11110 이 되는 순간 불이 바뀌면 된다.


그럼 어떡해야하나? 플립플롭 5개 연결해서 첫 번째 플립플롭에 전기신호 계속 주고 클락은 1초 주기로 바뀌면 되는 것이다.


그렇게 각 플립플롭의 출력단을 abcde 라고 한다면


a x b x c x d x e의 역수 를 해주면 되고 이는 and게이트로 구현이 가능하다.






우리는 앞에서 간단한 예시들을 통해 논리연산으로 현실의 문제들을 표현하는 방법에 대해 알아보았다


컴퓨터 또한 저러한 논리연산 소자들을 아주 작게 만들어서 집적회로에 때려박아 놓은 것이다.


현대 전자공학, 컴퓨터공학 장치들은 죄다 저 논리연산과 부울 대수를 따른다고 생각하면 된다.












요약



1. 반도체는 0 , 1 두가지 상태만 있음. 즉, 이진법을 표현하는데 적절함


2. 부울 대수는 0 또는 1로만 연산하는 연산법, 즉, 반도체로 구현하는데 적절함.


3. 현실의 문제들은 부울 대수로 표현 할 수 있다면 반도체로도 무엇이든 표현 가능함




출처 : Introduction to Logic Design, 3rd Ed., Alan B. Marcovitz



자동등록방지

추천 비추천

118

고정닉 37

23

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
800143 싱글벙 초전도체가 뭔지 왜 이렇게 호들갑인지 간단하게 설명해봄 [35] ㅇㅇ(112.216) 23.07.28 15663 84
799952 싱글벙 싱글벙글 시원하고 재밌는 게임.gif [8] Subnautica갤로그로 이동합니다. 23.07.28 1591 5
797907 싱글벙 재업하는 초전도체 독일 반응 [83] ㅇㅇ갤로그로 이동합니다. 23.07.28 16801 112
797863 싱글벙 심각심각 현재 남극 상황 [47] Gumball갤로그로 이동합니다. 23.07.28 2419 8
싱글벙 논리연산에 대해 알아보자 [99] lduna갤로그로 이동합니다. 23.07.27 19606 118
797374 싱글벙 오싹오싹 임진왜란의 진짜 목적… [15] 멜스트롬갤로그로 이동합니다. 23.07.27 3378 11
797351 싱글벙 실베 올라온거보고 한마디해봄 [80] OwO갤로그로 이동합니다. 23.07.27 18682 160
796939 싱글벙 오들오들 일본신사에서 제신이된 한국인들 [11] 잊현갤로그로 이동합니다. 23.07.26 1871 12
795918 싱글벙 싱글벙글 아주 쉽게 집피를 바꾸는 방법 [16] ㅇㅇ갤로그로 이동합니다. 23.07.25 5604 12
795817 싱글벙 훌쩍훌쩍 다비드상 고추 크기는 남자들 중 하위 0.3%..... [61] 아문-라갤로그로 이동합니다. 23.07.24 18485 66
795662 싱글벙 싱글벙글 한국어 태풍 이름 [26] 여하갤로그로 이동합니다. 23.07.24 10942 41
795643 싱글벙 전주역 근처 버려진 낡은 모텔을 지역 특색으로 재탄생한 전주 콩나물주택 [14] 카일라스갤로그로 이동합니다. 23.07.24 2793 5
795578 싱글벙 궁금궁금 익룡의 새끼 양육방식을 알아보자 [16] ㅅㅇ,갤로그로 이동합니다. 23.07.24 14388 47
795335 싱글벙 와들와들 생존중인 올해로 100살이 넘은 사람들에 대해 araboja [43] 잊현갤로그로 이동합니다. 23.07.24 16982 82
795287 싱글벙 삼전도비를 읽어보자 [17] 미와경부2갤로그로 이동합니다. 23.07.23 2721 13
795068 싱글벙 허수의 쓰임새를 알아보자 [181] lduna갤로그로 이동합니다. 23.07.23 22057 244
794990 싱글벙 중세시대 기사의 전투력은 어느정도였을까?.webp [193] ㅇㅇ갤로그로 이동합니다. 23.07.23 20212 267
794274 싱글벙 싱글벙글 장포스 배우 신인시절.jpg [15] 최강해태갤로그로 이동합니다. 23.07.21 4148 12
794063 싱글벙 아끼똥아끼똥 아끼다 못 나온 히어로 영화 빌런들 [46] ㅇㅇ갤로그로 이동합니다. 23.07.21 18593 66
793271 싱글벙 투닥투닥 서로 싸우다 죽은 공룡과 포유류 화석 [21] ㅅㅇ,갤로그로 이동합니다. 23.07.19 16684 51
792817 싱글벙 김씨 삼부자의 대표적인 콤플렉스.jpg [16] 최강해태갤로그로 이동합니다. 23.07.18 17159 67
792752 싱글벙 북한이 멸망하면 벌어지는 일 jpg [148] MB갤로그로 이동합니다. 23.07.18 22285 128
792403 싱글벙 신성모와 손원일을 헷갈리면 안되는 이유.jpg [10] 최강해태갤로그로 이동합니다. 23.07.17 2361 17
792374 싱글벙 처음으로 각하 호칭을 없앤 분.jpg [20] 최강해태갤로그로 이동합니다. 23.07.17 10465 37
792095 싱글벙 싱글벙글 아르헨티나와 우루과이가 혈맹인 이유 [23] 여하갤로그로 이동합니다. 23.07.17 18233 79
791994 싱글벙 싱글벙글 집에서 라멘 만들기 [172] 유니클로빌런갤로그로 이동합니다. 23.07.16 24456 251
791915 싱글벙 의외의외 서구권에서 여자들 매력포인트인 거..jpg [34] ㅇㅇ갤로그로 이동합니다. 23.07.16 20767 78
791832 싱글벙 싱글벙글 아직도 유격대 전용 전투복이 있는곳 [4] 한화의김성근갤로그로 이동합니다. 23.07.16 2726 6
791682 싱글벙 코카콜라 대리점을 가야하는 이유 [83] 한화의김성근갤로그로 이동합니다. 23.07.16 23487 127
791489 싱글벙 국가보훈처 포스터가 논란이 된 이유 -2- [9] 한화의김성근갤로그로 이동합니다. 23.07.15 8700 62
791446 싱글벙 의외로 중국에서 금서가 아닌 책 [16] 한화의김성근갤로그로 이동합니다. 23.07.15 17025 82
791440 싱글벙 짱깨 바이두 백과에 서술하는 탈북자.jpg [1] 한화의김성근갤로그로 이동합니다. 23.07.15 2289 17
791220 싱글벙 중국 군벌에 대해 알아보자 -1- [4] 한화의김성근갤로그로 이동합니다. 23.07.15 1715 9
791174 싱글벙 유익유익 스포츠 중계 카메라는 얼마일까? [9] Luckkey갤로그로 이동합니다. 23.07.15 1745 6
791003 싱글벙 싱글벙글 진짜 대한민국 여권 [42] MinariHak갤로그로 이동합니다. 23.07.15 25423 83
790854 싱글벙 싱글벙글 윈도우95 시디키를 케이크처럼 쉽게 얻는법 [21] 싱싱미역상태갤로그로 이동합니다. 23.07.14 17259 101
790849 싱글벙 싱글벙글 접이식 날개 [22] 저공비행세계기록갤로그로 이동합니다. 23.07.14 11912 55
790751 싱글벙 싱글벙글 미야자키 하야오 37년에 걸친 은퇴선언의 역사 [46] Shangri-La㌠갤로그로 이동합니다. 23.07.14 11975 84
790338 싱글벙 싱글벙글 의외로 아직도 생산중인 물건.jpg [96] 한화의김성근갤로그로 이동합니다. 23.07.13 23843 126
790168 싱글벙 업햄의 계급에 관한 정보.jpg [9] 한화의김성근갤로그로 이동합니다. 23.07.13 2841 9
790128 싱글벙 사극에 출연한 뚱이 성우.jpg [12] 한화의김성근갤로그로 이동합니다. 23.07.13 2438 11
788594 싱글벙 싱글벙글 2000년대생들만 아는 추억의 애니들 [177] 별에말갤로그로 이동합니다. 23.07.10 20727 99
788564 싱글벙 남한 버전 장성택.jpg [9] 한화의김성근갤로그로 이동합니다. 23.07.10 3186 9
788492 싱글벙 인도네시아의 종교정책 -보충설명- [8] 한화의김성근갤로그로 이동합니다. 23.07.10 1594 10
788474 싱글벙 군하하하 고대 로마의 선진병영 [55] ㅇㅇ갤로그로 이동합니다. 23.07.10 17317 161
788463 싱글벙 인도네시아의 특이한 법.jpg [46] 한화의김성근갤로그로 이동합니다. 23.07.10 18216 74
788452 싱글벙 디시에서 스테가노그래피를 쓰는 방법 [7] ㅇㅇ(61.85) 23.07.10 1151 11
788364 싱글벙 월남전 국군 파병부대 목록.txt [7] 한화의김성근갤로그로 이동합니다. 23.07.10 2116 5
787962 싱글벙 싱글벙글 북한 최고급 호텔 [51] ㅇㅇ갤로그로 이동합니다. 23.07.09 17268 88
787186 싱글벙 식충식충 식충식물에 대한 오해 + 곤충 유인방법 [43] 마이테츠갤로그로 이동합니다. 23.07.08 14105 130
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2