Forum: Mikrocontroller und Digitale Elektronik STM32 - Wieviel Takte dauert einen Division


von Johannes S. (jhs)


Lesenswert?

Hi!

Bin zur Zeit an der Auswahl eines Mikrocontrollers für ein Steuergerät 
für einen Umrichter (Projektarbeit). Da darauf eine eher komplexe 
Regelung implementiert werden soll, wird mir ein XMega nicht ausreichen 
und ich bin daher im Momemt am überlegen einen STM32 (Cortex M3) zu 
verwenden.

In den Datenblättern steht auch immer schön drin, dass eine 
Multiplikation nur einen Takt dauert und das es "Hardware-Division" 
gibt. Leider konnte ich aber weder bei ARM noch bei ST eine genaue 
Angabe finden wie lange (in Takten) eine Division denn jetzt (maximal) 
dauert. Gibt es dafür irgendeine Angabe?

Die Regelung muss mindestens alle 20us einen neuen Wert erzeugen und 
wird vom Aufwand wohl im Bereich einer Feldorientierten Regelung liegen. 
Da der Regelungsalgorithmus allerdings noch nicht fertig ist, muss ich 
erstmal vom worst-case ausgehen, dass da einiges dividiert werden 
könnte.

Danke,
Johannes

von Ulli (Gast)


Lesenswert?

Ausm Netz:

CorteCortex-M3 Processor Overview
 Hardware Division
 UDIV & SDIV (Unsigned or Signed divide)
 Instruction takes between 2 & 12 cycles depending on dividend and 
devisor
 Closer the dividend and division the faster the instruction comp letes
 Instruction is interruptible (abandoned/restarted)

von Ulli (Gast)


Lesenswert?

Also Worst Case sind 12 Zyklen für eine Division.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Johannes Schmid schrieb:
> Leider konnte ich aber weder bei ARM noch bei ST eine genaue
> Angabe finden wie lange (in Takten) eine Division denn jetzt (maximal)
> dauert. Gibt es dafür irgendeine Angabe?

Cortex-M3 TRM:
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0337g/BABBCJII.html#id7100577

Gruß
Marcus
http://www.doulos.com/arm/

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.