architettura degli elaboratori

684
7/21/2019 Architettura Degli Elaboratori http://slidepdf.com/reader/full/architettura-degli-elaboratori-56da30dcaeafa 1/684

Upload: vincenzo-maria-schimmenti

Post on 05-Mar-2016

17 views

Category:

Documents


0 download

DESCRIPTION

ArchElab Padova - Computer Architecture

TRANSCRIPT

  • 54

    01.a

    Un po di storia

    LelaboratoreLelaboratore

    54

    Storia del calcolo automaticoStoria del calcolo automatico

    Legata allo sviluppo della tecnologia: Generazione -1: La preistoria ????-1642

    1

    Generazione -1: La preistoria ????-1642 Generazione 0: Meccanica 1642-1935 Generazione 1: Elettromeccanica 1935-1945 Generazione 2: Valvole termoioniche 1945-1955 Generazione 3: Transistors 1955-1965 Generazione 4: Circuiti integrati 1965-1980 Generazione 4: Circuiti integrati 1965-1980 Generazione 5: VLSI 1980-????

    Architettura degli Elaboratori 2012

  • 54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Oggetti usati come strumenti di calcolo (es: conchiglie per rappresentare pecore)

    2

    Architettura degli Elaboratori 2012

    = stessa cardinalit= rappresentano lo stesso numero

    54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    operazioni aritmetiche come procedure manuali:

    3

    A B B

    rappresentazionedel numero 2

    A

    rappresentazionedel numero 1

    B

    rappresentazionedel numero 3

    B

    Architettura degli Elaboratori 2012

    Nome della procedura manuale : addizione di numeri interi

    del numero 2 del numero 1

    Procedura: sposta il contenuto del sacco A nel sacco BRisultato: il sacco B contiene ora la rappresentazione di

    del numero 3

  • 54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)4

    Osservazioni: manipolando conchiglie, si possonomanipolare numeri

    e fare calcoli (addizioni, sottrazioni)manipolare numeri

    e fare calcoli (addizioni, sottrazioni)

    Architettura degli Elaboratori 2012

    procedure semplici, soggette ad errore, lente

    54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Meccanismo pi sofisticato: labaco (2700 aC)usa il concetto di notazione posizionale.

    5

    Valore delle cifre

    Architettura degli Elaboratori 2012

    Peso di ciascuna cifra (potenze di 10)

  • 54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Solo pi tardi il far di conto diventa un processo astratto che utilizza numeri rappresentati in forma scritta da simboli (cifre).

    6

    forma scritta da simboli (cifre). Le procedure per eseguire le operazioni aritmetiche sono eseguite su papiro.

    111 010 =

    101

    Si possono fare operazioni pi complesse.Procedure ancora manuali, ma pi veloci.Ancora soggette ad errore

    meno che con le conchiglie!Architettura degli Elaboratori 2012

    54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Nel IX secolo: Muhammad ibn MusaAl-Khwrizm sviluppa il

    7

    Al-Khwrizm sviluppa il concetto di definizione scritta di un procedimentoda seguire per ottenere un risultato

    XIII secolo, traduzione latina: algoritmo

    Architettura degli Elaboratori 2012

  • 54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Per secoli il problema principale era stato:come riuscire ad eseguire

    Un dato algoritmo

    8

    Un dato algoritmoIn modo non-manuale (automatico)Possibilmente pi velocemente che a manoPossibilmente pi affidabile (senza errori)

    Architettura degli Elaboratori 2012

    54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Codex Madrid - Leonardo Da Vinci (~1500) scoperto per caso a Madrid nel 1967 progetto di un calcolatore meccanico...?

    9

    progetto di un calcolatore meccanico...?

    Architettura degli Elaboratori 2012

  • 54

    Generazione Generazione --1: preistoria (1: preistoria (--1642)1642)

    Codex Madrid - Leonardo Da Vinci (~1500)Guatelli (New York) lo costru nel 1968

    10

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)Blaise Pascal, figlio di un esattore delle tasse, costru a 19 anni una macchina addizionatrice con riporto automatico. Le cifre degli operandi venivano inserite nelle ruote inferiori, la somma eseguita dagli ingranaggi interni, le cifre del risultato apparivano nelle finestre

    11

    nelle ruote inferiori, la somma eseguita dagli ingranaggi interni, le cifre del risultato apparivano nelle finestre superiori

    Architettura degli Elaboratori 2012

  • 54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)Joseph-Marie Jacquard invent nel 1801 un telaio automatico con trama e ordito controllati da schede perforate

    12

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    La macchina di Jacquard (1801) operava secondo uno schema prefissato.Loutput era funzione del programma scritto

    13

    Loutput era funzione del programma scritto nelle schede perforatePrimo esempio di un software

    (istruzioni su schede perforate)Nessuno raccolse questa invenzione geniale

    di Jacquard (considerata una minaccia alla di Jacquard (considerata una minaccia alla occupazione nellindustria tessile)

    Architettura degli Elaboratori 2012

  • 54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Charles Babbage nel 1822 ottenne dal governo britannico un finanziamento per costruire una macchina

    14

    per costruire una macchina (difference engine) intesa a calcolare rapidamente e senza errori le tavole numeriche usate per la navigazione.Primo esempio di Primo esempio di finanziamento della ricercain Computer Science.

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)15

    Architettura degli Elaboratori 2012

  • 54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Il Difference Engine progettato da Babbage doveva calcolare e stampare tavole di valori di polinomi fino al sesto grado, con la precisione di

    16

    polinomi fino al sesto grado, con la precisione di 20 cifre decimaliOggi si chiamerebbe: application specific hard-coded machineNonostante il finanzimento Babbage non riusc a costruire il Difference Engine: dopo 10 anni, nel costruire il Difference Engine: dopo 10 anni, nel 1832, abbandon il progetto e ne intraprese un altro (Analitical Engine)

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Nel 1853 (pi di 20 anni dopo) lo svedese Georg Scheutz, costru una versione limitata delDifference Engine di Babbage

    17

    Difference Engine di Babbage

    Architettura degli Elaboratori 2012

  • 54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Nel 1989-91, fu costruita una versione

    18

    una versione completa del Difference Engine, sulla base del progetto originale di progetto originale di Babbage

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)LAnalytical Engine (il nuovo progetto di Babbage) il primo vero computer della storia: Un dispositivo programmabile con la struttura dei computer moderni:Organi di Input (schede perforate) per dati e

    19

    Organi di Input (schede perforate) per dati e istruzioni

    Organi di Output (ruote predisposte per stampare)Organi di Memoria (the Store), posizione delle ruote

    dentate (1000 colonne di 50 ruote: ~200Kbit)Una unit aritmetica (the Mill), Un modulo di controllo, per stabilire la sequenza

    delle operazioni.delle operazioni.

    Architettura degli Elaboratori 2012

    Nonostante le energie (e il denaro) speso, Babbage non riusc a costruire nemmeno la Analitical Engine:come per Leonardo, la

    tecnologia non era ancora matura.

  • 54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Nel 1842, la contessa Ada Lovelace, scrisse il primo programma per la

    20

    primo programma per la Analytical Engine di Babbage.

    Pu essere considerata la prima programmatricela prima programmatricedella storia.

    Architettura degli Elaboratori 2012

    54

    Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

    Nel 1890 Herman Hollerith vinse la gara per la fornitura delle apparecchiature di calcolo necessarie al governo americano per

    21

    necessarie al governo americano per elaborare i dati del censimento

    Nel 1914, la societ da lui fondata, Hollerith Tabulating Company, insieme ad altre due, costitu la Calculating-Tabulating-Recording costitu la Calculating-Tabulating-Recording (C-T-R) che, nel 1924, prese il nome di IBM.

    Architettura degli Elaboratori 2012

  • 54

    Generazione 1: Elettrom. (1935Generazione 1: Elettrom. (1935--1945)1945)

    nel 1935 Konrad Zuse (Berlino) costru nel salotto dei genitori lo Z-1. Era basato su rel e utilizzava laritmetica binaria.

    22

    Tempo di esecuzione delle istruzioni: 6 s ~ 0.17 Hz).

    Architettura degli Elaboratori 2012

    54

    Teoria della computabilitTeoria della computabilit

    1936: Alan M. Turing getta le basi della teoria della computabilit.La teoria basata sulla

    23

    La teoria basata sulla macchina di Turing,

    una macchina molto semplice ma universale, cio in grado di calcolare qualsiasi funzione computabile.

    Il problema ingegneristico di produrre Il problema ingegneristico di produrre macchine diverse per svolgere compiti diversi sostituito dal lavoro di programmare la macchina universale per i vari compiti.

    Architettura degli Elaboratori 2012

  • 54

    Generazione 1: Elettrom. (1935Generazione 1: Elettrom. (1935--1945)1945)Fine degli anni 30: Howard Aiken costru lo Harvard Mark I (IBM Automatic Sequence Control Calculatoro ASCC) il primo calcolatore elettromeccanico general purpose messo in commercio.

    24

    purpose messo in commercio.Le istruzioni venivano lette da banda perforata,come previsto nellAnalytical Engine di Babbage.

    Architettura degli Elaboratori 2012

    54

    Generazione 1: Generazione 1: Elettromeccanica Elettromeccanica (1935(1935--1945)1945)

    25

    NellHarvard MARK I Grace M. Hoppertrov il primo bug(scarafaggio) ucciso tra le ganasce di un relay. Linsetto fu da lei incollato nel logbook incollato nel logbook del computer e da allora, ad ogni guasto della macchina, era solita dire ad Howard Aiken che dovevano "debug the computer

    Architettura degli Elaboratori 2012

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    John Atanasoff and Clifford Berrycostruirono, tra il 1939 e il 1942, il primo elaboratore

    ABC - Il primo elaboratore elettronico

    26

    1942, il primo elaboratore digitale elettronico alla universit dello Iowa. The ABC conteneva molte innovazioni tra cui laritmetica binaria, lelaborazione parallela, le lelaborazione parallela, le memorie dinamiche e la separazione tra la memoria e le funzioni di calcolo.Architettura degli Elaboratori 2012

    54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)"It was at an evening of scotch and 100 mph car rides, when the concept came, for an electronically operated machine, that would use base-two (binary) numbers instead of the traditional base-10

    27

    that would use base-two (binary) numbers instead of the traditional base-10 numbers, condensers for memory, and a regenerative process to preclude loss of memory from electrical failure.John Atanasoff scrisse la maggior parte dei concetti del primo elaboratore moderno sul retro di un tovagliolino da cocktail. Il prototipo funzionante non fu mai brevettato per

    Architettura degli Elaboratori 2012

    Il prototipo funzionante non fu mai brevettato per linizio della II Guerra mondiale. Eckert and Mauchly furono i primi a brevettare un elaboratore digitale, lENIAC.

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    Nel 1943 inizi il progetto per costruire ENIAC

    28

    costruire ENIAC(Electronic Numerical Integrator and Computer)

    Mauchly (1907-1980) Mauchly (1907-1980) e Eckert (1919-1995)

    Architettura degli Elaboratori 2012

    54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)ENIAC18000 valvole, 1500 relay, 30 tonnellate,

    29

    30 tonnellate,140 kW, 20 registri da 10 cifre decimali.Programmi cablati (6000 interruttori, tonnellate di fili).Soggetto a guasti: negli ultimi 6 anni, negli ultimi 6 anni, in media 100 ore/sett. di operativit:availability = 60%

    Architettura degli Elaboratori 2012

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)Nel 1945, John von Neumann progett un stored program computer: il programma non pi definito da interruttori e cavi o da schede perforate, ma si trova in memoria (la stessa che contiene i dati). Larchitettura di von Neumann prevede:

    30

    che contiene i dati). Larchitettura di von Neumann prevede: - un modulo di controllo, - un modulo ALU con accumulatore,- una memoria per contenere programmi e dati,- luso dellaritmetica binaria al posto di quella decimale.

    I computer odierni sono ancora basati sullarchitettura di von Neumann (in realt deriva da Babbage).

    Questa architettura presenta il cosiddetto (Backus, 1977)von Neumann bottleneck

    tra la memoria e le unit di controllo e calcolo; tutte le nuove architetture cercano di rimuovere questo collo di bottiglia.

    Architettura degli Elaboratori 2012

    54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    John von Neumann nel 1952 con il suo EDVAC(Electronic Discrete Variable Automatic Computer)

    31

    Architettura degli Elaboratori 2012

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    Altre macchine:Manchester Mark I, il primo

    32

    Mark I, il primo stored program computer ad essere operativo (nel 1948) allUniversit di Manchester.Manchester.

    Architettura degli Elaboratori 2012

    54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    Altre macchine: nel 1951, ilWhirlwindcomputer (MIT)

    33

    computer (MIT) fu il primo ad impiegarememoriemagnetiche(nuclei di ferrite)

    Architettura degli Elaboratori 2012

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)34

    memoria (da 256 bit) a nuclei di ferriteArchitettura degli Elaboratori 2012

    54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

    Nel 1952 Grace Hopper, nellarticolo intitolatoThe Education of a Computer,

    (Proc. ACM Conference, Annals of the History

    35

    (Proc. ACM Conference, Annals of the History of Computing Vol. 9, No.3-4, pp. 271-281) descrive il concetto di compilatore.

    Architettura degli Elaboratori 2012

  • 54

    Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)Nel 1954, John Backus(IBM) svilupp il primo linguaggio di programmazione di alto livello (FORTRAN)

    36

    di alto livello (FORTRAN) con cui gli utenti potevano definire i problemi in termini di formule matematicheIl primo compilatore FORTRAN era costituito da 2000 schede perforate (2000 righe di codice non (2000 righe di codice non documentato)Molti programmi scientifici sono tuttora scritti in FORTRAN

    Architettura degli Elaboratori 2012

    54

    Generazione 3: Transistor (1955Generazione 3: Transistor (1955--1965)1965)

    Nel 1947 W. Shockley, J. Bardeen, e

    37

    J. Bardeen, e W. Brattaininventano il dispositivo transfer resistancein seguito chiamato in seguito chiamato transistor

    Architettura degli Elaboratori 2012

  • 54

    Generazione 3: Transistor (1955Generazione 3: Transistor (1955--1965)1965)

    Nel 1955, lIBM

    38

    Nel 1955, lIBM produsse un computer mainframe(IBM 704), usando transistor discreti.Il primo computer con computer con aritmetica floating point (5 kFlops, clock: 300 kHz)

    Architettura degli Elaboratori 2012

    54

    Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)Nel 1958, J. Kilby della Texas Instruments (premio Nobel per la fisica nel 2000) dimostr la possibilit di integrare un transistor insieme con resistenze e capacit su un singolo chip di semiconduttore (~1 cm2), per ottenere un oscillatore phase shift.

    39

    Architettura degli Elaboratori 2012

  • 54

    Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)

    Nel 1961, Fernando Corbat (MIT) produsse CTSS (Compatible Time Sharing System) per il computer IBM 7090/94:

    40

    computer IBM 7090/94:il primo sistema operativo (time-sharing) della storia.

    Nel 1962 allUniversit di Manchester fu operativo il computer Atlas: il primo ad usare le tecniche di memoria virtuale, di paging e di tecniche di memoria virtuale, di paging e di pipelining; possedeva moduli separati per laritmetica intera e floating-point, (prestazioni di ~200 kFLOPS).

    Architettura degli Elaboratori 2012

    54

    Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)Nel 1964 lIBM annunci il System/360, la prima famiglia di computer compatibili .

    41

    Architettura degli Elaboratori 2012

  • 54

    Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)

    Nel 1965, la DEC (Digital Equipment Corporation)

    42

    Corporation) produsse il PDP-8, il primo minicomputer.Si diffuse presto nei sistemi di controllo dei processidei processi

    Architettura degli Elaboratori 2012

    54

    Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

    Nel 1971, Ted Hoff produsse lIntel 4004, il primo microprocessore,

    43

    primo microprocessore, cio il primo processore (a 4 bit) integrato su un singolo chip

    Architettura degli Elaboratori 2012

  • 54

    Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)Nel 1975 MITS produsse lAltair 8800, il primo personal computer (memoria di 256 byte).Pi tardi, Bill Gates and Paul Allen scrissero il primo compilatore BASIC per lAltair.

    44

    compilatore BASIC per lAltair.Nel 1976: Apple I (ne furono prodotti 200).Nel 1981: il primo PC IBM.

    Architettura degli Elaboratori 2012

    54

    Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

    Nel 1984, lo Xerox PARC (Palo Alto Research Center) present ALTO, il

    45

    Research Center) present ALTO, il primo computer con un nuova interfaccia utente (GUI): finestre, icone, mouse

    Architettura degli Elaboratori 2012

  • 54

    Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)46

    Architettura degli Elaboratori 2012

    Nel 1986: il Cray-XMP supercomputer con 4 processori (840 Mflops).(raffreddato ad acqua)

    54

    Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)47

    Prestazioni simili a quelle del Pentium III (2000)Architettura degli Elaboratori 2012

  • 54

    Sony Playstation 2000Sony Playstation 200048

    Architettura degli Elaboratori 2012

    54

    CPU: Emotion EngineCPU: Emotion Engine128-bit RISC - MIPS IV-subset + 128-bit multimedia extension64-bit integer unit (2-way superscalar),107 multimedia 128-bit instructions 32 128-bit registers, 48 double entries memory management unit (TLB) 64 entries branch target address cache (BTAC)

    49

    ClockClock 300MHz (294.912MHz)300MHz (294.912MHz)Cache Cache 16KB instruction (216KB instruction (2--way) way) -- 8KB data (28KB data (2--way)way)Scratch pad RAMScratch pad RAM 16KB (1K16KB (1K128, dual port128, dual port))Memory Memory 32MB (2 channels at 800MHz)32MB (2 channels at 800MHz)Direct RambusDirect Rambus 3.2GB/sec3.2GB/secDMADMA 10 channels10 channelsCoCo--processorprocessor FPU MAC FPU MAC 1, FPU DIV 1, FPU DIV 11Vector unit VU0 (4KB/4KB)Vector unit VU0 (4KB/4KB) FPU MAC FPU MAC 4, FPU DIV 4, FPU DIV 11Vector unit VU1 (16KB/16KB)Vector unit VU1 (16KB/16KB) FPU MAC FPU MAC 9, FPU DIV 9, FPU DIV 33Vector unit VU1 (16KB/16KB)Vector unit VU1 (16KB/16KB) FPU MAC FPU MAC 9, FPU DIV 9, FPU DIV 33DecoderDecoder MPEG2MPEG2SizeSize 226mm226mm2 2 (240mm(240mm22))

    Performance: 6.2 Gflops66 Mpoly/s (geometric and perspective transformations)38 Mpoly/s (lighting) / 36 Mpoly/s (fog) 16 Mpoly/s (curved surface, Bezier)

    Architettura degli Elaboratori 2012

  • 54

    Imaging: Graphic SynthesizerImaging: Graphic Synthesizer Pixel enginesPixel engines 16 in parallel16 in parallel ClockClock 150MHz (147.456MHz)150MHz (147.456MHz) Video RAMVideo RAM 4MB (embedded)4MB (embedded) DRAM bandwidthDRAM bandwidth 48GB/sec48GB/sec

    50

    DRAM bandwidthDRAM bandwidth 48GB/sec48GB/sec DRAM bus widthDRAM bus width 25602560--bit (1024+1024+512)bit (1024+1024+512) RGB:Alpha:ZRGB:Alpha:Z BufferBuffer 24:8:3224:8:32

    42.7Mtransistors42.7Mtransistors 183mm183mm22 (279mm(279mm22))

    Performance: 75 Performance: 75 MpolyMpoly/sec/sec (small polygons)(small polygons)50 50 MpolyMpoly/sec/sec (48 pix quad, 24(48 pix quad, 24--bit, Alpha, Z)bit, Alpha, Z)50 50 MpolyMpoly/sec/sec (48 pix quad, 24(48 pix quad, 24--bit, Alpha, Z)bit, Alpha, Z)30 30 MpolyMpoly/sec/sec (50 pix triangle, Alpha, Z)(50 pix triangle, Alpha, Z)25 25 MpolyMpoly/sec/sec (48 pix quad, Alpha, Z, texture)(48 pix quad, Alpha, Z, texture)Particle drawingParticle drawing150 150 MpixelsMpixels/sec/secSprite drawingSprite drawing 18.75 M/s (8x8 pixels)18.75 M/s (8x8 pixels)

    (8x speed for 640x480 at 60fps)(8x speed for 640x480 at 60fps)Architettura degli Elaboratori 2012

    54

    Cosa sta accadendo oggi: un esempioCosa sta accadendo oggi: un esempio

    2005: Sony, Toshiba e IBM annunciano ilmicroprocessore CELL

    51

    Pi unit di calcolo indipendenti sul chip (multi-core) Parallelismo

    Architettura degli Elaboratori 2012

  • 54

    Applicazioni del CELL (1 di 2)Applicazioni del CELL (1 di 2)

    11 novembre 2006:

    52

    11 novembre 2006:Sony mette sul mercato Playstation 3,basata sul microprocessore CELL

    Architettura degli Elaboratori 2012

    54

    Applicazioni del CELL (2 di 2)Applicazioni del CELL (2 di 2)

    25 maggio 2008: IBM RoadRunner, unprogetto ibrido con CPU CELL e AMD Opteron,supera la barriera del PetaFLOPS

    53

    supera la barriera del PetaFLOPS

    (1'000'000'000'000'000 operazioni/secondo)Architettura degli Elaboratori 2012

  • 54

    Direzioni di sviluppoDirezioni di sviluppo

    Parallelismo ad ogni livello Continua l'integrazione

    (system-on-a-chip)

    54

    (system-on-a-chip) Un computer in ogni dispositivo

    (ubiquitous computing) Distributed - Cloud Computing Internet of Things Internet of Things

    Architettura degli Elaboratori 2012

    ?

    54

    01.a

    Un po di storia

    FineFine

  • -1.g

    Rappresentazione delle informazioniRappresentazione delle informazioni

    Informazioni numericheInformazioni numeriche

    Testo di rif.to: [Congiu] - 1.1 (pg. 117)

    1

    Architettura degli Elaboratori 2010

    33

    1. I sistemi di numerazione Decimale, binario, esadecimale Conversioni di base

    2. Le informazioni numeriche Numeri naturali (senza segno o unsigned) Numeri interi (con segno o signed) Numeri non interi ( fixed-/floating-point)

    3. Le informazioni non numeriche Testi, immagini, suoni, video

    Cosa vedremoCosa vedremo

  • 2Architettura degli Elaboratori 2010

    33( a2a1a0.a-1a-2 )b = = + a2b2 + a1b1 + a0b0 + a-1b-1 + a-2b-2 += 6i aibi

    Il sistema posizionaleIl sistema posizionale

    b la base del sistema di numerazione

    Gli ai sono le cifre del numero Il valore di una cifra dipende

    dalla sua posizione

    3

    Architettura degli Elaboratori 2010

    33

    Sistema decimaleSistema decimale

    b=10 Possibili cifre: {0;1;2;3;4;5;6;7;8;9}

    2 / 1024 / 10 +

    5 +

    9 10 +

    0 102 +2 103 +2095.4210=

  • 4Architettura degli Elaboratori 2010

    33

    Sistema binarioSistema binario

    b=2 Possibili cifre: {0;1}

    1 / 230 / 22 +1 / 2 +1 +1 2 +0 22 +1 23 +1 24 +

    = 27.62510

    11011.1012 =

    5

    Architettura degli Elaboratori 2010

    33

    Sistema ottaleSistema ottale

    b=8 Possibili cifre: {0;1;2;3;4;5;6;7}

    1 / 8

    5 +

    7 8 +3 82 +

    = 253.12510

    375.18 =

    Una cifra ottale pu rappresentare 3 cifre binarie:

    1536001101011110

    1100111010012 = 63518

  • 6Architettura degli Elaboratori 2010

    33

    Sistema esadecimaleSistema esadecimale

    b=16 Possibili cifre: {0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F}

    1 / 16

    9 +

    11 16 +7 162 +

    = 1977.062510

    7B9.116 =

    Una cifra esadecimale pu rappresentare 4 cifre binarie:

    9EC100111101100

    1100111010012 = CE916

    7

    Architettura degli Elaboratori 2010

    33 Da ottale/esadecimale a binario:

    espansione di ogni cifra in una terna/quaterna di cifre binarie.

    Da binario a ottale/esadecimale:raggruppamento in terne/quaterne di cifre e sostituzione di ciascuna terna/quaterna con lopportuna cifra ottale/esadecimale.

    Da qualsiasi base a decimale:applicando la definizione di notazione posizionale.

    Conversioni di base (1 di 4)Conversioni di base (1 di 4)

  • 8Architettura degli Elaboratori 2010

    33

    Conversioni di base (2 di 4)Conversioni di base (2 di 4)

    Da decimale a qualsiasi altra base bParte intera: si prendono i restidelle divisioni successive per b

    Esempio: 200910 = 7D916

    resto: 707/16 =resto: 13=D167125/16 =resto: 91252009/16 =

    Il procedimento si arresta

    Lultima cifra la pisignificativa

    9

    Architettura degli Elaboratori 2010

    33

    Conversioni di base (3 di 4)Conversioni di base (3 di 4)

    Da decimale a qualsiasi altra base bParte frazionaria: si prendono le parti interedelle moltiplicazioni successive per b

    Esempio: 0.687510 = 0.10112

    parte intera: 110.52 =parte intera: 11.50.752 =parte intera: 00.750.3752 =parte intera: 11.3750.68752 =

    Il procedimento si arresta

    La prima cifra la pisignificativa

  • 10

    Architettura degli Elaboratori 2010

    33

    Conversioni di base (4 di 4)Conversioni di base (4 di 4)

    Da decimale a qualsiasi altra base bParte frazionaria

    Il procedimento pu anche essere infinito!Esempio: 0.310 = 0.

    parte intera: 11.20.62 =parte intera: 11.60.82 =parte intera: 00.80.42 =

    parte intera: 00.40.22 =parte intera: 11.20.62 =parte intera: 00.60.32 =

    010012

    11

    Architettura degli Elaboratori 2010

    33

    11Rappresentazione negli elaboratoriRappresentazione negli elaboratori

    Negli elaboratori, lelemento base per la rappresentazione delle informazioni il BInary digiT o pisemplicemente BIT (Tukey, 1947).

    Pu essere realizzato in molti modi diversi (carica elettrica, campo magnetico, ecc.), ma in tutti i casi pu assumere esattamente 2 valori e corrisponde quindi a una cifra binaria.

    Qualsiasi informazione in un elaboratore rappresentata tramite un numero finito di bit.

  • 12

    Architettura degli Elaboratori 2010

    33

    Rappresentazione finita: osservazioneRappresentazione finita: osservazione

    Utilizzando un numero di cifre finito si pu rappresentare solo una quantit finita di numeri.Esempio per i numeri naturali:

    1073741823023030210485750220202

    102302101021502442

    2M-102MM2

    9999010441010M-1010MM10

    maxminquantitn. di cifrebase

    13

    Architettura degli Elaboratori 2010

    33

    Potenze di 2Potenze di 2

    Quando il numero di bit elevato, si usano delle abbreviazioni analoghe a quelle delle unit di misura

    yotta-

    zeta-

    exa-

    peta-

    tera-

    giga-

    mega-

    kilo-

    Nome

    1Y

    1Z

    1E

    1P

    1T

    1G

    1M

    1K

    Prefisso ValorePot. di 2

    ~1.2 x 10 242 80~1.2 x 10 212 70~1.2 x 10 182 60~1.1 x 10 152 50~1.1 x 10 122 40

    1.073.741.8242 301.048.5762 20

    1.0242 10

    yobi-

    zebi-

    exbi-

    pebi-

    tebi-

    gibi-

    mebi-

    kibi-

    1Yi

    1Zi

    1Ei

    1Pi

    1Ti

    1Gi

    1Mi

    1Ki

    IEC60027

  • 14

    Architettura degli Elaboratori 2010

    33

    Numeri naturaliNumeri naturali

    Esempio di rappresentazione con M=4 cifre (bit):

    1510=111121410=11102

    410=01002310=00112210=00102110=00012010=00002

    I numeri maggiori di 15 non sono rappresentabili.

    15

    Architettura degli Elaboratori 2010

    33

    Numeri interi: ampiezza e segnoNumeri interi: ampiezza e segno

    Il primo bit (quello pi significativo) viene utilizzato per indicare il segno:

    +010=00002

    -010l10002

    +710=01112

    +610=01102

    +110=00012

    -110l10012

    -510l11012-610l11102-710l11112

    2 rappresentazionidello 0

    Si riduce il numerodi interi positivirappresentabili

  • 16

    Architettura degli Elaboratori 2010

    33

    Numeri interi: eccesso PNumeri interi: eccesso P

    Il valore rappresentato si ottiene sottraendo Pal valore calcolato secondo la notazione posizionale.Esempio con M=4 e P=8 (di solito P=2M-1):

    010l10002

    710l11112610l11102

    110l10012

    -110l01112

    -610 = 210-810l00102-710 = 110-810l00012-810 = 010-810l00002

    Una sola rappresentazione

    dello 0

    Dissimmetria

    17

    Architettura degli Elaboratori 2010

    33

    Numeri interi: complemento a 1Numeri interi: complemento a 1

    La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.La rappresentazione di un intero negativo si ottiene complementando bit a bit quella del suo opposto.

    +010=00002

    -010l11112

    +710=01112

    +610=01102

    +110=00012

    -110l11102

    -610l10012-710l10002

    2 rappresentazionidello 0

  • 18

    Architettura degli Elaboratori 2010

    33

    Numeri interi: complemento a 2Numeri interi: complemento a 2

    La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.La rappresentazione di un intero negativo si ottiene aggiungendo una unit al complemento a 1.

    010=00002

    -110l11112

    +710=01112

    +610=01102

    +110=00012

    -710l10012-810l10002

    19

    Architettura degli Elaboratori 2010

    33

    Complemento a 2: proprietComplemento a 2: propriet

    il metodo di rappresentazione pi diffuso, perch lunico tra quelli visti con tutte le seguenti propriet.

    Ha una sola rappresentazione dello 0. Ha una struttura ciclica: aggiungendo 1 al massimo numero rappresentabile si ottiene il minimo numero rappresentabile. Consente le operazioni aritmetiche con i numeri negativi usando le stesse regole valide per i numeri positivi. Esempi:

    -11111+70111-41100+40100+30011+30011

  • 20

    Architettura degli Elaboratori 2010

    33

    Complemento a 2: Complemento a 2: overflowoverflow

    Nelleseguire le operazioni aritmetiche, ci si deve comunque assicurare che il risultato sia rappresentabile con il numero di bit a disposizione.Se ci non vero (overflow), lesito delloperazione privo di significato.

    Come riconoscere loverflow? Tramite i riporti.

    OVERFLOW (-)SiNo

    OKSiSiOVERFLOW (+)NoSi

    OKNoNo

    Esitodelloperazione

    Riporto nel bit a SX del segno

    Riporto nel bit di segno

    21

    Architettura degli Elaboratori 2010

    33

    OverflowOverflow: esempi: esempi

    -111m0101OVERFLOWSiNo-61010

    EsitoRip. SX bit segnoRip. bit segno-51011

    +70111OKNoNo+20010

    EsitoRip. SX bit segnoRip. bit segno+50101

    +91001OVERFLOWNoSi+60110

    EsitoRip. SX bit segnoRip. bit segno+30011

    -71m1001OKSiSi-21110

    EsitoRip. SX bit segnoRip. bit segno-51011

  • 22

    Architettura degli Elaboratori 2010

    33

    Numeri non interi (1 di 2)Numeri non interi (1 di 2)

    FIXED-POINTR = I.F

    I: parte intera; F: parte frazionaria

    Il numero di bit riservati a I e a F non dipendeda R: il punto decimale fisso.A seconda delle applicazioni, la posizione del puntodecimale pu essere codificata o implicita.

    Nota: un numero con NF cifre frazionarie pu esseretrattato come un intero se viene moltiplicato per 2NF

    23

    Architettura degli Elaboratori 2010

    33

    Numeri non interi (2 di 2)Numeri non interi (2 di 2)

    FLOATING-POINT (standard IEEE 754)R = M2E

    M = {s }1.mE = e - 127

    1 8 bit 23 bit

    e m

    31 30 23 22 0p p pp ps

  • 24

    Architettura degli Elaboratori 2010

    33

    Rappresentazione floatingRappresentazione floating--pointpoint

    Standard IEEE 754R = M2E

    M (mantissa) 24 bit: 1 per il segno s (0=+)23 per lampiezza

    1.xxxxx - in notazione fixed point normalizzata;la parte intera (sempre 1) non viene rappresentata,i 23 bit rappresentano la parte frazionaria m = xxxxx

    E (caratteristica) 8 bit: in notazione eccesso 127(e)

    25

    Architettura degli Elaboratori 2010

    33

    Rappresentazione Rappresentazione floatingfloating--pointpoint: esempio: esempio

    001100110011001100110011 8 bit 23 bit

    01111101

    31 30 23 22 0p p pp p0

    Es: 0.310 = 0.010012 = 1.001122-2

    M = +1.0011 s = 0 m = 0011E = -2 = e-127 e = 12510 = 011111012

    Standard IEEE 754R = M2E

    In esadecimale: 3E999999

  • 26

    Architettura degli Elaboratori 2010

    33

    R = M2E

    Intervallo dei numeri rappresentabiliM = {s }1.m 1.0002 d |M| d 1.1112

    E = e 127 0d e d255 -127d E d+128i valori estremi sono riservati per situazioni particolari: e = 0 il numero 0 (se m = 0)

    (se m z 0) numero non normalizzatoe = 255 il numero f (se m = 0)

    (se m z 0) numero non valido

    Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

    1 8 bit 23 bite m

    31 30 23 22 0p p pp ps

    1 d |M| d 2-2-23

    -126 d E d 127

    27

    Architettura degli Elaboratori 2010

    33

    R = M2E

    il numero P con modulo pi piccolo (z0):P = 12-126 1.181010-38(con mantissa normalizzata)

    P = 0.0012-126 2-149 1.41010-45(non normalizzato)

    il numero G con modulo pi grande:G = (2 - 2-23 ) 2+127 3.41010+38

    Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

    1 d |M| d 2-2-23 -126 d E d 127

  • 28

    Architettura degli Elaboratori 2010

    33

    R = M2EIntervallo dei numeri rappresentabili sullasse reale:

    degli infiniti numeri reali compresi tra - G e G sono rappresentabili con esattezza solo 232 (4109) numeri razionali (in realt un po meno); in generale un numero reale R sar rappresentato dal pi vicino di questi numeri razionali; lerrore di approssimazione d d/2

    Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

    erra d/2

    G 3.41010+38P 1.41010-45

    0

    R

    d

    P-P G-G

    29

    Architettura degli Elaboratori 2010

    33

    R = M2EIntervallo dei numeri rappresentabili sullasse reale:

    d la differenza tra due numeri rappresentabili consecutivi:

    Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

    erra d/2 = 2E-24

    G 3.41010+38P 1.41010-45

    0

    R

    d

    P-P G-G

    1.xxx12E-1.xxx02E

    d=0.00012E = 2E-23

  • 30

    Architettura degli Elaboratori 2010

    33

    R = M2EIntervallo dei numeri rappresentabili sullasse reale:

    lerrore assoluto di approssimazione erra funzione di E: erra piccolo vicino allo 0 (2-126-24) erra grande vicino a r G (2+127-24)

    Ma ci che pi interessa lerrore relativo errr :

    errad/2=2E-24 G 3.41010+38P 1.41010-45

    Errori nella rappresentazione f.p.Errori nella rappresentazione f.p.

    P-P G-G

    0

    erra 2E-24 2-24errr = = = (1dM

  • 32

    Architettura degli Elaboratori 2010

    33

    FLOATING POINT (standard IEEE 754) R = M2E

    PRECISIONE DOPPIA: 64 bit

    Caratteristiche della rappresentazione f.p.Caratteristiche della rappresentazione f.p.

    M = {s }1.mE = e - 1023

    1 11 bit 52 bit

    e m

    63 62 52 51 0p p pp ps

    33

    Architettura degli Elaboratori 2010

    33

    R = M2EPRECISIONE DOPPIA: 64 bit

    precisione: 16 cifre decimali significative. Sono rappresentabili solo 264 = 16 E (EXA = 1018) degli infiniti numeri reali compresi tra -G e G.Esempio di grandezza fisica estrema gestibile con questa rappresentazione f.p.:

    numero di particelle subatomiche nelluniverso: 1080

    P-P G-G

    0

    G 1.81010+308P 2.21010-308errr 10-17

    Rappresentazione f.p. in precisione doppiaRappresentazione f.p. in precisione doppia

  • -1.g

    FineFine

    Rappresentazione delle informazioni

  • Rappresentazione binaria delle informazioni numeriche

    NUMERI NATURALIcon 32 bit (i primi 232 = 4G numeri)

    0 00 001 00 ... 012 00 ... 10 231 -2 01 ... 10231 -1 01 ... 11

    231 10 ... 00231+1 10 ... 01231+2 10 ... 10 232 -2 11 ... 10232 -1 11 ... 11

    (da 0 a 232-1)

    Rappresentazione binaria delle informazioni numeriche

    NUMERI NATURALIcon 32 bit (i primi 232 = 4G numeri)

    0 00 001 00 ... 012 00 ... 10 231 -2 01 ... 10231 -1 01 ... 11

    231 10 ... 00231+1 10 ... 01231+2 10 ... 10 232 -2 11 ... 10232 -1 11 ... 11 +1

    100 ... 00

    (da 0 a 232-1)

  • Rappresentazione binaria delle informazioni numeriche

    0 00 001 00 ... 01 231 -2 01 ... 10231 -1 01 ... 11231 10 ... 00231+1 10 ... 01 232 -2 11 ... 10232 -1 11 11

    01 ... 11 ~~ 10 ... 00

    00 ... 00 ~~ 11 ... 11

    _ _0010 00 1100 ... 00

    NUMERI NATURALIcon 32 bit (i primi 232 = 4G numeri)

    (da 0 a 232-1)

    bit C = guardalinee

    Rappresentazione binaria delle informazioni numeriche

    NUMERI NATURALI o INTERIcon 8 bit (28 = 256 numeri)

    0 000000001 000000012 00000010 126 01111110127 01111111

    128 10000000129 10000001130 10000010 254 11111110255 11111111

    -127 -126-125-10

    1 23127128

    ECCESSO 127 negativi000000000000000100000010

    0111111001111111

    positivi

    (da -127 a +128)

  • Rappresentazione binaria delle informazioni numeriche

    NUMERI NATURALI o INTERIcon 8 bit (28 = 256 numeri)

    0 000000001 000000012 00000010 126 01111110127 01111111

    128 10000000129 10000001130 10000010 254 11111110255 11111111

    0 12126127

    -128 -127-126-2-1

    COMPLEMENTO A DUE positivi negativi100000001000000110000010

    1111111011111111+1

    100000000

    (da -128 a +127)

    Rappresentazione binaria delle informazioni numeriche

    NUMERI NATURALI o INTERIcon 32 bit

    0 00 001 00 ... 012 00 ... 10 231 -2 01 ... 10231 -1 01 ... 11

    231 10 ... 00231+1 10 ... 01231+2 10 ... 10 232 -2 11 ... 10232 -1 11 ... 11

    10 ... 0010 ... 0110 ... 10

    11 ... 1011 ... 11

    positivi-231-231+1-231+2-2-1

    negativi

  • Rappresentazione binaria delle informazioni numeriche

    NUMERI INTERIcon 32 bit

    0 00 001 00 ... 012 00 ... 10 231 -2 01 ... 10231 -1 01 ... 11

    10 ... 0010 ... 0110 ... 10

    11 ... 1011 ... 11

    positivi-231-231+1-231+2-2-1

    negativiCOMPLEMENTO A DUE

    +1100 ... 00

    (da -231 a + 231-1)

    Rappresentazione binaria delle informazioni numeriche

    NUMERI INTERI (complemento a 2)con 32 bit

    -231 10 ... 00-231+1 10 ... 01 -2 11 ... 10-1 11 110 00 001 00 ... 01 231 -2 01 ... 10231 -1 01 ... 11

    01 ... 11 ~~ 10 ... 00

    00 ... 00 ~~ 11 ... 11

    _ _0010 00 1100 ... 00

    (da -231 a + 231-1)bit V = guardalinee

  • Rappresentazione binaria delle informazioni numeriche

    NUMERI INTERI (complemento a 2)con 32 bit

    -231 10 ... 00-231+1 10 ... 01-231+2 10 ... 10 0 00 001 00 ... 01 231 -2 01 ... 10231 -1 01 ... 11

    m Il bit pi significativo ha peso negativo (-231)m Gli altri bit hanno peso positivo (+20)m 21)m 2i)

    Rappresentazione binaria delle informazioni numeriche

    NUMERI INTERI (complemento a 2)

    Come passare dalla notazione:

    a quella

    Ci = {0,1} P > N

    con N bitCN-1 CN-2 C1C0

    con P bitCP-1 CP-2 CN CN-1 CN-2 C1C0

  • CN-1 CN-2 C1C0 (Ci = {0,1})

    = CN-1(-2N-1) + CN-2 2N-2 + + C1 21 + C0 20

    Rappresentazione binaria delle informazioni numeriche

    PESO DEGLI N BIT NEL COMPLEMENTO A DUE

    se CN-1= 0 il numero positivo se CN-1= 1 il numero negativo

    vediamo separatamente i due casi

    con N bit: 0CN-2 C1C0

    = 0 (-2N-1)+CN-22N-2++C121+C020 {1}

    Rappresentazione binaria delle informazioni numeriche

    caso dei numeri positivi (CN-1= 0)

    aggiungendo (P - N) termini nulli alla {1}, il valore non cambia:

    = 0 (-2P-1)+0 2P-2++0 2N-1+CN-22N-2+ +C121+C020

    notazione posizionale con P bit: 0000CN-2 C1C0

  • con N bit: 1CN-2 C1C0 = 1(-2N-1)+CN-22N-2++C121+C020 {1}

    Rappresentazione binaria delle informazioni numeriche

    caso dei numeri negativi (CN-1= 1)

    2P-1 = 2P-2+2P-3 ++2N+1 +2N +2N-1 +2N-1 (P > N)-2P-1+2P-2+2P-3 ++2N+1 +2N +2N-1 +2N-1 = 0

    aggiungendo questa somma (= 0) alla {1}, il valore non cambia:

    = -2P-1+2P-2+2P-3 ++ 2N-1+CN-22N-2++C121+C020

    notazione posizionale con P bit: 11111CN-2 C1C0

    11111 +1

    = 100000

    Rappresentazione binaria delle informazioni numeriche

    NUMERI INTERI (complemento a 2)

    Per passare dalla notazione:

    a quella

    si estende verso sinistra il bit di segno

    con N bitS CN-2 C1C0

    con P bitS S S CN-1 CN-2 C1C0

  • Testo di rif.to: [Congiu] - 1.2 (pg. 1722)

    -1.h

    Rappresentazione delle informazioniRappresentazione delle informazioni

    TestiTestiImmaginiImmaginiImmaginiImmagini

    SuoniSuoniVideoVideo

    13

    1Testi: lo standard ASCIITesti: lo standard ASCII

    American Standard Code for Information Interchange

    7 bit, 27 = 128 simboli diversi:7 bit, 27 = 128 simboli diversi: (a z AZ 0 9 ! ? , . ; : @ # $ ) alcuni codici di controllo, per controllare la visualizzazione di un testo (capo riga, salto di pagina, ) o la sua trasmissione (XON, XOFF, )

    Architettura degli Elaboratori 2012

    I 7 bit sono memorizzati e trasmessi in un byte. Il bit in pi pu essere usato come bit di parit per rilevare eventuali errori di trasmissione.

  • 13

    2Tabella dei caratteri ASCIITabella dei caratteri ASCII

    Da un documento del 1972

    Architettura degli Elaboratori 2012

    13

    3Oltre lo standard ASCIIOltre lo standard ASCII

    Codifica ASCII estesa 256 simboli; i 128 aggiuntivi rappresentano caratteri

    di alfabeti nazionali (, , , ) e altro (, , , )di alfabeti nazionali (, , , ) e altro (, , , ) Sviluppate varie estensioni tra loro incompatibili

    Standard ISO/IEC 8859 (a 8 bit): varie tabelle compatibili ASCII per soddisfare le esigenze di varie lingue nazionali.

    Architettura degli Elaboratori 2012

    Standard UNICODE (a 16 bit): 216 = 65536 simboli per rappresentare i caratteri di tutte le principali lingue scritte del mondo.

  • 13

    4Immagini: rappresentazione rasterImmagini: rappresentazione rasterDal latino rastrum (rastrello): sottolinea come limmagine sia costituita da una griglia di punti.I punti sono detti pixel (PICture Elements).

    Il numero di bit usati per rappresentare un pixel definisce il tipo di immagine 1 bit/pixel: bianco e nero 8 bit/pixel: scala di grigi, a colori con palette 24 bit/pixel: 16777216 colori (true color)

    Esempi di standard:

    Architettura degli Elaboratori 2012

    Esempi di standard: BMP PNG JPEG Formati compressi (vediamo che significa)

    13

    5Rappresentazione raster: dimensioniRappresentazione raster: dimensioniLa qualit di unimmagine raster aumenta con il numero di pixel che la compongono

    Architettura degli Elaboratori 2012

    Anche loccupazione in byte, per, aumenta! Immagine 640x480, 24 bit/pixel: 900 KiB Immagine 3648x2736, 24 bit/pixel: 29241 KiB (32x)Per ovviare al fenomeno si adotta la compressione

  • 13

    6Compressione: lossless vs. lossyCompressione: lossless vs. lossy

    Compressione senza perdite (lossless) Preserva interamente linformazione originaria Fattore di compressione: 2 (tipico) Fattore di compressione: 2 (tipico) Esempi: PNG (immagini), ZIP (documenti generici)

    Compressione con perdita (lossy) Scarta alcune informazioni, valutate meno rilevanti Il documento originale non pu essere ricostruito

    Architettura degli Elaboratori 2012

    Il documento originale non pu essere ricostruito fedelmente.

    Fattore di compressione: 20 o pi Esempi: JPEG (immagini), MP3 (suoni)

    13

    7Compressione Compressione lossylossy: esempio (JPEG): esempio (JPEG)

    7

    Architettura degli Elaboratori 2012

    La nascita di Venere Botticelli.jpg ( 221 Kbyte)La nascita di Venere Botticelli.bmp (2.59 Mbyte)

  • 13

    8Immagini: rappresentazione vettorialeImmagini: rappresentazione vettoriale

    Insieme di elementi geometrici bidimensionali (punti, linee, archi di curva, triangoli) o tridimensionali (cubi, quadriche, )tridimensionali (cubi, quadriche, )

    Esempi di standard: Postscript (immagini 2D) DXF (disegno tecnico)

    .../V /v ldef/y {_r 2 copy curveto} bdef/Y /y ldef/l {_r lineto} bdef/L /l ldef/m {_r moveto} bdef% path construction operators/_R {.25 sub round .25 add} bdef...

    Architettura degli Elaboratori 2012

    DXF (disegno tecnico) RISpec (immagini 3D) TrueType (caratteri)

    13

    9Suoni: rappresentazione (1 di 2)Suoni: rappresentazione (1 di 2)1. Il suono (vibrazione dellaria) tramite un trasduttore

    (microfono) viene trasformato in un segnale elettrico analogico (tensione elettrica che varia nel tempo in modo analogo al suono)tempo in modo analogo al suono)

    2. Tramite un convertitore analogico/digitale (A/D)il segnale analogico viene discretizzato

    nel TEMPO, raccogliendone campionia una frequenza prestabilita

    nello SPAZIO, codificando ciascun

    Architettura degli Elaboratori 2012

    nello SPAZIO, codificando ciascuncampione con un numero finito di bit

    La sequenza dei campioni codificati la rappresentazione digitale del suono.

    A/D

  • 13

    10Suoni: rappresentazione (2 di 2)Suoni: rappresentazione (2 di 2)

    Il suono sonoro pu essere ricostruito con la trasformazione inversa

    La rappresentazione tanto pi fedele quanto maggiori sonola frequenza di campionamento

    D/Avalori digitali segnale elettrico trasduttore

    suono

    Architettura degli Elaboratori 2012

    la frequenza di campionamento(per riprodurre fedelmente un suono a frequenza fbisogna campionare a frequenza almeno 2f)il numero N di bit dei campioni (rapp. segnale/rumore)

    13

    11Esempio: il Compact Disc (1982)Esempio: il Compact Disc (1982)

    Frequenza di campionamento: 44100 Hz(la massima frequenza udibile ~20KHz).

    16 bit per campione.

    Suono stereofonico: 2 canali.

    Una canzone di 3 minuti occupa ~31000 KiB!

    Architettura degli Elaboratori 2012

    Anche per i suoni importante la compressione.Esempio: 3 minuti di suono compresso (lossy)in MP3 a 128 Kbit/s occupano ~3000 KiB.

  • 13

    12VideoVideo

    Un video una sequenza di immagini (frame)Cinema: 24 frame al secondo (fps)TV, standard europeo PAL: 25 fpsTV, standard europeo PAL: 25 fpsTV standard USA NTSC: 30 fps

    La compressione fondamentale:Un minuto di film alla risoluzione di 640x480

    Architettura degli Elaboratori 2012

    Un minuto di film alla risoluzione di 640x480(true color) occupa 1296000 KiB (~1.2 GiB).

    Un minuto di video ad alta definizione 1080p30(1920x1080) occupa 10935000 KiB (~10.4 GiB)

    13

    13

    La maggior parte dei formati sono lossy.Vengono ereditate le tecniche per le immagini,inoltre si effettua anche una compressionelungo lasse del tempo (predizione del moto, eccetera).

    Video: compressioneVideo: compressione

    lungo lasse del tempo (predizione del moto, eccetera).

    Standard pi diffuso: MPEG MPEG-2: DVD, digitale satellitare e terrestre MPEG-4 AVC (detto anche H.264): Blu-ray Disc

    Esempi di altri standard:

    Architettura degli Elaboratori 2012

    Esempi di altri standard:FLV (Macromedia/Adobe)DiVX (DivX, Incorporated)Windows Media Video (Microsoft)

  • -1.h

    FineFine

    Rappresentazione delle informazioni

  • 00.a

    Reti LogicheReti Logiche

    Porte logicheRegistri

    Bus

    Testo di rif.to: [Congiu] - 2.1-2.3 (pg. 2737)

    2

    Architettura degli Elaboratori 2009

    24

    Valori logici: convenzioneValori logici: convenzione

    I valori logici sono 2.Per indicarli useremo i nomi:

    1VEROALTO+5 V

    0FALSOBASSO

    0 VI nomi in ciascuna colonna sono equivalenti.I nomi sono solo una convenzione!

  • 3Architettura degli Elaboratori 2009

    24

    Definizione di porta logica; porta NOTDefinizione di porta logica; porta NOT

    Una porta logica un dispositivocon N ingressi ed 1 uscita, che realizzaun legame tra il valore presente alluscita

    e quelli presenti agli ingressi,esprimibile con una funzione logica elementare

    Primo esempio di porta logica: la porta NOT

    Produce in uscita un valore logico opposto a quello presente allingresso. Chiaramente N=1.

    4

    Architettura degli Elaboratori 2009

    24

    Porte logiche AND e ORPorte logiche AND e OR

    La porta AND fa assumere alluscita il valore logico 1se e solo se tutti gli ingressisi trovano ad avere il valore 1

    La porta OR fa assumere alluscita il valore logico 1 se ad almeno uno degli ingressi presente un valore logico 1

  • 5Architettura degli Elaboratori 2009

    24

    Porte logiche NAND e NORPorte logiche NAND e NOR

    La porta NAND fa assumere alluscita il valore logico 0se e solo se tutti gli ingressisi trovano ad avere il valore 1

    La porta NOR fa assumere alluscita il valore logico 0 se ad almeno uno degli ingressi presente un valore logico 1

    6

    Architettura degli Elaboratori 2009

    24

    Equivalenze tra porte logiche (1 di 3)Equivalenze tra porte logiche (1 di 3)

    La funzione realizzata da una porta logica pu essere ottenuta mediante opportune sequenze di altre porte logiche.Ad esempio, le porte NOR/NAND possono essere ottenute mediante una porta OR/AND e una NOT collegate in sequenza

  • 7Architettura degli Elaboratori 2009

    24

    Equivalenze tra porte logiche (2 di 3)Equivalenze tra porte logiche (2 di 3)

    Ogni funzione logica pu essere ottenuta impiegando solo porte OR e NOT

    Ogni funzione logica pu essere ottenuta impiegando solo porte AND e NOT

    8

    Architettura degli Elaboratori 2009

    24

    Equivalenze tra porte logiche (3 di 3)Equivalenze tra porte logiche (3 di 3)

    Ogni funzione logica pu essere ottenuta impiegando solo porte NAND

    Ogni funzione logica pu essere ottenuta impiegando solo porte NOR (provarlo per esercizio)

  • 9Architettura degli Elaboratori 2009

    24

    Tabelle di veritTabelle di veritUn secondo modo di rappresentare una rete logica mediante la sua tabella di verit,che specifica il valore delluscita per ciascuna possibile combinazione dei valori in ingresso.

    Esempi per alcune porte logiche elementari:

    10

    Architettura degli Elaboratori 2009

    24

    OR esclusivoOR esclusivoUn esempio pi complesso dato dalla rete logica che realizza la funzione di OR esclusivo: luscita Y assume il valore 1 se e solo se ai 2 ingressi sono presenti valori logici diversi

    011101110000YBA

  • 11

    Architettura degli Elaboratori 2009

    24

    Buffer Buffer tritri--statestate (1 di 2)(1 di 2)A

    Quando A=1, Y=BQuando A=0, Y=0

    A controlla se in uscitapassa il valore di B,oppure no.

    Ma Y=0 un valore di A passato attraverso la portaaperta, oppure dovuto alla porta chiusa?

    Lambiguit si risolve con il buffer tri-state.

    12

    Architettura degli Elaboratori 2009

    24

    Buffer Buffer tritri--statestate (2 di 2)(2 di 2)

    Il buffer tri-state un dispositivo in cui il valore logico delluscita Y non vincolato (n.v.) quando lingresso di controllo assume il valore logico 0

    Quando luscita Y non vincolata,il suo valore dipende dalle altre porte a cui collegata

  • 13

    Architettura degli Elaboratori 2009

    24

    CollegamCollegam. . wiredwired OR di buffer OR di buffer tritri--statestate

    Le uscite delle porte tri-state possono essere collegate tra loro purch al pi una di esse sia vincolata ad un valore logico (0 oppure 1).Viene realizzato lOR delle uscite senza leffettiva presenza di una porta OR (wired OR).

    Y=A se C=1Y=B se C=0

    Funzione di MULTIPLEXER 2/1

    14

    Architettura degli Elaboratori 2009

    24

    Multiplexer 2/1 (senza buffer Multiplexer 2/1 (senza buffer tritri--statestate))

    Y=A se C=1Y=B se C=0

  • 15

    Architettura degli Elaboratori 2009

    24

    Porta NAND open Porta NAND open collectorcollector (1 di 2)(1 di 2)

    Un altro dispositivo che consente collegamenti in wired OR la porta NAND open collector.

    In tale porta luscita vincolata (al valore logico 0) solo quando ad entrambi gli ingressi presente il valore logico 1.

    16

    Architettura degli Elaboratori 2009

    24

    Porta NAND open Porta NAND open collectorcollector (2 di 2)(2 di 2)Luscita di una porta NAND open collector pu assumere solo il valore logico 0: dunque possibile attivare contemporaneamente pi uscite di porte di questo tipo visto che i valori ad esse presenti non possono mai essere contrastanti.

    Lo schema qui sopra pu essere usato per segnalare il verificarsi di un evento.

    Resistenza di pull-up

  • 17

    Architettura degli Elaboratori 2009

    24

    Registro da un bitRegistro da un bit

    Un registro un dispositivo in grado di memorizzare(cio conservare nel tempo) un valore logico.Tale capacit distingue i registri dalle porte logiche.

    w il segnale di controllo w=1: il valore di X viene trasferito (memorizzato)nel registro; Y=X w=0: Y rimane al valore memorizzato,senza risentire di eventuali variazioni di X

    18

    Architettura degli Elaboratori 2009

    24

    Registro da un bit: diagramma temporaleRegistro da un bit: diagramma temporale

    t

    X

    Y

    w

  • 19

    Architettura degli Elaboratori 2009

    24

    BusBus

    Un bus un collegamento elettrico tra parti diverse di un elaboratore che consente il trasferimento di informazione.Un bus composto da una o pi linee; ogni linea consente di trasferire un bit.

    Per rappresentare un bus di n bit si usano i seguenti simboli grafici:

    20

    Architettura degli Elaboratori 2009

    24

    Trasferimento di un bitTrasferimento di un bit

    r1=1: il valore presente in R1 viene trasferito sul busw2=1: il valore sul bus viene memorizzato in R2

    Diagramma temporale dei segnali di controllo:

    r1

    w2 t

  • 21

    Architettura degli Elaboratori 2009

    24

    Trasferimento di gruppi di bitTrasferimento di gruppi di bit

    Un po di nomenclatura

    4 bit: nibble (o nybble) 8 bit: byte

    16 bit: half-word 32 bit: word 64 bit: double-word

    La definizione di word dipende comunque dalla taglia della parola di memoria della macchina che si sta considerando (ne parleremo meglio pi avanti).

    22

    Architettura degli Elaboratori 2009

    24

    Trasferimento in parallelo di piTrasferimento in parallelo di pi bitbit

    Vantaggio: velocit Svantaggio: servono pi linee per il bus

  • 23

    Architettura degli Elaboratori 2009

    24

    ShiftShift registerregister

    Per il trasferimento seriale si utilizza un dispositivo chiamato registro a scorrimento (shift register)

    a ciascun impulso ( ) di S, i bit contenuti nel registro scorrono di una posizione verso destra:

    - X R1- R1 R2- R2 R3- R3 R4

    Esempio: se inizialmente X=1 e lo shift register contiene 0111,dopo un impulso di S lo shift register contiene 1011

    24

    Architettura degli Elaboratori 2009

    24

    Trasferimento seriale di piTrasferimento seriale di pi bitbit

    Trasferimento seriale tra due shift register:

    C=0: a ciascun impulso ( ) di S, un bit del registro di sxviene trasferito al registro di dx C=1: a ciascun impulso di S, un bit del registro di sx

    - viene trasferito al registro di dx- e viene riportato allingresso del registro di sx stesso(dopo quattro impulsi di S nel registro di dx stata trasferita copia del contenuto del registro di sx)

  • Architettura degli Elaboratori

    2009 25

    00.a

    FineFine

    Reti logiche

  • 00.b

    Reti Logiche CombinatorieReti Logiche Combinatorie

    AnalisiMinimizzazione booleana

    Sintesi

    Testo di riferimento: [Congiu] - 2.4 (pagg. 3757)

    34

    2

    Architettura degli Elaboratori 2009

    Rete logica combinatoria: definizioneRete logica combinatoria: definizione

    Una rete logica combinatoria una rete logica nella quale, in ogni istante, i valori presenti alle uscite sono determinati unicamente dai valori presenti agli ingressinel medesimo istante.

    Una rete logica combinatoria quindi priva di stato

    (non contiene elementi di memoria); interamente descritta dalla sua

    tabella di verit

  • 34

    3

    Architettura degli Elaboratori 2009

    Primo esempio: il decodificatore 3/8Primo esempio: il decodificatore 3/8

    Un decodificatore una rete combinatoria che attivali-esima uscita se e solo seil valore binario codificato dagli ingressi i

    Tabella di verit per un decodificatore con 3 ingressi e 23=8 uscite:

    34

    4

    Architettura degli Elaboratori 2009

    Decodificatore: realizzazioneDecodificatore: realizzazione

    Sono rappresentatesolo le funzioniF0, F1 e F4.

    Le porte NOTsono rappresentatecon circoletti c.

  • 34

    5

    Architettura degli Elaboratori 2009

    Porte logiche: notazione algebricaPorte logiche: notazione algebrica

    Nome Simbolo graficoTabelladi verit

    Notazione algebrica

    AND Y = AB

    OR Y = A+B

    NOT Y = A

    XOR Y = AB

    34

    6

    Architettura degli Elaboratori 2009

    Reti logiche: rappresentazioniReti logiche: rappresentazioni

    mediante uno schema grafico mediante una tabella di verit mediante una espressione algebrica

    Sceglieremo in ciascun caso la rappresentazione pi opportuna per quel caso.

    Quanto abbiamo visto per le porte logiche vale in generale per le reti logiche.In altre parole, sono tra loro equivalentile tre rappresentazioni

  • 34

    7

    Architettura degli Elaboratori 2009

    Funzione di equivalenza (1 di 3)Funzione di equivalenza (1 di 3)

    E= AB+AB

    possibile ottenere E attraverso lasomma di prodotti

    34

    8

    Architettura degli Elaboratori 2009

    Funzione di equivalenza (2 di 3)Funzione di equivalenza (2 di 3)

    E= (A+B) (A+B)

    ... possibile ottenere E anche attraverso il prodotto di somme

  • 34

    9

    Architettura degli Elaboratori 2009

    Funzione di equivalenza (3 di 3)Funzione di equivalenza (3 di 3)

    Diversi circuiti logici equivalenti che realizzano la stessa funzione logica

    34

    10

    Architettura degli Elaboratori 2009

    Algebra di Algebra di BooleBoole o booleanao booleana

    Lanalisi delle propriet delle espressioni algebriche costruite da variabili binarie e operatori logici, si deve al matematico G. Boole(1815-1864), ed nota come algebra booleana.

    S = B(AB) + A(AB) ?

  • 34

    11

    Architettura degli Elaboratori 2009

    Algebra di Algebra di BooleBoole: propriet: propriet (1 di 2)(1 di 2)

    A

    A1 = A A0 = 0 AA = A AA = 0

    A = A A+0 = A A+1 = 1 A+A = A

    A+A = 1

    Propriet commutativa, associativa e distributiva:

    AB = BA A+B = B+A A(BC) = (AB)C

    A+(B+C) = (A+B)+C A(B+C) = AB+AC

    A+(BC) = (A+B)(A+C)

    34

    12

    Architettura degli Elaboratori 2009

    Algebra di Algebra di BooleBoole: propriet: propriet (2 di 2)(2 di 2)

    A

    Legge di De Morgan:

    A + B = A B

    A B = A + B

  • 34

    13

    Architettura degli Elaboratori 2009

    S = AB+AB = ABC = AB

    Sintesi di un Sintesi di un halfhalf--adderadder (1 di 2)(1 di 2)

    34

    14

    Architettura degli Elaboratori 2009

    Sintesi di un Sintesi di un halfhalf--adderadder (2 di 2)(2 di 2)

    S = AB + AB

    S = AB AB

    S = (AB+BB) (AB+AA)

    S = B(A+B) A(A+B)

    S = B(AB) A(AB)

    Utilizziamo lalgebra booleana e le sue proprietper riscrivere S utilizzando solo porte NAND:

  • 34

    15

    Architettura degli Elaboratori 2009

    HalfHalf--adderadder con sole porte NANDcon sole porte NAND

    S = B(AB) A(AB)C = AB

    34

    16

    Architettura degli Elaboratori 2009

    Sintesi di un Sintesi di un fullfull--adderadder (1 di 2)(1 di 2)

    S = ABC + ABC + ABC + ABCS = (AB + AB)C + (AB + AB)CS = (AB)C + (AB)C = (AB) CS = S CC = ABC + ABC + ABC + ABCC = (AB + AB)C + AB(C + C) = (AB)C + ABC = SC + C

    S = (AB)

    C = AB

    Half-Adder

  • 34

    17

    Architettura degli Elaboratori 2009

    Sintesi di un Sintesi di un fullfull--adderadder (2 di 2)(2 di 2)

    S = S C

    C = SC + C

    34

    18

    Architettura degli Elaboratori 2009

    FullFull--adderadder con sole porte NANDcon sole porte NAND

    C = SC + C = SC C

  • 34

    19

    Architettura degli Elaboratori 2009

    Sommatore binario da 4 bitSommatore binario da 4 bit

    34

    20

    Architettura degli Elaboratori 2009

    Sommatore binario da 16 bitSommatore binario da 16 bit

  • 34

    21

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (1/7)(1/7)

    Tra le propriet dellalgebra di Boole, le seguenti consentono di semplificare notevolmente le espressioni booleane:AB + AB = A(B + B) = AA(BC + BC + BC + BC) = ALe mappe di Karnaugh sono una particolare forma di tabella di verit, che consente di individuare immediatamente la possibilit di fare queste semplificazioni.

    34

    22

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (2/7)(2/7)

    Ad esempio, la seguente tabella di verit della funzione Y=Y(A,B,C) A B C Y A 0 0 1 1 0 0 0 0 B 0 1 1 0 0 0 1 0 pu essere ridisegnata cos: C 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 Mappa di Karnaugh della funzione Y 1 1 1 1 Nelle mappe di K. i valori della funzione sono scritti dentro le caselle.

    Dalla tabella di verit o dalla mappa di Karnaugh immediato ottenere lespressione booleana della funzione Y come somma di prodotti, cio come OR di tanti termini AND quante sono le caselle in cui la funzione vale 1; ciascuno di questi termini AND (detti minterm) costituito dallAND delle variabili di ingresso, negate oppure no a seconda che il valore della variabile associato a quella casella sia 0 oppure 1: Y = ABC + ABC + ABC + ABC

  • 34

    23

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (3/7)(3/7)Nel caso di funzioni di 4 variabili, ad es. Z=Z(A,B,C,D), la mappa di Karnaugh ha 4 righe e quattro colonne:

    CD AB 0 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0

    Mappa di Karnaugh della funzione Z I valori delle variabili A,B,C,D individuano le coordinate delle caselle:le coppie di valori di A e B (di C e D) associate alle colonne (alle righe)sono ordinate in modo che tra due caselle adiacenti (della medesima riga o della medesima colonna) cambi il valore di una sola delle variabili, mentre quello di tutte le altre rimane lo stesso; ci vale anche tra le caselle estreme di ciascuna riga e di ciascuna colonna (che possono quindi essere considerate adiacenti, in senso circolare).

    34

    24

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (4/7)(4/7)In questo modo a ciascuna coppia di caselle adiacenti contrassegnate con il valore 1 corrispondono, nella espressione booleana, due termini prodotto (minterm) nei quali una variabile presente negata in uno e non negata nellaltro, mentre tutte le altre variabili hanno lo stesso valore.

    E` allora possibile semplificare lespressione sostituendo quei due termini con un unico termine nel quale non pi presente la variabile che cambia valore.

    Ad esempio le ultime due caselle della seconda riga nella mappa della funzione Y portano alla seguente semplificazione:

    ABC + ABC = AC

  • 34

    25

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (5/7)(5/7)Allo stesso modo, quaterne di caselle adiacenti tutte con il valore 1 (sulla stessa riga o sulla stessa colonna) corrispondono a quattro termini che si riducono ad uno; ad esempio le quattro caselle della terza riga nella mappa della funzione Z portano alla seguente semplificazione:

    CD(AB + AB + AB + AB) = CD le quattro caselle della terza colonna nella mappa della funzione Z portano alla seguente semplificazione:

    AB(CD + CD + CD + CD) = AB Cos pure quaterne adiacenti disposte secondo un quadrato producono un unico termine; ad esempio le quattro caselle in basso a sinistra nella mappa della funzione Z portano alla seguente semplificazione:

    AC(BD + BD + BD + BD) = AC Analogo discorso vale per gruppi di otto caselle adiacenti tutte con il valore 1.

    34

    26

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (6/7)(6/7)Per semplificare lespressione di una funzione, si individuano, nella mappa di K., i gruppi di (2 o 4 o 8) caselle adiacenti con il valore 1. Spesso conviene sfruttare la propriet A+A=A, che consente di utilizzare pi volte la stessa casella (lo stesso minterm), per formare gruppi diversi e ottenere il maggior numero di semplificazioni possibile. Individuando un insieme di gruppi (da 1, 2, 4 o 8) che copra tutte le caselle in cui compare il valore 1, si ottiene una espressione semplificata, costituita dallOR dei termini corrispondenti a ciascun gruppo. Ad es. per la funzione Z, si possono individuare i gruppi segnati in figura:

    CD AB 0 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0

    AC AB BD

    Si ottiene, immediatamente, lespressione semplificata: Z=AC+AB+BD

  • 34

    27

    Architettura degli Elaboratori 2009

    Minimizzazione: Mappe di Minimizzazione: Mappe di KarnaughKarnaugh (7/7)(7/7)Funzioni booleane parzialmente definite: il loro valore specificato solo per alcune combinazioni dei valori delle variabili. Le altre combinazioni o non si verificano mai o il valore della funzione non interessa: dont care conditions (d.c.c.). In una mappa di K. spesso utile inserire un valore 1 al posto di d.c.c. (per formare ulteriori raggruppamenti). Es. Funzione parzialmente definita W (i trattini individuano d.c.c.): A B C W A 0 0 1 1 0 0 0 - B 0 1 1 0 0 0 1 1 C 0 1 0 - 0 - - - 1 0 1 1 - 1 0 0 1 1 1 - 0 - 1 0 1 - 1 1 0 - 1 1 1 0 A 0 0 1 1 Si possono sostituire due B 0 1 1 0 d.c.c. con altrettanti 1: C 0 1 - - 1 1 1 - 0 1 si forma la quaterna con cui si ottiene lespressione semplificata: W = B

    34

    28

    Architettura degli Elaboratori 2009

    EncoderEncoder

    X0

    X1

    X2

    X3

    Y0

    Y1Analogamente:Y1 = X2 + X3

    X0 0 0 1 1X1 0 1 1 0X2 X3

    0 0 - 1 - 00 1 1 - - -1 1 - - - -1 0 0 - - -

    Y0 = X1 + X3

    Y0

  • 34

    29

    Architettura degli Elaboratori 2009

    MultiplexerMultiplexer

    0 1 2 3 4 5 6 7

    DEC 3/8

    X0

    X1

    X7

    C2 C1 C0

    Y

    34

    30

    Architettura degli Elaboratori 2009

    X

    C1 C0

    0 1 2 3

    DEC 2/4

    Y0

    Y1

    Y2

    Y3

    DemultiplexerDemultiplexer

  • 34

    31

    Architettura degli Elaboratori 2009

    Sintesi a due livelliSintesi a due livelli

    Sintesi come somma di prodotti

    34

    32

    Architettura degli Elaboratori 2009

    Sintesi tramite PLASintesi tramite PLA

    PLA = Programmable Logic Array

    Tipicamente, p < 2i

  • 34

    33

    Architettura degli Elaboratori 2009

    Sintesi tramite ROM (1 di 2)Sintesi tramite ROM (1 di 2)

    34

    34

    Architettura degli Elaboratori 2009

    Sintesi tramite ROM (2 di 2)Sintesi tramite ROM (2 di 2)

  • 00.b

    FineFine

    Reti logiche combinatorie

  • 1

    Minimizzazione booleana tramite Mappe di Karnaugh Tra le propriet dellalgebra di Boole, le seguenti consentono di semplificare notevolmente le espressioni booleane:

    AB + AB = A(B + B) = A A(BC + BC + BC + BC) = A

    Le mappe di Karnaugh sono una particolare forma di tabella di verit, che consente di individuare immediatamente la possibilit di fare queste semplificazioni. Ad esempio, la seguente tabella di verit della funzione Y = Y(A,B,C) A B C Y A 0 0 1 1 0 0 0 0 B 0 1 1 0 0 0 1 0 pu essere ridisegnata cos: C 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 Mappa di Karnaugh della funzione Y 1 1 1 1 Dalla tabella di verit o dalla mappa di Karnaugh immediato ottenere lespressione booleana della funzione Y come somma di prodotti, cio come OR di tanti termini AND quante sono le caselle in cui la funzione vale 1; ciascuno di questi termini AND (detti minterm) costituito dallAND delle variabili di ingresso, negate oppure no a seconda che il valore della variabile associato a quella casella sia 0 oppure 1.

    Y = ABC + ABC + ABC + ABC Nel caso di funzioni di 4 variabili, ad es. Z = Z(A,B,C,D), la mappa di Karnaugh ha 4 righe e quattro colonne:

    CD AB 0 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0

    Mappa di Karnaugh della funzione Z Nelle mappe di Karnaugh i valori della funzione Y sono scritti dentro le caselle. I valori delle variabili A,B,C,D sono indicati come coordinate delle caselle. Esaminando queste coordinate, si constata che le coppie di valori di A e B (di C e D) associate alle colonne (alle righe) sono ordinate in modo che tra due caselle adiacenti (della medesima riga o della medesima colonna) cambia il valore di una sola delle variabili, mentre quello di tutte le altre rimane lo stesso; questa propriet vale anche tra le caselle estreme di ciascuna riga e di ciascuna colonna (che, sotto questo aspetto, possono quindi essere considerate adiacenti, in senso circolare).

  • 2

    Si osserva che, in virt di questo fatto, a ciascuna coppia di caselle adiacenti contrassegnate con il valore 1 corrispondono, nella espressione booleana, due termini prodotto (minterm) nei quali una variabile presente negata in uno e non negata nellaltro, mentre tutte le altre variabili hanno lo stesso valore. E` allora possibile semplificare lespressione sostituendo quei due termini con un unico termine nel quale non pi presente la variabile che cambia valore. Ad esempio le ultime due caselle della seconda riga nella mappa della funzione Y portano alla seguente semplificazione:

    ABC + ABC = AC Allo stesso modo, quaterne di caselle adiacenti tutte con il valore 1 (sulla stessa riga o sulla stessa colonna) corrispondono a quattro termini che si riducono ad uno; ad esempio le quattro caselle della terza riga nella mappa della funzione Z portano alla seguente semplificazione:

    CD(AB + AB + AB + AB) = CD le quattro caselle della terza colonna nella mappa della funzione Z portano alla seguente semplificazione:

    AB(CD + CD + CD + CD) = AB Cos pure quaterne adiacenti disposte secondo un quadrato producono un unico termine; ad esempio le quattro caselle in basso a sinistra nella mappa della funzione Z portano alla seguente semplificazione:

    AC(BD + BD + BD + BD) = AC Analogo discorso vale per gruppi di otto caselle adiacenti tutte con il valore 1. Per semplificare lespressione booleana di una funzione, si tratta dunque di individuare, nella relativa mappa di Karnaugh, i gruppi di (2 o 4 o 8) caselle adiacenti con il valore 1. Nel far ci conviene tenere presente la propriet A+A=A, che consente di utilizzare pi volte la stessa casella (ovvero pi volte lo stesso minterm nellespressione booleana), per formare gruppi diversi, al fine di operare il maggior numero di semplificazioni possibile. Individuando un insieme di gruppi (da 1, 2, 4 o 8) che copre tutte le caselle in cui compare il valore 1, si ottiene una espressione semplificata, costituita dallOR dei termini corrispondenti a ciascun gruppo. Riprendendo lesempio della funzione Z, si possono individuare i gruppi segnati in figura:

    CD AB 0 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0

    AC AB BD Con questi raggruppamenti si ottiene, immediatamente, lespressione semplificata di Z: Z = AC + AB + BD Nellesempio si pu osservare che si sono considerate adiacenti anche le caselle estreme delle righe o delle colonne. Si osserva che si possono individuare diversi raggruppamenti che coprono tutte le caselle in cui Z vale 1, ciascuno dei quali porta a diverse espressioni di Z equivalenti (pi o meno semplificate).

  • 3

    Funzioni booleane parzialmente definite Una funzione booleana si dice parzialmente definita se il suo valore specificato solo per alcune combinazioni dei valori delle variabili. Nella pratica si ha a che fare con funzioni booleane parzialmente definite in due casi: o quando le altre combinazioni dei valori delle variabili non si possono verificare mai, oppure quando, anche se si verificano, i corrispondenti valori della funzione non importano (possono essere indifferentemente 0 od 1, perch comunque non vengono usati). Nella tabella di verit (o nella mappa di Karnaugh) di una funzione parzialmente definita, i valori non specificati sono comunemente indicati con un trattino e corrispondono a ci che si chiama condizioni di indifferenza, ovvero dont care conditions (d.c.c.). La presenza delle d.c.c. nelle caselle di una mappa di Karnaugh pu essere convenientemente sfruttata, sostituendone alcune con il valore 1, al fine di ottenere gruppi (da 2, 4, 8) che portano a semplificare lespressione della funzione. Ad esempio, considerando la funzione parzialmente definita W la cui tabella di verit riportata qui sotto insieme con la relativa mappa di Karnaugh: A B C W A 0 0 1 1 0 0 0 - B 0 1 1 0 0 0 1 1 C 0 1 0 - 0 - - - 1 0 1 1 - 1 0 0 1 1 1 - 0 - 1 0 1 - 1 1 0 - 1 1 1 0 A 0 0 1 1 Si possono sostituire due B 0 1 1 0 d.c.c. con altrettanti 1: C 0 1 - - 1 1 1 - 0 1 e individuare la quaterna che consente di ottenere la seguente espressione semplificata di W: W = B

  • 4

    Sintesi di un encoder Si ricorda che il funzionamento di un encoder basato sullipotesi che, in ogni istante, una e una sola delle variabili di ingresso abbia il valore 1. Si consideri il caso dellencoder con 4 ingressi e due uscite: X0 X1 Y0 X2 Y1 X3 Le due funzioni duscita Y0 ed Y1 sono, dunque, parzialmente definite perch le combinazioni di valori delle variabili dingresso diverse da quelle in cui vi un solo valore uguale ad 1 non si possono presentare mai (la rete logica a monte sar tale da produrre valori di Xi che soddisfano questa ipotesi). Delle 16 righe della tabella di verit sono significative solo le 4 nelle quali Y0 ed Y1 sono definite:

    X0 X1 X2 X3 Y1 Y01 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 . . . . - -

    La corrispondente mappa di Karnaugh per la funzione Y0 :

    X2 X3X0 X1

    0 0

    0 1

    1 1

    1 0

    0 0 - 1 - 0 0 1 1 - - - 1 1 - - - - 1 0 0 - - -

    Sfruttando le condizioni di indifferenza (d.c.c.) presenti in questa mappa, si possono disegnare i due raggruppamenti da 8 caselle indicati in figura:

    X2 X3X0 X1

    0 0

    0 1

    1 1

    1 0

    0 0 - 1 - 0 0 1 1 - - - 1 1 - - - - 1 0 0 - - -

    E ottenere lespressione semplificata: Y0 = X1 + X3 Analogamente si pu ottenere: Y1 = X2 + X3

    ENC 4/2

  • Approfondimento su Approfondimento su binary adderbinary adder: : Carry Carry Look Look AheadAhead

    !"#$!"#%!&

    'A 0B 0

    C-1

    S 0C 0

    'A 1B 1

    S 1C 1

    'A 2B 2

    S 2C 2

    'A 3B 3

    S 3

    C 3#

    !'!'

    p i = A i B i (S)g i = A i B i (C)

    S i = p i C i-1C i = g i + p i C i-1

    ' '

    ()

    A i

    B i

    C i-1

    S i

    C i

    p ig i

    "

    ** !')!') p i = A i B i (S)g i = A i B i (C)

    C i = g i + p i C i-1 'A 0B 0

    C-1

    S 0C 0

    'A 1B 1

    S 1C 1

    'A 2B 2

    S 2C 2

    'A 3B 3

    S 3

    C 3

    C 0 = g 0 + p 0 C 1

    C 1 = g 1 + p 1 C 0= g 1 + p 1 g 0 + p 1 p 0 C 1

    C 2 = g 2 + p 2 C 1= g 2 + p 2 g 1 + p 2 p 1 g 0 + p 2 p 1 p 0 C 1

    C 3 = g3 + p3 C 2= g3 + p3 g 2 + p3 p 2 g 1 + p3 p 2 p 1 g 0 +

    + p3 p 2 p 1 p 0 C 1

    *

    + +

    p i = A i B i (S)g i = A i B i (C)

    C i = g i + p i C i-1

    'A 0B 0

    C-1

    S 0C 0

    'A 1B 1

    S 1C 1

    'A 2B 2

    S 2C 2

    'A 3B 3

    S 3

    C 3

    C 3 = g3 + p3 g 2 + p3 p 2 g 1 + p3 p 2 p 1 g 0 + p3 p 2 p 1 p 0 C 1

    Sia il tempo di propagazione attraverso una portaOR, AND, XOR: gi e pi si ottengono (da A i e B i) in un tempo , per ottenere Ci servono altri 2 : uno per le AND e

    uno per le OR; in tutto 3 a partire da A i e B i. per sveltire il calcolo si possono ottenere i riporti

    Ci con una rete combinatoria apposita:CLA (Carry Look-Ahead)

    ,

    ** !' -.'!' -.'

    'A 0B 0

    C-1

    S 0

    C 0 'A 1

    B 1

    S 1

    C 1 'A 2

    B 2

    S 2

    C 2 'A 3

    B 3

    S 3

    g 0p 0

    p 1

    p 2

    p 3

    -'!

    g 1

    g 2

    g 3

    C 0

    C 1

    C 2

    C 3

    C 3 /

    // !' -.'!' -.'Per operandi con pi di 4 bit, la rete CLA diventa troppo complessa:conviene usare due livelli di CLA

    Vediamo come:C3 = g3 + p3 g 2 + p3 p 2 g 1 + p3 p 2 p 1 g 0 + p3 p 2 p 1 p 0 C 1

    ponendo:G0 = g3 + p3 g 2 + p3 p 2 g 1 + p3 p 2 p 1 g 0P0 = p3 p 2 p 1 p 0

    si pu scrivere:C3 = G0 + P0 C 1

    allora possibile iterare il metodo di CLA, applicandolo a4 4-bit adder.

  • 0

    // !' -.'!' -.'Per operandi con pi di 4 bit, la rete CLA diventa troppo complessa:conviene usare due livelli di CLA

    ' -'

    A 0 ..A 3B 0 ..B 3

    C-1

    S 0 ..S 3

    C 3 ' -'

    S 4..S 7

    C7 ' -'

    S 8..S 11

    C 11 ' -'

    S 12 ..S 15

    G0P0

    P1

    P2

    P3

    -'(2livello)

    G1

    G2

    G3

    C 3

    C 7

    C 11

    C 15C 15

    A 4 ..A 7B 4 ..B 7

    A 8 ..A 11B 8 ..B 11

    A 12 ..A 15B 12 ..B 15

  • 00.d

    Reti Logiche SequenzialiReti Logiche Sequenziali

    Latch e flip-flopSintesi

    Reti sincrone

    Testo di riferimento: [Congiu] - 2.5 (pagg. 5776)

    33

    Rete logica sequenziale: definizioneRete logica sequenziale: definizione2

    Architettura degli Elaboratori 2009

    Una rete logica sequenziale una rete logica nella quale i valori presenti alle uscite sono determinati dai valori presenti agli ingressie dal valore dello stato in cui si trova il sistema.

    Una rete logica sequenziale: contiene elementi di memoria descritta da una tabella di verit che contiene anche lo stato del sistema

  • 33

    Elementi di memoria: cosa vedremoElementi di memoria: cosa vedremo3

    Architettura degli Elaboratori 2009

    Latch: sensibili al livello dei segnali dingresso Latch di tipo R-S Latch di tipo R-S con clock Latch di tipo D Latch di tipo J-K

    Flip-flop: sensibili ai fronti dei segnali dingresso Flip-flop di tipo T (2 versioni) Flip-flop di tipo D Flip-flop di tipo J-K

    33

    4

    Architettura degli Elaboratori 2009

    Elementi di memoria: latch di tipo RElementi di memoria: latch di tipo R--SS

    Q R S Q0 0 0 00 0 1 10 1 0 00 1 1 -1 0 0 11 0 1 11 1 0 01 1 1 -

    Q=0 Q=1

    S=1

    R=1

    S=1R=1

    diagramma di stato

    R = ResetS = Set

    Dont care

  • 33

    5

    Architettura degli Elaboratori 2009

    Latch di tipo RLatch di tipo R--S con clockS con clock

    Gli ingressi R e S esercitano il loro effetto solo quando il clock C ha valore logico 1

    33

    6

    Architettura degli Elaboratori 2009

    Latch di tipo DLatch di tipo D

    Nel latch R-S la configurazione R=S=1 non un input valido. Il latch D risolve questo problema.

  • 33

    7

    Architettura degli Elaboratori 2009

    Latch di tipo D con ingressi asincroniLatch di tipo D con ingressi asincroni

    NOR0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0 01 1 1 0

    Asincrono (C = 0) : si comporta come un Latch R-SSincrono (R=S=0) : si comporta come un Latch D

    Nota: una porta NOR a 3 ingressicon il terzo ingresso nullo si comporta come una porta NOR a 2 ingressi

    33

    8

    Architettura degli Elaboratori 2009

    Latch di tipo JLatch di tipo J--KK

    diagramma di stato

    Q=0 Q=1

    J=1

    K=1

    C=1

    Q K J Q0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 11 0 1 11 1 0 01 1 1 0

    tabella delle transizioni

    C=1

  • 33

    9

    Architettura degli Elaboratori 2009

    Latch di tipo JLatch di tipo J--KK

    Q K J Q0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 11 0 1 11 1 0 01 1 1 0

    tabella delle transizioni

    C=1

    J=K=1 funzione di toggle

    Luscita Q viene invertita ripetutamente.La durata del clock C deve essere calibrata per generare una sola commutazione di Q.

    33

    10

    Architettura degli Elaboratori 2009

    FlipFlip--flop di tipo T (1 di 2)flop di tipo T (1 di 2)

    Latch : sensibile al livello 0/1Flip-flop : sensibile ai fronti

    salita/discesa

  • 33

    11

    Architettura degli Elaboratori 2009

    FlipFlip--flop di tipo T (2 di 2)flop di tipo T (2 di 2)

    Q T Q0 o0 00 o1 11 o0 11 o1 0

    Q=0 Q=1

    To1

    To1

    To0To0

    diagramma di stato

    33

    12

    Architettura degli Elaboratori 2009

    FlipFlip--flop di tipo D (Masterflop di tipo D (Master--Slave)Slave)

    Ingresso e uscita: disaccoppiati

    Il flip-flop slave memorizza il valore in ingresso sul fronte di discesa,con un ritardo di mezzo ciclo di clock

  • 33

    13

    Architettura degli Elaboratori 2009

    ShiftShift registerregister con flipcon flip--flop Masterflop Master--SlaveSlave

    La propriet di disaccoppiare gli ingressi dalle uscite, consentita dai flip-flop di tipo Master-Slave, risulta utile nella costruzione di registri a scorrimento.

    33

    14

    Architettura degli Elaboratori 2009

    FlipFlip--flop di tipo Jflop di tipo J--KK

    Unaltra configurazione di flip-flop di tipo Master-Slave quella del flip-flop J-K.Il funzionamento si distingue dal latch J-K per:- la commutazione sui fronti di discesa anzich sul livello - il disaccoppiamento uscita/ingresso tipico della configurazione Master-Slave

  • 33

    15

    Architettura degli Elaboratori 2009

    FlipFlip--flop di tipo Jflop di tipo J--KK

    33

    16

    Architettura degli Elaboratori 2009

    FlipFlip--flop T sensibile ai frontiflop T sensibile ai fronti

    Q T Q0 o0 10 o1 01 o0 01 o1 1

    Q=0 Q=1

    To0

    To0

    To1To1

    diagramma di statotabella delle transizioni

    Se eliminiamo gli ingressi J e K da un flip-flop J-K si ottiene un flip-flop T sensibile ai fronti di discesa.Luscita oscilla tra 0 ed 1 commutando in corrispondenza dei fronti di discesa.

  • 33

    Allistante tx si ha: U3 U2 U1 U0 = 0 1 1 12 = 7

    17

    Architettura degli Elaboratori 2009

    Esempio: contatore binarioEsempio: contatore binario

    CU0

    U1

    U2

    U3

    ttx

    33

    18

    Architettura degli Elaboratori 2009

    Sintesi delle reti sequenziali (1 di 2)Sintesi delle reti sequenziali (1 di 2)

    Lo stato del sistema contenuto in elementi di memoria:per Z stati servono P=log2Z bit di memoria.Ad ogni istante, una rete combinatoria fornisce le uscite e il nuovo valore dello stato in funzione degli ingressi.

  • 33

    19

    Architettura degli Elaboratori 2009

    Sintesi delle reti sequenziali (2 di 2)Sintesi delle reti sequenziali (2 di 2)

    Una oculata scelta delle variabili di stato riduce la complessit della parte combinatoria, ma non ci sono regole generali da seguire.

    Per la sintesi della rete combinatoria si applicanole tecniche gi illustrate in precedenza.Spesso la rete viene realizzata in due parti separate, secondo uno dei due modelli seguenti: modello della macchina di Mealy (1955); modello della macchina di Moore (1956).I due modelli sono funzionalmente equivalenti.

    33

    20

    Architettura degli Elaboratori 2009

    Sintesi: macchina di Sintesi: macchina di MealyMealy

    Rete combinatoria C1: fornisce le uscite in funzione degli ingressie dello stato. Rete combinatoria C2: fornisce il nuovo stato in funzione degli

    ingressi e del vecchio stato (= stato allistante precedente).

  • 33

    21

    Architettura degli Elaboratori 2009

    Sintesi: macchina di MooreSintesi: macchina di Moore

    Rete combinatoria C2: fornisce le uscite in funzione del solo stato. Rete combinatoria C1: fornisce il nuovo stato in funzione degli

    ingressi e del vecchio stato.

    33

    22

    Architettura degli Elaboratori 2009

    Parte combinatoria: sintesi con ROMParte combinatoria: sintesi con ROM

    1.Rete generica: (M+P)2N+P bit di ROM;

    2.Mealy: M2N+P + P2N+P = (M+P)2N+P bit (come sopra);

    3.Moore: P2N+P + M2P bit (sembra minore, ma il numero di stati P in genere maggiore).