[혼공컴운] 01-2 컴퓨터 구조의 큰 그림

devholic (David)·2023년 5월 6일
0
post-thumbnail

컴퓨터 구조

컴퓨터 구조는 크게 컴퓨터가 이해하는 정보컴퓨터의 네 가지 핵심 부품으로 구분된다.

컴퓨터가 이해하는 정보

가장 먼저, 컴퓨터가 이해할 수 있는 언어는 어떤 것이 있을까? 바로 0과 1로 이루어진 2진수이다.
이 2진수로 이루어진 정보는 또다시 데이터명령어로 구분된다.

데이터

데이터란, 컴퓨터가 이해할 수 있는 숫자, 문자, 이미지와 같은 정적인 정보를 뜻한다.

명령어

이와 달리 명령어는 데이터를 움직이고 컴퓨터를 작동시키는 역할을 한다. 데이터는 명령어가 없다면 아무 쓸모가 없게 된다!

데이터는 명령어를 위한 일종의 재료 역할을 하는 정보이며, 명령어는 컴퓨터를 실질적으로 움직일 수 있게끔 하는 정보이다!

컴퓨터의 네 가지 핵심 부품

컴퓨터를 이루는 네 가지 핵심 부품은 CPU, 메모리, 보조기억장치, 입출력장치이다.

🧠 CPU (Central Processing Unit)

CPU는 메모리에 저장된 명령어를 읽어들이고, 해석하고, 실행하는 부품이다.

  • ALU (Arithmetic Logic Unit, 산술논리연산장치)컴퓨터 내부에서 수행되는 대부분의 계산을 담당한다.
  • 레지스터 (register)는 프로그램을 실행하는 데 필요한 값들을 임시로 저장하는 임시 저장 장치를 뜻한다.
  • CU (Control Unit, 제어장치)컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호를 내보내고 명령어를 해석한다.

🔋 메모리 (= 주기억장치)

본 책에서는 메모리를 학습할 때 RAM과 ROM 중에서 RAM만을 뜻합니다.

메모리는 현재 실행되는 프로그램 (process)의 명령어와 데이터를 저장하는 부품이다.
컴퓨터 프로그램은 데이터와 명령어로 이루어져 있는데, 즉 프로그램이 실행되기 위해서는 프로그램을 이루는 데이터와 명령어가 메모리 안에 있어야 한다는 것을 뜻한다.

또한 메모리 안에 저장되어 있는 데이터와 명령어는 일정한 규칙에 의해 정돈되어 있어야 한다. 때문에 메모리에서는 저장된 값에 빠르고 효율적으로 접근할 수 있도록 주소 (address)를 사용한다.

주소를 통해 내가 원하는 명령어와 데이터가 어디에 존재하는지 빠르게 파악할 수 있다!

💾 보조기억장치

보조기억장치는 메모리를 보조하기 위한 저장 장치를 뜻한다. 메모리는 전원이 꺼지면 저장된 내용이 날아간다. (즉, 메모리는 휘발성을 가지고 있다.)

보조기억장치는 전원이 꺼져도 보관될 프로그램을 저장하는 부품이다. 즉, 실행되지 않는 프로그램의 명령어와 데이터가 저장된다. 하드 디스크, SSD, USB 메모리 등이 그 예시이다.

⌨️ 입출력장치

입출력장치는 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품을 뜻한다. 모니터, 키보드, 마우스 등이 그 예시이다.

정보를 교환한다는 것 때문에 보조기억장치와의 구분이 잘 안될 수 있다고 생각할 수도 있는데, 실제로도 이 둘이 확실하게 분리되지 않은 경우가 존재하기도 한다. 다만 보조기억장치메모리를 보조한다는 보다 특별한 기능을 수행하는 입출력장치이다.

많은 전공 서적에서는 이 둘을 구분하여 서술하기에 구분해서 생각하도록 하되, 완전히 다른 부품은 아닌 것으로 생각하자!

대략적인 정보 교환의 흐름

지금까지의 내용을 토대로 대략적인 정보 교환의 흐름 (데이터 연산 후 저장)을 파악해보면 다음과 같다.

1️⃣ 제어 신호를 통해 메모리 읽기 신호 전송

CPU 내에 있는 제어 장치를 통해 메모리의 명령어을 읽겠다는 메모리 읽기 신호를 보낸다.

2️⃣ 메모리로부터의 값 전송 및 제어 신호 전송

신호를 받은 메모리는 CPU의 레지스터에 해당 명령어를 가져다준다. 이때 제어 장치는 해당 명령어를 해석하여, 3번지와 4번지의 데이터를 가져오기 위해 메모리 읽기 신호를 다시 보내 데이터를 가져오고자 한다.

3️⃣ ALU 연산 수행

2️⃣ 번의 과정과 비슷하게, 3번지와 4번지에 있는 값을 메모리로부터 받아오고 ALU가 이 둘의 연산을 수행한 뒤 결과값인 220을 레지스터에 저장한다.


🚌 메인 보드와 버스

메인 보드 (main board = mother board)는 이러한 컴퓨터의 핵심 부품들이 연결된 판을 뜻하며, 이들 간 서로 정보를 교환할 수 있도록 시스템 버스 (system bus)가 존재한다.

시스템 버스는 다음 세 가지 버스로 나뉘게 된다.

주소 버스 (address bus)

주소 버스는 주소를 주고받는 통로 역할을 한다.

데이터 버스 (data bus)

데이터 버스는 명령어와 데이터를 주고받는 통로 역할을 한다.

제어 버스 (conrtol bus)

제어 버스는 제어 신호를 주고받는 통로 역할을 한다.

제어 장치가 시스템 버스를 통해 신호를 보낼 때는 제어 버스로 신호 (메모리 읽기, 메모리 쓰기)를 보내고, 주소 버스로 읽고자 하는 메모리의 주소를 내보낸다. 그러면 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보내게 된다.


🔗 참고 자료


부족하거나 설명을 보완해야 할 것이 있다면 댓글 부탁드립니다 😃

profile
개발이 너무 좋아요

0개의 댓글