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 ed occupava un laboratorio lungo oltre 30 metri...! Lo schema di Von Neumann per un elaboratore vale ancora oggi per la maggior dei computer e di molti dispositivi elettronici ed anche robot Uno schema alternativo è quello di Harvard : spesso usato dai microcontrollori industriali ( ad es. Arduino) dove dati e programmi stanno in memorie diverse. Nello schema di Von Neumann abbiamo 4 elementi principali: 1) CPU 2) RAM memory ( contiene dati e programmi) 3) SYSTEM BUS 4) DISPOSITIVI di INPUT / OUTPUT 1
2. CPU CPU = CENTRAL PROCESSING UNIT = Unità centrale di elaborazione E' costituita da : - ALU Arithmetic Logic Unit = Unità Logico Aritmetica: ch effettua operazioni logiche ed aritmetiche - CU Control Unit = Unità di Controllo: che coordina e controlla le operazioni della CPU - Registri Sono piccole memorie velocissime - Cache Memoria velocissima; ( NON prevista da Von Neumann ) - Clock circuito che è l'"orologio" del sistema 3. per approfondire: i Registri Nella CPU vi sono diversi registri ( piccole memorie veloci) ed a seconda dei modelli cambiano nome, ma le funzioni sono più o meno le stesse. Per semplicità vediamone solo alcuni: Registro INDIRIZZI AR = Address register contiene l'indirizzo di memoria cui si deve accedere in Lettura o scrittura Registro DATI DR = Data register contiene i dati: letti dalla memoria o da scrivere nella stessa memoria Registro ISTRUZIONE IR = Instruction register contiene l'istruzione corrente prelevata dalla memoria e che deve essere decodificata dalla CU ed eseguita dalla ALU Registro Contatore Programma PC = Program Counter Contiene indirizzo della prossima istruzione da prelevare dalla memoria Registro Accumulatore ACC= registro nella ALU per fare calcoli Nota: ci sono dei registri. anche a servizio di: - Memoria Principale - Interfacce di I/O 2
4. MEMORIA PRINCIPALE ( RAM ) RAM = Random Access Memory, la RAM è la memoria dove stanno sia DATI che i PROGRAMMI. la possiamo vedere come una tabella di n righe numerate da 0 a n-1. Le "righe" possono essere lunghe: 1 byte ( 8 bit ), 2 byte ( 16 bit), 4 byte ( 32 bit), 8 byte ( 64 bit ),.. Il numero è detto INDIRIZZO di memoria. A seconda si quanto è lungo l'indirizzo posso "vedere" ( indirizzare) più righe di memoria e quindi usare una memoria RAM + capace. Il tempo di accesso ad una cella di memoria non dipende dall'indirizzo della cella stessa. 5. PERIFERICHE ( DISPOSITIVI di Ingresso Uscita ) Le periferiche sono dette anche dispositivi di INPUT / OUTPUT ovvero di Ingresso / Uscita - Input tastiera, mouse, trackball, microfono, scanner, webcam,.sensori - Output video, stampante, plotter, casse,.., ATTUATORI - I /O schermo touch, USB, stampante-scanner,... Quanto sopra in robotica diventa: - Input SENSORI: tastiera, interruttori, fotoresistenza, sensore temperatura, vibrazioni, voice recognizer... - Output ATTUATORI : Speaker, Led, motori,... Gradi di libertà nel caso di un robot o macchina automatica vuol dire quanti snodi controllati ( da motori) possiede. 3
6. BUS di SISTEMA Il BUS di Sistema è controllato dalla CPU e connette i vari componenti di cui sopra. Possiamo per ora vederlo come composto da 3 bus: - bus di controllo: invia / riceve i segnali di controllo tra la CU e Memoria o Periferiche - bus indirizzi : invia indirizzo di memoria dalla CU invia indirizzo di memoria alla memoria RAM, per leggere o scrivere un dato a quell'indirizzo - bus dati invia e riceve DATI ed ISTRUZIONI ( parti di programma) -da CPU a RAM e viceversa -da CPU / RAM a PERIFERICHE e viceversa 7. Per approfondire: Ciclo di Fetch & Execute Una macchina secondo il modello di Von Neumann ripete in modo sequenziale il seguente ciclo detto di Fetch ( preleva ) ed Execute ( esegui): 1) Fetch: si acquisisce l'istruzione all'indirizzo di memoria presente in PC; ( AR = PC), e tramite il bus dati questa arriva nel registro IR. PC è incrementato di 1. 2) Decode: l'istruzione presente in IR viene decodificata dalla CU che provvede a richiedere i vari calcoli e/o trasferimenti 3) Execute: viene eseguita l'istruzione comandata dalla CU, per mezzo della ALU e/o dei device di I/O e/o della memoria RAM. 4
8. Per approfondire: Bus e Chipset Sulle schede madre oltre alla CPU esiste un circuito detto chipset. Il chipset contiene due processori ( northbridge e southbridge) che gestiscono le funzioni di comunicazione nella maggior parte delle schede madri per PC ( di solito sono riuniti in un solo chip). Questi controllano e sincronizzano il traffico tra CPU, Memoria e periferiche. I data bus in effetti sono più di uno: d istinti in base alla loro velocità, per separare il traffico + lento da quello + veloce. -FSB bus -BSB bus: -PCI bus: tra CPU e dispositivi veloci tra CPU e Cache per schede rete, video-suono, hard disk 8.1 Northbridge ( Memory Controller hub) Il chip northbridge ( vicino alla CPU e con dissipatore passivo di calore) gestisce l'interazione tra: - CPU. memoria principale - cache verso la RAM ( livello 2-3 ), a mezzo del BSB: ( Back Side Bus) - schede video veloci: Accelerated Graphics Port (AGP) o PCI Express - bus PCI in altre parole i componenti che traggono il massimo vantaggio da una rapida comunicazione con il processore. 5
Northbridge usa il bus FSB (Front Side Bus), per connettere i vari componenti. 8.2 Southbridge ( I/O Controller hub) Il southbridge ( senza dissipatore di calore) collegato al northbridge dal bus PCI, gestisce forme più semplici di I/O, quali : - mouse, tastiera, scanner, le porte seriali (RS232) -audio - USB - IDE ( Hard Disk, CD. ROM,..) Northbridge e Southbridge aumentano in modo moltissimo la velocità dei computer. Sono utilizzati dai chipset VIA e AMD, Intel, e quindi si trovano in quasi tutti i computer moderni. La combinazione northbridge-southbridge rappresenta l'architettura di base minima dei computer recenti, ed è difficile trovarne uno che non ne faccia uso. L'eccezione è data dai computer che utilizzano la nuova architettura Intel Hub Architecture ( IHA ) che utilizza due chip, chiamati controller hub, per la gestione delle comunicazioni tra il processore e gli altri componenti di sistema, Tuttavia oggi si tende a realizzare all'interno delle CPU le funzioni del chipset, e di fatto verrà superato il concetto di North e South bridge 6