컴퓨터의 기능은 프로그램 코드를 정해진 순서대로 수행, 즉 데이터를 읽고, 처리하고, 저장하는 것이다.
정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들이 일어나는 시간을 지정해주는 명령드의 집합.
시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있다.
컴퓨터 정보들의 전송 통로를 제공해 주고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들.
중앙처리장치(CPU)
- 프로세서
- 프로그랭 실행과 데이터 처리라는 중추적인 기능의 수행을 담당하는 요소
기억장치
- 주기억장치(main memory)와 보조저장장치(auxiliary storage device)로 나뉜다.
- 주기억장치는 cpu 가까이 위치하며, 반도체로 구성되어 있고, 저장 용량의 한계가 있다. 또한 영구 저장능력이 없기 때문에 일시적 저장장치로만 사용한다.
- 보조저장장치는 가격이 싼 대신, 읽기/쓰기 속도가 느리다. 하지만 영구 저장 능력을 가지고 있다. 대표적으로 하드디스크, 플래시 메모리, SSD, CD-ROM 등이 있다.
입출력장치(i/o)
- 컴퓨터와 사용자간의 상호작용을 위한 장치이며, 주변장치라고 부르기도 한다.
프로그램 코드에는 기계어, 어셈블리 언어, 고급 언어가 있다. 기계어는 기계 코드라고도 하며, 2진 비트들로 구성되어 있다. 어셈블리어는 고급언어와 기계어 사이의 중간언어로, 어셈블러로 번역되며 기계어와 일대일 대응된다. 마지막으로 고급언어는 C, JAVA 등 사람이 이해하기 쉽게 구성되어 있으며 컴파일러를 통해 기계어로 번역된다.
기계어는 'operation code'와 'operand'로 구성된다.
op code
- CPU가 수행할 연산을 지정해주는 비트
- 비트 수가 n개라면, 지정될 수 있는 연산의 최대 수는 2^n개 이다.
operand
- 연산에 사용될 데이터, 레지스터 개수 혹은 기억장치 주소 표시
- 비트 수가 n개라면, 2^n개의 레지스터 사용 가능하며 주소범위는 0 ~ 2^n-1 번지까지 가능
프로그램 코드와 데이터는 지정된 기억장소에 '단어(word)' 단위로 저장된다. 워드란, 각 기억 장소에 저장되는 정보의 기본 단위로서, cpu에 의해 한 번에 처리될 수 있는 비트들의 그룹을 말한다.
CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로를 버스라고 부른다. 버스에는 주소 버스, 데이터 버스, 제어 버스가 있다.
주소 버스
CPU가 외부로 발생하는 주소 정보를 전송하는 신호선들의 집합
단방향성으로, CPU에서 타 장치들로 정보를 보내는 역할만 수행가능하다.
데이터 버스
CPU가 기억장치 혹은 I/O장치와의 사이에 데이터를 전송하기 위한 신호선들의 집합
양방향성으로, 읽기와 쓰기 동작을 모두 지원한다.
제어 버스
- CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호선들의 집합
- 양방향성으로, 읽기와 쓰기 동작을 모두 지원한다.
기억장치 쓰기 시간은 CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간을 뜻하며,기억장치 읽기 시간은 주소를 발생한 시간부터 기억장치의 데이터가 CPU에 도착할 때까지의 시간을 뜻한다.
상태 레지스터를 우선 읽은 다음, 그 결과에 따라 데이터 레지스터에 접근하여 내용을 읽게 된다.
주요 부품 발전 과정
릴레이 -> 진공관 -> 트랜지스터 -> IC(반도체 직접회로)
컴퓨터 발전 과정
Blaise Pascal -> Leibniz -> Difference Engine -> Analytical Engine -> ENIAC -> IAS 컴퓨터
프로그램 코드들을 기억장치에 저장된 순서대로 실행하며, 그 주소는 CPU의 내부 레지스터인 프로그램 카운터에 의해 지정된다.