정보처리기사 자격 시험에서 컴퓨터구조과목을 살펴보면 반가산기, 전가산기 등에 대한 내용이 나오지요.
전자과에서나 다룰 만한 듯한 내용이 나와서 개발자가 왜 이걸 알아야 해? 하는 의아심이 들기도 하는데요.
그래도 자격시험에 도전하시는 분들이라면 어차피 공부해야 하는거니,
관련하여 이해를 도와주는 사이트를 하나 소개해드리겠습니다.
http://www.falstad.com/circuit/
아울러 관련 소스도 공개되어 있다고 하네요. 실제 열어보지는 않았지만, 관심 있는 분은 참조해 주세요. 자바스크립트로 만들어졌다고 합니다.
https://github.com/pfalstad/circuitjs1
크롬 브라우저를 시작하여 아래 사이트로 접속하시면
http://www.falstad.com/circuit/
이런 화면이 나올겁니다.
뭐 여기서 바로 시작하셔도 되지만, 좀 더 큰 화면으로 보도록 하겠습니다.
화면을 좀 내려가시면, Full Screen version 이라고 보이실 겁니다.
이 버튼을 클릭해주시면 화면이 큼지막하게 보이지요
화면 상단에 여러 메뉴들이 나오는데요. 영어메뉴가 익숙하거나 감당하실 수 있는 분은 그대로 두시되,
한글로 보고 싶으신 분은 구글 번역기를 이용하시면 됩니다. 상단 메뉴줄 아무곳이나 우클릭 - 한국어로 번역 버튼을 눌러주세요.
그러면 약간은 번역이 매끄럽지는 못하지만 그래도 이렇게 친숙한 한글이 표시가 되지요..
컴퓨터구조에 나오는 반가산기를 화면에 한번 띄워보겠습니다.
회로 - 조합논리 - 반가산기를 선택합니다.
그러면 화면이 이렇게 바뀝니다.
왼쪽의 0 0 은 입력 신호이고 오른쪽의 0 0 은 출력신호인데요.
0과 1만 표현가능한 2진수 체계입니다.
반가산기는 논리연산 회로를 이용하여 왼쪽의 2개의 입력값을 더해서 오른쪽에 그 합계를 나타내는 회로입니다.
그러니까 왼쪽의 값에 따라 오른쪽값이 아래와 같이 되는거지요
왼쪽 | 2진수 | 오른쪽 | ||
0 | 0 | 0+0 | 0 | 0 |
0 | 1 | 0+1 | 0 | 1 |
1 | 0 | 1+0 | 0 | 1 |
1 | 1 | 1+1 | 1 | 1 |
이 사이트에서는 이 동작을 시뮬레이션 해볼 수 있습니다.
우선 기본 입력값은 0 0 인데요.
마우스로 이 숫자 부분을 클릭해 볼까요? ( 선이 아니라 숫자 부분을 클릭하셔야 합니다 )
그러면 그림이 이렇게 바뀝니다. 오른쪽 출력값을 보면 1이 되어 있군요,
다시 이쪽을 클릭해보시면, 녹색 불이 모두 들어왔군요. 출력값은 1 0, 이진수 10이란 의미입니다.
이번에는 위쪽 신호를 클릭해서 꺼볼까요? 그러니 출력 신호가 다시 0 1 로 바뀌었군요.
이 것이 반가산기이며 제시해드린 표와 일치합니다.
어떻게 이런 결과가 나오는 것일까요?
잠깐 이론적은 부분을 살펴보도록 합시다.
마우스를 이쪽에 가져다 대보시면 화면 아래 AND gate 라고 표시가 될겁니다.
이 모양은 AND 게이트라고 해서 입력된 2개의 신호의 값이 모두 1일 경우 출력이 1이 되지만, 그 외에는 모두 0의 결과를 출력합니다.
다시 마우스를 아래족에 가져다 대시면 이번에는 XOR 게이트라고 표시될 겁니다.
이 모양은 XOR 게이트하고 해서 입력된 2개의 신호가 같은 경우 0을, 다를 경우 1을 출력합니다.
그리고 위쪽 신호는 AND 게이트와 XOR 게이트의 각각 한쪽에 신호로 들어가는데
중간에 점(.)표시가 선이 연결되었다는 의미입니다.
점이 없이 이렇게 표시된 부분은 연결되지 않은 것이지요.
그렇기 때문에 왼쪽상단에 입력되는 신호는 연결된 선인 2개의 게이트의 각 아래쪽 선에 입력되고
왼쪽하단에 입력되는 신호는 연결된 선인 2개의 게이트의 각 위쪽 선에 입력되는 것입니다.
그래서 각각의 입력값을 조합한 결과가 제시해드린 표과 같으며,
결국 2진수 덧셈의 결과를 내뱉는 것이지요.
전가산기의 경우는 꽤 복잡합니다.
3개의 2진수를 더한 결과를 내밷는데요. 참고로 23이니까 8가지 조합이 입력이 됩니다.
회로 - 조합논리 - 완전가산기를 선택하시면
아래와 같은 전가산기 회로가 표시됩니다.
크레이는 회로는 친숙하지 않아서 좀 아찔하군요 :)
이 전가산기 회로도 반가산기처럼 왼쪽의 숫자를 클릭하면 신호가 흘러가는 방향과 결과가 나타납니다.
제일 위쪽 0을 클릭해 1로 바꾸어 보면, 오른쪽 결과는 0 1 이 나옵니다
2번째 0을 클릭, 1로 바꾸면 신호의 흐름이 더 복잡해지고 우측 결과는 1 0 으로 바뀌었습니다. 1+1 = 10이란 의미입니다 ( 2진수로 )
다시 3번째 0을 클릭, 1로 바꾸면 신호가 웬지 더 단순해진 느낌이 듭니다.
2진수 1+1+1=11 로 그 결과가 맞게 출력되는 것을 보실 수 있습니다.
가운데 1을 다시 0으로 바꿀 경우, 1+0+1=10, 결과가 맞군요.
그 외에도 컴퓨터 규조의 논리회로에서 다루는 여러 회로들이 있으니 참조해 주세요.
추가로 블랭크(blank:빈)회로를 선택, 마우스 우클으로 요소를 추가하여 새로 회로를 그리는 기능도 있습니다.
이 부분 관심 있는 분은 한번 학습해보시는 것도 좋을듯 합니다
이 사이트를 이용하면 정보처리기사 시험이든 또는 전자과든
유용하게 활용하실 수 있을것으로 기대되어 글을 공유합니다.
한국의 기술 발전을 위하여!
관련 학과 여러분 모두 화이팅하시기 바랍니다 :)
이상 크레이였습니다. 읽어주셔서 감사합니다.
하나님의 말씀을 마음에 담아두면 어려운 때에 도움이 됩니다.
모든 성경은 하나님의 감동으로 된 것으로 교훈과 책망과 바르게 함과 의로 교육하기에 유익하니
- 디모데후서 3장 16절 말씀 -
'코딩과 알고리즘' 카테고리의 다른 글
구름 IDE 리눅스 무료 개발용 웹서버 - PHP (0) | 2020.10.17 |
---|---|
서버 세팅 : 타 서버에서 내 서버 이미지 엑박 문제 - No 'Access-Control-Allow-Origin 문제 해결 (0) | 2020.08.17 |
무료 오라클 18c XE 설치 + SQL Developer 설정! (12) | 2020.06.19 |
배수의 합 코딩 문제 풀이 - C++/php/C#/자바스크립트 (1) | 2020.05.09 |
세컨드라이프 LSL 스크립트 북 (2) | 2019.10.10 |