Architettura del calcolatore (Prima parte)

Documenti analoghi
L architettura del calcolatore (Prima parte)

Architettura del calcolatore (Seconda parte)

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

L architettura del calcolatore (Seconda parte)

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

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

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

Architettura del Calcolatore

LABORATORIO DI INFORMATICA

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

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Rappresentazione dell informazione

Fondamenti di Informatica A. A / 1 9

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

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Architettura hardware

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Architettura dei calcolatori

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

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Architettura di von Neumann

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

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

Il processore - CPU (CENTRAL PROCESSING UNIT)

Lezione 17 Il Set di Istruzioni (3)

Architettura degli Elaboratori

Concetti Introduttivi

Concetti Introduttivi

Elementi di informatica

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

ARCHITETTURA DI UN ELABORATORE

Architettura hardware

Il modello di Von Neumann

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Laboratorio di Informatica L-A 1

Architettura di un calcolatore

Architettura di un Sistema Informatico

Architettura di Von Neumann

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

Architettura del Calcolatore

Fetch Decode Execute Program Counter controllare esegue prossima

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

Architettura dell elaboratore

Architettura dell elaboratore

Corso Integrato di Informatica e Sistemi di Elaborazione delle Informazioni

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

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

Linguaggio Assembly e linguaggio macchina

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Architettura dei calcolatori I parte Introduzione, CPU

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Il modello di von Neumann

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

INFORMATICA. L informatica comprende:

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

Architettura del processore e esecuzione delle istruzioni

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Lezione 2. Architetture HW e SW

Il computer P R O F. L O R E N Z O P A R I S I

ARCHITETTURA DI UN ELABORATORE. Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura dei calcolatori

Architettura dei Calcolatori Elettronici

Calcolatore: sottosistemi

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

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

Struttura hw del computer

Elementi di informatica

Architettura degli Elaboratori

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Note sull architettura del calcolatore

Componenti principali

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Modulo informatica di base 1 Linea 2

Modello di von Neumann

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

HARDWARE 1.4a: (Processore)

Istruzioni di trasferimento dati

Istruzioni e linguaggio macchina

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

Abilità Informatiche e Telematiche

Componenti e connessioni. Capitolo 3

Cenni sull architettura del calcolatore

Introduzione al funzionamento di un calcolatore elettronico

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Linguaggio Assembly e linguaggio macchina

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

ISA (Instruction Set Architecture) della CPU MIPS

Transcript:

Architettura del calcolatore (Prima parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin

Calcolatore astratto e reale Concetto astratto di calcolatore: cos è in sé [cap.1 libro di testo] Concetto di problema (classe di domande omogenee, alle quali si possa dare risposta con una procedura uniforme), istanza, soluzione Concetto di algoritmo (specifica attraverso una sequenza di istruzioni come produrre una soluzione per ogni istanza) Il calcolatore come esecutore universale di algoritmi Come in pratica i calcolatori attuali sono costruiti: dobbiamo analizzare l architettura del calcolatore CAPIRLA (abbastanza) bene è scopo del corso!!!!! Informatica e Programmazione Università di Brescia 2

Offerta speciale! PC Desktop Intel Pentium 4 524 3.06 GHz RAM 2048 MB HD 250 GB DVD+CDRW Scheda audio on board Sistema Operativo Windows Vista Monitor LCD 19 Notebook Intel Pentium M 740 1.73 GHz 2 MB L2 RAM 1024 MB Display 15,4 TFT WXGA TrueBrite HD 100 GB DVD/CD-RW LAN 10/100 - Modem 56k - Wi-Fi 802.11b/g 3 USB 2.0 - IEEE 1394 Informatica e Programmazione Università di Brescia 3

Linguaggio ad alto livello (es: il C) Compilatore o interprete SOFTWARE Linguaggio assembly Programma Assemblatore SOFTWARE API: interfaccia di programmazione per le applicazioni Sistema operativo SOFTWARE ISA: linguaggio macchina del calcolatore Organizzazione: componenti (CPU, memoria, ) e interconnessione HARDWARE livello dei circuiti Informatica e Programmazione Università di Brescia 4

Hardware e software Hardware (lett. ferramenta ): i componenti fisici del calcolatore Software (lett. oggetto morbido ): l insieme dei programmi che vengono eseguiti dal calcolatore (accezione ristretta ) Informatica e Programmazione Università di Brescia 5

ISA: linguaggio macchina del calcolatore Organizzazione: componenti (CPU, memoria, ) e interconnessione HARDWARE livello dei circuiti Tecnologie elettroniche: - elementi fondamentali: transistor - sono considerati due livelli di tensione (alta/bassa) Tecnologie magnetiche: - memorie costituite da materiale magnetizzabile (es: HD) - due stati di polarizzazione (positiva/negativa) Tecnologie ottiche: - materiali con prop. ottiche rilevate da raggio laser (es: CD) - due stati (es: assenza o presenza di un pit) Informatica e Programmazione Università di Brescia 6

ISA: linguaggio macchina del calcolatore Organizzazione: componenti (CPU, memoria, ) e interconnessione HARDWARE livello dei circuiti A questi due stati si associano convenzionalmente i valori 0 e 1 P. es. +5 V Valore 1 0 V CONSEGUENZA: Valore 0 Il linguaggio macchina del calcolatore è binario! 00101010 1010001001 01010100001 00000. Informatica e Programmazione Università di Brescia 7

A livello ISA, abbiamo quindi a disposizione due simboli: Alfabeto binario = {0, 1} I simboli 0 e 1 sono detti cifre binarie o BIT (Binary digit) Ad esempio, sentirete parlare di registri a 32 bit 00000000101000010000000000011000 Abbiamo quindi il problema di rappresentare tutte le informazioni di interesse (numeri, testi, immagini, filmati, ecc.) in linguaggio binario: ci occuperemo della codifica binaria dell informazione Informatica e Programmazione Università di Brescia 8

ISA: linguaggio macchina del calcolatore Organizzazione: componenti (CPU, memoria, ) e interconnessione livello dei circuiti Alcune elementari nozioni sull organizzazione del calcolatore a livello hardware Informatica e Programmazione Università di Brescia 9

L architettura di Von Neumann CPU = Central Processing Unit (Unità centrale) detta oggi Microprocessore o processore CPU ambiente Dispositivi di I/O Memoria Bus di sistema Informatica e Programmazione Università di Brescia 10

Funzioni dei componenti principali nella Architettura di Von Neumann La memoria centrale memorizza: - le istruzioni (binarie!) del programma da eseguire - i dati e i risultati (binari!) elaborati dal programma [sistema a programma memorizzato] L unità centrale esegue le istruzioni contenute in memoria in modo sequenziale, ripetendo ciclicamente i seguenti passi: - Prelievo (fetch) dell istruzione da eseguire - Decodifica (decode) dell istruzione - Esecuzione (execute) delle operazioni previste Il bus di sistema interconnette i diversi componenti Informatica e Programmazione Università di Brescia 11

LA MEMORIA CENTRALE Indirizzi 0 1 2 3 11101101001 001 linee comandi linee dati linee indirizzi Un insieme di parole di memoria consecutive, ciascuna identificata da un indirizzo Ogni parola memorizza una sequenza di n bit, dove n è lo stesso per tutte le parole e dipende dal calcolatore (es: 16, 32, 64 bit) Due operazioni possibili: lettura e scrittura di una parola all indirizzo specificato ( cancellazione non ha senso!) Informatica e Programmazione Università di Brescia 12

ESEMPIO: scrittura (nella parola di memoria) all indirizzo 3 del valore (binario) 11111111.1 Indirizzi 0 1 2 3 11101101001 001 11101101001 001 linee comandi linee dati comando di scrittura (binario) linee indirizzi 11111 3 (in binario) Informatica e Programmazione Università di Brescia 13

ESEMPIO: scrittura (nella parola di memoria) all indirizzo 3 del valore (binario) 11111111.1 Indirizzi 0 1 2 3 11101101001 001 11111111111 111 linee comandi comando di scrittura (binario) linee dati linee indirizzi 11111 3 (in binario) Informatica e Programmazione Università di Brescia 14

ESEMPIO: lettura (dalla parola di memoria) all indirizzo 0 del valore (binario) contenuto Indirizzi 0 1 2 3 11101101001 001 11111111111 111 linee comandi comando di lettura (binario) linee dati linee indirizzi 0 (in binario) 11101101001 001 Informatica e Programmazione Università di Brescia 15

IL BUS DI SISTEMA Insieme di collegamenti (linee) che permettono di trasferire dati da più sorgenti a più destinazioni (componenti del calcolatore) Il bus può essere suddiviso funzionalmente in: Bus dati (trasferisce i dati scambiati tra componenti) Bus indirizzi (selezionano le parole della memoria o gli elementi delle interfacce di ingresso-uscita che vedremo in futuro coinvolti nel trasferimento) Bus comandi o di controllo (segnali di controllo che regolano le operazioni del sistema di elaborazione) Informatica e Programmazione Università di Brescia 16

L UNITA CENTRALE (CPU - processore) 0 1 2 3 11101101001 001 CPU - fetch - decode - execute BUS COMANDI BUS DATI BUS INDIRIZZI Informatica e Programmazione Università di Brescia 17

Programma e dati in memoria Indirizzo In memoria viene caricata la forma binaria del programma 0 1 0101011110011001 1101011110011111 0111000000011001 1101011100011101 0110011110011001 0101000111011000 1010011110011001 0101111110000000 0101010010011001 0111000000011001 0101000111011000 0101111110000000 1111111111111111 1111111111111111 1111111111111111 1111111110111111 1111100111111111 zona della memoria che contiene le istruzioni zona della memoria che contiene i dati zona libera MEMORIA NB: non distinguibili a livello fisico!!! Informatica e Programmazione Università di Brescia 18

Programma e dati in memoria: domande lecite Indirizzo 0 1 0101011110011001 1101011110011111 0111000000011001 1101011100011101 0110011110011001 0101000111011000 1010011110011001 0101111110000000 0101010010011001 0111000000011001 0101000111011000 0101111110000000 MEMORIA zona della memoria che contiene le istruzioni zona della memoria che contiene i dati (numeri, caratteri, testi, immagini) Istruzioni: di che tipo sono? Istruzioni: come sono codificate? Dati: come sono codificati? RISPONDIAMO ALLA PRIMA DOMANDA Informatica e Programmazione Università di Brescia 19

Il linguaggio macchina Linguaggio macchina: costituito da istruzioni macchina, eseguite dalla CPU Istruzioni codificate con cifre binarie! Ogni CPU ha un proprio linguaggio macchina (ISA Instruction Set Architecture): per esempio, le istruzioni dei processori Intel X86 sono diverse da quelle del processore MIPS - esistono CPU di marca diversa con diversa struttura fisica che risultano compatibili (es. Intel e AMD) Nonostante le specificità dei singoli linguaggi, si può identificare una classificazione di massima Informatica e Programmazione Università di Brescia 20

Tipologie di istruzioni Istruzioni aritmetico-logiche e di manipolazione di bit (Elaborazione dati) Somma, Sottrazione, Divisione, And, Or, Xor, Maggiore, Minore, Uguale, Minore o uguale, Istruzioni di trasferimento Trasferimento dati e istruzioni tra CPU e memoria Istruzioni di controllo Salti condizionati Salti incondizionati Istruzioni di ingresso e uscita Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita Informatica e Programmazione Università di Brescia 21

I registri della CPU Sono celle di memoria a n bit 0 1 00000000101000010000000000011000 00001100101000010000000000011000 Quanti bit per registro?: esistono processori a 16, 32, 64 bit Quanti registri? Dipende dal processore Identificati da un numero POSSONO MEMORIZZARE OPERANDI DELLE ISTRUZIONI Costituiscono la memoria a breve termine del calcolatore Informatica e Programmazione Università di Brescia 22

Faremo riferimento ad un esempio di ISA load-store Istruzioni aritmetico-logiche e di manipolazione di bit Lavorano solo su registri Istruzioni di trasferimento Trasferiscono valori da memoria a registri (load) o da registri a memoria (store) Quindi, per elaborare più valori in memoria, il programma dovrà: 1. Trasferire i valori dalla memoria ad opportuni registri (load) 2. Elaborare i valori dei registri con opportune istruzioni aritmetico-logiche 3. Trasferire i valori ottenuti in memoria (store) Informatica e Programmazione Università di Brescia 23

Esempi di istruzioni aritmetiche (prese a riferimento) add $r1, $r3, $r4 # somma il contenuto di $r3 col contenuto # di $r4 e poni il risultato in $r1 sub $r0, $r1, $r2 # sottrai dal contenuto di $r1 il contenuto di # $r2 e poni il risultato in $r0 Stato registri: prima dell esecuzione $r0 $r1 $r2 $r3 $r4 4 3 5 10 2 Informatica e Programmazione Università di Brescia 24

Esempi di istruzioni aritmetiche (prese a riferimento) add $r1, $r3, $r4 # somma il contenuto di $r3 col contenuto # di $r4 e poni il risultato in $r1 sub $r0, $r1, $r2 # sottrai dal contenuto di $r1 il contenuto di # $r2 e poni il risultato in $r0 Stato registri: prima dell esecuzione Stato registri: dopo la prima istruzione $r0 4 $r0 4 $r1 3 $r1 12 $r2 5 $r2 5 $r3 10 $r3 10 $r4 2 $r4 2 Informatica e Programmazione Università di Brescia 25

Esempi di istruzioni aritmetiche (prese a riferimento) add $r1, $r3, $r4 # somma il contenuto di $r3 col contenuto # di $r4 e poni il risultato in $r1 sub $r0, $r1, $r2 # sottrai dal contenuto di $r1 il contenuto di # $r2 e poni il risultato in $r0 Stato registri: prima dell esecuzione Stato registri: dopo la prima istruzione Stato registri: dopo la seconda istruzione $r0 4 $r0 4 $r0 7 $r1 3 $r1 12 $r1 12 $r2 5 $r2 5 $r2 5 $r3 10 $r3 10 $r3 10 $r4 2 $r4 2 $r4 2 Informatica e Programmazione Università di Brescia 26

Esempi di istruzioni di trasferimento Istruzione lw (load word) lw $r1, $r2, 400 significa: carica nel registro $r1 il contenuto della cella di memoria il cui indirizzo si trova sommando 400 al contenuto di $r2 $r0 $r1 $r2 $r3 $r4 Registri 1 0 4 10 2 e il valore 3 viene copiato in $r1 404 + 400 Memoria 5 3 9 5 0 7 6 Informatica e Programmazione Università di Brescia 27

Esempi di istruzioni di trasferimento Istruzione sw (store word) sw $r4, $r2, 400 significa: salva il contenuto del registro $r4 nella cella di memoria il cui indirizzo si trova sommando 400 al contenuto di $r2 $r0 $r1 $r2 $r3 $r4 Registri 1 3 4 10 2 + 400 e il valore 2 viene copiato in M[404] 404 Memoria 5 3 9 5 0 7 6 Informatica e Programmazione Università di Brescia 28

ESERCIZIO PER CASA Scrivere un programma che somma i valori delle due celle di memoria di indirizzo rispettivamente 100 e 200, ponendo il risultato nella cella di memoria di indirizzo 300. Informatica e Programmazione Università di Brescia 29

Istruzioni di controllo Normalmente, le istruzioni sono eseguite dalla CPU in sequenza Talvolta si vuole alterare questo comportamento, soprattutto per poter prendere delle decisioni Istruzioni di salto : - salto incondizionato (jump): salta ad un istruzione - salto condizionato (branch): salta ad una istruzione solo se si verifica una determinata condizione (ad esempio se due registri hanno lo stesso valore) Informatica e Programmazione Università di Brescia 30

Esempi di istruzioni di controllo - Salto incondizionato j (jump) - Salto condizionato beq (branch if equal) e bne (branch if not equal) beq $r3, $r4, L1 add $r0, $r1, $r2 L1: sub $r0, $r0, $r3 r3==r4 no sì r0 r1 + r2 r0 r0 r3 bne $r3, $r4, Allora sub $r0, $r1, $r2 j Esci Allora: add $r0, $r1, $r2 Esci: sì r0 r1 + r2 r3!=r4 no r0 r1 r2 Informatica e Programmazione Università di Brescia 31

Istruzioni di ingresso e uscita (I/O) Permettono trasferimenti tra registri e interfacce I/O Periferia (insieme delle periferiche) sottosistema di ingresso-uscita sottosistema unità centrale-memoria interfaccia di ingresso-uscita interfaccia di ingresso-uscita unità centrale memoria centrale bus di sistema Informatica e Programmazione Università di Brescia 32

ALCUNE DOMANDE NATURALI Da dove vengono i programmi posti in memoria centrale? Cosa succede quando faccio doppio click? Cosa succede quando inserisco dati da tastiera? - I programmi (cfr il caso del doppio click ) sono memorizzati nell hard disk - Hard disk e tastiera sono periferiche - Trasferimento dati hard disk-memoria e tastiera-memoria da parte di un programma contenente istruzioni di ingresso/uscita! Ma quando accendo il calcolatore, cosa succede? Quale programma viene eseguito? Informatica e Programmazione Università di Brescia 33

Memoria RAM e memoria ROM La memoria centrale è divisa in realtà in due parti: - memoria RAM: si può leggere e scrivere, volatile - memoria ROM: memoria a sola lettura, non volatile La memoria ROM include il BIOS (operazioni fondamentali, es. gestione periferiche fondamentali, inizializzazione del calcolatore) Oggi si usano memorie flash: non sono volatili e consentono la lettura e la scrittura (cfr. aggiornamento del BIOS) Elementi di Informatica e Programmazione Università di Brescia 34

ALTRE DOMANDE Indirizzo 0 1 0101011110011001 1101011110011111 0111000000011001 1101011100011101 0110011110011001 0101000111011000 1010011110011001 0101111110000000 0101010010011001 0111000000011001 0101000111011000 0101111110000000 MEMORIA zona della memoria che contiene le istruzioni zona della memoria che contiene i dati (numeri, caratteri, testi, immagini) Istruzioni: come sono codificate? Dati: come sono codificati? Informatica e Programmazione Università di Brescia 35