PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2020/07/15 20:18:43
Name 박수갈채
Subject [질문] 컴퓨터는 어떻게 작동하는건가요…?
엄청 뜬구름 잡는 질문이고 대답하기 애매하고 유치한 질문이지만, 정말 모르겠습니다. 그리고 궁금합니다.

"컴퓨터는 어떻게 작동하는건가요?"

꼬꼬마 시절 워드프로세서 배울 때 하드디스크니 모니터니 스피커니 하는 것들도 배웠고 이후 조건문 and, or... 등등도 무슨 말인지 알겠습니다.

그런데 이런게 모여서 어떻게 계산을 하고 제 눈 앞에 결과물을 띄어놓는지는 모르겠습니다. 뭐라고 할까요, 사용설명서를 보고 물건을 고칠 줄은 알지만 정작 원리는 모르는 원시인이 된 기분이에요.

1.입력을 하면 회로를 통해 전자가 움직인다

2.(블랙박스)

3. 모니터와 스피커를 통해 영상과 소리가 출력된다

이 때 블랙박스 안에 무엇이 들어가나요? 무지렁이를 계몽시켜주실 선각자님들을 찾습니다...

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
아케이드
20/07/15 20:21
수정 아이콘
댓글로 간단히 설명드릴 정도는 당연히 아니고, 컴퓨터의 작동원리가 알고 싶으시다면 아래 서적을 추천드립니다.
https://book.naver.com/bookdb/book_detail.nhn?bid=12207068
부기영화
20/07/15 20:27
수정 아이콘
https://book.naver.com/bookdb/book_detail.nhn?bid=7291158
비슷한 종류의 책들 보시는 걸 추천드립니다.
Earth-200
20/07/15 20:38
수정 아이콘
과거 그것은 알기 싫다 팟캐에서 컴퓨터의 역사를 소재로한 신인류 연대기 편이 있습니다. 에피가 대여섯개 되는데 느긋하게 알아보고 싶다면 추천드려요.
Cazellnu
20/07/15 22:46
수정 아이콘
8086 구조 같은걸 봐도 좋습니다.
20/07/15 23:18
수정 아이콘
1비트 합연산을 수행하는 full adder를 예로 들면, 이건 회로 전체로 보면 3개의 입력(보통 A, B, C_in으로 표시)을 받아서 2개의 출력(보통 S, C_out으로 표시)이 나가는 구조입니다.

입력이 셋 다 0 - 출력은 둘 다 0
입력 중 1이 하나만 존재 - C_out은 0, S는 1
입력 중 1이 두개 존재 - C_out은 1, S는 0
입력이 셋 다 1 - 출력은 둘 다 1

여러 로직게이트를 이용해서 구현하는데, 한두가지 방법만 존재하는 것은 아니고 만들기 나름입니다. 하나만 예를 들어보면, 입력A와 입력B를 XOR게이트(둘 중 하나만 1일 경우에 1이 출력되고, 둘 다 0이나 1이면 0이 출력하는 게이트)에 넣은 뒤, 거기서 나온 출력(A⊕B)과 C_in을 또 다른 XOR게이트에 넣으면 위와 같은 S 결과값을 얻을 수 있습니다. 두 단계를 풀어서 적어보면 아래와 같습니다.

A | B | A⊕B
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

A⊕B | C_in | S (=C_in⊕(A⊕B))
0 | 0 | 0
1 | 1 | 0
1 | 0 | 1
0 | 1 | 1

C_out쪽도 구현하기 나름인데 하나만 예를 들어보면, 위 A⊕B와 C_in을 AND 게이트(입력이 둘 다 1이면 1이 나가고, 그 외 3가지 경우엔 0이 나가는 게이트)에 넣고, A와 B를 또 다른 AND 게이트에 넣은 뒤, 두 AND 게이트에서 나온 출력(A&B와 (A⊕B)&C_in)을 다시 OR 게이트(입력이 둘 다 0이면 0이 나가고, 그 외 3가지 경우엔 1이 나가는 게이트)에 넣으면 위와 같은 C_out이 나옵니다. 역시 풀어서 적으면 다음과 같습니다.

A | B | A&B
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

A⊕B | C_in | (A⊕B)&C_in
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

A&B | (A⊕B)&C_in | C_out (=(A&B) OR ((A⊕B)&C_in))
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

왜 3개를 받아서 2개를 내보내느냐? 수기로 덧셈할 때를 생각해 보시면 알 수 있는데, 가령 아래 두개의 이진수를 더한다면,

0101
0011

맨 오른쪽부터 계산해서 합을 아래에 적고, 자릿수가 올라가는게 생기면 그 앞자리 윗부분에 적어서 세개를 더하는 식으로 순차 진행하죠. 여기서 아래에 적는 부분이 S가 되는 것이고, 앞자리 위에다 적는 부분이 C_out인데, 이 부분이 곧 다음 full adder 회로의 C_in이 됩니다. 즉 이런 회로를 32개 이어 붙이면 32비트 덧셈을 할 수 있고, 64개 붙이면 64비트 덧셈을 할 수 있습니다. 나머지 사칙연산도 기본적인 구현 방식은 같습니다. 저걸 구성하는 게이트 하나하나의 작동원리는 트랜지스터의 작동원리를 보시면 됩니다. 보통 몇개의 트랜지스터를 묶어서 하나의 게이트를 구현합니다(구현방법이 여러가지인 것은 여기서도 동일합니다).

실제 CPU에서 들어있는 연산유닛은 단순히 멀티비트 사칙연산을 수행하는 유닛이 아니라 다양한 연산(수기로 계산하면 하나만 계산하더라도 결과값의 정확성에 대한 자신감을 잃을만큼 복잡한 연산을 다수 포함합니다)을 동시에 비동기식으로 처리할 수 있는 훨씬 더 복잡한 유닛이고, 이런게 코어마다 여러개씩 들어있는데다 거기다 명령어를 뿌리고 자료를 불러오기 위한 구조가 매우 복잡해서 이런 식으로 풀어서 쓸 수는 없습니다. 예를 들어서 아래 다이어그램에 INT ALU라고 적힌 것과 그 지역에 있는 것들 하나하나가 방금 말한 '훨씬 더 복잡한 유닛'인데, 그럼에도 불구하고 이런 것 하나하나가 전체의 극히 일부를 구성하는 요소에 불과합니다. 구성요소 하나하나를 겉핥기 수준으로라도 보려고 해도 얼마나 복잡한지 느낌이 오실겁니다.
https://en.wikichip.org/w/images/thumb/7/7e/skylake_block_diagram.svg/1350px-skylake_block_diagram.svg.png

요즘 CPU를 도저히 설명할 수 없는 것은 물론이고, 석기시대 물건(60-70년대)이나 단순 사칙연산밖에 안 되는 단순 계산기에 들어가 있는 칩도 당연히 위 예시보다는 훨씬 복잡해서 하나하나 예시를 들어 적을 수 있을만한 레벨이 아닙니다. 위에 언급한 예시 덧셈회로는 5 게이트로 구성되어 있고, 8비트로 만들어도 40 게이트인데, 석기시대 4-8비트 CPU들도 보통 게이트 수가 수백-수천개에 수천-수만개의 트랜지스터를 달고 있어서, 예시를 드는건 분량상 불가능하고, 수식으로 표현하거나 그림으로 적더라도 구조를 정확하게 파악하려면 한참 들여다 봐야합니다.

그리고 컴퓨터의 작동에 영향을 미치는 것으로는 단순히 CPU 로직 부분만 존재하는 것이 아니고, 컴퓨터를 구성하는 각종 부품은 물론이고, OS나 네트워크 등 하드웨어와 소프트웨어가 반쯤 물린 부분, 그리고 순수 소프트웨어 부분까지 다 영향을 미치는데, 이런 요소 하나하나가 다들 얼추 비슷한 복잡성을 가지고 있습니다. 즉 관련 대기업의 연구원이나 엔지니어라고 하더라도, 컴퓨터 전범위에 걸쳐 겉핥기 수준으로라도 알고 있는 사람이 그리 많지 않습니다. 외우고 있지는 않지만 대강의 기억(=더 심한 겉핥기)은 있으면서 겉핥기 레벨 정도까진 금방 찾아보고 금방 알아먹는 정도만 되어도 중간은 훨씬 넘고, 사실 자기 회사에서 자기가 담당하는 분야로 한정하더라도 그 부품을 구성하는 여러 요소의 세부 작동원리에 대해서 하나하나 겉핥기가 가능한 수준이면 중간은 넘는다고 봅니다. 뭔지 잘 모르지만 하던거 한다 같은 타입의 근로자가 태반입니다. 이런 현상이 컴퓨터 쪽에서 상대적으로 심한건 맞는데, 시장규모가 큰 물건들(자동차 등)은 정도의 차이가 있을 뿐 대체로 이런 식입니다.
마술사
20/07/16 20:49
수정 아이콘
흔히 말하는 디지털 이라는게 0 과 1로 이루어진 데이터를 말하죠. 컴퓨터 회로안에서 전기가 흐르면 1, 전기가 안흐르면 0 으로 구분하는 방법으로 디지털 데이터를 저장하거나 연산할수 있어요. 이게 컴퓨터입니다.
박수갈채
20/07/16 22:18
수정 아이콘
답변주신 모든 분들 감사합니다!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
146723 [질문] (7세 선물) 브롤스타즈 나노블럭 구할 곳이 없을까요? [1] 홈커밍5046 20/07/16 5046
146722 [질문] 백화점에서 선글라스사서 안경점에서 도수넣어주나요?. [11] 신류진6000 20/07/16 6000
146721 [질문] 컴퓨터에 하드 디스크가 인식이 되다 안되다 합니다...이유가 뭘까요.. [4] 웃어른공격4438 20/07/16 4438
146720 [질문] 마우스 엄지쪽 버튼 고장 [4] 퇴사5001 20/07/16 5001
146719 [질문] 카시트&차량스티커 위치 고민!? [5] Hood4507 20/07/16 4507
146718 [질문] 넷플릭스에서 볼만한 괴물? 크리처? 영화 추천좀 [7] 짱짱걸제시카5340 20/07/16 5340
146717 [질문] 최고의 소설이라고 생각하는 작품 있으신가요? [38] 똥꾼6346 20/07/16 6346
146716 [질문] 아버지 선물 추천 부탁드려요 [3] 밸런스4573 20/07/16 4573
146715 [삭제예정] 방 탈출 같은 문제 하나만 풀어주세요. [11] 이혜리6127 20/07/16 6127
146714 [질문] 허리에 무리 안가면서 뱃살빼는 법 [28] 따루라라랑6374 20/07/15 6374
146713 [질문]  생각 날때마다 하는 턱걸이 도움이 될까요? [13] 토우7459 20/07/15 7459
146712 [질문] Micro SD 1TB 5만6천원 이거 믿을 수 있을까요? [10] ArcanumToss6005 20/07/15 6005
146711 [질문] 같이 먹으면 안 되는 음식 어떤 게 있을지요...? [13] nexon4706 20/07/15 4706
146710 [질문] 컴퓨터는 어떻게 작동하는건가요…? [8] 박수갈채5865 20/07/15 5865
146709 [질문] [게임 플레이] 컴알못이 사양 질문 좀 드리겠습니다. [5] 클로로루실후르4862 20/07/15 4862
146708 [질문] 빵빵 터지는 유튜브 영상 추천좀 해주세요 [5] 진인환4342 20/07/15 4342
146707 [질문] 운영체제 하드디스크 옮길 때 문제가 생겼는데요 [7] 쌀로별4282 20/07/15 4282
146706 [질문] 대전에 중국요리 잘하는 집 추천 부탁드려요 안초비3818 20/07/15 3818
146705 [질문] 인천쪽에 대게나 킹크랩 전문점 추천할만한곳 있을까요?? [3] 기리4093 20/07/15 4093
146704 [질문] 믿을만한 서울 중고 컴퓨터 판매점 추천 부탁드립니다. [6] 아이언맨5177 20/07/15 5177
146703 [질문] 차량 관리 하시나요? [26] 호로종6231 20/07/15 6231
146702 [질문] 오피스텔 vs 원룸.... 경험자분들 조언 좀 부탁드려요. [25] 삭제됨8292 20/07/15 8292
146701 [삭제예정] 대한민국 미래 성장성..? [14] 삭제됨5974 20/07/15 5974
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로