Fork me on GitHub
con Valerio Galano

Il podcast dove si ragiona da informatici

Un informatico risolve problemi, a volte anche usando il computer

Riflessioni e idee dal mondo del software

Episodio del podcast

La strana storia del processore ARM

22 aprile 2021 Podcast Episodio 57 Stagione 1
La strana storia del processore ARM

Descrizione

I processori ARM sono oggi diffusissimi e contribuiscono a far funzionare i milioni di dispositivi che usiamo quotidianamente. Ma questa famiglia di processori è nata quasi per caso e ha persino rischiato di non vedere mai la luce.

I link dell’episodio di oggi:
How an obscure British PC maker invented ARM and changed the world - https://arstechnica.com/features/2020/12/how-an-obscure-british-pc-maker-invented-arm-and-changed-the-world/
RISC vs CISC - https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/

——————————————
Sito ufficiale di Pensieri in codice - https://pensieriincodice.it

Attrezzatura:
Shure Microfono Podcast USB MV7* - https://amzn.to/3862ZRf

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader, Satispay

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Crediti

Montaggio - Daniele Galano - https://www.instagram.com/daniele_galano/
Voce intro - Costanza Martina Vitale
Musica - Kubbi - Up In My Jam
Musica - Light-foot - Moldy Lotion
Cover e trascrizione - Francesco Zubani

Mostra testo dell'episodio

Nascondi

Quella che segue è una trascrizione automatica dell'episodio.

Pensieri in codice. Idee dal mondo del software a cura di Valerio Galano. Salve a tutti ragazzi e bentornati su Pensieri in codice. Oggi vi racconto una storia ed in particolare la storia della famiglia di processori conosciuta come ARM. Sono sicuro che già tutti sappiate che più o meno in ogni strumento elettronico che utilizziamo sono presenti uno o più componenti chiamati processori, i quali hanno il compito di eseguire alcune operazioni di base sulle quali poi sono costruite tutte le varie funzionalità dello strumento. Ma quello che forse non tutti sanno è che esistono tanti tipi di processori diversi, i quali appartengono a varie famiglie, ognuna delle quali si distingue per particolari caratteristiche e applicazioni in ambiti differenti. Ci basta anche solo pensare al nostro computer che se non è un modello molto vecchio o con applicazioni particolari sicuramente è dotato di almeno due processori, uno per gestire il calcolo e i software, l’altro per gestire tutto il comparto grafico. La protagonista della nostra storia e cioè la famiglia di processori ARM è invece particolarmente adatta per applicazioni in mobilità e questo perché i suoi processori consumano poca energia e si scaldano molto poco. Per questo motivo sono utilizzati pressoché in qualsiasi dispositivo mobile. Se avete uno smartphone avete un processore ARM, se avete uno smartwatch un processore ARM. Anche molti moderni computer funzionano utilizzando processori ARM, ad esempio i Chromebook o la nuovissima linea di computer Apple con processore M1. Grazie a questa tipologia di processori possiamo quindi avere nelle nostre tasche dei dispositivi che hanno enormi potenze di calcolo e che al tempo stesso hanno delle batterie che durano anche un paio di giorni, cosa attualmente impossibile con gli altri processori in commercio. Insomma se non esistessero i processori ARM il mondo sarebbe differente da come lo conosciamo. E se vi dicessi che c’è stato il rischio che ciò accadesse davvero? Che il progetto del predecessore di ARM sarebbe potuto essere ignorato e dimenticato? Parliamo dunque di come è nato e di come funziona questo piccolo pezzo di silicio che ha contribuito a cambiare la nostra vita. La nostra storia ha inizio nei primi anni 80 quando con l’imminente rivoluzione informatica il governo inglese decide di dare il via ad un progetto di alfabetizzazione informatica. Lo scopo è quello di formare i cittadini all’utilizzo di quello che già si intuisce essere lo strumento che sarà più importante negli anni successivi. E proprio in questo senso nel progetto viene anche inserito uno show televisivo che andrà in onda sulla BBC e che si chiamerà The Computer Program. Questo show avrà il compito di insegnare ai telespettatori vari aspetti dell’utilizzo del computer. A partire dai concetti fondamentali e un po’ di programmazione in basic per poi arrivare a concetti più complessi come l’utilizzo delle reti, della grafica, dell’audio e persino di sintesi vocale e di una rudimentale intelligenza artificiale. Ora come dicevamo prima non tutti i processori sono adatti a tutte le attività e al tempo stesso nel 1980 non c’era grande disponibilità di tipologie di processori diversi. Quindi è facile immaginare che per gli scopi di The Computer Program servisse un processore molto molto all’avanguardia. Così all’avanguardia che per l’epoca non esisteva neanche uno in commercio. Fu così che la BBC dovette rivolgersi all’industria inglese per commissionare un processore su misura, diciamo così. E alla fine il compito di produrre questo processore fu affidato ad una giovanissima azienda di nome Acron. La Acron era nata pochi anni prima e aveva iniziato la propria attività producendo processori per slot machine. Solo in un secondo momento aveva poi iniziato a produrre processori per computer per scopo non professionale ed in particolare lo stesso tipo di processore che poi era utilizzato anche dal Atari 2600 o dal Commodore 64. Quando arrivò la richiesta della BBC la Acron produceva un computer casalingo chiamato Atom e stava appunto progettando un suo successore. Tuttavia le richieste della BBC erano così spinte che l’originale progetto per il successore dell’Atom non era sufficiente a coprirle tutte. Quindi gli ingegneri abbandonarono il progetto iniziale e mantennero solamente un’interfaccia che chiamavano Tube, che serviva per collegare più unità di elaborazione alla stessa macchina. Rifecero quindi tutti i progetti spingendo quella che era la loro tecnologia al massimo possibile e riuscirono a realizzare quello che prese il nome di BBC Micro e che si affermò come il computer più utilizzato per la didattica in tutto il Regno Unito. Giusto per capire quanto complessa fosse questa nuova architettura, sappiate che è passata alla storia per avere un componente chiamato il dito dell’ingegnere. E questo perché i primi prototipi non funzionavano a meno che qualcuno non poggiasse il dito in un particolare punto. Ma siccome gli ingegneri non riuscirono a capire il perché di questo fenomeno, semplicemente piazzarono in quel punto un insieme di resistenze che simulassero il tocco di un dito. Ad ogni modo visto il clima di innovazione che si respirava in quel periodo, ricordiamoci che in quegli anni la IBM dettava gli standard per i cosiddetti personal computer, la Acron provò a contattare la Intel per far sì che questa implementasse il proprio nuovissimo processore 286 all’interno dell’architettura della piccola azienda inglese. Ma il futuro colosso americano li ignorò completamente e, con il senno di poi, questo fu un enorme errore. Per capire come mai questa scelta di Intel si rivelò poi un errore, dobbiamo descrivere, almeno a grandi linee e a livello concettuale, come funziona un processore. Quando pensiamo al software dobbiamo sempre ricordarci che le interfacce e i dati che utilizziamo e inseriamo sono pensate per essere comprensibili a degli umani e così anche i linguaggi di programmazione che si utilizzano per scrivere i software sono fatti per essere scritti da umani. Ma ciò vuol dire che non sono direttamente comprensibili per il processore che deve eseguirli. In generale, infatti, quando si scrive un software per farlo effettivamente funzionare è necessario che questo venga compilato e compilare non vuol dire altro che trasformare un linguaggio di programmazione comprensibile ad un umano in una serie di istruzioni comprensibili al processore. E queste istruzioni non sono altro che delle operazioni relativamente semplici che, se eseguite, permettono di ottenere un risultato utile al funzionamento del software. Ok, per chi ha studiato informatica so che sto semplificando enormemente ma cerco di rendermi comprensibile anche a chi non ha particolari conoscenze in materia. Quindi abbiate pazienza! Comunque, fingiamo di voler far svolgere ad un processore un’operazione relativamente semplice, la moltiplicazione di due numeri. All’atto pratico, per fare ciò, il processore dovrà fare le seguenti operazioni. Caricare il primo numero in un registro, che è un piccolo spazio di memoria che il processore può utilizzare direttamente per svolgere le proprie operazioni. Caricare anche il secondo numero in un altro registro, eseguire la moltiplicazione di questi due numeri e salvare il risultato in un terzo registro. In tutto si tratta di quattro operazioni. Ora, dovete sapere che all’epoca della nostra storia i processori Intel, che erano i famosi 286, si basavano su di un approccio definito SISC, acronimo di Complex Instruction Set Computing. Ciò vuol dire che un processore di questo tipo avrebbe eseguito la nostra operazione di moltiplicazione con una sola istruzione. Quindi un eventuale compilatore di un linguaggio di programmazione avrebbe tradotto direttamente un’operazione di moltiplicazione in una singola operazione per il processore. Al contrario, invece, i processori della Acron si basavano su un approccio detto RISC, che era acronimo di Reduced Instruction Set Computing. Un processore RISC avrebbe richiesto al compilatore di tradurre l’operazione di moltiplicazione in quattro operazioni per il processore, e cioè due per il caricamento delle due variabili nei registri, una per la moltiplicazione vera e propria e un’altra per il salvataggio del risultato in un terzo registro. In pratica, i processori RISC della Acron erano più semplici perché spostavano parte della complessità sul software. E questo potrebbe sembrare uno svantaggio, costringendo i compilatori a lavorare di più e produrre software più lunghi. Ma in realtà ciò permetteva di ridurre enormemente la complessità del processore stesso e con essa il consumo energetico e il riscaldamento. La Acron decise quindi di unire questo nuovo approccio RISC alla interfaccia del BBC Micro e creò un nuovo processore chiamato Acron RISC Machine, cioè ARM. Questa famiglia di processori vide la sua prima versione commerciale montata sul Acron Archimedes, cioè il primo computer basato su approccio RISC. Tutto questo nel 1987, anno in cui il processore ARM dimostrò di essere più performante di un Intel 286 nonostante la sua maggiore semplicità. Abbiamo detto quindi che i processori della famiglia ARM sono un tantino più complessi da utilizzare per gli sviluppatori e richiedono maggiore utilizzo di memoria, ma al tempo stesso consumano molta meno energia e richiedono anche meno raffreddamento. E la cosa interessante è che nessuna di queste caratteristiche faceva all’epoca parte di un progetto, semplicemente vennero fuori per caso a valle della realizzazione del prodotto e si sa che la vita a volte è strana e col passare degli anni il costo della memoria continuò a scendere, mentre il mondo dell’informatica iniziò a spostarsi sui prodotti mobile e tutto questo rese questo tipo di processore particolarmente appetibile. Già negli anni 90 infatti il processore ARM fu integrato nel Apple Newton, anche se questo prodotto non ebbe grande successo. Poi nel 2001 ci fu il boom, il processore ARM 7 faceva funzionare sia l’iPod di Apple che il Game Boy Advance di Nintendo. Da lì poi nel 2004 il Nintendo DS utilizzava un processore ARM per ciascuno dei suoi monitor e infine nel 2007 il primo iPhone uscì con un processore ARM 11. Da lì in poi la storia la conosciamo. Più o meno qualsiasi tablet o smartphone in commercio utilizza un processore ARM e così anche alcuni notebook come il Chromebook o il nuovissimo Apple di serie M1. Insomma il processore ARM è adatto a tutti quei tipi di utilizzi in mobilità dove è necessario risparmiare energia e avere degli strumenti che non scaldino troppo. E se non fosse stato per la caparbietà di una piccola azienda inglese, beh io sono sicuro che molto probabilmente il mondo così come oggi lo conosciamo e sarebbe un po’ diverso. Bene ragazzi, io spero che la storia di oggi vi sia piaciuta. Io l’ho trovata subito molto interessante e quindi ho pensato di raccontarvela. Come al solito io vi invito a farmi sapere la vostra e vi ricordo che in descrizione trovate tutti i link per contattarmi e mi raccomando iscrivetevi al canale e al gruppo Telegram che sono i metodi migliori per restare in contatto. Se poi vi andasse di aiutare questo piccolo progetto vi ricordo sempre che una condivisione è utile per tutti. E’ probabile che voi abbiate conosciuto Pensieri in Codice in questo modo e allora perché non fare lo stesso? Avrete certamente notato che in questo periodo ho attivato la monetizzazione e questo perché vorrei dedicare un po’ più di tempo al podcast ma serve l’aiuto di tutti. Detto questo vi ringrazio per aver ascoltato fin qui, vi saluto, vi do appuntamento al prossimo episodio e vi ricordo che un informatico risolve problemi a volte anche usando il computer.

Nascondi