임베디드 시스템, IoT시스템, RISC, CISC 등등 많은 용어들 중에 일반 컴퓨터와 임베디스 시스템은 무엇이 다른지 확실히 정리하기 위해 작성을 시작했다.
일단 구글에 임베디드 시스템이라고 검색하면 Gemini가 "특정 기능을 수행하도록 설계된 하드웨어와 소프트웨어가 내장된 컴퓨터 시스템"라고 설명한다. 개인적으로 여기서 가장 중요한 말은 "특정 기능을 수행하도록"이라고 생각한다.
일반 컴퓨터는 많은 기능을 활용할 수 있도록, 그리고 빠르고 쉽게 작동하도록 하는 것이 목표이지만, 임베디드는 스마트폰, 가전제품, 자동차등 처럼 특정기능을 위해 최적화시키는 시스템이다. 그래서 제한된 자원을 효율적으로 사용하고 실시간 제어와 같은 특정 요구사항을 충족시켜야하는 경우가 많다.
대다수의 임베디드 시스템은 물리적인 환경을 센서와 엑추에이터를 통해 감지하고 동작해야하기 때문에 실시간 제약(real-time constraint)를 필요로 한다.
임베디드의 하드웨어는 CPU, Memory, I/O,,,(네트워크 장비, 센서, 엑추에이터)등으로 구성되는데, 자세한건 컴퓨터 구조에서 정리하도록 하고 이번 페이지에서는 간단히 다음에 대해 알아보자.
일단 CPU(Central Processing Unit)는 프로그램을 실행하기 위한 중앙처리장치로, 연산(ALU)과, 제어(Controller)와, 아주 중요한 저장(Register)을 수행한다.(= 컴퓨터 두뇌) 주로 OS와 애플리케이션을 실행하고, 주변장치와의 연결을 제어한다.
MCU(Microcontroller Unit)는 위에서 말한 CPU와 메모리, 주변장치(ADC, GPIO, UART 등)를 하나의 칩에 넣은 소형 컴퓨터를 의미한다. 크기가 작고 전력을 적게 사용하도록 설계되으며 실시간 제어에 최적화되어있다.그래서 OS가 없더라도 펌웨어만으로 동작이 가능하게 된다. STM32,아두이노에 들어가는 Atmega328이 여기에 포함 된다.
SoC(System on Chip)는 CPU, GPU, 메모리 컨트롤러, 통신 모듈, 주변장치등 하나의 칩에 통합한 시스템 전체를 의미한다.상대적으로 성능이 높고, 전력이 낮도록 구성했으며, 범용 OS를 실행할 수 있다.Qualcomm Snapdragon, Apple A16, 라즈베리파이의 Broadcom BCM2711이 포함 된다.
참고로 라즈베리 보드 자체는 SoC가 아니고 SBC(Single Board Computer, 단일 보드 컴퓨터)다.
.
.
.
chatGPT는 다음처럼 정리해주었다.

이 차이는 CPU 내부에서 처리하는 데이터 크기에 따라 달라진다. 8비트 CPU는 레지스터가 8비트(=1바이트) 크기라서 한 번에 8비트 데이터만 처리 가능해지는 것이고, 16비트 CPU는 레지스터가 16비트(=2바이트)를 처리해서 더 큰 수나 주소 처리 가능해지는 것이다.
또한 레지스터는 보통 메모리 주소도 담기 때문에, 비트 수는 주소 공간과 직결된다.
ㄴ 8비트 CPU는 주소 버스가 16비트인 경우가 많아서 64KB 메모리 한계
ㄴ 16비트 CPU는 보통 1MB(20비트 주소)까지 확장 가능
ㄴ 32비트 CPU는 4GB 메모리 주소 가능
그래서 "레지스터 크기 = 내부 데이터 처리 단위"라고 보면 된다.
즉, 레지스터 크기가 클수록(=데이터 버스의 폭이 클수록) 더 많은 데이터를 한 번에 가져올 수 있다.8비트 CPU는 한 번에 1바이트 읽기/쓰기.
32비트 CPU는 한 번에 4바이트 읽기/쓰기.
// 수정이 필요하거나 보충이 필요한 부분은 댓글로 알려주세요.