La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam

20.04.2002 Mikhail Kuzminsky.

L'articolo analizza la proposta di società AMD Architecture. X86-64 e discusso alcuni dei suoi vantaggi e svantaggi rispetto ad altre architetture a 64 bit, principalmente Intel / HP IA-64. Una breve panoramica della microarchitettura dei processori del martello AMD, in cui l'architettura X86-64 sarà implementata per la prima volta. Le caratteristiche del martello sono confrontate con altri moderni e promettenti processori ad alte prestazioni.

Se tutti i microprocessori di architettura RISC ad alte prestazioni prodotti dalla fine degli anni '90 sono a 64 bit (Compaq / Dec alpha, SGI / MIPS R1x000, IBM Power, HP PA-8x00, Sun UltraSPARC), quindi le principali architetture CISC (Intel X86 , IBM S / 390) Vai da 32 a 64 scarichi solo ora (IA-64, IBM Z / architettura).

La transizione da S / 390 a Z / Architecture sembra un'estensione piuttosto naturale, mentre la transizione da x86 (ora IA-32) a IA-64 significa, infatti, la modifica completa del sistema di comando. Penso che ciò sia dovuto al fatto che l'X86 ha iniziato il suo sviluppo storico con 8 sistemi a 16 bit. Pertanto, il sistema è rimasto per considerazioni relativamente statiche per tanti anni, il team di team è diventato piuttosto "innaturale" dal punto di vista di altri processori a 32 bit.

Quindi, se IBM si è trasferito nella piattaforma a 64 bit da un percorso evolutivo, la transizione da x86 a IA-64 è una rivoluzione; La compatibilità è fornita solo dall'emulazione dell'hardware. Non è chiaro se Intel vuole in futuro a tutti di abbandonare IA-32 a favore di IA-64, ma il fatto che tutto il software per IA-64 deve essere ridotto al minimo - per non parlare dell'ulteriore ottimizzazione in IA-64 - IT Sembra chiaro. Ovviamente, la transizione verso la piattaforma IA-64 richiederà molto tempo e costerà molto costoso.

La compagnia AMD è andata completamente in modo diverso. Ha proposto la propria modernizzazione dell'architettura X86, che (come nel caso di IBM) è uno sviluppo naturale evolutivo - proprio come X86 in una volta è stato aggiornato da 16 a 32 scarichi.

Perché le piattaforme CISC a 32 bit sono diventate solo 64-bit solo ora, anche se le esigenze di applicazioni a 64 bit sono diventate abbastanza grandi per diversi anni fa? Oltre alla già marcata complessità della transizione (evidente nel caso di IA-64 e Z / architettura), dovrebbe essere specificato su un forte più economico memoria ad accesso casuale Con l'aumento simultaneo della capacità dei moduli di memoria. Di conseguenza, una capacità di 4 gigabyte della capacità di sistemi a 32 bit è abbastanza realizzabile nei PC moderni. Quindi, perché non aumentare le prestazioni del server PC installando memoria aggiuntiva, non è così costoso?

Architettura x86-64.

Sembra che le differenze tra l'architettura X86-64 di IA-32 sia ancora inferiore alle differenze tra la Z / architettura IBM da S / 390. L'AMD sta provando in ogni modo per sottolineare che i cambiamenti sono minimi, anche se l'analisi descrizione completa Ti consente di identificare un numero sufficiente di piccole sfumature relative a, tuttavia, prima di tutti gli sviluppatori di sistema software, non applicazioni.

Le modifiche chiave X86-64 rispetto allo stato di oggi di IA-32 non sono davvero così tanto e in un certo senso sono simili a quelle che sono state fatte nella transizione da 16 a 32 bit Architettura X86. Queste innovazioni includono:

  • Gli indirizzi virtuali a 64 bit (meno complicità è possibile in un'implementazione specifica);
  • Spazio "piatto" (piano) di indirizzi con un singolo spazio di codici, dati e pila;
  • Contatore di comando a 64 bit (RIP);
  • modalità di indirizzamento relativa al misuratore di comando;
  • espansione dei registri scopo generale (intero) a 64 scarichi;
  • aggiunta di 8 nuovi registri generici (R8-R15);
  • aggiunta di altri 8 registri SSE XMM8-XMM15 con un po '128 (corrisponde all'estensione Intel proposta SSE2).
Fico. 1. Esempio di espansione dei registri generici

"Specifiche" su registri aggiuntivi e dimensioni dei dati sono inseriti come comandi di prefisso. L'insieme dei registri principali X86-64 è presentato in FIG. 1. I registri sono a 64 bit, ad eccezione dei registri di EFlags a 32 bit, registri a 128 bit di registri HMM e 80-scaricatori con flottanti cucire ST. L'architettura X86-64 include, in particolare, le estensioni SSE2 IA-32 presentate in Pentium 4.

In fig. 1 mostra come i nuovi registri a 64 bit vengono ampliati rispetto ai registri a 32 bit in IA-32. Per eseguire operazioni a 16 bit, il registro A è indirizzato come AH, per eseguire operazioni a 32 bit - come EAX e per l'esecuzione di 64 bit - come rax. Quando si eseguono operazioni a 32 bit in cui un registro intero funge da registro dei risultati, i valori a 32 bit sono integrati con zeri a 64 bit. Le operazioni 8 e 16 bit sui registri interi conservano gli scarichi anziani invariati.

Per lavorare con l'indirizzamento a 64 bit in x86-64, viene inserita la modalità modalità lunga (chiamalo "modalità estesa"). La modalità operativa è impostata dal bit di controllo LMA (modalità lunga attiva), che è incoraggiata se il microprocessore entra in modalità estesa. Nella modalità estesa, registri dei segmenti ES, DS, FS, GS, SS vengono ignorati. Nel registro CS (descrittore del segmento di codice), bit specificando le modalità di funzionamento del microprocessore.

Nel X86-64, la modalità estesa ha due "Sub-": modalità a 64 bit e modalità di compatibilità. In modalità Compatibilità, viene fornita la compatibilità binaria con modalità X86 a 16 e 32 bit. La selezione della modalità è controllata da bit cs.l. Se è impostato su 0 (modalità di compatibilità), sistema operativo a 64 bit, operando in modalità LMA, può eseguire vecchie applicazioni X86 a 16 e 32 bit. I bit cs.d corrispondono alla selezione dell'operando.

Per impostazione predefinita, in modalità 64 bit (il bit LMA bit, cs.l \u003d 1, cs.d \u003d 0) utilizza indirizzi a 64 bit e operandi a 32 bit. Utilizzando i prefissi di comando, è possibile modificare la dimensione dell'operando (impostata da 64 o 16 cifre), nonché modificare la dimensione dell'indirizzo (impostato su 32 scarichi). Tabelle 1 e indicare i principali tipi validi di modalità processore e modalità di sistema operativo e applicazioni.

Questi dati mostrano che i processori con l'architettura del X86-64 possono funzionare sia con i 16 bit già esistenti e con nuovi sistemi operativi a 64 bit. In quest'ultimo caso, in modalità compatibilità, è possibile eseguire simultaneamente applicazioni da 16 e 32 bit a causa dell'installazione dei bit corrispondenti nei singoli segmenti dei codici. Allo stesso tempo, le applicazioni a 32 bit possono utilizzare i primi 4 GB di memoria virtuale.

Per chiarire le caratteristiche dei microprocessori con l'architettura X86-64, è necessario analizzare i registri EAX / EBX / ECX / EDX in cui vengono posizionati i risultati dell'esecuzione del comando CPUID (quando viene chiamato, come prima, in EAX bisogno di mettere 8000_0000h). Se il 29 ° bit in EAX è 1, il microprocessore funziona in modalità estesa.

Nel X86-64 ci sono un certo numero di miglioramenti interessanti, in particolare per i compiti di programmazione del sistema. Ad esempio, notiamo l'introduzione di un nuovo registro di priorità TPP TPP, che viene utilizzato per accelerare l'elaborazione degli interrupt. Per i dettagli, invia i lettori alla descrizione x86-64.

Microarchitecture martello.

Il processore Athlon si riferisce alla settima generazione dell'architettura X86 implementata da AMD. I primi processori in cui verrà implementato l'architettura X86-64, ha ricevuto il nome del codice del martello e sono l'ottava generazione di processori X86 da AMD. Continuarono alla tendenza di un determinato spreco dei sistemi di comando del processore AMD da un'identità completa con Intel X86. Tuttavia, se le prime differenze erano associate all'introduzione AMD NOVITÀ I comandi 3Dnow! Ora il martello, in contrasto con x86, diventa 64 bit. Hammer utilizza i "pneumatici interni a 64 bit utilizzati per lo scambio di dati. Lo spazio di indirizzo virtuale è a 48 bit e lo spazio degli indirizzi fisici è a 40 bit.

Gli obiettivi di AMD durante la creazione di questa famiglia di microprocessori, oltre allo scopo ovvio, il supporto X86-64 erano:

  • se possibile, l'aumento minimo dell'area del microcircuito;
  • garantire le possibilità di ulteriore crescita senza ostacoli della frequenza dell'orologio del processore a livello moderno di sviluppo tecnologico;
  • fornire accelerazione con applicazioni a 64 bit e a 32 bit. La vista complessiva del microarchitettura del martello dà riso. 2.

Nei moderni processori RISC più potenti c'è la tendenza ad integrarsi in un microprocessore di memoria di cassa del secondo livello di alta capacità. Sia Intel che AMD nei loro processori ad alte prestazioni hanno mostrato la capacità della cache di secondo livello da 512 kB a 256 kb, mentre lo integrano contemporaneamente nel processore. Ma a Pentium 4 Northwood, gli sviluppatori Intel hanno nuovamente ampliato la cache di secondo livello a 512 kb. Non ci sono dati ufficiali pertinenti sul martello; Nel frattempo, il serbatoio della cache di secondo livello può influenzare fortemente le sue prestazioni. Secondo alcuni analisti, il serbatoio della cache di secondo livello nel martello dei modelli senior sarà in base al codice superiore a quello dei moderni modelli Athlon.

I buffer reindirizzamenti più veloci in questo processore rispetto a Athlon sono aggiornati. Il primo livello I-TLB in Hammer ha una capacità di 40 righe (16 linee più di prima) ed è completamente associativa. Primo livello D-TLB Le stesse caratteristiche. Entrambi i buffer TLB forniscono il lavoro con le pagine di memoria con una capacità di 4 KB, 2 MB e 4 MB.

Il secondo livello I-TLB, così come il secondo livello D-TLB, contiene 512 linee (due volte più grandi come in Athlon) e sono parzialmente associativi a 4 canali. Come specificato in, TLB è ridotto rispetto ai ritardi Athlon. Inoltre, l'hardware è implementato la possibilità di separare il TLB tra diversi processi (per questo, è fornito uno speciale "Filtro Arson").

Ovviamente, un aumento della capacità TLB e supporto per le pagine di memoria grandi formati Uso orientato in sistemi con una grande capacità di memoria; È naturale per applicazioni a 64 bit. La possibilità di separare il TLB, a sua volta, può migliorare le prestazioni dei sistemi operativi multitasking sulle applicazioni server.

La direzione tradizionale del miglioramento dei moderni microprocessori è migliorare l'accuratezza della previsione della transizione. Hammer ha una serie di indirizzi di transizione con una capacità di stringhe 2k, nonché una tabella della cronologia di transizione globale, contenente metri a 2 bit da 16k (4 volte più di Athlon). Infine, la capacità dello stack degli indirizzi di ritorno è di 12 linee.

Una caratteristica importante che contribuisce a migliorare le prestazioni è l'integrazione nel martello del controller RAM. Ciò consente alla larghezza di banda di aumentare e ridurre i ritardi. Queste caratteristiche miglioreranno automaticamente con crescente frequenza del processore. Per l'architettura X86, questa funzione è unica; Compaq lo stesso nel loro nuovi processori Alpha EV7 è sullo stesso percorso.

Il controller di memoria avrà un'interfaccia di una larghezza di 8 o 16 byte alla RAM DDR. Nel secondo caso noi stiamo parlando Informazioni sulla memoria DDR a due canali, 4 registri moduli DIMM per canale. AMD Promette il supporto per il registro e i moduli DIMM non bufferizzati per la memoria DDR PC1600 / PC2100 / PC2700. Quando si utilizza PC2700 in una versione a due canali larghezza di banda RAM raggiunge il valore da 5,3 GB / s. Per il confronto, il processore Intel McKinley, che, a causa delle caratteristiche dell'architettura IA-64, ha bisogno di una maggiore larghezza di banda di RAM, sarà dotata di un bus sistemico solo un po 'più veloce - 6,4 Gb / s.

Applicazione Quando si costruisce sistemi basati sulla tecnologia del martello, ipertransporto ridurrà la prove della RAM con un aumento della frequenza dell'orologio del microprocessore, aumenta automaticamente la larghezza di banda dei cosiddetti snoop-campioni mantenendo la coerenza della cache nei sistemi multiprocessore con crescente frequenza e, Infine, in scala la larghezza di banda e la capacità di memoria rapida con un aumento del numero di processori nel sistema.

La parte anteriore del trasportatore include un campione e la decodifica dei comandi (figura 2). La logica del lavoro di queste fasi di Hammer è stata complicata, il grado di imballaggio di comandi inviati dai decodificatori agli schedulers è aumentata. Rispetto ad Athlon, la lunghezza di questa parte del trasportatore è aumentata di 2 tappe, in modo che la lunghezza totale del trasportatore del martello sia 12, e il trasportatore del piattino è 17 tappe. Secondo gli sviluppatori, dovrebbe contribuire alla crescita senza problemi della frequenza dell'orologio del processore come miglioramento della tecnologia di produzione. Inizialmente, è previsto di utilizzare la tecnologia da 0,13 micron "silicon-on-isolaulator"; Nella seconda metà del 2003 è prevista una transizione a 0,09 micron micron.

Va notato, i dati ufficiali dell'area occupata dal martello sono assenti. Nel frattempo, c'erano segnalazioni che il processore del clawhammer avrà un'area di soli 105 mm 2, mentre Athlon / Palomino, realizzato dalla stessa tecnologia di 0,13 μm - 80 mm 2. Per il confronto, la piazza McKinley, a giudicare dall'Intel presentata alla conferenza internazionale ISSCC? 2002, è 464 mm 2.

Gli svantaggi e i vantaggi dei lunghi trasportatori sono ben noti: è più facile aumentare la frequenza dell'orologio, ma più perdite per sovraccaricare il trasportatore, in particolare, con una previsione di transizione errata. È interessante confrontare la lunghezza del trasportatore del martello con altri moderni microprocessori Intel.. A Pentium 4, che ha raggiunto frequenze di registrazione in 2,2 GHz, rispetto al Pentium III, la lunghezza del trasportatore, grazie all'utilizzo della tecnologia Hyperpipline, è stata dimezzata - fino a 20 tappe. Aveva lo stesso obiettivo - garantendo la crescita senza ostacoli della frequenza dell'orologio; Intel parla di circa 10 GHz a 2005-2006. A McKinley la lunghezza del trasportatore, al contrario, ridotta - fino a 8 fasi contro 10 in Itanio, ma la sua frequenza prevista è di 1 GHz.

Le prestazioni, come è ben noto, dipende non solo dalla frequenza dell'orologio, ma anche dal numero di comandi effettivamente eseguiti. Secondo AMD, nel numero del martello aumenterà. Ma a quale martello di frequenza funzionerà, non è segnalato; Si può presumere che questo indicatore sarà di circa 2 GHz.

Sistemi di costruzione basati sul martello

Abbiamo esaminato le caratteristiche principali della microarchitettura del martello, ad eccezione dell'uso della tecnologia ipertransport. Viene utilizzato nel martello per collegare il sistema I / O e per l'organizzazione di obbligazioni interprocessore. Infatti, grazie al controller RAM integrato da Hammer e l'uso della tecnologia HyperTransport in Hammer ha integrato le funzioni principali del chipset (più precisamente, il ponte settentrionale).

La tecnologia di ipertransport effettiva si sta sviluppando con un consorzio con lo stesso nome, in base a AMD, Sun Microsystems, sistemi Cisco, NVIDIA, TransMata e Apple Computer. Penso che la necessità di sviluppare tale tecnologia dettato prima di tutto l'emergere sedili stretti Nei sistemi I / O in PC e generalmente usano pneumatico PCI., caratteristiche delle quali performance non soddisfano i requisiti delle moderne ad alte prestazioni inscolaschi di rete e canali I / O per dischi rigidi.

I canali HyperTransport con lo stesso numero di contatti come PCI, forniscono una larghezza di banda molto più elevata: il valore di picco è di 3,2 Gb / s. I canali HyperTransport hanno una larghezza di 16 scarichi, fornendo 1,6 miliardi di ingranaggi al secondo in ciascuna direzione. HyperTransport consente di effettuare un tipo "punto-punto" con una modalità full-duplex e l'elaborazione delle transazioni divisa. Tali caratteristiche di questa tecnologia consentono di usarlo per l'organizzazione di obbligazioni interprocessori; In quest'ultimo caso, in contrasto con I / O, l'opzione HyperTransport viene utilizzata per mantenere la coerenza della cache.

Fico. 3. Schema di costruzione di sistemi a 4 processori basati sul martello

I processori del martello hanno tre porte per i canali HyperTransport (figura 3), oltre alla porta al controller RAM. Pertanto, l'interruttore della CPU viene inserito nel processore, che percorsi comandi e dati tra queste porte e l'interfaccia della query di sistema (coda SRQ). Questa coda ha una lunghezza di 24 righe e la coda per il controller DRAM (coda di comando di memoria) è di 20 linee. Per comunicare con il sottosistema I / O, il bridge host viene utilizzato in martello, quindi i due altri canali di ipertransort vengono utilizzati negli scambi di interprocessore.

L'unica cosa che non è incorporata in Hammer è un'interfaccia AGP; Pertanto, il microcircuito occupa la posizione del ponte settentrionale (Fig. 4), è necessario mantenere questa interfaccia. Si presume che sarà AGP 8X.

Questo microcham è collegato al ponte meridionale. Sebbene AMD tradizionalmente offre un chipset per i suoi nuovi processori e lo farà, ovviamente, per il martello, è già noto sullo sviluppo di un ponte meridionale per questo processore con NVIDIA e tramite tecnologie. Inoltre, il "gateway" tra ipertransport e PCI-X è previsto in sistemi multiprocessore; È possibile utilizzare mezzi simili per altri standard I / O.

Fico. 4. Architettura dei sistemi multiprocessore basati sul martello

A) Sistema di processore singolo

B) Sistema TWProcessor

C) Sistema di quattroprocessore

Schemi presentati in fig. 4, dimostra l'efficacia dei sistemi multiprocessore di costruzione basati sul martello. In tali computer, con un aumento del numero di processori, non solo il potere di calcolo, la capacità e la larghezza di banda della RAM, ma anche le risorse delle risorse del sottosistema I / O sono scalabili. Pertanto, nel sistema a 8 elaborazione, i moduli DIMM 64 (8x8) (fino a 128 GB) e 4 canali HyperTransport con una larghezza di banda totale di 25 GB / s per la trasmissione duplex sono disponibili.

AMD ha annunciato un set di microcircuiti serie 8000, che saranno disponibili nel quarto trimestre del 2002. Include chip AMD-8151 (organizza un'interfaccia con AGP 3.0), AMD-8131 (un ponte da ipertransport a PCI-X) e AMD-8111 (Hub I / O fornisce supporto per PCI-32/33 MHz, USB, IDE e t .p.).

È interessante assicurare la coerenza della cache utilizzando i canali HyperTransport con i seguenti processori da 4 e successivi: nel trattamento delle query appropriate, diversi modi formati da percorsi ipertransport sono coinvolti tra i processori, che contribuiscono all'accelerazione. In linea di principio, è possibile costruire sistemi con il numero di processori del martello, più grandi, ma questo richiederà un interruttore hypertransport.

Ritardi Quando si lavora con il locale (microprocessore adiacente), la memoria rapida aumenta leggermente quando si accede alla memoria "remota". Su un sistema a 4 processore scaricato, il ritardo è di 140 NS, su un simile sistema di 8-processore - 160 NS. Questo ti permette di parlare di architettura SMP, non di Snura. Allo stesso tempo, l'uso della tecnologia di commutazione anziché i pneumatici di sistema ti consente di ottenere indicatori elevati e sulla larghezza di banda della RAM. Per le operazioni del tipo di copia, è 8 GB / s per un sistema di 4 elaborazione, che, secondo AMD, è significativamente superiore rispetto alle architetture in autobus.

Aspettando il martello.

L'inizio del martello delle vendite inizierà approssimativamente nel terzo trimestre del 2002. Il primo microprocessore di questa famiglia sarà clawhammer focalizzato su sistemi singoli e due processor; Apparirà la mazza. Sebbene, in sostanza, il martello dovrebbe entrare in concorrenza con i microprocessori dell'architettura IA-64 (a quel punto McKinley dovrebbe apparire), si può presumere che in futuro, il martello sarà in grado di oust athlon sull'intero spettro di applicazioni ( Ma potrebbe richiedere più di un anno). Questo significa anche che il martello può diventare un concorrente a Pentium 4.

Oltre ai sistemi operativi 32 bit esistenti, NetBSD, FreeBSD e Linux vengono trasferiti all'architettura del martello a 64 bit, oltre a moderne varietà di Windows.

I vantaggi del X86-64 e del martello sono:

  • compatibilità con applicazioni da 16 e 32 bit ad un alto livello di prestazioni di prestazioni;
  • relativo (rispetto alla IA-64) semplicità della transizione da x86 e, di conseguenza, l'assenza della necessità di eccessiva costi finanziari su questa transizione;
  • il minore rischio del fallimento di una nuova architettura;
  • semplicità di sviluppo e implementazione;
  • una piccola area, che aumenta la resa di adattamento adatto e facilita la ridimensionatura lungo la frequenza dell'orologio.

Si può dire che grazie all'approccio "evolutivo" selezionato, è possibile prevedere più affidabile il successo nella crescita della produttività.

I vantaggi elencati sono accompagnati da alcuni potenzialmente "pericolosi" per i momenti AMD. L'architettura X86-64 non è così "rivoluzionaria" come IA-64; Inoltre, il numero di registri rispetto ai moderni processori RISC non sembra abbastanza grande, che è noto per complicare l'ottimizzazione dei programmi.

Amd dovrà dimostrare che l'altezza delle prestazioni è raggiungibile principalmente a causa della tecnologia (e dell'aumento corrispondente della frequenza dell'orologio), ma non a spese dell'architettura. Mentre dimostra con successo, in particolare, Pentium 4, ma le prove inverse dell'IA-64 non sono ancora state ricevute.

Per creare applicazioni a 64 bit, è necessario sviluppare compilatori ottimizzanti, che non è ancora disponibile. Infine, il moderno settore informatico si trova sulla soglia per la selezione di nuovi standard I / O - Infiniband, PCI-X, 3GIO, HyperTransport. La legislazione rigida alla tecnologia HyperTransport è in grado di ritirare AMD nei leader, ma porta anche un certo rischio.

Per quanto riguarda le aree applicative, dove è necessaria un'architettura a 64 bit, l'AMD indica principalmente sul DBMS, CAD, i mezzi per creare un "contenuto" digitale. Secondo l'autore, i processori del martello possono rivelarsi attivamente richiesti al segmento in rapida crescita del mercato - cluster (prima di tutto, cluster Linux) con nodi a doppio processore.

Attualmente, tale piattaforma basata su Athlon MP è molto popolare; Sistemi simili a base di Pentium 4 / Xeon sono notevolmente più costosi. Quando salvare un rapporto tale, AMD sarà in grado di contare sul successo in questa parte del mercato.

Il lavoro è stato supportato dalla Federazione Russa, dal progetto 01-07-90072.

Letteratura
  1. Mikhail Kuzminsky, "Riepilogo IA-64". "Sistemi aperti", 1999, № 9-10
  2. Mikhail Kuzminsky, "microarchitettura di itanium". Sistemi aperti, № 9, 2001
  3. Mikhail Kuzminsky, "Z-Architecture. Modern 64-Bit Mainframes IBM". "Sistemi aperti", 2001, № 10
  4. "Tecnologia X86-64 White Paper", 2001, AMD
  5. "Tecnologia AMD a 64 bit. La Panoramica dei programmatori di architettura AMD X86-64", AMD, 2001, Jan.
  6. "Architettura del processore di otto generazioni AMD. Libro bianco", AMD, 2001, ottobre
  7. F. Weber, "AMD Architettura microprocessore di prossima generazione", Forum a microprocessore, 2001

Mikhail Kuzminsky ( [Email protetto]) - Ricercatore senior del Centro per la sicurezza del computer IOH RAS (Mosca).



L'autore rischiava abbastanza, incluso questo materiale nel manuale, poiché le informazioni pubblicate nel nostro tempo sui modelli specifici di microprocessori sono obsoleti mentre sono ancora sotto la stampa. Tuttavia, per il gusto di un'immagine completa delle moderne architetture a 64 bit, questo capitolo giustifica la sua presenza in questo manuale.

10.1 Intel Core 2 Architecture

L'ottava generazione di processori Intel, il nome di Core 2, senza una quota di dubbio, può essere chiamato rivoluzionario.

Intel ingegneri dopo un ritardo piuttosto lungo da AMD non ha avuto un'architettura radicalmente nuova. Come al solito, tutto nuovo è ben dimenticato vecchio. Conroe si è basata su un lavoro mobile Pentium M - il lavoro del processore così successo che alcuni produttori hanno iniziato ad applicarlo non solo per computer portatili, ma anche per workstation desktop. A sua volta, Pentium M non apparve anche da zero. Il suo progenitore è Pentium III, che, come è noto, è stata una continuazione evolutiva di Pentium Pro.

La catena evolutiva corrispondente è la seguente: Pentium Pro  Pentium II  Pentium III  Pentium m  Core 2.

Questo caso è un esempio quando passo indietro è un passo significativo in avanti. Se sei molto astratto dai dettagli, gli sviluppatori di Intel fecero il seguente. Creato entro il 1995 un processore Pentium Pro abbastanza riuscito, ha aumentato il suo potere (Pentium II, Pentium III), ha sviluppato un meccanismo per ridurre il consumo di energia (Pentium m), creato sistema efficace L'interazione di diversi core del processore (Core 2). Questo schema è molto condizionale, poiché ciascuna delle fasi c'erano altre sostanze raffinatezza (come la transizione all'architettura a 64 bit), ma alcune caratteristiche ereditarie sono ancora conservate.

A seconda del segmento di destinazione, i processori hanno le loro caratteristiche tecnologiche. Conroe-L (un kernel), Allendale (due nuclei), Conroe e Wolfdale, Kentsfield e Yorkfield (quattro nuclei) sono progettati per sistemi desktop. Nomi dei codici Merom e Penryn usura i prodotti focalizzati sul segmento mobile del mercato. Quest'ultima reincarnazione dell'architettura Core 2 sarà i processori a sei core Dunnington.

La seguente generazione di procedure per Core 2 è venduta sotto il marchio Core I7 (architettura Nehalem).

Va notato che le configurazioni a sei nucleari non forniscono un guadagno di produttività sei volte rispetto al monorezzo. Le cause sono nelle caratteristiche di lavorare con la memoria. In alcuni compiti, invece di migliorare le prestazioni, è possibile ridurre persino la velocità di funzionamento. Questo è spiegato dal fatto che la maggior parte dei prodotti software è ancora adattata per funzionare su piattaforme multiprocessore (multi-core).

Cosa è cambiato in Intel Core 2 rispetto a Pentium 4? Una delle differenze importanti è la partenza dall'architettura a lunga distanza netbrust, il cui compito principale era quello di garantire un certo vantaggio nella "Gigahertz Race". Inoltre, c'è stata una significativa riduzione della lunghezza del trasportatore. Nell'architettura del nucleo, la sua lunghezza è di 14 gradini, mentre nella precedente generazione di processori era uguale a 31 passaggi (kernel Prescott), e questa è più della doppia abbreviazione. Ma i primi processori Netbrust sul nucleo di Northwood accelerato da 1,6 a 3,4 GHz. Non sarà superfluo che un tale aumento della frequenza dell'orologio è stato irriso con un eccessivo consumo di energia (per i processori TDP TOP raggiungevano 160-170 W). Tuttavia, mentre la pratica ha mostrato, tutti questi gigaret sono stati trasformati in modo molto debolmente nella crescita della produttività.

Il volume della cache L2 in nuovi modelli varia da 3 MB a Wolfdale-3m a 12 Mb in Yorkfield.

Prima di passare allo studio dello schema strutturale, notiamo i momenti tecnologici chiave che sono alla base dell'architettura principale:

    Esecuzione dinamica Intel Wide - garantisce fino a cinque microoperazioni per tatto.

    Intel Intelligent Power Capacità - è un'intera serie di tecnologie progettate per ridurre significativamente il consumo energetico.

    Intel Advanced Smart Cache - implica la presenza di core della cache L2 comune a tutti, che è distribuita dinamicamente tra loro, a seconda delle attività eseguite.

    Intel Smart Memory Access: una serie di tecnologie per l'ottimizzazione di algoritmi di accesso alla memoria e dati di pre-caricamento.

    Intel Advanced Digital Media Boost è una tecnologia finalizzata all'ottimizzazione della decodifica dei contenuti multimediali. Consente di gestire tutti i comandi SSE, SSE2 e SSE3 a 128 bit, ampiamente utilizzati nelle applicazioni multimediali e grafiche, per un tatto.

    Tecnologia Intel 64 - numero intero a 64 bit (EM64T) e modalità aritmetica mirata. Ti consente di lavorare con numeri di grandi dimensioni, oltre ad affrontare più di 1 TB di memoria. L'architettura a 32 bit ha permesso non più di 4 GB di RAM. Ciò impone determinate restrizioni quando si lavora con volumi di dati di grandi dimensioni.

L'articolo descrive il significato del termine "64 bit". L'articolo ha brevemente rivisto la cronologia dello sviluppo di sistemi a 64 bit, i processori a 74 bit più comuni a 64 bit dell'architettura Intel 64 e il sistema operativo Windows a 64 bit sono descritti.

introduzione

Come parte dell'architettura attrezzature per computer Sotto il termine "64-bit" comprende numeri interi a 64 bit e altri tipi di dati aventi una dimensione di 64 bit. Sotto i sistemi "64 bit", le architetture a microprocessore a 64 bit (ad esempio, EM64T, IA-64) o sistemi operativi a 64 bit (ad esempio, Windows XP Professional X64 Edition) possono essere comprese. Puoi parlare di compilatori che generano codice di programma a 64 bit.

Questo articolo prenderà in considerazione vari punti associati a tecnologie a 64 bit. L'articolo è destinato ai programmatori che vogliono iniziare a sviluppare programmi a 64 bit e si concentra su sviluppatori di Windows, poiché per loro una questione di conoscenza con sistemi a 64 bit più rilevanti.

Storia dei sistemi a 64 bit

64-bitness Solo recentemente è entrato nella vita della maggior parte degli utenti e dei programmatori applicativi. Tuttavia, il lavoro con dati a 64 bit ha una lunga storia.

1961: IBM rilascia un supercomputer Stretch IBM 7030, che utilizza parole di dati a 64 bit, istruzioni per la macchina a 32 bit o 64 bit.

1974: Control Data Corporation lancia il Supercomputer Vectorcomputer CDC Star-100, che utilizza l'architettura di parole a 64 bit (i precedenti sistemi CDC hanno avuto un'architettura a 60 bit).

1976: Cray Research rilascia il primo supercomputer Cray-1, che implementa l'architettura di parole a 64 bit e che servirà come base per tutti i successivi supercomputer vettoriali.

1985: Cray rilascia Unicos - la prima implementazione a 64 bit del sistema operativo UNIX.

1991: MIPS Technologies produce il primo processore a 64 bit, R4000, che implementa una terza modifica dell'architettura MIPS sviluppata nella loro azienda. Questo processore viene utilizzato nelle workstation grafiche SGI a partire dal modello Iris Crimson. Kendall Square Research produce il suo primo supercomputer KSR1, in base alla propria architettura RISC brevettata a 64 bit sotto il sistema operativo OSF / 1.

1992: Digital Equipment Corporation (DEC) presenta un'architettura completamente 64 bit del progetto Alpha - Prism Prism.

1993: DEC rilascia un sistema operativo DEC OSF / 1 AXP a 64 bit UNIX (in seguito rinominato in Tru64 UNIX) per i suoi sistemi costruiti sull'architettura alfa.

1994: Intel annuncia i suoi piani per sviluppare architettura IA-64 a 64 bit (congiuntamente con Hewlett-Packard) - il successore dei loro processori IA-32 a 32 bit. La data di rilascio è stata prevista per il 1998-1999. SGI rilascia Irix 6.0 con supporto a 64 bit per il chipset R8000.

1995: Sun lancia un processore a 64 bit della famiglia SPARC UltraSPARC. I sistemi informatici HAL, subordinati Fujitsu, lancia le workstation create in base al processore SPARC64 di prima generazione a 64 bit, sviluppato indipendentemente da Hal. IBM rilascia microprocessori A10 e A30, nonché PowerPC a 64 bit come processori. IBM rilascia anche un aggiornamento a 64 bit per il sistema AS / 400, in grado di convertire il sistema operativo, i database e le applicazioni.

1996: Nintendo Presents console da gioco Nintendo 64, creato sulla base dell'opzione MIPS R4000 più economica. HP rilascia una versione da 64 bit 2.0 dell'architettura PA-RISC PA-8000.

1997: IBM lancia RS64 a 64 bit PowerPC / PowerPC come processori.

1998: Sun rilascia Solaris 7 con supporto ultrasparc a 64 bit.

1999: Intel rilascia un insieme di comandi per l'architettura IA-64. AMD annuncia pubblicamente il suo set di estensioni a 64 bit per IA-32, che è stata nominata x86-64 (in seguito ribattezzata AMD64).

2000: IBM rilascia il suo primo mainframe Zseries ZSeries a 64 bit compatibile con ESA / 390, così come il nuovo sistema operativo Z / / OS.

2001: Intel finalmente avvia una linea di processori a 64 bit, che ora ricevono il nome Itanium e sono progettati per i server ad alte prestazioni. Il progetto non corrisponde alle aspettative dovute a numerosi ritardi nel rilascio di IA-64 al mercato. Netbsd diventa il primo sistema operativo che funziona sul processore Intel Itanium dopo il suo rilascio. Inoltre, Microsoft rilascia anche Windows XP 64-bit Edition per la famiglia Itanium dell'architettura IA-64, sebbene salvi la possibilità di eseguire applicazioni a 32 bit utilizzando WOW64 intercalayer.

2003: AMD rappresenta la linea del processore Opteron e Athlon 64, creata sulla base dell'architettura AMD64, che è la prima architettura del processore a 64 bit basata sull'architettura X86. Apple inizia a utilizzare un "G5" a 64 bit PowerPC 970 fabbricato da IBM. Intel sostiene che i chip del processore Itanium rimarranno gli unici processori a 64 bit sviluppati nella loro azienda.

2004: In risposta al successo commerciale AMD, Intel ammette di aver sviluppato il clone delle estensioni AMD64, che è stato dato il nome IA-32E (in seguito ribattezzato EM64T, e poi ancora una volta in Intel 64). Intel rilascia anche versioni aggiornate delle famiglie del processore Xeon e Pentium 4 con il supporto dei nuovi comandi.

2004: VIA Technologies presenta il suo processore Isaiah a 64 bit.

2005: 31 gennaio Sun rilascia Solaris 10 con AMD64 / Intel Processor Support 64. 30 aprile Microsoft rilascia Windows XP Professional X64 Edition per processori AMD64 / Intel 64.

2006: Sony, IBM e Toshiba iniziano il rilascio di un processore cellulare a 64 bit per PlayStation 3, server, workstation e altri dispositivi. Microsoft rilascia Windows Vista con una versione a 64 bit abilitata per processori AMD64 / Intel 64, che supporta la compatibilità a 32 bit. Tutte le applicazioni e i componenti Windows sono a 64 bit, ma molti di essi hanno versioni a 32 bit incluse nel sistema sotto forma di plug-in in compatibilità.

2009: come Windows Vista, Microsoft Windows 7 include una versione a 64 bit completa per processori AMD64 / Intel 64 e la versione a 64 bit è installata sulla maggior parte dei nuovi computer. Il sistema operativo esce aziende di Apple Mac OS X 10.6, leopardo della neve che ha un kernel a 64 bit ed è destinato ai processori AMD64 / Intel 64, ma per impostazione predefinita, questo sistema è installato solo su alcuni degli ultimi computer Apple. La maggior parte delle applicazioni fornite con Mac OS X 10.6 sono ora a 64 bit.

Più in dettaglio con la storia dei sistemi a 64 bit, è possibile conoscere l'articolo di John Masha "Lunga strada a 64 bit" e nell'articolo enciclopedico di Wikipedia "64-bit".

Programmazione dell'applicazione e sistemi a 64 bit

Al momento della stesura dell'articolo nel 2010, il più noto e comune sono due architetture a microprocessore a 64 bit: IA64 e Intel 64.
  1. IA-64. Architettura a microprocessore a 64 bit, sviluppata congiuntamente da Intel e Hewlett Packard. Implementato in microprocessori Itanium e Itanium per una conoscenza più dettagliata con l'architettura IA-64, è possibile contattare i seguenti articoli in Wikipedia: "IA-64", "Itanium", "Itanium 2". Itanium Architecture supporta un gran numero di produttori di server: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI e UNISYS. Questi produttori si sono uniti a Intel e una moltitudine di sviluppatori di software per creare alleanza di soluzioni Itanium, al fine di promuovere l'architettura e accelerare il ritmo del porting del software.
  2. Intel 64. (AMD64. / x86-64 / X64 / EM64T) - Questa architettura è un'estensione dell'architettura X86 con piena compatibilità all'indietro. Ci sono molte opzioni per il nome di questa architettura, che porta alla confusione, anche se, infatti, tutti questi nomi indicano la stessa cosa: X86-64, AA-64, architettura Hammer, AMD64, Yamhill Technology, EM64T, IA-32E , Intel 64, X64. Per saperne di più su quanti nomi sono apparsi, è possibile nell'articolo di Wikipedia: "X86-64". I processori di architettura Intel 64 hanno trovato diffuso computer personale. E molto probabilmente il tuo computer è dotato di un processore con questa architettura.
È importante capire che IA-64 e Intel 64 (AMD64) sono completamente diversi, incompatibili tra loro, architetture a microprocessore. Inoltre, nell'articolo considereremo solo l'architettura Intel 64 (X64 / AMD64), come più popolare tra gli sviluppatori di software applicativi per il sistema operativo Windows. Per Brevity, il modello software Intel 64, un programmatore a prezzi accessibili in 64 bit sistema di Windows., Chiama win64.

Intel 64 Architecture (AMD64)

L'architettura Intel 64 in esame è semplice, ma allo stesso tempo potente espansione compatibile con l'architettura industriale obsoleta X86. Aggiunge uno spazio di indirizzi a 64 bit e espande le risorse del registro per supportare maggiori prestazioni dei programmi ricompilizzati a 64 bit. L'architettura fornisce supporto per un codice applicativo a 16 bit e 32 bit obsoleto e sistemi operativi a 32 bit senza modificare o ricompilazione.

Una caratteristica distintiva di Intel 64 è il supporto per sedici registri generici a 64 bit (nel X86-32 c'erano otto registri a 32 bit). Sono supportate le operazioni aritmetiche e logiche a 64 bit su numeri interi. Sono supportati gli indirizzi virtuali a 64 bit. Per indirizzare nuovi registri, "Registra i prefissi di espansione" per i comandi sono stati inseriti, per i quali è stata selezionata la gamma di codici 40H-4FH per i comandi utilizzati per INC.<регистр> e dicembre<регистр> in modalità da 32 e 16 bit. I comandi INC e DEC in modalità a 64 bit dovrebbero essere codificati in un più generale, due byte.

Registri:

16 Integer Registro generico da 64 bit (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),
8 registri a punti flottanti da 80 bit (ST0 - ST7),
8 registri di estensioni multimediali a 64 bit (MM0 - mm7, hanno uno spazio comune con registri ST0 - ST7),
16 registri SSE a 128 bit (Xmm0 - Xmm15),
Puntatore RIP a 64 bit e registro delle bandiere RFLAGS a 64 bit.

La necessità di un'architettura a 64 bit è determinata dalle applicazioni che necessitano di un ampio spazio di indirizzi. Prima di tutto, questi sono server ad alte prestazioni, sistemi di gestione del database, CAD e, ovviamente, giochi. Tali applicazioni riceveranno vantaggi significativi dallo spazio degli indirizzi a 64 bit e aumenta il numero di registri. Un piccolo numero di registri disponibili nell'architettura x86 obsoleta limita le prestazioni in compiti computazionali. L'aumento del numero di registri fornisce prestazioni sufficienti per molte applicazioni.

Sottolineiamo i principali vantaggi dell'architettura X86-64:

  • Spazio di indirizzi a 64 bit;
  • set avanzato di registri;
  • familiarità per gli sviluppatori imposta i comandi;
  • capacità di eseguire vecchie applicazioni a 32 bit in 64 bit sistema operativo;
  • capacità di utilizzare sistemi operativi a 32 bit.

Sistemi operativi a 64 bit

Quasi tutti i moderni sistemi operativi ora hanno versioni per l'architettura Intel 64. Ad esempio, Microsoft fornisce Windows XP X64. I più grandi sviluppatori di sistema UNIX forniscono anche versioni a 64 bit, come Linux Debian 3.5 x86-64. Tuttavia, questo non significa che tutto il codice di tale sistema sia completamente a 64 bit. Parte del codice operativo e molte applicazioni potrebbe essere a 32 bit, poiché Intel 64 fornisce compatibilità all'indietro con applicazioni a 32 bit. Ad esempio, a 64 bit versione Windows Utilizza la modalità speciale WOW64 (Windows-on-Windows 64), che traduce le chiamate per applicazioni a 32 bit alle risorse del sistema operativo a 64 bit.

Wow64.

Windows-on-Windows a 64 bit (WOW64) - Sistema del sistema operativo Windows: consente di eseguire applicazioni a 32 bit su tutte le versioni a 64 bit di Windows.

Il sottosistema WOW64 non supporta i seguenti programmi:

  • programmi compilati per sistemi operativi a 16 bit;
  • la modalità del kernel compilata per sistemi operativi a 32 bit.
Ci sono differenze in WOW64 a seconda dell'architettura del processore. Ad esempio, la versione a 64 bit di Windows sviluppata per il processore Intel Itanium 2 utilizza WOW64 per emulare le istruzioni X86. Tale emulazione è un'intensivi molto risorse rispetto a WOW64 per l'architettura Intel 64, come si verifica una modalità di spostamento da una modalità a 64 bit alla modalità di compatibilità quando si esegue programmi a 32 bit.

WOW64 sull'architettura Intel 64 (AMD64 / X64) non richiede emulazione di istruzioni. Qui, il sottosistema WOW64 emula solo solo un ambiente a 32 bit, a causa dello strato aggiuntivo tra l'applicazione a 32 bit e 64 bit API di Windows.. Da qualche parte questo strato è sottile, da qualche parte non molto. Per il programma medio di perdita del programma dovuto alla presenza di tale strato sarà circa il 2%. Per alcuni programmi, questo valore potrebbe essere maggiore. Due per cento è un po ', ma dovrebbe essere tenuto presente che le applicazioni a 32 bit funzionano un po' più lento che esegue il sistema operativo Windows a 64 bit rispetto a un ambiente a 32 bit.

La compilazione del codice a 64 bit non solo elimina la necessità di WOW64, ma fornisce anche un aumento di prestazione aggiuntivo. Ciò è dovuto a cambiamenti architettonici nel microprocessore, come un aumento del numero di registri generici. Per il programma centrale, puoi aspettarti entro il 5-15% della crescita della produttività da una semplice ricompilazione.

A causa della presenza di WOW64 intercalayer, i programmi a 32 bit funzionano meno in modo efficiente in un ambiente a 64 bit rispetto a 32 bit. Ma tutte le stesse, semplici applicazioni a 32 bit possono ottenere un vantaggio del loro lancio in un ambiente a 64 bit. Probabilmente sai che il programma raccolto con la chiave / largeaddressareware: Sì può evidenziare fino a 3 Gigabyte se il sistema operativo Windows a 32 bit è in esecuzione con il tasto / 3GB. Quindi, lo stesso programma a 32 bit in esecuzione su un sistema a 64 bit può evidenziare quasi 4 GB di memoria (in pratica circa 3,5 GB).

Il sottosistema WOW64 isola programmi a 32 bit da 64 bit reindirizzando ricorsi ai file e al registro. Ciò impedisce l'accesso casuale di programmi a 32 bit alle applicazioni a 64 bit. Ad esempio, un'applicazione a 32 bit che esegue il file DLL dalla directory% SystemRoot% \\ System32 può essere accidentalmente fare riferimento al file DLL a 64 bit che è incompatibile con un programma a 32 bit. Per evitare questo sottosistema WOW64, reindirizza l'accesso dalla cartella% SystemRoot% \\ System32 alla cartella% SystemRoot% \\ Syswow64. Questo reindirizzamento consente di evitare errori di compatibilità, poiché ciò richiede un file DLL creato specificamente per funzionare con applicazioni a 32 bit.

Maggiori informazioni con i meccanismi di reindirizzamento file system. E il registro può essere trovato nella sezione MSDN "Esecuzione di applicazioni a 32 bit".

Modello software Win64.

Anche come in Win32, la dimensione delle pagine in Win64 è 4kb. I primi 64 KB dello spazio indirizzo non vengono mai visualizzati, cioè, l'indirizzo corretto più piccolo è 0x10000. A differenza di Win32, le DLL del sistema sono caricate sopra 4 GB.

La funzione dei compilatori per Intel 64 è che possono utilizzare in modo efficace i registri per trasferire i parametri sulla funzione, invece di utilizzare lo stack. Ciò ha permesso agli sviluppatori dell'architettura Win64 di liberarsi di una cosa del genere come un accordo di sfida (Convenzione chiamante). In Win32, è possibile utilizzare diversi accordi: __stdcall, __cdecl, __FastCall e così via. In Win64 c'è solo un accordo di sfida. Considera un esempio, quattro argomenti di tipo integer sono trasmessi nei registri:

  • Rcx: il primo argomento
  • RDX: secondo argomento
  • R8: terza argomentazione
  • R9: quarta argomento
Argomenti dopo i primi quattro numeri interi vengono trasmessi sulla pila. Per gli argomenti di galleggiante, i registri XMM0-XMM3 vengono utilizzati così come la pila.

La differenza negli accordi di chiamata porta al fatto che il codice a 64 bit e a 32 bit non può essere utilizzato in un unico programma. In altre parole, se l'applicazione è compilata per una modalità a 64 bit, quindi tutte le librerie utilizzate (DLL) devono essere anche 64-bit.

Il trasferimento dei parametri attraverso i registri è una delle innovazioni che effettuano programmi a 64 bit più produttivi di 32 bit. Ulteriori guadagni sulle prestazioni possono essere ottenuti utilizzando tipi di dati a 64 bit.

Spazio indirizzabile

Sebbene il processore a 64 bit può teoricamente affrontare teoricamente l'esame di memoria (2 ^ 64), Win64 supporta attualmente 16 Terabytes (2 ^ 44). Ci sono diverse ragioni per questo. I processori attuali possono fornire accesso solo a 1 terabyte (2 ^ 40) memoria fisica. L'architettura (ma non un hardware) può espandere questo spazio fino a 4 petabyte (2 ^ 52). Tuttavia, in questo caso, è necessaria un'enorme quantità di memoria per le tabelle di pagina che visualizzano la memoria.

Oltre alle restrizioni elencate, la quantità di memoria disponibile in una particolare versione del sistema operativo Windows a 64 bit dipende dalle considerazioni commerciali di Microsoft. Di seguito sono riportate le informazioni sulla quantità di memoria supportata da varie versioni di versioni 64-binarie di Windows:

Windows XP Professional - 128 Gbyte;
Windows Server 2003, Standard - 32 Gbyte;
Windows Server 2003, Enterprise - 1 Tbyte;
Windows Server 2003, datacenter - 1 Tbyte;
Windows Server 2008, datacenter - 2 tbyte;
Windows Server 2008, Enterprise - 2 Tbyte;
Windows Server 2008, Standard - 32 Gbyte;
Windows Server 2008, server Web - 32 Gbyte;
VISTA HOME BASIC - 8 GBYTE;
VISTA HOME PREMIUM - 16 GBYTE;
Vista Business - 128 Gbyte;
Vista Enterprise - 128 Gbyte;
VISTA Ultimate - 128 Gbyte;
Windows 7 Home Basic - 8 Gbyte;
Windows 7 Home Premium - 16 Gbyte;
Windows 7 Professional - 192 Gbyte;
Windows 7 Enterprise - 192 Gbyte;
Windows 7 Ultimate - 192 Gbyte;

Sviluppo di applicazioni a 64 bit

I problemi più pienamente di sviluppo di applicazioni a 64 bit sono considerati nel know "

Domanda: Architettura del processore - Che cos'è?
Risposta: Il termine "architettura del processore" attualmente non ha un'interpretazione non ambigua. Dal punto di vista dei programmatori, nell'ambito dell'architettura del processore significa la sua capacità di eseguire un set specifico di codici macchina. La maggior parte delle moderne CPU desktop si riferiscono alla famiglia X86 o ai processori IA32 Intel-compatibili IA32 (architettura dei processori Intel a 32 bit. La sua base è stata posata da Intel nel processore I80386, tuttavia, nelle successive generazioni di processori, è stato integrato e ampliato sia l'Intel stesso (nuovi set di comandi MMX, SSE, SSE2 e SSE3) e produttori di terze parti (comandi EMMX , Comandi 3DNow! Ed esteso 3Dnow!, Sviluppato da AMD). Tuttavia, gli sviluppatori di ferro informatici sono investiti nel concetto di "architettura del processore" (a volte finalmente non è confuso, il termine "microarchitettura") è usato un significato un po 'diverso. Dal loro punto di vista, l'architettura del processore riflette i principi di base organizzazione interna Famiglie specifiche di processori. Ad esempio, l'architettura dei processori Intel Pentium è stata designata come processori P5, Pentium II e Pentium III - P6 e Pentium 4 popolari nel recente passato. Pentium 4 apparteneva all'architettura di NetBurst. Dopo che Intel ha chiuso l'architettura R5 per i produttori di terze parti, il suo principale concorrente - AMD è stato costretto a sviluppare la propria architettura - K7 per processori di athlon. e Athlon XP e K8 per Athlon 64.

Domanda: quali processori sono migliori, a 64 bit o 32 bit? E perché?
Risposta: Nel 2002 è stato proposto un'estensione di 64 bit a 64 bit della classica architettura IA32 a 32 bit da 32 bit da AMD (chiamata originariamente X86-64, ora AMD64) nei processori della famiglia K8. Dopo un po 'di tempo, Intel è stato proposto dalla propria designazione - EM64T (tecnologia estesa di memoria a 64 bit). Ma, indipendentemente dal nome, l'essenza della nuova architettura è la stessa: lo scarico dei principali registri interni dei processori a 64 bit è raddoppiata (da 32 a 64 bit) e i comandi del codice X86 a 32 bit ricevuti 64 --bit controparti. Inoltre, espandendo lo scarico del bus di indirizzo, il volume del processore di memoria indirizzabile è aumentato in modo significativo.

E tutto. Quindi quelli che si aspettano da CPU a 64 bit con una crescita significativa della produttività, la loro produttività sarà delusa - la loro performance nella maggior parte della maggior parte delle applicazioni moderne (che sono affilata alla IA32 nella Messa ed è improbabile che venga ricompilato con AMD64 / EM64T ) Nel futuro prevedibile) lo stesso di vecchi processori di 32 bit buoni. L'intero potenziale di un'architettura a 64 bit può essere rivelata solo in un futuro lontano, quando appaiono in quantità di massa (e potrebbero non apparire) applicazioni ottimizzate sotto nuova architettura. In ogni caso, la transizione più efficace a un 64 bit sarà per i programmi che lavorano con database, programmi di classe CAD / CAE, nonché programmi per lavorare con il contenuto digitale.

Domanda: cos'è kernel del processore?
Risposta: Entro la stessa architettura, vari processori possono differire piuttosto diversi l'uno dall'altro. E queste differenze sono incarnate in una varietà di kernel del processore con un certo set di caratteristiche strettamente determinate. Più spesso, queste differenze sono incarnate in varie frequenze del pneumatico di sistema (FSB), la dimensione della cache di secondo livello, il supporto di determinati sistemi di comandi o processi tecnologici, che sono processori fabbricati. Spesso, il cambiamento principale nella stessa famiglia del processore comporta la sostituzione del connettore del processore, da cui vengono seguiti i problemi di ulteriore compatibilità delle schede madri. Tuttavia, nel processo di miglioramento del kernel, i produttori devono apportare modifiche minori che non possono richiedere il "nome proprio". Tali modifiche sono chiamate gli audit del nucleo e, il più delle volte, sono denotati dalle combinazioni digitali. Tuttavia, in nuove revisioni dello stesso nucleo possono avere abbastanza innovazioni notevoli. Pertanto, Intel ha introdotto il supporto per l'architettura EM64T a 64 bit in processori separati di Pentium 4, nel processo di modifica dell'audit.

Domanda: qual è il vantaggio dei processori dual-core davanti al singolo core?
Risposta: L'evento più significativo del 2005 è stato l'aspetto dei processori dual-core. A questo punto, le CPU classiche del singolo core sono quasi completamente esaurite le riserve di produttività aumentando la frequenza operativa. L'ostacolo non era solo un'elevata dissipazione del calore dei processori che operano ad alte frequenze, ma anche problemi con la loro stabilità. Quindi è stato ordinato il vasto percorso di sviluppo di processori per i prossimi anni e i loro produttori dovranno padroneggiare il nuovo modo intensivo per migliorare la produttività. La maggior parte della RAM nel mercato della CPU desktop, come sempre, si è rivelato essere Intel, il primo annuncio del dual-core processori Intel. Pentium D e Intel Extreme Edition.. Tuttavia, AMD con Athlon64 X2 è rimasto dietro un concorrente letteralmente in giorni. L'indubbio vantaggio dei dual-core di prima generazione, a cui i processori sopra menzionati includono la loro piena compatibilità con l'esistente schede di sistema (Naturalmente, abbastanza moderno, che dovrà aggiornare solo il BIOS). La seconda generazione di processori dual-core, in particolare, processore Intel 2 DUO, "richiede" chipset appositamente progettati e con le vecchie schede madri non funziona.

Non dovremmo dimenticare che oggi lavorare con i processori dual-core più o meno ottimizzati è per lo più solo software professionale (incluso il lavoro con grafica, audio e dati video), mentre per un ufficio o un utente di casa, il secondo nucleo del processore a volte benefici, ma Molto più spesso è un carico morto. I vantaggi dei processori dual-core in questo caso sono visibili allo sguardo nudo solo quando qualsiasi attività di sfondo è in esecuzione sul computer (controllare virus, firewall del software, ecc.). Per quanto riguarda la crescita della produttività nei giochi esistenti, è minimo, anche se i primi giochi dei generi popolari sono già apparsi, utilizzando pienamente i vantaggi dell'utilizzo del secondo nucleo.

Tuttavia, se oggi è la domanda di scegliere un processore per il PC del gioco della fascia medio o superiore del prezzo, quindi, in ogni caso, è meglio preferire un dual-core, quindi il processore 4-core è un po 'più alto -Frequenza analogico singolo, poiché il mercato si muove costantemente verso i sistemi multicerore e l'elaborazione parallela ottimizzata. Tale tendenza sarà dominante nei prossimi anni, in modo che la quota ottimizzata per diversi core crescerà costantemente, e molto presto un momento può venire quando la moltiplica diventa un bisogno urgente.

Domanda: cos'è la cache?
Risposta: In tutti i processori moderni, c'è una cache (in inglese - cache) - una serie di ram ultra-velocità, che è un buffer tra il controller di una memoria di sistema relativamente lenta e il processore. Questo buffer memorizza i blocchi di dati con cui la CPU funziona al momento corrente, a causa del quale il numero del processore si rivolge a un estremamente lento (rispetto alla velocità del processore) è significativamente ridotto. In tal modo, le prestazioni complessive del processore aumentano notevolmente.

In questo caso, in processori moderni, la cache è stata a lungo non una singola serie di memoria, come prima, ma è divisa in diversi livelli. Il più veloce, ma relativamente piccolo in termini di primo livello cache (designato come L1), con il quale il nucleo del processore funziona, è più spesso diviso in due istruzioni di metà cache e dati della cache. La cache L1 interagisce la cache del secondo livello - L2, che, di regola, è molto più grande di volume ed è miscelato, senza separare la cache e la cache del comando. Alcuni processori desktop, seguendo l'esempio dei processori del server, possono anche essere visti nella cache del terzo livello L3. La cache L3 è solitamente ancora più di dimensioni, sebbene un po 'più lento di L2 (a causa del fatto che il pneumatico tra L2 e L3 è più stretto rispetto al pneumatico tra L1 e L2), ma la sua velocità, in ogni caso, è incommensurabile superiore al Memoria del sistema di velocità.

Contanti sono due tipi: cache esclusiva e non esclusiva. Nel primo caso, le informazioni nelle cache di tutti i livelli sono chiaramente delimitate - ognuna di esse contiene un eccezionalmente originale, mentre nel caso di alcuna informazione esclusiva della cache può essere duplicata a tutti i livelli di cache. Oggi è difficile dire quale di questi due schemi è più corretto - e in quello, e nell'altro ci sono entrambi svantaggi e vantaggi. Lo schema di cache esclusivo è usato in processori AMD.Ovunque l'esclusivo - nei processori Intel.

Domanda: cos'è un pneumatico per il processore?
Risposta: Pneumatico del processore (altrimenti - sistema), che è più spesso chiamato FSB (anteriore lato bus), è un insieme di linee di segnalazione combinate con il suo incarico (dati, indirizzi, gestione) che hanno certo caratteristiche elettriche e protocolli di trasferimento delle informazioni. Pertanto, FSB funge da canale del bagagliaio tra il processore (o i processori) e tutti gli altri dispositivi nel computer: memoria, scheda video, disco rigido e così via. Direttamente a K. bus di sistema Solo la CPU è collegata, i dispositivi rimanenti sono collegati tramite controller speciali focalizzati principalmente nel North Bridge logica di sistema. (chipset) scheda madre. Sebbene ci possano eccezioni - quindi, nei processori AMD della famiglia K8, il controller di memoria è integrato direttamente nel processore, fornendo, in tal modo, un'interfaccia di memoria molto più efficiente-CPU rispetto alle soluzioni Intel che mantengono i canoni classici dell'organizzazione dell'interfaccia esterna del processore. I parametri principali di FSB Alcuni processori sono forniti nella tabella

processore fREQUENZA FSB, MHZ Digita FSB. Capacità teorica FSB, MB / s
Intel Pentium III. 100/133 AGTL +. 800/1066
Intel Pentium 4. 100/133/200 Qpb. 3200/4266/6400
Intel Pentium D. 133/200 Qpb. 4266/6400
Intel Pentium 4 EE 200/266 Qpb. 6400/8533
processore Intel 133/166 Qpb. 4266/5333
Intel Core 2. 200/266 Qpb. 6400/8533
Amd Athlon. 100/133 Ev6. 1600/2133
AMD Athlon XP. 133/166/200 Ev6. 2133/2666/3200
AMD Sempron. 800 Ipertransport. <6400
AMD Athlon 64. 800/1000 Ipertransport. 6400/8000

I processori di Intel utilizzano il bus di sistema QPB (Bus Pumped Quad), trasmettendo dati quattro volte dietro l'orologio, mentre AMD AMD Athlon e Athlon XP System Bus Trasferisce i dati dei dati dei dati dei dati due volte (doppia frequenza dati). Nell'architettura AMD64 utilizzata da AMD nei processori Athlon 64 / FX / OPTERON, viene utilizzato un nuovo approccio all'interfaccia della CPU - Qui invece del bus del processore FSB e per i messaggi con altri processori sono utilizzati: seriale ad alta velocità (pacchetto) Bus hypertransport, costruito secondo lo schema peer-a-peer (punto-punto), fornendo alto tasso di cambio dati con latenza relativamente bassa.

La transizione a microprocessori a 16 bit - I8086 e altri prodotti di calcolo simili - è stato caratterizzato da un salto qualitativo di tutte le principali caratteristiche del MP: non solo un aumento di un aumento, ma un cambiamento significativo in architettura, squadre, i principi dell'organizzazione della struttura. Oltre ai mostrati in fig. 2.4, Nella macchina utente I8086, la memoria dei byte 1M e due aree di entrata e porte di uscita di 64k ciascuna è inclusa.

Considera la "macchina utente" basata su I8086 (K1810BM86):

7 0 7 0
ASCIA. Ah. Al Batteria
Ron. Bx. Bh. Bl. Base
Cx. Ch. Cl. Contatore
Dx. DH. Dl. Dati
15 0
Registri Sp. Pila il puntatore
Puntatori BP. Puntatore di base
Indice Si. INDICE DELL'OPERANDA.
Registri Di Risultato dell'indice
15 0
Cs. Codice codice
Segmento DS. Segmento dei dati
Registri SS. Pila di segmento
Es. Segmento Aggiungi. Dati
15 0
IP. Contatore
Bandiere. Registro dei segni

Fico. 2.4. MP I8086 - Macchina utente

Gli sviluppatori I8086 hanno cercato di mantenere la possibilità della continuità del software I8080, quindi, come parte di I8086, il sottoinsieme dei registri I8080 (il sottogruppo corrispondente viene salvato e nel sistema di comando) può essere distinto. Oltre alle operazioni con registri generici a 16 bit (RON) AX..dx, è permesso appello a ciascun byte di questi registri - al..dl, ah..dh. Alcuni comandi Rhon eseguono le caratteristiche predefinite di metri, registri indicizzati, ecc. (Vedi Fig. 2.4).

Registri a 16 bit BP, SI, DI V sono utilizzati per formare indirizzi di memoria esecutiva (vedi sotto), SP è un puntatore di stack, IP - misuratore software (SCC), registro flag. Il Byte più giovane F ripete completamente il formato dei segni dei segni di I8080 e il più anziano ha una traccia. formato:

DF. Determina la direzione di modifica degli indirizzi degli array nei comandi della catena (aumentare o diminuire l'indirizzo);

Se. maschera un interrupt esterno nell'ingresso di input (se iF \u003d 1 interrupt è consentito);

Tf. Gestisce la modalità passo-passo del microprocessore. Quando TF \u003d 1, dopo aver eseguito ciascun comando, viene formata automaticamente un'interruzione con il vettore 4 (vedere la Sezione 7).

Distribuzione dello spazio indirizzo.

Lo spazio degli indirizzi MP è definito nel bit I8086 dell'Indirizzo / indirizzo Bus + e è 2 20 \u003d 1 m byte. In questo indirizzo è disponibile lo spazio MP, quattro segmenti sono disponibili contemporaneamente, due dei quali (DS ed ES) sono destinati al posizionamento dei dati, al segmento di codice CS (per il posizionamento del programma) e SS - STEGMENT.

Le dimensioni dei segmenti sono determinate dalla batteria degli indirizzi logici dei comandi, dei dati e della pila. Gli indirizzi logici dei comandi e degli stack (Top) sono memorizzati in registri IP e SS a 16 bit, rispettivamente e l'indirizzo dei dati logici viene calcolato nel comando (vedi sotto) e ammonta anche a 16 bit. Pertanto, la dimensione di ciascun segmento in I8086 è di 64k byte. La posizione del segmento nello spazio indirizzo (il suo indirizzo di partenza) è determinato dal contenuto del registro del segmento con lo stesso nome. La formazione dell'indirizzo fisico è illustrato dallo schema di FIG. 2.5.

Da fig. 2.5 Si può vedere che il bordo del segmento nello spazio degli indirizzi può essere installato non arbitrariamente e in modo che l'indirizzo iniziale del segmento fosse Koint 16.

15 0
Registrazione del segmento. .0 0 0 0
15 0
Indirizzo logico
19 0
Indirizzo fisico

Fico. 2.5. Formazione di indirizzo fisico

Per impostazione predefinita, i registri del segmento sono selezionati per formare una traccia di indirizzi fisici. IMMAGINE: Quando si legge il comando all'indirizzo IP, CS viene utilizzato, quando si accede ai dati - DS o ES, quando si accede alla pila - SS. Con l'aiuto di console speciali al comando (prefisso), è possibile assegnare un registro di segmento arbitrario da utilizzare (tranne CS Pair: IP, che non è modificato). I confini dei segmenti possono essere selezionati in modo che i segmenti saranno isolati l'uno dall'altro, intersecano o addirittura completamente coincidono. Ad esempio, se si scarica CS \u003d SS \u003d DS \u003d ES \u003d 0, quindi tutti i segmenti coincidono l'uno con l'altro e iniziano con un indirizzo zero - l'opzione di organizzare lo spazio indirizzo I8080.

Affrontare i modi

e metodi di formazione dell'indirizzo esecutivo

La lunghezza del comando I8086 può essere da 1 a 6 byte. Il formato del team è presentato in FIG. 2.6.

1 byte. 2 bytes. 3..6 bytes.
Poliziotto D. W. Mod. Remi R / m. [Bias. dati]
7 2 1 0 7 6 5 3 2 0

Fico. 2.6. Formato del team MP I8086

La maggior parte dei comandi I8086 sono a doppio grado e un indirizzo determina il registro del processore e l'altro è la memoria o il registro. I campi della squadra hanno le seguenti destinazioni:

D - Determina la direzione della trasmissione delle informazioni: A D \u003d 1 Reg è un ricevitore, altrimenti - fonte;

W - Determina la lunghezza degli operandi nel comando: quando w \u003d 1, la lunghezza degli operandi è di 16 bit (word - word), altrimenti - 8 bit (byte);

Reg - Determina il registro per il primo operando secondo la tabella. 2.3:

Reg (r / m) Registrati
W \u003d 0. W \u003d 1.
Al ASCIA.
Cl. Cx.
Dl. Dx.
Bl. Bx.
Ah. Sp.
Ch. BP.
DH. Si.
Bh. Di

I campi R / M e MOD definiscono un metodo per formare l'indirizzo del secondo operando, che è più spesso in memoria. Nella scheda. 2.4 Sono forniti un metodo per la generazione di indirizzi di memoria per due valori di campo Mod.

R / m. Mod \u003d 00. Mod \u003d 01.
Logica Segmento Logica Segmento
BX + SI. DS. BX + SI + D8 DS.
BX + DI. DS. BX + DI + D8 DS.
BP + SI. SS. BP + SI + D8 SS.
BP + DI. SS. BP + DI + D8 SS.
Si. DS. SI + D8. DS.
Di DS. DI + D8. DS.
D16. DS. BP + D8. DS.
Bx. DS. BX + D8. DS.

Nella scheda. 2.4 D8 e D16 significano rispettivamente offset da 8 e 16 bit (byte di comando 3 e 3 + 4). Quando si opera con D8, la sua "estensione iconica" viene eseguita fino a 16 bit - bit 15..8 prendere il valore del bit 7 (segno).

Quando Mod \u003d 10, gli stessi registri vengono utilizzati come mod \u003d 01 (vedere la Tabella 2.4), ma invece di D8 utilizza D16.

Quando Mod \u003d 11, il secondo operando del comando è il registro determinato dal campo R / M in base alla tabella. 2.3.

Pertanto, l'operando in memoria può essere indirizzato direttamente (mod \u003d 00, r / m \u003d 110) o indirettamente dal contenuto dei registri di base (BP, BX) o indice (Si, DI), nonché le loro somme. Le modalità di indirizzamento sono progettate per implementare efficacemente le lingue di alto livello. Ad esempio, è possibile contattare una variabile semplice in modalità di indirizzamento diretta e all'elemento di array nella modalità di indirizzamento indiretta da BX, SI. La modalità di indirizzamento tramite BP è progettata per accedere ai dati dal segmento Stack, che è conveniente durante l'implementazione di procedure ricorsive e compilatori di linguaggio ad alto livello.

La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam