티스토리 뷰

반응형

https://velog.io/@zenon8485/%EB%B9%84%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-CS-%EC%A7%80%EC%8B%9D-1.-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0%EC%9D%98-%EC%9D%B4%ED%95%B4

 

비전공자를 위한 CS 지식: 1. 컴퓨터 구조의 이해

비전공자 출신 개발자와 개발자와 협력(기획, 운영)하시는 분들이 최소한의 컴공 지식을 갖추고 개발자와 원활한 소통을 하기위한 포스트입니다.컴퓨터 구조 지식은 크게 2가지로 하나는 컴퓨

velog.io

https://www.youtube.com/watch?v=JqH7yCeu2Us&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=3

 

유튜브에도 나와있으니 공부하시는 분들을 위해 남겨둡니다.

초심으로 돌아가서 다시 정리하는 개념입니다.

 

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

똑같은 구조를 짤 때도 성능, 용량, 비용을 고려한 개발을 할 수 있다.

그러기 위해서는 컴퓨터의 근간을 알아야 한다.

 

문제 해결

실제로 사용자에게 배포를 했는데 동작이 안되는 경우.

문제를 해결하기 위해서 미지의 대상에서 분석의 대상으로 바꾼다.

 

성능, 용량, 비용

웹사이트를 만든다면 서버 컴퓨터를 고를 때 어떤 기준으로 골라야 하는지 모를 수 있다.

클라우드 서비스를 이용해도 개발자가 어떤 비용을 지불해야 할지 알고 있어야 한다.

 

컴퓨터 구조는 결국 성능, 용량, 비용에 대한 이야기이다.

프로그래밍 언어의 문법만으로는 해결하기 어려운 이야기이다.

 

 

컴퓨터 구조의 큰 그림

 

컴퓨터 구조는 컴퓨터가 이해하는 정보와 컴퓨터의 네 가지 핵심 부품으로 이루어져있다.

이 중 컴퓨터가 이해하는 정보는 데이터와 명령어로 나뉘어진다.

 

데이터

숫자, 문자, 이미지, 동영상과 같은 정적인 정보.

컴퓨터와 주고받는 / 내부에 저장된 정보

0과 1로 숫자나 문자를 표현

 

명령어

컴퓨터는 결국 명령어를 처리하는 기계다.

명령어는 컴퓨터를 실질적으로 움직이는 정보이고, 데이터는 명령어를 위한 재료이다.

 

한마디로 요리라는 어떤 행동을 하기 위해서 어떤 재료를 가지고 올 수 있느냐가 다르다.

1과 2를 더하라. 1과 2는 데이터. 더하라는 명령어.

 

컴퓨터의 네 가지 핵심 부품

CPU, 메모리, 보조기억장치, 입출력장치

 

중앙처리장치, 주기억장치, 보조기억창지, 입출력장치라고도 부른다.

 

메모리에는 RAM과 ROM이 있다.

여기서는 메모리를 지칭할때 주기억장치(메인 메모리)로서 RAM을 지칭한다.

동작시키는 데 더 중요해서 그렇다.

 

USB, SD 카드, SSD - 보조기억장치

프린터나 키보드 등 - 입출력장치

 

최종적으로 4가지 핵심 부품들을 부착할 수 있는 마더보드(메인보드)가 있다.

 

버스

정보를 주고 받을 수 있는 통로가 버스

그 중 가장 중요한 버스를 시스템 버스라고 한다.

4 가지 부품들끼리 통신할 수 있는 통로이다.

 

메모리

현재 실행되는 프로그램(프로세스)에 데이터와 명령어를 저장하는 부품

어떤 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 한다.

 

운영체제에서 페이징을 배우면 모든 명령어가 다 저장 될 필요는 없다는 걸 배운다.

 

실행되지 않은 프로그램들은 보조기억장치에 저장되어 있다.

 

메모리의 주소 

 

내가 원하는 데이터와 명령어가 어디에 저장되어 있는지 알기 위해서 사용하는 개념이 주소이다.

메모리에 저장된 값의 위치는 주소로 알 수 있다.

 

 

CPU

ALU : 산술 논리 연산 장치 (계산기)

레지스터 : CPU 내부의 작은 저장장치

제어장치 : 제어 신호를 내보내고, 명령어를 해석하는 장치

 

제어신호는 컴퓨터의 부품을 관리하는 전기 신호(메모리 읽기, 메모리 쓰기)

각각 읽기, 저장할 때의 전기신호이라고 이해하면 된다.

 

CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치다.

 

간이 동작방식

1. CPU의 제어장치가 가장 먼저 메모리를 향해 제어 신호를 쏜다.

2. 메모리는 명령어를 CPU에 가져다 주기 위해 레지스터에 있는 저장장치로 보낸다.

3. 레지스터로 읽어들인 데이터와 명령어를 제어장치가 해석한다.

4. 그러면 제어장치가 메모리에 제어 신호를 다시 한번 메모리 읽기로 써서 메모리에서 필요한 데이터를 가지고 온다.

5. 필요한 데이터까지 레지스터로 가지고 왔다면, 제어장치가 해석을 하고 ALU가 연산을 실행

6. ALU는 연산을 수행한 값을 레지스터에 담는다.

7. 저장하라는 명령어도 메모리에 있기 때문에, 그것 자체도 제어장치가 읽는다.

8. 제어장치가 해석하고 저장하라는 명령어가 있으면 메모리 쓰기 신호로 메모리에 결과값을 반환한다.

 

보조기억장치

메모리는 보조기억장치에 비해 비싸다.

메모리는 무엇보다 휘발성이다. 전원이 꺼지면 데이터를 전부 읽는다.

전원이 꺼져도 저장할 수 있는 저장장치가 등장한 것이 보조기억장치

 

메모리는 실행할 정보를 저장하고, 보조기억장치는 보관할 정보를 저장한다.

메모리를 보조하는 특별한 입출력장치.

 

입출력장치

보조기억장치와 입출력 장치의 차이: 딱 잘라 구분되는 정보는 아니다.

그냥 주변장치라고 통칭하기도 한다.

 

메인보드

정보를 주고 받을 수 있는 버스가 있는 보드.

가장 중요한 통신을 주고 받을 수 있는 통로(척추)가 시스템 버스이다.

 

나무로 따지자면 기둥(시스템 버스)이 있고, 가지(버스)가 있는 것과 마찬가지.

 

시스템 버스

시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 나뉘어져 있다.

 

주소 버스 : 주소가 돌아다니는 통로

데이터 버스 : 명령어와 데이터를 주고 받는 통로

제어 버스 : 제어 신호를 주고 받는 통로

 

사실 CPU의 메모리 읽기 과정에서 주소 버스와 제어 버스에 동시에 신호를 쏴준다.

그러면 데이터 버스를 통해 레지스터로 저장되는 과정

 

메모리 쓰기도 마찬가지로 전체 버스가 동작한다.

 

 

반응형