Ferramentas de análise estática de código binário

Cálculo do tempo de execução no pior dos casos (WCET)

Ferramenta: TimeWeaver

Nos processadores modernos e altamente complexos (muitos deles com vários núcleos), é muito difícil modelar formalmente o pipeline, a cache e os mecanismos de crosstalk entre núcleos.

 

Neste caso, não é possível calcular o WCET apenas através da análise estática do código, sendo necessário utilizar técnicas mistas de análise e medição em tempo de execução.

O que é o TimeWeaver

O TimeWeaver é um analisador híbrido que combina estas duas técnicas de cálculo do WCET. As medições mais exactas do tempo de execução são obtidas através da captura de traços de hardware não intrusivos do microprocessador. Por conseguinte, o TimeWeaver só está disponível para processadores com capacidade de rastreio de hardware e para placas com conetor de rastreio do tipo Nexus e interface do tipo Aurora ou semelhante. Para além disso, é necessária uma sonda de depuração com capacidade de rastreio de hardware, como a Lauterbach ou a Green Hills Probe.

Para efetuar o cálculo do WCET, o TimeWeaver necessita:

  • O código binário executável
  • Traços de execução
  • Opcionalmente, o código-fonte e as anotações sobre a arquitetura.

O resultado da análise é semelhante ao obtido pelo aiT e é suficientemente exato para ser considerado como prova de certificação.

O TimeWeaver está disponível para as seguintes arquitecturas e formatos de rastreio:

PowerPC capaz de emitir mensagens de rastreio do programa Nexus (IEEE-ISTO 5001, classe 2 ou superior):
ARM com rastreio ETM preciso do ciclo de relógio ou ULink Pro
rastreios Tricore

Famílias de processadores e compiladores suportados

  • Cortex A53
  • Cortex R5F
  • Família AUDO (por exemplo, TC1796)
  • Família AURIX (por exemplo, TC275)
  • Família AURIX 2ª Ger. Família (TC3xx)
  • Série QorlQ P (núcleo e500mc)
  • Série QorlQ T (núcleo e5500, e6500)
  • Linha Qorivva MPC55xx, MPC56Xxx MPC57xx (núcleo e200)

Subscrever a nossa newsletter