Wie erreichen Mikrocontroller eine Leistung von> 1 MIPS / MHz?

19

Wie dieser , der 1,49 DMIPS / MHz leistet. Selbst beim Pipelining gibt es immer noch nur eine Ausführungsstufe pro Zyklus, nicht wahr?

Federico Russo
quelle
Das einzige typische superskalare Element in diesem Mikrocontroller-Segment ist MADD - Multiplizieren und Addieren in einem Zyklus. Obwohl es in Drystone nicht viel hilft.
BarsMonster
DSPs sind Mikrocontroller und können Hardware-Implementierungen von Fourier-Transformation, Array-Multiplikation usw. aufweisen. Zählen sie auch? Gilt diese Messung hier? Sogar sehr alte DPSs konnten 8 Multiplikationen mit 16 verschiedenen Registern in einem Befehl ausführen.
vsz
5
Es gibt Lügen, verdammte Lügen und Benchmarks ...

Antworten:

18

DMIPS und MIPS sind nicht dasselbe. DMIPS steht für "Dhrystone MIPS" und ist ein Standard zum Vergleichen der Leistung verschiedener Mikrocontroller / Mikroprozessoren über verschiedene Befehlssätze hinweg. Der Standard ist nicht mehr so ​​neu (*). Was der Referenzprozessor also mit 1 DMIPS / MHz in 1 Sekunde tun könnte, kann einen fortgeschritteneren Controller mit 670 ms bei gleicher Taktrate benötigen, nur weil er einige Aktionen in 1 Befehl ausführt Die andere Steuerung benötigt möglicherweise zwei Befehle oder einen Befehl, der mehr Maschinenzyklen erfordert.

Eine 16-Bit-Architektur bietet beispielsweise in der Regel eine bessere Dhrystone-Leistung als eine 8-Bit-Architektur und eine 32-Bit-Architektur, auf die Sie sich beziehen, noch mehr.


(*) m.Alin bezieht sich auf den neueren CoreMark- Benchmark. Beachten Sie, dass dies in C geschrieben ist, sodass Sie auch die Leistung des Compilers in das Ergebnis einbeziehen (genau wie Dhrystone, BTW).

stevenvh
quelle
Aber die Dhrystone-Ergebnisse hängen auch vom Compiler ab (der ist auch in C geschrieben), oder? Aus Wikipedia: Große Teile von Dhrystone sind anfällig für die Fähigkeit eines Compilers, die Arbeit zu optimieren. Es ist also eher ein Compiler-Benchmark als ein Hardware-Benchmark
m.Alin
1
@ m.Alin - Sicher, ich wollte nicht anders vorschlagen. Ich werde meine Antwort klären. Danke für die Rückmeldung.
Stevenvh
10

DMIPS ist eher ein relatives als ein absolutes Maß. Im Gegensatz zu MIPS misst es tatsächlich, wie schnell der uC etwas Nützliches tun kann, anstatt nur, wie schnell er Anweisungen ausführt.

Wie jeder Benchmark hat er seine Grenzen, aber eine einfache Sichtweise ist, wie schnell er den Benchmark-Code vervollständigen kann, verglichen mit einem VAX 11/780 (einem 1-MIPS-Rechner).
Zum Beispiel, wenn Ihr uC den Benchmark 100-mal schneller durchführt Sie haben eine 100DMIPS-Maschine als eine VAX 11/780. Wenn es mit 100 MHz läuft, ist es mit 1 DMIPS / MHz bewertet.

Beachten Sie, dass das angekündigte DMIPS im Normalfall nicht erreichbar ist, insbesondere bei großen USB-Geräten mit Flash-Geschwindigkeit, Prefetch, Wartezeiten / Fehlzeiten usw. Hier finden Sie eine gute Diskussion über die PIC32-DMIPS-Leistung. Dieser Link enthält einen Dhrystone-Code für Mikrocontroller.

Oli Glaser
quelle
Dein Wikipedia-Link besagt, dass der Drystone-Standard bereits 28 Jahre alt ist. Wissen Sie, ob es aktuellere Tools zur Leistungsmessung gibt? Vielen Dank.
Federico Russo
3
@ FedericoRusso CoreMark
m.Alin
@ FedericoRusso: Die Sache mit der Leistungsmessung ist, dass sie vergleichend ist. Wenn Sie Ihre Vergleichsmethode ändern, werden alle vorhandenen Ergebnisse unbrauchbar. Daher die Langlebigkeit von Dhrystone.
Clifford