컴퓨터의 정의와 역사

이현빈·2023년 3월 15일
0

CE blog

목록 보기
2/21

What is a Computer

컴퓨터의 정의는 여러 답변이 나올 수 있다. 이 중에서 가장 쉽게 정의를 내리자면 다음과 같다.
computer는 어떤 task를 수행하기 위한 program을 수행시킬 수 있는 전자적 기계장치이다.

정의를 더 쉽게 이해하기 위한 방법 중 하나는 비교를 하는 것이다.

computer vs calculator

먼저 공통점을 보자면 둘 다 계산을 할 수 있는 장치라는 것이다.
차이점은 computer는 기존의 operation을 조합해서 새로운 operation을 추가할 수 있다는 것이다.

History of computer

다음으로는 컴퓨터의 역사를 다룰 것이다. 쉽게 이해하기 위해 세대를 구분했으나 사람마다 견해가 다르고 딱 잘라지지도 않는 부분이라 구분이 거의 무의미하다. 추가로 최초 논쟁은 더 무의미하다. 새로운 기술은 과거의 기술과 개념을 조합해서 만든 것이라 언제 최초인지 정확하게 말하기는 어렵다.

조상님들

Atanasoff Berry Computer (ABC)

  • 1937~1942년에 개발
  • 세계 최초의 전자식 컴퓨터로 알려짐
  • 복잡한 수학계산 등에 사용된 것으로 알려짐

colossus

  • 1943~1945년 개발

  • Alan Turing이 만든 bombe와 그의 확률론적 방식에 영향을 받음

  • 독일군의 암호전신기인 Lorenz Chiper를 해독하기 위해 개발된 세계 최초의 프로그래밍(외장형)이 가능한 전자디지털 컴퓨터

  • 군사기밀이었기에 존재가 한참 뒤에 알려짐

  • Vacuum tube를 사용했고, 스위치 및 플러그를 이용한 프로그래밍을 지원

  • bombe: 에니그마 해독의 초기 단계에서 나타난 모델

Havard Mark I

  • 세계 최초의 전기 기계식(relay 사용) 컴퓨터

  • 1944년 IBM사에서 개발

  • 톱니바퀴로 가감산이 가능한 gear(치차식) 계산기의 극한으로 간 컴퓨터

  • relay: 전기적 즉 자동으로 작동하는 스위치

1st Generation

1st Generation 년도 및 특징

  • 1951~1959: Vacuum tube의 시대, 1945년 ENIAC의 등장부터라고 보기도 함
  • 최초의 디지털 전자식: vacuum tube 사용
  • Vacuum tube가 주 구성요소로 많은 전력소모와 발열과 함께 잦은 고장 발생
  • Memory

    수은지연회로 (mercury acoustic delay lines), William 관 및 Magnetic drum 등

  • 입력이 paper tape 및 punched cards(천공카드, 지금은 OMR 카드나 로또 용도로 사용)

    vacuum tube의 열로 인해 종이테이프가 탈 정도 였다고 함

  • milisecond 단위의 연산 속도
  • 과학 계산, 통계 처리, 미사일 탄도 계산에 이용
  • SW라는 개념이 없다고 봐도 되는 세대
  • 컴퓨터가 수행할 동작을 배선을 통해 만든 회로를 교체해야 하는 형태

    H/W: 컴퓨터를 구성하는 물리적 기계장치
    S/W: H/W를 운영하고 이용하기 위한 프로그램

1st Generation computer

ENIAC(Electronic Numerical INtegrator and Calculator)

10진수 체계, Vacuum tube(전자식)

  • 1946년 개발된 일반적으로 알려진 최초의 전자 디지털 컴퓨터
  • 오래 걸리는 복잡한 계산을 대체하기 위해 decimal(십진수)를 사용

EDSAC(Electronic Delay Storage Automatic Calculator)

  • 1949년 개발된 최초의 stored program computer
  • von Neumann의 von Neumann architecture를 체택하여 개발

EDVAC(Electronic Discrete Variable Automatic Computer)

  • 1952년 von Neumann이 제안한 stored program computer architecture를 체택하여 개발된 최초의 이진수(binary) 기반 컴퓨터

  • ENIAC은 회로를 통해 컴퓨터 동작을 지시하며 program이 내장되어 있지 않음

  • von Neumann이 컨설팅을 담당

  • von Neumann architecture
    stored program compute 구조로 현대 컴퓨터가 대부분 채택
    다음과 같은 세 부분으로 구성됨

    I/O device: data를 외부로부터 입력받고 처리 결과를 외부에 표시, 키보드, 모니터, 프린터 등
    memory: data와 program의 저장을 담당하며 storage를 포함함
    CPU: data를 program에 따라 처리 담당, Control Unitrhk ALU로 구성됨

    data와 program이 저장되는 memory가 동일하여 bottleneck 현상이라는 단점을 가짐. 이를 보완하기 위해 두 memory를 분리한 Havard architecture가 등장함. 현대는 CPU 내부에선 Havard architecture, 외부에선 von Neumann architeture를 적용한 구조가 많음

  • EDVAC을 기점으로 software라는 개념이 등장


UNIVAC(Universal Automatic Cimputer)

  • 1951년 개발된 최초의 상업용 컴퓨터

1952년 대통령 선거에서 매우 적은 sample만으로 정확히 당선자로 예측하는대 사용되어 유명해짐. 컴퓨터의 효용성을 대중에 크게 알린 사건임.

2nd Generation

2nd Generation 년도 및 특징

  • 1950년대 후반 ~ 1960년대 중반 쯤

  • 1949년에 개발된 Transistor가 주 구성요소임

  • 1세대보다 크기가 100분의 1 수준으로 소형화되고 생산단가가 낮아지면서 컴퓨터 보급이 원활해짐

  • memory

    magnetic core(자기코어, primary memory)
    secondary memory: magnetic tape(자기테이프), magnetic disc(자기디스크) 등

  • micro-second 단위의 연산속도

  • Operating System (OS)의 등장

  • batch processing(1950년대)이 주로 사용되었으나 multiprogramming(1960년대)의 개념도 등장

    batch processing이란 특정 시간에 다량의 데이터를 일괄적으로 처리하는 것을 의미함. 컴퓨터가 주어진 작업만 끝날 때까지 수행하게 되며 processor scheduling이라는 개념이 도입되기 전에는 거의 모든 작업이 batch processing이었음

  • machine languageassembler를 사용함

multiprogramming이란 I/O 처리로 CPU 연산이 필요하지 않으면 다른 프로그램에게 CPU를 사용할 수 있도록 해줌. 이전에는 한 프로그램이 끝날때까지 CPU를 점유하는 방식인 Uni-programming이 사용되었음

multiprogramming vs multitasking
multiprogramming은 CPU의 idle time(유휴 시간, CPU가 바쁘지 않은 시간의 양)을 줄이기 위해 도입된 개념
multitasking은 하나의 resource를 여러 process들이 공유하는 개념
resource에서 가장 중요한 것이 CPU이며 유사한 개념이지만 multiprogramming은 오직 단일 CPU의 idle time을 줄이기 위한 context changing에만 초점을 맞춘 것이고 multitasking은 multiprogramming에서 roundrobin sheduling algorithm과 같은 스케쥴링 알고리즘이 추가되어 여러 task를 수행하는 것처럼 보이기 위한 기술이다.

2nd Generation computer

TRADIC (TRAnsistorized Airborne DIgital Computer)

  • 1955년 transistor 기반 컴퓨터로 개발됨
  • 800여개의 transistor과 10,000여개의 게르마늄 수정정류기를 사용한 것으로 알려짐

TX-0(Transistorized eXperimental computer 0)

  • 1956년 미 해군의 후원으로 개발된 범용 transistor 기반 컴퓨터

LARC (Licermore Atomic Research Computer)

  • 1960년에 핵무기 개발 경쟁으로 개발된 슈퍼컴퓨터
  • 비용에 비해 성능이 만족스러운 것은 아니었다고 함

3rd Generation

3rd Generation 년도 및 특징

  • 1964~1971년대

  • Integrated circuit(IC, chip)가 주요 구성요소

    IC의 사용으로 높은 신뢰성과 처리속도와 용량을 보유한 컴퓨터가 작아질 수 있게 됨

  • UNIX의 등장(1960년대 후반): 현대적인 OS의 등장

    • UNIX는 현대 OS의 기본 개념을 수립한 OS로 가치가 있음
    • 최초로 Multi-tasking 및 다중사용자가 가능하게 됨
    • Time sharing system(시분할 시스템)으로 여러 teminal 지원이 가능해짐
  • nano-second의 연산속도

  • 컴퓨터에 family(개열) 개념이 일반화되면서 기종간 호환성이 커짐

  • IBM 360 (1964), CDC 7600, UNIVAC1108는 2세대로 기재되는 문헌도 있지만 여기서는 IC가 사용됐다는 점에서 3세대로 구분함

  • 1964년의 BASIC을 기점으로 SW 자체가 상용으로 팔리는 제품으로 인정받기 시작함

3rd Generation computer

BASIC(Beginner's All-purpose Sy,bolic Instruction Code)

  • 1964년 교육용으로 개발됨

  • imperative language(명령형 언어)

  • interpreter 방식으로 시작됐으나 이후 compile도 도입됨

  • 이전까지는 computer를 사면 SW는 Bundle로 제공되는 게 일반적이었지만 SW만으로 돈을 주고 사야하는 제품이 등장함. 그 시기 중 초창기에 가장 유명한 SW 제품이 BASIC 인터프리터(MS의 첫 제품)이었음.


IBM 360

  • 1964년 개발된 범용대형컴퓨터(Mainframe)
  • 360은 360도를 의미하며 범용컴퓨터임을 강조함

    8bit에 해당하는 byte라는 개념과 byte 단위의 memory address, word의 개념과 같이 오늘날 컴퓨터 기술에서 표준인 여러 기술이 적용된 컴퓨터
    다중 사용자 접속을 제공했으며 많은 대학교와 연구소 등에서 사용됨


CDC(control Data Corporation) 7600

  • 1968년 개발된 슈퍼컴퓨터
  • 진정한 슈퍼컴퓨터로 인정받았으며 기존의 시스템보다 10배 이상 빠른 속도(1MFLOPS)와 6배 이상의 메모리 등을 가진 컴퓨터로 알려짐
  • 오늘날 슈퍼컴퓨터의 아버지로 불림

    오늘날 PC의 CPU도 몇 백 GFLOPS임

정보처리 속도 단위

  • FLOPS(Floating-point Operation Per Second)는 정보처리 속도 단위임
  • Mega-, Gifa 등의 prefix가 사용됨
  • 다른 단위로는 IPS(Instruction Per Second)로 초당 명령어 횟수임

사람은 LIPS(Logical Inference Per Second)로 적용할 수 있는데 보통 2LIPS 정도 가능
1LIPS는 대략 100~1000개의 instruction으로 구성된다고 알려짐

4th Generation

4th Generation 년도 및 특징

  • 1970년대 ~ 현대

  • LSI(Large Scaled integrated circuit)과 VLSI(Very Large Scaled integrated circuit)이 사용됨

  • 견해에 따라 오늘날의 컴퓨터는 5세대로 구분할 수도 있지만 여기서는 모두 4세대로 분류한다.

  • 오늘날의 CPU라 불리는 MIcro-processor가 등장한 세대인 동시에 PC(Personal computer)가 보급되기 시작한 세대임

    Inte14004(1981년에 개발된 최초의 Micro-processor, 4bit CPU)는 2,300개의 transistor로 구성되었고 초당 60,000개의 연산이 가능

  • Internet의 등장으로 Network가 일반화된 세대 그리고 휴대용 컴퓨터가 등장한 세대

1980년대 VLSI가 개발된 이후로 급격히 성장해 ULSI(Ultra LSI)와 구분 자체가 무의미해짐.
오늘날 사용되는 엄청난 집적도(같은 면적 안에 얼마나 많은 회로가 들어가는가)의 IC들도 그냥 VLSI로 불리고 있으며 실제로 PC에 사용되는 i7 cpu가 100억 수준의 소자가 집적되어 있음.
2010년 이후 기계학습의 발전으로 사람 이상의 성능을 스스로 학습하는 컴퓨팅이 가능해지고 있어도 세대 구분은 쉽지가 않음. 어차피 세대를 나누는 건 의미가 없고 기억하기 쉽게 하기 위한 개념임.


reference

  1. atanasoff berry computer wikipedia
  2. bombe wikipedia
  3. relay wikipedia
  4. CE mkdocs

0개의 댓글