Microprocessori Generalità dei microprocessori Intel

Slides:



Advertisements
Presentazioni simili
A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI
Advertisements

La struttura fisica e logica di un elaboratore
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Dalla scrittura all’esecuzione
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Architettura di un sistema informatico Hardware
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
MICROCONTROLLORI Di Tiziano Ragazzi.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il livello Microarchitetturale
Il Linguaggio Macchina
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Architettura degli elaboratori
CPU (central process unit)
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
LEvoluzione dei computer In principio fu Eniac il primo calcolatore ad essere in grado di eseguire trecento moltiplicazioni al secondo. Bisogna aspettare.
Microprocessore Intel 8086
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Introduzione al linguaggio assemby del microprocessore a parte
Istruzioni per la Manipolazione dei Bit
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Dimitri Caruso Classe 2^ Beat ISIS G. Meroni Anno Scolastico 2007/08
Introduzione al linguaggio assembly del microprocessore a parte
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
STRUTTURA DI UN COMPUTER
Architettura di una CPU
Architettura del calcolatore
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
INFORMATICA = INFOrmazione + autoMATICA L’informazione una delle risorse strategiche più importanti della società moderna Capacità di gestire l’informazione.
ORGANIZZAZIONE DI UN SISTEMA DI ELABORAZIONE
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
Calcolatori Elettronici Il Processore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
Laboratorio Informatico
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Architettura di un calcolatore e linguaggio macchina.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
STRUTTURA DELL’ELABORATORE
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Microprocessori Generalità dei microprocessori Intel Set istruzioni 8086 Francesca Del Giorno III A “ E. Mattei” Anno 2006/2007

MICROPROCESSORE Un microprocessore è un componente elettronico digitale formato da transistor racchiuso in uno o più circuiti integrati. Uno o più processori sono utilizzati come CPU (control processing unit)che ha il compito di eseguire il ciclo istruzioni, in pratica è in grado di effettuare operazioni di lettura/scrittura della memoria centrale o dei registri di imput/output e di interpretare i codici. I microprocessori furono resi possibili dall’avvento dei microcomputer. Prima le CPU erano realizzate con circuiti a bassa scala di integrazione che erano in grado di contenere solo pochi transistor. Con il progresso della tecnologia si riuscirono a integrare abbastanza transistor in un circuito integrato da realizzare una CPU completa. Questo permise di ridurre i costi dei microprocessori. Dagli anni 70 in poi i microprocessori sono l’implementazione maggiormente utilizzata di CPU.

GENERALITA' SUI MICROPROCESSORI Il microprocessore è costituito da un monocristallo di silicio estremamente puro, sezionato finemente, quindi trattato ad altissime temperature in forni che contengono vari tipi di impurità allo stato gassoso. Queste impurità devono legarsi alla struttura reticolare del cristallo, influenzando la sua capacità di condurre elettricità. Il silicio diventa così un semiconduttore ed è in grado quindi di resistere al passaggio di corrente elettrica in misura maggiore rispetto ai normali conduttori come il rame, ma non tanto quanto gli isolanti. Il microprocessore (o unità centrale di elaborazione, CPU) è una elaborata combinazione transistor, che si definisce circuito integrato. I circuiti integrati vengono adoperati nei più svariati settori, dall'amplificazione dell'audio al controllo delle funzioni di un microonde; i microprocessori si differenziano da altri circuiti integrati del genere per il fatto che le variazioni elettriche, conseguenti ai segnali d'ingresso, si verificano all'interno del processore stesso in base a particolari elaborazioni. L'unità centrale di elaborazione assolve due funzioni fondamentali: Governa tutte le operazioni del sistema, generando tutti i segnali occorrenti per il funzionamento degli altri circuiti ad esso collegati. Esegue tutti i calcoli aritmetici e logici. Il processore può essere quindi suddiviso in due parti: l'unità di controllo (Control Unit) e l'unità logico-aritmetica (ALU). E' presente inoltre una memoria locale, ovvero un insieme di dispositivi, detti registri, che vengono utilizzati per il controllo dell'esecuzione di un programma.

L'elaborazione avviene con il reperimento da parte della Control Unit dell'istruzione da eseguire dalla memoria centrale all'indirizzo contenuto dal registro Program Counter. L'istruzione viene trasferita nel registro Instruction Register e il Program Counter viene incrementato in modo da puntare all'istruzione successiva. La CPU, dopo aver interpretato l'istruzione, emette segnali che producono la sua esecuzione. Se sono necessari calcoli, interviene l'ALU. Il procedimento appena descritto attraverso il quale la CPU esegue un'istruzione prende il nome di ciclo macchina, che può essere idealmente suddiviso in tre parti: Nella fase di fetch la Control Unit reperisce l'istruzione dalla memoria e viene incrementato il valore del Program Counter in modo da puntare all'istruzione successiva. Nella fase di decode l'istruzione viene interpretata: l'interpretazione può avvenire attraverso circuiti logici già predisposti al momento di costruzione del processore (logica cablata), oppure attraverso microistruzioni contenute in una apposita parte della ROM (logica microprogrammata). Nel primo caso, le funzioni eseguibili sono prefissate fisicamente e il sistema comporta una certa rigidità; nel secondo caso, l'interpretazione avviene cercando nella ROM la sequenza di passi elementari di cui l'istruzione da interpretare è a sua volta composta. Nella fase di execute la Control Unit invia segnali che rappresentano opportuni comandi per l'esecuzione. Il ciclo macchina è scandito da un temporizzatore o clock: un oscillatore al quarzo che emette segnali a intervalli di tempo regolari, all'interno di ciascuno del quale si svolge un passo elementare di funzionamento.

Vediamo questi due valori riferiti ad alcuni processori Intel: La frequenza di oscillazione del clock determina la velocità della macchina. Tale velocità è misurata in megahertz, ovvero milioni di oscillazioni al secondo. Dato che ogni singola istruzione elementare richiede generalmente più di un ciclo di clock, la velocità dell'unità centrale può essere misurata anche in MIPS (Millions Instruction Per Second, milioni di istruzioni al secondo). Vediamo questi due valori riferiti ad alcuni processori Intel:   8080 8086 8088 80286 80386dx MHz 2 5 8 16 MIPS 0,64 0,33 1,2 6 Data di rilascio 4/74 6/78 2/82 10/85     80386sx 80486dx 80486sx 80486dx2 MHz 16 25 20 50 MIPS 2,5 16,5 40 Data di rilascio 6/88 4/89 4/91 3/92

ARCHITETTURA RISC-CISC Esistono due tecnologie per la costruzione di microprocessori: la CISC (Complex Instruction Set Computer) e la RISC (Reduced Instruction Set Computer). I processori CISC sono quelli di uso più comune: la loro potenzialità viene incrementata attraverso l'aumento delle operazioni che riescono ad effettuare, andando a cercare addirittura dei macrocomandi comuni a molti linguaggi di programmazione. Aumentando così il numero dei comandi disponibili si ottiene maggiore potenzialità e conseguente semplicità di programmazione. Il concetto costruttivo di un microprocessore RISC è invece la forte riduzione del numero di istruzioni in modo da poter conciliare la velocità del microprocessore con l'esecuzione di queste. Il fine principale della struttura RISC è quello di produrre processori ad alta velocità e dal costo ridotto, data la minore complessità del progetto. Lo svantaggio della tecnologia RISC è il fatto che per i RISC sono stati sviluppati sistemi operativi a minore diffusione rispetto a quelli sviluppati per i CISC, come Windows. Inoltre è conseguenza dell'architettura RISC la maggiore complessità dei programmi: se i processori riconoscono una quantità molto bassa di istruzioni, il programmatore deve sopperire con il software per far svolgere ad essi operazioni complesse. In questo caso diventa praticamente obbligatorio studiare, di ogni porzione di codice, il metodo per renderla più veloce, e l'ottimizzazione del codice diviene di primaria importanza nello sviluppo dei sistemi di tipo Risc. I processori CISC più conosciuti sono la famiglia di CPU della Intel: 80286, 80386, 80486, Pentium. Altri costruttori, come AMD e Cyrix, producono microprocessori compatibili.

I processori RISC si utilizzano da vari anni nelle cosiddette "stazioni di lavoro" (workstation), ossia elaboratori con prestazioni e prezzi superiori a quelli dei PC. Ogni casa produttrice di workstation ha sviluppato un proprio processore RISC. IBM per esempio utilizza il processore RISC 6000, la MIPS ha realizzato R3000 e R4000, SUN ha sviluppato lo SPARC, mentre la DIGITAL impiega l'ALPHA.

Intel 1979 Alla fine del 1979 l'Intel presentò il suo nuovo microprocessore a 16 bit  l' 8086 il primo di una famiglia che , insieme a quella sviluppata dalla motorola a partire dal 68000, avrebbe dominato il mercato dei sistemi operativi a 16 bit , sopratutto dopo l'introduzione ,a partire dal 1981 del PC IBM basato sull'8088 , immediata derivazione del 8086 .Il microprocessore 8086 è stato sviluppato dall'Intel come evoluzione dell'8080 di cui lo z-80 è la versione migliorata.  Il successo della famiglia è stato poi confermato dagli sviluppi successivi dei personal computer IBM basati sui microprocessori Intel e precisamente sugli Intel 80286    80386 e 80486 derivati dall'8086 con un aumento progressivo delle prestazioni che ha portato per il PC 80486 ad una potenza di calcolo di decine di MIPS (milioni di istruzioni al secondo). Le caratteristiche principali dell'8086 sono, per l'hardware , il contenitore a 40 piedini , il multiplessaggio dei bus dati ,indirizzi e status ,la possibilità di indirizzare 1.048.576 locazioni di memoria , l'esistenza di due diversi modi di funzionamento ,minimo e massimo e il funzionamento cosiddetto a pipeline per cui mentre una parte della CPU sta eseguendo una istruzione ,un altra parte carica dalla memoria e inserisce in una coda di attesa una istruzione successiva.Per ciò che riguarda il software le caratteristiche principali sono un set di istruzioni e una disponibilità di modi di indirizzamento molto maggiore rispetto ai microprocessori a 8 bit (Zilog Z-80) e la possibilità di operare direttamente sui singoli byte , sulle parole a 16 bit (WORD) e sui blocchi.

   -8086- SET DI ISTRUZIONI Per quanto riguarda l'inserimento delle istruzioni ci sono vari comandi a disposizione per ogni tipo di azione che dobbiamo far eseguire al programma: ISTRUZIONI DI SPOSTAMENTO DEI DATI; ISTRUZIONI LOGICHE; ISTRUZIONI ARITMETICHE; ISTRUZIONI DI MODIFICA DEL FLUSSO(SALTI E ITERAZIONI); ISTRUZIONI DI IMPUT/OUTPUT; ISTRUZIONI VARIE; Al primo gruppo appartengono quei comandi che reperiscono i propri operandi direttamente nelle locazioni di memoria indicate dalle istruzioni.     ISTRUZIONI DI SPOSTAMENTO DEI DATI Per spostamento dati si intende il trasferimento di dati da una zona ad un altra di memoria o la diretta assegnazione di un valore a una locazione di memoria o a un registrassi può parlare di spostamento di valori da un registro a una locazione di memoria oppure il contrario, o ancora da un registro ad un altro registro.

Le istruzioni di questa classe hanno una grande versatilità ma anche una grande facilità d'uso.Nell'8086 si riesce con una sola istruzione a trasferire i dati tra le differenti aree del processore. Per questo tipo di processi si utilizza il comando:                     MOV <dest>,<sorg>   nella quale MOV sta per move(sposta); ES.Caricare nel registro B il contenuto del registro A = MOV BH,AH   ISTRUZIONI LOGICHE Le istruzioni logiche servono per effettuare le normali operazioni OR,AND,NOT,XOR:                  OPERAZIONE                      8086                 AND logico            AND <op>,<op>                  OR logico            OR <op>,<op>          OR esclusioni (XOR)            XOR <op>,<op>            Negazione bit a bit                  (comp. a1)                NOT <op> ES.OR CL,BL ES.XOR AX,BX

ISTRUZIONI ARITMETICHE Le istruzioni aritmetiche classiche sono quelle di sottrazione, addizione,moltiplicazione alle quali vanno aggiunte  alcune istruzioni specifiche del contesto come l'incremento e il decremento dell'operando.                 OPERAZIONE 8086             Somma di due operandi ADD<op>,<op>   Somma di due operandi e riporto ADC <op>,<op> Sottrazione tra due operandi                  SUB <op>,<op>     Sottrazione tra due op. e del riporto                    SBB <op>,<op>          Confronto tra due operandi                    CMP <op>,<op>         Cambio segno (compl. a due)                      NEG <op>            Incremento dell'operando                       INC <op>           Decremento dell'operando                       DEC <op>

ISTRUZIONI DI MODIFICA DEL FLUSSO Le istruzioni di modifica del flusso sono tutte quelle istruzioni che modificano la normale esecuzione sequenziale del programma. Una modifica del flusso è data dalle istruzioni di salto e da quelle iterative. Le istruzioni di salto si dividono in due gruppi principali: salti condizionati; salti incondizionati; ISTRUZIONI  DI SALTO INCONDIZINATO: Un'istruzioni di salto incondizionato verso l'indirizzo indicato, sono quelle che fanno in modo che l'esecuzione continui a partire dall'indirizzo segnalato ogni volta che essa viene incontrata.Una istruzione di questo tipo viene eseguita sempre e comunque dalla CPU, indipendendemente dalla posizione che occupa all'interno dalla seguenza d'istruzioni del programma. I salti incondizionati si dividono a sua volta in salti assoluti e salti relativi. SALTI INCONDIZIONATI ASSOLUTI: Un salto incondizionato assoluto ha la seguente forma: JUMP <ind> dove <ind> indica l'indirizzo della locazione di memoria che contiene l'istruzione a cui saltare.

ISTRUZIONI DI SALTO CONDIZIONATO: SALTI INCONDIZIONATI RELATIVI: Nei salti incondizionati relativi l'indirizzo a cui saltare è ottenuto sommando lo spiazzamento (<disp>) al contenuto di IP. Questo tipo di istruzione è rappresentata nel seguente modo: JUMPR <disp> Lo spiazzamento non corrisponde al numero di istruzioni da saltare, bensì al numero di byte da saltare.     ISTRUZIONI DI SALTO CONDIZIONATO: I salti condizionati vengono eseguiti solamente quando si verifica una determinata condizione: se quella condizione non si verifica la CPU  ignora l'istruzioni di salto per proseguire il normale svolgimento del programma. Nell'istruzione si deve indicare sia la condizione per cui dovrà avvenire l'eventuale salto, sia la destinazione (in modo assoluto relativo) del salto. Una generica istruzione di salto condizionato ha una sintassi del tipo: JUMPC <cond>, <dest> Dove  <cond> indica la condizione di salto e <dest> la destinazione (indirizzo spiazzamento) del salto. L'8086 non consente il salto assoluto perchè ha un numero di byte troppo inferiore rispetto allo Z-80.

J <cond>, <disp> Nei salti condizionati relativi ( unico tipo di salto permesso nell'8086 ) la sintassi è del tipo: J <cond>, <disp> STRUTTURE DI CONTROLLO CONDIZIONALI E ITERATIVE Queste istruzioni servono per le strutture di salto più complesse              Istruzioni di controllo                     Funzioni                          LOOP <disp>                           salta se CX è diverso da 0              LOOPZ <disp> oppure LOOPE <disp>                 salta se CX è diverso da 0 e il flag Z vale 1            LOOPNZ <disp>oppure LOOPNE <disp>                  salta se CX è diverso da 0 e il flag Z vale 0      ISTRUZIONI DI INPUT/OUTPUT Le istruzioni di questo gruppo sono quelle che consentono il trasferimento di informazioni tra periferiche e microprocessore sia in ingresso(da periferica a processore) che in uscita(da processore a periferica).                         OPERAZIONE                                8086 input in <acc> dalla periferica di indirizzo <ind>                      IN <acc>,<ind> input in <acc> dalla periferica con indirizzo nel registro DX                         IN <acc>,DX Output nella periferica <ind> del valore di <acc>                        OUT <ind>,<acc> Output in periferica di indirizzo in DX del valore di <acc>                         OUT DX,<acc> ES. Trasferisci il dato dal registro XX alla periferica di indirizzo F5: OUT F5,A    

Shift a sinistra (aritmetico e logico) ISTRUZIONI VARIE Vista la varietà di questa classe ci limitiamo a commentarvi il gruppo di istruzioni più comuni e di uso frequente.Ci occuperemo in dettaglio delle istruzioni di scorrimento dei bit e commenteremo le istruzioni di gestione dei blocchi sequenziali di dati.   ISTRUZIONI DI SCORRIMENTO Le istruzioni di questo gruppo permettono di far scorrere il byte,indicato come sorgente, di un bit alla volta verso destra o verso sinistra, secondo modalità differenti da istruzione a istruzione. Vi riportiamo nella seguente tabella un riepilogo delle istruzioni più comuni di questa classe:                    Operazione                       8086             Rotazione a sinistra           ROL <dest>,<cont>   Rotazione a sinistra con riporto           RCL <dest>,<cont>              Rotazione a destra           ROR <dest>,<cont>    Rotazione a destra con riporto           RCR <dest>,<cont> Shift a sinistra (aritmetico e logico)           SAL <dest>,<cont>           SHL <dest>,<cont>         Shift a destra (aritmetico)           SAR <dest>,<cont>           Shift a destra (logico)           SHR <dest>,<cont> Le istruzioni di scorrimento dei bit vanno suddivise in due gruppi: le istruzioni di rotazione e le istruzioni di shift.

GESTIONE DI BLOCCHI SEQUENZIALI DI DATI: Le prime effettuano uno spostamento dei bit nella direzione indicata,per cui i bit traboccano da una estremità, ricompaiono circolarmente dall'altra. Le istruzioni di shift, effettuano modifiche o forzature legate al bit che trabocca durante lo scorrimento.   GESTIONE DI BLOCCHI SEQUENZIALI DI DATI: In questo gruppo ritroviamo una serie di istruzioni che permettono di:   Trasferire un blocco di dati da una zona di memoria in un'altra; Ricercare in un blocco di dati un valore contenuto in un registro sorgente. Queste istruzioni  richiedono l'impostazione preventiva di alcuni registri,per cui non richiedono degli operandi indicati esplicitamente nell'istruzione. L'8086 è fornito di istruzioni che ci permettono di trasferire il blocco byte per byte  o parola per parola,basta indicargli il segmento a cui facciamo riferimento.Le istruzioni seguono la seguente sintassi: MOVSB          MOVSW Esse servono per trasferire un byte (MOVSB) e una parola (MOVSW) dalla locazione di indirizzo SI (spiazzamento) e DS (registro segmento) nella destinazione il cui indirizzo è composto da DI(spiazzamento) e da ES (registro di segmento). Se aggiungiamo al programma l'istruzione: REP e impostiamo CX al numero di byte da trasferire avremo un trasferimento dell'intero blocco.