PDA

View Full Version : mhz o non mhz, questo è il problema


maxxxl
21-08-2003, 23:47
Ciao a tutti, voglio precisare che non bevo e non fumo quindi se sto dando i numeri e per problemi mentali.
Riflettendo sul funzionamento di un PC, in particolare sui vari MHZ di cui e composto, ho dato luogo ad una mia “teoria” forse assurda!
1°) Considerazione
Ho scoperto, leggendo delle riviste, che la frequenza delle memorie DDR es.266mhz, non sono altro che memorie che lavorano a 133mhz con 2 dati per ogni ciclo di clock cioè:
memoria SDR a 133mhz= 1 dato ogni ciclo di clock
memoria DDR a 133mhz=2 dati ogni ciclo di clock quindi pari a 266mhz ma non effettivi, in quanto lavorano anche loro a 133mhz come le SDR, ma con prestazioni quasi doppie.
2°) Considerazione
Le cpu Pentium 4 sono dotate di un sistema chiamato “Quad Pumped” cioè un meccanismo che riesce a scambiare 4 dati per ogni ciclo di clock con le memorie rispetto ad 1 solo delle precedenti versioni di cpu Pentium.
Anche qui vi porto qualche esempio: una cpu Pentium 4 a 1500mhz ha una fsb di 400mhz, una cpu a 2533 mhz a un fsb di 533mhz, una cpu a 3000mhz a un fsb di 800mhz.
I 400,533,800 mhz di fsb altro non sono che 100,133,200 mhz di bus, cioè:
i 400mhz non sono altro che 100mhz di bus con un transito di 4 dati per ogni ciclo di clock (100X4=400)
i 533mhz sono 133mhz di bus con passaggio di 4 dati per clock (133X4=533)
i 800mhz sono 200mhz di bus con passaggio di 4 dati per clock (200X4=800)
quindi ancora una volta scopriamo che in nessuna parte del PC c’è traccia effettiva di queste frequenze così elevate, questi meccanismi si comportano in modo da dare l’idea di avere frequenze così alte ma in realtà non ve n’è traccia.
3°) Considerazione
Prendiamo una cpu Pentium 4 a 2400 mhz con 533 di fsb la frequenza di 2400mhz è ottenuta con un bus di sistema di 133mhz moltiplicato per 18 volte =2394 (arrotondato a 2400) alla luce di quanto visto sopra ai punti 1 e 2 chi mi dice che il moltiplicatore non sia altro che un aumento del passaggio dei dati? Cioè: il bus di sistema è a 133mhz effettivi e se il moltiplicatore fosse un aumento del passaggio dei dati pari al numero del moltiplicatore stesso? Avremo quindi un risultato del genere: 133mhz di bus per 18 dati per ogni ciclo di clock sarebbe pari ad una cpu da 2400mhz, quindi i 2400mhz della cpu sembrerebbero illusori, anche perché sappiamo che le varie frequenze all’interno di un PC servono per dialogare con i vari componenti di cui è composto es. i 33mhz sono utili per collegare gli slot PCI,HD, porte seriali e chipset, i 66mhz collegano lo slot AGP con il chipset, i 100 o 133 mhz per collegare le memorie con il chipset e cpu, ma i 2400mhz della cpu con chi o cosa si collegano? quindi questi mhz sono fittizi o reali?
Raga vi lascio con questo dubbio ed una frase detta da non so chi: “solo chi è vicino alla verità mostra segni di follia”

Braccop
21-08-2003, 23:54
effettivamente e' giusto quello che hai letto... con i processori pero' credo sia diverso... la frequenza e' quella reale, a parte i vari PR tipo quello di AMD per i suoi Athlon XP.
Il pr infatti credo si basi su dei calcoli relativi alle operazioni eseguite per ciclo di clock... gli athlon xp infatti pur avendo una frequenza inferiore eseguono piu' operazioni per ciclo di clock, ottenendo prestazioni paragonabili a quelle delle frequenze ipotetiche espresse dal pr.
Una voce che ho sentito qualche anno fa invece era che i p4 avessero 2 unita' aritmetico logiche (al posto delle 4 tradizionali) funzionanti al doppio della velocita' del processore... ad esempio un 3 Ghz dovrebbe avere 2 ALU funzionanti a 6 Ghz...

PGI
22-08-2003, 00:14
Ammetto che a metà del post mi è andata insieme la vista, ma sono arrivato fino in fondo! :D

Le cifre riportate mi sembrano corrette, effettivamente la frequenza operativa della CPU è determinata da moltiplicatore x bus.

Che sia fittizia dipende da cosa intendi.

Ha una relazione "diretta" con le prestazioni del processore, a parità di architettura come detto da Braccop, perchè definisce il tempo impiegato dal processore per "maneggiare" le istruzioni che gli vengono passate: un processore "cloccato" a 2 (ghz, mhz, quello che vuoi) dovrebbe gestire la stessa istruzione in un tempo due volte minore rispetto ad un processore "cloccato" a 1 (...), perchè dal bus transitano non 133milionix1 dati (oscillazioni) al secondo ma 133x2, in pratica la CPU gestisce una capacità doppia.

La frequenza è "reale" nel senso che un processore a 2ghz non può andare a 4 (normalmente...)...alla fine sembra simile al concetto di "tolleranza", una CPU a 2ghz tollera la gestione di un tot di impulsi al secondo,poi incontra ostacoli fisici, una a 4ghz ha gli stessi problemi ma a frequenze maggiori.

Ciao.

Dumah Brazorf
22-08-2003, 00:24
Che io sappia solo alcune parti del processore lavorano alla frequenza dichiarata, se tutte lo facessero servirebbe una centrale nucleare per alimentarlo.
Devi sapere che per limitare il collo di bottiglia tra processore e periferiche è stata creata la gerarchia delle memorie, ovvero, la cache L1, L2 (in alcuni casi pure L3), quindi la memoria RAM di sistema e i dischi fissi/cdrom/memorie di massa.
Il processore accede alle varie informazioni dalla cache L1, che non è altro che memoria di pochi KB funzionante alla stessa velocità del processore. Grazie ad un complesso sistema di predizione nella cache L1 sono presenti i dati immediatamente richiesti dal processore, nel caso ci fosse un fallimento si ha uno stallo di qualche ciclo per reperire i dati dalla cache L2, memoria un po' + grande della L1 sempre lavorante alla stessa frequenza del processore (nei vecchi processori invece funzionava a freq minori). Se c'è un fallimento anche nella L2 i dati vengono reperiti nella memoria principare (la RAM), e così anche nella memoria di massa.
Quando il processore aspetta dati proveniente da altre periferiche perderebbe milioni/miliardi di cicli di attesa, ma devi considerare la decina di programmi che lavorano in background che rendono operativo windows: tutti questi vengono eseguiti in parallelo, nel senso che un pezzetto viene eseguito uno, un pezzetto un'altro, ecc, ma essendo la velocità del processore estremamente elevata non ce ne accorgiamo.
Tutto questo è spiegato a grandissime linee, spero di essere stato comprensibile.

stbarlet
22-08-2003, 08:34
Originariamente inviato da Dumah Brazorf
Che io sappia solo alcune parti del processore lavorano alla frequenza dichiarata, se tutte lo facessero servirebbe una centrale nucleare per alimentarlo.
Devi sapere che per limitare il collo di bottiglia tra processore e periferiche è stata creata la gerarchia delle memorie, ovvero, la cache L1, L2 (in alcuni casi pure L3), quindi la memoria RAM di sistema e i dischi fissi/cdrom/memorie di massa.
Il processore accede alle varie informazioni dalla cache L1, che non è altro che memoria di pochi KB funzionante alla stessa velocità del processore. Grazie ad un complesso sistema di predizione nella cache L1 sono presenti i dati immediatamente richiesti dal processore, nel caso ci fosse un fallimento si ha uno stallo di qualche ciclo per reperire i dati dalla cache L2, memoria un po' + grande della L1 sempre lavorante alla stessa frequenza del processore (nei vecchi processori invece funzionava a freq minori). Se c'è un fallimento anche nella L2 i dati vengono reperiti nella memoria principare (la RAM), e così anche nella memoria di massa.
Quando il processore aspetta dati proveniente da altre periferiche perderebbe milioni/miliardi di cicli di attesa, ma devi considerare la decina di programmi che lavorano in background che rendono operativo windows: tutti questi vengono eseguiti in parallelo, nel senso che un pezzetto viene eseguito uno, un pezzetto un'altro, ecc, ma essendo la velocità del processore estremamente elevata non ce ne accorgiamo.
Tutto questo è spiegato a grandissime linee, spero di essere stato comprensibile.
i processi nn vengono computati paralellamente(a meno che nn si utilizzi un porcessore con ht o un sistem mp);)

Yagami
22-08-2003, 09:09
Ho letto tutto il 3d.

:wtf: Quindi?

i processi nn vengono computati paralellamente(a meno che nn si utilizzi un porcessore con ht o un sistem mp)

Mi sembra che nemmeno il HT sfrutti il parallelismo. Il HT sfrutta i tempi morti delle operazioni elaborando altre informazioni.
Soltanto i sistemi MP funzionano in parallelo.

maxxxl
22-08-2003, 13:43
allora secondo voi la cpu lavora realmente alla frequenza che viene venduta? cioè materialmente i dati passano dalla cpu alla frequenza es. di 2400mhz/s?

Dumah Brazorf
22-08-2003, 13:51
Originariamente inviato da stbarlet
i processi nn vengono computati paralellamente(a meno che nn si utilizzi un porcessore con ht o un sistem mp);)

E io che ho detto??? :confused:

Originariamente inviato da Me
...devi considerare la decina di programmi che lavorano in background che rendono operativo windows: tutti questi vengono eseguiti in parallelo, nel senso che un pezzetto viene eseguito uno, un pezzetto un'altro, ecc, ma essendo la velocità del processore estremamente elevata non ce ne accorgiamo.

Ho spiegato cosa intendevo per " in parallelo", la cpu può fare 1 cosa alla volta, infatti esegue un po' di un programma, un po' di un altro, ecc, ma così velocemente che all'utente sembra che questi siano eseguiti insieme.
Ciao.

maxxxl
22-08-2003, 20:24
Originariamente inviato da Conner
Non male non male come ragionamento, ed anche la conclusione a cui sei giunto è logica; ti manca però un concetto di base:
quella del segnale di clock è un'onda quadra con 4 fronti (fasi), quindi il massimo numero di istruzzioni trasferibili per un sigolo ciclo sono 4 come fa il quad pump di P4 , oltre il non si può andare se non aumentando il numero di bit o la frequenza.


ecco ciò che non riuscivo a capire! allora la frequenza è realmente raggiunta dalla cpu, difatti nutrivo qualche dubbio sul fatto che la cpu elaborava tutte quelle istruzioni per ogni ciclo, anche perché se fosse stato possibile le GPU delle sk video ne sarebbero state tutte dotate.

stbarlet
22-08-2003, 20:46
[B]
Quando il processore aspetta dati proveniente da altre periferiche perderebbe milioni/miliardi di cicli di attesa, ma devi considerare la decina di programmi che lavorano in background che rendono operativo windows: tutti questi vengono eseguiti in parallelo, nel senso che un pezzetto viene eseguito uno, un pezzetto un'altro, ecc, ma essendo la velocità del processore estremamente elevata non ce ne accorgiamo.
Tutto questo è spiegato a grandissime linee, spero di essere stato comprensibile.
scusa per me "tutti questi vengono eseguiti in parallelo" vuol dire proprio che vengono eseguiti in parellelo ma nn è così... un pezzetto dopo pezzetto per me è seriale... tutto lì
;)

cmq con l'ht si può dire che i processi vengono computati in parallelo proprio perchè mentre viene eseguita una operazione ed essa nn sfrutta tutti i 20 stadi della pipeline un'altra operazione viene "eseguita" e ciò crea paralelismo

Dumah Brazorf
23-08-2003, 00:53
Diciamo che nell'esprimermi a grandi linee mi sono espresso male.
La frase non è morta dopo la parola parallelo, dopo la virgola tento di spiegare (male) cosa intendo. Ho nella testa il concetto giusto ma l'ho detto da cani, lo ammetto.
Birretta? http://digilander.libero.it/ipercafone/faccina507.gif

stbarlet
23-08-2003, 07:50
:ubriachi:

checo
24-08-2003, 17:29
Originariamente inviato da maxxxl
allora secondo voi la cpu lavora realmente alla frequenza che viene venduta? cioè materialmente i dati passano dalla cpu alla frequenza es. di 2400mhz/s?

MHZ/S :rotfl:

devis
24-08-2003, 18:39
Originariamente inviato da maxxxl
allora secondo voi la cpu lavora realmente alla frequenza che viene venduta? cioè materialmente i dati passano dalla cpu alla frequenza es. di 2400mhz/s?

mhz/s??

1 hz= 1 ciclo/s

1mhz=1 milione di cicli/s

checo
24-08-2003, 19:25
anche perchè la frequenza è esattamente l'inverso del tempo