하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어

김영우 pengo@itdonga.com

‘컴퓨터(Computer)’라고 한다면 대부분의 사람들은 데스크탑이나 노트북 등의 ‘PC(Personal Computer)’를 생각하기 마련이다. 하지만 원론적인 의미로 따지면 프로세서(CPU)를 갖추었으며, 외부로부터 정보를 입력 받아 정의된 규칙에 따라 이를 처리, 결과를 생성하는 전자 기기라면 모두 컴퓨터로 정의할 수 있다. 이렇게 본다면 휴대폰이나 MP3 플레이어, PMP, 비디오 게임기, 휴대용 전자 계산기 등도 모두 컴퓨터 시스템에 속한다고 할 수 있다.

하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (1)
하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (1)

이렇듯, 컴퓨터 시스템의 형태와 용도는 여러 가지이지만, 이들의 기본적인 구조는 모두 ‘하드웨어(hardware)’와 ‘소프트웨어(software)’가 합쳐진 형태로 구성된다는 점은 같다. 하드웨어란 컴퓨터 시스템의 구성물 중에서 손으로 만질 수 있는 모든 것, 이를테면 PC에서 본체 및 모니터, 키보드 등을 의미한다. 그리고 소프트웨어란 물리적으로는 존재하지 않고 논리적으로만 존재하는 것, 즉 PC에서는 ‘윈도우’ 등의 운영체제나 ‘워드’와 같은 응용 프로그램 등을 의미하는 것이다.

하드웨어와 소프트웨어의 특성을 모두 갖춘 ‘펌웨어’

소프트웨어를 통해 전달된 정보를 받아들인 하드웨어는 내부의 논리 회로를 거쳐 사용자가 원하는 형태의 결과물로 표현한다. 여기서 말하는 결과물이란 계산 결과의 출력이나 특정 기기의 동작 등을 의미한다. 그런데 컴퓨터 시스템의 활용 범위가 넓어지고, 소프트웨어에서 전달되는 정보 역시 방대해지다 보니 하드웨어 내 제한된 종류의 논리 회로만으로는 이러한 다양한 상황에 모두 대응하기가 어렵게 되었다.

물론, 새로운 소프트웨어가 등장할 때마다 그에 해당하는 기능을 갖춘 논리 회로를 추가한 하드웨어를 새로 만들 수도 있겠지만, 이렇게 하면 비용이나 시간 면에서 큰 낭비가 아닐 수 없다. 그래서 컴퓨터 개발자들은 하드웨어 내부의 제어 부분에 저장공간을 만들어, 그곳에 논리 회로의 기능을 보강하거나 대신할 수 있는 프로그램을 넣을 수 있게 하였다. 이것이 바로 ‘펌웨어(Firmware)’이다.

따라서, 같은 종류의 하드웨어라고 해도 내부의 펌웨어가 달라지면 기능이나 성능, 혹은 사용하는 소프트웨어의 종류가 달라질 수 있다. 펌웨어는 프로그램의 형태를 갖추고 있으므로 기능적으로는 소프트웨어에 가깝지만 하드웨어 내부에 위치하며, 사용자가 쉽게 그 내용을 바꿀 수 없으므로 하드웨어적인 특성도 함께 가지고 있다고 할 수 있다.

흔히 볼 수 있는 펌웨어의 형태

펌웨어는 다른 소프트웨어보다 우선적으로 하드웨어의 기본적인 동작을 제어할 수 있는 기능을 갖고 있다. 예를 들어 PC의 전원을 켜면 운영체제(윈도우 등)의 기동이 시작되기 직전, 검은색 바탕 화면에 PC 제조사의 이름 및 CPU, 메모리 및 하드디스크 용량 등의 하드웨어 정보 목록이 표시되는 것을 볼 수 있다. 이를 바이오스(BIOS: Basic Input / Output System)라고 하는데, PC의 기본적인 입출력 기능을 담당하는 펌웨어의 일종이다. 만약 PC에 장착된 하드디스크가 손상되어 운영체제의 부팅이 실패한다 해도 바이오스는 정상적으로 작동하며, 운영체제 구동에 필요한 데이터를 찾을 수 없다는 오류 메시지를 표시한다.

하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (2)
하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (2)

또한, 디지털카메라나 비디오 게임기의 경우, 메모리카드나 CD와 같이 소프트웨어가 저장된 매체가 삽입되지 않아도 전원을 켜면 초기 화면이 뜨며 저장 매체를 받아들일 준비를 한다. 이 역시 펌웨어의 역할과 형태를 보여주는 대표적인 경우라고 할 수 있다.

펌웨어 업데이트로 기기의 성능 향상이 가능

옛날에 나온 기기들의 펌웨어는 하드웨어 내부의 ROM(Read Only Memory)에 저장되었다. ROM은 저장된 데이터의 수정이 불가능한 메모리이기 때문에 한 번 펌웨어가 탑재되면 내용 변경이 힘들었다. 하지만 저장 데이터의 수정이 가능하며, 전원이 꺼진 후에도 저장 데이터의 내용이 지워지지 않는 EPROM이나 플래시메모리가 개발되면서 비교적 수월하게 펌웨어의 내용을 수정할 수 있게 되었다.

하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (3)
하드웨어를 제어하는 가장 기본적인 프로그램 - 펌웨어 (3)

덕분에 최근 출시되는 PC나 스마트폰, 휴대폰, PMP 등의 기기의 경우 제조사 측에서 성능 및 기능이 향상되었거나 오류가 수정된 새로운 펌웨어를 정기적으로 제공해주는 일이 종종 있다(펌웨어 업그레이드 또는 업데이트라 말한다). 다만, 사용자가 펌웨어 내용을 수정하거나 다른 기기의 펌웨어를 실수로 덮어씌운 경우, 혹은 펌웨어 업데이트 도중에 기기 전원이 꺼지는 등의 경우에는 기기가 오작동을 일으키거나 아예 작동 불능이 될 수 있으므로, 펌웨어 업데이트 시에는 제조사가 제안하는 조작 방법에 따라 신중을 기해 수행해야 한다.

글 / IT동아 김영우 (pengo@itdonga.com)

IT동아의 모든 콘텐츠(기사)는 Creative commons 저작자표시-비영리-변경금지 라이선스에 따라 이용할 수 있습니다.
의견은 IT동아(게임동아) 페이스북에서 덧글 또는 메신저로 남겨주세요.