De senaste MIPS-kärnorna är kapabla att själva samla in statistik på vilka programrader de exekverar. Porgrammeraren behöver inte instrumentera koden, avbryta med interrupt, eller på annat sätt störa processningen. Kärnorna har ett block som läser av programräknaren och skickar ut den på EJTAG-porten. Blocket kallas Zero Overhead Program Counter Sampling.
Tidigare har det inte funnits ett bra gränssnitt till detta block.
MIPS har valt att konstruera ett verktyg för den plattform där de upplevt att behovet varit som störst, för optimering av Linuxprogramvara, inklusive den fasta Linuxkärnan och kärnans laddbara moduler.
- Folk bygger settopboxar, dvd-spelare och trådlösa routers, och överallt används Linux som operativsystem, berättar Rick Leatherman, chef för First Silicon Solutions, vilket är namnet på MIPS avdelning för utvecklingsverktyg.
Med hjälp av programräknarvärdet och den så kallade symboltabellen, som skapas vid kompileringen av källkoden, räknar verktyget ut hur ofta olika programinstruktioner exekveras. Verktyget pekar alltså ut de instruktioner, funktioner och filer som exekveras oftast. Och där det därför kan lönas sig bäst att optimera programvaran.
Lösningen har inget tidsoverhead och påverkar inte alls programlogiken. Det kan därför användas under drift. under körningen kan du sampla periodiskt för att få se ny statistik, eller klicka på refreshknappen.
Verktyget levererar inte en fullständig lista på alla instruktioner som passeras, utan nöjer sig med att sampla 50 000 gånger i sekunden.
Verktyget kräver MIPS EJTAG-prob System Navigator.