Architettura di Von Neumann Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 A cura di Prò Giuseppe MODELLO DI VON NEUMANN Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 PROCESSORE (CPU) Componente dell’elaboratore che consente l’esecuzione delle istruzioni E’ costituito da: Unità di calcolo o ALU Unità di controllo o CU Registri Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 CPU La CPU (Central Processing Unit) , detta anche processore è l’unità più importante del sistema di elaborazione, che svolge le principali operazioni di calcolo e di controllo del sistema.In un personal computer la CPU è collocata su un singolo chip di silicio e viene chiamata microprocessore. Interpreta ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione (Von Neumann Machine cycle) …ma l’istruzione corrente può variare tale sequenza.. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 CICLO DI ISTRUZIONE FETCH DECODE EXECUTE Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 REGISTRI Sono piccole memorie ad altissima velocità presenti all’interno del processore. Contengono informazioni locali legate all’istruzione in corso d’esecuzione L’insieme dei registri costituisce lo stato della CPU Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 REGISTRI DELLA CPU La CPU contiene un numero limitato di registri operazionali e alcuni registri dedicati. PC (Program Counter) IR (Instruction Register) MAR (Memory Address Register) MDR (Memory Data Register) PSW (Program Status Word) Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 UNITA’ DI CONTROLLO Compito fondamentale dell’unità di controllo è quello di generare e controllare la sequenza di operazioni necessarie per effettuare ogni ciclo di istruzione, è cioè responsabile del trasferimento e della decodifica delle istruzioni dalla memoria centrale ai registri della CPU . Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 UNITA’ DI CONTROLLO CABLATA • Unità di controllo cablata, realizzata cioè in hardware mediante dispositivi logici in grado di generare la sequenza di segnali di controllo necessari per prelevare ed eseguire ogni istruzione in linguaggio macchina. Ad esempio le macchine RISC (Reduced Instruction Set Computer) macchine con unità di controllo cablata, ossia con HSA implementata dal solo livello hardware Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 UNITA’ DI CONTROLLO MICROPROGRAMMATA Unità di controllo microprogrammata: in grado di interpretare micro-istruzioni per l ’esecuzione delle operazioni del ciclo di istruzione. Ad esempio le macchine CISC (Complex Instruction Set Computer) macchine con unità di controllo microprogrammata, ossia con HSA implementata dal livello hardware e dal livello di microprogrammazione. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 UNA PRIMA CLASSIFICAZIONE Architetture CISC (Complex Instruction Set Computer) Prevedono accanto a istruzioni semplici anche istruzioni complesse , la cui esecuzione richiede l’utilizzo di una complessa unità di controllo (microprogrammata) Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 UNA PRIMA CLASSIFICAZIONE Architetture RISC (Reduced Instruction Set Computer) Riducono al minimo indispensabile il numero di istruzioni disponibili e supportano istruzioni semplici che possono essere eseguite velocemente mediante un unità di controllo molto semplice(cablata), senza essere interpretate da microprogrammi. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 CISC E RISC – CONCETTI CHIAVE CISC RISC Enfasi sull’HW Enfasi sul SW Istruzioni complesse multi- Istruzioni semplificate single- clock Memory-to-Memory (LOAD e STORE incorporati nelle istruzioni) Dimensioni del codice ridotte Componenti HW usati per gestire istruzioni complesse clock Register-to-Register (LOAD e STORE sono istruzioni indipendenti) Grandi dimensioni del codice Componenti HW usati per realizzare registri Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 ALU (ARITHMETIC LOGIC UNIT) Esegue le operazioni elementari necessarie per l’esecuzione delle istruzioni (operazioni aritmetiche e confronti sui dati della memoria centrale o dei registri): È costituita da una rete logica combinatoria programmabile capace di operare parallelamente su un determinato numero di bit, da un registro di scorrimento e da un registro di flag(PSW) che contiene alcune informazioni logiche sul risultato delle operazioni. Per la memorizzazione dei dati in ingresso e dei risultati l’ALU utilizza alcuni registri operativi( uno di questi l’accumulatore) Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 IL BUS Esso deve : Permettere la comunicazione tra due qualsiasi dispositivi o unità Permettere una sola comunicazione alla volta Permettere la trasmissione di una unità alla volta e la ricezione di più unità contemporaneamente Linee di controllo sufficientemente generali Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 COMPONENTI DEL BUS Bus indirizzi Bus di controllo Bus dati Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 TIPI DI BUS Bus Interno (o locale) Bus Esterno(o di sistema) Bus interno espanso Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 LE MEMORIE Dispositivi per memorizzare le strutture logiche di Informazione Memorie di massa(non volatili) Memoria centrale(volatile) Registri(volatili) Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 PARAMETRI MEMORIE Capacità; numero di locazioni disponibili ,espresso in Gbyte, Mbyte ecc.. Tempo di accesso: tempo necessario per accedere a una locazione di memoria per un operazione di lettura o scrittura. Espresso in nsec(10^-9 sec), microse(10^6 sec) ecc… Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 COMPUTER MEMORY HIERARCHY Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 MEMORIA PRINCIPALE Memoria che contiene i dati e i programmi che sono correntemente elaborati dal processore. Accesso basato su indirizzi Un programma , quando non è oggetto di elaborazione , è memorizzato su memoria di massa Quando deve essere eseguito , viene portato(caricato) tutto o in parte in memoria principale Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 MEMORIA PRINCIPALE La memoria principale o memoria centrale, detta anche RAM (Random Access Memory), contiene informazioni che devono essere elaborate a breve termine (istruzioni e dati) Caratteristiche: Accesso casuale alle informazioni Velocità elevata volatilità Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 MEMORIA PRINCIPALE E’ un insieme di locazioni o celle , ognuna contraddistinta da un numero detto indirizzo, che serve per accedere all’informazione contenuta nella cella La tecnologia utilizzata per la memoria centrale è quella dei dispositivi a semiconduttori. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 MEMORIA CACHE Piccola RAM molto veloce , interposta tra CPU e memoria principale. Il suo funzionamento sfrutta il principio di località dei riferimenti , che è alla base di tutti i sistemi di memoria Quando viene indirizzata una parola , quella parola e alcune di quelle vicine vengono trasferite dalla lenta memoria centrale alla più piccola e veloce memoria cache , in modo che la parola successiva sia accessibile più velocemente. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 MEMORIE ROM La ROM (Read Only Memory) è una memoria a sola lettura , destinata a contenere informazioni non variabili nel tempo. Caratteristiche Accesso casuale alle informazioni Velocità elevata(inferiore alla RAM) Non volatilità Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 DISPOSITIVI I/O Periferica: (o dispositivo) componente che non è nè in CPU né in memoria centrale. Il computer riceve dati da periferiche di input, e trasmette dati su periferiche di output; alcuni dispositivi svolgono un doppio ruolo Ogni periferica fa cose diverse (elettroniche , meccaniche, magnetiche) Esempi di periferica: memorie di massa, schermi , stampanti, lettori cd/dvd, digital camera, mouse, ecc. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 DISPOSITIVI I/O Hanno limitata autonomia rispetto al processore centrale Si collegano alle porte(o interfacce) del computer Ogni periferica è controllata da un controller ( dispositivo elettronico solitamente fornito di microprocessore) , che permette al processore di gestire dispositivi basati su diverse tecnologie Il processore principale interagisce con la periferica dialogando con il controller mediante un programma detto driver. Comunicazioni attraverso porte (accessi posti sui dispositivi) come ad esempio: seriali , parallele , USB , Ethernet…ecc.. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 DISPOSITIVI I/O Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016