컴퓨터

해시넷
jingayoun (토론 | 기여)님의 2021년 1월 22일 (금) 13:31 판
이동: 둘러보기, 검색

컴퓨터(computer)란 전자적 방법으로 정보를 처리하는 기계를 말한다. 좁은 의미로는 개인용 컴퓨터(PC), 서버컴퓨터, 노트북 등을 말하고, 넓은 의미로는 스마트폰, 태블릿 PC, 웨어러블 컴퓨터 등을 모두 포함하는 말이다. 초고속 대용량 연산 처리가 가능한 슈퍼컴퓨터가 있다. 기존의 전자 컴퓨터보다 수백만 배 이상 빠른 양자컴퓨터가 등장하였다.

개요

각종 정보를 저장, 처리하고, 수학적 계산을 하는 도구다. 현재 우리가 알고 있는 컴퓨터는 전자회로를 이용해 프로그램과 정보를 전자적 형태로 저장하고, 빠르게 계산하고, 입력된 데이터를 정해진 프로그래밍에 따라 처리하는 전자기기이다. 우리말로 전자계산기라고 하기도 하고, EDPS(Electronic Data Processing System), ADPS(Automatic Data Procesing System)으로 부르기도 한다. 계산하다라는 뜻을 가진 라틴어 ‘컴푸타레(computare)’에서 기원한 것으로, 폭넓게 보면 전자회로의 유무와는 상관없이, 계산을 할 수 있는 기기 전반을 가리킨다. 초기의 컴퓨터는 주산, 기계식 계산기로도 볼 수 있다.[1] 수식이나 논리적 언어로 표현된 일련의 산술 연산이나 논리 연산을 자동으로 수행하도록 지시하거나 입력된 데이터를 가공하고, 처리된 데이터를 유용한 정보로 출력한다. 컴퓨터에 대한 정의는 가리키는 범위가 너무 넓어 쉽게 설명하기가 어렵다.[2] 1940년대 이후부터는 거의 대부분의 컴퓨터가 폰 노이만의 ‘폰 노이만 구조’를 기반으로 설계된다.

특징

컴퓨터는 프로그램과 데이터가 주어지면, 절차와 목적에 따라 자동적으로 처리하는 성질인 자동성을 가지고 있다. 컴퓨터는 전자적인 장치기 때문에 1초란 시간은 컴퓨터에서는 상당히 긴 시간이다. 아무리 작고 느린 컴퓨터라고 할지라도 하나의 컴퓨팅 명령을 수행하는 데에 걸리는 시간은 일반적으로 1 마이크로초보다 작다. 이는 1초에 백만 개 정도의 컴퓨팅 명령을 처리 할 수 있다는 것을 의미하고, 5세대 컴퓨터의 명령어 처리는 1피코초 정도로, 1초에 1조 개 정도의 명령을 처리할 수 있을 정도로 신속하다고 한다. 이처럼 컴퓨터는 신속성을 가져야 하지만, 단순히 빠르기만 해서는 안 되기 때문에 정확성도 함께 가져야 한다. 전자회로를 통해 프로그램과 데이터의 처리가 항상 정확하게 출력되어야 한다. 현재 컴퓨터는 다른 어떤 기계보다도 기계적 요소에 대한 의존도가 낮고, 실제로 중앙 처리 장치 및 주기억 장치의 핵심 부분은 반영구적으로, 회로적으로 안정된 반도체로 구성되어 있어 고장 날 요인이 상대적으로 적고, 신뢰성이 높다. 신뢰성 유지를 위해 컴퓨터는 정기적으로 유지 보수가 되어야 하고, 만약의 사고를 대비하여 데이터의 예비 보관 작업, 시스템 고장에 대비하여 컴퓨터의 이중화를 사용하기도 한다. 컴퓨터에는 매우 많은 양의 데이터와 프로그램을 저장할 수 있다. 대용량의 각종 기억 장치를 가지고 있어, 한 번 저장된 자료는 임의로 삭제하지 않는 한 영구적으로 저장 가능하기 때문에, 발생한 모든 데이터를 기억시켜 놓은 후, 필요할 때 언제든 다시 찾아서 사용할 수 있도록 보유성을 가져야 한다. 이 외에도 대부분의 컴퓨터는 다양한 분야에 응용 가능하도록 응용성을 가지는 등 여러 가지 특성이 있다..[3]

역사

어원

컴퓨터의 어원인 라틴어 콤푸타레는 함께라는 의미의 ‘콤(com)’, 생각하다라는 의미의 ‘푸투스(putus)’의 합성어로, 생각을 정리하며 수식을 따라 계산하는 것을 의미한다. 과거에는 기계적인 도움의 유무와 관계없이, 수학 계산을 수행하는 사람을 가리키는 말로 사용했고, 현재에는 전자적 기계를 의미하는 경우가 훨씬 많지만, 수학을 계산하는 사람으로 사용되기도 한다. 1897년에 처음으로 기계적 계산을 수행하는 기계를 일컫는 말로 사용되었다.[2]

기계식 계산기

인류 역사상 최초의 계산기인 주판은 기원전 2400년경에 바빌로니아에서 개발된 이후, 기원전 2000년경 중국에서 개량을 거쳐 거의 2000년 이상 쓰였다. 하지만 주판은 사용방법을 익히는데 시간이 걸리고, 계산 과정에 상당한 부분을 사람의 머리에 의존했다. 자동으로 계산할 수 있는 최초의 계산도구는 17세기부터 본격적으로 개발되기 시작했다. 기계식 계산기는 톱니나 피스톤과 같은 기계 부품으로 구성된 것으로, 이를 사람이나 태엽의 힘으로 돌리면서 계산할 수 있었다. 그러나 물리적으로 맞물린 기계 부품으로 구성된 탓에 구조가 복잡한데다, 고장이 잦아 관리가 어려웠다. 복잡한 계산을 할수록 뻑뻑해져 구동이 잘 되지 않는다는 단점도 있었다.

전자식 계산기

이러한 단점을 극복하기 위해 19세기부터 전자식 계산기, 즉 근대적 의미의 컴퓨터가 고안되기 시작했다. 1822년 영국의 찰스 배비지(Charles Babbage)가 기계식 디지털 계산기인 ‘차분기관(difference engine)’을 발표했다. 차분 기관은 기존의 기계식과 달리 로그 함수와 삼각 함수의 계산이 가능했고, 핸들을 돌려 작동하기는 했지만, 천공 카드를 이용해 디지털 데이터를 기록할 수 있다는 점에서 오늘날의 컴퓨터와 유사한 점이 있다. 1904년에 영국의 존 플레밍(John Ambrose Fleming)이 진공 상태에서 전자의 흐름을 조절해 신호의 변경과 증폭을 가능하게 하는 ‘진공관’을 개발했고, 1936년 영국의 앨런 튜링(Alan Turing)이 입력과 연산, 그리고 출력과 기억을 연속적으로 할 수 있는 ‘튜링 기계’의 개념을 정의한 논문을 발표했다. 진공관의 개발과 튜링 기계의 발표로, 근대적 컴퓨터의 핵심 부품과 기본 동작원리가 확립되었다.[1] 전자식 계산기는 수를 저장하는 장치(기억장치), 저장된 수치들로 계산을 하는 장치(연산장치), 기계의 동작을 제어하는 장치(제어장치), 입출력 장치로 이루어져 오늘날 사용하는 자동 컴퓨터의 기본 요소를 모두 갖추고 있다.[4]

1939년, 미국 아이오와 주립대학의 존 아타나소프(John Vincent Atanasoff)와 그의 조수였던 클리포트 베리(Clifford Berry)가 ‘아타나소프 베리 컴퓨터’(Atanasoff-Berry Computer)라는 세계 최초의 완전한 전자식 컴퓨터를 발표했다. 약자를 따 ‘ABC’로 더 많이 불렸던 이 컴퓨터는 1939년 시험 모델 제작을 통해 최초 가동 실험을 했고, 1942년에 완성품이 발표되었다. 280개의 진공관가 1.6km 이상의 케이블로 구성되었고, 무게는 320kg 정도로, 디지털 방식의 데이터를 사용하며, 기계적인 장치 없이 완전한 전자식으로 연산이 가능했지만, 실험적인 의미가 강했기 때문에 실용성은 거의 없었다. 1944년, 영국에서 튜링이 고안한 것을 바탕으로 체신청의 기술자인 토미 플라워스(Tommy Flowers)가 설계한 ‘콜로서스(Colossus)’라는 전자식 컴퓨터가 개발되었다. 콜로서스는 군사용으로 쓰였기 때문에 당시에는 존재 자체가 극비로, 외부에는 거의 알려지지 않았지만, 1975년 영국 정부기 기밀을 해제함으로써 알려졌다. 2차 세계대전 중 독일군의 암호를 해독하는 작업에 주로 쓰였고, 많은 성과를 올렸다고 한다. 콜로서스를 세계 최초의 ‘실용화된’ 컴퓨터로 분류하기도 한다.[5]

최초의 컴퓨터

1964년 2월, 최초의 전자식 진공관 컴퓨터 에니악(ENIAC: Electronic Numerical Integrator and Calculator)이 탄생했다. 미국 펜실베이니아 대학의 존 에커트(John Presper Eckert)와 존 모클리(John William Mauchly)가 미국 탄도연구소의 의뢰로 3년간의 연구 끝에 선보인 에니악은 일반인이 손으로 계산하는 것보다 20만 배나 빠른 초당 5000번의 연산을 할 수 있었다. 이전의 전기식 계산기인 ‘MARK 1’이 초당 3번의 연산을 할 수 있었던 것에 비하면 엄청나게 빨라졌다는 사실을 알 수 있다. 17,000개 이상의 진공관가 7만개 이상의 저항기로 구성된 에니악은 총 무게가 약 30톤에 달할 정도로 거대했고, 150KW의 소비전력으로 한번 가동하면 필라델피아 시내의 전등이 모두 깜빡거릴 정도였다고 한다. 지금의 컴퓨터와는 달리 입력장치와 기억장치가 없었고, 배전반을 연결하여 연산했기 때문에, 한 연산을 마치고 다른 연산을 시작하기 위해선 배선을 바꿔야하는 번거로움이 있었다. 에니악은 미국 탄도연구소에 설치된 후 군사 프로젝트 개발을 위한 연산에 활용되었고, 2차 대전 후에는 일기예보등에 활용되었다. 현재는 워싱턴의 스미스소니언 박물관에 보존되어있다. 한 때 세계 최초의 컴퓨터로 알려지기도 했지만, 법정 공방의 끝에 에니악이 아닌 ABC가 세계 최초의 컴퓨터로 인정받게 되었다.[6]

근대 컴퓨터

애니악이 사용되던 시대의 컴퓨터는 새로운 작업을 할 때마다 회로와 기억장치를 바꿔 끼워야 하는 불편함이 있었다. 이러한 단점에 대응하여, 1945년 헝가리 출신의 미국 수학자 존 폰 노이만(John von Neumann)이 컴퓨터 내부의 기억장치에 소프트웨어 방식의 프로그램을 내장하여, 소프트웨어만 바꾸면 여러 가지 작업에 대응할 수 있도록 하는 프로그램 내장 방식 컴퓨터의 개념을 발표했다. 이를 바탕으로 1949년 처음으로 폰 노이만 구조(Von Neumann Architecture)를 실용화한 컴퓨터인 ‘에드삭(EDSAC: Electronic Delay Automatic Calculator)’이 등장했고, 몇 개월 후 에드삭의개량형인 ‘에드박(EDVAC: Electronic Discrete Variable Automatic Computer)’도 발표되었다.[1]

상용 컴퓨터

앞의 과정들을 통해 실용적인 컴퓨터의 기본 개념은 거의 확립되었다. 이것을 바탕으로 1950년대부터 컴퓨터의 상용화가 시작되었다. 최초의 상용컴퓨터는 1950년 완성되어 이듬해부터 출시를 시작한 레밍턴 랜드사의 ‘유니박(UNIBAC: Universal Automatic Computer)’로, 유니박 1은 대당 16만 달러에 판매되었다. 유니박 이후에도 여러 가지 상용 컴퓨터가 출시되었지만, 높은 가격과 큰 덩치로 인해 대부분 정부기관이나 기업에서만 사용되었다. 1977년, 미국의 애플사에서 애플2라는 소형 컴퓨터가 출시되면서 컴퓨터의 대중화가 시작되었다. 크기가 작고 사용법도 간편했으며, 1,300달러 정도로 비교적 저렴한 가격으로 대중들 사이에서 인기를 끌었다. 현재 가장 많이 사용되고 있는 개인용 컴퓨터(PC)의 규격은 1981년, 미국의 IBM사에서 출시한 ‘IBM 퍼스널 컴퓨터 5150’으로부터 시작되었다. 비교적 값이 싸고 쉽게 구할 수 있는 부품들로 구성되었고, 내부 구조를 완전히 공개하여, 다른 회사나 개인이 직접 IBM 개인용 컴퓨터와 호환되는 기종을 만들 수 있었다. 이후 대부분의 개인용 컴퓨터의 기본적인 아키텍처는 IBM 개인용 컴퓨터의 호환 규격을 따르고 있다.[1]

구성

하드웨어

  • 중앙처리장치
중앙처리장치는(Central Processing Unit)는 약자를 따서 CPU 라고 부르기도 한다.
  • 주기억장치
  • 보조기억장치
  • 입력장치
  • 출력장치

소프트웨어

  • 운영체제
  • 응용소프트웨어

분류

세대별 분류

  • 제 1세대 컴퓨터: 진공관을 이용해 만든 컴퓨터로, 저급 언어(기계어)를 이용하여 프로그램을 작성하기 때문에 오랜 시간이 걸리고, 수학 전공자가 아니면 이해하기 어려웠다.
  • 제 2세대 컴퓨터: 기억소자로 트랜지스터를 처음으로 도입했다. 트랜지스터는 진공관과 기능이 유사하지만 크기가 훨씬 작고, 발열 및 전력 소모에서 효율적이다. 2세대 컴퓨터를 바탕으로 COBOL, FORTRAN 등의 언어가 탄생했지만, 컴퓨터와 프로그래밍은 아직 일반인들과는 거리가 멀었다.
  • 제 3세대 컴퓨터: 기억소자로서 직접회로를 사용한다. 직접회로는 수백 개의 트랜지스터와 부품들을 칩으로서 통합한 전자회로를 의미한다. 다중 프로그래밍의 개념이 처음으로 등장하였고, 고속 처리가 가능해졌다.
  • 제 4세대 컴퓨터: 고밀도직접회를 사용했고, 초고밀도 직접회로를 통해 고성능 컴퓨터도 구비할 수 있게 되었다. 1970년대 단일 마이크로프로세서에서부터 인텔(intel) 운영체제를 가미한 상업용 개인용 컴퓨터도 출현했다. 1990년대에 들어서 우리가 알고 있는 윈도우가 등장했고, 고밀도직접회로의 상용화 덕에 많은 사람들이 PC를 가질 수 있게 되었다.
  • 제 5세대 컴퓨터: 인공지능을 갖춘 개인용 컴퓨터를 의미하는 것으로, 앞으로 지적 대화 기능이나, 추론 기능에 대응할 수 있는 컴퓨터 시스템 개발을 과제로 이루어 나가야할 목표이다. 컴퓨터 스스로 논리적인 추론이 가능하게 되고, 내부 및 외부의 데이터를 상호 조합할 수 있게 된다고 한다.[7] 제 5세대 컴퓨터에 포함되어야할 주요 시스템으로 문제 해결 및 추론 시스템, 지식 베이스 시스템, 지적 인터페이스 시스템이 있다.
  1. 문제 해결 및 추론 시스템은 외부에서 주어진 지식뿐만 아니라, 시스템에 기억되어 있는 데이터를 사용하여 컴퓨터 스스로 논리적인 추론을 하여 문제를 해결하도록 하는 시스템이다. 연역, 귀납적 추론 등 지식계의 상호 보완에 의한 협조형 문제 해결 기능 등이 이 시스템에 포함된다.
  2. 지식 베이스 시스템은 데이터 뿐만 아니라 합리적인 판단, 실험 결과 등을 체계적으로 정리한 지식을 시스템 내에 기억하여, 필요한 때에 검색하는 기능을 지닌 시스템이다.
  3. 지적 인터페이스 시스템은 컴퓨터에 인간이 말하는 자연 언어, 음성, 도형, 화상 등을 다루는 능력을 부여하여, 인간과의 대화가 순조롭게 진행되도록 하는 기능이다. 쉽게 말하자면 자연 언어의 이해를 중심으로 컴퓨터에 눈, 귀, 입을 부여하여하는 것이다.[4]

데이터 표현에 따른 분류

  • 아날로그 컴퓨터
연속되는 물리량(전류, 전압 온도 등의 아날로그 데이터)을 입력하고, 이들을 처리한 후에 결과를 곡선, 그래프 등 연속적인 값으로 나타내어 종이나 모니터에 출력하는 컴퓨터로, 주로 미적분 함수의 계산, 공정 관리를 위한 온도 조절, 프로세스 제어 및 미래 상품을 개발하고자 할 때 성능이나 특성에 대한 모의실험 등에 사용된다. 이 컴퓨터에는 증폭 회로가 주로 사용되며 속도는 빠르나 저장용량이 제한되어 있고, 디지털 컴퓨터에 비해서 정확도에 한계가 있으며 범용성과 호환성도 훨씬 취약하다. 따라서 일반적으로 사용하기 보다는 특수 목적용 컴퓨터로 사용된다. 데이터의 발생 시점에서 변환 없이 바로 입력하여 처리 결과를 얻을 수 있다는 장점이 있지만, 저장 기능이 없고, 정밀도나 범용성이 디지털 컴퓨터에 비해 떨어진다.
  • 디지털 컴퓨터
숫자나 문자 등 모든 자료를 수치적으로 코드화하여 사용하며, 사칙 연산을 기본으로 논리 연산 등 다양한 처리 결과를 나타내는 컴퓨터다. 원하는 자릿수만큼 또는 필요한 정밀도까지도 결과를 얻을 수 있고, 논리회로가 주로 사용된다. 일반적으로 컴퓨터라고 하면 디지털 컴퓨터를 뜻한다. 모든 동작은 프로그램에 의하여 수행되고, 프로그램을 바꾸어 여러 가지 일을 수행할 수 있다. 아날로그 컴퓨터에 비해서 조금 느리긴 하지만, 최근 하드웨어와 소프트웨어의 발전 덕분에 크게 문제가 되지는 않고 있다.
  • 하이브리드 컴퓨터
아날로그 컴퓨터의 저렴한 가격, 신속한 처리 속도와 디지털 컴퓨터의 정확성 및 모든 장점들을 통합하여 제작된 컴퓨터로, 항공기 미사일 등의 복잡한 설계 및 기술 계산을 위한 특수 용도로 이용된다. 하이브리드 컴퓨터의 특징은 어떤 유형의 자료도 모두 처리하여 취급할 수 있도록, 아날로그 신호를 디지털 신호로 변화하기 위한 A/D 변환기(Analog/Digital Converter)와 디지털 신호를 아날로그 신호로 변화하기 위한 D/A 변환기(Digital/Analog Converter)가 내장되어 있다. 변환기를 통해 아날로그 형태로 입력된 데이터를 디지털 형태로 처리하고, 처리 결과를 아날로그 형태 또는 디지털 형태로 출력할 수 있다. 아날로그와 디지털 모드 취급할 수 있기 때문에, 수치적 데이터나 물리적인 값 등 모든 유형의 데이터를 출력 가능하다.[8]

사용 목적에 따른 분류

  • 범용 컴퓨터
사회 각 분야에서 광범위하게 사용할 수 있도록 일반적인 자료처리와 광범위한 문제들을 해결할 수 있도록 설계, 제작되었다. 일반 사무용과 과학 기술 계산용으로 구분된다. 기억 용량이 크고, 처리 속도가 빠를 뿐만 아니라, 입출력 장치가 다양하다. 일반 사무용은 기업체나 공공기관 등에서 사용되는 것으로, 주로 많은 양의 자료를 다루기 때문에 입력과 젖아 및 검색 등의 효율성에 중심을 둔다. 과학 기술용은 일반적으로 연산 기능과 처리 속도가 빠르도록 설계 한다.
  • 특수 목적 컴퓨터
컴퓨터가 해야 할 일을 미리 정하여, 그 작업만을 효율적으로 처리하도록 연산 기능이나 처리 속도 등 특정한 기능을 중심으로 설계된 컴퓨터를 말한다. 전용 컴퓨터라고 부르기도 한다. 특정한 문제의 해결이나 제한된 범위의 문제만을 처리하기 위해 설계되는 것으로, 특정 기계에 부착되어 정해진 프로그램에 의해 특정한 데이터만을 받아들여 처리한다. 미사일이나 항공기의 괘도를 추적하고, 유도탄의 자동 유도장치를 계산하기 위한 군사용 컴퓨터나, 핵반응 시설 제어나 자동공정 제어를 위한 산업용 컴퓨터, 지하철의 운행이나 개찰, 의료 단층 촬영 등을 위한 업무용 컴퓨터 등이 해당된다.[9]

처리 능력에 따른 분류

  • 슈퍼컴퓨터(Super computer)
초대형 컴퓨터라고도 불리는 이 컴퓨터는 여러 개의 중앙처리장치를 병렬로 연결하여 용량이 큰 대신 대규모의 벡터 계산이나 행렬 계산의 처리 속도가 매우 빠르다. 대용량의 과학 계산을 효과적으로 처리할 수 있는 능력을 가지고 있어, 복잡하고 정밀한 연산이 필요한 특수한 장소나 환경에 설치되어 유지 및 관리된다. 석유 탐사, 지진 및 핵분열, 일기 예보 계산을 비롯하여 위성 사진 분석, 항공기의 모의실험, 우주 개발 등 첨단 산업 개발에서 사용된다.
  • 메인 프레임 컴퓨터(Main frame computer)
슈퍼컴퓨터보다 용량은 작지만 다른 컴퓨터들에 비해 기억 용량이 크고, 다양한 데이터를 처리할 수 있는 범용의 컴퓨터로, 다수의 단말기가 연결되어 있다. 소형 컴퓨터보다 성능이나 규모면에서 뛰어나지만, 가격이 비싸다. 여러 대의 단말기가 연결되어 있어, 여러 명의 사용자가 각자의 단말기를 통하여 공동으로 사용할 수 있다. 따라서 온라인 업무나 분산 처리 업무를 주로 하는 공공 단체, 대기업, 은행, 병원, 대학, 정부 기관 등에서 메인 프로엠 컴퓨터를 효율적으로 활용하고 있다.[10]
  • 미니컴퓨터(Mini commputer)
1960년대 말, 연구, 기술, 교육 등을 목적으로 개발되었다. 성능과 크기 면에서 메인 프레임과 마이크로컴퓨터 사이의 컴퓨터를 말하는데, 현재는 메인 프레임과 미니컴퓨터의 구분이 모호해졌다. 미니컴퓨터 중 메인 프레임 컴퓨터와 비슷한 처리 능력과 성능을 가진 우수한 성능을 가진 경우 슈퍼미니컴퓨터라고 한다. 가격 면에서 메인 프레임보다 저렴한 중형 컴퓨터다.
  • 워크스테이션(Workstation)
양질의 그래픽 환경을 제공하여, 개인용으로 사용하는 컴퓨터로, 자동차 및 항공기 또는 여러 기계의 고급 설계와 삼차원 모델링, 애니메이션 등의 컴퓨터 그래픽 분야에 주로 이용된다. 개인용 컴퓨터의 성장과 성능향상으로 워크스테이션의 명성은 예전 같지 않다.[11]
  • 마이크로 컴퓨터
1970년대에 개발된 마이크로 프로세서를 사용하여 만든 것으로, 일반적으로 개인용 컴퓨터를 뜻한다. 부피가 작아 설치가 용이하고, 가격이 저렴하기 때문에 널리 보급되어 활용 범위가 광범위하고, 다양한 일들을 수행할 수 있는 가장 작은 크기의 컴퓨터지만, 성능이나 처리 능력 면에서 다른 컴퓨터들에 비해 다소 떨어진다. 워크스테이션이나 메인 프레임 컴퓨터의 기능을 대부분 사용할 수 있고, 개인 사용자가 쉽게 사용할 수 있도록 만들어진 응용 소프트웨어를 주로 사용한다. 휴대 가능 여부에 따라 데스크톱 컴퓨터와 휴대용 컴퓨터(노트북)으로 구분할 수 있다.인용 오류: <ref> 태그가 잘못되었습니다;

이름이 없는 ref 태그는 반드시 내용이 있어야 합니다

폰 노이만 구조

등장

폰 노이만 구조는 헝가리 출신의 미국 수학자 폰 노이만이 제시한 컴퓨터 아키텍처로, 프로그램 내장 방식(Stored Program Concept), 폰 노이만 아키텍처, 그의 소속 대학을 따 프린스턴 아키텍처(Princeton Architecture)로도 불린다. 폰 노이만은 컴퓨터 분야 외에도 수학, 경제학, 물리학 등 다양한 분야에 큰 영향을 끼친 인물로, 과학자들이 인정한 천재 중의 천재로 유명하다. 그 예로, 폰 노이만은 캐시 메모리가 발명되기 100년 전에 이미 캐시 메모리라는 것이 출현할 것을 예측했다. 약 100년 전부터 이미 현대의 컴퓨터의 모습을 예상하고 있었던 것이다. 폰 노이만 구조가 만들어지기 전에도 컴퓨터의 아버지라고 할 수 있는 앨런 튜링이 비슷한 시도를 했었다. 1942년 폰 노이만은 맨해튼 프로젝트 참여 당시 ‘전자계산기의 이론 설계 서론’이라는 논문을 발표했는데, 이 논문에서 최초로 프로그램 내장 방식 컴퓨터를 제안하였다.[12] 이것을 바탕으로 1945년 에드박의 보고서 최초초안에서 프로그램 내장 방식이 설명되었고, 1949년 에드삭과 에드박이 발표되었다. 그 때부터 현재까지 모든 컴퓨터가 프로그램 내장 방식을 따르고 있다고 해도 과언이 아니다. 참고로 폰 노이만이 처음으로 컨설턴트에 참여한 컴퓨터는 1946년에 개발하기 시작하여 1952년에 완성된 IAS(Institute for advanced studies) 컴퓨터로, 폰 노이만이 직접 진두지휘했다고 한다.[13] 폰 노이만 구조는 병목 현상이나 중앙처리장치가 비효율적으로 활용된다는 단점이 있다. 폰 노이만 또한 이 단점들을 알았기 때문에, 인간의 두뇌와 똑같이 작동하는 컴퓨터를 만들기 위해 연구에 매달렸지만, 연구를 시작한 지 채 1년도 되지 않아 골수암으로 세상을 떠났다. 이에 대햐여 폰 노이만의 동료들은 그가 조금만 더 오래 살았다면, 인간의 뇌와 똑같은 컴퓨터를 만들었을 것이라고 말했다.[14] 1940년대에 구상된 기술이 현대에도 쓰이고 있다는 것만으로도 그 구조가 얼마나 획기적이고, 놀라운 기술인지 짐작할 수 있게 해주는 폰 노이만 구조가 없었다면, 현재의 컴퓨터 또한 존재하지 않았을 것이다.

구조 및 동작

폰 노이만 구조는 중앙처리 장치(CPU), 메모리, 프로그램 크게 세 가지 요소로 구성되어 있다. CPU와 메모리는 서로 분리되어 있고, 둘을 연결하는 버스를 통해 명령어 읽기, 데이터 읽고 쓰기가 가능하다. 이때 메모리 안에 프로그램과 데이터 영역은 물리적 구분이 없기 때문에 명령어와 데이터가 같은 메모리, 버스를 사용하게 되는데, 같은 버스를 통해 중앙처리장치가 명령어와 데이터에 동시에 접근할 수 없다. 폰 노이만 구조는 내장 메모리 순차처리 방식을 따르고 있기 때문에, 중앙처리장치는 한 번에 하나의 명령어를 순차적으로 실행한다. 중앙처리장치는 메모리에 저장된 명령어를 받아와 계산할 때 메모리로부터 명령어를 가져오는 fetch, 명령어의 의미를 해석하는 decode, 명령어를 실행하는 execute, 결과를 저장하는 store의 순서에 따라 입력 받은 명령을 실행한다.

특장점

프로그램 내장 방식 이전에는 원하는 연산을 하고 싶을 때마다, 진공관의 회로 스위치를 변경해야 했다. 하드웨어의 전선을 일일이 재배치해야했기 때문에 상당한 시간과, 인력, 비용이 소모되었다. 이에 비하면, 프로그램 내장 방식은 하드웨어는 그대로 두고, 사용할 소프트웨어(프로그램)만 교체하면 되기 때문에, 편의성이 크게 증가하였고, 다양한 목적으로 사용이 가능해져, 범용성이 높아졌다. 프로그램 내장 방식은 이전 방식의 문제를 해결하기 위해 데이터를 외부에서 받지 않고, 내부의 기억장치에 저장한 후 프로그램의 명령을 순서대로 꺼내 해독하고 실행하는 방식으로 고안되었다.

단점

병목 현상

폰 노이만 구조는 인간의 사고과정과 비슷한 구조를 가지고 있다. 사람이 하나의 연산을 마주하게 되면, 머리 속의 기억을 불러와 계산하는 과정과 아주 유사한 구조이다. 그런데, 이러한 방식을 사용하게 되면, 뇌에서 계산 과정은 빠르게 처리할 수 있을지 몰라도, 기억을 불러오는 속도가 느릴 경우, 전반적으로 속도가 느려진다는 것이다. 이처럼 기억 장치의 속도가 전체 시스템의 성능저하를 야기하는 현상을 폰 노이만 병목현상(Von Neumann Bottleneck)이라고 한다. 이 문제를 해결하기 위해 하버드 구조, 메모리 계층 구조, NUMA 등 다양한 기술과 구조들이 등장하였다. 하버드 구조는 병목 현상이 일어나는 근본적인 원인을 해결하고자 했다. 병목 현상은 프로그램 메모리와 데이터 메모리가 물리적 구분 없이 하나의 버스를 통해 CPU와 교류하기 때문에 발생하는 문제로, 중앙처리장치가 명령어와 데이터에 동시에 접근하는 것을 막고, 나열된 명령을 한 번에 하나씩 읽고 쓰게 만든다. 이를 보완하기 위해, 하버드 구조는 중앙처리장치가 명령어와 데이터를 동시에 사용할 수 있도록 명령용 버스와 데이터용 버스를 물리적으로 구분하여, 명령의 처리를 끝냄과 동시에 다음 명령을 읽어 들일 수 있어 빠른 속도를 낼 수 있다. 현대에 이르러서 중앙처리장치 외부적으로는 폰 노이만 구조를, 내부적으로는 하버드 구조를 적용하여 속도가 향상된 컴퓨터가 많이 등장하기는 했지만, 이 또한 폰 노이만 구조를 기반으로 만들어진 것이기 때문에 병목현상을 완전히 해결하지는 못했다.

중앙처리장치의 비효율적 활용

순차적으로 한 번에 하나의 명령어를 처리할 수 있기 때문에, 폰 노이만 구조를 사용하면 중앙처리장치를 효율적으로 사용하지 못하는 경우가 종종 있다. 순차처리 방식은 수치 계산이나 정밀하게 작성된 프로그램을 실행하는 데에는 탁월하지만, 이미지나 소리와 같은 아날로그 데이터를 처리하기에는 효율성이 낮다는 한계가 있다. 이를 해결하기 위해, 명령어 병렬처리, 대칭형 다중처리(SMP), 대규모 병렬 컴퓨터(MPP) 등 다양한 병렬처리 방식이 등장했다. 병렬처리 방식은 하나의 프로그램을 여러 개의 프로세서로 분담하여 동시에 처리함으로써 처리 속도의 향상과 높은 효율성을 추구하는 기술이다. 그런데 병렬처리를 기반으로 컴퓨터 구조를 만들게 되면 지나치게 복잡하고, 모든 문제에 효율적이지 않고, 처리를 위해 부가적으로 시간이 들어갈 경우 오버헤드가 발생한다는 등 여러 가지의 단점이 있어 이 또한, 폰 노이만 구조를 완전히 대체하지 못했다.[12]

영향

2011년 미국의 IBM사가 대량 생산이 가능한, 인간의 뇌처럼 정보를 처리하는 획기적인 컴퓨터 칩 ‘트루 노스’를 내놓았다. 이 새로운 프로세서는 뇌를 모방하여 뉴런(신경세포)와 시냅스(신경접합부)에 해당하는 부분으로 구성되어 있어, 인간의 뇌처럼 정보를 처리하고, 인간 두뇌의 인지 역량과 초저전력 소모 면에서 기존 컴퓨팅 기술과 현격한 차이를 보였다. IBM사의 연구원들은 1946년부터 사용되어온 폰 노이만 구조를 뛰어넘어, 인간의 뇌와 프로세서 사이의 격차를 줄이기 위해 신경과학에서 영감을 받아 확장성과 효율성이 뛰어난 새로운 컴퓨터 아키텍처를 개발했다.[15] 트루 노스는 256개의 디지털 뉴런과 그것을 연결하는 26만여개의 시냅스로 구성되어있는데, 이 디지털 뉴런들을 통해 생물학적 뉴런이 가지는 독립적 성격을 모사하면서, 서로 다른 응답 시간을 가능하도록 하고, 이웃하는 뉴런으로부터의 입력에 응답하는 패턴을 없애는 역할까지도 수행할 수 있다.[14] 이후 지속적인 개발을 통해 54억 개의 트랜지스터를 내장한 4,096개의 뉴로시냅틱 코어를 통해 약 2억 5600만 개의 디지털 시냅스로 연결되어있는 트루노스를 새롭게 선보였다. 각 코어 모듈은 메모리, 연산, 통신이 통합되었고, 이벤트 발생에 따라 병렬적으로 무정지형(fault tolerant) 방식으로 작동되는데, 단일 칩의 한계를 넘어 시스템을 확장하기 위해 인접한 칩들을 타일 구조로 배치하면, 칩들이 서로 원활하게 연결되면서 뉴토시냅틱 슈퍼컴퓨터를 위한 기반을 마련해준다.[15] 연구진은 이렇게 만든 트루 노스로 길거리를 지나는 사람과 자동차 등의 움직이는 물체를 실시간으로 구별하는데 성공했다고 밝혔다. 또한 IBM사는 100억개의 신경계를 수 조 개의 시냅스로 연결하여 신경계 시스템을 구현하는 것이 장기적인 목표이고, 단지 1킬로와트의 전력만을 소비하면서, 인간의 뇌 용량처럼 2리터 이하의 부피를 차지하는 것이 기술개발의 핵심이라고 밝혔다.[14]

응용

전망

컴퓨터의 기능은 갈수록 다양해지고, 세분화 되어가고 있다. 컴퓨터 연구가들은 더 빠르고, 성능이 좋은 하드웨어와 소프트웨어를 개발하고 있다. 그 중에서도 특히 소프트웨어 연구는 단순히 자료를 다루는 것이 아니라 스스로 판단까지 할 수 있는 인공지능의 개발에 집중이 되고 있다. 컴퓨터를 더 작게 만들기 위한 노력도 계속되고 있는데, 전문가들은 대부분 가까운 미래에도 직접회로로 만든 컴퓨터가 계속 사용될 것으로 예상한다. 그러나 몇몇 과학자들은 단순히 만드는 개념의 컴퓨터가 아니라, 기른다고 해야 할 생물학적 컴퓨터가 만들어지고, 단위분자에 데이터를 저장할 수 있게 될 것이라고 예측하기도 한다. 분자저장 시스템을 이용하면 책 한 권도 안되는 작은 공간에 인류의 모든 지식을 저장할 수 있을 것이다. 또한 컴퓨터 과학자들은 인공지능 컴퓨터를 만들기 위해 노력중이다. 일부 과학자들은 장래에는 인간과 대등하게 대화하고, 생각하고, 감정을 지니는 컴퓨터가 등장할 지도 모른다고 생각한다. 장래의 인공지능 컴퓨터는 여기에서 더 나아가, 지식의 축적, 유추, 증명, 창작 등의 능력을 갖추게 될 것으로 기대된다. [4]


각주

  1. 1.0 1.1 1.2 1.3 컴퓨터〉, 《네이버 지식백과》
  2. 2.0 2.1 컴퓨터〉, 《위키백과》
  3. 잡고, 〈컴퓨터의 기능/특징〉, 《티스토리》, 2012-02-04
  4. 4.0 4.1 4.2 휴먼밸, 〈컴퓨터의 역사〉, 《오픈튜토리얼스》, 2017-01-02
  5. 김영우 기자, 〈인류의 삶을 바꾼 위대한 기계 – 컴퓨터(Computer)〉, 《아이티동아》, 2011-09-30
  6. 그때 그 발견! 인류 최초의 컴퓨터 에니악〉, 《삼성반도체이야기》, 2017-02-17
  7. 안경잡이개발자, 〈컴퓨터의 역사에 대해서 알아보자!〉, 《티스토리》, 2016-06-04
  8. 자료 처리에 의한 분류〉, 《에듀웨어》
  9. Host, 〈컴퓨터의 분류 – 사용 목적에 따른 분류/ 범용 컴퓨터/ 특수 목적 컴퓨터〉, 《네이버 블로그》, 2011-09-18
  10. Host, 〈컴퓨터의 분류 – 처리 능력에 따른 분류/ 슈퍼컴퓨터/ 메인 프레임 컴퓨터/ 워크스테이션/ 개인용 컴퓨터〉, 《네이버 블로그》, 2011-09-19
  11. SoNB31, 〈10. 컴퓨터의 종류〉, 《네이버 블로그》, 2020-02-07
  12. 12.0 12.1 과학기술정보통신부, 〈컴퓨터의 구조는 어떻게 생겼을까? 폰 노이만 구조〉, 《네이버 블로그》, 2020-05-28
  13. 강철현인, 〈프로그램 내장 방식의 폰 노이만 구조(Von Neumann Architecture)〉, 《티스토리》, 2019-12-02
  14. 14.0 14.1 14.2 이성규 객원편집위원, 〈폰 노이만 이후의 컴퓨터〉, 《사이언스타임즈》, 2014-08-11
  15. 15.0 15.1 John Jackson, 〈IBM, 인간의 뇌 닮은 칩“트루노스”개발…사물 인터넷 혁명 이끌까〉, 《아이티월드》, 2014-08-08

참고자료

같이 보기

틀:검토필요