Sei sulla pagina 1di 18

Ing.

Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

Computer

In linea di prin ipio un omputer ! "#olo" un enorme automa a #tati $initi% on un numero inimmaginabile di po##ibili #tati1. & di$$eren'a di un automa normale% per(% un omputer ! "programmabile". Mentre un automa reali''ato on le normali porte logi )e ! da ri$are da apo ogni *olta )e gli #i *uole $ar $are o#e di*er#e% un omputer% ba#ato #u un "programma" pu( ambiare le #ue $un'ioni ambiando #olamente il #uo programma. Cambiando programmi #i )a di $ronte una po##ibilit+ di $atto in$inita di modi$i a'ioni% #en'a ambiare nulla nella #truttura $i#i a del omputer. ,ue#to #igni$i a )e lo #te##o pe''o di #ili io pu( #er*ire per e#eguire di*er#i ompiti. Ogni omputer ! un #i#tema di# reto e la*ora #olo on numeri. I #uoi ingre##i #ono o#tituiti da numeri o#- ome le #ue u# ite. .ui numeri )e ri e*e in ingre##o il omputer ! in grado di $are al oli ed altre "elabora'ioni"% al une delle /uali an )e molto ompli ate. .ui numeri )e #ta elaborando e##o ! in grado an )e di $are dei on$ronti e di "prendere delle de i#ioni"% #e ondo i ri#ultati dei on$ronti. &l uni numeri "#pe iali" a##umono% per il omputer% il #igni$i ato di " omandi". In /ue#to a#o /uando il omputer ri e*e un erto numero% e#egue un0elabora'ione% #e ri e*e un numero di*er#o e#egue un0elabora'ione di*er#a. ,ue#ti " omandi" *engono detti "istruzioni". 1n programma ! un in#ieme di i#tru'ioni )e ri#ol*e un #ingolo problema.

Hardware e software

Molti #apranno gi+ la di$$eren'a $ra )ardware e #o$tware% ma% ome #i di e% "repetita 2u*ant" 3gio*a ripetere 3i on etti44. Hardware 3"roba dura"% $erraglia4 ! /uella parte di un omputer )e #i pu( to are on mano5 software 3"roba morbida"4 ! la omponente immateriale% )e non #i to a ma ! indi#pen#abile per il #uo $un'ionamento% io! tutti i programmi )e% in#ieme% i permettono di u#are il omputer e di $are /uello )e i #er*e. 6i #olito la di#tin'ione ! e#tremamente )iara% gli uni i dubbi po##ono *enire /uando #i parla degli #trumenti tramite i /uali il #o$tware pu( e##ere "#po#tato" o memori''ato. In /ue#to a#o bi#ogna di#tinguere $ra il ontenuto% il programma% )e ! #o$tware% ed il ontenitore 3#i di e il "#upporto"4% )e ! )ardware. 7er e#empio% in un C68OM ontenente un gioo elettroni o% il di# o "! )ardware" mentre i numeri )e i #ono # ritti #opra #ono #o$tware. 90in#ieme di tutti i programmi # ritti per un omputer ! il #uo #o$tware. Molti abbre*iano la parola :ardware on :w e .o$tware on .w. 6ati I numeri )e un omputer de*e elaborare *engono )iamati "dati" 3in Ingle#e; "datum" al #ingolare% "data" al plurale4. In un #en#o molto generale il omputer ! dun/ue un "elaboratore di dati"% io! un #i#tema )e ri e*e in ingre##o dati% io! )e *engono an )e detti Input o Ingre##i % li elabora #e ondo $un'ioni omple##e determinate dai #uoi programmi% e mette in u# ita altri numeri% )e omuni ano i risultati dell0elabora'ione% )e *engono an )e detti Output o 1# ite.

Figura 1: il computer come elaboratore di dati

1.1

Larchitettura di Von Neumann

9a $onda'ione teori a dell<in$ormati a ! #tata po#ta da =o)ann >on Neumann 3=o)n4. Neumann% ung)ere#e% nato a ?udape#t nel 190@% a*e*a il titolo nobiliare di "Margattai"% )e egli #te##o ambi( nel tede# o ">on" /uando and( a la*orare in Germania. Nel 192A po#e le ba#i della teoria matemati a dei gio )i. 9a# i( la Germania per gli .tati 1niti on l<a**ento del na'i#mo e la*or( ai progetti militari )e% durante la #e onda guerra mondiale% portarono allo #*iluppo dei primi al olatori elettroni i. I primi omputer #*iluppati non erano molto di*er#i dai omputer odierni% )e ne ondi*idono tutti i "$ondamenti"% an)e #e% ome *edremo% molti omputer a*an'ati #i di# o#tano da numero#i dei on etti )e e#porremo ini'ialmente. 90ar )itettura di un omputer ! #uddi*i#a in primo luogo in due grandi #e'ioni; la C71 e la Memoria 3*edi Bigura 24. 9a #igla C71 ! l0abbre*ia'ione di "Central Pro e##ing Unit" ed ! il uore del omputer. Nella C71 ! on entrata tutta la apa it+ di elabora'ione di un omputer% ome peraltro #piega an )e il #uo nome% dato )e il termine "pro e##ing" #i tra1 >edi la 7arte 1 di /ue#to te#to% apitolo ".i#temi di# reti"

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 1 di 1A

Ing. Gabriele MONTI

www.ingmonti.it

du e bene in italiano on "elabora'ione" o an )e " al olo". 9a C71 on entra in #D an )e le apa it+ di " ontrollo" di tutte le altre unit+ pre#enti nel omputer% )e #ono da e##a oordinate e omandate. 9a memoria ! un #erbatoio di in$orma'ioni. I numeri dei /uali la C71 )a bi#ogno per e#eguire le #ue elabora'ioni #i tro*ano nella memoria. Mentre la C71 ! il #oggetto "atti*o" del omputer% la memoria ! in*e e il #oggetto "pa##i*o". .e la C71 "$a"% la memoria "#ubi# e". Naturalmente i de*e e##ere un modo per $ar pa##are numeri dalla C71 alla memoria e *i e*er#a. 7er e$$ettuare /ue#ti tra#$erimenti 0! un ter'o omponente% )e per ora abbiamo indi ato nel di#egno #olo ome "me''o di tra#mi##ione". 9a dire'ione delle $re e nel di#egno indi a )e l0in$orma'ione pu( $luire in entrambi i *er#i.

Figura 2: componenti principali di un computer 6i#po#iti*i 3de*i e4 1n termine generi o% molto u#ato nell0in$ormati a e nell0elettroni a ! "di#po#iti*o". Indi )iamo ome "dispositivo" 3device4 un /ualun/ue #otto#i#tema )ardware indi*iduabile in un omputer% )e )a una $un'ione #ingola ben de$inita. >engono )iamati "de*i e" la ta#tiera% il monitor% i #ingoli ir uiti integrati )e ompongono un omputer% la C71 #te##a% *i#ta ome omponente elettroni o ed un0in$init+ di altri #i#temi. Clo E 9a te nologia on ui #ono reali''ati i omputer ! /uella delle reti logi )e #in rone% per ui tutti i di#po#iti*i )e #ono ompre#i all0interno di un omputer ambiano #tato ontemporaneamente. Il momento in ui de*e a**enire il ambio di #tato ! #tabilito da un #egnale )e *iene di#tribuito ad ogni di#po#iti*o. .i tratta di un #egnale ad onda /uadra detto "clock" di #i#tema 3#F#tem lo E4% )e% da bra*o orologio% #in roni''a in#ieme tutti i di#po#iti*i% dettando gli in#tanti in ui #i on#idera )e e##i ambiano #tato. 8e#et 1n omputer ! un #i#tema digitale #e/uen'iale omple##o e ome tutti i #i#temi #e/uen'iali ! ne e##ario )e all0ini'io del #uo $un'ionamento e##o #i ponga in uno #tato ben pre i#o. Tutti i omponenti di un omputer% C71 ompre#a% di#pongono di un piedino di " reset". ,uando il #egnale #u /uel piedino di*enta alto il di#po#iti*o #i mette nella #ua ondi'ione ini'iale. &ll0a en#ione del omputer% o /uando l0utente preme il ta#to "re#et" #ul pannello $rontale% un #egnale di re#et *err+ propagato a tutti i di#po#iti*i pre#enti nel omputer% )e o#- potr+ partire da una ondi'ione nota.

1.1.1

Memoria di lavoro

In un omputer e#i#tono di*er#i tipi di memorie% ome a*remo modo di *edere in dettaglio. ,uella a ui $a iamo ri$erimento in /ue#to onte#to ! la o#iddetta "memoria di lavoro"% "memoria centrale" o "memoria principale"% l0uni a )e ! a ontatto diretto on la C71% o##ia )e pu( a*ere on e##a una omuni a'ione #en'a intermediari. 9a memoria di la*oro ! un in#ieme di di#po#iti*i elettroni i nei /uali po##ono e##ere mantenuti inde$initamente dei numeri binari. 9a C71 pu( #tabilire% #e ondo i omandi )e ri e*e% #e leggere o # ri*ere nella memoria. 1n0opera'ione di lettura prender+ dei bit dalla memoria e li tra#$erir+ nella C71% mentre una # rittura tra#$erir+ un numero dalla C71 alla memoria. 7er non #bagliar#i nello #tabilire #e un tra#$erimento ! di lettura o # rittura ba#ta "metter#i nei panni" della C71% alla /uale tutta la nomen latura del omputer ! ri$erita. .e mi immagino di e##ere la C71 e *oglio ri e*ere /ual o#a dalla memoria% lo "leggo"% #e *oglio modi$i are la memoria% de*o "# ri*ere". p. 2 di 1A 2005-09-2C 02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

1na # rittura an ella il ontenuto pre edente della memoria #ulla /uale inter*iene e lo #o#titui# e on /uanto pro*eniente dalla C71. 1na lettura non modi$i a in al un modo la memoria.

Indirizzo

9a memoria ! di*i#a in "lo a'ioni" in ia# una delle /uali #i pu( tenere un erto numero di bit. 1na locazione ! la por'ione minima di memoria ui la C71 pu( a*ere a e##o on una #ingola opera'ione. In tutti i a#i #igni$i ati*i la dimen#ione delle lo a'ioni di memoria ! di A bit 3un ?Fte4 2. 6un/ue la /uantit+ di memoria #i mi#ura in ?Fte. 9e C71 moderne po##ono a*ere molte lo a'ioni di memoria% milioni o miliardi. 6obbiamo tro*are il modo di permettere alla C71% )e )a il ontrollo della memoria% di #tabilire in ogni i#tante /uale #pe i$i a lo a'ione della memoria de*e e##ere utili''ata. .i ome la C71 pu( trattare #olo numeri% do*r+ di#tinguere $ra le *arie lo a'ioni on un numero% )e *iene detto "indiri''o". 90indirizzo ! il numero )e permette alla C71 di indi are #u /uale lo a'ione di memoria *uole la*orare. Tramite l0indiri''o le lo a'ioni #ono numerate on#e uti*amente% a partire dalla numero 0. Ogni lo a'ione di memoria de*e a*ere uno ed un #olo indiri''o. In ogni omputer l0)ardware de*e e##ere reali''ato in modo tale )e ogni lo a'ione di memoria% dentro uno /ual#ia#i dei ir uiti integrati 3 )ip4 )e la ompongono% #ia raggiungibile u#ando il #uo indiri''o e #olo /uello. Ogni C71 )a lo a'ioni di una erta dimen#ione. 7er e#empio nell0A0AC e nel 7ower7C le lo a'ioni #ono di A bit. Ci( #igni$i a )e la memoria in /ue#ti due tipi di C71 ! indiri''abile a ?Fte. 6i on#eguen'a la memoria di /ue#te C71 #i mi#ura in ?Fte o nei #uoi multipli 3E?Fte% M?Fte% ..4. 1n modello )e pu( aiutare per omprendere o#0! la memoria di la*oro ! /uello di una a##ettiera. .e immaginiamo la memoria ome una grande a##ettiera% una lo a'ione ! un a##etto% l0indiri''o ! il numero del a##etto% mentre il ?Fte di memoria )e pu( e##ere letto o # ritto ! il ontenuto del a##etto. C)iamiamo "dato o i#tru'ione" /ue#to numero. Come impli a la denomina'ione il ontenuto di una lo a'ione di memoria pu( a*ere per una C71 i due #igni$i ati di omando 3i#tru'ione4 o di numero da elaborare 3dato4.

Bigura @; memorie e a##etti@

Input/Output

1n omputer de*e #*olgere elabora'ioni ma de*e an )e omuni arne i ri#ultati al re#to del mondo. Ne e##ita dun/ue di di#po#iti*i di ingre##o 3Input4 )e prendano dall0e#terno del omputer i dati da elaborare e di di#po#iti*i di u# ita 3Output4 )e re#titui# ano all0e#terno i ri#ultati. ,ualun/ue $orma abbiano gli ingre##i )e *ogliamo $ar elaborare ad un omputer% e##i de*ono e##ere in /ual )e modo tra#$ormati in numeri. &nalogamente% an )e #e otteniamo ri#ultati da un omputer #otto $orme di*er#e 3e#. #tampa #u arta% *i#uali''a'ione #u monitor ..4% il " uore" del omputer )a prodotto /uei ri#ultati ome numeri% )e #ono #tati #u e##i*amente tra#$ormati. Oltre alla memoria ed alla C71 dobbiamo per i( indi*iduare% all0interno del omputer% an )e una o piG unit+ di Input H Output 3IHO% #i legga "ai-I"% all0Ingle#e% per )D tutti $anno o#-4. 9e unit+ IHO #ono di#po#iti*i numeri i% in grado di o2 Esistono alcuni microcontrollori (esempio 8051) che permettono di accedere direttamente a singoli bit dei loro memoria interna (memoria "bit addressable"). Dunque la defini ione di "loca ione" appena enunciata implicherebbe una dimensio ! ne di un bit per le loca ioni. "er#$ dato che le one di memoria "bit addressable" sono ben determinate e molto piccole$ anche in questi microcontrollori si considera che le loca ioni siano di 8 bit. @ In /ue#ta ed in tutte le altre $igure di /ue#to te#to la memoria ! indi ata on gli indiri''i minori in alto. ,ue#ta ! una # elta per#onale dell0&utore% per )D gli ri#ulta piG naturale5 peraltro in altri te#ti e nella do umenta'ione di al une a#e o#truttri i #i tro*ano di#egni organi''ati al ontrario.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. @ di 1A

Ing. Gabriele MONTI

www.ingmonti.it

muni are on la C71% )e on*ertono le in$orma'ioni del mondo e#terno e #i pre#entano alla C71 ome #e $o##ero memorie. Come indi ato nella Bigura J% la C71 non *ede direttamente la ta#tiera o il monitor% ma un di#po#iti*o elettroni o% un ir uito integrato di IHO% $atto appo#ta per poter omuni are on la C71. Il ir uito di IHO #i omporta% dal punto di *i#ta elettri o% e#attamente ome una memoria% #i "tra*e#te" in /ual )e modo da memoria. 7er /ue#to la omuni a'ione on i di#po#iti*i !% dal punto di *i#ta della C71% a##olutamente analoga a /uella on la memoria.
%&alternati'a a questo approccio ( che il dispositi'o possa comunicare direttamente con la memoria$ come fa l&hard dis) a destra nella figura$ ma questo ( un caso particolare che 'edremo nel pi* a'anti e che per un bel po& potremo dimenticare.

Nella $igura 0! an )e di#egnato un on$ine tratteggiato. ,uel on$ine orri#ponde gro##omodo alla # atola del omputer% )e ra )iude le #ue unit+ piG importanti. 9a # atola del omputer *iene detta " Unit Centrale"% e /uello )e 0! "$uori" ome la ta#tiera o il monitor *engono detti " periferic e".

Figura !: comunicazioni con l"esterno

Interfacce

In gergo te ni o K # ienti$i o i( )e #ta al on$ine $ra due #i#temi e on#ente loro di # ambiar#i in$orma'ioni% energia o materia *iene de$inito "interfaccia". ,uando #i parla dell0ar )itettura di un omputer un0inter$a ia ! l0in#ieme dei di#po#iti*i )e permettono ad un omputer di omuni are on l0e#terno. 1na aratteri#ti a importante di i( )e *iene )iamato inter$a ia ! )e le modalit+ dello # ambio di in$orma'ioni attra*er#o di e##a #ono #empre ben de$inite e #pe##o odi$i ate in *ere e proprie normati*e% rati$i ate da organi#mi interna'ionali di normali''a'ione. L#empi; inter$a ia #eriale 8.-2@2 3norma eme##a da LI& e da IT14% inter$a ia parallela Centroni # 3"#tandard di $atto" della ditta Centroni #% una inter$a ia di grande di$$u#ione " opiata" da tutti gli altri4. .i noti )e il termine )a pre#o piede an )e nel mondo #o$tware% ed indi a l0in#ieme delle on*en'ioni u#ate per $ar omuni are $ra loro due "pe''i di #o$tware".

1.1.2

Bus

>ediamo ora ome ! $atto /uel "me''o di tra#mi##ione" )e permette ai numeri di *iaggiare attra*er#o al omputer. Il me''o di tra#mi##ione ! ompo#to da #empli i linee di materiale onduttore% $ili% ia# uno dei /uali tra#mette un bit d0in$orma'ione. Il bit *iene rappre#entato on il *alore di una ten#ione elettri a% di*er#a #e ondo il modello di C71 utili''ato. Nella #tragrande maggioran'a dei a#i #i on#idera )e il bit #ia "0" /uando la ten#ione ! *i ina allo 'ero% mentre #i on#idera )e la linea del bu# a##uma il *alore "1" /uando la ten#ione ! *i ina alla ten#ione di alimenta'ione del #i#tema. 90in#ieme di /ue#te linee *iene detto "bu#". In ogni omputer *i #ono di*er#i tipi di bu#. 1n bus ! per i( un $a# io di $ili paralleli )e di#tribui# e le in$orma'ioni a tutti i di#po#iti*i )ardware )e #ono ontenuti in un omputerJ. 6ato )e la C71 ! il entro di ontrollo del omputer% tutti i prin ipali bu# pa##ano per la C71% ogni $ilo di /ue#ti bu# ! ollegato ad un piedino del mi ropro e##ore. 6ata ?u# In ogni omputer #ar+ indi#pen#abile a*ere un bu# per tra#portare /uelle in$orma'ioni )e de*ono $luire da e per la memoria di la*oro. ,ue#to bu# *iene detto "data bus" 3bu# dei dati4.
J "bu#" deri*a dalla parola latina "omnibu#"% )e #igni$i a "a tutti"

p. J di 1A

2005-09-2C

02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

&ddre## ?u# Oltre al data bu# ! omodo a*ere un altro bu#% )e in ogni i#tante tenga tra ia di /ual ! la lo a'ione di memoria il ui ontenuto *iene tra#$erito #ul data bu#. ,ue#to bu# ontiene #olo indiri''i e di on#eguen'a *iene detto " address bus". 6ato )e la C71 )a il ontrollo di tutto i( )e a ade in un omputer% de ide /uale de*e e##ere la lo a'ione indiri''ata in ogni i#tante. 7er /ue#ta ragione l0addre## bu# pu( e##ere # ritto #olo dalla C71. L o per )D nella Bigura 5 la $re ia *a #olo in una dire'ione. Nella #te##a $igura le $re e gro##e rappre#entano $a# i di $ili% /uelle pi ole $ili #ingoli. Control "?u#" &bbiamo gi+ detto )e la C71 )a la re#pon#abilit+ di omandare il $un'ionamento di ia# uno dei di#po#iti*i pre#enti nel omputer. 90uni o me''o )e )a per adempiere a /ue#to ompito ! di di#porre di al uni $ili in ui immettere in$orma'ioni binarie di ontrollo. Come e#empio di uno di /ue#ti $ili #i pu( prendere /uello ollegato al piedino 8HM # soprassegnato 3$ead o #rite negato della C71. Con /ue#to piedino la C71 pu( indi are alla memoria #e l0opera'ione in or#o ! una lettura od una # rittura. .e 8HM # soprassegnato ! al li*ello alto il tra#$erimento de*e e##ere in lettura 38ead4% in # rittura 3Mrite4 #e ! ba##o. Ogni C71 )a uno o piG piedini dedi ati a /ue#to # opo% an )e #e non ! detto )e il nome ed il $un'ionamento nel dettaglio #iano e#attamente ome de# ritto. &ltre linee di ontrollo di una C71% delle /uali tratteremo molto piG a*anti% #ono; interrupt% 6M&% )and#)aEe .. . Molti )iamano l0in#ieme di /ue#ti $ili " ontrol bu#"5 peraltro /ue#to nome non ! del tutto orretto% dato )e l0in#ieme delle linee i ontrollo non ! un *ero bu# ome gli altri. In$atti in ogni $ilo di un "*ero" bu# pa##ano bit )e $anno parte della #te##a in$orma'ione% mentre in /ue#to a#o le linee di ontrollo )anno ia# una un #igni$i ato di*er#o da tutte le altre% portano in$orma'ioni "# orrelate". Inoltre al une linee del ontrol "bu#" potrebbero e##ere del tutto inutili per erti di#po#iti*i% ome e*iden'iato an )e nella Bigura 5% o*e il ir uito n.2 non u#a al una linea di ontrollo. 7er /ue#to nel pro#ieguo di /ue#to te#to #i pre$erir+ parlare di "linee di ontrollo" piutto#to )e di ontrol "bu#".

Bigura 5; i bu# in un omputer La velocit con cui un computer ha accesso alle informazioni dipende anche dalle caratteristiche dei bus. Nella Figura 6 disegnato il segnale che percorre una linea di un bus! nel periodo di tempo in cui essa deve cambiare di va" lore da zero a uno. #isegnato con tratteggio il segnale ideale! $uello che sarebbe il sogno del progettista elettronico. %i tratta di uno &scatto& istantaneo e &pulito& da un valore all'altro. Naturalmente non $uesto ci( che accade nella vita reale! ove facile incontrare segnali come $uello disegnato a tratto pie" no. )l sistema costituito dalla linea di bus e dai circuiti elettronici che la guidano comincia! al tempo zero! un transitorio! du" rante il $uale il segnale subisce variazioni repentine e di grande entit. *oi! dopo un certo periodo che dipende dalla costante di tempo del sistema! il segnale si assesta e rimane vicino al valore ideale. )l tempo di assestamento +tset, il tempo dopo il $uale si ragionevolmente certi che il segnale non uscir pi- da una certa banda intorno al valore ideale di regime +indicata con due segmenti a tratteggio diverso,. 02 Computer.odt >er. 0.9.0 2005-09-2C p. 5 di 1A

Ing. Gabriele MONTI

www.ingmonti.it

tset dipende da molti parametri! fra i $uali il pi- importante la lunghezza della linea di bus. *i- lunga la linea! pi- lungo il suo tempo di assestamento. .uesta la ragione per cui l'elettronica pi- veloce di un computer deve essere concentrata in posizioni vicine alla /*0! idealmente al suo interno. *er $uesto ed altri fattori la memoria! che dista dalla /*0 una decina di cm! molto pi- lenta nell'acceso che non i registri! che sono all'interno della /*0 e non distano fra di loro pi- di 2 mm.

Figura 61 grafico di un segnale ideale e di un segnale reale +realistico, su un bus.

1.1.2

)struzioni e dati

Come abbiamo gi+ detto il omputer% o meglio la #ua C71% de*e e##ere in grado di ri e*ere ed interpretare dei numeri "#pe iali" )e #igni$i ano parti olari omandi da e#eguire. ,ue#ti omandi *engono detti "i#tru'ioni di ma )ina" o "i#tru'ioni". 1n0istruzione di macc ina ! uno dei omandi elementari )e una C71 pu( a ettare. 90i#tru'ione ! un omando "atomi o" per una C71; non e#i#tono omandi piG "pi oli" di un0i#tru'ione di ma )ina. Ogni tipo di C71 )a le #ue i#tru'ioni di ma )ina% di*er#e da /uelle degli altri tipi. 1na C71 pu( " apire" #olo le i#tru'ioni di ma )ina )e le *engono $ornite #otto $orma di numeri. 6ata la pre edente de$ini'ione di odi e% #i pu( dire )e i numeri )e rappre#entano le i#tru'ioni #ono i " odi i" di /uelle i#tru'ioni. 7er /ue#ti numeri #i parla per i( di " odi e operati*o". 1n codice operativo 3op code4 ! un numero )e rappre#enta per una C71 un0i#tru'ione da e#eguire. Co#- ome un odi e &.CII ! un numero )e rappre#enta una lettera% un odi e operati*o ! un numero )e rappre#enta un0i#tru'ione di ma )ina ed indi a alla C71 /uale de*e e#eguire. 1n0i#tru'ione ! uno dei pi oli "mattoni" )e i programmatori u#ano per o#truire tutti i programmi.
Esempio: L'istruzione NOP appartiene al set delle istruzioni della CPU 8086. La funzione dell'istruzione NOP di non far niente (Not Operate . !l suo "odi"e operati#o $%%. &e la CPU ri"e#e il numero $%% "ome "odi"e della prossima istruzione da ese'uire( ese'ue un'istruzione NOP ("io non fa niente .

Formato dell'istruzione di macchina

3lcune /*0 hanno istruzioni di diverse dimensioni! altre di dimensioni fisse. *er esempio le istruzioni dell'4546 possono avere una lunghezza variabile da uno a sei B6te! mentre le /*0 di tipo 7)%/ 8 hanno spesso istruzioni di lunghezza fissa! di 22 o 69 bit. :gni istruzione pu( essere divisa in due parti +&campi&,. 0na dedicata al codice operativo! l'altra parte agli operandi. L'opcode indica $uale istruzione deve essere eseguita! mentre gli operandi indicano i valori che devono essere usati per l'ela" borazione. /ome esempio prendiamo l'istruzione dell'4546 M:; 3;! 2! la cui versione in linguaggio macchina abbiamo gi visto essere B45255. B4 il codice operativo dell'istruzione! che dice che si tratta di un trasferimento +M:<, che ha come destinazione il registro 3;. 5255 il numero 2! scritto in un modo che spiegheremo pi- avanti! cio l'operando dell'istruzione. )l numero degli operandi va da zero a tre! dipendendo dall'istruzione e dal tipo di /*0. *er esempio l'4546 ha istruzioni che accettano fino a due operandi! ma uno solo di essi pu( essere in memoria. 3l contrario le /*0 7)%/ accettano usualmente istruzioni a tre operandi. Nella =abella 1 si possono esaminare alcuni codici operativi della /*0 4546. I#tru'ione NO7 Op ode 3e#ade imale4 90

8 per la definizione di 7)%/ vedi pi- avanti

p. C di 1A

2005-09-2C

02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005 MO> &66 =M7 AA 3ed altri4 00 3ed altri4 L9 3ed altri4

Computer

www.ingmonti.it

%abella 1: Codici operativi di alcune istruzioni &'&(

1.1.9

*rogrammi

90in#ieme delle i#tru'ioni )e #er*ono a #*olgere un ben determinato ompito #i )iama " programma". 9e por'ioni di un programma *engono #pe##o dette "codice" 3code4% on nome un po0 improprio ma )e *iene molto u#ato% an )e in /ue#to te#to. ,uando un programma ! in or#o di elabora'ione #u di un omputer #i di e )e #ta " eseguendo" 3i# eNe uting4% on termine un po0 piG ollo/uiale #i di e )e #ta "girando" 3i# running4. 6urante l0e#e u'ione di un programma la C71 )a bi#ogno di numeri da elaborare% )e potr+ prendere dalla memoria. 7er e#empio le potrebbe e##ere ri )ie#to di $are la #omma $ra due numeri. I numeri da #ommare non #ono il odi e di niente% #ono #olo due #empli i numeri% dei /uali #i *uole #apere la #omma% io! #ono /uelli )e abbiamo de$inito "dati". I omputer on ar )itettura di tipo >on Neumann on#er*ano nella #te##a memoria #ia le i#tru'ioni di programma )e i dati. L#i#tono altri tipi di ar )itetture )e non ri#pettano /ue#ta ondi'ione% ma i omputer alla >on Neumann #ono anora di gran lunga i piG di$$u#i. 6un/ue le C71 alla >on Neumann u#ano la #te##a memoria #ia per apire /uali omandi de*ono e#eguire% #ia per ottenere i dati )e de*ono elaborare. Il problema !; ome la $a C71 a di#tinguere $ra dati e i#tru'ioniO 9a ri#po#ta $ra un po0% per ora ! importante #ottolineare )e ! indi#pen#abile di#tinguere bene% $in da #ubito% $ra i#tru'ioni e dati% per )D non apire la di$$eren'a porta a $are errori gra*i e $ondamentali.

Set d'istruzioni

90in#ieme di tutte le i#tru'ioni di ma )ina di una C71 ! detto " set d"istruzioni" di /uella C71 3in Ingle#e "in#ieme" #i di e appunto "#et"4. In &ppendi e &@ #i pu( *edere il #et d0i#tru'ioni di una C71 A0AC. Ogni modello di C71 )a il #uo #et d0i#tru'ioni. C71 on lo #te##o #et d0i#tru'ioni po##ono e#eguire lo #te##o programma #en'a bi#ogno di ambiarlo in al un modo.

Famiglie di CPU e compatibilit binaria

,uando il produttore di una C71 ne reali''a una nuo*a% piG aggiornata e piG potente% $a in modo )e il #et d0i#tru'ioni della nuo*a omprenda an )e tutto /uello della *e )ia. &n )e i odi i operati*i delle *e )ie i#tru'ioni rimangono e#attamente gli #te##i nella nuo*a C71. In /ue#to modo tutto il #o$tware # ritto per la *e )ia C71 pu( girare #en'a aluna modi$i a an )e nella nuo*a. ,ue#ta aratteri#ti a della nuo*a C71 *iene detta " ompatibilit+ binaria" on la *e )ia. .pe##o i produttori )e *ogliono atturare una $etta di mer ato di una importante C71 on orrente reali''ano le loro C71 on lo #te##o #et d0i#tru'ioni e gli #te##i odi i operati*i% in modo )e #ia a##i urata la ompatibilit+ binaria. In /ue#to a#o le C71 *engono dette " ompatibili". Tutte le C71 )e #ono ompatibili a li*ello binario *engono a $ar parte della #te##a "$amiglia" di C71. Il #et d0i#tru'ioni delle C71 piG moderne di una $amiglia #ar+ piG e#te#o di /uello delle *e )ie% on#iderandolo ome un in#ieme lo in luder+ 3*edi Bigura P4. Il produttore in$atti introdurr+ nuo*e i#tru'ioni ad ogni nuo*a *er#ione% dato )e pu( di#porre di te nologie piG moderne% )e gli permettono di reali''are un maggior numero di tran#i#tor #ul )ip. Naturalmente il odi e # ritto per un nuo*a C71 non ! detto )e #ia ompatibile on una *e )ia. ?a#ta )e una #ola i#tru'ione di un programma #ia pre#ente nel #et d0i#tru'ioni della C71 nuo*a% ma non in /uello della *e )ia% per $ar #)e il programma non po##a piG girare #ulla *e )ia.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. P di 1A

Ing. Gabriele MONTI

www.ingmonti.it

Bigura P; #et d0i#tru'ioni della $amiglia A0QAC

Linguaggio macchina

1n programma ! dun/ue $atto di numeri. 1n modo% brutale e $olle% di programmare una C71 ! /uello di metter#i a # ri*ere in $orma numeri a i odi i operati*i dei programmi )e #i *ogliono reali''are. ,ue#to modo di programmare ! detto la*orare in "linguaggio macc ina" 3ma )ine ode4 ed ! #tato /ue#to il la*oro dei primi##imi programmatori. 7er $ortuna% e per la #anit+ mentale dell0umanit+% tutto i( non ! durato molto. .in dai primi #tadi dello #*iluppo dell0in$ormati a il ompito di tradurre i programmi in odi i operati*i ! #tato a$$idato ai omputer% tramite altri programmi. &lle per#one ! #tato ri#er*ato un modo piG #imboli o ed "umano" di e#primere le i#tru'ioni di ma )ina. ,ue#to modo ! il "linguaggio &##emblF" e )e a*remo modo di *edere on molto dettaglio piG a*anti. Come e#empio *ediamo ome #ono odi$i ate le i#tru'ioni in linguaggio ma )ina A0AC )e $anno la #omma 2 R 2;
)8 0* 00 0/ 0* 00 (+O, -.( * (-00 -.( *

9e i#tru'ioni in linguaggio ma )ina pre edenti #ono # ritte in $orma e#ade imale5 $ra parente#i ! indi ata la $orma detta "mnemoni a"% in &##emblF. machine code The representation of a computer program which is actually read and interpreted by the computer. A program in machine code consists of a sequence of machine instructions (possibly interspersed with data). (..)The collection of all possible instructions for a particular computer is known as its "instruction set". da BO96OC% t)e Bree On-line 6i tionarF o$ Computing 3in )ttp;HH$oldo .orgHH4

L'esecuzione di un pro ramma

1n programma ! un in#ieme di i#tru'ioni in linguaggio ma )ina. Nei omputer alla >on Neumann e##o #i tro*a% #otto $orma di in#ieme di odi i operati*i% in lo a'ioni ontigue della memoria di la*oro. &ll0indiri''o #u e##i*o a /uello do*e $ini# e un0i#tru'ione ini'ia l0i#tru'ione )e do*r+ e##ere e#eguita immediatamente dopo. ,uando il omputer *iene a e#o la C71 prende dalla memoria il odi e della prima i#tru'ione )e de*e e#eguire% poi la e#egue% prende il odi e della #e onda% la e#egue% poi pro#egue on la ter'a .. e ontinua o#- per #empre. 90ordine on ui le i#tru'ioni di un programma *engono e#eguite *iene detto " flusso" di /uel programma. 6i norma il $lu##o di un programma pro ede per i( da un0i#tru'ione a /uella )e #i tro*a #ubito dopo nella memoriaC

Fetch e execute

9a C71 /uindi ontinua in#tan abilmente a $are /ue#te due o#e% pa##a ontinuamente $ra /ue#ti due #tati; 14 & /ui#i'ione della pro##ima i#tru'ione da e#eguire 24 L#e u'ione dell0i#tru'ione 9a $a#e 14 *iene detta $a#e di "fetc "% la 24 $a#e di "e)ecute". Il *erbo to $et ) in Ingle#e #igni$i a "andare a prendere" ed ! al/uanto e#pli ati*o% an ora piG #igni$i ati*o ! "eNe ute"S 6un/ue in ogni i#tante del #uo $un'ionamento la C71 #i tro*a #empre in uno di /ue#ti due #tati; $et ) o eNe ute.

+ a'remo modo di 'edere che questo flusso ,equen iale pu# essere spe ato con le istru ioni di salto.

p. A di 1A

2005-09-2C

02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

Figura &: *tati di fetc e e)ecute+ & /ue#to punto )a #en#o por#i la domanda; " ome $a la C71 a pro urar#i il odi e operati*o dell0i#tru'ione da e#eguireO". Il me ani#mo ! #empli e ma "diaboli o"% ome altri )e *edremo in #eguito. ?i#ogna )e la C71 #i ri ordi #empre l0indiri''o della lo a'ione alla /uale tro*er+ il odi e operati*o della pro##ima i#tru'ione da e#eguire. 7er #apere do*e ! la pro##ima i#tru'ione da e#eguire la C71 de*e a*ere al #uo interno una #orta di memoria. ,ue#to tipo di "memoria"% )e non ! una lo a'ione di memoria prin ipale% per )D ! all0interno della C71% *iene detta " registro". &ll0interno di una C71 e#i#tono molti regi#tri% on molti # opi. 1ni dei tanti regi#tri #er*e per memori''are l0indiri''o della pro##ima i#tru'ione da e#eguire. C)iameremo "Program Counter" 3 ontatore di programma4 il regi#tro )e "punta" #empre alla lo a'ione in memoria o*e #i tro*a la pro##ima i#tru'ione da e#eguire. &ll0interno del 7rogram Counter i #ar+ in ogni i#tante l0indiri''o della lo a'ione nella /uale la C71 potr+ tro*are il odi e operati*o della pro##ima i#tru'ione da e#eguire. 6urante la $a#e di $et ) la C71 e#eguir+ /ue#ti pa##i; 14 $ar+ un a e##o alla memoria% all0indiri''o indi ato dal 7rogram Counter 24 legger+ dalla memoria l0op ode dell0i#tru'ione da e#eguire e lo porter+ al #uo interno @4 aggiorner+ il ontenuto del 7rogram Counter% in modo )e alla pro##ima $a#e di $et ) e##o punti alla lo a'ione #u e##i*a a /uella do*e $ini*a l0i#tru'ione appena pre#a. 6ato )e il programma *iene memori''ato in lo a'ioni #u e##i*e% alla $ine della $a#e di $et ) il 7rogram Counter punter+ alla pro##ima i#tru'ione da e#eguire. 6i /uello )e a ade durante la $a#e di eNe ute parleremo #u e##i*amente% ma /uando e##a #ar+ $inita la pro##ima $et ) *err+ $atta all0indiri''o indi ato dal 7rogram Counter% )e era #tato gi+ #i#temato. Co#- il programma "*a a*anti da #olo" e#eguendo in modo automati o un0i#tru'ione dopo l0altra% nell0ordine on ui #ono #tate # ritte in memoria. 9a Bigura 9 illu#tra /ue#to $un'ionamento. Ini'ialmente il 7rogram Counter punta alla lo a'ione P0 3punto 1 della $igura4. Il odi e operati*o della prima i#tru'ione *iene letto dall0indiri''o P0. .i tratta del numero 1JJ 390)4% odi e operati*o dell0i#tru'ione NO7 dell0A0AC. 6opo a*er letto il ontenuto della lo a'ione P0 il 7rogram Counter *iene automati amente in rementato e di*enta P1 3punto 2 di $igura4. 7oi 0! l0eNe ute della NO7 3 )e non $a niente4% in$ine il nuo*o $et ) alla lo a'ione P1% do*e i #ar+ il primo ?Fte della #u e##i*a i#tru'ione% )e% per un A0AC% ! una MO> &Q% 2.

Figura ,: fase di fetc e Program Counter


%&unico dubbio che ci rimane da fugare ( questo- "do'e comincia tutto." /uando accendo il computer do'e punta il "rogram 0ounter. %a risposta ( semplice- "ad una loca ione fissa$ stabilita dal costruttore della 0"1". "er esempio la prima istru ione che un 808+ esegue dopo che ha rice'uto un segnale di reset si tro'a all&indiri o 2220h. %a prima cosa che fa un 808+ dopo il reset ( caricare il suo "rogram 0ounter con l&indi! ri o 02220h. 3 partire da quella loca ione si tro'a un programma che fa parte del ,istema 4perati'o ('edi oltre) e che pro''ede a caricare dall&hard dis) tutto il resto del soft5are che permette al computer di fun ionare. 6atural! mente l&hard5are del computer do'r7 essere fatto in modo che all&indiri o 22220h corrisponda una loca io! ne di memoria che non si cancella quando il computer 'iene spento (849$ 'edi in seguito).

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 9 di 1A

Ing. Gabriele MONTI

www.ingmonti.it

Ora po##iamo ri#pondere alla domanda $atta pre edentemente; "Come $a la C71 a di#tinguere $ra i#tru'ioni e dati% *i#to )e #ono mantenuti nella #te##a memoriaO". 9a ri#po#ta a /ue#to punto do*rebbe e##ere )iara. 6ato )e le i#tru'ioni *engono ari ate #olo durante la $a#e di $et ) la di#tin'ione dipende dallo #tato della C71. .e la C71 ! in $a#e di $et ) i numeri )e pa##ano #ul data bu# #ono i#tru'ioni% #e ! in $a#e di eNe ute #ono dati.
%a maggior parte delle 0"1$ 808+ compreso$ ha istru ioni di dimensione 'ariabile. %a parte ini iale del codice operati'o indica alla 01 di che tipo ( l&opera ione. 0os: la fase di fetch pu# proseguire e caricare nel registro d&istru ione pi* di una loca ione. ;ediamo alcuni esempi per 808+$ nei quali si pu# notare come istru ioni con operandi di'ersi$ in numero e tipo$ abbiano lunghe e di'erse-ssem1l2 NOP +O, -.( ). Lin'ua''io ma""3ina 40 8) C6 "ommento Un'istruzione senza operandi5 un )2te di lun'3ezza Un'istruzione fra due re'istri( 8) il "odi"e ope7 rati#o( C6 indi"a "3e l'istruzione la#ora su -. e ).. Lun'3ezza due )2te Un'istruzione "on due operandi: un re'istro da 8 1it ed un numero da trasferire "on a""esso immedia7 to. L'op"ode )0 indi"a "3e una +O, immediata "on destinazione -L5 poi se'ue 0*( "3e l'operando( "3e pu8 essere un 9ualsiasi numero da 8 1it. Lun7 '3ezza due )2te. La stessa di prima "on trasferimento a $6 1it. L'op"ode )8( di#erso dal pre"edente per"3: indi"a un'operazione a $6 1it "on risultato in -.. L'ope7 rando sempre *( ma 9uesta #olta prende * )2te (0*00 il numero 000* s"ritto dal )2te 1asso a 9uello alto . Lun'3ezza tre )2te. !struzione "on indirizzamento tramite ). ed a""esso immediato al se"ondo operando (* .. Lun'3ezza % )2te. !struzione "on un a""esso alla memoria( alla lo"a7 zione 003( ed un operando ?fisso? a $6 1it( di #a7 lore *. L'op"ode prende due )2te: C>06. Poi #en'ono 'li operandi: 0000 l'indirizzo e 000* (prima la parte 1assa . Lun'3ezza 6 )2te.

+O, -L( *

)0 0*

+O, -.( *

)8 0*00

+O, ;ord ptr <).=( *

C>0> 0*00

+O, ;ord ptr 0&:<003=( * C>06 0000 0*00

1.1.8

/*0

&n )e all0interno della C71 #i po##ono indi*iduare unit+ #eparate% ia# una on le #ue $un'ioni e aratteri#ti )e o#trutti*e. &ll0interno di una C71 #i delinea per i( una *era e propria "ar )itettura"% $atta di unit+ di*er#e inter onne##e% )e onorrono a generare un #i#tema )e e#ternamente #i pre#enta ome un uni o. Ogni modello di C71 )a la #ua ar )itettura% )e determina le #ue modalit+ di $un'ionamento e le #ue pre#ta'ioni. 9e C71 odierne )anno ar )itetture di una omple##it+ #pa*ento#a% #pe##o all0interno )anno aratteri#ti )e "non >on Neumann". 9a gran parte di e##e peraltro #i pre#enta all0e#terno ome una normale C71 di tipo >on Neumann on i#tru'ioni molto potenti e *elo i nell0e#e u'ione. & partire da /ue#to punto illu#triamo l0ar )itettura di una C71 ideale% nella /uale #ono in lu#i i omponenti tipi i di tutte le C71. .i noti )e l0ar )itettura )e andremo a delineare non ! /uella di ne##una C71 e$$etti*amente e#i#tente% #pe##o #empli$i )eremo e taglieremo /ual )e angolo% l0obietti*o non ! #aper progettare C71 ma apire ome $un'ionano. Nella Bigura 10 ! riportato uno # )ema dell0ar )itettura della no#tra C71 ideale.

p. 10 di 1A

2005-09-2C

02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

Figura 1': arc itettura di una CPU tipica 9e $un'ioni )e ogni C71 de*e e##ere in grado di #*olgere #ono; - L$$ettuare tra#$erimenti di in$orma'ioni on la memoria - L$$ettuare elabora'ioni #u /uelle in$orma'ioni - L$$ettuare on$ronti ed e#eguire i#tru'ioni di*er#e in on#eguen'a di /uei on$ronti 7er e$$ettuare tra#$erimenti di in$orma'ioni #er*e /ual o#a per memori''arle prima dell0elabora'ione% per le elabora'ioni ed i on$ronti #er*e una #orta di al olatri e% per ambiare l0ordine di e#e u'ioni del programma ba#ta )e #ia po##ibile modi$i are il 7rogram Counter. In$ine i #ar+ bi#ogno di ir uiti per oordinare tutte le unit+ pre#enti nella C71. 6i on#eguen'a i omponenti )e indi*iduiamo all0interno della C71 #ono; 8egi#tri 7o#i'ioni di memoria interne alla C71 &91 1nit+ )e $a i al oli Control 1nit 1nit+ )e omanda ogni $a#e dell0e#e u'ione di ogni i#tru'ione ?u# interni Me''i di tra#mi##ione% analog)i ai bu# e#terni% tra#$eri# ono i dati all0interno della C71.

!e istri

7er reali''are le #ue $un'ioni la C71 )a bi#ogno di mantenere in$orma'ioni )e non *engono perdute% o**ero#ia ne e##ita di elementi di memoria al #uo interno. Ogni elemento di memoria )e ri#iede all0interno della C71 *a #otto il nome di "regi#tro". 9a di$$eren'a #o#tan'iale $ra un regi#tro ed una lo a'ione di memoria ! )e un regi#tro ! all0interno della C71% una lo a'ione di memoria all0e#terno 3/ue#ta non ! una "legge" e #i po##ono tro*are molte e e'ioni% ma per il momento po##iamo #en'0altro prenderla per buona4. Il *antaggio di a*ere la po##ibilit+ di memori''are numeri all0interno della C71 ! legato alla *elo it+ di e#e u'ione dei programmi. .e la C71 de*e $are dei al oli #u un numero% i *orr+ molto meno tempo per la*orare #u di un regi#tro )e #u una lo a'ione di memoria. 90a e##o alla memoria di la*oro ! in$atti e#tremamente piG lento dell0a e##o ai regi#tri% in /uanto ri )iede una #e/uen'a omple##a di opera'ioni% l0utili''a'ione dei bu# e l0atte#a della ri#po#ta dei )ip di memoria% )e #i #omma all0atte#a per )D i #egnali #ui bu# di*entino #tabili. 9e $un'ioni a##egnate ai regi#tri dai progetti#ti delle C71 #ono molto di*er#e.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 11 di 1A

Ing. Gabriele MONTI

www.ingmonti.it

L#i#tono regi#tri interni alle C71 )e non #ono a e##ibili tramite programma. L##i non #i po##ono u#are e#pli itamente nel programma% ma #ono utili''ati dalla C71 durante le $a#i di $et ) e di eNe ute. L##i non #ono di#ponibili al programmatore alla $ine della $a#e di eNe ute% per ui li )iameremo "regi#tri temporanei" 3gli altri #aranno regi#tri e ba#ta4. >ediamo allora /uali #ono i regi#tri piG omuni nelle *arie C71% )e metteremo nella no#tra C71 immaginaria; 8egi#tri generali .ono i regi#tri in ui #i memori''ano i ri#ultati delle opera'ioni )e la C71 #ta e#eguendo. &l uni tipi di C71 )anno regi#tri a e##ibili indi*idualmente da parte del programmatore% tramite il loro "nome"% mentre in altre% in genere le piG nuo*e% #ono di#ponibili "ban )i" di regi#tri% )e ne ontengono di*er#e de ine.
Esempio: Nell'8086 una istruzione "ome 9uesta: +O, -.( $000 fa il trasferimento del numero $000 nel re'istro -.( indi"ato "on il ?nome? "3e il pro7 'ettista della CPU 'li 3a asse'nato. Un'istruzione analo'a per il Po;erPC potre11e essere 9uesta: l3z r4( 0 (r6 se nel re'istro r6 "' il numero $000( fa il trasferimento del "ontenuto della lo"azione $000 nel re'istro ?'eneral purpose? numero 4( "3iamato per numero( #isto "3e "i sono 6* re'istri 'enerali.

Nella no#tra ar )itettura immaginaria mettiamo due #oli regi#tri generali% )e )iamiamo & e ?% on nomi #imili a /uelli dell0A0AC ma non identi i% per rimar are il $atto )e non #i #ta trattando e#pli itamente dell0ar )itettura dell0A0AC. 8egi#tri per u#o #pe i$i o 3#pe iali4 I regi#tri #pe iali #ono pre#enti in ogni C71 per # opi parti olari. .u ogni $amiglia di C71 #ono di*er#i% ome #ono $ra loro di*er#e le ar )itetture. &l uni regi#tri #ono pre#enti in tutte le ar )itetture% an )e #e #pe##o )anno nomi di*er#i da /uelli )e pre#enteremo di #eguito. 7rogram Counter &bbiamo gi+ *i#to )e mantiene #empre l0indiri''o della lo a'ione in ui la C71% all0ini'io della $a#e di $et )% potr+ tro*are il primo ?Fte della pro##ima i#tru'ione da e#eguire. & umulatore 90a umulatore ! un regi#tro nel /uale $ini# ono i ri#ultati delle opera'ioni aritmeti )e )e una C71 #*olge. Nei primi mi ropro e##ori% )e pote*ano a*ere po )i tran#i#tor al loro interno% le ar )itetture ad a umulatore erano $re/uenti. In /uei a#i ogni opera'ione della &91 #i on lude*a #empre nello #te##o regi#tro% l0a umulatore. 6all0a umulatore il ri#ultato do*e*a poi e##ere opiato nella de#tina'ione $inale on altre i#tru'ioni. Non #penderemo di piG #ul regi#tro a umulatore per )D nella $amiglia QAC ! un on etto pre#ente #olo per po )i##ime i#tru'ioni. 7er tutte le altre il ri#ultato pu( e##ere me##o nel regi#tro )e #i *uole% ed an )e direttamente in memoria. 7er /ue#ta ragione non abbiamo me##o l0a umulatore nello # )ema generale della no#tra C71. &ltre C71% ome per e#empio i mi ro ontrollori della $amiglia 7IC o /uelli della $amiglia C502% #u ui era ba#ato il Commodore CJ% #ono ba#ati #u a umulatore. .ta E pointer In ogni C71 e#i#te un regi#tro #pe iale )e #o*rintende al $un'ionamento di una parti olare area di memoria% detta #ta E. In /ue#to regi#tro% detto "stack pointer" ! #empre memori''ato il *alore dell0indiri''o dell0ultimo elemento )e ! #tato # ritto nello #ta E. 6ello #ta E #i tratter+ on grande dettaglio nel apitolo ad e##o dedi ato. 1n altro regi#tro #pe iale pre#ente in tutte le C71 ! il registro di stato% #ul /uale #i torner+ pre#to. Ogni tipo di C71 )a an )e altri regi#tri #pe iali% #u al uni di /uelli dell0A0AC #i torner+ nel apitolo dedi ato all0ar )itettura di /uella C71. 8egi#tri temporanei ,uando il progetti#ta della C71 )a bi#ogno di regi#tri nei /uali memori''are temporaneamente dei ri#ultati intermedi e non pu( $are a$$idamento #ui regi#tri normali% introdu e un regi#tro temporaneo. Noi $a iamo una o#a analoga. >ediamo di o#a abbiamo bi#ogno. 8egi#tro d0i#tru'ione ,uando #iamo in $a#e di $et ) e prendiamo l0i#tru'ione dalla memoria% do*e la mettiamoO 6obbiamo in*entar i un regi#tro. .upponiamo )e durante tutta la $a#e di eNe ute l0i#tru'ione di ma )ina #ia memori''ata in un appo#ito regi#tro% )e )iameremo "8egi#tro d0i#tru'ione" 3-n#tru tion $egi#ter 3I844. 8egi#tro dati ,uando $a iamo tra#$erimenti #ul bu# dei dati #pe##o dobbiamo an )e #*olgere delle opera'ioni #ul numero )e abbiamo letto in memoria. 7er ri ordar i )e o#a abbiamo letto% o o#a dobbiamo # ri*ere% i in*entiamo un regi#tro )e abbia ogni #uo bit atta ato ad un $ilo del data bu# e )e mo#tri in ogni i#tante alla C71 il ontenuto di /uel bu#. C)iamiamo /ue#to regi#tro "8egi#tro dati" 3.emorF /ata $egi#ter% 3M6844. 8egi#tro indiri''i Mentre $a iamo a e##o alla memoria ! ne e##ario )e l0indiri''o #u ui #i la*ora #ia #empre mantenuto #ull0addre## bu#. 6ato )e )i #tabili# e il numero da mettere #ull0addre## bu# ! la C71% per non "dimenti ar elo" dobbiamo in*entar i un regi#tro )e lo tenga memori''ato. 9o )iamiamo "8egi#tro indiri''i" 3.emorF 0ddre## $egi#ter 3M&844 p. 12 di 1A 2005-09-2C 02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

#al punto di vista elettrico gli ultimi due registri sono un po' diversi dagli altri> siccome sono collegati direttamente ai piedini esterni del microprocessore! devono essere dei &buffer&. ?anno cio transistor pi- grossi! che sono in grado di erogare cor" renti maggiori. /os@ possono far cambiare stato in tempi accettabili le linee dei bus esterni. &*remo bi#ogno di altri regi#tri temporanei% ma li introdurremo alla bi#ogna.

1.1.6

Bus interni

)n ogni /*0 ci sono diversi bus interni! alcuni dei $uali vengono detti &dedicati& +dedicated, perchA collegano direttamente fra loro solo due dispositivi. Bli altri sono &condivisi& +shared, e possono collegare molti dispositivi diversi. Naturalmente i bus dedicati saranno molto pi- veloci! ma richiedono un tal numero di fili in giro per il circuito che ne con" sumano molta area> i bus condivisi richiedono meno spazio ma significheranno trasferimenti pi- lenti. ) progettisti della /*0 dovranno fare saggi compromessi fra la velocit e lo spazio impegnato sul chip dai bus. 7er non do*er # endere troppo nel dettaglio #upponiamo )e nella no#tra C71 ideale i #ia un #olo bu# interno ondi*i#o )e ollega tutte le unit+ della C71.

1.1.C

/ontrol 0nit

9a Control 1nit 3C14 ! la parte della C71 )e ontrolla ogni pa##o della $a#e di $et ) e dell0e#e u'ione delle i#tru'ioni. Non tutte le i#tru'ioni di ma )ina *engono e#eguite dalla C71 in una #ola $a#e. Molte )anno bi#ogno di pro#eguire a pi oli pa##i% in #e/uen'e )e po##ono e##ere lung)e entinaia di $a#i. 9a C1 ! un ir uito e#tremamente ompli ato )e )a ome ingre##i l0i#tru'ione di ma )ina in $orma binaria ed al une linee )e riportano in$orma'ioni #ullo #tato degli altri di#po#iti*i. 9e u# ite della C1 #ono un gran numero di $ili )e #i ollegano on tutte le altre unit+ della C71. ,ue#ti $ili o#titui# ono delle linee di ontrollo% )e a endono o #pengono gli altri di#po#iti*i. &ttra*er#o /ue#te linee la C1 omanda le altre unit+ e le porta% un pa##o alla *olta% a reali''are le i#tru'ioni. &l uni dei $ili )e e# ono dalla C1 #ono portati an )e $uori dalla C71. In$atti la C1 pilota an )e le linee di ontrollo )e e# ono dalla C715 #i pu( ben dire )e abbia il ontrollo di tutto in omputer% non #olo della C71.

!ete di decodifica

6urante la $a#e di $et ) il odi e ma )ina dell0i#tru'ione *iene portato nel regi#tro d0i#tru'ione. 7oi la C71 do*r+ e#eguirlo% ma per poterlo $are do*r+ prima " apire" di )e i#tru'ione #i tratta. 7repo#ta a /ue#to ompito 0! un0unit+ )e #i pu( an )e on#iderare parte della C1% detta "6e odi$i atore d0i#tru'ioni". I ir uiti di /ue#ta rete #ono progettati per ri ono# ere il odi e operati*o dell0i#tru'ione e $are in modo )e la C1 po##a e#eguire la giu#ta #e/uen'a in $a#e di eNe ute% o#- )e la C71 reali''i l0i#tru'ione ri )ie#ta.
3nche se non ce ne do'rebbe essere bisogno$ si fa notare che questa rete non ( un "decoder" nel senso delle reti logiche elettroniche$ ma una rete$ ben pi* complessa di un decoder$ che s'olge la fun ione di "capire" un codice operati'o (decodificarlo).

Clo E% i li di ma )ina e C1 &n )e la C71% ome gli altri di#po#iti*i del omputer% di#porr+ di un #egnale di lo E. Oltre )e per la #in roni''a'ione on i di#po#iti*i e#terni la C71 u#a il #egnale di lo E per ambiare #tato internamente. Ogni *olta )e ambia di #tato la C71 $a un pi olo pa##o nell0e#e u'ione delle #ue i#tru'ioni. Cia# uno dei pa##i di /ue#te #e/uen'e *iene detto "ciclo di macc ina" 3in#tru tion F le4. 1n i lo di ma )ina dura da uno a po )i periodi di lo E% e% dato un modello di C71% ! #empre o#tante. 9a C1 pu( e##ere reali''ata $i#i amente on due te ni )e; in logi a ablata 3)ardwired4% io! on le te ni )e on ui #i reali''ano elettroni amente gli automi% oppure on te ni a mi roprogrammata 3mi roprogrammed4% on #trumenti )e ri ordano molto da *i ino i normali programmi% ma reali''ate in )ardware all0interno della C71.
%a tecnica microprogrammata ( tipica delle architetture tradi ionali (0<,0)$ mentre la logica cablata ( carat! teristica delle architetture 8<,0=

C1 in logi a ablata 3)ardwired4 %e la /0 in logica cablata viene progettata come un normale circuito logico se$uenziale! eventualmente partendo dall'auto" ma! effettuandone la minimizzazione! poi la sintesi con le porte logiche che sono disponibili sul chip. )l risultato un circuito estremamente complesso del $uale difficile verificare bene il funzionamento. C1 mi roprogrammata 3mi roprogrammed4

= per la defini ione di 8<,0 'edi il pi* a'anti.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 1@ di 1A

Ing. Gabriele MONTI

www.ingmonti.it

%e la /0 microprogrammata! essa una sorta di &micro"/*0& all'interno di una /*0. La se$uenza delle linee che la /0 deve attivare scritta in una memoria interna e si configura come un vero programma! con &microistruzioni& scritte in una memoria 7:M interna ed esecuzione se$uenziale. 3 differenza delle istruzioni normali il microprogramma esegue molte mi" croistruzioni contemporaneamente! per aumentare l'efficienza del processore. Le /0 microprogrammate sono pi- semplici da progettare e flessibili da &riparare& e modificare. )n linea di principio con una /0 microprogrammata si potrebbero realizzare set d'istruzioni diversi sulla stessa /*0! cambiando solo il micropro" gramma. Nel passato sono state prodotte /*0 in cui l'utente poteva cambiare il microprogramma! ma non hanno avuto suc" cesso commerciale. /on i microprogrammi relativamente facile implementare set d'istruzioni complessi! con istruzioni che eseguano se$uenze lunghe e complicate! mentre nel caso di /0 hardDired ci si deve limitare ad istruzioni pi- semplici! se non si vuole correre il rischio di errori. Le /0 in logica cablata hanno il grande vantaggio di essere pi- veloci! tanto che le istruzioni vengono eseguite in pochissimi cicli di macchina! molto spesso in un solo ciclo. #i solito $uelle istruzioni devono essere relativamente semplici! anche se ne" gli ultimi tempi! con diversi milioni di transistor a disposizione! i termini di $uesto discorso sono un po' cambiati.

Se"uenze

6un/ue una C71 $un'iona on #e/uen'e di pi oli pa##i ed e#egue le #ue i#tru'ioni un po0 alla *olta. >ediamo% in un erto dettaglio% ome la C1 do*rebbe reali''are al une tipi )e #e/uen'e della no#tra C71 in*entata. .e/uen'a di a e##o alla memoria 7er l0a e##o alla memoria ! ne e##ario utili''are un indiri''o. Come *edremo piG a*anti% /ue#to indiri''o potrebbe e##ere dentro un regi#tro% e##ere al olato in /ual )e modo od an )e e##ere # ritto direttamente nel odi e ma )ina. .upponendo di a*ere l0indiri''o% e )e #ia 22A la C1 $a e#eguire /ue#ta #e/uen'a 3*edi Bigura 114; 14 la C1 ontrolla le altre unit+ della C71 in modo )e 22A *enga # ritto nel regi#tro d0indiri''o 3M&84 24 il numero # ritto nel regi#tro d0indiri''o ompare nelle linee dell0addre## bu#% in $orma binaria% un $ilo del bu# per ogni bit. 9a relati*a lo a'ione di memoria ! abilitata al $un'ionamento @4 ontemporaneamente a i( )e a**iene nel punto 2 la C1 al'a la linea 8HM 3# soprassegnato1% omuni ando alla memoria )e il tra#$erimento #ar+ in lettura J4 la memoria mette #ul 6ata ?u# il ontenuto della lo a'ione 22A 3C024 54 la C71 attende un erto numero di tempi di lo E% per dar modo alla memoria di # ri*ere #ul bu# ed alle linee del bu# di #tabili''ar#i C4 9a C1 d+ l0ordine al regi#tro dati 3M684 di leggere il ontenuto del data bu#% memori''andolo per u#o $uturo 90a e##o alla memoria ! $inito. Il dato ! nel regi#tro dati5 da l- *err+ #u e##i*amente #mi#tato per la #ua de#tina'ione $inale. .e l0a e##o $o##e #tato in # rittura% il dato a*rebbe $atto il *iaggio oppo#to% dal regi#tro dati alla memoria% mentre la linea di ontrollo 8HM 3# soprassegnato4 #arebbe #tata tenuta ba##a% ad indi are "# rittura". 9a #e/uen'a per l0identi$i a'ione della lo a'ione tramite l0indiri''o #arebbe #tata identi a.

Figura 11: se2uenza per la lettura della locazione 22& p. 1J di 1A 2005-09-2C 02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

.e/uen'a di $et ) 9a $a#e di $et ) di un0i#tru'ione ! una lettura in memoria. 90indiri''o al /uale *a $atta la lettura ! /uello ontenuto nel 7rogram Counter. 9a #e/uen'a ! la #eguente; 14 la C1 ordina al 7rogram Counter di mettere il #uo ontenuto #ul bu# interno5 191 #ul bu# interno 24 la C1 ordina al regi#tro indiri''i di leggere il bu# interno5 191 #ul regi#tro indiri''i @4 ora 0! una #e/uen'a di a e##o in memoria in lettura% identi a a ome de# ritto pre edentemente; 191 #ull0addre## bu# J4 ontemporaneamente la C1 al'a la linea 8HM 3# soprassegnato1 54 la memoria prende il ontenuto della lo a'ione 191 31JJ T 90)% op ode di NO74 e lo mette #ul 6ata ?u#5 1JJ #ul data bu# C4 la C71 attende la #tabili''a'ione del data bu# P4 il regi#tro dati legge il data bu#5 1JJ nel regi#tro dati A4 la C1 ordina al regi#tro dati di # ri*ere il #uo ontenuto #ul bu# interno5 1JJ #ul bu# interno 94 la C1 ordina al regi#tro d0i#tru'ione di leggere il bu# interno5 1JJ nella parte "op ode" del regi#tro d0i#tru'ione. 104 il 7rogram Counter *iene aumentato di 1% per preparar#i alla pro##ima $a#e di $et ) ,ue#to on lude la $a#e di $et ); l0i#tru'ione da e#eguire ! $eli emente giunta a de#tina'ione nel regi#tro d0i#tru'ione ed il 7rogram Counter ! #tato gi+ aggiornato. Il progetti#ta della C71 $ar+ in modo )e *engano e#eguite ontemporaneamente il maggior numero po##ibile delle opera'ioni pre edenti. In /ue#to modo la C71 impieg)er+ meno i li di ma )ina per e#eguire una $a#e di $et ) e per i( #ar+ piG *elo e.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 15 di 1A

Ing. Gabriele MONTI

www.ingmonti.it

Figura 12: se2uenza di fetc dell"istruzione 34P+ &l ontrario dell0i#tru'ione NO7% )e non de*e $are niente% molte i#tru'ioni #ono piG lung)e di un ?Fte. ,uando i( a ade la C71 e$$ettuer+ piG a e##i alla memoria% uno per ogni ?Fte dell0i#tru'ione di ma )ina. Ogni *olta aumenter+ il 7rogram Counter di uno% per raggiungere in memoria il nuo*o ?Fte da leggere. &lla $ine% /uando nel regi#tro i#tru'ione i #aranno #ia l0op ode )e gli e*entuali operandi% an )e il 7rogram Counter #ar+ orrettamente aggiornato alla lo a'ione #eguente a /uella do*e #iamo arri*ati on il $et ). L0 importante rimar are il $atto )e durante la $a#e di $et ) #ul data bu# pa##ano i#tru'ioni 3 odi i operati*i4% an )e #e /uello #i )iama "data" bu#% in $ondo an )e i odi i #ono "dati"% an )e #e molto parti olariS Non 0! altro modo per leggere la pro##ima i#tru'ione da e#eguire% per )D in ogni omputer alla >on Neumann l0uni o me''o di omuni a'ione della C71 on il re#to del mondo #ono #olamente i #uoi piedini ollegati al bu# dati% #ia in ingre##o )e in u# ita. .e/uen'e di eNe ute Naturalmente i #ar+ una di*er#a #e/uen'a di eNe ute per ia# una i#tru'ione% e non tutte #aranno o#- #empli i ome /uella della NO7S ,uello )e #u ede durante la $a#e di eNe ute !; 14 l0op ode dell0i#tru'ione% giunto nel regi#tro d0i#tru'ione durante la $a#e di $et )% *iene " apito" dal de odi$i atore d0i#tru'ioni 24 omin ia la #e/uen'a di e#e u'ione% di*er#a in ba#e a /uanto de odi$i ato nella $a#e pre edente. 9a #e/uen'a di e#eu'ione pu( e##ere da molto #empli e 3 ome la NO74% a molto ompli ata 3 ome i al oli a *irgola mobile4. 9a $a#e 14 pu( omin iare an )e durante la $a#e di $et )% in parti olare in /uelle C71 )e )anno una lung)e''a *ariabile delle i#tru'ioni. In$atti la C1% dopo a*er letto il primo ?Fte dell0i#tru'ione 3l0op ode4% #apr+ /uante altre letture in memoria de*e ordinare per )D il $et ) dell0i#tru'ione #ia ompletato.

1.1.4

3L0

90&91 ! la " al olatri e" della C71% ome impli a il #uo nome di " 0rit)meti 5ogi Unit". .otto il ontrollo della C1% )e indi a le opera'ioni )e de*e ompiere% l005U reali''a /uella parte delle i#tru'ioni )e ri )iede una elabora'ione di dati. In tutte le C71 l0&91 #*olge le opera'ioni aritmeti )e di #omma e #ottra'ione $ra numeri interi. Nella maggioran'a delle C71 #*olge an )e opera'ioni di moltipli a'ione e di*i#ione $ra numeri interi% mentre le opera'ioni aritmeti )e on *irgola mobile di #olito #ono a##enti nelle C71 meno potenti% /uali i mi ro ontrollori% )e de*ono e##ere piG #empli i% dato )e de*ono o#tare molto po o. 90&91 reali''a an )e opera'ioni logi )e% /uali la &N6 e la O8 ed ! in grado di $are on$ronti $ra numeri. Il ri#ultato dei on$ronti *iene $i##ato dai $lag% in modo )e il programmatore% u#ando le i#tru'ioni )e #egnalano il *alore dei $lag% #ia in grado di $ar prendere #trade di*er#e al programma e #e onda dei ri#ultati dei on$ronti. 3l contrario della /0! che tipicamente una rete se$uenziale +non a caso deve produrre le &se$uenze& per la realizzazione delle istruzioni,! la 3L0 una rete logica di tipo combinatorio! almeno idealmente. )l compito della 3L0 infatti $uello di effettuare operazioni algebriche! che potrebbero essere eseguite da una 3L0 ideale in un solo ciclo di macchina. p. 1C di 1A 2005-09-2C 02 Computer.odt

Ing. Gabriele MONTI 1999 - 2005

Computer

www.ingmonti.it

0na 3L0 ideale non ha $uindi lo stato perchA non ha la necessit di memorizzare nulla. #ati i suoi ingressi produce sempre gli stessi risultati! indipendentemente dal passato. Nelle /*0 moderne ci sono molte 3L0! che possono mandare avanti pi- istruzioni in parallelo +su $uesto argomento si tor" ner molto pi- avanti,. Nella no#tra C71 ideale in ludiamo tre nuo*i regi#tri temporanei% )e i #ono utili per de# ri*ere il omportamento della &91 nell0e onomia dell0intera C71. 6ue di /ue#ti regi#tri #ono all0ingre##o dell0&91 e ontengono gli operandi% prele*ati da /ual )e altra parte della C71 o della memoria. Il ter'o ontiene il ri#ultato dell0opera'ione% )e *iene mantenuto in /ue#to regi#tro in atte#a di e##ere #mi#tato alla #ua de#tina'ione $inale. .i noti )e in /ue#to a#o on#ideriamo )e la &91 abbia due ingre##i ed una u# ita% an )e #e non ! a##olutamente detto )e #ia o#- nelle ar )itetture reali.

Flag
Nell0&meri a rurale la po#ta non *iene di#tribuita nella a#a ma nella #trada piG *i ina. Co#- le per#one )e non *ogliono $ar#i me''o )ilometro /ual )e *olta al giorno per *edere #e la po#ta ! arri*ata )anno in*entato un ingegno#o #i#tema. 9a a##etta della po#ta *uota )a una bandierina tenuta in /ue#ta po#i'ione; . ,uando il po#tino arri*a e mette nuo*a po#ta% al'a la bandierina o#- )e l0abitante della a#a% ol anno )iale% potr+ *edere la #ua a##etta o#-; e de idere #e ! il a#o di muo*er#i. ,ue#to #i#tema di omuni a'ione ! ba#ato #u un0uni a in$orma'ione 3bandiera4% di tipo binario 3la bandiera pu( e##ere #olo #u o giG4% )e tra#mette all0utili''atore 3abitante4 lo #tato del #i#tema 3po#ta4. Come tutti #anno in Ingle#e bandiera #i di e "$lag". In In$ormati a% per analogia on l0u#o "po#tale" delle bandiere% i bit tramite i /uali #i indi a lo #tato di un elemento del #i#tema *engono detti "$lag". 1n flag ! /uindi un bit di in$orma'ione tramite il /uale la C71 omuni a al programmatore il *eri$i ar#i di erte ondi'ioni. In parti olare la C71 pu( omuni are al programmatore o#a ! #u e##o durante l0e#e u'ione di ogni i#tru'ione attra*er#o una batteria di $lag% ontenuti in un regi#tro detto " registro di stato". 7er e#empio #e un0opera'ione di #omma )a dato luogo ad un riporto% la C71 lo indi )er+ mettendo a uno il $lag detto di " arrF" 3riporto4. &ltri $lag #i #i#temano in on#eguen'a di un on$ronto% per ui #iamo in grado di #apere #e un numero ! maggiore di un altro. &ltri $lag abilitano erte $un'ioni della C71% per ui #e il $lag *ale 1 3#i di e )e "! On"4 la C71 la*ora in un erto modo% #e ! O$$ 3*ale 'ero4 la*ora di*er#amente. Il programmatore )a a di#po#i'ione al une i#tru'ioni per $are in modo )e il programma reagi# a di*er#amente #e un $lag )a un *alore piutto#to )e un altro. In /ue#to modo i programmi po##ono prendere de i#ioni ed e#eguire i#tru'ioni di*er#e #e ondo /uanto ! #u e##o in i#tru'ioni pre edenti. Cia# uno dei $lag ontenuti nel regi#tro di #tato )a una "*ita" indipendente dagli altri% /uindi piutto#to )e di regi#tro di #tato #i do*rebbe parlare di regi#tri indipendenti della dimen#ione di un bit% uno per ogni $lag. 9a ragione per ui #i parla di regi#tro di #tato ! per )D le C71 )anno delle i#tru'ioni )e% #e #er*e% #al*ano in memoria tutti in#ieme i $lag del regi#tro di #tato. Nel no#tro di#egno della C71 il regi#tro dei $lag ! *i ino alla &91% /ue#to per )D ! la &91 )e determina il *alore della maggior parte dei $lag% i piG importanti dei /uali indi ano la ondi'ione del ri#ultato di opera'ioni aritmeti )e o logi)e.

Se"uenze di e#ecute
0na volta conosciuti tutti i componenti della /*0! con la Figura 15 sott'occhio non difficile immaginare le se$uenze che la /*0 deve realizzare per far eseguire le istruzioni. *er esercizio si pu( provare a descrivere la fase di eEecute delle seguenti istruzioni! elencate in ordine di complessit. )l funzionamento di ogni istruzione spiegato brevemente nel commento alla sua destra.
+O, -( * +O, -00 +O, +O, -( <*= -( * <*=( -( <)= 5 5 5 5 5 5 5 mette nel re'istro - il numero *. &i "onsideri "3e l'operando * sia 'i@ "ari"ato nel re'istro d'istruzione in fase di fet"3 mette nel re'istro - il numero letto alla lo"azione di indirizzo * mette in - il suo #alore iniziale( "ui #iene a''iunto * s"ri#e nella lo"azione * il #alore attuale di le''e in - il numero "ontenuto nella lo"azione il "ui indirizzo "ontenuto in )

/ome compendio sulle se$uenze della /0! si descrive di seguito la se$uenza di eEecute dell'istruzione 3## F535hG! 23h. .uesta istruzione accede all'indirizzo 35h! legge il suo contenuto! lo somma al numero 23 e scrive il risultato della somma in memoria! nuovamente all'indirizzo 35h.

02 Computer.odt

>er. 0.9.0 2005-09-2C

p. 1P di 1A

Ing. Gabriele MONTI

www.ingmonti.it

%i suppone che l'istruzione sia codificata in $uesto modo1 4556 35 23 +$uesto l'effettivo codice macchina 4546 per l'istru" zione,. #urante la fase di fetch +punti da F1G a F4G di Figura 12, la /*0 accede a tutte le locazioni dell'istruzione e la carica nel regi" stro d'istruzione. 3lla fine della fase di fetch in *./. punta alla prossima istruzione +puntoF4G di Figura 12,. )l punto FHG della se$uenza inizia l'eEecute. /on FHG e F15G l'indirizzo 35h viene messo nel registro d'indirizzo! passando per il bus interno! e &punta& alla locazione di memoria dove leggere il dato +nel punto F11G la /0 ordina una lettura,. #opo il tem" po di assestamento di bus e memoria il numero +21h, pu( essere portato nel registro dati +F12G e F12G,! poi sul bus interno +F19G,. :ra il numero 21h pu( essere copiato dal bus interno ad uno dei registri operando +F18G,. L'altro operando +di valore 23,! che dentro il registro d'istruzione! pu( essere copiato con le operazioni F16G e F18G. 3 $uesto punto la /0 ordina alla /*0 di eseguire una somma +F14G,. .uando il risultato +6B, pronto bisogna scriverlo in memoria. *er $uesto il numero deve passare sul data bus! mentre l'indirizzo gi pronto nel registro di indirizzo! dato che non cambiato dalla precedente lettura. F1HG e F25G portano il numero +6B, dal registro di risultato della 3L0 al data bus. )ntanto la /0 ordina il trasferimento in scrittura! commutando la linea 7IJ $ soprasse nato su livello basso. #opo l'attesa per l'accesso alla memoria il risultato stato scritto alla locazione voluta +F21G, e l'esecuzione dell'istruzione finita. La /*0 comincia la fase di fetch dell'istruzione successiva! all'indirizzo 1238! come indicato dal *./. .

Figura 121 esecuzione dell'istruzione 3## F535hG! 23h

Curiosit
In$ormati a Il termine "in$ormati a" ! una bella #inte#i di "in$orma'ione" ed "automati a"% in*entato in Bran ia ed u#ato in tutti i pae#i europei% adattato alla lingua lo ale. Negli 1.& il termine non #i u#a ;-4. 7er di$$i olt+ di pronun ia o ritro#ia nell0a ettare termini #tranieri% in 1.& per indi are l0In$ormati a #i di e*a " omputer # ien e". 6i $ronte al $atto )e in In$ormati a 0! molta te ni a e po a # ien'a% il termine piG in *oga oggi in &meri a ! " -n$ormation %e )nologF" 3IT4. p. 1A di 1A 2005-09-2C 02 Computer.odt

Potrebbero piacerti anche