Berechnung der Instruktionsrate

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
matthias_2608

Hallo,
ich komme mit folgender Hausaufgabe einfach nicht zurecht:
Ein Rechner besitzt einen 32-Bit-Prozessor mit einer Taktfrequenz von 100 MHz.
a) Berechnen Sie die Instruktionsrate für den Prozessor, wenn dieser durchschnittlich vier Taktzyklen pro Befehl benötigt.
b) Der Bus zur Versorgung des Prozessors ist ebenfalls mit 100 MHz getaktet. Er kann ein 32-Bit-Wort pro Takt transportieren. Der Rechner benutzt eine SCSI-Festplatte, die an den Bus angeschlossen ist und über eine max. Transferrate von 40 MB/s verfügt. Wie stark wird der Prozessor von der Festplatte bei einem Lesebefehl gebremst?
Ich kenne die Formel zur Berechnung der Übertragunsgrate: Busgeschwindigkeit + Busbreite + Bustakt. Ist hier 100 * 32 * 32 = 102.400 Bit/s, oder? 102.400 / 1024 = Wie geht es dann weiter?
Gast

Hallo Matthias,

a) habe ich folgendermaßen gelöst :

Instruktionsrate = Taktfrequenz der CPU / Taktrate pro Grundoperation
Instruktionsrate = 100 MHz / 4 Taktzyklen pro Befehl = 25 MIPS

b)Da SCSI ja ein eigenständiges paralleles Bussystem ist, wird die CPU nicht bzw. so gut wie überhaupt nicht bei einem Lesebefehl bei einer SCSI-Festplatte ausgebremst. Ergo kannst du das auch nicht berechnen (Kurzfassung).

Hoffe, ich konnte dir weiterhelfen :wink:

Gruss

Sven
Killerloop
Neues Mitglied
Neues Mitglied
Beiträge: 8
Registriert: 27.03.04 20:00
Wohnort: Schwäbisch-Hall
Kontaktdaten:

Hallo Matthias,

a) habe ich folgendermaßen gelöst :

Instruktionsrate = Taktfrequenz der CPU / Taktrate pro Grundoperation
Instruktionsrate = 100 MHz / 4 Taktzyklen pro Befehl = 25 MIPS

b)Da SCSI ja ein eigenständiges paralleles Bussystem ist, wird die CPU nicht bzw. so gut wie überhaupt nicht bei einem Lesebefehl bei einer SCSI-Festplatte ausgebremst. Ergo kannst du das auch nicht berechnen (Kurzfassung).

Hoffe, ich konnte dir weiterhelfen :wink:

Gruss

Sven
DeMarcus

Hallo zusammen,

1.) hocherfreut heute dieses Forum erblickt und in Zukunft öfters besucht

2.) ich komme mit der Aufgabe ebenfalls nicht zurecht. Auch die Lösung verstehe ich nicht. Bzw. WIE KOMMT MAN DA DRAUF?

Gruß
Marcus
Gast

Ich hab das auch mal probiert und vielleicht etwas verständlicher geschrieben.

Die Instruktionsrate gibt die Anzahl an Grundrechenarten pro Sekunde an.

Für einen Befehl benötigt dieser Prozessor 4 Taktzyklen.

100 MHz = 100 * 1.000.000 Takte pro sek

Pro Sekunde schafft er damit 100.000.000 / 4
= 25.000.000 Befehle.
= 25MIPS

Gruß
Marcus
bpk1977
Mitglied
Mitglied
Beiträge: 10
Registriert: 18.10.04 14:21

Hi Ihr...
Vorsicht wenn ihr die Antwort 3 b) von Killerloop übernehmt, habt ihr damit für die Lösung dieser Aufgabe null Punkte abgeschossen...

Der Prozessor wird sehr wohl gebremst!

Ich würde an eurer Stelle mal ausrechnen, was der Bus so übertragen kann...
Danach müßt ihr nur noch die Lösung von 3 a) richtig mit dem ermittelten Wert kombinieren und ihr habt die Lösung!

In diesem Sinne ein freudiges Weiterstudieren...
Killerloop
Neues Mitglied
Neues Mitglied
Beiträge: 8
Registriert: 27.03.04 20:00
Wohnort: Schwäbisch-Hall
Kontaktdaten:

Hm,

ich hole heute abend extra noch mal meine Unterlagen aus dem Schrank :wink:

Kann mich nicht erinnern, dass das 0 Punkte gab 8O


Aufgabe b) ist so nicht richtig, das stimmt..... Ich weiss aber bis heute nicht, warum die CPU ausgebremst wird.


Wie gesagt, ich sehe noch mal nach


Gruss
bpk1977
Mitglied
Mitglied
Beiträge: 10
Registriert: 18.10.04 14:21

Kann ich dir schreiben...

Willst du es per PN oder per Mail?!?
soenke
Forums-Profi
Forums-Profi
Beiträge: 80
Registriert: 05.12.04 22:22
Wohnort: Hamburg

zu 3b)

Wahrscheinlich wird von einem ungepufferten direkten Lesevorgang ausgegangen, denn es soll hier wohl schon etwas berechnet werden, sonst ist es eine Fangfrage ;-)

Erst einmal berechnen wir, wieviel der Bus (und die CPU, die die gleichen Daten hat) übertragen kann.

32 Bit * 100 000 000 1/s =~ 381 MB

(also die Zahl, die rauskommt, sind Bits und das halt /8/1024/1024)

40MB/s von 381MB/s sind ca. 10,5 Prozent, also wird der Prozessor beim direkten ungepufferten lesen ca. 89,5% ausgebremst.

Das ist natürlich völlig theoretisch und so schreibe ich es auch in meine Antwort.

-- ohne gewähr -- 8)
Gast

Hallo Soenke,

vorab vielen Dank für deine Erläuterungen.
Dieses Forum wird sich wohl noch als sehr nützlich erweisen.

Meiner Meinung nach gestaltet sich die Antwort aber etwas anders.

Der Bus ist in der Lage Daten mit bis zu 381 MB/s zu übermitteln.
Die Festplatte benötigt vom Bus bei einem 100 % auslastenden Lesezugriff gerade mal 40 MB/s. Das heißt die Platte würde ca. 10, 5 % der Buskapazität abgreifen und den Prozessor um entsprechende 10,5 % ausbremsen und nicht umgekehrt.

Dies würde auch dem Einsatz der SCSI Platte entsprechen, da diese Platten eingesetzt werden, gerade weil sie den Prozessor entsprechend nicht wirklich ausbremsen.

Was hälst du davon?

Gruß Armin
Gast

Hallo Armin,

das ist vielleicht Auslegungssache, wie man die Frage interpretiert. Geht man davon aus, dass die CPU zu 100% ausgelastet sein soll, aber nur Daten mit 10,5%iger Geschwindigkeit bekommt, so wird sie tatsächlich um 89,5% ausgebremst.

Du scheinst der Annahme zu sein, dass die CPU irgendetwas anderes gerade zu 100% auf dem Bus macht und somit von dem Lesezugriff der Festplatte ausgebremst wird, was mir aber nicht sehr logisch erscheint, denn in der Fragestellung ist ja vom Lesebefehl (der wohl von der CPU an die Festplatte gesendet wird) die Rede.

Und wie ich sagte, ist die Frage komplett theoretisch. Die Techniken, durch die SCSI schnell ist, haben technisch andere Ursprünge und wurden in der Lerneinheit überhaupt nicht behandelt (was auch nicht das Ziel der Einheit war).

Was sagen denn die Leute, die die Aufgabe schon zurück haben?
soenke
Forums-Profi
Forums-Profi
Beiträge: 80
Registriert: 05.12.04 22:22
Wohnort: Hamburg

ups, vergessen anzumelden, das war mein eintrag ;)
soenke
Forums-Profi
Forums-Profi
Beiträge: 80
Registriert: 05.12.04 22:22
Wohnort: Hamburg

Hier die offizielle Antwort - es ist also nach etwas völlig anderem gefragt (in meinen Augen _KANN_ man da garnicht draufkommen):


Der Bus ist in der Lage, 32 Bit pro Takt, also 4 Byte pro Takt zu übertragen
Bei einer Taktfrequenz von 100 MHz (Ein MHz = 1.000.000 Schwingungen/s) beträgt
die Taktzykluszeit 10 ns. (Eine Nanosekunde = 1/1.000.000.000 Sekunden) Der Bus
könnte also 4 Byte in 10 ns übertragen. Die Festplatte liefert max. 40 MB pro
Sekunde. Das sind 0,4 Byte in 10 ns. Um ein 32-Bit-Wort von der Festplatte über den
Bus zu transportieren sind damit 10 Takte notwendig. Der Prozessor benötigt zur
Abarbeitung des Lesebefehls 4 Takte. Er muß somit 6 Takte warten.
Benutzeravatar
Lilly
Forums-Scout
Forums-Scout
Beiträge: 296
Registriert: 11.10.05 19:39

Hallo zusammen,

kann mir jemand helfen!

Die Lösung von soenke scheint mir fast perfekt für die Aufgabe, aber der vorletzte Satz, da steht:
„Der Prozessor benötigt zur Abarbeitung des Lesebefehls 4 Takte“.
Laut Aufgabenstellung kann der Prozessor ein 32-Bit-Wort pro Takt transportieren.
Also braucht er doch auch nur einen Takt, oder verstehe ich da noch was falsch? 8O

:arrow: Ich denke, es müsste heißen:
Der Prozessor benötigt 1 Takt, die Festplatte benötigt 10 Takte somit muss der Prozessor 9 Takte warten. :?:

HILFE!!!!! :idea:
Danke im Voraus
Gruß
Lilly
Uwe_Zett.
Forums-Profi
Forums-Profi
Beiträge: 73
Registriert: 24.07.05 12:09

Hi Lilly,

in Aufgabe 3a hast du gelöst, dass der Prozessor 25 MIPS benötigt. Also bei 100 MHz sind das 4 Takte pro Befehl. Der Bus kann ein 32 Bit Wort pro Takt übertragen. Gefragt ist allerdings Prozessorwartezeit und nicht Buswartezeit.

Gruß Uwe...
Antworten