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 ritrasformato in analogico, tramite un convertitore D/A riottenendo il segnale di partenza. Teorema: la frequenza di campionamento di un segnale deve essere f c 2 f max dove fmax rappresenta la frequenza massima contenuta nel segnale, ed è anche conosciuta come frequenza di Nyquist, mentre fc è la frequenza di campionamento. Analogico: segnale continuo nel tempo Digitale: segnale discreto nel tempo costituito da 0 e 1 2 Il campionamento è un passo del processo di conversione analogico digitale di un segnale. Consiste nel prelievo di campioni (samples) da un segnale analogico e continuo nel tempo ogni Dt secondi. Dt è l'intervallo di campionamento, mentre Dt= 1/Fs è la frequenza di campionamento. Il risultato è un segnale analogico in tempo discreto. Tale segnale sarà in seguito quantizzato, codificato e quindi reso accessibile a qualsiasi elaboratore digitale. Segnale Analogico Segnale Campionato 3 Architettura dei Computer In un Computer la circuiteria che esegue operazione sui dati è denominata CPU (Central Process Unit) o più semplicemente processore. L’architettura che si utilizza ancora oggi come schema è quella di Von Neumann (1945) progettista e inventore del primo calcolatore ad utilizzare la memoria al posto di cavi elettrici Unità di Input CPU Memoria Principale Unità di Output Architettura dei Computer In quest'immagine di una scheda madre si notano a destra il Socket della CPU, allogio della RAM e sparsi qua e là alcuni condensatori elettrolitici, transistor, resistenze, e slot PCI Memorie RAM. Dall'alto: DIP, SIPP, SIMM (30 pin), SIMM (72 pin), DIMM (168 pin), DDR DIMM (184 pin) Architettura dei Computer • Una memoria centrale, supporto in grado di registrare le singole istruzioni di un programma e i dati sui quali operare. • Una unità centrale di elaborazione, insieme di circuiti elettronici, in grado di effettuare le operazioni richieste dal programma e di prendere decisioni sulla base dei risultati ottenuti; l'unità centrale di elaborazione deve, inoltre,provvedere alle operazioni di trasferimento tra la memoria centrale e le unità periferiche, governando lo smistamento dei dati di ingresso e uscita dalla memoria centrale. • Le unità periferiche, di input e di output, unità in grado di svolgere funzioni di comunicazione tra l'ambiente esterno e l'elaboratore, come l'inserimento nel sistema del programma e dei dati e l'uscita dei risultati. Architettura dei Computer La CPU è suddivisa in due grandi unità, ALU, CU ALU: esegue l’elaborazione dei dati: somma, sottrazione,etc INPUT ALU Unità aritmetico logica OUTPUT CU: contiene i circuiti necessari per coordinare le attività della macchina. memoria Unità di controllo bus Architettura dei Computer Per la memorizzazione temporanea delle informazioni, la CPU contiene delle cellette di memorie dette registri che svolgono dei compiti particolari Il trasferimento dei dati avviene tramite dei collegamenti detti bus Vediamo come una semplice operazione di addizione viene svolta : 1) Prendi dalla memoria uno dei valori e ponilo nel registro 1 2) Prendi dalla memoria il secondo valore e ponilo nel registro 2 3) Attiva la ALU e addiziona i numeri 4) Trasferisci ad un altro registro il risultato 5) Stop Architettura dei Computer Unità di controllo ALU Unità aritmetico logica Contatore di Programma Registro della Istruzioni Un Computer esegue un programma caricato nella sua memoria copiando le istruzioni nella Unità di controllo Una volta nell’unità di controllo, ogni istruzione è poi decodificata ed eseguita nell’ordine esatto con cui sono prelevate dalla memoria Architettura dei Computer Durante la fase di reperimento l’unità di controllo richiede che la memoria principale fornisca l’istruzione memorizzata all’indirizzo indicato nel contatore di programma. L’Unità di controllo pone l’istruzione ricevuta nel registro delle istruzioni, e poi incrementa il contatore di programma di una unità. L’Unità di controllo decodifica l’istruzione ed attiva la circuiteria adeguata alla esecuzione dell’istruzione stessa. Unità di controllo A0 Memoria principale Ind. A0 156C PC A1 156C IR An Architettura dei Computer Due registri Speciali: Program Counter: Esso contiene l’indirizzo dell’istruzione successiva che deve essere eseguita, e quindi serve al computer per tenere traccia della posizione in cui si trova nel programma Instruction Register: Esso contiene l’istruzione da eseguire Fetch: reperimento decode: decodifica L’Unità di controllo svolge il suo compito ripetendo continuamente il ciclo macchina: un processo a tre fasi. execute: esegue Ciclo-Fetch-Decode-Execute 1. Prendi istruzione corrente e mettila nel registro istruzioni IR (fetch) 2. Incrementa il Program Counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva 3. Determina il tipo di istruzione da eseguire (decode) 4. Se l’istruzione necessita di un dato in memoria, determina dove si trova e caricalo in un registro della CPU 5. Esegui l’istruzione (execute) 6. Torna al punto 1 e opera sull’istruzione successiva Architettura dei Computer Le attività della macchina vengono controllate da un circuito (clock) chiamato anche oscillatore, che genera impulsi usati per coordinare l’attività della macchina: Più velocemente il circuito oscillante genera impulsi, più rapidamente il computer esegue il suo ciclo macchina. Tale frequenza è misurata in Hz (GHz) La comunicazione tra un computer principale ed altri dispositivi I/O sono gestiti tramite il controller. Tali dispositivi sono dei piccoli computer che coordinano le attività tra CPU centrale e dispositivo hardware esterno. CPU Mon. DVD Print Cont Cont Cont Memoria Architettura dei Computer L’insieme delle istruzioni che una CPU deve saper eseguire è molto limitato Esempio di istruzioni macchina della CPU sono STORE, AND, JUMP, POP, PUSH, SHIFT. CPU tipo RISC (Reduced Instruction Set Computer G4 e G5 della Apple CPU tipo CISC (Complex Instruction Set Computer Processori Pentium Parallelismo La frequenza di clock, influenza direttamente il tempo di ciclo e quindi le prestazioni di un computer Pertanto è limitata alla tecnologia esistente Il parallelismo permette di migliorare le prestazioni di una macchina senza modificare la frequenza di clock. Due tipi di parallelismo: 1.Parallelismo delle istruzioni (nella programmazione) 2.Parallelismo del processore Start diagramma di Flusso Eq. 2° Grado Inserisci a,b,c ax2+bx+c=0 D=b2-4ac D >=0 si no D=0 x1=(-b+i sqrt(-D))/2a x2=(-b-i sqrt(-D))/2a no x1=(-b+sqrt(D))/2a x2=(-b-sqrt(D))/2a Stampa x1,x2 End si x1=x2= -b/2a