본문 바로가기
javascript

[프로그래밍기초] 컴퓨터는 명령을 내부적으로 어떻게 처리하는가

by jinbro 2017. 5. 4.

[왜 알아야하나]
- 메모리 관리 메모리 관리 말을 하는데 왜 필요한지 정확하게 알기위해 공부하기
- 비전공자로서 내부적으로 어떻게 돌아가는지 알면 더 도움이 될 것 같기에 공부하기
- 중요하지않다고 그냥 지나쳤던 것들이 중요한 순간이 오더라구... 그 순간이 바로 지금! 그래서 공부하기


[컴퓨터는 어떻게 이루어져있는가]
- 크게 보자면 하드웨어와 소프트웨어로 이루어져있음
- 하드웨어는 컴퓨터시스템의 물리적 부품을 뜻함(위키백과 하드웨어 설명 중)
- 소프트웨어는 명령어나 입력을 통해 하드웨어에 명령을 하고, 그에 따른 처리를 하도록 만듬 


[우리는 소프트웨어를 만드는 개발자]
- 소프트웨어 개발자는 소프트웨어를 만듬
- 웹 어플리케이션, 모바일 어플리케이션 등이 해당됨
- 기능만 잘 만드는 개발자가 아니라 효율적으로 개발할 줄 아는 개발자가 되기
- 효율적으로 개발한다는 것은 하드웨어 성능의 효율을 고려한다는 것, 그러기위해 하드웨어 내부 처리는 어떻게 이뤄지는지 알아보기


[컴퓨터의 하드웨어 그리고 명령어 내부 처리]
1) CPU(중앙처리장치)
- 쉽게 사람으로 비유하자면 두뇌에 해당함(생각, 판단)
- 비교와 연산을 담당하는 연산장치, 명령어의 수행 순서를 제어하는 제어장치, 레지스터(고속 임시 데이터 기억장소)로 이루어져있음
- 주기억장치로부터 명령어와 데이터를 읽어온 뒤 처리하여 명령어의 수행 순서를 제어함
- 중앙처리장치의 명령어 처리 흐름


- 명령어란? 연산 코드, 주소 필드(CPU가 실행할 연산과 명령어 처리 그리고 필요한 데이터의 저장 위치를 나타내는 주소값)

- 기억장치 : 명령어 및 데이터, 프로그램 저장, 중앙처리장치 : 기억장치에서 불러와 연산을 한 후 다시 기억장치로 그리고 출력장치
- 제어장치가 명령어 수행 순서 제어

2) 기억장치 
- 자료를 일시적으로 또는 영구히 보존하는 장치를 말함
- 기억장치에는 캐시메모리, 주기억장치, 보조기억장치 그리고 중앙처리장치 내에 있는 레지스터가 있음
- 속도 : 레지스터 > 캐시메모리 > 주기억장치 > 보조기억장치, 속도가 높을수록 저장공간이 작고 가격이 비쌈

2-1) 캐시메모리
- 중앙처리장치와 주기억장치 사이에 위치하는 메모리
- 중앙처리장치가 주기억장치에 접근할 때 중앙처리장치 접근 속도와 주기억장치가 받아들이는 속도 차이를 극복하기위한 메모리
- 캐시메모리가 주기억장치의 속도보다 5~10배 빠름 
- 캐시메모리는 주기억장치의 내용 중 일부만 저장
- 중앙처리장치는 처음 주기억장치에서 프로그램, 데이터를 가져오기 전 캐시메모리에 해당 정보가 존재하는지 검사한 후 동작을 수행함
- 캐시 삭제하라고 할 때 캐시가 이 캐시(캐시 메모리 내 정보 삭제 - 오래 전 정보가 캐싱되어있는 경우)

2-2) 주기억장치
- 실행중인 프로그램프로그램에 필요한 데이터를 임시 저장하는 역할(RAM의 용량)
- 주기억장치는 중앙처리장치와 직접 데이터를 주고받기위해 내부적으로 연결되어있음(버스라 함)
- 보통 메모리라하면 주기억장치를 말함
- 종류로는 RAM과 ROM이 있음
- RAM : 전원공급이 차단되면 저장된 데이터가 날아가는 휘발성 메모리, 정보 저장 위치에 관계없이 읽거나 쓸 수 있는 저장장치
- ROM: 읽기전용 메모리(Read Only Memory)이 있음

2-3) 보조기억장치
- 보조기억장치는 주기억장치보다 속도는 느리지만 많은 데이터를 영구적으로 보관할 수 있음
- 중앙처리장치가 보조기억장치에 직접적으로 접근하지못하기때문에 필요한 프로그램, 데이터를 주기억장치로 옮김
- 보조 기억장치 종류 :  HDD, SSD 등


[더 알아보기]
- 메모리에 어떻게 저장되는가(메모리 주소)


[참고자료]
1) 한빛아카데미 도서, 컴퓨터 사이언스 : https://goo.gl/FfcCDv
2) 위키백과, 하드웨어/소프트웨어/중앙처리장치/기억장치

3) 구글링 자료들 




댓글