Pós-processamento `objdump --disassemble` com contagens de ciclo ARM

Existe um script disponível para pós-processamento algunsobjdump --disassemble saída para anotar com contagens de ciclo? Especialmente para a família ARM.Na maioria das vezes, isso seria apenas uma correspondência de padrões com uma pesquisa de tabela para a contagem. Eu acho que anotações como+5M para cinco ciclos de memória podem ser necessários. Perl, python, bash,C, etc estão bem. Eu acho que isso pode ser feito genericamente, mas estou interessado noBRAÇO, que tem umortogonal conjunto de instruções. Aqui está uma discussão sobre o68HC11 fazendo a mesma coisa. O script precisaria de uma CPUmodelo opção para selecionar as contagens de ciclo apropriadas; Eu acho que essas contagens já existem nogcc descrição da máquina.

Eu não acho que haja umobjdump mudar para isso, mas o RTFM seria ótimo.

Editar: Para esclarecer, suposições como o melhor subsistema de memória de caso, como será o caso quando o código é executado a partir do cache, são boas. O objetivo não é uma contagem de ciclos 100% precisa, como em alguns equipamentos de corrida. É possível obter uma estimativa razoável, caso contrário, o design do compilador seria impossível.

ComoDWelch Um total de execução simples não é possível com a arquitetura profunda de pipelines, como os chips Cortex mais recentes. oobjdump pós-processamento teria que olhar para opcodes circundantes. Um plug-in do gcc é mais provável de ser capaz de realizar isso e, como isso é novo (4.5+), eu não acho que isso exista. Um script para o ARM926 é certamente possível e bastante simples.

A latência de memória não importa. O controlador de memória é como outroCPU. Ele está fazendo negócios enquanto a CPU está fazendo aritmética, etc. Um algoritmo bom / bem ajustadoparalelo a memória acessa com os cálculos. Contando cargas / armazenamento e ciclos, você pode determinar quanto paralelismo é realizado, quando você ativa o perfil com um temporizador. O pipeline é significativo devido aos intertravamentos entre registros, mas uma contagem de ciclo parablocos básicos pode ser confiavelmente calculado e usado até mesmo em processadores ARM modernos; isso é muito complexo para um script simples.

questionAnswers(2)

yourAnswerToTheQuestion