Visualizzazione dei risultati da 1 a 4 su 4

Discussione: 2.7 GHZ Processore

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    218

    2.7 GHZ Processore

    Quando leggo, per esempio, la scritta 2.7Ghz quad core processor, significa che:

    Ghz e' l'unita' di misura della velocita' del processore. Vero?

    Se ogni GB corrisponde quasi a 1.000.000 di byte e quindi nel nostro caso 2.7*1.000.000=2.700.000 byte. Vero?

    E quindi il nostro processore, in questo caso, puo' effettuare/calcolare/procedere alla velocita' di 2.700.000 byte al secondo. Vero?


    Se tutti questi miei calcoli, , sono tutti sbagliati, potete spiegarmi il 2.7Ghz nello specifico cosa significa quando si trova nelle caratteristiche di un processore?


    Grazieeeeeee

  2. #2

    Re: 2.7 GHZ Processore

    Originariamente inviato da violaf
    Quando leggo, per esempio, la scritta 2.7Ghz quad core processor, significa che:

    Ghz e' l'unita' di misura della velocita' del processore. Vero?
    Una volta sì, oggi no - o meglio, vale ancora per certi processori (tipicamente microcontroller e roba del genere), ma non per praticamente ogni CPU general-purpose prodotta negli ultimi 15 anni (e in ogni caso, non è mai stata una misura valida per confrontare processori con architetture diverse).
    Se ogni GB corrisponde quasi a 1.000.000 di byte e quindi nel nostro caso 2.7*1.000.000=2.700.000 byte. Vero?
    I GHz non c'entrano niente con i GB. I primi sono una misura di frequenza (tot cicli al secondo), i secondi di quantità di informazione.
    E quindi il nostro processore, in questo caso, puo' effettuare/calcolare/procedere alla velocita' di 2.700.000 byte al secondo. Vero?
    Falso.
    Se tutti questi miei calcoli, , sono tutti sbagliati, potete spiegarmi il 2.7Ghz nello specifico cosa significa quando si trova nelle caratteristiche di un processore?
    Il lavoro che fa un processore in continuazione è eseguire istruzioni più o meno elementari, roba del tipo "copia un intero da questa locazione di memoria in un registro", "somma il contenuto di tal registro con questo numero", "carica questo valore sullo stack", "salta ad eseguire il codice che sta a questa locazione di memoria", "confronta questi due registri" e così via. Di base, il processore esegue le istruzioni con una certa frequenza - la frequenza di clock, che è normalmente ciò a cui si riferiscono i "GHz"; 2,7 GHz vuol dire 2,7 miliardi di istruzioni al secondo, per cui in teoria più è alta la frequenza di clock, più va veloce il processore.

    In pratica in realtà la frequenza di clock non vuol dire più niente, ed è significativo confrontarla solo tra processori della medesima famiglia.
    Questo perché in realtà la questione è molto più complicata. Diverse istruzioni impegnano solo aree specifiche del processore, e, se si lavora con il classico ciclo "leggi l'istruzione -> decodificala -> fai il lavoro che ordina -> prosegui con la prossima istruzione" gran parte della CPU resta inutilizzata; per sfruttare sempre al meglio il processore, più o meno dal Pentium Pro in poi si è passati ad architetture superscalari e basate su pipeline, che, in determinate circostanze, fanno sì che il processore possa "macinare" più di un'istruzione per ciclo di clock. Ad esempio, se due istruzioni consecutive lavorano su dati diversi e usano parti della CPU diverse (quindi non interferiscono tra di loro) possono essere eseguite in contemporanea, dimezzando il tempo necessario per la loro esecuzione.
    Questi approcci vengono via via raffinati sempre di più, introducendo nella CPU meccanismi come l'esecuzione out-of-order (il processore riordina automaticamente le istruzioni in modo da poter fare il gioco di prima anche se le istruzioni non sono già in ordine ottimale), l'esecuzione speculativa e altri trucchi che vanno ad aumentare le performance della CPU a parità di velocità di clock.

    In CPU recenti, poi, vengono aggiunte nuove istruzioni, che consentono di far fare direttamente al processore operazioni che prima richiedevano routine più complesse (e lente) scritte in software (vedi i vari set di istruzioni MMX, SSE, AES, ...).

    Un altro ruolo fondamentale nella velocità del processore lo ha la cache: il processore infatti lavora molto più velocemente della RAM, per cui, ogni volta che deve recuperare dei dati dalla RAM, perde tempo ad aspettare che questa glieli fornisca; per questo motivo i processori sono dotati di più livelli di cache, ovvero memoria estremamente veloce situata sul die del processore. In questa memoria vengono tenuti i dati a cui la CPU sta facendo riferimento di frequente, in modo da evitare di perdere tempo ogni volta ad aspettare che arrivino dalla RAM.

    Analogo discorso si può fare per i vari bus di sistema, ovvero le "strade" tramite le quali le informazioni arrivano al processore: se anche un processore è molto veloce, ma "parla" alla scheda madre molto lentamente avrà lì un collo di bottiglia.

    Infine, ovviamente un altro dato fondamentale (soprattutto in questi anni) è il numero di core: ogni core è (più o meno) come un altro processore (anche se spesso condividono la cache di terzo livello e qualche altro pezzo), che può eseguire altro codice in parallelo. Ovviamente avere quattro core non è come avere un processore quattro volte più veloce (non tutto il codice è scritto per sfruttare più core, e la sincronizzazione tra i vari core ha un certo costo in termini di prestazioni), ma nel caso in cui si eseguano più processi/thread CPU-intensive in parallelo avere più core è una manna.

    Per tutti questi motivi, quindi, la velocità di clock non è granché significativa come misura della velocità di un processore: a parità di velocità di clock ci sono un mucchio di altre variabili che influenzano quanto veloce effettivamente eseguirà i programmi - dai particolari trucchi per eseguire più istruzioni per ciclo di clock, ai set di istruzioni aggiuntivi, alla quantità (e alla velocità) della cache fornita, e quindi ha senso fare confronti su questo dato solo a parità di tutto il resto - quindi, sostanzialmente, solo all'interno della medesima famiglia di processori.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    218
    Non ho parole per ringraziarti per avere trovato il tempo di darmi una cosi ampia risposta.

    Grazie ancora

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.