Introduzione
Calcolatore digitale: macchina capace di risolvere problemi eseguendo le istruzioni assegnate Programma: sequenza di istruzioni per eseguire un certo compito Pagina 2
Cosa abbiamo a disposizione? I circuiti elettronici possono eseguire soltanto un insieme limitato di istruzioni, per esempio: - sommare due numeri - copiare dati da una posizione di memoria ad un'altra - controllare se un numero vale zero Questo insieme limitato di istruzioni viene detto linguaggio macchina, e rappresenta il modo per comunicare con il computer. Pagina 3
Problema... Per motivi economici, il linguaggio macchina è quanto più semplice compatibilmente con: - utilizzo futuro - prestazioni richieste... di conseguenza... E' difficile e noioso da utilizzare! Pagina 4
Soluzione I computer vengono strutturati come una serie di livelli di astrazione, ognuno costruito sulla base di quello sottostante. Procedura Definire un nuovo insieme di istruzioni più comode da utilizzare rispetto alle istruzioni macchina. Le nuove istruzioni vengono automaticamente convertite nel linguaggio sottostante Pagina 5
Come effettuare la conversione compilazione un programma (compilatore) effettua la traduzione di tutte le istruzioni del linguaggio superiore in istruzioni del linguaggio inferiore. Si ottiene un programma che può essere eseguito interpretazione un programma (interprete) effettua la traduzione istruzione per istruzione contestualmente alla sua esecuzione Pagina 6
Livelli di astrazione e macchine virtuali Pagina 7
Macchine multilivello Pagina 8
Livello logico-digitale Composto da transistor assemblati in modo da funzionare come dispositivi digitali. Gli oggetti elementari sono detti porte (gate), e possono assumere soltanto i valori 0 e 1. Opportune combinazioni di porte permettono di creare le memorie a 1 bit. Combinazioni di memorie consentono di ottenere i registri (a 8, 16, 32, 64 bit). Pagina 9
Livello di micro-architettura Contiene: - un insieme di registri (da 8 a 32) - un circuito detto ALU (Arithmetic Logic Unit) I registri sono connessi alla ALU tramite il datapath, lungo il quale si spostano i dati: - selezione di uno o due registri - operazione sul loro contenuto - memorizzazione del risultato in un registro Pagina 10
Livello ISA (Instruction Set Architecture) Contiene l'insieme delle istruzioni della macchina Pagina 11
Livello macchina del Sistema Operativo Contiene: - istruzioni presenti al livello ISA - nuove istruzioni - organizzazione della memoria - gestione concorrente I servizi del livello 3 vengono eseguiti da un interprete (sistema operativo) eseguito al livello 2. Pagina 12
Livello del linguaggio assemblativo Consente di scrivere programmi in modo meno complesso rispetto ai livelli sottostanti. Il programma che esegue la traduzione viene detto assemblatore. Pagina 13
Livello del linguaggio orientato al tipo di problema Consiste di linguaggi (detti di alto livello) utilizzati per realizzare applicazioni. Per esempio: C, C++, Fortran, Java, Prolog,... I programmi vengono di solito tradotti in programmi di livello 3 da un traduttore (compilatore). Pagina 14
Evoluzione delle macchine multilivello anni '40: - livello logico-digitale - livello ISA 1951: - livello logico-digitale - livello di micro-programmazione - livello ISA anni '60: - introduzione del sistema operativo (FMS) Pagina 15
Storia (breve) dell'architettura dei computer macchina di Ancitera (ca. 150 d.c.) Pagina 16
Storia (breve) dell'architettura dei computer Wilhelm Schikard (ca. 1623) Pagina 17
Storia (breve) dell'architettura dei computer Blaise Pascal (1642) Pagina 18
Storia (breve) dell'architettura dei computer Charles Babbage Pagina 19
Storia (breve) dell'architettura dei computer Konrad Zuse (Z1-1938) Pagina 20
Storia (breve) dell'architettura dei computer Konrad Zuse (Z3-1942) Pagina 21
Storia (breve) dell'architettura dei computer U.K. Gov. Colossus (1943) Pagina 22
Storia (breve) dell'architettura dei computer Atanasoff Berry (1944) Pagina 23
Storia (breve) dell'architettura dei computer ENIAC (1944) Pagina 24
Storia (breve) dell'architettura dei computer John Von Neumann (IAS Architecture) Pagina 25
Storia (breve) dell'architettura dei computer DEC PDP-1 (1961) Pagina 26
Storia (breve) dell'architettura dei computer DEC PDP-1 (1961) Pagina 27
Storia (breve) dell'architettura dei computer CDC 6600 (1964) Pagina 28
Storia (breve) dell'architettura dei computer DEC PDP-8 (1965-66) Pagina 29