Le programme doit être stocké dans la mémoire avant de pouvoir être consulté et exécuté par le CPU, et le contenu du registre d'instructions doit d'abord être transféré vers le bus d'adresses. Lorsque le PC exécute le programme, il doit d'abord être transféré. transfère le programme de la mémoire externe vers la RAM Lorsque le CPU est en marche, le programme est directement lu à partir du flash.
Lorsque le CPU exécute un programme, l'instruction doit exister dans la mémoire et le contenu du registre d'instructions doit être transféré à l'adresse le bus en premier.
La manière spécifique pour le processeur x86 et le microcontrôleur de lire le programme. Lors de l'exécution du programme, le PC transfère le programme de la mémoire externe (disque dur) vers RAM
pour l'exécuter, et le processeur. le lit à partir de la RAM Programme et données Le programme du microcontrôleur est solidifié dans la mémoire flash Lorsque le processeur est en cours d'exécution, le programme est lu directement à partir de la mémoire flash et les données sont lues à partir de la RAM. Analyse des raisons spécifiques de cette différence. . L'architecture CPU x86 est basée sur von Neumann Systematic, c'est-à-dire que les données et les programmes sont stockés ensemble, et les ressources RAM des PC sont assez abondantes, allant de dizaines de M à des centaines de M voire plusieurs G, ce qui peut objectivement résister. une grande quantité de données de programme.
La plupart des architectures de microcontrôleurs sont 哈弗体系
, c'est-à-dire que les programmes et les données sont stockés séparément, et les ressources RAM sur puce d'une seule puce sont assez limitées. Une RAM interne excessive augmentera considérablement le coût. De l'analyse ci-dessus, on peut savoir que le programme du microcontrôleur peut être stocké en flash sur la base de deux considérations, à savoir l'architecture et la quantité de ressources RAM.
Par conséquent, aujourd'hui, alors que la technologie a non seulement progressé mais que la capacité de RAM sur puce augmente, les ressources RAM ne sont plus le principal facteur limitant cette différence. Pour la structure du système, il suffit de changer la façon dont le système fonctionne. La CPU lit le programme.
La méthode spécifique de stockage des programmes du système embarqué dans la RAM "Pour de nombreux systèmes embarqués, beaucoup de leurs codes sont stockés en norflash et exécutés directement en flash. J'ai récemment appris que mon nouveau Un morceau de code dans le Le logiciel a été chargé dans la RAM afin d'améliorer la vitesse d'exécution. À ce moment-là, ils ont passé beaucoup de temps à résoudre ce problème. J'ai soigneusement étudié le script de lien et utilisé la chaîne d'outils croisés GNU Linux. L'allocation d'adresse est écrite dans un script ld. .
Ils l'implémentent comme ceci : 1. Écrivez le code que vous devez exécuter dans la RAM dans un fichier c séparé, puis définissez-le dans le script. L'adresse d'exécution est séparée de l'adresse de stockage. Définissez le nécessaire. variables d'indicateur pour le début et la fin du code.2. Copiez le code à l'adresse de stockage à l'adresse d'exécution dans le code La différence entre le système Von Neumann et le système Harvard La différence est de savoir si l'espace du programme et l'espace des données sont. intégré.
La plupart des premiers microprocesseurs utilisent 冯诺依曼结构
. Le représentant typique est le microprocesseur Intel X86. La récupération des instructions et la récupération des opérandes sont au même endroit. être récupéré en même temps, ce qui constitue un goulot d'étranglement dans le processus de transmission.
La technologie de bus Harvard est utilisée. L'espace de programme interne et l'espace de données de la puce utilisant l'architecture de bus Harvard sont utilisés. séparé, ce qui permet de récupérer des instructions et des opérandes en même temps, améliorant ainsi considérablement la puissance de calcul. Par exemple, le DSP de la série STM320LF240x est amélioré. La structure Harvard accède à plusieurs espaces de stockage via trois ensembles de bus parallèles.
Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubriqueformation php🎜> !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!