Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Famiglie di processori: sono quelle serie di processori cui successori mantengono la retrocompatibilit con i
predecessori. Il leader del mercato attuale per i pc la intel con i suoi x86 mentre altre architetture (quali arm e
tegra) spopolano su dispositivi mobili.
La famiglia x86: il capostipite fu l'8086 il primo microprocessore a 16bit prodotto nel '78 dalla intel per il primo pc
della IBM.
Seguirono 80286, 80386(32bit), 80486, pentium I/II/III/IV(64bit), core duo/quad/i3/i5/i7.
La categoria di queste architetture si dividono in base ai bit dei registri generali presenti all'interno dei processori:
IA-32 (intel architecture 32bit)
IA-32e (...extended, a 64bit) o EM64T(extended Memory 64 tecnology)
Con la miniaturizzazione dell'elettronica e l'aumento dei transistor all'interno dei processori andata aumentando
la loro prestazione
8086
Nella sua prima incarnazione ha un clock di 8mhz e la capacit di gestire max 1mb di ram (20bit addr bus).
Il processore si divide in due parti che possono svolgere i loro compiti in parallelo:
la BIU (bus interface unit) che si occupa di reperire le istruzioni in una coda di prefetch (instruction queue)
che contiene le istruzioni successive a quella attualmente in esecuzione
la EU (execution unit) che esegue le istruzioni prelevate dalla coda di prefetch riempita dalla precedente
Caratteristiche
CPU 8086 Pin 40
Arch P1 Pin Multiplex
Anno 1978 AddrBus 20bit
clock 8Mhz DataBus 16bit
Transt 29000 Reg16 14 4=8+8
Espand Com Mate SetIstr 70
I pin multiplexati del bus esterno, cio in gradi di trattare sia dati che indirizzi in modo alterno, sono stati creati
per semplificare ed economizzare il progetto della scheda madre.
sudivisione 14 registri 16bit:
EXECUTION UNIT:
1. registri generali:
AX [AH|AL]
BX [BH|BL] ad uso generico, contengono tipicamente
CX [CH|XL] gli operandi delle istruzioni.
DX [DH|DL]
2. registri puntatori(sempre generali):
SI source indx
DI destin indx indirizzano i vettori
BP base point
SP stack point indirizzano lo stack
3. flags:
bit di stato o di controllo relative all'esecuzione del programma, esempi: OF(overflow) CF(carry) SF(segno)
ZF(zero)
BUS INTERFACE UNIT:
4. registri segmento
CS code sgm istruzion queste aree contengono i
DS data sgm variabili rispett segmenti o l'indirizzo
SS stack sgm stack di memoria dove essi risiedono
Es extra sgm var extra il segment degli ind.logici
5. instruction pointer (program counter)
IP contatore che indirizza alla prossima istruzione, rappresenta l'offset degli indirizzi logici
segmentazione della memoria:
Il processore 8086 pur avendo dei registri a 16bit possiede un address bus da 20bit in grado di indirizzare 1mb di
memoria.
Per ottenere un indirizzo fisico (o lineare) da 20bit questo processore effettua delle operazioni su un indirizzo
logico composto da due parti, segment:offset (registro_segmento:ip), in questo modo:
ind fisico bin = (bit_segment*10000)+bit_offset
ind fisico esa = (hex_segment*10)+hex_offset
Il segment l'indirizzo iniziale contenuto in un registro di segmento, e l'offset lo spostamento determinato
dal'programcounter relativo a questo segmento.
IA-32 o i386
Sommando l'indirizzo iniziale li presente all'offset si otterr l'indirizzo fisico (sempre di 32bit???).
IA-32e o EM64T
Non si chiamano IA-64 perch questa sigla gi stata utilizzata per processori "itanium" non facenti parte della
famiglia x86. Il primo rappresentante intel di quella famiglia fu un Pentium IV nel 2004.
Questo passaggio ha soddisfatto la principale necessit di poter indirizzare pi memoria (ram).
suddivisione 24 registri:
Tutti i registri (generali, puntatori, stato, ip) eccetto quelli di segmento vengono estesi a 64bit aggiungendo il
prefisso X al posto di E per contraddistinguere la parte intera a 64bit.
aggiunge 8 nuovi registri generali (R8-R15 seguendo numericamente i primi) che consentono di usare pi
operandi contemporaneamente nel processore limitando l'accesso alla ram.
conseguenze di questi registri pi grandi sono la possibilit di gestire numeri interi a 64bit in modo nativo
Il codice eseguibile compilato a 64bit, avendo variabili e puntatori pi grandi diventa a sua volta un po' pi
grande.