CPU Design: Giù per il tubo

Il più grande depositario di conoscenza storica del giorno d’oggi (leggi: Wikipedia) dà il merito della diffusione capillare delle catene di montaggio a Henry Ford, quando, all’inizio del ‘900, si mise in testa di velocizzare la fabbricazione delle proprie auto. L’idea era ottima e si sposava (e tutt’ora si sposa ancora) perfettamente con la fabbricazione di un aggeggio complesso com’è un’auto, ma in realtà vale per la maggior parte delle attività quotidiane, compreso il lavoro dei nerd e, meglio ancora, il lavoro dei circuiti. Il concetto di “lavoriamo meno, ma lavoriamo tutti e produciamo di più” pare un principio degno di Carl Marx, ma in realtà è perfetto per descrivere il concetto di pipeline. Scopriremo oggi come si possa rendere più veloce un circuito dividendolo in stadi più piccoli; la prossima volta vedremo come si possa applicare questo principio al progetto di un microprocessore.

UN PO’ PER UNO

Questa notte avete fatto un sogno strano, e vi siete svegliati con uno strano grillo per la testa: vi è venuto in mente di realizzare una scheda elettronica per fare qualcosa, quello che vi pare. Vi ci vorrà un certo tempo, giusto? Diciamo cinque ore, per amor di discussione. Supponete di voler realizzare tante di queste schede, a ripetizione, tutte che fanno cose diverse (sì, avete parecchia fantasia). Se, come ogni bravo nerd, non avete bisogno né di cibo né di sonno, ma vi basta essere collegati alla presa della corrente, riuscirete a produrre esattamente una scheda ogni cinque ore, giusto?

 

Figura 1: Un nerd al lavoro.

Bene. Supponiamo anche che le vostre capacità imprenditoriali siano tali da permettervi di trascinare qualche vostro amico altrettanto nerd nella faccenda. Diciamo che sulla scheda c’è un microcontrollore, e che voi vi occuperete della scrittura del firmware e il vostro amico del progetto del resto della scheda, dai componenti al layout. Diciamo che ci servono due ore per il firmware e tre per il resto della scheda.

 

Figura 2: Due nerd al lavoro.

 

Lavorare in questo modo è molto vantaggioso, non ci vuole molto per capirlo. Da quando si inizia a lavorare, servono comunque cinque ore per produrre una scheda, e la prima scheda in effetti sarà pronta dopo cinque ore, ma le schede successive solo ogni tre. Pensateci un attimo: non appena avete finito il firmware e passato il microcontrollore al vostro compagno di sventure, non c’è bisogno di aspettare che finisca per iniziare a lavorare sul firmware della scheda successiva, ma potete farlo mentre lui finisce di lavorare alla scheda precedente. Vi rimante un’ora buca, visto che a voi bastano due ore per finire il lavoro mentre all’altro ne servono tre, che magari potete usare per mangiare un po’ di frutta e verdura, ma questo non è un problema. Non appena il vostro amico avrà finito la scheda precedente, potrà mettersi a lavorare sulla nuova, e dopo tre ore sarà pronta anche quella. Il discorso vale per tutte le schede che riuscite a fare prima che l’Enel vi stacchi la corrente perché consumate troppo: ogni scheda sarà pronta esattamente tre ore dopo la precedente. Dunque, in questo modo riuscite sia a lavorare meno che a produrre di più! Avete fatto tombola!

 

Figura 3: Due nerd in pipeline.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3604 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend