06 Livello di micro architettura

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "06 Livello di micro architettura"

Transcript

1 Livello di micro architettura

2 Pagina 2

3 Introduzione il livello di micro architettura implementa le funzioni del livello sovrastante (ISA) come livello ISA di riferimento si sceglie una parte della JVM (Java Virtual Machine), in particolare quella riferita ai numeri interi (IJVM) la micro architettura contiene un microprogramma (registrato in una ROM) che preleva, decodifica ed esegue le istruzioni IJVM il microprogramma contiene variabili che rappresentano lo stato del computer (per esempio, il PC) Pagina 3

4 istruzione IJVM: codice operativo (opcode) istruzione operando/i struttura del microprogramma: ciclo infinito la funzione da eseguire viene determinata ed eseguita Pagina 4

5 ALU Pagina 5

6 Percorso dati Pagina 6

7 Percorso dati Pagina 7

8 Percorso dati Segnali di controllo della ALU: F0 F1 ENA ENB INVA INC Segnali di controllo dello shifter: SLL8 SRA1 Pagina 8

9 Percorso dati Valori di input della ALU contenuto di H proveniente dal bus B La lettura/scrittura dello stesso registro può essere effettuata durante lo stesso ciclo. Incremento di SP: valore di SP sul bus B disattivare l'input sinistro ALU attivare il segnale INC memorizzare il risultato in SP Pagina 9

10 Percorso dati: temporizzazione Pagina 10

11 Operazioni della memoria 2 porte di comunicazione con la memoria: porta a 32 bit controllata dai registri MAR e MDR porta a 8 bit controllata dal registro PC che legge il byte meno significativo di MBR Indirizzi: MAR PC (parole) (byte) Pagina 11

12 Operazioni della memoria MAR/MDR: lettura scrittura parole di dati PC/MBR: lettura programma eseguibile i 2 bit più significativi di MAR vengono scartati (4 GB max) MBR può contenere istruzioni o dati (da estendere da 8 a 32 bit, con segno o meno) Pagina 12

13 Microistruzioni 29 segnali: 9 scrittura dati dal bus C 9 scrittura sul bus B 8 funzioni ALU + shifter 2 per leggere/scrivere mediante MAR/MDR 1 per leggere e poi scrivere su PC/MBR In caso di accesso alla memoria: caricamento di MAR dati scritti su MBR o MDR dati utilizzabili Pagina 13

14 Microistruzioni scrittura sul bus B: 9 possibili registri (cioè 4 bit per la codifica) Pagina 14

15 Microistruzioni Addr JAM ALU C Mem B indirizzo di una potenziale successiva microistruzione come viene selezionata la prossima microistruzione seleziona la funzione della ALU + shifter seleziona quali registri vengono scritti dal bus C seleziona la funzione della memoria selezione la sorgente del bus B Pagina 15

16 Mic1 Pagina 16

17 Mic1 memoria centrale memoria di controllo: MPC (MicroProgram Counter) MIR (MicroIstruction Register) Pagina 17

18 Mic1 la parola contenuta nella memoria di controllo puntata da MPC viene trasferita in MIR i segnali si propagano nel percorso dati: il contenuto di un registro viene inserito nel bus B la ALU sa quale operazione Svolgere gli output di N e Z vengono memorizzati in una coppia di flipflop L'output della ALU viene trasferita nello shifter l'output dello shifter giunge ai registri mediante il bus C Pagina 18

19 Mic1 prossima istruzione: i 9 bit del campo NEXT_ADDRESS vengono copiati in MPC viene controllato il valore di JAM (JMPC + JAMN + JAMZ): se vale 000 nessuna operazione è necessaria; se JAMZ e/o JAMN sono settati, si calcola OR con Z e/o N (ordinatamente) F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] Pagina 19

20 Mic1 F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] Pagina 20

21 Stack in (quasi) tutti i linguaggi di programmazione sono definite le procedure (subroutine, metodi, funzioni, ), ognuna con un insieme di variabili locali le variabili locali hanno visibilità (scope) limitata alla durata dell'esecuzione della procedura dove (e come) memorizzare queste variabili? viene utilizzata una porzione di memoria detta stack, al cui interno NON si utilizzano indirizzi assoluti di memoria per le variabili. Pagina 21

22 Stack vengono utilizzati i registri SP (Stack Pointer) e LV (Local Variables Block) Pagina 22

23 Stack (degli operandi) a1 = a2 + a3 Pagina 23

24 Modello della memoria di IJVM La memoria di IJVM si compone di: porzione costante di memoria Contiene costanti, stringhe, puntatori ad altre aree di memoria Registro CPP (indirizzo della prima parola) blocco delle variabili locali Utilizzata per le variabili locali invocate da ogni metodo Registro LV (punta alla prima locazione, parola, del blocco delle variabili locali) Pagina 24

25 Modello della memoria di IJVM stack degli operandi Registro SP (indirizzo della parola in cima allo stack, si aggiorna durante l'esecuzione) area dei metodi Contiene il programma Registro PC (indirizzo della prossima istruzione, in byte) Pagina 25

26 Modello della memoria di IJVM Pagina 26

27 MAR/MDR: Lettura/scrittura parole di dati dal livello ISA PC/MBR: Lettura di istruzioni dal livello ISA Pagina 27

28 Un'operazione di lettura dalla memoria inizia alla fine del ciclo di clock, quando MAR (o PC) vengono caricati se l'operazione di lettura/scrittura richiede un ciclo di clock, i dati saranno disponibili alla fine del ciclo seguente e utilizzabili al ciclo ancora successivo pertanto, una lettura che inizia alla fine del ciclo i fornisce dati utilizzabili al ciclo i + 2 Pagina 28

29 L'indirizzo della memoria di controllo contenuto in MPC viene letto e caricato in MIR I segnali si propagano da MIR verso il datapath e il registro selezionato viene caricato nel bus B ALU e shifter elaborano e producono un risultato stabile Il bus C e i registri di memoria diventano stabili In corrispondenza al fronte di salita del clock, i registri e i flipflop N e Z vengono caricati Appena i registri e i flipflop sono stabili si carica MPC con la nuova istruzione Pagina 29

30 Insieme delle istruzioni IJVM Pagina 30

31 Insieme delle istruzioni IJVM: esempio applicativo Pagina 31

32 Insieme delle istruzioni IJVM BIPUSH byte scrive un byte in cima allo stack DUP legge la parola in cima allo stack e la inserisce in cima allo stack ILOAD varnum scrive una variabile locale, proveniente dal blocco delle variabili locali, in cima allo stack LDC_W index scrive in cima allo stack una costante proveniente dalla porzione costante di memoria ISTORE varnum preleva una parola dalla cima dello stack e la memorizza in una variabile locale nel blocco delle variabili locali POP rimuove la parola di memoria posta in cima allo stack Pagina 32

33 Insieme delle istruzioni IJVM IADD sostituisce le due parole in cima allo stack con la loro somma IAND sostituisce le due parole in cima allo stack con il loro AND logico IINC varnum const aggiunge const ad una variabile locale nel blocco delle variabili locali IOR sostituisce le due parole in cima allo stack con il loro OR logico ISUB sostituisce le due parole in cima allo stack con la loro differenza Pagina 33

34 Insieme delle istruzioni IJVM GOTO offset diramazione incondizionata IFEQ offset estrae una parola in cima allo stack ed effettua una diramazione se vale zero IFLT offset estrae una parola in cima allo stack ed effettua una diramazione se ha un valore negativo IF_ICMPEQ offset estrae due parole dalla cima dello stack ed effettua una diramazione se sono uguali Pagina 34

35 Insieme delle istruzioni IJVM NOP Nessuna operazione SWAP Scambio di due parole poste in cima allo stack WIDE Prefisso per indicare che l'istruzione successiva ha un indice a 16 bit Pagina 35

36 Insieme delle istruzioni IJVM Inserimento nello stack di una parola proveniente da: porzione costante di memoria (LDC_W) blocco variabili locali (ILOAD) istruzione stessa (BIPUSH) Inserimento nel blocco variabili locali di una parola proveniente da: stack (ISTORE) Operazioni aritmetiche e logiche: IADD, ISUB IAND, IOR sugli operandi che si trovano in cima allo stack (il risultato viene posto in cima allo stack) Pagina 36

37 Insieme delle istruzioni IJVM Operazioni per i salti: GOTO (salto incondizionato) IFEQ, IFLT, IF_ICMPEQ modificano il valore di PC in base al valore dello spiazzamento Operazioni sugli operandi in cima allo stack: scambio di due parole (SWAP) duplicazione di una parola (DUP) rimozione di una parola (POP) Pagina 37

38 Insieme delle istruzioni IJVM Invocazione di un altro metodo: INVOKEVIRTUAL disp Terminazione di un altro metodo: IRETURN Nella simulazione IJVM le invocazioni ad altri metodi vengono viste equivalenti alle CALL di (quasi) tutti i linguaggi di programmazione. Pagina 38

39 Insieme delle istruzioni IJVM: invocazione di un metodo Pagina 39

40 Insieme delle istruzioni IJVM: invocazione di un metodo L'istruzione INVOKEVIRTUAL contiene l'indirizzo dell'area dei metodi del metodo invocato. I primi 4 byte dell'area del codice del metodo contengono: 2 byte (intero a 16 bit) numero dei parametri del metodo 2 byte (intero a 16 bit) dimensione del blocco delle variabili locali del metodo 5 byte codice operativo della prima istruzione da eseguire Pagina 40

41 Insieme delle istruzioni IJVM: ritorno da un metodo Pagina 41

42 Microistruzioni descrizione delle microistruzioni di Mic1 che implementano IJVM elenco delle 512 parole da 36 bit (contenuto della memoria di controllo) meglio: elenco dei segnali che devono essere attivati durante ogni ciclo di clock. notazione: su una singola linea il codice di tutte le attività che avvengono durante un ciclo di clock Pagina 42

43 Microistruzioni Le microistruzioni vengono descritte mediante un linguaggio di alto livello, MAL (Micro Assembly Language): una riga di codice indica tutte le attività che hanno luogo durante un ciclo di clock durante ogni ciclo: un registro è collegato al bus B il registro H è collegato ad uno dei due ingressi della ALU possono essere scritti uno o più registri l'operazione da eseguire viene indicata con il costrutto di assegnazione (=) Pagina 43

44 Microistruzioni Operazioni fondamentali di MAL: assegnazione inizio lettura / scrittura da / in memoria istruzione di salto (goto) Pagina 44

45 Microistruzioni Operazioni consentite: Pagina 45

46 Microistruzioni Operazioni tipiche: MDR = SP (copia del contenuto di SP in MDR) MDR = H + SP (addizione del contenuto di H e SP, scrittura della somma in MDR) Sono lecite soltanto le operazioni che possono essere realizzate tramite il percorso dati MDR = SP + MDR NON è valida perché uno dei due operandi deve essere il registro H Pagina 46

47 Microistruzioni Operazioni tipiche: H = H MDR NON è valida perché H può contenere soltanto il sottraendo H = MDR H E' valida il risultato di un'operazione logica o aritmetica può essere assegnato a più registri: SP = MDR = SP + 1 Pagina 47

48 Microistruzioni Inizio di un'operazione di lettura/scrittura: rd / wr Prelievo di 1 byte (PC/MBR): fetch Le due operazioni possono avvenire in modo simultaneo, ma lo stesso registro non può contenere dati provenienti dalla memoria e dal percorso dati durante lo stesso ciclo Assegnazioni ed operazioni in memoria possono svolgersi durante lo stesso ciclo, basta indicarle sulla stessa linea di codice: MAR = SP; rd Ogni istruzione contiene esplicitamente l'indirizzo dell'istruzione seguente: di norma istruzioni consecutive vengono eseguite in sequenza (tranne che per le diramazioni!!!) Pagina 48

49 Microistruzioni i salti incondizionati vengono indicati con la notazione: goto label i salti condizionali richiedono una notazione differente: se Z = 1 se N = 1 l'output della ALU è nullo l'output della ALU è negativo il valore di un (generico) registro R per verificarne il valore richiede che: Z = R oppure che N = R In questo modo il contenuto di R viene fatto passare attraverso la ALU per impostare i flipflop Z o N (senza modificare alcun registro) Pagina 49

50 Microistruzioni un salto condizionato al valore del registro R viene effettuato come: Z = R; if (Z) goto label1 else goto label2 N = R; if (N) goto label1 else goto label2 Si ottiene come risultato di impostare JAMZ o JAMN. I valori label1 e label2 differiscono soltanto per il bit più significativo: Pagina 50

51 Microistruzioni Per utilizzare il bit JMPC si utilizza la notazione: goto (MBR OR valore) In cui si indica al micro assemblatore di: utilizzare valore come NEXT_ADDRESS impostare JMPC in modo che in MPC venga calcolato l'or logico tra MBR e NEXT_ADDRESS Pagina 51

52 Interpretazione di IJVM con Mic1 un'istruzione IJVM è interpretata da una sequenza di microistruzioni microistruzioni consecutive non sono necessariamente memorizzate in modo consecutivo nella memoria di controllo il micro assemblatore collega le istruzioni mediante NEXT_ADDRESS ogni sequenza inizia all'indirizzo corrispondente al valore numerico dell'opcode IJVM che interpreta Pagina 52

53 Interpretazione di IJVM con Mic1 l'interprete è composto da 112 microistruzioni vengono utilizzati 10 registri TOS contiene il valore puntato da SP OPC è un registro temporaneo l'interprete realizza un ciclo principale che si occupa di prelevare ed eseguire le istruzioni IJVM: Main1 PC = PC + 1; fetch; goto (MBR) Pagina 53

54 Insieme delle istruzioni IJVM Pagina 54

55 Implementazione di IJVM con Mic1 IADD Sostituisce le due parole in cima allo stack con la loro somma Main1 PC = PC + 1; fetch; goto (MBR) iadd1 MAR = SP = SP 1; rd iadd2 H = TOS iadd3 MDR = TOS = MDR + H; wr; goto Main1 Pagina 55

56 Implementazione di IJVM con Mic1 ISUB Sostituisce le due parole in cima allo stack con la loro differenza Main1 PC = PC + 1; fetch; goto (MBR) isub1 MAR = SP = SP 1; rd isub2 H = TOS isub3 MDR = TOS = MDR H; wr; goto Main1 Pagina 56

57 Implementazione di IJVM con Mic1 IAND Sostituisce le due parole in cima allo stack con il loro AND logico Main1 PC = PC + 1; fetch; goto (MBR) iand1 MAR = SP = SP 1; rd iand2 H = TOS iand3 MDR = TOS = MDR AND H; wr; goto Main1 Pagina 57

58 Implementazione di IJVM con Mic1 DUP Replica la parola in cima allo stack idup1 MAR = SP = SP + 1 idup2 MDR = TOS; wr; goto Main1 Pagina 58

59 Implementazione di IJVM con Mic1 BIPUSH Bipush byte scrive byte in cima allo stack bipush1 SP = MAR = SP + 1 bipush2 PC = PC + 1; fetch bipush3 MDR = TOS = MBR; wr; goto Main1 Pagina 59

60 Implementazione di IJVM con Mic1 ILOAD Iload offset scrive in cima allo stack una variabile locale in offset iload1 H = LV iload2 MAR = MBRU + H; rd iload3 MAR = SP = SP + 1 iload4 PC = PC + 1; fetch; wr iload5 TOS = MDR; goto Main1 Pagina 60

61 Implementazione di IJVM con Mic1 POP pop rimuove la parola dalla cima dello stack pop1 pop2 pop3 MAR = SP = SP 1; rd TOS = MDR; goto Main1 Pagina 61

62 Implementazione di IJVM con Mic1 WIDE ILOAD ILOAD prevede che offset abbia 8 bit è possibile accedere soltanto a 256 variabili locali per accedere alle altre (eventuali variabili) si utilizza un opcode speciale, WIDE WIDE ILOAD specifica che offset è di 16 bit Pagina 62

63 Implementazione di IJVM con Mic1 WIDE ILOAD wide1 PC = PC + 1; fetch wide2 goto (MBR OR 0x100) In wide1 si incrementa PC per mettere il primo byte in MBR In wide2 si esegue un secondo salto usando l'opcode contenuto in MBR (0x15, ILOAD) L'interpretazione di WIDE ILOAD inizia a 0x115 Pagina 63

64 Implementazione di IJVM con Mic1 WIDE ILOAD wide_iload1 PC = PC + 1; fetch wide_iload2 H = MBRU << 8 wide_iload3 H = MBRU OR H wide_iload4 MAR = LV + H; rd; goto iload3 iload3 MAR = SP = SP + 1 iload4 PC = PC + 1; fetch; wr iload5 TOS = MDR; goto Main1 Pagina 64

65 Implementazione di IJVM con Mic1 GOTO GOTO offset esegue una diramazione incondizionata in modo che la prossima istruzione da eseguire sia quella che si trova nell'indirizzo che si ottiene dalla somma di offset (16 bit) all'opcode del salto. goto1 OPC = PC 1 goto2 PC = PC + 1; fetch goto3 H = MBR << 8 goto4 H = MBRU OR H goto5 PC = OPC + H; fetch goto6 goto Main1 Pagina 65

66 Implementazione di IJVM con Mic1 GOTO Pagina 66

67 Implementazione di IJVM con Mic1 IFLT IFLT offset estrae una parola dalla cima dello stack ed esegue una diramazione se ha valore negativo iflt1 iflt2 iflt3 iflt4 T F F2 F3 MAR = SP = SP 1; rd OPC = TOS TOS = MDR N = OPC; if (N) goto T else goto F OPC = PC 1; goto goto2 PC = PC + 1; PC = PC + 1; fetch goto Main1 Pagina 67

68 Implementazione di IJVM con Mic1 IFEQ IFEQ offset estrae una parola dalla cima dello stack ed esegue una diramazione se ha valore zero ifeq1 ifeq2 ifeq3 ifeq4 T F F2 F3 MAR = SP = SP 1; rd OPC = TOS TOS = MDR Z = OPC; if (Z) goto T else goto F OPC = PC 1; goto goto2 PC = PC + 1; PC = PC + 1; fetch goto Main1 Pagina 68

69 Implementazione di IJVM con Mic1 IF_ICMPEQ IF_ICMPEQ offset estrae le due parole dalla cima dello stack ed esegue una diramazione se sono uguali if_icmpeq1 if_icmpeq2 if_icmpeq3 if_icmpeq4 if_icmpeq5 if_icmpeq6 T F F2 F3 MAR = SP = SP 1; rd MAR = SP = SP 1 H = MDR; rd OPC = TOS TOS = MDR Z = OPC H; if (Z) goto T else goto F OPC = PC 1; goto goto2 PC = PC + 1; PC = PC + 1; fetch goto Main1 Pagina 69

70 Implementazione di IJVM con Mic1 INVOKEVIRTUAL Pagina 70

71 Implementazione di IJVM con Mic1 INVOKEVIRTUAL Invokevirtual disp puntatore all'oggetto da chiamare (OBJREF) inserimento sullo stack dei parametri del metodo disp (16 bit) per indicare l'indirizzo dell'area dei metodi in cui si trova il metodo da invocare i primi 4 byte del metodo contengono: 1 intero 16 bit (numero di parametri del metodo) 1 intero 16 bit (dimensione blocco variabili del metodo invocato) Pagina 71

72 invokevirtual1 invokevirtual2 invokevirtual3 invokevirtual4 invokevirtual5 invokevirtual6 invokevirtual7 invokevirtual8 invokevirtual9 invokevirtual10 invokevirtual11 invokevirtual12 invokevirtual13 invokevirtual14 invokevirtual15 invokevirtual16 invokevirtual17 invokevirtual18 invokevirtual19 invokevirtual20 invokevirtual21 invokevirtual22 PC = PC + 1; fetch H = MBRU << 8 H = MBRU OR H MAR = CPP + H; rd OPC = PC + 1 PC = MDR; fetch PC = PC + 1; fetch H = MBRU << 8 H = MBRU OR H PC = PC + 1; fetch TOS = SP H TOS = MAR = TOS + 1 PC = PC + 1; fetch H = MBRU << 8 H = MBRU OR H MDR = SP + H + 1; wr MAR = SP = MDR MDR = OPC; wr S MAR = SP = SP + 1 MDR = LV; wr PC = PC + 1; fetch LV = TOS; goto Main1 Pagina 72

73 Implementazione di IJVM con Mic1 IRETURN Pagina 73

74 Implementazione di IJVM con Mic1 IRETURN ireturn1 ireturn2 ireturn3 ireturn4 ireturn5 ireturn6 ireturn7 ireturn8 MAR = SP = LV; rd LV = MAR = MDR; rd MAR = LV + 1 PC = MDR; rd; fetch MAR = SP LV = MDR MDR = TOS; wr; goto Main1 Pagina 74

75 Progettazione del livello di micro architettura La progettazione di un livello di microarchitettura richiede lo studio di molti aspetti: velocità costi affidabilità facilità di utilizzo consumi energetici dimensioni fisiche Alcuni di questi aspetti sono conflittuali e pertanto la soluzione migliore richiede l'adozione di compromessi, per esempio scegliendo un punto di equilibrio tra velocità e costi Pagina 75

76 Progettazione del livello di micro architettura Gli approcci che normalmente si possono seguire per incrementare la velocità di esecuzione sono: ridurre la lunghezza del percorso dati semplificare l'organizzazione per ottenere un ciclo di clock più breve sovrapporre l'esecuzione di più istruzioni (pipelining) La conseguenza è, spesso, l'aggiunta di nuovi componenti. Con le conseguenze che: lo spazio sul chip è limitato il costo di un componente dipende dall'area occupata i componenti più veloci occupano più spazio Pagina 76

77 Progettazione del livello di micro architettura E' possibile, per esempio, lavorare sul numero delle linee degli indirizzi: un aumento del numero delle linee comporta migliori prestazioni l'impiego di un decoder per la riduzione del numero delle linee degli indirizzi comporta maggiori economie Pagina 77

78 Riduzione della lunghezza del percorso Sono possibili tre tecniche: sovrapporre l'esecuzione di Main1 all'esecuzione di una delle ultime micro istruzioni di ogni istruzione IJVM Si consideri per esempio l'istruzione POP Pagina 78

79 Riduzione della lunghezza del percorso pop1 MAR = SP = SP 1; rd pop2 pop3 TOS = MDR; goto Main1 Main1 PC = PC + 1; fetch; goto (MBR) Può diventare: pop1 MAR = SP = SP 1; rd Main1 PC = PC + 1; fetch; goto (MBR) pop3 TOS = MDR; goto Main1 Con la conseguente riduzione del numero di istruzioni da 4 a 3 (e con gli stessi rusultati finali!!!) Pagina 79

80 Riduzione della lunghezza del percorso Seconda tecnica: utilizzare due bus di input (A e B) per la ALU, adottando un'architettura a 3 bus si possono sommare due registri qualsiasi in un ciclo Per esempio: iload1 iload2 iload3 iload4 iload5 Main1 H = LV MAR = MBRU + H; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto Main1 PC = PC + 1; fetch; goto (MBR) Pagina 80

81 Riduzione della lunghezza del percorso iload1 iload2 iload3 iload4 iload5 Main1 H = LV MAR = MBRU + H; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto Main1 PC = PC + 1; fetch; goto (MBR) Diventa: iload1 iload2 iload3 iload4 iload5 MAR = MBRU + LV; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR PC = PC + 1; fetch; goto (MBR) Pagina 81

82 Riduzione della lunghezza del percorso Entrambe le tecniche sono valide, ma un miglioramento delle prestazioni può essere ottenuto soltanto riprogettando la fase di fetch degli operandi se un'istruzione contiene operandi, questi devono essere prelevati un byte per volta e assemblati prima del loro utilizzo per prelevare un operando si impegna l'alu per un ciclo soltanto per incrementare PC e assemblare l'offset in Mic1, gran parte del lavoro dell'alu può essere eliminato mediante una struttura dedicata, IFU (Instruction Fetch Unit) che: incrementa il PC (incrementa e NON somma) preleva istruzioni e operandi dalla memoria Pagina 82

83 Instruction Fetch Unit Tramite l'ifu, il registro MBR a 8 bit viene sostituito da: MBR1 a 8 bit rende disponibile il byte successivo preleva e memorizza il byte successivo quando viene letto il contenuto corrente ha due interfacce con il bus B: MBR1 e MBR1U MBR2 a 16 bit svolge le stesse funzioni di MBR1 memorizzando i successivi 2 byte presenta due interfacce con il bus B: MBR2 e MBR2U Pagina 83

84 Instruction Fetch Unit Pagina 84

85 Instruction Fetch Unit quando viene letto MBR1 sul bus B, lo shifter trasla a destra di 1 byte e carica MBR1 quando viene letto MBR2 sul bus B, lo shifter trasla a destra di 2 byte e carica MBR2 dopo lo shift, l'ifu inizia un nuovo ciclo di lettura per caricare i registri Pagina 85

86 Instruction Fetch Unit l'ifu ha un proprio registro IMAR per indirizzare la porzione di memoria da leggere IMAR e PC possiedono degli incrementatori, per eliminare l'uso dell'alu l'alu modifica il registro PC soltanto per le istruzioni INVOKEVIRTUAL e IRETURN, e per le diramazioni Pagina 86

87 Instruction Fetch Unit quando PC viene modificato dall'alu, il nuovo valore viene copiato in IMAR il microprogramma non aggiorna più PC, quindi il compito viene delegato all'ifu quando vengono letti MBR1 o MBR2, PC viene incrementato dal proprio incrementatore PC contiene così l'indirizzo del primo byte non ancora utilizzato Pagina 87

88 Mic2 Pagina 88

89 Mic2 L'IFU permette di: evitare Main1 risparmiare ALU l'incremento di PC per ridurre la lunghezza del percorso quando viene calcolato un offset a 16 bit Pagina 89

90 Mic2 iload1 iload2 iload3 iload4 iload5 Main1 H = LV MAR = MBRU + H; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto Main1 PC = PC + 1; fetch; goto (MBR) Diventa quindi: iload1 iload2 iload3 MAR = LV + MBR1U; rd MAR = SP = SP + 1 TOS = MDR; wr; goto (MBR1) Pagina 90

91 Architettura a pipeline Mic2 può essere migliorata introducendo un livello di parallelismo nell'architettura Il ciclo di clock del percorso dati è condizionato dal tempo necessario affinché i segnali si propaghino lungo il percorso Il ciclo è composto da tre elementi: il tempo per portare i registri selezionati sui bus A e B il tempo di elaborazione (ALU + shifter) il tempo di trasferimento dei risultati sui registri Pagina 91

92 Architettura a pipeline Se il percorso dati viene diviso in tre parti è possibile: ridurre il ritardo massimo, quindi accelerare il clock utilizzare tutte le parti durante ogni ciclo (aumento della larghezza di banda del processore) Infatti: durante i trasferimenti da/verso i registri l'alu è inattiva dividendo il percorso in tre parti, è possibile utilizzare l'alu durante ogni ciclo, triplicando la quantità di lavoro eseguito Pagina 92

93 Mic3 oltre all'ifu sono presenti 3 latch (registri) i registri sono scritti a ogni ciclo il percorso dati viene diviso in tre parti che possono funzionare indipendentemente Pagina 93

94 Mic3 Pagina 94

95 Mic4 Pagina 95

96 Mic4 Pagina 96

Integer Java Virtual Machine (IJVM)

Integer Java Virtual Machine (IJVM) Integer Java Virtual Machine (IJVM) Calcolatori Elettronici II Prof. Antonino Mazzeo mazzeo@unina.it Ing. Luigi Romano Ing. Alessandro Cilardo Ing. Luigi Coppolino lrom@unina.it acilardo@unina.it lcoppoli@unina.it

Dettagli

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU. Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Microarchitettura. Giacomo Fiumara Anno Accademico / 101

Microarchitettura. Giacomo Fiumara Anno Accademico / 101 Microarchitettura Giacomo Fiumara gumara@unime.it Anno Accademico 2014-2015 1 / 101 Introduzione 2 / 101 Introduzione Il livello di micro-architettura implementa le funzioni del livello sovrastante ISA

Dettagli

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU. Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello

Dettagli

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE 1. INTRODUZIONE In questo capitolo viene presentata la struttura, sia interna che esterna, di un microprocessore generico riprendendo i concetti esposti nella

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Macchina di von Neumann

Macchina di von Neumann Il processore PD32 Macchina di von Neumann Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo Unità di Controllo Suddivisione SCA-SCO Unità di Ingresso Memoria di lavoro Unità di Uscita

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000 AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

Dettagli

CALCOLATORI ELETTRONICI

CALCOLATORI ELETTRONICI CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1

Dettagli

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico- Principi di architetture dei calcolatori: l unità di controllo Mariagiovanna Sami L unità di controllo Per eseguire le istruzioni di macchina, occorre che vengano generati nell ordine corretto i segnali

Dettagli

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione Corso di Architettura degli Elaboratori Il livelo ISA: ISA IJVM, tipi di dati e formato delle istruzioni Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149

Dettagli

La macchina programmata Instruction Set Architecture (1)

La macchina programmata Instruction Set Architecture (1) Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un

Dettagli

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing

Dettagli

Architettura hw. La memoria e la cpu

Architettura hw. La memoria e la cpu Architettura hw La memoria e la cpu La memoria centrale e la CPU Bus controllo Bus indirizzi Bus dati Bus di collegamento con la cpu indirizzi controllo dati Bus Indirizzi 11 Bus controllo Leggi/scrivi

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:

Dettagli

Modulo 2 L architettura dei calcolatori

Modulo 2 L architettura dei calcolatori Modulo 2 L architettura dei calcolatori La macchina di von Neumann I moderni sistemi di elaborazione oggi in commercio non sono tutti uguali, anzi presentano notevoli differenze in termini di velocità,

Dettagli

Il processore - CPU (CENTRAL PROCESSING UNIT)

Il processore - CPU (CENTRAL PROCESSING UNIT) Il processore - CPU (CENTRAL PROCESSING UNIT) Funzionamento Programmi e dati risiedono in file memorizzati in memoria secondaria. Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella

Dettagli

Esercitazione sulle CPU pipeline

Esercitazione sulle CPU pipeline Esercitazione sulle CPU pipeline Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato perché

Dettagli

Esercitazione 2 di verifica

Esercitazione 2 di verifica Architettura degli Elaboratori, 27-8 Esercitazione 2 di verifica Soluzione: mercoledì 24 ottobre Una unità di elaborazione U è così definita: Domanda 1 i) possiede al suo interno due componenti logici

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad Principi di architetture dei calcolatori: l architettura ARM. Mariagiovanna Sami Che cosa è ARM In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2011

CALCOLATORI ELETTRONICI 29 giugno 2011 CALCOLATORI ELETTRONICI 29 giugno 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di una PLA la funzione combinatoria (a 3 ingressi e due uscite)

Dettagli

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO PROGRAMMA Descrizione funzionale di un calcolatore elementare, COS'E' UN ELETTRONICO HARDWARE SOFTWARE HARDWARE

Dettagli

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Funzionalità di un calcolatore

Funzionalità di un calcolatore Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer componenti per elaborare

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Versione A: caricamento ed esecuzione del codice

Versione A: caricamento ed esecuzione del codice Versione A: caricamento ed esecuzione del codice «Nella sua prima versione, la CPU si compone soltanto di registri utili ad accedere alla memoria per leggere il codice operativo da eseguire, come di vede

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/17

Dettagli

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack (tradotto talvolta in italiano con pila o catasta) è un'area di memoria privilegiata, dove il microprocessore può salvare

Dettagli

Il processore - CPU. PDF created with pdffactory trial version www.pdffactory.com

Il processore - CPU. PDF created with pdffactory trial version www.pdffactory.com Il processore - CPU (CENTRAL PROCESSING UNIT) Funzionamento o Programmi e dati risiedono in file memorizzati in memoria secondaria. o Per essere eseguiti (i programmi) e usati (i dati) vengono copiati

Dettagli

INFORMATICA E COMPUTER : INTRODUZIONE

INFORMATICA E COMPUTER : INTRODUZIONE INFORMATICA E COMPUTER : INTRODUZIONE! Informatica: dal francese, informatique informat(ion) (automat)ique [termine coniato dall'ingegnere francese Philippe Dreyfus nel 1962] è la scienza che studia i

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè Parte II AND 104 I, micro-operazioni c 0 t 0 : MAR PC c 0 t 1 : MBR M, PC PC+1 c 0 t 2 : OPR MBR(OP), I MBR(I) q 7 Ic 0 t 3 : R 1 Ciclo di fetch (q 7 +I )c 0 t 3 : F 1 c 1 t 0 : MAR MBR(AD); / 104 da Hex

Dettagli

Architettura di un Elaboratore

Architettura di un Elaboratore Architettura di un Elaboratore Fabio Massimo Zanzotto Ricapitoliamo puntate precedenti Cosa abbiamo a disposizione: Concetto di algoritmo (con eventuale parametrizzazione) Rappresentazione dell informazione

Dettagli

Calcolatori Elettronici Parte VI: Microarchitetture, Cache e Pipeline

Calcolatori Elettronici Parte VI: Microarchitetture, Cache e Pipeline Anno Accademico 2013/2014 Calcolatori Elettronici Parte VI: Microarchitetture, Cache e Pipeline Prof. Riccardo Torlone Universita di Roma Tre Ritorniamo all approccio di San Clemente.. Riccardo Torlone

Dettagli

Elaborazione dei dati

Elaborazione dei dati Elaborazione dei dati Architettura dei computer Esploreremo i fondamenti dell architettura dei computer. Vedremo come un computer elabora i dati e comunica con periferiche come stampanti e tastiere. Linguaggio

Dettagli

Cenni ad Assembly Intel

Cenni ad Assembly Intel Cenni ad Assembly Intel Luca Abeni April 17, 2015 Architerrura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

E una notazione per descrivere gli algoritmi.

E una notazione per descrivere gli algoritmi. Linguaggio di Programmazione E una notazione per descrivere gli algoritmi. Programma:: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni linguaggio

Dettagli

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la 8 Questo documento contiene le soluzioni ad un numero selezionato di esercizi del Capitolo 8 del libro Calcolatori Elettronici - Architettura e organizzazione, Mc-Graw Hill 2009. Sarò grato a coloro che

Dettagli

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione RCHITETTUR DI UN ELORTORE MCCHIN DI VON NEUMNN Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). UNITÀ FUNZIONLI fondamentali Processore (CPU) Centrale

Dettagli

Unità Periferiche. Rete Di Controllo

Unità Periferiche. Rete Di Controllo MODELLO LOGICO-FUNZIONALE DI UN ELABORATORE Centrale di canale Periferiche CPU Memoria centrale ALU CU Memoria Locale ALU = Aritmetic Logic Unit CU = Registri CU ISTRUZIONE Decodificatore Rete Di Controllo

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

JPD132. Microprocessore e assembly

JPD132. Microprocessore e assembly JPD132 Microprocessore e assembly Il processore JPD132 Il JPD132 è un ipotetico processore che estende le possibilità del PD32 principalmente con un linguaggio assembly comprendente nuovi metodi di indirizzamento,

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU)

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Processore Presentazione a livelli del calcolatore: dopo porte logiche, circuiti base e memorie, esaminiamo il: Processore (CPU - Central Processing Unit): cuore del calcolatore, l à che esegue le istruzioni

Dettagli

Lezione 5 Architettura degli elaboratori. Mauro Piccolo piccolo@di.unito.it

Lezione 5 Architettura degli elaboratori. Mauro Piccolo piccolo@di.unito.it Lezione5 Architetturadeglielaboratori MauroPiccolo piccolo@di.unito.it Esecutore Unelaboratoreelettronico`eunaesecutore generalpurpose (ossia confinalitagenericheenonpredeterminate). Lecomponentiprincipali,cheanalizzeremonelseguito,sono:

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di Von Neumann Sistemi basati sull architettura Harward Architettura dei calcolatori: definizioni Evoluzione

Dettagli

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo Registri principali della CPU e loro ruolo CPU e linguaggio macchina domande ed esercizi PC: indirizzo prossima IR: corrente MAR: indirizzo cella di M da leggere/scrivere MBR: contenuto cella di M letta

Dettagli

L architettura del calcolatore (Prima parte)

L architettura del calcolatore (Prima parte) L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

1.4a: Hardware (Processore)

1.4a: Hardware (Processore) 1.4a: Hardware (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.8, 3.9 IV ediz.: cap. 2.6, 2.7 Questi lucidi 23 nov 2011

Dettagli

ARCHITETTURA DI UN PERSONAL COMPUTER

ARCHITETTURA DI UN PERSONAL COMPUTER ARCHITETTURA DI UN PERSONAL COMPUTER Processore Tastiera Mouse CD-ROM Bus Memoria FD HD Stampante La struttura logica Fisicamente l unità centrale è costituita da:... la gabbia per le schede (rack)...

Dettagli

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/36 Sommario!

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Anatomia e fisiologia del computer: l architettura del calcolatore

Anatomia e fisiologia del computer: l architettura del calcolatore Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 01 Anatomia e fisiologia del computer: l architettura del calcolatore Marzo 2009 L architettura del calcolatore 1 Nota bene Alcune parti

Dettagli

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Data Path. Micro-operazione.

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Data Path. Micro-operazione. Processore Presentazione a livelli del calcolatore: dopo porte logiche, circuiti base e memorie, esaminiamo il: Processore (CPU - Central Processing Unit): cuore del calcolatore, l à che esegue le istruzioni

Dettagli

MEMORIA GERARCHIE DI MEMORIA

MEMORIA GERARCHIE DI MEMORIA MEMORIA GERARCHIE DI MEMORIA La memoria è divisa in più livelli che sono dal più vicino al più distante al CPU, per tempi di accesso: memoria cache, SRAM, capienza (MB), più veloce (decimi di ns), costosa

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Architettura del Calcolatore. Prof.Ing.S.Cavalieri

Architettura del Calcolatore. Prof.Ing.S.Cavalieri Architettura del Calcolatore Prof.Ing.S.Cavalieri 1 Evoluzione: tecnologia Sistemi Meccanici Sistemi Elettro-Meccanici (uso di Valvole) Sistemi Interamente Elettronici (basati su Valvole) Sistemi Interamente

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di von Neumann rchitettura dei calcolatori: definizioni Evoluzione dell architettura rchitettura della

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Corso di Laurea in Ingegneria Informatica e Biomedica. Fondamenti di Informatica II A.A. (2002-2003)

Corso di Laurea in Ingegneria Informatica e Biomedica. Fondamenti di Informatica II A.A. (2002-2003) Università degli Studi Magna Græcia di Catanzaro Corso di Laurea in Ingegneria Informatica e Biomedica Fondamenti di Informatica II A.A. (2002-2003) Docente: Prof. Mario Cannataro cannataro@unicz.it www.isi.cs.cnr.it/isi/cannataro

Dettagli

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 38 Parte I Interpreti e compilatori 2 / 38 Macchine astratte Una macchina astratta è un esecutore

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Architettura dei calcolatori I parte Introduzione,

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Calcolatori Elettronici Parte VII: il Livello delle Istruzioni Macchina

Calcolatori Elettronici Parte VII: il Livello delle Istruzioni Macchina Anno Accademico 2013/2014 Calcolatori Elettronici Parte VII: il Livello delle Istruzioni Macchina Prof. Riccardo Torlone Universita Roma Tre Instruction Set Architecture Il livello ISA è l interfaccia

Dettagli

02 - Organizzazione dei sistemi di calcolo

02 - Organizzazione dei sistemi di calcolo Organizzazione dei sistemi di calcolo - Processori - Memoria principale - Memoria secondaria - Input/Output Pagina 2 Processori Pagina 3 La CPU è composta da: - Unità di controllo - Unità logico-aritmetica

Dettagli