View Single Post
Old 27-04-2010, 17:26   #24249
capitan_crasy
Senior Member
 
L'Avatar di capitan_crasy
 
Iscritto dal: Nov 2003
Messaggi: 24166
Lo Step E0 By bjt2!

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.




FINE PARTE PRIMA:

In lavorazione la seconda parte sugli ERRATA...



Ho spezzato per potervi proporre al più presto le novità...
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.
Clicca qui...

__________________
AMD Ryzen 5600X|Thermalright Macho Rev. B|Gigabyte B550M AORUS PRO-P|2x16GB G.Skill F4-3200C16D-32GIS Aegis @ 3200Mhz|1 M.2 NVMe SK hynix Platinum P41 1TB (OS Win11)|1 M.2 NVMe Silicon Power A60 2TB + 1 SSD Crucial MX500 1TB (Games)|1 HDD SEAGATE IronWolf 2TB|Sapphire【RX6600 PULSE】8GB|MSI Optix MAG241C [144Hz] + AOC G2260VWQ6 [Freesync Ready]|Enermax Revolution D.F. 650W 80+ gold|Case In Win 509|Fans By Noctua
capitan_crasy è offline   Rispondi citando il messaggio o parte di esso