Autor Thema: SMP testen  (Gelesen 4482 mal)

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« am: 25. December 2005, 19:46 »
Hm, ich wollte mal SMP in meinen Kernel einbauen, habe aber selber keinen Prozessor, der es unterstützt. Gibt es einen Emulator, der mehrere Prozessoren simuliert? Kann ich mit Bochs einen Dualcore Prozessor simulieren?

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 25. December 2005, 20:03 »
Ja, mit Bochs geht das. Ich glaube dazu muss man nur ein anderes Biosimage laden, das kann man in den Optionen umstellen. Wie die Images heißen weiß ich nicht, einfach in dem Ordner von Bochs gucken was da so für Dateien herumliegen.
db 0x55AA

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #2 am: 25. December 2005, 20:23 »
Und ich hab immerhin eine CPU mit 2 Kernen. ;)
*post*

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 26. December 2005, 12:26 »
Zitat von: Osbios
Ja, mit Bochs geht das. Ich glaube dazu muss man nur ein anderes Biosimage laden, das kann man in den Optionen umstellen. Wie die Images heißen weiß ich nicht, einfach in dem Ordner von Bochs gucken was da so für Dateien herumliegen.



Du musst bochs neu kompilieren mit --enable-processors=bla :!: 0 < bla < 16.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 26. December 2005, 12:47 »
Hm, kann ich irgentwie herausfinden, mit welchen Optionen meine Bochs Version configured wurde?

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 26. December 2005, 15:50 »
hi,
bei meinem bochs waren gleich mehrere roms für 2er,4er und 8er CPU Systeme dabei, aber ka inwiefern das alles funzt.

Muss man bei Multi-CPU bzw Dual-Core Systemen nicht irgendwie mit APIC (Advanced PIC) ran ? ich glaub mal gehört zu haben, dass die CPU (Cores) damit miteinander kommunizieren.

mfg,
stefan

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #6 am: 26. December 2005, 17:05 »
Zitat von: stefan2005
bei meinem bochs waren gleich mehrere roms für 2er,4er und 8er CPU Systeme dabei, aber ka inwiefern das alles funzt.


Jo, die sind dabei, aber du musst imho bochs mit support für mehr als einen Prozessor kompilieren. Die BIOS images sind imho nur dafür da das zB die multiprocessor table (oder wie auch immer des heißt) erstellt wird.

Zitat von: stefan2005
Muss man bei Multi-CPU bzw Dual-Core Systemen nicht irgendwie mit APIC (Advanced PIC) ran ? ich glaub mal gehört zu haben, dass die CPU (Cores) damit miteinander kommunizieren.

die APIC ist nicht nur zur Kommunikation zischen den CPU's notwendig, sondern ist eine Erweiterung des normalen PIC und unterstützt deshalb mehr IRQ's. Ist aber imho erst ab Pentium vorhanden. Man muss halt bevor man die APIC benutzten will, via cpuid prüfen ob eine für die CPU existiert.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #7 am: 26. December 2005, 17:10 »
Zitat von: SSJ7Gohan
Hm, kann ich irgentwie herausfinden, mit welchen Optionen meine Bochs Version configured wurde?

über die bochs command line imho nicht. Einfach mal neu kompilieren. Is ja net so schwer und dauert auch net lang.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 26. December 2005, 19:56 »
SMP funktioniert in etwa so, das man im BIOS Datenbereich nach einer Struktur sucht, welche Informationen über die Prozessoren, APICs usw. enthällt, dann diese Prozessoren bootet, in den PM schaltet und dann halt mit den APICs zwischen ihnen kommunizieren kann. Wobei es verschiedene APICs gibt, den Local APIC für die Prozessorkommunikation, und den IO APIC für IO Sachen.

Ich glaube, SMP ist schon ab dem 486er möglich.

 

Einloggen