Hallo an euch
habe mal eine Frage,
wenn ein neuer Prozessor nicht alle Funktionen seines Vorgängers hat, welche Problemen kann es dann geben wenn alte Programme auf dem neuen laufen sollen?
Hallo an euch
habe mal eine Frage,
wenn ein neuer Prozessor nicht alle Funktionen seines Vorgängers hat, welche Problemen kann es dann geben wenn alte Programme auf dem neuen laufen sollen?
Im Allgemeinen werden Computerprogramme so in Maschinencode übersetzt, daß sie auf allen Prozessoren eine Familie auf- und abwärtskompatibel laufen, der Hersteller kann ja nicht vorher wissen, welcher Prozessor zum Einsatz kommt. Ein Programm, daß explizit nur unter Win XP läuft, hat so z. B. kein Problem mit allen Pentium, Celeron, Athlon, Duron, sofern XP auf dem Rechner zum laufen zu bekommen ist.
Ein Programm für x86 Prozessorarchitektur kann aber nicht direkt auf einer anderen Prozessorfamilie (Motorola, Sparc oder ähnlichem) eingesetzt werden. Der Maschinencode sieht da völlig anders aus.
Übersetzt man selbst Programme, kann man dann natürlich den Compiler (Übersetzer) mit Optionsschaltern auf den eigenen Prozessor optimieren und Funktionen nutzen, die für eine "Allgemeinkompatibilität" eher mal abgeschaltet sind.
Nochmals Danke,Du hast mir sehr geholfen.
Erst einmal danke für die Antwort.
Und was ist mit "volle abwärtskompatiblität", wenn der neue Prozessor nicht "voll abwärtskompatibel" zum Vorgänger ist und die alten Programme auf ihm laufen sollen?
Kann es dann Probleme geben? (welche)
Das ist ja das schöne an der x86 Familie - neue Prozessoren sind immer voll abwärtskompatibel, weil die Befehlssätze immer erweitert wurden. ein Programm, das speziell für einen 486 Prozessor compiliert wurde, läuft auch auf einem P4. Ein Programm, das speziell für den P4 compiliert wurde, enthält Programmcode, den ein 486 nicht kennen kann, Das wird bei Kaufprogrammen aber nicht so gemacht, sondern so compiliert bzw. organisiert, daß das Programm auch auf einem 486 lauffähig wäre. Von ganz alten Zeiten mußte man aufpassen, wenn das Programm auf einem 386 laufen sollte, mußte die Compileroption "Mathematischer Coprozessor emulieren" eingeschaltet sein, weil der von Hause aus keinen eingebaut hatte. Es war ein extra Zweitprozessor erforderlich, ab 486 war das Teil integriert. Wenn das vergessen wurde, brach das Programm mit einer Fehlermeldung ab.
Aus meiner Sicht dürfte es bei kommerziellen Programmen keine Probleme geben.
Tja, das mag schon stimmen, nur haben einige
'veraltete' Programme manchmal ein Problem
damit, wenn der Prozzi auf einmal einfach
viiiiieeeeell zu schnell wird....
-> http://www.heise.de/ct/faq/hotline/99/24/03.shtml
;-))
MfG
DarkForce
Ja, aber das hatte ich nur bei DOS-Spielen. Da waren die gefräßigen Monster im ersten Level so schnell, daß man vor dem ersten Tastendruck schon verspeist war. Wenn ich mich recht erinnere, gab es aber ein Tool, mit dem man das System bremsen konnte, damit es wieder spielbar wurde.
Ich entsinne mich an das Game 'Comanche' [ Helicopter-Simulation ] aus 386er-Zeiten, da war der 'Pentium 200 MMX' noch viel zu flott für die gebotene Pixelbrühe, da ist man schon gegen einen Berg gecrashed bevor man die Hügel überhaupt gesehen hat... Das Tool zum Ausbremsen der flotten Maschine nannte sich AT-Slow und sollte noch im Internet verfügbar sein.
BTW, das Problem mit 'Prozzi zu schnell für die Anwendung' gab es nicht nur bei DOS-Spielen, siehe hier :
http://www.heise.de/ct/faq/hotline/97/16/hotline9716_10.shtml
MfG
DarkForce
Mit dieser x86-Kompatibilität holt man sich jedoch auch steinalte Technik mit ins Haus... Ebenso die Mainboards: die wesentlichen Komponenten haben sich in den letzten 20 Jahren nicht entscheidet geändert (oder warum muß es eine 16-IRQ-Grenze geben??).
x86 bedeutet schließlich nichts weiter, als dass die CPU so tut, als wäre sie ein 8086 oder etwas ähnliches...