Il processore Intel 486DX2

Materie:Appunti
Categoria:Informatica

Voto:

1.5 (2)
Download:200
Data:03.04.2001
Numero di pagine:9
Formato di file:.doc (Microsoft Word)
Download   Anteprima
processore-intel-486dx2_1.zip (Dimensione: 7.97 Kb)
readme.txt     59 Bytes
trucheck.it_il-processore-intel-486dx2.DOC     24.5 Kb



Testo

IL MICROPROCESSORE INTEL 486 DX2
1.0 INTRODUZIONE
I microprocessori della famiglia Intel486 hanno una architettura a 32 bits.
Possiedono inoltre il gestore di memoria, l’ unita’ floating-poit e una cache intregrata nel chip.
Il microprocessore IntelDX4 ha le stesse caratteristiche dei processori Intel486SL e Intel486DX2 ma con migliori prestazioni: velocita’ di clock maggiore e una memoria cache piu’grande.
L’IntelDX4 mantiene la compatibilita’con i precedenti microprocessori della famiglia, e’ percio’possibile eseguire programmi scritti per processori precedenti (ad es. 8086).
Per ridurre il tempo di esecuzione di una istruzione e’stata adottata la tecnica di progettazione RISC.
L’unita’di gestione della memoria (MMU) puo’ lavorare con la tecnica della segmentazione o con quella della paginazione. Questa seconda puo’essere attivata o disattivata dal sistenma operativo.
La memoria e’ organizzata in segmenti di lunghezza variabile al massimo fino a 4 Gb (2 32).
Ad ogni segmento sono associati degli attributi, ad esempio, la posizione in memoria, la dimensione, il tipo, la protezione.
Un task puo’al massimo avere 16381 (2 14) segmenti. Quindi un task puo’ raggiungere una dimensione di 64 Tb (2 64).
L’unita’ di segmentazione fornisce livelli di protezione per isolare e proteggere il sistema operativo ed i programmi applicativi tra di loro.
L’IntelDX4 ha 4 modi operativi:
1) Modo di indirizzamento reale (Modo Reale)
Il mP opera come un veloce 8086. E’ il modo attivo quando si avvia il sistema.
2) Modo protetto e indirizzamento virtuale (Modo Protetto)
Con questo modo e’ possibile accedere a tutte le funzionalita’del sistema: protezione, paginazione ecc.
3) Modo Protetto Virtuale 8086 (Modo Virtuale 8086)
In questo modo i programmi 8086 sono eseguiti con le potenzialita’ derivanti dalle protezioni del mP.
E’cosi’possibile eseguire contemporaneamente piu’programmi 8086 come task indipendenti.
3) Modo Protetto di Sistema.
E’un modo speciale per sviluppatori di software di sistema operativo.
L’unita’ floating-point (FPU) lavora in parallelo con l’ALU. Esegue numerose funzioni matematiche come ad es. tangente, seno, ecc.
La FPU rispetta lo standard ANSI/ IEEE 754-1985 per le operazioni in virgola mobile
La memoria cache interna ha una dimensione di 16 Kb ed e’di tipo associativo a 4 vie con una tecnica di scrittura write-through. Puo’essere attivata o disattivata per memorizzare le pagine della memoria principale.
2.1 I REGISTRI
I registri possono essere suddivisi in 4 gruppi:
- Registri dell’architettura di base
.. registri generali
.. puntatore istruzioni
.. registro dei flag
.. registri di segmento
- Registri di sistema
.. registri di controllo
.. registri di indirizzamento di sistema
- Registri per le operazioni floating-point
.. registri dei dati
.. parola di segnalazione
.. parola di stato
.. puntatori a istruzioni e dati
.. parola di controllo
- Registri di debug e test
Nelle figure seguenti sono illustrati i vari registri appartenenti ai primi 2 gruppi.
2.0 ARCHITETTURA DEL MODO REALE
2.1 INTRODUZIONE
Dopo un reset o all’avviamento, il mP opera in modo reale come un 8086, ma con la potenzialita’dei registri a 32 bit.
Modo di indirizzamento, dimensioni della memoria, gestione degli interrupt sono eguali a quelle di un 80286 che opera in modo reale.
Quasi tutte le istruzioni dell’IntelDX4 sono disponibili, gli operandi sono pero’a 16 bit.
I segmenti possono avere una dimensione massima di 64 Kb. Gli indirizzi effettivi non devono quindi superare questo valore.
Lo scopo di questo modo operativo e’quello di impostare il modo protetto.
2.2 INDIRIZZAMENTO DELLA MEMORIA
In modo reale, la dimensione massima di memoria e’di 1 Mb. Non й possibile attivare la paginazione, pertanto l’indirizzo lineare e’ eguale all’indirizzo fisico.
L’indirzzo fisico si ottiene come nell’8086: E.A.= Reg. segmento * 16 + Offset.
Tutti i segmenti hanno una lunghezza di 64 Kb e possono essere scritti, letti o eseguiti.
I segmenti possono sovrapporsi in memoria in modo da ridurre la memoria occupata da un programma a quella strettamente necessaria.
2.3 LOCAZIONI RISERVATE
Ci sono 2 zone riservate:
- l’area di inizializzazione del sistema, nella zona alta della memoria (FFFFFFF0h - FFFFFFFF)
- l’area contenente la tabella degli interrupt, nella zona bassa della memoria (00000h-003FFh)
3.0 ARCHITETTURA DEL MODO PROTETTO
3.1 INTRODUZIONE
Nell ' IntelDX4, in modo protetto, un indirizzo lineare puo' spaziare fino a 232, (4 Gb) ed uno virtuale fino a 246 (64 Tb).
Tutto il software scritto per i processori 8086, 80286, Intel386 e Intel486 puo’ essere eseguito dal mP con un sofisticato sistema di gestione della memoria e un sistema di protezione hardware.
Il modo protetto fornisce alcune istruzioni specifiche ottimizzate per gestire il multitasking.
L' architettura base del microprocessore (registri, istruzioni,modi di indirizzamento) rimane la stessa dell' Intel486.
Per il programmatore, la differenza maggiore tra modo reale e modo protetto e' l' aumento dello spazio di indirizzamento e il meccanismo diverso di indirizzamento.
3.2 TECNICA DI INDIRIZZAMENTO.
Per formare l' indirizzo logico si utilizzano 2 componenti: un selettore a 16 bit per individuare l’indirizzo di base del segmento e un indirizzo effettivo a 32 bit. I due valori sono sommati assieme e producono un indirizzo lineare a 32 bit che puo’ essere usato come indirizzo fisico oppure, se e' attivo il meccanismo di paginazione , viene mappato nell' indirizzo fisico.
La differenza con il modo reale consiste nel sistema di calcolo: nel modo protetto il selettore e' usato come indice in una tabella di sistema (vedi figura 4.1) che contiene l' indirizzo di base del segmento.
L' indirizzo fisico si ottiene sommando a questo valore l' offset.
La paginazione fornisce un sistema ulteriore di gestione della memoria ed e' disponibile solo nel modo protetto. Il sistema di paginazione trasla l' indirizzo lineare che deriva dall' unita' di segmentazione in un indirizzo fisico come risulta dalla fig. 4.2
3.3 LA SEGMENTAZIONE
3.3.1 INTRODUZIONE
La segmentazione e' un sistema di gestione della memoria e fornisce i meccanismi di base per la protezione. I segmenti servono per raggruppare regioni di memoria con gli stessi attributi. Ad esempio, il codice di un programma e' contenuto in un segmento, una tabella di sistema e' contenuta in un segmento.
Tutte le informazioni su un segmento sono contenute in una struttura di 8 bytes chiamata descrittore.
I descrittori sono contenuti in strutture chiamate tabelle.
3.3.2 TERMINOLOGIA
Termini usati nel seguito:
PL: livello di privilegio, e' uno dei 4 livelli gerarchici di privilegio. Il livello 0 e' il piu' privilegiato, il 3 e' il meno privilegiato
RPL: livello di privilegio richiesto, e' il livello di privilegio richiesto nella formazione dell' indirizzo. Corrisponde ai 2 bit meno significativi del selettore.
DPL: livello di privilegio del descrittore, e' il livello minimo di privilegio con cui un task puo' accedere al descrittore e quidi al segmento associato. E' determinato dai bit 5 e 6 del byte dei diritti di accesso presente nel descrittore;
CPL: livello di privilegio corrente, e' il livello di esecuzione del task, uguale al livello di privilegio presente nei 2 bit meno significativi del CS. Unica eccezione quando un task sta eseguendo un codice di segmento conforme.
EPL: livello di privilegio effettivo, e' il minore (maggiore numericamente) tra RPL e DPL
TASK: programma in esecuzione, detto anche processo.

3.3.3 TABELLE DEI DESCRITTORI
3.3.3.1 INTRODUZIONE
Le tabelle dei descrittori definiscono tutti i segmenti usati in un sistema IntelDX4.
Ci sono 3 tipi di tabelle: tabella dei descrittori globali, tabella dei descrittori locali, tabella dei descrittori di interrupt. La lunghezza di ogni tabella e' variabile da un minimo di 8 byte (1 solo descrittore) ad un massimo di 64 Kb (8192 descrittori). I 13 bits piu' significativi di un selettore sono usati come indice nella tabella.
Ad ogni tabella e' associato un registro che memorizza l' indirizzo di base a 32 bit ed il limite a 16 bit.
I registri sono: GDTR, LDTR, IDTR, vedi fig. 4.3.
Per caricare i registri con i valori di base esistono le istruzioni privilegiate LGDT, LLDT, LIDT.
Per memorizzare i valori delle basi e dei limiti esistono le istruzioni SGDT, SLDT, SIDT.
3.3.3.2 TABELLA DEI DESCRITTORI GLOBALI
Contiene i descrittori accessibili da tutti i task del sistema. Puo’ contenere descrittori di tutti i tipi di segmento ed eccezione del tipo interrupt. Ogni processore IntelDX4 contiene una GDT.
In genere la GDT contiene descrittori di segmenti codice e dati usati dal sistema operativo, descrittori dei TSS e descrittori delle LDT. Il primo elemento della GDT e' vuoto e corrisponde al selettore nullo, definisce un puntatore a nessun segmento.
3.3.3.3 TABELLA DEI DESCRITTORI LOCALI
La LDT contiene descrittori di segmenti associati ad un task. In generale i sistemi operativi prevedono che ogni task abbia una separata LDT.
La tabella puo' contenere descrittori di codice, di dati, di stack, di gate di tipo task e call.
Con la LDT si ottiene la separazione del codice e dei dati di un task dal resto del sistema operativo.
La GDT, invece, contiene descrittori di segmenti comuni a tutti i task.
Un task non puo' accedere ad un segmento di memoria se il descrittore di quel segmento non e' presente nella LDT o nella GDT.
Con questo sistema si riesce ad ottenere l' isolamento e la protezione tra task, ma anche la condivisione di dati globali.
Come per i registri GDTR e IDTR, la parte visibile dell' LDTR contiene un selettore da 16 bit che punta ad un descrittore di LDT nella GDT.
3.3.3.4 TABELLA DEI DESCRITTORI DI INTERRUPT
Contiene i descrittori delle routines di interrupt. Il numero massimo di elementi e’ di 256.
I descrittori possono essere solo di 3 tipi: gates di tipo task, interrupt o trap.
La lunghezza minima della tabella e' di 256 bytes per poter contenere i 32 interrupt riservati di Intel. Ogni interrupt usato dal sistema deve avere un descrittore in IDT. Si accede al descrittore tramite una istruzione INT, un interrupt hardware o una eccezione.
3.3.4 DESCRITTORI
3.3.4.1 BITS DEI DEGLI ATTRIBUTI
Un descrittore e' formato di 8 bytes che contengono attributi riguardanti un oggetto (il segmento).
Gli attributi sono: l' indirizzo lineare di base del segmento ( 32 bits), la lunghezza (20 bits) e la granularita' del segmento, il livello di protezione, la lunghezza di default dell' operando (16 o 32 bits) ed il tipo di segmento.
Tutti gli attributi sono contenuti in 12 bit del descrittore. La fig. 4.5 illustra il formato generale di un descrittore.
Tutti i segmenti hanno in comune 3 attributi: il bit P, il DPL ed il bit S.
Il bit P indica se il segmento e' presente in memoria, se P=0 un tentativo di accedere al segmento genera una eccezione 11.
DPL (2 bits) specifica il livello di protezione associato al segmento.
L' IntelDX4 ha 2 categorie di segmenti: segmenti di sistema e segmenti non di sistema (per codice e dati). Il bit S identifica i due tipi di segmento: se S=0, si tratta di un segmento di sistema, se S=1, si tratta di un segmento di codice o di dati.
3.3.4.2 DESCRITTORI DI TIPO CODICE E DATI (S=1)
La fig. 4.6 presenta il formato generale di un descrittore di tipo codice e dati e la tab. 4.1 riporta il significato dei bits del byte dei diritti di accesso.
I descrittori di codice e dati hanno diversi campi in comune.
Il bit di accesso A viene impostato ogni volta che si accede al segmento, cosicche’ il sistema operativo puo’ elaborare informazioni statistiche sull’uso del segmento.
Il bit G (granularita’) indica se il segmento ha una lunghezza multipla di 1 byte o di una pagina.
Il bit E (eseguibile) indica se si tratta di un segmento di dati o di codice.
Il bit R (leggibile) assieme al bit E indica se il segmento puo’essere letto o solo eseguito.
Il bit ED (direzione di espansione) indica se il segmento puo’espandersi verso l’alto (dati) o verso il basso (stack).
Il bit W (scrittura) indica se si puo’ scrivere sul segmento.
Il bit B (dimensione operando) indica se le operazioni di stack sono a 16 bit o a 32 bit.
3.3.4.3 FORMATI DEI DESCRITTORI DI SISTEMA.
I segmenti di sistema forniscono informazioni sulle tabelle di sistema, sui task e sui gates.
La fig. 4.7 presenta il formato generale dei descrittori di sistema ed i vari tipi di segmenti di sistema.
I descrittori sono eguali a quelli del mP 80286 nei primi 6 bytes e differiscono solo negli ultimi 2.
3.3.4.4 DESCRITTORE DI LDT ( S=0, TIPO=2)
Contiene informazioni sulla LDT. Sono presenti solo in GDT.
3.3.4.5 DESCRITTORE DI TSS (S=0, TIPO=1,3,9,B).
Contiene informazioni sulla posizione, lunghezza, livello di privilegio del TSS associato ad un task.
TSS e’ un segmento con un formato particolare contenente le informazioni sullo stato di un task ed un link ad un altro task . Il tipo (1,3,9,B) indica se il task e’ occupato o no, se e’ un task 286 o 486.
Il registro TR contiene il puntatore al task attivo in quel momento.
3.3.4.6 DESCRITTORE DI GATE (S=0, TIPO=4-7, C, F).
I gate sono usati per controllare l’accesso ad un segmento.
Ci sono 4 tipi di gate: call, trap, interrupt e trap.
I gates di tipo call sono usati per modificare il livello di privilegio, ad esempio richiamando una routine a livello di privilegio maggiore o eguale.
I gates di tipo task sono usati per eseguire una commutazione di task. Essi puntano solo a segmenti di tipo TSS.
I gates di tipo interrupt o trap sono usati per specificare le routines di gestione degli interrupt. La differenza tra i due tipi consiste nel fatto che i primi disabilitano gli interrupt i secondi no.
La fig. 4.8 presenta il formato dei 4 tipi di descrittori.
3.3.4.7 DIFFERENZE TRA DESCRITTORI 80286 E 80486
Per mantenere la compatibilita’ il mP IntelDX4 gestisce tutti i descrittori dell’80286.
Le differenze sono:
- nel bit di granularita’
- nel numero di bits per individuare la base del segmento (24 nel 286, 32 nel 486)
- nel numero di bits per il limite (16 nel 286, 20 nel 486).
3.3.4.8 IL SELETTORE ED I REGISTRI DI SEGMENTO
Il formato ed il significato dei campi del selettore e’lo stesso dell’80286.
Anche nell’IntelDX4 esistono dei registri di cache associati ai registri di segmento. Le informazioni contenute sono le stesse mentre la dimensione e’maggiore.

Esempio