Estratto del documento

Architettura dei calcolatori

Parte struttura e progetto dei calcolatori

Capitolo 1

Tipi di computer

  • Personal computer: sono quelli che utilizziamo quotidianamente
  • Computer server: sfruttano la rete e offrono servizi in remoto ad utenti (fascia bassa / fascia alta)
  • Computer embedded: potenza di calcolo e costi poco elevati (usati in elettrodomestici, ecc...)

Legge di Moore

La legge di Moore afferma che la tecnologia offerta dai circuiti integrati raddoppierà ogni 18-24 mesi i transistor presenti sui circuiti tenderanno a raddoppiare ogni 2 anni (circa).

Struttura gerarchica che lega HW a SW (Schema a cipolla)

Il SW di sistema comprende:

  • Sistema Operativo
  • Compilatore

Il SW applicativo comprende tutti i programmi che saranno eseguiti in modalità utente.

Vantaggi dei linguaggi di alto livello

Maggiore produttività come primo vantaggio.

Compilatore:

  • Schema dall’alto livello al basso livello [Linguaggio C → Linguaggio Intermedio (Assembly Language) → Assembler → Linguaggio Macchina]

Le 5 componenti del calcolatore

  1. Input
  2. Output
  3. Memoria
  4. Unità di elaborazione dati
  5. Unità di controllo

L'unità di elaborazione dati e l'unità di controllo compongono il processore. La prima è il "braccio" per cui effettua le operazioni necessarie alle elaborazioni, la seconda (detta anche DATAPATH) si occupa del monitoraggio delle operazioni fatte dall'unità di elaborazione (quindi è la "mente").

Touchscreen capacitivo vs. resistivo

  • Resistivo: una resistenza cambia il proprio valore resistivo alla pressione. È single-touching e poco efficiente dal punto di vista dei consumi.
  • Capacitivo: viene registrata la conduzione delle dita. Il cambio di potenziale nel punto dove si è verificato il tocco viene riconosciuto e fatto corrispondere ad un'operazione specifica. I pixel sono gestiti come una grossa matrice di punti, per cui un tocco che cambia il potenziale in un punto viene registrato come un cambio di potenziale in una coordinata precisa x,y.

Differenza memoria DRAM / SRAM

  • La memoria DRAM è la classica memoria che utilizziamo negli slot della nostra scheda madre. Ha dei tempi di accesso più lenti rispetto alla SRAM. È composta da un certo numero di condensatori (transistor) che memorizzano i bit in maniera volatile. Sono dense e tipicamente hanno bisogno di un "refreshing" delle informazioni che altrimenti potrebbero andare perse.
  • La memoria SRAM è una memoria "statica" per cui non ha bisogno di un refreshing e riesce meglio a conservare le informazioni (utilizza flip-flop per la memorizzazione). Ha tempi di accesso molto più rapidi della DRAM ma è meno densa. Questo la rende molto più costosa della memoria DRAM. La cache della CPU è una memoria di tipo SRAM.

Acronimo ISA sta per Instruction Set Architecture.

Memoria Flash

La memoria flash (o memoria EEPROM) è una memoria di tipo solido che memorizza le informazioni in un "floating gate MOSFET" che funziona come se fosse un array monodimensionale molto grande, che tiene conto dei bit memorizzati per ogni singolo transistor. Ultimamente sono state sviluppate tecnologie di memorie Flash a multilivello, in cui un unico transistor è in grado di memorizzare più bit.

Perché le usiamo nei nostri telefoni cellulari?

  • Consumano meno di altre memorie
  • Sono costruite senza parti mobili: dunque una caduta accidentale non comporterebbe danni

Svantaggio: ogni tot di riscritture dei transistor, la memoria flash perde la capacità di memorizzazione.

Che cos'è un circuito integrato?

È un insieme di transistor che immagazzineranno informazioni (bit).

Processo produttivo di un chip

Si parte da un lingotto di silicio. Il lingotto viene affettato in tanti wafer (fettine dello spessore di circa 2.5 millimetri). Ogni wafer è soggetto a controllo. Successivamente vi sono dai 20/40 processi di lavorazione che creano i die (piastrine) a partire dal wafer con una successiva fase di separazione. Ancora una volta vi sono dei test per scartare quelli non funzionanti. Vi è infine la fase di saldatura (bonding) dei piedi di I/O al contenitore per ogni singolo die con controllo ulteriore e immissione sul mercato.

Si usa il silicio perché con semplici processi chimici è possibile renderlo sia conduttore che isolante.

Misura del costo per piastrina = Costo per singolo Wafer / (numero delle piastrine x valore di rendimento)

Il valore di rendimento è calcolato in fase di produzione ed è un valore che calcola un ratio che tiene conto dei die buoni da quelli scartati.

Tempo di esecuzione e throughput

Tempo di esecuzione (misura assoluta): tempo necessario per l'esecuzione di un intero task, misurato in secondi.

Throughput: è il numero di operazioni (o task) che vengono effettuate in un secondo.

Tempo di CPU (misura effettiva)

Il tempo di CPU è il tempo effettivamente speso da un programma per la sua esecuzione in CPU. Si divide in:

  1. Tempo di CPU utente: è il tempo impiegato dalle istruzioni e dati del solo ed esclusivo programma per l'esecuzione in CPU.
  2. Tempo di CPU di sistema: è il tempo impiegato per l'esecuzione dei servizi di sistema andati a supporto del programma per garantirne il funzionamento.

Ciclo di clock: l'hardware dei nostri computer è temporizzato su un segnale periodico a periodo costante definito come clock. La durata di un singolo ciclo di clock è definita come periodo di clock. Ovviamente il suo inverso è la frequenza di clock.

Leggi tempo di CPU sulla base del ciclo di clock

Tempo di CPU (complessivo) = Periodo di Clock x Numero di cicli di clock per il programma

Dove il Numero di Cicli di Clock per programma è calcolabile come:

Num. Cicli = numero istruzioni del programma x CPI

CPI = numero medio di cicli di clock per singola istruzione del programma. Quindi la misura è una stima approssimativa e non è precisissima.

La barriera dell’energia

Prima dell'avvento dei processori multicore, i progettisti cercavano di rendere più prestanti i propri processori (in single core) lavorando sull'aumento progressivo della frequenza di clock. Tuttavia l'aumento della frequenza di clock si traduce in aumento della potenza assorbita: i CMOS (complementary mosfet) usati nei circuiti integrati consumano molta energia in fase di commutazione (passaggio da uno stato logico ad un altro). Tale energia è detta energia dinamica ed è calcolabile per una singola transizione (1→0 oppure 0→1) come: Energia = 0.5 x Tensione2 x Carico capacitivo dei transistor dei CMOS.

Ovviamente la potenza è pari a: Potenza = Energia x Frequenza di Commutazione

Programmazione multiprocessore

Per varcare la barriera dell'energia si è passati al multiprocessore, e in particolare al multicore: sincronizzazione, comunicazione tra i processori e buona gestione dello scheduling tra processi per i vari processori deve essere ben organizzata. Inoltre il programmatore deve lavorare bene in fase di programmazione per gestire bene vari compiti da affidare ai vari processori.

SPEC

SPEC è un software che contiene una serie di benchmark (o programmi di testing) che effettuano la misura dei tempi di esecuzione del calcolatore sul quale verranno eseguiti per valutarne un punteggio chiamato SPEC ratio. I benchmark utilizzati in base ai casi possono essere reali o virtuali. Lo Spec Ratio viene calcolato come segue:

N sono i numeri di test effettuati. Ogni test porta ad un risultato. Quindi per ogni test verrà fatto un rapporto. Il prodotto tra tutti i rapporti mi stima lo SPEC ratio.

Legge di Amdahl

È una legge che calcola il tempo di esecuzione dopo un miglioramento ad un programma. TEMPO dopo MIGLIORAMENTO = (tempo influenzato dal miglioramento / miglioramento) + tempo non influenzato dal miglioramento.

Capitolo 2 pt. 1

I 3 tipi di formati delle istruzioni MIPS

Caratteristiche dei registri MIPS

Il MIPS ha 32 registri a 32 bit (nessuno escluso). 32 Bit in MIPS sono talmente frequenti che vengono chiamati come "word" (parola).

Load: il load è l'istruzione di caricamento dati da un registro alla memoria.

Indirizzamento in memoria in MIPS

Il MIPS utilizza l'indirizzamento a singolo byte, ogni indirizzo identifica un singolo byte di memoria. La memoria principale è divisa in multipli di 4 per un particolare vincolo di allineamento.

Big Endian / Little Endian

  • Big Endian: memorizzazione/trasmissione dati inizia dal bit più significativo per terminare al bit meno significativo (usata dal MIPS).
  • Little Endian: memorizzazione/trasmissione parte dal bit meno significativo per terminare al bit più significativo (usata dai processori Intel).

Che cos'è il register spilling?

È un procedimento secondo il quale il contenuto dei registri usato meno frequentemente viene spostato dai registri alla memoria principale in maniera tale da usare i registri stessi per altri contenuti più frequenti.

Numeri Signed e Unsigned in MIPS

Per i numeri unsigned MIPS mette a disposizione valori compresi tra 0 e (232) -1. Per i numeri signed, il MIPS utilizza quella che è la tecnica del complemento a 2. Il range di valori compresi tra 0 e (231) -1 è utilizzato esclusivamente per i numeri unsigned. Il range restante (tra (231) -1 e (232) -1 viene utilizzato dai numeri negativi disposti in maniera decrescente fino ad arrivare al -1 decimale.

N.B. Inizialmente i processori adoperavano la modalità per i numeri signed in "modulo e segno". Per il numero vi era un apposito campo che esplicitava se si trattasse di un numero negativo o positivo. Problema: doppio zero (uno positivo e uno negativo) per cui ben presto venne abbandonato come metodo e entrò in gioco il complemento a 2.

Dall’istruzione Assembly alla corrispettiva istruzione in linguaggio macchina (un esempio)

Operazioni di shift logico

Altre operazioni logiche

Salti condizionati e salto incondizionato

I Set Less Then

Definizione di procedura in MIPS

Lo Stack

Procedura foglia vs procedura non foglia

Differenza tra variabili automatiche e variabili statiche

  • Automatiche: sono delle variabili locali a procedura e vengono eliminate una volta che termina la procedura stessa.
  • Statiche: sono variabili la cui durata è pari a tutta la durata della vita del programma.

Frame di attivazione (o frame di procedura o record di attivazione)

Allocazione della memoria in MIPS

Codifica ASCII

(8 bit per la rappresentazione di un carattere)

Capitolo 2 pt. 2

Codifica Unicode

(16 bit per la rappresentazione di un carattere)

L’istruzione Load Upper Immediate

Salti condizionati e indirizzamento relativo al program counter

Salti condizionati e compilatore

(Sostituzione con Jump in caso di indirizzo/costante > 16)

Le modalità di indirizzamento in MIPS

  • Modalità di indirizzamento IMMEDIATO: l’operando è una costante.
  • Modalità di indirizzamento a registro: l’operando è un registro.
  • Modalità di indirizzamento BASE + SPIAZZAMENTO: abbiamo un indirizzo base contenuto in un registro + un OFFSET contenuta nell’istruzione stessa.
  • Modalità di indirizzamento relativo al program counter: l’indirizzo viene calcolato come somma del contenuto del PC più un campo costante contenuto nell’istruzione stessa.
  • Indirizzamento PSEUDODIRETTO: l’indirizzo è ottenuto concatenando 26 bit dell’istruzione del campo indirizzi + 4 bit più significativi del program counter (Jump).

Lock e Unlock (Mutua esclusione in MIPS)

Schema dei passi di traduzione per il linguaggio C

Com’è strutturato un file oggetto [UNIX]?

  • INTESTAZIONE: contiene delle informazioni sul file (ad esempio la dimensione).
  • SEGMENTO DI TESTO: contiene il codice in linguaggio macchina.
  • SEGMENTO DEI DATI STATICI: contiene i dati allocati per tutta la durata del programma.
  • INFO per la RILOCAZIONE: sono informazioni su istruzioni e dati che dipendono da indirizzi assoluti.
  • TABELLA DEI SIMBOLI: contiene tutti i collegamenti irrisolti e che dovranno poi essere risolti dal LINKER.
  • INFO per il DEBUGGING.

Che cos’è il Linker?

È un apposito modulo del sistema operativo che entra in gioco una volta ottenuto il file oggetto. Si serve delle informazioni contenute nella Tabella dei Simboli più altre informazioni di rilocazione per risolvere i collegamenti irrisolti e assemblare i vari moduli oggetto tra loro collegandoli in maniera opportuna anche alle corrispettive librerie di sistema. Il processo di linking darà vita quindi al file eseguibile, che poi sarà preso in considerazione dal loader per il caricamento in memoria e la successiva esecuzione.

Che cos’è il Loader?

I passi che effettua il Loader (6 passi)

Si occupa di caricare il programma precedentemente linkato in memoria (quindi carica l’eseguibile):

  1. Preleva le informazioni dall’intestazione del file.
  2. Prepara lo spazio indirizzi per il programma.
  3. Copia il segmento di testo del programma in memoria (quindi le istruzioni).
  4. Prepara (se necessario) lo stack per ospitare valori di ritorno e parametri.
  5. Inizializza tutti i registri del processore.
  6. Start-up del programma (procedura di avvio esecuzione del programma) fino al termine del programma (quando nel codice si incontra la EXIT).

Differenza tra librerie statiche e librerie dinamiche (DLL 1.0 e DLL 2.0)

Collegamento Lazy delle nuove librerie dinamiche (DLL 2.0)

È una tecnica utilizzata dalle nuove librerie. Ogni procedura della libreria è caricata in memoria solo ed esclusivamente dopo la sua chiamata.

I passi dell’esecuzione di un programma Java

Abbiamo dapprima il programma Java in alto livello. Un compilatore Java effettua la compilazione del codice in alto livello in un linguaggio intermedio (file di classi di Java). Successivamente un compilatore JIT (just in time compila a run-time) più l’entrata in gioco di un interprete Java (la virtual machine), garantendo il collegamento con le apposite librerie Java, danno origine al file Java compilato (.java).

Differenze e uguaglianze tra ARM e MIPS

ARM e MIPS nascono entrambe a partire dall’anno 1985. Mentre MIPS progetta e produce i propri processori, ARM ne vende solo ed esclusivamente il brevetto. Sarà compito dell’azienda che acquisterà tale brevetto di produrre il processore, questa strategia per andare a minimizzare i costi di produzione.

ARM è il processore più utilizzato oggigiorno nei dispositivi cellulari e nei sistemi embedded.

Ecco una tabella di confronto tra ARM e MIPS:

ARM MIPS
Data di messa in vendita 1985 1985
Grandezza dell'istruzione 32 bit 32 bit
Spazio per un indirizzo in memoria 32 bit lineare 32 bit lineare
Vincolo di allineamento in memoria SI SI
Tipo di operando possibile 9 tipi disponibili 3 tipi disponibili (immediato /registro / base+spiazzamento)
Registri della CPU 16 Registri a 32 Bit 32 registri a 32 bit
Gestione dell’I/O Memory Mapped Memory Mapped

ARM non ha uno specifico registro da destinare al valore zero.

In ARM tutte le istruzioni possono essere condizionali nei 4 bit più significativi dell’istruzione viene detto se la condizione deve essere eseguita o meno. L’esito del confronto viene salvato in un apposito registro chiamato registro di “condition code”.

ARM mette a disposizione delle istruzioni che permettono il salvataggio di gruppi di registri in una sola volta: "istruzioni di block loads and store".

Implementazione: c’è una maschera di 16 bit contenuta nell’istruzione di block loads and store che permette di definire l’insieme di 16 possibili registri da leggere o scrivere in memoria.

Alcune differenze di codifica delle istruzioni ARM vs MIPS

Confronto Register-Register

MIPS R-Format

ARM:

Confronto Load / Store

MIPS I-Format

Differenza tra modalità di esecuzione dell’I/O Memory Mapped e Port Mapped

  • Memory Mapped: è una modalità in cui parte della memoria viene utilizzata per la gestione dell’I/O (quindi per le operazioni di I/O si utilizza lo stesso bus che viene utilizzato per il trasferimento dati in memoria).
  • Port Mapped: c’è un apposito spazio separato dalla memoria che consente la gestione dell’I/O. Ci sono apposite istruzioni che permettono l’interazione con tale spazio.

Evoluzione dell’architettura x86 (Intel)

(Ci interessa maggiormente Intel 80386)

La prima versione dei Intel x86 si ha nell’anno 1978 con la versione 8086. Le prime versioni dei processori Intel non erano in grado di effettuare il calcolo in floating point, cosicché al processore standard c’era sempre il supporto di un co-processore (per l’8086 il coprocessore era l’8087). Nello stesso anno dell’immissione sul mercato del MIPS e dell’ARM, Intel propose la versione 80386, prima versione con dimensione registri a 32 bit General Purpose con modalità di protezione in dual mode.

Anteprima
Vedrai una selezione di 10 pagine su 75
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 1 Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 2
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 6
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 11
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 16
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 21
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 26
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 31
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 36
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano Pag. 41
1 su 75
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giuscobebbo di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori 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 del Sannio o del prof Villano Umberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community