Rappresentazione delle istruzioni

Documenti analoghi
Rappresentazione delle istruzioni

Rappresentazione delle istruzioni

Rappresentazione dei simboli

Il processore Intel 8086

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Rappresentazione (Codifica Binaria dei Numeri) ed Elaborazione delle Informazioni

Architettura di un elaboratore. Il modello di von Neumann

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Rappresentazione dell informazione

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Assembly. Modello x86

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Architettura del calcolatore (Seconda parte)

Architettura del Calcolatore

Corso di Informatica

La "macchina" da calcolo

Architettura di un calcolatore: primi cenni introduttivi

Logica binaria. Cap. 1.1 e 2.1 dispensa

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Architettura degli Elaboratori

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Esercitazioni - Informatica A

Architettura di una CPU

Architettura di un elaboratore. Rappresentazione dell informazione digitale

Il processore. Istituzionii di Informatica -- Rossano Gaeta

LABORATORIO DI INFORMATICA

Sistemi di numerazione

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Nel microprocessore 8086 abbiamo una gran quantità di registri

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Fondamenti di Informatica A. A / 1 9

Lez2 mar 7 Ottobre 2008 Op. aritmetiche/logiche arch. Elaboratore

Il processore - CPU (CENTRAL PROCESSING UNIT)

Codifica dell informazione

Architettura dell elaboratore

Architettura dell elaboratore

Architettura del Calcolatore

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura degli Elaboratori

Informatica per le discipline umanistiche 2

ESERCITAZIONE Operandi Architettura ad 1 operando Architettura a 2 operandi Architettura a 3 operandi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Lezione 15. L elaboratore Elettronico

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Sistemi di Elaborazione delle Informazioni

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

Architettura dei Calcolatori elettronici

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CODIFICA DI CARATTERI

FONDAMENTI DI INFORMATICA

Architettura di un Sistema Informatico

Componenti di un processore

La codifica binaria. Informatica B. Daniele Loiacono

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Concetti Introduttivi

Componenti e connessioni. Capitolo 3

CODIFICA BINARIA DEI CARATTERI

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Istruzioni e linguaggio macchina

Sistemi a microprocessore

Abilità Informatiche e Telematiche

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Dalla precedente lezione: LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 3 LA RAPPRESENTAZIONE DEI DATI (1) 28/02/2016

Concetti Introduttivi

Architettura di Von Neumann

Virtual CPU (Eniac): parte 2

Il linguaggio assembly

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Virtual CPU (Eniac): parte 2

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Il Processore: l unità di controllo

Il linguaggio macchina

Architettura di un calcolatore

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Introduzione al linguaggio macchina

Corso di Laurea in Informatica Architetture degli Elaboratori

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Introduzione al linguaggio macchina. Istruzione l/m

Ricapitoliamo. Integrazione tra le discipline

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

REGISTRO DELLE LEZIONI 2005/2006. Tipologia

Sistemi di elaborazione delle informazioni. Palmino Sacco

ARCHITETTURA DI UN ELABORATORE

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Ingegneria Medica Rappresentazione delle istruzioni Codifica delle istruzioni Le istruzioni come i dati numerici per essere memorizzate ed eseguite su una rete combinatoria devono essere necessariamente espresse in sequenze di 0 e 1. Con 8 bit si possono codificare fino a 256 diverse istruzioni. Le istruzioni in genere sono seguite dai dati che devono essere elaborati e coordinati in una opportuna rete combinatoria per ottenere i risultati desiderati Nasce così la CPU (Central Process Unit) al cui interno trova posto l ALU (Unità Logico Aritmetica) Secondo la schema di von Neumann John von Neumann (1903-1957) Slide 2 di 32 1

La CPU è il cuore di un calcolatore in essa trovano posto i circuiti, realizzati con le funzioni booleane, i quali devono essere attivati opportunamente per svolgere loro compiti. CPU Linee Dati INTERFACCIA A. L.U. 4/8/16/32/128 bit Linee Indirizz. bit 24-16 MB 32 4 GB 34 16 GB GESTORE LINEE DI INDIRIZZAMENTO Controllo e Clock Decodifica ISTRUZIONI Linee di Controllo Il cuore della CPU è l Unità Logico Aritmetica nella quale trovano posto i circuiti operativi Registri Comparatori Sommatori, etc.. Slide 3 di 32 Unità Logico Aritmentica Le istruzioni sono segnali che abilitano o disabilitano determinati circuiti posti all interno di una ALU affinché la stessa effettui l operazione voluta dall utilizzatore o rilasci il risultato dell operazione richiesta L esempio riporta una ALU a due bit che esegue 4 funzioni codificate dai segnali presenti sui fili di Selezione Operazione OP[0] OP[1] OP[2] Slide 4 di 32 2

Esempio A XOR B Uscita A AND B A OR B Multiplexer A + B + Carry C B A F Uscita (W) 0 0 0 A XOR B (D0) 0 0 1 A AND B (D1) 0 1 0 A OR B (D2) 0 1 1 A + B (D3) 1 0 0 ------- 1 0 1 ------- 1 1 0 ------- 1 1 1 ------- Slide 5 di 32 Esempio A XOR B Uscita A AND B A OR B Multiplexer A + B + Carry C B A F Uscita (W) 0 0 0 A XOR B (D0) 0 0 1 A AND B (D1) 0 1 0 A OR B (D2) 0 1 1 A + B (D3) 1 0 0 A XNOR B (D4) 1 0 1 A NAND B (D5) 1 1 0 A NOR B (D6) 1 1 1 ------- Slide 6 di 32 3

()()()(7 Multiplexer 0A)Il multiplexer è una rete ABCD combinatoria che ha lo scopo di BCD 1portare all uscita il segnale ABCD 20 1 0 D 2 7presente su uno degli ingressi, quello indicato attraverso le linee di selezione A B C F F F F F F F F 0 0 0 D 0 0 0 1 D 1 ABCD1 1 1 FABCDABC7 DABCDABCD 0 1 2... 0 1 1 D 3 1 0 0 D 4 1 0 1 D 5 1 1 0 D 6 Slide 7 di 32 Macchina di Turing Turing concepisce (pubblicato nel 1936) un modello di macchina ideale come esecutore preciso e diligente che leggendo e scrivendo un nastro continuo esegue una dopo l altra le istruzioni ivi indicate secondo uno schema logico fornitogli (algoritmo) con la forma se è vero che. allora.. esegui Il nastro può essere letto nelle due direzioni ed ogni operazione dipende dallo stato attuale della macchina (stato interno o memoria di stato dell evoluzione) Questa macchina doveva risolvere il problema posto nel 1900 da Hilbert Si può, in linea di principio, dettare un metodo meccanico (rigoroso) attraverso il quale per un qualsiasi enunciato matematico si possa dire che esso è vero o falso? Il metodo deve avere una fine cioè deve terminare. (Computabilità di un algoritmo) Alan Turing (1912-1954) Slide 8 di 32 4

Architettura Processore base Slide 9 di 32 Processore BUS di Indirizzamento BUS di Dati Internal BUS Contatore di programma Ciclo +1 legato al clock Decodificatore Istruzioni Registri ausiliari Registro A Registro B Temporizzazione e controllo ALU Flag Slide 10 di 32 5

Rappresentazione delle istruzioni Le istruzioni sono necessariamente strutturate nel seguente modo indicato con il nome di codice operativo o OpCode Codice Operativo Nessun operando Codice Operativo Operando Immediato o codice registri interessati Codice Operativo Destinazione Sorgente 1 Operando Immediato Codice Operativo Destinazione Sorgente 1 Sorgente 2 Estensione del OpCode 8 bit (256 istruzioni) Numero di Byte funzione dell operazione Slide 11 di 32 Programma assembler simbolico / binario Definire il dato A Definire il dato B Definire spazio del risultato come dato C Inizio Carica il dato A Carica il dato B Somma A e B Salva il risultato in C fine Supponiamo di voler effettuare la somma di due numeri A e B e salvare il risultato in una cella di memoria indicata nella sequenza Slide 12 di 32 6

Es Programma elementare Indirizzo di Memoria esadecimale dal program counter Codice caricato dalla memoria Operazione da eseguire 0000 1A Carica il data su A 0001 14 Dato A 0002 1B Carica il data su B 0003 A2 Dato B 0004 2F Somma A con B 0005 A1 Move risultato a 000F 0006 0F LSB address 0007 00 MSB address 000F Trasferimento effettivo 0008 F0 stop... Indirizzo di memoria Al termine del programma 000F B6 Notazione inversa polacca Supponiamo di voler effettuare la somma di due numeri 14 H e A2 H e salvare il tutto in una cella di memoria successiva Risultato in ALU B6 Codice operativo 1A 14 1B A2 2F A1 00 0F F0 Slide 13 di 32 Esecuzione nella CPU OpCode Dato Addr Addr 12 LSomma Load MStore StopA B BUS di Indirizzamento BUS di Dati Internal BUS Decodificatore Istruzioni Registri ausiliari Registro SommaA Registro B Contatore Address di programma DATA +1 Ciclo +1 legato al clock Temporizzazione e controllo Somma ALU Flag Slide 14 di 32 7

Indirizzo di memoria Contenuto numerico in esadecimale Programma assembler ASSEMBLER / binario Linguaggio SIMBOLICO Slide 15 di 32 Es. Istruzioni 8086 Raggruppamenti e tipologie di istruzioni Istruzioni per il Trasferimento Dati (I/O, sorgente / destinazione) Istruzioni Aritmetiche Istruzioni per la manipolazione di BIT (Set/Reset di bit Scorrimento di bit) Istruzioni per il trasferimento di esecuzione del programma (Jump - Call - Return) Istruzioni per il trattamento delle stringhe Istruzioni per il controllo del processore (Sincronizzazione di più processori) Slide 16 di 32 8

Flags bandierine molto importanti Il registro dei flag (Registro di Stato del programma ad 8 o 16 bit), contiene informazioni derivanti dall ultima operazione eseguita o sulla operazione corrente; può essere testato per verificare la situazione delle operazioni dentro la CPU in particolare nell ALU. 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF Overflow Direzione lettura dati interrupt Trap debug Segno Zero Carry ausiliario BCD Parity Carry Slide 17 di 32 FLAG OF DF IF TF SF ZF AF PF CF Overflow Direzione lettura dati interrupt Trap debug Segno Zero Carry ausiliario BCD Parity Carry CARRY : Riporto dal bit più significativo degli operandi PARITY : riporta la parità/disparità dell ultimo operando elaborato CARRY BCD : Riporto nelle operazioni svolte in Binary Coded Decimal ZERO : Risulta 1 quando nell ultima operazione i bit sono tutti a 0 SEGNO : Risulta 1 quando il risultato dell operazione è negativo TRAP Debug : Utilizzato durante il debug del software (step-by-step) INTERRUPT : Risulta 1 quando sono abilitati i segnali Interruzione Direzione Lettura : Utilizzato nella lettura delle stringhe di caratteri OVERFLOW : Risulta 1 quando l ultima operazione ha prodotto questo errore Slide 18 di 32 9

Esempio di set di istruzioni di salto http://www.itipacinotti.it/pagine/sistemi2008/documentation_emulator/asm_tutorial_01.html http://www.itipacinotti.it/pagine/sistemi2008/documentation_emulator/asm_tutorial_07.html Slide 19 di 32 Sitografia / Bibliografia http://cappucci.altervista.org/cpu.html Indirizzi di riferimento per assembler http://faydoc.tripod.com/cpu/jnb.htm istruzione salto condizionato <= http://faydoc.tripod.com/cpu/mov.htm istruzione trasferisci http://www.itipacinotti.it/pagine/sistemi2008/documentation_emulator/8086_instruction_set.html http://www.itipacinotti.it/pagine/sistemi2008/documentation_emulator/asm_tutorial_07.html http://it.wikipedia.org/wiki/alan_turing http://it.wikipedia.org/wiki/john_von_neumann Slide 20 di 32 10

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Ingegneria Medica Rappresentazione dei simboli Una torre di babele Codifica Partendo dalla considerazione che la macchina si esprime solo con combinazioni di 0 ed 1 La simbologia che usiamo per rappresentare le parole ed i significati è il successivo passo di rappresentazione umana che è necessario introdurre nella comunicazione uomo-macchina Si tratta di effettuare quella che viene indicata come CODIFICA DEI SIMBOLI creando un codice opportuno Slide 22 di 32 11

Per CODICE si intende una associazione biunivoca, definita arbitrariamente, tra due entità definite di cui una è spesso simbolica Codifica Codice fiscale Persona fisica Codice postale Zona territoriale Codice genetico Caratterist. Individuo Matricola Studente Targa Autoveicolo N Telefono Mobile entità fisica o logica Codice Morse (sequenze di tratti e linee) con Simboli Codici per computer Simboli Numeri binari Slide 23 di 32 Codifica La codifica è del tutto arbitraria anche se varie aziende e ricercatori nel tempo hanno usato determinati criteri soprattutto finalizzati alla correzione automatica degli errori e alla riduzione delle dimensioni dei dati codificati, ma diversi (EBCDIC, GECDIC, BDC, tante versioni ISO. 00 10 20 30 40 50 60 0 A H T a h t. 1 B K U b k u, 2 C L V c l v + 3 D M W d m w - 4 E N X e n x * 5 F O Y f o y / 6 G P Z g p z Sp 7 H Q h q ( 8 I R i r ) 9 J S j s : 00 10 20 30 40 50 60 0 ( a h t A H T 1 ) b k u B K U 2 * c l v C L V 3 / d m w D M W 4 + e n x E N X 5 - f o y F O Y 6? g p z G P Z 7 : h q H Q Sp 8 ; i r I R 9. j s J S Slide 24 di 32 12

Codice ASCII Codice ASCII (American Standard Code for Information Interchange) Nasce negli anni 60 per risolvere il problema della comunicazione tra diverse case produttrici ormai largamente usato nei personal computer Inizialmente a 7 bit (128 differenti rappresentazioni simboliche) è poi passato ad 8 bit (256 configurazioni) per poter rappresentare anche simboli non appartenenti alla cultura americana Slide 25 di 32 Codice ASCII 0100 0001 4 1 Slide Slide 26 26of di 28 32 13

Codice ASCII esteso Slide Slide 27 27of di 28 32 Codice UNICODE Negli anni 90 nasce dall esigenza di dover rappresentare molte e più disparate simbologie Estensione a 16 bit per un totale di 65536 Successivamente norma internazionale ISO/IEC 10646 che estende ulteriormente a 21 bit la rappresentazione con la quale si è calcolato si possano coprire anche esigenze di rappresentazione di simbologie antiche Grazie alla tecnica di vettorizzazione dei simboli ISO 10646 http://www.iso.org/iso/home.html http://unicode.org/roadmaps/ http://www.nada.kth.se/i18n/ucs/unicode-iso10646-oview.html http://www.columbia.edu/kermit/utf8-t1.html http://www.andrijar.com/tables/unicode.htm Sitografia Slide 28 di 32 14

Fonti Font di caratteri mappati Fonti a mappa di bit I caratteri vengono riprodotti seguendo un ben determinato schema di punti preordinati che costituiscono la mappa esempio 42 punti di altezza Slide 29 di 32 Fonti vettoriali Questi font grafici dei simboli sono definiti in base alle caratteristiche geometriche del carattere un programma (algoritmo di disegno) provvede quindi a costruire, geometricamente, la mappa per quelle specifiche dimensioni partendo dalla sola dimensione in altezza h Fonti di vettoriali caratteri H h=70% H W=25%H L=h/sen(65 ) Slide 30 di 32 15

Sitografia / Bibliografia http://www.unicode.org/ http://www.windoweb.it/edpstory_new/eh1960.htm Slide 31 di 32 Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Ingegneria Medica Lezione 5 Fine 16