26
Sistemi di Elaborazione Ingegneria delle Telecomunicazioni [email protected]

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 •

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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 •

Sistemi di Elaborazione

Ingegneria delle Telecomunicazioni

[email protected]

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

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 •

Binario <—> Esadecimale