l'architecture est l'architecture GICv3 GICv2 version améliorée, ajoute beaucoup de choses. Le changement est la suivante:
-
Utilisation du niveau de propriété (affinité hiérarchies), pour l'identification du noyau, le support de noyau plus gic
-
L'indépendant de l'interface de la CPU, l'utilisateur peut être conçu dans le noyau
-
Augmenter l'assemblage redistributeur pour relier le distributeur et l'interface cpu
-
Une augmentation de LPI, l'utilisation des STI à résoudre
-
Pour registre d'interface cpu, inscrivez-vous mode d'accès à augmenter le système
Une structure gicv3
La figure est l'architecture gicv3.
Il comprend les éléments suivants:
-
distributeur: SPI gestion d'interruption, envoie une interruption au redistributeur
-
redistributeur: PPI, SGI, LPI gestion d'interruption, envoie une interruption à l'interface cpu
-
interface cpu: interruption d'émission sur le noyau
-
ITS: interrompu pour l'analyse syntaxique LPI
Dans lequel, l'interface de la CPU est mise en oeuvre dans le noyau, le distributeur, le redistributeur, ITS est réalisé à l'intérieur du CPG.
interface cpu gic et redistributeur communication par protocole AXI-Stream pour communiquer.
En second lieu, le niveau de la propriété
Gicv3 un grand changement est l'identification du noyau. Du noyau n'est pas utilisé pour représenter un numéro unique, mais plutôt d'identifier la hiérarchie d'attributs, et le noyau ARM, utilisé pour identifier le système registre MPIDR_EL1 même noyau.
Chaque noyau, selon les différents niveaux d'attributs, l'utilisation de différents numéros d'identification. Ci-dessous, il est d'une structure à quatre couches, puis un noyau, il peut être utilisé pour identifier le xxx.xxx.xxx.xxx.
Ces méthodes d'identification et l'utilisation des registres d'architecture MPIDR_EL1 ARMv8 pour identifier le même noyau.
Chaque noyau, connecté à une interface de processeur, et une interface cpu relie le gic de redistributeur. redistributeur identité de base et l'identité de la même.
En troisième lieu, le paquet d'interruption
gicv3, se diviseront en deux grands groupes, group0 et groupe1.
-
group0: disponible pour utiliser EL3
-
groupe1: divisé en 2 groupes, respectivement, pour garantir l'utilisation et de cesser d'interruption non-sécurisé
Comme indiqué ci-dessous:
Ce qui suit est une relation de correspondance IRQ, et les groupes FIQ.
Quatrièmement, interrompre le cycle de vie
Interrompre le cycle de vie, comme indiqué ci-dessous:
-
générer: Peripheral initier une pause
-
distribuer: distributeur pour recevoir des sources d'interruption de l'arbitrage, et ensuite envoyé à l'interface de la CPU correspondante
-
fournir: interface CPU envoie une interruption au noyau
-
Activer: noyau en lisant GICC_IAR registre d'interruption à approuver
-
baisse de priorité: registre GICC_EOIR base en écrivant à mettre en uvre la réinitialisation de priorité
-
désactivation: core GICC_DIR registre en écrivant à l'interruption non valide
Cette interruption du cycle de vie, et interrompre le cycle de vie du même gicv2.
Cinquièmement, interrompant le flux
Le chiffre processus d'interruption gic, l'interruption est divisée en deux catégories:
-
La première consiste à briser un distributeur, comme interruption SPI
-
On n'est pas interrompu par un distributeur, comme interruption LPI
Pour interrompre le flux à travers le distributeur d'interruption
-
Périphérique initié interruption au envoyés distributeur
-
Le distributeur d'interruption et distribué au redistributeur approprié
-
redistributeur d'information d'interruption envoyé à l'interface cpu.
-
interface CPU génère l'exception d'interruption approprié au processeur
-
Le processeur reçoit l'anomalie, et le logiciel de traitement d'interruption
LPI interrompt le processus d'interruption
-
Périphérique initié interruption aux envoyés ITS
-
ITS interruption d'analyse, a décidé d'envoyer un avenir redistributeur
-
ITS envoie une interruption au redistributeur approprié
-
redistributeur d'information d'interruption envoyé à l'interface cpu.
-
interface CPU génère l'exception d'interruption approprié au processeur
-
Le processeur reçoit l'anomalie, et le logiciel de traitement d'interruption
Sixième, la gestion des interruptions
la gestion des interruptions, le traitement dans le traitement déclenchée par le front et déclenché par niveau
1, un traitement de déclenchement de bord
Atteint l'interruption de bord externe, l'état d'interruption est mis à l'état en attente.
lit Software valeur de registre IAR indiquant le PE de reconnaissance d'interruption, l'état d'interruption est mis à l'état actif
Une fois le logiciel d'interruption de traitement est terminé, EOIR registre d'écriture, indique la remise à zéro de priorité. Après un certain temps, registre d'écriture DIR, l'état d'interruption est réglé sur l'état de repos.
2, le traitement déclenché par niveau
Haute interruption externe arrive, l'état d'interruption à un état d'attente.
lit logiciel registre IAR, PE représente la reconnaissance de l'interruption. Mais d'interruption encore élevé, l'état d'interruption dans l'état d'attente et actif.
Seven, inscrivez-vous
milieu gicv3, beaucoup plus de registres. En outre registre, fournit deux méthodes d'accès pour un accès mémoire mappée à un système d'accès au registre est la suivante:
registres de configuration de mémoire à accès:
-
GICC: registres d'interface cpu
-
GICD: registre de distribution
-
Gich: accès aux registres de commande d'interface virtuelle en mode hyperviseur
-
GICR: registre de redistributeur
-
GICV: registres d'interface virtuelle cpu
-
GITS: son registre
Le système enregistre les registres accessibles:
-
ICC: registres d'interface cpu Systèmes physiques
-
ICV: registre de système d'interface de processeur virtuel
-
ICH: registre de commande d'interface de processeur virtuel
La figure est gicv3, chaque emplacement de registre se trouve.
registre de système Gic pour le mode d'accès au registre est mis en oeuvre dans le noyau. Gic et le mode d'accès au registre mappés en mémoire, le gic en interne.
l'architecture gicv3, non obligatoire, le registre d'accès du système en mode registre, et non par l'accès mémoire mappée. Autrement dit, la CPI, ICV, registre du PCI, peut être mis en uvre également au sein gic, aller accessible via le mode mémoire mappée. Mais les implémentations générales, il n'y a pas de mise en uvre.
La figure suivante fait partie de la CPI de registre du système, et une relation de correspondance registre de mode mepped mémoire, verra plus de gicv3 spec.
Donc, la question est, gicv3. Pourquoi choisir l'interface cpu, détachée de gic, la réalisation du noyau interne? Pourquoi devrait cpu registres d'interface, les registres du système augmentent la méthode d'accès, mis en uvre dans le noyau de? Ce faisant, est-il bien?
Je pense que, gicv3 l'arrangement ci-dessus, le premier logiciel pour pouvoir écrire simple, universel, et le second est de permettre une réponse plus rapide aux interruptions.
tout ce que nous avons d'abord à comprendre, dans le registre gic, que certains registres, est souvent visité par le noyau, que certains registres ne sont pas accessibles fréquemment de base. Il ne fait aucun doute, les registres d'interface cpu, sera souvent accès de base, parce que les besoins de base pour accéder aux registres d'interface cpu pour reconnaître une interruption d'interruption terminée pour invalide d'interruption. Alors que l'autre registre, la configuration est interrompue, seul le noyau nécessaire pour configurer interrompue lorsque, avant qu'ils obtiennent une visite. Grâce à cette compréhension, puis après que je comprends est sur le point, est relativement facile.
Dans le gicv2, les registres d'interface du processeur sont mis en oeuvre au sein de gic, et donc une interruption est reçue lorsque le noyau, passera axi bus (en supposant que le bus mémoire est un bus de axi), l'interface de processeur pour accéder au registre. Interrompu dans un système de SGG, est souvent produit, ce qui signifie noyau vont fréquemment visiter registre gic, il bande passante AXI bus, ce qui affectera les interruptions globales à temps réel. Interface uc aux registres d'accès et le noyau retard de bus axi, est relativement grande.
En gicv3, l'interface cpu tirée de gic, mis en uvre au sein de base, pas mis en uvre dans le gic. L'accès à l'interface cpu de base, les registres du système accessibles par la voie, est d'utiliser msr, l'accès mrs, l'accès aux principaux registres d'interface cpu, il a accéléré, il consomme également la bande passante du bus AXI. Une telle base de la gestion des interruptions, il a accéléré.
Cpu interface entre le CPG et, par un AXI flux de bus dédié pour transférer des informations, donc il ne sera pas AXI bande passante du bus.
Contenu architecture gicv3, de plus en plus, mon côté serait divisé en plusieurs parties.
La partie suivante présentera le protocole de flux gic. Communication entre l'à savoir l'interface avec cpu gic.
Offres d'emploi