damo86 Geschrieben 29. Januar 2013 Teilen Geschrieben 29. Januar 2013 Hallo zusammen, Hab am Freitag Prüfung und folgende Frage in ähnlicher Ausführung hab ich schon öfters gelesen, aber ich komm nicht dahinter bzw. hab keine Formel. Hoffentlich kann mir jemand weiterhelfen... Hier die Aufgaben: Das schon etwas ältere PC-System AT 286 arbeitete mit 24 Bit Adressbreite und 16 Bit Datenbreite (Wortlänge), seine Taktfrequenz betrug 50 MHz, ein einzelner Hauptspeicherzugriff benötigte 100 ns. Wir nehmen vereinfachend an, dass jeder Maschinenbefehl des AT-286 grundsätzlich 2 Byte lang ist und genau einen Takt zur Ausführung benötigt. Das System besitze zunächst keinen Cache. a) Welche Ausführungszeit ergibt sich für eine Berechnung, die 50000 Maschineninstruktionen benötigt? Berücksichtigen Sie dabei die Zeit für das Holen und Ausführen der Befehle. Bei jedem zweiten Befehl wird noch ein 16-Bit Datenwort vom oder zum Hauptspeicher transferiert. Welche Gesamtausführungszeit ergibt sich damit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 29. Januar 2013 Teilen Geschrieben 29. Januar 2013 Fang damit an, dass du bestimmst, wie lange es dauert, einen einzelnen Befehl zu holen und auszuführen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
damo86 Geschrieben 29. Januar 2013 Autor Teilen Geschrieben 29. Januar 2013 genau um das geht es... wie berechne ich das ganze??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 29. Januar 2013 Teilen Geschrieben 29. Januar 2013 Um auszurechnen, wie lange das Holen eines Befehls dauert, musst du wissen, wieviele Hauptspeicherzugriffe du dafür brauchst. Wie lange ein Hauptspeicherzugriff dauert, steht im Aufgabentext. Das Ausführen dauert einen Takt, das steht im Aufgabentext. Die Dauer eines Takts ist der Kehrwert der Taktfrequenz. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
damo86 Geschrieben 31. Januar 2013 Autor Teilen Geschrieben 31. Januar 2013 Kann die Antwort so lauten: a) Zeit = 1/50 MHz = 20 ns 20 ns x 50000 Befehle x 100 ns = 100000000 ns = 0,1 Sec 16 Bit = 2 Byte entspricht 1 Takt für ein Datenwort, das widerum entspricht wieder 20 ns 20 ns * 25000 Datenwörter x 100 ns = 50000000 ns = 0,05 Sec Gesamt = 0,15 Sec Bitte erneut um Hilfe Klotzkopp... ich hoffe ich habs jetzt endlich. Bitte sag ja Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. Januar 2013 Teilen Geschrieben 31. Januar 2013 20 ns x 50000 Befehle x 100 nsDas kann doch schon von den Einheiten her nicht passen. Du multiplizierst zwei Zeiten, und am Ende kommt wieder eine Zeit heraus? Geht nicht. Versuch nicht, die Angaben irgendwie mitander zu verknüpfen. Geh systematisch vor. 50000 Instruktionen dauern 50000 mal so lange wie 1 Instruktion. Instruktion besteht aus Instruktion holen und Instruktion ausführen -> GESAMT = 50000 * (HOLEN + AUSFÜHREN) Holen dauert 100 ns für 16 Bit (Datenbusbreite). Eine Instruktion ist 2 Byte groß, also braucht man 1 Hauptspeicherzugriff pro Instruktion. -> HOLEN = 100 ns Ausführen dauert 1 Takt -> AUSFÜHREN = 1/50 MHz = 20 ns -> GESAMT = 50000 * (100 ns + 20 ns) = 6.000.000 ns = 6 ms Zu Speicherzugriffe benötigen 100 ns, nicht 1 Takt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
damo86 Geschrieben 31. Januar 2013 Autor Teilen Geschrieben 31. Januar 2013 Haha :-) vielen Dank! Eigentlich ganz logisch... 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.