Les bus
Nousavonsvuommentréaliserdesopérationsarithmétiquesprimitivesetommentréaliser
lesregistres(detravail),autrementditlamémoire.Nousallonsvoirdansehapitre,d'unepart,
ommentréaliserles transferts entre registreset,d'autrepart, omment réaliserlesopérations
arithmétiquesprimitivesaveunseuliruitparopération,parexemplel'additionden'importe
quellepairederegistresaveunseuladditionneur.
Cei permet, par exemple, de onevoir une alulatrie (életronique) ayant des entrées-
sortiesrudimentaires.
6.1 Réalisation des transferts
6.1.1 Transfert diret entre registres
On peut transférerleontenud'un registreBàunregistreA,sansdétruirele ontenu deB,
soitpardeuximpulsionssuessivesommemontréàlagure6.1,l'unedemiseàzéroetl'autre
detransfertdes1.
Figure 6.1Transfertentreregistrespardeuximpulsions
Onpeutaussitransférerles0et les1simultanément(gures 6.2et6.3).
Figure6.2 Premiersystèmedetransfertentreregistresàentréeforée
Dans lestrois asonabesoind'uneimpulsion(et même dedeux danslepremieras) pour
eetuer le transfert, disons pour indiquer à quel moment eetuer le transfert. On l'appelle
Figure6.3Deuxièmesystèmedetransfertentreregistresàentréeforée
Leprinipedeetransfertderegistreàbistablesversregistreàbistablespeutégalements'ef-
fetuer deregistreàinterrupteurs versregistreàbistableetde registreàbistablesversregistre
àampoules.
6.1.2 Le problème topologique de la liaison entre registres
Lapremièreidéepourréaliserlestransfertsestdetoutsimplementrelierunregistreàtousles
autresregistres.Maiseiexigeunâblageonsidérable.En eets'ilya
m
registresdelargeurn
,pourhaqueregistreilfaut(m − 1) × n
lspourenvoyerdel'informationverslesm − 1
autresregistresplus
m − 1
lspourlesimpulsionsdetransfertorrespondantes.Ceifaitm × n
ls.Ilenfautautantpourhaundes
m
registres,equifaitm 2 × n
ls.Pourentregistresdelargeurhuit,elafait80000liaisonsàréaliser.
Poursimplierleâblageàréaliser,ons'inspire desentrauxtéléphoniques.
Letéléphoneéletriqueestdéployédefaçonindustrielletrèspeudetempsaprèssaoneption,
danslaseondemoitiéduXIX
e
sièle:ilsutdedeuxmiros,dedeuxéouteurs,d'unebatterieet
dedeuxlspouruneommuniationd'unpointàunautre(nousavonsvu,enfait,qu'ilsutd'un
seull,enutilisantlaterreàlaplaedudeuxième).Dèslesessaisterminés,desinstallationsxes
sontréaliséesentreertainsendroits.Letéléphoneonnaîtunengouementimmédiat:beauoup
degensveulentommuniquerparemoyen.SiAveutpouvoirommuniqueraveB,CetDalors
ilfauttroisâblespartantdehezlui.Certainesvillesfurentenvahiesparlesâblestéléphoniques
(aériens).
L'inventeurdu téléphone, Graham Bell, a alors l'idée desentraux téléphoniques. Chaque
personne se relie,par unâble, àun seul endroit,appelé entral téléphonique CT. Lorsqu'une
personneAveutparleràunepersonneB,elleappelleleseulendroitqu'ellepeutappeler,'est-
à-dire le entral, et indique à la personne au bout du l (appelée opératrie, ar les garçons
employésàl'originesontviteremplaéspardesfemmes)qu'elleveutparleràB.L'opératriela
reliealors,grâeàuntableau,àB(siBn'estpasdéjàentraindetéléphoner)etlaonversation
peutommener. Ainsisontnéeslesompagniesdetéléphone.
Laongurationdesliaisonsentrelesregistresest inspiréedel'exempletéléphonique,oùles
entraux sontremplaéspardesbus.Dans notreexemple,onpasse de80000liaisonsà800,e
6.1.3 Les bus
6.1.3.1 Notionde bus
Unbus, ou ligne omnibus, est un ensemble de ls surhaun desquels
une informationbinairepeuttransitersousforme de tension.
Lalargeur d'unbusestlenombrede ls (etdon de bitsmaintenus).
Nousreprésenteronstoujoursunbusshématiquementparunseulletnonparplusieursls,
equi estsusantpouromprendree quisepasse.
6.1.3.2 Busdes données
Mêmesielan'estpaslairpourl'instant,nousverronsqu'unordinateuromporteengénéral
troisbus:lebusdesdonnées,lebusdesadresseset lebus desinstrutions.
En touslesas equiest lair'est qu'un(premier)bus estreliéauxregistresd'entrée,aux
registresdesortieetauxregistresdetravail.Onl'appellelebusdesdonnéespourledistinguer
d'autresbuséventuels.
6.1.3.3 Liaisons registresd'entrée busdes données
Touslesregistresd'entréesontreliésaubus desdonnéessuivantleshémadelagure6.4, à
l'aided'uniruitombinatoiredetransfert d'entréeTE.
Figure6.4Liaisonsregistresd'entréebusdesdonnées
Si on prend le as d'unelargeur desdonnées de
n
, e iruit detransfert TE possèden + 1
entrées:les
n
sortiesQ 1 àQ n duregistreainsi qu'uneentréepourlesignald'impulsion. Ilan
n
sortiesquiorrespondrontaux
n
bitsdubus.Leiruitdetransfertest toutsimplementonstituéde
n
portesET :lesdeuxentréesdelai
-ièmeportesontreliéesauanald'impulsionetàQ i;lasortieestreliéeaui
-ièmeldubus.Le
anald'impulsionestdonutilisé
n
fois.Notons E3 (pour Entrée)le anal d'impulsionpour leregistre
e 3. À haqueinstant unseul
anald'impulsionaupluspeutsetrouveràunniveauhaut.Lorsqueleanald'impulsionE3,par
exemple, est traversé par une impulsion, appelée signal d'éhantillonnage, en temps voulu
alors le bus ontient désormais, et pour un temps susamment long pour qu'on puisse faire
quelquehosedeetteinformation,leontenuduregistred'entrée
e 3.
6.1.3.4 Liaisonsregistres de sortie busdes données
De même tousles registresde sortie sont reliés au bus des donnéessuivant le shémade la
gure6.5.
Figure6.5Liaisonsregistresdesortiebusdesdonnées
Le iruitombinatoirede transfert de sortieTS possède
n + 1
entrées reliéesauxn
ls dubusainsiqu'uneentréepourlesignald'impulsion.Ila
2 × n
sortiesreliéesauxentréesR i etS i
desbistablesRS onstituantleregistre.
Cette fois le iruit de transfert est tout simplement onstitué de
2 × n
portes ET et den
inverseurs si on prend le as du deuxième système de transfert à entrée forée. Le anald'impulsionestdonutilisé
2 × n
fois.NousnoteronsSileanald'impulsionorrespondantauregistre
r i.
6.1.3.5 Liaisonsbus des données registresde travail
Les registresdetravailsontreliés aubus des donnéesdedeux façons,ommele shématise
lagure6.6,àlafoisommes'ils'agissaitd'unregistred'entréeetd'unregistredesortie.
bus
registre de travail
Figure6.6Liaisonsbusregistresdetravail
Notons ERi(pour Entrée du Registre de travail) le anal d'impulsionpermettant de trans-
mettrel'informationdubusdesdonnéesauregistre
r ietSRi(pourSortieduRegistredetravail)
leanald'impulsionpermettantdetransmettrel'informationduregistre
r i aubusdesdonnées.
6.1.4 Réalisation d'un transfert via un bus
Supposonsquel'onveuilletransférerl'informationde
e 3dansr 5,parexemple.Ceis'eetue
endeuxétapes:
Onémetune impulsionsurleanalE3,enabrégéune impulsionE3.Ceiapoureetde
transmettrel'informationduregistre
e 3 aubusdesdonnées.
OnémetensuiteuneimpulsionSR5.Ceiapoureetdetransmettrel'informationdubus
desdonnéesvers
r 5 et donendénitivedel'informationdee 3 versr 5.
r 5.
6.1.5 Pupitre de ommande
Le prinipedutransfert est don simple.Reste àsavoirommentl'utilisateur peutenvoyer
lesimpulsions.
Onpeut,dansunpremiertemps,imaginerunpupitrede ommandepilotant
m
registresd'entrée,
m
registresdetravailetm
registresdesortie,tousdelargeurn
.Celui-idoitomprendrem × n
interrupteurspourlesregistresd'entrée,m × n
lampespourlesregistresdesortieet4 × m
boutonspoussoirspourlesimpulsions. Neriezpas!n'est-epaseque vousfaiteslorsquevous
utilisezvotrealulettrepourdesalulsomplexes?
Danseasunopérateurhumainesthargéd'exéuterleprogrammepasàpas.L'exéution
d'unprogrammeestassezlongmaismoins longquesionl'exéuteomplètementàlamainar
uneadditions'eetueraenunefrationdeseonde.
6.2 Utilisation des instrutions primitives
Nous venons un peu d'antiiper dans la mise en ÷uvre ave notre pupitre de ommande
puisquenous avonsseulement indiquéommenteetuer lestransferts mais paslesopérations
arithmétiquesprimitives.Voyonsdonmaintenantequ'ilenestpourelles.
6.2.1 L'unité arithmétique
Pour mettre en ÷uvreles opérationsarithmétiques élémentairesque l'on a hoisies (et les
opérationslogiquestelles queleETetleOUbitàbit),lebusdesdonnéesestreliéàuneunité
arithmétique(ouALUpourl'anglaisArithmetialandLogialUnit)ommelemontrelagure
6.7.
bus
OP 1 OP 2
Z U C A
unité arithmétique
Figure6.7L'unitéarithmétique
Cetteunitéarithmétiqueestonstituéededeuxregistresnouveaux,appelésopérandeunet
opérande deux, des iruitsombinatoires permettant de réaliserlesopérationsélémentaires
hoisiesetdesixanauxd'impulsionsappelésOP1,OP2,Z,U,Cet A:
L'impulsionOP1(pourOPérande 1) permet detransférerleontenudu busdes données
dansleregistreopérande un.
L'impulsionOP2(pourOPérande 2) permet detransférerleontenudu busdes données
dansleregistreopérande deux.
L'impulsion Z (pour Zéro) permet de transférer 0sur le busdes données, e qui sert à
réinitialiserlesregistres.
L'impulsionU(pourUn) permet detransférer1surlebusdesdonnées.
L'impulsionC(pourComplémentation)permetdetransférerl'inverse(bitàbit)duontenu
duregistreOP1surlebusdesdonnées.
L'impulsionA(pourAddition)permetdetransférerdanslebusdesdonnéeslasommedes
6.2.2 Mise en ÷uvre des opérations
Considéronsmaintenantunalulateuraveunpupitredeommandepossédant
m
registresd'entrée,
m
registresdetravailetm
registresdesortie,tousdelargeurn
,puism × n
interrup-teurs pour les registresd'entrée, ainsi que
m × n
lampes pourles registresde sortie et4 × m
boutons poussoirs pour les impulsions de transfert mais aussisix nouveaux boutons poussoirs
pourdélenherlesimpulsionsOP1,OP2,Z,U,CetA.
Supposonsquel'onveuilleadditionnertroisentiers.Ceis'eetue enquatorzeétapes:
Onplaelepremierentiersurleregistred'entrée
e 1enbasulantjusqu'àn
interrupteurs.
Onplaeledeuxièmeentiersurleregistred'entrée
e 2enbasulantjusqu'àn
interrupteurs.
Onplaeletroisièmeentiersurleregistred'entrée
e 3enbasulantjusqu'àn
interrupteurs.
Onappuie surlebouton E1,e qui apoureet detransmettrel'information duregistre
e 1surlebusdesdonnées.
OnappuiesurleboutonOP1,equiapoureetdetransmettreetteinformationdansle
registre
op 1.
Onappuie surlebouton E2,e qui apoureet detransmettrel'information duregistre
e 2surlebusdesdonnées.
On appuie sur le bouton OP2, e qui a pour eet de transmettre ette information au
registre
op 2.
Onappuiesur lebouton A,e quiapoureetd'additionnerlesdeuxpremiersentiers et
d'enplaerlerésultatsurlebusdesdonnées.
On appuie sur le bouton OP1, e qui a pour eet de transmettre ette somme partielle
dansleregistre
op 1.
Onappuie surlebouton E3,e qui apoureet detransmettrel'information duregistre
e 3danslebusdesdonnées.
OnappuiesurleboutonOP2,equiapoureetdetransmettreetteinformationdansle
registre
op 2.
OnappuiesurleboutonA,equiapoureetd'additionnerlestroisentiersetd'enplaer
lerésultatsurlebusdesdonnées.
Onappuiesurlebouton S1,equiapoureetdetransmettrelerésultatdansleregistre
s 1.
Onlitlerésultat(enbinaire)surleregistredesortieun.
Onpeutsedemanderquelestl'intérêtd'untelalulateurdenosjours.Detelsalulateurs
életroniquesont eetivementexisté. Leur intérêtne résidait évidemmentpas dansles étapes
detransfert.L'intérêtseomprendlorsqu'onappuiedeuxfoissurleboutond'addition.Pourune
largeurdebusassezgrande,eetueruneadditionàlamainprendraitbeauoupdetempsalors
quedansunalulateuréletroniqueelleesteetuéerapidementetsansrisqued'erreur.
Denosjoursils'agitd'uneétapedanslaoneptiond'unalulateuréletroniqueou,mieux,
6.3 Historique
6.3.1 Calulateurs à pupitre de ommande
On peututiliser unalulateuréletronique,l'analoguede nosalulettesquatreopérations
atuelles, implémentantuniquementquelques opérations maiseetuant elles-i àune vitesse
biensupérieureàelledesalulateursméaniquesdel'époque.Lespremiersalulateurséletro-
méaniqueset életroniquessontréaliséesaveunpupitredeommande.
Nous avonsvu qu'Atanasoffaonçu le premieralulateur életronique,auxÉtats-Unis, Atanaso
en1939.Auprintemps1942,AtanasoffetBerryahèventlaréalisationd'untelalulateur,
onnusouslenomdeABC(Atanaso-BerryComputer).L'opérateurleontrle,étapeparétape,
àpartird'uneonsole.
Lesopérateursdel'ENIAC(1945)disposentdetrois
hh
tablesdefontions
ii
,onstituéespar ENIAC
les panneaux mobiles, pour introduire soit des nombres (e qui nous intéressera ii), soit des
instrutionsdanslealulateur.Chaquetabledefontionpeutenregistrer104informationsà14
positions(unnombrede12hiresetsonsigne,oudeuxnombresdesixhiresetdeuxsignes).
Il faut aller devant le tableau deommande et introduire, hireaprès hire, les nombres
(oulesinstrutions)entournantàlamaindesommutateursàadrans:4368ommutateursà
positionnerpourlamiseen÷uvreomplètedestroistables!Maisaprèsesfastidieusesopérations
initiales,lesiruitsalulateurdel'ENIACpeuventaéderàunnombre(ouuneinstrution)en
unmillièmedeseonde.L'eaitédel'ENIACreposedonlargementsurlavitessedetransfert
desdonnéeset desinstrutionsentresesdiérentesunités.
La sortiedesrésultats sefaitparleture diretedes nombres ahésparde petites lampes
témoinssurlepanneaufrontaldesaumulateurs.Cetteleturen'adesensquelorsqu'unau-
mulateuranidetravailler.
Nousvenonsdedérireunefaçond'entreretdelirelesdonnées.Enfaitlesutilisateurspeuvent
égalementfournir des données àl'ENIAC par l'intermédiaire de artes perforéeslues dans un
leteurIBMàlaadenede120artesàlaminuteetobtenirlesrésultatssurdesartesperforées
6.3.2 Transodage déimalbinaire
Poursimplier laoneptiondualulateurque nousavonsdérit,nous avonssupposéque
l'utilisateurentrelesentiersen binairebitàbit etlit lesrésultatségalementen binaire.Inon-
testablementlebinaireonstitueunobstalemajeurpourdesutilisateursordinaires.Comment
tournerettediulté?
Figure 6.8Transodagedéimalbinaire([Lig-87℄,p.228)
Stibitz s'estvite rendu ompte qu'unemahine àalulerdéimaleestbien tropomplexe
à réaliser.Durant tout l'hiver1937 et le printemps 1938, il herhe une solution simple.Puis,
soudain,ilal'idéedeserabattre surunodageéprouvé,utilisé parlesingénieursentéléphonie
depuis1930environ:le
hh
déimalodébinaireii
,enabrégéDCB.LeDCBpermetdeonserverles avantagesdéoulantdelasimpliitéinhérenteaubinaire,sansensupporterlesdeuxinonvénientsprinipaux:lalongueurdeodesomposésde0etde1etl'obligationdeonvertironstamment
lesnombresdedéimalenbinaire,puisdebinaireendéimalàlamain.
Un simpleraordementpréétablientre lestouhesdéimalesd'unlavieretunouplusieurs
deslsbinaires,ommemontrésurlagure6.8,régletoutleproblème:l'opérateurtravailleen
déimal,lamahineenmodebinaire.
6.4 Bibliographie
[Lig-87℄ Ligonnière,Robert,Préhistoireethistoire desordinateurs,RobertLaont,
6.5 Exeries
Exerie1.-Imaginonsunalulateurave2000registres delargeur 8(soit2KiO).
-1
o
)Combienfaut-il réaliser de liaisonssion n'utilisepasde bus?
-2
o
)Combienfaut-il réaliser de liaisonssion utiliseunbusdesdonnées?
Exerie2.- Dansle alulateurque nousavonsdérit,l'unité arithmétiqueomprenddeux re-
gistresarlesopérationsarithmétiquesélémentairessontunaireset binaires.
Combienfaut-ilprévoirderegistresapriorisionveutl'opération(ternaire)ommeopération
élémentaire?
Exerie3.-Dans lesexemplesdeprogrammesquenousavonsdonnés,onn'utilise pasd'autres
registresdetravailquelesregistresdel'unité arithmétique.
Dérivez le programme (mis en ÷uvre par un opérateur sur le tableau de ommande) pour
réaliser?????
Votreprogrammeutilise-t-il desregistres de travail?