View Single Post
Old 08-01-2009, 01:19   #4
capitan_crasy
Senior Member
 
L'Avatar di capitan_crasy
 
Iscritto dal: Nov 2003
Messaggi: 24166
Caratteristiche tecniche/differenze Step K10 45nm a cura di bjt2!

Premessa:
Ancora una volta bjt2 è stato molto gentile e disponibile ad analizzare il documento AMD "BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h Processors" dove vengono descritte le nuove funzionalità dei nuovi Step produttivi K10 a 45nm.:


Lo Step E0 (core Thuban e Zosma)



Quote:
Originariamente inviato da bjt2 Guarda i messaggi
Allora... Incominciamo...

Primo: le novità dello step E:

GLI ERRATA LI METTO IN UN SECONDO POST. Ho spezzato per leggibilità e per iniziare a dare qualcosa in pasto a voi...

1.5.5 Changes for Revision E
See the following references for information about changes for this revision.

• Changes that may result in BIOS modifications.
• 2.4.2.1.1 [Core Performance Boost (CPB)]
• F2x[1, 0]90[DisDllShutdownSR].
• F2x10C.
• Table 100.
• F3xA4[PerStepTimeDn, TmpMaxDiffUp, PerStepTimeUp].
• F3xA8[PopDownPstate, CacheFlushPopDownEn].
• F3xDC[CacheFlushOnHaltTmr].
• F3x188[EnStpGntOnFlushMaskWakeup].
• F4x15C.
• F4x16C.
• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn].
• MSRC001_0055.
• MSRC001_0073.

• Other changes:
• 2.4.2.1.2 [Core P-state Naming and Numbering].
• 2.4.2.1.3 [Core P-state Control].
• F3x1F0[MaxSwPstateCpuCof].
• CPUID Fn[8000_0000, 0000_0000]_EAX[LFuncStd].
• CPUID Fn0000_0006.
• CPUID Fn8000_0007[CPB].
• MSR0000_00E7.
• MSR0000_00E8.
• MSRC001_0015[EffFreqCntMwait, CpbDis].

In dettaglio:

• 2.4.2.1.1 [Core Performance Boost (CPB)]
E' il Turbo boost. In sintesi:
1) non è supportato su sitemi single plane, quindi AM2 lisci. QUESTO LASCIA SUPPORRE CHE IL THUBAN SI POSSA MONTARE SU SCHEDE AM2, ma senza Turbo boost...
2) la sua presenza è indicata da un bit di funzione CPUID.
3) il turbo è abilitato solo se tutte le condizioni seguenti sono verificate:
3.a) CacheFlushPopDownEn deve essere abilitato (vedi dopo per una spiegazione di cosa sia)
3.b) EnStpGntOnFlushMaskWakeup deve essere abilitato (vedi dopo per una spiegazione di cosa sia)
3.c) il turbo deve essere abilitato (ovvio... )
3.d) il numero di stati turbo deve essere 1 (in futuro probabilmente ce ne saranno di più)
3.e) il numero di core che devono essere spenti per attivare il turbo deve essere maggiore di zero. Questo parametro non sempre è modificabile. E' il famoso numero di core spenti necessari per attivare il turbo.
4) Tutti i P-states, compresi quelli del turbo, vanno specificati come per le vecchie cpu. Solo che ora ce ne sarà uno in più.
5) E' supportato un solo stato turbo.
6) Lo stato turbo DEVE avere un clock maggiore del P0, altrimenti il turbo non si attiva.
7) Lo stato boosted DEVE essere nascosto al SO. Quindi il BIOS non deve aggiungere lo stato boosted alla tabella dei p-state supportati. In pratica se viene listato tra gli stati, il driver della CPU si incasina...


• F2x[1, 0]90[DisDllShutdownSR].
Come per il C3, c'è questo stato di risparmio energetico della RAM che consente di disabilitare il DLL durante il self refresh mode della RAM.

• F2x10C.
Solo per il C3 e lo step E è possibile spostare il frame buffer della scheda video in altre locazioni...

• Table 100.
cambiamenti per la tabella degli stati ACPI per lo step E

• F3xA4[PerStepTimeDn, TmpMaxDiffUp, PerStepTimeUp].
cambiamenti per il misuratore di temperatura nello step E

• F3xA8[PopDownPstate, CacheFlushPopDownEn]
Queste impostazioni, specifiche dello step E e necessarie per abilitare il turbo boost, attivano la seguente caratteristica: se ci si trova in uno stato di risparmio energetico (quindi non C0 che è la piena potenza), quando un core svuota le caches L1 e L2 passa automaticamente a un P-state impostato da questa impostazione. Questo consente di abbassare il consumo di questi core e tramite un'altra impostazione che è spiegata dopo, consente di non svegliare queste CPU per vedere cosa hanno nelle caches, appunto perchè sono state svuotate.

• F3xDC[CacheFlushOnHaltTmr]
Questo è il timer che si deve settare per dire dopo quanto tempo una CPU in IDLE deve svuotare le caches. Sono aggiunti i valori consigliati per lo step E con e senza turbo boost abilitato.

• F3x188[EnStpGntOnFlushMaskWakeup]
Questo è il bit che specifica se svegliare o meno i cores per leggere la loro L1 e L2. Se attivato li sveglia solo se le caches non sono vuote. Lo step E supporta questa feature ed è consigliato abilitarla.

• F4x15C e F4x16C
Sono i registri che controllano il turbo boost. Ci sono vari bit:
1) BoostLock. E' un bit che dice se il turbo mode è bloccato o meno (per i BE ovviamente sarà sbloccato)
2) NumBoostStates. Specifica quanti stati sono boosted. Attualmente è supportato un solo stato. Bloccato se Boostlock=1.
3) BoostSrc. E' due bit. Attualmente si usano solo 2 combinazioni per abilitare o meno il boost. Dal nome del flag, (boost source) è possibile che in futuro le altre combinazioni siano usate per attivare turbo boost più sofisticati.
4) CstateCnt. 3 bit. Specifica quanti core devono essere in idle per far attivare il turbo mode. E' bloccato per CPU non BE.

• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn]
Risparmio energetico dei link HT supportati fin dallo step C

• MSRC001_0055
Registro per configurare messaggi per risparmio energetico delle perifgeriche quando la CPU è IDLE

• MSRC001_0073
Fino ad adesso per mandare un core a riposo si poteva eseguire l'istruzione HLT. Con lo step E si può richiedere un C-state leggendo una certa locazione di I/O specificata da questo registro. Immagio che il vantaggio sia che con HLT il processore è messo a riposo, mentre così il software continua con il C-state richiesto. Così il software (a questo punto il driver della CPU, magari in concerto con AOD o K10 stat, quando lo aggiornaranno) potrà variare dinamicamente lo stato di risparmio energetico senza usare l'istruzione HLT che causa la sospensione del processo.


• Other changes:
• 2.4.2.1.2 [Core P-state Naming and Numbering]
Qui è specificato come si chiamano i vari stati con turbo abilitato o meno.

• 2.4.2.1.3 [Core P-state Control]
Questo specifica come richiedere i P-state. Il turbo NON può essere richiesto: scatta solo se si è nello stato P0 e se le condizioni lo consentono.

IMPORTANTE: il numero di P-state totali è sempre 5. Se è attivato il turbo boost, si perde l'uso di uno dei P-state, che diventa quello del turbo.

• F3x1F0[MaxSwPstateCpuCof]
E' in sola lettura. Specifca la massima frequenza impostabile per un core (00 per CPU BE che vuol dire illimitato)

• CPUID Fn[8000_0000, 0000_0000]_EAX[LFuncStd]
Sono state aggiunte funzioni aggiuntive per le nuove cose dello step E. Questo registro dice quante funzioni CPUID ci sono.

• CPUID Fn0000_0006
Indica la presenza (solo sullo step E) della funzionalità per misurare il clock della CPU.

• CPUID Fn8000_0007[CPB]
Aggiunto il bit che indica la presenza del turbo boost.

• MSR0000_00E7, MSR0000_00E8
funzionalità per misurare il clock della CPU.

• MSRC001_0015[EffFreqCntMwait, CpbDis]
EffFreqCntMwait=1 abilita la funzione per misurare il clock.
CpbDis=1 disabilita turbo boost. 0=abilitato.

Fina prima parte...
Quote:
Originariamente inviato da bjt2 Guarda i messaggi
SECONDA PARTE: errata dello step E

Elencherò solo gli errata presenti (SIA NUOVI CHE NON RISOLTI) nello step E oppure gli errata risolti dallo step E. Per gli altri ERRATA vedere step C3 o step D0/D1.

NOTA: ho fatto una eccezione per l'errata 459 che riguarda solo lo step D1 (Magny Cours) perchè è stato scoperto di recente e non è riportato nel mio precedente intervento sullo step D1

Tabella:
ERRATA_C3_D0_D1_E0
319________X__X__X
327_____X__X__X__X
343_____X__X__X__X
344_____X__X__X__X
350_____X__X__X__X
378_____X________X
385________X__X__X
391_____X__X__X__X
396_____X__X__X__X
400_____X__X__X__X
405_____X__X__X__X
407_____X_____X___
414_____X__X__X__X
437________X__X__X
438______________X
439_____X_____X__X
459___________X___

In dettaglio:

319: Presente nel D0, D1, E0. Assente nel C3
Errato valore di temperatura rilevato dai sensori interni. Questo errata non pregiudica i sensori interni di sovratemperatura. Semplicemente la temperatura non è accurata. C'è un workaround da usare. Fix planned.

327: Presente in tutti gli step
Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.

343: Presente in tutti gli step
Problema nell'uso della cache L2 come RAM temporanea durante il boot del BIOS prima dell'abilitazione del controller RAM. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

344: Presente in tutti gli step
Problema sul link HTT oltre i 2 GHz uscendo dagli stati di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

350: Presente in tutti gli step
Problema su controller RAM all'inizializzazione al BOOT o dopo uscita da stato di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

378: Presente solo nel C3 ed E0
Problema con l'algoritmo pubblicato sui documenti ufficiali dei p-state. Potrebbe essere scelto un p-state inferiore. E' stato pubblicato un algoritmo aggiornato. Questo problema non si presenta nei D0 e D1. Per gli step precedenti non è stato pianificato un fix, perchè i BIOS sono stati aggiornati con il nuovo algoritmo.

385: Assente nel C3, presente in D0, D1 e E0
Valore errato di indirizzo L3 restituito su un errore L3. Se il SO disabilita anche la cache L3 danneggiata, si potrebbe escludere la porzione di cache sbagliata. Il workaround va a settare un bit sconosciuto. Nessun fix pianificato perchè l'errrore è lieve e comunque corretto dal fix.

391: Presente in tutti gli step
Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.

396: Presente in tutti gli step
Potenziali assorbimenti oltre i 500mA sui link HTT con frequenze fino a 2 GHz e quindi oltre le specifiche. Le specifiche sono state aggiornate, così i produttori di MB devono adeguare i VRM a supportare queste correnti. Nessun fix pianificato. Probabilmente tutte le MB non hanno problemi con queste correnti.

400: Presente in tutti gli step
Problema nel risveglio dagli stati C3 e C1E. Se il SO non ha programmato altre sorgenti di interrupt, l'APIC potrebbe perdere le interrupt durante gli stati C3 e C1E e il sistema non si risveglia. E' spiegato come fare a evitare questo problema e che c'è un BIT in alcune revisioni di processore per dire che il problema è stato risolto per lo stato C1E, perchè è pianificato un FIX. Per lo stato C3 non è previsto un FIX. E' un problema che riguarda i programmatori di SO e dei driver ACPI.

405: Presente in tutti gli step
Problema elettrico sui link HT nel risveglio dallo stato di risparmio energetico LS2. Nessun Fix pianificato poichè è spiegato come evitarlo.

407: Presente nel C3 e nel D1. Assente nel D0 e E0
Problema rarissimo nel probing delle caches di cores appena usciti dallo stato C1e da parte di cores nello stato C0, ma solo se un timer del flushing delle caches è stato impostato molto basso, cosa che normalmente è consigliato di NON fare. Normalmente le impostazioni del BIOS consigliate dovrebbero evitare questo problema, ma comunque è previsto un FIX. Questo errata non era presente nello step D0, poichè non aveva lo stato C1E...
Corretto nello step E0.

414: Presente in tutti gli step
Problema di possibile corruzione dati con DDR3, risparmio energetico attivato e una particolare modalità di risparmio energetico. Nessun fix pianificato, poichè è suggerito di usare il metodo di risparmio energetico alternativo. Con memorie ECC si hanno solo ripetuti errori ECC. Con memorie non ECC si ha corruzione dati.

437: Assente nel C3. Presente in D0 D1 e E0
Il contatore di eventi per la cache L3 può contare eventi L3 solo di specifici cores. C'è un errore che in rari casi causa il conteggio di eventi di core disabilitati o il mancato conteggio di cores abilitati. E' consigliato di contare gli eventi di tutti i cores. Nessun fix pianificato, poichè la funzionalità è raramente usata, credo...

438: Assente in C3, D0 e D1. Presente nell'E0
Il C-state comandato dall'I/O di cui ho parlato prima non funziona. Se il BIOS prova ad abilitarlo si genera una eccezione. Non c'è un fix pianificato e dice solo "Contact your AMD representative for information on a BIOS update."...

439: Assente solo nel D0
Potenziale e raro problema in fase di BOOT durante il rilevamento delle memorie. Dei moduli possono essere trovati non funzionanti erroneamente ed esclusi. Problema raro per cui un fix non è pianificato. Il workaround non è specificato... Dice solo "Contact your AMD representative for information on a BIOS update."

459: presente solo nello step D1
Se sono presenti tre DIMM per canale (Magny cours, quindi server) la RAM non funziona affidabilmente a 1333. E' consigliato di impostarla a 1066 con relativi timing. Nessun fix pianificato.


In breve: l'E0 risolve l'errata 407 (che sembra poco grave). Introduce errata poco gravi e una delle nuove funzionalità (tra l'altro marginali) non funziona.

Nulla da dire sugli errata a questo punto...
Quote:
Originariamente inviato da bjt2 Guarda i messaggi
In definitiva le cose interessanti emerse dalla lettura dei due documenti sono:

- Il turbo mode "consuma" un p-state. Se attivato, i p-state residui sono 4.
- Nelle CPU BE è possibile cambiare il numero di core a cui interviene il turbo, a parte i moltiplicatori sbloccati.
- Un baco risolto (errata 407)
- Il prefetcher dell'Instanbul dovrebbe essere presente.

Lo Step D1 (core Lisbon e Magny Cours)


Quote:
Originariamente inviato da bjt2 Guarda i messaggi
1.5.4.1 Changes for Revision D1
See the following references for information about changes for this revision.
• Changes that may result in BIOS modifications.
• 2.4.3.1.5 [BIOS Requirements to Initialize Message Triggered C1E].
• F0x[18C:170][LS2En].
• F2x[1, 0]90[DisDllShutdownSR].
• F3x[84:80].
• F3xA0[BpPinsTriEn].
• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn].

In dettaglio:

• 2.4.3.1.5 [BIOS Requirements to Initialize Message Triggered C1E].
Qui è spiegato nel dettaglio come il BIOS deve abilitare lo stato di risparmio energetico avanzato C1E per i processori G34 e C32. Quindi se il BIOS non lo attiva (per esempio non riconosce la CPU) lo stato C1E NON si attiva. Questo vale quasi sicuramente anche per il Thuban.

• F0x[18C:170][LS2En].
Qui è spiegato in dettaglio come il BIOS deve configurare i link HTT. In particolare la divisione dei link (visto come sono collegati i die di un magny cours) e il risparmio energetico LS2 che DEVE essere attivo per i C32 e G34.

• F2x[1, 0]90[DisDllShutdownSR].
Questo è uno dei registri di configurazione del controller DRAM. Qui è detto che per il G34 e C32 deve essere disabilitato il "disable DLL shutdown in self-refresh mode". Ricordate che alcune CPU dovevano avere questo bit abilitato? Perchè su quelle revisioni non funzionava il risparmio energetico del DLL della RAM. Evidentemente per i D1 è stato risolto (vedi dopo).

• F3x[84:80].
Registro di controllo per risparmio energetico ACPI. Valore consigliato per questo step è diverso per alcuni parametri. Confermato che i NB P-state sono supportati solo dallo step DA-C. Quindi sono stati eliminati...

• F3xA0[BpPinsTriEn].
In questa revisione è stato introdotto il tristate per i pins per breakpoints (roba che riguarda il debug). Questo registro serve per abilitarlo.

• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn].
Con questo step è stato abilitato il clock gating sui link HT. E' una funzionalità di risparmio energetico. Attivabile solo in modalità LS2 o 3 del link HT (HT 3.0). Questo bit serve per attivare tale funzionalità.


Veniamo ora agli ERRATA. Elencherò solo gli errata che differiscono tra step PRECEDENTI al D0, tra il D0 e il D1.
Gli ERRATA dal 406 in poi sono stati scoperti DOPO l'ultimo documento. Se si riferiscono anche agli step precedenti al D0 e D1, allora possono riguardare anche gli aggiornamenti BIOS dei precedenti step (ad esempio Shangai o Deneb).
Gli errata PRECEDENTI al 319 NON si applicano nè al C3, nè al D0, nè al D1. Gli errata mancanti tra il 319 e il 443 o sono stati corretti prima del rilascio, o non si applicano a nessuno dei C3, D0 e D1.

Errata presenti SOLO sugli step C3 e precedenti e NON sul D0 e NON sul D1.
Questi sono errata che sono stati CORRETTI nel D0 e nel D1:
346, 352, 353, 354, 359, 378, 382.

Errata presenti nel C3, nel D0 e nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 e nel D1:
327, 343, 344, 350, 361, 372, 391, 396, 400, 405, 414.

Errata presenti nel C3, nel D0 e NON nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 ma solo nel D1:
Nessuno.

Errata presenti nel C3, NON nel D0 ma nel D1.
Questi sono errata che NON sono stati CORRETTI nel D1 ma solo nel D0:
407, 439.

Errata presenti SOLO nel D0 e nel D1.
Questi sono errata non presenti nei C3:
319, 385, 397, 437.

Errata presenti SOLO nel D0.
Questi sono errata non presenti nei C3, ma nel D0, corretti nel D1:
374, 384, 386, 389, 398.

Errata presenti SOLO nel D1.
Questi sono errata non presenti nei C3 e nel D0, ma specifici del D1:
406, 411, 417.


DETTAGLIO DEGLI ERRATA ( che faticaccia... ) :

Errata presenti SOLO sugli step C3 e precedenti e NON sul D0 e NON sul D1.
Questi sono errata che sono stati CORRETTI nel D0 e nel D1:
346: System May Hang if Core Frequency is Even Divisor of
Northbridge Clock. Se un core lavora a una frequenza che sia divisibile per 2, 4, 6, ecc del clock NB, si può avere un problema. Ecco perchè con NB a 2,4 GHz, un P-state a 1,2GHz può dare problemi.

352, 353: Problema nel debugging (breakpoint) sulle istruzioni SYSCALL e SYSRET. Questo problema si verificava solo durante il debugging su un SO che usa queste istruzioni per le chiamate di sistema. Mi pare che windows non le usi.

354: Possibile problema di stabilità sui link HT oltre 2GHz. Quindi con i nuovi step si può avere HT con frequenza maggiore di 2GHz.

359: Problema di temporizzazione del clock RAM con le DDR2 in fase di BOOT. La maggior parte delle RAM funzionano, ma ci potrebbero essre RAM sensibili a questo problema. Se il sistema boota, però è tutto Ok. Questo problema è stato risolto.

378: Problema con l'algoritmo pubblicato sui documenti ufficiali dei p-state. Potrebbe essere scelto un p-state inferiore. E' stato pubblicato un algoritmo aggiornato. Questo problema non si presenta nei D0 e D1. Per gli step precedenti non è stato pianificato un fix, perchè i BIOS sono stati aggiornati con il nuovo algoritmo.

382: La cache L3 non poteva essere disabilitata parzialmente una volta che era stata abilitata. Corretto per gli step D0 e D1. Questa è una feature molto importante per i server: se durante l'uso si verifica che una porzione di cache L3 non era affidabile, il processore prevedeva la possibilità di disabilitarla on the fly senza riavviare. Per gli step precedenti questo meccanismo non funzionava. Ora si.


Errata presenti nel C3, nel D0 e nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 e nel D1:
327: Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.

343: Problema nell'uso della cache L2 come RAM temporanea durante il boot del BIOS prima dell'abilitazione del controller RAM. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

344: Problema sul link HTT oltre i 2 GHz uscendo dagli stati di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

350: Problema su controller RAM all'inizializzazione al BOOT o dopo uscita da stato di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.

361: Una eccezione di debug può essere persa in una macchina virtuale in alcune condizioni. Non è pianificato un fix, poichè il problema è lieve e causa solo perdite di eccezioni di debug in rarissimi casi e comunque solo in una macchina virtuale. Quindi non nel normale funzionamento.

372: in rarissimi casi e solo se il controller è in modalità unganged e il NB va a un clock interiore a 3 volte il clock RAM può verificarsi un problema. C'è un fix che modifica dei bit riservati e quindi disabilita o modifica qualcosa di sconosciuto nel NB, ma si applica solo per sistemi con P-state del NB (quindi step DA-C) oppure con DDR3 in modalità 1333. Non è pianificato un FIX. Deduco che che i bit moficati non impattano sulle prestazioni.

391: Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.

396: Potenziali assorbimenti oltre i 500mA sui link HTT con frequenze fino a 2 GHz e quindi oltre le specifiche. Le specifiche sono state aggiornate, così i produttori di MB devono adeguare i VRM a supportare queste correnti. Nessun fix pianificato. Probabilmente tutte le MB non hanno problemi con queste correnti.

400: Problema nel risveglio dagli stati C3 e C1E. Se il SO non ha programmato altre sorgenti di interrupt, l'APIC potrebbe perdere le interrupt durante gli stati C3 e C1E e il sistema non si risveglia. E' spiegato come fare a evitare questo problema e che c'è un BIT in alcune revisioni di processore per dire che il problema è stato risolto per lo stato C1E, perchè è pianificato un FIX. Per lo stato C3 non è previsto un FIX. E' un problema che riguarda i programmatori di SO e dei driver ACPI.

405: Problema elettrico sui link HT nel risveglio dallo stato di risparmio energetico LS2. Nessun Fix pianificato poichè è spiegato come evitarlo.

414: Problema di possibile corruzione dati con DDR3, risparmio energetico attivato e una particolare modalità di risparmio energetico. Nessun fix pianificato, poichè è suggerito di usare il metodo di risparmio energetico alternativo. Con memorie ECC si hanno solo ripetuti errori ECC. Con memorie non ECC si ha corruzione dati.


Errata presenti nel C3, nel D0 e NON nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 ma solo nel D1:
Nessuno.

Errata presenti nel C3, NON nel D0 ma nel D1.
Questi sono errata che NON sono stati CORRETTI nel D1 ma solo nel D0:
407: Problema rarissimo nel probing delle caches di cores appena usciti dallo stato C1e da parte di cores nello stato C0, ma solo se un timer del flushing delle caches è stato impostato molto basso, cosa che normalmente è consigliato di NON fare. Normalmente le impostazioni del BIOS consigliate dovrebbero evitare questo problema, ma comunque è previsto un FIX. Questo errata non era presente nello step D0, poichè non aveva lo stato C1E...

439: Potenziale e raro problema in fase di BOOT durante il rilevamento delle memorie. Dei moduli possono essere trovati non funzionanti erroneamente ed esclusi. Problema raro per cui un fix non è pianificato. Il workaround non è specificato... Dice solo "Contact your AMD representative for information on a BIOS update."


Errata presenti SOLO nel D0 e nel D1.
Questi sono errata non presenti nei C3:

319: Errato valore di temperatura rilevato dai sensori interni. Questo errata non pregiudica i sensori interni di sovratemperatura. Semplicemente la temperatura non è accurata. C'è un workaround da usare. Fix planned.

385: Valore errato di indirizzo L3 restituito su un errore L3. Se il SO disabilita anche la cache L3 danneggiata, si potrebbe escludere la porzione di cache sbagliata. Il workaround va a settare un bit sconosciuto. Nessun fix pianificato perchè l'errrore è lieve e comunque corretto dal fix.

397: Potenziali assorbimenti oltre i 1400mA sui link HTT in modalità Rerty e quindi oltre le specifiche. Le specifiche sono state aggiornate, così i produttori di MB devono adeguare i VRM a supportare queste correnti. Nessun fix pianificato. Probabilmente tutte le MB non hanno problemi con queste correnti.

437: Il contatore di eventi per la cache L3 può contare eventi L3 solo di specifici cores. C'è un errore che in rari casi causa il conteggio di eventi di core disabilitati o il mancato conteggio di cores abilitati. E' consigliato di contare gli eventi di tutti i cores. Nessun fix pianificato, poichè la funzionalità è raramente usata, credo...


Errata presenti SOLO nel D0.
Questi sono errata non presenti nei C3, ma nel D0, corretti nel D1:
374: In rarissimi casi una lettura dalla cache L3 restituisce dati vecchi. Il workaround va a settare un bit sconosciuto. Fix pianificato, probabilmente perchè impatta sulle prestazioni. E infatti sul D1 non è presente.

384: Problema con il prefetch con l'HT assist abilitato. Bisogna disabilitare il prefetch se l'HT assist è abilitato. E' una discreta perdita di prestazioni presente solo nell'Instambul. Nel Magny cours è stata corretta.

386: Problema con la ricezione di pacchetti HTT corrotti in rarissimi casi. Il workaround modifica la configurazione di alcuni buffer interni probabilmente impattando sulle prestazioni. E' stato risolto nel D1 per questo motivo, poichè impattava sopratutto sui link coerenti che sono quelli usati tra i die e verso le altre CPU...

389: Altro problema nella ricezione di pacchetti HTT corrotti che si verifica durante il retry. Il workaround modifica qualcosa sul retry che probabilmente impatta sulle prestazioni. Ecco perchè nel D1 è stato risolto.

398: Possibili problemi di trasmissione sui link HTT se il clock HT è superiore al clock NB ed ha moltiplicatore DISPARI (ecco perchè HT va a 2,4GHz e non 2,2 GHz sugli Instambul) in alcune condizioni. Il workaround è non usare moltiplicatori HTT dispari. E' stato fixato nel D1 così da avere maggiore flessibilità per il moltiplicatore HT.


Errata presenti SOLO nel D1.
Questi sono errata non presenti nei C3 e nel D0, ma specifici del D1:
406: In alcuni casi il risparmio energetico C1E non entra in funzione. Fix pianificato perchè riduce la capacità di risparmio energetico.

411: Altro raro caso in cui non entra in funzione lo stato C1E. Stavolta il workaround risolve il problema, così non c'è un fix pianificato.

417: Violazione delle specifiche del clock RAM solo in modalità DDR3-1333, in uscita dal risparmio energetico self refresh e solo per le registered DDR3 (quindi RAM server). Non sono note DIMM che risentono di questa violazione. Se ci fossero DIMM sensibili a queste violazioni le RAM non escono dal self-refresh (credo mandando in crash il sistema). Nessun workaround possibile. Fix non pianificato poichè le RAM sembrano non risentire di questo problema.



IN SINTESI:

lo step D0 risolve alcuni gravi problemi. Lo step D1 ne risolve qualcun altro. Lo step D1 introduce qualche problemino a causa delle novità introdotte (C1E e memorie DDR3 server), ma nulla di grave. Il maggior problema che corregge il D1 è un errore sul prefetch con HT assist abilitato. Nell'instambul con HT assist abilitato si doveva DISABILITARE il prefetch, con discrete perdite di prestazioni. Nel Magny cours no. Anche per questo il Magny Cours STRACCIA l'Instambul nel test RAM Triad...
L'unico errata serio non risolto che mi da da pensare è il 372. Ma poichè non è pianificato un fix sono 2 le cose: o non impatta sulle prestazioni in modo significativo, oppure è terribilmente difficile da fixare. Spero che sia la prima, ma non possiamo saperlo, perchè il workaround modifica bit riservati di cui non si può sapere nulla...

Lo Step D0 (core Istanbul)



Quote:
Originariamente inviato da bjt2 Guarda i messaggi
Cose interessanti dello step D0:

- Esistono gli step DA-C e lo step D. I primi sono precedenti temporalmente. Forse si tratta della versione desktop? O Quad core?

- Modifiche per gli step DA-C:

- NB P-states. Sono solo 2 e lo stato basso è esattamente la metà dello stato alto. L'unico controllo da parte del BIOS è l'abilitazione. Entra in funzione se è abilitato e se tutti i cores sono in uno stato che specifica NBdid=1.
- P-State massimo controllato termicamente. Sia software che hardware. Questo esisteva già nelle vecchie revisioni (ed è per questo che su sovratemperature il clock scende a 800MHz), ma ora è stato aggiunto il controllo tramite SMBus.
- Gli step DA-C supportano lo spegnimento del DLL se la RAM è in self refresh (stato S3, ossia stand by). E' per il risparmio energetico.
- Leggendo la parte del controller RAM ho trovato queste considerazioni, valide per tutti gli step: il burst di 4 parole non può essere attivato in modalità ganged, perchè è implicito nella modalità stessa, per le DDR3 il bit che setta 4/8 parole è indefinito, ossia il burst length è dato dalla modalità ganged/unganged, per leggere 64 bytes alla volta.
- Gli step DA-C supportano lo spegnimento selettivo dei clock delle linee RAM. Se le DIMM non sono ECC si può spegnere da subito il relativo clock. Dovrebbe consentire un leggero risparmio energetico.
- Da questi step è possibile specificare quanti clock aspettare che si stabilizzi il PLL dopo un cambio di frequenza.
- Questi step supportano il divisore NB di 128 (per il risparmio energetico), ma solo se l'HT sta in modalità 3.x. Maggior risparmio energetico.
- Fino alla revisione C inclusa, i bit di disabilitazione cores erano 4. Per la DA-C (e D) sono 6. Questo fa supporre che anche le revisioni DA-C siano esacore. Versione Desktop?
- Per le revisioni DA-C e D è possibile usare i valori di impedenza di terminazione on DIE per la RAM della DDR2 per la DDR3 e viceversa. Consente di avere più scelta.

- Modifiche per la revisione D:
- Il clock HT può essere fino al doppio dell'NB se l'error retry è abilitato. Può essere abilitato solo sui link HT 3.x. Deve essere abilitato sui link 3.x coerenti. Supporta fino a 32 pacchetti in sospeso.
- Aggiunti dei bit per specificare se la CPU supporta frequenze di HT di 2,8 3.0 e 3.2GHz.
- Aumentati il numero totale di cores supportati in un sistema da 32 a 48.
- Aggiunti altri 2 bit per i 2 core in più.
- Aggiunti 8 bit di sola lettura per sapere se i 4 link o 8 sublink (se divisi in due) sono connessi a dispositivi interni o esterni.
- Supporto all'aggregazione di link HT coerenti per aumentare la banda: in sistemi a 2 socket possono essere aggregati fino a tre link HT coerenti (ovviamente servono Opteron serie 8) e in sistemi a 4 socket fino a 2 link possono essere aggregati.
- La revisione D supporta DIMM DDR3 a 667 MHz (ma esistono???).
- La revisione D supporta il thermal throttling dei comandi alla RAM. Se il thermal throttling è abilitato e le DIMM sono in sovratemperatura, oppure si da il comando di termal throttling manuale, i comandi alla RAM sono rallentati del valore specificato (in %). Se la percentuale è 0 le DIMM vanno in power down, non consigliato perchè il sistema può andare in timeout.
- Aggiunti due bit separati per i due canali per sapere se le DIMM sono in sovratemperatura.
- Segue una dettagliata descrizione del write bursting e del prefetcher con tanto di algoritmi e specifica i setting ottimali per ogni step. Lo step D può fare il prefetching di fino a 5 linee di caches. Gli step precedenti fino a 3. In ogni caso l'algortimo di prefetching è adattativo, nel senso che determina dinamicamente, in base a regole dettagliate nel documento, quante linee e quanto avanti leggere.
- I parametri del prefetcher sono tantissimi (da cui deriva che il supporto del BIOS deve essere buono) e per lo step D sono stati aggiunti altri parametri. QUINDI IL PREFETCHER DELLO STEP D E' MIGLIORE. Alcuni tra i parametri aggiunti, sono le soglie per leggere fino a 4 e fino 5 cache lines, una soglia per dire di rallentare il prefetching se ci sono troppe richieste normali in attesa, la disabilitazione e configurazione del prefetcher speculativo della L3
- Aggiunte combinazioni 5 e 6 core tra i core supportati.
- Aggiunti registri per sapere che errori ECC si sono verificati.
- Modifiche al numero di buffer L3 disponibili quando ci sono 5 o 6 core attivi.
- Aggiunti i registri per abilitare e configurare il probe filter (HT assist) e configurare l'interrupt nel caso di errore.
- E' sparito il registro che indica se la CPU supprota il single plane. Questo perchè lo step D è supportato SOLO in sistemi dual plane. Niente AM2 se uscisse una versione desktop e solo versione 1207+ nel caso server.
- Supporto del decision feedback equalizer e deenfasi sui link HT. Suppongo che siano per il supporto HT 3.1 o comunque per una migliore stabità ad alta frequenza. Sono supportati valori diversi sulle singole linee.
- Aggiunto contatore errori link HT.
- Aggiunti altri due valori al ThrottleNBInterface, per 5 e 6 core attivi: i core usano il NB a turno, anche se non gli serve. Più core attivi ci sono, più ogni core deve aspettare. Un numero di clock pari al numero di core meno 1.
- Cambiati valori e diminuita tolleranza della resistenza on die termination per la DDR2. Aggiunto anche un ulteriore valore.
- Spegnimento del DLL se la RAM è in self refresh (stato S3, ossia stand by). E' per il risparmio energetico.
- è possibile usare i valori di impedenza di terminazione on DIE per la RAM della DDR2 per la DDR3 e viceversa. Consente di avere più scelta.
- Aggiunti dei registri read-only che contengono informazioni sul consumo stimato combinato di un core+il consumo del NB/numero di core per ogni P-state. Moltiplicare per il numero di core per ottenere il consumo totale.
- Aggiunte minori per segnalazione errore.
- Modifiche al registro che contiene la temperatura CPU.
- Aggiunta la possibilità di leggere fino a 4 registri SBI con una sola istruzione. Aggiunto un secondo spazio separato SBI per altre comunicazioni.
- Aggiunta registro per leggere le L3 hit statistics divise per core.
- Supporto del pause intercept filter (???).
- Le NB P-state transition sono supportate solo nello step DA-C.
- Modificate le statistiche per supportare 6 core o tutti i core.


In definitiva lo step D introduce:

- 6 core.
- Probe filter.
- Prefetcher migliorato e più configurabile.
- Supporto per HT 3.1.

Direi che è una buona cosa...

K10 65nm (Step B3) Vs 45nm (Step C2/C3): ecco le principali differenze



Quote:
Originariamente inviato da bjt2 Guarda i messaggi
Questi sono i cambiamenti per la revisione C del processore:

Buona lettura...

1.5.3 Changes For Revision C
See the following references for information about changes between these revisions.
----- Changes that may result in BIOS modifications:

• 2.7.1.3.1 [Unused Links].
Se ci sono link HT sconnessi, il clock di quei link sono spenti e i registri ad esso associati non sono più accessibili (evidentemente nelle revisioni precedenti anche se i link erano sconnessi tutto funzionava come se fossero connessi, con consumo inutile di energia)

RISPARMIO ENERGIA

• Table 43: support for 8Gb DDR3 devices.
Aggiunta di altri codici per moduli DDR3 con chip da 8Gigabits.

SUPPORTO A MODULI PIù GRANDI

• F2x[1, 0]78[EarlyArbEn].
Questo BIT abilita delle ottimizzazioni del controller RAM per velocizzare l'accesso alla RAM. Nella revisione B può essere attivato solo per rapporti tra NB clock e RAM clock tra 4,5:1 e 3:1 . Per la revisione C può (e conviene) essere attivato per ogni divisore.

MAGGIORI PRESTAZIONI DELLA RAM

• F2x[1, 0]9C_x[3:0]0[2:1].
• F2x[1, 0]9C_x[3:0]03.
• F2x[1, 0]9C_x[3:0]0[6:5].
• F2x[1, 0]9C_x[3:0]07.
• F2x[1, 0]9C_x0D.
• F2x[1, 0]9C_x[4A:30]

Modifiche ai registri di ritardo delle linee. Questi registri servono per calibrare i ritardi delle linee RAM e sono tarati al boot dal BIOS. Ci sono delle modifiche e delle aggiunte nella revisione C.

MODIFICHE MINORI CHE POSSONO PORTARE A OC DELLA RAM MAGGIORI

• F2x[1, 0]A8[DataTxFifoWrDly].

Questo è una nuova impostazione introdotta con la revisione C. Non presente nella revisione B. Consente di impostare il ritardo in cicli di clock nella scrittura verso la RAM per evitare la saturazione della coda FIFO del dispositivo di basso livello che scrive fisicamente in RAM.

POSSIBILI MIGLIORAMENTI PRESTAZIONI RAM

• F2x110[DctSelIntLvAddr].

Aggiunto un nuovo modo di interleaving delle DIMM.

POSSIBILI MIGLIORAMENTI PRESTAZIONI RAM

• Table 57.

La revisione C supporta un timer per il flushing della cache durante lo stato Halt. Dopo il flushing della cache il clock del core è diviso per un valore specificato. Ciò consente di spegnere la cache e abbassare il clock di un core non usato dopo un timer specificato.

MAGGIORE RISPARMIO ENERGIA

• F3x180[SyncFloodOnDramTempErr].

Introdotta una nuova condizione anormale per cui il sistema va in sync flood (si blocca???): sovratemperatura RAM.

MAGGIORE SICUREZZA DEL SISTEMA

• F2x1B0.

Nuovo registro introdotto per controllare il nuovo prefetcher. Sembra che possa fare anche il prefetch dell'I/O (!!!). Sono supportate fino a 16 richieste in coda (!!!)

MIGLIORAMENTI PRESTAZIONI RAM e I/O

• F3x1E4[LvtOffset].

Nuovo registro per riallocare la tabella LVT nello spazio dell'APIC.

• F3x1E8[SbiBankSel, SbiByteCnt].

Registri per accedere ai registri della SBI.

• F4x1[9C, 94, 8C, 84]_x[D5, C5][VML, MapPreToMargin, TxLs23ClkGateEn].

Registri per l'equalizzazione dei segnali delle RAM. Introdotte nuove funzionalità.

MAGGIORE STABILITà DELLE RAM.

• F4x1[9C, 94, 8C, 84]_x[530A, 520A][DllAnalogOkIgnore].

Il flag indicato non è più supportato nella versione C. Il DLL è sempre acceso dopo un ritardo specificato in AnalogWaitTime (vedi sotto)

???

• F4x1C4.

Nuovo registro per controllare lo stop dei clock della cache L3. La cache L3 nella revisione C è divisa in settori (fino a 16) con relativo clock. Se quella sezione di cache è inattiva, il clock relativo è spento. Questo flag specifica se attivare questa funzione e le soglie di intervento.

MAGGIORE RISPARMIO ENERGETICO

• MSRC001_102A[RdMmExtCfgQwEn].

Questo flag abilita la lettura non allineata nel memory mapped I/O. La revisione B non supporta accessi non allineati alla quadword. La revisione C si se abilitata con questo flag.

MIGLIORI PRESTAZIONI NEL SOFTWARE DI BASSO LIVELLO




----- Other changes:

• F3x1EC[SbiRegDat3, SbiRegDat2, SbiRegDat1].

Probabile aggiunta di nuovi registri di controllo nell'interfaccia SBI.

???

• F4x1[9C, 94, 8C, 84]_x[D4, C4][VdcDacFine].

Consente di raddoppiare la risoluzione (ma dimezzare il range) del controllo sulla deenfasi dei segnali DRAM

POSSIBILE MAGGIORE STABILITà DELLE DIMM

• F4x1[9C, 94, 8C, 84]_x[530A, 520A][AnalogWaitTime].

Il DLL è acceso sempre dopo questo ritardo indipendentemente dal setting di DllAnalogOkIgnore (non più supportato)

???

• F4x1[9C, 94, 8C, 84]_x6[9, 8]84.

Abilita lo shift di 90 gradi di fase tra i due clock dell'HT. Potrebbe ridurre il cross talk.

MAGGIORE STABILITà DELL'HT E SUPPORTO A CLOCK MAGGIORI.

• F4x1[9C, 94, 8C, 84]_x[D1, C1][LfxMax, LfcMin].

Registro per settare il filtro del clock (e dei dati???) del link HT. Setta i parametri del riaggiustatore automatico di fase.

MAGGIORE STABILITà DELL'HT E SUPPORTO A CLOCK MAGGIORI.

• F4x1[9C, 94, 8C, 84]_x[D0, C0][RttIndex, RonIndex].

Modifiche alla calibrazione della resistenza di terminazione e in stato alto del link HT.

MAGGIORE STABILITà DELL'HT E SUPPORTO A CLOCK MAGGIORI.

• CPUID Fn[8000_0000, 0000_0000]_EAX.

Aggiunta una funzione estesa CPUID nella revisione C. Questo registro riflette questo fatto.

MAGGIORI FUNZIONI

• CPUID Fn8000_0001_ECX[SKINIT, WDT].

I due bit indicati sono ON nella revisione C and indicare il supporto (contrariamente alla revisione B) all' SKINIT e STGI e a un timer watchdog

MAGGIORI FUNZIONI

• CPUID Fn8000_000A[NRIPS].

Supporto al salvataggio del NRIP (???)

MAGGIORI FUNZIONI

• CPUID Fn8000_0019.

Supporto al caching L2 dei TLB delle pagine da 1GB

MIGLIORAMENTO PRESTAZIONI NELL'USO DI PAGINE DA 1GB (l'uso di pagine da 1GB è utile sopratutto per la virtualizzazione)

• CPUID Fn8000_001B.
• MSRC001_1033[IbsOpCntCtl, IbsOpCurCnt].
• MSRC001_1037[IbsDcL2tlbHit1G].

Modifiche e aggiunte al supporto per l'Istruction Based Sampling (IBS)

MIGLIORE SUPPORTO ALL'IBS CON MAGGIORI STATISTICHE

• EventSelect 041h.

Modifiche al conteggio dei data cache miss. Nella revisione C non sono contati i cache miss degli streaming store.

CONTEGGIO PIù ACCURATO

• EventSelect 045h[3].

Aggiunta di un bit che dice se c'è stato un HIT nella cache L2 TLB da 1 GB (la revisione B non mette in cache L2 TLB le pagine da 1GB)

CONTEGGIO PIù ACCURATO





In definitiva ci sono state delle modifiche con lo step C2 per migliorare le prestazioni, la stabilità con le RAM e l'HT e ridurre il consumo...

Non male...
NOTA BENE:

Quote:
Originariamente inviato da bjt2 Guarda i messaggi
Rileggendo quello che ho scritto, si nota che se il BIOS non riconosce la CPU, anche se riesce a partire nonostante quel problema sul controller RAM (non è detto che si verifichi) comunque se non si settano i registri delle nuove funzionalità (penso al nuovo prefetcher) non se ne fa uso... Quindi è importante che i BIOS supportino i Deneb e abilitino correttamente tutte le nuove funzionalità...

Inoltre il prefetcher è configurabile: quindi BIOS avanzati potrebbero esporre all'utente questo fatto e consentire di trovare il miglior setting.

Ultima modifica di capitan_crasy : 27-04-2010 alle 17:30.
capitan_crasy è offline   Rispondi citando il messaggio o parte di esso