INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+...

41
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA INFORMATICA B Ingegneria Elettrica L’architettura del calcolatore

Transcript of INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+...

Page 1: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

INFORMATICA  B  Ingegneria  Elettrica  

L’architettura  del  calcolatore  

Page 2: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Hardware  

•  Componenti  fisiche:  circuiti,  schede,  memorie,  periferiche,  stampanti,  monitor...  

2

Page 3: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Software  

•  I  programmi  eseguibili  (istruzioni  e  dati)  che  consentono  all'hardware  di  compiere  determinate  funzioni  

3

Page 4: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

La  macchina  di  Von  Neumann  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

4

Page 5: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Elementi  principali  

•  CPU  o  Unità  di  elaborazione  •  Elabora  dati,  coordina  trasferimento  dei  dati    •  Esegue  i  programmi,  cioè  interpreta  ed  esegue  le  loro  istruzioni    

•  Memoria  Centrale  •  Memorizza  dati  e  programmi  in  esecuzione    •  Capacità  limitata  

–  Volatile  –  Accesso  all’informazione  molto  rapido  

5

Page 6: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Elementi  principali  

•  Memoria  secondaria  o  memoria  di  massa  §  Memorizza  grandi  quantità  di  dati  e  programmi  §  Persistente  §  Accesso  molto  meno  rapido  della  memoria  centrale  

•  Unità  periferiche  (I/O)  §  Comunicazione  con  l’ambiente  esterno  §  Tastiera,  mouse,  video,  altoparlanti,  stampanti  §  L’ambiente  esterno  non  è  sempre  un  utente  umano  (impianti  

industriali,  robot,  strumenti  di  controllo)  

•  Bus  di  sistema  §  Collega  i  componenti  e  consente  scambio  di  dati  

6

Page 7: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Architettura  del  calcolatore  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

7

Page 8: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Le  memorie  di  massa  

•  L’informazione  è  memorizzata  su  supporto  magnetico  (o  ottico  o  altro...)  di  costo  contenuto  

•  Memoria  permanente:  le  informazioni  sono  strutturate  in  file  gestiti  dal  sistema  operativo  

•  Tipi  di  memorie  di  massa:  §  Dischi  rigidi:  tempi  di  accesso  dell’ordine  della  decina  di  millisecondi;  

DIMENSIONE:  Terabyte  §  Dischi  stato  solido  (SSD):  tempi  d’accesso  ridotti  0.1  millisecondi;  

DIMENSIONI:  centinaia  di  Megabyte  §  Nastri  e  Cartucce:  per  memorizzare  informazioni  “storiche”  (back-­‐up)  §  Chiavette  USB:  basate  su  memorie  flash  (2-­‐64  GB)    §  CD-­‐ROM  e  DVD-­‐ROM:  sola  lettura  

8

Page 9: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Struttura  dei  dischi  rigidi  (HardDisk)  

•  Struttura:  §  Il  disco  è  composto  da  una  serie  di  piatti  ricoperti  da  una  pellicola  

magnetica  §  Ogni  piatto  ha  due  superfici  su  cui  vengono  memorizzati  i  dati  §  Ogni  superficie  è  organizzata  in  cerchi  concentrici  detti  tracce  §  Le  tracce  sono  divise  in  spicchi  di  grandezza  uguale  detti  settori  ciascuno  

dei  quali  memorizza  una  data  quantità  di  informazioni  §  Le  operazioni  di  lettura  e  scrittura  vengono  effettuate  tramite  le  testine  §  Il  controller  è  un  componente  elettromeccanico  che  esegue  le  operazioni  

di  lettura  e  scrittura    

contro

ller  

9

Page 10: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Architettura  del  calcolatore  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

10

Page 11: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

La  memoria  centrale  

•  Contiene  le  istruzioni  e  i  dati  su  cui  la  CPU  può  operare  §  Contiene,  cioè,  sia  i  dati  che  i  programmi  §  Tutta  l’informazione,  per  poter  essere  elaborata,  deve  passare  dalla  

memoria  centrale  (e  successivamente  caricata  in  uno  dei  registri  della  CPU)  

•  Rispetto  alla  memoria  di  massa  §  Memoria  a  breve-­‐medio  periodo  §  Volatile  

11

Page 12: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

•  Dimensioni  ridotte  §  Ordine  dei  GigaByte  

•  Tempi  di  accesso  §  ordine  delle  decine  di  nanosecondi  

•  circa  centinaia  di  migliaia    di  volte  più  veloce  delle  memorie  di  massa  

•  È  un  insieme  ordinato  di  parole  (celle)  §  Una  parola  =  n  elementi  di  memoria  binari  (8,  16,  32,  64  bit)  §  La  posizione  di  ogni  parola  è  identificata  da  un  indirizzo  

•  La  capacità  di  indirizzamento  in  memoria  è  definita  dalle  dimensioni  del  bus  indirizzi  e  del  registro  indirizzi  

La  memoria  centrale  

12

Page 13: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

RAM  e  ROM  

•  RAM:  Random  Access  Memory  §  Le  celle  sono  indirizzabili  in  un  ordine  qualunque  (accesso  random  =  

diretto)  §  Il  tempo  di  accesso  non  dipende  dalla  cella  

•  ROM:  Read-­‐Only  Memory  §  Per  programmi  protetti  e  definiti  dal  costruttore  

•  Il  BIOS  (Basic  I/O  System)  che  carica  in  memoria  il  sistema  operativo  quando  la  macchina  viene  accesa  

§  Esistono  di  diversi  tipi    •  “Erasable”,  “Programmable”,  (EPROM)  •  Memorie  flash  (evoluzione  delle  EPROM)  •  Una  via  intermedia  tra  Hardware  e  Software  (Firmware)  

13

Page 14: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Tecnologie  di  memoria  centrale  

•  La  memoria  RAM  §  È  realizzata  mediante  circuiti  a  transistori  §  È  modificabile  (leggibile  e  scrivibile)  ma  deve  essere  continuamente  

alimentata  per  mantenere  le  informazioni  (volatile)  §  All’accensione  il  suo  contenuto  è  una  sequenza  casuale  di  0  e  1  

•  La  memoria  ROM  §  È  solo  leggibile:  le  informazioni  sono  di  solito  scritte  in  modo  

permanente  dal  costruttore  §  È  caricata  al  momento  della  produzione  del  calcolatore  §  Vi  si  accede  ogni  qualvolta  questo  viene  acceso  §  Contiene  il    bootstrap,  un  programma  contenente  le  prime  istruzioni  

che  la  CPU  deve  eseguire  

14

Page 15: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Indirizzamento  della  memoria  centrale  

•  Esiste  un  registro  (registro  indirizzi  -­‐  AR)  della  CPU  per  indirizzare  la  memoria  

•  Registro  di  k  bit:  può  indirizzare  2k  celle  §  Con  10  bit  indirizzo  1.024  celle  

•  1  “kilo-­‐parole”  §  Con  20  bit,  1.048.576  parole  

•  1  “mega”  parole  §  30(giga),  40(tera),  50(peta)  

Celle - hanno un indirizzo - contengono parole

15

Page 16: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Registro Indirizzi (AR)

Registro Dati (DR)

h =16 bit

cella selezionata

k = 12 bit h = 16 bit

Esempio di RAM da 8 KByte

4.096 parole

000100110010

1001011001010010

1001011001010010

0

562

4.095

indirizzi delle celle

Indirizzamento  della  memoria  centrale  

16

Page 17: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Architettura  del  calcolatore  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

17

Page 18: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

La  CPU  

18

Page 19: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

La  CPU  

•  Contiene  gli  elementi  circuitali  che  regolano  il  funzionamento  del  calcolatore:    §  L’unità  di  controllo  è  responsabile  della  decodifica  e  dell’esecuzione  delle  

istruzioni.  È  la  parte  che  “dirige”  l’esecuzione  di  tutte  le  altre  parti  §  L’orologio  di  sistema  (clock)  permette  di  sincronizzare    le  operazioni  

temporizzando  il  funzionamento  del  calcolatore  §  L’unità  aritmetico-­‐logica  (ALU)  realizza  le  operazioni  aritmetiche  e  logiche  

eventualmente  richieste  per  l’esecuzione  dell’istruzione.  È  priva  di  facoltà  di  scelta  

§  I  registri  sono  piccole  memorie  velocemente  accessibili,  utilizzate  per  memorizzare  risultati  parziali  o  informazioni  necessarie  al  controllo.  L’insieme  dei  valori  contenuti  nell'insieme  di  tutti  i  registri  in  un  dato  istante  dell’elaborazione  viene  chiamato  contesto  

19

Page 20: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

La  CPU  

•  I  registri  della  CPU:    §  Registro  contatore  di  programma  (PC)  contiene  l’indirizzo  di  memoria  della  

prossima  istruzione  da  eseguire  §  Registro  istruzione  corrente  (CIR)  contiene  l’istruzione  correntemente  in  

esecuzione  §  Registri  operandi  (A,  B)  contiene  gli  operando  su  cui  eseguire  la  prossima  

operazione  con  la  ALU  §  Registri  di  lavoro  contengono  i  dati  utilizzati  di  frequente  nelle  operazioni  o  

risultati  intermedi  (in  genere  i  registri  operandi  e  i  registri  di  lavoro  sono  stati  uniti  in  un’unica  struttura  contenente  una  serie  di  registri  chiamato  banco  di  registri)  

§  Registro  di  stato  (SR)  contiene  alcune  informazioni  sull’esecuzione  dell’ultima  operazione  della  ALU  (bit  di  overflow,  bit  di  segno,  bit  zero)  

§  Registro  indirizzi  (AR)  contiene  un  indirizzo  di  memoria  in  cui  fare  un’operazione  di  lettura/scrittura  

§  Registro  dati  (DR)  contiene  un  dato  da  trasferire  alla  memoria  o  ricevuto  dalla  memoria  

§  Registro  interruzioni  (INTR)  contiene  informazioni  sullo  stato  di  funzionamento  delle  periferiche  

§  Registro  stack  pointer  (SP)  indica  l’indirizzo  di  memoria  in  cima  alla  stack  del  programma  in  esecuzione  

20

Page 21: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Formato  delle  istruzioni  in  linguaggio  macchina  

•  Costituite  (ovviamente)  da  sequenze  di  0  e  1  §  Campo  codice  operativo  (obbligatorio)  specifica  l’operazione  da  

eseguire  §  Campo  operandi  (facoltativo)  indica  i  dati  da  utilizzare  (gli  operandi  

possono  essere  uno  o  due)  •  Può  contenere  direttamente  il  valore  o  l’indirizzo  della  cella  che  contiene  

il  valore  (riferimento  a  una  variabile)  §  FORMATO  ISTRUZIONE:  

Cod. operativo Operandi

21

Page 22: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Formato  delle  istruzioni  in  linguaggio  macchina  

•  Istruzioni  di  elaborazione  dei  dati  §  Eseguono  un’operazione  aritmetico/logica/relazionale  su  due  dati  

specificati  in  due  registri  (in  genere  A  e  B)  o  in  un  registro  ed  una  costante  e  salvano  il  risultato  in  un  registro  (A)  

•  Istruzioni  di  trasferimento  dei  dati  §  Eseguono  un’operazione  di  trasferimento  di  un  dato  da  un  registro  di  

lavoro  alla  memoria  o  viceversa  

•  Istruzioni  di  salto  (modifica  del  flusso  di  controllo)  §  Valutano  una  condizione  semplice  (in  genere  confrontano  il  

contenuto  di  un  registro  con  il  valore  0)  e  se  la  condizione  risulta  vera  modificano  il  contenuto  del  registro  PC  con  un  valore  contenuto  in  un  altro  registro  o  specificato  nell’istruzione  stessa  

22

Page 23: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Fasi  del  Ciclo  di  CPU  

•  La  CPU  esegue  ciclicamente  tre  fasi  §  Durante  una  fase  viene  eseguita  un’istruzione  

•  Prelievo  (o  Fetch):  §  Contenuto  di  registro  PC  trasferito  in  registro  AR  §  Lettura  da  memoria  centrale  trasferito  in  registro  DR  §  Contenuto  del  registro  DR  trasferito  in  registro  CIR  §  Incremento  del  contenuto  di  registro  PC  

•  Decodifica:  interpretazione  codice  operativo  •  Esecuzione:  attivazione  esecuzione  pertinente  all’operazione  

§  Dipendono  dal  tipo  di  istruzione  

23

Page 24: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Fasi  del  Ciclo  di  CPU  

•  Esecuzione  delle  istruzioni  di  elaborazione  §  Il  contenuto  di  due  registri  (A  e  B  o  anche  un  registro  di  lavoro)  viene  inviato  alla  ALU  §  L’ALU  esegue  l’operazione  §  Il  risultato  viene  salvato  in  un  registro  di  lavoro  (A  o  B  o  un  altro  registro  di  lavoro)  

•  Esecuzione  delle  istruzioni  di  scrittura  in  memoria  §  Il  contenuto  di  un  registro  di  lavoro  viene  trasferito  al  registro  DR  §  L’indirizzo  viene  trasferito  nel  registro  AR  §  Viene  richiesta  l’operazione  di  scrittura  

•  Esecuzione  delle  istruzioni  di  lettura  da  memoria  §  L’indirizzo  viene  trasferito  nel  registro  AR  §  Viene  richiesta  l’operazione  di  lettura  §  Il  contenuto  del  registro  DR  viene  trasferito  in  un  registro  di  lavoro  

•  Esecuzione  delle  istruzioni  di  salto  §  Il  contenuto  di  un  registro  viene  inviato  alla  ALU  §  La  ALU  valuta  la  condizione  (e.g.  valore  del  registro  ==  0  ?)  §  Se  il  risultato  è  vero  (si  controlla  il  registro  di  stato),  il  contenuto  del  registro  PC  viene  

modificato  copiandoci  il  contenuto  di  un  altro  registro  di  lavoro  o  una  costante    specificata  nell’istruzione  

24

Page 25: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

•  Esempio  di  codice  C:   scanf(“%d”,&a);

scanf(“%d”,&b); scanf(“%d”,&c);

scanf(“%d”,&d);

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

printf(“%d”,z);

25

Page 26: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

•  Codice  macchina  risultante:  

26

0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a) 0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b) 0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c) 0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d) 0000000000010000 Carica il contenuto della cella 16 (a) nel registro A 0001000000010001 Carica il contenuto della cella 17 (b) nel registro B 0110000000000000 Somma i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale) 0000000000010010 Carica il contenito della cella 18 (c) nel registro A 0001000000010011 Carica il contenito della cella 19 (d) nel registro B 0110000000000000 Somma i registri A e B 0001000000010011 Carica il contenuto della cella 20 (z) (ris. parziale) in B 1000000000000000 Moltiplica i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale) 0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) in output 1101000000000000 Halt

Page 27: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

27

0100000000010000 0100000000010001 0100000000010010 0100000000010011 0000000000010000 0001000000010001 0110000000000000 0010000000010100 0000000000010010 0001000000010011 0110000000000000 0001000000010011 1000000000000000 0010000000010100 0101000000010100 1101000000000000

Cella 0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Spazio riservato per a 16 Spazio riservato per b 17 Spazio riservato per c 18 Spazio riservato per d 19 Spazio riservato per z 20

•  Organizzazione  dei  dati  in  memoria:  

Page 28: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

•  Fetch  della  prima  istruzione:  

28

0000000000 PC

AR

0100000000010000

Memoria centrale (MM)

0

DR

1023

CIR

0000000000

0100000000010000

0100000000010000

Passo 1 Passo 2

Passo 3

Passo 4 Il valore di PC viene incrementato

0000000001

Page 29: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

•  Decode  della  prima  istruzione:  

29

0100000000010000 CIR

Codice operativo 0100 = leggi da input

Page 30: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Esempio  di  esecuzione  di  un  programma  

•  Execute  della  prima  istruzione:  

30

AR

Memoria centrale (MM)

0

DR

1023

0001000000011111 PDR

0100000000010000 CIR 16

Valore di a letto dall’input (es. 4127)

Indirizzo operando 00000010000 = cella 16

0000010000

0001000000011111

0001000000011111

Passo 1

Passo 2

Passo 3

Page 31: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Architettura  del  calcolatore  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

31

Page 32: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Il  bus  di  sistema  

•  Insieme  di  connettori  (conduttori  elettrici)  che  trasportano  bit  di  informazioni  collegando  fra  di  loro  l’unità  di  elaborazione,  la  memoria  e  le  varie  interfacce  di  ingresso/uscita    

•  I  trasferimenti  sono  gestiti  dalla  CPU  (modalità  master/slave)  e  si  chiamano  cicli  del  bus,  che  con  la  sua  capacità  ne  determina  la  velocità    

32

Page 33: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Componenti  del  bus  di  sistema  

•  Bus  Dati  §  Trasferisce  dati  da  master  a  slave  e  viceversa  

•  Bus  Indirizzi  §  Trasferisce  indirizzi,  per  esempio  l’indirizzo  di  un  dato  dal  registro  

indirizzi  alla  memoria,  per  accedere  al  dato  stesso  

•  Bus  di  Controllo  §  Read/Write  §  Errore  §  Richiesta  e  risposta  (lavoro  eseguito)  §  Memoria  o  I/O      

33

Page 34: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Componenti  del  bus  di  sistema  

34

Registro istruzione corrente (CIR)

Registro dati (DR) Registro indirizzi

(AR)

Registro contatore di programma (PC)

Registro di stato (SR)

Registro interruzioni (INTR)

A

B

Unità di controllo (CU)

Clock

Unità aritmetico logica (ALU)

CPU

Bus di sistema

Page 35: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Operazioni  di  trasferimento  sul  bus  

• Operazione  di  lettura  da  memoria  centrale  (LOAD):  1.  la  CPU  carica  l’indirizzo  della  parola  di  memoria  nel  registro  AR  e  lo  

trasmette  alla  memoria  via  bus  indirizzi  2.  la  CPU  invia  il  comando  di  Read  Memory  sul  bus  di  controllo  3.  la  memoria  trasmette  sul  bus  dati  il  contenuto  della  parola  verso  il  

registro  DR  4.  la  memoria  segnala  al  processore  sul  bus  di  controllo  che  l’operazione  

è  stata  completata  con  successo:  il  dato  si  trova  nel  registro  dati  

35

Page 36: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Operazioni  di  trasferimento  sul  bus  

36

CIR

DR AR

PC SR

INTR A

B

CU Ck

ALU

0

1023

123 42 123

123

Passo 1

READ

Passo 2

42

Passo 3

OK

Passo 4

Page 37: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Operazioni  di  trasferimento  sul  bus  

• Operazione  di  scrittura  in  memoria  centrale  (STORE):  1.  la  CPU  carica  indirizzo  della  parola  di  memoria  dove  si  vuole  scrivere  

nel  registro  AR  e  lo  trasmette  alla  memoria  via  bus  indirizzi  2.  la  CPU  carica  nel  registro  DR  la  parola  da  scrivere  in  memoria  3.  la  CPU  invia  il  comando  di  Write  Memory  sul  bus  di  controllo  4.  la  CPU  trasmette  sul  bus  dati  il  contenuto  del  registro  DR  verso  

l’indirizzo  di  memoria  segnalato  5.  la  memoria  segnala  al  processore  sul  bus  di  controllo  che  l’operazione  

è  stata  completata  con  successo:  il  dato  si  trova  nella  parola  di  memoria  destinazione  

37

Page 38: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Operazioni  di  trasferimento  sul  bus  

38

CIR

DR AR

PC SR

INTR A

B

CU Ck

ALU

0

1023

123 42 123

123

Passo 1

WRITE

Passo 3

OK

Passo 5

70

Passo 2

70

Passo 4

Page 39: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Architettura  del  calcolatore  

RAM MEMORIA

CENTRALE

BUS INDIRIZZI BUS DATI BUS DI CONTROLLO

INTERFACCE UNITA’

PERIFERICHE

CPU

MM OUTPUT INPUT INPUT

39

Page 40: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Interfacce  di  I/O  

•  Consentono  il  collegamento  tra  elaboratore  e  periferiche  •  Possono  essere  dispositivi  elettromeccanici  •  Contengono  registri  accessibili  dalla  CPU  per    

§  Inviare  comandi  alla  periferica    •  Registro  comandi  periferica  (PCR)  –  collegato  al  bus  di  controllo  

§  Scambiare  dati  •  Registro  dati  della  periferica  (PDR)  –    

collegato  al  bus  dati  

§  Controllare  il  funzionamento  della  periferica  •  Registro  stato  periferica  (PSR)  –  pronto,    

occupato,  errore,  ...  

40

Bus di sistema

Peripheral Data Register (PDR)

Peripheral Command Register (PCR)

Peripheral State Register (PSR)

Interfaccia periferica 1

Page 41: INFORMATICAB Ingegneria+Elettrica+ · DIPARTIMENTO+DI+ELETTRONICA,INFORMAZIONE+E+BIOINGEGNERIA+ INFORMATICAB Ingegneria+Elettrica+ L’architettura+del+calcolatore+

DIPARTIMENTO  DI  ELETTRONICA,  INFORMAZIONE  E  BIOINGEGNERIA  

Il  sistema  operativo  

•  Il  sistema  operativo  è  un  programma  che  viene  utilizzato  per  far  fronte  alla  complessità  della  gestione  del  calcolatore  

•  Obiettivi:  §  Gestione  delle  risorse    §  Fornire  una  visione  di  macchina  semplificata  ed  estesa  ad  i  programmi  in  

esecuzione  

•  Macchina  semplificata:  fornisce  ai  programmi  una  serie  di  funzioni  di  alto  livello  per  interagire  con  il  calcolatore  

•  Macchina  estesa:  mostra  al  programma  una  macchina  con  maggiori  risorse  rispetto  a  quelle  reali  

•  Funzioni:  §  Gestione  dei  processi:  gestisce  più  programmi  in  esecuzione  

contemporaneamente  §  Gestione  della  memoria:  gestisce  la  memoria  principale  che  viene  utilizzata  dai  

programmi  in  esecuzione  §  Gestione  dei  dispositivi:  fornisce  un’interfaccia  semplificata  (basata  su  driver)  per  

l’utilizzo  delle  periferiche  §  Gestione  del  file  system:  organizza  in  modo  strutturato  le  informazioni  sulla  

memoria  di  massa  

41