Concetti Chiave
- L'architettura IA-32 è un set di istruzioni per microprocessori Intel a 32 bit, integrando elementi già nei processori a 16 bit.
- La IA-32 supporta diversi modelli di memoria: flat, segmentata, e con indirizzamento reale, ciascuno con caratteristiche distintive di gestione della memoria.
- Il modello di memoria flat vede la memoria come uno spazio continuo, mentre il modello segmentato la divide in segmenti con selettori e descrittori.
- Le modalità operative IA-32 includono la modalità protetta per multitasking e sicurezza, e la modalità con indirizzamento reale per semplicità e compatibilità.
- La modalità SMM gestisce funzioni di sicurezza e risparmio energetico, attivandosi tramite specifici interrupt per eseguire operazioni speciali.
Intel Architecture 32 bit
L’architettura IA-32L’architettura IA-32 (Intel Architecture 32 bit) è l’insieme del set di istruzioni e la descrizione dell’ambiente di programmazione per i microprocessori INTEL a 32 bit. L’architettura IA-32 descrive tutte le caratteristiche relative all’ambiente di programmazione dei processori a 32 bit come i registri, le modalità di indirizzamento, la configurazione della memoria ed altro. Alcune caratteristiche proprie della IA-32 sono state inserite già nei processori a 16 bit. Con la CPU INTEL 80286 è introdotta la modalità operativa definita modo protetto. L'INTEL 80386, è la prima CPU a 32 bit della famiglia di processori appartenenti all’architettura IA-32.
Modelli di memoria
Un sistema operativo che lavora con l’architettura IA-32, per accedere alla memoria di sistema utilizza i servizi di Memory Management offerti dal processore.
La memoria fisica è quella cui può accedere direttamente il processore con il suo bus indirizzi. Essa è organizzata come una successione di byte a ciascuno dei quali è assegnato in modo univoco un indirizzo fisico.
Quando sono utilizzati i servizi di Memory Management del processore in uso, i programmi accedono alla memoria fisica utilizzando uno dei seguenti modelli:
- Modello di memoria Flat: la memoria è vista in questo caso come un unico spazio continuo indirizzabile in cui risiede il codice, i dati e lo stack.
- Modello di memoria segmentata: nella memoria sono presenti una serie di spazi indirizzabili detti segmenti. Il codice, i dati e lo stack si trovano in segmenti distinti che possono essere anche di lunghezza diversa. Per indirizzare un byte presente in un segmento, si utilizza il selettore di segmento posto in uno dei registri segmento (CS, DS, SS, ES, FS, GS) che punta ad un descrittore contenuto in una di due tabelle, dette tavola dei descrittori globali (GDT) e tavola dei descrittori locali (LDT). La tavola dei descrittori globali contiene le indicazioni per individuare i segmenti presenti in memoria per tutti i programmi mentre la tavola dei descrittori locali individua i segmenti per un’unica applicazione.
- Modello di memoria con indirizzamento reale: è il vecchio modello 8086 in cui è disponibile uno spazio indirizzabile massimo di 1 Mbyte. Per questo modello è prevista una segmentazione con segmenti di lunghezza fissa pari a 64 kByte. L’indirizzo fisico, di una locazione di memoria appartenente ad un segmento, è trovato direttamente dal contenuto del registro di segmento ed aggiungendo ad esso un offset che varia da 0000h a FFFFh.
Modalità operative IA-32
L’architettura IA-32 definisce più modi di operare per il processore ciascuno dei quali permette di accedere a specifiche istruzioni e caratteristiche architetturali.
- Modalità protetta: possono essere utilizzati in questa modalità tutti i modelli di memoria disponibili. Il modello utilizzato è legato al Sistema Operativo in uso. Se si lavora in multitasking ogni task può usare un modello di memoria differente. È possibile, in modalità protetta in ambiente multitasking, far lavorare il processore con indirizzamento reale. Questo modo di operare, definito modalità-8086 virtuale, non è una modalità operativa vera e propria ma un’opzione per la modalità protetta che può essere abilitata per ogni task.
- Modalità con indirizzamento reale: il processore entra in questa modalità dopo reset. Questo modo di operare è quello proprio della CPU 8086. In questa modalità e possibile utilizzare solamente il modello di memoria con indirizzamento reale. Il processore può passare da questa modalità a quella protetta o a quella SMM.
- Modalità con SMM (System Management Mode): la modalità SMM serve per implementare, in modo trasparente, specifiche funzioni di sicurezza e gestione di risparmio energetico del sistema. Il processore entra in questa modalità se è reso attivo dall’esterno un determinato pin di interrupt (SMI) o quando riceve il comando specifico di interrupt dal controllore avanzato degli interrupt (APIC). La CPU quando diviene attiva questa modalità, entra in un separato spazio di indirizzamene salvando le impostazioni di base dell’attuale programma o task in esecuzione e, quando termina la modalità SMM, il processore è posto nello stato precedente alla sua attivazione.
Domande da interrogazione
- Quali sono le caratteristiche principali dell'architettura IA-32?
- Quali modelli di memoria sono utilizzati nell'architettura IA-32?
- Come funziona il modello di memoria segmentata?
- Quali modalità operative sono definite dall'architettura IA-32?
- Cosa permette la modalità protetta nell'architettura IA-32?
L'architettura IA-32 include il set di istruzioni e la descrizione dell'ambiente di programmazione per i microprocessori INTEL a 32 bit, comprendendo registri, modalità di indirizzamento e configurazione della memoria.
I modelli di memoria utilizzati sono il modello di memoria Flat, il modello di memoria segmentata e il modello di memoria con indirizzamento reale.
Nel modello di memoria segmentata, la memoria è divisa in segmenti distinti per codice, dati e stack, con l'uso di registri segmento e tabelle dei descrittori globali e locali per l'indirizzamento.
Le modalità operative includono la modalità protetta, la modalità con indirizzamento reale e la modalità con SMM (System Management Mode).
La modalità protetta consente l'uso di tutti i modelli di memoria disponibili e supporta il multitasking, permettendo a ciascun task di utilizzare un modello di memoria differente.