Changes between Version 1 and Version 2 of MultiCourseTP7_QR


Ignore:
Timestamp:
Jun 9, 2020, 12:25:24 AM (4 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MultiCourseTP7_QR

    v1 v2  
    33== Q1) Sous une sytème d'exploitation généraliste comme LINUX on WINDOWS, comment un programme utilisateur peut-il demander à utiliser le coprocesseur DMA ? ==
    44
    5 Le terminal écran/clavier TTY, est mis à la disposition d'un programme utilisateur à travers une abstraction spécifique définie par des appels système tels que printf() et getc(). Le contrôleur de disque IOC est mis à la disposition des programmes utilisateurs à travers une l'abstraction des fichiers, qui définit d'autres appels sytèmes tels que open(), rea() , ou write(), close(). Le contrôleur réseau (non analysé dans MULTI) est mis à la disposition des programmes utilisateurs à travers l'abstraction des sockets, qui définit encore d(autres appels systèmes tels que send() et receive().
    6 L'existence de ces périphériques d'entrée/sortie permettant la communication avec le monde extérieur est donc connue des programmes qui peuvent donc y accéder à travers des appels système dédiés. Le coprocesseur DMA est dans une situation différente: Ce n'est pas un périphérique d'entrée/sortie et mais un accélérateur matériel de copie de mémoire à mémoire, qui peut être présent ou non dans l'architecture matérielle. Il n'est donc utilisé par l'OS que s'il existe, et pour accélérer certains transferts de sonnées comme l'affichage d'une image sur l'écran graphique de l'architecture. C'est donc en général une optimisation non contrôlée par le programme utilisateur.
     5* Le terminal écran/clavier TTY, est mis à la disposition d'un programme utilisateur à travers une abstraction spécifique définie par des appels système tels que printf() et getc(). Le contrôleur de disque IOC est mis à la disposition des programmes utilisateurs à travers une l'abstraction des fichiers, qui définit d'autres appels sytèmes tels que open(), rea() , ou write(), close(). Le contrôleur réseau (non analysé dans MULTI) est mis à la disposition des programmes utilisateurs à travers l'abstraction des sockets, qui définit encore d(autres appels systèmes tels que send() et receive(). L'existence de ces périphériques d'entrée/sortie permettant la communication avec le monde extérieur est donc connue des programmes qui peuvent donc y accéder à travers des appels système dédiés.
     6* Le coprocesseur DMA est dans une situation différente: Ce n'est pas un périphérique d'entrée/sortie et mais un accélérateur matériel de copie de mémoire à mémoire, qui peut être présent ou non dans l'architecture matérielle. Il n'est donc utilisé par l'OS que s'il existe, et pour accélérer certains transferts de sonnées comme l'affichage d'une image sur l'écran graphique de l'architecture. C'est donc en général une optimisation non contrôlée par le programme utilisateur.
    77
    8 == Q2) Pourquoi l'interruption CMA est-elle débrayable par logiciel en utilisant le registre DMA_IRQ_ENABLE ? ==
     8== Q2) Pourquoi l'interruption DMA est-elle débrayable par logiciel en utilisant le registre DMA_IRQ_ENABLE ? ==
    99
    1010La plupart des périphériques sont conçus pour être utilisés par différents OS, qui peuvent avoir des politiques différentes pour détecter la fin d'une opération d'entrée/sortie. La technique des interruptions, est efficace quand l'OS supporte le fonctionnement multi-tâches sur un seul processeur, mais la technique de scrutait directe du registre status par l'OS peut être très efficace dans un contexte de sytème embarqué mono-tâche. C'est pourquoi le  coprocesseur DMA ne rend pas obligatoire l'interruption pour signaler la fin de transfert.