본문 바로가기
CS(Computer Science)지식/컴퓨터구조 및 운영체제

[컴퓨터 구조] 컴퓨터 구조 시작하기

by 엔지니어 청년 2024. 1. 29.

컴퓨터 구조를 알아야 하는 이유

컴퓨터 구조에 대한 지식의 역량이 개발자로서 업무를 수행하는데 필요하다는 것을 기업들도 알고 있기 때문에 각종 기술 면접에서 컴퓨터 구조에 관한 소양을 검증하거나 반드시 알아야 하는 분야로 명시하기도 EX) 삼성전자, 구글

뿐만 아니라 개발 관련된 상황에서 성능, 용량, 비용 문제는 프로그래밍 언어의 문법만 알아서는 해결하기 어렵습니다. 혼자만 사용하는 프로그램을 만들 때는 이러한 문제를 생각조차 해 본 적이 없을 수도 있습니다. 즉, 컴퓨터 구조를 이해하면 입력과 출력에만 집중하는 개발을 넘어 성능, 용량, 비용까지 고려하며 개발하는 개발자가 될 수 있다.

컴퓨터 구조의 큰 그림

  1. 가장 큰 사각형은 메인보드입니다.
  2. 메인보드 안에 시스템 버스(양방향 수직 화살표)가 있습니다.
  3. CPU 내부에는 ALU(산술논리연산장치), 제어장치와 여러 레지스터가 있다.
  4. 메모리는 메인보드 내 시스템 버스와 연결되어 있습니다.
  5. 보조기억장치는 메인보드 내 시스템 버스와 연결되어 있습니다.
  6. 모니터, 키보드, 마우스 등은 메인보드 내 시스템 버스와 연결되어 있습니다. 이들을 입출력장치라고 부릅니다.

메모리

메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품입니다.

메모리에 명령어와 데이터가 중구난방으로 저장되어 있으면 안되기 때문에 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해서(address)라는 개념이 사용됩니다.

위 그림은 메모리를 이해하기 쉽게 그림으로 나타낸 것일 뿐 실제로는 이와 같이 저장되지 않습니다. 명령어와 데이터는 모두 0과 1로 표현되기 때문에 겉보기에는 마치 0과 1로 이루어진 데이터를 저장합니다.

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

CPU

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

CPU 내부 구성 요소를 알아야 합니다. CPU 내부 구성 요소 중 가장 중요한 세 가지는 산술논리연산장치:ALU:Arithmetic Logic Unit(이하 ALU), 레지스터(register), 제어장치(CU: Cotrol Unit) 입니다.

ALU는 쉽계 말해 계산기 입니다.. 컴퓨터 내부에 수행되는 대부분의 계산은 ALU가 도맡아 수행합니다.

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

제어장치제어 신호(Control Signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치입니다. 여기서 제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호입니다.

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

CPU를 구성하는 세 가지 부품의 역할을 실제 흐름이 어떻게 동작하는지 보면서 알아봅시다.

1.제어 장치는 1번지에 저장된 명령어를 읽어 들이기 위해 메모리에 "메모리 읽기" 제어 신호를 보냅니다.

2. 메모리는 1번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됩니다. 제어장치는 읽어 들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단합니다. 제어장치는 3번지와 4번지에 저장된 데이터를 읽어 들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보냅니다.

3. 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들을 서로 다른 레지스터에 저장됩니다. ALU는 읽어 들인 데이터로 연산을 수행합니다. 계산의 결괏값은 레지스터에 저장됩니다. 계산이 끝났다면 첫 번째 명령어의 실행은 끝납니다.

4. 제어장치는 2번지에 저장된 다음 명령어를 읽어 들이기 위해 메모리에 ' 메모리 읽기' 제어 신호를 보냅니다.

5. 메모리는 2번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됩니다. 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단합니다.

제어장치는 계산 결과를 저장하기 위해 메모리에 '메모리 쓰기' 제어 신호와 함께 계산 결과인 220을 보냅니다. 메모리가 계산 결과를 저장하면 두 번째 명령어의 실행도 끝납니다.

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

보조기억장치

메모리 보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장장치가 필요한데, 이 저장 장치가 보조기억장치입니다.

하드 디스크, SSD, USB메모리, DVD, CD-ROM과 같은 저장 장치가 보조기억장치의 일종입니다. 메모리가 현재 '실행되는' 프로그램을 저장한다면, 보조기억장치는 '보관할' 프로그램을 저장한다고 생각하면 됩니다.

입출력장치

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

보조기억장치와 입출력장치를 '컴퓨터 주변에 붙어있는 장치'라는 의미에서 주변장치라 통칭하기도 합니다.

메인보드와 시스템 버스

컴퓨터의 핵심 부품들은 모두 메인보드라는 관에 연결됩니다. 메인보드마더보드라고도 부르지요,이는 메인보드 내부에 버스라는 통로가 있기 때문입니다. 메인보드 내부에는 다양한 종류의 통로, 즉 버스가 있습니다. 하지만 여러 버스 가운데 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스 입니다.

시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어 있습니다. 주소 버스는 주소를 주고 받는 통로, 데이터 버스는 명령어와 데이터를 주고받는 통로, 제어 버스는 제어 신호를 주고받는 통로이다.

제어 버스로 '메모리 읽기' 제어 신호를 내보내고, 주소 버스로 읽고자 하는 주소를 내보냅니다. 그러면 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보냅니다.

CPU는 데이터 버스를 통해 메모리에 저장할 값을, 주소 버스를 통해 저장한 주소를, 제어 버스를 통해 '메모리 쓰기' 제어 신호를 내보냅니다.

해당 글은 강민철 저자의 책 "혼자 공부하는 컴퓨터구조와 운영체제"를 참고하여 작성되었습니다. 저자에게 허락을 받아 책에 수록된 사진과 내용을 인용하여 내용을 정리하였습니다. 이에 따라 무단으로 배포하거나 도용하는 것은 금지됩니다.