Linguaggio macchina
Transcript
Linguaggio macchina
Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer ● componenti per • elaborare i dati • memorizzare i dati • inserire i dati • per visualizzare/distribuire i dati (ottenuti quali risultato del processo di elaborazione) •canali di comunicazione che permettono la trasmissione di dati tra una componente e l'altra Macchina di Von Neumann (1946) John Von Neumann (Budapest 1903 – Washington 1957) RAM CPU Scheda madre (motherboar d) Bus Interfac ce di I/O Interfaccia di I/O Schermo Tastiera e mouse Altoparlanti Interfacc e di I/O Memoria di massa Scheda Madre Periferiche di input Le periferiche di input sono costituite da tutti quei dispositivi che consentono l'inserimento nel computer di dati e istruzioni Principali periferiche di input ● tastiera (keyboard) ● mouse/trackball/touchpad ● scanner ● joystick ● webcam ● macchina fotografica digitale ● microfono ● penna ottica (o lettore ottico) ● tavoletta grafica Periferiche di output Le periferiche di output sono costituite dai dispositivi che consentono la comunicazione all'esterno dei dati elaborati, intermedi o finali Principali periferiche di output ● monitor (display, video, schermo) ● proiettore ● stampante/plotter ● altoparlanti (casse acustiche) ● cuffie e auricolari Periferiche di input/output Le periferiche di input/output sono quei dispositivi in grado di inviare dati al computer e allo stesso modo di riceverne Una periferica di input/output è il touchscreen Un'altra periferica di input/output è la cuffiamicrofono La memoria di massa Per memoria di massa (o secondaria o esterna) si intende l'insieme dei componenti magnetici, ottici ed elettronici che permettono di memorizzare dati e programmi in modo persistente, per conservarli finché l'utente non decide di eliminarli Principali tipi di memorie di massa • dispositivi magnetici ➢ nastri ➢ hard disk (o disco rigido): interni ed esterni ➢ floppy disk (capacità 1,44 MB) ● dispositivi ottici ➢ CD (Compact Disk) ➢ DVD (Digital Versatile Disk) ● dispositivi elettronici ➢ USB flash drive ➢ memory card La memoria centrale (o primaria o interna) È la memoria utilizzata dall'elaboratore per gestire i programmi. Costituita da una sequenza ordinata di celle ciascuna delle quali può memorizzare una word (parola). Una word è una sequenza di bit la cui lunghezza dipende dall'architettura del sistema. Solitamente, uno word è pari a 8, 16, 32 oppure 64 bit. Ciascuna cella di memoria ha un indirizzo predefinito e invariabilee rappresenta l'unità minima di memoria cui la CPU riesce ad accedere. Tipi di memoria centrale ● RAM (Random Access Memory): ➢ memoria di lettura/scrittura ➢ volatile ➢ ad accesso diretto ➢ di lavoro e dinamica ● ROM (Read Only Memory): ➢ memoria di sola lettura ➢ BIOS ROM (Basic Input/Output System) ➔ autotest ➔ riconoscimento e gestione delle periferiche di input/output ➔ caricamento del sistema operativo Composizione della CPU La CPU è un circuito integrato (microprocessore) in cui avvengono i processi di elaborazione CPU = ALU + CU ● Registri ➢ dispositivi di grado di memorizzazione una word ● ALU (Arithmetic and Logic Unit, unità aritmetico-logica) ➢ unità di elaborazione che esegue materialmente le operazioni ➔ aritmetiche (somme, sottrazioni, moltiplicazioni e divisioni tra numeri binari) ➔ logiche sui dati (confronto tra due numeri binari per capire se sono uguale o quale dei due è il maggiore) ● CU (Control Unit, unità di controllo) ➢ responsabile del coordinamento della varie componenti della macchina e dell'esecuzione delle istruzioni La ALU e le operazioni elementari Primo operando Secondo operando ALU: Esegue un'operazione aritmetica o un'operazione logica Risultato operazione CPU: il ciclo fetch-decode-execute • la CPU ha un clock interno che ne scandisce il ritmo di lavoro •durante un ciclo di clock, la CPU esegue le operazioni: 1.Fetch ➢ la CU preleva l'istruzione da eseguire dalla memoria interna 2.Decode ➢ la CU decodifica l'istruzione 3.Execute ➢ l'istruzione viene eseguita dalla ALU CU •regola l'esecuzione del ciclo fetch-decode-execute della CPU, •invia segnali di controllo sul bus, •decodifica le istruzioni e •gestisce il trasferimento di dati da e verso la CPU I registri della CPU ● registro dati ● ● ● ● ● ● ➢ contiene dati copiati/da copiare dalla/nella RAM registro indirizzi ➢ contiene l'indirizzo della cella della RAM registro istruzione corrente ➢ contiene l'indirizzo della cella della RAM che contiene l'istruzione che deve essere eseguita contatore di programma ➢ contiene l'indirizzo della cella della RAM contenente la prossima istruzione da eseguire registro interruzioni registri operandi ➢ contengono gli eventuali operandi e il risultato dell'istruzione dopo la sua esecuzione registro di stato ➢ contiene indicazioni sulla operazioni svolte dalla ALU Bus I bus sono dei canali, dotati di clock, attraverso i quali transitano le informazioni Ad ogni quanto di tempo, una componente invia dati e un'altra componente riceve dati Bus di sistema ● bus dati ➢ transito dei dati tra registro dati e RAM ● bus indirizzi ➢ transito dell'indirizzo di una cella tra registro indirizzi e RAM ● bus controllo ➢ transito del codice dell'operazione da eseguire tra CPU e RAM ➢ transito del codice risultato dell'operazione tra CPU e RAM Linguaggio macchina codice istruzione dato da utilizzare (valore numerico o indirizzo di memoria) word contenente una sequenza di bit esempio di una word a 8 bit 101 01011 codice istruzione dato da utilizzare Come vengono eseguite le istruzioni espresse in linguaggio macchina Ogni cella di memoria contiene un dato che rappresenta un valore numerico oppure un'istruzione Supponiamo che il registro istruzione corrente della CPU contenga il valore x (ossia l'istruzione da eseguire è quella nella cella di indirizzo x) •il registro istruzione corrente viene aggiornato con il valore x+1 (prossima istruzione da eseguire) e •l'istruzione contenuta nella cella di indirizzo x viene eseguita dalla CPU Istruzioni in linguaggio macchina Le istruzioni in linguaggio macchina disponibili in un computer dipendono dalla CPU Generalmente, tutti gli elaboratori forniscono le seguenti istruzioni Cosa fanno i programmi? I programmi forniscono all'elaboratore delle strategie risolutive a determinati problemi Una strategia risolutiva che gode di certe proprietà prende il nome di algoritmo Algoritmo Ricorda: Un algoritmo è una sequenza di passi che portano alla realizzazione di un compito Caratteristiche di un algoritmo ● non ambiguità ➢ i passi devono essere univocamente interpretabili dall'esecutore ● eseguibilità ➢ l'esecutore deve essere in grado di eseguire ogni passo utilizzando le risorse di cui dispone ● finitezza ➢ l'esecuzione di un algoritmo deve terminare in un tempo finito Es. Pascal, C, Java, …