Introduzione al funzionamento dei processori!

Nei giorni in cui vi prende l'ispirazione hi-tech...prendete in mano la tastiera e sfogatevi qui!

Moderatori: cb_123, tonertemplum

Messaggiodi Ghost66 il 10 gen 2004, 14:46

E vai thrantir

le tue "lezioni" sono tuttaltro che noiose
My PC: Chieftec Mesh; Enermax 475W; DFI NF4 SLI-D; Venice 3200+; Thermaltake Pipe 101+ Tornado 90*90; 2*256 Mushkin bh-5; 2*80 7K250 sata raid 0; Powercolor X800XL vivo; NEC3520; DVD Sansung; AOC 19"; Creative P380
Database SuperPI Come lappare i dissipatori
Avatar utente
Ghost66
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 563
Iscritto il: 16 apr 2003, 11:25
Località: Messina

 

Messaggiodi thrantir il 10 gen 2004, 15:18

grazie del consiglio!

Sono d'accordissimo con te sul fatto di inserire degli esempi e ne ho avuto l'intenzione già un paio di volte salvo poi sacrificare questa intenzione x dare prima un quadro generale del tutto, nel prossimo post xò provvederò di sicuro!
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi Imrik il 10 gen 2004, 15:41

io credo di aver capito tutto.
unica domandina: ora i proci lavorano solo a 32 bit vero? nel senso, da quanto ho capito un athlon64 è capace di fare calcoli (e quindi leggere parole) + semplici di 64bit da solo, mentre i proci attuali no e si utilizzano emulatori (come quelli x console.. :D )

tutto giusto?
Imrik
 

Messaggiodi thrantir il 10 gen 2004, 16:01

Il processore in pratica cerca di interpretare quello ke la memoria (o qualke altro dispositivo) gli sta dicendo "parola x parola"... quindi i nostri athlon XP si aspettano un "discorso" fatto di parole lunghe 32bit... allo stesso modo i processori a 64bit si aspettano ke ogni 64bit ke gli arrivano siano una parola di senso compiuto. Quello ke hanno fatto con l'athlon64 è inserire un modo per dire al processore se le parole sono di 32 o 64 bit e il processore è creato in modo da adeguarsi a questa o quell'altra possibilità. Invece come tu hai detto gli altri proci a 64 bit ke nn hanno il supporto nativo per i 32 bit devono per forza far riscorso ad un emulatore, in pratica c'è un programma ke legge quelle istruzioni scritte in 32 bit, le riformula in un codice a 64 bit ed è quest'ultimo ke viene eseguito... cmq ho già in mente di fare un discorso sulle makkine virtuali e sulle strutture gerarkike del calcolatore e sicuramente dopo avrete una comprensione migliore di cosa sia un emulatore...
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi azarius il 10 gen 2004, 16:07

ma un calcolo fatto con un 64bit è più perfetto di uno a 32bit!?!?!?!?!
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

Messaggiodi thrantir il 10 gen 2004, 16:34

il discorso nn è sulla perfezione, infatti qui nn stiamo parlando di dimensioni di dati... cerco di spiegarmi meglio, quando tu fai un programma e vuoi usare un numero con la virgola (un numero reale) a seconda dei linguaggi di programmazione ke usi puoi avere a disposizione fino a 128 bit x rappresentarlo in binario... questo vuol dire ke un processore a 32 bit x lavorarci sopra dovrà kiedere alla memoria 4 parole (32bit * 4 parole = 128 bit) mentre un processore a 64 bit ne kiederà due... ovviamente il processore a 32 bit avrà bisogno di 4 registri per memorizzare le 4 parole ke compongono il numero mentre il processore a 64 bit (ke per sua natura ha i registri a 64 bit) ne userà solo 2! Come vedi la precisione nel calcolo nn cambia ma il processore a 32 bit deve fare il doppio di rikieste alla memoria per ottenere il numero completo e deve anke utilizzare il doppio di risorse (i registri) x memorizzarlo... ma questo nn è l'unico vantaggio, il vero vantaggio sta nel fatto ke con 64 bit puoi avere molti + tipi di istruzioni, come ho scritto prima nel discorso ke sto portando avanti dei 32 bit della parola i primi 8 dicono al processore ke tipo di istruzione è, quindi si arriva ad avere 2 alla 8 istruzioni possibili, metti ke il processore a 64 bit rispetti la proporzione quindi arriva ad avere 16 bit per individuare l'istruzione... passiamo da 256 possibili istruzioni a circa 64000!!! Questo ti permette di essere molto più "espressivo" nelle istruzioni ke tu dai al processore, per esempio se nel set di istruzioni hai già deciso 256 istruzioni quindi non ne puoi avere di + e tra queste nn ce n'è una ke dica al processore "fammi la radice cubica di un numero" se tu vuoi fare la radice cubica di un numero lo devi fare "a programma" cioè gli devi dare una serie di istruzioni ke alla fine ti portano ad la radice cubica di quel numero... se tu avessi l'istruzione "fammi la radice cubica" invece basterebbe quella solo istruzione con un incredibile risparmio di tempo! Vi aggiungo anke quest'altra considerazione, con la tecnologia a 64 bit si risolve anke un problema ke ultimamente stava diventando pressante, passare da un possibile quantitativo di ram massimo di 4 Gb alla cifra (folle :wink: ) di milioni di Terabyte! Il xkè ve lo svelo quando vi parlerò di come funziona la memoria... a breve comunque vi faccio la descrizione di un esempio di come il processore convenzionale interpreta una istruzione di somma di due numeri, spero ke quello kiarifiki anke in parte queste cose
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi thrantir il 11 gen 2004, 14:16

Sigaretta accesa, cervello partito... possiamo riprendere!

Allora, da quello ke abbiamo detto prima possiamo cominciare a delineare un po meglio il nostro processore... abbiamo scoperto ke dentro ci stanno dei componenti ke gli permettono di comunicare con la memoria, di capire all'arrivo di una istruzione assembler ke tipo di istruzione è, di eseguire delle operazioni matematike, di memorizzare il risultato (i registri!)

vediamo ora cosa succede quando arriva una istruzione di somma. Vi ricordo ke il processore si accorge ke l'istruzione è di somma xkè i primi 8 bit dell'istruzione sono (secondo le nostre ipotesi) uguali a 00000000, passiamo ora quindi quali sono i numeri ke deve sommare quindi cosa vogliono dire gli altri 24 bit dell'istruzione. Per far questo occorre fare una distinzione: a seconda del tipo di istruzione il processore può lavorare su dati ke sono già al suo interno (nei registri!) oppure su dati ke non stanno al suo interno (ancora) e quidi si trovano in memoria... x ora (x semplicità!) ci limitiamo al primo tipo, quindi il processore ha in qualke registro i dati ke vogliamo sommare, allora dovrebbe apparire kiaro quello ke l'istruzione deve dire al processore: deve dirgli quali sono i due registri ke contengono i due numeri da sommare! Come glielo dice? Pesno ke già qualcuno abbia intuito la soluzione: i registri sono numerati (x ki ha un po di esperienza in programmazione: i registri formano in pratica un array o vettore di dati)! Allora immaginate l'istruzione (ke vi ricordo è di 32 bit) divisa in 4 parti da 8 bit (in pratica in 4 byte) ciascuna. La prima come sappiamo indica a quale istruzione ci stiamo riferendo, la seconda indikerà il numero corrispondente al registro contenente il primo addendo, la terza il numero corrispondente al registro contenente il secondo addendo e la quarta il registro dove salvare il risultato dell'addizione...
per capirci meglio ecco una possibile istruzione:

00000000000000110000010000000001

Se separiamo i 4 gruppi otteniamo

00000000 - 00000011 - 00000100 - 00000001

ke tradotto in numeri decimali (le istruzioni sono kiaramente in binario!) vuol dire:

0 - 3 - 4 - 1

quindi interpretiamolo seguendo quello ke abbiamo detto prima: dal primo 0 il processore capisce ke dovrà eseguire una somma, i dune numeri da sommare sono nel 3° e nel 4° registro e il risultato della somma va memorizzato nel 1° registro...
Utilizzando la stessa tecnica possiamo dirgli di fare sottrazioni, moltiplicazioni e divisioni... siccome abbiamo fino a 8 bit per indicare un registro supporremo ke il processore al suo interno abbia almeno 2 alla 8 registri quindi almeno 256 registri (da 32 bit ciascuno!) quindi il nostro processore comincia ad avere una sua memorietta interna (formata dall'insieme dei registri) di 1Kbyte (4 byte * 256)
Cosa vi sembra? Credo ke il discorso sia stato un po complesso, aspetto x vedere se qualcuno vuole qualke kiarimento
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi don_supa_vincè il 11 gen 2004, 14:39

Beh........praticamente se avete capite tutto quello che ha raccontato il buon thrantir siete pronti a passare Informatica A del mio corso di laurea :D :D ........... nn c'è che dire....... ottimo lavoro thrantir...

Sciau
Athlon 2500+@ 2333 (166*14)........Epox EP-8K9A.......1Gb ddr Pc2700.......mitica nVIDIA GeForce 3 titanium 500 (@288 MHz GPU 600 MHz DDR).....e tutto il resto che serve a funzionare... Don Vincè
Avatar utente
don_supa_vincè
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 442
Iscritto il: 07 nov 2003, 21:06
Località: Milano

Messaggiodi azarius il 11 gen 2004, 15:26

thrantir nn ho capito bene tanto i 4 gruppi.... :( :(

dal primo 0 il processore capisce ke dovrà eseguire una somma, i dune numeri da sommare sono nel 3° e nel 4° registro e il risultato della somma va memorizzato nel 1° registro...


e il 2° registro!!!!!
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

Messaggiodi thrantir il 11 gen 2004, 16:10

immagina una parola come 32 caselle (tipo quadratini di un quaderno) in fila, e in queste 32 caselle ci puoi mettere o un 1 o uno 0 quindi hai 32 "uni o zeri" in fila... queste 32 caselle le puoi pensare come 4 gruppi da 8 caselle uno di seguito all'altro, il primo comprende le caselle dalla 1° alla 8°, il secondo dalla 9° alla 16° ecc... Questo è anke quello ke fa il processore, lui vede 4 gruppi da 8 cifre binarie l'uno messi uno di seguito all'altro, questo xkè per lui ognuno di questi gruppi ha un significato diverso.

e il 2° registro!!!!!


Non è necessario ke i registri siano utilizzati in ordine, per esempio io posso sommare il numero contenuto nel 5° registro con quello contenuto nel 20° e mettere il risultato nel 2°... x ora diciamo ke i registri del processore sono per noi tutti uguali e quindi diciamo "interscambiabili"
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi azarius il 11 gen 2004, 17:15

allora dovrebbe esere così se ho capito....

[00000000]<-- istuzione
[00000011]<-- registro A
[00000001]<-- registro B
[00000100]<-- Registro C (dato da istruzione,registroA,registroB)

spero che capite ciò che ho fatto.... :D

e saresti poi così gentile da spiegarmi questo


siccome abbiamo fino a 8 bit per indicare un registro supporremo ke il processore al suo interno abbia almeno 2 alla 8 registri quindi almeno 256 registri (da 32 bit ciascuno!) quindi il nostro processore comincia ad avere una sua memorietta interna (formata dall'insieme dei registri) di 1Kbyte (4 byte * 256)


vai vai che ora sto incominciando a capire cose molto ma molto strane... :D
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

Messaggiodi Imrik il 11 gen 2004, 18:52

azarius ha scritto:
siccome abbiamo fino a 8 bit per indicare un registro supporremo ke il processore al suo interno abbia almeno 2 alla 8 registri quindi almeno 256 registri (da 32 bit ciascuno!) quindi il nostro processore comincia ad avere una sua memorietta interna (formata dall'insieme dei registri) di 1Kbyte (4 byte * 256)

vai vai che ora sto incominciando a capire cose molto ma molto strane... :D


allora dato che ogni numero può assumere 2 valori (0 e 1) e 8 bit sono 8 numeri, questi 8 bit possono assumere 2 elevato alla ottava (256) diversi valori. Dato che ogni valore è un registro, nel esempio di procio (giustamente semplificato) di thrantir si hanno almeno 256 registri.
spero di essere stato kiaro (premetto ke nn sono un universitario, faccio solo lo scientifico e sto conoscendo molto grazie al mitico thrantir).
Imrik
 

Messaggiodi thrantir il 11 gen 2004, 20:37

Imrik ha scritto:premetto ke nn sono un universitario, faccio solo lo scientifico e sto conoscendo molto grazie al mitico thrantir.


Esagerato!

Cmq grazie, sono contento ke vi interessano le cose ke dico! :D :D :D

X Azarius, se tu immagini gli 8 bit in fila ti viene fuori un numero formato da 8 cifre, e come ti ha detto Imrik queste sono cifre binarie! puoi fare una cosa molto semplice, puoi vedere kiaramente ke il numero + grande esprimibile con 8 bit è questo :"11111111" Se apri la calcolatrice di win, selezioni la modalità in binario, lo scrivi e poi selezioni la modalità in decimale ti verrà fuori "255", quindi con 8 bit puoi rappresentare fino a 256 numeri (anke "00000000" ke corrisponde a "0" in decimale è significativo!), quindi associando ad ogni numero da 0 a 255 un registro diverso puoi arrivare a indicare fino 256 (tecnicamente si dice ke riesci a indicizzare 256 registri), se poi consideri ke ogni registro può contenere 32 bit e cioè 4 byte (1 byte = 8 bit) fai una moltiplicazione e scopri ke il processore ha al suo interno una capacità di memorizzazione di
256 * 4 byte = 1024 byte = 1Kilobyte...

Nello scrivere questo post mi sono accorto ke alcune cose ke scrivo possono essere (x ki le sa!) così semplici da rasentare la banalità mentre io le scrivo xkè ki invece nn ne ha mai sentito parlare sono informazioni di base preziose x comprendere meglio il discorso... quello ke voglio dire è ke io nn scrivo spiegazioni lunghe anke su argomenti semplici xkè ritengo ki le legge "ignorante" ma semplicemente xkè io stesso quando queste cose le ho studiate ho tratto nn poco vantaggio dal metodo del mio professore ke era pignolo x ogni argomento, xkè sapeva ke alla fine è tutto un castello di carte e se manca qualke cosa alla base il castello viene giù! Quindi ki si annoia un po nelle mie spiegazioni stia tranquillo ke nn è mia intenzione insultare l'intelligenza o la conoscenza di nessuno!
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi jaber il 11 gen 2004, 20:44

Vai così Thrantir,stai andando benissimo. :wink:
- AmdPlanet Staff -
Responsabile News
Avatar utente
jaber
Site Admin
Site Admin
 
Messaggi: 2548
Iscritto il: 24 mag 2003, 02:57
Località: roma

Messaggiodi azarius il 11 gen 2004, 21:16

ora tutto chiaro.... scusami se mi sono perso per la strada... ma capita....
poi t va bene che ho voglia di studiare ciò...(altrimenti se era latino mi avevi tolto dal forum hihihihiihihihihih)....

thrantir ha scritto:Quindi ki si annoia un po nelle mie spiegazioni stia tranquillo ke nn è mia intenzione insultare l'intelligenza o la conoscenza di nessuno!


io nn mi sto annoiando affatto... anzi parla parla che + imparo + domande dovrai rispondere..... :twisted: :twisted:
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

 
PrecedenteProssimo

Torna a Guide

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron