9
votes

Assemblage et CPUX Multicore

Quelles instructions X86-64 sont utilisées pour activer / désactiver d'autres cœurs / processeurs et comment commencer à exécuter le code sur eux?

Y a-t-il une documentation quelque part sur la manière dont cela se fait par le système d'exploitation?


5 commentaires

Dupe of Stackoverflow.com/questions/980999


Vous voudrez peut-être examiner comment Linux apporte plusieurs cœurs. lxr.linux.no/#linux+v2. 6.31 / Arch / X86 / Kernel / SMPBOOT.C


@ROM - pas une dupe. Cette question est sur les instructions atomiques. Celui-ci semble être sur l'interface matérielle impliquée dans des noyaux de bootstress, c'est-à-dire à propos d'un noyau.


Dupliqué possible de Qu'est-ce que "Multicore" Le langage d'assemblage ressemble?


Exemple minimal: Stackoverflow.com/a/33651438/895245


4 Réponses :


-1
votes

Il y a probablement une documentation d'Intel / AMD sur des registres spécifiques à un modèle que vous pouvez définir pour faire des choses spécifiques comme ça. Je ne sais pas si vous y avez accès à moins d'écrire quelque chose qui se trouve au niveau du noyau ...


0 commentaires

0
votes

Assez douloureux pour obtenir un x86 en haut et aller ... ce n'est pas tant dans les noyaux que dans le système APIC. Vous devez regarder dans les docs pour votre chipset, a tendance à être malheureusement caché malheureusement.

Vous devrez être au niveau du noyau, définitivement. En regardant Linux sons comme une bonne idée.


0 commentaires

2
votes

supposer que vous parlez de la mise en œuvre d'un noyau ....

Ma compréhension est qu'elle est largement basée sur ce document:

  • Spécification du multiprocesseur Intel

    Si la mémoire me sert à droite (pas de jeu de mots), de détecter le support multi-processeur, vous numérisez certaines gammes de mémoire pour un ensemble magique d'octets que le firmware configuré pour vous. De là, vous pouvez parcourir les structures décrivant les processeurs et vous pouvez parler au contrôleur APIC sur la mise en place d'interruptions sur divers processeurs, etc.


0 commentaires