우리는 앞서서 우리가 왜 컴퓨터 구조를 알고 있어야 하는지 알아보았습니다.
이제는 본격적으로 컴퓨터 구조에 대해 알아볼 차례입니다.
우선, 컴퓨터 구조의 큰 그림에 대해 알아보도록 하죠.
들어가기전, 우리가 어떤 지식들을 공부하는지 짚고 넘어갑시다.
컴퓨터 구조 지식은 크게 두가지로 나뉠 수 있습니다.
하나는 컴퓨터가 이해하는 정보이고, 다른 하나는 컴퓨터의 네 가지 핵심 부품입니다.
여기서 또 세분화 됩니다.
컴퓨터가 이해하는 정보에는 크게 데이터와 명령어로 나뉘며, 컴퓨터의 네 가지 핵심 부품은 CPU, 메모리, 보조기억장치, 입출력장치로 나뉩니다.
이를 정리 해보면 다음과 같습니다.
먼저 컴퓨터가 이해하는 정보를 살펴봅시다.
컴퓨터는 0과 1로 표현된 정보만 이해할 수 있습니다. 그리고 이렇게 표현되는 정보에는 크게 두 종료가 있는데,
그것이 바로 데이터와 명령어입니다.
명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료입니다.
이런 점에서 프로그램은 명령어들의 모음으로 정의되기도 합니다.
데이터, 컴퓨터가 이해할 수 있는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보.
흔히 우리는 컴퓨터와 주고받는 정보나 저장된 정보를 가리킬 때 데이터라고 통칭합니다.
이러한 데이터를 설명하기에는 글이 너무 길어지니 추후 개별적으로 따로 작성해보겠습니다.
명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보입니다.
데이터와 마찬가지로 개별적인 글로 추후 설명해보겠습니다.
요즘에는 다양한 형태, 종류로 컴퓨터가 존재합니다. 사용되는 용도와 제약 때문이겠지요.
하지만 외관과 용도를 막론하고 컴퓨터를 이루는 핵심 부품은 크게 다르지 않습니다.
산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 장치입니다.
인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 장치이지요.
정리하진 않았지만, 커널이라는 존재가 프로그램을 메모리에 올려 프로세스를 생성하고, 이를 CPU가 처리하게 됩니다.
한마디로 정의하자면 CPU는 컴퓨터의 두뇌입니다.
메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석, 실행하는 부품입니다.
조금 더 자세히 알아볼까요?
산술 연산과 논리 연산을 계산하는 디지털 회로입니다.
쉽게 말하면 계산기입니다.
오로지 계산만을 위해 존재하는 부품입니다. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행합니다.
프로세스 조작을 지시하는 장치입니다.
입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며, 데이터 처리를 위한 순서를 결정합니다.
컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호인 제어 신호(Control Signal)를 내보내어 제어하게 됩니다.
CPU 내부에 위치하는 매우 빠른 임시기억장치입니다.
직접적으로 연결되어 있기에 연산속도가 메모리보다 빠르다는 특징이 있습니다.
CPU는 자체적으로 데이터를 저장할 수 없기에 레지스터를 거쳐 데이터를 전달하게 됩니다.
앞서 컴퓨터가 이해하는 정보는 명령어와 데이터임을 학습했습니다.
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품입니다.
즉, 프로그램이 실행되려면 반드시 메모리에 올라가 있어야합니다.
저장된 명령어와 데이터의 위치는 정돈되어 있어야 합니다.
때문에 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(Address)라는 개념이 사용됩니다.
마치 현실에서 우리가 주소만 있으면 원하는 장소로 이동할 수 있는 것처럼 말이죠.
메모리에는 가장 큰 특징이 있습니다.
바로 휘발성이라는 특징입니다.
전워이 꺼지면 저장된 내용을 잃는다는 것이지요.
때문에 전원이 종료되어도 저장된 내용을 잃지 않는 저장 장치가 필요하게 되었는데,
이 저장 장치가 바로 보조기억장치입니다.
HDD, SSD, USB, DVD, CD 등이 보조기억장치의 일종입니다.
컴퓨터 내부와 정보를 교환하는 장치입니다.
키보드, 마우스, 마이크, 스피커 등이 여기에 해당하죠.
이렇게 컴퓨터 구조의 큰 그림을 살펴봤습니다.
이 글에서 서술한 내용을 컴퓨터 구조의 전부는 아닙니다.
DMA 컨트롤러, 타이머, 디바이스 컨트롤러 등 다양한 요소들도 있으며,
글을 작성하며 나왔던 인터럽트나 프로세스 등 중요한 개념 또함 포함되어 있습니다.
이에 대한 세부 사항은 차근차근 천천히 추후 서술해 볼 예정입니다.
다음에는 각 요소들이 어떻게 상호작용하는지 시스템 버스를 통해 알아보겠습니다.