8 비트 및 16 비트 마이크로 컨트롤러의 위치는 무엇입니까? 32 비트를 인수하지 않은 이유는 무엇입니까?


9

32 비트 마이크로 컨트롤러를 선택하기위한 비용과 성능 사이의 절충점에서 실제 컷오프 지점은 무엇입니까?

다시 말해, ARM 아키텍처의 등장과 지배로 인해 왜 여전히 8 비트 및 16 비트 마이크로 컨트롤러를 사용하고 있습니까? 그들은 여전히 ​​훨씬 저렴합니까?

저급 장치에는 더 크고 복잡한 아키텍처가 제공하는 리소스가 필요하지 않습니다. 그러나 비용이 동일한 범위로 수렴하는 것처럼 보이는 경우 여전히 비용을 사용하려는 진정한 동기는 무엇입니까?


1
전력 소비?
Leon Heller

7
Digikey에서 가장 저렴한 32 비트 µC는 약 $ 0.64이고 가장 저렴한 8 비트는 $ 0.35입니다. 백만 개의 간단한 위젯을 구축하려는 대기업이라면 이는 매우 큰 차이입니다.
사무엘

@LeonHeller 첫눈에 나는 동의하는 경향이 있지만 제안 된 답변의 의견에서 내가 한 점을 살펴 봅니다.
Bruno Morais

2
DigiKey의 대량 가격조차도 훌륭한 가이드가 아닙니다. 대량 생산되는 소형 저전력 임베디드 응용 프로그램의 소형 마이크로에 대해서는 DigiKey에서 아무도 사지 않으며 죽지 않을 가능성이 있습니다. 보드에 납땜하는 칩 패키지. 8 비트 마이크로는 항상 32 비트의 동등한 구성보다 더 작고 단순하므로 저렴하고 전력이 낮습니다. 그렇습니다. 여백은 많은 사람들에게 무의미한 수준으로 떨어지고 있지만 대량으로도 1 페니의 10 분의 1도 절약 할 가치가 있습니다.
John U

Electronic Design의 웹 사이트에서 찾은 관련 기사는 다음과 같습니다. 8 비트 또는 32 비트? 다음 디자인의 MCU 선택
Garth Wilson

답변:


17

아마도 1 년 전, 저가형 8 비트와 가장 저렴한 32 비트 마이크로 컨트롤러간에 상당한 차이가 있었을 것입니다. 더 이상은 아닙니다.

Digi-Key 대량 가격을 기준으로 SOT-23-6 패키지 에서 2500 수량으로 35 비트 용 8 비트 PIC10F200을 얻을 수 있습니다 . SOIC-8 패키지에서 32 비트 CY8C4013SXI-400 (ARM Cortex-M0)을 2500 개 수량으로 36 비트에 사용할 수 있습니다. (Digi-Key 대량 가격 책정은 제조업체가 실제로 지불하는 비용 측면에서 현실적이지는 않지만 아마도 훨씬 적지 만 비슷한 수량에 대해 다른 제품 간의 대략적인 가격 비교에 사용하는 것이 유효하다고 생각합니다.)

그래서 OP는 맞습니다. 그들은 수렴하고 있습니다.

그렇다면 왜 32 비트 칩이 더 많이 사용되지 않습니까? 첫 번째 단락에서 말했듯이,이 가격대와 크기는 지난해 또는 18 개월 동안 만 발생했습니다. 그리고 그들은 경쟁하기에 충분한 칩이 있기 전에 갈 길이 멀다 .

Digi-Key에서 구입할 수 있는 6875 ARM 칩 중 1 달러 미만의 수량 가격으로 재고가 4 개 밖에 없습니다 . . 한편 엔지니어가 선택할 수있는 1 달러 미만의 수백 개의 8 비트 칩이 있습니다.

그러나 최소 수십 개의 로우 엔드 32 비트 마이크로가 있다고 가정 해 보자. 그것들은 자동으로 8 비트 것들로 선택됩니까?

우선 엔지니어가이를 인식하도록해야합니다. 변화에 대한 저항은 항상 많습니다. 새로운 관점-하드웨어 관점에서 새로운 칩을 회로에 통합하는 방법을 배우십시오. 회로 내 프로그래머, 새로운 컴파일러 등과 같은 새로운 도구가 있습니다. 펌웨어 엔지니어에게는 새로운 주변 장치 및 타이머 세트 (대부분 레지스터 레이아웃 및 비트 의미)를 사용하는 방법을 배웁니다.

32 비트는 훌륭하고 모든 것이지만 많은 계산을해야 할 필요가 없다면 요점은 무엇입니까? GPIO 핀이 4 개 밖에없는 경우 32 비트 레지스터로 내부적으로 액세스하면 8 비트 레지스터를 사용하는 것보다 이점이 없습니다.

전력 소비는 항상 8 비트 마이크로를 선호한다고 생각합니다.

예를 들어, PIC10F200은 슬립 모드에서 4MHz 및 2v 및 100nA에서 175µA를 소비합니다. CY8C4013SXI-400은 슬립 모드에서 4MHz 및 2v 및 1uA에서 약 800µA를 소비합니다. (CY8C4013SXI의 데이터 시트에는 4MHz 또는 2v의 숫자가 없으므로 몇 가지 추정을해야했습니다. 데이터 시트에 따르면 2ma @ 6MHz 및 3.3v가 사용됩니다.)

따라서 ARM은 깨어있을 때 4.5 배 많은 전류를 소비하고, 수면 할 때 10 배를 소비합니다. 많이 보이지는 않지만 3 개월 또는 1 년 동안 코인 셀에서 실행하는 것의 차이점입니다. (두 마이크로 컨트롤러가 대부분 타이밍을 수행하고, 포트를 업데이트하는 등 실제 무거운 계산을 수행하지 않는다고 가정합니다. 후자가 경우 8 비트 마이크로는 오랜 기간 동안 많은 멀티 바이트 산술을 수행해야합니다 시간이 지남에 따라 장점의 일부가 사라집니다.)

ARM이 8 비트보다 약 4 배 많은 전류를 소비한다는 점이 흥미롭고, 그 결과 4 배의 내부 레지스터와 데이터 경로가 있습니다. 나는 이것이 우연의 일치라고 생각하지 않습니다. CMOS의 경우 전력 소비는 스위칭되는 트랜지스터 수에 거의 비례하며 ARM은 명령 당 실행되는 작업이 훨씬 많았습니다.

더 많은 ARM 공급 업체가 저가형 칩을 출시함에 따라 Microchip과 같은 공급 업체가 더 많은 가격을 인하해도 놀라지 않을 것입니다. 어쨌든 가격이 비슷하거나 비슷한 크기의 패키지이지만 선택해야 할 32 비트 칩이 훨씬 적기 때문에 8 비트 마이크로 컨트롤러는 여전히 잠시 동안있을 것이라고 생각합니다. 특히 그들에게 익숙한 수만 명의 엔지니어가 있습니다.


슬립 모드가 구현 된 전력 소비의 경우 코드 효율성도 고려해야합니다. MCU가 트리거에 의해 깨어 난 후 일부 코드를 실행하고 다시 잠자기 상태가되면 작업을 완료하는 데 걸리는 클럭 틱 수는 매우 관련이 있습니다. MCU의 현재 소비 전류의 대부분은 최고 속도로 실행되는 발진기에서 나온 것으로 생각합니다. 32 비터와 동일한 작업을 수행하려면 8 비터는 아마도 간단한 산술을 수행 할 때에도 코드 효과가 훨씬 낮기 때문에 약 5 배의 사이클 양이 필요할 것입니다.
Lundin

(그리고 그것은 8 비트 데이터 버스를 가지고 있기 때문에 그다지 중요하지 않지만 주로 시장의 모든 주류 8 비트는 70 년대와 80 년대의 고대 CPU 코어 설계를 가지고 있기 때문입니다.)
Lundin

1
@Lundin 나는 내 대답으로 이것을 말한다 .8-bitter가 ISR에서 많은 멋진 수학을해야한다면, 그것의 이점을 잃어 버립니다. 그러나 플래그를 설정하거나 레지스터를 업데이트하는 경우 더 효율적입니다.
tcrosley

5

세 가지 주요 사항 :

  • 가격
  • 크기
  • 전력 소비

10,000 칩을 주문할 때 50 ¢는 많은 돈입니다. 100,000 개의 칩을 주문할 때 더욱 더.

SOT23-6 패키지로 제공되는 PIC10과 같이 32 비트 칩보다 8 비트 칩이 훨씬 작습니다.

32 비트 칩은 일반적으로 클럭 속도가 빠르며 더 많은 작업을 수행하기 때문에 작은 8 비트 칩보다 훨씬 많은 전력을 소비합니다. 배터리가 더 빨리 소모되고 전력 시스템은 더 많은 전류를 공급해야하므로 비용이 더 많이 듭니다.

결국, 왜 옆집에 설탕을 마시기 위해 저거너트를 사겠습니까?


2
동일한 제조업체의 두 칩 (예 : Microchip의 PIC18F25K20 및 PIC32MX250F512)을 비교하면됩니다. 현대 MCU 모두. 두 데이터 시트 모두 Idd와 클럭 속도가 있습니다. 8 비트 그래프는 5mA에서 최고, 32 비트는 20mA에서 최고입니다. 당신이 그것에 대해 생각하면, 8 비트 연산은 8 래치에 무언가를 할 것입니다-32 비트는 32 래치와 동일하거나 동등한 것입니다. 이는 조작해야하는 래치의 4 배이므로 일반적인 전류 소비의 4 배입니다.
Majenko

2
32 비트의 유휴 전류는 ~ 0.5mA ~ 7mA입니다. 유휴 전류에 대한 8 비트 그래프는 µA 스케일로 측정되며 7µA에서 정상 실온에서 작동 할 때 불과 4µA입니다.
Majenko

3
데이터 시트를 발굴하여 직접 찾으십시오.
Majenko

2
그것은 모든 칩이 처리하고 있다고 가정합니다. 외부 센서 등에서 데이터를 읽는 등 칩 속도에 의존하지 않는 시간이 걸립니다. 80MHz 32 비트 CPU는 16MHz 8 비트 CPU보다 100KHz I2C 장치를 더 빨리 읽지 않습니다.
Majenko

3
레거시 소프트웨어 (특히 인증이 필요한 시스템) 및 개발자 친숙 함, 주변 장치 / RAM / 플래시 구성 요소 선택 (고성능 프로세서를 갖춘 마이크로 컨트롤러 설계는 메모리에 더 많은 칩 영역을 사용함, 256 바이트 RAM을 가진 Cortex-M 사용) 패키지 / 전압 선택과 같은 경우가 있습니다. 좋은 대답은 16 비트 시장이 왜 나아지지 않는지 (그리고 AVR과 같은 더 현대적인 8 비트 ISA) 왜 4 비트 시장이 매우 제한적으로 보이는지 (시계 및 기타) 설명해야합니다.
Paul A. Clayton

2

상용 제품을 위해 개발 한 uC 응용 프로그램은 8 비트보다 큰 데이터 크기를 거의 처리하지 못했습니다. 따라서 32 비트가 8 비트와 같은 가격이더라도 여전히 이점은 없습니다. 다른 사람이 말했듯이, 우리는 친숙한 것을 추구하므로 더 빨리 펀치 할 수 있습니다. 그러나 마지막으로 개발 한 것은 내가 사용했던 PIC16을 모든 방법으로 한계까지 밀어 넣는 것으로 밝혀졌습니다. 그러나 데이터 크기 때문이 아닙니다. 더 이상 그렇게하면 실제로 ARM을 배워야합니다.


대부분의 소규모 마이크로 응용 프로그램의 경우 필요한 최대 데이터 크기는 16 비트 또는 24 일 수 있습니다. 대부분의 응용 프로그램은 8 비트보다 큰 작업을 수행 할 필요는 없지만 무언가를 수행해야합니다. 반면에, 거의 모든 8 비트 마이크로 컨트롤러 (절대로 전부는 아니더라도)에는 캐리 플래그가있어 16 비트 (또는 더 큰) 연산을 수행하기 위해 일련의 연산을 사용할 수 있습니다.
supercat December

2

ARM 칩이 "컴퓨터"와 같이 동작하는 대부분의 기능을 대신 할 것으로 기대합니다. 다른 한편으로, 많은 8 비트 마이크로 컨트롤러는 비교적 간단한 프로그래머블 로직 디바이스 또는 적당한 수의 게이트로 수행 될 수있는 작업을 수행하는 데 익숙하지만 실제로는 더 저렴하거나 전류 소모가 적을 수 있습니다. 간단한 8 비트 마이크로. 더 복잡한 응용 프로그램을 설계 할 때 8 비트보다 32 비트 마이크로를 사용하는 것이 더 쉬운 경우가 있지만 칩의 전체 목적이 특정 입력을보고 디 바운싱하는 것이라면, 출력이 높으면 200을 출력하기 시작하십시오. 1ms 간격으로 특정 출력에서 ​​펄스, 2ms 간격으로 100, 3ms에서 100, 그 다음 100ms 동안 일시 정지 한 다음 입력이 낮아질 때까지 계속해서 입력하면 실제로 더 쉬운 코드를 설계 할 수 있습니다32 비트보다 8 비트로 8 비트와 32 비트 마이크로 사이의 비용 차이는 더 이상 8 비트 마이크로에 프로젝트를 "적합하게"하기 위해 추가 엔지니어링 노력을 소비하는 것을 정당화하기에 더 이상 충분하지 않을 수 있지만 32 비트 부품이 엔지니어링 노력을 아끼지 않아도 페니를 추가로 소비 할 이유가 없습니다.


동의하지만 두 툴체인을 능숙하게 유지하고 유지하려면 자체적 인 엔지니어링 노력이 필요하다는 점에 동의합니다.
Scott Seidman

2
@ScottSeidman : 맞습니다. 다른 한편으로, 일부 8 비트 마이크로는 전원을 켤 때 거의 즉시 코드 실행을 시작할 수 있지만 32 비트 마이크로는 조금 더 오래 걸립니다.
supercat December

ARM이 8 비트 플랫폼에서 라이센스를 얻는 지 궁금합니다. 전체 주변 장치와 버스를 단순히 클록하지 않는 기능과 같이 ARM 구현의 멋진 기능이 몇 가지 있는데,이 기능은 8 비트 ARMS를 다른 플랫폼에서 홀딩력 측면에서 실행 링으로 만들어야합니다. mfct가 CMSIS 호환 라이브러리를 만들면 결국 큰 플레이어를 제거 할 것이라고 생각합니다.
Scott Seidman

@ScottSeidman : 사실,보고 싶은 것은 CPU 속도와 무관 한 일정한 시간 기반으로 주변 장치의 타이밍에 민감한 부분 (예 : 타이머, 전송 속도 생성기 등)을 실행할 수있는 디자인입니다. 그러나 그러한 개념에 대한 최소한의 지원 만 보았습니다. 실리콘에서는 어렵지 않지만 합성 툴에는 그러한 일을 효율적으로 수행 할 수있는 수단이 없다고 생각합니다.
supercat December

@supercat 다른 마이크로 컨트롤러에 대해서는 잘 모르겠지만 PIC32에는 주 클록과 다른 클록 속도로 설정할 수있는 주변 장치 버스 클록 개념이 있습니다. 따라서 예를 들어 전력을 절약하기 위해 CPU 속도를 변경하고 동일한 PB 클럭을 유지할 수 있으므로 모든 주변 보드 속도 등을 다시 프로그래밍 할 필요가 없습니다.
tcrosley

1

CPU 비용과 전력 소비가 주요 이유에 동의하지만 아직 여기에 표시되지 않은 또 하나의 고려 사항은 PCB 공간입니다. 전자식 욕실 저울과 같은 많은 종류의 임베디드 시스템의 경우 많은 I / O가 필요하지 않으며 더 큰 버스 크기에 대한 이점과 빠른 처리에 대한 이점이 없습니다. 그러나, 이다인쇄 회로 기판의 레이아웃과 라우팅이 더 단순하고 종종 더 작기 때문에 핀 수가 적은 소형 패키지의 이점. 보드를 4 계층 보드가 아닌 2 계층 보드로 설계 할 수 있다면 상당한 비용 절감 효과가 있으며 8 비트 프로세서와 함께 제공되는 핀 수가 적 으면 32 비트보다 쉽게 ​​절약 할 수 있습니다. 일반적으로 더 많은 핀과 물리적으로 더 큰 패키지가있는 비트 프로세서.


이것이 2 년 반 된 질문이라는 것을 알고 있습니까?
Olin Lathrop

@Olin 또 다른 관점은 아프지 않습니다.
m.Alin

@OlinLathrop : 예, 8 비트 CPU 구동 클럭 / 캘린더가 제대로 작동합니다. :)
Edward

0

8 비트 세계에서도 새로운 유형은 이전 유형을 선호하는 데 오랜 시간이 걸리는 것으로 알려져 있습니다.

많은 경우에, 부가 가치를 가져 오지 않기 때문에 변화가 일어나지 않으며, 아직 머물 것으로 입증되지 않았거나 여전히 움직이는 목표가 될 것으로 예상되는 새로운 기술을 배우는 비용과 함께 제공됩니다. MCU 기술에 초점을 맞추고 싶지만 응용 프로그램에 집중하고 올해의 ARM 빈티지에 맞게 프로덕션 소프트웨어를 지속적으로 수정하고 다시 테스트하지 않는 사람들에게는 흥미 롭습니다!). 어떤 사람들에게는 더 이상 개발되지 않은 구성 요소가 더 이상 사용되지 않으며 다른 구성 요소는 마침내 안정 되어 버그를 발생시키기위한 해결 방법이 필요할 수 있지만 최소한 이러한 구성 요소를위한 안정적인 플랫폼을 제공합니다. 용암의 흐름이 항상 반 패턴으로 깨지는 것은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.