HSA HARDWARE SYSTEM ARCHITECTURE a.a. 2002-03 L. Borrelli 1 Livelli CIC 4: MOV CL,TOTALE XOR BX,BX XOR AX,AX MOV AL,STRINGA[BX] INC BX LOOP CIC 4 Livello assemblativo Livello di Sistema Operativo 011110010 01110001 10000010 110000010 00101001 10010010 Livello di linguaggio macchina Livello di microprogrammazione ISA HSA Livello hardware a.a. 2002-03 L. Borrelli 2 1 Architettura • Architettura Æ progetto dello (organizzazione) di un elaboratore: – Set di istruzioni – Componenti HW schema funzionale • Due parti essenziali: – Instruction Set Architecture (ISA): definizione del set di istruzioni a livello di linguaggio macchina. – Hardware System Architecture (HSA): definizione del progetto logico delle parti (sottosistemi) HW e della organizzazione del flusso di dati tra tali sottosistemi. a.a. 2002-03 L. Borrelli 3 ISA e HSA ISA HSA Specifica un elaboratore dal punto di vista del programmatore Specifica l’organizzazione dei sottosistemi hardware Determina le caratteristiche “computazionali” dell’elaboratore Determina le caratteristiche “strutturali” dell’elaboratore a.a. 2002-03 L. Borrelli 4 2 HSA • Riguarda i maggiori sottosistemi hardware di un elaboratore: – CPU – Memoria – Sistemi di I/O • Include il progetto logico e l‘organizzazione del flusso di dati tra tali sottosistemi. a.a. 2002-03 Input ALU Memoria Output Sistemi di I/O Controllo CPU L. Borrelli 5 Sottosistemi • Sottosistema : insieme di dispositivi digitali. • Dispositivo digitale: insieme di blocchi logici di base. Realizzazione di una funzione logica a.a. 2002-03 L. Borrelli 6 3 Il livello logico digitale (Livello Hardware) a.a. 2002-03 L. Borrelli 7 Dispositivi digitali • Le informazioni sono rappresentate ed elaborate da dispositivi elettronici, detti reti logiche. • Le porte logiche costituiscono gli elementi di base di tutti i dispositivi digitali. • Le porte logiche si basano sul funzionamento del transistor come interruttore binario veloce. a.a. 2002-03 L. Borrelli 8 4 Porte logiche • Le porte logiche implementano gli operatori dell’ algebra di Boole, algebra a due valori (0,1). Strumento matematico per l’analisi e il progetto dei sistemi digitali • Una porta logica può assumere due valori: – Livello logico alto H (High) – Livello logico basso L (Low) a.a. 2002-03 L. Borrelli 9 Funzioni logiche • Una funzione logica o booleana di n variabili ha solo 2n possibili combinazioni di valori di input. • Una funzione booleana può essere descritta mediante una Tavola di verità. – tabella di 2n righe – Ogni riga definisce il valore della funzione per una diversa combinazione dei valori delle variabili di ingresso. L’algebra ordinaria ha un infinito numero di funzioni di n variabili, nessuna delle quali può essere descritta da una tabella (sono infiniti i valori possibili per le variabili di input) input) a.a. 2002-03 L. Borrelli 10 5 Porte logiche di base • Implementano le operazioni fondamentali dell’algebra di Boole: Boole: Not, Not, Or, And, Nor, Nor, Nand. Nand. 1) Negazione o Porta NOT A 0 1 B 2) Somma logica o Porta OR A B a.a. 2002-03 A B B= A C C = A+ B 1 0 A B C 0 0 1 1 0 1 1 1 0 1 0 1 L. Borrelli 11 Porte logiche di base 3) Prodotto logico o Porta AND A B C 4) Not Or o Porta NOR A B C C = A• B a.a. 2002-03 C L. Borrelli C 0 0 1 1 0 1 0 1 0 0 0 1 A B C _______ 0 C = A + B 01 1 5) Not And o Porta NAND A B A B ______ C = A• B 0 1 0 1 1 0 0 0 A B C 0 0 1 1 1 1 1 0 0 1 0 1 12 6 Funzioni Logiche • Se una funzione è descritta dalla tavola di verità, si possono desumere due diverse espressioni algebriche, dette forme canoniche: – Somma di prodotti – Prodotto di somme • Somma (OR) di prodotti (AND) : – Ogni riga della tavola di verità in cui la funzione assume il valore 1 è espressa come AND delle variabili di input, negate se il valore della variabile è 0 e non negate se il valore è 1 – Le uscite degli AND sono ingressi di un OR la cui uscita rappresenta il valore della variabile di output della funzione. a.a. 2002-03 L. Borrelli 13 Reti logiche • Le reti logiche implementano le funzioni logiche: sono realizzate utilizzando le porte logiche in opportune combinazioni. • Reti logiche combinatorie: le uscite sono determinate dai valori attuali degli ingressi. – Decodificatori, comparatori, sommatori, … • Reti logiche sequenziali: le uscite sono determinate dai valori attuali degli ingressi e dai valori delle uscite in istanti precedenti. – registri, memorie RAM, ROM…… a.a. 2002-03 L. Borrelli 14 7 Organizzazione della CPU • La organizzazione dei sottosistemi hardware permette alla CPU di effettuare le sue funzioni principali: – Prelevare istruzioni dalla memoria principale (fase di fetch); – Eseguire le istruzioni (fase di execute). • Diverse organizzazioni per migliorare le prestazioni. • Organizzazione Î percorso dei dati all’interno della CPU. L. Borrelli a.a. 2002-03 15 Struttura della CPU Unità di controllo IR PSW Registro PC MAR ALU Registro … MDR Registro Memoria Cache Memoria Programma S.O. dati a.a. 2002-03 L. Borrelli 16 8 Registri della CPU • Numero limitato di registri operazionali e alcuni registri dedicati : – PC (Program Counter) : contiene l’indirizzo della prossima istruzione da eseguire; – IR (Instruction Register): contiene l’istruzione che deve essere eseguita; – MAR (Memory Address Register): contiene l’indirizzo della cella di memoria usata per lettura o scrittura di un dato; – MDR ( Memory Data Register): contiene il dato che è stato letto o che deve essere scritto nella locazione indirizzata dal MAR; – PWS (Program Word Status): contiene informazioni, opportunamente codificate, circa l’esito dell’esecuzione dell’ultima istruzione; a.a. 2002-03 L. Borrelli 17 Unità di controllo • Compito fondamentale dell’unità di controllo è quello di generare e controllare la sequenza di operazioni necessarie per effettuare ogni “ciclo di istruzione”. • Dispositivo in grado di “interpretare” ogni istruzione in linguaggio macchina tramite una sequenza di “azioni” elementari direttamente eseguite dall’HW e di generare nella giusta sequenza i segnali di controllo. a.a. 2002-03 L. Borrelli 18 9 Fetch (1) istruzione Fase decode Calcola l’indirizzo della (2) prossima istruzione Decodifica (3) l’istruzione Esegui (6) istruzione Calcola l’indirizzo (7) del risultato Operandi multipli Fetch (5) operando Memorizza (8) il risultato Fase execute Calcola l’indirizzo (4) dell’operando Fase fetch Ciclo d’istruzione Istruzione completata, estrai la prossima istruzione a.a. 2002-03 L. Borrelli 19 Unità di controllo cablata • Unità di controllo realizzata in hardware – Dispositivi logici in grado di generare la sequenza di segnali di controllo necessari per prelevare ed eseguire ogni istruzione in linguaggio macchina. RISC (Reduced Instruction Set Computer) macchine con unità di controllo cablata, ossia con HSA implementata dal solo livello hardware a.a. 2002-03 L. Borrelli 20 10 Unità di controllo microprogrammata • Ciclo di istruzione : carattere procedurale della fase di fetch e di execute. • Unità di controllo : macchina in grado di interpretare ogni istruzione in linguaggio macchina. • Macchina : modello di Von Neuman applicato ad una architettura di livello inferiore. CISC (Complex Instruction Set Computer) macchine con unità di controllo microprogrammata, ossia con HSA implementata dal livello hardware e dal livello di microprogrammazione a.a. 2002-03 L. Borrelli 21 11