Computer for dummies part 3
- fabio
- 23 gen 2024
- Tempo di lettura: 2 min

La mia saponetta é andata. No, non é un problema di igiene personale, saponetta é uno di quei piccoli router portatili della misura di un pezzo di sapone che pescano dalla rete dati a cui sei abbonato é te la restituiscono come Wi-Fi.
Sopravviveremo alla sua dipartita, c'é di peggio nella vita.
Dunque, torniamo alla nostra CPU basica, architettura Von Neumann, che potrebbe essere il 6502 o lo Z80 oppure persino l'intel 8080 che fu impiegato nel primo pc sfornato da IBM.
Dentro ci sono alcune cose principali.
Decodifica di istruzione
Control unit
Alu
Sono tutti nomi misteriosi. Cominciamo dalla control unit che a sua volta dentro ha 3 registri fondamentali
Contatore di programma o PC
Puntatore di stack
Flags
Il contatore di programma contiene l'indirizzo di memoria dove si trova la prossima istruzione da eseguire.
Quindi il gioco é semplice, l'unità di controllo mette il valore del contatore di programma sul bus indirizzi. La memoria risponde mettendo il valore 98 sul bus dati. 98 va a finire in un registro detto registro di istruzione dove la decodifica di istruzione va a pescare. Eh, oh bella, la decodifica di istruzione dopo aver scartabellato il suo manuale, scopre che 98 é il codice che richiede di Muovere nell'accumulatore il dato all'indirizzo $xxxx. Normalmente la si rappresenta come LDA $xxxx (load to A the data at address $xxxx).
La decodifica di istruzione sa anche che dopo 98 ci saranno altri 2 bytes I quali contengono $xxxx
Quindi I 2 bytes vengono caricati, ad esempio valgono 1000 é quindi messi ancora una volta sul bus indirizzi ottenendo il valore 36 dalla memoria (36 é il dato contenuto nell'indirizzo 1000). E finalmente 36 verrà spostato nell'accumulatore. Il quale non é che un registro della ALU nel quale vengono eseguite le operazioni.
Abbiamo fatto il primo step. Il contatore di programma viene incrementato di 3 (perché l'istruzione precedente era lunga in totale 3 bytes) ed il nuovo valore messo sul bus indirizzi. Otteniamo 57. La decodifica di istruzione trova che 57 significa aggiungi $yyyy all'accumulatore. Viene rappresentata come ADA $yyyy.
Andiamo a vedere cosa c'é in $yyyy e troviamo ad esempio 1001 dove troviamo il dato 19. Alla fine 19 viene aggiunto all'accumulatore dove già c'é 36 ed otteniamo 55.
La prossima istruzione ci chiedere di Muovere l'accumulatore alla locazione $zzzz che scopriremo essere ancora 1000 dove il nostro 55 andrà a finire al posto del precedente 36.
Questa sequenza é la scomposizione della riga di programma in alto livello (ad esempio C) A=A+B
See you next
Lo scopo di queste che Ari ha chiamato lezioni ma io non sono un professore e quindi si tratta solo di chiacchierate, é quello di mostrare la logica di questo Oggetto, il computer, che pervade la nostra vita. E non é solo il laptop ma anche il telefono, il televisore, sulle nostre auto praticamente ogni funzione é controllata da un piccolo o grande computer. La centralina abs, la centralina motore sono computer con il cosiddetto software embedded ovvero dentro c'é un solo programma e la centralina esegue solo quello. Ma anche la centralina fari, persino la centralina del portellone hanno un computer. Io stesso ho scritto Gbytes di software per il controllo dell'indicatore velocità. Gli Adas sono un'altra spatafiata …
Grazie per queste belle lezioni di informatica Fabio, le trovo molto interessanti. Magari non mi resterà molto, i miei neuroni sono alla frutta ormai, ma mi piace cercare di capire come funzionano le cose, che si tratti di motori computer o altro.
Aspetto la parte 4 :)
Grazie Fabio, mi fai ricordare i miei primi esperimenti con le schede perforate quando da Padova i dati venivano mandati a Bologna per l’elaborazione, era il 1970. Il mio primo incontro con un computer fu con un PDP 11 con gli anellini di ferrite, riusciva addirittura a mandare l'output su una telescrivente 😳. Bei tempi, l’intelligenza artificiale non c’era ancora e bisognava arrangiarsi con quella, poca o tanta, naturale 😀