컴퓨터 구조는 개발자에게 꼭 필요한 지식이다.
프로그램을 개발할 때는 성능, 비용, 용량을 고려해야 하고 문제를 해결할 때는 다양한 실마리를 제공하기 때문이다.
컴퓨터 구조는 크게 "컴퓨터가 이해하는 정보"와 "컴퓨터 핵심 부품 4가지"로 나눌 수 있다.
컴퓨터가 이해하는 정보에는 데이터와 명령어가 있다.
이 둘은 0과 1로 되어 있다.
데이터는 사진, 글과 같은 정적인 정보이며
명령어는 이 데이터를 가지고 하는 행위라고 할 수 있다.
컴퓨터의 두뇌
메모리에 저장된 명령어를 읽어 들여 해석하고 실행하여 결과를 메모리에 다시 저장하는 장치이다. 내부 구성 요소 중 가장 중요한 장치인 산술논리연산장치(Arithmetic Logic Unit), 레지스터, 제어장치의 각 역할에 대해서 알아보자.
주기억장치는 RAM과 ROM이 있는데 우리가 흔히 말하는 메모리는 RAM에 해당된다.
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
명령어와 데이터는 정돈된 위치에 저장되기 위해서 메모리는 주소라는 개념을 이용하여 명령어와 데이터를 저장한다.
보조기억장치는 메모리의 단점을 보완하기 위한 부품이다.
메모리는 전원이 꺼지면 저장된 데이터와 명령어가 사라지고 비싸기 때문에 용량이 작다.
이를 보완하여 보조기억장치는 전원이 꺼져도 데이터와 명령어가 보관되어져 있고 용량이 크다.
ex) CD-ROM, 하드디스트, USB
입출력장치는 마이크, 스피커, 마우스, 키보드와 같이 컴퓨터 외부에 연결되어 컴퓨터 내부와 데이터를 교환하는 장치이다.
메인보드는 마더보드라고도 불리며 메인 보드에는 앞서 설명한 컴퓨터의 핵심부품이 연결되어져 있다. 이 핵심부품들은 버스라는 통로를 통해서 데이터를 주고 받는다.
그 중에서 핵심 부품을 연결하는 가장 중요한 버스는 시스템버스이다.
시스템 버스는 3가지로 이루어져 있다.
제어장치가 "메모리 읽기"라는 제어신호를 제어 버스를 , 읽고자 하는 데이터 혹은 명령어의 주소를 주소 버스를 통해 메모리에 보낸다.
메모리는 제어버스와 주소 버스를 통해 받은 신호를 해석하여 해당 데이터 혹은 명령어를 데이터 버스를 통해서 제어 장치에 보낸다.
CPU는 데이터 버스를 통해 저장할 데이터를, 주소 버스를 통해서 메모리 어떤 위치에 저장할지를 메모리에 보내고 제어장치가 "메모리 쓰기" 제어신호를 제어 버스를 통해 메모리에 보낸다.