컴퓨터 구조

학습 목표

  • 컴퓨터 구조를 왜 알아야 하는지 이해한다.
  • 컴퓨터 구조의 큰 그림을 그려 본다.

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


핵심 키워드 : 문제 해결 성능/용량/비용


문제 해결

문법적인 오류가 아닌 상황에서 컴퓨터 구조를 이해하고 있다면, 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다.

성능, 용량, 비용

컴퓨터 구조를 이해하면 문법만으로는 알기 어려운 성능, 용량, 비용을 고려하며 개발할 수 있다.


컴퓨터 구조의 큰 그림


핵심 키워드 : 데이터 명령어 메모리 CPU 보조기억장치 입출력장치 시스템 버스


우리가 알아야 하는 컴퓨터 구조 지식은 크게 두 가지다.

하나는 컴퓨터가 이해하는 정보, 다른 하나는 컴퓨터의 네 가지 핵심 부품이다.


컴퓨터가 이해하는 정보

컴퓨터는 0과 1로 표현된 정보만을 이해한다. 바로 데이터와 명령어이다.

  • 데이터 : data, 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보
  • 명령어 : instruction, 데이터를 움직이고 컴퓨터를 실질적으로 작동시키는 더 중요한 정보

컴퓨터의 4가지 핵심 부품

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

바로 중앙처리장치(CPU), 주기억장치(메모리), 보조기억장치, 입출력장치이다.

[그림] 컴퓨터 핵심 부품
  • 메모리(주기억장치)
    • 현재 실행되는 프로그램(⭐️)의 명령어와 데이터를 저장하는 부품
    • 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함
    • 저장된 값에 빠르고 효율적으로 접근하기 위해 주소라는 개념이 있음
      • 메모리에 저장할 수 있는 데이터와 명령어가 무수히 많은데, 원하는 메모리와 명령어가 있는 위치를 특정할 수 있는 것

💡) 주기억장치의 종류
주기억장치에는 크게 RAM(Random Access Memory)와 ROM(Read Only Memory)가 있다.
메모리라는 용어는 보통 RAM을 지칭한다.

  • CPU(중앙처리장치)
    • 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품
    • 중요한 내부 구성 요소
      • 산술논리연산장치(ALU; Arithmetic Logic Unit)
        • 계산을 위한 회로들의 모임, 쉽게 말하면 계산기
        • 컴퓨터 내부에서 수행되는 대부분의 계산을 도맡음
      • 레지스터(register)
        • CPU 작은 임시 저장 장치
        • 프로그램 실행하는 데 필요한 값들을 임시로 저장
        • 여러 개의 레지스터가 존재하고, 각기 다른 이름과 역할을 가짐
      • 제어장치(CU; Control Unit)
        • 제어 신호(control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치
        • 제어 신호 : 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
- CPU가 메모리에 저장된 값을 읽고 싶을 땐, 메모리를 향해 메모리 읽기라는 제어 신호 보냄
- CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보냄
  • 보조기억장치
    • 메모리를 보조하여, 보관할 프로그램을 저장하는 부품
    • 하드 디스크, SSD, USB메모리, DVD, CD-ROM 등

💡) 메모리를 보조한다?
메모리에는 두 가지의 약점이 있다.

  • 비싼 가격으로 저장 용량이 적음
  • 전원이 꺼지면 저장된 내용을 잃음

    실행 중인 프로그램들은 메모리에 저장된다. 하지만 메모리는 전원이 꺼지면 저장된 내용이 날아간다.

    이로 인해, 메모리보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요하게 됐다.
  • 입출력장치
    • 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
  • 메인보드와 시스템 버스
    • 메인보드 : 마더보드(mother board), 컴퓨터의 핵심 부품들이 연결되어 있는 판
    • 버스 : bus, 메인보드에 연결된 부품들끼리 서로 정보를 주고받을 수 있는 통로
      • 시스템 버스(⭐️) : system bus, 컴퓨터의 4가지 핵심 부품을 연결하는 가장 중요한 버스

💡) 시스템 버스의 구성

  • 주소 버스 : address bus, 주소를 주고 받는 통로
  • 데이터 버스 : data bus, 명령어와 데이터를 주고받는 통로
  • 제어 버스 : control bus, 제어 신호를 주고받는 통로

💡) 시스템 버스 자세히 이해하기
CPU가 메모리를 읽을 땐 제어 신호만 보내지 않는다.
1. 제어 버스로 '메모리 읽기' 제어 신호를 보내고,
2. 주소 버스로 읽고자 하는 주소를 내보낸다.
3. 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보낸다.

메모리에 어떤 값을 저장할 때
1. 데이터 버스를 통해 메모리에 저장할 값을,
2. 주소 버스를 통해 저장할 주소를,
3. 제어 버스를 통해 '메모리 쓰기' 제어 신호를 내보낸다.

profile
감성있는 개발자를 꿈꿔요

0개의 댓글