21-­‐10-­‐2010 Intel 8086 Intel 8086 L'Intel 8086 è un microprocessore a 16 bit progettato dalla Intel nel 1978, che diede origine all'architettura x86. È basato sull'8080 e sull'8085 (è compatibile con l'assembly dell'8080), con un insieme di registri simili, ma a 16 bit. Ha quattro registri a 16 bit per uso generico, a cui si può accedere come se fossero otto registri a 8 bit, e quattro registri a 16 bit di indice (incluso lo stack pointer). A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI I registri per i dati sono spesso utilizzati implicitamente dalle istruzioni, complicando l'uso degli stessi per memorizzare valori temporanei. Ha uno spazio di indirizzamento a 16 bit per l'I/O (cioè può accedere a 65.536 dispositivi di I/O a 8 bit e dispone di una tabella di vettori per gli interrupt fissa. La maggior parte delle istruzioni possono accedere ad una sola locazione di memoria, perciò uno degli operandi deve essere un registro. Il risultato viene memorizzato in uno degli operandi. Ci sono anche quattro registri per i segmenti che possono essere calcolati dai registri di indice. I registri di segmento permettono alla CPU di accedere ad un megabyte di memoria in un modo particolare. Il processore ha una velocità di clock tra i 4,77 (nei primi pc IBM) e i 10 MHz. Wikipedia X-86 Chip 8086 Con x-86 si intende l’architettura di microprocessori inizialmente sviluppata dall’azienda Intel negli anni ’70, e che è ancora oggi predominante sul mercato mondiale. Altre importanti aziende producono calcolatori basati su questa tecnologia, i cui diritti sono stati a suo tempo venduti, ad esempio AMD. Il nome x-86 deriva dal primo microprocessore della serie, Intel 8086 (1976), a cui sono seguite numerose versioni via via più potenti che hanno mantenuto il suffisso nel nome: 8088 (1979), 80186 (1980), 80286 (1982), 80386 (1986), 80486 (1989). Sono da considerarsi macchine x-86 anche i modelli successivi all’80486, che hanno dovuto rinunciare al nome ‘numerico’ per l’impossibilità di brevettarlo: Pentium (o P5, 1993), Pentium Pro (o P6, 1995), Pentium II (1997), Pentium III (1999), Pentium 4 (o P7, 2000), Pentium M (2003), Pentium D (2005), Core 2 Duo (o P8, 2006). Tutti i processori di questa famiglia sono tutti retrocompatibili e, in particolare, tutti ancora in grado di eseguire le istruzioni originali dell’ISA primitiva del progenitore, l’Intel 8086, benché esso fosse una macchina a 16 bit, mentre le ultime citate sono tutte a 32 bit e, in parte, a 64 bit. Intel 8088 Chip 8088 Intel 8088 è un microprocessore a 4.77MHz prodotto dalla Intel basato sull'8086. Ha un'architettura interna a 16 bit (come l'8086), un data bus a 8 bit (la metà dell'8086) e un address bus da 20 bit, quindi l'8088 è in grado di indirizzare 220 = 1.048.576 byte = 1MB di memoria. Questo processore fu utilizzato nei primi PC IBM. Quando uscì sul mercato i pregi dell'8088 rispetto all'8086 erano la frequenza di clock maggiore (4.77 MHz) e il prezzo inferiore. Nonostante l'introduzione di modelli successivi e di gran lunga più avanzati, l'8088 è uscito di produzione solo nel settembre del 2007; non veniva più usato come processore per PC dal 1992, ma nell'industria aveva trovato altri interessanti impieghi. Wikipedia 1 21-­‐10-­‐2010 Architettura 8086 Architettura Address bus (20 bits) L'Intel 8086 (consideriamo l’Intel 8088 come del tutto equivalente, anche se il bus dati è a 8 bit), è un microprocessore a 16 bit (ampiezza dei registri e del Dbus) con 20 linee sull’Abus per un totale di 1Mbyte di spazio di indirizzamento fisico (220 = 1048756 celle). L'unità di interfaccia con il bus o Unità di Controllo è denominata BIU (Bus Interface Unit), e passa le istruzioni all'ALU (detta EU da Execution Unit. Execution Unit (EU) AH AL BH BL CH CL DH General purpose register Σ DL SP Segment register BP SI DI CS SS ALU Data bus (16 bits) ALU ES IP Instruction Queue Flag register Data bus (16 bits) DS Bus control External bus EU control Bus Interface Unit (BIU) Registri L'Intel 8086 possiede 14 registri da 16 bit, di cui quattro registri per uso generico (AX, BX, CX, DX), a cui si può accedere anche come se fossero otto registri a 8 bit (AH e AL, BH e BL, CH e CL, DH e DL), due registri indice per indirizzare in memoria (SI, DI) e due registri dedicati alla gestione dello stack (BP e SP). A questi si aggiungono altri quattro registri detti di segmento (CS, ES, DS e ES), dedicati specificatamente all’indirizzamento della Memoria. Completano il set di registri l’Instruction Pointer IP e il registro PSW (Program Status Word), denominato Flag register. Lo spazio degli indirizzi di I/O si avvale di un indirizzamento a 16 bit, per un totale di 64KByte (216 = 65536) registri di Input/Output disponibili. Completa la sezione di I/O un set di 8 linee di interruzione hardware (poi ampliato a 16) e un canale DMA per dispositivi di I/O con ampio traffico. La frequenza originale del clock di CPU valeva 4,77 MHz. Registri Tebella riassuntiva 4 registri di uso generale, pur utilizzati frequentemente come registri di memorizzazione temporanea (a 16 o a 8 bit), sono dedicati a precisi compiti e sono coinvolti implicitamente in numerose istruzioni. AX, o registro Accumulatore, è predisposto per le istruzioni aritmetiche (somme, sottrazioni, moltiplicazioni e divisioni). o registro Base, è l’unico dei registri di uso generale che può specificare un indirizzo di memoria BX, CX, DX, o registro Contatore, è utilizzato implicitamente nelle istruzioni di conteggio dei cicli o registro di I/O consente di indirizzare le porte di I/O. Usato anche in moltiplicazioni e divisioni. 2 registri indice sono usati nelle istruzioni per manipolare array di caratteri (stringhe). SI, o registro Indice Sorgente, specifica l’indirizzo da cui leggere l’array DI, o registro Indice Destinazione, specifica l’indirizzo in cui scrivere l’array. 2 registri dedicati allo stack sono in grado di indirizzare in memoria, anche se non liberamente. BP, o Base Pointer, contiene l’indirizzo di partenza della pila di stack, per poter gestire il passaggio dei parametri delle procedure SP, o Stack pointer, contiene sempre l’indirizzo di memoria dell’ultimo elemento sullo stack. IP e Flag, sono registri non modificabili esplicitamente. IP, o Instruction Pointer, contiene la parte meno significativa dell’indirizzo della prossima istruzione da eseguire. Il programmatore non lo modifica mai. Flag, o registro dei Flags, è l’unico registro intepretato a singolo bit, ove ogni bit ha un significato differente e concorre a descrivere lo stato attuale del Processore dopo l’esecuzione dell’ultima istruzione. 2 21-­‐10-­‐2010 Core i7 Extreme Core i7 Extreme è il nome commerciale di una serie di microprocessori x86 di nona generazione sviluppati da Intel e presentati il 17 novembre 2008. Le CPU Core i7 Extreme, insieme alle controparti di fascia medio alta Core i7, sono state le prime incarnazioni della nuova architettura Nehalem, successiva alla Intel Core Microarchitecture, e che andrà progressivamente a sostituire in tutti i settori di mercato, prendendo gradualmente il posto dei Core 2 Duo, Core 2 Quad e Core 2 Extreme. Come ormai abitudine da parte di Intel, i processori "Extreme" vengono proposti per la fascia più alta del mercato desktop (e in un secondo tempo anche mobile), e oltre ad avere valori di clock più elevati, vengono anche accompagnati dalla presenza del moltiplicatore sbloccato sia verso il basso che verso l'alto in modo da semplificare le operazioni di overclock tipiche di questa fascia di utenti. Wikipedia 3