Skip to content

1 Introduction to Computers #1389

Description

@jongfeel

CHAPTER 1 컴퓨터 개론

컴퓨터가 몇 가지 일을 할 수 있다면(좀 더 정확히 말하자면 충분한 기본 기능을 갖추고 있다면) 다른 컴퓨터가 하는 일도 모두 할 수 있으며, 이는 범용성universality 원칙의 기초가 된다.

우리가 A 컴퓨터의 작동 방식과 ‘상태 전환 규칙’ 따위를 모두 알고 있고 B 컴퓨터는 A의 상태를 ‘기술describe ’하는 기능만 있다고 하면, B를 이용해 A의 모든 변환 과정을 기술해 A의 작동 방식을 그대로 흉내 낼 수 있다. 즉, B는 A가 하는 일을 그대로 모방하는 것이다.
B 컴퓨터, 흔히 튜링 머신Turing machine 이라고 널리 알려진 컴퓨터를 만들어 증명할 수 있다.

컴퓨터는 여러 면에서 문서 정리원과도 비슷하다.
문서 정리원은 문서 캐비닛 사이를 돌아다니면서 서류를 꺼내거나 집어넣고, 쪽지에 뭔가를 적기도 하고, 다른 사람에게 전달하기도 한다.
바로 여기서부터 컴퓨터 구조의 기본 개념을 따져봐야 한다.

1.1 문서 정리원 모형

컴퓨터가 아주 무식한 방법으로 일을 한다는 사실을 우리가 잘 모르는 이유는 속도가 아주 빠르기 때문이다.

1.2 명령어 집합

문서 정리원에게 가장 먼저 알려줘야 할 것은 바로 올바른 순서로 일을 처리하는 능력, 즉 명령어를 주어진 순서대로 처리하는 능력이다.

모든 작업은 순서대로 처리되어야 하는데, 레지스터가 있어야 주변을 정리해 가면서 제대로 일을 할 수 있다.

명령어 처리 개념을 더 잘 이해하는 방법에는 크게 두 가지가 있다.
한 가지는 기본 개념을 일단 외운 다음 시간을 들여 각 명령어를 직접 정리하며 익히는 방법이다.
다양한 문제를 해결하다 보면 명령어가 얼마나 필요한지 알 수 있다.

또 다른 방법은 다른 사람은 어떻게 했는지 꼼꼼하게 읽어보는 방법이다.
책장을 넘겨보다가 내가 뭘 잘못했는지 깨닫고 나면 책을 덮고서 하던 일을 계속 한다.
그리고 문제를 모두 해결하면 다른 사람이 어떻게 했는지 보며 내가 얼마나 바보같이 풀었는지, 그리고 다른 사람들이 얼마나 똑똑하고 효율적으로 문제를 해결했는지 확인하곤 한다.

연습문제라는 것은 이미 해결된 문제다. 하지만 그러면 어떤가? 그냥 재미삼아 풀어보면 된다. 그렇게 연습하다 보면 문제를 해결하는 감각을 익히게 된다.

재미삼아 기존 문제를 직접 증명하다 보면 자신감도 얻을 수 있고, 점점 더 복잡한 문제를 해결하다 보면 언젠가는 아무도 풀지 못한 문제를 풀었다는 걸 깨달을 수도 있다.
컴퓨터 과학자는 그런 식으로 탄생한다.

다른 사람들이 어떻게 풀었는지를 읽어보면 그 과정이 얼마나 힘들었는지, 무엇을 해결하려고 했는지, 어떤 난관이 있었는지 등을 이해할 수 있다.
스스로 문제를 풀기 위해 씨름하고 나서 정답을 보면 바로 정답부터 볼 때보다 훨씬 잘 이해할 수 있다

1.3 마무리

위로 올라간다는 것은 컴퓨터의 작동 원리에 대한 자세한 내용은 줄이고 사용자 입장에 더 가까운 추상적인 면에 접근 하는 것을 뜻한다.

인터프리터는 프로그램을 실행하면서 각 명령어를 순차적으로 한 줄씩 읽고 해석하며 저수준 언어로 바꾼다.
반면 컴파일러는 프로그램 전체를 한 번에 받아서 전부 어셈블리어 또는 기계어로 바뀐 뒤에 프로그램을 실행한다.
이는 코드 전체를 분석한 뒤 필요한 연산을 최적화할 수 있기 때문에 경우에 따라 불필요한 연산을 줄이고 실행 속도를 향상시키는 등의 장점도 있다.
이것이 컴파일러 최적화의 핵심이며, 특히 비 폰 노이만 방식의 병렬 컴퓨터와 같은 유형에서 점점 더 중요해지고 있다.

‘아래로’ 내려가는 것을 생각해 보자.
아직 우리는 문서 정리원이 어떻게 만들어져 있는지는 생각해 보지 않았다.
실제로 만들어야 할 전기 회로는 다음 장에서 더 살펴본다.

옆으로 이동한다는 것은 지금까지 살펴본, CPU가 하나이고 모든 일을 ‘하나씩 가져와서 실행하는’ 방식으로 순차적으로 처리하는 폰 노이만 아키텍처와 전혀 다른 방식을 고려하는 것이다.
문서 정리원을 여러 명 투입하여 작업 속도를 높이는 방법이 바로 병렬 컴퓨터의 개념과 연결된다.

Metadata

Metadata

Assignees

Labels

2025Feynman Lectures on Computation Anniversary Ed파인만의 컴퓨터 강의 - 양자 컴퓨터를 고안한 천재가 들려주는 계산 이야기 | 20세기 최고의 물리학자가 남긴 마지막 강의, 2판

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions