Forum: Mikrocontroller und Digitale Elektronik Bare Metal Benchmark


von Richy B. (derrichi)


Lesenswert?

Hallo,

ich bin verzweifelt auf der Suche nach einer Bare Metal Benchmark für 
CPUs.

Der Hintergrund:
Ich habe in einem SoC den Memory Controller modifiziert und möchte 
gucken, was sich an der Systemperformanz geändert hat. Das SoC lässt 
sich komplett in ModelSim simulieren. Der Benchmark soll also simultativ 
ausgeführt werden.

Gesucht:
Was ich brauche ist einfach nur repräsentativer Standard C-Code, den man 
ohne Betriebssystem auf dem Core ausführen kann. Da ich das Ganze 
simultativ machen möchte, sollte es auch kein Monsterprogramm sein, 
dessen Ausführung auf Hardware schon ewig lange dauert. Es muss ohne 
I/O-Anfragen auskommen und sollte auf den Speicher zugreifen.

Die Sachen die ich bisher gefunden habe, sind entweder kostepflichtig 
oder brauchen ein physisches System, auf dem ein Betriebssystem läuft. 
Die Benchmarks sind also nur Anwenderprogramme und somit nicht das, was 
ich suche.

Ich bin für jeden Tipp dankbar.

Gruß,
Der Richy

von Little B. (lil-b)


Lesenswert?

Was spricht gegen coremark?

von Kirsch (Gast)


Lesenswert?

Little B. schrieb:
> Was spricht gegen coremark?

Was willst du Testen, die RAM Geschwindigkeit?

Einfach den Speicher von Oben nach unten voll schreiben und die Zeit 
messen wie lange es gedauert hat.


Um zufällige Zugriffe zu simulieren, braucht du eine Umsetzungstabelle 
Zählerwert -> RAM-Adresse.
Das einfachste wäre eine Bitpermutation das Zählers.

von Richy B. (derrichi)


Lesenswert?

Sorry für die späte Rückmeldung. Es musste doch noch ein wenig debugged 
werden.

@lil-b
Gegen Coremark scheint nichts zu sprechen (ich habe es allerdings noch 
nicht runtergeladen). Ich bin selbst auch schon drauf gestoßen, habe 
allerdings nicht genau hingeschaut. Ich dachte auf den ersten Blick, 
dass die CPUs, die auf der Startseite aufgelistet sind, die jeweiligen 
Zielplattformen sind. Also habe ich optimierten Code erwartet. 
Tatsächlich sind es aber nur die erzielten Ergebnisse für die CPUs.

@Kirsch
Klar, eigenen Routinen haben wir natürlich geschrieben. Was wir aber 
brauchen, ist aufgrund von Vergleichbarkeit und Aussagekraft, Code der 
bestimmte Programme nachstellt. Wie gesgat Benchmarks an sich gibt es 
wie Sand am Meer, aber welche die einfach nur standard C Code enthalten 
und nicht auf einem Betriebssystem ausgeführt werden, scheinen nicht so 
verbreitet zu sein. Oder ich stell mich halt blöd an ;-)

von Jasch (Gast)


Lesenswert?

Richy B. schrieb:
> bestimmte Programme nachstellt. Wie gesgat Benchmarks an sich gibt es
> wie Sand am Meer, aber welche die einfach nur standard C Code enthalten
> und nicht auf einem Betriebssystem ausgeführt werden, scheinen nicht so
> verbreitet zu sein. Oder ich stell mich halt blöd an ;-)

Hmm, Standard C Code wird per Definition üblicherweise auf einem 
Betriebssystem ausgeführt (hosted environment nennt das der C-Standard).

Ohne Betriebssystem bist Du üblicherweise bei einem "freestanding 
environment". Da ist so viel Zeugs "implementation defined", d.h. nicht 
vom Standard vorgegeben, dass es prinzipbedingt nicht allzuviel Standard 
C Code dafür geben kann.

Logisch, oder? ;-)

von Richy B. (derrichi)


Lesenswert?

Hm, das würde ich jetzt so nicht unterschreiben. Ich kann doch für 
meinen uC C-Routinen schreiben und dann ausführen. Das "implementation 
defined" macht doch dann mein Compiler.

Da ich genau das schon gemacht habe, weiß ich, dass das wunderbar klappt 
;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.