Richiami: Ciclo di sviluppo e ASIM

Похожие документы
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

LINGUAGGI DI ALTO LIVELLO

Guida all installazione ed all uso di ASIM

Fondamenti di Informatica T. Il Software

Lezione 16. Il Software di base

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Architettura dei calcolatori e Software di sistema

Linguaggi, compilatori e interpreti

Componenti e connessioni. Capitolo 3

Il Sistema Operativo. Informatica Sistema Operativo 1

Lecture 2: Prime Istruzioni

Introduzione al funzionamento di un calcolatore elettronico

Laboratorio di Architettura degli Elaboratori

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Il linguaggio Assembly

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Unità Didattica 2 I Linguaggi di Programmazione

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Linguaggi di alto livello, compilatori e interpreti

Il processore Motorola (MC68000)

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

I programmi Assembler e Linker

LA GESTIONE DELLA I/O

Il Sistema Operativo

Organizzazione di un SO monolitico

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Il Processore. Informatica di Base -- R.Gaeta 27

Input/Output (Cap. 7, Stallings)

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Il processore. Istituzionii di Informatica -- Rossano Gaeta

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA

Linguaggio Assembly e linguaggio macchina

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

FONDAMENTI DI INFORMATICA Lezione n. 11

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Linguaggio Assembly e linguaggio macchina

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Architettura hardware

Programmazione C Massimo Callisto De Donato

Corso di Calcolatori Elettronici I

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Linguaggi di programmazione

Modelli di interazione tra processi

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Programmazione strutturata

La memoria principale

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Fondamenti di programmazione!! Parte 2!

Modi di indirizzamento del processore MC68000 (parte prima)

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Il Processore: l unità di controllo

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Linguaggi di Programmazione

Il processore Motorola (MC68000)

Транскрипт:

Richiami: Ciclo di sviluppo e ASIM Corso Calcolatori Elettronici 2 Prof. Nicola Mazzocca Ing. Alessandra De Benedictis

Programmi e linguaggio macchina Un programma è una sequenza di istruzioni che rappresentano la traduzione in uno specifico linguaggio di programmazione di un algoritmo Un calcolatore elettronico è in grado di interpretare ed eseguire istruzioni molto semplici dette istruzioni macchina che costituiscono un programma in linguaggio macchina

Linguaggio macchina e linguaggio assembler Una istruzione macchina è una sequenza di 0 e 1 suddivisa in campi, diversi nel formato e nel significato a seconda dell istruzione Nel riferirsi alle istruzioni macchina si preferisce la rappresentazione simbolica a quella numerica, costituita dal linguaggio assembler (o assembly)

Linguaggio assembler Il linguaggio assembler ha una sintassi molto semplice; ogni linea ha una sola istruzione con il seguente formato: LABEL OP OPN1,OPN2,.. ;commento Il programmatore è forzato a ragionare come la macchina anche se in termini simbolici: il linguaggio assembler è strettamente dipendente dalla macchina sottostante Il linguaggio assembler definisce l Istruction Set Architecture (ISA) della macchina

Programma assemblatore Un programma assemblatore (o assembler) è un programma che effettua la traduzione dalla rappresentazione simbolica in linguaggio assembler alla rappresentazione binaria in linguaggio macchina

Linguaggi di alto livello e Compilatori Il principio usato nella formulazione degli assemblatori è stato seguito per definire linguaggi di programmazione indipendenti dalla macchina, detti linguaggi di alto livello E nato il concetto di compilatore di alto livello La compilazione può prevedere una traduzione diretta verso il linguaggio macchina oppure richiedere un passo intermedio di generazione di codice assembler

Il linker e il loader Dopo il processo di traduzione ad opera del compilatore/assemblatore, che trasforma il programma sorgente in programma oggetto, il linker effettua i collegamenti tra il modulo oggetto prodotto ed eventuali altri moduli e sottoprogrammi di libreria e genera un programma eseguibile (EXE) Il programma eseguibile viene caricato in memoria da un programma loader (che fa parte del sistema operativo) e passato in esecuzione

Processo di traduzionecollegamento-esecuzione Programma oggetto editor Programma sorgente traduttore Programma oggetto linker Programma sorgente lib loader memoria

Ciclo di sviluppo di programmi assembler in ASIM

ASIMTOOL

Esempio di listato assemblato

ASIM: programma caricato in memoria

ASIM: introduzione ASIM (Ambiente SImulazione Microprocessori) è un ambiente didattico per la simulazione di sistemi a microprocessore e che consente all utente di definire proprie configurazioni di architetture hw I sistemi hw da simulare sono caratterizzati da configurazioni di architetture composte dall'interconnessione di oggetti (CPU, memorie, bus, device e nodi) e su cui poter operare sia in modalità mono che multiprocessore con programmi scritti in linguaggio assembler Una configurazione ASIM contiene la descrizione degli oggetti da simulare e delle loro interconnessioni

ASIM: introduzione Definita la configurazione della macchina da simulare (mediante l'ausilio dell'editor di configurazione) si provvede a "costruirla" premendo il bottone di "costruzione" e ad attivarla premendo il bottone di "accensione" (o l'equivalente voce ON/Reset del Menù Simulazione) della macchina realizzata

ASIM: oggetti simulabili In ASIM sono stati implementati un ridotto numero di modelli di componenti che, a seconda delle funzionalità svolte e delle modalità di interfacciamento con altri dispositivi, sono stati raggruppati in quattro classi principali. Processore Nodo Bus/memoria Device L'appartenenza di un dispositivo ad una di tali classi è subordinata al possesso di almeno una delle proprietà che la caratterizza

Processore Processore: un qualsiasi dispositivo che ha lo stato interno rappresentato dal contenuto dei suoi registri, più un insieme di informazioni riguardanti il/i bus cui è connesso e le eventuali richieste di interruzioni pervenute e che gode delle seguenti proprietà: P1) può eseguire un programma contenuto in una memoria (interna o esterna al dispositivo stesso); P2) può accedere attraverso il/i bus cui è connesso ad una memoria (esterna) o ai registri di altri dispositivi per eseguire operazioni di lettura o scrittura; P3) può servire e/o gestire interruzioni provenienti da altri dispositivi, eventualmente assegnando ad esse un livello di priorità. CPU, processori video e di IO e coprocessori matematici, DMA (godono della proprietà P2), priority interrupt controller" (godono della proprietà P3), ed infine strutture "hardware" per la gestione prioritaria delle interruzioni come il "daisy chaining" (godono della proprietà P3).

Nodo Nodo: è un dispositivo il cui stato interno raccoglie informazioni relative alle connessioni con altri nodi ed ai messaggi in transito da/verso questi e che gode delle seguenti proprietà: N1) può consentire la connessione tra dispositivi dello stesso tipo; N2) può gestire, come nodo intermedio, la connessione tra dispositivi dello stesso tipo, instradando la comunicazione; N3) può avere capacità autonome di elaborazione e trasformare (secondo una logica qualsiasi) i messaggi o dati ricevuti; N4) può essere connesso ad un bus/memoria.

Bus/memoria Bus/memoria: un dispositivo il cui stato interno è caratterizzato dai valori assunti da un insieme molto ampio di registri e/o da informazioni riguardanti i dispositivi che esso connette e che gode delle seguenti proprietà: M1) può consentire a dispositivi di tipo processore di leggere o scrivere i suoi registri interni (la selezione avviene in base all'indirizzo); M2) può consentire a dispositivi di tipo processore di leggere o scrivere i registri dei dispositivi di tipo device (la selezione avviene in base all'indirizzo); M3) regola l'accesso di più dispositivi di tipo processore ai suoi registri ed ai device (in ogni istante al più un accesso è in corso, gli altri processori devono attendere); M4) gestisce la memoria fisica effettuando il mapping degli indirizzi virtuali negli indirizzi fisici. M5) può consentire l'esecuzione di cicli non interrompibili di lettura-modifica; M6) può connettersi ad altri dispositivi dello stesso tipo sia per costruire accessi da un altro bus sia verso un altro bus;

Device Device: tutti i dispositivi che non rientrano nelle tre precedenti classi e che godonodelle seguenti proprietà: D1) può essere connesso ad un bus/memoria in modo che un processore possa accedere ad esso; D2) può essere in grado di generare delle interruzioni da inviare ad un processore; nel qual caso deve essere connesso in qualche modo al processore; D3) può essere connesso e comunicare con un altro device della stessa macchina o di un'altra macchina; D4) può connettere dispositivi di tipo processore e bus/memoria a dispositivi del tipo bus/memoria.

Generazione di configurazioni Dal menù Edit è possibile accedere a tutti i comandi che consentono di definire una configurazione di sistema, che rappresenta la macchina da simulare. I file che contengono le informazioni relative ad una configurazione hanno come estensione ".cfg". L editor di configurazioni di ASIM consente di immettere tutti i parametri necessari a descrivere i singoli oggetti ed il loro interfacciamento

Configurazione La configurazione di un oggetto viene specificata attraverso i seguenti campi: configuration name: nome della configurazione corrente; chip name: nome in codice dell oggetto se esistono più oggetti in una classe; arbitrario se l insieme contiene un unico dispositivo; type: classe di appartenenza dell oggetto; identif: codice numerico che identifica lo specifico oggetto nell ambito di una configurazione; bus: identificatore di un oggetto bus con cui lo specifico oggetto può interagire in qualche modo; address:indirizzi fisici compresi nello spazio indirizzi visto dallo specifico oggetto; com1 com4: quattro campi che codificano particolari caratteristiche di uno specifico oggetto.

Configurazione: CPU

CPU e gestione interruzioni(1/2) Un device può essere connesso a un dispositivo in grado di gestire un segnale di interruzione (un processore, un PIC o genericamente un gestore di interruzioni). ASIM implementa il meccanismo base di gestione delle interruzioni di tipo vettorizzato. Tre linee, IPL0, IPL1, IPL2 (Interrupt request Priority Level) codificano l evento interruzione in ingresso secondo il livello prioritario assegnato al dispositivo interrompente Il processore, all arrivo di un interruzione (sia essa di tipo Hw che Sw) da servire (e non mascherare) avvia un ciclo di bus mediante il quale acquisisce dalla periferica interrompente uno specifico numero di vettore espresso su 8 bit (l area ROM dei vettori occupa, infatti, il primo K dello spazio indirizzi di memoria). Tale numero, moltiplicato per 4 (mediante l esecuzione di uno shift a sinistra di 2 posizioni), fornisce il puntatore ad una locazione di memoria ROM contenente il vettore associato all Interrupt Service Routine (puntatore alla ISR).

CPU e gestione interruzioni(2/2) Il processore, una volta salvato il contesto minimo globale dell elaborazione (registro di stato e PC), esegue l istruzione in memoria puntata da tale vettore (cambio di contesto). Tutti i vettori sono di 32 bit (espressi su due word). Fa eccezione il vettore di reset #0, di 4 word di cui 2 usate per inizializzare il PC e 2 word per inizializzare il supervisor stack pointer. Ogni segnale di interruzione è descritto da una struttura dati di 2 byte contenenti i seguenti tre campi: vector number (bit b7-b0 del byte più significativo); priorità(bit b7-b4 del byte meno significativo); linea d'interruzione(bit b3-b0 del byte meno significativo).

Configurazione: Bus/memoria

Configurazione: esempio 1

Configurazione: esempio 2 ORG $8000 V DC.B 1,2,3 LOC EQU $D100 ORG $8500 START MOVE.L #V,A0 MOVE.B (A0),LOC END START

Configurazione: esempio 2 Non condivide aree di memoria con altri sistemi Esporta verso il sistema con Bus-7 il proprio spazio indirizzi e importa dal sistema con Bus-1 lo spazio indirizzi delle memorie e degli oggetti RAMSTACK e Terminal a questo connessi Esporta verso il sistema con Bus-4 lo spazio indirizzi delle RAM e ROM

Configurazione: Terminal