Explication détaillée du texte du composant de l'interface de bus 8086 (BIU)

Unité d'interface bus BIU

Fonction:

Former l'adresse physique (adresse réelle) d'accès à la mémoire.Il existe également une adresse logique, qui se présente sous la forme d'une adresse de segment : adresse d'offset (l'adresse d'offset est aussi appelée adresse effective)

Accédez à la mémoire pour obtenir des instructions et stockez-les temporairement dans la file d'attente d'instructions pour l'exécution, accédez à la mémoire ou aux ports d'E/S pour lire les opérandes afin de participer aux opérations de l'UE.

composition:

①4 registres d'adresses de segment (CS, DS, ES, SS) stockent les adresses de segment

②IP du registre de pointeur d'instruction 16 bits : IP pointe toujours vers l'adresse de décalage de l'instruction suivante (pointant vers l'endroit où le programme est en cours d'exécution)

③Additionneur d'adresse 20 bits : terminez la conversion de l'adresse logique en adresse physique

④ Tampon de file d'attente d'instructions de 6 octets

⑤Logique de contrôle de bus

Registres d'adresses de segment (CS, DS, SS, ES)

segmentation de la mémoire

L'espace de stockage adressable du 8086 est de 1 Mo, et il y a des lignes d'adresse de 20 bits (combinaisons de 2 à la puissance 20), tandis que le registre interne est de 16 bits, qui ne peut adresser que 64 Ko

Il y a des lignes d'adresse de 20 bits, mais seulement une longueur de mot de 16 bits, mais 4 bits ne peuvent pas être gaspillés.

Adresse physique, adresse logique (la forme de l'adresse logique est l'adresse de segment : adresse de décalage). L'adresse physique est une adresse de segment de 20 bits et l'adresse de décalage sont toutes deux de 16 bits.

Autrement dit, l'adresse physique et la ligne d'adresse 20 bits sont unifiées

L'adresse logique peut être convertie en adresse physique.Afin d'utiliser 20 lignes d'adresse, nous avons segmenté le 8086

Laissez l'adresse de segment être dans les 16 bits supérieurs de la ligne d'adresse 20 bits et l'adresse de décalage dans les 16 bits inférieurs de la ligne d'adresse 20 bits, et additionnez-les pour obtenir l'adresse physique.

Dans l'espace de stockage 8086, l'espace de stockage de 16 octets est appelé une section, et chaque segment logique doit commencer à partir de la limite positive de la section, c'est-à-dire que les 4 bits inférieurs de la première adresse de la section sont '0 ', et les 16 bits supérieurs de la première adresse de la section sont appelés "" Adresse de base de segment ", stockés dans le registre de segment DS ou CS ou SS ou ES

Les segments peuvent être superposés (partiellement ou complètement superposés) et peuvent être utilisés comme segment de données et segment de pile

Chaque segment fait 64 Ko, s'il y a des segments qui se chevauchent, alors moins de 64 Ko.

Les segments peuvent être divisés en segment de code, segment de données, segment supplémentaire et segment de pile (ce qui est stocké) Registre de segment de code CS, registre de segment de données DS, registre de segment supplémentaire ES et registre de segment de pile SS.

Segment de code : stocke le code du programme. Lorsque le code du programme dépasse 64 Ko, il doit être divisé en plusieurs segments pour le stockage. CS stocke l'adresse de base du segment de programme en cours d'exécution.

Segment de données : utilisé pour stocker les données actuellement utilisées. Des segments supplémentaires peuvent être utilisés lorsqu'un deuxième segment de données est requis.

Segment de pile : C'est une zone de stockage en mémoire, utilisée pour stocker des données particulières, telles que les paramètres d'entrée lors de l'appel d'un sous-programme, l'adresse de retour, etc., ces données sont stockées selon la règle du "dernier entré, premier sorti". Parce que le segment de la pile n'a qu'une seule entrée et une seule sortie.

SS stocke l'adresse de base du segment de pile et SP stocke l'adresse de décalage du haut de la pile actuelle. La valeur de SP est automatiquement modifiée selon les règles lorsque l'instruction d'opération de pile est exécutée.

L'adresse de base du segment doit être stockée à l'avance dans les registres de segment correspondants : CS, DS, SS, ES (ES, SS ne sont pas couramment utilisés, CS est automatiquement chargé et n'implique en fait que DS).

Registre de segment : décalage/pointeur est une correspondance fixe, (rappelez-vous la correspondance fixe)

L'adresse de base du segment représente les 16 bits supérieurs de l'adresse de début d'un segment.

L'adresse de décalage est un décalage intra-segment : aucune quantité de décalage ne peut sortir du segment. L'adresse de décalage est également appelée adresse intra-segment.

Adresse de tête de segment = adresse de segment x16, si elle est hexadécimale, ajoutez simplement 0 juste derrière.

additionneur d'adresse

Fonction : termine la transformation de l'adresse logique en adresse physique (complétion automatique).

Adresse physique : l'adresse réelle de la mémoire d'accès, exprimée en binaire 20 bits.

Méthode : adresse physique = adresse de base du segment x16 (c'est-à-dire décalage binaire à gauche 4 bits) + adresse de décalage

L'adresse physique d'une unité de stockage est unique, mais son adresse logique correspondante n'est pas unique.

Registre de pointeur d'instruction IP-(16 bits)

Fonction : Il est utilisé pour stocker l'adresse d'offset de la prochaine instruction à exécuter dans le segment de code.Au cours de l'exécution du programme, BIU modifie automatiquement le contenu dans IP pour qu'il pointe toujours sur la prochaine instruction à exécuter.

Remarque : Le programme ne peut pas accéder directement à l'IP, mais le contenu de l'IP peut être modifié via certaines instructions.

Tampon de file d'attente de commandes - (6 octets)

BIU lit les instructions de la mémoire et les envoie à une file d'attente d'instructions de 6 octets (8086 correspond à 6 octets, 8088 correspond à 4 octets).

Logique de contrôle du bus : Connecter le bus interne du CPU au bus externe connecté aux broches du CPU est le seul moyen pour le CPU d'échanger des informations avec l'extérieur.

Gestion des composants d'interface bus et des composants d'exécution :

Travail collaboratif

Guess you like

Origin blog.csdn.net/m0_59069134/article/details/126798065