Boot et Premier Programme en Mode Noyau
24 Questions
3 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

À quelle adresse commence le MIPS lors du démarrage ?

  • 0xD0200010
  • 0x00000000
  • 0xD0200000
  • 0xBFC00000 (correct)
  • Quel composant permet de sortir des caractères sur un écran dans almo1 ?

  • Contrôleur de disque
  • TTY (correct)
  • Contrôleur vidéo
  • Port USB
  • Quel registre faut-il écrire pour envoyer un caractère sur l'écran du terminal ?

  • TTY_READ
  • TTY_CONTROL
  • TTY_STATUS
  • TTY_WRITE (correct)
  • Si TTY0 commence à l'adresse 0xD0200000, quelle est l'adresse de TTY_READ pour TTY1 ?

    <p>0xD0200018 (A)</p> Signup and view all the answers

    Que contient le registre TTY_STATUS lorsque des caractères sont en attente d'être lus ?

    <p>1 (A)</p> Signup and view all the answers

    Quelles instructions le MIPS utilise-t-il pour accéder aux registres de périphériques ?

    <p>load/store uniquement (A)</p> Signup and view all the answers

    Quelles autres fonctionnalités un SoC pourrait-il avoir en plus du composant TTY ?

    <p>Contrôleur vidéo (D)</p> Signup and view all the answers

    Pourquoi les flèches bleues sur le schéma ne vont-elles que dans une seule direction ?

    <p>Sens des requêtes d'accès à la mémoire (D)</p> Signup and view all the answers

    Quels composants émettent des requêtes lors de l'exécution des instructions comme lw et sw ?

    <p>Le MIPS uniquement (D)</p> Signup and view all the answers

    Pourquoi le code de démarrage ne peut-il pas être écrit en C ?

    <p>Parce que le contenu des registres n'est pas significatif au démarrage (D)</p> Signup and view all the answers

    Quelle est l'adresse du registre TTY_WRITE pour le terminal 0 ?

    <p>0xD0200000 (D)</p> Signup and view all the answers

    Quelle opération est interdite à l'adresse du registre TTY_WRITE ?

    <p>Lire des données (D)</p> Signup and view all the answers

    Quel est le rôle du fichier kernel.ld dans un programme exécutable ?

    <p>Il décrit l'espace d'adressage et remplit les sections (D)</p> Signup and view all the answers

    Pourquoi le MIPS propose-t-il des requêtes plutôt que de représenter les données ?

    <p>Pour simplifier les schémas (A)</p> Signup and view all the answers

    Quel type d'instructions font émettre des requêtes par le MIPS ?

    <p>Les instructions de mémoire comme lw et sw (B)</p> Signup and view all the answers

    Quelle est la principale raison pour laquelle le code assembleur est utilisé ?

    <p>Lorsque cela est absolument nécessaire (A)</p> Signup and view all the answers

    Quelle est la principale différence entre la RAM et la ROM dans le prototype almo1?

    <p>La ROM contient le code de démarrage, la RAM contient le code et les données. (B)</p> Signup and view all the answers

    Quelle taille a l'espace d'adressage du MIPS?

    <p>32 bits. (B)</p> Signup and view all the answers

    Quelles instructions sont utilisées pour accéder à l'espace d'adressage dans le MIPS?

    <p>lw, lh, lb, sw, sh. (B)</p> Signup and view all the answers

    Quel aspect de l'espace d'adressage est vrai dans le contexte des mémoires?

    <p>Les mémoires sont mappées dans l'espace d'adressage. (B)</p> Signup and view all the answers

    Où se trouve le code de démarrage dans le prototype almo1?

    <p>Dans la mémoire ROM. (B)</p> Signup and view all the answers

    Pourquoi le code de boot est-il placé à une adresse spécifique dans l'espace d'adressage?

    <p>Pour garantir la rapidité d'accès. (D)</p> Signup and view all the answers

    Quelle caractéristique de la ROM est essentielle pour le code de démarrage?

    <p>Elle est en lecture seule. (C)</p> Signup and view all the answers

    Comment est structuré l'espace d'adressage du MIPS?

    <p>Il est structuré en zones de données et de code. (C)</p> Signup and view all the answers

    Flashcards

    ROM et RAM

    La ROM est une mémoire morte, utilisée pour stocker le code de démarrage du système. Elle ne peut être lue que et ne peut pas être modifiée. La RAM (Random Access Memory) est une mémoire vive, qui permet de stocker des données et des programmes que le processeur utilise. On peut lire et écrire des données dans la RAM.

    Espace d'adressage du MIPS

    L'espace d'adressage définit toutes les adresses auxquelles le processeur peut accéder. Pour le MIPS, cet espace comporte 2^32 octets, ce qui correspond à 4 Go. Les instructions lw, lh, lb, lhu, lbu, sw, sh, sb permettent d'accéder à ces adresses.

    Code de démarrage et son emplacement

    Le code de démarrage ou code de boot est situé dans la mémoire ROM. Il est chargé à une adresse spécifique dans l'espace d'adressage afin d'être accessible dès le démarrage du système.

    Mémoire et espace d'adressage

    Les mémoires, comme la RAM et la ROM, sont des composants physiques qui contiennent des cases adressables. Elles sont mappées dans l'espace d'adressage, ce qui signifie qu'une partie de l'espace d'adressage correspond à une partie du composant mémoire.

    Signup and view all the flashcards

    Registres internes du contrôleur de terminal TTY

    Les registres internes du contrôleur de terminal TTY sont utilisés pour gérer les interactions entre l'utilisateur et le terminal. Ils permettent de stocker des données telles que les caractères entrés au clavier, les positions du curseur, etc.

    Signup and view all the flashcards

    Emplacement du code de démarrage

    Le code de démarrage est chargé dans la mémoire ROM, un composant matériel du prototype almo1. L'adresse du code de démarrage est définie dans la ROM.

    Signup and view all the flashcards

    Prototype almo1

    Le prototype almo1 est une plateforme informatique conçue pour l'apprentissage. Il permet de comprendre l'architecture d'un système informatique et de réaliser des exercices de programmation.

    Signup and view all the flashcards

    Code de démarrage

    Le code de démarrage est un programme qui est chargé dans la mémoire ROM au démarrage du système. Il permet d'initialiser les composants du système et de charger le système d'exploitation.

    Signup and view all the flashcards

    Adresse de départ de la mémoire MIPS

    L'adresse de départ de la mémoire dans le système MIPS est 0xBFC00000. Cette adresse est définie par le processeur MIPS lui-même au démarrage.

    Signup and view all the flashcards

    Composant TTY

    Le composant TTY est utilisé pour gérer les entrées et sorties du terminal (clavier et écran).

    Signup and view all the flashcards

    Contrôleur de disque

    Un contrôleur de disque gère la communication avec un disque dur, permettant la lecture et l'écriture de données.

    Signup and view all the flashcards

    Contrôleur vidéo

    Un contrôleur vidéo gère l'affichage sur l'écran, recevant les données à afficher et les traduisant en signaux d'affichage.

    Signup and view all the flashcards

    Registres de périphériques

    Les registres de périphériques sont des emplacements de mémoire dédiés à la communication avec les périphériques, comme le clavier ou l'écran.

    Signup and view all the flashcards

    Registre TTY_WRITE

    Le registre TTY_WRITE est utilisé pour écrire un caractère sur l'écran.

    Signup and view all the flashcards

    Registre TTY_STATUS

    Le registre TTY_STATUS indique si des données sont disponibles pour être lues depuis le clavier.

    Signup and view all the flashcards

    Registre TTY_READ

    Le registre TTY_READ contient le caractère qui vient d'être tapé au clavier.

    Signup and view all the flashcards

    Requêtes MIPS

    Les requêtes sont émises par le MIPS et reçues par les composants mémoires ou les périphériques. Cela permet au MIPS d'accéder aux données stockées dans la mémoire et aux périphériques.

    Signup and view all the flashcards

    Code de démarrage en assembleur

    Le code assembleur est utilisé uniquement là où il est indispensable, comme pour le code de démarrage. C'est parce que le compilateur C suppose l'existence d'une pile et d'un pointeur de pile, qui ne sont pas disponibles au démarrage.

    Signup and view all the flashcards

    Ecrire sur le terminal

    Pour écrire un caractère sur le terminal, il faut écrire son code ASCII à l'adresse du registre TTY_WRITE. Chaque caractère du message doit être écrit à cette même adresse.

    Signup and view all the flashcards

    Fichier kernel.ld

    L'éditeur de liens utilise le fichier kernel.ld pour définir l'espace d'adressage et la manière de placer les sections du code dans le programme exécutable.

    Signup and view all the flashcards

    Désassembleur

    Le désassembleur permet de retrouver le code assembleur à partir du code binaire généré par le compilateur.

    Signup and view all the flashcards

    Study Notes

    Boot and First Program in Kernel Mode

    • Architecture Analysis:
      • Three figures illustrate the architecture of the almo1 prototype
      • A simplified diagram, the internal registers representation of the TTY controller (for terminal), and the addressing space representation are presented.
    • Memory Organization:
      • Two memory types exist: RAM (Random Access Memory) and ROM (Read-Only Memory).
      • ROM holds the boot code.
      • RAM is used for both the boot code and runtime data.
    • MIPS Addressing Space:
      • The MIPS addressing space comprises all addresses the MIPS can access.
      • Addresses are 32-bit, representing bytes (2^32 bytes).
      • Load/store instructions (lw, lh, lb, lhu, lbu, sw, sh, sb) are used to interact with the addressing space.
      • Memories are components holding addressable memory locations, mapped into the addressing space.
    • Boot Code Location:
      • The boot code resides in ROM.
      • It begins at address 0xBFC00000, the initial address MIPS provides during startup.
    • Input/Output (I/O) Component:
      • The TTY component handles input and output operations (receiving keyboard input and sending to screen display).
      • Other possible components in a System-on-a-Chip (SoC) include disk controller, video controller, Ethernet/USB ports, and analog input devices.
    • TTY Registers:
      • Four command registers are located in the TTY controller, starting at address 0xD0200000.
      • MIPS instructions cannot directly use TTY registers as operands (like add, or).
      • Writing to the TTY_WRITE register sends a character to the screen.
      • TTY_STATUS indicates pending characters for reading (1 = pending character(s)).
      • TTY_READ holds typed character's ASCII code if TTY_STATUS is 1.
      • The TTY_WRITE register's address is 0xD0200000 in the address space.
    • Multiple TTYs:
      • The TTY controller can manage one to four terminals.
      • Each terminal has a set of four registers (register map).
      • If there are two terminals (TTY0 and TTY1), the TTY_READ register for TTY1 would be at address 0xD0200018.
    • Schematic Arrows:
      • Blue arrows represent memory access requests (loads and stores) from the MIPS.
      • The arrows point in only one direction to avoid overly complex diagrams.

    Assembly Programming

    • Minimal Assembly Use:
      • Assembly is used only when necessary
      • Boot code is a primary example.
    • C Code Limitations during Startup:
      • C compilers require a stack and a stack pointer register.
      • These resource values are undefined during startup.

    C Compilation and Linking

    • Executable Generation:
      • gcc -o file.o -c file.c compiles the C file.
      • ld -o bin.x -Tkernel.ld files.o links the object code into the executable.
    • Linker Script (kernel.ld):
      • kernel.ld describes the memory map and how sections are placed in executable
      • Regions like boot_region and ktext_region define memory allocation for different program components.
    • MEMORY section details:
      • Defines various memory segments and their properties (location ORIGIN and size LENGTH).

    C Programming

    • static Keyword:

      • static keyword usage limits variables and functions to the current file.
      • It makes local variables persistent, retaining their values across function calls.
    • extern Keyword:

      • extern declares a variable or function visible to other files in the project.
      • The concept is often implicitly applied and used in C, in contrast to the use of assembly files.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Ce quiz explore l'organisation mémoire et l'espace d'adressage MIPS. Vous découvrirez les types de mémoire, la localisation du code de démarrage et les instructions utilisées pour interagir avec l'espace d'adressage. Testez vos connaissances sur la structure de l'architecture du prototype almo1.

    More Like This

    MIPS Registers Naming Quiz
    8 questions
    MIPS Architecture Features Quiz
    10 questions
    Use Quizgecko on...
    Browser
    Browser