Lowlevel

OffZone => Offtopic => Thema gestartet von: Döner Schniefer am 16. November 2004, 19:40

Titel: Wie führt CPU Befehle aus?
Beitrag von: Döner Schniefer am 16. November 2004, 19:40
Hm.. hab mir grad ma überlegt wie die CPU denn eigentlich so ein OPCode ausführt?

Wird einfach jeh nach Code ne bestimmte Leitung über die Transistoren durchgeschaltet die dann ne Prozedur "aufruft"?

Oder ist das dann doch etwas komplizierter? ^^


cu,
André
Titel: Wie führt CPU Befehle aus?
Beitrag von: hannibal am 16. November 2004, 22:17
im prinzip wirds genauso gemacht ;)

durch einen bestimmten opcode wird vom decoder im steuerwerk ein mikroprogramm aufgerufen, dass dann die 'mechanische' kleinarbeit erledigt.
Titel: Wie führt CPU Befehle aus?
Beitrag von: joachim_neu am 16. November 2004, 23:18
und er holt die werte, die er braucht mit einem BUS ausm speicher ab ;-)
Titel: Wie führt CPU Befehle aus?
Beitrag von: chr15 am 17. November 2004, 13:36
Komplizierter wird es bei neueren Prozessoren, die mehrere Befehle gleichzeitig ausfürhren. Da muss vorher noch geprüft werden, ob der eine den anderen braucht, der vorrausgeht usw.
Auch wird das ganze durch die Cache-Verwaltung nicht gerade einfacher
Titel: Wie führt CPU Befehle aus?
Beitrag von: hannibal am 17. November 2004, 23:16
fuer den programmierer bleibts im grunde gleich, da die normalen opcodes ja nicht wirklich veraendert werden - mov bleibt mov und daran wird sich softwareseitig auch nix aendern.

und nur mal so nebenbei: ganz so unkompliziert ist es jetzt auch nicht (hardwareseitig gesehen) ;)

lg, hannibal
Titel: Wie führt CPU Befehle aus?
Beitrag von: Döner Schniefer am 22. November 2004, 15:14
hm.. ok thx :) so wie ichs gedacht hab *stolz bin*

sry, hab auf meine neue CPU (amd athlon 64 3500+ winchester :]) gewartet, konnte solang nich on.

hab gestern angefangen die referenzen zu lesen, gleich auf den ersten seiten:
Zitat

Processors that
implement the AMD64 architecture boot in legacy real mode,
just like processors that implement the legacy x86 architecture

*wein*, hab gedacht die ham mal was revolutionäres gemacht un dann kommen die mir da wieder mit dem real mode an ^^
Titel: Wie führt CPU Befehle aus?
Beitrag von: joachim_neu am 22. November 2004, 15:19
Zitat von: Döner Schniefer
hm.. ok thx :) so wie ichs gedacht hab *stolz bin*

sry, hab auf meine neue CPU (amd athlon 64 3500+ winchester :]) gewartet, konnte solang nich on.

hab gestern angefangen die referenzen zu lesen, gleich auf den ersten seiten:
Zitat

Processors that
implement the AMD64 architecture boot in legacy real mode,
just like processors that implement the legacy x86 architecture

*wein*, hab gedacht die ham mal was revolutionäres gemacht un dann kommen die mir da wieder mit dem real mode an ^^



seih froh, so haben die wenigstens noch die abwärtskompatibilität bewahrt!
Titel: Wie führt CPU Befehle aus?
Beitrag von: Döner Schniefer am 22. November 2004, 17:43
ja genau das will ich nimmer :(

ca. ein viertel oder so des CPUs machen die alten 16 un 32 bit modi aus.

aba egal.. so kann ich wenigstens noch mein icq nutzen ^^
Titel: Wie führt CPU Befehle aus?
Beitrag von: Roshl am 23. November 2004, 09:49
Wenn des nicht wäre könntest du alle! Programme fürn x86 inne Tonne treten, So  kann das OS immer noch selbst festlegen was es will, sonst müsste es komplett neue OS dafür geben und dann müssten auch immer dir Benutzer wissen das se nen Prozessor ham der nur  64Bit versteht,und von nem normalen Redmonder ist das kaum zu erwarten^^
Titel: Wie führt CPU Befehle aus?
Beitrag von: Another Stupid Coder am 23. November 2004, 14:44
Naja, also bei dem den ich gesehen hab steht vorne ganz groß "AMD 64" drauf (auf dem Tower!) insofern sollte man das feststellen können ;) Und es gibt ja von Linux 64-Bit versionen...von Windows doch auch, oder entwickeln die noch drann?

@Döner Schiefer was hast du denn für das Teil gezahlt? (Wenns dir nicht zu privat ist, mich würde nur mal interessieren was die Dinger kosten^^)
Titel: Wie führt CPU Befehle aus?
Beitrag von: Döner Schniefer am 23. November 2004, 15:26
250€ (+versand) :]
aba den winchester, der is soooo klein der DIE nur 90 nm großer ^^

aba joachim:
was inne tonne kloppen? die alten register existieren ja noch, die alten befehle auch, nur sinn die register halt n bissle größer^^ un amd hätte zumindest die alten modi abschaffen können.
nen kleiner recompile von den programmen un basta.
oder für assembler halt alle 32 bit werte in 64 bit, oder so

jo m$ entwickelt noch, aba man kann sich die beta schon ziehen.

un außerdem mach ich ja sowieso mein eigenes ^^
Titel: Wie führt CPU Befehle aus?
Beitrag von: hannibal am 23. November 2004, 16:19
http://lowlevel.brainsware.org/forum/viewtopic.php?t=354

mehr sag ich dazu nicht.  :roll:
Titel: Wie führt CPU Befehle aus?
Beitrag von: TeeJay am 23. November 2004, 18:08
So einfach ist das mit dem Recompile net :)

Sonst gäb müsste MS den ganzen Enticklern da draussen nicht so früh schon eine Vorabversion von Windows 64 Bit geben damit die entwickeln und testen können.

Der Prozessor hat neben den weiteren Befehlen und größeren Registern auch noch andere neue Eigenschaften die evtl in den Programmen berücksichtigt werden müssen.

Vielleicht könnte man ein Programm einfach so von 32 zu 64 bit kompilen. Aber dann haste von der mehr Rechenpower net viel, weil du nach wie vor nur 32 Bit Werte für deine Zahlen etc benutzt.

Folglich muss man sein Programm schon etwas abändern, damit man von den 64 Bit auch profitiert.

Und das mit dem abschaffen der alten Modi wirds auch nicht geben. Zumindest nicht so bald.

Man bedenke das für den PMode eine Gebrauchsfähige GDT benötigt wird. Diese muss man ja erst VOR dem Sprung anlegen. Man könnte es zwar dadurch lösen, das man eine Standart-GDT im BIOS ablegt, aber auch heute gibt es noch Rechner, gerade in der Industrie die mit alter 16 Bit Software laufen. Da wäre es ja Fatal wenn Intel auf einmal sagen würde: Sorry aber alte Prozessoren die 16 Bit können gibt es nichtmehr. Sie müssen sich eine neue Industrieanlage für X Mio kaufen. Und das nur weil der Rechner hinüber is :)

Abgesehen davon müsste man praktisch von heute auf morgen alle User dazu bringen nur noch 64-Bit OS zu kaufen/benutzen....und das schaffe mal :)

Die derzeitigen 64 Bit CPUs sind eh nur ein kleiner zwischenschritt. Für die Speicheradressiereung sehen auch diese nur 48 Bit vor. Ich denke das schiebt man einfach zwischen, bis so ziemlich alle mal 64 Bit bei sich daheim stehen haben und dann kommen CPUs die vielleicht nichtmehr so viel Altlasten mit sich rumschleppen und auch direkt nur noch für 64 Bit ausgelegt oder zumindest Optimiert sind.
Titel: Wie führt CPU Befehle aus?
Beitrag von: Döner Schniefer am 23. November 2004, 20:57
will ja mit den alten progs nich von 64bit profitieren, will se ja nur zum laufen kriegen ^^

und wenn einer nen 16 bit prog laufen lassen will, dann muss man halt software emulation nutzen :)

aber kk, is schon ganz ok, dass es die modi noch gibt.. vorerst zumindest :]
Titel: Wie führt CPU Befehle aus?
Beitrag von: hannibal am 23. November 2004, 22:26
es geht nicht darum altes abzuschaffen, sondern neues entstehen zu lassen. das ist alles.
Titel: Wie führt CPU Befehle aus?
Beitrag von: TeeJay am 24. November 2004, 00:25
Kauf die einen Itanium oder Itanium 2.

Die laufen nur in "ihrem" 64-Bit Mode :)
Da gibst glaub nix anderes mehr.
Titel: Wie führt CPU Befehle aus?
Beitrag von: Roshl am 24. November 2004, 10:04
Im alte 16Bit Proggs aufnem 64 ohne 16Bit Support zumlaufen zu haben brauchst du ja auch erstmal ein System das die 64 Übernimmt und dann so groszügig ist und die nen 16Bit Interface rüberreicht^^
Aber generell gesehen würde es das Leben eines Systemprogrammierers schon vereinfachen wenn er sich keinen Kopf mehr über den switch  RM PM PM64 mehr machen muss^^
Titel: Wie führt CPU Befehle aus?
Beitrag von: TeeJay am 24. November 2004, 11:20
Roshl ich glaube nicht das man deshalb weniger zu grübeln hat.

Eine GDT etc muss man ja so oder so erstellen. Und das ist ja der meiste Aufwand.

Das
mov eax, cr0
or eax, 1
mov cr0, eax

ist wohl das kleinste Prob :)

Von daher denke ich mal ist es vollkommen wurscht ob man extra switchen muss.

Der einzigste Vorteil wäre, das man die Unterstütung für 16 Bit aus dem Prozessor entfernen könnte um somit Platz für neue Sachen auf dem DIE zu haben.
Aber ich denke mal das der 16 Bit Krams eh kaum Transistoren verschlingt im Gegensatz zu dem neuen Zeugs :)
Titel: Wie führt CPU Befehle aus?
Beitrag von: Roshl am 24. November 2004, 11:33
Aber wenn gleich im Prozessor so quasi eine StandartGDT mit drin wäre hätte man erstmal eine funktionierende und verzweifelt nicht gleich bei den ersten umschaltversuchen weil  irgendwo ein Bit falsch ist^^
Ausserdem gehe ich davon aus das die GDT einträge dann auch nicht mehr so idiotisch zerstückelt sind von wegen ein Word Basis am anfang ein Byte mitten drin und so weiter, würde ja auch wegfallen da man die Abwärtskombatibilität eh nich mehr halten braucht. Von daher schon eine grosse Vereinfachung.
Ausserdem das Bios müsste ja dann gleich auf 64Bit ausgelegt sein, also auch alle Interrupts, dann kann man wenigstens zu Beginn diese noch länger nutzen, wegen Grafik etc^^ Ich würde schon sagen dass uns das einiges an (Denk-)Arbeit abnehmen könnte
Titel: Wie führt CPU Befehle aus?
Beitrag von: TeeJay am 24. November 2004, 16:20
Wo bleibt denn da noch der Spaß ? :)
Titel: Wie führt CPU Befehle aus?
Beitrag von: Roshl am 24. November 2004, 22:50
Versuch mal nen Bankswitch ohne Hilfe von Vesa hinzukriegen. Das is bei jeder Grafikkarte anders. Zuerst muss man also feststellen welche  Grafikkarte da ist, also über Vendor ID und über Product ID. Dann braucht man das richtige Programm das die richtigen Grafikregister anspricht;) Was glaubste was das für ein Spass ist^^ Ohne die Dokus zu den Registern von den Herstellern siehste da alt aus^^ oder man nimmt Triber von Linux oder so  auseinander^^
Aber wenn du ne Herrausforderung suchst haste damit eine;) Hab ne 118 Seitige Doku über die Vodoo Banshee (meine Karte), alles drin mit 2D und 3D Befehlsregister und allem anderen Blödsinn den kein Normaler  Programmierer jemals zu sehen bekommt^^ ich  lass es dir mal gern zu kommen*g*
Fazit: auch ohne den PM switch abwärtskomptibilitätsblödsinn gibts noch genug Arbeit für Systemprogrammierer