Bongta      

code - ②

소요유/묵은 글 : 2008. 2. 15. 21:26


앞에서는 Analog/Digital 차이에 대하여 알아보았습니다.
예전 괘종시계를 보면 시계 바늘침들이 끊이지 않고 연속적으로 흐르듯 이동됩니다.
이게 엄밀하게 따지자면, 실은 톱니바퀴로 움직이는 것이라
실상은 그 톱니 간격만큼 digital적으로 움직이는 것이지만,
외양상은 연속적으로 움직이는 것처럼 보일 뿐입니다.
여기서는 그 개념을 익히기 위해 외양상 연속적으로 움직이는 것을 취해
analog의 예로 들었습니다.
반면 요즘 digital 시계 침들은 1초 간격으로 끊기듯 순간 이동됩니다.
이렇듯 digital은 장마철 징검다리 건너듯 state와 state를 극적으로 바꿉니다.
징검다리 사이론 물이 흐릅니다.
하지만, digital에선 그 사이는 虛無일 뿐입니다.

지금 시대를 digital 시대니, 정보통신시대라고 말하면서도
정작 digital이 무엇인지 모른다면 저으기 섭섭한 일입니다.

digital의 세계를 향한 놀라운 變造 능력을 모르는 바 아니나,
저 개인적으로는 analog의 全一性에서 스며나오는
원초적 혼동성(混沌性-chaos), 순결성(純潔性), 심후성(深厚性)을 사랑합니다.
때문에, 멀리 길 떠난 누이를 그리는 듯, 애뜻한 향수와 애정을 갖게 됩니다.
저는 digital에선 근원을 향한 깊이, volume감을 느낄 수 없습니다.
일차원적인 개별자들의 분절,
그리고 그들의 차가운 집적들, 지어지는 바벨탑들, 그 환영을 엿봅니다.

수직의 맹목적 권력의지.

때문에 마침 현대인의 욕망에 부역하고자 차출된 것이 아닐런가 ?
비오는 날은 이리 공상하며,
찻잔 기우려,
창밖을 가만히 쳐다봅니다.

###

Hardware/Software

또 다른 주제어인 이 양자에 대하여 알아 봅니다.
ware는 어원으로 보면 goods이니 상품, 재화쯤 될 것입니다.
허나 저는 이를 그릇기(器) 정도로 새기고자 합니다.
상품이나, 재화 등은 그릇에 담아야 그 전체 구조와 기능이 보존됩니다.
그러하니, ware는 그릇으로 새겨도 큰 무리는 없을 것입니다.
earthenware, chinaware가 도(자)기로 번역되니 용례가 전혀 없는 것도 아닙니다.
그런즉, hardware는 딱딱한 그릇, software는 부드러운 그릇으로 이해하면
좋으리란 생각입니다.

hardware는 무엇을 담아논 그릇이되 딱딱한 것을 연상하면 됩니다.
이는 곧 눈에 보이는 물리적 실체들의 조직 구성체들이니,
컴퓨터에서는 외양상 눈에 보이는 것들은 모두 hardware인 것입니다.

반면, software는 무엇이 담겨 있기는 하되, 공간을 점유하고 있는
물리적인 것이 아닌 추상적인 내용 정도로 이해하시면 좋겠다는 생각입니다.

hardware는 사람으로 치면, 육체,
software는 정신 같은 것으로 보아도 좋겠습니다.

물론 software는 추상적인 것이지만, 그것이 때로는 물리적인 형식으로 공간을 점하기도 합니다.
예컨대, 책을 이루고 있는 종이는 hardware이지만,
종이에 쓰여진 글자들이 밖으로 표출하는 의미들은 software입니다.
하지만 이 의미, 내용 즉 software는 잉크라는 물리적인 형식을 빌어 종이 위에 뿌려져
있습니다.
이 때, 그 잉크의 궤적은 hardware지만, 그것들이 지시하는 의미내용들은 software인 것입니다.

이 양자가 결합한 단위체를 firmware라 부르기도 합니다.
컴퓨터에선 이게 대표적으로는 ROM이라는 소자에 보관되지요.

###

Hardware

그림을 보시면 가장 저위 수준에 hardware가 그려져 있습니다.

사용자 삽입 이미지

© bongta

컴퓨터 본체를 뜯어 보면 커다란 판(PCB)이 보이고
여기에 각종 단위 소자(素子)들이 꼽혀 있습니다.
이 때 이 커다란 판을 mother board 또는 main board라 부릅니다.
여기 각종 기능을 수행하는 단위 소자들이 모듈 또는 chip 형식으로 배치되어 있습니다.

이 mother board에 꼽혀진 것을 잘 보시면,
그 중, 정방형의 것으로 위에 fan이 붙은 것을 확인 하실 수 있습니다.
이게 hardware의 핵심으로 CPU(central processing unit)라 부르는 것입니다.
사람으로 치면 두뇌에 해당됩니다.
CPU內의 중심적인 장치는 ALU(arithmetic logic unit)입니다.
하니 ALU는 대뇌에 해당된다고 보면 됩니다.

computer가 계산기와 하나도 다를 게 없다라고 앞에서 말씀드렸습니다.
ALU는 산술, 논리 계산의 중추이니 당연한 것입니다.
산술 계산이란 다 아시듯이 +-*/ 등의 사칙연산을 의미합니다.
논리 계산이란 and,or,not,xor, 크다, 작다... 등등을 뜻합니다.
ALU란 이 양자의 계산을 수행할 수 있는 기능 단위를 말하는 것입니다.
하니 이 세상의 계산이란 것은 모두 이 양자에 속하며,
이를 ALU가 수행하니, 결국은 컴퓨터란 계산기에 다름 아닌 것입니다.

이게 물리적으로는 flipflop, gate, adder 등등의 기본 전자장치를 중심으로 만들어 낼 수 있습니다만,
따지고 보면 아주 간단한 고안물입니다.
이것들을 적절히 결합하고 통제하면 사칙연산, 논리연산을 할 수 있는
기능소자를 만들어 낼 수 있습니다.

ALU 내지는 CPU는 이들을 좁은 공간에 얼마나 효율적으로 집적할 수 있는가와
외부 명령의 해석과 전달, 그리고 얼마나 다량의 정보를 고속으로 처리할 수 있게
디자인 할 수 있는가가 문제의 핵심 기술과제입니다.

이 CPU는 초기에는 fan이 위에 장착되지 않았습니다.
하지만, 고속 경쟁이 붙으면서 발열 문제를 해결하기 위해 위에 fan를 달아 놓게 되었습니다.
저는 이 fan을 볼 때마다 가슴이 아픕니다.
생각해보십시오.
일 많이 부려먹으려고 디립다 돌려돌려대니, 열이 엄청나게 나오고,
한편으론 이 열을 식히려고 이마빡에 환풍기를 달아매단 꼴이 아닙니까 ?
있는대로 쥐어 짜내겠다는 수작이지요.
이 발열문제를 해결하기 위한 computer cooling system은 현재 중요한 과제가 되고 있습니다.

“효율”을 꼬나 겨눈 목표로 설정한 이상,
그것이 기계가 되었든 생명이 되었든 이리 쥐어 짜내는 착취와 동원이란
형식을 빌지 않은 것은 없습니다.

만약 fan이 고장나면 CPU는 터져버립니다.
착취와 동원은 이렇듯 밧줄 위에 올라선 광대와 같은 긴장과 균형이
충혈된 눈으로 24시간 감시되는 환경하에서만 가능합니다.
요즘 어린 아이들 역시 24시간 뺑뺑이를 돕니다.
학교, 학원, 가정교사...
거기 충혈된 눈의 임자가 혹 당신은 아닙니까 ?
우리는 지금 부지불식간에 CPU 마빡에 달린 fan같은 존재로 전락한 것은 아닙니까 ?
도대체가 골목길엔 13인의 아해들 떠드는 소리가 들리지 아니하오.

자, 계산의 핵심 장치가 소개되었습니다.
이제는 어떻게 계산을 하는지, 개념적으로 설명하고자 합니다.

우리가 계산을 할 때는 연필과 메모장이 필요합니다.
컴퓨터 역시 계산을 하려면 메모장 같은 계산 공간이 필요합니다.
캐쉬(cache)라 하여 cpu 안에 이런 공간이 마련되어 있습니다만,
이게 상당히 비싸기 때문에 용량이 충분치 않습니다.
또한 검색시간 장단문제 등으로 인해, 별도의 외부 장치가 필요합니다.

이것중 대표적인 게 바로 메모리(memory)입니다.
CPU가 계산을 하려면 이 캐쉬 또는 메모리에 데이터를 넣었다 빼었다 하면서
처리하게 되는 것이니 이들은 모두 인간이 손으로 계산할 때
사용하는 메모장과 기능상 다를 것이 없습니다.
메모리도 종류가 여러 가지입니다.
여기 등장하는 메모리(RAM)는 data를 읽고 쓸 수 있는 기능을 갖고 있습니다만,
전기를 끄게 되면 기록하던 data는 사라지고 맙니다.
이를 일러 휘발성(volatile)이 있다라고 말합니다.

그런데, CPU가 계산을 하다가 cache, memory로도 작업공간이 부족한 경우가 생기기도 합니다.
이 때는 harddisk를 이용하게 됩니다.
cache, memory, harddisk 이 삼자는 본원적으로 기능상 차이가 없습니다.
뿐만 아니라, CPU는 이들을 구별조차 하지 않습니다.
다만 외부에서 지정해주는대로 사용할 뿐입니다.

cache, memory, harddisk
이 삼자는 물리적 차이가 있을 뿐입니다.
즉 벌려논 순서로 보자면 좌에서 우로 갈수록 저속이고 가격이 쌉니다.
그러므로 컴퓨터 생산업자는 가급적 좌측 것들은 적게 채비하여 컴퓨터를 구성하게 됩니다.
하지만, 사용자 입장에서는 총 용량이 같다면 가급적 좌측 것들의 용량이 클수록 컴퓨터를
고속으로 이용할 수 있습니다.

단, 이 삼자중에서 harddisk만큼은 전기를 꺼도 기록된 data가 사라지지 않습니다.
이러한 특성이 있기 때문에 최종 계산된 결과를 남겨두고자 할 때는
필히 harddisk에 기록하여 보관을 꾀하여야 합니다.

여기까지 설명하면, 사실 핵심 hardware는 다 설명하였다 하여도 과언이 아닙니다.
정리하자면, 계산의 핵심단위인 ALU가 CPU안에 자리 잡고 있고,
이게 계산을 할 때는 cache, memory, harddisk라는 메모장같은 작업공간이 필요하다라는 것,
그리고 그 계산된 결과는 최종적으로 harddisk에 기록되어야 전기를 꺼도 남겨진다는 것.
이게 핵심 내용인 것입니다.

그런데, 여기서 재미있는 이야기를 덧붙여 봅니다.
CPU가 계산을 할 때 그저 전기가 넣어졌다고, 마구잡이로 하는 것이 아닙니다.
무엇인가 박자를 맞추어서 동작한다는 것입니다.
그 박자를 맞추어주는 것을 소개하고자 합니다.

피아노를 칠 때 metronome처럼 박자를 맞추어 주는 것이 있습니다.
이것을 oscillator라고 하는데, 흔히 수정진동자 또는 clock이라고도 부릅니다.
수정(crystal)을 얇게 박판(薄板)으로 만들어 전극을 달고 전압을 가하면 
특정 진동수를 갖고 떨게 됩니다.
수정은 기하학적 구조가 정해지면, 고유진동수가 확정되는 특성이 있습니다.
때문에 원하는 목표 주파수에 맞추어 수정 박편을 알맞게 깍아내는 것입니다.

CPU는 이 수정진동자의 주파수에 맞추어 한 스텝씩 발 맞추어
(※. 실제는 이 주파수를 적당히 분주(分周)하여 사용합니다.)
한번에 한가지씩 일을 하게 되는 것이지요.
그렇다면, 수정진동자의 진동수가 높아지면
CPU가 단위 시간에 하는 일의 양이 많아지게 될 것입니다.
때문에 가급적 이 진동수를 높여 CPU의 능력을 최대한 발휘하게 합니다.
하지만, 진동수를 높이게 되면 CPU는 부하가 많이 걸려 열이 많이 발생하게 됩니다.
때문에 견디어 낼 수 없는 정도로 진동수를 높이면 결국엔 CPU는 터져버리게 됩니다.

CPU의 디자인 기술에선 회로 자체뿐이 아니고,
이 발열 문제를 해결할 수 있도록 최대한 지혜를 짜내는 것도 중요 포인트입니다.

이렇게 놓고 보면 CPU-Crystal의 관계가
두뇌-심장(맥박)에 해당되는 양 싶어 재미있습니다.
여기 메모장에 해당되는 Memory가 채비되어 함께 계산을 하는 것이지요.

'소요유 > 묵은 글' 카테고리의 다른 글

code - ⑤  (0) 2008.02.17
code - ④  (0) 2008.02.16
code - ③  (0) 2008.02.16
code - ①  (0) 2008.02.15
문.무(文.武)의 진실과 그 화해를 위하여  (0) 2008.02.15
기우(杞憂)  (2) 2008.02.15
Bongta LicenseBongta Stock License bottomtop
이 저작물은 봉타 저작자표시-비영리-변경금지 3.0 라이센스에 따라 이용행위에 제한을 받습니다.
소요유/묵은 글 : 2008. 2. 15. 21:26 :