Schnapphase Geschrieben 7. Juni 2009 Teilen Geschrieben 7. Juni 2009 Ich möchte gern mit einem Sequenzdiagramm ausdrücken, wie man Daten über einen DMA in einen Hardware Multiplizierer schiebt. Der DMA kann ja in einer Operation Daten aus dem Speicher in den Multiplizierer schieben und ich weiß nicht, wie ich das im Sequenzdiagramm ausdrücken soll. Jemand ne Idee? Ich hab da mal was gebaut, weiß aber nicht ob das so stimmt (PDF Anhang)firdma.pdf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AndiE Geschrieben 12. Juni 2009 Teilen Geschrieben 12. Juni 2009 Hi, auch wenn ich nicht der Experte bin, erinnere ich mich, dass eine Sequenz das Verhalten des Systems in einem bestimmten Zeitabschnitt darstellt. De Frage ist also: Was tut dein System in der Zeit? Das ist so aus dem Diagramm nicht ablesbar. Wenn das nicht klar ist, wird nicht die Rolle des DMA-Controlers klar. Günstig wäre auch, das Problem im EVA-Zusammenhang darzustellen, weil man dann nicht in Raterei vefallen muß. Erkläre dich deshalb bitte noch mal. LG Andre' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schnapphase Geschrieben 12. Juni 2009 Autor Teilen Geschrieben 12. Juni 2009 Ich gebe dir erstmal vollkommen recht EVA wäre hier ebenso schwierig. Der DMA macht ja eigentlich nen move befehl von Adresse A (Speicher) zu Adresse B (Multplizierer). Der Datenfluss wäre also eigentlich nur Speicher > Multiplizierer. Aber ich möchte halt gern ausdrücken, dass der DMA dran beteiligt ist... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Juni 2009 Teilen Geschrieben 13. Juni 2009 Aber ich möchte halt gern ausdrücken, dass der DMA dran beteiligt ist...Wer ist denn "der DMA"? DMA ist eine Zugriffsart, kein Objekt, das selbst etwas tut. DMA wird verwendet von DMA-Controllern, DMA-Engines in CPUs oder von den Geräten selbst, wie bei PCI. Das wären mögliche Objekte für ein Sequenzdiagramm. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AndiE Geschrieben 13. Juni 2009 Teilen Geschrieben 13. Juni 2009 Ach so, EVA bedeutet Eingabe-Verarbeitung-Ausgabe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schnapphase Geschrieben 13. Juni 2009 Autor Teilen Geschrieben 13. Juni 2009 Ja ich weiß - und ich habe das auch entsprechend beschrieben. E: Speicher, V: DMA, A: Multiplizierer ?! Aber das lässt sich mit eva nicht beschreiben da ich hier keine gleichzeitige e und a ausdrücken kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AndiE Geschrieben 14. Juni 2009 Teilen Geschrieben 14. Juni 2009 Ich würde vom "Muiplizierer" ausgehen. Die darzustellende Sequenz wäre für mich: E: Daten mit DMA vom Speicher in Multiplizierer V: Daten mit Multiplizierer berechnen A: Daten mit DMA vom Multipizierer in Speicher Die Frage ist nun, im Diagramm klarzustellen, wer wie oft die Sequenz auslöst, und wie der DMA durch wen gestattet wird. Natürlich wäre es interessant zu wissen, warum nicht der normale Weg beschritten wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schnapphase Geschrieben 14. Juni 2009 Autor Teilen Geschrieben 14. Juni 2009 > Die darzustellende Sequenz wäre für mich [...] Ist ja soweit richtig. Aber bitte als Sequenzdiagramm - womit wir wieder am Anfang wären > Natürlich wäre es interessant zu wissen, warum nicht der normale Weg beschritten wird. Das ist der normale Weg bei der Mikrocontrollerprogrammierung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AndiE Geschrieben 19. Juni 2009 Teilen Geschrieben 19. Juni 2009 Hi, ich kann nur am Wochenende auf meinen account zugreifen. Bin in der Woche auf Lehrgang. In der Skizze bin ich von der Steuerung des Speicherzugriffes durch den DMA Controler ausgegangen. Dafür habe ich den Speicher weggelassen. Ich denke, das Bild erklärt sich selbst. LG Andre' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schnapphase Geschrieben 19. Juni 2009 Autor Teilen Geschrieben 19. Juni 2009 Nein so funktioniert das leider auch nicht Die CPU hat mit dem Speicherzugriff überhaupt nichts zu tun und befindet sich darüber hinaus sogar im Schlafzustand. Und der Multiplizierer kann keine Daten laden und auch keine Daten anfordern. Der wird nur getriggert wenn die Daten in seinen Registern liegen. Der DMA fragt auch keine Geräte ab sondern macht nen simplem MOVE Befehl von Speicheradresse A (RAM) zu Speicheradresse B (Multiplizierer) - und zwar in einem Takt, also in einem Befehl der sich nicht unterbrechen lässt. Also dein Diagramm mag zwar semantisch richtig sein, gibt aber mein Programmkonzept nicht wieder... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AndiE Geschrieben 19. Juni 2009 Teilen Geschrieben 19. Juni 2009 Hi, ich verstehe ich nicht so richtig, was du meinst. Ich kenne das so: Im Normalfall greift die CPU über das Bussystem auf den Speicher zu. Das bedeutet, dass Daten für externe Geräte aus der Speicherzelle in das Register der CPU und von dort in eine Speicherzelle des Gerätes geladen wird. Das DMA sollte meines Wissens dafür zuständig sein, dass die externen Geräte direkt, ohne Umwege über die CPU auf den Speicher zugreifen können, z.B. Festplattencontroler, Soundkarte, Videokarte usw. Dazu steuert der DMA-Controler die Zugriffsrechte, die ja irgendwie angefordert werden müssen. Zu deinem Projekt: Klar sorgt der DMA-Controler dafür, dass Daten vom Speicher direkt in den Multiplizierer geladen werden können. Wieso? Weil die CPU keinen Speicherzugriff benötigt, da sie ja schläft. Der Multiplizierer legt also Adressen an den Adressbus und lädt seine Register über den Datenbus. Sind alle Register geladen, löst er die Berechnung aus, und liest die Daten direkt zurück. Ich denke, das er das auf Hardware-Ebene macht- und doch kann man das Verhalten softwaremäßig als PAP, Zustandsdiagramm usw. beschreiben. Beispielsweise fordert der Multiplizierer natürlich nichts an, aber wenn sich an einer bestimmten Leitung des Steuerbusses der Wert ändert, kann man das so interpretieren. LG Andre' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schnapphase Geschrieben 19. Juni 2009 Autor Teilen Geschrieben 19. Juni 2009 Na gut - dann sind wir uns soweit einig. Vielen Dank für deine Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.