- 이 글은 김종현님의 저서인 Computer Architecture를 보고 정리한 내용입니다
컴퓨터시스템의 개요
컴퓨터의 기본 구조(Basic Architecture of Computer)
컴퓨터는 프로그램 코드들을 정해진 순서대로 실행(execute)하는데, 그 과정에서 (1) 필요한 데이터를 읽어서(read) , (2) 처리(processing)하고, (3) 결과를 저장(store)한다
-
이러한 기능들을 수행하는 컴퓨터 하드웨어는 여러 요소들이 상호 연결되어 구성된다 [p.16 그림 1-2 참조]
그러한 구성 요소들의 주요 기능을 살펴보면
-
먼저 중앙처리장치(Central Processing Unit: CPU)는 ‘프로그램 실행’과 ‘데이터 처리’라는 중추적인 기능의 수행을 담당한다
-
**CPU, 프로그램 실행과 데이터 처리를 담당하는 핵심 요소로서, 프로세서(processor)라고도 부른다
CPU는 프로세서(Processor)라고 불리기도 하며, 사실상 컴퓨터의 성능을 대부분 결정하게 된다
-
예를 들어, CPU가 한 번에 처리하는 데이터의 길이(비트 수)에 따라 32-비트 컴퓨터 혹은 64-비트 컴퓨터 등으로 분류된다
-
컴퓨터의 이론적인 처리 속도는 CPU의 속도에 의해 결정된다(실제 속독는 시스템 내 다른 요소들의 영향을 받아서 약간 더 낮아지게 된다)
CPU가 처리할 프로그램 코드들과 데이터는 기억장치(memory: 혹은 저장장치(storage device)에 저장
-
기억장치는 특성과 속도 및 용도에 따라 주기억장치와 보조저장장치로 나누어진다
주기억장치(main memory)는 CPU 가까이에 위치하며 반도체 기억장치 칩(semiconductor memory chip)들로 이루어져 고속 엑세스가 가능하다
-
그러나 가격이 높고 면적을 많이 차지하기 때문에 저장 용량에 한계가 있다
-
또한 영구 저장 능력이 없기 때문에 프로그램 실행 중에 일시적으로만 사용되는 기억장치이다
보조저장장치(auxiliary storage device: 2차 기억장치(secondary memory)라고도 함)는 하드 디스크(hard disk)나 CD-ROM 과 같은 영구저장 능력을 가진 기억장치들을 말한다
-
저장 밀도가 높고 비트당 가격이 낮지만 기계적인 장치가 포함되기 때문에 속도가 느리다
-
보조저장장치는 주변장치(peripheral device)로 분류되기도 하는데, 그 이류는 CPU에 의해 직접 엑세스되지 못하고 입출력장치들과 마찬가지로 별도의 제어기(Controller)를 통하여 엑세스되기 때문이다
-
이 장치들은 사용자와 컴퓨터간의 대화를 위한 도구라고 할 수 있는데, 키보드와 모니터 화면 및 프린터 외에도 다양한 장치들이 계속 개발되고 있다
-
이들은 CPU와 직접 데이터를 교환할 수 없으며, 각 장치마다 별도의 제어기가 있어서 CPU로부터의 명령을 받아 장치의 동작을 제어하고 데이터를 이동시키는 일을 수행한다
-
**입출력장치(I/O device), 사용자와 컴퓨터간의 상호작용(interaction)을 위한 장치