Hallo, ich habe eine Frage zu den Anzahl Zyklen die ein "icall" und ein "ret" auf dem ATMega1284P benötigen. Ja man kann die Datenblätter konsultieren und genau darum bin ich hier. Im ATMega124p Manual steht icall braucht 4 und ret braucht 5 cyclen. Aber im allgemeinen Instruction Set Manual steht bei AVRs mit 16-bit PC (program counter) braucht icall 3 und ret 4 und bei 22-bit PC braucht icall 4 und ret 5 cyclen. Aber ein ATMega hat doch einen 16-bit PC (Manual Kapitel 6.2). Wie viele Zyklen brauchen jetzt diese Instruktionen wirklich? Gruss Peter
Gast
#3690246
Peter Schranz schrieb: > Wie viele Zyklen brauchen jetzt diese Instruktionen wirklich? Da würde ich mich auf die normative Kraft des Faktischen verlassen und einfach mal messen.
Gast
#3690328
Peter Schranz schrieb: > ich habe eine Frage zu den Anzahl Zyklen die ein "icall" und ein "ret" > auf dem ATMega1284P benötigen. Ja man kann die Datenblätter konsultieren > und genau darum bin ich hier. Im ATMega124p Manual Du meinst sicher 1284P. Wohl ein Tippfehler. > steht icall braucht 4 > und ret braucht 5 cyclen. Das ist tatsächlich eine falsche Angabe im Datenblatt. Auch die zu rcall ist übrigens falsch. > Aber im allgemeinen Instruction Set Manual > steht bei AVRs mit 16-bit PC (program counter) braucht icall 3 und ret 4 > und bei 22-bit PC braucht icall 4 und ret 5 cyclen. Und das ist auch korrekt so. > Aber ein ATMega hat > doch einen 16-bit PC Nicht jeder. Nur die meisten. Der 1284P gehört aber definitiv zu diesen. Aber mal abseits vom Thema: du hast mir echt den Tag gerettet. Endlich mal wieder jemand im Forum, der 1) noch Datenblätter liest, 2) sich für Taktzyklen interessiert und 3) obendrein selbstständig denken kann und nichtmal Datenblättern vorbehaltlos vertraut, sondern in der Lage ist, selbstständig offensichtliche Diskrepanzen zu entdecken... Bravo, weiter so.
Danke für eure Antworten, ja sicher interessiere ich mich für Zyklen. Diesmal geht es um die Performance eines Emulators und dort wollte ich abschätzen welche meiner beiden Ideen weniger Zyklen braucht. Wenn das Instruction Manual recht hat (und es macht vor allem auch mehr Sinn), dann ist die Lösung mit icall und ret schneller als die andere. Das hat dann auch zur Folge, dass es übersichtlicher wird. Schlägt also 2 Fliegen mit einer Klatsche (noch nicht das tapfere Schneiderlein aber man soll bescheiden beginnen). Aber ich werde sicher mal ein Test Progrämmchen machen. Ich dachte an so etwas, den Timer 2 lasse ich einfach mit dem CPU Takt laufen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
nur noch den Wert von r3 ausgeben und schon weiss ich es, zumindest wenn 7 herauskommt ist alles klar. Peter P.S. ja natürlich ich meinte den ATMega1248P
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.