Jost Do It.

그냥 IT해.

Study/컴퓨터공학

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 1 컴퓨터 구조 시작하기

그냥하Jo. 2022. 10. 14. 09:07
반응형

Chapter 1. 컴퓨터 구조 시작하기

 

 

 

 

요약

컴퓨터 구조를 왜 공부해야 하는지, 그리고 전반적인 큰 그림을 그려볼 수 있는 챕터였다.

 

 

 

 

 

 

내용 정리

 

01-1. 컴퓨터 구조를 알아야 하는 이유

  • 컴퓨터 구조는 실력있는 개발자가 되려면 반드시 알아야 할 기본 지식이다.

 

  • 컴퓨터 구조를 이해하면 문제해결 능력이 향상된다.
    • 개발할 때 문제없이 작동하던 코드가 실제 사용자들에게서는 동작하지 않을 수 있다.
    • 컴퓨터 구조를 이해하면 이런 문제 상황을 빠르게 진단할 수 있고 문제 해결 방법을 다양한 곳에서 찾아낼 수 있다.
    • 따라서 여러 채용 공고나 기술면접에서 컴퓨터 구조 내용을 숙지하고 있는지 질문하는 경우가 많다.

 

  • 목적에 맞는 컴퓨터의 성능과 용량을 파악하고, 최소의 비용으로 이를 설계할 수 있다.
    • 선택에 따라 비용이 달라진다. 따라서 주어진 비용 안에서 CPU, 메모리, 보조기억장치 등을 목적에 맞게 선택해야 한다.
      • 즉, 과하거나(Over-spec), 부족(Under-spec)하지 않는 적정한 양을 파악할 수 있어야 한다.
    • 이를 위해서 개발한 프로그램이 어떤 환경에서 잘 동작하는지, 최소, 최적의 컴퓨터환경은 어떻게 되는지 알 수 있어야 한다.

 

  • 컴퓨터구조를 이해하면 개발뿐 아니라 성능, 용량, 비용을 고려할 수 있는 개발자가 될 수 있다.
    • 컴퓨터 구조에서 배우는 내용은 성능, 용량, 비용과 직결되기 때문이다.

 

 

 

 

 

01-2. 컴퓨터 구조의 큰 그림

  • 컴퓨터 구조의 지식은 두가지로 나뉜다.
    • 컴퓨터가 이해하는 정보
    • 컴퓨터의 네 가지 핵심 부품

 

(1) 컴퓨터가 이해하는 정보

  • 컴퓨터는 0과 1로 표현된 정보만을 이해할 수 있다.

 

  • 따라서 컴퓨터에 입력되는 정보는 크게 두가지 종류로 나뉜다.
    • 데이터(Data)
    • 명령어(Instruction)

 

  • 데이터(Data): 컴퓨터가 이해하거나 표현해야 하는 정보로 숫자, 이미지, 동영상 등이 있다.

 

  • 명령어(Instruction): 컴퓨터를 작동시키는 정보로 데이터 처리, 연산 등을 할 수 있게 한다.
    • 명령어를 통해 컴퓨터를 실질적으로 작동시킨다고 할 수 있다.

 

(2) 컴퓨터의 네 가지 핵심 부품

  • 컴퓨터의 종류는 매우 다양하다.
    • 소형 컴퓨터: 아두이노, 라즈베리 파이 등
    • 스마트폰
    • 노트북
    • 데스크톱
    • 서버 컴퓨터

 

  • 하지만 대부분 컴퓨터의 내부에는 다음 4가지 핵심 부품들을 공통적으로 가지고 있다.
    • 중앙처리장치(CPU, Central Processing Unit)
    • 주기억장치(메모리, main memory)
    • 보조기억장치(secondary storage)
    • 입출력장치(I/O(Input/Output) device)

 

  • 그리고 각 부품들은 다음과 같이 서로 연결돼 있다.

컴퓨터 내부 구조도

  1. 먼저 메인보드가 존재한다.
  2. 메인보드에는 시스템 버스가 존재한다.
  3. CPU는 메인보드 내에 존재하며 시스템 버스와 연결돼 있다. CPU 내부에는 산술논리연산장치(ALU)와 제어장치, 여러 레지스터가 존재한다.
  4. 메모리도 메인보드 내에 존재하며, 시스템 버스와 연결돼 있다.
  5. 보조기억장치는 시스템 버스와 연결돼 있다.
  6. 여러 입출력 장치들도 시스템 버스와 연결돼 있다. 입출력장치는 모니터, 키보드, 마우스, 마이크 등 컴퓨터에 데이터를 입력하거나 컴퓨터로부터 데이터를 출력할 수 있는 장치들이다.

 

 

그러면 각 부품들을 살펴보자.

  • 메모리(Memory): 현재 실행되는 프로그램의 명령어, 데이터를 저장하는 부품
    • 프로그램을 실행하기 위해서 프로그램 정보가 메모리에 저장돼 있어야 한다.
    • 여기서 메모리 내 저장된 정보(값)이 어디있는지를 나타내는 주소(address)라는 개념이 사용된다.
    • 즉, 주소를 통해서 메모리의 원하는 위치에 접근하여 값을 저장하거나 가져올 수 있다.
    • 단점: 가격이 비싸서 저장단위당 비용이 크고, 전원이 꺼지면 저장된 내용이 사라진다.

 

  • CPU: 컴퓨터의 두뇌로, 메모리에 저장된 명령어를 읽고, 해석하고, 명령을 실행하는 부품
    • 내부 구성 요소: ALU(산술논리연산장치), 레지스터, 제어장치
    • ALU(Arithmetric Logic Unit): 계산을 위해 존재하는 부품으로 컴퓨터 내부에서 실행되는 대부분 계산을 수행
    • 레지스터(Register): CPU 내부의 임시 저장장치로 프로그램 실행에 필요한 값들을 임시로 저장함.
      • CPU 내부에 여러 레지스터가 존재하고, 서로 다른 이름과 역할을 맡고 있음. 대부분 용량은 작은 편임
    • 제어장치(CU, Control Unit): 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치
      • 제어 신호(Control Signal): 컴퓨터 부품들을 관리하고 작동시키는 일종의 전기 신호
      • CPU가 메모리에 저장된 값을 읽을 때 메모리 읽기, 메모리에 값을 저장할 때는 메모리 쓰기라는 제어 신호를 보낸다.

 

  • 보조기억장치: 메모리보다 전원이 크고, 전원이 꺼져도 저장된 내용을 저장하는 장치. 메모리를 보조하는 저장장치다.
    • 메모리가 "현재 실행되는 프로그램의 정보"를 가지고 있으면, 보조기억장치는 "프로그램으로부터 보관할 정보"를 저장한다고 이해
    • 종류: 하드 디스크, SSD, USB 메모리, DVD, CD-Rome 등 

 

  • 입출력장치: 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 주고받는 장치 
    • 보조기억장치도 입출력장치의 일종이라 볼 수 있다.
      • 종류: 마이크, 스피커, 프린트, 마우스, 키보드 등
    • 주변장치(Peripheral device): 보조기억장치 + 입출력장치

 

(3) 메인보드와 시스템 버스

  • 메인보드(Main board): 위의 핵심부품들을 포함해 여러 컴퓨터 부품들과 연결되는 판. 연결하기 위한 슬롯과 연결 단자들이 존재함.
    • 마더보드(Mother board)라고도 불림
    • 연결된 부품들은 메인보드 내부의 버스(bus)라는 통로를 통해 서로 정보를 교환할 수 있음.

 

  • 버스(bus): 부품들 간에 서로 정보를 주고받을 수 있는 통로
    • 정보 목적에 따라서 다양한 종류의 버스가 존재한다.
    • 특히 시스템 버스(system bus)가 핵심 부품을 연결하는 가장 중요한 버스이다.

 

  • 시스템 버스(System bus): 주소 버스 + 데이터 버스 + 제어 버스
    • 주소 버스(Address bus): 주소를 주고 받는 통로
    • 데이터 버스(Data bus): 명령어와 데이터를 주고 받는 통로
    • 제어 버스(Control bus): 제어 신호를 주고 받는 통로
      • CPU의 제어 장치는 제어 버스를 통해 제어 신호를 내보냄

 

 

메모리 읽기(Memory Read) 과정

메모리 읽기 과

1. CPU의 제어 장치에서 "메모리 읽기"라는 제어 신호를 제어 버스로 메모리에 내보냄. 

2. CPU는 주소 버스로 읽고자 하는 주소를 메모리로 내보냄.

3. 메모리는 데이터 버스를 통해 CPU가 요청한 주소에 있는 내용을 CPU로 보냄

 

 

메모리 쓰기 (Memory write) 과정

메모리 쓰기 과정

1. CPU에서 저장할 값을 데이터 버스를 통해 메모리로 내보낸다. 여기서 저장할 값에 대한 정보는 레지스터가 가지고 있다.

2. CPU에서 값을 저장할 주소를 주소 버스를 통해 메모리로 내보낸다.

3. CPU에서 "메모리 쓰기" 라는 제어 신호를 제어 버스를 통해 메모리로 보낸다.

 

 

참고

  • 주기억장치는 RAM(Random Access Memory)와 ROM(Read Only Memory)로 나뉜다.
    • 메모리는 보통 RAM을 지칭한다.

 

 

 

학습 후기

  • CPU가 다른 하드웨어간 데이터를 공유하면서 내부연산이 어떻게 처리되는지를 새로 알 수 있었다.
  • CPU 흐름 및 CPU와 메모리 간의 시스템 버스 흐름을 파악하였음.
반응형