sistemi di elaborazione - cnrpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf ·...
TRANSCRIPT
![Page 1: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/1.jpg)
Sistemi di Elaborazione
Ingegneria delle Telecomunicazioni
![Page 2: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/2.jpg)
Libro di testo
Programma delle lezioni e lucidi
http://hpc.isti.cnr.it/~khast/
inclusa Appendice B “The Basics of Logic Design”
disponibile online
![Page 3: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/3.jpg)
Componenti principali di un computer• Input/Output (I/O)
• mouse, tastiera (I) • video, stampante (O) • dischi (I/O) • CD e DVD (I/O o I) • rete (I/O)
• memoria principale • DRAM, SRAM
• processore (CPU) • parte operativa (datapath) • parte controllo (control) • bus
Memoria
Processore
Control(Parte di controllo)
Datapath(Parte operativa)
I/O
![Page 4: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/4.jpg)
Com’è fatto un computer• I/O
• serve per comunicare con l’esterno • include dispositivi di memoria secondaria (memoria non volatile),
acceduti come dispositivi di I/O • Memoria principale
• usata per memorizzare programmi e dati durante l’esecuzione(concetto di stored-program introdotto da Von Neumann)
• Processore • è l’esecutore delle istruzioni appartenenti ad un’ISA • ISA (Instruction Set Architecture) definisce quindi il linguaggio
(povero) comprensibile dal processore • le istruzioni sono lette dalla memoria, modificano dati in memoria o
agiscono sull’I/O • decomponibile in
Parte Controllo → mente Parte Operativa → braccio
![Page 5: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/5.jpg)
Com’è fatto un computer• Video: unità di uscita (O) • Tastiera/mouse: unità di ingresso (I) • Scatola: contiene
• alimentatore • scheda madre (o motherboard o mainboard) e bus • processore • memoria volatile (RAM) • dischi (memoria stabile, I/O) • lettori CD/DVD • dispositivi di I/O per rete (LAN / MODEM) • dispositivi di I/O USB (Universal Serial Bus)
![Page 6: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/6.jpg)
Com’è fatto un computer
![Page 7: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/7.jpg)
Circuiti integrati• I componenti elettronici del computer sono realizzati
con circuiti integrati (IC): • fili + transistor realizzati con processo di integrazione
larghissimo su frammenti di silicio (VLSI - Milioni di transistor su un singolo frammento)
• Silicio• presente nella sabbia • è un semiconduttore • aggiungendo materiali al silicio attraverso un
processo chimico, il silicio diventa transistor, conduttore, o isolante
![Page 8: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/8.jpg)
Processo di produzione di un chip
• Lingotto di silicio (15/30 cm diam.)
• Wafer sottili ottenuti tagliando il lingotto
• 20/30 processi produttivi tramite pattern e processi chimici → otteniamo diverse repliche dello stesso circuito rettangolare
• Separiamo i vari circuiti e otteniamo i die • Collaudiamo i die • Inseriamo nei package i die funzionanti, collegandoli ai piedini (pin) del package → otteniamo i chip pronti per la consegna
![Page 9: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/9.jpg)
Livelli di astrazione• Per progettare o capire l’architettura di un sistema,
oppure per programmare semplicemente un sistema, abbiamo bisogno di astrarre.
• Es.: se cerchiamo di capire come funziona una CPU… ci accorgiamo che la funzionalità della CPU è comprensibile se astraiamo e guardiamo solo alla sua interfaccia di programmazione: ISA (Instruction Set Architecture)
• Se scendiamo di livello, troviamo fili e milioni di transistor!! E diventa così impossibile comprenderne il funzionamento!!! In particolare, non si riesce a: • capire come questo livello interpreta le istruzioni dell’ISA • individuare i blocchi funzionali • capire a cosa servono i blocchi funzionali stessi
![Page 10: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/10.jpg)
Livelli di astrazioneAstrazione:
• Utilizzata per gestire la complessità
• tipicamente distinta in livelli (VMi)
• ogni livello possiede il suo linguaggio Li e le sue strutture dati Ri
• i livelli inferiori sono implementati in hardware
• i livelli superiori sono implementati in software
R1
Ri
Rn Ln
Li
L1V M1
V Mi
V Mn
Concretization
Emulation
Abstraction
Virtualization
Livelli tipici:5. Applicazioni 4. Assembler 3. Linguaggio Macchina (ISA) 2. Firmware 1. Hardware
![Page 11: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/11.jpg)
EsempioLivello: Linguaggio
ad alto livello
Livello: Linguaggio assembler
Livello: Linguaggio macchina (ISA)
a = b + c;
add $4, $5, $6
00000010010001010011000100100000
COMPILATORE
ASSEMBLATORE
Processo di traduzione
![Page 12: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/12.jpg)
Livelli di astrazioneLivello della logica digitale (hardware)
• fili e porte logiche (gate) realizzati tramite transistor • gate (fili) elaborano (trasportano) segnali binari (0/1) • tramite questi segnali è possibile rappresentare qualsiasi tipo di informazioni • interconnettendo gate e fili è possibile realizzare funzioni complesse (es.
moltiplicazioni di interi) • è anche possibile realizzare elementi di memoria (utilizzati per dati e
programmi) Livello della microarchitettura (firmware)
• costruito sopra il livello della logica digitale, si occupa di interpretare ed eseguire le istruzioni del livello ISA
![Page 13: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/13.jpg)
Livelli di astrazioneLivello del linguaggio macchina (ISA)
• È il livello di macchina nuda che appare al programmatore di sistema
• Comprende un insieme di istruzioni che di solito sono diverse per ogni processore
• problema della portabilità binaria
• La sintassi è adatta ad essere interpretata facilmente dal livello sottostante
• Le istruzioni sono stringhe di bit con formato ben determinato per permettere la facile individuazione di codici e operandi delle istruzioni
• i codici individuano l’operazione elementare che l’istruzione dovrà eseguire
• gli operandi si riferiscono alle locazioni di memoria che contengono i dati su cui eseguire l’operazione, e le locazioni dove memorizzare i risultati
![Page 14: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/14.jpg)
Livelli di astrazioneLivello del linguaggio assembler
• Offre al programmatore di sistema una vista più “umana” del livello macchina: • istruzioni espresse con stringhe di caratteri mnemoniche invece di
stringhe binarie • traduzione realizzata dall’assemblatore (è uno speciale compilatore)
rispetto al livello macchina • L’assemblatore è stato uno dei primi software di sistema realizzato per
facilitare la programmazione dei calcolatori Livello del linguaggio ad alto livello
• C, C++, Java, Python • Permette al programmatore una maggiore astrazione rispetto ai livelli
sottostanti della macchina • Ha di solito bisogno di un traduttore (compilatore) o di un interprete • E’ il livello solitamente usato per produrre software • Tale livello permette di realizzare la portabilità tra processori con diversa ISA,
basta che esista il compilatore/interprete implementato per la nuova ISA
![Page 15: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/15.jpg)
Caratteristiche di alcuni microprocessori
![Page 16: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/16.jpg)
Capacita dei processori Intel
![Page 17: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/17.jpg)
Legge di Moore• Aumento della densità dei componenti su chip • Gordon Moore — co-fondatore della Intel • Il numero di transistor su un chip raddoppierà ogni anno • Dal 1970 lo sviluppo dell’elettronica ha leggermente rallentato • Il numero di transistor su un chip raddoppia ogni 18 mesi • Il costo di un chip è rimasto pressoché invariato • Maggior densità di transistor su chip significa linee elettriche
più corte, con maggiori prestazioni • La minor dimensione aumenta la flessibilità • Ridotti requisiti di potenza di alimentazione e di
raffreddamento • Un minor numero di interconnessioni aumenta l’affidabilità
![Page 18: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/18.jpg)
Rappresentazione dell'informazione• Corrispondenza tra informazione I e sua rappresentazione
P(I), composta da cifre ai di un alfabeto di simboli A
I → P(i) = {ai}, ai ∈ A
• Esempi di alfabeto: {a, b, ..., z} {0, 1, ..., 9} {0, 1}
• I simboli possono essere simboli su carta, suoni, livelli di tensione, segnali di fumo...
• Alfabeti diversi possono rappresentare la stessa informazione:
20 10100 venti XX
![Page 19: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/19.jpg)
Capacità di rappresentazione• Dato un alfabeto composto da n simboli, quante informazioni
diverse posso rappresentare con k cifre? nk
• Quanti oggetti si possono rappresentare con 3 cifre decimali? 103
• Quanti oggetti si possono rappresentare con n bit? 2n
• Date C informazioni, quante cifre di un alfabeto con n simboli sono necessarie per rappresentarle tutte?
⌈logn(C)⌉• Quanti bit sono necessari per rappresentare 30 oggetti?
log2(16) = 4 log2(32) = 5
![Page 20: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/20.jpg)
Numerazione• Se l'informazione da rappresentare è una quantità, allora la sua
rappresentazione è detta numerazione • L'alfabeto B è detto base • Numerazione DECIMALE (base 10)
B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} • Numerazione ESADECIMALE (base 16)
B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f} • Numerazione BINARIA (base 2)
B = {0, 1} • Numerazione OTTALE (base 8)
B = {0, 1, 2, 3, 4, 5, 6, 7} • Numerazione ROMANA semplificata
B = {I, V, X, L, C, D, M}
![Page 21: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/21.jpg)
Sistema di numerazione
• Un sistema di numerazione è composto da 1. una base B di n elementi (quantità elementari) 2. una funzione biunivoca (codifica) da informazione a
rappresentazione • Sistema di numerazione a conteggio: ogni cifra
rappresenta sempre la stessa quantità • Sistema di numerazione posizionale: ogni cifra
rappresenta una quantità diversa a seconda della sua posizione
![Page 22: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/22.jpg)
Codifica posizionale• Base B con n simboli
B = {b0, b1, b2, ..., bn-1} rappresenta i valori { 0, 1, 2, ..., N-1} • Ciascun numero E (quantità) può essere rappresentato come
combinazione lineare di pesi legati alla base:
E: [ck, ck-1, ..., c0] E = .
• Base 2: pesi = {..., 16, 8, 4, 2, 1, 0.5, 0.25, 0.125, ...} • Base 10: pesi = {..., 1000, 100, 10, 1, 0.1, 0.01, ...} • Esempi
1210 = 1 x 101 + 2 x 100 1002 = 1 x 22 + 0 x 21 + 0 x 20
kX
i=0
vkNi
![Page 23: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/23.jpg)
Rappresentazioni Numeriche• Decimale 3510 = 3 x 101 + 5 x 100
• Binario 001000112 = 1 x 25 + 1 x 21 + 1 x 20
• Esadecimale 0x23 or 23hex = 2 x 161 + 3 x 160
0-15 (base 10) → 0-9, a-f (base 16)
Dec Bin Hex0 0000 01 0001 12 0010 23 0011 3
Dec Bin Hex4 0100 45 0101 56 0110 67 0111 7
Dec Bin Hex8 1000 89 1001 9
10 1010 a11 1011 b
Dec Bin Hex12 1100 c13 1101 d14 1110 e15 1111 f
![Page 24: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/24.jpg)
Base 220 1
21 2
22 4
23 8
24 16
25 32
26 64
27 128
28 256
29 512
210 1024
211 2048
212 4096
213 8192
216 65536
210 KiB
220 MiB
230 GiB
240 TiB
250 PiB
![Page 25: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/25.jpg)
Rappresentazione BinariaIl numero binario
01011000 00010101 00101110 11100111
rappresenta la quantità
0 x 231 + 1 x 230 + 0 x 229 + … + 1 x 20
Con 32 bit è possibile rappresentare 232 numeri tra 0 e 232 –1
Questa rappresentazione è chiamata unsigned (senza segno) poiché si assume che i numeri siano sempre positivi
NOTA: 2n in base due è un 1 seguito da n zeri: 25 = 100000
NOTA: 2n – 1 in base due è rappresentato da n uni: 25 – 1= 11111
bit più significativo (MSB) bit meno significativo (LSB)
![Page 26: Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf · Com’è fatto un computer • I/O • serve per comunicare con l’esterno •](https://reader035.vdocuments.mx/reader035/viewer/2022062415/604700311bdbe256d33090f7/html5/thumbnails/26.jpg)
Binario <—> Esadecimale