본문 바로가기
배경지식

컴퓨터의 역사 IBM MARK-1 CPU 명령 레지스터 유니박-1 UNIVAC-1

by 그대 곁에 머물다 갑니다 2025. 2. 18.
반응형

컴퓨터의 역사

1. 초기의 계산 장치

 계산을 하는 도구로서 가장 간단한 것은 주판이며, 그 역사는 매우 오래 되었다. 주판을 제외하면 17세기에 이르도록 계산을 위한 특별한 도구가 없었으나 1642년 프랑스 수학자, 철학자인 B.파스칼이 톱니바퀴를 이용한 수동계산기를 고안하였다. 이 최초의 기계식 수동계산기는 덧셈과 뺄셈만이 가능했던 것으로 이 장치는 기어로 연결된 바퀴판들로 덧셈과 뺄셈을 했다. 첫째 바퀴는 첫째 자리의 숫자를, 둘째 바퀴는 둘째 자리의 숫자를, 셋째 바퀴는 셋째 자리의 숫자를 나타낸다. 각각의 바퀴에는 눈금이 열 개씩 있어, 눈금 10개가 모두 돌아가면 다음 자릿수의 바퀴가 돌아간다. 파스칼의 계산기는 최초의 디지털 계산기였다. 1671년 무렵 독일의 G.W. 라이프니츠가 이를 개량하여 곱셈과 나눗셈도 가능한 계산기를 발명하였다. 또 라이프니츠는 십진법보다 기계장치에 더 적합한 진법을 연구해서, 17세기 후반에 이진법을 창안했다. 이진법은 0과 1만을 사용하며, 이들을 배열해서 모든 숫자를 표시한다.

2. 천공카드 계산 장치의 발명

 영국의 수학자 찰스 배비지는 처음으로 자동계산기에 대한 견해를 발표하였다. 그는 1823년 삼각함수표를 유효숫자 5자리가지 계산하여 종이에 인쇄하는 차분기관을 만들었고, 현재의 디지털 컴퓨터의 방정식을 순차적으로 풀 수 있도록 고안된 해석기관을 설계하였다. 이 자동계산기는 수를 저장하는 장치(기억), 저장된 수치간의 계산을 하는 장치(연산), 기계의 동작을 제어하는 장치(제어), 입출력 장치로 이루어져 오늘날 사용하는 자동 컴퓨터의 모든 기본 요소를 갖춘 것이었다. 그러나 모두 기계부품이 쓰인 것으로 당시의 기술적 제약 때문에 실현되지는 못했다.

3. 최초의 전자 컴퓨터

마크원

 최초의 전자컴퓨터는 계전기를 사용하여 1초에 덧셈을 3번 할 수 있는 전자 디지털 컴퓨터 마크-원(MARK-1)으로서, 1944년 아이비엠사와 하버드대학 하워드 에이킨이 만들었다. 마크-원은 배비지의 해석기관 설계개념을 계전기와 스위치, 전동기 등으로 구현한 것인데, 3,000여 개의 계전기와 기어로 만들어 천공된 종이테이프로 제어되는 자동순차적 제어방식이 특징이었다. 그러나 기계적 제약 때문에 연산처리 속도는 늦었다.

카테고리

4. 다용도 디지털 컴퓨터

 1946년 미국 펜실베이니아대학 에거트와 J.W. 모클리는 최초의 전자식 계산기 애니악(ENIAC)이라는 다용도 디지털 컴퓨터를 최초로 개발했다. 이것은 진공관을 사용한 최초의 자동 계산기로 18,000여 개의 진공관과 1,500개의 계전기를 사용하였고, 무게가 30t이나 되는 거대한 기계였다. 150kw의 전력을 소비하였고 연산속도는 매초에 5000번을 처리할 수 있으며 십진수 10자리의 곱셈을 0.0028초, 나눗셈을 0.006초 이내에 처리할 수 있는 획기적인 컴퓨터였다. 마크-원에서는 계산기를 제어하는 데 종이테이프가 쓰이는 데 비해 애니악에서는 배선관이 쓰였다. 그러나 어느 것이나 계산순서를 지령하는 일련의 명령은 그 대상인 데이터와는 별도로 주어졌다. 프로그램을 배선관에 일일이 배선하는 외부 프로그램 방식이었으므로, 애니악에서는 작업에 따라 배선관을 교체해야만 했다.

 그 뒤 애니악의 단점을 보완하기 위해 J. 노이만이 기억장치에 컴퓨터의 명령이나 데이터를 모두 기억시키는 프로그램 내장방식을 제안하였다. 1949년 영국 케임브리지대학에서 이 프로그램 내장방식을 채택하여 세계 최초로 내부기억장치가 있는 에드삭(EDSAC)을 개발하였고, 미국에서는 1952년 전자식 프로그램 내장방식을 채택하여 세계 최초로 내부기억장치가 있는 에드삭을 개발하였고, 미국에서는 1952년 전자식 프로그램 내장방식인 에드박(EDVAC)을 만들었다. 또한 1951년에는 유니박-원(UNIVAC-1)을 만들어 상품화하는 데 성공하였는데, 이것이 최초의 상업용 컴퓨터이다. 에드삭은 소프트웨어 면에서도 크게 이바지하였다. 그 뒤 프린스턴고등연구소에서 노이만의 지도 아래 제작된 이아스(IAS) 컴퓨터를 비롯하여 차례로 매사추세츠공대의 월윈드, 에커르트와 모클리의  바이낙, 일리노이대학의 일리악, 랜드회사의 조니악 등이 제작되었다.

유니박

 또한 컴퓨터의 크기는 반도체 기술과 전자기술의 발달로 점점 작아지고 연산속도도 피코코(ps) 단위로 빨라졌으며, 이용범위도 확대되어 가정은 물론 산업사회의 여러 분야에서 다양하게 이용되고 있다.

▶ 미래의 컴퓨터 _ 컴퓨터의 기능은 앞으로 점점 더 우수해질 것이다. 컴퓨터 연구가들은 더 빠르고 성능 좋은 하드웨어와 소프트웨어를 개발하고 있다. 소프트웨어 연구는 단순히 자료를 다루는 것이 아니라 스스로 판단까지 할 수 있는 인공지능의 개발에 집중되고 있다. 컴퓨터를 더 작게 만들기 위한 노력도 계속되고 있다. 전문가들은 대부분 가까운 미래에도 집적회로로 만든 컴퓨터가 계속 사용될 것으로 예상한다. 그러나 몇몇 과학자들은 만든다기보다 기른다고 해야 할 생물학적 컴퓨터가 생산되고, 단위분자에 데이터를 저장할 수 있게 될 것이라고 예측한다. 분자저장 시스템을 이용하면 책 한 권도 안 되는 작은 공간에 인류의 모든 지식을 저장할 수 있게 될 것이다.


컴퓨터의 기능과 구성

 컴퓨터는 여러 가지 명령어로 구성된 프로그램의 지사에 따라 입력한 데이터를 분석, 처리하여, 그 결과를 사용자에게 제공한다. 그러나 컴퓨터가 하나의 업무를 처리하기 위해서는 입력, 제어, 기억, 연산, 출력 등의 다섯가지 장치가 서로 밀접하게 연관되어야만 종합적인 기능을 수행할 수 있다.

입력 기능 - 프로그램을 컴퓨터 내부로 읽어들이는 기능으로서 입력 장치에 갖추어져 있다.
제어 기능 - 프로그램의 명령을 하나씩 읽고 해석하여, 모든 장치의 동작을 지시하고 감독, 통제하는 기능이다. 제어 기능은 컴퓨터에서 가장 핵심적인 기능으로 이러한 제어기능이 있기 때문에 컴퓨터는 자동성을 갖는다. 제어 기능은 중앙 처리 장치의 제어부에서 담당한다.
기억 기능 - 입력 장치로 읽어들인 데이터나 프로그램, 중간 결과 및 처리된 결과를 기억하는 기능으로서 중앙처리 장치의 주기억 장치와 보조 기억 장치에 갖추어져 있다.
연산 기능 - 기억된 프로그램이나 데이터를 꺼내어 산술 연산이나 논리 연산 등을 하는 기능으로서 중앙 처리장치의 연산부에서 담당한다.
출력 기능 - 컴퓨터가 기억하고 있는 내용이나 연산 결과 등을 다양한 출력 매체를 통해 외부로 내보내는 기능으로서 프린터나 모니터 등의 출력 장치에 의해 수행된다.


중앙 처리 장치

 중앙 처리 장치(CPU)는 컴퓨터의 가장 중요한 부분으로서 원하는 결과를 출력하기 위해 입력된 자료를 기억하고, 적절한 처리가 이루어지도록 모든 장치의 동작을 질서있게 조정하는 인간의 두뇌와 같은 역할을 한다. 중앙 처리 장치는 주기억 장치, 제어장치, 연산 장치 등 3개의 장치로 이루어져 있다.

주기억 장치 - 주기억 장치는 외부에서 읽어들인 프로그램이나 자료, 또는 처리 장치에서 계산된 자료들을 보관하는 곳이다. 주기억 장치에 기억되는 자료는 처리되기 위해서 입력되는 것과 처리되어 출력될 것, 그리고 계산된 후 임시보관되는 것 등 세 가지로 나뉜다. 따라서 자료의 종류에 따라 기억되는 장소가 달라야 서로 구분될 수 있으므로 각기 다른 장소에 보관된다. 주기억 장치에서 자료를 기억하는 역할을 하는 물질을 기억 소자 또는 기억 매체라고 부른다. 기억 소자에는 자기 코어, 자기 맥박, 반도체로 만든 집적 회로 등이 있다.

자기 코어 - 자기 코어는 아주 작은 반지 모양으로 만든 자성 물체로서 전류의 방향에 따라 두 가지 상태로 자화되는데, 이 두 상태에 각각 1과 0을 대응시켜 이용한다. 그 원리를 살펴보면 다음과 같다. 첫째, 자기 코어의 중심을 지나는 전선에 전류가 흐르면 전선의 주위에 자기장이 생겨 코어가 자화된다. 둘째, 자기 코어의 중심을 지나는 전선에 전류가 흐르지 않아도 코어는 자화된 상태로 남는다. 셋째, 전류가 반대 방향으로 흐르면 전선 주위에 반대 방향으로 자기장이 생기고, 코어가 반대 방향으로 자화된다.
 시계 방향으로 코어가 자화된 상태를 0이라 하면, 시계 반대 방향으로 자화된 상태는 1이 되어 0과 1을 기억시킬 수 있다. 하나의 코어는 0과 1의 두 가지 정보만을  표현할 수 있다. 따라서 여러 가지 정보를 표현하기 위해서는 여러 개의 코어를 필요로 한다. 그물처럼 짜여진 판에 여러 개의 코어를 꿰어서 만든판을 사용하게 되는데, 이 판을 코어판이라 부른다. 또한 몇 개의 코어판을 입체적으로 쌓아 높은 묶음을 코어 스택이라 한다.

직접 회로 - 1970년대 이후 반도체 기술의 발견과 더불어 기억 장치들이 점차 반도체 기억소자인 집적 회로로 대체되었다.
 반도체로 만든 기억 회로를 플립플롭 회로라고 하는데, 플립플롭 회로는 0과 1을 기억하는 회로이며, 자기코어 한 개와 같은 역할을 하는 것이다. 이 기억 소자는 부피가 작고 전력 소모가 적으며 처리 속도가 대단히 빠르다.

임시 기억 장치 - 임시 기억 장치는 고속 버퍼 또는 캐시 기억 장치라고도 부른다. 캐시 기억 장치는 값이 비싸지만 대단히 속도가 빠른 소자를 사용하며, 주기억 장치에 기억된 프로그램과 자료의 일부분을 미리 이 장소에 옮겨 놓고 빠른 속도로 하나하나 처리하여 처리 시간을 줄이는 역할을 한다.

롬과 램 - ROM-RAM 롬은 읽기 전용 기억 장치로, 한번 기억된 내용은 전원이 끊어져도 기본적인 기능을 수록한 프로그램들을 기억시킨다.
 램은 임의 접근 기억 장치로서 모든 내용을 읽고 쓰고 할 수 있어 처리될 프로그램과 자료를 기억하는 장치를 구성하는 데 많이 사용된다. 램에 기억된 내용은 전원이 끊어지면 지워진다. 램과 롬은 반도체 기억소자의 대표적인 것이다.

제어장치 - 주기억 장치에 기억된 프로그램의 명령을 차례대로 읽어서 이를 해독하고 그 명령에 따라 컴퓨터의 동작에 필요한 모든 제어 신호를 보내는 역할을 한다.
 즉 제어 장치는 주기억 장치에서 명령 헤지스터로 명령을 가져오는 명령 인출 단계와 이것을 해독하여 필요한 신호를 발생시켜 명령대로 처리를 하는 명령 실행 단계를 반복한다.
 제어 장치는 명령 계수기, 번지 레지스터, 기억 레지스터, 명령 레지스터, 명령 해독기로 구성된다.

● 명령 계수기 - 프로그램의 실행 순서를 지정하기 위하여 필요한 레지스터로서, 다음에 실행하게 될 명령이나 그 명령을 기억하고 있는 주기억 장치의 번지를 기억하는 레지스터이다.
● 번지 레지스터 - 주기억 장치에서 선택된 번지를 보관하는 레지스터이다.
● 기억 레지스터 - 명령 레지스터나 명령 계수기가 지정하는 주기억 장치의 내용을 보관하는 역할을 한다.
● 명령 레지스터 - 명령 계수기가 지정하는 번지에 기억되어 있는 명령어를 호출해서 해독하기 위해 명령어를 잠시 보관해 두는 특수 목적 레지스터이다.
● 명령 해독기 - 레지스터의 명령부로부터 입력되는 신호의 조합에 의해 어떤 명령인가를 해독하는 회로이다.


연산장치 - 연산 장치는 산술 연산 및 논리 연산을 수행하는 하드웨어 요소이다. 연산 장치는 레지스터에 기억된 데이터들을 입력받아 연산을 한후, 그 결과를 지정된 레지스터로 보낸다. 이 때 필요한 제어 신호는 제어 장치에서 통제한다. 연산 장치는 기억 레지스터, 가산기, 누산기, 비교기 등으로 구성된다.

● 기억 레지스터 - 기억 장치로부터 읽어들인 데이터를 임시 보관했다가 필요할 때에 제공하는 역할을 한다.
● 가산기(덧셈기) - 컴퓨터에서 덧셈을 하기 위한 장치이며 덧셈 결과는 누산기에 저장된다.
● 누산기 - 연산 장치가 가산기를 이용하여 연산을 수행한 후 그 결과를 임시로 저장하는 레지스터를 말한다.
● 비교기 - 기억 레지스터의 내용과 누산기의 내용에 대한 논리적인 비교를 하여 '보다 작다', '보다 크다' 등의 조건을 정한다.

홈으로

반응형