Coprocessore: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Annullata la modifica 60686075 di 87.21.51.52 (discussione)
FrescoBot (discussione | contributi)
m Bot: specificità dei wikilink e modifiche minori
Riga 2:
Il '''coprocessore''' è una tipologia di [[processore]] che si contraddistingue per essere ausiliaria ad un altro processore. Ad esempio nei moderni [[computer]] la [[CPU]] è spesso affiancata da processori ausiliari come la [[Graphics Processing Unit|GPU]] e la [[Unità di calcolo in virgola mobile|FPU]].
 
Le operazioni eseguite dal coprocessore possono essere calcoli in [[numero in virgola mobile|virgola mobile]], [[computer grafica 3D|funzioni grafiche]], gestione dei [[Segnale elettrico|segnali]], elaborazione dei dati o funzioni [[crittografia|crittografiche]]. Alleggerendo il processore principale dai compiti più gravosi, i coprocessori possono accelerare le prestazioni di un sistema. I coprocessori permettono inoltre ai costruttori di [[computer]] di offrire dei sistemi personalizzati, offrendo la potenza supplementare solo ai clienti che realmente la necessitano e pagano per essa.
 
I coprocessori hanno fatto la loro prima comparsa nei [[mainframe]] degli [[anni 1960|anni sessanta]]<ref>{{cita web|url=http://www.gigaflop.demon.co.uk/comp/chapt1.htm#s1.2.4|titolo=I/O Coprocessors|editore=Vas's Home Page|accesso=16/10/10}}</ref>, generalmente utilizzati per svolgere calcoli in virgola mobile ma anche per controllare i [[input/output|canali di I/O]].
 
==Descrizione==
La funzione del coprocessore è quella di alleggerire il carico di lavoro del processore di cui è ausiliario. Di norma, il carico di lavoro relativo a particolari elaborazioni. Spesso il coprocessore è quindi un processore ottimizzato e specializzato nell'esecuzione di particolari elaborazioni in modo da risultare più efficiente nei compiti che gli sono stati affidati. Comuni sono i coprocessori dell'unità di elaborazione centrale.
 
Un coprocessore può non essere un processore di utilizzo generale: ad esempio, alcuni coprocessori non possono eseguire istruzioni in memoria, eseguire istruzioni di controllo del flusso del programma oppure operazioni di input/output, gestire la memoria. Questi chip richiedono che il processore processi le loro istruzioni e gestisca tutte le operazioni legate alle funzioni che essi devono svolgere. In alcune architetture il coprocessore è più un computer di uso generale ma impostato per svolgere solo alcune limitate funzioni sotto il controllo diretto di processore che ne supervisiona i compiti.
Riga 23:
===Unità di elaborazione grafica===
{{vedi anche|Graphics Processing Unit}}
L'''unità di elaborazione grafica'' (più conosciuta con l'acronimo mutuato dalla lingua inglese "GPU") è un coprocessore ottimizzato e specializzato nel [[rendering]] di immagini grafiche. Da alcuni anni è in atto la tendenza ad implementare l'unità di elaborazione grafica e l'unità di elaborazione centrale nel medesimo [[circuito integrato]].
 
===Controller di periferica===
Riga 30:
 
==Storia==
Nati come chip per aiutare nei calcoli i processori dei grossi mainframe, i coprocessori per l'aritmetica in virgola mobile divennero comuni nei computer desktop degli [[anni 1980|anni ottanta]] e dei primi [[anni 1990|anni novanta]]. I primi processori ad [[8 bit]] e [[16 bit]] utilizzavano processi software per eseguire le operazioni in virgola mobile: nei sistemi in cui un [[coprocessore matematico]] era supportato sia dall'hardware che dal software, tali calcoli potevano essere eseguiti molto più velocemente. I coprocessori matematici erano un acquisto comune per tutti quegli impieghi in cui si richiedeva una elevata potenza elaborativa per trattare complessi numero in virgola mobile come nei software di [[computer-aided design|CAD]] ed in quelli scientifici ed ingegneristici. I primi coprocessori matematici, come l'[[AMD 9511]], l'[[Intel 8231]] e quelli prodotti da [[Weitek]], erano trattati come dispositivi periferici, mentre le ultime versioni, come l'[[Intel 8087]], il [[Motorola 68881]] ed il [[National 32081]], erano molto più integrate con la CPU.
 
Un altro tipo di coprocessore che divenne comune durante quegli anni fu quello preposto alla gestione semplice del video, come l'[[ANTIC]] degli [[Famiglia Atari 8-bit|Atari ad 8 bit]], il [[TMS9918]] dei computer [[Standard MSX|MSX]] e del [[Texas Instruments TI-99/4A]]: tutti questi processori erano chiamati [[Video Display Controller]] o VDC. Un esempio di [[Graphics Processing Unit|processore grafico]] vero e proprio è il [[Original_Chip_Set#Copper|Copper]] dei [[Commodore International|Commodore]] [[Amiga]], una [[macchina a stati finiti]] programmabile ("Copper" sta infatti per "Co-processor") che poteva eseguire un flusso di istruzioni sincronizzate con l'hardware video.
Riga 47:
Un altro coprocessore per le CPU 8086/8088 era l'[[Intel 8089]], deputato alla gestione dell'[[input/output]]. Esso usava la stessa tecnica di programmazione dell'8087 per gestire le operazioni di I/O quali il trasferimento dei dati dalla memoria ad un dispositivo periferico, riducendo così il carico sulla CPU. IBM però non usò tale coprocessore per cui Intel decise di abbandonarne la produzione.
 
Durante l'era dei computer desktop ad 8 e 16 bit altri coprocessori matematici molto diffusi erano quelli di [[Weitek]], nota soprattutto per i coprocessori per 80386 serie 1067. Questa diffusione fu dovuta al fatto che Intel rilasciò una propria FPU per il processore, l'[[Intel 80387]], quasi 2 anni dopo la sua introduzione.
 
Il processore [[Intel 80486|486DX]] includeva una FPU sul chip. Intel produsse anche una versione più economica del processore, il 486SX: rispetto al modello DX si differenziava solo per l'assenza di tale unità per calcoli in virgola mobile. Contemporaneamente al 486SX presentò anche il coprocessore 487SX che essenzialmente sostituiva il processore principale quando veniva installato dato che il 487SX era un 486DX completo con una [[piedinatura]] differente.
Riga 54:
 
==Coprocessori Motorola==
La famiglia di processori [[Motorola]] [[Motorola 68000|68000]] aveva i suoi coprocessori dedicati: essi erano i [[Motorola 68881|Motorola 68881/68882]], che fornivano funzionalità di accelerazione dei calcoli in virgola mobile come i corrispondenti Intel. I computer che usavano le CPU della serie 68000 ma che non montavano il coprocessore potevano gestire delle eccezioni per attivare un emulatore software delle istruzioni in virgola mobile che, anche se con prestazioni inferiori, permettevano di avere un'unica versione del programma distribuito per entrambi i casi.
 
==I coprocessori nei moderni PC==