- 16 Luglio 2011
- 301
- 0
- Miglior risposta
- 0
Un computer è un dispositivo elettronico in grado di eseguire autonomamente una serie di operazioni logiche ed elaborazioni prestabilite sui dati in esso inseriti (input) fornendo un responso (output).
L'implementazione fisica di questo concetto è variata con il progredire della tecnologia, e sono esistiti computer profondamente diversi dal punto di vista del meccanismo di funzionamento (meccanici, elettromeccanici ed elettronici), della modalità di rappresentazione delle informazioni (analogica e digitale) e di altre loro peculiarità (architettura interna, programmabilità, ecc.). Oggigiorno ci si riferisce comunemente al computer come ad un dispositivo elettronico e digitale, programmabile e a scopo generico costruito secondo la cosiddetta architettura di von Neumann ed i precetti teorici della cosiddetta macchina di Turing, sebbene sussistano a tutt'oggi esempi di computer dedicati.
In questa forma e al pari della televisione, esso rappresenta il mezzo tecnologico simbolo che più ha modificato le abitudini umane dal secondo dopoguerra ad oggi: la sua invenzione ha contribuito alla nascita e allo sviluppo dell'informatica moderna, che ha segnato l'avvento della cosiddetta terza rivoluzione industriale e della società dell'informazione.
Indice
[nascondi]
1 Descrizione
1.1 Etimologia e traduzione del termine
1.2 Cenni storici
1.3 Struttura logica
1.4 Applicazioni pratiche
1.5 Successo dei computer
1.6 Hardware, software, programmazione
2 Tipi di computer
2.1 Mainframe
2.2 Minicomputer
2.3 Microcomputer
2.4 Home computer
2.5 Personal computer
2.6 Altre categorie
2.7 Oltre le categorie; emulazione e virtual machine
3 Architettura (hardware e software)
3.1 Costituenti tipo di un calcolatore elettronico personale
3.2 Componentistica (hardware)
3.2.1 Case e tipo di installazione
3.2.2 Alimentatore
3.2.3 Scheda madre
3.2.4 CPU
3.2.5 Memorie
3.2.6 Bus di sistema
3.2.7 Interfacce generiche
3.2.8 Dispositivi di Input-Output
3.3 Note tecniche
4 Parametri prestazionali
5 Reti di computer
6 Evoluzione: computer quantistici
7 Note
8 Voci correlate
9 Altri progetti
[modifica] Descrizione
[modifica] Etimologia e traduzione del termine
Il termine computer è il nome d'agente del verbo inglese to compute, derivato dal latino computare attraverso il francese computer [1]. L'etimo latino è composto da com = cum (insieme) e putare (tagliare, rendere netto - da cui l'odierno potare) e significa propriamente: "confrontare per trarre la somma netta" [2]. In inglese, il termine indicava originariamente un essere umano [3], incaricato di eseguire dei calcoli. Il primo utilizzo nel senso moderno è attestato nel 1897 [4][5] ma bisognerà attendere la metà degli anni '50 perché questa accezione diventi di uso comune (si notino, a questo proposito, i diversi acronimi dei computer ASCC ed ENIAC).
Come per gran parte della terminologia informatica, l'utilizzo dell'originale inglese prevale sulla traduzione italiana (calcolatore o elaboratore) [6], sebbene in altre lingue europee accada diversamente (francese: ordinateur, spagnolo: computadora). Tale tendenza è spesso biasimata in una diatriba sull'esterofilia della lingua italiana recente [7][8], ma le proposte alternative - come il computiere [9] del professor Arrigo Castellani, accademico della Crusca e fondatore degli Studi Linguistici Italiani - non hanno trovato applicazione.
[modifica] Cenni storici
Exquisite-kfind.png Per approfondire, vedi le voci Storia del computer e Storia dell'informatica.
Il computer è la versione più evoluta di una serie di strumenti di calcolo inventati sin dall'antichità: l'abaco, la macchina di Anticitera, i bastoncini di Nepero... Gli esemplari di macchine calcolatrici più famosi sono forse le macchine di Pascal (1645) e Leibniz (1672), ma va ricordata anche la macchina calcolatrice di Wilhelm Schickard, del 1623, della quale sono rimasti soltanto i progetti.
Il passaggio da macchina calcolatrice a vero e proprio computer (nel senso di dispositivo programmabile) si deve a Charles Babbage. La sua Macchina analitica, progettata nel 1833 ma mai realizzata, è il primo computer della storia. Si trattava di una colossale macchina a ingranaggi, alimentata a vapore e dotata di input, output, unità di memoria, di unità di calcolo decimale con registro di accumulo dei dati e di un sistema di collegamento tra le varie parti. Contrariamente a quanto si potrebbe pensare, la Macchina analitica era interamente digitale [10].
Nel corso dei secoli seguenti l'invenzione del computer passerà attraverso vari stadi: il computer analogico (ne è un esempio l'analizzatore differenziale di Vannevar Bush del 1927), i computer digitali meccanici ed elettromeccanici (la Serie Z di Konrad Zuse, la macchina di Stibitz e l'ASCC di Howard Aiken) ed infine quelli digitali ed elettronici (l'ABC di John V. Atanasoff e Clifford E. Berry, l'ENIAC di John Presper Eckert e John William Mauchly, il Colossus britannico...). Nel corso del XX secolo, inoltre, importanti progressi nel campo dell'elettronica - come il transistor e il circuito integrato - e dell'informatica hanno contribuito all'evoluzione del computer nella sua forma attuale.
[modifica] Struttura logica
La struttura logica del computer attuale può ricondursi alla presenza di almeno quattro elementi fondamentali:
Unità centrale di elaborazione (o CPU)
Memoria
Dispositivi di input/output
Canale di comunicazione dei dati (o bus)
Questo schema venne proposto per la prima volta dal matematico John von Neumann all'interno di uno scritto informale del 1945 noto come First draft of a report on the EDVAC [3]. L'opera nasce dalla partecipazione di von Neumann al progetto ENIAC e raccoglie le idee provenienti da vari membri del team di sviluppo su come migliorare la funzionalità del computer nascituro.
Va inoltre ricordato che von Neumann era stato profondamente influenzato da Alan Turing [11], il quale aveva proposto nel 1937 [12] un modello di calcolo - passato alla storia come Macchina di Turing - che ben si prestava a descrivere le operazioni eseguite da un computer, pur non essendo stato concepito per quello scopo (Turing si stava occupando in quella sede del problema della computabilità, non della realizzazione di un calcolatore). Il funzionamento della Macchina di Turing suggerì a von Neumann l'idea che la memoria dovesse contenere non solo i risultati delle operazioni svolte dal computer, ma anche le istruzioni di programmazione.
Premesso il contributo degli altri progettisti dell'ENIAC e quello di Alan Turing, a von Neumann va il merito di aver approfondito, arricchito e messo a sistema gli spunti raccolti: motivo per il quale la struttura logica sopra indicata è oggi nota come architettura di von Neumann.
[modifica] Applicazioni pratiche
In sostanza un computer è in grado di eseguire operazioni logiche come ad esempio calcoli numerici e storicamente è stato proprio il calcolo la prima forma di applicazione del computer ovvero il problema che ha spinto all'invenzione e alla realizzazione del computer stesso. Dalla nascita della struttura più elementare in seguito si sono sviluppati e succeduti molti tipi di computer, costruiti per svariati compiti, professionali e non, che, pur affinando sempre più il calcolo numerico fino ad arrivare al moderno calcolo scientifico ad elevate prestazioni grazie ai supercalcolatori, vanno ben oltre offrendo applicazioni diffusissime all'utente comune come la videoscrittura in sostituzione delle vecchie macchine da scrivere e in generale applicazioni di office automation, creazione e gestione di database, la progettazione assistita al calcolatore, la computer grafica, la simulazione, sistemi elettronici di controllo, applicazioni di diagnostica medica, i videogiochi ecc.
[modifica] Successo dei computer
Chiave di successo del computer sono dunque la grande potenza di elaborazione e la notevole capacità di memorizzazione che, in qualità di macchine, estendono le rispettive capacità umane di calcolo, processamento e memorizzazione consentendo una diminuzione sensibile dei tempi richiesti per la risoluzione di un problema dato o spesso la sua effettiva risoluzione, altrimenti non possibile. Ad essa si aggiunge la grande usabilità grazie al suo utilizzo in molti campi dell'elaborazione dati (vedi i sistemi embedded) e, sul fronte del consumo di massa, allo sviluppo di innumerevoli applicazioni a favore di una vasta gamma di utenti e, nella maggior parte dei casi, anche la semplicità di utilizzo da parte dell'utente stesso grazie all'implementazione di sistemi di interfacciamento utente/macchina molto spesso di tipo user-friendly.
[modifica] Hardware, software, programmazione
A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e risolvere problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer, in quanto macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di ordini, compiti o istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse attraverso un algoritmo di risoluzione del problema stesso in modo tale che a partire da determinati input produca determinati output attraverso elaborazione degli stessi. Esso nasce dunque per eseguire programmi o applicazioni: un computer senza un programma da eseguire è inutile.
Il computer, in quanto esecutore, ha dunque bisogno di essere istruito o programmato dall'esterno per mano competente di un programmatore: questi comunica/interagisce con la macchina attraverso i linguaggi di programmazione ad alto, medio o basso livello di astrazione (linguaggio macchina), che si differenziano tra loro secondo vari paradigmi di programmazione.
Queste parti immateriali che consentono l'esecuzione di programmi vengono comunemente chiamate software in contrapposizione all'hardware che è la parte fisica (elettronica), nel senso di materiale e tangibile, degli elaboratori. Tutto ciò che si può ottenere con l'utilizzo accoppiato di strumenti informatici hardware e software costituisce un' applicazione informatica.
Ovviamente quando si lavora su un computer scompare agli occhi dell'utilizzatore il funzionamento hardware interno della macchina interfacciandosi con essa unicamente tramite il linguaggio di programmazione ad alto livello oppure grazie al software stesso garantendo così quella grande flessibilità di utilizzo anche a chi non ne conosce i principi fisico-elettronici di funzionamento e che costituisce, assieme alla potenza di elaborazione, a quella di memorizzazione e alla riprogrammabilità, la chiave di successo dei computer stessi. Questo processo di astrazione o virtualizzazione a partire dal livello fisico è comune a tutta l'informatica.
Il programma o software di base di gran lunga più importante per un computer (se previsto nell'architettura generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo, che si occupa di gestire la macchina, le sue risorse hardware e le altre applicazioni che vi sono eseguite[13]. Fornisce così all'utente un'interfaccia (grafica o testuale) con la macchina gestendo o coordinando in maniera efficiente le operazioni di Input/Output comandando le rispettive periferiche di sistema, gestendo le operazioni di esecuzione dei programmi applicativi assegnandovi di volta in volta le risorse hardware necessarie al processamento (scheduling) ed infine gestendo l'archiviazione e l'accesso ai dati memorizzati attraverso il cosiddetto file system.
Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile) che elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1 corrispondenti a due livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di interruttore aperto e chiuso. La logica elettronica interna di funzionamento è dunque basata sull'Algebra di Boole. Il linguaggio dell'hardware è propriamente un linguaggio macchina ovvero sequenze di bit cui si associano per semplice codifica i linguaggi a più alto livello. Ovviamente l'immissione dei dati in input alla macchina elaboratrice è di tipo alfa-numerico decimale per cui è necessaria un'operazione di traduzione o codifica delle informazioni in binario; viceversa per ottenere una visualizzazione in output dei risultati dell'elaborazione è necessaria una traduzione o codifica inversa da binario ad alfa-numerico decimale. Tale codice è generalmente il codice ASCII.
A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte nel campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria elettronica), mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura. Pur tuttavia i confini tra le due discipline non sono rigidi bensì spesso assai sfumati.
[modifica] Tipi di computer
I computer possono essere idealmente divisi in alcune categorie molto generali, a seconda delle loro caratteristiche salienti, dell'uso che in generale se ne fa, del software e dei sistemi operativi che fanno girare e dell'epoca in cui sono comparse. Le definizioni nel tempo sono molto cambiate e i confini non sono mai così netti.
Una prima classificazione in base all'uso distingue tra computer general purpose ovvero riprogrammabili per svariate applicazioni dall'utente e computer special purpose ovvero sistemi embedded dedicati ad una sola applicazione specifica come ad esempio i microcontrollori.
Un'altra classificazione è basata sull'accesso condiviso o meno alle risorse hardware: un computer general purpose può essere monoutente oppure multiutente sfruttando il cosiddetto timesharing delle risorse e con diversi sistemi operativi. Un computer monoutente può essere monotasking oppure multitasking ovvero può eseguire più processi in contemporanea (in pratica tutti i computer moderni). Ovviamente un computer multiutente è anche multitasking.
Una classificazione basata sulle dimensioni, sull'evoluzione storica e sulla destinazione d'uso è invece quella che segue. In linea di massima le dimensioni dei sistemi di elaborazione sono progressivamente diminuite nel tempo in virtù del miglioramento delle tecniche di elaborazione digitale ovvero all'alta capacità di integrazione dei transistor all'interno dei processori ed il parallelo aumento della capacità di processamento. Computer di grandi dimensioni rimangono ora solo nei grandi centri di calcolo.
[modifica] Mainframe
Exquisite-kfind.png Per approfondire, vedi la voce Mainframe.
Negli anni 40 i computer occupavano stanze intere, l'energia richiesta per il funzionamento ed il raffreddamento era elevata e, naturalmente, erano costosissimi; per questo motivo si tendeva a sfruttarli il più possibile e, quindi, l'utilizzo era suddiviso generalmente fra un numero di utenti piuttosto grande. Spesso la comunicazione con la macchina sia in input che in output avveniva direttamente in binario tramite l'uso di schede perforate.
Oggigiorno questi sistemi vengono utilizzati nelle grandi aziende, nelle banche, in società di assicurazioni, nella pubblica amministrazione ed in tutte quelle strutture che hanno bisogno di una potenza di elaborazione proporzionata al grande numero di utenti che devono fruirne. Dal punto di vista "estetico" non sono molto più grandi dei normali PC ma sono più potenti, però sono molto onerosi sia in termini di investimento iniziale che di costi di gestione.
[modifica] Minicomputer
Exquisite-kfind.png Per approfondire, vedi la voce Minicomputer.
In un secondo tempo, negli anni sessanta, in particolare da Digital e da HP, vennero introdotti elaboratori dal costo abbastanza ridotto da poter essere comprati anche da piccole aziende o da singoli dipartimenti di ricerca e di dimensioni paragonabili ad un armadio. Questo permise un utilizzo più flessibile e quindi le prime sperimentazioni in campo informatico. Per distinguerli dai mainframe venne coniato il termine minicomputer.
[modifica] Microcomputer
Exquisite-kfind.png Per approfondire, vedi la voce Microcomputer.
All'inizio degli anni settanta l'introduzione del primo microprocessore, l'Intel 4004, rese disponibili computer dal prezzo abbastanza ridotto da poter essere acquistati anche da una singola persona. La prima generazione di questi dispositivi era destinata soprattutto agli appassionati, perché di difficile utilizzo. I personal computer possono essere considerati microcomputer.
[modifica] Home computer
Exquisite-kfind.png Per approfondire, vedi la voce Home computer.
La seconda generazione di microcomputer, che prende il nome popolare di home computer, fece il suo ingresso nel mercato nella seconda metà degli anni settanta e divenne comune nel corso degli anni ottanta, per estinguersi entro i primi anni novanta con l'ascesa dei personal computer.
Gli home computer, macchine a costo contenuto e di utilizzo prevalentemente domestico, contribuirono largamente a diffondere a livello popolare l'uso del computer e all'alfabetizzazione informatica di vasti strati di popolazione (specie giovanile) nei paesi sviluppati.
Basati su processori a 8 bit e costruttivamente molto semplici, erano dotati di interfacce esclusivamente testuali e come memorie di massa sfruttavano, almeno inizialmente, supporti analogici come le cassette audio (che fra l'altro, come è noto, tendono a smagnetizzarsi con l'uso). Erano utilizzati prevalentemente come console per videogiochi, oppure per i primi approcci con la programmazione.
È curioso notare che alcuni di questi computer avevano (fra l'altro) dei notevoli bug nei calcoli in virgola mobile, e quasi mai avevano sistemi di protezione della memoria, per cui si potevano fare dei danni semplicemente dando dei comandi di modifica della memoria passando degli indirizzi "opportuni" (POKE).
Con oltre dieci milioni di macchine vendute, il più rappresentativo computer di questa categoria fu il Commodore 64. Anche lo ZX Spectrum della Sinclair ebbe buona diffusione.
[modifica] Personal computer
Exquisite-kfind.png Per approfondire, vedi la voce Personal computer.
Per Personal Computer (PC) si intende un microcomputer economico destinato, prevalentemente, a un utilizzo personale da parte di un singolo individuo. Si distingue da un Home computer principalmente perché si prestano - grazie alle maggiori risorse hardware e software a disposizione - a utilizzi maggiormente produttivi rispetto a questi ultimi, destinati invece a un utilizzo ludico o didattico. A differenza degli Home Computer, i PC odierni sono sempre più espandibili, sempre più spesso hanno più processori per supportare il multitasking, inoltre si prestano alla multimedialità, tutte cose che al tempo degli Home Computer erano considerate quasi "fantascienza"; si pensi che nella maggior parte dei casi questi nemmeno erano dotati di disco rigido e visualizzavano al massimo 16 colori "standard" (i mezzitoni si ottenevano con artifici grafici).
Dato che la definizione di Personal Computer si consolidò definitivamente con la diffusione dei computer PC IBM, oggi per Personal Computer (PC) spesso si intende un computer da essi derivato, ma inizialmente il termine andrebbe riferito a macchine con sistemi operativi e tipi di microprocessori del tutto diversi, quali l'Olivetti P6060 e le prime versioni dell'Apple (Apple I e soprattutto l'Apple II).
[modifica] Altre categorie
I supercomputer: elevatissima capacità di elaborazione (spesso grazie ad un calcolo parallelo) e distinti dai mainframe perché solitamente destinati ad una singola applicazione come previsioni meteorologiche, climatiche, calcolo scientifico ad elevate prestazioni e simulazioni varie in generale.
Le workstation: computer general purpose monoutente dotati di più elevate risorse di elaborazione e costi maggiori rispetto ai normali personal computer e destinati ad uso e compiti professionali.
I microcontroller: elaboratori completi totalmente contenuti in singoli circuiti integrati e dedicati a specifiche applicazioni (specific purpose) in sistemi embedded. Appartengono a quest'ultima categoria anche i dispositivi interni di commutazione in una rete di calcolatori.
I sistemi barebone: personal computer preassemblati, costituiti di solito da case e scheda madre, pronti per ulteriori personalizzazioni da parte di rivenditori o utenti finali.
I computer portatile o notebook computer trasportabili che possono entrare in una valigetta o essere appoggiati sulle ginocchia (laptop).
I computer palmari: computer di ridotte dimensioni, tali da essere portati sul palmo di una mano.
I tablet computer computer grandi come una tavoletta e dotati di uno schermo touch-screen (Es. iPad della Apple)
Gli smartphone hanno ormai caratteristiche molto simili (o per meglio dire sovrapponibili, c'è una crescente tendenza ad eliminare le "barriere" tradizionali nell'informatica) ai computer palmari: oltre agli apparati elettronici di telecomunicazioni per la ricetrasmissione possiedono infatti anche un nucleo elettronico di elaborazione ed una memoria dati con tanto di sistema operativo ad hoc e svariate applicazioni oltre ovviamente ai consueti dispositivi di input-output.
Le console di videogiochi: rappresentano attualmente i computer domestici special purpose dalle capacità di processamento più elevate per far fronte alle più svariate esigenze di elaborazione, nonché anche il settore trainante per lo sviluppo di nuovi più evoluti processori.
Si noti come queste categorie abbiano una valenza più che altro convenzionale, dal momento che le prestazioni di una "workstation" di cinque-dieci anni fa potrebbero risultare nettamente inferiori a quelle un PC odierno. È significativa in tal senso la celebre (e profetica) legge di Moore sullo sviluppo dei sistemi di elaborazione.
[modifica] Oltre le categorie; emulazione e virtual machine
Una interessante possibilità è quella di riprodurre il funzionamento di altri sistemi operativi, o addirittura di macchine arcade, di telefoni cellulari o degli home computer (usando particolari software) direttamente sul PC o su altri dispositivi. Si veda la voce emulatore.
Il Java invece è una macchina virtuale, ossia un linguaggio (almeno teoricamente) indipendente dalla piattaforma e addirittura dall'architettura stessa dell'hardware.
Queste nuove interfacce hanno lo svantaggio di necessitare una interpretazione in fase di runtime con un rallentamento dell'esecuzione tanto maggiore quanto più esigue sono le risorse di sistema; questo tende a limitarne a volte (di fatto) l'utilizzo in computer di nuova generazione.
[modifica] Architettura (hardware e software)
Un computer, come premesso, non è altro che l'implementazione fisica, pratica, di una macchina di Turing, secondo l'architettura fisica ideata da Von Neumann.
Per quanto riguarda l'architettura hardware sono diffuse le architetture dei processori basati su registri generali. A questo livello hardware e software viaggiano appaiati sullo stesso piano: le istruzioni elementari del processore (Instruction set) (salto, confronto, operazioni aritmetiche ecc..) sono definite in linguaggio macchina, ovvero codificate in sequenze numeriche di bit; i linguaggi di programmazione a medio ed alto livello, cioè più vicini o familiari al nostro linguaggio naturale, si ottengono come ulteriori codifiche (tabelle di associazioni tra i nomi delle istruzioni) a partire dal linguaggio macchina stesso. Così accade che un qualunque software applicativo abbia un suo codice oggetto o eseguibile espresso in linguaggio macchina ed un suo codice sorgente espresso in linguaggio ad alto livello.
Una terza possibilità è l'assembly; questo particolare linguaggio è una "trascrizione" delle istruzioni base del processore in un linguaggio intelligibile (solitamente nel formato istruzione indirizzo, o istruzione valore, o altri - vedasi opcode). È possibile (per esempio) integrare l'assembly in programmi in C (ma questo approccio non è sempre consigliabile anzi oggi è quasi del tutto abbandonato perché si preferisce scrivere programmi adattabili a più piattaforme, vedi voce "Portabilità"; linguaggio macchina ed assembly non sono mai portabili mentre esistono compilatori C multipiattaforma). Con l'evolversi dei sistemi operativi (eccezion fatta per l'hacking ) i linguaggi a basso livello sono usati sempre meno, invece all'epoca del DOS e soprattutto degli home computer questo approccio veniva seguito spesso.
Un processore munito di memoria, dispositivi di input/output e bus di collegamento tra periferiche è dunque un 'elaboratore' secondo la classica architettura generale di Von Neumann.
All'architettura hardware si sovrappone l'architettura software che comprendente il sistema operativo cioè il sistema generale di gestione o coordinazione delle risorse hardware del computer e dei dati in esso immagazzinati. Le istruzioni base del sistema operativo fanno parte del set di istruzioni fondamentali del processore e, di conseguenza, sono definite anch'esse in linguaggio macchina e gestite dall'Unità di Controllo del processore. Le istruzioni del sistema operativo a livello utente, eventualmente interfacciate graficamente, sono anche qui ottenute tramite una codifica ad alto livello delle istruzioni base, espresse in linguaggio macchina, di gestione (pilotaggio) delle periferiche stesse, mascherando così ancora una volta il complesso funzionamento interno del computer.
L'insieme di architettura hardware (quindi il processore) e sistema operativo costituiscono la cosiddetta piattaforma informatica del sistema essendo questi due elementi strettamente correlati.
[modifica] Costituenti tipo di un calcolatore elettronico personale
Exquisite-kfind.png Per approfondire, vedi la voce Personal computer.
Case nero per Personal computer di tipo MiddleTower
[modifica] Componentistica (hardware)
Exquisite-kfind.png Per approfondire, vedi la voce Hardware.
La macchina elaboratrice è adagiata all'interno di un cabinet o case e viene alimentata elettricamente da un'unità (alimentatore), interna od esterna che fornirà al sistema le giuste tensioni elettriche alle sue diverse componenti, nei termini della potenza e stabilità richieste.
Dal punto di vista pratico e costruttivo tutti i computer di questa categoria, hanno almeno:
una CPU,
una certa quantità di memoria primaria di lavoro, generalmente volatile ma piuttosto veloce, attualmente RAM,
una certa quantità di memoria non volatile. Quest'ultima è suddivisa in:
una piccola parte (ROM, PROM, EPROM, EEPROM o Flash) in cui è scritto il primo programma da eseguire all'avvio del computer stesso (firmware). Esempi sono Open Firmware e BIOS, che assolvono comunque anche ad altre funzioni di base, oltre a queste. A seconda dei casi, questo primo programma potrà essere l'unico che la macchina eseguirà oppure servirà a fare da trampolino di lancio per caricare il sistema operativo vero e proprio dalla memoria di massa in memoria di lavoro, o un ulteriore e intermedio programma in grado di decidere quale particolare sistema operativo selezionare: in questo caso si parla di loader.
una memoria di massa, più capiente ma con velocità d'accesso più lenta.
[modifica] Case e tipo di installazione
Il componente forse meno essenziale, ma che caratterizza il calcolatore al primo colpo d'occhio è l'involucro, generalmente chiamato case nei personal computer e cabinet nei sistemi più grandi. Il telaio che meccanicamente sostiene la componentistica, l'apparato di raffreddamento generale, e l'involucro esterno caratterizzano e in parte differenziano i molti tipi di macchine finora viste.
personal computer di dimensioni ridotte, a raffreddamento passivo
Elemento fondamentale è l'apparato di raffreddamento. Attualmente molti calcolatori montano sistemi di raffreddamento sui singoli chip, come CPU e GPU o altri, i quali possono andare da una semplice alettatura per il raffreddamento ad aria, a ventole, o a sistemi con circolazione di liquidi di raffreddamento. In aggiunta a questi, nel case del computer vengono predisposti ulteriori altri sistemi per la circolazione e l'espulsione dell'aria calda generata. Nei cabinet dei mainframe e dei supercomputer, il problema del raffreddamento è notevole, e l'energia in gioco spesa nell'implementarlo è una quota rilevante del costo del sistema. Sistemi architetturalmente moderni o di piccole dimensioni riescono ad avere una generazione di calore talmente bassa da fare a meno di ventole od altre parti in movimento, con evidenti vantaggi, a pari dispersione termica, in termini di silenziosità o di consumi. Il telaio e l'involucro caratterizzano visivamente la macchina, e possono situarsi in un arco dimensionale che va dal computer palmare, alle armadiature dei grossi sistemi. Tali armadiature sono principalmente costituite da un telaio, con alloggiamenti di vari standard, che permettono la rimozione, spesso in attività, dei singoli componenti: schede processore, singolo cluster alloggiato in un rack, ed altro.
[modifica] Alimentatore
L'alimentatore è l'elemento che fornisce energia al PC, che nel caso delle versioni portatili può essere sostituita da alcune batterie.
A seconda del tipo d'alimentatore il computer può avere lo spegnimento del tipo:
Automatico, lo spegnimento del computer avviene automaticamente al termine del processo software (tipico degli alimentatori ATX)
Manuale, lo spegnimento deve avvenire manualmente sotto il comando della macchina (tipico degli alimentatori AT)
[modifica] Scheda madre
Exquisite-kfind.png Per approfondire, vedi la voce Scheda madre.
Particolare di una scheda madre Socket 370
In genere i tre componenti suddetti, escludendo solitamente la parte di memoria di massa, si trovano implementati fisicamente insieme sullo stesso circuito integrato o sulla stessa scheda elettronica, che in questo caso viene detta scheda madre o mainboard, o eventualmente in schede figlie o d'espansione direttamente inserite e spesso anche alimentate elettricamente dalla stessa scheda madre.
È importante ricordare che, attualmente, all'interno della CPU vi è anche una piccola quantità di memoria detta memoria Cache; questo tipo di memoria è una memoria veloce (ed anche molto costosa) utile per far fronte alla lentezza del Bus di collegamento fra CPU e memoria RAM; ciò non accade invece se si ha a disposizione una piccola quantità di memoria all'interno della CPU stessa, la cache appunto, nella quale vengono caricate tutte le informazioni e/o le istruzioni più frequentemente utilizzate ovvero elaborate dal processore.
Oltre ad eseguire programmi un computer deve anche poter comunicare con l'esterno ovvero con l'utente o con altri dispositivi: per questo sono sempre presenti un certo numero di interfacce verso vari dispositivi dette periferiche di sistema quali ad esempio l'I/O. Quasi sempre, tranne nei casi di microcontrollori molto semplici, è infatti prevista la possibilità di collegare una tastiera e un dispositivo di visualizzazione (monitor, stampante, display). Inoltre un computer fa spesso uso di memorie di massa per registrare dati e programmi liberando così spazio nella memoria RAM ed è quasi sempre possibile collegare ad esso periferiche esterne e/o schede di espansione.
Una delle schede di espansione più importanti è la scheda video che è l'elemento hardware che si occupa dell'elaborazione delle immagini e della loro visualizzazione sul video/display. Altre schede d'espansione sono la scheda audio, la scheda di rete, la scheda Wi-Fi.
[modifica] CPU
Exquisite-kfind.png Per approfondire, vedi la voce CPU.
Una moderna CPU
La CPU, sigla di Central Processing Unit, è uno dei componenti della macchina di Von Neumann, il più diffuso modello teorico-implementativo di computer. Essa è un circuito integrato programmabile dall'utente tramite programma applicativo ed è il 'cervello' vero e proprio del computer ovvero il dispositivo che ha il compito di elaborare (processing) le informazioni (dati) provenienti dalla memoria decodificando ed eseguendo le istruzioni operative in codice macchina del programma e appartenenti al set di istruzioni fondamentali/specifiche della CPU. Si suddivide in Unità di Controllo (Control Unit) ed Unità Logico Aritmetica (ALU). La sua conformazione, detta architettura, è stata soggetta ad evoluzione nel tempo, integrando progressivamente quantità sempre maggiori di transistor, arricchendosi di memoria interna detta cache di primo livello, aumentando la dimensione del bus dati e integrando più di una struttura esecutiva delle istruzioni, detta pipeline, aumentando così il grado di 'parallelismo'. Nelle ultime versioni si hanno più CPU che coesistono insieme sullo stesso circuito integrato, detto quindi processore multicore, ad esempio dual-core o quad core a seconda che ospiti due o quattro processori in parallelo.
[modifica] Memorie
Exquisite-kfind.png Per approfondire, vedi la voce Memoria (informatica).
Vecchia memoria RAM
Epoche diverse a confronto. Un "banco" RAM del 1986 con soli 4 MB di memoria è talmente grande che oggi, su quella stessa superficie di circuito stampato, si riesce tranquillamente a collocare l'intero circuito di un personal computer, compresi parecchi Gigabyte di memoria RAM (Random Access Memory)
Ricordando nuovamente che una parte di memoria, per motivi architetturali attualmente ormai risiede all'interno della CPU, possiamo schematizzare:
la memoria di lavoro o memoria principale, adesso generalmente RAM, è sì molto veloce, ma ha un problema: è volatile, cioè allo spegnimento della macchina il suo contenuto viene perso. Le tecnologie attuali in ogni caso prevedono già in itinere memorie di lavoro permanenti.
Per questo ed altri motivi ad essa si affianca, sempre, un altro tipo di memoria, molto più lenta ma capace di mantenere i dati che vi vengono scritti per un tempo indefinito: questa viene detta memoria di massa o memoria d'immagazzinamento secondario ed è costituita in genere da dischi o nastri magnetici. Una promettente evoluzione è rappresentata dai supporti a stato solido, queste unità sono anche dette SSD. Questi supporti sono molto simili alle memory card, hanno velocità di lettura più elevate rispetto ai dischi magnetici, ma (per il momento) sono molto costosi. In casi di applicativi che richiedono poca memoria vengono utilizzate le NVRAM, particolari RAM non volatili, se si vuole la scrittura e riscrittura dei dati, le ROM se il programma non deve essere cambiato (firmware), o al massimo cambiato molto raramente (ROM cancellabili tramite raggi UV o tensioni predefinite). In genere, i dati vengono scritti su queste memorie sotto forma di file: il modo in cui i file sono organizzati e catalogati si chiama file system.
[modifica] Bus di sistema
Exquisite-kfind.png Per approfondire, vedi la voce Bus (informatica).
Slot PCI a 32 Bit.
Il computer non potrebbe funzionare senza il bus di sistema. Questo è infatti il collegamento (parallelo) fra le varie componenti di un computer: CPU, chipset, scheda video, varie periferiche e componenti del computer. Esistono 3 tipi fondamentali di bus che, assieme, formano il bus di sistema:
Bus indirizzi
Bus dati
Bus controlli
Le periferiche esterne possono essere collegate al bus di sistema mediante le interfacce fornite dal costruttore (nel caso di componenti di facile integrazione), o mediante interfacce proprietarie nel caso di componenti particolari o non integrati nel proprio sistema (scheda madre). Questi componenti sono detti schede di espansione e si collegano direttamente in alloggiamenti (slot) della scheda madre appositamente progettati. Questi slot dialogano, grazie all'interfaccia del chipset, con tutto il resto del sistema.
Porta parallela (Centronics)
Porta seriale
Porte PS2
Alcuni tipi di interfacce a "Slot":
ISA
EISA
VESA
Processor Direct Slot
PCI
PCI Express
PCI X
AGP (per le schede grafiche)
VMEbus
S-100
Zorro
NuBus
MBus
SBus
[modifica] Interfacce generiche
Porte firewire 400
Porta firewire 800
Porta USB
Esistono un certo numero di interfacce generiche, adatte a molti scopi, che in genere i costruttori hanno cura di implementare sempre nei computer che producono, per aumentarne la versatilità. In genere le specifiche per queste interfacce sono standard pubblici, stabilite da enti come l'IEEE o l'ISO. Interfacce:
RS232 (interfaccia seriale)
RS432
Centronics (interfaccia parallela)
IEEE 488
SHUGART (per floppy disk)
ADB per tastiere e mouse e simili dispositivi di controllo
IDE (per il disco rigido)
EIDE (per dischi rigidi e ottici)
SCSI (disco rigido, CD-ROM, scanner e altri)
SATA (per dischi rigidi e ottici)
SATA2 (più veloce del SATA)
IEEE 1394 o Firewire esterno espandibile, capace di fornire alimentazione ai dispositivi, in diverse tipologie, (periferiche esterne come dischi rigidi e ottici, scanner, videocamere e fotocamere digitali)
PS/2 (tastiera e mouse)
USB (Universal Serial Bus, o bus seriale universale in italiano, esterno espandibile, in diverse tipologie, capace di fornire alimentazione ai dispositivi tastiera e mouse, fotocamere digitali, ecc.)
ATA
Attualmente si stanno abbandonando i lettori per dischetti (floppy) e le interfacce Centronics (in special modo sui laptop) e allo stesso tempo si stanno installando lettori di smartcard.
[modifica] Dispositivi di Input-Output
Completano l'architettura del calcolatore i cosiddetti dispositivi di I/O necessari per comunicare in input con la macchina impartendo istruzioni e visualizzare all'utente i risultati dell'elaborazione. Tra questi dispositivi ricordiamo la tastiera, il monitor, i lettori CD e floppy-disk, la stampante, il modem, le casse audio, lo scanner, le cuffie, i supporti di memorizzazione secondaria quali CD, floppy-disk, pen-drive ecc. Molte di queste vengono dette anche periferiche di sistema.
[modifica] Note tecniche
Altre configurazioni: case a rack di tipo U 1, comune a tutta la famiglia Xserve di Apple
Questa descrizione è da riferirsi solamente alla scheda di sistema di alcuni personal computer da tavolo, principalmente i maggiormente diffusi. Tutti i dispositivi diversi, tipo i computer mobili come i carputer, palmtop, Smartphone, Netbook, UMPC, console per videogiochi e tutti gli altri dispositivi informatici alternativi, possono presentare un'architettura interna anche notevolmente differente. I computer portatili, ad esempio, per esigenze di spazio possono integrare il chipset in altri componenti (o viceversa). Le console per videogiochi sono sprovviste di BIOS (una serie di sub-routine necessarie per l'avvio sono memorizzate ed automaticamente eseguite direttamente da un unico integrato).
Inoltre alcuni computer di vecchia generazione (e tutte le console per videogiochi, anche le più moderne) integrano la CPU direttamente saldate sulla scheda madre e quindi non rimovibile. Altri dispositivi invece (come supercomputer, workstation e server) possono integrare sulla scheda madre due o più socket per l'installazione di più CPU (per sistemi multiprocessore) oppure più schede madri per ottenere configurazioni avanzate basate su sistemi con centinaia o anche migliaia di CPU che funzionano in contemporanea.
Nel 1995, nel campo dei sistemi basati su processori IBM/Motorola, schede madri della classe Tsunami, progettate per i processori PowerPC 604 e successivi erano dotate di slot per daughtercard o scheda figlia, a singolo o multiplo processore essendone anch'esse sprovviste.
Ugualmente, alcune schede madri della metà degli anni novanta, progettate per i processori Pentium II e per i primi processori Pentium III (con core non Coppermine) erano appositamente sprovviste di socket e montavano invece uno slot denominato Slot 1 simile ai normali slot d'espansione PCI per alloggiare una scheda elettronica contenente 2 o più integrati, che insieme costituivano la CPU del Computer.
Oggi con la tecnologia dual core e la più recente multi core è invece possibile integrare direttamente all'interno di un unico processore due (per il dual core) o più (per il multi core) core logici nello stesso package, capaci di aumentare la potenza di calcolo senza aumentare la frequenza di funzionamento del processore.
[modifica] Parametri prestazionali
Parametri prestazionali di un computer sono la sue capacità di processamento e le sue capacità di memorizzazione. In linea di massima si identificano dunque i seguenti parametri:
Per la capacità di processamento:
frequenza di clock del processore;
architettura a 8, 16, 32 o 64 bit e multicore;
Un parametro prestazionale di calcolo può essere anche la potenza di calcolo in FLOPS cioè il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU (specie per computer a fini scientifici), anche se tale parametro non tiene in conto delle operazioni in numeri interi comuni invece nei PC domestici.
Per la capacità di memoria:
capacità della memoria primaria (RAM);
capacità della memoria secondaria (memoria di massa);
A questi si associano valutazioni intorno alla qualità delle schede elettroniche che compongono l'hardware.
[modifica] Reti di computer
Più calcolatori possono essere collegati insieme in rete formando una rete di calcolatori sotto forma di sistemi distribuiti per la condivisione di dati e delle risorse software e/o hardware come nel caso del calcolo distribuito. Un esempio di rete di calcolatori sono le reti aziendali (Intranet) e la rete Internet. In particolare queste reti si suddividono in reti client-server in cui esistono calcolatori che erogano servizi (server) a calcolatori o utenti che ne fanno richiesta (client) (ad es. le Reti Windows e le Reti Linux), oppure reti peer to peer che offrono un'architettura logica paritaria dove ciascun calcolatore può svolgere sia funzioni di server che funzioni di client. Anche i sistemi di tipo mainframe formano una rete informatica tipicamente con risorse hardware centralizzate e condivise. I vantaggi di queste reti sono evidenti in termini di facilità ed efficienza di comunicazione e gestione delle informazioni all'interno delle organizzazioni o aziende private stesse. A livello logico tutte queste tipologie di reti sono realizzate e si differenziano tra loro grazie a diversi protocolli di comunicazione utilizzati e relativi software, che caratterizzano e rendono possibile quindi le funzionalità stesse di rete.
font:Wikipedia xd
L'implementazione fisica di questo concetto è variata con il progredire della tecnologia, e sono esistiti computer profondamente diversi dal punto di vista del meccanismo di funzionamento (meccanici, elettromeccanici ed elettronici), della modalità di rappresentazione delle informazioni (analogica e digitale) e di altre loro peculiarità (architettura interna, programmabilità, ecc.). Oggigiorno ci si riferisce comunemente al computer come ad un dispositivo elettronico e digitale, programmabile e a scopo generico costruito secondo la cosiddetta architettura di von Neumann ed i precetti teorici della cosiddetta macchina di Turing, sebbene sussistano a tutt'oggi esempi di computer dedicati.
In questa forma e al pari della televisione, esso rappresenta il mezzo tecnologico simbolo che più ha modificato le abitudini umane dal secondo dopoguerra ad oggi: la sua invenzione ha contribuito alla nascita e allo sviluppo dell'informatica moderna, che ha segnato l'avvento della cosiddetta terza rivoluzione industriale e della società dell'informazione.
Indice
[nascondi]
1 Descrizione
1.1 Etimologia e traduzione del termine
1.2 Cenni storici
1.3 Struttura logica
1.4 Applicazioni pratiche
1.5 Successo dei computer
1.6 Hardware, software, programmazione
2 Tipi di computer
2.1 Mainframe
2.2 Minicomputer
2.3 Microcomputer
2.4 Home computer
2.5 Personal computer
2.6 Altre categorie
2.7 Oltre le categorie; emulazione e virtual machine
3 Architettura (hardware e software)
3.1 Costituenti tipo di un calcolatore elettronico personale
3.2 Componentistica (hardware)
3.2.1 Case e tipo di installazione
3.2.2 Alimentatore
3.2.3 Scheda madre
3.2.4 CPU
3.2.5 Memorie
3.2.6 Bus di sistema
3.2.7 Interfacce generiche
3.2.8 Dispositivi di Input-Output
3.3 Note tecniche
4 Parametri prestazionali
5 Reti di computer
6 Evoluzione: computer quantistici
7 Note
8 Voci correlate
9 Altri progetti
[modifica] Descrizione
[modifica] Etimologia e traduzione del termine
Il termine computer è il nome d'agente del verbo inglese to compute, derivato dal latino computare attraverso il francese computer [1]. L'etimo latino è composto da com = cum (insieme) e putare (tagliare, rendere netto - da cui l'odierno potare) e significa propriamente: "confrontare per trarre la somma netta" [2]. In inglese, il termine indicava originariamente un essere umano [3], incaricato di eseguire dei calcoli. Il primo utilizzo nel senso moderno è attestato nel 1897 [4][5] ma bisognerà attendere la metà degli anni '50 perché questa accezione diventi di uso comune (si notino, a questo proposito, i diversi acronimi dei computer ASCC ed ENIAC).
Come per gran parte della terminologia informatica, l'utilizzo dell'originale inglese prevale sulla traduzione italiana (calcolatore o elaboratore) [6], sebbene in altre lingue europee accada diversamente (francese: ordinateur, spagnolo: computadora). Tale tendenza è spesso biasimata in una diatriba sull'esterofilia della lingua italiana recente [7][8], ma le proposte alternative - come il computiere [9] del professor Arrigo Castellani, accademico della Crusca e fondatore degli Studi Linguistici Italiani - non hanno trovato applicazione.
[modifica] Cenni storici
Exquisite-kfind.png Per approfondire, vedi le voci Storia del computer e Storia dell'informatica.
Il computer è la versione più evoluta di una serie di strumenti di calcolo inventati sin dall'antichità: l'abaco, la macchina di Anticitera, i bastoncini di Nepero... Gli esemplari di macchine calcolatrici più famosi sono forse le macchine di Pascal (1645) e Leibniz (1672), ma va ricordata anche la macchina calcolatrice di Wilhelm Schickard, del 1623, della quale sono rimasti soltanto i progetti.
Il passaggio da macchina calcolatrice a vero e proprio computer (nel senso di dispositivo programmabile) si deve a Charles Babbage. La sua Macchina analitica, progettata nel 1833 ma mai realizzata, è il primo computer della storia. Si trattava di una colossale macchina a ingranaggi, alimentata a vapore e dotata di input, output, unità di memoria, di unità di calcolo decimale con registro di accumulo dei dati e di un sistema di collegamento tra le varie parti. Contrariamente a quanto si potrebbe pensare, la Macchina analitica era interamente digitale [10].
Nel corso dei secoli seguenti l'invenzione del computer passerà attraverso vari stadi: il computer analogico (ne è un esempio l'analizzatore differenziale di Vannevar Bush del 1927), i computer digitali meccanici ed elettromeccanici (la Serie Z di Konrad Zuse, la macchina di Stibitz e l'ASCC di Howard Aiken) ed infine quelli digitali ed elettronici (l'ABC di John V. Atanasoff e Clifford E. Berry, l'ENIAC di John Presper Eckert e John William Mauchly, il Colossus britannico...). Nel corso del XX secolo, inoltre, importanti progressi nel campo dell'elettronica - come il transistor e il circuito integrato - e dell'informatica hanno contribuito all'evoluzione del computer nella sua forma attuale.
[modifica] Struttura logica
La struttura logica del computer attuale può ricondursi alla presenza di almeno quattro elementi fondamentali:
Unità centrale di elaborazione (o CPU)
Memoria
Dispositivi di input/output
Canale di comunicazione dei dati (o bus)
Questo schema venne proposto per la prima volta dal matematico John von Neumann all'interno di uno scritto informale del 1945 noto come First draft of a report on the EDVAC [3]. L'opera nasce dalla partecipazione di von Neumann al progetto ENIAC e raccoglie le idee provenienti da vari membri del team di sviluppo su come migliorare la funzionalità del computer nascituro.
Va inoltre ricordato che von Neumann era stato profondamente influenzato da Alan Turing [11], il quale aveva proposto nel 1937 [12] un modello di calcolo - passato alla storia come Macchina di Turing - che ben si prestava a descrivere le operazioni eseguite da un computer, pur non essendo stato concepito per quello scopo (Turing si stava occupando in quella sede del problema della computabilità, non della realizzazione di un calcolatore). Il funzionamento della Macchina di Turing suggerì a von Neumann l'idea che la memoria dovesse contenere non solo i risultati delle operazioni svolte dal computer, ma anche le istruzioni di programmazione.
Premesso il contributo degli altri progettisti dell'ENIAC e quello di Alan Turing, a von Neumann va il merito di aver approfondito, arricchito e messo a sistema gli spunti raccolti: motivo per il quale la struttura logica sopra indicata è oggi nota come architettura di von Neumann.
[modifica] Applicazioni pratiche
In sostanza un computer è in grado di eseguire operazioni logiche come ad esempio calcoli numerici e storicamente è stato proprio il calcolo la prima forma di applicazione del computer ovvero il problema che ha spinto all'invenzione e alla realizzazione del computer stesso. Dalla nascita della struttura più elementare in seguito si sono sviluppati e succeduti molti tipi di computer, costruiti per svariati compiti, professionali e non, che, pur affinando sempre più il calcolo numerico fino ad arrivare al moderno calcolo scientifico ad elevate prestazioni grazie ai supercalcolatori, vanno ben oltre offrendo applicazioni diffusissime all'utente comune come la videoscrittura in sostituzione delle vecchie macchine da scrivere e in generale applicazioni di office automation, creazione e gestione di database, la progettazione assistita al calcolatore, la computer grafica, la simulazione, sistemi elettronici di controllo, applicazioni di diagnostica medica, i videogiochi ecc.
[modifica] Successo dei computer
Chiave di successo del computer sono dunque la grande potenza di elaborazione e la notevole capacità di memorizzazione che, in qualità di macchine, estendono le rispettive capacità umane di calcolo, processamento e memorizzazione consentendo una diminuzione sensibile dei tempi richiesti per la risoluzione di un problema dato o spesso la sua effettiva risoluzione, altrimenti non possibile. Ad essa si aggiunge la grande usabilità grazie al suo utilizzo in molti campi dell'elaborazione dati (vedi i sistemi embedded) e, sul fronte del consumo di massa, allo sviluppo di innumerevoli applicazioni a favore di una vasta gamma di utenti e, nella maggior parte dei casi, anche la semplicità di utilizzo da parte dell'utente stesso grazie all'implementazione di sistemi di interfacciamento utente/macchina molto spesso di tipo user-friendly.
[modifica] Hardware, software, programmazione
A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e risolvere problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer, in quanto macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di ordini, compiti o istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse attraverso un algoritmo di risoluzione del problema stesso in modo tale che a partire da determinati input produca determinati output attraverso elaborazione degli stessi. Esso nasce dunque per eseguire programmi o applicazioni: un computer senza un programma da eseguire è inutile.
Il computer, in quanto esecutore, ha dunque bisogno di essere istruito o programmato dall'esterno per mano competente di un programmatore: questi comunica/interagisce con la macchina attraverso i linguaggi di programmazione ad alto, medio o basso livello di astrazione (linguaggio macchina), che si differenziano tra loro secondo vari paradigmi di programmazione.
Queste parti immateriali che consentono l'esecuzione di programmi vengono comunemente chiamate software in contrapposizione all'hardware che è la parte fisica (elettronica), nel senso di materiale e tangibile, degli elaboratori. Tutto ciò che si può ottenere con l'utilizzo accoppiato di strumenti informatici hardware e software costituisce un' applicazione informatica.
Ovviamente quando si lavora su un computer scompare agli occhi dell'utilizzatore il funzionamento hardware interno della macchina interfacciandosi con essa unicamente tramite il linguaggio di programmazione ad alto livello oppure grazie al software stesso garantendo così quella grande flessibilità di utilizzo anche a chi non ne conosce i principi fisico-elettronici di funzionamento e che costituisce, assieme alla potenza di elaborazione, a quella di memorizzazione e alla riprogrammabilità, la chiave di successo dei computer stessi. Questo processo di astrazione o virtualizzazione a partire dal livello fisico è comune a tutta l'informatica.
Il programma o software di base di gran lunga più importante per un computer (se previsto nell'architettura generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo, che si occupa di gestire la macchina, le sue risorse hardware e le altre applicazioni che vi sono eseguite[13]. Fornisce così all'utente un'interfaccia (grafica o testuale) con la macchina gestendo o coordinando in maniera efficiente le operazioni di Input/Output comandando le rispettive periferiche di sistema, gestendo le operazioni di esecuzione dei programmi applicativi assegnandovi di volta in volta le risorse hardware necessarie al processamento (scheduling) ed infine gestendo l'archiviazione e l'accesso ai dati memorizzati attraverso il cosiddetto file system.
Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile) che elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1 corrispondenti a due livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di interruttore aperto e chiuso. La logica elettronica interna di funzionamento è dunque basata sull'Algebra di Boole. Il linguaggio dell'hardware è propriamente un linguaggio macchina ovvero sequenze di bit cui si associano per semplice codifica i linguaggi a più alto livello. Ovviamente l'immissione dei dati in input alla macchina elaboratrice è di tipo alfa-numerico decimale per cui è necessaria un'operazione di traduzione o codifica delle informazioni in binario; viceversa per ottenere una visualizzazione in output dei risultati dell'elaborazione è necessaria una traduzione o codifica inversa da binario ad alfa-numerico decimale. Tale codice è generalmente il codice ASCII.
A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte nel campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria elettronica), mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura. Pur tuttavia i confini tra le due discipline non sono rigidi bensì spesso assai sfumati.
[modifica] Tipi di computer
I computer possono essere idealmente divisi in alcune categorie molto generali, a seconda delle loro caratteristiche salienti, dell'uso che in generale se ne fa, del software e dei sistemi operativi che fanno girare e dell'epoca in cui sono comparse. Le definizioni nel tempo sono molto cambiate e i confini non sono mai così netti.
Una prima classificazione in base all'uso distingue tra computer general purpose ovvero riprogrammabili per svariate applicazioni dall'utente e computer special purpose ovvero sistemi embedded dedicati ad una sola applicazione specifica come ad esempio i microcontrollori.
Un'altra classificazione è basata sull'accesso condiviso o meno alle risorse hardware: un computer general purpose può essere monoutente oppure multiutente sfruttando il cosiddetto timesharing delle risorse e con diversi sistemi operativi. Un computer monoutente può essere monotasking oppure multitasking ovvero può eseguire più processi in contemporanea (in pratica tutti i computer moderni). Ovviamente un computer multiutente è anche multitasking.
Una classificazione basata sulle dimensioni, sull'evoluzione storica e sulla destinazione d'uso è invece quella che segue. In linea di massima le dimensioni dei sistemi di elaborazione sono progressivamente diminuite nel tempo in virtù del miglioramento delle tecniche di elaborazione digitale ovvero all'alta capacità di integrazione dei transistor all'interno dei processori ed il parallelo aumento della capacità di processamento. Computer di grandi dimensioni rimangono ora solo nei grandi centri di calcolo.
[modifica] Mainframe
Exquisite-kfind.png Per approfondire, vedi la voce Mainframe.
Negli anni 40 i computer occupavano stanze intere, l'energia richiesta per il funzionamento ed il raffreddamento era elevata e, naturalmente, erano costosissimi; per questo motivo si tendeva a sfruttarli il più possibile e, quindi, l'utilizzo era suddiviso generalmente fra un numero di utenti piuttosto grande. Spesso la comunicazione con la macchina sia in input che in output avveniva direttamente in binario tramite l'uso di schede perforate.
Oggigiorno questi sistemi vengono utilizzati nelle grandi aziende, nelle banche, in società di assicurazioni, nella pubblica amministrazione ed in tutte quelle strutture che hanno bisogno di una potenza di elaborazione proporzionata al grande numero di utenti che devono fruirne. Dal punto di vista "estetico" non sono molto più grandi dei normali PC ma sono più potenti, però sono molto onerosi sia in termini di investimento iniziale che di costi di gestione.
[modifica] Minicomputer
Exquisite-kfind.png Per approfondire, vedi la voce Minicomputer.
In un secondo tempo, negli anni sessanta, in particolare da Digital e da HP, vennero introdotti elaboratori dal costo abbastanza ridotto da poter essere comprati anche da piccole aziende o da singoli dipartimenti di ricerca e di dimensioni paragonabili ad un armadio. Questo permise un utilizzo più flessibile e quindi le prime sperimentazioni in campo informatico. Per distinguerli dai mainframe venne coniato il termine minicomputer.
[modifica] Microcomputer
Exquisite-kfind.png Per approfondire, vedi la voce Microcomputer.
All'inizio degli anni settanta l'introduzione del primo microprocessore, l'Intel 4004, rese disponibili computer dal prezzo abbastanza ridotto da poter essere acquistati anche da una singola persona. La prima generazione di questi dispositivi era destinata soprattutto agli appassionati, perché di difficile utilizzo. I personal computer possono essere considerati microcomputer.
[modifica] Home computer
Exquisite-kfind.png Per approfondire, vedi la voce Home computer.
La seconda generazione di microcomputer, che prende il nome popolare di home computer, fece il suo ingresso nel mercato nella seconda metà degli anni settanta e divenne comune nel corso degli anni ottanta, per estinguersi entro i primi anni novanta con l'ascesa dei personal computer.
Gli home computer, macchine a costo contenuto e di utilizzo prevalentemente domestico, contribuirono largamente a diffondere a livello popolare l'uso del computer e all'alfabetizzazione informatica di vasti strati di popolazione (specie giovanile) nei paesi sviluppati.
Basati su processori a 8 bit e costruttivamente molto semplici, erano dotati di interfacce esclusivamente testuali e come memorie di massa sfruttavano, almeno inizialmente, supporti analogici come le cassette audio (che fra l'altro, come è noto, tendono a smagnetizzarsi con l'uso). Erano utilizzati prevalentemente come console per videogiochi, oppure per i primi approcci con la programmazione.
È curioso notare che alcuni di questi computer avevano (fra l'altro) dei notevoli bug nei calcoli in virgola mobile, e quasi mai avevano sistemi di protezione della memoria, per cui si potevano fare dei danni semplicemente dando dei comandi di modifica della memoria passando degli indirizzi "opportuni" (POKE).
Con oltre dieci milioni di macchine vendute, il più rappresentativo computer di questa categoria fu il Commodore 64. Anche lo ZX Spectrum della Sinclair ebbe buona diffusione.
[modifica] Personal computer
Exquisite-kfind.png Per approfondire, vedi la voce Personal computer.
Per Personal Computer (PC) si intende un microcomputer economico destinato, prevalentemente, a un utilizzo personale da parte di un singolo individuo. Si distingue da un Home computer principalmente perché si prestano - grazie alle maggiori risorse hardware e software a disposizione - a utilizzi maggiormente produttivi rispetto a questi ultimi, destinati invece a un utilizzo ludico o didattico. A differenza degli Home Computer, i PC odierni sono sempre più espandibili, sempre più spesso hanno più processori per supportare il multitasking, inoltre si prestano alla multimedialità, tutte cose che al tempo degli Home Computer erano considerate quasi "fantascienza"; si pensi che nella maggior parte dei casi questi nemmeno erano dotati di disco rigido e visualizzavano al massimo 16 colori "standard" (i mezzitoni si ottenevano con artifici grafici).
Dato che la definizione di Personal Computer si consolidò definitivamente con la diffusione dei computer PC IBM, oggi per Personal Computer (PC) spesso si intende un computer da essi derivato, ma inizialmente il termine andrebbe riferito a macchine con sistemi operativi e tipi di microprocessori del tutto diversi, quali l'Olivetti P6060 e le prime versioni dell'Apple (Apple I e soprattutto l'Apple II).
[modifica] Altre categorie
I supercomputer: elevatissima capacità di elaborazione (spesso grazie ad un calcolo parallelo) e distinti dai mainframe perché solitamente destinati ad una singola applicazione come previsioni meteorologiche, climatiche, calcolo scientifico ad elevate prestazioni e simulazioni varie in generale.
Le workstation: computer general purpose monoutente dotati di più elevate risorse di elaborazione e costi maggiori rispetto ai normali personal computer e destinati ad uso e compiti professionali.
I microcontroller: elaboratori completi totalmente contenuti in singoli circuiti integrati e dedicati a specifiche applicazioni (specific purpose) in sistemi embedded. Appartengono a quest'ultima categoria anche i dispositivi interni di commutazione in una rete di calcolatori.
I sistemi barebone: personal computer preassemblati, costituiti di solito da case e scheda madre, pronti per ulteriori personalizzazioni da parte di rivenditori o utenti finali.
I computer portatile o notebook computer trasportabili che possono entrare in una valigetta o essere appoggiati sulle ginocchia (laptop).
I computer palmari: computer di ridotte dimensioni, tali da essere portati sul palmo di una mano.
I tablet computer computer grandi come una tavoletta e dotati di uno schermo touch-screen (Es. iPad della Apple)
Gli smartphone hanno ormai caratteristiche molto simili (o per meglio dire sovrapponibili, c'è una crescente tendenza ad eliminare le "barriere" tradizionali nell'informatica) ai computer palmari: oltre agli apparati elettronici di telecomunicazioni per la ricetrasmissione possiedono infatti anche un nucleo elettronico di elaborazione ed una memoria dati con tanto di sistema operativo ad hoc e svariate applicazioni oltre ovviamente ai consueti dispositivi di input-output.
Le console di videogiochi: rappresentano attualmente i computer domestici special purpose dalle capacità di processamento più elevate per far fronte alle più svariate esigenze di elaborazione, nonché anche il settore trainante per lo sviluppo di nuovi più evoluti processori.
Si noti come queste categorie abbiano una valenza più che altro convenzionale, dal momento che le prestazioni di una "workstation" di cinque-dieci anni fa potrebbero risultare nettamente inferiori a quelle un PC odierno. È significativa in tal senso la celebre (e profetica) legge di Moore sullo sviluppo dei sistemi di elaborazione.
[modifica] Oltre le categorie; emulazione e virtual machine
Una interessante possibilità è quella di riprodurre il funzionamento di altri sistemi operativi, o addirittura di macchine arcade, di telefoni cellulari o degli home computer (usando particolari software) direttamente sul PC o su altri dispositivi. Si veda la voce emulatore.
Il Java invece è una macchina virtuale, ossia un linguaggio (almeno teoricamente) indipendente dalla piattaforma e addirittura dall'architettura stessa dell'hardware.
Queste nuove interfacce hanno lo svantaggio di necessitare una interpretazione in fase di runtime con un rallentamento dell'esecuzione tanto maggiore quanto più esigue sono le risorse di sistema; questo tende a limitarne a volte (di fatto) l'utilizzo in computer di nuova generazione.
[modifica] Architettura (hardware e software)
Un computer, come premesso, non è altro che l'implementazione fisica, pratica, di una macchina di Turing, secondo l'architettura fisica ideata da Von Neumann.
Per quanto riguarda l'architettura hardware sono diffuse le architetture dei processori basati su registri generali. A questo livello hardware e software viaggiano appaiati sullo stesso piano: le istruzioni elementari del processore (Instruction set) (salto, confronto, operazioni aritmetiche ecc..) sono definite in linguaggio macchina, ovvero codificate in sequenze numeriche di bit; i linguaggi di programmazione a medio ed alto livello, cioè più vicini o familiari al nostro linguaggio naturale, si ottengono come ulteriori codifiche (tabelle di associazioni tra i nomi delle istruzioni) a partire dal linguaggio macchina stesso. Così accade che un qualunque software applicativo abbia un suo codice oggetto o eseguibile espresso in linguaggio macchina ed un suo codice sorgente espresso in linguaggio ad alto livello.
Una terza possibilità è l'assembly; questo particolare linguaggio è una "trascrizione" delle istruzioni base del processore in un linguaggio intelligibile (solitamente nel formato istruzione indirizzo, o istruzione valore, o altri - vedasi opcode). È possibile (per esempio) integrare l'assembly in programmi in C (ma questo approccio non è sempre consigliabile anzi oggi è quasi del tutto abbandonato perché si preferisce scrivere programmi adattabili a più piattaforme, vedi voce "Portabilità"; linguaggio macchina ed assembly non sono mai portabili mentre esistono compilatori C multipiattaforma). Con l'evolversi dei sistemi operativi (eccezion fatta per l'hacking ) i linguaggi a basso livello sono usati sempre meno, invece all'epoca del DOS e soprattutto degli home computer questo approccio veniva seguito spesso.
Un processore munito di memoria, dispositivi di input/output e bus di collegamento tra periferiche è dunque un 'elaboratore' secondo la classica architettura generale di Von Neumann.
All'architettura hardware si sovrappone l'architettura software che comprendente il sistema operativo cioè il sistema generale di gestione o coordinazione delle risorse hardware del computer e dei dati in esso immagazzinati. Le istruzioni base del sistema operativo fanno parte del set di istruzioni fondamentali del processore e, di conseguenza, sono definite anch'esse in linguaggio macchina e gestite dall'Unità di Controllo del processore. Le istruzioni del sistema operativo a livello utente, eventualmente interfacciate graficamente, sono anche qui ottenute tramite una codifica ad alto livello delle istruzioni base, espresse in linguaggio macchina, di gestione (pilotaggio) delle periferiche stesse, mascherando così ancora una volta il complesso funzionamento interno del computer.
L'insieme di architettura hardware (quindi il processore) e sistema operativo costituiscono la cosiddetta piattaforma informatica del sistema essendo questi due elementi strettamente correlati.
[modifica] Costituenti tipo di un calcolatore elettronico personale
Exquisite-kfind.png Per approfondire, vedi la voce Personal computer.
Case nero per Personal computer di tipo MiddleTower
[modifica] Componentistica (hardware)
Exquisite-kfind.png Per approfondire, vedi la voce Hardware.
La macchina elaboratrice è adagiata all'interno di un cabinet o case e viene alimentata elettricamente da un'unità (alimentatore), interna od esterna che fornirà al sistema le giuste tensioni elettriche alle sue diverse componenti, nei termini della potenza e stabilità richieste.
Dal punto di vista pratico e costruttivo tutti i computer di questa categoria, hanno almeno:
una CPU,
una certa quantità di memoria primaria di lavoro, generalmente volatile ma piuttosto veloce, attualmente RAM,
una certa quantità di memoria non volatile. Quest'ultima è suddivisa in:
una piccola parte (ROM, PROM, EPROM, EEPROM o Flash) in cui è scritto il primo programma da eseguire all'avvio del computer stesso (firmware). Esempi sono Open Firmware e BIOS, che assolvono comunque anche ad altre funzioni di base, oltre a queste. A seconda dei casi, questo primo programma potrà essere l'unico che la macchina eseguirà oppure servirà a fare da trampolino di lancio per caricare il sistema operativo vero e proprio dalla memoria di massa in memoria di lavoro, o un ulteriore e intermedio programma in grado di decidere quale particolare sistema operativo selezionare: in questo caso si parla di loader.
una memoria di massa, più capiente ma con velocità d'accesso più lenta.
[modifica] Case e tipo di installazione
Il componente forse meno essenziale, ma che caratterizza il calcolatore al primo colpo d'occhio è l'involucro, generalmente chiamato case nei personal computer e cabinet nei sistemi più grandi. Il telaio che meccanicamente sostiene la componentistica, l'apparato di raffreddamento generale, e l'involucro esterno caratterizzano e in parte differenziano i molti tipi di macchine finora viste.
personal computer di dimensioni ridotte, a raffreddamento passivo
Elemento fondamentale è l'apparato di raffreddamento. Attualmente molti calcolatori montano sistemi di raffreddamento sui singoli chip, come CPU e GPU o altri, i quali possono andare da una semplice alettatura per il raffreddamento ad aria, a ventole, o a sistemi con circolazione di liquidi di raffreddamento. In aggiunta a questi, nel case del computer vengono predisposti ulteriori altri sistemi per la circolazione e l'espulsione dell'aria calda generata. Nei cabinet dei mainframe e dei supercomputer, il problema del raffreddamento è notevole, e l'energia in gioco spesa nell'implementarlo è una quota rilevante del costo del sistema. Sistemi architetturalmente moderni o di piccole dimensioni riescono ad avere una generazione di calore talmente bassa da fare a meno di ventole od altre parti in movimento, con evidenti vantaggi, a pari dispersione termica, in termini di silenziosità o di consumi. Il telaio e l'involucro caratterizzano visivamente la macchina, e possono situarsi in un arco dimensionale che va dal computer palmare, alle armadiature dei grossi sistemi. Tali armadiature sono principalmente costituite da un telaio, con alloggiamenti di vari standard, che permettono la rimozione, spesso in attività, dei singoli componenti: schede processore, singolo cluster alloggiato in un rack, ed altro.
[modifica] Alimentatore
L'alimentatore è l'elemento che fornisce energia al PC, che nel caso delle versioni portatili può essere sostituita da alcune batterie.
A seconda del tipo d'alimentatore il computer può avere lo spegnimento del tipo:
Automatico, lo spegnimento del computer avviene automaticamente al termine del processo software (tipico degli alimentatori ATX)
Manuale, lo spegnimento deve avvenire manualmente sotto il comando della macchina (tipico degli alimentatori AT)
[modifica] Scheda madre
Exquisite-kfind.png Per approfondire, vedi la voce Scheda madre.
Particolare di una scheda madre Socket 370
In genere i tre componenti suddetti, escludendo solitamente la parte di memoria di massa, si trovano implementati fisicamente insieme sullo stesso circuito integrato o sulla stessa scheda elettronica, che in questo caso viene detta scheda madre o mainboard, o eventualmente in schede figlie o d'espansione direttamente inserite e spesso anche alimentate elettricamente dalla stessa scheda madre.
È importante ricordare che, attualmente, all'interno della CPU vi è anche una piccola quantità di memoria detta memoria Cache; questo tipo di memoria è una memoria veloce (ed anche molto costosa) utile per far fronte alla lentezza del Bus di collegamento fra CPU e memoria RAM; ciò non accade invece se si ha a disposizione una piccola quantità di memoria all'interno della CPU stessa, la cache appunto, nella quale vengono caricate tutte le informazioni e/o le istruzioni più frequentemente utilizzate ovvero elaborate dal processore.
Oltre ad eseguire programmi un computer deve anche poter comunicare con l'esterno ovvero con l'utente o con altri dispositivi: per questo sono sempre presenti un certo numero di interfacce verso vari dispositivi dette periferiche di sistema quali ad esempio l'I/O. Quasi sempre, tranne nei casi di microcontrollori molto semplici, è infatti prevista la possibilità di collegare una tastiera e un dispositivo di visualizzazione (monitor, stampante, display). Inoltre un computer fa spesso uso di memorie di massa per registrare dati e programmi liberando così spazio nella memoria RAM ed è quasi sempre possibile collegare ad esso periferiche esterne e/o schede di espansione.
Una delle schede di espansione più importanti è la scheda video che è l'elemento hardware che si occupa dell'elaborazione delle immagini e della loro visualizzazione sul video/display. Altre schede d'espansione sono la scheda audio, la scheda di rete, la scheda Wi-Fi.
[modifica] CPU
Exquisite-kfind.png Per approfondire, vedi la voce CPU.
Una moderna CPU
La CPU, sigla di Central Processing Unit, è uno dei componenti della macchina di Von Neumann, il più diffuso modello teorico-implementativo di computer. Essa è un circuito integrato programmabile dall'utente tramite programma applicativo ed è il 'cervello' vero e proprio del computer ovvero il dispositivo che ha il compito di elaborare (processing) le informazioni (dati) provenienti dalla memoria decodificando ed eseguendo le istruzioni operative in codice macchina del programma e appartenenti al set di istruzioni fondamentali/specifiche della CPU. Si suddivide in Unità di Controllo (Control Unit) ed Unità Logico Aritmetica (ALU). La sua conformazione, detta architettura, è stata soggetta ad evoluzione nel tempo, integrando progressivamente quantità sempre maggiori di transistor, arricchendosi di memoria interna detta cache di primo livello, aumentando la dimensione del bus dati e integrando più di una struttura esecutiva delle istruzioni, detta pipeline, aumentando così il grado di 'parallelismo'. Nelle ultime versioni si hanno più CPU che coesistono insieme sullo stesso circuito integrato, detto quindi processore multicore, ad esempio dual-core o quad core a seconda che ospiti due o quattro processori in parallelo.
[modifica] Memorie
Exquisite-kfind.png Per approfondire, vedi la voce Memoria (informatica).
Vecchia memoria RAM
Epoche diverse a confronto. Un "banco" RAM del 1986 con soli 4 MB di memoria è talmente grande che oggi, su quella stessa superficie di circuito stampato, si riesce tranquillamente a collocare l'intero circuito di un personal computer, compresi parecchi Gigabyte di memoria RAM (Random Access Memory)
Ricordando nuovamente che una parte di memoria, per motivi architetturali attualmente ormai risiede all'interno della CPU, possiamo schematizzare:
la memoria di lavoro o memoria principale, adesso generalmente RAM, è sì molto veloce, ma ha un problema: è volatile, cioè allo spegnimento della macchina il suo contenuto viene perso. Le tecnologie attuali in ogni caso prevedono già in itinere memorie di lavoro permanenti.
Per questo ed altri motivi ad essa si affianca, sempre, un altro tipo di memoria, molto più lenta ma capace di mantenere i dati che vi vengono scritti per un tempo indefinito: questa viene detta memoria di massa o memoria d'immagazzinamento secondario ed è costituita in genere da dischi o nastri magnetici. Una promettente evoluzione è rappresentata dai supporti a stato solido, queste unità sono anche dette SSD. Questi supporti sono molto simili alle memory card, hanno velocità di lettura più elevate rispetto ai dischi magnetici, ma (per il momento) sono molto costosi. In casi di applicativi che richiedono poca memoria vengono utilizzate le NVRAM, particolari RAM non volatili, se si vuole la scrittura e riscrittura dei dati, le ROM se il programma non deve essere cambiato (firmware), o al massimo cambiato molto raramente (ROM cancellabili tramite raggi UV o tensioni predefinite). In genere, i dati vengono scritti su queste memorie sotto forma di file: il modo in cui i file sono organizzati e catalogati si chiama file system.
[modifica] Bus di sistema
Exquisite-kfind.png Per approfondire, vedi la voce Bus (informatica).
Slot PCI a 32 Bit.
Il computer non potrebbe funzionare senza il bus di sistema. Questo è infatti il collegamento (parallelo) fra le varie componenti di un computer: CPU, chipset, scheda video, varie periferiche e componenti del computer. Esistono 3 tipi fondamentali di bus che, assieme, formano il bus di sistema:
Bus indirizzi
Bus dati
Bus controlli
Le periferiche esterne possono essere collegate al bus di sistema mediante le interfacce fornite dal costruttore (nel caso di componenti di facile integrazione), o mediante interfacce proprietarie nel caso di componenti particolari o non integrati nel proprio sistema (scheda madre). Questi componenti sono detti schede di espansione e si collegano direttamente in alloggiamenti (slot) della scheda madre appositamente progettati. Questi slot dialogano, grazie all'interfaccia del chipset, con tutto il resto del sistema.
Porta parallela (Centronics)
Porta seriale
Porte PS2
Alcuni tipi di interfacce a "Slot":
ISA
EISA
VESA
Processor Direct Slot
PCI
PCI Express
PCI X
AGP (per le schede grafiche)
VMEbus
S-100
Zorro
NuBus
MBus
SBus
[modifica] Interfacce generiche
Porte firewire 400
Porta firewire 800
Porta USB
Esistono un certo numero di interfacce generiche, adatte a molti scopi, che in genere i costruttori hanno cura di implementare sempre nei computer che producono, per aumentarne la versatilità. In genere le specifiche per queste interfacce sono standard pubblici, stabilite da enti come l'IEEE o l'ISO. Interfacce:
RS232 (interfaccia seriale)
RS432
Centronics (interfaccia parallela)
IEEE 488
SHUGART (per floppy disk)
ADB per tastiere e mouse e simili dispositivi di controllo
IDE (per il disco rigido)
EIDE (per dischi rigidi e ottici)
SCSI (disco rigido, CD-ROM, scanner e altri)
SATA (per dischi rigidi e ottici)
SATA2 (più veloce del SATA)
IEEE 1394 o Firewire esterno espandibile, capace di fornire alimentazione ai dispositivi, in diverse tipologie, (periferiche esterne come dischi rigidi e ottici, scanner, videocamere e fotocamere digitali)
PS/2 (tastiera e mouse)
USB (Universal Serial Bus, o bus seriale universale in italiano, esterno espandibile, in diverse tipologie, capace di fornire alimentazione ai dispositivi tastiera e mouse, fotocamere digitali, ecc.)
ATA
Attualmente si stanno abbandonando i lettori per dischetti (floppy) e le interfacce Centronics (in special modo sui laptop) e allo stesso tempo si stanno installando lettori di smartcard.
[modifica] Dispositivi di Input-Output
Completano l'architettura del calcolatore i cosiddetti dispositivi di I/O necessari per comunicare in input con la macchina impartendo istruzioni e visualizzare all'utente i risultati dell'elaborazione. Tra questi dispositivi ricordiamo la tastiera, il monitor, i lettori CD e floppy-disk, la stampante, il modem, le casse audio, lo scanner, le cuffie, i supporti di memorizzazione secondaria quali CD, floppy-disk, pen-drive ecc. Molte di queste vengono dette anche periferiche di sistema.
[modifica] Note tecniche
Altre configurazioni: case a rack di tipo U 1, comune a tutta la famiglia Xserve di Apple
Questa descrizione è da riferirsi solamente alla scheda di sistema di alcuni personal computer da tavolo, principalmente i maggiormente diffusi. Tutti i dispositivi diversi, tipo i computer mobili come i carputer, palmtop, Smartphone, Netbook, UMPC, console per videogiochi e tutti gli altri dispositivi informatici alternativi, possono presentare un'architettura interna anche notevolmente differente. I computer portatili, ad esempio, per esigenze di spazio possono integrare il chipset in altri componenti (o viceversa). Le console per videogiochi sono sprovviste di BIOS (una serie di sub-routine necessarie per l'avvio sono memorizzate ed automaticamente eseguite direttamente da un unico integrato).
Inoltre alcuni computer di vecchia generazione (e tutte le console per videogiochi, anche le più moderne) integrano la CPU direttamente saldate sulla scheda madre e quindi non rimovibile. Altri dispositivi invece (come supercomputer, workstation e server) possono integrare sulla scheda madre due o più socket per l'installazione di più CPU (per sistemi multiprocessore) oppure più schede madri per ottenere configurazioni avanzate basate su sistemi con centinaia o anche migliaia di CPU che funzionano in contemporanea.
Nel 1995, nel campo dei sistemi basati su processori IBM/Motorola, schede madri della classe Tsunami, progettate per i processori PowerPC 604 e successivi erano dotate di slot per daughtercard o scheda figlia, a singolo o multiplo processore essendone anch'esse sprovviste.
Ugualmente, alcune schede madri della metà degli anni novanta, progettate per i processori Pentium II e per i primi processori Pentium III (con core non Coppermine) erano appositamente sprovviste di socket e montavano invece uno slot denominato Slot 1 simile ai normali slot d'espansione PCI per alloggiare una scheda elettronica contenente 2 o più integrati, che insieme costituivano la CPU del Computer.
Oggi con la tecnologia dual core e la più recente multi core è invece possibile integrare direttamente all'interno di un unico processore due (per il dual core) o più (per il multi core) core logici nello stesso package, capaci di aumentare la potenza di calcolo senza aumentare la frequenza di funzionamento del processore.
[modifica] Parametri prestazionali
Parametri prestazionali di un computer sono la sue capacità di processamento e le sue capacità di memorizzazione. In linea di massima si identificano dunque i seguenti parametri:
Per la capacità di processamento:
frequenza di clock del processore;
architettura a 8, 16, 32 o 64 bit e multicore;
Un parametro prestazionale di calcolo può essere anche la potenza di calcolo in FLOPS cioè il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU (specie per computer a fini scientifici), anche se tale parametro non tiene in conto delle operazioni in numeri interi comuni invece nei PC domestici.
Per la capacità di memoria:
capacità della memoria primaria (RAM);
capacità della memoria secondaria (memoria di massa);
A questi si associano valutazioni intorno alla qualità delle schede elettroniche che compongono l'hardware.
[modifica] Reti di computer
Più calcolatori possono essere collegati insieme in rete formando una rete di calcolatori sotto forma di sistemi distribuiti per la condivisione di dati e delle risorse software e/o hardware come nel caso del calcolo distribuito. Un esempio di rete di calcolatori sono le reti aziendali (Intranet) e la rete Internet. In particolare queste reti si suddividono in reti client-server in cui esistono calcolatori che erogano servizi (server) a calcolatori o utenti che ne fanno richiesta (client) (ad es. le Reti Windows e le Reti Linux), oppure reti peer to peer che offrono un'architettura logica paritaria dove ciascun calcolatore può svolgere sia funzioni di server che funzioni di client. Anche i sistemi di tipo mainframe formano una rete informatica tipicamente con risorse hardware centralizzate e condivise. I vantaggi di queste reti sono evidenti in termini di facilità ed efficienza di comunicazione e gestione delle informazioni all'interno delle organizzazioni o aziende private stesse. A livello logico tutte queste tipologie di reti sono realizzate e si differenziano tra loro grazie a diversi protocolli di comunicazione utilizzati e relativi software, che caratterizzano e rendono possibile quindi le funzionalità stesse di rete.
font:Wikipedia xd