Sistemi di Elaborazione - CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2017/03/lezione_1.pdf ·...

Preview:

Citation preview

Sistemi di Elaborazione

Ingegneria delle Telecomunicazioni

nicola.tonellotto@isti.cnr.it

Libro di testo

Programma delle lezioni e lucidi

http://hpc.isti.cnr.it/~khast/

inclusa Appendice B “The Basics of Logic Design”

disponibile online

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

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

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)

Com’è fatto un computer

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

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

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

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

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

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

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

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

Caratteristiche di alcuni microprocessori

Capacita dei processori Intel

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à

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

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

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}

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

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

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

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

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)

Binario <—> Esadecimale

Recommended