Hallo zusammen, Interrupts sind beim NIOS ja eine einzige Katastrophe, zumal wenn man zwingend viele benötigt. Hat jemand mal so ne Art AIC (Advanced Interrupt Controller) für den NIOS gesehen? Meine Recherchen ergaben leider keine brauchbaren Ergebnisse.
Wieviele Interrupts benötigst du denn? Bis 32 sollte mit dem NIOS II ohne grossen Aufwand möglich sein und wenn du den Accelerator fürs vectoring einbaust ist es auch nicht allzu langsam. Auf Softwareseite kannst du auch noch einiges tunen, wenn du weisst wo. (Interrupt entry, separater stack, ...) Wenn du mehr Interrupts brauchst solltest du dir eventuell etwas intelligenteres einfallen lassen mit etwas zusätzlicher Hardware. Was sollte den so ein AIC überhaupt alles machen?
>> Accelerator << ist im Zusammenhang bei Altera relativ. Da braucht ein Interrupt
statt den 105 Taktzyklennur noch etwa die Hälfte.
Die Gesamtanzahl ist nicht das Problem, derzeit sind es etwa 15-17
Interrupts, die aber nur zum Teil genutzt werden. Bei Zykluszeiten von
10µs schmerzen aber die benötigten Takte pro Interrupt trotzdem.
Alles was richtig "speed" bringt hilft.
Properitäre Lösungen wie "separater Stack" etc. führen in komplexen
Designs meist zu Problemen. Davon würden wir gerne absehen.
Du hast immer noch nicht gesagt, was du von einem AIC erwartest. Wie werden denn die Interrupts behandelt? Arbeitet ihr mit dem HAL-Framework von Altera und Interruptroutinen in C? Sind eventuell verschachtelte Interrupts möglich? Da muss der Compiler gezwungenermassen den ganzen Status sichern und das braucht Zeit. (Mit Spezialinstruktionen kann ich mir 2 Register pro Takt vorstellen. Was es sonst noch braucht weiss ich nicht genau. Der Exceptionentry müsste dann selber geschrieben werden.)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.