A2 - IL PROCESSORE 8086 (1)

A2 - IL PROCESSORE 8086

  • Parte del corso di Sistemi e reti

  • Classe III IIS G. Vallauri

La Famiglia x86

  • Composta da molti processori di diverse aziende (Intel, IBM, Fujitsu, OKI, Siemens).

  • Il processore 8086 è il primo della famiglia x86.

  • Garantita retrocompatibilità:

    • Ogni processore può eseguire codice dei precedenti.

Architettura x86

  • Architettura logica condivisa tra i sistemi x86.

  • Instruction Set Architecture: visione del processore dal programmatore.

  • Tipologie di architettura:

    • x86-16: 16 bit (8086)

    • x86-32: 32 bit

    • x86-64: 64 bit

Il Processore 8086

  • Nato nel 1978.

  • “Antenato” della famiglia x86.

  • Spazio di indirizzamento: 1 MB.

  • Parallelismo: 16 bit (usa registri e bus a 16 bit).

I Registri del 8086

  • Registri:

    • Data Register

    • Instruction Queue

    • Address/Data: AH, AL, BH, BL, CH, CL, DH, DL, SP, BP

    • Segment Register

    • ALU

    • Control (20 pin e 16 pin)

Tipi di Registri

  • Registri Dato:

    • AX (Accumulator Register)

    • BX (Base Register)

    • CX (Count Register)

    • DX (Data Register)

  • Registri Segmento:

    • CS (Code Segment)

    • DS (Data Segment)

    • ES (Extra Segment)

    • SS (Stack Segment)

  • Registri Puntatore:

    • PC (Program Counter)

    • SP (Stack Pointer)

    • SI (Source Index)

    • DI (Destination Index)

Organizzazione della Memoria

  • Memoria segmentata in 64 Kbyte.

  • Tipi di segmenti:

    • Codice, Dati, Stack, Extra.

Registri Segmento

  • Utilizzati per costruire indirizzi fisici.

  • Puntano all'inizio dei vari segmenti:

    • CS, DS, ES, SS.

Registri Puntatore

  • Contengono indirizzi relativi (offset):

    • PC/IP per il prossimo codice nel CS.

    • SP per la cella corrente nel SS.

    • SI/DI per i dati nel CS.

Registri Ulteriori

  • IR (Instruction Register): codice binario dell'istruzione in esecuzione.

  • MDR (Memory Data Register): dati letti o scritti.

  • MAR (Memory Address Register): ultimo indirizzo di memoria referenziato.

Registro di Stato (PSW)

  • 16 bit, 9 utilizzati come flag.

  • Tipi di Flag:

    • Condizione (

      • SF, ZF, PF, CF, OF)

    • Controllo (IF, TF).

Componenti 8086

  • EU (Execution Unit)

  • CU (Control Unit)

  • BIU (Bus Interface Unit)

Il Clock

  • Regola l'attività della CPU mediante un oscillatore.

  • Misurato in Herz.

  • Esempio di clock 8086: 4.77 MHz.

Ciclo Fetch-Decode-Execute (FDE)

  • Fasi:

    • Fetch: lettura dell'istruzione dalla memoria.

    • Decode: decodifica dell'istruzione.

    • Execute: esecuzione dell'istruzione.

  • Eseguito in sequenza fino al termine del programma.

Gestione Memoria in 8086

  • Memoria segmentata in massimo 64 Kbyte per segmenti.

  • Inizio a indirizzi multipli di 16.

Esempi di Calcolo Indirizzi

  • Le istruzioni in Assembler sono riferite a segmenti differenti con offset variabili.

  • Utilizzo del registro CS e PC per determinare indirizzi assoluti.

Gestione dello Stack

  • Caratteristiche dello Stack:

    • Regole LIFO per la memorizzazione.

    • Dimensione fissa o configurabile del segmento.

  • Istruzioni di gestione Stack:

    • PUSH: salva nel Stack.

    • POP: preleva dal Stack.

  • Attenzione a overflow e underflow dello Stack.

Pipeline

  • Migliora l'efficienza del ciclo F-D-E.

  • Divisione dei compiti tra EU, CU e BIU.

  • Coda di Istruzioni (Instruction Queue) per migliorare la velocità di esecuzione.