1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU...

36
1 L’architettura del calcolatore L’architettura del calcolatore

Transcript of 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU...

Page 1: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

1

L’architettura del calcolatoreL’architettura del calcolatore

monica
Page 2: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

2

SommarioSommario

La struttura del calcolatoreLa struttura del calcolatoreL’architettura a BUSL’architettura a BUSLa CPULa CPULa memoria principaleLa memoria principaleLa memoria secondariaLa memoria secondariaI dispositivi di I/OI dispositivi di I/O

Linguaggio macchina e assemblerLinguaggio macchina e assembler

Page 3: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

3

Il mercato informatico nel 1964Il mercato informatico nel 1964

IBM S/360 Mod 40 IBM S/360 Mod 40 1.6 MHz 32KB1.6 MHz 32KB256KB256KB225.000$225.000$

IBM S/360 Mod 50 IBM S/360 Mod 50 2.0 MHz 128KB2.0 MHz 128KB256KB256KB550.000$550.000$

IBM S/360 Mod 65IBM S/360 Mod 655.0 MHz 256KB5.0 MHz 256KB1MB1MB1.200.000$1.200.000$

Nel 1964, IBM lanciò sul mercato la serie /360, coniando per l’occasione la definizione di generazione: “The third generation begins” era infatti il titolo dell’articolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati.

La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dell’ordine dei nanosecondi per le operazioni elementari.

Nel 1964, IBM lanciò sul mercato la serie /360, coniando per l’occasione la definizione di generazione: “The third generation begins” era infatti il titolo dell’articolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati.

La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dell’ordine dei nanosecondi per le operazioni elementari.

monica
Page 4: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

4

La struttura del calcolatoreLa struttura del calcolatore

Page 5: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

5

Struttura del calcolatoreStruttura del calcolatore

Si possono considerare vari livelli di astrazione:

Circuiti elettronici (hardware)Architettura e linguaggio macchinaSistema operativo (software di sistema)Linguaggi di programmazioneProgrammi applicativi

Silicon GraphicsSilicon Graphics

Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra di Boole; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, di effettuare calcoli, etc.

Page 6: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

6

Tutti i calcolatori attuali utilizzano l’architettura di Von Neuman, costituita dalle quattro componenti:

CPU (Central Processing Unit)Memoria centraleBus di sistemaPeriferiche

BUS di sistemaBUS di sistema

CPUCPU

tastieratastiera mousemouse memoria dimemoria dimassamassa monitormonitor

Memoria Memoria centralecentrale

PeriferichePeriferiche

La “macchina” di Von NeumannLa “macchina” di Von Neumann

Page 7: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

7

Architettura a BUSArchitettura a BUS

L’architettura più consolidata per il calcolatore prevede quindi unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il busbusIl bus è fisicamente realizzato mediante un insieme di conduttori elettrici

MemoriaprincipaleCPU I/O I/OI/O

BUSIndirizziDatiControllo

Dispositivi di Input/Output

Page 8: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

8

Il BUSIl BUS

MemoriaprincipaleCPU

Il bus è utilizzato per trasferire dati fra le unità funzionali L’unità che inizia il trasferimento (in genere la CPU) fornisce l’indirizzo, che individua univocamente il dato, sulle linee del bus bus indirizziindirizzi, e configura le linee del bus controllobus controllo, inviando un comando al dispositivo che contiene il dato (es. READ)Il dato da trasferire è reso disponibile sul bus datibus dati e viene ricopiato nel dispositivo destinatario

READ=1 MEM=1

0008AB38

0008AB38 0008AB38Indirizzo a32 bit (32 fili)

READ=1 MEM=1

5F66B102Dato a 32 bit (32 fili)

trasferito dalla memoria principale alla CPU

MemoriaprincipaleCPU

0008AB38

5F66B102

5F66B102

5F66B102

Page 9: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

9

La CPU La CPU 1 1

La CPU è un dispositivo sincronosincrono, cioè può cambiare stato solo quando riceve un impulso di clock, l’orologio orologio del sistemadel sistema che fornisce al computer un battito regolareLa CPU lavora a N GHz: segue un ritmo, definito dall’orologio del sistema, di N miliardi di impulsi al secondo

Intel PentiumIntel Pentium

La Central Processing UnitCentral Processing Unit è l’unità centrale di elaborazione: esegue le istruzioni del programma e ne regola il flusso, esegue i calcoli

Page 10: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

10

La CPU La CPU 2 2

È costituita da tre elementi fondamentali:

Unità AritmeticoLogica (ALU) Registri Unità di Controllo (CU)

EUExecution Unit}

ALU CU

PC

IR

registriContatore di programma

(Program CounterProgram Counter)

Registro Istruzione(Instruction RegisterInstruction Register)BUS

BIUBus Interface Unit

Page 11: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

11

La CPU La CPU 3 3

A livello “macroscopico”, ad ogni impulso di clock la CPU:

“legge” il suo stato interno (determinato dal contenuto dei registri di stato) e la sequenza di ingresso (determinata dal contenuto dei registri istruzioni e registri dati)produce un nuovo stato “dipendente” dallo stato in cui si trovava originariamente

In pratica, la CPU realizza una complessa funzione logica, con decine di ingressi e di uscite la corrispondente tabella della verità avrebbe un numero

enorme di righe (miliardi di miliardi)

Page 12: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

12

La CPU La CPU 4 4

Lo stato della CPU è costituito da informazioni (memorizzate negli opportuni registri) su:

dati da elaborare (contenuti nei registri datiregistri dati)istruzione da eseguire (nel registro istruzioniregistro istruzioni)indirizzo in memoria della prossima istruzione da eseguire (nel program counterprogram counter)eventuali anomalie/eventi verificatisi durante l’elaborazione (nei registri flagregistri flag)

Page 13: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

13

La CPU La CPU 5 5

Set di istruzioni di base:somma (da cui sottrazione)scorrimento (shift)operazioni di accesso alla memoria

trasferimento di un dato da una locazione di memoria ad un’altratrasferimento da memoria a un registro della CPUtrasferimento da un registro della CPU a memoriaoperazioni di confronto (sufficiente confronto con zero)

Le operazioni sono eseguite all’interno della ALU e “coordinate” dall’unità di controllo

}(da cui moltiplicazione e divisione)

Page 14: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

14

L’Unità AritmeticoL’Unità AritmeticoLogicaLogica

Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CULe operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandiEsiste una unità specializzata per le operazioni in virgola mobile (FPUFPU)

L’ALU (ArithmeticArithmeticLogic UnitLogic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32/64 bit); oltre al risultato dell’operazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, etc.)

ALU ResultZero

Overflow

a

b

ALU operation

CarryOut

Page 15: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

15

I registriI registri

I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32/64 bit) Alcuni registri hanno funzioni specifiche (es. contatore di programma)Nella maggior parte delle architetture le operazioni della ALU si possono effettuare solo fra dati presenti in due registriIl risultato di un’operazione effettuata dalla ALU viene normalmente memorizzato in un registro

EIP Instruction pointer (PC)

EFLAGS Condition codes

Code segment pointerCS

Stack segment pointer (top of stack)SS

Data segment pointer 0DS

Data segment pointer 1ES

Data segment pointer 2FS

Data segment pointer 3GS

031

GPR 0EAX

GPR 3EBX

GPR 1ECX

GPR 2EDX

GPR 6ESI

GPR 7EDI

GPR 5EBP

GPR 4ESP

Name Use

Registri delPentium

Page 16: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

16

Registro puntatore allo stackRegistro puntatore allo stack (Stack Pointer): lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (Last In First Out ); la posizione in cui si trova l’elemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (pushpush) ed incrementato ad ogni prelievo (poppop)

Registri e loro funzioniRegistri e loro funzioni

Registri accumulatoriRegistri accumulatori: sono integrati alla ALU, che vi può operare direttamente; mantengono risultati temporanei

Registro di statoRegistro di stato: contiene informazioni che globalmente determinano, in ogni istante, lo stato dell’unità centrale

2100

SP2000

2000

Page 17: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

17

L’Unità di ControlloL’Unità di Controllo

Esegue le istruzioni prelevandole dalla memoria nella fase di fetchfetchLa prossima istruzione da eseguire è individuata dall’indirizzo presente nel registro contatore di programmaregistro contatore di programma (PC)L’istruzione in esecuzione è memorizzata nel registro istruzioneregistro istruzione (IR)L’istruzione è un codice binario che deve essere decodificatodecodificato dalla CU; specifica il tipo di operazione, gli eventuali operandi, etc.Normalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC viene incrementatoPC viene incrementato, per fare riferimento all’istruzione successiva

CU

IR

PC

memoriaBUS

Istruzione 1Istruzione 2Istruzione 3

02AD77F2

02AD77F2

Segnali di controllo(ALU, Registri, etc.)

Page 18: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

18

La memoria centrale La memoria centrale 1 1

L’unità di memorizzazione è il byteCiascun byte nella memoria è individuato da un indirizzoindirizzo che lo distingue da tutti gli altri, costituito da un numero variabile da 0 a 2N1 dove N è la dimensione in bit dell’indirizzo (es. numero di bit sul bus indirizzi)

128 MB = 27 220 byte = = 137438953472 byte

227

00000xxxxxxxxxxxxxxxxxxxxxxxxxxx27 bit indirizzo all’interno

del blocco

00000000

07FFFFFF

32 bit

128 MB

Page 19: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

19

La memoria centrale La memoria centrale 2 2

La memoria centrale viene anche chiamata memoria ad accesso casualememoria ad accesso casuale o RAMRAM (Random Random Access MemoryAccess Memory): qualsiasi cella può essere letta/scritta in un tempo (mediamente) costante

La memoria centrale RAM è volatileLa memoria centrale RAM è volatile

Una parte della memoria centrale, la ROMROM (Read Read Only MemoryOnly Memory), viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette (ed in generale contengono informazioni fondamentali, specialmente per l’inizializzazione dell’elaboratore), ma mai riscritte

Page 20: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

20

Il software della ROM Il software della ROM 1 1

La ROM contiene il software e i dati necessari ad inizializzare il computer ed a far funzionare i dispositivi perifericiIl nucleo del software della ROM è costituito dalle routine di avviamentoroutine di avviamento che comprendono il caricatore di bootcaricatore di bootstrapstrap ed il ROM BIOSROM BIOSLe routine di avviamentoLe routine di avviamento realizzano l’inizializzazione del calcolatore:

Ne effettuano un rapido controllo di affidabilità, per accertare che tutte le componenti hardware siano perfettamente funzionantiCaricano il sistema operativo dal disco (caricatore di bootstrap)

Page 21: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

21

Il software della ROM Il software della ROM 2 2

Il caricatore di bootcaricatore di bootstrapstrap ha la funzione di leggere un programma di lancio dal disco, detto bootstrapbootstrap, e di trasferire ad esso il controllo: il boostrap carica il nucleo del sistema operativo e lo manda in esecuzione

Il ROM BIOS ROM BIOS Binary InputBinary InputOutput System Output System è la parte della ROM attiva quando il computer è al lavoro: il suo ruolo è quello di fornire un insieme di servizi di base richiesti per il funzionamento delle periferiche

Page 22: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

22

Le operazioni che si effettuano sulla memoria sono operazioni di letturalettura e scritturascrittura

Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione

L’operazione di scrittura è distruttivadistruttiva, cioè cancella l’informazione precedentemente contenuta nella cella

L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione

Operazioni sulla memoria Operazioni sulla memoria centralecentrale

Page 23: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

23

Il registro indirizziregistro indirizzi contiene l’indirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzateEsempioEsempio: un registro a 16 bit indirizza 65536 posizioni di memoriaIl decodificatore di indirizzidecodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizziIl registro datiregistro dati contiene l’informazione scritta/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle di memoria

Architettura della memoria Architettura della memoria centralecentrale

BU

SB

US

Registro datiRegistro dati

Memoria centraleMemoria centrale

Registro indirizziRegistro indirizzi

Decodificatore indirizziDecodificatore indirizzi

Page 24: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

24

La memoria secondariaLa memoria secondaria

Il disco fisso è costituito da uno o più piatti metallici ricoperti di materiale magnetico su entrambe le facceCiascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere/ scrivere l’informazione organizzata in tracce concentriche

Dischi magneticiDischi magnetici

Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk), dischi ottici (CD, DVD), dispositivi USBMemoria non volatile ad alta capacità

Page 25: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

25

I dischi magneticiI dischi magnetici

L’informazione è disposta sul disco in traccetracce, ovvero in cerchi concentriciLe tracce sono divise in settorisettori Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore)

Platter

Track

Platters

Sectors

Tracks

Per leggere (o scrivere) sul disco, la testina si deve posizionare sulla traccia che contiene il dato, ed attendere che il dato passi sotto di essa

Page 26: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

26

Accesso al discoAccesso al disco

Il tempo medio di accesso all’informazione memorizzata su disco è dato da

tseek è il tempo di ricercatempo di ricerca, necessario per posizionare la testina sulla traccia che contiene l’informazione; dipende dall’ampiezza dello spostamentotlat è il tempo di latenzatempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischittr è il tempo di trasferimentotempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire

T = tseek + tlat + ttr

Page 27: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

27

I dispositivi di InputI dispositivi di InputOutputOutput

ComportamentoComportamento: Input (read once), output (write only), memoria (rilettura/riscrittura)

PartnerPartner: uomo o macchina

Velocità del flusso dei datiVelocità del flusso dei dati: quantità di dati trasferiti nell’unità di tempo da o verso la CPU o la memoria centrale

Insieme di dispositivi che consentono l’acquisizione di dati (input input ), la loro archiviazione e la loro presentazione verso il mondo esterno (outputoutput )Si possono classificare in base a tre diverse caratteristiche:

TastieraTastiera input uomo Mouse Mouse input uomo Rete Rete input/output

macchina Hard DiskHard Disk storage macchina

velo

cità

velo

cità

++

101044 KB/s KB/s

101022 KB/s KB/s

Page 28: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

28

Linguaggio macchina Linguaggio macchina e assemblere assembler

Page 29: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

29

Il linguaggio macchinaIl linguaggio macchina

Quando il programma è in esecuzione, è memorizzato nella memoria principale; esso è rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dall’unità centrale

Il programma non è quindi distinguibile dai dati osservando il contenuto della memoria; le istruzioni sono individuate dai valori assunti dal registro PC durante l’esecuzione del programmaOgni codice binario codifica il tipo di istruzione (OPCODE) ed eventuali parametri (es. registri, indirizzi in memoria) I primi calcolatori si programmavano direttamente in linguaggio macchina!

0000000010100001000000000001100000000000100011100001100000100001100011000110001000000000000000001000110011110010000000000000010010101100111100100000000000000000

PC

Page 30: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

30

Il set di istruzioni macchinaIl set di istruzioni macchina

L’insieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processoreLe istruzioni possono essere codificate con un numero variabile di bit (es. Pentium) o con un numero fisso (es. MIPS 32 bit)Le categorie di istruzioni normalmente disponibili sono:

Trasferimento datiTrasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O)

AritmeticoAritmeticologichelogiche: eseguono i calcoli nella ALU

Salti (condizionati e incondizionati)Salti (condizionati e incondizionati): prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni

Page 31: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

31

Esempio di programma in linguaggio Esempio di programma in linguaggio macchinamacchina

0100000000010000leggi un valore in ingresso e ponilo nella cella numero 16 (variabile a)0100000000010001leggi un valore e ponilo nella cella numero 17 (variabile b)0100000000010010leggi un valore e ponilo nella cella numero 18 (variabile c)0100000000010011leggi un valore e ponilo nella cella numero 19 (variabile d)0000000000010000carica il registro A con il contenuto della cella 160001000000010001carica il registro B con il contenuto della cella 170110000000000000somma i contenuti dei dei registri A e B0010000000010100copia il contenuto del registro A nella cella 20 (risultato, variabile e)0000000000010010carica il registro A con il contenuto della cella 180001000000010011carica il registro B con il contenuto della cella 190110000000000000somma i contenuti dei registi A e B0001000000010100carica il registro B con il contenuto della cella 201000000000000000moltiplica i contenuti dei registri A e B0010000000010100copia il contenuto del registro A nella cella numero 200101000000010100scrivi in output il contenuto della cella numero 201101000000000000arresta l’esecuzione (HALT)……………………… spazio per la variabile a (cella 16)……………………… spazio per la variabile b (cella 17)……………………… spazio per la variabile c (cella 18)……………………… spazio per la variabile d (cella 19)……………………… spazio per la variabile e (cella 20)

Page 32: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

32

AssemblerAssembler

Per facilitare la programmazione è stato definito il linguaggio assemblyassemblyL’assembly impiega una notazione simbolica che è in stretta relazione con i codici in linguaggio macchina; il programma scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo del programma traduttore, l’assemblerassembler

LOAD R1, MEM1 CMP R1, R2 BREQ RISZERO STORE R1, MEM1RISZERO: LOAD R2, MEM2

Assembler

1000100011011010110101010101010001001000100100000000000000000000110000000000000000000000000010001001100011011010110101010101010010001001010110101101001000001100

OPCODE(LOAD)

registro indirizzo di memoria

Page 33: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

33

Trasferimento dei datiTrasferimento dei dati

Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoriaSi fa riferimento ad un assemblyassembly generico

LOAD REG1, MEMLOAD REG1, [REG2]

STORE REG1, MEMSTORE REG1, [REG2]

MOVE REG1, REG2

REG1

MEM

REG1

REG2

memoriaregistro

registromemoria

registroregistro

Indirizzamento diretto

Indirizzamento indiretto

Page 34: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

34

Operazioni aritmeticoOperazioni aritmeticologichelogiche

Permettono di eseguire operazioni aritmetiche o logiche su due operandi

ADD REG1, REG2

ALUADD

REG1REG2

OR REG1, REG2 0010 1100 1100 0101 1100 1111 0101 00001010 1110 0000 0000 0010 0001 1000 0001

1010 1110 1100 0101 1110 1111 1101 0001

REG1REG2

REG1

Page 35: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

35

Istruzioni di saltoIstruzioni di salto

Modificano il flusso di esecuzione del programma; il salto è condizionatocondizionato se viene effettuato solo quando si verifica una certa condizione

L’istruzione CMPCMP confronta i due argomenti, assegnando valori particolari a bit di condizione che si trovano in un registro speciale della CPU (zero, segno)L’istruzione di salto condizionato può essere basata su diverse condizioni: BRNE BRNE (branch not equal), BRLEBRLE (branch less equal), etc.L’istruzione di salto incondizionato, BRANCHBRANCH, effettua sempre il salto

CMP REG1, REG2 BREQ UGUALI LOAD REG1, MEM1UGUALI: STORE REG2, MEM1

Confronta il contenuto dei registri REG1 e REG2

BRanch EQual

Page 36: 1 Larchitettura del calcolatore. 2 Sommario La struttura del calcolatore Larchitettura a BUS La CPU La memoria principale La memoria secondaria I dispositivi.

36

Il programma in assembler…

LOAD REG1, a LOAD REG2, b ADD REG1, REG2 LOAD REG3, c LOAD REG4, d ADD REG3, REG4 MULT REG1, REG3 STORE REG1, e

Assembler e linguaggi di alto Assembler e linguaggi di alto livellolivello

e=(a+b)*(c+d);

Corrisponde all’unica istruzione C…