Autor Thema: Wie führt CPU Befehle aus?  (Gelesen 23171 mal)

Döner Schniefer

  • Beiträge: 32
    • Profil anzeigen
Gespeichert
« 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é

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #1 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.
\\o
o//
\o/

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 16. November 2004, 23:18 »
und er holt die werte, die er braucht mit einem BUS ausm speicher ab ;-)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

chr15

  • Beiträge: 279
    • Profil anzeigen
    • http://www.clinux.de.vu
Gespeichert
« Antwort #3 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

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #4 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
\\o
o//
\o/

Döner Schniefer

  • Beiträge: 32
    • Profil anzeigen
Gespeichert
« Antwort #5 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 ^^

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 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!
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Döner Schniefer

  • Beiträge: 32
    • Profil anzeigen
Gespeichert
« Antwort #7 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 ^^

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 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^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #9 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^^)

Döner Schniefer

  • Beiträge: 32
    • Profil anzeigen
Gespeichert
« Antwort #10 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 ^^

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #11 am: 23. November 2004, 16:19 »
\\o
o//
\o/

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #12 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.
----------------------
Redakteur bei LowLevel

Döner Schniefer

  • Beiträge: 32
    • Profil anzeigen
Gespeichert
« Antwort #13 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 :]

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #14 am: 23. November 2004, 22:26 »
es geht nicht darum altes abzuschaffen, sondern neues entstehen zu lassen. das ist alles.
\\o
o//
\o/

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #15 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.
----------------------
Redakteur bei LowLevel

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #16 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^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #17 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 :)
----------------------
Redakteur bei LowLevel

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #18 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
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #19 am: 24. November 2004, 16:20 »
Wo bleibt denn da noch der Spaß ? :)
----------------------
Redakteur bei LowLevel

 

Einloggen