2016-08-25 3 views
-4

현재 저는 마이크로 컨트롤러 사이에서 벤치 마크를 설정하고 있습니다 (Powerpc 기반). 누군가가 나에게 세부 사항을 보여주는 문서를 제공 할 수 있다면 벤치마킹을 위해 고려해야 할 가장 중요한 요소는 무엇입니까? 즉 나는 사람이 많은 도움이 될 것입니다 알고리즘을 제공 할 수 있다면, 코어 주변, 메모리 뱅크
플러스의 성능 향상을 위해 고려되어야 요소에 대한 자세한 정보를 제공하는 문서를 찾고 있어요.벤치마킹 마이크로 컨트롤러

답변

0

유용한 방법이 하나 뿐이므로 응용 프로그램을 둘 다 작성하고 응용 프로그램을 작성하는 것입니다. 벤치마킹은 너무 많은 요소가 있기 때문에 그 차이를 이용하거나 두 가지를 다르게 보일 수있는 공통 기능을 활용하는 벤치 마크를 작성하는 것이 중요하지 않습니다.

나는 정기적으로이 곡예, 가장 최근에이 코드를 수행 같은 라즈베리 파이는 두 가지를 비교하지 라즈베리 파이 (베어 메탈)에서 실행 단지 자신과 비교

.globl ASMDELAY 
ASMDELAY: 
    subs r0,r0,#1 
    bne ASMDELAY 
    bx lr 

, 명확하게 조립 그렇게하지 심지어 의도적으로 또는 실수로 벤치 마크에서 인코딩 할 수있는 컴파일러 기능/트릭을 고려해야합니다. 이 세 명령어 중 두 개는 벤치마킹의 목적으로 중요하며, 루프가 수만 번 실행되어 0x100000을 사용했다고 생각합니다. 그 성능을 얻으려면 루프에있는 두 명령이 93662 타이머 틱만큼 빠르며 0x10000 루프에 대해서는 4063837 타이머 틱만큼 느리게 실행되어야합니다. 확실히 캐시 및 분기 예측은 다양한 테스트를 위해 켜고 껐습니다. 그러나 분기 예측 on과 i 캐시 on을 사용하는 경우에도이 두 명령어는 가져 오기 라인과 캐시 라인에서 어디에 위치하는지에 따라 속도가 달라집니다.

마이크로 컨트롤러는 비교 대상에 따라 상당히 악화되며, 일부는 다양한 클럭 속도에 대해 동일한 대기 상태를 사용할 수있는 플래시를 가지고 있으며, 일부는 속도 제한이 있으며 N 개의 Mhz마다 다른 대기를 추가해야합니다 상태에 따라 클럭을 설정하는 위치에 따라 해당 범위에서 성능에 영향을 미치고 대기 상태 (24Mhz에서 빼내기 및 2-3 시간에서 24 시간 동안 여분의 대기 상태가있는 24Mhz를 추가하는 경계 바로 위 및 바로 위)에 영향을줍니다 기다리는 상태를 가져 오면 가져 오기가 3 분의 대기 상태에서 3 분의 대기 상태 일 수 있지만 36 분의 36 분의 36 분의 36 분의 대기 상태에서 24 분의 3 대기 상태보다 빠릅니다. 해당 플랫폼 용 sram vs flash에서 동일한 코드를 실행하면 일반적으로 sram이 일반적으로 CPU 클럭과 일치 할 수있는 대기 상태 문제가 발생하지 않으므로 속도에 관계없이 코드가 플래시에서 실행되는 동일한 코드보다 빠를 수 있습니다.

동일한 공급 업체 및 가족의 두 마이크로 컨트롤러를 비교하는 경우 일반적으로 무의미합니다. 내부 부품은 동일합니다. 일반적으로 몇 개, 플래시 뱅크 수, 플래시 뱅크 수, sart 은행 수, uart 수, 타이머 수 얼마나 많은 핀이 있습니까?

전체적인 아키텍처의 미묘함을 알지 못한다면, 동일한 보드에서 현재 실행중인 동일한 코드를 수십에서 수십 배 더 빠르게 만들 수 있습니다. 단순히 일이 어떻게 작동 하는지를 이해함으로써 수행 한 코드의 적절한 정렬 (어디에서 C 파일 내의 기능을 재배치 할 수 있는지/성능에 영향을 미칠 수 있음)을 알 수없는 기능을 활성화하려면 부트 스트랩에 하나 이상의 nops를 추가하여 전체 프로그램의 정렬을 변경하십시오 성능을 변경할 수 있습니다.

그런 다음 컴파일러 차이점과 컴파일러 옵션을 사용하면 해당 옵션을 사용하여 재생할 수 있으며 수십 ~ 수십 회에 걸쳐 개선 (또는 손실)을 얻을 수 있습니다.

마지막으로 중요한 점은 응용 프로그램이 최종 바이너리이며 A가 얼마나 빨리 실행되는지입니다. 그런 다음 응용 프로그램을 포팅하고 B의 최종 바이너리가 완료되고 어떻게 실행되는지 빨리 거기서 달릴까요? 다른 모든 것은 조작 될 수 있으며 결과는 신뢰할 수 없습니다.

+0

"동일한 공급 업체 및 가족의 두 마이크로 컨트롤러를 비교하는 경우 일반적으로 무의미합니다. 내부 부품은 동일합니다. 일반적으로 몇 개, 얼마나 많은 플래시 뱅크를 사용하는지, 얼마나 많은 플래시 뱅크를 사용하는지, 얼마나 많은 샘 뱅크, 얼마나 많은 UART, 얼마나 많은 타이머, 얼마나 많은 핀 등 ''Curretnly 나는이 마이크로 컨트롤러의 코어의 사양 사이에 작은 차이가 두 개의 마이크로 컨트롤러를 비교할이 사건이 있습니다. 하나는 데이터 chache 및 로컬 데이터 램이 있습니다. 그렇다면 이런 종류의 차이점에 대한 벤치 마크를 설정하는 것이 어떻게 가능할까요? – waq

+0

데이터 캐시 및 로컬 램이있는 메모리 캐시는 더 빠른 메모리 액세스를 가지므로 프로그램이 메모리를 사용하는 경우 일부는 더 빠릅니다. 외부 메모리가 느려질 수 있습니다. 그 일에 대한 벤치 마크가 필요합니까? 주소에서 메모리 테스트 파운드를 수행해야하는 경우 임의 액세스를 수행하고 캐시가 있거나없는 선형 액세스를 수행하십시오. 나는 우리가 이미 대답이 무엇인지 알고 있다고 생각한다. –

+0

정확히 어떤 마이크로 컨트롤러가 더 나은 효율성을 가지고 있는지 증명하기 위해서는 벤치 마크가 필요합니다. 또한 메모리뿐 아니라 두 개의 마이크로 컨트롤러의 모든면을 비교하고 테스트해야하며이 지식을 바탕으로 응용 소프트웨어의 프로파일 링을 수행해야합니다. 기본적으로 응용 프로그램 소프트웨어의 성능을 향상시켜야합니다. 따라서 이전 논의를 토대로 필자는 응용 소프트웨어 성능 향상을 위해 필요한 중요한 요소를 찾고 있습니다. 참고 문헌이나 기타 자료를 추천 해 주시겠습니까? 덕분에 – waq

관련 문제