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</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</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</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</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</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</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</p> Signup and view all the answers

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

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

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

    <p>Lire des données</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</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</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</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</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.</p> Signup and view all the answers

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

    <p>32 bits.</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.</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.</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.</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.</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.</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.</p> Signup and view all the answers

    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