Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
PowerPC 970FX

PowerPC 970FX

In informatica PowerPC G5 è il nome dato sia al PowerPC 970 che ai PowerPC 970FX ed PowerPC 970MP. Si tratta di processori a 64 bit della famiglia PowerPC sviluppati da IBM, che li ha presentati nel 2002, utilizzati come CPU nei computer Power Mac G5 di Apple Computer. Il PowerPC 970 è costruito utilizzando una tecnologia a 130nm e il PowerPC 970FX è costruito utilizzando una tecnologia a 90nm. Il microprocessore è formato da 58 milioni di transistor. È basato sui processori Power4 sviluppati da IBM e include una unità di calcolo AltiVec. Una caratteristica degna di nota del PowerPC G5 è la capacità di eseguire nativamente codice a 32 bit senza una riduzione delle prestazioni. Seguendo le precedenti convenzioni, Apple ha rinominato il processore PowerPC 970 in G5, dato che si tratta della quinta generazione di un processore PowerPC. Apple ha presentato le prime macchine nel Giugno 2003 ma appena si è reso disponibile il processore PowerPC 970FX ha convertito la sua linea di computer a questo processore, principalmente per problemi di carattere energetico. Essendo il 970FX sviluppato con una tecnologia a 90 nm dissipa una potenza inferiore al 970 e quindi si può utilizzare a frequenze più elevate. Attualmente Apple, nelle macchine PowerMac G5, utilizza i PowerPC G5 con frequenza in configurazione monoprocessore di 1.8 GHz e biprocessore di 2.0, 2.3 e 2.7 GHz (la terza macchina è raffreddata al liquido). I processori G5 vengono utilizzati anche nei server Xserve a frequenze di 2.0, 2.3 GHz e negli iMac G5 con frequenze di 1,8 e 2,0 GHz. Una variante del PowerPC G5 verrà utilizzata per realizzare le prossime console Xbox 360 e l'evoluzione del GameCube di Nintendo, chiamata Revolution. IBM ha in sviluppo il processore 970MP, che è previsto per il terzo trimestre del 2005, e attualmente ha il nome in codice di "Antares". Il PowerPC 970MP sarà dotato di due processori integrati nello stesso contenitore e funzionerà a una frequenza di 3,5 GHz. Questo chip utilizzerà inizialmente la tecnologia a 90 nm, per migrare poi verso quella a 65 nm.

Collegamenti esterni


- [http://www.apple.com/it/g5processor/ PowerPC G5 di Apple]
- [http://www.lithium.it/dream0019p1.asp PowerPC recensione del processore]
- [http://www.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256993005870F7/%24file/750cx-cxe_pb.pdf Documentazione IBM] (In Inglese) Categoria:Microprocessori

Informatica

L'etimologia italiana di informatica deriva dai termini informazione e automatica, e sicuramente Philippe Dreyfus, che per primo utilizza nel 1962 il termine informatique (informatica) voleva significare la gestione automatica dell'informazione mediante calcolatore. Sebbene successivamente ne siano state date diverse definizioni, forse si avvicina di più alla realtà quella secondo cui l'informatica è la scienza che si occupa della conservazione, dell'elaborazione e della rappresentazione dell'informazione. Da notare come tale definizione implichi un distacco tra il concetto di scienza e l'area di studio di tale disciplina quando in lingua inglese viene utilizzato il termine computer science che presuppone l'esistenza della figura dello scienziato (scientist) e quindi dell'uomo, del ricercatore interessato all'approfondimento della conoscenza della tecnologia dell'elaborazione.

Storia

Se si guarda all'evoluzione del pensiero algoritmico formale, allora le prime sistemazioni si possono individuare nella grande matematica e nella grande tecnologia greco-ellenistica, (v. Euclide, Archimede, Ctesibio, Macchina di Anticitera). Se invece si guarda alla prassi dei metodi di calcolo, allora le radici le ritroviamo già al tempo dell'antica Mesopotamia e dei primi sutra indiani, nonché nella matematica pragmatica dell'antica Cina. Se vogliamo restringere alle opere postrinascimentali ed europee, allora i fondamenti possono ritrovarsi in Leibniz, Babbage, Lovelace, Boole e Frege, e più direttamente ai lavori di Vannevar Bush, Alan Turing e John von Neumann. Tutti questi punti di vista, comunque, propongono di definire l'informatica come la scienza del calcolabile. Non vi è tuttavia unanimità nel conferire all'informatica il rango di scienza a sé, ed a volte si propende nel considerarla una disciplina evolutiva della matematica, nonostante costituisca un sistema di teorie, tecniche e strumenti ampio e consolidato: il problema fondamentale che rende difficile inquadrare l'informatica come una vera scienza sta nella sua frammentarietà e nella mancanza di un fondamento teorico unificante. Questo punto di vista non tiene conto sia di campi come la teoria della complessità algoritmica, sia dell'utilizzo degli algoritmi nella vita quotidiana: nei programmi delle lavatrici come nella risoluzione delle equazioni. Non tiene conto dei legami con la fisica e di molti altri aspetti dell'informatica assolutamente svincolati da ciò che calcola e legati o al calcolo in sé o al tipo dei dati e dei risultati. Infine, il forte legame sviluppatosi tra le scienze cognitive e l'informatica rende anacronistico questo modo di pensare all'informatica stessa: la psicologia, la mente e il cervello sono senz'altro differenti dai calcolatori elettronici, ma tutti possono essere studiati da branche dell'informatica, ma non necessariamente il contrario. Ad ogni modo l’informatica ha la sua innegabile e tirannica radice scientifica. Non è proprio possibile capire l’informatica se non si intendono le leggi che governano come:
- si digitalizza e si rappresenta l’informazione, sia essa “tradizionale” (testi o numeri) o piuttosto “nuova” (video, suono, odori)
- si memorizza, organizza e reperisce l’informazione e la si protegge da un uso improprio
- si trasmette in modo affidabile l’informazione
- soprattutto come si elabora l’informazione: le leggi della programmazione Queste leggi hanno carattere galileano: sono leggi dell’artificiale, certo non delle cose naturali, ma hanno la medesima forma di astrazione dall’esperienza e di generalizzazione del particolare; inoltre hanno la stessa rigorosa natura delle leggi di Galileo. Sono equazioni su domini opportuni, spessissimo di natura discreta, espresse nel linguaggio matematico: l’unico che sappiamo usare per creare, scambiarci e trasmettere conoscenza dai tempi degli alessandrini. L’informatica, seppur giovane, è fortemente basata su aspetti matematici. Enrico Bombieri dell’Università di Princeton, Medaglia Fields per la Matematica quando era all’Università di Pisa nel 1974 (riconoscimento di prestigio pari al Premio Nobel per la Fisica), descrive magistralmente tale aspetto: Fino a poco tempo fa, i matematici teorici consideravano un problema risolto se esisteva un metodo conosciuto, o algoritmo, per risolverlo; il procedimento di esecuzione dell’algoritmo era di importanza secondaria. Tuttavia, c’è una grande differenza tra il sapere che è possibile fare qualcosa e il farlo. Questo atteggiamento di indifferenza sta cambiando rapidamente, grazie ai progressi della tecnologia del computer. Adesso, è importantissimo trovare metodi di soluzione che siano pratici per il calcolo. La teoria della complessità studia i vari algoritmi e la loro relativa efficienza computazionale. Si tratta di una teoria giovane e in pieno sviluppo, che sta motivando nuove direzioni nella matematica e nello stesso tempo trova applicazioni concrete quali quello fondamentale della sicurezza ed identificazione dei dati. Oltre agli aspetti pragmatici, vengono quindi formulate e studiate teorie informatiche al pari della matematica, della fisica e della chimica. Prendiamo per esempio il concetto di informazione, facente parte del nostro mondo fisico al pari dell’energia e della materia. Tutti percepiscono come reale l’atomo o il quark anche se nessuno può vederlo a occhio nudo. In maniera analoga, il bit è l’elemento costituente dell’informazione in quanto rappresenta l’informazione minima (0/1, acceso/spento, destra/sinistra, testa/croce, ecc.). Comunemente usato per misurare la capacità di memoria dei calcolatori, prescinde da questo uso in quanto la sua nozione è stata definita astrattamente prima dell’impiego massiccio dei calcolatori. Negli anni 50 il padre della teoria dell’informazione, Claude Shannon, definì matematicamente il bit come la quantità di informazione necessaria a rappresentare un evento con due possibilità equiprobabili e l’entropia come la quantità minima di bit per rappresentare un contenuto informativo. In Italia un notevole impulso alla razionalizzazione dell'informatica come scienza fu dato dalla figura eccezionale del professore Alessandro Faedo. Laureatosi a Pisa con Leonida Tonelli (come allievo della Scuola Normale Superiore), egli fu naturalmente portato a occuparsi del Calcolo delle variazioni, nel solco del cosiddetto “metodo diretto” inaugurato da Tonelli negli anni ’20. Fondamentali sono, in questo ambito, le sue ricerche su quei funzionali espressi da integrali doppi, e dipendenti da due curve, che egli chiamò integrali di Fubini-Tonelli. Faedo fu anche un grande maestro e un didatta straordinariamente efficace. Ma Faedo fu soprattutto, per l’insegnamento e per la ricerca, un grande organizzatore , nel senso più alto e più nobile che si possa attribuire a questa parola. La sua opera in questa direzione si rivolse dapprima alla scuola matematica pisana (che Leonida Tonelli, in punto di morte, gli aveva affidato in una sorta di testamento spirituale); poi si allargò gradualmente a tutta l’Università di Pisa (di cui Faedo fu a lungo Rettore) e infine all’intero sistema universitario italiano (Faedo fu infatti inventore e primo Presidente della Conferenza dei Rettori) e all’organizzazione della ricerca scientifica in Italia (Faedo fu anche Presidente del CNR). Quest’opera fu possibile grazie a un impegno appassionato e generoso, accompagnato e sorretto da una lucida e lungimirante intelligenza, da un geniale spirito d’innovazione, da un grande coraggio. Si pensi, ad esempio, all’ardire di progettare e di realizzare un corso di laurea in Informatica in anni nei quali la stessa parola Informatica non era ancora presente nei vocabolari della lingua italiana (tanto che si dovette sostituirla, nel titolo del corso, con la più dotta perifrasi Scienze dell’informazione). Si pensi ancora alla concezione e realizzazione della storica Calcolatrice elettronica pisana e dell’annesso Centro studi calcolatrice elettronica (divenuto più tardi Istituto per l’Elaborazione dell’Informazione, IEI). Si pensi infine alla creazione dell'istituto CNUCE dapprima come centro universitario di calcolo elettronico e poi come Istituto del CNR. Con la riforma del CNR i due istituti IEI e CNUCE sono stati fusi dando luogo all'ISTI, Istituto di Scienza e Tecnologie dell'Informazione Alessandro Faedo, la cui sede è presso l'area della ricerca del CNR di Pisa.

Teoria


- Fondamenti matematici dell'informatica
- Teoria dell'informazione
- Teoria del segnale
- Informatica quantistica
- Algoritmo
  - Algoritmi genetici
  - Algoritmi quantistici
- Intelligenza artificiale
- Reti neurali
- Ingegneria del software
- Computer grafica

Informatica applicata


- Linguaggi di programmazione (cfr. Cronologia)
- Linguaggi di markup o di formattazione
- Basi di dati
- Reti di calcolatori
- Sicurezza Informatica
- Architettura delle reti di elaboratori

Storia dell'Informatica


- Storia dell'informatica
- Cronologia dell'Informatica
- Calcolo meccanico
- Informatici celebri
- Storia del personal computer
- Storia di Internet

Hardware


- Architettura
- Computer
- SuperComputer
- Periferiche

Software


- Sistemi operativi
- Elenco di programmi per computer
- Utilità
- Sistemi Client/Server
- File

Organizzazioni


- Associazioni per l'informatica
- Industrie informatiche
- Laboratori per l'informatica
- Organizzazioni per il Web
- Progetti informatici
- Pubblicazioni informatiche

Voci correlate


- Software libero, Open source
- Software proprietario
- e-learning
- Grid Computing categoria:Informatica ja:情報工学 ko:전산학 simple:Computer science th:วิทยาการคอมพิวเตอร์

64 bit

Ad oggi (2005) le CPU a 64 bit sono comuni nei server, e si stanno diffondendo sempre più anche nell'ambito dei personal computer (precedentemente a 32 bit), con le architetture AMD64, EM64T e PowerPC 970 Benché una CPU possa essere a 64 bit internamente, il suo bus dati esterno o il bus indirizzi possono avere dimensioni differenti, maggiori o minori, e il termine viene spesso usato per indicare anche la dimensione di questi bus. Per esempio, molte delle macchine attualmente in circolazione con processori a 32 bit usano internamente dei bus a 64 bit, e possono a volte essere indicati come a "64 bit" per questo motivo. Il termine può essere usato anche per indicare la dimensione dei codici operativi presenti nel set delle istruzioni del processore o di altri dati. In mancanza di ulteriori chiarimenti, comunque, un'architettura descritta come "64 bit" ha generalmente i registri del processore larghi 64 bit e gestisce dati di questa dimensione sia internamente che esternamente.

Implicazioni architetturali

I registri, in un processore, sono generalmente divisi in tre gruppi: interi, a virgola mobile e altri. In tutti i processori general purpose, solo i registri interi sono in grado di contenere puntatori (cioè, l'indirizzo di un qualche dato in memoria). Gli altri registri non possono contenere puntatori da utilizzare per leggere o scrivere la memoria, e quindi non possono essere utilizzati per oltrepassare le restrizioni imposte dalle dimensioni dei registri interi. La quasi totalità dei processori general purpose (con le importanti eccezioni della architettura ARM e della maggior parte delle implementazioni a 32 bit della architettura MIPS) odierni hanno integrata al loro interno la gestione della matematica a virgola mobile, che può o meno fare uso di registri a virgola mobile larghi 64 bit per contenere i valori da elaborare. La architettura AMD64, per esempio, contiene una unità SSE che include 16 registri a 128 bit, oltre alla tradizionale unità x87 che ha, al suo interno, 8 registri a 80 bit in una configurazione a stack. Per contrasto, la famiglia Alpha a 64 bit definisce 32 registri a virgola mobile da 64 bit in aggiunta ai suoi 32 registri interi a 64 bit.

Limitazioni di memoria

La maggior parte delle CPU sono progettate in maniera da far sì che un singolo registro intero possa contenere l'indirizzo di un qualunque dato all'interno dello spazio di indirizzamento della memoria virtuale. Per cui, il numero totale di indirizzi nella memoria virtuale — la totalità dei dati che il computer può mantenere nell'area di lavoro — è determinato dalla dimensione di questi registri. A partire dagli anni 60 con il System 360 della IBM, continuando negli anni 70 con (insieme a molti altri) il minicomputer DEC VAX ed infine negli anni 80 con il processore Intel 80386, si sviluppò un consenso de facto sul fatto che 32 bit fosse una buona dimensione per i registri. Un registro a 32 bit consente di indirizzare 232 indirizzi, o 4 gigabyte di memoria. Nel periodo in cui queste architetture vennero progettate, 4 gigabyte di memoria erano talmente aldilà della quantità di memoria normalmente installata da venire considerati sufficienti. Un'altra importante ragione è che 4 miliardi (circa) di indirizzi bastano per assegnare una unica referenza a molti oggetti fisicamente numerabili in applicazioni come i database. Col passare del tempo e con la continua diminuzione dei costi della memoria (vedi la legge di Moore), ora dei primi anni 90, cominciarono ad apparire macchine con quantitativi di RAM vicini ai 4 gigabyte, e l'uso di uno spazio di memoria virtuale maggiore di 4 gigabyte cominciò ad essere richiesto per gestire certe tipologie di problemi. In risposta, un certo numero di aziende cominciò a rilasciare nuove famiglie di chip con architettura a 64 bit, inizialmente per i supercomputer e le macchine (workstation e server) di fascia alta. La tecnologia a 64 bit è gradualmente arrivata anche sui normali PC, con il PowerMac(2003) e l'iMac(2004) della Apple che usano entrambi processori a 64 bit (Apple li chiama G5), e l'architettura AMD "AMD64" (copiata da Intel sotto il nome "EM64T") che si diffonde nei PC di fascia alta.

Cronologia


- 1991: MIPS Technologies produce la prima CPU a 64 bit, in qualità di terza revisione della loro architettura (di tipo RISC) MIPS, il modello R4000. La CPU viene resa disponibile nel 1991 e usata nelle workstation grafiche SGI a cominciare dalla serie Crimson, usando la versione a 64 bit del sistema operativo IRIX.
- 1992: La Digital Equipment Corporation introduce l'architettura DEC Alpha nata dal progetto PRISM.
- 1994: Intel annuncia i suoi piani per l'architettura a 64 bit IA-64 (sviluppata congiuntamente con HP) succeditrice dei suoi processori a 32-bit (IA-32). Il lancio è previsto per il 1998-1999.
- 1995: HAL Computer Systems (di proprietà della Fujitsu) lancia delle workstation basate su CPU a 64 bit, la prima generazione dello SPARC64 progettata indipendentemente da HAL. Escono i sistemi AS/400 della IBM a 64 bit che grazie alla loro particolare architettura (il set di istruzioni TIMI) sono in grado di convertire tutto il vecchio software a 32 bit in software nativo a 64 bit senza bisogno di ricompilarlo.
- 1996: Sun e HP rilasciano i loro processori a 64 bit, lo UltraSPARC ed il PA-8000. Sun Solaris, IRIX, e altre varianti di UNIX continuano ad essere i sistemi operativi a 64 bit più utilizzati.
- 1999: Intel rilascia il UNIX relativo all'architettura IA-64. Prime notizie sulle estensioni a 64 bit (x86-64) per l'architettura IA-32 da parte di AMD.
- 2000: IBM mette in commercio il suo primo mainframe a 64 bit, lo zSeries z900, ed il nuovo sistema operativo z/OS — portando al culmine il maggior investimento nello sviluppo di una CPU a 64 bit nella storia e spazzando via istantaneamente i sistemi compatibili a 31 bit prodotti da concorrenti quali Fujitsu/Amdahl e Hitachi. Sistemi zSeries con a bordo Linux seguono velocemente.
- 2001: Intel mette infine in commercio la sua linea di processori a 64 bit, ora chiamata Itanium, puntando al mercato dei server di fascia alta. A causa dei continui ritardi sul suo rilascio, Itanium delude le aspettative e si trasforma in un fiasco. Linux è il primo sistema operativo a girare sul processore al momento del suo lancio.
- 2002: Intel introduce l'Itanium 2, successore di Itanium.
- 2003: AMD rilascia il processore a 64 bit Opteron e la linea di CPU Athlon 64. Anche Apple mette in commercio CPU PowerPC a 64 bit grazie ad IBM e Motorola, insieme ad un aggiornamento del suo sistema operativo Mac OS X. Diverse distribuzioni Linux escono con il supporto all'architettura x86-64. Microsoft annuncia lo sviluppo di una versione del suo sistema operativo Windows per i chip AMD. Intel resta sulla sua posizione di supporto ad Itanium come suo unico processore a 64 bit.
- 2004: Intel, in reazione al successo dell'architettura a 64 bit AMD, ammette lo sviluppo di un clone delle estensioni x86-64, che chiama EM64T. Versioni aggiornate delle famiglie Xeon e Pentium 4 che supportano le nuove istruzioni entrano in commercio.
- 2005: In Marzo, Intel annuncia che il suo primo processore dual-core verrà commercializzato nel secondo trimestre del 2005 col rilascio del processore Pentium Extreme Edition 840 e i nuovi chip Pentium D. I processori dual-core Itanium 2 seguiranno nel quarto trimestre.
- 2005: Il 18 Aprile, Beijing Longxin svela la sua prima CPU compatibile con le specifiche x86-64, chiamata Longxin II. Il chip di circa 2,5 centimetri quadrati contiene 13,5 milioni di transistor, con una capacità di picco di due miliardi di operazioni al secondo e di un miliardo rispettivamente con un singolo controllo di accuratezza e con uno doppio. La massima frequenza è di 500 Mhz ed il consumo va da 3 a 5 watt.
- 2005: Il 30 Aprile, Microsoft rilascia al pubblico Windows XP x64 Edition per i processori x86-64.
- 2005: A Maggio, AMD rilascia la famiglia di processori dual-core Athlon 64 X2 pensati per i desktop. I processori Athlon 64 X2 (Toledo) contengono due nuclei con 1MB di cache L2 per nucleo e sono composti da circa 233.2 milioni di transistor. Sono grandi 199 mm².
- 2005: In Luglio, IBM annuncia il suo nuovo processore dual core a 64 bit PowerPC 970MP (nome interno Antares).

32 contro 64 bit

Il passaggio da un'architettura a 32 bit verso una a 64 comporta un cambiamento profondo, in quanto la maggior parte dei sistemi operativi devono venire pesantemente modificati per trarre vantaggio dalla nuova architettura. Anche gli altri programmi devono prima essere "portati" per poter sfruttare le nuove funzionalità; i vecchi programmi sono generalmente supportati attraverso una modalità di compatibilità hardware (dove cioè il processore supporta anche il vecchio set di istruzioni a 32 bit), attraverso l'emulazione software, o anche attraverso l'implementazione del nucleo di un processore a 32 bit all'interno del chip stesso del processore (come sui processori Itanium2 della Intel). Una significativa eccezione è l'AS/400, il cui software gira su una ISA(Instruction Set Architecture) virtuale implementata con un programma a basso livello. Questo programma, chiamato TIMI, è tutto ciò che bisogna riscrivere per portare l'intero sistema operativo e tutti i programmi su una nuova piattaforma, come quando IBM migrò la linea dai POWER a 32 bit a quelli a 64. Un'altra eccezione significativa è la z/Architecture di IBM che fa girare senza problemi applicazioni con diversi tipi di indirizzamento (24,31 e 64 bit) in contemporanea. Benché le architetture a 64 bit rendano indiscutibilmente più semplice lavorare con quantitativi massicci di dati come per il video digitale, nell'elaborazione scientifica, e nei grossi database, ci sono state parecchie discussioni riguardo a quanto esse o le loro modalità 32 bit compatibili siano più veloci, in altri tipi di lavori, rispetto a sistemi a 32 bit di prezzo analogo. Teoricamente, alcuni programmi potrebbero essere più veloci in modalità a 32 bit. Le istruzioni a 64 bit portano via più spazio di quelle a 32, per cui è possibile che certi programmi a 32 bit possano entrare nella velocissima memoria cache della CPU laddove quelli a 64 non ci riescano. In altri termini, usare 64 bit per effettuare operazioni che potrebbero essere gestite a 32, comporta un inutile spreco di risorse (memoria centrale, cache, ecc.). Comunque, in applicazioni come quelle scientifiche, i dati elaborati spesso usano in maniera naturale blocchi di 64 bit, e saranno quindi più veloci su un'architettura a 64 bit in quanto la CPU è progettata per lavorare direttamente con queste dimensioni piuttosto che costringere il programmi ad eseguire più passi per ottenere lo stesso risultato. Queste valutazioni sono complicate anche dal fatto che durante la definizione delle nuove architetture, i progettisti del set di istruzioni hanno colto l'opportunità per apportare modifiche che vanno a colmare lacune di quello vecchio, aggiungendo nuove caratteristiche tese a migliorare le prestazioni (come, ad esempio, i registri aggiuntivi nella architettura AMD64).

Pro e contro

Un errore comune è quello di ritenere che le architetture a 64 bit non siano migliori di quelle a 32 a meno che non si abbiano più di 4 gigabyte di memoria. Questo non è completamente vero:
- Alcuni sistemi operativi riservano per uso proprio una porzione dello spazio di indirizzamento di ciascun processo, riducendo di fatto lo spazio libero indirizzabile dai programmi. Per esempio le DLL di Windows XP e i componenti di sistema che girano in modalità utente vengono mappati all'interno dello spazio di indirizzamento di ogni processo, lasciando solo 2 o 3 gigabyte (dipende dalla configurazione del sistema) di spazio di indirizzamento disponibile, anche se la macchina ha 4 gigabyte di RAM. Questa restrizione non è presente nella versione a 64 bit di Windows.
- La mappatura in memoria dei file sta diventando sempre più problematica sui sistemi a 32 bit, specialmente dopo l'introduzione di soluzioni economiche per la scrittura di DVD. File da 4 GB sono ormai usuali, e viste le dimensioni la loro mappatura in memoria su macchine a 32 bit è complicata. Questo porta a problemi prestazionali, dal momento che la mappatura in memoria resta uno dei metodi più efficienti per i trasferimenti dal disco alla memoria, quando viene implementata correttamente dal sistema operativo. Il maggior svantaggio delle architetture a 64 bit rispetto a quelle a 32 risiede nel fatto che gli stessi dati occupano uno spazio leggermente maggiore in memoria (a causa dei puntatori più larghi, altri tipi di dati e allineamenti -i compilatori in genere inseriscono dei byte inutilizzati allo scopo di allineare l'indirizzo dei dati a una qualche potenza del 2, spesso pari al numero di bit dell'architettura-). Questo incrementa le richieste di memoria dei programmi, e può avere implicazioni nell'uso efficiente della cache (che ha dimensioni limitate). Mantenere parzialmente un modello di dati a 32 bit è un modo, in genere ragionevolmente efficiente, di gestire la situazione. Infatti, il sistema operativo z/OS, decisamente orientato alle prestazioni, usa questo approccio e costringe il codice eseguibile a risiedere in un numero qualsiasi di spazi di indirizzamento a 31 bit mentre i dati possono opzionalemente risiedere in regioni a 64 bit.

Modelli di dati a 64 bit

Convertire applicazioni scritte in linguaggi ad alto livello da 32 a 64 bit presenta diversi gradi di difficoltà. Un problema ricorrente è che l'autore del programma ha dato per scontato il fatto che un puntatore (una variabile che contiene un indirizzo di memoria) ha la stessa dimensione di una variabile di un qualche altro tipo e che sia quindi possibile spostare valori tra i due tipi senza perdere informazioni. Questo assunto è valido su alcune macchine a 32 (e anche su alcune a 16), ma fallisce su architetture a 64. Il linguaggio C e il suo discendente C++ rendono particolarmente semplice compiere questo tipo di errore. Per evitare questo problema, in C e C++, l'operatore sizeof() può essere usato per determinare le dimensioni dei vari tipi di dati, nel caso su queste si debbano prendere delle decisioni durante l'esecuzione. Inoltre, i file limits.h (standard C99) e climits (standard C++) danno ulteriori informazioni utili; sizeof() si limita a restituire la dimensione in byte, il che a volte non è sufficiente, perché neanche la dimensione del byte è ben definita in C e C++. È necessario essere prudenti e usare il tipo ptrdiff_t (nel file header <stddef.h>) quando si effettuano operazioni di aritmetica dei puntatori; troppo codice usa invece (sbagliando) i tipi "int" e "long". Ne il C, ne il C++ definiscono la lunghezza in bit di un puntatore, int o long. In molti ambienti di programmazione su sistemi a 32 bit le variabili puntatore, "int" e "long" sono tutte lunghe 32 bit. In molti ambienti di programmazione a 64 bit, le variabili "int" sono ancora lunghe 32 bit, ma le "long" e i puntatori passano a 64. Questo viene descritto come avente un modello dati di tipo LP64. Un'altra alternativa è il modello ILP64 dove anche il tipo "int" passa a 64 bit. Ad ogni modo, nella maggior parte dei casi le modifiche necessarie per migrare del codice verso i 64 bit sono relativamente semplici, e molti programmi scritti correttamente possono essere semplicemente ricompilati senza variazioni. Una ulteriore alternativa è il modello LLP64 che mantiene la compatibilità con il codice a 32 bit, mantenendo a 32 bit i tipi "int" e "long". Il tipo "long long" ("LL") è ad almeno 64 bit su tutte le piattaforme comprese quelle a 32 bit. È da notare che il modello di programmazione è una scelta da fare in base al compilatore, e ne possono coesistere più di uno per lo stesso sistema operativo. Comunque in genere prevale il modello utilizzato dalle API del sistema operativo. Un'altra considerazione riguarda il modello dati usato per i driver. I driver formano la maggior parte del codice presente nei sistemi operativi moderni (benché molti potrebbero non essere in esecuzione mentre il sistema operativo sta girando). Molti driver usano pesantemente i puntatori ed in certi casi devono caricare puntatori di una dimensione precisa nei registri hardware di gestione del DMA. Per esempio, un driver per un dispositivo PCI a 32 bit che necessiti che quest'ultimo carichi in memoria dati ad un indirizzo oltre la barriera dei 4 gigabyte non potrebbe portare a termine l'operazione poiché il puntatore è troppo grande per essere contenuto nei registri del dispositivo. Il problema si risolve facendo sì che il sistema operativo tenga in considerazione le restrizioni del dispositivo al momento di generare le richiesta DMA.

Architetture a 64 bit

Le architetture a 64 bit comprendono (2005):
- L'architettura DEC_Alpha (vedit [http://research.microsoft.com/~gbell/Digital/timeline/64-bit.htm ALPHA 64-bit timeline])
- L'IA-64 della Intel (usata nelle CPU Itanium)
- L'AMD64 dalla AMD (usata nelle CPU Opteron e Athlon 64)
  - Intel ora propone la stessa architettura per i propri processori sotto il nome EM64T.
- L'architettura SPARC
  - L'architettura UltraSPARC della Sun
  - L'architettura SPARC64 della Fujitsu
- L'architettura POWER della IBM
- L'architettura PowerPC di IBM/Motorola(in origine il PowerPC 620, più recentemente PowerPC 970)
- L'architettura z/Architecture della IBM, usata sui mainframe IBM z/Series
- Le architetture MIPS IV, MIPS V, e MIPS64 della MIPS Technologies
- La famiglia PA-RISC della HP

Oltre i 64 bit

64 bit sembrano sufficienti per la maggior parte degli utilizzi del giorno d'oggi. Si può tuttavia menzionare che l'IBM System/370 utilizzava numeri a virgola mobile di 128 bit, e che ormai anche molti processori moderni li supportano. Il System/370 è da notare, comunque, in quanto usava anche numeri decimali a lunghezza variabile fino ad un massimo di 16 byte (cioè 128 bit).

Voci correlate


- Memoria_centrale
- Win64

Collegamenti esterni


- Porting to 64-bit GNU/Linux Systems, by Andreas Jaeger from [http://www.linux.org.uk/~ajh/gcc/gccsummit-2003-proceedings.pdf gcc summit 2003]. An excellent paper explaining almost all practical aspects for a transition from 32-bit to 64-bit.
- [http://www.64bitsupport.com/ 64-Bit Support Computerforum]
- [http://www.usenix.org/publications/login/standards/10.data.html Data Size Neutrality and 64-bit Support]
- [http://www.windowsnetworking.com/articles_tutorials/64-Bit-Computing.html What You Need To Know About The Shift to 64-Bit Computing]
- [http://herd.plethora.net/~seebs/c/10com.html Henry Spencer's 10 Commandments for C Programmers] menziona esplicitamente la portabilità verso i 64-bit
- [http://www.sparcproductdirectory.com/view55.html Fujits...Who? - A Primer on Fujitsu's SPARC Heritage]
- [http://www.chinaembassy.org.ro/rom/kjwh/t198811.htm China's First 64-bit CPU]

IBM

International Business Machines Corporation (IBM o, in linguaggio colloquiale, Big Blue) è la più grande azienda di informatica nel mondo, e una delle più vecchie. Costituita il 15 giugno 1911, ma attiva dal 1888, ha sede ad Armonk, New York, USA. Le origini italiane dell’azienda americana IBM, risalgono al 1927 L'azienda produce computer di tutte le dimensioni (esclusi i palmari), software e servizi informatici. Dal dicembre 2004 (operativamente da giungo 2005) IBM Corporation ha ceduto a Lenovo (azienda leader in Cina e sui mercati asiatici attiva nella produzione di PC, Cellulari, server e periferiche) la propria divisione Personal Computing. La società è una parte importante della storia dell'informatica. In passato, il prodotto principale era il mainframe, in cui è tuttora leader di mercato. Tra la fine degli anni 1980 e l'inizio degli anni 1990, a causa dell'emergere dell'informatica distribuita, attraversò un periodo di profonda crisi. IBM ricominciò a salire la china puntando sue due direttrici: i servizi a valore aggiunto, e i sistemi cosiddetti "midrange", cioè la serie AS/400, oggi iSeries, che sarebbe esplosa letteralmente prima nelle PMI e poi anche nelle grandi aziende, dove si conquistò un posto come "snodo" fra i grandi Mainframe e le unità produttive decentrate. Attualmente è attiva in molti settori: dai server che vende con vari sistemi operativi (AIX, Linux, Windows NT), al software (questa divisione nasce nel 1995), ai servizi in ambito informatico, ai microprocessori (ad esempio i PowerPC e recentemente insieme a Sony e Toshiba ha sviluppato il processore multimediale Cell), alle stampanti ed altro ancora. IBM ha sposato da tempo la scelta di sostenere il software Open Source collaborando con molti propri specialisti alla realizzazione di pilastri come il server HTTP Apache e l'ambiente di sviluppo software Eclipse, pensato come un framework multipiattaforma facilmente integrabile e personalizzabile per diversi ambienti e linguaggi di programmazione, partendo da Java ma oggi anche con supporti per PHP. La politica mondiale di IBM è basata essenzialmente sulla rete dei Business Partner, che veicolano la maggior parte dei prodotti e servizi della casa madre. In Italia, per rispondere alle esigenze gestionali del mercato e per le specificità fiscali richieste, IBM ha sviluppato le Applicazioni Contabili Gestionali (ACG) disponibili sia in ambiente iSeries che in ambiente Java. Le ACG sono interamente realizzate in Italia e vengono vendute con circa l'ottanta per cento dei programmi in formato sorgente, in modo da permettere numerose personalizzazioni che oggi compongono un folto catalogo disponibile presso i Business Partner.

Collegamenti esterni


- [http://www.ibm.com/it/ il sito di IBM per l'Italia] IBM Categoria:Aziende informatiche ja:IBM ko:아이비엠 th:ไอบีเอ็ม

CPU

La CPU (acronimo di Central Processing Unit, detta comunemente processore) è l'implementazione fisica di uno dei due componenti della macchina di Turing (l'altro è la memoria). Compito della CPU è quello di leggere le istruzioni e i dati dalla memoria ed eseguire le istruzioni; il risultato della esecuzione di una istruzione dipende dal dato su cui opera e dallo stato interno della CPU stessa, che tiene traccia delle passate operazioni. In base all'organizzazione della memoria si possono distingure due famiglie di CPU:
- con architettura von Neumann classica, in cui dati ed istruzioni risiedono nella stessa memoria (è dunque possibile avere codice automodificante). Questa architettura è la più comune, perché la più semplice e flessibile.
- con architettura Harvard: i dati e le istruzioni risiedono in due memorie separate. Questa architettura garantisce migliori prestazioni poiché le due memorie possono lavorare in parallelo ma è più complessa da gestire. È tipicamente utilizzata nei DSP. Qualunque CPU contiene:
- una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche;
- una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU.
- dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente. Due registri sempre presenti sono:
  - il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l'indirizzo in memoria della prossima istruzione da eseguire;
  - il registro dei flag: questo registro non contiene valori numerici convenzionali, ma è piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari della CPU e alcune informazioni sul risultato dell'ultima operazione eseguita. I flag più importanti sono:
    - Zero: vale 1 se l'ultima operazione ha avuto risultato zero, altrimenti vale 0.
    - Carry: vale 1 se l'ultima operazione ha ecceduto la capacità del registro che contiene il risultato, altrimenti vale 0 (esempio: in un registro a 8 bit, che può rappresentare solo numeri da 0 a 255, la somma 178+250 darebbe come risultato 172 e il carry verrebbe posto a 1).
    - Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di rispondere alle richieste di servizio esterne delle periferiche (i segnali delle linee IRQ) finché non viene ripristinato al valore 0, o finché non arriva dall'esterno un segnale di RESET. A proposto di registri le CPU si distinguono in:
- basate su stack: i registri sono organizzati in una struttura a stack e tutte le istruzioni operano esclusivamente su questo stack (ad esempio il Transputer); questa architettura ha il vantaggio di non dover specificare su quale registro interno operare (è sempre quello in cima allo stack), ottenendo istruzioni (opcodes) più corte e più semplici da decodificare. L'altra faccia della medaglia è che nel caso sia necessario un dato "sepolto" in fondo allo stack, il suo recupero è un'operazione molto lenta.
- basate su registri: queste CPU sono dotate di ulteriori registri generici che restano a disposizione dell'utente per memorizzarci valori temporanei. Le istruzioni possono accedere a questi registri generici. La maggioranza delle CPU sono di questo tipo. Una CPU è un circuito digitale sincrono: vale a dire che il suo stato cambia ogni volta che riceve un impulso da un segnale di sincronismo detto CLOCK: quindi il tempo di esecuzione di una istruzione si misura in cicli di clock, cioè in quanti impulsi di clock sono necessari perché la CPU la completi. In effetti, una parte importante e delicata di ogni CPU è il sistema di distribuzione che porta il segnale di clock alle varie unità e sottounità di cui è composta, per fare in modo che siano sempre in sincronia: tale sistema si dirama in una struttura ad albero con divisori e ripetitori che giunge ovunque nella CPU. Nei processori più moderni (Pentium, Athlon, PowerPC) questa "catena di ingranaggi" elettronica arriva ad impiegare circa il 30% di tutti i transistor disponibili. La velocità di questa distribuzione determina in maniera diretta la massima frequenza operativa di una CPU: nessuna CPU può essere più veloce del suo critical path, cioè del tempo che impiega il clock per percorrere il tratto più lungo in tutto l'albero di distribuzione del clock. Per esempio, se il segnale di clock di una data CPU impiega un nanosecondo per attraversare tutto il chip ed arrivare fino all'ultima sottounità, questa CPU potrà operare a non più di 1 GHz, perché altrimenti le sue componenti interne perderebbero la sincronizzazione, con risultati imprevedibili (per motivi di tolleranze e margini di sicurezza, il limite pratico sarà anzi ben minore di 1GHz).

Set di istruzioni

Le istruzioni di una CPU (instruction set) sono semplicemente dei numeri, detti opcode o codici operativi: in base al loro valore l'unità di controllo intraprende delle azioni predefinite, come per esempio leggere la successiva locazione di memoria per caricare un dato, oppure attivare la ALU per eseguire un calcolo, oppure scrivere il contenuto di un registro in una certa locazione di memoria o in un altro registro, oppure una combinazione di queste. Per una persona, stendere programmi scrivendo direttamente gli opcode è estremamente noioso e prono all'errore. Per questo motivo si utilizza l'assembly. L'assembly associa un simbolo mnemonico ad ogni istruzione della CPU e introduce una sintassi che permette di esprimere i vari metodi di indirizzamento. Una caratteristica importante dell'insieme (set) delle istruzioni di una CPU è la sua ortogonalità: vale a dire, il fatto che ogni istruzione che usi i registri possa usarli tutti indifferentemente (tranne quelli "speciali" come l'IP) e che nessun registro sia in qualche modo privilegiato rispetto agli altri perché su di esso si possono compiere operazioni particolari: è stato dimostrato che un set di istruzioni ortogonali, a parità di tempo di esecuzione delle istruzioni e di numero dei registri, è più efficiente di uno non ortogonale.

Architettura della CPU

Qualunque CPU possiede almeno due unità distinte:
- una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche;
- una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU. Oltre a queste possono esserne presenti altre, per esempio:
- una FPU (Floating Point Unit) che si occupa di eseguire calcoli in virgola mobile;
- una MMU (Memory Management Unit) che si occupa di tradurre gli indirizzi di memoria logici in indirizzi fisici, supportando la protezione della memoria e/o uno o più meccanismi di memoria virtuale. Una generica CPU deve gestire una serie di operazioni sincronizzandole con il resto del sistema: perciò è dotata, oltre a quanto sopra elencato, anche di uno o più bus interni che si occupano di collegare registri, ALU, unità di controllo e memoria: inoltre, all'unità di controllo interna della CPU fanno capo una serie di segnali elettrici esterni che si occupano di tenere la CPU al corrente dello stato del resto del sistema e di agire su di esso. Il tipo e il numero di segnali esterni gestiti possono variare ma alcuni, come il RESET, le linee di IRQ e il CLOCK sono sempre presenti. Il normale ciclo di operazioni di una CPU è il seguente: l'unità di controllo legge la locazione di memoria indicata dal registro IP, incrementa il registro IP di uno e la decodifica; se la decodifica indica che l'istruzione è più lunga di una locazione di memoria, legge anche il resto dell'istruzione e incrementa l'IP del numero di locazioni lette; esegue l'istruzione; se necessario scrive in memoria (o in altri registri) il risultato. Dopodiché torna a leggere l'indirizzo puntato da IP per caricare ed eseguire un'altra istruzione, all'infinito. Questo ciclo elementare può essere migliorato in vari modi: per esempio, la decodifica di una istruzione può essere fatta contemporaneamente all'esecuzione della precedente e alla lettura dalla memoria della prossima (instruction prefetch) e lo stesso può essere fatto con i dati che si prevede saranno necessari alle istruzioni (data prefetch). La stessa esecuzione delle istruzioni può essere suddivisa in passi più semplici, da eseguire in stadi successivi, organizzando la unità di controllo e la ALU in stadi consecutivi, come delle catene di montaggio (pipeline): in questo modo più istruzioni possono essere eseguite "quasi contemporaneamente", ciascuna occupando ad un certo istante uno stadio diverso della pipeline. Il problema di questo approccio sono le istruzioni di salto condizionato, cioè istruzioni che impostano il valore stesso del registro IP, ma solo se al momento della loro esecuzione sono verificate certe condizioni (particolari valori di registri). La CPU non può sapere a priori se dovrà eseguire o no il salto prima di aver eseguito quelle precedenti, così deve decidere se impostare la pipeline tenendo conto del salto o no: e in caso di previsione errata la pipeline va svuotata completamente e le istruzioni in corso di decodifica rilette da capo, perdendo molto tempo: e si perde tanto più tempo quanti più stadi ha la pipeline. Per evitare questo i processori moderni hanno unità interne (Branch prediction unit) il cui scopo è tentare di prevedere se, data una istruzione di salto condizionato e quelle eseguite in precedenza, il salto dovrà essere eseguito o no.

Architetture CISC e architetture RISC

Quando i transistor disponibili su un solo chip erano pochi e i calcolatori venivano spesso programmati in assembler, era naturale sfruttarli in modo tale da avere CPU con istruzioni potenti, evolute e complesse: più queste erano vicine alle istruzioni dei linguaggi di programmazione ad alto livello più il computer sarebbe stato facile da programmare, e i programmi avrebbero occupato poco spazio in memoria (anch'essa poca e preziosa). Le CPU progettate secondo questo approccio sono dette CISC ed avevano unità di controllo complesse capaci di sfruttare al meglio pochi registri e i cui programmi erano di dimensioni relativamente piccole. A cavallo fra gli anni '70 e gli '80 però la situazione era in gran parte cambiata: la RAM era molto più economica ed erano ormai disponibili ottimi compilatori in grado di generare linguaggio macchina molto efficiente: per questo si iniziò a pensare ad un nuovo modo di progettare le CPU, prendendo in esame la possibilità di usare i transistor disponibili per avere invece molti registri e un set di istruzioni elementare, molto ridotto, che delegasse al compilatore il lavoro di tradurre le istruzioni complese in serie di istruzioni più semplici, permettendo così di avere unità di controllo particolarmente semplici e veloci. Oramai però la distinzione fra queste due architetture è venuta in gran parte meno: il numero di transistor disponibili su un solo chip è aumentato tanto da poter gestire molti registri ed anche set di istruzioni complesse.

CISC (Complex Instruction Set Computer)

CISC è l'acronimo di Complex Instruction Set Computer: tipicamente un processore di questo tipo implementa un numero relativamente scarso (una decina) di registri di uso generale, ed ha una unità di controllo microprogrammata: vale a dire che ogni opcode viene tradotto in una serie di passi da compiere secondo un procedimento software interno all'unità di controllo stessa, che è in pratica una CPU nella CPU. Il set di istruzioni associato a CPU di tipo CISC è molto esteso e composto in genere di alcune centinaia di codici operativi diversi che svolgono funzioni anche molto complesse, fra cui sono caratteristici i trasferimenti memoria-memoria, assenti nei RISC; le istruzioni hanno lunghezza variabile e possono presentarsi in formati diversi, e sono necessari due o più (a volte molti di più) cicli di clock per completare una istruzione; è possibile specificare la posizione dei dati necessari alle istruzioni usando molti metodi di indirizzamento diversi. Il ridotto numero di registri interni obbliga questi processori a scrivere in memoria ogni volta che si verifica una chiamata di funzione, che si verifica un context switch o che viene salvato un registro nello stack. Programmare in Assembler un CPU CISC è un compito (relativamente) facile, perché le istruzioni presenti sono più vicine a quelle dei linugaggi ad alto livello: i compilatori che generano codice per CPU CISC sono piuttosto semplici ed inoltre il codice prodotto è molto compatto e occupa poca memoria.

RISC (Reduced Instruction Set Computer)

RISC è l'acronimo di Reduced Instruction Set Computer: questi processori hanno una unità di controllo cablata molto semplice e riservano invece molto spazio per i registri interni: una CPU RISC ha di solito da un minimo di un centinaio ad alcune migliaia di registri interni generici, organizzati in un file di registri. Il tipico set di istruzioni RISC è molto piccolo, circa sessanta o settanta istruzioni molto elementari (logiche, aritmetiche e istruzioni di trasferimento memoria-registro e registro-registro): hanno tutte lo stesso formato e la stessa lunghezza, e tutte o quasi vengono eseguite in un solo ciclo di clock. Sono presenti solo un numero ristretto di metodi di indirizzamento. Il fatto di avere un formato unico di istruzione permette di strutturare l'unità di controllo come una pipeline, cioè una catena di montaggio a più stadi: questa innovazione ha il grosso vantaggio di ridurre il critical path interno alla CPU e consente ai RISC di raggiungere frequenze di clock più alte rispetto agli analoghi CISC. Nel caso di context-switch o di chiamata a subroutine o comunque di uso dello stack i RISC invece di accedere alla memoria di sistema usano un meccanismo chiamato register renaming, che consiste nel rinominare i registri in modo da usare per la nuova esecuzione una diversa zona del file di registri, senza dover accedere alla memoria ogni volta. La complessità nei RISC si sposta dall'hardware al software: un compilatore che genera codice per CPU RISC deve affrontare un duro lavoro per generare codice compatto ed efficiente, che in ogni caso sarà più grande ed occuperà più memoria dell'equivalente per CISC.

Voci correlate


- Microprocessore
- Cache Categoria:Hardware ja:CPU ko:중앙처리장치 ms:Unit Pemproses Pusat th:หน่วยประมวลผลกลาง

Famiglia Power Mac G5

Power Mac G5 è il nome dato da Apple Computer al modello di Power Macintosh che utilizza il processore PowerPC G5. L'attuale versione di Power Mac G5 è composta da 3 modelli tutti biprocessori. I modelli sono il dual a 1.8 GHz, dual a 2.0 GHz e il dual a 2.5 GHz. Il processore comunica con la memoria utilizzando un bus funzionante alla metà delle frequenza del processore. Questo vuol dire che per esempio il dual a 2.5 GHz è dotato di un bus di sistema ad una frequenza di 1.25 GHz. Il bus del G5 è formato da due bus a 32 bit indipendenti, quindi mentre un processore preleva i dati dalla memoria l'altro processore può trasferire dati verso la memoria o le periferiche. Questa scelta permette di ottenere frequenze di funzionamento più elevate dato che i bus vengono specializzati. Uno trasmette solo i dati e l'altro invece riceve i dati. Essendo i due bus specializzati si possono adattare le impedenze a seconda che ricevano o trasmettano. È l'adattamento di impedenza specifico che consente frequenze più elevate dei normali computer. I due bus indipendenti consentono al G5 di avere una banda passante teorica di 10 GByte/s. Il G5 è in grado di accogliere fino a 16 GByte di memoria RAM: ciò è consentito dall'architettura della macchina che, essendo a 64 bit, può indirizzare un quantitativo di memoria notevolmente superore a quello di un sistema a 32 bit. Tutti i modelli dei PowerMac G5 sono dotati di un avanzato sistema di raffreddamento. Il computer è diviso in zone ed è dotato di 21 sensori che misurano la temperatura e forniscono le misurazioni al sistema operativo, il quale provvede a regolare dinamicamente la velocità delle nove ventole presenti nel computer. La versione a 2.7 GHz è dotata di un sistema di raffreddamento a liquido che consente di dissipare la potenza generata dai processori in modo efficente e sicuro. Data la loro potenza di calcolo, inizialmente i PowerMac G5 sono stati utilizzati anche dal Politecnico della Virginia per realizzare il loro cluster di calcolo. Attualmente i PowerMac G5 sono stati sostituti dai server Xserve G5, a 2.3 GHz che sono molto più piccoli e consumano meno potenza.

Processore PowerPC G5

Il PowerPC G5 (chiamato PowerPC 970FX dall'IBM) è basato sull'architettura del processore IBM Power4. Durante la presentazione del Power Mac G5, Apple ha annunciato un accordo con IBM per la realizzazione di nuove versioni dei processori PowerPC. L'accordo secondo l'IBM consentirà agli utenti di aver a disposizione il meglio della tecnologia derivata dai server ad un costo contenuto. IBM investe oltre 3 miliardi di dollari nella realizzazione di una nuova fabbrica automatizzata che si occupa della realizzazione dei processori G5 e di altri prodotti d'avanguardia. Il processore PowerPC G5 è composta da più di 58 milioni di transistor ed utilizza la tecnologia IBM a 90 nanometri, un millesimo di un capello umano. Il processo di fabbricazione utilizza strategie innovative come i collegamenti in rame per ottenere alte prestazioni ed è la prima volta che viene utilizzato per un processore a 64 bit. Inoltre, IBM ha recentemente presentato il Power5, che secondo indiscrezioni sarà il processore che fornirà la base per le future evoluzioni dei processori PowerPC. Il Power5 è dotato di numerose innovazioni rispetto al Power4, inclusa la versione IBM della tecnologia hyper-threading, che consente un funzionamento più efficiente dei processi concorrenti ed un gestore del risparmio energetico avanzato. Ogni processore Power5 include due CPU indipendenti, quindi utilizzando l'Hyper-treading è come se si disponesse di 4 CPU per ogni processore.

Revisioni del prodotto


- 2003 giugno: prima versione con frequenze di 1.6, 1.8, DP 2.0 GHz
- 2003 novembre: DP 1.8 rimpiazza la versione a singolo processore a 1.8GHz; riduzione del prezzo dell'unità a 1.6 GHz
- 2004 giugno: 90 nm DP 1.8 GHz, DP 2.0 GHz e unità a DP 2.5 GHz con raffreddamento a heat-pipe liquido che rimpiazzano i modelli precedenti.
- 2004 ottobre: Modello economico a 1.8 GHz monoprocessore con bus a 600 MHz.
- 2005 aprile: 90 nm DP 2.0 GHz, DP 2.3 GHz e unità a DP 2.7 GHz con raffreddamento a heat-pipe liquido che rimpiazzano i modelli precedenti, mantenuto il modello economico monoprocessore a 1.8 Ghz.
- 2005 ottobre Processori dual core a 2.5 Ghz, bus PCI Express, memorie a 533 Mhz, 16 Gbyte massima di RAM nuova scheda grafica.

Lista modelli

PowerPC IBM 970 (G5) (64-bit) PowerPC IBM 970FX (G5) PowerPC IBM 970GX (G5) PowerPC IBM 970 MP (G5)

Voci correlate


- Prodotti Apple
- Famiglia Power Macintosh

Collegamenti esterni


- [http://www.apple.com/it/powermac/ Apple: Power Mac]
- [http://www.apple.com/it/g5processor/ Apple: PowerPC G5 Processor]
- [http://www.tcf.vt.edu/systemX.html Cluster del politecnico della Virginia] (In Inglese) Categoria:Computer Apple

Transistor

Il transistor è un dispositivo a stato solido formato da semiconduttori. Venne scoperto casualmente da Russel Ohl il 23 febbraio 1939, esaminando la differenza di conducibilità tra due lati di un cristallo di silicio semiconduttore con una crepa. Praticamente il cristallo era una rudimentale giunzione P-N. I transistor vengono impiegati in ambito elettronico, principalmente, come amplificatori di segnali elettrici o come interruttori elettronici comandati da segnali elettrici ed hanno sostituito praticamente quasi del tutto i tubi termoionici. Il primo tipo di transistor sperimentato e poi prodotto fu il transistor bipolare o BJT, in cui sia elettroni che lacune contribuiscono al passaggio della corrente. In seguito furono creati altri tipi di transistor, in cui il passaggio di corrente avveniva grazie ad un solo tipo di portatori di carica (o elettroni o lacune), detti FET, acronimo di Field Effect Transistor. Sia i FET che i BJT, nel tempo, hanno dato origine a molti tipi diversi di transistor, usati per gli scopi più vari. Nel linguaggio comune vengono chiamate transistor anche le piccole radio AM/FM portatili a pile, che furono la prima applicazione di questi dispositivi a raggiungere il mercato di massa, verso il 1950.

Transistor bipolare (BJT)

1950 In un transistor BJT (transistor a giunzione bipolare) una corrente elettrica è inviata nella base (B) e modula (controlla) la corrente che scorre tra gli altri due terminali noti come emettitore (E) e collettore (C). Per fare questo, il transistor sfrutta la vicinanza di due giunzioni P-N opposte: quando la giunzione base-emettitore viene polarizzata direttamente, i portatori di carica (elettroni e lacune) che transitano attraverso di essa diffondono verso la vicina giunzione collettore-base, dove vengono in gran parte catturati dal campo elettrico interno alla giunzione stessa, che in questo modo viene percorsa da corrente anche se polarizzata inversamente. Tanto maggiore è la frazione di corrente catturata dalla giunzione di collettore, tanto migliore è il transistor: in un transistor ideale, perfetto, tutta la corrente della giunzione base-emettitore dovrebbe essere deviata verso il collettore senza raggiungere mai il contatto di base. In pratica, in un normale transistor per usi generici la corrente uscente dal collettore è il 98-99% di quella che entra nell'emettitore, e dalla base esce solo l'1-2% di essa. Il rapporto fra corrente di collettore e corrente di base è detto \beta del transistor. L'ordine delle giunzioni non è importante: si possono usare sia una coppia di giunzioni P-N e N-P (ottenendo un transistor P-N-P) oppure due giunzioni N-P e P-N (ottenendo un transistor N-P-N, complementare al primo): un transistor e il suo complementare funzionano in modo quasi identico, ma le tensioni ai loro capi devono essere invertite di polarità (da positive a negative e viceversa).

Transistor FET

collettore In un transistor FET (transistor ad effetto di campo) i tre terminali sono chiamati gate G (porta), source S (sorgente) e drain D (pozzo) rispettivamente, e l'effetto transistor si ottiene tramite il campo elettrico indotto dalla tensione applicata al terminale gate che respinge i portatori di carica del silicio del canale fra source e gate, variandone la resistenza elettrica: più la tensione fra gate e source è grande, più ampia diventa la regione svuotata non conduttrice, priva di portatori, e più cresce la resistenza elettrica fra souce e drain. Rispetto ai transistor bipolari i FET presentano il vantaggio di avere il terminale di controllo (gate) isolato, in cui non passa alcuna corrente: lo svantaggio invece è che un transistor FET non è in grado di offrire molta corrente in uscita: in genere i circuiti con transistor FET hanno una alta impedenza di uscita, cioè erogano correnti molto deboli. Anche i FET come i transistor bipolari possono essere realizzati in due versioni complementari, a canale P fiancheggiato da regioni N o a canale N fiancheggiato da regioni P (come quello nella figura a lato); come nei bipolari il funzionamento è identico, ma a polarità invertite.

Transistor MOS-FET

impedenza I transisori MOSFET sono dei Fet in cui la tensione applicata sul Gate non solo crea una zona svuotata priva di portatori, ma se cresce oltre una tensione detta "di soglia", provoca una inversione di popolazione nel silicio a ridosso dello strato di ossido: nella figura a lato, le due regioni dei terminali di source e drain sono ricavate da silicio P, e sono in comunicazione elettrica tramite il "canale P" creato per inversione nello strato N che le separa, grazie alla tensione applicata al gate sulla barriera superficiale di ossido. Anche qui, è possibile invertire le regioni: in figura è riportato un mosfet a canale p (p-mos), il suo complementare (n-mos) si ricava con un substrato P su cui sono inserite le regioni N di source e drain. Come nel caso dei bipolari, anche il funzionamento dei p-mos e degli n-mos è (quasi) identico, ma a polarità invertite. Mentre i transisor BJT sono principalmente usati, per il loro alto guadagno, come amplificatori nell'elettronica analogica, i MOSFET sono largamente utilizzati nell'elettronica digitale, soprattutto per la loro struttura molto semplice che li rende facili da costruire e molto economico l'impiego nei circuiti integrati: un ulteriore vantaggio è il basso consumo di energia che si traduce in meno problemi di dissipazione termica, mentre lo svantaggio principale è che sono più lenti nel cambiare stato rispetto ai transistor bipolari. I moderni circuiti integrati a mosfet (microprocessori, DSP, microcontrollori, etc...) usano tutti la tecnologia CMOS (complementary mos), in cui si usano un p-mos e un n-mos accoppiati, oppure la sua evoluzione BiCMOS.

Altri tipi di transistor

Con l'evolversi della tecnologia sono stati creati anche altri tipi di transistor, dotati di caratteristiche diverse o adatti a usi particolari: per esempio il transistor unigiunzione è un generatore di impulsi e non può amplificare nè commutare. I transistor IGBT (Insulated Gase Bipolar Transistor) invece sono dispositivi ibridi fra i transistor bipolari e i Mosfet, adatti a maneggiare forti correnti.

Radio a transistor

Nel linguaggio comune vengono chiamate transistor anche le piccole radio AM/FM portatili a pile, che furono la prima applicazione di questi dispositivi a raggiungere il mercato di massa, negli anni '50.

Voci correlate


- Diodo
- Giunzione p-n
- Semiconduttore
- Dispositivi a semiconduttore
- Valvola termoionica
- Tubo termoionico
- BJT
- MOSFET
- JFET Categoria:Componenti elettronici ja:トランジスタ ko:트랜지스터

POWER

POWER è il nome di una architettura CPU RISC sviluppata da IBM, ed è l'acronimo di Performance Optimization With Enhanced RISC (oltre a significare potenza in inglese). I microprocessori POWER sono usati come CPU principale in molti server, minicomputer, workstation e supercomputer IBM. Questa architettura è stata utilizzata come base per la creazione dell'architettura PowerPC (destinata ai PC Macintosh, ad alcune workstation IBM e ad applicazioni embedded), a cui rimane molto simile.

Architettura

Il design POWER discende direttamente dall'IBM 801, considerato da molti il primo vero microprocessore RISC. L'801 fu molto usato nell'hardware IBM, ma non divenne noto al grande pubblico fino al lancio dell'IBM PC/RT, dalle prestazioni mediocri, alla metà degli anni '80. Mentre il PC/RT veniva rilasciato sul mercato, IBM diede inizio allAmerica Project, con l'intenzione di creare la CPU più potente sul mercato. Si concentrarono su due problemi principali dell'801: #richiedeva che tutte le istruzioni venissero eseguite all'interno di un singolo ciclo di clock, impedendo lo svolgimento di calcolo in virgola mobile; #nonostante il decoder delle istruzioni fosse strutturato con una pipeline per quanto descritto sopra, l'801 non era superscalare. Il calcolo in virgola mobile divenne il pallino dellAmerica Project, e IBM potè usare nuovi algoritmi sviluppati nei primi anni '80 che potevano eseguire moltiplicazioni e divisioni a precisione doppia in un singolo ciclo di clock. La FPU era separata dal decoder delle istruzioni e dall'ALU, permettendo al primo di poter inviare le rispettive istruzioni alle unità funzionali nello stesso tempo. IBM inoltre inserì un complesso instruction decoder che poteva compiere contemporaneamente il fetch di una istruzione, la decodifica di un'altra e l'invio di un'altra ancora all'ALU o alla FPU, risultando così una delle prime macchine superscalari. Il sistema usava trentadue registri interi a 32 bit e altrettanti a 64 bit per la virgola mobile, nelle rispettive unità. Anche la BPU (branch prediction unit) aveva i suoi propri registri, incluso quello contatore (PC). L'801 aveva un design semplice, e l'ipercorrezione contenuta nel POWER ne fece un processore più complesso della maggior parte delle CPU RISC del tempo. L'instruction set del POWER (e del PowerPC contiene più di cento istruzioni di lunghezza variabile, molte delle quali sono variazioni di altre, a differenza ad esempio dell'ARM che ne possiede solo trentaquattro. Un'altra interessante caratteristica di questa architettura un sistema di indirizzamento virtuale che inserisce tutti gli indirizzi in un ambiente a 52 bit. In questo modo le applicazioni possono condividere memoria in un ambiente "piatto" a 32 bit e ogni programma può avere blocchi differenti di 32 bit ciascuno.

Applicazioni

La prima CPU POWER1 consisteva di tre chip: l'unità di predizione delle istruzioni (BPU), l'unità intera (ALU) e l'unità in virgola mobile (FPU). Questi erano collegati su una grossa scheda per costituire un sistema unico. Il POWER1 fu usato soprattutto nelle workstation RS/6000. Il POWER2 era in sostanza un POWER1 migliorato e fu il processore di questa serie più longevo: fu lanciato nel 1993 ed era ancora usato cinque anni dopo. Conteneva una FPU addizionale, 256 MB di memoria cache in più e la capacità di calcolo in virgola mobile a 128 bit. Il POWER3 seguì nel 1998, includendo un pieno supporto del 64 bit, rimanendo tuttavia completamente compatibile con linstruction set POWER precedente. Questo era uno degli obiettivi del progetto PowerPC e il POWER3 fu il primo processore IBM a trarne vantaggio. Aggiungeva inoltre una terza ALU ed un ulteriore instruction decoder, per un totale di otto unità funzionali. La serie POWER4 include due CPU complete (simili ad un POWER3 con velocità superiore) su un unico chip, e offre la possibilità di collegamento ad alta velocità con fino ad altre tre paia di POWER4. Questi possono essere posti insieme su una scheda madre per comporre un multiprocessore simmetrico con otto CPU. Quando un processo richiede un'alta velocità piuttosto che un calcolo complesso, una coppia di CPU può essere disabilitata in modo che le tre rimanenti abbiano il bus per la cache L3 libero. Il POWER4, anche singolo, è considerato da molti la CPU più potente disponibile. Nel 2003 IBM ha sviluppato una versione single-core del POWER4 per i personal computer di Apple, chiamata PowerPC 970, ovvero PowerPC G5. IBM ha lanciato il POWER5 nel 2004. La versione a 1,9 GHz ha fatto segnare il più alto punteggio mai segnato da una CPU a processore singolo nel benchmark SPECfp. Il POWER5 è alla base dei eServer i5 e p5. I miglioramenti rispetto al POWER4 includono una cache L2 più grande, un memory controller integrato nel chip, il multithreading simultaneo, che appare al sistema operativo come più CPU, un più avanzato sistema di gestione della potenza, una modalità single-tasking dedicata, lHypervisor (un sistema per la virtualizzazione) e l'eFuse (un hardware per la correzione degli errori. Ravi Arimilli, capo designer della IBM ha affermato: "Il POWER5 è un design intermedio, che può essere impiegato per impieghi ad alto livello o anche di basso livello come i blade.". I server basati su POWER5 offrono possibilità di virtualizzazione (cioè di presentazione delle risorse di sistema in un modo più legato al pensiero e alla logica umana che alla realtà del software o dell'hardware): logical partitioning e micro partitioning. Possono essere create fino a dieci LPAR (partizioni logiche) per ogni CPU, e il sistema più grande a 64 vie può gestire fino a 256 sistemi operativi indipendenti. La memoria, l'assorbimento della CPU e l'I/O possono essere trasferiti tra le partizioni. Al 2005, è in corso lo sviluppo del POWER6 e del POWER7.

CPU derivate

Il PowerPC era essenzialmente un POWER1 le cui istruzioni di base erano in parte emulate via microcodice, usando una interfaccia bus basata sul design del Motorola 88000. Questo permise ad IBM di usare la CPU in molte workstation, cambiando solo la scheda madre. Da allora le architetture si sono differenziate, ma rimangono compatibili a livello di istruzioni. La serie RS64 si basa sul PowerPC (e quindi sul POWER) ed è stata usata nelle linee RS/6000 ed AS/400. Essendo ottimizzata per applicazioni commerciali, non possiede la potenza nel calcolo in virgola mobile della serie POWER. Attualmente gli è subentrata la linea POWER4. Il processore Cell è un altro derivato dell'architettura POWER, e include un core simile ad un processore POWER3 limitato nel calcolo in virgola mobile, accostato a otto processori vettoriali indipendenti. Destinato ad essere il cuore della futura Sony PlayStation 3, il processore sembra in grado di superare qualsiasi altra attuale architettura del mercato desktop nel calcolo parallelo e SIMD; caratteristiche che hanno catturato l'attenzione dell'intero settore. Il processore Xenon, che andrà a comporre l'Xbox 360 di Microsoft, deriva invece dall'architettura PowerPC. Ha una struttura triple-core ed una velocità di 3,2 GHz. categoria: microprocessori ja:POWER

AltiVec

AltiVec è un insieme di istruzioni SIMD in virgola mobile sviluppato da Apple Computer, IBM e Motorola (l'alleanza AIM) e implementato sulle ultime versioni dei processori PowerPC. AltiVec è un marchio registrato di Motorola infatti Apple definisce l'unità dedita alla gestione di queste istruzioni Velocity Engine mentre IBM utilizza la sigla VMX per identificare questo gruppo di istruzioni. Quando è stato presentato AltiVec era il migliore sistema SIMD disponibile per per personal computer. Gli equivalenti prodotti della Intel non erano confrontabili. l'MMX non lavorava in virgola mobile ma trattava solamente numeri interi mentre l'SSE pur trattando i numeri in virgola mobile era molto più lento e limitato dell'AltiVec. Alla fine la quarta versione di sistema SIMD dell'Intel l'SSE2 risolse la maggior parte dei problemi e adottò molte delle soluzioni utilizzata dall'AltiVec. AltiVec e SSE2 utilizzano dei registri a 128 bit. Questi registri sono in grado di rappresentare 16 dati a 8 bit con o senza segno, otto dati a 16 bit con o senza segno e quattro dati a 32 bit con o senza segno che possono essere anche in virgola mobile. Inoltre dispongono di un gestore della cache delle istruzioni che provvede a organizzare le istruzioni in modo da minimizzare i conflitti di accesso alla memoria. A differenza di SSE2 AltiVec supporta direttamente la gestione dei pixel con la modalità RGB nativa che non si appoggia alla gestione a 64 bit del processore. Adeguandosi alla filosofia RISC del PowerPC le istruzioni AltiVec sono in grado di manipolare esclusivamente i dati immagazzinati nei registri ma a differenza del SSE2 non esistono registri speciali e tutte le operazioni possono utilizzare tutti i registri. L'unità di calcolo AltiVec è dotata di 32 registri a 128 bit a differenza dei 8 registri a 128 dell'unità SSE2 e quindi è in grado di trattare un maggior numero di informazioni prima di dover accedere alla memoria centrale. Inoltre molte operazioni AltiVec sono in grado di utilizzare tre registri contemporaneamente a differenza dell'SSE2 che può utilizzare al massimo due registri contemporaneamente. Le ultime versioni del compilatore GNU e del compilatore dell'IBM il Visual Age sono in grado di compilare codice in grado di avvantaggiarsi delle istruzioni AltiVec. Il compilatore si preoccupa di fornire delle primitive ad alto livello al programmatore in modo che questo possa scrivere un programma in C che si avvantaggi dell'unità di calcolo. Il programmatore deve solo definire la tipologia di dato da trattare e le operazioni da eseguire e poi il compilatore provvede a realizzare il codice più appropriato, utilizzando le istruzioni corrette e provvedendo a immagazzinare i dati nella modalità migliore per il processore. Apple è il maggior utilizzatore delle potenzialità dell'AltiVec. L'unità di calcolo AltiVec viene utilizzata per migliorare le performance di programmi come QuickTime iTunes ecc.. Le istruzioni vengono utilizzate da Quartz, il motore grafico del Mac OS X per migliorare e velocizzare la presentazione grafica. Anche programmi di grafica come Adobe Photoshop utilizzano AltiVec per migliorare i tempi di risposta. Motorola ha introdotto AltiVec in tutti i suoi processori PowerPC a partire dai PowerPC G4. In molti sistemi embedded queste istruzioni vengono utilizzate per ottenere elaborazioni audio o video in tempo reale. IBM ha incluso dei suoi ultimi processori POWER delle unità VMX anche se essendo questi processori dedicati a mainframe o a centri di elaborazione dati l'utilità reale di queste unità è sempre stata dubbia. Nel suo ultimo processore per computer il PowerPC 970 (Utilizzato dal Power Mac G5) IBM ha introdotto due unità VMX a alte prestazioni. La prima è un unità totalmente indipendente mentre la seconda unità è in grado di svolgere solo operazioni di moltiplicazioni e di addizione sui dati mentre per il resto si appoggia alla prima unità.

Collegamenti esterni


- [http://www.apple.com/it/g5processor/executioncore.html Pagina Apple Sul G5 AltiVec è l'unità 6]
- [http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=018rH3bTdGmKqW5Nf2 Pagina di Freescale sull'AltiVec] (In Inglese)
- [http://developer.apple.com/hardware/ve/ Pagina Apple sul Velocity Engine] (In Inglese) Categoria:Microprocessore ja:AltiVec

32 bit

Il termine 32 bit è anche usato per una generazione di computer nella quale si usa in genere un processore a 32 bit. L'intervallo di valori interi che è possibile memorizzare in 32 bit parte da 0 fino a 4294967295, o da -2147483648 fino a 2147483647 usando la codifica complemento a due. Quindi un processore con uno spazio degli indirizzi a 32 bit può accedere direttamente a 4GB di memoria (se viene indirizzata al byte). Il bus degli indirizzi e dei dati usati esternamente potrebbero avere dimensione superiore ai 32 bit ma entrambi sono manipolati internamente come quantità a 32 bit. Per esempio, il Pentium Pro è una macchina a 32 bit, ma il bus esterno degli indirizzi è ampio 36 bit e il bus dati esterno è di 64 bit.

Voci correlate

Applicazione a 32 bit, 16 bit, applicazione a 16 bit, 64 bit

PowerPC

PowerPC è un'architettura di microprocessori RISC creata nel 1991 dall'alleanza Apple-IBM-Motorola, conosciuta come "AIM". PowerPC era il settore CPU della piattaforma dell'AIM, e ad oggi ne è l'unica parte che resta.

Storia

AIM L'AIM nacque, come racconta la storia, quando IBM comincio' a cercare il modo per abbassare i costi di sviluppo e di produzione della loro nuova architettura POWER. POWER (Performance Optimization With Enhanced RISC) fu introdotto con l'RS/6000 e fu un successo, ma IBM era comunque interessata in una versione a chip singolo per poter entrare in altri mercati. IBM contattò Apple, che era in quel periodo alla ricerca di macchine RISC, per sapere se fossero interessati a POWER. La risposta fu positiva, ma la Apple era anche in qualche modo preoccupata di legarsi ad un'azienda considerata acerrima nemica da molti, e quindi cercarono di bilanciarne il peso coinvolgendo il loro fornitore di lunga data, Motorola, che potè così portare al tavolo un insieme di clienti aggiunti. Per Motorola, POWER sembrò un affare incredibile. Consentiva loro di vendere una potente e ampiamente testata CPU RISC con bassi costi da parte loro. In più gli consentiva di mantenere legami con il loro più grosso cliente di CPU, Apple, e sembrava offrire la possibilità di trovarne in IBM un altro, che avrebbe potuto acquistare versioni ridotte da loro anziché farle da sé. In quegli anni Motorola aveva già un proprio design RISC incarnato nel 88000 che non stava andando bene nel mercato. Una spesso citata ragione per il suo fallimento era la mancanza di compatibilità con la loro diffusa serie 68000, già usata su Amiga e Macintosh. Se la nuova soluzione POWER a singolo chip avesse potuto essere comparabile a livello hardware con l'88000, ciò avrebbe consentito sia ad Apple che a Motorola di immettere sul mercato delle nuove macchine molto più velocemente. Il più grave problema dell'88000 (e di tutti i design precedenti di Motorola) era che la CPU era big-endian, mentre POWER era little-endian. Il risultato di queste svariate esigenze e requisiti fu la specifica PowerPC. Tutti sembravano avere vinto:
- IBM ottenne la CPU a singolo chip che stava cercando.
- Apple potè usare una delle più potenti CPU RISC sul mercato, e un'ampia pubblicità sui media grazie al marchio IBM.
- Motorola riuscì ad avere un chip RISC aggiornato, con un notevole potenziale commerciale, grazie alla disponibilità di IBM e Apple a fare da testimonial.

Caratteristiche

Il PowerPC è stato progettato con principi RISC, e consente un'implementazione superscalare. Esistono versioni sia con implementazione 32 bit che a 64 bit. Partendo dalla specifica di base POWER, il PowerPC ha aggiunto:
- modalità big o little-endian (che richiedono un reboot per lo switch).
- singola precisione in virgola mobile in aggiunta alla doppia precisione.
- istruzioni floating point (su richiesta di Apple).
- una specifica completa a 64 bit, compatibile con la modalità a 32 bit
- rimozione di alcune istruzioni POWER esoteriche, emulate nel microcodice

Implementazioni

microcodice La prima implementazione su singolo chip del design fu l'MCP601, un ibrido delle specifiche POWER1 e PowerPC, rilasciato nel 1992. Questo consentì al chip di essere usato da IBM nelle sue piattaforme esistenti basate su POWER1, sebbene portò a qualche problema quando si passò alla seconda generazione di design PowerPC "puri". Apple continuò il lavoro su una nuova linea di computer Macintosh basata sul chip, e li lanciò come "Power Macintosh" basati sul 601 il 14 marzo 1994. Anche IBM ebbe la sua linea completa di desktop basati su PowerPC costruita e pronta per essere venduta; sfortunatamente non avevano un sistema operativo pronto. IBM decise di riscrivere completamente OS/2 specificamente per il PowerPC. Apple, che non aveva un OS basato su PowerPC, prese una strada diversa. Riscrisse solo i pezzi essenziali del sistema operativo e quindi scrisse un emulatore 680x0 che poteva eseguire le altre parti dell'OS e le applicazioni basate su 68K. IBM impiegò 2 anni a riscrivere OS/2 per PowerPC ed allora fu troppo tardi. I desktop PowerPC non furono mai immessi sul mercato. Byte Magazine (Aprile 1994) scrisse un lungo articolo su Apple e i desktop IBM PowerPC. La seconda generazione fu "pura" e incluse il 603 di fascia bassa e il 604 di fascia alta. Il 603 è noto per il suo bassissimo costo e bassissimo consumo. Questo fu un obiettivo di design da parte di Motorola, che usò il progetto 603 come base per tutte le implementazioni future dei chip PPC. Apple provò ad usare il 603 nel nuovo laptop ma non fu possibile a causa della piccola cache di primo livello di 8K. L'emulatore del 68000 nel Mac OS non riusciva ad entrare in essa rallentando drasticamente le prestazioni. Il 603e risolse questo problema con 16KB di cache L1, che consentì all'emulatore di essere eseguito in maniera efficiente. La prima implementazione a 64-bit fu il 602, ma sembra sia stata usata pochissimo. Arrivò in ritardo ed era più lento di quanto promesso, e IBM usò il suo POWER3, offrendo nessuna soluzione "small" a 64-bit fino all'introduzione nel tardo 2002 del PowerPC 970. Il 970 è un processore a 64-bit derivato dal processore per server POWER4. Per crearlo è stato modificato il core del POWER4 per renderlo compatibile con i processori PowerPC a 32-bit, ed è stata aggiunta una unità vettoriale (simile alle estensioni AltiVec nella serie Motorola 74xx). La famiglia RS64 di IBM è un'architettura PowerPC modificata. Questi processori sono stati usati nelle famiglie di computer RS/6000 e AS/400. Numericamente, il PowerPC è il più diffuso nei controllori delle auto. In questo ruolo, Motorola ha offerto un enorme numero di versioni costruite attorno al core 603. A questo hanno aggiunto diverso hardware custom, per consentire l'I/O sul singolo chip. I processori PowerPC sono usati negli Apple Macintosh, nei computer RS/6000 di IBM, nelle schede acceleratrici per Amiga,nei computer AmigaONE e Pegasos, nel Nintendo GameCube, ed in molti sistemi embedded quali TiVo. Le prossime versioni delle tre maggiori consolle da gioco potrebbero per la prima volta essere tutte basate su chip appartenenti o derivati dalla famiglia PowerPC. In un comunicato congiunto del novembre 2003 Microsoft e IBM hanno infatti annunciato un accordo per l'utilizzo di semiconduttori IBM come base per lo sviluppo della futura linea di prodotti Xbox. Mentre il successore del GameCube, noto sotto il nome di Revolution o N5, proseguirà sulla linea fin'ora adottata coi processori Gekko e la Playstation 3 di Sony incorporerà la CPU di nuova Generazione Cell sviluppata insieme a Toshiba e IBM.

Processori PowerPC


- 601 MPC601 50 e 66 MHz
- 602 prodotti consumer (multiplexed data/address bus)
- 603 portatili
- 603e
- 604
- 604e
- 620 la prima implementazione a 64-bit
- x704 implementazione PowerPC BiCOMOS della Exponential Technologies
- 750 PowerPC G3 (1997) 233 MHz e 266 MHz
- 7400 PowerPC G4 (1999) 350 MHz
- 750FX annunciato da IBM nel 2001 e disponibile all'inizio del 2002 nella versione a 1 GHz.
- 970 PowerPC G5 (2003) implementazione 64-bit derivata dall'IBM POWER4 alle velocita' di 1.4 GHz, 1.6 GHz, 1.8 GHz, 2.0 GHz, 2.5 GHz e 2.7 Gh.
- 970MP Processore G5 Dual Core introdotto a fine 2005. E' disponibile nelle versioni da 2.0, 2.3 e 2.5 Gh.
- Gekko 485 MHz (usato nel Nintendo GameCube)
- Power4+ IBM processore a 1.4 GHz installato sui server Regatta (RS/6000 o pSeries) Categoria:Microprocessori ja:PowerPC

Giugno

Giugno è il sesto mese dell'anno secondo il calendario gregoriano, consta di 30 giorni. Il nome deriva dalla dea Giunone, moglie di Giove.
Giugno: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
06 ja:6月 ko:6월 ms:Jun simple:June th:มิถุนายน

2003

Eventi


- Anno europeo delle persone disabili
- Anno internazionale dell'acqua
- Graz è capitale europea della cultura

Gennaio


- 1 gennaio - Brasile: Lula giura fedeltà alla Costituzione ed entra in carica come nuovo Presidente, acclamato dai parlamentari del Congresso.
- 2 gennaio - Isole Salomone: risultano disperse 700 persone in seguito al passaggio del ciclone Zoe, le cui raffiche hanno spazzato via due interi villaggi, Ravanga e Namo
- 5 gennaio - Israele: due palestinesi si fanno esplodere presso la stazione centrale degli autobus di Tel Aviv a distanza di un minuto uno dall'altro, nei pressi del ristorante McChina. L'attentato, 20 morti e 70 feriti, viene rivendicato dall'organizzazione fondamentalista Jihad islamica
- 7 gennaio
  - Italia: it.wiki ha 1000 articoli
  - Scoperto pianeta distante 5.000 anni luce fuori dal sistema solare. Si chiama Ogle-Tr-56b Sd è il pianeta conosciuto più lontano dalla Terra, dalla quale dista circa 5 mila anni luce, pari a 10 trilioni di km. A scoprirlo, l'astronomo Divitar Sasselov del centro di astrofisica americano Harvard-Smithsonian.
  - Pierluigi Collina è stato eletto il miglior arbitro del mondo anche per il 2002. È così il primo arbitro a conquistare il titolo per la quinta volta.
- 9 gennaio - Iraq: gli ispettori dell'ONU non hanno finora trovato prove che il regime di Baghdad possieda armi di distruzione di massa. Lo riferisce il capo degli ispettori Hans Blix, nella sua relazione al Palazzo di Vetro
- 11 gennaio - Afghanistan: atterra a Kabul il primo scaglione del contingente militare italiano della missione internazionale Libertà duratura, impegnata nel ristabilimento della pace in tutto il paese.
- 14 gennaio - Italia: il Presidente Carlo Azeglio Ciampi nomina senatore a vita Emilio Colombo
- 16 gennaio - Italia: Iniziano le Universiadi a Tarvisio
- 21 gennaio - Stati Uniti: Kevin Mitnick è di nuovo autorizzato ad usare il computer
- 24 gennaio - Brasile: si chiudono Porto Alegre i lavori del Forum sociale mondiale. Nel documento conclusivo si chiede il rigetto del principio della guerra preventiva e l'utilizzazione da parte dei paesi membri del Consiglio di sicurezza dell'ONU di un 'veto per la pace'.
- 28 gennaio
  - Gran Bretagna-USA: discorso sullo stato dell'unione di George W. Bush. Il presidente, che si appresta ad invadere l'Iraq, rivela che i servizi segreti britannici hanno ricevuto da quelli francesi alcuni documenti che proverebbero il tentato acquisto da parte di Saddam Hussein, il dittatore iracheno, di uranio impoverito dallo stato africano del Niger, per costruire una bomba atomica. Il governo degli Stati Uniti accredita, su input della CIA, le carte e le utilizza come prova per giustificare l'invasione dell'Iraq. Nel 2005 tali documenti si riveleranno invece dei falsi e daranno origine allo scandalo denominato Niger-gate.
  - Austria: Daniela Iraschko è la prima donna a raggiungere i 200 metri nel salto con gli sci. Ottiene la misura sul trampolino per il volo con gli sci di Bad Mitterndorf.
- 29 gennaio - Italia: il governo dà il via libera all'utilizzo delle basi sul territorio del nostro Stato agli aerei americani per 'motivi tecnici' in vista di un eventuale attacco all'Iraq.

Febbraio


- 1 febbraio - Stati Uniti: Lo Space Shuttle Columbia esplode nella fase di rientro. Muoiono tutti e sette gli astronauti
- 4 febbraio - Da oggi cambia nome ufficialmente lo stato di Jugoslavia, che diventa Serbia e Montenegro
- 8 febbraio - Colombia: a Bogotá un'autobomba distrugge il club più esclusivo della capitale provocando 30 morti e 260 feriti. L'attentato viene attribuito alle Farc.
- 10 febbraio - Italia: Il gip di Aosta revoca l'ordinanza di custodia cautelare nei confronti di Anna Maria Franzoni
- 11 febbraio - Cina: il governo di Pechino annuncia ufficialmente il diffondersi dell'epidemia di Sindrome respiratoria acuta grave (SARS in inglese)
- 13 febbraio - Italia:
  - Il presidente del consiglio Silvio Berlusconi è prosciolto nell'inchiesta sui fondi neri Fininvest per prescrizione del reato
  - La Corte di Assise d'appello di Perugia deposita le motivazioni della condanna a Giulio Andreotti, ritenuto l'ideatore dell'omicidio del giornalista ed editore Mino Pecorelli.
- 14 febbraio - muore per un'infezione polmonare la pecora Dolly, il primo mammifero frutto di clonazione
- 15 febbraio - Si tengono manifestazioni per la pace in diverse capitali europee. A Roma scendono in piazza centinaia di migliaia di persone.
- 17 febbraio - Italia: nel Canale di Sicilia una nave mercantile turca affonda con i suoi 8 membri dell'equipaggio
- 18 febbraio - Corea del Sud: a Seul uno squilibrato incendia una carrozza della metropolitana di Daegu, uccidendo 198 persone e ferendone 147.
- 19 febbraio
  - Italia: Dibattito parlamentare (sia alla Camera che al Senato) sulla guerra contro l'Iraq
  - Gran Bretagna: Il governo britannico invita i propri cittadini di abbandonare immediatamente l'Iraq
  - Iran: Precipita un aeroplano militare con a bordo 302 militari. Nessun sopravvissuto.
  - Amburgo: Viene condannata la prima persona per i fatti dell'11 settembre 2001, per aver aiutato la realizzazione degli attentati
  - Congo: L'Organizzazione Mondiale della Sanità conferma l'epidemia di Ebola nel paese e il fatto che può diffondersi ulteriormente
  - Armenia: Elezioni presidenziali
  - Costa d'Avorio: I ribelli rompono la tregua concordata in gennaio.
  - Venezuela: Vengono arrestati il presidente degli industriali e ricercato il presidente del sindacato Confederazione dei lavoratori, ritenuti colpevoli del tentato golpe (12 aprile 2002) e dello sciopero cominciato il