École Supérieure en Sciences et Technologies de l'Informatique et du Numérique

École Supérieure en Sciences et Technologies de l'Informatique et du Numérique 2020/2021 Module : Architecture des ordinateurs II Niveau : 2e année CPI Dr S. BOUCHELAGHEM Correction - Exercice Supplémentaire Soit un contrôleur de disque fonctionnant en mode par test d'état. Ce contrôleur contient les registres suivants : RC : Registre de Commandes RD : Registre de Données RS : Registre de Secteur RP : Registre de Piste RE : Registre d'État Le répertoire de ce contrôleur comprend les commandes suivantes : • SEEK (Recherche piste) → Code opération : "001" • READ (Lecture secteur) → Code opération : "010" • WRITE (Écriture secteur) → Code opération : "011" • STOP (Fin du programme d'entrée/sortie) → Code opération : "000" L'unité centrale accède aux registres du contrôleur en utilisant les instructions suivantes : • LDA RD Chargement du contenu de RD dans l'accumulateur • LDA RE Chargement du contenu de RE dans l'accumulateur • STA RD Rangement de l'accumulateur dans le RD • STA RC Rangement de l'accumulateur dans le RC • STA RS Rangement de l'accumulateur dans le RS • STA RP Rangement de l'accumulateur dans le RP L'unité centrale dispose également des instructions suivantes : • LDI val Chargement immédiat de l'accumulateur avec la valeur val. • LDA adr Chargement direct de l'accumulateur avec la valeur contenue dans le mot d'adresse adr. • STA adr Rangement direct du contenu de l'accumulateur dans le mot d'adresse adr. • LDA *adr Chargement en mode indirect de l'accumulateur avec la valeur contenue dans le mot pointé par l'adresse qui se trouve dans le mot mémoire d'adresse adr. • STA *adr Rangement en mode indirect du contenu de l'accumulateur dans le mot pointé par l'adresse qui se trouve dans le mot mémoire d'adresse adr. • BZ étiq Branchement conditionnel à l'étiquete étiq si le contenu de l'accumulateur est nul. • BNZ étiq Branchement conditionnel à l'étiquete étiq si le contenu de l'accumulateur n'est pas nul. • BI étiq Branchement inconditionnel à l'étiquete étiq. • ADDI val Addition en mode immédiat de la valeur val au contenu de l'accumulateur ; résultat dans l'accumulateur. • SUBI val Soustraction en mode immédiat de la valeur val au contenu de l'accumulateur ; résultat dans l'accumulateur. • ANDI 'val' ET logique en mode immédiat entre le contenu de l'accumulateur et la valeur binaire val précisée dans le champ opérande ; résultat dans l'accumulateur. Chacun des registres du contrôleur ainsi que l'accumulateur ont une taille de 8 bits. Il est impossible de faire des tests directement sur les registres internes du contrôleur. Toutes les opérations doivent se faire dans l'accumulateur. Les bits du registre d'état RE sont positionnés par le contrôleur pour indiquer : B0 = 1 Le registre de données est plein en lecture. Le registre de données est vide en écriture. B1 = 1 La commande exécutée sur le périphérique est terminée. B2 = 1 Le périphérique et le contrôleur sont prêts. On veut écrire sur le disque dur une chaîne de caractères qui occupe 1024 octets en mémoire centrale à partir de l'adresse 2453. On suppose que chaque secteur a une taille de 512 octets. Question : Écrire le programme exécuté par l'unité centrale et qui efectue l'écriture de la chaîne d'octets sur le secteur 13 de la piste 25, et le secteur 7 de la piste 31 du disque. La fin du programme se termine obligatoirement par une commande STOP. Étiquuetue Instruction Duescription LDI STA LDI STA LDI STA 2453 Adr 512 Nbc 2 Nbs Initialisation uetiq1 : LDA ANDI BZ RE '0000000100' uetiq1 Tester si le contrôleur est prêt uetiq5 : uetiq2 : LDI STA LDI STA LDI STA LDA ANDI BZ 25 RP 13 RS '001' RC RE '0000000010' uetiq2 Commande SEEK pour rechercher le secteur et tester la fin d'exécution de la commande uetiq4 : LDA STA LDI STA *Adr RD '011' RC Récupération de l'octet en mémoire Commande d'écriture sur le disque uetiq3 : LDA ANDI BZ RE '0000000001' uetiq3 Tester si RD est vide LDA SUBI BZ STA LDA ADDI STA BI Nbc 1 suect2 Nbc Adr 1 Adr uetiq4 Décrémenter le nombre de caractères Si le secteur est plein, se déplacer au suivant Incrémenter l'adresse Adr suect2 : LDA SUBI BZ STA LDI STA LDI STA LDI STA BI Nbs 1 fin Nbs 512 Nbc 31 RP 7 RS uetiq5 Décrémenter le nombre de secteurs Chargement des numéros de piste et secteur fin : LDI STA '000' RC Fin d'écriture sur les deux secteurs du disque uploads/s1/ corrige-exercice-supplementaire.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 18, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 0.0734MB