마이크로 프로세서가 충분히 강력한 지 확인하는 방법


9

Rasbperry pi 또는 PC의 임베디드 장치에 대한 개념 증명을 쉽게 개발할 수 있다는 것은 누구나 알고 있지만 제품에 맞는 마이크로 프로세서를 선택할 때는 개념이 제대로 작동 할 수 있는지 확신하기 어렵습니다. 최적으로.

필자는 현재 라즈베리 파이에서 미디어 스트리밍 프로젝트를 성공적으로 진행하고 있지만 파이는 최종 장치로 적합하기에 너무 크고 부피가 큽니다. 또한 최종 장치는 맞춤형이라고 명시되어 있습니다. 사용할 수있는 프로세서에 대한 확신을 얻는 데 어려움을 겪고 있습니다.

프로세서가 내 응용 프로그램을 실행하기에 충분히 강력한 지 확인하는 좋은 방법은 무엇입니까?

기본적으로 내 요구 사항은 다음과 같습니다.

  • WiFi 작동을위한 USB 호스트 또는 내장 TCP / IP 스택
  • I2S / PCM 미디어 프로토콜
  • 주변기기 구성을위한 I2C

이러한 속성을 가진 칩을 찾는 것은 매우 간단합니다. 솔직히 간단하지 못했습니다. 이 문제는 칩이 충분히 빠르며 처리 및 운영 측면인지 알 수 있습니다.

나는 LPC4337을 꽤 살펴 보았고 개발 환경이 상당히 많은 어려움을 겪고 있지만 그것이 적당하다고 생각합니다. 그 때문에 여전히 둘러보고 있습니다. 이 컨트롤러는 80MHz에서만 실행되지만 실시간 미디어 스트리밍에 충분한 지 확실하지 않습니다.

프로세서가 내 응용 프로그램에 충분히 빠른지 확인하는 몇 가지 단계는 무엇입니까 ? 80MHz 프로세서가 충분한 지 또는 204MHz 이상의 무언가가 필요한지 어떻게 알 수 있습니까?


1
전원 요구 사항도 제공해야한다고 생각합니다.
kolosy

이것은 귀하의 질문에 대한 답변은 아니지만 USB 2.0 호스트, I²S 및 5 개의 I²C와 함께 플래시 (2MB)가 2 배, RAM (512K)이 3 배인 새로운 PIC32MZ 마이크로 컨트롤러 제품군 을 고려할 수 있습니다. LPC4337과 동일한 가격의 모듈. IDE (MPLAB X) 및 컴파일러는 무료로 사용해 볼 수 있지만 시험 기간이 지나면 원하는 경우 최적화 된 컴파일러에 대한 비용을 지불해야합니다 (최적화되지 않은 GCC 컴파일러는 무료로 유지됨). Microchip에는 USB 및 TCP / IP 스택을위한 로열티가없는 라이브러리가 있습니다.
tcrosley

2
일부는 질문의 요점을 놓칠 수 있다고 생각합니다. 부품 추천을 찾고 있지 않습니다. 칩에 충분한 공간이 있거나 적절한 주변 장치가 있는지 확인하는 것은 간단합니다. 더 강력한 프로세서를 선택하기위한 지침으로 매개 변수 및 단계 처리를 찾고 있습니다. 그것의 속도에서와 같이.
Funkyguy

사양에서 필요한 것을 알 수 없다면 샘플과 프로토 타입을 주문할 수 있습니까?
Roger Rowland

@RogerRowland 매우 긴 프로세스이지만 가능합니다.
확실히

답변:


5

얼마나 자신감이 있는지에 달려 있습니다. 저는 우주 산업에서 일하고 있으며 이는 일반적으로 "CPU, RAM, ROM 예산"이라고하는 것을 통해 달성됩니다. 예산은 전력 대량 또는 기타 비용으로 인해 전체 수요를 얻기 위해 수량화 및 합계 할 수있는 관리 가능한 품목으로 프로세스를 분류하고 있습니다. 그런 다음 프로젝트의 성숙도에 따라 달라지는 안전율을 고려하여 수요 증가를 고려할 시간이 지남에 따라 감소합니다. 초기에는 경험에 크게 의존하고 기술이 선택됨에 따라 시간이 지남에 따라 개선되었습니다.

  • ROM은 비교적 쉽습니다. ROM 메모리에서 대략 스택 / 라이브러리 / 드라이버가 차지하는 양을 알고 있습니다. 작성자가 제공하거나 업로드하지 않고 컴파일 할 수 있습니다. 컴파일러 최적화로 인해 코드를 변경할 때마다 그 수치가 크게 바뀔 수 있습니다.
  • RAM은 훨씬 까다 롭습니다. 특수 통합 개발 환경의 일부 도구는 런타임 예상치 를 제공하며, 이것이 어떻게 수행되는지 알 수 있지만 GCC에서 제공하는 일반적인 도구는 알지 못합니다 (다른 사람이 알고 있습니까?). 안타깝게도 코드의 가장 큰 요소 또는 가장 많이 할당 된 요소 (변수 수명을 고려)를 세는 것처럼 들립니다.
  • CPU는 아키텍처 (CISC 또는 RISC)에 따라 MIPS (CPU 클록 주파수에 비례하는 초당 백만 명령 수)가 대표적이거나 불가능할 수 있다는 점에서 더 복잡합니다. 사용중인 코드가있는 경우 가장 중요한 섹션을 지침으로 나누고 시간 요구 사항에서 필요한 MIPS를 계산할 수 있습니다. 비활성화되지 않은 인터럽트는 머피의 법칙과 그 시점에서 시작된 것으로 간주해야합니다.

스레드 (스레드가 코어에 수동으로 할당되지 않은 경우)와 운영 체제가있는 즉시 스케줄러가 시작되는 시점을 정확하게 결정하기 란 매우 어렵습니다. 간단한 마이크로 컨트롤러 코드를 관리 할 수 ​​있어야하지만, 응용 프로그램에는 가치가 있습니까?

이것은 제가 참여한 것입니다. 통합 시스템을 설계하더라도 특정 예산 (나를위한 입력)에 대해 책임을지지 않았으며 실제로 전문가의 이야기를 알고 싶어합니다.

부록 : 실시간 시스템을 사용하는 경우 일반적으로 워크 플로 전체에서 정보 전송 지연 시간 / 지연 및 각각의 최대 시간에 따라 달라지는 최대 샘플링 시간을 통해 작업의 시스템 적합성을 쉽게 평가할 수 있습니다. 작업 샘플.


avrdude전역 변수가 차지하는 RAM의 양을 추정 할 수 있지만 기본적으로 업로드 도구이기 때문에 드라이 런 옵션으로 RAM을 실행해야합니다.
felixphew

1
IMO를 추정하기 가장 어려운 부분은 스택 및 힙 사용량입니다. PIC32에서 실행되는 현재 임베디드 시스템 (독점 OS)은 일반적으로 25 개 이상의 작업이 실행 중이며, 대부분 활성 상태 일 때 2K 이상의 힙이 필요합니다. 그중 몇 가지와 스택 사용량이 많으며 곧 RAM이 부족해질 수 있습니다. 나는 방금 일주일 정도 전에 재귀 루틴을 작성했으며 로컬 변수 스택 사용 (배열 등 없음)에 매우주의해야했습니다.
tcrosley

재미 있네요 코드 (코드 분석 또는 특정 도구)에 의해 할당 된 RAM의 양을 추정합니까, 아니면 런타임에이를 측정합니까? MIPS는 RAM 사용과 달리 코드를 명령으로 분류하지 않고 코드를 분석하여 추정 할 수 없기 때문에 추정하기가 약간 더 어렵다고 생각합니다. 스레드는 작업을 매우 어렵게 만들지 만 CPU 분석에 여전히 더 많은 단계가 필요한 것처럼 들립니다. 일반적으로 그다지 문제가되지 않습니다. 어떻게 생각해?
Mister Mystère

2

"마이크로 프로세서가 충분히 빠른지 확인하는 방법"에 대한 질문을 단순화하려고 합니까? 가장 빠른 실행 시간이 필요한 프로세스 / 프로 시저
식별 해야합니다 . 프로세서가 주어진 시간 이하로 필요한 명령을 실행할 수 있으면 충분히 빠릅니다.
예를 살펴 보겠습니다. 가장 빠른 요구 사항은 전원 손실의 손실 을 처리하는 것 입니다 . 이를 위해서는 10 밀리 초 내에 10,000 개의 명령을 실행해야합니다. MIP가 1 개 이상인 CPU가 필요합니다. 이것을 "MHz"로 변환하려면 명령 당 클럭 사이클 수 (cci)를 알아야합니다. CPU가 10cci라고 가정하면 CPU가 10MHz 이상에서 실행되어야합니다.


0

BOM 비용을 낮추려는 경우 때때로 심천 제조업체가 놀라운 제안을합니다. 한 예 : Allwinner A10은 Raspberry Pi보다 더 많은 계산 성능 및 연결 옵션을 제공하지만 설계에 사용하면 더 저렴할 것입니다. Pi와 동일한 비용을보고 있다면 Allwinner A31은 6-8 배 더 강력합니다.

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