Anteprima
Vedrai una selezione di 3 pagine su 6
Appunti Architetture dei sistemi digitali - Astrazioni e tecnologia informatica Pag. 1 Appunti Architetture dei sistemi digitali - Astrazioni e tecnologia informatica Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Appunti Architetture dei sistemi digitali - Astrazioni e tecnologia informatica Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

ATTENZIONE!!!

Quando si parla di kilobyte, megabyte, etc. Si parla di potenze di 10 ma in realtà non si parla di un numero esatto.

3 3

Ad esempio 1 kilobyte = 1024 byte è calcolato con valore 10 ma notiamo che tra 1,024 KB e 10 KB si ha un errore del

2%.

Alle fondamenta del progetto dei moderni computer ci sono “8 grandi idee”:

1. Progetto per la Legge di Moore: la legge di Moore afferma che le risorse dei circuiti integrati

raddoppiano ogni 18 mesi (quindi quadruplicano ogni 3 anni). Poiché la progettazione dei

computer può richiedere anni durante i quali le risorse disponibili per chip possono

facilmente raddoppiare o addirittura quadruplicare tra l’inizio e la fine del progetto, gli

architetti informatici devono prevedere dove si troverà la tecnologia al termine del progetto,

piuttosto che progettare da dove iniziano.

2. Utilizzare l'astrazione per semplificare la progettazione: una delle principali tecniche di

produttività per hardware e software consiste nell'utilizzare astrazioni per caratterizzare il

progetto a diversi livelli di rappresentazione; i dettagli di livello inferiore sono nascosti per

offrire un modello più semplice ai livelli più alti.

3. Rendere veloce il caso comune: rendere veloce il caso comune tenderà a migliorare le

prestazioni più che ottimizzare il caso raro

4. Prestazioni tramite parallelismo: sin dagli albori dell'informatica, gli architetti informatici

hanno offerto progetti che ottengono di più prestazioni computando operazioni in parallelo.

5. Prestazioni tramite pipeline: la pipeline è un particolare modello di parallelismo che

consiste nel dividere le operazioni in piccole fasi, ad esempio recupero, decodifica,

esecuzione. Mentre viene eseguita l'istruzione i, i+1 viene decodificata e viene recuperata

i+2.

6. Prestazioni tramite previsione: in media, può essere più veloce indovinare e iniziare a

lavorare piuttosto che aspettare finché non si ha la certezza, presupponendo che il

meccanismo di recupero da una previsione errata non sia troppo costoso e che la previsione

sia relativamente accurata.

7. Gerarchia delle memorie: I programmatori desiderano che la memoria sia veloce, capiente

ed economica, poiché la velocità della memoria spesso influisce sulle prestazioni, la capacità

limita la dimensione dei problemi che possono essere risolti e il costo della memoria oggi

rappresenta spesso la maggior parte del costo del computer. Possiamo affrontare queste

richieste contrastanti con una gerarchia di memorie, con la memoria per bit più veloce, più

piccola e più costosa in cima alla gerarchia e quella più lenta, più grande ed economica per

bit in fondo. Le cache danno l'illusione che la memoria principale sia veloce quasi quanto il

vertice della gerarchia e grande ed economico quasi quanto il fondo della gerarchia.

8. Affidabilità tramite ridondanza: i computer non devono solo essere veloci; devono essere

affidabili. Poiché qualsiasi dispositivo fisico può guastarsi, rendiamo i sistemi affidabili

includendo componenti ridondanti che possono subentrare quando si verifica un guasto e

aiutare a rilevare i guasti.

Ogni programma è composto come segue

• Software applicativo: costituito da milioni di righe di codice

• Software di sistema: è composto da

- Software: esso fornisce servizi comunemente utili,

inclusi sistemi operativi, compilatori, caricatori e

assemblatori.

- Compilatore: traduce il codice HLL in codice macchina.

- Sistema Operativo: è un programma di supervisione

che gestisce le risorse di un computer a vantaggio dei

programmi eseguiti su quel computer; si occupa quindi

di gestire input/output, di gestione la memoria e

l'archiviazione, di pianificare le attività e condividere le

risorse.

• Hardware: processore, memoria, controller I/O

Un’istruzione è un comando che l'hardware del computer comprende e a cui obbedisce.

Un assembler è un programma che traduce una versione simbolica delle istruzioni in la versione binaria.

Un linguaggio di alto livello è un linguaggio che fornisce

produttività e portabilità e tratta un livello di astrazione più

vicino al dominio del problema

Un linguaggio assembly è una rappresentazione simbolica e

testuale delle istruzioni macchina.

Un linguaggio macchina è una rappresentazione con cifre

bianarie delle istruzioni macchina e dei dati codificati.

I cinque componenti classici di un computer sono input, output, memoria,

datapath e controllo, con gli ultimi due a volte combinati e chiamati

processore (o CPU) dell'unità di elaborazione centrale. Questa organizzazione

è indipendente dalla tecnologia hardware: puoi collocare ogni pezzo di ogni

computer, passato e presente, in una di queste cinque categorie.

La CPU (central processor unit), chiamato anche processore, è la parte attiva

del computer, che contiene il percorso dati e il controllo e che aggiunge

numeri, testa numeri, segnala ai dispositivi I/O da attivare e così via.

• datapath: è il componente del processore che esegue operazioni

aritmetiche.

• controllo: è il componente del processore che comanda il percorso dati,

la memoria e i dispositivi I/O secondo le istruzioni del programma.

La memoria è l'area di archiviazione in cui vengono conservati i programmi durante l'esecuzione e che contiene i dati

necessari ai programmi in esecuzione.

Ci sono però diverse tipologie di memoria:

• memoria ad accesso casuale dinamico (DRAM): è una memoria

costruita come un circuito integrato; fornisce accesso casuale a

qualsiasi posizione. I tempi di accesso sono di 50 nanosecondi

• memoria cache: è una memoria piccola e veloce che funge da

buffer per una memoria più lenta e più grande. Tipicamente SRAM.

• memoria statica ad accesso casuale (SRAM): anche la memoria è

costruita come circuito integrato, ma più veloce e meno densa della

DRAM.

SRAM e DRAM sono memorie volatili: vengono utilizzate per contenere

dati e programmi mentre sono in esecuzione; ma abbiamo bisogno di

memoria non volatile utilizzata per archiviare programmi e dati tra le

esecuzioni.

Le memorie sono classificabili come:

• la memoria primaria (o principale) è una memoria utilizzata per conservare i programmi mentre sono in esecuzione;

tipicamente è costituito da DRAM nei computer di oggi.

• la memoria secondaria è una memoria non volatile utilizzata per archiviare programmi e dati tra una corsa e l'altra;

tipicamente è costituito da

- il disco magnetico (o disco rigido) nei server è una forma di memoria secondaria non volatile composta da piatti

rotanti rivestiti con materiale di registrazione magnetico. Poiché si tratta di dispositivi meccanici rotanti, i tempi

di accesso sono compresi tra 5 e 20 millisecondi.

- la memoria flash nei PMD e SSD è una memoria a semiconduttore non volatile. È più economica e più lenta della

DRAM ma più costosa per bit e più veloce dei dischi magnetici. I tempi di accesso vanno dai 5 ai 50 microsecondi.

cos

cos = ×

1

= 2

(1 + ( × ))

2

N.B. il costo e l’area del wafer sono fissi, mentre il tasso di difetti è determinato dall’architettura e dalla

progettazione del circuito. Il valore di dies per wafer è sempre maggiore di 1 in quanto i chip sono rettangolari

mentre il wafer ha forma circolare, per cui parte dell'area del wafer in corrispondenza del bordo è inutilizzata.

Una delle astrazioni più importanti è l'interfaccia tra l'hardware e il software di livello più basso: l'architettura del set di

istruzioni (ISA), o semplicemente l'architettura, di un computer. L'architettura del set di istruzioni include tutto ciò che i

programmatori devono sapere per far funzionare correttamente un programma in linguaggio macchina binario, comprese

le istruzioni, i dispositivi I/O e così via. In genere, il sistema operativo incapsulerà i dettagli relativi all'esecuzione dell'I/O,

all'allocazione della memoria e altre funzioni del sistema di basso livello.

L’interfaccia binaria dell'applicazione (ABI) è invece la parte utente del set di istruzioni più le interfacce del sistema

operativo utilizzate dai programmatori dell'applicazione; l’ABI definisce quindi uno standard per la portabilità binaria tra

computer. Si noti che distinguiamo l'architettura del set di istruzioni da un'implementazione dell'architettura:

un'implementazione è un hardware che obbedisce all'astrazione dell'architettura. Questa interfaccia astratta consente a

qualsiasi implementazione con costi e prestazioni variabili di eseguire software identici.

ABI = ISA + interfaccia SW di sistema

Il tempo è la misura delle prestazioni del computer: il computer che esegue la stessa quantità di lavoro nel minor tempo

è il più veloce.

La misurazione delle prestazioni di un computer si definisce in modalità diverse a seconda di cosa contiamo:

• il tempo di esecuzione (o tempo di risposta) è il tempo totale necessario al computer per completare un'attività, inclusi

accessi al disco, accessi alla memoria, attività di I/O, sovraccarico del sistema operativo, tempo di esecuzione della CPU

e così via. 1

=

> ⇔ >

⇔ = =

“X è n volte più veloce di Y”

• il tempo di esecuzione della CPU (tempo della CPU) è il tempo effettivo impiegato dalla CPU per eseguire un'attività

specifica, non includendo il tempo impiegato in attesa di I/O o nell'esecuzione di altri programmi. Esso può essere

suddiviso in

- tempo CPU dell'utente, cioè il tempo della CPU impiegato in un pr

Dettagli
Publisher
A.A. 2023-2024
6 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher francy_a_s di informazioni apprese con la frequenza delle lezioni di Architetture dei sistemi digitali e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Trieste o del prof Carini Alberto.