우리가 알아야 할 컴퓨터 구조 지식은 크게 2가지이다.
하나는 '컴퓨터가 이해하는 정보'이고 또 하나는 '컴퓨터의 네 가지 핵심 부품'이다.
이 두가지에 대해서 차근차근 알아보자
컴퓨터는 0과 1로 표현된 정보만을 이해한다.
이렇게 0과 1로 표현되는 정보에는 크게 2가지가 있는데 바로 데이터와 명령어이다.
컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 데이터라 한다.
명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보이다. 컴퓨터를 실질적으로 작동시키는 것은 명령어이다. 따라서, 컴퓨터는 '명령어를 처리하는 기계'라고도 표현할 수 있다.
즉, 명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료이다. 이런점에서 컴퓨터 프로그램은 '명령어들의 모음'이라고 정의되기도 한다.
컴퓨터의 핵심부품은 중앙처리장치(CPU), 주기억장치(Main Memory), 보조기억장치(Secondary Storage), 입출력장치(I/O Device) 로 볼 수 있다.
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.
이때, 컴퓨터가 빠르게 작동하기 위해서는 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다. 따라서, 메모리에는 저앚된 값에 빠르고 효율적으로 접근하기 위해 주소 라는 개념이 사용된다.
즉, 메모리에 저장된 값의 위치는 '주소'라는 것을 통해서 알 수 있다.
CPU는 메모리에 저장된 명령어를 읽어들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품이다.
CPU에는 대표적 내부 구성 요소인 산술논리연산장치(ALU), 레지스터, 제어장치가 존재한다.
쉽게 말해 계산기 이다. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행한다.
CPU내부의 작은 임시 저장 장치이다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다. CPU안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.
제어장치는 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치이다.
제어신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.
메모리는 휘발성의 특징을 가지고 있고, 가격이 비싸 용량을 많이 확보할 수 없다.(최근에는 기술이 발달되어 보완이 되고 있긴하지만 아직은 멀은 듯..)
따라서, 이러한 단점을 보완하기 위한 저장장치가 '보조기억장치'이다.
대표적으로는 HDD, CD-DISK, 플로피디스크, USB, RAID 등 존재한다.
입출력장치는 마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부의 정보를 교환하는 장치를 의미한다.
지금까지 알아본 CPU의 4가지 핵심부품들은 모두 '메인보드'라는 판에 연결된다.
메인보드에 연결된 부품들은 서로 정보를 주고받을 수 있는데, 이는 메인보드 내부에 '버스'라는 통로가 있기 때문이다.
컴퓨터 내부에는 다양한 버스가 존재한다. 위 4가지 핵심부품들은 '시스템 버스'를 통해 서로 연결된다.
시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어 있다.
주소 버스 : 주소를 주고받는 통로
데이터 버스 : 명령어와 데이터를 주고받는 통로
제어 버스 : 제어 신호를 주고받는 통로
예를 들어 CPU가 메모리에 적재된 명령어를 읽어 들이기 위해서는 제어장치에서 '메모리 읽기'라는 신호를 내보낸다.
이때, 제어장치는 제어 버스를 통하여 '메모리 읽기'라는 제어 신호를 내보내고, 주소 버스를 통하여 읽고자 하는 주소를 내보낸다. 그러면 메모리는 '데이터 버스'를 통하여 CPU가 요청한 주소에 있는 내용을 보낸다.
매일씩은 아니더라도 컴퓨터구조 기초에 대해서 정리해보고자 한다.
한 몇달간 블로그를 쉬었더니 공부를 제대로 하는지도 모르겠고, 내가 알고있는 지식들과 공부하고 있는 책의 내용들을 조합해서 정리해보고자 한다..
시리즈로 정리해볼테니 많관부! 😀