컴퓨터 구조

김철준·2023년 2월 12일
0

CS

목록 보기
2/2

컴퓨터 구조를 왜 알아야하는가?

내가 개발한 프로그램에 많은 유저수가 접속할 수도 있고 소수의 유저가 접속할 수도 있다. 또한 이들이 저장하는 데이터가 많을 수도 있고 적을 수도 있다.

유저에게 필요한 정보를 제공하고 이 정보들을 위한 데이터를 저장하기 위해서는 서버용 컴퓨터가 필요하다.

그리고 컴퓨터 성능과 용량에 따라 뒷받침할 수 있는 유저의 수와 데이터가 다르다.

이에 따라 개발자는 유저의 수와 데이터 양에 따른 컴퓨터 성능, 용량 등을 고려하여 적절한 컴퓨터 및 클라우드 서비스를 선택할 수 있어야한다.

때문에 컴퓨터 구조에 대해 지식이 있는 개발자는 여러 문제 상황에 대하여 문제 해결 방법에 대한 시야가 넓어질 수 있다.

만약 소스 코드가 문제가 없음에도 불구하고 컴퓨터별로 작동이 되지 않거나 컴퓨터 성능과 용량에 따라 문제가 발생했을 때에 컴퓨터 구조를 알고 있는 개발자는 이를 모르고 있는 개발자보다 상황을 해결할 수 있는 방법을 더 잘 알아낼 수 있다.

즉, 컴퓨터 구조에 대한 지식이 있는 개발자는 문제 해결력에 대한 범위가 넓어진다고 말할 수 있겠다.

그렇다면 컴퓨터 구조에 대해 알아보자.
컴퓨터 구조에 대해 알아보기 위해 컴퓨터 구조라는 말을 조금 더 구체화해보자.

그러기 위해서는 컴퓨터가 이해할 수 있는 정보가 어떤 것들이 있고 컴퓨터를 이루고 있는 주요 부품들이 무엇이 있는지 세분화하여 살펴보겠다.

혼자 공부하는 컴퓨터 구조와 운영체제 라는 참조하여 학습해보겠다.

컴퓨터가 이해하는 정보

우선 컴퓨터가 이해하는 정보가 무엇이 있는지 알아보자.

컴퓨터는 0과 1로 표현된 정보만을 이해한다.
그리고 이렇게 0과 1로 표현되는 정보에는 크게 두 종류가 있는데, 바로 데이터와 명령어가 있다.

컴퓨터는 데이터와 명령어의 집합이라고 표현할 수 있겠다.

데이터

컴퓨터가 이해하는 숫자,문자,이미지,동영상과 같은 정적 정보를 가르켜 데이터라고 한다.

즉, 숫자,문자,이미지,동영상과 같은 정보들도 0과 1로 이루어진 정보라는 것이다.

명령어

실질적으로 컴퓨터는 작동시키는 정보이다.
데이터들도 명령어를 통해 조합되고 실행된다.

우리가 터미널,명령 프롬프트에서 치는 명령어를 생각해보면 될 것이고 여러 디바이스에서 클릭하거나 검색하는 것도 다 명령어라고 생각하면 될 것이다.

즉, 모든 컴퓨터 프로그램 및 기능은 다 명령어로 구성되어있다고 생각하면 된다.

이렇게 컴퓨터는 데이터를 이용하여 명령어를 실행하는 구조를 가지고 있다.

컴퓨터의 네가지 핵심 부품

그렇다면 컴퓨터를 구성하고 있는 부품들은 어떤 것들이 있을까?
컴퓨터를 구성하는 부품에는 크게 4가지 핵심부품들이 있다.
이번 포스팅에서는 부품들에 대하여 간략하게만 알아보고 추후에 하나씩 자세히 다뤄보겠다.

  1. 메모리
  2. CPU
  3. 보조기억장치
  4. 입출력장치

메모리(RAM)

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

메모리는 크게 RAM과 ROM으로 두 가지가 있는데 메모리라는 용어는 주로 RAM이라고 지칭한다.

CPU라는 장치는 메모리에 있는 명령어와 데이터를 가져와 연산하여 컴퓨터를 작동하게 하는데 이 때 명령어와 데이터들이 메모리에서 중구난방으로 있다면 CPU는 효율적으로 연산하지 못한다.

때문에 메모리에서 명령어와 데이터들은 각각이 주소를 가지고 있다.
각 명령어들은 정해진 주소를 가지고 있어 CPU는 주소를 통해 체계적으로 메모리를 가져올 수 있다.

CPU

CPU는 컴퓨터에 관심없는 사람도 많이 들어봤을 것이다.
CPU는 컴퓨터의 뇌라고도 불리는데 메모리에 저장되는 명령어를 가져와 해석하고 실행하는 부품이다.

CPU의 구성요소는 크게 3가지가 있다.
1. 산술연산논리장치(ALU)
2. 레지스터
3. 제어장치

1. 산술연산논리장치(ALU)

ALU는 쉽게 말해 CPU에서 연산 역할을 하는 부품이다. 쉽게 말해 ,계산기라고도 할 수 있으며 주역할이 연산이다.

CPU가 연산을 하는데 있어서 ALU가 대부분을 도맡아서 한다.

2. 레지스터

레지스터는 CPU 내부의 작은 임시 저장 장치이다.
CPU가 명령어를 연산하는데에 있어서 필요한 데이터들을 임시적으로 저장해놓는 곳이다.

메모리에서 가져오면 되는데 왜 레지스터에서 가져올까?
CPU와 메모리까지 거리가 멀어 필요한 데이터가 있을 때마다 메모리에서 가져오면 연산 속도가 느려져 컴퓨팅 속도가 느려진다.
레지스터에 데이터를 등록해놓으면 빠르게 데이터를 가져올 수 있다.
예를 들어, 우리가 요리를 한다고 치자. 김치찌개랑 계란말이를 할것인데 레지스터에서 가져온다고 치면 마트에서 김치,파,계란말이를 한꺼번에 장을 봐서 요리를 할 수 있다.
하지만 메모리에서 가져온다고 가정하면 김치를 장을 봤다고 집에 오고 또 파를 장보러 마트로 갔다가 집에 오고 또 계란을 사러 마트에 갔다가 집에 와야한다.
이러면 요리를 비효율적으로 할 수 밖에 없다.

3. 제어장치

제어장치는 CPU가 여러 부품들에게 보내는 제어 신호를 보내고 명령어를 해석할 수 있는 장치이다.

여기서 제어신호란 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기신호이다.

  • CPU가 메모리에 저장된 값을 읽고 싶을 때, 메모리에 읽기 신호를 보낸다.
  • CPU가 메모리에 값을 저장하고 싶을 때, 메모리에 쓰기 신호를 보낸다.

위처럼 CPU는 크게 3가지 부품으로 이루어져있고 각 부품들이 역할을 연계함으로써 동작된다.

보조기억장치

보조기억장치는 컴퓨터 전원이 종료되어도 보관될 프로그램,데이터들을 저장할 장치이다.

앞서 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다고 했지만 컴퓨터가 종료된다면 명령어와 데이터들은 다 삭제된다.

때문에 종료되어도 이 프로그램 데이터들을 보관할 장치가 필요했는데 이 장치가 바로 보조기억장치이다.

보조기억장치의 예로서는 우리가 흔히 알고 있는 하드디스크,USB,SSD와 같은 것들이 있다.

메모리는 현재 실행되는 프로그램의 명령어,데이터들을 저장하고 보조기억장치는 보관될 프로그램의 명령어,데이터들을 저장한다고 정리하면 될 것 같다.

입출력장치

입출력장치는 마우스,키보드,스피커,모니터와 같이 컴퓨터 외부에서 연결되어 컴퓨터 내부와 정보를 교환하는 장치이다.

마우스 클릭,키보드 타자 입력과 같이 외부 입력을 통해 컴퓨터 내부로 명령어를 전달하고 데이터를 저장할 수 있고 스피커와 모니터 같이 컴퓨터 내부에서 외부로 명령어와 데이터들 전달하여 소리로 표현하고 시각적으로 데이터들을 표현해줄 수 있다.

메인보드와 시스템버스

위에서 언급한 4가지 핵심부품들은 큰 틀에서 메인보드와 연결되어있다.
그리고 메인보드에서 버스라는 것을 통하여 핵심부품들이 서로 연결되며 상호작용한다.

버스중에서도 여러 버스가 있지만 이 4가지 부품을 서로 상호작용할 수 있게 해주는 것은 시스템 버스라는 것이다.

이 시스템 버스는 주소 버스,제어 버스,데이터 버스로 이루어져있다.
주소 버스는 주소를 주고 받는 버스이고 제어 버스는 제어 신호를 주고 받는 버스이며 데이터 버스는 데이터를 주고 받는 버스이다.

각 부품들이 위 3가지 버스를 통해 메모리의 주소, 제어신호,데이터들을 교환할 수 있다.

profile
FE DEVELOPER

0개의 댓글