Unterscheidet sich das Betriebssystem je nach ISA oder Mikroarchitektur?

411
Darshan L

Wenn ein Betriebssystem entwickelt wird, z. B. "Linux", wird dies für die verschiedenen Mikroarchitekturen (Intel Pentium und AMD Athlon) etwas anders geschrieben (profiliert), wenn dies erforderlich ist?

Ich sehe in einem Stack-Exchange-Thread, dass Linux-Binärdateien für AMDs x64 auf der Intel x64-Architektur ausgeführt werden können. Geben Sie hier auch die Linkbeschreibung ein

dh sollte es nicht unterschiedlichen Linux-Quellcode für Intel Pentium und AMD Athlon geben, obwohl sie dieselbe ISA (x86) verwenden? Die Implementierung von ISA wäre anders, wenn unterschiedliche Steuer- und Datenregister verwendet werden.

0
Soweit ich weiß, sind Registerdefinitionen Teil der ISA. Warum glauben Sie, dass sie für Intel x86 und AMD x86 anders wären? grawity vor 5 Jahren 1
Oh ist es! Ich habe zwar unterschiedliche Implementierungen derselben ISA, muss sie jedoch mit einer anderen Anordnung von Registern implementieren. Darshan L vor 5 Jahren 0

1 Antwort auf die Frage

0
Darshan L

Ich konnte nicht zum Kern des Konzepts gelangen, sammelte jedoch ausreichend Informationen, um mich davon zu überzeugen, dass sich Betriebssysteme auf ISA-Basis unterscheiden (z. B. x86 und x64) und nicht auf Mikroarchitektur (Intel Pentium und AMD Athlon).

Eine einfache Analogie ist -

ISA ist wie C-Sprache ; "ein Standard", um etwas zu tun.

in der Erwägung, dass Mikroarchitektur wie ein C-Compiler ist ; "eine Implementierung" zur Durchsetzung dieser Regeln oder Standards.

Auszug aus dem Wiki - Mikroarchitektur

Eine gegebene ISA kann mit verschiedenen Mikroarchitekturen implementiert werden; Implementierungen können aufgrund unterschiedlicher Ziele eines bestimmten Designs oder aufgrund von technologischen Veränderungen variieren.

Die ISA entspricht in etwa dem Programmiermodell eines Prozessors, wie es von einem Assembler-Programmierer oder Compiler-Schreiber gesehen wird. Die ISA umfasst unter anderem das Ausführungsmodell, Prozessorregister, Adressen- und Datenformate. Die Mikroarchitektur umfasst die Bestandteile des Prozessors und wie diese miteinander verbunden sind, um die ISA zu implementieren.

Maschinen mit unterschiedlichen Mikroarchitekturen haben möglicherweise dieselbe Befehlssatzarchitektur und können daher dieselben Programme ausführen. Neue Mikroarchitekturen und / oder Schaltungslösungen sowie Fortschritte in der Halbleiterfertigung ermöglichen es neueren Generationen von Prozessoren, bei Verwendung derselben ISA eine höhere Leistung zu erzielen.

Die Faktoren, die verschiedene Mikroarchitekturen unterscheiden, aber immer noch dieselbe ISA implementieren, sind

Ausführungseinheiten sind auch für die Mikroarchitektur unerlässlich. Ausführungseinheiten umfassen arithmetische Logikeinheiten (ALU), Gleitkommaeinheiten (FPU), Lade- / Speichereinheiten, Verzweigungsvorhersage und SIMD. Diese Einheiten führen die Operationen oder Berechnungen des Prozessors aus. Die Wahl der Anzahl der Ausführungseinheiten, ihrer Latenz und ihres Durchsatzes ist eine zentrale Aufgabe der Mikroarchitektur. Größe, Latenz, Durchsatz und Konnektivität der Speicher im System sind auch mikroarchitektonische Entscheidungen.

Designentscheidungen auf Systemebene, z. B. ob Peripheriegeräte wie Speichercontroller einbezogen werden sollen, können als Teil des mikroarchitektonischen Designprozesses betrachtet werden. Dies beinhaltet Entscheidungen über das Leistungsniveau und die Konnektivität dieser Peripheriegeräte.