Un bref aperçu du PDP-11, le mini-ordinateur le plus influent de tous les temps
L’histoire de la technologie informatique peut être grossièrement divisée en trois époques : l’ère des ordinateurs centraux, des mini-ordinateurs et des micro-ordinateurs. Les mini-ordinateurs sont devenus un lien important entre les premiers ordinateurs centraux et les micro-ordinateurs omniprésents d’aujourd’hui. C’est l’histoire du PDP-11, le mini-ordinateur le plus influent et le plus réussi.
À une certaine époque, les mini-ordinateurs étaient utilisés dans diverses applications. Ils ont servi de contrôleurs de communication, de contrôleurs d’instruments, de grands préprocesseurs de système, de calculatrices de bureau et de processeurs d’acquisition de données en temps réel. Mais ils ont également jeté les bases d’avancées significatives dans l’architecture matérielle et apporté des contributions majeures aux systèmes d’exploitation modernes, aux langages de programmation et à l’informatique interactive tels que nous les connaissons aujourd’hui.
Dans le monde informatique d’aujourd’hui, dans lequel chaque ordinateur exécute une version de Windows, Mac ou Linux, il est difficile de distinguer les processeurs qui sous-tendent le système d’exploitation. Mais il fut un temps où les différences d’architecture CPU importaient beaucoup. Le PDP-11 aide à expliquer pourquoi il en est ainsi.
Le PDP-11 a été introduit en 1970 lorsque la plupart des calculs étaient effectués sur des mainframes coûteux de GE, CDC et IBM auxquels peu de gens avaient accès. Il n’y avait pas d’ordinateurs portables, pas d’ordinateurs de bureau, pas d’ordinateurs personnels. Seules quelques entreprises étaient impliquées dans la programmation, principalement en langage d’assemblage, COBOL et FORTRAN. L’entrée a été faite avec des cartes perforées et les programmes ont été lancés par des exécutions par lots non interactives.
Bien que le premier PDP-11 ait été modeste, il a ouvert la voie à l’invasion des mini-ordinateurs qui a rendu les ordinateurs de nouvelle génération plus abordables, révolutionnant essentiellement l’informatique. Le PDP-11 a aidé à créer le système d’exploitation UNIX et le langage de programmation C. Cela influencerait également grandement la prochaine génération d’architectures informatiques. Au cours des 22 années de vie du PDP-11 – une durée sans précédent selon les normes actuelles – plus de 600 000 PDP-11 ont été vendus.
Les premiers PDP-11 n’étaient pas si impressionnants. Le premier 11/20 PDP-11 coûtait 20 000 $ mais n’était livré qu’avec 4 Ko de RAM. Il utilisait une bande de papier comme stockage et disposait d’une console de téléscripteur ASR-33 qui imprimait 10 caractères par seconde. Mais il avait également une étonnante architecture orthogonale 16 bits, huit registres, 65 Ko d’espace d’adressage, un temps de cycle de 1,25 MHz et un bus matériel UNIBUS flexible prenant en charge les futurs périphériques matériels. C’était une combinaison gagnante pour son créateur, Digital Equipment Corporation.
L’application initiale du PDP-11 comprenait le contrôle matériel en temps réel, l’automatisation de l’usine et le traitement des données. Au fur et à mesure que le PDP-11 a acquis une réputation de flexibilité, de programmabilité et d’abordabilité, il a trouvé une utilisation dans les systèmes de contrôle des feux de circulation, le système de défense antimissile de Nike, le contrôle du trafic aérien, les centrales nucléaires, les systèmes de formation des pilotes de la Marine et les télécommunications. Il a également été le pionnier du traitement de texte et du traitement des données que nous tenons désormais pour acquis.
Et l’influence du PDP-11 est plus évidente dans la programmation de l’assemblage de l’appareil.
Principes de base de la programmation d’assemblage
Avant l’invention des langages de haut niveau tels que Python, Java et Fortran, la programmation se faisait en langage assembleur. La programmation en langage d’assemblage peut être effectuée avec très peu de RAM et d’espace disque, idéal pour les débuts de l’informatique.
Le langage d’assemblage est un format intermédiaire de bas niveau qui est converti en langage machine, qui peut ensuite être exécuté directement par l’ordinateur. C’est de bas niveau parce que vous contrôlez directement les aspects de l’architecture de l’ordinateur. En termes simples, la programmation en langage assembleur déplace vos données octet par octet à travers les registres matériels et la mémoire. Ce qui distingue la programmation du PDP-11, c’est le design élégant du mini-ordinateur. Chaque instruction avait sa place, et chaque instruction avait un sens.
L’espace d’adressage de 16 bits signifiait que chaque registre pouvait adresser directement jusqu’à 64 Ko de RAM, les 4 Ko supérieurs étant réservés aux entrées et sorties mappées en mémoire. Les PDP-11 pourraient adresser un total de 128 Ko de RAM en utilisant des segments de registre (plus à ce sujet dans un instant). Ainsi, même si les systèmes PDP-11 n’étaient livrés qu’avec 4 Ko de RAM, ils étaient toujours productifs grâce à l’utilisation intelligente des premières techniques de programmation.
Programme de montage
Le moyen le plus simple de comprendre ce concept consiste à utiliser un simple programme en langage assembleur PDP-11, que nous examinerons ci-dessous. Les mots clés qui commencent par « . » sont des directives pour l’assembleur. .globl
exporte l’étiquette en tant que symbole vers l’éditeur de liens pour une utilisation par le système d’exploitation. .text
définit le début d’un segment de code. .data
définit le début d’un seul segment de données. Les mots-clés se terminant par « : » sont des balises. La programmation en langage d’assemblage utilise des étiquettes pour adresser symboliquement la mémoire. (Remarque : avec l’avènement du jargon et du codage PDP-11, tout texte après / est un commentaire.)
Mots clés | Traduction |
.globl_main | Exportez l’étiquette _main comme point d’entrée à utiliser par le système d’exploitation. |
.texte | Début du segment d’instruction contenant du code en lecture seule |
_main : VALEUR MOTEUR1, R0 | Copiez la valeur du mot de l’emplacement mémoire VAL1 dans le registre 0. |
AJOUTER 10 $, R0 | Ajouter 10 à la valeur dans le registre 0 |
MOTEUR R0 VALEUR1 | Copiez la valeur du registre 0 à l’emplacement mémoire VAL1. |
_.données | Début d’un segment de données contenant des données en lecture/écriture. |
VAL1 :. mot 100 $ | Réservez 2 octets de mémoire pour contenir Val1 initialisé à 100. |
Bien que vous puissiez utiliser des valeurs numériques pour les adresses mémoire, l’utilisation d’étiquettes au lieu d’adresses codées en dur simplifie la programmation et vous permet de déplacer le code dans la mémoire. Cela donne au système d’exploitation la flexibilité d’exécuter du code, ce qui rend chaque programme rapide et efficace.
directive assembleur. data place les données dans un segment de mémoire qui est à la fois lisible et inscriptible. Le segment de mémoire de code est en lecture seule pour empêcher les erreurs de programmation de corrompre le programme et de provoquer des plantages. Cette séparation des instructions des données sur le PDP-11 est appelée « séparation des instructions et des données ». En plus d’améliorer la stabilité, cette fonctionnalité double également l’espace d’adressage, fournissant 64 Ko pour le code et 64 Ko pour les données, ce qui était considéré comme une innovation à l’époque. En conséquence, les micro-ordinateurs Intel X86 ont ensuite largement utilisé les segments.
Laisser un commentaire