1.2. Amorçage d'un ordinateur

A- Sur un ordinateur, lors de sa mise en route, le microprogramme exécute la séquence suivante:
Proposer un schéma pour l'amorce programmée qui figure dans un tel bloc pour un disque.
Indications: L'amorce doit lire sur disque des informations à charger, assurer le chargement et le lancement du programme ainsi chargé en mémoire, à partir d'une table d'implantation décrivant l'organisation.
B- Les compatibles PC sont équipés de microprocesseurs de la famille 8088/286. Lors de la mise sous tension, ces microprocesseurs forcent le compteur ordinal à une valeur prédéfinie (0FFFF0 en hexadécimal), et exécutent donc l'instruction située à cet endroit en mémoire.
B.1- Expliquer comment, à votre avis, les constructeurs réussissent à obtenir que lors de la mise en route par l'utilisateur, le compatible PC charge automatiquement le système MS-DOS depuis une disquette ou depuis le disque dur.
B.2- La solution adoptée pour résoudre B.1, ne permettrait-elle pas d'éviter de charger MS-DOS. Quel est l'intérêt alors de ce chargement?
Solution de l’exercice 1.2

1.2.1. Question A

L’amorce programmée doit contenir les informations suivantes:
1) La localisation sur disque des informations à charger, éventuellement complétées des adresses en mémoire centrale où ces informations doivent être placées:
- numéros de piste, face, secteur de début de zone sur disque,
- nombre de secteurs de la zone
- adresse mémoire centrale où la zone doit être chargée.
2) L'adresse mémoire centrale de la première instruction à exécuter du programme ainsi chargé. On peut imaginer que la dernière entrée de la table est distinguée par un nombre de secteurs nul, et que dans ce cas l'adresse mémoire correspond à cette adresse de lancement du programme.
Le programme amorce se décompose de la façon suivante:
initialisation des registres du processeur
pour toutes les entrées de la table faire
	si nombre de secteurs non nul alors lecture sur disque
	sinon saut à adresse mémoire
	finsi
fait
Il faut noter que ce programme doit être court, puisque l'ensemble doit tenir sur un bloc de 1Ko. Par ailleurs on ne dispose alors d'aucune fonctionnalité. En particulier la procédure de lecture en général fera un traitement d'erreur rudimentaire, par exemple en envoyant sur la console un message court, et en reprenant le programme amorce au début. Remarquons que ce programme amorce peut être utilisé pour charger non pas le programme final (système par exemple), mais pour charger un second programme d'amorçage plus élaboré, et donc de taille plus importante, qui assurera lui-même le chargement du programme système.

1.2.2. Question B

1.2.2.1. Question B.1

Puisque le microprocesseur exécute une instruction située à une adresse donnée en mémoire, il faut que cette instruction soit déjà dans la mémoire centrale lors de la mise en route. La partie de mémoire qui la contient doit être non volatile, c'est-à-dire doit persister à une coupure de courant, et ne doit pas pouvoir être modifiée pour que l'usager retrouve toujours son ordinateur personnel dans le même état lorsqu'il met le courant. C'est pourquoi on utilise une mémoire morte “ROM” (ou Read Only Memory). Dans cette mémoire est inscrit un programme d'amorçage équivalent à ce qui est microprogrammé sur les gros ordinateurs. Cependant ce programme peut être déjà plus performant, comme par exemple, en recherchant sur un ensemble de périphériques, comme les lecteurs de disquettes ou les disques durs, le premier qui contient une amorce programmée (secteur de boot dans la terminologie anglaise) qui chargera alors le système MS-DOS lui-même.
Le programme d'amorce en ROM pourrait être le suivant:
	pour tous les périphériques faire
	   lire un bloc;
	   si bloc lu correctement alors
			si bloc d'amorce alors
				exécuter le bloc;		{ amorce programmée }
			finsi;
	   finsi;
	fait;

1.2.2.2. Question B.2

Il serait tout à fait possible de mettre MS-DOS directement dans cette mémoire ROM. Il suffirait que sa taille soit suffisante. C'est d'ailleurs ce que fait Atari sur les ordinateurs personnels de la famille ST qui contiennent le “TOS” en mémoire ROM. Cependant, cela ne permet pas de changer facilement de version, et de faire évoluer ainsi le système lui-même, puisqu'il faut alors changer la mémoire morte. En général, ces machines compensent cet inconvénient en conservant la possibilité d'amorcer l'ordinateur à partir d'un périphérique. Évidemment on perd alors l'intérêt du système en ROM.