텍스트 : 컴퓨터 구조 원리, Miles J. Murdocca ; Vincent P. Heuring [공저], 김성천 ...[공]역(서울 : 피어슨 에듀케이션 코리아 , 2001)
이 책만큼 컴퓨터의 본질에 관해 명확하게 설명한 책을 발견하기 쉽지 않을 듯 하다. 언어에 관해 비슷한 방식의 책은 많이 들여다 봤어도, 컴퓨터의 근본원리를 저수준의 데이터형에서 차근차근 설명할 뿐만 아니라 흥미로운 사례와 예제를 제시하는 이 책은 , 전공자 뿐만 아니라 일반인에게도 흥미로운 볼거리이다.
흔히 컴퓨터의 설계와 구조(혹은 구성)란 말을 쓸 때, 설계는 소프트웨어적 설계를 의미하며 구조는 하드웨적 부품들의 결합을 의미한다. 설계가 중요한 것은, 아무리 능력이 증대된 컴퓨터라 하더라도 컴퓨터가 다룰 수 있는 수의 범위는 유한하기 때문이다. 예를 들어 실제 세계에서 실수의 범위는 무한한 반면, 어떠한 고집적 반도체를 사용한다 해도 컴퓨터가 다룰 수 있는 수의 범위는 무한할 수 없다. 이건 정수나 자연수의 경우에도 마찬가지다.(무한에 관한 문제는 이렇게 쉽게 얘기할 만한 주제가 아니다. 기회가 되면 이에 대해 글을 작성해 보겠다.)
그런데 갑자기 왜 수의 크기가 컴퓨터 설계에 중요하게 다뤄지느냐는 의문이 들 것이지만, 이건 간단하다. 컴퓨터가 다룰 수 있는 문자, 영상, 음성 등 모든 매체는 궁극적으로 전류의 흐름과 차단을 제어하는 저수준 언어의 표상인 0과 1이라는 이진수에 의해 산출되기 때문이다. 따라서 컴퓨터가 다룰 수 있는 수의 범위가 증대되는 것은 그만큼 표현능력이 증대된다는 것이고, 이건 컴퓨터의 능력(메모리의 능력?)을 증대시키는 것이다.( 얼마전 전자신문의 특집란에서 네트웍의 트래픽 저하 문제도 프로그램적으로 해결 가능하다는 기사를 봤다. 프로그램으로 트래픽을 제어한다는 것은 프로그램 상에서 유한한 수의 범위, 정밀도와 관련이 있는 게 아닐까? 그 기사는 아래에 있다).
1991년 이라크를 상대로 한 미국의 이른바 '폭풍의 사막 작전'에서 패트리어트 미사일 방어체제는 이라크의 스커드 미사일을 방어하는데 실패했다고 한다. 패트리어트 방어 시스템이란게 결국 레이다와 미사일을 결합한 미사일 이동기지에 다름아니다. 패트리어트의 레이다 빔이 발사되어 이라크의 스커드 미사일이 방어망에 걸려들면, 패트리어트에서 요격 미사일을 발사해 스커드 미사일을 격추시키는 방법이다. 그런데 여기서 컴퓨터 설계의 문제가 발생했다. 시스템 상에서 스커드 미사일의 속도는 실수 범위에 들어가 있었지만, 패트리어트 시스템의 내부 시간의 클록은 정수범위라서 오버플로우*가 발생해 스커드 미사일을 잡는데 실패했다는 것이다. 이 사례에 관한 설명이 짧게 나와서 제대로 이해하진 못하겠지만, 프로그래머가 예제 프로그램을 컴파일러로 돌려 볼때, 오버플로우가 발생하면 아주 웃긴 결과과 발생하는 것을 봤을 때, 어느 정도 납득이 갈만한 이야기다.
*오버플로우 : 실제 컴퓨터가 다룰 수 있는 수의 범위를 넘어선 경우를 말한다. 예를 들어 유효한 산술의 결합법칙인 (a+b)-c=a+(b-c)과 같은 경우가 컴퓨터에선 성립되지 않을 수 있다. 컴터가 다룰 수 있는 수의 범위가 -7~9라고 한다면, (8+1)-9=0 의 경우는 컴터가 다룰 수 있지만 8+(1-9)=0에서 오버플로우가 발생해 오류가 된다. (1-9)= -8이 되므로 한정된 수의 범위를 넘어서기 때문이다.
** 기사 "웹트래픽 정체 확 뚫린다"
리버스 엔지니어링(Reverse Engineering) 개념을 활용해 웹 트래픽의 정체를 막을 수 있는 방안이 제시됐다. 미국 렌슬러 폴리테크닉 연구소의 크리스 카로더스 교수는 최근 미 국립과학재단(NSF) 수상논문에서 ‘리버스 컴퓨테이션(Reverse Computation)’을 적용, 웹을 지금보다 6배 이상 효과적으로 운용할 수 있는 방법을 개발했다고 밝혔다. 리버스 엔지니어링이란 기존의 프로그램을 거꾸로 분석해 설계 아이디어와 노하우를 추출, 기술향상 등을 추구하는 프로그램 행위다. 카로더스 교수의 리버스 컴퓨테이션 역시 네트워크 시뮬레이션과 모델링을 역으로 적용하는 등 리버스 엔지니어링을 그대로 따랐다.
그는 “말그대로 컴퓨테이션 과정을 거꾸로 적용해봤다”고 밝혔다. 코드를 데이터로 바꿔 본 것이다. 그는 이런 실험을 통해 원하는 결과를 얻을 수 있었다. 카로더스 교수는 리버스 컴퓨테이션이 인터넷 등 네트워크 트래픽 정체에 대해 현재의 접근방식과 다르다고 강조한다. 이 기술은 사물을 ‘느슨하게’ 해주며 모든 프로세서들에서 발생하는 사건을 시뮬레이션해 소요되는 메모리의 크기를 미리 줄여준다고 설명했다. 이를 통해 웹트래픽 역시 6분의 1로 줄어들게 할 수 있다는 것이다. 그는 특히 리버스 컴퓨테이션을 이용하면 정체를 빚어내는, 모든 가능한 상황을 살필 수 있다고 주장한다. 따라서 정체를 피해갈 수 있는 길을 찾아낼 수 있다고 밝혔다.
카로더스 교수는 “리버스 기술을 사용하면 현재의 네트워크 설계 및 경험의 시뮬레이션을 기반으로 갖고 있는 추론 이상의 추론이 가능하다”고 이 기술의 강점을 강조했다. 그는 다만 이 기술을 사용해도 네트워크 정체가 심화되면 심화될수록 정체의 원인을 찾기가 어려워진다고 덧붙였다. <허의원기자 ewheo@etnews.co.kr> ○ 신문게재일자 : 2002/02/16
***2002년 초에 작성된 것을 일부 수정했다.