[Minutes des conversations sur l’IBM650, 19-25 juin 2007]
Bonsoir à tous!
Me revoilà avec mes vieilleries...
Je vous propose un sujet encore plus ancien qu'un CPU tout transistors. Je n'ai pas pris le temps
de chercher sur Internet, mais je pense que l'ancêtre que je vais tenter de vous faire découvrir,
fonctionnait avec des lampes (tubes à vide).
J'ai retrouvé dans mes vieilles affaires, mes cours d'analyse numérique où on utilisait un IBM650.
Plutôt que de jeter le tout à la poubelle (car j'ai peu de risque d'en avoir l'usage!), j'en ai fait une
copie sur mon site en me disant que peut-être un jour... un passant y jettera un oeil!
Ne soyez pas méchants, je sais que les machines ont évoluées depuis!
Non je n'ai pas une machine de ce genre dans mon grenier, désolé!
N'hésitez pas à dire ce que vous en pensez!
JMP
Ben oui, mais il est où ton site!
Je voulais aller voir moi!
Guillaume.
o euh... cela doit être dû aux effets de l'entrelacement du tambour magnétique...
voir http://pichotjm.free.fr/IBM650/file.html
Bonne lecture!
On peut aussi réviser sur le reste du site: http://pichotjm.free.fr/index.html
o Ouh là, dur à décoder, tout n'est que nombre... Pas de mnémoniques pour tenter de piger le
système.
Avec un livre de programmation, ça aurait été chouette!
N'empêche, quel boulot: algorithme -> codes numériques -> trous dans la
carte -> moulinette IBM pour vérifier -> retour au début en cas d'erreur.
Guillaume.
Quand, lors de mes rangements, je suis tombé sur ce dossier, j'ai été très surpris de
voir la complexité de la programmation.
En analysant un peu plus, j'ai compris que l'architecture de l'IBM 650 était
vraiment différente des machines actuelles (ou même du Serel). En gros j'ai
l'impression que tout était fait avec cette notion de nombres commerciaux, qui
ensuite conduisait aux cartes perforées et que les CPUs étaient crées pour gérer ces
fiches.
On était loin de ce qu'on a actuellement et qui nous parait tellement évident (tout
du moins au niveau des uP simples)
Qu'une machine ancienne n'ait pas cette notion de compteur ordinal m'a beaucoup
surpris. Et puis, mettre un équivalent 'goto' dans chaque instruction!
L'absence de pointeur (hardware) peut se comprendre, car l'astuce de modifier des
zones de code peut facilement y pallier. C'était une chose qui m'amusait beaucoup
du temps du 6800, de faire de la programmation/exécution en zone RAM (et non
pas Rom) et de modifier le contenu des instructions. On pouvait faire des choses
tout à fait inattendues! La notion de registres pointeur nous a quand même
beaucoup simplifié la vie.
Si vous êtes intéressé par une meilleure description du fonctionnement de
l'IBM 650, jetez un coup d'oeil sur:
http://archive.computerhistory.org/resources/text/IBM/IBM.650.1955.102646125.p
df
Cela explique le fonctionnement. Je n'ai pas tout compris: faut que je le relise!
J'ai l'impression que beaucoup de participants au NG ordinosaures ont été largués!
Mais je crois que j'ai réussi à montrer comment c'était compliqué, dans le temps!
Bonne journée! JMP
Intéressant!
Pas tout pigé" non plus. Je pense qu'au niveau du vocabulaire déjà on passe un cap
(dans le passé) et sans tester soi même les instructions, on sature vite d'informations.
Mais bon, y'a le gros du CPU:
- accumulateur High et Low (2 fois 10 chiffres)
- distributor (genre d'accu temporaire)
Ces deux là seraient les registres du CPU
Le fameux tambour de 2000 positions de 10 chiffres + signes serait la RAM et leurs
séries de cartes perforées le disque dur... et l'écran à la fois!
Un émulateur de cette machine serait assez rigolo.
Guillaume.
> Mais bon, y'a le gros du CPU:
> - accumulateur High et Low (2 fois 10 chiffres)
> - distributor (genre d'accu temporaire)
> Ces deux là seraient les registres du CPU
tout en mélangeant allegrement les codes OP, les adresses et les données...
L'instruction 'Load' se traduit par 'Addition précédée d'un reset' !
C'est délicieusement rétro.
Une chose que je n'ai pas très bien compris est cette histoire de 2 lecteurs
de cartes. Un pour les instructions (ou début/fin de batch?) et l'autre pour
les données? tout en faisant de la redondance (pour pallier les forts taux
d'erreurs?)
> Le fameux tambour de 2000 positions de 10 chiffres + signes serait la
> RAM et leurs séries de cartes perforées le disque dur... et l'écran à la
> fois!
Ram: non! de la SAM!
Random access memory , prendre plutôt Serial Access Memory.
La 'sequence machine' doit être assez compliquée! Car attendre le passage
d'une donnée pour l'utiliser...
Et tout cela qui valait une fortune, ne faisait qu'environ 16 kB.
Je n'ai pas bien compris pourquoi il y avait 5 têtes pour enregistrer les
chiffres (sorte de BCD étendu, signes +-. avec parité? ou redondance
magnétique?)
Et cela donne des temps d'accès d'environ 40 uS par mot.
Et pas d'imprimante: on lisait les résultats sur les cartes?
> Un émulateur de cette machine serait assez rigolo.
Tout, à fait dans la ligne de ma "conquête de l'inutile"!
Mais je pense que je me lancerai plutôt dans celui du Serel ODP505, qui
trône dans mon sous-sol.
> Guillaume.
JMP
> Une chose que je n'ai pas très bien compris est cette histoire de 2
> lecteurs de cartes. Un pour les instructions (ou début/fin de batch?) et
> l'autre pour les données? tout en faisant de la redondance (pour pallier
> les forts taux d'erreurs?)
Pas très clair pour moi non plus. Mais il semblerait que certaines
instructions genre "read" permettent d'aller lire une donnée dans le second
panier. Comme si le second panier était en fait le paquet de variables d'un
programme fixe sans avoir à tout re-écrire à chaque changement des données.
> Ram: non! de la SAM!
> Random access memory , prendre plutôt Serial Access Memory.
> La 'sequence machine' doit être assez compliquée! Car attendre le passage
d'une donnée pour l'utiliser...
J'aurai dit de la ram quand même, car niveau utilisateur le fait qu'elle
soit séquentielle est transparent. Je dirai même qu'elle n'est pas si séquentielle
que ça, ça semble être adréssé comme une matrice enroulée en
tambour. D'abord la bande du tambour (1 à 40) puis la position dans la bande
(1 à 50).
> Je n'ai pas bien compris pourquoi il y avait 5 têtes pour enregistrer les
> chiffres (sorte de BCD étendu, signes +-. avec parité? ou redondance
> magnétique?)
Si j'ai bien compris: un chiffre est représenté avec un motif écrit par
les 5 têtes. Ils donnent en exemple:
tête 5 + tête 3 = chiffre 8
tête 5 + tête 2 = chiffre 7
On peut suposer que 5+4 =9 et 5+1=6
De même que les chiffres de 1 à 5 sont représentés par une seule tête.
Mais qu'en est-il du zéro? Absence de marquage? ou toutes les têtes
ensembles?
Bref, ce n'est pas optimisé, puisqu'avec 5 têtes on aurait 32 possibilités.
Optimisé en vitesse de lecture sans doute ou en simplicité du
circuit de décodage?
> Et pas d'imprimante: on lisait les résultats sur les cartes?
Oui, mais j'ai du mal à saisir leurs sorties qui semblent être réservées à
seulement certaines cellules de la RAM et qui doivent être contigues (pour se
perforer sur la même carte..) Bref, y'a des limitations!
En tous cas, système passionnant!
Qu'y avait-il sur la console?
Guillaume.
o > Qu'y avait-il sur la console?
Naibed ?
--
"0"[0] == '0'
"0"[1] == '\0'
o J'ai l'impression d'avoir besoin d'un recyclage!
Naibed ?: pas compris (logiciel de dessin?)
"0"[0] == '0'
"0"[1] == '\0'
pas compris non plus! du binaire? ou un symbolisme de mise à la
masse?
Au plaisir de lire des explications.
JMP
o > Naibed ?: pas compris (logiciel de dessin?)
une pilote de mainframes.
> "0"[0] == '0'
> "0"[1] == '\0'
> pas compris non plus! du binaire? ou un symbolisme de mise à la
masse?
C'est du langage C.
o > une pilote de mainframes.
Elle ne serait pas plutôt navigatrice de consoles ?
>> "0"[0] == '0'
>> "0"[1] == '\0'
>>
>> pas compris non plus! du binaire? ou un symbolisme de mise à la
masse?
> C'est du langage C.
Mais ça peut être vu aussi comme une mise à la masse :)
>> Une chose que je n'ai pas très bien compris est cette histoire de 2
>> lecteurs de cartes. Un pour les instructions (ou début/fin de batch?) et
>> l'autre pour les données? tout en faisant de la redondance (pour pallier
les forts taux d'erreurs?)
>
> Pas très clair pour moi non plus. Mais il semblerait que certaines
> instructions genre "read" permettent d'aller lire une donnée dans le
> second panier. Comme si le second panier était en fait le paquet de
> variables d'un programme fixe sans avoir à tout re-écrire à chaque
> changement des données.
Et si c'était (par exemple, et suppositions):
-début de batch
-RAZ mémoire
-début de zone réservée
-début de zone programme
-adresse de démarrage du programme
-impression des résultats
-fin de batch
Vous savez toutes ces choses qui sont déclarées dans un programme
assembleur.
>> Ram: non! de la SAM!
>> Random access memory , prendre plutôt Serial Access Memory.
>> La 'sequence machine' doit être assez compliquée! Car attendre le
passage d'une donnée pour l'utiliser...
>
> J'aurai dit de la ram quand même, car niveau utilisateur le fait
> qu'elle soit séquentielle est transparent. Je dirai même qu'elle n'est pas
> si séquentielle que ça, ça semble être adréssé comme une matrice enroulée
> en tambour. D'abord la bande du tambour (1 à 40) puis la position dans la
> bande (1 à 50).
D'un point de vue technologique, ce n'est pas de la random=accès direct et
immédiat (au temps d'accès près!)
C'est sûr que si on accepte un Tacc de 2000uS ...
>> Je n'ai pas bien compris pourquoi il y avait 5 têtes pour enregistrer les
>> chiffres (sorte de BCD étendu, signes +-. avec parité? ou redondance
>> magnétique?)
>
> Si j'ai bien compris: un chiffre est représenté avec un motif écrit par
> les 5 têtes. Ils donnent en exemple:
> tête 5 + tête 3 = chiffre 8
> tête 5 + tête 2 = chiffre 7
> On peut suposer que 5+4 =9 et 5+1=6
> De même que les chiffres de 1 à 5 sont représentés par une seule tête.
> Mais qu'en est-il du zéro? Absence de marquage? ou toutes les têtes
> ensembles?
> Bref, ce n'est pas optimisé, puisqu'avec 5 têtes on aurait 32
> possibilités. Optimisé en vitesse de lecture sans doute ou en simplicité
> du circuit de décodage?
J'opterai plutôt pour du binaire 4 bits associé à une tête de strobe (genre
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !