Modalità di Funzionamento del Processore 8086: Real, Protetto, V86, SMM
Quattro Modalità della Linea 8086/80286/80386+
L'8086 stesso esegue solo in Modalità Reale. I suoi successori hanno aggiunto modalità; l'80386+ supporta tutte e quattro. Comprenderle chiarisce l'evoluzione x86.
1. Modalità Reale (Nativa 8086)
- Indirizzamento: 20-bit (segmento:offset → fisico = segmento×16 + offset). Limite 1 MB.
- Registri: 16-bit (AX, BX, CX, DX, SI, DI, BP, SP, IP, FLAGS, CS, DS, ES, SS).
- Protezione: Nessuna. Qualsiasi codice può accedere a qualsiasi memoria, I/O, interrupt.
- Uso: DOS, BIOS, bootloader, OS 16-bit. Default al reset.
2. Modalità Protetta (80286+)
- Indirizzamento: 24-bit (286) → 32-bit (386+) indirizzi lineari tramite tabelle descrittori (GDT/LDT/IDT).
- Segmentazione: I segmenti hanno base, limite, privilegio (DPL 0–3), tipo (codice/dati/sistema).
- Paginazione (386+): Pagine 4 KB, directory pagine CR3, memoria virtuale, paging su richiesta.
- Anelli di Privilegio: Anello 0 (kernel), Anello 3 (utente). Applicazione hardware.
- Multitasking: Switch task hardware (TSS) o scheduler software.
- Ingresso: PE=1 in CR0 (386) / MSW (286); carica GDT, IDT, salta lontano per svuotare pipeline.
3. Modalità Virtuale 8086 (V86) (386+)
- Concetto: Multiple "macchine virtuali" Real Mode all'interno della Modalità Protetta.
- Ogni Task V86: Ottiene proprio spazio indirizzo virtuale 1 MB, IVT virtuale, hardware virtuale.
- Trapping: Istruzioni privilegiate (CLI, STI, IN, OUT, INT) fanno trap al Ring 0 monitor (VMM/DPMI host).
- Uso: DOS box in Windows 3.x/9x/NTVDM, DOSEMU, EMM386.
4. Modalità di Gestione Sistema (SMM) (386 SL / 486+)
- Attivazione: Pin SMI# (hardware) o trap I/O SMI.
- Contesto: Salva intero stato CPU in SMRAM (memoria nascosta).
- Codice: Handler SMI BIOS/UEFI — gestione alimentazione, termico, controllo hardware, aggiornamenti firmware.
- Trasparente: Invisibile a OS/applicazioni; ritorna tramite RSM.
Riepilogo Transizioni Modalità
| Da → A | Meccanismo | Attivazione Tipica |
|---|---|---|
| Reset → Reale | Hardware | Accensione / RESET# |
| Reale → Protetta | Software (PE=1 + salto lontano) | Bootloader OS (Linux, Windows) |
| Protetta → V86 | Switch task a TSS V86 | Host DPMI / NTVDM |
| Qualsiasi → SMM | Hardware SMI# | Termico, pulsante accensione, USB legacy |
| SMM → Precedente | Istruzione RSM | Uscita handler SMI |
L'x86-64 moderno aggiunge la Long Mode (64-bit) con sotto-modalità compatibilità/legacy—ma le quattro sopra rimangono il fondamento architetturale.