Microelettronica Corso introduttivo di progettazione di sistemi embedded

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Microelettronica Corso introduttivo di progettazione di sistemi embedded"

Transcript

1 Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2016/2017 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. S. Salvatori - Microelettronica marzo 2017 (1 di 70)

2 Sommario Evoluzione della tecnologia L'esecuzione di una istruzione Programmazione strutturata Architettura e organizzazione di un microprocessore Progetto di un processore minimo livello datapath sintesi FSM Note sul progetto di un set di istruzioni formato tipi modi di indirizzamento S. Salvatori - Microelettronica marzo 2017 (2 di 70)

3 Intel transistor S. Salvatori - Microelettronica marzo 2017 (3 di 70)

4 La tecnologia di oggi S. Salvatori - Microelettronica marzo 2017 (4 di 70)

5 Livelli di interconnessione S. Salvatori - Microelettronica marzo 2017 (5 di 70)

6 Un processore di oggi > 10 9 transistor S. Salvatori - Microelettronica marzo 2017 (6 di 70)

7 Legge di Moore Microprocessor Transistor Counts & Moore's Law 2,600,000,000 1,000,000,000 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 AMD K10 16-Core SPARC T3 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 100,000,000 AMD K8 Pentium 4 Barton Atom Transistor count 10,000,000 1,000, , curve shows transistor count doubling every two years AMD K5 Pentium AMD K7 AMD K6-III AMD K6 Pentium III Pentium II Il numero di transistor integrati in un chip raddoppia ogni anno , Z , RCA 1802 MOS Date of introduction S. Salvatori - Microelettronica marzo 2017 (7 di 70)

8 Legge di Moore Microprocessor Transistor Counts & Moore's Law 16-Core SPARC T3 2,600,000,000 1,000,000,000 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 AMD K10 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) Transistor count 100,000,000 10,000,000 1,000, , curve shows transistor count doubling every two years Pentium 4 AMD K5 Pentium AMD K7 AMD K6-III AMD K6 Pentium III Pentium II AMD K8 Barton 10 9 Atom AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 16-Core SPARC T3 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 10,000 2, Z MOS RCA 1802 Pentium AMD K8 Barton Atom Date of introduction S. Salvatori - Microelettronica marzo 2017 (8 di 70)

9 Come lavora un processore: cenni sulla programmazione strutturata S. Salvatori - Microelettronica marzo 2017 (9 di 70)

10 Il processore come macchina programmabile Un processore è un sistema elettronico in grado di eseguire un programma FF..FF 16 instructions registers address data processor instructions and data memory S. Salvatori - Microelettronica marzo 2017 (10 di 70)

11 Descrizione di un algoritmo input/output istruzione blocco di istruzioni condizione inizio/fine connessione S. Salvatori - Microelettronica marzo 2017 (11 di 70)

12 Programmazione strutturata T cond F cond T F condizione sequenza ciclo while S. Salvatori - Microelettronica marzo 2017 (12 di 70)

13 Esempio Addizione tra due numeri somma In A In B input C A + B assegnazione Out C output end S. Salvatori - Microelettronica marzo 2017 (13 di 70)

14 Esempio Massimo tra due numeri max In A, B T A > B F confronto max A max B Out max end S. Salvatori - Microelettronica marzo 2017 (14 di 70)

15 max Esempio Ricerca massimo (-1 per uscire) max 0 A 0 A!= -1 T In A F T max A A > max F Out max S. Salvatori - Microelettronica end marzo 2017 (15 di 70)

16 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (16 di 70)

17 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (17 di 70)

18 Ciclo for i iniz cond. i F T modif. i S. Salvatori - Microelettronica marzo 2017 (18 di 70)

19 Ciclo for i iniz cond T F cond. i T F modif. i ciclo while S. Salvatori - Microelettronica marzo 2017 (19 di 70)

20 Ciclo for: esempio for(i = ; i>0; i ) {... } I i > 0 T F i = ; while(i>0) {... i ; } Ciclo while equivalente i i - 1 S. Salvatori - Microelettronica marzo 2017 (20 di 70)

21 Ciclo for: esempio blocco di istruzione eseguite ad ogni ciclo for(i = ; i>0; i ) {... } I i > 0 F Assegnazione iniziale T Condizione per rimanere nel ciclo i i - 1 Operazione di aggiornamento alla fine di un ciclo S. Salvatori - Microelettronica marzo 2017 (21 di 70)

22 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (22 di 70)

23 Ciclo per un uc start iniziallizz. Ciclo infinito true T funzione F end S. Salvatori - Microelettronica marzo 2017 (23 di 70)

24 Ciclo per un uc... //istruzioni di inizializzazione while(1) {... //istruzioni eseguite dal // uc durante il suo lavoro } start iniziallizz. true F T funzione end S. Salvatori - Microelettronica marzo 2017 (24 di 70)

25 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (25 di 70)

26 4 eventi Specifiche: Acquisire lo stato di un ingresso; evento Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 T F Aspetta che l'input esca dallo stato basso Una uscita deve diventare alta ogni 4 eventi. return Qui c'è stato il fronte positivo Att.ne: che succede se rientro troppo presto? S. Salvatori - Microelettronica marzo 2017 (26 di 70)

27 4 eventi evento IN = 0 T F Inizio test fine test Inizio nuovo test return IN: Così uscirei subito ma in realtà non c'è stato il nuovo fronte positivo S. Salvatori - Microelettronica marzo 2017 (27 di 70)

28 4 eventi Specifiche: Acquisire lo stato di un ingresso; evento Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 T F Aspetta che l'input esca dallo stato basso Una uscita deve diventare alta ogni 4 eventi. Qui c'è stato il fronte positivo IN = 1 F T Aspetta che l'input torni nello stato basso return S. Salvatori - Microelettronica marzo 2017 (28 di 70)

29 4 eventi start Specifiche: true end Acquisire lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. T out 0 e 0 e < 4 T F evento IN = 0 T F evento IN = 1 F e e + 1 T out 1 return S. Salvatori - Microelettronica marzo 2017 (29 di 70)

30 Architettura e organizzazione di un microprocessore S. Salvatori - Microelettronica marzo 2017 (30 di 70)

31 Architettura e organizzazione di un up Un computer general purpose consiste in un sistema denominato: computer digitale con programma memorizzato La tecnologia microelettronica ha consentito di integrare milioni di MOS su un solo chip dando luogo alla nascita di sistemi ultraveloci e di complessità sempre più alta Il progresso nel campo dei up non si è avuto solo grazie al progresso tecnologico Allo sviluppo hanno certamente contribuito le capacità degli ingegneri in grado di definire sia l'architettura che l'organizzazione di un microcomputer S. Salvatori - Microelettronica marzo 2017 (31 di 70)

32 Architettura e organizzazione di un up Architettura: descrive il computer dal punto di vista dell'utente Set delle istruzioni Registri disponibili Gestione della memoria Gestione delle eccezioni Organizzazione: descrive come è implementata l'architettura Struttura della pipeline Chache Soluzioni hardware... S. Salvatori - Microelettronica marzo 2017 (32 di 70)

33 Programma memorizzato Un processore è un automa che esegue istruzioni scritte nella memoria programma registers processor address instructions and data instructions data memory dati e programma sono immagazzinati nella stessa memoria le istruzioni sono trattate come i dati (questo può anche portare a un codice che si auto-modifica) FF..FF Lo stato del sistema è determinato dai valori memorizzati in locazioni di memoria e in registri interni al up ogni istruzione definisce le modalità di cambiamento dei dati e quindi dello stato essendo programmabili, i up risultano dispositivi universali, potendo eseguire qualunque algoritmo S. Salvatori - Microelettronica marzo 2017 (33 di 70)

34 Astrazione nella progettazione I up sono dispositivi che integrano milioni di MOS che operano a velocità elevatissima. I dispositivi commutano milioni di volte al secondo. Il sistema deve operare in modo ripetibile e controllato per non cadere in uno stato imprevisto (collasso). Come può essere progettato un sistema tanto complesso? livelli di astrazione che abbiamo visto S. Salvatori - Microelettronica marzo 2017 (34 di 70)

35 Elementi fondamentali di una CPU incrementer PC... DECODER AI BUS ESTERNI MAR MDR IR SR FUNZ REG ALU R0 R1 BANCO DI REGISTRI Rn REG S. Salvatori - Microelettronica marzo 2017 (35 di 70)

36 Il processore minimo Il tipo più semplice di processore prevederà: un PC, Program Counter, per puntare all istruzione da eseguire un IR, Instruction Register, che mantiene il codice dell istruzione da eseguire un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari una unità di decodifica e controllo che imposterà le azioni in funzione dell istruzione..6 S. Salvatori - Microelettronica marzo 2017 (36 di 70)

37 Esempio di processore minimo Per il più semplice processore prevediamo per l'istruzione un formato a 16 bit; Nei 16 bit sono inclusi l'opcode a 4 bit e un campo d'indirizzo a 12 bit: 4 bits opcode 12 bits S istruzioni a 16 bit I dati sono a 16 bit (ALU) 12 bit d indirizzo -> 4096x16 = 8 kbyte di spazio di memoria S. Salvatori - Microelettronica marzo 2017 (37 di 70)

38 Il set di istruzioni è anch'esso minimo: Istruzione Opcode Effetto LDA S 0000 ACC := mem 16 [S] STO S 0001 mem 16 [S] := ACC ADD S 0010 ACC := ACC + mem 16 [S] SUB S 0011 ACC := ACC - mem 16 [S] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2017 (38 di 70)

39 Il progetto della logica è divisibile in due passi fondamentali: datapath tutti gli elementi che lavorano su parole (acc., PC, ALU, IR) fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo Register Transfer level (RTL), basato su registri, MUX, logica di controllo tutto ciò che non è incluso nel datapath, farà parte della logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine) S. Salvatori - Microelettronica marzo 2017 (39 di 70)

40 Progetto a livello di datapath S. Salvatori - Microelettronica marzo 2017 (40 di 70)

41 datapath S. Salvatori - Microelettronica marzo 2017 (41 di 70)

42 datapath S. Salvatori - Microelettronica marzo 2017 (42 di 70)

43 datapath S. Salvatori - Microelettronica marzo 2017 (43 di 70)

44 datapath S. Salvatori - Microelettronica marzo 2017 (44 di 70)

45 datapath S. Salvatori - Microelettronica marzo 2017 (45 di 70)

46 datapath S. Salvatori - Microelettronica marzo 2017 (46 di 70)

47 datapath S. Salvatori - Microelettronica marzo 2017 (47 di 70)

48 datapath? S. Salvatori - Microelettronica marzo 2017 (48 di 70)

49 datapath l esecuzione dell istruzione prevede un un numero di di cicli di di clock pari agli agli accessi in in memoria necessari 2 accessi 1 accesso Instruzione Opcode Effetto LDA S 0000 ACC := mem 16 [S] STO S 0001 mem 16 [S] := ACC ADD S 0010 ACC := ACC + mem 16 [S] SUB S 0011 ACC := ACC - mem 16 [S] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2017 (49 di 70)

50 datapath S. Salvatori - Microelettronica marzo 2017 (50 di 70)

51 datapath 12 L'incremento del PC può essere svolto dalla stessa ALU (più avanti i dettagli) 16 S. Salvatori - Microelettronica marzo 2017 (51 di 70)

52 datapath S. Salvatori - Microelettronica marzo 2017 (52 di 70)

53 datapath design assunto che l istruzione sia stata caricata, il progetto a livello di datapath prevede due passi fondamentali: 1. accesso all operando in memoria esce l indirizzo da IR l operando e l'accumulatore giungono alla ALU il risultato fornito dalla ALU è caricato nell accumulatore stesso oppure il contenuto dell accumulatore è scritto in memoria 2. fetch della nuova istruzione (PC o IR12 hanno l indirizzo della locazione per la nuova istruzione) il contenuto è incrementato dalla ALU il nuovo valore è salvato in PC Comunque: inizializzazione (il processore deve iniziare da uno stato noto) input di RESET per esempio: azzerata l uscita della ALU, caricarne poi il valore in PC S. Salvatori - Microelettronica marzo 2017 (53 di 70)

54 Progetto a livello RTL (Register Transfer Level) S. Salvatori - Microelettronica marzo 2017 (54 di 70)

55 Organizzazione RTL memory memory MEMrq MEMrq RnW RnW IRce IRce buffer per la connessione su data-bus Segnali di selezione Segnali di controllo IR IR PC PC Asel PCce Asel PCce ALUfs ALU ALUfs B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz Bsel Bsel 0 mux 0 mux 1 1 opcode opcode ACCoe ACCoe segnali di abilitazione per i registri Stabiliamo che il dato venga caricato nel registro in corrispondenza del fronte negativo di clock S. Salvatori - Microelettronica marzo 2017 (55 di 70)

56 Progetto della logica di controllo Decodifica dell'istruzione corrente; Generare i segnali di controllo all'interno del datapath; È intuibile che il progetto preveda quello di una FSM: la rappresentazione mediante il diagramma degli stati è superflua vi sono solo due stati: Fetch e Execute solo 1 bit di stato Progetto FSM S. Salvatori - Microelettronica marzo 2017 (56 di 70)

57 Progetto della FSM Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz memory memory MEMrq RnW MEMrq RnW IR IR PC PC PCce PCce Bsel Bsel 0 mux 0 mux 1 1 IRce IRce ALU B ALU A B A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe Bit di stato Ex/ft: execute = 0 fetch = 1 tabella degli stati: input output instruction Op-code Ex/ft ACC15 Reset ACCz Bsel PCce ACCoe Asel ACCce IRce ALUfs MEMrq EX/ft R/nW S. Salvatori - Microelettronica marzo 2017 (57 di 70)

58 FSM: istruzione LDA S memory memory Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz MEMrq RnW MEMrq RnW IR IR PC PC PCce PCce IRce IRce ALU B ALU A B A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe fase di execute preparo memorizz. nell accumulatore Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel LDA S x x output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW = B La prossima è il fetch dell'istruzione succ. S. Salvatori - Microelettronica marzo 2017 (58 di 70)

59 FSM: istruzione LDA S memory memory Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz MEMrq RnW MEMrq RnW IR IR PC PC PCce PCce Bsel Bsel 0 mux 0 mux 1 1 IRce IRce ALU B ALU A B A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe fase di fetch della successiva PC <- PC+1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel LDA S x x output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW B+1 preparo memorizzazione dell istruzione S. Salvatori - Microelettronica marzo 2017 (59 di 70)

60 FSM: istruzione STO S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe R / W ALUfs ALU ALUfs B ALU A B A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz Bsel Bsel 0 mux 0 mux 1 1 preparo memorizz. in memoria instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW STO S x x 1 x x STO S x x B S. Salvatori - Microelettronica marzo 2017 (60 di 70)

61 FSM: istruzione ADD S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW ADD S x x A+B ADD S x x B S. Salvatori - Microelettronica marzo 2017 (61 di 70)

62 FSM: istruzione SUB S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW SUB S x x A-B SUB S x x B S. Salvatori - Microelettronica marzo 2017 (62 di 70)

63 FSM: istruzione JMP S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW JMP S x x x B S. Salvatori - Microelettronica marzo 2017 (63 di 70)

64 FSM: istruzione JGE S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW JGE S x x B JGE S x x B S. Salvatori - Microelettronica marzo 2017 (64 di 70)

65 FSM: istruzione JNE S memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW JNE S x 0 x B JNE S x 1 x B S. Salvatori - Microelettronica marzo 2017 (65 di 70)

66 FSM: istruzione STP memory memory MEMrq RnW MEMrq RnW IRce IRce Asel Asel PCce PCce IR IR PC PC opcode opcode ACCoe ACCoe ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz ALU B ALU A B A ACCce ACCce ACC ACC Bsel Bsel 0 mux 0 mux 1 1 instruction input STP 0111 Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW 0 x x x 1 x x S. Salvatori - Microelettronica marzo 2017 (66 di 70)

67 FSM: RESET Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz memory memory MEMrq RnW MEMrq RnW IR IR PC PC PCce PCce IRce IRce ALU B ALU A B A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe N.B.: in PC e ACC viene memorizzato 0 (per tutti i periodi di clock in cui RST è alto). RST CLK Bsel Bsel 0 mux 0 mux 1 1 instruction input xxxx Op-code Ex/ft ACC15 Reset ACCz Asel output Bsel PCce ACCoe ACCce IRce ALUfs MEMrq EX/ft R/nW 1 x x x = S. Salvatori - Microelettronica marzo 2017 (67 di 70)

68 FSM: sintesi memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC Asel PCce Asel PCce ALUfs ALU ALUfs B ALU A B A ACCce ACCce ACC[15] ACC[15] ACCz ACCz Bsel Bsel 0 mux 1 0 mux 1 ACC ACC opcode opcode ACCoe ACCoe organizzazione RTL fetch dell istruzione corrente e incremento di PC => coincidono S. Salvatori - Microelettronica marzo 2017 (68 di 70)

69 Sviluppi futuri per il MUn Aumentare il numero di linee di indirizzo; Aumentare i modi di indirizzamento; Consentire il salvataggio di PC (subroutines); Aggiungere altri registri interni; inserire linee di interrupt; S. Salvatori - Microelettronica marzo 2017 (69 di 70)

70 Prossimamente Note sul progetto di un processore Formato delle istruzioni Tipi di istruzione Domande Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica marzo 2017 (70 di 70)

71 Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2016/2017 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. S. Salvatori - Microelettronica marzo 2017 (1 di 70)

72 Sommario Evoluzione della tecnologia L'esecuzione di una istruzione Programmazione strutturata Architettura e organizzazione di un microprocessore Progetto di un processore minimo livello datapath sintesi FSM Note sul progetto di un set di istruzioni formato tipi modi di indirizzamento S. Salvatori - Microelettronica marzo 2017 (2 di 70)

73 Intel transistor S. Salvatori - Microelettronica marzo 2017 (3 di 70)

74 La tecnologia di oggi S. Salvatori - Microelettronica marzo 2017 (4 di 70)

75 Livelli di interconnessione S. Salvatori - Microelettronica marzo 2017 (5 di 70)

76 Un processore di oggi > 10 9 transistor S. Salvatori - Microelettronica marzo 2017 (6 di 70)

77 Legge di Moore Microprocessor Transistor Counts & Moore's Law 16-Core SPARC T3 2,600,000,000 1,000,000,000 Itanium 2 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 AMD K10 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 100,000,000 AMD K8 Pentium 4 Barton Atom Transistor count 10,000,000 1,000, , curve shows transistor count doubling every two years AMD K5 Pentium AMD K7 AMD K6-III AMD K6 Pentium III Pentium II Il numero di transistor integrati in un chip raddoppia ogni anno , Z , MOS RCA Date of introduction S. Salvatori - Microelettronica marzo 2017 (7 di 70)

78 Legge di Moore Microprocessor Transistor Counts & Moore's Law 16-Core SPARC T3 Transistor count 2,600,000,000 1,000,000, ,000,000 10,000,000 1,000, , curve shows transistor count doubling every two years Pentium 4 AMD K5 Pentium Itanium 2 AMD K7 AMD K6-III AMD K6 Pentium III Pentium II Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 AMD K10 AMD K8 Barton 10 9 Core 2 Duo Cell Atom 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 AMD K10 16-Core SPARC T3 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 10,000 2, Z MOS RCA 1802 Pentium AMD K8 Barton Atom Date of introduction S. Salvatori - Microelettronica marzo 2017 (8 di 70)

79 Come lavora un processore: cenni sulla programmazione strutturata S. Salvatori - Microelettronica marzo 2017 (9 di 70)

80 Il processore come macchina programmabile Un processore è un sistema elettronico in grado di eseguire un programma FF..FF 16 instructions registers address data processor instructions and data memory S. Salvatori - Microelettronica marzo 2017 (10 di 70)

81 Descrizione di un algoritmo input/output istruzione blocco di istruzioni condizione inizio/fine connessione S. Salvatori - Microelettronica marzo 2017 (11 di 70) Gli Elementi fondamentali che servono per rappresentare i diagrammi di flusso sono quelli di figura. Con questi e poche strutture possiamo descrivere algoritmi anche complessi.

82 Programmazione strutturata T cond F cond T F condizione sequenza ciclo while S. Salvatori - Microelettronica marzo 2017 (12 di 70) Le strutture sono: sequenza Condizione Ciclo Ci atteniamo a queste tre per descrivere algoritmi che possano tradursi facilmente nel linguaggio C.

83 Esempio Addizione tra due numeri somma In A In B input C A + B assegnazione Out C output end S. Salvatori - Microelettronica marzo 2017 (13 di 70)

84 Esempio Massimo tra due numeri max In A, B T A > B F confronto max A max B Out max end S. Salvatori - Microelettronica marzo 2017 (14 di 70)

85 max Esempio Ricerca massimo (-1 per uscire) max 0 A 0 A!= -1 T In A F T max A A > max F Out max S. Salvatori - Microelettronica end marzo 2017 (15 di 70)

86 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (16 di 70)

87 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (17 di 70)

88 Ciclo for i iniz cond. i F T modif. i S. Salvatori - Microelettronica marzo 2017 (18 di 70) Si deve sottolineare che il ciclo for è un ciclo while in cui si inizializza una variabile, si stabilisce la condizione per restare nel ciclo e si scrive nel corpo del ciclo l'operazione logicomatematico che modifica il valore della variabile scelta andando da un ciclo al successivo.

89 Ciclo for i iniz cond T F cond. i T F modif. i ciclo while S. Salvatori - Microelettronica marzo 2017 (19 di 70) Si deve sottolineare che il ciclo for è un ciclo while in cui si inizializza una variabile, si stabilisce la condizione per restare nel ciclo e si scrive nel corpo del ciclo l'operazione logicomatematico che modifica il valore della variabile scelta andando da un ciclo al successivo.

90 Ciclo for: esempio for(i = ; i>0; i ) {... } I i > 0 T F i = ; while(i>0) {... i ; } Ciclo while equivalente i i - 1 S. Salvatori - Microelettronica marzo 2017 (20 di 70) Questa è la sntassi per il ciclo for in C che il compilatore comunque tradurrà come nel caso del ciclo while equivalente

91 Ciclo for: esempio blocco di istruzione eseguite ad ogni ciclo for(i = ; i>0; i ) {... } I i > 0 F Assegnazione iniziale T Condizione per rimanere nel ciclo i i - 1 Operazione di aggiornamento alla fine di un ciclo S. Salvatori - Microelettronica marzo 2017 (21 di 70) Questa è la sntassi per il ciclo for in C che il compilatore comunque tradurrà come nel caso del ciclo while equivalente

92 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (22 di 70)

93 Ciclo per un uc start iniziallizz. Ciclo infinito true T funzione F end S. Salvatori - Microelettronica marzo 2017 (23 di 70) Il diagramma di flusso di un uc prevede: Una fase di inizializzazione del sistema (in pratica la ISR del reset, l'inizializzazione dell'oscillatore, l'inizializzazione delle periferiche...) Si entra poi nel cosiddetto ciclo infinito: un while in cui la condizione è sempre vera.

94 Ciclo per un uc... //istruzioni di inizializzazione while(1) {... //istruzioni eseguite dal // uc durante il suo lavoro } start iniziallizz. true T funzione F end S. Salvatori - Microelettronica marzo 2017 (24 di 70) Il diagramma di flusso di un uc prevede: Una fase di inizializzazione del sistema (in pratica la ISR del reset, l'inizializzazione dell'oscillatore, l'inizializzazione delle periferiche...) Si entra poi nel cosiddetto ciclo infinito: un while in cui la condizione è sempre vera.

95 Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2017 (25 di 70)

96 4 eventi Specifiche: Acquisire lo stato di un ingresso; evento Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 T F Aspetta che l'input esca dallo stato basso Una uscita deve diventare alta ogni 4 eventi. return Qui c'è stato il fronte positivo Att.ne: che succede se rientro troppo presto? S. Salvatori - Microelettronica marzo 2017 (26 di 70)

97 4 eventi evento IN = 0 T F Inizio test fine test Inizio nuovo test return IN: Così uscirei subito ma in realtà non c'è stato il nuovo fronte positivo S. Salvatori - Microelettronica marzo 2017 (27 di 70)

98 4 eventi Specifiche: Acquisire lo stato di un ingresso; evento Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 T F Aspetta che l'input esca dallo stato basso Una uscita deve diventare alta ogni 4 eventi. Qui c'è stato il fronte positivo IN = 1 F T Aspetta che l'input torni nello stato basso return S. Salvatori - Microelettronica marzo 2017 (28 di 70)

99 4 eventi start Specifiche: true end Acquisire lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. T out 0 e 0 e < 4 T F evento IN = 0 T F evento e e + 1 IN = 1 T F out 1 return S. Salvatori - Microelettronica marzo 2017 (29 di 70)

100 Architettura e organizzazione di un microprocessore S. Salvatori - Microelettronica marzo 2017 (30 di 70)

101 Architettura e organizzazione di un up Un computer general purpose consiste in un sistema denominato: computer digitale con programma memorizzato La tecnologia microelettronica ha consentito di integrare milioni di MOS su un solo chip dando luogo alla nascita di sistemi ultraveloci e di complessità sempre più alta Il progresso nel campo dei up non si è avuto solo grazie al progresso tecnologico Allo sviluppo hanno certamente contribuito le capacità degli ingegneri in grado di definire sia l'architettura che l'organizzazione di un microcomputer S. Salvatori - Microelettronica marzo 2017 (31 di 70)

102 Architettura e organizzazione di un up Architettura: descrive il computer dal punto di vista dell'utente Set delle istruzioni Registri disponibili Gestione della memoria Gestione delle eccezioni Organizzazione: descrive come è implementata l'architettura Struttura della pipeline Chache Soluzioni hardware... S. Salvatori - Microelettronica marzo 2017 (32 di 70)

103 Programma memorizzato Un processore è un automa che esegue istruzioni scritte nella memoria programma registers processor address instructions and data instructions data memory dati e programma sono immagazzinati nella stessa memoria le istruzioni sono trattate come i dati (questo può anche portare a un codice che si auto-modifica) FF..FF Lo stato del sistema è determinato dai valori memorizzati in locazioni di memoria e in registri interni al up ogni istruzione definisce le modalità di cambiamento dei dati e quindi dello stato essendo programmabili, i up risultano dispositivi universali, potendo eseguire qualunque algoritmo S. Salvatori - Microelettronica marzo 2017 (33 di 70)

104 Astrazione nella progettazione I up sono dispositivi che integrano milioni di MOS che operano a velocità elevatissima. I dispositivi commutano milioni di volte al secondo. Il sistema deve operare in modo ripetibile e controllato per non cadere in uno stato imprevisto (collasso). Come può essere progettato un sistema tanto complesso? livelli di astrazione che abbiamo visto S. Salvatori - Microelettronica marzo 2017 (34 di 70)

105 Elementi fondamentali di una CPU incrementer PC... DECODER AI BUS ESTERNI MAR MDR IR SR FUNZ REG ALU REG R0 R1 Rn BANCO DI REGISTRI S. Salvatori - Microelettronica marzo 2017 (35 di 70) Gli elementi fondamentali di una CPU sono rappresentati in questa figura. Vediamo nel seguito quali sono gli elementi minimi per costruire un cosiddetto processore minimo.

106 Il processore minimo Il tipo più semplice di processore prevederà: un PC, Program Counter, per puntare all istruzione da eseguire un IR, Instruction Register, che mantiene il codice dell istruzione da eseguire un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari una unità di decodifica e controllo che imposterà le azioni in funzione dell istruzione..6 S. Salvatori - Microelettronica marzo 2017 (36 di 70) Saranno necessari almeno: - un contatore di programma, cioè un registro che consenta di puntare all'istruzione che deve essere eseguita. In esso è quindi contenuto l'indirizzo dell'istruzione da eseguire; - un registro che consenta di memorizzare il codice dell'istruzione che il processore deve eseguire e il contenuto deve giungere al decoder che preparerà il datapath (vedi dopo) perché l'istruzione venga eseguita; - un registro accumulatore che filtri uno degli operandi della ALU ed eviti il problema della corsa critica; - ovviamente, una ALU che consenta di eseguire un certo numero di operazioni di calcolo, logiche e aritmetiche, e che definisce in pratica la capacità di calcolo del processore; - un decoder che controllerà, in base al codice dell'istruzione corrente, il flusso dei dati all'interno del processore che deve essere attuato per l'esecuzione dell'istruzione stessa.

107 Esempio di processore minimo Per il più semplice processore prevediamo per l'istruzione un formato a 16 bit; Nei 16 bit sono inclusi l'opcode a 4 bit e un campo d'indirizzo a 12 bit: 4 bits opcode 12 bits S istruzioni a 16 bit I dati sono a 16 bit (ALU) 12 bit d indirizzo -> 4096x16 = 8 kbyte di spazio di memoria S. Salvatori - Microelettronica marzo 2017 (37 di 70) Nel nostro esempio, tratto dal Furber, prevediamo istruzioni da 16 bit: 4 bit rappresentano il codice dell'istruzione, gli altri 12 l'indirizzo del dato su cui l'istruzione deve lavorare. I dati saranno anche essi a 16 bit. Prevedendo 12 bit di indirizzo per pescare i dati, il bus degli indirizzi del nostro sistema sarà da 12 bit: quindi una capacità della memoria pari a 8 kbyte. Nota: prevediamo istruzioni a 1 indirizzo: nell'istruzione abbiamo tutte le informazioni per l'operazione da svolgere e l'indicazione di dove pescare o trascrivere un dato. Non abbiamo quindi bisogno di accedere nuovamente alla memoria programma per eseguire correttamente l'istruzione. In pratica, allora, ad ogni ciclo il program counter viene incrementato di una sola unità.

108 Il set di istruzioni è anch'esso minimo: Istruzione Opcode Effetto LDA S 0000 ACC := mem 16 [S] STO S 0001 mem 16 [S] := ACC ADD S 0010 ACC := ACC + mem 16 [S] SUB S 0011 ACC := ACC - mem 16 [S] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2017 (38 di 70) Per prima cosa definiamo un set di istruzioni minimo: - istruzioni per leggere o scrivere un in memoria; - istruzioni di addizione e sottrazione; - istruzioni di salto; - istruzione di stop. Nota: le istruzioni elencate sono 8, mentre per l'op-code sono stati riservati 4 bit, con i quali sarebbe possibile definire 16 istruzioni. Perché si è scelto un numero inferiore di istruzioni?

109 Il progetto della logica è divisibile in due passi fondamentali: datapath tutti gli elementi che lavorano su parole (acc., PC, ALU, IR) fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo Register Transfer level (RTL), basato su registri, MUX, logica di controllo tutto ciò che non è incluso nel datapath, farà parte della logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine) S. Salvatori - Microelettronica marzo 2017 (39 di 70) Dopo aver stabilito un set per le istruzioni, nel progettare un processore dobbiamo seguire due passi fondamentali: - datapath: gli elementi necessari perché all'interno del processore i dati vengano convogliati negli elementi giusti perché la singola istruzione possa essere eseguita; - progetto della logica di decodifica e controllo. Tutto ciò che non può essere progettato a livello di datapath rientra in questa fase. In pratica si progetterà una FSM in cui lo svolgimento dei singoli passi elementari porta all'esecuzione della particolare istruzione.

110 Progetto a livello di datapath S. Salvatori - Microelettronica marzo 2017 (40 di 70) Vediamo la prima fase: il progetto del processore a livello di datapath.

111 datapath S. Salvatori - Microelettronica marzo 2017 (41 di 70) Il nostro processore dovrà essere interfacciato alla memoria esterna con i due bus, di indirizzo e di dati. Questi due bus viaggeranno ovviamente anche all'interno della CPU. Nel nostro caso abbiamo un bus degli indirizzi da 12 bit e uno per i dati da 16 bit.

112 datapath S. Salvatori - Microelettronica marzo 2017 (42 di 70) Il primo elemento che inseriamo è il registro che memorizza il codice dell'istruzione, IR. Quindi il suo ingresso sarà collegato al bus dati. Come detto prima, dei 16 bit 4 si riferiscono al codice dell'istruzione e quindi queste 4 linee andranno verso il circuito di decodifica e controllo. Gli altri 12 bit rappresentano l'indirizzo del dato oppure dell'istruzione nel caso di salti e quindi andranno verso il bus degli indirizzi.

113 datapath S. Salvatori - Microelettronica marzo 2017 (43 di 70) Elemento fondamentale da collegare è la ALU. A questa dovranno arrivare i due operandi di ingresso e fornirà il risultato in uscita.

114 datapath S. Salvatori - Microelettronica marzo 2017 (44 di 70) Uno dei due operandi verrà direttamente dalla memoria e quindi dal data bus. Infatti il formato dell'istruzione prevede 12 bit per l'indirizzo dell'operando. Questo indirizzo è posto da IR e la memoria fornirà il dato che così potrà giungere alla ALU.

115 datapath S. Salvatori - Microelettronica marzo 2017 (45 di 70) Il secondo operando verrà dall'accumulatore interno alla CPU.

116 datapath S. Salvatori - Microelettronica marzo 2017 (46 di 70) Il risultato che la ALU fornisce arriverà all'ingresso dello stesso accumulatore. In questo modo si evita il problema della corsa critica: solo quando arriva il segnale di clock che abilita la scrittura nell'accumulatore il suo valore di uscita potrà cambiare. Invece durante tutto il periodo di clock l'uscita dell'accumulatore è stabile e così sarà pure l'operando per la ALU che avrà tutto il periodo di clock per assestare il suo risultato.

117 datapath S. Salvatori - Microelettronica marzo 2017 (47 di 70) Ovviamente se il risultato deve essere scritto in memoria l'uscita dell'accumulatore dovrà pure giungere sul data bus. L'istruzione di store memorizzerà all'indirizzo di memoria voluto il risultato.

118 datapath? S. Salvatori - Microelettronica marzo 2017 (48 di 70) Infine abbiamo il program counter. Esso deve essere incrementato ad ogni ciclo in modo da puntare all'istruzione successiva. Avremo quindi bisogno di ulteriore hardware per gestire PC? Per rispondere a questa domanda torniamo al set delle istruzioni e vediamo di capire di cosa abbiamo effettivamente bisogno.

119 datapath l esecuzione dell istruzione prevede un un numero di di cicli di di clock pari agli agli accessi in in memoria necessari 2 accessi 1 accesso Instruzione Opcode Effetto LDA S 0000 ACC := mem 16 [S] STO S 0001 mem 16 [S] := ACC ADD S 0010 ACC := ACC + mem 16 [S] SUB S 0011 ACC := ACC - mem 16 [S] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2017 (49 di 70) Le istruzioni di processing sono svolte in due cicli di clock perché sono necessari due accessi alla memoria: uno per il fetch dell'istruzione, l'altro per acquisire l'operando. Quelle di salto e di stop sono svolte in un ciclo soltanto. Nelle istruzioni di elaborazione, quindi, uno dei cicli vedrà impegnata la ALU per il calcolo. Viceversa per i salti non si ha alcun calcolo.

120 datapath S. Salvatori - Microelettronica marzo 2017 (50 di 70) Per prima cosa indichiamo che il contenuto di PC deve arrivare, ovviamente, all'address bus, dovendo con esso puntare all'istruzione da eseguire.

121 datapath 12 L'incremento del PC può essere svolto dalla stessa ALU (più avanti i dettagli) 16 S. Salvatori - Microelettronica marzo 2017 (51 di 70) Come detto la ALU viene impegnata in uno soltanto dei due cicli di clock per le istruzioni di elaborazione e non è impegnata per le istruzioni di salto: possiamo risparmiare hardware usando la stessa ALU per incrementare il contenuto di PC! Per fare questo e linee di indirizzo devono giungere alla ALU. Questa eseguirà l'operazione di incremento e il risultato sarà memorizzato in PC.

122 datapath S. Salvatori - Microelettronica marzo 2017 (52 di 70) In definitiva, è questo lo schema del nostro processore minimo a livello di datapath.

123 datapath design assunto che l istruzione sia stata caricata, il progetto a livello di datapath prevede due passi fondamentali: 1. accesso all operando in memoria esce l indirizzo da IR l operando e l'accumulatore giungono alla ALU il risultato fornito dalla ALU è caricato nell accumulatore stesso oppure il contenuto dell accumulatore è scritto in memoria 2. fetch della nuova istruzione (PC o IR12 hanno l indirizzo della locazione per la nuova istruzione) il contenuto è incrementato dalla ALU il nuovo valore è salvato in PC Comunque: inizializzazione (il processore deve iniziare da uno stato noto) input di RESET per esempio: azzerata l uscita della ALU, caricarne poi il valore in PC S. Salvatori - Microelettronica marzo 2017 (53 di 70) Per concludere questa prima fase del progetto e quindi pensare a quali debbano essere i passi di progetto da seguire successivamente, vediamo come deve lavorare il nostro processore: 1. l'istruzione è memorizzare in IR. L'indirizzo dell'operando arriva all'address bus. Il decoder ha preparato i diversi componenti in modo che anche l'altro operando giunga alla ALU e questa svolga la particolare operazione; 2. una nuova istruzione deve essere prelevata dalla memoria. L'indirizzo dell'istruzione da prelevare è in PC (o nel campo a 12 bit di IR per i salti) e giunge all'address bus. Nello stesso periodo questo indirizzo giunge alla ALU che è predisposta per incrementarlo. Alla fine del ciclo il valore incrementato viene memorizzato in PC. Da non trascurare la condizione di reset, cioè, come qualunque macchina sequenziale, ci deve essere uno stato ben definitivo per la partenza del sistema.

124 Progetto a livello RTL (Register Transfer Level) S. Salvatori - Microelettronica marzo 2017 (54 di 70) Il passo di progetto successivo riguarda la definizione dello schema completo di tutti i registri e MUX necessari, nonché della macchina a stati finiti che regolerà il funzionamento per ogni singola istruzione.

125 Organizzazione RTL memory memory MEMrq MEMrq RnW RnW IRce IRce buffer per la connessione su data-bus Segnali di selezione Segnali di controllo IR IR PC PC Asel PCce Asel PCce ALUfs ALU ALUfs B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz Bsel Bsel 0 mux 0 mux 1 1 opcode opcode ACCoe ACCoe segnali di abilitazione per i registri Stabiliamo che il dato venga caricato nel registro in corrispondenza del fronte negativo di clock S. Salvatori - Microelettronica marzo 2017 (55 di 70) Cominciamo traducendo i diversi blocchi con i corrispondenti registri. Ognuno di questi avrà un ingresso di clock con cui stabilire l'istante in cui viene memorizzato il dato di ingresso e anche un segnale di abilitazione: se il registro non è abilitato, malgrado giunga il segnale di clock in esso rimane memorizzato il valore precedente. Si nota anche che sono necessari dei MUX. Per esempio, al bus degli indirizzi può giungere l'uscita di IR o quella di PC. In questo caso, allora, serve un MUX che eviti il conflitto tra le due uscite. Il segnale Asel sarà utilizzato per stabilire quale indirizzo deve effettivamente giungere sul bus. Inoltre il secondo operando della ALU può venire dal data bus o dal bus degli indirizzi. Con il segnale Bsel stabiliamo quale debba essere tale connessione. Infine, sul data bus potrà essere connessa la memoria oppure il dato d'uscita dell'accumulatore. Poiché la memoria è un dispositivo esterno, occorre predisporre un buffer che consenta di porre in alta impedenza le uscite dell'accumulatore per evitare il conflitto con la RAM.

126 Progetto della logica di controllo Decodifica dell'istruzione corrente; Generare i segnali di controllo all'interno del datapath; È intuibile che il progetto preveda quello di una FSM: la rappresentazione mediante il diagramma degli stati è superflua vi sono solo due stati: Fetch e Execute solo 1 bit di stato Progetto FSM S. Salvatori - Microelettronica marzo 2017 (56 di 70) La logica di controllo dovrà: - decodificare il codice dell'istruzione (op-code contenuto in IR) circuito combinatorio...; - generare i segnali di controllo opportuni per il datapath in modo che per ogni istruzione il processore svolga i passi elementari che portino alla esecuzione dell'ustruzione stessa. Si intuisce che il progetto sarà relativo a quello di una macchina a stati finiti. Sono necessari solo due stati: fetch e execute 1 bit di stato.

127 Progetto della FSM Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce Bsel Bsel 0 mux 0 mux 1 1 ALU B ALU A B A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe Bit di stato Ex/ft: execute = 0 fetch = 1 tabella degli stati: input output instruction Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW S. Salvatori - Microelettronica marzo 2017 (57 di 70) Per il bit di stato stabiliamo che: '0': fase di execute '1': fase di fetch. Cominciamo a costruire la tabella degli stati con i possibili ingressi e tutte le uscite di controllo che la FSM deve generare.

128 FSM: istruzione LDA S Asel Asel ALUfs ALUfs memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe fase di execute preparo memorizz. nell accumulatore Bsel Bsel 0 mux 0 mux 1 1 instruction input Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW LDA S x x output = B La prossima è il fetch dell'istruzione succ. S. Salvatori - Microelettronica marzo 2017 (58 di 70) LOAD S: Istruzione di lettura del contenuto di una locazione di memoria all'indirizzo S con caricamento nell'accumulatore. Il datapath da preparare è quello di figura: L'indirizzo S da IR deve andare nell'address bus; La memoria rilascerà il dato sul data bus (avendo abilitato MEMrq); Il data bus deve essere letto e quindi lo si deve fare giungere alla ALU (operando B); Questa è programmata per copiare l'operando B, così arriva all'ingresso dell'accumulatore.

129 FSM: istruzione LDA S Asel Asel ALUfs ALUfs memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz Bsel Bsel 0 mux 0 mux 1 1 opcode opcode ACCoe ACCoe fase di fetch della successiva PC <- PC+1 instruction input Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW LDA S x x output B+1 preparo memorizzazione dell istruzione S. Salvatori - Microelettronica marzo 2017 (59 di 70) Alla fine del ciclo di clock precedente il dato d'uscita dalla ALU è memorizzato nell'accumulatore. Inizia un nuovo ciclo di clock nel quale è possibile preprare il fetch per l'istruzione successiva. Il contenuto di PC viene convogliato sull'address bus; Lo stesso address bus è collegato come operando B alla ALU che viene programmata per fare l'incremnto. Il PC è abilitato per memorizzare il valore che esce dalla ALU. IR viene abilitata. Quando finisce questo periodo di clock, il dato (istruzione successiva) sul data bus è memorizzato in IR. PC memorizza invece PC+1. Si può passare alla fase di execute dell'istruzione con il ciclo di clock successivo.

130 FSM: istruzione STO S memory memory Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce Bsel Bsel 0 mux 0 mux 1 1 ALU B B ALU A A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe R / W preparo memorizz. in memoria instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW STO S x x 1 x x STO S x x B S. Salvatori - Microelettronica marzo 2017 (60 di 70) L'istruzione duale alla precedente riguarda lo store di un dato: il contenuto dell'accumulatore deve essere scritto nella locazione di memoria all'indirizzo S. Il datapath e i segnali della FSM possono essere verificati per esercizio.

131 FSM: istruzione ADD S memory memory Asel Asel ALUfs ALUfs IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW ADD S x x A+B ADD S x x B S. Salvatori - Microelettronica marzo 2017 (61 di 70) Anche le istruzioni di data processing possono essere risolte come esercizio.

132 FSM: istruzione SUB S memory memory Asel Asel ALUfs ALUfs IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW SUB S x x A-B SUB S x x B S. Salvatori - Microelettronica marzo 2017 (62 di 70)

133 FSM: istruzione JMP S memory memory Asel Asel ALUfs ALUfs IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW JMP S x x x B S. Salvatori - Microelettronica marzo 2017 (63 di 70)

134 FSM: istruzione JGE S memory memory Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B B ALU A A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW JGE S x x B JGE S x x B S. Salvatori - Microelettronica marzo 2017 (64 di 70)

135 FSM: istruzione JNE S memory memory Asel Asel ALUfs ALUfs ACC[15] ACC[15] ACCz ACCz IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B B ALU A A ACCce ACCce ACC ACC opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW JNE S x 0 x B JNE S x 1 x B S. Salvatori - Microelettronica marzo 2017 (65 di 70)

136 FSM: istruzione STP memory memory Asel Asel ALUfs ALUfs IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 0 mux 1 1 instruction input STP 0111 output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW 0 x x x 1 x x S. Salvatori - Microelettronica marzo 2017 (66 di 70)

137 FSM: RESET Asel Asel ALUfs ALUfs memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC PCce PCce ALU B ALU B A A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe N.B.: in PC e ACC viene memorizzato 0 (per tutti i periodi di clock in cui RST è alto). RST CLK Bsel Bsel 0 mux 0 mux 1 1 instruction input xxxx output Op-code Ex/ft ACC15 Bsel PCce ACCoe MEMrq EX/ft Reset ACCz Asel ACCce IRce ALUfs R/nW 1 x x x = S. Salvatori - Microelettronica marzo 2017 (67 di 70) Se è attivato il segnale di reset vengono azzerati sia il contenuto di PC che dell'accumulatore. Infatti i due segnali di abilitazione sono alti per entrambi. La ALU è usata per far uscire il valore 0. Il valore di PC (che sarà stato azzerato) esce sul bus indirizzi e così la memoria pone sul data bus il codice della prima istruzione che si trova all'indirizzo 0. Il prossimo stato è quello di execute. Nota: durante il prossimo ciclo verrà eseguita l'istruzione. Se questa è di data processing o di load/store, la ALU sarà impegnata e quindi il contenuto di PC non cambierà. All'ulteriore ciclo di clock quindi uscirà nuovamente l'indirizzo 0 da PC perché non è stato incrementato. Quindi l'istruzione viene in pratica eseguita due volte. Diverso è il caso in cui l'istruzione è di salto: in PC andrà a finire l'indirizzo del salto così al prossimo ciclo di clock uscirà l'indirizzo della istruzione che si trova al salto e la ALU è usta per incrementare PC stesso (vedi JMP).

138 FSM: sintesi memory memory IRce MEMrq RnW IRce MEMrq RnW IR IR PC PC Asel PCce Asel PCce ALUfs ALU ALUfs B ALU A B A ACCce ACCce ACC[15] ACC[15] ACC ACCz ACC ACCz opcode opcode ACCoe ACCoe Bsel Bsel 0 mux 1 0 mux 1 organizzazione RTL fetch dell istruzione corrente e incremento di PC => coincidono S. Salvatori - Microelettronica marzo 2017 (68 di 70)

139 Sviluppi futuri per il MUn Aumentare il numero di linee di indirizzo; Aumentare i modi di indirizzamento; Consentire il salvataggio di PC (subroutines); Aggiungere altri registri interni; inserire linee di interrupt; S. Salvatori - Microelettronica marzo 2017 (69 di 70)

140 Prossimamente Note sul progetto di un processore Formato delle istruzioni Tipi di istruzione Domande Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica marzo 2017 (70 di 70)

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2015/2016 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2016/2017 Eccetto dove diversamente specificato, i contenuti

Dettagli

Il processore minimo MU0. S. Salvatori - Microelettronica marzo 2019 (50)

Il processore minimo MU0. S. Salvatori - Microelettronica marzo 2019 (50) Il processore minimo S. Salvatori - Microelettronica marzo 209 (50) Il processore minimo Il tipo più semplice di processore prevederà: un, Program Counter, per puntare all istruzione da eseguire un, Instruction

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2018/2019 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre.

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre. Microelettronica Introduzione al progetto di un microprocessore Stefano Salvatori (salvator@uniroma3.it) Microelettronica 2012 Sommario up minimo: Formato delle istruzioni Tipi di istruzione Percentuale

Dettagli

Instruzione Opcode Effetto

Instruzione Opcode Effetto datapath l esecuzione dell istruzione prevede un un numero di di cicli di di clock pari agli agli accessi in in memoria necessari 2 accessi accesso Instruzione Opcode Effetto LDA S 0000 := mem 6 [S] STO

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Organizzazione hardware del processore ARM prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato, i contenuti

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Richiami di elettronica digitale per i sistemi a microprocessore Dentro la CPU: registri e macchine sequenziali prof. Stefano Salvatori

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Calcolatore: sottosistemi

Calcolatore: sottosistemi Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Richiami di elettronica digitale per i sistemi a microprocessore Dentro la CPU: registri e macchine sequenziali prof. Stefano Salvatori

Dettagli

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi 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

Architettura del processore e esecuzione delle istruzioni

Architettura del processore e esecuzione delle istruzioni Architettura del processore e esecuzione delle istruzioni Prof. CAPEZIO Francesco Quest'opera è soggetta alla licenza Creative Commons Attribuzione Non Commerciale Introduzione Il compito di un processore

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II) 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale la memoria secondaria i dispositivi di input/output 1 Fornisce la capacità di

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Francesco Folino FUNZIONI DI UN CALCOLATORE Elaborazione Memorizzazione Trasferimento Controllo MACCHINA DI VON NEUMANN TRASFERIMENTO Obiettivo: permettere lo scambio di informazioni tra le varie componenti

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni

Dettagli

FONDAMENTI DI INFORMATICA Lezione n. 10

FONDAMENTI DI INFORMATICA Lezione n. 10 FONDAMENTI DI INFORMATICA Lezione n. 10 CPU-MEMORIA CICLO PRINCIPALE CPU ARCHITETTURA BASE UNITÀ DI ESECUZIONE E UNITÀ DI CONTROLLO In questa lezione viene analizzata l'architettura di base di un sistema

Dettagli

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2011-2012 Architettura di un calcolatore: primi cenni introduttivi Lezione 1 (seconda parte) Prof. Roberto Canonico Università degli Studi di Napoli Federico II

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella figura seguente è riportata la rappresentazione semplificata ed essenziale di un computer. RESET Canali Di Ingresso Uscita Uscita Ingressi Fig. 1 Rappresentazione semplificata di un computer

Dettagli

Architettura dei Calcolatori Elettronici

Architettura dei Calcolatori Elettronici Architettura dei Calcolatori Elettronici Prof. Orazio Mirabella L architettura del Calcolatore: esame delle sue caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore

Dettagli

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche ELABORAZIONE Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche operazioni relazionali (confronto tra dati) operazioni booleane altre

Dettagli

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI 1 (a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI ISA E MICROARCHITETTURA DI PROCESSORI IL PROCESSORE MU0 MODELLAZIONE VERILOG E SIMULAZIONE DEL PROCESSORE MU0 2 ISA E MICROARCHITETTURA

Dettagli

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Introduzione all'architettura dei Calcolatori. Maurizio Palesi Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle

Dettagli

FONDAMENTI DI INFORMATICA Lezione n. 10

FONDAMENTI DI INFORMATICA Lezione n. 10 FONDAMENTI DI INFORMATICA Lezione n. 10 CPU-MEMORIA CICLO PRINCIPALE CPU ARCHITETTURA BASE UNITÀ DI ESECUZIONE E UNITÀ DI CONTROLLO In questa lezione viene analizzata l'architettura di base di un sistema

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella Fig. 1 seguente è riportata la rappresentazione semplificata ed essenziale di un computer, e di seguito se ne esamineranno gli aspetti funzionali. RESET Canali Di Ingresso Uscita Uscita

Dettagli

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2016 (16 di 39) Compilatore Il progettista del up definisce

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

Terza lezione 21 ottobre 2016

Terza lezione 21 ottobre 2016 Terza lezione 21 ottobre 2016 Condizione per la conversione A/D Il teorema di Shannon (o di Nyquist) fornisce la condizione necessaria affinché un segnale dopo il campionamento possa nuovamente essere

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Architettura di un elaboratore

Architettura di un elaboratore Architettura di un elaboratore Prof. Giulio Maraldi Istituto di Istruzione Superiore Marie Curie Savignano sul Rubicone A.S. 2017/2018 Argomenti 1. Componenti e struttura 2. CPU 3. Memorie 4. Periferiche

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

architettura degli elaboratori Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione

architettura degli elaboratori Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione architettura degli elaboratori Alberto Ferrari architettura la macchina di von Neumann memorie Input / Output canali di comunicazione CPU registri istruzioni struttura dell elaboratore o la struttura dei

Dettagli

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O L ARCHITETTURA DEI CALCOLATORI Il processore La memoria centrale La memoria di massa Le periferiche di I/O Caratteristiche dell architettura 2 Flessibilità adatta a svolgere diverse tipologie di compiti

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

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Riepilogando Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad iniio corso I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i

Dettagli

Microelettronica. Note su RISC. Stefano Salvatori. Università degli Studi Roma Tre. Università degli Studi Roma Tre

Microelettronica. Note su RISC. Stefano Salvatori. Università degli Studi Roma Tre. Università degli Studi Roma Tre Microelettronica Note su RISC Stefano Salvatori (salvator@uniroma3.it) Premessa 1980: Patterson e Ditzel, The case for the reduced instruction set computer Berkley: RISC I (progetto molto semplice rispetto

Dettagli

Architettura di von Neumann

Architettura di von Neumann Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Architettura di von Neumann Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Architettura hardware

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

Dettagli

Il processore - CPU (CENTRAL PROCESSING UNIT)

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

Dettagli

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione ESERCITAZIONE 8 Sommario Unità centrale di elaborazione Meccanismo di interruzione CPU-Memoria Architettura di una CPU Linguaggio macchina Modi di indirizzamento 1. Unità centrale di elaborazione L unità

Dettagli

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Campo Codice Operativo Campo Operandi K bit n-k bit n bit 1 Istruzione

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore: note prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato,

Dettagli

Architettura di un calcolatore: primi cenni introduttivi

Architettura di un calcolatore: primi cenni introduttivi Corso di Calcolatori Elettronici I Architettura di un calcolatore: primi cenni introduttivi ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Architettura di un calcolatore Cosa significa

Dettagli

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale Programmazione A.A. 2002-03 I Architettura dei Calcolatori ( Lezione V ) Componenti hardware e loro schema funzionale Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica

Dettagli

Elementi di Architettura

Elementi di Architettura Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Cenni sull architettura del calcolatore

Cenni sull architettura del calcolatore Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Cenni sull architettura del calcolatore Pietro Di Lena - pietro.dilena@unibo.it hard-ware /h :dwe9 r / n. The part of the computer

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann Architettura Corso di Laurea in Ingegneria Biomedica aa 2003/2004 Ing. Antonio Coronato 1 Argomenti Modello di Von Neumann, Bus, Memoria centrale e dispositivi Data Path delle architetture di Von Neumann

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura

Dettagli

Esercitazione 11. Control-Unit. Data-Path

Esercitazione 11. Control-Unit. Data-Path Esercitazione 11 Sommario Unità di controllo cablate 1. Unità di controllo L architettura interna di una CPU può essere modellata attraverso una struttura costituita da 2 unità interagenti: percorso dati

Dettagli

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved Capitolo 2 Elaborazione dei dati Mauro Giacomini 2007 Pearson Addison-Wesley. All rights reserved Capitolo 2: Elaborazione dei dati 2.1 Architettura del Computer 2.2 Linguaggio macchina 2.3 Esecuzione

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione odulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Il Processore (CPU) 2 rchitettura del processore CPU Unità di Controllo Unità ritmetica Logica egistri

Dettagli

Un quadro della situazione. Lezione 28 Il Processore: unità di controllo (2) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Un quadro della situazione. Lezione 28 Il Processore: unità di controllo (2) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto Un quadro della situazione Lezione 28 Il Processore: unità di lo (2) Vittorio Scarano rchitettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Ciclo di, classificazione e livelli delle architetture di calcolatore Lezioni del Corso di Laurea Triennale in Informatica Per gentilezza del Prof. Sebastiano Pizzutilo (Dipartimento

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Tecniche della Programmazione, , Parte1

Tecniche della Programmazione, , Parte1 Tecniche della Programmazione, 2017-18, Parte1 Per alcune slide di questa lezione ho tratto spunto, o brutalmente usato, quelle della raccolta dei proff. F.Frati e C.Limongelli, che ringrazio Tecniche

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli

6: Macchina di Von Neumann

6: Macchina di Von Neumann Data: 8-10-2017 Pag: 6 6: Macchina di Von Neumann 1. Lo Schema di Von Neumann John Von Neumann, un ricercatore che in USA realizzò uno dei primi computer l'eniac: faceva 300 moltiplicazioni al secondo

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Macchina di von Neumann/Turing

Macchina di von Neumann/Turing Macchina di von Neumann/Turing Concetto di programma memorizzato Memoria principale per dati e istruzioni ALU opera su dati in formato binario Unità di controllo che interpreta le istruzioni in memoria

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Abilità Informatiche e Telematiche

Abilità Informatiche e Telematiche Abilità Informatiche e Telematiche (Laurea Triennale + Laurea Magistrale) Marco Pedicini mailto:marco.pedicini@uniroma3.it Corso di Laurea Magistrale in Informazione, Editoria e Giornalismo, Università

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici

Dettagli

I registri A, B, T contengono dati su cui è possibile eseguire operazioni elementari da parte dell ALU;

I registri A, B, T contengono dati su cui è possibile eseguire operazioni elementari da parte dell ALU; Il microprocessore La prima e più importante componente della scheda madre è sicuramente il microprocessore, ovvero la cosiddetta CPU (central processing unit). A dire il vero, microprocessore e CPU non

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli