Fondamenti dell informatica
|
|
- Giuditta Rinaldi
- 6 anni fa
- Visualizzazioni
Transcript
1 Fondamenti dell informatica Macchine a registri Rosario Culmone rosario.culmone@unicam.it 9/4/2008 UNICAM - p. 1/24
2 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access Machines) sono state introdotte per sviluppare la teoria della calcolabilità con un modello di macchina che fosse un astrazione "ragionevole" di un calcolatore (macchina di von Neumann). Il nome "random" deriva dal fatto che in queste macchine l accesso alla memoria non avviene in modo sequenziale come nella macchina di Turing ma in modo "random" (accesso casuale equitemporale) 9/4/2008 UNICAM - p. 2/24
3 Macchine a registri Sono caratterizzate da: un numero arbitrario di celle di memoria (registri) contenenti un intero arbitrario: R[n] (intero matematico ovvero di dimensione arbitraria) dei registri speciali: contatore istruzioni accumulatore: R[0] Input ALU Accumulatore Contatore R1 R2... Rn Output 9/4/2008 UNICAM - p. 3/24
4 Istruzioni della macchina a registri Le operazioni che la macchina a registri può effettuare sono: operazioni LOAD e ST ORE: trasferimenti da registri ad accumulatore e viceversa operazini READ e WRITE: trasferimenti da nastro di input a registri e da registri a nastro di output operazioni di ADD, SUB, MUL, DIV, REM: operazioni aritmetiche tra accumulatore e registri. Tali operazioni lasciano il risultato nell accumlatore operazioni JGT Z, JEQZ: operazioni di salto condizionati ovvero salto che avviene se nell accumulatore vi è un valore maggiore di zero o uguale a zero operazione JU M P : operazione di salto incondizionato operazione HALT : operazione di terminazione 9/4/2008 UNICAM - p. 4/24
5 Tipologia degli operandi Tutte le operazioni prevedono un solo o operando (l altro operando implicito, se esiste, è l accumulatore) costante = n costante intera n diretto n registro n indiretto n registro puntato dal registro n Ad esempio le seguenti istruzioni: LOAD = n carica nell accumulatore la costante n ADD n somma all accumulatore il contenuto del registro n ADD n somma all accumulatore il contenuto del registro puntato dal registro n JGT Z n salta all n-esima istruzione sel il contenuto dell accumulatore è > 0 9/4/2008 UNICAM - p. 5/24
6 Macchine e programmi I programmi sono "cablati" ovvero ogni macchina esegue un solo programma. Come esempio vediamo il programma per il calcolo di x y. Si indicherà con R[n] il contenuto del registro n e con l assegnamento. 9/4/2008 UNICAM - p. 6/24
7 Programma per calcolare x y READ 1 lettura di x dall input in R[1] READ 2 lettura di y dall input in R[2] LOAD = 1 inizializzazione STORE 3 R[3] 1 il registro 3 conterrà il risultato LOAD 2 Carica da R[2] y, questa è la 5 o istruzione JEQZ 14 se R[2] = 0 salta all istruzione 14 o LOAD 1 carica R[1] MUL 3 moltiplica R[3] per R[1] STORE 3 R[1] R[1] R[3] LOAD 2 carica R[2] SUB = 1 si decrementa R[2] STORE 2 R[2] R[2] 1 JUMP 5 salta alla 5 o istruzione WRITE 3 stampa da R[3] in output, questo è la 14 o istruzione HALT 9/4/2008 UNICAM - p. 7/24
8 Costo di esecuzione Nelle MdT il costo è il numero di applicazioni della funzione di transizione. Nelle macchine a registri la definizione di costo è più complessa: Modelli a costi uniformi Modelli a costi logaritmici 9/4/2008 UNICAM - p. 8/24
9 Modello a costi uniformi Ogni istruzione costa una unità di tempo Pregio: approccio molto semplice; adatto a valutare il costo di esecuzione di programmi in linguaggi ad alto livello Difetto: analisi non realistica. Moltiplicare due interi di 32 bit costa quanto moltiplicare due interi di 1000 bit. Accedere ad una memoria di 1 kilobyte costa come accedere ad una memoria di 1 terabyte 9/4/2008 UNICAM - p. 9/24
10 Modello a costi logaritmici L elaborazione di un intero n ha costo O(log n) e l accesso al registro i ha costo O(log i). Sostanzialmente la complessità del calcolo è proporzionale al numero di bit e l accesso e proporzionale al numero di bit dell indirizzo Pregio: la valutazione dei costi è più realistica dal punto di vista asintotico (ovvero per operandi molto grandi, o per memeria molto grande). Difetto: analisi più laboriosa. 9/4/2008 UNICAM - p. 10/24
11 Esempio di analisi dei costi Se ad esempio vogliamo calcolare i costi logaritmici di una operazione si ha: ADD 3 log(3) + log(r[3])+ accesso al registro puntato dal registro 3 log(r[r[3]]) + log(r[0]) costo dell operazione di somma Tenendo conto di approssimazioni su scala asintotica il costo del programma per il calcolo di x y è: a costi uniformi O(y), il costo è proporzionale al numero di moltiplicazioni a costi logarirmici O(y 2 log(x)), il costo dipende sia da x che da y (bisogna tenere conto che man mano che si effettuano moltiplicazioni il valore del calcolo aumenta, quindi n(n+1) 2...) 9/4/2008 UNICAM - p. 11/24
12 RAM e MdT Caratterizziamo la calcolabilità delle RAM e dimostriamo che ciò che calcola RAM e calcolabile con MdT e viceversa. La f : N n N è calcolabile da una RAM se esiste un programma P tale che: se f(x 1,...,x n ) = y, allora P con input x 1,...,x n termina con y in output se f(x 1,...,x n ) non è definita, allora P non termina Sia M = {0, 1}, b, K, q 0, F, δ una MdT con nastro semifinito; esiste una RAM tale che se M esegue la computazione q 0 x q F y, la RAM inizia la computazione con la stringa x nei registri 2,..., x + 1 e termina con la stringa y nei registri 2,..., y + 1. La RAM simula T passi di M in tempo = (T log T) nel modello a costi logaritmici 9/4/2008 UNICAM - p. 12/24
13 Corrispondenze MdT e RAM Stabiliamo una corrispondenza tra la cella i del nastro di M (MdT con nastro seminfinito) e il registro i + 1 della RAM Il registro 1 della RAM contiene la posizione della testina di M All inizio contiene il valore 2 (ovvero l inizio del nastro della MdT corrispondente) P prevede una sequenza di istruzioni per ogni stato di M In pratica per ogni elemento della funzione δ della MdT si costruisce un frammento di programma della RAM 9/4/2008 UNICAM - p. 13/24
14 Costruzione di RAM da MdT Le istruzioni di P sono realizzate nel seguente modo: Alla regola δ(q 1, 0) = (q 2, 1, d) corrisponde il sottoprogramma q1: LOAD 1 lettura del contenuto del nastro nell accumulatore JGTZ q1 se è 1 vai al sottoprogramma q1 LOAD = 1 STORE 1 scrivi 1 sul nastro LOAD 1 - ADD = 1 sposta a destra la testina STORE 1 - JUMP q2 aggiorna lo stato 9/4/2008 UNICAM - p. 14/24
15 Costo della simulazione Ogni passo di M è simulato a al più 8 istruzioni ognuna con costo O(log t max ) dove t max è uguale al massimo numero di celle usate. Il valore deriva dal fatto che se l elaborazione della MdT prevede l uso del nastro sino alla cella 512 allora tale valore sarà memorizzato nel registro 1 della RAM e poiché i costi sono logaritmici sarà proporzionale al massimo a log512 Quindi se la MdT ha eseguito T passi al più avrà raggiunto la posizione T esima del nastro = t max, quindi il costo complessivo è dato dal prodotto per l esecuzione di T computazioni per l accesso alla posizione più lontana del nastro quindi il costo complessivo è O(T log T) 9/4/2008 UNICAM - p. 15/24
16 Costruzione di MdT da RAM Data una RAM che calcola la funzione f, esiste una MdT M tale che, se f(x 1,...,x n ) = y, e se sul nastro di input sono memorizzati in binario gli interi x 1,...,x n la macchina M termina con la rappresentazione binaria di y sul nastro di output; se f(x 1,...,x n ) non è definita, M non termina. 9/4/2008 UNICAM - p. 16/24
17 Costo della simulazione Se il costo della computazione della RAM è T nel modello a costi logaritmici, allora M la simula in O(T 2 ) passi. Per la simulazione utilizziamo MdT a cinque nastri: un nastro di input corrispondente esattamente al nastro RAM, un nastro di output corrispondente esattamente al nastro RAM e tre nastri di lavoro contenenti: Nastro 1 dati memorizzati nei registri della RAM preceduti dal numero d ordine del registro (in binario): #i 1 #R[i 1 ]#i 2 #R[i 2 ]#...#i m #R[i m ] Nastro 2 contenuto dell accumulatore Nastro 3 esecuzione delle istruzioni 9/4/2008 UNICAM - p. 17/24
18 Funzionamento Per ogni istruzione della RAM, M ha un insieme di stati per eseguire le trasformazioni previste dall istruzione stessa (ovvero cambiamento del contenuto dei registri o dell accumulatore ecc...) 9/4/2008 UNICAM - p. 18/24
19 Istruzione per istruzione JU M P Istruzioni di salto: JGT Z si controlla se il contenuto dell accumulatore sul nastro 2 JEQZ verifica le condizioni e si effettua i corrispondenti salti HALT (cambiamento di stato) LOAD WRITE ADD SU B MUL DIV ST ORE READ Istruzioni che non modificano il contenuto dei registri: si cerca sul nastro 1 il registro su cui si deve operare e si esegue sul nastro contenente la rappresentazione dell accumulatore l operazione prevista Istruzioni che modificano il contenuto dei registri: si trascrive sul nastro 3 il contenuto del nastro 1, si esegue l operazione che modifica il contenuto del registro, si ricopia sul nastro 1 9/4/2008 UNICAM - p. 19/24
20 Costo della simulazione Sia N1 il numero di celle del nastro 1 utilizzate allora se la RAM impiega tempo T nel modello a costi logaritmici, allora abbiamo N1 T (dove la somma è eseguita su tutti i registri effettivamente utilizzati da RAM). Infatti N1 = ( i + R[i] ) dove la somma è effettuata sui registri effettivamente utilizzati Inoltre se sul nastro 1 è presente l indirizzo i vuol dire che la RAM ha acceduto almeno una volta al registro R[i] e quindi ha pagato almeno una volta log i, d altro canto l indirizzo i occupa sul nastro 1 proprio log i celle (tutto è espresso in binario) Analogamente se sul nastro 1 compare il contenuto del registro i allora la RAM ha pagato almeno una volta log(r[i]) d altro canto R[i] occupa su nastro 1 proprio log(r[i]) celle 9/4/2008 UNICAM - p. 20/24
21 Calcolo In conclusione se definiamo: C costo impiegato dalla macchina di Turing N numero di istruzioni della RAM M costo massimo di esecuzione di ogni istruzione abbiamo: C = O(N M) = O(N N1) = O(T T) = O(T 2 ) Il costo di esecuzione di una istruzione della RAM può essere al più il costo di scansione dell intero nastro della MdT N 1. D altro lato il costo pagato dalla RAM è al più T se T è il costo pagato dalla RAM e sicuramente N1 è minore di T pertanto il costo della simulazione della MdT è dell ordine di O(T 2 ). 9/4/2008 UNICAM - p. 21/24
22 Potere espressivo delle MdT e RAM Da quanto visto le RAM e le MdT hanno lo stesso potere computazionale. Questo conferma la tesi di Church-Turig ovvero non vi è modello di calcolo più espressivo delle MdT. Inotre RAM e MdT hanno lo stesso potere computazionale anche con limitazione di tempo polinomiale. Questo vuol dire che essendo la simulazione reciproca limitata da tempo polinomiale se la soluzione ad un problema richiede un tempo esponenziale per RAM allora anche MdT necessiterà di tempo esponenziale e viceversa Questo significa che se si vuole caratterizzare la complessità computazionale di un problema può farlo indifferentemente con RAM o con MdT e tutti i risultati in termini di camplessità computazionale ottenuti con un modello possono essere utilizzati per l altro. 9/4/2008 UNICAM - p. 22/24
23 Macchine a registri elementari Si può semplificare ulteriormente il modello RAM senza perdere potenza espressiva. Esistono modelli di calcolo più elementari delle RAM dotati dello stesso potere computazionale. Tre sole istruzioni. R[i] R[i] + 1 R[i] R[i] 1 IF R[i] = 0 THEN GOTO n incremento di un registro di memoria decremento di un registro di memoria se il registro è uguale a 0 si va all istruzione n eliminazione di nastri di ingresso e uscita, i parametri e i risultati possono essere lasciati sui registi eliminazione dell accumulatore eliminazione dell indirizzamento indiretto la terminazione può essere realizzato con il salto ad un istruzione che non esiste 9/4/2008 UNICAM - p. 23/24
24 Potere computazionale delle MREL Si può mostrare che le MREL hanno lo stesso potere computazionale delle RAM Ogni funzione f : N n N calcolabile con una RAM è calcolabile con una MREL e viceversa Si può facilmente dimostrare l equivalenza tra RAM e MREL simulando ogni istruzione di RAM con una serie di istruzioni in MREL e viceversa. 9/4/2008 UNICAM - p. 24/24
PARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 3.1 MACCHINE A REGISTRI 1 (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliMacchine a registri RAM (Random Access Machines)
Macchine a registri RAM (Random Access Machines) Introdotte da Shepherdson e Sturgis nel 1963 per sviluppare la teoria della calcolabilità con un modello astratto di un reale calcolatore (macchina di von
DettagliCapitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali
Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,
DettagliCapitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali
Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,
DettagliElaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
DettagliMacchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD
Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
DettagliLinguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
DettagliIl linguaggio macchina
Università degli Studi di Palermo Facoltà di Ingegneria Il linguaggio macchina Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica
DettagliLa Macchina RAM Shepherdson e Sturgis (1963)
La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni
DettagliArchitettura di un calcolatore
Architettura di un calcolatore Corso di Informatica A Vito Perrone Indice La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L algoritmo Il programma Fasi di esecuzione di un istruzione 2 1
DettagliFondamenti di Informatica
Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliInformatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza
Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere
DettagliPrincipio di composizione delle MT
Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi
DettagliLa tesi di Church-Turing
ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliMacchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni.
Algoritmi e Strutture Dati Macchina RAM Nastro di ingresso Modelli di calcolo e metodologie di analisi Contatore istruzioni Programm a Accumulatore Unità centrale M[0] M[1] Nastro di uscita Basato su materiale
DettagliFondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore
DettagliMacchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico
Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico Lezione 15 Università degli Studi di Napoli Federico
DettagliProgramma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori
Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Cos è un Calcolatore? Un computer (calcolatore) è una macchina
DettagliCapitolo 5 Elementi architetturali di base
Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo
DettagliNote sull architettura del calcolatore
Note sull architettura del calcolatore 1 Algoritmo Problema Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo Sequenza ordinata di istruzioni che risolve il problema specifico
DettagliNote aggiuntive al corso di Informatica Teorica a.a
Note aggiuntive al corso di Informatica Teorica a.a. 2008-2009 Giorgio Gambosi 1 Equivalenza tra MT multinastro e MT ad un nastro Le macchine di Turing multinastro hanno lo stesso potere computazionale
DettagliSommario Codifica dei dati Macchina Astratta Definizioni Esempi
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliMacchine di Turing: somma di due numeri
Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore
DettagliArchitettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)
INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando
DettagliArchitettura di Von Neumann
Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliLINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA
LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliFondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd
Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Esercizio 1 } Consideriamo una MdT che modifica una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliMacchine di TURING. Alan Mathison Turing ( )
Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei
DettagliELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
DettagliProblemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
DettagliCapitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
DettagliIl CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1
Il CPU UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) info@stoianov.it La struttura del Calcolatore UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) CPU INPUT OUTPUT MEMORIA CENTRALE MEMORIA ESTERNA info@stoianov.it
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliSTRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER
1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliSommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 016/017 Sommario Funzionamento del
DettagliCorso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo
Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni
DettagliStudio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
DettagliFondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0
Fondamenti Teorici Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Agenda Modello di Von Neumann Algoritmo del Processore Linguaggio Macchina e Linguaggio Assembler Hardware e Software Compilatori
DettagliMacchina di von Neumann/Turing
Macchina di von Neumann/Turing Concetto di programma memorizzato Memoria principale per dati e istruzioni ALU opera su dati in formato binario Unità di controllo che interpreta le istruzioni in memoria
DettagliAlgoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato
Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)
DettagliEsercizi per il corso di Architettura dei Calcolatori. Anno accademico 2008/09. Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione )
Esercizi per il corso di Architettura dei Calcolatori Anno accademico 2008/09 Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione ) 1) Caricare nel registro accumulatore AX il contenuto della
DettagliAlgoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
DettagliCorso di Laurea in Informatica
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 13 Dicembre 2004 Esercizio 1 (punti -1, 3) Si consideri l architettura nota come macchina di von Neumann (a) Come le
DettagliEfficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale
Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliArchitettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf
Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
DettagliInformatica II. Capitolo 2 Analisi di algoritmi. Valutare la complessità in tempo. Complessità in tempo: cosa serve?
Valutare la complessità in tempo Complessità in tempo: cosa serve? Informatica II Capitolo 2 Analisi di algoritmi Per stimare il tempo impiegato da un programma Per stimare il più grande input gestibile
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliIntroduzione agli algoritmi e le stru1ure da2
Introduzione agli algoritmi e le stru1ure da2 Annalisa De Bonis Docente Annalisa De Bonis Studio 44, quarto piano, stecca 7 Email: debonis@dia.unisa.it URL: http://www.di.unisa.it/~debonis/ IASD a.a. 2015-2016
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto
DettagliParte I.5 Cenni alla computazione
Parte I.5 Cenni alla computazione Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 14, 2015 Elisabetta Elisabetta Ronchieri I Concetti
DettagliArchitettura di un elaboratore. Il modello di von Neumann
Architettura di un elaboratore Il modello di von Neumann 4(5) componenti fondamentali unita di elaborazione: CPU memoria centrale: RAM periferiche (memoria di massa) bus di sistema bus di sistema CPU RAM
DettagliFondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd
Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La
DettagliCorso di Laurea in Ingegneria Elettronica
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Esercitazione 3 (Capitolo 4) Set di istruzioni Outline Set di istruzioni di macchina Metodi di indirizzamento
DettagliArchitettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
DettagliIl processore: unità di controllo
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
DettagliElementi di Architettura
Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliEsempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!
Esercizio 1 Scrivere un programma che acquisisca da tastiera una sequenza di caratteri terminata da! e riporti sul monitor una sequenza derivata dalla precedente secondo le regole dell alfabeto farfallino
DettagliFondamenti di Algoritmi
Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi
DettagliL architettura del calcolatore
INFORMATICA B Ingegneria Elettrica L architettura del calcolatore Hardware Componenti fisiche: circuiti, schede, memorie, periferiche, stampanti, monitor... 2 Software I programmi eseguibili (istruzioni
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.
DettagliCorso Programmazione
Corso Programmazione 2007-2008 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli (docenti laboratorio) B. Venable e M. Gelain Dipartimento di Matematica Pura ed Applicata Torre Archimede,
DettagliModi di indirizzamento
Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando
DettagliLezione 15. L elaboratore Elettronico
Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente
DettagliLa macchina di Von Neumann
Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica
DettagliTempo e spazio di calcolo
Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliDall algoritmo al programma
Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione
DettagliAbilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza
Abilità Informa/che capitolo 3 Prof. Fabio Calefato a.a. 2015-16 Giurisprudenza Archite3ura Hardware Degli Elaboratori Elemen> della macchina di Von Neumann Memoria principale Processore Memoria secondaria
DettagliRAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
DettagliARCHITETTURA DI UN SISTEMA DI ELABORAZIONE
ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliCapitolo 8: Teoria della complessitá
Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá
DettagliÈ una notazione con cui è possibile descrivere gli algoritmi.
Linguaggi di programmazione È una notazione con cui è possibile descrivere gli algoritmi. Programma È la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
DettagliPARTE VI COMPLESSITA
PARTE VI COMPLESSITA Complessità di algoritmi e problemi Classi di complessità Proprietà delle classi spaziali e temporali Le classi P, NP, PSPAZIO Problemi NP-completi 6.1. Introduzione alla complessità
DettagliIl modello di Von Neumann
Il modello di Von Neumann Appunti di STA per le classi seconde ind. informatiche Page 1 Il modello architetturale Per modello architetturale, si intende la descrizione delle parti del sistema e la loro
DettagliEfficienza: esempi. Fondamenti di Informatica. Ferdinando Cicalese. Nella lezione precedente. Pseudocodice per descrivere algoritmi
Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente Qualche problema computazionale Trova min Selection sort Pseudocodice per descrivere algoritmi Variabili Assegnamento
DettagliAlgoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 2 LA MACCHINA DI VON NEUMANN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliSistemi di Elaborazione
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Sistemi di Elaborazione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliEsercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento
Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma
DettagliArchitettura dei Calcolatori elettronici
Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore
DettagliArchitettura del Calcolatore. Danilo Ardagna Politecnico di Milano 22-5-2013
Architettura del Calcolatore Danilo Ardagna Politecnico di Milano 22-5-2013 Hardware e Software L'hardware è la parte del computer che puoi prendere a calci.! Il software è quella contro cui puoi solo
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliAlgoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo
Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente
Dettagli