컴퓨터의 구성장치와 기본구조
컴퓨터의 구성
: 하드웨어와 소프트웨어로 구성
하드웨어
: 컴퓨터의 기계적인 장치
컴퓨터 정보들의 전송통로를 제공해 주고,
그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들
-
중앙처리장치 (CPU) : 컴퓨터 시스템 전체를 제어
- 레지스터 : CPU 내의
임시 저장
장치 (속도가 빠르나, 공간은 작다) - 연산장치 (ALU) :
산술 연산
(사칙연산),논리 연산
(참, 거짓 판별) 수행 - 제어장치 (Control Unit) : CPU 내부에서 일어나는 모든 작업 통제, 관리
(적절한 순서로 명령을 꺼내고 명령을 해석하여, 그 해석에 따라 컴퓨터 시스템의 적절한 부분으로 제어신호 전달)
- 레지스터 : CPU 내의
-
기억장치 (Memroy) : CPU가 실행할 프로그램과 데이터를 저장하는 장치
-
주기억장치
(RAM(휘발성), ROM(비휘발성)) : 컴퓨터 내부에서 데이터를 저장하거나 처리하기 위해 사용하는 것- CPU 가까이 위치하며 반도체 기억장치 칩들로 구성
- 고속 엑세스
- 가격이 높고 면적을 많이 차지 -> 저장 용량의 한계
- 영구 저장 능력 없어서 프로그램 실행 중 일시적으로만 사용
- 속도는 빠르지만 용량이 적고 비쌈
-
보조기억장치
(HDD, SDD, USB..) : 실제 보조적인 기억장치- 2차 기억장치
- 기계적인 장치가 포함되기 때문에 저속 엑세스
- 저장 밀도가 높고, 비트 당 비용이 저가
- 영구 저장 능력 : 디스크, 자기 테이프 등
-
-
입출력장치 (I/O device) : 사용자와 컴퓨터 간의 대화를 위한 도구
- 입력장치 (키보드, 마우스..)
- 출력장치 (모니터, 스피커..)
점점 소형화되고, 저전력화되고, 고성능화되고 있다.
- 기타 장치 : 전원공급장치, 냉각 송풍기등…
소프트웨어
-
정보들이 이동하는 방향, 정보 처리 종류를 지정해주고,
그러한 동작들이 일어나는 시간을 지정해주는 명령들의 집합 -
하드웨어의 동작을 제어하고 지시하는 모든 종류의 프로그램
시스템 소프트웨어 (OS)
- 컴퓨터를 효율적으로 사용하기 위해 만들어진 소프트웨어
- 컴퓨터 시스템을 제어하고 운영하는 프로그램
- 컴퓨터 친숙 프로그램 (언어 처리 프로그램)
응용 소프트웨어 (Application)
- 특정한
응용 분야
에 사용하기 위해 개발 - 사용자 친숙 프로그램 (유틸리티 프로그램)
컴퓨터 기본구조
- 컴퓨터는 (프로그램 코드 = 명령어)들을 정해진 순서대로 실행함
- 읽기 (Input) => 처리 (Processing) => 쓰거나 저장 (Output & Save)
버스 (Bus)
: 모든 장치는 버스라는 미세한 선에 이어져 있다.
- 주소 버스
- 데이터 버스
- 제어 버스
컴퓨터의 구조의 발전 과정
계산기의 발전 과정
-
수동식
계산기 : 주판- 기원전 3000 ~ 2500년 경 중국에서 개발
- 1980년대까지 사용
-
기계식
계산기- 파스칼라인 -> 가감승제 계산기 -> 차분기관과 분석기관 -> 천공카드 도표 작성기
-
전기기계식
계산기- 종이 테이프에 천공된 프로그램 명령어들에 의하여 작동, 제어되도록 설계
-
전자식
계산기- 아타나소프 - 베리 컴퓨터 (ABC computer)
- 순차적 방식과 2진법 체계 사용하는 진공관 방식
- 양자(0, 0 or 1, 1 : 3bit 체계같은 느낌) : 매우 빨라짐
컴퓨터의 발전 과정
-
ENIAC (1946)
- 미육군 탄도 연구소의 의뢰로 탄생
- 진공관 사용한 최초의 전자식 컴퓨터
- 무게도 크고, 부피도 커서 사용하기가 쉽지 않음
- 수식이 바뀌면 배선을 일일히 바꿔야하는 단점이 있다.
-
EDSAC (1949)
- 폰 노이만의 원리를 채택한 최초의 범용 전자 계산기
- 프로그램 내장 방식 (Stored-Program 개념) 적용
- 계산의 순서를 미리 기억, 실행 시 순서대로 해독하여 계산
- 기억장치에 어떤 명령어를 삽입하는가에 따라 범용성 증가
-
UNIVAC (1951)
- 상업용 컴퓨터
-
EDVAC (1952)
- 폰 노이만이 ENIAC을 개선
- 프로그램 내장 방식과 2진법을 채택한 컴퓨터
세대별 컴퓨터의 역사 : 세대를 구분하는 것은 소자(어떤 부품을 사용했는지)다
-
제1세대 (1946 ~ 1956) : 기계어, 어셈블리어 이용, (운영체제 없음)
- 데이터의 저장과 처리에
진공관
사용 - 주기억장치에 자기 드럼 사용
- 천공 카드 사용
- 냉각장치 필요
- 수명이 짧음, 부피가 크고, 전력소모 많음
- 하드웨어에 중점
- 프로그램은 기계어를 사용하여 작성
- 과학 계산, 통계, 집계
- 에니악 (ENIAC) : 세계 최초의 전자식 진공관 컴퓨터 (육군의 탄도 궤도 계산을 위해 등장)
(단점 : 큰 덩치에 엄척난 전력 소모, 새로운 수식 반영시 연결선 재배치로 많은 시간 소모) - 에드박(EDVAC) : 프로그램 내장 방식을 최초로 도입한 컴퓨터로 폰 노이만이 개발(1950)
(1세대 범용 컴퓨터 : IBM사에서 701이라는 모델명을 가진 상업용 컴퓨터 출시)
- 데이터의 저장과 처리에
-
제2세대 (1957 ~ 1964) : FORTRAN, COBOL, ALGOL 이용
- 회로소자로
트랜지스터
사용 - 작업 제어 언어 (JCL) 등장
- 초기 일괄 처리 (Batch Process) 시스템의 효시 : 다중 프로그래밍 가능
- 한 작업으로부터 다른 작업으로의 전환을 자동적으로 처리
- 주기억장치에는 접근 시간이 짧은 자기 코어를 이용
- 보조기억장치로 용량이 큰 자기 드럼, 자기 디스크 사용
- 입출력장치로는 자기 테이프, 종이 카드 사용 (입출력 제어 시스템 제공)
- 컴파일러 사용
- 입출력 채널 대두
- 생산 관리, 원가 관리
- 회로소자로
-
제3세대 (1965 ~ 1979) : PASCAL, LISP, 구조화된 언어 이용
- 컴퓨터에
IC칩
을 사용함으로써 중앙처리장치는 소형화되는 반면 기억 용량은 커짐 - 다양한 소프트웨어를 구사할 수 있는 기능이 크게 개선됨
- 관리 프로그램과 처리 프로그램 및 사용자 프로그램 등의 소프트웨어 체계가 확립됨
- 다중 모드 시스템 등장 (다중 처리, 다중 프로그래밍) : 일괄 처리, 시분할 처리, 실시간 처리등을 제공
- 가상 기억 장치, 공유 시스템 개발
- 여러 사용자들의 프로그램을 동시에 주기억장치에 공존시키며, CPU를 작업들 간에 수시로 번갈아 할당
- 시스템의 처리 능력을 증진시키기 위해 한 컴퓨터 시스템에 여러 개의 프로세스(process)들이 사용
- 예측, 의사 결정
- 운영체재 개발
- IC 개발 : 인텔사는 최초의 초소형 전자 회로인 Intel 4004 마이크로 프로세서 개발 (1971)
(한 번에 4자리 숫자의 정보 처리)
(손톱만한 크기의 몇 볼트의 전력만을 사용)
- 컴퓨터에
-
제4세대 (1980 ~ 현재) : ADA, 문제 중심 언어 이용
- 고밀도
집적회로
(LSI), 초고밀도 집적회로(VLSI) 사용 - 컴퓨터 네트워크와 온라인 (Online) 처리 기법 사용
- 마이크로 프로세서 등장으로 PC 개발 촉진
- 편리한 사용자 시스템 (User Friendly System)들이 개발
- 연산 속도는 초대형 컴퓨터인 경우 피코(10⁻¹²) 초에 이르고 있음
- 네트워크 관리
- 데이터베이스 관리
- 지식정보 처리
- 인공지능
- 로봇
- 고밀도
-
제5세대 (미래)
- 사용 소자 중심이 아닌 얼마나 인간다운 컴퓨터가 될 것인가로 이후부터 세대를 구별
- 인간 지능화 시대
- 사고하는 감각을 지닌 컴퓨터
- 처리 속도의 초고속화 (4세대의 약 10~100배 속도)
-
바이오 칩이나 광소자를 이용한 칩의 실현
-
컴퓨터 시스템의 구성 (하드웨어, 지식 중심 언어, 인공지능 소프트웨어, 코드화된 지식베이스)
- 제 5세대 컴퓨터용 하드웨어의 특징
- 초고속 장치
- 다중 프로세서를 사용한 병렬처리 컴퓨터 시스템
- 논리적 추론을 지원하는 연산 기능이 필요함
- 논리 프로글밍, 인공지능 기법, 병렬 처리 개념을 내포하는 추상적인 언어가 제공되어야 함
컴퓨터의 분류
파이프라인 슈퍼 컴퓨터
- 하나의 CPU 내에 다수의 연산 장치를 포함 (산술연산)
- 각 연산 장치는 고도의 파이프 라이닝 구조를 이용하여 고속 벡터 계산이 가능
파이프 라이닝 : 한 명령의 처리시간 동안에 다른 명령들을 중첩시켜서 수행하는 것
<노멀>
[----][----][----][----][----]
[읽기] [명령1]
[해석] [명령1]
[실행] [명령1]
[기록] [명령1]
<파이프라인>
[----][----][----][----][----]
[읽기] [명령1] [명령2][면령3][명령4]
[해석] [명령1][명령2][명령3]
[실행] [명령1][명령2]
[기록] [명령1]
<슈퍼 스칼라>
파이프라인 * 2
-> 두대의 파이프라인을 두고 동일하게 사용
파이프 라인
: 여러개의 명령을 시간차를 두고 실행을 중첩시키는 것
슈퍼 스칼라
: 동시에 다수의 명령을 파이프라인에 집어넣는 것
대규모 병렬 컴퓨터
- 프로세서들이 하나의 큰 작업을 나누어서 병렬로 처리하는 구조
- 다수의 프로세서들이 여러 개의 프로그램들 또는 한 프로그램의 분할된 부분들을 분담하여 동시에 처리하는 기술
- 컴퓨터시스템의 성능 향상을 위하여 가장 널리 사용되고 있는 방법