Veröffentlicht 29. Januar 201312 j 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?
29. Januar 201312 j Fang damit an, dass du bestimmst, wie lange es dauert, einen einzelnen Befehl zu holen und auszuführen.
29. Januar 201312 j 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.
31. Januar 201312 j Autor 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
31. Januar 201312 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.