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
수정 아이콘
답변주신 모든 분들 감사합니다!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
146843 [질문] 유심 데이터 나눠쓰기 시 다른 사람 카톡이 오는 문제 [2] Aquaris5207 20/07/20 5207
146842 [질문] 눈정화/힐링할수 있는 유튜브/동영상 추천부탁드립니다. [6] 목캔디4869 20/07/20 4869
146841 [질문] 방안의 홍어 냄새 어떻게 해야 하나요 흑흑 [15] 박수갈채13708 20/07/20 13708
146840 [질문] 국내 발매 시티팝 추천좀 해주세요. [32] 키토5434 20/07/20 5434
146839 [질문] 인천/공항/김포 호텔 추천 부탁드립니다. [8] Cazellnu4129 20/07/20 4129
146837 [질문] 전기면도기 추천 부탁드립니다. [8] 개미4968 20/07/20 4968
146836 [질문] 휴대폰 안전하게 버리는 방법이 있을지요? [3] SlaSh.6425 20/07/20 6425
146835 [질문] 크롬/엣지 오류 관련 궁금합니다..ㅠㅠ [4] 아기다리고기다리6603 20/07/20 6603
146834 [질문] 대구 맛집 추천 부탁드립니다 [16] 기다리다똥된다5143 20/07/20 5143
146833 [질문] 핸드폰 철회 관련 질문입니다 [7] nekorean4490 20/07/20 4490
146832 [질문] 영화 미지와의 조우 마지막 부분 기억나시는 분 계신가요? [4] 미네랄은행4263 20/07/20 4263
146831 [질문] (고양이)기르는 고양이가 기침했는데 피가같이나왔습니다 [4] 불대가리6322 20/07/20 6322
146830 [질문] 전기면도기 헤더교체 질문입니다 [4] 삭제됨3797 20/07/20 3797
146829 [질문] 신혼집에 대한 조언 부탁드립니다. [22] 클레멘티아6510 20/07/20 6510
146828 [질문] 관전할만한 천상계 서포터 추천해주세요. [2] 훈타5216 20/07/20 5216
146827 [질문] 제주도 3박4일 정도 뚜벅이로 머무르기 좋은 지역이 어디일까요? [2] 박근혜4655 20/07/19 4655
146826 [질문] 에어팟프로 통화 [9] 韩国留学生5301 20/07/19 5301
146825 [질문] 간헐적 설사로 병원 방문하면 해결이 될까요? [5] EPerShare4266 20/07/19 4266
146824 [질문] 대명 비발디파크 놀거리 뭐 있을까요? [2] 유니꽃5327 20/07/19 5327
146823 [삭제예정] [질문]자식 명의의 집을 부모님 명의로 돌리려고 합니다.. [6] 테란나이트6040 20/07/19 6040
146822 [질문] 1차 북벌에서 마속이 제 몫을 했다면 어떻게 되었을까요? [11] 드문6060 20/07/19 6060
146821 [질문] LOL 챔피언 추천 부탁드립니다. [13] Lewis4559 20/07/19 4559
146820 [질문] 부산대 앞에 남자 3명 저녁 [7] 오하영5319 20/07/19 5319
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기