Notes pour les ingénieurs réseau - Logiciels et matériel informatique et gestion de projet

1. Comptez le nombre de puces mémoire

1. L'exemple suivant : notez que l'unité de calcul de la capacité de la mémoire est le Ko et que la capacité de la puce mémoire est le bit

La notion de débordement

1. Si l'ordinateur utilise des bits à double signe, lorsque deux nombres de même signe sont additionnés, lorsque les deux bits de signe sont à 1 après l'opération XOR logique, on peut juger que le résultat de l'addition de ces deux nombres a débordé.

2. Lorsque le bit de signe du résultat est 01, on parle de débordement

3. Lorsque le bit de signe du résultat est 10, on parle de sous-dépassement

3. Représentation du nombre de machines

1. Les données de l'ordinateur sont divisées en deux types de représentation : nombre à virgule fixe et nombre à virgule flottante

(1) La représentation des nombres à virgule flottante utilise des exposants et des mantisses pour représenter des nombres, appelés nombres à virgule flottante

(2) Dans le cas du même nombre total de chiffres, les nombres à virgule flottante peuvent représenter des nombres plus grands

(3) Les nombres représentés par des nombres à virgule fixe sont divisés en nombres entiers à virgule fixe et décimaux à virgule fixe

(4) Le nombre à virgule fixe signifie que la position de la virgule décimale de tous les nombres dans l'ordinateur est fixée par convention artificielle, de sorte que la virgule décimale n'a pas besoin d'occuper la position de stockage

4. Registre d'instructions IR

1. Le nombre de bits dans le registre d'instruction (IR) dépend de la longueur du mot d'instruction

2. Le registre d'instructions (IR) stocke une instruction en cours d'exécution à partir de la seule mémoire principale

3. Lorsque le registre d'instructions (IR) exécute une instruction, celle-ci est d'abord extraite de la mémoire vers le registre de données (DR), puis transférée vers l'IR

4. Les instructions sont divisées en champs d'opcode et de code d'adresse, qui sont composés de chiffres binaires, de sorte que le nombre de bits dans le registre d'instructions (IR) dépend de la longueur du mot d'instruction

5. Contrôleur

1. Le rôle du contrôleur : non seulement s'assurer de la bonne exécution des instructions, mais aussi être en mesure de gérer les événements anormaux

2. Le contrôleur central (CPU) est le noyau de fonctionnement et de contrôle d'un ordinateur, et sa fonction est d'interpréter les instructions de l'ordinateur et de traiter les données dans les logiciels informatiques.

3. Le contrôleur central (CPU) se compose d'opérateurs, de contrôleurs et de registres, ainsi que d'un bus qui réalise les données, le contrôle et l'état de la connexion entre eux

4. Opérateur : opérations arithmétiques complètes, opérations logiques et opérations de décalage

5. Contrôleur : réalisez l'envoi ordonné de signaux de contrôle dans le processus de lecture, d'enregistrement, de décodage et d'exécution similaire, principalement responsable du décodage des instructions et de l'émission du contrôle de chaque opération à effectuer pour terminer chaque signal d'instruction.

6. Registre : utilisé pour stocker temporairement des informations lors de l'adressage et du calcul

Six, mémoire virtuelle (mémoire virtuelle)

1. Mémoire virtuelle : Dans un système informatique à mémoire hiérarchique, les fonctions de chargement partiel et de remplacement partiel sont automatiquement réalisées, ce qui peut logiquement fournir aux utilisateurs une mémoire "adressable" adressable bien supérieure à la capacité de stockage physique de la mémoire principale. ".

2. La capacité de la zone de stockage virtuelle n'a rien à voir avec la taille de la mémoire principale physique, mais est limitée par la structure d'adresse de l'ordinateur et la capacité de disque disponible.

3. Selon l'algorithme de mappage de mémoire utilisé, il existe principalement trois types de méthodes de gestion de la mémoire virtuelle : le type de segment, le type de page et le type de page de segment.

4. La mémoire virtuelle commune (mémoire virtuelle) se compose de la mémoire principale - de la mémoire auxiliaire de la mémoire à deux niveaux plus du logiciel et du matériel auxiliaires

Sept, Cache (mémoire cache)

1. À propos du cache : nous savons tous que la vitesse de traitement des données par le processeur est très rapide. Bien que la vitesse de lecture et d'écriture de la mémoire ne soit pas lente, elle est trop lente par rapport au processeur, donc si nous laissons simplement le processeur lire et écrire la mémoire, la plupart du temps consommé est dans le traitement des données dans la mémoire, et à ce moment le CPU attend inactif, gaspillant des ressources, il est donc nécessaire de connecter un cache entre le CPU et la mémoire en tant que tampon.
2. Fonctionnalités de base : étant donné que le cache semble atténuer le traitement lent des données en mémoire, une fonctionnalité de base que le cache devrait avoir est qu'il peut lire et écrire des données rapidement, peut mieux correspondre à la vitesse du processeur et garder le processeur occupé comme Cependant, en raison de sa vitesse de traitement rapide, sa capacité est relativement faible. Si elle peut être à la fois grande en capacité et rapide en vitesse, il serait bon d'augmenter directement la vitesse de la mémoire pour correspondre à la vitesse du CPU, mais à cause du matériel En raison du prix, de la complexité technique et d'autres raisons, le cache est toujours très nécessaire.
3. Structure de base : l'unité de stockage de base de la banque de mémoire cache est un bloc, et chaque bloc a une adresse intra-bloc, et l'adresse de cache est représentée par un numéro de bloc et une adresse intra-bloc. En plus du bloc, il existe des balises. Les balises sont utilisées pour identifier les données recherchées à tort dans le cache à ce moment. S'il y a des balises, le cache est traité directement. Si les balises ne sont pas trouvées, les données sont transférées vers la mémoire principale. Il existe également plusieurs mécanismes dans le cache, le mécanisme de remplacement et le mécanisme de conversion de mappage d'adresse.

4. Pendant l'exécution du programme, le mappage d'adresses du cache (cache) et de la mémoire principale est automatiquement complété par le matériel

5. L'architecture de stockage est : Cache (mémoire cache) - mémoire principale - mémoire auxiliaire, trois niveaux, le rôle du mappage d'adresse est de convertir l'adresse de la mémoire principale envoyée par le CPU en l'adresse du Cache (mémoire cache)

6. Mappage d'adresses : Le bloc de mémoire principale est copié dans le cache (mémoire cache) selon certaines règles. L'image peut être divisée en :

(1) Image entièrement associative

(2) Image directe

(3) Image associative de groupe

7. Le cache (mémoire cache) a un algorithme de remplacement spécial.Le mappage du cache (mémoire cache) et de l'adresse de la mémoire principale est automatiquement complété par le matériel, et il stocke principalement une copie d'une partie des données de la mémoire principale.

Huit, mémoire associative

1. La mémoire associative est une mémoire adressable par le contenu.Le principe de fonctionnement consiste à utiliser des données et une partie des données comme clé, à comparer la clé avec chaque unité de la mémoire et à rechercher toutes les clés de la mémoire qui sont liées. à la clé même configuration

2. Composition : registre de comparaison, registre de masque, registre de sélection de mots, registre de résultats de recherche, etc.
Registre de comparaison CR : stocke le numéro à comparer (contenu récupéré).
Registre de masque MR : lors de la recherche selon le contenu partiel du numéro de comparaison, réglez en conséquence le bit à comparer dans MR sur « 1 » et réglez le bit à ne pas comparer sur « 0 ». Les champs définis sur "1" sont des champs clés.
Registre de résultat de recherche SRR : si le i-ième mot du résultat de la comparaison répond aux exigences, le i-ième bit est mis à "1", et les autres sont "0".
Registre de sélection de mots WSR : détermine quels mots participent à la récupération, et le bit correspondant est "1" s'il participe à la récupération.

9. Mémoire principale

1. La mémoire principale est appelée mémoire principale : utilisée pour stocker des instructions et des données, auxquelles le processeur accède directement de manière aléatoire.

2. Composition de la mémoire principale :

(1) Banque de mémoire

(2) Circuit de commande

(3) Registre d'adresses

(4) Registre de données

(5) Décodeur d'adresse

3. Système d'adressage : le système d'adressage est composé du registre d'adresse, du circuit de décodage d'adresse et du pilote. L'adresse déterminée par la CPU est d'abord envoyée au registre d'adresse, puis l'unité de stockage à laquelle accéder est trouvée en fonction du circuit de décodage La fonction du conducteur entre les décodeurs est de réduire la capacité de charge du lecteur de la ligne de décodage

10. Interruption

1. L'essence d'une interruption est une interface contrôlée en temps réel que le processeur ouvre au monde extérieur.

        Un système informatique ininterrompu est déterministe : connaissant tous les états des données du CPU et de la mémoire à un certain instant, il est possible d'en déduire tous les processus futurs. Un tel ordinateur ne peut pas interagir, juste un accélérateur. Lorsque des interruptions sont ajoutées, l'ordinateur spécifie quelles commandes externes sont compatibles et configure des routines de service susceptibles d'interrompre la tâche en cours. Cela rend le CPU "programme d'exécution" et "service qui peut se produire à tout moment", les deux forment une relation asynchrone, et l'introduction d'une entrée externe rend les programmes informatiques non plus déterministes. Les entrées d'interruption, contrôlées par des humains en temps réel, sont imprévisibles. En régularisant et en favorisant la réponse aux interruptions, les non-informaticiens peuvent contrôler les ordinateurs et être créatifs. Micro-manipulation de souris de jeu, peinture de carte numérique, synthèse d'entrée audio, ajustement de la valeur post-image, commentaire au clavier de la tendance mondiale, ce ne sont pas des processus figés, mais des événements qui nécessitent que les gens créent et participent en temps réel. Les interruptions sont l'interface d'entrée standard du processeur. Dans la mesure où les détails matériels ne sont pas si importants, cela dépend de la spécification de l'instruction. Vous pouvez directement tirer les broches externes vers l'unité CPU Retire ; vous pouvez également créer un contrôleur d'interruption pour coordonner la réception des signaux externes, puis les transmettre. Les deux sont disponibles sur x86.Ce dernier est envoyé du pont sud à l'API IO, puis à l'APIC principal, puis à l'unité Retire.Le CPU a également un certain degré de liberté et répondra au moment opportun.

2. Le vecteur d'interruption peut fournir l'adresse d'entrée de la routine de service d'interruption, et l'emplacement du vecteur d'interruption stocke une instruction de saut qui saute à l'adresse d'entrée de la routine de service d'interruption

3. Vecteur d'interruption : le code d'identification d'interruption généré par le matériel (la marque d'identification de la source d'interruption, qui peut être utilisée pour former l'adresse d'entrée de la routine de service d'interruption correspondante ou pour stocker la première adresse de la routine de service d'interruption)

11. DMA

1. Présentation de DMA : L'orthographe anglaise de DMA est "Direct Memory Access", ce qui signifie un accès direct à la mémoire en chinois. DMA peut faire référence non seulement à la technologie informatique d'accès mémoire, qui est l'accès direct aux données par la mémoire et les périphériques, mais également au module matériel qui implémente cette technologie (pour un ordinateur PC à usage général, la logique de contrôle DMA consiste en un CPU et une puce logique d'interface de contrôle DMA)., Le contrôleur DMA du système embarqué est intégré dans la puce du processeur, généralement appelé contrôleur DMA, DMAC).

2. Technologie d'accès mémoire DMA : l'avantage de l'utilisation de DMA est qu'elle ne nécessite pas l'intervention du processeur et dessert directement les périphériques, de sorte que le processeur peut gérer d'autres transactions, améliorant ainsi l'efficacité du système. Pour les appareils lents, comme UART, son rôle Il ne fait que réduire l'utilisation du processeur, mais pour les périphériques à grande vitesse, tels que les disques durs, il réduit non seulement l'utilisation du processeur, mais améliore également considérablement le débit des périphériques matériels. Car pour un tel appareil, la vitesse à laquelle le CPU fournit directement les données est trop lente. Étant donné que le CPU ne peut accéder au bus qu'une seule fois par cycle de bus, et pour ARM, il ne peut pas déplacer directement la valeur de l'adresse A dans la mémoire vers l'adresse B. Il ne peut que déplacer d'abord la valeur de l'adresse A vers un registre, puis passer de ce registre à l'adresse B. Autrement dit, pour ARM, il faut deux cycles de bus pour obtenir la valeur de l'adresse A à l'adresse B. Le DMA est différent. Le DMA dans le système général a la capacité de transmission en rafale. Dans ce mode, le DMA peut transmettre plusieurs ou même des dizaines d'octets de données à la fois, de sorte que l'utilisation du DMA peut rendre l'appareil La capacité de débit est Grandement amélioré.

3. Lors de l'utilisation de DMA, nous devons prêter attention aux faits suivants : DMA utilise des adresses physiques et les programmes utilisent des adresses virtuelles. Les adresses virtuelles doivent donc être converties en adresses physiques lors de la configuration de DMA.
Étant donné que le programme utilise des adresses virtuelles et utilise généralement des adresses de cache, le contenu du cache peut ne pas être cohérent avec le contenu de son adresse physique (mémoire). Par conséquent, le cache de l'adresse doit être actualisé avant de commencer le transfert DMA, cela est, écrit dans la mémoire.
Le système d'exploitation ne garantit pas que l'espace mémoire alloué à chaque fois est physiquement contigu. Surtout lorsque le système a été utilisé pendant un certain temps et qu'une mémoire relativement importante est allouée. Ainsi, à chaque fois que vous devez juger si l'adresse est continue, sinon, vous devez diviser cette mémoire en plusieurs segments pour laisser DMA terminer le transfert
4. La configuration de base de DMAC : DMA est utilisé directement par le contrôleur dédié sans intervention du CPU (contrôleur DMA) pour créer une application pour les transferts source et destination, libérant ainsi le CPU pour les transferts de données en masse. Le DMA dans les microcontrôleurs PIC32 peut être utilisé pour mapper différents périphériques dans l'espace mémoire, comme des zones de mémoire vers des dispositifs tels que SPI, UART ou I2C. Veuillez vous référer au manuel de référence de l'appareil pour les fonctionnalités DMA.Voici seulement une brève analyse de quelques principes et fonctions de base.

Registre d'adresse Stocke l'adresse de l'unité de stockage pendant le transfert DMA
Compteur d'octets Stocke le nombre d'octets transférés par DMA
Registre de contrôle Stocke le mode de transfert DMA défini par le CPU, les commandes de contrôle et d'autres
registres d'état stockent l'état actuel du DMAC, y compris si il y a une requête DMA et si elle est terminée Etc.
5. Puce de contrôle DMA indépendante
Dans le cours "Principes du micro-ordinateur", nous parlerons d'une puce de contrôle DMA indépendante 8237A sous X86. Les tâches de chaque canal de la puce de contrôle 8237A dans le PC :

CH0 : Contrôle de rafraîchissement utilisé comme mémoire dynamique
CH1 : Réservé aux utilisateurs
CH2 : Contrôle DMA pour le transfert de données sur disquette
CH3 : Contrôle DMA pour le transfert de données sur disque dur
6. DMA dans les dispositifs intégrés : le contrôleur d'accès direct à la mémoire (DMA) est un périphérique qui transfère des données au sein du système et peut être considéré comme un contrôleur capable de connecter une mémoire interne et externe à chaque périphérique compatible DMA via un ensemble de bus dédiés. C'est un périphérique car il effectue le transfert sous le contrôle programmé du processeur. Il convient de noter qu'en général, seuls les périphériques avec un trafic de données important (kBps ou supérieur) doivent prendre en charge la capacité DMA. Des exemples typiques de ces applications incluent les interfaces vidéo, audio et réseau.

7. Le contrôleur DMA comprendra un bus d'adresses, un bus de données et des registres de contrôle. Un contrôleur DMA efficace aura la capacité d'accéder à toutes les ressources dont il a besoin sans l'intervention du processeur lui-même, qui doit pouvoir générer des interruptions. Enfin, il doit pouvoir calculer l'adresse à l'intérieur du contrôleur.

8. Un processeur peut contenir plusieurs contrôleurs DMA. Chaque contrôleur possède plusieurs canaux DMA et plusieurs bus qui se connectent directement aux banques de mémoire et aux périphériques, comme illustré à la Figure 1. Deux types de contrôleurs DMA sont intégrés dans de nombreux processeurs hautes performances. Le premier type est souvent appelé "contrôleur DMA système" et peut implémenter l'accès à n'importe quelle ressource (périphériques et mémoire). Pour ce type de contrôleur, le nombre de cycles du signal est compté dans l'horloge système (SCLK). , Prenez le processeur Blackfin d'ADI à titre d'exemple, la fréquence peut atteindre jusqu'à 133MHz. La deuxième catégorie est appelée le contrôleur DMA de mémoire interne (IMDMA), qui est dédié aux opérations d'inter-accès entre les emplacements de mémoire interne. Étant donné que l'accès a lieu en interne (L1-L1, L1-L2 ou L2-L2), le nombre de cycles est compté en fonction de l'horloge centrale (CCLK), qui peut dépasser 600 MHz.

9. Chaque contrôleur DMA possède un ensemble de FIFO qui agissent comme des tampons entre le sous-système DMA et les périphériques ou la mémoire. Pour MemDMA (Memory DMA), il existe un ensemble de FIFO à la source et à la destination du transfert. Lorsque les ressources sont limitées et que la transmission des données ne peut pas être terminée, FIFO peut fournir une zone de stockage temporaire pour les données, améliorant ainsi les performances.

10. Étant donné que le contrôleur DMA est généralement configuré lors de l'initialisation du code, le cœur n'a besoin de répondre à l'interruption qu'une fois le transfert de données terminé. Vous pouvez programmer le contrôle DMA pour déplacer les données en parallèle avec le noyau, tout en laissant le noyau effectuer ses tâches de traitement de base - le travail doit se concentrer sur l'exécution.

11. Paramètres DMA : Il existe deux principaux types de structures de transfert DMA : le mode registre et le mode descripteur. Quel que soit le type de DMA, les types d'informations décrits dans le tableau 1 apparaîtront dans le contrôleur DMA. Lorsque le DMA fonctionne en mode registre, le contrôleur DMA utilise simplement les valeurs de paramètres stockées dans les registres. En mode descripteur, le contrôleur DMA recherche ses propres paramètres de configuration en mémoire.

12. DMA basé sur les registres : dans le DMA basé sur les registres, le processeur programme directement les registres de contrôle DMA pour initier les transferts. Le DMA basé sur les registres offre les meilleures performances de contrôleur DMA car les registres n'ont pas besoin de charger constamment les données des descripteurs en mémoire et le noyau n'a pas besoin de maintenir les descripteurs.

13. Le DMA basé sur registre se compose de deux sous-modes : le mode Autobuffer et le mode Stop. Dans le DMA tamponné automatique, lorsqu'un bloc de transfert est terminé, le registre de contrôle est automatiquement rechargé avec sa valeur de consigne d'origine, et le même processus DMA est redémarré sans surcharge.

14. En mode de fonctionnement DMA, un canal de données direct est établi entre la mémoire principale et les périphériques

12. Adressage par registre et adressage immédiat

Exemple:

Treize, héritage de classe

1. Grâce à l'héritage de classe, le code de la classe de base peut être réutilisé dans le programme

2. Un nouveau code peut être ajouté à la classe héritée

3. Dans la classe héritée, une méthode portant le même nom que la méthode de la classe héritée (classe de base) peut être définie

4. Les méthodes de la classe héritée (classe de base) peuvent être remplacées dans la classe héritée

14. Modèle de développement logiciel

1. Les avantages et les inconvénients du modèle de développement logiciel.
Avantages du modèle en cascade :
  1) Fournit des points de contrôle pour le projet par étapes.
  2) Une fois l'étape précédente terminée, vous n'avez qu'à vous concentrer sur l'étape suivante.
  3) Le modèle en cascade peut être appliqué dans un modèle itératif.
Inconvénients du modèle cascade :
1) Il y a très peu de feedback entre les différentes étapes du projet.
  2) Les résultats ne peuvent être vus que plus tard dans le cycle de vie du projet.
  3) Suivi des phases de projet individuelles avec une pléthore de dates de fin et d'étapes obligatoires.
Le champ d'application du modèle en cascade :
(1) Les besoins de l'utilisateur sont très clairs et complets, et il n'y a pas ou peu de changement dans le processus de développement ; (2) Le développeur connaît le domaine d'application du logiciel ;
(3 ) L'environnement d'utilisation de l'utilisateur est très stable ;
(4) Les exigences relatives à la participation de l'utilisateur au travail de développement sont très faibles.

Les avantages du modèle de prototypage rapide :
(1) Il permet d'obtenir une définition relativement bonne des exigences, et il est facile de s'adapter aux changements d'exigences ;
(2) Il est propice à la synchronisation du développement et de la formation ;
(3) Le le coût de développement est faible, le cycle de développement est court et il est plus convivial.
Inconvénients du modèle de prototypage rapide :
(1) Les clients et les développeurs ont une compréhension différente des prototypes ;
(2) Un prototypage précis est difficile ;
(3) Il n'est pas propice à l'innovation des développeurs.
Le champ d'utilisation du modèle de prototypage rapide :
(1) Ceux qui connaissent le domaine à développer et disposent d'outils de prototypage rapide ;
(2) Le modèle de prototype peut être utilisé comme modèle de développement logiciel lors d'un appel d'offres ;
(3) La migration de produits ou les modèles de prototypes sont idéaux lors de la mise à niveau ou de la personnalisation d'un prototype de produit existant.

Avantages du modèle incrémentiel :
(1) L'avantage d'utiliser le modèle incrémentiel est que l'affectation du personnel est flexible et qu'il n'est pas nécessaire d'investir beaucoup de ressources humaines au début ;
(2) Si le produit de base est très populaire , la main-d'œuvre peut être augmentée pour atteindre l'incrément suivant ;
(3) ) peut d'abord libérer certaines fonctions pour les clients, ce qui agit comme un sédatif pour les clients.
Inconvénients du modèle incrémental :
(1) Les composants de développement parallèles peuvent rencontrer le risque de ne pas pouvoir s'intégrer, et le logiciel doit avoir une architecture ouverte ;
(2) La flexibilité du modèle incrémental peut grandement améliorer sa capacité à s'adapter à de tels Il convient au modèle en cascade et au modèle de prototypage rapide, mais il est également facile de dégénérer en un modèle qui change en cours d'exécution, de sorte que le contrôle du processus logiciel perd son intégrité.
Le champ d'utilisation du modèle incrémental :
(1) Le modèle incrémental est très adapté à la mise à niveau de produits existants ou au développement de nouvelles versions ;
(2) Pour les produits avec des délais de réalisation stricts, le modèle incrémental peut être utilisé ;
(3) Pour tous les le domaine du développement est plus familier et il existe un système prototype, et le modèle incrémental est également très approprié.

Avantages du modèle en spirale :
(1) Flexibilité dans la conception, des modifications peuvent être apportées à différentes étapes du projet ;
(2) Les systèmes à grande échelle sont construits en petits segments, ce qui rend l'établissement des coûts simple et facile ;
(3) Les clients sont toujours impliqués Le développement de chaque étape garantit que le projet ne s'écarte pas de la bonne direction et de la contrôlabilité du projet ;
(4) Au fur et à mesure que le projet progresse, le client dispose toujours des dernières informations sur le projet, afin qu'il puisse interagir efficacement avec la direction.
Inconvénients du modèle en spirale :
(1) L'utilisation du modèle en spirale nécessite une expérience et une expertise considérables dans l'évaluation des risques. Dans le développement de projets à haut risque, si les risques ne peuvent pas être identifiés à temps, cela entraînera inévitablement de lourdes pertes ; ( 2) Trop Le nombre d'itérations augmente les coûts de développement et retarde les délais de validation.
Domaine d'utilisation du modèle en spirale : Le modèle en spirale ne convient que pour les projets logiciels à grande échelle.

15. Droits d'auteur

 16. Droits de brevet

Je suppose que tu aimes

Origine blog.csdn.net/mailtolaozhao/article/details/123823989
conseillé
Classement