CS(Computer Science)/Computer Architecture

[컴퓨터 구조] 1. 컴퓨터 구조 Overview

seunghwaan 2023. 6. 16. 11:25
반응형

컴퓨터 구조의 큰 그림

 

컴퓨터 구조는 컴퓨터가 이해하는 정보컴퓨터의 네 가지 핵심 부품으로 이루어져있다.

[ 컴퓨터가 이해하는 정보 ]

컴퓨터는 0과 1로 표현된 정보만을 이해하며, 0과 1로 표현되는 정보에는 크게 데이터명령어가 있다.

 

데이터 -> 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보. 컴퓨터와 주고받는 정보나 컴퓨터에 저장된 정보를 말함.

 

명령어 -> 데이터를 움직이고 컴퓨터를 작동시키는 정보. 컴퓨터를 실질적으로 작동시키는 더 중요한 정보이며, 데이터는 명령어 없이는 아무것도 할 수 없는 정보 덩어리이다. 즉, 컴퓨터를 한마디로 표현하자면 "명령어를 처리하는 기계"이다.

 

ex) 1과 2를 더하라. -> 1과 2는 데이터, '더하라 1과 2를'는 명령어.

ex) '안녕하세요'를 화면에 출력하라. -> '안녕하세요'는 데이터, '화면에 출력하라. 안녕하세요를'은 명령어.

 

즉, 명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료이다.

이런 점에서 컴퓨터 프로그램은 '명령어들의 모음'이며 컴퓨터 구조를 학습하는 데 있어 데이터보다 더 중요한 개념이라고 할 수 있다.

 

[ 컴퓨터의 4가지 핵심 부품 ]

 

세상에는 다양한 종류의 컴퓨터가 존재한다. 아두이노, 라즈베리 파이, 스마트폰, 노트북, 데스크톱, 서버 컴퓨터에 이르기까지 크기와 용도가 제각각이다.

 

하지만 외관과 용도를 막론하고 컴퓨터를 이루는 핵심 부품은 크게 다르지 않다.

 

컴퓨터의 네 가지 핵심 부품

 

컴퓨터의 핵심 부품은 중앙처리장치(CPU), 주기억장치(main memory(이하 메모리)), 보조기억장치(secondary storage), 입출력장치(input/output(I/O) device)이다.

 

메인 보드 -> 가장 큰 사각형

시스템 버스 -> 메인보드 안의 양방향 수직 화살표

CPU -> 내부에는 ALU(산술논리연산장치), 제어장치와 여러 레지스터가 존재. 또한, CPU는 메인보드 내 시스템 버스와 연결됨.

메모리 -> 메인보드 내 시스템 버스와 연결됨.

보조기억장치 -> 메인보드 내 시스템 버스와 연결되어 있음.

입출력장치 -> 모니터, 키보드, 마우스 등은 메인 보드내 시스템 버스와 연결되어 있으며 이들을 입출력장치라고 부름.

 

메모리

메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품. 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.

 

메모리

 

이때, 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터가 중구난방으로 저장되어 있으면 안되고, 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다.

 

그래서, 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address)라는 개념이 사용된다.

 

메모리 주소

 

위 그림은 1번지와 2번지에 명령어, 3번지와 4번지에 데이터가 저장되어 있고, 5번지와 6번지에는 아무것도 저장되어 있지 않은 상태의 메모리를 표현한 예시이다.

 

물론 이것은 메모리를 이해하기 쉽게 그림으로 나타낸 것일 뿐 실제로는 이와 같이 저장되지 않는다. 또한, 명령어와 데이터는 모두 0과 1로 이루어지기 때문에 겉보기에는 마치 0과 1로 이루어진 데이터를 저장한 것 처럼 보인다.

 

즉, 아래 세가지만 기억하면 된다

 

  • 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.
  • 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.
  • 메모리에 저장된 값의 위치는 주소로 알 수 있다.

CPU

CPU는 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행하는 부품이다. 즉, 컴퓨터의 두뇌이다.

 

CPU

 

 

CPU의 역할과 작동 원리를 구체적으로 이해하기 위해서는 CPU 내부 구성 요소를 알아야 한다.

 

CPU의 주요 내부 구성 요소 세 가지는 산술논리연산장치(ALU: Arithmetic Logic Unit), 레지스터(register), 제어장치(CU: Control Unit)이다.

 

ALU -> 계산만을 위해 존재하는 부품이다. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행한다. 쉽게 말해 계산기이다.

 

레지스터 -> CPU 내부의 작은 임시 저장 장치이다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다. CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.

 

제어장치-> 제어 신호(control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치이다. 여기서 제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다. 제어 신호에 대해서는 추후 설명한다.

 

CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보낸다.

CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보낸다.

 

즉, 아래 세 가지만 기억하면 된다.

  • CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치이다.
  • CPU 내부에는 ALU, 레지스터, 제어장치가 있다.
  • ALU는 계산하는 장치, 레지스터는 임시 저장 장치, 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치다.

 

보조기억장치

위에서 설명했던 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다고 했지만, 이 메모리는 두 가지 치명적인 약점이 있다.

 

메모리의 단점

1. 가격이 비싸 저장 용량이 적다.

2. 전원이 꺼지면 저장된 내용을 잃는다

 

이에 메모리보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 바로 보조기억장치이다.

 

 

하드 디스크, SSD, USB 메모리, DVD, CD-ROM과 같은 저장 장치가 보조기억장치의 일종이다. 컴퓨터 전원이 꺼져도 컴퓨터 파일에 파일이 남아 있었던 이유는 우리가 파일을 보조기억장치에 저장했기 때문이다.

 

메모리가 현재 '실행되는' 프로그램을 저장한다면, 보조기억장치는 '보관할' 프로그램을 저장한다고 생각해도 된다.

 

입출력장치

입출력장치는 마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치이다.

 

 

일반적으로 하드 디스크, USB 메모리, CD-ROM과 같은 보조기억장치와 이 입출력장치를 '컴퓨터 주변에 붙어있는 장치'라는 의미에서 주변장치(Peripheral device)라고 말한다. 다만, 보조기억장치는 모니터, 마우스, 키보드와 같은 일반적인 입출력장치에 비해 메모리를 보조한다는 특별한 기능을 수행하는 입출력장치이다.

 

메인보드

지금까지 위에서 설명한 컴퓨터의 핵심 부품들은 모두 메인보드라는 판에 연결된다. 메인보드는 마더보드라고도 부른다. 메인보드에는 앞서 소개한 부품을 비롯한 여러 컴퓨터 부품을 부착할 수 있는 슬롯과 연결 단자가 있다.

 

버스 -> 메인보드에 연결된 부품들이 서로 정보를 주고 받을 수 있는 통로. 컴퓨터 내부에는 다양한 종류의 버스가 있다.

 

시스템 버스 -> 네 가지 핵심 부품을 연결하는 가장 중요한 버스. 시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어 있다. 주소 버스는 주소를 주고 받는 통로, 데이터 버스는 명령어와 데이터를 주고 받는 통로, 제어 버스는 제어 신호를 주고받는 통로이다.

 

CPU가 메모리 속 명령어를 읽어 들이기 위해 제어장치에서 '메모리 읽기' 신호를 내보낸다고 했는데, 사실 CPU가 메모리를 읽을 땐 제어신호만 내보내지 않는다.

 

(1) 실제로는 CPU는 제어 버스로 '메모리 읽기' 제어 신호를 내보내고

(2) CPU는 주소 버스로 읽고자 하는 주소를 내보낸다.

(3) 그러면 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보낸다.

 

위 3가지 동작을 수행하면 메모리에서 읽을 수 있다.

 

그러면 메모리에 어떤 값을 저장할 때도 아래의 작업들을 수행한다.

 

(1) CPU는 데이터 버스를 통해 메모리에 저장할 값을 내보낸다.

(2) CPU는 주소 버스를 통해 저장할 주소를 내보낸다.

(3) CPU는 제어 버스를 통해 '메모리 쓰기' 제어 신호를 내보낸다.

 

위 3가지 동작을 수행하면 메모리에 저장된다.

 

References

혼자 공부하는 컴퓨터 구조 + 운영체제, 강민철 (2022)

반응형