Como este , que faz 1,49 DMIPS / MHz. Mesmo com o pipelining, ainda há apenas 1 estágio de execução por ciclo, não é?
Como este , que faz 1,49 DMIPS / MHz. Mesmo com o pipelining, ainda há apenas 1 estágio de execução por ciclo, não é?
Respostas:
DMIPS e MIPS não são os mesmos. DMIPS significa "Dhrystone MIPS" e é um padrão para comparar o desempenho de diferentes microcontroladores / microprocessadores em diferentes conjuntos de instruções. O padrão não é mais tão novo (*); portanto, o que o processador de referência poderia fazer a 1 DMIPS / MHz em 1 segundo pode levar um controlador mais avançado a 670 ms na mesma velocidade de clock, apenas porque ele fará algumas ações em 1 instrução enquanto o outro controlador pode precisar de 2 instruções ou uma instrução que exija mais ciclos da máquina.
Uma arquitetura de 16 bits, por exemplo, normalmente terá um desempenho Dhrystone melhor do que uma arquitetura de 8 bits e uma de 32 bits, como a que você está se referindo, ainda mais.
(*) m.Alin refere-se ao benchmark CoreMark mais recente . Observe que isso está escrito em C, então na verdade você também está incluindo o desempenho do compilador no resultado (assim como Dhrystone, BTW).
DMIPS é uma medida relativa e não absoluta. Ao contrário do MIPS, ele realmente mede a rapidez com que o uC pode fazer algo útil em vez da rapidez com que executa as instruções.
Como qualquer benchmark, ele tem suas limitações, mas uma maneira simples de ver é a rapidez com que ele pode concluir o código de benchmark em comparação com um VAX 11/780 (uma máquina de 1 MIPS).
Por exemplo, se o seu uC concluir o benchmark 100 vezes mais rápido do que um VAX 11/780, você tem uma máquina 100DMIPS. Se ele roda a 100 MHz, é classificado em 1 DMIPS / MHz.
Observe que o DMIPS anunciado geralmente é inatingível no uso normal, especialmente em uCs grandes com velocidade do flash, pré-busca, tempos de espera / falhas etc. Aqui está uma boa discussão sobre o desempenho do PIC32 DMIPS. Este link possui algum código Dhrystone para microcontroladores.