Problèmes difficiles et solutions dans le processus d'apprentissage de l'unité -----(1)

Cet article porte sur les problèmes que j'estime devoir comprendre et mémoriser dans le processus d'apprentissage des principes de composition informatique . Il y a aussi quelques questions et réponses que j'ai générées au cours du processus d'apprentissage. Cet article peut avoir une mauvaise composition et une énergie limitée. Veuillez me pardonner

Chapitre un:

(1) Le nombre de bits dans MAR correspond au nombre d'unités de stockage, pourquoi ?

parce que:

La banque de mémoire est composée de plusieurs unités de stockage, et l'unité de stockage est composée de plusieurs éléments de stockage ("+1" est une unité de stockage de + lors de l'adressage d'adresse, tel que (+1 dans le compteur de programme pc)) et MAR est le registre d'adresse.

Si MAR est de 10 bits, il y a 2^{10}une unité de stockage

(2) Le nombre de bus d'adresses est lié au nombre d'unités de mémoire, qui est le même que le nombre de bits MAR

(3) Le bus de données a la même longueur que le mot de stockage, et le même nombre de bits que le MDR 

(4) MDR est un registre de données, qui stocke les données dans une unité de stockage, de sorte que le nombre de bits est le même que le nombre d'éléments de stockage (bits) dans l'unité de stockage

(5) Le nombre de bits dans le pc est lié à la capacité de la mémoire principale

Parce que la capacité de la mémoire principale = le nombre d'unités de stockage * la longueur du mot de stockage

(6) En stockage, k, m, g sont des puissances de 2

          En vitesse et en fréquence, c'est une puissance de 10 (et k (petit k) dans ce scénario)

Chapitre deux:

 (1) Le nombre de machines stockées dans la machine

Code d'origine entier :

Code d'origine décimal pur :

  

(2) Le code original de 0 a deux représentations (+0, -0)

(3) Lorsque la longueur du mot machine est de n bits, le plus petit entier négatif pouvant être représenté par un code complémentaire-2^{n-1}

parce que:

Dans la notation en complément à deux de n bits, le bit le plus significatif est le bit de signe, avec 0 pour les nombres positifs et 1 pour les nombres négatifs. Ainsi, en notation n bits, pour les entiers signés, le plus petit nombre négatif consiste à mettre le bit de signe à 1 et les autres bits à 0, soit 100...00100...00, soit-2^{n-1}

(Comprenez personnellement que la valeur maximale d'un nombre positif est 2^{n-1}-1, et que la plage d'un nombre négatif est supérieure de 1 à un nombre positif, donc le nombre minimum d'un nombre complexe est -2^{n-1}  et le complément est le même que le code d'origine de sa valeur absolue, car le complément 0 n'a qu'une seule représentation)

(4) Pourquoi le complément de -8 1000  

Le complément de -8 est 1000, car dans les ordinateurs, les nombres négatifs sont généralement représentés à l'aide du complément.

Tout d'abord, nous devons comprendre la définition du complément à deux. Le code complémentaire d'un entier positif est le même que son code binaire d'origine, et le code complémentaire d'un entier négatif consiste à inverser le code complémentaire de son entier positif correspondant et à ajouter 1.

Pour l'entier négatif -8, le code original binaire de sa valeur absolue est 1000, où le bit le plus élevé 1 représente le signe (0 représente un nombre positif, 1 représente un nombre négatif). Maintenant que le complément de -8 est requis, nous devons d'abord inverser le code binaire d'origine de sa valeur absolue 0111, puis ajouter 1 pour l'obtenir 1000, qui est le complément de -8.

Par conséquent, le complément de -8 est 1000.

 

 (5) Le décalage de trame est une opération sur la valeur vraie, l'ajout d'un décalage à la valeur vraie donne 2^{n}  la longueur du mot machine (n+1)

Opération de décalage :

Quatre drapeaux pour l'addition et la soustraction :

OF : Pourquoi la retenue du bit le plus élevé XOR la ​​retenue du deuxième bit le plus élevé indique-t-elle un débordement ?

Il n'y a que deux cas de débordement (valable uniquement pour les numéros signés)

(1) Nombre positif + nombre positif = nombre dont le bit de signe est 1

(2) Nombre négatif + nombre négatif = nombre dont le bit de signe est 0

Cas (1) : Lorsqu'un nombre positif est ajouté à un nombre positif, le bit le plus élevé des deux nombres est 0 et le bit le plus élevé est 0. Si le deuxième bit le plus élevé est 1, le résultat est 1 (nombre négatif) et un débordement se produit. À ce moment, le résultat XOR est 1.

Cas (2) : lors de l'addition de deux nombres négatifs, le bit le plus élevé des deux nombres est 1 et la retenue du bit le plus élevé doit être 1. Si la retenue du deuxième bit le plus élevé est 0, le résultat final est 0 (nombre positif), un débordement se produit et le résultat XOR est 1]

SF : Jugement du signe du nombre signé, sans signification pour le nombre non signé

SF : 0 nombre positif

SF : 1 Négatif

ZF : Indique si le résultat est 0

ZF : 1 résultats sur 0    

ZF : 0 résultat n'est pas 0

CF : Indique si un report ou un emprunt se produit lors de l'addition et de la soustraction de nombres non signés (l'addition est un report, la soustraction est un emprunt) .

CF=carry généré par le bit le plus élevé XOR sub (contrôleur d'addition et de soustraction)  

CF : 1 signifie transporter ou emprunter

CF : 0 signifie qu'aucun portage ou emprunt n'a lieu

Le traitement du dernier reste de la méthode alternative d'addition et de soustraction de code d'origine :

En commençant à apprendre le code original, j'ai appris la méthode d'addition et de soustraction, et j'ai finalement eu des doutes.

C'est ce qui se passe avec le reste final. Qu'est-ce que son symbole a exactement à voir avec cela ?

Plus tard, il a été constaté que l'addition et la soustraction du code d'origine étaient traitées séparément par le bit de valeur et le bit de signe, puis dans le processus de calcul numérique, le bit de signe du quotient et le reste doivent être 0, et enfin déterminer le signe du quotient et le reste en fonction des signes du diviseur et du dividende. (Si le reste final est négatif, le quotient doit être 0 et le complément de [|y|] n'est pas nécessaire pour le dernier décalage (pourquoi dit-on que le dernier chiffre de i n'a pas besoin d'être décalé ? Parce que l'idée de la méthode de ne pas restaurer le reste est d'effectuer directement l'opération suivante avec 2*a+b, et le résultat final n'a pas besoin d'être décalé)

Dans le résultat final, le reste a le même signe que le dividende

valeur à n chiffres, il est possible d'ajouter ou de soustraire n+1 fois ou n+2 fois et de décaler n fois   

Résumé de la méthode alternative d'addition et de soustraction du complément :

La méthode alternative d'addition et de soustraction du code complémentaire est exploitée avec un bit signé, et le quotient final et le reste sont également un code complémentaire

L'exécution de l'addition ou de la soustraction est jugée selon les signes du diviseur et du dividende :
le même signe effectue l'opération de soustraction, et le signe différent effectue l'opération d'addition

Déterminer si le quotient est 1 ou 0 par les signes du reste et du diviseur :

Même signe : quotient 1, décalage vers la gauche pour soustraire le diviseur

Signe différent : quotient 0, décalage à gauche plus diviseur

La fin du quotient doit être le quotient 1 sans correction

Comparaison de la méthode d'addition et de soustraction de code d'origine et de la méthode d'addition et de soustraction de code complémentaire :

Introduire un bit de double signe pour juger si la valeur déborde

01 : indique un dépassement positif : lorsque deux nombres positifs sont ajoutés, le résultat dépasse la plage positive maximale

10 : Indique un dépassement négatif : lorsque deux nombres négatifs sont ajoutés, le résultat dépasse la plage négative minimale

Représentation et calcul des nombres à virgule flottante :

 Normalisation des nombres à virgule flottante :

Normalisation à gauche : lorsque le bit de valeur la plus élevée de la mantisse n'est pas un bit valide, la règle de gauche est utilisée pour éliminer 0 (le code de commande correspondant est soustrait de un), et la règle de gauche peut être exécutée plusieurs fois

Normalisation à droite : Lorsque le chiffre effectif de la mantisse entre avant le point décimal, la mantisse est normalisée à droite (décalée d'un bit vers la droite), une seule fois

Dans le processus de normalisation, la norme IEEE754 est couramment utilisée.

Le décalage de trame est utilisé dans la norme IEEE 754. Avez-vous des questions sur la valeur de décalage dans le décalage de trame ?

La valeur de décalage définit la position du point zéro positif dans le décalage de cadre. La valeur de décalage est un nombre entier fixe utilisé pour représenter le point zéro dans le décalage de cadre. La valeur de décalage couramment utilisée est2^{n-1}-1

Par exemple :
dans une représentation par décalage de trame d'un octet (5 bits), la valeur de décalage est de 127. Cela signifie qu'un décalage de cadre représentant une valeur de 0 serait 01111111 (c'est-à-dire 2 ^ 7 - 1), tandis qu'un décalage de cadre représentant un entier positif irait de 10000000 à 11111111, et un entier négatif irait de 00000000 à 01111111. 

Longueur du mot machine : le nombre de bits de données binaires pouvant être traités par le CPU pour une opération entière (généralement directement liée à l'ALU)

Longueur du mot de stockage : le nombre de bits de code binaire dans une unité de stockage (généralement le même que le nombre de bits MDR)

Autrement dit, le nombre de bits dans la longueur du mot de stockage représente les limites supérieure et inférieure des données qu'une unité de stockage peut représenter.

10000---

La différence entre M et MB

1 million de mots représentent 1 000 000 mots

1mb signifie 2 à la puissance 20 de B

Système de stockage:

Problème de taux d'accès au cache :

Les données dans le cache (mémoire cache) sont un sous-ensemble de la mémoire principale. Lorsque le processeur accède à la mémoire, il accède d'abord au cache. Si le cache ne trouve pas les données requises, il ira dans la mémoire principale pour les trouver. Par conséquent, le taux de réussite du cache est introduit pour décrire la proportion d'accès effectués dans le cache. Nous espérons que toutes les données pourront être trouvées directement dans le cache, donc plus le taux de réussite est proche de 1, mieux c'est.

 Nc : Le nombre d'accès au cache pendant le processus d'accès
 Nm : Le nombre d'accès à la mémoire principale effectués pendant le processus d'accès

 h : Indique le taux de réussite

 ta : indique le temps d'accès moyen

 tc : Indique le temps passé sur le coup

 tm : Indique le temps passé en accès à la mémoire principale

Calculez le nombre de lignes d'adresse et de lignes de données :

Capacité de stockage : la capacité de stockage est le nombre total de bits pouvant stocker des codes binaires  dans la mémoire principale , c'est-à-dire, capacité de stockage = nombre d'unités de stockage × longueur de mot de stockage (le nombre de bits dans chaque unité de stockage) , et peut également être exprimée par le nombre total d'octets : capacité de stockage = nombre d'unités de stockage * longueur de mot de stockage/8

Ligne d'adresse :  le nombre d'unités de stockage = 2^ le nombre de lignes d'adresse ( la ligne d'adresse est utilisée pour transmettre les informations d'adresse

Ligne de données :  La ligne de données détermine la longueur du mot de stockage, le nombre de lignes de données = le nombre de chiffres dans la longueur du mot. ( équivalent au nombre maximum de bits pouvant être transférés dans un calcul (le nombre de bits dans un ordinateur) )

par exemple:

La longueur de mot d'un ordinateur est de 32 bits et sa capacité de stockage est de 16 M × 32 bits. Quelle est la somme de ses lignes d'adresse et de ses lignes de données ?

Convertissez d'abord l'unité en octet

16m=16*1 024 (2 puissance 10)=16777216 (B)

32 bits = 4 octets

Capacité de données=16777216*4=67108864 (64M B=2 à la puissance 26)

Donc : 32 lignes de données et 26 lignes d'adresse (car cela équivaut à nécessiter 26 bits pour se connecter à une ligne d'adresse)

Un processus de rafraîchissement complet de la DRAM prend plusieurs cycles de stockage

Un processus de rafraîchissement complet de la DRAM prend généralement un cycle de mémoire. Plus précisément, la DRAM doit effectuer un cycle de rafraîchissement entre ses cellules de mémoire et vérifier l'état de charge de chaque cellule de mémoire pour s'assurer qu'elles ne fuient pas d'électricité. Ce cycle de rafraîchissement est généralement mesuré en millisecondes, mais il est généralement divisé en plusieurs petites opérations, chacune nécessitant un cycle de stockage pour se terminer. Par conséquent, on peut dire qu'un processus de rafraîchissement complet de la DRAM doit occuper un cycle de stockage.
Dans l'examen 408, la méthode d'adressage croisé est la croix basse

 

L'adresse d'une instruction informatique n'est pas une adresse physique (adresse mémoire) mais une adresse logique (adresse mémoire externe).Lorsque l'instruction est exécutée, l'adresse logique dans l'instruction est convertie en l'adresse physique de la mémoire principale par le matériel.

Système de commande :

   

Branche conditionnelle d'assemblage :

Pourquoi les données stockées dans le registre temporaire seront-elles détruites si elles sont stockées dans le registre général ?

Les données stockées dans le registre de travail sont destinées au stockage temporaire pour les opérations ultérieures. Un registre à usage général est un périphérique de stockage dans la CPU qui stocke les données qui doivent être utilisées ou modifiées pendant l'exécution de l'instruction. En raison de l'espace limité des registres à usage général, plusieurs données ne peuvent pas être stockées en même temps, de sorte que les données des registres doivent être effacées entre différentes opérations. Si une modification est effectuée directement sur des données stockées dans un registre à usage général sans sauvegarder les données d'origine, les données d'origine seront détruites.

De plus, les objectifs de conception des registres de travail et des registres généraux sont également différents. Les registres de travail sont généralement utilisés pour mettre en mémoire tampon les données d'entrée/sortie, aider le processeur à traiter les données, etc. Leur capacité est supérieure à celle des registres à usage général, mais leur vitesse est plus lente. Le registre à usage général est spécialement utilisé pour le stockage de données lorsque le CPU exécute des instructions, et sa capacité est généralement inférieure à celle du registre scratch, mais sa vitesse est plus rapide. Par conséquent, afin de garantir l'exactitude et l'efficacité des instructions du processeur, les registres de travail et les registres à usage général jouent des rôles différents et jouent des rôles dans différents scénarios.

Le cycle de la machine est généralement déterminé par le cycle d'accès

La longueur du mot d'instruction est généralement un multiple entier de la longueur du mot de stockage

Je suppose que tu aimes

Origine blog.csdn.net/m0_61469860/article/details/130229660
conseillé
Classement