FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

hmmm...fragen zu t3

hmmm...fragen zu t3 2004-10-06 12:19
Anonymer User
hi leute,

haben heutzutage alle Recher einen virtuellen speicher?

Ist KB = KiB?

Der Begriff Kachelgrösse ist immer mit dem Begriff Hauptspeicher verbunden…hmmm….was genau ist eine Kachelgrösse?

Ist ein Puffer ein Cache?

Wann gibt es eigentlich Sprungbefehle?(wenn ein programm eine if-Anweisung hat?)

Im Skript von Lehmann steht im Kapitel Speicher ein Satz unter dem Punkt Cache:
"Typische" Programme verbringen 90% ihrer Laufzeit in 10% des Codes.

Kann mir jemand diesen Satz erklären? Hab den gar nicht verstanden……

Re: hmmm...fragen zu t3 2004-10-06 12:30
UncleOwen
haben heutzutage alle Recher einen virtuellen speicher?

Ausserhalb von Embedded Systems wohl ja

Ist KB = KiB?

Nein:
1 kB = 10^3B
1 kiB = 2^10B

Ist ein Puffer ein Cache?

Ja.

Wann gibt es eigentlich Sprungbefehle?(wenn ein programm eine if-Anweisung hat?)

Die Frage versteh ich irgendwie nicht…

Im Skript von Lehmann steht im Kapitel Speicher ein Satz unter dem Punkt Cache:
"Typische" Programme verbringen 90% ihrer Laufzeit in 10% des Codes.

Folgendes Mini-Programm:
init(); while(!done) machwas(); teardown();Die meiste Zeit wird wohl in Zeile 2 und 3 verbracht.

Re: hmmm...fragen zu t3 2004-10-06 13:41
Fred
haben heutzutage alle Recher einen virtuellen speicher?
Hängt natürlich auch vom Betriebssystem ab. Unter einigen kann man den virtuellen Speicher ja auch deaktivieren.

Wann gibt es eigentlich Sprungbefehle? (wenn ein programm eine if-Anweisung hat?)
Bei folgenden Kontrollstrukturen generiert der Compiler Sprungbefehle:

if
if/else
while
do/while
switch/case

Und natürlich bei Methodenaufrufen, da ist es dann ein call bzw. jsr oder wie auch immer der Befehl auf der CPU heisst.

Re: hmmm...fragen zu t3 2004-10-07 10:12
Anonymer User
Ich haette da auch nochmal ne frage. Bei der online Anmeldung kann man sich nicht fuer die T3 - Uebungen anmelden. Ab wann und wo kann man das machen???

Re: hmmm...fragen zu t3 2004-10-07 10:53
Slater
wenn dieselbe Frage in drei Topics gestellt wird,
wird sie auch nicht schneller beantwortet..

[darf ich nach der 4. solchen Frage jetzt wieder drauf hinweisen,
dass man das einfach per Mail an Veranstalter rausfindet? ;) ]

Re: hmmm...fragen zu t3 2004-10-24 13:03
Anonymer User
hi

also ein Computer kann ja mehrere Prozessoren haben ,aber er kann auch nur ein Prozessor haben. Die Computer, die wir zu haus haben, besitzen doch generell eher nur ein Prozessor oder bzw. sind doch SISD?
Prozessor = CPU?

Halbwort= 16 bit?

Warum bringt es nicht viel, wenn man zum beispiel 20 pipelines hat?
Kann das sein, dass einige befehle genutzt werden und somit die verarbeitung gestoppt wird…oder kann in jedem befehlsfluss auf dieselben operatoren zugegriffen werden?
warum stoeren denn sprungbefehle?

Re: hmmm...fragen zu t3 2004-10-24 13:24
Anonymer User
Hi leuet,

irgendwie bin ich zu dumm, um den virtuellen speicher zu verstehen?

Kann mir das jemand mal erklaeren?

Re: hmmm...fragen zu t3 2004-10-24 13:53
TriPhoenix
also ein Computer kann ja mehrere Prozessoren haben ,aber er kann auch nur ein Prozessor haben. Die Computer, die wir zu haus haben, besitzen doch generell eher nur ein Prozessor oder bzw. sind doch SISD?
Ja, prinzipiell schon. Wobei die Erweiterungen wie MMX und so dazu fuehren, dass der Rechner auf SIMD kann.

Prozessor = CPU?
Jup

Halbwort= 16 bit?
Je nach Architektur, auf der Sparc ja. Bei Intel heissen 16 Bit z.B. wiederum Wort. Ist also nicht eindeutig festgelegt.

Warum bringt es nicht viel, wenn man zum beispiel 20 pipelines hat?
Kann das sein, dass einige befehle genutzt werden und somit die verarbeitung gestoppt wird…oder kann in jedem befehlsfluss auf dieselben operatoren zugegriffen werden?
Genau da ist der Haken. Man betrachte eine Berechnung dieser Art:
a = b + c
d = a + e

Die zweite Zeile kann erst ausgefuehrt werden wenn die erste passiert ist. Dass man 20 parallelisierbare Befehle findet ist i.a. eher die seltenheit.

warum stoeren denn sprungbefehle?
Unbedingte Spruenge sind harmlos, da weiss man ja wo es hingeht. Gefaehrlich sind die bedingten Spruenge. Da haengt der Sprung von einem noch zu errechnenden Ergebnis ab. Der Prozessor raet hier (mit ein bisschen Algorithmus), ob der Sprung passieren wird und arbeitet auf gut Glueck shconmal Befehle ab. Im Zweifelsfall hat er sich dann aber verschaetzt und alle Befehle, die shconmal in "weiser" Voraussicht ausgefuehrt wurden sind rueckgaengig zu machen. Das kostet ganz schoen viel Zeit.

irgendwie bin ich zu dumm, um den virtuellen speicher zu verstehen?

Kann mir das jemand mal erklaeren?
Bjoern hat in grauer Urzeit mal diese nette Seite dazu gepostet: http://www-ti.informatik.uni-tuebingen.de/~heim/lehre/proseminar_ss99/ausarbeitung/martin_siebenhaller/virtmem/virtmem.html

Re: hmmm...fragen zu t3 2004-10-24 16:24
MoKrates
also ein Computer kann ja mehrere Prozessoren haben ,aber er kann auch nur ein Prozessor haben. Die Computer, die wir zu haus haben, besitzen doch generell eher nur ein Prozessor oder bzw. sind doch SISD?
Ja, prinzipiell schon. Wobei die Erweiterungen wie MMX und so dazu fuehren, dass der Rechner auf SIMD kann.
Naja, selbst der 286 hatte schon Befehle wie "movsb" oder "movsw", die eine eingebaute Schleife haben. (Wieferholungspraefix ueber si:di). Das ist auch im Prinzip SIMD.

Warum bringt es nicht viel, wenn man zum beispiel 20 pipelines hat?
Kann das sein, dass einige befehle genutzt werden und somit die verarbeitung gestoppt wird…oder kann in jedem befehlsfluss auf dieselben operatoren zugegriffen werden?
Genau da ist der Haken. Man betrachte eine Berechnung dieser Art:
a = b + c
d = a + e

Die zweite Zeile kann erst ausgefuehrt werden wenn die erste passiert ist. Dass man 20 parallelisierbare Befehle findet ist i.a. eher die seltenheit.
Pro Prozessor hast Du nur *eine* Pipeline.
Der Prozessor hat Phasen (Fetch, Decode, etc), die Pipeline kann maximal so viele Stellen haben (die Laenge der Pipeline), wie der Prozessor Phasen hat. Mehr ist nicht sinnvoll.
Der Durchsatz veraendert sich folgendermassen:
Ohne Pipeline: Ein Befehl braucht (Anzahl Phasen)*(Zeit Pro Phase), um fertig zu werden (wobei die Phasen auch verschieden lang sein koennen, und dann die Rechnung direkt so nicht mehr aufgeht.)
Mit Pipeline passen (Laenge der Pipeline) Anweisungen in die Pipeline. Also maximal (Anzahl Phasen). Damit braucht die einzelne Anweisung (Laenge der Pipeline)*(Zeit pro Phase) (Diesmal wirklich, da alle Phasen in der Laenge angeglichen werden.) Aber pro (Zeit pro Phase) wird eine Anweisung fertig, da (Laenge der Pipeline) Anweisungen gleichzeitig bearbytet werden.

warum stoeren denn sprungbefehle?
Unbedingte Spruenge sind harmlos, da weiss man ja wo es hingeht. Gefaehrlich sind die bedingten Spruenge. Da haengt der Sprung von einem noch zu errechnenden Ergebnis ab. Der Prozessor raet hier (mit ein bisschen Algorithmus), ob der Sprung passieren wird und arbeitet auf gut Glueck shconmal Befehle ab. Im Zweifelsfall hat er sich dann aber verschaetzt und alle Befehle, die shconmal in "weiser" Voraussicht ausgefuehrt wurden sind rueckgaengig zu machen. Das kostet ganz schoen viel Zeit.
Es kostet auch bei unbedingten Spruengen teilweise Zeit. Diese koennen aus einem Gecacheten Speicherbereich hinausgehen, und dann muss die CPU auf den Speicher warten. Aber in der Hauptsache hat Tri natuerlich recht.


irgendwie bin ich zu dumm, um den virtuellen speicher zu verstehen?

Kann mir das jemand mal erklaeren?
Das was Fred sagte, "man kann ihn manchmal abschalten", daran glaube ich nciht. Virtuellen Speicher kannst Du Dir so vorstellen: Es gibt ihn nicht.
Alles was Du hast, ist eine Adressierung, die nicht mit der Adressierung im Physikalischen Speicher uebereinstimmt. Und diese Adressierung nennt man "virtuelle Adressierung". Ueber die virtuelle Adressierung hat das OS ne ganze Menge Macht, und damit wird es moeglich es fuer jedes Programm so aussehen zu lassen, als sei es alleine auf dem Computer. Und auch, als haette jedes Programm fuer sich einen kompletten Adressbereich. Und ueber Seitenfehler kann man Swapspace auf Festplatten benutzen, was allgemeinhin mit "virtuellem Speicher" bezeichnet wird, aber nur mittelbar was mit der virtuellen Adressierung zu tun hat.

Mo

Re: hmmm...fragen zu t3 2004-10-24 20:06
Fred
Naja, selbst der 286 hatte schon Befehle wie "movsb" oder "movsw", die eine eingebaute Schleife haben. (Wieferholungspraefix ueber si:di). Das ist auch im Prinzip SIMD.
Ich denke nicht, da die Daten nacheinander und nicht gleichzeitig bearbeitet werden.

Re: hmmm...fragen zu t3 2004-10-24 20:26
TriPhoenix
also ein Computer kann ja mehrere Prozessoren haben ,aber er kann auch nur ein Prozessor haben. Die Computer, die wir zu haus haben, besitzen doch generell eher nur ein Prozessor oder bzw. sind doch SISD?
Ja, prinzipiell schon. Wobei die Erweiterungen wie MMX und so dazu fuehren, dass der Rechner auf SIMD kann.
Naja, selbst der 286 hatte schon Befehle wie "movsb" oder "movsw", die eine eingebaute Schleife haben. (Wieferholungspraefix ueber si:di). Das ist auch im Prinzip SIMD.
SIMD erfordert wie Fred sagte nach allem was ich so sehe Parallelität und die macht der 286 nun echt nicht [img]http://www.fb18.de/gfx/28.gif[/img]

Pro Prozessor hast Du nur *eine* Pipeline.
Nö [img]http://www.fb18.de/gfx/24.gif[/img], mehrere Pipelines gibts afair seit dem Pentium oder Pentium Pro. Heutzutage arbeitet man afair mit 2-3. Mit Hyperthreading wirds natürlich erst recht abgefahren.


Re: hmmm...fragen zu t3 2004-10-24 20:38
UncleOwen
Mit Hyperthreading wirds natürlich erst recht abgefahren.

An der Anzahl der Pipelines ändert das aber auch nichts. Nur an der Auslastung.

Re: hmmm...fragen zu t3 2004-10-24 20:39
TriPhoenix
Mit Hyperthreading wirds natürlich erst recht abgefahren.

An der Anzahl der Pipelines ändert das aber auch nichts. Nur an der Auslastung.

Je nachdem wie du dualcore spielst. Da können das wenn mans drauf anlegt auch 4-6 Pipelines werden [img]http://www.fb18.de/gfx/28.gif[/img]

Re: hmmm...fragen zu t3 2004-10-25 01:08
MoKrates
Habters bald?

Mo