SWEV
임베디드란 무엇인가 본문
아는 동생 하나가 '임베디드(Embedded)'가 무엇인지 물어왔다. 인터넷을 뒤져봐도 명확하게 감이 오지 않는단다. 임베디드란 보통 '임베디드 시스템'의 줄임말로 쓰인다. 임베디드 컴퓨터, 임베디드 회로를 짧게 말할때도 '임베디드'라고 한다. 생각해 보면 별 것 아닌 내용을 가지고 뭘 그리 어렵게 생각하나 싶어서 임베디드로 구글을 뒤적거려 보니 내가 봐도 설명들이 어렵게 쓰여 있었다. 한 번에 딱 알아들을만한 설명을 바라던 후배를 위해 간단하게 통화로 설명을 해주고 나니 이건 따로 정리해서 글로 옮겨도 좋을 내용이라는 생각이 들었다. 그래서 쓴다.
△ 최초의 컴퓨터인 에니악(Eniac)
최초의 컴퓨터는 요즘의 PC처럼 속편하게 쓸 물건이 못되었다. 커다란 방 하나를 통째로 차지하는 덩치에 전기도 무지하게 많이 썼고 수시로 고장나기 일쑤였다. PC, 즉 'Personal Computer' 라는 개념 자체가 컴퓨터의 발전이 꽤나 이루어지고 나서야 생겨난 개념이다. 그 이전까지 컴퓨터는 더럽게 비싼 기계였다. 살때도 비쌌고, 쓸때도 비쌌다. 도저히 '가볍게' 쓸만한 물건이 아니었단 이야기다. 보통은 '개인 풀장'이라고 하면 호화로운 느낌의 삶을 떠올리지 않나. 딱 컴퓨터가 그런 물건이었다.
그러다가 시대가 변했다. 반도체라는 물건이 튀어나오면서 예전처럼 집채만한 컴퓨터는 사라졌고 작은 반도체 안에 여러 기능들을 욱여넣는데 성공하면서 컴퓨터란 물건도 작아지기 시작한다. 기술이 발전하여 컴퓨터의 크기를 충분히 줄여놓고 나니, 사람들은 컴퓨터를 써서 조금 더 편하게 살아갈 방법들을 떠올려 낸다. 어떤 일을 여러 번 반복해서 해내거나, 혹은 특정한 조건이 만족될 때만 작동을 한다든가 하는 기계들을 만들고 싶었던 것이다. 그리고 그러한 목적으로 '성능은 보잘것 없지만 아주 작고 싸고 가벼운 컴퓨터'를 만들어서 기계들에 집어넣기 시작한다. 이게 바로 임베디드의 시작이다. 1
△ 흔히들 쓰는 선풍기
우리가 집에서 흔히 쓰는 선풍기를 생각해보자. 정지/미풍/강풍/약풍을 담당하는 버튼과 회전 스위치, 그리고 시간이 지나면 자동으로 꺼지게 만들고 싶을 때 쓰는 타이머가 붙어있다. 이 선풍기는 '스스로 판단해서' 무언가를 해내지 못한다. 강풍으로 켜면 센 바람이 나오고 태엽이 달린 타이머로 맞춰둔 시간이 지나면 꺼질 뿐이다. 이 모자란 기계를 조금 더 편리하게 쓰고 싶었던 사람들은 선풍기에 아주 조그마한 컴퓨터를 달아주었다. 그러니까, 상대적으로 구식인 '기계식 제어'에서 더 나은 방법인 '전자 제어'로 바뀌게 되었다는 뜻이다.
△ 임베디드 회로가 달린 '전자식' 선풍기의 버튼들
기존의 기계식/전기식 선풍기는 반드시 누군가는 가까이 가서 스위치를 물리적으로 조작해야 한다. 그러나 임베디드 시스템이 달려있는 '전자식' 선풍기는 온도에 따라 자동으로 바람의 세기를 조절하거나 리모콘으로 멀리서 켜고 끌 수도 있다. 이 모든 일들이 선풍기안에 달려있는 임베디드 시스템들이 해내는 일이다. 임베디드라는 말을 사전에서 찾아보면 '내장된' 혹은 '안에 달려있는' 정도의 뜻이라고 나온다. 자, 이게 임베디드의 정의이다. 어떤 기계 안에 '제어'를 목적으로 하는 아주 작은 컴퓨터가 달려있다면 그게 바로 임베디드 시스템이다.
△ 컴퓨터 세탁소의 컴퓨터가 바로 세탁기 안의 '임베디드 컴퓨터'를 이야기 한다.
딱 잘라 말해서, 임베디드 시스템은 특별한 물건이 아니다. 우리가 살면서 만지고 쓰는 숱한 기계들에 거의 다 들어가있다. 선풍기, 전기밥솥, 전자시계, 인터넷 공유기, 전화기, 세탁기, 냉장고, TV, 에어컨 등등 전기로 작동하는 물건 치고 임베디드 시스템이 달려있지 않은 기계를 찾기가 더 어려울 정도다. 에어컨을 예로 들어 설명해보자. 온도가 높으면 실외기를 작동시켜 차가운 바람을 뿜어내고, 목표로 했던 온도만큼 충분히 낮아지면 실외기를 꺼서 전기를 아낀다. 전기밥솥은 취사시간에 맞춰서 안에 달린 열판을 가열시켰다가 밥이 다 지어지고 나면 자동으로 보온모드로 바뀌며 밥을 따뜻하게 유지시킨다. 나름대로의 '논리'와 '기준'을 가지고 일하는 거의 모든 기계엔 임베디드 시스템이 달려있다. 이런 일들은 기계적인 구조로 처리하는 것보다 임베디드 시스템을 집어넣어서 전자적으로 처리하는 쪽이 만들기도 쓰기도 훨씬 편하다. 구조가 간단해져서 값이 싸지고, 고장도 잘 나지 않으니까.
△ 임베디드 시스템의 기구한 운명
임베디드가 '내장된'이라는 뜻인걸 아까 짚고 넘어갔는데 결국 상대적인 비교이다. 시사경제 사전에서 임베디드를 찾아보면 'PC 이외의 기계에 들어가는 칩' 정도로 설명되어 있는데 사실 PC 내부에도 임베디드 회로가 여럿 달려있다. 컴퓨터에 달려있는 전원 공급장치만 해도 그렇다. 전원 공급 장치 안에 들어있는 임베디드 시스템이 사용량에 따라 전압을 조절하고, 또 온도에 따라서 냉각팬의 속도도 조절해준다. 결국 '기계의 다른 부분을 위해 일하는 모든 컴퓨터'는 임베디드 시스템이라고 보아도 좋다. 세탁기의 임베디드 시스템은 정해진 시간에 모터를 돌리고 밸브를 열어 물을 받거나 물을 빼낸다.
극단적으로 이야기 하자면, 임베디드 시스템은 '쩌리'이다. 절대로 자신이 주인공이 되지 않는다. 만약 스스로 주인공이 되었다면 그건 더 이상 임베디드 컴퓨터가 아니다. 그냥 컴퓨터일 뿐이다. 컴퓨터란 이름을 굳이 한글로 풀어쓰면 '계산하는 기계"이니 계산이 목적인 장치는 임베디드 컴퓨터가 될 수 없다. 임베디드는 컴퓨터의 일종이지만, 일반적인 컴퓨터랑은 약간 다르다. 보통의 컴퓨터는 윈도나 리눅스 혹은 맥OS 같은 운영체제를 설치하여 작동시키고, 그 운영체제 위에 사용자가 손쉽게 이런저런 프로그램을 추가해서 자신의 필요대로 조작할 수 있다. 그러나 임베디드 컴퓨터는 작게, 간단하게 만드는 것을 목표로 하기 때문에 저런식으로 사용자 입맛에 맞게 무언가를 추가하거나 빼는 일이 상대적으로 어렵다. 극단적으로 단순한 임베디드 시스템의 경우 운영체제가 아예 없으며 이 경우에도 하드웨어를 제어해주기 위한 소프트웨어는 필요한데, 이 소프트웨어를 보통 '펌웨어(Firmware)'라고 부른다. 운영체제가 없거나 기능이 제한적인 경우가 많은 임베디드 시스템을 보고 이런걸 컴퓨터라고 부르기는 뭣하지 않냐는 사람들이 가끔 있다. 먹고 자고 싸는 것 밖에 못하는 신생아도 사람이듯이 그 구조가 간단하고 할 줄 아는게 많지 않은 컴퓨터도 컴퓨터로 쳐줘야 옳다.
사실 명확히 구분하는 것이 좀 어려운 일이긴 하다. 마트나 편의점 계산대에 붙은 POS 장비를 '컴퓨터'라고 부르지는 않듯이 말이다. POS 장비 안에는 임베디드 시스템이 달려있지만 예전과 다르게 요즘의 POS 장비들은 윈도가 깔려 나온다. 꼭 윈도가 아니더라도 요즘엔 임베디드용 칩들이 워낙 성능이 좋아져서 PC와 성능차이가 거의 없어지는 지경에 이르렀다. 그리고 당연하게도 PC의 부품이 그대로 임베디드 시스템에 쓰이는 경우도 얼마든지 있다.
△ 괴상하게 생겼지만 윈도와 스타크래프트를 설치할 수 있는 PC이다.
커다란 공장이나 반도체 제조 시설 같은 곳에서는 임베디드 시스템의 성능이 좋아야 하기에 PC의 부품을 그대로 쓴 물건들이 들어가곤 했다. 요즘엔 특히 PC 부품들이 워낙 전기를 적게 먹고 열도 적게 나서 예전보다 PC 기반의 임베디드 시스템이 더 많이 쓰이는 추세이다. 당장 위의 사진에 있는 물건도 냉각팬 없이 순전히 방열판만 가지고 작동하도록 되어있다. 아마도 먼지가 많은 환경에서 쓰일 것이라고 생각하고 만든 물건이지 싶다. 요즘 임베디드 시스템들이 고성능화 되면서 사물 인터넷(IoT, Internet of Things) 같은 개념도 자주 이야기가 나온다. 특별할 건 없고, 그냥 예전에 쓰이던 임베디드 시스템에 인터넷 기능을 더한 것 뿐이다. 인터넷에 연결이 되어있는 한, 어디에서나 스마트폰 같은 장치로 쉽게 조종하거나 제어할 수 있으니까.
어릴적에 아파트에서 곰국을 우려내다가 가스렌지 불을 끄는 것을 깜빡하고 외출했던 아줌마 덕분에 소방차가 출동했던 일이 있었는데, 사물 인터넷 기능이 있는 가스렌지라면 스마트폰으로 가스 불을 끌 수 있었을 것이다. 실제로 요즘엔 저런 비슷한 기능들이 새로 지어지는 아파트에 흔히 달리곤 한다. 아는 후배는 스마트폰으로 뜬금없는 타이밍에 안방의 전등을 꺼서 어머님을 놀래킨다. 여러모로 기계 좋아하는 사람들은 쓸데없는 장난질하기 좋은 세상이다. 의식의 흐름 기법 마냥 별 목표도 없이 임베디드란 단어를 가지고 이리저리 써보았다. 이 글을 쓰게 만들어준 파괴신 호갱에게 감사인사를 전하며 글을 마친다
마더보드? 도터보드? 메인보드?
△ 우리는 메인보드라는 표현을 더 자주 쓰지만, 제조사는 마더보드라는 표현을 주로 쓴다.
우리가 컴퓨터를 조립할 때 '메인보드(Mainboard)'라고 부르는 부품은 마더보드(Motherboard)라고 부르는 것이 조금 더 정확한 표현이 된다. 마더보드라는 이름 자체가 '다른 기판을 꽂을 수 있는 기판'을 의미하기 때문이다. 모성으로 자식을 품는 엄마처럼, 마더보드는 다른 기판을 품어줄 수 있다. 그리고 메인보드는 원래 확장성이 없는 기판을 이야기 할 때 쓰는 표현이다. 사실 Main 기판이라는 것 자체가 이미 다른 기판이 있다는 느낌으로 들리지만.
△ 도터보드와 마더보드는 크기가 아니라 역할로 구분한다.
그리고 위의 사진에서처럼 마더보드 위에 달린 기판은 '도터보드(Daughterboard)'가 된다. PC를 기준으로 하면 그래픽카드와 RAM 같은 것이 도터보드라고 볼 수 있을 것이다. 딸이 자라면 엄마보다 클 수 있듯이 도터보드가 마더보드보다 클 수도 있다. 당장 위의 사진만 보아도 도터보드와 마더보드의 크기가 거의 같다. 그러나 아무리 큰 도터보드도 마더보드 없이 일할 순 없다. 도터보드 없는 마더보드는 있을 수 있지만, 마더보드 없는 도터보드는 존재할 수 없다.
△ 지금은 사라진 Canopus의 지포스 그래픽카드
지금은 사라진 회사 중에 Canopus라는 곳이 있었다. 그래픽카드와 방송용 편집 카드 같은걸 만들던 회사였는데, 그래픽카드 라인업중 지포스 칩셋을 쓴 물건들은 Spectra라는 브랜드로 팔았다. 이 Spectra는 출력 품질을 높이기 위해서 그래픽카드 위에 조그마한 필터가 달린 기판을 하나 더 달고 그 기판을 통해 화면을 출력했는데 이 조그만 기판이 그래픽카드 입장에서 보면 도터보드가 된다. 그래픽카드도 마더보드 입장에서 보면 도터보드인데, 그 도터보드 위에 도터보드가 또 달려있다. 물론 그렇다고 해서 CPU가 달려있는 마더보드를 그랜드마더보드라고 부르진 않는다-_-.
그리고 뜬금없이 한국에서 유독 메인보드라는 표현이 더 자주 쓰이는 이유가 뭔지 되게 궁금해졌다. 당장 ASUS나 기가바이트, MSI 같은 주요 제조사들도 박스에 모두 마더보드라고 쓰는데 주변 사람들하고 컴퓨터 이야기를 하다가 마더보드라는 표현을 들은 기억이 손에 꼽는다. 가끔 애교섞인 표현으로 엄마보드라고 쓰거나 아예 짧게 줄여서 보드라고만 쓰는 경우는 봤어도 마더보드라고 쓰는 사람은 정말 드물다. 이유가 뭘까 궁금해 하다가 다나와에 들어갔더니 다나와가 이유였다-_-.
- 흔히들 '우겨넣다'가 표준어인줄 알지만 '욱여넣다'가 표준어이다. 이걸 처음 알았을 때 정말 놀랐었다-_- [본문으로]