저전력 및 사용 편의성으로 아직 강력한 옵션인 8비트 마이크로 컨트롤러

필자가 마이크로 컨트롤러의 황금기라고 부르는 1990년대 중반에는 C 컴파일러가 막 인기를 얻기 시작했지만 내장된 작업에서 프로그래밍하려면 여전히 조립품에서 프로그래밍해야 했습니다. 필자와 같은 FAE(Field Applications Engineers)는 고객을 방문하여 눈을 동그랗게 뜬 엔지니어들이 도넛을 먹는 동안 회의실 앞에 나와 최신 마이크로 컨트롤러 정보를 쉴 새 없이 내뱉곤 했습니다.

당시의 반도체 회사에서는 오늘날처럼 매달 새로운 마이크로 컨트롤러를 선보이지 않았습니다. 분기별로 한두 개 정도의 새로운 제품을 출시했습니다. 하지만 여전히 절대 변하지 않는 무언가가 있습니다. 당시에 필자의 현란한 PowerPoint를 함께 즐기던 24명 정도의 엔지니어들은 자동차 차체 컨트롤러를 만들던 그룹에 속했습니다. 차체 컨트롤러는 스위치가 박스에 “goesinta” 신호를 보내고 액추에이터 제어기가 박스에 “goesouta” 신호를 보내는 goesintas/goesoutas의 원칙에 따라 작동하는 단순하고 작은 박스였습니다. 이는 많은 GPIO가 사용된 8비트 마이크로 컨트롤러를 위한 간단한 장치입니다.

발표는 회의실 뒤쪽에서 한 명이 손을 들기 전까지는 일반적 홍보와 다를 게 없었습니다.

그 사람은 의지에 찬 목소리로 “경영진에서 차체 컨트롤러에 32비트 마이크로 컨트롤러를 사용하기 시작해야 한다고 결정했습니다.”라고 말했습니다. 회의실에서 여러 사람이 웅성거리는 동안 필자는 경영진이 아직 결정을 내리지 않았으며, 이 사람에게는 본인이 선호하는 제조업체(슬프게도 필자가 아닌)가 있으리라 추측했습니다.

머릿속으로는 “32비트 마이크로 컨트롤러는 필요하지 않습니다. 전 당신을 믿지 않아요.”라고 생각했지만, 실제로는 정중하게 “차세대 컨트롤러에 32비트 아키텍처의 어떤 기능이 필요한지 말씀해주실 수 있나요?”라고 물었습니다.

조금 뜸을 들인 후 그 사람은 도전적으로 “그냥 32비트가 필요해요.”라고 답했습니다. 목소리에서 주저하고 있음을 느낄 수 있었습니다. 이를 들은 다른 엔지니어들이 필자를 빤히 바라보며 답을 기다렸습니다.

필자는 8비트와 비교하여 32비트 아키텍처의 장점을 신중하게 설명했습니다. 더 빠른 클록 속도가 필요했을까요? 차세대 제품이 더 복잡한 연산을 수행했을까요? 펌웨어를 멀티스레드로 이동했으며 실시간 운영 체제(RTOS)가 필요했을까요? 펌웨어 크기가 메모리 처리를 늘려야 할 정도로 급증했을까요? 이러한 질문은 여전히 8비트에서 32비트 코어로 도약할 정당한 이유입니다(16비트가 이 둘 사이의 절충점일 수 있지만 다른 얘기이지요).

그 뒤로는 8비트와 32비트 아키텍처의 차이에 대한 즐거운 토론이 진행되었습니다. 8비트 마이크로 컨트롤러 아키텍처는 더 간단하며 프로그래밍 모델을 이해하기 쉽습니다. 일반적으로 공급원도 하나면 됩니다. 이에 반하는 마케팅 주장에도 불구하고, 현대의 8비트 아키텍처는 내부 구조상 더 적은 버스 신호를 토글하므로 32비트보다 전력 소비가 낮습니다.

실제 8비트 예

Microchip Technology는 수년 동안 8비트 마이크로 컨트롤러를 제공하고 있다는 점에 자부심을 가지고 있습니다. 인기 있는 Microchip의 megaAVR 8비트 코어(ATMega라고도 함)는 최대 256Kbyte의 프로그램 메모리를 처리할 수 있는 전통적인 하버드 아키텍처를 갖고 있습니다. 이 제품은 8비트 범용(GP) 레지스터 32개를 가졌으며 매우 C-friendly인 단순한 레지스터 기반 아키텍처를 사용합니다(그림 1).

그림 1: megaAVR 마이크로 컨트롤러는 R0 ~ R31로 지정된 8비트 레지스터 32개를 기반으로 합니다. 또한 레지스터는 16비트 레지스터 16개를 쌍으로 형성하여 처리할 수 있습니다. (그림 출처: Microchip Technology)

GP 레지스터는 16비트 레지스터 16개를 쌍으로 형성하여 배가할 수 있습니다. 마지막 레지스터 쌍 3개는 필요한 경우 간접 처리를 위한 16비트 처리 레지스터 X, Y 및 Z로 사용할 수 있습니다.

이러한 GP 레지스터 외에 megaAVR에는 16비트 스택 레지스터와 8비트 상태 레지스터가 있습니다. 이게 전부입니다. 조립품에서 프로그래밍하는 것은 매우 간단합니다(“진짜 프로그래머는 조립품에서 프로그래밍합니다.”).

단, megaAVR에서는 프로그램 카운터에 액세스할 수 없다는 점만 빼면 말입니다.

megaAVR 제품군의 일반적인 예는 20MHz ATMEGA1609입니다. 이 제품군에는16Kbyte의 플래시, 2Kbyte의 RAM 및 256바이트의 EEPROM이 장착되었으며 사용하기 간편한 마이크로 컨트롤러입니다. 대부분의 명령어는 단일 주기입니다.

그림 2: Microchip Technology의 ATMEGA1609는 다양한 환경에서 작동할 수 있는 간단하고 유연한 저전력 8비트 마이크로 컨트롤러입니다. (그림 출처: Microchip Technology)

10비트 아날로그 디지털 컨버터(ADC), 16비트 타이머 5개, 실시간 클록(RTC), 다중 저전력 옵션 및 2주기 신호/무신호 하드웨어 배율기가 포함됩니다.

또한 megaAVR에는 단일 주기 비트 세트와 비트 지우기 명령어 및 1 ~ 3주기가 필요한 비트 테스트 명령어도 있습니다.

C 언어를 사랑하는 개발자는 비트 명령어의 중요성을 종종 간과합니다. 사실 네이티브 비트 명령어(“no ATOMIC 명령어는 필요 없다”)는 성능을 크게 높이고, 코드 크기를 줄이고, 코드 가독성을 높이고, 복잡성을 해소할 수 있습니다.

ATMEGA1609에 필요한 전원 공급은 -40°C ~ +125°C에서 작동할 수 있는 유연한 1.8V ~ 5.5V입니다. 넓은 전원 공급과 작동 온도는 결코 우연이 아닙니다. 이 8비트 마이크로 컨트롤러는 다양한 설계 환경에 쉽게 적응하여 사용되도록 설계되었습니다. 다시 말하지만 “사용 편의성”이 높습니다.

개발자는 때로 간단한 프로젝트를 빠르게 진행해야 할 때가 있는데, 이때 8비트는 사용하기 간편하고, 유연하고, 강력합니다. 무시하기엔 너무 훌륭한 특징이지요.

작성자 정보

Image of Bill Giovino

Bill Giovino는 시러큐스 대학(Syracuse University)에서 전자 공학 학위를 취득한 전자 엔지니어이며, 설계 엔지니어링에서 현장 애플리케이션 엔지니어링은 물론 기술 마케팅에 이르기까지 바로 투입 가능한 몇 안 되는 실력자 중 하나입니다.

Bill은 25년 이상 STMicroelectronics, Intel, Maxim Integrated를 비롯한 다양한 회사의 기술 및 비기술 담당자를 대상으로 신기술을 홍보해 왔습니다. STMicroelectronics 재직 중 Bill은 마이크로 컨트롤러 업계에서 회사의 초기 입지를 다지는 데 공헌했습니다. Infineon에서는 미국 자동차 업계에서 회사 최초로 마이크로 컨트롤러 설계를 성공으로 이끌어 내는 역할을 했습니다. Bill은 직접 설립한 CPU Technologies의 마케팅 컨설턴트로 일하면서, 많은 업체들이 실적이 저조한 제품의 실적을 개선하는 데 도움을 주고 있습니다.

Bill은 최초의 전체 TCP/IP 스택을 마이크로 컨트롤러에 배치하는 것을 비롯하여 사물 인터넷을 조기에 수용한 바 있습니다. Bill은 '교육을 통한 판매'라는 메시지와 온라인을 통한 제품 홍보에 있어 커져 가는 명확하고 분명한 의사 소통의 중요성 전달에 전념하고 있습니다. Bill은 LinkedIn의 인기 그룹인 Semiconductor Sales & Marketing Group의 중재자이며, B2E에 유창합니다.

More posts by Bill Giovino
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum