Architettura (computer)

Con architettura hardware si intende l'insieme dei criteri di progetto in base ai quali è progettato e realizzato un computer, oppure un dispositivo facente parte di esso. Per estensione, descrivere l'architettura di un dispositivo significa, in particolare, elencarne le sottoparti costituenti…

Con architettura hardware si intende l'insieme dei criteri di progetto in base ai quali è progettato e realizzato un computer, oppure un dispositivo facente parte di esso. Per estensione, descrivere l'architettura di un dispositivo significa, in particolare, elencarne le sottoparti costituenti ed illustrarne i rapporti interfunzionali.

Definizione

Gene Amdahl, Gerrit A. Blaauw e Frederick P. Brooks introdussero il termine "architettura" nel 1964 per distinguere le caratteristiche comuni di tutti i modelli IBM System/360 dalle loro versioni molto diverse in termini di tecnologia, capacità e velocità operativa. Questa comunanza aveva lo scopo di rendere più facile la sostituzione di parti e programmi del computer quando le esigenze dei clienti cambiavano.

Si trattava quindi di un'astrazione simile al concetto matematico di struttura algebrica. In essa, ad esempio, l'aritmetica è astratta dalle regole di sequenza e di scambio degli operandi o di risoluzione delle parentesi, in modo da applicarsi a vari insiemi e combinazioni di base, come i numeri naturali con l'addizione o gli insiemi con l'unione.

Gli autori hanno evitato la parola astrazione tentando una definizione per enumerazione in una nota a piè di pagina: “Il termine architettura viene qui utilizzato per descrivere gli attributi di un sistema visti dal programmatore, cioè la struttura concettuale e il comportamento funzionale, distinti dall'organizzazione del flusso di dati e dei controlli, dalla progettazione logica e dall'implementazione fisica”.

Autori successivi come Peter Stahlknecht e Ulrich Hasenkamp hanno specificato, integrato e modificato questo elenco, perdendo di vista l'aspetto dei punti in comune e dell'astrazione. Di conseguenza, l'espressione "architettura dei computer" perse il suo carattere essenziale e divenne una parola d'ordine sofisticata per progetti arbitrari.

Descrizione

I soggetti che si occupano di architettura dei calcolatori hanno il compito di costruire sistemi di elaborazione di diversa complessità (da una semplice scheda elettronica a un complesso sistema con grossa potenza di calcolo) mettendo insieme questi componenti elementari.

È anche importante sottolineare la differenza che intercorre tra elettronica e architettura dei calcolatori:

l'elettronico ha il compito di costruire circuiti veloci ed efficienti, si occupa quindi di migliorare i "mattoni", i componenti elementari del sistema; l'architetto dei calcolatori ha invece il compito di ottenere le migliori prestazioni possibili (in termini di potenza di calcolo, costi in termini economici) assemblando in maniera efficiente i componenti elementari.

Elementi base

I "mattoni" che costituiscono un sistema di calcolo sono:

porte logiche (and, not, or)

generatori di segnali (ad es. clock)

Mettendo insieme le porte logiche, che sono tipicamente circuiti realizzati con diverse tecnologie elettroniche (CMOS, TTL, ECL) è possibile costruire le cosiddette macchine elementari che si dividono in macchine combinatorie e macchine sequenziali.

Macchine combinatorie

I circuiti (o macchine) combinatori possono essere modellati matematicamente con funzioni booleane di variabili booleane del tipo

y=f(u)

dove y è il vettore delle uscite del sistema e u è il vettore degli ingressi; come si nota dall'argomento della funzione f, i circuiti combinatori non sono dotati di stato, sono sistemi adinamici e quindi l'uscita del sistema in un istante t dipende solo dall'ingresso applicato al sistema nello stesso istante e non dagli ingressi precedentemente applicati (supponendo per semplicità che non ci siano ritardi di propagazione tra ingresso e uscita).

Le macchine combinatorie elementari sono le seguenti:

multiplexer

demultiplexer

decodificatori

sommatori, divisori, moltiplicatori

Macchine sequenziali

Le macchine sequenziali invece sono sistemi del tipo dove è il vettore delle uscite, è il vettore degli ingressi e è il vettore degli stati. Quindi una macchina sequenziale è un sistema dinamico, la cui uscita in un generico istante dipende sia dall'ingresso sia dallo stato del sistema in quell'istante.

Le macchine sequenziali fondamentali sono:

flip-flop

memorie

registri a scorrimento

contatori

Processori e sistemi

Interconnessioni di reti logiche sotto forma di circuiti integrati danno vita a sistemi elettronici di elaborazione più complessi (es. programmable logic device e microcontrollori) fino ad arrivare ai processori. Il termine architettura viene dunque usato in riferimento alla configurazione di quest'ultimi (architettura x86, CISC, RISC, SPARC, 32-bit, 64-bit, pipeline, ecc...) e, quando si parla di prodotti di consumo, si usa in contrapposizione alla parola software: le soluzioni hardware risolvono le loro funzionalità sotto forma di dispositivo dedicato, quelle software sono soluzioni sviluppate sotto forma di programmi eseguibili che possono essere caricati su dispositivi general purpose.

A livello più esteso il termine architettura si riferisce all'architettura logica del computer nel suo intero comprendendo processore, memoria, registri e collegamenti tra loro, scheda madre, schede di espansione, case o cabinet ecc...(architettura di von Neumann, architettura Harvard, architettura di un processore basato su registri generali ecc..). Nell'ambito dei sistemi informatici diffuse sono invece le architetture hardware n-tier, mentre nelle grandi realtà si parla di architettura telematica.

Servizi correlati

Altre voci

S

Supplier Relationship Management

I sistemi di Supplier Relationship Management (SRM) (in italiano: "gestione delle relazioni con i fornitori") sono software simili a sistemi Customer Relationship Management (CRM o "gestione delle relazioni con i clienti"), ma sono rivolti alla gestione delle relazioni con i fornitori (invece…

Leggi la voce →
P

PostgreSQL

PostgreSQL (pronuncia all'inglese [poʊstɡrɛs ˌkjuːˈɛl] Pronuncia) è un completo DBMS ad oggetti pubblicato con licenza libera (stile Licenza BSD). Spesso abbreviato come "Postgres", sebbene questo sia un nome vecchio dello stesso progetto, è una reale alternativa sia rispetto ad altri prodotti…

Leggi la voce →
P

Programmazione orientata agli oggetti

In informatica, la programmazione orientata agli oggetti (in inglese object-oriented programming, in acronimo OOP), a volte chiamata semplicemente programmazione a oggetti, è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri…

Leggi la voce →
T

Tipizzazione statica

Nella teoria dei linguaggi di programmazione, la tipizzazione statica identifica una categoria di sistemi di tipi dove la verifica della compatibilità delle operazioni e l'assegnazione dei tipi a variabili, espressioni e funzioni avvengono già prima dell'esecuzione del programma, generalmente…

Leggi la voce →
CM PunkC

CM Punk

CM Punk, pseudonimo di Phillip Jack Brooks (Chicago, 26 ottobre 1978), è un wrestler ed ex artista marziale misto statunitense sotto contratto con la WWE.

Leggi la voce →
N

Nastran

NASTRAN è un programma di analisi agli elementi finiti (FEA) che è stato originariamente sviluppato per la NASA alla fine degli anni '60 con il finanziamento del governo degli Stati Uniti per l'industria aerospaziale. La MacNeal-Schwendler Corporation (MSC) era uno degli sviluppatori principali…

Leggi la voce →