[CS] 컴퓨터 구조

김채운·2023년 9월 13일
0

CS

목록 보기
7/9

❗ 컴퓨터 구조의 중요성

컴퓨터 구조는 실력있는 개발자가 되기 위해서는 반드시 알아둬야 할 기본 지식이다. 코드 작성은 배우면 어떻게든 구현할 수 있게 된다. 하지만 코드에 문제가 생기고 그 문제가 단순히 코드의 문법적인 문제가 아니라 한다면 컴퓨터 구조를 몰랐을 때 그저 왜 작동하지 않는지의 이상으로는 생각하지 못하게 된다. 하지만 컴퓨터 구조를 이해하고 있다면 문제를 빠르게 진단할 수 있고 문제 해결의 실마리를 다양하게 추측해볼 수 있게 되고, 컴퓨터 내부를 들여다보며 더 좋은 해결책을 고민할 수 있게 된다. 그렇기 때문에 컴퓨터 구조 지식은 우리를 문법에 맞는 코드만 작성할 줄 아는 개발자를 넘어 다양한 문제를 스스로 해결할 줄 아는 개발자로 만들어 준다.

🖥️ 컴퓨터 구조

  • 컴퓨터가 이해하는 정보
  • 컴퓨터의 네 가지 핵심 부품

🧩 컴퓨터가 이해하는 정보

  • 컴퓨터는 오로지 0과 1로 표현된 정보만을 이해한다. 그리고 이런 정보에는 데이터와 명령어가 있다.

데이터

  • 컴퓨터와 주고받는 정보로 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 같은 정적인 정보를 데이터라하고, 컴퓨터에 저장된 정보를 가리킬 때 데이터라 칭하기도 한다.

명령어

  • 컴퓨터를 실질적으로 작동 시키는 정보.

🧩 컴퓨터 구조의 4가지 부품

📌 주기억장치 (메모리)

  • 주기억장치는 RAM(Random Access Memory)과 ROM(Read Only Memory) 두 가지가 있는데 메모리는 보통 RAM을 칭한다.
  • 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 프로그램이 실행되려면 반드시 저장되어 있어야 한다.
  • 저장된 값에 빠르고 효율적으로 접근하기 위해 주소라는 개념이 사용된다. 컴퓨터에서는 이 주소를 통해서 메모리 내에 내가 찾는 데이터의 위치에 접근할 수 있다.

📌 CPU (중앙처리장치)

  • 메모리에 저장된 명령어를 읽고, 읽어들인 명령어를 해석하고, 실행하는 역할을 하는 부품이다.
  • CPU의 구성 요소로는 ALU(Arithmetic Logic Unit)산술논리연산장치, 레지스터, 제어장치가 있다.
  • ALU는 이름대로 계산기의 역할을 하기 때문에 컴퓨터의 내부에서 수행되는 대부분의 계산을 도맡아 수행한다.
  • 레지스터는 CPU내의 작은 임시 저장 장치이다. 프로그램 실행시 필요한 값들을 임시로 저장해둔다.
  • 제어장치는 제어신호라는 전기 신호를 내보내고 명령어를 해석하는 장치이다. 제어신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호이다.

제어장치의 주요 역할

명령어 해석: 제어장치는 메모리에서 읽어온 명령어를 해석합니다. 명령어는 연산(계산), 저장(메모리 접근), 제어(프로그램 흐름 관리) 등의 다양한 기능을 수행할 수 있습니다.

명령어 실행: 제어장치는 해석된 명령어를 실행하기 위해 필요한 동작을 수행합니다. 예를 들어, 연산 명령어인 경우 해당 연산을 수행하고 결과를 레지스터(일종의 CPU 내부 기억 장소)에 저장할 수 있습니다.

메모리 접근 관리: 제어장치는 메모리에서 데이터를 읽어오거나 데이터를 메모리에 쓰는 작업을 관리합니다. 이는 RAM(랜덤 액세스 메모리)나 캐시 메모리와 같은 메모리 계층 구조를 통해 이루어집니다.

제어 흐름 관리: 제어장치는 프로그램 카운터(Program Counter)를 통해 현재 실행 중인 명령어의 주소를 추적하고, 명령어 실행이 완료되면 다음 명령어의 주소를 결정하여 프로그램의 흐름을 관리합니다.

입출력 관리: 제어장치는 입출력 장치와의 상호 작용을 관리합니다. 이를 통해 사용자와 외부 장치 간의 데이터 전송 및 통신이 이루어집니다.

예외 처리: CPU에서 예외(에러 또는 중단 요청)가 발생한 경우, 제어장치는 해당 예외를 적절하게 처리하고 예외 상황에 따라 적절한 동작을 수행합니다.

제어장치는 CPU의 핵심 부분 중 하나이며, 명령어의 실행 순서를 조정하고 하드웨어 자원을 관리하여 컴퓨터의 작업을 수행한다. 이러한 역할을 통해 컴퓨터는 다양한 작업을 수행하고 프로그램을 실행할 수 있다.

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

📌 보조기억장치

  • 앞서 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다고 했는데, 메모리에는 두 가지 단점이 있다. 첫 번째는 가격이 비싸 저장 용량이 적다는 점이고, 두 번째는 전원이 꺼지면 저장된 내용을 잃는다는 점이다.
  • 그래서 용량이 크고, 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요했고, 그게 바로 보조기억장치이다.(전원이 꺼져도 보관될 프로그램을 저장함.)
  • 보조기억장치의 종류로는, 하드디스크, SSD, USB 메모리, DVD, CD-ROM이 있다.

📌 입출력장치

  • 입출력장치로는 마이크, 스피커, 프린터, 마우스, 키보드등이 있고 이들은 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 말한다.

📌 메인보드외 시스템 버스

  • 위의 모든 컴퓨터 부품들은 모두 메인보드 판에 연결이 되어있다. 메인보드는 '마더보드'라고도 불린다. 메인보드에 연결된 부품들은 서로 버스라는 통로를 통해서 서로 정보를 주고받을 수 있다. 여러 버스중 컴퓨터의 네 가지 핵심 부품을 연결하는 중요한 버스는 시스템 버스이다.
  • 시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어있다. 주소는 주소를, 데이터는 데이터를 주고받는 토로이고 제어 버스는 제어 신호를 주고받는다.
  • 메모리에 어떤 값을 저장한다고 하면 CPU는 데이터 버스를 통해서 메모리에 저장할 값을 내보내고, 주소 버스를 통해 저장할 주소를, 제어 버스를 통해 '메모리 쓰기'제어 신호를 내보낸다.

0개의 댓글