Canali
Ultime news
Ultimi articoli
Le ultime dal Forum |
CorrelatiTag
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa.
La trattazione seguente è piuttosto datata. Sebbene questo non implichi automaticamente che quanto descritto abbia perso di validità, non è da escludere che la situazione si sia evoluta nel frattempo. Raccomandiamo quantomeno di proseguire la lettura contestualizzando il tutto nel periodo in cui è stato proposto.
IntroduzioneA chi è appasionato di tecnologia, ed è ingordo di informazioni sugli ultimi ritrovati tecnologici, spesso capita di leggere termini come Out of order execution, pipeline, architettura superscalare, branch prediction, sugli articoli che riportano informazioni tecniche sulle CPU moderne. Per dare la possibilità a chi non conosce bene l'inglese di leggere qualcosa di più approfondito, e per sfatare alcuni miti, ho scritto questo articoletto, in cui parlerò della differenza tra i processori CISC e RISC, e introdurrò alcuni concetti che poi serviranno per una serie di articoli futuri sui processori più interessanti. L'evoluzioneChiariamo tanto per cominciare una cosa, l'evoluzione dei processori moderni, è legata a tanti fattori, fra cui compilatori buoni, tecniche di costruzione sempre più raffinate, ma il punto fondamentale è il costo! Non è importante se un progetto, sulla carta, è decisamente migliore di tutti gli altri, se esso ha costi troppo elevati, e/o il mercato è troppo di nicchia per poter coprire le spese di progettazione e produzione, esso non avrà successo. I primi passiPer capire meglio come si sono sviluppate le CPU in questi anni, e il perché alcune hanno avuto successo, mentre altre sono state relegate a mercati di nicchia, dobbiamo partire da lontano: Negli anni 70, furono introdotti i primi calcolatori basati su transistor integrati, e la situazione era la seguente: 1) le memorie erano lente, grosse e molto costose (erano a nucleo magnetico - vedi foto sotto) 2) i compilatori producevano codice "sporco", e poco ottimizzato, in parole povere erano talmente inefficienti, che era conveniente lavorare in "assembler", il codice scritto però era difficile da correggere (essendo un linguaggio di basso livello). 3) la memoria secondaria, anch'essa magnetica, era ancora più lenta ed era anch'essa costosa. Questo obbligava a scrivere programmi molto compatti e il più possibile ottimizzati, dato che dovevano poi risiedere in una memoria da pochi KBytes. L'avvento delle memorie a semiconduttoreLa situazione migliorò un poco con l'avvento delle memorie dinamiche a semiconduttore a metà degli anni ‘70, ma lo stato di integrazione era di poche migliaia di transistor, e per ottenere un dispositivo completo, era necessario collegare più chip. Ogni chip ovviamente, assolveva a funzioni differenti, ed erano tutti collegati alla medesima scheda madre. Il problema di avere molti chip con diverse mansioni, è che le interconnessioni tra di essi (non sono altro che le piste di rame sulla scheda madre, che vengono chiamate anche BUS) hanno una banda limitata, e questo introduceva ulteriori ritardi nel trasferimento dei segnali digitali da una parte all'altra (il problema della banda limitata nasce dal fatto che tra le piste adiacenti c'è un effetto di diafonia, che si accentua quanto più elevata è la frequenza). Anche oggi alcune componenti sono interessate da problemi simili, in particolare stò parlando del collo di bottiglia costituito dall'interfaccia memoria-chipset e chipset-processore. Il primo microprocessore General-purposeLa soluzione all'epoca fù quella di costruire un singolo chip con tutta la logica necessaria, fù Intel nel 1971 a introdurre il primo processore general-purpose (per applicazioni generali), si chiamava 4004, era composto da 2300 transistor, ed era a tutti gli effetti un "mini-computer". Esso poteva decodificare al massimo 45 istruzioni, aveva dei registri da 4 bit, e aveva una frequenza di circa 1 Khz (KiloHertz, il prefisso Kilo sta a indicare le migliaia). Segnala ad un amico |
© Copyright 2024 BlazeMedia srl - P. IVA 14742231005