PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mikrocontroller - Frage zu Maschinenzyklus


Misda
2007-05-21, 20:02:49
Hi,

wer kann mir bei der Frage helfen:

"Der Systemtakt des Mikrocontrollers beträgt f = 60Hz"

"Berechnen Sie die Zeitdauer t für einen Maschinenzyklus."

Ich würde jetzt zwei Antworten haben, entweder 1/f also 1/60 Sekunden oder 60 Takte -> Ein Zyklus 12 Takte -> 5 Zyklen zu je 1/5 Sekunden.

Weil, wir arbeiten mit einem 12 Mhz Taktgeber, da ist ein Zyklus auch 12 Takte lang, weiß da jemand näheres?

Misda
2007-05-21, 21:44:41
Weiß da niemand was?

pancho
2007-05-21, 21:53:56
Die frage ist ungenau. Welcher µC?
Relativ strenge RISC Architekturen brauchen meist nur einen Takt pro Befehl. AVR wäre ein Beispiel.
Wenn du nen 8051 oder nen 68k nimmst, kann ein Befehl durchaus mal mehrere Takte dauern.

Misda
2007-05-21, 22:03:42
Sorry für die ungenaue Angabe ;-)

Atmel AT89C2051

Also, als wir in den normalen Schulstunden mit dem 8051 gerechnet haben, war es ja so, dass ein Maschinenzyklus 12 Takte hat. D.h. bei 12 Mhz, hab ich 1 Million Zyklen zu 1µs.

Nur wie es jetzt bei 60 Hz und diesem µC aussieht, irgendwie keine Ahnung.

Nasenbaer
2007-05-21, 22:35:49
Das hier http://de.wikipedia.org/wiki/Befehlszyklus zusammen mit dem Datenblatt des Prozessors sollte dir Aufschlussdarübergeben wie lange ein Maschinenzyklus dauert.
Wenn ich mich jetzt nicht vertan hab sollte er sich wiefolgt berechnen:

Maschinenzykluszeit = (1/Frequenz) / Befehlspipelinelänge

Misda
2007-05-21, 22:49:58
Nicht eher : Maschinenzykluszeit = (1/Frequenz) * Befehlspipelinelänge ?

Nasenbaer
2007-05-21, 22:58:15
Hoppla meins ist falsch aber deiner Korrektur auch. Würde bedeuten, dass ein Maschinenzyklus gleich der Dauer eines Pipelineschrittes ist.

Müsste entweder: Befehlsausführungszeit / Befehlspipelinelänge sein aber die Ausführungszeit hat man auch nicht immer gegeben und je nach Mikrocontroller sind die bei verschiedenen Befehlen auch unterschiedlich.

Am besten das Handbuch wälzen und dann ggf. berechnen.

pancho
2007-05-21, 23:00:03
12 Takte bleiben 12 Takte. Egal wie lange ein Takt dauert.