반응형
컴퓨터 구조의 발전 과정
컴퓨터의 역사
초기의 계산 도구
- 계산을 하는 도구로서 가장 간단한 것은 주판
- 기원전 약 3000년 전 고대 메소포타미아 인들이 가장 먼저 사용했다고 추정
기계식 계산기
- 톱니바퀴를 이용한 기계식 계산기 : 기어로 연결된 바퀴판들로 덧셈과 뺄셈 수행 (1642년, 파스칼)
- 1671년 라이프니츠는 이를 개량하여 곱셈과 나눗셈도 가능한 계산기를 발명
- 이후, 라이프니츠는 기계장치에 더 적합한 진법을 연구해서 17세기 후반에 2진법을 창안
- 차분 기관(difference engine) : 표에 있는 수들을 자동적으로 산술 연산(덧셈, 뺄셈)하고, 그 결과를 금속 천공기를 거쳐서 프린트하는 최초의 계산 기계를 설계(1823년, 찰스 배비지)
해석기관(analytical engine) : 네 가지 산술 연산 기능과 입력및 출력장치를 모두 갖춘 최초의 일반 목적용 계산기계 ( 1833년, 찰스 배비지)
- 오늘날 사용하는 컴퓨터의 기본 요소를 모두 갖춤
- 프로그래밍 가능
- 프로그램 언어 사용
- 프로그램의 실행 순서 변경 가능
- 수의 부호 검사를 이용한 조건 분기
- 제어 카드를 이용한 실행 순서 변경
- 문제점 : 주요 부품들이 기계적 장치라 속도가 느리고 신뢰도가 낮았음
전기 기계식 계산기
- MARK-I : 1944년 하버드 대학의 에이킨이 개발
- 찰스배비지의 해석 기관을 실현
- 미해군의 탄도 계산 등 수많은 수학이나 과학 문제를 해결하는 데 공헌
전자식 계산기
- 에니악(ENIAC, Electronic Numerical Integrator And Computer) : 진공관을 사 용한 최초의 전자식 컴퓨터(1946년, 에커트와 모클리)
- 에드삭(EDSAC, Electronic Delay Storage Automatic Calculator) : 10진수 체계 와 프로그램 내장 방식의 계산기(1949년, 윌키스)
- 에드박(EDVAC, Electronic Discrete Variable Automatic Computer) : 2진수 체계와 프로그램 내장 방식을 적용(1951년, 폰 노이만)
- 유니박(UNIVAC, UNIVersal Automatic Computer) : 최초의 상용 컴퓨터, 인구 조사통계국에 설치(1951년, 에커트와 모클리)
- 컴퓨터의 발전 과정에 있어서 진공관 및 프로그램 내장 방식의 사용은 근대에서 현대로 넘어오게 되는 분기
컴퓨터 구조의 발전 과정
주요 부품들의 발전 과정
릴레이(relay) ------> 진공관 --------> 트랜지스터 ---------> 반도체집적회로(IC)
- 집적 회로(Integrated Circuit, IC) : 수만 개 이상의 트랜지스터들을 하나의 실리콘 반도체 칩에 집적시킨 전자 부품
- 발전과정에서 개선된 특성
- 처리속도향상
- 저장용량증가
- 크기감소
- 가격하락
- 신뢰도향상
직접 회로 사용에 따른 이점
- 회로들이 근접 -> 전기적 통로가 짧아짐 -> 동작 속도가 크게 상승
- 컴퓨터 크기의 감소
- 칩 내부에서 회로들 간의 상호연결 -> 부품들의 신뢰도 향상
- 전력소모 감소 -> 냉각 장치의 소형화
- 컴퓨터 가격 하락
컴퓨터의 세대 분류
1 세대 컴퓨터
- 진공관을 사용함에 따라 컴퓨터 크기가 매우 크며, 열 발생량이 많고 전력 소모가 큼
- 폰 노이만(von neumann)이 제안한 프로그램 내장의 개념을 도입
- 수치계산, 통계등에 사용
- 컴퓨터 언어는 기계어와 어셈블리어를 사용
- 대표적인 컴퓨터: ENIAC, EDSAC, EDVAC, UNIVAC
2 세대 컴퓨터
- 트랜지스터를 사용함으로써 컴퓨터는 더 고속화되고, 기억 용량이 늘었으나 소형화
- 자기 드럼이나 자기 디스크 같은 대용량의 보조 기억 장치가 사용
- 운영체제의 개념을 도입
- 온라인 실시간 처리 방식을 도입
- 다중 프로그래밍 기법을 사용
- 과학계산, 일반 사무용으로 사용됨
- 소프트웨어 개발에 주력한 시기로, 사용된 언어로는 FORTRAN, ALGOL, COBOL 등
3 세대 컴퓨터
- 직접회로를 기본 회로 소자로 사용
- 캐시(cache) 기억 장치가 등장
- 패밀리(family) 개념의 출현에 따라 프로그램의 호환성 제공
- 시분할 처리를 통해 멀티프로그래밍을 지원
4 세대 컴퓨터
- 마이크로프로세서가 개발
- 가상 기억 장치의 개념이 도입
- 컴퓨터 네트워크가 발전
- 개인용 컴퓨터(PC)가 등장하여 대중화
- 온라인 실시간 처리 시스템이 보편화 및 기존 시스템에 비해 빠른 처리 속도를 갖춤
5 세대 컴퓨터
- 5세대는 아직 명확하게 구분되지 않음
- 부품의 집적도보다는 시스템 규모 또는 인공지능과 같은 획기적인 응용 소프트웨어의 출현에 의해정의될 가능성이 있음
- 후보 기술들
- 인공지능기반 응용 프로그램
- 고도화된 다중 프로세서를 사용한 병렬 처리 컴퓨터
- 양자 컴퓨터(quantum computer)
- 초전도체 기술
- 광 컴퓨터(optical computer)
- 비 폰 노이만(non-von neumann) 컴퓨터 구조 기반 컴퓨터
- 신경망 컴퓨터(neural computer)
컴퓨터의 시스템의 분류 : 1. 개인용 컴퓨터
개인용 컴퓨터 (Personal Computer, PC)
- 특징
- 개인이 소유하여 범용적으로 활용할 수 있는 저가의 소형 컴퓨터
- 수십 년 전의 대형 메인프레임 컴퓨터의 성능을 능가
- 주요 발전 동향
- 1970년대 후반에 처음 등장한 이래로 성능이 개선된 새로운 마이크로프로세서들의 등장에 따라 PC의 성능은 계속 향상
- 8 - 비트, 16- 비트, 32 - 비트 CPU 사용으로 단어 길이 증가
- 64-비트 단위의 데이터 처리 및 기억장치 주소 사용 PC들도 출시 중
- 프로세서가 다수의 명령어 실행 유니트들 혹은 CPU 코어들을 포함하는 슈퍼 스칼라, 듀얼 - 코어 및 멀티 - 코어 구조로 발전
- 칩의 집적도가 높아지면서 주변 요소들이 CPU 칩 내부에 포함됨에 따라, 속도와 신뢰도가 크게 향상
- GPU(Graphic Processing Unit)를 계산보조장치로 사용함으로써 고속 그래픽 처리 뿐 아니라 복잡한 과학기술 계산들도 높은 속도로 처리할 수 있음
- 주기억장치와 보조 저장장치의 용량 증가하고 있으며, 종류도 다양해지고 있음
- 종류(유형)
- 데스크탑(desktop) 컴퓨터, 노트북(notebook) 컴퓨터, 태블릿(tablet) PC 등
컴퓨터의 시스템의 분류 : 2. 임베디드 컴퓨터
임베디드 컴퓨터(Embedded Computer, 내장 컴퓨터)
- 기계 장치나 전자 장치들의 내부에 포함되어, 그 장치들의 동작을 제어(control)하는 컴퓨터들
- [예] 가전제품, 컴퓨터 주변기기 등
- 8-비트 마이크로컨트롤러(micro-controller)를 이용한 초소형부터 32-비트 컴퓨터에 이르기까지 다양
- 전용 컴퓨터로 최소의 비용으로, 필요한 만큼의 성능 제공
- 응용에 맞게 특수 설계된 하드웨어와 소프트웨어가 결합
- 초소형 휴대용 PC들은 내부 하드웨어가 간단하며, 성능 보다는 전력소모량과 크 기를 최소화하는 것이 설계상의 목표
- IoT(Internet of Things) 및 지능형 로봇의 핵심 요소로 사용되어 더욱 다양해 지고 보급도 확대될 전망
컴퓨터의 시스템의 분류 : 3. 서버급 컴퓨터
워크스테이션(workstation)
- 과학자, 공학자, 엔지니어, 애니메이터와 같은 전문직 종사자들이 개인용 컴퓨 터보다 더 우수한 성능을 요구하여 만들어진 컴퓨터
- CPU : 64-비트 마이크로프로세서 사용
- 고속 그래픽처리 하드웨어 포함
- 주요 응용: 3차원 동영상 처리, 시뮬레이션, 컴퓨터 이용 설계(CAD) 등
- OS : UNIX, LINUX
슈퍼미니컴퓨터(super-minicomputer)
- 시스템 구조 : 다중프로세서(multiprocessor) 구조
- CPU의 수: 20 ~ 30 개
- OS: UNIX, LINUX (multiprocessing, multi-user 지원)
- 서버(server)급 시스템의 다운사이징(downsizing)화 주도
- 하나의 대형컴퓨터를 이용한 중앙집중식 처리 방식에서 네트워크에 접속된 다수의 중 형급 컴퓨터 시스템들을 이용한 응용(혹은 용도)별로 구분하여 처리하는 방식으로 바 뀌어가는 현상
컴퓨터의 시스템의 분류 : 4. 메인프레임 컴퓨터
메인프레임 컴퓨터(mainframe computer)
- 중앙집중식 컴퓨팅을 위한 대형 컴퓨터
- 성능: 1초에 수십억 개의 명령어를 처리 가능
- 대용량 저장장치 보유
- 다중 I/O 채널을 이용한 고속 I/O 처리 능력 보유
- 대규모 데이터베이스 저장 및 관리용으로 사용
- 정부기관, 은행, 대형 인터넷포탈사이트 등에서 대규모 데이터베이스(빅데 이터) 저장 및 관리용으로 사용
컴퓨터의 시스템의 분류 : 5. 슈퍼컴퓨터
슈퍼컴퓨터(supercomputer)
- 현존하는 컴퓨터들 중에서 처리 속도와 기억장치 용량이 다른 컴퓨터들에 비하여 상대적으로 월등한 컴퓨터 시스템들
- 분류 기준: 계속적으로 상승
- 최초의 슈퍼컴퓨터(CRAY-1)의 속도는 100 MFLOPS
- 최근의 슈퍼컴퓨터들의 속도는 PFLOPS급(수백만 배 향상)
- 주요 응용 분야들
- VLSI 회로 설계, 항공우주공학, 천문학(일기 예보), 구조 공학, 유전 탐사, 핵공학, 인공지능, 입체 영상처리 등과 같은 대규모 과학 계산 및 시뮬레이션
- 분류
- 파이프라인 슈퍼컴퓨터(pipeline supercomputer)
- 대규모 병렬컴퓨터(massively parallel processing system)
- 클러스터 컴퓨터(cluster computer)
구조적 특징에 따른 슈퍼컴퓨터의 분류
파이프라인 슈퍼컴퓨터(pipeline supercomputer)
- 초기의 슈퍼컴퓨터 구조
- 하나의 CPU내에 다수의 연산장치들이 포함
- 각 연산 장치는 고도로 파이프라이닝 되어 있어서 매우 높은 계산 능력을 가짐
- 복잡한 초고속 연산회로들이 포함하여 고속 벡터 계산을 수행
- 초고속 CPU들을 여러 개 연결하여 구성
대규모 병렬컴퓨터(massively parallel processing system, MPP)
- 상호연결된 수만 혹은 수십만 개 이상의 범용 프로세서들로 구성
- 많은 수의 프로세서들이 하나의 큰 작업을 분할하여 동시에 처리하는 병렬 처리(parallel processing) 기술 이용
- 프로세서들 간의 통신 시간을 줄이는 것이 중요
클러스터 컴퓨터(Cluster Computer)
- 고속 LAN이나 네트워크 스위치에 의해 서로 연결된 PC들 혹은 워크스테 이션들의 집합체
- 클러스터 미들웨어(Cluster middleware)를 이용하여 노드(단위 PC 혹은 워 크스테이션)들에 포함된 모든 자원들을 단일 시스템 이미지(Single System Image: SSI)로 통합
- 한 노드의 사용자는 전체 클러스터 컴퓨터를 하나의 시스템으로 간주하고 사용함
- 저렴한 가격으로 고성능 고신뢰 병렬컴퓨팅 환경 구축 가능
- 어떤 노드에서 고장이 발생하더라도 다른 노드가 해당 기능을 대신 수행하게 됨
- 대형 웹서버 및 슈퍼컴퓨터 설계 개념으로 널리 사용중
- 2018년 기준 슈퍼 컴퓨터들 중의 80% 이상에서 클러스터 컴퓨터를 기본 아키텍 처로 채택
폰 노이만, 하버드 구조
폰 노이만 구조(Institute for Advanced Studies, IAS 컴퓨터)
- 주기억장치에 프로그램과 데이터를 넣고 차례로 인출하여 처리하는 방식
- 폰 노이만 구조의 프로그램 처리 과정
- 1. 프로그램 카운터를 이용해 메모리에서 실행할 명령어를 인출
- 2. 제어 장치는 이 명령어를 해독
- 3. 명령을 실행하는 데 필요한 데이터를 메모리에서 인출하여 레지스터에 저장
- 4. 산술 논리 연산 장치는 명령을 실행하고, 레지스터나 메모리에 결과를 저장
-
- 폰노이만 구조의 근본적인 설계 개념과 동작 원리가 현대의 컴퓨터들과 거의 같음
폰 노이만 병목 현상
- 폰 노이만 구조의 컴퓨터는 CPU에서 명령어나 데이터를 메모리에서 가져 와 처리한 후, 결과 데이터를 메모리에 다시 보내 저장
- 저장된 데이터가 필요할 땐 다시 메모리에서 CPU로 불려오는 방식으로 순 차적으로 프로그램을 처리
- 메모리나 시스템 버스에 병목 현상이 생겨 속도가 느려짐
폰 노이만 구조와 하버드 구조
- 폰 노이만 구조는 구조적으로 시스템 버스에 병목 현상이 발생
- 하버드 구조는 폰 노이만 구조의 단점을 보완한 개념
- 명령어 메모리 영역과 데이터 메모리 영역을 물리적으로 분리
- 각각을 다른 시스템 버스로 CPU에 연결함으로써 명령과 데이터를 메모리로부터 읽는 것을 동시에 처리
- 그러나 하버드 구조는 비싸고, 공간도 많이 차지하며, 설계가 복잡
- 최근 CPU 설계에서는 폰 노이만 구조와 하버드 구조 양자의 구조를 도입 중