Corso di
Architetture e Sistemi Operativi
Introduzione
Anno Accademico 2015/2016 Massimo De Santo
Nota Preliminare
I lucidi di questo corso sono stati elaborati a partire da materiali forniti per gentile concessione del
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Contenuti del corso
• Misura delle prestazioni
• Modello di programmazione del processore
• Cenni Programmazione in linguaggio assembly • Rappresentazione dei dati
• Elementi di progettazione logica dei circuiti • Architettura del processore
• Gerarchia di memoria
• Sistema di I/O e Interruzioni
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Testo adottato:
Patterson, Hennessy
Computer Organization and Design The hardware/software interface
4th edition
Morgan Kaufmann 2013
Versione italiana:
Patterson, Hennessy
Struttura e progetto dei calcolatori
Traduzione della 5a ed. inglese Zanichelli 2015
€ 49,50 cartaceo € 36,10 ebook
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
…chi siamo, da dove veniamo ?
• Fondamenti di Informatica:
– Cenni generali alla
rappresentazione dell'informazione – Cenni generali all'architettura di un
calcolatore e al software applicativo e di sistema
– Strutture dati
– Costrutti di programmazione
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo Editing Compilazione Programma in C Esecuzione dati risultati
Che cosa succede qui ?
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Linguaggio di programmazione
linguaggio formale, con costrutti precisi per la definizione dei dati e delle operazioni gestione completa dei tipi fondamentali; possibilità di definire tipi strutturati
costrutti che realizzano le principali azioni elaborative richieste
Calcolatore
linguaggio rigido e complicato gestione dei tipi quasi nulla istruzioni estremamente
semplici
orientato al linguaggio (front end)
orientato alla macchina (back end)
Compilatore
Fondamenti di Informatica
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo Compilazione Processore dati risultati Programma in linguaggio ad alto livello Programma in linguaggio a basso livello dati risultati
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo Unità di controllo Unità logico-aritmetica istruzioni dati Unità di ingresso/ uscita Unità centrale Unità di memoria Modello logico singole componenti flussi di dati e istruzioni
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo CPU Memoria Centrale Memoria di Massa Bus di sistema Interfaccia Periferica 1 Interfaccia Periferica 2 Modello di implementazione
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Perchè studiare l’architettura del
Calcolatore ?
• Comprendere quali aspetti del SW e dell’HW hanno un impatto sulle prestazioni dei
programmi
• Comprendere come un programmatore può migliorare le prestazioni del suo programma • Comprendere quali caratteristiche bisogna
considerare per valutare un sistema di elaborazione in uno specifico contesto applicativo
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Evoluzione dei sistemi
● Primi computer dedicati
● Mainframes, computer dipartimentali ● Microcomputer ● PC ● Server ● Embedded Personal Mobile Devices Warehouse Scale Computing Cloud Computing Software As A Service SAAS
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Old-school Machine Structure
A p p li c a t i o n ( e x : b r o w s e r ) S o f w a r e H a r d w a r e
Grandi idee sull’architettura dei calcolatori
●
Utlizzo delle astrazioni per semplifcare il
progeto
●
Progetare tenendo conto della legge di Moore
●Gerarchia delle memorie
●
Parallelismo
Affidabilità tramite la ridondanza
●
Si applica a tut i livelli:
– Datacenter ridondat – Dischi ridondat (RAID) – Bit ridondat (ECC)
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Quale processore ? MIPS
• MIPS: un’azienda che ha costruito una delle prime architetture RISC commerciali
• Studieremo l’architettura MIPS in qualche dettaglio
• Perchè MIPS invece di (es.) Intel 80x86 ?
– L’architettura e l’ISA del MIPS sono molto più semplici ed eleganti
– Il MIPS è largamente utilizzato in applicazioni
“embedded”, contrariamente all’INTEL 80x86 che è praticamente limitato al solo segmento del personal computer
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Microprocessor without Interlocking Pipe Stages
Architettura del processore MIPS
• Architettura Load/Store con istruzioni aritmetiche registro-registro a 3 operandi
• Istruzioni di 32-bit - 3 Formati (R, I, J)
• 32 registri generali di 32 bit (R0 contiene 0, R31 riceve l’indirizzo di ritorno) (+ HI, LO)
• Modi d’indirizzamento: Register, Immediate, Base+Offset, PC-relative
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Architettura del processore MIPS
• Supporto per interi in complemento a 2 di 8 (byte), 16 (halfword) e 32 (word) bit e, con
coprocesore opzionale, per numeri floating-point IEEE 754 singola e doppia precisione
• Branch semplici senza codici di condizione
• Delayed branch (l’istruzione dopo il salto viene comunque eseguita) e Delayed load (l’istruzione dopo una load non deve usare il registro
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Coprocessori
• Può supportare fino a 4
coprocessori, numerati da 0 a 3 • Il coprocessore di controllo del
sistema (coprocessore 0) è integrato nel chip e gestisce la memoria e le eccezioni
• Il coprocessore floating-point
(coprocessore 1) opzionale ha 32 registri di 32-bit ($f0 - $f31), di
cui sono utilizzabili quelli di posto pari in semplice o doppia
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Registri del MIPS e convenzione di uso PC HI LO 32 registri generali da 32 bit registri speciali
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo
Gestione degli indirizzi di memoria
• Spazio di indirizzi di 232 byte (4 Gigabyte, con i 2 superiori
riservati al S.O.), ossia 230 word
• L’indirizzamento è al byte (incremento di 4 per passare da una word alla successiva)
• L’indirizzo di una word è quello del suo primo byte (byte di indirizzo minore)
• Negli accessi, l’indirizzo di un dato di s byte deve essere
allineato, ossia A mod s = 0 (esistono istruzioni per accedere a dati disallineati)
• L’ordinamento dei byte in una word può essere sia big-endian (il primo byte è quello più significativo) che little-endian (il primo byte è quello meno significativo), in dipendenza del valore
Architetture e SO
2015/2016 Università degli Studidi Salerno M. De Santo