해석기관
해석기관이란 영국의 수학자이자 기계공학자인 찰스 배비지가 만든 프로그램이 가능한 최초의 기계식 컴퓨터이다. 입력, 출력, 제어, 저장처리가 모두 가능하였고 오늘날의 컴퓨터의 기본구조에 있어 많은 표본이 되었다.
개요
찰스 배비지는 영국정부의 지원을 받아가며 본래 차분기관(Difference engine) 즉 미분기계를 만들어내고 있었다. 하지만 찰스 배비지의 너무나도 완벽하고 꼼꼼한 성향으로 인해 본인을 도와주는 조수와의 다툼과 부품계발이 오랜시간이 소요되고 자금의 사용량이 너무 많아졌다. 그리고 영국정부는 컴퓨터에 대한 수요가 많지 않은 상태에서 자금지원을 한다는것은 무리가 있었기때문에 찰스 배비지에게 자금지원을 끊게되었고, 이로인해 뺄셈을 이용한 차분기관의 발명은 끝나게 되었다. 하지만 찰스 배비지 기계발명에 대한 생각을 미리속으로 끊임없이 했고 1837년 처음으로 해석기관을 발표하였고 1843년 천공카드를 이용하여 증기로 움직이는 해석기관을 만들었다. 톱니바퀴와 기어의 수가 너무많기때문에 무거워 사람의힘으로는 기계를 작동할 수 없었다. 해석기관은 차분기관이 할 수있는 모든일을 수행하고 근사 다항식, 로그, 삼차함수, 천문학 실험 도표의 계산까지 가능하였다. 해석기관은 오늘날의 컴퓨터 프로그래밍처럼 입력으로 주어진 명령어를 실행(프로세스)할 수 있었으며, 주어진 명령어들을 고쳐 기계의 기능까지도 바꿀 수 있었다. 또한 천공카드를 이용하여 데이터를 불러오고 반복과 배열문을 계산하기도 했다. 그러므로 해석기관을 오늘날 컴퓨터의 시초, 아버지라고도 부른다. 해석기관은 원판으로 이루어진 여러 기둥들이 있고 원판둘레에는 숫자가 적혀있다. 이 기둥들은 찰스 배비지가 '저장소'라고도 불렀으며 일종의 메모리 역활이였다. 저장소 기둥에 나타난 숫자들은 처리 과정을 거치며 다른 기둥으로 옮겨질수 있었다. 기둥은 저장소에 있는 데이터에 제작소가 쉽게 접근해 데이터를 처리하고 다시 저장소에 쓸수 있도록 배치돼 있었다. 찰스 배비지는 1871년 사망전까지 해석기관을 실현하기위해 연구에 몰두했다. 하지만 찰스 배비지가 생각한 이 기술은 당시에 실현되기에 기술역량의 정확도 수준을 뛰어넘은지라 실제 완성품이 나오는것은 불가능하였고 결국 설계도만 남게되었다. 오늘날에는 1990년대 영국 런던의 과학 박물관에서 찰스 배비지가 남긴 여러 서적과 자료를 가지고 해석기관의 모형을 만들었으며 아무런 오차없이 계산을 하는것을 보며 찰스 배비지의 아이디어가 현실이 됬고 오류가 없을을 주장하게 되었다. 약 4000개의 부품이 필요했고 그무게는 3톤정도 였다. 찰스 배비지의 시대를 앞서간 생각은 약100여년이 지나서야 나타나게 되었다.[1]
작동원리
해석기관은 차분기관과 달리 다양한 데이터 처리가 가능하다. 10진법을 사용했으며 증기기관을 통해 핸들을 돌려 작동하도록 설계되었다. 약 30미터의 길이에 10미터 넓이정도의 크기이며 자카르 방직기 기술을 이용한 천공카드를 사용하여 이진수로 데이터를 기록하고 제작소의 동작을 바꿀 수 있었다. 해석기관에는 50자리의 숫자 1000개를 저장할 수 있는 저장소(Store)가 있고, 산술 논리 장치에는 사칙 연산과 비교 연산, 그리고 제곱근 계산 기능까지 제공하였다. 제작소 내부에서는 각각의 개별 연산에 해당하는 마이크로프로그램이 제작소를 통제한다. 마이크로프로그램은 배럴이라고 부른다. 자료는 저장소에서 제조소로 전송해서 처리하고, 저장소로 다시 돌려보내어 나중에 재사용할 수 있도록 했다. 찰스 배비지의 설계도엔 각기 40자리의 숫자를 저장할 수 있는 100개의 저장 장치(대략 1.7KB)가 자리하고 있다. 더 나아가서 1,000개의 저장장치(17KB)와 외부 저장장치 곧 오늘날의 디스크 구실을 하는 천공카드를 갖춘 기관이 필요할 거라고 예상했다.[2] 천공카드를 사용하여 원하는 해당값을 출력(print)할 수 있었다. 스토어는 엔진의 밀(Mill)과 분리되어 있는데, 밀은 전자 컴퓨터의 중앙 처리 유닛과 비슷한 연산처리를 수행한다. 밀은 최신 프로세서와 마찬가지로 가장 즉시 작동되는 번호 레지스터를 저장하기위해 제공되었다. 외부에서 제공되는 사용자 지향 명령을 내부 하드웨어의 세부 제어로 변환하기위한 제어 메커니즘 및 동기화 메커니즘은 신중하게 시간을 정한 순서대로 세부 단계를 수행하였다.산술 작업을 수행하는 데 필요한 일련의 소규모 작업은 배럴이라고하는 거대한 드럼에 의해 제어되었다. 배럴에는 오르골 드럼이나 배럴 오르간의 핀과 거의 같은 방식으로 외부 표면에 스터드가 고정되어 있다. 배럴은 엔진의 내부 동작을 조정하고 곱셈, 나눗셈, 더하기, 빼기 및 기타 산술 연산이 수행되는 방법을 자세히 지정한다. 실제 기계에서 배럴은 수천 개의 부품의 상호 작용을 제어하고 조정했기 때문에 크기카 매우 크고, 각 열에는 최대 200 개의 스터드 위치가 포함되며 각 배럴에는 50-100 개의 개별 열이 존재했다. 배럴은 서로 밀접하게 조정 되어야한고 배럴이 회전함에 따라 스터드가 메커니즘의 특정 동작을 활성화하고 스터드의 위치와 배열이 각 동작의 동작과 상대적 타이밍을 결정했다. 따라서 드럼을 돌리는 동작은 원하는 높은 수준의 작업을 수행하기 위해 일련의 동작을 자동으로 실행한다. 이 프로세스는 엔진 내부에 있으며 논리적으로 사용자에게는 보이지 않게된다. 이 기술은 컴퓨팅에서 현재는 따라서 드럼을 돌리는 동작은 원하는 높은 수준의 작업을 수행하기 위해 일련의 동작을 자동으로 실행한다. 이 프로세스는 엔진 내부에 있으며 논리적으로 사용자에게는 보이지 않는다. 해석기관은 분기(branching), 루핑(looping) 그리고 병렬처리와 같이 오늘날 컴퓨터에서 볼 수 있는 기능들을 사용하고 있었다. 옆의 그림에서도 보면 천공카드에 있는 데이터를 사용하여 그 값을 톱니바퀴와 기어를 통해 처리(계산)하고 해당결과가 천공카드 또는 프린트에 나오게된다. [3]
해석기관을 사용하여 연립방정식에서 미지수 x의 값을 구할 수 있다. mx=ny=d m'x+n'y=d' 두 식을 각각 n과 n'로 나누고 식을 정리 하면 다음과 같다. x=(dn'-d'n)(n'm-nm') 해석기관은 m,n,d,m'n',d'의 값만 주어지면 x값을 구할 수 있으며 그 값들이 데이터 기둥에 저장되면 데이터 처리가 가능 하다.
- 설계도
- 천공카드
- 18세기 여러 섬유업자들은 태엽이 달린 기계장치를 모방하여 일정한 움직임을 반복적으로 수행하는 자동기계를 고안하고 있었다. 그 중 1801년 조셉 마리 자카르는 종아 카드에 구멍을 뚫어 정보를 표현하고 이를 기반으로 작물이 자동 생산할 수있는 자카르 직기 곧 천공카드를 개발했다. 천공종이를 사용했던 이전 기계들과는 달리 천공카드를 사용했다. 천공카드는 구멍이 있는지의 여부에 따라 데이터를 읽는값이 달라진다. 그리고 일정한 패턴도 존재하여 반복하여 기계를 작동시킬수도 있다. 이를통하여 오늘날의 컴퓨터 프로그램밍의 원리가 되었다. 찰스 배비지는 이에 영감을 받아 천공카드를 이용하여 해석기관을 제작하게 되었다. 천공카드를 통해 해석기관을 프로그램할 수 있으며 20여 자리숫자까지 정확한 연산을 자동으로 수행할 수 있었다.[4]
주요인물
- 찰스 배비지
- 찰스 배비지는1791년 12월 26일 부유한 영국 은행가의 아들로 태어났다. 몸이 늘 허약하여서 어렸을적부터 많은 고생을 하며 자라왔다. 캠브리지 대학에 1810년 입학을 하게 되고 그 전까지 주로 가정교사에게 교육을 받았다. 찰스 배비지는 혼자 대수학을 깨우칠 정도로 수학에 관심이 많아 대학을통해 더 깊이 공부하고자 하였다. 그의 실력을 인정받아 25세에 영국학사원 회원으로 선정되었으며, 1828년에는 아이작 뉴턴과 스티븐 호킹이 역임한 것으로 유명한 캠브리지 루카스 석좌교수로 뽑히기도 하였다. 이러함에도 불구하고 찰스 배비지는 해석기관의 설계도 까지 내며 완성을 지을려 하였지만 결코 이루어지지 않았다.실제로 찰스 배비지는 사회적 지위, 정부 자금, 10 년간의 설계 및 개발, 최고의 영국 엔지니어링 기술이 있음에도 불구하고 완전한 기계를 구축하지 못했다. 그 이유는 여전히 논쟁의 여지가 있지만 실제 찰스 배비지는 매우 원칙적이며, 상대방을 쉽게 기분을 상하게했고 그가 적으로 받아 들인 사람들에 대해 맹렬한 대중 비판을 받아왔다. 해석기관의 부품하나하나 만들어야 해서 비용이 너무많이들고, 증기기관을 이용하기 때문에 압력과 톱니바퀴가 매우 정교해야 했으며, 영국 정부화의 자금협조, 지연, 신뢰성 실패 및 순수 과학과 응용 과학 사이의 문화적 차이가 실패 요소로 이야기된다. 찰스 배버지는 또한, 자신의 작업에 대해 강의하는 것을 싫어했고, 그의 엔진의 수학적 잠재력을 선포하거나 홍보하는데 매우 게을렀다. 결과적으로 엔진은 오류없는 테이블을 생성하기위한 실질적인 유용성에 대해 평가를 받았으며 당시의 전문가들은 새로운 테이블이 실제로 필요하다는 데 동의하지 않았고 일부는 기존 테이블이 이미 충분히 정확하고 거대한 기계를 만드는 데 드는 큰 자본 비용에 대한 경제적 정당성이 없다고 주장했다. 결국 그 시대에 주목받지 못한 기술이 되어버렸지만, 현재에 컴퓨터의 기초를 닦는 기술이 되었다.[5]
- 에이다 러브레이스(Ada Lovelace)는 오늘날 최초의 컴퓨터 프로그래머라 불린다. 찰스 배비지와의 만남을 통하여 차분기관과 해석기관에 대한 관심을 갖게 되고 해석기관 설계도를 통하여 가상 기계의 무궁무진한 가능성을 알아보고, 그 작동법을 만든 이가 있었는데 바로 에이다 러브레이스다. 이는 오늘날의 컴퓨터의 동작 원리는 물론이거니와 프로그래밍에 대한 기본적인 규칙과도 연관되는 부분이다. 찰스 배비지는 에이다를 “과학의 가장 추상적인 분야에 마술을 거는 마법사”이자 “활기찬 요정”이라고 불렀다. 찰스배비지가 컴퓨터의 하드웨어를 설계한 공학자라면 에이다 러브레이스는 소프트웨어를 짠 프로그래머인 셈이다. 해석기관은 그 두 사람의 두뇌 속에서만 작동하는 아주 특별한 기계였다. 해석기관에 관한 논문은 찰스 배비지가 1842년 이탈리아 토리노 대학을 방문해 해석기관에 대해 강의했을 때 참석했던 루이기 메나브레(Luigi Menabrea)가 강연 내용을 정리하고 기관의 구조를 설명한 논문(해석기관 개요)이 전부였다. 에이다는 프랑스어로 작성된 이 논문을 영어로 번역하고 주석을 달았는데, 주석의 길이가 본문의 2.5배에 달했다. 에이다는 A부터 G까지 9개의 주석을 달았는데, 이 주석에는 현대 컴퓨터 프로그래밍의 기본 개념을 담은 발상들이 담겨 있었다. 특히 주석 G에서 에이다는 해석기관이 복잡한 계산을 할 수 있음을 증명하기 위해 베르누이 수를 구하는 알고리즘을 만들어 냈다. 이는 컴퓨터에서 구현하기 위해 제작된 최초의 알고리즘이었고 이 때문에 그녀는 최초의 컴퓨터 프로그래머로 꼽힌다. 에이다는 이 기계가 수치 방정식 외에 다양한 정보를 처리할 수 있으며, 숫자가 아니라 문자나 음표 같은 다른 기호도 조작할 수 있으리라 믿었다. 당시 차분기관 또는 해석기관이 기계적인 방법으로 동작하고, 계산하는 원리가 그리 복잡하지 않았다는 점을 감안한다면 이러한 기계적인 구성 요소와 계산 원리에 대한 분리는 혁신적인 아이디어였으며, 동시에 오늘날까지 계승되고 있는 개념인 것이다에이다가 작성한 주석에는 서브루틴(Subroutine), 점프(Jump), 루프(Loop), 조건문(If then) 등 현대 컴퓨터 프로그램에서 사용되는 개념들이 들어 있었다. 당시 차분기관 또는 해석기관이 기계적인 방법으로 동작하고, 계산하는 원리가 그리 복잡하지 않았다는 점을 감안한다면 이러한 기계적인 구성 요소와 계산 원리에 대한 분리는 혁신적인 아이디어였으며, 동시에 오늘날까지 계승되고 있는 개념이다. 그럼에도 불구하고 이 논문을 끝으로 추가적인 논문 발표를 하지 못하고, 배비지와 함께 해석기관의 구현에 매달렸지만 결국 완전한 구현에는 실패함으로써 그녀는 더 이상 주목을 받지 못하였고, 1852년 36세에 암으로 짧은 생을 마감하게 된다.[6][7]이러한 에이다의 업적을 받들어 미국에서는 에이다라는 프로그래밍 언어를 계발했고 현재 미 국방부에서 사용하고 있다.
각주
- ↑ 더밋 튜링, 〈계산기는 어떻게 인공지능이 되었을까?〉, 《한빛미디어》, 2019-05-03
- ↑ John Graham-Cumming, 〈The 100-year leap〉, 《O'Reilly》, 2010-10-04
- ↑ , 〈[1]〉, 《history-computer Analytical engine》,
- ↑ 반효경,〈운영 체제와 정보기술의 원리〉, 《이화여자대학교출판부》, 2008-01-31
- ↑ LG CNS, 〈컴퓨터의 탄생, 시대를 앞서간 '찰스 배비지(Charles Babbage)'〉, 《엘지 씨엔에스》, 2015-11-09
- ↑ 이소영, 〈생활 속 과학탐구 - 최초의 프로그래머 에이다 러브레이스〉, 《국산업기술진흥협회》, 2018-04
- ↑ 시드니 파두아, 〈에이다, 당신이군요, 최초의 프로그래머 - 시드니 파두아〉, 《예스24 블로그》, 2018-01-28
참고자료
- 〈[2]〉, 《history-computer Analytical engine》,
- 반효경,〈운영 체제와 정보기술의 원리〉, 《이화여자대학교출판부》, 2008-01-31
- John Graham-Cumming, 〈The 100-year leap〉, 《O'Reilly》, 2010-10-04
- LG CNS, 〈컴퓨터의 탄생, 시대를 앞서간 '찰스 배비지(Charles Babbage)'〉, 《엘지 씨엔에스》, 2015-11-09
- 시드니 파두아, 〈에이다, 당신이군요, 최초의 프로그래머 - 시드니 파두아〉, 《예스24 블로그》, 2018-01-28
- 이소영, 〈생활 속 과학탐구 - 최초의 프로그래머 에이다 러브레이스〉, 《국산업기술진흥협회》, 2018-04</ref>
- 더밋 튜링, 〈계산기는 어떻게 인공지능이 되었을까?〉, 《한빛미디어》, 2019-05-03