마이크로 컨트롤러에 왜 RAM이 적습니까?


39

어쩌면 이것은 지각상의 문제 일 수도 있지만, 지난 20 년 동안 마이크로 컨트롤러가 거의 모든 측면에서 더 높은 클럭 속도, 더 많은 주변 장치, 더 쉬운 디버깅, 32 비트 코어 등으로 발전한 것처럼 보입니다.

10의 KB (16/32 KB)에서 RAM을 보는 것이 여전히 일반적입니다.

직접 비용이나 크기에 문제가있는 것 같지는 않습니다. RAM 컨트롤러가 임계 값을 초과하는 복잡성 문제입니까?

아니면 일반적으로 필요하지 않다는 것입니까?

인기있는 인터넷 공급 업체의 부품 매트릭스를 살펴보면 8 달러 미만의 256KB의 Cortex M4 하나를 볼 수 있습니다. 몇 달러가 더 있으면 ROM이없는 몇 가지를 더 많이 찾을 수 있지만 꽤 드문 것 같습니다 ...

MB의 휘발성 스토리지를 갖춘 마이크로 컨트롤러가 필요하지는 않지만 누군가가 할 수있는 것처럼 보입니다 ...


8
아마도 더 기술적 인 이유가있을 수 있지만 시장의 문제 일 수 있습니다. 마이크로 컨트롤러를 사용하는 애플리케이션이있을 때 마이크로 컨트롤러를 사용하고, 더 많은 전력이 필요할 때 일반적으로보다 완전한 임베디드 시스템으로 이동합니다.
Jarrod Christman

15
ks의 10s. 대단합니다. 프로토 타이핑에 사용하는 마이크로 컨트롤러에는 68 바이트 의 RAM이 있습니다. en.wikipedia.org/wiki/PIC16x84
slebetman

2
나는 한때 2KB RAM을 가진 Arduino에서 86B로 3D 소프트웨어 래스터 라이저를 작성했습니다. 10KB 나 50KB를 가지고 있다면 실제로 실제 모델을 메모리에 맞추고 흥미로운 것을 할 수 있었기 때문에 화를 냈습니다. 충분히 해결하십시오. SRAM은 비싸지 만 CPU에는 SRAM으로 만들어진 메가 바이트 의 캐시가 있지만 여전히 저렴합니다. 절름발이 변명 같은 느낌이 든다.
imallett

2
@slebetman 훨씬 더 나은 장치가 더 널리 사용되고 저렴할 때 20 년 된 마이크로를 좋아하는 이유는 무엇입니까?
markrages

3
it seems like somebody might대부분의 사람들은 그렇지 않습니다. 해당 칩에서 Netflix를 정확하게 스트리밍하지는 않으며 64K는 일반적으로 마이크로 컨트롤러 와 관련된 모든 작업에 충분합니다 . 더 높이 가고 싶다면, 라즈베리와 같은 완제품을 구입하십시오.
TC1

답변:


44

여기에는 몇 가지 이유가 있습니다.

우선, 메모리는 많은 실리콘 영역을 차지합니다. 이것은 RAM의 양을 증가 시키면 칩의 실리콘 면적을 직접 증가시켜 비용을 증가 시킨다는 것을 의미합니다. 실리콘 면적이 클수록 가격에 '더블 whammy'효과가 있습니다. 칩이 클수록 웨이퍼 당, 특히 엣지 주변에서 칩이 적으며 칩이 클수록 각 칩에 결함이 발생할 가능성이 높습니다.

둘째는 프로세스 문제입니다. RAM 어레이는 로직과 다른 방식으로 최적화되어야하며 동일한 프로세스에서 동일한 칩의 다른 부분을 전송할 수 없습니다. 전체 칩은 동일한 프로세스로 제조되어야합니다. DRAM 생산에 전념하는 반도체 파운드리가 있습니다. CPU 나 다른 로직이 아니라 DRAM을 똑바로 세우십시오. DRAM에는 면적 효율적인 커패시터와 매우 낮은 누설 트랜지스터가 필요합니다. 커패시터를 만들려면 특별한 처리가 필요합니다. 누설이 적은 트랜지스터를 만들면 트랜지스터가 느려져 DRAM 판독 전자 장치와의 균형이 좋지만 고성능 논리를 구축하는 데는 좋지 않습니다. 마이크로 컨트롤러 다이에서 DRAM을 생산한다는 것은 어떻게 든 공정 최적화를 절충해야한다는 것을 의미합니다. 대형 RAM 어레이는 또한 면적이 넓기 때문에 고장을 일으킬 가능성이 높으며 수율이 감소하고 비용이 증가합니다. 큰 RAM 어레이를 테스트하는데도 시간이 걸리므로 큰 어레이를 포함하면 테스트 비용이 증가합니다. 또한 규모의 경제로 인해보다 전문화 된 마이크로 컨트롤러보다 별도의 RAM 칩 비용이 절감됩니다.

전력 소비가 또 다른 이유입니다. 많은 임베디드 애플리케이션은 전력이 제한되어 있으며 결과적으로 많은 마이크로 컨트롤러가 구축되어 매우 낮은 전력 슬립 상태에 놓일 수 있습니다. 매우 낮은 전력 수면을 가능하게하기 위해 SRAM은 전력 소비가 매우 낮은 상태로 내용을 유지할 수있는 기능으로 인해 사용됩니다. 배터리 백업 SRAM은 단일 3V 버튼 배터리로 몇 년 동안 상태를 유지할 수 있습니다. 반면 DRAM은 1 초 이상 상태를 유지할 수 없습니다. 커패시터는 너무 작아서 소수의 전자가 기판 밖으로 터널링되거나 셀 트랜지스터를 통해 누출된다. 이 문제를 해결하려면 DRAM을 지속적으로 읽고 다시 써야합니다. 결과적으로 DRAM은 유휴 상태에서 SRAM보다 훨씬 더 많은 전력을 소비합니다.

반대로 SRAM 비트 셀은 DRAM 비트 셀보다 훨씬 크기 때문에 많은 메모리가 필요한 경우 일반적으로 DRAM이 더 나은 옵션입니다. 그렇기 때문에 많은 양의 오프 칩 DRAM (MB ~ GB)과 결합 된 온칩 캐시 메모리로 소량의 SRAM (kB-MB)을 사용하는 것이 일반적입니다.

저렴한 비용으로 임베디드 시스템에서 사용 가능한 RAM의 양을 늘리는 데 사용되는 매우 멋진 디자인 기법이 있습니다. 이들 중 일부는 프로세서와 RAM을위한 별도의 다이를 포함하는 멀티 칩 패키지입니다. 다른 솔루션으로는 CPU 패키지 위에 패드를 생산하여 RAM 칩을 쌓을 수 있습니다. 이 솔루션은 필요한 메모리 양에 따라 다른 RAM 칩을 CPU 위에 납땜 할 수 있으므로 추가 보드 수준 라우팅이 필요하지 않습니다 (메모리 버스가 매우 넓고 많은 보드 영역을 차지함). 이러한 시스템은 일반적으로 마이크로 컨트롤러로 간주되지 않습니다.

매우 작은 임베디드 시스템은 많은 RAM이 필요하지 않습니다. 많은 RAM이 필요한 경우 온보드 SRAM 대신 외부 DRAM이있는 고급 프로세서를 사용하고 싶을 것입니다.


레그가있는 실제 RAM IC와 프로세서 (BGA 패키지) 위에 붙어 있거나 붙인 모든 것을 보았습니다. 우리가 보드 공간을 위해하는 것 !! :) 러시아는 X와 Y의 공간을 실행하는 경우, Z로 이동, 디자인의 자신의 TRIZ 방법론과 지적으로
KyranF

2
+1 SRAM과 DRAM의 중요한 차이점. SRAM은 특히 유휴 상태 일 때 더 빠르고 에너지 효율적이지만 둘 다 더 비싸고 더 많은 공간이 필요합니다.
fizzle

SRAM이 가장 비싼 RAM이라고 생각하지 않습니다. 플립 플롭과 멀티플렉서의 조합은 SRAM보다 더 나은 성능을 제공하지만 훨씬 더 큰 실리콘 비용으로 랜덤 액세스 메모리로 사용될 수 있습니다. 이러한 메모리는 일반적으로 약 32 워드보다 훨씬 크지 않지만 이러한 메모리는 SRAM이 할 수없는 방식으로 동시 읽기 및 쓰기를 수용 할 수 있습니다.
supercat

1
사실 레지스터 파일과 풀 플립 플롭은 SRAM보다 비싸지 만 범용 시스템 메모리에는 사용되지 않습니다.
alex.forencich

1
160kB의 SRAM과 외부 DRAM이없는 MCU에서 작동하는 HTTP 서버를 보았습니다. 많은 병렬 연결을 처리 할 수 ​​없었지만 작동했습니다.
Jan Dorniak

15

메모리는 아마도 가장 많은 실리콘 공간을 차지하고 RAM은 사용 속도가 매우 빠르며 전원을 지속적으로 사용하여 상태를 유지합니다. 많은 RAM이 필요하지 않으면 다른 많은 응용 프로그램 에는 유용하지 않습니다 . 임베디드 시스템 설계자가 더 많은 RAM을 필요로하는 경우, 단지 외부 RAM 칩을 확보하고 오늘날 마이크로 컨트롤러가 플러그 앤 플레이 메모리 확장을 매우 쉽게 수행 할 수있는 주변 장치 메모리 인터페이스를 사용합니다. 이것이 합리적인 애플리케이션 코드와 유스 케이스 시나리오가 일반적으로 많이 필요하지 않기 때문에 마이크로 컨트롤러가 일반적으로 여전히 낮은 온보드 RAM을 갖는 이유라고 생각하는 이유입니다.

운영 체제에서 전체를 실행해야하는 더 큰 아키텍처에 도달하기 시작하면 RAM이 매우 중요해집니다. 그러나 이것은 마이크로 컨트롤러의 영역에서 비글 본 및 Raspberri Pi 보드에서 볼 수있는 것과 같은 임베디드 컴퓨터로 가져옵니다. 일. 그리고이 단계에서도 프로세서는 매우 복잡하고 기능이 풍부하여 작업에 필요한 RAM 용량이 없으므로 외부 메모리가 거의 작동해야합니다.

편집하다:

개인 일화로서, 최근에는 모션 감지, 물체 추적 및 추적과 같은 저해상도 컴퓨터 비전에 사용하기 위해 소형 자율 로봇 제어 보드를 만들었습니다. 이 작업을 위해 적은 핀 수의 ARM Cortex M3을 선택했으며 Atmel이 선택한 SAM3 시리즈 프로세서를 살펴보면서 실제로 찾을 수있는 가장 높은 RAM을 찾았습니다.이 경우 외부 RAM IC를 사고 싶지 않았습니다. 보드 공간으로 인해 PCB에서 고속 RAM 메모리 버스의 복잡성을 원하지 않습니다. 이 경우 내 특정 응용 프로그램의 경우 가능한 경우 100KB 이상의 RAM 옵션을 선호합니다.


좋은 점은 전력 소비에 대해서는 생각조차하지 않았다 ...
Grady Player

4
"램은 휘발성이지만 사용하기 매우 빠르며 전력을 지속적으로 사용하여 상태를 유지합니다". SRAM을 포함한 CMOS 로직은 상태를 변경하지 않을 때 전력을 거의 사용하지 않습니다. 소비 전력이 매우 낮은 경우에도 대부분의 마이크로 컨트롤러는 RAM 내용을 유지합니다.
Chris Stratton

@ChrisStratton : 몇 가지 다른 제조업체의 많은 마이크로 컨트롤러를 보았습니다. 몇 가지 귀찮게 전력을 절약하기 위해 RAM을 일부 종료하는 모드가 있습니다. 시스템 재설정없이 후자의 제한의 목적이 무엇인지 확실하지 않습니다. 특정 작업 중에 임시 저장을 위해 큰 RAM 덩어리가 필요하지만 그렇지 않은 경우 필요할 때 전원을 켜고 끌 수없는 이유는 알 수 없지만 그러한 것을 보지 못했습니다. 특색.
supercat

14

다른 답변에서 얻은 훌륭한 점 외에도 제한된 RAM의 또 다른 이유는 마이크로 컨트롤러의 아키텍처입니다. 예를 들어 448 바이트 의 프로그램 (플래시) 메모리와 64 바이트 의 RAM 만있는 Microchip PIC10LF320을 사용하십시오 . 그러나 대량의 비용은 25 costs (또는 그 이하) 일 것입니다. PIC10 명령어 (12 비트)의 제한된 크기로 인해 128 바이트의 RAM 만 직접 주소 지정할 수 있습니다.

8 비트 주소 버스 만 가지고 있으며 256 바이트의 RAM으로 제한하는 다른 마이크로 컨트롤러가 있습니다.

그러나 대부분의 중간 범위 마이크로 컨트롤러 (8 비트 데이터 경로가있는 것조차 포함)에는 16 비트 주소 버스가 있습니다. 이 칩의 주요 아키텍처 고려 사항은 칩이 Harvard를 사용하는지 또는 Von Neumann 아키텍처를 사용하는지 입니다.

대부분의 마이크로 컨트롤러는 프로그램 메모리, RAM 및 메모리 매핑 된 I / O 주소를위한 별도의 16 비트 주소 공간이있는 Harvard 아키텍처를 사용합니다. 이를 위해 16 비트 주소 버스는 최대 64K (65,536) 바이트의 RAM에 액세스 할 수 있습니다. 아키텍처에는 여전히 64K 제한이 있으며,이를 초과하려면 특정 종류의 페이징을 사용해야합니다. RAM 공간이 아닌 프로그램 공간을 페이징하는 것이 훨씬 일반적입니다.

Freescale HCS08 라인과 같은 Von Neumann 아키텍처를 사용하는 마이크로 컨트롤러는 프로그램 메모리, RAM 및 메모리 매핑 된 I / O간에 하나의 주소 공간 만 나뉘어 있습니다. 적당한 양의 프로그램 공간을 확보하기 위해 RAM 크기는 일반적으로 4K 또는 8K로 제한됩니다. 다시, 페이징을 사용하여 사용 가능한 프로그램 또는 RAM 공간을 늘릴 수 있습니다.


1
그래도 PIC 코어는 코드가 전혀 유효하지 않으므로 아무 것도없이 많은 추가 플래시를 소비한다는 점을 명심해야합니다. 그리고 많은 RAM이 필요하지 않은 한 가지 이유는 호출 스택 깊이와 같은 심각한 제한이 있기 때문입니다.
Lundin

@Lundin Agreed, 어셈블리 언어로 원본 PIC10 및 PIC12를 매우 신중하게 프로그래밍 해야 합니다. 최신 PIC12F 및 PIC16F 디바이스는 이제 16 레벨 하드웨어 스택과 14 개의 새로운 명령을 갖습니다. 일부는 C에만 추가되었으므로 훨씬 더 유용합니다.
tcrosley

@Lundin : 12 비트 및 14 비트 명령어 길이의 PIC 칩은 내가 생각한 코드 밀도에 매우 적합했습니다. PIC18F는 일반적으로 필요한 과도한 뱅크 스위칭으로 인해 HiTech 컴파일러를 사용할 때 코드 밀도가 실제로 떨어지는 경향이있었습니다.
supercat

7

마이크로 컨트롤러 및 소형 시스템과의 협력을 위해 지금은 아주 작은 RAM이 필요하다는 점을 지적하고 싶습니다. MCU가 큰 성과를 거둘 수는 있지만 요즘 추세는 이전보다 훨씬 더 많은 MCU를 사용하고 더 많은 시스템을 사용하여 더 큰 시스템에 많은 작업을 분산시키는 것입니다. 이는 Windows에서 프로그래밍하는 데 필요한 부풀린 개발 시스템과 달리 MCU 개발은 종종 매우 효율적인 C 및 C ++ 소스 코드를 사용하는 최적화 된 컴파일러를 사용하며 OS 오버 헤드가 거의 또는 전혀없는 경우가 종종 있습니다. OS 리소스를 포함하여 최소 수백 킬로바이트를 소비하지 않고 모든 장치에서 이름을 표시하는 Windows 프로그램을 거의 작성할 수는 없지만,

다른 사람들이 지적했듯이 확실히 비용과 공간 문제가 있습니다. 그러나 현재의 역사는 최근 이민자들이 소량의 RAM으로 간주하는 것이 그 어느 때보 다 훨씬 많으며 MCU가 인터페이스해야 할 구성 요소와 장치가 점점 더 똑똑해지고 있다는 것입니다. 솔직히 말해서, 최근 많은 MCU 응용 프로그램에서 RAM을 가장 많이 사용하는 것은 데이터를 잃을 염려없이 MCU를 다른 작업에 사용할 수 있도록 인터럽트 구동 통신 버퍼에 사용되었습니다. 그러나 일반적인 논리 및 계산 기능을 위해 MCU는 제한된 내장 RAM 및 플래시 리소스와 매우 잘 일치하며 실제로 거의 할 수없는 일을 많이 할 수 있습니다 .

옛날에는 조잡한 그래픽을 가진 유명한 비디오 게임이지만 "PAC Man"및 "Space Invaders"와 같은 복잡한 게임 로직은 일반적으로 8KB 또는 16KB의 RAM이 거의없는 머신에서 8K ROM 내에서 수행되었습니다!


SD 카드는 어떻습니까? SDHC 카드에 256 또는 512 바이트의 버퍼가 필요하지 않습니까 (표준 / 이전 SD 카드는 더 이상 생성되지 않음)?
Peter Mortensen

Atari 2600 비디오 컴퓨터 시스템 용 Pac Man의 버전은 4K ROM이고 VCS 자체에는 128 바이트의 RAM이있었습니다. 그러나 많은 아케이드 머신은 당시의 가정용 컴퓨터와 비교하여 상당히 괜찮은 ROM과 RAM 덩어리를 가졌습니다. 예를 들어 Defender는 32K 또는 ROM과 64K의 RAM을 가지고 있다고 생각하지만 32K의 RAM은 CPU의 관점에서 "쓰기 전용"이었습니다 (프로세서는 디스플레이 하드웨어가 모니터에 클럭 아웃하는 데이터를 저장합니다) .
supercat

@PeterMortensen 많은 SD 카드에는 플래시를 관리하기위한 일종의 통합 CPU가 있습니다. 일부 카드에는 전체 32 비트 ARM 코어가 있으며 16 또는 32K의 RAM이 연결되어있을 수 있습니다.
alex.forencich

@ alex.forencich : 예. 그러나 SDHC SD 카드를 작동하기위한 SPI 인터페이스가 호스트 측 (내장형 시스템 / 마이크로 컨트롤러)에 버퍼를 필요로하지 않습니까? 즉, 최신 (SDHC) 카드에서는 비트 주소 지정이 더 이상 가능하지 않습니까? 아니면 파일 시스템에만 의존합니까 (비트 주소 지정 가능)? 최신 카드에는 블록 전송이 필요하지 않으므로 256 또는 512 바이트의 버퍼가 필요하지 않습니까?
Peter Mortensen

그렇습니다. 512B입니다. 비효율적 인 SD 카드 드라이버를 작성하여 첫 번째 X 바이트의 데이터를 버리고 "큰"버퍼가 필요하지 않습니다.
domen

3

비용과 제조에 관한 우수한 점 외에도 많은 온칩 RAM에 대한 수요는 놀랍지 않습니다.

나는 종종 수십 kB (16kB, 32kB)의 플래시와 kB 범위 (1kB, 2kB)의 RAM을 가진 마이크로 컨트롤러를 사용합니다. 나는 종종 플래시가 부족하고 거의 RAM이 부족하지 않습니다. 대부분의 프로젝트에서 플래시 한계에 가까워 지지만 일반적으로 RAM의 20 % 미만이 필요합니다.

대부분의 초소형 마이크로 컨트롤러에는 두 가지 종류의 역할이 있습니다.

  • 규제 및 통제 : 그들은 기계를 통제해야한다. 수십 kB의 코드 공간을 차지할 수있는 복잡한 컨트롤러 알고리즘의 경우에도 RAM이 거의 필요하지 않습니다. 실제 프로세스를 제어하고 있으며 몇 개의 물리적 단위를 포함하는 변수와 루프 카운터로 사용되는 변수가있을 수 있습니다. 더 필요가 없습니다.

  • 데이터 처리 : 드물게 많은 양의 데이터를 동시에 저장해야하는 경우 외부 RAM을 사용할 수 있습니다. 거의 모든 최신 마이크로 컨트롤러는 기본적으로 지원합니다. 많은 메모리를 사용하는 간단한 프로그램이 필요한 경우 고급 마이크로 컨트롤러가 아닌 작은 마이크로 컨트롤러와 외부 RAM을 사용하는 것이 저렴하고 작습니다. 포트가 적고, 플래시가 적고 RAM이 큰 컨트롤러는 수요가 거의 없기 때문에 아무도 생산하지 않습니다.


2

이미 언급 된 모든 이유는 기술적으로 유효하고 정확합니다. 그러나 전자는 비즈니스 이며 MCU는 전자 산업에서 가장 경쟁력있는 틈새 시장 중 하나입니다.

MCU의 가격표를 임베디드 SRAM의 양에 연결하는 실제 이유는 비용 이유가 아니라 주로 마케팅 이유입니다.

  • 대부분의 설계에서 달성 가능한 최대 클록 주파수는 제한 요소가 아닙니다. 대신 사용 가능한 SRAM의 양이 다릅니다. 나에게 잘못하지 마십시오 .CPU 주파수는 매우 중요하지만 특정 MCU 제품군 세그먼트 내에서는 일반적으로 최대 CPU 주파수에 따라 다른 가격으로 다른 장치 모델을 제공하지 않습니다. 또한 플래시 프로그램 스토리지는 또 다른 주요 제한 요소이지만 플래시에 너무 집중하지는 않습니다 (질문은 SRAM에 관한 것입니다).

  • 사용 가능한 SRAM의 양은 MCU에 내장 할 수있는 복잡성 수준 (타사 라이브러리 또는 자체 롤아웃 코드)과 직접 관련이 있습니다. 따라서 MCU 가격을 기준으로 세분화하는 것은 "자연적인"메트릭입니다. 기술적 인 고객은보다 복잡한 작업 (더 많은 SRAM, 더 많은 플래시 스토리지)을 수행 할 수있는 MCU가 더 많은 비용을 지불해야한다는 점을 이해할 수 있습니다. 여기서 가격은 MCU의 기본 가치 (제공 기능)를 반영한 ​​것입니다. 플래시 스토리지는 일반적으로 SRAM에 비례하여 제공됩니다.

  • 반대로, 데스크톱 및 모바일 CPU 시장을 점유하면 일반적으로 다양한 SRAM 크기를 가진 특정 MCU / CPU를 소싱 할 수 없습니다. 대신 가격 체계는 일반적으로 주파수, 코어 수, 전력 효율 등 MCU / CPU의 실행 / 성능 기능 위에 구축됩니다.


나는 이것이 정확하다고 생각하지만 증거가 있습니까? 칩 a를 칩 b로 판매하기 위해 흔적을 긁는 것처럼?
Grady Player

음 ... 흥미로운 생각입니다. 그러한 관행에 대한 증거가 없습니다. 그러나 기본 제조 비용에 대한 흥미로운 질문이 있습니다. 더 높은 SRAM 크기 칩이 더 작은 SRAM 크기로 긁힌 경우 실리콘 칩 (웨이퍼)의 낭비되는 공간이 더 비쌀까요? 아니면 단일 장치가 아닌 두 장치를 제조하는 데 따른 제조 및 재고 비용이 증가합니까? 전체 전자 산업이 공개적으로 비용을 논의하는 것에 대해 매우 까다 롭습니다. 우리는 그것을 알지 못할 수도 있습니다.
jose.angel.jimenez '10

1
증거 : MT6250은 단일 칩 피처 폰에 사용되는 멀티 다이 칩으로, 부피가 $ 2 미만이며 mcu보다 훨씬 복잡하며 8MB 스램 다이를 포함합니다. 기술은 SRAM이 풍부한 MCU입니다.
hulkingtickets

"왜 MCU의 가격표가 내장 SRAM의 양과 연결되어 있습니까?"에 대한 좋은 대답이 될 것입니다. 그러나 원래의 질문에 대답하지 않는 것 같습니다. 어떤 가격으로 512KB 이상의 SRAM 온칩을 사용할 수있는 마이크로 컨트롤러가 왜 그렇게 적은가 ? 전용 SRAM 칩 제조업체가 재고 비용을 줄이면 전용 SRAM 칩을 2의 거듭 제곱으로 만 생산할 가치가 있다고 생각할 때 왜 "이상한"2의 제곱이 아닌 SRAM 크기의 마이크로 컨트롤러가 그렇게 많은가?
davidcary

1

따라서 먼저 16KB 또는 32KB는 엄청난 양의 메모리이며 오늘날 판매되는 대부분의 마이크로 컨트롤러에는 그러한 많은 양의 RAM이 없습니다.

많은 마이크로 컨트롤러 프로그램에는 10 또는 50 바이트의 메모리가 필요합니다. 더 복잡한 것은 대부분 수백 바이트에 필요합니다.

기본적으로 RAM이 KB 단위로 필요한 세 가지 사용 사례가 있습니다 .a) 마이크로 컨트롤러가 그래픽을 수행하는 경우 b) 대규모 임의 계산을 위해 마이크로 컨트롤러를 사용하는 경우 c) PC 인터페이스와 인터페이스

두 번째로 마이크로 컨트롤러 RAM에 대해 이야기하면 Level 0 / Level 1 캐시에 대해 이야기합니다. Intel Haswell에 64KB의 레벨 1 캐시 만 "있는"것으로 생각하면 마이크로 컨트롤러의 RAM 크기를 다시 고려해야합니다.

셋째, 마이크로 컨트롤러, 특히 CPU에 연결할 수있는 것보다 많은 양의 외부 RAM을 연결할 수 있습니다.

개인적으로 많은 마이크로 컨트롤러 응용 프로그램을 개발 중이며 1KB 이상의 메모리가 필요하지 않았습니다. 또한 외부 RAM을 사용한 적이 없습니다.

프로그램과 데이터가 ROM에 있으므로 ROM (오늘 플래시)을 사용하면 상황이 다릅니다. 데이터가 많기 때문에 외부 ROM을 마이크로 컨트롤러에 연결하는 응용 프로그램이 실제로 많이 있습니다.

예제를 살펴 보자 : 마이크로 컨트롤러 응용 프로그램을 분석하고 디스플레이와 4 기가 바이트의 플래시를 갖춘 휴대용 MP3 플레이어를 사용합니다.

이 응용 프로그램의 경우 1KB RAM이 필요할 수 있습니다. 그것은 일을하기에 충분합니다. 그러나 더 큰 버퍼에 더 많은 RAM을 사용하여 USB-Flash 쓰기 속도를 높일 수 있습니다.

이제 차이점을 알 수 있습니다. 일반적인 PC는 모든 프로그램과 데이터를 RAM에 저장합니다. 따라서 많은 RAM이 필요합니다. 마이크로 컨트롤러의 경우 모두 플래시 / ROM에 있습니다.


2
많은 응용 프로그램에서 RAM 사용량을 과소 평가합니다. 막대한 양이 아니라 인스턴스에 따라 10-100 배가 될 수 있습니다. MP3 플레이어는 디지털 신호 처리를 수행해야합니다.
Jason S

왜 당신 둘 중 하나가 이런 말을하는지 알고 싶습니다 RAM이 필요한 C 명령 종류 "이러한 응용 프로그램에는 더 많은 RAM이 필요합니다."라고 말하기보다는 "이러한 작업에는 더 많은 RAM이 필요합니다."
Frederick

-1

MCU를 설계하는 동안 PC에서 중요하지 않은 조건에 직면해야합니다.

  1. 내구성

    구성 요소를 선택하려면 최상의 또는 가장 높은 성능의 부품을 반드시 가져야 할 필요는 없지만 몇 년 동안 사용한 후에도 제대로 작동하는 것으로 판명 된 부품은 몇 년 동안 사용할 수 있으며 연중 무휴로 사용할 수 있습니다. 연령. 이러한 상황으로 인해 컨트롤러가 몇 년 동안 시장에 나와서 잘 작동한다면 오늘날 PC 표준과 비교할 때 RAM이 부족한 것 같습니다. 그러나 어쨌든, 그것은 잘 작동하며 엔지니어링이 잘된다면 교체 할 필요가 없습니다.

  2. 우주

    마이크로 프로세서 장치는 문자 그대로 마이크로입니다. 필요한 공간을 최소한으로 줄여야합니다. 물론 10 년 된 64KB 칩과 동일한 공간에서 256MB를 얻을 수 있습니다. 이것은 # 1이 지적하는 곳입니다.

  3. 가격

    구매 가격뿐만 아니라 전력 소비도 있습니다. 비즈니스 경쟁자가 25W 만 필요한 것이라면 1000W가 필요한 엔트리 시스템을 제어 할 수있는 MCU를 설계하고 싶지 않습니다. 물론 저렴한 가격 (동일한 품질)은 항상 더 좋습니다.


1
정말 고성능 마이크로 프로세서입니다!
KyranF

2
1kW MCU가 고체 상태로 오래 유지되지 않을 것이라고 생각합니다.
Dan Bryant

1
세 가지 포인트는 매우 요즘 PC 디자인에서 중요.

@KyranF : 그렇습니다. 두 숫자를 모두 100으로 나눕니다. 그러나 그는 배터리 애플리케이션을위한 고성능 프로세서와 저전력 마이크로 컨트롤러의 상대적인 전력 차이를 과소 평가했습니다.
Ben Voigt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.